diff --git a/Examples/ListGlobals/ListGlobals.csproj b/Examples/ListGlobals/ListGlobals.csproj index 5dc0377..f96ea1b 100644 --- a/Examples/ListGlobals/ListGlobals.csproj +++ b/Examples/ListGlobals/ListGlobals.csproj @@ -6,7 +6,7 @@ Exe - net8.0 + net10.0 enable diff --git a/Examples/ListGlobals/Program.cs b/Examples/ListGlobals/Program.cs index ec062de..c1a69d5 100644 --- a/Examples/ListGlobals/Program.cs +++ b/Examples/ListGlobals/Program.cs @@ -2,8 +2,9 @@ using var conn = new WaylandClientConnection(); var registry = conn.Display.GetRegistry(); -registry.Global += (_, name, @interface, version) => +registry.Global += (_, name, iface, version) => { - Console.WriteLine($"Global {name}: {@interface} version {version}"); + Console.WriteLine($"Global {name}: {iface} version {version}"); }; -conn.Roundtrip(); +conn.Display.Sync().Done += (callback, data) => conn.Quit(); +conn.MessageLoop(); diff --git a/Examples/Window/Cat.img b/Examples/Window/Cat.img new file mode 100644 index 0000000..fb095e7 --- /dev/null +++ b/Examples/Window/Cat.img @@ -0,0 +1,2275 @@ +ƾļ¸߽ܺ۷ٳذ׮֫ժըէԧԦԥӥӥӤӤӤӤӤӥӥէթ׬ٯڳݷ޻࿲öƻ׿˵w|}x}}y}~{~{}{|qnk^XUFD=52*0, ;5'MD5_UGueXsh|rvy{}z{tngl^WVLC:4+ "#230???FHHJKOFJK@EG7<=7;;8<<9=>9>@;@B6;<7;;6;:6;:6;:5;:398177056-55,68,69.9;1;@4?D8BH=FLAKOGNSMQUPSWSUYVXYZZ[[[[\\\]]]_^^_^^^]^]\^XY\RUYMPTGKM@EG;AC:@BHHIJKOFJK@EG;@B8<=7<>8<<7<;8==9>@;@BA7C:BI=GL@JNGMRKPUPSVSVYWXZZZZ[[[\\]]]]^^^_^_^]`\\_WY]SVZMPTGKN@EH;AC:@B43*0- 95'KD2aUFudYsh|ruy{|{|vogm^WVKA<5*""!"230>>=HHIKMPHJK?EG;AC9>?7<=7<<8=<9>=:>?6;<7;;7;:6;:6;:6;:6;:5:9277067.56.58-69/8;043*/-"95'LE3`TGtdYsg}qvy|}||vphn`XWLC=5, !!"130??=HHIKMPHJL?EG8<=7<;7<;8=<;??;@BA8=@7;=6;:7;:6;:6;:6;:6;:498287167/67.58-69.8<0<@4?D:CJ?>HHIKMOHJM@FH?8<=7<;8=<9>=;??IIJKMOHJMAFH?8==8<=8=<8>=:??;@A7;<6;:6;:6;;6:;6::599278167/57.58-69.9<0<@4?D8BI?8=>8<<8=<9>?:>?:?@<@B=BEHIJLMOGKMBGI=BD9>?8=<8<<8=<:>?:?@;@B=BE;CE;BE;AC9@B8>@7<=6;<7;<7;<6;<6;<6;<599287177/66.68.69/9<0<@4?E8BH80$#"12/>?>HIJLMQHKNBGI=BD:??8=<8=<8=<9>>;@A;@B7<=6;<6;<7;<7;<7;<6;;5:9388166/57.58.69/9<1<@3?D9CI=FKBJOHMSLQUPTWTVXXY]\[^^]__^`_^a`_b__a__a]]aZ[_UW[ORVIMPAGK;CF9@C9/## !12.=??HHJKLPHKNBGI?;@A7<=7<=6;<7<<7;;7<<6;:5:9498267067.68.7:/9=1<@4@E8CI=FMBJPHNSMQUPSWTVYXY\[[_]\__^b__a__a__a_`b]^bY[_UX[OSVIMQ@HK:BE8@C;BD?EFGJLNQRSTWZXZ]\__^_a`baabcbcbbcdccdccdddddddddffffeeffffffhhhhhhihhhhhjjjjjjjjjkjjkkkkkkllllllmmmݶ߿޼ݺܹܸܸܷ۷ܶ۶۶۵۵۴ڴڲڱخ׬֪֩էԥӣҢҡҠ}Ң~ӣԦթ׬ٰ۳ܷ޺߼࿰µĹƼȽȾĹ῱߼޸ݶܵܶ޹ཬĵɽɿɾɽɽɼȼƻ·ۼҴȬy~x}}z{}usod_YPJB;8.30#<7&ME5_UGreYrf}puy~~}xskpc^[OH>9.## !12.<@?HHJJMQHKMBFG=CF:>A8=>8=>8=>9>@;@ACF;BE:AD:?A8>?7<=6<<7<<7<;7<;7<<7;;5:9498277067.68-7:.9>1<@5@D8CI=GNAJOHMRLPUPSWTVZWY\Z[^^]`^^`_^`__a`_a__b]^cY[_UX[OSVIMQ@HK:CF9AD:BE?EFFJKNORTUXZYZ]]___``_aaabbbcdbbecceccddddddeeefeefffggggggggghhhihhiiiiiijjjjjjlkkkkkkkklllllllllƽ¶߿޻ܹܸ۷۷۶۶۶۵۵۴ڴڴڳڱٰخ׫֩էզԥӣҡ~Ҡ|џzҠ|Ңԥ֩׬ٰܳݸ޻ྰ÷źǽǽķ཮߻߻༪ŶʾɾȾǻǺǺȺȺǺĸ׸ΰ}y~~z~{}xtqd`ZNKB:7-30#<7'ND5aUGsfZth~quy}~ztkqc^\OH@90&% !12.9>@:?A=AB>BD7<=6<<6<<7;<7<;7;<7<<599498276067/68-7:.8<2=A5@D8CIEFEJKNORSTXYX[]\`__```acacdacdbcebcecdecddddeddeeeffffffgggggghhhiiiiiiiiijijjjjkkkjjjkkkkkkllllllȾú޻ܹܷ۷۶۶ܵ۴۴۴۴ڴڳڲٰد׭֪ըէԥӣӡҠ|ҞyҞzҟzҢԥ֩جڰ۴޹߼·ŻȿȽĸ³õǹ˿ɾȽǼǺƺƸƹǹǹŸöܻҲĪz~z~|~xtpd`[NLD;8.30$<6'MC4bUGreYsg~rvz~~zsksb[\PG@:1$$ 02->?@GIKJMQILOBGJ=CF:?A9>?8==9==:>?<@A=AC>BD>BE=BE;BD9@B9>?8=>7=<6;:8=<8<<8<<7;;5:9498277067067.79.9=0;?4?D9CJEFEJKMOQTTWYX[]\_^^`a`bcabdaceccecdebefdeedddddffffffgggggghhhhhhihiiiiiiijjjiijjjjkkkkkkkjjllllllƼµ߽ܹܸ۷۶۶۵ܵ۴۴۳۳ڱڱٯ׮׬תէԥӤӢҠ}ҞyѝwўvҟxҢ}ԥ֩ح۲ܶ޺ྯĺǾȾǻƻǼɾʿɾȽǼƹŷŷŷĶŷŷƸĸ޾նȭ}z}~xspea]OKD:8/1/!;5&LC5`SFseXrf}qw{~}~xtltc[^QHA:1"$ 02->?@HIMMNRILOBHK@8==9>=9>>;?A=@C=BE>CF=CF;AD:?B9>?8=>6<;6<;6<;7<;7<<7<;5:9499289168/68.69.9=1<@4?D9CJ;GMAJPGNSMQUOSVSV[WY]\\`]\_^]__^a``b_`ca`b_^`\\`VY^QTXJORAHK=:??<@A=AE>CF>CF=BE@9>?7==7<;7=<7<<7<;7<;6;:398278069/68/7:.9=1<@5?E8BIDEDIIMOQSTVYYZ\[__^`a``cabcbbdcceccecdedeedeedeeeeeeefffggggfgggghhhhhhiiiiiijjjjikjikkjkjjjkkkkklɾ÷߾ݻܸܶܵܵ۵۴ڴڲڲڱٯحجת֨զԣӢ~Ҡ{Ҟyѝvќuќtўuҡ|Ԥשٮܳ޸཮³ŸǾȿȽƻĸķõ´ò±°ñĴƸŹٷ̰{}~xtrda]OLF98.0.":5%KC3_TFrdYtg}qxz}~}ysntc\\QGB;0%& 01-=?>HILLNRIMPBHL@8==9=>9>>;@ACF>CF>CF=BE;@B9>?8=>7<<8=<6<;7<<8=<7;;6;:398288078/68/7:/9=1;@4?E8BIEFEIJMNQSTVYYY\\]_^````baadbcecceccedddddedefeefeehggfffgggggghhhiiiiijiiijjjiijiijjjjkkkjjjlkkkklǻµ߽ݹܷܶܵ۵ڴڳڲڱٰٯج׫שէԥӣӡ|ҞyѝvМtћsќsѝtӡzԤשٮܴ޺࿰õƻȾɿȾƼźöõ󲯯ijǸƺ·۹ϲ}}xuseb]OLF:8.0-#95&KC3_TFrcZsh}ry{}~}ysmuc^]RHA;1#% 12.>?>GIJLNRJMQDIL>CG;@C9>?9>?9=>;?@;?A=BC>CF>DG?DG=BE;@A9>?8=>8=<7<<8=<8=<8<<7<;6;:4:9288167/68/7;/9=2DFEHJMOQRTUYYY]]]^^`a`abaacbbdbceccdcddcdeeefddffffffgfgggggggggghhhhhiiiiiiiiiiiijjjjjjjjjjjjjjkkŹ޻ݹܷܶ۵ڴڳ۱ڰٯ٭׬ת֧զԤӢ~ҟyѝuЛrЛpЛlМmѝsҟwԤרٮܴ޹῱öƻȾǽƻĸõ³²ïųȸǻùܻѳê|~xuseb]PME:8/0."85&JB3_SEqcYsg|qx{}~}ytovd`^RIB;2$%01->?=GIJLNQJMQDIL>CG:@B9>?9=>9=>:??;@ACF?DG>CF?8=>7<<7<;7<;8<<7<;7<;6;:498287167079/8;/9=1;B5@F9CJ=GLBKPGMRLQUOTWTWZVY]Y[`]\`^^a^_b_`b__a``b^`a[]aWZ^RUYKPSBJMDGEIKLOPRTUYYY]\]_^_`_`baacbbcccdcddcddcdddddddfffffffffffgggghhhhhhhhhiiiiiiiiiiiijjjjjjjjjjjjkkkȼ´߽ݹܸܶܵ۴ڲڱٯ٭ج׫שէեԢҠ{ўuЛqЙkЙiϙjϚjМpҞvԣ֨ٮܴ޺῰÷ƼȿǽƻŸöô²ïƴɺɽĺݾӴū|}xvseb^PLE9800.!84&IB2^SErdYsf}sx{}~~yumsd^^QJB;1&&01-?@>GIJLORILPDIK=DF:@B9>?8=>9>>:>?DG8<=7<;8=<8=<8=<7<;5;:498287177/69/8;/9>1?=HIKMORJMQDIK=DE9@C9>@8=?8=>:??;@ACF>DF>DE8==8=<9<<9<<8=<7<;5;:4:9278077/79.7:.9=1GNBKPGNSKQUOTWSW[VY]Z[_\]`_^b`_c^`b``baac``b]^bY[^TVZMPTDJMDFDHKKNQPSWXXZ^]]___b`acabdbcecceddfddeddeeefffffffffffffffhhhhhhiiiiiiiiiiijiiiiiijjjiijjjjkjkkkkƻ޻ݸܴܶ۳۱ٯجثש֧զԤԢӟyќrКmИgϖbϖcϗfЙiњnҝtԢ}֧٭ܳ޹῰ĸǽȾȽȽǾȽǼƺŹĶ´°ijȸ˼ƽ޿ҶŬ|}zvsgc`OME990/.#74'JB2]SEqdXsg}qw|~ztmuf_]SKC<2$$01-DG;AC:?A9>?9>?:??<@A=BC=CE>CE?DF=BD;AD9?A8>?7==8==8=<8=<8=<7<;6<:4:8288077.79.8;/9=2?9>?:?@;@A=BC>DF>DF>CE=BE8==9=>8=<8=<8=<7=<6;:5:9287077.79.7:/:>16'( /0+>?DG;AC9>@9>?:>?;?@DG>CF?DF>CE?9>>8==8=<8=<8=<8=<8=<6;;5:9387076.79.7:.:<14%'/1,=?EH;AC9??:>?9>>:?@CE?:>>9>=:=<8=<8=<8=<7;;5:9398187/89.7:.:<24&'/1,>?=HJKLORKORDKN>EH;AC:?@9>>9>?:?@CF=BD;@A:??9==8=<:==9>=8=<8==7<;5:9387187/78.8:/:=2EH:AD:ACHJKLORJNQDJN>EH;AB:?@:??9>?:@@;AB=CE?DG@EH?DG>CF=BD;@A9>?9>?9==8=<9>>9==9==6<;5:9398277078/8:1:>1>HIJLORKOREKN?FI?:?A;?ADF8<=:>?9>?8=>8==7<;5:9399289188/8:1:>2=@6@F:DK=GNBKRGOULQVOTXTW[WY]Z\]\]^]^a^_c_`d``d`bd_`d^_cY\`UX]NRVGLP=GJ9BE8BD@:>@;@ACD?DF@EG@EH>DG=BD;@B:?A8=>9>?8=>8=>8=>9=>7<<6;:4992780780891:=2=A5@F9EK=HNBKRGOULRWPTXSVZWY]Z\][]^]^b_`d``d``dbbeaae^_cZ\aUX\ORVHLP=GK7CF7BE;DGAHJIMORSVWXY[[\___aaacbbcccdddeeeeeefefeeefffffffffggggggggggghhhhhhhiiihhhiiiiiiiiiiiiiiijjjjjjǼöὯ߸ݴ۱٭ث֨եաzӟvӝrӜpқoћlњiљfјdјbјdњiӝnԠwբ{֤֦ר٫گܲ߶໨ᾭ³ŸƽɿǺŶ²⿭²ĵŷŸŷĵò濫復澩­ųǹȻĺܾԵŮ}zyjgcSPK<<31.!63%G@1ZPCobTpe{sx}|xqwjfdWSGA9))".0+=?=IIJNPSLPSGKO@EHA:>@;?ADE?DE?EG@EH?DF=CE;@C:?A9=>9>?8=>9=>9>>9=>8<<5:94:927828918;1:=2=@5@F9DJ>INCLRHOVMRWQTXTW[VY\Z[^\]`^^b_`d`_ca`dbbfaae``d[]aUX]PSVHMP>GK8CF7BE@;?@CE?DE?EH?EH?DG>CF?9>?9>=:>=:==8<<6;:5:937828908:19<3=@6@F9DK=HNBLQHOUNRWQUYSWZVY]Z\^\]a_^b`_ca`ba`cbaebad`_d\]aVY]PSWIMQ?FJ9BF9BF;DHAHKIMOQSVWX[\\\___b``dbbecceddeeeeeegefgffggggffhgghgghggggghhhiiihhhiiiiiijijjijjjjjjjjjjjjjjjjɿȽȾǾǾƼŻĸ῰߻޸ݵ۲ٮثר֤բ|ӠvҞpқkҚiҙhљgҙfїdЗaЗaјbҙfӛmԞsաzףץب٪ۭ۰ݴ߷ຨᾬôĸƺȾǼŸĵ³²ôĵƸǺȼɾʿʿʿȻǹƵð翪İƴķٻγ}{xjhcTQL<<31.$62&G@0[QDnaVqg{rz}yszjedXQKB8,)!.0,>?>HJKMPTLPSGLOAFH=BD;@B:?A;?A:?A=BE>CF?DF?EH@EH?DG>CF?9>?9>>9>=:>=9>=8<;7;:4:927817818:1:=3=@6@F9DK=HOBLQIOTNRWRUYTW[WZ]Z[_\]a__c`_ca`ba`ccbebbd_`d\]`WY^PSXIMRAGK;BF9BF;DHBHLJMPQSWWX[]\]___caadbbfddeeedddfffgefhffgfggggigghggjhhhhhhhhiiihhhihhjiiiiijijiiiiiijjjjjjjjjȽƺĶô࿱࿯཮ߺ޸޶ܳ۰ٮث֥֨աzԞtӝmқhҙeљdјcјbїaЖ_Ж`З`јbҙgԛn՞u֡zףإب٫ۭܰݳ߶ວἪ´ķźƽǽȽɾʿɾƺŷĴôĵƸȺʽ˿˿ɼȺŴ®įƴŷ¶ڽе~{xkhdURL=>41.$62'GA3\QEpaXpf}sz}zu{lgeZTMB9+,".0,>@>GJKNQUMQUGLPAFI=CF;@B;?B;?A;@A=BD?DG@EH?FI@FJ?EH=BF>9>>9>=9>=8=<8=<6;:39828818908:09<3=@5@F9EL=IOCMQHOTNRXQUZTX\XZ^[\`\]a^^b`_c``baadcbebad_`d]^aWZ^QTYHMQ@GJ;BF8AD;DHBHLJMQPSUWX[]\^___baacbbecdfddeddfffgefgeggfggggighhgghgghghiiiiiiiiiiiiiiiiiijiiiiiiiijjjiiiiiiǼź÷ྮ޽޻޹޹޹ݷݶݵܳ۰ڮ٫רצ֤}ԡxӞrӛlқiљdјaј`ї_З_Ж^Ж\Ж^З`ҘbӚgԜo՞u֡zףإب٫ܭܯݳ޵෣ầἪ⽮㿰´öķĸŸƹƻȼɾɾǺŷŶŶƸɼ˿ͿʽǺIJ®«ŰǶǺĺܾж~{ymifURM==41/$73&G@1[QCobWrg~szzu|lheZSMC;.,$.0,=?>GJKMQUMQUHMPBGJ=CF;@A:?@;?@;?A=AD?DG>EH?EI@EI?DI>CF>9>=9>=9>=8>=8=<7<;4:929919:18;1:=3=A6AG9EL=IOCMQIOTNSWQUZTW[ZZ^\[_\]a^_ba`caac`acabeaae_`e]^aWZ_QUZIMQ?GJ:CF8AE:DGBILJNQPSUVXZ]\^`_`dbbdbcdcceeeeeeffffeegfgggggggggghgghhhhhhiiihhhiiiiiiiiijjjiiiijijjjkjkjjjkjjǾƻĸ³࿯༮޻ݸݶܴܳ۳۲ڰگٮ٫ةק֤բyԠuӟpҜjҚgҘcј`Ж_і^Ж\Ж\і\Е[і\і^ҘaәhԜm՞t֡yע~ؤا٪ۭܯݱ޳߶ḤṥẨ⼬⼯㽯俱俱²óĵƷɻ˿ɽǻƸƸǹɻ̿ʼȷů¬íDzʺʾƽܿѷ|zmjgVSN==41/#73#G@1[QBocWrg~ry{v{lheZSLC<0-"./+=?>HJKMQTMQUILOBFI=CFCF?EH@EI@FI@EI>CG@9>?8>=9>=9>>8>>7=<7;:49919918:08:1:=4>B6AG9EL>IPCLQJOTNSWQUYTW[XY][\`\]a]^b`_c``caadabfabf``f]^bXZ_PTYINRAHJ:CF9BE:DH@HKJNRPSVWYZ]]_a``cbbebdecddddeeeffffffgffgffgggggghhhggghhhhhhiiihhhjjjiiiiiiiiiiiijjjjjjjjjjjjƾŻķô߽޺޷ݵ۳ڰٯحجتةبצ֤֡{ԠwԞqӛnӚjҙdїaї_Ж\ѕ[ѕ\Е[ѕ\ѕ[ѕ[ѕ[Җ^җ`әgԜn՞r֠w֡|أئ٩ګܮݯݱ޳ߴߵජฤṦ⺧⺨⺩⺪⻫⼬㾬㿭¯ŴȺ˾ɾȼǻǻɽ̿ʻǴűƲɸ;ѷ|{mjhWTO?>520$73#G?2[PCnaVre~sz|u{mffZSLDIJKNRUMRUHLOCGJ>CFCF=BD:?A:?@9>?9>>:?>:?>9>>8>=7;:5;:29918:19;2;?4>B7AH:FL>IPDMRJOTMSWQUYTW\XZ^[\`\^b^_b``caadbaebbfbcgaaf]^cXZ_QTYJOS@HJ:CG9BE;DG@HKINQPSWVYZ]]^a``dbbdccecceeeffffffhgghffggggggggggggggghhhiiihhhiiijjjiiijijjjjjjjiiiiiijjjjjjǿǾżŻĹ÷ô߽ߺݷܴ۱٭جשק֥֤գ}ա{ԟxӞsӜnҚiҙfјbї`З]ѕ\є\ДZє[є[єZєZѓZєYҔZҗ`әeԜk՝p֞v֡zעإ٧٪ڬܮܯݰݱݲ޲޳ߵൠඡ෢ජඣᷤṥẦ㼩ĴȺʾɼȻʽ˺ɸʹ̽Ѷ||mjhVTP??620$83%G?2ZPDoaVre}ry|u~ngg[TLE=/,#-/*>?>IJKNQUMRUHLOBGJ>CFCF@EHAEIAFI@EH?DF=BD;@A:?@9>?9>>9>=:?>9>>8=<8<;5:939918:18;2;?2=A7AG9EL>IQDMSJPUMSXRV[TX]WZ_Z\_]]a^_c``daaecbebcgbcgaae]_cXZ^QTYJOS@HK:CG:CF;DGBILJNQPTVXYZ]]^a``dbbecceddeddeeeggghffigghggggghhhihhihhiiiiiiiiiiiiiiijjjjjjjjjiiijjjjjjjjjjjjɿȾȾǾȾȾȾȿǿǾƽƼźĸõྮߺݷܴ۰ڭת֥֨բ|ԠwӞuӝsӜmҚhҙfјbї_і^Е\Д[ДZєZєYєZє\ѓYГZѓYѓYѕZҗ^ҙbӚf՜m՞s՟x֡{أ٥٨ڪګ۬ܮܮܮܮݰްޱ޲޲޲޲޳޵߶Ḡ⻦Ŵʼʿʽ˾οж}}okhXTP??630&73&G@2ZPFpbWrf}ry~|x~nih[UOE=1-#./,>?>JJKNQUNQVHMPAGK=CG@:??:?>:?>9>>9=<:<<5:949939;29<2;>4>B7AG;FM?IRCLRIPULRWQUZTX]WZ_\\`^_b__c``dbaebbfbcgccgaae]_cZ[_RUYKOR?HK:DG9BE;DGCIKJNQQTWZY\^^^a``dbbecceddeddeeegffhffiggiggggghhhihhihhjiiiiiiiiiiiiiiiijiiiiiijjjiiijjjjjjjjjǿƾǿȾǽǼǽƽȾʿʿɿȾȾƼĹõ߼޸ܵ۱ٮث֧դ~ԡwӞqӛkӚiҙeїbѕ`ѕ^є[єZєZѓ[ГXДXѓXѓZѓZѓXѓXђYђYѕZҖ\Ҙ_ӘcԚj՝n՟t֡xע|أ٥٧٨ڨکڪ۪۫ܬܭݮݮݮܮܭݮݰޱߴḡ㽧ïȹ˿¼η~~olhYTP@@731%73%G@2ZQDmcTqf}tx~|y}nii\UNE=0-%-/+=?=JJLPRWNQVIMQCHK>DGCF@EHAFI@FI?EH=DG=BE:@A:?@:>?:>?:?>9>>:?>9=<8;;5:949929;19<2;>4=A7AF;DL?IQDLSIPUMRWQUZTX]X[_\\`__b__ca`dbaecbfccgccfaae]_cX[_RUZKOS?HL:DG9BE;DGBHKKNRQTWYY[]]^a`acccdccfddgeefeegffhffigghhhihhhhhihhjiiiiiiiiiiijiijjjjjjjjjjjjjjjiiijjjjjjjij¿Ž¸ĺɿǽǽǽȾǽźµ࿰߻޷ܳڰ٬ة֥ԡwӞpҚgјcї`ѕ]Д[ѓYѓXѓXГYВWГWДVєWѓXѓXѓWѓXѓXғXѓXҔYӗ[Ә_әf՛j՞o՟s֠wסyעzؤ}إئ٦ڦڧڧککڪڪ۩۩۪ڪ۫ܭްߵ⻣Ǹ½̷~~nlgXVPB@730%62%G@1YPAmbTqf~ty|woki\UOG?-.$-.*=?CFAFIAFI@FJ>EH=DG=BD;@B:>?:?@:>?:??:??:>>:==9;;6;:49:18:09<2;>5>B8AH;EM>HQCLSHPUNSXQVZTY\WZ^\\`_^b__c``caaccbedcgdcgccf]_dY[_RUYIOS?HM:CG9BE;DGBILJNRQTWWY[^]_a`acccdddfddfeefeegffgffgffggghggjhhihhihhkjjiiijiikjjiiijjjjjjiiiiiiiiiiiijjjjijؿƾùݿܻ۹۹ۻݿûƼµᾯߺ޶۲ڭ٪צբyԞsӛgјaі^ѕZѓYВXГWѓXђWђWВVєVѓVѓWѓWѓXѓXѓXђVғWҔYҕZӗ\ԙbԚb՜i֝lמq֟sנtסuעxأzأzأ{ؤ|٥~٥~ڦ٦ڦڥڥڥڦڨ۫ݮ޳ạǷʵ~~nlgXVQB@92/%52%D?0YPBnbTrgsz}woli]XNG?./#-.)=>;JIKPQUORWJNQCHJ>CFCF@EH@EI@FJ@FI>DG=BD<@A;?@:?@:?@;?@:??:>?:=<8<;6::49929:09<1;>4>B8AH;EL>IPBLSHQUMSYQVZUX\XZ^\\_^^b_`c``babcccedcfddhccf]_cZ\`QVYJOS@HL:CG9BE;DH@HKINRQTXVY\]]_a`bcbbeddecdfeegeegffhfghgghhhhggihhjiikiikiiiiijjikjjjjjjjjjjjjijiiiiiijjjjjjjijֽؿ½ĽܼڹٶصصٶۺܿŻʿƻ´Ὥ޹ݴۯ٬ا֣}ԟwӝlҚcї`ѕZғYђYѓXѓWѓVѓVѓWѓUєUҔVѓWҔWҔWҔXѓWѓVғXҔYӖ[ӗ]ә_ԙc՛g֜j՞m֞o֟p֠rסtסvעwעvأwأxآyآyأzآyآxأyؤ{٦}کܭ޴ṢǷտƳ~pliYVQB@91/%52&B>0YPBmaUqgr{~xpli]XPF?10%-.(=>>8=<6;;4:;19;09<0;?3=B6@G;EL>IPCLSIPWMTZRV[UX\XZ^\]a^_c``daac`abbcedceddgccg^`dY\aRVZKOSBGL;CG9BE;DH?HKHNRPSWUY\\]_`_bdccfddfddfddgeegeeigghgghhhhhhjiijiikiikjjjjjjjjkjjjjjjjjiijjikjijiiijjjjijjikֺ׼ؾ¿ǿù޾ܺٶسذׯְֲصۻ·ǿķ໪޷ܱڭبץաzӞoӛhҘdҖ^ҕZѕZєWєXҔWєWѓWғWғVѓVғVҔVҔWҔWҔWғWғXӔYӕZӖ[Ԙ\Ԙ^ԙaՙd՛g֝i֝iמkמnמpןqנoןpؠrנqנqנqנoסqעuעwإzۨܭߴ⺣ȹҽ²pljXWQBA91/%41&E?1[PBnaTpg~q{ypkj^WPH@0.%,.)>>BF=@D;@@:?@;?@;?@;?@;?@:>>7<;6;<4:;19;1:=1C7AG:FK>IPDMTIPVKSYQVZUX\XZ_[]a^_c``daacabc`bcddedcfccg_`eZ\aSW[KOSCHN;DH8BE:CF@HKHNQOSVUZ]\]`a`cdcdfddfeegffgffhffhgghhhhhhhhhjiijiikiikjjjjjkjjljjjjjjikjikihjiijiijjijjjjjikԸ׺׻ؽ¿Žݼڸشױծլիի֯׳ڸݾļȻöὯ߸ݳۯ٪צ֢|ԠsӜlәfӘaҗ\ѕZєXѕXҕWҔWҔWғWғVѓVҔVҔWҔWҔWҔWҔWҔWӔXӕXӕYӖXԗZԗZ՘^ՙ_՚a՛b՜e՝h֝h֝h֞hםiםjמkמjםjמk؞lןpءtؤyۨݮ൙㻥°ȻϼrnkYWQAA71/%41'E?2YOBl`Tqfr{ypij^WQH@1/',-(>>DG=BF;@BBF8<<6;<4:<29<2:=2;>4>C7AH:EJ?JQCMSIPUKTXQVZVX\YZ_\]b]_c_`d`adbbdbcecefdegccg``eZ\aSW[LPTBHO;DH7BE9CF?GJHNQOSWVY\]]`a`ccbbeddeeefeehffhffhhhhgghhhhhhihhjiikiijjjkjjkjjkjjiiijjkjikiikiikjikjjjjikjijӵոֺ׼پ¿ûݿܺٷ׳֯խӪҨҧөԬֱضܻƿʿźẪ߶ܱڬ٨פ~աwԞoԛiәbҗ]җ[ҕXҕXҕXҕWҕXҔWғVѓUҔVҔWӔWҔXҔWғWҔWӔWҔVӔWӕWӕVԖYԖZ՗\՘]ՙ_՚aԛc՛c֜e֛d֜f֜g֜g֛f֜gםhמkןnءt٤z۩ޯඝ㼧òɼ˿ʽȻȺǺǺȻȻȺǺƺƹǹȹɼʽ˿̾qnjYWQBA81/$20&C=1YO@maVqfs{ypki^VRH@2/(,.(=>CF=BD;@A;?A;?A;?@:?@:?@9>>8==6;<4:;3:<1:<2;>3>B8BI;EL>IPEMSJPULTXQV[WX]XZ_\^b]_c_`d`adbbdbdecefdegcdg`ae[]aSV[KOTBHN;DH9CF9DG>GJGLPPTXVYZ]\_a`cdcdeeeffffffgffhggggghhhihhiiiiiihhhjjjjjiljjljjjjjjjjjjjjijhijiijihkiijiijjikҴӶոֺ׻ؽٿ¿Ž¸ܾںشֱխԪҨѦѤѤѦӪ֮ش۹ݿļƻἬ෣޲ۭ٩إ֢{֠u՝lԚeәaҘ\ӗZҖYӖYӖXӕXӕXҔVҔVҔWғVҔWӕWӕXҔWҔVӔVӔVӔVӕWӔVԕWԕYՖ[՗\՘]ՙ^ՙ`֚`֚`֚a֛c֛d֛d֛e֜e֜gםj؟mآtڥ|ܫ߰ᶟ佩ijɼʾȻƸĵôó²òòñ°±óŴƶǹȺɼʽrol[WSCA91/%20&C>/YO@naVpf~t|{qki^VRH>1.',-(=>EHCD?DGAFIBGJBGKBGK@EI?DG=AD?;?@9>?9=>6;<5:;3:<1:<2;?4>C7BH;EL?IODMSIPULSWQUZUX\X[`[]b]^b_`d`bdabeccecdfdegccf`ae[]aTW[LPUCIN;DH8CF9DG?GKHMQNSVWY\]\`a`ccccfeeffffffhffgffggghgghgghhhhhhiiiiiijjjkiikjjjjjiiiiijjijjijiikiikiikiijihjѲҳӶԷֹֻ׽ٿľ»ݿݿ»ľžü޿ܻٷ׳ׯլӨҦѣТϡСѤҨխرڸܽºǼµ⽭ร޲ܮڪ٦أ~֡w՞q՛jԙeӘ^ӗ\ӗ[ӗ[ӖZӖZӕXӕVӔVӔVғVҔWҔVӔVӔVӔWӔUӔVҔVӔWӔVԕXԕYԕYԗZ՘\՘]ՙ^֚^֚_֚_֚`כb֛b֛a֜d֝gמiؠn٢uڦ}ܫ߱ⷠ侪IJɼ̿ɺǸŵ°俬侬佪佩佩彪佩伨伧仦仦伨彨循ðŴǷǹɼ˾˿˾ʽʾ˾˿rnl[YTDA:1/%20$C>0WO?l`Tpf|t||rjj`XQIA0/&+-'=>;HJKPQVQTYJOSEJO>EHCE?EGAFIBGJBGJBFK>EH>CF=AD<@A;@@;?@;?@<@@;@@:>?9=>6;<59:4:;1:<3<@4>C8BH@8==7;<5:;3:<2:=3CD@EHBGJCGKCHLBGK?EI>DG>AEC7AG;EL?IPDMTIPWNSYRV[VY_Y\a]^b_`c`adacebdecdfdfgdeicei`bf[^cUY]MQVDJOHLEMRNTWVY^\]bbadddeeeffffgffiggjhhhgghhhiiiiiiiiiiiijjjjjjiiijjjjjkjikjikjikjikiikhijgiifhihjkͩϫЭѮұӳԵշ׺ؽĿܼڹض׵ֱֳ԰ԮӭԬԭկձֳ״شٵٶٶٶٶٵشײ֯լӪҧҤѢϠΞ|͝y͜w͝yΟ|Тҧԫְٵۺݿžɾķ⿯Ẩ߶ݱܮګڧإ}עx֠s՞m՜hԚfԙaՙ_Ԙ^ԗ\ԗZԖYӖXԕWӖUӕTӔTԔUԔUӓUӔUԕVӕVԕUԕVӕUԕUԖVԖW՗X՘Y֘[֙\֙\ך_כaלbלbלcלc؝h؞kٟn١sڤwۧݬಔⷞ廧ƹʾȺŵ®彪亥⸢ᶞᴜౕ᳘߰߯߮߯߯߮߮ޭ߮߮߯߰౑ಔ᳘ⵚ⷟㺢彧ñŵǹǺȻɻʽʾ˿˾ʽɼǺǹƶŵŵƵǸʻ»spn]ZVDC<20'2/%B=0XPAk`U}pf}u|{slnaZUJB21),-(<=CF=BD=AB>BC?CD@FGAGJCHKCHLBGJ@FH?DG=AD<@B;@B<@A<@A;@@;@A;??9==7<=6;=4:=3:=4=A4>C7BG;FM@JQDMTJQXNTZSW\VY_Y\a]^c_ac`acacebdecefdfhefidei`cg[^cUY]MQVEKOCF=BC=AB=BC?CE@EFAGICHKCHLBGJAFI?DG=BE<@C;@C<@A;@A<@A<@A;??9>=7;<5:=4:=3:>2=IKKPRVRTYMPTGKP@EJ=CF=BC=AB>CD?CFAEGBGJCHLCHLCHKAFI?DG>BE<@C<@B<@B<@A<@A<@A:?>9>=7<=6;=4;=4;>412(30$C=,XN@m`Uqf~s|~sqoa]ULC73,*,';=DG=BD=BC>CE?DGAEHCHKDILCHLCHKBFJ@DG>BF=@D=@B<@B<@A<@A<@A:??9>>8<=6;=3:=3:>3=A5@D8CJ12(20$E=-YNAl_U~pf~rz}spna_VLD52+*+':==IJKQSWSUZNRVGLPAGK>EG=BD=BD>BD?DG@EHBGJCILDIMCHKBFJ@EH>BE=AD<@A?8=>5;>3;=322(20%B=-WM?k`U~qg~t{}tooc]UMC52**+&<=CD>BC>CE?DF@EHAGJCILDILCHLBGJ?DG>BE?7=>5;>3;>2;>2=A4?D7CI;GN@JQFNUJQYNU[SX]W[`Z^b]`e_afbbgbcgdfhefjehjfhjeghbdg]`eVZ`OSWDLPHLGMSPSWVZ^]^baafddgeeggfhgghhhhhhhihjiiiiiiiiijjjjjkjjkkjlkjkkjlijlijmijliklhikgijhjkgjkgikfimȞȞȞǟǠȡʡʤ˧ͩάаҳӶֹ׽ƿٸֲԭҩХϢ̝͠{˙tʘqɖoʕoɕmɕnʕnɕnʖn˗p˘ưy͝}ϠУѦҩԬ֯ײط۽ۻڷڶڶٶٴزرװ֮֮֮װسٵڹݽ¹Ȼ³⼪෣޲ݰܭ۫۩ڨڨڧ٥~٤}آzآtנoמl֜f֛c֚`֘[՘XԗUԗUԗUՖTՖTԕRԔSՔSՔRՕQՕQՕSՔSՕR֖SՖSՖU֗V֗X֘YיYךZך[؛]؜_؜`؜aٝbٞbٟdٟgڠiڠlۡpܣsܤvܧyݨ}ު்߬Გⴗ䷝亢徦ñƳɹʼͿɼǸĴ°澪廤㷠ⵛⳖ౑்߬߫ުުިݧ}ݦzܥxܤwܣsܢoۡl۠iڠhڠgڠhڡjۡlۡmܢnܢpݣqݣrݤsݦwݧ{ݩެௌ᱓ⴙ㶜䷟乢庤漧義翪翩羪翪ıȸ˽wsr`]YGF?32(2/$B=-WM@k`T}qf}u~}uooc[VMD73* *+&<>:JJKQSXRUZORVGLPCHJ?DE?BC>BD>BD?DFAFIBHJCILEIMCILBGJ@EH>CD?7=>5<>4;>2;>2=A4?D8CH=FN?JQENTJRYOV[SX^V[aZ^c]`e_bfbcgcdhdfiegjfhjgijfhibdg]`eWZ`PSXDLO=GJ9DH:EI=HLGMSPSXVZ^]_caafddffefgfghghggghhhhhiihjiiijjjjjjkjkjikkjlkjkkjkjjlhjmhjmhjlhikgikgjkgikfilfilǝǝƜƜƜƞȟɠʣ˦̪έбҴԷּƿݿٸֱԬѧУϡ͞~̛x˘sɖmɔiɓiȒjɒjɒkɒkɕkʖm˗r̙w͜{ΠФҨԬ֮ױشڶ۸ܺݻݼݼݼݻܹ۷ڶشسزٴٶ۸ݼżƷṦ޴ݰܭ۫ڪکۨڨڨڦ٦٥|٣wآrؠnמiלe֛c֚^֙Z՗VԕTՖSԕSՖSՕRԕRՔQՕPՕOՔO֔Q֕R֕Q֕RՕQ֗T֗V֘WיZךZךZؚ\؛]؜_ٝaٝbڞcڞcڟeڟgڠiۡmۢpܢqܤsܦwݧzި}ު߬ொᱎⳒ㵙㸝庡潥¬İǴȸʻ˽˼˽ʻʻɺȹȹȸȺȺɺɺɺɻɺȺǸŴñ濩弦両㶛᳖ᱏோ߭߬ުݩݨݨ}ݧ|ݧwݥtݤuܣqܢqۡlۡh۠f۠f۠f۠f۠hۡhۢkܢmܢoܢoܣqݣrݤsݦvݨzު~଄௉ᱏⳔ㵙䶜巟幡廣漥漦罧羧澧潧潧潧澨įȷ˽wsra]YGF?32(2/%B=,WN@k_S|qe}v~}tpob[VMD73))+%;=9IJJQTYSV[NRVHLPCGJ@DE>CD>CD>CE?DGAFIBHKCILDIMBHLBGJ@EG>BD=ABIMINTPTWVZ^\^cbbfedffefgfghgihhhhhhihjiijiijjikkjljikijljjlkkkkjkijlijmhjmgilfilgjlhjlhjmeilgilƛƛƛƚŚśƜǞɡʤ˨ͫϯѳӷֻڹײԭҨѤТ͟~̜y˙sʖmɕgɒeǑeȑeȑfɑgȓgɖk˗p̙w͝}ТѦӫ֯ױشڸܺݽ»üü޾ݼܺ۸۷۷ܹݼ߿ùȿʽIJ⽩෢ݲܯ۬۫ڪڪ۩۩۪۩ۨۧڧ}٥z٣tءo؟iמgכcך^֙YՖUՖRՕQՕQՕQՕPՔPՕOՕOՕOՔQ֕R֕Q֕Q֖R֗T֗V֘VיZךZؚZ؛\ٜ^ٝaٝ`ڝbڞdڞeڟfڟh۠kۡmܢpܣqܤsݥuݧyާzީ~ު߫େᮉᰎⳓⵕ㷚㹟廢潥ðñıİïﯮ®®¯¯®¯®羪漧庤习䶚㴗Დᮍେ߫ުީ~ި{ݧzݧyݧwݥuݤtݣrܣpܢnܡm۠g۠eܠf۟e۟d۟e۠fۡgۡhܡjܢmܢnܢoݣpݤqݤsݦvާy~ଃᯇⰋⱑ㲖䴙䶛丝幡庣滤廣滤廣廤滣漦翨îǶ˽xtrb^ZHG?42)2/%C<-VN?k`R~qe}t}~tqpb]WME74+)*%<=9JKKQSXRVZNQUILPCHKAEG>CD=BD>CE?DGAFHBHKEIMDIMCHMAGJ@EH>CE>BB=BA=AA=AB<@C=@C<@A:??8=?64;>4<@5?C8BIIMHNSOTXUZ^\_dabeddfffffggggihhihhhiijhijgijiikjjkjjkijljkljjljjkijmijmhilgimfjlgilhjkgjlfilgilƚƚƙƙŘŘřƛǞȢʥ̨ϮѲӷֻĹ۽ضձԫҧѤϢ͟|̜w˙oʗhȓeǑcȑbȐbȑcɓfɕj˗p̛xΠХҩխֱصڷۺݾĽƿżº޾ݼݻݼ޾¸żȻầߴݱܮګ۪۪۫ܫ۫۫ܭݬݬݫܩۨڦz٢r٠n؞h؜bך]֗X֖S֕PՔQՕPՕOՕPՕO֕O֔O֕R֕RוRזT֗S֗T֘VיXיYךY؛[ٜ]ٜ_ڜbڝbڞdڟeڟf۟g۠hۡlۡoܢqܣqܤsݥtݦvާyި{ީ|ު߫ଃஅஈᰈ᲌ⳕⴘ㷛也庡滤缤漥潥弥弥漥廤廤廤廣廣廤廤廤廤廤庣幢丟䶜㵙ⴕ᱐ௌஆ߫ީ~ި{ާzަxޤvޤvޤtݤrݤrܣnܢlۡkܡkܠh۠dܟd۟b۟c۟b۠dܠeܡeܡfܡiܢkܢlܢmݣoܣoݤqݥsަuߨwߪ}ଁ୅ᮉ⯎ⱏⳓ㵗䷛帞幟幠幠习废廢弤羧ìǵ˽Ⱦxvta^YGG?42)2/$B<.UM>jaR~pe~t~~urod^WMG64-)*%;<9JKNPSWSWZNSVHMQCHL@DF>CE=BD?CF@EGAFICHKEIMEINBHLBGK@EG>CE=BBAD>AC<@@;?@9=>6k_R~pf}u}uqnc]WMG85-()%<=9IJMQSWSVZOSWINRDIL@EG?DF>BD?CE@DGAFJDHKEILDIMDIMCHKAFI>CE>CB=BA>BA>AA>BC=@C<@A;?@9=>7<>5;>5HM;EJm^T}pf}uvrpd^WNG93,)*&<=9IJMQSXTW[OSXINQDIL@EH?DG>CE@CF?DG@EJDILFJMDILEJMCHKBGJ?DF>CC=BA>BA>AA>BB>BD?7<>5<>4;>4=A5@F9CJ=GOBKSGOVKSYQW]UY_Y\b\_d^aeadibeibejdgkegkgilgilghldej_`fY\aQTYINR>HN;FJCE>CE@CE@EHBGJDILEJMEJNEINCHL@FJ?EH>CD=BC=AA?AA>BB=AB=AB:?@9>?7<>55>B5?E8CI=GOCKSGOVKSYPV\UZ_X\b[_d^ae`chbeidgkdfkfgkghlgilghldfj_agY\aRUZHNR>HN;FJ=GK@INGNSNTXVY_\^cbbfdehfgjfhjghkghlghkgikhilhilhilhjlhjlhjmijlikliknijmijnhjmgjnfimgjngimgjnfimhjm’w’tqponno”uėzŜɢ̧ϮҴֹȿĸݿܻڷسװլӦТΜu˙mʖhʕfʕg˙m͜wϠҦԩ֮سڸݽ¹ſǻấߵޯܬܬ۬ܬݬݭޯ߲ᴞⷣ㺦仨廨亦㸢㵝ⱗஏުݧ|ܤvڡnٞdٜaؚ]ؙ[ؘWؘVחUחSؗSؖRؗRؗSؗTؘVؘWؙWٙYٚZٛ\ڜ^ڝa۞b۟g۟gܠkܠkܢmܣoݤqޤsޥtޥwޥwޥvߦwߧyߧyߨzߨ{઀ુી߫}ߨyާxߧwߨxߧxߨyߨyߨ{ߨ|ߩ}ߩ}ߩ~ߩߩߪߩ|ߪ|ߪ}ߩ}ߨ}ߨ~ߨ~ߨ}ߨ|ߨ{ߨzߧzߦxߦvޥrޤqޤoݢlݢkܡiݢhܡhݡgܠeܠeݠeݟcܟcݟbݟbܟaݟaܟaܟaݟbݟcݟdݠfޡgݡgޡgޢiޢhݢiޢjޢkޢjޢkޢmޣlޣnޤqޤqߥrߥsߦvߧy|᫂⮈ⱌ㲐䴖嶚川幟溡漥迨¬ƳʺҺyvtb`[IH@44)1/"A;,TL>i`R~qe}t}vrre^ZOG;6/!')%:<9IJLRTXTW\PTXINRDHKAFI?DF?DE@DEAEHCGJDILEJNFJOEINBHM@FJ>EH=CD=BD>BB>BB>BC=AB=AA;?@9=>6==5CF=BD=AB>CB>BB>BB=AA;@@9>?7=>5GPBKSFOWLSZPV]VZ_Y]c\_e_bgbdibeicfjehjfijgilgimfimdgl_bhY\aRUYIOS@IN;FKj`S~pe~s}wsrf`ZQH;6. ')#:<;HKKQSXUX]PTYJOREJM@FI?DH?CF@CFAEFCGIEILFKNFKNEJOCHMAFK@EH>CE>CE>BC=BB=BB>BC>AB;@@:?@8=>6<>5=@5>B7AE;DK?GPBLSFPXLT[QW^TZ`Y]b\_d_bgadicfjdgkdhkfikfjmgjnfimdgl_bgZ]bRV[HOT@IOCF?CE>BC>BB>CB>CC=AB<@A9>?8=>7B6AE:DK>GPBLSFPWMT[QW^U[aY]b]`f_bgadhcfkcgkdhkehlgjngjofjmdgl_bhZ]bRV[IOTAIP=FJ=GKAINHNSOTZVY^\^cabfefgfgifhkgilgilgikgilhilhilijnhimhimhjnijngingjngjngjngjnfimgjnfingjofimfjmgjm_^^\[[]ahÒpŗ|ǝˣϩҰնػ¾ǿ·ݻٵ֯ԪҦҤҤҥӨլױڶݻµƾɿŷ㻨ᷞ߱ݭܫܪܪܫݭౕ߯ᴛⷡ书廪彬潬潬滩度丢㶝ⳗᰑଅިݤvܢp۠j۞f۞g۞e۝bۜaڜ_ڛYٚXٙWٙXښXښWښXۛ[ۜ^۝`ܟbܟcݡfݢhݢjޣmޣnޣoޤqߥrߦtߦuߦuwwwwxxyxwuvuusߦsߥrߥpߥqޥpߥpߤoߤqޤpޤoޤqߤqޤpޤpߤpޤpޣpޣpޤoߤpޤoߤnޤnޤnޤnߣnޣlߣkߣkߣkޢkߢiޡgޡgߡgޠdޡdޠdޠdޠeޠdޡfޡfޠdߡeߡeߡeߡeߢgߢhߢjߢjߢjߣkߣjkߣmlߣlߣlߣmߤmߤlߣmnmopߥqsv{ᬀ⭅㯉䲎峔嶘淛繟绤鿧«įųȸ˼{,Jg*AU7NaH]nh־ò|xwfc_KKC44+1.%A;-SM8.!!()%:=;HKLQTYUY^OUZJOSFKN@GJ?EG?DF@DGBEHCGIDHKFKNFKNDJOEINCGK@EG?DF?CE>BD>BB>CB>BC=AB<@A:??8=?6=?5=@5>A6@F9DK=GOBLSGPWKSZQW^TZaY^b]`e_bgaeibfjcgkdhkfimgingjngjndhk_chZ]cRVZJPSAIO=GLQKgsF_r?OcȾپʳ{xwec^LKC54+0.$@;.SN=l^Q}pe~r~xssf`[QI=8/ ()$8<:HKLSUZUY]PV[KPTFKM@GJ?EF@EG@DFBFGCGJDJMEKNFKOEJODJMBHK?FH?DF>CE?CD>CC>CC>BC=AB<@A:??9>@6=@4=@5>A6AF9EK=HOBLSHPWJSZQW]TZaY^c]`e_bgaeibgkchleilehlgjngjngjndhk`ch[^dSW[JPSAJNk^R}od~s~~xssg`\RJ:8/ '($8<:IKLRTXVY^PU[LPUFKN@GJ?EG?DE@EFAEGCGKDILFKNFKNFKNEJNAHJ@FH?DE>CD?CD>BD>CD?CD=AB?9>@7>A5=A6?C6AF:EK=HOBMSGPVJTZPW\U[aY^c\`e_chbfkcglchldilfimgjohkogjndhk`chZ]eSW]JPTBJN;FL;GK>IMFNSNTYVZ_[^c`cgcfiegkehlfhlehlgilgimgilhjngjngimhjnhkogjngjnfimfjngjofjneinfjnfimfimfimgjmgjnQNOLMOTYakÓvǚɠ̦ϬҲշ׻żݻܹ۸ܺݻ޾ĺǾǺô㿫⺦ᶠ೘ްޭݫݩܨܨݩݪެ߯Ვⴚ㶞㷠両帢䷢䷠䶞㵙㲕Ⱁᮈ߫ߩ~ަyݤtݢqݢmݡkݠkܠiܠgܠeܟc۝`۝^ۜ]ۜ\ۜ\ۜ\۝^ܞ_ܟaݠcݠdޢfߢhޣiޣkޣlߤmߤnߥoqrrstvvvvvvvvvuusqrrߥpߥnoonoߤpߥqߥoߤppߤpߤoߥpߥoߥoߤoߥppppooooߤoߤnߣnߣmlߢkjhfߣffߢfghjjhhiijklmmllnonlmnoppppoortv{㬀㮆尊沐洕緙蹞輢鿨¬Űƴȸɺ̽ľy-PuNeH\pȽѶĬ|zwed`MMF65+1.#@;-SL=i_Q~pe}sxsthb\RK<:0 !'(#9<:IKMSTYVZ_QUZKOUFKNBGKAEG@DE@DE@EGCHLEINFKNGKNGKNFKNAHL@FI?DE?CD?CE?CE>CD?CD=BB@6>B4=A6?C7AE:EK=IPBMSFPWKT\QX^U[bY^d\`e_chaekcgldhldileimgjnhkogjndgkaciZ^fRW^KPVCJO=GKh_Q~pe}uyssgb[RL>:1!"()$:<:JKLTTYWY_SV[LPUGKOBGJAFHAEF@EFBFIDHLFJNGLOGKOGKOFKOBILAFI@EF?CE?CD?CD?CD?CD>BC=BA;@@9?A6>A5=A6>C7AE:EK=IOBLTHPXLT\QX_V\cY^e]af`chbejdgldhleimeimgjnhkogjoehladiZ^fRX`KPVCKP=GL=GM?JOGOUPUZW[`]`ebdhdfjehlfimfimfimgilhjmhjmgimgjnikngjngjogkofjogjnfimfimgjofjnfjnfimgjngjngjngkn}H}H}H}H~ILPV]gÑpŗzȝˣͨϭҰնػȽǽǽȿɾŷ±俬㻥ᶟ೙߰ޮެݫݪܨܨܨܨݩު߭߮ᰏᲒⳕⴖ㴗㳖ⳕⱒ⯎ᭉଃੁߩ|ߧxߥvޤtޣrݣoޣmݢmݡlݡjޠhޟeݟbݞaܞ`ܝ_ܝ^ܝ_ܝ_ݞ`ݟaޠdߡdߢeߣgߤijmnnnppqpqtttuvvuttssrqrrrqonpqqppppppqqprrrrqrrqqqqpqonmllkkkkkllllkjklmnonnoooppppqpprqrrtw{孀密屋糐紕線蹞鼢«ıƵȸʺ˼̾ڿAy>Z&BZ8MfHYtP`~HUqAMc;ȹ±ط˯}{xeeaNMG76-0.$?:.UL>h^P}od|tysthd\SN>90!!((#:<8KKKSTXWY_SV[LPUGLPCHK@FH@EF@EFBFIDHLEINGLPGLOGKOFJNCHLAFI@DG?CE?CD?CD?CC>CD>BCA6=A7?C7BF:EK=IPDLUIPYLT\PX^V\cZ^e^bgadicfkdgldhlehlfjmfimhkogkneimadiY^eQX`KQXBJQ=GN=GN?JPFOUPUZV[`]`fachcfjehlehlfimfimgimgimhimgjmgjngjngjngjnfinfjnfimfimfingjnfinfimfimfimfimgjnfjm{G|G|F|F}IKOV\dnĕxǛɟ̤ΪЮӳַؽȼĶ佪㺥ᷟ᳚߰ޮݭݬݫުީݩܨݨݩݩޫ߬୉ᮋᯎᰐⰐⰐ⯌ᭊଅߪ~}ߨzߧwߥuߤsޣqޣoޣmޣoޢnޡlޠiޠfޠcޟbݞaܝ_ܞ_ܝ`ݞ`ݞ`ޟbߠdߢeߢfߣhߤjlmnpppppqrtssuvuutttsrrrrsqppqqpopppqrpqqrrsrsrssrrrqrqponomlmkllllkmkklnpopoonoppqqprqrrrrrw{寅汊泏純綘鸝黡꾥ªðŲǷȸɺ˼̾ȾHxRy 8M2IbH]yEWyNf;ͽͻ̺˹Ƕڸͯ{ygf`NNG67-0.$>:.SKBC>CC?DD>CD>CD@7>@6=@7>A7BG9EK>IPCLUHPXMT\PX^V\bZ^d]ag`dibejdhldhlfimfjmgjngjngjndhladiZ^fRX_JQWAKQ:.RKCD@7>A6>B7BF:EL>JPCLUHPXLT[QX^V[bZ^e\ah`dibfkdhleimejmfjngjnhkogjnfimbdj[_fRX_KRXAKQ=HO:.RL>g^O}oc}q~zvuid^UM@<6 $&(#;<8IKKSUYWZ_TW\LRWGLQEIMAFH@EG@FHBGJEILFKNHLPHMPGLOFKODILBFJ@DG@DE@CE@DE?CD?CE>CDA6=A6?B7BG:DK=IOBLUHPYMU\PX_W\a[^f]bh`dicgkdglehmejmgjngjnhkoikofimaej[_gSX^KRWALR=HN=GNAJQIOUPUZW[b]`eadidgkehleimeimeineinfingjnfimgjngjofjnfjngjnfimfinfimfimfimfimfimfimgjnfinfimfim}E|D|D|E}G~GKQX`hÐnŖwȚʟ̣ͧЬӰմ׹ٽ½˽ǹIJ㻧ᷠഛಕްޮ߬ެޫުު߫ުުީިީިި}ި}ާ{ި|ߧ{ߧxߦyߦxߥwߦvަuޥrޤoޣnޣnޣmޣoޤoޤpߣoߣnޣkߢkޢjޡiߡhߡeޠeޠdޟaޟ`ޞ^ޟ_ޟ_ߠbߠcߣegkmnopqqsrsrqrsssstuuutuuttrrqrqrqpppqqrqstttsuuuttuutsrqqqqooonmmmlmmlllmmmopqqqqppqqrqrssrrsssuy~毃氇沉粎贑趕踙鹜꼡龦ííɹǷʮ}Uy8T0N*Cp1Kqy޻ïƲƲƱưǰưưưŮŮŮƮƭŬª㼪ٵ̯|}igbNOI58..0">:.SK?f]Qzob}q~zuvjc_VNA<5 $&'":;8JKLTVZWZ`TW\LQWGLPDIL@FH@EHAFIBGJDILEJNHMPHMPHLPGKPEINCGKAEH@DE@DE?CE?CD?DE?DE=BB@7>A7?D9AGHO>HNAKPJPWPU\W[a]`eadidgldgkeimeimeimeinfingjnfimfinfjnfjofjnejmehmfineileimfilfimfjneimfimfimfimfimG~E}E}E}GHLPW_gÐnĔuȚ~ɟ̣ΧϫүԴַػɼǹô⻨⸢൜߱ޯ߭ެުުުުުުުުީީߩި~ި}ߧ{ߦyߦyߦxޥtޤsޣrޣqޤoޤoޣmݢkޢiޢiޢkޢjޣlޣmߣmߣmߢkߢiߢjޡhߡgߠfޠdޠcޟbޟ`ޟ_ޟ`ޠaߠbߡdgjmnoqrsttsrrrststuvwwwuuuuusqpqrqqqrrrqqssssttuuutuuuttsrrqqoppoonnnmmmmmmmnnoqqqqrqrrrrssttsstsux{殂氆籈糌贐赒跗踚麞꼢꿧羦迧ųĶ˰Gu![1I,C_3Jk+Hr8W2R/M1K}2KrŶ®ì«««ëëëëëëêê⺨شʮ||igbOOI67-//$=8.RJ>g]Rzpd~s}uxle`WOB<5"%&'":<7JKKUVZX[aUX^MRWHMPCHK@GJ@FHAFIAGJDILGKPHLPHLQHLPGKPDINBGK@DG?DE?CD@DE@DE?DE>CD=BB;@@:??9>@7>A7?D8AG;DL>HQCMUHQZLT\QX`W\b[_e^bg`dibfjdgkehleimgjngjnhkohkneimbel\`fUY^LRVALP>HN>HNAKOIOVOU[W[a\`eadhdgkdglehlejmdimeinfimfjnfimeimfimeimeimejmeimfimeilejmeilfimfimfimfimgimgimfimPJG}F}F~GMPW_fÐmŔuǙ}ɞˢͦЪѭԳַ׺ĿǿǾǿǿɻƷô佨⹣ᵞಗ߰߬ߪުݩݩݨީުުުߩߨިިި}ާ{ާxަwߥvޤsޣqޢpޢmޢlޢjݢiޡhޢhޡeޡeޠeޡfޡeߡhߢkkjߢhߢgߡgߡfߡfޠdޠbޟaޟ`ޟ`ޟaߠbdfhkmpqrtutuuuutrttuvwwwwwvvuutrrqqqrqrrsrssssttttuusuuuttttsqqpqppoonmmnoonoonnpqqrrrsrssssttttsttsw{殁氅籇粉糌贐趕跗鹚點龨㹡座IJԵD"Z!Mn*B]#=\%Ae4S8X4V1Q5N?Wz˵¯ë꾥뿢뿢쿣¥¦轨ṥճɭ}|igbPNI78.0.$=8-QK=f^Pzod}s|vwkd`WOB>6$%%'!:<6KKLTUYX[`TX]MRWIMQDILBGJ@EHAFIBGJDILFJNHLQHLQHLQFKOCINCHKAEI@DE?DE?DE@DE?DE>CD=BC?8>A8?C8AG;EL>HPCLUGQZMT]RY`V\cZ_e^bg`dicgkdgkehmeimgimgjnhkohknfimbfk[_eUY^MRWCMP>HN>HNAJOIOVPU[W[`\`dadhdgkehmeildimeimeinfinfineimeinehmeimeimeimdileimeimejmeilfimehlfimehmgimfimfhl\RMJHHNRY_ŒeÐmŕuǙ|ɝˠͥϩѭӲն׺ڿÿƾżŻŻŻƼǾɿɼƸô㾪㺤ᷞᴚ౔߯߬ީݩݨݧݧݧިީߩߨߨ~ߧ~ߧ}ߧzߧyߦwߥvޤsޤqݢoݡkݡgޡeޡeޡeޡfޡfޡdޠdޠdޠcޡdߡfߡiߢjjgߡgߠeߡfߡeߠcޠbޠ`ߟ`ޟaޠaߠefhiloqrsuvvvvvvuttuuvvwwwwvvvvtstrqqqqrrrtsrstsssstutsutttttsrppqqpooonnnooopoooqqrrsrssssrstutttttuwz~篃籆粈糊糍鵒鷕踗麜꿩ḟὩὬ[*c;X!=V#:V(Bh&RUCF(L-J{Pkø鿨꽤鼡鼝꼜꼜뽝뼞콠콡쾡뿤缥߸Գǭ~~jhdQOI78./-$<7,QK=e]Pznd}s~|wxleaVQA=5$%%'!:;6KKKUVYX[`TX]NSXIMREJMCGJBEGBFGCGJEILFKNHLQHLQHLQGKPDINBGKAEH@DE?DE?DF@DF?DE?DE>BC=@B;??9?@9>A8?B8BG;EL>HPCMUHQZMT]RY`V\cZ`f]bg`ejbfkcgkehlfinfjngkngkniknfimbfk\`fVZ^MRWEMQ?IN?HNCKQHOVPV\W[`\_d`chdgkehlehmeimeineineineimeimeinfineimehmeimdhmdimeimdimeimehmehmehmfimehlfhlfhlĖqdZRPPRU\ahÑnŔtǘ{ɜˠͤϨѬӰյ׹ھÿǾƼŻĺĺĺĺƻȾɽǸĵ俫㼦⹢ⵝ೗఑߮߬ުݨݧ~ݧ}ݧ}ݧ}ި~ިߩߩ}ߨ{ߧyަyߦxߦwߦvߥuޤsޣpݣoޢkޡfޡeޢeޡeޠdޠeޠcޠcޠcߠdޡdߡeߡiߢhggߡeߠeߠdߠcޠbߟaߟaߠaߠacfhjlnrsrsuwvwwxwvvuuvwvwwwwwxwvuttrssrrrsstssssrrsstttsuttuttsqqqqqqqqopppppopppqqrqsstsssttstvuutvuwx{~節簃貇貉貌贐鶑긔꺝鿩ڲִTu)X>`9S#?^'Iu%R SN@A"I.Lk侰鿥龣鼟麜鹚鹙鹙꺚뻛뻛컜켞콟쾟뾤滤߷Գŭ~~khdRPK88./-#<8+PI;e]P{oe}s~|yymgbWRC?5%$%'!:;7JJKTVYX[`UX]OSXINREJMCFJBFHBFHDGKEILFKNHLQIMRHMQGLPEJOCHKAFI@DF@EG?DG@EG@DF@DF?BD=@C;?A9>A9>A9@C8AG:EK?HQDLUIQYNU\QY`W]cZ`f^ci`ejcglehmdimfingkogkohkojkofimbfk]`fVZ_NSYDMQ>HM?HNBKRIPWOU]W[a\`eadjdgkdhmdhmeinchndhneineineineineinfineimdhmdhleimdhmehmehlehmfimeilfimfimfimfimˡțyŕqc][\]_‹dŽhđmŕtǘzɜ˟ΤϨѫӰյغڿÿɿȾǽȽȾǽżĻĻĺĺĺƻǽʿɼǺƴı㼪㻥⸢ⵜ᳗఑߮߬ުީާݧ~ި~ިߩߨߩ~ߨ|ިzߧxߦwߧxߦvߦvߥtߤsޣqݢnݢlޡfޡfޡdޡdޡdޡeޡeޠcߠdߡeߡeߡeߡgߡffߡdߠdߠdߠcߡcߠcߠcߠcߠbߡdfhjlnpsuvvxwxyyxxwwvvvvwvwwwwxwwuuutttttsrssstsssrtttsutuuuvutsrrqqrsqrqpqqpppppqqssssttsstuutuutvuuuvxz}谂豅貈貌鳎鵎鶒껞ȦQs5t8W1I%?]#?`!Fs"P"W!OIH D}.Iw潩龤꼠黜鸙鷘鸘귗긘긘빘캙컜켝콞쿞뿤罦޹ԴƮ~khdRPJ97/0-#<8+PIA8>A8@C8BG:FL?IQCLUIPYMU]RY`W\cZ`g]bh`djbglcgldimeimfkngknhkohkofjncgl]`fVZ_OTYCMR?IO>HN@KQHOVOU\U[a\_e`djcgkdgmdhneiochndhmdhnchmdindhmdhmeimehmdimdhldimehmehlehlehlehleilehleimeilehlѬΧˡȜ{ƖrĒmÑhedŽfĐjđmŕtǘyɛʟͣϧѫӰִغڿÿȿǽƻŹķķĸŹƻǾȿǾƽżżŻĻŻƼǾǻ޾ȽǺƹŶò侫㻨㺥ⷢⵝ᳘౒ఌୈ߫ުߩߩީߪߪߪߩ}ߨ{ߨxߧxߦwߧwߦvuߥsޤqޣoޢmޢhޢfޡeޡeޢgߡfߢgߡeߡfߢiߢigggeddߡddߡddefefgkmnpsuxy{zyyzzyxwwvvvwwwxxxxxxwvvuuuuuuutrsssstrsutttuvuuuuuuttssrqrrrrrrrqqqqqqrstttuuuttvutttuuttuvxz|~证豃豅貇鳉鵋趑绣Je>~"R(@9T#>^*Go&Q[YM+O0S(J~1Qy乞湞點鹚鸘鷖귖귕귕귖빗치캙뻛콜¡çᾫֹɰjieRQL98/0-"=8+RJBD=AB:@@9>A8?B7?B8BF:FL?JQCMTIRZMU]RY`X\bZ`f]bhaejcgldhmeineinfknhkohkohkofjncfl^agVZ`NTYDMS>IO=HN@KRIPWNT\U[b\`f`cjcglcgldhocgnchncgmchmdhmdhmdhmeindimdhldimdhldhldhlehlehleilehldileileimeilfimֶӲҭϨͥˡɝ{ǙuƕsŕqŔpŕrƗvǘyɛ~ʞ̢ϦЫӰյغھþǾŻĸ࿰ྯ῰῰õŹǾɿǾƾƾƽƽƽǿɿǼߺ۸¶ĵ²徭伩㺧⸤ᷠᵜⴘᲔᱏᯍ୊ଇ૆૆ૄૄંંߪ~ߨ{ߧxxxwvvuߥsߤrޣoޢkߢhߣgߢgߣiߣijߣiߢiklmigffdddcdfggilmoqruxy}}}|{zyzxxvvvwwwxxyyyxxwvvwvuvuuusstsssrstuuttvvuuuttuuuttsrrsrrrrrrrrqqrstttuuvuuuvvuvuvuuuvwxz|~鰁鱃鲅鴉굏緗ݻZj@-e>_3M)@f(Cl @iKNLFEB"Eu[{쾡꼞꺜鹘跖鷕鶓궓귔뷕븖빖캘컚쾝¢ŨƭƳ²۽εkieQQL890/-#=8+QJIQCMTHPYNU]SY`W]cZ`f]bh`dicgldhmeinejnfjnhkohlohkpgjnbfk]`gVZ`LSYEMT>JP=IO@KRGOVNU\U[b[`f`djbfldhmdgodgnchncgmchmdhmdhmdhmdhmdhmdhldilchkdilehlehlehlehldhkeimdileimeimehlڼ׸ִӱѭϩ̡ͥʞɜ~ț|ț|ɛ|ʝʟ̢ϦЫүմعھ½Žĸྰ߻޺޸޸޸޹޺߻཮⿱ĸŻǽȿǿǿǿǿǿǿɾڸ⿮̣Ƨݺ۷ủ㻫㺦⸣ᶢᶞᵛⴘⲕᲔᰐᯌஊᭉᬇଆଆૃંઁ|xxxwvwvtߥsߤpߣnߣkߣiߣkllllmnmnmkhfedfefhkiloorsvx{{}~~}||{zxxvwwxwxxyzzyyxwuwwwwwvuuttsssrrsuututvvvutuuvuutttrrrsssssssrqrstsuvvvwwvxwvvvvwwwzvwxy|}鰀鱂겄겆굍븖޶_y?u) +3W'Ed2L'@7]"JX \OKD?{Aq߽뼟뻜깙鷖鷔鶓鶒궒궓귓뷔블빖켚ŧɰ˶̼ɽźһ~mjeRRL8:0..#<8+PHJQDNUHQYMU^SY`V]dZ`g]bh`dicfkdhmdhmejmgkohkohlphkogjncgl]`hVZbLTZDMS=INA8@C9BE;EK?IPDMVIQZMU^SYbV]dY`f\biaejbgkdhmeinejmgkohkpilphkpfjncgl]ahU[bMTZDMS>JOBD;@A:?A8?B8@C9BF_~?aDh>Zr?IQ_VOѪ٭ݯ߰ఒᰐ⯏ᯍᭉ⭈ᬅଅૄ᫂ી~|zzzywwvutsrrrsrqqqssssrpnnlkikklmnqstvwy|}~~|zxxwwvwwvwxxxyyyzywwxwwvtutstsrsrrrrrststtvuuutvusstrstsstrstssssstuvwxxzzyxxxxxxxxw{|wvx|것~곁긘֭X^kf>|(f:[7S7Y=h!F{HJPQL"TI+L3M߸鿡컜빚귖궒鵐鵎鵍鵍鴌굍붑빕켜åɱϼnkgSTM;:2/.#=8*OI;e[Qymb|sy|ohe[SGB9$'$% 9:5JKKUVZY\aWZ`QU[JNTFKPCGLBGJCGJDHKFJNGLPJNRJNSINSINQGLPCHMAGJAFI@EF@DEAEFBEGAEF?CD>BD;@B:@B9?B9@C9BF;FK?IPCMVIR[NU]SYaV]eY_f\bh^djbgldhmeinfjnhkohkoilqilpgjocgk^bgV[aOU[FMT?IP>IO?KPFPVNU^S[cZ`g^cj`fkaglagmaglaglaglbgmcgmbhmchmdhmdhmehmchkdilehmehmehmfimfimfimfimehlehlehlehlľ۾ٻظ׸ֶմճִַغ۾¼Ƽĺø÷·¸ùĺùø·ᾲ߻޸ݴ۰٭بզգ|ԡxԠvӠuӟtӠuԡyբ|֥֦רت٫٬ڭگܱܴ޶߷߹ߺ໩໫໫໬༬໬߼༬߻߻޻޺޺߻߼߽ླ¸úŽǿɻŷñ佬伩㼦㻥㹤㸣٫QvNkDb}Ac;\x*Mj;V&@W\WTϤۮެ௏ᮌᮊ⭉ᭅ଄᫃ઃ᪂᪀ᫀ}|{zzyywwutststtsssttsssqponmkllmnnpsuvxy{|}~}}{yxvvvvvwwwwxxxxyyxxwwwxuvuttttsrrqrqqrstttuuuuuvutttrssrrtssttstttuvxxxyyzzyyzzzzzyy걀ywxy걃버쳈쳈뱃趍㼫lxe{U#Y9_/J/Q5Y"Du+R'Z]aWHJK(M;Zǩ்鷘츗뷕굑鵐鵎鴌鵌鵌鵍뷓뺘Ū̷ȼoljTTN;:2-/"<8+OI:e[Qymc|t~z|ohe[SJC:')#%9:6JKKTVYZ]bX[`QUZKOTGKPDHLCGKCGJDGKFIMHMPIMRJNSKOTINQFLPCIMBHKAFHAEFBEGAEFBFGAEF@DE=BC;AD9?B9?B9@C9BFIO@KQHPWMU^S[cZ`g^cj`fkbhnagmaglaglbglchmchmbhmbhmchmdgmdhmdhldhldhmdhmehlehmehlehlehlehlehlehlehlĽºۿڼعظ׷׷عټۿ½Ǿŵ࿱࿰࿱῱῱߼ߺ޷ݴ۱٭ש֥Ԣ{ӟuҝpқjҚgҚgћgҜjҝlӞqӠtԢvբx֣|֥צשثڮ۰ܱܲݳ޴޵޵޶޶޷޶޶ݶݵݶݶݶݷݸ޹޺߻߽µùżǾʿǺĵ㾪㻧㸤ⷣⷡⷠ⶞ⵜ߯Tp:WqA]tId~QkMj;]{"Lo!Dg(BTyڭܩᭊᬈᬇᬄᬃ᫁᪂⪁⪁~||||{{zywvuuuuuttttttutrpponmmmoooqtvvxyz{{}||zyxvuuuuwvwwxxxxxxwxwxwwvvvttsssrqrqpqrssstttstuutttsrrrrsttrsssttuvvxzzyz{zzzzzz{z{|yyy{볈벀촇벃{´p{`=YURS{کܪઃ᫄᫂᫁⪁⪁᪀}}~~~}}{zxxwvvvvvuvvuuuusqpppoooooqruvvxxz{{{{{yxwwutttvvuvxxxxxxxwwxxwuvuusssrqqpppqrststrtuuttttttrrqqstuttsttvuvwxzzz{{z{{{{{|{{벂}zz{{췑쵇yޫѶdz[n?`S~Lx +F3Q4WAkBl"Gu$QWg"iU>>{=p5Pwܭ䱒鸕絏ᮉ糎鴎鴌鴌鴌鴌鵎귒뺙ƫ̷pmkWTO<;3..$;7,PH:dYOxmb|q|{|pjf[WGC<''$%8:6JJKUW[\\dXZaRV[KPTFKODILCHKCHKCGKFIMHMQIMQJNSKOTIMRHMPDIMCGJBFIAEIAEGBFFBFGAEF@DE>BD((%% 9:7JJKVW\[]dY\bRV[JPTFLPEILCGKBGJDHKFJLILPJNRKOTKNSJNRHLPEJNCGKBFIAEIBEHBFFBFGAEF@CE?CE+*!%$ 8:6KKLVV[Z]cX[bRV\JQUFLPDILCHKCGJDHKFJMILPJNQKOSKOSKNRHLPEJNCHKBFIBFIAEGCFGCFGAFG@DE?CD=BD;AC9@B9@C;CH=FM@JRENWJS[NV]SZaV\cY_f]ah_ciaekdgkdilfjofknhkoilpilpgjndhl_ciW\bPV]HNSCKPAKPEMSKQWPV\V\dZ`g]ch`flagm`gm`gnahnbhmaglbhmbhmbhmbhmbglbglchkchleimdhleimdhleileildimeimeimehleilüھټٻعظظظظعٺڻۼܿýݵ࿰߼޺ݸݷݷݷݸ޷ݶݵݴ۲ٯثרեԣ|ӟsқiїaД[ϒVΐRΏQΎM͎MΎLΎMΎKϏLΏLϐPϑQВSВTђUєVҕYҗ\Ҙ^ӚdӛfԜj՝k՝m՝o՞p՞o՞q՞r՟r՟rԟqԟsՠuաy֣|֤צר٪ڬگܱݵ޶߸໫Ἦᾰ´ᾯὭἪứຨຨ໨໨ἪὫ⿭õŹƹƺǺƹƷŵò徭佩⺢ᷞചಗ߯߮ެ߫ޫޫߪ߫߫ଇݪç[lI]sGYqJZsH]xKdPkPjRjIdAa4[}Dc8XATevܥz~z}z{{|{||}~~}||{yywwvuvwvwvvuussrqqppppppqruvwvvvwywwvwvttsssrsttttvvvvvvwvvwvuttsrqqqqpppppqrsrsstutttttsrqqrssrstttuvvwyzz{|{|}~|첁췋쵆췑춐뽣봌ҥy~MhGdGg>h=V5T)Eb ;\7YB{Bx MS\ ]$qnaJ#L!KOs綕߬Кzۤ鲊鳇鲅賆鳉鴍鵐귔뼛¥ȱϽpokYVR;<4/-#86*MG9bZOwld{r|}~plg]WKD=)*#%:;7KJKVWZ[^cX\cRV\KQUFLOEIMCGKCGJDHJFJMHLPKNRKOSKOTKNSHLPDJMCHKCGIBFGBFGCFHCFGBFF@DD>BC5/.$86*NF9bYOulb{q~~~qlf^VJF>')"%894JKKVX[[^cX\bRV\LQUHMOEILDHKDHJEIKGJMIMPKNSLOUKOUJNSHLQEJMCILBFIBFIAEHBFICFHBFGAEE?CD=BC:AC9@C9AD;DHRo7MlAY}=\DfJiIgHcB]{;Vs6Ww'Ms 0Q>]~lڤyݤrߨvruvwx{|{{z{zzyxwuuuttsrstsrrpqqqpqoooonopprsttuuuttrqqrrtssssstttttsttuuuuvustssqpppppoopqqrrtuuursuttsssrrssstuuvwwxxx|}~}첀첀쳁쳁쳁춆|뷌渠⹩t{Md;Vz3[6[I=~T-I De;`>pBuEwG~PNV ])b)b#T'P&O'I~bv̬͞赎굋氅鴆鲅貄賄贊鶐鸗꼞§ȱͽ¾qpmYWR=>4.-"86*LE8bYNul`zq}~rmh_XLG@),!"$9:4IJIWWZ[^dY]cSW]LQUHMOEILDGJDHKEIKGJNIMQKOSKOTLPUKOTIMQFJNDILCGJCGJBFIBFHCFICGHAED?DD=BC:AB9@C9BE:CG=GMAKSEPWJS\MV_RZaU\cX_f[ah\ci`dkbfkdhleimgkogkoilpilpgkndhl_ciY]dQV\KQVEMRBLRFNUJRXNV^V[cY`h]cj^dj`flahnahoagnchocgncgmbhmbhmchndhncgldhldgldhlehleimehmdhleilejmeileilehlfhmûۼٺطִֵֵճִ׵׶طٹڽþǾĹ཰߼߻޺޸߸޷ݶݴܲگ٬קաzӞpқhјaϕZϒVΏPΎNΎM΍K΍K΍I΍HΌFΌFΌEΌEόEόEύEЍDύDύEЍFЎHώGЎGЎIЏLАMАMАMѐMѐNѐNѐOАNБNВPђTђVғWҔWӖZӘ_ԙe՜i՞oՠt֢xץاک۫ܭܮܯݰݰݰްݯܯܮܭۭܫ۫۫۬ܬܭܮܯݱ߲೜ഞഞഞᴝജ᳚೗߳߰߯ޭުܨݥzܥvܤuܤsܤsݤtݤtݥsޥsޥsߥtߦtߨ{Ϫ]oBYwEYvL_E[?\?f@fBeIhKiA_9Vt5Rq%Lr 7WA^|~ӛoڤtߤoޣnuxvxyyyxyxxxvvtsrrrrrrsrqqqqpqooonnmlmopqrrrttussqqqqrrrstssttutttststttuuttssqoppopnoopqrssusussvuttsrstrtuusvwxxzyz}~~첀쳂쳁촃z겊췏쵉鸢ֲ_xIjA[|9c4c>sNGn4T7T2T3R8\GNAJREOWJT]MV`QY`V]cX_fZ`g\bi_djbgkcglehmfjngjohkphkohkoeil`ciX^dQW]JPVDMRCLRENUJRYQX_U[dY`g]ci`el`hm`gmbhnagnbgnbhnbhnagmbhmchndhmdgldgldgldhmehlehleimeimeimeileimeilfimfhl»۾ڻٹظ׶ض׶ض׶ضظٹڽĿƾĹ´ྰ߻߻޺޹޷ݶݴ۱ڮتצՠyӝnҙfЖ]ГWϐSΎM΍M΍L΍J΍J΍HΌGΌFΌEόDόDόCόDЌCόBόAόBЌBЌCЌDЍCύDЍDЍEЎFЍEЍFЍGэFюGЏIЏIАKАMАNёPђOѓPҔTҖZӘ_Ԛbԛf՞j֡sעxإ~٧٨کڪ۫۬۬۫ڪک۩ڨڧڧڧڧڧڨۨ۩۪ܫܭޯް߰߰߱߰߯߯ޮެޫݩۨ{ܥwܣsۢqܣqܢnܢoܢpݢoݣpݣoݣoޤpޤpߤrاJbATr;T|;U4X>e?hBiChEjGgC`8Ts3Rp"Oo 8X 6Znoyȗqwڟcޣmytuuvwwxvwwvutrqpqqpppqppppppoonnonmmoppqqrssrssqrqrrrsstttuvvuttstuututuutsrrqppoooooqrrsvwsurtwwvutsttuvvvuwxzzzz{~~챀첀춐z屌춏踑䲑iHs9Y}?f:dHI"^ :`1L:W;\R^[Z[[^_`!Z(^L"N%N?7/-#85+MF;bXNuk`zr}}rni`[LF?++"!#792JKKVX\\_eZ]cTX^MRVIMQFJMEHLCGKDILGKOIMQKOTLPULPUKOTIMRGKODILBGJBGJBFJCGIDGHCGHAEE?CE=BC;AC:AD:BEGNBKSGPXKS]NW`RZbU]dW_fY`g\bi^djafkdhlehlgjohkohkpilphknehl`ciX]dQW^KQVDMSCLRFOUKSZQW_U[dY`g^ci`em`gmagnagmagmbgnchobhnahnbhmbgldhmdhmeimdhleilehlehmeimeimeimejmeimehlfimfilƿĻ۾ڼٻٺعظضضضظٺ۾ȿżøµ཰߼߻߹޷ݵܲ۰ڭة֥ԠyӜmјdД[ϑUΏOώMΎL΍K΍IΌGΌFΌFΌEΌCϋBϋAόBόDόBό@όAόAЌAЌBЌBό@Ќ@ό@ЌBόBόAЌBЌBЌCэDЍDЎEЏGяIЏJяJѐJѐKѐLђRҔUӖXӗ\ԚaԜh՞l֠rעxؤ{٤~٥ڦڧڧ٦٦٥~٤{٣z٣w٣u٣uآv٢w٣w٣x٥|ڦ~ۧܨܩݫݬݬݭެޫޫީݨܧ~ܧyܤtܢpۡo۠n۠k۠jܡkܡlܡkݢmݢmݣmޣnޣoߤrⳙSjK^~@Rr9Oy9Y?dBiDm@i@hϋ?ЌAό?ό>Ќ?Ќ@ЌAЍBЍCюDюFюEюFяGяFяFѐIґLђPҔSҖUӘ\Ԛ`՜f֞mנqסuآxآyآxآyءuءsءrؠnןmמlמjןkןj؟l؟nؠq١t١uڣxڣ{ۥ}ۦ}ܧܧܨܨݨݨ~ܦ}ܦ{ܥuܤpۢnۡj۠j۟k۟h۠gܡhܡiݡiݡkޢlޢmޢmߣoߣpީǹUqH`DUs7Kp9V5V2X@iHmEiGiJi>]5V0Qu)GeDc:[.KIYi“kЕ]ۣsߥsstuvvwpvutsrrppoopoppppppnoppooonnmoqqqqrrssststsrrsstuwxxxxxwuuuuuuututssssqpppppqqrry豅鲊鲊簂|pxyyxwwwwwwvxuwy{{|{v쳁첀봇⭂ɛ{VwrQz:n@u%@W5p@{/rMw?\'=,E3W5Y!Ai(Fs)Ft)Jz&Jz"NS \XRRH(Q/Paḕ㶒ԩ˞嶗緘鹙麚꼞뾢¨Ʈʶξsro[YT@?6..#75*JD8`WKuk`zq~}smk`[NI@,-# #683IKKVX\\_f[]dTX]MRWHMREJMCHKCHKFIMGJLIMQLOTLPULPVLOUINRFKOCIKAHKBGJBGIDGICFGCFGBFG@DE=BD΋>ϋ?ϋ?ϋ>ϋ=ϋ=ϋ>ϋ=ϋ>ϋ?ϋ?ϋ=ϋ=ό>ό@ύAЍBЍCЍCэDэDюEюFяFяFяFґLёLѓPҕSӖX՘]ՙb՜h֝j֞l؞nםmמlםjםhלg֛eכbכaכaכb؛b؛b؜d؜e؝hٞlٟnڠqڡrڢsۤvܤwܤxܤyۥxܤvܣuۢtۡpۡjڠhڟg۟g۟g۟fܟeܠfܠgݡhݡiޡjޢlޢkޢmߣnީּvEa8U9P|4P|;YC_OjQlQnTpPnLlGiAb6X}"Gc"Gg8Z0QBP_jȏY՞nޤpqturvmuutrqpppppopqpqqpoopppppopnopqqqrsstutttttsttuwwxyyxxwwvvvvvvuuuttsttsopqqpqrsr{貈鳊貉毂}py{yzxxwwywtxty{}{}{t쵂9촅︐糉䰐u~ryuXobwgSAqZ{>q8|)Ml'A]FD&X1H 02M=\7T6W5V6[!:`+Ek,Hk/Ls9S{5R}$QU OH'W0Tn乕߯繘Ⳕ֨麝黟꽡ĩűɷͽsro[YT?@7..#75*KF9`WKsj`yq~}smj`[MIB..& #795IJKVX\\_e[^cUX^MRXINRFJNDHKEILEHLHKNJMQKOSLQUMQVLPVINRGLODILAHKBGJBGJDGKCFHDGHAEF@DE>CDGMAKSFOVJT\NV_RYbU\eW^eZ`g\bi^ci`fjcglehmejmgjnhlpilphkpehl`diY^cQX^JRWENREMQGOVLSZPW_U\cY_g\ck_elafmahnbhnbhnbhnbhmbgmagnbhmahmcgldhmdhmdhmdhmeimeineimeinejmejmfimfjneineimſüۿڽڼڽ۽»žļĸ¶༰ߺ޸޵ݳۯڭ٪ا֣՟vԚlї`ГXϑRϏOώJ΍HόFΌE΋E΋DϋCϋCϋA΋@΋@ϋAϋ@ϋ>ϋ>ϋ=΋=ϋ>ϋ<ϋ;ϋ;΋<ό>ϋ=ϋ>ϋ>ϋ<ϋ=ό=Ќ@Ѝ@Ќ@ЍBЍBэCэDэDюEяDяEҏFҏGѐIґKҒNғPӔUԖZԘ^՚a՚a՚a֛`֛`֚_֚^֚^֙\ՙZ՘Z՘Y֘[֘[֙\י]כ^ל`לc؝f؞hٞkٟmڠmڡn۠mۡnۡnۡpۡo۠l۠i۠e۟d۞c۞c۟d۟dܟdܠdܠfݠfݡhޢiޢkޣlޣlߣnxᶤB]3Nva,RU#Sױಓ纛ఒ躞㴙軠齤êƱɸͽtto\ZT@@8/.$75*KE9`XLsj`zp~}tnka\PHB,-% #784KKKVX]]`f[_dVY_NRXINSGKNEILDHKFILHKOJNQKOTMQVMQVLPUINRFKODILAHKBGJCGKDGKCGJCGHBFH@DE>BC>BD;BE9BF;EJ?HNBKRGPWJT\MV_RYbT\dX^eY`g\bi^diafkcglehmfjnhkoilohkohkofin`diY^cRX_KRWFNREMQGOVKSZPW`U\dY_h\ck_fm`flagmbhobhobhnbhmbgnbgnbhobhnchmdhmdhneineimeineimeineimeimejmfimfinfjngjnſü¹¹üƿǿ϶῱߼ߺ޸ݵܱڮ٫רץ֢|ԞtӚiі_ГXϑPΏMώK΍HΌFΌDΌE΋DϋCϋB΋A΋@΋?΋?ϋ?΋>ϋ=ϋ<ϋ<΋=ϋ;ϋ:ϋ:ϋ<ϋ<ό=ϋ=ϋ<Ћ=ϋ>ϋ>Ћ>Ќ@Ќ?ЌAЍBэCэDэCюDяDҏDҎDҎDҏDҏGҐGґKӑLӔQӕSԖV՗X՘X՘W՘W՘UԗU՗UՖTՕSՖRՖSՖU֖W֗W֘Xי[ך\ך^؛b؜d؜e؝eٞfڞgڞgڞfڟg۟gڟg۟g۟d۞bڞb۞`۞a۞c۞cܞcݟcݟeݠeݠfޢhޢjޢjߣkߢkߣnޣpͳTmH_L`G_Jf<\7^9`/W/Z7c7]AaFe?^9Yz0Mj%E`Ff;[ +1Q-FacWQiןnߢellpoqurrqpprrrqqrrrstrssrrssrqqsrsrttuuuvvvvuvuuuwxyyzxyy{yyyzyxwxxxxwxwuvuituvvwvsx것볈豈~ߤpܞbot므ypryvݢfoo{~}곂w찂}v버ﶎ첇诃봐ߪ۪|wJ]uTuj:d;g!Cv"FyJ~IM!S"V&Y3Y@Y/SC]ƝΦܲ缞㸜罣轥鿨ìƲɸ;uso][V@A80/%75*JD9`WLsj`zo}~unlb\OJC--%!"784JJKVX]\`e[_cUX^OSXIMRGKNDHKEHLFJLGKNJMQLQTLQUMQVLPUIMRGLODILCHKBGJBGJCGKDGJCGIBFH@EF?CD=BD;BE:CG;EI?GNCKSGOXJS\MV_PYaT\dW_fX`g[bh]chaejbgldhmfjngkohkoilogkneimaej[_eRX]KRWFNREMQGOUJRYPWaT[dY_h\ck_fmagmbgnbgnbhobhoagmagmbhnbhnbhnchmchmdhmeineimeimeinejneineineingjnfimfjnfinƿĽüûüĽƾŽø཯໭߹޶ݳڰ٬ةצ֣~ԠxԜpҙgі]ГVϑPώL΍J΍GΌEόC΋D΋CϋAϋA΋A΋A΋>ϋ>Ί=ϋ>΋<ό<ϋ<ϋ<ϋ<ϊ:ϋ:ϋ:ϋ;ϋ;Ћ<ϋ=Ћ=Ћ?Ћ?Ћ>Ќ?Ќ@Ќ@эAэAэAэCҍDюBюAҎCҎBҎAҏEҏEӐHӐIӑKӒMԒNԓRԔQՕRՔQՕRՕQՓPՔP֓PՓPՓOՕQՕR֖S֗U֗Vי[י[ؙ]ؚ_؛_ٜ`ٜ`ٜaٜbڜ`ڝaڝaڝa۞b۝_۞a۝`۞`۞`۞bܞcܞcݟcݟdݟdޠeޡfߢhߢiߢkߢkߢkmݪHaI`;W2O(N,U3c@gIeGdA_=Y~;V|=Y~=Y{6On&Dd%EbGh>a(E=_=IQi٠rՕTikrnuurrrstttrssstttttsssutsrrtuuuwwxwxwwxwwvvvvwyyz{{z{|{{{yzyyy{zzyvwvxyjnxxzzzuw뱀벂謂ݡpӕ`ȎPٜgmꮁwsڡjסr~їgȏW֚eߦw豁갃걃鲐ܥ{䫁ܤwܥwڥ|䮍ء|إӤdhuGf9`Pks*Z5q1n*iHm"Ko)YIwCe:jH Hn(<1K#FoHxH~!J%J}EwEw)Hv0O{/S0X-W(W!X[\IS1XrŦԮЧ̝ݶ佢©ªĭƳɺ;vsp^ZU@A8//%75*KE:`XLtj`zn|uplc\OLD00(!"783KKKWY]\`e[_dVY^OSWJNRGKPEIMEHLFJLHKOJNRLQUMRVMQULPUJNRHLPEILCHKCHJCHKCHKCGIDHIAFG@DF?CD=BD;BE;CG΋?΋?΋?Ί>ϊ=ϋ<ϋ;ϋ<ϋ<ϊ<ϋ<Ћ<ϋ;ϋ;Ћ;Ћ;Ћ<Ћ:Ћ<Ћ>Ћ?Ћ>Ћ>Ќ?э?эAэAэAэCҎCюAюAюAҎBҎBҏCҏDӏFӐGӐHӑJԐJԑJԒKՒNՓOՓOՒNՒMՒMՒNՒMՓMՓMՔN֕O֖R֖SחVטWיYיYؚ[ؚ[ٚ]ٚ\ٛ\ٛ\ڛ]ڜ]ڝ_ڜ^ڜ]ڜ^۝`ڜ^۝^۝`ܞbܞcݟcݠdݠdޠeߡfߢgߡgߢhߢjߢlnߧ~Wo>V|@W)Dx CW+\8aDfHnGjIgEe5Rx7PrBD΋>΋=Ί=Ί=΋=Ί=ϋ<ϋ:ϋ;ϊ;ϋ;ϋ;ϋ;ϋ<Ћ<ϋ<Ћ:Ћ9Ћ:Ќ;Ћ=Ћ>Ћ=Ћ=Ќ=Ѝ?Ќ?ь?э@эBэBҎBҎAюBҎBҎCҏCӏEӏDӏEӐEӏGԐGԐHՑHԑJԒKՒLՒKՒKՒKՓMՓMՓLՓK֔M֔M֕N֖PזRחSטTטUיWؙVؙWٙXٙXٚYٚYٛZٛZڛXڛZڛ[ڜ^ڜ^۝]۝^ܞaܞaݟbݠbݠdޠdޡdޡdߡeߢgߢiߣklsүfyBZ}-KyΊ>΋=Ί=΋=Ί<΋<Ί=΋=ϋ<ϋ:ϋ:Ћ;ϋ:ϋ;ϊ;Ћ<ϋ;ϋ<Ћ;Ћ;Ћ:Ќ:Ќ<Ћ=Ћ=ь=э>Ѝ?э?э@эAэBэBҎCҎAҎCҎCҎEҏDӏDӏDӏDӏEԐFԐFԐGԐGԐHՑIՒIՒJ֒K֒JՒKՒKՓK֓K֓K֕L֕MוNזQזPחPטRטSؘSؘT٘V٘VٙXٙXښXڛWڛWڛXڛZڛ]ۜ]۝]۝]ܞ`ݟaݟbݟcݟcޠeߡeߡeߡdߢfjklnۯBZ~2O}2V5W] e%f2kBlOsNoHgDcNkIeGdYpEYq7Qm.Lj"JjA`/I0K3Ll4DXn]ViȔevtwttv{~|wzyzzzvyxwyyyz{tpyzy{{||||{{{|zz||}y}{{~~}첀}{w}}~~첀첀vpw|uv۟^xꮃޤm؟kː`_kR{nZ{_Sl^~zcǔzmumdRLeXmfOFDYSYeUSg`{iYVQxqtympZ_m[idMhCE=CF;CF;EK>HOBLSHPYLT]NWaRZdU]eX_gZah]bh_ci`ejcgleimfjogkpglphlqhlqfjnaek\_fTY^LSXGNTFMSHNUKRXRW_V[d[`g]cj]el_gm`ho`ho_hmahlagmbhobhochodhoeiodioeioehneinejneineinfjngjofinfingjngjofkoȿźµ῱߽޻޸ݵܲ۱ڮ٬تب֦֢|՟uӜlҚdї^ѕ[ВVϐOϏLώHύCόBόDϋA΋>Ί=Ί<Ί<Ί>΋>Ί<΋<Ί<ϋ=ϋ<ϋ;ϋ;ϋ:ϋ:ϋ:Њ:Ћ<Ћ:Ћ:Ћ:Ћ;Ќ:Ќ;Ќ<ы<ы=ь=ь>э>э?э?э?эAю@ҎAҎBҎCҎCҎDӏEӏDӏDӏEӐEԐEԐEԑFԐGԐGՑIՑHՒJՒI֒IՑJ֓L֒J֒I֔KהKהLהLוPؕPؖMזMؗOؗPؗR٘R٘T٘UٙVڙVښWښWۛYښZۛ\ۜ\ۜ[۝\ܞ_ܞ`ݞbݟbޟcޠdߡeߡeߢfhjkjxݰH_?^C\ EW7h;tPuFtGsHjPqOoPnKgG_HcRe:Rr+Kj#E\%Hd@a/M 6YX =T>KZdesjܤ}{~rzw~|x{|||{x||z|{{|vry|y||}}{}~}{}||||}xzzz첀~~첀쳁쳂첂u|}쳁{nv{ޢov۟cϕ]ܢ{\ndubn\mT{h_^PP]OFtc_}gc~|jij]`E?>^ON`SX7:?=DOGGQGDFOKOdcqIXjZoTh\mJfFhDh;^}=]>Zyl/Qq.V;Y1XF[@\<\?Z?U=\7WG_ʱķĿwvt^]XCD:01&75*KF9`WLsj_zo|vrmc_TLD20("682IKJWY]^`e\`fU\bOTYJOTGLOGJNFIMGJNILOJOSLQUMQVMRWMQWKOTHMREJODILDHKDHJDHJDHIDHIDGGBEE@DE>CEIOBLSGOXLT\OXaRZcU]eW_gYah\bi^di`fkagldhmfjnhlqhlqhmqhlqfjnafk\_fTY_LSXGOUEMTFNUKRYPW^U[cZ`g]cj]el_gm_gn_gn_hnahmahn`hobiobhociodhndineineineineineinfjofjnfjngjogkofjnfjofkoƻõ῰߻޹ܴܶ۱ڮ٬تبצפբ|՟uԝmҙfї`ѕZВVАTώMώIύEόBϋ@΋>΋>͊<Ί<ϊ;Ί;Ί=Ί=Ί=Ί;ϊ;ϊ;ϋ;ϋ<ϋ:Ћ:Ћ:Ћ<ϊ:Ћ;Ћ:Ќ;Ћ;ы;Ћ:ь<ь<ь=ь=ь=э?э?э@Ҏ@ҍ@ҍAҎAҎ@ҎCҎAҎBӏEӏEӏEӏDԐEԐEԑGՑGԐEՑHՐIՐI֒L֒LՒJ֑J֑J֒K֒K֒J֔K֔KוMוNהMؕOؖNؗMؗOٗPؗP٘R٘S٘SڙUڙVۙVښVۛWۛYۛZۜZܜZܝ\ܝ^ݞaݞbݞbޟcޠcߠdߡfߡghiiin߫ȽVi/S*J)HCf9dOu@rEuNvKlFiEkBiJm@_6Rz=ZH]w6Vz/Nl(E`>\?\ +,I1PM;Z,Q~>L_Ϛv欁}y{z밀xz||~{|{~z{{}}챀xsv}||~|~z~~}|}}{~{}y{{x쳂첀}쳁쳃}쳄x{{촃쳂un嬀ԚjFБd~C‘{xWzwy`XuePha[ZSQLFETKLZQQl\bKGHFEECCL@=C@AM28B-1@*0:+5@1>QBSjUpXxPl>VqFdXUc(@d+Go+Fm,?\$8U&:X1Il5Oy+N}'PO TXL,P=[4R`nӺдxwt`^YCD;/1'75)JE9^WKri`zm{vqndaTKC00("583GKJWY]]`f]`gU[aPUYJOSGLOFJMFIMGJMHLOJOSLQVMQVMRWLQVKOTIMRFKODIMDHKEHJEHJDHJEHICGGAEE@DE>CFHNBKSHPYMT]OXaS[dV]fW_fYah\ci^di`fkagkcimfjngkohmqimrhlqfjnafl\`fTZ`LSYGOUEMTGOUKRYPW_U\dY`g]cj]el`gm`gn`gn`hn`hmaho`gobhocioeineineineioeineiofjoejnfjngkofjngjogjogkofjofkoĸ༬߸ݵܳ۰ڭګةצפ֢}աyԠuԝmӚeј`ѕ[ГVϐPЏMώJύFύC΋?΋>΋=΋=Ί<Ί;ϊ:Ί:Ί<Ί<Ί<ϊ;ϊ:ϊ9ϊ:ϋ;Ћ:Ћ9Ћ:Ћ<Ћ;Ћ:Ћ;Ћ;Ћ:ы;ь<ь<ь<ь=ь>Ҍ>э>э@э@Ҏ?ҍ@ҍAҍAҎAҏAҎ@ӏCӏCӏEӏDԏCԐEԐGԐGԐGՑHՑIՑJՑJ֒K֒K֓J֒J֑K֒KדLדKדJהJוLוLוLהLؖNٗNٗOٗN٘P٘Q٘R٘TٙTڙUۙVۚTۛWۛXۛXۛYܜ[ܜ\ܝ]ݝ`ݞaݞaޟaޠbߠcߠeffgfgi઄n{5S7U+I;^KnKrIwNzKsEl=m5f;k=b?f>c@cUnF]5Pq-Km$?\!Eb:W-J1OGn B\4N0Zmp֢箅zux{s~}zyx첀zy{|~|rqwx~y}{|z~}|~z~{zvw{r첀쳂쳂}{벀촁검}tަp﷉﷉쳁간נg٥Zc9mLdArdj[kZKjdiea]VRMHAb[_LJKEBG7:?556FADQIR9;A6:@;@I7:?>BU/7E&*9!'5%.=*8L5FZ?[sOpHe=YuKtL~Z?i-Uw,Sz3X}#Gg+T}/?az+B2K=aJn-C4NBZzCFь=Ҍ?ҍ?э?ҍ=Ҏ@Ҏ@ҎAҍBҎBӎAҏ@ҏAӏBӏCӏCԐCԏDԐFԐGՑHՑIՑJՒL֒J֒K֒J֓J֒I֒K֓J֒IדJדKהJוKוLוKؕLؕMؗMؗNٗN٘O٘PژRژSښTڙTڙUۚUۛVۚVۛWۛYܛZܜ[ܝ\ݝ^ݞ^ݞ_ޟ`ޟ`ޟ`ߠdߡeeefghzضOgCX8WPl?iGsDsDsDrAl1a5a3Nn1Ln+Gq*Fc-Ij0IcG[r-B\,Hi)B]9R&Jie6Z4W3X3VB[|ƼжϷxxub^ZFE=01%75)JD6_WKsi_yo}wqndaVME12)"482IKKWX]^ag^`hW[bOUZKPSHMPFJMEHLGJMHLPJNRLQUMRWMRWMQVKPTIMQGJNFIMCILCHLEHLEIKFHKCGHBFG@CF>CFHMBLTIQXKT\OXaS[cV]fY_g[ah\bi^ciaejbgldimeinhkoilpimqhlqfjobfl]ahU[aNTYHNTFMRFNTJRYPW^T\cY_h]bk_el`fl`fm`hoago`go`hoahobhndhneioeineineineinfjnfjnfimgjnfjnfjofjogjofjogjogkoƻ´཮޹ݴڱٮ٫ש֧֤բ}ԠxԟtԝqӚjҙaҖ[ѓWВRϐMϏHώDύCύBόAό?ό=΋<΋<΋<΋:ϊ8Ί9ϋ:ϊ;Ί;ϊ:ϊ9ϋ9ϋ:ϋ:ϋ:Ћ9Ћ:ϋ:Ћ<Ќ<Ќ;ь<ь<ь;ь;ь:э<э>э>ҍ@ҍ?ҍ?ҍ>Ҏ?Ҏ@ҍ@ҎBҎBҎAӏAӐAӏBӏBԐCӏCԏEԐDԐGՑGՑJ֑KՑJ֒J֓J֓K֒I֒J֓J֓I֔JדJדJוKוKוKؖLؖMٖNؗNٗN٘O٘OژPژR٘RڙSڙTڙUښTۚUܛVۛWܛXܛYܜZܝ[ݝ\ݞ\ݞ]ޟ_ޟ`ޠaߠcߠcdefghj两Xi'P@cF_AjAmCq5n9n9.;64;76@<>A>A010/0/89822435;03904:..7*-4)+0*,27:D9;F,/9&)3(*03:H-3@")3&4#->"-9Pf?WuNi4Ld4Rm=dAe1Sn:_/Vw8Q =Z7P%8U),98GZ!.A &.0I'^Fv/\0DX1Hd);X 2O'@-LCrHw(Hl'Gn/Im0Gh1Jl0Ko3Oz2M|4P~&IHXY"P)P SO[rzxuc_YFF>03&75)KE6^WJrh^yp|xrnd`SME02)!371HKJWX]^`g^`gW[bOU[KPTHLOFJLEIKGJMHLPJNSLPUMRWMRWMQULPTINQGJNFIMEIMDHLFILEHKFIJCGHAEGADF>CF=BFHNBLUHQYKT]OYbS[dW^fX_h[ai\bi_dk`ekbgldhmfjogkoilpimqimqgjocgl\`gUZ`MSXIOTFMSGOUJRYOV_U\dY_h]bk_dlafmagmagnaho`hoahoahobhndineineinfjofineinfjofjnfjnfjmgjnfjogkpfjofjofjogkoǼôὭ߸ܴڰ٭تר֦֣ա{ԟwӝsӜnӚhҘ_ѕZВSϐNЏJώEύDύCόBόAό>ό=΋;΋<΋<΋;ϋ8ϊ9ϋ:ϊ;Њ<ϊ9ϋ8ϋ:ϋ;Ќ;Ћ;ϋ8Ћ:Ћ:Ќ;Ћ:Ќ:ь;э<ь;э;э;э<ҍ=ҍ>ҍ>ҍ@Ҏ@ҎAӎ@ҎAҎAӎBҎBӎAӏBӏAӐAӐAӏBԏCԐEԑEՑGՑGՑHՑJ֑K֒J֓I֓K֓K֓J֓KהJהIהJהKהKהKؕKؕLؖLٖMٗNٗN٘O٘O٘OڙRڙRۙRۚTۚUۚUܚTܚVܛWܛXܛYܛXݜZݝ\ޞ\ݞ]ݞ^ޟ`ޟ`ߟaߠaceffhi崍ǵ9[RmI^?`7b'cFuIq8e,^?fNmQoMkQnZvOmJfTmcw>Xx9W|4Qt+Gf#C^(Gb Mn7RSzY6Q"Ms&Z/g6e5^Lm;OdBMZ]Zcpf[ƍ\ڞw㪄첎kޡj؝iϖ]ަіl[ɑ]zĊ?wmלYs՛aĎZҙa~{첁xxu՗`ҘbƊSNĊ_֜qԙfۢwȌX˔hќgۦ|ϗiӞu櫊͒f|]>dP^Ml[GjMj٣`}ehYYOO?=?0/2''),./79;::@779012014)*2),4,/804923;&).'+2%'/9W"0 ! +9P#HkJzl3e&@Z $- 7 4/D(>Y(Aa(Df)B`7No2Fe6Lm1Gi.Ei9Nj>Qo*Ae4P|4YS'P"J%M*U-[yzxtc`ZFF>23(75*JD5]VIrh^xo{wsoe`TNE01)"480HKKWX]^ah^ahV\cPV[KPTHLOFJLFIKFJNHLPJOSLPUMRWMSXMQVKPTHMPGJNFIMEHLGIMFHLGIKEIJCGHBFG@DF?DFINBLTGPYLV^OXaS[dV]fX_hZah\bi^cj`ejbgldimfjohkohlpjmqimqgkocgl]`gTZ_MTXHOTFMSENTKRYPW_T[dY_h]bk_em`fmagmagnagoaho`hp`hnbindhmeineinfjofinfiogjpfjnfjngjnfjngkpgkpgkpgkogkogkoǿƾƿƿǽõᾯ߸ݴڰ٭٫ר֧֤բ|Ԡxԝtӛkҙdј^ѕXВSϐMЎHЎFЍCόBύCόAϋ?ϋ<΋<ϋ>ϋ=΋;ϋ:ϋ9ϊ8Ћ;Њ;ϋ9ϋ6ϋ8Ћ;Ћ;Ќ;Ћ9Ќ:ь<ь;ь8ь8ь;ь<э=Ҍ:ҍ;ҍ;ҍ<ҍ<ҍ<ҍ?Ҏ@ӎAӎ@ӎ@ӎ@ӎAӎAӏ@ҏAӏBӏAԐAԐDԏDԐDՐEՑFՑGՑH֑J֒J֒I֒I֓JדKגKדJ֔JהKؔKؔKؕLؕLؕJؕKٕKٖMٗNٗNژOژOٙPژQڙQۙQۙRۚTܚTۚSܚTܚUܛWܛWܜXܜYݝZݝZݞ]ޞ_ޟ`ޟaߟ`ߠ`bddegq~ᯈȼYrTo/N1[=gAnEp9l=m>fGjGjKmKlKgQnRnXuLdOd_o=Xz;W{7Pr.Gd%B[+Kg<_4NHpT-AGq)d"]2o.e6o9k2]0QnKYkh[Zrb^̏fÈ`yXro[mqqkhUŒfp7̕gҖ\ɎVTɊ`sFrJ[ߥr讁wwǍUwEnGrSv\AeUwQ[{SlJtRwR{\tUuMÏrxOXH2\J>VF?B@::@215((,*+//18*,276:/*.317)*1),4+09+2;(,3!('+4%)2&*406G#'3 +#"$5& )")7%-@&$1E+.CF=CF;CHIOCMTGPYLU^PYbS[dV^fX_g[ah^bi`dkaekcgleinfjohkohlpjnrimqgkocgl]agTZ_MTYHOTGMSFOTKRYPW`U\eX`i[ck^emagnagnbhobhpbhpbipbiocindineioejofjofjofjogjofjofjofjofjofjofjogkpgkpgkogknƿƽƾƿŹ߻ݷ۲ڮ٬تר֥֣~աzԞvӝnӚeј^ѕXВRϐMЎIЎGύDЌDЍDЌBό?ό>ϋ=ϋ>ϋ>ϋ<ϋ9ϊ9Њ9Њ:Ћ;Њ8ϊ5Ћ7Ћ9Ћ:Ќ;ы:Ћ:ы;ы9ы8ь8ь9ҍ=Ҍ<Ҍ;ҍ;э<ҍ<ҍ<ҍ;Ҏ>ӎ?Ҏ@ӎ@ӎAӎ?ӏBӎ@ӏAӏAӏAԐCԐAԐDԐDԐDՐEՑFՑGՑH֑K֑J֒I֓IדJדK֓I֓I֓IהKהKؔLؔLؕKؕJؖKؕKٖLٗMٗMژOژOڙRڙQۘPۙQۙRۙQۚRܚRܚUܚUܚUݚVݜXݜWݝXݝZޞ\ޝ]ޞ_ߟ_ߟ`aacddfhl崐F]A=dElAnGqAp=h>f=fZ| 8M9M3Nh3OAdA_ *CB`'_`&[1q.hPz Py,W+Jh>aHWh]Wct~W`mluYlrn}t~mrXao}ybJhG}T|e0~^aKz^NrZ;^̗a֚kםgݠzyJiN:]I=XG:IB;ME@RD6mY@iQTC6\MGZL@VJ>TH@`QLm]n\H=881/?:9::8976A=?LC8ij@>A78:79>:=D0/3,*0(',,.4)+2++/'%*-+2./7(+5"'1'.<$)2 )#-*0;#(0%,9 '4',8*&('%!!+$!+!.&/BX!3D'6:Wv !&)4#SSeD=Q +  +  +.A Vh_Ii# .I$8P';"6Q)Ei$Cg)In7T6Q{6PuAU}CU|AV}=PvGW|5Lv2M|2Q3X-U3T7R;W:X8Y*Ulzywca\HG?21'64)ID6^UIsh\xnzxupfbVOG44, "671HKKXX]_ai_bjV\cRW\LPUHMQGJNFIMFJNGLNKOSMQVMRWNSXMSXLPUIMQGKNFILEHLEIKGIKFIJGIJDHIBFH@EH>CF=CF;DH;EK?IPCLTGPYLU^QYbS[dW^fX_h[`g^bh_djaejbgldhnfiohkoilqjmqhnqgkocgl^bgU[aMTYGOTENRFOTJRYPW_T[dX`i\bk^dl`fm`gnagnbhobgpcipciocindindindjpeiofiqfjpfjofjofkpgkpfjogkpfkngkogkogkpgloƿƾƿƿȿĸ⿰߹ݵ۱ڮګةקץף}բzԟsӜiҙ`їZєUВSЏLЍIЎGЍEЍDЌCЌAύ?ό=ϋ=ϋ=ϊ;Ћ;ϊ9Ћ:ϊ9ϊ8Њ6Њ6Ћ6Ћ9Ќ:Ћ:Ћ9ы;ы;ҋ:ҋ7ь8Ҍ;Ҍ=Ҍ;ҍ;ҍ<ҍ=ҍ<Ҏ<Ҏ<Ҏ<Ҏ=ӎ?ӎ?ӎ?ӏ?ӏAӏAӏAԐBԐCԐCԐCԐDՏCՐEՑFՑGՐFՑG֑H֑H֒H֓HדIדJדJהKדKהLؕLؔJؔIؔJؕJؖJٖKٗMٗOڗMژNژPڙRڙPڙPۙQۙRܚQܚRܚRܚSܚTܚTݚVݛVݜWݝXޝYޝZޝ\ߞ\ߟ]ߠ^_abcdgikoⴙ@^$PVo:eOAhFnJuPʑveC@66A:>A<=441643431866PG?=86878;=AFEL:89HEDQIIXPO52042/501967:7851373763;549237+.6)*3+)/-*2.-7*-4*-3'&+"!&" ))*4%'1!%0(.> (4$0"'2).9#,!*'0@)($  &!1@".%->!*560+F|u!   )B`.wJ Ej3H4J': "-3O*@e'Bi+Gs1Ju/Jt5O|=O~9My7Ku5Ep1Cn#@r"F"Q&R)MC L-S&XPSgz{zyb`\GH@31'64)HC6]UHqg[wn{xuoeaVPH23+ "561IKKVX]_aj_ajW\cQUZLPUHLPFJNFIMFJNHLOJOSMQVNRWNRXMRWLPUJNRGJNFIMEILEIKFHKFHJFIJEHIBFHBEH?DE=CE;DH;EK>HODMTIPYLT^PXbU\dW^gY_h[ah]ai_cjaejbgldhmfjohkoilpjmqimqgkocgk^ahUZaNT[HOTEMRGNTJQXOV^T[dW^g[aj^em`fnagnbgnagoahpbhpcindineineineiofipfjqfjogkpgkpgkpfjofjofjofkogkofkoglpglpȾĸ`ߺ޵ܱڮ٪ةئץ֣}ՠwԞpԛfҘ`Җ[єWёRѐNюJЎHЎGЍEЍCЍ@ύ>ό=ό<Ћ;Ћ<Њ;Њ;Њ:Њ:Њ7Њ7Ћ7Ћ8ϋ8Ћ;Ћ:ы:ы9ы8ҋ7Ҍ9ҍ;ҍ<ҍ;ҍ<ҍ=ҍ=ҍ=ӎ<ӎ<ӎ=ӎ=ӎ?ӎ>ӎ>ӎ>ӏ@ӏ?ԏAԐCԐCՐEԐDԐBՐEԐDՐF֑GՑF֒H֒IגHדH֓GדH֓HדIדIדKؔKؔKؕJؔIؕKٖKٖKٗLٗMٗNڗNژNژOژPۙOۙPۙQۙRܚQۙQܚRܚSݛTݚTݛUݛTݜVݜXޝYޜYߝZߞ[ߟ\ߠ]^_abffiko䱍ԭ\s@e_mEhEp7jIt?kAi4bGmFe8aB`B\}9Sw5Rn-Fg,Ij:To=Sg`mBSj2Oj;Yy?Zw2Id1I2F"DdEg(T{T 7XFm^=^0I*Fd#Hh@kAjHp?bCgB[sk@WnAUe]g{.5<78?JHI:67210EAH>;-..65374386611086:54<+).10333:.2;$%.'$$-(*3/2<$&-%#)" "* * %0(-<!.+'!&/%"+!)8)%  + +  # $-; + "/=.>>C9OKDU +   8Q!ba?m$72I"6N*1'9[%9[+Cm&Fy(G{-Fv-Dt+@n(h(ҍ=ҍ=ҍ=Ҏ<Ҏ=Ҏ=ӎ?ӎ>ӎ>ԏ?ԏ@ԏ@Ԏ>ԏ@ԏBԐCԐCԐBԐCՑEՑFՑFՑF֑F֒F֑F֒G֒G֓G֓GדHהIדIؔJדJؔKؖJؕJؖKٖKٖKؗLٗMٗNڗNڗNژNژNۘOۘPܙRۙPܚPܙQܙQܚSܚRܚSܚTݛUݛUݛWޜWޝYߝYߝYߞ[ߟ[]^`adem簂鴌宂㰒cyMa<]!WKt](=8S:VBn5Vz,Mm+OmBkDb}=[w7Rh9VkYs%,6$/:)0;-0:#&)06048-0347=.//:94663'((009<>J,+1)*/''0%&0"#,$'#%.-/8%&,)(.!" #-$)8 '4&)!'5!*6""-    + +  +  + *1Azs&  4J 4_3j\(Ot+<,=1E0H&:Y3T%l'CE=CGы<Ћ;ϋ:ϋ;Ћ;Ћ;Ћ9Њ7Ћ6ы6Ћ5ы7ы8ы8ы8Ҍ6Ҍ8Ҍ9Ҍ8ҍ9ҍ;ҍ=ҍ>Ӎ=Ӎ<Ӎ;ӎ<ӎ=ӎ=ӎ>ӎ>ӏ>Ԏ>Ԏ>Ԏ?ԏ?ԏ?Ԑ@ԐBԐBԐCՐEՑEՑDՑFՑFՒEՒD֒F֒E֒E֓G֓FדHדHהJהJהKؔJؕJٖKؕJٖLٗMٗMٗNڗMڗLڗMژLۘOۘPۙQۙQۙQܚPܚQܚQܙRݚRݛTݚSޛUݛUޜVޜVߜWޝWߞZߟ[[]^_acejmk笁뽐ŪdtEcD5aGnFpBmSuIiPlWsQmZsMhCcGePqSsSrJfRpXtrL_CX{BWx3Ih1Ie.?"4J";P"Hf4pS +Ft )< . +) *)A:V$5 "3K,Oo:Ws>R)Sy@d+EU1G]-CW.EYPj"'/$#*!*!%%)0,5A(.5$(.-1<#%.",+3<8>H-052/1&%$**.%'/9GZ5>H)+2'(/36A*-6;AK02<+).8BG`#7\)Dk,Cm0Gp3Jq8Mt6Ho7Jo7Kp?PsETwBRwASyKZO\K[L\K\GX}ATwDW{ShVm|о}zxcb]FH>23$54&HC6]UGqf]xn{yvqfcXOI44,460IJIXY\`ch_bhY\cSW\LQUHMQGJMGKLGKMIMPLOSMQVOSXOSXNRXLPUJMRGKPFJNEIMFIKGJLFHLHJLEHIDGGAEF?DE>CF=CG=EJ>HOCMTHPXMU^QXaT[dW^gZ_g[ai]cj_di_ejbgkeimgjogkphlqimrhlphkodgk^bgV[`OU[HPWDLSFNUJPWMU]SZcW^gZaj\cl_fn`gn`goahqahpciociocincindjofjpfjqejpfjpfjofkoekpfkogkogkpgkpglphlpglphlpžļüĽſƺ༬߷ܲۯګ٩٧ץף{֡w֞r֜n՚gԙdӗ_ӔZђSёMяJюHэEэDэCЌ=Ќ<Ћ:Ћ;Ћ:Ћ9ы8ы6ы4ы5ы5ь8ь8ы6ҋ6Ҍ6Ҍ8Ҍ9Ҍ9Ҍ:ҍ:ҍ=ҍ=Ӎ>Ӎ<ӎ;ӎ<ӎ=ӎ<ӎ<ԏ?ӏ=ԏ>Ԏ>ԏ?ԏ?ԏ@ԐAԐAԑCՑDՐDՐDՑD֒G֒F֒F֒E֒EגG֒GדHדGהIהIהIؕJؕKؔJٕKٖLٖLٖLٗMٗOژOڗNڗNژNژNۘOۘOۙPۙOۚPܙPܚQܚQݚRݛRݛSݚSݛTݛTޜUޜVߜWߝXߝYߞZ[]^_`begilz鹃լ\m5TGUp:h?pPsHl\tav^tUi6Y7^EgMmKkKmSrWtPk9VvLi{FSs;Mg7J^->P3G_!1G0D$2=Z)Y,p0G&: +#= + #   +0?(=T%;U&D^>_~-EV#3@"4B,BULc|&1?'",5@(/6$(/48E"(3 ,28F/5A',3-04&&(46A69C-2=9?L7;E"%+36@+.4).6.19),4yp#%1;#MiLBn&AX'- %0N/N.K"4U+Cb-Ab4Gi6Hk:Jk;Ll?OqGStHUwDUyBTz?R{DG=FJ?HOBLSIQXNV_RYbU\eW^gZ_h\bi]cj^di`fkbgleinfinhkphmqimrinrgkpdgl_bgW[`PTZGOVDMTDMTIPXNU^RYbU]fYaj\dm_fo`gp`gpahqahobhndjodindindjoejoejqejpfkpejpfkpfkogkpgkogkpglpgkoglpgkpglpƿżû»ûľʿŹຨ޶ܱۮڬ٩اؤע{֠t֝o՜jԚgԘcӗ\ҔVҒPѐJюHюEюEэEэ@Ќ<Ћ:Ћ;Ћ9Ћ6Ћ5Њ4ъ5ы5ы6ы6ы7ҋ6ҋ6ь6Ҍ9Ҍ:ҍ;ҍ;ҍ;ҍ;Ӎ<ӎ=ӎ<ӎ;ӎ<ԏ>ԏ=ԏ>ԏ>ԏ<ԏ=ԏ>ԏ>Ԑ>Ԑ@ՐBԑCԑCՑEՑFՑD֑D֒F֒F֒E֒E֒EגGגGגGהGהGהHؔIؔIؕJؕKؕKٖKٖLٖLٗLڗMڗNڗNڗMژNژMۘNۘNۙNۙOܚOܙOܚQܚQݚRݚQݛRݚRݛTޛTޜTޜUޜUߝVߝXߞYZ[]^`aceikmr᫐kt#JA^@Z;fUxJpYv\sOjIf9Z:_OjMjHlNtXxVrOh=XuOgDXrBTnt~CSpPeM`?Un5Kb 8S,? /0G(b5yCF>DG>FJ?IOCLTHQYLU^RYbU\eX_hY`i\bj]cj^ej`fkagleingkpgkpimqimrimrhlpehm^ahX\`PUZHOVEMTENUIPXMT]SYbU]fYak\dm_gp`gpahp`hpahociodiodindindjodjodjqekrekpfkpgkpgkpgkpgkohlpglpgkphlphlphlpƽĻººĽȼôὭฦ޴۱ۯڬ٩ئף|֠v֞q՜kԛhԙdԘ^ӖYғRҐLҏIяGюDюEюBЌ=Ћ<ы;ы9ы7ы5ы4ы4ҋ6ы5ы8ҋ5ҋ6ҋ6Ҍ8Ҍ9ҍ;Ҍ;Ҍ;ҍ<Ӎ;Ӎ:ӎ:ӎ9ӎ;ӎ=ӎ>ԏ=ԏ?ԏ>ԏ<ԏ<ԏ<ԏ=Ԑ>ԐAԐBՐCՐCՑDՐCՑB֒D֒F֒F֒G֓FדGדGגGגGהGהFؔHؔIؔIؕIؖJٖJٖKٖJڗLژMڗNڗNڗLژLژMۘMۘMܘNۘMܙNܙOܙOܙPܚQܛQݛRݛQݛRݛSݜSޜSޜSޝUߝVߝXߞYZ\\^_abehknr⫅>[VnE[GmLrZzXwdzMj9^KiJcFbUpVuZvUnG]7Mg^,Bf0Jv6Q0M~>TFYDW=N5FzAL{|>In.<_/>`O]k~{yfb^IIA33)74)GB3[TEoh\yn|zushbXQJ66,450IIHUX]_bh^chY]dRX_LRWIMQHLPGKOHKOJMQLOSMQUOSXQU[MSYLPVINSHMPGJNFIMFILFIMGILHJKGIJDGHAEF@EG?DF>DG>FJ?IOCMTIQYMV_RYbU\eX_hY`i[aj\ck^dk`fkaglcinfjohlqimrimqimrglpehm^biW[`PT[HPVFNUFMUHOWMT]RYbU]fYak]dmafo`gp`hpahqbipciodioejodjodjoekqekrekrekqfkqfkpgkphlpgkphkpglphlpgkpgkpgkpƽû¹üŽƹứ߶ݳܰۯڪ٧ؤ~סx֟s՝m՛hԙeԘ`ԗ\ҔVґMҐJҏFҏDюDэAЍ>ь<Ћ;ы9ь7ь6ы5ы5ъ7ы6ы8ҋ8Ҍ7Ҍ8Ҍ9ҍ;ҍ<ҍ<Ӎ<Ӎ;Ӎ;Ӎ:ӎ9ӎ9ӎ:ԏ>Ԏ>ԏ>ԏ@ԏ>Տ<Ԏ<ԏ=Տ=Ԑ=ՐAՐCՐC֐C֐D֑C֑B֑C֒E֒F֒G֒FדGדGדGדGהFהFؔIؔIؔHؖIٖJٖJٖJٗLڗKڗKڗLڗLژLژLژKۘLۘLۘLܙNܙNݙPݙPܚPݚPݚRݚQݛQޛRޛRޜRޜTߜSߝTߜTߝWYZ[[\^_beglos{JaWoNfIdQtRu_z:^6]YuNc^te{cy]sRk>Vu9UzD`B`3Mk:Rr4Kp7OsKWwU]x8Lp3Jl8PoRa~8Ps"4I.B4J*Mo"R|<{?Zjlm%  +   +   "*2)*89;    #+''#,' ($-704A/2@#-%+4;FP09F29F04>(*7 #.',93:K/1?&,68:L<=D"$&! '" &%")'&'`XmEEQ-069>G&'+&'.$)6 + )(17?DLX!&1$%/$!$+(+2&!%.&! +  +!+xk}'!#8G\M)Ma':(8 , 5%9!0G*9P5Db0CE>DG=DG>EJ?INBMTHQZLU_RYbU\eX_hZ`i[bk\cj^ek`fkbhmdinfjogkphlpjnsimrglpdhm^ciX\bPU[IPWEMUEMTHPXNU]RZcV^g[ak^enafoagpahpbipbipcipciofjodjoekpejqdjqekrekqfkqgkpgkpgkpgkphlqgkpgkpgkohlphlqĽ¹¹ļǻ³Ἤฦߵݲܰ۬٨إءyנu֝p՛i՚eԙ`ԗ[ӕVҒOҐJяFҎDюDэ@э>ь=ы;ь9ь8Ћ6ы7ы7ъ7ъ7ы8ы7ь7Ҍ6Ҍ7Ҍ8Ӎ<ҍ:Ӎ:ӌ:Ӎ:ӎ:ӎ9Ԏ9ӎ:ԏ?Ԏ=ԏ>ԏ=Ԏ<Ԏ<Տ=ԏ<Տ<Ր>Ր@Ր@֐CՐBՑC֐B֑A֑C֒E֒E֒EדFדFדFדGדEדEהFהHؕJؕHٖJؖIؖJٗKٗLڗKڗLڗLڗLژLژLۘLۙLۘLܘMܙNܙOܙNܙOܚPݚPݚQޚQݛPޛQߛSޛSޜSޜRߝUߜUXYYY[\__`cfjnt}ϧmvMc;XFaOi]{QqFmc|hxm~_uTk[t[uIdIfPjYoKfJcAX.Hs+Db4Qzhw^n>Uy7RyLBIR&+3%+!%.*.?$)6$+739I6AV/8>.8?177 $ %%526)%*"#%)*/0)+,"$*%)7$0#(3!+%49I.1=".(,3!$-7?M!' *%&/'#  +   # + i`x1!:6/8bdX  Hk?nCp8H%5  -#6#8!-D-D';X 6V-O"4U%6Y%6[+@h-Dn-Hs2Lx1K{(Fz9x :y8H;L| :d)=a/@`*:RP]_{xgb_IHB22(53(HB5\TFog[xnz{vricVQH14+34.GHHWX\`ah^ciY^eRX]LRVINRGLOGKOHLPJMQKPSNRVPTYPTZOSZMQWJNSHMPGKOFIMFIMGILHJKHJLGIKEHIBFG?DF=CF=CG>FJ?IOCNUIR[LU^SZbU\eX_hZai[aj]cj_ejagkchmeinfjoilphlpjmrimrhlqein_ciX\cQU\IPWEMTDMTHPXMU]RZcW^g[aj_dnagpbhobipbipcjpcipejqejpdjpejpekrdjqekrekqgkrgkqgkqgkqhlqgkqglpgkphlqhlqhlqžĺ¹¹úƾǼô⽬๦߶ݲܰܭڨ٥آyסv֞q՜j՚eԙaԘ\ӖWғOґKҐGҏDҎDэAэ>ь>ь<ь:ь9ь9ы8ы7ы8ы8ҋ8ы8Ҍ6Ҍ6Ҍ7ӌ9Ӎ9Ӎ9Ӎ9Ӎ:ԍ;ӎ9Ԏ9Ԏ9Ԏ;Ԏ=ԏ<ԏ<ԏ<Վ;Տ<Վ>Տ=Տ<Ր>Ր>Ր?֐B֐B֑D֑B֑A֑C֒D֑D֒DגFדFדGדFדFדFؔHؔIؕIؕHٖIٖIٗIٗKٗKڗKڗMڗLژLۘKۘKۘLۘLۙLܙMܙMܙNܙNݙPݚRݚOݚOޚQޛQޛQޛRޛRޛRߜSߜTߝVWXYYY[]_`cfhlo㬁ఛ{{?[3[ThThLiNowvo\qUoTmVqPiTkXpWnXoWkPaK_|NfF^{AY|-B\hr:CX)N83# +  !   */<!+$$'#&  )("-"/(6",*19.4>$#!(5%/6+5A*1?+1:".15>@ $."!;:BE@@!%(35??@GQQ["&0$)6!&2;BQ&+4(0;!(1JZh(+:)29*49).:$*2"'1 *!+!(5 )4 (    + +  + +  * *>,"+xC:Qv%%1&CqNs@p''7"$3&:1-%>1M1O 2Q#7W0O+M"4[2Dn6N|5P6Q+I,Gaohq1Cy+Co$<`*?`"6U 0Jkz|zgdaKJC33)53(GA4\SFng[wn{zxrheWRJ56-24.FHHWX\_ah^cjX^dRW\MRXJNSHMPGLOHMPJNQLQTNRWPTYOTZOSYMQWJNSGLPFKOFJNFIMGJLHKMFJLFIKEGJBFG?DF=DG=DH>FK?IPDNUIQZMU^QZbU]fW^gZai\bk^dj_ejagldhmeingjohkoilpjnrjnrhlqein_djX\dPV[IQVFMTENTIQXMU^Q[dW^g\bk`enahpbipbipbipciodjqdjpdjqekrekrekqekrekqekpfkqgkqgkrgkqhlqhlqhlqglphlqhlqhlqǾŻú¹úżǻõᾭ๦ߵ޲ۭܰ٩٥עyנu֟p֝k՛g՚aԘ[ӖVғOґJҐFҏDюBэAэ?Ѝ?ь<ь9ь9ь9ь7ы6ы7ы7Ҍ8Ҍ8Ҍ6ҍ6Ҍ5ӌ7Ӎ7ԍ8Ӎ9Ӎ9Ӎ:Ԏ9Ԏ9Ԏ9Ԏ:ӏ;ԏ<ԏ:Տ<Վ<Տ<Տ>Տ=Տ>Ր>Ր=Ց>֑AՐA֑C֑C֑A֒B֑BגD֒EדF֒EגFדGדGהFؔGؕHؕHٖHٖIٖIڗKٖKڗKڗKڗLڗLۗLڗKۘKۘLۘLۘLܙMܙNݙOܙNݙPݚQݚPޚPݚPޚRޛRޛQޛOޜQߜSߝTߝVߝWXXYY[\_adfiir~{1KzMiQhFZTpiYrCbC_WkLaOc[ue~WpVqVlJbBWq=Qg6Nh8Oj:Lk9IgO\pBXl>Qg4Ic]lEZx%>Z(; ;S.Qp0\J|c[q + +!.   !#!- (' #!(0"+!,%2!*8&0!)V_e#*7#2$,7-5B=DT/3<$*.).8/:T' )*08"'#*?CM109#%2!(3#-%S2I{?>B8O$B:t$>l+Ah?Rvэ=ь:э9э9Ҍ8Ҍ7Ҍ8Ҍ8Ҍ:Ҍ9ҍ7Ҍ5ӌ5Ӎ7ӌ5ӎ7Ӎ6Ӎ9Ԏ:Ԏ9Ԏ:Ԏ9Ԏ;ԏ<ԏ:Տ;Տ;Տ>Տ>Տ>Ր>Ր?Ր@֐?Ր?Ր@֑B֐C֐B֑A֒BבCגD֒EדFؓGؒGؓHؓGؔGؕHٖIٖIٖIٖJٕJٖJٖIږJڗKڗKڗKۘLۗKۘLۗKۘMܙOۙOܙOݙPݙPݚPݚQݚPݚPޚRޚRޛQޛQޜPޜQߜRߝSߜUߝVWXZYZ[^aceghmqu̙K\YlTnt~v^xPn]wpwpcuexawWrTn@Zx8Ok>\|CcKiQkYlYmXjRd^oSiJ_}Jdeq8If7Q%6&7;REwTu;Ux 4E + + + +%3$6!"(%1 + % %0!%1*&*5$'/NU[$,#4"'2*1;?EX'(0JNT/5A )5 '!)2(0:#&"""!"!$,7$(4')2#'3+-6(-8*8E$-.8G$.2-;@,7@(-715>%-)&!,) "-!#-A'7?`*Ku&Cc+E^ +C~4;L18  &CW"NsAa"?V-? +  #+ 1*=!3(>#4N'8X"8\":d&@n-H{&H~!F B_sUf>:s.Y/M+:W,>[4DcCV|AVyH[k~}zef`JJ@04'33&F@3ZSGmfZwm{|xsifZSM65, 14.GIHXX]`aiackZ^dRW]LRXJNSHMQHLOILPINQLPTORWPSYQU\OTYNRWKOSHMPGLNGJNGJMIJMHJMGKLEIKDHKBFI@EH>EH=EH=FJ?IPCMTHQZMV^PZcU]fX_hZaj\bj^dj_fkaglcindinfkohlqinqjorjnsimrein_djX]cPW^HQWEMSFNTJQZMV_S[eZ`i]dk_foahpbipbipcjqdjqdjqdjqdjqfkrfkrfkrfkrfkrfkqfkqhlrhkqhlrhlqhlqhlqhlqhlqhmqhlqƿƼĺúŽɾŹἫล޳ܰܭګڧؤ|آxנrמn֝j՜f՛aՙ\ԖVӔRҒMӐJҐEҏBю?э>э=э:э:ҍ:э9Ҍ9Ҍ7Ҍ6Ҍ7ӌ:ӌ:Ӎ6Ӎ5ӌ4Ӎ7Ӎ6ԍ6Ӎ6Ԏ8Ԏ9Ԏ9Ԏ:Ԏ:Տ;Տ<Ԏ9Տ:Տ<Տ=Տ=Տ=Ր?Տ>Տ>Ր?֐?֐@֑B֑B֑B֑BגBבBגCגDגEגFؓGؒFؓEؓFؕGٕHٖHٕIٕJٕIٖIڗJږJڗKڗJۘKۘKۗLۘKۘKۘMܙOܙPܙPݚOܚOݚPݚOޚPݛPޛSޛRޜQߜQޛPޜPߜRߝTVߝUVWYYY[\^`bcdhmu㪆{uReVhukw_q\vglb{ez^uSkRjGeDaKfHaKgRmToMhWobv^sQeE\zEXnFUq@Up@Ut6Ic\f/@^$4 "%6/Qr.VQg!9R" 0"'!$"/H!-*7F*/8(:*'#(0"*& 'AIT",5!- ,'*3)",s(DAX0C8/n (O*H#7U)E&@$5P6KoFK?IPCLTHQYMV_RZdT\fY`iZaj\bj]dk_ekbgldhmejogkpimrimrjnsjnsimrfjo_djY\cPV]JQWFNUFNUJQZNV^S[dZ`i^em_goaipaipbjqbjqekrdjpekrejqekrfjqgjrgkrhkrgkqhlshlrhkrilrhlqhlqhkqimrhlqhlqhlqǿżĻżǻĶỨ߶ݲܯ۬ڪ٦ףyנtןo֝k՜h՛d՚`ՙ]ԗXԕSӓOӒMӑJӐEю@ю>э<э8э9ҍ9ҍ8Ҍ7Ҍ9ҍ7ҍ9ӌ8Ӎ9Ӎ6Ӎ6Ӎ4Ӎ6Ӎ6ԍ4ӎ6Ԏ6Ԏ7Ԏ8Ԏ:Ԏ;Տ<Վ<Ԏ:Տ9Տ;Տ<Տ=Տ=Տ=֐=֐?֐?֐?֐@֑A֑D֑CבCבAגCגDגEבDגEؓFؓFדDؔEؔFؔFٕGٕIٕKڗKڗKڗJڗJڗKڗJۘJۘKۘKۘLۘKۘMܙNܙOݙPݚOܙNܙNݚOݚNݛPޚPޛPޛPޛPߛPߜPߜQߜRSߝTUWWXZ\\]_^`cilt欀@Tsfyhvkxixncu\ud~PjUqMgHdKiJfUm]sXsUpTo[t`vRhTlQjNiF`Xew{@Mb8Kd=Qv>X_p1D^%7*>!0&Ee9XyLZg) *6(5)Fb ' 8J#3%2*8*8K&0@# )+3!)3(5?!)+< $ ($/$1$/(9"0E):J'9U;Wr8_Ms+CX/C]IMn+:'3 + 9V1W%5(: +&'7).*-J)F'C"3S!2R3Y0\3b8rcoXa(?~7p +-e-U*>`+@b$7W 5W1N"3M2Fd2Mq1Ha}zge_KJB03(23'D@5ZSFmfZuo|}zukd]TL:7. 24,EHGWW\_ahack[_eTX^NSWKOSIMQHKOHLPJNQMPUOSWPTZPU[OTYNRWLPUHMQGLOGKNHJMIKLHKLHKNFJKEHJDGIAEH>EH>EH>FJ@IOCMUIRZMW_RZcU]fW_hZaj\ck]ek`fkcgleinfjofkpimrimrjnsknsjmsejo_dj[^ePW]JQVFNTGOVJQYOW^T\d[`i]dl_gnaioaipbjqcjqekrdjqdjqdjrekrekrekrfkrhkrglrhlshlrimrilshlqimrhlqimrimrimqilqƿżżƿȼŹ⽮ฦߴްۭڪ٧ؤ}סv֟q֝k՜g՛d՚b՘^՘[ԗXԕSӔQԒPԑNӑJӏEҎ@ҍ<ҍ8ҍ9э9ҍ9Ҍ9Ҍ8ҍ7Ӎ8ӌ8ӌ9ҍ6Ӎ7ҍ6Ӎ7ԍ6Ԏ4ԍ5Ԏ8Ԏ8Ԏ8Ԏ;Վ:Վ:Վ;Վ:Տ;Տ<Տ>֏>֐?֏<֐<֐?א@֐?Ր@֑A֑C֑CבAבAבAגDבFؒFגEؒFؓEؓCؔDؔEؔFٔGٕIٖJٖJڗJڗIږIڗKژJۘKۘKۘKۘKۙLܙMܙNܙOݙOܚNݚOݚPݛPݛQޛOޚPޛQޛPޚOߛPߜRߜQߜRRߝTSVWXY[[[]]]bfowzާ]hTggt^ml~gz\wXw^}cz]tWr[vXnZpYpRkVpRlSmOmOkTl`yi`tbxsyFYu3Kd7Ok5NmWi}!4M1H,?8N+JkQg{", + + '1= &.DW&+>'7'<,;Q#.?*5E!*9DKOEIC&*. -,+*,4!%&)-)+#*0?TLg1=J"+4! + + +  ) + '+=FSc$0=(*3=$5I^& #%.)+3&*)&# +-6#2I?Tt7Lm%=Y(;T4Di2DaUwMc$3Mhj}'; /)5  + !-8S9X/D' +):&0 +-I 6!7.H,E(<[1Ej@P2E$A%C7g$3V /N)F+I(:\);\"6S-Dc1FcC[CZ}{}{he`LKD13)31'C@5YSFle[uo{}{uke\SK97/ 24.EHHWX\`bh`ckZ_eTX_NRWJOSHMPHKOHLPIMQLPTOSXPTZPTZPTYNRWKPTHMQGLNGJNGJMHKMIJMHKMGIKEHIDGHAEG>DG=DH>FK@JOCNUHQZMV_QZcU]gW_hZaj\dk]dkaflbhmchmfjogkpflqimrjoskotimrfjo_dkX]dQW]JPVFNTGNUJQYOW^T\eZ`h^dl`gn`hobjqaipcjqdjrdjqdjqekrekrekqekrfksflrglshlshlrhlqilrhlqimrimrhlqhlqhlqhlpǾǿȾƼͲ⾭⻩෢޳ܮ۪ڨإעwןsמn՜h՚dՙaՙ_ՙ^ԗZԗXӖTԔSԓSԓQԓNӒLӐEҎ?ҍ;ҍ9ҍ9Ҍ:ҍ:Ҍ9Ӎ8Ӎ7ӌ8ӌ7Ӎ6Ӎ7Ӎ6ԍ7Ԏ7Ԏ5Ԏ6Վ8Ԏ7Ԏ8Վ;Վ:Վ9Տ:Վ;Տ<Տ<Տ=֐>֐?֐=֐=֐>֐@֐?֑@֑A֑BבCבBבAؒBגDגDבDؒFؒEؓDؓDؔDؕFٔGٔGٕHٖIٖHڗJڗJڗIڗJۘLۘKۘKۘLۘLܙMܙNܙOݙPݚOݚNݚOݚPݚQݚQޛRޛQޚPޚQߛQߛQߛRߛQߜRSSSUVWZY[Y[[^adhlt诇I[cqVhUkUf6R[ney[rLiazLiLfHbKcI^Tk\qdzaxh}f}`~g|aubwe{az|t~YpVhQfH`du4L 01I.A/HiT`o/D$2? #,?U#")-CQ+9O%6#4/?Y'!%./2114WbV+.) "&Tbq#&3'8A*/>4Ie'9C6Gc)$*2@ 93: + )6N09E)?K!1=,>Q%1Ch,< %'!!!)"%6Jh4Nm/Gc'AY'=U&9?Uz=V}AYuCIZ3+E%/#  ,0H8T$0  " $ * +)2%: /H.M*7]Y_Za$1R,I-I'=^*B^5JhEG=EH>GK?JOCMTHQYNV^R[dU]gX`hZaj\cj]ekagmbhmdinfjoglqgmrimrjnskotimsejoaelY^ePW^JPWFNUFNUJQZOV^T\e[aj]dm`gnbipbiqcjrcjqcjrcjqekrekqfkrfjqelrelrflrhlsilshlrhlrhlqimrimrimrimqhlqhlqhlpɿȾȽǻƺŸĵ㿰⽭⺩ᷤߴްܭڪ٦~آzנtמl֜h՚bՙa՘^՘\՘ZԗXԖXԖWԕWԕVԕSԕRԔPԒKӐEҎ=Ҏ;ҍ:ӌ:ӌ9Ӎ8Ӎ7Ӎ8Ӎ9ӌ8Ӎ8Ӎ7ԍ8ԍ9Ԏ7Ԏ6Ԏ7Ԏ7Ԏ7Վ9Վ;Վ:Տ9Տ;Տ;Տ;֐=֐=֐>֐?֏<֐;֐<֑?֐>֐?֑A֑Aב@בAגAגAגCؒDؒDؒFؒEؓDؓCؓEٔFٔGٕGٕGٕGږIږIڗJڗIڗIۘKۘKۘJۘKܙMܙLܙNܙOݙPܙNݚNݚOݚQݚQޚPޛQޛOޛQޚQߛQޚPߛPߜQߜRSSSTTWYXYXZ\]`behrxɣOhCbCaMf*NF^L^2NE`Nh>]4U=[DaTlWpcz_uVnXoWsZtRiBW~MdUhYocyi~l}WlKcF_AV~[a~#5-A#2.CQe{5F^5[! 5Pb+;2I_-79Uk8Vq:Kn-)1?#.#+6#&,T[[69:&2*EU-L_Gr*AN7FS!.,6D%++*" +    0F^Aew$5D/?R'2 *4-7BoEq*N]SIh2=A   ($3F;Qr(5L4Nl5Td'9L@\r>XpC`/A]~  + 1E4Q&<- +) +'%)*(/#;!=#*Oy|24f)M(K2\2d1b 3X.N-K /N#;$7U3Gl+Ab 1N*@1DbF[Vj|ffaKLC23)30&C?5XQDmeZul{|{vke\SL87.13+FHFUX\`bibelZ`gUX_NSYIOSHMPHLPHLPJNQMQUOSXQU\QU[QU\NSXLPUINQHKOGJNGJMHKNHKNIKOHJLFHICGHAEF>DG=EH>GK?IODNUHRYNV^QZdU]gX_h[bk\dk]ek`flbgldinfjogkphlqjnskoskotimsfjpaekY^ePW^JQWGNUGNVJRZOV^T[d[`i]dlagnbipcjqcjrbjqbjrdkrdkqdkrfkrfkrflsflrflrglshkshlrhlqhmqimrimrimrimrimrimqimqȽǼƺŸĶõô±ᾮἫẩฦ߶޳ݱܮګ٧أzסs֝m՛fՙ`՘]՗[՗Z՗ZԗXԗXԖWԖXԕXԕWԕTԕTԔRԔPԒKӐAҎ:ҍ:ҍ:ӌ9ӌ7Ӎ7Ӎ8Ӎ8Ӎ8Ӎ8Ӎ9ԍ9ԍ9ԍ8Ԏ9Ԏ7Վ6Վ8Վ9Վ:Վ9Տ9Տ9Տ:Տ:֐;֐<֏=֐>֐=֐;֐;ב>֐<א=֑?֑Aב@ב?ב>גAؒAגBؒCؒDؒDؒDؓDؔDؔDٔFٕFٖGٕGٕHږIږJڗIڗIۗKۘKۘJۘKۘKܙMܙNܙNݙOݙOݚOݚOޚPޚPݚOޚPޛPޛOޛPޚPߛQߜPߜQߜRSSSTUVXWXXY[\^aeglr䰖Fe9hX#[?X=p1J~4n(K8V9ZPlb{lhijmdzhi~f|^vZmNbJcLdJ_Zm\lUkD[}>X}7JfJ\p";V,@7P&8bky-Ii' + %0#-.=R*BT7Pd6F_#/,8/Fc)5&8G)5!3&NJS("";L2LWCcBk (276D(%     !!?Uz+5=6K`.F`'2!&6;-KY0\{mOy]+4*;3Th 064Ng&.-7#0ZӍ<Ӎ:Ӎ9Ӎ7Ӎ7ԍ8Ӎ7ӎ7Ԏ8ԍ9Ԏ:Ԏ9Ԏ:Վ6Վ6Վ8Վ:Տ;Վ:Տ9Տ:Տ:Ր:֐:֐;֐=֐<ב>ב=֐;א=א>ב=֐=ב?ב?ב>ؑ?ב?גAגBؓCؒDْCٓDٓDٓCٔDٓEٕFږGږHږHږHږIڗJڗIۘJۘJۘKܙLܘKܙNܚOܚOݚOݚPݚPݚOݚPޛPޛPޛOޛOޛNޛPޛPߜQߜOߜPߜRߜSRSSUVVVUWX[\^acfip뵏6U O`/]4h3QO3M\-Be-@e&:`&?c+Dj3Gn0Ad7Gg2XPFmd[tl|}yukfZTM97123,FGEUW[^bi`fm\`gVY`OSYJPSJMQHLPIMQKNQLPTOSXQU\RU\QT\OSXKQUINQILPGJNGKNHKNHKNHKMFJKEHJDGHAEG>EG=DH>FJ@KQCMUIRZMV_R[dW^gY`i[bl\ck^emafmdhmeiofjoglqimrinrkoskotjmsfjobfk[^eTW^LRYIOVHOUJRYOW`T\d[`i^dl`gnahpcjqcjqcjrbjqckrelsflsfkrflsflsemtflshlrhlrimrimqjmrhlqimrimrimrimrimsimrȿǽƼź÷¶ᾯ༭໫๩ฦ߷߶߶ߴ޴ݳݱݰܯܬ۪ڨ٥~أzסu֞n՜d՘]ԗZӔWӔTӕRӖSԕSԖUԖUԖVՖYՖXՖW՗WԖUՕTՕSՔOԓMԑIӐCӎ>Ӎ<Ӎ9Ӎ7Ӎ7Ԏ8ӎ7ӎ7Ԏ9Ԏ:Ԏ:Վ:Վ9Տ7Տ7Տ8Տ:Տ:֏;Տ:֐;֐:֐:֐9֐9֐=ב>֐=֐=א=א>ב@א>א<ؑ>ב=ב?ב>ؒ@ؑ?ؒBؒBؒCٓCٓDٓDٓCٔEٔEٕFږGږHږHڗHڗHڗIۘIۘIۘJܙKܙKܙKݚNݚOݚOݚPݚOݚOݚNޛOޛPޛPޛQޛQޛPߛQߛQޛPߜPߛQߜSߜRSRSTUUUVWXY\]`bcinsޥUc,UP +K4]@[Ym{{wsk^u^p_qavRjKcMgUnPiKgMeOdLcN]vnu=Ss/C_/Dc&>[7H[6@O+>-?&?Yepz1   )#0/Oi/Md.J`-@V8Yr#1B%)42&8H$4!/ "%.6La"/>Zx&@T?h *4L^ .; 2C/Fb+=[Gb}%;Y5On.>(A[*BZuwNGlv)&/ + !  +   " "!6'A(FMQz:@j$8Z'<`&?f&@f)Fj)Ad+@b.?_'7R"0J*D(D1O!8Y%;_#;_(Ch+Go%>d'<`2?_7G`Oas~hgbNLF24*00&A>1WODlcZum|}yukg[TN87113-GHEUWZ`bjael\`eVYaOTYJPSINQHMPIMPKNRLPTOSXQU[RU\RU\OSXLPUJNQHLOGLOHKOIKNILNHKMGKLFIJCFHAEG?EH>DH>FJ@IPDNVIR[MV_RZdU^gY`i[bk]dl^fmagnchleiogjphlqimrjnskotkpujnsgkpbfl\_fTX`LRYHOUHOVJRYOW_V\e[`i_dlahoahpdjqdjqckrckrdlrekrekrglsflsglsflsglshlrimrhmrimrjmrhlqimrimsimsimsimsimrɿǾƼŹķö⿱Ὧ໪๨߹޸߶޵ݳݱݱܰܯܮۭڬ۪٩ڨڧؤ}סv֟q՝i՛cԙ\ԗVӕSҒQӒPӓNӔPԔRԕTԖUԖVՖWԖVԖVԖVԖVՖUԕRՔPԓMԒJԐEӐAӏ>Ԏ=Ԏ;ӎ:ԏ;ӎ9Ԏ9Ԏ9Ԏ;Ԏ;Վ:Տ9Տ7Տ8Տ9Տ9Տ8֎9֏9Տ:֐9֐;֐;֐;֐=֑=֐<א>א>א>א?א>א=ב?ב?ב@ؑ@ؑ>ؑ?ؒ@ؓBٓDْCٓDٓCٓCٔDٔDڕEٖFږGږFږGږGۗHۗIۘIۘIܙJܙKܙMܚNܚOݚOݚPݚPݚOޚOݛOޛPޜQߛRޛQޚPޚQߛRߜRߜRߜRߜRߜQߜRSSSSTUUWVYZ\]`bfjlz5U0Q?ZA]cwjzhzzmOmOk9X=\Dd>\F[G[QbD\E^E`GeKdPfOeB\D\E]l{Ye/Dc,Hi7P/FNPh*;X@W'C^Sao13B +   + 1H!2F+;!5F@Wm+;&8B&:FP  R%7 *9X/FQJpC`{/J\;LYDq!+""  ' &%$#*%$@K&-< *1=D[q0P`-9P":N=Wf%-=M[z=av7M[%(8.Ha $2Ev*;Q!6M$8M#/A&=QDNebZxE5W.A(2= +  + +    $$4INX<>H +#:,JQPs*(H#:3Q$:Z(Ae%@e!>_"9Y#5S!3M"/E*?3#=,I!7W%=`#=a4W1V*K*6U)5Q:Ga:GVihdMMG25+/1&A>.XPDkcY~tlz~{uki\UN99202+FGBUWZ_aibek]`eVY`OTYKPTIMQHLOHLPJNQMPTOSXQUZRU\QU[OSXLQUJNRHLOGKOGKNHKNHLNHLMFJKEIJCGIAFH?EH>EI>FJ?IODMUIR[NW`R[eV^gY`i[bk\dl_emagnbhmdiogkpilqimrinskotkotjnthlrbfm\_gSX`LRYHPVHOVJRYOW^U\d[`i_el`hobipciqcjqcksckrdkrekrekrflsflsgmtfmsgmsimrimrhmrhmrhlqhlqimrimrhmsilsimsjmrȾƼź÷´῱Ὧ໫๧޷޵ݳܳ۱ۯۮۭګ٫٪ڨ٨٧٥إ~ؤ}آyנs֝i՛d՚^ӘYӖVҔQӒOӑKӑLӑKӒMԓRԔUԖTԖTՖUՖUՖVՖVՖUԕTՔSՓPՓNՒKՑGԑDԐBԏ@ԏ=Ԏ<ԏ=ԏ=ԏ=Ր=Տ=Տ<Ԏ;Տ:Տ8Տ:Տ<Ր;֐;א:֏9֐;֐9֑;֑<ב<֑=ב=ב=ב>א<א?ב?א>ב?ؑ?ב?ؑ?ؑ?ؑ?ؒ@ؓAْBٓDٓBٓAٓBٓCٔDٔDٕDٖEږFږEڗFڗHڗIۗIۘJۘJܙKܙMܙMݚNݚOݚOݚNݚOݚNޛOޛPޜQޛQޜSޛQޛQߜQߛQߜRߜQRQߜQߝQߝRRSSTUUVWYYZ\^`cgjnݯdn8j)HrWj`phzh{\oJ\Tn4N`2J?\m (!(2 + + + 3E&2 + $ $ +  % + 0Hb6]w,G[)J_)1*@W:^BSi(:Oa$07$2:%2B , '4/I]*B]oEH>EH?FK?IPDMTJR[NV`R[eV^gY`i[bk\cl_fmagmciodjqgkpilqimrjntkntjotjnthkrcgn\_gSY`LSYGPVHPVKSYPW^U\eZ`i^el`hobjpcjrcjrcjrckrdlsekrflsglsglsgmtgmsgmthlrhlsimrhmrjnrimrimrimrimsimsimrilqƿŽžƾȾƻø⿲ᾰἮຫ߹߷޵ݳ۰ۯڭګڪ٨٧ئإؤ}ؤ|أ{آyסv֠t֠rמo֛dՙ`Ԙ[ԗWӕSғQӒNӑIҐHӐFӐIӑIԒPՔTԕSԖSԖUՖUՖUՖVՕUՕUՔSՓPՓMՓMՒIԑFԑEԐBԐ@ԏ?Ԑ@Ԑ@ԏ>Ր?Տ>Տ=Տ<Տ;Տ9Ր;Ր<֏=֏:֏9֏9֐9֐:֑:֑<֑=ב>ב=ב<ב>ב=א=ב>ב>ב>ؑ>ؑ?ؒ@ؑ?ؒ@ٓAؒ@ٓCٓCٓCٓBٓBٔAڔCٔCڕEڕEږEږFڗGڗHژGۗHۘJܙKܙLܙLܙLݙMݚNݚNݚNݛNݛNޛOޛPޛQޛQޛQޛPޜPߛQߜRߜRߜQߜQߜPߜQQQRRTUTTUWXYY[\^bdgl鰀Oc]l`mm|BZSlG`1R0PEC!OAdIhQl<]:ZG`E\H^LbI_CY|LdJc=V|4.I&9Z'EH>FJ?IODMTIR[NV_RZdV^fZaj\bk\dl_emagnbhndipfjohlqinrjnskoukpujotgkqcgn\_gSY`MSYHPWHPWLSZQX_V\eYai_el`hobipckrbjqcksdksdkrflsflrhltglshmtgmshmrimsimthlrhmrimrimrimrimrimrimrjmrjmqǿżú·¶¸úŽƼõ῱༮ߺ߹߷߶޵ݳܰۮڬ٩ائإף|֢z֡w֠t֠r֟p֟o֞l՞i՜g՛dԚa՗\ԖWӕUӓPӒLґIҐHҏDҏCҏCҏDӐEӐIԒNԓPԔRՕSՕTՖTՖWՖWՕUՔRՔPՓNՓMՒIՒIՑFՑDԑCԐBՐBԐAԐ@ՐAՐ@Տ=Տ<Ր;֐:֐<Ր?֐>֐<֏;֐;֐;֐9֐:֑:ב=ב>ב<ב<ב=ב=ב<ב<ؒ=ؑ>ؒ>ؒ?ؒ?ؒ?ؒ?ؒ@ْAْAٓBٓ@ٓAڔAڔAڔBڔDڕDڕEږEږEڗGۗFۘGۘHۘJܙLܙMܙKܙLݙMݚOݙMݚOݛOݚNޛOޛOޛOޛQޜQޛPߜPߜPߜQߜQߜPߜQߜPߜQߝPQQRTUSTUVWWXY[^`cfjwⶨ`h=Lh.EkK`Y6Nu*Cg(AgGTztz4Lq.Ij7N.A2B]UZm *)Bgfc(&"1C/@/C%-:;OP;h}%3D (E[".3 + %2;  + (4@FVi8>U|Jq&-:&5E%'8F +   + -  + (@S(Je0Xx$,<%/G{(0&. &5A $. + + !,FJ?IODMTJRZNW`RZdW^fY`i[bj]dm^fmagncioeipgkpimrjnrkotkotkpukothlqcgm]`hTZaMT[HQWJPVNSZRX_W]f[bi_em`hobjqckrckrckrdlsfmtflsflshmtgmthmtgmsglrimrimtimsimrimsimrimrimrjmrilqjmrjmrǿĻ߿޽޽߾߿ûžƼĸ߼߹޶ݵݳݲܱۮڬ٪اץף|֡zՠw՟p՝nԜkԜgԛeԛeӚcԚaԙ^Ԙ[ԗZԖVӔSӓPҒMґJҐGҏEҎBю@э>Ҏ?Ҏ?ҏAӏCӑGԒLԓPՓRՔSԔSԕVՕWՕTՔPՓOՓOՓMՓJՒIՑGՑEՑDՑCՑCԑBՑBՑBՑAՐ?֐=Ց9Ց:֑<Ր?֑@֐>א=א<א;א:֑:֑:֑<ב<ב<ב;ؑ=ؒ=ؑ<ؑ;ؑ<ؒ<ؑ=ؒ?ؒ=ؒ>ؒ?ؒ@ْAْ@ٓAٓ@ٓAٓ@ڔ@ڔAڕCڕCڕDږEۖEۗEۗEۘGۗGۘIܘKܙLܙJܙJݚMݚMݚMݚMݛMݛNޛOޛOޛPޛPߜQޜPߜPߜPߜQߜQߜPߜPQQPߝPQRSTSSSUVVYZZ]_aen鴓]j.C`HY ?j8h,O-N*M!EA~8J VY^JFT&(9 )5%@O /A)=N !+9ao,JY*C\%.%9"",@!.?) + %7L3T`"U)8K#2-:E7Sm(.I^&0#,6 +  + +#,%1 -;M^q3BV"2*8%9I =R 0Aa~nj~  +"/  PNJxsg$) !MEczu.  &-   1. +" %%;)D)D . 7+I'E 4&B'C 28%0L0")=3:Q3EH>FJ?JQDNUIRZNV`S[dW^gZai[bk]dm_fnagncipdjpgkphlqjnskotkotmqvkotilrdgm\_hUZaMTYJQVJPVNSZRY`X]f\bi_fmahpbjrckrckrdlsckrflsgltgltgmtgmtgmtgmthmrimshmtimsimsimrimrimrimrimqimqjmrjmrȿúݼܺ۹۸۸ܺݼ޿¸ĺǾƽ÷῱໭޸ݵܲܰۯڮڬ٪اפ֢|ՠw՞s՝mԜlԚdәaӘ]җZӗXӗXӗWӕVӔTҔOғOҒOӐMӐJҐHҏDюAҎAэ?ҍ>ҍ<Ҏ=э=ю>ҏ@ӐBӐFԑJՒPԒPԔRԔTԔTՔRՔPՓNՓNՒLՒKՒJՑHՑHՑFՑEՑDՑDՑAԑBՑBՐ@֐=Ց<֑<֑>֑@֑A֐?֐>֏<֏:א:א;ב;ב<ב=ב<ؑ<ؑ=ؑ=ؒ>ؒ<ؒ=ؒ>ؒ>ؓ?ؒ=ٓ?ْ?ْ@ٓ@ْ?ٓ@ٔ@ړBڔAڔAڕBڔBەDږDۗFۖEۗDۗCۗEۘFܘHܘJܘIܙIܙIݚKݚLݚLݛLݛLޛNޜOޜOߛOߛPߜPޜOߜPߜQߜQߜQߜQߜQߜQߜPߝOߝPRTTSTSSUVWX[[]`cku鲇糑BYxYi-Ei 2[;jCt9Z6T.L"D}:wD(K.R-Q&K DwOi7P1LzG`NiQmXyUtNh?YBc8X1Qx8X.Hmz(3O:S 8P3K %JK\#!/+mfj )+7 2@!-8 #0@+=/Ui4O[*5!)5   + & %298Rf?bw-CX0C&5?%-4*2"0 + +  $.6" "&'8+3E,4D+4D7FZtljfQQJ66,30&D@1WQCldZ}tkzzxmj^WS?<5!./)EEBTWY^ahbem^ahV[bPUZLPUKNSILPILPKOSMQUPTYRV[SV]RV]PT[LQWJNSIMQILPHLOHKNILNILOGKNFIMDGKAFI@FH>EH>GK@JQDNUIRZNV_T[dW^gY`i[bk]dm^fnahobhodjpglqhmqjnskotkptlqvkouhlrcgm]`hVZbNTZJQWKQXNTZQY`V]e\bi`fnbiqcjrdksdlsdlsemtflsgmtglthmtglthnthnthmsimtimtimsimsimsjnsjnsimrimrimrilqjlrù޾ܺ۷ڶڴٲٳڵ۷ܹ޼ùŽƼĹ´῰໫޷ݳۯڭګ٪ةبצ֢zՠt՞pԜkԚgәaҗ]ӖZҔWєTђSёOёMёLѐLѐHѐHѐDяDюBюCэAю@э>Ѝ=э=э;э;э;ҍ<Ҏ=Ҏ>Ҏ?ӏ@ӏCԑJԒNԓPԓOՒNՒKՒLՒKՒJՒJՒIՒHՑIՑH֑GՑFՑDՑDՑCՒCՑCՑAՐ?֑@֐?֑@Ց@֑@֐@א?֐=֏<֐;א:ב;ב;ב<ב=ؑ=ב=ב<ؒ<ؑ<ؒ<ؒ=ؓ>ؓ@ؒ>ٓ@ْ@ٓAٓ@ٓ?ٓ@ٓ@ړAڔBڔ@ڔAڔAڕAږBۖDۗEۗCۗCۗDۗCۘFܘHܙJܙHܙIݙKܙJݚKݚLݚLޛMޛMޛNޛOߜPޛPޜPߛPߛQߜQߜQߛPߜPߜPߝPߜOߝRRSSSTRRTUWYZZ[_dpz鶌븖;Z6R?m2RD\Nb3Lt9a1S7P{?XDa5Q H=xDz9[4R3N~GaRhHb8U}2Py>X=U3Nt)Hi&Bc"?^'Gf,Mn&?]op-A ((&^Ui0z~}12D##$3E"'3';bCb}2FP&+    25D:^~,>N%6G*9  +%4< &5#2#(!-6  (1"8JQUg&-2 + + %.&4%08Vs,:8Wn +  +  + +!)1+8?5FX$5= + + +%4!3Bpq7:RBHeZUe$2@%  ]UYkg_$   +  +:;[3$  #2-!2 ( $ ' ! 3$<$=)C&B#;+E.G!7.$8/&8-5K)1B#)8"*8:IYmjgPQJ66,20&C>0WPClcYtl{zwmi^WR=:3!-/(DEBTVW_bhcfn^`hU[bPUZMQVJNRILQILPKNSMPUPSXQU[RU[SV]OT[MRWKNSJMQILPHKOILNILNJLOHKNFIMDILBGJ@FH?EI>GK@IPDMUHRZNW`S[dW^gYajZcl]dm_gnagnbhodjpfkqhmqjnrjoslpulpvkouhlqdhm]`iU[bNTZKQXKQXNT[SY`W^f[bj`fnbipcjrelseltdlsfmtflsglsflsiltimthmshmtimtimtimsimsimsimrimsjnsimrinrimrimqjmrĺ޿ܺڶڳٱ׮׮׮ٯڳڵ۸޼߾úļŻŻżŽŽżŽļĻĻŻŻżƽǾȿȿǿǿƽĻøᾰ༭޺ݷܳۯڬ٩ئץ֤~գzՠv՝nԛhәeӘ`Ӗ\ҕXєTђQѐMѐLяKюHюFюBь;Ѝ<Ѝ;Ѝ:Ѝ:ь;ь<Ћ;ы=ь;ь;ь9ь8ь7Ҍ8ҍ9ҍ;Ҏ=ҍ;Ҏ;ҏ>ӏBԑGԑIՑJՒJՒJՒIՒIՒIՒIՑHՒHՑHՑHՑFՑEՑEՑCՑEՑDՑDՑA֑@֑A֑A֑@֑@֐?֐?א>ב>֑>ב?ב>ב<ב<ב<ג>ב=ב=ؒ;ؒ<ג;ؒ<ؒ=ؒ>ؒ?ؓ>ؓ@ٓAٓBٓAٓ?ٓ?ڔAڔBڔBڕAڕ@ڕBڕCږBۗDۖAۗBۗCۗDܗCܘFܘGܙIܙIܘIݙKݚKݚKݚLݚLޚMޛNޛMޛOޛNߜOߜPߜQߛQߜRߜQߜPߜQߝQQߜQSSSRSTRUSUWYZZ[_kt~鶏꺚ثLSg)gB}Lk\sO_:_/T =c0Nx7Qy5Nv9TE`>\A_/OA^>[F^8WD_LkImLm>]1No+Gd)B_#Aa@]:T$5DQkLKc#0- &  -V\p2Hht|!6H%/ $2?"4@/7$;L6IX(") *6 + +  +$;H\ /9)4#-< *;K). #+4&3 +  +  6Mf5=JGWo$@Y5ES  3G* * -4D.< ' +  %  +   ")< (@d_w,+D"5B +D=@uhd +  + +*'L& &3(9'+ 2 0 +#   '!6%9+1I/I 6Q0J.F*@-E#1N".G,6R38N06J"'6$1(1>CO^mjiPQK76.30'B>2XPDlcZ~ul{|xnk_XS?=5#,/(DECVVY`bhcfm^biV\bPU[LQWJNSIMQJMQJNRNQUOSXQUZSV]SV\PTZMQVKOTJNRILPIKOJLOILNILMILOGJNDHLBGJ@FI>EH>FJAJPDMUIRZMV`RZcW^gY`j[cl^dmafmagncipejpgkpimqjnrlptlptmpvlouimrdhm]bjU[aNU[KQXLRXOU\SY`W]e\bk`gncjqflsfmtfmtemtgmtgmtgmthmtjmuimtimtimsimsjmtilsimsimrimrimsjnsimrjnrjnrimqjmrǽݻڶٲذ֪֬թ֩֬ׯزٴ۷ܹݻ޽߾߾߾߾߾߾߾߽߽޼޼߼߽ྱµ࿱ὰ༭߻޹ݷݵ۲گګبإ֣}ՠxԟuԝoԛgӚaҗ\ҕYҔWѓSёNБKАIЏFЎDЍBЌ>Ќ;ϋ8Ћ5Ћ5Ћ3Ћ3Њ4Њ5Њ6Ћ6ъ4ы6ы8ы8ы4ь5ь5Ҍ7ҍ:ҍ;ҍ9Ӎ:Ӎ;ӎ<ӏ@ӐAԐDՑGՑGՑGՑGՑGՑHՑGՑFՑEՑEՑDՑDՑD֑C֑E֑DՑC֒C֒B֒B֑@֑?֑?֑?ב?ב?֑=ב@ג@ג@ؒ?ב=ב<ג>ؒ>ؒ=ؒ<ؒ=ؑ<ؒ<ْ>ؒ?ؒ=ْ<ؒ>ٓAٓAړ@ړ@ړ@ڔAڕCڔAڕ@ڔ?ڕAۖBۖBۖBۗBۖBۗCܗDܗCܘFܘGܘIݙKܙJݙKݚMݙKݚLޚLޚMޚMޚMޛOߛOޛNߜOߛNߜPߜQRߜRߜQRߝQߜRTTSSSSSTTUVYYZ\bt簂贏跖꼢弻`]h*d]Bd_y[xUmMjHlEgCe=`;`3Y0S}'Hn6V:[(Bjk$$:-+'%0SkL`{{AVq'>K + +9"5A&@P%1&5I&  '   4M`.9C!-$ $&1; + + *5E *=  + +?Y*0>2DV7VpHRh",="6H  +#) (:K  *6#,.(CDBUVY_bgdgm_bhW\cRU]LQVJORIMQILQLOTNQUQTYQU[SV\RV[PTYNQVKOSJMQILPILPJLPILOILOILNGJMDHKCGJ?EH?EH?FJAJPENUHQZNW`R[dW^gZaj\bk^em`fmbhncipekpglqimrjnskoslptlpulpuhlrdhm\ahVZ`NU[KQWKRWNU\TY`X^e\clahodjqflsgmtgmtgmtgmtgmtgmshmsjmtilsjmsimrimrjmuimtimrimrimrimrjnsimrjmqinqjmqjnrĺ޾ܸڴد֬թէզէթ֫حٰٲ۴۵ܷܶܶݷܷܷܷܴܴܴܶܵܵܶݷݸݹ޹޹޸޸ݷ޵ݴܳ۲ۯ٭٪بפ֢z՟uԝnӛjәeҗ\ҔVђRБRАMяIюHЎCЍCЍ@Ѝ=ϋ9ϋ7ϊ4ϊ3ω1ω/ω.Љ/Љ1Њ2ъ3Њ2Њ1ъ1ъ2ъ3ъ2ы2ы3Ҍ4Ҍ6ҍ7ҍ7Ӎ8Ӎ8ӌ8Ӎ;ӎ<ӏ@ԐBԐCԐDԐDԐDՑEՐEՑDՑCՑCՑBՑBՑB֑B֑C֑C֑C֑A֒B֒A֑@֒@֒?֑>ב>ב?ב>ג@גAג?ؑ>ؑ=ב>ג=ؒ?ؑ<ؒ=ؑ=ؑ>ْ>ؒ>ْ>ْ=ْ<ٓ=ْ>ٓ?ٓ?ٓ?ړ@ڔAڕCڔ@ڕ@ڕ@ڕ@ەAۖBۖCۖAۖBۗDܗBܗCܘEܘGܘIݙIݙJݙKݙLݚLݚKݚJޚLޛLޛMޛNޛNߛNߜNߜOߜNߜPߜPߜQRߜQRSߜSTUߝSSSRߝSTTUWYY`m|沊Ʈư彧߹ooAt+NSpi]tWqZtb|Z}[Qr@\1Lo7Os;VxKaZsc~c|TpJfFhBh=b;_0V3X!@_%Gh$Dg'Ej5S0L&0Micz$ ( (enBJa|7Tl0E(>R)96Pd$&# +    4^{*8F(;Q(*3A  + .9,8!-5 (.;  + ;\y$4H3@J#+ *G['Pp+Qk% %6I +    +  fZ^-#45{v". .6+}n0'4  sqF?` #. %2  +$6&; + -0%9+@2 +' , 1(B%<#6(;#600.&''%.*3?;COnmiRQJ76-2/&@>0VPCkbY~tky}ymkaWU?=4#,.(CDBVVY`bfdgl_chW\cQV]MQVJNRIMQJMQKNSNQVPTXRV[RV\RV\QUZORWLOSJMQILPHKOILOILOILOHLMGKMEIKBGIAFH?FI?GKBJPDNUHRZNXaS[dW^gZaj]cl^em`fnagncioekqflrimrjoslotlpumpulpvimsdhn]biV[bNV\KQWKRWMT[TYbZ^g]clbhodkrflsgmthnuhnugmthmshnshmsimsimsinsimrjntinuimtimsimrimrjnsinrinrjmrjnrjmqimrȿ¶޼۶ڱ׮֪էԦӤԥզըש׬خٯٰٱڱڱڱڱڰٯٮح٭خٮٮٯڱڱ۱ܱܲܲ۰گڮڭ٬٩اפ֢{աt՟nԜkӚcҗ^ҖZѓUђPАKЏFЍDЌBЍBό>ό=ϋ:ϋ7ϋ5ϊ3Њ3Љ1ω-ω+ω*ω-Љ0Љ/Љ-Њ,Њ+Њ,Њ.ъ.ъ0ы1ы1Ҍ3Ҍ3Ҍ6Ӎ7ӌ6ӌ6Ӎ7Ӎ9Ӎ9Ӎ<Ԏ=ԏ=ԏ=ԏ=ԏ?Ԑ@ԐAԐBԑAՑ@Ց@Ց@֑@֑@֒@֑A֑A֑A֑A֒?גA֑?֑>ב=ב=ב>ב=ؑ>ؒ@ג?ב=ؒ?ؒ?ؒ>ؒ?ؒ=ؒ<ؑ<ْ>ؒ?ؒ>ْ>ْ<ْ;ٓ<ٓ<ْ=ٓ?ړ@ٓAڔBڔBەAڔ?ڕ@ە?ە?ەAەBۖBܗBܖBܗAܗCܘEܘFܘHݙHܙIݙKݙKݚLݚKޚKޚLޚLޛLޛNޛNޛMߜNߜMߛMߜOߜPQQߝRRSߞRߞUVUTߝRRߝSSSTVW]hu射緔Dzìôlr+L-Nb}sazPmNmMlIkDeGcMbUi[s]y]vZsZrAX|-Mw6X?dAf?c,Jo/H5Q<]'Jp4P4P0IKUl;3H'B\1C%12Ehhtx-8L&@W-EZ'BT%5B!& + + +  +  ?Pf"..#/ %0> (4,87Rj'$;#9 5!4#4-+"$($,!)0/:F@ILmmhSSL77-1/%??1UOBkbX~ujzznkaXU?=4!,.(BDBUVXachdgl^bhW\cRU]NRWKOSJMQJMQKNSNQVPUYRV[SW]SW\QUZORWKOSJMQIMPHKOIKOILOIMNHLMGJLEIJCGJAFI?FI?GK@IOCMTIR[MV_RZcU^gY`i]bl]em_gnahncinekqflrinskoslotmqumqvloviltdin]aiV[cNU\KRWKRWNU\TYaY^f\clahodkrglsjmtinuiouhnugmshnsimrjnshmshntjnsinshnuhmtjnsimrinrinrjmrjnrjmrjnqjnrjnrƾݹ۴ٰ׬֩ԧԤӣӣӤեէ֩ת׫جحٮحج٬ثت֧֦֦֦֨֨֨שةتثثتبקקצף~֢y՟uԝoӜiӚfӘcҗ]ҕYђTёNЏHЎCЍ@ό=ϋ<ϋ;Ћ5ϊ2ϊ3ϊ4ϊ2ϊ2ω0ψ.ψ+ω*ω'ω*Љ+Љ+Љ*Љ*Љ)Њ*ъ,ъ-ъ.ъ0ҋ1ҋ1Ҍ3ҍ6ҍ7ӌ5ӌ4ӌ3Ӎ6Ӎ6Ӎ6Ԏ7Ԏ6Ԏ7Ԏ9ԏ:ԏ;Ԑ>Ԑ=Ր=Ր=Ր>Ր>֑?Ց?֑>֑?֑@֑@֒?֑?֑>ג?ב>ב;ב=ב=ב;ؑ;ב:ؑ;ؒ>ؒ>ؒ?ؓ>ؒ<ؒ<ؑ:ؒ;ْ<ؒ=ؒ>ْ=ْ<ٓ<ٓ;ړ;ٓ=ٓ>ٔ@ٔAڔ@ڔAڔA۔@ڕ?ە=ە?ۖAەAܖBܗBܖAܗAܗBܘDܘEܘGݙGܙGܙIݙJݙIݙJݚJޚKޚLޚKޛMޛMߛMޛLߜMߜNߝOQRߝSSTTߞTWXXWVVWߞVUTW[dr~岋縛ʸǵɽLa~;hDcnlbHeHg\oL^}-Eb7Pp@XzG`9Qr,Jr3U;\0S}1W2X%Di;^4S6T"Cf9X7S8U/H ;S2Ion$1J,Ql)8 "61CleyMJR(0-<1Xr.5&EU  + + +&2 ,; #+ , $6J"-<,DZ 93?!/EY+?U!.$.3:?@P8FS13<"--;P>Vv&7R&%7C  ) #  ('Bqlzlav&0H^"%.B30Az09T'2-8 +*7K!5J֑>֑=֑=֑=֑=ב>ב=ב=ב;ב9ב8ؑ:ؑ;ؑ<ؒ>ؒ>ؓ<ؒ<ؒ<ؒ;ْ:ْ:ٓ=ْ;ْ;ْ:ٓ:ٓ;ٓ;ڒ<ٓ>ٓBٔCڔAڔA۔?ڔ?ە?ە>ە>ۖ>ۖ?ܖ@ܖ@ܖ@ܗ@ܗAܘCܘCܘFܙEܙGݙGݙHܙIݚJݙHޚJޚJޛJޛKޛMߛMޛKޛLߝNߝNߝRSUߞUߟWߟXWߠYY[[\ߡZߡ]ߡ]ߠZ\^ep{䱈浔縝罥®Ǽ0O|C`i|UiUiE_:]Loa[|Y{PoGcA]B^YpH^Qg0Np,S~5]-Qz.S.U,Ow$Be#Dk"?e=_?`!Eh8S !2 /1H.B+AX^Xq.Pn(9&4D 1<]\uqiq)BN#. 4B  +    ) + &:L!$,+8!.@%2,E]$@=G&$0%3#-=+:'.5$.23DS);G"(((#.*;Aq(Kk!/9 + + + #JQjUTd vp +-;O .-8R;6G#1A %3 'CBK)!C"+CX   '$3) #(<&7%9O!1)8536)B$;/ .. &     %$.&+4+5AO[]omiTSM78-1/%A>1UPEjbX}tkzxomaZUA?6%+-'ADAUVY`bidhm_dkY]cSV]MRVKPSJMQJMQKNRNQVPTXRV[SW]SV]PUZNRWKOSJNRIMPHKOJLOJMPJMOJLMGJKEIKCGJAFI?FI?GK@IPDMUIR[OV`S[cV^hZaj]bk^en`gnbhocingkphlsjnsknslotlpunrwmpwimtcio^cjW[cPV]LRXLRYPU\SZaX_g^dkbhoflsimujnujmuinuiotjntintjnsjothouinujntintintinsinrjnrinrinrjnrjmrjmqjmrjnrjnrſĿſø߽ܹٵٰ׭֪էӥӤӥԤԥԥզէ֧֨֨էէզդԢzӡwӞtҜoқlҜlќmҜnҝpӞrӝrӟsӞtӞrӝoӜlӛgқdљ`ї]ѕZєVѓSВQВOБOЏIЎDό@ό=ϋ:ϊ8ω6ω2Ή.ω.ω.ω/ψ.ω.ψ,Έ*ψ)ψ*ψ(ψ'ω%ω$Љ%Љ%Љ&Љ(Љ(ъ+ъ+ъ-ъ.ҋ1ы1ҋ2Ҍ3Ҍ3ӌ4Ҍ1Ҍ/Ӎ1ҍ0ҍ0Ӎ0ӌ/ԍ2Ԏ5ԏ7Ԏ8Տ9Տ9Ր9Ր:Ր:֐;֐<֐;֐<֑>ב<ב=֑<ב;ב;ב=א;ב<ؑ;ב:ؑ8ؑ9ؑ9ؒ;ْ>ؑ<ؒ;ؒ:ؒ;ْ<ؒ;ْ;ْ:ْ;ْ;ْ<ْ:ٓ:ْ:ړ=ٓ>ٓAٔAڔ@ڔ@ڔ?۔>۔>ە?ە>ۖ>ە=ܖ>ܖ@ܖ?ܗ@ܗ@ܘCݘEܘDܘBݙDݘDݙFݙGݚHݚHݚGޚHޚIޛKޛLޚLߛLߜNߝNߝPTWXZߠ\]\^_aacdfhijms~䰅䴑繜龧ıȻ?W{_v\pWkLcRikjih_{PpEf5R{@Uw-?\2Ed8Qw'Kv(P|(Lu-P{&Hr(Is:Z >a1Q,N/P+J3N1E.B0E%87L&C[lt7A[.Ng9[t !+&-?|/"1&1?&  +  +$. +&=P#0-A['GAO&'4#++1;-+@\+A3!:-H.I!:180 !%!")(($(4,7EbknpmjTSM69.1/%A=0TODibX}tkz}xpl`ZS@>5#+-'ADAUVY_bhdhm_ckX[bRV]NQVKOSJMQJMQLOSORVQUZRV[SW]RW\OV[NSXLPTJNSIMQILPILPKMPKMOIKMGJLGIKCFJAFI>EI?GM@IPDMUHR[MV_S[dV^g[aj^cl^em`gnbhodiogkqhlrjnslotmpumqvmqwlpvinudjo^biV[cPV]LRXLRYNU\SZaY_f^dlbhpflshmuinujnukoujotintjntjnskouhnukoujotjnsintjnsjnrjnrjnrjnsjnsjnsjmrknrjnrjmqžüü»üſú߿ݺڶٲ׮ת֨զԦԥԥԥզեզեեեդԣԢ|ӡwӟtҝoқiљdјcјcИdљeњeҙhҚfҚhҚeҙbјaі_і\ҔZђXБSБNАKАKЏIϏGЍEό?ό<ϋ9ϊ7ω4ω3ω1Έ-Έ-Ή-Ή-ω.ψ+Έ(ψ'ψ(ψ)ψ(ψ'ω$ω%Љ&Љ$Љ$Љ'ъ*ъ*ъ+ъ,ы.Ҋ/ы/ҋ0Ҍ1ӌ3ӌ5Ҍ1Ҍ0Ҍ0Ӎ0Ҍ/ӌ-ӌ-Ӎ/Ԏ4Ԏ5Վ7Վ7Վ6Վ7Տ7Տ7Ր9֐;֐;֐;א;א:֑:ב;ב;ב;ב<א;ב:ؑ;ؑ:ؑ9ؑ8ؑ8ؑ9ؑ;ؑ:ْ:ْ;ْ;ْ<ْ<ْ<ْ;ْ;ڒ<ْ<ړ<ڒ<ړ:ړ<ړ=ړ?ړ>ڔ>۔=۔=۔>ە?ە>ە>ە<ە=ܕ>ܖ?ܗ@ܗAܗAܘCܘCݘCݘBݘCޘDݘDݙDݚFޚFޚEޚGޚHޛJޚLߛLߛKߜMߝNߞQVY\^`dgiilnoorvyz|㱊崏帘缢ųɺhvl{HUk6FYdrQea|Ke1Qw1P}e Cq5V1Lu%;]+F 7/J,B(;,?/E0CNi%If5Mnvx$7K(E\6Oh$5+8I2-;rfk$4<"4E  +   *7C/BS"+:J.,<$AW7Ts0C BFQ)/A *#,#"("'7Ti,?Q7BG ADF$16Rn>Yx+>  %(toyEOlPH\(3'4#&:-7S",!) %$([XNB7Vv .C6J(5#@[:Q,> 0G(;*:+He#9L/C]%9$6.;S 3%=((R1+^C@mO{|}vusoe]nXO^D:[4+K,"$(7&3>ajppnkTSM79//1%@=1UOBjbW}tj{|zqlb[T@?5$+-'ADAUVY`chdgn`ckY\dRW]NRVMPTKNRJMQLOSNRVQUZRV\SW]RW\PUZNSXLPUKNSJMQIMQILPILPJLPJLNHKLFIJDGJAFI?FJ>GK?IODMUIR[NW`R[dV^g[aj^dl^em`gncipdjpfjpimrimrkotmpumqvnqwmpwinudjp_cjV\cNV]KQXKQXMT\SZaY_f^ckcipekrgmtinujnujoujoujoujnujoujoujovjnukotjntjotjotjosjosjnrjnsjnsjnsimrjnrjnsjnsĽ»ýĿŻ޼ܷڲٮ׬֪էզզզԦեդդգգԡ~ԡ}ӠxӟuҝqқkҙgјaЗ`Ж^Ж^Е]Е\ѕ^Ж^Ж]Ж\Е[ЕZѓXГVёTАRϏLЏIЎFЎGώFύBό?ό=ϋ:ϊ6ω3ω2ψ1ψ0Έ.Έ.Έ+Έ*ψ*Έ&ψ$ψ$ψ&ψ&ψ&ψ%Љ#ω'Љ&Љ$Љ$Љ&щ(ъ*Њ*Ҋ.ъ-ҋ0ҋ.ҋ/Ҍ0ҋ1ӌ3Ҍ/Ӎ0Ҍ0Ҍ/Ӎ.ӌ-ӌ+ԍ.ԍ2Ԏ1Ԏ2Ԏ4Վ3Տ5Վ4Տ6Տ7֏7֏:א:א8ב8֑9֑:ב<ב;ב:ב:ב9ؑ9ؑ9ؑ9ؑ8ؒ9ؒ9ؑ:ؑ9ْ:ؑ9ْ;ْ;ْ;ْ;ْ:ڒ;ْ;ْ<ڒ<ړ<ړ:ړ;ړ;ړ;ړ;ڕ=۔<۔=۔=ە>ە=ۖ>ܖ>ܕ>ܕ>ܖ>ܗ>ܗ@ܗ?ܘAݘ@ݘAݘCݘDޘCޘDݘCݙCޚDޚDޚFޚGߚIޚJߛKߜMߜOߝPTY]`dimtuvvy{}㮀㯅䰊䱌岏䳑嶖湛缡Ʋ˽^qUg(Y%Jg!Db5L/@;U1IUb|5/A 3G%/2G\ oev)"63E#1C + + +,6"-5,:(,6!)"1=$Jf%Oi!9K&59?'"+.1$2<'2 ")6&6E6ET+09 "8?A(;>f%8&2(3!  + marb^z +(5"2G_^vrx#5N [\P$3($B0A 2A"06M%7GK@IPCMUIQZNW`Q[dV^g[bk\cl^enafocipdjqfkphlqjnskotlpunqwnrxmpwinudjq^djU\cNV]KRWKQWMT[SY`X^f]clbhoelsgmtioviovjoujouioujovjoujovjovkoukouknuinsioujnsinrjnrjnsjnsjnsjnsimrjnsimrüۿۼۼ۽ܾ¼¼¼»»¼ýľľſǾ·޽ܸ۴ڱٮ׬תש֨է֥դդԢԢ}ԡ|ӟ{ӞwҝsӝoӛlҚgјbЗ_Е\Д\Г[Г\ГZДZϓWϒVВVВUБRϐPАOЏLώHЎDώCЍCύBό>ό>ό?ϋ;ϊ5ω1ψ/ψ/Έ0Ј2ω1ω,·(ψ(ψ&ψ%ψ#Ј#Ј$Ј$ψ%Љ%Љ(щ)Љ'Љ&щ&щ(ъ*ъ+ъ-ҋ.ҋ0ҋ/ҋ/ҋ-Ҍ/ӌ.Ҍ-ӌ/Ҍ/Ӎ0ӌ,Ӎ-ӌ+Ӎ-Ӎ/ԍ0ԍ1Ԏ3Վ2Վ2Տ3Տ2Տ5֏7֏9א9א8֐6֑7ב9ב<ג<ב:ב8ב7ב7ב7ؑ9ؑ7ؒ7ؒ8ْ:ؒ8ْ9ْ9ْ:ْ;ٓ:ٓ;ړ<ړ<ړ<ړ>ړ=ړ<ڔ:ړ:۔;ړ:ڔ:ڔ:۔:ە;۔=ە=ە=ܕ=ܖ>ܕ>ܖ>ܖ>ܖ<ܗ?ܗ@ݗ>ܗ>ݗ@ݘDݘEޗDޗBݘCݙBޙDޚDޚEޚFߛHߚHߛLߜORX\adipsy}㮀䯄䮃䯅䯇屌沑洓淘縚縚縝绢轥űʻVkOeM\v^lisDVu 5W-L#?g/Gs"e(L"c7U&Lt!Fl3U<[$Gi$Ee.Sw"Hh$Ik3M/CA^ڔ>ڔ=ڔ;ڔ9ړ;ړ;۔<۔;ڔ:ە;ە;۔<۔<ە<ە<ܖ=ܖ>ܖ=ܖ<ܖ<ܗ=ܗ=ܗ=ݗ>ݗ?ݘCݘCޗDݘCޙDݙCޙDޙEޚEޚFߚGߚIߜLߝQV]emsw}䯄岊洌浐浒涓浒涕縜繞绠轣迧鿧îƳʻӷ`qrm|VbvP^v8Lh,>]6Ls"9[0El8`&Et2Ny >f%Gs$Ci#Ae)Ms#Ch!=a*Pu@h3Z=f=c;h3c2b0_1`(Y&Q{#Ee?\)Tu=R)CZ "2?J`L?U#/$ %,+?U~&5 #,!'!.JhB`* .>#0E /; -L{5Yv/Yw#@Z&)$.0%,>Oc!1C#,*-8 -C_Yk@_"0Lj=Hg=Gf%Gj.],FKPe&8*;"?R$1B8PkXOX). ncz!jhrXTi -@Xhmm-,660Oy#-B "/,  )8!7#),%BDBVWZabheho`dlZ^eTX]OSXLOSKNRKNRLPSNQURUZSW]SW]TW]RV[PTYLQTKOSJNQJMQJMQJMQJMOHLNGKLFILDGKBGJ@FI>FK@JQCMWIR\OWaQ[eV_hZaj[dl^fmagncipfjpgkpimsjnslounqvnrwnrwnrwkotejr_dkV\cPV[KQVKQVNTZSX`X^f]ckahnekrgmthnuiovioviouiovioviouipvioukoukoukouinujouknujnskotjnsknsknsjnsjnsjnskns»ڼٹظطططظظٸٷٷظطضضضضضضضضٶٷڸۺۻܾܽĽǾĶ߽ݺܷ۵ڲٰخ׬׫֧֦֩եդԢ}ԠzӞsҜoқiҚfҙdјcїbі`ѕ\ДYВUБSϐPϐMϏKώIώGόEόAЍAό>Ό<΋9ϋ8ϊ5ϋ6΋8ω4ψ/ψ.ψ-Έ,ω,ω.ω,ω,ω+ω*ω(ψ#Ј!Ј щ%Љ#Љ$ш%ш#щ'щ&ъ'ы*ҋ,ы,ы-ы.Ҍ.Ҍ.Ҍ/Ҍ/Ӎ0ӌ.ӌ-Ӎ/ӌ/ӌ/Ӎ.Ӎ0Ӎ/Ԏ/Ԏ2Վ2ԍ1Վ3Վ2Վ1Տ1Տ3֐7֑9֑:֑9ב:ג;ג;ד=ד=ד@ד@ד<ؒ9ؒ9ؒ8ؑ7ؒ8ؒ9ٓ;ْ9ْ9ٓ9ٓ8ٓ:ړ=ٔ=ڔ>ڔ?ڔ?ڔ?ڔ?ڕ>ڕ<ڕ;ڔ;ړ;ړ;ڔ;ڔ;ە<ە<ە=۔:ە<ە;ܖ<ݖ=ܖ;ܖ;ܖ<ܖ<ܗ=ܗ=ݗ>ݗ?ݘAݘAݘAݘBݘCݙCޙDݙDޙDޙDߚFߛIߜNߞSZenx䭁屈洐縖躝鼟꽡龤龤龤辤鿧ïIJŲƲǵȺʼοlCWpUb~GWnDVsWJ`uEd.Sv!8Q   ++!(44AW#1E:DR05>#1IdRn+=\8AV7@fd_H5Y!2SH]y+>+<.@($":% !,:& '!.1C'6*DQOvSc1Df.E8N 6H*>V$5J'9*.?"34E"4G0D"2  +   + "!)'-7^corpkVUO9:020&@=/TPBiaX}sk{{plcYUC?9$+-'BDBUVX`bhehp`elY^eSX^NSXLPTJNQJMQKORNQUQTYSV\TW]SW\RV\OSXMPUKOSJNRJMQJMQJMPJMOIMNGKLFILDGKBFI@FI?GK@JPDNWIR[MV`R[dV^gZaj\dk^flahocipekqfkqgmsjotkoumqvnqvnrwmqwjotekq_dlX]dOV[KQVJPUMSZRX_W]e^dkbhneksgmtioviovhoviovioviovjpviouioujnvjntkntintjntjntjntjnsjnskntknsjnskotjnskns»ھٻٸض״ִִ׳ֲֲֲֳֳֳղձֱհְְհհְֲֳشٶٷ۹ܻݾüǾŻö߽޺ݷܴܶ۳ڲڰٮثتרצ֥ԡyԞrӝnӛkӛjӚiәgҘeҗ`ѕZѓWБSϐLϏJώHύFόEό@Ѝ@ό>ό<΋9ϊ8Ћ9ϊ3ϊ3ω3ψ.Έ,Έ+ψ)Έ*ω+ω+ω*ω)ω&ω%Ј$Ј#Ј ш$Ј#щ$щ"щ!щ'щ(ъ(ҋ*ҋ-ҋ0ҋ/Ҍ.Ҍ.Ӎ0ӌ0Ҍ/ҍ.ҍ.Ӎ.Ӎ0Ӎ0Ӎ1Ӎ/Ӎ/Ԏ2ԍ1Վ3Վ2Վ1Վ2Վ4Տ3Ր4֑9֑<ג@דAהBהBד@ؓBؓCؕDؕEؔDؕCؔ>ؓ;ؒ9ؒ9ؒ:ْ9ٓ;ْ9ٓ9ٓ:ٓ9ړ;ڔ>ڕ>ڕ?ڔ?ڕAڕBڕAڕ@ږ@ە<۔<۔=۔=۔<۔=۔=ە=ە<ܕ<ە:ܕ<ܖ<ܖ<ܖ:ܖ<ݖ=ݗ<ݗ=ݗ=ݗ=ݗ>ݘ?ݘ>ݘ?ޘCޘCޘBݙDޙEޙDޙDߚFߛLRZdr|專洑跗黠꿦­ůƱDzdzdzƳƴǶȹɺʻʼ˼̽b}:Mc1D\9I`+;Q9Kg%8X'?^9Ln,EiO  &6@ )2=Pg$0(Ssf=g.X} **; !&1Y2I)@\#:Q*BZ#6K(81E&ٓ<ؓ;ْ;ْ:ْ:ٓ9ٓ9ٓ9ٔ9ڔ<ڔ>ڕ>ڕ?ڕ@ڕAڕBۖBږ@ۖ@ە>۔=ە>۔=۔=۔=ە>ە<ە;ܕ:ܕ;ܕ<ܖ;ܖ;ܖ<ݖ=ݗ>ܖ<ܖ<ݗ=ݗ<ݗ>ݗ<ݗ>ݘ>ޘ?ޘAޘBݘBޙEޙDޚDߛFRXbn}專綒鹜꽤«Ʋɹʽ;οοͿŵmRh2EY;Ni!3N2L.@a%8V/Bd#9Y3Eg+L/U3[#Ag)Gq)Jp+Rx3\?kAnK|UQOAq9i,TtA_$Np&Jh.Ok!E`0C;X!./> 6J UIe#&".  %c[kNHY!:I    (/>!%-"&,"Cc';_BaFs  ?T'5!4 + +/2=9BX9BQ2=J/4>GIV*(7*@SCXu 3< (,7=JbRfw`Ph*Jk*?M)8H",(0  +  + &iZi'tl + {z  BCIWTO*4G-!D~*.>-:%5E -9#.4NnbB6_-.&@W4H(?Z+B1E'9&>U8Vu+Je>]~>Y|+Jd$@V%5-?'7&   +  "()1;Q]hqqnVVP8;100$@=/SOChaV|sjz}yqlc[UB?8#*,'CDBSVX`bhdip`fmZ^fSX^NSXKPTJNQJNRLOSNRVQUZSV]SW_TW^SV]PTXNQULPUKNSKNRKNQLNOJMNHLNHLNFILCGHAFIAGI@GKBJOENVIR[NV_RZdV_iZak]el_gm`hncjqdkrflshnsjoukpumqvnqwnrwnqxkovfkq_elX]eOV]KQVKPVMSZQX`X]f]ckbhpdkrfmugovgovgoviowhovioviovjoukovjpwjpwiovjoujntjnsjnsjnsjnsjnsjnsjosjnskotlotۼٸصղկխӬӪөҩҨҦѦѦѥѦѦѥѥѤУУѣѤҦҧөԫ֭֯ײشٶ۹ۻܽݿýſʿɽȽƼźĶὯߺ޹ݶܲگتק֤|աzաyաxաvաt՟oԜiԙaҖYѓSђOЏKЏIЎGЎDЍ?Ќ>ύ=ό:ϊ6ω1ψ0ω-Ή)ψ'ψ'ψ(ω(ω)ω)Ј'Љ%Ј Ј Ј"ш#щ#щ&щ%щ$ъ'ъ(Ҋ)ҋ)ҋ)Ҍ.ҋ,ҋ/Ҍ/Ӎ0Ӎ.Ӎ/Ӎ0Ӎ0Ӎ0Ӎ2Վ5Ԏ5Ԏ4Տ6Տ6Տ6֐8Տ6Տ5֐6֐8֐:֒>֓AוEؗHؗLؘM٘PٙQٙQٚOٙMٙK٘J٘JٗHٖFٕBؔ>ٓ<ٓ<ْ;ٓ:ٓ9ړ9ٓ9ٔ9ڔ;ڕ>ڕ?ږBڕ@ږAږBږAۗAۖ@ۖ@ە?ە>ە>۔=ܕ?ܕ>ܖ=ۖ:ܖ;ܖ;ܖ<ܖ<ܖ<ݗ>ݗ=ݗ>ݗ<ܗ<ݗ=ݗ=ݗ=ݗ<ݘ=ޘ@ޘ@ޘAޙCޙDޙEޚFޜIߞLX^ku寅絒躝꾦íǴʼͿͺnHd~K]{@Rl&8N 5$<3P2N 5Q3A_.N2XGrlJ{J|5k3c?]Fc!Gc(Jk%E^?V/A",#.'!+("2gZt")B>I\Qh-$2+ & :L"(0  + +#?R?Un )1@Na%,5!-$T]wT}^Kre 9Z7Od,Y4H#=W'D_(Fb/Kj;W|>[~7Us0Ke2E*/='+""( & )29@FqxrroWWP9;211&@=0UOEi`V}ri{|yqmd[VA@8#+,'BCASVX`cidjq`fm[_hTX_NSXLPUJNRKNSLOTNRWQTZSW^TX_UX`SV]PUYNRVLPUKNSKNRKMPLNOLNOJMNHKMFJMDHIBGIAGJAGLBIPFNVIR[NW`S[eW_h[bl]em_gnaiodjqflsgmtiotkpulqvnrwosxosxosykovglq_elX]eOV]KQVJPVMSZQX`X]f^ckahpdkrfnuhovgovipwhoviovipvioukoukpvjpwjpwkpwjoujntkotjotjnsjnsjotkotkotlotlotlotۻٷִ԰ԭӪѨѦѥФТϡϠϠϠϠϠϠϠΟ~Ν{ϝ|Ν{Ϟ}Ο~ТѣҤӧԨժ֭ׯزشڷ۸ۺܼݿžȿƸö߼ݸܴ۰٭ةרקاקئף|֡v՞nԛeҚ^ҘYѕRѓOёKѐJяFЎAό:ϊ5ω1Љ2ω.ω(ψ'ψ'ω(ω'ψ&ψ&ψ$Ј"Љ Ј Љ Љ%щ$щ$щ'Љ'ъ(ъ(ҋ)ы'ы*Ҍ-Ҍ-ӌ/ӌ/Ӎ1Ӎ0Ӎ0Ӎ0ԍ2ԍ2ԍ3Ԏ5Վ6Տ7Տ8Տ9֑>֒>֑=֑<֑<֒@דBהDؕGؗJؗL٘QٙSٚUٚVڛVڛUښSښQڙN٘KژKٗHٗFٖAٕ>ٓ<ْ:ٓ9ٓ:ٓ9ٓ9ڔ:ڕ<ڕ?ږ@ۖBږBۖAږBۖAۖAۖ@ۖ@ە>ە>ܕ?ە>ܕ=ܕ=ܕ;ܖ:ۖ9ܖ;ܖ;ܖ;ݗ>ݖ=ܗ<ݗ<ܗ<ݗ<ݗ=ݘ?ݘ?ޘ>ݘAޙAޘ@ޘ?ޙDޙFޚHߛKߝMX^gr~沊踙꽢Ƴɺ˵|Ii7Lc2Ga.B^-(6&D_& !4E <@T:+? 6F +eZdOJY + +!2C 1BT-; # +  + ,=5H`1_[,Hb@OjGr5FW(:,> @;JJ\xcf|9ET/5>PZe84Qi $3&[Xu94\ )!%4!=T%>V+B[ 5J0A4H =V%F_(D^.D`7Qn9Vt)BV(Hdkv´urpXWQ:<210%?<0SODiaX~tj|zrnc[WBB9"#+,&BCARUX`bieipaelZ^gTX_OTZLPULOSLOSMPUORWQU[SW^TY`UX`SW_PUZNRVMPUKNSKNRKMQLMPLNPKMPHKNFILDHKBGJ@FIAHLBJQEMVIR[MW`R[eX_h\bl]dm`hoaiqdjrflsimujoukpvmqvnrwoswosyosxlpuglq_elX^ePV]KRXIPUKSYRX_X^e]ckahpdkrgmvgnuipwhoviowjpwipvioujoujpukpwkpwjpvkoujntkoukotkotkotjotkotkotlotlnslosܾںطֳծҫѨХϡϡΟ~͞|̜z̛y̛w͛x͛w̛t͚t͛uΚu͙q͘p̘o͘o͙p͛qϜvϞyР}ТӤӧԩի֮װױشٶڸܻݿúȿʲ΅ຩ޶ܳܰۮۮڭڭګ٩٦أ{֡s՟n՜eԘ\ӕXғTґMяGюAЌ8Њ3Љ2ω-ω(ψ'ω'ψ&ψ$Ј%Ј#Ј$Љ%Љ#щ"щ$щ%щ&щ&щ'ъ*ъ*ъ+ы+ҋ*Ҍ-Ҍ0ӌ0ӌ0Ӎ1Ӎ1Ӎ1ԍ3Ӎ2Ԏ2Ԏ3ԏ6Տ8Տ9Ր9֑>ՒB֒C֒C֒DגD֓DהEוGؕHؖJؗLٗOٙRٙTڛXڛYڜZڛYۛXڛUښQڙOڙLڙLڗJٗFٖAٕ>ٕ<ٔ:ٓ:ړ:ڔ9ڔ;ڕ=ږ@ږ@ږ@ږAږBۖBۖCۖCۖBە@ܖ?ۖ@ܕ?ܕ>ܕ=ە<ܖ=ܖ;ܖ:ܖ<ݖ<ܖ=ݖ>ݖ=ݗ=ݗ<ݗ<ݗ;ݗ=ޘ>ޘ>ޘ@ޙAޙBޙCޙBޙEޚHޛJߝNS[`jv䭂紏鹝뽦íǷ˽Rm@Yw5Kc0E]+A'6L*:P):T3N1L.Fi1Os+Gk#@`CiGnGmAd>d9^9c9_7Y{8[0Ss)Mi-No7a'Oi:M,CZ7Z~%I^->(".3H   *Jpe ( +  e\o5B[+)4 *3A  *  +.5B/6L+Ge^5RoRh=n=Uq.D.B 9(4K&3H% -=*:&6*:9N+C_;Ut@\}>[{:Rq?Y|2Pm4Qo5Sp3Ic .="  *5,:G@NYlvtroWXQ:<110%?<0TOBhaV{si{{qnb\WBA9"$*,%BC@SVY`ciehpbflZ_gTY`PS[LPUKOSLOSMPVORWRV[TX^TX`TX`RW_RUZNQVMPULOSKNRLNQLNQKMPKMPGKMFILCHK@FJ@FJAGLAJQFMVJR[NXaR[eW_i[bk^en`goaiqdksflsimtinujpvmqvnrxosxptynrxlpuflq`fmX^ePV]KRXJQULSXSX_W^e]claipckrgmvhovjpwipwipwioujpvioujpujpvkpwkpwkpvkoujotkoujotkotjnskotjntkotlotlosknsܽٹ׵ձԬҧХϢΞ~͛y͚u̙o˗m˕jʔj˔j˔j˔h˔f˔e̔f˓f̓f̒e˒e̓f˔g̕h͗j͙n͛sΝyП~ѡҤӧԩժլ׮ױٴ۷ݼ¸ƿȼŸᾬວ޸޷ݵݴݲܱۯ۬٩ئآz֟m՛dԗ^ӔWҒOҐHэ@ы5Њ0Љ,Љ(Ј(ω(Љ'Ј$Ј$Ј$Ј&Љ&ъ'ъ)щ&щ(щ&щ'ъ'ъ)Ҋ*ҋ+ҋ,ы+Ҍ.Ҍ.Ҍ0ӌ1ӌ0Ӎ1ԍ3ԍ5Ԏ6ԏ6Տ7Տ8Ր9Ր<Ց>֒CהHהHוJוJזKؗKؗKؗKؗLٗMٗO٘PٙSٚVڛYڜZڜ\ڜ\ڜYڛVڛTښQڙNۘLژJڗGٖCٖ>ٕ=ٔ;ٓ:ړ:ڔ:ڔ<ڕ>ږ@ږ@ږ?ږCۖBۖCۗBۖBۖAۗ@ۗ@ۖ?ܖ>ܕ<ܖ=ܖ<ܖ=ܖ=ܖ=ܖ<ܖ;ܖ;ݗ=ݖ<ݗ=ݗ;ݗ<ݗ;ݗ=ݗ>ޘ>ޘ@ޙAޙAޙAޙDޙEޚIߛLߝOS[alw宂洎麝뾦ĮǶ˽ʵy~6Od-DX(gBp;iCi=f-Pt+Ik3L*Pm<` &*FW4Sl,Nh%;P*;$!,</@ 8L $/6QWLc- + +BF[X\wGO^6G%2 ,: &2 .7Lf-F ۖ@ۖ@ۗAڗBۗCۗBۗ?ۗ@ܗ?ۖ>ۖ>ܖ>ۖ=ܗ<ܖ=ܗ=ܖ>ܖ>ܖ>ܖ<ܖ;ݗ<ݗ=ݗ=ݗ<ݗ<ݘ=ݘ<ޘ>ޙ>ݘ=ޘ?ޙ?ޙ@ޙAޚCޚFޚIߛLPTZbkw宂糍蹛꾥íǵʼPk:Ul0GZ*CX%;Q#4"4.B^G]zBZy4YS{XQV[Lt4[|!B^8\9_*Mi/Qn3Sr(Hf/T|2]9e#=Q3E!=K$26H-@!,(:$>T#=Q&#YZn%(> / 0srEL_/@W*B[ -< -9 " +  ))2GI\#9M +  !!,= /E]8M!;O5I1D(@X.E`(?W1Jg/If/Nm)F_.:*9"3@*6I#0='9@!0< (!'$.9!)29EPlquusqYYR<=31/'?<1SNBg`V|th{|rpc]UEBFJ?HL@JPENWJR[NX`S\fW`jZcm_goagpbiqckrfmtinujoukqvnrwnrwptxptynsykqwgmt`gmX^eQW]KRWLPUNSXQX_X^f]dlaipdlsgnuhowiovioukpvjovjpwjpwkqwkqxmpxmpvlpulpvlpukotlotkoskotlpuloulpulpulotlot۾ع׵ձӬѧϣΟ{͚u̙sʕiɑ`ȏ\njVNJQƊOƊONjPNjPNjPNjPnjQnjPȌPɌRȋQɋPɋQɌRʍSʎWˏ[˒_͔cΖiΙnϛrϝvОzѠ~ңӧլرڶݼùȽƹõὭຩ෣ߴݱۭکإ{֡q՝fՙ`ӖYғPҐFэ=ы2Њ+Љ*Љ(Љ(Љ&Ј#Ј"щ&Ј%щ$ъ)ъ(щ&ъ%ъ$ҋ&Ҋ%ҋ(ҋ,ҋ+Ҍ.Ҍ/Ӎ0Ӎ1Ӎ1Ӎ0ӎ1Ԏ3Ԏ4Տ8Տ:Ր;Ր<Ց@֓E֕JזMחOחPؗQؗRؘSٙUؙTٚVٚVٙRٙPٙQٙSٚUڛXڜZڝ[۝[ۜYۜXڛUڛSښPۙLۙKٗGږDٖ@ٕ=ڕ=ڕ;ڕ:ږ<ږ>ږ>ۖ?ۖ@ۗ@ۗBۗBۗAۗ?ۗ?ܗ>ܗ>ܗ>ܗ>ܗ<ܗ<ܖ<ܗ<ܗ=ܖ>ܖ?ݖ<ܗ:ݗ;ݗ=ݗ=ݗ<ݘ=ޘ?ޘ?ޘ=ޙ=ޙ?ޙ?ޙ>ޙ@ޙAޚDޚEߚHߛKOTYaku宀沌跙꽢ªƲɺ̿dx7Rk0Lc5Ro)?S.B(;(< 9PGg\vSpR}\NX[Gm:c.Pn9e6^0Rq(AY!4I3X}1[~Bl2Su(Rm+DU,A!CXBZ&5 #1 #17` !/*hd3L"?FU)6/9 "6H   .0<8DY/JgSqYs'$%)*%AC?SUXadieioaem[_gUZ`PTYMQUMPTKORMPSORVRVZUX^VY`VYaTW_RV[ORWNQULOSKORKNRLORLNPLMPILMGJLCIK@GK@GK?GL@JOENVIR\NW`S\eW`jYcl^foahpbjqelsgmtiotjoulqvnrwnswptyotyntzlrxgmuagmZ_fRW]LRWKQVMSYQX_X^f]claipdlsgnuiowipwjpwjovjpwjpwjpwkqxlqxmpxmqwlpvlpulpukotkotlotkotlpukotlpulptlptlot۾ٹ׵ձӬѨУΞz̚t˗mʓfɏ\njVƊOƈJņDŇEŇEňEƈFƈFƆFLJGLJHLjILJGLJGȈHLjHȈHɋLɌNʍSˎWːZ̒^̔b͕eΘjΙoМuѡ~Ӧ֫رڷ޽ļǽĸ´⽭๦޵ݱۭک٥~ءu֞n՛cԘYӔNґEю8ь-Њ*Љ)Љ'Љ'Љ%щ#Љ%щ&щ&щ)ъ'ъ%Ҋ$Ҋ%ъ%ҋ&ҋ'Ҍ*ӌ-Ҍ.Ҍ/Ӎ/Ӎ/Ӎ0Ӎ1Ԏ2Ԏ4Վ4Տ8֐:֐:֐<Ց@֓FוLחNטPؘQؘR٘SٙUٙWٚWٛYٚWٚTٙPؙPٙSٚTڛWڜZڜZڝ[ۜYۜWۛUښSښPۘLژJڗGڗDږ@ڕ=ڔ<ڕ;ڕ:ږ=ڗAڗBۗ@ۗAۗAۗ@ۗAۗBܗ@ܗ@ܗ?ܗ<ܗ=ܗ>ܗ=ܗ>ܗ=ܗ<ܗ<ݗ=ܗ>ݗ=ݗ<ݗ<ݗ=ݗ=ݗ=ݘ>ޙ?ޙ?ޘ=ޘ=ޙ=ޙ?ޘ@ޙ@ޙAޚCޚEߚFߛHKRY`gr|汇絔麞뿦íƷʼ˶t;[w,H^>[yNkEcBbFpL{@gHnWz][XItEo/Qk>a1Y{=f:Y~+On"@Y8N6N4]~:],Ie,Ni%BX*Oo =U9_"8R!0& "64Mh -A PWtC]z&C^(80;XZ[r>EW.;,:#13D& +  + +  ERf@_~QzSp530/&=<2RNBg`Wxsjz}rpe]WGD>$%)*$AB>SUY`chfjpcfn[_gVZ_PTYMQULOSKORMPTOSVRV[UX^UY_UYaTX_RV[PSXMPULOTJORKORKNQMNQLNQILNFJKCIJAHK@GK@HL@JOENVIR\NW`S\eW_hZdm]fo`gpbjqdkrhmtioujpvmrwnrwosxptypuzot{kqwhnuagl[_fRW]LRXKQVMSYQX`Y^g]dkaipelugnvipwjqxjpwkpwkpwkqxkqwkqxlqxmrxmqwmqvlpukptlpulpulpukoulpulpulpulptmpumptۿںطֱԭҨФΟ~͛v˗mʓfɏ\njVƉMņDĄ<ń=ă;Ą;Ņ<Ņ<Ņ=ń<Ƅ>Ƅ>Ƅ?Dž@Dž?Dž<dž=LJ?ȇAȈCȉGɊLʌOʎRˏU̐Y͓_ΖdϚnџ{Ԧ׬ڲܹƿǽĵ⿯ṧߵޱܮ۩٧ؤ{נo֜dՙYӖQӓEҏ9э1ы/ъ-Њ*Љ&Љ%щ$щ'щ)щ'ъ%Ҋ&Ҋ$Ҋ&ҋ&ҋ$ҋ&Ҍ*Ҍ*Ҍ,Ҍ+ӌ,Ӎ.ԍ0ԍ1Ԏ1Ԏ4Վ5Վ6Տ7Տ7֐;֑?֓FוKחNטRؘSؘUٙVٚWٚXٚXٜZٜYٜWٚQٙQٙRٚTڛVڛXۛYۜYۜYۛUۚTښQڙNۘLڗHڗEږCږ@ڕ=ڕ=ڕ:ڕ;ږ@ڗCڗCۗ@ۖAۗCۗAۗCۗAܗAܗ?ܗ>ܗ=ܗ=ܗ?ܗ?ܗ?ܘ@ܘ=ݘ<ݗ<ݘ=ݘ>ݘ=ݘ=ݘ=ݘ>ݘ>ݘ?ݙAޙ@ߙ?ޙ>ޙ?ޙ@ޘ@ޙAޙCߚDޚEߛFߜHߜKPW\cov殁泌跗껠İǵɺ̾p<^.Ha,FZ5PfBbXQ}][_UYYUrB_{2Ok:P2B&;O.>)/A2W}6[0Pp.A5Xu?\{)F^:Zy"9K,Op*Lh/Ol #.C  0Tn"9L -gs*@].> pm"#6EL\#2,'5(AR ( !(   + IVk0SrdQv+BYI\w?VpIVk?I]*0>bgx7F[Zk]buU]qRYh]cvaoO[ou}LUk#$,6LcTpjt^n;Sk:GWJM[ "##%& + *45 + )>mau!KU`_RnyuMQY agz)3E(0!* 1-C%?!1A$2!-#  + -  '  ,  &5#>T  + %%$2 4I.<-=,9&3    + %$"!.48IQqrzvtqZZU;=3/0&==2QM@g`Wxsj{}spf^XFD<%%(*$@Bݘ?ݘ?ݘ=ݘ=ޙAޙ@ޙBޙAޙBޙAߙ@ߙ?ޙ@ߙAޙAߙCߚDߛEߛFߜGߜJNTZ`iqz寅紎跘黟꿥«űȶʹ˼̽̾̽̽̽˼ʻʻʻʼʻʼ̾duHb~6Qj*H^)>N%-$BWMsWbcbYQz?^~IiUnAa~+Hh>T* 6J'Kl4Wv2Tv%E^8K0D/RmBf9Ys'Ig;g 7M1E.C-= ) 1C%!,:PkUd5H!^g|2-E>FX0@3E$0@/? " +  GP_,Kj\AjD\t8WtF^|1C\]y&%/MZg+401&<=1RM@f`Vxrj{~tpg`YJF@%' ()$@B=VUYachgjqbhn\`hVY_QU[MQULOSLOSMQUOSVQUZTW_VYaUZaUY`SV[PSXNQVLOSLOSLNRLNQLORKNQHKOFJLDILAGK@GK?HLAJQENUJSZNW`T\eX_i[dm^fo_hqajrdkshntioujpvmqvosxotzotzotzqtzmrxhnscgl[_eSW]LRWLRWNSYQY`X^g]dlaiqfluhowjqxkqykqxjqxkqxkqwkqxlqxlqxmqymqwmqwmqvmqvmqvlpulpulpumqvlpukptlpulqumpu۾ڻطִԯөУΠ}͛u˘lʔfɏ\ȋSƈFą=Ă7À2À10À0Ā.Ā0Ā/ā1ā0Ă0Ń1Ł/Ł.ƀ.Ɓ,Ɓ-ƃ4ƃ2ƃ1DŽ2ȅ6Ȇ9Ɉ@ʋK̐SΗbўsԥ֭ڲܸ޿ļƻ±⽪Ḥ޵ݲݯܭڨؤyנn֛dՙ\ՕQӑCҎ:ҍ5ы,ъ)ъ&щ$ъ%щ"ъ"Ҋ#Ҋ%Ҋ&ҋ'Ҍ&Ҍ%Ҍ&ӌ'ӌ)Ӎ,Ӎ/ӎ0Ӎ/Ӎ/ԍ0Ԏ2Վ5֏8֏7֐8Ց9֒>֓EזKؘPؙTؙWؚYٙXٚXٛWٚVٛWڜXڜWٚUڙRٙOٙOڙQښRښSښSښQښRۙQڙNژIڗFڗDڗ@ڗ@ږ=ڕ:ڕ:ڕ:ڔ;ڕ=ۗ?ۗ=ۗ>ۖ=ۗ?ڗ@ۗAܗ@ܘ>ܘ=ۗ=ܘ>ܗ>ܗ?ܗ@ܗ?ݘ?ݘ=ݘ=ݘ>ݘ?ݘ@ݘ@ޘ>ޙ?ݙ@ݙ@ޙAޙBޙCޙBޙAߙAߙ@ߙAߙBߙBߚDߚEߛGߜGߜIߝLQVZakpz殃沉綒蹙鼟꿤©ĭƯƲƳƳƴƴŲűŰııŰƱǵɺ|I^w9Rk%>P5C-H`#CZ/JaO{NOK~:\|/Mf8Wv6b*I_6TjVsB_p6Ql+:":N(Id1Ts:M/Qm&C]1E.=+Us8`~3G2Wu!.%(=Z'Eb  &23F + #8Pgu(*'2Ldcu-3C&1V2*9   + `f|;M`2CV&40.%<;0QMAe_Uwrkx~uqha[IGA&)  ()$@A=UUXbcigjrcho\`hVZ`QTZMRVKPSLPSMQUOSWRV[UX^VZ`UZaTX_SV[PTXNQVLOSLOSKNRLNQLORJNQILNGKLEILBGL@GL@HMBJRENUIS[NXaT\eX`i\cl]en`iqbjrdlshntiovjpwmrwntyou{ou|pu{qt{mrwintcgn[_fTX]NSYKQVNSYQX`W^g\dlbjrfmtiovipwjqxkqxjqxkqxkqxkqwkqwlqxmqxnqwnrwmqvmqvmqulpulpumpvlpulpulpulptlqumqu¼۾ںضֲԬѨТΝ{͚t˕iˑ`ɌWljJņBă8Á1À-,À,À+,,)*Ā+ł-Ł+Ł+ŀ%"ŀ#Ł*ł-ŀ&Ɓ(Ƃ)ƃ*Ȅ1ɇ?ʍLΒ]Мnӣ~֩د۴ݺĽǼô㾬⹨ජߴޱܯ۪ڥ}ءqמg֚]ԖNԑBӎ:Ҍ1ы*ъ'ъ&Ҋ%ъ#Ҋ"Ҋ$Ҋ$ҋ(ҋ&Ҍ&ӌ'ӌ'ӌ(ӌ*ӌ+Ԏ/Ӎ-ԍ-Ԏ.Ԏ.Ԏ0Տ4Տ7֏6Ր6֑9֒?הDؗL٘QٙUؙVٙXٙXٙVٚVٚUٛUٛUٚTښSڙQژLژKژMڙLڙNڙNژKژLڙJژHژDڗCڗAڗAږ?ږ<ڕ9ڕ:ڕ:ڕ;ږ;ۖ<ۖ<ۗ<ۖ<ۗ?ۗ>ܗ?ܗ>ܗ<ܘ>ܗ=ܘ?ܘ?ܘ@ݘAݘ?ܘ>ݘ>ݘ>ݙ?ݙAݙ@ݘ?ޙ?ޚBݙBݚDޚCޙBޙCޙBޚBߙBߙAߚAߚBߚCߚDߚEߚFߜJߜJLPRV\dhrx~専沇絏踖軛鼡꾢꿥鿦鿦迧迧ªîųȹ̿սqKb9Um+HZ0La4Mb6Xp>eBiAlLOPGl^Pcy&=O/B 8L-Jd&B\1Sq#F]2CMf5]y':1E7L,!FgT + ")2Vky>[~5Up4Lgl~@WuZo/?P!*OYf)EM]ITiixjyjwp}p{u=DO"8FVfxu\j/EZ=Skjx$+$*/AGVLXc07B  CFN AM`snmbi  SbqBQi3BVEYw#0D6+Ma2?&  + ! + %0#-  +!* "'!0> &  &11B%:N'8$9P-9"%('%/""")6?Filo˵wvsZ\U=?410%;;/PL@e_Uwqky~vrf_YFF?$( ')$BBڗ>ږ>ږ?ږ=ږ;ڕ8ڕ:ږ;ۖ:ۖ;ۗ<ۗ<ܖ<ܗ<ۗ<ܗ<ܗ=ܘ>ܗ>ܘ?ܘ>ܘ@ܘ?ݘ?ݘ@ݙ@ݙ@ݙ@ݘAޙBݙ@ޚBޚAޚBޚCݚEݚCޙCޚCޚCߚCߙCߚDߚCߚBߚBߚDߛDߛGHJLNPRV\agmptx|汁沋紏絒緖踙繛蹜繛繛繛繛纜纜纟罣辦įƷʼռq~B[s<[v5Si7Sa1KX/Mb2SjJvP}MyHt:c&CZ 0 &59N+Kf5e3YtJqHWaNas2F[ 4G$A](Rp:P*AZ?\9g3D .?V3H@[1`~)8 * +>Q$1/CXf},>[/@(.=78ACVp  ).;/?K%*:3I)MkHXp/Mj$3)SbzQpJt=[utH]wEVi%0A&.NXd**64;LV`xkyk}ovws}79G**3.>Kf~wRc|?ReBVoVcw$$'06#  "   ""  #4E*9(8%6(  +!!%0#!$ٕ@ٖBؕBٕCٖBٖBٖ?ږ>ڕ=ڕ<ږ;ږ;ږ<ږ=ڕ=ڕ;ۖ9ۖ:ۖ:ۖ:ۖ;ۗ=ܗ=ܗ<ܖ:ܗ:ܗ;ܗ<ܗ=ܗ>ܗ@ܘ?ݘ@ܘ@ݘ@ݘAݘAݙAݙAޘAޘAޙBߙBޚBޛCޚEޚDޚDߚGޚCߚDߚCߚCߚDߚDߚCߛCCCEEHJLNORSWZ^aejnry|䯂尅汈屈泋峍泎峏洏浒嵒涗減纟缥迩ıǺ:O`&>T&AY 6D 2A)>N8E;jBj0Us(Kh/Ts'@R8I"1&4(62B;h5Wq:^|.E\.@RZpM`r9Sn0Ut9N/E0]Bd"7J/@/?$Ea+=%G_'=Q.C$!, &1D5Ohhv)F`%QW^+<$3D &8BP-B'Jf0WyYj'Je$:N$,=NbZrKh>awTh7CT#,$06CTa6>H&.:Wbymzm{n}sgvq};>N6;C$,9nwhuKYqAWrTbs!.6AR\q?H]8FT  )56@)12;CdgjʯٿĹyvt\[Wg_Vzqjyurk`\KF@%)')#?C;SUWadjhkrehp\ahUZbQU[MRWLPTLOTMPTOSWSW[TX]VZaWZbVZ`TW]QTYORWNQULOSMPSMORMOQLOQJNOHLMFJMBGLAGL@IMBKQEOVIS\OXaS]fX`i\dm]fo`irbjsgmtiovjpwkqxlrymsypt{ru}qv|qu{nsxjoudhn\`fTX^NSXMQVOTYQX`W^f]emcjqgmuioxkqylqzkqykqxlqylrylqxmqxmqxnrxnqwnrwnrwmqvnrvmqvnqvnqvnrwmqvmqvmqvmqvmqv¼ܿ۽ڻٶ׳կӫҧТϞ}͙s˕gʐ_ȌSLjHƇ>ń8ā-*~&~$~"~ ~~! ~~}~}}}~}}~Ȅ-Ɉ=̎PΕ_ћnӠ}ե֪ٯڴ۸޻߿Ļſƹ²㿯ἫẨ෣ߴްݭ۩ڥxءmם`֘TՕMԒHԑ?ӏ=ԏ:ӎ4Ӎ2Ӎ1Ӎ0Ӎ,Ӎ,Ӎ+ԍ.Ӎ.ӎ.Ԏ-Ԏ/Ԏ2Ԏ0Վ0Վ/Ԏ/Վ0Տ1Ր4֐5֐5ב:ג>וEؗJ٘PٙTٛWٚVڙTٙPڙOٙM٘JٗGٕBٕ<ؔ9ٔ:ؔ:ٔ<ٔ?ٔ?ٔ=ٕ;ڔ9ڔ:ڕ:ڔ8ږ7ږ:ڕ;ڕ=ە<ۖ;ۖ;ۖ:ۗ;ܖ;ܗ=ܖ=ܖ;ܗ9ܘ:ܗ:ܗ=ܗ>ܗ?ܘ?ܘ?ܘ?ܘ@ݘ@ݘBݙAݙBݙBޙAޘ@ޙCޚBޛBޚBޚDޛEߛFߚEߛEߚEߚEߚCߛDߛDߚDDDCEDFIKLMNNOPSV[_bchnpuy{|䮀䯂䰃䰄䱈峌洒淙渜滢罦ƸɽĿObwJhFhKrLm@a9]x'M`?d=d5G9M!;M2>)9+7,;.=!8L/Lg3^%Je$=S7a}(:LJ\lUq$9N%?Z%Qr"C`0E_3HIh+Wy1D#!;P:Rr'75I'Je +8H58Ctmv1,? + %=YRbz"/)  "0  + +*7"  + +  +  + %   #-"-'*4)2@>DMcdf«еļżƾŻyvt\\W=?4,/#;:-OK?d^Uwqiyusia\JF@%(')#@Bڔ<ۖ=ۖ;ۖ;ۖ:ܖ;ܗ<ܖ<ܗ<ܘ;ܗ:ܘ;ܗ>ݗ>ݗ>ݘ=ݘ>ܘ>ܘ>ݘ?ݘ@ݙ@ޙBݙBޙ@ޙ@ޚBޚBޚBߛDޛEߚDߛEߛEޛCߛEߛDߛCߜEߛEߛCDBCCDEGHIJKKMMMPRVWY]`cfkmorsux}䭁䯅届峐嵔縛纡滣⽫õ͸tT+Ka4D3E/?%9N9_7Vm:Ys8J,Md0C7SnSiYo4Mg%A`#@^)BW"C]0Z{!.*8'8%VsI`~;Vtm{AH[7=GT]jWet#' ')!?A:SUW`chgjrdho^biW[cQV[NRWMQTLOSMPTPSXSV\TX^VYaW[aWZ_SW]QTYOSWMQUMPTMOSMOSLPSKOQJMOHLMEJMCHL@FJ?ILBKQGOWKS\OXaT]gY`j\dm^gp`iqbktfmuhovjpwkqxntzot{quzrv|rv{ru{ptykoucip\aiUYaMSYMRWOSYTX`Y_g^emckrhnujpwkqykrylrykqxlrxlrxlrylrxlrxlrxmrynrynrwnrwmqvnrwnqvnrwmqwmqwmqvmqvnrwmqvۿۿ۾ۻںٸضֳհԬөѤР͜t̗iʐ_ȌQLjGƅ<Ń2ā+&~!~}~~~}}}} +| +} } }}~ƀǃ*ɇ:ˋH͐VϖdЛoҟzӣը֬ذڳ۷ݹݼ޾߿¸ļƿȾƺö³⽭⹧෡޳ݮܫۨ}٤sءkםcךY֙W֙W֗S֗OՖLՕIՔF֓D֓D֓DՓBՓ@Փ?֓>֒>֒;֑7Ց5Ր4֐3֐4֑7ב7ב8֑9ד=ה@זCؗG٘IٙOښSښRٚPٙM٘H٘EؖBؕ?ٔ;ؓ7ؓ8ؓ7ؓ5ٓ8ْ6ٓ8ٔ7ٔ6ڔ7ٔ7ڔ7ڕ7ږ:ڕ:ڕ>ە=ە<ۗ=ۖ;ۗ:ܗ<ܖ=ܗ=ܗ>ܘ<ܘ=ܘ=ܘ?ܗ?ܗ=ݘ>ݘ=ݙ>ݙ>ݙ?ݙ?ޙ@ݙAݚBޚCޚBޚBޚBޛCޚBޛCߚEߛDޜFߛDߛFߛFߜEߛDߛCDCDCECCFFHIJJKJKLNPRTVWXZ]acfglpsx{㮁䯆䱋崕繜輢濫ӵmy6AL"2@$/(38M =R0Xz1Zz8K  .=3D,If*FX$=L3Tn8Wq%>T'BV7I-LhFi'Le*;#D]*Qi&@X1Nm2IcQ]rWl{ 3H&:N%8O*;T!.@+=!19O>Wr**AZ9Xt4M=]~1[~IUn+"-CHP* (9)=2BY9H`?SkKrg-=S# + ;HY4Kc:QncvfsDO`BFVjwJUfSZm>5-.$:8-MJ@c^Vwphxusib^IG@%( &(!>A;RUWaejhkrdhp^cjW\dRV[OSWMQULPSNQUPTXRV\UX`WZaW[aVZ`SX^QUYOSWMQUMPTNPTMOSMOSMOQJMNHKNEJMCHKBGL@HLAKQFOVJT\OXaS]fY`k\dm^gp`jraksfmvhovkqwlqwmszptzquzrv{sw|rv|oszkoucjq[aiTYaNTZMRWOTYTX_Y^f^embjrhnukqxlrykqxlrylrylrylrxlrylrylrylrymrxmqwnrwmqvnrwnqvorwmqvnrwnrwnrwmqvmqvmqvڻڼڼںںٹٷ׵ֳհլӨѣΞ}Ιq˕eɏYȋLLJ@Ƅ4ā-&"~}}}~|||| } | } ~}} +ƀǂ$Ɇ7ˉC̎RΓ^ИgѝsӠ|Ԥ֩׭ٰڴܸܹܶݻ޼߾¹ļžʿȼŹĶ㾯Ẩජ߲ޯܬۨڤy٢qؠhמd؝c؝b؜`ל\כWךUיSטQטRטRטOחMחLחJחJזJזEוBה<ד9ד;ד;ה=ד>ה@וAؖCؗG٘HٙNښQښSښRٚQښMڙG٘EٗBٖ?ٕ;ٕ;ٕ:ٕ:ڔ:ٔ:ٔ:ٔ6ٔ6ٔ6ڔ8ڔ9ۖ9ږ;ږ=ڕ>ۖ?ۗ@ۗ?ۘ@ۘ?ܙ@ۘAܘBܙAܙ?ݘ@ݙ@ݘAܗ?ݗ>ݘ=ݘ<ݙ=ݙ=ݙ@ݙ?ޙ?ޙBޚCޙCޚBޚBޛCޛDޚCߛEߚDߛEޛDߜEߛFGFߛDߛDDCDDEDEEEHHHIIIIKMOPQRQTUWY\^`chmrv{}㮃㰆崑躟龥澪ѮsCR`(b 8N;Xv['Fb%5&CW;N"@U$Le(?Z 6MQanO[l+=%6+0E#Of!, + '.5"/7IZRim{IThAER~FMcWbs;GT^j~nzjyewv`p{utO^s^mu}.6HX`q:AN $KdIZrGUj(3@ "- +7(&\_e*37 +*:N 3G)>5,-$:8-NK@c^Vxphxvsic^KI@%* &(!=AˍL͒WϖbЛnӟyբզ֫خٱ۳ڶ۷ܸܹݺ޽߿úüĽžǿɿǼĸ㾮⺨ᷢߴްݬܨۥ{ڣuڢrڡsڢrڢqڡnڠjڟfٞdٞaٝ_ٝ_ٝ^؜\ٜ]ٜ\ٛZٛYٜWٛUٚOٙL٘JٗIؗGؗEؖDؗEٗHٗIڙMٙOښRڛUڛVښTښTڛRښJڙGژFڗDڗBڗ@ڗ@ڗAڗ?ڗ?ږ=ږ:ڕ7ڕ8ۖ:ږ;ۖ;ۖ>ۖ?ۗBۘDۙDܙEܚFܛGܛHݚIܙFܚDܙBݙCݙCܘCݘCݙ?ݙ>ݙ=ݙ?ݙAݙ@ޙ?ޙBޚBޚCޚAޚBޛCߛEߛFߚFߚEߛEߛEߜGߜGߜGHߜFߜEDEEGFEEEDEGFGHHJJLOPPQQRRSTXX]`chmru{~䮁㰍㴚ྼIJmBVe*@M$:K%>O5Yx;e2Sn,G\,Jg!?T2B.=#8E(?S2D*Le1@0>$)7(91D1Ol5V{9qDk2E,Fa'9 /$B[D_&=T2EXU\d?Sd4D#1@Y%Oe"EY>To.@W2BV-P$.  *   + "+5!-2  $+,9  +  $ ".<+9   "5G/;!*30D':'  +  + $-'4;GOVZWUg\YzpìͶyww]^W=?5--$:8-LJ?c]Uxpgxvtib^KH?$* &'">A=SUXbcihlreip^bhW\bRV[OSXNQUMQUNRVOTXRV[UY^VZ`X\cWZaTX^QUZORVNQUMPSNPTLOSMPSLORJMNHKMEJLCHKAFK@HMAJPEOVIS\NXaT\fZak[dm^gpajrcltfmviovkqxlrymsyptzqv|rv|sv}ru}pt{jpwdjp[bhUZaOT[LRXNTZSY`Y^f^emckrhnukqxkqxkryjrykrylrzmszlsylsylsylrylrxnsxnrwmqvmqvnrwnrwnrxnqwmrwmrvmqvnrwnqw׳״صصضصض׵״ְֲլӧңϞ}͙o˕fʎYɋMLjAƄ4Ł* ~}|}} || +||| | |~}~ ƂȄ/ʈ9ˌF͑UϗbКkҞuӢ~ե֩׬دٱڲڴ۵۶ܸܹ޻޼޽޾¹ĺƿȿŹó俭⻨ᷢ߳ޱݭܩܨۦ~ۦ}ܧۨܨۧ|ۦyۥvۤuۣrۢqڡnۡlۡlۡmۢmۢmۢjۣiۡh۠bڟ`ڞ[ڝWٜTٚPٚPٙPښPڙNښRڛVڜXڝZڜYۛXڛUڛRۚOڙLۙLۙMۙKۙHۙHڙFۙFژGۘCۗ=ڗ;ۗ<ۗ=ۗ>ۗBۘDܘEܙHݛKݜLݝLݞMݞOݝOޝOݜMݜJݛHݚFݚFݚHݚDݙ?ݙ>ݙ=ݚ?ޚ@ޚ?ޚAޚBޚAޛAߛAޛAޛFߛFߛGGGGߜHߜGGGGEFߜEߜFFECDEEEFFGIIKKLOOPPPRRQRSVY]aejnqw{氀㮄ݭحͮ}mRe|8J^.<&=S*I_-Mi!>U)6&1? 7J #1!O!*:7?K   ACBzlfβǼżĸǾyxv\^W>A7*."97-LJ?b]Twrhxvtja_LH@%) &("?@=STWbdihkrdjp^ciW\dSW]OTXNQVNQUORVOTWSW[UY^V[aV[bWZbUX_RV[ORWNQUMPSMPTMPTLOSLORKMOGKNEJLCHKBGK@GMAKOENVIT\OXbT]gY`j[dm_gpajrdltgnvjpvkqxlrynt{ou{pu|rv}rw}qv}pt|kqxdjq\ciTZ`OU[KRXNU[QY`Y_h_emcjrhnujpwlrykrzkrzkryjrykrykrylsxlsxmszmsynsynqwmqvmqvnrwmqvnrxorxnrwnrwnrvnrwnrwԯ԰ձղֲֲֲײְֲծիӨӣПϛv͗iː`ʍQȉDƅ7ł+ }}| +| | |||||| }}}} } +ǁȄ,ʇ8ˊB͐SϗbϚjѝrӡyԤէ֪׬خٰٱڲ۳۴ܶ۸ܸܸݺ޺޻޼߾࿲Ļƽɿƺ²㾭⺨෢೚߰ݭݫܪܪݬެޭެޫުݩܩܨ~ܨ}ݨ|ݨ|ݧ|ݧ|ީ~ݩ~ީި}ާzݦvݤqܢjۡd۟`۞\ڞ[ڝYڜVڜUڜWڜXڜY۝[ۜYۜXۜUۜSۛQۚQۚOܚOܚOܚNۚNܚLܚKۙHۙGۙDۙAۘAۙEܙHܚJݛNݜOݞTޞWޟYޠYޡ[ߠ[ޠYޟTޞRޝNݜKݜLݛKݛGݚCݙAݙ@ݙ?ݚ?ޚ@ݚAޚAޚAޛAޛ@ޛ@ߛEߜGߛGHGFHߜHFIHߝFFGHFFDBFFEEFFIJKLMNNPPPQQQRRUWY`beioxx|簅岎ٴam]i}=N_)8G&1(4"..>(8%3!;T;[w2<#, !+CX 8K%MeAe:\z 6I0D[":S8_4Qk!5F'7.?'BY"9L+</@"1'6*+;/MS[CPZ!/ %9Ro=UxBh6K9L$1*0B"9O&7H#1CP[" )=#?_UfjPe[v[r!7+5>48<''/ +/<]hyt~oxh}S_rfwcufuvpy[asIP[ + + GVcRdv3D[7FZ.9I:FN   A?I $1, #.>;J_*<:Lc6KgFd&8J *    + +/55 +  )"-)6 +  ,08 $#,(+ +     +   #")#-8+6A",54b^Twqgywvjc_LGA'+ $'!?@@6*."98.NI>b]Suqgxwwjb^MIB'+ &(!>?;STV`dihkrejp^djW]dSW^OTXMRUNQUNQUQTXSW[UY_V[bV[bVZaUY_RV[PSXNQUMPTMPTMPTLOSLOQKNPILOFJMCILAGK@HNBKPEOUIT\NXaT]gWak[dn^gpbjrelshnuhpwlrylrynt{ou|qv}rw~rw~rw~pt{mqxdkr[ciTZ`NTYKSWLTYOY`W_g^fmbjqgnujqxlrymszlrzlrzmszlszlsylsxmszmsznrymrymrxnrwnrvmqvnrwnrwnrwnrwnrwnswnrvnrwУϤХѧҨҩөӪԪөӨҧҤѡО}Ϛv͗k̒dʏWɋMLJ?ƃ/ŀ!~||} +}}} ||||}}}}~ƀƁȄ$Ɇ2ˊ>̍K͑Tϓ_ЙgѝpҠyӣԤեէ֩֫׬حٯٰڱڲڴڴڵ۶ܷܸݻ߾·Ļƽȿǻö㽫⺧ḣඟߴ೚೚ജඟᷡⷢᶠᵝᴛഘങᴙᴚⵚᵚ⶛ᵝ⶜ⷜ⶝㵛ⴘᲕᰏ௉߭߫~ީzݧvݦrܤmܢiܢfܡeܡdܡeݡeݡdݠaܟ\ܞ[۝WܝW۝TܜSܛSܛSܛRܛQܛNܛNܜOݜRݝQݞUݠZݢ^ޣgߤkߦmpuxwtpmߥgbߣ[ޡXߟSߝPޜKޜHޛFݛBޚ?ޚ@ޚBޚBߛDߛDߜDޜEߜFߜGߜGHߜHJߜHߜHHHߜDEFFEECCEGHGGGIIIJKMMMOPQPOOQRTWZ[\bgkrz~渙׼q@Q_H^z?Xq7La(=O'BX(CX"(9%53G4I"0+;   %2,;Jq[v4Sn0C">T+Fa':T-@#3"3 ! +5?V';S0K :T8dp^J_5DZ'EQY6:G9DM!0Br~ytm}xhwsotamFLX%'=BJftAMd&5KvT`u)6 +  4=E &Y`hINr^Yl1Ph":O2H`Ca|Xx&3)5"/!*-:C +/14$,!,#(3@"  $1+!(  !*#/<#4D$0 1=L(8L '2(;Q   +    + + +   %(3*2;.9@JLNǷջѵøȽľzzx]^Y?@8,.#57,MI=a\Qupfwwuib^JH@&(  %'!>?;STWadlilseip^djX]cSX^OTYNRUNQTPSWQTXSW\UZ`V[bW[bWZbUX^RV[PSXORWMPTMPTMPTLOSLORJMPILMFJLDILBHK@HNAKQEOUHS[PYcT]gXak[dm^hpajqdlsgnuhpwkqvlrynt{ou|pv}qw~qw~rv~qt{mpwdkr[bjSZ`NUZJRVKTXPY_W^g^emckrgovjqxlrylrylszls{mszlrymrylrxmszlrymrymrymrxmrwnrwmqvnrwnrwnrwnrwnrwnrwnrwnrw͝y͝z͞}ΠϢУѤҤѤѥѤУРϞϜz͙s͗k̒aʎWɋMLj@ƃ2ŀ#~|||||||||}}}~~ ƀǁȃ"Ɇ0ʉ;ˋG̏QΒZϖ_КjѝuӠzӢ~ԣԥ֧֨ת׫׬خٯڱڲڳ۴۶ܷݺ޼߿÷Żǽɿɾƺô㽭⼩⺧⹣ᷢ⸢⹥⻦㼪伪㻩㺦㺤㺤㺤㻤以仦弦伧彨循循循彨弥乢丟㷚ⴕᲐᰋஆୃ߫~ߩyިwިuާtަsަrަqޤnޣjݢcݡaݟ^ܞWܝVܜVܜVܝVܜTݝUݝTܞUݞVݟXޡ]ޣbߥjqsx{~⭀⭀|xtofaߡZߠTޞPߝNߝLޜHޛDߛBߛCߛCߛEߛDߛFߛGߜGߜHHߜGHHߜHGGHFFFEDDDDEFIIHHJHHIJMLMOQPPNNOPRUX\^Z^hnw}⮌ڸTbu6J[7QfD]x*@S,80>(EZ%CW(Ni 6I (4&9G0@4X{;_}'BW(=R ;N&5"8K?[wGg!@U"8J*E^A]w&9L&3':T6N5J/?$2%6+ GVT8?A:>; *B]_tGc(DXKk:_$Id'; &  '4H5Je,K&>Y6a~HbGSn2F] 12=HT\dKR]M[nt}hx~iyyo{]ewGNZAIQ&+2S\hly?Mb.AVqDQg*5E   +-7;%-2!)3MYJTn&B]#@J #0C%5E_v>Vs>QmQf~8Ka)?O^p(-< %*8/G^))5 +!"/ %3)5&1 *8(5$4C)46I )7 #1 4E ''0<*=S*9(6%  +  +  + "% '8BL^jz͵ۼöʾ{zw_`Y?B9+.$77-MI̋G͍OΑVϕ]ИcќmҞuӠzԢդե֧֩׫جحخٯڱ۴ܷݺ߾ùƽǿȿǽƻƻƻǻȽɾƹŷĴIJòò²ôƷǹȺǻȻǺȻȻɼɾʽ˾˾ɻȸƴűí濧弣庡湟巜嶙䵗㳔㲐Ⰺᯇᭃ~ߩxߥqߤiޢeޢ`ޢ^ޡ_ߢbߢbߣbߤdޥjߧqx~⮂㰈䱋䱋䲍䲎岎岋䰉㰆䭃}voeߢ_ߡZߟUߟRߞOߞMߜGߜFߜFߜFߜFߛFߜHߝGߜGߜFߝHߝGGGGGHHGFFBBCEEFGGGIHIJKKKMLNPOMNPOOPRSWXޝTYegmઁԪ_qgHeOm3Le.Gb*55G+Z}6]|6]z(6,H]3Nd,Ic$=Q-F[!CW3Tj,;>Vn%@O#2':S%@W.Ro)D[.Kh&E\+DY$@T'>Q5H!BZ#?X%7K":U%8O %#)16?C-GY:WyQzIfb|-U{ Nr3O0I$5  ,$0A=So=d7_qk[rXg{#/0>H]i|ITk~wi{xmxqal~HQ`=GXs~mxU_uXe}o_rJZn )6 %5%-? 5=Qc$2 +?Ue$?WJjNfTf{9FYSbs .D%6M.C&!#&1#4?+5 ('  +,; %#!"- +"/     &6D 18%, +6*6   #%-1=F4CL9IPbotѶؾ{{w__Y@C9,/%87-LJ1A1Wu7Uq:^}+Ie$8S /B;S(DZ+>X)>S1F,B[9I7L(Ni'Gb!- + (6JHXlRfNwDnBj_8].H 0$%4 -:O/PPn&OvzpkTkRf{+?KT`emx~zexrv|{yXcyWardp{W^r`i}gshy]m|0?O!* '4(1>.@Q2AQ$3 -'2;L]W1H,Hb%87Od-?Q'=N! + *8 -?2C%:I#7G*8?P(5 !-&8G/>)?W'6H   +$ -AZ6\{/@ ""/&;O'F\&E^#̌F̍L͑VΔ^Зcљhҝqӟxԡ~ԣԤզ֨ת׫׭ٮڱ۴ܷݺ߽¶ĻȾȽǼǽȾʾɼɻɻɼʾ˾ʼɹȷƴĮ羧漢湝䷚㵔Ⲍⱈᯄ⮂⭁⯂Ⰴ㰆㱇㲊䴐嵑巗湚绝缡缢绠縝淚淘嵕崑岌䯆~xlga\XߡTߟPONߞKߞIߞHߝHߝGHߝHIHHFGGFHHFHGECCDCDDDFGGIIJKJLLLLLLMNNNORSVY\_aܝ`Ә[őjmn|dW`Rx/CV*4)=Q3A!9J&@Z%AZ1Qg,G_)H_(?P&3!@[.Ok.Qf$/"4F,>%Ia4La*>S*AW=`@mU&NkD\ + + %;Q0EbKk\Fv:\[|.Oq,B + #=T"+Pp-KmFe@hbKfg{CO`Yexth}pw{y~gttyuPWgcl~oxgtl{DPf -5 7;H2:F;IV " 1B;Si.BRsTgf}y-Fc*A29\z*Dd,H_'):-;&#+0J`5Xs7Nh/F]#5H(=Q$6G'#@U!=R$0 " +  + #',#(2:FS9HSgvǴ|{ya_Z@C:,/$87*MJ>c\Qvohwyuid_LJC(*" $& =?9RTV`chhlrgkq`flX^fSY^QUYNRVNRVORWQTYTW\VZ_X\aX\aX\aVY^SVZPSWORVNQUNQUMPTMPSMPSKNQKMOHKNEJMCIM@IMALQGPVLS[OXaT]gWaj\en_hobjremthovjpwkrymt{mu|qu|qv~rx~sx~sxpv}mryflr^dkW\cNV]LSZNU\SZaY`h_fnckrhowkqyms{mszls{ks{lt{ls{ms{mszmszmsznt{nt{nt{otzosyosxosxosxosxnsxnsyosxosxptyƉIŇDŇCŇCňDƈGNJJȋMȌPɎTʎVʏYʏXʏWɍUɌPȋKȉGȇ?DŽ6ƃ.Ɓ%ŀ} +}}}}|}~~~~~  +ǀǀǁȂ#ȃ&Ʌ+Ɇ2ˈ:̋C̍I͐Qϓ\ϗ`ИeћmҞtӠ{Ԣ~գե֧שת׬خڱ۴ܷݺ߾¶ŻɿǾǾȿ˿˿Ϳ˼ɹǶIJ­澣弞庛巘䶕嶕巖幙幚庚滝绡缢群ªª车輢纞減淗崑䱉㯃|pkfc`[USQPOߞJߞHߞGߝHߝIJIGGFEGEGFHFFEEEDEEFEEEGHJKIKLLLJKKNONOPSVZ^bhnؠqēunfY]i[meWyFpFf'7D1>-:*E^2Qm8^:h1Tp#>S(Lg=i!8H+<3Rq.Mf(CX=I0<)5)9"13XnXGb}8`|9Ie4DV.Hb8Kh.>=P.G],J^ 3B&!+ ,BX"4D*+>(;S)9 (=Q",/8&1*5">P!+ +    $'!  "#2=081=JW`mt|γƿĺ{{z`_YAC9,/$78*LI=c\Ruog~wzujeaNLE*,# #% =?8RSUacjhmsflr^fmY_gTY_QUYOSWNRVORWQTXTX\VZ^X\aX\bX\bVZ_SW[QUXORVNQUNQUNQUNQTMPSKOPKMPHKNFKNCILAIMBKPGOVLT\PXbT]gXak]dn`ipbjrdmthoviqxjrymt{nu|qv}qw~rx~rx~rx}pw}mryfls]dkV\cQW^NT[OV]TZbZ`i_fndlshpwjqylrzmszls{ks{ls{ks{mt{nt{msznt{ns{nszmsznszoszntznsyptyptyosxosyptyosxosxƉJņ@Ņ=Ņ:ą8Ć;ņ=Ƈ@LjEljGNJJȋJȋLȋKȊJȉFLjCLJ?ȅ9ǃ2Ƃ(Łŀ} +}}}}}}~~ƀ ǀǁȁȂ"Ƀ%Ʉ)ʅ/ˈ9̊?̌G͏NϑUϕ\ЗbЙhѝnҟvӡzԣ~ե֧֩׫حٯڱ۴ܸݻ߿úƾɿȿǾǿȿο˽ʻɸdzŮ«翦迦ªìíůŰƲƴǵǴŰí辥輠繛嵕峋䱆yqmljgaZYTTQNIKLLKIGGFFFFFEEGFFFFDEFFGHIHIJJJLJLKKKNOOOQUX[^dq篁ߪzrze{bZzLkO"=K-4)'DY8M#?Y1@"?T(?R 4@+CV5Xr3]~DlCazF\z8Ur;aX;Ys&;M.?2B3G%@Z;Y(Zy9N"1">U4Uz#?Z'?U>]\Ah1Y2G# *'?4Lj0Rx;_Btvawv~fnn~}q{u{~r|s~ozdsbthv;J]BQc:J_   &7:ToBUk`ctM_r>Naw{kcz?Pf.=(2A0BT#2B4E+9 1> 3E'8 ;R/CX2Q/@+8 +    + + + !&#%!$*!*28BH{yĬپȽ||{ba[AD:+/$57*LI=b\QuphxytieaMJD'+! "&;?;QSUacjhmtfls_fnZ_fUY_QUZOSWNRVORWQTXSW\VZ_X\bX\cW\bVZ_SW\PTXPSWNQUMPTMPTMPTNPTLNQJMPHLOFKNDJNCINDLQGOVJT\PYbT]gXak]en`ipbkrdmtgovhpwkrzmtzou{pv|rxrx}sy~sy~qw}mrygmt`dlW]cQW^MS[OV]UZbX`i^fnckrgovjqylr{lr{ks{ls{mt|ls|mt{nt{ntzosyosynsynt{otzoszntznsyptyptyosyosyotxptyosxNjOņ@ą:Ą5ă4Ą4ă4ă5Ņ;Ɔ<Ɔ<LJ@LjBLjALJ@ȇ?LJ<Dž6ƃ2Ƃ-Ɓ#ŀ~~ ~~~}~~ƀ ƀǁȁǂȃ"Ʉ'ʅ.ʇ6ˉ;̋B͍JΐQϑVЕ_ИeћjѝqӟvԢ{դզת׬خڰ۳ܶݺ߽¶žȿǽƽƽƼƼƼƻƻƻǼǼȾɿ̽ʺɸȵȵȵɷʹʹʺʺʻʼ˼˼˼ɺȸŲí轤纝涖崐岉䰅䮂{xuqnhc\\\UQPOOMJGHFGFECFCEFFGEEDFFHJIHGHJJKJKKKMNOMPRTX^cepڥУ}jNk7RgD^wDXsBXr5CS ,6%0$AS/Kc:Wx)D]*6(63Vh#DU-<"2"*4(B_#B]0Sj6Rj/B(<,LjTqLjNg6Ni%D^+Nh/[{@k/_6Oh)9%6.D4N*PoF`%D^.< 21H,>UKvJlHgUvGdQi1  (@*Ko8_Mt]hX|ue{QnWpsyz|}oy~hyk|XjObybp2J,@+5 /2F[BZt@UkMh;Oh1GaVtkLi=TsNiQo4Hd&1MBNe#-< +  $+:"0 7H*?T?[uKf>^~ 0D (:G7H]0>T"5I/?/BV3Ga(8*!-!09&.)2.: + )7B%":QSV`dihmsglt`fmZ^eUY_PTYOSWNRVORVQTXSW]VZ`X\cY\dX\cVZaSW\PTXOSVNQUNQUMPTMPSMPSKNQJNQHLOEJMCIMBHMDLQEOWJS\PYbT^gXak\fo_hqakrcmtfovhqxjszlt{ou{qv|qw}rx}sy~sy~qw}mszgmsbemW]cPW]MT[OV]U[bY`h^fmdkrhovjqyks{ks{ls{mt{ls{lt{lt{mt{nt{otzosynsyntznszotypt{nt{nsyosxosyotyptyosxotyƉHņ@ą:ă4Ă2ā0Á/Á/Ă/ń4Ń4Ƅ8Dž9ƅ8Dž7Dž7ƅ2Ƅ.ƃ-Ƃ)Ł"ŀƀƀ~~~~ ǀ ǀ ǀǁǁȁȂȃ"Ʉ&ʅ,ʆ4ʈ8̉;͋C͎LΐQϒYЗaњhќmҞsӠyԣ~զ֩جٯڳ۶ݹ޼ĻǾżźĸķ÷ö´²³ĵķŹƻȻɽ̿˾ʺǵį«辧绠繙嶔嵑崏峌峋岊屈居䯁}wpkfc\WSQONJIHHHFEDDEEFFGDDEFFGHHJHHIIKJLMKMQS[QMNTYclܣnȔmu{`hSpPrJe~;U],;G$3@"4A&AW9Xx,Hb6Tm$0%2@-=/?&Cc&BU""3/I!6N+@8NAdNyJm4Nk2Ld3Oh4Fa,@Y%=Y%Fd:XwHk7Mf"2#S 3G,>P%3&2  #*1    -;,6'17KZcl|͹|}yba\AE;+0$68*NI?b\SvpixyvkfcPME*,$ #$<=9QSV`dhhmsgkr`fm[_eUY^QUZOSWNRVORVQTYSW]UZ`X\cY\dX\dVZaSW]PUYOSVNQUNQUNQUNQTNPSLNRJMQHLPFKNCIMBIMCLQDPWJS\PZcT]gXbl\fo_iqakscmufovhqxkszlt{nu|pv{qw~rx~sy~syqx}mszhms`elX^cQW]NT[NV]SZbYah^fndkrgovjqyls{ls|ls|mt{mt|ls{lt|mt{nt{ntynsznt{nt{otzptyptyotynsxosyosxptyotyosxptyƉIŇAą<Ą7ā3Á0Á/Á-ā,ā-Ă/ł0Ń1Ƅ1Dž3Ƅ2ƃ.ƃ-ƃ,Ƃ*Ɓ#ŀŀƀƀ ~~~   ǁ ǁǁȁȂȂȃ!Ʉ%ʄ*ʆ/ʇ3ˈ6̊=̌B͏GΑRϔYЗaњiҜnҟuԢ|Ԧ֩جٰڴܸ޻߿ùǿȾŻ÷³῰`ྮ༫໪໩໩໩ἩἪὫ⾭㿯óŷǹǻȼȽɾɾɿɿ̾ʻȷŲí轤统軜纛湙繘縗縗縖緓洎岊射|vrkd\WSPNLJIHHGDEDEEFFFEEFEEGHIIHHHJJKKKKLMPQSTS[ޠZٝ]שاϧcn{hndbLdzAVg_js58:#0<*?O6Vq;^0Pk-Lc9Ui1GV(1-6*G_,61J6L*;+Lj;_Em0QhE\y;aTccgd]LiFhPwa~Mg>Vs0K^-C1E`D]5RwR(4EJYj';PBVkE\q;Og;Sm?YvgsfK_~0EF"7K*=KeJb$BY-BMhEgyA\s=To";S3NgDeSrGd}$5K&Q/E\0DW.?S';K'1 !%*&2 &3 -=0B 1B+(1& $ +   + $(0-;CKX_ñտƽ}}ycb]BD;+/#67)LH>a]SuphxzwlgcPMF+-% "$;=8QTUadgintglrafm[_fVZ_QUZOSXORVPSWQTXSW\VZ`Y\dZ]eX\dUZ`SW]PUYNSVNQUNQUMPTNQTNPRLORJMQHLOEJMCIMBJNCLREPWJU]OYcT^hYbm\en^hpaksclueowiqxkrylt{nu|pw}rx~rx~sysyqw}nt{gmr`flX^dQW]NU\OV]SZbYah_gocksipxjrykszls|ls{ms|ms|ls{mt{nu|nt{nt{nt{nt{ou{otyptypsyptyotyosxptyotyosxptyosxNJKŇCŅ=ń8Ń4Ă2Ă1Ă0ă0Ń0ł1Ń1Ń1ń1Ƅ3Ƅ1ƃ.ƃ,Ƃ*Ƃ)Ɓ$ŀŀƀƀǀǀƀ ǀǀƀƀ +ǀǀ ȁǁȁȂȂɃɃ#Ʉ'ʅ,ʆ.ˇ3ˉ8̊<͍B͏OΒUϕ[јdњjҞrӡxդ֨׬ٰ۵ܹ޽·żǾļ¶߽޻޺޸޷޶޵޵޵ݵ޵޵ඟ߶߷ยṤầ⼩⿬²ĵŵŶŷƸǺȽʿ˾ʻɷǴůë迥辣齣轣辡轠轠輟軞蹚緖济沇封zrlbZUPMLJIIGFFFFFFFDGDEEEHFGHIFGIJKLKKJLNNPSU\hiߢ`՞cugPtCYnB\p^NW].5<,7+FZ0Rn,BW1Ro8Vu7Yn%8D("#%1-S.Ha$DXMz\M{;^|MrEqPLoD^`\QuohyzwlgbMME*,$ $;=8PSUbdgimshlragm[_fVZ_QV[OSWNRVOSVQTXSX]W[`Y\dY]eX]dV[aSX]PUZOSWNQVMQUNRUNQSOQSMOSKNRILPFKNDIMBJNBLREPWJU]OYbT^hYbl]fo_iqajsclueowhqxkszlt{mu|ow~rxrxtytyrx~nt{ims`flW^eRX_NU\OV]SZbYai^fndlthpxjryks{ls|ls|ls|mt|mt|mt{nt{nt{mu|nt{nt{nt{otzosxptyosxptyosxptyosyosxoswptxNJLƇEƆAŅ;ń6Ņ6Ń5ń6ƅ6ƅ5Ƅ5ƅ6Dž6Dž6Dž5Ƅ3ƃ/ł,Ƃ*Ƃ(Ɓ$Ɓ#ƁŀƀǂƁƀǀǁǂǁǁǁǁǁ ǀȁȁȂȂȂȃɃ Ƀ$ʅ(ʆ+ʇ0ˈ4ˉ9̋?̍GΐPϔXϗ_ЙdќlӞuԢ}է׫ٰ۴ܹ޽żǿĺ߾޻޹ݶݴܳ۲۰ۯۯۮۮܮܮݮݯݰݱݱ޳ߴඟ๣ṥ⻦㽩㿬±ôŸȺ˾˽ʻȷƴŰĬª龦鼤軠蹚涓泋寂xqf_XQNLKIHGFIIHEEEFGFGGEEFFGIGHIILKLKLLOPQTVX^jy}ˠs}fQaq=Pc'9C#3:"2=6Qg>]|WvQpan^~OsGqRq[VN8c6Wt";P,>-BYEjR|PhcTV]Jd>Yu%;L/<-:$# %%3$3+6(%/ +8 !+&!,7 $  +  + +   +&'11;CCNUbioĺ}}zcb\DE<..#77+KJ>`]Rvphy|ymgcPNG,.' $;=8QSTadhimrhlr`fm[`gVZ`RV[OSWNSVPSWPUYRX\VZ_Y]cZ\eX\cUZ`TX]QUZOTWNRVMQUNRVOQTPQTMOSKNRIMQFKNEJNBJNALREOWJT]QYcU^iYbl\en`hqbktdmvfowhqxkrylt{nv|ow~qxsxtytyrwmt{imt`flW^eRX_NU[OW^T[bY`h_fnelthpxjrykszlt{mt|lt|mt|nt{nt{nt{nt{lt{mt{nt{nt{ntzptyosxptyptyptyptyosxosxpsxorwNjNƈFƇCņ=Ɔ;ƅ;Ɔ=Ɔ<dž=dž=LJ=ȇ>dž=Ȇ<Ȇ;Dž9Dž6DŽ/ǃ,ǂ*Ƃ'ǂ&ǂ#ƁǁƂǂ ǃ!ǁǂ!Ȃ#ȃ!ȂǂȂǁǁȁȂȁȂȂɃɃɄ$ʅ&ʅ)ʆ-ˇ1ˈ7̊>̌E͎JϑRϕ[И`Қhҝpԡxԥ֩خڱ۷ݻûǿĺ´߾޺ݶݴܲ۰ڮڬ٫٩٨ب}٧{٧z٧zڧ|ڧ}ڨ۩۩۪ܭݯޱ޳ߴ൝ṡ⻦㼪侬òŵȺʿ̾ʻȷƳůĭëªëëì¬ì¬«龥鼠躚經汉~tlc[UOMJJIGGIIIFFEFHGGGFFFGHHHHJIKLLLLOPQRSV\o{⮈ڳ~ukOmHe8NbCO\HXiCTh,DT;_Be?i;]y#:M,C]&>S;Q7R!6P "*-;c6k6]:{J|PrY{b~mWOr]~SzAq6ZRZz3a%]QBuTX{pywz||R`}L^{Sgbv3PqZuFbNncV~dWxXyobL{Fu@g2Oq 9Q3G9K6H>L9G8G)6CQ!CQ9N8N"8R1J4P/Uu'Hg&D^ :T,B'8%!* )8$2  2B1C "   "/"/   $(4 + +$ +  #)1&%09+6=PYb~~}cd^CF=..$76+KIoJw5i\noyvU}ixwyx|kNkGf\~qgio`^W_L};p?Y *9 +.-%75*LI;`\Rtofy{{nhfSPI,1' !#:=8PST`chintgmtbhoZaiTZ_QV[PTXPSXPSXRUZTX]W[bY]cZ^eZ]dW[bSX^QUYPSWORVNQVNQUNQUNQUMPSKNRILPGKOEIMCJOBKRDOWKT]PYbU^iWbl[go_iqcktdmvfpwjrykszmu|ou|qw~qx~sytytyrxmt{inv`gmY_eQX^OU\PW^TZbZah_goclshpxkrzkszlt{mt{mu|nu|mt{ntznt{nt{nt{nu|nt{nt{nt{otzosyotyosyotyptyosxptyptyptyȌPȋMƉFƈCLjCLjCljDLjFLjEȉFȈFȈEȈFȈFȈDȈDȈBȇ>ȇ:Ȇ3DŽ1Ȅ1Ȅ.Ȅ,Ȅ+Ȅ)ȅ(ȅ)Ʌ,Ʉ+Ʉ+Ʉ(Ʉ'ʅ'Ʉ"ɅɃɂɂɂɂɃɃɄɄ!ʅ'˅)ˆ,ˇ/ˇ4ˊ?͋B͎DΎIϐQГWЕ]јdҜlӟxգרثٰ۴ܸ޽ļǿż·࿲߻޸ݵܲۯڬ٪٧إ~עvסp֟kםg՝_֜]֛[՛W֛W֛Y֛[֛\֜]ם`؟cءhأnڥuڧ}۫ݮ޳൚ᷠ⸣㺧佫òƷɽͿ˼ɷǴůì««ìíįïįĮĮî¬龦黟踙紎屃zqjbYSNLIGGFJJIIGHHHHHGIIHGHJJKJLMMOPOPPRSW^adޤiӠkzz|Rk~E[qGXo1<-EV.G[=Ui?^x@g1Mg#C[2V|+=R!2C#"8K#=R!;P%0 + ,(?!0  *>&Hl)Sn!@^5Q=[&=\2L%!#1 +BHVj"Xr:s8q9n7pTvPw_{@uV]OKsnlcb`N6xVGznxcKqr}z}|}h}Upfrib\~fVg\H|!cz +AN!''+8>NVhUh"\kP\&Va-]n<}$\o *4  +++@ #   !     +   +    #&)3&1$ %,0;H8IV@MWZcfx·~~cd_DF=.-%85*KH;`\Suogy{zmhdQNH,/' "8>9OST`dhimtgmtbhoY`iT[aQV[PTXOSWOSWRUZTX]W[aX]bZ]dY\dW[aTX^QUZPSWORVORVORVNQUNQULPSKNQILOGJNEJMCINCLSFPXJS]PYbT^hXbl\go_iqbktdmvfowiqwjszlt{pu|qw}rw~sytztzrxmu|hovagmX^dQX_OU\PV]SZbY`h_godmthpwjrzlt{lt{lt{lt{mu|mt{ntznu|nt{nt{ltznt{nt{ntzotzosyptzntyotzptzptyptyptyotyȌPNJLƈFƇCljEljFȉEȉGȉGȉGɉHɉHɉHɉGȊGɊFɉFɈCɈ=ɇ:Ȇ7Ȇ5Ʌ4Ʌ2Ʌ1Ɇ4Ɇ2ʆ3ʆ2ʆ1ʆ.ʆ.ʆ.ʆ/ʆ-ʆ'Ʌ"ɃɃɃɃɃɄʄɄ ʅ'˅)ˆ*ˇ/ˇ2ˉ8̊:͌?ΎDϏKϑQГWЖ^ҙfӝrԠw֤שحٰ۴ܷ޺߿¸ļƿǿžĺ¶߽޹ݶܳ۰ڭ٫بإףw֡r֞j֝b՛^՚ZՙUԘO՗NԗKՖJ՗J՗J՘J՘P֘S֙VכX؞\٠d٢oڥvۨܭް߲ߴᶞ⹢⻧佫Ĵȹ˾Ϳ˼ɷƳĮ«ª¬íîîîî­¬龦黟踘紏尃zrja[TPLIGGHIKKIHHHHJJHJKJJIKKLKMMMMNOPQRRW[^g{ޮƦ}cxRmRe|Lh|=O`,=K+?T%5C;VgIdGgAo2Jh'@["@V6D1C!9K/?*5    + +" $2 , $=.L(D#: ##"*=@7r}BUSDDA(j ZuXqZmSg-gG`SardZ[KQQifoYz}{~{ylZ}i`Rx`^Bn)[wMdBRS_ \a ++0 38:I=OEYMbRdXi+dr"PY.cm [fʇ;Ɇ9Ɇ7ɇ7ɇ8ʈ:ʈ:ʈ;ʈ9ʈ9ʈ7ʈ6ʈ5ʇ4ʇ3ʇ,ʆ%Ʌ!ɄɄɄɃʃʄɄʅ&ʅ(ˆ*ˇ.̈3ˈ2ˉ6͋;΍@ΎEΏMϑSДXї`Қhӝpաz֦שحگڳ۶ݹ޼߿¸¹ùúú¸࿱߽ߺ޸ݵ۳۰ڮ٫بإ~פzסr֞k՜d՛_՚ZԘUԗRԖLԕIԔGԔEԓEԓCԔBՕCՔGՕIՖL֘Q֙SכYמa١jڥsۨ|ܪݭޯ߱ങᶟ⹢㻧俫°ƶʻ̼ɹƴŮ쪬쬫«꿧齤躜緕糋封yriaYTOLJJHIKLJIGHIIHIIIJKKJJKLMMMNMNQPRSTW[\btްƥ}lEWj0@N*=I?]hIXa+^x?d4Pm8Qm%9J$+#!  +     +  &" ),J$?$> L[4lV^aQRP7{jiju7<cfau^y(oF_kcPQZbmqxoq~~UndcLsLo%F^6F>MKaI]OcZh bd8;KYM`CU +Pg^q ^p![j"U]"Xa$^iAF'1 3/D+Fe,Km1L     '# +  +   *6)3#+4+8G2=J0;DP[`~}~ff^EG=,/%67+KH;`]Rupgy~{qjfUPK/3* #:=7QRT`diimthnt`hoY`iU[bRV]PTYPSXQTXRUYUX\W[aY^dZ]eY]dW[`TY^QUZPSWORVORVORVOQUNQTMPSKNQJMQGJNDIMBJNDLRFOWIT\OZcU_iYcl\go_irbktdmveovhqxirylt{ou|sw~tx~tytztzrxnu|hovagmW_ePX_NU\OV]SZcY_h_gndlshpwjrykszlt{ktzmt{nt{nt{mt|mt{mtzmt{nt{nu{otzpt{otzotyptzotzptyptyptyntzntzntzƉDƈAƇ@Ƈ@LjALjALjDȈEȉFȉFɊHɊIɊGɊHɋIɋJɋJɊFʊBʉ@ʈ>ʈ<ʈ:ʇ:ʈ;ˉ;ˉ<ˉ>ˉ=ˉ>ˉ>ˉ=ˉ<ˈ9ˈ7ʈ3ˇ,ˆ&ʅ ɅɅɃɃʃʄɄ ʅ%ˆ'ˇ,ˇ/ˈ0ˈ2̉5͋;΍AΎGϐMϒQЖYљbқgӟpբx֥רجٮڲ۵ܷݹݻ޼޼߼޽޽޼޺ݹݷݵܳ۰ڮڭ٩بץ{ףv֠r֞j՜c՚^ԚWԗRԕOԕJӔGԒEԓEӒAӒAԒAԒ@ԒBԒAԓBՓCՔE֕G՗K֘QכY؝`ؠgڣoڦxܩ~ݫݭޯ߱ഘᷜ⹡㽨Ųɹ̾˻ɸǴŰê辤轣轣轣迤鿧齤軟縘涏沈~woe^XROKJIHIKKIGFHIHIIIHIJJKKLMNMMMMNOQUhVVedܣcעq԰ʶ_xMf>Rd;K\0@K#5?-4(;JIhE_|;Xr7Rp*'0 "/90:ER^ftyɿ~ef_EG=,0%66)LH:_\Qrofz}zoidRPJ-1( #9=7PST`chjmthnsahoZaiU[bRV]PTYOSXPTWQVZUX]W[aY\dZ]eZ]dW[aSY^QUYPSWNRUNQUOQUORVOQULOSJMQILPGKNDJNBJNCLQGOVJT\OZcT^iXcm[gp_iqaksdmveowhqyirzlt{ov|rw~sx~tytztzryou{hovbgnW^ePX`NU\OU]RYcX_h`foelsipwkrykszlszmszmt{mu|mt{mt|nu|ou|nu{ntzot{ot{ot{otyptyptyotyptyptyosyntyntznsyƉEƈ?Ƈ=dž=LJ=Ȉ>LjBȉEȉEɉFȉGɊHɊGɊIɌKʌLʍKʍIʌGʊDˈAʈ>ʈ;ʈ;ʉ=ʉ=ˉ?ˊ@̋A̋ÅÅ@̊=̉=ˉ9ˈ5ˈ2ˆ+ˆ(ʅ ʄʃʃʃʄɅʅ˅"ʅ%̇*ˇ-ˈ/̈0̊5͋;Ό@ΏFΐJϒPЖWљ`ӚiԝqԠy֤~֧ت٭ٯڱ۴ܵܵݶܷܷܶܵܳ۱ڰڮ٭تبئף{֡r֟m՞gԜbԚ]ԙWӖOӔJӓGӒGӒEӑAӑ@ӑ?ґ=ӑ>ӑ?ԑAԒAӒ?ԒAԒBՓEՕF֖I֘P֙Uל[؞b٠gڢnڤvڧzۨܪޭޯ߲ᵗḞ㻤Ųʻο̽˺ɷdzưĭª辣輠统统统輟轡龤鿥龥轤軞躙經泋䰃zsjd\UQNMJJIJKKIHHIJIHIHIJJKJLLMMMONOPQTUWY[__g֣{~u~Pa|Hay7GS9DR5DR-@N);H0FQ(0+3.;IENVdfkrrudf_EG>,/%66)KH:`]Rspgz~{pieRRJ.1) $9=8PST`dhjnsinscip\biVZaSW]PTYPTXOTWRVZTY]W[bZ]eZ]eY\dW[bUY^RV[PSWORVORVORVPRVOQULOTKORIMPHKODINCJOCLRFOWLU]PZcU^iYcm[gp`jrbltdmufoviqxjszmu|ov~qx~sytytzu{syou|ipwbhoX_fQXaNU\OU]QZcY_i`fofltjpwjrxmszmsznt{mt{mu|mu|mt{nt{nu|nt{nt{ou|ot{ou|pt{ptzptyotyptyptyptynsxotyotzNJHlj@Ƈ<LJ;LJ:LJ;LJ?ȉDȉFȉEȉFɉGɋHʍMʏQˑT̒U̒V̐V̎PˌHˋDʋ?ʉ<ʉ>ˊ?ˊ@ˋCˋC̋B͋C̋B̋?̊=̊:ˉ8ˉ7ˇ1̇0ˆ&ʅʄʄʄ˄˄ʄ˅˅ ˆ#ˆ(ˇ+̇+̉.̊1͋5Ό<ΏCΐFΑLϔRїZљ`ҜhӠqԢx֤֧תجحٮٯگگڰڰٮ٬ثةاצ|֤x֢tաo՟hԝcԚ]ԘXӗUӕQҕJӓDӑ@Ґ>Ґ>Ґ?Ґ;Ӑ;Ґ:Ґ=Ґ<Ӑ<Ӑ>ӑ?Ԓ@ԒBՓDՔFՔG֖J֘N֙TכY؜]؞`ٟg١lڣpڤsۦyܨ~ݫݮ߱ᵔ⸝㽥­ȸ̾ο˽˼˾ο˽ʺȷdzŰí«迧羣輠軝纚繚繚纚纛缞輠轡轡輠軜縘經洍居~voe`YSPMLKKJJJJIIIIKJJKKKKLJJMMMMOORSTTVYgma_em䳍ݵ\rDTcCR^?M\9Of9Qj5K`-ETE^yB\y+CU!4C$-  +  +  + +  %4 0$6/$4 +)( $<0I=['Hi/F *WTN~ejiWZID9,st JQ uu$x,x/v*\g%RY$Sc>r]kpsz~vjrgnz}avQd"8Q!"*%-+3:>5LX&Rg]ve} ]v VhNU 02&' ZdTi +a}aZt*h|,^k)KQ.UZ;be%GP""3+Gb)Jm >_7T4S:U3J5L!8Q3I"4 * +  + + + +   + +  "$(-'-!'")&/9"6E2CMBJM}~ee`EH@,/%46*KH9^]Rtpgy|okfSSL14* #;<7PSTadhkotinscip\ahW[bSW\QUYOSWOTWQVYTX]X[bZ]e[^fY]eV\bTX_RV[QTXORVORWNQUNQUOQUMPTKNQIMOGKNEJODJNCLRFPXKU]PZcU_iXcm[fo`jrbltenugpwiqxkszmu|ov}rxrxtyu{uzrxpu|ipwbhoY_fPX`NT\OU]RZcY`k`fofktipvlszmsznt{mt{mt{mu|mu|nu|ou|nt{ou|nt{ou|ou{ou{ot{ot{otzosyptyptyosxptyosxosxɎRɌLȊAȈ<LJ;ȇ:ȇ>ȈAȉDȉDȉEɋGʍNˑT̔]Η`ΗbΖcϖbΕ_Ε\͓R̐IˎDˌCˋCˋD̋ĚĚD̋C͋B̋@̋>̊<̉9ˈ7ˈ2ˇ.ˆ(ʆʅʅʄʄ˅˅˅ˆʅˆ%ˆ$ˆ%̇&̈)͉/͊3͋6΍>΍@ϏDϑKДQїXҚ_ӜhӞoԡuբzդ}֥֦קקקקצצץ|֤x֢t֠r֟l՞h՜dԛ]ԘYӗTӕOӓJӒGӑCӑ@Ґ=Ґ;ҏ7ҏ8ҏ8ӏ8ҏ6ҏ8Ӑ=Ґ<Ӑ<Ӑ;ӑ=ԑ?ԑ@ՒCՓGՕIՖI֘N֙SךXל\؝_؞dؠg١hڢkۣqۦxܩ{ݬޯ೏ᷙ㼢¬Ƕ̾;ʻȹȹʺ˽̽ʹȷǴůĭ«辥輢軞繛湘渗渗渖渖繘繙躚纚繘縕浑泋居~wpjb\XSQMNMLKKJKKKIJLJJLLNMNMNNOOOPRTUVXXYbohdmt߮ر{RiSrCR^*=M:QjA^{5Pd1J]@Xr:Qh2GX-8 )")> Cc1J7N/K)?-!:-MEmOzEj#Ef*? + + USD|hciQQM:)!"fe +OWyr)-}7z3jr/bh'Xa0^o2hXht}t{vlwowhox}anCWv-; +%#+*10:DUY9LU&K_Qg[sa{PcFO35 *- ahdu Yu^z$l-p3jw(HR9[c3S\>E 0)Fb+Mr&Jn%Gm5U1N:V'< +) *-C;Z(; ,%4#.     + + +  + + %*- % )6A$09$'#4=$4=6ANCJZKT]\ejfgfefaEHA,/%36+HG:^\Rrnf~x}qlhVRM03* #:<6QST`dijnsjntcip]aiW[bRW\PUYPTWPTXRVZUY^W[aZ]eZ^eY^eV\bUY_RV[PTXPSWPRWORVORUPQUMPSLORJMOHKNFKODJNDLRFPWJU]PZcT^hXbl\go_irbktenugpwiryltzmu|ow}qxrytzu{tzsyou|ipwcipZ`hPX`NU\NU]QZbY`j`fnfmtjpwkrzmszmt{mt{mt{mu|nu|nu|nt{ou|nu|ou|nt{nt{ou|ou|ou|pt{ptyptzptyptyosxosyosy˔]ˑXɐOɌIȉ@Ȉ?ljBȉBȉDȊDɌJʏP̓Z͖aϚhϜlНrўtѝtўtѝrќlϚbΕX͒Q͐M̎J͍ǏǦD͌C̋B̋@͋=̊;̉:ˉ7ˉ4ˈ.ˇ'ʆ ʆʅ˅˅˅˅˅˅˅˅˅ ˆ ˆ ̈'͈+͈+͉,͋2͋4͌7΍=ϏBϑJГRҖXҘ]ҚaӜfӝkӞnӟoԠqԠqՠrՠn՟l՟kԞhԝeԜaԚ^ԙ[әWӗTӕNӓGҒGґAҐ=Ґ<ҏ;ҏ8Ҏ5Ҏ5ҏ4Ҏ2Ҏ5Ҏ4Ҏ4ҏ6Ӑ:ӏ8ӏ8ӏ7Ӑ:Ԑ<Ԑ=ԑ?ՓFՔGՖI֗NיSךX؜]؝`؞d؟f٠g٠hۢmۥsۨyݫޯಏᷘ㼤­ȸͿ˼ɸȶǷȸʻͽ̼ʸȵdzưĭë迤轤輡绝縙渖淔嶓涑涑涒淓渔渓涑浏洊䲆封ztme_[VTQPPOPPPNNMNMLMOOPPQRQRRRSTRSVXWYYY[`ijgߦm߭ڳˮj}FYmBSi(9C)>P3Ne3Md%@Q*AS6J`0@Q+]@_>`Dj!Hk(<  +IS8incakYRND-ac gr~x/15v,]c._f)V`$QY!NU'TsPr{s`i{fphogou}t{ztzx|xgs>Pk*   !++57;>FO^b;LT+N`Qf[r,pTj AK 47)*`i ct +^zd"o-o6o'FP8[`-LT0< +': ?^0V|&Io,Op1Su @_*;S1QkCa*De-G-F4L=W +,"21DY1=J+69$ + +        + #*0EA (,Zd ^q ^zl"r+k$LW!U&Ce5[%Iq,Pt&Cc2Uz;Uv6P1K+2O'Fa)C\!4I4Jc1?U*:O 3G'    + +   +  + + +   #")%6?*:D,>IEP\uyffcGI?-0&26*HG;^\Qsog{|okgURL/2) #:<6RTTadijnvkowdip\ahV[aRV\PUYOSWPTXRVZTX]W[aZ]eZ^eX^dW\cUY^RV[PTXOSWNQVORVPRUPQUNQTKNQJMOHLOEKOBKODMRFPWJT\OYbU^gZdm]goairdltenvfpxhrylt{mu}pwqxqyszu{u{szov|iqvbhnW_fPX_LT[MU\QYaX`i^godmuiqykszlt{ltzmu|lt{mu|mu{ot{nt{ou|mu|mu{ntyotzntzot{nt{oszotzpszptyosxosxosyosxѤТ~ϟxΛm͘d̕\˓X˒V̔W͗]ΜiѡxҥӨժի֮֯ׯװװ׮֬֩ԥҠrћhЗaΓU͐K̍B̌@̌>̋;̊9ˊ7ˊ5ˉ1ˈ.ˇ'ˆ!ˆˆʅ˅˅˅ˆˆ˅ˆ̇̆̆ˇ!̆̇̇̈!͈"͈'͉+Ή,΋0Ό4΍9Ϗ<ϐBϐFБHГLВLВKђJђJђIђGёFБEБDѐBѐ>ѐ>я;я9ю6я3ю/э/э/ҍ/ю0Ҏ1Ҏ.Ҏ/Ҏ1Ҏ1Ҏ1Ҏ1ӏ2ӏ1ӏ0ӏ1ԏ3ԏ3ԏ4ԏ5Ԑ5Ԑ8ԑ<Ԓ>ՔA֕F֗MיSךWל[؜\ٝ`ٝ`ٟcڢjۥtۨzݬޯഖṟ俩IJɻ˻ɷǴƳǴȶɹʻ˼̽Ϳ̻̽˹˹ʸʷɶɵȲƮĭ¨罡络纙湗巓嶑嶏嶏涎嶎嵍崋峉䱅䰀~{vrme^[Z[[ZWVUWYXWUWWWUVWWXYYY\Z\^``aaaa`acgkjkqwެȞ`qwIZe5Pd)CO*EW,F]AYs9Mb1HX0M[*8C") (5,Mj!De#Uz!Qv8f.Qq(; A]7f&Fb.E/H3O>`ChDiIq:W  +!'K^7pP^[KIC;.lp5911!},1x6kt$LR)QY8aj.[f-Ze&R[:H>N"Nu_{~tz_f{Z`rX^obhwhn~gklnpwfk~jpah}UXkOXj)8 !( '23?3;392GOUhlB^j)J^Of-kAn]is4JP5< +\jWl +^{f%r*i"P^'Q_(MX AS"&1G1Qv2Tz'Ls$Hh8T'Ec'Hg/E5R?]'=$4+5G'/?#70A(8#"&",#,)5%&  + %$,39EQ3@J7ET6FV4DK5BKU_f\cezuqggcIJA-0&36)HF:][Rsofz}okgUSL13* #:<5QRTadiknvkowdip]bjW[bRW\PUYOTWQTXSVZTX]W[aY]dZ^fY^eW\bUY^RV[PTXOSWORVORVPQVPQUNQTKNRJMPGLOEKOCKOEMRFPWJT\NZcU^hYbl]fo`ircltenvgpxiqylt|mu}pw~rxryszu{uztzqw}iqwbipW`gOX`KT\LU]QYbW`i_godmuhqykszmt{nt{mu|mu|mu|mu{ou{ou|ou|nu|nu{otzotyntyot{ot{pt{pt{psyotyosxotyptyptyԭӫӨҦѢ}ϠsΞmΝlϞpѡxҥԩխװ׳شٶڸںںۺ۹ڶٳׯժԥ~ӡvќgϗX͓G̎C̍B̌?̋;ˊ7ˊ5ˉ1ˈ.ˇ(ˆ"ˆʆˆˆˆ̇ ˆˆˆ̆̇̅̆̆̆̇̇̇̇̈ ͈%͉&͊'Ί+΋.Ό1ύ7ύ:ώ9ώ;ώ<Ў<ύ<Џ>Ў;ώ:ώ7Џ6Џ4ώ5Ў8э5э4Ѝ2ю5э1э/э.э/ҍ/ҍ/Ҏ1Ҏ0Ҏ0ҍ1Ҏ2Ҏ2Ҏ2ӎ0ӏ2ӏ0ӏ1ԏ2ԏ1ԏ4Ԑ5Ԑ4Ԑ7Ԑ9ԑ:Ԓ>ՓB֖G֘J֙QךVכX؛[ٜ]ٟbڢhڥrܩzݭ߰ഘ⹡俪ŵʽ̽ʹǵƳƲƴǵȶɸʺ˼;Ϳ;̼̼̼̼̽˻˻˺ʸɶdzŬ§迣轟络纚湘渖渔涒嶐嶐济崋岉䱄䰀|yusoic__`_`]\\[\\\[\\\\[\\]^_^`bceegiijiglmovwrrޫxڮɢl~HYl9GW:Qe?]w6SiBaA^~D_xG`wKdyGc7GY")0"-:,9(/6J&Om-\/^9r1\&Mm0Y#Cb#8 ?\3N!:W(Fd,Ux%PsKnIqEg% 5D!VnIyX_IEAG8,owRZ0HU<}>2lz-[d2]e8fo9lu,^iMaE[ +4<&Jq}{{xz^gyU[nX^nY^ndhwej|ik}gj|gkafzOVhDJ];DU  " !-0?-61718-GR?Xez7]n-g3akvqx+>C Yk Wp^{be[qO^#P]'Q[4F +)<&Cb8Y6Z=_(Ge6Z}(Ih 2*A3N!43IB^.E"?[$EZ1> !  "-@4I%*)?J,GY1<%'   #!" #",51>DJTRhgcII@-0'46)JG<][Rsnfz~pliUSM23*";<5RRT`dikovkpwdjq^bjW[cTW^QUZPTXQTXSV[UY^X[cX^e[_gZ^fW]dVZ_RV[QVYOTWPSWORVPRVQRVMPTKNRJNQILPFKOEJNELQFOVJT\OZcU_hZcm]foajsbltdnvgpxjqzkt|nu}pv~qxsytzuzw{tzqw~jqxbipYahQYaKT\LU]PYbW`h_goemuiqylszmt{nu|mu|mu|nu|nu{ou|nu|ou|nu|ou|ou{ntyotyotyptzpszpszqt{ntyntyotzptzptz׶׵ֲկԫөӧӧөԪ֮ױصڸں۽ݿøùú¸ܽڸٳ׮թԤ}Ӡnћ^ϖRΓPΑKΐC͎=͌9̊1̉/̇)ˆ$ˆˆˆˆ̆̆!̆̆̆̅̆ˆ͇͈̆̆̆͆̈̈̈"̉$͉%͉'Ί*΋-ϋ/΋/Ό.Ό0ό/ό2ό1Ѝ2ύ2ύ1ύ3Ѝ1Ѝ1Ѝ1Ѝ3Ќ2Ќ1Ѝ2ю5э3э/э0ҍ1ҍ1ҍ2Ҏ4Ҏ3Ҏ3Ҏ4ӎ4ҍ3ӎ3ӏ2ӏ1ӏ2ӏ3ԏ2ԏ3ԏ3ԏ4Ԑ5Ԑ7Ԑ7Ց7Ւ<Ւ?֔D֕E֘JטNיSךU؛Zٞ`ڡgۥrܩ|ޮ߱ᵚ⺣ŵɼ̾ʺȶƳƳƲƲƲƴȷɹ˻̾Ϳ̼̿̽̽̽̽̽̽̾̾̽̽˻ɷǰë轣缠軞躝纜繚縘淖涓浑洍峉䱆䰁}zutplgcaaccba````aabbcbbbaadbfhikmllnooorrtw簁鷗鼠ȾƲܶöozZnEXi4K[,EV,DV>\vJczGdw[Vi2BO)4>$+5%.&1 2D 6H:M)Ki+Rw&Gj'Sy9W%B_4Ru1Yz&Eb*>6P1H%< 7UFi-W}&T|%Ou1G  + EZ+]rM|aYHI87eMyx.|9`\;}5sG9mxDzI?J$ENUfqBdy?gJr0dqViZr[t^{\wJ["N^&O\;I#  &:$Ba,Lo"?`?_6R0F/G ?_*B6L2J/E+,!,?1@!'7/@):(7!7A3GW-?M!)), $&*!##$!&"&-*2;6@H[alhgdJJC.1'36)JG<_ZQsnh{}olhVSM32*":<5PSTaejlovkowdjp^bjW\dTX_QUZPTWPTXRV[UX]X\cX^eY_fX^eW]dUZ_RV[QUYOTWPSWOSWPSWPRUNPTLORJMPHKOFKNDJNFLQIPWJS\PZdT_hZcm^go`kscluepwhpyjrzkt}nv~qw~rxryt{vzw{uzpwjqycjq[ahQX`KT\KT\QYaW`h_focltjrymt{mt{nu|mt{mu|ou|nt|ou|ou|nu{nu|ou|nu{ntyntxotyptzpt{pt{qt{ntyntyntznt{ot{۾ڼںٷشײֱױײشٶ۹۽ºžŽܼ۷ٳخ׫եԠnҜdљ]ЕWДPϒGΎ@͋5͉,̈)̇#̆!ˆ͇͇͈͈̆̆̅̆̆̆̆̆̆̇̇̆̈̈!̉#̉$͉%͉'Ί)Ί+ϊ+ϊ,ϋ,ϋ,ϋ-ϋ.ϋ,ό.ό.ό0ό0Ќ/ύ/Ѝ0Ќ/Ѝ1Ѝ3ь3э3э0э1ҍ3ю3э2Ҏ3Ҏ4ҏ6Ҏ7ӎ7Ҏ5ӎ5ӏ3ӏ4ӏ3Ԑ5ӏ4ԏ4ԏ3ԏ5ԏ6Ԑ7Ց7ԑ6Ց8Ւ>Ւ?ՔB֖DחIטPךT؜Zٟbۢlܦvܫޯ೓ᷜ㻥俬ĴȻ̽ɺǵƳŲŰŰİİűƴȸʻ˽̿ͿͿ̾̽˽˼˼̽̽̽̽̾̿̿Ϳ̾̽ʺȵŮì迣辢轢輡輠軝纚縗淕浐洌岈䱅~|wurnkigffegegffggghhhggfghhjlnoqrrrruvxyz{yz}泅嶒佡޸Яc{Qm=Sh!5@8D%Ma6Ni0J].BM9N`(6@&3?'-")&3G)G[5O=^Fj)Pv$Lu}TsUmVj^m0kYnUiObRdFS!M\\6R#>[;Y#4K/G4Ia0B[ + ",4:Jc7Vq4Ob3HY8K[7GR:GM7EB+ + + + + +  $"+409C>HJglnihdHJB-1&26)IF;`ZQrohz~pmhWTL23*"9;5PRUadilovlpwdjp^biW\cTW^QUZPTXPUYRV[UY^X[bX^eY_fY_fV\cUZ_RV[PUXOTWOSVORVORVPRUNQUKORJMPHLOFKNDKOFLRHPVKT]OYcT_hZcm^gp`jrdluenwgpxir{kt}nv~pw~qxrytzw{wzuzpwjqycip[ahRX`KT]LU]QYaV`h_goeluiqykszmt{nt{nt{mt{ou|nt{ou|nu{ou{nu|nu|mu{ntzntzou{ntyot{ou{otzntyntzou{nt{otzžû۽ڻںںۼܽݿ·Ļļݽܹڵٱثզ~ԡvҞmӜfњ]їWϒKΎ<͋5͉.͇(̇"̇!̇#̆!͇͇͇͇͈͈͇̆͆̆̆̇̇̇̇!͉!͉%͉%͉$͊%Ί&ϊ*Ί+ϊ)΋'ϋ*ϋ+ϋ+ό,ύ/Ќ/Ќ/Ќ-ό-Ќ.Ќ-Ќ0Ќ1э2э2э1э2э1ю3ю4Ҏ4Ҏ4ҏ5ҏ7Ҏ7ӎ7ӏ7Ӑ7ӏ6ӏ5ӏ5Ӑ5ӏ5ԏ4Ԑ6Ӑ5Ԑ7Ԑ7Ց7Ց7Ւ:Ԓ>Փ@֖D֗IךS؜Wٟ`ڢmۥtܪ}ݭޱഘḠ㻦ijǺ˽ȸƴŲïîí¬«ìįŲǷɺʼ˼˼˼ʻʺʻ˼˼̽̽̾̿ͿͿ;̽ʹȳŮê¨迣轠绞纙渖涒崌峈䰁~{wtqonlmlkkklklllllnmmllmnooqstvwwvxz{}~籁籀汀层䴉䵎彝༭˧l~GXh2EU9Vm@[t8Rh>g=^|1J^)>N+:I$/7#,7)#[:T>^%MqCd>]9S5RAf9Z:S:V'No!Hj#Gf&<   *1@V*ZlIvTI_}{||C3q9y=s4p{0ku3t+jSgDD 15 %(/Kkelku]g|X_r]cuLRaQUcTXfPVdJO_MQbX^pV^q^evHOa>HZ#1  +  " !0 &6 .>5C2@:MZ{5]sSjQgZpQfOcL^DQAN 7D .= + )>0Ji1Rv3Rr/Po=Y"9T9QB]/->)<1H/IbBWt!3I!-$/  %+24BRHXi=\s-J` 4C& +"&&+38*17,47"(!)0"%*&*-$+-$-4(07=CIPV^jlqhieIKB-1&35*HF;_ZPqne~yqnjYUO36,":<6PRUadikowlpxejq^cjW]dTX]QUZPTYPTXSW[UY]X\aY^eY_fY_fW\bVY_SV[QUYPTWOSWPSWPSWORVOQTLOSJNQHLOEKNDJOFLRGPWKU]PZdU_iZcm^gpajsdmuenwgpxir{js|mu}pwqxsytzv{v{tzow~jrxcjq[ahRYbKT]LU^QYaV`i_foeluhpyks{lt{mt{mt{nt{ot|ou{ou|ou|ou{nu{ou|nu|ntzou{ntzou|ot{ot{otyquzotzptzotzptzſļĺĻĻżſƼ¶޾ݹ۵ٲ׭֩եԢvӟkқ_ЖSϑGΎ:͋2͋(͉(͈(͉(͈!͈"͇ ͇͈͇͇͇͇͇͇͈͈̇ ͇!͈"Ί&͈$Ή$Ή#Ή%Ή(Ί)Ί)Ί&ϋ(ϋ+ύ/ύ0ύ1Ќ.Ћ-Ќ,Ќ+Ќ,Ќ,Ќ-ь/э/э/э0э1ю2Ҏ3Ҏ4ҏ5ҏ4ҏ7ҏ7ӏ8ӏ9ӏ7Ӑ9Ӑ:ӏ9Ԑ8Ԑ8Ԑ8Ԑ9Ԑ6Ԑ8ԑ:ԑ:ԑ8Ւ9Ւ=Փ@ՔC֗FיM؜Yٞ`ڡjۤuܨ|ݫޮ߳ᵝ⹢伧òƸɼ˿ɺǶIJð®íűǵȹɹɹɺɺʺʻ˼˼̾̿Ϳ̿˻ʸdzŰŭĬ쬫辤缠纜渗涓崋居䰁~zwtsrpqppppqrrssrrrstqqqrstvyz{{{{|簀簀籁粂粄紇贊鶍˻Ʋ۷ǩvDXjGdB_{9Tm2G\-K^.H^=Tm2Od)3)2/G\3FY#7H,H_6QfEj:\}9L&3=X.`5^"Gc&:"?V%=Y)? #4)>.F $;La+TeTqCeyie>r5D4A?KVhx<^p:at)UcHXAS@Q4A2;*2 #* +'<'Ac(Hl!Hl1Ru.Kj#C_,E\+F^+?-5F#2G7G]?Mf": 0# *9'!+7;C9CO#0:-8"=M(BX#7F)2   &*.,>E4GQ.5?#*")0-02DGMfgoĿhifJKB.1'44*IG=]YOsnd}xqnkXUO36."9;4QRSadilowlpxdjq]ciV]cSX]QUZPUYQUYSVZVY]X[aZ^eZ_fY_fX\bWZ_TW\QUZPSWPSWPSWORVORUNQTMPSJNOHLOEKNEKOGMSHPXKU^NYcU_h[dm^gpajscluenwgpyir{js|mu~ow~qyszuzv{v{uzqxkrxdkr[biQYbLU^LU^PYbWaj`gpelviqyks{lt{mt{mu{mt|ou|nu|nu|ou|ou|ou}pu}ou|pu{ou{ot{ot{pt{ptzptzqtzpu{qt{quzptzƾö߿޻۶ڲٮتצբyӞlҚ^ЕRϑE΍:΋2΋-Ί-Ί,Ί*Ή*Ή&͈"͈͈͇͇͈͈͇Έ!Έ$͈"Ή"͉$Ή$Ή$Ή"Ή$Ί(Ί(Ί'Ί&ϋ(ϋ)ό,ϋ,ϊ,Ћ,Ќ,Ћ+Ќ+Ќ*Ќ,Ќ-ь.э/э/э0э/ҍ0Ҏ3Ҏ6ҏ7ҏ5ҏ5ӏ8ӏ7Ӑ:Ӑ=ӑ=Ԑ=ӑ=Ӑ;Ԑ:ԑ:Ԑ8Ԑ9Ԑ:ԑ;ԑ:ԑ:Ց<Ւ?֔C֖GטKךQ؜\ٟdۢoۦxܩެޯ߳ᵜ⹢伧俬°ĴƹȼɽʽǸųð®翩羨羧羧羧翨ïİųƴǶȸȹȹɺʻ˽̾˽ʺɷǵdzƱƱİįíë鿥輡纛緖絑峉䲅䰁~|ywwuutuvvuvwwxwwwwxvwxxyz|}~簁汁籂籃粄粄粄糆糇紉赋跎麓龚Ũ׽xP\j?\sJ3=E -/! (  $$,1<;DLCKQKPTilniifJKC.0(43)FF;^YPtnd~zrnkXVN25-!9;4PRQadilovlpwekr^djV]dTX\QVZPTYQUYSV[VY]X\aX]d[^fY^eX]cVZ_SV[QUYPSWPSWOSVPSWPSVNQTMORKOPILOFKNDJOEMRHPWKU^OZeU_iZcl_goajscluenwgpyhqzjs|mu~ow~qyszu{u{v|tzqw~mryekrZajPYbKT]KT]QYcW`j`gpeluiqykszlt{lt{mt{mt{ou|ou|ou|ou{ou|pv}pu}ou{otzptzptzpt{pt{ptzptzqt{qt|qt|ptzptyƾ÷ݻ۷۳گث֦բvӞgҚ`єOБEϐ>Ϗ<ώ<ύ:ύ6ό4ό1Ί)Ή)Ή!͈͉Ή"ΈΈ Έ#Έ"͉#Ή$Ή#Ή#Ί"Ί$ϊ'Ί)ϊ(ϊ(Ί'ϋ'ϋ)ϋ)ϋ(Ћ*Ћ*Ќ,Ќ,Ѝ,Ќ+Ќ,э/ь.э/э0ҍ1Ҏ0Ҏ1Ҏ4ҏ7ҏ5ҏ5ӏ6ӏ7Ӑ9ӑ>ӑ?ԑ?ԑ@ԑ?ԑ<ԑ;ԑ;ԑ;ԑ<ԑ<Ց=Ց=Ւ=Փ@֕DזIיOכUٝ^٠eۣpۦvܨ~ݬޯ߱ചᷠ㺥侪°ĴŶƶǸǺȻɼɼʽ˿˿ɻǶı®澧潦潥潥潥潦濨¬îıűƶǷǸɺʻ̼̿̾˻ʸɶɶǵƳƲűįĭ«辥輟繚涓济峉䱅䰂䯀~|{zzy{yzz{{{{}||||}||汁汁沂沃沄沅粆粆糇紈紇紉経趏跐꼜Ʈ˻ʷͼ;Z_m5@H%/38RlGj:Zv5Sk.I\.E[$5B)7C&4A'BS&Jf&BX0La-Pg.Pm(C\.C;U6Q)Oq@X5L/G1J%U{5O7P@Q3M3K.Pp4Sr9^;b;_"?[%:  "-0@@K@M GV)KY3Sb/Ue1Yi0Zj.Rb-Sd"N\#Wa%br:N09   +  #'Ad[}{|oybi|T\kGN]?FUCJZ>DRCHXJP`HL]LScDL]BI\9AS5>P$  %,&#)%**11<9G;I-; - $0 +%3&  ++8(;V,Ge0Mp7Su8R/Nl:Sm4DX&3$4/(9,6E 1 0(8 %,2"*  + !6H9QlGe}6Nf&:M0?#!&,"*0)5?(4?1>K2AM%19"/:#1<&03-546=ABGPOW`ZajtuzjieKLE.1(34)EG;^ZPrmd~yrok[VO59/!8;4NRQadikoulowdkr^cjX]dSX]QVYPTXPUYSVZUY^X\aZ^d[^fZ^fX]dVZ_SW\QUYPTWPSWORVPSWOSUNQTLPQJNOHLOFLOCKODMRGPWLU]PZdU_iYcl^foajscluenwfpyhqzlt|nu~ov~pxrzt{u|v|uzqxkrzdkqYaiQZcKU]LU^PYcW`j^fpdlvipxmszmt{mu{lt{mt{mu{nt{ou{ouznu|ov}pv}ou{pt{ptzptyoszot{otzptzptzqt{qt{qt{ptyǽķ޿ݻ۷ڳد׫֦~գuӞhқ_јUіPѕMєMђKБJАAЏ;ύ7ύ/΋&΋'ϋ-Ί%Ή Ή"Ή"Ή"Ή$Ή$Ί#Ί!Ί#Ί&Ί'Ί'ϋ'ϋ&ϋ(ϋ(ϋ'ϋ'Ћ)Ќ+Ќ+Ќ+Ќ,Ќ+ҍ/э/ҍ/э0Ҏ1Ҏ2Ҏ0Ҏ0Ҏ2Ҏ3ҏ3ӏ4ӏ4Ӑ6ӏ8Ӑ<ԑ>ԑ>ӑ?ԑ?Ԓ>Ւ<ԑ=Ւ=ԑ<Ւ<Ց<Ւ>Ւ>ՓA֕DטJךR؛Wٞ_٠eڣoڥtܨ}ݪޭ߰ೖ൜ḡ⻥㾪俫®®®ïïıijŴƵǷɺʽ˿ɼȹųð濩澨彦弣伢弣弤弤潦翧«ìĮűųǶȸɺ˼̾Ϳ̽˻ʸɷɷȵǴƲƱűĮíª轠躛渖浑泋岇䱅䱃䰂寁䯀~~~~~氀封局尀~屁层岂沃泄泅糇糆泈洉紉紊紊赌趌跍跐踒蹖躚鼝꿠¤ǯɸὮɱwU_m;FRDUl;RiC_{Gf4L`2GZ+DT&;K)1,80On7]{4ZtFs6j0\{+Ps+Y%Jl)U~4k;m:j/T{(Oo>Y!Ff7S6M+C(?(A<\5\%Rw&Nn&Ih?\*  %'44@1;9GANEDLL[:K"0   /":YSr~kudmGM_HN]CIX8>N@FU=CS?EUDHZJQa?HZ;DV=FV(2B    +%#1%1 +#"  )<,>Y4LmHc;^8T 9R'?Z-E^&< 3*D #7* - $ +   -:0=L-AX&:O0F`%BY#8K 1@ !**7,:J9GW,=H/=G:GS7DN.9C(03,35IMWNU]SYbtvxkieKME.1'25)DF:]YOpmdwtok[WP68/!6:5MRQbdikotlpwekr_cjX]dTY]QVYQUXPUXRVYUY^X]bZ^d[^f[^fX]dVZ_SX\QVZPTWPSWPSWORVPSWNRTLORKNPIMPFLODKPEMSGPWLT]PZdT_i[dm^foajscludnwgqyiqzlt|nu~nv~pxrzt{u{v|u{qxkszdlrZbjRZcLU^LU^QZcW`j^hqdmvjqxmsznt{mt{nu|nu|ou|ou|ou{ou{ov|ou}ou|nt{pu{otzotyot{ntzpu{pu{qtzqtzpt{ptzptyƾ·޾ݻ۶ڳٮت֧գwԠnԝgԜcӚ`ә]ҘYҗTѕOВGАDЎ9ό.ϋ,Ί&Ί!΋&Ί&Ή"Ή$Ή$ω#ϋ"ϋ#Ί%ϋ'ϋ'ϋ(ϋ'Ќ*Ќ*Ћ)ό*ό(Ќ)Ќ,Ќ+э-э-э.Ҏ/ю/Ҏ1Ҏ2ҏ3Ҏ1Ҏ1Ҏ2ҏ1ҏ2ҏ3Ӑ5Ӑ7Ӑ8Ӑ:ӑ<Ԓ?ԑ?Ԓ?Ԓ>Ԓ>Ԓ=ԑ<Ւ>Ւ=Փ=Փ>Փ?ՔAזEטLיR؜X؞_ٟdڢlۤrۧzܩެޯ߱೘ඛḞ⹣⹤⺥㺦以㻥㻤㼥伦伦彨復ðòƵǸȹȺɻɺȺǹƶijð­澧弦仢亠幟幠亡廢廣潤羦翨«íİŲǴȸʺ˼̾Ϳ̽ʻɹɷȶȵǴdzƲƲƱŰĮª辠軜渖涒洌峈岈屆䱄屄屃屁层䰁层䱂屃屃岃岄岄屃沄沄沃沃沄沄沆沅沅泆洇絉紊紊紊紋紌赍絍趎趏跑跑緑緒淔帖湙廜彡徤ߺntT^m2:B'.4.;D9RdEa{Hc}4L\;Rf;Lc5JQ>XsDg7YsAmOEt7[}5`/^/Z,PwAb!Gc4I:T#Jl!=V*Pr#Ef1H%9%: +#%9$9%Jf0X|7^2]-Jg'> + #& '091729/627.16>'4& +  .:SCii{r}mv`i}S\m=EV?ET=CR9@P6=L:@Q=ATBI[FM_FL^1;L'3D +      + *<+B]'@_8UvD^~1E^.DX4BV):K"++$4!2-&<3L?^):!,  '&5&&3@5I[7Ma.FX3H]6FZ6K^/;K/=L#2<$+2$,$-'4A%2>%0:#2<'6C&7C*4(1-7>Փ?Ւ>Ւ>Փ=Փ>Փ?Ք@זFטKיR؛W؝^ٟcڡjۣpۧyܨ~ݪݭޮް߲߳ങചߴߵකᶙᶙᵙᶚⷜᷝ⸟⹡㼣伦佩忩¬îïİïï®徨彧代亡乞乜䷚䷛丝九亟传弣弤潦濧«ìŰǵȷɹ˼̾Ϳ˽ʹȷȵdzƴƲƱƱƱűűįĭê轠纛渗嶑洍崋峊峉峈岇䲆岆岆岅峆岆岈岇岇泈岇岈泈泈泆泇泇洇洈洉紊絉絊絋絍絍絎赏趐趐跑跑綑結涐緒縕繙軝ƮDZưɹ˾Ͱlo|JNW*597GTB^y9Pe6L^=Oc'1>,;H -5#3A3TqEn3as?mWXCpGv4`'Rx,Ok5F2F0F(Pv)Ha+:9T;Q +(+- 0-A+C^4Sv:d2[0Rs Fe3L +-   # ! $ +"   % + .%;S;W~^w}zW]u]eyFNa9DU07F7=M29H=DTAGXCI[BJ[HPb;CVDOa,2D +$8$7Q,Gb.Mm5Uv.Ml+Aa3If(9I)5H&-C(7'3? 2E1E3H"6L.F'>+? $ '-:!5D/@P3=OCWlE]sNaz;O^:K].>*'&.&1"*!+3&2<,9D0?I9HX:HWI2AS5@M1AS6G[ )1 *2 +7)8E?cxElAo@h@qH{SHs4_M3:I3;I3;I;BRBI[GObAJ\>I[4>N"/  ! + + ,2I5Gc%2 6F7L^;IZ1D\,Mi8J`:KZ7K`:FZ0G[1CT 3:)/$/8-8A'5>*:E)9D0>K5BP?KVQZiSZi[bqY^jTZeU[fY^hejqkorjjeMMF/1(23*EE8[XPold~xvpn\XR791 692PQQ`dikpwkqxglr^elY^eVY`SW\QUYRUYTW[VZ_X\aZ^d[_f[^fZ]eWZaSW\RV[QTYPSWPSWPSWPTXORVNQRMOPIMOFLPELQENSFPXKT]PZdU_kYcm^hraksdmvgoxiqykr{mt}ovpwpyrzszu{v|v|sxls{dlt\blQ[cLV`LV`PZdV`j]fodluiqxlt{mu|mu}nv}mu|nv}pv}ov}pv}pv}pv}ou|ou|pu{ou{ou|ot{pt{qu|ptzquzqu{quzptyquzǿŹ޼ݸܵ۳ڰٯخثةاץ{֣tՠmԝdԙZҕNёFЏ5Ѝ.Ќ-Ќ,Ћ(ϋ(Ћ*ϋ'ϋ'ό%Ќ&Ќ(Ќ)Ќ+Ќ,Ќ,э4Ѝ.Ѝ*э-э-Ҏ.Ҏ.Ҏ/ҏ2Ґ9ӑ<ӓ?ԓEԔHՕJՖJԗGԖFԕBՔ@Ԕ<ԓ:ԓ<Ԓ=ԓ?Փ@ՓBՓA֔CՔD֕DՔBՔAՓ?֔A֕C֖EזGטKיPךS؜Yٞa٠gڢmۤsܦyܧ{ݨ~ܩܩݩݪݪݪݫݫެޫެޫެެ߭߮߯ఎ᱑᳔ᴖᵙⵚ⶚㷜ⷝ㷝㷝㸝㷝㷝㷜㶚㵗ⵖⳔⳒⲑⳒⳒⴓⴔ㵕䶗䷚帜幞亟弢澥¬ĮŰƴǵɸʻʻʻɹȵƯĬꪫëêìíí¬«辢軞繙淕嵒嵐崏崎洍洌洋泋泌洋洋紌洌洌洍紌絎紎紏浏絎結結絑緑趑綒趓趔趓跔跓跔跕緔踕踕踕踕踕蹗鹗蹙黛黝꿢ªɱƸܼɯfm}LVc$.!&'BU4Su>dCiK{LZWI7Yw(Eb%?X/Nn2ZWn6Vk2Qc*AN:>N)@N.>K2?K1FU,BN2FJ=IYBKSHTbITaBTaMXfXbrZ`laeq^do^cm]ak\`jkotkkfMNF.0)23)DD8ZXOpkd~xwpo\WS680 7:2OPO`cijowkqyflr^flY^eUYaSV[QUYRUZRV[UY_X\b[_e\`g[_gX]eVZaSW\QUZPSXPSXQTXPTXOSWORUNQSMOPIMOFLPEKPFNSHPYJT]PZdT_jYcm^hqaksemvhoxipyks|mt}ovpwpyqyt{u|w}v{tyms{dkt\bmR[dLVaLVaOYcV`j]fodlujqxmt{nu|ov}ov}nu}nv}pv}ov}pv}pv}pv|ou|pu|qt|pu|ou|ot{qu{ru{ptyptyquzptyqtzptzǿ÷߿޼ݹݷܶܵ۳۱۰ٮ٬ةצ|գr՟jԛ]ӗPғDѐ?я:Ў0Ѝ,Ќ-Ћ)Ќ)Ќ'Ќ'Ќ*э+ь,ь,э,э.э-э,э,ҍ.Ҏ/Ҏ.ӏ2Ӑ7ӓBԕF՗K՘S֚W֜\֝^֝^ם\כXךR֚P֘JՕDՔAՔBՔBՔB֔C֕E֕E֕E֕C֕B֕A֕C֕DזFחGטKיO؛T؜Yٞ_٠dڡiܣqܥvܦxݧzܧzܧ{ܧ{ܧyܧzܧ{ܧ{ܧzܧzܨzܨzݨ|ݨ|ݩ}ݪ~ުޫ߬߭߯߰౏᱑Გ᳓ᴔᴓᴓᴓ᳓ⴔⴕⳔ᳒Ბ᱐ᱍᰌᰌ᱌ᱍⱎⳏ㵔㶕䶘䷙丛庞廣潦«¬îŰƳǵȷȷǴƱĭê¨迤轡軝縘巕涓嵑浐洏浏洎絎济济洍洍絍济浏結絏綐綑綒綑綒綒緕緕緔緔踖踕踖踖踖踖踖踕踖蹖踕蹖蹗蹗繘蹘麚軛黝꽡꿥ūǵȼnq}LT^5 $=5'E0M(Os4[{IiMi?Y~'Bg/M+F!3 +.'@'M;CT?HZHPa>EV6@P'  +"*;'2E)6G,6H%/B'5I#1D-@#3E(8L'7L,:M0@W.CY4E\@PhH[vH^yAZsAXpJQmSTtGOf2FV7Lf1;O2=S0;P&/8+4AS1J_>Oe6L`'AS8Qh;Tl1Yp0Pf%;E,FQ,=M*;L-=H/EN0FQOFl^cPUQ9Z{%BQ&7[!Ec,@!  + $"1?*3G#*4  '2H'Ff9U}<\5a8_6X4].W+Nq$Fl=bGn"Kn:`FhSt[vXt`zYn8S{0Q%@$< 5MJ_~}xwfsjupz_jLUlGOfKSg?H\4>P2N=GWEN_EL[CKY)1B   "%4)2D2'AUCTgL`wZnOfu>Uf(:G+;(>Q>L_>RfTiRbrM[gVbo[gs_jy_iweo~hp}iozmtnvks~ip{kq}lrgmxekrgmtmqxllgKND.0'02(EC9ZXMomf}yupm\YS991791LPQ`cikoumqyflr_flY^eTZ_RW[QUZQUZSW[VZ_X\b[^e\_g\_gZ]eV[aSW\RUZQTYPSXPSWPSWPSWPRUNPSKNQJMPGLOFKOFMSGPXJV^OZcS_iZcm_gpajsdnvfowgpyks{nt}pv~pxrytzu{v|v|x{sxms{elu\cmS[eMV`LV_PZdV`j]gpdlujpynt|ou|ou|nv}nu|ou|ov|pv|pv|pv|qu{quzpu{qu|pt{otzouzquzptypuyquzptyquzqt{ptzȾǽƼĸõ²߿߾޺ݷܴڰثئ}֣p֟fԜZԘQҕEҒ;ѐ4я0э/э/э/ю/ю1ю0Ҏ/ю/ҏ0Ҏ0ӏ1ҏ2ґ7ӔBӖIԙP՛[ןdآmؤuڨ|ڪ۫ܭܬܬ۫۩}۩{ڥs٣i٠a؟^؝YלSכPךOיKטHחFחFחFחHחIטKؘNؙR؛Vٝ[ٞ]ڠbڡhۣlۤqۤqۤpܤqۤqۤrۤqۣoۣoۤpۤqۥqܥqܥqܥsݦuܧwܨxܩ|ݩݪݪެ߭߬߭߮߯௉௉ை߯ை௉ᯊᰋᰊᰉᯉைᯈᯆᯇᯈᰉ᲋Ⳏⳑⴒ㵔䶘乛庞弣澥羦ª«íîíìê辤翥群群辣群缢輡軞纛縘淖嶔涓嶓涒涑涓涓涓涓涓涓涓涒緒緓緒緒緓緕縕縖繖蹗蹗蹙躙躙躚躚軚躚躙躚躙麚麚躚躚躚躚躚黛黛鼜鼝齠轡DZéĬþQ[dEWj4DR&6>#1<"*%!+(9L3GU.LP/JK2U`DiHsW\USyAc>a4Vu?V0E>X8R9W$He@]lPrTmWufUo[sf~h\n=Oz!8[,"=&=`#2Kelz|zvwkygu^iYebmW_xMVnCMdEQf>FY2M3;J3;J?GV@GX5>N(2A" +$/ ".*2B*1D7@R,;L0CNAM_csdyFe{DQd=J].GYFXjP`mJRbAZlNWiL_sI`sZjydokuen{enyhp}nvv~|~owjp{dku_en^dnagqipyms{vzlkgMOE.0'13(DC9YXNnkd|zwro]YT;;3682LPR`cgkntmqxhms`flY^eTZ_SW\QUZQVZSW[UZ^Y]b[^e]`h]`hZ]eW[`SW\RVZQTYQTXPSWQTXQTXORTNPRKOQIMPGLPFKPEMSFPXIU^OZcU_iZdm^gpaksdmvfowhqzjr{mu}ow~pxsyu{u{v|w}w|tynt|elu[clR[eMV`MW`PZdW`k]gpelujqznt|ou|nu|nv}ov}ou|pv}pv}pv}pv|puzquzpu{pu|pu|otzotzpuzquzquzquzquzqtzqtzqtzǿŻö༫޸ݵ۰ڬبץuנi֜]ԘQҕGҒ:ҏ5я3я2ю1ю3ю4Ґ7ҏ6ҏ5ҏ4Ӑ7Ӑ7Ӓ:ӕEԘP՛X֞bءoإxڨ۬ܯݲߵ߶ߵ޵޳޳ݰݮܬ}۩vڦpڣg١c؞Z؜TךQיLטIטIטJטJטLיOיQ؛U؛UٝYٞ^ڟbڠdڡeۢiۢlۣoۣpۤqۣpۣoۢnۣnۣoۤoۣnۤoܥrܥtܦuܧxܨzܩ~ݩ~ݪ}ݪ}ݪޫެ߭߭ޭ߮இஆ߮ைொఊᰊᰊ௉ఉᰉᰊᰉᯈᰉ᱋᲎Ⳑⴒ㵓䶖䷘乛廠潣羥翧««羦群罣澢羣罣罢輣缢缡缟统绞纜繚渘淗巕涕巕巕淕淕淕淖淕淖緕淕緖緕緔縕踖縖繗蹘蹙躘躙躙黛黜黜鼜鼜鼜鼝黜鼜黜黛黜黜黜黝黝黜黜鼞鼟輞轠辢ƴȷ˻ʹpmw9HR/CR.I]1Ng+BU):J*6)=O@ZoP+83G@Y6N!A^;V.E+B.J3M)> 1B"09&,6 "'6!*+2E&7I'BW.B[3Gb7TqL:BP>ET=ET/8H("-",:%0=#.9'5%5$/?*5F0:M>F[?I_EPgMYoETjCRjIXpWd}WczYbz_k\i`nbp\oXi[jalalXcxMXm>Kc$9J(>O18N.>T2?Q,5@+9736A*5@/=M+AQDXmIXlR`uVcvK`r;L_;Qe5I]2K^FVjUd|Ug~Yf|TbtNcqEWj?ReJ\pJZjUan]gtclyhp{ho|mts|{xnvfnwajtbhrafq^dn`fofjtnrwsz~~llgMNG/1(03(CD9YWNpje|yvrm\YS::1571LPP_bgkotnqxglq_ekZ_eUZ`RW\RVZRVZSW\VZ_Y]d[^f]`h\`gZ^fX\aTX]RV[QUYQTYQTXQTXPTWNRTNQSKOQJMQHLPFLQFMSGPXJU]OZbW_i[dn_hqaktdmuipxjqzls|mu}ov~pxsyuzvzv|w|w|sxnt|eltZclR[eMWaLW`PZdV`j]gpeluiqzou}ou|ov}nu}ou|ou|pv}qv~pv}ou|pv|puzpu|ou|pt{otyou{ou{puzquzquzqu{quzquzquzȿƻ´࿮ߺݶܲڮ٩ץu֡i՜ZӘQӔEґ?ѐ7ѐ6Ґ8ѐ9ҒBґ>ґ;ґ;Ґ;ӑ=Ԕ@ԗHԚT֝_נhؤvڨۭܱ޵߸Ἢ⾪⿪⾩⼧⻥ạḜൗ޳ݯܫܨuڥm١dٞ^؛TךQךO֙MךMיNؙPؚS؛U؜VٝYٝ\ڞ_ڟ`ڠcڠdڢiڣnڣpۣrۤqۣoۣoܣoۣoۣoۣoۤoۤpܥrܦuܦwܧyܨ|ݩ}ܩ|ݪ}ݪ~ݪޫެެ߭߮இஈை௉ᰋఋ᱋ᰋᰋᰋౌఌᰌᰋᰋ᲌ⲎⳐⴑ㵓䶕䷗业庞弢潣羥翥缤缡缠缡缢缡缠缠绠统绞络纛躛繙渘淗巕淕淕淖淖渗渗渗縗渗縗縗縘縗渗縘繘蹘蹙躚躚軛黛鼜鼞鼟鼟鼟齠齠齟齟齟齟齟鼟齟齠齠齠齟齟齠龡龢ëë©éɴ[`fGXhQmRtAd1K]2K]-EW%;K*8-=P;ZoZ&Ry Qt)If4Qo2K !60*@6J.AS+7I , #'"%-/G]AK^@I[6@Q4>M3=K1;H8@N;BQ;DQ.8F"2%.>&0?)4D'2>$1>*5E(5D#0A*5G7@T=F]>I_H[9HZERfCRd=EX?J^=GV/:C0:G+5C*8E->O*7G+>Q?Oc8K`ґ>Ґ=ӓEӒAӒ>Ӓ?Ӓ?Ԓ@ԕDԘN՛W֟bآn٧{۫ܰ޵߹ᾬ³ƸǻǺǸŶĴ°㿩ἣṝߴްݬܧyۤm٠bٝZ؜UלTכT؛UכT؛V؜W؝Yٝ[ڞ^ٟ`ڟaڠcڡeڢjۣnۤqܥsۤsۤrܤrۣqۣqۤqۤqۥqܥqۥsۦvܧxܧzܨzݩ}ܩ~ܩ}ݪݪޫެ߬߭߮߮௉ொఊᰌౌᱎᱎᱎᱍ౎᲎᲎ᱍᱍ᲍ⲎⳐⴑ㵓䵕䷘业幞廡弢潤澦翦翧迨迧翦澤缣绠滟滟缠滠漠滟纝纝溜溛纚繚繙渘渗淖渗渗渖渘湘繘繘繙繘繙繙纙繙繙蹚躚躚軛軜軝輝齟齟齠龡龡꾢꿢龢꿢꿢鿡鿢꿢鿣鿢鿢鿢鿢鿣鿣鿤鿣§ç̼ɷ[fwJ_tHf~LpBhIp:\y#;N-G]%AT$AT2VsCkGrJrCsE|:oGy]\ZToEVk0FZ*<>W2V|HkPe:Xu-Kl#Pq.Da =X/B (#5/G/D(2D3E#4I8GZ?H[/9H.:G3.UhEez:Qd3CT>PaAWhF^tVlWnNc}K[w2Th*FW2H]:N_BTbUfz\j{gn}irgr~goyip}qvz{t{qyiq|dnxairY_h^cl_emeirhowkwz»lljMOH.1(/3'BD7YXNpkd}xwsq^YV<<5571NPN_bgjotnqyhmsagmZ`gWZaSW\RV[RVZSW\VZ_Y\d\_g]`h\`gZ^eW[`UX\SVZQTXQTXPTXPSWQTXORUNQTKORIMQFLQEKPFMSHPXKU^PZdV_i[dn^hrbltemvhoxjqyls{nu}ow~pxsyuzv|v|w|w|tznt{fmt[dlR\fLV`LV`PYeU`l\fpcluhpylt|mu|nu|nu|nu|nu}ou|pv}pv|pv}ou|pv}pt{pt{pt{ptzouzouzouzouzqu{quzptyquzqu{ǽ¶ᾯߺݶ۰ګئx֢m՝^ԚSӖJӔGӒFӓEӓCӓDӓEԓCԔEԗJՙQ֜\נf٤rڨܮݴ߹ῬĶȽ˾ɺŴ⼦๞߳ޮܪ|ۦqڢg٠`ٞ[ٝZٝZٝ[ٝ]ٞ^ٞ^ٟ`ڟbڠdڡfڡgۢkۣnۤqۥsۦsۥtۥtۥtܥsܤsۥtܦvܦwܦvܦwܧyܨ{ܩ}ݨ}ݩ~ݪݪުޫޫ߬߬߮உ߯ఊఋఌ్᲏᲏ᲑᲐᲐᲑᲐ᳐Ა᲏ⲏⲏⳑ㴓㵔䶗䷘幜幞庡弢潣潥羦羦翧翧羦澥潤滢满滟滞滟漟滟滟纞纝溛溛纛繚繚湙渘渗縘縘繙繙纚躚纚躛纛躜躛軜軛軜黝軝鼝鼞鼞齠齠龢鿣¦¨¨©¨ëŰ˻pwHXf@\pLqNxGmHo>]~1Qk+Li0To,Md5Wy?g=kFwJTWVS`MwYwWlQiAXoErP,7H.J_CQh?Md=JaFOgH[;DYM07F7>M1;I *9#+:.8F09H8BSKaDRhJWnL\tGZsL_wPbyRczSawQ^uQ_vWh`nco_m^gz\dx^fzhmdk{Xn\oY]nTWmWcyASg0DX3B!5G)09G2P5>Q9EW:CU7AS4?R8AVFY6@R7AR2:I1:G1:H5>J+3A+3C+3B&/>.6G2;L4=O6>P:CU7@R:EW/9L8BVCPeDQhHVm\h]iVhZe|T^uWcyZianeqbnkvku^k_laofogo^fyJXkM]mYdwflcqepfoI^uD`vUg|em[g}\p]lVh}[qVnXnTk\wb{mw||zt}pynumtpwltnwkr}jp{`goV\d_dn~}z|x|pwgrcpv]gd|kmjPPI.1(.1&BB6ZWLnjb}xxsq`]V>>5471LPO^cglpvnryhnuagn[`gWZaTW\RVZRUZUX\VZ_X]b[`g[ah[ahZ`gX\aTY^RV[QUYQUZQTXQTXQTXPSVNQSLOSJOQHMQFLQFNSIQXKU^OZdU_i[eo_irdlufovhpxjryjszmu|ow~qysyu{v|w}x}w}tzou}gnv]enR\fKWbIVbLYeT_jZgqalvfpzjs|nu}nu}nu}mu|nu}mu|ov}ou|pv}pv}pv|pv|qu{qt{qu{qu{qu{rv{rv{ru{ru{ru|quzruzƺ໪޷ܳڭ٩إyעqآnנkןjןjןh֠fעjפqا|ڭܴߺ²ȽɽIJ㽨ෞ߳ݭܩۧxۦvۥuۦwڧwۧyۧ|ۨ}ۨ}ܩ}ܩ~ݪݫݫݪݫޫޫݫݬޭޭޮޮޮޯ߮߯ް߰߰߱߱߱߱߱ಐ߱ಒ߲ಓ᳔ᴕᴖⴖⴖⵗⵗⵗ⶘⶘㵙㵙ⵙ㵘䶘㵗䶘㷙业乜亝亟廡弢潤澥羦翧迨翦翦羥澤潤潣潢潡漢漡漠缡缡缡缢缢缢缢罡罡羡翣翤ªêĬĬŭƯDzȵɷʹ˺̼̼ͽͽ;ͽͽͽͼ̻˼˼˻˻˻˻˻˼;̽̾yX{LsSVOxCk2Ut0Ro/Pn*OdMuKsLgBOi:F`@Jb3>W=F\P6@Q:DT6@P3=J7AN6>K09G3;I/8E)4@-6E/9J4>O:DU:DUBL\:FXT6271KON^cgkovnrzhntagn[_fW[aSV[QUYRVZTW[V[_Y]b\_g\ai[aiY_fX[bTX^RV[RVZQUXRUYQTWQTXOSVPRTMPRJNPHMQFMQGNSGPXKU^NZdU_i[en_jrbltenvhpxiqxkszmu}ov}pxtzu{v{w|y|w}uzou}fnv\enR\gJWbJVbLZfS_kYgqalvfpyjs|mt|ov}ov}ou}ou|ov}ou|pv}pv}pv|pv|pv|qu{quzqu{quzquzruzrvzquzqu{qu|ru{qvzȽĵྫ޹ݵ۱٭٩ئzئxץvפtפrפrץsئw٩ڮܵ߼ijȻ¯⼦කޱܬ۪~ۨ{ۧ{ۧ{ۨ|۩}ܪܪܫݫݬݬݬܭݬݬݭޭݭݮޮްްްޱ߲߲߲߲߲ಒ೔ೕೕೕ೔೓೓ೕ᳕കഖᵘᵘᶘᶘᶙ⶙㷚㶚㷛㷛㷛ⷛ㷚㷚㷚㷚㸛㹝九仠伡弣彤澥澦羦翧翧翦翦翥翥翥澣濣澤澤澣澣翤翥迦迦迦迦¨èéêêªĬĭĭĭĮůưDZȲɵʸ˺̽;οοοοϿnaZZQxHkBiDmDuHu9b?m;k8e/Zy9hMUHyK~Yc^]yKaxA]x4PoA[x<[y=Ws+E`/JfI^xGXpKVcLUliypyovn~wqlmg~dzcxi|muuywxuxiyaq]l_mcrWe[l@Mh;GcDQjIWnI^/9M7>S3;M7AR5>P3=M2;I2;J=DR3;I29F-4A*4@*4B0;K:DU9BRBM_7@Q?I[BK\=J]=Ka@Ne@NdDSiP`xXgZkar\mVg}PauO_tO[nQ\n\i}dshwp}ixlzwttkyet[m]rat_s[l~ObvVe{[kfws|~~{u}s{pwqxs{nwnwyt|mr~v|bisOW\V_gYalYdmSbnL[f:LO2IH 7;6>.BS3J_3H[>NZblpmv|q}smnjOOI/3(,1#@B6XVIoja}wvsp^\W;<4370KQO_bglovnrzgmtagn[_eUY^SW[RVZRVZTX\VZ^Z^c\_f]ai\ahZ_fX[cTY_RV[RUZRUYQTXQTWQTWPSTPRSMPQKOPHMQFLQGNSGQXJU^O[dV`jZdn_irbktenviqxjqykszmu|ov}pxsyu{v|x|y}x}uzov|gnu\eoR]gKWcJVbMZfT_lZfqakugpyls|ou|pv}pv}pv}ou|ou|pv}pv}pv}pv}pu{qu{ru{quzquzrv{quzrv{ruzrvzru|qu|qu{rvzƹ༩޹ܴ۱ڮ٫٪٩٨~٨~٨~٨ګۯݶ߾Ŷŷṡ߳ݯܭܫܩܩܪܪܫܬܭݭݭݮޯݯޯޯݯݰݱݲޱ߱߱߳߳ೖഖഗഗഗᴘᵙ൙൘ᵙᵙᵘᵗᵗᵘᵘᶚᶚ⶚ⷚᷛⷜⷝ㸝㷝㸝㸝㸜⸜㸜㸜⸛㹜乞㻠仡伢弤潥澥濧濧翧翨翦ªªªªªªëìĬĭŮůŰűƱƲdzdzȴȵɶʷ˹̼;ο~k\NqAcJp;b9d2_|3_~=rC5?H8DK9HLIU^Xbn\dpHP[LUeDP\9KWBTi8Oc5IVDMPV^fcnsp|mnkOOJ.2(+1$?B5WUIokc|vxtp_]W=>6470KPO_bgkovnszhnuafm[_eVZ_TW\RVYRVZTW\WZ^Z^c\_f]ah]`h[_gW[bTX^RV[QUZRUYQTXQTXQTVQSUPRSLPRKOQHMQGLQGNSGPXJU_OZdV`j[en_irclufnwipyjqykszmt{ov}pw~syuzv|w|x}y}vzou|gnv\eoR]gKWcJVbMYfS_kYepalugpyls|pv}qv}qv~pv}ou|pv}pv}ov}pv}pv|qvzqu{qu{qu{quzrv{qu{rv|rv{rv{rv|qv}rv|qvzȽĵ߻޸ܴ۱ۯڭڬڬڬڭۯܳ޹Ǻɻï⻥ග޲ݯܭܬܬݬݭݭݭݮݯݯްޱ޲޲߱߱ޱܵٷ޴߳ഗ൘൙൙൚ᶛකඛඛᵜᶜᶜᷜᷝᷜᶛᶜ⶜ᷜᶜ⶜ⷜ⸝⸞⹞㹠㹟㹟㹟㹟㹟㺟㺟㹟㹟㺠仢仢弤弥徦忧©©ª««ëìĭĭĮĮůůưưƱDZdzǴȵȶȶȷɸɸʹ˺̻ͽ;eV~S}HqEjBj?g/\z4c4c6a>aWyVTMO}acna_Y~InHi>`AWt@YrToUkTsXlkzZvpxytojhk}`vc{e|qxzzzm|yjzVcbp]mGSp:Ga?JeCOiHM,9;1<@8?B;AG@JRHMW=FP3AECMYKYjXeLf+DX+?LJWd_j~kvvnnjOQK.2),0%?@5VULmia|vytpa^X>?7260KON`bglownszgnt`fm[_fVZ_TX\RUYRUZTW\XZ`Z]c\`g]ah\`gZ_fX]dTY^RV[QUZRUYQTXRUYRUXSSWPQTMQSKNRJNQHMQGMSGPXJT^OZdU_i[eo`irdlvgnxhpxiqylt{mu|ov}pxsyu{v|w}x~y}uzpv}hnv^foS^hKWbJVbMZfR^j[fqakuhqzmt|pv}pu}qv}pv}pv}pv}pv}ov}ov}pv|rv{qu{rv|rv{qu{rv{rv{rv{quzsw|ru|ru}sw}rv{ƺ´ྫྷ߻޸ݴܱܱܱܳܲݴݷ߼±ɽʿŴ㾩Ḡߵ޲ްݯܯݯݯޯޯްޱ߲߲߳޴޳ߴߴങշͼܷ൚කඛොฝḟḠḠḟḟḠḠḠ⸡⹠Ṡ⹠Ḡ⹟ṟ⹟⹠⹡㹡㹢㺡㺢㺢㺢㻢㻡代代仢代弤彥彥徦徧濧¬¬««««ªªª«««¬íííĮįįůŰƱƲƳǴǴȵȷȶȸɸɸɹʹʺʺʻ˻˼̼;;rgUSzIm@lMsSwPrYLyAoNqGnYWe_YUaecO|3jNlZtWn@Tj>\~IiZraxr}rlprw}tsspfsaoERp7E_FPjNYp5?W6 170JOOabfknuosyhnt_gnZ_eWZ`SW\RUZSVZTW\XZ`Z^d\`g]ah\`gY_fV\cSX]RV[RV[QUYRUYQUXRUXRSVQRUMQTKOSINQGMQGNSHPXLU^PZdW`k[eo`irclufoxipyjqykszmu|ov}qxsyt{v{w}x}y}uzov}gnv]fnT^hLWbIVaLYdR_jZepbluhpymt|ou|pv}qv}pw~pv}pv}pv}pv}pv}pv|rv{rv|qv{rv{rv|qvzqv{rv{sw|rv{rv|rv}rv|rv{ɽƶ±ྫྷ߻޹޸޸ݸ޹޺߼Ŷƶ㿫Ụෝ޵޳ޱޱޱޱ޲߳߳޴ߴߵ߶߶߶ගඝෞٹѾݸพพḟṠṡ⺣⺤⺤⺣⺣⺤⺣⺣⺣㺣㺢⺣㺣㻣㺢㺢㻢㻣㺤㺤以伥伥伥佦伥佦侦佦徧忧忧­îîįİįįĮĮĮíĮĮįįįİűűŲƳǴǴǶǶȷȷȷɸɹɹʺʺʻ˼˻˼̼̽̽̽̽;;qlh\}TwQsQsW\[OyVUK~Wzzzsqm[v_zG_~K]uJTt_nj|ms~xu{~{xvvrk{etYg@Lf@JeHTkENd6AV=H]8CW-8M3A4VTKnja{vytp`]X=>6150KOO`cglouorzins_gm[_gW[aTW\RV[SV[TX]VZ_Z^d\ah]bi\ahZ`fW]dTY_QVZQUZQUYQUYRVYQTXQTUQSUNQUKOSHMPFMQGOTHPXKT]PZcV`j\en`iscmvfoxipzjrzkt{nu|ow~pxsyu{u{w}y}y|uzpv}gow]fnS]gJW`HV`JXcR_jZepakthpyls{ov}pv}pv}pv}pv}pv}pv}pv}qw~pw|qv|rv|rv{rv{rv{rw{rv{rv{sw|sw|rv|rv|rv|rv{ǽŶñ࿫ྪ߽࿬òĶȼǷἧ๡߶ߴ޴ߴ޴ߴߵߵ൚ߵ߷߷ෞภḡḠḡḠ๣߻ảẢ⺢⻤ụ⼥⼧⼨⼧⼧⼧㼧㼧㼧㼨㻨㼧㼦㼦㼦㼦㼦㼥㽦㽦佦㽧侨侨侩俩俩忩«­íïİűűŲƴƳƳƳƲƳƳųƳƴƴƵǵǷǸǷȸɹɹɺɺʺʻʻʻ˼˼̽˾̾̿̿ͿͿͿͿοοs_Mp[^}XwWwRpDnFnJqJuUv_uKiWo_hbns`oTgySf}Jbz5^zDeDZwYhi|}{y~|}ql}hx^lU`|DOjBMgALc>H_7CW1N4=M?GXHQbT]rbi~ktco_jdpeol{j{s{~{rk~vs|ows}ur}nxltjr~hr}clwdlxdlxenyovmr}_epIQVBIN@HM7BF07;*/2(3:(49%&  +&;P%>V2@8J%D[2A-:!9H3L_F_uGc{Pmg}ookPQI/3),/$=A5VTKmja{uztra^W?@8 14/KNN_bflpuorzjnsagmZ`fW[`TX]RV[RV[TX]W[`Z^e\`h]bi\biZ`fV\bSX^QVZQUZQUYQUXQUXQTXRTVQSTMPTKORHMQFMPFNRIQWLT\PZcW`k\eoajscmveoxhpzkr{kszmu{ow~oxszuzw|w}y~y}u{ou}gow]foS\fLWaIU`KYcQ]iYep`kthpzms{nu|qw~pv}ou{pv}pv}pv}pv}qw}qw}pu|rv|rv{ruzsv{rv{rv{rv{rv|sw|sw|rv|rv|rv{ȼƹķĴóŶƹǻȾȺ¯ᾧảฟ߶߶߶߶߶߶ඞඟภ๡๠ẢảỤụụἥỦ⼧⼧⼧⽧⾨⽨⾩⾩⾪⿪⾪㾪⾪⾪⾫㾫㿫㾪㿩㿩㿩㿩㿪㿪㾩俨俩««­®îîïİİűƳƴƴƶǶǷǷǷǶǷǷǷǷǸȸȸɺɺɺʻʻʼʼ˽˽˽̾̾̾ͿͿͿοpa\a|`ye^}OnHnJh4\}?czEYp[oc|azjiNtRpRra{lyuklftz~wuurcpQ\xIUnGSlCNf9DZ8CX8?DAJQ9?D$//   3@7G/A)AT+KEKZGN^MUdNUdGP^>FT;DTGO`Xas[dxcpisjwhwhtkwnxitdrar]m_ljvo{ozo|sqy~xo{hsirpypxlthp}dlydlxir}ktho}pwrybhrOU\HMT*01#-0$04%09'3=%4?!-6(0428A%,/ !'$%$.4#8H(AW.CV*FIXdWaotwsyuztsut{qn~shuXeanHOk@JeCKgP]sJUk?G_AK_7AS0:K5@O1:I6>K6=KCHV?CQ04@.4@(0=9AQIN_NTdMUdNVd?FU=EUFN`PYkX`uepdpfsgsjsdmeobmesiwp{v~s|t~txz~~x}|r}gufsdodn|gq~pxxu|mulsowksnvovgluimvko|V^g8?C(/0  /86>K36= ")3$:N,=-?,;#;K6O_:N^?PeH[tNeQgVhZj}voolRRL/3*+/%??4WUKmjb|xyvra_Y>@7 14-KNM_bfkouos{intbhmZ`gW[aTX\RW\RW[UY]W[`[_d\ah\bi\biZ`gX\dVY^SW\RV[QUYQUYRUXRUXRUWQSVNQULPRJORHMQGNSGQXLU^Q[eWak\goajtemugoxhqyjszlt|nu|ow}rytzu{w|x}x}w|v{qv}jpw_gpU^gLV`KU_MWcP]jWdq`kvfpzks|nt}pv}qw~ov}ov}ow}pv}qw~qw~rv~sv~sv~rv|rv|rv{rv{sw|sw|rv|sw|rw|rv|sw|sw|ʽƶ°ᾪᾩὨᾨᾩῪΎ®ïñijĵŶƷǸȺȺȻȻɼɻȺȹǸǷƶŵŵŵŴĴĴijijijIJIJIJòòñññIJIJijIJIJIJIJŲŴŴƶƶƶƷǸǸȹȹȹɺȻɻɻɻɼɼɼʼʼʼʽ˽˾̾̿hxetco`k}RauOZkWcm[gocptOYeNV]`lvn{sfukp~{tn}izvkylzp~[k[j^mNZsFNhIUlBMcCMc=G[2M3:I3:J4:J9?M@ER17D&.;(/=7?M>ETHP]OWdOVdOTdJP`JRbTZnV]qakdljuoyy{r}p}k{jylwgriscnkwkwjur~uz|s|lvgpbm}akzdn{eo|hrqzv}pxmuhp}pxs{s{v|sxntbmzX^dM.6D-3@4;I.5C27D8>K/5B*3?08D3;H5=K6?LEMZDKZKQaKRbDKZPXiW_qdmnvz|rnqur|t|t}gtiujvmyo}u~~n|jwkuktkveokulvbnzao|lwpypxmvryu}w~kt}kq|[cmS\dKRY;FL&17*/"   #!#-.(/.  "&,3%2(67G2<6GT5HU.DS1HZ5M[Lb|\lgv|qpmRSM/3*+.&?@4UUKki_~{uzvra^W@A8!24.KLJ_afkouosziotbhn\`hWZbTY_QW[SW[TX]W[`[_d\ah]cj]cjZ`gX]dUY^SV[RV[QUYQUXRUXRUXRUXQSVNQTLPSJORHNRFOSGRXKV]Q[dWak[fo`jsclufowgqyirzlt|nu|pw~rxtzv{w{x|z}y~v{qw~jpw^gpU_gMXbJV`LYdQ^kWdq_kwfpzjs|nu}ou|pv}qv}qw~qv}qw}rw~qw~qv}rw~sw}rv{rv{rv{sv|rv|sw|rw|qw|rw|sw|rv{rv{ʽȺǸƶƶƶƶƷǸǺȺȻȻɼɼʽ˿˿ʾʼɻȺǸƸƷƷŶŶŶŴŴĴŴŴŴųŴŴƶƷǸǸȸȹȹȺȺɺȻɻɺɺɺɻɻɻɻɼʽʼʽ˾̾̾̿Ϳοξ;ͽͽͽ̼̼̼̽wvtiwbodperdsbp`mP]}UaKUpHRi8DZ=G[3;M29J29I-5C7>K18D+1@.4A)/=1:D09E09D1:F2:H5?MBIVKO^LSaAHWBIXIQ`Yarfps|s}kvr|ysv|tkyp|t}jwiup{lzmzn~xxno~pguaqeterfqam~^iz\et]gwcm{fp~itcm{jq~qypxnvpxs{xgkxJRZBJQ;BJ?HP9BL17?')'-!%%0:D8AL,5<'03NTQUTHA@@"/<-5*3"07$2:-22EP.BN+>K,;J9FTLXhXdtepppqmPTN/4*,.%>@4UTLlja|v{vra^X>A7 13.IMK^afloups{iovbho\`hW[bSX]RW[RW[UX^X\a[_e\ah^cj]bi[`gX\dUY_SW[RUZRUYRUYSUYRUYQTXPSVNQULPSJORHNRGPTGRXLV]P[eV`j\fo`jscmuepwgrzis{lt{mu|ow~qxtzv{w|x}y~x}v|rw~jqx`hpW_hNXbJV`LYcP]kWer_kvepyjr{mt|pu}pv}qw~rv}qw}qw~qw~qw~rxrw~sw}sw|rv{sv{rv{rv{sw|sw|qw|qw|rw|sw|sw{˿ʾʾʽʾʾ˿˿̿˽ʼɻȻȹǹǸƷƶŶƶŶŶƶŵƵƶƷƷǸȸȹȹȺɺɺɺɻɺɺɺɺɻɻɻɼʼʽʽ˽˽̾̾̿ͿͿͿο;ͽͽͽͽ̼̼̻˻ʺ˺˺˹̻̻̺xu|htcqYf`m_mduUcTa~OZxKUpLWnCKb;CW%.9,4?/6B28E,2>'5(1=2:G6?K)3@2;H=ETFMZHM[KP^JP_OVeW]lS[m^h{mvitmzo{yq|fsjthsbmiwn}w~|xslzeseqfqkvdoYcrQ]kU_o]fucm{jtfnylshp}nuqyqys{owPW].7= *0',&,$+2'19)/$*  + +  + )/#'',6A.;GAP^HZgo|~yS]h[cp`iww~prmQUP/4*+.$>@5VUJkia~|v{vsb_Y?B9 03.JMM^afkouot|jpwcio\ahW[bTX]RV[RW[UX]X\`[_d]ah^bj^bi[`gW]cVZ`SW[RVZRUYRUZSVZQTXQTXPSWNQULPTJORHNSGPTGSYLW]P[dWaj\eo`iscluepxgqyis{ls{nv~ow~rxtzv{w|x~x~y~v|rw~iqxahpW_hNYbKWaLYcQ_kWer_kvfpzks{mu|ov}pw}qv|rv}rw|rw~rxqw~qw~rw~sw}rw|sw|rv{sw|sw|sw|rw|rw}rw}rw|rw{sx|̾˾ʼɺȹȸȷǸǷƷƶƶƶƷƷǷǸȸȹȹȺȹȺɺɺɺɺɺɻʻɻʻɻʼʼʼ˼˽˽˾˾̾̾;ͿͿͿο;ͽ̼̼̼˻˺˺˺˺˹ʹʸɷɷʸʷʷʷʷ˸zgrmycp\i]k`mOX{etXd^mFRm@JeKVl7BY4>S19J+3@&/:%.8'0;6K>ES=ETDKY9BO;DQ;ES@GVHO]IP_U]l^fv^exhpv|pzufuak[h|[g{[hzZfzanm{~wjteq^iz_jz_kzbm{dn}YesU_o\fubkyhrowowryltlupwinxcis[dl=EK*25*/$*$&. %#"*!)!*  +    /7.pSdyVbyZhzSapYdohqwprmRTO05*+/%??5VTJkhb~{v|wsc`[@D: 03.KMK^bekovot|ipwcio\aiW[bSX_SW\SW[VY^X[`[_d^bi]bj^bjZ`gW]dUZ_SX\RVZRUZRUZRUYRUYQTXPSWNQULPTKPTHNSGOTHRXKV]Q[dV`i\eo`iscmweoxgqyir{lt|nu}ow~qytzu{w}x~x~y~w|sw~jqybiqW_hNYbJV`MZdQ_lVer^kvepyks|nt}pv}pw~qw}rw|sw|rx~rx~rx~rxrw}sv}sw~sw|rv{tw|sw|sw}sw}sw}sw}sx|sw|sx|̿˼ʻɺȹȸǷǶƶƶƶƷƶǷȸȹǸȸȹȹɹɺɺɺɺʺɺɺɺɺɺʻʻʻʻʼʼ˼˽˼̽̽̾̾̾̾̾ͿͿͿξͽ̼˺˹˸ʷʷʶɶɶɶȴȴɴȳɴɴɵʷ̻ͼνstlvcoYeTaTaR_erWb\h[fISp=HdBNh=H[2;L/7E%,7!)317?+2:$)37>H5=H8>MBHVDKXJP^QXcCIVCJXGP]R[hKQ_CJXGO^EL\TZlhqp{s~t~vws~vp}_j|P\nJYkO]n]i{hwr}zjwdofrdpam{dn|ak{_iw_iv_ivjsnwzvoxrzflw\akNT]CLR+24'-"  %(1 & + +  +   XR3|rczVwp";B$5EU@RcKaqcx~rsoSTN05,,/&>@5WUKkga~{w{vra^Y>A9  04-KMJ^bdkovou|ipwbho\bjV[aSX^SW\SW[UY]X[`[_d]ah]cj]cj[ahY^eUY_TX]SV[SVZSVZSVZRVYRUXPSWORUMQTJOSHNSGPTJSYLW^R[dW`j]foajsdmwfoyhqzjr{ls|nv~ov~rxtzv{w}w~xx~w|swjqybiqW`iOZcKWaMZeQ^kWfs^kufpyjs|mu|pv}pw~rw~sw~sw}sx~sxsxqw~qw~sw~sw~sw|sw|sw|rw|rw}swsw~sw|sx}sw|tx|̾˽ʻɹǷǷƶƵƵƵƵƶƷƶǷǸȹȹȹɺɺɺɺɺɺɺɺɺɹɹɹɹɺɺɺɺʻʺʻʻʻʻʼ˼˼̽˽̽̾;ͿͿοͼ̻˺ʶɵȴȳȲȲDzȲDZȰȱʴ̺˸ɴȲʳϽtr~lvWdO\[hWeP\es\hTaXdS^y=Hd5A\,6M*2E".$/%/,29#+2%+43ESIN\FMZELZ;DSEK[KP^IQ^FM[OUbFMZFN\KRbV]n]cujomunwfogto|xxs~uxxwqp{kwp~|}uyyp{itdpgthrjtlvluiren{eo|nwzu~lvdpvamsqzgt\jkXccNZ^CNJ@JFCLIGSTHQSKSURY`T[^JRUCLKEJHQTWUV\berjqyadfGNQDO\MVcDSY?PU-BK2=A[;U,<":O3GYF^q\sm~rroTVP05-,/'=?4UUHmjc|w{vqa]Y>A8 14.JMI_aclovou|jpxcip\biV\aTY^SW\SX[UY]Y\`[_d]bi^dk^cj\ahY^eVZ`SW\SV[SVZSVZSVZRVYRUXPSVPRUMPSJORHOSGOTJRXLV]R[dW`j\fo`ksdmvgpyhqzir{lt}nu}qwryuzv{v|w~x~y~w|rwipy`iqV_hNYbKW`NYeR^kXer`lvfpyjs|nu~pv~pw~qw~sw}sx}syrx~sxrx}rx~rw~rw~rw}sv|sw|sw|tx~sw~tw~tx}rw}sw|ux}̾ʼɺȹǷƶƵƴƴƵƵƵƵƵǶǷǸǸǸǸȸȸɹȹȸȸǷȶǷǷȸȸǸȸȸȸɹɹɸɹɹɺʹʺʺ˻˻˻˻̼̽̾;ο̻ʸɶȴȲDZǰǰDZȲʴ̹ʵȱǮȭǭȭȰ˷ʷ˸ͻϿ}s}htfr[fKWyJWyTbQ]}HSx]iTaN[{LXtCPmBOi#1L"-C '9*#,''$,!)-4?-4@KNZWZfPT`QXfPXeFKZIM[IQ^LTbEJYOScS[iRXfRXfRVfTVi\bsmuoxrs{s|lvoyozp{juiwm|u|}~|zr}irak~cpmz}{yt~aivZ`nRYeDIS;FOEQ]7?J7>K=DS04?%(1#)&)($*44=F>FO>LQ6FP);<0=@=CB=JDFPNOYbbioq|jtJWa=M^7H[/@N1BTAM_Qct`tqsrpUUP16-,0'?@4VTIlic~{u{wsc_ZAB: 23-JMJ`bdlovou|jpwdiq\bhX]bTY^SW\SX[VZ]Y\a[`f]cj^dk^dk]ahY^eVZaSW\SVZSVZSVYSVYSVZRUWQSVPRUMPRKPSHNSHOSKSYMV^R\eXak]fp_jsdmvgpyhqzir{lt}nv~qwsytzu{w}yyyw}rxjry`irW`iOYbMWaOYdS_kYer`kugpykt}nv~ov~pw~rx~sx~rx~rx~rxrxrx~rxrx~qw~rw~sw}tx}sw|sw}tw}tw}tx}tx}tx}tx}̾ʻɺȸƵƴųŲŲŲŲŲƳƳƴƳƳƴƴƴǵǷǶǶƵƵƳƳǴƴƵƴǴǴǴǵǵǵǵȵȶȷȷȷȸɸɸɹɹʹʹ̼;Ͽνͼͼ̺ʵʴɳɳ˶˷ʳɱȯȮǮǭǬɱ˷ʶɴʴɳȯʵ̽̽uut|epQZpOYrP^w>NjBOo9FiKXxIUu@Nm;KjHWuLd:Ib$2K#/C!/#&  +#&&-62:EAHVX^kZan`fs_gtU]lX`lZcnV^kRYeIO[ELWHP]RYgV]jPWgMSdOWgYbs`kjutq~vrp|mzlzjvgtern|w}wvw{~|~}xqo}nynzvwzx~u|ks_em[_ikq~NT\2FSDKZDL[GO_HO_GO`MUfR[mWaqWarUbt_ljslwm{ixiuq~w{~}{uy}xtht^l|am|grjuownuryjs~u~t}jp{V\dJOXCIN8@E'4:.:A)5:%)3HQ_9FQ2=H:IXASeZorttqWVP26-+0%>@4VTHlia|vzvsb_Z@A8  /3*ILL]aflpvpu|kqxdkq]bjY]cUY^SW[SW\UY]Y\a[`f^cj_dk^dj[agZ_eW[aTX]SV[SV[RUYSV[SVZSUXRTVPRUMPTJPSHORIPSKRYLV_R\fXbl\gpaktdnwgpyhrzis{kt|nv}pxqytzv|x}x~yxw}sxkrz`irVaiPZdMWaNZeS^kXer`lvfp{js|nv~ow}qw}rx~qx}rx}rx}rx}syrx~rxrx}rx}sw}rx~rx~sx}tx}tx}sx|tx}tx}sw}tw}̾˻ɹǷǵƲűİĮĮįįïįįĮĮĭĮŮİŰůįįĮĮĭĭĭíĭìĭĮĮĮĮĭĭĮĭĭĭĭŭŭŮƯDZȳʷ˹ͽоλ͹̶˴ʴȯȭɰɰȮɰ˴}{mtLR`M:DT3=N3>P*7M:G]+8R%3K:F[6CV*7JAO`0;M#-@!*:+(   %#)4;BIFLVaeq]_mZ^lHM\IO_AJX;DQ:CQ%-)1!&"$* + $# %   #%)/152*42#.2%08*7<=CR>JY5EM%65"/50: 4=,BN?SfNdz]uxttqWVP26.+/$??4VTHmja|v{wsc_ZAC9  /4+IML]afkpuru}lryckr]cjY\dTY_SW\SX\UY]Y\b\`g^bj`dj^dj\biZ_fV[`TX]SW[SV[SV[SVZSVZSVYQSVORUMPTKPSJOSJPUKRZMW`R\fWal\fp`jtdnwgpyhqyjs|kt|nv}ow~qyt{v|x~x~zyv}sykryajrW`iPZdLXbMYeR^kYeq_kufpzjt|mu~pw~qw}qx~rw}sx~sx~sx}sx~rx}rx~rw}rx~sw}sx~rx}rx}sx~sx}tx}tx|tx}tx}tx~˽ʺȷǵƳűİĭíì¬ìí¬ììììí­ìí쬫«ª«ªêêêêêëêꪩéêêééééĪīŬƮȱɵ˺νϽ˷ɱǯȮǫǪʳн|}zv\cs6>J)1: (6-:H1$Ha-NbA_tcruuqWWO47/-0%>?2UUIkia{v|xtda]DD=" .3*IMK]aekpuqu}lryckr\cjY]dUY^TX]SW\VZ^Y\a[_e^cj_dj_dk\biZ_eV[`TY]SX\RV[SW[SV[SVZSVYQTWORVMPTKPSKOTJOTJRYMW_Q[eWal\fp`jsdmvfpxhqyjr{lt|mu}ow~qxtzv|x~x~zzv}sylrybjrWaiOZcKWaLZdR^kYdq`lufpzks|mu}ow~qw}rw~sxtx~tx~sx}sy~sx}txsw|rx}sx~sw}sw}sw}sw|tx}tx}sw|tx}tx|tx}̾ʻȷǴƲŰįí¬ªªªª§§§§¦¥¦çĨƬȯʶ̹ξgwT`xz[dwL6@N>GT>FS>FT:AP:AO9@N6?L;FWMXj`man}TarFQbAO`BQbDRdETgP^retz|}{|wxzvqqpsx~ytzzwt|w~szltovjq}QY`BJR?HP:EH;DJBKU9BJ6>H(.7'/'/$,"'$*  +  +  + #$$  2=%4 %36L?[/KeIZlnvuvrXXQ48/,.%@?4VUJjha~{u{xtd`\ED="/2+JLJ]`dkpvqv~lryekr\ciY]cVZ_TX]TX\VY^Y\a\`f]ci^dj_ek]bj\`fV[`TY]SW\SW[SV[TW[SVZSVYQTXOSUMPTLPTJNSIOTIRYMV_Q\eV`k\fp`jsdmvhpwhqyir{ks|mv~qxrxszu|x~y~zzw}tylrycjrWajP[cLXbMYdR^kXeq`kufpylt|nu}ow~rw~sw~twtwtxsx}sx}uxtxtx}sw}sw}sx}tx}sw|sx|tx}tx}sw}tx}tx}tx|̽ʺȶdzűİí«翧濦翦翦濥濤濥翤§¨§迣辢辢翢迢迢¥ħŬǯɴ̺ξϾ̷ʲȮʭѺʹ̳ʳʶͽ|_o?Ls1BfetKSe%B.V.`&V OJ?@26 77 /'A(H !FE<@@: 6 +4 4,  +#+2?>ER@GT;BP8>MAHWDKYKSaJQ`CN\LS`@HV?FT8>M:AO?GVJTeQ[iGP`JSdEOaCObO_riwtutn}guo}~yv|}{z~xy~}yuswxyt~s|uxzs{nvnv[bmQYeHNW*27.7>13UTJkhc|v|yuea]DC<"01,HLH^aekpwqw~mszfkq^ekZ^cVZ_UX]UX]WZ_Y\`\`e]ci^ek_el]bj[_fW\aVY]TW[TW[SW[TW[SVZSVYQTXORUMQTKPTJNSIPTJSYMW`R\eVakZeo`jsdmvgowhqyir{lt}mv~pwrys{u|x}zyzx}tyms{cjrXajQ[dMWaNZdR_kWep`jufpzls|nv}pw~qw~twtxtwuxsx~sytxsx~tw~sw}sw}tx~tx}tx}tx}tx|tx}tx}tx}tx}tw|˿˿ο˼ɹǵŰŮĭ«©澥徥徥澥澥濤忤澤澣澣澣澢彡形彡御彠潠澠澢翣§¨é§¦羢罠辠羟辠辠翟£ħŪǮʳ̹ξι̶̵̱ʬƤȧɫ˳fwN_(:b*;_8`6nE E@9-u$j!f^[ZWT$]*d)a(a$]VSOQUP$L#  ")3-4@/6FK6?M;DQGVAK[BK\;EV;GX>N_ARa=J\AObBQcBSdQ`ug|v}~~~~sztwtsuttzv||v`it\dpIR^9BI7@G(+', ,3$06(.',     '.!+3!+4$0:&. +  #!(),56@CJ?FP',.-313EHAXf8S\$69!(  ' ,'49M(?V=Pa[gu{vwsXYS580,/&=?2TSIkhc~{v}yvea\FF=#/1+ILI]adlpwqw~krzflq\diX]cVZ_TW\UX]WZ_Y\`\`e^ci_el_el^bjZ^eW\aUY]TW\SVZTW[TW[SVZSVYQTWOSVNQUKPSJNSIPUJSZMW`Q[eU`jZfo_jsbluenvgqyhs{jt|mu}pwrys{v|x~zzzx}sxks|dksXaiPZcLWaMYcP^jWeq`kugpzjr{mu|ov}qw~sx~sw~tw~tx~sx~sysx~tx~sx~sw}tx}sw}sx|sw|sw|tw|tx}tx~tx~tx}tw|οʿɽǽǽǼǼȼȽȽɽɽɻɼȼȼȺǹǹȹȺʻ˾;˻ɸǴůĭëª濣徢形张弡弢弢形彡弡张弟弟廟廟廞廞弝弝漞潟澡¨êīëīꨧ翣迠羟辟辠迠迟迟迟¤Ĩƫǯɳ̹Ͼλ̴ɭƧŤȪ˰˯˳ͺxizRa;Jn,JwM S"TQ L?.)y&t%r%p#j+p1u7{2u0s,o'h(h(e0h +:n,] )O +,6A-6@3:G6>L>FT@HWKM\?M]6FX5EWFTeScudtnw~~~|y}~{ytyx~yzpxvx_fqWakRZfNWbNWb=FO.8=*48&05/9=8@I19@#), $(!+/#)  + "!,+$%*.-CMU_f|SXhMQ\=DK).*"! +"!!*:0E,EVP^jyvwtXZT59/,/&=@3TSJifa~zv~yvfc]GG=#.2*HKI]bempvqv~mszelr^ekX]dUY_TX]TX]VY_Y]a\`g^cj_el_el]bi\_gY]bVY]UX\TW[SX[TX[SWZSVXQUVOSUMQTLPTJNSIPUJS[MW`Q[eV`lZeo^iraludnwepyhrzjs{nu}pwryt{v}x}x~yyx}tyls|cksYbjQ[dMXbMZcQ_jWep`jufoyjs|mu}ow~qw}rx~rxsw~txtytytxsxtxsw}sw}tx}tx}tx}tx}tx|tx}tw}sx}tx}tw|̻ͼνϾϿϿҿѾѽнѽѽѽҽҾӿ¿ɽǻźŷĶĶŶŶƸƸƸƸƸŷŵĵijòòòóŵǷȺʾο˻ɸǴűĮìª徢弟廞庝廝亝廝廝廝廝廜廞廜庛湚溛溜溛滜漝潞澡¦ĪĭŮůŮŮĭīé¥迟迠迟¤çŪƬȮɴͺϾκ˳ǬŨţŢţȫ̸ͻ}}~|vz~jz_nTbEV|6V5]:a6b,_TB4..-~*w1}8;74z4x5u8o +3Z !A98 )!0(/=4=K6>M>FV@HY?GULRbMTdHO_?GW>HU:ET8CR.:H3BQCM]FM\EM_EM_IQbJScFN^EN`MZlS_m]fv[hyYewJWjJ\nXizl}|w|xv~~|}yyy{u~hp|ou`itQZdLT^KR]EOXGQ\=GQ5@I&14',$+1!$ !#*  + + '+/  + 04-1!$212=A8>=;BB7?D,6B(6! 0%60A.EPL\aoxzwwtW[T590,/'AA<;:}7n4 #+(;,6H:CUETGN^EL\IScMWeGP^HQ_FQ_ALZ/EYGWffpuxxuX\T5:0,/'=?4SSJjgb|u~xvfc_FG?$-0*GKI^aemqvsw~oszfmt_elY_eVZ_TY^TX]VZ_Y\a\`f_dj`fl_el^ck\`hY\bVZ_UX]TX\TY]TX\TX[SVYQTWOSUNQUMPTLOTJPVJSZMV_Q\fU`k[do^ir_jscmvfoxhqzjs{mu|pxrzt{v}w~yxyw}sylszbksZbkQ[dMWbNYcS^iYdp`kufpyjr{nu}ov}qw}rw~sxsysysytytxsxsxtx~sx}tx}tx~tw}tx~tx}tx~sx~sw~tx~tx~ȵɵʶʶʶʷʷ˸̸̸͹͸ι͹κ͹θθθ϶϶϶϶϶ѶѷҸҸҺӻԼվ½ÿĿĿɾǺĴ°࿬߿࿬Ύ࿫ྩ༧໥໤໣ຢ໣Ụἦ⿩ıƷǹʽξ̺ʶDZƭīé§濢彠弝些乙帖丕䷕䷕巕䷕䷕䷕䷕䷕䷓帔帕帕幗溙廛弝澢¦ĭƲɶʹ˻˻˻˺˸˶ʲȰǮƬūūūĩéĨĩũŪŪƫƬǮȰɳ̶κнн͸ʯǪŦƨǧƤɫɫ˰ϼ~{nh{ZnN_@Qy4Hq$:c$M9 >h>m W +A >@<%LHA ?7p+*'<)>0O4@PAL\KTbMUdKTdMWhR]m[dsXbqPYjR[jR\kYcsdm~ismwozs}r|ozgserjwq~zyovT_kEQ\T\hT]hS\iGPZHNYCJT8AG'33-7<.7?4IFYmdqxxuY\T7;1+/'=?4SSJjgb~{rywgd_GG? $-0)GLI]`fnpwsv~ps{gls_elY_eTZ_SX]SW\WZ_Z]b\`f`cj`el`el^dk[ahY]cVZ_UY]UX\TW\TW[TW[TW[RUXOSUNQUMPTLOSJPUKS[MU^Q\eU_j[eo^hq`ksdmvfoxhqyjrzmu|qxrzt|v}w~yyzx~szms{cksZajQZcMWaNYcR]iYdp^jtfoyjs{mu|pv~rx~sxsx~sysysysytytxtxtw}sw|tx}tx}tx}tx}tx}tx~sx}tx~tx}tx~DzȳȲȳȳȳȳɴʴʵ˶̵ͶͶͶ͵εεδδγϳϳϴгѳѵѶҷӷԸԺջռ־¼ýýľĿĿſſſľľý¼¼¼¼¼¼ýýýýſɽŶ߾߽߼߻߻޻߼༩ཪ߽ཪ༩༨໥߻ߺ๠พฝ߷߸߷๞ạ⻣⾧ïŴǶɺʽ̿ͽ˸ȴǰŬĩ¨濢潡弞庛幘且䷒䷒䷒㶑䶑䶑㶐㶏䶐䶐䶐䶑䷒䷓帖湘廚彝Īưɷ˼;μ̺˷ʵʴɴȳȱǯǭǭƭƭƬƬƬƬǬȯɱ˴̹μѿι˴ɬǨǩŢÞĞƤɬ˱̶ϼϾϿwkSiNcC[?U~#^=[I +=#M  ,(4I:G[AL`NXlKTgT[mOXiJSdIQcOWfLSbGP`AK[BN^NXhT^nU]l\eucm|ajybm~_hzgrjujshqktepcpdndnal~`l~etp{}yR]kAJVLUaMTaOUbPVcKQ\DNW;GO17<#)!6:A;CQ-5?          + + %-8,7!&   +  '19CV=GY@PdG\tLdvUn~fyzyxZ\T7:1,/&8 4%70>SBMaR[mR\pclaj}^ex]gy^fx\dt`hxZdtZew]j|bk|jtkvfqen_hy^izeocmdl}dk{ZbtYdwUavQ^sP^sTbv[j}crfunt{y~}whq`hxmznzfqNUbOUbNT`Z]lRZf?JP05;%(" +!%2y1ZMl>_ 6v1\PbWq+N +6w)`! 8+=U>MdLXpgrjujwsur|p{t}s{rzgpkudoeoendn`i|^jajqybl~U]pMVgWbtEUh6K`7MdGWlTavYpYv\uhwqyv~go~do}blzZbnNWbCKTEOYCLXFM\PXgmyq~W]lIMZAFT>DO8AK.6>).3$'-&+1)/53;A8?C=FN*26 " $+%)    + +   #  +  ) #18L%EX@^vWniwy{z\^Y7<3+/%;>1SSHig`~zv}{iebJJA ' +1*EKI]aemqvsxou}hnu`fnZ`gW[aUY^UX]WZ_Z^b^ag`dkbgnafn_el]ai[^dW[`VZ_VY]UX\UX\UX[UWZTVWQTVORVMQUKPUJPWKSYMV_R[eV`j[eo_isclueoxhqzir{lt|ov~qxszv|w}x~zzzx~tzntzels[cjRZcMW`MYbP]gYdo_jugoxks{nu}pw~sytx~uyuy~vzuzuztyty~uy~uy~uyuxuxtysx~tx~ux~tx~ux~tx~uy~ǪǪǩƩǩǨȩɪʩʪ˫˫̫̫̫̪ͪͪΩΩϩϩϩϩЩѪѪҫҫҫӬӭӭԮԯԯ԰հԱձղֲֲֲײײײײسسسٴٴٵٵٵٶڹۻܾµûǿʽijྨ߹ݵݳݲݱܲݲݲݳݴݴݳ޳޳ݲ޲ޱޱޱݱݱޱޱ޲޲޲߳ഐ൒ඕบạ⽦«Ųȹ˼ͼ˹ɴǰƮūĪé觤¤濟澞弜廚庘幗幖乔专䷑䷐㶏㶍㶍㶌㶌䶌䶏䶐䷑帓幖滚濠èƯʸοͻʷɳǭũħĦĦ¤¢¡£ĦŨƫȮɰɱʲ˵̶͸͹ͺͺͺͺ͹͸̷˵˱ʯȬǩƥġݚ翜ལ⺝œÞƤȫȫʯ˲̵˷ɶ˷˾wojquyxg}Yq7Mq#B)H|:XRmGa8n*CGUx\q5N7n + F )9QEUn\kdqp~yxs{~~nvltvnzq|lvaj|bmox{zeocm`k}docnetfyg|nk~]qezu}o{mzoyZdqV_jNWaW`mSZg@IR8BK@JUDLXFLWEKU%,3'+$&&,-18>=DN?CM7:A,27%01 +)&(      +  +   + +   % (,: >S3PiOewh||y{z\^Z9<3*.%;>1RSGiga~{w||ifbKJB"( *2)FKJ^aemqwsxpu|hnv`fn[`hW[aUY^UY]WZ^Z^b]ag`elagobgp`em]aiZ^cX\`VY^UX\UX\UX\UX[TWYTUWQTVORVNQUKPUJPVKSZMV_R[eWak\fp`isclufoyhqzjr{mu|nv}qxszu{w}x~z~{yy~uzot{eks[bjRZdMW`MXaQ]hYco_jufoxjs{nu}qw~rx}tx}uyuzvyuyuzuyty~tyuy~tx~ux~uytxsx~tx}tw}ux~tx~tx}tx}ȩǨǧǧȧȧȧɧɧʨʨ˨˨̨ͨͧΧΧΧΧΧϧЧЧЧЧѨѨҨҩҩӪӪԫԫԫԬԬԭԭծծծծծ֮֮׮ׯׯװذررٱٲٴڶ۸ܻܿµŻƷߺ޶ݳܱܰܯܱܰܰݱݲݱݱݱݱޱޱݱݱݱݲ޲޲޲޲޲߳߳ߴඔෘẟ⼤įǷʺ̺̾ʵȰǯŭūŬūūŬūĩĨçæ¥濢潠彞弜弜弛廛廚亘幖专丒专䷒巒巒䷒专幔店漛èưʹοͼʶȱƬũŨħæä¢¢ããĦħŪƫǬȬȭȯȯɯɮɭɮȮȭǪƨŧťĢš쾕뽔俣缙쾓쾒쿕šĞǢȧʫʮ˳ͻ|umt}~{xkO`%@.>^P]XlMb'DWOZy);c/O+ %@Qk[l_pnst~q~epq~p{enZduNZnZfx^h{cndpclZc{frakephtlwq{sqqvw~gr_hwS^k]fudk{^fuJS^IR]PYd:>F>BM=@K59B',2!  + + + )( + +     + +..@7J(F_=ZmWsmz|{\^Z8<2*/&E5?E@HRBJTDMVNT`=EQAIU^lvM[g%0##("&!'%!!")-,2716:,7;() + "%>EL&08&0# +       + +!1 %7 &7/A"CW@`{av~{|{]_Z:=4*.&;>3RRGih`~{w}|kgcKLD#) +1(FLI_aenqysypv}hnv`goZ`gW\bVZ_UY]W[_Z^c^bi_el`hoago`fm^ai\_eX\aVZ_UX]UY]VY^UX]UX[SVXQTWOSVMRUKPUKQVLSZOW`R\fWakZgp^irdmvepxgszir{mt|nv}oxrzu{x}x~y{zy~vzpt|flr\cjQ[cMW`MXbQ\hYco_jtfpyls|ov~rxrx}sy~tyuyvyvzvzuyuyuyuyuyuyty~tx}uy~tx~tx~tx~tx~ux}uy}ʧʦʦʧ˧˦˦˦˥˥̥̤ͤͥΤΤϤϥϤФФУѤѤѤФ~ѤҤ}ҥ~Ҥ}ҥ~ҥ~Ҧ~ӦҦӦӧӧӧӧ~ӧԧ~ԧ~Ԧ~ԧէ~է|է~է~էըը֪׫׮دٱٴڷۻܾøĺžʾŶߺݸܴܱۯۯۮۭܮۯܯܯܰݰݰݱݱݲݳ޳޴޴޵ߵߵߵ඗ෘේฝẠ⼤㿨­ųȸ˽ͺʴȳȲȱɴʶʸʹ˸ʸ˸ʸʷɵǵDZƯŮĭĬĬĬī駦濤澢潞潝弜滛弚彛翠¦ĬDzʸ;ͼ˷ȰƬũĨħĦå¥å¤£¢¡¢â¢¢¢¢뿙뿗꿕꿕꽓뽒꼐꼏뼐鿛ç辙켎켍켍켎콏쿒œßàģťƦȩ˳̶̻ξ~q^r8DW08C,3CCJZ-%*2GKQ59@ ,DRlNbih}s{~uy}wq~mzttwyz~|}vlx[gwO[iT]lRZjOYhEP\FP\JTaPYgS[hQYfRZfQYeQVcFNW9CJ;DM>GP@HRCISMQ\YanGM\BLU^jt?HN%!%#" *1$ +  + ++15=AH?@D7?A*38!! ## + +  + +  +) $4 +#3 &33B-L\Iax`z~~}^`Z8>4*/%<>3QRHig^|xljeLMD#) +1(FLI]acnqxtypv~iowahoZahW\bVY^VY^W[_Z^b^biafmbhobho`fm^cj[_eX\aVZ_UY^UY]UY]UX]UX\SVYQTXPSWMRULQUKQULSYOW`Q\fWak[go_jtbmvepxgryjs{mu|nv~nwryu{w}x~yz{x}uzot|gls\cjR[cLW_MXbQ\gYco_isfpyls|nu}qw~rx}rx~sy~uxuyvzuyuz~uy~vyux~vyuyuzuzuy~uyux~ux~tx}tx}uy}̩ͩͩͩͩͨͨΧͦͦͥΥΣϣϣϣϤФФУ~У}У|ѣ|ѣ{ѣ{ѣ{ѣ{ңyҤyңyӤzҤzҤzӤzӥzӤyӤyӤzӥyӤyԥxԤxԥxԤwԤwԥwեwեvեvեxզxէ}֩׫׮ٰڳڶ۸ܼݾ³ķ弞Ƹ¯߼߸޴ܱ۰ۯۮۮܮۯܰݰݰݱݲݲݲݳ޴޵޵޶߷߷߷߷߷ผ๝ṟỢ⽤⿨­ıǸʼͻ˹˸˸̼ͽ̽;Ϳξξξͽͼ̻˺ɸɷȶȵȴǴDzDZƯŮĬê¨澡澠濡êŮȱʶͽν˷ɱǭŪĨħĦĦååä£꿜꾙꾗齕꼔꽓꼑껑껐껎껍黐è违뻍뻌뻍컌컌켍콏콐콐쾑쾒Ûǧ˵˵˻ͻ͹Ѿzl`t?Pk&/C8=G &,LNQ/28*;Jhauit~~~|z|r}z~vzusw}}lyXatT]mS[kNXeDMW3QSIjh`~|xkidMKB$* +1(GLI_bfnqytyqvioxahpZbiX\cWZ^VY^Y\a[_d^bhbemchocipagm^dk\_eY]aW[^VY]UY]UY]UX]UX\SVZQTXOSXMRVLPUKQULSZMW_R\fWal\gp_ktbnwfqyhszis{mt|nv~pxszu|v|w}yz~zy~uzou}fms\ciR[cLWaLXbQ]gXbn_isfoxls|nu}qx~rx}sy~tyuyuyvzuyuzuyuyvzvyuy~uy~uzuy~uy~uy~uyux~tx}tx}ϬϭϭϭϬϫϪϩϩϨΧϥУϣ~ϣ}ϣ|ϣ|ϣ{УzУzТxТxѢwѢvѢwѣxѢwңvңvңwңvңxңwңvӣvӣvӣvԣvԣvԣuԣtԣtӣsӣrӣrӣqԣrԣqԣrԣrեtէz֩׭ذڳ۵۷ܾܺöĹļŽžſɿŸ¯߽߸޵ܲܯۯۮۮۯܯܰݰݱݲݳ޳ݳ޴ݴ޶޶߷߷ෞෞพพ๞ṠṠ⻢ὥ⿧«ıǶɺ˽Ͽξ;ο;ͽ̼̼˼˼ʻʹɸȶdzưŮëꨦêŭƯDzɶ̻ν˸ɱǭƫĪĨçæĦ¥¤꾙꾘鼖鼓鼒껑黏껏껏껏껎鿛è껑뻌뻍뻍뼎켍켌켍켎켏콐콐Ş̱ƨƦƤơǣɪ²}toe{KZ{2:H!&.4>BE*/9CUoUjitz{vn}o~o~m|l}lpuxykugrfreqepeqr}{v\gyPYiIR^EOY>HS=HSCNZKT`PXfNVaKS]PWcMVdAJT=DM9?GCKUAJS9EEPXaIQ]Mh 0"*/44*/&;>3STJjic}yljeONF&)  +1)GLI^bfmrzvzqwipxbip\biY\cVZ^W[_Y\a[^f_cjafmcipdjqagn^dj\`fY\`W[_VZ_VZ^VY]UX]VY]TV[RUYPSWNSVLQVKQVKT[MW`R\fWbk\hq_kscnvgqzhr{js}mu}nwqxsyt{v}w}yzzyu{ou}fmt\dkS\dLW`LXaP\eYcn`isfoxlt{pv}qw}qw}rx~sysyuyuy~vyuyuyvyuy~vz~vy~vz~uy}uy}uy~vyuy~uy~uy~tx}ԷԷԶԴӳҲҰӯӭӬҫѨѦѥ~УzТxТvТvѢvѡsѡsѡrѡsѡrѡrѡrѢsѡrҡrҡrҢrҡrӢrҢqҡqӢqӢqӢqӢqӢqӢpӢoӢpӢnӡmԢmԡlԡmԢnԤqէy֫ׯٳ۶ܹܼݾöĹżƽƾžľý½¾¾¾¾¾¾¿¿ȿŻõ߼޸ݴݱܯۮۮܯܰݱݲݳݳ޴޵޶޶޶޷߷߶߷߷߸พพ๝๞ṠṠ⺢⼣⾥­űȷʼͿ˽ʻɹǵƲưĭĬīīĬŭƯǰȲɸ̼ν̸ʵɱǮƬƫƪŧĥ䢠鿛꾛齙鼕鼓鼑黑麎꺏麎꺎麎鼓ç鼖꽓뾖뿖쿓쾐콏콏콑쿓šȦØØÜۺӸӹ¶Ըҹڿͼ{pq}~{tnp_pTc@JZIWji|twvxx}{eww{}z{vdqXetTbrXduXds[fu]hw]gvbjybi{t|}q{RYhTZh\boU]kNWaNV`V]iahx_etIQY/8;5=C;AIBHPEJPOT_KQZIOYFKT3>F08BYgm?J^ !             + 0 .-9,Kb?SjDTfP`sR`oXco^fubi~bk`dsTWaEMP5-0(<>4TTJkib~zlieONF&) -0*GKH]adoszvzqxkqxbjp]biZ]cX[`X[`Y\a[_e_ciagmciocjqahn_ek\`eY]bX\`W[`VY^WZ^WY]WX]UW[RUYOSVNSVLQUKQVKT[NWaR\fWbk[gq`ktdmwhqzir{jt}mu~mvpyrzu|u}w~yz{z~v{pu~gmt]dkT\cMX`MXaR\fZdn`jsfpxkt{pw~rxpw|rx~sysx~sy~uyuyuyuyvyuyvzvy~vy~uy~uy~vy~ux~ux~tx}tx~ty}׼׻ַֹյԳԳԱԯӮӬҪҧѥУzТxСuСtѡrѡrѠqѠpѠpѠpѠpѡpѡpѡpѡoҡpҡpҡpҡpҡpҢqҡpҡpҡoӡoҡpҡoӢoӡoӡnӢmӡmԢnԢmԣoզt֩׮ٱڶܹݽµùżǾľ½տԾӿӾӿҿӿӿӿӿӿ½ĿǿŻ÷߾ߺ޷ܴܱۮۮܯܯݰݲݳݴݴݵ޶߷߷߷߸߸޷߷߷߸ฝฝฝ๝ṞṠ⺡⻢⽤¬İǵʻͿͽ˼˺ɷȴƱƯŭĬĬĬŭƯǰDzʷ̼Ͻͺ˸ʵɲȱȯǬǫƨĤâ 꿛꽛齘輔鼒鼑黑麏麎麎꺎缗꼓꾖ßâģššĞ›쿓›˜Ἕָ׸ῤضֶݺŤƤǦɫζ~}ugylk|_oMYrcs{y{q~w}tzpq}r{rp~l{hvjvhu`lz\dsV`mRZfQ\i]ds|x[brS[iLS]NU_SYeOU`V[gahvagvJS\AHMCJPIMS7>>GLSSWcKQZ@JT4DOXWhr",       %" $3-=2B8J]DZtFYoUaqWerLZfBNXIPZZ[jccuaaqPS`9@H3713+AB8XVOmjc|w~kidLLC%( ,/)GJG^benszv{qxlqybip]bjZ]cY\aX[`Y]b[_d`dibhncipdjqahn`fk\agZ^cX\aWZ_WZ_WZ_VY]WX]VW\SUYPSWNSVMRUKQVLT[OXaR\fWaj\hqakuenwgpyir|kt}munwoyqyt{v}w~zz|z~v{ou}gmt\djT]dNX`OYbS]gZemajsgoxlt{pv}qw~qw}rx}rx~sx~sy~tytyvyuyuyuyvyuyuy~vz~uyvy~uy~uy~uy~uyuy~ؿؼ׻ָ׶մղ԰ӮӬҪҨѦѤ{ѣxѢuѡsѠqѠqРoРoѠnѠmРlѠmѠmѡoѠnҡoҡoҡpҡpҡoҡoҡpҡpҡoӡoӡoӡoӡnӢoӢoӡnӡmԢnԢnԥrը{׬ذڵ۹ݽùžýԾӼҼҼҼҼҼҽҼҼӼӼӽԽֿ»Ľžžźĸ´߿޼޹ݶܱܳ۰۰ܱܰݲݳݴݵݶ޷߷߹߹߹߹߸߸߷߷߸߸ผผ๝ṝẟẠ⻢⽤㿦ïdzɺ;Ϳ̽˻ɸȵDZƯŭŬŭŮƯưȲɴ˸ͽϿξͻ̺˸ʶɳȯǪŦâ꾛齘鼕鼒鼑軐麐麏麏轛꽖뿙œĠŤƧǩȪȪǩǦţğܘ˜ٸ׷߼طض޺ĜØÖ֗ÙĚȢϺ}zyul\jk}v{vy~s]k~Tdw_oo|q}XcvVas[exS^mYds`lzdpdm`m}Yjy[kxbk{em~|[ctOVbMT_MS^JO[OS_X[h`gx]cqX]gPU^TVaRU_MQXPV`Z_pNVb@EN2;B07>T]cFMS   +     (.B*Hc9Pm=TkYi~csYdwPXgPXcT[_PUZKOXDKW=FQ>FQDK\QUgTZkMTaGMZQOXST]P[eW`jcilx{wzy]`YEG>;=4EEDM[fk18B +   +'(/3B'  +    + +( - 0E8S:O6I]Se}[lYgxYatW\m[^sV[nKTgBM]@KX@IT?IVCLU-9A:BLGMVSV\^^]hmlxtuxu|{zz{zkib_][GF?DC:TQJhea~{upkiQOH'*! +/(GKH^ados{v{rxlrzdkr]cj[_dX\aX\aZ]b]afadlchodjqdjqbio_fl\biZ_eY\aY[^XZ^WZ_WZ^XY]WX\TVYQTXOSVMRVLRWMT[OWaQ\fWal^gqakudmwgpzir{kt|nvowpyrzt{v}w~zz|yw|qv}hnt^elU\dOXaOYbT^g[dmdktjqymt|ov}pvpv}qw|rx~tw~txtytztytyvyuy~uy~ty~ty~uy~uy~ux}uy~uy~ty}uy~tx}ýٽ׺׸ִղկӬҩӧҥѤ{ѣvѢsѡrѠqРmѠlПkџkѠlѠlѠlѠmѠmҡnҡnҡnҡoҡoҡoҡpҢoӢpӢoӢpӣqӢpԣrԣrԣqӣpӣpԣoեs֪׭رڵ۹ܾ÷ÿԾҽҼһҼҼҼӻӻӻԹԹԹչֹ׺غڻۻܻܻݼݼݻ޺޹޸ݶݵݵݶ޷޸߹߹߻߼߼ཧྨ࿩࿫Ύ࿪ྨᾧཥཥ༣ἢἡỠởỠ⼠⽡⿥©īŭǴʺͿͿ̽˺ɷɴǰƯŮŭŭŮǯDzɷ˹̽ν̸ʳȮƨĤŸ꿚龘齘鼗鼖꾗ŸŤǨȬʱ̶͸ͺ͹Ͷ̵̳ʲպں۸¡ğğšƢǤǤǤǤţἡἢ©Ѻ~}tfwethxr~tptk~qwxnrtl{m}ZhyQ_oP_pVewZfyXdv\ewWbtT]pr}ltbl{[bq\csZbpahvahw^gtS[fHQ\PVePSct}ipKP]RXdHNWEIS@EK@EL>BJJNWDHP.8?7AI8AJ2:A5>F+8?)0616=-18<@LV_dQ`b+18!%,$+'1608<<997PH>shbjjjH_a 1K    & +&59F9MaG\s(28<@BQQSd\_abb\ce`XUYVW]dohnzqy~vst_Z\8<3;?5RQJihc}{upkiPOG&,! ,1*GKJ_cfps|w|uzms{dls^dk[_eX]bX\aZ^c]`fadldhpdjqekrdjpagm\biZ_eY]aY[_X[_WZ_WZ_XY]WX[TVZQUXOTWMRVLSWLTZOXaR]fXcl]gpbkudnxgqzir{kt}nv~owqys{t{v}x~yz{zv|qv}gou]elU]dOXaOYaU^g\enektkqxmu|ou~pw~qw~qw~rw~twtwtxsysytyuy~tx~tytyty~uy~uy~uy~uy}uy~uy~tx}tx}üؼ׹ֵճկԭөҧѥ}ѤzѣvҢsѡqѡpРlПjРkѠkѠkѠkѠlѠmѡmѡmҡmҡnҡnҡnҡoҡpӢpӣqӣqԤuԥvԥvԥvեvԥuԤtԤsԤrէx֪׮زٶںżþӿӾӽӽӽӽԼԻջԺԸԸոַ׷طٷٸڹ۹ܺܺݺݹݹ޹޹޹޹ߺ޻߼߾࿩®ïıIJųųIJİïíí««ª©éĬŮưȳɶ˻Ϳο;̼˻ʸɶȱǯŭŬĬĬŭƯDZɶ˺̽ξ̹ʳȭƨĤ 꿛꿛£뿙ĢƧȫʱ̶κλϽϼϺλ÷ªǦƢŠğğġšŠš㻞ἠ㼛ŞŜǣϴ~}}uky\iWcZgYhu~{zk}utcxrwhvZiz]naqetXgxN^nM[lQ^oVbsU`qVarZew\fw[ews~xnvmxoxfnz\esX`k\cnU]jV]i`gxU\ichvzdl|LR\;AFLHP[TYSZfM\oKNUKS]V_rVcv`l~oz{~kijGNL0:0>B9SSMgga}zupliPPH(."-2*HLK_cgpt}w}tzms{cls_el[_fY]bY]aZ^b]`faelcioekrejqcip`fm\biZ_eY]aX\_WZ_X[_X[_XZ]VXZTVYRUXPTWNSVLRWLTZOXaR\eWbl]hqakuenxhqzir{kt}nv~oxryszu|w}w~xz{zw{qv}gnv]elU]dOXaPYbU^g\endksjpylt|ov~pw}pv}qw}qw~sw~sw~sxsysytyty~ty~txsx~tytx}tx}tx}tx}tx}tx~ty~tx~Ŀپ׺׷ճհӭҩҦѥ|ѤyѣuҢsѡqРnПlџjѠjѠjѠkѠlѠlѡlҡmҡmҡnҢnҢnҡnҡnӢpӣrԤtԥxԧ{Ԩ}ը~է}է~է}էzզyէz֩~׫ׯسٷۻŽտվռֻչչշֶַ׶׶ٷٷڸ۹ܺܺݺݻ޻޼޼޼߼߾ñijŶƸǹȺɼɽʽɼɻȺȺȹȷǶǶȷǶǶǵȶȷɸʹ˻̽ξ̼˺ʹɷȵDzƮŬĪĪĪīĬŮǰȵʸ̼ομ̹ʳȮƨĤ¡¤£áŦǪɯ˵͹μϾпп̸˲ʬȨǤšĠĠŢ彠⻢㻟ğĜěĚÙĜȥϸxtbr_oWfXfIV}FU{HWzPai{ry|wro|~{mr~q~tmyfraoWhyVewSbt`k]j|S`qP\mR\mS^nOZiQ\kS^n[dt]fv\dtmwerJSd[cpiq{lwow]doHMWMQ]X_nMR^OVdlsvPS`GKS-9:+/*49,7=.9?2;E(2:!'"   + DHH<@A +     +     + + +    +  *7$5A'6A3FN3N])DW+=P2>U.9L'/:'.8(.8%1+*9-=$1!&'),-1216Ns8Hl8GiBNpPaWidvm}{|yvsr{wl|u{u|xuqvp}Zh{[i|^lWgyVfwUeuXgyZewT`sWewQ]nR^mT`pP\lR]mVaqR\jLUcMVcOYfPYhfo|S\n@EPBJUBKW^eqdlx[bk]cmZ_gGMYMS^V\kz\bpELUBHR/7<$/6#-4)3;*6>)5>$(    + $&&EPK  +   +   + +   #+49?ISW`kxgzJap23$(!   *!1* ##$),+367BM?HT?GSETcaj|aj|Zbt[dwYdtR_iR\aquxyzJU[MTUVZZehdywvspnYVQ990&("29/IOLaeirwxt{nt}elt`fm\aiZ^dZ]b\_c_bgaflcipekrflseiqbfm_ci[_dY^aY\aX\`Y\aX[`X[_VY[TW[SVZQTXOSXMRWNU[PYaT^gWcm]hrblveoxhqzjt}lu~pwqyrzt{u|v}xxz{zw{qv}hnu^flV]dOXaOYbT]f[dmbktipxlt{qw~pv|qw}qw}rw~rx~sxtyuxuytxsytysx~tx~tx~tx}tx~tx}tx}sw|ux}tx}tw~ſ»پ׺׶ֲԭөҦ}ѥyѤyТvѢtѢrѡpѡoѡpѡoѡpѡnѡnҢoѢoҢqңpңpңqңpӣoӣoӤqӥuԦzԨ~ժ֬խ֭֭֭֭֬֫֬׭׮ױ״طٻĽÿþ½ؾ׼׻׺ظظٸٹںۺܻݽݽ޿±ñijŶƹǺɼ˿ξͼ̻˹ʷɴȰǭƪũħħ夢£¤èĪŬǯɵ˹̻;ν̺˶ɲȭŨĤäĨŸ ĤƧɬʰ˵ιпоλͶ̴ˮƫ¨俥¡ğğğĠĞĞĝŜęęęřв}}usevYiO^GV}HXEV}CS|;Kt?Ow>Nu1Af0>a-;\/<]6Ba8EcFSoM[xVb~`mano}lzp}q}rm{iudoes\kWdiypwzwyzx{^o\nYj}^mQasK\nTdvWfyRarP_qTarUbtXevWdtS_oS^mT_oS^nP]lYbqX`oW`nYbp[drZdrS]kr{vFQ]AKUBIREO[HO\BHTMV_Zck^hqdlwchruzt|4KgO[vNXr7C^TbySay[iO[vj{{}trubtcv{[oM_sL]pTewL]oIYiN^oRaqTbtO^pIXiVctYfvUapWcqYevXctS^m^fv`gwZapX`nZ`n\dr\drU\hV[lxr~JQ`CLVAGQNT_OUbW\kRXgJP[LR^RXe]br[fsFS[GR[CMV9DJ3;C(05#**"&    +"),FPO$+/         +  #5<%=C?YjPk~szzutyjdf_\b[_iKS^FTcDdCXx>I[HVfRbrVbpcemqt}acmOUbBN\>Mc7G\Qiqe}_jVe{LXdGO_HUcUbqdpjm{onpupozwba^881'-%2;7EKI_dhpvxu|nu~gnvbho\biZ_eZ^c\_d_bgaeldjpfkrglsfjrchm_ci[`eZ^cY]bY\`Y\aY\`Y\`WY]UX[SV[QTXPTYNSXOU\QY`U]fYcn_iscmvfpzir{jt}mvoxqys{u|u|w}y~zz{zw|qw~jou`flT]eOXaOYaT_f\embktipymt|pv}qw}qw}rw~rxsytytysxtytx~tx~ty~tx}ux~tx~tx}tx}tx|tx|tw|tx|ux~tw~Ŀ¹ؾֶֺձԮӫҨѦ}ѦzѥzѥyѤxѤwҤvҤwҤyҤyҤxӤyҥzӥ|Ҧ}Ӧ|ӧ}Ӧ{ӧ|ӧ{ԦzԦzӧ|Ԩ~ժլְְ֮֮֯ױױװױزسش׵׷عؽĽſĽûø²³õĶŷƹǻȽɿϾμ͹̷˶˶ʵʴʳʲɰȰȱɲɳʵ̸ͼνпλ̹˵ɲȯǫƫŨ㠟Ÿ áģŧȳ˽ϼоν˳˭ɪȨƤƢƢƣȥȦɧʩʪ˫̮ϴѷжͺûrpg\pWkOcH[DY-EpQw:NuBS{AR{BS|?NwAOxBPy?Mu/?g'7^.=`$4X'6W,K#A)D <%?"; :$?*D!.I -I,HFO?DL=FNDJXnrYdx (4&0:3=E7AC0:=0677BH$* + 6<;@JC&   +  + +  '1:7KZ;Qb;Wh=XlAVe?UVO]b_cq]^k`bqdgu_du^f|[qYlS`xWcy_mXiZlgqKUe1FT6L[GXpPZrgz`xYg{JTgCL]GQdU_u`h|`dta[_b]]jfd}so{xwWVP47/".2-GKJafjpvyu|ovhnvbhp^cj\`g[_d\`e_chafldjqfkrhltfkrchm`di]af[_dY]bZ]bY\`Z]aY\`XZ]VX\SVZRUZOSXPTZPV]QYaV^gZdn_iscmwfqzis{ku}lv~pxqyszt|v}x~yz{|zx}rv~kou_fkV]eQYaOYaT_f\enbktjqzou}pv}rxqw~sw~sxsxsy~sx~tytytxtx~tw}tx}tx}ux~tx~tx}tx}tx|tx|tx}tw}tw}Ŀº׾ֺշԳ԰ӭҪѨҧҧѧѧҧҧ~Ѧ}ҧ}Ҧ~Ҧ}ӧ~ҧ~ӨӨӨөөӨӨӨ~Ө~ԩԩԪԬծְհձղղֳֳֳ״صضططظغؽĽǿżŻźƻǼȽпоϾμμνϾоопλ̷̹˴ʲɲɲǫƨƦƤţţŤȯ˻ʸ̿ͼκϼнϺηͳ̯ʬʫɩɩ̯ϴѶѺҾѼѺѻѼҽϾǻ{m`x^rRdEX=Q{=Q|6Ht-@k"8c/El3Ho4JpCU{@Ry9Nx8LwIZHW>Nw>Mv97#=/I+F,H*F(7T3G_,=W=Pl[lnfwux{pdyngybq]mXh~br{ZkP`sO_pM]mUctYgyUasR^pYdwR\mOZiMYhQ\kXaqS]lKVcNYfV_lT]iQZfEOZFQ\OWdLT_PVcQWfLS`fm~T[mGMZNUaLS_BHQ>FN:@F+465@G#/5>EPr|6?N)1 !%(.   8>@JSS57A!   %,6HUO]uK]s>Wm%G]*Ha;N$)'(%..1<>1BQ+;G1EU9Sm8NhESgHQd=Qf=LWCKXEM_V]pqwersYwYp_mSdwTfVc}`kaj{\`fachbkptwrwpmZWP55,$370OQQcgirwy~w}qwiovcip_cl]ai\`f]af_dhdhmfjrgmtgmtflrcinaei]af[_eZ^cZ]bY\`Z]aY\aXZ^VX\TW[RUYOSXPTZPV]QYbT]gZcn_jtdnxfpyir{ku}mwnxqyr{t{v}x~z{{{zw{sviou_flV]eRZaQZbV^g]emcmujqyou|pv}pw}qw~rw~rx~syty~tx~sx~txsxuy~ux~tx}tx}tw~tw}tx}tx}ty}tx|tx|ux}tw|þ׽ַֺԵӱӯӬҪҩѨѨѩҪҪҪҪҪөөӪӪԫԫԫԫԫԪԪԪԫԫԫԬԮկհղղԳմմֵֶ׷ظعععػؼٿ¸žϾϻκ͹̷̺˴˲ʰɮɭɭ˳ͼ̹˵ͺҿнϻθζͳ̲̲ͳε϶зѹѻҽҽӾĻøӿxg\oWkEZb&7Y*:Z!3T#5T#4Q*9S*6P -H(C&C(7T0?Z8Jf9IfDTmL\vXhhxl~qvszvdy`vYp[q{v\kYh{WgzZj~xrRasTcuWew[j{YgzQ_oR_oQ]mIUaLWeP[iS\jT\jW^mW`oYao]fuW`mT\jCNY:BK3DL>DL;CK;AI8@E?GQ?GRAHT$14-1`j{T^t/:D&'  +    #\hgsDDP&   +  '+?O?SiL]uTgF`}3Ka.:*3% %, '4'.:->O&AX&>U;HY=DQ:DRB@I?CQDM]MP[`g{]rXameuF\tQkcy`_{b{g~dyhtnv}wqnXUP47.(0)Z4Gc=PlCQnMYtN]yZnj~s{rh~ezth|_rXm]ok|^nWgzWgy\l~m{`oYfxUduXfx`m`k}XdtQ[hMVdKTaRYfY`nYap[bs^fwU^lR\iXapW^lJQ^DLW:BK9@HFJWEJSAGMNOYci{[euEJW=EM8?E07=(08%.47?L&, ?EQ[fs17C%.5!)/#  +    *XV\]dp''0 + " 3@+BQ2J`>WoGa~=Sl-AS"/7#).78A53:+.82C1B)>NSBV=RBWK\>R#,/4CL`e_EOM  + #2<*?N1L\7Pa1GZ0DS'4< *')-+3:E$/? .';3<$6@6DT%9B/5AUh7Qa!0="/9"(/039DJSWlZrjztdvKgCZkPcoSl}Mdhkw~apt`p~codnxkmrysu}xvlhjRQP680'*#184DLL`dhrw{zuzlqyekqchodjpdhpcflaekcioflrgnuinvgmtdjpbfl^ah\`e\_d[^c[^bZ]bZ]aY\`WZ]UX\RVZQVZQUYPV\PYcS_gZeo^isdnxgqzkt}lu~owqxrzs{t|u}w~yz{{xv}rx~ipw`gnW^eSZaRZaW^f]fmclujrzmt|nv~nv}pv}qw~qw~qw~rw~sw~sw~sxrxrxsx~sx~rx~rw}sw}sw}sw}sw|tx}sw|tw}tw}ӷԶӵӴӲӱӰӯӯӯӯӰӰӲԳմնַַָָָָ׸׸׹׸׸׷ֶմմԳӲӲҲҲҳҴҵӵӶԷԹֻֻ׼׽ؿºýwjh~dyZpZoXlPdF[QfN`K`K]K_M`OaFWP`JYAPzCTz8Ho0Ai1Bk6GnGY{9Lp:Jn3Ce->a0@_,<[.=\:He>Nj=OlATsPe_tku|~z~xpnp{sj{g{gyj{m`sWk}\mr}p}l{ao_mz|ftht]gwYdrgqemiqgoYanS\iNVcPYgNWdNWcX_lZanX`nOYeGNZ?FO").19>GLQVb}[cqTXoCLY;CK8@L#-5&,"' +Q]j@J^%/ +   +    +  +    $+  +    %-&9B@P`R^jNX_ISZOU`\_kahtEWa':C'#0$$)2=?H9DG:IQK\kERWS\__m}DGDbenksqeq[fu\kF]uEZsG^qe^yQ`m[dldspitip{rqzvtv}~|ztxwoshagRQQ9:5%*"-2)FLKadhrw{|uzmrzimrhkqglrcinaci`djdinflshnviowgmtekpbgm_bh]`f\_d[^c\_c[^c[]bY\_XZ]VX\SW[QVYQVZQW]QZcT_hZeo^jteoxhr{jt}mvowqxrzt{t|v}x~yz{{yv|qw~jpv`gnW_fSZaRYaV^f]fncluhqzlt|nu~nu}pw~qw~qw~rwrw~rx~rw~sxrxsxrx~rx}sx~sx}sw|sx}rw|sx|sw|sw|sw}tw}ӶӵӴӴӲӲӱұӱӱӲӳԵԶոպֻ׽׽ؾؾٿؿٿٿٿٿؽ׻׺ոշԵӴӳҲѲггеѶҷӸӹԺռֽ־»ýſ{ke{e{e}e}by_u[oRdQcWiRfQeSfO_VgAR~?P|2Ep@Qz=Nv1Bm=Mv9Kr;Nt?PtFUvHWxBSrBRn:He.?^3DbBRpWig|u}|posnhlk{rwj~hyeubsqiz`pcrm|lxnzoi}p|jugsep]k|grS\jT[j[dsX`nSZgIS_IR]IR^FNWKQ\HQZIPZV\lLSa7@F:BH3;A.6<"%"(,/7?BITWYihrm|EN`CK\09B )-%+#" BGRKUd(/: + +          .6;HPW^g]`lcdqjr~wwgmyJQ[+=M3@!;N 2A+KHZclNXgT_nN\oIVdN_sK[rU^sXi~a}Xre}uxx~suurjo}blwgjpidlg^f]TYLKO8:9-0(770MONbfjuy~v{osylnsmpu~rzbeiaekejogmthnvjowhnuekqagn_cj^ah\`e[_c\_d\_c[^cZ\_Y[^VY]TW[QVYQVYQW]QZcU_iZeo_kueoxgr{ju~lwnwpys{u{u|w}y~zz{{yw}qxkpw`gnW^fRYbRYbU^f[dmbktgoxls|nu~ov~ou}pv}qw~qw~rwrxqx~sx~rx~rxrx~sx}sw}sw}sw|sw|rx|rw{sw|sw|tw|tw}ҴӴӴӴӳӳӳӳӳԴԵԷԸպּ׾¹ºļļŽžžžĽû¹ؿּպԸӷҵдгβϳϴϵжйҹӻԼվտ¼ýĿ~pnrvph}UgSfewZmXkReReEXPbIZCTJ^HYAR{I\EV9Kt8KsARx>Nt:Jm8Ik9Hi7EfBQoTfRdgznz{{ngb~d~mg~g}dxrndwsfvhv_pgyq}ftcpesdp_k~bojtntcl[drWbpT^k_gxT[jFO[KS_X_mYbrV]jU\jRWdNR\BIRDISCJUJR`NVcELTEIR;AI06=07=.7@!),:BNKScwXcuBIX;?J$+0 " /2=S^l',;  '      &-:A5CQ8EPIS^^ixnvjqntz~~r{epVduF]i?S`?R^TpOfx99>?CCHV=EP@HPVU\a^l`_vY^mXfu{srh|_ixW_pGYlP`w\hyX]b\[[]YYOLPAEF893@?8QSSfkrw{~suzmmrklq{nu|aeicglfjointjpwjpwiovflsbhn`dk^ah]`f]_e\_d\`d[^bZ]`YZ]WY]TWZRVZQVZQW]QZcU_iZeo_jtdoxgr{ku~mwoypyrzu|u|x}y~yz{{zw}qwkpwagoW^fQYaQYbT]f[dmbktipylt|mt}nu~nv}ow~pw~qw~rwqxqxqx~rxqw}rw}rw|sw|sw|sw|qv{sw|rw{sw|sw|sw|tw|ҲӳҴӴӵӵӴԵԶԷԸպռ־ûſſû׾ռӹѷϴγͲͲͳͳεθиѺһӾþtnmof}dze{atkbt[oTiYnPdNaFWGZBWM`>O{G[K^FYQv9KoIZwIZyK\{[ml~s{rltqfb}c|f}e|g}jdymneuyyhwctdseso}tjxkxhsWduTbqZet_j{zgqQ\jT^kQZf[bsOZi=HQ;ENCNZW^p\bs^cr]drRYeELV;AJ#+.-6:GOYGMXHMX?GO1:@1;F".6#('-# *N[kn}:@O:AGGI[ejfo}ozn}lZl~Qeq^ph^jfdl]nQLJI;3J?;=>@'12"%#07FQdUZnV\rPXh[k|kjg\v=]uJc~Ja~J^zPhK`tKYf]^edbe[X`GJO>CAGIFX[]jnty|rtymmpjjnpouhiifhjfknhlqjoukpwkpxjowgmscio`dk^ah]`f\`e\_d\`e[^c\]aY[_VY]TX[SVZQVZPW]Q[cV`jZeoajteowhr|ku~nxoxqzrzt|u|w}y~zz{|{w}rxkpwahnV^fPYbPXbS]eZcmajugoyks|nu}nu}nv}ow~ov~qw~rxrxrxqxrx~qw}qw|rw~rw~sw}rw|qw|rw|rv{sw|sw|sw|tw|ҲҳӵԵӶӶӷӸԹպջ־ֿ»ľýֿԻҹ϶γ̲˱ʱ˱˳̵ͷθкҽӿ¾ymof~pg|bxn`tZoe|\rVlQgQeLcH]TgK[K^J\SdWg\k_nYhTbKZ{IZz[mq{}rei{gfayc{byezjlezoxfwv|rgudrbobpl}l{mzlzam~hsisnyzfm{ajxZbqMXfQXhMUc?IS@JTHN\IO[HOYGOZBKTINYLP\!** &*(17:AKRVeCISJNF]jVhs]lvVdmj~te}IZkGTZEGG345&)*/6;'11,4$/$,3?IDJLQU\^`p^gwdr[uUpC\xEbTuSnMdG^x@VhJ[lchtjn{dmOTdDKRLRU\`cnrt}xznpunnqpmqpkqhghcfhchlhlqinulpwmqxlpxhnudip`dk^bh]af]`e\`e\_d\_d[]aZ\`XZ^TX[SW[QVZQX^Q\cV`j[eoakteoxhs|luoxpyqys{t|u}w}y~yz{||w}sxkpwagnW^gPYbPYbR]eYdm`jvfpyks|nu~nu~nv}ov~ov~pw~qxqwqxrxqw~qw}qw|qw}qv|sw|rv|rv|rw|sw|sw|sw|rw|sw|ұӳӵӶԷӹԹպռֽֿĽ¾Ծһϸδ̲ɰɯȰȲʳ˴ͷ͹лӿ¿οzmomk_xe{g}f}byczaxaxaw]sUk]qYlVjQdHZI[=O~DVP`[lTeN_`rvv|svsimubzic{ie{g|nmi|l~zfwxtn~etao\l~jxrmyzvfpgr`l|\gwpzbiyU^lXapRZgQWeU\hLT_;DL@FPFNXAHR=DLBHRQTbV^l>DL"*-#+4<1:D@JX$-9  +1 ;CRaox+/=$"'*59>*-1ahv&+;    + +  + +  +    +  [tOjRkVpN`zH]v=Uj=RfDWkO^r[g{]iV\oOT`PSYjqvxzmnrlmpmmrfgm`ch`chcgkfjpgntiovlpwkowhmsdhp`dj_ch]af\`e]af]`e]_c\]bZ\`XZ^WY]SV[RV[QX^Q\cU`i[enbktfpyis}muoxpyszt{u|v}x~yyz{||x}sxlqwagnW^gPYbOXbR\eWcl`iufozjs|nu~nu~ov~ow~pw~qw~qxqxrxrxqw~qw}qw|pv|qv|qv}rv|sw|rv{rv{sw|sw|sw|tw|ҲӵӷԹպջռվ½¾ӼйͶ˳ɰǮƯǯȰɲʵ˸κѾ;̼̼̻̻ͼξξϿwwrmhmje|e~oke{i~f|_ubwcwbu^rYlJ\ObJ]HZTf`s^qq~y{~{xklitokre|jiifzni{h{phy|n|m}dshxetYhzXgxanuuvt~bn|V`nhoclzdl|V^kJR]GPZMU`V]jGNXAISJQ_IQ]6=A'15"$6>H@IS(5= +$/8/;G?K\%3:  #-3%&]hqLVh""%/6:&/2 Z`l-1D     + +   +  +#"*/)5<'2:%549OJPbcP[^>CJ(.2"*,+20%03,=E#/2!(!+%3-AZ8E[+-."&)"',!#"%!&'4>8HY=Ne7@N2:D4CO5K]No\tdxSczCWm?OdARa2JZ2J]>TiEZoL\oWdwfn}fep\]cq~sv{nptos~kp{fioegkdfjcgjfinhlsjowmqxkpwhntejpbfl`ci^bg^af^af^`d_`d]^b[]a[\`XZ_UX\RW\RY_Q\dV`i]foaltfpzjs}nvowpyszt{u|v}x~yz{{|}x}sxlpubgnW^gPYbNXaR\eWcm`iteoyjs|mu~nu~nu}ow~qw~qw~qwqxrxrxqw~qw~qw}qw}qw}qw}qw|sw|sw|sw|rv{sw|tx|sw|ҳӶԸԺռտֿ¼ľӿк̶˳ɰǮƬƭƭǰȲʵ̸ϻϿν̼̻̻ͼνϿzwrrroooh~e|\te~_v_ubydz\re{cv_qbxbucvi}qw{swqr|sehhppmsnf{h~lj}jyk|i{dxl|dswk{n{}ftjwjw_mO^mYgxQ^n^m~ywp|bl{\gvel}X^lOXfLSaFNZ>EODJVDLX1;A,5=7?IBJVX_nMS`+46&24-9@#*  !2;(/5AL09?  + +"*5 5=Fgry%)6 + -8@!& QZf/4G  + +!  &%'7A?HTT[kcscr|irahuTV`MLPFD?JMXK[s=O]Me/BO"'()+"'7CNEITWGAHA@IDM856%(. #)".6)8C+5"-*/=+:E6OUbzhq>O]0Ql8Uq=Nb9O_8O`EYoEYoEReQ\mcoopxs~ytxtv~uzmtlmpkkkggjehkgjpjowms{ns{mrziovfkqbglaej^bi^ag_bf_ae_`c]_b\^a[\`X[_TW\RW]RY`R\eVaj]fpbkueoyjs}muoxqyqzt{u|v}x~zz{|~}y}sxmpuahnW_gPYbOXaR\eWcn_iseoykt}lu}nv}nv}pv}qw~rxrxrxrxsxqw}sw~sw~sw~qv|rw}rw}sw|sw|sw|sw|sw|sw|tw|ӵԸպռֿ½ľĿϻ̷ʳǰƭūūŬŭưȳʶ͹ϽϿϿϿϿϽλλͺͻͼννϾоп|{}sossmmmh]wb}\u\taz_vg~romsz{vwxtx}{pnfnntr{g|fzk~i}m}iyarl~m|dtgvvrht_livkwmycnS`qO[mU_qtv_hygq\fu_ixlxahx^ftNVb?FP2;DEM[?GT"+/$"#?DMRXiLS_MXf?KT,4 #(!&$09;BN  %*^hoKT\ #'2=#+ JS\,4F +   +  ! +  #$362FI;GF5>?4?;5>714/./+.38&5C3BM@Tn.8D2,-0--.56:A><@4OJ?GHG>BG% %  ('6GIein|FUa;Ma7X|=WvHZv?O]BReCYq9Pe:MYN_q_ojsw~cwgqx}u{qylrypoqmmmijlfimhnumr|ou~ou~ns|kpxekpcglaej`cj_bi`bg`af`ad]_b]^b[\`XZ_TX]RX^RY`S\eU`j]gqclvgqzjs}nvpxpyr{s{u|w~xzz|}||x}txlpvbhnX^gOYbOXaR\eWcm`iteozkt~mv~nv~nv}pv}qw~rxrxsxtxtw~sxsw}sw}rv}qw}rw}sw|sv|sw|sw|sw}sw}sw|tw|ӸԺս»þκ˷ȲƯĭëêªìĮƱȴ˷ͻпо͹˴ʱɯɰɰɱɲʲʳ˴̵̷̷̸͹ͻͻμμμλλλκκλμμϽϽνопϿ~{qywsuphhfc`{Ytgekpry}uwvwrpww|rpknnmul~li}cvpl}dueum{brcrwwnz~_mbo`l}jtskw_l~Wctmxv]etbkz\drLVabk{aiz_fvU[h?FP*/"-6*2:$+4"(&, "-:@/;B'5<=HTEO]2;H!''/  6@M  ?EWjuz'2@ + +EKV'+7 +     +     /76=D;=D;?HNRYTZ]NY\BHG3907<,48<=,AGBEQOUXLyzun~NVi/06 + "%'.70NNL[\kZg|OpBjr0?I5J[8L_7Rm?Uq?Sn:J\;I]?ShEUf\lZoSdyWfye{e{Tas^j|ujxo{vznotpt{x}ru}knugkrgmujpylr{ns|mqzjntfjnbfjaej`ci`ci`bgabf`ae]_a]^b[\`WZ_UY^SX^RZ`S\eUbk]hscmwgqzkt}nvoxqzr{s|u}v}w~yz{{|{x~txkqxcgnX_hOYbNYbQ\fVcm`jteoykt~lu~ov~ow~pv}qw~qx~rxsw~txsw~sw}sw~sv}rv}rw}sv|sw}sw}sx}sw|sw|sw|sw|sx|ԺԽüѿκʶDZŮ쪩ìůƲɵ̹μоι˲ȮǩŦŦƨŨƨƨƩǫǬǬȬȮȮɯɱʲɱɰɰɰɰȰɰɰɰʱʲʲʳ˴˵˵˵˶˶̸͹Ͻzstuspmojokqpz}{uwwutspntktoojqplzrokgyjyn~ev_scukz]nUgxn|vbo~kybpan~am}cnjujsanq~dl|_hvfobk|em{QXe_gvZ`oEMV'49"'*389BK2:@4P-DT8Tn8Ql7Me4AS3;E7@M?KYJ`}?Xq6JYDWiOcwRe{T_nYbq]lZex[eshjmyw{z|y}nr|fjschqagofjpimrlpuknsimrehmbeibej`ci_bh`cgabgaae_`c]^b\]bY\`UY^SX]RY_T]fVal\hsalvgqzjs|nwoyqyr{s|u}v}w~yz{{|{x}tykqxchnV_hOYbMXaO[fVbn_itfoyjs}lunuov~pw~pw~qw~qxrx~rw}sw~swrw~rv}rw~qv|sv|sw|rw}rw}rv{sw}sw|sw|sw|ջտ»ͺɵDZĭ©ĭŰdzʷ̺ξϻ̶ɯǩŤáá  ¡áâââãĤťťŧŧŧŦŦŦŦŧŧŧŨŧƨƩƩƫƫǫǫǬǬȮɱʴͺϾx~~yz{z~yw|vtomse~yrqjmspmvntewewmj|[o\ncsk{]oTcsgv{ernzeqfrft^l{ajzeodldm}xcl|krgplvueixelzbjv`gtKTb.7=08>JQ`=IQ#' )7C,9E0^ov7BO  + +6@?#& +  ,16<@D,62".,//)%)$ "!)"(10#0:-5:@DP:69;<0FY1CU7M`>XtBTiVXd`]eVZgO\lO^p[dpfilqr{mq~berXZdTX^VY]Z\`dehikpkotlotimreincfkadjadj`ch`bg`bgabf``e_`d\^bY\`VZ_UY_SZaT]fXal]hrbmwgq{kt~nwoxrzszs|v}v~wz{{||{w}txlrychnU^gOYbMXaO[eWbn^itfoxjs}lunvovovovpw~qw~rx~rx}rx~qw~qw}rw|rw}rw|rv{rw|qw|qw|sw|rv|sw|sw|rv|ռýϿ̹ȴƯì«íıǴʸ̻οϼ̵ɬǨţàŸžŸŸŸžŸŸà ŸŸŸß àáâĥĥĥĥĥŦǩȬ˳ͺп}w|{|xrstqoklkr}sonnvstni{j|buewm}fy\m]maohwdt^l}`myepdp_mZfu]jzYeuR]iR\iS]pal|_izDLZCMZ=HREOYcl~]cr^dq\bnMXdQZjKTc=EP3>DAJY(.*9F6FU'8C.:E *2!)"+5 + +  $   "+)3&7FOYjo", +=BI#  + + +    &,,.46-7839+B0 13(:.'<.8;:=B72+NbfO_fZ\iAUj%   +  (%/ "+/7+HZ0Lk":T5J6H!5D'7C/FQHU`m{]fxHP^>GRIR`9CKWcpQ]m-:A09@0;A7?G08=8@G:GQDLVLXf7CM%+ $ #)&, +  !+ #) !&.S`f)1= +KRY    +  +  +   $  +$ $.2CN +   + &,5       + 7>FJZV HXU +         + (!(*6,;'118<;7726=37H    '  # + %0=F7GW3GW/>C08<./1-7D);K$6D!3@(4".9(7B9ANIFNLP\BKURXd`cq`dqSWZEHLCHLGLSV[cZ^dddinqwqt{osypt|nr}gjqcfkbejceidfiefjddhbcf_ae]`e\`eX]cV]dW_h[dn]iscnzis}lvoxqys{s{t}u~w~xyz{{|{y~tylrybioZ`gQZcNYbQ\hWan^isfoxls|ov}qw~qw}rw~sw~rw}rw}sx~sxrw~rw~qw}qw|rw|qv{sw|sw|rv{sw|sw|rv{sv{sw|tw|Կ¾ͻ˷DzĮìîŰƲȴʶ˸̺ͼͽϾϽκ̵ɰǨĢ›濘œàĦǭǫǩȪɬ˯̳͸μоѿоϽ;̽ͺι͹ιιιιθζ͵͵θϹллϺϹηͶ͵̵̿̽ͳζѻ~vx~wrlhb|he|ltng|j}l\ofyo~h{evom}suftkxfsjxuozZeu_k~`k~jv^hzW`mLWcGQ]GQ^JSa3>FDLYwOVc\duJS\5AFDMVT\nQ^lCLTKT];@G &%)/ * "+4<#$0:          +  CPI:CEHNP  +   +      )!#" '%!"$  ,8*5)/$4<%4:1DCO\p:HV)6C*2,7)4(5/>1@0?1>)5A2;AFFBP?:B=A<@GHLSRVbOTa?KS?KUBQ_GSdKUaY_fjjpoqvnqvnptorzor|imsfjodgkceieeifeiedibcg`be_bf\`eY]cX^dX`i\ep^jscoyis}mvpyr{r{s|s|u~w~yz{{||{x~tymrybipY`hPZcNXaP\fVbm^iseoyks|ou}qw~qv}rv~rwsv~sw}sw~rwqw~rw~qw}qw}qw}rv|sw|rv|sw|rv{rv{sw|sw|rw{sw{¼¿Ͽͻ˷ȳưĭ¬««îïİŲdzɵʷ̹̺ͻͽξϿϻ̵ɰǩƥŢţţţţţģĢĢĢţŤţĢţƧɮʱʯʰ˱̳͵Ͷθλϼммϼϻι͸̸Ǹ˳˱˱˱̴̲̳̳̲̲ͳζϹлмллкйϸι;ʹζѺҿ~}~uu~~qpwoiiczmwnduatWlXloasgxasiyswtgvl{lzkwoz|lwbl~dn^h|xfpVboR_lZcqS\lNU`FMXJP\wKQ]`guchxPUaX_lMXg7@H4>F9?HHP^4;B!'  %+28   !-6$.8  + +     + +     &HPN=AC9?E   +  +  +          $ #(#1 )+:0CV&5=1I_9Pl;R^GTdT]nAXn8Nb26@27@,;C*=>+;92DQ 0>$,"."1#2-'5)5 9P.G`2G])7?(0-++, *3".;';H3DM@JVG[nQ`tO^uFRaFS_[anbjvkq}mq{hglmirolvikqdglabgbbgedhffjediddh`bf^af]`d\_dZ_fZaj[eo^kseoyis~mwpyq{r{s|t}u~x~zz{{{|{y~uxmrycjqY`hPYbNYaO[eSbk^iteoyks|ov}rw~rw~rv~qw~rw~twsw~rw~rxrw~qw~rw~qw~rv~sw|sw|sw|sv|rv{sw|sw{rvzsv{ÿξͻ˸ɵdzDZİįĮĮįİŲųƳǴɶʷʹ̺̻ͽͽξоι͵̱˰ʯʯʰʯʯʯʯʯʰʰʰ˱̵̶̵θϹлѽҽӿӿҾмϻιͶ̴ɶʯʬʫɪɪʫʬʭˮ̯ͳζиѼҾҾҾҽѼѼнϸйѼӿ}}yu{{}z~tkpnjoh~lnqi{fx_s[ocucu`pdt`qdsp}xugsiwht]j{S_oepr{ishrU`qhqJUcFQ^GR]HR^\ctW`pKS]OT]ozOUcMU`JT_6ENT^neq3;D0:C#,7%(5@*4?  -3*3:   &.=J,4 +        +  */7S_`,3=  +         + + +   !!*7$4&2#/+$.@)@T#?U3KiBWx=XtMgIZv@PaO\iadwDRd2Qh5FX#.5&'%,3,15/8AEWgbnYfwZkFVg?O`:IV@O]GVcVfxan`dt]_fcakfclaciZ]b[]b``fedhffjdchbbg`bg^af]`e\_dZ_fZbj\fp`ktfpyjtnwpyq{s|t}t}v~x~{{{{|}{y~vynszcjpZ`hPYbNX`N[cUbk^isdoyjr{nu|pv}rw~qw~qw~qw~qw~qw~qw~rw~qw}qw~rw~qw~qw}sw|sw|sw|rvzsw{sv|sv{sw{sv{ÿпνͻ̺˷ʶɵȴdzdzȳȴȵɶɷʷʸ˹˺˻̼;ͿοѿнϼϻϻϻмммммоѿѿҾҾмϹͶ˶ʯʫɨȧȦȦȧȧɩʬ̯γиѼҿӿҾ~}ztzv|}yu}sqtpmnpiri{j|gycv\mnaq]m[l}_oWfxkyn|lzgu_l}`n~\j{Ucr\iz_l}`j|`iz|my`m{:GS,8?2=F=FQ@JTY`ndn}iteo|RZgYbr*6;DLYX`u&-3#+6.3@ + "*/&-.09E",5 -:/>L "  +    +  +FPOO 6S %(+:,DX/Jc&10@4B;K'FZ2;)-03)+"&+& ## $%!  + !$ (7>?KX;M]:GT:FQ@GQ9ETH6GV6FQ, (.9@4>CD@L7;B + *4@%*//<:9>I-28#%&#(),./0689BL6@J>KZR_r[nh|YrJcLa|K]u?JZ=M[FQZ[]ecdd`emekuXZ\VWYZ]b[^dZ]cY]bZ^e[`g\bj^gqbkvfp{jt~nxoxr{s{u|v}w~xz{{||}}yvznrxfjoZ`gPZcNYaO[dVcm]iteoyir|nuow~qv~qw~qw}qw~qw}rx~pv}qw~qw~qw~rv}rv|sw|sw|sw}rv|rv{rv{rv{sv{rv{rv{͹λμ;;̾̾˼ʻʻʻʻʺɹɹȹȸǷȶȶǷǷȷȷɸʹ˺ͻμϾѿҼиδ̰˭ˬˬ̰͵Ϻѿzxurqosumqqrtvnnkj~o|wdvas`pm]lXfyN]nO_qN]o[gy\hzVbs^i|Zew[fy^i|S_m\hxO[iUapen~grW^lX`qy^fuRZgAJVHTb@JS=GOGQ3;DDHV8AR#+5# +    +7&0%2&4*%/ +  + 5>8  (440<2 + + +  +  $&! &68*6"''6C*6@(3>$5B&:J2EU4CYL@ViFVcGKG[chs]mtsupzFTe:O\BVZ0HR&=H$8G!;S(8G2;D49KYHS`ak{encm~bgy|bkx&/5,7@/7>1:D8@J!/6".2^gqDLX'.3>JHP`DHSfl}'$0))   + +"/: +"   +    + +1?< +/6-    +   -: "!&*3=D.5@&2 ".&2,:9DUBJ`:>M -9,@O;L]CRbUh|`u^ubwNhJbx@[t$?V$9J%6B"5?)5=.:FKUiX_p_ez4581.0% %%&-,.C@FA49HIY/;C..1233,5;5AP1;E3EQ4LY5JU0?K#6B(;K%:I'=N2FS1AO;IV@JV;AHCIOTT[ZYaY[aWZ_UY]VZ^W[`Y^dZbi^gpalveozis}mvpxqzr{t|u}v~w~yz{||}|yuzosyfjp[ahQZbNXaQ\fVbm]isdnxir{mu~ov~pv}qw~qw~qw~qw~qw~qw}rv}rw}qv}qv}rv|rv{sw|sw{rw{rw{sw|sw|rv{rv{rw{ʷ˷ʹʹɹȹȸǸǷǷƷǷǶǶŶŵųIJòıñððòŲǴȵʸ̺νҽѻкмѼx{vvvoqonoottqvmlfy[pct`rl~ugwgwdtl~]lVdvWgy^lP_pP]nYfxZexXdvR`rS`q]j~jw]hwP[k.9A3>GS]k_iwnvYcqt|\eu!'-"'2?9FV#/6/6?cr;EV'/ *1=EO\`n~    + + '$  +" + $    + ".3 !%'"    !$"- % *"*%  "+5E/:4J]BTi+BW'?P&;K5E0;'6B-H@M_@WvPi9FV6@K@GX?Qc9Rf(=FMIOUNTZRX^U[bX_g\em`ltgr{mwpyr{s|s|u}w}w~x~zz{|}}|yuzntzekr[bhRZbOYbP[eVam\isdnxir|lu~nv~ow~ow~pwqw~qw}qw~qw}rv|rv|ru}sv}rw|pv|rv{sw|rvzrvzrwzrw{rw{rvzrvzȳǴǴŵŴĴijųųŴŴŴųƳŲıð¯¯ıǴʸͺξͿ˾˽ʽʽ˽ʽʽʽ˽˾Ϳο}}wzwmv}nlpure|f~jezNcyBYmQg|Ti^ogvsyixfuWgzTcvYh{aqUcuFUgIXjKZkYfxJVeGSbP^nXfw>MZBKY?IST\jQYdLR\LT^JS`=EP[brvZbt 0:&2 !"2?(5BM[ERa=K] +)4Cckz3;P.5<      '  +   + +0;=  +(12 "  $*,.-1 $ + (3;3HMVm&.5 $-(    !!/+9)8'3)5(;D8LbO+DY$DBFLYGN^5GX->O1?O6BU->Q#5F#0;",5$- *3%2;&2:,5::ADDPVRZcZdm`jsfpxkt}pwrys{u~v~w~w~x~z{|}}}}zvzoszfkr[aiS[cOYaP\fTbmZitboxis|lu~owow~qw~qw~qw~rx~qw}qw|rw}qv}pv}qw}rv{rv{rv|rv{rv{rw{sw{rvzrv{rv{sv{Ʊİðð°°°ððıŲűııð¯¯űǴʸͻϾ˿ɽƻĹ·øĸźƻǼɾǾŻĻļŻżĻźŻƽƽƾǿ}~}zwlkuxrhrp|uk_sSg{F\oReyUhK^sRe{bsgxfter{l|vqtt\j}DRbKYj[gz?M[KYkDQ_*5=LXhBMY4=G3D&-1!        $&)+G8=L:@Q5=N.:#-%/*5#/826<58B-6?29A?FMJS[U^i[fqbkugpzks}ovpxqzs{s{s{u|v}w~x~zz||}zw{osyfkq[aiS[cNXaO[dSal[hsbnxir|lu~nv~ow~pv}qw~qw~qw~qw}qw}qv|qw~qw}qw}rv{rv{rv{rv|qu{qvzruzrv{rv{rv{rvzưįį¯ððıűűűıð¯­ïŲȵʸͻξȽ廼ſǾĻýƿ|~ztmmryqolsvwnezXkRf{NauWi]oZlVg{_nm{n|ky^l^oq|cr9LZDP_[h|BO^JUfKUd8@LAKWFO].8@18@2=E6>F+6=4@H=JU(0nxU]l.</= 3? !*$+3R^e$ $Xao/2E  ! +  +    +%-% +   +     + !#$  -(%(F1?H8FPM[k)071J!/?y]dw)8B.<"  @LS9?K  +[bt*.?    +        !-'      +!",3&""(%+,::7Sa(1!$ +% ( %$). " &6 &  " &%1) +#,GK['/3#)$&"*.6%=I*4!1=(9E3=F468:;?DGLLS]U`jaisgpzmuqyt|v~wyyy{|}~~~{w{ptyflr[bjR[cOYbP[dU`l[hsdnxir{muow~qwqw~qw~qw}qw~rw}qw}qw}pv}pv}qv}rv}ru{rv{rv{qvzrvzrv{rvzrvzrv{sv{ȲƱƱưưưưǰDZDZDzDzȳȳȲDzDzDzƱDZƱưDZDzȳɵʶ˸̹˹ʹȹƸĶ~yvt~q{r|s}xz{}ºººſ|}}}rpksvimxwvni~g|hzYjJ^r_rWl>UeETgDSfR_r]j~O^sCSgM_o[j~`n[j]i{crt~o|p|`k~BMZJUd>LYDN\;IZ0AO,8A=GRFR`%07 +!*#2<2AM$1;DNaTctB% (  " - $ #. !     +  +     +     + %'3 - + "/+;/?)8"/(.+/19779::3;=5@J;HWAOhEYx;Sj2GY*9E".5'4=7AK6=>32.852@ACMVaR]h\bmbjtiq|qvrxt{u|x~yxy|}~~{wzqtzfls\ckR[cPXaQ[eUal[htenyir{mu~pwqw~qw~qw~qw~qw~rw}qw|qv}qw}rv}rv|rv|rv{qv{qvzrv{rv{qvzruzrvzrvzsv{ɳȲȲDZDZDZDZȲȲɳɴʵʵʵ˶ʶʶʶʶʶɵɵʵʶʶʷ˸˸˸ʷȶĶvo}hwbt]q]sV}oW}oX~p\t_ve{g{m}sw{}ļ~zuvvnrquoprvxg{g{btew`q[k[lScwPauRcxSezLZmScy`qjyBVi_ss|rbrhutsiwUaqHUcFS`,;C)1@RfL=@:54468@JSJRcHThAVq=Vo0GS+9?$/3,799D?AH?9::6:<=FPHR`JS\IQ[OXeW\e]clahqimuos{txu{u{w|z~{|~}zwzqs|gls\ckS[dPYbQ[eUal]iudnyir|mv~pw~rx~rxqw~rw~qw~qw|qw}qw~qv}rv}rv|qu{rv{qv{qvzqvzrvzquyruyruzsvzsv{ʵʴʳɳɳɳʴʴ˴˶̷ͷ͸͹ͺͺͺλͻλͺͺͺ̸̸̹̹̹˷ɵƴ²yl|btX|rMxkCugHX)2?"'+*29)5+  +"      #  +      *7%8G%,$  %!!#%&&/4&16!3C!?Z # +   +  +!/;()"&-&E\;GWF=CE69))-(/36DH9FL6CJ;LX6MX7JQwlEznL|qO~rSuXv\y`yc|e}jnry|ssjk|fizddzccyc]wa\x`]ya[u]\u]^v`czfiiqrxx~}¼x{{|vsllerogjkjj|qqk~fwYk[oYjYiVicsq~Vf|ObwNYjN]qWf{BUc6F'"2B1?!:K3;,7@)5?*3%183:9AHRELU>GO.?F1BL6ENDPY;JPSj(2<.4;*09(.!#(%063=DAHPLT\W`ecjmhosmsyrw|uy~w}z|}{x|rv~hms\ckS\cPYbP[dTal\hteo{js}mvpwpxqw~qw~qw~qw~rv}rv~qw~qw}rv|rv{rv{rv{ruzrv{qvzrvzrvzsvzsvzruzruzͺ͹̹͹͸͸̹͹κϼϼѽѿþ¿пμ̺ɶǴ±vzgsVzkEse/l^gXdVcVcUdWeXg[g]h_i_ k_#qe(sg(rf-sg7xk:wk=ynB{pG~rK}qK}pNpWu]vewn{wy{oq~dbv\ZqXTlUPkTMjPEgMAfKAgJCgJDhKDgKHkPNpVWw^b|fjkppxuwz|~|zyxvpjltif~mmskxpgzlbsgy_pP]r;Qg0FZ/H\WiJ]p5EV4HW*=O5FZ)6.;7J[4IX0BQ8JZBUc;LXQaqjqGRa=HU;DN09@4?HU]mGN[*4>'16 #.6!-9 (,#.7DWg *0229? '0.  + $/"-GVj% + +   +   + " +       (%) #       1:Lg.8G%%2   '(  + + (".$1'  (5'2%-!'127BAIX69:9==@EF>BG-;D/AN7JYAOb8HT7AF?GO3DV4AR4=I/7D!+5%+ (#*!(.&255BFFSY[afelqntzsyw|x~{}}|y}qv}hms\dkS\dOZbQ\eUam]iudnzjs}mvowpw~qw~rxqw~qw~sw~rv}qv|qw|qv|qv{qv|rv{rv{rv{rv{rv{rv{rvzruzruzrvzϽϼϼϼмϻϼϼнѿ¿Ͼͻʸƴ°}ylrZzjCqc2k^fZ dVbVaUdWg[h\i\j_j_j`kamcmcoencpb'qd*re-rf0tg2ti5ti:uh>ugHvhRzk[}rctk{w~}txmp|deu\XkSPfNJbKD_G=]D7ZB5X>7X=6W<3X<0X=1X@6]B=dFFgLOlSWqYbxaqn{zv|z|{pfuqkg~q{ph{nkok}Ui}[ofvRezOcx/A6I3EV;N`5DV-<7IX*;J2?0>0;;JZ7KZPezTi|=Q_EVh]k~"1:.@RO`tFS_%+9FQ9DM#/<'0:G"%,8F)7D*6?!,0"-4>:IY  '.2+39;KR%)"- HHU,   + + +  +  +    +          + )*6"*'                 &/#+3&+2-3;3:E#&&33,BFDRS\>FV3ET7DV8CS,7@4@G:DN->N$6C(7C)4A"+9"5>+7% (,1,AN6AO#*#.4#/:$+5D )6B"9 -39=IS  LWe         * +        + +$ - . "1 !- "  + +  +  +      + %()3>%/8-:"."")+B@BFHL;>E7>GNLV^Yakfluks}rxtyw{y|}|y}sv}gmt]emU^gQ[eQ\fUbm[itcozis~lvnwpw~qw~qw~rx~qw}rw}sv}rw~qw|pv|rv|rv|rv{rv{pv{rv{quzrv{rv{rv{rv{qv{ÿÿ¾¾¾½¾¿˼ɷij{tqdzlOre>nb6nb$k_i]h[gYgYi[i[j]k^k_l_nbnananbncoc(pd-sg+pa+n`.ob0oa3o_8o_Q      + + +       +'  + +     +  + !)> +/          +     + +  +          +  8G   & # !!)+!"!")4+CNBWbRezWkHWh?DLBO[$2>*  %(0-5<8@DDJMOW][bgciphnuiqxrvzv{y|{}z}x{ruzhnt_fnW_iR\fP\fUbm[itbnzhskvnwqw~rxqw~qw~qw}rw}sw|qv|rw}qv|rv|rv{rv{quzqv|rv{rv{sw|quzru{quzqvz¾¿ÿ;ɹĴ}wqe{lTvfFqd;pd)l`i]g[hYfWfXhZk^k^k^l_mamaocl`l_$n`,pb1pb0pb2pa4p`5p`8o^;p_@q`Er`JraNraQsbUud[xe_zhd}jknomqmrmtktip|epzcoy`mv\gqVemRbjOYdJR_FS_FP]CMZ>EW:BU7Tj,8)>M/CS!4B*4=&0?$0Ob$8G!*)#)!#!'%#&).69;CHHQWVZd]ajcjrlpvsw|vx~xzy{vyqt{hnt_emV_hQZdQ\fUbm[itao{gs~kvnvqwqw~qw~qw}rw|rw|sw|sw|rv|rv|rv|rv{rv{rv{rv|rv{quzrv{rv{rv{ruzrv{ʺŵzpq^{jOtf>ob0k^h[ fXfXeXeXhZj]j^ +k^k]l_na"maj]j\)m^/o`9reLZ/9?&( +  $ ""%. + *-& &.7Zds$* $" ?JU &!  +     +$  + +# + ) +*      + & $  % +% (5 + +  + +  + +  +     + 12/DCHCMWGYhK\aHZgMAO_EUd:K_+9&0 $..?I&.*9EBRc*1)0ELQ8AG-7=$)2   #1 $-,5?  %0*4(1GR;L^@PdHOU8GP6L`7M`JS3GV +  +  + &"JL]     + ! "   +   +   +     ! ' + +,$ + "     + +*1%   & +    +  #4 D' 1$M73VXZKKS&&)%*4#*5%* #1?*=M6CDM`uJa|7Pg;O`2@G";C-DR,@N+4-5"(*"  +#$17;CIJPUX\bcflimrkqwkpvels[ckT[dPXaP[gUbo\iubo|gskumvovpwqw}rw}sw}sw}sv|rv|rv{rv{rv{rv{rv{rv{rv{rv{rvzrvzqvzquzruzruz̾ʻǸĶuwczmPse>m]7k[#gWaS `RbTeWeWi\fYgZgZhZ"j[+k[2l\5kZ>m\Bm\Fn\Ho\Ip]Kp]Kp]Nq^Tu`UvbTuaVvaTuaUtaZvb_yefkhjpmvo|p}q}o~n}l}k{iygrzclu\gpValR[hM\gM]fLZcLW`KU^GR]ENZCU`K^iTgq\oxdlu`ep]co[bo]bp_arb_sc\sb[wcehso{Ķ˼ĻǾȿ~|{y~{vtu{zy}r^nPcxL\o=Pb@Sf_tUiMg8M^):J>M`T`qPZf$39,:A!. $#0 -&1  !JWc  !!  + ))0%0<      "   + +      +  #  +   + ! (           +        + + +  +  + +   '1!08=INSfBUc9L[:K\(:@.2*DU>Wq?Uq7JX;KG941&    + ' -.2=;EOQW^cejpkpvkowels]dlT\eR[dT^iXcq]iwbo|fsjulvnvqwrw~rw}sw~sw|sw|sw}sv|rv{quzrv{rv{rv|rv{sv{ruzruzrvzquzquyrvzʽǺĸ|loZwfFo`4hW"cT`S`S_SaUaSeWdVdVeW$fX'hY0k[6k[7jX?lZBmYFnZIo[KoZPp\Sr\\v``ycayc_xcazed}fh~fiikloovr|ux{{{zwuro{jv}dlu\bnU[iP]jQ]hPZcMZdNZdNYaKV_IZgQbnZhs^kwcjwbft_dr_esbdsbbtc`sc^scYr`Xvab}gtr{Ʒ̼ĺȽȾɿ˿˿~}~z~~}~~w{xs~x{|tuyq|}tgylSjRinPavizK^n2>M(2:DS\JWf$9G  &+;  *&0,<  +  %1(4+7 ,6?BIP.5;  &/  (2:  "-!,  +DX\  +   +  GKV +     $" $ # #    # + + + + +!  + + +            '%,QaGUb[jy3DP?O]?N_2ES#&/;Uh}*@U -   %   "!,%"0". + +".3KT^+4:",4&6@ ""*$6? # +  !,@EQ   (,  /4<        +   +        +    +    +    +  +  +#!7F+6*3!&$//BJPTXa_dlckpfmsdjs^enU^hS\fR^jWcp\jwcp|fskumvnvov~qwqw~qw|rw|rv{rv{rv|rv{quzquzruzquzquzqvzruzruzruyquyqvyruyĺ|vg}hMpX;iT*aM ZIYJYI[K[K`P\M_O$aP*aN2cQ4bR5cR7dR:fRFjTMlWUp[_vbfzek|hnknkqlvp}vxriiv`ft^anW]iSYdOT`JQ]IQ]IUfR]mXfs`dtactbcvcdudevefyhg{jeygaxfZubOqZLpYWv_li~o{²ɸνŸǻȾ~z}~~y{{}{|}}w{wvw}v|jYnKe|`v^rexZnEZrUgL_sAUidy`r`rCXi;QaWm/=HHU^9FL-5 +:M':J*6 $0CO.>J7GT)4   + (%0&+71@    % 19@$09+8!2@&1/BR%/)+)&"(./?D  +  *2 + ;BI    +  +    +       + +  +  + (      + % #  + +   +  +     +    "-7'8H&5A+9H)5A$+*/>M`/>L+3 *4B/=$2 $   $%1'9E8HTJU^U\d]dlbhqahq^dnX`jS]gR`kWdq\kwcp|esktlvnvov~qw~qw}qw}rv{rv{rv{ru{quzquzquzruzru{quzrvzrv{rvzrvyquxruyruyɾù{rf{bWqYDgP6^H,[IWCT@TAUCXG#\NZJ']L2`O2`N3_N4_M7`NGiSQnZZq^auafxdl|ipkvm{sv}}qn{eiwafs]_lVXdOR_IN\GL\GQdOYjU`q]csadvccvc`tcawebxgbyiaxg\ucVs]JnXFlUKqW]{bsjs{ijʹϾ³ĹǼǾȿȿȿɿɿ~}yyy}z{~z}z}}~xyzud|l|ps{{LaxH]tBZo>Si^tZpVi}Rfy8GX0DV?QdYhymzARc(;M%7F0ER@GM1>I'8F +*6,;)6)?O1>.?8L_5JY:M\!6C+6)4,6&1" + +"0.;  (05BK(:E)4  #0:  + 18? ( +  (%* 09;   + +         +    +$&   +          +  (*:Pm&2     , #6+4517678=X|&3 !   $      + +   +-54>I4=H8CQ/4>"'."),1BLZ"''" +$2<&& ) +$ ,4C(AQ6L[DQ`NXbTZeY^eW_hT\fP[dP^hVcoZisanyer~jtkumu~ow~qw~rw}sw|rv{rv{rv{quzquzquzquzquzqu{quzquzquzquyqvyquxruyquyɻȻʽʾƾ¹{{ljx_XnTPiQ>aJ/]D"VBU@VBVDUAVC#YG.^L-\H0]I2\H4]JAdOOmW\r]_r^dvck|hoivn{twztkjxcft__mVWcNR_KL]GK\GM`KTfR[lX^p[at__u_^v`\va]vb\wbZvbSs]MpYDkSBjRElUQt^d}bwlu~Ƿͻ¶źǼǾǾȿȿɿyz}xwz|{{}xp|~}{rz~z{jhmvZn_tlvbpK_rF\n>Vh8M`WkkpUewP^oP\lObsq[o;K\#+Xk}2FP4K`1@N  /B!'4bM1ZGTAS@S?S@UB'YE%XD(YD,ZD1\F>aKLjSZpZ]q]ct_iyel~hskzrvyqmzfft_\lUUbMR`LK\IH[HH]IMbLSgRYlWZoXXqZXr\Xs]Wt^Vu]QrZIoW?iP;gO;fN?gOFnVVu[i}e{mxóɸνøƻƾǾȾȿz~}{x|x{|w}zy~wy}qry|j}~tnc{nmCYpGaysi}fw^q@UgBVk=Qc.;(CW)@PVexfs\hzFZiGYjVi~QcqTfx29Xl}BTd(J%"(    + "":AH    /:@  +!7G(8   + +    ". +    + +       + +  + + +   ""       +     +    +    +   "+$-%1( +  +" '/4>1;%2 "/ +!/#2(;1F :N&=Q'DDLQKU\OZbR]gTbm[it`o{dr~gtjt~lt~mu~ov}qv|sv}rv|qu{quzquzquzptyquzpuyquzpuzquzquzquzquyquyquyquzµķƹȻɼ˾ɿƺøszmv}jds_TkSDaG/WA!R@Q?R>S>T>S>T=U?(ZC,ZD8_GDeLSkSXmV^q\at]gyco}htn{t{~{vn{ger][kUSbMO^IK\IEYFEZFG]IH`LPhSLgNKiQKkVJjTHkRCiO>hN;gM8dJ6cJ5bK6bJTg8QgdxdxavL\q>Tf5HX+?P$8I2F[6L^M[P^nIZg;Q^>N_,?LQapBPZhxBTb4K^*?P 7E *%0;)6!.6&18 !* )6( $ ! ' " +(4-9"+&2$   %08%. +   +'35 + + 7CF   + #-A +  +  + + * %  + %#2 +      +     +            + +  +   +)1+:L+6+ + '"-  +&*"9?)?E 5?/?*9 %4 # +-0F7O3F,7+6KX$+64CRHVehsYn=Rh/DT/<#0;0= 5B2>&4;*4$/  +'#.#/ + !,%0 #!, -   * " +!(.#   #$.6  + *+:   "  + " '   !"% +("1 +   !   + +    +     + + + + +     +    + +  + (49(6A#0:"&*/O[%:A )  #+:6D/<#1 #2 #2 (' - %7 &:- #.$6<;DIFKMFOUKT]O]iXdp]jvcozes~huku~mu~ov}pv}qu{ru{qu{quzquzptzquzquyptyptyquzquzquzquyqvyquyptyquy¶źȽǿǽĺ÷vqw|iiua[mXNfN=^F(T:L5L5L4 K2 L2 M6O8S<-\F-X?4\C=_GHdLLgNMgOTlT[r[hydmkwq~{}wul{i_m\TeNM_HI[DDW@?V>=U=]D6ZA6[A7\C4[B2\D2]F5]H5]H0ZC-Y@*Z@(]A4bFJoOa{]zhuĴʹϾ¶ŻǾȾȿɾȿȿȿȿ}}}z~{|}{y}|z~|qoa{vezojsZng{cyf|jzWl[nQcuk}Pcu.=%28L^'8A#7H,?P#3@1>K/?MDO]3CQ/7DHCOWJ[eUboZhsakvcnzeq|ir|js{kt{ou{quzquzqu{quzquzquzptyquzquzquzquzquzquzquzquyquyquzptxùƼɿƾƼżĻĺùwpu|gjvc]mYMdN=]E)U9J1L5 +H0H/G.H/ L4P6Q8%U;1[D2\E8]G@bJHeNLhQQmU^u]h|fnjvq{v{rqfvd\lWPcLK^GFZB>T;:T::T<9U=:W?;ZA;ZA9Z@1X=.W;0X>1Y?0X?0Y@1YA0Y@/Y?&U9$U8'X5`BGlOez]}gxƶ˺ϿúƽȾȽȾȾȾȾǿǿǿ{|{zz~~|~v~|zwuhmojeynczKd{Mbt]vgyH\n:L^Mc{Vkiw@KW%&16FXG[k7I[1BR,6,?M9IW6DM+4'7C ('9I);J'3%7F9K]/ES/CQBS_-CTD=LRFT^L]hTboYgt]ju`mxanwcowfpxjrzmszptyquzquzpuyptzquyptyptyptzquzquyquyquzquzquzquypuyptyúĻƽȿǾƾƽƼƼżƻżûºv|osyejub[lWKbL?^E+U:H.C*C+D,E.E-I1 M2P6S:U<$W>*ZB4\G;`J?dMGiPRpV`vbd{gjkmmrq|yoo_r]ThQJ`IF\EEZBCYACYC=V>8T<7V=7Y>2W<.S9.T9,T8*R6&Q5&Q5*S8+T9)S8'T8#R7$R6(W9.Z;1Y=3^>NmNobnŶ˺ĹŻĺǽȾȾȾǾǾǿ}|wux}{vy~}|}v~g~pezg{`u\rTkMe{J^r9M`0G\8Mb"5B.DTA[oZpo9AK #3@-=I:GW7DP(7@,>B8IW:Oa#;I1JZ&:H3@1<)5'6B+6&>O*?PCYp$7E(5($,1B + & 0@5E4D % $-& *  ".#. +   +  #)   + '#BMZ +"   ,7$-  +  +   +       + "  +    +    +    +    +   +    +   +!  #.0*-$,$"* %,$%(#(    ""  *6 9O(>O1?H;FRFR\MZgTco[ht^my_o{aq{cq{eqzgqykt{ou{pu{quzquzquzpuyqtyptyquzptyptyquyquyquzquzquyquyptypty|ux|knvdep]UiRH`I;\E(S7F,@'A(A)C+C,E.J2L3 N6Q8R9T:"V>(X@/\E6`K@iONmXRr[Wu_\xde~lnqxyy}iyjUkWHbKA[E;X>CZDUg)1%3#/:I[,: +&.: "2%G^-=4E+BV5F*BW@Vi8Xi(0 +'0(1 +  6J]#3?3B(4%03F '%/$YC$^E)cK1iR>oZIuaS{e`lgsmxoyvz{}}w{msezaSlRE_L=YE6U=.P9'M6&K3%I/(L2'J0%G+%H-$I-$I-"H.!G, H,G)G*G*H+H*I)I*H+J/I.K0 O5(R8/Z-Mh,Nd-LbA[uKZ/=8K&CX'C0R8+O8$K4G+E+F,!G,!D(!D) E*"H,#J/D*C'D'F*D(E(D'D(G)G+H,J0H-L1N3'V:' <(7!8!=&9#:%<&A)A)C+E.E/J4J4K3M5K4P8Q;O;R=T?YD +\J^JbN(hS3lX:oZCq_Jr`OsbQsaQr`Oo^NlXIeRCaM<\D7WA4T<)O5I1E,D)B)A(A'=$?&@&?%?%?%?%A&D(C&D&B%C(D(E)D)E)F* F)I*Q3/\?GjM]u\k|_wdpz´Ķƹʽþ̿̾̽;Ϳ»¼ýľÿÿſļ»ºúûŻŻĺĺĹĺƻǻȽɾ~~~}xtm|pfk}Qd{D_x6Rj1I^7K)BW.K`9Od;R3H'<-.C2E)?S!.-A0D4I`4L`AVl,FX2Rb!?R7F*; *=P9I3C=Q)EZ7L-?':P.GZ)?L1?J-(N;H1!J7='7"5 39#7!:#:$>' +J3F-C*D-G2I3K4K4L5L6K5P:O:P;R<T?VBWBYE\J^L"aL+dQ5eR9gS"@$@#?#A$B%B& A& A&E* C' D(L/"U:2`DDhITqSdx]reo|¶ǻ˾ȼƺƸŷŷŷƸǹȹɺ˻˽Ϳ¾¿ÿɿǾǽżĻļžƿſŽûºþſ¿ʿȾȻȺȹʺ˼;;ͽ̼̼ͽξ¶÷ĸźźƻƻǻȽȾȾȾɾɽʾ~~~}{{riph~\q #!,0C2C % $7G0I\.BT)CS9Ti9Nb*;L'7B7IU#:E08  +)3&1&4)8  !+"/=*8B,:C"+1     "   %%3 ++) +  +  ( ;IS)52A. ;CI       + +      + +   + + ! + " * +  +   +      + +          +,=$/    !) %'(-035.=@7HLIT[W`k\fq`jqdmuipwlqxmrynrxosxptyqtzptyptyptyptyptxptxptyptypsxptxpsxptypty=I<TAU@WA[E[F$\F'\G'YA)X@#U> R;!Q7 P4K/D*A( ?% <" <"<":"7 6779: 9gIMnQ]xYpfrĺǽɿǾƽƼŻżĺù´öķƹǺǻǼǼǼŻĻĻż»ºº´µõĵĵôĵƶȹɻ̻̼ͽͽ;Ͽ·¸÷Źǻɾ}yrhlt_xLf4Rm>[wZp5Of-I[-?K2@R!.@(3 +!4D/@(  +    $* +  #0  +!0 + #ES^&.&1 # &-5!(        +     +   + ,   .>5G &2      + +     +  +      +$"   +     &*442CHFS[V_j_iudmwhqzms|ou|ot|ot{otyosxptyptyptyosxptxptxptyptyptxotxptxptxosxpty0A3.?2->1+>2*B7+D;)E:*K@4SI?[SIcZQhbVkj^snctqbspcsnaqi]pgWkcQg]OdYJ`UKaWH^SLaUMbXL`VF]TA[O3F:B5A2C5D7?1A2B4B2@/ =,<*:':':&7"33 38!;$;%@'B)C+E,F/I1I2I2I3H2I3J4L6L7L7J5K6M8N8O:R=S>O8 P:P:P:P:Q9N6K5I1 F- +C)?&=$; +<#7 467 6;!998 7;!= ?" < : =!>"B%@%A& +@$@$J3 J.G*K.R4 Y?+_C5bJEkP]y\rmxôĴĴôĵŶƶǸȹȹȹɺ˼ͿĹǼ~yrl|sazPi6To(F`!2*7K,I];S%69O.Ia !19Q .E2I/F(3D . %5>Q0Md*H[0A+8,Ng%DV (+;%@T4E3F.G]+81I],Nf$?U2C-;0@,< 5G   1$%3*L`>Yq8Nd$/?.<$:M*CZ)>R&;M)2   + +")  ",$+    +  +7HR,5   +%-/   +  +      + + " +  + +     * %     !/&4 +"  +  +    ( &6     + + + +  $        '  +  $(%6>7HOKVaV`k_hsgoxlr{nt{nt{mszmszosxpsyosxosxosxptyptyptyptyquyptyptyotxoswosw$9-&;.!;.!:0;190@7@7F?&LF5ZR7[S=^YCb[Fd]Ec\Hf`BaZ?^W5?6@5E:A5?3B5@3A4C6@2B2@/ ?.=+<*;'9%6"5!36 7 8!:#=%@'C)E+H/I2J3H0I3I3H2K4K4K5J5I3K4J4K4J4M8L7L6 M7H0I1 +J4 K4K3I1 G.B(>&: :6 9! 821 2 +3 577 7 8 9 7 8 7 6 9 +: +9 +;!; ="?$@&@&G+ O1N0Q3V9!ZA*^D:jLY{cgjtt}Ķǹʼο¶źǼȾuplvle|Tm9Uo:Vo;N=P1F0F *=&F_/Og9Vr%;R8Q .C9L,=);+<)9.?%G^6Up6Qk5F +"2+<3A'3!0('65Wj8Si7XnMjC[q5L_4C-BW.<'62C6XrCbx(/$)D>D= F>E=!E=C;B7?5?6?5>4>3>4=3>2?3?3C7C6B5E8C5 A1 ?.=+>+:&9$6!6!7!8!=&<$>&A'B(E)E+G.H1G/G1G1G0 Q; +R<I3H3G1J4J4J3I3J4I3H2H1I0G/E/F. +F,M8J3H0@':73 +58///02 4;&@) 8 743:: +6568;(G\0L`5PiBXoETg1B'3'62C*7&3 6I"7H*8CYo;I[$/@%3+  % /:    +  ++ $1"6H". $  +   &   +$/7 %'5"    !, + + !#   +       +  +     + +   +  +     + "(-    ")6 *   +  +&-#8:6BHDQXR\b_eleiphlqinriotkpwlpwnqxosyptyqtyptyqtyqtxpsxptyptxosxpswpsw2'4(7,6,:0<3;4>7@:D?F@FAHFJFJEGDFCGCD@E@E@6WW8WWC; D=C<B:C<B:A9B:@8?6?5?4<2<2<2>4=2?3?3?4A6B6B6B5 +A1?.=,>,;(<(9%8!8 8 8 :"=%C(E*C(C(C*D,D,E.F/G1L6K4J3F1E/G0G1H1I3J3I2I1G.G-E-D+D*C) D(A'@'; 9720/.++,/ 46: +4 321 +5 7 526 99="?$@%@%A%F(I,I.M2P4Q5P4S6_B:oURwcbnosww}|~~~}{xv~t}p}kzivfqa|r_|r^|r]|r^|r`}rcsgxm{s~x{~{wqkyg~sc{oaxn^wl^wl^wm_xnazpc|pd}pe~qe}qd}nd|me|lg~olqrsyu|w|z}{~|~}~}{~y~v~u}s{tytvttuqxo~qqpnoppsxxzz{}}ùźȼɼȻǹŸŷȼ}iqld{KgJd9Zy@[ 5M2Rj3C/F3L+A!4 -C4H^ '= )<@[$F^#@T5OeCc*Oi,Jc$1?*EZ -*84F$10D5Pj9GUC\q7Vl7Sj)BU # 3D,<  !-$1 ##1 /$ +1>*5".(2%7E$4A")     '' +)+8#,          +   # +% "  # #  +  %  + /#4H  +    # ( +  +    +       +   +( % ()28=O +  +  +  %%29$*    + ((2#387EGISXZ]b]bg`fkejnhlsjmuknvlpwnrwosxpsxosxpsxqtxqtxpsxpsxoswpswpsw1'6+5+6-!>6?7=5>6A;E@GAGCFCGDGDEBFCECDAC@DAD? FAB<B;D>C;B:B:@9 D=A:>6>4>4<2=3<1>3?4?3A7A7B9C9C9E: B3@1?.=+;)>)<'9":";"9"9"<%@%B(A&C)A(A(B)B)D+E-F.F/F/E/F/F/G0G0G0I1I2J2H/ +K2 J1F,E*E*B'>$;75 89 1+,-,-. +04 3 1000222 3 49; ;!< >"?# C'G)F(H-L/N1Q5P5R7V;_D8jTIq^Zwgc{hh|lpsxy~}yxssoq|mp{lq{ls|mu}ny~q|rvy~~wp{kvf~rc|qd}rgulvkvhsgsd}rc{q`zo^ymZvlWskTpgNlcNleMkdNleOngPmgNmfMoeRqhVtjYxpc|tgyh|lpon}kygte}sc{r_wnWsgTobPk^Nf^Ld[KcYLcYNf[Ph^QjcPj`Nj_Mj`Kh^Kh]Li\Pj]Pk_RmaVobZtd_wgbygezlg|og}pd~o`}nYzmUwkOuiNujStkUsgVseWrcZq`^r^`r]aq[boYdpYhrZks]mv^py_x{d{}f~giijnruuttw~ud}xldy:XrA_{#C\=W 1I,B*H`8O>Z9R'<5M.F]+>2G=W3\}Ck:]u:\u/Sk'G_8J3E:L*EZ;_z&CY %"2#04C2Uq=\t'.%/))6 ,'2&BO9O_!9H'3(4'3  *  %(6("-(>Q0FZ+?R$6E)?P/BW&:M#7G&/!) !- %   0?(;K!4B#  +  +   +    +     '"- " ) '      + #    + +    + "-'7 +    +  +  +      ' " + +  +   +    +   + !(&.  +   +  '/$7>8DKINVSYa[ahcioglqjouknvlowmqwnrwotxpsxpsxqtxpswpswpsxpswpswpswpsw3)4)7-7-90<4=6>5@:B<HBFAEAEAGCDAC?B?C@B?A=A=B>C=C=B<B<A9B:C<@8@9@8=4<2!B8=2<1=3>4@5@7A8D;E;B8C9A3A2A3B1>+=(;&:"9!9!9!8!<%<#?%?&C)A(A(@(A(D+E,F-F.F.D-F/D-D-D,G/I1J2I2K4K3O7G-H,F+C'?#:74230,() - 0 +/ . 1 /23/05 41 +44579; D)B' B% +E'F(I.K/O1Q5Q6S:U< W@^F,dP7hUDkWNmZRp_Yuae{jmrpws{v~v}v}v}tzm}shxmasc_qaZn_TjWWkY\m[an]am]dn_eqahscjuelxhpznt}suuwxuwrvo~tjzpbvjXqcRl`PkaSmdVpeXrgWsiWrhUrfSodSnfSngRmgQlfPkeNicLfaKfaLgaKgaKgaLjcNjdNjdLjcLjdLjdMldQngRrkUtmVtkWukWujWtkWqgUoeUndSlcRi`Ph^Me\KbZJ_WJ]UJ]VJ^XJ_XJ`ZJ`ZK`XJ_WI^UH^UF]SE]RE^SE^SE_SEaTEcUIi\OnbRpeRrfOrfLqeDoe;j`6f\2c[2bZ5d[7d[:dZ:aV:_O:[I;ZEXn4Sg2CT& + !*:K/&0.=*CW'=R4H,9+ .<"-(8J!0=  ' + +%  +  +'/E   #2      +  +     +      ) ) +     + +* !/ +-      + +         + +      +   + )"5:6DKFOTSYa]bjcioekphkpjmslovnrwptyquzptyptyptxptxqtxpswqtxpswpswpsw2(!<1:0:/<2<3=6>5?8B<C;E?D@C>C>B=A=@;A=B>@;@;@:$GA0ONA:A9B<@8@8@8A9@9=6>4@6@5>4?5?7?7A9C;D;E;D: C9C7B5@2A1?,=(;$;$8778!9"9"<$<#>&>&@'?'A(A(D*F,G.H0E.C+B+C,E-G.I1P;K4J2J1J0H.G+F+G+G+C(8741.+** / 2 +0 +. / .:!#A+4 4#B/;! 41255: +6B; @8 B;C<B;A<?9?9?9?9@9?9A<?8C=$HDA9B;@9?8?7>6?7?7=5=4<3<2=2?6?6@5@8B9D;E;D: E:C7B5C3?0@-A*<%;#8577779!:!;";"=%?&?&?&?'E+I0H/F/E.D-E-F/H0J2 YGM5I1I1J0H-F*E)G+ D)E*8631.,. +0 06 2 / . .5"@+:% 1 3 2 1/245897:@$@$D'F)I.L/O1S7V;V? +ZC[DXBWAWBUAT@ R>"P<(Q>,T@8ZIBaOIdSJdSGaRD_PD\J@XH:UF6QA5O>5O>8P@9PA;RBAVEDWFASCDUDFVFBUDDVEHYIL]PO`UQbYOaXPbXObXMaVK_VL`XLcZMd\Ng^Ph`Oh`Og^Ph`QibRibRiaPgbOgaOgaPg`Pg`Og`Ph`PhcQibQjcQjdPjdNicMicLhbNicMicLjdKjcLjcNjdNjdOicOicNh`Ng^Mf]Nf]Ne\Ne]Mb[L`YK]XJ]YK^[L_[L`[M`ZL^WL_WJ]TJ^UJ]TI]TF]QF^RF_TC`U@aW?dZ=f^U%Ic9K-=3C1B(3)>M +!*5E[l$5A +(7G6CP#* + %)8 $  (8H@Wo3GX 0> ,:% ) %.( (  *7 3D    + +       #    +  + + +  +    + + * ( +    +   +   +    +    +      + +   + 072@IALRPX_]chdhmhkphlqimrjnrkoujpwlqwosxptyptypsxpsxpswpswpswosv4*8.:0:/:0:1<5<4<4>7F=#LD @7@9=6>7=7=7=6>7=6=8=7"GC>6?8@9@:>7?8=6?7?7>5<2<2=3=3=3=3A6@7B9C:D:E; D9E9B5B3A0@,@*<%:"65334479 8:!;";#=$?'?&C*E,E,G/F/G/G/G/I1I2K3I0J0L2K1K/L1F*D'A&>":8 6 51,, 1 . .-- / 022 /,+////14 66668; >"C'I-M1P3T7V;W>XA YBXBXBVAS?Q<M:*UD1WH#J9#I9)N>-Q?1S@/Q?,P?-O?.N>2O>4O?5N?4M>7N?6M>6M<:O>=P?8M<;M>=N?:L=h_;i`5ia0g`+e_&c^$b]#b]$b^#a\#^Y&\W*[T,XP.VN0RG3QC6QC8NA;M?:L;9K:9K:9J<9K<9L<8L<8K>6L?7LA8NC8NC7MA7MA8NA:PE>SICZOIaUOhYUn_[sbezik~mporpsotpqoonm|kjzifyih{nmqmuhzr[qbZqelvuUqi>`TNgb`wf~}|rjhkQiFay#CZ%E]+Kg +1J3N 6Q4M!Nm>WB]Eb%RrMk=W *=Ca}@U@a AV-> (6;Zt?a}G^r"9H-;DY.Of4I#:R+C[(BX3D'BW2?%32C/?0?)>O".;8I;Pc4HS$3=#=Q_, /=1?(  (13I[-@P $.,?S,7 )  (7 ,&  + #%/'6   +  %2 +     + +   +  '  +  !    + $ +&(   +     + +  +    +  (3$9G1CIEQWY_fbfngjpilrjmtkotlpukovlpvnqwnrwoswpsxptxqtxpswpswpsw3)8-:/@69.90;3<4=5 =6D<-VT@6 =4;4=6:3<5:3:2:3:595:6<6>9@9=6=6@9>6=5<4<4=2;1=4>5<3=2?5?6@7 A7 B7 +C8D9D7A3A1B1>*=(?): 531233577:!9 :!=$ +H/@&B(D+K7F.F/G/I1J2O9M6M5M3M2M3M2K0J/G,D'B&>#99 62/.+ /4! 1 +0 / +. . ./0 ,*+(),.3 +547879="C&H+O3T8 W:[@[AYA ZBZCYCV?S>P9L6M8#P<F4D4E4"F5-L>+K<&H9&G8,I70K93L;4M=5M>5K<5K;5L:9M;:L;6I97I88J89J:@PBBQDFSGGWJJ[OK\QJ[PL\QM]RO_WO`YN`XNaYOb\Pd\Pd\Qf\Rf\Re\Rf]Rg_Rg^Sg^Sg_Rf^Rg^Qh`Of^Pg_QiaRibRidOibNhbMibOjbNiaMicMicKh`Li`NjbPicOi`Ng^Nf\Nf\Ld\Ld[KbZJ`ZJ`ZJ_[J_[I_ZK`\K`\L`\La[MbZL`WL_VJ^UKaVJbXJcYIdZGe[Fg^Ag_?ia;ja3ia/hb+fa&d_$c^"c^"a^#`[$^Y'\V*ZT,YR-XP0WN5VL9THMA9L?6L?7LB8MC8MD8MD9ND:PE;QH=TK@YOD^SIcVKfXMiXOm[Ro\Ur_WsaUsaSq_Po]Om\Nj[JfXHeXGdXB_S=ZO>^RMi`YspKha<^RHfbSpnfxtuljg]u^vEc}:Wo*H^>Y$E`.E@\4M 8SB_!F`!Kj9S!C];RA]>Y#DY>d7]zKj0Ro(Oi%BT/FX,<4I[Jk(J_&F_+<6J%2"/ *9$D^%BU"EW%EY@U-=' '8F.H[5A2J^LcyI^tLf|Sp9Re3J]5Ne:Qd4>   #%GDLVRY``bgfjqjmtkoukotkoukoulqvmqvmrvosxosxpsxpsxpswpsw4)9.8-=28.91:2;3 <3A9 <4?7 <3 ;391=48191917/:3:4837294:4A;=6=7A9<4;4;4:3A8<2<3=4@7<2?4>5?6A7 +A7 +D9E9E8A2@1?,?,<(@)?%541012345<#:";#<$C+?%B)C+G0F.F/J0L1L4Q;Q9Q9N4N3N3M3K0I-F*B%@#>":54 3 0-++ +. +/+ . - . +, ++ + +* * ('& ' +* / 025779>"B%I+N2 S8Z@#cN]C +\D ZCZBZCV>R:P7M6H1G3C1A1A1A1#E4$E4#D3%D4,G71I92I:3J:4J94J95J97K9:L::K:6H77G69H9;J:=K][>^[EecMllSps_z{{ri{xlohgd}]tZqA\v@Zr2Ur3M$Ha@Z7OA]A];T.Pn;O#Ji +/B+Le 0D1Vw>NCb|"?S:L=_{Dbu/>(EY1Up)63CQj'>O1Ph+Qi1C,;!@R3Un"DX$E[-K`*=R#21A3C  +)*6$&CZ=_yOfUo6Sd*8F$1*AQ:Nc(8I0<    !)5))%6F")!+$$3(6 +  +   +% !  + )    +  +$     +     + +  + , *!0          +        &+1*9<9EDNRWW]d`eneioflrjntlpulpumqvnrwnqworxosxpsxpsworv5)6+7,&C;8.91:1;2 +;1 +:0 :2 :2:1 8/ 6.6.5-5-7/7/;4936/606081>6=691:2;3919181A8:2:2;1<2;0=4>5>5 @6@6B7C6D5 +K>@1>,<);'9#87520001249<#;"=%>%?&@'E-D,G.I2K1N3O6Q:R:S:P5O4M3L2J/H-E)E( G* A&931./,))**** * * )( ( ( , * ) +) +( +) - +/.1369="A%G(L. +S8 U9 [? \AcKcM Y@U> S; Q8M4K3F0C.@,?+>, A0 A/!A."A.$B1*C2/F61G73I85J95J85H67H68H66F46F47F59F6;H8=J:?KEQAHUGIVJJWLLXMMYMMYNL[PM[PM\PO^TO_WP`XP`WRbXScXScYTdZTd[Ue[Uf[Uf[Tf\Tf]Re\Pd[NcZMb[La]Lb]Lc[Md\Md]Ld]Le]Lg`Mg_Ng_Nh_Pi_RjaQiaQiaOh^Me\Lc[JaZI_ZH^ZI_ZH_ZH_ZH`[G`ZG`[H`[H_ZH_WH_VH_VIaWKf[Lh_LldJngHohGohCmg>lf8mf3mf.mh-li+jg(hf$da"a_"_\#]Y%[V&YT+YS.XR0XQ7YRWh&BDJMQX\[ag`fleiphkqknslpumqvnrwnqxorypsxpsxpsxorw6+6+8->38.8/ ;2HD +:0 +90 :190 5- 5- 3+2+1)0)2+6/4-5/3,4,4.60&FA;56/7/8091917/8/9/;29/9.9.<1=2 >3 @5A6B6D6D4F7@0?-;'<(8!7432101012488=$=$@(B)C*G-I/M4O5R8Q8Q8U;T;P6P5N3M3L1H-G*E(A$ A& >#40-*,)*('( + . , + * + *,- * ) ( * +) +- -/237<>!C#H(N5Q7W<Z@ \BbL +X? R:N6M4 J1H0B-@+>)<):):);)<*%A.0G9.F4.F40F54H75H64H65F45D26E36D17E37E3:F69G6J;CN?EO@FSEITIKUJLVJLWKKWLLYMLZNMZNN[RN\TN^UN]TO_TQ`URaVSbWRaWR`VScXTcXSbWQbXPbYOaXNaXL`XL`ZJ`YKbZLc[Lc[Kc[Kd[Ld[Me]Ph`Qi`QiaQiaRjbPiaLg]Ld\Ja[H_YG^YF]YG^YF^YE_YF`ZF`[E`[E_ZE_YF_XG_WHaYJe\Ji_KlcKngIpiHqkFrmBoj;mg7mg3nh.mi-mj+jh&ge#db"a_"_]"]Z#[V%ZU)YU/ZT3ZT9[V<[WA\XD\XGZVHWPFTLFRIEPGBOEAOE=LC:LB9MC8LD8LD8ME:OGYM*<(:%9!7422//11012=)77<#?'A(E+H/J0N4R7T;S9V<V<T:S9Q6M1L1L1J-H*D'?";7321+.**'&'& * +' ( ) ) +04 ( ' '- ( +* . ++/037;?!F'L1M1P6T9U:T9T8P6M2K0 H/E,@)<';'9&5#6$7&8' ;*%?-*A/-C10E41D35G56H67G46D26D26D07D29E39E49D3:E5;F6>I;BL?EPCISGKUIKUILUJKVKKXLKXLMXLMYNMZOM[QM\RP^SQ_TQ^TR_TQ^TQ_URaVTaWQ`UO^UO_VN_VM_VL_WK_WI_WJaYJaYJbYJaXJbYJcZLd\Ng^QiaQiaQibQjbOiaKf]Jc[Ja\H_ZE]XE^XC]XC]WD^YE_ZC_YB_ZC_ZB^XD`XFaZHe^HhaIkeJmgJpiHqjGrlErm@qm;ql6ni2ni.mi,kh'ie#fd!aa!a_!^\"]Z#\W$[U(ZV.ZU5[V8[W<\W@\XC\XEYSFWOEULDRHEQHCOE@NESH@TH@TG=THU(D\ (0>"8I+CVD^u>O(5*7 #2,/@0J]#8M)!C%F'I)L/P4P3Q5P4M1I-F+D)A(>&:$8#7#3 2 4$5%7% 8&%:(*>+-?-0A/4C15C17E38D26C06B/7B17C28C38C28C3:D5>H:BL?EOBHQFJSHLTILUJLTILVJLWKNXLNYMNZPO[QN\QQ]RR]SR]SR^SQ]RQ]RQ^SQ_TP^TN^UN^UM^UL^UK^UK_VJ_VI_VI`WH`VH`VIbXJcZLd\Mg^Oh`QiaQibNi`Mg^Lf\Jc\Ha\F`ZE^WC]WC\WA[VA]WA^X@_XA_YA_Y@_XB`ZCd]FhaHjdIkfHnhHpjGpjFrlCsm?rn:qm6ok2nj,lh*ig#gd!ca `_ _]"^\"]Z#\W$[U'ZU,[U5\V7[W;\W>\V@[UAXPBVNCTKBRGAQF@NC>LB;K@7J=5I=4I?7LC8NF9QG:QG;RH=UKAVLBWL>UH;TF:SF9TF6SD4RB2O?0L=.J;,H:)F9$C5"D6"E8!H>"LD%OG%SJ%SJ$SHHmjPqs\vy}oTpfXqcy~}ztnleOkUqXtPoFe)Ni/Us5Xv+On1Vt!Jf Kh=X=U)Ke$G\?V3F9Sm&E\%@U.?!5B/@%+:2D "/(9!):  0B)*9Cb}UxUnIYl!, (7!* (+9 )'76E(6 '(7,Ha*J_.ZtImA]v"8G&1 + +  +<'0 ;-:. +;. +:/ +:- 8, 6+ +3* 1'5+0(,%/))#*$,&-',&+% -& .'.)0+1+0)2+2,1*2+3,3,5,3LO=//ME7+ 7, +9.;/>1@2@1D7B1>+>)=(<'E1>(3/0,-/.////447<$B)F,H/K2O4Q7S9T:S9S8R8P6O5M1K/J-G*G)D(= 9411. 0 +. *'%% & ' ) +' ++**0/ +' $ % ' /3+ + ) +.79 9>"@#@"E&K/ N3N1L/M0I,F* E*B(=&:$9#5 301 11! 3! 3!#6#&8%,<)0?+2A-2A.5B07C17C/7C18B28B38B27A18C29D4;F6?I;DL@HOCIRFJTILUIMUJMUJNWKNXLNXMOYOOZQS]ST^SR\RR]SQ]RQ\QQ\RP\RP^SO^TN]UN^UN_VM_VL_VL_WK`VK`WJ_WH`VHaWIaXJdZKe\Lg^Ni`Oi`PiaNi`Mh^Lf]Jd[Ib[GaZF_WC\UA[T@[S>[S=\U<]V>^X>^Y=^X@a[Ae^EhaGjeHlhFmgEohEpiCpjBrl?rn:qn6pm2mj,kh)gd!d_`[]X\V"\Y![W"ZV$ZT&YU)YS0[T4[U9\U<[U=ZT@XPAUMATKARH?PD?OC7J>5I=5K@6LD8PG9RH;TJ;UK=VL?VL?VI.K<,I9+I:)F9$D6!C4!E7H; KA#OF%SJ%TJ:c\Che$TJ:b[WxtMod8\K=aQ`{tztsl`~Wu]z]yUrQn4YtAe6[z.SqAe*Rr$Jh3Vt:P'Oj9Yt/Lc7K9J,K`"@S,DV*K_&4(74B (.? #/&4+ ).Mh*FZ*CT1>+8:P6G $2:G=FT'0?1>/ >/<.?0 =.8, :, 7* 5(:- +1& +/& -% ,$)!)"'!%!,'+%*$*$ *$,'-( -'.(.'/(4./)/(2+1*2)2)4(4( 7+6):-;.=/>/@1B1=(=(?*:$7 520-,/-,--*,/9";$;"A'F+I.L1N3Q6S9T:S:P7P6N3M1L0N4F*A$>"=":4/,+)'& & &$$ ( '+ ( )++ ( +% $ $ % % % & ( ) ) , ,/2 5 ::;?#C'G+G*I+H+F(E(B& =#9!5520-/-. 1!1"3&6#)9'/>)0?+2A-4@.5A.8D19C37A18B28B28B28B28C3;E6=G8AJ=FMAGOCIRGKTHLTINVKMUKNWKNXLPYOOYOS]RY`UT^SP[RO[PP\QQ\RP]RQ_TQ`WO_UO`XN`WM`YNaXL`WLaWLaYKaXHaWG`WIbXId[Jf]Jg^Lh`MhaMh_Ni`Mh_Lg]Kf\IcZGaYF_WC]UA[S?[RTK?TI=QD=OB MD PG)WLJln RGMC*YO?da>b[Nkcnyn}}uslhcfb|VtRnLjHh7Yw2Vs;\{"Gc%Lk?a~'Ha'Qm4Yx#?V&GY!;LCZr1A4D=Wn(4%. ) - )7&Le7K;O>S5Wn)FZ.; $0,</@/? ""/0ARSk;Ti&AU$1 )*;*FZ7Og2Ka0?+7&5#5D,?M$%. 3> %%1 +!*&:I!4E,CX0<$!,*(9L1IaBAHHKRUVZ_[_c^beceigkokotlpumqunqunqvnqvorw A3@1@1?0 ?0 >0 =/9+8+ :, +9+4'@4 2& /% +.$ +" (-'& % )#-''!'!(")$ )# *$*$*%+%,&,&+%-%2*.%/%3'6* 4( 6)7);,;-;,:);(;';(<(9%6!5 1.)****++(),4;%;$@'E*J/M2M1P5Q5S8R8O6O7K/K-H*F*D(?$=!940.+,))&$#"$# $ $ % +& % +' +$ +% # # +% % ' & +' ( & % ' +,/2368="?"C%E(E'C%?$=# 9531-+*(*+- 0!1%4!(7%.<'1?,3A.6A06B0:E3:D48B27A16@07@17@18B38B3G9DK>FNAHPDJRFKSHLTIMUJNVKNWLNWMNWMNWMQYOPZPNZOMYON[PP\QP]SQ_UO^VO`WMaXMaYMbZMbZLbYLbYMbZLbZIaXH`WHbYHcZHd[Jg^JgaIgaKh`Mi`Lh_Kg^Kf\HcZHaXG_XC^U@\R>ZQ;YP9XP7XP9[T:\U;^X:`Z:c\VL>UJ+M<(K;(J:'I:%H8"F6 F6H9J=KAOE@eb.ZRLAMA1[U/ZR7]XOld_tlj~u{vuqpkjh\y[x^zJiJf4UpS%\t0C6G7H*L`>Zv#6I0A(BW4EA[nPm$>Q#Ja&@U2A"8H>TjBZr(@Q$5D >L*AQ%/(4E%1 "-'  $)@T&/   +9J4EZ3Of+BV1@ +    % +    +  +    +    $-  + +      +    +   +            #  +    +  "!$%359BDFLPQUZVY^Y^c_chdhlhknilqkoukoslotlpumpuC8H:@1>/=,<.:+7)8*6(6(3& 3&5*2( +-# -# * && #$ % %% % % & (#'")$-((#'"'!)#*!*".$0%0% 1& +4'6)7)7)8*7&:):&;(7$6$5!30-)&'+)(''**-38#<&D)H/L2N3O4P5O4N3O5P8J.H+F)C'@&+3?,5?/7A09C36@05?/6?/6=/5=/4>/5@09B4;D6@I
GNAIOEJRGLTIMUKMUJNVKMVKLUKLUKLWLLWLLWLLWMLZNN[PO]SO^TN^TM_VMaXMbZLc[Mc\Ld\Ld[Lc[KbYJbYIcZIe[Ge[Ge[Ge[He]Hf_If`Kh`Kh_Jg^Ie\HcZH`XG_XD^VC\T?ZQ=YP;XP:XP:ZS:\U:^W8_W9aZ:b\;c\;d\jc@lg>lg9kh6je2g`.b]*^Y%ZU!VOSLPHQHRK RL!QK PIPH QI#QH(SI.TJ1TK6UM9UL;UK)M<'L;'J:$H8"H8!G8G8H9H;J=)UJ>b^J?I< PD1XM2[IWwmxvlzuxtmlkdda}QnSn?`|4Tm,Nh4Vt#G\:VkW,:,;7I2A7M` --DW&=NF^$C\6Mc>XkNj:L_D`x>a3E.>.>"1A&9J6G6Wt;^{-H`%>R2D,< 8G '6EKg}9`z;[w.HZ(5+<6PgFa{F`{>[t)Vp1H^.K`'EV6Qi*DT$. +$16E&0 +&3&(4) +)'4 %%.!*  +  '6+8 #    +   +   "!-     +    +              +    +      + !  + 1?R  + +      + + & -17@AIOTTX]XZ`Z^c^`f_bg_cgcgkfilimplotmqvmqv +G<QG@1B2<+<,9*8)7(8* 8* 3&5& 0#2& -! +,! )) $%" % # " " "%!$ +'&#$$%& ( (*!* -# ." +1& 4)4&6&7(8(8'7$4"4!3 2 0.+)( .'''%$(+.15!:$?'E.J1Q8N4M4N3L2L3L2J/G+C(@&=$: 541-++/$ ! # ! & $ % +& +#!  ! ! ! +! ! # # " " ! +! $ # + +% ( ) (/ 3 44:8<>!?!;86 2 11-)&$#%%&&(,#1&4!&5"(8&+;(/=)3>.5>/5?/3=-4>-8?27>04<.4<-4>.6?18B2(L=&K;"J:I9I9H:H;H;:^Z%P@I: O?=bX\utm]vsA^Q'4D5D3Mb9L"DZ=S1Qk;N&DY0Ka%AS-Kd6H"/+$Q9Vp(=P 5E(8J 1=(:J(=K0I\5Qg =L2>,85C!3>(%0,9$7F%9G4@   !  + %$"     + +    +  + +   +   "    + "/ &5 '   +  +     +          % +"%*/<9JMSXZ`\^c_dhbfjdhmdildikeikfjnimrkotlpuE:C7A4@1<+:*7&6% +9)4#3"2"1!.,+ * +'+"% # !"" ! ! !#""%!$#$#%&((," ." 0$ 1&3%7'6&9(7&7%4#4"11/.+)%'$$%#"&+,25!<'>(C-E-I1L4K4K3J1I1H.G,D*@'<#9 656.,($&"    !   +" ! +! !  ! "  + " + " + ! +# # " + +$ +$ " ! $ & ),058888:83 0 .-('$!! $$#&') ,"0$3 '7&)9',:)1=,3=,2=,2<,3;-8>17=029,3:-3=.5>07A1:D4>G9@I;CL>FNBIQFJSHKSILTJNWLNWLMVKKVKJUKIUKGUKFVLHXPHZRL\SM^UL_VK`XJaYKa[Ja]Kb^Md]Me]Mf]Lg^Lg^Kf]Je\GdZCcX@aWAaXDc[Dc[Ge[Fd[EbYEaXF_WE]UE]UB[U?ZQ;XO:VO:VO:WQ:YR:YR9[T8]U9]W8]W7]W6]U5]V4^W5_Y6`[7b\7bZ4_X0[U,XQ&TM%RJ!PHOH OG NE ME MDMCLCMDLC!MD$OC%PC'PC+PE-QD-QC.QC0RD2QD3QD3RD2SE1TG1UJ1WM3YQ4[R4\R3\R3]S1\R0[O0ZL.XK+VG*UF)TD'TC(SC)SC)RC)QC(OB#N?L<I:I;J;,TF?`Z2YMAc_HfeGcb<[U+M=+M=?\P]rt`sx6RHA30JDYla}yxwpkm`z^zOmNi'F\;Q'D[8L +,'R(CY5H.@ ,1LaC^r"BS$ ,#1&52F5Nc#=P "/;N/Oh2Rj)FZ'?P-VoAe*DZ2HW+:F&2&'5.<-9+72@&33B'3*96Mb/<,:)6$4!2101!-,-** * & % $ $" """" .&#!#&!%%""%%%)+/# 1% 2&4&:)8':)8'7&5#3!1 0/,-+(&&#$$#(+-.3 <)?+@+A+F/J3J3G0G.F,D+A)B)=&754/ 1('&$    +   +    + +  (' "    ! + + " +! +" + $ !  % $ +' ( +/9 52331- , + )'&$   ""%(,!0&4#'6%)7',8(-9(.9).9).7*19,3:-28+29,3;-4>.6@08A2:D6YP5Rh7J3F ,?8L'I`$@V.?5Vk=]w&>Q%9J '4J):#.*AN0@N *3$ )#;N,G\-CV6Vq8Sj(12B%?Q)F\9Tm4Mc0@&2"9K(CT5CP$  "5H!7H)5-=$8G&=N9Tl0J`9Uq&9G"/+6 ) $.6Qf6Yq=[s?Um(BT-5(4-:!7H5C#3B(4!*  &%& "       +  + +    +     +   +'  +      +    + +  +  +     &"   +      + ! #1%/(."/43=@FLPSW]]aifjqjnunrworyorwoqwnqvnqvE9C6A4=0;,7(6$3 ///.-+,+ + +*.(*'%$$%#%!"$$&%$$%() + .!1$3% 4% +8' =+<*;):(8&5#4"0.-,/-)+(((%&&((+.5$8':(<)@+F1G2C.A+A)@)?'=&>&9 3-)&%#$$!      + +   + + + + "    +   # + $ + +"  " + % $ % + ++-2102-+ * ( '$ $#!     ##$'+"/%3 ,8'/:*/9*/7*.8(.6)07+5;/39,18+2:,2;,4;-518A4=F9@J>ENCGPEJSHKTIKUKMWMLWMKVLJVLGULDTJEUMFVOFXPJZSI[TJ]UJ_WI`XI_[I`[Ja\Kb]Kd]Me^Og_Ni`Oi_Lg]HdZEcXAaW=_V?`XBaXFaXFaXFaXF`WG_WE]UC[SAYQ?XPL?%QGG6E5A3?0<.A3'E9!A5:-5*:*2O=\niyyvwplg`|SnKh=Yr1Pi%G`(H^>Q,Mc@_w3Ng8I;N3D,F\7J-Rd?Wi#^s& !- .&3'34DGf~Ri)9C,&3'3)7I  (".#7J+CX+CX&7F& +'22Ka4Na(1"3A-DR4Mb;Sk!2A.<->P)4", )#-(4 ) "  +8/FY1EZ$2B$  +     +     ! +-  +     +    +      $3 +"/    +"#    " '&/)0&19:DGLSW[_edgngkqjnslpvnqworworworwD9C7?4,>,?+>*<(8&5$1 .--.-+*)**& )%(('**3$3$7':(?,@,>*<(=(<'<&:$ >&<% 6-,)&%#""    +     +   + +    + !  +   # # +   # $ & ' +++*+ 17 - ) ) % $$  + +     "#&+!-$15;,9>14<.5<.6<-69.37,39-39,/5*18,29,19+4;.7>1:A4?G;FL@IPFHQFHRGKUJJUKKVKKVLIUKGVKFULETLEUMEVNGXPI[RI\SJ]UK`XJaYI`[Ja\Ja\Kb]Ld]Me]Mf^Lg^Mh^Kf\FbXB`W>^U;]S?_UDaXGbYHaXHaXG_XG_WE^UE\UD[S@ZQ>XP=UN'G>#F<#G>#H>!H>!IA$KB$LD%OG(SJ*UL*UL*VM*VM*WM)VM(VK+WM-XN.XN/ZP/[R0]T0]T3`X4bZ5d\1bY1cY0dZ0e[1e\0eZ1f[1eZ/dY.bW.aW,_U+_U+^T+\P*[M%WJ#VISDOAM? NC L@G7F7B3A1:+:+9+9+;./G;EWM\jgp}xyxwxtrfb{VpIe=Xq5Uo;\wHd~A[rB[qRg}6Pc+DX+:**= /&6+;,AV(75E.;$3C!05G.FV0?(DW)CY0Qd=c}Dd%?M-9!*-9$BT >Q5ReC[qWr7GV'1@3D*:K  + #2#8K4E$:L-DV%;M *  + -;.I^.G\+WO=VP*G=)F<(F<&F=%G=$G=$I@$I@$KC$MD%PF)SJ*UL+VM+VM,WN+WN*VM+WN+VM+VL,XO.ZP-ZQ.[R2`W1`X0aY.`V+`U+aW,cY-cZ.d[.dY/dZ/dY-aW+_U*^T*^T+_U,^T+]R)ZM%WKTGPCN@M@H:F6F7B4A1<-;+<*&E+9P1DXEepilzt`lcx~{|{yrmke|a{XrRmVpToZrRiexSj5Pe!;N0B$4H#6%4 "2 -*:0GX1BT-E]5G,=)78K)4&2 ;QCcT|)?M %$5+; *%0.6&CU6K^(DW"?R9Yp3Pd@Sa>KW%9E'7&2"=L !   , 4E%. ! + + + %&       + +(5( +   &%"$0B.? $3 #1   +%"  +  +  +      +  % #   )14;>AGKQTVX\`adgeinhkpilqimqkns>3<19.:.6'2" 6&/-...../01!1"0" 1# 0$0$0%,",!+")!) * +"0'/$,!,".$0$2$3&4'6)7) 9) +;*<+ @.B/C1F3E2B0>-;*6&3$ 5( / ,, -!(&*,(&&'&$$%*, - 1"3"1 1 1 3!3!4!6"47 =(:&4331 27$+$#    +  +  + +      + + +! ! +! ! ! " +$ '(% $ # % &( ) +* **)'$'$     "#$'),$1'5$&3$(4#*6$*6%*5#*4$+5',4(.6)18,09+0;+4>.9B2=G8BL=FQEGRFGTHGVJHXMHYOHYPFXNEYNDYOH[QL^SK`TMcYNe\Ld[Ke\Lf]Kg^KhaLiaKhaLicLjbLkbLkbKj`Ii^Fg\Cf[?eY\U0J=0J=/I<-H<+H=+I>*J?'I>&J?%KA%MC%OD(SH)TK+UL+VM+VM*VM)UK'TJ&TI%SG&TG)UK(UL)VM+XO*ZP)[P%YL%YM%[P%]R$^S&^T'_T)_T+`U*_T)^R'\R(]R*^T,^T,]S*[P%XL THPEM@I<E5B1A1A/'G1=T1<"0<', + !&&  + #  +  $,"-$,*5%! + "- /A.=.:'=N2DY(;L&  ++   + $+>1G%4'& $     + +  + +       +  $$)$109@BMQTY]b_bhadidgkfimgko8.5+3)5(1".;2-)***../0 7'2#/ +3$ 2# 0# ."."+ +!+ *+!* + ."-!,!/#1$4'4&5(7)8) +;*?,B0D2F4H5I5G5C3?. >/9(:. 3%/ -*(%&%'(((&&%$) -+,. / 0 +18&013 5!6"7"7"4 3 5!5!2 35#'##! +     +    +      + " + + # $ ! " +% $ '% $ $ $ ( ) + +) +, (&#"!  "%%%&(+ /!1 %4$*7)*8))8)-:--;.,;-2?.1@/1A00C11D42H86K;8PB>VGAYLCZLC]QE_REaTFbWEbWCaWCbWBcVEdVHfXIhYKj\KmbMncMneLofJpgJphJphJphJphJqhJsiIsiFqfDpfBoe@mb?ma?maAnaDpcHqdJrfIqeHqfFqfHqfHqeHqeGqdIpdIobHnaGl`Ej_Bh_=e]&M@%NB%PC'SF)TJ*UL*VL*VL*VM*VL&UI%SG$SF$RE$SF$SH#SG$TH!TF TF UG!VH!VJ VJWK XK XJ"YJ%ZK&[M%ZM%ZN&[P(\Q*]R+\R*ZP'XL"TG"RD N@I;E4C14RC`dngWbTIbM?`GF^Z\w||wwtrrousk~^sSi/Mc?[s.D+@T.>"BX3C#0)G`3Oi"CUM$5B$0< "$        )5)?S&7I(4'"%/&&%5G6Jc/CZ $   + +"  + +$    +   +   + +. %2 %4'6"  !      +  "%    +   #!)/07?AGLNSVZ]_fdglgjnhlpkns7,4*5*1#/-,*(()*11012 1!1!1! 3$6(7* 0#/"/ :PH$<-, , .!0#1#1#2$3&6(7(9*=,C0 D0 +D1H4H4J7J7J6N=C1?->,;*<. 4%0 ,)'&%&+,(-,()/++-,-. +2!/4"3! 6!5 324 5!3 4 3 30,*&#$  +     + "   +  $ % # # % $ $ && & ), , +. ,) +) ' '$!  "$$##&(+/"1$&6))9,(9,,1+>00C55F;.E6.H80J=0M?1PA4SE:XK<\P>`UAcWDgZEi]Ei^Ej`DjaCl`Cm`DnaEnaGqdFqeGsgHtiIvmIwmHvmIxoIxnGxoFzoEzoFzoFzoDyoByp@zo>wk?wk@wkAxlCykGzlH{nGzlFykEykFykFylGylGylHxlFwiEvjCtjBrh>pf:mb7k_6k]6i[6iZ7hY7gY7fX7cT7cT7aR6`Q6`O5^M6^M6^M7^N9_P9^N7\L4[L3[L1ZK,XG)VF'VE%UF$VH#WI#WI%XJ&YK(YL)YM'YL&YM$WJ"VI#VH#UI#TH"TG SESETETEUETETFTETETEUEVE WG!XI!XI#ZK&[M)\P)ZP(YL'XJ&VF'UD$P@K<F5D3%I8"G1@+;*8(<.:YNJZODVD6M>$@*;)#@*;S@Wg]^m`x|{yxwyw}}s[uIe<[t;Q-Kb(@.OgLg/DY8LAX=T-L`-La!;L%?R-I`=Q0@$.=&EU0K`+L`.H]-I_ 9K%>S;TiUpA\p'=L)4 +"0?5G2B8I3C9J;N-Pg0Mb-:$02AM4HSCR_7FR-@QJbt0DS'//9   !   +  + +#,72?!3A*6'=N1I^/CW$/   #!1B"4G$ +     +   **= & +* '  +     - +%  + + &1+7&4&5          %4(9-?):!     +   !)%0*3)8?>FMPRVX[^\_daejfjnimqlotg]Aj_EmcEndDndDofDqgDriDrhEsiFtjFukEwmExoFzqD{rD|tF}uFvEvDuEwEwExDxBuAs?r@sAsBtCsCtCtCsBsBsBtCtDsErDrAr?}q>|o-<-<,)NJ0VN<+)H<6NECWHXidu|x~~~mXtHd~Ad%F_!D\@YC^)F\YmMax2F_'@V1G:P*Mf(F[3G1OeF_u0J^ '%! "/9XqB_y8Ma1A#@R)7(68JE^v?Ti=Xm6C )1A<`zAd}+J^$CU*H]:J$AT'=N6Oe*EW $ *)4GU2CO:L_8HY +  !*!)")4,DX':H +    "- 1C$6E-BTHh5Qg3K^/DV':J&6G!0?"6D1A%3"  &1!,$ + +!**3$+  + $ #1 , , +*"! #3 + .$4 + +# "    +   +" +% +       +          &'(3%7>8CHGMRUZ`adlfiogknhlpimq@.?,@,>*@,>)>(<&:$:#;$<%=&?'B)B*C-D,D,C- G0E/ E0E1C/ B. A, A,E1 A,C/C/ B/ A. A.G1 D/ +F1 H2J2 M8K1K3P:N8N7L6J5G2C-C.<(8& 9) 6& 0 -('%',4 2,-+))*)(+++.346!9"9#9#6 6 6!5!5 +8" +6"2 / -* (# %*    +    +     +   # )%"  + " # # $%%'*,**,0641/ . ) & ' %# #""&)-0#"3&'9+,;..?03E71D7*A5)D7+H9*J<+L?-PA2VH3YM3ZM5^Q9bVx?z?z?z@z@z@z>z=z=|>}>}>|>|={-;+:+=.)I;?XOIcaO_Z`sdzK_TQ_[eppnyvypa}Sn=`{6Zy&Pl:]{ C[:R,SnNi*Lc-Rl CZ?T'Ga6Qk'CW/D(9O9Zw.Ne5F %!@Q)EY0L_FYkCQ`@Zn(MZ(NZ/Qf'APRoVl;Wj,K_8L&JbKrAb|5PfHhOm8Tj+7/>"4C + ,7.>&5(") /9*2 +(3*;N) #)!1>&/3B(&2  $0!"-#0   +(2)4!  +     +  &/=&|>|?}@~@@~=};}:~;:;<;:754}3{1y1w/u0t-r,q,q+q+r+r,p,n-n-~m.n.n-}l-|k*zh)xewcu`r^ p[nWnXmVmVmUmVlVlXmY +mZmZmYlZjYjWhVhVgUeScRcSdQcQcPcQaO_M^J]K\J]I^J]J\IZGZGZGZGYFXDVCT@Q=N8L5J4I3I4H5G5D3B1?.=,<+<+C3PhZnF]R"@2+C9*B8GYMu|eyqzyt{{mXt]xLi-Tr+Qp-Uo?X9[{(H^9\u`EgIe'@U-Nh5Up&D\AY*7.?,<4Pi,DZ!6F6M_E[mGQ^K]mHaubsL\nTjPlGeOl1KcBXoBWjH`tMn@Vp?PiD[mGXd$9E,FU)@L!1?*4 + 1Ja:Vo1Md%9G  +5-9*%1,9-9&0+2(/$* .9)5#,*=O+>O0FZ1J_)=N&/  !)-6)1)4  +  +  %0& 4A+8!,' + +   +   (5'6  &  +   + "* +*#. "0   +    +        + +     '+/8??GJPUZ_bfgjnimqimqP7Q7Q8Q8P8O7O7R8N3N1P1P2R5R6T9T8V8V:X=X>V<V<T9R9P9O6O4N5M5N5T9N3M3L4K3K2L3K2K2K2L1N3L0M3M5L3J1H/D-A*=(9$61.,)'&()),.,++++(()/..37:=#@%A'A(>%<#=$;#9!53554 - +($! #       + + + # ) ('')-/124344768:769<"<#<$9!6 531 +/ - *%#  !#+/"!3)&8+'%M@'RF.UI/XL1\O4_S9e[uk>vm>wnAypA{rB~uCwDyE|H~IGD~B|B~@~?}>|>|={=}=~>~<~;~9~989:::9766554~2|/z-y*y)x(w*x+v+v)u*u,u+u*r)p%p#n}m|k{i ygxdwbu`u_v^v_u_u`u`u`t`t_r]q\o[mYlXlWkUjU +jV kWkWlXlXkXiUgTfSdQaNbMaM`N_L_K_I\H[FZEXCWBU@R=Q;O9O9O:P<N<L:J7G4E2D.+Q:\slSlgF4;+9);)6NBK\TI^L]qe|rstf_yOjIj4Xv&Mj1So-RpFc9ViUh=Uf5FT'-8#1(2BU@Si+@Q.I\?[sTnK_m9JX*6 )%4EGZo0K\4Le,CTNjPi{BXfDSc*6>3C/J`,J_5Of6Rj(3%/+6-8"- #(1%1=+3$,(1% $-!+ #%'@S5Um-BS'1#   +  "%/#3E0B$0 & $   %  (!0 #$2%4'8 " + +    ++ +#   + +   + +  +   +      +      +()2:Y<Y;X:W:X9Y9Z:Y;[=]>\>]>]?^A^A^B]A\@Z?X=W;V9T8U9S6U8Q4Q5S9N2M2L1L1L1K0L0K/J-J-I.J.H,D(A'=%;&62.,++($&('+))+)(**,-/65:< >"@$?$?$A&@%=$<#;!9 7 3 22 , * +) % !  +    +  +%%%),/4 8 : 78 <#<#?%>$@%E(B&@$@%C(B'C(A'?&?%;#:#8! 6 4 0-+ # $$""%#" !&+,0#$6)':-%<.#<.#=/#@1#G8"F8$I;%L>%PC*SF.VK/ZN2^R6bW;g[=j^@mdAnf@pf@pfBqhBsi@si>si>tk>tk@wmBzp@zq@|sAuBwCxE{F|E}C|B}A@}@}?}={:y8y8z8{:};~:867879998788630.}+}){){+{*y*z)y*y,y)x'v&w$u sr!sqp~m}j{g{e{dzeydydydxcwcuau`t`s_q\q\q\q[oZnZoZp] q^ +o]p^o\n[lZlYjWiUhUfUdTcQbNaL_J^I\G[EYBWBU@T=T>U@UAUBS@R=R9>u[dyf.\J C-B/F4)N@6UFJbW]qjtzt{zpd~RnMo9]y>`}6Wr)Jb"E^"B[6M*=+Ja9MLh'BT1MdB`{!9L(@U$?S#@S%7H&/)/;G.6@!  +* $4'7&6$4 +()6E?Qa*4!,9,H^4Rf%:G2AA\w>Zo,@QL_xAWg5P[7IV4IU-(F_0?!.       0 +" +"- #       +   +       + &%1;=ELOX[_bekhlp`AbAaB_A`BaB`?aAaBdCbBbCbBhKcCcCdDdEcDeDdDeDcDaB`@_>]=]=Z;W7V6T5T6Q2P3N2M0L/K/J-K.I+H*G)G*F(D'A&?$;"862/(&# $ ''',*)*-.,./057:>!?!@"@"@#?">!?$<"975610 - )& &" ! +    ! % (((,/279 :!=$@&@&B'D(G+I,G*E)H,J.J.I.J/K0H.D+B)C*A'?&<$ 5 4 / +. - . - +,-)(,1!3"3#"7*$;-$?/#?/$@1%B3&I9$I9&L<-QC-SE,UF+TG.YK2]Q4_S7cW9fYy>y=ya8\y4Vs=\x)Je4Sp3Up-Jb"H_MoB_wb~Urc}uRhZu Ob *3 $ %0'5@1<+1&1%. +*;/B5F!- ".5GW*>N5D&CX:UkQhLcx0BS6Vh3GW'3>Ys:Vk+7    %2'4!/$.'$.%%/1B)5 !& +  +    + +  + !  + "#&   &)) + ! '  +    +  )/A*: + +        +         %(18:EMP[]`cflhEhDiFhFgFiFkHmMjGjFlHjHjGjGjFjGjGjHiGkHkHjFiEgCgCgDc@bA`?];[:X7T4R2Q1O0N0K-J,K,G(E'D%C$B#A"A#?">"9632.&# ! +! # % )' .*' +-./24?";;@!@"C$A"@"@"> >!C):632.**'# # #  ! +   ! % ++(,/37:>#B&F*D'E(G)H+I,I+I+K-L0O3O2O2P3Q4M2K/K.I+F(D(A%=#:<" ;#8767 6 +3 35!8$9%;(?-@/C0!F4!F5"G6$J8(N=*R@2UG0VG,VF)UE)WG-[M1^O5bU7eW9hZ;i\=j_?ka?lc@mc@ne?nd>od@pgCsjDukAuj@wmAyoAzo@{p>|p?~s@u@u@v?v?v>u>t>t=u?v?vy=x:z7{5|5~66678998874/{.|,{,{,z,y,z,y,z-{+z(x(w&v%v$t$s&t"rqqpn ~k|hyfyeyf yfxewcubtatas`r_p]p]o\o\n\p^o]p^q_q_p^o[mYkXiW hV hUfTdRbQbN`M_L^J]H\F[D[D \F ]HbN2mYLxkStGyr9oabO XCUA S?"\LAtdUw^[~u_|a~SplHg]Lj_e}wuoqdOpCa8Yv,Nk'F^>_xHh,I`9Wr=[t-J]C_sEYnfwXh{4EU+=O(_=\8Y5S1Q/N-L,J)H(I)D&B$@!@!@ =<::621-*'# &" +$ +% +# % +& * ) /..00349;>@ B"C#A!B"@!> ? @ =71,*& % % *" $   +  +" &()-237=!?#B%C&E'G(I*L,M,O/O0Q1S3V6V5V5W5X7X8V6U5S3P/N-K+G)E'E)F+B&C%A#B#B#?#=">$ ?% A(D-H2J4K5L6M6O8!R<#S@$TB"TA"VC"UC"XD#ZH(\K/`P4eU6gX8iY:k\=m`>l`?mb@na@nb>nb?nc?ncBpeBrfArfBsiAvkCukAvk@wk?zn@{p@|p>|p>|p?|o?|p@{o?|o@|qCvCu?}q>~q=rIGTd=MY %#&*< $2 $$ + /EY)AS%BW*FX.DW#CX;P]#, #0#8M6Xt;Zv6F      %$2C4Ka7Sh/J\)=M1AT%?M1DU+7 ( !   ''! ##;H#=N$>O'0 +#*:+:  +  +        '.B !1 ' +%"1 '-?,>#3&5 !   +       +  +   +  +  +     +  + + &./8;BFIPTVY[^rNsNsMsMsNtOuOsMtNtMuNuNuNuNtNtNtNtOtPuPtNsMtNrMrLqJnIkFiCfBd?_;^:]:U0R-Q.M+H'H'H)D#@!> ?<;9642/)( & $ # $ +& +% +& & ' ) + + -. 246?!?==AB!F#H$F!C!E$@<:3.,( # # +$ %$$"#" " ' +$ $ " & (--079:?!@#D%J*K*M,P.R0S1W5Y7[9[9\:^;^<_<_<^;^=[:[9Y7W5U4S2Q0R2O0N-L,L,K+K*I)I*J+K,L/O5S9V=U=V<W=W>X@W@V@XBYC[D\H#_J)aP0fU3iW6kZ7l[9m^m^>oa=n`>oa@ob@qc@qdBrfBrfBtgAtg@ui@vk@wl@xm=wk>wk@wk@vj@uh@uhAuiAvkBwkAvj@wj?wk?ym={m;{n:|n9~p8~p8q8s8t8u:u=u@vJ*#0 +**EX%@R,;%EZ,H^:Vq;Rh"2@  +%&  #$2(8 *7=)7&;K+DT-Oe>d}%:F     + )(9H .;$-<':L&;K/CS(1    #,*30808+2 1=.9 (/<#8E    +   +           # , "/ ) & + +      !    +        +  +    &.04;:?GFPSWwSwRxRxSxSySzUyRySzTySzSzRzRyRyRyRyRzTySzSyRxQwQvOvOtLqJoHlEh@d>b=a=\6W1S/Q,M*L)T8J)C"@!??;96543-- - , + + -,--- 1.02578:A!E"BF G"I$I$K'J$G"H$E"B=9531. , - - , 11. 0-. , --- , + +) +* * * ./79:??B!C#J*L+L*P-S0V3X7Z8[8];`=b>a=d@gCiDiCiBgAfAfAd@c?a<^:^:\8\9\8[7X5X5X5W5V4V5U4V5W9Y>[@_D^C\B\B\B\B]C^D]D^E_F^E_GaK!cN*fR/iU4kY5lY7m]:n^=n^?o^=n^;m];n^=oa=oa>pa>qb@rdBreAse@se@ug@vh>ug>ug=ug=th?th@tfAteAtfBtgAugBtfBtfAse>se?ue>wgS=S=T@XEZG[I[K[KZJYIWGUETA +UC#_OBn^UvmMrgEk_@gZ:bS8aORpes{|sroj[uYrMfKb{BXo;Oe9J[':K)9%)*!6E/AN 8G%>O%FY3Rg$

N)3 !   !--:!) + + &.'5A,6#)  #-"0:'5B'1)5)1 + %    +(7 +(      +  +   +  ! +"&      +          +  + +   "*+4:;@HGKQT{U{V|V|V}V}X}W|V}V}V}V~U}V}V}X~ZZ|U|U}V}V}U}V{UzTyRvNuMsLpHmCkBhAe=c;\6Y4T/Q-N)O)L(H$F#D!A?=<:;:75333132137897<><=@CGHM#O'O'P*R,Q*P)P*Q,N)G C?;:889=:<<<<<<99:88876678;=@AF$G#H$J%Q,U0V0W1Z4\7_<a<c>e?gAjCjDlFoGqIqIqJpIoHnHmGlFjDjBi@g@gAe@f@d?b<b=c?b?a?b@bAeDeDdFhI hJeHeJfIeG +gIgLeJcHdHdHdIeJgN#iR,mW0oZ4o[6p^9r`=sa?sb=q_9o]9o^;p`xh>xh@yjAzkAzkCzmE{oE{nDymBwi?tgO  '%&3'7%7G!7F+DX9J'FZBbEd+CS'     -'7#8H3@"  + +)    (3!0;+5#6B0EV%>>E#G$D!CDF!E!G#J$M%M$P'R)V-V,X/X1Z3X1V1S/R-Q*R-J$G"DDFF H"H"F G!J#I"H!G#G"G FE EE E D BCD H#G"H"K%K#N&Q)U,V/Z3\5^7a:d<f<h>mFoHpHpHrKrJrItMvPuNuOuNuMtMsMrKrKpJpLqLoHnFnGmFlElFlFjFiEjEkGkGmGoLpOoNoPoQoQoP pSnQmPlOlOmP mQqWrX$sZ,v_2wb3wc5xd9yg<{i9xf6ua7va:vc:uc:vc;wdwf?vfAxhAxiAyh>xgve?vf?ve@wf@vfBueBtdEvgGxhGxhCxgCyhByhCzhDzjCzkBzkBzlCzkCzlByk@vh?teT=U?WAYF[G^J^J_MaOaO`N^L]K[IXFUAQ=O8N8N8K5J4J3J2J4K5K4L5M8O:P<R@SBSDSDTDSASA VC ]I0cP@l]PykV}cpwu}th~Sj>]{!C[8N +.C!3"34J5H 8K,<,K`2J[4Oc/FW?KZ )  3F3D/>#//<",.>0A"0@#*1<(?M$) )    %!-#0$=M%8G-H_5Sk1H^6D#,  &2-=,=&3%/%.-93@1=+6%2  +  +&1'42C"5G-:#/  %.&1%!)0?    #    ' #   /)7/=*9& )  "   - + + +   +        +   + ,18>BMS[Z^c^di|V|V}VX~V}V}V}U~V}U}U}U}U~WX~VV~U~U~V~V~V~U}T|SzQzQwNvMsKqInElCiAg>d=`9]5[4X1W0T-R,R,X3P'Q*O)M&L%L%K%K$K%J$J$I#H#I$L&I$K&N*L%K#M$N%O(P)P)S*T+V+X.Z0\1]3^4^6`9_7]5[4Y2Z2X0S+Q(Q(Q)R)P'S-R*Q'Q'S*R*T.T-V.S*S+R+P)O)N'P)N&L$N'P(Q)S)U+U-X/[3^7`9c<d;f=jAoGpIpFpFsIsJuLuNwNxPxOzPzQzR{S{R|SzRyPxOwOwOxQvOwOuLtLtLsLsKrKqJqKrLrMsNuQwTxVxWxXwXwXyZxYvXvWvXuXuY +x[y\ {a(~d,g.i/j/i2i4i5i5~h6}i7~j7}i8~i9~i:~j;~k<k@mAm>m9~l:}l<}l;~m;}l;{j<{k>{k@zjBziAyhE{lG|nH}mG}lG}lG~lF}lE|kC|lB{kB|mC{l@yj>xi?wf=tcS:R:R:R9S:U=XBZD\G\H^J^J^J]I\GZFXEWCV?T=Q;P9N8M7K4K3J3J3J3K3K4N8P:R<S>UCUEUEUEVE^L,cU3gXAobRvoW{rU|uagZySysZ{rslbw:Yu+Pn$Hc6Ql-Mf=Q5G$BY%D[&@T+AU1@ % $*6& +&0      &*7(7" + + &1",   + + $'  ( ) +   + '!   +  +  + + * &+%   + +        + +   + +  + +      + (35>FKQV]aei|V}V|U}U}U}V}V|T|U}U|U|U|U}U~V|U~V~U}U~V~V~V~V~U|T{SzRyPwNvMsKqIoGlEjDhAe;b9`8^7\6[3Z1Y2Y1W/ cDY3X3W1U-T.S.S.T/T.T-R*S*T-V/V/U.U-U-W.W.Y0Z2Z1^5^5a:a:b:e<e;h?h@g?e=c;d=b:`7b9]5Z3[3Y2Z2[1\2[3[2_9]6\4_7]4]4\1\2]3Z0Y0X0Y/Z2W0X0Y0Y1[2\3]6`8e=i?i@lBlBnFpIqItLvOuLvLwNyP{Q{R}T~U~TVVVVVVU~U~U|T|U|U}U|T{S{R{R{Q{RyQyS{U{S|W{W\^aa``_~^^````~^`cg k%m(o)n*n,n/n.n.o0p1o2o3o3p5q6q7q;r9r7r7q:r:r9s8r8q:o9p|l;ziU=T=S<S;Q:P9O7O6M5L4M4N4Q8S=U>V@XDYFZFZHZH\G +]F\G^F`H5rZAwd3jQ*cE.fMT}eth~Zp@]y=]y#D]3Oh4Og1Nf-Le3McPlHc{D_x@[qNg?[s-9/=!7D3I[2FT 5C5L`1>6H4Zt-Qi>^x.Zs+Sk.Mc 8F:QgEZl+CY$0#,%2E*8!+  *G`7Rm3B/@6I 2D-< '0  +  (   + + +    +       ) *    !-->(:  +    +   +     +       +  +         + +,+7BANTX}V|U|U|U{T|U|U}U|U}V|U|U|U}V}V}V}V}U~V~W~VXWXX~V}V|TzQxOwNuMtLqKpImGnGjCg@f?d=c<a;a:`9`;b>`<`;_:^9`:gG`<]9]9\7\6]6]6]4a8_7`8_7`8c;c:c;d;g>f=h@jBlElDmCrImDlClCk@mAk?h=h>e=d<d<d<f<f;f;g?h?pMiAi@h?jCh>h=g<e<e<c:c;c:d;b9c9d:f<g=f=f=g>j?lBnDrGqEsItKtJvLzRzRzP{S}T}Q~S~TWXYYZZYYXXYXXWWZYYY\XVYZYZ\^adgfedecehhgedgh kmqs!s$s&u&s(s)u+u.v.w0w2x4y6w6x5w3x2x4x4x4x3x3x5v6w7w8w8u;v>w@yAxAw?u@u@t>s>s=q;p9m:~k9|h8{g8yg7wd5vb4ub3s`0q]/p\.o[,oZ+nY+nY*nY,lX,lX,mX+mX,mY+nZ/o[0o[0o[/p[-oZ'mY jSgOcL`I^G^G ]F \E[D[EZDZBZBY@Y@ZB[D\E^G_HaJbKaI`G^F]E\DZBY@X?W@W?W@X@X?W>U;S9S9R9T:V<X?YA[E\H]H_I_K_KdPjY!l^(pa1xm_ccst|ijxl`xWoB^v)Ja(E[-F[0N_(DX+Ld1Qg)GZ=VmF[o=TfHbyc|>Rf$8G"9H :J4K]1FX*?N7Rf8Xl.Pf(HZ2SkCkDf?[w;WrF`yRlF^s,EW3D!+!-0B6Og(AR&@S+DZ-;!,$1%2,<0Me'EY#-$05E+Oi6Tn8Rj)>N-8.7$&    +   $0(4!+  "  + !  +    %(8'5'5   &69M&?T#/ +"/#0  +        +                ",,8AA}X}V}W|V|U|U|T|U}V}V}V}V}V|UZ}W}WZ~X~X[YXYZXYX}U|TzQyQwPvPuNsKqJoInGmFlElFkEjChChBgAhBiChBhBhApLjDfAfAgBfAgAg?iBh@iCjCiBjDmGmFnHnHnFnFpHqIrKtMsKtLsKtLqGsJqHrIpGrJoFnDoFnEoGoGqIqHrHqHsKqJpIqJoHpIoEoEoEoDpHmEmEkBkAmCoEoFpIqJqIqIqIsIuHwLzRxOwNzQW~UWY~VVVWXY]\[[[\\\ZYYYZ[\]]_[Z]^]\^_`bhjihiijjjihhijmpswyz"}$}%|%{'|-}0/~02~33.~,~-~13~33~3}1}2|5}6}7~6~9~<=~=~=~>;|;{8z8w8w7u6s7p7o7o5m4j4i4}h/{e+yc)xb)xb,yc+yc,xc+xd)wa'ua%ua#u`%t^'t_*v`*u_)u^'u_"s]qZnXlViRgNeLdJaG`GaH`G`F_F_D_E`FaFbIeLgLiNiOiOhOhOgMeKbHaD_B]B^D^E`G_F^D\B[AZ@Z@ZA\C]D_F`HaIcKcLdMeOfOeNcLaJ_IfPp_*w`Hsir\Ueu{cxIc{2Rj1C$46I#2.=+EY$4(7*;O$6ES$BY,: %/@$BW7Un0I]7OdXo)?Q4D-?-?]u4Nd?^xRp>Zs/>#?Q2TmDh<\sA^t4FWGZqPh}=Sf!5C&12A7Xs:^{(J`!>Q2LdIiLo9Yt7Um#>P2Lb9Tj1J\1<(/1<" + ! (     + +  + +  +  % # $0 #0 % !. &2'7"1          + + + + +           '/16=?}X~W~X}W}V}W}V|Ud[~W}V~X~X~YZ[^[[[^[[[]]\^][[Z~Y~Y|X|X|XySxRwQwPxSxTvRwPwPwQwPvPvQuQvQvQvPuOuQvQuOvOvPvQwQwRxQxQzRyTzUzU{V|W|W}X}X~W~VWW~W~XXX~V}V}U~V|U|T|T|T}T}T~V~U~UV~W~W~WX~W}V}V}U{RzR{R{S{TzS{S|T}V}U~V}U~VWXYZZZ\[^^\[cb]`b_`__``_ea^]]]`^\\_aba_^^_`aeehmmmnoomnnoqrqrtz} %)&%'%$$%'+.0.*(***/347655443323455566553~0z-y+x+y+y(w&v%u&v'u&s&s%t$s!q!popplji~f}bz_w]vYvYv[v[w\w[x[vYvZv[v\x[y^z_za|d|d{czax]uYsXqWqUpTpTpTqTqUpSoSoSnRnRmRnUp\rksnshrZqVqVpUoUnSmRmQrXzh|kxcxdwdzizfyc#y_N~w{}xe{\t;Zu:Q7K B\.A,< %5.?5G2B2C;H bz@[r.O`6Qe:Sf'>Q2B,MeGgAay3Nf9Zu[{gMn>[s4L]3J` 2@$,%8F5Xm>e{4JY.85D &  +  !     +     "* "$ &5F"* +       +    +  + +  +  +  +  +$%-68}X}W~X~W}W}X~W}V}WY~X~WXY[[\[^\]]\\\^^`_``_^][]][[]}X|X}Y|X~Z|W|U~X|U|W{W|W}X|W{W{V|Y{W{V|V{W{W}Y~Y~XYYZ[\\[[]]]\]^^^\]\[\\]][Z[[`__^^_][^][ZZZZZZXXYY[[]^\\`_^_```aaffb`aaababecbcc____`_^^`a`_```bbcdfjmmmnoooqpnqrqtux{!"!"# $(,,'$%(*,/12552//.---03443000242,++)&%~#~!|"|"z!{!{"{#{#{#{ zxxu rpkiec~c~c~d~deeeffecabcfgfec~`|_z^y[y[z\z\y[x[x[y[xZw[w[w[w\ze}t~v}rzby_x_w]v\uZtXv[}d +~i |fw_pUpUu\ ybjA|Xfx{{sm_y?\u,Qn6[y3Sl9Xr/Ne5Ul2QhPdXdyXe{3N[BN 9K( (1B#1,=,CW/Mc?gXzgTrGe9b{8[o'>O;ThOgFgMlEaxVr[t'>N&/,@Q0=5A5Oc&G\L`&I_"CS!DR.IY(?P1?.8$. %#.*S$9K  + "  +  +"   +  .! + +        +%)3;AY~XX~WZ~W~W}W}X~Z~YYY[]]\]]^]^__]^``abaa``aa`^__\]]]_\[[[][\\ZY[]\[\^^^^^`_dc``aabaaba``abbccbbbacba`bbcbcb^^`a``_``_^]^^```acdcdecbcccghgebabccefedcbccb`bdccdbac`babbccbcegklmnopprrpqqqrrsu{ "  "',+&"#&,010./0/+(&&'),../,'&(++)('&%"~~~{ywspnkjiijkmmmliffghhggfeedccdbaa~aa~abc~c~cdlojfe~e~c}a|`~e~e{`y]x]w\vZ|b jl!p*t&s.t_|ChFqKr>YrCb}Vx`zSj9Tf:Qi:M[6OaEO[L^sYj~^j^ezX]pF^rHctVlwMhpJZn?OdGU?L&?T$  , + $  +      !..  +   +  %'-:<\ZYXY[ZZ~ZYZ[[\^]]]___`abc_aacbccbbbfb``__aaa``^ab`baa`_aaaa``babbddebbbdccecccdcdeeeeddddeddcedccdecbccdcbbcccdbbaccccdeegggeeefhfdcdcdfhhdddddfeeeffhgdbcbccefigeeehkmmprpprqprqppppsw| + !"%% &*./-*--+(%#"#&())(%! !"    }~~}zywuqpqpooonnljiihhhhhhgfffefddceegggghhghhgffeecc~c}a|_cmt'v3v;~C\lwti}se~8QgU"?W*< $4): #1$3-=6Tn3? 05I1C0A+:  (6D6Qd-9)6J.Ja0K`9Pe:WpAa{8Ob*@Q%:I&& *7L^=Qe%+6 +  "1 +%6 +"2 !2 +*/>?RAX:a|Ad|8Si':*=.B %6 &6 + . "3 #32B*Nb7H, +(4E5L_0= ##1%EX*M_7Ui/AQ(GY(6*85C,>O%`uA`y@`x3Ym0DT4ET2DQ;O`4DT!.9 + + +     + + +   +        , ) % # !,%1 ( ". " . *!  &* )    +  +     + +  + +  &'\\[a]\\\\]]]]]^__`aababcbbbced +u {ddefggfeecccbbcgefhdeccdeddeeffddccddecfeeecbefdefeedecedgqdeddcdedgfegiihffdefhedgfcccddfeeggfeeffgeddfhffeeedegigfgghijjifefijhjjkllnnpqqqrsspoonmnorvz~ !  "%())('%&(&$! ~|zzyxxxvwwxwsqqpoomnnnmlkjihhhihhhhhggggghiijjkklmkjigfffiiggs~('{"x7N_oQi}`t[t4Nf=T8K / -   #* -+: 0 +&8,.>";P)CZ!/%- / &8),*(9+>". !-0A"0$4".(DX@rZX9^p8Uk!3A) ,9+@R*?N$7E(AO1K]8Wj&:I ! )"8J"4C%5@#%,6 + + # '!/<%7H )  +    +   + %&2#axA[t5Sj:Um'9I(3? (3,AQ#6A   !0BS%9F&0 $+"&9H  %  )'    + + +  &4&3    &     $3*; ". !/&6  +       +    + +  +    + \\]_]^^^^^____``cccbhdgedefgfffggggggffeeefeedcdcceegdfefffgfeedfddeeccddcgebccedeeedeeefdffedebeecddefgfffdfedcbccc`abbbaabcdfhdbdfdccdedcceedcbdcdfgffedddcdggghihijlnonpppqpoqqqmlmqrv{~    !#$())+,+*)('(**(# ~|xusponmkkkkjjiiiiihhhggghgffgggggihhgghijjjjhhggm~#| p h7hP*}#CA/"q+sKp|zy{||~z|r>Vk">RSm`|2Ld4Ne:Pc>Na"1A%2 &"& '     ++&BS'5&5"/&4%' &  +#.#CW:Yp5Tj2B"+%0  +5F&I\4G#  '3 + 2B!=M4K_Cb|2Rf.FW/9*4?Ri6EV,BQ3B2?'1*3.9%+ %3(7I-J)@Q#:G,4-3 $)(P$/()9%DZ*Lb/J`:F "%);L$9I!b{Ji>Uh$  ! +)-9&3     +      +   !0-<0?5F (   + %+4'2 #0*: #0 -$0       &+ ++;+9(5!.        +   +  +]\]_\]]\]]^]_`a`ba`baaaa``__aa`abbccbcbaabbbabdcabbbaab`abdcbbbaaa`b_`aababb```a`bbaabdaa`___`a^````_`_aa`dab`_^__]]]]_]]\]^^\\]c]]^`]]_\Z[\\~Z~Z~Z}Z~Z\[[``_]__]\\\]``abbcdffgijlonnmmllnpppprux|~  !%('%"   ~|yuspomlkklllmkkihffefeedcdeefggffefeeeffghgeeedeeeglnsx$);L3E#CW7Tk'AR,J`;Xp9Xm-Oc1<+Ia)8.<*9;P)8-<,9+:)5'1,8.IbFk>]u>^x=_x1Pg-9!9H(@U(?L)AQ-9+H\<^v:Sj6Wm3Qe/< 4B*@Q'0 (%c"F\ +;0A;P8N&3+DUBZm2Qb;Zo2M_9_{Ck4Ws-Mc$BR$>P-;&DX*DU!5@#>O0J_)BV7F"4B'(CW;^z,CU'1$./:.@S&9J%R,8(DV8SlAa{4Qi+CW2>4>") $&$) (          .$4   +  $'8 # +   +   +   ( !  + +     \ No newline at end of file diff --git a/Examples/Window/Cat.png b/Examples/Window/Cat.png new file mode 100644 index 0000000..8cd509a Binary files /dev/null and b/Examples/Window/Cat.png differ diff --git a/Examples/Window/Program.cs b/Examples/Window/Program.cs index eefaad5..af6c545 100644 --- a/Examples/Window/Program.cs +++ b/Examples/Window/Program.cs @@ -1,66 +1,275 @@ +using System; +using System.IO; +using System.Reflection; +using System.Runtime.InteropServices; +using Microsoft.Win32.SafeHandles; using WaylandNET.Client; using WaylandNET.Client.Protocol; -using var conn = new WaylandClientConnection(); - -var globals = new Dictionary(); -var registry = conn.Display.GetRegistry(); -registry.Global += (_, name, @interface, version) => +public class Window { - globals.Add(@interface, (name, version)); -}; + private const ushort width = 640; + private const ushort height = 400; + private const int size = width * height * 4; -conn.Roundtrip(); + public static void Main() + { + var win = new Window(); + win.Run(); + } -var quit = false; + public unsafe void Run() + { + conn = new WaylandClientConnection(); + try + { + if ((memfd = memfd_create("wayland", MFD_CLOEXEC | MFD_ALLOW_SEALING)).IsInvalid) + { + throw new IOException(Marshal.GetLastPInvokeErrorMessage()); + } + if (ftruncate(memfd, size) == -1) + { + throw new IOException(Marshal.GetLastPInvokeErrorMessage()); + } + if (fcntl(memfd, F_ADD_SEALS, F_SEAL_GROW | F_SEAL_SHRINK | F_SEAL_SEAL) == -1) + { + throw new IOException(Marshal.GetLastPInvokeErrorMessage()); + } + if ((bits = mmap(0, size, PROT_READ | PROT_WRITE, MAP_SHARED, memfd, 0)) == -1) + { + throw new IOException(Marshal.GetLastPInvokeErrorMessage()); + } + using (var image = Assembly.GetExecutingAssembly().GetManifestResourceStream("Window.Cat.img")) + { + image.ReadExactly(new Span((void*)bits, size)); + } -var compositor = registry.Bind(globals["wl_compositor"].Name, "wl_compositor", 4); -var wmBase = registry.Bind(globals["xdg_wm_base"].Name, "xdg_wm_base", 1); -var viewporter = registry.Bind(globals["wp_viewporter"].Name, "wp_viewporter", 1); -var pixel_buffer_manager = registry.Bind( - globals["wp_single_pixel_buffer_manager_v1"].Name, "wp_single_pixel_buffer_manager_v1", 1); + repeatTimer = conn.CreateTimer(); + repeatTimer.Elapsed += RepeatTimerEvent; -var buffer = (WlBuffer)null; + var registry = conn.Display.GetRegistry(); + registry.Global += GlobalEvent; -var surface = compositor.CreateSurface(); -var xdgSurface = wmBase.GetXdgSurface(surface); + conn.Display.Sync().Done += InitEvent; + conn.MessageLoop(); + } + finally + { + conn.Dispose(); + memfd.Dispose(); + munmap(bits, size); + bits = -1; + } + } -var toplevel = xdgSurface.GetToplevel(); -var viewport = viewporter.GetViewport(surface); + private void GlobalEvent(WlRegistry registry, uint name, string iface, uint version) + { + if (iface == "wl_shm") + { + shm = registry.Bind(name, iface, version); + } + else if (iface == "wl_seat") + { + seat = registry.Bind(name, iface, version); + } + else if (iface == "wl_compositor") + { + compositor = registry.Bind(name, iface, version); + } + else if (iface == "xdg_wm_base") + { + xdg_wm_base = registry.Bind(name, iface, version); + } + else if (iface == "zxdg_decoration_manager_v1") + { + zxdg_manager = registry.Bind(name, iface, version); + } + } -surface.Commit(); + private void InitEvent(WlCallback callback, uint data) + { + var pool = shm.CreatePool(memfd, size); + buffer = pool.CreateBuffer(0, width, height, 4 * width, WlShm.FormatEnum.Xrgb8888); + buffer.Release += ReleaseEvent; + pool.Destroy(); -var redraw = null as Action; + seat.Capabilities += CapabilitiesEvent; + xdg_wm_base.Ping += PingEvent; -redraw = () => -{ - surface.Frame().Done += (_, _) => redraw(); - buffer?.Destroy(); - var v = (uint)((Math.Sin((double)((uint)Environment.TickCount % 2500) / 2500d * Math.Tau) * 0.5 + 0.5) * uint.MaxValue); - buffer = pixel_buffer_manager.CreateU32RgbaBuffer(v, v, v, uint.MaxValue); - surface.Attach(buffer, 0, 0); - surface.DamageBuffer(0, 0, 1, 1); - surface.Commit(); -}; - -xdgSurface.Configure += (_, serial) => -{ - xdgSurface.AckConfigure(serial); - redraw(); -}; + surface = compositor.CreateSurface(); + xdg_surface = xdg_wm_base.GetXdgSurface(surface); + xdg_surface.Configure += ConfigureEvent; -toplevel.Configure += (_, newWidth, newHeight, _) => -{ - if (newWidth == 0) newWidth = 1280; - if (newHeight == 0) newHeight = 720; - viewport.SetSource(0, 0, 1, 1); - viewport.SetDestination(newWidth, newHeight); -}; + xdg_toplevel = xdg_surface.GetToplevel(); + xdg_toplevel.SetTitle("Hello Wayland !"); + xdg_toplevel.SetMinSize(width, height); + xdg_toplevel.SetMaxSize(width, height); + xdg_toplevel.Close += CloseEvent; -toplevel.Close += (_) => quit = true; -wmBase.Ping += (_, serial) => wmBase.Pong(serial); + zxdg_decoration = zxdg_manager?.GetToplevelDecoration(xdg_toplevel); -while (!quit) -{ - conn.Read(); + surface.Commit(); + } + + private void CapabilitiesEvent(WlSeat seat, WlSeat.Capability capabilities) + { + if (capabilities.HasFlag(WlSeat.Capability.Keyboard)) + { + if (keyboard == null) + { + keyboard = seat.GetKeyboard(); + keyboard.Keymap += KeymapEvent; + keyboard.RepeatInfo += RepeatInfoEvent; + keyboard.Key += KeyEvent; + } + } + else + { + if (keyboard != null) + { + keyboard.Keymap -= KeymapEvent; + keyboard.RepeatInfo -= RepeatInfoEvent; + keyboard.Key -= KeyEvent; + keyboard = null; + } + } + } + + private void KeymapEvent(WlKeyboard keyboard, WlKeyboard.KeymapFormat format, SafeFileHandle fd, uint size) + { + using (var stream = new FileStream(fd, FileAccess.Read)) + { + } + } + + private void RepeatInfoEvent(WlKeyboard keyboard, int rate, int delay) + { + repeatRate = rate; + repeatDelay = delay; + } + + private void KeyEvent(WlKeyboard keyboard, uint serial, uint time, uint key, WlKeyboard.KeyState state) + { + switch (state) + { + case WlKeyboard.KeyState.Pressed: + repeatKey = key; + if (repeatRate > 0) + { + repeatTimer.SetTimeout(repeatDelay); + repeatTimer.Start(); + } + KeyPressed(key); + break; + + case WlKeyboard.KeyState.Released: + if (key == repeatKey) + { + repeatTimer.Stop(); + } + KeyReleased(key); + break; + + case WlKeyboard.KeyState.Repeated: + KeyPressed(key); + break; + } + } + + private void ConfigureEvent(XdgSurface xdg_surface, uint serial) + { + xdg_surface.AckConfigure(serial); + if (!xdg_configured) + { + surface.Attach(buffer, 0, 0); + surface.Commit(); + xdg_configured = true; + } + } + + private void RepeatTimerEvent(IClientTimer timer) + { + if (!timer.Running) + { + timer.SetTimeout(1000 / repeatRate, true); + timer.Start(); + } + KeyPressed(repeatKey); + } + + private void CloseEvent(XdgToplevel xdg_toplevel) + { + zxdg_decoration?.Destroy(); + xdg_toplevel.Destroy(); + xdg_surface.Destroy(); + surface.Destroy(); + xdg_configured = false; + } + + private void ReleaseEvent(WlBuffer buffer) + { + buffer.Destroy(); + conn.Quit(); + } + + private void KeyPressed(uint key) + { + Console.WriteLine("key pressed: " + key); + } + + private void KeyReleased(uint key) + { + Console.WriteLine("key released: " + key); + } + + private WaylandClientConnection conn; + + private WlShm shm; + private WlSeat seat; + private WlCompositor compositor; + private XdgWmBase xdg_wm_base; + private ZxdgDecorationManagerV1 zxdg_manager; + + private WlSurface surface; + private XdgSurface xdg_surface; + private XdgToplevel xdg_toplevel; + private ZxdgToplevelDecorationV1 zxdg_decoration; + private bool xdg_configured; + + private WlBuffer buffer; + private SafeFileHandle memfd; + private IntPtr bits = -1; + + private WlKeyboard keyboard; + private int repeatRate; + private int repeatDelay; + private uint repeatKey; + private IClientTimer repeatTimer; + + private static void PingEvent(XdgWmBase xdg_wm_base, uint serial) => xdg_wm_base.Pong(serial); + + [DllImport("libc", SetLastError = true)] + private static extern SafeFileHandle memfd_create(string name, uint flags); + + [DllImport("libc", SetLastError = true)] + private static extern int ftruncate(SafeHandle fd, long length); + + [DllImport("libc", SetLastError = true)] + private static extern int fcntl(SafeHandle fd, int cmd, int arg); + + [DllImport("libc", SetLastError = true)] + private static extern IntPtr mmap(IntPtr addr, IntPtr length, int prot, int flags, SafeHandle fd, long offset); + + [DllImport("libc", SetLastError = true)] + private static extern int munmap(IntPtr addr, IntPtr length); + + private const int MFD_CLOEXEC = 0x0001; + private const int MFD_ALLOW_SEALING = 0x0002; + private const int F_ADD_SEALS = 1033; + private const int F_SEAL_GROW = 0x0004; + private const int F_SEAL_SHRINK = 0x0002; + private const int F_SEAL_SEAL = 0x0001; + private const int PROT_READ = 1; + private const int PROT_WRITE = 2; + private const int MAP_SHARED = 1; } diff --git a/Examples/Window/Protocol/SinglePixelBuffer.cs b/Examples/Window/Protocol/SinglePixelBuffer.cs deleted file mode 100644 index 42f5bf3..0000000 --- a/Examples/Window/Protocol/SinglePixelBuffer.cs +++ /dev/null @@ -1,115 +0,0 @@ -/// Copyright © 2022 Simon Ser -/// -/// Permission is hereby granted, free of charge, to any person obtaining a -/// copy of this software and associated documentation files (the "Software"), -/// to deal in the Software without restriction, including without limitation -/// the rights to use, copy, modify, merge, publish, distribute, sublicense, -/// and/or sell copies of the Software, and to permit persons to whom the -/// Software is furnished to do so, subject to the following conditions: -/// -/// The above copyright notice and this permission notice (including the next -/// paragraph) shall be included in all copies or substantial portions of the -/// Software. -/// -/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -/// DEALINGS IN THE SOFTWARE. -#pragma warning disable 0162 -using System; -using WaylandNET; -using WaylandNET.Client; -///

-/// single pixel buffer factory -/// -/// This protocol extension allows clients to create single-pixel buffers. -/// -/// Compositors supporting this protocol extension should also support the -/// viewporter protocol extension. Clients may use viewporter to scale a -/// single-pixel buffer to a desired size. -/// -/// Warning! The protocol described in this file is currently in the testing -/// phase. Backward compatible changes may be added together with the -/// corresponding interface version bump. Backward incompatible changes can -/// only be done by creating a new major version of the extension. -/// -/// -namespace WaylandNET.Client.Protocol -{ - /// wp_single_pixel_buffer_manager_v1 version 1 - /// - /// global factory for single-pixel buffers - /// - /// The wp_single_pixel_buffer_manager_v1 interface is a factory for - /// single-pixel buffers. - /// - /// - public sealed class WpSinglePixelBufferManagerV1 : WaylandClientObject - { - public WpSinglePixelBufferManagerV1(uint id, uint version, WaylandClientConnection connection) : base("wp_single_pixel_buffer_manager_v1", id, version, connection) - { - } - public enum RequestOpcode : ushort - { - Destroy, - CreateU32RgbaBuffer, - } - public enum EventOpcode : ushort - { - } - public override void Handle(ushort opcode, params object[] arguments) - { - switch ((EventOpcode)opcode) - { - default: - throw new ArgumentOutOfRangeException("unknown event"); - } - } - public override WaylandType[] Arguments(ushort opcode) - { - switch ((EventOpcode)opcode) - { - default: - throw new ArgumentOutOfRangeException("unknown event"); - } - } - /// - /// destroy the manager - /// - /// Destroy the wp_single_pixel_buffer_manager_v1 object. - /// - /// The child objects created via this interface are unaffected. - /// - /// - public void Destroy() - { - Marshal((ushort)RequestOpcode.Destroy); - Die(); - } - /// - /// create a 1×1 buffer from 32-bit RGBA values - /// - /// Create a single-pixel buffer from four 32-bit RGBA values. - /// - /// Unless specified in another protocol extension, the RGBA values use - /// pre-multiplied alpha. - /// - /// The width and height of the buffer are 1. - /// - /// - /// value of the buffer's red channel - /// value of the buffer's green channel - /// value of the buffer's blue channel - /// value of the buffer's alpha channel - public WlBuffer CreateU32RgbaBuffer(uint r, uint g, uint b, uint a) - { - uint id = Connection.AllocateId(); - Marshal((ushort)RequestOpcode.CreateU32RgbaBuffer, id, r, g, b, a); - Connection[id] = new WlBuffer(id, Version, ClientConnection); - return (WlBuffer)Connection[id]; - } - } -} diff --git a/Examples/Window/Protocol/Viewporter.cs b/Examples/Window/Protocol/Viewporter.cs deleted file mode 100644 index 29bc533..0000000 --- a/Examples/Window/Protocol/Viewporter.cs +++ /dev/null @@ -1,261 +0,0 @@ -/// Copyright © 2013-2016 Collabora, Ltd. -/// -/// Permission is hereby granted, free of charge, to any person obtaining a -/// copy of this software and associated documentation files (the "Software"), -/// to deal in the Software without restriction, including without limitation -/// the rights to use, copy, modify, merge, publish, distribute, sublicense, -/// and/or sell copies of the Software, and to permit persons to whom the -/// Software is furnished to do so, subject to the following conditions: -/// -/// The above copyright notice and this permission notice (including the next -/// paragraph) shall be included in all copies or substantial portions of the -/// Software. -/// -/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -/// DEALINGS IN THE SOFTWARE. -#pragma warning disable 0162 -using System; -using WaylandNET; -using WaylandNET.Client; -namespace WaylandNET.Client.Protocol -{ - /// wp_viewporter version 1 - /// - /// surface cropping and scaling - /// - /// The global interface exposing surface cropping and scaling - /// capabilities is used to instantiate an interface extension for a - /// wl_surface object. This extended interface will then allow - /// cropping and scaling the surface contents, effectively - /// disconnecting the direct relationship between the buffer and the - /// surface size. - /// - /// - public sealed class WpViewporter : WaylandClientObject - { - public WpViewporter(uint id, uint version, WaylandClientConnection connection) : base("wp_viewporter", id, version, connection) - { - } - public enum RequestOpcode : ushort - { - Destroy, - GetViewport, - } - public enum EventOpcode : ushort - { - } - public override void Handle(ushort opcode, params object[] arguments) - { - switch ((EventOpcode)opcode) - { - default: - throw new ArgumentOutOfRangeException("unknown event"); - } - } - public override WaylandType[] Arguments(ushort opcode) - { - switch ((EventOpcode)opcode) - { - default: - throw new ArgumentOutOfRangeException("unknown event"); - } - } - public enum Error : int - { - ViewportExists = 0, - } - /// - /// unbind from the cropping and scaling interface - /// - /// Informs the server that the client will not be using this - /// protocol object anymore. This does not affect any other objects, - /// wp_viewport objects included. - /// - /// - public void Destroy() - { - Marshal((ushort)RequestOpcode.Destroy); - Die(); - } - /// - /// extend surface interface for crop and scale - /// - /// Instantiate an interface extension for the given wl_surface to - /// crop and scale its content. If the given wl_surface already has - /// a wp_viewport object associated, the viewport_exists - /// protocol error is raised. - /// - /// - /// the new viewport interface id - /// the surface - public WpViewport GetViewport(WlSurface surface) - { - uint id = Connection.AllocateId(); - Marshal((ushort)RequestOpcode.GetViewport, id, surface.Id); - Connection[id] = new WpViewport(id, Version, ClientConnection); - return (WpViewport)Connection[id]; - } - } - /// wp_viewport version 1 - /// - /// crop and scale interface to a wl_surface - /// - /// An additional interface to a wl_surface object, which allows the - /// client to specify the cropping and scaling of the surface - /// contents. - /// - /// This interface works with two concepts: the source rectangle (src_x, - /// src_y, src_width, src_height), and the destination size (dst_width, - /// dst_height). The contents of the source rectangle are scaled to the - /// destination size, and content outside the source rectangle is ignored. - /// This state is double-buffered, and is applied on the next - /// wl_surface.commit. - /// - /// The two parts of crop and scale state are independent: the source - /// rectangle, and the destination size. Initially both are unset, that - /// is, no scaling is applied. The whole of the current wl_buffer is - /// used as the source, and the surface size is as defined in - /// wl_surface.attach. - /// - /// If the destination size is set, it causes the surface size to become - /// dst_width, dst_height. The source (rectangle) is scaled to exactly - /// this size. This overrides whatever the attached wl_buffer size is, - /// unless the wl_buffer is NULL. If the wl_buffer is NULL, the surface - /// has no content and therefore no size. Otherwise, the size is always - /// at least 1x1 in surface local coordinates. - /// - /// If the source rectangle is set, it defines what area of the wl_buffer is - /// taken as the source. If the source rectangle is set and the destination - /// size is not set, then src_width and src_height must be integers, and the - /// surface size becomes the source rectangle size. This results in cropping - /// without scaling. If src_width or src_height are not integers and - /// destination size is not set, the bad_size protocol error is raised when - /// the surface state is applied. - /// - /// The coordinate transformations from buffer pixel coordinates up to - /// the surface-local coordinates happen in the following order: - /// 1. buffer_transform (wl_surface.set_buffer_transform) - /// 2. buffer_scale (wl_surface.set_buffer_scale) - /// 3. crop and scale (wp_viewport.set*) - /// This means, that the source rectangle coordinates of crop and scale - /// are given in the coordinates after the buffer transform and scale, - /// i.e. in the coordinates that would be the surface-local coordinates - /// if the crop and scale was not applied. - /// - /// If src_x or src_y are negative, the bad_value protocol error is raised. - /// Otherwise, if the source rectangle is partially or completely outside of - /// the non-NULL wl_buffer, then the out_of_buffer protocol error is raised - /// when the surface state is applied. A NULL wl_buffer does not raise the - /// out_of_buffer error. - /// - /// If the wl_surface associated with the wp_viewport is destroyed, - /// all wp_viewport requests except 'destroy' raise the protocol error - /// no_surface. - /// - /// If the wp_viewport object is destroyed, the crop and scale - /// state is removed from the wl_surface. The change will be applied - /// on the next wl_surface.commit. - /// - /// - public sealed class WpViewport : WaylandClientObject - { - public WpViewport(uint id, uint version, WaylandClientConnection connection) : base("wp_viewport", id, version, connection) - { - } - public enum RequestOpcode : ushort - { - Destroy, - SetSource, - SetDestination, - } - public enum EventOpcode : ushort - { - } - public override void Handle(ushort opcode, params object[] arguments) - { - switch ((EventOpcode)opcode) - { - default: - throw new ArgumentOutOfRangeException("unknown event"); - } - } - public override WaylandType[] Arguments(ushort opcode) - { - switch ((EventOpcode)opcode) - { - default: - throw new ArgumentOutOfRangeException("unknown event"); - } - } - public enum Error : int - { - BadValue = 0, - BadSize = 1, - OutOfBuffer = 2, - NoSurface = 3, - } - /// - /// remove scaling and cropping from the surface - /// - /// The associated wl_surface's crop and scale state is removed. - /// The change is applied on the next wl_surface.commit. - /// - /// - public void Destroy() - { - Marshal((ushort)RequestOpcode.Destroy); - Die(); - } - /// - /// set the source rectangle for cropping - /// - /// Set the source rectangle of the associated wl_surface. See - /// wp_viewport for the description, and relation to the wl_buffer - /// size. - /// - /// If all of x, y, width and height are -1.0, the source rectangle is - /// unset instead. Any other set of values where width or height are zero - /// or negative, or x or y are negative, raise the bad_value protocol - /// error. - /// - /// The crop and scale state is double-buffered state, and will be - /// applied on the next wl_surface.commit. - /// - /// - /// source rectangle x - /// source rectangle y - /// source rectangle width - /// source rectangle height - public void SetSource(double x, double y, double width, double height) - { - Marshal((ushort)RequestOpcode.SetSource, x, y, width, height); - } - /// - /// set the surface size for scaling - /// - /// Set the destination size of the associated wl_surface. See - /// wp_viewport for the description, and relation to the wl_buffer - /// size. - /// - /// If width is -1 and height is -1, the destination size is unset - /// instead. Any other pair of values for width and height that - /// contains zero or negative values raises the bad_value protocol - /// error. - /// - /// The crop and scale state is double-buffered state, and will be - /// applied on the next wl_surface.commit. - /// - /// - /// surface width - /// surface height - public void SetDestination(int width, int height) - { - Marshal((ushort)RequestOpcode.SetDestination, width, height); - } - } -} diff --git a/Examples/Window/Protocol/Wayland.cs b/Examples/Window/Protocol/Wayland.cs index e9d2197..62a42ef 100644 --- a/Examples/Window/Protocol/Wayland.cs +++ b/Examples/Window/Protocol/Wayland.cs @@ -22,13 +22,13 @@ /// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN /// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE /// SOFTWARE. -#pragma warning disable 0162 using System; +using Microsoft.Win32.SafeHandles; using WaylandNET; using WaylandNET.Client; namespace WaylandNET.Client.Protocol { - /// wl_compositor version 6 + /// wl_compositor version 7 /// /// the compositor singleton /// @@ -46,6 +46,7 @@ public enum RequestOpcode : ushort { CreateSurface, CreateRegion, + Release, } public enum EventOpcode : ushort { @@ -94,8 +95,19 @@ public WlRegion CreateRegion() Connection[id] = new WlRegion(id, Version, ClientConnection); return (WlRegion)Connection[id]; } + /// + /// destroy wl_compositor + /// + /// This request destroys the wl_compositor. This has no effect on any other objects. + /// + /// + public void Release() + { + Marshal((ushort)RequestOpcode.Release); + Die(); + } } - /// wl_shm_pool version 1 + /// wl_shm_pool version 2 /// /// a shared memory pool /// @@ -203,7 +215,7 @@ public void Resize(int size) Marshal((ushort)RequestOpcode.Resize, size); } } - /// wl_shm version 1 + /// wl_shm version 2 /// /// shared memory support /// @@ -226,6 +238,7 @@ public WlShm(uint id, uint version, WaylandClientConnection connection) : base(" public enum RequestOpcode : ushort { CreatePool, + Release, } public enum EventOpcode : ushort { @@ -237,6 +250,10 @@ public enum EventOpcode : ushort /// Informs the client about a valid pixel format that /// can be used for buffers. Known formats include /// argb8888 and xrgb8888. + /// + /// Extensions to drm_fourcc.h (or the format enum) do not require + /// increasing the wl_shm version; as a result, clients may receive format + /// codes which were not in the list at the time the client was made. /// /// /// buffer pixel format @@ -265,7 +282,6 @@ public override WaylandType[] Arguments(ushort opcode) { WaylandType.UInt, }; - break; default: throw new ArgumentOutOfRangeException("unknown event"); } @@ -293,7 +309,8 @@ public enum Error : int /// /// The drm format codes match the macros defined in drm_fourcc.h, except /// argb8888 and xrgb8888. The formats actually supported by the compositor - /// will be reported by the format event. + /// will be reported by the format event. See drm_fourcc.h for more detailed + /// format descriptions. /// /// For all wl_shm formats and unless specified in another protocol /// extension, pre-multiplied alpha is used for pixel values. @@ -409,6 +426,41 @@ public enum FormatEnum : int Xbgr16161616 = 942948952, Argb16161616 = 942953025, Abgr16161616 = 942948929, + C1 = 538980675, + C2 = 538980931, + C4 = 538981443, + D1 = 538980676, + D2 = 538980932, + D4 = 538981444, + D8 = 538982468, + R1 = 538980690, + R2 = 538980946, + R4 = 538981458, + R10 = 540029266, + R12 = 540160338, + Avuy8888 = 1498764865, + Xvuy8888 = 1498764888, + P030 = 808661072, + Rgb161616 = 942950226, + Bgr161616 = 942950210, + R16f = 1210064978, + Gr1616f = 1210077767, + Bgr161616f = 1213351746, + R32f = 1176510546, + Gr3232f = 1176523335, + Bgr323232f = 1179797314, + Abgr32323232f = 1178092097, + Nv20 = 808605262, + Nv30 = 808670798, + S010 = 808530003, + S210 = 808530515, + S410 = 808531027, + S012 = 842084435, + S212 = 842084947, + S412 = 842085459, + S016 = 909193299, + S216 = 909193811, + S416 = 909194323, } /// /// create a shm pool @@ -423,13 +475,27 @@ public enum FormatEnum : int /// pool to create /// file descriptor for the pool /// pool size, in bytes - public WlShmPool CreatePool(IntPtr fd, int size) + public WlShmPool CreatePool(SafeFileHandle fd, int size) { uint id = Connection.AllocateId(); Marshal((ushort)RequestOpcode.CreatePool, id, fd, size); Connection[id] = new WlShmPool(id, Version, ClientConnection); return (WlShmPool)Connection[id]; } + /// + /// release the shm object + /// + /// Using this request a client can tell the server that it is not going to + /// use the shm object anymore. + /// + /// Objects created via this interface remain unaffected. + /// + /// + public void Release() + { + Marshal((ushort)RequestOpcode.Release); + Die(); + } } /// wl_buffer version 1 /// @@ -442,9 +508,11 @@ public WlShmPool CreatePool(IntPtr fd, int size) /// client provides and updates the contents is defined by the buffer factory /// interface. /// - /// If the buffer uses a format that has an alpha channel, the alpha channel - /// is assumed to be premultiplied in the color channels unless otherwise - /// specified. + /// Color channels are assumed to be electrical rather than optical (in other + /// words, encoded with a transfer function) unless otherwise specified. If + /// the buffer uses a format that has an alpha channel, the alpha channel is + /// assumed to be premultiplied into the electrical color channel values + /// (after transfer function encoding) unless otherwise specified. /// /// Note, because wl_buffer objects are created from multiple independent /// factory interfaces, the wl_buffer interface is frozen at version 1. @@ -467,8 +535,10 @@ public enum EventOpcode : ushort /// compositor releases buffer /// /// Sent when this wl_buffer is no longer used by the compositor. - /// The client is now free to reuse or destroy this buffer and its - /// backing storage. + /// + /// For more information on when release events may or may not be sent, + /// and what consequences it has, please see the description of + /// wl_surface.attach. /// /// If a client receives a release event before the frame callback /// requested in the same wl_surface.commit that attaches this @@ -503,7 +573,6 @@ public override WaylandType[] Arguments(ushort opcode) return new WaylandType[] { }; - break; default: throw new ArgumentOutOfRangeException("unknown event"); } @@ -523,7 +592,7 @@ public void Destroy() Die(); } } - /// wl_data_offer version 3 + /// wl_data_offer version 4 /// /// offer to transfer data /// @@ -654,19 +723,16 @@ public override WaylandType[] Arguments(ushort opcode) { WaylandType.String, }; - break; case EventOpcode.SourceActions: return new WaylandType[] { WaylandType.UInt, }; - break; case EventOpcode.Action: return new WaylandType[] { WaylandType.UInt, }; - break; default: throw new ArgumentOutOfRangeException("unknown event"); } @@ -725,7 +791,7 @@ public void Accept(uint serial, string mimeType) /// /// mime type desired by receiver /// file descriptor for data transfer - public void Receive(string mimeType, IntPtr fd) + public void Receive(string mimeType, SafeFileHandle fd) { Marshal((ushort)RequestOpcode.Receive, mimeType, fd); } @@ -806,7 +872,7 @@ public void SetActions(WlDataDeviceManager.DndAction dndActions, WlDataDeviceMan Marshal((ushort)RequestOpcode.SetActions, (uint)dndActions, (uint)preferredAction); } } - /// wl_data_source version 3 + /// wl_data_source version 4 /// /// offer to transfer data /// @@ -857,7 +923,7 @@ public enum EventOpcode : ushort /// /// mime type for the data /// file descriptor for the data - public delegate void SendHandler(WlDataSource wlDataSource, string mimeType, IntPtr fd); + public delegate void SendHandler(WlDataSource wlDataSource, string mimeType, SafeFileHandle fd); /// /// selection was cancelled /// @@ -891,8 +957,8 @@ public enum EventOpcode : ushort /// acceptance, wl_data_source.cancelled may still be emitted afterwards /// if the drop destination does not accept any mime type. /// - /// However, this event might however not be received if the compositor - /// cancelled the drag-and-drop operation before this event could happen. + /// However, this event might not be received if the compositor cancelled + /// the drag-and-drop operation before this event could happen. /// /// Note that the data_source may still be used in the future and should /// not be destroyed here. @@ -935,7 +1001,7 @@ public enum EventOpcode : ushort /// The most recent action received is always the valid one. The chosen /// action may change alongside negotiation (e.g. an "ask" action can turn /// into a "move" operation), so the effects of the final action must - /// always be applied in wl_data_offer.dnd_finished. + /// always be applied in wl_data_source.dnd_finished. /// /// Clients can trigger cursor surface changes from this point, so /// they reflect the current action. @@ -962,7 +1028,7 @@ public override void Handle(ushort opcode, params object[] arguments) case EventOpcode.Send: { var mimeType = (string)arguments[0]; - var fd = (IntPtr)arguments[1]; + var fd = (SafeFileHandle)arguments[1]; Send?.Invoke(this, mimeType, fd); break; } @@ -1000,35 +1066,29 @@ public override WaylandType[] Arguments(ushort opcode) { WaylandType.String, }; - break; case EventOpcode.Send: return new WaylandType[] { WaylandType.String, WaylandType.Handle, }; - break; case EventOpcode.Cancelled: return new WaylandType[] { }; - break; case EventOpcode.DndDropPerformed: return new WaylandType[] { }; - break; case EventOpcode.DndFinished: return new WaylandType[] { }; - break; case EventOpcode.Action: return new WaylandType[] { WaylandType.UInt, }; - break; default: throw new ArgumentOutOfRangeException("unknown event"); } @@ -1086,7 +1146,7 @@ public void SetActions(WlDataDeviceManager.DndAction dndActions) Marshal((ushort)RequestOpcode.SetActions, (uint)dndActions); } } - /// wl_data_device version 3 + /// wl_data_device version 4 /// /// data transfer device /// @@ -1269,7 +1329,6 @@ public override WaylandType[] Arguments(ushort opcode) { WaylandType.NewId, }; - break; case EventOpcode.Enter: return new WaylandType[] { @@ -1279,12 +1338,10 @@ public override WaylandType[] Arguments(ushort opcode) WaylandType.Fixed, WaylandType.Object, }; - break; case EventOpcode.Leave: return new WaylandType[] { }; - break; case EventOpcode.Motion: return new WaylandType[] { @@ -1292,18 +1349,15 @@ public override WaylandType[] Arguments(ushort opcode) WaylandType.Fixed, WaylandType.Fixed, }; - break; case EventOpcode.Drop: return new WaylandType[] { }; - break; case EventOpcode.Selection: return new WaylandType[] { WaylandType.Object, }; - break; default: throw new ArgumentOutOfRangeException("unknown event"); } @@ -1311,6 +1365,7 @@ public override WaylandType[] Arguments(ushort opcode) public enum Error : int { Role = 0, + UsedSource = 1, } /// /// start drag-and-drop operation @@ -1332,7 +1387,7 @@ public enum Error : int /// The icon surface is an optional (can be NULL) surface that /// provides an icon to be moved around with the cursor. Initially, /// the top-left corner of the icon surface is placed at the cursor - /// hotspot, but subsequent wl_surface.attach request can move the + /// hotspot, but subsequent wl_surface.offset requests can move the /// relative position. Attach requests must be confirmed with /// wl_surface.commit as usual. The icon surface is given the role of /// a drag-and-drop icon. If the icon surface already has another role, @@ -1340,6 +1395,10 @@ public enum Error : int /// /// The input region is ignored for wl_surfaces with the role of a /// drag-and-drop icon. + /// + /// The given source may not be used in any further set_selection or + /// start_drag requests. Attempting to reuse a previously-used source + /// may send a used_source error. /// /// /// data source for the eventual transfer @@ -1357,6 +1416,10 @@ public void StartDrag(WlDataSource source, WlSurface origin, WlSurface icon, uin /// to the data from the source on behalf of the client. /// /// To unset the selection, set the source to NULL. + /// + /// The given source may not be used in any further set_selection or + /// start_drag requests. Attempting to reuse a previously-used source + /// may send a used_source error. /// /// /// data source for the selection @@ -1377,7 +1440,7 @@ public void Release() Die(); } } - /// wl_data_device_manager version 3 + /// wl_data_device_manager version 4 /// /// data transfer interface /// @@ -1402,6 +1465,7 @@ public enum RequestOpcode : ushort { CreateDataSource, GetDataDevice, + Release, } public enum EventOpcode : ushort { @@ -1487,6 +1551,18 @@ public WlDataDevice GetDataDevice(WlSeat seat) Connection[id] = new WlDataDevice(id, Version, ClientConnection); return (WlDataDevice)Connection[id]; } + /// + /// destroy wl_data_device_manager + /// + /// This request destroys the wl_data_device_manager. This has no effect on any other + /// objects. + /// + /// + public void Release() + { + Marshal((ushort)RequestOpcode.Release); + Die(); + } } /// wl_shell version 1 /// @@ -1679,7 +1755,6 @@ public override WaylandType[] Arguments(ushort opcode) { WaylandType.UInt, }; - break; case EventOpcode.Configure: return new WaylandType[] { @@ -1687,12 +1762,10 @@ public override WaylandType[] Arguments(ushort opcode) WaylandType.Int, WaylandType.Int, }; - break; case EventOpcode.PopupDone: return new WaylandType[] { }; - break; default: throw new ArgumentOutOfRangeException("unknown event"); } @@ -1964,7 +2037,7 @@ public void SetClass(string @class) Marshal((ushort)RequestOpcode.SetClass, @class); } } - /// wl_surface version 6 + /// wl_surface version 7 /// /// an onscreen surface /// @@ -2030,6 +2103,7 @@ public enum RequestOpcode : ushort SetBufferScale, DamageBuffer, Offset, + GetRelease, } public enum EventOpcode : ushort { @@ -2072,10 +2146,15 @@ public enum EventOpcode : ushort /// This event indicates the preferred buffer scale for this surface. It is /// sent whenever the compositor's preference changes. /// + /// Before receiving this event the preferred buffer scale for this surface + /// is 1. + /// /// It is intended that scaling aware clients use this event to scale their /// content and use wl_surface.set_buffer_scale to indicate the scale they /// have rendered with. This allows clients to supply a higher detail /// buffer. + /// + /// The compositor shall emit a scale value greater than 0. /// /// /// preferred scaling factor @@ -2086,9 +2165,12 @@ public enum EventOpcode : ushort /// This event indicates the preferred buffer transform for this surface. /// It is sent whenever the compositor's preference changes. /// - /// It is intended that transform aware clients use this event to apply the - /// transform to their content and use wl_surface.set_buffer_transform to - /// indicate the transform they have rendered with. + /// Before receiving this event the preferred buffer transform for this + /// surface is normal. + /// + /// Applying this transformation to the surface buffer contents and using + /// wl_surface.set_buffer_transform might allow the compositor to use the + /// surface buffer more efficiently. /// /// /// preferred transform @@ -2138,25 +2220,21 @@ public override WaylandType[] Arguments(ushort opcode) { WaylandType.Object, }; - break; case EventOpcode.Leave: return new WaylandType[] { WaylandType.Object, }; - break; case EventOpcode.PreferredBufferScale: return new WaylandType[] { WaylandType.Int, }; - break; case EventOpcode.PreferredBufferTransform: return new WaylandType[] { WaylandType.UInt, }; - break; default: throw new ArgumentOutOfRangeException("unknown event"); } @@ -2174,6 +2252,7 @@ public enum Error : int InvalidSize = 2, InvalidOffset = 3, DefunctRoleObject = 4, + NoBuffer = 5, } /// /// delete surface @@ -2233,8 +2312,11 @@ public void Destroy() /// If a pending wl_buffer has been committed to more than one wl_surface, /// the delivery of wl_buffer.release events becomes undefined. A well /// behaved client should not rely on wl_buffer.release events in this - /// case. Alternatively, a client could create multiple wl_buffer objects - /// from the same backing storage or use wp_linux_buffer_release. + /// case. Instead, clients hitting this case should use + /// wl_surface.get_release or use a protocol extension providing per-commit + /// release notifications (if none of these options are available, a + /// fallback can be implemented by creating multiple wl_buffer objects from + /// the same backing storage). /// /// Destroying the wl_buffer after wl_buffer.release does not change /// the surface contents. Destroying the wl_buffer before wl_buffer.release @@ -2246,6 +2328,13 @@ public void Destroy() /// /// If wl_surface.attach is sent with a NULL wl_buffer, the /// following wl_surface.commit will remove the surface content. + /// + /// If a pending wl_buffer has been destroyed, the result is not specified. + /// Many compositors are known to remove the surface content on the following + /// wl_surface.commit, but this behaviour is not universal. Clients seeking to + /// maximise compatibility should not destroy pending buffers and should + /// ensure that they explicitly remove content from surfaces, even after + /// destroying buffers. /// /// /// buffer of surface contents @@ -2405,21 +2494,50 @@ public void SetInputRegion(WlRegion region) /// /// Surface state (input, opaque, and damage regions, attached buffers, /// etc.) is double-buffered. Protocol requests modify the pending state, - /// as opposed to the current state in use by the compositor. A commit - /// request atomically applies all pending state, replacing the current - /// state. After commit, the new pending state is as documented for each - /// related request. - /// - /// On commit, a pending wl_buffer is applied first, and all other state - /// second. This means that all coordinates in double-buffered state are - /// relative to the new wl_buffer coming into use, except for - /// wl_surface.attach itself. If there is no pending wl_buffer, the - /// coordinates are relative to the current surface contents. + /// as opposed to the active state in use by the compositor. /// /// All requests that need a commit to become effective are documented /// to affect double-buffered state. /// /// Other interfaces may add further double-buffered surface state. + /// + /// A commit request atomically creates a Content Update (CU) from the + /// pending state, even if the pending state has not been touched. The + /// content update is placed at the end of a per-surface queue until it + /// becomes active. After commit, the new pending state is as documented for + /// each related request. + /// + /// A CU is either a Desync Content Update (DCU) or a Sync Content Update + /// (SCU). If the surface is effectively synchronized at the commit request, + /// it is a SCU, otherwise a DCU. + /// + /// When a surface transitions from effectively synchronized to effectively + /// desynchronized, all SCUs in its queue which are not reachable by any + /// DCU become DCUs and dependency edges from outside the queue to these CUs + /// are removed. + /// + /// See wl_subsurface for the definition of 'effectively synchronized' and + /// 'effectively desynchronized'. + /// + /// When a CU is placed in the queue, the CU has a dependency on the CU in + /// front of it and to the SCU at end of the queue of every direct child + /// surface if that SCU exists and does not have another dependent. This can + /// form a directed acyclic graph of CUs with dependencies as edges. + /// + /// In addition to surface state, the CU can have constraints that must be + /// satisfied before it can be applied. Other interfaces may add CU + /// constraints. + /// + /// All DCUs which do not have a SCU in front of themselves in their queue, + /// are candidates. If the graph that's reachable by a candidate does not + /// have any unsatisfied constraints, the entire graph must be applied + /// atomically. + /// + /// When a CU is applied, the wl_buffer is applied before all other state. + /// This means that all coordinates in double-buffered state are relative to + /// the newly attached wl_buffers, except for wl_surface.attach itself. If + /// there is no newly attached wl_buffer, the coordinates are relative to + /// the previous content update. /// /// public void Commit() @@ -2429,10 +2547,12 @@ public void Commit() /// /// sets the buffer transformation /// - /// This request sets an optional transformation on how the compositor - /// interprets the contents of the buffer attached to the surface. The - /// accepted values for the transform parameter are the values for - /// wl_output.transform. + /// This request sets the transformation that the client has already applied + /// to the content of the buffer. The accepted values for the transform + /// parameter are the values for wl_output.transform. + /// + /// The compositor applies the inverse of this transformation whenever it + /// uses the buffer contents. /// /// Buffer transform is double-buffered state, see wl_surface.commit. /// @@ -2489,11 +2609,11 @@ public void SetBufferTransform(WlOutput.Transform transform) /// a buffer that is larger (by a factor of scale in each dimension) /// than the desired surface size. /// - /// If scale is not positive the invalid_scale protocol error is + /// If scale is not greater than 0 the invalid_scale protocol error is /// raised. /// /// - /// positive scale for interpreting buffer contents + /// scale for interpreting buffer contents public void SetBufferScale(int scale) { Marshal((ushort)RequestOpcode.SetBufferScale, scale); @@ -2552,6 +2672,9 @@ public void DamageBuffer(int x, int y, int width, int height) /// x and y, combined with the new surface size define in which /// directions the surface's size changes. /// + /// The exact semantics of wl_surface.offset are role-specific. Refer to + /// the documentation of specific roles for more information. + /// /// Surface location offset is double-buffered state, see /// wl_surface.commit. /// @@ -2566,8 +2689,39 @@ public void Offset(int x, int y) { Marshal((ushort)RequestOpcode.Offset, x, y); } + /// + /// get a release callback + /// + /// Create a callback for the release of the buffer attached by the client + /// with wl_surface.attach. + /// + /// The compositor will release the buffer when it has finished its usage of + /// the underlying storage for the relevant commit. Once the client receives + /// this event, and assuming the associated buffer is not pending release + /// from other wl_surface.commit requests, the client can safely re-use the + /// buffer. + /// + /// Release callbacks are double-buffered state, and will be associated + /// with the pending buffer at wl_surface.commit time. + /// + /// The callback_data passed in the wl_callback.done event is unused and + /// is always zero. + /// + /// Sending this request without attaching a non-null buffer in the same + /// content update is a protocol error. The compositor will send the + /// no_buffer error in this case. + /// + /// + /// callback object for the release + public WlCallback GetRelease() + { + uint callback = Connection.AllocateId(); + Marshal((ushort)RequestOpcode.GetRelease, callback); + Connection[callback] = new WlCallback(callback, Version, ClientConnection); + return (WlCallback)Connection[callback]; + } } - /// wl_seat version 9 + /// wl_seat version 10 /// /// group of input devices /// @@ -2597,9 +2751,10 @@ public enum EventOpcode : ushort /// /// seat capabilities changed /// - /// This is emitted whenever a seat gains or loses the pointer, - /// keyboard or touch capabilities. The argument is a capability - /// enum containing the complete set of capabilities this seat has. + /// This is sent on binding to the seat global or whenever a seat gains + /// or loses the pointer, keyboard or touch capabilities. + /// The argument is a capability enum containing the complete set of + /// capabilities this seat has. /// /// When the pointer capability is added, a client may create a /// wl_pointer object using the wl_seat.get_pointer request. This object @@ -2638,9 +2793,9 @@ public enum EventOpcode : ushort /// The same seat names are used for all clients. Thus, the name can be /// shared across processes to refer to a specific wl_seat global. /// - /// The name event is sent after binding to the seat global. This event is - /// only sent once per seat object, and the name does not change over the - /// lifetime of the wl_seat global. + /// The name event is sent after binding to the seat global, and should be sent + /// before announcing capabilities. This event is only sent once per seat object, + /// and the name does not change over the lifetime of the wl_seat global. /// /// Compositors may re-use the same seat name if the wl_seat global is /// destroyed and re-created later. @@ -2679,13 +2834,11 @@ public override WaylandType[] Arguments(ushort opcode) { WaylandType.UInt, }; - break; case EventOpcode.Name: return new WaylandType[] { WaylandType.String, }; - break; default: throw new ArgumentOutOfRangeException("unknown event"); } @@ -2790,7 +2943,7 @@ public void Release() Die(); } } - /// wl_pointer version 9 + /// wl_pointer version 10 /// /// pointer input device /// @@ -3233,14 +3386,12 @@ public override WaylandType[] Arguments(ushort opcode) WaylandType.Fixed, WaylandType.Fixed, }; - break; case EventOpcode.Leave: return new WaylandType[] { WaylandType.UInt, WaylandType.Object, }; - break; case EventOpcode.Motion: return new WaylandType[] { @@ -3248,7 +3399,6 @@ public override WaylandType[] Arguments(ushort opcode) WaylandType.Fixed, WaylandType.Fixed, }; - break; case EventOpcode.Button: return new WaylandType[] { @@ -3257,7 +3407,6 @@ public override WaylandType[] Arguments(ushort opcode) WaylandType.UInt, WaylandType.UInt, }; - break; case EventOpcode.Axis: return new WaylandType[] { @@ -3265,46 +3414,39 @@ public override WaylandType[] Arguments(ushort opcode) WaylandType.UInt, WaylandType.Fixed, }; - break; case EventOpcode.Frame: return new WaylandType[] { }; - break; case EventOpcode.AxisSource: return new WaylandType[] { WaylandType.UInt, }; - break; case EventOpcode.AxisStop: return new WaylandType[] { WaylandType.UInt, WaylandType.UInt, }; - break; case EventOpcode.AxisDiscrete: return new WaylandType[] { WaylandType.UInt, WaylandType.Int, }; - break; case EventOpcode.AxisValue120: return new WaylandType[] { WaylandType.UInt, WaylandType.Int, }; - break; case EventOpcode.AxisRelativeDirection: return new WaylandType[] { WaylandType.UInt, WaylandType.UInt, }; - break; default: throw new ArgumentOutOfRangeException("unknown event"); } @@ -3396,9 +3538,9 @@ public enum AxisRelativeDirectionEnum : int /// where (x, y) are the coordinates of the pointer location, in /// surface-local coordinates. /// - /// On surface.attach requests to the pointer surface, hotspot_x + /// On wl_surface.offset requests to the pointer surface, hotspot_x /// and hotspot_y are decremented by the x and y parameters - /// passed to the request. Attach must be confirmed by + /// passed to the request. The offset must be applied by /// wl_surface.commit as usual. /// /// The hotspot can also be updated by passing the currently set @@ -3438,12 +3580,22 @@ public void Release() Die(); } } - /// wl_keyboard version 9 + /// wl_keyboard version 10 /// /// keyboard input device /// /// The wl_keyboard interface represents one or more keyboards /// associated with a seat. + /// + /// Each wl_keyboard has the following logical state: + /// + /// - an active surface (possibly null), + /// - the keys currently logically down, + /// - the active modifiers, + /// - the active group. + /// + /// By default, the active surface is null, the keys currently logically down + /// are empty, the active modifiers and the active group are 0. /// /// public sealed class WlKeyboard : WaylandClientObject @@ -3478,7 +3630,7 @@ public enum EventOpcode : ushort /// keymap format /// keymap file descriptor /// keymap size, in bytes - public delegate void KeymapHandler(WlKeyboard wlKeyboard, KeymapFormat format, IntPtr fd, uint size); + public delegate void KeymapHandler(WlKeyboard wlKeyboard, KeymapFormat format, SafeFileHandle fd, uint size); /// /// enter event /// @@ -3487,11 +3639,19 @@ public enum EventOpcode : ushort /// /// The compositor must send the wl_keyboard.modifiers event after this /// event. + /// + /// In the wl_keyboard logical state, this event sets the active surface to + /// the surface argument and the keys currently logically down to the keys + /// in the keys argument. The compositor must not send this event if the + /// wl_keyboard already had an active surface immediately before this event. + /// + /// Clients should not use the list of pressed keys to emulate key-press + /// events. The order of keys in the list is unspecified. /// /// /// serial number of the enter event /// surface gaining keyboard focus - /// the currently pressed keys + /// the keys currently logically down public delegate void EnterHandler(WlKeyboard wlKeyboard, uint serial, WlSurface surface, byte[] keys); /// /// leave event @@ -3502,8 +3662,10 @@ public enum EventOpcode : ushort /// The leave notification is sent before the enter notification /// for the new focus. /// - /// After this event client must assume that all keys, including modifiers, - /// are lifted and also it must stop key repeating if there's some going on. + /// In the wl_keyboard logical state, this event resets all values to their + /// defaults. The compositor must not send this event if the active surface + /// of the wl_keyboard was not equal to the surface argument immediately + /// before this event. /// /// /// serial number of the leave event @@ -3521,6 +3683,20 @@ public enum EventOpcode : ushort /// /// If this event produces a change in modifiers, then the resulting /// wl_keyboard.modifiers event must be sent after this event. + /// + /// In the wl_keyboard logical state, this event adds the key to the keys + /// currently logically down (if the state argument is pressed) or removes + /// the key from the keys currently logically down (if the state argument is + /// released). The compositor must not send this event if the wl_keyboard + /// did not have an active surface immediately before this event. The + /// compositor must not send this event if state is pressed (resp. released) + /// and the key was already logically down (resp. was not logically down) + /// immediately before this event. + /// + /// Since version 10, compositors may send key events with the "repeated" + /// key state when a wl_keyboard.repeat_info event with a rate argument of + /// 0 has been received. This allows the compositor to take over the + /// responsibility of key repetition. /// /// /// serial number of the key event @@ -3533,6 +3709,17 @@ public enum EventOpcode : ushort /// /// Notifies clients that the modifier and/or group state has /// changed, and it should update its local state. + /// + /// The compositor may send this event without a surface of the client + /// having keyboard focus, for example to tie modifier information to + /// pointer focus instead. If a modifier event with pressed modifiers is sent + /// without a prior enter event, the client can assume the modifier state is + /// valid until it receives the next wl_keyboard.modifiers event. In order to + /// reset the modifier state again, the compositor can send a + /// wl_keyboard.modifiers event with no pressed modifiers. + /// + /// In the wl_keyboard logical state, this event updates the modifiers and + /// group. /// /// /// serial number of the modifiers event @@ -3574,7 +3761,7 @@ public override void Handle(ushort opcode, params object[] arguments) case EventOpcode.Keymap: { var format = (KeymapFormat)(uint)arguments[0]; - var fd = (IntPtr)arguments[1]; + var fd = (SafeFileHandle)arguments[1]; var size = (uint)arguments[2]; Keymap?.Invoke(this, format, fd, size); break; @@ -3635,7 +3822,6 @@ public override WaylandType[] Arguments(ushort opcode) WaylandType.Handle, WaylandType.UInt, }; - break; case EventOpcode.Enter: return new WaylandType[] { @@ -3643,14 +3829,12 @@ public override WaylandType[] Arguments(ushort opcode) WaylandType.Object, WaylandType.Array, }; - break; case EventOpcode.Leave: return new WaylandType[] { WaylandType.UInt, WaylandType.Object, }; - break; case EventOpcode.Key: return new WaylandType[] { @@ -3659,7 +3843,6 @@ public override WaylandType[] Arguments(ushort opcode) WaylandType.UInt, WaylandType.UInt, }; - break; case EventOpcode.Modifiers: return new WaylandType[] { @@ -3669,14 +3852,12 @@ public override WaylandType[] Arguments(ushort opcode) WaylandType.UInt, WaylandType.UInt, }; - break; case EventOpcode.RepeatInfo: return new WaylandType[] { WaylandType.Int, WaylandType.Int, }; - break; default: throw new ArgumentOutOfRangeException("unknown event"); } @@ -3697,12 +3878,21 @@ public enum KeymapFormat : int /// physical key state /// /// Describes the physical state of a key that produced the key event. + /// + /// Since version 10, the key can be in a "repeated" pseudo-state which + /// means the same as "pressed", but is used to signal repetition in the + /// key event. + /// + /// The key may only enter the repeated state after entering the pressed + /// state and before entering the released state. This event may be + /// generated multiple times while the key is down. /// /// public enum KeyState : int { Released = 0, Pressed = 1, + Repeated = 2, } /// /// release the keyboard object @@ -3713,7 +3903,7 @@ public void Release() Die(); } } - /// wl_touch version 9 + /// wl_touch version 10 /// /// touchscreen input device /// @@ -3808,6 +3998,8 @@ public enum EventOpcode : ushort /// currently active on this client's surface. The client is /// responsible for finalizing the touch points, future touch points on /// this surface may reuse the touch point ID. + /// + /// No frame event is required after the cancel event. /// /// public delegate void CancelHandler(WlTouch wlTouch); @@ -3834,7 +4026,7 @@ public enum EventOpcode : ushort /// of the ellipse, while the minor axis length describes the shorter /// diameter. Major and minor are orthogonal and both are specified in /// surface-local coordinates. The center of the ellipse is always at the - /// touchpoint location as reported by wl_touch.down or wl_touch.move. + /// touchpoint location as reported by wl_touch.down or wl_touch.motion. /// /// This event is only sent by the compositor if the touch device supports /// shape reports. The client has to make reasonable assumptions about the @@ -3958,7 +4150,6 @@ public override WaylandType[] Arguments(ushort opcode) WaylandType.Fixed, WaylandType.Fixed, }; - break; case EventOpcode.Up: return new WaylandType[] { @@ -3966,7 +4157,6 @@ public override WaylandType[] Arguments(ushort opcode) WaylandType.UInt, WaylandType.Int, }; - break; case EventOpcode.Motion: return new WaylandType[] { @@ -3975,17 +4165,14 @@ public override WaylandType[] Arguments(ushort opcode) WaylandType.Fixed, WaylandType.Fixed, }; - break; case EventOpcode.Frame: return new WaylandType[] { }; - break; case EventOpcode.Cancel: return new WaylandType[] { }; - break; case EventOpcode.Shape: return new WaylandType[] { @@ -3993,14 +4180,12 @@ public override WaylandType[] Arguments(ushort opcode) WaylandType.Fixed, WaylandType.Fixed, }; - break; case EventOpcode.Orientation: return new WaylandType[] { WaylandType.Int, WaylandType.Fixed, }; - break; default: throw new ArgumentOutOfRangeException("unknown event"); } @@ -4057,6 +4242,10 @@ public enum EventOpcode : ushort /// The geometry event will be followed by a done event (starting from /// version 2). /// + /// Clients should use wl_surface.preferred_buffer_transform instead of the + /// transform advertised by this event to find the preferred buffer + /// transform to use for a surface. + /// /// Note: wl_output only advertises partial information about the output /// position and identification. Some compositors, for instance those not /// implementing a desktop-style output layout or those exposing virtual @@ -4072,7 +4261,7 @@ public enum EventOpcode : ushort /// subpixel orientation of the output /// textual description of the manufacturer /// textual description of the model - /// transform that maps framebuffer to output + /// additional transformation applied to buffer contents during presentation public delegate void GeometryHandler(WlOutput wlOutput, int x, int y, int physicalWidth, int physicalHeight, Subpixel subpixel, string make, string model, Transform transform); /// /// advertise available modes for the output @@ -4134,8 +4323,9 @@ public enum EventOpcode : ushort /// This event contains scaling geometry information /// that is not in the geometry event. It may be sent after /// binding the output object or if the output scale changes - /// later. If it is not sent, the client should assume a - /// scale of 1. + /// later. The compositor will emit a non-zero, positive + /// value for scale. If it is not sent, the client should + /// assume a scale of 1. /// /// A scale larger than 1 means that the compositor will /// automatically scale surface buffers by this amount @@ -4143,12 +4333,9 @@ public enum EventOpcode : ushort /// displays where applications rendering at the native /// resolution would be too small to be legible. /// - /// It is intended that scaling aware clients track the - /// current output of a surface, and if it is on a scaled - /// output it should use wl_surface.set_buffer_scale with - /// the scale of the output. That way the compositor can - /// avoid scaling the surface, and the client can supply - /// a higher detail image. + /// Clients should use wl_surface.preferred_buffer_scale + /// instead of this event to find the preferred buffer + /// scale to use for a surface. /// /// The scale event will be followed by a done event. /// @@ -4286,7 +4473,6 @@ public override WaylandType[] Arguments(ushort opcode) WaylandType.String, WaylandType.Int, }; - break; case EventOpcode.Mode: return new WaylandType[] { @@ -4295,30 +4481,25 @@ public override WaylandType[] Arguments(ushort opcode) WaylandType.Int, WaylandType.Int, }; - break; case EventOpcode.Done: return new WaylandType[] { }; - break; case EventOpcode.Scale: return new WaylandType[] { WaylandType.Int, }; - break; case EventOpcode.Name: return new WaylandType[] { WaylandType.String, }; - break; case EventOpcode.Description: return new WaylandType[] { WaylandType.String, }; - break; default: throw new ArgumentOutOfRangeException("unknown event"); } @@ -4340,11 +4521,10 @@ public enum Subpixel : int VerticalBgr = 5, } /// - /// transform from framebuffer to output + /// transformation applied to buffer contents /// - /// This describes the transform that a compositor will apply to a - /// surface to compensate for the rotation or mirroring of an - /// output device. + /// This describes transformations that clients and compositors apply to + /// buffer contents. /// /// The flipped values correspond to an initial flip around a /// vertical axis followed by rotation. @@ -4392,7 +4572,7 @@ public void Release() Die(); } } - /// wl_region version 1 + /// wl_region version 7 /// /// region interface /// @@ -4595,23 +4775,9 @@ public WlSubsurface GetSubsurface(WlSurface surface, WlSurface parent) /// hidden, or if a NULL wl_buffer is applied. These rules apply /// recursively through the tree of surfaces. /// - /// The behaviour of a wl_surface.commit request on a sub-surface - /// depends on the sub-surface's mode. The possible modes are - /// synchronized and desynchronized, see methods - /// wl_subsurface.set_sync and wl_subsurface.set_desync. Synchronized - /// mode caches the wl_surface state to be applied when the parent's - /// state gets applied, and desynchronized mode applies the pending - /// wl_surface state directly. A sub-surface is initially in the - /// synchronized mode. - /// - /// Sub-surfaces also have another kind of state, which is managed by - /// wl_subsurface requests, as opposed to wl_surface requests. This - /// state includes the sub-surface position relative to the parent - /// surface (wl_subsurface.set_position), and the stacking order of - /// the parent and its sub-surfaces (wl_subsurface.place_above and - /// .place_below). This state is applied when the parent surface's - /// wl_surface state is applied, regardless of the sub-surface's mode. - /// As the exception, set_sync and set_desync are effective immediately. + /// A sub-surface can be in one of two modes. The possible modes are + /// synchronized and desynchronized, see methods wl_subsurface.set_sync and + /// wl_subsurface.set_desync. /// /// The main surface can be thought to be always in desynchronized mode, /// since it does not have a parent in the sub-surfaces sense. @@ -4623,6 +4789,15 @@ public WlSubsurface GetSubsurface(WlSurface surface, WlSurface parent) /// synchronized mode, and then assume that all its child and grand-child /// sub-surfaces are synchronized, too, without explicitly setting them. /// + /// If a surface behaves as in synchronized mode, it is effectively + /// synchronized, otherwise it is effectively desynchronized. + /// + /// A sub-surface is initially in the synchronized mode. + /// + /// The wl_subsurface interface has requests which modify double-buffered + /// state of the parent surface (wl_subsurface.set_position, .place_above and + /// .place_below). + /// /// Destroying a sub-surface takes effect immediately. If you need to /// synchronize the removal of a sub-surface to the parent surface update, /// unmap the sub-surface first by attaching a NULL wl_buffer, update parent, @@ -4630,6 +4805,11 @@ public WlSubsurface GetSubsurface(WlSurface surface, WlSurface parent) /// /// If the parent wl_surface object is destroyed, the sub-surface is /// unmapped. + /// + /// A sub-surface never has the keyboard focus of any seat. + /// + /// The wl_surface.offset request is ignored: clients must use set_position + /// instead to move the sub-surface. /// /// public sealed class WlSubsurface : WaylandClientObject @@ -4686,22 +4866,18 @@ public void Destroy() /// /// reposition the sub-surface /// - /// This schedules a sub-surface position change. + /// This sets the position of the sub-surface, relative to the parent + /// surface. + /// /// The sub-surface will be moved so that its origin (top left /// corner pixel) will be at the location x, y of the parent surface /// coordinate system. The coordinates are not restricted to the parent /// surface area. Negative values are allowed. /// - /// The scheduled coordinates will take effect whenever the state of the - /// parent surface is applied. When this happens depends on whether the - /// parent surface is in synchronized mode or not. See - /// wl_subsurface.set_sync and wl_subsurface.set_desync for details. - /// - /// If more than one set_position request is invoked by the client before - /// the commit of the parent surface, the position of a new request always - /// replaces the scheduled position from any previous request. - /// /// The initial position is 0, 0. + /// + /// Position is double-buffered state on the parent surface, see + /// wl_subsurface and wl_surface.commit for more information. /// /// /// x coordinate in the parent surface @@ -4719,15 +4895,11 @@ public void SetPosition(int x, int y) /// parent surface. Using any other surface, including this sub-surface, /// will cause a protocol error. /// - /// The z-order is double-buffered. Requests are handled in order and - /// applied immediately to a pending state. The final pending state is - /// copied to the active state the next time the state of the parent - /// surface is applied. When this happens depends on whether the parent - /// surface is in synchronized mode or not. See wl_subsurface.set_sync and - /// wl_subsurface.set_desync for details. - /// /// A new sub-surface is initially added as the top-most in the stack /// of its siblings and parent. + /// + /// Z-order is double-buffered state on the parent surface, see + /// wl_subsurface and wl_surface.commit for more information. /// /// /// the reference surface @@ -4739,6 +4911,7 @@ public void PlaceAbove(WlSurface sibling) /// restack the sub-surface /// /// The sub-surface is placed just below the reference surface. + /// /// See wl_subsurface.place_above. /// /// @@ -4751,18 +4924,9 @@ public void PlaceBelow(WlSurface sibling) /// set sub-surface to synchronized mode /// /// Change the commit behaviour of the sub-surface to synchronized - /// mode, also described as the parent dependent mode. + /// mode. /// - /// In synchronized mode, wl_surface.commit on a sub-surface will - /// accumulate the committed state in a cache, but the state will - /// not be applied and hence will not change the compositor output. - /// The cached state is applied to the sub-surface immediately after - /// the parent surface's state is applied. This ensures atomic - /// updates of the parent and all its synchronized sub-surfaces. - /// Applying the cached state will invalidate the cache, so further - /// parent surface commits do not (re-)apply old state. - /// - /// See wl_subsurface for the recursive effect of this mode. + /// See wl_subsurface and wl_surface.commit for more information. /// /// public void SetSync() @@ -4773,29 +4937,123 @@ public void SetSync() /// set sub-surface to desynchronized mode /// /// Change the commit behaviour of the sub-surface to desynchronized - /// mode, also described as independent or freely running mode. + /// mode. /// - /// In desynchronized mode, wl_surface.commit on a sub-surface will - /// apply the pending state directly, without caching, as happens - /// normally with a wl_surface. Calling wl_surface.commit on the - /// parent surface has no effect on the sub-surface's wl_surface - /// state. This mode allows a sub-surface to be updated on its own. + /// See wl_subsurface and wl_surface.commit for more information. + /// + /// + public void SetDesync() + { + Marshal((ushort)RequestOpcode.SetDesync); + } + } + /// wl_fixes version 2 + /// + /// wayland protocol fixes + /// + /// This global fixes problems with other core-protocol interfaces that + /// cannot be fixed in these interfaces themselves. + /// + /// + public sealed class WlFixes : WaylandClientObject + { + public WlFixes(uint id, uint version, WaylandClientConnection connection) : base("wl_fixes", id, version, connection) + { + } + public enum RequestOpcode : ushort + { + Destroy, + DestroyRegistry, + AckGlobalRemove, + } + public enum EventOpcode : ushort + { + } + public override void Handle(ushort opcode, params object[] arguments) + { + switch ((EventOpcode)opcode) + { + default: + throw new ArgumentOutOfRangeException("unknown event"); + } + } + public override WaylandType[] Arguments(ushort opcode) + { + switch ((EventOpcode)opcode) + { + default: + throw new ArgumentOutOfRangeException("unknown event"); + } + } + /// + /// wl_fixes error values + /// + /// These errors can be emitted in response to wl_fixes requests. + /// + /// + public enum Error : int + { + InvalidAckRemove = 0, + } + /// + /// destroys this object + /// + public void Destroy() + { + Marshal((ushort)RequestOpcode.Destroy); + Die(); + } + /// + /// destroy a wl_registry + /// + /// This request destroys a wl_registry object. /// - /// If cached state exists when wl_surface.commit is called in - /// desynchronized mode, the pending state is added to the cached - /// state, and applied as a whole. This invalidates the cache. + /// The client should no longer use the wl_registry after making this + /// request. /// - /// Note: even if a sub-surface is set to desynchronized, a parent - /// sub-surface may override it to behave as synchronized. For details, - /// see wl_subsurface. + /// The compositor will emit a wl_display.delete_id event with the object ID + /// of the registry and will no longer emit any events on the registry. The + /// client should re-use the object ID once it receives the + /// wl_display.delete_id event. + /// + /// + /// the registry to destroy + public void DestroyRegistry(WlRegistry registry) + { + Marshal((ushort)RequestOpcode.DestroyRegistry, registry.Id); + } + /// + /// acknowledge global removal + /// + /// Acknowledge the removal of the specified global. + /// + /// If no global with the specified name exists or the global is not removed, + /// the wl_fixes.invalid_ack_remove protocol error will be posted. + /// + /// Due to the Wayland protocol being asynchronous, the wl_global objects + /// cannot be destroyed immediately. For example, if a wl_global is removed + /// and a client attempts to bind that global around same time, it can + /// result in a protocol error due to an unknown global name in the bind + /// request. /// - /// If a surface's parent surface behaves as desynchronized, then - /// the cached state is applied on set_desync. + /// In order to avoid crashing clients, the compositor should remove the + /// wl_global once it is guaranteed that no more bind requests will come. + /// + /// The wl_fixes.ack_global_remove() request is used to signal to the + /// compositor that the client will not bind the given global anymore. After + /// all clients acknowledge the removal of the global, the compositor can + /// safely destroy it. + /// + /// The client must call the wl_fixes.ack_global_remove() request in + /// response to a wl_registry.global_remove() event even if it did not bind + /// the corresponding global. /// /// - public void SetDesync() + /// the registry object + /// unique name of the global + public void AckGlobalRemove(WlRegistry registry, uint name) { - Marshal((ushort)RequestOpcode.SetDesync); + Marshal((ushort)RequestOpcode.AckGlobalRemove, registry.Id, name); } } } diff --git a/Examples/Window/Protocol/XdgDecoration.cs b/Examples/Window/Protocol/XdgDecoration.cs new file mode 100644 index 0000000..02b7cfb --- /dev/null +++ b/Examples/Window/Protocol/XdgDecoration.cs @@ -0,0 +1,276 @@ +/// Copyright © 2018 Simon Ser +/// +/// Permission is hereby granted, free of charge, to any person obtaining a +/// copy of this software and associated documentation files (the "Software"), +/// to deal in the Software without restriction, including without limitation +/// the rights to use, copy, modify, merge, publish, distribute, sublicense, +/// and/or sell copies of the Software, and to permit persons to whom the +/// Software is furnished to do so, subject to the following conditions: +/// +/// The above copyright notice and this permission notice (including the next +/// paragraph) shall be included in all copies or substantial portions of the +/// Software. +/// +/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +/// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +/// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +/// DEALINGS IN THE SOFTWARE. +using System; +using Microsoft.Win32.SafeHandles; +using WaylandNET; +using WaylandNET.Client; +namespace WaylandNET.Client.Protocol +{ + /// zxdg_decoration_manager_v1 version 2 + /// + /// window decoration manager + /// + /// This interface allows a compositor to announce support for server-side + /// decorations. + /// + /// A window decoration is a set of window controls as deemed appropriate by + /// the party managing them, such as user interface components used to move, + /// resize and change a window's state. + /// + /// A client can use this protocol to request being decorated by a supporting + /// compositor. + /// + /// If compositor and client do not negotiate the use of a server-side + /// decoration using this protocol, clients continue to self-decorate as they + /// see fit. + /// + /// Warning! The protocol described in this file is experimental and + /// backward incompatible changes may be made. Backward compatible changes + /// may be added together with the corresponding interface version bump. + /// Backward incompatible changes are done by bumping the version number in + /// the protocol and interface names and resetting the interface version. + /// Once the protocol is to be declared stable, the 'z' prefix and the + /// version number in the protocol and interface names are removed and the + /// interface version number is reset. + /// + /// + public sealed class ZxdgDecorationManagerV1 : WaylandClientObject + { + public ZxdgDecorationManagerV1(uint id, uint version, WaylandClientConnection connection) : base("zxdg_decoration_manager_v1", id, version, connection) + { + } + public enum RequestOpcode : ushort + { + Destroy, + GetToplevelDecoration, + } + public enum EventOpcode : ushort + { + } + public override void Handle(ushort opcode, params object[] arguments) + { + switch ((EventOpcode)opcode) + { + default: + throw new ArgumentOutOfRangeException("unknown event"); + } + } + public override WaylandType[] Arguments(ushort opcode) + { + switch ((EventOpcode)opcode) + { + default: + throw new ArgumentOutOfRangeException("unknown event"); + } + } + /// + /// destroy the decoration manager object + /// + /// Destroy the decoration manager. This doesn't destroy objects created + /// with the manager. + /// + /// + public void Destroy() + { + Marshal((ushort)RequestOpcode.Destroy); + Die(); + } + /// + /// create a new toplevel decoration object + /// + /// Create a new decoration object associated with the given toplevel. + /// + /// For objects of version 1, creating an xdg_toplevel_decoration from an + /// xdg_toplevel which has a buffer attached or committed is a client + /// error, and any attempts by a client to attach or manipulate a buffer + /// prior to the first xdg_toplevel_decoration.configure event must also be + /// treated as errors. + /// + /// For objects of version 2 or newer, creating an xdg_toplevel_decoration + /// from an xdg_toplevel which has a buffer attached or committed is + /// allowed. The initial decoration mode of the surface if a buffer is + /// already attached depends on whether a xdg_toplevel_decoration object + /// has been associated with the surface or not prior to this request. + /// + /// If an xdg_toplevel_decoration was associated with the surface, then + /// destroyed without a surface commit, the previous decoration mode is + /// retained. + /// + /// If no xdg_toplevel_decoration was associated with the surface prior to + /// this request, or if a surface commit has been performed after a previous + /// xdg_toplevel_decoration object associated with the surface was + /// destroyed, the decoration mode is assumed to be client-side. + /// + /// + public ZxdgToplevelDecorationV1 GetToplevelDecoration(XdgToplevel toplevel) + { + uint id = Connection.AllocateId(); + Marshal((ushort)RequestOpcode.GetToplevelDecoration, id, toplevel.Id); + Connection[id] = new ZxdgToplevelDecorationV1(id, Version, ClientConnection); + return (ZxdgToplevelDecorationV1)Connection[id]; + } + } + /// zxdg_toplevel_decoration_v1 version 2 + /// + /// decoration object for a toplevel surface + /// + /// The decoration object allows the compositor to toggle server-side window + /// decorations for a toplevel surface. The client can request to switch to + /// another mode. + /// + /// The xdg_toplevel_decoration object must be destroyed before its + /// xdg_toplevel. + /// + /// + public sealed class ZxdgToplevelDecorationV1 : WaylandClientObject + { + public ZxdgToplevelDecorationV1(uint id, uint version, WaylandClientConnection connection) : base("zxdg_toplevel_decoration_v1", id, version, connection) + { + } + public enum RequestOpcode : ushort + { + Destroy, + SetMode, + UnsetMode, + } + public enum EventOpcode : ushort + { + Configure, + } + /// + /// notify a decoration mode change + /// + /// The configure event configures the effective decoration mode. The + /// configured state should not be applied immediately. Clients must send an + /// ack_configure in response to this event. See xdg_surface.configure and + /// xdg_surface.ack_configure for details. + /// + /// A configure event can be sent at any time. The specified mode must be + /// obeyed by the client. + /// + /// + /// the decoration mode + public delegate void ConfigureHandler(ZxdgToplevelDecorationV1 zxdgToplevelDecorationV1, Mode mode); + public event ConfigureHandler Configure; + public override void Handle(ushort opcode, params object[] arguments) + { + switch ((EventOpcode)opcode) + { + case EventOpcode.Configure: + { + var mode = (Mode)(uint)arguments[0]; + Configure?.Invoke(this, mode); + break; + } + default: + throw new ArgumentOutOfRangeException("unknown event"); + } + } + public override WaylandType[] Arguments(ushort opcode) + { + switch ((EventOpcode)opcode) + { + case EventOpcode.Configure: + return new WaylandType[] + { + WaylandType.UInt, + }; + default: + throw new ArgumentOutOfRangeException("unknown event"); + } + } + public enum Error : int + { + UnconfiguredBuffer = 0, + AlreadyConstructed = 1, + Orphaned = 2, + InvalidMode = 3, + } + /// + /// window decoration modes + /// + /// These values describe window decoration modes. + /// + /// + public enum Mode : int + { + ClientSide = 1, + ServerSide = 2, + } + /// + /// destroy the decoration object + /// + /// Switch back to a mode without any server-side decorations at the next + /// commit, unless a new xdg_toplevel_decoration is created for the surface + /// first. + /// + /// + public void Destroy() + { + Marshal((ushort)RequestOpcode.Destroy); + Die(); + } + /// + /// set the decoration mode + /// + /// Set the toplevel surface decoration mode. This informs the compositor + /// that the client prefers the provided decoration mode. + /// + /// After requesting a decoration mode, the compositor will respond by + /// emitting an xdg_surface.configure event. The client should then update + /// its content, drawing it without decorations if the received mode is + /// server-side decorations. The client must also acknowledge the configure + /// when committing the new content (see xdg_surface.ack_configure). + /// + /// The compositor can decide not to use the client's mode and enforce a + /// different mode instead. + /// + /// Clients whose decoration mode depend on the xdg_toplevel state may send + /// a set_mode request in response to an xdg_surface.configure event and wait + /// for the next xdg_surface.configure event to prevent unwanted state. + /// Such clients are responsible for preventing configure loops and must + /// make sure not to send multiple successive set_mode requests with the + /// same decoration mode. + /// + /// If an invalid mode is supplied by the client, the invalid_mode protocol + /// error is raised by the compositor. + /// + /// + /// the decoration mode + public void SetMode(Mode mode) + { + Marshal((ushort)RequestOpcode.SetMode, (uint)mode); + } + /// + /// unset the decoration mode + /// + /// Unset the toplevel surface decoration mode. This informs the compositor + /// that the client doesn't prefer a particular decoration mode. + /// + /// This request has the same semantics as set_mode. + /// + /// + public void UnsetMode() + { + Marshal((ushort)RequestOpcode.UnsetMode); + } + } +} diff --git a/Examples/Window/Protocol/XdgShell.cs b/Examples/Window/Protocol/XdgShell.cs index 441dc70..522aa3c 100644 --- a/Examples/Window/Protocol/XdgShell.cs +++ b/Examples/Window/Protocol/XdgShell.cs @@ -23,13 +23,13 @@ /// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING /// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER /// DEALINGS IN THE SOFTWARE. -#pragma warning disable 0162 using System; +using Microsoft.Win32.SafeHandles; using WaylandNET; using WaylandNET.Client; namespace WaylandNET.Client.Protocol { - /// xdg_wm_base version 6 + /// xdg_wm_base version 7 /// /// create desktop-style surfaces /// @@ -100,7 +100,6 @@ public override WaylandType[] Arguments(ushort opcode) { WaylandType.UInt, }; - break; default: throw new ArgumentOutOfRangeException("unknown event"); } @@ -148,17 +147,16 @@ public XdgPositioner CreatePositioner() /// /// create a shell surface from a surface /// - /// This creates an xdg_surface for the given surface. While xdg_surface - /// itself is not a role, the corresponding surface may only be assigned - /// a role extending xdg_surface, such as xdg_toplevel or xdg_popup. It is - /// illegal to create an xdg_surface for a wl_surface which already has an - /// assigned role and this will result in a role error. - /// /// This creates an xdg_surface for the given surface. An xdg_surface is /// used as basis to define a role to a given surface, such as xdg_toplevel /// or xdg_popup. It also manages functionality shared between xdg_surface /// based surface roles. /// + /// While xdg_surface itself is not a role, the corresponding surface may + /// only be assigned a role extending xdg_surface, such as xdg_toplevel or + /// xdg_popup. It is illegal to create an xdg_surface for a wl_surface which + /// already has anassigned role and this will result in a role error. + /// /// See the documentation of xdg_surface for more details about what an /// xdg_surface is and how it is used. /// @@ -184,7 +182,7 @@ public void Pong(uint serial) Marshal((ushort)RequestOpcode.Pong, serial); } } - /// xdg_positioner version 6 + /// xdg_positioner version 7 /// /// child surface positioner /// @@ -355,14 +353,14 @@ public void SetAnchorRect(int x, int y, int width, int height) /// set anchor rectangle anchor /// /// Defines the anchor point for the anchor rectangle. The specified anchor - /// is used derive an anchor point that the child surface will be + /// is used to derive an anchor point that the child surface will be /// positioned relative to. If a corner anchor is set (e.g. 'top_left' or /// 'bottom_right'), the anchor point will be at the specified corner; /// otherwise, the derived anchor point will be centered on the specified /// edge, or in the center of the anchor rectangle if no edge is specified. /// /// - /// anchor + /// anchor point public void SetAnchor(Anchor anchor) { Marshal((ushort)RequestOpcode.SetAnchor, (uint)anchor); @@ -403,9 +401,9 @@ public void SetGravity(Gravity gravity) /// /// /// bit mask of constraint adjustments - public void SetConstraintAdjustment(uint constraintAdjustment) + public void SetConstraintAdjustment(ConstraintAdjustment constraintAdjustment) { - Marshal((ushort)RequestOpcode.SetConstraintAdjustment, constraintAdjustment); + Marshal((ushort)RequestOpcode.SetConstraintAdjustment, (uint)constraintAdjustment); } /// /// set surface position offset @@ -445,7 +443,7 @@ public void SetReactive() Marshal((ushort)RequestOpcode.SetReactive); } /// - /// + /// set parent size /// /// Set the parent window geometry the compositor should use when /// positioning the popup. The compositor may use this information to @@ -477,7 +475,7 @@ public void SetParentConfigure(uint serial) Marshal((ushort)RequestOpcode.SetParentConfigure, serial); } } - /// xdg_surface version 6 + /// xdg_surface version 7 /// /// desktop user interface surface base interface /// @@ -506,7 +504,8 @@ public void SetParentConfigure(uint serial) /// manipulate a buffer prior to the first xdg_surface.configure call must /// also be treated as errors. /// - /// After creating a role-specific object and setting it up, the client must + /// After creating a role-specific object and setting it up (e.g. by sending + /// the title, app ID, size constraints, parent, etc), the client must /// perform an initial commit without any buffer attached. The compositor /// will reply with initial wl_surface state such as /// wl_surface.preferred_buffer_scale followed by an xdg_surface.configure @@ -594,7 +593,6 @@ public override WaylandType[] Arguments(ushort opcode) { WaylandType.UInt, }; - break; default: throw new ArgumentOutOfRangeException("unknown event"); } @@ -651,6 +649,8 @@ public XdgToplevel GetToplevel() /// xdg_popup is and how it is used. /// /// + /// parent surface for this popup + /// positioner for this popup public XdgPopup GetPopup(XdgSurface parent, XdgPositioner positioner) { uint id = Connection.AllocateId(); @@ -664,10 +664,12 @@ public XdgPopup GetPopup(XdgSurface parent, XdgPositioner positioner) /// The window geometry of a surface is its "visible bounds" from the /// user's perspective. Client-side decorations often have invisible /// portions like drop-shadows which should be ignored for the - /// purposes of aligning, placing and constraining windows. + /// purposes of aligning, placing and constraining windows. Note that + /// in some situations, compositors may clip rendering to the window + /// geometry, so the client should avoid putting functional elements + /// outside of it. /// - /// The window geometry is double buffered, and will be applied at the - /// time wl_surface.commit of the corresponding wl_surface is called. + /// The window geometry is double-buffered state, see wl_surface.commit. /// /// When maintaining a position, the compositor should treat the (x, y) /// coordinate of the window geometry as the top left corner of the window. @@ -701,6 +703,10 @@ public XdgPopup GetPopup(XdgSurface parent, XdgPositioner positioner) /// invalid_size error. /// /// + /// x coordinate of the top-left corner of the window inside this surface + /// y coordinate of the top-left corner of the window inside this surface + /// width of the window + /// height of the window public void SetWindowGeometry(int x, int y, int width, int height) { Marshal((ushort)RequestOpcode.SetWindowGeometry, x, y, width, height); @@ -748,7 +754,7 @@ public void AckConfigure(uint serial) Marshal((ushort)RequestOpcode.AckConfigure, serial); } } - /// xdg_toplevel version 6 + /// xdg_toplevel version 7 /// /// toplevel surface /// @@ -758,7 +764,7 @@ public void AckConfigure(uint serial) /// id, and well as trigger user interactive operations such as interactive /// resize and move. /// - /// A xdg_toplevel by default is responsible for providing the full intended + /// An xdg_toplevel by default is responsible for providing the full intended /// visual representation of the toplevel, which depending on the window /// state, may mean things like a title bar, window controls and drop shadow. /// @@ -768,7 +774,7 @@ public void AckConfigure(uint serial) /// attributes (e.g. title, state, stacking, ...) are discarded for /// an xdg_toplevel surface when it is unmapped. The xdg_toplevel returns to /// the state it had right after xdg_surface.get_toplevel. The client - /// can re-map the toplevel by perfoming a commit without any buffer + /// can re-map the toplevel by performing a commit without any buffer /// attached, waiting for a configure event and handling it as usual (see /// xdg_surface description). /// @@ -824,10 +830,16 @@ public enum EventOpcode : ushort /// arguments should be interpreted, and possibly how it should be /// drawn. /// + /// The states are sent as an array of 32-bit unsigned integers in + /// native endianness. State values are defined in the state enum. + /// /// Clients must send an ack_configure in response to this event. See /// xdg_surface.configure and xdg_surface.ack_configure for details. /// /// + /// suggested width of window + /// suggested height of window + /// suggested states of the window public delegate void ConfigureHandler(XdgToplevel xdgToplevel, int width, int height, byte[] states); /// /// surface wants to be closed @@ -863,6 +875,8 @@ public enum EventOpcode : ushort /// xdg_toplevel.configure and xdg_surface.configure. /// /// + /// suggested maximum width of surface + /// suggested maximum height of surface public delegate void ConfigureBoundsHandler(XdgToplevel xdgToplevel, int width, int height); /// /// compositor capabilities @@ -886,7 +900,7 @@ public enum EventOpcode : ushort /// xdg_surface.configure for details. /// /// The capabilities are sent as an array of 32-bit unsigned integers in - /// native endianness. + /// native endianness. Capability values are defined in the wm_capabilities enum. /// /// /// array of 32-bit capabilities @@ -940,25 +954,21 @@ public override WaylandType[] Arguments(ushort opcode) WaylandType.Int, WaylandType.Array, }; - break; case EventOpcode.Close: return new WaylandType[] { }; - break; case EventOpcode.ConfigureBounds: return new WaylandType[] { WaylandType.Int, WaylandType.Int, }; - break; case EventOpcode.WmCapabilities: return new WaylandType[] { WaylandType.Array, }; - break; default: throw new ArgumentOutOfRangeException("unknown event"); } @@ -996,8 +1006,7 @@ public enum ResizeEdge : int /// configure event to ensure that both the client and the compositor /// setting the state can be synchronized. /// - /// States set in this way are double-buffered. They will get applied on - /// the next commit. + /// States set in this way are double-buffered, see wl_surface.commit. /// /// public enum State : int @@ -1011,6 +1020,10 @@ public enum State : int TiledTop = 7, TiledBottom = 8, Suspended = 9, + ConstrainedLeft = 10, + ConstrainedRight = 11, + ConstrainedTop = 12, + ConstrainedBottom = 13, } public enum WmCapabilitiesEnum : int { @@ -1056,6 +1069,7 @@ public void Destroy() /// otherwise the invalid_parent protocol error is raised. /// /// + /// parent surface for this surface public void SetParent(XdgToplevel parent) { Marshal((ushort)RequestOpcode.SetParent, parent.Id); @@ -1072,6 +1086,7 @@ public void SetParent(XdgToplevel parent) /// The string must be encoded in UTF-8. /// /// + /// title of the surface public void SetTitle(string title) { Marshal((ushort)RequestOpcode.SetTitle, title); @@ -1104,6 +1119,7 @@ public void SetTitle(string title) /// [0] https://standards.freedesktop.org/desktop-entry-spec/ /// /// + /// application identifier surface belongs to public void SetAppId(string appId) { Marshal((ushort)RequestOpcode.SetAppId, appId); @@ -1214,8 +1230,7 @@ public void Resize(WlSeat seat, uint serial, ResizeEdge edges) /// The width and height arguments are in window geometry coordinates. /// See xdg_surface.set_window_geometry. /// - /// Values set in this way are double-buffered. They will get applied - /// on the next commit. + /// Values set in this way are double-buffered, see wl_surface.commit. /// /// The compositor can use this information to allow or disallow /// different states like maximize or fullscreen and draw accurate @@ -1238,10 +1253,12 @@ public void Resize(WlSeat seat, uint serial, ResizeEdge edges) /// a surface is illegal and will result in an invalid_size error. /// /// The width and height must be greater than or equal to zero. Using - /// strictly negative values for width or height will result in a + /// strictly negative values for width or height will result in an /// invalid_size error. /// /// + /// maximum width of the window + /// maximum height of the window public void SetMaxSize(int width, int height) { Marshal((ushort)RequestOpcode.SetMaxSize, width, height); @@ -1257,8 +1274,7 @@ public void SetMaxSize(int width, int height) /// The width and height arguments are in window geometry coordinates. /// See xdg_surface.set_window_geometry. /// - /// Values set in this way are double-buffered. They will get applied - /// on the next commit. + /// Values set in this way are double-buffered, see wl_surface.commit. /// /// The compositor can use this information to allow or disallow /// different states like maximize or fullscreen and draw accurate @@ -1281,10 +1297,12 @@ public void SetMaxSize(int width, int height) /// a surface is illegal and will result in an invalid_size error. /// /// The width and height must be greater than or equal to zero. Using - /// strictly negative values for width and height will result in a + /// strictly negative values for width and height will result in an /// invalid_size error. /// /// + /// minimum width of the window + /// minimum height of the window public void SetMinSize(int width, int height) { Marshal((ushort)RequestOpcode.SetMinSize, width, height); @@ -1365,7 +1383,7 @@ public void UnsetMaximized() /// /// If the surface doesn't cover the whole output, the compositor will /// position the surface in the center of the output and compensate with - /// with border fill covering the rest of the output. The content of the + /// border fill covering the rest of the output. The content of the /// border fill is undefined, but should be assumed to be in some way that /// attempts to blend into the surrounding area (e.g. solid black). /// @@ -1375,6 +1393,7 @@ public void UnsetMaximized() /// visible below the fullscreened surface. /// /// + /// preferred output to place surface on public void SetFullscreen(WlOutput output) { Marshal((ushort)RequestOpcode.SetFullscreen, output.Id); @@ -1423,7 +1442,7 @@ public void SetMinimized() Marshal((ushort)RequestOpcode.SetMinimized); } } - /// xdg_popup version 6 + /// xdg_popup version 7 /// /// short-lived, popup surfaces for menus /// @@ -1566,18 +1585,15 @@ public override WaylandType[] Arguments(ushort opcode) WaylandType.Int, WaylandType.Int, }; - break; case EventOpcode.PopupDone: return new WaylandType[] { }; - break; case EventOpcode.Repositioned: return new WaylandType[] { WaylandType.UInt, }; - break; default: throw new ArgumentOutOfRangeException("unknown event"); } diff --git a/Examples/Window/Window.csproj b/Examples/Window/Window.csproj index 5dc0377..8f31d2f 100644 --- a/Examples/Window/Window.csproj +++ b/Examples/Window/Window.csproj @@ -6,8 +6,12 @@ Exe - net8.0 + net10.0 enable + true + + + diff --git a/LICENSE b/LICENSE index 3c7bea0..d05757e 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,5 @@ Copyright 2020 Tadeo Kondrak +Copyright 2026 Franz-Xaver Vierheller, Steffen Köhler Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above diff --git a/README.md b/README.md index 76969cc..4e6ae1f 100644 --- a/README.md +++ b/README.md @@ -6,5 +6,3 @@ Not bindings to libwayland, speaks the protocol itself, which means it doesn't support using OpenGL or Vulkan the normal way. Does not yet work on non-little-endian platforms. -Does not yet support requests or events with file descriptors. -Does not yet do any request buffering. diff --git a/WaylandNET/Client/ClientTimerList.cs b/WaylandNET/Client/ClientTimerList.cs new file mode 100644 index 0000000..4b6e4ea --- /dev/null +++ b/WaylandNET/Client/ClientTimerList.cs @@ -0,0 +1,134 @@ +using System; +using System.Diagnostics; +using System.Collections.Generic; + +namespace WaylandNET.Client +{ + public class ClientTimerList + { + public IClientTimer CreateTimer() + { + return new TimerImpl(list); + } + + public int GetTimeout() + { + if (list.Count == 0) + { + return -1; + } + + long current = Stopwatch.GetTimestamp(); + LinkedListNode node = list.First; + while (node != null) + { + TimerImpl timer = node.Value; + node = node.Next; + if ((timer.Deadline - current) < TicksPerMillisecond) + { + timer.FireEvent(); + } + } + + if (list.Count == 0) + { + return -1; + } + + long next = long.MaxValue; + foreach (TimerImpl timer in list) + { + if (timer.Deadline < next) + { + next = timer.Deadline; + } + } + + long timeout = next - current; + if (timeout <= 0) + { + return 0; + } + if (timeout < (long.MaxValue / 1000)) + { + long msec = (timeout * 1000) / Stopwatch.Frequency; + if (msec < int.MaxValue) + { + return (int)msec; + } + } + return int.MaxValue; + } + + private class TimerImpl : IClientTimer + { + public TimerImpl(LinkedList list) + { + this.list = list; + this.node = new LinkedListNode(this); + } + + public void SetTimeout(int timeout, bool periodic) + { + if (timeout < 1) + { + throw new ArgumentException(nameof(timeout)); + } + this.interval = ((long)timeout * Stopwatch.Frequency) / 1000; + this.periodic = periodic; + if (node.List != null) + { + deadline = Stopwatch.GetTimestamp() + interval; + } + } + + public void Start() + { + if (node.List == null) + { + deadline = Stopwatch.GetTimestamp() + interval; + list.AddFirst(node); + } + } + + public void Stop() + { + node.List?.Remove(node); + } + + public bool Running => node.List != null; + + public event Action Elapsed + { + add => handler += value; + remove => handler -= value; + } + + public void FireEvent() + { + if (periodic) + { + deadline += interval; + } + else + { + node.List.Remove(node); + } + handler?.Invoke(this); + } + + public long Deadline => deadline; + + private long deadline; + private long interval; + private bool periodic; + private Action handler; + + private readonly LinkedList list; + private readonly LinkedListNode node; + } + + private readonly LinkedList list = new LinkedList(); + private static readonly long TicksPerMillisecond = Stopwatch.Frequency / 1000; + } +} diff --git a/WaylandNET/Client/IClientTimer.cs b/WaylandNET/Client/IClientTimer.cs new file mode 100644 index 0000000..421c5ab --- /dev/null +++ b/WaylandNET/Client/IClientTimer.cs @@ -0,0 +1,13 @@ +using System; + +namespace WaylandNET.Client +{ + public interface IClientTimer + { + void SetTimeout(int timeout, bool periodic = false); + void Start(); + void Stop(); + bool Running { get; } + event Action Elapsed; + } +} diff --git a/WaylandNET/Client/Protocol/Wayland.cs b/WaylandNET/Client/Protocol/Wayland.cs index a4d0edc..c7ae27b 100644 --- a/WaylandNET/Client/Protocol/Wayland.cs +++ b/WaylandNET/Client/Protocol/Wayland.cs @@ -22,8 +22,8 @@ /// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN /// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE /// SOFTWARE. -#pragma warning disable 0162 using System; +using Microsoft.Win32.SafeHandles; using WaylandNET; using WaylandNET.Client; namespace WaylandNET.Client.Protocol @@ -114,13 +114,11 @@ public override WaylandType[] Arguments(ushort opcode) WaylandType.UInt, WaylandType.String, }; - break; case EventOpcode.DeleteId: return new WaylandType[] { WaylandType.UInt, }; - break; default: throw new ArgumentOutOfRangeException("unknown event"); } @@ -152,7 +150,7 @@ public enum ErrorEnum : int /// compositor after the callback is fired and as such the client must not /// attempt to use it after that point. /// - /// The callback_data passed in the callback is the event serial. + /// The callback_data passed in the callback is undefined and should be ignored. /// /// /// callback object for the sync request @@ -292,13 +290,11 @@ public override WaylandType[] Arguments(ushort opcode) WaylandType.String, WaylandType.UInt, }; - break; case EventOpcode.GlobalRemove: return new WaylandType[] { WaylandType.UInt, }; - break; default: throw new ArgumentOutOfRangeException("unknown event"); } @@ -311,7 +307,7 @@ public override WaylandType[] Arguments(ushort opcode) /// /// /// unique numeric name of the object - /// bounded object + /// bound object public T Bind(uint name, string @interface, uint version) where T : WaylandClientObject { uint id = Connection.AllocateId(); @@ -376,7 +372,6 @@ public override WaylandType[] Arguments(ushort opcode) { WaylandType.UInt, }; - break; default: throw new ArgumentOutOfRangeException("unknown event"); } diff --git a/WaylandNET/Client/WaylandClientConnection.cs b/WaylandNET/Client/WaylandClientConnection.cs index 7fe4cd3..2735c32 100644 --- a/WaylandNET/Client/WaylandClientConnection.cs +++ b/WaylandNET/Client/WaylandClientConnection.cs @@ -10,7 +10,7 @@ public sealed class WaylandClientConnection : WaylandConnection { public WlDisplay Display { get; private set; } - static WaylandWireConnection ConnectToDisplay(string display = null) + private static Socket ConnectToDisplay(string display = null) { display ??= Environment.GetEnvironmentVariable("WAYLAND_DISPLAY"); display ??= "wayland-0"; @@ -24,42 +24,33 @@ static WaylandWireConnection ConnectToDisplay(string display = null) { string xdgRuntimeDir = Environment.GetEnvironmentVariable("XDG_RUNTIME_DIR"); if (xdgRuntimeDir == null) + { throw new Exception("XDG_RUNTIME_DIR missing from environment"); + } path = Path.Join(xdgRuntimeDir, display); } Socket socket = new Socket(AddressFamily.Unix, SocketType.Stream, ProtocolType.Unspecified); EndPoint endpoint = new UnixDomainSocketEndPoint(path); socket.Connect(endpoint); - return new WaylandWireConnection(socket); + return socket; } public WaylandClientConnection(string display = null) : base(ConnectToDisplay(display), new WaylandClientObjectMap()) { - uint id = ObjectMap.AllocateId(); + uint id = AllocateId(); Display = new WlDisplay(id, 1, this); Display.Error += (display, objectId, code, message) => - { throw new WaylandProtocolException(objectId, code, message); - }; - Display.DeleteId += (display, id) => - { - this.DeallocateId(id); - }; - ObjectMap[id] = Display; + Display.DeleteId += (display, id) => DeallocateId(id); + base[id] = Display; } - public void Roundtrip() - { - var callback = Display.Sync(); - var isDone = false; - callback.Done += (callback, data) => - { - isDone = true; - }; - while (!isDone) - Read(); - } + public IClientTimer CreateTimer() => timerList.CreateTimer(); + + protected override int GetIdleTimeout() => timerList.GetTimeout(); + + private readonly ClientTimerList timerList = new ClientTimerList(); } } diff --git a/WaylandNET/PollEvents.cs b/WaylandNET/PollEvents.cs new file mode 100644 index 0000000..57b2c21 --- /dev/null +++ b/WaylandNET/PollEvents.cs @@ -0,0 +1,15 @@ +using System; + +namespace WaylandNET +{ + [Flags] + internal enum PollEvents : ushort + { + POLLIN = 0x0001, + POLLPRI = 0x0002, + POLLOUT = 0x0004, + POLLERR = 0x0008, + POLLHUP = 0x0010, + POLLNVAL = 0x0020 + } +} diff --git a/WaylandNET/RecvQueue.cs b/WaylandNET/RecvQueue.cs new file mode 100644 index 0000000..921f95f --- /dev/null +++ b/WaylandNET/RecvQueue.cs @@ -0,0 +1,207 @@ +using System; +using System.IO; +using System.Text; +using System.Net.Sockets; +using System.Runtime.InteropServices; +using Microsoft.Win32.SafeHandles; + +namespace WaylandNET +{ + public sealed class RecvQueue + { + private const int BUF_SIZE = 4096; + private const int FDS_SIZE = 128; + private const int CMSG_SIZE = 128; + + private readonly byte[] buf = new byte[BUF_SIZE]; + private readonly SafeFileHandle[] fds = new SafeFileHandle[FDS_SIZE]; + + private int buf_head; + private int buf_tail; + private int buf_cnt; + private int fds_head; + private int fds_tail; + private int fds_cnt; + + public int Count => buf_cnt; + + public uint ReadUInt32() => (uint)ReadInt32(); + + public int ReadInt32() + { + if (buf_cnt < 4) + { + throw new InvalidDataException(); + } + buf_cnt -= 4; + int idx = buf_tail; + ReadOnlySpan buf = this.buf; + int result = buf[idx]; + idx = (idx + 1) & (BUF_SIZE - 1); + result |= buf[idx] << 8; + idx = (idx + 1) & (BUF_SIZE - 1); + result |= buf[idx] << 16; + idx = (idx + 1) & (BUF_SIZE - 1); + result |= buf[idx] << 24; + idx = (idx + 1) & (BUF_SIZE - 1); + buf_tail = idx; + return result; + } + + public string ReadString() + { + int len = ReadInt32(); + if (len == 0) return null; + + Span bytes = new byte[len - 1]; + len = (len + 3) & ~3; + + if (buf_cnt < len) + { + throw new InvalidDataException(); + } + buf_cnt -= len; + + int idx = buf_tail; + ReadOnlySpan buf = this.buf; + + int first = Math.Min(BUF_SIZE - idx, bytes.Length); + int second = bytes.Length - first; + buf.Slice(idx, first).CopyTo(bytes.Slice(0, first)); + buf.Slice(0, second).CopyTo(bytes.Slice(first, second)); + + buf_tail = (idx + len) & (BUF_SIZE - 1); + + return Encoding.UTF8.GetString(bytes); + } + + public byte[] ReadBytes() + { + int len = ReadInt32(); + if (len == 0) return null; + + byte[] bytes = new byte[len]; + len = (len + 3) & ~3; + + if (buf_cnt < len) + { + throw new InvalidDataException(); + } + buf_cnt -= len; + + int idx = buf_tail; + ReadOnlySpan buf = this.buf; + + int first = Math.Min(BUF_SIZE - idx, bytes.Length); + int second = bytes.Length - first; + buf.Slice(idx, first).CopyTo(bytes.AsSpan(0, first)); + buf.Slice(0, second).CopyTo(bytes.AsSpan(first, second)); + + buf_tail = (idx + len) & (BUF_SIZE - 1); + + return bytes; + } + + public SafeFileHandle ReadHandle() + { + if (fds_cnt == 0) + { + throw new InvalidDataException(); + } + fds_cnt--; + int idx = fds_tail; + fds_tail = (idx + 1) & (FDS_SIZE - 1); + SafeFileHandle fd = fds[idx]; + fds[idx] = null; + return fd; + } + + public unsafe void Receive(SafeHandle sockfd) + { + byte* cmsg = stackalloc byte[CMSG_SIZE]; + + SysNative.IoVector* iov = stackalloc SysNative.IoVector[2]; + int iov_len = 0; + + int space = BUF_SIZE - buf_cnt; + int first = Math.Min(BUF_SIZE - buf_head, space); + int second = space - first; + + fixed (byte* buf = this.buf) + { + if (first > 0) + { + iov[0].iov_base = buf + buf_head; + iov[0].iov_len = first; + iov_len = 1; + if (second > 0) + { + iov[1].iov_base = buf; + iov[1].iov_len = second; + iov_len = 2; + } + } + + SysNative.MsgHeader msg = new SysNative.MsgHeader + { + msg_iov = iov, + msg_iovlen = iov_len, + msg_control = cmsg, + msg_controllen = CMSG_SIZE + }; + + SysNative.Result result = SysNative.RecvMsg(sockfd, ref msg); + if (result.retval < 0) + { + if (result.errno == 11) // EAGAIN + { + return; + } + throw new IOException(Marshal.GetPInvokeErrorMessage(result.errno)); + } + parse_cmsg(cmsg, (int)msg.msg_controllen); + buf_head = (buf_head + result.retval) & (BUF_SIZE - 1); + buf_cnt += result.retval; + } + } + + private unsafe void parse_cmsg(byte* cmsg, int clen) + { + while (clen >= sizeof(SysNative.CMsgHeader)) + { + SysNative.CMsgHeader* header = (SysNative.CMsgHeader*)cmsg; + + int cmsg_len = (int)header->cmsg_len; + if ((cmsg_len < sizeof(SysNative.CMsgHeader)) || (cmsg_len > clen)) + { + break; + } + + if ((header->cmsg_level == 1) && (header->cmsg_type == 1)) + { + int cmsg_fds_cnt = (cmsg_len - sizeof(SysNative.CMsgHeader)) / 4; + if ((fds_cnt + cmsg_fds_cnt) > FDS_SIZE) + { + throw new InternalBufferOverflowException(); + } + fds_cnt += cmsg_fds_cnt; + + ReadOnlySpan cmsg_fds = new ReadOnlySpan( + cmsg + sizeof(SysNative.CMsgHeader), cmsg_fds_cnt); + + int idx = fds_head; + foreach (int fd in cmsg_fds) + { + fds[idx] = new SafeFileHandle(fd, true); + idx = (idx + 1) & (FDS_SIZE - 1); + } + fds_head = idx; + } + + cmsg_len = (cmsg_len + (IntPtr.Size - 1)) & ~(IntPtr.Size - 1); + clen -= cmsg_len; + cmsg += cmsg_len; + } + } + } +} \ No newline at end of file diff --git a/WaylandNET/SendQueue.cs b/WaylandNET/SendQueue.cs new file mode 100644 index 0000000..a5b346f --- /dev/null +++ b/WaylandNET/SendQueue.cs @@ -0,0 +1,208 @@ +using System; +using System.IO; +using System.Text; +using System.Net.Sockets; +using System.Runtime.InteropServices; + +namespace WaylandNET +{ + public sealed class SendQueue + { + private const int BUF_SIZE = 4096; + private const int FDS_SIZE = 28; + private const int CMSG_SIZE = 16 + FDS_SIZE * 4; + + private readonly byte[] buf = new byte[BUF_SIZE]; + private readonly SafeHandle[] fds = new SafeHandle[FDS_SIZE]; + + private int buf_head; + private int buf_tail; + private int buf_cnt; + private int fds_cnt; + + public void Write(int val) => Write((uint)val); + + public void Write(uint val) + { + if ((buf_cnt + 4) > BUF_SIZE) + { + throw new InternalBufferOverflowException(); + } + buf_cnt += 4; + int idx = buf_head; + Span buf = this.buf; + buf[idx] = (byte)val; + idx = (idx + 1) & (BUF_SIZE - 1); + buf[idx] = (byte)(val >> 8); + idx = (idx + 1) & (BUF_SIZE - 1); + buf[idx] = (byte)(val >> 16); + idx = (idx + 1) & (BUF_SIZE - 1); + buf[idx] = (byte)(val >> 24); + idx = (idx + 1) & (BUF_SIZE - 1); + buf_head = idx; + } + + public void Write(string str) + { + if (str == null) + { + Write((uint)0); + return; + } + + ReadOnlySpan bytes = Encoding.UTF8.GetBytes(str); + int len = bytes.Length + 1; + Write(len); + len = (len + 3) & ~3; + if ((buf_cnt + len) > BUF_SIZE) + { + throw new InternalBufferOverflowException(); + } + buf_cnt += len; + + int idx = buf_head; + Span buf = this.buf; + + int first = Math.Min(BUF_SIZE - idx, bytes.Length); + int second = bytes.Length - first; + bytes.Slice(0, first).CopyTo(buf.Slice(idx, first)); + bytes.Slice(first, second).CopyTo(buf.Slice(0, second)); + + len -= bytes.Length; + idx = (idx + bytes.Length) & (BUF_SIZE - 1); + while (len-- > 0) + { + buf[idx] = 0; + idx = (idx + 1) & (BUF_SIZE - 1); + } + buf_head = idx; + } + + public void Write(ReadOnlySpan bytes) + { + int len = bytes.Length; + Write(len); + if (len == 0) return; + + len = (len + 3) & ~3; + if ((buf_cnt + len) > BUF_SIZE) + { + throw new InternalBufferOverflowException(); + } + buf_cnt += len; + + int idx = buf_head; + Span buf = this.buf; + + int first = Math.Min(BUF_SIZE - idx, bytes.Length); + int second = bytes.Length - first; + bytes.Slice(0, first).CopyTo(buf.Slice(idx, first)); + bytes.Slice(first, second).CopyTo(buf.Slice(0, second)); + + len -= bytes.Length; + idx = (idx + bytes.Length) & (BUF_SIZE - 1); + while (len-- > 0) + { + buf[idx] = 0; + idx = (idx + 1) & (BUF_SIZE - 1); + } + buf_head = idx; + } + + public void Write(SafeHandle fd) + { + if (fds_cnt >= FDS_SIZE) + { + throw new InternalBufferOverflowException(); + } + fds[fds_cnt++] = fd; + } + + public unsafe bool Flush(SafeHandle sockfd) + { + if ((buf_cnt == 0) && (fds_cnt == 0)) + { + return true; + } + + byte* cmsg = stackalloc byte[CMSG_SIZE]; + int cmsg_len = 0; + + if (fds_cnt > 0) + { + cmsg_len = sizeof(SysNative.CMsgHeader) + fds_cnt * 4; + SysNative.CMsgHeader* header = (SysNative.CMsgHeader*)cmsg; + header->cmsg_len = cmsg_len; + header->cmsg_level = 1; // SOL_SOCKET + header->cmsg_type = 1; // SCM_RIGHTS + } + + Span fds = new Span(this.fds, 0, fds_cnt); + int* cmsg_fds = (int*)(cmsg + sizeof(SysNative.CMsgHeader)); + + SysNative.IoVector* iov = stackalloc SysNative.IoVector[2]; + int iov_len = 0; + + int first = Math.Min(BUF_SIZE - buf_tail, buf_cnt); + int second = buf_cnt - first; + + fixed (byte* buf = this.buf) + { + if (first > 0) + { + iov[0].iov_base = buf + buf_tail; + iov[0].iov_len = first; + iov_len = 1; + if (second > 0) + { + iov[1].iov_base = buf; + iov[1].iov_len = second; + iov_len = 2; + } + } + + SysNative.MsgHeader msg = new SysNative.MsgHeader + { + msg_iov = iov, + msg_iovlen = iov_len, + msg_control = cmsg, + msg_controllen = cmsg_len + }; + + int fds_taken = 0; + SysNative.Result result; + try + { + foreach (SafeHandle fd in fds) + { + bool ignored = false; + fd.DangerousAddRef(ref ignored); // throws if disposed + cmsg_fds[fds_taken++] = (int)fd.DangerousGetHandle(); + } + result = SysNative.SendMsg(sockfd, ref msg); + } + finally + { + foreach (SafeHandle fd in fds.Slice(0, fds_taken)) + { + fd.DangerousRelease(); + } + } + if (result.retval < 0) + { + if (result.errno == 11) // EAGAIN + { + return false; + } + throw new IOException(Marshal.GetPInvokeErrorMessage(result.errno)); + } + fds.Clear(); + fds_cnt = 0; + buf_tail = (buf_tail + result.retval) & (BUF_SIZE - 1); + buf_cnt -= result.retval; + } + + return (buf_cnt == 0); + } + } +} diff --git a/WaylandNET/SysNative.cs b/WaylandNET/SysNative.cs new file mode 100644 index 0000000..41d961d --- /dev/null +++ b/WaylandNET/SysNative.cs @@ -0,0 +1,97 @@ +using System; +using System.Runtime.InteropServices; + +namespace WaylandNET +{ + internal static class SysNative + { + [StructLayout(LayoutKind.Sequential)] + public struct PollFd + { + public int fd; + public PollEvents events; + public PollEvents revents; + } + + [StructLayout(LayoutKind.Sequential)] + public unsafe struct IoVector + { + public void* iov_base; + public IntPtr iov_len; + } + + [StructLayout(LayoutKind.Sequential)] + public struct CMsgHeader + { + public IntPtr cmsg_len; + public int cmsg_level; + public int cmsg_type; + } + + [StructLayout(LayoutKind.Sequential)] + public unsafe struct MsgHeader + { + public void* msg_name; + public uint msg_namelen; + public IoVector* msg_iov; + public IntPtr msg_iovlen; + public void* msg_control; + public IntPtr msg_controllen; + public int msg_flags; + } + + public struct Result + { + public Result(int retval, int errno) + { + this.retval = retval; + this.errno = errno; + } + public readonly int retval; + public readonly int errno; + } + + public static Result Poll(ref PollFd pfd, int timeout) + { + int retval = poll(ref pfd, 1, timeout); + if (retval >= 0) + { + return new Result(retval, 0); + } + return new Result(-1, Marshal.GetLastPInvokeError()); + } + + public static Result SendMsg(SafeHandle sockfd, ref MsgHeader msg) + { + int retval = sendmsg(sockfd, ref msg, MSG_DONTWAIT | MSG_NOSIGNAL); + if (retval >= 0) + { + return new Result(retval, 0); + } + return new Result(-1, Marshal.GetLastPInvokeError()); + } + + public static Result RecvMsg(SafeHandle sockfd, ref MsgHeader msg) + { + int retval = recvmsg(sockfd, ref msg, MSG_DONTWAIT | MSG_CMSG_CLOEXEC); + if (retval >= 0) + { + return new Result(retval, 0); + } + return new Result(-1, Marshal.GetLastPInvokeError()); + } + + [DllImport("libc", SetLastError = true)] + private static extern int poll(ref PollFd fds, int nfds, int timeout); + + [DllImport("libc", SetLastError = true)] + private static extern int sendmsg(SafeHandle sockfd, ref MsgHeader msg, uint flags); + + [DllImport("libc", SetLastError = true)] + private static extern int recvmsg(SafeHandle sockfd, ref MsgHeader msg, uint flags); + + private const int MSG_DONTWAIT = 0x40; + private const int MSG_NOSIGNAL = 0x4000; + private const int MSG_CMSG_CLOEXEC = 0x40000000; + } +} diff --git a/WaylandNET/WaylandConnection.cs b/WaylandNET/WaylandConnection.cs index 115c25f..a3cb038 100644 --- a/WaylandNET/WaylandConnection.cs +++ b/WaylandNET/WaylandConnection.cs @@ -1,70 +1,31 @@ using System; +using System.IO; using System.Text; -using System.Collections.Generic; +using System.Net.Sockets; +using System.Runtime.InteropServices; namespace WaylandNET { public abstract class WaylandConnection : IDisposable { - public WaylandObject this[uint id] + public WaylandConnection(Socket socket, WaylandObjectMap objectMap) { - get => ObjectMap[id]; - set => ObjectMap[id] = value; + this.socket = socket; + this.objectMap = objectMap; } - public uint AllocateId() - { - return ObjectMap.AllocateId(); - } + public void Dispose() => socket.Dispose(); - public void DeallocateId(uint id) + public WaylandObject this[uint id] { - ObjectMap.DeallocateId(id); + get => objectMap[id]; + set => objectMap[id] = value; } - public void Read() - { - WaylandMessageHeader message = WireConnection.ReadMessageHeader(); - WaylandObject @object = ObjectMap[message.id]; - WaylandType[] argumentTypes = @object.Arguments(message.opcode); - List arguments = new List(); - foreach (WaylandType type in argumentTypes) - { - switch (type) - { - case WaylandType.Int: - arguments.Add(WireConnection.ReadInt32()); - break; - case WaylandType.UInt: - arguments.Add(WireConnection.ReadUInt32()); - break; - case WaylandType.Fixed: - arguments.Add(WireConnection.ReadDouble()); - break; - case WaylandType.Object: - arguments.Add(WireConnection.ReadUInt32()); - break; - case WaylandType.NewId: - arguments.Add(WireConnection.ReadUInt32()); - break; - case WaylandType.String: - arguments.Add(WireConnection.ReadString()); - break; - case WaylandType.Array: - arguments.Add(WireConnection.ReadBytes()); - break; - case WaylandType.Handle: - arguments.Add(WireConnection.ReadHandle()); - break; - } - } - if (@object.IsAlive) - { - @object.Handle(message.opcode, arguments.ToArray()); - } - } + public uint AllocateId() => objectMap.AllocateId(); + public void DeallocateId(uint id) => objectMap.DeallocateId(id); - public void Marshal(uint id, ushort opcode, params object[] arguments) + public void SendRequest(uint id, ushort opcode, params object[] arguments) { ushort size = 8; foreach (object argument in arguments) @@ -79,57 +40,163 @@ public void Marshal(uint id, ushort opcode, params object[] arguments) case string s: size += 4; if (s != null) - size += (ushort)((Encoding.UTF8.GetByteCount(s) + 4) / 4 * 4); + size += (ushort)((Encoding.UTF8.GetByteCount(s) + 4) & ~3); break; case byte[] a: size += 4; if (a != null) - size += (ushort)((a.Length + 3) / 4 * 4); + size += (ushort)((a.Length + 3) & ~3); break; - case IntPtr h: + case SafeHandle h: break; } } - WireConnection.Write(id); - WireConnection.Write(((uint)size << 16) | (uint)opcode); + sendQueue.Write(id); + sendQueue.Write(opcode | (size << 16)); foreach (object argument in arguments) { switch (argument) { case int i: - WireConnection.Write(i); + sendQueue.Write(i); break; case uint u: - WireConnection.Write(u); + sendQueue.Write(u); break; case double d: - WireConnection.Write(d); + sendQueue.Write((int)(d * 256.0)); break; case string s: - WireConnection.Write(s); + sendQueue.Write(s); break; case byte[] a: - WireConnection.Write(a); + sendQueue.Write(a); break; - case IntPtr h: - WireConnection.Write(h); + case SafeHandle h: + sendQueue.Write(h); break; } } } - protected WaylandWireConnection WireConnection { get; private set; } - protected WaylandObjectMap ObjectMap { get; private set; } - - protected WaylandConnection(WaylandWireConnection wireConnection, WaylandObjectMap objectMap) + public void MessageLoop() { - WireConnection = wireConnection; - ObjectMap = objectMap; + SafeHandle sockfd = socket.SafeHandle; + SysNative.Result result; + SysNative.PollFd pfd; + quit = false; + while (true) + { + int timeout = quit ? 0 : GetIdleTimeout(); + pfd.events = sendQueue.Flush(sockfd) ? PollEvents.POLLIN : + PollEvents.POLLIN | PollEvents.POLLOUT; + pfd.revents = 0; + bool ignored = false; + sockfd.DangerousAddRef(ref ignored); // throws if disposed + pfd.fd = (int)sockfd.DangerousGetHandle(); + try + { + result = SysNative.Poll(ref pfd, timeout); + } + finally + { + sockfd.DangerousRelease(); + } + if (result.retval < 0) + { + throw new IOException(Marshal.GetPInvokeErrorMessage(result.errno)); + } + if (result.retval == 0) // timeout + { + if (quit) + { + break; + } + continue; + } + if ((pfd.revents & (PollEvents.POLLERR | PollEvents.POLLHUP | PollEvents.POLLNVAL)) != 0) + { + throw new SocketException((int)SocketError.NotConnected); + } + if ((pfd.revents & PollEvents.POLLIN) != 0) + { + recvQueue.Receive(sockfd); + ParseReceived(); + } + } } - public void Dispose() + public void Quit() => quit = true; + + protected virtual int GetIdleTimeout() => -1; + + private void ParseReceived() { - WireConnection.Dispose(); + while (true) + { + if (recvObject == null) + { + if (recvQueue.Count < 8) + { + break; + } + recvObject = objectMap[recvQueue.ReadUInt32()]; + uint header = recvQueue.ReadUInt32(); + recvOpcode = (ushort)header; + recvLength = (ushort)(header >> 16); + } + if (recvQueue.Count < (recvLength - 8)) + { + break; + } + WaylandType[] argumentTypes = recvObject.Arguments(recvOpcode); + object[] arguments = new object[argumentTypes.Length]; + for (int i = 0; i < argumentTypes.Length; i++) + { + switch (argumentTypes[i]) + { + case WaylandType.Int: + arguments[i] = recvQueue.ReadInt32(); + break; + case WaylandType.UInt: + arguments[i] = recvQueue.ReadUInt32(); + break; + case WaylandType.Fixed: + arguments[i] = recvQueue.ReadInt32() / 256.0d; + break; + case WaylandType.Object: + arguments[i] = objectMap[recvQueue.ReadUInt32()]; + break; + case WaylandType.NewId: + arguments[i] = recvQueue.ReadUInt32(); + break; + case WaylandType.String: + arguments[i] = recvQueue.ReadString(); + break; + case WaylandType.Array: + arguments[i] = recvQueue.ReadBytes(); + break; + case WaylandType.Handle: + arguments[i] = recvQueue.ReadHandle(); + break; + } + } + if (recvObject.IsAlive) + { + recvObject.Handle(recvOpcode, arguments); + } + recvObject = null; + } } + + private readonly Socket socket; + private readonly WaylandObjectMap objectMap; + private readonly SendQueue sendQueue = new SendQueue(); + private readonly RecvQueue recvQueue = new RecvQueue(); + + private bool quit; + private ushort recvLength; + private ushort recvOpcode; + private WaylandObject recvObject; } } diff --git a/WaylandNET/WaylandMessageHeader.cs b/WaylandNET/WaylandMessageHeader.cs deleted file mode 100644 index 10b487e..0000000 --- a/WaylandNET/WaylandMessageHeader.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace WaylandNET -{ - public struct WaylandMessageHeader - { - public uint id; - public ushort opcode; - } -} diff --git a/WaylandNET/WaylandNET.csproj b/WaylandNET/WaylandNET.csproj index bced4d4..3f8f275 100644 --- a/WaylandNET/WaylandNET.csproj +++ b/WaylandNET/WaylandNET.csproj @@ -1,6 +1,6 @@ - net8.0 + net10.0 WaylandNET Tadeo Kondrak 0.2.0 @@ -10,5 +10,6 @@ https://github.com/tadeokondrak/WaylandNET.git git wayland + true diff --git a/WaylandNET/WaylandObject.cs b/WaylandNET/WaylandObject.cs index 08004c7..695b632 100644 --- a/WaylandNET/WaylandObject.cs +++ b/WaylandNET/WaylandObject.cs @@ -13,7 +13,7 @@ public abstract class WaylandObject public void Marshal(ushort opcode, params object[] arguments) { - Connection.Marshal(Id, opcode, arguments); + Connection.SendRequest(Id, opcode, arguments); } protected void Die() diff --git a/WaylandNET/WaylandWireConnection.cs b/WaylandNET/WaylandWireConnection.cs deleted file mode 100644 index d18f872..0000000 --- a/WaylandNET/WaylandWireConnection.cs +++ /dev/null @@ -1,133 +0,0 @@ -using System; -using System.IO; -using System.Net.Sockets; -using System.Text; - -namespace WaylandNET -{ - public sealed class WaylandWireConnection : IDisposable - { - Socket socket; - NetworkStream networkStream; - BinaryWriter binaryWriter; - BinaryReader binaryReader; - - public WaylandWireConnection(Socket socket) - { - this.socket = socket; - networkStream = new NetworkStream(socket); - binaryReader = new BinaryReader(networkStream); - binaryWriter = new BinaryWriter(networkStream); - } - - public void Dispose() - { - binaryReader.Dispose(); - binaryWriter.Dispose(); - networkStream.Dispose(); - socket.Dispose(); - } - - public WaylandMessageHeader ReadMessageHeader() - { - uint id = ReadUInt32(); - uint header = ReadUInt32(); - uint length = (header & 0xffff0000) >> 16; - ushort opcode = (ushort)(header & 0x0000ffff); - return new WaylandMessageHeader - { - id = id, - opcode = opcode, - }; - } - - public void Write(int i) - { - binaryWriter.Write(i); - } - - public void Write(uint u) - { - binaryWriter.Write(u); - } - - public void Write(double f) - { - binaryWriter.Write(Convert.ToInt32(f * 256)); - } - - public void Write(string s) - { - if (s == null) - { - Write((byte[])null); - } - else - { - byte[] bytes = Encoding.UTF8.GetBytes(s); - byte[] withNull = new byte[bytes.Length + 1]; - bytes.CopyTo(withNull, 0); - Write(withNull); - } - } - - public void Write(byte[] a) - { - if (a == null) - { - binaryWriter.Write((uint)0); - } - else - { - int paddedLength = (a.Length + 3) / 4 * 4; - binaryWriter.Write((uint)a.Length); - binaryWriter.Write(a); - for (int i = 0; i < paddedLength - a.Length; i++) - binaryWriter.Write((byte)0); - } - } - - public void Write(IntPtr h) - { - throw new NotSupportedException("File descriptors are currently not supported"); - } - - public int ReadInt32() - { - return binaryReader.ReadInt32(); - } - - public uint ReadUInt32() - { - return binaryReader.ReadUInt32(); - } - - public double ReadDouble() - { - int i = binaryReader.ReadInt32(); - return i / 256; - } - - public string ReadString() - { - byte[] bytes = ReadBytes(); - byte[] bytesWithoutNull = new byte[bytes.Length - 1]; - Array.Copy(bytes, bytesWithoutNull, bytesWithoutNull.Length); - return Encoding.UTF8.GetString(bytesWithoutNull); - } - - public byte[] ReadBytes() - { - int length = (int)binaryReader.ReadUInt32(); - int paddedLength = (length + 3) / 4 * 4; - byte[] bytes = binaryReader.ReadBytes(length); - binaryReader.ReadBytes(paddedLength - length); - return bytes; - } - - public IntPtr ReadHandle() - { - throw new NotSupportedException("File descriptors are currently not supported"); - } - } -} diff --git a/WaylandNETScanner/Program.cs b/WaylandNETScanner/Program.cs index 587b0f0..f055736 100644 --- a/WaylandNETScanner/Program.cs +++ b/WaylandNETScanner/Program.cs @@ -82,7 +82,7 @@ static string TypeForArgument(Interface @interface, Argument argument, bool raw) case "array": return "byte[]"; case "fd": - return "IntPtr"; + return "SafeFileHandle"; default: throw new ArgumentException($"unknown wayland type {argument.Type}"); } @@ -285,7 +285,6 @@ static void GenerateInterfaceArgumentsMethod(CodeGenerator gen, Interface @inter foreach (var argument in @event.Arguments) gen.AppendLine($"{TypeEnumForArgument(argument)},"); } - gen.AppendLine("break;"); } } using (gen.Case($"default:")) @@ -438,8 +437,8 @@ static void GenerateProtocol(CodeGenerator gen, Protocol protocol) { interfaces = protocol.Interfaces.ToDictionary(it => it.Name, it => it); GenerateCopyrightComment(gen, protocol.Copyright); - gen.AppendLine("#pragma warning disable 0162"); gen.AppendLine("using System;"); + gen.AppendLine("using Microsoft.Win32.SafeHandles;"); gen.AppendLine("using WaylandNET;"); gen.AppendLine("using WaylandNET.Client;"); GenerateDescriptionComment(gen, protocol.Description); diff --git a/WaylandNETScanner/WaylandNETScanner.csproj b/WaylandNETScanner/WaylandNETScanner.csproj index 4964ebf..d34e506 100644 --- a/WaylandNETScanner/WaylandNETScanner.csproj +++ b/WaylandNETScanner/WaylandNETScanner.csproj @@ -1,7 +1,7 @@ Exe - net8.0 + net10.0