xtable/0000755000176200001440000000000012655164132011536 5ustar liggesusersxtable/inst/0000755000176200001440000000000012654015472012514 5ustar liggesusersxtable/inst/doc/0000755000176200001440000000000012654015472013261 5ustar liggesusersxtable/inst/doc/margintable.R0000644000176200001440000000073212654015472015673 0ustar liggesusers## ----include=FALSE------------------------------------------------------- library(knitr) ## ------------------------------------------------------------------------ library(xtable) x <- matrix(rnorm(6), ncol = 2) x.small <- xtable(x, label = 'tabsmall', caption = 'A margin table') ## ----results='asis'------------------------------------------------------ print(x.small,floating.environment='margintable', latex.environments = "", table.placement = NULL) xtable/inst/doc/margintable.pdf0000644000176200001440000014520112654015472016244 0ustar liggesusers%PDF-1.4 % 1 0 obj << /S /GoTo /D (section*.1) >> endobj 4 0 obj (\376\377\000T\000h\000e\000\040\000E\000x\000a\000m\000p\000l\000e) endobj 5 0 obj << /S /GoTo /D [6 0 R /Fit] >> endobj 8 0 obj << /Length 1980 /Filter /FlateDecode >> stream xZmF>ai)nO\tig?`hh18w<߯ fv(/zꪧn{k{(Txq"S#oyd6g\ٜcZ_kY*=MFn(J>_t!(* m<`2kbZhvWH ޤ=O7qx%&~V,[ooNYbW}$eVnH(P# C3۫ bp'PR0!xi }Az>¯R1'1F$`pPXL;̌rƈ0B17ji4v֤1nsE(SnS z;@{[!X4 еI S1?'^#&^b:^>ˤ CimNz6/_`5!C<B:1$>~^\w .e6(eSpCYhߗLl-p*YZqyhegK&dYpMhNڼ*nv 챈0{mJQi'iv0#l45TVUg_mˏn,oڼL+z}9ɊU|vaF 8x3J>]v 6^d'BaH] kjkw)Y4B&EanUi-XWCQBX { V:.`V9I)&BZ`٥.J|:6v(@?I1&PPtLL,f^˦ZE~0O}㗵Sӎֿ)T.kd_owEh]99Gz$n |/R6n ;hW'P (mgar|M{ p59%轶z_ج+ YҤgfmY K[Wl2H MqϿ:vηnR)R\;Ĉ"u0ZwEJ߼ !ipi~WFP_ԶM^XNq֏&cLr$)w۴'!ҋK^6=KV*N'S TEK |;Ph8 }IBѫΊp4VZ1AL#n&VQ]yD2\ti +%OAoJ XD"T0tt2`%kNf 1Zr(2rá;BBuz8>Wfh=6g г @bcw1#oϓ܇Q=yڀ׬7`L0{dR^t5Mv?UQ%-lY4};ze;'8Vslx6cL=׮>\O3&4'JO M?bscGX-| 7zT<+3ĕG~.J!_PT~W0A endstream endobj 6 0 obj << /Type /Page /Contents 8 0 R /Resources 7 0 R /MediaBox [0 0 612 792] /Parent 16 0 R >> endobj 9 0 obj << /D [6 0 R /XYZ 71 762.843 null] >> endobj 11 0 obj << /D [6 0 R /XYZ 72 720 null] >> endobj 2 0 obj << /D [6 0 R /XYZ 72 720 null] >> endobj 7 0 obj << /Font << /F41 10 0 R /F45 12 0 R /F42 13 0 R /F51 14 0 R /F52 15 0 R >> /ProcSet [ /PDF /Text ] >> endobj 18 0 obj [602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602] endobj 19 0 obj [602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602 602] endobj 20 0 obj [605 608 167 380 611 291 313 333 0 333 606 0 667 500 333 287 0 0 0 0 0 0 0 0 0 0 0 0 333 208 250 278 371 500 500 840 778 278 333 333 389 606 250 333 250 606 500 500 500 500 500 500 500 500 500 500 250 250 606 606 606 444 747 778 611 709 774 611 556 763 832 337 333 726 611 946 831 786 604 786 668 525 613 778 722 1000 667 667 667 333 606 333 606 500 278 500 553 444 611 479 333 556 582 291 234 556 291 883 582 546 601 560 395 424 326 603 565 834 516 556 500 333 606 333 606 0 0 0 278 500 500 1000 500 500 333 1144 525 331 998 0 0 0 0 0 0 500 500 606 500 1000 333 979 424 331 827 0 0 667 0 278 500 500 500 500 606 500 333 747 333 500 606 333 747 333 400 606 300 300 333 603 628 250 333 300 333 500 750 750 750 444 778 778 778 778 778 778 944 709 611 611 611 611 337 337 337 337 774 831 786 786 786 786 786 606 833 778 778 778 778 667 604 556 500 500 500 500 500 500 758 444 479 479 479 479 287 287 287 287 546 582 546 546 546 546 546] endobj 21 0 obj [611 556 722 778 333 333 667 556 944 778 778 611 778 667 556 611 778 722 944 722 667 667 333 606 333 606 500 278 444 463 407 500 389 278 500 500 278 278 444 278 778 556 444 500 463 389 389 333 556 500 722 500] endobj 22 0 obj [500 500 500 500 500 500 500 500 500 500 250 250 606 606 606 444 747 778 611 709 774 611 556 763 832 337 333 726 611 946 831 786 604 786 668 525 613 778 722 1000 667 667 667 333 606 333 606 500 278 611 500 556 611 500 444 556 667 333 333 556 500 778 667 611 500 611 556 444 500 611 556 778 500] endobj 23 0 obj << /Length1 1850 /Length2 6910 /Length3 0 /Length 7912 /Filter /FlateDecode >> stream xڝtu\Tk6"% nQ;DfafdNRP:%$C).=?7ZZ}um;:z `DG Hc CzJա>+2G9#0( A!!()uWP4 "_'[ B_(Wzp@b R"RBNR.f衝'|V% jk|8 t8y:!(-`2C Ю| ð # m5CMP\%` j hB!pJ:'p0Z@ ^@ܬ!89BQJP`!࿡n s_S=(**r@QNP$bA@k>(U*.Cp{Z E!a w zMpFA '0 㟊bj +E 0>|௷\d =H!aFJ_l4?պJkDEWݑ@ClxnZ ׿?\m. ri+svf)*"܀缂bb ( $H^GԹ*ր ?!@_ pWb]yOo?mow\ct__ߚ_#Vu~Y<@sz@HWq* `@Pgo.gP BQP7Xl@;>7!N0(r52AעhFC+<[;;9]6Wy=m b?5h>Lwi@Hk7lhQc%=I9B5¥*mxmju{\G8ix,IՖmWbDJHb6)6(+6kCldR]=y'$:5]s~lJçCb Y ~c_OFmY!$"Yr%ـz:BnhgBo(+*)dlDP,8f{M֝0hZya׬Kq^ss+gfog+ %xNuM/c,aG.Ms:9Lc"4T-G_ƞu1R_eh]%LtB;̷E-%V$8]x>4(2~7IKx[w pW^ JO82nj^/>۠ !Ӻ _l1&(J{`ث3 Q֡)׌ #2,q"*Z*q.sDyuQ6]'EщI"Zv4p/ ]isp xoQx!Ark1aYQItJZZ:#Ek~rdfr$݄'e}\r{$JY9~tǍA3xP*5D#DuIiwUY yTC.5f_E5j;, ʼe}EYв!KB+T"ՐF(gMnEVp&Zxo=ֵHΠikV㤞&vqa1EqH<|]h41?E!Fx9h*9Η*3|;%^||:{̵T/}dIgvJk};uȵLJ4WLK٠{Ka +!W6'VqFLiOZ9=SYDtɮ*"p7e;ΘDpuY^|@DZVaK쏎vYO7?9~SnOu7^KJ8vhe;rE,7bl\&r~cDÂ";?d.9M{UJ&Py4sZ&.!PynM%']IO{%C oN͡@ 'vovm}9Dt9@nLvaKqQ8D\yel|Y:Q"BT~nI֬ѭګHEQ[D];)?xƬ }fzwka3 f.}ߎPp{@IR$(w |F^ϸ{}*uD_ JdNKqw ?0.tm?CNuynHPtV:Xm/o fzIЙ:BnOi*yy#t+f*n %( ~JRso^UvMBLJĶlzDyO۾ЈJn+->h~=Ro!X ix*229 $pZwۯSx;LRMJ-B_="$[c5C SdCc zZl7h9Ԇ4V*I{TG7pJ oOUU*zӘ9[2si^Ժr5խ_@B+NGʖxG3",J~[zHAZDz+AdO1`nF];]`sZ/u1q co9gm DڝFIM&‚1lo;TVxKFΕ'Qp+bi%2SlL}SK97C"ɤ3j0B)c*ʗE GLG<ӯn0<%Myg six_s2{E( NR-2)*q,.)W./~w"6)`lS q|FC2LgÓ ;9D h0m^;V~:d|$GT̝vշ*yHt?83db~v!XIǏdts0ǖi#6;# GVk~<ZAa~I8W&Tc{Na֩'_ncQϰef8V=x־XD`EЀfDq~%w~Ag ݃: -}V~+\ʼn޶65$ Υ4B1M>2SVweֿV?r(s/`AC[hήe7,͟>-]Q=:xsw`{CV Y ʬh.۪Q9ѡC̏*3> y#F:.X~Ʒt郁OJZ%RITFEM2Zsj5|tơ(ŃqnQcYRSi1]BF%b+R$E6*N 9QͿ˞N">`3w*4yg P>n O.<#O |.cՆE_rX'nXIT-s;"j:%&oO+M[:YFf%ɴq2>W^:୷)yEF5&[tDhE <2sCCqԷd lh8??b8a9flU\J(ճ{fĢn Oqb+'s-"ieP7̺'L9w blx!<+1+Psu}jӛ$r)V͉`Ω93HO!fg% ru =˯$7֨E?gmo1`Elti=T}yɎ ,{sFJQsO8{#[ĦRV߰f|S5\>8u|nN<.HxŽˑGX1|u-Ts%[o>LzNΐpR[`Y8Oiבȱ2ٝ,nc>`9mWdV %wƹș%7r!J)l{/WjD}Ijټ& P) YV-2%dԍ#o OvK@"2D>o( \{V mb@O1 #\G7na%帔dtkGt 93r+OW@_vW<p BiKcpXs3"}NCuG.>}Gr{Է'p,ߨQ,ԃ6"qMI?O\Zij_y۩MN:m:Ɨ_rݲj՗lEkJ{95p\sT*{%^;γ]5A7^ٝjхb?嫹dȫZHݝD)J.g<*&35rtr~XER> endobj 25 0 obj << /Length1 926 /Length2 2321 /Length3 0 /Length 2919 /Filter /FlateDecode >> stream xmy:ad*sCDa TԱ$)m@$eԉB ЩS$,#4d,0s." L*a3J 9CZx#](P 084@a]px)Lg~1>bINK"`w} X@|0ص Zs/?2@pq%6hWL(0X;5"zvCdx{7gX+>?n0Ӕth"Gp` DBIBR"~!Dh7sE[AJ')`󟤬D$( {~b= =~! {+`=x >ғS W~!qAI&(-/!ߟ=11uu"@QaJW}H$,}qb)X4h }6-%-\Ɨ٭i"'Mm7+#kۮ_1~beqx7u"Wբf}3ӉWf5 R] i %}[:=w5d-X Y72Wiۛ~=7LX)}/^[r5#)ZVJGˋ$_>;E퉘, 3 *\t𖡬³ 8>I*jܯĽV=_OgYF*#Gk0I!M1*/F]!܈. /v@^qxQ̝b̧sFL%&b`bޚ:E"KL g|.չk,F;~u}`%,Sf5;NU_MfPJ@$^Vt4g1wP_KCYV3j9jbJ254nOOd I(tGRL.ս }Yf~䘅 $8,ElZc;uڒU32MᵛNQVEJߘ}$p<5Ivv>-t؀}ݫ*s˯әBsKt3mz82=?q=w]nO1 YDsSCd3t*s 11Q x'=:ΧÙzyx%52b t ߔWIq1 -BNh.٭X+7).(H1OV8#Qu~$/Z2j) &jZFHH~4ĦW'Σ?C Í\8%0_ށ8}r]*b_c/ĊRƂQ9.[vRz&cA_ H Ν?_O'S#Nsd|yX;8}ŭM:Gz̤]QRt4qK\rn5n 2VBMrkAꛋNKj9]RtqZ<̬:!E$!|TKܺrL1}/cmO;bmϰ=\zOP^Q;SYa70MXrΥΈ{wkuu ?]aV=zd0뉸~Msz j˜'wޣYցwROepj̫\BJFmx(L߃!Z&}.3Ey{)^!x`buL &/eN͚)[k4`u\˓2nr˩Sb:XC[3&oޖY1jE ޮ;a+i1w\ػu1Ћ9!VO<*1ygJTdYߚ 8Z%s ^7sz}Cǒr<#Y^4ݑ:]'ȯbv}i-)~a [;澠h6Tp5^a@z%(g\tSjyYhrf#1 sI_`[xθne-^7Ƴ E aa0# xl^ 4[ŭĪ?M:z\]SϘhU gjte{`Lڬڄ zDzJGWZɬ&T7ޢ Aa4cL?qBɘT`駉'!zl} \Sx9~-<JGMg< Kk. \m)"h {ӭ'i*jo$q3 g,|")H1]wo^V蟽#x<[E=+?Ż.mk*d sZ:32|`i+^1iHA[5?.YFFx9x ;_%?őah20o5QDEg&A=^T쳏 < endstream endobj 26 0 obj << /Type /FontDescriptor /FontName /EGINKD+BeraSansMono-Bold /Flags 4 /FontBBox [-19 -236 606 928] /Ascent 747 /CapHeight 747 /Descent -197 /ItalicAngle 0 /StemV 201 /XHeight 547 /CharSet (/L/N/U/a/b/e/i/l/m/n/o/p/r/t/x/y) /FontFile 25 0 R >> endobj 27 0 obj << /Length1 1489 /Length2 4474 /Length3 0 /Length 5356 /Filter /FlateDecode >> stream xڍTy F "1H4@t=2Aӑt:8$hzT0X3sLAP oGR]G(N }ADÈ+=)npAA8n BG:e@8GDFe!I zD#sIbxG$6ؼQ۟u>ܨ0SC u8% %~("E%)S$.#%$DЍc7+vvYT@๟-#'47jW8&mOo7W T?Wz?[gp`)m^(&Wvyg-ӗo;ݔhaiLY;:`cf /Kx{ӷ%nLYTk '@T"TTvK]N-;ko>kL<^%eK 0\f{:f o[ ...TUaunS e3PPIZ[lyHyRMq\Sb﯇M _bUSs7NV̶>F76%_2Mnm1X9M,CIu5 ¯ќzϜk`JZ$>ZզJJf p țR5k MY11\XoQLguo./$L8lBluWiƌJ{۝|"N H{G1q:+ཐݕ|?8(q D$@4L&w%e/]F |a >z6֟y cmɱVT tMǟ_wY!kpwn (^y(i>ՐiIc15Xa1a=炊b);C9d@+W<ܕS#ۯd^NfvWJ΅wh|YM5 I-eUχZc cT71ZNl\} C d~޽ʼnN2<.|A{ɡ37"Vpnk zȒe]"/|5;Wn#D)R:8;pFɹֻw5N ^{u{87ᔨ^,D,8:L׾ )F_Y1+" -vkHüӗwo% -lĐI}TMG~nu=|az 0tH~N , )gGOŚ?rFHsO N7a޳9sɔv vXdzḿo|R_b轳;kGT?X}m^8Z{F1VGVxOPl?$3d_o.5l _a8߉WlLZN^/,{ c7xN5-ߛUvѥU=~$E꜅ v :`HdJ@8v?cadh5c\)}@J8.hGkOǬu1l`}d+$S]ҞrA2z*5āCdO6I+bq mOڛhYډݲaf8LPr3pqA=ZUI~0_$yN$ȫ "(,1_ }-b]^W]T*#MX`{bXS~K?u9҇,ޢ!\G2gh㢍REv`&~[݁+xGkkâ=Qd]!^ T$b+wcφN6N zԨ , B?L/0tdqi^}ȝ28 bc(ŎR@:w p_rٻi9uqgrRXLPߤ ] W.]\o.WGҖ=59V;'4C3S:xYMoaO* y;%$2NxHv]C7/Q#FVz$] 3m *Z그ys(-$Vާ\5c^ө,ݕA&uwL_?ٰ+|+W؋y)V8l=i>$8yw|Q~p'r>PP5SN(wo&OHWc1)kYem ^҈fWZnM,mN쯐X;3 ƚ.>Q6`u/P}Bjk:Ld6=xdX9AOEr䬳i2SdjFǑ?')|BXI($*츼'| f6n~{2?ZA ^3nOCdƨBG2UovqX .Z3Kɖ4v#nX w/eœbΡCQpحdfͷLa;~ we *oD2\GV' M7D7UZ>Ю'ʼetWlEfq>ffz|? ZnK\M3Qߴ$RM2OSƓ_tELa2vq\tƝy {J/\Q^11Bw F3- [mf2Nν^lJm)&<&/MPO"(OfN*s3_ hlيzfrJ^8k+71űFe]%=9Fƹ={6Cbtnv5xa_)Zk'kڒ}Uc C"3(tNYBAwyNgp \~RvQ8{_do8y3P49Ģ6;Os<^8OCFq;*6\յW}'A2&1wO>j<b I]-:A"ﻎ](cvjR$o+Kf#؞+@} ['ϓ$+{v"&y[L-C0g }d5P'ǁVM;cOWb&;\벸i"_ho|ڙI> 9pSd4rsagEgߛTBwO*GԠǻ(j>T+K jw4cSNz!cnjCZQBhw:Om*vx'vJ:uM Nw.D zG-NF"yy"ȧTȉeKk tmdA.S-Ju9 6ZCː^b]+8eISW\zû|' -w[2q(${p5 mxeF5TZYוR.}|vl-BOV6W~Vdɘr"NyCpQ[++,2Ws\ӄk!ײ)5}MǔH֩՜w(Ԥq" 3AeP۷V}νe=tAԭ碧oCzz ST#!Gw/JOn/kZ[6r!yk/7>qR!xe:W>3 w ?]iAawz ]ƴoφܳqh\VsE;/⮉RzHPU<_5 ߶w 2Y FEiu endstream endobj 28 0 obj << /Type /FontDescriptor /FontName /ZKQLUU+BeraSansMono-Roman /Flags 4 /FontBBox [-5 -236 606 928] /Ascent 771 /CapHeight 729 /Descent -222 /ItalicAngle 0 /StemV 201 /XHeight 547 /CharSet (/A/L/N/U/a/at/b/backslash/braceleft/braceright/bracketleft/bracketright/c/comma/d/e/equal/f/g/greater/h/hyphen/i/l/less/m/n/o/p/parenleft/parenright/period/quotedbl/quotesingle/r/s/six/t/two/u/v/x) /FontFile 27 0 R >> endobj 29 0 obj << /Length1 1616 /Length2 16358 /Length3 0 /Length 17190 /Filter /FlateDecode >> stream xڬUPe[%q(ܝ w;N.EΫsn߾_53s#+62P֙`hmmhba'Kdgckfq:[ي:y@(`憣{8Z;bzt0P}pZmB_oT@5 CASJ^@-!   .FY c`jҜb 9 N@cۀ@\t{go.&k7` vNNƎ΀YD?,v#M])__^gC ['3\F@-dak_ @3CGk_t/[{ߨ hm7fp?&.s: f/ C;[k QoJ D Or-bm-ohw?,K6?Hu?H9m_9h$n4Qp66ZӿvU[-@|*V4?\@[D2gSRSja(E.Asx3spYX9f7!@3tvph-V FiQv65;`EQ݁p+vƼ?ks'D{CKT WosWׄ04N|y,K;ŲI^Bݠ=d+Ayu5/v3WE8sDO8>2jpldxo6'7$Օ=(SeL=ٖ)voMeZNV%Ly>*<ٿ=`lNF͇5c+T5 P|U{%,y= ^3}8{W'f::d a',4#\7KMB{#!bRE -^qr,X7~ b٘F Kt"i9~."IqJFЛKU`>o¦Ռ"cYYAYƊ5!ZjtBtt-Ʀ)l aV@iV^OldNM(d)E o'/Zjn Nrd\ĸ+qT q\avx=,£"DSXڸe}":yqFp Ҁ +h-b2|Dm/.HoBVI@YD=(xS xLd/45?wEms!4_<1I WԳzm1B/B" n?pP>)T/тbҿ8F<[bs *U#[7Tw s頑ؐOyh>nu(cA3 2_DP+gݿy\fv| YjSX$>6+QbA Qe*gGY!?uXn}ɦM55(߆/MCWbt.UK c Q?c<7} b ҉MBIM#LYJ۟S;7zL"␘Wny_9Tn$4ipFhbPeCAۖԣԅ[=t-G{*,ɴgC jy" &\'+ΓOjވPٛJ~b IǾSxceє"Kʎ%j֖#^ҹ@xg8~MB (Q,yLC&q^H: Skd>̝vx,Nܫ4SR qbHɽ:/GZR~`,UXCq oHпV'{ OJpyHcz80ѯLkv. y~&5fL$63<=} lۜK#Q/vٜ7Jz5l̉7m,#cb]"7k`::;/N;l1x^t_ĹyAX|%?eקJO}S.Z1.E &)zjХ3{sc QPഓ`'W۸ZX;C6Cp >-iPFEd 3- o9;Wѓ^)QA*Fzya#C4,e_5EBU"JgX  \*~Ed P3. rMFTTywQ߇kD# ĬbͧH*dN D2{s >]9meO(;&ff co]|sf5 CʰCL\nm,?^1]\8:#R[R"VTبUa(r*쓰B ^AU jԞ  O{m`d]YLI( L?{{!;wtxR5eL_|33MWWZzQeІ)Dp9 Er*OuCy9.{}+fd ĪNȐ?ŊV_2\^JA9k7n#-\EYN9=E?n-t@qچ/M;@HXFc@4\N2La HdQT'TŖ5̷)WpeH1EL"I1-p?R%YB?|^u,wCtG\Fҭ@Ca4|Jx]-CzzBT]NճQNP@a᤽ܒ>5{$ pzKEwҦEJ`j *#S [BwT\6'C2 *0#ߧ`r|%G᪻Xn0">EJ+5It\_*$'aHM/NlZ|ZRKc|d;=WF^UGL9+馪#j$/+&^尾.sD"tx yHETL&.%H^AQ1}ďa)9x-M%פe`# TS1u{aT gQX3w۟WO0$ $WZk19jtu3~QfEaj,mZv"䂁50^ۭ\v[WcW;&L)fD52FmBAxV|28L~kw4\mOZtA*a$ڰaP#TT3bBQġ|Ái'ybM|{OOWq']8V#Bniu/ ^`qvrQ+qS̖#kw @Iۉø6;APXL@]זuUתQY|y+8OԳq7!ϴ!B=$ϟӡGR1-f{uH;_s4etZWDžf{>_F|pf" zHQ)m;r~KR4mϻmoafܚUAQڲ=t;޸Wu tlQqo{,@RogEQKvY8Bӱ898;u S]_>؃j,Eܰ;qs-mbeeAGd? vN5@02&P04j }Y zUPEl^8 -x/2u%O `c8*w>o67Z:pg[vWG46l+U"8/aNbr9l&^C<)7u_FEp]E'DK`B/8SĒ2ש7ȄR5z7b-A涋,RDROo#rϸ{ 0lJN()Tv 5pUc3fye~-f<ޤ&b,aF/ ]l͏3vJe[gzb,hبBId܈_EP{KJۑ})lj:Z_]lMGMm L.A7HٝUy3|Oڮ̆R˜fY 3b^&r,QaK#ʏauBLOW_2h§il>j|_5>!o~mZϰ[i!&H2(|{#IԪHw䪌r8Go&OyR؅5T,7\,H7c7N$ [ ԃE} w2-Clb$6C7?/@03J+%aa {8C3:Ѣ4RF^O: dTh?[H2lB5CۓwDcs9+z.H9^!:X+LQ^7S#X<X`Ӗ%ƌSMD馠E{L+Q08)KY^ 2nEY|ULgʿ,9TpWdZɝ=)6&V) w,[ 'FxF( f&4Vwu_ 걬L47R?U֤:˾cÇ,ucL=$Z\0)*ǹJa}txvR8Ge m__(QOڡ%UӤeqOlauǵ\L27Xo3x@8tNSEʵ7Fi\w9Zbʨ//w,pAV檢x|D&04 {ʼn%>8]Fxf_ٵ"li7E4x,KY+rlM8,$+\8`͘w`Zo+@N{11Ū,bJU+~nkҶ~SuڡR8UXaTڄ?V ^w>{W1rlj[|m)dg4P^ܚ 2粿M+BΊS4Nu6?NVwڱ3ro^.:(Qn0JBrR^~TK9;X 8 0lcXe55@P^Ϩ}3j+UZzƂKŐc7&%gW&\'93z@Cxh0gk?;/s:uQxz8$>hݤ+u -[Wz^-4!l-x\9!s:./}nҌK㍌7#t7:.,@*ܲ*R,](Cw#cl.cRP;P꩎#!!]eWC.]['Qp-'PsF#~LGYl7>n^Y%Ri 3\n7 5=x(KprZIb]5r!q!<:!iO՟1u&;cZ$beyjɇwv'ym|*q}v#u&`Mui. Kz̈g%| fDF;6&J=tg8_^yxe }Ow)+۶H:Ag5͓Pj27̘y2p&jvʑ"xuO UW,n;卩W{X3~F$5o01.ٖ'F,x$T.?[:-{\\D(H{b ўFQ,eTQD;@?N,xp_E@P`&ϢwwC zv G MK'K/J\nOca;ڵtϫSiyP2Na>'sOE%GU.Ў75``{FS%hJ&^ 5Av}UlU7Q7-[lFt pzJщD3Mm=#kn`ٜ~!N Wvһi<,;Y hb<;z-q؅ᎏi=i) i 62\0NT\zz?{͚o9lwsc ?**$Xn\>y;kGCyLM'˩(-eYTg `>f%3:8^R ۓ tpkƗ#*.  = .31̊zNy cÿA*&UQ cAFqڣ Gܾi-򫭔eȥ)K$܊(yG#5F:i01ۇl;|?D7(`5mkK*( $>[+ bi&SdWI$$2_ Bכk;.c!AmzWA*Use[25=Wt~Vt^/ LfQ'qh^ Zyж* ~s!Jy1#E2F,XEj[BD׊5WZ$2"e [0z]P bcO;7W( ]E8"(k[9GAa^ǫWAY9MRQFkeO .zȨcң}HY"QdhUZM1;]"Xr 5~[#Zr`rc!Ѧ#4bUqBbY#ޚ8z\Jגt]Sw}Kl\/\Zj(ꀮXrm%*]cb-{䟵Z/컭U[R ['56nwQwczJszI!? (=zl6u8oykGJ9^]Rn־=z @bqfTr_b\b5`/,-~^Ňq6W&5wwt f4\  QVO۬0ί0Xqx7Lo@17$zd VʿsJ9EM&¨]]5$Lof95L[%]΂ҪHD;|0㡧xffʓ1FZ]6FY_9(>_f{I( ,9 q2 #UHmEdp\2KATܮ" ED?}&^v 2~ٱҊ)-sQ֚P Os ؼ:%(o+e%M b",l/z'5)MZN2Aƒ3k pH9ȹ;́OI mSG24k˗hP06WjuC~.C"dr {\{R-$xM}L;A,,"Ke%}RCЦ!/,)>c 8.02ꤝi;]3M^KC _d8q6A4hSU!9$HrI!R$c gv&L|]FzϬ5 ;/2L?ғ3_T}W yXJ.`˵?A<>~eΘ0Q[ -ƂG]r=~'9$aq5L{ }hzM~E'u2L] UBnLBm>"n77 [,P կǴc3 0aROJ画6"pTTsTz" IVREPğ{ejLxrA HiC;%5B`,YR"_O WKl`9bH+/_e?|gG5v"l";02fԂrt I~],'!C9h\n^7*bBQ%cf ð9'زGЍ= erĜN][rّ r6# x X, b haY vQP]34B%~tsS &/` %}tƪ񖏐|)koDxY n2v;@%W-Uo։/ȳeΎΓ[&sh⾆r3KӃ2.U?{|tqJJOsՕlV/M`$03׶{.}3%=C3y7Vu >+~x|,C OTYg4>U0Bw]UĊx@M0l@ ʼBVH !eV~h̙`Ή"lKġq nӜ6rFѥ*`hVnYbVxMQI'˻YVP(8EB.];ѧh4jFeNNNJRn1zR%t :hxzi1{͡7e$6֩>?IK4hЬۦoһSj9#&@^hKP$O80ѣ_y9OJT-uL7c/H\p1,OXsZ_6_v\IOe$L'  Jr,K _èLÔI:̖Te.0]gSt̩`OH=Zpa.2Oc E(;}q%r@oXAA0T+ ?7zN6znA?edrtԣ]/_0t2SDM͗ M$jлlIڭ)lT5RKƏFT9%Gv2*Ni ((?fWOEzɡp@zG5פd@)%9"c"O( Բhi 0:XPWn5G2| AMaBsf̘Z=T8dO,i βz49ӥ@Y N4L`e$ᆙVidX8(qY}pTbu;({uXKك~E`v ƬԯC50Фb_kj3\uwγHc`\}o0M ?u'DrE.Rg#1)}omju9vy5Y+ժ1:1qWt^4ӇJ"Nߎol9s&R/'tTd85;0@+2m+s"I踻`=uWb=\:p &U^Xj;pŝJ'W yguqVi`HdPqq74i&cտ+2t5w-Uk}u1 ¥υ&uӈ\KFd^ wOI. QʮXTK|t ;~V b1LMM¦k{4>mAx| niӃU#֪SlΥ?h_؂:gIP kTW2uYv 5Cg9j>lH?;ai{q}ӣy: &XG.y <~E7-q`cc2u+uX60RMk[*&dW2 01%6^l6P\ܚV{>)WVAFb;^K4|Y柇 `9{ !ŇP8jԯm(ĊBC:∽F;4e7ৈts{󶜏]ۮq֮p_uCtaDh7}i$yM#itz^/}"kZp*PӎXffwN[:h; +Xy#/[!<53->x Na投-U8bb|O ?iMNs+CQ&4:o<7Fz4 6y-9n˔LKDw =wkuƤǼ><# s"\vBzU忍&~CnT9 ܀Xw#HJ5˘(P]NIU[ *mG9IvATMijw[)6} f-saM+\G8j@9Ls(*bη@Xw| X+Իy?*=YԭfG5q4-\l ?eƭRuC!%tq:ջ?n|e76 =%t[ߟhDLdgXAwGo>?LnL0naIY0R_b/NrXݫ,BZ_ eJ[_v̴ .okuk6t?iCEc OT]Q"gD)ƥe^wrvGFܴ۠ɡ/LʔVd.?:咪("z?VUjE @PYMwX [p~ۉ2m9u{0uM3pE|$ a\z W"|ЌӝGjP*2AБxvKWSCWM>?ztrZ] M=E-ݘT!S[֘Oi]J-M T.O^gWj3K}5@ g?g2pfFPڝs6/;ldz;slͤ}kKIJDiߧZ 2CL¬ :wxݗ"]ś3Iz{q;;5a5-JaoWJ8U91VRhGainh~7Ң-/1x*Y}t[0Gt K->I R$RzUn3&h'k,Zf,6xߖn+¥),DuX}N3RQ;f1}/#{V4 ~n-Akyk7?2fK:ziIv{& M ;G8vNgYYdXUCA֖K7q 2޾m]LJڤ[OjJ(M m2Ioל&,آ c']$I(X9d&IBGBG<[ӊ*#u%OH+T[W_zғ"m+UyhEjK1PBpDBSiÄ0*2MOx1mtrP4(ЃiA#̀ܛ|N잸A -{K`혛V́3k t2WxAA&"P>YFށ ~OV po`0 l'TCWuA6j0ݑ!9GlJGgPWX+RFdSwZ%Bq%6h"Lj$RlT`w9L'*pmXyiߵR1iyұS1gLϪr4xl#*y^}Qa;)h&-e7 oJBG3}e_žS]s0&) OZQ^@_ <6ݙcADỳEd:==5~B;sP_-Cw6J&F(C!SrT&G)m&qNb5|]Ğr*Hlֱ !q= )@8u(v^0;51͚dZ^*o{'+&+[ڸfQf<={wR*EMtMr endstream endobj 30 0 obj << /Type /FontDescriptor /FontName /XEWZVU+URWPalladioL-Roma /Flags 4 /FontBBox [-166 -283 1021 943] /Ascent 715 /CapHeight 680 /Descent -282 /ItalicAngle 0 /StemV 84 /XHeight 469 /CharSet (/A/E/F/H/I/L/M/N/O/S/T/X/a/b/c/comma/d/e/f/fi/g/h/hyphen/i/k/l/m/n/o/odieresis/p/period/q/quoteright/r/s/t/u/v/w/x/y) /FontFile 29 0 R >> endobj 31 0 obj << /Length1 1620 /Length2 7598 /Length3 0 /Length 8425 /Filter /FlateDecode >> stream xڭweX]6 % 9t )(338 "%JwHw4HK7|>uu^qfjrˀ``'ۛ 0Ws{YY6G@`PysX (63@X l윜\vX_{Yiif\ͻ'FYP: ݖXՈ|>Hȇ#ؐyHܹ5' a-HчŏYP~(F,<)wzV2Jhd|\Cg8; Y7k"L kyL@ jf\!տJ};|."W>*.:IaڬH0a[!#_8)L޸;߾* adcZ?O,3& ن-<d"F#ԮSSa%;ЯHfK7kQx{`<uh9=w ^YlBVp9{ їzi˺u9]fO0"u%XIIf9/'E2N gJ/tk 'qrP[$þR1Z4ۜs.SۘԟXZ֕\gnSڥN:DS1W͚D3>@a>"εȍƬQ[\W"!8SIqa;(P%].\jXE+J);[&ŬdMgQ[xF S㼺MV[;AP|@iwEʋc$|`RYu{kaJ[YpQ.^sf;QY<`3j9])D/lk뾖wHuiWJ%l*EMD ڹµ+Ғv?yk2_Uh0 -"ud|-,퇔Xkv Z|w% }]g3$џP4Asf5CӖKdπ{ e'c!{bq暄 ZG9z6ЛDZLdgHAr 0#ҌVCoZ&=%eHګjsk1* }P}IRKREs%M@\+U}3?Q7/vh[ b236"ڎ(0 :-j,Re&>3VrJ\\L >" `p#w]9!"޻Xmlv15ㅵCɊx\AoILg3~?u1ťGqkHȑ]blHD+ ̋8`ok@y/IVOjϷw49~5^-yzQy> QEO-CU+ۇ3q󁊤t.2圃9(+Tԃ>@=N&\8/- ƘMBG(p;w[Bls6r!,R綾Aq.ą> op9=$#Ÿ1ͩ}*5xZ᩺jdoΥr@UoBDnn \|mf 8ුw֏ FYR2.3d֡ocǧhPڛp.oM\GP$y8 CA@PFҹ=$oO"צ aTwig)`#fuO_/g=Of[7O0it<%?ӽ1V?==eAFZhL:fߒu=_^T5~7<5;LWPm dJ +{&Elb]:̋A}U:ďk 'Ulex~Ud5HwC'{;?6tq4asfƲ ]RK -o9M:0Ew7f.AfKvyRfMA ^%S"WQQ5=umGmdw/[cvsOsxyN$0D&%j岍?Eq{4-qr}iύWHcָy94Bi'v.:6u!3qI*l5`b)k?9%n80wo9ˁHTjE?u9RؔbaݲQW| t'EJR8/Y4ymFTa~RHo;B>h358IE%¯W*Q>w7`Cs%KI zKP򬍻ӿ{VW1n]3^(͚g͵:Z!k?XMlAVş*xXTh=jw׮Tˤ:eVU8ShkO{mK))> yq V:QSnӻ!cܡ諆LJs3'_ ?XsHk'r-cSY+K$LYB_~maa1Ba]x '׎fw݊;snXB"w'Il4*,ף. m9G,.ycUM!M4ǿ}4 yJTP) 9=cV /z ie{*] =$\0XGH^,Srn!cu|1U+Qʇ^ Vmz1F6(]B'dOD8Dp(QOzЯ_df47 VhRfJ+ >~- ?N`<@(5Vmhe7^ M2lML,R-b>`{uQicS]ImEhr?Qp%FMȳ`xe( noÆhv?GxR+W*򹕺UF\n[ d]KC.CG%{+b37G$jF$dq?+wG=2)7+ϞziRs+zܙ:tsF~<1kzt~RD8J&gj~{4!k~zRjݦ߲伉K阵5'R l[:{bsG^ \ ^5ed~ː;mBּ伎O^rP &y,BpKGWf_D)kqĉ~VUL kGc_qYo8OvnFO:jnyAONUe{~+_N2ͭzUI j>u$0幈5&*3fs=+{"KbWϾJ rT֐F=Bs endstream endobj 32 0 obj << /Type /FontDescriptor /FontName /CWMNOL+URWPalladioL-Ital /Flags 4 /FontBBox [-170 -305 1010 941] /Ascent 722 /CapHeight 693 /Descent -261 /ItalicAngle -9 /StemV 78 /XHeight 482 /CharSet (/E/T/a/e/h/l/m/p/x) /FontFile 31 0 R >> endobj 17 0 obj << /Type /Encoding /Differences [2/fi 31/quotesingle 34/quotedbl 39/quoteright/parenleft/parenright 44/comma/hyphen/period 48/zero/one/two/three 53/five/six/seven 57/nine 60/less/equal/greater 64/at/A 69/E/F 72/H/I 76/L/M/N/O 83/S/T/U 88/X 91/bracketleft/backslash/bracketright 97/a/b/c/d/e/f/g/h/i 107/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y 123/braceleft 125/braceright 246/odieresis] >> endobj 15 0 obj << /Type /Font /Subtype /Type1 /BaseFont /EGINKD+BeraSansMono-Bold /FontDescriptor 26 0 R /FirstChar 76 /LastChar 121 /Widths 18 0 R /Encoding 17 0 R >> endobj 14 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZKQLUU+BeraSansMono-Roman /FontDescriptor 28 0 R /FirstChar 31 /LastChar 125 /Widths 19 0 R /Encoding 17 0 R >> endobj 13 0 obj << /Type /Font /Subtype /Type1 /BaseFont /XEWZVU+URWPalladioL-Roma /FontDescriptor 30 0 R /FirstChar 2 /LastChar 246 /Widths 20 0 R /Encoding 17 0 R >> endobj 10 0 obj << /Type /Font /Subtype /Type1 /BaseFont /RQKSND+TeXPalladioL-SC /FontDescriptor 24 0 R /FirstChar 48 /LastChar 120 /Widths 22 0 R /Encoding 17 0 R >> endobj 12 0 obj << /Type /Font /Subtype /Type1 /BaseFont /CWMNOL+URWPalladioL-Ital /FontDescriptor 32 0 R /FirstChar 69 /LastChar 120 /Widths 21 0 R /Encoding 17 0 R >> endobj 16 0 obj << /Type /Pages /Count 1 /Kids [6 0 R] >> endobj 33 0 obj << /Type /Outlines /First 3 0 R /Last 3 0 R /Count 1 >> endobj 3 0 obj << /Title 4 0 R /A 1 0 R /Parent 33 0 R >> endobj 34 0 obj << /Names [(Doc-Start) 11 0 R (page.1) 9 0 R (section*.1) 2 0 R] /Limits [(Doc-Start) (section*.1)] >> endobj 35 0 obj << /Dests 34 0 R >> endobj 36 0 obj << /Type /Catalog /Pages 16 0 R /Outlines 33 0 R /Names 35 0 R /PageMode/UseOutlines /OpenAction 5 0 R >> endobj 37 0 obj << /Author(\376\377\000D\000a\000v\000i\000d\000\040\000J\000.\000\040\000S\000c\000o\000t\000t)/Title(\376\377\000\040\000A\000\040\000M\000a\000r\000g\000i\000n\000\040\000T\000a\000b\000l\000e\000\040\000E\000x\000a\000m\000p\000l\000e\000\040)/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.14)/Keywords() /CreationDate (D:20160202155800+13'00') /ModDate (D:20160202155800+13'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 38 0000000000 65535 f 0000000015 00000 n 0000002458 00000 n 0000050037 00000 n 0000000061 00000 n 0000000145 00000 n 0000002250 00000 n 0000002507 00000 n 0000000191 00000 n 0000002355 00000 n 0000049571 00000 n 0000002408 00000 n 0000049738 00000 n 0000049403 00000 n 0000049233 00000 n 0000049064 00000 n 0000049907 00000 n 0000048668 00000 n 0000002624 00000 n 0000002826 00000 n 0000003224 00000 n 0000004174 00000 n 0000004400 00000 n 0000004711 00000 n 0000012742 00000 n 0000013029 00000 n 0000016066 00000 n 0000016325 00000 n 0000021800 00000 n 0000022223 00000 n 0000039533 00000 n 0000039877 00000 n 0000048421 00000 n 0000049965 00000 n 0000050095 00000 n 0000050214 00000 n 0000050250 00000 n 0000050372 00000 n trailer << /Size 38 /Root 36 0 R /Info 37 0 R /ID [<550F229B6B17E4F8AE70720C889AB193> <550F229B6B17E4F8AE70720C889AB193>] >> startxref 50924 %%EOF xtable/inst/doc/xtableGallery.Rnw0000644000176200001440000005020312654015472016550 0ustar liggesusers%\VignetteIndexEntry{xtable Gallery} %\VignetteDepends{xtable} %\VignetteKeywords{LaTeX, HTML, table} %\VignettePackage{xtable} % !Rnw weave = knitr % \VignetteEngine{knitr::knitr} %************************************************************************** \documentclass{article} \usepackage[a4paper,height=24cm]{geometry} % geometry first \usepackage{array} \usepackage{booktabs} \usepackage{longtable} \usepackage{parskip} \usepackage{rotating} \usepackage{tabularx} \usepackage{titlesec} \usepackage{hyperref} % hyperref last \titleformat\subsubsection{\bfseries\itshape}{}{0pt}{} \newcommand\p{\vspace{2ex}} \newcommand\code[1]{\texttt{#1}} \newcommand\pkg[1]{\textbf{#1}} \setcounter{tocdepth}{2} \begin{document} \title{The \pkg{xtable} Gallery} \author{Jonathan Swinton and others} \maketitle \tableofcontents \newpage \section{Introduction} This document gives a gallery of tables which can be made using the \pkg{xtable} package to create \LaTeX\ output. It doubles as a regression check for the package. <>= library(knitr) opts_chunk$set(fig.path='figdir/fig', debug=TRUE, echo=TRUE) set.seed(1234) @ The first step is to load the package and set an option for this document. <>= library(xtable) options(xtable.floating = FALSE) options(xtable.timestamp = "") @ \section{Gallery} \subsection{Data frame} <>= data(tli) xtable(tli[1:10, ]) @ \subsection{Matrix} <>= design.matrix <- model.matrix(~ sex*grade, data = tli[1:10, ]) xtable(design.matrix, digits = 0) @ \newpage \subsection{aov} <>= fm1 <- aov(tlimth ~ sex + ethnicty + grade + disadvg, data = tli) xtable(fm1) @ \subsection{lm} <>= fm2 <- lm(tlimth ~ sex*ethnicty, data = tli) xtable(fm2) @ \subsubsection{Anova table (one model)} <>= xtable(anova(fm2)) @ \subsubsection{Anova table (two models)} <>= fm2b <- lm(tlimth ~ ethnicty, data = tli) xtable(anova(fm2b, fm2)) @ \subsubsection{Anova list} <>= Block <- gl(8, 4) A <- factor(c(0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1, 0,1,0,1,0,1,0,1,0,1,0,1)) B <- factor(c(0,0,1,1,0,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1, 0,0,1,1,0,0,1,1,0,0,1,1)) C <- factor(c(0,1,1,0,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,1, 1,0,1,0,0,0,1,1,1,1,0,0)) Yield <- c(101, 373, 398, 291, 312, 106, 265, 450, 106, 306, 324, 449, 272, 89, 407, 338, 87, 324, 279, 471, 323, 128, 423, 334, 131, 103, 445, 437, 324, 361, 302, 272) aovdat <- data.frame(Block, A, B, C, Yield) old <- getOption("contrasts") options(contrasts = c("contr.helmert", "contr.poly")) (fit <- aov(Yield ~ A*B*C + Error(Block), data = aovdat)) class(fit) summary(fit) options(contrasts = old) @ \p <>= xtable(fit) @ \newpage \subsection{glm} <>= fm3 <- glm(disadvg ~ ethnicty*grade, data = tli, family = binomial) xtable(fm3) @ \subsubsection{Analysis of deviance} <>= xtable(anova(fm3)) @ \subsection{prcomp} <>= pr1 <- prcomp(USArrests) xtable(pr1) @ \p <>= xtable(summary(pr1)) @ <>= # pr2 <- princomp(USArrests) # xtable(pr2) @ \newpage \subsection{Time series} <>= temp.ts <- ts(cumsum(1 + round(rnorm(100), 0)), start = c(1954, 7), frequency = 12) temp.table <- xtable(temp.ts, digits = 0) temp.table @ \subsection{Flat tables} \label{sec:flat-tables} See the \textbf{Details} section of the help for \code{ftable} for a description of these tables, which are flat versions of multi-dimensional contingency tables. They require special methods to enable them to be printed using \pkg{xtable} <>= data(mtcars) mtcars$cyl <- factor(mtcars$cyl, levels = c("4","6","8"), labels = c("four","six","eight")) tbl <- ftable(mtcars$cyl, mtcars$vs, mtcars$am, mtcars$gear, row.vars = c(2, 4), dnn = c("Cylinders", "V/S", "Transmission", "Gears")) tbl @ %def Here is the \LaTeX{} produced: <>= xftbl <- xtableFtable(tbl, method = "compact") print.xtableFtable(xftbl, booktabs = TRUE) @ %def And here is a basic flat table: <>= xftbl <- xtableFtable(tbl) print.xtableFtable(xftbl) @ %def This illustrates the \code{method} argument: <>= xftbl <- xtableFtable(tbl, method = "col.compact") print.xtableFtable(xftbl, rotate.rownames = TRUE) @ %def Booktabs is incompatible with vertical lines in tables, so the vertical dividing line is removed. <>= xftbl <- xtableFtable(tbl, method = "compact") print.xtableFtable(xftbl, booktabs = TRUE) @ %def \p Row and column variable names can be formatted specially using sanitization, and row and column variable names and labels can be rotated. If special formatting is required for row and column labels, that can be done as a workaround by redefining the data and associated labels. <>= italic <- function(x){ paste0('{\\emph{', x, '}}') } mtcars$cyl <- factor(mtcars$cyl, levels = c("four","six","eight"), labels = c("four",italic("six"),"eight")) large <- function(x){ paste0('{\\Large ', x, '}') } bold <- function(x){ paste0('{\\bfseries ', x, '}') } tbl <- ftable(mtcars$cyl, mtcars$vs, mtcars$am, mtcars$gear, row.vars = c(2, 4), dnn = c("Cylinders", "V/S", "Transmission", "Gears")) xftbl <- xtableFtable(tbl, method = "row.compact") print.xtableFtable(xftbl, sanitize.rownames.function = large, sanitize.colnames.function = bold, rotate.colnames = TRUE, rotate.rownames = TRUE) @ %def \newpage <>= # ## Demonstrate saving to file # for(i in c("latex", "html")) { # outFileName <- paste("xtable.", ifelse(i=="latex", "tex", i), sep = "") # print(xtable(lm.D9), type = i, file = outFileName, append = TRUE, # latex.environments = NULL) # print(xtable(lm.D9), type = i, file = outFileName, append = TRUE, # latex.environments = "") # print(xtable(lm.D9), type = i, file = outFileName, append = TRUE, # latex.environments = "center") # print(xtable(anova(glm.D93, test = "Chisq")), # type = i, file = outFileName, # append = TRUE) # print(xtable(anova(glm.D93)), hline.after = c(1), # size = "small", type = i, # file = outFileName, append = TRUE) # # print(xtable(pr2), type = i, file = outFileName, append = TRUE) # } @ \section{Automatic formatting} \subsection{Suggest alignment, digits, and display} The functions \code{xalign}, \code{xdigits}, and \code{xdisplay} are useful for formatting tables in a sensible way. Consider the output produced by the default formatting. <>= data(mtcars) dat <- mtcars[1:3, 1:6] x <- xtable(dat) x @ \p Now change the default alignment, digits and display using helper functions \code{xalign}, \code{xdigits}, and \code{xdisplay}. This produces a better format as shown below. <>= align(x) <- xalign(x) digits(x) <- xdigits(x) display(x) <- xdisplay(x) x @ \subsection{Shorthand notation} For convenience, the three `autoformat' functions (\code{xalign}, \code{xdigits}, and \code{xdisplay}) can be applied together when an \code{xtable} is created, using the \code{auto} argument: <>= xtable(dat, auto = TRUE) @ \p Similarly, the \code{autoformat} function can be used to postprocess an existing \code{xtable}: <>= x <- xtable(dat) autoformat(x) @ \newpage \subsection{Math-Style Exponents} If you prefer $5 \times 10^5$ in your tables to 5e5, the \code{math.style.exponents} option to \code{print.xtable} is useful: <>= print(xtable(data.frame(text = c("foo","bar"), googols = c(10e10,50e10), small = c(8e-24,7e-5), row.names = c("A","B")), display = c("s","s","g","g")), math.style.exponents = TRUE) @ this option also supports the values \code{ensuremath} which uses \code{\char`\\ensuremath} instead of \code{\$\$} and \code{UTF-8} which uses UTF-8 to approximate the \LaTeX typesetting. \section{Sanitization} <>= insane <- data.frame(Name = c("Ampersand","Greater than","Less than", "Underscore","Per cent","Dollar", "Backslash","Hash","Caret","Tilde", "Left brace","Right brace"), Character = I(c("&",">","<","_","%","$", "\\","#","^","~","{","}"))) colnames(insane)[2] <- paste(insane[, 2], collapse = "") xtable(insane) @ \p Sometimes you might want to have your own sanitization function. <>= wanttex <- xtable(data.frame(Column = paste("Value_is $10^{-",1:3,"}$", sep = ""))) print(wanttex, sanitize.text.function = function(str) gsub("_", "\\_", str, fixed = TRUE)) @ \p Sanitization can be useful in formatting column headings and row names: <>= dat <- mtcars[1:3, 1:6] large <- function(x){ paste0('{\\Large{\\bfseries ', x, '}}') } italic <- function(x){ paste0('{\\emph{ ', x, '}}') } @ %def <>= print(xtable(dat), sanitize.rownames.function = italic, sanitize.colnames.function = large, booktabs = TRUE) @ %def \newpage \subsection{Markup in tables} Markup can be included in tables, including in column and row names, by using a custom \code{sanitize.text.function}. <>= mat <- round(matrix(c(0.9, 0.89, 200, 0.045, 2.0), c(1, 5)), 4) rownames(mat) <- "$y_{t-1}$" colnames(mat) <- c("$R^2$", "$\\bar{x}$", "F-stat", "S.E.E", "DW") mat <- xtable(mat) print(mat, sanitize.text.function = function(x) {x}) @ % By David Dahl to demonstrate contribution from David Whitting, 2007-10-09. \p You can also have sanitize functions that are specific to column or row names. In the table below, the row name is not sanitized but column names and table elements are. <>= money <- matrix(c("$1,000","$900","$100"), ncol = 3, dimnames = list("$\\alpha$", c("Income (US$)","Expenses (US$)", "Profit (US$)"))) print(xtable(money), sanitize.rownames.function = function(x) {x}) @ \section{Format examples} \subsection{Adding a centering environment} <>= print(xtable(anova(fm3), caption = "\\tt latex.environments = \"\""), floating = TRUE, latex.environments = "") print(xtable(anova(fm3), caption = "\\tt latex.environments = \"center\""), floating = TRUE, latex.environments = "center") @ \newpage \subsection{Column alignment} <>= tli.table <- xtable(tli[1:10, ]) align(tli.table) <- rep("r", 6) tli.table @ \subsubsection{Left aligned strings with column lines} <>= align(tli.table) <- "|rrl|l|lr|" tli.table @ \subsubsection{Fixed width columns} <>= align(tli.table) <- "|rr|lp{3cm}l|r|" tli.table @ \newpage \subsection{Number of digits} One number for all columns, <>= display(tli.table)[c(2,6)] <- "f" digits(tli.table) <- 3 tli.table @ \p or one for each column, including the row names, <>= digits(tli.table) <- 1:(ncol(tli)+1) tli.table @ \p or as a full matrix. <>= digits(tli.table) <- matrix(0:4, nrow = 10, ncol = ncol(tli)+1) tli.table @ \newpage \subsection{Suppress row/column names} \subsubsection{Suppress row names} <>= tli.table <- xtable(tli[1:10, ]) print(tli.table, include.rownames = FALSE) @ \p If you want a vertical line on the left, you need to change the \code{align} attribute. <>= align(tli.table) <- "|r|r|lp{3cm}l|r|" print(tli.table, include.rownames = FALSE) @ \p Revert the alignment to what is was before. <<>>= align(tli.table) <- "|rr|lp{3cm}l|r|" @ \newpage \subsubsection{Suppress column names} <>= print(tli.table, include.colnames = FALSE) @ \p Note the doubled header lines which can be suppressed. <>= print(tli.table, include.colnames = FALSE, hline.after = c(0,nrow(tli.table))) @ \subsubsection{Suppress row and column names} <>= print(tli.table, include.colnames = FALSE, include.rownames = FALSE) @ \newpage \subsection{Rotate row/column names} The \code{rotate.rownames} and \code{rotate.colnames} arguments can be used to rotate the row and/or column names. This requires \verb|\usepackage{rotating}| in the \LaTeX\ preamble. <>= print(tli.table, rotate.rownames = TRUE, rotate.colnames = TRUE) @ \newpage \subsection{Horizontal lines} \subsubsection{Line locations} Use the \code{hline.after} argument to specify the position of the horizontal lines. <>= print(xtable(anova(fm3)), hline.after = c(1)) @ \subsubsection{Line styles} Specifying \code{booktabs = TRUE} will generate three line types. By default, when no value is given for \code{hline.after}, a \verb|\toprule| will be drawn above the table, a \verb|\midrule| after the table headings and a \verb|\bottomrule| below the table. This requires \verb|\usepackage{booktabs}| in the \LaTeX\ preamble. \p The top and bottom rules are slightly thicker than the mid rule. The thickness of the lines can be set via the \LaTeX\ lengths \verb|\heavyrulewidth| and \verb|\lightrulewidth|. <>= tli.table <- xtable(tli[1:10, ]) print(tli.table, include.rownames = FALSE, booktabs = TRUE) @ \p If \code{hline.after} includes \code{-1}, a \verb|\toprule| will be drawn above the table. If \code{hline.after} includes the number of rows in the table, a \verb|\bottomrule| will be drawn below the table. For any other values specified in \code{hline.after}, a \verb|\midrule| will be drawn after that line of the table. \p The following table has more than one \verb|\midrule|. <>= bktbs <- xtable(matrix(1:10, ncol = 2)) hlines <- c(-1, 0, 1, nrow(bktbs)) print(bktbs, booktabs = TRUE, hline.after = hlines) @ \subsection{Table level commands} <>= print(xtable(anova(fm3)), size = "large") @ \p <>= print(xtable(anova(fm3)), size = "\\setlength{\\tabcolsep}{12pt}") @ \subsection{Long tables} Requires \verb|\usepackage{longtable}| in the \LaTeX\ preamble. <>= x <- matrix(rnorm(1000), ncol = 10) x.big <- xtable(x, caption = "A \\code{longtable} spanning several pages") print(x.big, hline.after=c(-1, 0), tabular.environment = "longtable") @ Extra features of the \pkg{longtable} \LaTeX{} package can typically be activated using \code{add.to.row}, as shown below. <>= add.to.row <- list(pos = list(0), command = NULL) command <- paste0("\\hline\n\\endhead\n", "\\hline\n", "\\multicolumn{", dim(x)[2] + 1, "}{l}", "{\\footnotesize Continued on next page}\n", "\\endfoot\n", "\\endlastfoot\n") add.to.row$command <- command print(x.big, hline.after=c(-1), add.to.row = add.to.row, tabular.environment = "longtable") @ \newpage \subsection{Use of \code{add.to.row} argument} The following frequency table has outer dimnames: \code{Grade3} and \code{Grade6}. <<>>= Grade3 <- c("A","B","B","A","B","C","C","D","A","B", "C","C","C","D","B","B","D","C","C","D") Grade6 <- c("A","A","A","B","B","B","B","B","C","C", "A","C","C","C","D","D","D","D","D","D") Cohort <- table(Grade3, Grade6) Cohort @ \p The default behavior of \code{print.xtable} is to strip outer dimnames. <>= xtable(Cohort) @ \p The desired column labels can be created using \code{add.to.row}, in this case applying two commands to ``row number zero'' while suppressing the basic column names. <>= addtorow <- list() addtorow$pos <- list(0, 0) addtorow$command <- c("& \\multicolumn{4}{c}{Grade 6} \\\\\n", "Grade 3 & A & B & C & D \\\\\n") print(xtable(Cohort), add.to.row = addtorow, include.colnames = FALSE) @ \subsection{Sideways tables} Requires \verb|\usepackage{rotating}| in the LaTeX preamble. Sideways tables can't be forced in place with the \code{[H]} specifier, but you can use the \verb|\clearpage| command to get them fairly nearby. <>= x <- x[1:30, ] x.side <- xtable(x, caption = "A sideways table") print(x.side, floating = TRUE, floating.environment = "sidewaystable") @ \clearpage \subsection{Rescaled tables} Specify a \code{scalebox} value to rescale the table. <>= x <- x[1:20, ] x.rescale <- xtable(x) print(x.rescale, scalebox = 0.7) @ \subsection{Aligning fixed width columns} Note that using specifications such as \verb|p{2cm}| always produces a \textbf{left aligned} column. What if some other alignment is desired? This is not really a problem with \pkg{xtable} but with the formatting of tables with fixed width columns and different alignments using standard \LaTeX. One solution is to use the \verb|array| package, defining new column formats. \begin{verbatim} \newcolumntype{L}[1]{>{\raggedright\let\newline\\ \arraybackslash\hspace{0pt}}m{#1}} \newcolumntype{C}[1]{>{\centering\let\newline\\ \arraybackslash\hspace{0pt}}m{#1}} \newcolumntype{R}[1]{>{\raggedleft\let\newline\\ \arraybackslash\hspace{0pt}}m{#1}} \newcolumntype{P}[1]{>{\raggedright\tabularxbackslash}p{#1}} \end{verbatim} These allow for very sophisticated cell formatting, namely left-aligned, centred, or right-aligned text, with recognition of line breaks for the first three new column types. If these lines are included along with \verb|\usepackage{array}|, then the following is possible. \newcolumntype{L}[1]{>{\raggedright\let\newline\\ \arraybackslash\hspace{0pt}}m{#1}} \newcolumntype{C}[1]{>{\centering\let\newline\\ \arraybackslash\hspace{0pt}}m{#1}} \newcolumntype{R}[1]{>{\raggedleft\let\newline\\ \arraybackslash\hspace{0pt}}m{#1}} \newcolumntype{P}[1]{>{\raggedright\tabularxbackslash}p{#1}} <>= df <- data.frame(name = c("A","B"), right = c(1.4, 34.6), left = c(1.4, 34.6), text = c("txt1","txt2")) print(xtable(df, align = c("l", "|c", "|R{3cm}", "|L{3cm}", "| p{3cm}|")), floating = FALSE, include.rownames = FALSE) @ \newpage \subsection{Table width} The \code{tabularx} environment is for typesetting tables whose overall width is fixed. The column alignment code \code{X} denotes columns that will be stretched to achieve the desired table width. Requires \verb|\usepackage{tabularx}| in the \LaTeX\ preamble. <>= df.width <- data.frame(One = c("item 1", "A"), Two = c("item 2", "B"), Three = c("item 3", "C"), Four = c("item 4", "D")) x.width <- xtable(df.width) align(x.width) <- "|l|X|l|l|l|" print(x.width, tabular.environment = "tabularx", width = "\\textwidth") @ \section{Suppressing printing} By default the \code{print} method will print the \LaTeX\ or HTML to standard output and also return the character strings invisibly. The printing to standard output can be suppressed by specifying \code{print.results = FALSE}. <<>>= x.out <- print(tli.table, print.results = FALSE) @ Formatted output can also be captured without printing with the \code{toLatex} method. This function returns an object of class \code{"Latex"}. <<>>= x.ltx <- toLatex(tli.table) class(x.ltx) x.ltx @ \newpage \section{Acknowledgements} Most of the examples in this gallery are taken from the \pkg{xtable} documentation. Two examples (\code{add.to.row} and `Aligning fixed width columns') are from Stack Exchange. \section{Session information} <>= toLatex(sessionInfo()) @ \end{document} xtable/inst/doc/OtherPackagesGallery.Rnw0000644000176200001440000002066112654015472020016 0ustar liggesusers%\VignetteIndexEntry{xtable List of Tables Gallery} %\VignetteDepends{xtable, spdep, splm, sphet} %\VignetteKeywords{LaTeX, HTML, table} %\VignettePackage{xtable} % !Rnw weave = knitr % \VignetteEngine{knitr::knitr} %************************************************************************** \documentclass{article} \usepackage[a4paper, height=24cm]{geometry} % geometry first \usepackage{array} \usepackage{booktabs} \usepackage{longtable} \usepackage{parskip} \usepackage{rotating} \usepackage{tabularx} \usepackage{titlesec} \usepackage{hyperref} % hyperref last \titleformat\subsubsection{\bfseries\itshape}{}{0pt}{} \newcommand\p{\vspace{2ex}} \newcommand\code[1]{\texttt{#1}} \newcommand\pkg[1]{\textbf{#1}} \setcounter{tocdepth}{2} \begin{document} \title{\bfseries\Large The Other Packages Gallery} \author{\bfseries David J. Scott} \maketitle \tableofcontents \newpage \section{Introduction} This document represents a test of the functions in \pkg{xtable} which deal with other packages. <>= library(knitr) opts_chunk$set(fig.path = 'Figures/other', debug = TRUE, echo = TRUE) opts_chunk$set(out.width = '0.9\\textwidth') @ The first step is to load the package and set some options for this document. <>= library(xtable) options(xtable.floating = FALSE) options(xtable.timestamp = "") options(width = 60) set.seed(1234) @ \section{The packages \pkg{spdep}, \pkg{splm}, and \pkg{sphet}} Code for supporting these packages and most of the examples used in this section was originally provided by Martin Gubri (\url{martin.gubri@framasoft.org}). \subsection{The package \pkg{spdep}} \label{sec:package-pkgspdep} First load the package and create some objects. <>= library(spdep) data("oldcol", package = "spdep") COL.lag.eig <- lagsarlm(CRIME ~ INC + HOVAL, data = COL.OLD[], nb2listw(COL.nb)) class(COL.lag.eig) COL.errW.GM <- GMerrorsar(CRIME ~ INC + HOVAL, data = COL.OLD, nb2listw(COL.nb, style = "W"), returnHcov = TRUE) class(COL.errW.GM) COL.lag.stsls <- stsls(CRIME ~ INC + HOVAL, data = COL.OLD, nb2listw(COL.nb)) class(COL.lag.stsls) p1 <- predict(COL.lag.eig, newdata = COL.OLD[45:49,], listw = nb2listw(COL.nb)) class(p1) p2 <- predict(COL.lag.eig, newdata = COL.OLD[45:49,], pred.type = "trend", type = "trend") #type option for retrocompatibility with spdep 0.5-92 class(p2) imp.exact <- impacts(COL.lag.eig, listw = nb2listw(COL.nb)) class(imp.exact) imp.sim <- impacts(COL.lag.eig, listw = nb2listw(COL.nb), R = 200) class(imp.sim) @ %def \subsubsection{\code{sarlm} objects} \label{sec:codesarlm-objects} There is an \code{xtable} method for objects of this type. <>= xtable(COL.lag.eig) @ %def The method for \code{xtable} actually uses the summary of the object, and an identical result is obtained when using the summary of the object, even if the summary contains more additional information. <>= xtable(summary(COL.lag.eig, correlation = TRUE)) @ %def This same pattern applies to the other objects from this group of packages. Note that additional prettying of the resulting table is possible, as for any table produced using \code{xtable}. For example using the \pkg{booktabs} package we get: <>= print(xtable(COL.lag.eig), booktabs = TRUE) @ %def \subsubsection{\code{gmsar} objects} \label{sec:codegmsar-objects} <>= xtable(COL.errW.GM) @ %def \subsubsection{\code{stsls} objects} \label{sec:codestsls-objects} <>= xtable(COL.lag.stsls) @ %def \subsubsection{\code{sarlm.pred} objects} \label{sec:codesarlmpred-objects} \code{xtable} has a method for predictions of \code{sarlm} models. <>= xtable(p1) @ %def This method transforms the \code{sarlm.pred} objects into data frames, allowing any number of attributes vectors which may vary according to predictor types. <>= xtable(p2) @ %def \subsubsection{\code{lagImpact} objects} \label{sec:codelagimpact-objects} The \code{xtable} method returns the values of direct, indirect and total impacts for all the variables in the model. The class \code{lagImpact} has two different sets of attributes according to if simulations are used. But the \code{xtable} method always returns the three components of the non-simulation case. <>= xtable(imp.exact) @ %def \p <>= xtable(imp.sim) @ %def \subsubsection{\code{spautolm} objects} \label{sec:codespautolm-objects} The need for an \code{xtable} method for \code{spautolm} was expressed by Guido Schulz (\url{schulzgu@student.hu-berlin.de}), who also provided an example of an object of this type. The required code was implemented by David Scott (\url{d.scott@auckland.ac.nz}). First create an object of the required type. <>= library(spdep) example(NY_data) spautolmOBJECT <- spautolm(Z ~ PEXPOSURE + PCTAGE65P,data = nydata, listw = listw_NY, family = "SAR", method = "eigen", verbose = TRUE) summary(spautolmOBJECT, Nagelkerke = TRUE) @ %def \p <>= class(spautolmOBJECT) @ %def <>= xtable(spautolmOBJECT, display = c("s",rep("f", 3), "e"), digits = 4) @ %def \subsection{The package \pkg{splm}} \label{sec:package-pkgsplm} First load the package and create some objects. <>= library(splm) data("Produc", package = "plm") data("usaww", package = "splm") fm <- log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp respatlag <- spml(fm, data = Produc, listw = mat2listw(usaww), model="random", spatial.error="none", lag=TRUE) class(respatlag) GM <- spgm(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp, data = Produc, listw = usaww, moments = "fullweights", spatial.error = TRUE) class(GM) imp.spml <- impacts(respatlag, listw = mat2listw(usaww, style = "W"), time = 17) class(imp.spml) @ %def \subsubsection{\code{splm} objects} \label{sec:codesplm-objects} <>= xtable(respatlag) @ %def \p <>= xtable(GM) @ %def The \code{xtable} method works the same on impacts of \code{splm} models. <>= xtable(imp.spml) @ %def \subsection{The package \pkg{sphet}} \label{sec:package-pkgsphet} First load the package and create some objects. <>= library(sphet) data("columbus", package = "spdep") listw <- nb2listw(col.gal.nb) data("coldis", package = "sphet") res.stsls <- stslshac(CRIME ~ HOVAL + INC, data = columbus, listw = listw, distance = coldis, type = 'Triangular') class(res.stsls) res.gstsls <- gstslshet(CRIME ~ HOVAL + INC, data = columbus, listw = listw) class(res.gstsls) imp.gstsls <- impacts(res.gstsls, listw = listw) class(imp.gstsls) @ %def \subsubsection{\code{sphet} objects} \label{sec:codesphet-objects} <>= xtable(res.stsls) @ %def \p <>= xtable(res.gstsls) @ %def \code{sphet} also provides a method for computing impacts. <>= xtable(imp.gstsls) @ %def \section{The \pkg{zoo} package} \label{sec:pkgzoo-package} <>= library(zoo) xDate <- as.Date("2003-02-01") + c(1, 3, 7, 9, 14) - 1 as.ts(xDate) x <- zoo(rnorm(5), xDate) xtable(x) @ %def \p <>= tempTs <- ts(cumsum(1 + round(rnorm(100), 0)), start = c(1954, 7), frequency = 12) tempTable <- xtable(tempTs, digits = 0) tempTable tempZoo <- as.zoo(tempTs) xtable(tempZoo, digits = 0) @ %def \section{The \pkg{survival} package} \label{sec:pkgsurvival-package} <>= library(survival) test1 <- list(time=c(4,3,1,1,2,2,3), status=c(1,1,1,0,1,1,0), x=c(0,2,1,1,1,0,0), sex=c(0,0,0,0,1,1,1)) coxFit <- coxph(Surv(time, status) ~ x + strata(sex), test1) xtable(coxFit) @ %def \end{document} xtable/inst/doc/xtableGallery.R0000644000176200001440000003340112654015472016204 0ustar liggesusers## ----include=FALSE------------------------------------------------------- library(knitr) opts_chunk$set(fig.path='figdir/fig', debug=TRUE, echo=TRUE) set.seed(1234) ## ----results='asis'------------------------------------------------------ library(xtable) options(xtable.floating = FALSE) options(xtable.timestamp = "") ## ----results='asis'------------------------------------------------------ data(tli) xtable(tli[1:10, ]) ## ----results='asis'------------------------------------------------------ design.matrix <- model.matrix(~ sex*grade, data = tli[1:10, ]) xtable(design.matrix, digits = 0) ## ----results='asis'------------------------------------------------------ fm1 <- aov(tlimth ~ sex + ethnicty + grade + disadvg, data = tli) xtable(fm1) ## ----results='asis'------------------------------------------------------ fm2 <- lm(tlimth ~ sex*ethnicty, data = tli) xtable(fm2) ## ----results='asis'------------------------------------------------------ xtable(anova(fm2)) ## ----results='asis'------------------------------------------------------ fm2b <- lm(tlimth ~ ethnicty, data = tli) xtable(anova(fm2b, fm2)) ## ----aovlist------------------------------------------------------------- Block <- gl(8, 4) A <- factor(c(0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1, 0,1,0,1,0,1,0,1,0,1,0,1)) B <- factor(c(0,0,1,1,0,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1, 0,0,1,1,0,0,1,1,0,0,1,1)) C <- factor(c(0,1,1,0,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,1, 1,0,1,0,0,0,1,1,1,1,0,0)) Yield <- c(101, 373, 398, 291, 312, 106, 265, 450, 106, 306, 324, 449, 272, 89, 407, 338, 87, 324, 279, 471, 323, 128, 423, 334, 131, 103, 445, 437, 324, 361, 302, 272) aovdat <- data.frame(Block, A, B, C, Yield) old <- getOption("contrasts") options(contrasts = c("contr.helmert", "contr.poly")) (fit <- aov(Yield ~ A*B*C + Error(Block), data = aovdat)) class(fit) summary(fit) options(contrasts = old) ## ----xtableaovlist, results='asis'--------------------------------------- xtable(fit) ## ----results='asis'------------------------------------------------------ fm3 <- glm(disadvg ~ ethnicty*grade, data = tli, family = binomial) xtable(fm3) ## ----results='asis'------------------------------------------------------ xtable(anova(fm3)) ## ----results='asis'------------------------------------------------------ pr1 <- prcomp(USArrests) xtable(pr1) ## ----results='asis'------------------------------------------------------ xtable(summary(pr1)) ## ----include=FALSE------------------------------------------------------- # pr2 <- princomp(USArrests) # xtable(pr2) ## ----results='asis'------------------------------------------------------ temp.ts <- ts(cumsum(1 + round(rnorm(100), 0)), start = c(1954, 7), frequency = 12) temp.table <- xtable(temp.ts, digits = 0) temp.table ## ----ftable-------------------------------------------------------------- data(mtcars) mtcars$cyl <- factor(mtcars$cyl, levels = c("4","6","8"), labels = c("four","six","eight")) tbl <- ftable(mtcars$cyl, mtcars$vs, mtcars$am, mtcars$gear, row.vars = c(2, 4), dnn = c("Cylinders", "V/S", "Transmission", "Gears")) tbl ## ----ftablecheck--------------------------------------------------------- xftbl <- xtableFtable(tbl, method = "compact") print.xtableFtable(xftbl, booktabs = TRUE) ## ----ftable1, results = 'asis'------------------------------------------- xftbl <- xtableFtable(tbl) print.xtableFtable(xftbl) ## ----ftable2, results = 'asis'------------------------------------------- xftbl <- xtableFtable(tbl, method = "col.compact") print.xtableFtable(xftbl, rotate.rownames = TRUE) ## ----ftable3, results = 'asis'------------------------------------------- xftbl <- xtableFtable(tbl, method = "compact") print.xtableFtable(xftbl, booktabs = TRUE) ## ----ftable4, results = 'asis'------------------------------------------- italic <- function(x){ paste0('{\\emph{', x, '}}') } mtcars$cyl <- factor(mtcars$cyl, levels = c("four","six","eight"), labels = c("four",italic("six"),"eight")) large <- function(x){ paste0('{\\Large ', x, '}') } bold <- function(x){ paste0('{\\bfseries ', x, '}') } tbl <- ftable(mtcars$cyl, mtcars$vs, mtcars$am, mtcars$gear, row.vars = c(2, 4), dnn = c("Cylinders", "V/S", "Transmission", "Gears")) xftbl <- xtableFtable(tbl, method = "row.compact") print.xtableFtable(xftbl, sanitize.rownames.function = large, sanitize.colnames.function = bold, rotate.colnames = TRUE, rotate.rownames = TRUE) ## ----include=FALSE------------------------------------------------------- # ## Demonstrate saving to file # for(i in c("latex", "html")) { # outFileName <- paste("xtable.", ifelse(i=="latex", "tex", i), sep = "") # print(xtable(lm.D9), type = i, file = outFileName, append = TRUE, # latex.environments = NULL) # print(xtable(lm.D9), type = i, file = outFileName, append = TRUE, # latex.environments = "") # print(xtable(lm.D9), type = i, file = outFileName, append = TRUE, # latex.environments = "center") # print(xtable(anova(glm.D93, test = "Chisq")), # type = i, file = outFileName, # append = TRUE) # print(xtable(anova(glm.D93)), hline.after = c(1), # size = "small", type = i, # file = outFileName, append = TRUE) # # print(xtable(pr2), type = i, file = outFileName, append = TRUE) # } ## ----results='asis'------------------------------------------------------ data(mtcars) dat <- mtcars[1:3, 1:6] x <- xtable(dat) x ## ----results='asis'------------------------------------------------------ align(x) <- xalign(x) digits(x) <- xdigits(x) display(x) <- xdisplay(x) x ## ----results='asis'------------------------------------------------------ xtable(dat, auto = TRUE) ## ----results='asis'------------------------------------------------------ x <- xtable(dat) autoformat(x) ## ----results='asis'------------------------------------------------------ print(xtable(data.frame(text = c("foo","bar"), googols = c(10e10,50e10), small = c(8e-24,7e-5), row.names = c("A","B")), display = c("s","s","g","g")), math.style.exponents = TRUE) ## ----results='asis'------------------------------------------------------ insane <- data.frame(Name = c("Ampersand","Greater than","Less than", "Underscore","Per cent","Dollar", "Backslash","Hash","Caret","Tilde", "Left brace","Right brace"), Character = I(c("&",">","<","_","%","$", "\\","#","^","~","{","}"))) colnames(insane)[2] <- paste(insane[, 2], collapse = "") xtable(insane) ## ----results='asis'------------------------------------------------------ wanttex <- xtable(data.frame(Column = paste("Value_is $10^{-",1:3,"}$", sep = ""))) print(wanttex, sanitize.text.function = function(str) gsub("_", "\\_", str, fixed = TRUE)) ## ----sanitize3----------------------------------------------------------- dat <- mtcars[1:3, 1:6] large <- function(x){ paste0('{\\Large{\\bfseries ', x, '}}') } italic <- function(x){ paste0('{\\emph{ ', x, '}}') } ## ----sanitize4, results = 'asis'----------------------------------------- print(xtable(dat), sanitize.rownames.function = italic, sanitize.colnames.function = large, booktabs = TRUE) ## ----results='asis'------------------------------------------------------ mat <- round(matrix(c(0.9, 0.89, 200, 0.045, 2.0), c(1, 5)), 4) rownames(mat) <- "$y_{t-1}$" colnames(mat) <- c("$R^2$", "$\\bar{x}$", "F-stat", "S.E.E", "DW") mat <- xtable(mat) print(mat, sanitize.text.function = function(x) {x}) ## ----results='asis'------------------------------------------------------ money <- matrix(c("$1,000","$900","$100"), ncol = 3, dimnames = list("$\\alpha$", c("Income (US$)","Expenses (US$)", "Profit (US$)"))) print(xtable(money), sanitize.rownames.function = function(x) {x}) ## ----results='asis'------------------------------------------------------ print(xtable(anova(fm3), caption = "\\tt latex.environments = \"\""), floating = TRUE, latex.environments = "") print(xtable(anova(fm3), caption = "\\tt latex.environments = \"center\""), floating = TRUE, latex.environments = "center") ## ----results='asis'------------------------------------------------------ tli.table <- xtable(tli[1:10, ]) align(tli.table) <- rep("r", 6) tli.table ## ----results='asis'------------------------------------------------------ align(tli.table) <- "|rrl|l|lr|" tli.table ## ----results='asis'------------------------------------------------------ align(tli.table) <- "|rr|lp{3cm}l|r|" tli.table ## ----results='asis'------------------------------------------------------ display(tli.table)[c(2,6)] <- "f" digits(tli.table) <- 3 tli.table ## ----results='asis'------------------------------------------------------ digits(tli.table) <- 1:(ncol(tli)+1) tli.table ## ----results='asis'------------------------------------------------------ digits(tli.table) <- matrix(0:4, nrow = 10, ncol = ncol(tli)+1) tli.table ## ----results='asis'------------------------------------------------------ tli.table <- xtable(tli[1:10, ]) print(tli.table, include.rownames = FALSE) ## ----results='asis'------------------------------------------------------ align(tli.table) <- "|r|r|lp{3cm}l|r|" print(tli.table, include.rownames = FALSE) ## ------------------------------------------------------------------------ align(tli.table) <- "|rr|lp{3cm}l|r|" ## ----results='asis'------------------------------------------------------ print(tli.table, include.colnames = FALSE) ## ----results='asis'------------------------------------------------------ print(tli.table, include.colnames = FALSE, hline.after = c(0,nrow(tli.table))) ## ----results='asis'------------------------------------------------------ print(tli.table, include.colnames = FALSE, include.rownames = FALSE) ## ----results='asis'------------------------------------------------------ print(tli.table, rotate.rownames = TRUE, rotate.colnames = TRUE) ## ----results='asis'------------------------------------------------------ print(xtable(anova(fm3)), hline.after = c(1)) ## ----results='asis'------------------------------------------------------ tli.table <- xtable(tli[1:10, ]) print(tli.table, include.rownames = FALSE, booktabs = TRUE) ## ----results='asis'------------------------------------------------------ bktbs <- xtable(matrix(1:10, ncol = 2)) hlines <- c(-1, 0, 1, nrow(bktbs)) print(bktbs, booktabs = TRUE, hline.after = hlines) ## ----results='asis'------------------------------------------------------ print(xtable(anova(fm3)), size = "large") ## ----results='asis'------------------------------------------------------ print(xtable(anova(fm3)), size = "\\setlength{\\tabcolsep}{12pt}") ## ----results='asis'------------------------------------------------------ x <- matrix(rnorm(1000), ncol = 10) x.big <- xtable(x, caption = "A \\code{longtable} spanning several pages") print(x.big, hline.after=c(-1, 0), tabular.environment = "longtable") ## ----results='asis'------------------------------------------------------ add.to.row <- list(pos = list(0), command = NULL) command <- paste0("\\hline\n\\endhead\n", "\\hline\n", "\\multicolumn{", dim(x)[2] + 1, "}{l}", "{\\footnotesize Continued on next page}\n", "\\endfoot\n", "\\endlastfoot\n") add.to.row$command <- command print(x.big, hline.after=c(-1), add.to.row = add.to.row, tabular.environment = "longtable") ## ------------------------------------------------------------------------ Grade3 <- c("A","B","B","A","B","C","C","D","A","B", "C","C","C","D","B","B","D","C","C","D") Grade6 <- c("A","A","A","B","B","B","B","B","C","C", "A","C","C","C","D","D","D","D","D","D") Cohort <- table(Grade3, Grade6) Cohort ## ----results='asis'------------------------------------------------------ xtable(Cohort) ## ----results='asis'------------------------------------------------------ addtorow <- list() addtorow$pos <- list(0, 0) addtorow$command <- c("& \\multicolumn{4}{c}{Grade 6} \\\\\n", "Grade 3 & A & B & C & D \\\\\n") print(xtable(Cohort), add.to.row = addtorow, include.colnames = FALSE) ## ----results='asis'------------------------------------------------------ x <- x[1:30, ] x.side <- xtable(x, caption = "A sideways table") print(x.side, floating = TRUE, floating.environment = "sidewaystable") ## ----results='asis'------------------------------------------------------ x <- x[1:20, ] x.rescale <- xtable(x) print(x.rescale, scalebox = 0.7) ## ----results='asis'------------------------------------------------------ df <- data.frame(name = c("A","B"), right = c(1.4, 34.6), left = c(1.4, 34.6), text = c("txt1","txt2")) print(xtable(df, align = c("l", "|c", "|R{3cm}", "|L{3cm}", "| p{3cm}|")), floating = FALSE, include.rownames = FALSE) ## ----results='asis'------------------------------------------------------ df.width <- data.frame(One = c("item 1", "A"), Two = c("item 2", "B"), Three = c("item 3", "C"), Four = c("item 4", "D")) x.width <- xtable(df.width) align(x.width) <- "|l|X|l|l|l|" print(x.width, tabular.environment = "tabularx", width = "\\textwidth") ## ------------------------------------------------------------------------ x.out <- print(tli.table, print.results = FALSE) ## ------------------------------------------------------------------------ x.ltx <- toLatex(tli.table) class(x.ltx) x.ltx ## ----results='asis'------------------------------------------------------ toLatex(sessionInfo()) xtable/inst/doc/listOfTablesGallery.pdf0000644000176200001440000043550512654015472017703 0ustar liggesusers%PDF-1.4 % 1 0 obj << /S /GoTo /D (section.1) >> endobj 4 0 obj (Introduction) endobj 5 0 obj << /S /GoTo /D (section.2) >> endobj 8 0 obj (Single Column Names) endobj 9 0 obj << /S /GoTo /D (section.3) >> endobj 12 0 obj (Multiple Column Names) endobj 13 0 obj << /S /GoTo /D (section.4) >> endobj 16 0 obj (lsmeans) endobj 17 0 obj << /S /GoTo /D [18 0 R /Fit] >> endobj 24 0 obj << /Length 358 /Filter /FlateDecode >> stream x}KO0>:ڻ~^y. qHP"-jR'n ogHfMGy@"_*s@S`=^YS-!2ԋ>bQUg\% iQW  C0A=-2RZe3Hsܵöp`J %$Płq(Y(k@yxf´eMrdEetaD@yu[lnޟP cx׳v])mS)LrsPG<\B脨MYl@@CW:BBlh%`q endstream endobj 18 0 obj << /Type /Page /Contents 24 0 R /Resources 23 0 R /MediaBox [0 0 595.276 841.89] /Parent 32 0 R /Annots [ 19 0 R 20 0 R 21 0 R 22 0 R ] >> endobj 19 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [88.296 592.104 168.398 601.015] /A << /S /GoTo /D (section.1) >> >> endobj 20 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [88.296 568.249 216.261 579.097] /A << /S /GoTo /D (section.2) >> >> endobj 21 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [88.296 546.331 229.047 557.179] /A << /S /GoTo /D (section.3) >> >> endobj 22 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [88.296 526.351 144.186 535.262] /A << /S /GoTo /D (section.4) >> >> endobj 25 0 obj << /D [18 0 R /XYZ 88.292 815.122 null] >> endobj 26 0 obj << /D [18 0 R /XYZ 89.292 777.26 null] >> endobj 23 0 obj << /Font << /F17 27 0 R /F18 28 0 R /F19 29 0 R /F30 30 0 R /F8 31 0 R >> /ProcSet [ /PDF /Text ] >> endobj 35 0 obj << /Length 1502 /Filter /FlateDecode >> stream x[[s6~8yX >3ٝvҝilm-f__ 8`HdȲ;A>Pv!9 p=H<nC9`[ FDv1aoVCy 6$\-\A"0$ռF0Z$$5,r H#)?%"NjL&e*F ¡M5s$nYBp{v ŭлj'߆3>-{ZŴ$״|=9 }X@{鰀7Z@>ZPNhvK}Cxs?~.q𩜭8 4eQ|8A0ut\6=Ve\ӔVIӆbx/^_å9:GGph!#\N݂u,h-7>q5먇NwB_=`ֹ^d_~EG0}B},} SZGzb_$$0 B#k, t*[b!7$OabTSlmrhM鑟Ti)tY==${HIX& c-$wF(ίgp(0mAVM!vPKͽP*Fr\]fvcF6Y$}<2 nr 24]> З;a27嫨8,eM!rVmg#fBk?'AuG5.ϛ,ڑ{?N 17[꺗ވtW_+[ʊk-y~&4h2Ѽ;/$徒WvfH*L䶐!?R5yw5bn endstream endobj 34 0 obj << /Type /Page /Contents 35 0 R /Resources 33 0 R /MediaBox [0 0 595.276 841.89] /Parent 32 0 R >> endobj 36 0 obj << /D [34 0 R /XYZ 88.292 815.122 null] >> endobj 2 0 obj << /D [34 0 R /XYZ 89.292 777.26 null] >> endobj 33 0 obj << /Font << /F17 27 0 R /F8 31 0 R /F30 30 0 R /F31 37 0 R /F32 38 0 R >> /ProcSet [ /PDF /Text ] >> endobj 41 0 obj << /Length 1104 /Filter /FlateDecode >> stream xZ[8~ϯ>l]iխUަ} IX%dNm  ӪB0Bݾn>9 !h=eJs_߀EQJ Gcymٸ ] f8Z ڢk}2xSt&d\,bȑs=X^Ƃ VfĪ]vmF NT7ո_ܘR QH<Pwh[888\*?lG̵Gcmk~d4|լ$U~x(wAh.kOׁb6v`i!G]Ԛ ^R~0.W:XYKlcDd{Y\*N{@zzZ{@LPiw_D_~Ot/Zˈ#1?)g< endstream endobj 40 0 obj << /Type /Page /Contents 41 0 R /Resources 39 0 R /MediaBox [0 0 595.276 841.89] /Parent 32 0 R >> endobj 42 0 obj << /D [40 0 R /XYZ 88.292 815.122 null] >> endobj 39 0 obj << /Font << /F31 37 0 R /F8 31 0 R >> /ProcSet [ /PDF /Text ] >> endobj 45 0 obj << /Length 966 /Filter /FlateDecode >> stream xY[o0~ϯ>SD˪vMڔ$!)Rnu~r% ùA26$/-+ 㾂p~I7"0F$ gx́0x`qExߺ8s"@ lKPH#p9;bn]NxO$GGϟg WNcp!8( vdޖC>=Qs #Gaֆcv57ذ#\Nݿ;O;瓭v?,ߩ?yAiBC:zS7 =%rS/QrF.,ad1ajXDo7ca/gؕD[DOvWA:(S8_D!O;+(ffF{RD!;a(;;PCYo&q2l%&j -M1H @V !`5UȤVDuZғF7aa+á Ͷ@!Y1Cq=l]Cl m3/ ݉+ fWms/vc7-`+c0R|Q"7*ӱe#6L})oeHH{394~:BI>pn)6ZPJ[ʸs ]SGcH]LSG͎iH=\ O1Exҁvnț54T7+w:d㡻n|XdO[qRkLҋ͞_Yfh0mVYz_m,STQ#yUnPnPelWSuM(FvNΤ++֛E m *o׵~ 5OwSԞV\$i4>a%+qh%=U endstream endobj 44 0 obj << /Type /Page /Contents 45 0 R /Resources 43 0 R /MediaBox [0 0 595.276 841.89] /Parent 32 0 R >> endobj 46 0 obj << /D [44 0 R /XYZ 88.292 815.122 null] >> endobj 43 0 obj << /Font << /F31 37 0 R /F8 31 0 R >> /ProcSet [ /PDF /Text ] >> endobj 49 0 obj << /Length 961 /Filter /FlateDecode >> stream x]o0_a>m/I=} .NllH 0&}ι;@C2\^׷r }`^fE԰ |)!ޤ.!KTI=~ί(̅F̡smRI9MQ=3g.̚ < uClg+G9,;kg\KR/|Hԫ^GzͿϯR*#\2W :I:R.H)uwIs y:q;H\gz72g2Q]Ky2|HYR`ԒQ $B6+],~縋_)y0*^*Rp__c.fA7\t-`JՌƱZz V[e<ۻV}Q@xep~ XZܵ<;*k;=TfYb(j?Srۭ^UcoY8ziL϶}eF*i5~8jT RVefkA۷!x&P)YİmM9U602Tdv }D0t/{^:?ҋН"tKKLUH/; 0% endstream endobj 48 0 obj << /Type /Page /Contents 49 0 R /Resources 47 0 R /MediaBox [0 0 595.276 841.89] /Parent 32 0 R >> endobj 50 0 obj << /D [48 0 R /XYZ 88.292 815.122 null] >> endobj 47 0 obj << /Font << /F31 37 0 R /F8 31 0 R >> /ProcSet [ /PDF /Text ] >> endobj 53 0 obj << /Length 797 /Filter /FlateDecode >> stream xXKo0 Wаzˆv ܼؐ :?ɒGqz)")$ !'wFtYKs$^YWh0"ȓ0C e9 @P8FַeKFS@}dBꜜvP= *:AXg鲭{;2 -sEzI >Xtuh|!j0Mgqa{!M`D'̦`h*( *hB[Xsb`MV5r8Iqp;gQ>h 1 2-W`xA 1r zɽ &R ^NŊJ(i4LqHA >Qy lAʋ||n_z%! ԥDRqIZ܌A[MM endstream endobj 52 0 obj << /Type /Page /Contents 53 0 R /Resources 51 0 R /MediaBox [0 0 595.276 841.89] /Parent 32 0 R >> endobj 54 0 obj << /D [52 0 R /XYZ 88.292 815.122 null] >> endobj 51 0 obj << /Font << /F31 37 0 R /F8 31 0 R >> /ProcSet [ /PDF /Text ] >> endobj 57 0 obj << /Length 1334 /Filter /FlateDecode >> stream xYIoFW̑!v ZYE 89-(W$oR$rm9 9yHv@:7# eH+5h2C' ~L&y1_d2i.0.ҭxudV14bSny1d&"Γ͹E8: B8mH@u WtqgKK?E9C5pQ&0+ +߮YqhDۘBBu Ѡu7յ&@E+Od:FMf oeh`Dٖj }.uLȦSIB` 0![OcJr|X;k1PԴb]c@BaK)-76>/b/vW<ϻ55# / ߬B(|TYC!bt<\ ""=- Z/q"Ph̃oXx3nzyP<QiCy+Lڨ[[]FTI?Jp^HP̀{ÄF}P q <x a'Xq11ѲƆ7;%Mg5M%L[ \lqv3^ "\s9} y ~DVO<> endobj 58 0 obj << /D [56 0 R /XYZ 88.292 815.122 null] >> endobj 6 0 obj << /D [56 0 R /XYZ 89.292 777.26 null] >> endobj 55 0 obj << /Font << /F17 27 0 R /F8 31 0 R /F31 37 0 R >> /ProcSet [ /PDF /Text ] >> endobj 62 0 obj << /Length 1851 /Filter /FlateDecode >> stream xZ[o6~ϯ T,V nK3t@V\c2d$v&h"Q4/y4B*B+7/'OբN˗fo]@b5Lܒ˗SEA*!yF.Nڤ{ϺKtv &g&'ͩIFC4Mq6xv 2{&:ma9!V\E;ܧq *V}\,gb2]QEfևp6kmHHW>ƕZ"$ m b'30ݥĒ'$RtQdN)?1*j}6A-Z)jgP HHYySk%)(ئEONe!A~~v@iadVW{ rà +lBcVCߓ"NG:2P@ (i=2M]^}# nQ_5>4Mj G|ӄR`S}>ts] &pd.KQ5i Y9C) x6)yv#eT2Bt8RfΧ# ˷w n~On#8ciE-=0;Bofޥī͛7#bxsxfa8 q3 z]dQj\pn]mܕt6)&_2?lA콃ލ_x^wjc1XMyo[.矲t4l;cػ"gin_3-kWL9լ`\U?;ս1%ЭvGFFo.baϾ%$WSã]`Rs(@JJP h%d4,u} ?~ѭHŨ27)غ&VQR-}y9<:r|Y/[:'Q/BvS+ZU/bae#,Բk [K޲;4%@h0Ei. 9oDN-4>DM_8NM8|nz 7G:p ӼǦ+2'ާue彘gyUnR$=+ִ:gY{w5Ps >,@C_2Ү Z*Tym]kYrm}5 8a`%l \/$S endstream endobj 61 0 obj << /Type /Page /Contents 62 0 R /Resources 60 0 R /MediaBox [0 0 595.276 841.89] /Parent 59 0 R >> endobj 63 0 obj << /D [61 0 R /XYZ 88.292 815.122 null] >> endobj 66 0 obj << /D [61 0 R /XYZ 283.842 172.547 null] >> endobj 60 0 obj << /Font << /F31 37 0 R /F14 64 0 R /F17 27 0 R /F30 30 0 R /F33 65 0 R /F8 31 0 R >> /ProcSet [ /PDF /Text ] >> endobj 69 0 obj << /Length 1313 /Filter /FlateDecode >> stream xYIoFW rj:r MRIŹhY[ RITlЋfDy{㈑1aMuceXk)3zg᷷Q3"ǖZljՎ2%^a(XxRKϧ_;7Ӌ9ϮƃOo{NMUʵ**οNjt@oeֶ**FUQHSZD@ 8u*N ;TDPAS52[7T@m**npjd^lxiEܛdap(4~?|9J) h`UeZTВHIC qN։z'" BPWe3X|rNGI%o0]vXdUe_ԍT6{f1l gv[DiCxyρSl܉l T>AVPcBV@-|N"r%ͺCi+n+Yo%[U <٬֥VRT"NVz\N^mM-ڦ+w`vFet1 u&-My҂''KZe6GΈ 5'neq\$e&ꧨ0H ~,Ǥ(F3$:6v\6d X3ەZi0t!8DO\QxUSi[ɫd_2dNTFaN3;;^sEX? J̃S*ۡ:EL^1 0 ɐ;c&HWq =Fj܈VTyH-LoF5oe7560L #6:ힴE+>]kt*!:p°#zF7]@{FN)3iTǍN0Ku^)W2ES9b':sң:}<{QT%Spf_}8n X_)ԧ7I X{§KvG_̊z(> endobj 70 0 obj << /D [68 0 R /XYZ 88.292 815.122 null] >> endobj 10 0 obj << /D [68 0 R /XYZ 89.292 315.212 null] >> endobj 67 0 obj << /Font << /F8 31 0 R /F31 37 0 R /F17 27 0 R >> /ProcSet [ /PDF /Text ] >> endobj 73 0 obj << /Length 1135 /Filter /FlateDecode >> stream xXKoFW,rjW\)@m)@KLT\$V 9x\qvvfǜ-g/Fy4cMo -ƁMmf5.OhLD)o'Fi6(ODgӗ译 u |}ы##`&NRjN[MiEmKc՜3TY͉[<y:ru(> endobj 74 0 obj << /D [72 0 R /XYZ 88.292 815.122 null] >> endobj 71 0 obj << /Font << /F8 31 0 R /F31 37 0 R >> /ProcSet [ /PDF /Text ] >> endobj 77 0 obj << /Length 1458 /Filter /FlateDecode >> stream xXˎ6+df~IZIN\@bk\~Ֆ_CR%[3=@YX({Ȍ0ӀUגOoTXbs2ٯPpkEd &,iݥQÏ_ƃ 1‰Txˊzfd9)Bޒ%BP n[-JeD@=9&l8rRL|"kMy~. LTRʖ'p3`e^+HrڵXF0_R6S<̥Xe D&Bd'<)1# Hk&$C^(PD1NS(`UXE ira7D(EҍQ8gmx0ňdj*Ɉsu?yNUϹݯ _Fj,z>)Aq5"sG>B\HdCCnjS+ޮ2QfyޖٗQ̭>f;0Gvcu9N*GlmC] 0~ TB\%T ,m`Y^Lp$S{Փ \1kVT#z 팤MUoͧ 2Hf*`.Jo.a].kLJsasd,`,XOO/ڑpYHj NM9_$:ջi1q)'yw_QlUjRba'Rf4y4;Zioezf1F?fW%T(we' 4i_bǃ!?f_ ͱ`! F##-t6Y/Vv({q4!"CϖE9,g;lW8$:~n뼜fqHZiS." ~N&- Mh ߦMllBAQDTD֑,lF=(G p!lnp> i,[948r%.É5 Q:H-OA-Uj%f:dPD pS_OB z@:wz@)Dgd0t2F? PGB\Ny Mv]7EB[ Ss$EE~}S/B~L/|P_~l ]~R#'aHEZ]Ǜ QWMP1I޾l $W;\dr* ;x5V@B;T옩az ,"E #STcL(jJFɗ&2N`EFXL$AD !*̷ÑR*͐gPYNָcQrXK8U72/i%*֋2KTJD_z{"%43Bb[dR⫒x% VzC^W*ßXv=U endstream endobj 76 0 obj << /Type /Page /Contents 77 0 R /Resources 75 0 R /MediaBox [0 0 595.276 841.89] /Parent 59 0 R >> endobj 78 0 obj << /D [76 0 R /XYZ 88.292 815.122 null] >> endobj 79 0 obj << /D [76 0 R /XYZ 283.842 285.858 null] >> endobj 75 0 obj << /Font << /F30 30 0 R /F17 27 0 R /F33 65 0 R /F8 31 0 R /F31 37 0 R >> /ProcSet [ /PDF /Text ] >> endobj 82 0 obj << /Length 1786 /Filter /FlateDecode >> stream xZ[o6~ 9/CE;`M J՗DѦ~"e%ٱ Cw>J!GޏdULkd%fie]ч這`i>rkw$ oz.{= X,S"h1<{֠ϥ1R tckC c\=`-f5.aOn*-k,} AP0AmE8b!h(EYqhp ĩŚt"@[p6b8+I1XA&O,vY@"l2}ކaV⹯ !2ºW٭`.%ڗɢXolaqHQxS ūUNb;ZIjTAHWBT Qf +&-O⑯۰6CHHj, yimMs9`0Ehߠ=,)u$LQe\p_YR3xﴺyO9 ZoWoESQ*H Bھ˳-3Ifkg\HT-mV3o"a`U}'e'Cd4̒iZy>MFs lh8Z7}6]N$}vTPhz߹!nL 2 ޼!)-jO3N<gm Q]\Q!5JՒFaasyFzC Ud70SCOi$(?K5ŦKwڟ$$NCe44$ƒbG 8 YI2 =:nK<,lN{N$7OT;TO<'4n}|:ٸp'w=xp3?,[y|I/%8OA`f)I')suĀ\>xb T Ӵ|~yV eCB:1;NIs\PjjT"9ɬp@KNLyXtN t?JJIl×our}ղf7$i/!\AmJ*L ^UvEAqPѿ Oo8st[%K|hד1;JVVsT^E+ .+_]JꃭworS{;9O/'Ua7aE(B-Fd o s,ww| 7@"&W$[<|~X> endobj 83 0 obj << /D [81 0 R /XYZ 88.292 815.122 null] >> endobj 14 0 obj << /D [81 0 R /XYZ 89.292 196.169 null] >> endobj 80 0 obj << /Font << /F8 31 0 R /F31 37 0 R /F17 27 0 R /F30 30 0 R /F32 38 0 R >> /ProcSet [ /PDF /Text ] >> endobj 86 0 obj << /Length 1389 /Filter /FlateDecode >> stream xkS8;1!B?)׹mFI,pod#$]L`4XqZ ڃS\q]R!ԐX@ម70G%\b>6f.~qj B`Ki 5"Xv5Ԯx ߍ9W&߮%Q+sO<׊ME"ɜJKI+ 4a?7ֆRj~NM& 1}vzNhItԎaYpXV&s b<}N7&YP!YtwzԋXN"/ʓ^ W?A8%loό%6DO 0\;<D`~#'oO[MNݤAOTtA,۱%41YY4অ8IN`gE=ؼ"Ii>* KN,ll3ةZl U˛7Yo)415:b&N1L; Hy0):0`{ap"oE@AJĒ׷^ERL<@1U’C9{dqp@oi$/#>AiC=RٯPR"^m5:!_%h@Ɉl3E2Z>,TKh=YihrGcpvy(|5YM7I{B{ʨ$HHxNVXW@Wg2f "E3`i:NCMa2^FULYzC??ˇȋw.m+FpHD!*_ ir3QAw<(KK(k'@D5Z> endobj 87 0 obj << /D [85 0 R /XYZ 88.292 815.122 null] >> endobj 84 0 obj << /Font << /F31 37 0 R /F8 31 0 R >> /ProcSet [ /PDF /Text ] >> endobj 91 0 obj << /Length 1054 /Filter /FlateDecode >> stream xXo6~_A/20_IC[$a͛,y(J8n!$u:>*ߜw]S}_|'y|a ^tN.*e6}Sa}5N\-YVT/`jYG\)[Vٸʖw$+j|NjMB el=~Wp5!5'Z||ghC4M u['v*|1-*Dϳ鲊HKx1'cWy0ö- S{JhkKX۪A,Ƴl 0ӣ]P8(htqsWy볺Pyyt*/LtuJ3X7u͌qt4:w@#:2^ l2A3u3.)07JҤWa\T8Kۺ5gL**8*qrMgiJiY BrY6VɄ7>I"@@7x5Dك1X$zzmpG>(%|af\|C ȭK4_Ș e=Ƅkc6A.vɘ* [vg-p}dPKx|'B@{:pxa}Ԕbҁ[ Ck@:n1k[@Z~ ڙAQZ#$1K.TY#ѿpY2K_4kkh ;> endobj 92 0 obj << /D [90 0 R /XYZ 88.292 815.122 null] >> endobj 89 0 obj << /Font << /F31 37 0 R /F8 31 0 R >> /ProcSet [ /PDF /Text ] >> endobj 93 0 obj [511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 306.7 306.7 306.7 766.7 511.1 511.1 766.7 743.3 703.9 715.6 755 678.3 652.8 773.6 743.3 385.6 525 768.9 627.2 896.7 743.3 766.7 678.3 766.7 729.4 562.2 715.6 743.3 743.3 998.9 743.3 743.3 613.3 306.7 514.4 306.7 511.1 306.7 306.7 511.1 460 460 511.1 460 306.7 460 511.1 306.7 306.7 460 255.6 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7 460 664.4 463.9 485.6 408.9] endobj 94 0 obj [500 500 388.9 388.9 277.8 500 500 611.1 500] endobj 95 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 96 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 97 0 obj [583.3 555.6 555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4] endobj 98 0 obj [575 575 575 575 575 575 575 575 575 319.4 319.4 350 894.4 543.1 543.1 894.4 869.4 818.1 830.6 881.9 755.6 723.6 904.2 900 436.1 594.4 901.4 691.7 1091.7 900 863.9 786.1 863.9 862.5 638.9 800 884.7 869.4 1188.9 869.4 869.4 702.8 319.4 602.8 319.4 575 319.4 319.4 559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.4 351.4 606.9 319.4 958.3 638.9 575 638.9 606.9 473.6 453.6 447.2 638.9 606.9 830.6 606.9 606.9] endobj 99 0 obj [272 326.4 272 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 272 272 272 761.6 462.4 462.4 761.6 734 693.4 707.2 747.8 666.2 639 768.3 734 353.2 503 761.2 611.8 897.2 734 761.6 666.2 761.6 720.6 544 707.2 734 734 1006 734 734 598.4 272 489.6 272 489.6 272 272 489.6 544 435.2 544 435.2 299.2 489.6 544 272 299.2 516.8 272 816 544 489.6 544 516.8 380.8 386.2 380.8 544 516.8 707.2 516.8 516.8] endobj 100 0 obj [514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6] endobj 101 0 obj [312.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 342.6 875 531.2 531.2 875 849.5 799.8 812.5 862.3 738.4 707.2 884.3 879.6 419 581 880.8 675.9 1067.1 879.6 844.9 768.5 844.9 839.1 625 782.4 864.6 849.5 1162 849.5 849.5 687.5 312.5 581 312.5 562.5 312.5 312.5 546.9 625 500 625 513.3 343.7 562.5 625 312.5 343.7 593.7 312.5 937.5 625 562.5 625 593.7 459.5 443.8 437.5 625 593.7 812.5 593.7 593.7] endobj 102 0 obj << /Length1 1883 /Length2 13733 /Length3 0 /Length 14904 /Filter /FlateDecode >> stream xڍP Cܭ][p . n ;wfUUWuT5*1H΅ `ffcdffPtWOrr.*d]m,lN^.^ff+33 x@7KS#@ O!fdin~j [ tپhڛX\<'5/;#֙\nbP9@?(1S,,P7sq:K󻋫) ~;@UFdc*pyOg`fi|gtpL08ۿ݀6@w?S$Ews6qtpqft#a,ag*fok sq#?qK'{=j4L],]A2ټ\\#abj?,9z;;i|-@?@7o"x dniOw1?N]c0>av6b&qIIm (x3ppX9,,eT hWv(cgf_AEy=ff/K#ߌ$]mlSG}]]wC}C&? -jocu2. 3Β S%K dlǃ``af?3~T{ R{w򾤦 ?ghgx' 0w\&?D".6?]0)-UF<л?d7# 7|W}.qa0wu=5A{r?}N ҿc7dw{2%?@ 7п{7w~ qx/?x_& 'пv=FysϷ/ۛ[w׊3MRi0x/9}s}DIt+2҇#A}#L}֞l28dщH !ϋF5dx,E+7RƽG`X~ s Cz^`O|9. (?ongs'߈e}Oc؊u6Yc*X{pqup!oǦ)ESeKFo,pE /$i)81dwc些d:hL*(`C(J̒FJ ,^UMw$L `lweq>?|`NKC-+~83+2X; *立:7ēRaKqwňnS- VaOΔ +[R3U0 +(YE6l3:) KvYЊ9)H%J:A61pj@(+p8qEߏXKH<] bK9D+i }:GҗxyaK ed&lA>iFEZGXyY:iXmxWm7o =W KeX~D`':層x FG񃰛uK+WENe&_b'9b&G\Ki2iey!AҊllw>pnII$QGU"A"VڦS?Ǎy٨W\ W@mQNv":J$Q}lu?D T3) ,B;L O5gx6C;La>:#LQyǶB#AbAai'mZ L&9IʻB}Q*rwGU|udmBbe_Y )ia9~ Y4.2׎JJR*\=z} C>N\;fcP[+b=mrN<]@uH N&şkqnhبJRNp~ dM[MMGr:G|㕩~"Ś}$16:աH1 g{NO:XGb+ E5&2ۂ32oԦNg(zDBp=2C zF6T'(='BV҆ϴ]5(݄) ͬNGu=&` p^:\"1IXu1xb]$ZKj|5 cd"4 ݈ŧ .$deW#Cꉩ*sOٙc-xhٷt Q}b'5t.q@qՓ'b߁$E4XĦd3t)d|L)'Tv`ĪVްOo։4PNK7T\ҹyF0T4hN3 R#5:~biQPHQb[lо ԁm J@g]qj>1G&25vFk{+= !9呜ԥ7#sz$oт5'Oe+vIW$gKRFx ?8DmF/VAtKÕr1HY2AV?%BhQjPHcB܏ܞ|ȱُhgV-'bxE*7uG?ȋvLЕpCaNPϚL9k D/M@΁W&/.?ZJ1\}`jY<2/~M?Ƃ[mFSG}f|q--WyYOE_r)1)?SNV3gGWVw=EfMCYp3a4 %B \_ݞI t}!iL/kA9J @tȗ}~ [&Y׬ʈfRRl`0F,wx4wZHtʰ˼B̙U^.;e.Gvcb&o?%}y Ͼ"KX$[n/Px yנxkp6Ɗe `d`cW1CɃq{0TAQ]*`-<j%\C`}џP4ٗVQUIo} ntB=)<\^~};'C1ߵjc;Ȫ'꿙ݾ 6}ZD. dCW:j U7/E+0:fdOL1"DI۳;\K3MAcWlxGya%M~=ӀF*!D-)y$ۺSE٥ s9 awJhNݞ#'+z%d5'tym O⑝ Hb@|3AAcG V\_2f?$/6 jHQoZbʔh d r `E#J2+:s,M%vd77t{߷/i^'C(G¦u5 L^n7ëk]D$W$ Meg~g TTp]猅a-ǒIkΔ|1PUy @ԵN6xt+^N!cs6P*k;BJv,ـ"=v֧LYϲ}֧(ynju#]ebkm։;wՓpg]+CUL.[qgd1i1*Tw%#:naOOeQI-ۣ%6K9*gרDӨ%':-6A)ck+( Ӈ֫''krm14XD x)M6[Η'2ލFU׹ %ȣ!>(4(vznT8qAtնIqkߘK|l+ǣMiUu8{k73Ra(+cGcp}.yZOqD U.憰My! RZs^ tR>fNR +@ǕX[9&·4X7Zzey 4%*L!!l֫J[yzíp()]Y4e"DG;Su,ό_-FjbqPüTCJ/ ɨ ߳Ą;^&ub'J_@C|:jqt!e*惓%1oXA@nrGd:ڮa8ڝgSӥ+j^T hxO^#Ɨ@qi3rNrv&Yc&NsE,& \*DDOxX.[$FQ2ސ}י2=Wz$5dxn0 @TW:'6[Y.Q'bef~<3 zb}wMCLT4LcٰZutGgKqv^Jnm?}¶̍&H~ EMzÀ<dyo"yS3Vx+L!\򳮀WhR>cuXr$Ёu[-ٓ Q퐦 16ek ړf:ቆ95E!k袕@`l_7CSRE-.)6YlzOj)$ cni.}fxclBv?T߻Ĭ3ؤvb;;//c#_uMPXF"R eC% FKz·?)"ϵ5Iⲭ|15!Mxi.`5󕱴nTI}Z&)52 =Ae!|PG7tLD9fU9>/!;0?ɿ`{ gW 1UrAYCjO&z-T;sU̦Hڳ>RDM+:?P&9Ymf+eIp `'(J4xvP.Y )%Oj~hZˣ-$Ԫ﷍\V$&y萾e(z[繼ܣ43:*h_]_oh=x4c^j !=h.Bnm8T} %12YOL'D9OACK"2 pfķ95$\Xɕ'Jgj4'"o|P cCFFcM^EhCJ7r5UHwPֻ~P$ HP[Ou~O HK鲎HHy\m&z8Ho!4xC9[R# oV5U5!z89 T!^Xd}aKB)݋é7M`}@6'7/*y|>u.7H1(~]U*rHWeztOd%G4?!QK+V SVJ32"` 63 Q24Sp k fD2džV'b)G*l ":/*{JW ?D&aXMMr"m/\m][\9rZˈ25΋3߀xTZ< \G5|Rn[JÍ#ͼEI ,FOإ#oJGW -\<;]\Fh߄FJ}4zs86-9K)[ъYsιUiv; ʹnŚ8ʨݾp{4$?DX H$uk4, Q垯 !$}fۮ.As 4Dm-ߺiuzkFIf@ &ZzI:0Ϝ_O|[ 'ʦ̓jQGWꋷ飩|xݤ~k*ԭP08O}آF%E>*&ܷ~'D#8&؃Z> r/>r`CS}IJ?6D2CԺRoF *Qcy\i|IZM_"TT{􇚁L!'(C{Ÿޯu`b<Ԙc@mc_6HC3HLnЂ =+!gɧ\@_!Rw 9'fL) ,kȵ~D!r@^H5[`KlrHISͿ5Rȃ 4%˺MVǞ|i$DAʥdr_W= 9C.#D)C{Dp{r'W6ǫlGQ6a;^ 'RzceiOXcOg_un|iV5U-. KteZYYAc``hң+wT|[PgoFmJ &jc|} J gZiAG6uM?Gz=)`U˪jaяiX3r:ߺTrc"0WISg6E$tEy6_i}u7cPǃ٨~aBCh3{ F}v<ShB罰m *Ltg_5Lc_v}S:+LeQ 8e>L]d_NV&m %yvC"c>rI|ݿiТK_S3M3;up_H$od6o9ՀXkR }}~"cSM@CP=>z: O_,Xۜ_taLm/OUúvC83~;kijhC3X2pf7JPV.[ޔ>w[vs#Vui@A槰yl;5E{C7hX˒oCd.]HYՖ<}oqUU}P-k;!jC/y %d?\nqK+?f -ҳ^^*gq75Lm7əakKxZ5tKZXFzuE>i'><,bObnmϔ8X-F`_L)3/\+6v)\-rWjCIt0;1K5Y<I# X¯j,M~猿;l=B L("xRv'Ѻ0lL^AZ)8_yf}G9Ս-UgKdI+OrjbvjXz!>[U]O[+Jx2>`'qHo愀Yorzj"LA"K('(bYjzO0y^ca "z 䊹xTC1 )?`onF~xe}ƨC_Km1֘$而,67~4CޮSvE{#N H7EGp4W۱xL + a; [<!@w*fi6!S' UIiuy$^WGnS$ bFִoYK\8aCCLbۯ)a!c<ӈ_?w+Q+gX,hPF{ɫ.Sa5.a(R0 &~%M {Jǭ 9#9hesemiD{Y GU|E<,Rҫ43c%Wp}y ,v)7ՁNCyzb]Otwfmf>|})VjE u?X \ P:1OXJιxk|Xp*-!Awz㶞nQQ bUUj@iys- InR;E9#)A2M[I*?MS̬=Ndj#?59^w``̦=oOgCXe{1[>Ol"\PI)ilcnmDVOk],35&W=)X>~nnbpvyGի(g"0}P ,!-ghcd H7:w*jG !&5›@a^ȃKU* MD?mfCNˇtVj=G7$b{ =k?1O}Ll@ړh .%릧plAcȕ;IN9O 9'\ZUj}.vhCWZ4>8UYw>95d[N}'s\dUgf-{m#K6 .eTTx`tΗY:l⬉oHe" Iֶ!l(N46,CtG4`VocmF7Tm/a徒/xk0XN16z/T$8va .nۓ5G`Gt t5["j~djV*OVy* ^+4>xaeďX+ 3AGC+Rt(,y^?u$P9'jƇ o$h`|7Ox,NKeDHd{<7%ͷr&1!@ϳKZ=,:]"䱎1QI f`gqi{4$3xu3~N]y#hڤv<#8 /&YҎ > j6~,*}; d.Q$2 XM>J6`V rAPW'_01o>cO =Ӯm].v.p q j.%N;'uDpTmy^3W&_TX)/}{}DcQ`͘Ű=+1[LNa%su]wH-eؼִ:Gh%Nin2e4hKGhFhQS|wۿFx}XJ t*yQmhZ%g1@'Ҋř Ӊ;*ͯ |}Xh} soL#ˆ}띳H'&A+C{?,rN u}[m&4hMA Hv]\R+'9 ^"glW ~8~hP5S*kSGwteU{}Y`+-"):rh]6Ж[^c֝ZPm IU^8]pbyBDb?ð+ 7$JG%>:ŋXƇYf!GђKe_3m:F OQtgݶJ7EK-{}埜nΝfYO/}QJtΖ *lfNAήhó,]SIy)>7ߎՇ׎&d@s):c;ԧJlaoTv35> k,kB?j`5nG|KpK,Vz]s>L$m5g6mG[*k*bKWftܳFwq[o .IM\#d`*&>䲊 atTŇGԑb{forǃ w0S\8uZIw*G؀@'ƻ&ƕ1\.K+qL{:ч(]7xoV ҟͤ1{(ed]}gۛ"<ؒt{U0[q %Jotg*( s2gɆX~$b@7&W J5Y `-,_5*MfkH,6J.Qݨ. X!lfߪYSk{`OHLn,$tk Ȟޜ+>]xz䗴L{|9luQMTwB!h^Zvw/l!ֱVsQ E~aݐzD+{ K&KF=ZdCz]n.o/'GٍЗIN.a5prtCHw|rYTvD9=%tPg1(;4+!>D^UMտr+Z?}7Q;{@Rz^mq 1XcV~R^:zgFhqrroS3'*B`uHKISs‚xiKeiHMΉ>L@ q@4;+\^#[uNiXػ!wJ۸C1(iB>dQ}i.oG9Mғbt}m%韜jOAIV7%- C; Æ/,£ gKn;LFI>rEd6hY{O0/[Hy3<"n}!붯MN$=5.(Ÿ lϴeXLVJ/J[5,k7M`,εm;W?+"4fSpE_ec )peόcVl! }LM'R\!L6p)4j\8F р[;N?0.N=mqJ*-! h K,qT`Ѷ.WX2%QlFbIat-?zh%-[D}A{![z^ endstream endobj 103 0 obj << /Type /FontDescriptor /FontName /DFFIYV+CMBX10 /Flags 4 /FontBBox [-56 -250 1164 750] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 114 /XHeight 444 /CharSet (/C/I/M/N/S/a/b/c/d/e/eight/equal/f/four/g/i/l/m/n/nine/o/one/p/r/s/seven/six/t/three/two/u/x/y) /FontFile 102 0 R >> endobj 104 0 obj << /Length1 1872 /Length2 11709 /Length3 0 /Length 12870 /Filter /FlateDecode >> stream xڍPn ww.h !!-e̙WuouUw۴jf`Y + @JYRΉFKq׎Fvr8@!ؤA./P +'dgo @(`g4Z)GO'K038XLH؃ (@b hh:C.SAQtwwg;98Y2!. 3 l2@d-@; x1APW )PuC_`_@L;;b*x@P?Av/ 7d :/~NGg6gy9f=|'˹{\[;#P y +ń agg?hy:tra~|X_~мAn`+ߎEh lS ~'E~?>3zQ?(-忝oV.+'K:iUAPKH ֆT^ 0#Cvv/Kg?QUw"YW;? !vEe7^6CuYhI;wlc8B<js迷R98Cxps/];X{<E`<<o%{m x! tpBFy@?LA/qr .P *^(^_4A/yZ#V/y@ȿˈv//////8}A/v/kRY_2\! //Ӹ;+\_ |'ݘ:9n|`9¬PMmHM;֘-TFV;,d̠U+o82 -ᭉm>& [mh}udZ>}tm[`hs޻cݸ-[ R߮UD(bю6 ,5˚!Bra%Ga==L;[g -Nn}brKܑI:o98"Kr&l{/] ek{&Reaq봒{vٝĸ9u|S&h;^QәNb}.ji=ބ\2!uΓ M|O4u1 <9|6zw(5C6H ⰦB2=;Wl+ KZ3 h3eU Gyآ8ܯZ[!etAPaHjNͼ,I3\ e Z %"usEXd=jI>eGo?(cW9ʹt#F&λy窦ɅSHS583T|NXmҷze7^|PO3n&UȠ3exMⴄؙ R02XOKMϒ._F{L\ckT\fD\Kcgr[MG75S vwOmyi3.x[N쵥.73F56ʖ4I`ZFF5Czp$|:tzfWr찌N*#` %1Ksufgrt[2402#g9 7S %ob\吰C쒐1< S]4'xTu>3x#/p(Ak$NՍ_E4 I:)_ҦuS1s\ OfU8*(o@t|;{S],"e:D\\5$ֿMv$(+~.b4l 9lͣԽ2SRܹ`>f]ݯQ_O9sʦ%"(-LD}Qd J*ESSPp( ć$H0EYUjV]cD Jf7 aGyoپq\WThdElL&AuϬpފwbe TR&i#\|֔7U vL#XEZ?K]^VDYq V,h˾1Xc'\:ހduL>J! 8Xk姘S Hn6@`}r5FYfUG=.~8 }a{n5 $wk.\ߐB^74? drB;ziuoXQK@& ։e`3M(lYRdy;ʶX$&QYhV EZ RELp2.& Ifcq')QqE=TKV7ዲZT Eϳ8\8)z tlh6FA@rK<͖/v>P I`*=ՠk-m.,R1#U2,1鷥bE%e`eLq&wÏ:SC %($sp@`ّI*"j%Z sW'5VaWx~E7誤>&b?w`SQ*H^L] ˹U4Ey>bt띶Ͱ(ﳳ7S7ؤȸriIwQ,\)S?{~xH,0bwB0mr+M'13YNr<< n v75 -iʯY@}4O~&uq=ǻWp7+z3.„J[9/g8.$>*=T\Q;"Rv)`)Q zae뇙O]>2)+Zrb \`P׎f?w8gGbhxFk}{cE`25 Z+3]&w^Wsx"ፖ bh1(eVD幥4X =f$gl4J.btdAXLs.8= T+I!ɘu8wqk,rP b)%ҳ“*Z-Ԃ%١O_̍vSMf4#,t+jWK;+} FFZl!IRq^?洛 ^>[!cY;}imx54vsLD{^ CqyY9k6iXAYZz46/3/+M!-},T@.BW)|y@";ۿ)d dmg^ o5Z yt'4]/㔟mwK1IlP?&E5Wꖩoծ K M6fhD:GEb3$qrxJ7%74iu *bJ :rWVSmER~G9b58JߔjOCw<-ҟ :eƒo#n~1/ n8[ &񖗽Cs6g? U:w:Zt"-.^.w Ų] "jҼ`\9`5ںg\[+qz nԭ<;]f]Rc~A1 8k0n+ViYV\s1΃=!7SZ~wjqAH j~ ~t=+n_׍P;;xvHEU@*8󵥴1nHVnb;ܼu|o(T.䭫rt/t|*huɕ=<ۮۺ<;>wW7`֏TeMxʲj ǰG/ѐ#FU-F%$9K'R{$eY/XAەmOb[4@ Zs5h;%SYz>>$Ų V~:G#"@ŘU6y ]6ނHo*ܽ?فl\pEU;>̫GK}o bC~F}& Z+ L6x]E3ث!+yg'Sf֍ ̙Ç fATA%5os bkH#TTBMUR;zjn`ioPP b(~tTQ#1q ղ+"XY , 27UW`/"_|kN-S6LxD2ʧ_zzU]| Uv=hY5RQ5G,X$>g$7#[&ud/j7fL]ϤWdcwc(DZ<>KF+o g bv6sR Oq)u:->Mw6cfQ6.T)QS7װiTvjܦwH zJYu@U% M҃rwE*5ٍ$V(0gG?ϫvbH|%W}L?>zZvh>S-޳Y^A{8L~0`w߀ۢ' %04tfmg^q( (+\k:A -: :h<[vi:dɗ&ydlŌjKRG! }C3B-F>kӆS/)[elFO_) G=>o ø Výzwm),]1ݻ-eLaY{`D"Y)H]*ic)}s07%rH:b&$8TɪFiF&6Yk"m/PW'_.DŽRDnFh\Q3'Ƽ֟{;)5)i5qzZ!MW!|02rsX㉸Oںb>qY":$m >3%'Q.0]9`chh)/p{IynH%Q勈ΐԨ沝|k#a_ ڢ:6nae5R =np1Wʡ{?) 77Ӧϒp ^qBE/ygؕ{dJ )/'iڋg}8 \ (0C`:J:XP2W@BybH#ng=@ CaySPAx+]V!ZSh[JN:d扟KZ<&I]oj#_m'Zf R++ F Z b0OnG&i6Fvԥ9><] l/v7|(!|8_LP9~ʳ@5>0]w luK4 ; cJEJyNMevn!kY)0S?|*Vu,=2Uzڛe[dxQ֝]z ~nmk%-26$qL_/^Z7@~.VR6-1ta;G mK. JPr"e@8]_G7|e[Ao}y^!1 K;4H̾qqᕗFwnTIH|7z+喝[B>BLzLBh(N¾3hOQ%HjO]mLmAVIB(7OdP(.|ry1O5CjaXܷ 5YBY "eal_M"ѐI"j5@ tEJu3W_}Z!Ö1-&ȿZDZտ˵JjFLEtG !*[2ƮM55;>E5\ng&3C rcu(ȜW[{+iЎϟT*$!5}ri"y$%R{Hm}Rf*H{.occ̶yBD )%ڜur<$0sLx/<ۏ+k r_Н#ʹ53AT8yܸƑeDֵ pܽgq#tJQ-Y7`1 ~6b=Xz,'( O̡6 lA6aϮY:} &L $ n~PZl`4JQ{;_> j䌷G Y=y-4[L.1q)r+æ$m ~_=_=0|2Mz!䧎_KJ=`Pd?NnI= 0ʧU, sUm!Æ1h)i'km!9(.ث쾐r1YSGdXv [ٲJ$?kF[ߠqfT +r!A<; VvzIi{RI3GiK1~43Q>bqT:S~T-[wD;߰qG?8_A_cUr+tvZr=&5.wP~]!2|~/Z=?w gܳN61ҁ̑HN[̯ڮw4..tf]Ec wM|H7؊z .ڞ.JYoNoܵ`~xV(mm4%ltntr9<|`_GX_kTtu+ܮ%~qb=W o29`t_)S#g#-UH.[Ib"w:(qvŊവmMɸ^=sbz^W|WXB3f;QX15u<#l߳ XHrjKć23^r ~jk,)Dm9dQB4 JFt!4ZUy =$a#z9)԰.~w u.Пa0b蝹XM(L|I@O{ e5. z<%,Oʛ}d#Mhj:4/ wBFxΛΓ0F9FQfnc,k3})9NoGaJ- &a70Q`!%$2OUӏmJAG*4 169c]ܬc2RLog;OQn OLh\pӒ_ϙqF8'_҂OHKJou_][OݩAaFbt#mEl,}Gcz7D[?agI|T?*@ ?T5vsY#d<" uOphvRmlĜ~d Y\3N~ zjV }&I kXx{y\:"zf,ԎcWl$ ?J[ރIZV[Lo!|T0\l][&UFƥX(r,g,S=- &Es,l}q(}îla× Ik]{*q|lAkQ"d7.\gn~ֿKSvnjLvs:g{bӰ Q$\͌n vI}Z[Fme֌ڀ^dIo 𜮒KG ǣ]-*\Yy^T)5Jɾn+I9jKF31"g)&c;PR>WpRd= &`x{YxA\y{>3OlOq bIyܖkB(?E+ j(s4٬f 2[Lo[4zpih>p/! !F:"fEX\˞>l ZS5Kێ%+s45";c&*c;9c`R:O-IJ}w/傢QFҺ XY"],,lOOgxg"y {8!TPoa[A<ͣH8S`09pk¡,^(k3:=y@['f|) "`T5;Ynnt[FyU8 wݏ󱀼l'+-յ5wdY l߆¸UFAv0ag(u&%6e(\`/X F,p8u^)+IgkqьKԩ!oLo7W}P`'I_¢4v 2oV|LRݢ$<+ȰY"yB !پkpV"ơSAY ΓOt]'XP|jVU- }{j;ˢ{Y 4F(g u Z eb]%vŕ/jԛS,cӱjL%pZ&3]΄CΞ:/y5_Gjs5`8}&) |s,QvH.{JsJ -FG.NȳnSMv: |BGhQ\7}[ҀX ֵRggQK.)At1̛=%q +[L9T {K#H2NWR׊=4f!Cg1ϿhH ôas^S3Z=td1\](;N%>) `OÇY*KXm(AEPLo"GSVNڥ 1}"9B̯ Iۈ-Ǒꚿ xNbra0Y4in"+lL|cɽm:1qa˅eHX!jϛU6̩"ڜt=uAR/f<4ʘ}uK9d{s"+Mzs?X!&_[h^V3|eHScoGXyjPyXcaqĪ3|6f 7 8[}ЫҖ[ၞ u/,ѫfڣ4'd;Mh[ \eLZfI!Žgd *N$C-s)>fO-Zu0 cXgsIŭ yK‰bD{$٘G?@Z$mZt|1͡-WƅxYNwAPd(q:IӰMr]gmHZe$!V H(|TAwvT dTY1-̯@K;ءG筲oF4VN(?ϋ8܁B aR78 <ݪc~7;?iZn%? endstream endobj 105 0 obj << /Type /FontDescriptor /FontName /DDZWQP+CMBX12 /Flags 4 /FontBBox [-53 -251 1139 750] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 109 /XHeight 444 /CharSet (/C/D/G/I/J/M/N/S/T/a/c/d/e/four/g/h/i/l/m/n/o/one/p/period/r/s/t/three/two/u/v/w/y) /FontFile 104 0 R >> endobj 106 0 obj << /Length1 1785 /Length2 5759 /Length3 0 /Length 6857 /Filter /FlateDecode >> stream xڍX6NJ EJj)e#6 t7R)!) "  4Nv]Ov=C>[ L%%mu##0 `ARvv#3) G"$/(`M⁍F" 3 J I ,'!p[@h 0wRv%7 nm/pHHN\`(8!0lG(0DB0-*({Y.^ a(O-4q"ey v^ PFP=`k }:Hrg*GN@HW0@WU  _gw$6 ;Clg KoPwEW9 l..0;({ B[_DlѮwD`11 0P_-]aX~>HWKaH}!0\t p`#H5@1V%E" }&ꚦ<8UTDblW>A!!@TT[CU{ vH@/ոpvAb7W`0%,)];*w#?!ؕF{`塍Ċ񿡦D ]׫Da]u>aX/;]=7m`[80=;ӃMLJ c ۪ H_" (ě3AB`j ^q@z`S,E?"ub/o$.$~ȿHIE:cIo{ /@a v, /Īߩh_{laXr v: ;ubk_âF у? EPؗ7~fa0 J:9J:>m=V`[5;G&sƝu080 TYA_7ZHXR[6Lf%b/4_v>\}ֻ?J>{U;>mIn2\|˼5x?厅PwmCpDZ 1J~ F4NVtTbۥ•<Mv* w 5>1K0]nlci3% M*$n4W[ ٻ~i e]I񴾗{'[C7$l\pFj3ޞRg y\f u5g7G&|?nh\1u&d4bVJGܯ1%ܢV3" =$tDנk4CDM41I`ےo`JzJz򉤽m+C{IiɠdT/}\Ftv.~ܢj`דGYw"3w;*>k{ ]CrW#{N8K"ˠn@Kx Zd:.Nz-]߫o+Pӆ%AUS#V62V'fՉ఻ :_n( ᇞ};kvGd>_iyUlx{Y~4Po{FG;/KL rWp2'm0;#'O&<[Jp?,DW ^J9fOaBE)7iaVoW|W"֍rrwݟLA?pr@,ѣ c̀<<$H}~_y̶>=U/vgTclAa@/pWtGXlVͦb> {f6`[8_^W8'+>4lVa:v3+T EV (?i=~Lbj2\#ZKHOm [y4ӝA d DP}N2jۨJkM36-~JMVUEY J%x|8޺*`dwW}E9#pJe\~ : Rp$6pIޑ{ӛUvp.lnBz WК~lZ3cQi=KXؕrPA{ ƹ0`n`^r8G=`g0jX188gCjFWI[8k^JD>P|<<bٺa~dMr^V1ʢG Fʉο㔉 k|$$ Boڏ΅jqwvM/WYɹDž7U~7 W,pH|O57}stlt.W  ɚcoFRMr-S[)?DN,t;I9,7Mfٸ/^en1k[L<` r[ g|M/+xxCRaUNfi# ְzS-`Y NHhu'zk^k5fuTƸI{, Ƥr#^.Cx.-RF՝ bPj~#nMK~r%G|SiquY+kIRpNLDR=SprqyF&kncxfqu̅by-ڔ)QkC݂5K@Nڍ9)ζNYTǽO'DW%9G^:2.3p]S &Y,Ə-"#:z2~Oܯ l27- $~s7Jk$w gV %&*&Mi8SU WE\5 gC-c(T6]oJϺ!%;ԑ&၁0(C!t]添XՑS(c,ipk'fo{~\m]O\=\SFH" ޡcA服{%#v?i*>~9 պ=ω[aZ;eRF"wxx͞K|?\4Lcs?*oI%_;*(m_?aIJe?NIPl;m2K@ʰ S7ݼ NBax1>$d5|dV-t&9!'oB"Z۶^OE1h~Qj7U(9hB'*W%޶ȌU] So]Z&Y*7iC_6kъ|R%y+qk1ع#1~&4kǷL.u'A jfGus dLo4{-\Oƈ(c!).?٢েg8Y٦Q+W{/(Hp'Yorb8˾m'_Jj+S>YרR(JI1Iқs`1Ug^Kf,L%0iأPN&S?6Jmcky"8HafdǓ#A1]J'[^E6j3hAפ|5@'s(tGh)V\P#oO;&:e?޵׾hAs lޘ25k(; yia!ɀEhާA@A>l!w.؊"eT ԗ4FFz*uhj?rlTrBSCW2)Z$Cu$1 Z WzՇףC$rhG%Y:}R4/swôz0ÞMbT:? ԣ#Ay17B5AQʃ^.UVV̎N4 |W[MӮD){-hjX^l ԋ|I/_JjLzb f.zCh678@N4Ql ELX)NbJg3>[; \ ?W U¹y!Ψ";iuz@d}~sDĦ08wca |*gWʽP:n!W2Ʉ;k5Q2ԇ_]9qPo^ɞ=55:%w Ηsecj:8y!]^սm!Bz䴹 H_V{\{9HE$J_r-!h" 7Qד]Z+o=bYo NWc_1ÂNI2@/DKsY {C[$pLqc* 5W4+rŕ"0{0dڇ?X6A4ݞRt/;(x 1R %=\4o`8MLjd endstream endobj 107 0 obj << /Type /FontDescriptor /FontName /ZDVIKW+CMITT10 /Flags 4 /FontBBox [11 -233 669 696] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle -14 /StemV 69 /XHeight 431 /CharSet (/L/R/a/b/c/colon/d/e/f/g/h/i/k/l/m/n/numbersign/o/p/q/r/s/t/u/y/z) /FontFile 106 0 R >> endobj 108 0 obj << /Length1 2294 /Length2 19690 /Length3 0 /Length 21034 /Filter /FlateDecode >> stream xڌT%z gckg۶=ܹ]1ajms msd&`wVuW*j@)+#+ @\#+ Ro1&qgLNsXXXXl,,1tpH[r {|ИXyyvL@EW+{F3;5BX:13{xx0ػ098[ 2<].@gw9/%{࿘1!Pԭ]%Wsp0qvf@˻ xOPU(;A2V߽27ܿ d e XXR L _&v.&&v&WnU7=3gkGW&k(2˒ sq{{ $fmbdmA  k_$5@Nn@Y,Nn^v 4b+#o%_w~>w@?k w O"VV+hi B] ~'@}X,z;=_f)]y5-1NL`ddd7KUL]?"ʂ,޼pZdhA}?bo )7;4&v^6x_e7Ptx?5nW+j~ KEhbjfY*.=6پ?(.[|M) 2s08&&^G 5zf& ᯉrqE q n`x̒E,;e {L?={?=?qw{?=zיA8ufvc/l `_ߞwr{?.$-w/?½Xl{Xˬk|o?{OY{Q{3D|wo??w28rVSGX)/taws{?z];+W8s|?;- {SC=7_ܜ߿~࿿i@OM}HC( Y_Z>nO(I5AwI=v$inEVH^|[aÿ'}6qWdhC?iφձ_{5\31%syYd0Dptsw9o$r_Nb؋|t7پ<{WtQAޢMS$, ,y  31~`:`˨js[dMP `&ԕ5c9)cմEaֱ:-4-lRWxgs:V->ևGR? 7ti ZzIZEe@Ctie1?0'QŕܣbKXnC/9i8O21K}FGiMhGzD$B\WL:k%R:MeV3KVSe cΦ^p|8aO~l2Ѵ;^n /b%[O9.6b7}f[9UTe;_&n~`ԏ=:)r͕[2 'V&ENPUfP޻6zEu;?kbE[J6+Z B. Uq]yP1dK{? QҌ>[)=5.*PRY!ODêp L)YS鞌ӏa6-n{:(U$5Eiʱ81ųE 6}Fiȿ/iC`RBx|>.9ģui]@:("a,̦hm~@U퍧1eT39[JLW;^H?h^>Xʎ}ɿ>1^̤iS@|j#/)B&$/g;kf;;әuҖQGUVڱO m'͢"@i n8تBBlo%_ ;_u4`(DtY οUdZ<]{@q^N?FF9KW1@t,qafp%j„TJG4Z?Ey\4;{ "n o88N1#Rbɐ`b3E0R!z(z79Fz2[/2q^:)tubch:D}դ)5ku˘C%Qqpazwy8i 'zEC::N@%B%p )p YyTh&!p]U TMWʂݷ.RZ>\ PRޡܪI7Kjmg4f( RN!&Y~?wt*IG^ic6gBMܪIFxks|T  g{ѷ3$̞+$]Z`CWD8Rqq(38&-o'{,8 MSPKTs i *P-vH2y[L z{lՋyWݰ ϵ@].j#$Zz,"=pR3tVh pXONx)tV&ad {ȿ*MA]syaKFlB5y"ԌS遷Q[MɅ,%M'*^6xKK G ^.L'{jZ&HC;(bDL~{6.ds*@m읭bGb|iBm"/lSٿG8XJ0`|wAUFfduUhiYRd Uܩ*ͨ JJ6mhj){ ?ƘvT^,[I_+gi¾e=6]1êQ#BوazV4KҰHO|ZUuR6hNz?[ Ήj ΚOAp4S(5*FEX8 6^!2dGs9DG8QS\Kۻ$R&jSu-FG~M) `t4Y't\nNWlE 5vϚO*S9oxH$4-Tv(u!OqFxCUai7N# ؇eߨs1cX@F%a,-y(J D gZ9+` =۠veEK-D6tЬ*zw{:Ofu?IƬ~,\$!31`n7)/n=ɫ7W+֧._fMa9M9Xo3i0 J&BIlYqWom ɞ86J]LWMv.Apc|_.3l&yCȑz5g:$ z
    0(<*m+}oQP9 6cX[$iT/ܪ7J׊q *2̲}^ď68td_\j:hWqR8&J3&N{p5]*_ 7 [ʜ{Q+u+C$\E9K"B6ZVƻBoor)߿kM;G  Z@'CGͶ͒O|UmF7K$‡DO= BqzSJRe2$oB~M6WncvJ*Yh$O,Yg`Am+LyNwA]#$C)) JTeuJݲW2s7S$]|"KR8Joj,umVZ 0RVLK jӌġ ]I)q{DĘ& }oK:[Ʊ8R2p"ꓤ = k/楓eÞm'Y‚;gXvەʴ[. U(A z(|򠭾Ĉr4!/jYÊuD,lwq@flG!U +нv +SoTÈ, (o/e?]PCd`޼,րM\Exmv 3i:=!U5]7& O :3..!9C5QoF6!TʪfRۚ'oCpwxLy6YB_faiV?*M= +2:a'SԹWǻH( 9_\V9"?jw:)ρO7(ψUK%jZ\:o ajfLmiJFTgWk^j]RA t0K6JֽO{V[;c'+>Ŏ!D`OG$p > Q?.5kASMvUuG"z%/Z\L[U")8kkc m{j-Zz-yc$ 1rYOҏ_ʉҠRfڱnv%śeUAۿvPũY^]9*][XÇnuuge ̚!5 Qu:r'*?=kUF]ugP4WXLjo E瞮e U[џvLGJ^9%eCž{9Ը%]ӝ6i:Y$FL߬17‰p$@yo$x(%&-89w㵄as4'x .iH:\/7`5?`4Cyn)"ΕHX+va1k`؛C8dtTve>_HrG\+G.3Nuެ!8mS3!>[k؞O8P$6朹%aڮ15`Ͻj9 >v12x./9g&!Ĭj=BѠEa}$N"eɮh&w0?ff;jZ.x۹Nב^*n ^L۷91J41 H}~rQR@2ZFh[.mEWYc@WR _G/Yehbu>{n˰_56:(Ld'){8\qA/yyU R@S >q{4lE{#h5V' iY[lv\ibbAɝif;!vW٘>RV{#xcoQ$F|KOLעh} D]z}JT냶'GH,(N:~>LpJ$`>̔hn㷅cG;IImVdMH)fhEZxM#?/N|/%aD6& a Ur2pT*N8: ߘJ~`4xlL!OF<-bUL>Vk|)\[Qټ1RkVՙ: `jU!@0UQ8 ZMX{B򊰻~QL҂vt04j+勈Bk奿̤'dA,V_~GOܧj Vʄ4ik1 ;gmpdq?sƶd3Q 213A =`Y` 9hnGK18Mq6] /`CiOG5͝UyTM9х#tb%aVK,Okc`쵬rUAߟg&e)Ga:R9{)>YOZ2ƓvՔbsBGJC-)L^^,QJND"NR*m(3L9 le^| fR50&\( Zg^(9RZtq;C2ȟo`Z({ҕIVV 2P~r;W8= RmHj|B ?E>wZ7h&>$01-`:K% Z cT![LYBNM ,; )^Y"KVuvĝ ( NWc l`L7(/Z'Hoߒi vK;W.Z2<k|e(*B$7yX^jrLsW!D'pV0.@ԾMus U̐(ޒ 2-'<&XG`wA"zQ繭<y+wcZIŗzu LgWƨ:] j'f' x0nd LA t\〫Pryb2A wᶱ٤bĶ'/Rз=uE^I]8^**YkO3je9pήy'hC[% YrsIKo ]]L1bfSnR %fҿ'[ zQև*䚑;ol3C7sXE% or0Gf1L!"_b`mz.S8y3Sx`PI*Á| V n;df6LFun d6:ÃH%*T#O9SIkRBgt :G(m>ݰ?9djyN~j1ۋyҘ^sTȮ"e_$Jsk$]bcɰV}q9R(;/_UB}'vc";p1;oz:[(O5i| P'LIIe)fR"EP-8 W% e˥vE3̨ڸl"g:u mԓ摒DF.iaeՌw:|mcfw<'SPsǼMs FZ1a zi~:g r %w]`_[n~ ݭ?pTtq\Vt"u ƿn/֝4#*vL A QQ:d{9fRWnK ,%'R=ˈpdbZJjR&;Wᳰs [T$g$FC>g#oi`ZDJeX. B1-]j EXLSZꘄKi> TňI!W&)V3M5>FǢqWLzfp >; u4dA0grBY\_j)<lsE3g"K آA}9>M4KV7NTZu\/8ǦvyK? l* * !D>}* D)>kwN-y'J]*mM!~hvŗ l-;ݧd^Ҹ>B5| 7J^k^*g?=ݡark/gspǽl㒶dpam6[Y^< Xo>Mp^>i_"s!CAs3ߥLP<E_Ü>yVdel]iL[M Lgw &Dugü ;7 cQ1e8JW$uny$`H캅Id77ir˷ZW7[h&_C?\\w>&('LMTT*@M?* T t⣣SD!"Xy0nu~6O Ըj^eHQa f߯XPj"ʈJG/@ 7]xk4 e.P_IDVȖ,|uH8{J^TG]O9܃C,=)ዯ@f^#3 q@O1B\6Y&20d|$v 9ZUK 0<,GMerI~qi/E, C.ɥeGwk N=a9,$FVrȳwųUc%y<LorpaH:?x*.)P]>Rx 3tBxi R\N$܌ )`x=}ւF fzbAW%'bW:`4sm]Gg@80MtK" ȹEhjW[iWZz)'J)EQrN Z~df;eqCFE;S^ %EhF L6}TvSiU2Cw ĕ͎k=7 dɛ^Ud7T͎}~H(?S(x,+mYhw|K\r]8H `+.Q2> ^ =dSy_2$ܕs.37Q~ V/IWzYq͊@\Î"%h6gngޑw#7t*pi,? ~P >) NTᄮ\bW}ϏxaL.r'X3iˀ E)瞢I9:*{UXx#BlXqr.Ju ޑgϧ#Kx )1"2^ x Y~RrU5_~\$H|TOz핰2`J_ppbTL5SG<&}p;!“EYjC}TXHsL':OH>j48} CqsH%OBwй+jN\5?wZ_J>ERV")}@Bjz|:^R2)!WDfyM>i6aro`3^g%;}D&D7w hpc ?Ft'8?/Ȃ=#_)b?ڴ>:PŕVrU*~;̸zN@*UWWb`Gkb__Y!‡|+-hy B#4/ώhOS'?rNZ6JnbI_kFkZHr_N$ә#%kE-FPɢZus5p5oYe4l;QoϚp!J<5b)mY+Yni<#x_aRC^g4<%UW\+1ie3zynqDvoX@UurW޸1&ΑWO4+?6uQZ[ba@!,;Vo7 +1p K'1~9BHaz!%KbUJ3&钅V +#D5D\6ʒK~bү;u,*Tf`vъh.* Q/QT0{K@<k~x^PcDGD`QtK`ݸN 蕕MQ3!um\ܰeLqec?xk`)n% Y*'"4tCHT0I`>SMy -qAgV}3P^\U+i4$-"6[n2ᘩ&,VpzO)<7,5pInj(iV^kdZiK*UJ<6jxvI(mod5Xg`|F>l|DfUs'*.MiF>$!A5)>^r~5prw\8Z|Du>EAb1 %-VLGa r4ǥJO =>;ZLtvoXdG0AF]X cC+D/tAU W}hA551j5jn~CGd`7&iJC9/QVj}nCvϺ6=q  VLΈ{!,X2}l̗IKӈ-5SW/6%i*IV(A.H_,t@&16?Y|[ZqBN.jV(i=lЉIHoS})B.fah[m#SS_9BpS{c_"n{ZĩAAOƁE7XR|#tMr3bBP;MYp9ev-?xBNg$3aDSeLZ֑e\ZN\U͒dU=J) "݃UmfA&2׊o;~I.PVtI訜v{r05=GFk_0ҋ BIp*fc sOݩ-O]g FFҷwD`Sl69 |>草jEl8SU-HS_5֎dF䵬kC74J~^MmOro4+6bńs5a;IQr;SuD" W ]=@YQCx^ש;zڡdS})/;Sq+VVp|,m~-$Jh12P)・wP Vqoh^}ڹYwRkǎye E&ԁ诊72[TnKJ⇰TZlG嗼${ezZH+p4*F#0͞b#R%>f=c)c?|u/ʎ p'o\6"kt-43zzhxOgI,^8-H6ޛtyx<ꆹI(+*G-i~(ʢs.269rhOVgŬ>(=a$jC 5H!'͸V_2ml];'=8pUẉ /47nȴ&ު|z׬֝VZFyf_2TgKSj;SZpm.TuP])eEǨEŽ{ӹFaՌd UϓH}S3%ZЎհBf  \%,q7kFTP^OibgkXjlvVaܭ SWR;اŽzn(zt>Qu)m_Xed@ ` KM&Q7h0_KZ擥L=R=(.peV1[Je!3ffz#~<8D3{) )I\SQN;(4*eܗr[ަޏ1Y,uBjIO~?.>NF=c)ݑYeAFt3(ށթAbSjq !<^2fD`93 `G *}> C#1oy1~ua2S@ݍWπe:sG :8H|ogLo폺V5ƫ<~gMIJRUAc#ҤX~e+Eޣn(eOM?pWX\-,yEnd/F]RgH ڥd eVrA\?mL4桤|-`i3†I&Bͽ$`̼ o'𧅇%;S3~A%gng{0 ȫh7Yz樟[e)#+QF+\L-E-y #UQԖvV\醄#y4J*,F>=>Gfz UlJơJXqD.ꯢtzDDz'G7WC>3#' }Ib5~9`t涺P5z *$OFƔ+#AsW ]Qayڮ0XNaތ9=2`{[t(Z4֭*ĬQp"k_|!s$K 81y&7n\]c\fK'ϤEjY f+YC}7e-YP8,jOO(S0; k"Gz'vMѥ< (|УZ#+^ҿ=~'Շ1Ah;jn<hf*yjSbTؼexTJ=qL, *x}'%3fI"+}.uʺ;YNM㋺9c܏]ruB?)M", Q6UҔ6 px@Q&/Xn:-ba? tHhPw c6 ٟ{ m^C +JEcs# Cm ڐCW4XsyB's3j¬gdMS7 k"DA|t>KK,|`uQZ3HP$>pv] Խ&E7X]w}7/铃h_KzXf bh8 ~L7i:ҟ(pǥ-z%օh}o_hHEX:|Wh%!Tl/Qt2 l?!dQ,q P3AoCh92kY0G̓7楚\DDpf "O^9!&^;U`1DzR7nr6\c!pA!.}|RO*v=mɜZG;p#{\irsN,C@ᔅ쑃 %Vn$Y3(c1::cZH@OOnј>-_HelRj,4"wz V P#4xvsz>ߥ秤I SuURK㙒 8쨷YG`@iEn8-'{V]| ci?B#7{T0GSWas:&N8z- )!M~#vF&`9HH웨.x?=n@/ZRe4{\\f ;w䆇v?#Dkyv#aNƣ5NtK;L;律) {-zXtYi+ ^Z}j[5 =u;-?QXbFq\Asva_Z X"-*(֛&aP9_ ʮzN;?PjR2BC@Ad endstream endobj 109 0 obj << /Type /FontDescriptor /FontName /FZKSWP+CMR10 /Flags 4 /FontBBox [-40 -250 1009 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/A/B/C/D/E/F/H/L/M/N/P/R/S/T/U/W/X/a/b/c/colon/comma/d/e/eight/equal/f/ff/fi/five/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/period/question/r/s/seven/six/t/three/two/u/v/w/x/y/z/zero) /FontFile 108 0 R >> endobj 110 0 obj << /Length1 1555 /Length2 7680 /Length3 0 /Length 8710 /Filter /FlateDecode >> stream xڍtTl6! !ݹHtwI7(..,KtJw7ҝt"O}svwf٘ p*J @#~ Ptc3 ܡp(! OiaMg#$%e' haw<6%jk_-@PBBw:@ڂ`mr 0B!H()DJ xyy\{Y.^0C0a'3~<6O!B@wg-~CC -+'XO/)WBPd-vPg@WU`_@;. :lO*@wn"ݡο( *s7eX !~OލGϛu`~vP 1 P rgAD@0x:*o c wݑ@ w?x~ OZx0 CaxVsC.<iO坼pϿ+hbb'bpo#a @B\ &gWl j?)og!(U);;A.PgwJ@m6n7` 50忣Hv(#] AJ[+ A_o Oݾ:ݽ'ww;[l흐(@|w -([~y#~ݨ ے6X5w7.xRȿ oX.)rg 3 w=5[,ğq2x?C7oin+}Ѡ@Ňz'3Æ2[Bx\ql Fnp/3}~ՂٙY o= C |FoM0_jy]x y7UG̣?֋>ƿ3}\>Vd7Gp7 i-f^Aܣ2?M9ߵ#!>V jS)v?ŽtM xeĖK/J݊mRZ\EFzK9s2p޷U oblyub"f=N&3Hf&؀H$zA3;aT ~:jyk ëM^kF̣#GQNlso{?N]hZ[Cd: y^P61xIâcI.|Ue3>WN^אEЧm*[B\R\uvȭ J[뤑[Q?9#MkO>>,JW*8Y&jŋYI ,ɍU/$o T5»AíJh9I'n( Ũ)v1m.`Iz@°˾*10(='e *"^s̐C4Pz: _gNQ?VchSi1q8e ߖ,t>Q,i'Wl1u{[~-Mg"E+bEz=ތC3Zi깽GJM$vmJrѷ \9؅D]'qn'v16ʙdWLSyOAҹB_=&"[}#N#1h18˕񳔇6ELBtkQC $PŘzd,9Ⱦ4 ^TO'~ 7l_i;Tx4e^ep*A-¿M }]O _qu<`w~%>r—ʒ#!Cێi?qlXDmq": ;;+C86s*Ҧ %[̫LAhR&h_7䘝_i/L ٓ P_yMrɽ,SQnbC.f)'TSN_*85K9ɳQƥu{γ[)٢XOp6Z$22Ylzdpg2 tֹP@J* ۭ<ьp {P2ޔDgR':ؒ? qNL4)A{ ".g#͔ƗE$̙L/0d?Z39a$bDm2dFU[BkLA"7+#E-&caQxxr|vWKv/D-ĆNxNTZذ@JIp:uڙ yq+*jhl&YM MHcH 3{-Y"=j5܅ C֨gҩa>#\^ԚMH_K=COn|pvǪw AGLlCF'ôhyA*Xo)?[ƭCwg fQh-՚xa/GXAs  I@J Tcu)_DqfՖvqnf[ Tl f'ic[$Н/3OOL'ɾltN:y&Jq̑NUk'n#6κJ"QE'* ̏% şVK ,~VLźؾ:_%|5=WV7]w+_X&aoTRE)RM[4;ӕ٢耤Kx'HR tN%}tHK_{ЏrK*[I$3yǣvlH G4'WLmcN>i${5I8jq(O %7>Њ2Ȁ;߂j赗 hqh;67NXNN6 ʛGպ YݲV3>t8.Ȏ:IaFHI Gws5=5'0*;wGc!aݐ2iq6نh8 . IZW׉B jrllM873EF~^f7Auq3k[1`]X_o 6ɗ" گu)`D얇O뱥Ԁ?y*~,*6qqK_Q Wz6a|ҤzdKֲ3Zt0 HFc#+5g^.g\藳4㬮J9o?3svhu/0yZ46U+̉l 1WO"'KɩoHc_~EcmҗvĮQ,fKLM8AN1%&g=zVs'Jpvwuf̃,0d/`gx)>> g:/~ "ܖ^ňj~O魝ksRlb`zq}3$˿"ec>㛸5=ܚ-d t\xseJ) a Y`+zp8,)1CB喌S+qN,|@Ɔe8qNɼFXXjrftouvS/sp"(:VC6Uޡ%#247G J!fF{X]1~&thu+nTn dd?@ ,$7 tctnח,Gm@"GG1#y:soU=M['ya^|6"$,!:j#;NnBh-H9%O"$IJHZ68_vUG=np*rXۃ GgG̫h$ai㠸M"Ͷ*.uǤTu\ebFh_>`|l| ,)!i~+3Za!N)jq6ֲ:鲾Lvz9UP|{DE#S5sNiK /W d;7,#Z^#C95Mn׆q@=%2Nlcyv;kB o")6b2 2_h9R,|NgOj)ǣ{W #l٤QjLrBU?_Pg'kxmhP1Kh>bM 5R(7\}>9ٕU*p_oو,t Pv N8HeG ·Z䣞M7mbUVpa\[jȎSD:(,R1ޡ5-^PTlgX wekJ;hOl[cNJ2'%KC!Dw2 Ok\YmTJ~Ծ*=Q;'{{6؞6Y+>'(6lLlD^FHR YX؀yRP=5(.P" y&qHBP/Q߶tbi?84Վ1ܕiHL<ѡцN;\݋`R(W[tjyz䩱vqHt8]q bٶlP\^sG6QY"V5S4)9ȝo/%U8x0*GdžͲ]K>#xp`Cikh_?y41o=؂ );AtU&cOiZՖ սc>u5MLW' bW+57I`JHxCl- f|1#;|t; ?lX_[?\uJuRȑEӇZ5NؑDs];*pxG(ꁥˬygkشԤ$r>Sm(.1ګB[Yߚd_ 5H`TYKL N@ 6X`.; ?"xzp _:yeݚKԨqo-$ytTP`ll*yvS}y6E:eKdn5X rA+ΞBᘁ5{O|Od-ixi+&cbT>'vޓ*RǷ-L#), _;+ FVlryӦױ /~IwrUv1D%t }q dl¯8 d3~=~Mxc Q^yr?_skh!>:Xn8_L~\Z-j Iq8n&l[Ceɚç$|c 7uڵϞ;0oе\yo蹛h9¸cC+?, [FbJ<4MoY$6<Ӣo̝<%M) (l^mW/vBy%n׀sD<֗dѹ!:h$^VpZc՚-ض|@2.9zWxҏLmV&pl3)wBQVOk=a1 *}0Zp`V5V9wP} c&U#Lau"J2S٭Jĸ& 񈂆 TJ6ur;C棑 X^W(fI>Z#MQ|&s\7MBTk$i־?6z}*] Tmo hq&=x+Ĥ$ᣯQ^Xe"^_#;a]T=W:qj&x Ѧ. 9Œ4Ɏ/Ǒ #6Ěu-5/% =^{Ϝ9o1:JL#>sp]= 8&-=FF8f[TFC;/?4JW_D(nzgim῭{AjqٛM}Vؠ~&8E@\/;e4h^ڎ.^{릸 (zĮߙ4zץɳMp2}MFpSͧ_>& ̛urg!RZZb /'[=dv+Ip=}K>=Cet$D&e$P"NHY!wXn6sT5u0]j>;!؊gt2~G?dk7JqlW;lDCʾц."k ?7yXlΕnF~\f< ! -0BF콇:{]$%LZ_3<^ёk '&XYS2d)ZXY5^ahvb:7hW2/,zƉ)A_P7ҼãY/k 6kgZ<љͻ =䅴C%ĩ.orFF~3WIB^, q?ѓ:,(S}rSZ{rIL(Xo ,Dp|x.ԧf3_lއp}xf~]>So|k?L !ޕR{s#ZԽyPZw Ld黤LPbiqh!7?ēJF9^nu7-y狇l/d)"K+cGvKMiBs˛Գ / hoeKs>͒. F+:>GН~Ϫ׳"p:_-r>]5~6Н P$Ntڠd.uZ>Q?0媊U q;W9qXY͝#)PK,b`wӜ?;@2UfO3[I qgSΏۙm}%bQruUAB*ҢTF@YpX.C2 2ڍ=vڡ޹x&T5~ZdPݘ52OR0A櫻gpE8) tXcDjؤLNB 齚*vˬÈᆈ~uº,\t;̆~Me0n۾A^eUkfFJs6F~űăUb<7|Zag f Kj+=,Sn1H1¼z:9bgmYu<*J Rѵ__ys"O{-#wf23,L endstream endobj 111 0 obj << /Type /FontDescriptor /FontName /MBVVSC+CMR12 /Flags 4 /FontBBox [-34 -251 988 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 65 /XHeight 431 /CharSet (/F/a/b/comma/e/one/r/six/two/u/y/zero) /FontFile 110 0 R >> endobj 112 0 obj << /Length1 1454 /Length2 6315 /Length3 0 /Length 7296 /Filter /FlateDecode >> stream xڍxT6"%H]"1L0!%Ҡ4JJ %%Z߷fg_wk׽gp )CPP #$* Z@0(Fe \P4U(@> DDRҲ@ @ ! Py!}a Es}=Nl`>p! 3 [ BLQ`8w1wYoooaZ'c&P4  0AP&9LQ07 8DcC<[`0t"rAp¢J'W"8w0 FpG@z r!(l< Gh(@Xpw Z G(+ ՑUAڟ ƞȟ"QHW08E.b?jBƜ$PFJJR}E~0u6Q4b? /( O?WĢ8BHgP_kl=> V~׿l n2|Bb2!) @TTT -- gF GFm$ &GƆ (>PƾwOix"9?vgO v6Q A%ևBnmƀ3t\HTB(Gk}#8n_6 /vػmo;Y FPLR c]IE 8@D`CXʃWcE:q]/(=@`( ,lၝߺ P`uBc+]1s58@2dWFM0>*?t9S޿r(T4 brΊ]f\ [ߧH46}O[},"q'4yxMSEMovɎ"bDv] xt0mCBA a n4Z)7CĦwO?e7ȒrSo'OƖV)!㰦 GD)9IMmH㤅ȣg|DLNb#n{59|Sn<`5үwHAMabsHagX3BQwxφaKeÅi/{zA?0;߽}2zekY-L Zb8:ivHPJl^JV?(4#.Ow'c@;IzQ~Nk wl-t(qMEi8~){:( U=.ExfQ |[ gE0r v&5mܢ6(#t ٵo?y} {̌\NAO%Urꙛֿ~5ojT gta&,ƤjY*W<]k`_XA6LnjZj+Ӑ~K.=^~䝂`zyu}oS&^&xjČd3Jt#䝮Tt 0ĖnUCB.uD{Hϕ|&=-n(鰹v_wr Iy̺h_׫ l-z\EJ{9ZQiTwxu,{ p6r8+4)EH{_2Ek)JgĚm6܁E|ˢ[ "Ik3"oDh\=>>GOQ9;Q쟓1;xr`-Q=]^|6Lv'$'5ݘK WCyJsԊwF(]qI=nN}T{[GwI/ЭDr6B@Ǹ5&VB;M9䒶3.=pLc%rT)K9fDOs':8"*mEƄc g2ɮ]UAȡƙUa8\oU;ַ%ta5ݠ\ۓmYA#GL"-ۙB*aW}9hL)>ٍWgRgJenwlxͳɸR&5i1 ]0ODּsTU /f߮J)51UgDۥnffb8"/ IF"k]2ݙxy9n@,ii}wr\A%oFX{ia5bj{+!B 3IDi%ƴbފ7:47jHqT I'τME/x7Z-fiV ta̖4~59y$Fe Q~"zEƪ]c" Twocgzr<]CzqEy#U'U?uUdc/f4o| V&ʺp]εD* a@սn*X;ݥ .f MnV:3̿l˽&߾i,҇ jKώ/GgxLj?,BԚR $;p{W;w`|xYuqswҺs*IT,P:4_]v$K *1VJu~N1OPm83.qo =EI6vz/jGM&<hgD"6s7RhԖ0GCr{3p` lÄT\I_a,c|d)6+);VWƹ.&bF4z"iTii1àuުG z"7s;&v km7a_뗳< g Hi0pZOV_;reǖXac 2ܠT9Vv` ET:]P+%f{ǣʬ|7O'n6̚uS$/鍯ة+lewkaBl}yEl ]ןYW|PdM֒QVr$E6՚~ʭVIFrf%1/tn< Oq*Ue\G>FW6=QzWi'Y٣|_qy||^(^xQ4C{'$x<&“cAiFfWWՠnvT )s:;] #L^~Jvm{!`Ib5O_^J5rUnmƫJ^jz8QHr&Egs%5ue׬ژSKZTKﵹB)__~(F~ϳ7d4Oaq#Md6D?x¶:DRϓ E~y_?xWvTxN}/GM7)rZ)>߬&0: p0 PzS-*?-,;\y# X X[@dH,!sbj0t:%؃IO&057ٔ~6Vup-- .yKwP%[2qhL_20ƍ"9 G SUg3_èSPK?E;lyS4E5{Uq}HBv(s\U{SRFX@1y|"nVRUQsq ^s!n5m'Z~V] ]y}&"qM,Q%]ayQw6,_`QQ%yn(bk?c]ۜ >+!c~+窉ޟU ]a˞0Q{jJjuGn4Mp>36wR|B}CWkFr>7iGĆzXT@y?w[f69ۃ0(nf9KJ5Ao!gVbByמ#ꉣ+(yD)u)jlayNJ޶2࠽xQo;lv^57 kYŮy]l,_8>ͻf;:ˉYr̂(rTOT>PHU|_ Zr`û*ҕvnC|7DB"Nύ8=c9xo;J}|PTJf&݌$4?4V<à1 Ѩ#ovқK(.6u{sWb!\NF ÜɆ2aM6Ls~W#9&17齟Λ8qv`;K&A35R) <8cV檵 Hѻ6n>-)i:3XJJ嬩}4l>j|ʢyҪIV=LnNPIw)YGKs L,X}NȦwф]YZ%M5Ok1c篪aU-pEqS/FWMK+H81# hOA1@0)g ( W5{'RU YTN5fձj*&kɀH57\FW n)x3RAҋ9!t3|k[ M`WOOW2d"@XiGiu;XɗA]z{: ]1uEN;&0nqP%CcӎDJ&t, endstream endobj 113 0 obj << /Type /FontDescriptor /FontName /LOWLTO+CMSY10 /Flags 4 /FontBBox [-29 -960 1116 775] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet (/backslash/braceleft/braceright) /FontFile 112 0 R >> endobj 114 0 obj << /Length1 1822 /Length2 13400 /Length3 0 /Length 14549 /Filter /FlateDecode >> stream xڍP$pwwwwHpXkp $xp= ~rޢ =ݳ *2U &1sGS ) `e`feeGҴcGŐpl&7@`gge4q6(1 $* G'OkK+>ft6>>?b@k3 hhfbp4='lbbvtc[@ hd=ҘV֠`w `gmt:]o 9E/_F17$v3`amH+2=?&v Ƿx7k;7ŸG7HL*> F?ҼY\!q>Ik[=Y\[Gw ks?0wubrvvIy3!c\3af򇀦O'|oe}-oA&n@o"$66` v@'h~kGַc/ 3wt(i3]o&.;+yہTU+#"޺B ڿ׆ ʎo 3\fo?/!f,O$jg/o;E`Q/}8,7?MAgz _ha/ہ,]]F- ÿ[:B7G_tNf݀dz޶n 6o9[.sOf?!-9 U3cDBّ"pS ȋZٍ:b/~mc5\I[k0fz8)*tt|0p0;>~%:M|k6@FGm)iu"ZÃUaEHA9>FQ$̘iVW]U25H"SRb5b0QGao;GyӋ:qc^2iPPW,|F_9s, jʘߒH254GDQ)IN9Pښ驟(Sȗ$&~r>YhM8ܜ#Bx pip7=Bo׋>ϱhg9lמK&m& ":8fCAlìCKe;m`Y|IJCSw.;z9^ 䤴q%"2Pd;p' 1̓YAnv#ߵ^9u)GH2<_떎vβ4q‘PhI5Kb*ve|8-D#NR\DGIɎ1d~E6>E8E;<1@Y]Z"z /@ WK!a򴹶8 G!|y _\3vp'4?Xq WZg%ȴ%6yg]z 2L-J+ ƿQ"~RkR;ױXm2[ZU!rMk+8`vt TwPv 1q3vȬ O6eD $Շ'{{Ҧ:7jv*r=G?\Qz G"GAddg!?@ǹ/!S6]])↏#?MwFRc E%)4μJ~*(΁?`.L<sעV7Ȣ=k^Y"[yC@$w~B,w!v]mETaԁ$1BϯԲ-a -d,1Ҵ,RYvK3$pՔ DЊٰsG#}3`b~cdZEv^:> XWV/q nAbU 8`nm۫"ɨż CEޟƆ5ڻЌye)TcqYÃ)Ivf6- ~=!;v63x,zozl֮q1h!Δ^&HgՄw_ONB0[BB0q/S fb.1.ˆ֗Gyﴸ>6M"wM\7_Dc6BJ=HAuޚ58䪯u݄;yZkrj;_#_Q2䵹c6SO\Gxt)_:U[vt޴\{0RL --uQ+b+;y5{:FlTl֓Ē{B|njJVfae C䰏>Jݐ^;7 =<±1r=Zb ;]57a.%/-5Ʋ5ƢGĹֽ%@vCUm D݅x} [T"0ܰnZ5:@}$]/=#X+QG:@W, r#O-SE$f9{W+7~y@ $+4ERdfdz՗W\[E5Nj)S2fc7'>EPϊ8nbV\9|¼Gbl#whU9*(bn""Q -PMڶ !;7ӵhšjE eTni5~2y^Hheu"rŜ~œ"e}-XsAQ#Պ3M`1./ iRuK|B}~HQͦYRdp\9DlTYmxw"{F%;`ooB 9Ojb ]]wSBag슜EPѼ8!ge߶n ===i6z<\6?7chV}fu3[SF*]IB"di aX߳u/ׄLGpIi‰u9T.0:Ŵo^bLk_u _@H}wϕ=U7]h9{O.\.?8v_N|XSz}b8:(nI)(vt'i}y7[F$z9}'R'QFOnb9QP0rZ}A ;B +؝iև]S`~ M)QzBP@SV+edd$l<=#3ཷ!*ODrdƖDlۮW# o;&|^:qs*X]t}8v:*g;D;JC:52N"d7֏x֡Z[^Q!*F4$(ɣNeRWmO0$fq3,+v+Vp"踋]>:2qȺaԴ h|# Lk"-t|~ZCo-/ TBUwLZ LW2gPU`g1VtzI:l݊LOϧ# -|ů_t0nECV+M rx32 F{1埭WMf&U o=快wBBCP ZH TL9| 8ͷMvup&9J /C>5i:X"<-l*X#=N%ejKE6e/%yfZ:?tĶ]$f Z\Ap|;KSD*~?gi>A23d湔vsŁ|S̨5g5A8EaRd/4@;93]{&cBw\ V}L4X(4b/=E@r5|$Uk#=nn *Ҩuʌ@@/6j{. p!v ̍MIZT:z5v]_R5v,]} >r9Vc(R9\A|x H*%[g! >4 %[&T׉<-(P @nɼS\^:%p$F k ,>^=':Ine"E7#+&Id 됒]?J<mLu*<DZ]E%قE۳.{Lf>/)(ZF_~PPv] |?$s<${"R{8 1%SdG)dYm? Hc34C#`J+3zwmmXnޅs.Qek7|b4OGq/lX0;t0N[;zEOkQzߣ.nw)L 0Jzr'йብgKCץCn`JAeY{_䯦΋ivbuDi=0 _e!!]^ ƿ\Jn"Mçd$  ֬Ua\H:AK>Yک 5^P̩g< :0R]E\ښ1lrlFSbƆ>Qv%n96Za(nu#)ųCe"708Bf6Vƕ qYG&\'iVvؽ `$:9'| ^qa Q N&\\ZIlU7ܽZAzW6!)6;h l:FCquœjD RCG}|M Raq^lG5wXd6:,A}u ײu`{a y\|,$#HaW5H7EQ ByʾuBŇ[S#uawpyic9I(2a@p ~]=y-<=+ͷ,BX]}lLzjnǂW_b8E Dl9XgaH52shCxJrj(p> k5 g Y!:y'JXfKljh?VwqӁuSG|n`|rPhj0[fᢙ%b_oG(S|d4t=}m/9},ߏәh-p)> ڎ-YwZ$sТ(S䁽Z>z}UWe}o|U.h7t5aRuM "~}àOdo$=^YIȝt;;6mXVq`T})dX4|gz9W@O%ƠDaND 'H Í~vY>!:iʐ*A?){l%Ub[:]a`̦.#uC ɳ(e丞7B?XKq^r~G  Dg;~ T IO#ߕhvW >EeEr$7N=Ut=m˱.I@b R2zxϫpi}{KB q [Jnq́xĽ~w-@IN yzX[dg>ԕnm(ÀftisQhڻΞg%rd 6?՟ƕE|'?_Thz<{ CpX5tPN!h́2d*: CxgζOC) _%62$c-tcRJ[QQ 1  @/G3j?Zńgh%ܓH톚9fY̊j Ni E\ϊ!u>Anv!ϐ;*~njfH eh-p)z_ʈ(F7k=(•-bw8wqZHE#Dz$3P [2"|4F dl+^3S PGt]Pr}N^_`:qu{C OөF[ pSܔiXRqOnꋲPSgi7 eEб Bo 2m.ڎ}t*>;r~L:(^^(Z0> vk)0sa] }Jꉮeu(@x-ԛME:2vQF]s|?2"d5=^u@3jiLn$^rp-Yj%%+2k|!khY|snLJm9 $`,i,l?K~ x\rgJٜ>%:rmo6[o3qZ׋-n[nYBmo~5/C[l0g5CrQ3NI.\>oq!ÊHPZk?0g p K'ăo/a5>El.eS(2to9,u 0iXI2g..rxX*OߘSǪ3$K=5|h jkP>F~ NÁy%p*ȟh%ήsPH AI3H\u\cjHXc@𵸎Uє[S|yyG gLN~̦LX,lACWrR#'mM̲< / ?Jb%#`uQ݃?yRζs8f4>knf9ga(ZwEr>LJ^z7-7®Y>Y͍2cbkw`Mmf: HMmm-RwA[#O&\T2 gJ\}͐ߓ{7Asr˸&A|EE㮎LT&)A͐}0T%Bol#>oަA-U| <?Y o:Ŧ]8*gi/@< 0 _-=o?2#y)sB,Q8:tjH lVk'_{mFT _i9-V6wnnŬ^L9X]#ikKdfs~u|R:qKоso:Ѭ+6u¼&JfA^ṘEڧ 1\ ̄[u%!ACoLdAsXFdL&lLA|d̀䰛ݼu>_aGN?1G Է 1 WTH)בiLM|X^d7mKQYC>箉ZݒU8^D#trwVw0pmO_w?
  1. AǩixdI2ӹNG]~t7%V*OwZzUm2Ӭ349wӜ]f ~qsPcNOnpiS Pak f@ c*^~Q~'bIA"H[LR}($\-n8136XsK6vbײg!IR%l,s}SȀousBi{EJfka!QtZy>RP-K?"BuzV! 'dkꁳ~U.pc&p]|ߕX 6b~^vL LJӗ}qE%bœb uc5a~'7ӯ˫pQ-!oX% H5FX:֋,%c5%F(d06$.'pOTCd,:ƃZBs)9Q툤g14 G!l}4cS >p^ד<0V+zēNO6A'xY!za`j`sYcŏ/NLn=)M3]S`>'@6p9Ge%T^;3t<ۙFS]Upo,%n-`kJ Y"ZSQܙ}8(Oqnza kmJA&JڊBZ_C7ӏޅ.(}(a VLyxjFcP; QGU_)``R2=qί_SȤ f {h,7),s,32heֶ(Bs?5]Kk67,#ET{KJ(O,TΌ.u\Ea(]a{H7JfN:+U3VGn4-T%,@5HrToق[U@ZiQ$Q7s)<=LJ&i#M'9:@,Ӹnɂ\^165\g}"A\n ,d.z_aalIk BZ*ḿXԅQtj^qѥ[~I5?ȥ493꩸j\sENe|9OPeB6c?6V+H1r.nt/2:bӱ4! [̙99َFr{&—&"Tv4Ϊϙ&2 {b.&GviDi>Q$Zo*!omhtv~,W G%usmͮ,s=wSF:Yd5y tmeԪ¯+ ^ ѦR9LQڊ-+USJ<.SʥhZ"5PO0˹Dy0#\js|,;?lw@{ w:6Lb)/i_ޚ]2YPfnf-bfYɨ ajV$e$vbчPV^[%]AgAj%3]7Ԏt﷞o/w!ȹ*wȬ3\x(]5lgHcDC, ؎mD yho}4zjtf5sp(qe FoL(ڿjrS!n`F5Bgąe_v\VPAZ!~5^4Ivq85u&W1vRx-ެ\5_} Jn4mfB;l: |fvc@k`Cg isa}AԫŮx:#3mMC{%c s}<$uCԃ\R<"IoM+s,d7`ӗRA mx1ǽJ,oZ\3[}nGU,N-א5T0+_O8((<, ̞RȆ((< hɜMPzO6 !(gpR[RJV-IS1C;=6&f={7 w2$2zkxz6}s Aƃ@fb%;uHq fn>C46B<3DpfP+ҿzVa" |M y|βCQ ~酩!" lw?4Ӥ z9*f"L['=b,r835[$ZR_%odLQqzF{{k'ꠡ~NEqr W1z/kYI',MT bLwZq$95:jߊ}:5x1x;pQyvѭ5LSv¿ő 4Jg:n#& op!Rc2rhq xV)DPq"isn{D|2sƺHta­j?}[Wq"{Ժu01CbW؆T*!\ӨoϲLk ɔeXnL,$'<,ZN&_wO ǚ]M . >*ewPRs~/ykдf? endstream endobj 115 0 obj << /Type /FontDescriptor /FontName /XJHGMV+CMTI10 /Flags 4 /FontBBox [-35 -250 1124 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 68 /XHeight 431 /CharSet (/D/E/H/M/R/S/W/X/a/b/c/d/e/five/four/g/n/o/one/p/r/s/seven/six/t/three/u/z/zero) /FontFile 114 0 R >> endobj 116 0 obj << /Length1 2596 /Length2 18220 /Length3 0 /Length 19726 /Filter /FlateDecode >> stream xڌPwwwݭ{q-݋[qדګ3Lf<+* l"r**LFFzFFf22 gkdj@G' ;[?$D 3HP b `b0s3qp32+h 5t0lNd"vf ? 40qqq:Z ́6 Ɔe;c 5wvf`pss7qs4㧢Y8N@GW ௔6RG [8lgf@[' P(m#,Z?03k Ylhllgcohaak0eݝi& Z;ف ] - @n0eO~NƎNNPlMDllN'j4݃ZڹzZؚ= PJ 7 `cddda@wcsxf2Eeog00> ]gGןELL cguh 꿣;@4~Lƿ^~Mo[̠,!'AO2^t:f VMU4'?IٚvMgiA4@adc41^UM_V_F$bm7??|C k$@ 9;~_QuYhbbRΆ 5N@E gc'mY*9YuotLZ9c+Mq5oQQcfc::z 0拙 Qߣ `s@Lj);A/;A70F\#A7b0HF +Ȋo `q~#dF꿈 d_ihcʿL̠0 -@յ6Kge jo FH 6r44ZM Ck?d+sK? @!YLX_, Y[30.hf/ ha[6b۹$b{؛m,,n[A;(c67T6t ~bٲm\ۺu t~ i(il{ : a=Gefa~r08hbGkX!:Y}r~낤h(b ]hH 7Pg@tLnv(lA]s ʀ @P= t9.j;]@cE;c`Z!<7I9=4*:eGdM[^Ե]1FذOmOJ3{mߧNT_ [\8Q ߻K7 .}گaA|.V ('7^@LGG~nv=wH:4Kk9asR٩G a4WYI&R#=XOnmY)tlFke.qR>$=e{z4nn JiL\ca=n4OndN~Oi{j#`5 9`_sv{Yf~!곜:swW;sAA-JN(+HM{V6#0x*qUzW֟Zi2OnnMIS%RlFD?0+!P#h9rGe? JT δOȅ?}4?3֜!!ɦɰ˫U?XtX6'6Q=6I-zpw&s{+py,2,ѫ^3t/ 'xu,)K\֭65ףc}&>n(@\T;~,iu -D3~ofђ^e2:oeLiv?Z~-vdNy־fu*828{S/FnovܣlcNsiR%!ZyH,[5r5!/悋~ .8q_)bA,5'Ez(QP}M% B68ae<OѬ .ڧn})9{ӳ#)+QYߌ_ HL "H!H!PI.P|V9re P^u$423mW ע3K ThT83c* `ḪkGuwq-LIbS3L8}zJ)tW%XzYOQLfnw %yX+vtj97o_ sԤh.;f 7㳵dXY48scB~?d7ʕ ˊV3t1qdeS)Y}%!%ח؅1W}e`& NdxB\tkzPA=gZ%0'oqU( ^3i 3ՇxֳmiԖF=G 2>詠 *"W))e@հp}M#0$|Bz6Du,P]JNO *< QC0i.X*oB$mYs9?ڌ!X#erM# ;9d \,-EyZnCe f%Av-=,h ?q,z>;Mܫ'@2ejUR 9:fFn;HN*I`UݐF#ĺ~nmoE_`(z `zTTb*l%?|-@H3@_] H]ZPڇoPAUh2V|S횩,c8UxVA 3 ? 3M/rj1!U.9@uGy]0|/6o9":dǚhh݁6EX{9 //o{/q 2AR)1nzͥ"~,]#@mۋ=j?i'o;2Tj!3`S6T"P&1_l\#){7nI$ᢴ%86 OVM0 JH*r+>G@ R_5J:ņNu˘eCء.̩81 QMnS[Û.Qx"!5=;6II1}y7,,v8^H;Y് /{*.Zׯ.}(wG&jb6M">iWFilRzM~>LnM"N 5Ν~^^[X?iDB܆1f߬q'Ҙc"FkICrHط%@2slNF7ͩREO -CO]o<]#- WQNacqbWZM>iPVX↎:JFEWBםVrȴ43ʑL4F9§H%+w*;t]K0uanmjިtLTYyZ$+L;r>bx|kuD3ZIJ "{DA,t6q*4ږQ&;[pI0oRkI5̽7e.XeOP*Q2Ls):wp9o>ϧI ɜKsJ:^.oژxDMdG-,=!: DMǯSW/yUV W ]՛+4@܅i/r jTi)z`˥/5.29Oz^`L>J2a kxO2iT:Ըyz.ױ7<5MFf/@yRA0_mAi+f sj5rJ e_K~utҞCMf NWwdSqGt͙ॹF/x^8-'FMsVFp`zK&#hJh> v +)*ZYީ%!o;O*'(fXުxQ0 N ! @3&|hLhC^xM27 @wlg]J\y0,OI:pah8nbb*4)Z@9UjsfODgUfIzW)'օ5> wv^܏4v +>@{H ߕ]+`=D_zY5UPӠ`V`|TU &s+ L13rK_/4Ji򙩄Q6wj+<?}IU^R3&:=H RXl 7>]^7^ \RHCw,LB9ɘ/>4C0X\r:IkڻñwؕW 3 w#=y-GѱDoI+>h- c?X(vhTB7\ 0d $]8s0.yg46 }nZ_{0IEg-"A$w`O[<,Bۚߕ%GӤKs|0ȲJ.x0s6[Ī HryϢ!4 (tL"e|p> QJ;jl`ZD)@d:y<&1?us j+<1R@pM_v@4v5Ɨc^rEIH&xHda P'AoJxؖA$툱_C!jZp wEiV`-'h˱^.%~YWsմǷh CHo+☎,O/S%WH_o2"tL/R"yQCad&?!~$ڷxp3 *&`Dv{˽]$DɎh.;FM{0"ZVL̔l/>GA`u'=0_)O;L2&Uu?-~q(6՗ٕǏE]sM7 qGںEhVkNSd=t;4M$߬\V7efNe +n.O{6P]64^y#s: 8-(a8ͺc)q!b~R<ߖ{B$$p:@ s(6b bQkY?O2^Ym6\,ښwlRǯ }b:)^>wPҦLfSyz.W2)XWMaȥ:tiؤ̸r(B\v*w -!7Uv 7ء[Ir*&9y "hH>lGzLA22_}jl[eeXxOjGg* =r 4eOyۀ_3rևKџ4 Ɵi=431v m5z\1|Y`ӋD!b"PShhbAxW5֪V41KMG!{ABrKx Fٌ~$> R b6~&0_nV,MID_*/' 03z"o`T kXwntsٓRYϒIΣll*:G06 PgjN*fdTj)KH`j9(M)U o i F4=.+Jbܽ@F4<eZ7}o4x'Ock]+څ:+$rN9Ro;R+QF74rАPmXq?Ơνz _̀v "e&X6*J ){#Dn f6Ӥe(<\=̂.nJ`Ч, ; ˿/ \u05iE٬;s"Th6!VOlzbI" *# fiLؤȽȊ7I5q#_#8 ז'M&H +k"k oG-'zjۜ"wM؟n5 n$y[ɩ9˒pD'ޏ7-gSc^Je7cgu5 @ |B\날piSϒMV6 .\iʡ<$ J@rܻꆞ 0]b+)yL-:(Ea0(f^ωgHb+-›5y[.Ng:kU4%s.rn`L ?KNYJپBsWދ h4y).jP]Yz& UvQGScS'~'B)?Es݅*v Tqȋ9INBٹ*\|[V֦τ%J4k1WrY#Ds 9o v(QnrC0*x 3! j?py `7cqz#x9`$`pTV( t:^7X䓇BQDxK+݀:>.l\M@3q|I,}ʥ6Qe=*p>S]sd.ֽ7"4fH{ܫ*8Aթ)Vp ëݦS%eedl?sZ2 M~N>fg ohL`< A*{+Iڲ=0tPa@Zs^LfD8}X8Wfw Ab{p "O eSWiM-GԻn0UP !#F9~-s 'FPE~<.<3dBےΣZ%qR4tlA61"  P,*[^ OX6?. oX1Jq9T?ob5kvƎIUQ5PdUBw|Oen ά0L]8JB|/LݚŠh„_^GYOй% ~՗t>M^:vz/a`N85?w?~YrA5?77 d|3 ˥U}p#-+> rPR/Ͻ6% s 0Tވl "jpM{N8'kupUaeC#X~Q27!XS왴 5+H_R8Q5è=/ҡ)D\^cb00 ~X#W.u|J7nQ{u-e N"a5}Qop>",x1G;9ʇ^;q!<9k *v^6,qŦ;e|XZ޾}ի'[jS ("ӎ6nNwNך%AkĦVŃӪ~ΧIr|Vp{27Dlۣ}ESV2}`RȆ h5_.W ڂFp$bwKhk|0G3jrn.|龧Yu`) /y'cbO݃Yy~jCr]!#{+q*@ћQ`;CɼLJiiMҒ-zݾ]z+9$+mvQ 6㛰w]ީ?OĨNr3 !u_P1_{pkcю^JPx92qXGt K=*kbf XtsɧWrc3sV5^T'q+K%0-RsUչu4|]XA hi3Mx߯]}Gdkk5Mm/y1u_\ށO JEd<E{ؼr Ka(A34%:8zD wFCuREtNz}ՎGp> % p j%jޯ)ClQa'c#3zHLթ*}ZrE%{h;BaIcoy¶V瓱E#Pkώשr.#8gOs;(0z]~|)ݳ(e+o|8Msi\Zey@2{R`9PsX)aBi>I=r MLO&e2w߬Ots>?ʆ 7P6C%Q/!D!/údbx52+ѻS柢fĒ2sI{V\S5V ISt!~EoqFMQ%;s8TQ*vV1 krM!ߖFm SmJ0Lװr+;'(*#HV&2?32wNtve0\xng;-jz)sE *{݄S/#}"q.S 7/f"\Sez~sNhn+vXўt"kM!9.AO=KeQWA:fQ!v?ww0OB[m3ZǻS`g. |F?JɌBSMx!B6ퟵH0 'vFP608a"f:P0/jI]y3*< v,k@e}Am`ؔ@+thD28u33/]hMI jK%K.lPRm,ZA*ikȯWhFhOleLeF=>7d}F4eE(ls3Ʌʈb öR@۞:cbsGE yMu[#xyQ̍_J(Q-VPYM} ven4El0Nr"!}*Ј l B(r>SyH '(.+X _~2Rhy:xRsTнӫ SRAꇁ?(VH>&z·zPx^_5?!95vRGʵ sZo}:GK)AhzD8CQ+8 .p#PRJ  6`~$Nij}-*L"1 %?UՁ*e!ձh]l8SKy:R:)嵥Z*儨AE :%Xrm~'N.^J+uM`t2wonDGu"Zu'fEYO,m7Gn }/ggsw~ 9X`b`u\ҙ^ O /2-Aހ<綾n:)|xA '-`HG\94[7 W^E,'XQ7V ϴd=)BVf)I~$ӒFpD 0$mGTi O?dp?W%l>sH38%ǧBC-Ro\\%M=h? _!ZIRHmc {JI_AVq5`57BcsbH^Œ'W^eLBI0 W0_YŊI2XYT8#-I*Qp6 h `Pn*Ur\ƾJ? ͫW] Ar;PL`R)G¸^>R(-T\8dmLuvsUDi_6,ÝEs g ?a->.NM8d2&ʱ7Mٽ>O%q|j!R Ow-8q,!5q mXۚE0TܾmTF Yq G$hoݶzŌ{n\ A;]fK*ˏv[MYC;9 x+?CǑUA1[PZ8WeSGrTc^,}r(my paxX`ZOʱ#b0lV(`U$.@/.YP(57sUu1Ɨ?i!_bO0_(;7,K-t8d)RzIBt2$45;|UD \z%>ctcan0QIޡETF?aCRi$B O2VYd?JEC!^!>!w㈄ *sVh)q1E %ItP: F}-LEH]I10Ppn62eJ?lOvfl VΩ=-Ejz7=RU-J }ʙc>k׆ViF57qQ3n~gvswG:HaƎf50)Q3Svma/;>$U aY-lxR~{B^0q,-b)TK@Q !+UXWT/|QUPَ׎%vCESp 138BIz?/1bs{%q.:0?  ƽp"x/GJ`l)AdDiӡM.6(]g/=)#\.UK)ܸӌ?jո_"C21t_o =/BƱ%]*a}D8:{{~,)9/;K|twz2a;4 h40`Kw'ri5@{b7bQ޳|I}`(}Y=,O *հ!_/g;l~0/]nHCwz۳n r"/Dsvlg  Bw]>p7`))|,!(g2?9 Ij3]I u-J#e'Rp5tsOQӒ틸Hz8) tjBa~PNl4k]1Texj%97MFn ̡,X}B0s,m:2l[o7 ڢGFP ߨd%K!>~ܽA=Kվ]#ԅ)ԖᘯBŜ;hR?.B`Ӷ*2껪F CB1U炑B-<U#y.XFʘǗf SL v#wLdDh7)oM00f<,w\Jx7as* 4 &RoArR% 1`5)7k.r_6gMli-YY߉xk^݌<1V3!FŏC%4cM¤"dţ=bhIÙZdž/knصdg+2 M'L2ĮXU;1 Veעiac~& a7 tT{8Vp&T| ٯ>Q-BFZ/KӎЮŠxIXnDèʬP=uX㫶=FoDvT|d$ƒ_sS)狉^v'`‰B1~01=Vh(eWO4 [27=?` = rGÏvyݹRK _,z{fa6**:zʞ4,ͯ O8,,@2},i}G^D:Cq2'G VK-G;ziw&u3:WL*ֻv3Pr㑔_sYCk钴W" opUݞnG߂ Zs.)o~p\McZ7ob.αTδzZ^ߊ# ?ţG'REZ> Ro8]j\KՔ`qv e(OK?fV:'R5Z9=u`d[*:%pi 9Tk/i 'jbu8͓xSPۢ{`(dI@,*oc̼#5}qeep}seA'öbywۦOXSS5fGL xl8vt.oM(NEM|S:{rnkq5|̝ahDLk(U εPiy][j1pK&t* 53??!`;NPuLVX7Y|j0ʱ4˘2BYT #|s1G0/A _>H6V (9ة0|Aq_i'U͓Gg `"}xL|{vΓ}Qj з_YLWA!H綔IS\I]76ݯ< )u g_}@+4BS1z;ȥ{~iq'v bZ6n#v)l;lr඼ڈk6NuBO:n~Bc E-j~V6WFc 9. eM~,n9S%M 7p4A`fdSqn6_SX1/0/+ks-o0zl@ m Zlho#f;0휤m"t+!s1`m"wc$&F@>@xg%yZOZ;Q sRA$=[s'UC0_G]Cٮ'xLֈ̈́60`{:QKʶ_ʵHYEz?`\QtFG?,~RFv^~L фr0-AR|щp%w(7Π\J2s-׆54!"bIwhB08ߖCtN(w䋁t--{Ugl ҀX;i% 40*COյg]El^ٚէlL!O`@cP7 [PS{ި6:.W|u؝ %W}g$;7B;q)^秚ݷ;&75sfhR9L`Q+\dJI,ѧ+!^#\jm}ٕ#0)kƒ]Wg Cb/vsUQ($";zbFjBF8}v_sAt֦f*}l?W:w\.}D/;G'?)$L# ԛV[*ǽ|l[b+.-]4A+Z~\8LF'Sݪjdg߫~Vڔy[&]>A:1We[05\i`oWu4 kS";plc#i):.3oEh#}b5+DU1riU%<3ijgWTn!!2X^. +Lu`%P^ՑaTPɕː-8V|y염=R혯==|ބ{TC6k6?շ&tpj)\ vZc.62 q]IU  2+ϪOiyXHI kFI64IYWXA!b&wx noaeUpQ7#+!eRaSrl_=O>m;t乏֨*5% /O6pe!ꌄBb /|%'36>M/,\v̡pt!)YcۀgPr,jZӸ0qn{ @9\[_M@4fw ĠhS@+?o{ww:OV>[E6Z1k}a1יX>,kN;df :"u 3mJMDN&%gWn;_l/n$HWЪ6ߎ "(°7ҥ(]q1ogYGLhrx (HysPe(3& 5f1!&SD*w0\$y t > endobj 118 0 obj << /Length1 1508 /Length2 2471 /Length3 0 /Length 3423 /Filter /FlateDecode >> stream xڍT 8TMH-lɘ.ʞؗnfB5[}zm(R -Ky~g=|9|Ε$ء4И38%``ioXGCL*ݏq k0D&3$2% XT ԴpZX,b5it-K% 7yz1>_y.tDK" A:TF@fo%䵽L_- & @P=R ` 2@?HV(VDpJv4 3HAH @RX0Hwo`oE`rGBL$h>D8= Dkc %f S  ʠ!D"D%z գc=0\ !_&CQW8bV l h>> dVgArAzô8E`2eq!?hjA\>O bX ee@f}/ĭ4_C! D`Y`h-!=!:)ldt(8E+oi05'|u{}'Ski@0**^PTBw^Z;g=SB4Q@; 5]ȯ-.V4D SX+)Od̢RW'NAkD,&4d?Col !ϿL"!z'EB c($ &kU1ǀTB0H1 a!+GF) dX!٨;$yejN'@0Q2*mӘH (4:jejbŵjiOKxp(1/*~10C_L U72$Տ $4Ҟ#őw?G[*|syFD_Dh/W΍һ>8 ϯe"XoX-ﮣx +<۬aԸVɞ"嶍m*͎vOז-Min)%^44y9"ҫn鵵WJ3t[^n<:T*_L5Oܛ<^&f~&3Rgm9^>bnd1!>OEb?W&e-N/[38at=Qs s;5 f-?ZᒌLK9ӓqU(|`bm-Lɒ3^Dҥtθk.=h2P7l#]WaoP̽Ԍݳ'nɔ8ړ8Y¼;>昢ν5JĊ*&9%-K2 Ӝ O=ֽTQ?#yBK X8[sMx a1{(|  *1cק9ίA.ZۦVRՖscH_e< !A,".|σWCp{;[N]&d;n~95aLTL.Wia,W $F*rk1fPVAQǧ/]hθCײPRpm~qɺlK *u>G1^mI鮱EF᝶ qUzn({`&U+!fd&]2iIs^Ijc uL\+m6KrMf+Ϋͷ܃z#d\\3A%ϱy5Js]|2W.629JMtˉdn{בɑQʮRpbӷ8_ :i,۶uFߋ4L >ih:d 1ɸ6eQ_[)Z\l 7yCMZخnwʮ3^l O8HbR,4MƘ:q=(sY,Dz̅A`exHWf6:pqMS\O8綖_ZΆa @͇WvMxYcq=eާRBE7^Y& vXbwh~!H ޚY*N#X+vbQ}^ߡ?3<P($)TO.1<&wDiukhwiuC;E9%[,n뉴#ңBLo6za32؋E[0$pbLKXq1~S1ELf^M|SI\bn£}fuVT?b\Iq.U,_ 6o=Vh;6Em:N9KO#$šIffQb;Cϳ9R':%/wc-]۶ϛ_8\ KQRzo!<nrǟ9ڴ2"ECgq~N;{(~ zsL]F0>*QN8JSA=135 lԯ0 xcI.9GpB7,TƓ`eU|$F:NeyOc`Ev;Wn;vUKhS7VFx n 0}Z?I ڱ嫧ڟhGZzl 3gW7a~G`rɩe.c G-Yj(# CmC- ʼ)h,d(; Yp*-=ErŠmu3Jd^`-<z4`pXnGru)BD?g/;}8pelZW<35#'u%r̷nM.sE YY/[Ԭ Zn`drPՙQ$/|Dm$kY~NkQj=Nxt+⡺gW:F=OF^窷oYozwGN{3_t޼{*Q<c^Hh4)9O*#ʉEC]AwrN[K ǾJu mM%D\(cژ/LU;9+CrέM.mro(;$=W\E77襟;&_A/k`^j|'Ԁj޾Mgsqt3zħj]}[ܴ' endstream endobj 119 0 obj << /Type /FontDescriptor /FontName /TBUWIA+CMTT12 /Flags 4 /FontBBox [-1 -234 524 695] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle 0 /StemV 65 /XHeight 431 /CharSet (/L/a/b/e/i/l/s/t/x) /FontFile 118 0 R >> endobj 30 0 obj << /Type /Font /Subtype /Type1 /BaseFont /DFFIYV+CMBX10 /FontDescriptor 103 0 R /FirstChar 49 /LastChar 121 /Widths 98 0 R >> endobj 27 0 obj << /Type /Font /Subtype /Type1 /BaseFont /DDZWQP+CMBX12 /FontDescriptor 105 0 R /FirstChar 46 /LastChar 121 /Widths 101 0 R >> endobj 38 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZDVIKW+CMITT10 /FontDescriptor 107 0 R /FirstChar 35 /LastChar 122 /Widths 95 0 R >> endobj 31 0 obj << /Type /Font /Subtype /Type1 /BaseFont /FZKSWP+CMR10 /FontDescriptor 109 0 R /FirstChar 11 /LastChar 122 /Widths 97 0 R >> endobj 29 0 obj << /Type /Font /Subtype /Type1 /BaseFont /MBVVSC+CMR12 /FontDescriptor 111 0 R /FirstChar 44 /LastChar 121 /Widths 99 0 R >> endobj 64 0 obj << /Type /Font /Subtype /Type1 /BaseFont /LOWLTO+CMSY10 /FontDescriptor 113 0 R /FirstChar 102 /LastChar 110 /Widths 94 0 R >> endobj 65 0 obj << /Type /Font /Subtype /Type1 /BaseFont /XJHGMV+CMTI10 /FontDescriptor 115 0 R /FirstChar 48 /LastChar 122 /Widths 93 0 R >> endobj 37 0 obj << /Type /Font /Subtype /Type1 /BaseFont /SJXMDX+CMTT10 /FontDescriptor 117 0 R /FirstChar 13 /LastChar 126 /Widths 96 0 R >> endobj 28 0 obj << /Type /Font /Subtype /Type1 /BaseFont /TBUWIA+CMTT12 /FontDescriptor 119 0 R /FirstChar 76 /LastChar 120 /Widths 100 0 R >> endobj 32 0 obj << /Type /Pages /Count 6 /Parent 120 0 R /Kids [18 0 R 34 0 R 40 0 R 44 0 R 48 0 R 52 0 R] >> endobj 59 0 obj << /Type /Pages /Count 6 /Parent 120 0 R /Kids [56 0 R 61 0 R 68 0 R 72 0 R 76 0 R 81 0 R] >> endobj 88 0 obj << /Type /Pages /Count 2 /Parent 120 0 R /Kids [85 0 R 90 0 R] >> endobj 120 0 obj << /Type /Pages /Count 14 /Kids [32 0 R 59 0 R 88 0 R] >> endobj 121 0 obj << /Type /Outlines /First 3 0 R /Last 15 0 R /Count 4 >> endobj 15 0 obj << /Title 16 0 R /A 13 0 R /Parent 121 0 R /Prev 11 0 R >> endobj 11 0 obj << /Title 12 0 R /A 9 0 R /Parent 121 0 R /Prev 7 0 R /Next 15 0 R >> endobj 7 0 obj << /Title 8 0 R /A 5 0 R /Parent 121 0 R /Prev 3 0 R /Next 11 0 R >> endobj 3 0 obj << /Title 4 0 R /A 1 0 R /Parent 121 0 R /Next 7 0 R >> endobj 122 0 obj << /Names [(Doc-Start) 26 0 R (page.1) 25 0 R (page.10) 74 0 R (page.11) 78 0 R (page.12) 83 0 R (page.13) 87 0 R] /Limits [(Doc-Start) (page.13)] >> endobj 123 0 obj << /Names [(page.14) 92 0 R (page.2) 36 0 R (page.3) 42 0 R (page.4) 46 0 R (page.5) 50 0 R (page.6) 54 0 R] /Limits [(page.14) (page.6)] >> endobj 124 0 obj << /Names [(page.7) 58 0 R (page.8) 63 0 R (page.9) 70 0 R (section.1) 2 0 R (section.2) 6 0 R (section.3) 10 0 R] /Limits [(page.7) (section.3)] >> endobj 125 0 obj << /Names [(section.4) 14 0 R (table.1) 66 0 R (table.2) 79 0 R] /Limits [(section.4) (table.2)] >> endobj 126 0 obj << /Kids [122 0 R 123 0 R 124 0 R 125 0 R] /Limits [(Doc-Start) (table.2)] >> endobj 127 0 obj << /Dests 126 0 R >> endobj 128 0 obj << /Type /Catalog /Pages 120 0 R /Outlines 121 0 R /Names 127 0 R /PageMode/UseOutlines /OpenAction 17 0 R >> endobj 129 0 obj << /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.14)/Keywords() /CreationDate (D:20160202155759+13'00') /ModDate (D:20160202155759+13'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 130 0000000000 65535 f 0000000015 00000 n 0000003560 00000 n 0000142218 00000 n 0000000060 00000 n 0000000090 00000 n 0000010490 00000 n 0000142134 00000 n 0000000135 00000 n 0000000172 00000 n 0000014501 00000 n 0000142048 00000 n 0000000217 00000 n 0000000257 00000 n 0000020052 00000 n 0000141973 00000 n 0000000303 00000 n 0000000329 00000 n 0000000815 00000 n 0000000970 00000 n 0000001120 00000 n 0000001270 00000 n 0000001420 00000 n 0000001687 00000 n 0000000377 00000 n 0000001570 00000 n 0000001629 00000 n 0000140384 00000 n 0000141379 00000 n 0000140811 00000 n 0000140242 00000 n 0000140670 00000 n 0000141522 00000 n 0000003617 00000 n 0000003386 00000 n 0000001804 00000 n 0000003501 00000 n 0000141237 00000 n 0000140527 00000 n 0000005092 00000 n 0000004918 00000 n 0000003734 00000 n 0000005033 00000 n 0000006393 00000 n 0000006219 00000 n 0000005173 00000 n 0000006334 00000 n 0000007689 00000 n 0000007515 00000 n 0000006474 00000 n 0000007630 00000 n 0000008821 00000 n 0000008647 00000 n 0000007770 00000 n 0000008762 00000 n 0000010547 00000 n 0000010316 00000 n 0000008902 00000 n 0000010431 00000 n 0000141632 00000 n 0000012805 00000 n 0000012571 00000 n 0000010640 00000 n 0000012686 00000 n 0000140952 00000 n 0000141095 00000 n 0000012745 00000 n 0000014560 00000 n 0000014327 00000 n 0000012934 00000 n 0000014442 00000 n 0000016042 00000 n 0000015868 00000 n 0000014653 00000 n 0000015983 00000 n 0000017895 00000 n 0000017661 00000 n 0000016123 00000 n 0000017776 00000 n 0000017835 00000 n 0000020111 00000 n 0000019878 00000 n 0000018012 00000 n 0000019993 00000 n 0000021871 00000 n 0000021697 00000 n 0000020228 00000 n 0000021812 00000 n 0000141742 00000 n 0000023260 00000 n 0000023086 00000 n 0000021952 00000 n 0000023201 00000 n 0000023341 00000 n 0000023791 00000 n 0000023853 00000 n 0000024223 00000 n 0000024697 00000 n 0000025319 00000 n 0000025743 00000 n 0000026172 00000 n 0000026461 00000 n 0000026910 00000 n 0000041935 00000 n 0000042248 00000 n 0000055239 00000 n 0000055540 00000 n 0000062517 00000 n 0000062801 00000 n 0000083956 00000 n 0000084354 00000 n 0000093184 00000 n 0000093437 00000 n 0000100853 00000 n 0000101104 00000 n 0000115774 00000 n 0000116073 00000 n 0000135920 00000 n 0000136465 00000 n 0000140008 00000 n 0000141824 00000 n 0000141899 00000 n 0000142289 00000 n 0000142456 00000 n 0000142614 00000 n 0000142780 00000 n 0000142897 00000 n 0000142992 00000 n 0000143030 00000 n 0000143157 00000 n trailer << /Size 130 /Root 128 0 R /Info 129 0 R /ID [<74B5E4BE22D4A27DE0EA2A620E5F718F> <74B5E4BE22D4A27DE0EA2A620E5F718F>] >> startxref 143483 %%EOF xtable/inst/doc/OtherPackagesGallery.R0000644000176200001440000001160112654015472017443 0ustar liggesusers## ----set, include=FALSE-------------------------------------------------- library(knitr) opts_chunk$set(fig.path = 'Figures/other', debug = TRUE, echo = TRUE) opts_chunk$set(out.width = '0.9\\textwidth') ## ----package, results='asis'------------------------------ library(xtable) options(xtable.floating = FALSE) options(xtable.timestamp = "") options(width = 60) set.seed(1234) ## ----dataspdep-------------------------------------------- library(spdep) data("oldcol", package = "spdep") COL.lag.eig <- lagsarlm(CRIME ~ INC + HOVAL, data = COL.OLD[], nb2listw(COL.nb)) class(COL.lag.eig) COL.errW.GM <- GMerrorsar(CRIME ~ INC + HOVAL, data = COL.OLD, nb2listw(COL.nb, style = "W"), returnHcov = TRUE) class(COL.errW.GM) COL.lag.stsls <- stsls(CRIME ~ INC + HOVAL, data = COL.OLD, nb2listw(COL.nb)) class(COL.lag.stsls) p1 <- predict(COL.lag.eig, newdata = COL.OLD[45:49,], listw = nb2listw(COL.nb)) class(p1) p2 <- predict(COL.lag.eig, newdata = COL.OLD[45:49,], pred.type = "trend", type = "trend") #type option for retrocompatibility with spdep 0.5-92 class(p2) imp.exact <- impacts(COL.lag.eig, listw = nb2listw(COL.nb)) class(imp.exact) imp.sim <- impacts(COL.lag.eig, listw = nb2listw(COL.nb), R = 200) class(imp.sim) ## ----xtablesarlm, results = 'asis'------------------------ xtable(COL.lag.eig) ## ----xtablesarlmsumm, results = 'asis'-------------------- xtable(summary(COL.lag.eig, correlation = TRUE)) ## ----xtablesarlmbooktabs, results = 'asis'---------------- print(xtable(COL.lag.eig), booktabs = TRUE) ## ----xtablegmsar, results = 'asis'------------------------ xtable(COL.errW.GM) ## ----xtablestsls, results = 'asis'------------------------ xtable(COL.lag.stsls) ## ----xtablesarlmpred, results = 'asis'-------------------- xtable(p1) ## ----xtablesarlmpred2, results = 'asis'------------------- xtable(p2) ## ----xtablelagimpactexact, results = 'asis'--------------- xtable(imp.exact) ## ----xtablelagimpactmcmc, results = 'asis'---------------- xtable(imp.sim) ## ----minimalexample, results = 'hide'--------------------- library(spdep) example(NY_data) spautolmOBJECT <- spautolm(Z ~ PEXPOSURE + PCTAGE65P,data = nydata, listw = listw_NY, family = "SAR", method = "eigen", verbose = TRUE) summary(spautolmOBJECT, Nagelkerke = TRUE) ## ----spautolmclass---------------------------------------- class(spautolmOBJECT) ## ----xtablespautolm, results = 'asis'--------------------- xtable(spautolmOBJECT, display = c("s",rep("f", 3), "e"), digits = 4) ## ----datasplm--------------------------------------------- library(splm) data("Produc", package = "plm") data("usaww", package = "splm") fm <- log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp respatlag <- spml(fm, data = Produc, listw = mat2listw(usaww), model="random", spatial.error="none", lag=TRUE) class(respatlag) GM <- spgm(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp, data = Produc, listw = usaww, moments = "fullweights", spatial.error = TRUE) class(GM) imp.spml <- impacts(respatlag, listw = mat2listw(usaww, style = "W"), time = 17) class(imp.spml) ## ----xtablesplm, results = 'asis'------------------------- xtable(respatlag) ## ----xtablesplm1, results = 'asis'------------------------ xtable(GM) ## ----xtablesplmimpacts, results = 'asis'------------------ xtable(imp.spml) ## ----datasphet-------------------------------------------- library(sphet) data("columbus", package = "spdep") listw <- nb2listw(col.gal.nb) data("coldis", package = "sphet") res.stsls <- stslshac(CRIME ~ HOVAL + INC, data = columbus, listw = listw, distance = coldis, type = 'Triangular') class(res.stsls) res.gstsls <- gstslshet(CRIME ~ HOVAL + INC, data = columbus, listw = listw) class(res.gstsls) imp.gstsls <- impacts(res.gstsls, listw = listw) class(imp.gstsls) ## ----xtablesphet, results = 'asis'------------------------ xtable(res.stsls) ## ----xtablesphet1, results = 'asis'----------------------- xtable(res.gstsls) ## ----xtablesphetimpacts, results = 'asis'----------------- xtable(imp.gstsls) ## ----zoo, results = 'asis'-------------------------------- library(zoo) xDate <- as.Date("2003-02-01") + c(1, 3, 7, 9, 14) - 1 as.ts(xDate) x <- zoo(rnorm(5), xDate) xtable(x) ## ----zoots, results = 'asis'------------------------------ tempTs <- ts(cumsum(1 + round(rnorm(100), 0)), start = c(1954, 7), frequency = 12) tempTable <- xtable(tempTs, digits = 0) tempTable tempZoo <- as.zoo(tempTs) xtable(tempZoo, digits = 0) ## ----survival, results = 'asis'--------------------------- library(survival) test1 <- list(time=c(4,3,1,1,2,2,3), status=c(1,1,1,0,1,1,0), x=c(0,2,1,1,1,0,0), sex=c(0,0,0,0,1,1,1)) coxFit <- coxph(Surv(time, status) ~ x + strata(sex), test1) xtable(coxFit) xtable/inst/doc/margintable.Rnw0000644000176200001440000000406612654015472016244 0ustar liggesusers%\VignetteIndexEntry{xtable margintable} %\VignetteKeywords{LaTeX, HTML, table, margintable} % !Rnw weave = knitr % \VignetteEngine{knitr::knitr} \documentclass{tufte-handout} \title{ A Margin Table Example } \author{David J. Scott} <>= library(knitr) @ \usepackage{rotating} \usepackage{longtable} \usepackage{booktabs} \usepackage{tabularx} \usepackage{hyperref} \usepackage{fancyvrb} \fvset{fontsize=\normalsize} \begin{document} \section{The Example} \label{sec:example} This document uses the Tufte handout \LaTeX\ document style. This is specified by the use of the document class as \Verb|\documentclass{tufte-handout}|. The Tufte-\LaTeX\ document classes define a style similar to the style Edward Tufte uses in his books and handouts. Tufte's style is known for its extensive use of sidenotes, tight integration of graphics with text, and well-set typography. One of the most prominent and distinctive features of this style is the extensive use of sidenotes. There is a wide margin to provide ample room for sidenotes and small figures. Any \Verb|\footnote|s will automatically be converted to sidenotes. Here is an example of a margin table, suggested by Felix Sch\"onbrodt \Verb||. I am not sure about its usefullness in practice however. Note that \Verb|latex.environments = ""| avoids the default option of tables being centered, which in this example would lead to the caption not being directly under the table. Most importantly, \Verb|table.placement = NULL| is required to ensure that the default table placement options \Verb|[ht]| being inserted after \Verb|\begin{margintable}|. This is necessary because the margintable environment does not allow placement options like \Verb|[ht]|. <<>>= library(xtable) x <- matrix(rnorm(6), ncol = 2) x.small <- xtable(x, label = 'tabsmall', caption = 'A margin table') @ <>= print(x.small,floating.environment='margintable', latex.environments = "", table.placement = NULL) @ \end{document} xtable/inst/doc/listOfTablesGallery.R0000644000176200001440000001172612654015472017326 0ustar liggesusers## ----set, include=FALSE-------------------------------------------------- library(knitr) opts_chunk$set(fig.path='Figures/list', debug=TRUE, echo=TRUE) opts_chunk$set(out.width='0.9\\textwidth') ## ----package, results='asis'------------------------------ library(xtable) options(xtable.floating = FALSE) options(xtable.timestamp = "") options(width = 60) ## ----data------------------------------------------------- require(xtable) data(mtcars) mtcars <- mtcars[, 1:6] mtcarsList <- split(mtcars, f = mtcars$cyl) ### Reduce the size of the list elements mtcarsList[[1]] <- mtcarsList[[1]][1,] mtcarsList[[2]] <- mtcarsList[[2]][1:2,] mtcarsList[[3]] <- mtcarsList[[3]][1:3,] attr(mtcarsList, "subheadings") <- paste0("Number of cylinders = ", names(mtcarsList)) attr(mtcarsList, "message") <- c("Line 1 of Message", "Line 2 of Message") str(mtcarsList) attributes(mtcarsList) ## ----xtablelist------------------------------------------- xList <- xtableList(mtcarsList) str(xList) ## ----xtablelist1------------------------------------------ xList1 <- xtableList(mtcarsList, digits = c(0,2,0,0,0,1,2)) str(xList1) ## ----xtablelist2------------------------------------------ xList2 <- xtableList(mtcarsList, digits = c(0,2,0,0,0,1,2), caption = "Caption to List", label = "tbl:xtableList") str(xList2) ## ----xtablelist3------------------------------------------ attr(mtcarsList, "subheadings") <- NULL xList3 <- xtableList(mtcarsList) str(xList3) ## ----xtablelist4------------------------------------------ attr(mtcarsList, "message") <- NULL xList4 <- xtableList(mtcarsList) str(xList4) ## ----singledefault, results='asis'------------------------ print.xtableList(xList) ## ----singlebooktabs, results='asis'----------------------- print.xtableList(xList, booktabs = TRUE) ## ----singlebooktabs1, results='asis'---------------------- print.xtableList(xList1, booktabs = TRUE) ## ----sanitize--------------------------------------------- large <- function(x){ paste0('{\\Large{\\bfseries ', x, '}}') } italic <- function(x){ paste0('{\\emph{ ', x, '}}') } bold <- function(x){ paste0('{\\bfseries ', x, '}') } red <- function(x){ paste0('{\\color{red} ', x, '}') } ## ----sanitizesingle, results='asis'----------------------- print.xtableList(xList, sanitize.rownames.function = italic, sanitize.colnames.function = large, sanitize.subheadings.function = bold, sanitize.message.function = red, booktabs = TRUE) ## ----singlecaption, results='asis'------------------------ print.xtableList(xList2, floating = TRUE) ## ----singlerotated, results='asis'------------------------ print.xtableList(xList, rotate.colnames = TRUE) ## ----nosubheadings, results='asis'------------------------ print.xtableList(xList3) ## ----nomessage, results='asis'---------------------------- print.xtableList(xList4) ## ----multipledefault, results='asis'---------------------- print.xtableList(xList, colnames.format = "multiple") ## ----multiplebooktabs, results='asis'--------------------- print.xtableList(xList, colnames.format = "multiple", booktabs = TRUE) ## ----sanitizemultiple, results='asis'--------------------- print.xtableList(xList, colnames.format = "multiple", sanitize.rownames.function = italic, sanitize.colnames.function = large, sanitize.subheadings.function = bold, sanitize.message.function = red, booktabs = TRUE) ## ----multiplecaption, results='asis'---------------------- print.xtableList(xList2, colnames.format = "multiple", floating = TRUE) ## ----multiplerotated, results='asis'---------------------- print.xtableList(xList, colnames.format = "multiple", rotate.colnames = TRUE) ## ----multiplenosubheadings, results='asis'---------------- print.xtableList(xList3, colnames.format = "multiple") ## ----multiplenomessage, results='asis'-------------------- print.xtableList(xList4, colnames.format = "multiple") ## ----lsmeans---------------------------------------------- library(lsmeans) warp.lm <- lm(breaks ~ wool*tension, data = warpbreaks) warp.lsm <- lsmeans(warp.lm, ~ tension | wool) warp.sum <- summary(warp.lsm, adjust = "mvt") warp.xtblList <- xtableLSMeans(warp.sum, digits = c(0,0,2,2,0,2,2)) str(warp.xtblList) ## ----lsmeansstr------------------------------------------- print.xtableList(warp.xtblList, colnames.format = "multiple", include.rownames = FALSE) ## ----lsmeanstable, results='asis'------------------------- print.xtableList(warp.xtblList, colnames.format = "multiple", include.rownames = FALSE) ## ----lsmeansbooktabs, results='asis'---------------------- print.xtableList(warp.xtblList, colnames.format = "multiple", booktabs = TRUE, include.rownames = FALSE) xtable/inst/doc/listOfTablesGallery.Rnw0000644000176200001440000001536312654015472017674 0ustar liggesusers%\VignetteIndexEntry{xtable List of Tables Gallery} %\VignetteDepends{xtable, lsmeans} %\VignetteKeywords{LaTeX, HTML, table} %\VignettePackage{xtable} % !Rnw weave = knitr % \VignetteEngine{knitr::knitr} %************************************************************************** \documentclass{article} \usepackage[a4paper,height=24cm]{geometry} % geometry first \usepackage{array} \usepackage{booktabs} \usepackage{longtable} \usepackage{parskip} \usepackage{rotating} \usepackage{tabularx} \usepackage{titlesec} \usepackage{hyperref} % hyperref last \titleformat\subsubsection{\bfseries\itshape}{}{0pt}{} \newcommand\p{\vspace{2ex}} \newcommand\code[1]{\texttt{#1}} \newcommand\pkg[1]{\textbf{#1}} \setcounter{tocdepth}{2} \begin{document} \title{\bfseries\Large The \code{xtableList} Gallery} \author{\bfseries David J. Scott} \maketitle \tableofcontents \newpage \section{Introduction} This document represents a test of the functions in \pkg{xtable} which deal with lists of dataframes. <>= library(knitr) opts_chunk$set(fig.path='Figures/list', debug=TRUE, echo=TRUE) opts_chunk$set(out.width='0.9\\textwidth') @ The first step is to load the package and set some options for this document. <>= library(xtable) options(xtable.floating = FALSE) options(xtable.timestamp = "") options(width = 60) @ Next we create a list of dataframes with attributes. <>= require(xtable) data(mtcars) mtcars <- mtcars[, 1:6] mtcarsList <- split(mtcars, f = mtcars$cyl) ### Reduce the size of the list elements mtcarsList[[1]] <- mtcarsList[[1]][1,] mtcarsList[[2]] <- mtcarsList[[2]][1:2,] mtcarsList[[3]] <- mtcarsList[[3]][1:3,] attr(mtcarsList, "subheadings") <- paste0("Number of cylinders = ", names(mtcarsList)) attr(mtcarsList, "message") <- c("Line 1 of Message", "Line 2 of Message") str(mtcarsList) attributes(mtcarsList) @ %def Now create a list of \code{xtable} objects. <>= xList <- xtableList(mtcarsList) str(xList) @ %def Create an alternative version where the lists have different values for \code{digits}. <>= xList1 <- xtableList(mtcarsList, digits = c(0,2,0,0,0,1,2)) str(xList1) @ %def <>= xList2 <- xtableList(mtcarsList, digits = c(0,2,0,0,0,1,2), caption = "Caption to List", label = "tbl:xtableList") str(xList2) @ %def Further versions with no subheadings, and no message <>= attr(mtcarsList, "subheadings") <- NULL xList3 <- xtableList(mtcarsList) str(xList3) @ %def <>= attr(mtcarsList, "message") <- NULL xList4 <- xtableList(mtcarsList) str(xList4) @ %def \newpage \section{Single Column Names} \label{sec:single-column-names} Print the list of \code{xtable} objects with a single header of the column names. First the default. <>= print.xtableList(xList) @ %def Booktabs should work. <>= print.xtableList(xList, booktabs = TRUE) @ %def With digits being specified. <>= print.xtableList(xList1, booktabs = TRUE) @ %def Row and column names, subheadings, and the message can be sanitized. <>= large <- function(x){ paste0('{\\Large{\\bfseries ', x, '}}') } italic <- function(x){ paste0('{\\emph{ ', x, '}}') } bold <- function(x){ paste0('{\\bfseries ', x, '}') } red <- function(x){ paste0('{\\color{red} ', x, '}') } @ %def <>= print.xtableList(xList, sanitize.rownames.function = italic, sanitize.colnames.function = large, sanitize.subheadings.function = bold, sanitize.message.function = red, booktabs = TRUE) @ %def A label and caption can be added. <>= print.xtableList(xList2, floating = TRUE) @ %def Rotated column names? <>= print.xtableList(xList, rotate.colnames = TRUE) @ %def No subheadings? <>= print.xtableList(xList3) @ %def No message? <>= print.xtableList(xList4) @ %def \section{Multiple Column Names} \label{sec:multiple-column-names} Print the list of \code{xtable} objects with multiple headers of the column names. First the default with multiple column name headers. <>= print.xtableList(xList, colnames.format = "multiple") @ %def Using booktabs: <>= print.xtableList(xList, colnames.format = "multiple", booktabs = TRUE) @ %def With sanitization. <>= print.xtableList(xList, colnames.format = "multiple", sanitize.rownames.function = italic, sanitize.colnames.function = large, sanitize.subheadings.function = bold, sanitize.message.function = red, booktabs = TRUE) @ %def A label and caption can be added. <>= print.xtableList(xList2, colnames.format = "multiple", floating = TRUE) @ %def Rotated column names? <>= print.xtableList(xList, colnames.format = "multiple", rotate.colnames = TRUE) @ %def No subheadings? <>= print.xtableList(xList3, colnames.format = "multiple") @ %def No message? <>= print.xtableList(xList4, colnames.format = "multiple") @ %def \section{lsmeans} \label{sec:lsmeans} Summaries from the \code{lsmeans} function from the \pkg{lsmeans} package can easily be produced using the function \code{xtableLSMeans}. This function produces a list of \pkg{xtable} objects. <>= library(lsmeans) warp.lm <- lm(breaks ~ wool*tension, data = warpbreaks) warp.lsm <- lsmeans(warp.lm, ~ tension | wool) warp.sum <- summary(warp.lsm, adjust = "mvt") warp.xtblList <- xtableLSMeans(warp.sum, digits = c(0,0,2,2,0,2,2)) str(warp.xtblList) @ %def <>= print.xtableList(warp.xtblList, colnames.format = "multiple", include.rownames = FALSE) @ %def <>= print.xtableList(warp.xtblList, colnames.format = "multiple", include.rownames = FALSE) @ %def \p <>= print.xtableList(warp.xtblList, colnames.format = "multiple", booktabs = TRUE, include.rownames = FALSE) @ %def \end{document} xtable/inst/doc/OtherPackagesGallery.pdf0000644000176200001440000043343012654015472020023 0ustar liggesusers%PDF-1.4 % 1 0 obj << /S /GoTo /D (section.1) >> endobj 4 0 obj (Introduction) endobj 5 0 obj << /S /GoTo /D (section.2) >> endobj 8 0 obj (The packages spdep, splm, and sphet) endobj 9 0 obj << /S /GoTo /D (subsection.2.1) >> endobj 12 0 obj (The package spdep) endobj 13 0 obj << /S /GoTo /D (subsection.2.2) >> endobj 16 0 obj (The package splm) endobj 17 0 obj << /S /GoTo /D (subsection.2.3) >> endobj 20 0 obj (The package sphet) endobj 21 0 obj << /S /GoTo /D (section.3) >> endobj 24 0 obj (The zoo package) endobj 25 0 obj << /S /GoTo /D (section.4) >> endobj 28 0 obj (The survival package) endobj 29 0 obj << /S /GoTo /D [30 0 R /Fit] >> endobj 39 0 obj << /Length 515 /Filter /FlateDecode >> stream xUMo0 W(*u)̷/`i$N׏&u;l@ |||ϦF\Mrr9AXHD]t($MD97\ԅfQfQx]'WjU~uF:9סB!{Ut\sl4=F> endobj 31 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [88.296 592.104 168.398 601.015] /A << /S /GoTo /D (section.1) >> >> endobj 32 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [88.296 568.249 291.518 579.097] /A << /S /GoTo /D (section.2) >> >> endobj 33 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [103.24 556.294 214.892 567.142] /A << /S /GoTo /D (subsection.2.1) >> >> endobj 34 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [103.24 544.339 209.323 555.187] /A << /S /GoTo /D (subsection.2.2) >> >> endobj 35 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [103.24 532.384 212.664 543.232] /A << /S /GoTo /D (subsection.2.3) >> >> endobj 36 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [88.296 510.466 187.991 521.314] /A << /S /GoTo /D (section.3) >> >> endobj 37 0 obj << /Type /Annot /Subtype /Link /Border[0 0 1]/H/I/C[1 0 0] /Rect [88.296 488.548 210.118 499.396] /A << /S /GoTo /D (section.4) >> >> endobj 40 0 obj << /D [30 0 R /XYZ 88.292 815.122 null] >> endobj 41 0 obj << /D [30 0 R /XYZ 89.292 777.26 null] >> endobj 38 0 obj << /Font << /F17 42 0 R /F18 43 0 R /F29 44 0 R /F8 45 0 R >> /ProcSet [ /PDF /Text ] >> endobj 50 0 obj << /Length 1644 /Filter /FlateDecode >> stream x[[sF~ׯ`464um'j , Rlj#VGgw|k k=ܸ49#FLd6Ն!QͱM`GڵN7_擴!'}Kq |sjlj6"+E9L0 =dziaPp0caH՗?a^HBz+](%b5!RP" 62$_ &")1N~,;% H0?-['a`#083&&˕yfJJ_jJ/ljP+OJif\^*hM:| askDsmd`C- &ȶ=&2aPc8FeO泗W* \20AEh|PX´أIζ <:sY*ͤO%Us7m9QΖ["J&[1Иn6` Ybz~GbRDS(4{ZH LτOWNS6.v6~~0 B'0&9t%֒`Do`HjI fKB?箕}iU h\t䬓B;z2M~ܺ^;oZ&@ZEzĭEE5b"bQEӝiq>K(٭JCRUInZǦnUZ]vYU'(yc i)(FPc!8UoקA3씑R~Iɝj:j0@C'/B &~;8kaWc7u O5ᩲ1?¼{ZTb ` m/ endstream endobj 49 0 obj << /Type /Page /Contents 50 0 R /Resources 48 0 R /MediaBox [0 0 595.276 841.89] /Parent 46 0 R /Annots [ 47 0 R ] >> endobj 47 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [209.384 566.608 347.365 578.563] /Subtype/Link/A<> >> endobj 51 0 obj << /D [49 0 R /XYZ 88.292 815.122 null] >> endobj 2 0 obj << /D [49 0 R /XYZ 89.292 777.26 null] >> endobj 6 0 obj << /D [49 0 R /XYZ 89.292 635.099 null] >> endobj 10 0 obj << /D [49 0 R /XYZ 89.292 553.664 null] >> endobj 48 0 obj << /Font << /F17 42 0 R /F8 45 0 R /F29 44 0 R /F30 52 0 R /F31 53 0 R >> /ProcSet [ /PDF /Text ] >> endobj 56 0 obj << /Length 1737 /Filter /FlateDecode >> stream xZsF_y}Nۙ B i@ymH*)wC,&vh^owƈq`(f|^z{cHD1RsJR40pJ7iZ>E)#h@nj6AeptDQM%9": f~s^&",&-}\TQ%MULtfisĵr 5=zSS0~WN-ޖp0&i!nY\[ogG%,7$[j 4c޶Yސq,GeݐW@4/Q16['v͑}֎V#ߏ~F((I[{t.usم~ C-&&6Yj1105\yw_ &U%v*7bWH& sHE[ ;Po>pd6BJ` 2S+D haD#S[b. q#{113N Y8aZ7__8 s+u>6$K֗`)Z,UqZ+/MGT'5b_r~Q#ƨ7LJWn~*=n'.kocmZ #u cT5EzLʤX*Nm.XOL ̴<<E?c]cxvT+:~#cX{3;VvVd%Rg> 2̓滽f'boon6GS*]4_*7C~dR,+Mv0xC\W0s㼄aKn)$%|F2>q|Oc1?Q@RJ?:6[  אnCann =uH45[ Sr; lu4B6# #1PRJMX@Y09&zlFl L>?ݭVx Zx>}97D+bZ6* [9l Lo endstream endobj 55 0 obj << /Type /Page /Contents 56 0 R /Resources 54 0 R /MediaBox [0 0 595.276 841.89] /Parent 46 0 R >> endobj 57 0 obj << /D [55 0 R /XYZ 88.292 815.122 null] >> endobj 58 0 obj << /D [55 0 R /XYZ 89.292 619.525 null] >> endobj 62 0 obj << /D [55 0 R /XYZ 89.292 240.564 null] >> endobj 54 0 obj << /Font << /F31 53 0 R /F30 52 0 R /F32 59 0 R /F8 45 0 R /F11 60 0 R /F14 61 0 R /F29 44 0 R >> /ProcSet [ /PDF /Text ] >> endobj 67 0 obj << /Length 1920 /Filter /FlateDecode >> stream xYIs6WHT(閦t$^D⤿JCX"{hZ\xyAO~{y8uqyUXG\˟ ˏd%2RwLrz]/ ⟋* #1FE]aX>J0%B!wt"wR‰MY૷:&BHU.~d]]`#s_89XQߴXbF[FM&I<7Hn\=Z7S\a$Tȴo6gs)-%ͥ勮k@~h]]羹VŊ@O) rgT@`=2<+[2GX8%"N1BAWg]ხ@ : U3JՠLT^fUx TqrOxuAfU pw{-ؓ`0E)U;U~UOAb$A1Rs\]gMjmz[VJOW]/b8ͺ b:MWQczϻ͌>4Iy|ݗ>yuLmnW"8XM>quWE-S: || "?32K*S"4A}F`gfVWeK>S/UHS&ELO7 ~4M:-`@&Bix "OB8JҏHƃi`oZT ?ᔟdvD4^N")5}RQ4eW]GL*^DDB/`UMi.փı&&O/!]ׄ jbf <ƂwDQí똨(ĺx9C73B)qǹXiG<~pM(j0`_>c90~l,7ؙU)AsaH]_ f6d` OS Mn'6366Ocs}Qݤ&nijf#Sl3@_/gdkn1 EWqTm/[#K`N/Uأrz5FK)@YJ9F=O)1ˉϰ6}T)=d2ap17η÷ǔf@e Im8XblaNP@:h\Цg\|j/|S3MG po:yaYiMGo>cW/Vи}Ўujwzj7iQwfKibpG?4欼  tպO7`A]fV(Xi]zsKR'QX:$r/,l3YfB.p#% endstream endobj 66 0 obj << /Type /Page /Contents 67 0 R /Resources 65 0 R /MediaBox [0 0 595.276 841.89] /Parent 46 0 R /Annots [ 63 0 R 73 0 R ] >> endobj 63 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [457.914 109.862 506.98 121.817] /Subtype/Link/A<> >> endobj 73 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [88.296 97.906 195.393 109.862] /Subtype/Link/A<> >> endobj 68 0 obj << /D [66 0 R /XYZ 88.292 815.122 null] >> endobj 69 0 obj << /D [66 0 R /XYZ 89.292 777.26 null] >> endobj 70 0 obj << /D [66 0 R /XYZ 89.292 657.889 null] >> endobj 71 0 obj << /D [66 0 R /XYZ 89.292 376.416 null] >> endobj 72 0 obj << /D [66 0 R /XYZ 89.292 153.058 null] >> endobj 65 0 obj << /Font << /F31 53 0 R /F32 59 0 R /F30 52 0 R /F8 45 0 R /F11 60 0 R /F14 61 0 R >> /ProcSet [ /PDF /Text ] >> endobj 76 0 obj << /Length 1555 /Filter /FlateDecode >> stream xZ[F~ϯ-*ծڪ@* R"䍽Ka{塿bg+{ )r\< ȓG}@sMF(81!v Ů'p>xt&4Qqr\_ч}t:^dYL1ǂmIF7(^4j|9  t|o[pE^͹P$@IfH$)ř)-Y$~5I\p]z,FTT r_Kޛ{8 "X@}x6s[ A|R!05%oxbD@KH, Vn59e2y k5zҥ0O>|mfa[rD*z"^h_-SCN Ű{7l JH|^8V_%לriꇗBP&ŷK}Eo0MxZ{lTX-h40/_%41E82V)Yld3>tRjlu\N|ΚNiBS :}Gt9 [˷=omAujo7[3cFZa'編+IaJc):]=b\{_v3@ju"L@>p~HϞᓏ wQLL);| vdVԻiQדR:$Y$9՗粜탫N#9N65{=UL3'"X 52X1[ǩT}I%Ё]WxF۲jc0y}Qٯ2ˬà 0+!1pu xr%:EVQV0չhUB0t07뮅:/g AF +@ X|1,P  G=_WCJ:$Jس?Tr ՛F9p p.]-ܵDgqEVfptV_ۥ<ڭ4Mx4mU3R3E}t0&.Ti"r endstream endobj 75 0 obj << /Type /Page /Contents 76 0 R /Resources 74 0 R /MediaBox [0 0 595.276 841.89] /Parent 46 0 R /Annots [ 64 0 R ] >> endobj 64 0 obj << /Type /Annot /Border[0 0 1]/H/I/C[0 1 1] /Rect [262.283 763.81 379.343 775.765] /Subtype/Link/A<> >> endobj 77 0 obj << /D [75 0 R /XYZ 88.292 815.122 null] >> endobj 14 0 obj << /D [75 0 R /XYZ 89.292 159.273 null] >> endobj 74 0 obj << /Font << /F8 45 0 R /F30 52 0 R /F31 53 0 R /F11 60 0 R /F14 61 0 R /F17 42 0 R >> /ProcSet [ /PDF /Text ] >> endobj 80 0 obj << /Length 1774 /Filter /FlateDecode >> stream x[[o6~ϯXNiXlC@0 ][vJrݾPv[0urx.C#ƅezLE[ɂrBt{ȩW|D@"l˖afqGS$2!ͨxϭEN]R+`בv(=ɰTZÉe;:R!&5[zɷVr+/PB3bYBIڴOSP ꑚzqI 轉33f~I̔MSxO"?γ3@Nq;ҙt_;A]lvZ -➼0 N4 4[<ސnnB屽;qS NZ;]%n4&hyI'O-Qyᔶ]!m X)Z{˕ỿΞ~fgL{-wC]YsCDŎBךNGp\C:9N:9,[j&7äƃzUۉ8,ݏ<?ÒCmyM *XhB *]if<3i9Wtb`*NsKy49tzđ7g i̙(7z-2B]nǿgz83Aqˢ/noczuNop0ZTnclE UZvOnu88'vj;ʺMvNT7Qa-ؓ`wrd~MNezd$ͫ|r+oϔWL![:Z45** B9Q| WQUH n$&lZD"t7 Wdk^Fv V4d!Aqm5oslkSaAzvuk*c1N9Ew9K1b{Q9)S ^SKII%F"9JׂHR) >)Y10`` )kl$转D(V5_E}j2/y,a@#=a"L+0`18>ܼ4A<7'+wp4{T14QbO`j" QcNd.;L{%F?u˽cHaY*[Y &cs RS@C$sk{U6 oMx ]AQ YFQp^Jp8Z3<R1Ai!FAO`KR82APJ%MkB ሪ–wmpQcJ.wNٌ۸87[a1&8Zbqpa s?!l#+B:VP$TooPɏq <ǝi 2[i5NS=f]aS25頛v87LVxAy k@ಢaSk endstream endobj 79 0 obj << /Type /Page /Contents 80 0 R /Resources 78 0 R /MediaBox [0 0 595.276 841.89] /Parent 46 0 R >> endobj 81 0 obj << /D [79 0 R /XYZ 88.292 815.122 null] >> endobj 82 0 obj << /D [79 0 R /XYZ 89.292 403.502 null] >> endobj 78 0 obj << /Font << /F30 52 0 R /F31 53 0 R /F32 59 0 R /F8 45 0 R /F11 60 0 R /F14 61 0 R >> /ProcSet [ /PDF /Text ] >> endobj 85 0 obj << /Length 1796 /Filter /FlateDecode >> stream xZKs6W`iȴIݤqiD(St.@J"eٖdq<ш vKj5;ެ#,(2 s‘S%QocX)Ĕ,A'{KL%wV/v¯9A[ c1 i1Wu8R4 ?t^Tp!Q߫Xp{"p4tB6wY>` GKAQ1%q>T,EZ0,(}m%"(#$8망`RĩwdY`͍̲3 H*drFx2b\ L&s6"J Eb+* ,᱌+2*Wb%Mq(q,6aǀr9\[Y_6,dg@5* bɠRFy#1d9MˆkL^ip*ă3&c"&0!8 ^:%C< 3F/K")o'FR!ys\'&jsypsLv7nƯ$FP p1BUԸUyKXͺa7[uC͔ADՄ^p6gr^$̵ENAy  &`058\p®q2I9ѓk8_gQ:O2u üWq loKٻ~\mV:(L3XESJ6J$=u]{v R>4.e:$ڱ/^; WOt ձ+YԷtK qmφ<S[lmbv_?| HtչD%9΋< ygN&8|sVt2ۥr^_swOMh?[!Vamŷ6vu缾{FD(ǽ@VX|ޏE= <3wvg׵WheB8Xv^ɧ166YՉsc%;wc=Wқa{ƻߢR ʕܯ <{E˹4,Rd4T?_Rt2טCk䂳'WvܷP`6eokUa3`*8`](bC|x軕/vJaJy]U%`Y`u|/z⩫9,kj8 WW/Ige0zbR-1rrT"&f&bZͯ+86Z 0ᅱlxF(ĤVk1+ XHHJԨc 0 _&mYp)zz ŧH^2-S"j@R%H452Ljix߅=1ee k㐉AFR/&^5BTAdyvxQ0B9.a±QvRJpU0XI}7QX.*uUHҽ Ip\BBel nS&5Ԥ6.F kYK伴pƁmVddb$#y i*dGFjA K'Q$P`ra1A.wi{It b6'yk>@'n:d4=/ckPTϟY arHU208+C endstream endobj 84 0 obj << /Type /Page /Contents 85 0 R /Resources 83 0 R /MediaBox [0 0 595.276 841.89] /Parent 88 0 R >> endobj 86 0 obj << /D [84 0 R /XYZ 88.292 815.122 null] >> endobj 18 0 obj << /D [84 0 R /XYZ 89.292 676.279 null] >> endobj 87 0 obj << /D [84 0 R /XYZ 89.292 331.155 null] >> endobj 83 0 obj << /Font << /F30 52 0 R /F8 45 0 R /F17 42 0 R /F31 53 0 R /F32 59 0 R /F11 60 0 R /F14 61 0 R >> /ProcSet [ /PDF /Text ] >> endobj 91 0 obj << /Length 1674 /Filter /FlateDecode >> stream xs7Wh!)VZ%´pqp_ߕ289a:>N]v%a#W-!lVKGbgdX(7 'G^ Ak9+e ՕZi RM}FypɈCTxATKx(UdMTFJf&Wrp7}KQWXʳ\8AGŖ*()l[4W j*Ѩ^ ƊӋAb(q"[FNX^Saa$Fj==ywqg XP/e HVIzPOs:>A&j善kfg'@a$ .^_Z]|twU{pgDQ^&[ݜyڼy5ZR'q!ǣ?tۿgkX@׈^snHiPנ݇E9|=^[}0H@(xeh2j6ޭF;znM;ԳI*gr^o!8rNKwtThX֦=쪫1䥗ƃĆ^3F]S{W;8nU ufUy3gN'd8pkd&Ljnr2|R$ۃID  ~|}gu3>3q0FjR8]"?H.x<ب֩Iϩ.CZ'32UC >Y=[5SьK6[)al? ^tVOu.n e=џˬ}gRPOy"dxY& Lw]eKbSq rSǷ|sBPƶ=pm|˃@3,- *A=PmMͳSJjMƿȻ4^ܵwiᵐ5!`K:Yآ\ 3M/|޷+ #o6f`o p\\Yb,qn$.j endstream endobj 90 0 obj << /Type /Page /Contents 91 0 R /Resources 89 0 R /MediaBox [0 0 595.276 841.89] /Parent 88 0 R >> endobj 92 0 obj << /D [90 0 R /XYZ 88.292 815.122 null] >> endobj 22 0 obj << /D [90 0 R /XYZ 89.292 699.117 null] >> endobj 89 0 obj << /Font << /F30 52 0 R /F8 45 0 R /F17 42 0 R /F31 53 0 R >> /ProcSet [ /PDF /Text ] >> endobj 95 0 obj << /Length 1260 /Filter /FlateDecode >> stream x_o6)(c5GÆ-l?-(1l%KϾ#ytl%+C(jQy< 㑠+WM$%dr%srl|}560p\X V,X6d>pU\YFj77w":u( aSqnCz?="VKTaDTcܕE<rӦ?MwZGT>br5i;1v-&Ԡc;E/;dhuqU w]೓DN-r UAk);ŵց_Yע48L>? ^U9Tϩl>eiZ^Q鴙QqKob;'<-ؤJmKIs[QzJU0RxJtFT&l.(>9^^āq$)ezMHƦ6C6(^s `i @"T@p %A5dpĠ * 0bU *vPR!1;h4Ġ1hM Ġ#]|a1b1d qĐ"Cl +Jb@ V-v$C62zb W 1 W\apd(2@ ^|_A ACba/ !(b&PC( 02'CY ,l XÌ9DcRaa%_1^)P'){ 3v~7XiあTwwϩiڸf6~>HNc$'[>{m=Rg͢N'UvNvr#|E5>,g ~T*RI=!)sbb-C8̱Cֱ/RcgxҾ$ѐXvz;y8n &MW8L~I{n-/8/>=poA OOJ'Z+v0_5tϲjQp~hcbxjFS<U66hi6tT͍'3 mAǃC*ZX6Hg#fNpKuam ?Ze endstream endobj 94 0 obj << /Type /Page /Contents 95 0 R /Resources 93 0 R /MediaBox [0 0 595.276 841.89] /Parent 88 0 R >> endobj 96 0 obj << /D [94 0 R /XYZ 88.292 815.122 null] >> endobj 26 0 obj << /D [94 0 R /XYZ 89.292 603.475 null] >> endobj 93 0 obj << /Font << /F30 52 0 R /F8 45 0 R /F17 42 0 R >> /ProcSet [ /PDF /Text ] >> endobj 97 0 obj [277.8] endobj 98 0 obj [777.8] endobj 99 0 obj [532.2 532.2 591.1 532.2 400 532.2 591.1 355.6 355.6 532.2 296.7 944.4 650 591.1 591.1 532.2 501.7 486.9 385] endobj 100 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 101 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 102 0 obj [583.3 555.6 555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4] endobj 103 0 obj [319.4 383.3 319.4 575 575 575 575 575 575 575 575 575 575 575 319.4 319.4 350 894.4 543.1 543.1 894.4 869.4 818.1 830.6 881.9 755.6 723.6 904.2 900 436.1 594.4 901.4 691.7 1091.7 900 863.9 786.1 863.9 862.5 638.9 800 884.7 869.4 1188.9 869.4 869.4 702.8 319.4 602.8 319.4 575 319.4 319.4 559 638.9 511.1 638.9 527.1 351.4 575 638.9 319.4 351.4 606.9 319.4 958.3 638.9 575 638.9 606.9 473.6 453.6 447.2 638.9 606.9 830.6 606.9 606.9 511.1] endobj 104 0 obj [272 326.4 272 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 272 272 272 761.6 462.4 462.4 761.6 734 693.4 707.2 747.8 666.2 639 768.3 734 353.2 503 761.2 611.8 897.2 734 761.6 666.2 761.6 720.6 544 707.2 734 734 1006 734 734 598.4 272 489.6 272 489.6 272 272 489.6 544 435.2 544 435.2 299.2 489.6 544 272 299.2 516.8 272 816 544 489.6 544 516.8 380.8 386.2 380.8 544 516.8 707.2 516.8 516.8] endobj 105 0 obj [312.5 375 312.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 342.6 875 531.2 531.2 875 849.5 799.8 812.5 862.3 738.4 707.2 884.3 879.6 419 581 880.8 675.9 1067.1 879.6 844.9 768.5 844.9 839.1 625 782.4 864.6 849.5 1162 849.5 849.5 687.5 312.5 581 312.5 562.5 312.5 312.5 546.9 625 500 625 513.3 343.7 562.5 625 312.5 343.7 593.7 312.5 937.5 625 562.5 625 593.7 459.5 443.8 437.5 625 593.7 812.5 593.7 593.7 500] endobj 106 0 obj << /Length1 1837 /Length2 13004 /Length3 0 /Length 14151 /Filter /FlateDecode >> stream xڍTY-Sw'8%4x` Σ{z{zoZU>v>Ȕ՘DLR &6fqE1m6V++3++;o;&?"ĝƠw1=P j `q` `gew@ `tAwptG)th ڽhjl Ps0<%ݝ΅Bn]n@3Jv1#P-\Ps0;[+S{~:@MVh`0j?ƦvVs+[ ࣔ307#==O)Q¿:[9\]lG6Kڛ;A.rݓ˵wp7273C#+PV⯘w6  :,]#]b]t7B`cY&@ +{le}?6߈b7q罿C ? N_mbwfGXrXߩs|'k7|O~O?\_wA흘?| t\@HxoNO_Casm'Ϸ34EX^p0%tgڛJc^vBWN4emmGVd6-I0Auzai g`DI]dG3K*ɕE޽Oڣbu,taOe[b)F#Z/t$gD Gq:w{77F*{Q⭳0^ҍOG y16M-v*]%b.ODJp_⼼&>2sp9`B&ewi;Lʓ>_Mˈt. WNSmŴvBH^!鿝̍F~Ўo eQI,[x#^ A=f Os`T?]׹Qb&FB<3n7'fY;f@jQl wzsFb:iNkN1JfNn?E6q?]]j,T|.vl~mb-UTUjnk&LoK}ZIkpNq~?ɨ𩊚+QJTpЇC^n[|{VP;+O -ъOi'%j+nD8hJPOp dO[좂fMɴ7ǓR?bC1gX238=_'w |4 ӔՏlAm7}i}j{';ze" ]18ZcMud"u=O#z+z*H3g.@.ӕcvkskӑ]w'y9-) +ꊬn./! &H3ݘ{@p6=l k13oS`?$-&lm_#KF&sOQF*w ӣ6ĤյWKt]1B%ǫ;yOs;4,RကmdLdBL7TNTbMJ;brM'([h^6<2yF}iНڶfbj J !u4%۷8},}ے UdϺcN(ԭژnY胄Vs Ж_|,'QDG -W<=\e<2.EK:GtAW\ϸ%s,,f%t;uRrq)5'jiST E uqA5@$KV .`KG,sDp9Mb\bva#{ZTK1ު 4-fwG E|An'Vlp{9-3Z**$%+PIbʤayVKq+`Nȣ^I$1с[ڻ࣫U' \|fYmIc96T&xn9dtp2;8IEC^Bq6Mg:3L^S*J?j3-OorHP5&B=ť腠-@s--w/AZbM&S b,ncX!8nG :_#]g".e 6c1.3aTv(󹬶PmvC"dTt7d(ZbIun0*Piewb6;)kI<8hך=/!Q1*0֭׉ 0ai?6֐ɨ5;,#Jhr췇y ]uA͌t' c@C!,1HUڭVeUߕceI9i!N':$Lay,D,ӉE^uXEO $ox9 GQ%򚈌xv[faT519._;f--E-f>؛?*9$:XsAV(j6ȡ|bo:ݚ4:ZJ 9#D/-.*&%4v*>3~U"NGG?wY]l]D5{KtKT F{E'H|Ʀ5(9q1FcƖkBtEv1";:ltgL/~Y跭:hHbMİ|Ѥ[>EǦCLn{C*/DV*уg@u`FYﲞA3i!RNևU a<@",m/SbmU$#eް|FռبqQ}+R c>UnǛj{i<Tc6; HbbF b_x=oz2Rgha>k~{*薕6]nGZm9Weɟ{90c?=,%0)-"'1_'hYUb  Ue@rVϿ]( yo #gNV2ĎQ51L!e__K&:8wϷOǶq!)-96#Z+/H@Zl3ۋ`%vO6Ϊ=Ij nĻ`K]W,rUj- b#5 QyR",|E;ܔj,IήתϸyNH[b+u@y9feɨQMg4 DGQ!{exAZt;;bHɹ.]gi˺45RP/j 2P>2xh_ wͨY޾knܽ2bL,\ G, ˺GzB802]ENKSd4%/spip/4CMAB t_gm@hc"^Ay IUKU>_~IgYBkF RT =nQ@3,dܑ %#aE 7F<\aIp G56 ^f\lYRmK~l#8_%/ijtc <_b +g0E VRv o 'O@ZT)|,z= u~$ź4Q_@N|O:GSu{NX U 8%_AoO$ߞ' =p`E:IRg: fsN;i1d8w TCU/B81W:Mo#-ϬeMtD:^>$޽x}91(,AXr}Ud:3=i sIdZ9dpBn{!yS(FITZL5*շisH% VE1WQ8K/e=RnjFL+t.p;Ɇ~Ln[:-&1CGW9i b)[o02n@B9*LMك^\+^>@:>cuXnN8pq)wڨ]U;aǖe]]-rNӜ|G>S]ks:SgI9|]v%(d1SF5k/Y 30ɋ# ÃmbҴ7vquweKDDZwkk0,У)GO0 X\n&H]#b, !J$kZ d8&ܿc )ݓ&3ޙ1扦Ѐq(co\1 xҟ<-X/VxHVXCɦ}/Zn%C_=( dBxcL? 3tKBSլng\5*\xnZߏ.6 \~94WfYyl1b:`q SR#-Vߘ#C2k%EQs{@t戁WSEu"yR5hc&J,櫋kTYTò3xmGPʘg-3U.9C֓{DvKulh o-&[.'djsH ՟6,J!O֜ɂ>-boڣ𣶦DD3-b{BӠ8yKM1UZ'G?p]c.s|8Ni@LD98ޠ5sF_8auj-k~#Q ZY`T03Y}$==p W`n/)i5;"~^}[mD=K͊I%磨EeկYr?4Q^= W5[mfGnMDAOyʙ#9ٛnf{fjs7RZ R5^%V~)ZLF[<iNRtЍa.{C1[OƼaaM&CtW8ԙ,\v\yztʧÇf4Mhx=^(k2&52(5gܔ oh5r&:dϕd3g3|EODMɵ3OBnta*o:RJ\l׳Tˀa=b*crt GUع?yB.Uov'*99l- 2n/69w5<\ ˫iGvtv;ugo r]xQ96Sy%:Qu9n\`@ ,=-HOMuEH*Ϻ^#%N6`A;X6tWgOD$ZȤ䪟x.K^ffjO".2vXD&וopW*=~?*M$$u(H84~$,ܢV﷍RZ^,.y蘾9cwNM1;}ubJa]?vīD"Dz .ESkbzԢr#-s"2ȋ)1z%xUyj/Nҷ)s߄''zAԲ< 2|i.U5On:t1aGTuح䯾 MQVRv&RؖC|q '՝iiz.J34sn_WnC4 *V#G79rf{L&_sY٭bD=+ɚI~gާ:P\C ǕUTN)Lقn@F?בie ldge}_G,1:#6#Mt<]أb:D " eZ2#aJ/zQ~N;k&dy'ZE~{#<ǛCΜ##8X^h/_W#G{dI`Y"&YBE "qS[!^R%$ClU\sǰ7vht[OZ<.PľYKLFv=?ֹFce.<Ŕ KQ vLD1";()aMmh"wNI. A- Q5F:}\ UKN=P؞LV3- Jo^ f-xwUK/,]@!3Е~npDftƚyY> ;k;cZ 3]lF%3^N.hђqݞ؜n[' ώ R衭m볳DհhsibϪmji 'fw/c\^ܐCBTIZLAfsJ_5$?-k1[4TՉ»_PfԸs- u(D^TWMW3j,~vEzЉCD*I(v|䒋nTMu穮QA'XG蝀|@~7mfAev UIR7VƑQ~6¾)/QL0Qw0k,܆QӭR nqzCOGG/cczKWKj0?;`[\@xRM4IsgeD{{5-78@'|q: dYXLڼԯǶ?2zZu/^E3w{խ38{F B0S͚16\ᗭ-sWVYФ+4VYKFhb1GˏYBMœD*Fcׇٗd"ѷ/iE,:N]][QL[d&<߉~( I (Pk B20E0EGcm~Q<ה vs}z3H\G&N:ks)q31G\8lv .r̆,3)2[|6C~ _[:P9 c#/UEQ86R'Dmk+ U'`@L eà{֒9[KTK#y.bl0=̟)Kz5]ƧR!sS 1U?:{P$Fxc-V-w1/8-ZU`@ ViB39H[EE?f/̪sb-[BpΐԵ kZfւg~8JV Ьҕ<1\}$+@Y ~X(,oh(ܚK[ʇ 18,V_`Jv*}1IUq暪.^4@ gPu7~"mV'Jrg~ "W\aifxnƅ3zD3'#jPÎw ?3JҥѴXGm;K\m )OBBS(ӨTF:/[Gqhө '/قK%3X}SMtS“~IU8+s^7^,gNBq>BTs2K݌\$oV{BFw3?Z^>R!\,òFjZ,\op$  362 f9fqܐFN>,O}#ڿ+3yE{x `3pMKƲ1_KgEY.[hh7M+7p>=uK7%hFSH6̸Podi|ڨT /Ot7:rA]wLfUVqM \ɇ t *[-W=ҡ,ȩ˨|ل&$76I-d~ 51V8z2nIfDTt[W,$m[26@z_Z;JdQp‘{#UM[;Q9б&OQ&M_J^n#֣,yR%֎OG{z唲KµI 5{:871EVO"P(e<"p~n+P$JDut黍\um.): x4L*h-))D}7şf@wnz O[b 6l/1w,*f6/JǏι;O ޛl ;Lsk_*8fɛZ&gp_Znrdm)}YÊ[yeEg Eß_Q,knDs\7uMTȳ{-NQ _( %C"FuB3$_,O[>-!jҝO99G&۷z:kO}eۆCyȿQbEh`jDrMze"AU #YWh^^JozJNO(aeT7..}6Rf0,dAπZK64<«Fnj;͊n䡼6$54~~'f;-fQ#Q74Kp~WᾄՎ9ZFl6S ^ru 0t!Ì`i7V`Uݔc`XI72_3Qa 6b8! 74tcfƷKAśyŃ"{K6.ʌra%vmא:; r˒XgQy^f'DjwyfdB܃pGݳtD >`~vːf|EYo.,=u΄K`m`%G+~lk7>ws0(J 2-j2dϺ c[M6xF#%ޮx}m %t͚uG)z]\E1NLڦ#t)Ob+${UCc.&2,rYcl+̧S}BDxV50+9مnI%JE4NZA~/p$Ur(nWcTAtʷƎ"5{˲A_kS"y(ȬBSInqNTB3 C1o> )81H)̧'_(B0}}]@Z}kj`[Wq\'iNEP_dMWҴs;I9c6Jzôk'osa#V:|'}eh; )kʥ,  Qh6"jwai>y1DD}> endobj 108 0 obj << /Length1 1905 /Length2 11692 /Length3 0 /Length 12867 /Filter /FlateDecode >> stream xڍP n ;݂ih!C`!$ww!cΝ{UtkFKCuȪ8y1 1 0T_00&t}TwT<|AQ!Qnn/7`9; Pq]0d`[> `xDDLH;a Pڂ;]'?%l]]E<<<8.N0 vvV?$4࿤qb0l!.q:Yza`C]SܠV`;@WY 'X?쀿w( P/` q48]=]@@|;|: >+K qvut82,urtC]]0'AC<>E2ܜn`ebMlnnn!A- 3O'g ~>Ng`?5 ~>v/XA@K Og3?aO y¬^y\:ZlI)# p xxDB WV- /vTTZ;D#+`kmXAyߔ[o:ß~"y7ԝ7C Yh'Sv>o4c(@"oz*Y}/b/yNp4OSTKL WtxEV[w ii3 ;ӏO]!\ O!r)HCg6- :Ի0ّvO ?fr\@\̯Rہ78$;:c=G;fG9c䮊iX9M znf5jyhn(By!.Mve*1P U ~ô=@>Bqh!ܕůӶ4:aOw.4IɴgSdy *EsIj~=^ΩA/ZħگCS+*@IOjHAFOl#裱!ߒڿ `W0/חrşI8Y1"ml:Mkcdv4VT|x'a\z<"9;"e BӺH+z'M/,#t*y*Fגakt 7w;PXebս񻊄(zk𼍵fv5uަ], i[[,?+K #cayIV,i>x|r, 9;rB)NAJDJ ` IK\vɐ#nYyLnU&0{ə׽Q:P,47H\p'4 {=VBKoNQmN-W'3cfb[?~ZN4w2|45KRv^ߤò >f(j%DaD Ji}P{-sFPQ2Z)4M^=0ͫZk.Wm5+9OmgnX:^$2(MaLs|dstc#p] RsH$SA1E.s%y/iqNJrrf}n0U( 7 ot8B!jvlF\Q+Ɵww@(h.}N#`,kvPgܩ5B<;7PЊ⎪%2q a_D/])2Ȏv K Mf2eq7!.)ܴ{kWʹ i⃊~Ԧx[a@P:{w "=DNٹOO?h2*qqM2xE#BL* '-'Ax1"FWt@T?0{!^ >khY tSCŷ4}t`q3+֡q30+^aiy׋^ky(zzGkgb#ߗ;̘Qݣ9d&aKחL.sS(T Hs%nns0i-82+qUvumZlr}s &2"U@v-+/ T%PI"Ӱ HҒo2Rz)<({b$~`SٺdrRD.5 ;E`=t}?|y3e{Ct 5Ori',k{S1s ThC>BI( Kboc9$/^q(S}םݘN<*?y)진8R4')ȎIxIiZ #zy/Tm)e`0i֒=6BI2Hi8sŚ_|nψZjXqޒ,i4#IXy?l;xr4' wEK~=JvktbPwGzo͘7X4)g?`&4f%z,Mn~I`1 H>G8›a[vtwTRА#Ħn(N?,45'^_(Y 3 5R wύ߶(d饳zݕ&\PC2]ӓ # ~h%V\A18TL􌄦8@DAhHدmNs)нDD7kaZt,=Z6-[ zz31JKC.p't|eOJw ]ojT"&lQ*r6a5Kal:BWԡXE:Huq*n4ˆr2TDzdhJ5$UNv9;}Ĵ?InsYl2tס4H!gi"QKnzi< XԌǬ< sB7ePYzZLQLx+b]_݂swzp'Lh< ^l>`^\Ps` }cj0F2Xa[nNgy_DϹbW! Nd6. Dk,v φX8ϰHV \)t:ԅ2]^DcބM^5Cg2c%39'nc,d_Z,v!  1M Und*/@IzẙNv«;"L!oJU!$!:f${OWcix{¢"y2ZM:/S6?3֩prd)ˏdzu93}.0MS6;qkŃ廨xJmU=_9N>6b4ͽ<Ғ$ͳ$8h}uTcB75ߐ|i!8#6v:-i^W(+:Y UE -*R뉣 R42}#Fۑwצ Gyx+V Y^mO w6odw1d .c? _Xe:8h >@B>(ƓM#>.oh0h{,D3ʗͱF$?M)nTO^iZ {w970~/;cr4nZ\D7..+D2{2#i e[(8,-}7Y~(lIf߳0=tI9k&S1DZ+ 22‹GiҐIEENR_2n/ {3I]SX* ;!ɏ`BA;{E4Z=Qb.*4\H-p)ɏ:A3돿{ZCpXtĺV6hOD9GSo?©k*Gۀ\[00:O=DJlv(7rm bKC)n^@ Sm8>Ģ GxIсv{u]$x2ٞW鬍 ݓ^wV͗j45 T+k iP."*5C96_V5^<FȪ5tB|30"<~Z(tKrujWqr3CKNr=,=[BhC w_kq=!"%v7Vf.x=?vmN7@yMM87W0->jt%g-;3 wثuȋꍯq_jn}ovk?|̦IɋYt>4u ݌.;9Z  E!(Mā)pCXp%׏kgшuaV&cNYcpĬL#l`!P٦Q-."pMy>Slsbm/F_ZW]O;ԧnԽo BQ5 'Iar  OfKFY \i$Ykub(ܬ)F(vʍǰ|qt:)r.30%5'p"ٝ$/o{LDz5gR(X˪-YGa`}cDN᫥-X}iK B5tȝĮHZۊ</HH3½eb8!@xo\rA'(`+DODQ6.iD_Iluoܞ⇯&ɘr}O;ʜF1oyl,J-']{#HZ@p>.A/x4 90j+RvPL˛o.Bgie?;YM=W: y}@zOO¯9/}Ά Hjo 6h:K`ctx>w~RL Q!82zx)Tm2-ZOM:S=dmC#z\zش}e {ro{vW0KEe $Э%ܟ2<|3Qۍhƚ~d~pMs8n[#L"͕hHCиjlB4/dn,UTN9"+V͐l;[rlk }>n3&t2 C?%G-37rK~Ua "@cPjO{׆p_%ˋóJSL{ńy$`]q`%'I"}Go8g57aۅ ϼc5iXLųkw# F!sD$SE`Tl ItH_񨡅1Rn|v oiK$[So |1 \d+Ge`NHNncv@_&6=0mF(fhPJxԒW>Vyߔ>+p?~|L\Y̧x]DYg02ITV*od`gk<"U&ĩ9+7uFup2(Mxk~I\>+gc ^ k~+mF>UcB;@pv<&Մ'5ˋ^ۻUӂ0#E&=FC#=*^;QX,1f)$T`֡Rb{_:-X_9+WX{}wHFMnl$R24\e!!Gנ0رcv5#4E `#i]WuzA2Tgmp Ch d 2}r^6G8|ޅ%ViumH-~X˛F$hfΣj\G$﫣];1X%d%F^f`IqacG;դ,gYH ]P@'a׍+.M*(tnA.H`ߡ] tX>V~)jzD2d[fV6ӍPOr~X\Tt]&]$~E Xꖗ1olkL[ }D:QK %T31 }$gBU*So nZCښкF_}q K<0 ;-›.r$h7Ԥ6$aOu? vu#Kf_-Ő;|8M;-h9oAdU.#XG- ;yM \j='w֌ Ay{8^ qm?bE掃߉Iw{d^K#$Gl^E)ķC5M%2`QЄu^9i(LBJp,~Q;%D+㕸Emɗ>8Sg [nW f[fѮhI4G ^p8~kwyAtHjӫU_NvNϞ;<6l%FO֊ SC ,Pld%te14^8ўPYqZ:l#jv2r=>N㓎yVkQ?)M  aӥP׽u /KB#ܰZJ =r>,<0Bys7Bm0isYG>LHf<—o0W٠+Qť.,C{Fw<ꀬ*bHKmeHO^VLEÒ2[4:FܟjǶ?hUl9ݢ%v%Ϙ@t^AwGOR!m?Fk#6r-.O9nW |#is>|33Ux .hs7 @E6NbnC1N$'eu&eW޼WXf$7c $)a׈HrD{N!./ĉA{){tr?5ҋ,_ɞy |6dHn{Qp\NO85LϟFC/ i~+kseMcc"( oN1MB_]V+Pd)^$ Eg›_Y^o]ABe3y"#b%@/O*=x4 g]`4KsQTwKsnsF3 e>4Cԍ>RZ lC!\ '=)[ ;pr.CRZ8\W&q\(fMQRἃ{"{{!fUs L~~)]DNcRocLn_n]B1pIG8Qa\%2t+'bwg}H9>wFW']0* {\o^ye!suXA;VMӄ:cD@\g -_wGԢ)a1BDX1N}7S[V)?mpXEpgS^TWsez2I4ghk1d^"BIj_2Yy.K01} yS֜w5hDUB/}=E|92VV#lH80wHxP?EĤ;$zD?\v?th0b3~q21:ocUTEF yylP>xc`~"6y ٜ~G~%L0o\&sm]em}>i`~ .8^1l).h1EߛvG^/_. -ͽ. .?sGTFr)F[QyjL'raJOU fY: 9Ii?As6 >y婒X_6W[L<_حrGJ*)[mn#ZaG YZh3c3z[)vuZ޾VbcOY#[ҼIbԼSCjJ0O}sY,C(_!3!Gv}lZ58y,@'ӻl)19:󗞿>/_~j \@Ec+|JJ(_yhw12?cRѰtݵ·h>k`m~;)|rTHӭ3.2,<]gvoF)-[+u-J*z7ESd w9ihGcҢ#}ʣ+-b}5ո|8%i$mKY;oˈpf_<}h^ 1)* YL\=JX3Mq/7J_7o~* Y.6؈+Y j#s>n?A`bpS{jbxrcqH+e| %eH)Y6H-!fɉ~zTqf ǦcR#t(PY^2 $LW5üLN )5wK~?2UMڰBS-bm7TꄧfThQdUI2_HdJ˦)4 'k¦sULzzElX+IHwZ3p+P JZUm"$g*ÓwER4i[JvG[h6h6A9}7iMEf^`w26Bwx/$\K y?TysĨ!t%kf<9ʌ?Le#䧦S`3Qr?'eբ're/ں P(+OR<&Kƾ+RlEAVT"kp\ F `":1ӵS)Zբ3N(fI;Dhjß]OvmZjǕKzz,ޙcF%kU/HJq櫆_ʼe?HKLw2% kyd4={Nt(qL|=#d[wqaJ˰7iCXޖd$1_rG;3UB{ٓ?6%xt"&0Lj+oQvcEٽk}'GI8iV=5;& L=^Ƽk2*DQ> endobj 110 0 obj << /Length1 1501 /Length2 6907 /Length3 0 /Length 7897 /Filter /FlateDecode >> stream xڍwuT-]ҍ C7H3  083CH( "]*- ?ޚf>}ν޽?k 7)Pa!h<@]_L[L **!,**NmE TH- HF 19 0G:0@LZ^LF^T .**h=}aAp#|Pg4f|199G$ .G0) Ag &/"% ~F ^P  =!_G p\?J' `04y!Hf} @ĄgAPf;0'F p_@0 =Py0j c8倄Q((K_c0 wTG_ ]3+I]VSCxr(@L\F #% 錄/F`Dm  EO}i~W0@`t c{R/o3nyה@0o_ ~(q>BB05m4U3F@1IaQ?P q4\_ׁYC(7KTj :<ļePK]`u5_VH FH '#"p0 8!$VN b+G$q;HRP O_@F_$c+@!$3ת Uf/GqINk2yn+8x56czO%K/gׄo<7u[[$LNTܿlLQ+;-uL[/L1&QVV'Y5LRulE UA-Ώ݃R=EBЕ̻dn'J7ucq|'M!A|!R^/ux33R@j Ad&id?+YP˪wrĭk1'[Ye;ӦJv]FO_Tiun~(ZyWt,Xܥ78ruo0y;~hڑ9xɥYnF5, TqsՂx*IkTuGI轰G ^Mj{s[m:gfu@/>׌H[j[47Iu>zUN}nw9u h?f2:ɤa.tiV˺㽿\vXzUP7wj>T>Eq+^G%U!gu02EBNB0H@ b`l}N?7fڮWmG\@t+WJ縞QAeBZDl͘s@o}KU$mN9In1s`mArLT3Ot42"@ڶ%O;|6Xͥh?`Y{j`V0H@X&mڛ&| ,;jHy95~>oj$Bn43~!B*w.!{;iL6ntLG}K= q_Zߙ{xMLM^[Rqh|}DDHof>mlU0>d{( * qrsGN ᓯΥIK*camZ< ju +Y,x~Ka+jª K2 eC,Ցu?ߜd[+S dqȄH tyJ w5֜-8iqk']:c'ٛz nfATjG9lrf-qzF C^rV3<`MƻSXo ,iɍEl$‰"!z4 ̎9RRW'|K(995@kG`ݣɲY:D45ʦuPݻw#QT҄v IsɰZx찮Z^wl= {|Zߔv5hdbd\FdvDa֔uX;sSch2AavC<^xFQUQߵt(vVx/@1D71BvrF}9PePĝ O=酜^E]A̲%.Y6_ tB'LR[lLp:` \۵ƼR/In|/P2!\uTs}s[,2+9E2S+mYOdŨ4!50q p,+W B'.~ͬ, 秣$4d8tRhd/' j.q/ z ]ySDhJH)&8hKWa=4h%SVH+{DĨ@0-xa3h@蜻y:zFS+V0}17XW9Ϯa~\nMGGkBPyC&R"Rփ4ZJt]繛H .bq|Iآ)pRo^E9?y/8n :i8U0yn5vU| `-cvZFm&Vd s%N {A7=IKcyZ\I%A9bp6M!NH-5EWtܓULKd&:Sy/W,>B9F FJC"{w7d_vI {꽨c Sߞ蚎b\CO'JoekrGF+>Կc%T+Cl:?C߶:nd_c~Vx, ς{NΊ‰+ xjC#&W+)̽6.;[zZ F:jfyOdˆ yjVbL'Cs+ q+ ~JR;KVbcR#F7={\LՊ['վyL`w+!5(b<6I~jX]<V 5,*ʘ\=bja' ׭,lܙd=N='>!_g:X-eOD¦ nMF8&!6l2|-75ς̈W.pK"%iC48~1hdy"%P\)E_ m&eI~/p)8ɪ+lDͰNNLXUA;/1c/7xi6FuHXY`ePZYN?)랭'-$u^Sp5O>d?~*v[fX ^7SW5߇N !JY4uFu{3bOTG9r fૣ3Rq:Q +A>Nx[ &1]ՍOM"t,y4@I.Kzyґ' ?L%M['\rDks.#;؈l vrQΫ`؅;ٷf㓎́bAʼҋ)?_!ou5miJf1"{w>l^q> 4-H{j,!aW3leRUY /&uo[qaӎ`=|z#hOgr Uxg'^&&,})9oqUު16Ⱥy,a_xt{mΫh//c1vpN;˩(=zpĕ Riԏx3>Y4pyzZۈvm ?;,t>̘ H=eGU)uռ?z^[|tLgp1^߱@VQH/#Zɋ[jlE5Oס2rNm:"/\tͦ,<\)@*qRˉ5ԂmndukQFV'BoSS=LrfRfT_Q_yOFH8D`B`G7,WȖo_6\MK]Jě'JwqxH:Y7ťfx[&!JZTY# Mn*sG,e]X% L~Si|3>މ;YФA% %d7i.BWY$oe5/*8P7%P΄352_?cbң*mE;ךGU?Bv4 ч8a htG6GlP-i{0I<\jjqAHCXY%O.74AoW b{ߝq>\~y;-j28,yJY4)jybV]chspL2tDj36m~-oN0)9[ Q}&k= Ig ]-eֲ mf[Qp~̎uÌIBB)C8]SY.on\ J`Շ-ڝ#XGC1ˮIңnrRapg /{ܖ}|.a9$Jjh,w3(:>H/>{ Ug#GKŅHCjQIRVgmADu$tvnowJ=Lps&n .| ƣb%{DAwL1ϒt5̛D:8~pkE{{h\ISbeT*o8ΎqLXCp̋ZO2n_pa͝s(@yJ8LT“34$ `qf 6QJwF+}4WLRwтcBNH& s 4Z"}J93l}' iEَv>AȪɹ]:Zg۶:wYm)+h:7rOֵd#LFRg֕l:Ý2~W9ѵB\t_釕)Z.QOrL+m$Զ ̒@iG]_6"R)-cl:}-jVӜ@u[`5RGרRb(ネ7% K%|IY|"tmί>#Rea$jn ^%r%Sa/&wo~u},cU(2"o@k"{-Gz;<bі.Ԝ|C^u6o**wT9^T! ivb&z;Jjwg&wy(lil)  2'꬯ og ߹2iar+L$^Jn6J ԟ!3:--䊺Y7VZ VW(^0t`ʱnf' .Pl8b%ENL6u!`1)#. ~.n:-|ImUI}o ],oYDq2hr^/tOihF y:D\F,dJN0ZMlDlc"LN #HiqbHYRr򟥟>"||Q" 6GX>ߊѥ#e%?40$q+`"fWz2wHj*n=qr _S0@SOE}ɨ~s|mjcdb4K" *6?.!?KX endstream endobj 111 0 obj << /Type /FontDescriptor /FontName /GDKTYR+CMBXTI10 /Flags 4 /FontBBox [-29 -250 1274 754] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle -14 /StemV 107 /XHeight 444 /CharSet (/b/c/e/j/o/s/t) /FontFile 110 0 R >> endobj 112 0 obj << /Length1 2255 /Length2 10081 /Length3 0 /Length 11401 /Filter /FlateDecode >> stream xڍT ҝ"04H CtwC)-% %ݩHK+HRg|K[5k1s<0ipJ0'[ psrqs`11Bܜ)pW * l醔Z!-`P2 D@"nn ap;PAXL20/8 ߟVk6HXX/w3,Ȍ֖N5?!X\D@.KgW.Nqh]pw i3_n\XL]{% @ `+%U q @_Ζ0gKj8\nnK/CK'Wdi4vKIp++I0>Amd``+֯d!p5^ zm!P_Dl.@=(9$R[fvsss `Ok{^.࿔_b$ _o I #]-78Xv(H1o8`@_f!A~u@mec }9yY9yxyaKi ?)Ama9 /Faour `m_Q$prˀKg?&ȑF!C \55j`j,k"C:'o9U фY592 քB~]=H'nC.#zqE_*0r7fk yp7rxV_#rAanH/u/H@ 7(J!F(!!oFH7Bƴ1~#9!Nm ;Gۀm$a q4"K]^.`HDrt""oHW(r"3AV FdL^ o5>"q |; s lcT^/iG@]3ti=; y?7Ȯ Ȇez6 )o"J.\S cئG3g'}#qƞɡw40a-xDtmB|ق8a!#%y0ZB+{qUyJعv]2X}~7/ˬxrBXPVzXƳ 9Ցw]jf<=}\j"$(hwq777'spD Ӛˤ0U<mQr`| jfr3_uǘ~U޷^Cw"5CI۶x'C_xKetE-o;sE\=P(~j7{2rā'Y]OSOD5q rk}c;\Bnĭ7{-s/NS_Y>M^슺$QfY3iV{ˠFh,?lH>BS- Hr>Ed'6ܯ"{8CΆcU=QǑ=='nՐ| Zo^lG#>P;A/殧[Xr23>XUU0"ttKQ-R+zh2.Z Y43{[En): 33,'6CbS=g8;0m\o@|.IBݥ B=WuS?ej\d&V!|$~,M~,w~Vtfo6njO0^ohpn#zD2/Boe,̜!(,CC'Pkᔣ)|^t3fLm3,X4MR% }gp\RgH\snJNu.';)S*P'ŐxF%p։kkKOџ{ݭDm֦ο qv4deb.^pn|ETᾭ0ʱPᶝǯxKD| е܅ܷ,1~:o?0v%!w fѕ҈,˅M|Z*B$Qw|XEIaWӠ xt˯7'5sX1[%a{$.\JÈsw˹d6Ky?Y0`Zir,0 4^Z&kg q!% ?wTq~6LȎl=2W)]ެ̢hNNQ)d{'wǯ6ZjϰHTaܭ^4`ʐxb{FoY}hzDbݘb`c7z-.| ՛Y"4t7)7K[;9sJV#7'l]piґ{k6E-V*=O~Cv-R/q>"vԑ׊sXPꆞz4kFMvNd9^8S [5$^aL?q4zWtWo(3hӹ{[uQDZ{lق@8/;q|k/#emTkK_ߥ5=ξWCK{[@i,213aSmYڕG\>YO֗-u=ᄡ`Z57xK勊fֽ>lN9{kěY7áJX2W#~-}PM^fM g_pi:xG"VhNr㝏b`ܣg]Nj]ﳠ=wnׇ|t v'γf{ B-,Jz<ο^oT9=JsX}%G.l96U̾=1[=A`ȼl.V rdH$FK0Fd׵Q%B۔4.{ y}+~ˆ_/z=0l4i97}Zy5Zi iw*"H~ǞLƑxR-~yfzFֽym|_P okqs*H<"m+oFin4!J@Hk^EgHz;3]f֬:> 5"(kp-v.}J a%s.-$wւ#yೀp5|nUGVC[ 0|2nBt6{SƁ771 "|$*n'qD!9 tӔ oM:6(uulHCfdw[aΧ_Augr2Qb!er8 o+jvgtylGa>*ye֙S>1OGj/lz=?/Hsd~e+R}y"UK4xxH1B,Z-jC䈫Tg 7Ny-C'f]{ҕ}6EN꟒|Bw6 spF.b "n^vd=Y,7y}/|S%+jÙ.kXRgk0y.]X c/b@*U ä4U s[ gfɠ dckҗ VB*ȉF]um&>ή3,:j$ SqiDQ MǏIk^ 3/b(PEWGjcP9={qݙPڧk`(Hd==gw?D A o,b^ݝ0ԣ<gB^YԒȌqӏ*vZeuO:=n|/2ϛt,}2eS5` ωD|Ətp%_cu.hӗVEG[޲+rc$(e[Z+QFQg ]qqc-M$;gt[_ږ} ӭįUh~E I2nvJ:*VґږD.Kre E(дk^u7;[_Lw*q*kBAk=a?i/t-A*,NUGq$5^^(1>q(':)ipħ5; g" 6+OPc`b^B"U/5t l,ňzZS32c,ږk_&_k< Fʼn'0j->ibvq,в#Y<zGf#'O嫢(.ƦUUъ~aub{n:.!?i|QiJB-#t>umW.].vk>ܺmԟqB+~ gIoJ:wȾKΈQ=ovmx6a۴XjW@ an3_hq|-#]~,|ePqYGT HA֐#3 vd5Od*3a1IVLfPfw_b}gv]^{QRw*os ݼ>] Ey65!:ϊǁ^?eM gT$$&98Ong폗A6ݴ;0Hi6ὣ^cI1aB`~.['Z.{e7qty' '"|A4>I^=.a*l0ky4=_es?S! `_[ؽvϤM63c3\jfT]op.O|SkvXn`J ,;1\Wճq1_ fG K<%eAHCGM؟.Cn JM)1f UPe-} ֦[-_kQmm?~ӱ3Ƣ_-JHsQ pśu=J#ix1 *q<*Y > Q!wQ]ئ 0yw#f1;Oѧ`i ؚA$f ˣuC GX dS,rxyNi=*FmfV]iN!YG}_vC;qcq=m%\Z7dzL@fVNU"̨ylc.MRgW.c$vԌ`?%F2ݓېbbdP,L`Ob[.Bd~n iZaPO:R\;k}'ġd_b\=$]3r{!nJ⠡'vC»ʭ+D{ݓ7'ieD g|]Jk]MЏyU=8,e>3r풴@ƠJw/o}nNBG+ʛf"J1J%{ДiK 45#8"^YW %`e0@H݂4©*ĥP4vEcNCn4((Sb D_ ķt&VWY99ʅCPFݧXq[^D{VmkJP5 z*F{># la̰H)t(ᾷ[Su̓/[ ٫Ohgۨm8Zi&K>ךUOK9Ѽ~}d„ G]SZ,.ʁG;lOhE*t1hj9)MܝI&DWT'y/+zw؏s6۬K󟱙Gi4]+ l;8[ox4X7 RCE5IAꚈ2=r辮 pRXyb3@ p2sBE/gLQ2ۣ̹Af@pTa+rjeےNnN(yt&z@02r e2 hTL7ۚLϛj#Lm USwja*h$X4y7.HV\zBS71)`~r!tO}*=r&O!\9oSvn;{GQvuv).z NGPFÍoW_Z8+R0#.M%"Ny-/%)j7As$oK<4ߩq ,{/U){Y20{"\c1#۝rD9 tXU|ƍsO& Ҝ@T?lN-Y@Y6_ ;X|s$3yׇROo.2?,:z+#סĺAAȦŔIIժ|';9ie~\howf:~߸7"GGaQE,1:<1q81_,NF|"A:'^&5IȐ|pNb{݊H?YfͷG(v8N6}P%]+3>З}gmh.K[QoeA챀gJdZKH:#sQ|rׂ_2FV 9-9Vf64܎WYy>H/?(ib4E-E&d/} ,P[6/YRzGR:526}D6SXFixҕ._tF/^eUZ xco||̜tUYNR)3WAcm&h Y` r؃-?Wȳ$\O9X>} lP7.]9YZs1NU舱-?b^=/p@ ~QqY\ dXie(d7)E W5 v؋wQk!Q1X CATȣhӼe"+aҴZå> endobj 114 0 obj << /Length1 1421 /Length2 5943 /Length3 0 /Length 6902 /Filter /FlateDecode >> stream xڍwT}? I ܄FwwJFlc4HwwJ7J#!t3y?}~W?7[ 쐶0U$Itt4 $ 88Xz #ᡄA82sA"]`! XT,& A hI2nj"0 C B:?@_@W :#W q"p)X?ÏD;rz@vBB\a8Fpo!AÀ8  C`p!v04Wh C;iW??!P(Ax@{ ͏Bv?!.$.@lq*!8ah8 ]~bfb?ϧ Gà{ 3[#°{0F4T`XH\LH\s<? y`j?aba~>ivp(h s#ΎS˸@s~` _O8!.^v5b} mME?eTTDz}|" $,=3Ͽ:7_{GF =O5 7%t8BÀ\H}[+GYWTsvWbqˡĭ]Ma7ZfV ,$  z8F Bij{H Ńˆ=3rfk?enyis'ED4Q'}嵃ycS]w`M<2sr{iM2t/=h.29;^CJ߿?${pҕivtՔhӳH|dm0Zg+k|rEdnm-@G5b,u@MoaXjeajk?ܷh|lhz-p:nYJsI>aF)f ֢fe0&ݙpWX5C'G nf(y{.V{.Yj"K*]E.AJlvF2EޮY8Y`W[t?MO^s}޻.e2 _K/wٶtMaWPT+݀Oo!} R([=yJG?>8 :vhZ扯WeI%|r`fˑfavi{MŤx/hi6WFW U^"wHJ1ǎnGqueo3Sm;= v(F h| p-}~Ԝ O@hZIȏu7i?eMYz]M6{ֱ0z|oߴTS80w\fbaFm|s]ۤoCPakEMZ"ٳS4/u(dYγHOAlF*/ xWV7YTs.+fI\[&GvM J(?H]>uՊ癝~{,ƛxX|Wg+ 8mѢ <Ɨ$7a;]ȶuV ^g_[cצ naCOhFSk RnH`Rڗۨ8綅.N TT?QrE.F8*fn}q"P.&߷C Zl#E] I**n\%]Xea)amy=tU=xRP+/@H!y@ڨjXC eֹ} {&h C.evXߠ3{T;ZTXk~m#V]ƞ(w?%7joBod%> m[Џ};$C=6)?z枊>/փ_ƣ(7Kk D%|lQ?NͿ Pc?YblIYm\ e\۟9,=׺Y='?o]m]4w `d](oU"ɉf]?|!Е@>h@9SA(U&Ǻq/ܘ/".³]AηΕ2%$6>[=sŐL3٭p2qcyՍcOK0R-N˪tF(Cv fjN1) E,\`d-#€*;w9h4&2/,f^tfCڸ'-n侼αTN\dՔ6L\<2PFRg=5%lU`^jw^2,V"*1ACЯ!g(T oeh y"7j*r׃CEU6ѷ2tK,J꿘x^K2&#~YnB0C-O72썄w9"@E2k*m);V|.Vu l}oYR`lb>wcZ鬓1y˪!zI*lG;Z^9/jf2vj8YS"ҽ3/V.#tvHuyM#a,.XNΥJGrwhhf $Пh+<{|&@1) GD\:5zYx);0`YӤ6Pjԧi[iM+dwĥ>zp!dͷڬqPV8'wޛD*2ç\)A޽.DL!55$剢-lfăG4`26Xе1^r;# J^FATa]t w&;{=_j8EX&YFI]~mAg_Pf^lդ&ϽZ  po$vݛ(0y˵=?"[˓?= JY;̔Dn-uf(+k"R-?dz< ^>WU}-jDyF 'Q*\kǿ&vy_C=tR-eizӅ':¦307Q>m4asbJqVJK5t2sQ]J.A˹L]sz \ v*6cuj{l2Zsr*'kZٜ{Eh vA2v1S(OW5O+{ <(U C2[y>ްAb "/)RmX5}&׵6>hy&δRWҐ'wWthlDi|{bm3@I&2?X~MYq3#h^rXN`!}߀\Åw?}w5/MP ;K٪wzl7V\*8\AYd{JZMskr*w ƎRoo.9ߙO7,8$W d&2n,,0cY}^[Rŧ w/𚳌5ttX}k;؈2%b)hGĝo ׉mORs["xoJPd Ry|6M􁸯v+aoryF*^(Lڶ5Ϗ`LlXƾ y{&y~wlXP1 Fg 8.5 6<'6m%Lתo1eD -ܨ1H=)iz?=3QN6&2_$BLhbPWRq_ r+gȘ怌u(Q~ 2$'f"on-:gs5u,&?x9@qDmp^3(-9%+2 (ؾ/ nO6~ '0[χ,T##XIExlS,v\L;,mx"}`JįZ=[47Ů&n#E7nn-FNU7i=0z{11|;z ޺viu̳dpYx='Jx@-erhjPn|:rg@mkS9Wv4O7|u-~SqQ<['dOW&퐛"xqڽ 9/C`XJ@CpuU> endobj 116 0 obj << /Length1 2452 /Length2 21000 /Length3 0 /Length 22408 /Filter /FlateDecode >> stream xڌP]]]Npwww . %hp=h ;O߫=1e % PΙ `ffcdffTr+::Ya 4včAv vY C{G^@ kotwpt#=ow-`l e45ٛZ=' /{z%@tt" P4Ìni\ lLvN ;3#&#Prc,=XY_Ylljjo`laeg0$ݝvf8ك]lM@ )0_ - [9MAe`Vvf0sq`Ұ$-:8xO%_=+Yx9;A$>V@x/'cW < `$Awr2fAefog2i+kˋ:QQ{w;3אq|7 K=eoJ ;S{`hj=qX@jt{Lv rrD8LI70F<&".fo`XLҿI7b0F(oʮ+q+F|(oʧkF욿(oʮ_F onhlzǘ;WFWb_ fjoHNט0A)#h'_O.o20/G.XAGMTeKK tf? yvPl8;#s\@Da@qs%w,JsS;n0?zF`U:h;>_G]8@NoP A'#VfT:? }yoH@R d*w4_7 j!pc؝Jy :HH/ʶ͍ɋQK=lhkJۓandH;Bu=Oޚ![d)s>p#+aܻK -Us!<`҈ (5K@G~2{s;=F"GsVa5j:S7\"i*/уdYy•Bl$+ VvM}\;YvrA; J0 ɔ #0}tj[%\QEұV3n>1Shʆs΍Yy7t@N7xlF!4=_rbUj eL،$[ C2R}U#z=xO5+5b9UHw#EynnE 5+DG7չrtgw;)JD@m{gB~.Jj.=]F_&#NI]0 w꽨 ^؇W/ɟC 1u52coܰcI_@M>so6m /JbfGd*MպMdyx󚆛HA(9l3ı4:cMm.!z3S$YIv ?\@[b]\(L׻gΤR*vCix;VՔsY`8tЮ ޓFk3=@I9\|&K muJYzVLvLֹ ϋ &V%ͯU26O 8ݸG!|8jEmx >,`LM2jC9CjPwB[3 gZ%I]508Jg؜}iDgwT56d×^W6v2PBL[3^@7dZ6.R @So!}/bLۅFGQ/Xv:bb,efw%`SCg#jsf&H> ,D*^mlV>W>Ӷ&m`aA:u7H IkYntSb$LH+woMQvM)r 6ڮ$F:v\zUL,<vJl"1D0 Z bewC/Dأe:èu[ D+cTL$ QC3†Crôml:mp|Rnˡnp\t=}/!R+lE+ޑ$g2?4K&~F\]<-X7 l~/ V빞oYxUMcy~SZl\%y"ĔCAKM 4тKYPj{ʘLAe;៌: vXɨv+pHJ" Hv_ װ -0|ckNJDC9=+$q6]*q!y~3C3 /` ZnxwdY t/ ahZV]:Q< /?ŽKKv?c+O? v"]}%0i:IǿHgefuvKf(L %Dd `XW3hc*!e: }_=9 :R?yJqt#9Wקi32FĥCP>$1 .MUWN~ZdG\MοVs }o>#n4$-c &&M tȔLmʸRã}b3˔4:ɤܗM&sECdRh NӰ$Z/>Ϸ M: QCҝgJop#$|~q[ͮȵ+e(bBAj/Dm'kz.*q3ߥW3`k+\85/OxY/y@URm|#ݭνQ=J̃N9p0>0@X62߼R2Sm-xNO dt]6- \!*IV 8 N!q`<3՗P%睮v8 ~o4{B52YhbL޹eO.jX]/qXzɜT> G沊)Gva7v!mVX4O@ڌ+_Ļ).WvY%"\d^!L/ CNEOydK3!&_0%QmvO.q!w/W@Y/#QX9E+ jiC_BIVݥtUWAB[%}t_(lOLSJ~n B`ÀS}-eJ RgaD; zZz‚{~-K07MƉOﯭ(>b8"/)>|d3r3q9MȒwz/w D|ﺽ?#Ir LPg 7G]Y,S6;2 *f9j״ :i|DϝCW*ư* #s)=;~=E-{" yݳ}L@yxe2B:{5i`;7zXSbw:Qsz ':F18=QY CAR(s2z$A+ϼ#O#?xhe}gȼ4</F\v$3! oKFKĆq|~(xt{_un,5yaK V%!Œv'{$xx9H)mJoP]KO'>?0 y~ڶ̝! ֙5-$B*ǯ|"f2bFLa> pNO6(c/rr xZjU"eRԁ+8uS?$XzpOtvFj%G%ӆEleS_RmAZlo/ y9MY=Z"qLé%l}AЮR[~d_Yh6Y/L?@ g_jEyel. zOYI#tqBZdWA/x8Jv3p&i6]11dK]l1*w`VޯWz')| ':wD,7:y:|LE? fMm- 4 ] ?HUnvOT(u>|1}ִ>V9 @֤^g#6p}JVv,}LP&XLn^E$6 -4},(˓> mL wvI5=iТ9d;)% S=p('rP3:pbJҜg6N^sW-W{}n{"r;ofwFbįUufIj\>Q,.C/fߙL{8fp4{~ ~m({/KÅEXmcRPht]g })m3UF wҿ.B/:R Ty(nMPf,e;unzK{TS -z_\}. -Zx~UQOx}1 Dq9%Lur1+PW#EKpu{Bt,U)B5pcotO&CғE Iz!%lpsC~0j^!(eT{Mz̔CXpqZ4Jdu8aj;iDޠ0>_iAOe4Y|^X&*)ΐiYೌ~@>][ȹB'C?W]S,K C5 .PiQĺf/do2p6 QPL2'VX<g)* }_#(U4lohDuحٙӰ7 Y> V -iAm6`jـ_.o0]ܤ {rjdQD94UFQs%&D(8zrܜ_n)aڏ[9,&?J.S|P?;й&yA0s㭬Ly3' ] H_dp"428\>njWx[.iW㿳vZ1^:)0]U-H޵hc[Bn7.7E;IRɽ#\e.3k\6PU.F"j3$|̐C氋9"*m}d?̱0>+ v[^B{rf)]J)JJwbchl4*,QuRz«(}?EPF2Z47F"xSB0P##2GS}aquS]s"RZ\^LtTöS1.Oz@]QOJ@>;l ,pD5b~b*ǖ,YEKzMm,냬r" 6U×E}kTof1C+Id氬sgy;KJ[1+ ׼jaqTn "+Q܇~n@b6snˤ>GDŽX>;Kmq2P;zsc9nG:sf|w'x.qyI]BFh2!--{RM*m47"Qr N[vRSX+1 B\RS#'%~ѣcfxtL\U; w{ɽ2Y zkg-|u[kྶV2)q#xC_Ĕ2ǧ }qϔe\:.98t ' W>>,w vLJ^5P3\q4s5z!qVϵI)TpqFTzԌPL*uVMř " ~?iR碮xnf̓=&ٚxZǠ03k)@C7 8۝d4а7~iGKiO^oz9R76{:y__};ϧvz4|cv#hXkN=dG{#0^;!K׹광v&"WJXSvOCsZ HTot80ubnJecl.%/?s9IN6qbEywGtU2|XAQBISD+Ʊb}j`FE;Uci!F*4bV`}'p=} Qfß=D3{%8Sak~Nˮ;Vn{7/T  GUP g̴֖=.6h?lEެn#%fz_avU0畊^Cd`sMV ֛frɔ EC.jX:{sQב?!%gPup< hﴐv(b% T„`|Sr6{ԍ'A(W,5IY7HB-p讑3utUdMjFzuYaIuuW{"G7"X\[ޖ$[MYjbb2u DѕA/T@r_B}Ҙ9߻^ie?!:. 7^*ĿW=\8|'lWފ#a4ZgT¢e(xbs$A7m_,f~Zz|tӫ:-sRvv- `cjUQ%W?y"4fNjEsl@|c#–Ba-SԬzyYa s:~p+F& `=`6 1_K*aˈNF_`eRPuc 6ǟ vqP\'PG $ʝfw r.? pkzm|Bk "8!qfZ D6{s`qb)u:ùVh:> GCဵӰEt{pPvuO/7KdVvR1&D_ 3aUMCL֪5hr]%U3>53>Kԥ8~O 8&[A3(Yve9p:DD&A.͜g>y_uQpHBc]ezxGMرJSlE/uТ u jCE=ޔ- x`6\ Lv[<ѪhYUStp*4Lݺ6x ~Y}cfVwhdL'fSF5V#(| ?4!hCECZfF6ݢ|OZ[R (JuV+\2XH^7!5ʭے]h&iZit˪ &".te;pi˛7Er: .c劃6l€12!Cs)K롤 PdאT(X]K$^!61ܻ^]Պ=`!WMǏo_ :2?_g' 37j z|UeԖ{`t3H+uG,rG-+}C;D'v̶d9`tRL=y@I;E= &.B1jP Ķocv33+洝$*0YwG=P$P0,u㦄eܙR֒U0$weaʒ'rw,'Wd$XknvӭszLq>)K bfb?אZ [eہTלP%3Ij Ua;eϴt FS9Ey#}m`϶Gh@u3ȏu}Yo- ^Q|4s6,^,vOscBOwR,321?͓ʠ!{/4 8J]cb+Kh fOq VxC= W6ūlsڑH[QfUA-1mi'{vI8 I9,Iэ>_ :ہ: a.ƶB~!<>~p|8Q jؐBkX͕π^yGK|{g*Ԇ^!S]"䂣x W9;VKXJz}ܟTBkJz]ho{$2k=rI1RIب3"vxU\zGO`v)7eH6~vBQeKCb"7P̧mnGhd7 >1c:Ϧc\-]s=!OZqPrqsx Ba CfqkVxf gXxRU;.3xВUz?1r@)TOqYUN-a{m&{h?#aܾe85Łgճ0{0Mc5R#J'Jm HaHagkD %{U(=[ި3˘P/B֝Ȑ*BGL\:>^8i*:vm6v! 렏+#Ԡ`ShOL4%^w$A6ߖ}mY~ Kc 1H/(|jpÙ" C4M%yj[MzsizĸW574 H,L>b(g'^tI!e}?fٷj 1]L ޓa)XU,;X*/ofԤo8_bk4^ ӆFGLK ]֖ZFGycP7qNҸp.kXj7CX!!nVsC4Gt4K,6pI6تu'ݱNqOc͋G[p^_xo4}Q;B:8/^R <4-̇>d}kbؘJƤͧ}ϵ Q͚s!c _|E;\84ұ\.U[}"w%e]X?J_JObx]l*)E@5A]!j{z+V/ϒ{O>o"s<ŗ>Nd4I~၌)CkǶsEhi]>ͦc":)foK&UcEa)6Gn*yz(k?L}2^#yewŃZf݇/F^2ʆߪqAH5~ <`ȍuwDNCJq:UU]{dմG )2}jkos1:݃[>yu'i8EN\0< yɖ!Z=u)bA7h2jvYP*$}\Gyc&+qGU1#.1a'7ešUyjkGSPꆁr@׌W12`Xo8*Q, C6/ Iu+L^[9!`x2.vӗ<*&-LT @{A5)a+bʁ9e )wck8(_//,yaY2{ku?|vT: ;E " \6^̬lDئJ._0/,Xޞp gD5b2)B{%bj筤}b4erdDn1sUۙ;H6n6.6i rbp0-5}6AcyW&oAM,+\EɬuFlCB(W-)7d.P05$Tޤ~h.Έ9H0fsdz}{e(!j- U\ND*<:6QO-ִ=-89guiLK;vQ sa&: ͫm3ĶM鉌jù=s8 @u$Vc׻'q =ӽ8VNs]y˻@_&^Rf3-ZΌ`YQX ?jp&9ʗBuш|@=}BU yJ_}5h+̱mu3d){0;2_h{k0;lW5GWT /wIƟ[/-E"m'ҕ0":݉'}5RYgr0xYt(Ebf;43⾎5$Ƒ~,I8L@d|f@Qާ l]Nm(.01!#ض4y>b%KcѧX{FI]w1wXQ?VD:|u1Oxl Ӧ90.ºɃZ.*;}]F~B=|.?&{I6Мp;p&̽ceh[ԭɼ;Cʚ6]Ӥa4-Ꙛm*Z) 6kcE@y|Ѱqoߢ_4<(q' Ӯi(pnp^ťحV5G;" `̭/lH0}'pȟqSǎ<渖_-dz(\ql)`f9\D?>{d6̀Hfq҉Y& WP{9v۠w[GRp" t̲G:['(C Xcg\W' T~ާN1m}!UR6:Q)J\.2e<})|Iiۣ!>\3tUʈOa%QZgCLnGZSU=cHi $,0ϐhdU#\Jo3k ɣ-ܛ56R%92ʯ͋'evyaA JՁ,Um6V1 " 2$U@ q4Ld>!r\G jg> GTFYl CRsd A yNJG)ne# <0w^Sȕ &J eo?X;8F 'a a-(w`CvB~~(P&?(WfbElZj #uSUdX@U#^iAVVB mGаV_ 'vH"MA cnj^*G?K> jd֖V`xA/V$:8]]av20ŭgt2d?j[RwDmw_zzث-+(p;P?thmgTxpo9[H`+FEs,\$AΔg[O"R(PK*D}ev$ڊ&^ۋL趠0#ϲ-@RD`h5!Eֺ]e)V0H,?D6i÷ ]dfr~ﺒT'n&| ʳ"5Pd9̦z _ *1S뤉!Dtg2#3Қ:9?CYm5nr2O6˝"t}qk:23nrKK"$\ րŰ0lqQM-"1qVu SthERѻ(IwO*C23*zS w!Qi>b:x.YmB=*_v 5ltRYdqj>/ S:`pHvC9D3 8932" U{NU+`2sKURAEwXw:8?Hm(̚=Z_{[Q:QpmDfGj?6wzf,.?+Ay3W+٩Odi*p }*ʃ)ܛ/P\4jيsH ~Igpv 2rDF05c )yV+h+p8{uo\dSh-v\)dؖQ`<0&uWZy2YPW8#U9YWBB;E ispŠf2҇)R^mG; ^ن?$Ɵ#%풯yƞ$wAGkk?h+hQڦ"ycph4 iKu.vjUaLd!"Y&CYTHNu$߼de ́Ԭ颋ڗC8"8pdҍ;u]$2B~h1B'+>DVڪ@?D~bLXj8_';Ȑ1Fyys_^Dg"\R_);!ՇvLNU n}|P #h*.0![=dq6G6A &|< +jcrWi/T27ѧpM-q3W,`m:AF'M?,yt <Zضqj+Nr˺K<Ŵf38hWnyxotlrGXE δ(hAoJz4FWB91]uвT79ccR|:a,˶EX^zgWK/Vrrrj? >oWf!#h#K) tlm nN;4Ya6HY;ڡνlq(Ʉ],2iWa~ Yn1El{=Isҹb=fcce+^¥`6^&eI.Y+m_j"?+q/D ~vx^s N5(">$ orC {U/ee` (%٬LzsuTUxXf<؜Cj]QPmGٌU:P 4J?9qמ RLȦf -R$uk:h'S|w3:Ʉx\+} AOK嗋}c>dŹ|XW,oYJ@JH2_T&{ɾ%u7d|F#$~ӥZ' k{EKQNL$Hw+n 3{amxRUEO篢 3iϪSY{#$92杸 kV0H뾳CB>:Da\-V3e`wX鬱,Ujk?SmiM-zzqb#(=suO֪ בW+Ň#K+g@~Pj%NMg38ۺ\%lZ 9]oTơ˼W3[\:i9&[Ly'y~x9wZ7z4hdZ؇g5?PWʊ Ale// ?QvLCcv_521sHXKsn8r ӄ++mF]#+,?Թ- n6k[ ,3;MjO҅ "MPG|)WU^M|}I3X la{śSH@`>#ցKAC5rhXakpWnIZ,OSvKXy"RDOGƨ*bBɦUM%&dL*0:A=4Iry g)6[Hef.F6MD@M|R.$+Sv%ȭI#@rX=-WמTAXkNBTP7U{ԧu~y${!\fV `ވ(&fg`}P=ImvmtH}+Awbf^Cp=3?U[JrAG1gs6hǰdO:q# bEAH;Cw6DCCmK$fCHk PAG.n&_8#~v}(PXlr!%{>jn{b;6Y-(QKY#\H' e#ʒgdK)! X:T+mb)j&k[kИ6x-$$bsCT{fL ^hkevS[FlNz0|fЫ Bd+\|1ikv-il ڶqkWKu#\ #|Q)fD}f]t9;(Vq5-mMG!@qVp{NyZ"!V4^P8+A |NiA=A=a!dpj@`~ZZoޣ>GRKrQuCGCҗ.@#%'$լ of Y9qT!3_5yFd$Oҝ4W 頄𿬣7*Yj|ə:ѱ%]%w~zF"ݶpK-]`D]b?O[Z=sP'BsIS@1ULU®)fF"o|)A@-Ъ<0O @V[h$^s endstream endobj 117 0 obj << /Type /FontDescriptor /FontName /VTPXLC+CMR10 /Flags 4 /FontBBox [-40 -250 1009 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/A/B/C/D/E/F/G/H/I/J/L/M/N/O/P/R/S/T/U/V/W/X/a/b/bracketleft/bracketright/c/colon/comma/d/e/eight/equal/f/ff/fi/five/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/parenleft/parenright/period/q/r/s/seven/six/t/three/two/u/v/w/x/y/z/zero) /FontFile 116 0 R >> endobj 118 0 obj << /Length1 1555 /Length2 7680 /Length3 0 /Length 8710 /Filter /FlateDecode >> stream xڍtTl6! !ݹHtwI7(..,KtJw7ҝt"O}svwf٘ p*J @#~ Ptc3 ܡp(! OiaMg#$%e' haw<6%jk_-@PBBw:@ڂ`mr 0B!H()DJ xyy\{Y.^0C0a'3~<6O!B@wg-~CC -+'XO/)WBPd-vPg@WU`_@;. :lO*@wn"ݡο( *s7eX !~OލGϛu`~vP 1 P rgAD@0x:*o c wݑ@ w?x~ OZx0 CaxVsC.<iO坼pϿ+hbb'bpo#a @B\ &gWl j?)og!(U);;A.PgwJ@m6n7` 50忣Hv(#] AJ[+ A_o Oݾ:ݽ'ww;[l흐(@|w -([~y#~ݨ ے6X5w7.xRȿ oX.)rg 3 w=5[,ğq2x?C7oin+}Ѡ@Ňz'3Æ2[Bx\ql Fnp/3}~ՂٙY o= C |FoM0_jy]x y7UG̣?֋>ƿ3}\>Vd7Gp7 i-f^Aܣ2?M9ߵ#!>V jS)v?ŽtM xeĖK/J݊mRZ\EFzK9s2p޷U oblyub"f=N&3Hf&؀H$zA3;aT ~:jyk ëM^kF̣#GQNlso{?N]hZ[Cd: y^P61xIâcI.|Ue3>WN^אEЧm*[B\R\uvȭ J[뤑[Q?9#MkO>>,JW*8Y&jŋYI ,ɍU/$o T5»AíJh9I'n( Ũ)v1m.`Iz@°˾*10(='e *"^s̐C4Pz: _gNQ?VchSi1q8e ߖ,t>Q,i'Wl1u{[~-Mg"E+bEz=ތC3Zi깽GJM$vmJrѷ \9؅D]'qn'v16ʙdWLSyOAҹB_=&"[}#N#1h18˕񳔇6ELBtkQC $PŘzd,9Ⱦ4 ^TO'~ 7l_i;Tx4e^ep*A-¿M }]O _qu<`w~%>r—ʒ#!Cێi?qlXDmq": ;;+C86s*Ҧ %[̫LAhR&h_7䘝_i/L ٓ P_yMrɽ,SQnbC.f)'TSN_*85K9ɳQƥu{γ[)٢XOp6Z$22Ylzdpg2 tֹP@J* ۭ<ьp {P2ޔDgR':ؒ? qNL4)A{ ".g#͔ƗE$̙L/0d?Z39a$bDm2dFU[BkLA"7+#E-&caQxxr|vWKv/D-ĆNxNTZذ@JIp:uڙ yq+*jhl&YM MHcH 3{-Y"=j5܅ C֨gҩa>#\^ԚMH_K=COn|pvǪw AGLlCF'ôhyA*Xo)?[ƭCwg fQh-՚xa/GXAs  I@J Tcu)_DqfՖvqnf[ Tl f'ic[$Н/3OOL'ɾltN:y&Jq̑NUk'n#6κJ"QE'* ̏% şVK ,~VLźؾ:_%|5=WV7]w+_X&aoTRE)RM[4;ӕ٢耤Kx'HR tN%}tHK_{ЏrK*[I$3yǣvlH G4'WLmcN>i${5I8jq(O %7>Њ2Ȁ;߂j赗 hqh;67NXNN6 ʛGպ YݲV3>t8.Ȏ:IaFHI Gws5=5'0*;wGc!aݐ2iq6نh8 . IZW׉B jrllM873EF~^f7Auq3k[1`]X_o 6ɗ" گu)`D얇O뱥Ԁ?y*~,*6qqK_Q Wz6a|ҤzdKֲ3Zt0 HFc#+5g^.g\藳4㬮J9o?3svhu/0yZ46U+̉l 1WO"'KɩoHc_~EcmҗvĮQ,fKLM8AN1%&g=zVs'Jpvwuf̃,0d/`gx)>> g:/~ "ܖ^ňj~O魝ksRlb`zq}3$˿"ec>㛸5=ܚ-d t\xseJ) a Y`+zp8,)1CB喌S+qN,|@Ɔe8qNɼFXXjrftouvS/sp"(:VC6Uޡ%#247G J!fF{X]1~&thu+nTn dd?@ ,$7 tctnח,Gm@"GG1#y:soU=M['ya^|6"$,!:j#;NnBh-H9%O"$IJHZ68_vUG=np*rXۃ GgG̫h$ai㠸M"Ͷ*.uǤTu\ebFh_>`|l| ,)!i~+3Za!N)jq6ֲ:鲾Lvz9UP|{DE#S5sNiK /W d;7,#Z^#C95Mn׆q@=%2Nlcyv;kB o")6b2 2_h9R,|NgOj)ǣ{W #l٤QjLrBU?_Pg'kxmhP1Kh>bM 5R(7\}>9ٕU*p_oو,t Pv N8HeG ·Z䣞M7mbUVpa\[jȎSD:(,R1ޡ5-^PTlgX wekJ;hOl[cNJ2'%KC!Dw2 Ok\YmTJ~Ծ*=Q;'{{6؞6Y+>'(6lLlD^FHR YX؀yRP=5(.P" y&qHBP/Q߶tbi?84Վ1ܕiHL<ѡцN;\݋`R(W[tjyz䩱vqHt8]q bٶlP\^sG6QY"V5S4)9ȝo/%U8x0*GdžͲ]K>#xp`Cikh_?y41o=؂ );AtU&cOiZՖ սc>u5MLW' bW+57I`JHxCl- f|1#;|t; ?lX_[?\uJuRȑEӇZ5NؑDs];*pxG(ꁥˬygkشԤ$r>Sm(.1ګB[Yߚd_ 5H`TYKL N@ 6X`.; ?"xzp _:yeݚKԨqo-$ytTP`ll*yvS}y6E:eKdn5X rA+ΞBᘁ5{O|Od-ixi+&cbT>'vޓ*RǷ-L#), _;+ FVlryӦױ /~IwrUv1D%t }q dl¯8 d3~=~Mxc Q^yr?_skh!>:Xn8_L~\Z-j Iq8n&l[Ceɚç$|c 7uڵϞ;0oе\yo蹛h9¸cC+?, [FbJ<4MoY$6<Ӣo̝<%M) (l^mW/vBy%n׀sD<֗dѹ!:h$^VpZc՚-ض|@2.9zWxҏLmV&pl3)wBQVOk=a1 *}0Zp`V5V9wP} c&U#Lau"J2S٭Jĸ& 񈂆 TJ6ur;C棑 X^W(fI>Z#MQ|&s\7MBTk$i־?6z}*] Tmo hq&=x+Ĥ$ᣯQ^Xe"^_#;a]T=W:qj&x Ѧ. 9Œ4Ɏ/Ǒ #6Ěu-5/% =^{Ϝ9o1:JL#>sp]= 8&-=FF8f[TFC;/?4JW_D(nzgim῭{AjqٛM}Vؠ~&8E@\/;e4h^ڎ.^{릸 (zĮߙ4zץɳMp2}MFpSͧ_>& ̛urg!RZZb /'[=dv+Ip=}K>=Cet$D&e$P"NHY!wXn6sT5u0]j>;!؊gt2~G?dk7JqlW;lDCʾц."k ?7yXlΕnF~\f< ! -0BF콇:{]$%LZ_3<^ёk '&XYS2d)ZXY5^ahvb:7hW2/,zƉ)A_P7ҼãY/k 6kgZ<љͻ =䅴C%ĩ.orFF~3WIB^, q?ѓ:,(S}rSZ{rIL(Xo ,Dp|x.ԧf3_lއp}xf~]>So|k?L !ޕR{s#ZԽyPZw Ld黤LPbiqh!7?ēJF9^nu7-y狇l/d)"K+cGvKMiBs˛Գ / hoeKs>͒. F+:>GН~Ϫ׳"p:_-r>]5~6Н P$Ntڠd.uZ>Q?0媊U q;W9qXY͝#)PK,b`wӜ?;@2UfO3[I qgSΏۙm}%bQruUAB*ҢTF@YpX.C2 2ڍ=vڡ޹x&T5~ZdPݘ52OR0A櫻gpE8) tXcDjؤLNB 齚*vˬÈᆈ~uº,\t;̆~Me0n۾A^eUkfFJs6F~űăUb<7|Zag f Kj+=,Sn1H1¼z:9bgmYu<*J Rѵ__ys"O{-#wf23,L endstream endobj 119 0 obj << /Type /FontDescriptor /FontName /MBVVSC+CMR12 /Flags 4 /FontBBox [-34 -251 988 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 65 /XHeight 431 /CharSet (/F/a/b/comma/e/one/r/six/two/u/y/zero) /FontFile 118 0 R >> endobj 120 0 obj << /Length1 1401 /Length2 5903 /Length3 0 /Length 6858 /Filter /FlateDecode >> stream xڍxTS6"wkҥޛH !@HRIo)Qt Ҥ+"={w晙y白 7BbA"@Y5E@1bnn38NmDQH@zBM QH$eAR@ @ N} Es<<.l/|~HFFJw8@ }0ꎭ#(G ;.-tV1.( u 0CP!9LQ0 pƆx!lu @p п @P` P##~4 `G, ec?4A_E:IEbĿB'nH2 t!jj`M9C1 B\D0v6c9x<0, hP A 8BHgǚ{}6@@Ͽl sB!~nr|b2aI I$AogwQ Cd"=xQߟ g(B_iWU# /⷟/~X={aN򿡖пZro6e3V "h /#F(4};z7mo;Y~$ #*-q0'ƂQG/+?2C<=[زO: /̢ r#:딙}7G VVb%0{UnrVG]Pp+g(y\q:dcVr|TˇR=[>_u̘x=G\a{ T6^fW g*qm߿;XHV&_#$e69WGET"==gAjt@{WjMoP=G,9fDIZRb\sp:g~Gӱ~OϬp}`8wN٦#?Z~+A핲"ę7EVFzWbb7kZ+PZ z)F]/v酥;IzQAVk4wLO{z&.gl_Jkƃ綀Ғ>o *\6ΐwtPd,Gs~ 6h[A^[i84}3[ _M(c-岺|RUxSF=}In@ׯA`Mr^zױ/~53a&ERfMcbyj0Mw[~bOC\Zn;{Uߚӳ'M{ϗ3M+ ҍwQ;[Fv Y> ԥNCZn|3pIlCF ݱQ4COֵޯm [ϳq*eiGRY6My:<#4b^xҰ!0!M6G/dBk*Hǘm6H"L~ƥQᭆ@SdoDh_?>>DMQ;Q>;tr`!-U=[^|6L&Zdnm7CyUJ怔wF(Gpf IdzY ?x16=}f7'nȖRJ4im͎?l/LzZiaa.ӔP.q;4XY(KREreNTX?pV`T88( zr`H`:CK6U<ZZo0PIjPمr0:jPLYm16 ȶ=V"=8r"R3]($F{ؗiI2p{x|)yJnv<e]V: Օ;!{ha[>_SU;,ćc>cT2~hVٟo:oo8Vnv3 6epIZfGO>%S_˓xq8f:6GOm|̯ ~%9׈]9+5,yOr'N+0CNh­X6Y<ИԐְKbr83n'6MUwhlj#A_Wf4l(ˣLM\f, /M ^ޜh)+f!ޥ4;rHqdI>'‚|&P2}˸4:V/+0]%gwM#VRnόzFƨ]c-Lm~tXyp5(*|FZN ~L,=_(F ZX +q[b`;K'9'z?qY6VZ(»bK~eLJ6Y~|x썳0cqmdoE.a%gF^/C <~Tr5?=u-l!D0z.}W;.xY0uq{gºs*='+ P)K1*!#VR gh6뮱o ֠u}{ DfczI,byyNJrp:$W?3~g fxyڟ6LHN Oc}#KYNHȭM""f$ПR*{ KniVLE=m?`_S[16Yn K*Zpi )YL9 e޷ڵ0ؑ-+0 I жnO,*8 Z.Y4/=~̺tfÌYGeoVҒ ;5xM,N޻/4Q98IXD&cw]NƾHle%ml  :{( tT :C9< EȎF93P(c+%qab&3 yݘu8jT_i<,^fLӭfqPF.U"j;/z=Y'y*Y9UT\DU4 FЬizu'e6_y;| hO{9dw\$u更ƻ4F ua 5`F:+ED|bLeBZ:z x`=eXi AGfsBUk ]`\͢ᢵXraqqޫ?Z /j)U-3F>`G>I5ZN+q| Y.Ii|3ʔ)=j㷄?uxtތ5>+@wu*sy&HHB̝?dvZ{Vtwoց{1Ø-Wȃ^m=mT Vx>3lo< Ӈ\]'%q?x%S ~K/SNICu ׫ J&hC4+&@lM^F?~ )\{l"֋mM ykTW6 p|̌muFj* =j~nٮ;)X1eVVe^QYk '!}$0CQyHKٓUk-VGPjZ`@Od6#.Zj GLG~[i5zTNN 5u\4ڴkF/Onlݸ3wz6Z}dr ] ՟^WK?&k(GC͞"՚1eVԉ"Frf/txS'bܼJh|Q𓯍XuTz`GډgV/D6__wr6_0Ģ^h#zi:^iٲ-G&o`z"ɐDi4BĪHa|rC[cKV6D`jn8 sSu)Pe(fyVRTщ;bUk)].9msKz('%8EI-f/^t'ZAuC ,8~ۣ8<(ƛ_(hKYFXg`AyPdqdIi(\e֎j8s^9ō/}J8S3N4H-rS! َbE{lg![bL+aA2Ƣ}% А|WCSuM(]6lcKo\Vݙ<ħǰTٌG30T*O[!Ŕ6{Gcju\=ҷРJtQeUPL5c~VFr5~<4K\08dC;R`ME?r]z;P+PX {PGCr}#jKֻ q܅']L-R%0;/xcFTpJmDOĨc9tc&F86'9!ypADr43#{7 }s&*H hY)זWнRs!z7lwIU:LJYj,\!}0,OO}2K`9 ˩؜5~ /;#dLuϞ湙gjSGWZ>GVU)t _Er|laY#=6@vȕŽo xOղ4]&!4kY.qus&owng> %('陈>nmQ兗 bM^ęs:t#^&"ֲ3֙" \OILތ8!kEuFl]ѩ C-Ħ(Q4¡:AŲSL b- CשƖmO N&0&i9vUY\NߕߓJfj<=}+,^шMU|Jj F4l=7kkL$mV7cb`vij齁/oEHm9/Ǿgۛx j΂" I.K3O>*<^7oiᷓj:$T~IYD ^e~:;tLXqS:6@ \$1\{`a1zz N I]w5B|RIaJq4TC-vt4HpX.Z" V}K!^P0$6B6!;ED mi ksK endstream endobj 121 0 obj << /Type /FontDescriptor /FontName /XDJWFC+CMSY10 /Flags 4 /FontBBox [-29 -960 1116 775] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet (/bar) /FontFile 120 0 R >> endobj 122 0 obj << /Length1 2586 /Length2 18181 /Length3 0 /Length 19674 /Filter /FlateDecode >> stream xڌP 0\wwCp 5܂;{}vrjfWz_j U f1 3+3  ,@ ;25&_92[  g+D&i 1TrȻ8ll<@ 3?@lPb;؃\%V֮Йxvف%SWk`zO:AkWWG~VVS;g+az&r9, P6S 25@3؂A.7{ 3АS8c&?v657ws4[, "+/CS[) bwi15)s1w;m06K[H8ف]]O 2݋}ga_d 7GV-{HN in#o%_bH ~>KH ?%b:|T/BfcX]f +=1?r`O>2~l_B&G̪+ /#O*<>̜fvQ-U5-|)һ\4ePvL3@{ \@suoFnc7zcf7Wf(9@jJ ʹB6DF] UcDۃT\7f6 +gr@oQ(eo`sqLMbAvhXY\!.Hu~Kg俎 *?*X%~#^o`ҿU7bFV߈*A#oaW *"^oS |O7ԮAFv®AuE|vg/bc5u1CN{P"2b:Ę5=B.ψwGo=n{\ݥPkdG|/Eާg = H/p;1>yOfʯ5P)k[đ}CZ&Ohg &™B=QggcZZz\{Hr ywA|E)G j÷&ʧfqsS{_ԉ:2bAr:k삌z*lNJ3($NzAEi%g4^o:/ۤB9.3rc=rHD삹R*7K_E'[Gwo:Ks,0X1V 5 F} 7}ؐM|)˥˺%WWWޛG,5Ex&'Zsoǟ)֎,"+.*DJj ? jL5v`Ė.!N\0?mDoSא@@mI}LYJ>PU;I9㧱aYh>iiOYݯ8#Gh,q>@_nѲOm־,Ebpf`l-h/G5=I~Mm'^M䈓V ##"QvSY:3ΎMεԼ[yk>WR\kFn$Q{4'Z6}fMC{wJOSC)kD#Ͳ6Ha-DRTCQC3? 9/)՚<+9hpW-YWzz"(G<3k=#q} O'!X%o{z2bXj)HkyBz&-Uj0gx;`-gX3r.d *qꈺ1A|NBFGS;[=Qʤ|9$ެa#-vn?6 L=+F@9\xMCVNm=p;.Uj'63v~{e(?!Ҽ~?V&Ev޲~_br*9idBUK\1M`~O@9F+%į!î.m.|6kMw^:F86ȴcdAhIEf_Ocy)3TԑV!ͩ$ XA~m' \D8ď]&F]re@?0&\t` L 5-&sXC+ekU!G}H^ڄ'@E<)ˌ)8iEtbӖllʼn)E @%o^<(YC՜RLU+, ñ?C6vp2IF]ʩфsݰk_,,(b"Evl%hb6qo.q d<.Æ} >KTFVM7U(:ʞrXyŲ\MS^}@ 1١}~_aubW %U)~9t\P)ۯG>΃Z} lrq-Y;IR{kI5N G|7kC֞,mUȇJc1}zG"b ^ T*:bv߼{7rP(a)ܠ<ͧSKO4{nF[<'ߢS(kP>fJFo%|H9ۀ#ChSqw|,_YY=2AѴL+ 2P@f^G|hw=bm N}2DnjBվg⅗˨%in|/F6'NͭϬpI= eBTDRxH LUMe|&%GJ8MNMz[T!a1bAX7깈5=/.k_)3 JQ:@hlkTT ~ڂkl6M'6*n6XڞCʅйiTp1ݖ(%2m/*¨@K!>&F Ι_ꚮsV]e5%*NwT8^ h>BT^?`;(t{W Ú>L>%{$L,m F]Q7qtF>t:)˓b*8 JCITBк:LÔ. 5Ykb0evR/`hL,#1!F-ie,)^AD::ZC|jv'M;n]"ҠNJwPvTiarg~|jDw2J%4M>e9>h fȻdf3LV*_)fhHC[aYCi /M$x(s4DS(Ո<l2qgunjh'k 0N/wrtx_Ǚ#Y2ږiR;UY {gTjfŚْMyoZ]JG- #~]oSXک9;&vbAIJDj_H/M&(vrj<0)ՑY6I mqN2Ta[4˹s>qV΢43i׽ 9 #i`. yq)[҉%}Θ XT<1̒HVxs=Ў^tv;LZ[v.} 0pS|ws*8lx%i: aO3W4m,"("l7s*eLИ5-^lgt"_xo ]_ڈ?4Hd7>Pgct f{5KUpP~ *} Ck`pwGMރHQg=QF3Ӊ+̗>ApL/40;苢Ό kZ~0dиV堩e_FLd DW/S2^x6P(xŇB,8\ͺE#+4hKI[/>;Hl̝& DXЌ(dܣ|EdlrzT Aq9͆3X \r$wT#wd5OIg-{tw3P9gIq&Y-m.j(R.tҶUއI)J b1 ;0B]S^C33F̅lT߸V01嘅fN-daФ†ZŬ՛3cB3W.Kk[)뺥6Ug욋[)sqXIR]WY8cR \3+*ݔf'*)9(dOj84{Z^p$tFƫ9`ޗ`@k9ͽ5A\2iZ DEل|N*,UPFdw9D8]zZ~#ѴO`\5Ƥj}qzZBivf!ҳ".Re Du~]\~_M )onSQdɎP!!'zȝR=@PLi4pKd/?{O p.eYgd35;(rUvR78?i>XLP0fq o{*\e}(kt.P;knjF8e =jxB6`_fC`~i,~s\G3¶FHX χW3}x ̝ r_c}"zk~"~%tVyBdŽEZ3Ô|R&'PBCfªLއvR3tl*#a EzUF?2&DóF # ,D1Ƞ:4ݕuzhqZ 6{5}T #,O賟t94R93ff<ЇЯD)j͠m)$WX h dh}D|bD4+چ.3 XPp C}܊QK QO7Tbo$ m%$ׁ;bOǖIgS=<H"k~m}.*Ά+!O~ S3kG#yͅGmUb![ѕ.Mtʤڜ>2{Z /?ÛJߟBpفmU@7/˒HG`h1?)𘳶j9$ǫe8(rj=|qxUd[hY_޺up6Y4Oe V6&yy\OQ M5 GQt'XÈOF"yx4ˢ -= Kn*u?oYk8e ! p|oci&߻0Yݲ'qЊ5B;*k仟96*YSSBT2Bpe)mK (1T`7͝J %EP`zI~tpٙ`ؤ T\m=αZVe"87@Meݰ`M(SL7ꘖlR4iyĤ;*Ld[׋a1SK)j!]Aϯ!E!Dqhn֧)AWTj!T3e)D[cpRxf͉b.ܸ )6,YD,Z~ܓ|K7ď&cU{PxMdZ#q7`sxCnwΦa3V-(h̸00RaP͑A^S {Il CcJ`1mA-C?aVsZ lR'˕;S~Po_#?֤ 1%bGDFhzMdR[g`B:z Dy"fVwCP,׾'y7Gl(@˸wؘ: ]j~vW,v[<`(5"EFON1uD2s7^_pj]~u8@t3&`X^&괮B,Dd*2,hZbKD`ЪI*cO]d}=KQGX6Ucmis3<]4|vigٕuD-iV*U-J۩CohrNnLuZ({鉟ulfJ]e%==AYe1w2 gfNJƱE_Du|MU{EQAfF?ؙ -gmLՋk|݌U "`j\Oe;,h3$^EjW/-?,S=-6>sȔn\<ş,e63S¨ַ1ZzKZ6uf)+YՃ*EgA˜礼|a\o8͖O jJö@L3k2oֆTxS_!b k/kQ S٨Ghwow\]!vH.=xmc΋SԴs`qAW*D:d]ڽEoqtxR}C; S0 j.2a^ܟte>qУi3ɔe${oA+BǶFc52q 8 k6xꁁעdzz l朶U5p"/Du0Z3+xf5?q5N ?]V [f64֮!by?$+.uJ*;?s "^_f#+u]L/Bi ~4g,` N0^0&|dܫ000r(eN7XKNc'}%WbYN{Wr4咟vFe8na1 *7Xb&)jt-`gRYd%#8~j<~SHbo-;wݪ[0^yf[IHQiW<x A@1/9edz3l =OŠnI'8r FV2vؗoVg6| }.sфūcAK'|UZ?n>9_q}}%WkH:"v V0IpF31e9֢xzkZyq)yM[V2ڟ*<?&c}_7 ٘JgVN^x~Jv/;E~2a+ F1~v{b =aK}wGY4Roh59-lz<*ˆFǽn#KBCޛ.cb+zumͭ_V DTs7q Ul0PbG%?"4lgett/cr%3iG#AlE\Hn KͷmNU7RٻGs1^@k-\QGR:=5VBx &lOe{+b'A{Pn(rZڿD5T,hTON];,7aty%QO4d`-*ғx_-OxsTVz~!9.H$뽪"Ʋ-Žl"Mhl`56bc0Q.t]m?E=fYsuAuoD2BL/%C0KGw*B)ۊsJxt1z 'ڰ9Ki x>drnOqyb,hnV4aS \hڦthiz[ht-t0>G&йK\Oe;QjMe˟s(\z|kꮽe|Qk_I@a1`5JDtb/BkYAL2=%*ڈb_5-`a<.?ϙs/ëcެ U8vEEwC &!lpvaѡ NLSTVNHGؚloCj\ԖfEs,<Fi`r^ܧ7j&Q '8n 1}G><|WIټy8i}4:r*(_ShKZ993[fQKp^/>ӹN #Ih]% Tbͽ^(<٭%YTMNF1Y9)N.7[_^ZN*ӜduGɊ!KM+ &!dXvk5ĥP(W39k~Ǵ3oT$נw&3]c^ŒH䲿Ki7(7Qsf̵Ewg Ψq\1R[iQ?׃:9au&@vny{F=s񹬫j2YӚQ4̀gޱESLwI aU,p=ŰKŽM1YqWCyI ZNS΅El'P%i^$[)#%~֚K],rX=!b>TrA.@>^ᕲJ2O9瘦Lqk2E6/28tN>7䟋YNeG= 4(퉤ȡLjnU߹hbjCscbfV@^+1!ȥ_ !T'*{0 Z:S(E5a}0G yWdZz6/Iԭ6)ʄ(0BNY]kC!02No40|,?nfIUFd[5}"1!iJR9PdW(ỉj| L5o6ӓ kNދ̥; Qt8Z'jIPu0}%g-!GL T}+D+3TDZh =[wSaBX3h{YpN)L!CSUd#6/8;hFUu T\|0 Q9#et;A7JJOA yKCQ/Ae)aUIڼb}~`:KC_ef.mk{%:.4~hÝ pƿg-4#QH?lg[\f3vfZ&rʛ+3±_a\:ek3 {)5"J뾦-F;,_Z.9Mq޸ssB^wj1>芗m6MŸ́jK)==ƌTš^&5ӯě( 懺 `tI[ajaM?deGۼo.]gթ`'5-1sG< s y?SٸT2N mӤ KIHШZyQ^JXЩƽayBy,"\4çn /ulbHTc_(҇"UG-+Qy,o{V7?< rB6L2 ;yrWR^G2!e%Llnwǹ _ǣ?9:G?s>'L^5=F OA=-u)z0XϡS6B0=$&=U8>6o 4[Ī/Wdm朊uS._a~i JU]yDu4BţT5QBρ`Bד[IF0z@4ICab|vrksT3tfʯjHy : Eà @/Ȑ̬lUbAͥu^RJV`哼]g Zu{Ŧ!Oq8>RT; B#iw(@yg~(lE g4)eZMn {1 u~[f\$1'䳇mhUgv2mξRz%:ST`iBn&oif n=;*n-T2O/ȑh&bдzfU_vtPs^ы\-n$Q܌x#ˠoe5hn]$\,,3jL=zDW% k][ЊL$,Rkc pxPQv`1uoĨzvѭBojg_Zۿ/(%y4 ŒʽryVr* O\=qXSaVۗ"i"E٥BB%_>oLA\(h^M06zh!#%u6E{Q~Ș1@|H-A()rD\\*>umSZ->Sw䐵>a[.GGnH;Yis&%@]*tzmR Iu[# )+g`KFKHSU3+8 4W㈢9-]/c gE%HoD} ٯE臒jƛyXBZO7P;VdQ; ֏2a5:li|rW7)g(_ e:gz ԝ+JɬDĮba; -s[z&JCYp'L%>#Y+i裂WbԜ;\MxIv@O]90eP-f-~ uʑgu_dXs3U=' RG֩m SUa!u{wkJ\bv{".pף1"ɏ~(FFxkml)Io=Jtk&Z&jEv!U 02BgmiBͩ:d>J cܽWn:l N Ԛ3=цjsO{aZ|k;ގXOxkh\ P,oxעUBO{>&#wurգ H|1/dw'W9q>"΀Ϫ{ԐPp,#IlI͆v;3@ z3gH=Yw߉ !^Y{;Xbw[CQږie@eJ E_T ؑNrjD4<,&+޴w OYxk/pb3EFKPڙڕ4B7I(d)5Z>7Tzme`V, [t3FrhA9~SMO( k}typZL*|NHߡ c+-UG`Sy;Er<HAɧ6o[-y`ȷˣ|ﶲ@ -$뇫aZ2ϝ{I ?ۺ|(:U,B(|MCĝ9r͆<:bY]±ZkE}nDO#GuYi!cm]ԶL oV-U'χlgWXV Znc;p9.I{BwOZD_zݒ%'8Sӊcئ~u ";"g@/M#fNUDAU LU*nqEW)(6+ ߰GA!oݕ.&æZóuhBcqA2K؀6:?q s8ra-_9)q]ܞ[㎒]ͪ% iTd)P!YS(TVwC8:ԩ.;! uAŝE Z11@F>,>dOT :@ )Dy3un9ts#ldLw: m><QClh-:քL`J[&>͒aHį*MD\"+YXnޛԁ޲1 Rڷ3,_ZI* !Un#,yOoaMs+X !̪'̍F*OQzMu6-a͑ hObăσ|j >i;9KaByGB@+Vrg DGy@aUcp޻ .RJsH%פYV kB׀5W.T^R)$a:hUs0'KQkZ;bn P-ap0r z} ]x5{'z̘;Y 9΍/4ٝCrE2^Qlb1pׯEAgqfZl)Ltí{N5EVv9Oa+POM-u~u 0^F6TH@c[8ݛI\}1pKi^xŀJ*g3X5h5lyEmEh˸ X)jܝ'ٸǺydU!gwec`iSMh0<5CΔѐ"f|l8RLIִNfg/q.VyD;;E,` 3_c7)|qYl]Zr~qd!!dyS̖򜠪Qh5prJY8wyѲ$(P<׼wE] R82 ܕZ)H{.따hmm mwY-1"H5(N%;d^:4` wDNpj7ɶ+`j2Gl }۰띬d˅#ۀR(fT@ >\sMO+ˆTLfd">iU~mH~\J3JSd2aI71ze"]CɎ ț/哳N4dԣa"ةR@NŴvREuZ?"1֒g*Kw:q &UsԈv+ӰHgpbaix!Hˁ=hS?C;+.h/:| Q>NVdrgrCT6v}YR*$ i֏ɸeCZ{S)7:-㻭ߡÈ톒'eS%4E|FpS>|~j\(0 {Xʂ/1.Rs mjiɉ/HÞ̙ Y%cixcF‰{śIަĬWѷ,XXcuҡz%.Ɯ=36^xӏqbrzV1 ?C`AjoM: ς 8ew_ IGF_xWWa_D;3Ïp 9P]( 1ۣ !@DR]?q]kUKkĐ7tK^x%ٮ(}"HT&:_vmvq2 #Pv#\B՝F[#]"#40Gz7'5  h)%GdD!9Tu'{r3+$hA[v6b$TXlCâ EI ggC^c[^po$BU!U>ޞ84rT('ݕ,<EC2$+ endstream endobj 123 0 obj << /Type /FontDescriptor /FontName /YEKJGB+CMTT10 /Flags 4 /FontBBox [-4 -233 537 696] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/A/B/C/D/E/F/G/H/I/J/L/M/N/O/P/R/S/T/U/V/W/X/Y/Z/a/asciitilde/at/b/bracketleft/bracketright/c/colon/comma/d/e/equal/f/five/four/g/h/hyphen/i/k/l/less/m/n/nine/numbersign/o/one/p/parenleft/parenright/period/plus/q/quotedbl/quotesingle/r/s/seven/six/t/three/two/u/underscore/v/w/x/y/z/zero) /FontFile 122 0 R >> endobj 44 0 obj << /Type /Font /Subtype /Type1 /BaseFont /JJRLJA+CMBX10 /FontDescriptor 107 0 R /FirstChar 44 /LastChar 122 /Widths 103 0 R >> endobj 42 0 obj << /Type /Font /Subtype /Type1 /BaseFont /QIRZQP+CMBX12 /FontDescriptor 109 0 R /FirstChar 44 /LastChar 122 /Widths 105 0 R >> endobj 59 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GDKTYR+CMBXTI10 /FontDescriptor 111 0 R /FirstChar 98 /LastChar 116 /Widths 99 0 R >> endobj 53 0 obj << /Type /Font /Subtype /Type1 /BaseFont /RJWZOV+CMITT10 /FontDescriptor 113 0 R /FirstChar 34 /LastChar 122 /Widths 100 0 R >> endobj 60 0 obj << /Type /Font /Subtype /Type1 /BaseFont /QIELJB+CMMI10 /FontDescriptor 115 0 R /FirstChar 62 /LastChar 62 /Widths 98 0 R >> endobj 45 0 obj << /Type /Font /Subtype /Type1 /BaseFont /VTPXLC+CMR10 /FontDescriptor 117 0 R /FirstChar 11 /LastChar 122 /Widths 102 0 R >> endobj 43 0 obj << /Type /Font /Subtype /Type1 /BaseFont /MBVVSC+CMR12 /FontDescriptor 119 0 R /FirstChar 44 /LastChar 121 /Widths 104 0 R >> endobj 61 0 obj << /Type /Font /Subtype /Type1 /BaseFont /XDJWFC+CMSY10 /FontDescriptor 121 0 R /FirstChar 106 /LastChar 106 /Widths 97 0 R >> endobj 52 0 obj << /Type /Font /Subtype /Type1 /BaseFont /YEKJGB+CMTT10 /FontDescriptor 123 0 R /FirstChar 13 /LastChar 126 /Widths 101 0 R >> endobj 46 0 obj << /Type /Pages /Count 6 /Parent 124 0 R /Kids [30 0 R 49 0 R 55 0 R 66 0 R 75 0 R 79 0 R] >> endobj 88 0 obj << /Type /Pages /Count 3 /Parent 124 0 R /Kids [84 0 R 90 0 R 94 0 R] >> endobj 124 0 obj << /Type /Pages /Count 9 /Kids [46 0 R 88 0 R] >> endobj 125 0 obj << /Type /Outlines /First 3 0 R /Last 27 0 R /Count 4 >> endobj 27 0 obj << /Title 28 0 R /A 25 0 R /Parent 125 0 R /Prev 23 0 R >> endobj 23 0 obj << /Title 24 0 R /A 21 0 R /Parent 125 0 R /Prev 7 0 R /Next 27 0 R >> endobj 19 0 obj << /Title 20 0 R /A 17 0 R /Parent 7 0 R /Prev 15 0 R >> endobj 15 0 obj << /Title 16 0 R /A 13 0 R /Parent 7 0 R /Prev 11 0 R /Next 19 0 R >> endobj 11 0 obj << /Title 12 0 R /A 9 0 R /Parent 7 0 R /Next 15 0 R >> endobj 7 0 obj << /Title 8 0 R /A 5 0 R /Parent 125 0 R /Prev 3 0 R /Next 23 0 R /First 11 0 R /Last 19 0 R /Count -3 >> endobj 3 0 obj << /Title 4 0 R /A 1 0 R /Parent 125 0 R /Next 7 0 R >> endobj 126 0 obj << /Names [(Doc-Start) 41 0 R (page.1) 40 0 R (page.2) 51 0 R (page.3) 57 0 R (page.4) 68 0 R (page.5) 77 0 R] /Limits [(Doc-Start) (page.5)] >> endobj 127 0 obj << /Names [(page.6) 81 0 R (page.7) 86 0 R (page.8) 92 0 R (page.9) 96 0 R (section.1) 2 0 R (section.2) 6 0 R] /Limits [(page.6) (section.2)] >> endobj 128 0 obj << /Names [(section.3) 22 0 R (section.4) 26 0 R (subsection.2.1) 10 0 R (subsection.2.2) 14 0 R (subsection.2.3) 18 0 R (subsubsection.2.1.1) 58 0 R] /Limits [(section.3) (subsubsection.2.1.1)] >> endobj 129 0 obj << /Names [(subsubsection.2.1.2) 62 0 R (subsubsection.2.1.3) 69 0 R (subsubsection.2.1.4) 70 0 R (subsubsection.2.1.5) 71 0 R (subsubsection.2.1.6) 72 0 R (subsubsection.2.2.1) 82 0 R] /Limits [(subsubsection.2.1.2) (subsubsection.2.2.1)] >> endobj 130 0 obj << /Names [(subsubsection.2.3.1) 87 0 R] /Limits [(subsubsection.2.3.1) (subsubsection.2.3.1)] >> endobj 131 0 obj << /Kids [126 0 R 127 0 R 128 0 R 129 0 R 130 0 R] /Limits [(Doc-Start) (subsubsection.2.3.1)] >> endobj 132 0 obj << /Dests 131 0 R >> endobj 133 0 obj << /Type /Catalog /Pages 124 0 R /Outlines 125 0 R /Names 132 0 R /PageMode/UseOutlines /OpenAction 29 0 R >> endobj 134 0 obj << /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.14)/Keywords() /CreationDate (D:20160202155758+13'00') /ModDate (D:20160202155758+13'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) kpathsea version 6.1.1) >> endobj xref 0 135 0000000000 65535 f 0000000015 00000 n 0000004808 00000 n 0000140722 00000 n 0000000060 00000 n 0000000090 00000 n 0000004865 00000 n 0000140601 00000 n 0000000135 00000 n 0000000188 00000 n 0000004923 00000 n 0000140529 00000 n 0000000238 00000 n 0000000274 00000 n 0000012258 00000 n 0000140443 00000 n 0000000325 00000 n 0000000360 00000 n 0000016712 00000 n 0000140370 00000 n 0000000411 00000 n 0000000447 00000 n 0000018899 00000 n 0000140283 00000 n 0000000493 00000 n 0000000527 00000 n 0000020577 00000 n 0000140208 00000 n 0000000573 00000 n 0000000612 00000 n 0000001255 00000 n 0000001431 00000 n 0000001581 00000 n 0000001731 00000 n 0000001886 00000 n 0000002041 00000 n 0000002196 00000 n 0000002346 00000 n 0000002613 00000 n 0000000660 00000 n 0000002496 00000 n 0000002555 00000 n 0000138726 00000 n 0000139440 00000 n 0000138583 00000 n 0000139298 00000 n 0000139868 00000 n 0000004576 00000 n 0000004982 00000 n 0000004442 00000 n 0000002718 00000 n 0000004749 00000 n 0000139725 00000 n 0000139013 00000 n 0000007208 00000 n 0000006916 00000 n 0000005099 00000 n 0000007031 00000 n 0000007090 00000 n 0000138869 00000 n 0000139157 00000 n 0000139582 00000 n 0000007149 00000 n 0000009490 00000 n 0000012031 00000 n 0000010133 00000 n 0000009349 00000 n 0000007349 00000 n 0000009839 00000 n 0000009898 00000 n 0000009956 00000 n 0000010015 00000 n 0000010074 00000 n 0000009665 00000 n 0000012317 00000 n 0000011897 00000 n 0000010262 00000 n 0000012199 00000 n 0000014533 00000 n 0000014300 00000 n 0000012446 00000 n 0000014415 00000 n 0000014474 00000 n 0000016830 00000 n 0000016538 00000 n 0000014662 00000 n 0000016653 00000 n 0000016771 00000 n 0000139978 00000 n 0000018958 00000 n 0000018725 00000 n 0000016971 00000 n 0000018840 00000 n 0000020636 00000 n 0000020403 00000 n 0000019063 00000 n 0000020518 00000 n 0000020729 00000 n 0000020753 00000 n 0000020777 00000 n 0000020903 00000 n 0000021278 00000 n 0000021753 00000 n 0000022376 00000 n 0000022833 00000 n 0000023263 00000 n 0000023726 00000 n 0000037998 00000 n 0000038299 00000 n 0000051287 00000 n 0000051596 00000 n 0000059613 00000 n 0000059850 00000 n 0000071372 00000 n 0000071774 00000 n 0000078796 00000 n 0000079024 00000 n 0000101553 00000 n 0000102000 00000 n 0000110830 00000 n 0000111083 00000 n 0000118061 00000 n 0000118285 00000 n 0000138080 00000 n 0000140067 00000 n 0000140134 00000 n 0000140793 00000 n 0000140955 00000 n 0000141118 00000 n 0000141333 00000 n 0000141593 00000 n 0000141708 00000 n 0000141823 00000 n 0000141861 00000 n 0000141988 00000 n trailer << /Size 135 /Root 133 0 R /Info 134 0 R /ID [<249B246B01716348A8FC1B5F36842A58> <249B246B01716348A8FC1B5F36842A58>] >> startxref 142314 %%EOF xtable/inst/doc/xtableGallery.pdf0000644000176200001440000073052312654015472016565 0ustar liggesusers%PDF-1.5 % 1 0 obj << /Type /ObjStm /Length 4154 /Filter /FlateDecode /N 86 /First 691 >> stream x[Ys~ϯ[J܍}J7=^ȓCj[)RCR3|$lJͺ** Fg? cF% /BHG$^PoJ ePN;4 FPKJa B[hcp:_tY)(z' c a =`a3 %x`JX'z|7졿bN&{4ǟp9&B4!VxIO[π Hw$$,H Bi> 5"HkA9DD@ &`\+\3/*|HC$$ZD҃8+DD 4 *I1EJT&-PJR6C@k !DRL *j` rP@*l;0@" ; ڇ\9+P# Q?';lWc.Ke2rP#WT2 Eg(:CPt3 Eg(:C1PLb2 gQ? ~^ '>qU VU1шVq;LL>rRO_@ăY;'J=NGO&ӋvZP* /_B/ `+ܔ*iIx=^:}z+ȡw%|IS/))i*s aCP9to*=#UN䨱dR}2 d#05*ԇ*{웂IV4Ȯ]P%me#Ea k)DzAOM`NyY!;DA? frT,UTY9 RGH wBQ+Z_JȐ4 e9xj0$TPeCeiȑ+`Mҕ<Qn8NF%$bU~a|3LG{O͓3E}4O/7ty|2 VYˆ$,Cb~9Z:n` w­­ۍGggs=nc\F'/5ܘ"p-~/>}r}zl!c ali6o%۬Z],\vclsEKw#z\tt8SdpҒ3Q|1]nde[I?<;9_2fi>↊`{i(t5ԑ"R#weۑ';'{ 4@?>=~uyms 6v8{O>#d&n[o{~qtu+nwSTgV'9&訋ɠ[nbb2ٗ8 q9׹#QؔEZ{v٨zzd:mH[7[z[GBtIU Izp`+[k2)eK\>%z.Zz? hؠ2N=*R]K<H{(l$fLV)@ˀRG%wrU81hJiRvG&Dt@ݺjt^{ErήpOOre\es{0%[HXCC -J%Y]¹\cY`Ŏ.P+vQ $<y1 d)fT丞~Xdֲ#2f].oXDKqKS byS2 #&ÉA 92RSIvXp$TjtaCK ~"Kg$(0{….Vm].F(KPYVAL)( Ð*=6d"9s b4'd } H8"Ȓ͡$2,t˕T,[D' \!ZֳD Ѱ[E"aFa-aW.F1-*.gPD,ݹ4ڐuJZJIњϺd?h {찿cwx9**vzOtN(N@XfU*xo@Bg>$đ"{vDm<@7! |ũ^wdf#fmtqN FQ[{DI /+53\Z^tbm%]e'\ȓfT4EnT 9EF֣X ~)tǕOW]e'~r/i=Vxܲona-W[P4rv6q~V/nzP_mmS=?ףḭ'u=g׳_N۶6o/CQӞ)QHYGLc'y⑦ Op hy\['R/h8x<޴GYxCûg. .il)r)eS+ِ0#bz:1{*ps!ķx >guϧ ײKh>a~HxC} IGwV1wׯͯ͟f3 tps943 Fp}vlF=FHniF޻6%z͌s27 LW"kO#/>Zx߰%iKW| ^g8`-;WU!yzx5_>x6<:7C]Z&LΨJxPyh,mb-!g[B\תr'O{*,~[~뗌ss Ep7@͛QK엀4]͐,EN?f f>̄.WX;o&v(mi[|ZF%L)=RyVEyݜgRY(n/MqYu@}ތ-^gGryT*#UYDkk a3C_FZJOhO'7”1,@=<{D-צu{kF3>7-endstream endobj 88 0 obj << /Filter /FlateDecode /Length 1290 >> stream xKs6<3%7i3MzJsEZ IYN>}Ҳ$vk'J$~Xw),;Q"x0 (M $H@ܜʂOlGga()KvM/a"Aۯ~` @8A8Jr7bFex)&ȧ$leD¼eso%Y:RZ3B1+pXcRHй4 RJ3 peŊ7@þmUl= 0en sړp6oƃOϷ'fJ"L^M1^@QWp>̣8P =p[&SLY˘zt7`'hOt=XMfn"J8~qOua7M]ٔY3ɳ}~y$X)U=fF`artV?b +0oj[bDqBkj W>JժͻQϲy7ёA-99Anh|42kB/K' _ָKǰ,jK%G:=HVMQ I҉clPN͛ZĴ88ҡtNΡs{^"AzL>cW]>fufSmUE*2Dg6}Y+ б`b]ꥼ;;*d"(| FL/|chv.2 ]7OI*(-y7eԻ5LA2_ی2r'MScڎcHGsVj /sO͛۶ R7氁HM3&;iGH-sjo_bNRŨ>A;AD🬻ŷ-؉endstream endobj 89 0 obj << /Type /ObjStm /Length 2246 /Filter /FlateDecode /N 86 /First 750 >> stream xZ[o~cN:&N ?؆$kSJG+-pD|3Cr(`Q2)5IYL<U`2c-YXib`G# 0) B8K4,AS`oAAZQbTGQ$q"^`PHTL cJ$ SҡL)1%q~8tvi4a 5q0IIOF5?ucuPW٧it)|W7'?AՋpc+bkIW/tUjj]+7VEϦ ܌GqlC F}W2*rf4n`&Np:mjFy+| YBSU<`ǎIowa=bp;| &MljzEm`q%N&W656mwAhD~tb>k(&}ǟOz|v.()Y^H6 LU*ʹRoҞmbvde#;^)ֺXWu{Ctݭ{C/Dq-2;awjnح6ߝǞUXF~RCKAItpF0wpcŞIyO)Jmg>E/zR;4ŋ+;{giGO_\ܡHb 6=[:|P};͌~dt);`S8eVm7:m{T,of<1[vO._aB>g fgJWvl9sqϽm;7Mk;&&+d8 ѿjQvYa5皝͂3  JE :h=#DXph'z5MP,AR([RҷLDCjIל,@5Gke~MUN` 6uDeL~%f@&3-AC$\AFݮAۺʺMxB+r:EuV@-,pY$5/#ue*c$954mEdc)׾>U]֫K$֩n{;G:G37Dv?(F 5Mtx osS:6šЩ'jS/^{J,Z=?X?_6vy‹EsN:b tP MR(|P p"+b~s,wu!nw)67ًOg3yЙt8,_ѱ [r~z|Odp8))rIh٥ufEg:xF$~Ig(͠—a"iU8vU7H*k=' %nZ~ѭjuSC7ԖY M#[QtoAVqsZR3۪4#QF"ڎ 6Rn*FS`R?Iendstream endobj 176 0 obj << /Filter /FlateDecode /Length 1408 >> stream xX[o6~ $5;b{H$Mt[b`<(l %6{oŶ,K9E Dxnp,2B݆4_$Q,f";ɧ󌝑*áW2!"8&\#=N@;QIvxY8kDthwrt ӏ +zwz`|PajTdL8<scLq%qJ6AeZ~p?쯺C,A*]SAҬ)d&@VvTT[hmY9!=mn@hΡ;m3@WQf>iz%e~k,w:D=K}hn\?iG3<8PYpo{O^~:OI{~ v{F| < ;q<(//z'/rkj:]M23bv;tzYxг~ErF ̒Skf)ą PaZ2 D [,'DZaN<(di}B+d3-6l2-; $ZVc1BaI-ZVM>KLFp'+M@endstream endobj 177 0 obj << /Filter /FlateDecode /Length 1935 >> stream x][oW~ǥ gܣR:7)mj[4`-'yo`IE37kg2{r LJ'?<` f'gf::줛Qm٫63l)ȯg.lv W;R!3ȼJ!mHtp56dhz+7X@ M6_<*m! "XӦҚTg1YaTl!vLjȢ?w;oo.N VG{K9_ oge$ҿ6Vn}\M8"Gnh^\uRT kSy!8%3n?ҁ6 _"TqMwPTbNG*ku >+ZM dY?;ʔ*Њdڪ/g6XpAMʏ Ju.K߯[W.E.tVA@%PsqpW?2ܭl@G@ X ڨC8#tyB줢Sŭ6ݧUIh 0$%њU"E]UWsHunM )0٫uZ&2bD D%꼄/'_ǣE}CÆ<2F[»=- nA5|‚)B/,6Ɠ„SW55Sm%u].1haYRTSpT U+G"ëŠ3xDAZ燣pT#ȵv5% qkA7ȶ& YUR27:iocZ tJE_+.#{޿㴋6xɛVYMvdH\#1~82U&Lΐ(,QHW ^@k΃MV-g/[^~}ȪPi :Z@pgq6æv4 ж D"K++_EP8mjs3?>;9Hxy'k?&3ZRQ^y_b#Ҿ&C Q63*NHв&7vV5~c5%*[- CUzŢҩI1a:n_g궺@Ghv=G(Ywnz4Fm主`;fC 2_ړ;JrjvHsFTiFаiptNT§FPciA#hU*J#hrDޟΑ(0CNfXzˍ;c,4fxQ$uo%("IVZWFzEoRO/@evbT17<_,*徹WXf;˟QL6'EWD V@]qYr+} A1&l4E6^NHMz'$‡p+'#VtdxF y|v`LyMjn%JXQ0k!\/ո̡C XStW/7144Sûoŭ@GK?OȧQ:$FZ6bu-*M4bXqo/plWG?ؗ49뜎M5Z}w{<}>`}>` 6Ȋ™>`7ٿؖ!wX\G#(bGp0~ř88G#رwXuُ}=Gpq0"KòWq\q\#`ϋ^/H؋TN߃aO p/pWqKy/8PG~谛8Q_ B겏ޤ9<9"PFendstream endobj 178 0 obj << /Filter /FlateDecode /Length 1331 >> stream xZ[o6~җċX)ۀڍ 5!f˩1j$@_wDR%s?maĸp\m6ߍKݾ|JwߝvD@"ǓavӜR$aTʜ$tV?: MYIbSs2Q|.]%9"̗)Ubs ӹv?58VЃ1oa5wP>=H+2bЃa+>0v\B/Y # Fq.Pr ;GG+E%,0vbO_ZJ C1uIshwI/9?Ӝvb۩mZ@qj-ћ0s}8 ħ0>gv֧ E͒ ғg[J,g"rԊ俰8w' Ƞ02} Md'P'/FSF}eIo;/hGD?8(4Kqv"!qS_l~5ן .6. Ϊf0Ж0[dt3Whzfü Fc#f`k%5 K}o|ӻș6f@,9AwaI5=X=/L&yJW/U߇z U!y S& Q.R%PLY]%"q1T#|I5 %aA(r{>в{<²0DC؀.$aɘhufMWpIh:Q]P -js}ZoňUm։mHAD ƧKWfV?yD!H"ʆ!0ER3H{u0)VSM  '  {>:asȇhM}Q \^О&MNh… ~:yMwM| EᲒm` *U^ݖ>33͗ rƄ?FՇrK>CS&=zkU#Q%U.2pIl  #˂.>jZ3`Drk|?v>Fc DY" ڈzdo=2bX~DZmR[.TpJ+zdѶ7[:'UPZ2tZ̩7qktKWд|A`78" 9h ۛ >-8Hdq_ֶﳿyװ)\Ffp9endstream endobj 179 0 obj << /Filter /FlateDecode /Length 1018 >> stream xڵV[o[7 ~ЗG%uW Xe@]ⷬnlxm?tt.α,D~H Pn' hIxW2roHg[ yEpRE5 RTAhx\ϳ]:'핊"ʉJ(UT;#11[͛im~yw9pZ+GF i $)Az~}jD=|A& YIk‚e_[DۺZN+5fM cOVШoN^/w|ktx S7/vܽ+e_"!+t`2X݂/>8!;~=kϢ]=Te˨uo~}ؽk=o CΥ@hmyq`ҙvYPh;WK Pqf#eޠy-=ܦmh㋳hw@rfhCHz-C[&}HoqCpC/ZZQin۠nlk]|ZHT,2Y}*3oco[F٤IJ~ղ6ʁBi. ɛN)p| Z=*霍LZky2?lrowTUul `n.ȼ+k>R̘ UjDh^ }G"蓎A:K{1g{=\)BׅNo$? gaCħWˁ!%n0)LZ-zDo =R")ye  gp#xtC' u oO =(hJdSbS$NX~v\h&lLyl2Ǩ&%u3bv^X+/?FOo:Q~cu 1:Z8Q=sJWJMPte<Plendstream endobj 180 0 obj << /Filter /FlateDecode /Length 1552 >> stream xY[s5~ϯBGw1LhMP`Ɨ~;]_r;d:]i\WK&؏b2"lp|2HӱO$76O$Mr9 Y'd݉hp^0br%sΧq^Kɭ Ln=l.~ybJ듧d`+mMZC/t1U7 eaTl 2wZWv;ַN.xywapH7]""qco)'*?f^aO72K/W:k 7ܿ2Ttn~+d*t<݋2dztNvzj /yd[iݥꀂ3H!?6ķׅ ]2%[ ;ݷκ$Ǎ̑ڪܣE>'-DryNlaVbSNnz&zTMdh%ؗZKN.e|W-ѭ%; :rg}͵thѷ"pN%XIF8OQv> 5R)J'=IkEbo"GY_Ynu7U+n_J@xBpI_pu-CrD BB~::z4@s\" ޒ*%p|.WǃZ}=!JHĘZ}\z#e- ^PF9Aր} ZS:0]Bx t2񋱍$\ZhAkDQ!j{[RSCT¶4̂pzX)Z\לjS{2$tr/bE,ܖ܌{賖||ǭ|p{(zm-E+KU"2Ir5F]+䠾;n ,X*hfob\_L䍹[~3qfZw9 ږ ewo@ JB|CBXCA,b;DUH=%s0-2r@lXȍ4|djS}4꜈hPGhBsnVzwߩjNnT2&D}õhEtqUx2?V@]lϬķ5OUi[liӓMooϲwHB\5YQKU"֟B4.3+b^O5P~Yg2P+c:;9jilU?8[|^EOFKXW\bʵdh*XV֫CL<11Y115Ao,J> stream x[mo8_!t|'uwvQRv?(2+YIN7|sdGNR;q-jP!Y"9AK'?"8I9'׳W.č8̙nƋ]v<ͺt6>ɴz8"jrk;jB@@;KF !<[uU֘/ )gµ}i?3=ɯohLv3¶] }R?gS Wz"bT=Z~pKzCΠsQR`z2z T+rD&GB,ط٤uOX/Y/y[&s KO3o<򵟴{wVPvm"#!yQ ' ELJƑssryA7DR"[rlISiKe,L|Ӕ+)ЋA-@3F+T,A唠c3<ڱQA=6ʼ;A!,\x!H@Va!  a1 0 a18c0a "`,a1! "`X ҀA @`r sX% F=& \p1%a18 <>)?  ?11` RAbA;` 1A2ArA*A!AaATcPcPTM%Jm;3pv܎x]fێ]|Gx ID 2(;RHv.i f DY+ΫMm0[cJEnI^T@g6b0U @8ꘈ="Ya1ÑQР[SLF6gŃ M]X8б}yDxm֎'zb.kX^9rYC0h(a@mD-i0LMUXswBȗppSf#'=0Hq0k&ucYUDҶmTvlmJV.$dyqc,O/.=ןCV:0S!tH*ǹ?c={/zv{^Cξ-ǴϧWK]|:btd?/ߝ=pq \&:2Wqlj{jGh5\miof0=}iCj8|[)&NuYL:Ե??{T٤9Oyy LAm߸2Ik~sRx0BI= ɮlu6Pɜ#s1KޮAU ֯#ʼnsPQK>Zҏ<>L X ',BiC4^4^IZ^|̡IܽcHHϺÅ9gC?ѰDJLgNm xi`MNi[Up^ga^RhA,@_J*Ο.$`{Y`%k(Ǜlefcx>2{.hAl:w6գ`]QfHĖ鉮2{gT+O]IByvk ;&O Kl4Lٙ Vf՗eUϗUmh7jV@1/Vʒ {Ox/3|q=zH{k3%oUFcy9Ջvje󕮚箾֭e~k܃\vl!J*w9v;uM2ǰL R$#d; endstream endobj 182 0 obj << /Filter /FlateDecode /Length 1951 >> stream xZK4ϯ@Bimče಻Lwf&Џ%]@wʯ<;Ig[Z=Lg˟*v0b\Dn>v?^x#xs^+Ĕ+ݯ- D8"a)ʐ,ZmoL=I  ,y69sD 42t($CLv?|X,1_, 'L 1uP$XXER*R O|+¸[ Y!]8 _r-6ِhP&-5Ws Ϟ놭%H }[ŏYx\Mw!_70ia+;(~PLKp۟)RQ"̔iUL>-Qߊ،}yqVzE0HAG/|VLw+MߎSG xSp:3MJt9tkޒR 񵗯qw?蝕܂AfDYhN-")TERHq6n 51psaW Ž΁)#H`~T@J H,x\P6R-% ^%Zҵ]h| T\8@\0 u2,aQ&.۳_Y:=MW3wj8u9 $ 6+k'qTZ<$;ˆ#l; 3[Io7IC:"~ @z]^kD0Q`K/}r놩MN7( /vۂtԾT؅vK 5b(:-!b`u]ELd"_2AĻSV-O2l2'xvLM$'Ma&RO.os8ȸB0+|;.Gwgmy#0 (P幮eڻ۵=4D:xX0*$Tg$T (blqӑc\!Rj2ta i້tI!|WZv"sG`0?ߣD9 &ǥ xGޅ>/H[zP}./[ʊ2_YPk\&t{_U*U]&:=FXd۽aXR#>9\$~:9N?nЧ09{-3} jon))cc*|F@A'g7Ϟ^O;@aAWBN#:3I RE#o݌M02 )|+xyޢUuw//;ZN|>fd;c*Aλ;3+;JfZPP󽰩ɻŒ 3<.To;ۅqZ6[1wgS/ug6-k;q/Wyt> stream x[[o6}=@.^6ŊAeG-'Ҥ(JIY#v|]xQRf_'O!%&s/P*҇wߛ̼1 0i0q4-Uq0Mqf>NY \ezCg$0L0ݧ[0|LRB5/Ѓa Xd8>|Ą'FOpd,[38]0/ĎQHs pyIW݀9#^ Gt5R$('K#o>󈱱(wĸv_w]ZT- q~xZd;aӯJ60T ;$kLom{~Lx8ck$X fz)}|6F񤉉5;^&X2ϝ |ם6NJrn,p# qᵊT$bgӓ`,KG no D1RX>tQ s:_tEѷL"I6X,Q|ǎ*!;vx SȧL7Y:EMŏ57i29ѪՒ~]p}Z˾sf 4$Oя #9"(Ϫ2\™\m/i*cD);G~^~hHR{ @|r=Ϣ4o[Ed Y:*__y gsvZDa3W}~HH`כUgVhzNZ/t%e,I~YfgT}yI Qx]r>|_x,6=l`ȉWQ~ O'M׫pze1q 4Nr_le1$#KUe-}=:]/W}j|K%ĊaW)vׂHf#5}8| %G`>| ~{[(J=ȕGY׷@H0@7Iyj-'ni= `. W7ޙ> stream xڍP\ %63w%Cpww 5#szjf޽LI񣩽1PSbe3!PRYl#Pj-seFw@`ccah7r4(0dbN8yИXyy4|:Y@@&F6U{K \X@|nnnLFLNB 7K@ tr(hd 4&J_ U{3.49ؙ2O@7_w[Oc#{[#;K;s IR bٙA4q7r512~'@2¿s6qt939[Q#n,ag*fok 9#?2L],]2sÉ ' 7X0@{ >^2>f/g#W ++0[!] 4 ~?>}{0S{;Y棴%W)*jb0qXY8>OJ,_e޽f}6h@?b4x]͟z?z#[Kz  TM_-jocu2 hgn6Z:KZM,A&-dl t7gbRq~՟*IoH ;{?n}FNNFG/#5f&;{л 80C0xE,f+YEPNc>%zya0N6۠XQ33#2P3; *Իd׏΃4lpxyZg1 ;p ͠7lw ƞ} Æ+r^3,2eL9duFF4= 2y^.|qqTFԛ`Js3' ?kV'p)OֱMg6j];[HkN RjWc(8Zl+Ot[VO_9:N S/_;IfK=nM3)k~s7mA}v['TvHLpkkAMu")+EQ:b$AYѥoXI '4Za!,\7~0N.DIIdQͽ'`UB63BqC(>_6-A27:n;c&Tڇ%e9ߐM)8-tG3SjsF[h_Wtbƌ?|5cb { r }Nb2N"kNm;wN#Oa&%MyUh~`Jvl[Vz`=1_kp6XYbfc*LgCNuVAkqxNqq?ɠV=Ԯ _װNO92(egߎŘ7V)Ji\:-Q yh'_kvtoE<٩K~DtQB$ߤ[o1 C$[`$Z9Ԡ EBvku|O>cܕHhxÆ{4F"[Au]tFAIu\p; pHDWJRfsrHN@U݀ފ D͙PI^lD[DxLT=wk3+Ύw9#Y,.:"+>G #2t W{+veDgbP&F,aЭX\2_ i.N8] V(!ҚxU{^X߭БeV{SV^aڄaCڥFsgwGdR$H&6eM$bͦѥ\PY_@ݤkzSZ6s zioy/ۄ6srQ7Ѣ;!4H,@Cjf D3A!KD}fρY}/ّ${ {qwshPlcB|\dܧ 3\G[~%sl?_Z(R% ]_sxYjk;ƚz]^y>܇tFcPX,:`,r𤂥$j)t7uZty!9º>z -" k8\Q@ٵp{T-xɦr6oquۥ BOl)x,?n4y?H_Et1mDvvSb_8{Oa8BB]v)tj2[Y8M z!s0'g>{t iLD;Rn)jJvgL4fPyS-;EٮjP5a#[uӑj$MSguK44YxS*(R4hD-^86=j ˟/'n{~wt4J_rDyZʾu4DUa,`X"8lF9]!^#.Ʀ 2re1(u;LznWin!D k3gD82 `U'l?l}Fjg.@ЩjΏ] czTc=h cw!|Vt,nȊyqԤ-@q9)膇CaztkZ<腗i{ʫj$Bif9# =嶥< ,|ؓ|[c,AҐӡ~?/dF,a7{W]7σ.à$Pa- Q]z/$ufx#nXy^'!86]cFo WЩH`ΫK[B) ʡ#V9o OY\ؔ&Cq)?>@#C!fCUYMC.x' nq Ib?|wT _闇+嬣9q3Ge˭~H\^֠G 5>o{e8Iu^E|tk0uEXѷ-J_> S#/=yx"+ѣG$`՗.de]}0'ҬѧQ\YsBmUqaa*ȃi'ZhB<&/]|-*\94`g s14&xJz1c?/3+. '2]kZV` UejCrT../ƅ7PFJ|2Ms&+Ib(EmpU._C$IO2Ǵq"ɣ-\ٷ6!Z+˓ OlGZ!.;t?t! 0<>,>DF7Ct#MCeW[b4b2Y[|A?ʲQ=FV H^u;k5?~ƿ<2R>!.mnw?+9Xy-<=p>\tW95r3eg M|=H@zBYcoڌ-Cet (83eOh{x6֊S6Y5Z?bs3%p2K@mTZ8irJRɛǏ@,هNoIت$A7G[d7'u-+ e28/q=B}򊻼=!gp`EZIRZq&3;˘i1d87 TOB81Z-/-Ůfơ@; -Y?\"BJ~}TYcfG3lE8j缜8ȌI ;@PSq+24NXplm/CB2X b5mplZҦ 9}Uʆn_oLr9T܎nRKO4§:llgteBRƻ DirdIY<$6G )I0GT(qp=zpʵ4S4?2:*3b]Ze?_mǮJۖ2x}YH|WLцfv9|{c(ҵ- GdE߄om?DؙSY4l]"pM10u,2ފ["~&f6iq~dMTCorWgODHn7;cs0jRey,`.1\ OE5-2 rdZWn`^= `ɠ.#\ǜ=` #u2ZglL}9g:sU%pI\'7ڴo;$~'`HPuxCOa^)[v?5@[s7# +Xv۲C!]GmM||O6Rw 9IAU+0X/MUQm;(ZS.udQ$1kpیSc$|# ]ƧX*Os8\FQ#z)<3'= M#[yF)p4nV+#Mw.UW2d4PnV.+ v-bv34KRZx>>)&-*QaB@'6eR8vrK\o`>0Y ;p7:Exax?3+j>f4 h8O=(#k?jĥQj?p}ɷ77"\(-d:61ɥ3 V! %x $qSgۚ%"R5؏lX!'s DXg>4ysJBf{p7nKu[]z>,p۲C-|u 1Qр2gqVgJ|]]Nm5)€ AVTKS12*tqGNuTvmg~3dyOEs?vx :l|򋎠hRcu.XR.$u7DdZg)"oC2Ȥ*h}_=Yv~B/2Q?6$|Uz`]÷š1M:ίY15S[ s4u r|A6?_4<]RR\r;8p]]IY׾ױ6b4t(!x3pVdm#` aRO|-mAk4<||sa#%2\K+TaM\g p^b^ )CJ| <:g&6zJLgl C:VڀBV.Y +2㸭o%0 HD8|#.l-2|m\&$ɺvk6B:5iן|(UFR\$ lCS8>/%Wȴp:Z+w=ã^P*Qz`9${XP=.Fl^jN}zSC"K4^&8)s?:~Q[}KV7y&*Ji${5ahro?#bl%#Ayo*PE]v,* | r?c,BM6)' \.qŬOQp_"#FU䢋ӻRJG@Odf\ֺD +t?DdQ>X?cN m:9Gbp$*w4i  ʘˮ!{,mc۵̼#DXXhqv-/.JU/I;xDvgDyaoЎ? ?nN왎Fj"phk+J@mBxpO"\w0-$,Vx\߰J,\>$*Fz1q;NiiPMDRGRvDʮt|ٵ?i8+*sU ~y"#s+IrU[kkE?EpQOCX E?dz:tĐ:a'?Ҡ\PHP/*o0ftOϭ~z"ZV%ąm15S,{X Od\&,z0Lc:3-`)`rw [%#{gS١gW e'<.ψ9 p:>޵;w02 3\BNhz~Bz٭ PfNafR` 2qI0Ќi(jqaKBA r~PU1]ãء)4)S)(v0;(\`ÝM*5h ٘Q見؉s%QJVbEIlTI>^Q-YyK̂ܯ*)qǺ.MC&\i9we(D);qOT 1zzK>~mNz]rS,Ԥ9 +M ed2](طgc Q(0'EU?HQz|aj[M54jjQz -3* D})[51Q$sn1+HGt_cwu|g:t:eUOeT=ު~jٷ\ Q|t`Ix;|VJ;KOc/݊h L)C̙!ErʩKUU>s=~qKB{H)yGiMwto׽xY z1TQ, 7~":"ttɴI~\M]pGlvUsAPֶb+3LFN hBW&h="u:`ei3R=kO\KpTYNeBkd=ZGBT Mh4Bfl tEe݉ zG PyZ Yc!Ov){isl 5羑 Ȳz즧tQˌ\ݗ]e{Oz4谸1K88>3s)t: KNtrU 7F}f;U~^?4 VEi{ʖΨ4;@dp…j54 }P+l{6$Ґ0IWzf0df}\6vjq#u':"{Nf)C:gI+XВl_鱞UTJ%hmKDu2U_*aMO5˯q+ \%@1 ̭'sv̆ [)o8T,LJki؍_t)ʟ鰄DO Ђ\撣jEE9\}+"F_+$9D'giPB 5]n̙54!Q9L [h""fRjV nyvB:GkCIMsYC4$X/U֑G Gج5ATnv&bacZ7J)&R/sF狠 X], `OÂ/̇ˋLlXS0f 9tCzˊ\hx=mo90 ) b`7E-LI[1d5DWhlXY#wだfTvX?LPb UӬx@?繓:`C@B[Epba?fM>|UT%ֳ8!QPP3hW5?)!u'\Te&UVY[F3};-RwkZtjoWYp'9i4pGsn h(0O,/vKv[G-w  Ee nߩaS6OcK(L,5jSrrx\.bpiI-*<镂/Yvv* cw_'A6bJR=I)\t%7?3'1Ķm掆4R"867NMM&>ޏYkS*gPY mU^DsdESV!&}tӳT!VjXrQQ(隵$u,Љ3SH;Cϴur( *6)iP.E?f)HnN~v`O*Ui z"\1 GR+F:icu4%p3LFEA a, 9ZTSOe V߯Ј0)2*ɲ\9bџ+|ZSܲ`$b9-\Fv_GIsXr2ÝWMW |zw ִ6j-(0+KjzC"V;>Enu.S=9"p&/8O'ܚGm"ı&\[9k&Rvg1}hའri=LsSxȭ&2,h,yX!'J(S bL TU:] 3ajBtY.ɯ$g'}J:osD.x:zFW[ہ(\ Gί6ڂ=-j&'dA2M˧H>l+va43U;$| *m^1t]sPB)d ޮbf+YuZp9[r!r'L鹥%txRo_"9n ^_,\es8iWvD0`4t"D@We[Tᆎ!vd{uB/2yРzdtҊX0I0Hv)hE%(p0t|sovn906Ks+|˥EoJ^ l0HZ5KE 鴒}L$|>Eoظ|w"!n.9 1aQ^J p`ԮQS;̲v)ٷzKcK~c).Btfa(bIiߜXZ4({{A,L~_8 ݷ: vCȽvpT+iw1+頜,X}O-"ڴV;4}[5#X%x1 9xCL JǍ^QL2COjAizp$8[OiXpL .$?#yTgL)WEk 78:8^e- ]/:/*c` uLB9G~(;Rμ0?Gx09c@b/ḡ1 O*L}{V/]ƾpfUhTpiNRo/J;,"./$w-~ul. & Н. 1A0FBfӺ%&ӏS` !1BÚfHɃb2rq>66D5m+\~Ӡ@/Phu$!U*[HMUt]IPA DŽYҬF. ?{w.̈=X$ĸdO2\Nklg6$ӆӮv"`c4q 2C{ me-hCdש Nfek10Pe 7嶕Su{{> G 墷2|dAԳ} ]`4uz#C-H)ʙ(I_&틢OP?R8]H&q<ͺ\YMEHSXMnZ@,W-N̡_@ R 'C 7 en!UXo:e:)LA21㥶P 6=qvr z4@;w"lnhl_m#oXwp뙃 QzEGcƓf ^Ea9= %+XzQd굃CWy!M9+6$qA24)zа+lf.8 >\$WP .N|*maqptszƍ1tQOl *Xj kiNR.91ygy0 D'Xƒr򃏝rqӑ-jb] 9}0 sKg"XJ>*-J;"̜ÛnxrG |2+R;S]+u#+gC^r@[d]K[pC3460qdХ6y%(-e籎zsrKD"^p%iL+lHcϵh:Q0K gGLhYd]NcF~K )q[ @ CM}QV`s.Fjc\vg-d2)5hl,J=yKSXT%5<ao>Ozĵ_X%E;Em))3/)7ꯡ Zw2I_o o6*H-sJ32nK(Ga%TmGg$#ګ0ͽl^DFToLtO0$dJWQT=j e?L[/>̤ +YVjmpfǶ;6@i} UC-Kwn_H-L{&& HB7lpD# ?hh;!s)~3١@z H/P&{^ڄ:0|WmǮc\úq S_l|¢R4{#.}eճW9~A}C(s.b]q_b>-Y$>?6#BnS,{BF^'iRk.GkcI:I z+ʡFd-j?$ݤ[ ] r & ww,+HhQ82)ƊA9;Ghc:%I y} Z5WH QFX/MFycM4IH3\ω,_!Gib7 mq?FneK!ۂyhXǕz̷on.T:6)OQaXRYm< 4&V/,OEotz[)#P<$z;%@{>4nݧF󗥑 :K}c܄4D Yz*S3.gykSZ%ujs*,2,/[r)z #G1 W-,(p6&?W.KSWf!j{6z1 I[k&P[a$`s9| (j4I  ;D.rx%ZHqRN$fj(UsW 6~ Hmk~5^ڱrn {Ts}o&LV@YZDT<\*|b֊؞O> $Ť6%'uW%nDԙNe6#V!?-zQIBD~IVc:GŌVP SGw2S@8|3ᱴU%1Oʟ(HbLU[E#ٳAXorĵ |0>z*r"e܅0 @$Z:6܋iZ(va)bL?y+{ej.(HuohbR=NFSU+/mCC`c+~GHu5鐂Kbf[0< R sJO@X̫HuUpq,eObZXwKS}^F:gKK xC 9 `Z9rUm(324wu%$9WN!1&RcG= OM7E%:Dd7on'Щ/FBQ% r!*V(/"5/ S#&}]Rˀ9d37͢p E{*wqJy  X2Q0}/r>,ؖh4mOx|m[$$@O~Z3<֨2Ҿg1WW[3v&һ%zor[iпfU sInt:r5Nzړuſk3G(Ons80HE45fM>-(=0r $.=9n;%0L,% ?;1E ZXsr!WAX6Sp5p@AR0=fg-: \rm!O]\3u8f@ '`. ^~f%wVendstream endobj 185 0 obj << /Filter /FlateDecode /Length1 2203 /Length2 15374 /Length3 0 /Length 16676 >> stream xڍP n!]]n \w 8J꽢 XWݽ(HTMAv. L<Qy-f+  ? 'gK{;x:.gb@wGy{; `ab@ fi gہ(D<,-\W 5p-hXl3m& pqqadtwwg:3; P-],* gdoi 5 KT\܁N =xP(:,/:`f`/ݿ";hbbo3Yڀr ..t_@gxhw@2M,\-m{LEmmAv.'f2y'/?/v i!93ؙ89 GĂjkvwZ x;@'W? &.ccٿ;YztǏ0S{;?_1"%("bggг3YLoS%快c(mgfGۿ'kC P=&v&oߊ$\mlS<_WMпZڤ]"lgn6Z:KXzL,]L,5DwrK;_wQq~Mߔv& ;D`z0vv7༿𝜔ҽV>P#&0[ddiD/2 !k5V.֧ul,l ਸ਼hZ I鱃}$cQͫM<&b.8V.dRYU $GQ5_)LO|F<41.: 2p,ZY6 ";cVƪ06u%ÀűP9Kȗ+?A \!h3+i+,CIǪ"o6UսbṞ#nWBJ[Cq Nr%1sA3CbK=JQE8Mݳ;^4㿈Xn ݱvy aۈQ71M(GV7mƶf}{;R}UrOeڬlCCi^sc]q3r@?`'N}ÕX:VR l=QA.D߆'06mvpq݆[A."4lS)K4'y1vJ+|ǍqWy#⍈$f܆JGUp%Ћ{Saw @p28'p* ʆ>QCqc'KfcNΆäܷ٦[=L|csI*}= Sv:&83εn{Cf SN/ъ5xϸ0TX*n}lSy5-R6$HZ0D21eMhzZ8DK64ͳc< ÜIrO:Y~u677mi<s:A/(ܬހ$/6ǒ [Ȝ`${e32I0{nwVNSs˙:JhlfZ]ɺ*:|9kOlJ-X-}CtQ m{%`ޓ|a¨pBX 4kHH(]R7:f41|er%Pϻ#t4;=)-[ZLKA*?Y%HHF]<p^#qјp"?8ƒ,NƚXp:S_t+9 ,,4~wR N%PC L`~(Zc-TݧL_΍&2ə̡h X XtWTsIUo  P[lfZ>tI!l}`nJ {/P6eTd,jeBX}Rp0c„YIz5n&GyjX*X˘eF3`MV)Ǡ #_~m2g#gO= E@ކ]2H#0aE7wuZiAi9C;-W6'Lz@ 6\]8 +zg~*6ǧaB(fƄuɮ2ҝ^'`w; "hGK 9%8"*ҀBn )OS~GtþTJUH![U݄f-g<^L zG(G2 A?bΖxv/,WVCsv%jy~ڔ?8:%[g4"ڮe>tI _cH}6])3^R<$RCY0Z}iED'< RПyjs4Cg4Ie%LxqƲ$ ʭ㩼yV^A2MxI&s5cwδy? 3~b; {Z\L9P_J>fE}ʓ]U<Ě-f=daE/T`βE߰4^p:F!c6(ms%=WZ9 2ôsVeۍoMBĮS h]YP+BtQYxk3O Wb) F9LEF0 y4 a}+ǎebK@٢j4OĖ.l:`?.+>%T޴SY \RCȨ5Ved 5 NJ SLwgy%6yDuͳ=VijvtC,gqٶmx}T?ѳ,4!zuZEXY·tnhoq۩ %{:-L)߾$K'%]*)!/Moaƈ1:Uߙp/iȹƝy+l:? 9oGa=0 r(/UUO+xD3jS~S:˜JLбA02JX~T~[ z HႡ;;µ- f h%_`W88nb^5(\Xm)w`,u|wɕܫ۽t}宬K)،@۲)xmkGn%o'n&dX"IXUQR՛~]M-_@t[A0@3lrAֺۛOi7Ep8oD>0lӮ&x2=+xEPQ:s#ShP"WiڷyRDD8SlU^JuER'©c~>9ӺL`_nt]3 pR6)M㌷d5gˎs.oFI@6&aд6"9~^w{9 Й5Mڜb>F`G jЙ~/w!PS<%!VOƆx, ,ѳm"+D3ɦGJtHE$]1 O}ӶSTͱsrNny)k>vI#'LW f%WzFLYKQ[2݁tUԓ<^.09](fEBZ9HhQఇ蚔m2O72g~1$[9PuM:<9=_bUJ(DFc%4)YbM-[ցs,s%K'Ҥ_n50@M}x [jPOWஓNtsڨ G~9qZ4OnuP znz.Mȓu VEț+wGN5󬮒|?o͠ize ;$ir#GPARKA$.}ΡHOSyTSָ֓ V ZVszu +p:>L&1&/x})|wcc`^MFۤޑ).gXnQswwY$rj߱Y<->–V1A}7tsdjo=TlhEk:fvU$dA,I[>xpFNbOG3 L7еl`uB2†vf$FJlTusK0-=RTW+a̟5!kr;|z)?+827T&.w`|4 )$o۞4E+q#FNB`ьf1қJTaP.1VE|Yc:N|MJ(Yk 4EYZIs#{=Oy/)+`m+kc>c?Do#Cj0\CBmd z~VH gc`[}JX9]ΗjG ,y9Ž*4O>v{g²^o =vy8cVKn G)R:ĴjKo\ׁ2}:p0@[J5,:lW ϟrq7iΚ#Zc6*E^FͰa,d΃[s̠N,iz4 %@[u4r0%s5U x<݌E*u 䗳WN5ROwΈxhI.ApU25VOݸ]C gjX(ːga~< Ug7-J;ԷT:GgJ9NI]` 3v=VV-=JT`c3}߬x!( .0P)\b-TJT'ܫ-~90.}0SCt(?ArDvtV4ʐD0*>8E8//]hoOb(J| #5kUQַ^,:$EũL[|(zͰyu$*;`E7=G8`VBCϴf`6m.:i{M %4wOrͧcQ9>7# hS =b5޸le{kA9Ojrl3OŔbl|D8Q%TOuV Wׇ\YtORbpw,q򪴈f-3ս3 .)c \p}%b>L=nN0ʆv' AaLAWQ*ŸOs2تRFI(<84OmR)){c/_V uyO?PA3@;_F>ny_*o8n>եe9fm"sV$hԮ D(=܌VƼVIL}Du5b4ge'~: _ dy==_)*Jk8e)$aut{=;G>8DR"u1tZh5^W$^)3Er?6F/M"0 /¢;pbs]{E8)]U5~% QݢBF${A:3"! zSK X7G*[K"VCuw)?>''ৎ̈́2Dlc ND=|9_BmY.Y1HFaqW]C>XUIl"I34S.4\qaJtI dM;A؅&LC!jNiOA:!`ܴDۑ(*Lϗ[=;SP/Ue#ۣfu7X˫Cp2"Qi j )V3$i$PVٸ 7;W[ϙ 3hX+]XbbX$t-Z%$QGĻP리# jnjG <*.@( ABԚp\E1AttԔ3k}jNjZ^9Tۯ.)4<(Up̵L(ur\ Xgi( ~:hM\dk)Zr5OI< c"x]q<0hֆ4aԒ$X3}LL($`f q_ y8M;\#j? WH@CХXn+AqQ>Cvu1ֵ4{ìRe;: ~rOCrOCGy cR&@DF_s?jX_]W`q DE+i3-(Ń!k.*u 5Vw(Cf/堀tiVį ꗘ57TQ$hKegOFBO%Elnq6>$x^hөљ0}CC3> T5/t,} -ZzF@.3Df:d/a_&P"".t c{\={uI._vrĀUzDNH"\~6a_kENE0 `X$wKP˨߅҃5r)]˘14fSin MSFh\_KW ^ 6GhnM<";gjzq^Z=W˸JОw‰( jpyNPJt= s:paV[ϗk+@iJs &ȑ%1z8sL E8;}^ P=x/riJ#&aE\aTx ϫ-YdN!9fALb8䳀2LJCj=sޒߔ)r1B)н{wyę63p_f<å |#Q# ٞ7, J{}"7ZTHW>1s!H-8γ"٪C ߐ8V­;/_W'}r^9{s*Sq:R.me.ZFVB۴DMSnr)mcd98Q .IDX-3^uwr̄(2aTb0ݖ:[}ގ\Ĭ.9TbɏCjfrְ;WvD&%}(2WHgh(;RW1.P`% ius͈Fh`Aa" 6D{D{jj2 ZෑԩWLQ#d>drɭ֍M|O>}CG{4# ח[7G%Im6JF-|5o_ap#DF1yc~soLDvV@80*[ DIMˊ͌jpx4-] =E!2sDNb0Bb ,4嫭hr卌˭es HX;Z9 7ޝAu**LCJ*|q3tOaߣu`nѢXqƲ.TZ goc3 K|~L\n~1CWNWV=aIBR3cK/dOQm^OZsqѕ(a2+O\>G3JyVpWOY+[= tIy ^z( -0JMhDp d` Y9C_Fe<)\:oŬqӚF}zT<.hƔ7a;=dyU1_=Eâ}4-5gL=8!mj'5¿`~_ӳeSeJ-O+83N5Psn$b?>a,b1߃~8&b ǷJ| dNJXY!r.c%uՆdA'os|ۉb6Iu]jwZ`{*l{!T:_OʱJ'M;`2=U?*dd;ۙfȪ<>P,ڸvO)_JJ*%t=nt2uIevY kHq1 (k[ '*8Nl$(%3L9sv>nE,}6=4xC9k;K(1`~l = 6Fi2+ kGM+pvoO3}E_PP)ٛll[Hd3Jjfa ~ .!3R]Nϭ,5{^Վ yM]6N[Vi&B쓦W:*ݰO*!qo5M:*wīkj5`YyE. c5.J>MmxƑSaƎ7@ed}dqEH660zj\0WShwP0 twf$,} $MֲCHoD왹c(}7j.>K_Q[b?}Hy_)X04IJGRGs~ 8t-tm3ajwYRn9M6ˤkn޻scE@0jGKݘݰ4u=ܽK͸lZ煯60h(N} z}YǍIX]߲] qxC׸/& t؂q{u5o%Լl^6XR55RN N#XbEj)M?qoOUk'v115eқ={!A`+:I_4\$*30Ek) mա9ᑀ8c7E5R7%)܊-̓)C˂]pjξ}|4!H)ZEZL>¨.T@b[HbHYɒ" ]Co!Rٓgn(/gF;fmnr5Fg*ߥઓI00!S,g[M;`tZnϘR1 +-F'釕ʔbKG{?ҼXrgUu** rfWLlتgʉc  aԄiߧpgtD[!:^^v&Ԭ9Z9?pIsNNnp@<2z$3QGOnKԩkEGq."<i/k||\.&Ⰰ9BiH/T?eʱ4KvV1hwuAZKF&ݘv˸Q${P!~KZŢ՟M ˑКgw]9Gv bJ[pGXb V (~k8nǹTjq|)Eјg=%uQNu;dEt\Fqge ~$'kp52K<|+N@*Ub, _oqZqb+l6q5l(Ga Zf }]n`=WŒ-2@3}歭 LՄZi4B0,59P]XBi&Hw_fQmsy?~tV_4@cWhBS:+ C~Uz")(K)r\E-> ]|A[c"^Dmz3 u^n4)ꈯn[ US p wq ?jڛtu ]ӦGJKTKj1)3j^ub:Rw4tMp9c`X+}s?ޣ׉Q-3eE4QnyU+`X9[=$ײ4jguUsαՕ(X!M[(zd=#϶Ş9rc$B?t oJfT$ي2ې=rq{G4bhMTgQƫ=i] mOGJlP$6d7d~f_= \T~?kq==>@A=s3XpI7ە*xbrcTw`.BtOi)+ X e|;ZX坬1Ugc&=- ~g Yo(>^]`<^;ٮPB}2'V[Cz&}}8\^kϒa>ob14QOƯ %%C}c+d{>qJV""(}Sцk{*;Sy<,r|33#pZ4`hnvM1^W+< gœf"O5f߉n`c;OԷbQg9lN32 |fE9X Ь*(DvEtClpWMS\!a9aNBƙKS~jcd3)H 8g [^YUJ|SDt/$z qzEEy\}4O$kKSi3jq5ʽ{:I1BG0W}(Ax!Pfn1 wd-;oip55Xe9*W[%4 e^$BP2?QC'= I@儀*,ϭlJq g:,k"SُҐF?r NTc87JҧIaſJI D66um:݀saL#|mvifz_IL[:꤇Lupߘ[[a xz淢AWI]BVs^E>s ~f8rÂx2?>P:1e]شǧ*`idy/uK[u!+(?7ɼF/$,:Lt'ǡo=tӓ#'F$%].w2YTН;dl^)3ߊ0Tu50y2mE3,| P6sP<ЀFafOz!uMDx!OXkgEz&޹˜" Z蒲%`qehP~fKd`;>4{9m'gD?DW<JjߨnGc}DiN\Fr*p-C9pc0j'gxvq^C9]9y!IŎE0NOV@p07-6^kk|\#[:4ȂaQd'e<un'Pij7n$X\(H3n@AV-2cL82SۿN뒾g,WR嬘ЌmG@"oR5>_^;OY`$_) (X(8C[5,؃JC$sJr[PM@4XOبha|ӏ{b-m%gkV&dy1y8,JƆM_({\׌rT~)SyTwe'') ~J=۹ _ kRPջ_( ^}ZZzHgOL7SZ9>gB5;c`˗(ߝNwv_11]8s&d;Wystc+-SM L0 /(NBs^YlDMˌIao7Z_ )/r[j5!c8 "z[33HO|кZUW'nM2mghU܆; IOB$iDXKȅBO:SKKP!+8HDO#Duo/B$R뺹67C8~ˈaҬMu0jeitRMv 4:%wEMPG;1K§U'KFZK(Nendstream endobj 186 0 obj << /Filter /FlateDecode /Length1 1826 /Length2 11363 /Length3 0 /Length 12495 >> stream xڍweP%nqwwww kƝ % %k`+޼7cv^_US3MR`;gFV&>,+ Rl׃Dtt~;_mίTE@`ccavHL9 Rlt~G)-p-djlP4vھV45MA@gJA#`ldlve-j@'+ %c[?1!Q4,ANnƎ@d sz r3:^e@ tGdg)dg0R L c;?6NxcWc+RdcJ?Ҽ8hG G{0sv`7;9Q\5@.@YY&m@g' 77+Z2QDO>^`{(@9pvtxo 0:L ;-pY^'=3xK%% `ddqs99>3ZUA[FY;s01^?4ˇ{ +,,_b3?{rA0xylW(_bTm_ۘOU+v$rM-ڧ\kP ?W Ze^/OUa]Wl8ƎH;8^5f&;kuB9鏫0aqE\f;Y `6MEfS1Y 7Z7` v ֵj7Z|kxڿ0lZYƾv|7zl_O7ڳog!k3\b91t^度7,$ciITt^,r h CS~x}3'W5Qf.c?Dk/1!p:mwަ̨wKBwцzMypVҝ3]5#IZMLQh?&qeMđD8ZE$v`o0(JZhjtL~̘ptv$zLLQL Mxj<6ҖN+z_խ S N%Օ0-)cOėq [Ρjv9yWʃ-)]|;sU_i(|zTo=>_tsԙTX60iD!3̌.?4tk̮ק ӖzFN!9=%g{3vfjL|Tt  5~~5roClTM˖jpQѐ)PKWl?a.ȡqtA<¹ \tħD  AEJ fKO&=}=Y5N|%#!u}Lﰸ/' Y릏Oxy#lmwl;=X}H  M`2D"j>w[vi&M\yAR5>`)o-iS\f|3[;) oZV 7Z`H,PaNt0[D_1qC݂:E>` oP)×ϧ៕9pTԵo%:y,zZ3%T4F NKv YFb>"ZzC~"i)cDR|% NTZc4n^8Fxɠ!Sa>eG/A|#Ҏ s Nx$5,TM[+:Y_:;oW9|bkE궅lm#ټe/WT i۠"iq.;^fPQkܗ/ FG 2tpq֊(g[̆z[=N HLdVVd֔=0'}p\^Nl;9w cܣ\BDr|bw~/7?U Ԕ=#w^8BD/R uMNqD~b1'uzMkTzQ ,&×͛#'TA/ wObtV'Cq5w㐌I Ȭ ~OR|BXjlRI^ާ9y8bSd7ښ<=Of:2O6"9&Ht^w#6-1`FU꞉d';AlEB6Vr³;v+C{y!zQ4̙)Yg .t?`{a Q#T)?c0&u٘^pT㠀E%i_yh3I zފpаY@J/Rϒ"2n|w*%]}heHH.;mIA.G|F2Ɯ%W &K-4U/xJi^9Ab#B`++TYi[.˕ ڈ%Gr5>kQL\So@1#) 2 Eφܸ~$9̧7Q?c9kr;o:lTo12\GT֟+7sHUvmǔUU:E8 uFtqOX.Vw귑~#OMě@wpT>..3n*2xjr5q0)6(O>-ALRo8/&7@Q3*OnOrUM5g|wc(5S #JNu*o?BaZIuEKIZ͜$h΀B)k3%FIlhJMdo!}-&^ӭm(&bԬ_sJŶׯS50A'!VT ^Nʛbˬף+1R!'Y;G!,y _}n‹ҘxL*:БIp5] c.JgN&n8n֕θ;3Mm3BS+,SF EmՓM7WwBŦ΋č4~(|,vͮIx|m[N24 BNR$*Ϗy{Sj{- L`2Qݩmrэqܚ:tbJZ& g :u&;8]%OGyb~6AF yOt9Tw Ϯf5N_^ǀHaPbO˭^xCJ9UoL*֤lsylJDQЖ0" 3dΑi9rtN޺9 nߺТW6- |B}4+l~Qn:]b&,eD4KӄR-#Bew&l܅6e F ?wZ2[FūD:wDR]7C"r3m8#kLN!,>Tk3_>O #\aץG]ul5;,bUZR# ?pLѣP4m"BG>:uM 3bPbҀ،J=hC<)֥(UƚtKE?"'|/JMj Q Y穏Lz-ͭd^a韖8 IʥEa\ͨvGͲn8)7kv/>mYsi:ݷ/i081k\7öT6vkzjђs 1p^[{w醟Bʺb*f!וt\lvgrǒ-kbʞO-[I PIi Q4a t^r1:6״|u0;5_ Ƞrd8@_0 +5f":,|B5Jq_03fbON4cj(ϯFkӟQUȴWw~%_#)7^o.4C@Ov[aS\0[ǚ- ;=(Uw[qP,%V~nw_!۔ {i04F ^yk{Pw݅WaZnAAMBelfyˈvb$o vV~g&MLIA% 5FO&@SVij~/٧rM7g%w(Ufc'f!t#0zS=ʆ ttݜ狼fH\9ۦ>kh-^ѐ OUmJT2Nv5F܆3fژ oL 'l| 3-K!MYEG%eh[fAymhgvG>J7jRou^hz./nq=?,LVlJetAN5 XC9^$N/B#ndkdWFG_ y* 68 4-pD|-p T*-<Y^Zio!z<ιTtc7KicFG|B9 #?_+mV(i8Qt.1w:O<-Ip>B)@U][mLPYfMv0)%#)Qh} k!;dJ?{Y(!W5vc 'F/ nYO5ԺTh΂<{I9hu؞)Sv}{#x?S\$< &ө= Ŝŋ< .~ydC^<ӱrnJ#ajqZHǢ!)Ư¬e݄Cb}HGT7$}Glg[tȃV΃wWr9\ SBIugi;9uĻ6mi!Yu2\g%м3,C2xmB.iKEm(a]Irro[]$;5X5 FޥಅW#46-dX$c GG]D|nDh0KY,msUe2Sd)+KQ%jյB'b\FS.mun'Mv1Du,wp<|{6?3C\ 0 v8 \s*փ K@C킥ߥ < rF̷LD<oiG̖ajcf^7sp8ަvOE4\SnJ*Qx$OS"6/h;y=kӉ_>=MKNa,c;(ݝKMB`9DSv4ib֯g4h1=-j̟d)|@ON:tOYMʈ{a&@WK#smUz;UC60y4wVq|vEl(IWvĎXmmԺ>lb0GKySq ![@.wZ͂tgR"2ZUǭf_V^CDщg s;GEOX/QA{t17; rdkeմvvq5awMܺ/lc?FhS/c%.שrh 8YoQCv1Jl>Cf&>=f"٠J+wŠ}|Sj\0v @`ȶJsYw`# m i>\ÙaG{Е,gGm2E Vr{#斾N{ՉRߝvbAXGSӹʉƗ=_'q2$ygE1|"I M w(G,miYNB=H߳r`o b}(4,kpxH1q {tᒤ`I#-pEpzv0a4RR c:; PYO'&VɕOdl18|T-]5L0OՐGL[|#f1 D{g -V=k/FBOFf5`51-u+#;. 8J_)debrxԛF[ i#╴wV!C0;ה3\cf}%zRm~-eB)2F|)N=QD@$bL0iw$49گ1fLe'}+ z\3W b-c(";Y6d۝Ў~C/ؼЩ [TX ,F cYeMTBaeFgJIxJ٭#0EVY\7^J&#~RBWHpmKMZNNq2 ,eou<)!iѹ]8S^!调~Q^Og Y޳L-ue34/V6еnSo>O3mhJ'Lc&=fG D_QYv]ʹfd\kQW@dޥ lNEDQsلAmը)Q:k_WwIC()Qk@)WIPS*]KFv%t:mΣ7$31Bɯ8,p,IUb5IY>h`S{gxs+2͜i,E\d'jX1J?kJ1L._Wt疷(:޺[_ B Rb2aX~gq׽%s˼΁g"#H-i"Jרnfǫt͝1 B1baagBPC*cc"vb +M47g_YXuT|voWU f{<^zyw%E.r CĩsZH2/@g#)({IW.&=ԅS $TIyQ\ QnAhd"?$Ԣ_Ii-j%r5a$VX5)K>T{fڰ\h ւຘ09E0]3I;fk^;´(z> 2PۄA݈8u JIDvD|,pZ*~$!nI3{|IWHE<z M$POk c=ٸ[֏NFVIn]HT;);}ezN+y3d"ZdÓL@nA'p,do"V3g9 }FGNQ6T?-e]jd&SI3Aa^r[ DӴ7<q^T^D-a LQ6xva c!ݱQ|80SƞO*Q}YߴXBϭ=kd nK#r*cBM3 IX ` xeGߎb҆@Tw^7\ io{UW=reg>gh~ym }![({pr9dshVVT &y{N[gv'ˋ]e탇pwI@)8 5|]LY]ϣFlC(yN*h)TFaqHRJHY1tM˕bLEN İCJG^ZAJ|GX1߀<8cidKp |vAegĊ2O*{TqIm spki 2{]c: (`Q;zX1MJ ~0z"h~p̐x ]"fQݲY"y.:>Y=PyP!EގQ~t˦0e+M9܌԰!53!)isnz +XׁWUSrZi+]Aż5H\!{3}]ރ^swJ^wH#S},^N9)aZ9#,W>" \$5wة ݭO/)rJB!^UMu)Ib7:S26L8<1-7*x?]hSdmxM¡օ&Q@BٲiiTp9c W" ,;s0Ef̓+33]w?(hqU Ii+[C jkfDl*µJ1Z3ʊ+l}A0f5<-tf52/{xrd+x:=&Wzà\V{Mrnlwή#ީi/e!?*!2^gzi폪n[M&7noT9A,dk'n+;5uX2^>}m T~P/GU[#DqLN@Ka)[UFyn:VI#ubʩL[x'F;zZ8ش񄫍8$ ZO@RgTmJ~`ĨO&Ba N500cxAVx̷JΕDWwwRcgU&I(L7Ga> 饟+ƱaĦ+j b`1[)R%Nr;rpDpf&jH5o) G\oT&3;>v4v6Y⸱5^\6|tB(T%&4aSHũ7ݡ0IRE9g0!QO^VXH<)Vc~ĺ9!lq- aqc 8m&ÛVgC UD5Іx7)s ߜ*t9 ̔:b2QŦQ 0dM*@ڙeJr9gnamQRНq@R]^jY`ĹNz^=$ܓ0\|V)&̂a4gg&!yg.)+RpP d0cA(&mbtOIkh6VTe(̈r%ql,[_Gvߺ7 çbΤ>h4\(Ythٶ^J$ #S51q/2'p3\Hώ]l18[:It,6 \Jm^Gc>Wp@슖JU-wEP(j>3/}f xn2րsP@WCa,S~򛰥: };4 +m.+9~Q/cRiƇ8[M A-Lc~)":v,&@T>}dc chyvcyJjgL^+tW=2Cl.#̝2m+$疇:,hU: Ͷ4 }So Y=fA߫}C%Wendstream endobj 187 0 obj << /Filter /FlateDecode /Length1 1500 /Length2 7011 /Length3 0 /Length 8013 >> stream xڍT}7t =fni`ml.i閔%U$%$TPR>s}oܜ: e*zzZ EIM`7zRn3( CeCc:U0먇@b HJwvDd`O@OCѤ* kݹ#%;Ep uV0(_)x10-@9) `g EyB ?ЄI&0_c#  7=Ɔ<;@Qlu. @  G#p s u1AF``u:lcG0 ȯ4cV; ݡp W0{>" Gxap_0"EL0P-?>XtNP @(-%&-z" _j,?$ p€R?4 Bo81 'Ov? b}y2wh ]7OHL $*)Cs2j_%~H.N}ȿ{ZwQܷ];8 #vwLX ?GW&:T>;=fx=#;"} *]5v* U x]= H[]8va$2,w_ctreoT'kһy w ]߉Ww^^x|qPou~]N SDpe2ڂFJD<ɧ:of />KFMth-I~| 'm']@КW='o#0DRڟJt$|PgR2dae]= ogZC S0$dI %o,iyğe7Q81_3;mÉh& VT< \8NwI橑8$5Yi=IpВ}/cc. jӮA=]'OL3jrVzn&K~9:\>7.1oZ`m ^ЯIcN՘1)5EкF7+.;GIoB6zMM~ӏ4הu>.2;3|f!L? 8Y\ᅖ cuA,qhĦ;?Nn6%zĞGNJ2gzXL%֜n#Rtm-üo0ylk[Htƻ#L-x* @b) "b(1oȪ7x߾l0=sWg8K4Q Ih.}7Vs qI~ʷ%{_(z4jRf{1)c4?׌!*qn&_AldV;còrF³ G뙙W /ܪ}^/7=)'TXjr_{ވ)ha`{?m V4PK|yU}ݭb@1@7k*oz~n6#l>84E߇O¨EZ<}5˧BxU-_)7C+}; 'JV$~ip]|?9z( F&g1,nݭqxі?ZrpB=vAiѶDƻS=Ă\FPiUK=ѽh2B iweseoe HB.ue\oeR( J[Pп/ !&Iݣt<=dg"#Bˈqեi7$+)sIr#⸐x.σz0EXuvt~4Ӵt`ty=%<%FSehw'{: ڿJW%kͅKa H`Bqo9#LoY[Y?zI1!o6kMND2ta<ָN ڹap Kͪ:|[ A.n(Scjcq{+ {WN`q~Pv$d7VPc'‚nG8gp:ieȫOgFPgJ;ʁtuMuºmGȈ}W¢aBjzkLhHmOչ-y#zPa+u2ju8j|ܩ\BwFhNthPsT([fK[U˙RMdXaȾPvf=6R`^OA0|ZXi>MRxECt-yV[ wQ1 $T]QeTCL/BtsBôlwOs7(А}V%ztnFzTwAgnb4 ׎%-\?mLj<wWUn>m=tW,8Ufjِ@tYjVw+u7Ӯ]+=>€ދ0 %A"R/\D&R9ta_~)উFwl.3v xeo"YL4ΙJ2uKZѓWh|Zy'ş;|dmS:P)5"sMIRN m?_P+ ɤag!g( Jvs2h|@!X2NSZk.ƘUz'#D~o 9[LøMm ڥ2 >: r ކxֲD2MCw`"(Ulw 7Uq)Tu~l(n@0uTQU/h4}׺$[ڋO[ohzSpZM6V|bqEk[oI2$a(ƥ]GaErimHW nD Sk||WZ䉨v=\{JT zHkyĞEFэfD2`[xN!I7(-/m x_f1 B}!Q3ipg=B9`+*Ayo۸g/,=4 t;*y]EDw k o ++l(u~e4"BHۓ9z`&&K?cj|c{b(wp6j 5uF"}PjZ1b_&??xCP{훯}A!>ww%*Usا.Q"uT< u5bOʍYyZ}䀹@~ ({])&=>O%)V\cs3GE_2[Dea;S4!uY_,_^?o0 n)sts =wb[yƂMI>L9k)#Ҥ9D5C7G~LGV`թIA!.:W(BLl꛱bN[eKĦ|kF9D\KPB$jP _&A2鳧C^EnfUBDn,j? k]Na:g"n9#'L_2*U(?%2,*ܱ%,^lC[D)7lCBjQlv*(.gƜV=sKpK.ACUI[WZK]RVƻ=\}JF$8wIOծ7jJirE_|rM3 k۸2wηqz߂LKj-[1Ĝ2848|D9z)C7mu3NY_:DwEy#ɪIw {JG!r ֺ]fiZBsʩǛ*LLTOFw'sy!UK"/}nn9?QcGվ'N,yx"{6=cGNغޖF2 yUqB| !ƾSrNx`#YufװwD~~;sBqBm%֥O@(|Ʒ:t[jz4jq.euoҹ&|&>`]'AZfWVooS[0'Zs8=^l, AS^H^3O.{쨘鰍BQqPCҙkq7nln\3T^nUHF_eh޷ +00ޜϝ4?HU}ogI; E1BHv̂W^ډ*9N茳@ 2#zGP+rÅ44گ_m'kWj~" vCq}}O]ra dSO+tnS;/t1Z6wW x^s@ujN<˟Iqh1d}؝Sd|h[` O:.L:xU̚ Lt/}?#G'zZ768 ֥A# W2!+g<5KSMw!)PJX$k` ah˖vwaLkVгc5A"Fr'pŹtm]Y .R#Jy "Ky]1D-CsȸD0xYsכ<_;3lI[Z2?'`&Ӽ˸U.W- V*# C'18YL酉GwR7*޻P^h[I\H'JL9>}Y}EQPBoq8.>J1=p._RlC3B,y 3XvƩ"Hs1Z'R/PѮq= dUt;g $5;\K=W853c71޽jf 03 k\fu>_ؽy*y$-BM4,^"HMd"k,Q%]$> stream xڌPY Np88w ppww'@݃[n݂=wޢ սv{ 92P֙ ,`ddgddF 'Wp#F W::YrAv:d" -@`bffd032rh 1t0lNvf 7PS8h::Zd ́6 Ɔe;c LP;;s3089Q,J@'++a *N˕L h:bkt%e@ۿ2hDN2daaCcc;{C[ [35 /&CL 05E4v7t564 &0%OzNƎNNֿRdeTeQ[a;¯D,Ơ{0Y+[;7[$L\Tm-\"P@"233tݍ~Wd%eeog0%0 x9Ύ.@?ELL cguh75=&㯟tAebgkW$$Ĕh_;@`5dK/?aQw/Ƃꟕ׃hߣh y:oY_j?jC kQvqh9l/U*M,\lVfIh`ll @;'_ ԰-Bq/Ou)jklgkփ &@F@ok :0sDQv6/߈ q#No`q0~#&o ߈ ~#P,ҿ(oE7"/Ţ+F ʿȻoF Ȼo/1 E, =h]~]r@Rt_YV_V os,PM쬭 `Zm{n@u1 At?/,o{Lֿv.'*9HflT@!3(Cc?*$~C65[r. ȹѯ[cSLd[ az`m?g C/.@uts a%sY5 os/LL ; T,ߵ Dw=hJ gsGeE6cAuvȬ4@P.nv-<ƧL}}m ]75]|\sQP4ΈXJE`tP)z6HL&y?Yx\`N=WZj'th>ΚtQ/Oݶ"M$@a{U;3jiF >Z %@Mlҹhq0W4Jq7R(U =5R`RΥ`^0ؿ"wwJ'\F1 3s#cKu;W'z S8aAX 洮~>}ul5;x?\}}uu %G!6p6KNw^Vcw`(<)M>.L?YSU-R$+j&|na([ͰсHE2m+O 4o٣j[_ HONQcv:˻o۲e_:g 30d%6xl΍j=hCڔx}G./#Bͫ Ū So+ՋQ Q[/,,j3|`9b¨X· ?OH&XXn渎) * `LWB(YK=wɦO1jVB乌^vH 0FԻߋ0x~T > _}鲅 yD?O (?T\VE# F)eH۱ i@XuRAf¨hdz)頎5|Z( yۯI=O棶H_qjRN/v5tSj8M0~FJ@1PQ/G%-Vtgfe{}l S dy*ܲ˚pŔLh#zVk }J뇒!34L#8YD8baa(p~Z Gom׍C̜M&tnF(dxC7Xc y7q?$5И{zmyVe^1N@\]υuks $-ᘹ-"qk x(dAT[ ,O'Jp%foK DZY{8)]34Spg>UY'D ab[|ڽې!*ӆcJM96f*cjzwbUOGTacWFzSw/ͯFJ$Uk5OUD|*TLH|tvO< . 7S<+Mo\ ZtDAhaXR_@z9ՂffX[1TƼTn'WÐ )^23CNd&vT]zbFwP㠈eX.#Vr.}lUUΘ՗E*R޽ 'jӉm14F-Ic0e $W(-'F@X;-,m[S4ygIFc/ >,kIi? HK*(Me&`4U}n4{-G%O%^GbxjF/6\s."-,Q +<<HɀO5,L3 im^'Ku XDd07nedm JPiB)ix)zJk+1F*èbAFIږR2EgScnN_ݙ7Ի!=KT@bj/0|.=t=A!iZ:䱪Ǯ`[z8?=T6X>Tj`JaMXlI, 0 zjR?L~v﷡GQi^x"HEҼYP%¦/{WTqe=zx a5+Sm= ͮi9Cq/d [L[a+Զé`1`&KvŷӣItMGԟ"7ܱы&J+Ag4COԛ--c\E.p{8\h=*%dnf AڛQAyPTIml2E>dq"c]Z5i=kq3}[v @yCa.ץ-0dzL< GjWFLfuuB#xZ\Ex̋sG=UoMٱ sIf}M5Ve!(=c"{: GSi>A]1yARAR}z:Of6LChW3HT<'.F c>ԉeOvchQ:dMft4N%t$$"O |@D'YeUy<2Ceǝ)HyxY*o(G$Qm5 ]z4^:ͮU{/g\Vâ$R竜b8Q =WDXeƯԭ0XMDckU 'Cl|iõDƅn5]7g,m: //lo|; U3(5ÂPTgQ%uRo!f K2`Oxc.zlB/\+Q~ D |R-Hp<3È0ͽnbIZ\nЏXdL, )ER8[кt 둙Sƈ,7-i+d9=SFd7]k8$\MXhs%D_K$VeD k478E]gO봗WyU;5A..ܐ?k]Rf .$I5WٶgT DU n+cVcEgoA([/<& >tpvO(ϑҬxGpV wF*K)z{֎O2ϏK(pt"9Φ ULC@u7h6ɚ熨-BW!v,ALso3d?I9N| gC9z{S`y\o; 8)GUDeptpoJae f-f aїAl:y[=@m8Mb{>/g$xlvp}?97g;&VIuuӽתzv_Ig W ivCG7^IF{Mk%]C+Hpֽޘ3}j!:V4h%zcR^/~L^\~Oը &2F:MC`2ӕc+W! tn&knaj|5BӘ:1M*GEUgoևH)%0^]b\ met9EQ[2쀩4HDž29ˆ#f9QVemi7DݔRKjSCGtHΏ&fg(E־ ]F,0٩eñ."WnEd`'YpM|ibj7xh^4&wx2OHu ul#uj]4 {pV\J*\7pE) ji W/WrTA7!i<9|$1a}sg` DMܶ1Nc|tBFŠEਨ__&2d|u ,ݦ}ԦNvE;zY?I FwXhؗ,Wҏ-!W {d/vRjJsΜ5q74T _?E#~  hrmܡΉIgYvO87}H4 9Z(|g 8W+PBFC\Aw)ljz:n8NSDkH(7h ZǙȀꎞOCv1zXmD?(NJvpZRf[O0 E7ۢ$;-ꉫet49\mgLV~6OXP(6#yZG$.E)`Tӣw@>:4jb}eio"ay'|t Q!e)0cjg`K(!KɌc8O e6P2+qgbHZiG{h$wC_:(PW+,@?htP "VIEvF],FLfaoInճle/n]ej."w QiI>F xb VLj>|?I8U],|EX+ |+9Nx) svi&tɸcjCgFŃT ^BҬ{uFu%gVSzJ$I <v): Rl* A`b1?ˊ)z{o8ׂ2 AV\U 6vI")G"\9~V!~ɀBUR6(K\ Xt#":8Ede_x ff4ϴl)KRIc׎H,ꕢ*5;KVkH裊OlnZ \>uo؉'#<ݎt( p'*(!0 QYD~ϻCΈDg7Y 8=S C";eH1_hvERoL[nv6hdw;%bR Z/ H͡\vUs'eŭcy` xlFiry/u1>]+nq$4׺qs >SqkY}̊Q黻Qm:$gs):b7{@Nro.R. , {4f n۵ U+:{#/&5+GіJXxK]c(X"UZq mQ2>U %R,LHFDѺ--Jw~BC#LVH!WM߇l)McHx\rBӞ:uӐl @堬fUv]}Jx˘ǪAekLf+u3h킐tx[{|l!#hҳ pn.znemu h,;+j#٧$A-F3RHW "Gck.y>ط7kA{qMqڴ}^0c5yh:Wi˥91L<*P.ĝa:OpC+oοp(Je"0ZjP=ouņg<*~tA-u֣IӔԵeqz4 +e ''vLd#*?:bBɲhEtDz4Y\sr?Bg`ЛwH:3>[ %4])8D^T|Yl)] 10z)JzYJ^Ӱ'[?ls&0W폐x1<xTpk-3+3Wj*E%py[t7lѯMG7IȪKd @eYW-X2-h%r(o┩/ ݟaj6sWܳ vUT[¾:_vE r$ hTF2Y7Ӓ8gYNlᥱJ\2(ڍ ꆱܿu-b774b'"t8rͥ"B[ T.֗_Ǥbwk`N|9qqCwmm9*é.dM^L-fQ{$TI7Cl0sUt}Åej2P(CRxm|S7cW؀Ƿ[4򹔣bhh<hya7%п:^ Fh#a9,Œ.U~-^RΎ(J2)gMB5sAS+Ni9~pϲ-|E*6|t$|:~feA VeEMm>NAv.O V F֕:9d>cCfbά&b0V{T46^$ږ;eG' 0 H;oh zƮ& ,%?a˹9z%]B[/%>ǗlڶX8R¸8L%6XN J:[{X H HY'|<;DT4slGpƃܞ}HlEgX`r5dA W1H~~5Kj#'ųm cV6\ Xv=HrcUG0X>ORb9"FxT\J9K[WOAo3U5nSbneP'6eWYYQ#[kQFC2gz%'7+e|m(S:[g`ҋs׋44Ak&-7p&Ԟo `#)&zÇ;Xq H{0VN$f.jOPqUx L=]pI! DɰUs8GgLM 21$L\=oÄp8C+ё-#+IdDifŇ|[o;Z/켧 idf>gV֜L`W6sEp@?M\5./So Z] v'̫}P[WK\4~IG ^ x057cqd(JbtHȀGAJϡax4ip@@:U\1ړR5(xjIz2|)Ζ@E\. _ oX)j[FbYt~)N =>Oq9zF4%pXF@+ e l [i= ^tHS2&ɄOri΢+GZ7e5nxa+逢.5><%M,- CLHXq0ڊs*YUzaE>_D AlNJv` U|1S&E{i(Hu Ë\'}DTK^1݊Q&&wVc?9+fl,`cz-֊u,!獯LF|aC~+;PѴUW3(+J^~hoa|inذ jF0W#૭e-'[gHg٩fDfYz/ײ8gpûB;A6@G[3<v c#*'4fᶹXō=3p+y]Onb͚"o5SGMaQO/wVQ}eM8T,69nU|r]|ĀifCwRԣ_=%}@)9npV?qI"Nz#3A=Hv#~c"Є$Tj>F5sK N#MNm&g!EOf"EO>6w`O,~y=A.袁6Q %xֿ S@^Wf[a ީIJ9qtB[>_!GTpؽE/2]V |$i=om55pW@G/S:w=ݙSbpbATqO͊F.dMi6l4^gRն'tDr0|6{bwkyT/N[ 疈L}[@#y<_Ah{+P%Qoya:oHw@Q^(ϕvAg6Fi1,CQK2uMG̦3 #QhĤG#W؏C?٥N\f)jo8F_y]LkCt$|060*hOv7AP -=`v-Jaf| e76O3ziPebcWl@?j~c1, S xþ9闧t]%nk k~zc1KHF,.r:P; 1t2p!L} mL efzLiv]lw]N9Y*Zxv2oáj~iJcs*q!!mR=3SMٝB ΅8t(YLn^dY=A!nL֜~4 ~J# EɂZhjV$qBWSX A+}~n+W:cmvQOX}@n7媪5~*-M2C7ѽɟؖө=kX9aK wWkRo_EPȔpͱ2{M煆+/8枰LRj[pTrIzSF=a΅ MflM(!5t֠8PPˡ %iwҫq ȿ~ ) d(R\=d}9ǧ"GI9;'A0cgs]\ z\x ځQe;CE6ϾշAF?ʛށO!jOJ}f$c-Ҵ\и D\3ݺRʪ,iݏb(1U£hkVo[wm%mƃ;$ȸKxP(q$00 (( %C{#f-zvT(y䑺:+bJ/?/\}osΆ&1Pps'XSjXv;&kUI "Z[EY^FsrR#¼棓ض+ RYѐeixP!3(6ඏVzῒV X߁pgZ6n[F~ְ7X=F3|q2 @ wg-M0|Rp 22:M2!dڹjӞmwI,g!%K}|v#na3$ntbvE#dӭ6مVBdF66"FHAKm`m ˏnB{8 xE hcH+Xva8oN13ZP|.dNz-tL9#"P?Wo(/[q$ѵDVk>jצ2£Z#HO_PkV<;IPO}Xqt`<+-+gܵ2j2y^fk7=}=mtv^m2.au/"mҞžSct|TgQ&y_۷r!n )g!G| :Ǡ$''vB<3qGf@9C&s'#>S2^Yx:該<+J9zQpf5 &OܼN>~*8'`ڌ9vnv7lO0<3PsOuW+wzR`U[Cգ*9,윍]Lrjښfvz0`w<[1I ΅Mgym<W 3-_hnjCa1ĉ4$M9%neYG~C)"M_M/!(::nX ]9ɄZ\LNcç. M4]F6z uop䈖`7zJpt~8D:/f5@߄M.O-dP,u$Bn&p@LWU3ft͗mw\شP!83ѳ;+=fYS 1j+[%w~Kߴɩ..ԡ $~F4 HAYftˁf{FG6ϥ@{8$]14D`zMpg- Q%~ ѼG1x2x9yjubOVOKn0gVavj:D:bx~2[~o=IZsP.ܳL0 [d~ ;I-w$6c "P޿xu>-2&3CP+W4Y,U l^w(o_:WXèOyжiӲ󔻁/ L"W2Z>Qlyg=(- |͸$~R4DO(k'S=vv]}uh4/ĺg_=s>7Q>sk6Qȩ53Z2۷)^SQ*bUM4N?.<73=8VmZpL{'y: < q\ۖA6TDDb@k + D`+(Kq P481#9.^"(1I*Ľr,.*xd_Y?)(o2U ]|jfd%%:EuЬxWNgfu]]u v^(HxfKȠ"2&Qb npki0u࡬wX8RۨV}cFG4xHB? A^5e˓vh,>-"" 2@kthKUzA3Z[Mu /귙tftУ:ZvZfn_ rɥi"P7آkbNjzۭ[ڻ 'Q;]0Boۮ(@sɏf%L5$g܄fX[u$qƹp+a{hy5ߟF\h?uU@#{P[{ 9}:77s\|7>}.OT:XcF,5}(okoG(d=H'/jg\?dEJnjz*Ρ^%_2ײ#85ã'_j([+Q(ta9*jQzoG,fP!%< -w1Hh`*iVLGmWڳPq/6S&W HS>{`K/Tg `?Pp/Z,j gs,~SpG@؛qٛ8 ً lKpr:?REPۇ|5":s|ŋh(: ŋA rvF䌒pL{4k$4Y׀ZKfW$^&"xhxndnp2RiںADo 1a~5–7ˑ9UǍ^m&ɹvÀzΡ'l;~ R<(6Sc->en8 %w* L%@>u 1jcO4T_;"<Ђ顜 EeA14ܣx 烆֙ 窥ɽ,a ~pʓ-My \ޞZ1eF,i*i)- ו])S޸3!8ʁ%@eV_}AՔԜS`deo q>1gAv9$T%YS[V댔lZHpgJ%"пQUG-Z ?#ʱ}Ivw5l\S`S1B"!?3\ 7"@P56ѼbrܔI٤;`ad^V/{K]\ަ=?힪]E;( {wu}Q੦j Q7" l"BG[H ڑ4>ٓ~Ev_3ޖȭM4g9͡k~T&M~䠜G;46V; CW[GT\oS=\48/)+w_-.GUUAmWQ ?۠rN[(8P$ {w6wz>ԒC{i'eoh~*k{#d R&2&N&V0HK:i7<¡G8CE17XL|&2liO^Y;?J9_,hdʭ0<}8`B @%'Y&7,13c v*y ǁqf52 uHQ0ſoSl-].idxPFd 6NW r|)}G=G7//򹨇\QWZGaҘ/@EI0.O*R}bI әZ{(סVC y^I|=e7v6Ie[@(+׸_j k p4Fu#i{bpv#MS>Z%lOĻpK/c0}s [vbK S2mDMMDP$z7yPuO4`~%lq;k_5 W5m]'  [X: +):͸UNiG:upM84>QA:g{M\L|m^RAN3Wy{KxyӪwZQٙv ]L6B"z'esgC1M6'CK}r2Ty;(WN Pniynb b |,tkdИ>smQ|%|Ԟԫ,'qUf"?kfҲ {B&uYu,-@C\SX:evP!~B P| 奫AFEQ2 Z(Ǘ4_=3s|63#q -n$PCR:H=vJB  %:'$&F='hZ\LKg[nlPxڬvLdm{5ܛ֚9K"l@{͠p%^1ݪ4ᄡFﹶT\'=S \Z&qЇ\j !}w4o.櫏q`@$Qow X-TQ kTFO lkS܏U@-JFhZ_ȿ=#C (lбRȅO5_W*qwmP=t,5M8TRB:׊oXaGj!7P7 jq]SqUr5Tay.$Up SVO7'Z j"YR*#` oh䣳N@"b#2,ozZH%_ %'jVd*vkװs31`w5Fk/3ދ !dpK)Ez$覯8`WKAӚ3AL5XKB{%dKZ+ڑMpO/D/lزY&Kut W7Sq1`Q)3^|fZ~ZyZ'\}#+SXGS HtG?G8-G$0%+3>Tj@UhR^Z@-I 4$ẕ F":*0KihzA8 ?GLGIX ++FvnITR󛸧e"=˹/-sPvΣ#>_KzJ[.GH"GJkEq\Gl=hAk"ŋJ&n6w{RjҐpo.}BV]v$]`|_4E6W1MFp^B9LZTȬjB"d.OM,2SɘaꀂQbDo;٣Vn^D!{}/Wb@J|NZ OE: @waxJ ܂`#ހPTgm#_ qic~}Lʮ{Ee6t=2cD7,eGXiA=vIu.EdnuH79kF5VzϳPDWZʼdCZ?Jk̫{ۡo~z H/xhɧN"軗 sJ$FPc #w:RmZ/R A{͒1}\v¥`ɥtGAi6gU2XxKeDJ֓ K:7h*ԬS3{lz> stream xڍPq;i%;!X@-wB9's-kU5,̀`W&6fV~:;ZjGD tv9e 4u}I)9nv67??++?ISw@  QK88z9]_#-/w=dn (Z_34A@W A'hljl%r]@ oeS{̘ @dz-΀ 9E#z`cfor657ww4{VK"0[64sqx7u7ٙU)@ZL `Jz. GWfo,üvY l!`o O 4mߓ;x} on,Z`PNW :,kz9R2qtpX,|\L݁Wg7Ͽ sW FU  0`}=6~2|]/ ˢ)"7<>L&v.6//Q?O@9o  y  w\毿?_.wIK6ycnWzk 7s5}1ry-TA:~5&6V{7suV)`l^\\zf Dy,E!V`8,7Ez_`Q8,Ez_`1^cA|"Wk#-,l"f{ ^˶cZ%_nrx5|-_)d{O\T=:  4GZ^p0i o#`"4Kgٹ >m}nXڎݍ /OI{HK_>M5"0ir쓧.trES-ƾlZ_SۯV@~aӊ}T1G]d7O@D@u>ws;U0B&Ā#G=a{F#!>) 4aB7 <A YLYg5݈:NkigoUnGѺ&ؚ܅LyçI {B#4`ÆId`Xa}P ocnv=h ]%Kb1reZ4=gx޳9?4bRކ ǞRdT1sY/rk93۴Yep II.:Z`Z֓q'r= n >Tz]2|śF|ϙ]9#|\? (gm@D-/jHhms)Q-6֒\)d.4.kxG)uCtTd S3i*>l.#PCHyXz3=?)=>GGvZU"?E-6}o銥e?v`ms'+%*ƒvc ɬ0B&ՊuGuzޡ^uqM3ULδ;mUE̓~j|͊L@6PZ@_Dk3]yr4*3NO cTJ[N2 tm3mۜ75HSPdH>n.$ *}1(>D Jឱ5@d_hZL]:{ۮG՗Hybu)M)A ޵|Kf1iDSrW|2zpqPKxxF|~Dh&{ѯfS jLQNdt$=BI2kZǚ4I]& LLIR`֢قDzN %mϸ-. #k[ =2 ;## 6&'>Ѯ 7Drvhhs U\|A[nz*Yv Ynp {Z$k!5Ѧd{Qh!(_ ijaI|쩡5{lDn_tLExI=d8Hz-:':hm]ݸ}ΔX&ӼU!(pX`#U)>'0@eO(;)3 KmIޝ7`L#VZu} $4A+Gd >&~-fSo¢ml=xdE 0H ӅZ,g89UHu`G\Bl$AGzᩔ(g{]k@e!]eff}38| a2,=BޚnuU]:ioIyCĆ F-`k ')H0)÷:1򜜠 jzYɗ xпʋ\p /9W]FGH0 6MocҲ&6:H|uxv!lwF.6Dܪ jPE+KF9R[WWo31 JvN}rEePp*~|G ә:yjn2;'Y3;ZOqQ X|4h,yзzLE(5h^@u7`r7czFT<:7'6vHk|ɡDq # !^&.*fs-'qJ{ Q"qT2vZOe 0)Ԩ* qe2n[&"6S< v4J>9|$lYL-KeUgJEIFq$eO* ࿑I{o=D+S.,Aҵdhn(A9:LG?s(ɡ  ,{ygY?t\3 NMR==Ys$41b7OÑZA 񋉆6=FM_I{^d)xѦy,roSX,|Js"ąhxȂ$YOnvM-KC+s8Dn1 7`2`ͧ|U.+:HZ#ZL&J7X΍DƗхreA!5wIVB>Yst[tzg˼}s4'Zvv-7JBp'V3rչ&ݙ<З"قQ@"ayǤP ]YNkd0Bba$L z'qD~-%ҥϰIidBBdk.#GCbԴ~H=-duFl=3L\B~h&q}}~~ Y<^E jtJHiO`UcQA9bBQ&ˬr$15nl/ֹ0L 3#0|xg׼h%7ؼzd=75L&OiQIIeLoԵ-0m=D]q't&̷SL.F"o[l{t*P=o3`My9cCō^y<:/EdFv}t b|uqsF6(( zotһiÏyf:EqMOY-zݳHRq(- W{s?0`Jv!q'tZx}$Kh- >EoTaa|nՃV$ݗN-;=JoU44hʄ\DN8#OkM{X:CJnc.&gn8oBi;}n$.x./霍Ͷ.2`܄cH^::6O/l >N1ݮ}B^8 5UȬ F@F,lKTԢXc9%t'#t rd=NX2iW8!:%5&;[MJ}D`Lw:@r#.vTRAo /.9i \# fғ efV;8sb:?A ƿy")wz*"f\%CӒ b, 6O*r3$~࣡cP}bM AVڞN!Y2?m mm|` xOW6r[o0C!`@DR9Ѹgm/_?#g̓<[}w;SҎpgmA,V {-NuN՗݈L7o5{kXLOlt8)ѵECJ(-)<1P<[ww4'\MT4q턟;jDBi\D4;H҄@Oy {]涑KĽ3N鲡TN+/&qS #rbو)-gQn=szo.J/v|9v%).CEaEft~L1 i|t 꼕QiixR`լEryQXTP!A^  ]Ձ,jy57'cnB>kw0~ʃs8+5g6Wq\XU3{ED!:okE)/j#u[2J8y5nt`ěÌT`*AT)=\D9f:Sjtx~iq"S8=Q8qQe"kU@$߿>XzsƵ)D.ojP cC[iҪD ծa.Rgm z&YfNE}}K~h{]q{Mp|ņϭX 0} 5 +UeMd;1]UYcUPDZ4ҒJFe%?^ t%caQsryrƯq\eqz/no ďy`'L7F+$]AKyK*1/P UC` " seǬs"ɗ0┨?76ʉz:a׃G.7E )?uLJ4U(mi3v׉nSFWf^)-إn= z|(7Ɛ|r+=Iay i] c{ǭ%.K1ZQ\3e[owo2vK7Q%\`L)O+$Jf .I4C$GgԛV[q9L޵4Z̻:j;lМτPxy*isF")U2Vu"]PB`i), sb2sk̩̏$SQ6'XH m_w5m9QPoRjqg´7g؄b s:2[2 7aw鵀vDo?&!SjicikIG>TTˀ:O75~elЬ稿_0)9hy9&d9KŃ|[Udn"\P5JHu?{=VzlJ>s(W˳9% "Bmit/!>K'$f!el63ۺ3A Ti(mӝS lJܻqP*nEn*I5@P?تf] Ej( amllG `[l=JKzYzZ,Kc>Gj׸F|){F&"ݻ tUvys3ml̴Zh*GGIPIjqD3$P1˧ݏ\arU,dNIQz]u%7ڏ:?c>Ma^g(=kLo Pm\'P ö9?@bRE¶wl%2ty?ͽ,k#:ffЩ8H> Z'ZDQޡ܉w'9^iИWvſM޾ki(8Q$z(J1_8e"H0."HEqpjav )ep1r:F?`{G(E$y@[ Z6=:''?\݀+XT}|onJ"ĴύEgoC.AS{nD;AgL$7KY_zFiAý3gr>fZEՏݾ{7XgpX @35v1eL6:Dh} ,j/dBᩂN%c6ͬ^+5콁åH2w}9hJ; u/~iE4Zƚ^ \Kp[$VjI<w$/"i[FY}4hqޡZv'+DRrLv̘b: HP݈3OJFt |Y~E / T>'dl=f3x9 )0o0B72!ӎ/zDQHbji@l$g@:.*q?&m\  oUbE)GS  kӆOֺZ` |SJ}<2~3}+'EK)dY2Xp {ĘjPܖ9gkRaqhݳ?.XaAdJ ޜ7F{JSc'x {&6{X&"B΁&&tJo*r?OS eugOLޤS>_Idj+#k3 ~p%!ELu| Sw &䴊*<5AhpIaFjy\XHֹ|۫&E`Qa7Q[J~Vjo2l]mOݾ{"IC5)ڻh1M6ZQAT-)KцbcOC Gf-k?%*~  /KhЁEUKzRWY_:Pg&א0 % f}푬chh%~u8%Ni _r=µl4q;t)[hVR~Jz$ⱇ_j޽79'e|'H&RULPEUN<`6' #e<>Kȕr* 12՝3l,@Tć|O X;$V}mjN8%ݼ1)uDcʒo,OhmoXsS 6M$4',Ϥ%oCPOY<9gH.aj_.SR^d/2%6u(:p<IޘmxV._l_ϸt8q8'ob@q %sQc[xBlR4#ޱ9g@Rx. *c1U>l(kĹ~gX;qpaz(/R;^EkZؚ㧣Ҫh{4Y2)l{#nrP ߞ~s 93u%Ɓ3W# Z-rUt, g_bǢu#ּϪK/ DhL.jiV^Q8u4j#!i\w<%Eu+"xm+C HXyo%#Q^q}- 2R@עb*} 0+)f$FlX0LY+%W)R [2 R4(Α#I^7S"^uhubA{ƓePB&wpɞ>NGD"^53ծs}6,=E(&;$:a5nLj~L@9|*g GܵcG TS0/5Mt8f46 D3% 3l_Y[zmW%`iS,KPz0mӛ|_sqCn]}Ǩgt`Kws& \# ϩv5⛡^VFh>ﮈPY/D5[)|OlL&V폶d?`twe6Wh_NBx'Kjϔ=:%"}iL2^rbMcoRL[n~/#`禆Xl;*/b0L2+9q4DgO R0JQR6k񱲣^q$HHK]`*z57ړJ-6l5onʕgtsڢu_CV?tł5d K=F騡O+bvDT`"Nʓ/qu|kM1꾺NgjTrQ8psQrF- 1p]CÎ]:wBUQ|櫒شiEžaI_[H}.Ⱦ HƯ ;/!Y Evi?a7k3.AM&"ZȩZfaǽE)ƕ$h( e<',ͻ 20vfxg7!*ъ2cowv|') LEz󕥒XJťd[ GpPwWhe"]wY]'O=ߧJG>AOms\a8T,jC"*yh 5ė.SfdŤ fz[eZLrE~/#n̚4C26_uҪG4 dUlk5ޯ9(  6ϭO,YwΏ2¤i>4Z yF<~`]Bf ()v˦*;:s*enS4ZFLMq?6 7DV: V!so0V0/W'{̓ضfHO1m)+VUaG6 OIoƙ>ӊ>)JGTPAebNkߍ <-ҀI*^d"$^zu,'}5㠩PU~Wm?M<qDVFk;Ig|:0l+xLv%s>in|=< $Z-sgOPhvYt`i&;!Ck0(-oK<1̓kBNmmr܏C,LpSn0°(,7dl?$43^U"pZqU=<>{Vl=ĤU=YoX[u12c yhSx(ȾxQ'yYN5C"ykFN/A>jmƇ;/_2ƹOl$F?Smoendstream endobj 190 0 obj << /Filter /FlateDecode /Length1 1461 /Length2 6862 /Length3 0 /Length 7847 >> stream xڍvT>%1elA:s% -!()tHH(!!J sx빯9㼭g(>API@ BNN#;i򆣐RWA}02B5|݁a DL ".`ɿQ^R@e-@!aN%G_K "));yH6u0voA,?4yü`_t:P71A'lrzCzc|0/ foP#X~WB.gBpd E‘@'; %"BݽQ|>8b - w UJ(:2 怹@ﶺ!QHk'8G_1 SW3a>@Q0,. <ЯFN/s脡 ;0?7򅅠o >@{3 :9ac:Z1ƒ>1rD! \>oQ@8P@H @Eȿ/Q=(ϳtB%h ?DžtPÀ , v|A*<ܿǨ3(\ ;kᾈ@1tvުLyw8zf0|Ysp<%ޘNv0-U(_3'$*zyAc,Q NGXo]AH&tBy~SLRD '8FB7 " a @?0GuT_//_ 9fQw\k^(0 lLpnfg}d|u1CiMD~ ROӚv|ij~ 03~~"f#+`n-؝dzg}ju77_i_V|xhhut= !/aU5F* dp1bY(|*hHȻ;hL ŢI+ߒ8O]XjӫDҁTWr7Wv7#b2o^WU{nn]O(,TlŕӮŅkf9Jg=JccU;fȬ "e'U%Ӯw!n1sn˻Բ$EDi6 Ǭ#l A[ttxb\'p\u?yO۴ P-4iilOnZT+u( n C /{AɆTę#r aΨԫ)Ʒյp YG>9GPjA9_'z$&e7gRu֣A3,W#ů^|nS{ @ T `c3kRPfZ`ǔlROE{6Hifgҹqߋ Ezh+"ĭf%)y<3{(=d&(/# Pr|~x3Wz:;|q/;%i@]スd.FQ/!B Qs9y+zyU'xwx 7xdž|i@2?_^U6te 2I^MX\`C1ֵlu|a] 9 b\hk i`Qqt<#<MN|2}6=Nq8@>%ڂu@ѠdG)",m'pڱ:=,]ha;4h;zZ"vLk-hƙz%9B~9b`2ǃZ<0Oي|^)[9Y˷뫤h_-q[!hOaSErg WX.Hiv/9\nE?kMcFl2<Y6Vfy. g' Rfaq?"ӗFEgu_bg9+ś4m,+<1x6rVmȭo ;[Osk=ĢsTNcw :" nK4X9-`s μ+x:/6N"%9]j𴫻`R0s:e6D>0qN?LTOU.@mC]N{{tLNu-P{`R gNe-s[g)Cob[^תVJiD.sRAhgg;P1DjyWVV;f~tQ-^6̦ĻVR|jJRǵ|l: ưlCXXbO¤iQN1Q|càYA`OKշ!^S-ENs SgA'ԴC'eܱ֏(<xh0:,?_rMV$58ZG=l%*%ifcn}c,u-I0rb"_ A [nN+;itHzX`VEx;Y 㼿 ŷ`Kuk ǪTǦ|uA­hDb/e97((I4nNwp=UmY2 TCNDMmp(BMe''t3<7JK1/' i ei%ΰ& ]4n&dQ3ׂ& | yY<f,%煒A"_jWqйXѪ:/V\ r$O2 1}4C UF:2+loQ/4t~z $xs/ͱB? *T:^xM7Mn,2tS˓.ʅxQxbuooE<-qw H81z2JS|$=IoN)Azq!1Uq&Cm5E3oP/lz{66P81Jr\Rn M- 0gW/rxYB.\~\35B7jOD~]18f૶]Ǭ) ' ɼutOdJVc~z!~R %;DW 5Ѵዐ[QW'PstG͍27o\5lJbJD+˩JcL [HOQј;LmO̧:MS^G9rϋ7H2|) / hJRCrd#Os2搜R.u"U_^H{,f z(E!lp{dh6?S9<mNrptۈ.!~@R}>|+|=72eR=㎷ mv(ej⎅}u jbr km;%|qcYd Jȏ}uvG9j[%|32 \)/fGD7"Fv݇||h{@Êf6'P{}n2D_*bN[В AqOh̸ wbZ[7ܡzvIֱ!Sky%<"J,c?7rWYީ-}w_`(^&KINWbi.^ #^?TdvlNK{kPb~}(%^Α'%'@_]ϛ{-t5/b>ruUoᝦryR JZ{9,BMuʙ >Tr `F=FLbeOr~l.+Vp'I+`tMș7azK-6/ ZwQV8(j:Tkc=dm^-8TU#GR)0;9[{Bݽys:.CP-£CA8lЛd!P\UQ2)"U&9,i2a!\Zd͞7ETtqJxN3Y #[C$}Y W(C@1mkwdK)Qdi2boX/8fn75RgkKa1jI9qH݉|kQ4~l {u@ F1m}7OQ!ho5\d-k==$S~7Ć[ ]- =6gt|y2;P9Z4னT(Li\nNK26591zrkwE8,Aڒ/|MN_GYIKD]''|dudSb;反wTrXVT|ZwLԕJH>m eJsQ-k)̵&Pfzy[ :,|5 @6mO`z E ボKP)ɵ>!hH[3fڶKD7G+VXǾʸ6_uhluZٝїXD#Qkq{lx0{˥n=~Ol)Z𒝘iHv}H'vUoϴni$\݉464$]_Oex$l*K#[sVڋ8,]-BƓd@wZzm _p̎3 ]Ǔ1~Cͦ#q{/)(3Cը9[w|&SuN81X_}EjR</|a4{M}K)pt׬n 3toz৷lJE |sedvYOR5{/ >5}p|"Җ6.le-0mf)i4I|׮7݊ߵBVle\" 饓Mn x;V^2KmT.eQ"bF:7*%Ҽ3R^8v*+;gڥePE eQxgtT)ǰyP)4-rR[[֏l7咲j%8C'Ck+R{㬆 Uier+[NM~%jsy<B4'n&/> stream xڍxT>){ % 9ƀ؀AKEJ@BRJ@D}g<{~9{vO>v΢gȯ`"(~$@I(&`g7`pvKBc Q"$P\RH ,$$#C p] utBs| (hPNWtE00DRpI;Pn WQ E9 H2@ CM`E6"P  `C<C -Y  n /p ]U-tt< *@h!P7R (3 UJWW$?e>w_?u#p{4=PwO4DAD$D;vY FswC4 P P@4{E` C~,~~B+ł yPۨ K%Ą@ P .. wO/P=#M}z ?c wZ?߀!,{G0/;or|xBφ6=!v5hm=(zFh CPv!z$罃/z.n/=Y#%@+ѳj%qBu$h a OoXH'0!0?`?vaC0 ؿh==<ГKoh]+L w~uYng}'&|(ZűI 7[m]־vG=qJ<#fS>g~z;$s2tc}G,l1sK[FS0A/nYg9)ϒ7 An>:B}d I4Kj=En£"j\@p'%auI=XfM0!-0"_07P##pXT\-LhLڽ`+G7ܴN8Ƴyd[yu7ڲxA|6HZw 9ko;eSpJ(x|Uz𧻓țfb/| X3(jD]/;l#/4OYhrMxFO񙥣 D__f2VI=)=jO<ʑ 2H Xˬgw\Z3#Vs3z9#xhso7^S-af-E%*lJ5,M'V 3A4fxu$7ޖJm#>UVcZ%-f𦗁Rb vɜ _x.i-vK=k,lR{Qu?.HDѐ1c=FɊ $} 󺮂C)mZYa)8y% 5:i˝5m"YY"HSuEDb5sFr7W Ͻe'W#*J6+8=u&Wvzs&]蟕6:RR؁SwmfvV |/N/Ff]]Uo`|zGk4]0_ecY,\\N.~DtZ/rĽ;="KKnEs &nnZsg bnT\nܠ6d-JviaC z%(CR_2«Jhbę ϟK}Ę % tl5ͽ$֩ĎR{h_)~Wm=9 ȶ: 7Gyxb*d:%Ѝ)1}(h;dwKdh*i|wxkY…ȗZLj/`FMf1xclPuQb`cK!";NI]XkbA]:wT5O(Rn08y0UV`9>j1ZԴqUM,#n~U3@&y\*oN=vzZy5LK^;`gD90eODB.ZሳnNiuP$._<$GEN}q1">JR;*#t4Ocs+~!%5{ Cry$cL7i<<{ҕ$b<`-M쬰o2o=?gE&c %`1Nrg,4*8(=jTUu^ *c T2mviMU־hVL_/)3dr)Lʫd7:U k^%JkXd$ T-g`m*LGntb 2zCzIB_|hoLas0$RO۫lrHB:Yu6"%z>QsP^uk8k3wqc?kh_W6;ԣ"i-QWs4gA>jl?K ' _ӼQJ7d'9ܸ3])#3cpK~iQ1[~@C5#oH֌kxL~FMbuDI{\hnJ^xRqJʻJ?atJa\4i/IZ 0O_7Ӈ>J(籎gIcn^sHOg\0Tɛ & n.xz2 pc,ZYif, Psg[S3~rKʇ2:7Li̹dY|x3:R+r،x>Q'NPl*&fHڷꯒL5V2;dn#\dclj{fuw VpUG֩m.2~Uym~Y1vTn7O2ö>@ ߧU3ޟOJz7'd*ri?蘓Y Ja>DOBؕ;o|ᬽ0mcV-%YK>srݧaGz'OeG]MElWld(߆.ˋɬD*I1yvK62ozu)嫒ӓF#LC5΋M%7ns6 گrJ ;É݇8Z.߉`h=@6zy'Q#:/?(0~ѠRSs22kּ"N!'Tŕvg`jrteQvj4dS su&;`Jfw؈L6 S6WK'&rn'3zk2#ÊQ8KjzNu,ڰ5lfwSCnE+_fhCdYL#P:ExyDt⵱{b꟫=&"Bꋤ)%̛fR7o'ǔQ$mhHG[XV۵a23f %6= FEl)a<&F 1(x48[.JӮOoX],2j`pPj~RwOg3Kzr6J]1LK?Q~X`*@Mp!:ֱcaB%Kk1UGy QBFjLⱍþ;SpD<7qD_%Deq'4=L[U^G\Pn˙U >*XMZ c4]Lv%+97衙DH;y3tg XCH\*6Qvk.EHByDŃ̚юQC+vH)rSsVa[}/N<#sSbHO9 ޓsǎK+G4*Z83kד;kHRq u'$J%oteC\L\J +18Þ}d*%6.{rO a"\ !%ʺ@>4KUo8˲?duD0p,s!Ğދ9f$y7,,A'rکAg=R͓֜>'qCKzϤt+RD(4y;Z5I~@۾"|64_J_pv#$8Onodto3ف6UlQ/ν*=aˉa^lceTnC4IkĨE/yKvAmU1!.M%d+Zdӗ-g"ΕeM>&&ӊunj7EȽwZr=W=g2 Y9,QϓV$ڎZ9qTF@l6Õomɐc2ou=i*%c.uEýlcTbY4DbY|qt.!2%*} 㢆o9żO̞)*k2E9p9{[9d[=܏~e&UclEDwΨmj\hiy ?ߩy6lze^4@k(B?Q榯lQURݎWxRPI*ډWX8|:nWDo_g?53XW4]E󵩴Y H}^|ǻ?w8[g^B%,O!SwRef^G6Q<|?SLX ;S!A7˵畬͞*dKzdكNz<ʆϙowџn;p0ւ7 PhYPĆ\o]PmALgeiܔ!#&o%g鍗gdG /RXI{M;~Qƺjl`ج b+RIGynZbLq?`KUsC#!.|L=3s_W [nDiʟn .d,'d <8i?{K$H/HG{+K[l =x{Ľ}!ҏVSmDOc8VD6(Zc<%da8IhzVy9r:KY~jՍ5Z'@ZJ|w`+m[&i쥾Ya"5"pwvyihTcGk';=QFM}xM2FU7f\Mk'L͵\gzj`^ ]ЄdDn*Xw+ìNMʍ&tt|]y_aFT C;^m==RLJ2^@U{nss;=k xj#!'"UA"9B9*-3J(`5WpH0[kmD0;LNׂ֋ȇt>*?AX4RQwc?j֐AUp٦"+##Td\ȚysG %E:&qy|C|eD( d@ܱl64$sh'uJyaV1_!YVhg܏g+2F{NѹoVk btHA7%ߛ2cn8e8?l{Lz&^`˗ayS/zSgE$MU/fנj<(}yq:yқ`ޫ*/FPL{u7<,5JTӟZ?g!o^H`Ǩ=Y-UҖ`-Drz1諟t0﬒XK D+BL J#򫖏ī{Z9p0y y[:n x8:pWUa@0Zw-{ɟ?1#J"$> stream xڌP ww.k.%[N 7sOrzY{=P)1;YX ,v&6JJuk7;@WkG?4]&n HQ n`errXXx06(0dN.֖Vn ~ИXyy6]L &nV@{@?.hܜ===L]],hnVU+h+e=Ԙ(V֮9Psp4q@;k3+dJN@(GOqL/G9;8x[;X,%)y&7/7_&v {k;SߡDU& ͕r*=$]f{3\[GO" ks0wwbpvvH!Y,,,beeZ?`G&̠I=r-vAP%H ՉP݀4Wo[=`e3_G 8Aꮠ`@1`;Ћfc6@5qt8jgzAc@N V? )>cy']@]q9=fk+fa6a3Zk.=O(u!.wh4"뤿|:a#;SU^UVpFfKD>1r ,pvAQ.|j\u*bP娎Kj1^#N?|29#1/ԥۻE7RdzxR_eu6~| |]ʅ\#Vhw VV{㬞τ<FئįHg,#~J!sE#/j wؒ,T4̒VnL}:.S0xZqu)LWG t3y}<=Zfd8M1Hm̒b@d0r痬W5=jIdK|Z!~%}ә`ۉY ԒH -[:#%'%Sq%K&g e9N`>Y9ZE)R∽O\I [fU6DO' -*&֔ VM Կ Ȝ]]kl ֢K^<ˡh9\'% WM7]a25_>e(ÈgB"}2ΑΧ ) d&C̚$' _~?.ӏߘzfUE s 76pc7G}Iڊ~&ؼ&؜G5Ξ$% Q--𬤌ğ~:B!߿1!泎jb.Ib2e1jn'x3YK?Α=uz>d~ds[^ל+lunJF A`>RjCPG ω F#)MӘ5 6E1'up&9жY$<_ˊ?T(e*c2g0X\8:VKcB沂v>=zn&>YNiۘv~ ѡ%e(`˶׳ buɊ0ud/c3ȗ0ulRX-6Us9eS᳀ oer$gڑ0Gjrpmvȟ^6Hlq13;!T@ƅnY> uzRm TfnX,?fn} ͉3Hz䎲"‰o4*~0eCx꠯'R8LVC:v!&USk4ˍkkox`d-L=2]'j%!MC G =RNJ*`w aeGZ{S 16V3l+HQhuX; 4k*ϕ(Ή|h>1[Oÿ'eIuX=pWngIm:i@).ý544IhÊBD̀93$}@,֋FG 9ss tI|4?\ 0 Åru>|pUQ$2MFrt ϭI<FLV}UKA5lşK*WK2g8~[9(5քӴb,- s(:狠Ά:0EQ #c;ܨAJnz~?8]X v8>nke9KNn܈:fF% YZ͇-=u.EXX֪L O|NB.TTx oн&-%&{hycɋ?PXo dUʒ]ducG|i搒݀Sj~_jļ,M%_<óqKmmZ|ay-,-_N PL芗(> ' `_^FY5Aaj&['Ld0=4c:P0ӟRq4Sx+!G"PrJ;-b5tiY<[ldEVKQ;Yn1B/HZ ʢF,-ȡT)ÒglA"hyL,B>vDpCkS úME%jshu^8?d)TwW9qۼ'nlWfaJK`ݢE4Ɖ }sBf+HgG5$S!|L8cjݾXҳy[FvaآHg` XɄvw;>ḽ#옿O QdVOH6OpaJa\>%I"᭽F6]bP!ȜHO\0B FfUf}wCqnL[2X{;?:/A`NJ擺׏KӼpL4|{չDLqs%N}U7B85B>^ 뾆)f.9{\"Z:n ǶjާoHWs 6ynorwAoH=| |Exzr3w-W1k.\l/WaPΚh6We q#(t%Q~M} SۆЎ97r6]T.ՔelQ.v!iK i@TK8CH,i˷_R5M׽J6}=׏as ˚U~V^h^M41'+ϊ#<&I9Ǵ|Je買¬mn1ߥQ. 2#SNnV0XA$$sN7)[MM#˃_+hvsi"u}FJ29̾IP>ތ.x^=SOܲ+Wa_>VSw.*"6 =M,֒!ǪVQ,2T3SIf 4e({jsd3XEowW toK>tlt lykωDdGKtNnۻzW:ŗdR7mE_F7b,j/i&P=%O$)ikc1B6#AkOK1{yqns⣉0gkZ<>W\JX:r)L/{62Й#V˛1$K uJ pJ#yЌLf  I3}I<\4E'Y|8 ݶd*W>&|m)~\ _GVN/sCh楪):ajIΙqیRTHT❺/>:4 abR04KZWi [i&0B&._RE{2Ҏ=8 ur%,T!\j'f/e嗬6lޯV-u! v$qsq}j1m#c>`:L 1b<NLG- fGP$s&*$*z;g2kv[k! vY e: /tvqWM1m#+ <{܍>Cl㱗 B2l\4[!\Q+Bu c:T]e"L$e/6bϹuUrQK]wvi)Hy-*ESm)m88P| c$;.1JОF%lMޑ=yxuKG zMYHc#L]fYY!*t[Ny"`AS͓X|E\ {n'`Mӂ]U#z?)[wJE[nׇ$٥ Np+8p[i)cooe´f)[??dq!M$؁3m A8ޒ,Gy ȵ O Tw_+9JB\! hG FwڂPzw;<-YxʛIXO˾gjdZ\d▗<1ր'-]v~,N?zT]?D5ey\|ZH4Vgv WkRיx&A۝Ɓ- U8)v˲@M3&Bpp{YoyPS>mK]Qg9M5].,UL"dg˄V3.1tpZ )-YU,SeȶZc3a#K[N]aM҃BK/-gQ h5'  kP@pqP u]搴i9Ηo;+ kbg~SlM`]YWxAYE_ cR]oSΟ(Y|[O-*Rmy橚Jd '<BJIf%2jUva`I?)+X & l]|/iduE<\}xgNbe$0KLft?K$#gp0e1TE-i MU? sJ1;1ĔCNW)) N Ku @Y "Ptlr#"+vu³aѨ3ojX8l uܔ:j?r~Xؼ]>b7x,!cg.t1JO[ԛE$!aB42H8]4C3WƢ;ZsaZ*lf ʵXZWn rbY|x'F ^JY}1DT!=f[&Ĝ$ K\_!{efcuQb2di{YɣcҮ>'Ĥek;4~T55 <{W"tkfX?R_"]jQo$HȀٟat,n-NsIJ|r(< &l#Y@P5}B No MN~M=^W+xB尞M޷`|BqQ_)/[uҚVEٲ!A[%dnAjkGRWstugDpqKeqL.z;OS5,J;;. ~Ǹ @YcKbfxvH}3K>]h%@Si}.bi̼̬@h$j4UjY)D!b7Ք @0Ѕq㹺}~ʑ7b M!Q} w"q 19n<,$K3=w&&.Z}&U,Fdgz}0iiJ.Cl6T3 [FqYRmJN&jEnY:bD08 *uHXId ̑sf$M jN-\&9m~pKXjh)Ssۗ"NY\g]hGX8^DZ(܆^֌pi9 5eoHx!!ᕇaY 88xhOI!r0_"Ѐ lO[A,&,g9.>xt45j׈gIY"W^6= ;x,kjĨ0:i.=GsE =sٓtף3y~>NQ>~y YnDKߛ lcBZ>06Vۇ_Ƭr[LGfvؼP❷{-a_bO,>ޝ' ^j^P;c չYpNƋjgӏ?65y`ƺ?CzfUz)"xb@h@m\']ß{4/L?ʄ㵅ˤYRm&9W01SU7rQ;N5#*ë79Q'BKwY>svM.q6o߲|v!PGS޵d]p#̆'-}m9M"3Q'ءg} {kHif) c퟇h\[f[OWX}qGԀK;;>˛S-ȿ<_,O9)2UOMXT:ʘ2\]ax']!Xޥ=f V*wӱs?/E3H7B+U}\ԸczFe5+*S0;S0^J2-s!f?C/(;"7\8l+ bd|lrA |DwUKpYtt~.1>toHrfsefi)*= х_*+1qasmۏA@ـ;'`ŠF; ;8bnG6^c_jL5K\ L B4 8´堠j\KrP.jcj܇o)7(ggpgV5u'0[ny$J 32dnR-7b>=ʼnㄖ}8`Ͱ@yxr9Y6,g|eB#{vM:mVetƅnQe͖ʠx5oMaW/:=rQ==`s1cjtGHTՍyš.flwMY蚑&En1 n;TPhRVtR- Qx#33/OOׅխm@1݇&Mk_4i Uj\7 dՍd:ιP1GT˜SNTxwUިHGK+>i7uK ;AJ/(Uj$LH>}J&-|UDBNwX,t֯n%60=GAk@Ν0JI1-4MHA 0'0ȱC,bn9AtG~{~Ğ zi^?'_U36{B)y*$Әj<\˕$ Ce KPM:(4Sks=trߗ)Oˡo,4ߢ#Plg~AO|)(v%ȕp֌a bti%QQK,lM߯Pb96]"@L 2PH"!7h%/ lDQ_JԿf|KHw|xˆv-!m3^IyuU9"]غ"悡Ty48& f-id]W[Hu".ڡg |{&crvĂ,$%;&pNc`.yW}Dgle%wj51Me>ʩ_1칦=}/7oh-Qgb*06WO׌ï79P`GXqLM=._ Eyv[ 2bd |S:}BI\^D&eԚ=zZle/m?PZ ]z=j;|uUxw1v _(rC"U3lNK[x2a6D_"0>XK9nS B& [!uҝP#ٳ82"}F͢xSC{d˲2Fϲہݰj"ئ0x]uArui2[_Oyҁâ^dQ=dѱ/ŻŢHw?㾙U4eXmPjF]/jh]фF4|4kDDO^hM.1t5[]bbĖSl7p$Z ψ){{r)%F%k,|5h*t*(]_}.^,)tA:o_gUUc2a5V5;&E&2sEzҹrWbLEMV!x}NU#?T?7DG4c^LRo3?&6w3GXȠy3TgkuNWxIįCtsvOdC֑EK*@M!򦏣&퐣|&lԥK v&K*u/>f[-'GzQ煙QX9v~68m_?#hi=jo:V\hLD[N_ d>T3Lp+ EnĐ1ޔ֕]u`{sy jH((5Y:%G%P6E)4UתWԎ̬X J30oRzYb|fqs4?gfUF%ϱl! o+}NB+b» U,m :D6;Cb0O(y c >٦}_S=hCjIARA]F;=)|xVTa(/ATO;$'Vr| #lN-Ʉc08ßr0 Z3ݤp7>x֘&d[ZPe42Cp# >d$H՛xiZSk Ka[3*֬IGfR /]3Il!԰,LrQX('K.,XaJ⑛\?waa)OZRn&.+ ]ksH*`/49% R%;i~gȽ*#zPXRaI-Y؏ۭ/|k9FT͞.NHD~-x/F I!%ݧ9+ٞ&y H}uNakr1Svw %v 2"v{AT5E->rMfZwq*^I%w 4C5үQ2uX|^Rt3%!*ll"Z6kudhpvt*ܗ}3u $voV ~PVJg6)fӍre$]ӻL+Z`ņp Bp|xq&iEºRُ^j/Yq#%iEom(NVyUDopHg 0սsnX9SmXLw'Qyi*ҍAI{ˆKnY)o9Dy[07ޘY\h]Ei)D-Kj<ݫ(0    {[g!4ߣwer/!4'4%nw2lh_K)rL^?"j3Ui11 zeaD̸P 1CCCeO"=2uOeG>d6d3ּ|"qC,oEl#\!b^y$hZ/IvA)LIr5uTÜrl~x<5RX 'E+LIIXn<@nHd/ sOO/XuAtgG#@hcl g|i"Bky`Ҵ4A@/?'uk`JFҗ~}9vya50_):ɅaVRr!zE_͢|Bn"TI^;gip)\$@3ݏ{ 0n\gۥ"t>{?vO}L*k7ſP!5'U[-V$o2_o0L~!-WF}SG/CY%2q+#FMGJ;L斺8{9}g rʺTN-O'cx"-\e0_B$;(Hf?PˑdZPh֮G7]75x3'.L};R؏]!WW0HU2kk$aQYa{L)/^[o8h^L IJj3]P&*I}u $!TVƑ) i[o:cZxŽ -d}U؄ #! ޑMyȇ}nlMkjh*Q|[_a1d-)]ù^{^Wx2'>uGo <#79Ln&kkZЖEy^R.+?BcSIj3Cj*_B:|m qf4=Oc泖u`OlPŐ3,U{Y{dIAbMW0F(@\cD{=O !g/EfQHQ wTìhS4[!`UTw7#c tϾ:$ bFbUUC,>"Øh2E7P3@Y@ qNY؆/՗̐I b>%:Bki[X^eD"q芸l,/qNhi6wƤwmNȂ;AgŒȢbɜl7nKv i A)3溋+|/g f`aSc7o"yNs>)U߈T1C|]{9pLB(.8Z vd؍S{Sn%wXMF4>N0SLK_ = k*RGͶɖ@t+<\wbNF E`Rȳ"VD/F Fzk\蜆{ ]=X|q4̨yoӍ`e9xb&< r{>bE*feeX2"aGtɕk"QPf ͦe]bEТ.& $1c@"ϛ+nf|l_g!,hM Vgiܲ)EAIeP殮Z:"Mw3]^i~C`3?!R[a$p_9W#o q-~nH5OK`𯵥_op٦>dzz.J+1qbשW]3z3uYd#.^er 흽בz@gyP$cJAG/&nNYCTDrČ%otsͶlPCA4w;&W9geYEGZKI7ira3H Ӻ{eվVqusM6DNE)89|bzkJ$rDlLX.L NT\A=]JIO_:CESƦf ʤ@v 1&8]i1̚_m뿷v] t1* :kfC&I)s0:۔Nk0lŊ2ub&^ aT1(%,j(8qIdpmNf9S|훸\sgf*_]x$y =*_vsː_||ay;TNB^?yK6nT-`nGCpUCKdmx*!V7fE*ߧL_3Ĉid/-8=r6WbQ,|=zFrK@KЅAynD= adzszJ_+[k Kc$tv{\>fUD ,fP i99j_ g۵ ;~#3.',taiI Ua1;cH,2F,[{,91$Fyvωp_C$<+D ۺq1⍪G,/؉ЈaHzN][iGvvuYa41ƿKa= }Үk7ȇ W v ;\}KA[r^|4JǩCsB8FTB^j|{UCǿǥ~̙/Y@q ݕ>%l d+#-ȏǃ`0CLLN"q1!fq&fj]O֮6b[ y&Tʝ]#Xj8m!E=?.!E<'џۋX`}xIn1[l· QtVA?ĺQvV8 m˼nN.Bd7sS9T/3 gϺJhWYm-kd7?@!DT\@MP믺8:'SiۃJꈷg?#P/ܑ,p`3AjαP2K;Sq*yJ o._ÏFD:w/P0ߛw"$gdEL踐'IYI=*/]χH,Dab6rQ*be2HRʂGק<ާ$W֫1b%.?ReR<Q5D7~o- G\~I W7Use(/ȁoYbcWP 1w==5;es;tJ-Q߄p9>nٕfX?){)H:.YB#l߶D',jH2#8,2ђ0Ͻ%0x5;d**Ez ^qDgɧT"5#Ə`}C2-;XUrtrʍ媋& +2 JX{s%~8'oǒCf-N`rT5$WG 52.tZ:'pEbt]$.rڪC~Y&nFAV^im0q3ګŇ- QsfFEx]L1B0lT~˭b uEptu@X|0FN`IFF l W׭DqZ2p/#mV۾`>M ) 혴o=VUpMvފ=%_DTw1zP1C|^]a;\J n n%dVqVk1)8u?tԯtn:j<3 d ZuNQj-%8F6*V/f"LA&ˁXpMXfFiuid"t{8&n{i}"dOQauÁMn}d!(_ ee;NTB&X( w$=$trJeL5p'xL;v[zkY9$ fIgF0\: lDډk\MFhXZP<4=S`eS6̷wrP SΡgOUORN:Tx]m S/[㮔j#Wl'Z-c4&2+".T~ = xߴx4d=(X9Xnky3b*k08Η;CŻ4,C,:XwQOEsd9.Fq p:)(j臗/Xls$i)01~G2hGʹgUԝoS/&&surSA7(5I5`Oю!c`D$RJsY1n1 `Y"Ӑ9~q>eL( d_YH/$&YJՔldbdQ1 k9ўG^;o'$ym!)3AH>9X8W  [ ;%Ox) ;u FV7oTng$=ҠCFוfL";-En\ ڍ?#X9p8NV34[ɸf`(HQRGBj0EC L bkaQE:.23/jqDRE> stream xXMo6W=T~AEzhm@N(p ^{Vkm{44|8U\|UyI. .p-'^ w] w1988-RfZ\nr.-f{ >j76A@ѷ8!D"Bq" 7,DH "kA) r`D'P`\zZ(-\S~Q)TP2q`r92 ғ.BN&i f!(B <$B?nP93ygJw!MERcP){7="<Ȣ(6.P FEzЕ]NeBdiDNL7#rTQ`3@E䑶$p YʜSOmrv1C[T~ⅻ}y}]䮾{w^a,ϿJ 5wۇ5gzo=ݷf ՆHa5$!87w^>mxXOt1C6ݷ^0#_?|8@ԧӴH[ȔAG6zƚ&lM4|[<-9v 5R95v1Y79˭̹silc=H-ΩJN;G7pYGV*t +?I` Xٌ\/`j]g%׮WE:~ c="W~>u!^D?L\> }'b-̋w -c{l'/-Xوf}A'Lj6 N, (ϦYpF~՚Y.rYÏ|?duɛu9{ lY@0'CkO{.i]X`9Yg3Dع'jқCW['j !h14gG/ t=lF{Îb؋Qw|ں7㻯ww{ ?5nꆽ`M?Ҧm yvOi;'Cݴ2 &;}S@x"O6|<\ٰ1aBܸۘsCgbLqb@}dx#lځDǭN7OVGہ!rY*G0ͫ>cWAš"Nf!,F%,L~ ߉;LllKvZ9Fl9fr9-:haP1m-Kff5L.'Sk+k9g*6'9#'K䔗KtV75F$tL@|-L~=> stream xYY6~[e`>G@ tز-wxHd{Q$Aa@&)rf8"hz#BT`.C 23ːVkp72|G2,WPbSl pEcWtUiȊ>Iu4XIqZSA[TT`*j8k2YiR|Ya[JG=zcväau=r$r#&ؿGŠ'oW s.[[@?~*NͺhMsDBL߷Jϳ2ˋЖjeoCCx}쬁e'B B0{X|FyR9op.庺_W~&G84c$]㠍^{[PXMQ=^ {(,!A9H hvT-kJ Mz!؛kN\rʍmq+C1im?n۔DE5JW%rH;$Xwڼ= g׃LJuM0 zJl4E鬃BK{d~a;/u](/v8mE9܇8j ŻwՏ~ zY7l鏯mFm 6.£(PPTNVaM:L 8@9D f3N.MbBbYmT ++u; E۞s`[߈$^D1^782VCZ"ִc@LhXFg&!&fg98f$K'{ȕgi1B= ͷ6l:{6jg@Ѕ.F֥T,M<waʹ{> UX8h[ sD ^bJV͎ p]!eg)I_c|OYm{Yup]j(,3ܞ>]j(PM4H{E+Mh3H{gl缨ךųW1l{Y4O IaR@nZm 訂y H] Phs32!s9Y  _幐>qs> stream x\moF_AN!vߗ,r\k;l8DYI*RsoHQ,2arAZ< =9µӋ^B!w1ѐzJ*Tػ0Ć/~.y>!T S<228>Sbv d&q3=ׁPRy`ϧ)L-&zD88 ]/U!J]'QX`;@W! :06$WiTuBx^e<9PhjUv/fٻWT9Wm=&9As]1^~لiݘ xsGSUjj‘V1K/ L6C_f 6!F(|V2A!.6CJ^8ĉ_%Ҁ0#d# ٦BmJ7 )6q< Uئ@@An(!QDG x\NPhc< ϢXTŪCRl9w1G!'ߑ!fj(DKQe9pҀ>% &占y#㿟IT"EDI 0tDRţ$p{+^k۔<3цW\. ?afC^O?FI2?j?~$t_ {_}u|ͣlڃۗ*8oInj#:@\1rL:U@ak?+=xx>o=|ϓ3`f& Ѳ|Mjz G `\" ңC4MĥL;]mlX|F( hvfmz .Q]i6 L.P$xLq"齧JtN!@ Gnglp33A߻I6DgdRUbIHAp|KT{rҔHU"I|אp?4T$g9[2ƈ $K܁ۋ r6u#JΞDI*p`&lOܑضN4O=&oጥ΅NTehmObFq:Г&K7ЂcmDJOYQڞ9 VUQH!Uhc.oL)x*! ZJ#k #ZuqHTiPcTx>,J )̷7N%k)+uq~.||ey9>Q1p?_r/a7sx/I>Y'# }҃7([0eQʑR. DIǷ}n_^" $vzW}E㷙;;!C s$ڻV{+]ћ,ˏSg_ 8{(-%0_mixam knhkRH_D*ݱ$}%$ sU`F jzj-P!W V`mACwosLNxy[sϹ˽v0cMtd:l0Lp5w1s='j{n·dsE*h ;=XS?jpcS/WU>XHp6;$ endstream endobj 282 0 obj << /Filter /FlateDecode /Length 984 >> stream xYY0~c*m <CMKE/~=c;)q M,V+ű3̅D4,WA Amʺ~W;KP@DEFaN8RRx9p1@hLAM:#۾ϝl F{OE6MY+FtLrx>zzUA5r,L&ң8t*rmctt;+R =f lcwy R!5,,kUuS(MmXcy5.UHraV{m 5&|{JE=(Xcz UhdR+0*MV9k,gP=w^Ld*yQkKs!EŴȷةK$~/'=Z:LF?1%n&uF)#\A6Bdl11 d,7>ьFVC0\4pՏ_K8&*}dS&c1*xa=@>8=DhO;0jXKUժ_ zU)o;_U9u爧.VdsCS yVr-*[>y< Y*܃FL;^/z zμ)xz͓fqqJ9A ̼KP Vu@!yʑ5.$TKTy05' "ɼ SȒm2 *HaArּ0%/`|}dÔK5McfX)M"I( &K8~0 #PXV@*jog>x1YY|^X=F jX%  HܡZ{u xh"}Xo( ['(w)gendstream endobj 283 0 obj << /Filter /FlateDecode /Length 2083 >> stream x[oF_0@f?qC8(w%&N|8;]J"EŒ(nKrvfvvv7C[Dwg볗oBb+%Ccd,f!4|kt=B#VR&%-12r]$7t_1br| \Tad4Lrq3R#ˇ(Ug1%$o4d9-Ui4Dy2]qrn(fS"fKKZ$yVdH <^"ۖTb L/ҴlV[TnQKEFaN8RbmpzcX)nj~ރ3?s!' V^h֛b5?#tO{=bV3_l q4hnw0Y8?vgb%,73ݠ^~q%A^M )[]&?|򡅅ČwȄoE= /eO_r~Z(sPO͛,/:+ΝHJp94f]_Uۦ*hAV^[[OB[(C3LR@os},Ү@Ȗߋw;|3AIծwFpҫ XRN<]4Ao~-0n8ł*:)&J4qt+AӰ^h SlRc_ ;[T1)ԑQ5ki n' KpX SX0$e3P * ]VO(,@r$ئ,%aƍe \P ǡ2۝.E4O fA, PAdA½*UYŝsw#W(*l@T yl]R,8ZwA*M5ENΗܻLr m?bi'mcAH?^B<ʦ,8OEkV`*=drCˌ;f{8P.qtl޽}Ni> g)u]j  ʪ'<9AX5_ OlL`f,m6'j6H-Li83avBx#aUpuF*<_^犚mޛ\Wl*u%QXjvZz(Eew[\U˽Į&r0u+*XN!bF! o$QOBZ,t(d{OoV@;OC24@U*9-sN?F&7_C(a9|uǏ|ʓUhnY2UbgU+/$/=gnS~,:L ePI1 &I>4N\mBĒkvWmsd<%T}W.{(N)۲6/abgp^RX_y~Ȓ|W"a-Ěʁ'jp@뢴F\~b#k!3c#ضzZٰVFaAC#eDV9 ($Γȥ QH(Y1cUE%q@Rqc昳(=50W{F5ք!fЀ#%r XTuwo=[{0c1cP_1W w`PcA}֥Bq'\}by'{F|'('`پLzj- :DJepG> stream xZn7}W~ZKĹ4I@Qyp-Y )p/W]iEh R&p3!hzyBv<9 Q _#c1 i[($fOo4t1?nn'SeqZ.noNM9t? ~#^~B œpD[tus ưRq Qh=G'?` \H~zE[TyB6oZ/yk `IriUCvlu<}v.3r`"vVh{j)^TCNN_Wr>鱻LдJw:6ѣ`a|jnQ5t}"'\JZ0=v!v#%ByMAD~)h>B$- Sc& s^Gr6L)#5[]\LLXV7oW 3_X}\dee vwSeB`E lZ#*..pQSkv^~bDGce!#+M5x]goe>4# cڌ3F\t)>fqJv)eI"_>QН6T6HW*3:riԦD窄%P]vl)+DeBz`h`ڻ6{Fj7!q#ŔUN-כT2 <s{.zyݻ1/WnTHQH nM 4Gy ۛ@JYH&˹~Wz+RG{iـЁ a R]C EX)UݷlTsLUږ{@sG 2 &0GTPߵ۹Cye v u<8^e( 8֊ ;Cy)˩,V ރNzh`r!:N/dIJzɐ^2H5NzK!N*TϓʼnSl@ B Þ A;<*?zM#P hƦih>K'2/ӫbvWU|=eYKDtz4Ku%)ܚpcd9tcJ]7閌ߨRd!mHh`pQ qeeA#\HaAv!hGZI= 6Vqk`R007CXǍѸO jZfFfx c4R'?+RkZOt ^ðߥzBЎէ h Xn.6>[~6eq?r7}͉Ш}- _Ѿ&U. uQ_WCZ^f!f̢LjzHhOW_83 NN]ӸwҲ}ʌZtF a3=P2KTnvWNWJNAHq@6N`]Fј~ڧ~n˴mW ~!r_U N Cƌ+ m̀uSTP  GhYSguXzen xZ;G[SA?j9m>rq<2Pi tvk#Ʋi 5!ec+\F9{ > stream xَ6)^hEd뒶E-ҴoC)sL E۱-9<#洡ͳ=`SƈS7'u;m4G͛"b>c\-^],[܇kx2jqu=>#Nsh%:1|_咛ݒ-. h#>? /V݋ë˛7fوo<9cCڰj"h I^%DkM,qsӈaJit'#*nΣWpAqjlʃ]J=?#Ώ?F[cB[llPQ7tUeo7]+_o`dP"G<|k}g'Me [;sivxbyltJB/Uqқ9Ͼi;6o^42@5Q6c0 +AÕ!4.AZΘ! :P[I$ {z:uICQUizs\,8~ \y(߾<;]r;7%(}!ҷ6|8@ ,.p0x &PJ 8(RA]+1?.\|pG@̆)~(T&a`԰,‚)c)Sx~R=@p`jkes~RP桴θU x$?up7պ9GEl~2Pe#T{Z:MO0u9?/%AHw#OLA<2Ls??qo_jW{qMxR0Ut)gz1j݌rVIO7jbGԋ!7xcnr"c0梂L]Q9"|11D3XCb9dTFQ "vdg!^bcWVQ/Ã,Y))${[J {|ԘO1cպVoBɼǦ!ιz\u{+<>:<<;:<{.r| }(.?pFQC٬@i!j4 ,1&-Hjt uv7|9~>l敍>*t0)U\jKKKXSU hHT)0Tk:JJ(NCW*U8 p&QDd҇F6Dv(Ob~*L 9I-B?_*lGD )3Vz.(#V*F","0TEڑa*>uwOrr7j霤pDsAV$HQ A&ړvz^QXc0 Fx Uh#Tf`'1#VK4Pf"sDWTp-=8IOpČXIs~@LAj Y) ⓯wH H,Ř)"[-l(Zl%H',D3]͢^:2V V)n3cЎSں`cDQ/:PHu\AGOO(S?]颌Z:MhWz!$D3\ J {E.VgZL'\&쿡 1~=7E%,0n^wnY]=!jDJꕀrVV1.4L,JWנ*R39ZDKWBBp U&߄_(fˉb!t il!D*]dž0ߏ f~( j #Ÿ0`) DЎS-o lgժ9@e(3Ps^~]ܲ "Gz]8ߏPXonesBx+?`9"GtN_4~MYP棰.YmPH"G~E* oDHHZV 9o\U6Q|_*=8KѤ^,1c1̙]ڈ#/|=紐jQMjA>d9r"kUmT#Q xW:f&53Bc DdJeׅ*?u9PKU|1~MXD1PbEER]rXF8_G"!5;Bzl7aXfGғZ[|gL v*4x*endstream endobj 286 0 obj << /Filter /FlateDecode /Length 1604 >> stream xZ[o6~ϯ $5e"iuݖ8|iLlR ,&y'|{}*D)R2t}2FtI,_?͐R&u8r-jif?-l9Zď9br 7iĺ`ݽ݋b .P ( GPlEʼn+a,b%:Fw'`4 <\H~Bje*Pe Q Mgx3ű@,I> DO r8,\W 18Љ$БrjD:N ZjUO|:X' /Gz(xG?gMuwJ%$໷S**?[OW5߂Ub%J~:4.EBTYp AcAIbDk7GW$.o3 x$ )#$z&4}7x3`&>2a['}sta]S*BJsU:_UJx*I?ϮSoãX .+Tѻ`TdLJ9<-l#eb@F\1m:d hgm+-vA4ՍhdP0[GA5 |Iwэ3\*u)n󻸃sp6Pb_ݘӹ_]Qƣ/ϖZ}m^߾veO|fKroM@b)f\@lN2fyf=}E#/ITvT#/Emסmc%]&8Q`K 46qh?k?Y@E mỚ$54Nj:#xú̫c! SKKxIX~Hbt8ldm.$=2i\]N>P)SEؚN ЭUXqb1DI $0#LHcM-,JẌ́123l&GkVۚ@w>XA||^/~kȪp m{N)* #2. ]È bfѺsE غ^֐U$l/oIOh=@fCRo'.µ M!k{`nLe;\µ 8N0n e0m X_4՝F֖ޡUkV0Jd`&ձL-;\ޱ2Fք"Q3ģ7tr:~^ֈ8V0}ƭ?e2Y]d[ZCVUㅶwy b&ZXYf= h#VՂs&X@d&Wyl\O]"5d^řPսJS EtF-"ަAx(-=)җ[ω:;GTxדŇjrֽvug YN^P gu%kwΜp&N -$LKvL Ō}RuV+mVXqU} yT1+Mendstream endobj 287 0 obj << /Filter /FlateDecode /Length 1871 >> stream x[nG+8N!ې8Nb Y-Py3nh,ψ>hXz+JyuqѿG2‰3T2IZMίJj'\SfI٣}:0j%J-Go꫻?ńߡRⶊl.wRi?6O\nuI>?=mGtim;O6̵|uXգKcX5r ôG ~4?=xgN'[Ww]S2 ED]S?1mv9 "'Pb;`T@ mCyN,w-gsM4U" 04Slci$k P(^6o-^9cT]>Y,K|܁)`Dqnf@f(/R_FT9t4ﳹU= W`t.ɼscv3^Q0zPr2(kAheއ'ؖB7p8f@'(@aNe@h`=vD ]0p0f@ s4ZIe` r407IDlɹ]紣¡t=é3zѹzć%sqs0f<[+"y9o:d`K Q0p0f@@Z'-. " Gs٧M'X_po0f=!(OX9xׇˡ;cIo:d\Σa53& WPmMGNУ$r: lthTCA4_-gs)euwѼPjX-zy=.9?[o_|hhfƫ rAi֪=Z U[Na#lah)$ 2.yz&}K)\~>NFR1<#j~@u3x`\K5:XKOa ;?@3r z쌌'N->|8f@ӿ P19K2/RZ ;w|ˑdž$ZBB]@zPzZ;;@У|9Rv>cr0J1#ZȃK;S(t :'UPqj9G=m&IjDlI[VSC䘱K o8\ZJy '9Yb}:fx ;~ݍNz9(LO' 1n\BǩohĞ#(-0JS-5ū8C] I|vlQl݄-7tAOZm~ẍLmk? ^|endstream endobj 288 0 obj << /Filter /FlateDecode /Length 1559 >> stream x՚Ks68J3ChV:mAYSKenIXiPK/ -aAR&hz= URldheH+ Mb(}{.Ɣ29<ζh̵nnFN.oWjl=[wnəA[Ŕ h>**f#F2lKM77 20ԛ'\R6 o?Xn =)uh E]1>mo/*sPl\P"0cEyUU< !v˻jtS/7>8ofgrA~]1[-׋c*+rbVspca"X5E/,QhZqƩ>}( ۦFL\$@e@;A9Hr5p"V"*1hSI$ \#*7=x^ohq~Pm\o tk)-`> stream xZs_Gpa$2H*-#7y¼јHx2:N,'7#&|015IİInJ:6 KФ,bDu\[NR M+'iD%k˷Ȧ;2d ^ bZ'#DBUh D`e]a\]AS]/sBx1nb{jQOEv$7:|If鿚}MaƲ'ɩ!XrR8A0~֛; Q`tT+GB?iUZ)i& "g&Y " u'ݟo$7YkeTi<]RBlb;8ΤhZa&⚬R-i" .n5'@} p_ {z847%K,cv&??=o>o$Or/fOf+E/^Dnɛ},*ViKI W #33W OCf\ڍ!;e52[AImt)?`pAc!RZG" _)!kM_mE#7`cΆ #0̷oFg jLJa < `|-=er $~1~UsŮ P!;)@ "qUz'n`l XAkwmɆVH6D#yk> stream xYo#5~_DǿāNH"!mqqY.5_/B3śM5KMu7PVz]ԗRnU0g g䲰3kuܞq%3@gVڂ3eMX=<")|7@*67uOB.fyz |PpI3m~%v3[K\#po==/FS͙ vq:,vQdOKCĚ"_yqI+hfn d=nZڰ6q  Z}5[/e}? ho]}۞tsśMhuƨ 58e;QO~f9*)={^=g? ~}]?_'e6I ꡆs0s@9h vos4gnou*\6jشnPXo_\ AZ '6t$nuWjtgx,,O) MkV4Y#T}r[?Xa=,vֻz[㿑 #`OP ||z|Wǿ= nd9h ¹!.pj_Uxs{kxٖlWI8]0g~EQq8ܠm"0K3$9s~r;Lb74dItbiD4"+ 01I Ōi×uCGNrcx@s7) =a{3b^,ftA|*: cq,N(]@ R$9$HuKg v-.I`xIgs g܈:5ERE:w/fLhhN4/3Oh=pT$ӥh@ |\M #*%qG @rUbT }ZO`©HE'!6$B&Gdd"8CTQ@Ghĕw@K0N i@H,gPUsD|()jM9D#CD`sR֣KeLFM2hxu|T}H: x!EO0iy &D$$Gq2-%}Yܒ%V}mCF 4 u ) KnNq^9<'OKZ+*l9G(oE$ 6!"wГ3*HR`- ;jM]"$8ƎvQt$lW H3ٓ/MugbRw'vyI‰.B—nlBHMCB Z*!FYw? l$c3)',k'GH|;^HJ%PLuO{ m+z|MFhGN)i{-ӿb.%7f Y:ٿ&Ѹendstream endobj 291 0 obj << /Filter /FlateDecode /Length 1567 >> stream xڅ$7 { E+=6x3Ùaxv]cO#)X[#~f%ݳF_o%ng}|z|ӽcŨ8MNٿx}Anv_Hl%9B~D؂ OcāG}Z%+l8[>$~2eÄ/ßLQpQR8K'$W\^9yjŠӋ,\N}ԥ׏].a A\E{ 7Cys4k죓#A;xH9ɰ\`Z-')R`يUw =lzd+QSX [ΝugԼvDJu*sC}OQCy3- ߝr(~>gN:/mbW%~{/n@e k~?iendstream endobj 292 0 obj << /Filter /FlateDecode /Length 2387 >> stream xZmo_aF{h?\wA^}i>(W%']Q-nC<3$wF(~ϗP+mqySYW}lNF*Rr.*of]*YVNw!2axAW:{=ppNTc:=|Pzf$;ѬI3 LMBt^'hf4r VG>H Z4HF=x,b4= a0h0=5djSg*  (ʁhÌlP5a]fQ iFH:ɖLV׉"ƥ"qթ49*\V;0 jXv `JШ0R%Jٌd("C44 =`  Osiye2<..g&rHM2jԬ0uP8|> M"DK=?q E&a:%ϟJƧ%PKn 80j5o^r [n.!}zu|F~f.1P(𢨰W"Q\2t+e4_Z}8g9tlk8pNZwMͿk_\ͤ+93dƫEݮxa~uXmlB,v3cny6=n KWluT/J!iF\l;a~O藨5`Tѕ&K؜-m1ng9*4i>FωZl(Neqh19OԦ.Nj|;zҖwNѓMWvge"q UoQS;MI^ö_י y{|ZeF| zM:D>5Yן e֪˛KI(15ߜɹhYsqޭ6ǻ,\sd<Ayaĸ^ݝ.K? 7rpze¶>OooPtN,$"-kxdA'lvfܮ~kNDM[ՏnY/ffz xU%R}2R~ȓ{@Qoβ-FûȚ\PP9 QN9Q:n0[x^?*<{#\VV-nvˇ9Z\^3W?׼<w^*5>[||\/ey':ahzxُZ:{G#" tEwESuO=M~g'i bDB2 ò1w5S}\ ,3$o%^O.SQ04&T¦@;4ĪKV@in7 %a ypMHNHl4Bz0g!ǫjQ2YHy9 xP}ObQjK`4 ILҍg71c*H,O^C辱#'@ S\ n5#,UnVt@l:-i,޽zf\llVå\5MsyWC|J3{ rC䜆([4")&@-K%21PfKS2&ڳ3V؃VPF]e+,ŝ&I(,**KV5 V4 hWK9 Ncp̩eϱ`щ"hS6؜oZGA%,U"QyL&A'p9(Qv:"Ƨ$ ~OR&Q#-|Db"SKĺ,rVOn =UGnɑI]q*FY ѥKaT1kTȔ9DP'AFLBt4ST 0uyfx;lP!1p!|,~IZL[6Lrg2Wvet=>ۯ>\[sbf &`x ={endstream endobj 293 0 obj << /Filter /FlateDecode /Length 1710 >> stream xڭZA5 ﯘ㷇8+zCR!"dg2㗌|~~;wFZxakHJ?ܽ~CZmER^Ucx×ǻ+K]kyye\Vֺhc0Bi-kKkLo_} 㪤iBkh[u,u7@hrZ6ܬ\\-2,VRM浦v`‰j1]LmKHqP=8wSTNmgm"qZv`l`ʠ9)چܤ]1Njl5lFa[MШeL D!UǗO |Q:(=@iT\9`g0ĻLjvKlӚm]1. \x6gx$c+<΍bW/JX|_A^Q&PO<}S`oBe;>Q!zl3ɓ:N21|$]sbE!W"fA;9>ꐭ8'@~FOнbdh5 LH/w1sZ@'C pa9nKSpE:APpX 1 ?CEP/dmh![9a^:cw- z|y1Se O a؄D>.. \%~m+G|yD}|M(/;ND# _?3@?6,j8.RK3io~}>_?Huqwp,Lg~/9_endstream endobj 294 0 obj << /Filter /FlateDecode /Length 934 >> stream xڭWM7 Wh*v;C1sjQ4r%i,icFqՋMtgUAVٸL<$Zq $&omzɮ0 ŔD,xsH4$iLjڍkI,Js?[yҰC i|:lkdxEDUΖv[ć\ BT?n8"x\DŖX0{/kpA񒧍d,ۀQ*104uKDol:n;bC#N[`C^D0pѸ-N`Xދ{`ɿ#Q6/Wں\P,]N~?}u9t:/Nx- u㧧Y5ϟ|zX.xvrq|p> stream x[o6_!dC&5M?/K3`@UaJrldIزuU 6}x<.'l,l>WDX sj]N-Gԧ+\h]rb]oa՘h4f.ө+S 9̇j`2AEF6 0m6[-dĈ]hj/c|8S1a@^^K0t>OGԵodDui}ZEIx_&IWEIHESƞR1: &bV-(tD|6f3ļ @h} s{Qԛ;S;=qw_"W8@;HÉiϠ?<]7:e5.ŀ(};Sφπ?wRuԅ.gXHqo >ZtϘw1.$L7usѢƀp\!] W4\hHzmo6ǭ 3 ;J}1iUNi:hL];di85ec JC'\fqR6Gqn S6/xiXm'j@他U=`X):im܍:>\n<5R}p+;"95+XѾi۲6if/)G1D@|YPD]plbOV !Uxn΁1%cM׺Z,I jf$nGzLt95kCkY4_;LEsmƇYU'e mEu*#`(HLuAnNUHcKZ,d띡\Zd[w$rB>͚!3Sm)o㲤;_-Y+hkM:H,P"VKc `נ2#nTO}FaP{W&KHҍ"5Qc7q^3|[ jfiu @KOݩG?ٛM{_~+:T839uN^$7TR, ű9wg8_tMhuΦ[TaT쩣/1Tg0:&fU<=q~Zim&>kgxNYvL]{t;pAPaA €O'-P᳞չHM7x/@jGtʐD'|5|~5ވѓ5P4/P:g'Ǹ}֨w@ujQ,5o8N=E~_~r.|œFd7U7il^V6> ϻ\B\ h,-ڿ79´1yDz|=n .G=`׿Az!0]gV]|zY6i ef>H8M8kg*c@훸֟$MY[*W|XVypRg=&N? N*]/&BU݇PƆշ$GAH޿ӧEN1"ڑF2 l~LG #91A\$LZD^bZ=h=z{KWo([Q1C=0Xqo{XGM yG DZD ZzntkQ=ˋ^.dS(J>Y,K=~5/w!VХ$1jCy \t4endstream endobj 296 0 obj << /Filter /FlateDecode /Length 1146 >> stream xڕXˮ6 Wx9*R+hdtvAinHA caa>aat( K75Aj8ņ_EK$9CRG8PUw0X  w<̻ LW$Ad7בǍO*J-h6QG'NPpHhTZ9[QNfS%-7Vb-MXFTb1D^.x92kNާP1`aARʤduH!BacPZlձU8ZcHҸ`E'c2fN;GvgH^xP7 ºOŪM4b$0~)(o^z:P2`'L6 & OOC% h` D{4X|ֽ? 6M$$p82`{mb^oc ۞؟ZKQ2o& iQ^J'm˿rϿ?֧> stream x[mo_A_$ % )CAs @DYBhɡ {g_RTKj|mCDz_ffyf"ɏ'w}yvkHOIhW͒w#E80L󲘍'¨Qud$\[4pI^'<& 1I4S0qj׷%e3ң.`9^A c6Z4dF`IS]$݆bīO' KRM O']rNʓH'?dà (_x|݁q57mϔ A i/vfmaT Bj^?:??Kt>+gi|LOa\{-}rU-W4>Vrz?U7@;_>=Alӟ.Rqcߧb\gf Hڮwh2 Lbd~R&o!w6&Ait9W &4 )21[p*U+ 4\3 2#:5 dDb&Ymө @LA,bh6pюV*BlG~QV9S*8ގb"h5RB#v(CXE݆E ,SN%, F3>5Cc$SYo b40)4,%^g/I*@6s9: yFPvmgYIG8! z%݆e>AY XMyyHIwG7EO (+KDBb]c0px@X* cq@T 9LJeDTRLH5Gt -&D]8ʘ9+ۂ.LabSh$ଉK:,ƕf0jRUXԈ3YqSv1#PfM6Tk$NCD~D|QP+t+֩1EN;'oջTDWڨu\Æl/6dC\,۟"O1)ӆ =DuL(;^@3-NrӞ`تIJ @h=CG 8 ;1}.~n_BF0%SzQ./VՅzOmnzor孰k%^䵿x6v؝2h5]1OG ?' 1mLˇmǚQyyc.躪ΎM͎rU*]Pc-dҖfw0cF-˹bR3f}Yu(*]+.7kVlU1s~k:[QgntZ׾*&eq,ۀ0e]ݬ/nIӌ::LwWJf.vy]4r7ϼf໢ dCX,DQupm8 ݛƯ$kDj-R% rx}1KD!X3g%m;!T_V&k62ErDOI_l`6"aͦ$^C6n*^QQ!8Vj_ϽYa]j\7^woߐ.,6PDw ﮊ7؇?۞*(fbQ?ˢ媰C\ʻev:Moe~x{x.!k_ubU mmӻl;BΦpVe^ݶZ[ lQhX1T'b]Tw>moWO%-Wa(vNHd}9YEy;-P3B4dmiڕ 2aLe>]C%/:9i}6զnZ1A\ۮ&0WV$z׹Q{665-WzV̚CZ;a ހe!; Oy1$'lj7I flRPϞqfcXMA8t j䐝͟,g9W}l%`zԕ3}&?ًg*΅<sՏ9&x~q '{k/n|?$0׷5{Lj4&C4fQYA#-ٯӧR|ߧAL)ۯC=,mlr@ S2о]x* .qy/~Sw5&}c~=B-;MO eiw_m^s_ʽ~1 lj}c_7Pd1`G`#ɀP> t ၷvEli).UNf9> stream xZoFpq $Mzn{g h4hyGQ.I67 ͥAw95}bwG}9=!(zӅ'CDC~νw#~_y&P1C>x & #SQ?MuaIT%`\n:˅(~kh Pk'܂vhq:=HOaSgp,DD?y֩ f<>է}{ja20&RKdMdPj Ld}"2»##12:~:x=ܲ2ߢyMj]ޮ-Pni2y\s`V`>)-VGRrSSdy,Ax™?h`*G6He;s8^Z,b42SW45x^UYx̱۬Aw`d:#U(,́s>;t|[onaP*՗~>uAq6)b4.`5{ݑyUոx"2M{Zw>xk!}bVj: zăE>Êիo{n<4#͗QYeTZo*a6: S ۞6{+Rw{R%ڤTA\GeBI8vGC1݌YYH 9f.âE[&)_4QlD?`cqp$i#DG%E<.ekL϶ĨgSMco񞮵VH5᯾2wI4?\YfCggP+sI̪WJ^YGz'VYP}/+iz7c jZ~#[*ջǫ:ɪ'4M󏟢""0d7i~̃_y4ے҈ϓ"v`ϒYTGu-%CNK'?N~|%8g=X.zǟWw\dt~܀;:w`b B.7S:=}Tlzht*<>[*^sݧn:nfN ƻQ-nOv;T!ЗB{&&Z#;r`%endstream endobj 299 0 obj << /Filter /FlateDecode /Length 1586 >> stream xڵWKs8 WL!QRgzpS͎dmmwؚJ_P$Gb$> vvޝ9u'r8t {$vO!4p#mQ]&gsˢǨj˳ȉQ)Wzinz "QmROȍȗ(-Y,սՈF*sQjk98՚iu&Z|JʞgLWOlҲ@=/ ܩG8@+l wODQ(f3Ԕ*S,fp2c,i1Ϙٮ]:kz~Zf+H&*npQ.D1h$qx,B1ٚeD5'Všt?ٟAr!NL5S8 LܩsswƏF! Xoc{7@הC|ɱksϙmWQ;b߇$ -t7u?f3gɽVԖ"L0DI`I֍G222JJĿp[N,-Vo^sf J#  Q$2Xa ubx4x5x-/ə=1-`6#E;Z/>קqZyJY,9=aa#xz9R!J9h]^ xR =`2L~`W72D ~EtcwqȞch15C !ԍɇ`4H/oCJ<-??;?'Gˈ. ?\DވZꢷm +~|?pAMm\S>rNr.P3;UCeWMտӳKh+8 㣮]#TFD=Lp+@I&7W5KQJ<񈑇FB01y;h×G*mǏum/L7,ἶTvƂ:=¾%Zљuk`llZn}[Pd6KNuBۼV[%|wyҕtE:_tF4 UygYdnI-`/˥oGMZ5}cYsf6MeXr`tz<-v<.OiҒ\7#dX ʹ̗-EuSXg( 7A-\j2+EaJb\jDܬN#.o+-k&ޜ;+_WB?  oO(w. ]"'1?R9`ǖR[IwKRRX$[pT\I dGendstream endobj 300 0 obj << /Filter /FlateDecode /Length1 1407 /Length2 5987 /Length3 0 /Length 6944 >> stream xڍtTk.)"]21Cwt 0  1C "H % !! HHI4{9kfw޻빯2 aH (hj@ ^4` F07w8!`ڧA4, EA ?$w"M4yjH̝tq٣c~C9`119g A4!({3z"GB0ϿZKڣP.||^^^gw^47 an0/-32^ ǯEyA` !=v!$kIu70/?] B.a;(o7qrG!./#C#?Gzx~! D/cՁ:蟆[$ }yIZH4aoA~x} e'a# q; - M$ZN5&QU-9<`A^?] с.3닃+VUqGoO⎖ r0}%iKBćM%ekw/BИH7_k|_>zzo`0(4*PzZ-Gų6&vj3oU9^<VpВw=}yoGAu TO:i&En:ݖv&y+j.Ԡ3YC5[ Se8?cI] ѫr"I}gtg>KDIbNQh12s}?뇤*fI k8UCy]OK/3> dZ}9 ZT;f_)/NJ+ʩ`B'=kX>3TE6LߏYC"Ǻkh¬It]ҧɳTG62TO'#<r-,cɚtp8<&]~TdK{c9AC6O焯#X;>wƎ2TͷvwSbu경v[/idʀj^w_d%bJ8AU+<ܿ[^8ۇrɥD"e/Z~Pw=󻂔1\5dKv|+)$ЦJlƜC(RCEqn/,lwhcfVxQ6P̎N/'zsIW7Բ_Yn0Q\b0RSM12Z(9H|7w(.h/%>9NBYնh,|amy񊶐\32KLAg %Mi;=B}&AH"My-1CZΤnfeɔWFXsdDެJ&^G&7bX6" f%3Z'2ZQW|@0.3XO޴d&]`kbכc m'RUx5=Regrq c!j] g6߾:5$ɴyb8*BflQw܆FI_Q_Wdaa˔~z1?:.ə=¾'7w}}Q8"G{F5~H=c6~;M7gn[#.lb̝b'** o `9"!V w `רےg1g)żw&6Y2K mJ⌫Oc H-KV[)v{+ěq%ģő[QӚi/l?ڄQos?X-7^:rX[K5a%R|#-x{!{Cݍz/KF\jxu'@ ɽLRp3ὣS2;=]=54k+V Z_6c=|rc6H]*j&m*~,^@ܶ+%b=}#aۤo5бY Z7gF?tK1K=nP K)eU'үǒ:O@WAvfZGԸQ 8o<v$TsԽ?³thHp}ܴ繡4׻6IT2 qovJѫ57.FA."fb $HW F)8!=gNv /OklVJ_y^>8>ٯy2Sevql^ F],SmqR5ڱ:—ro+SL_Zّ%-unIؓe|L7;Fz½WT-u)&}[+(vWFВ(>Um e婅wRYMtb>a>ȸ]'zM.<+>A"3şY]}O%}jfxt^ۅA.+Hsp}}\6kwJAԣ"ʌvÝ * g9s}[+:Үw{FRqDY(= P=}/K?$K4nUQˑ;_HޙѠ ):{I׭A ^>0U k3ʫW/u Z}a{͟ҹ;CՋ1ʐyL(5hWaցٽIMu)R>6>L1@!Š5gEÔVM@&c,> >ω۔v m Lbpݒ} AajxGs7 5NeՑ Զ֐s7~4(:4+pRGV)?k/v9Xx̩DnrB-+wϭ6q'7wW?Nֈ7M΅,s`U3.'dz]-tޯz0,?dux6©aқn@ <8,\eP>]]WMq\[q5a[lPl$5wRώŪF0?^-ﭕ,g m'1G',Rn]VԺ9Ði}H #tNTڪ뱋;Aad2xpwA]3 2aqN=nPswc?fBj}, ‹eڃ&?ӡ3ش'גKoߏmo3;kاpGILce2yR}Űz!%XH]N=N)he!Ij]G:#L(Nədf>^ 43)\p:׷Ѷ>(kwPe W܃ō@r\ n$(=xq)htA' ad.&{2nHW``nҰZl,+>Џ9h R)اjqj0Ero%&) pf*6tm t}ch c|h[f#y7M[lL=jzvTJ$0VM+ (TFͻ]o& f0?|X92 "_[b!ڨ {؃Dh+>9*iKmt_O~y5QX#!AvB/p]~'+I 3]1TcBbR /!=Y/-8٪ct%+r؉ϊݬt)˩YE}$?E&|_F P3w;293z"yи19)s;KVPz+|mM6s 4yp"^V{SPҦb|Ǖɞڬ7.-M$)hm闂mGڗOH's؏.qPL%ȑV }HӕY;}͕3^^&t;xLI;1gnQ$?th3 z%0Y1_=pPn 2v/6kxC::Vjc*aW}";ں!cc~ sq.Sv@bCPs\=] vG[%ѕ_S-w5ME10 Y+Hמe`7دv>K*pN|!&)oz( -ug/  g%=R aIBZK%ߎq>Hrٮ{JZm/h58!)%ke}mȝe ïj/x0.e sڳ~ׅGy endstream endobj 301 0 obj << /Filter /FlateDecode /Length1 1487 /Length2 7221 /Length3 0 /Length 8212 >> stream xڍvT]6%-#!%1  03tHw J) - Hw){9>kjK[í p;7@V][Ńqsd0B0Ⱥn>9N;y"܂"\\..῀pb Pa`WLY a>L f t4au"Ѕ `7`sssB]9.lO@ v[~h?q`2 u6n@0a0k aq@  9.gBd :a-h*qy0_@+!8w(Hk r8rBQUaֲp( ss?9 pޜti@`6HX;q `e?!.|`7?0? {8vrr?0q;lH 6+ psqg&77rXm!0?6wxL e /k8rj `~7j!럂08@ g ?U0A`?z?wOo );:3?a 'AnS C L:免a:a#Uւ_]x(ஐ_w brxO\z;~/)z??a@^ R6p_p*rz[‚N&9a>`p:cr?D]1yr=a_+ 0 Pж*i O1imTfvv̕.ү?v-m3K-\ђz{g3݊9?A?^] ]Og_ GT: h^y*z| R)uW2R?yP CU,)-;: 4A=J+Kw>&kc'J^S&1.4g^/~G/dc+zu@)9@x&|fU& Ӊ!VG:V㞸a2dcsҝ/8͓r17]՚|V`rFח  V28`9=qwEJt[&MۓADZOS.lH' ۿ&zlpv/hknm/JDl9#c^ɊwawH3u݁Îؐc6Yt!=T |&Jea)1撹lIu9E$#b`sz-.yY4aW<9T׌(-ׯHPʶE/yN4EX!C{^ѷ.lSfg=%XKM#TMus{PGj^G(0^fZe+Dɗ44I"_+~V Xv)|;FHN@{+KJ*|ZwrRnJa(SnfD]Rق6NqiLqKMƠe(4%Nͪ /. boX|IUn8Mug^Jfߙ1AV4¸Fv ^wv+l^KzM=گO!;=L{Uz4N| +Y3ns&Ca-[$u( N d-R:Vpžԡ[T*yj|vK3͒bɥ:,VU81|7rp*g=N62H6B |V6g%`T_F9ٵ.~PX8~v/V:2ҷp5Ȯr}#4i4GD]'Tӝʈ'p b~i'=Τ-2ݔVP}G}\uljp4<Y??<+|OH8gil,A  [EqYź0\%52Q2(V9/gHa7>I>Fk60W.E\;p\n˽g*"]2/ m;v_*̽mzhgo)%a Aso/vUIk31Fڻ5'E)PC̬*'Kc7_d7Og, ѾdU\ϒ'x`%2*[=dw;8=S,eXϨ_ :}%.\¬`o+X2pz=ٖiHm8 @rg![>oګ/dNZ8 )jYjZF. g/7H#53 ٟb“hfA[{FTܜbW^ ۸F9MFjũ˹H 4uO~ `vkdCUd۔R1?3W4^ <9DGyQO uUegzO:tM;oTWwzwcRs8 hIrS #[jʷl^C]= R.7% tY; KG6ԧL$?]p. fLRT?o>{ΣH<0Gh/\Bě!7ȟ%GmZ.D [`X1Lp$r´Jaӌ^,Jj ҦpX+ 7Atl0Z+^P/#"`\4Tb@C jL3~XhJ5*+J[Z↲T=3q!|Ef,4"!܊,>wi)piO)I4NX_ىs91˻Xn#E)}kg TE+oѧ\K:M/qgb.C,.f:6x^K9Z$:/B ;o2{VK& ԿllzLC)1qx>C.+ervi߇aW0}nņ5bATH Az/G" ,4!Ow`1-Tr:) H2^ OK~\SkcSRYڌeFBwqI&rzws{V"okG;(T2yUEM[2@O{%BJ><w9A;7՞|V~f}f7R x^UR?y:R}}RJ\ B(o@=CBMy?(.۪YrU8tgEE(hpR\QS޺ZsuHWc)HVCʠF`%"miI_N PٙO3>uꍟ"KЈga:YHfw<0F +oi #d#6;M;)ו\ Bo3pK'%e1^H]{ 8#LX3{!Z2j}yo7x y$k"D}]L &۩$FpCZڳER^*d<}IuY4*+Y߼$OSo &֯sۆ%>dceXm , .X#yhrYQm/c~v3#Af05 >ӧ7DO9aothXkdK=BYJHR SGNA85G蔍l6ZMg}a}raSOFWK'~YN? ;@X-鸜F s6\gŬWs -zϾ%D8߯R7^|M`Pb:/z^%ٜMum/É] f;O'Rγ<̕ۼʑzC@9{qZXDܥÄQ/%Xݥ}pΑBSM9EC%oK(g`:?Р$m9kx5џeV!~9ɰVxe_$˪ԐlaÆsZYnޏdDH5K98 EΟz]V^0[^<ތ4ݪ;Qm6dk 'YS W'K/f1smE=Z=#MVv"%gYiS]su K)F$n꧖w6Ap{S\[iAyotTlFv$M.d#FHl?{>\5+x6&B[ ki ˮ=?r?#>aٱYj3?[&`.0RZI$U׮BT(BD?0D}zwT'Ȭ5y}RxAFMc,tے zZrW'/TjӻDuH*Τ'dêL)&a/KБsM]gIW]{oYqQ/_cΎFN1܅wt<!jYjq.N,_o.xಸyseb<յo>=պT39- ׸l$dӝt서fCi2V +ܟ ;(tuN9b{Fx B6Dn~XЈ9pRwhDn ywh?QSY{4Et+pdĘ}Wؑ^c^g^ oD2 Hۊ.M*u3A֘N20q= G i!#'*f@-9,BDt<-c1 }-غZO"'Xb˥Sڛ/&.`l  zt}@N Mvm9od=3`Z̢tk.nJ{Nwz],%^37i/w0 r?ՌG[أ x#,e%ْA fYI@X5a:ʞ,8*}iM;J=fFcD -NkB%d 5zdߍEk=xD{emYx]͹&qGz7䵫p$g3\>ȨoQP|&T c1ucaR".Q>Nv":s,)\ZJ]endstream endobj 302 0 obj << /Filter /FlateDecode /Length1 1541 /Length2 7898 /Length3 0 /Length 8901 >> stream xڍT. Hwʀ9tw4 3--) H %}}kݻfߜgAO.a3 pv @JE9^ b0пR SL`! /psq esH-*EI/ww[Yn`2g~$@`sS(@n {ЂAp`za qrr9qD`5@rtY~ځ~h[k,ᮦ 6A G-e=l?O_Φ0;{S;jC@5Ye ` eh q=!f7JhLlwpC~1eR0;;+?i#9 szqC-,Qp| ;8xa#|\\\@r3\[[=`@ =az:pGgE@ lP?A;\p}2z- rj*bMo$ `F_KMOD% ˟=0{*졏Aސn.=+7Yg䷖5C?t3a"T`s_W?Xdv_a2$V$ vY4_5xCA0'5`rqamVC~@+e0_30ut4u|(xP@` sUO~/o$LF8A<NA>'| >NC@Pn;;:>߭.߻rc̅mj[/%(]ٷFE^cfwlsAKbJx.4o ә͝צ:[8͉̹qT^w^:HMqs /]{j{Kg4ߖNG4/Lc1MF gFg!8v|v>E5vONJ}S੿}5\I\`xSr"gqp4IȺ]"䱥yØ~LH!"rY>ޮ67xIqM@Z<^ "Pcsb5Q͉_x;z_Fr]c7SE1G!SCz G<0[:Mr (KF'ʖYdJT/$$Us5 :}_阵 njq%c*!# ؎|z]0jTsFt9T(~5lcX0)<)ge=@"侊gS3Z^N}mx]" ^7X0* HAfgܳ#q y;}%' nD$ϭ1=LV]}EԚṊ.7 J&{Sz UK2; "i(Wވ7nj ~9JEgPdVwQVxYFvةXVnf~^8k=^ZE oȞ|[ɵNAhY_W*:2͇DNN|Mqͧ mW?UBa!n> ;GQ)ںh.~:)Dʱl#o{3Az"9Ȼj_ ]f AL/̊Kka윋.hA[ HЯHb8ruGe$L%:)VF6<(dbbaHpcT|I*eD?'/SA|p8AA{‚(w<JҎ^HB_ 4sYs)57kLY@kfr6 {o=8ucGl ̶V :?.F{&slJXn~h׹5;ͩ xHfѢƆvO&1\>Hp2Y S^|+EHQ|hrVJUaWw9FW"NB)^v#lC[ɞƉj+keԨKxDxJc;ivr֓~IsOg|h#œ.E5% 9WH=V,ԩxua Ou{tIkRtVYjv ]%wz`cn=M &yq+}Ktqr,QOMd"۳wY-!nq9]U"@-~QcGk*=vrވnJT ~7/J_=t5ؗU;.ZY Vu+!)zT¼%]&;:tDDLfzΈFeV=d BU5$-[Ӱe"hr᫕90t4AjB;ȖښOC,$y;<ɊA1M!E-#bOYa}ATp)$䇖j"a>F#x%ByG#}xߛ1 _֋%Li`AL^sH7"HtR Ny֡"ov*Wu͋qE4Wa';"ǻKM-̢ҕ']`DJI<;|P^ ܏ݩ8 ~KB4Uca HjxZkN@dQvl޵t \1ء? M43'y@ҽ)kiu P@'h@VXJǯh5gm,h1Cx[QإBl55"wH2*={Z)V2/ƷnOǀ6BP3\1$-B_O7 k1TAS]ۓlOqn#*DŽUH^Ai۴m]/J{`-Q2R ^"jxa37tN54k2L+fgcڍbu$ X{Qmc *D5=8ecת!рE**iJPi&}Usɸokb A2G6qmjJ!c'zTmd;)CuRrl{g !ҏ1pzIZ>Iܯ@z;c*冿 <"S/(4u[, L! G2Ö|EX6i+8udq?*0[x5'>,43fb --YыYrT@' ^I lL_O !a>SluFONk ͐edY"?2~)f 30 !E"t.9ȭbR~jGYժ.7ڼM02_`qlew1QKZF:&A9.-9Ұ"D$ &}ؚCha782Jy=G'jk7`kGbM[IrpfsN&,1^ Nq~9k6! YfxfVN$L [w|FWS_X%{qC)}UE:w;tV;lVhՔ!FjLuih y󵫩 <*B$]fbm\Hpz(I# Hz75Qp5Joܼ*w횉IJuy#izH1b31@'g5T񖱛3o fl|/xm[9+JǠztv[GZʨ?QҷXPBo㽐sR3AG6&mr+UzfMϋȎXhFG3 .}:*{ i.efr V!kF4틬"a*$h|7?C"W|%R#c<% 5Ϭ=h|GcaEZJ3#e_z?3 !c$[y»=bٿuē46Mxo[sP\d{ɣO1NaT1Rfo߱恷}[rY#/kYǑG6VD"&HaMK,p AG㪄Z ^ ;='wwm\n^=SOG#5>QU H(l;~>&4慨hyڊpOL) 1WP"_frIP@ xr>JJ@/VFisG)|VXx+Y?0T~;@ 0RټK@x XzanK>@`6BI'@0h4T>xQ2*lw {=%ǹllY/Zd}Ǜ~ס4:D˩1:uԦo`}fva+K:ÿ#M5n&Χ - JKZ^IgĴ3 ~.J>#U2+IA,~P-\aY4>GnF|* /{!؆p{LxdPDIF=)jog͕Cz铒4&CPa."%4 ILW5KE\11o9 {"ND:6,2D;QE<ؙ-/ ^A~5߿O@)q&㇈ֿ݊uT{{$W)m2qF} :]Fڭ#f s[Nqi)XwioS}$qC#k9?}GT?/EF,vu豖*-DŽvƒ6r%3oS̞y u& J$*~8g y4Z1(bBIZ2(jӗϏi Y-jϳ5/rj/ﵪtK2Sd#[׉ӽ ėe#ׄF^h a:rfZ  39Ċ,$xFҔF>O> *;aNn@!r̹ˈ@yEHLs&BEy^F:qz=Z>Osdf,nd0)._u]ȯ̊p1ۏ#XN㴧;P7Mu1ڹĥkfZ'{-cB;F'#N=6¦Sy +"]-87ڝb1ȸg7w7S0x*=M~qVJk8J/=GEúob\ V ,4}"~`U@3 'aWB+>ݢ&ڣI5S6AP*&ؖ#pbVIlƭ%bđ0kL5ih_ z1+O#}.2f$M2eb mFIܙiG"]W6.ki[QXpݩ9sxT#][7>De1^h ڑq#[Wp.o(eW xAgotM$&ՠ38'5L\ק e%U) o[ L/ژìEwN'6VX kCQ)ezݍ„O5h$q쉘(mB| /Ȍ##ֵ#qX6wP"`\^4gI!!()B&d}E$zSdEd71SEIE>M_+nwǮ|I:+d6/fbaҼ{ P5\2C o hD@߯gJGtsbg]U2>Y5I0&;NSnSa.^e-Mr-nkvtY?ʛؽlP^(PaWޝ Axu %h"Ek5I/IpO5ٔn/VfVQMy?9}@ Y ZOH'sg OxuI%)*ވ+2 xEs 2=LqXem;}}x2]#aV(H xX6ކUkJ|Zv 7~jk++d#*Gٍ, ~%cFWY4FXvkK6$]BjeؽAОzM2.k&cQ::ViuYAG;T̝%7Ee|.o{eQ6wRS+ZX,,7Xk=5yJ VR|_ݩ yK˲Yr+Y;@t͒\WeA##1Yﯳo)撓&[>fYRY1^_IXQcϚ1MvUHwY$v~F= o*C{4cgu^gbes<:%FJ2FH}w 4zmhQ!ei"j^fŹXӎ*C`#Q)W}wd PӓO@SBg)}ww^TmǨqԝT휕[X7e^a޸mx>|!딜K_ |;KG,+ 76W L[W uz<[9Q\ed 6n[Wn:]ei/{뀉|<~?rx_sI?Tj2 .&-~=noQCSjmӗvg|ڞJц\;md@Ś*$Φ}|yL~^-TӁ7AO8šv_[}t<\ Qמ}4ps}HZO.)  އ|@2xy] q6̚C9WGBDBuӕt&U?jendstream endobj 303 0 obj << /Filter /FlateDecode /Length1 1393 /Length2 5904 /Length3 0 /Length 6854 >> stream xڍtTk.]  H"!ݍt C0t7RJI!! tw"(9kz}|EKGaU@Q< ^>1OMre&bӇ"]a EB(MBǩ#7GH@0k:/@"0[;߯'i'(` v" 0(_%8P(g1 Ãʋ@Jr>xPv+ ;A %b\u6(0 @a("]e53'XOC_xA)WB0d0prý`p[  TPEyp_`GW:9o(Hkhs a(W^W/_eS["p+ѯPz^?u#<>l`pk_ ݜO07_!h?6[( HXXPu@=!v__f4?g3 |\P ߎ@ 5 XAmapP?g0O { ߯F _ <>< !#!ď~]?o A8_e( A~x}!7Gn v9z - uZ5:^e-i-< A^>?vjCAU{8P-+_> 诊+za]PWAXR0D$2z7 G)4F? Ik| J7$@[P'B43< m^!>,ި;R>N ⸋u)`cS \G?},񫬚&ɊnQ٠Tc+BPLvܻWrbiXڨWB7 ?ZAQBk.N5T3# gGjgOYs xM8" B6dعF~ OMHy' B^s(gEdp'2&j JUKiO~AG/¯zi|ڝJlúCYݤO>~&cl>+%L\:[l&xGTJ 6% d_gh.l1T-KHZ0d`a8N0WqPDJ HNiġ})I+VEġ>&@K@JB{wx/rSf)>S3)05@?/SiwǒW:T!Gi$O?87|-B zNGe80+nUX NL%vw QC&{[6̘X1^nCA>} |y!%WV}WaR6cl/YJAkQM\]+^n1Ǎ+vTg|vI1x302'r\l]0?_"mR[snT菍) \ȠYγoswsa]C{,So3't8sĩzP ,`,^ʪ OoQI^wyԸ3t$]S*aLZhJXD.؊>׳s} zIϓS3c{"JGb 1 zBXܟGdMNP+X3+`d_.ђwN yp Yҩ6 ;/+C"}e#b-"E1[8JT>^֪^~](11}ԭ#@yjRlGv+?0^$l6"K}.)yb ݴ{%' ܑM_[!ief?`=90~o7*<;rc5[yP z*D^ #~ iIU*!|d2D0k}w+De!=_Q).Vn|[aq0NI,$kfNqJ@wJ;C>?9ݐAK7uֿ+MUkǤzo5_\҄WXuE\LfS]k5^nM;OO*Gn8bFjxfM1G3TwNyJnjZ{yB"V,Z7LbN-7=)S8~*Z72YT廇CmsLt$K)X̢R+?a ;.OSnGs[\#ˣ[Hqťv5 Vߘ"u1I]oP7CXO#wk}45^~>3d݈=S:!)58EbÖ"x-Ŏ_$ &-󍶒ZXƯ+&xE&wDWHycgB LL.Rk&i>~l߹FwfԆsś2_v[,>5bê_ޛk)I.@9*r 껖v嵝nQk!/B|uK"KxT>*DbglzcƢ. Ҭc$%*7۷l45wL2WlV} dhzel1iݳ0,U8U4JVʂJۥ陛gOqV|fSeiX}IeMqmϸPs"d$ f ] m!g?50K⊪oE,h(V´z@Y Ibi?bu,V%ܣ]x࣌ƹ׫gkWS⊴Jy*_UP[$\ff;, Tgܯ^gTF i9[c}f+d"tIYqiPzYz8mޢO&!npMԉ搘"?WdK #zAPIj *<:\ZOXZsuNA_便ba_g>$:Z;ՠ<1a_KRemٻ=k޳[S"'1|:& 51?g9c|/3%\FAnDY9ό`3HN{Eysw"Ay~3&;{Jr0bWIN=HaSOpSWm_2!&f.(5͐ǔ F2 1^RsvC8j54?Up*ոu ?ƪGX@oē|F;8do =rw%ffEKȏg9? 13Q8|L…-N5L+F^VqOso\A $A4AzGǚ#P`7oGeeu#:+?5vɼ`\ ș p\g4=}M%:{(V1p]J9»$ʃ|GBHCe|/#>I<e&sN$618G}kl` 犌,Ou*m"Zb@I\#^=mVs.S˲X W{0[^`g s2椁F ߤñ7m"^#3Rܤ #m ghg" Y l+V fRz%g3j,.[WRruI?n.>kd#}cYk J1$uHt#Yn:`B)JYl}UFdWK63Pvrk=r?Kر,o1r|UBoɣ!Tr_زٜԺw]:+7´abd1ϰZꋼ~nbF:zC=$eϰ Uq|l|ʨ`!X;ӭ3~'ݏlԼ4!~D<2ܡC i7/f:?4 s|ٱ?9*+ຆ*6%0{NTd_[O㷌lr v:MRmkFlfGKԷ/_D 1R#eֺĽjj#%'\7Z|,CnɞzXPќ+J@ w?2ö,eGq 94K'bpSI< Vi&Z<[Ƚ'q4B"9u,*S1xbt.XqHkk(h~L'zy|kخ UC&^fR8c%Rܞ+f,&A^ȯ"LQTz$6F:}qW;iϾk|21օr--RZNȏYs<%fU='970(GTvy Ǻx7 " YOVd'555_[#Й܎ ~Br|fѹLfï}rֲD5 ;Jo)sW#l"+ٴTJB_F'~7䒗‡ķzTS ?w߼(`4)l {knbu-,gZ2P:>4PZ=3Klj:مxR{%Tl+FiNn<-ZobdZd],9o>.xk36#RO" Bo$tR"i|*6EHJ%;% /pnO>WWFiD4Z]S9!T@3> 7fTcVkY\5Ã-{e-=?+:lS&Y(Pendstream endobj 304 0 obj << /Filter /FlateDecode /Length1 1671 /Length2 11291 /Length3 0 /Length 12376 >> stream xڍP- w NKpw 3CР!x 8r{E{ /5٤ 9() VQprsrrc201@.00" i&c"B!%W_K@)/"E c A?'`3 r- U -" ApJ,j ; sp[8ء.6,w0\@V?$,AKcd؂a9pw  WTPwA"E`}9.v;D`ȟ@   ; XApA-,O?nX<)[ va`?4re!VPGG|2`=9n=Caġ ;e<0ـ>NNNAnArQ@ _o'Il z p. _t7Xp% 'd~ `4~\?e4aVP??[!'ovyxظ8\\ܼ?O!P_"n_B ׆ԠO 03Ɯ|%3o=ß~#o<ŸvC!ZhUp<9/;'_v0LÁҿT i@a?ޝ(N=m=Oi,c..O\Ojs()` u?L"꿑 7C= =,ao~@>4C^!'6 ~?\O=>bO@.? u@Wυxj¿b.B"vuW5RTlcܼ8'gn[Ңקb GĀYt<_ BȊFs0[)`1ċ<}GW@?~0"/%IhghBϱP{@1ku:2ȪvSux}VRLg ?i[`L*x;ui䳘#[OݷS<׋"{?';d<<׭*u6HV$yHD*iwՕջ'֟icd-hI!,os#W ֹ׵#|Q,t޵[K7*VfnIx2|ҿ Gv^wӴ4ToRj:4s_=#D'&4dۙ1p|°5x,d﷠0Ƈ퇦굥0եtnW$@w|- sFŶVN4Nع*tu~[S >-mA }}OͶ2{Ll8 Ɯ UOV5`_fp}.bI FVF|a9IK'oWksWp.Uژvb2Q/D &觿캰*[3j*["~}aE-YۥOn_P B^:ۺ;8+0ċG"qߜ&w}RwH.T%ܠbQ iyne';S};8TLP On|oXR\'䡚Ix5mͶ]Ӕ)+7FCJ^- $͋oјlXeMtx qEfn7X4xU@)?KbUdkm5ɞi56!̏vx(vy-oR󡕖q}+p-WSuP{k[,U(bQϊHcF\C۬|4>^MGf5MT$**|!&3wAHYuvڿ8?E]iN?Z6 *KK *m}p6!֥7~60TeC0Vx9#CfH&hO~u_݃C@]ZQ~&”̭a"t0XOZ{6 !C'Ҁne#GxQ']q%Ah>UǾziAEsjz͍4z82"$Қ6ݸӄ} sk dP.LΦ{e``[cK",i]+b8@U M,^pIai^M G>CQזjZ.m ʔ1-tR#Y5H\h1;ҹG?*(.zd/lX_HJS_- )dD b'.MO`SO3M:uyNs[{>W -_p_:*Ep:߷ip,[. X^m)&I@qZ>vZ>8*xgj6ye *uk} t4e3L=ﰜyسٮJKV$Ok)["ܩ-1 J׶r>y#q43c Rš;>FVR/EFq^ס}֕>0OE7\n;$f7xϲ ŏ45h.kYRt'ܠ:8 &Pn k˕<4),.w]ha4x*\]ԉa q/z,>)>UJ:Dl<:ظV01'K#Z%TX7`?O~s{e \NгjtЗ0gnBŶ8|n 3I_K2Ĥ**=]a!hMQ*.Q}Z2APh\R2_yM2097_#'%b%ݜ "gh~4aڦ6 LjV|I2$%#aXW+JTҌkr^jΏ1>/ar#xC)|ndyWe8b X/b[BgpN!\Isv=) F tyQ$gyqsٵX\1-Q|f SGwA;$W_ `j="<߂45UNrM& g;zK1nᅿ|0 \qNux536ݎx!x]}n~R2'g2U곳r V%UL{~>EOs^ER)q]s(ZL_Od+\UƭQt:⡠^觃SOwrTy_/qQi:7?ԼSMGH _rAڻz݌]J <BU0ˑt|6Y2x5wX pIC;K: +F*ޘIl`Mwt7H'kX)ܞ+6=UZTD SA7c#t8x:=#+⹷.2OD'y%~s[HzĂG=mJB^ݰq+t cxN%=_YQxY L'>a#vo#5dϖΡzd{AIܻ!쐋V\d%$^7e'p //ʼn1=#KKFˌ[ĔZ~o^_BL_+5Qp#ZѥHs^ aIzeԾs1oߺ* b5W,ƶz WrgXM`w j NyG %*f'ݞeDŽ.ʇX}IP%6*B׊I͎Rj#*kg gN,\z*Uh&Pwk >F5lePQͦvZ Xr$wD7; "V*/Ò]Xf9( ay?dSN!Z돣R`T>")h*gn_^ b`JNT_FZ>tqp/ƆXXLJ/?2HUԱq-464u Q εÖ 4 2a%k37DJ-pyp(&+hXmY',*32{Rjk!@)eih:b g/4QMr z k9⋴a%vdf+2ѩGQeK=([&*sGHxka;v `<rc#TŎKz+)X>TJ;*R45ȴUQ8&<3ߢLx}xGn:O 0+ &C"}c LK#M)w,E]l$S>7y.2GWكle51y[5 b;f,x7]Ds nn>X$`c?ELZL&;S!5TJ}lpZףZJ=)IPU}/\ɼ-L 9lQ|oC#n~+Aa[+qJwg>er2UW7T6WQ 7RYg iZ32H/x'isc(D]~7l1XpލX.`ͬSm 4dkZ.jX5brIc Ȕs. #J7_C ݓұĹXvȱ.W%[-.3mUW{UoDNР(Tو塾@$H!mmȬjJ-(zqA ӓg$\3uJB@'u>!ZxS#ht[*K5xQU_{yK>!)wq9yfIF +>+M6OR)De|}Ȉms/74I5߫[$h:x٘P46-3hġ01ܛAQ*W “ -=tf]uVF+t 7{+`rkIJly0Te?ϮmqK.28f>+st#9 ͏I3[;^5SG4ԱD3܊F{߅Pt[$5{"^f9ޏ3贐ϾmPu_} m᧖~$KV&<"AMbzu_i4lmbq(`)窦$_5U9ك7S׹؆.^WG~}Pr4V6i?{Cze19᝭?\flJ5Z;,ivhFN\Ԣ Qu/(o ¬BɆb+jui׍t)uP&,+Ɉ #> Ě6g!ӓ"H䝅P[s83|;^T5_J @kV#{J6qA0؁h{^I Q)-@Qs!Bڭ %lԅKc!Kbrj9 ~9Ȏ[/{VYFG 9hVrОC*d{&~d~G*/%i~h!xC-o"uڻ-i V,jG+DL:Y9;le8ˡj eclX0c,Udg7ߘ[ꩰ7ڌ}٥)tiqĢEKi[&T/NOԻJ.v?9!qgF(MÎ;w3\fnUqRG9J8%ݤI_ak-nrOױqnk yZS*7Ƴ;Nn[!#N5ܑ@ۻ@H}L7KGYPW~+= !S򸜨q#tloa!/Ixc:$"_T6TY οoCWT/yp(X ?~JF%^fp<ilIc"]HE6:eH*Ɓ&AA=)-+N̵6`xkW7D>Kvr:cbizǒSs 6@/l'GA֬Q ƯwJ2&1 ,^K,7Ţ!Ӏlr0lJO?T|^pYZ z|~սm7Zr,IǠٛXЫ-›Pҵ6pقs)ql>q9੼Pީ+^Q vV-ި"5iH*ʊl+ɻz/?W 6 iD핸:ԑ5@l{|$C袾I`>ځGz~{}ժ.WHJj>\?Ʒǎ8LB`xdp yc2i7{Y'VB7׏\Bܘ A.*-& ,j=+AΫ MiEt)_f|B4MR,T53*w\΍!z䓕 O8õvqm􌫛Igz_tũAujr+c 'lAR!-FĆ]87Ez~G *$/rG+DGys*Zĺ Kd(̫OUqprwC~HL3',"3B?Kah}3K8I#~kGhIW[QIK9Na j}Mޙ˫XS"K'#s3pmp;b Da_+Sh3aq|ZvC^1j /)FW2o:eJG(1(Eb sS=2l,_vѬG+)"{։U1}U?gdv :d.UDǕwy?*?_Rwy;MQCbb4ΒNpMtIȾ'=PSeH|_9Kנn/PI$|jy=A6{{tz}-yh![IIWѯ"3V$QW=^ KQC5kE#/7c'aIӉ+Q>6 q?1 ۃ{?'7F f ' Q򯲂M#oj[OK0ݏUݑz6'J0؛bqsU̐wjᡜx7ľ|*Ck N' @&I N5iG2DTzelÐnHdXOi6Ϗu˰ HdS{'Yߌ .Y50KSC+mdIM}r%<ZS‰(M/ a]m_0҈WR6xJ}h)og*|Q+A˗\jBKls-AQERqzu;:Ȯlޑ"_,P`/H{iXM{3e; B{=BJ,< ewN: =ci0ޕg044Q^9w$i޹ {u3zK '8~B6BROsU l`†n°}c5MQ$=o HHb'>$.[Qk<[L Ȝsdl hP&|*8C<2:7 *sRAJmҮV?a&r ^"$oMcTM6}ZAex#Sc~FoV^N-*JaZ-)굳ltAb]$ ~tUAVk^/CUuO/m*P5F ަ˵W3F\ӉqMV Bޞ+|U7ŀoD9A^8X308~cA ۙ\p[KsA1;IaPF֓599I'43HQi307PۭЙZG6k8my@>bl7mngḁFFj%rm> k_+? ,|A~aikVβ3乕G;{lh^M]YkݑUg~?'#?0 F/EY>e` 42t>{ӥ*!0x2-Ds4.0 A&ooI" ޮJCr@(~1W4I vћc|c6|K{G0g&~eVr?٣Bۂxϕ}&pʆQ'?GP#v$ܠvá PϾlr:F ɞz}2gEJS¸P/_Vou26ⅇ9'~|z9RJi1V+ 6 `wI T#5+.&ּyjd^JVڢ-לs(;~8u;x:Ms9ܯrf|<+4\Z:%{eI@E"*Q3Búun*T K("bv/IHCg\_;5ٯ, ~_弧n&ny i']Mt1t( T;3hZalQІU`jsɐ^X")׊>$|NM̻A"u8\W/LUMd倮oLMk]k<*j[5U$No)72?#1[1*zf(G $:4 LF7UÌ.yHeE쵇tUX7*e>X>C]r/R7aNR1&PzTde/reT$Iumxb5Aw}g}}(^Imnd-*ʍ &Xk=p[lD"!EJxGz ,b2cY%eMpioz+ڥDԊ&$Agn9ZS!5xz-S;FduaQCB>+wL󣣵]}t&8iP: {`2v:.M g U.Q vRI*y5 )pc5AasJ;ZE$+/_XYYUϚ+d 9nYcd `RO]e F\CÕJ(V>,4$&=3V> stream xڍT 8m&*IP.bX"T1ofGEPHRRY}TDZ)%ED__s]3sι9s?j*n:$"7"ux<Ь q0 1 aɁ(mG7B?#ƹ9xx=a+QW>wܧxl: ,И&&x}<"No?U.'"7)L:@CB }#Dߣv< ~0 @4gG ޘ109{txo1Tr@MÚA~hPY) áb~A( ^m",Pv`Fjlp)״5u퇉/386:3=dO1 _Ms8 e4kO?Q1OZYuq;WIIHԓ/gemG/w-zC<4k)>yxOoΥj?Xd ׁO|j.B_:TzG h\4ߒ5`c^V1?`hA9̗72]8'UQ2QjE#+ D ڢpwR¬_(n}j'4v ohq9')GJTb8eo޿xd.tw4ߖ܏iw QpC,HrָiE:A>䙯µȱ ^ MB~[r<|:eX.hn|bȧO'mˌYU]ߝ3L)gߖt<}Hܧp[z{71"On\>NK=Ѻ;Ȋ$0Kau15]R]VvjMFl.%Tg%w D\rvtԬV/UiP*+IHmZOavar?*TdK>):U|dоc̓j/0@:.Ywg\.]gŻ/"Hpg-~Lu{fJd55K?>_,qŵs|VElm1K8c>w)A1n܇4q';l'[ 䲵s; ׅե}?- 0G.)wJÍױk{rbojSS*Oܠ?7q?s k"kk0ld{#|7I{ئ';}A~3@WؗSxlMwOXl䪓fA0Z& hEI۱0Wtr z+xR.?HSSVpwW\ .g.IRc^ǖ6m{Pֱ|jd-Ņ#ƵE;M9> YhUw@D]kўŔ cIůf߅J ؟u/ԯixIT{xI۳.KXc7 X#)<%*36@<:u7.YUƢS}.;<.k5ծĝ#_#~m>׿},W퉺Gh*JG4̗olS>='g6j,u@MR5F!&۵3Yo?m8qTגevUf(J~U#+ tdخc9|P4 O69cl=!֩=.rej|ԞyxUuN)FMOZk2E#^{rcKJC1վw\1{ t2/MHfʛuy-S@ %}\?XEWo> stream xVn8}Wc 1豈@n tEVdHr.=#_d:/&EsI O$-AYAEC`eI$/R(úCP$i}Q=eX-Y@<9* ǞւC,-)hpӊҚBPfq^u' (9".&%NgxAR %&xFay g]  "[Bdy5t5n&eٱ^= Ex -Do!r ișUP BVĜ|b(@)RJD!9V29L 3Dte, a>,CxD#Ky3gDyΛG`x *p x.ӁkA(L 8Aqqq}PC|!\!Bt\OqQqW#{W ꊶ,4xH#/Sp!CUyO}~_tIb}iil~0aGOZ]DO9BH@lfW)YLuX$7qժ5\k@rU%ݦ_LTI1i&trش#S>ߵRC:uZM9#*/ƟVICڨZZtUKQr5Guu1Dq='J*K=cF*Mc A̔ $CP7UF%LLC^[,Li0/̋ly }b"2`']Ԍ.zl4tX10 bcܮqFiBwηM[tl[t@7ͪDou9ӓDbtٴ󊪲 ~w*bKwTOEEX/H蝍Xd,tbt :N4x8j<'?]}/}s]m/I2>2Ko'_~4y,nR vK;>N?zm-XN3H2Lҏny6ɞPsiר褭3L2p߼Qv" E)^[E7xkş{i71fb@1xU7HX'&IGkSe9=|'eS"tendstream endobj 392 0 obj << /Type /XRef /Length 232 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 87 0 R /Root 86 0 R /Size 393 /ID [<0366b0dca8cfeaf636828ade9dac97bc><45520ac18bf6f288c2b547cb158e11c0>] >> stream x? qߝ"Fe` LF$'@ b5AX | }nz, O!c!TUxSmý`oUуe'hmCss :^|L`r)ER5fa< sv*'vA K :7^! ;+75^, 2012-08-10 ### Example of problem with logical library(xtable) mydf <- data.frame(x = c(1,2), y = c(TRUE,FALSE)) xtable(mydf) ### Output should be ## % latex table generated in R 2.15.0 by xtable 1.7-0 package ## % Fri Aug 10 23:16:30 2012 ## \begin{table}[ht] ## \begin{center} ## \begin{tabular}{rrl} ## \hline ## & x & y \\ ## \hline ## 1 & 1.00 & TRUE \\ ## 2 & 2.00 & FALSE \\ ## \hline ## \end{tabular} ## \end{center} ## \end{table} xtable/tests/test.xtable.R0000644000176200001440000000160412013175236015254 0ustar liggesusers### Test of implementation of request #2104 ### Use of \centering rather that center environment when centering tables ### DJS, 16/8/2012 require(xtable) ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14) trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69) group <- gl(2,10,20, labels=c("Ctl","Trt")) weight <- c(ctl, trt) lm.D9 <- lm(weight ~ group) class(lm.D9) xtable(lm.D9, caption="\\tt latex.environment=\"center\"") ## % latex table generated in R 2.15.0 by xtable 1.7-1 package ## % Thu Aug 16 15:44:09 2012 ## \begin{table}[ht] ## \centering ## \begin{tabular}{rrrrr} ## \hline ## & Estimate & Std. Error & t value & Pr($>$$|$t$|$) \\ ## \hline ## (Intercept) & 5.0320 & 0.2202 & 22.85 & 0.0000 \\ ## groupTrt & -0.3710 & 0.3114 & -1.19 & 0.2490 \\ ## \hline ## \end{tabular} ## \caption{\tt latex.environment="center"} ## \end{table} xtable/tests/test.xtable.xtableFtable.R0000644000176200001440000000127412651514702017656 0ustar liggesusers### Test code for xtableFtable function ### David Scott, , 2016-01-14 library(xtable) tbl <- ftable(mtcars$cyl, mtcars$vs, mtcars$am, mtcars$gear, row.vars = c(2, 4), dnn = c("Cylinders", "V/S", "Transmission", "Gears")) ## debug(xtableFtable) xftbl <- xtableFtable(tbl) str(xftbl) unclass(xftbl) print.xtableFtable(xftbl) xftbl <- xtableFtable(tbl, method = "row.compact") print.xtableFtable(xftbl) xftbl <- xtableFtable(tbl, method = "col.compact") print.xtableFtable(xftbl) xftbl <- xtableFtable(tbl, method = "compact") print.xtableFtable(xftbl) ## debug(print.xtableFtable) ## undebug(print.xtableFtable) ## debug(print.xtable) ## undebug(print.xtable) xtable/tests/test.margintable.R0000644000176200001440000000260412013175412016257 0ustar liggesusers### Test of feature request #2168 implementation ### Enables use of margintable floating environment ### DJS, 17/08/2012 library(xtable) x <- matrix(rnorm(6), ncol = 2) x.small <- xtable(x, label='tabsmall', caption = 'A margin table') print(x.small, floating.environment = 'margintable', table.environments = "", table.placement = NULL) ## % latex table generated in R 2.15.0 by xtable 1.7-1 package ## % Fri Aug 17 01:42:42 2012 ## \begin{margintable} ## \centering ## \begin{tabular}{rrr} ## \hline ## & 1 & 2 \\ ## \hline ## 1 & 1.42 & -1.11 \\ ## 2 & -0.57 & 0.23 \\ ## 3 & -0.67 & -0.60 \\ ## \hline ## \end{tabular} ## \caption{A margin table} ## \label{tabsmall} ## \end{margintable} print(x.small, floating.environment = 'margintable', table.environments = "") ## % latex table generated in R 2.15.0 by xtable 1.7-1 package ## % Fri Aug 17 01:42:46 2012 ## \begin{margintable} ## \centering ## \begin{tabular}{rrr} ## \hline ## & 1 & 2 \\ ## \hline ## 1 & 1.42 & -1.11 \\ ## 2 & -0.57 & 0.23 \\ ## 3 & -0.67 & -0.60 \\ ## \hline ## \end{tabular} ## \caption{A margin table} ## \label{tabsmall} ## \end{margintable} ## Warning message: ## In print.xtable(x.small, floating.environment = "margintable", table.environments = "") : ## margintable does not allow for table placement; setting table.placement to NULL xtable/tests/test.xalign.xdigits.xdisplay.R0000644000176200001440000000252412611336442020571 0ustar liggesusers### Test of feature request #5686 ### Automatically suggesting alignment/digits/display for an xtable ### Arni Magnusson, 14 Sep 2014 require(xtable) dat <- mtcars[1:3, 1:6] x <- xtable(dat) x ## % latex table generated in R 3.1.1 by xtable 1.7-4 package ## % Sun Sep 14 22:32:17 2014 ## \begin{table}[ht] ## \centering ## \begin{tabular}{rrrrrrr} ## \hline ## & mpg & cyl & disp & hp & drat & wt \\ ## \hline ## Mazda RX4 & 21.00 & 6.00 & 160.00 & 110.00 & 3.90 & 2.62 \\ ## Mazda RX4 Wag & 21.00 & 6.00 & 160.00 & 110.00 & 3.90 & 2.88 \\ ## Datsun 710 & 22.80 & 4.00 & 108.00 & 93.00 & 3.85 & 2.32 \\ ## \hline ## \end{tabular} ## \end{table} ### Hmm, inappropriate alignment and digits. ### Now try suggestions from xalign, xdigits, and xdisplay: ### source("http://www.hafro.is/~arnima/r/xtable_5686.R") align(x) <- xalign(x) digits(x) <- xdigits(x) display(x) <- xdisplay(x) x ## % latex table generated in R 3.1.1 by xtable 1.7-4 package ## % Sun Sep 14 22:34:43 2014 ## \begin{table}[ht] ## \centering ## \begin{tabular}{lrrrrrr} ## \hline ## & mpg & cyl & disp & hp & drat & wt \\ ## \hline ## Mazda RX4 & 21.0 & 6 & 160 & 110 & 3.90 & 2.620 \\ ## Mazda RX4 Wag & 21.0 & 6 & 160 & 110 & 3.90 & 2.875 \\ ## Datsun 710 & 22.8 & 4 & 108 & 93 & 3.85 & 2.320 \\ ## \hline ## \end{tabular} ## \end{table} ### Excellent suggestions. xtable/tests/test.matharray.R0000644000176200001440000000160212642632140015763 0ustar liggesusersrequire(xtable) V <- matrix(c(1.140380e-03, 3.010497e-05, 7.334879e-05, 3.010497e-05, 3.320683e-04, -5.284854e-05, 7.334879e-05, -5.284854e-05, 3.520928e-04), nrow = 3) ### Simple test of print.xtableMatharray print.xtableMatharray(xtable(V, display = rep("E", 4))) class(V) <- c("xtableMatharray") class(V) ### Test without any additional arguments mth <- xtableMatharray(V) str(mth) print(mth) ### Test with arguments to xtable mth <- xtableMatharray(V, display = rep("E", 4)) str(mth) print(mth) mth <- xtableMatharray(V, digits = 6) str(mth) print(mth) ### Test with additional print.xtableMatharray arguments mth <- xtableMatharray(V, digits = 6) str(mth) print(mth, format.args = list(decimal.mark = ",")) print(mth, scalebox = 0.5) print(mth, comment = TRUE) print(mth, timestamp = "2000-01-01") print(mth, comment = TRUE, timestamp = "2000-01-01") xtable/NAMESPACE0000644000176200001440000000404112652545735012765 0ustar liggesusersimportFrom("utils", "toLatex") importFrom("stats", "anova", "as.ts", "cycle", "end", "frequency", "na.omit", "pchisq", "start", "time") importFrom("utils", "packageDescription") export("caption<-", "caption", "label", "label<-", "align<-", "align", "digits<-", "digits", "display<-", "display", "xtable", "xtableMatharray","xtableList", "xtableLSMeans", "print.xtable", "print.xtableMatharray", "print.xtableList", "xtableFtable", "print.xtableFtable", "toLatex.xtable", "autoformat", "xalign", "xdigits", "xdisplay", "sanitize", "sanitize.numbers", "sanitize.final", "as.is", "as.math") S3method("print", "xtable") S3method("print", "xtableMatharray") S3method("print", "xtableList") S3method("print", "xtableFtable") S3method("toLatex", "xtable") S3method("caption<-", "xtable") S3method("caption", "xtable") S3method("label", "xtable") S3method("label<-", "xtable") S3method("align<-", "xtable") S3method("align", "xtable") S3method("digits", "xtable") S3method("digits<-", "xtable") S3method("display<-", "xtable") S3method("display", "xtable") S3method("xtable", "data.frame") S3method("xtable", "matrix") S3method("xtable", "table") S3method("xtable", "anova") S3method("xtable", "aov") S3method("xtable", "summary.aov") S3method("xtable", "summary.aovlist") S3method("xtable", "aovlist") S3method("xtable", "lm") S3method("xtable", "summary.lm") S3method("xtable", "glm") S3method("xtable", "summary.glm") S3method("xtable", "prcomp") S3method("xtable", "summary.prcomp") S3method("xtable", "coxph") S3method("xtable", "ts") S3method("xtable", "zoo") S3method("xtable", "sarlm") S3method("xtable", "summary.sarlm") S3method("xtable", "gmsar") S3method("xtable", "summary.gmsar") S3method("xtable", "stsls") S3method("xtable", "summary.stsls") S3method("xtable", "sarlm.pred") S3method("xtable", "lagImpact") S3method("xtable", "splm") S3method("xtable", "summary.splm") S3method("xtable", "sphet") S3method("xtable", "summary.sphet") S3method("xtable", "spautolm") S3method("xtable", "summary.spautolm") xtable/NEWS0000644000176200001440000001374512652537445012257 0ustar liggesusers1.8-2 (NOT YET SUBMITTED TO CRAN) * Added function print.xtableMatharray to enable easy creation of LaTeX code to enable an array to be included in a document. * Added example to the gallery using sanitizing headings and row names to produce large bold headings and italic row names. * Added code from Martin Gubri, martin.gubri@framasoft.org, to produce tables from the spatial econometrics packages, spdep, splm, and sphet. * Extracted sanitize functions from print.xtable as stand-alone functions, and exported them. Added helper functions as.is and as.math for assistance with sanitization (supplied by Stefan Edwards in Feature Request #5303). * Added option to produce math style exponents when sanitizing numbers, as suggested by Don Armstrong , who also provided code * Fixed bug #6907. Warning was created when the data frame as no rows for type is 'html'. Added a test to create the matrix requested specially in that case. Original code was BTD2 <- matrix(align.tmp[(2-pos):(ncol(x)+1)], nrow = nrow(x), ncol = ncol(x)+pos, byrow = TRUE) which created a matrix with no rows, but gave a warning when there were no rows in the data frame being processed. * Fixed bug #6260. Accepted the change suggested by Claudius Loehnert, which was to replace { and } by \begingroup and \endgroup respectively as the delimiters when size was to changed in a table. * Added functions xtableList and print.xtableList to produce composite tables consisting of a number of subtables. * Added xtableFtable and print.xtableFtable to format flat tables produced by ftable. Included examples in the xtable gallery. * Produced new vignettes: 'The xtableList Gallery' to illustrate xtableList and print.xtableList; and 'The Other Packages Gallery' to illustrate methods for classes of objects from other packages. 1.8-0 (2015-11-02) * autoformat, xalign, xdigits, xdisplay from Arni Magnusson, added along with help file. Feature request #5686. * New argument 'auto' in xtable(), to call xalign, xdigits, and xdisplay at the time when xtable is created. * Updated xtableGallery vignette, now with TOC and revised examples. 1.7-4 (2014-09-11) * Changed tags in HTML to be all lower case, to be compatible with HTML5, part of feature request. (#5879) * Fixed booktabs bug (#2309), more of an enhancement really. Updated xtableGallery.snw to illustrate the change. 1.7-3 (2014-03-06) * Dealt with format.args bug (#4770). No code changes, but the documentation of print.xtable was changed to warn of the problem and to give a workaround as an example. 1.7-1 (2013-02-24) * Fixed logicals bug. (Req #1911) * Changed implementation of centering of tables. Instead of inserting a centered environment, now a \centering command is inserted. (Req #2104) * Allow for margin tables as possible with document class tufte-handout. An example of usage is found in the vignette. produced by margintable.Rnw which is in inst/doc. (Req #2168) * Added "timestamp" argument to print.xtable(). Set it to NULL if no timestamp is desired. (Req #2246) * Added "comment" argument to print.xtable(). Set it to FALSE to exclude the version and timestamp comment. (Req #2246) * Added "caption.width" argument. If not NULL then the caption is placed in a "parbox" of the specified width. (Req #2247) * Remove the check on whether the "floating.environment" is in a list of known floating environments. Users want to use floating environments from multiple options LaTeX packages. (Req #2488, #2578) 1.7-0 (2012-02-10) * Added some vectorization code to improve performance. * Let "caption" be length 2, in which case the second value is the short caption used when creating a list of tables. * Added "toLatex" method. * Included "print.xtable" in the exported methods in the NAMESPACE file. * Added "print.results" argument to "print" that can be used to suppress the printing. * Added "format.args" argument to "print" that can be used to pass additional arguments such as "big.marks" to "formatC()". * Added "rotate.colnames" and "rotate.rownames" arguments to "print.xtable". * Added "booktabs" argument to use the "\toprule", "\midrule", and "\bottomrule" tags from the Latex "booktabs" package rather than using "\hline" for all horizontal lines. * Added "scalebox" argument to include a "\scalebox" clause around the tabular environment with the specified value used as the scaling factor. * Added "width" argument to allow specification of the width value in tabular environments such as "tabularx". * Added "X" as an allowed alignment value in the "align()" replacement function. * Changed the "print.xtable()" arguments to use "getOption()" to check the options for a default value. This was suggested since "print.xtable()" has a lot of arguments that the user will typically leave unchanged between tables. * Added an "is.null()" check on the "table.placement" argument. * Added examples using the new arguments to the vignette. 1.6-0 (2011-10-07) * Allow "table*" as a value for "floating.environment" in print.xtable(). * Fix bug under which multiple logical columns were formatted incorrectly. * Stop with an error if "xtable.table" is used on a table with more than two dimensions. * Add some newlines to "Rd" file to prevent lines from extending off the page in the PDF version of the help files. * Changed the maintainer to "Charles Roosen". * Created an "xtable" project on R-Forge. 1.5-6 (2009-10-30) * Support caption at the top in the LaTeX longtable. * Use options()$OutDec for decimal mark. 1.5-5 (2009-03-24) * Added html.table.attributes to set the attributed of the tag for HTML tables. * Accommodated logicals by converting to characters. * Add an extra space at end of each line for LaTeX tables. * Fixed typographical error in documentation. xtable/data/0000755000176200001440000000000012654015472012450 5ustar liggesusersxtable/data/tli.txt.gz0000644000176200001440000000106012654015472014415 0ustar liggesusersWN@}+ lQAowIJJ̞9sfv,;>~۷]sx;>7_kr|mW[f%{l-ci]ߎ7Y񾳬gzge:*֝X>}D>y43CtSPT{(>ϢO Z\WnYy"yէ =Jj:OG=grF>R-\M{(W9 ### ### Maintained by David Scott ### ### This file is part of the `xtable' library for R and related languages. ### It is made available under the terms of the GNU General Public ### License, version 2, or at your option, any later version, ### incorporated herein by reference. ### ### This program is distributed in the hope that it will be ### useful, but WITHOUT ANY WARRANTY; without even the implied ### warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR ### PURPOSE. See the GNU General Public License for more ### details. ### ### You should have received a copy of the GNU General Public ### License along with this program; if not, write to the Free ### Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, ### MA 02111-1307, USA ### The generic for toLatex() is declared in the base package "utils" toLatex.xtable <- function(object, ...){ ## Initially just capturing the output of print.xtable(). At some ## point this could be refactored to have print.xtable() call ## toLatex() instead. - CR, 30/01/2012 dotArgs <- list(...) dotArgs$x <- object dotArgs$type <- "latex" dotArgs$print.results <- FALSE z <- do.call("print.xtable", dotArgs) z <- strsplit(z, split="\n")[[1]] class(z) <- "Latex" z } xtable/R/autoformat.R0000644000176200001440000000236512611336441014245 0ustar liggesusersautoformat <- function(xtab, zap = getOption("digits")) { align(xtab) <- xalign(xtab) digits(xtab) <- xdigits(xtab, zap = zap) display(xtab) <- xdisplay(xtab) return(xtab) } xalign <- function(x, pad = TRUE) { lr <- function(v) if(is.numeric(v)) "r" else "l" is.2d <- length(dim(x)) == 2 alignment <- if(is.2d) sapply(as.data.frame(x), lr) else lr(x) output <- if(is.2d && pad) c("l", alignment) else alignment return(output) } xdigits <- function(x, pad = TRUE, zap = getOption("digits")) { dig <- function(v) { if(is.numeric(v)) { v <- na.omit(v) v <- zapsmall(abs(v - floor(v)), zap) dec <- if(any(v > 0)) max(nchar(v) - 2L) else 0L } else { dec <- 0L } return(dec) } is.2d <- length(dim(x)) == 2 decimals <- if(is.2d) sapply(as.data.frame(x), dig) else dig(x) output <- if(is.2d && pad) c(0L, decimals) else decimals return(output) } xdisplay <- function(x, pad = TRUE) { type <- function(v) { if(is.numeric(v)) { tp <- if(xdigits(v) == 0) "d" else "f" } else { tp <- "s" } return(tp) } is.2d <- length(dim(x)) == 2 disp <- if(is.2d) sapply(as.data.frame(x), type) else type(x) output <- if(is.2d && pad) c("s", disp) else disp return(output) } xtable/R/xtableList.R0000644000176200001440000002517212654015445014205 0ustar liggesusers### Function to create lists of tables xtableList <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, ...) { if (is.null(digits)){ digitsList <- vector("list", length(x)) } else { if (!is.list(digits)){ digitsList <- vector("list", length(x)) for (i in 1:length(x)) digitsList[[i]] <- digits } } if (is.null(display)){ displayList <- vector("list", length(x)) } else { if (!is.list(display)){ displayList <- vector("list", length(x)) for (i in 1:length(x)) displayList[[i]] <- display } } xList <- vector("list", length(x)) for (i in 1:length(x)){ xList[[i]] <- xtable(x[[i]], caption = caption, label = label, align = align, digits = digitsList[[i]], display = displayList[[i]], ...) attr(xList[[i]], 'subheading') <- attr(x, 'subheadings')[[i]] } attr(xList, "message") <- attr(x, "message") attr(xList, "caption") <- caption attr(xList, "label") <- label class(xList) <- c("xtableList") return(xList) } print.xtableList <- function(x, type = getOption("xtable.type", "latex"), file = getOption("xtable.file", ""), append = getOption("xtable.append", FALSE), floating = getOption("xtable.floating", TRUE), floating.environment = getOption("xtable.floating.environment", "table"), table.placement = getOption("xtable.table.placement", "ht"), caption.placement = getOption("xtable.caption.placement", "bottom"), caption.width = getOption("xtable.caption.width", NULL), latex.environments = getOption("xtable.latex.environments", c("center")), tabular.environment = getOption("xtable.tabular.environment", "tabular"), size = getOption("xtable.size", NULL), hline.after = NULL, NA.string = getOption("xtable.NA.string", ""), include.rownames = getOption("xtable.include.rownames", TRUE), colnames.format = "single", only.contents = getOption("xtable.only.contents", FALSE), add.to.row = NULL, sanitize.text.function = getOption("xtable.sanitize.text.function", NULL), sanitize.rownames.function = getOption("xtable.sanitize.rownames.function", sanitize.text.function), sanitize.colnames.function = getOption("xtable.sanitize.colnames.function", sanitize.text.function), sanitize.subheadings.function = getOption("xtable.sanitize.subheadings.function", sanitize.text.function), sanitize.message.function = getOption("xtable.sanitize.message.function", sanitize.text.function), math.style.negative = getOption("xtable.math.style.negative", FALSE), math.style.exponents = getOption("xtable.math.style.exponents", FALSE), html.table.attributes = getOption("xtable.html.table.attributes", "border=1"), print.results = getOption("xtable.print.results", TRUE), format.args = getOption("xtable.format.args", NULL), rotate.rownames = getOption("xtable.rotate.rownames", FALSE), rotate.colnames = getOption("xtable.rotate.colnames", FALSE), booktabs = getOption("xtable.booktabs", FALSE), scalebox = getOption("xtable.scalebox", NULL), width = getOption("xtable.width", NULL), comment = getOption("xtable.comment", TRUE), timestamp = getOption("xtable.timestamp", date()), ...) { ## Get number of rows for each table in list of tables nCols <- dim(x[[1]])[2] rowNums <- sapply(x, dim)[1,] combinedRowNums <- cumsum(rowNums) combined <- do.call(rbind, x) if (type == "latex"){ ## Special treatment if using booktabs if (booktabs){ tRule <- "\\toprule" mRule <- "\\midrule" bRule <- "\\bottomrule" } else { tRule <- "\\hline" mRule <- "\\hline" bRule <- "\\hline" } ## Sanitize subheadings if required if (!is.null(sanitize.subheadings.function)) { for (i in 1:length(x)){ attr(x[[i]], 'subheading') <- sanitize.subheadings.function(attr(x[[i]], 'subheading')) } } ## Sanitize message if required if (!is.null(sanitize.message.function)) { xMessage <- attr(x, 'message') xMessage <- sapply(xMessage, sanitize.message.function) attr(x, 'message') <- xMessage } if (colnames.format == "single"){ add.to.row <- list(pos = NULL, command = NULL) add.to.row$pos <- as.list(c(0, combinedRowNums[-length(x)], dim(combined)[1])) command <- sapply(x, attr, "subheading") for (i in 1:length(x)){ if( !is.null(command[[i]]) ){ add.to.row$command[i] <- paste0(mRule,"\n\\multicolumn{", nCols, "}{l}{", command[[i]], "}\\\\\n") } else { add.to.row$command[i] <- paste0(mRule, "\n") } } ## Changed at request of Russ Lenth ## add.to.row$command[1:length(x)] <- ## paste0(mRule,"\n\\multicolumn{", nCols, "}{l}{", command, "}\\\\\n") if ( (booktabs) & length(attr(x, "message") > 0) ){ attr(x, "message")[1] <- paste0("\\rule{0em}{2.5ex}", attr(x, "message")[1]) } add.to.row$command[length(x) + 1] <- paste0("\n\\multicolumn{", nCols, "}{l}{", attr(x, "message"), "}\\\\\n", collapse = "") add.to.row$command[length(x) + 1] <- paste0(bRule, add.to.row$command[length(x) + 1]) class(combined) <- c("xtableList", "data.frame") hline.after <- c(-1) include.colnames <- TRUE } ## Create headings for columns if multiple headings are needed if (colnames.format == "multiple"){ if (is.null(sanitize.colnames.function)) { colHead <- names(x[[1]]) } else { colHead <- sanitize.colnames.function(names(x[[1]])) } if (rotate.colnames) { colHead <- paste("\\begin{sideways}", colHead, "\\end{sideways}") } colHead <- paste0(colHead, collapse = " & ") if (include.rownames) { colHead <- paste0(" & ", colHead) } colHead <- paste0(tRule, "\n", colHead, " \\\\", mRule, "\n") add.to.row <- list(pos = NULL, command = NULL) add.to.row$pos <- as.list(c(0, c(combinedRowNums[1:length(x)]))) command <- sapply(x, attr, "subheading") add.to.row$command[1] <- if( !is.null(command[[1]]) ){ add.to.row$command[1] <- paste0("\n\\multicolumn{", nCols, "}{l}{", command[[1]], "}\\\\ \n", colHead, "\n") } else { add.to.row$command[1] <- colHead } for (i in 2:length(x)) { add.to.row$command[i] <- if( !is.null(command[[i]]) ) { paste0(bRule, "\\\\ \n\\multicolumn{", nCols, "}{l}{", command[[i]], "}", "\\\\ \n", colHead) } else { add.to.row$command[i] <- paste0("\n", colHead) } } ## Changed at request of Russ Lenth ## add.to.row$command[1] <- ## paste0("\n\\multicolumn{", nCols, "}{l}{", command[1], ## "}", " \\\\ \n", ## colHead) ## add.to.row$command[2:length(x)] <- ## paste0(bRule, ## "\\\\ \n\\multicolumn{", nCols, "}{l}{", ## command[2:length(x)], "}", ## "\\\\ \n", ## colHead) if ( (booktabs) & length(attr(x, "message") > 0) ){ attr(x, "message")[1] <- paste0("\\rule{0em}{2.5ex}", attr(x, "message")[1]) } add.to.row$command[length(x) + 1] <- paste0("\n\\multicolumn{", nCols, "}{l}{", attr(x, "message"), "}\\\\\n", collapse = "") add.to.row$command[length(x) + 1] <- paste0(bRule, add.to.row$command[length(x) + 1]) class(combined) <- c("xtableList", "data.frame") hline.after <- NULL include.colnames <- FALSE } print.xtable(combined, type = type, floating = floating, floating.environment = floating.environment, table.placement = table.placement, caption.placement = caption.placement, caption.width = caption.width, latex.environments = latex.environments, tabular.environment = tabular.environment, size = size, hline.after = hline.after, NA.string = NA.string, include.rownames = include.rownames, include.colnames = include.colnames, only.contents = only.contents, add.to.row = add.to.row, sanitize.text.function = sanitize.text.function, sanitize.rownames.function = sanitize.rownames.function, sanitize.colnames.function = sanitize.colnames.function, math.style.negative = math.style.negative, math.style.exponents = math.style.exponents, html.table.attributes = html.table.attributes, print.results = print.results, format.args = format.args, rotate.rownames = rotate.rownames, rotate.colnames = rotate.colnames, booktabs = booktabs, scalebox = scalebox, width = width, comment = comment, timestamp = timestamp, ...) } else { stop("print.xtableList not yet implemented for this type") } } ### Uses xtableList xtableLSMeans <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...){ if (attr(x, "estName") == "lsmean"){ xList <- split(x, f = x[, 2]) for (i in 1:length(xList)){ xList[[i]] <- as.data.frame(xList[[i]][, -2]) } attr(xList, "subheadings") <- paste0(dimnames(x)[[2]][2], " = ", levels(x[[2]])) attr(xList, "message") <- c("", attr(x, "mesg")) xList <- xtableList(xList, caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...) } else { xList <- x xList <- xtable.data.frame(xList, caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...) } return(xList) } xtable/R/table.attributes.R0000644000176200001440000001276412644575105015354 0ustar liggesusers### xtable package ### ### Produce LaTeX and HTML tables from R objects. ### ### Copyright 2000-2013 David B. Dahl ### ### This file is part of the `xtable' library for R and related languages. ### It is made available under the terms of the GNU General Public ### License, version 2, or at your option, any later version, ### incorporated herein by reference. ### ### This program is distributed in the hope that it will be ### useful, but WITHOUT ANY WARRANTY; without even the implied ### warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR ### PURPOSE. See the GNU General Public License for more ### details. ### ### You should have received a copy of the GNU General Public ### License along with this program; if not, write to the Free ### Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, ### MA 02111-1307, USA "caption<-" <- function(x, value) UseMethod("caption<-") "caption<-.xtable" <- function(x, value) { if (length(value) > 2) stop("\"caption\" must have length 1 or 2") attr(x, "caption") <- value return(x) } caption <- function(x, ...) UseMethod("caption") caption.xtable <- function(x, ...) { return(attr(x, "caption", exact = TRUE)) } "label<-" <- function(x, value) UseMethod("label<-") "label<-.xtable" <- function(x, value) { if (length(value) > 1) stop("\"label\" must have length 1") attr(x, "label") <- value return(x) } label <- function(x, ...) UseMethod("label") label.xtable <- function(x, ...) { return(attr(x, "label", exact = TRUE)) } "align<-" <- function(x, value) UseMethod("align<-") ### Based on contribution from Jonathan Swinton ### in e-mail dated Wednesday, January 17, 2007 .alignStringToVector <- function(aString) { ## poor mans parsing - separating string of form "l{2in}llr|p{1in}c|{1in}" ## into "l{2in}" "l" "l" "r" "|" "p{1in}" "c" "|{1in}" aString.Align <- character(0); aString.Width <- character(0); wString <- aString while( nchar(wString) > 0) { aString.Align <- c(aString.Align, substr(wString, 1, 1)) ## is it followed by a brace? thisWidth <- "" if ( nchar(wString) > 1 & substr(wString, 2, 2) == "{") { beforeNextBrace <- regexpr("[^\\]\\}", wString) if (beforeNextBrace <0 ) { stop("No closing } in align string") } thisWidth <- substr(wString, 2, beforeNextBrace + 1) wString <- substr(wString, beforeNextBrace + 2, nchar(wString)) } else { wString <- substr(wString, 2, nchar(wString)) } aString.Width <- c(aString.Width, thisWidth) } alignAllowed <- c("l","r","p","c","|","X") if (any( !(aString.Align %in% alignAllowed))) { warning("Nonstandard alignments in align string") } res <- paste(aString.Align, aString.Width, sep = "") res } ###.alignStringToVector ("l{2in}llr|p{1in}c|{1in}") ###.alignStringToVector ("l{2in}llr|p{1in}c|") ### latex syntax error, but gives wrong alignment ###.alignStringToVector ("{2in}llr|p{1in}c|") ###.alignStringToVector("llllp{3cm}") "align<-.xtable" <- function(x, value) { ### Based on contribution from Benno ### in e-mail dated Wednesday, December 01, 2004 ### Based on contribution from Jonathan Swinton ### in e-mail dated Wednesday, January 17, 2007 ## cat("%", value, "\n") if ( (!is.null(value)) && ( is.character(value) ) && ( length(value) == 1 ) && ( nchar(value) > 1 ) ) { value <- .alignStringToVector(value) } ## That should have checked we had only lrcp| ## but what if the "if statement" is false? ## For simplicity, deleting check present in version 1.4-2 and earlier. c.value <- if (any(!is.na(match(value, "|")))) { value[-which(value == '|')] } else { value } if (length(c.value) != ncol(x) + 1) stop(paste("\"align\" must have length equal to", ncol(x) + 1, "( ncol(x) + 1 )")) attr(x, "align") <- value return(x) } align <- function(x, ...) UseMethod("align") align.xtable <- function(x, ...) { return(attr(x, "align", exact = TRUE)) } "digits<-" <- function(x, value) UseMethod("digits<-") "digits<-.xtable" <- function(x, value) { if( is.matrix( value ) ) { if( ncol( value ) != ncol(x) + 1 || nrow( value ) != nrow(x) ) { stop( "if argument 'digits' is a matrix, it must have columns equal", " to ", ncol(x) + 1, " ( ncol(x) + 1 ) and rows equal to ", nrow(x), " ( nrow( x )" ) } } else { if( length(value) == 1 ) { value <- rep(value, ncol(x) + 1) } if( length( value ) > 1 & length( value ) != ncol(x) + 1 ) { stop( "if argument 'digits' is a vector of length more than one, it must have length equal", " to ", ncol(x) + 1, " ( ncol(x) + 1 )" ) } } if (!is.numeric(value)) stop("\"digits\" must be numeric") attr(x, "digits") <- value return(x) } digits <- function(x, ...) UseMethod("digits") digits.xtable <- function(x, ...) { return(attr(x, "digits", exact = TRUE)) } "display<-" <- function(x, value) UseMethod("display<-") "display<-.xtable" <- function(x, value) { if (length(value) != ncol(x) + 1) stop(paste("\"display\" must have length equal to", ncol(x) + 1, "( ncol(x) + 1 )")) if (!all(!is.na(match(value, c("d","f","e","E","g","G","fg","s"))))) stop("\"display\" must be in {\"d\",\"f\",\"e\",\"E\",\"g\",\"G\", \"fg\", \"s\"}") attr(x, "display") <- value return(x) } display <- function(x, ...) UseMethod("display") display.xtable <- function(x, ...) { return(attr(x, "display", exact = TRUE)) } xtable/R/xtableMatharray.R0000644000176200001440000000263412645356525015227 0ustar liggesusers### xtableMatharray object ### To deal with numeric arrays such as a variance-covariance matrix ### From a request by James Curran, 16 October 2015 xtableMatharray <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { class(x) <- c("xtableMatharray","matrix") xtbl <- xtable.matrix(x, caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...) class(xtbl) <- c("xtableMatharray","xtable","data.frame") return(xtbl) } print.xtableMatharray <- function(x, print.results = TRUE, format.args = getOption("xtable.format.args", NULL), scalebox = getOption("xtable.scalebox", NULL), comment = FALSE, timestamp = NULL, ...) { class(x) <- c("xtableMatharray","data.frame") print.xtable(x, floating = FALSE, tabular.environment = 'array', include.rownames = FALSE, include.colnames = FALSE, hline.after = NULL, print.results = print.results, format.args = format.args, scalebox = scalebox, comment = comment, timestamp = timestamp, ...) } xtable/R/xtableFtable.R0000644000176200001440000001631112652530064014457 0ustar liggesusers### ftable objects, requested by Charles Roosen ### Feature request #2248, 2/9/2012 xtableFtable <- function(x, caption = NULL, label = NULL, align = NULL, digits = 0, display = NULL, quote = FALSE, method = c("non.compact", "row.compact", "col.compact", "compact"), lsep = " $\\vert$ ", ...) { method <- match.arg(method) saveMethod <- method xDim <- dim(x) nRowVars <- length(attr(x, "row.vars")) nColVars <- length(attr(x, "col.vars")) if (nRowVars == 0){ if (method =="col.compact"){ method <- "non.compact" } else if (method == "compact"){ method <- "row.compact" } } if (nColVars == 0){ if (method =="row.compact"){ method <- "non.compact" } else if (method == "compact"){ method <- "col.compact" } } if (method == "non.compact"){ nCharCols <- nRowVars + 2 nCharRows <- nColVars + 1 } if (method == "row.compact"){ nCharCols <- nRowVars + 2 nCharRows <- nColVars } if (method == "col.compact"){ nCharCols <- nRowVars + 1 nCharRows <- nColVars + 1 } if (method == "compact"){ nCharCols <- nRowVars + 1 nCharRows <- nColVars } if(is.null(align)) { align <- c(rep("l", nCharCols - 1), "l |", rep("r", xDim[2])) } if(is.null(display)) { display <- c(rep("s", nCharCols), rep("d", xDim[2])) } attr(x, "ftableCaption") <- caption attr(x, "ftableLabel") <- label attr(x, "ftableAlign") <- align attr(x, "ftableDigits") <- digits attr(x, "quote") <- quote attr(x, "ftableDisplay") <- display attr(x, "method") <- method attr(x, "lsep") <- lsep attr(x, "nChars") <- c(nCharRows, nCharCols) class(x) <- c("xtableFtable", "ftable") return(x) } print.xtableFtable <- function(x, type = getOption("xtable.type", "latex"), file = getOption("xtable.file", ""), append = getOption("xtable.append", FALSE), floating = getOption("xtable.floating", TRUE), floating.environment = getOption("xtable.floating.environment", "table"), table.placement = getOption("xtable.table.placement", "ht"), caption.placement = getOption("xtable.caption.placement", "bottom"), caption.width = getOption("xtable.caption.width", NULL), latex.environments = getOption("xtable.latex.environments", c("center")), tabular.environment = getOption("xtable.tabular.environment", "tabular"), size = getOption("xtable.size", NULL), hline.after = getOption("xtable.hline.after", NULL), NA.string = getOption("xtable.NA.string", ""), only.contents = getOption("xtable.only.contents", FALSE), add.to.row = getOption("xtable.add.to.row", NULL), sanitize.text.function = getOption("xtable.sanitize.text.function", as.is), sanitize.rownames.function = getOption("xtable.sanitize.rownames.function", sanitize.text.function), sanitize.colnames.function = getOption("xtable.sanitize.colnames.function", sanitize.text.function), math.style.negative = getOption("xtable.math.style.negative", FALSE), math.style.exponents = getOption("xtable.math.style.exponents", FALSE), html.table.attributes = getOption("xtable.html.table.attributes", "border=1"), print.results = getOption("xtable.print.results", TRUE), format.args = getOption("xtable.format.args", NULL), rotate.rownames = getOption("xtable.rotate.rownames", FALSE), rotate.colnames = getOption("xtable.rotate.colnames", FALSE), booktabs = getOption("xtable.booktabs", FALSE), scalebox = getOption("xtable.scalebox", NULL), width = getOption("xtable.width", NULL), comment = getOption("xtable.comment", TRUE), timestamp = getOption("xtable.timestamp", date()), ...) { if (type == "latex"){ ## extract the information in the attributes caption <- attr(x, "ftableCaption") label <- attr(x, "ftableLabel") align <- attr(x, "ftableAlign") digits <- attr(x, "ftableDigits") quote <- attr(x, "quote") digits <- attr(x, "ftabelDigits") method <- attr(x, "method") lsep <- attr(x, "lsep") nCharRows <- attr(x, "nChars")[1] nCharCols <- attr(x, "nChars")[2] nRowVars <- length(attr(x, "row.vars")) nColVars <- length(attr(x, "col.vars")) ## change class so format method will find format.ftable ## even though format.ftable is not exported from 'stats' class(x) <- "ftable" fmtFtbl <- format(x, quote = quote, digits = digits, method = method, lsep = lsep) attr(fmtFtbl, "caption") <- caption attr(fmtFtbl, "label") <- label ## sanitization is possible for row names and/or column names ## row names if (is.null(sanitize.rownames.function)) { fmtFtbl[nCharRows, 1:nRowVars] <- sanitize(fmtFtbl[nCharRows, 1:nRowVars], type = type) } else { fmtFtbl[nCharRows, 1:nRowVars] <- sanitize.rownames.function(fmtFtbl[nCharRows, 1:nRowVars]) } ## column names if (is.null(sanitize.colnames.function)) { fmtFtbl[1:nColVars, nCharCols - 1] <- sanitize(fmtFtbl[1:nColVars, nCharCols - 1], type = type) } else { fmtFtbl[1:nColVars, nCharCols - 1] <- sanitize.colnames.function(fmtFtbl[1:nColVars, nCharCols - 1]) } ## rotations are possible if (rotate.rownames){ fmtFtbl[1:dim(fmtFtbl)[1], 1:(nCharCols - 1)] <- paste0("\\begin{sideways} ", fmtFtbl[1:dim(fmtFtbl)[1], 1:(nCharCols - 1)], "\\end{sideways}") } if (rotate.colnames){ if (rotate.rownames){ fmtFtbl[1:(nCharRows), (nCharCols):dim(fmtFtbl)[2]] <- paste0("\\begin{sideways} ", fmtFtbl[1:(nCharRows), (nCharCols):dim(fmtFtbl)[2]], "\\end{sideways}") } else { fmtFtbl[1:(nCharRows), 1:dim(fmtFtbl)[2]] <- paste0("\\begin{sideways} ", fmtFtbl[1:(nCharRows), 1:dim(fmtFtbl)[2]], "\\end{sideways}") } } ## booktabs is incompatible with vertical lines in tables if (booktabs) align <- gsub("|","", align, fixed = TRUE) attr(fmtFtbl, "align") <- align attr(fmtFtbl, "digits") <- digits attr(fmtFtbl, "quote") <- quote attr(fmtFtbl, "display") <- display ## labels should be left aligned for (i in 1:nCharRows){ fmtFtbl[i, nCharCols:dim(fmtFtbl)[2]] <- paste0("\\multicolumn{1}{l}{ ", fmtFtbl[i, nCharCols:dim(fmtFtbl)[2]], "}") } if(is.null(hline.after)) { hline.after <- c(-1, nCharRows, dim(fmtFtbl)[1]) } print.xtable(fmtFtbl, hline.after = hline.after, include.rownames = FALSE, include.colnames = FALSE, booktabs = booktabs, sanitize.text.function = as.is) } else { stop("print.xtableFtable not yet implemented for this type") } } ## format.xtableFtable <- function(x, quote = TRUE, digits = getOption("digits"), ## method = c("non.compact", "row.compact", ## "col.compact", "compact"), ## lsep = " | ", ...){ ## class(x) <- "ftable" ## format(x, quote = quote, digits = digits, ## method = method, lsep = lsep, ...) ## } xtable/R/sanitize.R0000644000176200001440000000661612654004206013713 0ustar liggesuserssanitize <- function(str, type = "latex") { if(type == "latex"){ result <- str result <- gsub("\\\\", "SANITIZE.BACKSLASH", result) result <- gsub("$", "\\$", result, fixed = TRUE) result <- gsub(">", "$>$", result, fixed = TRUE) result <- gsub("<", "$<$", result, fixed = TRUE) result <- gsub("|", "$|$", result, fixed = TRUE) result <- gsub("{", "\\{", result, fixed = TRUE) result <- gsub("}", "\\}", result, fixed = TRUE) result <- gsub("%", "\\%", result, fixed = TRUE) result <- gsub("&", "\\&", result, fixed = TRUE) result <- gsub("_", "\\_", result, fixed = TRUE) result <- gsub("#", "\\#", result, fixed = TRUE) result <- gsub("^", "\\verb|^|", result, fixed = TRUE) result <- gsub("~", "\\~{}", result, fixed = TRUE) result <- gsub("SANITIZE.BACKSLASH", "$\\backslash$", result, fixed = TRUE) return(result) } else { result <- str result <- gsub("&", "&", result, fixed = TRUE) result <- gsub(">", ">", result, fixed = TRUE) result <- gsub("<", "<", result, fixed = TRUE) return(result) } } sanitize.numbers <- function(str, type, math.style.negative = FALSE, math.style.exponents = FALSE){ if (type == "latex"){ result <- str if ( math.style.negative ) { for(i in 1:length(str)) { result[i] <- gsub("-", "$-$", result[i], fixed = TRUE) } } if ( math.style.exponents ) { if (is.logical(math.style.exponents) && ! math.style.exponents ) { } else if (is.logical(math.style.exponents) && math.style.exponents || math.style.exponents == "$$" ) { for(i in 1:length(str)) { result[i] <- gsub("^\\$?(-?)\\$?([0-9.]+)[eE]\\$?(-?)\\+?\\$?0*(\\d+)$", "$\\1\\2 \\\\times 10^{\\3\\4}$", result[i]) } } else if (math.style.exponents == "ensuremath") { for(i in 1:length(str)) { result[i] <- gsub("^\\$?(-?)\\$?([0-9.]+)[eE]\\$?(-?)\\+?\\$?0*(\\d+)$", "\\\\ensuremath{\\1\\2 \\\\times 10^{\\3\\4}}", result[i]) } } else if (math.style.exponents == "UTF8" || math.style.exponents == "UTF-8") { for(i in 1:length(str)) { ## this code turns 1e5 into a UTF-8 representation of 1\times10^5 if (all(grepl("^\\$?(-?)\\$?([0-9.]+)[eE]\\$?(-?)\\+?\\$?0*(\\d+)$", result[i]))) { temp <- strsplit(result[i],"eE",result[i]) result[i] <- paste0(temp[1], "\u00d710", chartr("-1234567890", "\u207b\u00b9\u00b2\u00b3\u2074\u2075\u20746\u20747\u20748\u20749\u2070", temp[2])) } } } } return(result) } else { return(str) } } sanitize.final <- function(str, type){ if (type == "latex"){ return(str) } else { str$text <- gsub(" *", " ", str$text, fixed = TRUE) str$text <- gsub(' align="left"', "", str$text, fixed = TRUE) return(str) } } ### Some trivial helper functions ### Suggested by Stefan Edwards, sme@iysik.com ### Helper function for disabling sanitizing as.is <- function(str) {str} ### Helper function for embedding names in a math environment as.math <- function(str, ...) { paste0('$',str,'$', ...) } xtable/R/print.xtable.R0000644000176200001440000005772612645045005014511 0ustar liggesusers### xtable package ### ### Produce LaTeX and HTML tables from R objects. ### ### Copyright 2000-2013 David B. Dahl ### ### Maintained by David Scott ### ### This file is part of the `xtable' library for R and related languages. ### It is made available under the terms of the GNU General Public ### License, version 2, or at your option, any later version, ### incorporated herein by reference. ### ### This program is distributed in the hope that it will be ### useful, but WITHOUT ANY WARRANTY; without even the implied ### warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR ### PURPOSE. See the GNU General Public License for more ### details. ### ### You should have received a copy of the GNU General Public ### License along with this program; if not, write to the Free ### Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, ### MA 02111-1307, USA print.xtable <- function(x, type = getOption("xtable.type", "latex"), file = getOption("xtable.file", ""), append = getOption("xtable.append", FALSE), floating = getOption("xtable.floating", TRUE), floating.environment = getOption("xtable.floating.environment", "table"), table.placement = getOption("xtable.table.placement", "ht"), caption.placement = getOption("xtable.caption.placement", "bottom"), caption.width = getOption("xtable.caption.width", NULL), latex.environments = getOption("xtable.latex.environments", c("center")), tabular.environment = getOption("xtable.tabular.environment", "tabular"), size = getOption("xtable.size", NULL), hline.after = getOption("xtable.hline.after", c(-1,0,nrow(x))), NA.string = getOption("xtable.NA.string", ""), include.rownames = getOption("xtable.include.rownames", TRUE), include.colnames = getOption("xtable.include.colnames", TRUE), only.contents = getOption("xtable.only.contents", FALSE), add.to.row = getOption("xtable.add.to.row", NULL), sanitize.text.function = getOption("xtable.sanitize.text.function", NULL), sanitize.rownames.function = getOption("xtable.sanitize.rownames.function", sanitize.text.function), sanitize.colnames.function = getOption("xtable.sanitize.colnames.function", sanitize.text.function), math.style.negative = getOption("xtable.math.style.negative", FALSE), math.style.exponents = getOption("xtable.math.style.exponents", FALSE), html.table.attributes = getOption("xtable.html.table.attributes", "border=1"), print.results = getOption("xtable.print.results", TRUE), format.args = getOption("xtable.format.args", NULL), rotate.rownames = getOption("xtable.rotate.rownames", FALSE), rotate.colnames = getOption("xtable.rotate.colnames", FALSE), booktabs = getOption("xtable.booktabs", FALSE), scalebox = getOption("xtable.scalebox", NULL), width = getOption("xtable.width", NULL), comment = getOption("xtable.comment", TRUE), timestamp = getOption("xtable.timestamp", date()), ...) { ## If caption is length 2, treat the second value as the "short caption" caption <- attr(x,"caption",exact = TRUE) short.caption <- NULL if (!is.null(caption) && length(caption) > 1){ short.caption <- caption[2] caption <- caption[1] } ## Claudio Agostinelli dated 2006-07-28 hline.after ## By default it print an \hline before and after the columns names ## independently they are printed or not and at the end of the table ## Old code that set hline.after should include c(-1, 0, nrow(x)) in the ## hline.after vector ## If you do not want any \hline inside the data, set hline.after to NULL ## PHEADER instead the string '\\hline\n' is used in the code ## Now hline.after counts how many time a position appear ## I left an automatic PHEADER in the longtable is this correct? ## Claudio Agostinelli dated 2006-07-28 include.rownames, ## include.colnames pos <- 0 if (include.rownames) pos <- 1 ## Claudio Agostinelli dated 2006-07-28 ## hline.after checks if (any(hline.after < -1) | any(hline.after > nrow(x))) { stop("'hline.after' must be inside [-1, nrow(x)]") } ## Claudio Agostinelli dated 2006-07-28 ## add.to.row checks if (!is.null(add.to.row)) { if (is.list(add.to.row) && length(add.to.row) == 2) { if (is.null(names(add.to.row))) { names(add.to.row) <- c('pos', 'command') } else if (any(sort(names(add.to.row))!= c('command', 'pos'))) { stop("the names of the elements of 'add.to.row' must be 'pos' and 'command'") } if (is.list(add.to.row$pos) && is.vector(add.to.row$command, mode = 'character')) { if ((npos <- length(add.to.row$pos)) != length(add.to.row$command)) { stop("the length of 'add.to.row$pos' must be equal to the length of 'add.to.row$command'") } if (any(unlist(add.to.row$pos) < -1) | any(unlist(add.to.row$pos) > nrow(x))) { stop("the values in add.to.row$pos must be inside the interval [-1, nrow(x)]") } } else { stop("the first argument ('pos') of 'add.to.row' must be a list, the second argument ('command') must be a vector of mode character") } } else { stop("'add.to.row' argument must be a list of length 2") } } else { add.to.row <- list(pos = list(), command = vector(length = 0, mode = "character")) npos <- 0 } ## Claudio Agostinelli dated 2006-07-28 add.to.row ## Add further commands at the end of rows if (type == "latex") { ## Original code before changes in version 1.6-1 ## PHEADER <- "\\hline\n" ## booktabs code from Matthieu Stigler , ## 1 Feb 2012 if(!booktabs){ PHEADER <- "\\hline\n" } else { ## This code replaced to fix bug #2309, David Scott, 8 Jan 2014 ## PHEADER <- ifelse(-1%in%hline.after, "\\toprule\n", "") ## if(0%in%hline.after) { ## PHEADER <- c(PHEADER, "\\midrule\n") ## } ## if(nrow(x)%in%hline.after) { ## PHEADER <- c(PHEADER, "\\bottomrule\n") ## } if (is.null(hline.after)){ PHEADER <- "" } else { hline.after <- sort(hline.after) PHEADER <- rep("\\midrule\n", length(hline.after)) if (hline.after[1] == -1) { PHEADER[1] <- "\\toprule\n" } if (hline.after[length(hline.after)] == nrow(x)) { PHEADER[length(hline.after)] <- "\\bottomrule\n" } } } } else { PHEADER <- "" } lastcol <- rep(" ", nrow(x)+2) if (!is.null(hline.after)) { ## booktabs change - Matthieu Stigler: fill the hline arguments ## separately, 1 Feb 2012 ## ## Code before booktabs change was: ## add.to.row$pos[[npos+1]] <- hline.after if (!booktabs){ add.to.row$pos[[npos+1]] <- hline.after } else { for(i in 1:length(hline.after)) { add.to.row$pos[[npos+i]] <- hline.after[i] } } add.to.row$command <- c(add.to.row$command, PHEADER) } if ( length(add.to.row$command) > 0 ) { for (i in 1:length(add.to.row$command)) { addpos <- add.to.row$pos[[i]] freq <- table(addpos) addpos <- unique(addpos) for (j in 1:length(addpos)) { lastcol[addpos[j]+2] <- paste(lastcol[addpos[j]+2], paste(rep(add.to.row$command[i], freq[j]), sep = "", collapse = ""), sep = " ") } } } if (length(type)>1) stop("\"type\" must have length 1") type <- tolower(type) if (!all(!is.na(match(type, c("latex","html"))))) { stop("\"type\" must be in {\"latex\", \"html\"}") } ## Disabling the check on known floating environments as many users ## want to use additional environments. ## if (!all(!is.na(match(floating.environment, ## c("table","table*","sidewaystable", ## "margintable"))))) { ## stop("\"type\" must be in {\"table\", \"table*\", \"sidewaystable\", \"margintable\"}") ## } if (("margintable" %in% floating.environment) & (!is.null(table.placement))) { warning("margintable does not allow for table placement; setting table.placement to NULL") table.placement <- NULL } if (!is.null(table.placement) && !all(!is.na(match(unlist(strsplit(table.placement, split = "")), c("H","h","t","b","p","!"))))) { stop("\"table.placement\" must contain only elements of {\"h\",\"t\",\"b\",\"p\",\"!\"}") } if (!all(!is.na(match(caption.placement, c("bottom","top"))))) { stop("\"caption.placement\" must be either {\"bottom\",\"top\"}") } if (type == "latex") { BCOMMENT <- "% " ECOMMENT <- "\n" ## See e-mail from "John S. Walker " dated 5-19-2003 ## regarding "texfloat" ## See e-mail form "Fernando Henrique Ferraz P. da Rosa" ## " dated 10-28-2005 regarding "longtable" if ( tabular.environment == "longtable" & floating == TRUE ) { warning("Attempt to use \"longtable\" with floating = TRUE. Changing to FALSE.") floating <- FALSE } if ( floating == TRUE ) { ## See e-mail from "Pfaff, Bernhard " ## dated 7-09-2003 regarding "suggestion for an amendment of ## the source" ## See e-mail from "Mitchell, David" ## " dated 2003-07-09 regarding ## "Additions to R xtable package" ## See e-mail from "Garbade, Sven" ## dated 2006-05-22 ## regarding the floating environment. BTABLE <- paste("\\begin{", floating.environment, "}", ifelse(!is.null(table.placement), paste("[", table.placement, "]", sep = ""), ""), "\n", sep = "") if ( is.null(latex.environments) || (length(latex.environments) == 0) ) { BENVIRONMENT <- "" EENVIRONMENT <- "" } else { BENVIRONMENT <- "" EENVIRONMENT <- "" if ("center" %in% latex.environments){ BENVIRONMENT <- paste(BENVIRONMENT, "\\centering\n", sep = "") } for (i in 1:length(latex.environments)) { if (latex.environments[i] == "") next if (latex.environments[i] != "center"){ BENVIRONMENT <- paste(BENVIRONMENT, "\\begin{", latex.environments[i], "}\n", sep = "") EENVIRONMENT <- paste("\\end{", latex.environments[i], "}\n", EENVIRONMENT, sep = "") } } } ETABLE <- paste("\\end{", floating.environment, "}\n", sep = "") } else { BTABLE <- "" ETABLE <- "" BENVIRONMENT <- "" EENVIRONMENT <- "" } tmp.index.start <- 1 if ( ! include.rownames ) { while ( attr(x, "align", exact = TRUE)[tmp.index.start] == '|' ) tmp.index.start <- tmp.index.start + 1 tmp.index.start <- tmp.index.start + 1 } ## Added "width" argument for use with "tabular*" or ## "tabularx" environments - CR, 7/2/12 if (is.null(width)){ WIDTH <-"" } else if (is.element(tabular.environment, c("tabular", "longtable"))){ warning("Ignoring 'width' argument. The 'tabular' and 'longtable' environments do not support a width specification. Use another environment such as 'tabular*' or 'tabularx' to specify the width.") WIDTH <- "" } else { WIDTH <- paste("{", width, "}", sep = "") } BTABULAR <- paste("\\begin{", tabular.environment, "}", WIDTH, "{", paste(c(attr(x, "align", exact = TRUE)[ tmp.index.start:length(attr(x, "align", exact = TRUE))], "}\n"), sep = "", collapse = ""), sep = "") ## fix 10-26-09 (robert.castelo@upf.edu) the following ## 'if' condition is added here to support ## a caption on the top of a longtable if (tabular.environment == "longtable" && caption.placement == "top") { if (is.null(short.caption)){ BCAPTION <- "\\caption{" } else { BCAPTION <- paste("\\caption[", short.caption, "]{", sep = "") } ECAPTION <- "} \\\\ \n" if ((!is.null(caption)) && (type == "latex")) { BTABULAR <- paste(BTABULAR, BCAPTION, caption, ECAPTION, sep = "") } } ## Claudio Agostinelli dated 2006-07-28 ## add.to.row position -1 BTABULAR <- paste(BTABULAR, lastcol[1], sep = "") ## the \hline at the end, if present, is set in full matrix ETABULAR <- paste("\\end{", tabular.environment, "}\n", sep = "") ## Add scalebox - CR, 7/2/12 if (!is.null(scalebox)){ BTABULAR <- paste("\\scalebox{", scalebox, "}{\n", BTABULAR, sep = "") ETABULAR <- paste(ETABULAR, "}\n", sep = "") } ## BSIZE contributed by Benno in e-mail ## dated Wednesday, December 01, 2004 if (is.null(size) || !is.character(size)) { BSIZE <- "" ESIZE <- "" } else { if(length(grep("^\\\\", size)) == 0){ size <- paste("\\", size, sep = "") } ## Change suggested by Claudius Loehnert reported in Bug #6260 ## BSIZE <- paste("{", size, "\n", sep = "") ## ESIZE <- "{\n" BSIZE <- paste("\\begingroup", size, "\n", sep = "") ESIZE <- "\\endgroup\n" } BLABEL <- "\\label{" ELABEL <- "}\n" ## Added caption width (jeff.laake@nooa.gov) if(!is.null(caption.width)){ BCAPTION <- paste("\\parbox{",caption.width,"}{",sep="") ECAPTION <- "}" } else { BCAPTION <- NULL ECAPTION <- NULL } if (is.null(short.caption)){ BCAPTION <- paste(BCAPTION,"\\caption{",sep="") } else { BCAPTION <- paste(BCAPTION,"\\caption[", short.caption, "]{", sep="") } ECAPTION <- paste(ECAPTION,"} \n",sep="") BROW <- "" EROW <- " \\\\ \n" BTH <- "" ETH <- "" STH <- " & " BTD1 <- " & " BTD2 <- "" BTD3 <- "" ETD <- "" } else { BCOMMENT <- "\n" BTABLE <- paste("
    \n", sep = "") ETABLE <- "
    \n" BENVIRONMENT <- "" EENVIRONMENT <- "" BTABULAR <- "" ETABULAR <- "" BSIZE <- "" ESIZE <- "" BLABEL <- "
    \n" BCAPTION <- paste(" ", sep = "") ECAPTION <- " \n" BROW <- "" EROW <- " \n" BTH <- " " ETH <- " " STH <- " " BTD1 <- " ## in e-mail dated Wednesday, January 17, 2007 BTD2[regexpr("^p", BTD2)>0] <- "left" BTD2[BTD2 == "r"] <- "right" BTD2[BTD2 == "l"] <- "left" BTD2[BTD2 == "c"] <- "center" BTD3 <- "\"> " ETD <- " " } result <- string("", file = file, append = append) info <- R.Version() ## modified Claudio Agostinelli dated 2006-07-28 ## to set automatically the package version if (comment){ result <- result + BCOMMENT + type + " table generated in " + info$language + " " + info$major + "." + info$minor + " by xtable " + packageDescription('xtable')$Version + " package" + ECOMMENT if (!is.null(timestamp)){ result <- result + BCOMMENT + timestamp + ECOMMENT } } ## Claudio Agostinelli dated 2006-07-28 only.contents if (!only.contents) { result <- result + BTABLE result <- result + BENVIRONMENT if ( floating == TRUE ) { if ((!is.null(caption)) && (type == "html" ||caption.placement == "top")) { result <- result + BCAPTION + caption + ECAPTION } if (!is.null(attr(x, "label", exact = TRUE)) && (type == "latex" && caption.placement == "top")) { result <- result + BLABEL + attr(x, "label", exact = TRUE) + ELABEL } } result <- result + BSIZE result <- result + BTABULAR } ## Claudio Agostinelli dated 2006-07-28 ## include.colnames, include.rownames if (include.colnames) { result <- result + BROW + BTH if (include.rownames) { result <- result + STH } ## David G. Whiting in e-mail 2007-10-09 if (is.null(sanitize.colnames.function)) { CNAMES <- sanitize(names(x), type = type) } else { CNAMES <- sanitize.colnames.function(names(x)) } if (rotate.colnames) { ##added by Markus Loecher, 2009-11-16 CNAMES <- paste("\\begin{sideways}", CNAMES, "\\end{sideways}") } result <- result + paste(CNAMES, collapse = STH) result <- result + ETH + EROW } cols <- matrix("", nrow = nrow(x), ncol = ncol(x)+pos) if (include.rownames) { ## David G. Whiting in e-mail 2007-10-09 if (is.null(sanitize.rownames.function)) { RNAMES <- sanitize(row.names(x), type = type) } else { RNAMES <- sanitize.rownames.function(row.names(x)) } if (rotate.rownames) { ##added by Markus Loecher, 2009-11-16 RNAMES <- paste("\\begin{sideways}", RNAMES, "\\end{sideways}") } cols[, 1] <- RNAMES } ## Begin vectorizing the formatting code by Ian Fellows [ian@fellstat.com] ## 06 Dec 2011 ## ## disp <- function(y) { ## if (is.factor(y)) { ## y <- levels(y)[y] ## } ## if (is.list(y)) { ## y <- unlist(y) ## } ## return(y) ## } varying.digits <- is.matrix( attr( x, "digits", exact = TRUE ) ) ## Code for letting "digits" be a matrix was provided by ## Arne Henningsen ## in e-mail dated 2005-06-04. ##if( !varying.digits ) { ## modified Claudio Agostinelli dated 2006-07-28 ## attr(x,"digits") <- matrix( attr( x, "digits",exact=TRUE ), ## nrow = nrow(x), ncol = ncol(x)+1, byrow = TRUE ) ##} for(i in 1:ncol(x)) { xcol <- x[, i] if(is.factor(xcol)) xcol <- as.character(xcol) if(is.list(xcol)) xcol <- sapply(xcol, unlist) ina <- is.na(xcol) is.numeric.column <- is.numeric(xcol) if(is.character(xcol)) { cols[, i+pos] <- xcol } else { if (is.null(format.args)){ format.args <- list() } if (is.null(format.args$decimal.mark)){ format.args$decimal.mark <- options()$OutDec } if(!varying.digits){ curFormatArgs <- c(list( x = xcol, format = ifelse(attr(x, "digits", exact = TRUE )[i+1] < 0, "E", attr(x, "display", exact = TRUE )[i+1]), digits = abs(attr(x, "digits", exact = TRUE )[i+1])), format.args) cols[, i+pos] <- do.call("formatC", curFormatArgs) }else{ for( j in 1:nrow( cols ) ) { curFormatArgs <- c(list( x = xcol[j], format = ifelse(attr(x, "digits", exact = TRUE )[j, i+1] < 0, "E", attr(x, "display", exact = TRUE )[i+1]), digits = abs(attr(x, "digits", exact = TRUE )[j, i+1])), format.args) cols[j, i+pos] <- do.call("formatC", curFormatArgs) } } } ## End Ian Fellows changes if ( any(ina) ) cols[ina, i+pos] <- NA.string ## Based on contribution from Jonathan Swinton ## in e-mail dated Wednesday, January 17, 2007 if ( is.numeric.column ) { cols[, i+pos] <- sanitize.numbers(cols[, i+pos], type = type, math.style.negative = math.style.negative, math.style.exponents = math.style.exponents) } else { if (is.null(sanitize.text.function)) { cols[, i+pos] <- sanitize(cols[, i+pos], type = type) } else { cols[, i+pos] <- sanitize.text.function(cols[, i+pos]) } } } multiplier <- 5 full <- matrix("", nrow = nrow(x), ncol = multiplier*(ncol(x)+pos)+2) full[, 1] <- BROW full[, multiplier*(0:(ncol(x)+pos-1))+2] <- BTD1 full[, multiplier*(0:(ncol(x)+pos-1))+3] <- BTD2 full[, multiplier*(0:(ncol(x)+pos-1))+4] <- BTD3 full[, multiplier*(0:(ncol(x)+pos-1))+5] <- cols full[, multiplier*(0:(ncol(x)+pos-1))+6] <- ETD full[, multiplier*(ncol(x)+pos)+2] <- paste(EROW, lastcol[-(1:2)], sep = " ") if (type == "latex") full[, 2] <- "" result <- result + lastcol[2] + paste(t(full), collapse = "") if (!only.contents) { if (tabular.environment == "longtable") { ## booktabs change added the if() - 1 Feb 2012 if(!booktabs) { result <- result + PHEADER } ## fix 10-27-09 Liviu Andronic (landronimirc@gmail.com) the ## following 'if' condition is inserted in order to avoid ## that bottom caption interferes with a top caption of a longtable if(caption.placement == "bottom"){ if ((!is.null(caption)) && (type == "latex")) { result <- result + BCAPTION + caption + ECAPTION } } if (!is.null(attr(x, "label", exact = TRUE))) { result <- result + BLABEL + attr(x, "label", exact = TRUE) + ELABEL } ETABULAR <- "\\end{longtable}\n" } result <- result + ETABULAR result <- result + ESIZE if ( floating == TRUE ) { if ((!is.null(caption)) && (type == "latex" && caption.placement == "bottom")) { result <- result + BCAPTION + caption + ECAPTION } if (!is.null(attr(x, "label", exact = TRUE)) && caption.placement == "bottom") { result <- result + BLABEL + attr(x, "label", exact = TRUE) + ELABEL } } result <- result + EENVIRONMENT result <- result + ETABLE } result <- sanitize.final(result, type = type) if (print.results){ print(result) } return(invisible(result$text)) } "+.string" <- function(x, y) { x$text <- paste(x$text, as.string(y)$text, sep = "") return(x) } print.string <- function(x, ...) { cat(x$text, file = x$file, append = x$append) return(invisible()) } string <- function(text, file = "", append = FALSE) { x <- list(text = text, file = file, append = append) class(x) <- "string" return(x) } as.string <- function(x, file = "", append = FALSE) { if (is.null(attr(x, "class", exact = TRUE))) switch(data.class(x), character = return(string(x, file, append)), numeric = return(string(as.character(x), file, append)), stop("Cannot coerce argument to a string")) if (class(x) == "string") return(x) stop("Cannot coerce argument to a string") } is.string <- function(x) { return(class(x) == "string") } xtable/R/lagImpactMat.R0000644000176200001440000000267112652545471014441 0ustar liggesusers### This function is a copy of spdep:::lagImpactMat ### It has been copied because lagImpactMat is not exported by spdep ### There is no help available for lagImpactMat in spdep, ### so I have not provided any help, and I am unable to trace the author ### lagImpactMat <- function (x, reportQ = NULL) { if (is.null(x$res)) { direct <- x$direct indirect <- x$indirect total <- x$total } else { direct <- x$res$direct indirect <- x$res$indirect total <- x$res$total } mat <- cbind(direct, indirect, total) colnames(mat) <- c("Direct", "Indirect", "Total") rownames(mat) <- attr(x, "bnames") if (!is.null(reportQ) && reportQ) { if (is.null(x$res)) { Qobj <- attr(x, "Qres") } else { Qobj <- attr(x$res, "Qres") } if (is.null(Qobj)) { warning("No impact components to report") } else { if (length(attr(x, "bnames")) == 1L) { Qobj$direct <- matrix(Qobj$direct, ncol = 1) Qobj$indirect <- matrix(Qobj$indirect, ncol = 1) Qobj$total <- matrix(Qobj$total, ncol = 1) } colnames(Qobj$direct) <- attr(x, "bnames") colnames(Qobj$indirect) <- attr(x, "bnames") colnames(Qobj$total) <- attr(x, "bnames") rownames(Qobj$direct) <- paste0("Q", 1:nrow(Qobj$direct)) rownames(Qobj$indirect) <- paste0("Q", 1:nrow(Qobj$indirect)) rownames(Qobj$total) <- paste0("Q", 1:nrow(Qobj$total)) attr(mat, "Qobj") <- Qobj } } mat } xtable/R/xtable.R0000644000176200001440000004617612652545722013364 0ustar liggesusers### xtable package ### ### Produce LaTeX and HTML tables from R objects. ### ### Copyright 2000-2013 David B. Dahl ### ### This file is part of the `xtable' library for R and related languages. ### It is made available under the terms of the GNU General Public ### License, version 2, or at your option, any later version, ### incorporated herein by reference. ### ### This program is distributed in the hope that it will be ### useful, but WITHOUT ANY WARRANTY; without even the implied ### warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR ### PURPOSE. See the GNU General Public License for more ### details. ### ### You should have received a copy of the GNU General Public ### License along with this program; if not, write to the Free ### Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, ### MA 02111-1307, USA xtable <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { UseMethod("xtable") } ### data.frame and matrix objects xtable.data.frame <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { logicals <- unlist(lapply(x, is.logical)) ##x[, logicals] <- lapply(x[, logicals], as.character) ## Patch for logicals bug, no 1911 ## David Scott, , 2012-08-10 x[, logicals] <- lapply(x[, logicals, drop = FALSE], as.character) characters <- unlist(lapply(x, is.character)) factors <- unlist(lapply(x, is.factor)) ints <- sapply(x, is.integer) class(x) <- c("xtable","data.frame") caption(x) <- caption label(x) <- label if(auto && is.null(align)) align <- xalign(x) if(auto && is.null(digits)) digits <- xdigits(x) if(auto && is.null(display)) display <- xdisplay(x) align(x) <- switch(1+is.null(align), align, c("r",c("r","l")[(characters|factors)+1])) digits(x) <- switch(1+is.null(digits), digits, c(0,rep(2,ncol(x)))) ## Patch from Seth Falcon , 18-May-2007 if (is.null(display)) { display <- rep("f", ncol(x)) display[ints] <- "d" display[characters | factors] <- "s" display <- c("s", display) } display(x) <- display return(x) } xtable.matrix <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { return(xtable.data.frame(data.frame(x, check.names = FALSE), caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } ### table objects (of 1 or 2 dimensions) by Guido Gay, 9 Feb 2007 ### Fixed to pass R checks by DBD, 9 May 2007 xtable.table <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { if (length(dim(x)) == 1) { return(xtable.matrix(matrix(x, dimnames = list(rownames(x), names(dimnames(x)))), caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } else if (length(dim(x))==2) { return(xtable.matrix(matrix(x, ncol = dim(x)[2], nrow = dim(x)[1], dimnames = list(rownames(x), colnames(x))), caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } else { stop("xtable.table is not implemented for tables of > 2 dimensions") } } ### anova objects xtable.anova <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { suggested.digits <- c(0,rep(2, ncol(x))) suggested.digits[grep("Pr\\(>", names(x))+1] <- 4 suggested.digits[grep("P\\(>", names(x))+1] <- 4 suggested.digits[grep("Df", names(x))+1] <- 0 class(x) <- c("xtable","data.frame") caption(x) <- caption label(x) <- label if(auto && is.null(align)) align <- xalign(x) if(auto && is.null(digits)) digits <- xdigits(x) if(auto && is.null(display)) display <- xdisplay(x) align(x) <- switch(1+is.null(align), align, c("l",rep("r", ncol(x)))) digits(x) <- switch(1+is.null(digits), digits, suggested.digits) display(x) <- switch(1+is.null(display), display, c("s",rep("f", ncol(x)))) return(x) } ### aov objects xtable.aov <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { return(xtable.anova(anova(x, ...), caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } xtable.summary.aov <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { return(xtable.anova(x[[1]], caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } xtable.summary.aovlist <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { for (i in 1:length(x)) { if (i == 1) { result <- xtable.summary.aov(x[[i]], caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...) } else { result <- rbind(result, xtable.anova(x[[i]][[1]], caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } } return(result) } xtable.aovlist <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { return(xtable.summary.aovlist(summary(x), caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } ### lm objects xtable.lm <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { return(xtable.summary.lm(summary(x), caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } xtable.summary.lm <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { x <- data.frame(x$coef, check.names = FALSE) class(x) <- c("xtable","data.frame") caption(x) <- caption label(x) <- label if(auto && is.null(align)) align <- xalign(x) if(auto && is.null(digits)) digits <- xdigits(x) if(auto && is.null(display)) display <- xdisplay(x) align(x) <- switch(1+is.null(align), align, c("r","r","r","r","r")) digits(x) <- switch(1+is.null(digits), digits, c(0,4,4,2,4)) display(x) <- switch(1+is.null(display), display, c("s","f","f","f","f")) return(x) } ### glm objects xtable.glm <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { return(xtable.summary.glm(summary(x), caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } xtable.summary.glm <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { return(xtable.summary.lm(x, caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } ### prcomp objects xtable.prcomp <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { x <- data.frame(x$rotation, check.names = FALSE) class(x) <- c("xtable","data.frame") caption(x) <- caption label(x) <- label if(auto && is.null(align)) align <- xalign(x) if(auto && is.null(digits)) digits <- xdigits(x) if(auto && is.null(display)) display <- xdisplay(x) align(x) <- switch(1+is.null(align), align, c("r",rep("r", ncol(x)))) digits(x) <- switch(1+is.null(digits), digits, c(0,rep(4, ncol(x)))) display(x) <- switch(1+is.null(display), display, c("s",rep("f", ncol(x)))) return(x) } xtable.summary.prcomp <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { x <- data.frame(x$importance, check.names = FALSE) class(x) <- c("xtable","data.frame") caption(x) <- caption label(x) <- label if(auto && is.null(align)) align <- xalign(x) if(auto && is.null(digits)) digits <- xdigits(x) if(auto && is.null(display)) display <- xdisplay(x) align(x) <- switch(1+is.null(align), align, c("r",rep("r", ncol(x)))) digits(x) <- switch(1+is.null(digits), digits, c(0,rep(4, ncol(x)))) display(x) <- switch(1+is.null(display), display, c("s",rep("f", ncol(x)))) return(x) } ### Slightly modified version of xtable.coxph contributed on r-help by ### Date: Wed, 2 Oct 2002 17:47:56 -0500 (CDT) ### From: Jun Yan ### Subject: Re: [R] xtable for Cox model output xtable.coxph <- function (x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { cox <- x beta <- cox$coef se <- sqrt(diag(cox$var)) if (is.null(cox$naive.var)) { tmp <- cbind(beta, exp(beta), se, beta/se, 1 - pchisq((beta/se)^2, 1)) dimnames(tmp) <- list(names(beta), c("coef", "exp(coef)", "se(coef)", "z", "p")) } else { tmp <- cbind( beta, exp(beta), se, beta/se, signif(1 - pchisq((beta/se)^2, 1), digits - 1)) dimnames(tmp) <- list(names(beta), c("coef", "exp(coef)", "robust se", "z", "p")) } return(xtable(tmp, caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } ### Additional method: xtable.ts ### Contributed by David Mitchell (davidm@netspeed.com.au) ### Date: July 2003 xtable.ts <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { if (inherits(x, "ts") && !is.null(ncol(x))) { ## COLNAMES <- paste(colnames(x)); tp.1 <- trunc(time(x)) tp.2 <- trunc(cycle(x)) day.abb <- c("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat") ROWNAMES <- switch(frequency(x), tp.1, "Arg2", "Arg3", # Dummy arguments paste(tp.1, c("Q1", "Q2", "Q3", "Q4")[tp.2], sep = " "), "Arg5", "Arg6", paste("Wk.", tp.1, " ", day.abb[tp.2], sep = ""), "Arg8", "Arg9", "Arg10", "Arg11", paste(tp.1, month.abb[tp.2], sep = " ")) tmp <- data.frame(x, row.names = ROWNAMES); } else if (inherits(x, "ts") && is.null(ncol(x))) { COLNAMES <- switch(frequency(x), "Value", "Arg2", "Arg3", # Dummy arguments c("Q1", "Q2", "Q3", "Q4"), "Arg5", "Arg6", day.abb, "Arg8", "Arg9", "Arg10", "Arg11", month.abb) ROWNAMES <- seq(from = start(x)[1], to = end(x)[1]) tmp <- data.frame(matrix(c(rep(NA, start(x)[2] - 1), x, rep(NA, frequency(x) - end(x)[2])), ncol = frequency(x), byrow = TRUE), row.names = ROWNAMES) names(tmp) <- COLNAMES } return(xtable(tmp, caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } ### Suggested by Ajay Narottam Shah in e-mail 2006/07/22 xtable.zoo <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { return(xtable(as.ts(x), caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } ### Date: Fri, 29 May 2015 11:41:04 +0200 ### From: Martin G. ### Subject: [xtable] Code for spdep, splm and sphet objects outputs ### package spdep ### sarlm objects xtable.sarlm <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { return(xtable.summary.sarlm(summary(x), caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } xtable.summary.sarlm <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { x <- data.frame(x$Coef, check.names = FALSE) class(x) <- c("xtable","data.frame") caption(x) <- caption label(x) <- label if(auto && is.null(align)) align <- xalign(x) if(auto && is.null(digits)) digits <- xdigits(x) if(auto && is.null(display)) display <- xdisplay(x) align(x) <- switch(1+is.null(align), align, c("r","r","r","r","r")) digits(x) <- switch(1+is.null(digits), digits, c(0,4,4,2,4)) display(x) <- switch(1+is.null(display), display, c("s","f","f","f","f")) return(x) } ### spautolm objects: added by David Scott, 6/1/2016, after suggestion by ### Guido Schulz ### Date: Wed, 29 Apr 2015 10:45:16 +0200 ### Guido Schulz xtable.spautolm <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { return(xtable.summary.sarlm(summary(x), caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } xtable.summary.spautolm <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { return(xtable.summary.sarlm(summary(x), caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } ### gmsar objects xtable.gmsar <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { return(xtable.summary.sarlm(summary(x), caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } xtable.summary.gmsar <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { return(xtable.summary.sarlm(x, caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } ### stsls objects xtable.stsls <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { return(xtable.summary.sarlm(summary(x), caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } xtable.summary.stsls <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { return(xtable.summary.sarlm(x, caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } ### pred.sarlm objects xtable.sarlm.pred <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { return(xtable(as.data.frame(x), caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } ### This method removed because of the need to copy code to pass CRAN checks ### lagImpactMat is neither exported nor documented in spdep ###lagImpact objects xtable.lagImpact <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { xtable(lagImpactMat(x), caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...) } ### package splm ### splm objects xtable.splm <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { return(xtable.summary.splm(summary(x), caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } xtable.summary.splm <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { x <- data.frame(x$CoefTable, check.names = FALSE) class(x) <- c("xtable","data.frame") caption(x) <- caption label(x) <- label if(auto && is.null(align)) align <- xalign(x) if(auto && is.null(digits)) digits <- xdigits(x) if(auto && is.null(display)) display <- xdisplay(x) align(x) <- switch(1+is.null(align), align, c("r","r","r","r","r")) digits(x) <- switch(1+is.null(digits), digits, c(0,4,4,2,4)) display(x) <- switch(1+is.null(display), display, c("s","f","f","f","f")) return(x) } ### package sphet ### sphet objects xtable.sphet <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { return(xtable.summary.splm(summary(x), caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } xtable.summary.sphet <- function(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) { return(xtable.summary.splm(x, caption = caption, label = label, align = align, digits = digits, display = display, auto = auto, ...)) } xtable/vignettes/0000755000176200001440000000000012654015472013547 5ustar liggesusersxtable/vignettes/xtableGallery.Rnw0000644000176200001440000005020312652530660017035 0ustar liggesusers%\VignetteIndexEntry{xtable Gallery} %\VignetteDepends{xtable} %\VignetteKeywords{LaTeX, HTML, table} %\VignettePackage{xtable} % !Rnw weave = knitr % \VignetteEngine{knitr::knitr} %************************************************************************** \documentclass{article} \usepackage[a4paper,height=24cm]{geometry} % geometry first \usepackage{array} \usepackage{booktabs} \usepackage{longtable} \usepackage{parskip} \usepackage{rotating} \usepackage{tabularx} \usepackage{titlesec} \usepackage{hyperref} % hyperref last \titleformat\subsubsection{\bfseries\itshape}{}{0pt}{} \newcommand\p{\vspace{2ex}} \newcommand\code[1]{\texttt{#1}} \newcommand\pkg[1]{\textbf{#1}} \setcounter{tocdepth}{2} \begin{document} \title{The \pkg{xtable} Gallery} \author{Jonathan Swinton and others} \maketitle \tableofcontents \newpage \section{Introduction} This document gives a gallery of tables which can be made using the \pkg{xtable} package to create \LaTeX\ output. It doubles as a regression check for the package. <>= library(knitr) opts_chunk$set(fig.path='figdir/fig', debug=TRUE, echo=TRUE) set.seed(1234) @ The first step is to load the package and set an option for this document. <>= library(xtable) options(xtable.floating = FALSE) options(xtable.timestamp = "") @ \section{Gallery} \subsection{Data frame} <>= data(tli) xtable(tli[1:10, ]) @ \subsection{Matrix} <>= design.matrix <- model.matrix(~ sex*grade, data = tli[1:10, ]) xtable(design.matrix, digits = 0) @ \newpage \subsection{aov} <>= fm1 <- aov(tlimth ~ sex + ethnicty + grade + disadvg, data = tli) xtable(fm1) @ \subsection{lm} <>= fm2 <- lm(tlimth ~ sex*ethnicty, data = tli) xtable(fm2) @ \subsubsection{Anova table (one model)} <>= xtable(anova(fm2)) @ \subsubsection{Anova table (two models)} <>= fm2b <- lm(tlimth ~ ethnicty, data = tli) xtable(anova(fm2b, fm2)) @ \subsubsection{Anova list} <>= Block <- gl(8, 4) A <- factor(c(0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1, 0,1,0,1,0,1,0,1,0,1,0,1)) B <- factor(c(0,0,1,1,0,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1, 0,0,1,1,0,0,1,1,0,0,1,1)) C <- factor(c(0,1,1,0,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,1, 1,0,1,0,0,0,1,1,1,1,0,0)) Yield <- c(101, 373, 398, 291, 312, 106, 265, 450, 106, 306, 324, 449, 272, 89, 407, 338, 87, 324, 279, 471, 323, 128, 423, 334, 131, 103, 445, 437, 324, 361, 302, 272) aovdat <- data.frame(Block, A, B, C, Yield) old <- getOption("contrasts") options(contrasts = c("contr.helmert", "contr.poly")) (fit <- aov(Yield ~ A*B*C + Error(Block), data = aovdat)) class(fit) summary(fit) options(contrasts = old) @ \p <>= xtable(fit) @ \newpage \subsection{glm} <>= fm3 <- glm(disadvg ~ ethnicty*grade, data = tli, family = binomial) xtable(fm3) @ \subsubsection{Analysis of deviance} <>= xtable(anova(fm3)) @ \subsection{prcomp} <>= pr1 <- prcomp(USArrests) xtable(pr1) @ \p <>= xtable(summary(pr1)) @ <>= # pr2 <- princomp(USArrests) # xtable(pr2) @ \newpage \subsection{Time series} <>= temp.ts <- ts(cumsum(1 + round(rnorm(100), 0)), start = c(1954, 7), frequency = 12) temp.table <- xtable(temp.ts, digits = 0) temp.table @ \subsection{Flat tables} \label{sec:flat-tables} See the \textbf{Details} section of the help for \code{ftable} for a description of these tables, which are flat versions of multi-dimensional contingency tables. They require special methods to enable them to be printed using \pkg{xtable} <>= data(mtcars) mtcars$cyl <- factor(mtcars$cyl, levels = c("4","6","8"), labels = c("four","six","eight")) tbl <- ftable(mtcars$cyl, mtcars$vs, mtcars$am, mtcars$gear, row.vars = c(2, 4), dnn = c("Cylinders", "V/S", "Transmission", "Gears")) tbl @ %def Here is the \LaTeX{} produced: <>= xftbl <- xtableFtable(tbl, method = "compact") print.xtableFtable(xftbl, booktabs = TRUE) @ %def And here is a basic flat table: <>= xftbl <- xtableFtable(tbl) print.xtableFtable(xftbl) @ %def This illustrates the \code{method} argument: <>= xftbl <- xtableFtable(tbl, method = "col.compact") print.xtableFtable(xftbl, rotate.rownames = TRUE) @ %def Booktabs is incompatible with vertical lines in tables, so the vertical dividing line is removed. <>= xftbl <- xtableFtable(tbl, method = "compact") print.xtableFtable(xftbl, booktabs = TRUE) @ %def \p Row and column variable names can be formatted specially using sanitization, and row and column variable names and labels can be rotated. If special formatting is required for row and column labels, that can be done as a workaround by redefining the data and associated labels. <>= italic <- function(x){ paste0('{\\emph{', x, '}}') } mtcars$cyl <- factor(mtcars$cyl, levels = c("four","six","eight"), labels = c("four",italic("six"),"eight")) large <- function(x){ paste0('{\\Large ', x, '}') } bold <- function(x){ paste0('{\\bfseries ', x, '}') } tbl <- ftable(mtcars$cyl, mtcars$vs, mtcars$am, mtcars$gear, row.vars = c(2, 4), dnn = c("Cylinders", "V/S", "Transmission", "Gears")) xftbl <- xtableFtable(tbl, method = "row.compact") print.xtableFtable(xftbl, sanitize.rownames.function = large, sanitize.colnames.function = bold, rotate.colnames = TRUE, rotate.rownames = TRUE) @ %def \newpage <>= # ## Demonstrate saving to file # for(i in c("latex", "html")) { # outFileName <- paste("xtable.", ifelse(i=="latex", "tex", i), sep = "") # print(xtable(lm.D9), type = i, file = outFileName, append = TRUE, # latex.environments = NULL) # print(xtable(lm.D9), type = i, file = outFileName, append = TRUE, # latex.environments = "") # print(xtable(lm.D9), type = i, file = outFileName, append = TRUE, # latex.environments = "center") # print(xtable(anova(glm.D93, test = "Chisq")), # type = i, file = outFileName, # append = TRUE) # print(xtable(anova(glm.D93)), hline.after = c(1), # size = "small", type = i, # file = outFileName, append = TRUE) # # print(xtable(pr2), type = i, file = outFileName, append = TRUE) # } @ \section{Automatic formatting} \subsection{Suggest alignment, digits, and display} The functions \code{xalign}, \code{xdigits}, and \code{xdisplay} are useful for formatting tables in a sensible way. Consider the output produced by the default formatting. <>= data(mtcars) dat <- mtcars[1:3, 1:6] x <- xtable(dat) x @ \p Now change the default alignment, digits and display using helper functions \code{xalign}, \code{xdigits}, and \code{xdisplay}. This produces a better format as shown below. <>= align(x) <- xalign(x) digits(x) <- xdigits(x) display(x) <- xdisplay(x) x @ \subsection{Shorthand notation} For convenience, the three `autoformat' functions (\code{xalign}, \code{xdigits}, and \code{xdisplay}) can be applied together when an \code{xtable} is created, using the \code{auto} argument: <>= xtable(dat, auto = TRUE) @ \p Similarly, the \code{autoformat} function can be used to postprocess an existing \code{xtable}: <>= x <- xtable(dat) autoformat(x) @ \newpage \subsection{Math-Style Exponents} If you prefer $5 \times 10^5$ in your tables to 5e5, the \code{math.style.exponents} option to \code{print.xtable} is useful: <>= print(xtable(data.frame(text = c("foo","bar"), googols = c(10e10,50e10), small = c(8e-24,7e-5), row.names = c("A","B")), display = c("s","s","g","g")), math.style.exponents = TRUE) @ this option also supports the values \code{ensuremath} which uses \code{\char`\\ensuremath} instead of \code{\$\$} and \code{UTF-8} which uses UTF-8 to approximate the \LaTeX typesetting. \section{Sanitization} <>= insane <- data.frame(Name = c("Ampersand","Greater than","Less than", "Underscore","Per cent","Dollar", "Backslash","Hash","Caret","Tilde", "Left brace","Right brace"), Character = I(c("&",">","<","_","%","$", "\\","#","^","~","{","}"))) colnames(insane)[2] <- paste(insane[, 2], collapse = "") xtable(insane) @ \p Sometimes you might want to have your own sanitization function. <>= wanttex <- xtable(data.frame(Column = paste("Value_is $10^{-",1:3,"}$", sep = ""))) print(wanttex, sanitize.text.function = function(str) gsub("_", "\\_", str, fixed = TRUE)) @ \p Sanitization can be useful in formatting column headings and row names: <>= dat <- mtcars[1:3, 1:6] large <- function(x){ paste0('{\\Large{\\bfseries ', x, '}}') } italic <- function(x){ paste0('{\\emph{ ', x, '}}') } @ %def <>= print(xtable(dat), sanitize.rownames.function = italic, sanitize.colnames.function = large, booktabs = TRUE) @ %def \newpage \subsection{Markup in tables} Markup can be included in tables, including in column and row names, by using a custom \code{sanitize.text.function}. <>= mat <- round(matrix(c(0.9, 0.89, 200, 0.045, 2.0), c(1, 5)), 4) rownames(mat) <- "$y_{t-1}$" colnames(mat) <- c("$R^2$", "$\\bar{x}$", "F-stat", "S.E.E", "DW") mat <- xtable(mat) print(mat, sanitize.text.function = function(x) {x}) @ % By David Dahl to demonstrate contribution from David Whitting, 2007-10-09. \p You can also have sanitize functions that are specific to column or row names. In the table below, the row name is not sanitized but column names and table elements are. <>= money <- matrix(c("$1,000","$900","$100"), ncol = 3, dimnames = list("$\\alpha$", c("Income (US$)","Expenses (US$)", "Profit (US$)"))) print(xtable(money), sanitize.rownames.function = function(x) {x}) @ \section{Format examples} \subsection{Adding a centering environment} <>= print(xtable(anova(fm3), caption = "\\tt latex.environments = \"\""), floating = TRUE, latex.environments = "") print(xtable(anova(fm3), caption = "\\tt latex.environments = \"center\""), floating = TRUE, latex.environments = "center") @ \newpage \subsection{Column alignment} <>= tli.table <- xtable(tli[1:10, ]) align(tli.table) <- rep("r", 6) tli.table @ \subsubsection{Left aligned strings with column lines} <>= align(tli.table) <- "|rrl|l|lr|" tli.table @ \subsubsection{Fixed width columns} <>= align(tli.table) <- "|rr|lp{3cm}l|r|" tli.table @ \newpage \subsection{Number of digits} One number for all columns, <>= display(tli.table)[c(2,6)] <- "f" digits(tli.table) <- 3 tli.table @ \p or one for each column, including the row names, <>= digits(tli.table) <- 1:(ncol(tli)+1) tli.table @ \p or as a full matrix. <>= digits(tli.table) <- matrix(0:4, nrow = 10, ncol = ncol(tli)+1) tli.table @ \newpage \subsection{Suppress row/column names} \subsubsection{Suppress row names} <>= tli.table <- xtable(tli[1:10, ]) print(tli.table, include.rownames = FALSE) @ \p If you want a vertical line on the left, you need to change the \code{align} attribute. <>= align(tli.table) <- "|r|r|lp{3cm}l|r|" print(tli.table, include.rownames = FALSE) @ \p Revert the alignment to what is was before. <<>>= align(tli.table) <- "|rr|lp{3cm}l|r|" @ \newpage \subsubsection{Suppress column names} <>= print(tli.table, include.colnames = FALSE) @ \p Note the doubled header lines which can be suppressed. <>= print(tli.table, include.colnames = FALSE, hline.after = c(0,nrow(tli.table))) @ \subsubsection{Suppress row and column names} <>= print(tli.table, include.colnames = FALSE, include.rownames = FALSE) @ \newpage \subsection{Rotate row/column names} The \code{rotate.rownames} and \code{rotate.colnames} arguments can be used to rotate the row and/or column names. This requires \verb|\usepackage{rotating}| in the \LaTeX\ preamble. <>= print(tli.table, rotate.rownames = TRUE, rotate.colnames = TRUE) @ \newpage \subsection{Horizontal lines} \subsubsection{Line locations} Use the \code{hline.after} argument to specify the position of the horizontal lines. <>= print(xtable(anova(fm3)), hline.after = c(1)) @ \subsubsection{Line styles} Specifying \code{booktabs = TRUE} will generate three line types. By default, when no value is given for \code{hline.after}, a \verb|\toprule| will be drawn above the table, a \verb|\midrule| after the table headings and a \verb|\bottomrule| below the table. This requires \verb|\usepackage{booktabs}| in the \LaTeX\ preamble. \p The top and bottom rules are slightly thicker than the mid rule. The thickness of the lines can be set via the \LaTeX\ lengths \verb|\heavyrulewidth| and \verb|\lightrulewidth|. <>= tli.table <- xtable(tli[1:10, ]) print(tli.table, include.rownames = FALSE, booktabs = TRUE) @ \p If \code{hline.after} includes \code{-1}, a \verb|\toprule| will be drawn above the table. If \code{hline.after} includes the number of rows in the table, a \verb|\bottomrule| will be drawn below the table. For any other values specified in \code{hline.after}, a \verb|\midrule| will be drawn after that line of the table. \p The following table has more than one \verb|\midrule|. <>= bktbs <- xtable(matrix(1:10, ncol = 2)) hlines <- c(-1, 0, 1, nrow(bktbs)) print(bktbs, booktabs = TRUE, hline.after = hlines) @ \subsection{Table level commands} <>= print(xtable(anova(fm3)), size = "large") @ \p <>= print(xtable(anova(fm3)), size = "\\setlength{\\tabcolsep}{12pt}") @ \subsection{Long tables} Requires \verb|\usepackage{longtable}| in the \LaTeX\ preamble. <>= x <- matrix(rnorm(1000), ncol = 10) x.big <- xtable(x, caption = "A \\code{longtable} spanning several pages") print(x.big, hline.after=c(-1, 0), tabular.environment = "longtable") @ Extra features of the \pkg{longtable} \LaTeX{} package can typically be activated using \code{add.to.row}, as shown below. <>= add.to.row <- list(pos = list(0), command = NULL) command <- paste0("\\hline\n\\endhead\n", "\\hline\n", "\\multicolumn{", dim(x)[2] + 1, "}{l}", "{\\footnotesize Continued on next page}\n", "\\endfoot\n", "\\endlastfoot\n") add.to.row$command <- command print(x.big, hline.after=c(-1), add.to.row = add.to.row, tabular.environment = "longtable") @ \newpage \subsection{Use of \code{add.to.row} argument} The following frequency table has outer dimnames: \code{Grade3} and \code{Grade6}. <<>>= Grade3 <- c("A","B","B","A","B","C","C","D","A","B", "C","C","C","D","B","B","D","C","C","D") Grade6 <- c("A","A","A","B","B","B","B","B","C","C", "A","C","C","C","D","D","D","D","D","D") Cohort <- table(Grade3, Grade6) Cohort @ \p The default behavior of \code{print.xtable} is to strip outer dimnames. <>= xtable(Cohort) @ \p The desired column labels can be created using \code{add.to.row}, in this case applying two commands to ``row number zero'' while suppressing the basic column names. <>= addtorow <- list() addtorow$pos <- list(0, 0) addtorow$command <- c("& \\multicolumn{4}{c}{Grade 6} \\\\\n", "Grade 3 & A & B & C & D \\\\\n") print(xtable(Cohort), add.to.row = addtorow, include.colnames = FALSE) @ \subsection{Sideways tables} Requires \verb|\usepackage{rotating}| in the LaTeX preamble. Sideways tables can't be forced in place with the \code{[H]} specifier, but you can use the \verb|\clearpage| command to get them fairly nearby. <>= x <- x[1:30, ] x.side <- xtable(x, caption = "A sideways table") print(x.side, floating = TRUE, floating.environment = "sidewaystable") @ \clearpage \subsection{Rescaled tables} Specify a \code{scalebox} value to rescale the table. <>= x <- x[1:20, ] x.rescale <- xtable(x) print(x.rescale, scalebox = 0.7) @ \subsection{Aligning fixed width columns} Note that using specifications such as \verb|p{2cm}| always produces a \textbf{left aligned} column. What if some other alignment is desired? This is not really a problem with \pkg{xtable} but with the formatting of tables with fixed width columns and different alignments using standard \LaTeX. One solution is to use the \verb|array| package, defining new column formats. \begin{verbatim} \newcolumntype{L}[1]{>{\raggedright\let\newline\\ \arraybackslash\hspace{0pt}}m{#1}} \newcolumntype{C}[1]{>{\centering\let\newline\\ \arraybackslash\hspace{0pt}}m{#1}} \newcolumntype{R}[1]{>{\raggedleft\let\newline\\ \arraybackslash\hspace{0pt}}m{#1}} \newcolumntype{P}[1]{>{\raggedright\tabularxbackslash}p{#1}} \end{verbatim} These allow for very sophisticated cell formatting, namely left-aligned, centred, or right-aligned text, with recognition of line breaks for the first three new column types. If these lines are included along with \verb|\usepackage{array}|, then the following is possible. \newcolumntype{L}[1]{>{\raggedright\let\newline\\ \arraybackslash\hspace{0pt}}m{#1}} \newcolumntype{C}[1]{>{\centering\let\newline\\ \arraybackslash\hspace{0pt}}m{#1}} \newcolumntype{R}[1]{>{\raggedleft\let\newline\\ \arraybackslash\hspace{0pt}}m{#1}} \newcolumntype{P}[1]{>{\raggedright\tabularxbackslash}p{#1}} <>= df <- data.frame(name = c("A","B"), right = c(1.4, 34.6), left = c(1.4, 34.6), text = c("txt1","txt2")) print(xtable(df, align = c("l", "|c", "|R{3cm}", "|L{3cm}", "| p{3cm}|")), floating = FALSE, include.rownames = FALSE) @ \newpage \subsection{Table width} The \code{tabularx} environment is for typesetting tables whose overall width is fixed. The column alignment code \code{X} denotes columns that will be stretched to achieve the desired table width. Requires \verb|\usepackage{tabularx}| in the \LaTeX\ preamble. <>= df.width <- data.frame(One = c("item 1", "A"), Two = c("item 2", "B"), Three = c("item 3", "C"), Four = c("item 4", "D")) x.width <- xtable(df.width) align(x.width) <- "|l|X|l|l|l|" print(x.width, tabular.environment = "tabularx", width = "\\textwidth") @ \section{Suppressing printing} By default the \code{print} method will print the \LaTeX\ or HTML to standard output and also return the character strings invisibly. The printing to standard output can be suppressed by specifying \code{print.results = FALSE}. <<>>= x.out <- print(tli.table, print.results = FALSE) @ Formatted output can also be captured without printing with the \code{toLatex} method. This function returns an object of class \code{"Latex"}. <<>>= x.ltx <- toLatex(tli.table) class(x.ltx) x.ltx @ \newpage \section{Acknowledgements} Most of the examples in this gallery are taken from the \pkg{xtable} documentation. Two examples (\code{add.to.row} and `Aligning fixed width columns') are from Stack Exchange. \section{Session information} <>= toLatex(sessionInfo()) @ \end{document} xtable/vignettes/OtherPackagesGallery.Rnw0000644000176200001440000002066112652546556020316 0ustar liggesusers%\VignetteIndexEntry{xtable List of Tables Gallery} %\VignetteDepends{xtable, spdep, splm, sphet} %\VignetteKeywords{LaTeX, HTML, table} %\VignettePackage{xtable} % !Rnw weave = knitr % \VignetteEngine{knitr::knitr} %************************************************************************** \documentclass{article} \usepackage[a4paper, height=24cm]{geometry} % geometry first \usepackage{array} \usepackage{booktabs} \usepackage{longtable} \usepackage{parskip} \usepackage{rotating} \usepackage{tabularx} \usepackage{titlesec} \usepackage{hyperref} % hyperref last \titleformat\subsubsection{\bfseries\itshape}{}{0pt}{} \newcommand\p{\vspace{2ex}} \newcommand\code[1]{\texttt{#1}} \newcommand\pkg[1]{\textbf{#1}} \setcounter{tocdepth}{2} \begin{document} \title{\bfseries\Large The Other Packages Gallery} \author{\bfseries David J. Scott} \maketitle \tableofcontents \newpage \section{Introduction} This document represents a test of the functions in \pkg{xtable} which deal with other packages. <>= library(knitr) opts_chunk$set(fig.path = 'Figures/other', debug = TRUE, echo = TRUE) opts_chunk$set(out.width = '0.9\\textwidth') @ The first step is to load the package and set some options for this document. <>= library(xtable) options(xtable.floating = FALSE) options(xtable.timestamp = "") options(width = 60) set.seed(1234) @ \section{The packages \pkg{spdep}, \pkg{splm}, and \pkg{sphet}} Code for supporting these packages and most of the examples used in this section was originally provided by Martin Gubri (\url{martin.gubri@framasoft.org}). \subsection{The package \pkg{spdep}} \label{sec:package-pkgspdep} First load the package and create some objects. <>= library(spdep) data("oldcol", package = "spdep") COL.lag.eig <- lagsarlm(CRIME ~ INC + HOVAL, data = COL.OLD[], nb2listw(COL.nb)) class(COL.lag.eig) COL.errW.GM <- GMerrorsar(CRIME ~ INC + HOVAL, data = COL.OLD, nb2listw(COL.nb, style = "W"), returnHcov = TRUE) class(COL.errW.GM) COL.lag.stsls <- stsls(CRIME ~ INC + HOVAL, data = COL.OLD, nb2listw(COL.nb)) class(COL.lag.stsls) p1 <- predict(COL.lag.eig, newdata = COL.OLD[45:49,], listw = nb2listw(COL.nb)) class(p1) p2 <- predict(COL.lag.eig, newdata = COL.OLD[45:49,], pred.type = "trend", type = "trend") #type option for retrocompatibility with spdep 0.5-92 class(p2) imp.exact <- impacts(COL.lag.eig, listw = nb2listw(COL.nb)) class(imp.exact) imp.sim <- impacts(COL.lag.eig, listw = nb2listw(COL.nb), R = 200) class(imp.sim) @ %def \subsubsection{\code{sarlm} objects} \label{sec:codesarlm-objects} There is an \code{xtable} method for objects of this type. <>= xtable(COL.lag.eig) @ %def The method for \code{xtable} actually uses the summary of the object, and an identical result is obtained when using the summary of the object, even if the summary contains more additional information. <>= xtable(summary(COL.lag.eig, correlation = TRUE)) @ %def This same pattern applies to the other objects from this group of packages. Note that additional prettying of the resulting table is possible, as for any table produced using \code{xtable}. For example using the \pkg{booktabs} package we get: <>= print(xtable(COL.lag.eig), booktabs = TRUE) @ %def \subsubsection{\code{gmsar} objects} \label{sec:codegmsar-objects} <>= xtable(COL.errW.GM) @ %def \subsubsection{\code{stsls} objects} \label{sec:codestsls-objects} <>= xtable(COL.lag.stsls) @ %def \subsubsection{\code{sarlm.pred} objects} \label{sec:codesarlmpred-objects} \code{xtable} has a method for predictions of \code{sarlm} models. <>= xtable(p1) @ %def This method transforms the \code{sarlm.pred} objects into data frames, allowing any number of attributes vectors which may vary according to predictor types. <>= xtable(p2) @ %def \subsubsection{\code{lagImpact} objects} \label{sec:codelagimpact-objects} The \code{xtable} method returns the values of direct, indirect and total impacts for all the variables in the model. The class \code{lagImpact} has two different sets of attributes according to if simulations are used. But the \code{xtable} method always returns the three components of the non-simulation case. <>= xtable(imp.exact) @ %def \p <>= xtable(imp.sim) @ %def \subsubsection{\code{spautolm} objects} \label{sec:codespautolm-objects} The need for an \code{xtable} method for \code{spautolm} was expressed by Guido Schulz (\url{schulzgu@student.hu-berlin.de}), who also provided an example of an object of this type. The required code was implemented by David Scott (\url{d.scott@auckland.ac.nz}). First create an object of the required type. <>= library(spdep) example(NY_data) spautolmOBJECT <- spautolm(Z ~ PEXPOSURE + PCTAGE65P,data = nydata, listw = listw_NY, family = "SAR", method = "eigen", verbose = TRUE) summary(spautolmOBJECT, Nagelkerke = TRUE) @ %def \p <>= class(spautolmOBJECT) @ %def <>= xtable(spautolmOBJECT, display = c("s",rep("f", 3), "e"), digits = 4) @ %def \subsection{The package \pkg{splm}} \label{sec:package-pkgsplm} First load the package and create some objects. <>= library(splm) data("Produc", package = "plm") data("usaww", package = "splm") fm <- log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp respatlag <- spml(fm, data = Produc, listw = mat2listw(usaww), model="random", spatial.error="none", lag=TRUE) class(respatlag) GM <- spgm(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp, data = Produc, listw = usaww, moments = "fullweights", spatial.error = TRUE) class(GM) imp.spml <- impacts(respatlag, listw = mat2listw(usaww, style = "W"), time = 17) class(imp.spml) @ %def \subsubsection{\code{splm} objects} \label{sec:codesplm-objects} <>= xtable(respatlag) @ %def \p <>= xtable(GM) @ %def The \code{xtable} method works the same on impacts of \code{splm} models. <>= xtable(imp.spml) @ %def \subsection{The package \pkg{sphet}} \label{sec:package-pkgsphet} First load the package and create some objects. <>= library(sphet) data("columbus", package = "spdep") listw <- nb2listw(col.gal.nb) data("coldis", package = "sphet") res.stsls <- stslshac(CRIME ~ HOVAL + INC, data = columbus, listw = listw, distance = coldis, type = 'Triangular') class(res.stsls) res.gstsls <- gstslshet(CRIME ~ HOVAL + INC, data = columbus, listw = listw) class(res.gstsls) imp.gstsls <- impacts(res.gstsls, listw = listw) class(imp.gstsls) @ %def \subsubsection{\code{sphet} objects} \label{sec:codesphet-objects} <>= xtable(res.stsls) @ %def \p <>= xtable(res.gstsls) @ %def \code{sphet} also provides a method for computing impacts. <>= xtable(imp.gstsls) @ %def \section{The \pkg{zoo} package} \label{sec:pkgzoo-package} <>= library(zoo) xDate <- as.Date("2003-02-01") + c(1, 3, 7, 9, 14) - 1 as.ts(xDate) x <- zoo(rnorm(5), xDate) xtable(x) @ %def \p <>= tempTs <- ts(cumsum(1 + round(rnorm(100), 0)), start = c(1954, 7), frequency = 12) tempTable <- xtable(tempTs, digits = 0) tempTable tempZoo <- as.zoo(tempTs) xtable(tempZoo, digits = 0) @ %def \section{The \pkg{survival} package} \label{sec:pkgsurvival-package} <>= library(survival) test1 <- list(time=c(4,3,1,1,2,2,3), status=c(1,1,1,0,1,1,0), x=c(0,2,1,1,1,0,0), sex=c(0,0,0,0,1,1,1)) coxFit <- coxph(Surv(time, status) ~ x + strata(sex), test1) xtable(coxFit) @ %def \end{document} xtable/vignettes/margintable.Rnw0000644000176200001440000000406612643625134016532 0ustar liggesusers%\VignetteIndexEntry{xtable margintable} %\VignetteKeywords{LaTeX, HTML, table, margintable} % !Rnw weave = knitr % \VignetteEngine{knitr::knitr} \documentclass{tufte-handout} \title{ A Margin Table Example } \author{David J. Scott} <>= library(knitr) @ \usepackage{rotating} \usepackage{longtable} \usepackage{booktabs} \usepackage{tabularx} \usepackage{hyperref} \usepackage{fancyvrb} \fvset{fontsize=\normalsize} \begin{document} \section{The Example} \label{sec:example} This document uses the Tufte handout \LaTeX\ document style. This is specified by the use of the document class as \Verb|\documentclass{tufte-handout}|. The Tufte-\LaTeX\ document classes define a style similar to the style Edward Tufte uses in his books and handouts. Tufte's style is known for its extensive use of sidenotes, tight integration of graphics with text, and well-set typography. One of the most prominent and distinctive features of this style is the extensive use of sidenotes. There is a wide margin to provide ample room for sidenotes and small figures. Any \Verb|\footnote|s will automatically be converted to sidenotes. Here is an example of a margin table, suggested by Felix Sch\"onbrodt \Verb||. I am not sure about its usefullness in practice however. Note that \Verb|latex.environments = ""| avoids the default option of tables being centered, which in this example would lead to the caption not being directly under the table. Most importantly, \Verb|table.placement = NULL| is required to ensure that the default table placement options \Verb|[ht]| being inserted after \Verb|\begin{margintable}|. This is necessary because the margintable environment does not allow placement options like \Verb|[ht]|. <<>>= library(xtable) x <- matrix(rnorm(6), ncol = 2) x.small <- xtable(x, label = 'tabsmall', caption = 'A margin table') @ <>= print(x.small,floating.environment='margintable', latex.environments = "", table.placement = NULL) @ \end{document} xtable/vignettes/listOfTablesGallery.Rnw0000644000176200001440000001536312654012726020161 0ustar liggesusers%\VignetteIndexEntry{xtable List of Tables Gallery} %\VignetteDepends{xtable, lsmeans} %\VignetteKeywords{LaTeX, HTML, table} %\VignettePackage{xtable} % !Rnw weave = knitr % \VignetteEngine{knitr::knitr} %************************************************************************** \documentclass{article} \usepackage[a4paper,height=24cm]{geometry} % geometry first \usepackage{array} \usepackage{booktabs} \usepackage{longtable} \usepackage{parskip} \usepackage{rotating} \usepackage{tabularx} \usepackage{titlesec} \usepackage{hyperref} % hyperref last \titleformat\subsubsection{\bfseries\itshape}{}{0pt}{} \newcommand\p{\vspace{2ex}} \newcommand\code[1]{\texttt{#1}} \newcommand\pkg[1]{\textbf{#1}} \setcounter{tocdepth}{2} \begin{document} \title{\bfseries\Large The \code{xtableList} Gallery} \author{\bfseries David J. Scott} \maketitle \tableofcontents \newpage \section{Introduction} This document represents a test of the functions in \pkg{xtable} which deal with lists of dataframes. <>= library(knitr) opts_chunk$set(fig.path='Figures/list', debug=TRUE, echo=TRUE) opts_chunk$set(out.width='0.9\\textwidth') @ The first step is to load the package and set some options for this document. <>= library(xtable) options(xtable.floating = FALSE) options(xtable.timestamp = "") options(width = 60) @ Next we create a list of dataframes with attributes. <>= require(xtable) data(mtcars) mtcars <- mtcars[, 1:6] mtcarsList <- split(mtcars, f = mtcars$cyl) ### Reduce the size of the list elements mtcarsList[[1]] <- mtcarsList[[1]][1,] mtcarsList[[2]] <- mtcarsList[[2]][1:2,] mtcarsList[[3]] <- mtcarsList[[3]][1:3,] attr(mtcarsList, "subheadings") <- paste0("Number of cylinders = ", names(mtcarsList)) attr(mtcarsList, "message") <- c("Line 1 of Message", "Line 2 of Message") str(mtcarsList) attributes(mtcarsList) @ %def Now create a list of \code{xtable} objects. <>= xList <- xtableList(mtcarsList) str(xList) @ %def Create an alternative version where the lists have different values for \code{digits}. <>= xList1 <- xtableList(mtcarsList, digits = c(0,2,0,0,0,1,2)) str(xList1) @ %def <>= xList2 <- xtableList(mtcarsList, digits = c(0,2,0,0,0,1,2), caption = "Caption to List", label = "tbl:xtableList") str(xList2) @ %def Further versions with no subheadings, and no message <>= attr(mtcarsList, "subheadings") <- NULL xList3 <- xtableList(mtcarsList) str(xList3) @ %def <>= attr(mtcarsList, "message") <- NULL xList4 <- xtableList(mtcarsList) str(xList4) @ %def \newpage \section{Single Column Names} \label{sec:single-column-names} Print the list of \code{xtable} objects with a single header of the column names. First the default. <>= print.xtableList(xList) @ %def Booktabs should work. <>= print.xtableList(xList, booktabs = TRUE) @ %def With digits being specified. <>= print.xtableList(xList1, booktabs = TRUE) @ %def Row and column names, subheadings, and the message can be sanitized. <>= large <- function(x){ paste0('{\\Large{\\bfseries ', x, '}}') } italic <- function(x){ paste0('{\\emph{ ', x, '}}') } bold <- function(x){ paste0('{\\bfseries ', x, '}') } red <- function(x){ paste0('{\\color{red} ', x, '}') } @ %def <>= print.xtableList(xList, sanitize.rownames.function = italic, sanitize.colnames.function = large, sanitize.subheadings.function = bold, sanitize.message.function = red, booktabs = TRUE) @ %def A label and caption can be added. <>= print.xtableList(xList2, floating = TRUE) @ %def Rotated column names? <>= print.xtableList(xList, rotate.colnames = TRUE) @ %def No subheadings? <>= print.xtableList(xList3) @ %def No message? <>= print.xtableList(xList4) @ %def \section{Multiple Column Names} \label{sec:multiple-column-names} Print the list of \code{xtable} objects with multiple headers of the column names. First the default with multiple column name headers. <>= print.xtableList(xList, colnames.format = "multiple") @ %def Using booktabs: <>= print.xtableList(xList, colnames.format = "multiple", booktabs = TRUE) @ %def With sanitization. <>= print.xtableList(xList, colnames.format = "multiple", sanitize.rownames.function = italic, sanitize.colnames.function = large, sanitize.subheadings.function = bold, sanitize.message.function = red, booktabs = TRUE) @ %def A label and caption can be added. <>= print.xtableList(xList2, colnames.format = "multiple", floating = TRUE) @ %def Rotated column names? <>= print.xtableList(xList, colnames.format = "multiple", rotate.colnames = TRUE) @ %def No subheadings? <>= print.xtableList(xList3, colnames.format = "multiple") @ %def No message? <>= print.xtableList(xList4, colnames.format = "multiple") @ %def \section{lsmeans} \label{sec:lsmeans} Summaries from the \code{lsmeans} function from the \pkg{lsmeans} package can easily be produced using the function \code{xtableLSMeans}. This function produces a list of \pkg{xtable} objects. <>= library(lsmeans) warp.lm <- lm(breaks ~ wool*tension, data = warpbreaks) warp.lsm <- lsmeans(warp.lm, ~ tension | wool) warp.sum <- summary(warp.lsm, adjust = "mvt") warp.xtblList <- xtableLSMeans(warp.sum, digits = c(0,0,2,2,0,2,2)) str(warp.xtblList) @ %def <>= print.xtableList(warp.xtblList, colnames.format = "multiple", include.rownames = FALSE) @ %def <>= print.xtableList(warp.xtblList, colnames.format = "multiple", include.rownames = FALSE) @ %def \p <>= print.xtableList(warp.xtblList, colnames.format = "multiple", booktabs = TRUE, include.rownames = FALSE) @ %def \end{document} xtable/MD50000644000176200001440000000536612655164132012060 0ustar liggesusers6dd81c7b433108d593171196fa8198b5 *DESCRIPTION 90596b1e5b9b8f180ef0f99094d463fd *NAMESPACE c8ac98db5287387914d25ec3761959b8 *NEWS 5ae08bf6f1c93b19a9fd9dba478450d7 *R/autoformat.R 8ea58528b95e7ae3b826b5da5d972939 *R/lagImpactMat.R 6fba031394db12f413b056314417680f *R/print.xtable.R 47e1421a7d31a9a104c4433cd84d79a1 *R/sanitize.R 2c060a689e4abe5b527b03e744791dc3 *R/table.attributes.R 61deeb5bc6a7f0da8fc14d68d073c842 *R/toLatex.R 0f5e33b5c5923e5ec38341242ce17576 *R/xtable.R 211fbb67f689c2f16fc940ebeb95eb4d *R/xtableFtable.R e398e3ea57af57d33e057deca8141d62 *R/xtableList.R bbe9b0d7afd6aa21f2cb29a068e9f982 *R/xtableMatharray.R e3af5932f38b00f75e5f840bc62f6105 *build/vignette.rds b6afe130c865e401927375d8a19c5660 *data/tli.txt.gz a1509f50be32cd1aefa57707436ae2d6 *inst/doc/OtherPackagesGallery.R 05407db57a7b728e96023fefc6db75d3 *inst/doc/OtherPackagesGallery.Rnw 4bb9328606ef54a87a6dfe36fc3cbce9 *inst/doc/OtherPackagesGallery.pdf 5d242f8873cd471bbf8ba444735bed94 *inst/doc/listOfTablesGallery.R 92fedeef7ae8001c9cd892e682705672 *inst/doc/listOfTablesGallery.Rnw 325526dc0361086e76c486486e0b15a8 *inst/doc/listOfTablesGallery.pdf fbeb6f2011a3d0e76f0c6c435c82b458 *inst/doc/margintable.R 99af34d2c77bb0a6d3c94d77353f282b *inst/doc/margintable.Rnw bd0ce99b8e3bb502972639dd08d35a5f *inst/doc/margintable.pdf 3a277e10475eac250b616f435f76c845 *inst/doc/xtableGallery.R 0fff2eac7404f621bb3c9ccfcea20217 *inst/doc/xtableGallery.Rnw b64bd89a854919b9c841468e570f5ab3 *inst/doc/xtableGallery.pdf f95d0f62ce805138f60e665c73eae98a *man/autoformat.Rd 75c7e1dae94ded3203639a9c268f5b46 *man/print.xtable.Rd 6f4e0d83245dbb2a052c8c5231a070af *man/print.xtableMatharray.Rd de7e9b4e1ba7d73979616e15d59aa785 *man/sanitize.Rd 319908d8bdaa827ab3e702d75308a11f *man/string.Rd ce99416fe09c89d115650041321e3c4c *man/table.attributes.Rd 09508527a5fa06fc0f845e3eeaaa2f0f *man/tli.Rd 495dd6344cfa0335bb8018c094e081b3 *man/toLatex.Rd 76c824e2e45a7ac6ca0313fba4a9edf4 *man/xtable-internal.Rd 92ccae8e1bd7f7f18db93a0493bfb0b4 *man/xtable.Rd 9dde9c9b6c3f56fe473e71f99bb75d23 *man/xtableFtable.Rd 8cb43e1ae8c9ca119c264b933aa7a013 *man/xtableList.Rd 2559d1cefd528d457e31d76eff8c32f1 *man/xtableMatharray.Rd 596b4f4f3c425330eb54998231aca58b *tests/test.margintable.R 41dd49eb66f7f3b27738424de6a27ac3 *tests/test.matharray.R 820837020ab324ad88b4b9bf7fe2b451 *tests/test.xalign.xdigits.xdisplay.R 12b35182cb70b6f47d262213b7e1b342 *tests/test.xtable.R 3089b65c174191d5245050a760a86746 *tests/test.xtable.data.frame.R b084b5d2c7f7094464c2b64fc20cdf03 *tests/test.xtable.xtableFtable.R 05407db57a7b728e96023fefc6db75d3 *vignettes/OtherPackagesGallery.Rnw 92fedeef7ae8001c9cd892e682705672 *vignettes/listOfTablesGallery.Rnw 99af34d2c77bb0a6d3c94d77353f282b *vignettes/margintable.Rnw 0fff2eac7404f621bb3c9ccfcea20217 *vignettes/xtableGallery.Rnw xtable/build/0000755000176200001440000000000012654015472012636 5ustar liggesusersxtable/build/vignette.rds0000644000176200001440000000053012654015472015173 0ustar liggesusersRn0 MҵSwvyU7iL&Т$ڷ}43"H}}l!d 0x2gbźXO|G oL)a#)ϗ?i|cQsMp Maintainer: David Scott Imports: stats, utils Suggests: knitr, lsmeans, spdep, splm, sphet, plm, zoo, survival VignetteBuilder: knitr Description: Coerce data to LaTeX and HTML tables. URL: http://xtable.r-forge.r-project.org/ Depends: R (>= 2.10.0) License: GPL (>= 2) Repository: CRAN NeedsCompilation: no Packaged: 2016-02-02 02:58:02 UTC; dsco036 Date/Publication: 2016-02-05 19:22:18 xtable/man/0000755000176200001440000000000012654004206012303 5ustar liggesusersxtable/man/print.xtableMatharray.Rd0000644000176200001440000000663112642632140017064 0ustar liggesusers\name{print.xtableMatharray} \alias{print.xtableMatharray} \title{Print Math Array} \description{ For an object of class \code{"xtableMatharray"}, returns the LaTeX commands to produce an array. } \usage{ \method{print}{xtableMatharray}(x, print.results = TRUE, format.args = getOption("xtable.format.args", NULL), scalebox = getOption("xtable.scalebox", NULL), comment = FALSE, timestamp = NULL, ...) } \arguments{ \item{x}{An object of class \code{"xtableMatharray"}.} \item{print.results}{If \code{TRUE}, the generated table is printed to standard output. Set this to \code{FALSE} if you will just be using the character vector that is returned invisibly. Default value is \code{TRUE}.} \item{format.args}{List of arguments for the \code{formatC} function. For example, standard German number separators can be specified as \code{format.args=list(big.mark = "'", decimal.mark = ",")}. The arguments \code{digits} and \code{format} should not be included in this list. See details for function \code{\link{print.xtable}}. Default value is \code{NULL}.} \item{scalebox}{If not \code{NULL}, a \code{scalebox} clause will be added around the tabular environment with the specified value used as the scaling factor. Default value is \code{NULL}.} \item{comment}{If \code{TRUE}, the version and timestamp comment is included. Default value is \code{FALSE}. } \item{timestamp}{Timestamp to include in LaTeX comment. Set this to \code{NULL} to exclude the timestamp. Default value is \code{NULL}. } \item{...}{Additional arguments. (Currently ignored.) } } \details{ This command prints an array of numbers which may be included in a mathematical expression in a LaTeX document created using \pkg{Sweave} or \pkg{knitr}. Internally it calls \code{print.data.frame} but with special values for the arguments, namely that the tabular environment is \code{array}, row names and column names are not included, and there are no horizontal lines. Note that the default values for the arguments \code{comment} and \code{timestamp} are different to the default values for \code{print.xtable}, the justification being that comments would make the resulting LaTeX harder to read. } \value{ A character vector containing the LaTeX code for incorporating an array in a mathematical expression. } \author{ David Scott \email{d.scott@auckland.ac.nz}. } \seealso{ \code{\link{print.xtable}} } \examples{ V <- matrix(c(1.140380e-03, 3.010497e-05, 7.334879e-05, 3.010497e-05, 3.320683e-04, -5.284854e-05, 7.334879e-05, -5.284854e-05, 3.520928e-04), nrow = 3) ### Simple test of print.xtableMatharray print.xtableMatharray(xtable(V, display = rep("E", 4))) class(V) <- c("xtableMatharray") class(V) ### Test without any additional arguments mth <- xtableMatharray(V) str(mth) print(mth) ### Test with arguments to xtable mth <- xtableMatharray(V, display = rep("E", 4)) str(mth) print(mth) mth <- xtableMatharray(V, digits = 6) str(mth) print(mth) ### Test with additional print.xtableMatharray arguments mth <- xtableMatharray(V, digits = 6) str(mth) print(mth, format.args = list(decimal.mark = ",")) print(mth, scalebox = 0.5) print(mth, comment = TRUE) print(mth, timestamp = "2000-01-01") print(mth, comment = TRUE, timestamp = "2000-01-01") } \keyword{print} xtable/man/autoformat.Rd0000644000176200001440000000340612611336442014761 0ustar liggesusers\name{autoformat} \alias{autoformat} \alias{xalign} \alias{xdigits} \alias{xdisplay} \title{Automatically Format Export Tables} \description{ Suggest an appropriate alignment, number of digits, and display type for \code{xtable}. } \usage{ autoformat(xtab, zap = getOption("digits")) xalign(x, pad = TRUE) xdigits(x, pad = TRUE, zap = getOption("digits")) xdisplay(x, pad = TRUE) } \arguments{ \item{xtab}{an object of class \code{xtable}.} \item{x}{a vector, matrix, or data frame.} \item{pad}{whether to format row names, when \code{x} is two-dimensional.} \item{zap}{the number of digits passed to \code{zapsmall}.} } \value{ \code{autoformat} returns a copy of \code{xtab}, after applying \code{xalign}, \code{xdigits}, and \code{xdisplay}. \code{xalign} returns a character vector consisting of \code{"l"} and \code{"r"} elements, for left/right alignment. \code{xdigits} returns an integer vector. \code{xdisplay} returns a character vector of \code{"d"}, \code{"f"}, and \code{"s"} elements, for integer/double/string display. } \author{Arni Magnusson.} \seealso{ \code{\link{xtable}}, \code{\link{align}}, \code{\link{digits}}, \code{\link{display}} } \examples{ ## 1 Vector xalign(precip) xdigits(precip) xdisplay(precip) ## 2 Data frame head(mtcars) xdigits(mtcars, pad = FALSE) xdigits(mtcars, pad = TRUE) xalign(mtcars) xdisplay(mtcars) ## 3 Autoformat when xtable is created xtable(mtcars, align = xalign(mtcars), digits = xdigits(mtcars), display = xdisplay(mtcars)) ## equivalent shortcut xtable(mtcars, auto = TRUE) ## 4 Autoformat existing xtable mt <- xtable(mtcars) align(mt) <- xalign(mt) digits(mt) <- xdigits(mt) display(mt) <- xdisplay(mt) ## equivalent shortcut mt <- autoformat(mt) } \keyword{array} \keyword{print} xtable/man/xtableFtable.Rd0000644000176200001440000004330512652532150015176 0ustar liggesusers\name{xtableFtable} \alias{xtableFtable} \alias{print.xtableFtable} \title{ Create and Export Flat Tables } \description{ \code{xtableFtable} creates an object which contains information about a flat table which can be used by \code{print.xtableFtable} to produce a character string which when included in a document produces a nicely formatted flat table. } \usage{ xtableFtable(x, caption = NULL, label = NULL, align = NULL, digits = 0, display = NULL, quote = FALSE, method = c("non.compact", "row.compact", "col.compact", "compact"), lsep = " $\\\\vert$ ", ...) \method{print}{xtableFtable}(x, type = getOption("xtable.type", "latex"), file = getOption("xtable.file", ""), append = getOption("xtable.append", FALSE), floating = getOption("xtable.floating", TRUE), floating.environment = getOption("xtable.floating.environment", "table"), table.placement = getOption("xtable.table.placement", "ht"), caption.placement = getOption("xtable.caption.placement", "bottom"), caption.width = getOption("xtable.caption.width", NULL), latex.environments = getOption("xtable.latex.environments", c("center")), tabular.environment = getOption("xtable.tabular.environment", "tabular"), size = getOption("xtable.size", NULL), hline.after = getOption("xtable.hline.after", NULL), NA.string = getOption("xtable.NA.string", ""), only.contents = getOption("xtable.only.contents", FALSE), add.to.row = getOption("xtable.add.to.row", NULL), sanitize.text.function = getOption("xtable.sanitize.text.function", as.is), sanitize.rownames.function = getOption("xtable.sanitize.rownames.function", sanitize.text.function), sanitize.colnames.function = getOption("xtable.sanitize.colnames.function", sanitize.text.function), math.style.negative = getOption("xtable.math.style.negative", FALSE), math.style.exponents = getOption("xtable.math.style.exponents", FALSE), html.table.attributes = getOption("xtable.html.table.attributes", "border=1"), print.results = getOption("xtable.print.results", TRUE), format.args = getOption("xtable.format.args", NULL), rotate.rownames = getOption("xtable.rotate.rownames", FALSE), rotate.colnames = getOption("xtable.rotate.colnames", FALSE), booktabs = getOption("xtable.booktabs", FALSE), scalebox = getOption("xtable.scalebox", NULL), width = getOption("xtable.width", NULL), comment = getOption("xtable.comment", TRUE), timestamp = getOption("xtable.timestamp", date()), ...) } \arguments{ \item{x}{For \code{xtableFtable}, an object of class \code{"ftable"}. For \code{print.xtableFtable}, an object of class \code{c("xtableFtable", "ftable")}.} \item{caption}{Character vector of length 1 or 2 containing the table's caption or title. If length is 2, the second item is the "short caption" used when LaTeX generates a "List of Tables". Set to \code{NULL} to suppress the caption. Default value is \code{NULL}. } \item{label}{Character vector of length 1 containing the LaTeX label or HTML anchor. Set to \code{NULL} to suppress the label. Default value is \code{NULL}. } \item{align}{Character vector of length equal to the number of columns of the resulting table, indicating the alignment of the corresponding columns. Also, \code{"|"} may be used to produce vertical lines between columns in LaTeX tables, but these are effectively ignored when considering the required length of the supplied vector. If a character vector of length one is supplied, it is split as \code{strsplit(align, "")[[1]]} before processing. For a flat table, the number of columns is the number of columns of data, plus the number of row variables in the table, plus one for the row names, even though row names are not printed. Use \code{"l"}, \code{"r"}, and \code{"c"} to denote left, right, and center alignment, respectively. Use \code{"p{3cm}"} etc. for a LaTeX column of the specified width. For HTML output the \code{"p"} alignment is interpreted as \code{"l"}, ignoring the width request. If \code{NULL} all row variable labels will be left aligned, separated from the data columns by a vertical line, and all data columns will be right aligned. The actual length of \code{align} depends on the value of \code{method}.} \item{digits}{ Numeric vector of length equal to one (in which case it will be replicated as necessary) or to the number of columns in the resulting table. Since data in the table consists of counts, the default is 0. If the value of \code{digits} is negative, the corresponding columns are displayed in scientific format with \code{abs(digits)} digits.} \item{display}{ Character vector of length equal to the number of columns of the resulting table, indicating the format for the corresponding columns. These values are passed to the \code{formatC} function. Use \code{"d"} (for integers), \code{"f"}, \code{"e"}, \code{"E"}, \code{"g"}, \code{"G"}, \code{"fg"} (for reals), or \code{"s"} (for strings). \code{"f"} gives numbers in the usual \code{xxx.xxx} format; \code{"e"} and \code{"E"} give \code{n.ddde+nn} or \code{n.dddE+nn} (scientific format); \code{"g"} and \code{"G"} put \code{x[i]} into scientific format only if it saves space to do so. \code{"fg"} uses fixed format as \code{"f"}, but \code{digits} as number of \emph{significant} digits. Note that this can lead to quite long result strings. If \code{NULL} all row variable names and labels will have format \code{"s"}, and all data columns will have format \code{"d"}. The actual length of \code{display} depends on the value of \code{method}.} \item{quote}{a character string giving the set of quoting characters for \code{format.ftable} used in \code{print.xtableFtable}; to disable quoting altogether, use \code{quote=""}.} \item{method}{string specifying how the \code{"xtableFtable"} object is printed in the \code{print} method. Can be abbreviated. Available methods are (see the examples in \code{\link{print.ftable}}): \describe{ \item{"non.compact"}{the default representation of an \code{"ftable"} object.} \item{"row.compact"}{a row-compact version without empty cells below the column labels.} \item{"col.compact"}{a column-compact version without empty cells to the right of the row labels.} \item{"compact"}{a row- and column-compact version. This may imply a row and a column label sharing the same cell. They are then separated by the string \code{lsep}.} } } \item{lsep}{only for \code{method = "compact"}, the separation string for row and column labels.} \item{type}{Type of table to produce. Possible values for \code{type} are \code{"latex"} or \code{"html"}. Default value is \code{"latex"} and is the only type implemented so far.} \item{file}{Name of file where the resulting code should be saved. If \code{file=""}, output is displayed on screen. Note that the function also (invisibly) returns a character vector of the results (which can be helpful for post-processing). Default value is \code{""}.} \item{append}{If \code{TRUE} and \code{file!=""}, code will be appended to \code{file} instead of overwriting \code{file}. Default value is \code{FALSE}.} \item{floating}{If \code{TRUE} and \code{type="latex"}, the resulting table will be a floating table (using, for example, \code{\\begin\{table\}} and \code{\\end\{table\}}). See \code{floating.environment} below. Default value is \code{TRUE}. } \item{floating.environment}{If \code{floating=TRUE} and \code{type="latex"}, the resulting table uses the specified floating environment. Possible values include \code{"table"}, \code{"table*"}, and other floating environments defined in LaTeX packages. Default value is \code{"table"}.} \item{table.placement}{If \code{floating=TRUE} and \code{type="latex"}, the floating table will have placement given by \code{table.placement} where \code{table.placement} must be \code{NULL} or contain only elements of \{"h","t","b","p","!","H"\}. Default value is \code{"ht"}.} \item{caption.placement}{The caption will be placed at the bottom of the table if \code{caption.placement} is \code{"bottom"} and at the top of the table if it equals \code{"top"}. Default value is \code{"bottom"}.} \item{caption.width}{The caption will be placed in a \code{"parbox"} of the specified width if \code{caption.width} is not \code{NULL} and \code{type="latex"}. Default value is \code{NULL}.} \item{latex.environments}{If \code{floating=TRUE} and \code{type="latex"}, the specified LaTeX environments (provided as a character vector) will enclose the tabular environment. Default value is \code{"center"}. } \item{tabular.environment}{When \code{type="latex"}, the tabular environment that will be used. When working with tables that extend more than one page, using \code{tabular.environment="longtable"} with the corresponding LaTeX package (see Fairbairns, 2005) allows one to typeset them uniformly. Note that \code{floating} should be set to \code{FALSE} when using the \code{longtable} environment. Default value is \code{"tabular"}.} \item{size}{A character vector that is inserted just before the tabular environment starts. This can be used to set the font size and a variety of other table settings. Initial backslashes are automatically prefixed, if not supplied by user. Default value is \code{NULL}. } \item{hline.after}{When \code{type="latex"}, a vector of numbers between -1 and \code{nrow(x)}, inclusive, indicating the rows after which a horizontal line should appear. Repeated values are allowed. If \code{NULL} the default is to draw a line before before starting the table, after the column variable names and labels, and at the end of the table.} \item{NA.string}{String to be used for missing values in table entries. Default value is \code{""}.} \item{only.contents}{If \code{TRUE} only the rows of the table are printed. Default value is \code{FALSE}. } \item{add.to.row}{A list of two components. The first component (which should be called 'pos') is a list that contains the position of rows on which extra commands should be added at the end. The second component (which should be called 'command') is a character vector of the same length as the first component, which contains the command that should be added at the end of the specified rows. Default value is \code{NULL}, i.e. do not add commands.} \item{sanitize.text.function}{Since the table entries are counts no sanitization is necessary. The default is \code{as.is}, which is the function which makes no changes. This also applies to the labels for the row and column variables since these are also part of the table which is printed using a call to \code{print.xtable}.} \item{sanitize.rownames.function}{Like the \code{sanitize.text.function}, but applicable to row names. The default uses the \code{sanitize.text.function}. } \item{sanitize.colnames.function}{Like the \code{sanitize.text.function}, but applicable to column names. The default uses the \code{sanitize.text.function}. } \item{math.style.negative}{In a LaTeX table, if \code{TRUE}, then use $-$ for the negative sign (as was the behavior prior to version 1.5-3). Default value is \code{FALSE}.} \item{math.style.exponents}{In a LaTeX table, if \code{TRUE} or \code{"$$"}, then use \verb{$5 \times 10^{5}$} for 5e5. If \code{"ensuremath"}, then use \verb{\\ensuremath{5 \times 10^{5}}} for 5e5. If \code{"UTF-8"} or \code{"UTF-8"}, then use UTF-8 to approximate the LaTeX typsetting for 5e5. Default value is \code{FALSE}.} \item{html.table.attributes}{In an HTML table, attributes associated with the \code{} tag. Default value is \code{"border=1"}.} \item{print.results}{If \code{TRUE}, the generated table is printed to standard output. Set this to \code{FALSE} if you will just be using the character vector that is returned invisibly. Default value is \code{TRUE}.} \item{format.args}{List of arguments for the \code{formatC} function. For example, standard German number separators can be specified as \code{format.args=list(big.mark = "'", decimal.mark = ","))}. The arguments \code{digits} and \code{format} should not be included in this list. Default value is \code{NULL}.} \item{rotate.rownames}{If \code{TRUE}, the row names and labels, and column variable names are displayed vertically in LaTeX. Default value is \code{FALSE}.} \item{rotate.colnames}{If \code{TRUE}, the column names and labels, and row variable names are displayed vertically in LaTeX. Default value is \code{FALSE}.} \item{booktabs}{If \code{TRUE}, the \code{toprule}, \code{midrule} and \code{bottomrule} commands from the LaTeX "booktabs" package are used rather than \code{hline} for the horizontal line tags. } \item{scalebox}{If not \code{NULL}, a \code{scalebox} clause will be added around the tabular environment with the specified value used as the scaling factor. Default value is \code{NULL}.} \item{width}{If not \code{NULL}, the specified value is included in parentheses between the tabular environment \code{begin} tag and the alignment specification. This allows specification of the table width when using tabular environments such as \code{tabular*} and \code{tabularx}. Note that table width specification is not supported with the \code{tabular} or \code{longtable} environments. Default value is \code{NULL}.} \item{comment}{If \code{TRUE}, the version and timestamp comment is included. Default value is \code{TRUE}. } \item{timestamp}{Timestamp to include in LaTeX comment. Set this to \code{NULL} to exclude the timestamp. Default value is \code{date()}. } \item{...}{Additional arguments. (Currently ignored.) } } \details{ \code{xtableFtable} carries out some calculations to determine the number of rows and columns of names and labels which will be in the table when formatted as a flat table, which depends on the value of \code{method}. It uses the results of those calculations to set sensible values for \code{align} and \code{display} if these have not been supplied. It attaches attributes to the resulting object which specify details of the function call which are needed when printing the resulting object which is of class \code{c("xtableFtable", "ftable")}. \code{print.xtableFtable} uses the attributes attached to an object of class \code{c("xtableFtable", "ftable")} to create a suitable character matrix object for subsequent printing. Formatting is carried out by changing the class of the \code{c("xtableFtable", "ftable")} to \code{"ftable"} then using the generic \code{format} to invoke \code{format.ftable}, from the \pkg{stats} package. The matrix object produced is then printed via a call to \code{print.xtable}. Note that at present there is no code for \code{type = "html"}. } \value{ For \code{xtableFtable} an object of class \code{c("xtableFtable", "ftable")}, with attributes \item{ftableCaption}{the value of the \code{caption} argument} \item{ftableLabel}{the value of the \code{label} argument} \item{ftableAlign}{the value of the \code{label} argument} \item{ftableDigits}{the value of the \code{digits} argument or the default value if \code{digits = NULL}} \item{quote}{the value of the \code{quote} argument} \item{ftableDisplay}{the value of the \code{display} argument or the default value if \code{align = NULL}} \item{method}{the value of the \code{method} argument} \item{lsep}{the value of the \code{lsep} argument} \item{nChars}{a vector of length 2 giving the number of character rows and the number of character columns} For \code{print.xtableFtable} a character string which will produce a formatted table when included in a LaTeX document. } \references{ Fairbairns, Robin (2005) \emph{Tables longer than a single page.} The UK List of TeX Frequently Asked Questions on the Web. \url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=longtab} } \author{ David Scott \email{d.scott@auckland.ac.nz}. } \note{ The functions \code{xtableFtable} and \code{print.xtableFtable} are new and their behaviour may change in the future based on user experience and recommendations. It is not recommended that users change the values of \code{align}, \code{digits} or \code{align}. First of all, alternative values have not been tested. Secondly, it is most likely that to determine appropriate values for these arguments, users will have to investigate the code for \code{xtableFtable} and/or \code{print.xtableFtable}. } \seealso{ \code{\link{ftable}}, \code{\link{print.ftable}}, \code{\link{xtable}}, \code{\link{caption}}, \code{\link{label}}, \code{\link{align}}, \code{\link{digits}}, \code{\link{display}}, \code{\link{formatC}} } \examples{ data(mtcars) mtcars$cyl <- factor(mtcars$cyl, levels = c("4","6","8"), labels = c("four","six","eight")) tbl <- ftable(mtcars$cyl, mtcars$vs, mtcars$am, mtcars$gear, row.vars = c(2, 4), dnn = c("Cylinders", "V/S", "Transmission", "Gears")) xftbl <- xtableFtable(tbl, method = "compact") print.xtableFtable(xftbl, booktabs = TRUE) xftbl <- xtableFtable(tbl, method = "row.compact") print.xtableFtable(xftbl, rotate.colnames = TRUE, rotate.rownames = TRUE) } \keyword{ category } \keyword{ print } xtable/man/xtable-internal.Rd0000644000176200001440000000046512652545524015703 0ustar liggesusers\name{xtable-internal} \alias{xtableLSMeans} \alias{lagImpactMat} \title{Internal xtable Functions} \description{ Internal functions for the package xtable } \details{ Functions which are either not intended to be called by the user or are waiting to be documented. } \keyword{ internal } xtable/man/tli.Rd0000644000176200001440000000137612611336442013374 0ustar liggesusers\name{tli} \alias{tli} \title{Math scores from Texas Assessment of Academic Skills (TAAS)} \description{ This data set contains math scores and demographic data of 100 randomly selected students participating in the Texas Assessment of Academic Skills (TAAS). } \usage{data(tli)} \format{A \code{data.frame} containing 100 observations with the following columns: \describe{ \item{\code{grade}}{Year in school of student} \item{\code{sex}}{Gender of student} \item{\code{disadvg}}{Is the student economically disadvantaged?} \item{\code{ethnicty}}{Race of student} \item{\code{tlimth}}{Math score of student} } } \source{Texas Education Agency, \url{http://www.tea.state.tx.us}} \keyword{datasets} xtable/man/xtableList.Rd0000644000176200001440000004164512652511733014725 0ustar liggesusers\name{xtableList} \alias{xtableList} \alias{print.xtableList} \title{ Create and Export Lists of Tables } \description{ \code{xtableList} creates an object which contains information about lists of table which can be used by \code{print.xtableList} to produce a character string which when included in a document produces a nicely formatted table made up of the information in the individual tables which comprised the original list of tables. } \usage{ xtableList(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, ...) \method{print}{xtableList}(x, type = getOption("xtable.type", "latex"), file = getOption("xtable.file", ""), append = getOption("xtable.append", FALSE), floating = getOption("xtable.floating", TRUE), floating.environment = getOption("xtable.floating.environment", "table"), table.placement = getOption("xtable.table.placement", "ht"), caption.placement = getOption("xtable.caption.placement", "bottom"), caption.width = getOption("xtable.caption.width", NULL), latex.environments = getOption("xtable.latex.environments", c("center")), tabular.environment = getOption("xtable.tabular.environment", "tabular"), size = getOption("xtable.size", NULL), hline.after = NULL, NA.string = getOption("xtable.NA.string", ""), include.rownames = getOption("xtable.include.rownames", TRUE), colnames.format = "single", only.contents = getOption("xtable.only.contents", FALSE), add.to.row = NULL, sanitize.text.function = getOption("xtable.sanitize.text.function", NULL), sanitize.rownames.function = getOption("xtable.sanitize.rownames.function", sanitize.text.function), sanitize.colnames.function = getOption("xtable.sanitize.colnames.function", sanitize.text.function), sanitize.subheadings.function = getOption("xtable.sanitize.subheadings.function", sanitize.text.function), sanitize.message.function = getOption("xtable.sanitize.message.function", sanitize.text.function), math.style.negative = getOption("xtable.math.style.negative", FALSE), math.style.exponents = getOption("xtable.math.style.exponents", FALSE), html.table.attributes = getOption("xtable.html.table.attributes", "border=1"), print.results = getOption("xtable.print.results", TRUE), format.args = getOption("xtable.format.args", NULL), rotate.rownames = getOption("xtable.rotate.rownames", FALSE), rotate.colnames = getOption("xtable.rotate.colnames", FALSE), booktabs = getOption("xtable.booktabs", FALSE), scalebox = getOption("xtable.scalebox", NULL), width = getOption("xtable.width", NULL), comment = getOption("xtable.comment", TRUE), timestamp = getOption("xtable.timestamp", date()), ...) } \arguments{ \item{x}{ For \code{xtableList}, a list of \R objects all of the same class, being a class found among \code{methods(xtable)}. The list may also have attributes \code{"subheadings"} and \code{"message"}. The attribute \code{"subheadings"} should be a character vector of the same length as the list \code{x}. The attribute \code{"message"} should be a character vector of any length. For \code{print.xtableList}, an object of class \code{xtableList} produced by a call to \code{xtableList}.} \item{caption}{Character vector of length 1 or 2 containing the table's caption or title. If length is 2, the second item is the "short caption" used when LaTeX generates a "List of Tables". Set to \code{NULL} to suppress the caption. Default value is \code{NULL}. } \item{label}{Character vector of length 1 containing the LaTeX label or HTML anchor. Set to \code{NULL} to suppress the label. Default value is \code{NULL}. } \item{align}{Character vector of length equal to the number of columns of the resulting table, indicating the alignment of the corresponding columns. Also, \code{"|"} may be used to produce vertical lines between columns in LaTeX tables, but these are effectively ignored when considering the required length of the supplied vector. If a character vector of length one is supplied, it is split as \code{strsplit(align, "")[[1]]} before processing. Since the row names are printed in the first column, the length of \code{align} is one greater than \code{ncol(x)} if \code{x} is a \code{data.frame}. Use \code{"l"}, \code{"r"}, and \code{"c"} to denote left, right, and center alignment, respectively. Use \code{"p{3cm}"} etc. for a LaTeX column of the specified width. For HTML output the \code{"p"} alignment is interpreted as \code{"l"}, ignoring the width request. Default depends on the class of \code{x}. } \item{digits}{ Either \code{NULL}, or a vector of length one, or a vector of length equal to the number of columns in the resulting table, indicating the number of digits to display in the corresponding columns, or a list if length equal to the number of R objects making up \code{x}, all members being vectors of the same length, either length one or of length equal to the number of columns in the resulting table. See \sQuote{Details} for further information.} \item{display}{ Either \code{NULL}, or a vector of length one, or a vector of length equal to the number of columns in the resulting table, indicating the format of the corresponding columns, or a list if length equal to the number of R objects making up \code{x}, all members being vectors of the same length, either length one or of length equal to the number of columns in the resulting table. See \sQuote{Details} for further information.} \item{type}{Type of table to produce. Possible values for \code{type} are \code{"latex"} or \code{"html"}. Default value is \code{"latex"}.} \item{file}{Name of file where the resulting code should be saved. If \code{file=""}, output is displayed on screen. Note that the function also (invisibly) returns a character vector of the results (which can be helpful for post-processing). Default value is \code{""}.} \item{append}{If \code{TRUE} and \code{file!=""}, code will be appended to \code{file} instead of overwriting \code{file}. Default value is \code{FALSE}.} \item{floating}{If \code{TRUE} and \code{type="latex"}, the resulting table will be a floating table (using, for example, \code{\\begin\{table\}} and \code{\\end\{table\}}). See \code{floating.environment} below. Default value is \code{TRUE}. } \item{floating.environment}{If \code{floating=TRUE} and \code{type="latex"}, the resulting table uses the specified floating environment. Possible values include \code{"table"}, \code{"table*"}, and other floating environments defined in LaTeX packages. Default value is \code{"table"}.} \item{table.placement}{If \code{floating=TRUE} and \code{type="latex"}, the floating table will have placement given by \code{table.placement} where \code{table.placement} must be \code{NULL} or contain only elements of \{"h","t","b","p","!","H"\}. Default value is \code{"ht"}.} \item{caption.placement}{The caption will be placed at the bottom of the table if \code{caption.placement} is \code{"bottom"} and at the top of the table if it equals \code{"top"}. Default value is \code{"bottom"}.} \item{caption.width}{The caption will be placed in a \code{"parbox"} of the specified width if \code{caption.width} is not \code{NULL} and \code{type="latex"}. Default value is \code{NULL}.} \item{latex.environments}{If \code{floating=TRUE} and \code{type="latex"}, the specified LaTeX environments (provided as a character vector) will enclose the tabular environment. Default value is \code{"center"}. } \item{tabular.environment}{When \code{type="latex"}, the tabular environment that will be used. When working with tables that extend more than one page, using \code{tabular.environment="longtable"} with the corresponding LaTeX package (see Fairbairns, 2005) allows one to typeset them uniformly. Note that \code{floating} should be set to \code{FALSE} when using the \code{longtable} environment. Default value is \code{"tabular"}.} \item{size}{A character vector that is inserted just before the tabular environment starts. This can be used to set the font size and a variety of other table settings. Initial backslashes are automatically prefixed, if not supplied by user. Default value is \code{NULL}. } \item{hline.after}{When \code{type="latex"}, a vector of numbers between -1 and the number of rows in the resulting table, inclusive, indicating the rows after which a horizontal line should appear. Determining row numbers is not straightforward since some lines in the resulting table don't enter into the count. The default depends on the value of \code{col.names.format}.} \item{NA.string}{String to be used for missing values in table entries. Default value is \code{""}.} \item{include.rownames}{If \code{TRUE} the rows names are printed. Default value is \code{TRUE}.} \item{colnames.format}{Either \code{"single"} or \code{"multiple"}. Default is \code{"single"}.} \item{only.contents}{If \code{TRUE} only the rows of the table are printed. Default value is \code{FALSE}. } \item{add.to.row}{A list of two components. The first component (which should be called 'pos') is a list that contains the position of rows on which extra commands should be added at the end. The second component (which should be called 'command') is a character vector of the same length as the first component, which contains the command that should be added at the end of the specified rows. Default value is \code{NULL}, i.e. do not add commands.} \item{sanitize.text.function}{All non-numeric entries (except row and column names) are sanitized in an attempt to remove characters which have special meaning for the output format. If \code{sanitize.text.function} is not \code{NULL}, it should be a function taking a character vector and returning one, and will be used for the sanitization instead of the default internal function. Default value is \code{NULL}.} \item{sanitize.rownames.function}{Like the \code{sanitize.text.function}, but applicable to row names. The default uses the \code{sanitize.text.function}. } \item{sanitize.colnames.function}{Like the \code{sanitize.text.function}, but applicable to column names. The default uses the \code{sanitize.text.function}. } \item{sanitize.subheadings.function}{Like the \code{sanitize.text.function}, but applicable to subheadings. The default uses the \code{sanitize.text.function}. } \item{sanitize.message.function}{Like the \code{sanitize.text.function}, but applicable to the message. The default uses the \code{sanitize.text.function}. } \item{math.style.negative}{In a LaTeX table, if \code{TRUE}, then use $-$ for the negative sign (as was the behavior prior to version 1.5-3). Default value is \code{FALSE}.} \item{math.style.exponents}{In a LaTeX table, if \code{TRUE} or \code{"$$"}, then use \verb{$5 \times 10^{5}$} for 5e5. If \code{"ensuremath"}, then use \verb{\\ensuremath{5 \times 10^{5}}} for 5e5. If \code{"UTF-8"} or \code{"UTF-8"}, then use UTF-8 to approximate the LaTeX typsetting for 5e5. Default value is \code{FALSE}.} \item{html.table.attributes}{In an HTML table, attributes associated with the \code{
    } tag. Default value is \code{"border=1"}.} \item{print.results}{If \code{TRUE}, the generated table is printed to standard output. Set this to \code{FALSE} if you will just be using the character vector that is returned invisibly. Default value is \code{TRUE}.} \item{format.args}{List of arguments for the \code{formatC} function. For example, standard German number separators can be specified as \code{format.args=list(big.mark = "'", decimal.mark = ","))}. The arguments \code{digits} and \code{format} should not be included in this list. See details. Default value is \code{NULL}.} \item{rotate.rownames}{If \code{TRUE}, the row names are displayed vertically in LaTeX. Default value is \code{FALSE}.} \item{rotate.colnames}{If \code{TRUE}, the column names are displayed vertically in LaTeX. Default value is \code{FALSE}.} \item{booktabs}{If \code{TRUE}, the \code{toprule}, \code{midrule} and \code{bottomrule} commands from the LaTeX "booktabs" package are used rather than \code{hline} for the horizontal line tags. } \item{scalebox}{If not \code{NULL}, a \code{scalebox} clause will be added around the tabular environment with the specified value used as the scaling factor. Default value is \code{NULL}.} \item{width}{If not \code{NULL}, the specified value is included in parentheses between the tabular environment \code{begin} tag and the alignment specification. This allows specification of the table width when using tabular environments such as \code{tabular*} and \code{tabularx}. Note that table width specification is not supported with the \code{tabular} or \code{longtable} environments. Default value is \code{NULL}.} \item{comment}{If \code{TRUE}, the version and timestamp comment is included. Default value is \code{TRUE}. } \item{timestamp}{Timestamp to include in LaTeX comment. Set this to \code{NULL} to exclude the timestamp. Default value is \code{date()}. } \item{\dots}{Additional arguments. (Currently ignored.)} } \details{ \code{xtableList} produces an object suitable for printing using \code{print.xtableList}. The elements of the list \code{x} supplied to \code{xtableList} must all have the same structure. When these list items are submitted to \code{xtable} the resulting table must have the same number of columns with the same column names and type of data. The values supplied to arguments \code{digits} and \code{display}, must be composed of elements as specified in those same arguments for the function \code{\link{xtable}}. See the help for \code{\link{xtable}} for details. \code{print.xtableList} produces tables in two different formats depending on the value of \code{col.names.format}. If \code{col.names.format = "single"}, the resulting table has only a single heading row. If \code{col.names.format = "multiple"} there is a heading row for each of the subtables making up the complete table. By default if \code{col.names.format = "single"}, there are horizontal lines above and below the heading row, and at the end of each subtable. If \code{col.names.format = "multiple"}, there are horizontal lines above and below each appearance of the heading row, and at the end of each subtable. If \code{"subheadings"} is not \code{NULL}, the individual elements of this vector (which can include newlines \verb{\\n}) produce a heading line or lines for the subtables. When \code{col.names.format = "multiple"} these subheadings appear \emph{above} the heading rows. If \code{"message"} is not \code{NULL} the vector produces a line or lines at the end of the table. Consult the vignette \sQuote{The \code{xtableList} Gallery} to see the behaviour of these functions. Note that at present there is no code for \code{type = "html"}. } \value{ \code{xtableList} produces an object of class \code{"xtableList"}. An object of this class is a list of \code{"xtable"} objects with some additional attributes. Each element of the list can have a \code{"subheading"} attribute. The list can also have a \code{"message"} attribute. \code{print.xtableList} produces a character string containing LaTeX markup which produces a nicely formatted table comprised of subtables, when included in a LaTeX document. } \author{ David Scott \email{d.scott@auckland.ac.nz}. } \note{ The functions \code{xtableList} and \code{print.xtableList} are new and their behaviour may change in the future based on user experience and recommendations. } \seealso{ \code{\link{xtable}}, \code{\link{caption}}, \code{\link{label}}, \code{\link{align}}, \code{\link{digits}}, \code{\link{display}}, \code{\link{formatC}}, \code{\link{print.xtable}}. } \examples{ data(mtcars) mtcars <- mtcars[, 1:6] mtcarsList <- split(mtcars, f = mtcars$cyl) attr(mtcarsList, "subheadings") <- paste0("Number of cylinders = ", names(mtcarsList)) attr(mtcarsList, "message") <- c("Line 1 of Message", "Line 2 of Message") xList <- xtableList(mtcarsList) print.xtableList(xList) print.xtableList(xList, colnames.format = "multiple") } \keyword{ print } xtable/man/print.xtable.Rd0000644000176200001440000003236612652511733015224 0ustar liggesusers\name{print.xtable} \alias{print.xtable} \title{Print Export Tables} \description{ Function returning and displaying or writing to disk the LaTeX or HTML code associated with the supplied object of class \code{xtable}. } \usage{ \method{print}{xtable}(x, type = getOption("xtable.type", "latex"), file = getOption("xtable.file", ""), append = getOption("xtable.append", FALSE), floating = getOption("xtable.floating", TRUE), floating.environment = getOption("xtable.floating.environment", "table"), table.placement = getOption("xtable.table.placement", "ht"), caption.placement = getOption("xtable.caption.placement", "bottom"), caption.width = getOption("xtable.caption.width", NULL), latex.environments = getOption("xtable.latex.environments", c("center")), tabular.environment = getOption("xtable.tabular.environment", "tabular"), size = getOption("xtable.size", NULL), hline.after = getOption("xtable.hline.after", c(-1,0,nrow(x))), NA.string = getOption("xtable.NA.string", ""), include.rownames = getOption("xtable.include.rownames", TRUE), include.colnames = getOption("xtable.include.colnames", TRUE), only.contents = getOption("xtable.only.contents", FALSE), add.to.row = getOption("xtable.add.to.row", NULL), sanitize.text.function = getOption("xtable.sanitize.text.function", NULL), sanitize.rownames.function = getOption("xtable.sanitize.rownames.function", sanitize.text.function), sanitize.colnames.function = getOption("xtable.sanitize.colnames.function", sanitize.text.function), math.style.negative = getOption("xtable.math.style.negative", FALSE), math.style.exponents = getOption("xtable.math.style.exponents", FALSE), html.table.attributes = getOption("xtable.html.table.attributes", "border=1"), print.results = getOption("xtable.print.results", TRUE), format.args = getOption("xtable.format.args", NULL), rotate.rownames = getOption("xtable.rotate.rownames", FALSE), rotate.colnames = getOption("xtable.rotate.colnames", FALSE), booktabs = getOption("xtable.booktabs", FALSE), scalebox = getOption("xtable.scalebox", NULL), width = getOption("xtable.width", NULL), comment = getOption("xtable.comment", TRUE), timestamp = getOption("xtable.timestamp", date()), ...)} \arguments{ \item{x}{An object of class \code{"xtable"}.} \item{type}{Type of table to produce. Possible values for \code{type} are \code{"latex"} or \code{"html"}. Default value is \code{"latex"}.} \item{file}{Name of file where the resulting code should be saved. If \code{file=""}, output is displayed on screen. Note that the function also (invisibly) returns a character vector of the results (which can be helpful for post-processing). Default value is \code{""}.} \item{append}{If \code{TRUE} and \code{file!=""}, code will be appended to \code{file} instead of overwriting \code{file}. Default value is \code{FALSE}.} \item{floating}{If \code{TRUE} and \code{type="latex"}, the resulting table will be a floating table (using, for example, \code{\\begin\{table\}} and \code{\\end\{table\}}). See \code{floating.environment} below. Default value is \code{TRUE}. } \item{floating.environment}{If \code{floating=TRUE} and \code{type="latex"}, the resulting table uses the specified floating environment. Possible values include \code{"table"}, \code{"table*"}, and other floating environments defined in LaTeX packages. Default value is \code{"table"}.} \item{table.placement}{If \code{floating=TRUE} and \code{type="latex"}, the floating table will have placement given by \code{table.placement} where \code{table.placement} must be \code{NULL} or contain only elements of \{"h","t","b","p","!","H"\}. Default value is \code{"ht"}.} \item{caption.placement}{The caption will be placed at the bottom of the table if \code{caption.placement} is \code{"bottom"} and at the top of the table if it equals \code{"top"}. Default value is \code{"bottom"}.} \item{caption.width}{The caption will be placed in a \code{"parbox"} of the specified width if \code{caption.width} is not \code{NULL} and \code{type="latex"}. Default value is \code{NULL}.} \item{latex.environments}{If \code{floating=TRUE} and \code{type="latex"}, the specified LaTeX environments (provided as a character vector) will enclose the tabular environment. Default value is \code{"center"}. } \item{tabular.environment}{When \code{type="latex"}, the tabular environment that will be used. When working with tables that extend more than one page, using \code{tabular.environment="longtable"} with the corresponding LaTeX package (see Fairbairns, 2005) allows one to typeset them uniformly. Note that \code{floating} should be set to \code{FALSE} when using the \code{longtable} environment. Default value is \code{"tabular"}.} \item{size}{A character vector that is inserted just before the tabular environment starts. This can be used to set the font size and a variety of other table settings. Initial backslashes are automatically prefixed, if not supplied by user. Default value is \code{NULL}. } \item{hline.after}{When \code{type="latex"}, a vector of numbers between -1 and \code{nrow(x)}, inclusive, indicating the rows after which a horizontal line should appear. If \code{NULL} is used no lines are produced. Repeated values are allowed. Default value is \code{c(-1,0,nrow(x))} which means draw a line before and after the columns names and at the end of the table.} \item{NA.string}{String to be used for missing values in table entries. Default value is \code{""}.} \item{include.rownames}{If \code{TRUE} the rows names are printed. Default value is \code{TRUE}.} \item{include.colnames}{If \code{TRUE} the columns names are printed. Default value is \code{TRUE}.} \item{only.contents}{If \code{TRUE} only the rows of the table are printed. Default value is \code{FALSE}. } \item{add.to.row}{A list of two components. The first component (which should be called 'pos') is a list that contains the position of rows on which extra commands should be added at the end. The second component (which should be called 'command') is a character vector of the same length as the first component, which contains the command that should be added at the end of the specified rows. Default value is \code{NULL}, i.e. do not add commands.} \item{sanitize.text.function}{All non-numeric entries (except row and column names) are sanitized in an attempt to remove characters which have special meaning for the output format. If \code{sanitize.text.function} is not \code{NULL}, it should be a function taking a character vector and returning one, and will be used for the sanitization instead of the default internal function. Default value is \code{NULL}.} \item{sanitize.rownames.function}{Like the \code{sanitize.text.function}, but applicable to row names. The default uses the \code{sanitize.text.function}. } \item{sanitize.colnames.function}{Like the \code{sanitize.text.function}, but applicable to column names. The default uses the \code{sanitize.text.function}. } \item{math.style.negative}{In a LaTeX table, if \code{TRUE}, then use $-$ for the negative sign (as was the behavior prior to version 1.5-3). Default value is \code{FALSE}.} \item{math.style.exponents}{In a LaTeX table, if \code{TRUE} or \code{"$$"}, then use \verb{$5 \times 10^{5}$} for 5e5. If \code{"ensuremath"}, then use \verb{\\ensuremath{5 \times 10^{5}}} for 5e5. If \code{"UTF-8"} or \code{"UTF-8"}, then use UTF-8 to approximate the LaTeX typsetting for 5e5. Default value is \code{FALSE}.} \item{html.table.attributes}{In an HTML table, attributes associated with the \code{
    } tag. Default value is \code{"border=1"}.} \item{print.results}{If \code{TRUE}, the generated table is printed to standard output. Set this to \code{FALSE} if you will just be using the character vector that is returned invisibly. Default value is \code{TRUE}.} \item{format.args}{List of arguments for the \code{formatC} function. For example, standard German number separators can be specified as \code{format.args=list(big.mark = "'", decimal.mark = ","))}. The arguments \code{digits} and \code{format} should not be included in this list. See details. Default value is \code{NULL}.} \item{rotate.rownames}{If \code{TRUE}, the row names are displayed vertically in LaTeX. Default value is \code{FALSE}.} \item{rotate.colnames}{If \code{TRUE}, the column names are displayed vertically in LaTeX. Default value is \code{FALSE}.} \item{booktabs}{If \code{TRUE}, the \code{toprule}, \code{midrule} and \code{bottomrule} commands from the LaTeX "booktabs" package are used rather than \code{hline} for the horizontal line tags. } \item{scalebox}{If not \code{NULL}, a \code{scalebox} clause will be added around the tabular environment with the specified value used as the scaling factor. Default value is \code{NULL}.} \item{width}{If not \code{NULL}, the specified value is included in parentheses between the tabular environment \code{begin} tag and the alignment specification. This allows specification of the table width when using tabular environments such as \code{tabular*} and \code{tabularx}. Note that table width specification is not supported with the \code{tabular} or \code{longtable} environments. Default value is \code{NULL}.} \item{comment}{If \code{TRUE}, the version and timestamp comment is included. Default value is \code{TRUE}. } \item{timestamp}{Timestamp to include in LaTeX comment. Set this to \code{NULL} to exclude the timestamp. Default value is \code{date()}. } \item{...}{Additional arguments. (Currently ignored.) } } \details{ This function displays or writes to disk the code to produce a table associated with an object \code{x} of class \code{"xtable"}. The resulting code is either a LaTeX or HTML table, depending on the value of \code{type}. The function also (invisibly) returns a character vector of the results (which can be helpful for post-processing). Since version 1.4 the non default behavior of \code{hline.after} is changed. To obtain the same results as the previous versions add to the \code{hline.after} vector the vector \code{c(-1, 0, nrow(x))} where \code{nrow(x)} is the numbers of rows of the object. From version 1.4-3, all non-numeric columns are sanitized, and all LaTeX special characters are sanitized for LaTeX output. See Section 3 of the \code{xtableGallery} vignette for an example of customizing the sanitization. From version 1.4-4, the sanitization also applies to column names. To remove any text sanitization, specify \code{sanitize.text.function=function(x){x}}. From version 1.6-1 the default values for the arguments other than \code{x} are obtained using \code{getOption()}. Hence the user can set the values once with \code{options()} rather than setting them in every call to \code{print.xtable()}. The argument \code{format.args} is used to supply arguments to the \code{formatC} function, but will throw an error if values for \code{digits} or \code{format} are included in the list of arguments. The recommended approach to specify \code{digits} is to supply the argument \code{digits} to \code{xtable}, and to specify \code{format} supply the argument \code{display} to \code{xtable}. See the examples. } \author{ David Dahl \email{dahl@stat.byu.edu} with contributions and suggestions from many others (see source code). } \references{ Fairbairns, Robin (2005) \emph{Tables longer than a single page.} The UK List of TeX Frequently Asked Questions on the Web. \url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=longtab} } \seealso{ \code{\link{xtable}}, \code{\link{caption}}, \code{\link{label}}, \code{\link{align}}, \code{\link{digits}}, \code{\link{display}}, \code{\link{formatC}} } \examples{ df <- data.frame(A = c(1.00123, 33.1, 6), B = c(111111, 3333333, 3123.233)) ## The following code gives the error ## formal argument "digits" matched by multiple actual arguments ## print(xtable(df, display = c("s","e","e")), ## format.args = list(digits = 3, big.mark = " ", decimal.mark = ",")) ## specify digits as argument to xtable instead print(xtable(df, display = c("s","f","f"), digits = 4), format.args = list(big.mark = " ", decimal.mark = ",")) ## The following code gives the error ## formal argument "format" matched by multiple actual arguments ## print(xtable(df, digits = 4), ## format.args = list(format = c("s","e","e"), ## big.mark = " ", decimal.mark = ",")) ## specify format using display argument in xtable print(xtable(df, display = c("s","e","e"), digits = 4), format.args = list(big.mark = " ", decimal.mark = ",")) } \keyword{print} xtable/man/string.Rd0000644000176200001440000000173212644573436014122 0ustar liggesusers\name{string} \alias{string} \alias{print.string} \alias{is.string} \alias{as.string} \alias{+.string} \title{String handling functions} \description{Private functions for conveniently working with strings.} \usage{ string(text,file="",append=FALSE) \method{print}{string}(x,...) \method{+}{string}(x,y) as.string(x,file="",append=FALSE) is.string(x) } \arguments{ \item{text}{A character object.} \item{file}{Name of the file that should receive the printed string.} \item{append}{Should the printed string be appended to the file?} \item{x}{A \code{string} object.} \item{y}{A \code{string} object.} \item{...}{Additional arguments. (Currently ignored.)} } \details{ These functions are private functions used by \code{print.xtable}. They are not intended to be used elsewhere. } \author{ David Dahl \email{dahl@stat.byu.edu} with contributions and suggestions from many others (see source code). } \seealso{\code{\link{print.xtable}}} \keyword{print} xtable/man/table.attributes.Rd0000644000176200001440000000257412611336442016061 0ustar liggesusers\name{table.attributes} \alias{caption} \alias{caption.xtable} \alias{caption<-} \alias{caption<-.xtable} \alias{label} \alias{label.xtable} \alias{label<-} \alias{label<-.xtable} \alias{align} \alias{align.xtable} \alias{align<-} \alias{align<-.xtable} \alias{digits} \alias{digits.xtable} \alias{digits<-} \alias{digits<-.xtable} \alias{display} \alias{display.xtable} \alias{display<-} \alias{display<-.xtable} \title{Retrieve and Set Options for Export Tables} \description{Functions retrieving or setting table attributes for the supplied object of class \code{"xtable"}.} \usage{ caption(x,...) caption(x) <- value label(x,...) label(x) <- value align(x,...) align(x) <- value digits(x,...) digits(x) <- value display(x,...) display(x) <- value } \arguments{ \item{x}{An \code{"xtable"} object.} \item{value}{The value of the corresponding attribute.} \item{...}{Additional arguments. (Currently ignored.)} } \details{ These functions retrieve or set table attributes of the object \code{x} of class \code{"xtable"}. See \code{xtable} for a description of the options. } \author{David Dahl \email{dahl@stat.byu.edu} with contributions and suggestions from many others (see source code).} \seealso{ \code{\link{xtable}}, \code{\link{print.xtable}} \code{\link{autoformat}}, \code{\link{xalign}}, \code{\link{xdigits}}, \code{\link{xdisplay}} } \keyword{print} xtable/man/xtableMatharray.Rd0000644000176200001440000001161712645310464015736 0ustar liggesusers\name{xtableMatharray} \alias{xtableMatharray} \title{ Create LaTeX Mathematical Array } \description{ Convert an array of numbers or mathematical expressions into an \code{xtableMatharray} object so it can be printed. A convenience function to enable the printing of arrays in mathematical expressions in LaTeX } \usage{ xtableMatharray(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) } \arguments{ \item{x}{A numeric or character matrix.} \item{caption}{Character vector of length 1 or 2 containing the table's caption or title. If length is 2, the second item is the "short caption" used when LaTeX generates a "List of Tables". Set to \code{NULL} to suppress the caption. Default value is \code{NULL}. Included here only for consistency with \code{xtable} methods. Not expected to be of use.} \item{label}{Character vector of length 1 containing the LaTeX label. Set to \code{NULL} to suppress the label. Default value is \code{NULL}. } \item{align}{Character vector of length equal to the number of columns of the resulting table, indicating the alignment of the corresponding columns. Also, \code{"|"} may be used to produce vertical lines between columns in LaTeX tables, but these are effectively ignored when considering the required length of the supplied vector. If a character vector of length one is supplied, it is split as \code{strsplit(align, "")[[1]]} before processing. Since the row names are printed in the first column, the length of \code{align} is one greater than \code{ncol(x)} if \code{x} is a \code{data.frame}. Use \code{"l"}, \code{"r"}, and \code{"c"} to denote left, right, and center alignment, respectively. Use \code{"p{3cm}"} etc. for a LaTeX column of the specified width. For HTML output the \code{"p"} alignment is interpreted as \code{"l"}, ignoring the width request. Default depends on the class of \code{x}. } \item{digits}{Numeric vector of length equal to one (in which case it will be replicated as necessary) or to the number of columns of the resulting table \bold{or} matrix of the same size as the resulting table, indicating the number of digits to display in the corresponding columns. Since the row names are printed in the first column, the length of the vector \code{digits} or the number of columns of the matrix \code{digits} is one greater than \code{ncol(x)} if \code{x} is a \code{data.frame}. Default depends on the class of \code{x}. If values of \code{digits} are negative, the corresponding values of \code{x} are displayed in scientific format with \code{abs(digits)} digits.} \item{display}{ Character vector of length equal to the number of columns of the resulting table, indicating the format for the corresponding columns. Since the row names are printed in the first column, the length of \code{display} is one greater than \code{ncol(x)} if \code{x} is a \code{data.frame}. These values are passed to the \code{formatC} function. Use \code{"d"} (for integers), \code{"f"}, \code{"e"}, \code{"E"}, \code{"g"}, \code{"G"}, \code{"fg"} (for reals), or \code{"s"} (for strings). \code{"f"} gives numbers in the usual \code{xxx.xxx} format; \code{"e"} and \code{"E"} give \code{n.ddde+nn} or \code{n.dddE+nn} (scientific format); \code{"g"} and \code{"G"} put \code{x[i]} into scientific format only if it saves space to do so. \code{"fg"} uses fixed format as \code{"f"}, but \code{digits} as number of \emph{significant} digits. Note that this can lead to quite long result strings. Default depends on the class of \code{x}.} \item{auto}{ Logical, indicating whether to apply automatic format when no value is passed to \code{align}, \code{digits}, or \code{display}. This \sQuote{autoformat} (based on \code{xalign}, \code{xdigits}, and \code{xdisplay}) can be useful to quickly format a typical \code{matrix} or \code{data.frame}. Default value is \code{FALSE}.} \item{...}{Additional arguments. (Currently ignored.)} } \details{ This function is only usable for production of LaTeX documents, not HTML. Creates an object of class \code{c("xtableMatharray","xtable","data.frame")}, to ensure that it is printed by the print method \code{print.xtableMatharray}. } \value{ An object of class \code{c("xtableMatharray","xtable","data.frame")}. } \author{ David Scott } \seealso{ \code{\link{print.xtableMatharray}} } \examples{ V <- matrix(c(1.140380e-03, 3.010497e-05, 7.334879e-05, 3.010497e-05, 3.320683e-04, -5.284854e-05, 7.334879e-05, -5.284854e-05, 3.520928e-04), nrow = 3) mth <- xtableMatharray(V) class(mth) str(mth) unclass(mth) } \keyword{ print } xtable/man/sanitize.Rd0000644000176200001440000000747212654004206014432 0ustar liggesusers\name{sanitize} \alias{sanitize} \alias{sanitize.numbers} \alias{sanitize.final} \alias{as.is} \alias{as.math} \title{ Sanitization Functions } \description{ Functions for sanitizing elements of a table produced by \pkg{xtable}. Used for dealing with characters which have special meaning in the output format. } \usage{ sanitize(str, type = "latex") sanitize.numbers(str, type, math.style.negative = FALSE, math.style.exponents = FALSE) sanitize.final(str, type) as.is(str) as.math(str, ...) } \arguments{ \item{str}{A character object to be sanitized.} \item{type}{Type of table to produce. Possible values for \code{type} are \code{"latex"} or \code{"html"}. Default value is \code{"latex"}.} \item{math.style.negative}{In a LaTeX table, if \code{TRUE}, then use $-$ for the negative sign (as was the behavior prior to version 1.5-3). Default value is \code{FALSE}.} \item{math.style.exponents}{In a LaTeX table, if \code{TRUE} or \code{"$$"}, then use \verb{$5 \times 10^{5}$} for 5e5. If \code{"ensuremath"}, then use \verb{\ensuremath{5 \times 10^{5}}} for 5e5. If \code{"UTF-8"} or \code{"UTF-8"}, then use UTF-8 to approximate the LaTeX typsetting for 5e5. Default value is \code{FALSE}.} \item{\dots}{Additional arguments. Character strings or character vectors.} } \details{ If \code{type} is \code{"latex"}, \code{sanitize()} will replace special characters such as \verb{&} and the like by strings which will reproduce the actual character, e.g. \verb{&} is replaced by \verb{\\&}. If \code{type} is \code{"html"}, \code{sanitize()} will replace special characters such as \verb{<} and the like by strings which will reproduce the actual character, e.g. \verb{<} is replaced by \verb{<}. When \code{math.style.negative} is \code{TRUE}, and \code{type} is \code{"latex"}, $-$ is used for the negative sign rather than a simple hyphen (-). No effect when \code{type} is \code{"html"}. When \code{type} is \code{"latex"}, and \code{math.style.exponents} is \code{TRUE} or \verb{"$$"}, then use \verb{$5 \times 10^{5}$} for 5e5. If \code{"ensuremath"}, then use \verb{\ensuremath{5 \times 10^{5}}} for 5e5. If \code{"UTF-8"} or \code{"UTF-8"}, then use UTF-8 to approximate the LaTeX typsetting for 5e5. When \code{type} is \code{"latex"} \code{sanitize.final} has no effect. When \code{type} is \code{"html"}, multiple spaces are replaced by a single space and occurrences of \code{' align="left"'} are eliminated. \code{as.is} and \code{as.math} are trivial helper functions to disable sanitizing and to insert a some mathematics in a string respectively. } \value{ Returns the sanitized character object. } \author{ Code was extracted from \code{print.xtable()}, in version 1.8.0 of \pkg{xtable}. Various authors contributed the original code: Jonathan Swinton , Uwe Ligges , and probably David B. Dahl . \code{as.is} and \code{as.math} suggested and provided by Stefan Edwards . } \examples{ insane <- c("&",">", ">","_","\%","$","\\\\","#","^","~","{","}") names(insane) <- c("Ampersand","Greater than","Less than", "Underscore","Percent","Dollar", "Backslash","Hash","Caret","Tilde", "Left brace","Right brace") sanitize(insane, type = "latex") insane <- c("&",">","<") names(insane) <- c("Ampersand","Greater than","Less than") sanitize(insane, type = "html") x <- rnorm(10) sanitize.numbers(x, "latex", TRUE) sanitize.numbers(x*10^(10), "latex", TRUE, TRUE) sanitize.numbers(x, "html", TRUE, TRUE) as.is(insane) as.math("x10^10", ": mathematical expression") } \keyword{print } xtable/man/xtable.Rd0000644000176200001440000004072612652511733014070 0ustar liggesusers\name{xtable} \alias{xtable} \alias{xtable.anova} \alias{xtable.aov} \alias{xtable.aovlist} \alias{xtable.data.frame} \alias{xtable.glm} \alias{xtable.lm} \alias{xtable.matrix} \alias{xtable.xtableMatharray} \alias{xtable.prcomp} \alias{xtable.coxph} \alias{xtable.summary.aov} \alias{xtable.summary.aovlist} \alias{xtable.summary.glm} \alias{xtable.summary.lm} \alias{xtable.summary.prcomp} \alias{xtable.ts} \alias{xtable.table} \alias{xtable.zoo} \alias{xtable.sarlm} \alias{xtable.summary.sarlm} \alias{xtable.gmsar} \alias{xtable.summary.gmsar} \alias{xtable.stsls} \alias{xtable.summary.stsls} \alias{xtable.sarlm.pred} %%%\alias{xtable.lagImpact} \alias{xtable.splm} \alias{xtable.summary.splm} \alias{xtable.sphet} \alias{xtable.summary.sphet} \alias{xtable.spautolm} \alias{xtable.summary.spautolm} \title{Create Export Tables} \description{ Convert an \R object to an \code{xtable} object, which can then be printed as a LaTeX or HTML table. } \usage{ xtable(x, caption = NULL, label = NULL, align = NULL, digits = NULL, display = NULL, auto = FALSE, ...) } \arguments{ \item{x}{An \R object of class found among \code{methods(xtable)}. See below on how to write additional method functions for \code{xtable}.} \item{caption}{Character vector of length 1 or 2 containing the table's caption or title. If length is 2, the second item is the "short caption" used when LaTeX generates a "List of Tables". Set to \code{NULL} to suppress the caption. Default value is \code{NULL}. } \item{label}{Character vector of length 1 containing the LaTeX label or HTML anchor. Set to \code{NULL} to suppress the label. Default value is \code{NULL}. } \item{align}{Character vector of length equal to the number of columns of the resulting table, indicating the alignment of the corresponding columns. Also, \code{"|"} may be used to produce vertical lines between columns in LaTeX tables, but these are effectively ignored when considering the required length of the supplied vector. If a character vector of length one is supplied, it is split as \code{strsplit(align, "")[[1]]} before processing. Since the row names are printed in the first column, the length of \code{align} is one greater than \code{ncol(x)} if \code{x} is a \code{data.frame}. Use \code{"l"}, \code{"r"}, and \code{"c"} to denote left, right, and center alignment, respectively. Use \code{"p{3cm}"} etc. for a LaTeX column of the specified width. For HTML output the \code{"p"} alignment is interpreted as \code{"l"}, ignoring the width request. Default depends on the class of \code{x}. } \item{digits}{ Numeric vector of length equal to one (in which case it will be replicated as necessary) or to the number of columns of the resulting table \bold{or} matrix of the same size as the resulting table, indicating the number of digits to display in the corresponding columns. Since the row names are printed in the first column, the length of the vector \code{digits} or the number of columns of the matrix \code{digits} is one greater than \code{ncol(x)} if \code{x} is a \code{data.frame}. Default depends on the class of \code{x}. If values of \code{digits} are negative, the corresponding values of \code{x} are displayed in scientific format with \code{abs(digits)} digits.} \item{display}{ Character vector of length equal to the number of columns of the resulting table, indicating the format for the corresponding columns. Since the row names are printed in the first column, the length of \code{display} is one greater than \code{ncol(x)} if \code{x} is a \code{data.frame}. These values are passed to the \code{formatC} function. Use \code{"d"} (for integers), \code{"f"}, \code{"e"}, \code{"E"}, \code{"g"}, \code{"G"}, \code{"fg"} (for reals), or \code{"s"} (for strings). \code{"f"} gives numbers in the usual \code{xxx.xxx} format; \code{"e"} and \code{"E"} give \code{n.ddde+nn} or \code{n.dddE+nn} (scientific format); \code{"g"} and \code{"G"} put \code{x[i]} into scientific format only if it saves space to do so. \code{"fg"} uses fixed format as \code{"f"}, but \code{digits} as number of \emph{significant} digits. Note that this can lead to quite long result strings. Default depends on the class of \code{x}.} \item{auto}{ Logical, indicating whether to apply automatic format when no value is passed to \code{align}, \code{digits}, or \code{display}. This \sQuote{autoformat} (based on \code{xalign}, \code{xdigits}, and \code{xdisplay}) can be useful to quickly format a typical \code{matrix} or \code{data.frame}. Default value is \code{FALSE}.} \item{...}{Additional arguments. (Currently ignored.)} } \details{ This function extracts tabular information from \code{x} and returns an object of class \code{"xtable"}. The nature of the table generated depends on the class of \code{x}. For example, \code{aov} objects produce ANOVA tables while \code{data.frame} objects produce a table of the entire data frame. One can optionally provide a caption or label (called an anchor in HTML), as well as formatting specifications. Default values for \code{align}, \code{digits}, and \code{display} are class dependent. The available method functions for \code{xtable} are given by \code{methods(xtable)}. Users can extend the list of available classes by writing methods for the generic function \code{xtable}. These methods functions should have \code{x} as their first argument, with additional arguments to specify \code{caption}, \code{label}, \code{align}, \code{digits}, and \code{display}. Optionally, other arguments may be passed to specify how the object \code{x} should be manipulated. All method functions should return an object whose class is \code{c("xtable","data.frame")}. The resulting object can have attributes \code{caption} and \code{label}, but must have attributes \code{align}, \code{digits}, and \code{display}. } \value{ For most \code{xtable} methods, an object of class \code{"xtable"} which inherits the \code{data.frame} class and contains several additional attributes specifying the table formatting options. } \author{David Dahl \email{dahl@stat.byu.edu} with contributions and suggestions from many others (see source code). } \seealso{ \code{\link{print.xtable}}, \code{\link{caption}}, \code{\link{label}}, \code{\link{align}}, \code{\link{digits}}, \code{\link{display}}, \code{\link{autoformat}}, \code{\link{xalign}}, \code{\link{xdigits}}, \code{\link{xdisplay}}, \code{\link{xtableMatharray}}, \code{\link{xtableList}} } \examples{ ## Load example dataset data(tli) ## Demonstrate data.frame tli.table <- xtable(tli[1:20, ]) print(tli.table) print(tli.table, type = "html") xtable(mtcars) xtable(mtcars, auto = TRUE) ## Demonstrate data.frame with different digits in cells tli.table <- xtable(tli[1:20, ]) display(tli.table)[c(2,6)] <- "f" digits(tli.table) <- matrix(0:4, nrow = 20, ncol = ncol(tli)+1) print(tli.table) print(tli.table, type = "html") ## Demonstrate matrix design.matrix <- model.matrix(~ sex*grade, data = tli[1:20, ]) design.table <- xtable(design.matrix, auto = TRUE) print(design.table) print(design.table, type = "html") ## Demonstrate aov fm1 <- aov(tlimth ~ sex + ethnicty + grade + disadvg, data = tli) fm1.table <- xtable(fm1) print(fm1.table) print(fm1.table, type = "html") ## Demonstrate lm fm2 <- lm(tlimth ~ sex*ethnicty, data = tli) fm2.table <- xtable(fm2) print(fm2.table) print(fm2.table, type = "html") print(xtable(anova(fm2))) print(xtable(anova(fm2)), type = "html") fm2b <- lm(tlimth ~ ethnicty, data = tli) print(xtable(anova(fm2b, fm2))) print(xtable(anova(fm2b, fm2)), type = "html") ## Demonstrate glm fm3 <- glm(disadvg ~ ethnicty*grade, data = tli, family = binomial()) fm3.table <- xtable(fm3) print(fm3.table) print(fm3.table, type = "html") print(xtable(anova(fm3))) print(xtable(anova(fm3)), type = "html") ## Demonstrate aov ## Taken from help(aov) in R 1.1.1 ## From Venables and Ripley (1997) p.210. N <- c(0,1,0,1,1,1,0,0,0,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0) P <- c(1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0) K <- c(1,0,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,1,1,1,0,1,0) yield <- c(49.5,62.8,46.8,57.0,59.8,58.5,55.5,56.0,62.8,55.8,69.5,55.0, 62.0,48.8,45.5,44.2,52.0,51.5,49.8,48.8,57.2,59.0,53.2,56.0) npk <- data.frame(block = gl(6,4), N = factor(N), P = factor(P), K = factor(K), yield = yield) npk.aov <- aov(yield ~ block + N*P*K, npk) op <- options(contrasts = c("contr.helmert", "contr.treatment")) npk.aovE <- aov(yield ~ N*P*K + Error(block), npk) options(op) summary(npk.aov) print(xtable(npk.aov)) print(xtable(anova(npk.aov))) print(xtable(summary(npk.aov))) summary(npk.aovE) print(xtable(npk.aovE), type = "html") print(xtable(summary(npk.aovE)), type = "html") ## Demonstrate lm ## Taken from help(lm) in R 1.1.1 ## Annette Dobson (1990) "An Introduction to Generalized Linear Models". ## Page 9: Plant Weight Data. ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14) trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69) group <- gl(2,10,20, labels = c("Ctl","Trt")) weight <- c(ctl, trt) lm.D9 <- lm(weight ~ group) print(xtable(lm.D9)) print(xtable(anova(lm.D9))) ## Demonstrate glm ## Taken from help(glm) in R 1.1.1 ## Annette Dobson (1990) "An Introduction to Generalized Linear Models". ## Page 93: Randomized Controlled Trial : counts <- c(18,17,15,20,10,20,25,13,12) outcome <- gl(3,1,9) treatment <- gl(3,3) d.AD <- data.frame(treatment, outcome, counts) glm.D93 <- glm(counts ~ outcome + treatment, family = poisson()) print(xtable(glm.D93, align = "r|llrc")) print(xtable(anova(glm.D93)), hline.after = c(1), size = "small") ## Demonstration of additional formatC() arguments. print(fm1.table, format.args = list(big.mark = "'", decimal.mark = ",")) ## Demonstration of "short caption" support. fm1sc <- aov(tlimth ~ sex + ethnicty + grade, data = tli) fm1sc.table <- xtable(fm1sc, caption = c("ANOVA Model with Predictors Sex, Ethnicity, and Grade", "ANOVA: Sex, Ethnicity, Grade")) print(fm1sc.table) ## Demonstration of longtable support. ## Remember to insert \usepackage{longtable} on your LaTeX preamble x <- matrix(rnorm(1000), ncol = 10) x.big <- xtable(x, label = 'tabbig', caption = 'Example of longtable spanning several pages') print(x.big, tabular.environment = 'longtable', floating = FALSE) x <- x[1:30, ] x.small <- xtable(x, label = 'tabsmall', caption = 'regular table env') print(x.small) # default, no longtable ## Demonstration of sidewaystable support. ## Remember to insert \usepackage{rotating} on your LaTeX preamble print(x.small, floating.environment = 'sidewaystable') if(require(stats, quietly = TRUE)) { ## Demonstrate prcomp ## Taken from help(prcomp) in mva package of R 1.1.1 data(USArrests) pr1 <- prcomp(USArrests) print(xtable(pr1)) print(xtable(summary(pr1))) # ## Demonstrate princomp # ## Taken from help(princomp) in mva package of R 1.1.1 # pr2 <- princomp(USArrests) # print(xtable(pr2)) } ## Demonstrate include.rownames, include.colnames, ## only.contents and add.to.row arguments set.seed(2345) res <- matrix(sample(0:9, size = 6*9, replace = TRUE), ncol = 6, nrow = 9) xres <- xtable(res) digits(xres) <- rep(0, 7) addtorow <- list() addtorow$pos <- list() addtorow$pos[[1]] <- c(0, 2) addtorow$pos[[2]] <- 4 addtorow$command <- c('\\vspace{2mm} \n', '\\vspace{10mm} \n') print(xres, add.to.row = addtorow, include.rownames = FALSE, include.colnames = TRUE, only.contents = TRUE, hline.after = c(0, 0, 9, 9)) ## Demonstrate include.rownames, include.colnames, ## only.contents and add.to.row arguments in Rweave files \dontrun{ \begin{small} \setlongtables % For longtable version 3.x or less \begin{longtable}{ <>= cat(paste(c('c', rep('cc', 34/2-1), 'c'), collapse = '@{\\hspace{2pt}}')) @ } \hline \endhead \hline \endfoot <>= library(xtable) set.seed(2345) res <- matrix(sample(0:9, size = 34*90, replace = TRUE), ncol = 34, nrow = 90) xres <- xtable(res) digits(xres) <- rep(0, 35) addtorow <- list() addtorow$pos <- list() addtorow$pos[[1]] <- c(seq(4, 40, 5), seq(49, 85, 5)) addtorow$pos[[2]] <- 45 addtorow$command <- c('\\vspace{2mm} \n', '\\newpage \n') print(xres, add.to.row = addtorow, include.rownames = FALSE, include.colnames = FALSE, only.contents = TRUE, hline.after = NULL) @ \end{longtable} \end{small} } ## Demonstrate sanitization mat <- round(matrix(c(0.9, 0.89, 200, 0.045, 2.0), c(1, 5)), 4) rownames(mat) <- "$y_{t-1}$" colnames(mat) <- c("$R^2$", "$\\\bar{R}^2$", "F-stat", "S.E.E", "DW") print(xtable(mat), type = "latex", sanitize.text.function = function(x){x}) ## Demonstrate booktabs print(tli.table) print(tli.table, hline.after = c(-1,0)) print(tli.table, hline.after = NULL) print(tli.table, add.to.row = list(pos = list(2), command = c("\\vspace{2mm} \n"))) print(tli.table, booktabs = TRUE) print(tli.table, booktabs = TRUE, hline.after = c(-1,0)) print(tli.table, booktabs = TRUE, hline.after = NULL) print(tli.table, booktabs = TRUE, add.to.row = list(pos = list(2), command = c("\\vspace{2mm} \n"))) print(tli.table, booktabs = TRUE, add.to.row = list(pos = list(2), command = c("youhou\n")), tabular.environment = "longtable") \testonly{ for(i in c("latex","html")) { outFileName <- paste("xtable.", ifelse(i=="latex", "tex", i), sep = "") print(tli.table, type = i, file = outFileName, append = FALSE) print(design.table, type = i, file = outFileName, append = TRUE) print(fm1.table, type = i, file = outFileName, append = TRUE) print(fm2.table, type = i, file = outFileName, append = TRUE) print(fm2.table, type = i, file = outFileName, append = TRUE, math.style.negative = TRUE) print(xtable(anova(fm2)), type = i, file = outFileName, append = TRUE) print(xtable(anova(fm2b, fm2)), type = i, file = outFileName, append = TRUE) print(fm3.table, type = i, file = outFileName, append = TRUE) print(xtable(anova(fm3)), type = i, file = outFileName, append = TRUE) print(xtable(npk.aov), type = i, file = outFileName, append = TRUE) print(xtable(anova(npk.aov)), type = i, file = outFileName, append = TRUE) print(xtable(summary(npk.aov)), type = i, file = outFileName, append = TRUE) print(xtable(npk.aovE), type = i, file = outFileName, append = TRUE) print(xtable(summary(npk.aovE)), type = i, file = outFileName, append = TRUE) if(i=="latex") cat("\\\clearpage\n", file = outFileName, append = TRUE) print(xtable(lm.D9), type = i, file = outFileName, append = TRUE, latex.environment = NULL) print(xtable(lm.D9), type = i, file = outFileName, append = TRUE, latex.environment = "") print(xtable(lm.D9), type = i, file = outFileName, append = TRUE, latex.environment = "center") print(xtable(anova(lm.D9)), type = i, file = outFileName, append = TRUE) print(xtable(glm.D93), type = i, file = outFileName, append = TRUE) print(xtable(anova(glm.D93, test = "Chisq")), type = i, file = outFileName, append = TRUE) print(xtable(glm.D93, align = "r|llrc"), include.rownames = FALSE, include.colnames = TRUE, type = i, file = outFileName, append = TRUE) print(xtable(glm.D93, align = "r||llrc"), include.rownames = TRUE, include.colnames = FALSE, type = i, file = outFileName, append = TRUE) print(xtable(glm.D93, align = "|r||llrc"), include.rownames = FALSE, include.colnames = FALSE, type = i, file = outFileName, append = TRUE) print(xtable(glm.D93, align = "|r||llrc|"), type = i, file = outFileName, append = TRUE) print(xtable(anova(glm.D93)), hline.after = c(1), size = "small", type = i, file = outFileName, append = TRUE) if(require(stats, quietly = TRUE)) { print(xtable(pr1), type = i, file = outFileName, append = TRUE) print(xtable(summary(pr1)), type = i, file = outFileName, append = TRUE) # print(xtable(pr2), type = i, file = outFileName, append = TRUE) } temp.table <- xtable(ts(cumsum(1+round(rnorm(100), 2)), start = c(1954, 7), frequency = 12)) caption(temp.table) <- "Time series example" print(temp.table, type = i, file = outFileName, append = TRUE, caption.placement = "top", table.placement = "h") print(temp.table, type = i, file = outFileName, append = TRUE, caption.placement = "bottom", table.placement = "htb") } } } \keyword{file} xtable/man/toLatex.Rd0000644000176200001440000000131612207302772014216 0ustar liggesusers\name{toLatex.xtable} \alias{toLatex.xtable} \title{Convert Table to Latex} \description{ Function creating a LaTeX representation of an object of class \code{xtable}. } \usage{ \method{toLatex}{xtable}(object, ...) } \arguments{ \item{object}{An object of class \code{"xtable"}.} \item{...}{Other arguments to \code{print.xtable}.} } \details{ This function creates a LaTeX representation of an object of class \code{"xtable"}. This is a method for the generic \code{"toLatex"} in the core R package \code{"utils"}. } \author{ Charles Roosen \email{roosen@gmail.com} with contributions and suggestions from many others (see source code). } \seealso{\code{\link{print.xtable}}} \keyword{toLatex}