phangorn/0000755000176200001440000000000013241412170012061 5ustar liggesusersphangorn/inst/0000755000176200001440000000000013241142073013040 5ustar liggesusersphangorn/inst/CITATION0000644000176200001440000000252513201424001014167 0ustar liggesusersnote <- sprintf("(phangorn %s).", meta$Version) citHeader("Use 2011 to cite phangorn in a publication; 2017 for plotting phylogenetic networks. As phangorn is evolving quickly, you may want to cite also its version number", note) bibentry(bibtype = "Article", title = "phangorn: phylogenetic analysis in R", author = personList(as.person("K.P. Schliep")), journal = "Bioinformatics", year = "2011", volume = "27", number = "4", pages = "592--593", url = "https://doi.org/10.1093/bioinformatics/btq706", textVersion = "Schliep K.P. 2011. phangorn: phylogenetic analysis in R. Bioinformatics, 27(4) 592-593") bibentry(bibtype = "Article", author = "Schliep, Klaus and Potts, Alastair J. and Morrison, David A. and Grimm, Guido W.", title = "Intertwining phylogenetic trees and networks", journal = "Methods in Ecology and Evolution", volume = "8", number = "10", issn = "2041-210X", url = "http://dx.doi.org/10.1111/2041-210X.12760", doi = "10.1111/2041-210X.12760", pages = "1212--1220", keywords = "exploratory data analysis, networks, phangorn, R, trees", year = "2017", textVersion = "Schliep, K., Potts, A. J., Morrison, D. A., Grimm, G. W. (2017), Intertwining phylogenetic trees and networks. Methods in Ecology and Evolution, 8: 1212--1220. doi: 10.1111/2041-210X.12760" ) phangorn/inst/README0000644000176200001440000000123213201424001013704 0ustar liggesusersThe following persons and institutions helped in the development of phangorn at one stage or another. Emmanuel Paradis and all the other authors of the APE package. Tim White for provinding some C-code to compute the Hadamard distances. Bennet McComish for providing the allTrees function. Francois-Joiseph Lapointe for feedback on clans and clips. Further thanks to all the user that send bug reports/fixes and have helped to improve this package. Financial support was provided by the Alan Wilson Centre of Molecular Ecology and Evolution and the Muséum national d'Histoire naturelle and Universidade de Vigo. phangorn/inst/extdata/0000755000176200001440000000000013201424001014460 5ustar liggesusersphangorn/inst/extdata/Blosum62.dat0000644000176200001440000000561013201424001016565 0ustar liggesusers 0.735790389698 0.485391055466 1.297446705134 0.543161820899 0.500964408555 3.180100048216 1.45999531047 0.227826574209 0.397358949897 0.240836614802 1.199705704602 3.020833610064 1.839216146992 1.190945703396 0.32980150463 1.1709490428 1.36057419042 1.24048850864 3.761625208368 0.140748891814 5.528919177928 1.95588357496 0.418763308518 1.355872344485 0.798473248968 0.418203192284 0.609846305383 0.423579992176 0.716241444998 1.456141166336 2.414501434208 0.778142664022 0.354058109831 2.43534113114 1.626891056982 0.539859124954 0.605899003687 0.232036445142 0.283017326278 0.418555732462 0.774894022794 0.236202451204 0.186848046932 0.189296292376 0.252718447885 0.800016530518 0.622711669692 0.211888159615 0.218131577594 0.831842640142 0.580737093181 0.372625175087 0.217721159236 0.348072209797 3.890963773304 1.295201266783 5.411115141489 1.593137043457 1.032447924952 0.285078800906 3.945277674515 2.802427151679 0.752042440303 1.022507035889 0.406193586642 0.445570274261 1.253758266664 0.983692987457 0.648441278787 0.222621897958 0.76768882348 2.494896077113 0.55541539747 0.459436173579 0.984311525359 3.364797763104 6.030559379572 1.073061184332 0.492964679748 0.371644693209 0.354861249223 0.281730694207 0.441337471187 0.14435695975 0.291409084165 0.368166464453 0.714533703928 1.517359325954 2.064839703237 0.266924750511 1.77385516883 1.173275900924 0.448133661718 0.494887043702 0.730628272998 0.356008498769 0.858570575674 0.926563934846 0.504086599527 0.527007339151 0.388355409206 0.374555687471 1.047383450722 0.454123625103 0.233597909629 4.325092687057 1.12278310421 2.904101656456 1.582754142065 1.197188415094 1.934870924596 1.769893238937 1.509326253224 1.11702976291 0.35754441246 0.352969184527 1.752165917819 0.918723415746 0.540027644824 1.169129577716 1.729178019485 0.914665954563 1.898173634533 0.934187509431 1.119831358516 1.277480294596 1.071097236007 0.641436011405 0.585407090225 1.17909119726 0.915259857694 1.303875200799 1.488548053722 0.488206118793 1.005451683149 5.15155629227 0.465839367725 0.426382310122 0.191482046247 0.145345046279 0.527664418872 0.758653808642 0.407635648938 0.508358924638 0.30124860078 0.34198578754 0.6914746346 0.332243040634 0.888101098152 2.074324893497 0.252214830027 0.387925622098 0.513128126891 0.718206697586 0.720517441216 0.538222519037 0.261422208965 0.470237733696 0.95898974285 0.596719300346 0.308055737035 4.218953969389 0.674617093228 0.811245856323 0.7179934869 0.951682162246 6.747260430801 0.369405319355 0.796751520761 0.801010243199 4.054419006558 2.187774522005 0.438388343772 0.312858797993 0.258129289418 1.116352478606 0.530785790125 0.524253846338 0.25334079019 0.20155597175 8.311839405458 2.231405688913 0.498138475304 2.575850755315 0.838119610178 0.496908410676 0.561925457442 2.253074051176 0.266508731426 1 0.074 0.052 0.045 0.054 0.025 0.034 0.054 0.074 0.026 0.068 0.099 0.058 0.025 0.047 0.039 0.057 0.051 0.013 0.032 0.073 phangorn/inst/extdata/RtREV.dat0000644000176200001440000000136213201424001016116 0ustar liggesusers 34 51 35 10 30 384 439 92 128 1 32 221 236 78 70 81 10 79 542 1 372 135 41 94 61 48 18 70 30 90 320 91 124 387 34 68 1 24 35 1 104 33 1 1 34 45 18 15 5 110 54 21 3 51 385 38 593 123 20 16 309 141 30 76 34 23 235 57 1 1 156 158 1 37 116 375 581 134 1 7 49 1 70 1 1 7 141 64 179 14 247 97 24 33 55 1 68 52 17 44 10 22 43 1 11 460 102 294 136 75 225 95 152 183 4 24 77 1 20 134 258 64 148 55 117 146 82 7 49 72 25 110 131 69 62 671 5 13 16 1 55 10 17 23 48 39 47 6 111 182 9 14 1 55 47 28 1 131 45 1 21 307 26 64 1 74 1017 14 31 34 176 197 29 21 6 295 36 35 3 1 1048 112 19 236 92 25 39 196 26 59 0.0646 0.0453 0.0376 0.0422 0.0114 0.0606 0.0607 0.0639 0.0273 0.0679 0.1018 0.0751 0.015 0.0287 0.0681 0.0488 0.0622 0.0251 0.0318 0.0619 phangorn/inst/extdata/MtZoa.dat0000644000176200001440000000261313201424001016206 0ustar liggesusers 3.3 1.7 33.6 16.1 3.2 617.0 272.5 61.1 94.6 9.5 7.3 231.0 190.3 19.3 49.1 17.1 6.4 174.0 883.6 3.4 349.4 289.3 7.2 99.3 26.0 82.4 8.9 43.1 2.3 61.7 228.9 55.6 37.5 421.8 14.9 7.4 33.2 0.2 24.3 1.5 48.8 0.2 7.3 3.4 1.6 15.6 4.1 7.9 0.5 59.7 23.0 1.0 3.5 6.6 425.2 0.2 292.3 413.4 0.2 0.2 334.0 163.2 10.1 23.9 8.4 6.7 136.5 3.8 73.7 0.2 264.8 83.9 0.2 52.2 7.1 449.7 636.3 83.0 26.5 0.2 12.9 2.0 167.8 9.5 0.2 5.8 13.1 90.3 234.2 16.3 215.6 61.8 7.5 22.6 0.2 8.1 52.2 20.6 1.3 15.6 2.6 11.4 24.3 5.4 10.5 644.9 11.8 420.2 51.4 656.3 96.4 38.4 257.1 23.1 7.2 15.2 144.9 95.3 32.2 79.7 378.1 3.2 184.6 2.3 199.0 39.4 34.5 5.2 19.4 222.3 50.0 75.5 305.1 19.3 56.9 666.3 3.1 16.9 6.4 0.2 36.1 6.1 3.5 12.3 4.5 9.7 27.2 6.6 48.7 58.2 1.3 10.3 3.6 2.1 13.8 141.6 13.9 76.7 52.3 10.0 4.3 266.5 13.1 5.7 45.0 41.4 590.5 4.2 29.7 29.0 79.8 321.9 5.1 7.1 3.7 243.8 9.0 16.3 23.7 0.3 1710.6 126.1 11.1 279.6 59.6 17.9 49.5 396.4 13.7 15.6 0.068880 0.021037 0.030390 0.020696 0.009966 0.018623 0.024989 0.071968 0.026814 0.085072 0.156717 0.019276 0.050652 0.081712 0.044803 0.080535 0.056386 0.027998 0.037404 0.066083 Ala Arg Asn Asp Cys Gln Glu Gly His Ile Leu Lys Met Phe Pro Ser Thr Trp Tyr Val // end of file Rota-Stabelli, O., Z. Yang, and M. Telford. 2009. MtZoa: a general mitochondrial amino acid substitutions model for animal evolutionary studies. Mol. Phyl. Evol. phangorn/inst/extdata/wag.dat0000644000176200001440000000577713201424001015750 0ustar liggesusers0.551571 0.509848 0.635346 0.738998 0.147304 5.429420 1.027040 0.528191 0.265256 0.0302949 0.908598 3.035500 1.543640 0.616783 0.0988179 1.582850 0.439157 0.947198 6.174160 0.021352 5.469470 1.416720 0.584665 1.125560 0.865584 0.306674 0.330052 0.567717 0.316954 2.137150 3.956290 0.930676 0.248972 4.294110 0.570025 0.249410 0.193335 0.186979 0.554236 0.039437 0.170135 0.113917 0.127395 0.0304501 0.138190 0.397915 0.497671 0.131528 0.0848047 0.384287 0.869489 0.154263 0.0613037 0.499462 3.170970 0.906265 5.351420 3.012010 0.479855 0.0740339 3.894900 2.584430 0.373558 0.890432 0.323832 0.257555 0.893496 0.683162 0.198221 0.103754 0.390482 1.545260 0.315124 0.174100 0.404141 4.257460 4.854020 0.934276 0.210494 0.102711 0.0961621 0.0467304 0.398020 0.0999208 0.0811339 0.049931 0.679371 1.059470 2.115170 0.088836 1.190630 1.438550 0.679489 0.195081 0.423984 0.109404 0.933372 0.682355 0.243570 0.696198 0.0999288 0.415844 0.556896 0.171329 0.161444 3.370790 1.224190 3.974230 1.071760 1.407660 1.028870 0.704939 1.341820 0.740169 0.319440 0.344739 0.967130 0.493905 0.545931 1.613280 2.121110 0.554413 2.030060 0.374866 0.512984 0.857928 0.822765 0.225833 0.473307 1.458160 0.326622 1.386980 1.516120 0.171903 0.795384 4.378020 0.113133 1.163920 0.0719167 0.129767 0.717070 0.215737 0.156557 0.336983 0.262569 0.212483 0.665309 0.137505 0.515706 1.529640 0.139405 0.523742 0.110864 0.240735 0.381533 1.086000 0.325711 0.543833 0.227710 0.196303 0.103604 3.873440 0.420170 0.398618 0.133264 0.428437 6.454280 0.216046 0.786993 0.291148 2.485390 2.006010 0.251849 0.196246 0.152335 1.002140 0.301281 0.588731 0.187247 0.118358 7.821300 1.800340 0.305434 2.058450 0.649892 0.314887 0.232739 1.388230 0.365369 0.314730 0.0866279 0.043972 0.0390894 0.0570451 0.0193078 0.0367281 0.0580589 0.0832518 0.0244313 0.048466 0.086209 0.0620286 0.0195027 0.0384319 0.0457631 0.0695179 0.0610127 0.0143859 0.0352742 0.0708956 A R N D C Q E G H I L K M F P S T W Y V Ala Arg Asn Asp Cys Gln Glu Gly His Ile Leu Lys Met Phe Pro Ser Thr Trp Tyr Val #Symmetrical part of the WAG rate matrix and aa frequencies, #estimated from 3905 globular protein amino acid sequences forming 182 #protein families. #The first part above indicates the symmetric 'exchangeability' #parameters, where s_ij = s_ji. The s_ij above are not scaled, but the #PAML package will perform this scaling. #The second part gives the amino acid frequencies (pi_i) #estimated from the 3905 sequences. The net replacement rate from i to #j is Q_ij = s_ij*pi_j. #Prepared by Simon Whelan and Nick Goldman, December 2000. # #Citation: #Whelan, S. and N. Goldman. 2001. A general empirical model of #protein evolution derived from multiple protein families using #a maximum likelihood approach. Molecular Biology and #Evolution 18:691-699. phangorn/inst/extdata/jtt-dcmut.dat0000644000176200001440000000564613201424001017100 0ustar liggesusers0.531678 0.557967 0.451095 0.827445 0.154899 5.549530 0.574478 1.019843 0.313311 0.105625 0.556725 3.021995 0.768834 0.521646 0.091304 1.066681 0.318483 0.578115 7.766557 0.053907 3.417706 1.740159 1.359652 0.773313 1.272434 0.546389 0.231294 1.115632 0.219970 3.210671 4.025778 1.032342 0.724998 5.684080 0.243768 0.201696 0.361684 0.239195 0.491003 0.115968 0.150559 0.078270 0.111773 0.053769 0.181788 0.310007 0.372261 0.137289 0.061486 0.164593 0.709004 0.097485 0.069492 0.540571 2.335139 0.369437 6.529255 2.529517 0.282466 0.049009 2.966732 1.731684 0.269840 0.525096 0.202562 0.146481 0.469395 0.431045 0.330720 0.190001 0.409202 0.456901 0.175084 0.130379 0.329660 4.831666 3.856906 0.624581 0.138293 0.065314 0.073481 0.032522 0.678335 0.045683 0.043829 0.050212 0.453428 0.777090 2.500294 0.024521 0.436181 1.959599 0.710489 0.121804 0.127164 0.123653 1.608126 0.191994 0.208081 1.141961 0.098580 1.060504 0.216345 0.164215 0.148483 3.887095 1.001551 5.057964 0.589268 2.155331 0.548807 0.312449 1.874296 0.743458 0.405119 0.592511 0.474478 0.285564 0.943971 2.788406 4.582565 0.650282 2.351311 0.425159 0.469823 0.523825 0.331584 0.316862 0.477355 2.553806 0.272514 0.965641 2.114728 0.138904 1.176961 4.777647 0.084329 1.257961 0.027700 0.057466 1.104181 0.172206 0.114381 0.544180 0.128193 0.134510 0.530324 0.089134 0.201334 0.537922 0.069965 0.310927 0.080556 0.139492 0.235601 0.700693 0.453952 2.114852 0.254745 0.063452 0.052500 5.848400 0.303445 0.241094 0.087904 0.189870 5.484236 0.113850 0.628608 0.201094 0.747889 2.924161 0.171995 0.164525 0.315261 0.621323 0.179771 0.465271 0.470140 0.121827 9.533943 1.761439 0.124066 3.038533 0.593478 0.211561 0.408532 1.143980 0.239697 0.165473 0.076862 0.051057 0.042546 0.051269 0.020279 0.041061 0.061820 0.074714 0.022983 0.052569 0.091111 0.059498 0.023414 0.040530 0.050532 0.068225 0.058518 0.014336 0.032303 0.066374 A R N D C Q E G H I L K M F P S T W Y V Ala Arg Asn Asp Cys Gln Glu Gly His Ile Leu Lys Met Phe Pro Ser Thr Trp Tyr Val #JTT rate matrix prepared using the DCMut method* #------------------------------------------------ # #The first part above indicates the symmetric 'exchangeability' parameters s_ij, #where s_ij = s_ji. #The second part gives the amino acid equilibrium frequencies pi_i. #The net replacement rate from i to j is q_ij = pi_j*s_ij. # #This model is usually scaled so that the mean rate of change at #equilibrium, Sum_i Sum_j!=i pi_i*q_ij, equals 1. You should check this #scaling before using the matrix above. The PAML package will perform #this scaling. # #// # #*Prepared by Carolin Kosiol and Nick Goldman, December 2003. # #See the following paper for more details: #Kosiol, C., and Goldman, N. 2005. Different versions of the Dayhoff rate matrix. #Molecular Biology and Evolution 22:193-199. # #See also http://www.ebi.ac.uk/goldman/dayhoff phangorn/inst/extdata/HIVw.dat0000644000176200001440000000317513201424001015775 0ustar liggesusers 0.0744808 0.617509 0.16024 4.43521 0.0674539 29.4087 0.167653 2.86364 0.0604932 0.005 0.005 10.6746 0.342068 0.005 0.005 5.56325 0.0251632 0.201526 12.1233 0.005 3.20656 1.8685 13.4379 0.0604932 10.3969 0.0489798 0.0604932 14.7801 0.005 6.84405 8.59876 2.31779 0.005 18.5465 0.005 0.005 0.005 1.34069 0.987028 0.145124 0.005 0.0342252 0.0390512 0.005 0.005 0.16024 0.586757 0.005 0.005 0.005 2.89048 0.129839 0.0489798 1.76382 9.10246 0.592784 39.8897 10.6655 0.894313 0.005 13.0705 23.9626 0.279425 0.22406 0.817481 0.005 0.005 3.28652 0.201526 0.005 0.005 0.005 0.005 0.0489798 0.005 17.3064 11.3839 4.09564 0.597923 0.005 0.005 0.005 0.362959 0.005 0.005 0.005 0.005 1.48288 7.48781 0.005 0.005 1.00981 0.404723 0.344848 0.005 0.005 3.04502 0.005 0.005 13.9444 0.005 9.83095 0.111928 0.005 0.0342252 8.5942 8.35024 14.5699 0.427881 1.12195 0.16024 0.005 6.27966 0.725157 0.740091 6.14396 0.005 0.392575 4.27939 14.249 24.1422 0.928203 4.54206 0.630395 0.005 0.203091 0.458743 0.0489798 0.95956 9.36345 0.005 4.04802 7.41313 0.114512 4.33701 6.34079 0.005 5.96564 0.005 0.005 5.49894 0.0443298 0.005 2.8258 0.005 0.005 1.37031 0.005 0.005 0.005 0.005 1.10156 0.005 0.005 0.005 5.06475 2.28154 8.34835 0.005 0.005 0.005 47.4889 0.114512 0.005 0.005 0.579198 4.12728 0.005 0.933142 0.490608 0.005 24.8094 0.279425 0.0744808 2.91786 0.005 0.005 2.19952 2.79622 0.827479 24.8231 2.95344 0.128065 14.7683 2.28 0.005 0.862637 0.005 0.005 1.35482 0.0377494 0.057321 0.0891129 0.0342034 0.0240105 0.0437824 0.0618606 0.0838496 0.0156076 0.0983641 0.0577867 0.0641682 0.0158419 0.0422741 0.0458601 0.0550846 0.0813774 0.019597 0.0205847 0.0515639 phangorn/inst/extdata/VT.dat0000644000176200001440000000353213201424001015506 0ustar liggesusers 0.233108 0.199097 0.210797 0.265145 0.105191 0.883422 0.227333 0.031726 0.027495 0.010313 0.310084 0.493763 0.2757 0.205842 0.004315 0.567957 0.25524 0.270417 1.599461 0.005321 0.960976 0.876213 0.156945 0.362028 0.311718 0.050876 0.12866 0.250447 0.078692 0.213164 0.290006 0.134252 0.016695 0.315521 0.104458 0.058131 0.222972 0.08151 0.087225 0.01172 0.046398 0.054602 0.046589 0.051089 0.020039 0.42463 0.192364 0.069245 0.060863 0.091709 0.24353 0.151924 0.087056 0.103552 2.08989 0.393245 1.755838 0.50306 0.261101 0.004067 0.738208 0.88863 0.193243 0.153323 0.093181 0.201204 0.21155 0.08793 0.05742 0.012182 0.02369 0.120801 0.058643 0.04656 0.021157 0.493845 1.105667 0.096474 0.116646 0.042569 0.039769 0.016577 0.051127 0.026235 0.028168 0.050143 0.079807 0.32102 0.946499 0.038261 0.173052 0.399143 0.12848 0.083956 0.160063 0.011137 0.15657 0.205134 0.124492 0.078892 0.054797 0.169784 0.212302 0.010363 0.042564 1.817198 0.292327 0.847049 0.461519 0.17527 0.358017 0.406035 0.612843 0.167406 0.081567 0.214977 0.400072 0.090515 0.138119 0.430431 0.877877 0.204109 0.471268 0.178197 0.079511 0.248992 0.321028 0.136266 0.101117 0.376588 0.243227 0.446646 0.184609 0.08587 0.207143 1.767766 0.030309 0.046417 0.010459 0.011393 0.007732 0.021248 0.018844 0.02399 0.020009 0.034954 0.083439 0.023321 0.022019 0.12805 0.014584 0.035933 0.020437 0.087061 0.09701 0.093268 0.051664 0.042823 0.062544 0.0552 0.037568 0.286027 0.086237 0.189842 0.068689 0.073223 0.898663 0.032043 0.121979 0.094617 0.124746 1.230985 0.113146 0.049824 0.048769 0.163831 0.112027 0.205868 0.082579 0.068575 3.65443 1.337571 0.144587 0.307309 0.247329 0.129315 0.1277 0.740372 0.022134 0.125733 0.078837 0.051238 0.042313 0.053066 0.015175 0.036713 0.061924 0.070852 0.023082 0.062056 0.096371 0.057324 0.023771 0.043296 0.043911 0.063403 0.055897 0.013272 0.034399 0.073101 phangorn/inst/extdata/mtArt.dat0000644000176200001440000001142413201424001016243 0ustar liggesusers 0.2 0.2 0.2 1 4 500 254 36 98 11 0.2 154 262 0.2 0.2 0.2 0.2 183 862 0.2 262 200 0.2 121 12 81 3 44 0.2 41 180 0.2 12 314 15 0.2 26 2 21 7 63 11 7 3 0.2 4 2 13 1 79 16 2 1 6 515 0.2 209 467 2 0.2 349 106 0.2 0.2 3 4 121 5 79 0.2 312 67 0.2 56 0.2 515 885 106 13 5 20 0.2 184 0.2 0.2 1 14 118 263 11 322 49 0.2 17 0.2 0.2 39 8 0.2 1 0.2 12 17 5 15 673 3 398 44 664 52 31 226 11 7 8 144 112 36 87 244 0.2 166 0.2 183 44 43 0.2 19 204 48 70 289 14 47 660 0.2 0.2 8 0.2 22 7 11 2 0.2 0.2 21 16 71 54 0.2 2 0.2 1 4 251 0.2 72 87 8 9 191 12 20 117 71 792 18 30 46 38 340 0.2 23 0.2 350 0.2 14 3 0.2 1855 85 26 281 52 32 61 544 0.2 2 0.054116 0.018227 0.039903 0.020160 0.009709 0.018781 0.024289 0.068183 0.024518 0.092638 0.148658 0.021718 0.061453 0.088668 0.041826 0.091030 0.049194 0.029786 0.039443 0.057700 // this is the end of the file. The rest are notes. Ala Arg Asn Asp Cys Gln Glu Gly His Ile Leu Lys Met Phe Pro Ser Thr Trp Tyr Val This model has been derived from 36 artropoda mitochondrial genomes. Each gene of the given species was aligned individually. Then, alignments of the whole set of 13 genes where concatenated and passed through GBlocks (Castresana, 2000, in JME) with parameters and output: Minimum Number Of Sequences For A Conserved Position: 20 Minimum Number Of Sequences For A Flanking Position: 32 Maximum Number Of Contiguous Nonconserved Positions: 8 Minimum Length Of A Block: 10 Allowed Gap Positions: With Half Use Similarity Matrices: Yes Flank positions of the 40 selected block(s) Flanks: [6 22] [26 44] [61 70] [77 143] [145 185] [208 236] [309 640] [644 802] [831 941] [956 966] [973 1062] [1085 1339] [1343 1702] [1754 1831] [1840 1911] [1916 1987] [2011 2038] [2097 2118] [2125 2143] [2179 2215] [2243 2268] [2277 2288] [2333 2347] [2476 2518] [2539 2558] [2600 2613] [2637 2672] [2738 2759] [2784 2839] [2882 2924] [2948 3097] [3113 3123] [3210 3235] [3239 3322] [3348 3392] [3406 3526] [3588 3617] [3660 3692] [3803 3830] [3909 3928] New number of positions in MtArt-strict.phy.fasta-gb: 2664 (67% of the original 3933 positions) The species included in the analysis were: Harpiosquilla harpax [NCBI_TaxID 287944] Ixodes uriae [NCBI_TaxID 59655] Heptathela hangzhouensis [NCBI_TaxID 216259] Triops longicaudatus [NCBI_TaxID 58777] Gryllotalpa orientalis [NCBI_TaxID 213494] lepidopsocid RS-2001 [NCBI_TaxID 159971] Locusta migratoria [NCBI_TaxID 7004] Drosophila yakuba [NCBI_TaxID 7245] Ostrinia furnacalis [NCBI_TaxID 93504] Megabalanus volcano [NCBI_TaxID 266495] Periplaneta fuliginosa [NCBI_TaxID 36977] Thermobia domestica [NCBI_TaxID 89055] Aleurochiton aceris [NCBI_TaxID 266942] Schizaphis graminum [NCBI_TaxID 13262] Pteronarcys princeps [NCBI_TaxID 285953] Aleurodicus dugesii [NCBI_TaxID 30099] Pollicipes polymerus [NCBI_TaxID 36137] Gomphiocephalus hodgsoni [NCBI_TaxID 221270] Habronattus oregonensis [NCBI_TaxID 130930] Speleonectes tulumensis [NCBI_TaxID 84346] Hutchinsoniella macracantha [NCBI_TaxID 84335] Haemaphysalis flava [NCBI_TaxID 181088] Scutigera coleoptrata [NCBI_TaxID 29022] Vargula hilgendorfii [NCBI_TaxID 6674] Tricholepidion gertschi [NCBI_TaxID 89825] Varroa destructor [NCBI_TaxID 109461] Bombyx mandarina [NCBI_TaxID 7092] Thyropygus sp. [NCBI_TaxID 174155] Tribolium castaneum [NCBI_TaxID 7070] Pagurus longicarpus [NCBI_TaxID 111067] Limulus polyphemus [NCBI_TaxID 6850] Tetrodontophora bielanensis [NCBI_TaxID 48717] Penaeus monodon [NCBI_TaxID 6687] Daphnia pulex [NCBI_TaxID 6669] Apis mellifera [NCBI_TaxID 7469] Anopheles gambiae [NCBI_TaxID 7165] The topology used for inferring the model was: (((Daph_pulex,Trio_longi),((((((Aleu_aceri,Aleu_duges),Schi_grami),lepi_RS_20), ((((Ostr_furna,Bomb_manda),(Dros_yakub,Anop_gambi)),Apis_melli),Trib_casta)), ((Gryl_orien,Locu_migra),(Pter_princ,Peri_fulig))),(Tric_gerts,Ther_domes)), (Scut_coleo,Thyr_sp),Varg_hilge,Hutc_macra,((((Ixod_uriae,Haem_flava),Varr_destr), (Habr_orego,Hept_hangz)),Limu_polyp),(Poll_polym,Mega_volca),(Gomp_hodgs,Tetr_biela), ((Pagu_longi,Pena_monod),Harp_harpa),Spel_tulum)); Note this is not the ML topology but the consensus one (based on morphological data, phylogenetic reconstruction using nuclear genes, etc). Where relationships are not clear, a polytomy was introduced (it contains quite a lot of polytomies!). The model was estimated using Ziheng Yang's Paml software package. A four-categorized gamma distribution was used to account for heterogeneity (alpha was estimated to be 0.47821). Sites with ambiguity data were taken into account. Reference Abascal, F., D. Posada, and R. Zardoya. 2007. MtArt: A new Model of amino acid replacement for Arthropoda. Mol. Biol. Evol. 24:1-5. phangorn/inst/extdata/HIVb.dat0000644000176200001440000000337413201424001015751 0ustar liggesusers 0.307507 0.005 0.295543 1.45504 0.005 17.6612 0.123758 0.351721 0.0860642 0.005 0.0551128 3.4215 0.672052 0.005 0.005 1.48135 0.0749218 0.0792633 10.5872 0.005 2.5602 2.13536 3.65345 0.323401 2.83806 0.897871 0.0619137 3.92775 0.0847613 9.04044 7.64585 1.9169 0.240073 7.05545 0.11974 0.005 0.005 0.677289 0.680565 0.0176792 0.005 0.005 0.00609079 0.005 0.103111 0.215256 0.701427 0.005 0.00876048 0.129777 1.49456 0.005 0.005 1.74171 5.95879 0.005 20.45 7.90443 0.005 0.005 6.54737 4.61482 0.521705 0.005 0.322319 0.0814995 0.0186643 2.51394 0.005 0.005 0.005 0.303676 0.175789 0.005 0.005 11.2065 5.31961 1.28246 0.0141269 0.005 0.005 0.005 9.29815 0.005 0.005 0.291561 0.145558 3.39836 8.52484 0.0342658 0.188025 2.12217 1.28355 0.00739578 0.0342658 0.005 4.47211 0.0120226 0.005 2.45318 0.0410593 2.07757 0.0313862 0.005 0.005 2.46633 3.4791 13.1447 0.52823 4.69314 0.116311 0.005 4.38041 0.382747 1.21803 0.927656 0.504111 0.005 0.956472 5.37762 15.9183 2.86868 6.88667 0.274724 0.739969 0.243589 0.289774 0.369615 0.711594 8.61217 0.0437673 4.67142 4.94026 0.0141269 2.01417 8.93107 0.005 0.991338 0.005 0.005 2.63277 0.026656 0.005 1.21674 0.0695179 0.005 0.748843 0.005 0.089078 0.829343 0.0444506 0.0248728 0.005 0.005 0.00991826 1.76417 0.674653 7.57932 0.113033 0.0792633 0.005 18.6943 0.148168 0.111986 0.005 0.005 15.34 0.0304381 0.648024 0.105652 1.28022 7.61428 0.0812454 0.026656 1.04793 0.420027 0.0209153 1.02847 0.953155 0.005 17.7389 1.41036 0.265829 6.8532 0.723274 0.005 0.0749218 0.709226 0.005 0.0410593 0.060490222 0.066039665 0.044127815 0.042109048 0.020075899 0.053606488 0.071567447 0.072308239 0.022293943 0.069730629 0.098851122 0.056968211 0.019768318 0.028809447 0.046025282 0.05060433 0.053636813 0.033011601 0.028350243 0.061625237 phangorn/inst/extdata/mtREV24.dat0000644000176200001440000000414113201424001016315 0ustar liggesusers 23.18 26.95 13.24 17.67 1.90 794.38 59.93 103.33 58.94 1.90 1.90 220.99 173.56 55.28 75.24 9.77 1.90 63.05 583.55 1.90 313.56 120.71 23.03 53.30 56.77 30.71 6.75 28.28 13.90 165.23 496.13 113.99 141.49 582.40 49.12 1.90 96.49 1.90 27.10 4.34 62.73 8.34 3.31 5.98 12.26 25.46 15.58 15.16 1.90 25.65 39.70 1.90 2.41 11.49 329.09 8.36 141.40 608.70 2.31 1.90 465.58 313.86 22.73 127.67 19.57 14.88 141.88 1.90 65.41 1.90 6.18 47.37 1.90 1.90 11.97 517.98 537.53 91.37 6.37 4.69 15.20 4.98 70.80 19.11 2.67 1.90 48.16 84.67 216.06 6.44 90.82 54.31 23.64 73.31 13.43 31.26 137.29 12.83 1.90 60.97 20.63 40.10 50.10 18.84 17.31 387.86 6.04 494.39 69.02 277.05 54.11 54.71 125.93 77.46 47.70 73.61 105.79 111.16 64.29 169.90 480.72 2.08 238.46 28.01 179.97 94.93 14.82 11.17 44.78 368.43 126.40 136.33 528.17 33.85 128.22 597.21 1.90 21.95 10.68 19.86 33.60 1.90 1.90 10.92 7.08 1.90 32.44 24.00 21.71 7.84 4.21 38.58 9.99 6.48 1.90 191.36 21.21 254.77 38.82 13.12 3.21 670.14 25.01 44.15 51.17 39.96 465.58 16.21 64.92 38.73 26.25 195.06 7.64 1.90 1.90 1.90 19.00 21.14 2.53 1.90 1222.94 91.67 1.90 387.54 6.35 8.23 1.90 204.54 5.37 1.90 0.072 0.019 0.039 0.019 0.006 0.025 0.024 0.056 0.028 0.088 0.169 0.023 0.054 0.061 0.054 0.072 0.086 0.029 0.033 0.043 Ala Arg Asn Asp Cys Gln Glu Gly His Ile Leu Lys Met Phe Pro Ser Thr Trp Tyr Val S_ij = S_ji and PI_i for the mtREV24 model (Adachi and Hasegawa 1996). The PI's used to sum to 0.999 and I changed one of the freq from 0.168 into 0.169 so that the sum is 1. Prepared by Z. Yang according to data sent by Dr M. Hasegawa. This matrix was obtained from the 12 mitochondrial proteins encoded by the same strand of the DNA from a diverse range of species including bird, fish, frog, lamprey, as well as mammals (see Adachi and Hasegawa 1996 for details). The other matrix (mtmam.dat) included in the package is based on the same proteins from mammals only. Adachi, J. and Hasegawa, M. (1996) MOLPHY version 2.3: programs for molecular phylogenetics based on maximum likelihood. Computer Science Monographs of Institute of Statistical Mathematics 28:1-150. phangorn/inst/extdata/trees/0000755000176200001440000000000013201424001015602 5ustar liggesusersphangorn/inst/extdata/trees/RAxML_bestTree.3moles0000644000176200001440000000053413201424001021510 0ustar liggesusers((((Hma:0.03262045163347984666,Mur:0.03886458455630492637):0.00225499947410235475,Uth:0.02580682933153511174):0.00059392541543651757,(Uam:0.02931596331419318927,(Uar:0.00602522464221224522,Uma:0.00593640374580924231):0.02934241311799383120):0.00269684120306867619):0.06379221863907107160,Tor:0.09747395533792581335,Ame:0.24240784786309346743):0.0; phangorn/inst/extdata/trees/RAxML_bipartitionsBranchLabels.AIs0000644000176200001440000000055513201424001024160 0ustar liggesusers(Ame:0.02681059329595153473,((Hma:0.00312706379726812329,(Uth:0.00121026052477198292,Mur:0.00312046250563168155):0.00087036069658183684[39]):0.00122506270256386740[42],((Uar:0.00052373856518729458,Uma:0.00247018618187345041):0.00167792487939210548[83],Uam:0.00184159984063642979):0.00107249327886021345[41]):0.00382497683824970002[100],Tor:0.00848622429823414105); phangorn/inst/extdata/trees/RAxML_bootstrap.mtG0000644000176200001440000001062413201424001021276 0ustar liggesusers(Tor,(Mur,((Uar,Uma),(Hma,(Uam,Uth)))),Ame); (Tor,(Mur,((Uar,Uma),(Hma,(Uam,Uth)))),Ame); (Tor,(Mur,((Uar,Uma),(Hma,(Uam,Uth)))),Ame); (Tor,(Mur,((Uar,Uma),(Hma,(Uam,Uth)))),Ame); (Tor,(Mur,((Uar,Uma),(Hma,(Uam,Uth)))),Ame); (Tor,(Mur,((Uar,Uma),(Hma,(Uam,Uth)))),Ame); (Tor,(Mur,((Uar,Uma),(Hma,(Uam,Uth)))),Ame); (Tor,(Mur,((Uar,Uma),(Hma,(Uam,Uth)))),Ame); (Tor,(Mur,((Uar,Uma),(Hma,(Uam,Uth)))),Ame); (Tor,(Mur,((Uar,Uma),(Hma,(Uam,Uth)))),Ame); (((Uma,Uar),(Mur,(Hma,(Uam,Uth)))),Tor,Ame); ((Mur,((Hma,(Uam,Uth)),(Uma,Uar))),Tor,Ame); ((Mur,((Hma,(Uam,Uth)),(Uma,Uar))),Tor,Ame); ((Mur,((Hma,(Uam,Uth)),(Uma,Uar))),Tor,Ame); ((Mur,((Hma,(Uam,Uth)),(Uma,Uar))),Tor,Ame); (((Uma,Uar),(Mur,(Hma,(Uam,Uth)))),Tor,Ame); ((Mur,((Hma,(Uam,Uth)),(Uma,Uar))),Tor,Ame); (((Uma,Uar),(Mur,(Hma,(Uam,Uth)))),Tor,Ame); ((Mur,((Hma,(Uam,Uth)),(Uma,Uar))),Tor,Ame); ((Mur,((Hma,(Uam,Uth)),(Uma,Uar))),Tor,Ame); (Tor,(Mur,((Uma,Uar),(Hma,(Uam,Uth)))),Ame); (Tor,(Mur,((Uma,Uar),(Hma,(Uam,Uth)))),Ame); (Tor,(Mur,((Uma,Uar),(Hma,(Uam,Uth)))),Ame); (Tor,((Uth,(Hma,Uam)),(Mur,(Uma,Uar))),Ame); (Tor,(Mur,((Uma,Uar),(Hma,(Uam,Uth)))),Ame); (Tor,(Mur,((Uma,Uar),(Hma,(Uam,Uth)))),Ame); (Tor,((Uma,Uar),((Hma,(Uam,Uth)),Mur)),Ame); (Tor,(Mur,((Uma,Uar),(Hma,(Uam,Uth)))),Ame); (Tor,((Uma,Uar),((Hma,(Uam,Uth)),Mur)),Ame); (Tor,((Uma,Uar),((Hma,(Uam,Uth)),Mur)),Ame); (Tor,((Uma,Uar),((Hma,(Uth,Uam)),Mur)),Ame); (Tor,(Mur,((Uma,Uar),(Hma,(Uth,Uam)))),Ame); (Tor,((Hma,(Uth,Uam)),(Mur,(Uma,Uar))),Ame); (Tor,(Mur,((Uma,Uar),(Hma,(Uth,Uam)))),Ame); (Tor,((Uth,(Uam,Hma)),(Mur,(Uma,Uar))),Ame); (Tor,((Uma,Uar),(((Uth,Uam),Hma),Mur)),Ame); (Tor,(Mur,((Uma,Uar),((Uth,Uam),Hma))),Ame); (Tor,(Mur,((Uma,Uar),((Uth,Uam),Hma))),Ame); (Tor,((Uma,Uar),(((Uth,Uam),Hma),Mur)),Ame); (Tor,((Uma,Uar),(((Uth,Uam),Hma),Mur)),Ame); (((Uar,Uma),(Mur,((Hma,Uam),Uth))),Tor,Ame); (((Uar,Uma),(Mur,(Hma,(Uam,Uth)))),Tor,Ame); ((Mur,((Hma,(Uam,Uth)),(Uar,Uma))),Tor,Ame); (((Uar,Uma),(Mur,(Hma,(Uam,Uth)))),Tor,Ame); ((Mur,((Uth,(Hma,Uam)),(Uar,Uma))),Tor,Ame); (((Uar,Uma),(Mur,(Hma,(Uam,Uth)))),Tor,Ame); ((Mur,((Hma,(Uam,Uth)),(Uar,Uma))),Tor,Ame); ((Mur,((Hma,(Uam,Uth)),(Uar,Uma))),Tor,Ame); (((Uar,Uma),(Mur,(Hma,(Uam,Uth)))),Tor,Ame); ((Mur,((Hma,(Uam,Uth)),(Uar,Uma))),Tor,Ame); (Tor,(Mur,((Uth,(Hma,Uam)),(Uma,Uar))),Ame); (Tor,((Uma,Uar),(Mur,(Hma,(Uam,Uth)))),Ame); (Tor,((Hma,(Uam,Uth)),((Uma,Uar),Mur)),Ame); (Tor,((Uma,Uar),(Mur,(Uth,(Hma,Uam)))),Ame); (Tor,((Uma,Uar),(Mur,(Hma,(Uam,Uth)))),Ame); (Tor,((Uma,Uar),(Mur,(Hma,(Uam,Uth)))),Ame); (Tor,(Mur,((Hma,(Uam,Uth)),(Uma,Uar))),Ame); (Tor,((Uma,Uar),(Mur,(Hma,(Uam,Uth)))),Ame); (Tor,(Mur,((Hma,(Uam,Uth)),(Uma,Uar))),Ame); (Tor,(Mur,((Hma,(Uam,Uth)),(Uma,Uar))),Ame); (Tor,(((Uma,Uar),(Hma,(Uth,Uam))),Mur),Ame); (Tor,(((Uma,Uar),(Hma,(Uth,Uam))),Mur),Ame); (Tor,(((Uma,Uar),(Hma,(Uth,Uam))),Mur),Ame); (Tor,((Uma,Uar),((Hma,(Uth,Uam)),Mur)),Ame); (Tor,(Mur,((Uma,Uar),(Hma,(Uth,Uam)))),Ame); (Tor,(Mur,((Uma,Uar),(Hma,(Uth,Uam)))),Ame); (Tor,(Mur,((Uma,Uar),(Hma,(Uth,Uam)))),Ame); (Tor,((Hma,(Uth,Uam)),(Mur,(Uma,Uar))),Ame); (Tor,(Mur,((Uma,Uar),(Hma,(Uth,Uam)))),Ame); (Tor,(Mur,((Uma,Uar),(Hma,(Uth,Uam)))),Ame); (((Uar,Uma),((Hma,(Uth,Uam)),Mur)),Tor,Ame); ((Mur,((Uar,Uma),(Hma,(Uth,Uam)))),Tor,Ame); ((Mur,((Uar,Uma),(Hma,(Uth,Uam)))),Tor,Ame); ((Mur,((Uar,Uma),(Hma,(Uth,Uam)))),Tor,Ame); (((Uar,Uma),((Hma,(Uth,Uam)),Mur)),Tor,Ame); ((Mur,((Uar,Uma),(Hma,(Uth,Uam)))),Tor,Ame); (((Hma,(Uth,Uam)),(Mur,(Uar,Uma))),Tor,Ame); ((Mur,((Uar,Uma),(Hma,(Uth,Uam)))),Tor,Ame); ((Mur,((Uar,Uma),(Hma,(Uth,Uam)))),Tor,Ame); ((Mur,((Uar,Uma),(Hma,(Uth,Uam)))),Tor,Ame); ((Mur,((Uar,Uma),((Uam,Uth),Hma))),Tor,Ame); ((Mur,((Uar,Uma),((Uam,Uth),Hma))),Tor,Ame); ((Mur,((Uar,Uma),((Uam,Uth),Hma))),Tor,Ame); ((Mur,((Uar,Uma),((Uam,Uth),Hma))),Tor,Ame); (((Uar,Uma),(((Uam,Uth),Hma),Mur)),Tor,Ame); ((Mur,((Uar,Uma),(Uth,(Hma,Uam)))),Tor,Ame); ((Mur,((Uar,Uma),(Hma,(Uam,Uth)))),Tor,Ame); ((Mur,((Uar,Uma),(Hma,(Uam,Uth)))),Tor,Ame); (((Uar,Uma),((Hma,(Uam,Uth)),Mur)),Tor,Ame); (((Uar,Uma),((Hma,(Uam,Uth)),Mur)),Tor,Ame); (((Uar,Uma),(((Uam,Uth),Hma),Mur)),Tor,Ame); ((Mur,((Uar,Uma),((Uam,Uth),Hma))),Tor,Ame); ((Mur,((Uar,Uma),((Uam,Uth),Hma))),Tor,Ame); ((Mur,((Uar,Uma),((Uam,Uth),Hma))),Tor,Ame); ((Mur,((Uar,Uma),((Uam,Uth),Hma))),Tor,Ame); (((Uar,Uma),(((Uam,Uth),Hma),Mur)),Tor,Ame); ((Mur,((Uar,Uma),((Uam,Uth),Hma))),Tor,Ame); ((Mur,((Uar,Uma),((Uam,Uth),Hma))),Tor,Ame); ((Mur,((Uar,Uma),(Uth,(Hma,Uam)))),Tor,Ame); ((Mur,((Uar,Uma),(Hma,(Uam,Uth)))),Tor,Ame); phangorn/inst/extdata/trees/woodmouse.mrbayes.nex.con0000644000176200001440000000064313201424001022561 0ustar liggesusers#NEXUS [ID: 2542150086] begin trees; [Note: This tree contains information on the topology, branch lengths (if present), and the probability of the partition indicated by the branch.] tree con_50_majrule = (No305,No1114S,((((No304,No0913S)0.98,No306)0.90,(No0906S,(No0910S,No1202S)0.92)0.54,No0908S,No1206S)0.80,((No0909S,No1007S,No1208S)1.00,(No0912S,No1103S)0.50)0.94)0.80); end; phangorn/inst/extdata/trees/Splits.txt0000644000176200001440000000427713201424001017633 0ustar liggesusersSplitWeight Bootstrap Color 0.07060404 100 Blue 0.04792795 100 Blue 0.042704593 100 Blue 0.030850368 100 Blue 0.023994952 100 Blue 0.02331487 100 Blue 0.012582252 100 Blue 0.007275392 97 Blue 0.0051821293 0 Pink 0.0036041164 99.2 Blue 0.0032304472 96.4 Blue 0.0026902487 0 Pink 0.0022065418 100 Blue 0.0019132489 81.3 Blue 0.001341845 0 Pink 0.0009478839 0 Pink 0.0008527216 3.2 Blue 0.0002126253 0 Pink 0.0001476501 0 Pink 0.015339644 100 Blue 0.0023547208 2.6 Blue 0.0014287664 0 Pink 0.0008373248 0 Pink 0.0006076867 2.6 Blue 0.0006041702 0 Pink 0.000297436 0 Pink 0.0002735536 0 Pink 5.794991E-05 0 Pink 3.466567E-05 12.1 Blue 1.5231282E-05 0 Pink 0.0012366334 41.9 Blue 0.0009923275 0 Pink 0.0009782094 0 Pink 0.0009185735 0 Pink 0.0007710702 54.9 Blue 0.0006963874 0 Pink 0.0006019617 10.4 Blue 0.0003462597 0 Pink 0.0089485 100 Blue 0.0020022863 0 Pink 0.0010558827 71 Blue 0.0004692516 0 Pink 0.0004601492 5.8 Blue 0.020771 100 Blue 0.0008540598 0 Pink 0.000244999 0 Pink 0.0009483108 0 Pink 0.0007954276 0 Pink 0.0003385545 47.9 Blue 0.0001838823 1.3 Blue 0.0012166464 55.1 Blue 0.0008818683 29 Blue 0.0002556656 0 Pink 0.000698773 0 Pink 0.0006747867 1.2 Blue 0.0006746581 44.1 Blue 0.0001867169 0 Pink 0.0008441487 0 Pink 0.00001 87.1 Green 0.00001 53.7 Green 0.00001 45.8 Green 0.00001 42.6 Green 0.00001 36.4 Green 0.00001 36.1 Green 0.00001 34.7 Green 0.00001 26.1 Green 0.00001 24.5 Green 0.00001 22.3 Green 0.00001 21 Green 0.00001 13.8 Green 0.00001 12.7 Green 0.00001 11 Green 0.00001 9.9 Green 0.00001 9.2 Green 0.00001 8.1 Green 0.00001 7.6 Green 0.00001 6.1 Green 0.00001 5.6 Green 0.00001 5.5 Green 0.00001 4.8 Green 0.00001 4.6 Green 0.00001 4.3 Green 0.00001 4.2 Green 0.00001 4.2 Green 0.00001 4.1 Green 0.00001 4 Green 0.00001 3.4 Green 0.00001 3.2 Green 0.00001 3.2 Green 0.00001 3 Green 0.00001 2.9 Green 0.00001 2.6 Green 0.00001 2.5 Green 0.00001 2.5 Green 0.00001 2.4 Green 0.00001 2.4 Green 0.00001 2.1 Green 0.00001 2.1 Green 0.00001 2 Green 0.00001 1.8 Green 0.00001 1.7 Green 0.00001 1.6 Green 0.00001 1.6 Green 0.00001 1.5 Green 0.00001 1.5 Green 0.00001 1.4 Green 0.00001 1.4 Green 0.00001 1.3 Green 0.00001 1.2 Green 0.00001 1.1 Green 0.00001 1.1 Green 0.00001 1 Green 0.00001 1 Green 0.00001 1 Green phangorn/inst/extdata/trees/woodmouse.nxs0000644000176200001440000007751513201424001020374 0ustar liggesusers#nexus BEGIN Taxa; DIMENSIONS ntax=15; TAXLABELS [1] 'No305' [2] 'No304' [3] 'No306' [4] 'No0906S' [5] 'No0908S' [6] 'No0909S' [7] 'No0910S' [8] 'No0912S' [9] 'No0913S' [10] 'No1103S' [11] 'No1007S' [12] 'No1114S' [13] 'No1202S' [14] 'No1206S' [15] 'No1208S' ; END; [Taxa] BEGIN Characters; DIMENSIONS nchar=965; FORMAT datatype=DNA missing=? gap=- symbols="atgc" labels=left transpose=no interleave=no; MATRIX 'No305' nttcgaaaaacacacccactactaaaanttatcagtcactccttcatcgacttaccagctccatctaacatttcatcatgatgaaacttcggctcattactaggagtctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgtcgagacgtaaattatggctgactaattcgatacatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatgtattacgggtcatacattttcatagaaacatgaaacatcggtgtggtccttttattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaanttactatcagcaattccatacatcggaactaccctagtagagtgaatctgaggaggattctcagtagacaaagccacactgacacgttttttcgcttttcactttatccttccatttatcattgccgccctagtaattgtccacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggtgtactaataatagtttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatatttcctatttgcctatgcaatcctacgatccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcagaccctata 'No304' attcgaaaaacacacccactactaaaaattatcaaccactccttcatcgacttaccagctccatctaacatttcatcatgatgaaacttcggctcattactaggaatctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgtcgagacgtaaattatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatgtattacgggtcatacatttttatagaaacatgaaacatcggtgtagtccttttattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattncaaatttactntcagcaattccatacatcggaactaccctagtagaatgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcacttcatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggtgtactaataatagtttccttcctaataactctagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatacttcctatttgcctatgcaatcctacggtccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaaccctgtn 'No306' attcgaaaaacacacccactactaaaaattatcaatcactccttcatcgacttaccagctccatctaacatttcatcatgatgaaacttcggctcattactaggaatctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgtcgagacgtaaattatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatgtattacgggtcatacatttttatagaaacatgaaacatcggtgtgatccttttattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaatttactatcagcaattccatacatcggaactaccctagtagaatgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcacttcatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggtgtactaataatagtttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacnncatattaaaccagaatgatacttcctatttgcctatgcaatcctacggtccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaaccctata 'No0906S' attcgaaaaacacacccactactaaaaatcatcaatcactccttcatcgatttaccagctccatctaacatttcatcatgatgaaacttcggctcattactaggaatctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgtcgagacgtaaattatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatgtattacggatcatacatttttatagaaacatgaaacatcggtatgatccttttattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaatttactatcagcaattccatacatcggaactaccctagtagagtgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcacttcatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggtgtactaataataatttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatacttcctatttgcctatgcaatcctacgatccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaatacnnnn 'No0908S' attcgaaaaacacacccactactaaaaattatcaatcactccttcatcgacttaccagccccatctaacatttcatcatgatgaaacttcggctcattactaggaatctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgtcgagacgtaaattatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttctccatgtaggacgaggaatgtattacgggtcatacatttttatagaaacatgaaacatcggtgtgatccttttattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggggctacagtaattacaaatttactatcagcaattccatatatcggaactaccctagtagagtgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcacttcatcctcccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggtgtactaataatagtttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatacttcctatttgcctatgcaatcctacgatccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaacccnnnn 'No0909S' attcgaaaaacacacccactactaaaaattatcaatcactccttcatcgacttaccagctccatctaacatctcatcatgatgaaacttcggctccttactaggaatctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgtcgagacgtaaactatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatgtattacgggtcatacactttcatagaaacatgaaacatcggtgtgatccttctattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaatttactatcagcaattccatacatcgggactaccctagtagagtgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcactttatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggtgtactaataatagtttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatacttcctatttgcctatgcaatcctacgatccatccccaataaactaggcggagtcctagccctaatcctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaacccnnnn 'No0910S' attcgaaaaacacacccactactaaaaattatcaatcactctttcatcgatttaccagctccatctaacatttcatcatgatgaaacttcggctcattactaggaatctgcctaataatccagatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgtcgagacgtaaattatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatgtattacggatcatacatttttatagaaacatgaaacatcggtgtgatccttttattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaatttactatcagcaattccatacatcggaactaccctagtagagtgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcacttcatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggcgtactaataatagtttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatacttcctatttgcctatgcaatcctacgatccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccatttcttcacacttgcaaacaacgcagcctaatattccgcccaattactcaaacccnnnn 'No0912S' attcgaaaaacacacccactactaaaaattatcaatcactccttcatcgacttaccagctccatctaacatctcatcatgatgaaacttcggctccttactaggaatctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgtcgagacgtaaattatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacggggaatgtattacgggtcatacattttcatagaaacatgaaacatcggtgtgatccttttattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaatttactatcagcaattccatacatcggaactaccctagtagagtgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgctttccacttcatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagacattctaggtgtactaataatagtttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatatttcctatttgcctatgcaatcctacgatccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaacccnnnn 'No0913S' attcgaaaaacacacccactactaaaaattatcaaccactccttcatcgacttaccagctccatctaacatttcatcatgatgaaacttcggctcattactaggaatctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgtcgagacgtaaattatggctgactaattcgatatatgcatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatgtattacggatcatacatttttatagaaacatgaaacatcggtgtgatccttttattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaatttactatcagcaattccatacatcggaactaccctagtagaatgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcacttcatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggcgtactaataatagtttccttcctaataactctagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatacttcctatttgcctatgcaatcctacggtccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaacccnnnn 'No1103S' attcgaaaaacacacccactactaaaaattattaatcactccttcatcgacttaccagctccatctaacatctcatcatgatgaaacttcggctccttactaggaatctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgtcgagacgtaaattatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatgtattacgggtcatacattttcatagaaacatgaaacatcggtgtgatccttttattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaatttactatcagcaattccatacatcggaactaccctagtagagtgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcacttcatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggtgtactaataatagtttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatatttcctatttgcctatgcaatcctacgatccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaacccnnnn 'No1007S' attcgaaaaacacacccactactaaaaattatcaatcactccttcatcgacttaccagctccatctaacatctcatcatgatgaaacttcggctccttactaggaatctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgccgagacgtaaattatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatgtattacgggtcatacactttcatagaaacatgaaacatcggtgtgatccttctattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaatttactatcagcaattccatacatcgggactaccctagtagagtgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcactttatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggtgtactaataatagtttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatacttcctatttgcctatgcaatcctacgatccatccccaataaactaggcggagtcctagccctaatcctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaacccnnnn 'No1114S' nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnatcgacttaccagctccatctaacatttcatcatgatgaaacttcggctcattactaggagtctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagnaacccatatttgccgagacgtaaattatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatatattacggctcatacattctcatagaaacatgaaacatcggtgtggtccttttattcgcagtaatagtcacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaatttcctatcagcaattccatacatcggaactaccctagtagagtgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcactttatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaggatattctaggtgtactaataatagtttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatatttcctatttgcctatgcaatcctacggtccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccattccttcacacttccaaacaacgcagcctaatattccgcccaattactcaaacccnnnn 'No1202S' attcgaaaaacacacccactactaaaaattatcaatcactccttcatcgatttaccagctccatctaacatttcatcatgatgaaacttcggctcattactaggaatctgcctaataatccagatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgccgagacgtaaattatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatgtattacggatcatacatttttatagaaacatgaaacatcggtgtgatccttttattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaatttactatcagcaattccatacatcggaactaccctagtagagtgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcacttcatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggcgtactaataatagtttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatacttcctatttgcctatgcaatcctacgatccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaacccnnnn 'No1206S' attcgaaaaacacacccactactaaaaattatcaatcactccttcatcgatttgccagctccatctaacatttcatcatgatgaaacttcggctcattactaggaatctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgtcgagacgtaaattatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttctccatgtaggacgaggaatgtattacgggtcatacatttttatagaaacatgaaacatcggtgtgatccttttattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaatttactatcagcaattccatacatcggaactaccctagtagagtgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcacttcatccttccatttatcattgccgccctagtaattgtgcacctcttgtttcttcatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggtgtactaataatagtttccttcctaataactttagtccttttctttccagacctcttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatacttcctatttgcctatgcaatcctacgatccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaacccnnnn 'No1208S' nnncgaaaaacacacccactactaaaaattatcaatcactccttcatcgacttaccagctccatctaacatctcatcatgatgaaacttcggctccttactaggaatctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgccgagacgtaaactatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatgtattacgggtcatacactttcatagaaacatgaaacatcggtgtgatccttctattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccctctgaggagctacagtaattacaaatttactatcagcaattccatacatcgggactaccctagtagagtgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcactttatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggtgtactaataatagtttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatacttcctatttgcctatgcaatcctacgatccatccccaataaactaggcggagtcctagccctaatcctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaacccnnnn ; END; [Characters] BEGIN Distances; DIMENSIONS ntax=15; FORMAT labels=left diagonal triangle=both; MATRIX [1] 'No305' 0.0 0.016684046 0.013541667 0.018789144 0.016701462 0.016701462 0.017745303 0.014613778 0.018789144 0.012526096 0.016701462 0.015317286 0.016701462 0.016701462 0.018828452 [2] 'No304' 0.016684046 0.0 0.0052083335 0.0135557875 0.0114702815 0.015641293 0.012513034 0.0135557875 0.0052137645 0.0114702815 0.015641293 0.016429354 0.0114702815 0.012513034 0.017782427 [3] 'No306' 0.013541667 0.0052083335 0.0 0.0093847755 0.00729927 0.0114702815 0.008342023 0.0093847755 0.0052137645 0.00729927 0.0114702815 0.015334063 0.00729927 0.008342023 0.013598327 [4] 'No0906S' 0.018789144 0.0135557875 0.0093847755 0.0 0.012486992 0.016649324 0.009365245 0.014568158 0.012486992 0.012486992 0.016649324 0.020765027 0.008324662 0.01144641 0.018789144 [5] 'No0908S' 0.016701462 0.0114702815 0.00729927 0.012486992 0.0 0.014568158 0.01144641 0.012486992 0.012486992 0.010405827 0.014568158 0.020765027 0.010405827 0.009365245 0.016701462 [6] 'No0909S' 0.016701462 0.015641293 0.0114702815 0.016649324 0.014568158 0.0 0.015608741 0.010405827 0.016649324 0.008324662 0.0020811656 0.020765027 0.014568158 0.015608741 0.0020876827 [7] 'No0910S' 0.017745303 0.012513034 0.008342023 0.009365245 0.01144641 0.015608741 0.0 0.013527576 0.009365245 0.01144641 0.015608741 0.019672131 0.003121748 0.010405827 0.017745303 [8] 'No0912S' 0.014613778 0.0135557875 0.0093847755 0.014568158 0.012486992 0.010405827 0.013527576 0.0 0.014568158 0.004162331 0.010405827 0.018579235 0.012486992 0.013527576 0.012526096 [9] 'No0913S' 0.018789144 0.0052137645 0.0052137645 0.012486992 0.012486992 0.016649324 0.009365245 0.014568158 0.0 0.012486992 0.016649324 0.018579235 0.008324662 0.013527576 0.018789144 [10] 'No1103S' 0.012526096 0.0114702815 0.00729927 0.012486992 0.010405827 0.008324662 0.01144641 0.004162331 0.012486992 0.0 0.008324662 0.015300547 0.010405827 0.01144641 0.010438413 [11] 'No1007S' 0.016701462 0.015641293 0.0114702815 0.016649324 0.014568158 0.0020811656 0.015608741 0.010405827 0.016649324 0.008324662 0.0 0.018579235 0.012486992 0.015608741 0.0020876827 [12] 'No1114S' 0.015317286 0.016429354 0.015334063 0.020765027 0.020765027 0.020765027 0.019672131 0.018579235 0.018579235 0.015300547 0.018579235 0.0 0.01748634 0.021857923 0.020765027 [13] 'No1202S' 0.016701462 0.0114702815 0.00729927 0.008324662 0.010405827 0.014568158 0.003121748 0.012486992 0.008324662 0.010405827 0.012486992 0.01748634 0.0 0.009365245 0.014613778 [14] 'No1206S' 0.016701462 0.012513034 0.008342023 0.01144641 0.009365245 0.015608741 0.010405827 0.013527576 0.013527576 0.01144641 0.015608741 0.021857923 0.009365245 0.0 0.017745303 [15] 'No1208S' 0.018828452 0.017782427 0.013598327 0.018789144 0.016701462 0.0020876827 0.017745303 0.012526096 0.018789144 0.010438413 0.0020876827 0.020765027 0.014613778 0.017745303 0.0 ; END; [Distances] BEGIN Splits; DIMENSIONS ntax=15 nsplits=43; FORMAT labels=no weights=yes confidences=no intervals=no; PROPERTIES fit=97.76178978414268 cyclic; CYCLE 1 12 3 2 9 13 7 4 14 5 11 15 6 8 10; MATRIX [1, size=1] 0.007878401 1 2 3 4 5 6 7 8 9 10 11 13 14 15, [2, size=4] 9.67039E-4 1 4 5 6 7 8 10 11 13 14 15, [3, size=7] 3.0405898E-4 1 5 6 8 10 11 14 15, [4, size=4] 8.927283E-5 1 6 8 10, [5, size=1] 0.006068427 1, [6, size=1] 4.1818016E-4 1 2 4 5 6 7 8 9 10 11 12 13 14 15, [7, size=3] 6.354771E-4 1 4 5 6 7 8 10 11 12 13 14 15, [8, size=7] 0.0018286711 1 6 8 10 11 12 15, [9, size=3] 3.1608884E-5 1 10 12, [10, size=2] 0.0030639141 1 12, [11, size=1] 0.0020751753 1 3 4 5 6 7 8 9 10 11 12 13 14 15, [12, size=2] 0.0022168073 1 3 4 5 6 7 8 10 11 12 13 14 15, [13, size=1] 0.0012816527 1 2 3 4 5 6 7 8 10 11 12 13 14 15, [14, size=3] 9.066461E-4 1 2 3 4 5 6 8 10 11 12 14 15, [15, size=4] 7.542655E-4 1 2 3 5 6 8 10 11 12 14 15, [16, size=5] 1.0719955E-4 1 2 3 5 6 8 10 11 12 15, [17, size=6] 6.0168037E-5 1 2 3 6 8 10 11 12 15, [18, size=1] 7.864587E-4 1 2 3 4 5 6 7 8 9 10 11 12 14 15, [19, size=2] 0.0011441667 1 2 3 4 5 6 8 9 10 11 12 14 15, [20, size=3] 3.7099395E-5 1 2 3 5 6 8 9 10 11 12 14 15, [21, size=4] 7.577939E-4 1 2 3 5 6 8 9 10 11 12 15, [22, size=6] 8.6808155E-5 1 2 3 9 10 12, [23, size=5] 1.3156666E-4 1 2 3 9 12, [24, size=1] 0.0020897626 1 2 3 4 5 6 8 9 10 11 12 13 14 15, [25, size=3] 1.0902213E-4 1 2 3 5 6 8 9 10 11 12 13 15, [26, size=4] 1.458757E-4 1 2 3 6 8 9 10 11 12 13 15, [27, size=1] 0.0051963497 1 2 3 5 6 7 8 9 10 11 12 13 14 15, [28, size=3] 1.40733355E-5 1 2 3 6 7 8 9 10 11 12 13 15, [29, size=1] 0.004156471 1 2 3 4 5 6 7 8 9 10 11 12 13 15, [30, size=2] 0.0010121305 1 2 3 4 6 7 8 9 10 11 12 13 15, [31, size=1] 0.004199673 1 2 3 4 6 7 8 9 10 11 12 13 14 15, [32, size=2] 8.544509E-4 1 2 3 4 5 6 7 8 9 10 12 13 14, [33, size=3] 0.0051881927 1 2 3 4 5 7 8 9 10 12 13 14, [34, size=4] 6.061471E-6 1 2 3 4 5 7 9 10 12 13 14, [35, size=5] 0.0010072162 1 2 3 4 5 7 9 12 13 14, [36, size=1] 0.0010342944 1 2 3 4 5 6 7 8 9 10 11 12 13 14, [37, size=2] 0.0010670845 1 2 3 4 5 7 8 9 10 11 12 13 14, [38, size=4] 2.1973468E-5 1 2 3 4 5 7 9 11 12 13 14, [39, size=2] 3.0782125E-5 1 2 3 4 5 7 9 10 11 12 13 14 15, [40, size=3] 7.4452415E-5 1 2 3 4 5 7 9 11 12 13 14 15, [41, size=1] 0.0030889313 1 2 3 4 5 6 7 9 10 11 12 13 14 15, [42, size=2] 0.0010669535 1 2 3 4 5 6 7 9 11 12 13 14 15, [43, size=1] 9.133177E-4 1 2 3 4 5 6 7 8 9 11 12 13 14 15, ; END; [Splits] BEGIN Network; DIMENSIONS ntax=15 nvertices=130 nedges=215; DRAW to_scale; TRANSLATE 2 'No305', 3 'No1114S', 4 'No306', 5 'No304', 6 'No0913S', 7 'No1202S', 8 'No0910S', 9 'No0906S', 10 'No1206S', 11 'No0908S', 12 'No1208S', 13 'No0912S', 14 'No1103S', 117 'No1007S', 123 'No0909S', ; VERTICES 1 -0.006068427 0.0 s=n, 2 0.0 0.0 s=n, 3 0.0015083641 0.0043967813 s=n, 4 -0.009464912 0.002829434 s=n, 5 -0.008871745 0.006696938 s=n, 6 -0.010746697 0.0074311504 s=n, 7 -0.013563724 0.0042226063 s=n, 8 -0.015113663 0.004792512 s=n, 9 -0.017300652 0.003006176 s=n, 10 -0.016641626 -2.3478366E-4 s=n, 11 -0.015087945 -0.0022330103 s=n, 12 -0.009807543 -0.009778595 s=n, 13 -0.0059371023 -0.004773448 s=n, 14 -0.00708383 -0.002765694 s=n, 15 -0.009065388 -6.370236E-4 s=n, 16 -0.009096996 -6.370236E-4 s=n, 17 -0.0061406503 5.2473253E-5 s=n, 18 -0.009137611 -5.845503E-4 s=n, 19 -0.009169219 -5.845503E-4 s=n, 20 -0.009257255 -6.823234E-4 s=n, 21 -0.009185032 -7.3479663E-4 s=n, 22 -0.009153423 -7.3479663E-4 s=n, 23 -0.009327484 -7.3334796E-4 s=n, 24 -0.009255261 -7.858212E-4 s=n, 25 -0.010392839 7.7441713E-4 s=n, 26 -0.010480874 6.7664403E-4 s=n, 27 -0.010551103 6.256195E-4 s=n, 28 -0.006172433 3.5486656E-4 s=n, 29 -0.009169393 -2.82157E-4 s=n, 30 -0.009201002 -2.82157E-4 s=n, 31 -0.010424622 0.0010768104 s=n, 32 -0.010512657 9.790374E-4 s=n, 33 -0.010582887 9.280128E-4 s=n, 34 -0.010479588 0.001101283 s=n, 35 -0.010567623 0.00100351 s=n, 36 -0.010637853 9.5248537E-4 s=n, 37 -0.01060607 6.50092E-4 s=n, 38 -0.010566315 0.0011642933 s=n, 39 -0.01065435 0.0010665202 s=n, 40 -0.010724579 0.0010154956 s=n, 41 -0.010692797 7.1310234E-4 s=n, 42 -0.009016237 -0.0016912675 s=n, 43 -0.008944014 -0.0017437408 s=n, 44 -0.008873785 -0.0016927161 s=n, 45 -0.008842176 -0.0016927161 s=n, 46 -0.0056889136 0.0011923469 s=n, 47 -0.008685874 5.553234E-4 s=n, 48 -0.008717483 5.553234E-4 s=n, 49 -0.009941103 0.0019142908 s=n, 50 -0.009996069 0.0019387633 s=n, 51 -0.010082795 0.0020017736 s=n, 52 -0.010587498 0.0025623022 s=n, 53 -0.011071017 0.0017248219 s=n, 54 -0.011159052 0.0016270487 s=n, 55 -0.011229281 0.0015760242 s=n, 56 -0.01192156 0.0018842467 s=n, 57 -0.011416858 0.0013237182 s=n, 58 -0.011385076 0.0010213249 s=n, 59 -0.012067436 0.0018842467 s=n, 60 -0.011562734 0.0013237182 s=n, 61 -0.011530952 0.0010213249 s=n, 62 -0.010838672 7.1310234E-4 s=n, 63 -0.010751946 6.50092E-4 s=n, 64 -0.009015604 -0.0016972957 s=n, 65 -0.00894338 -0.001749769 s=n, 66 -0.009004617 -0.0017163253 s=n, 67 -0.008932394 -0.0017687986 s=n, 68 -0.008933027 -0.0017627702 s=n, 69 -0.008862798 -0.0017117457 s=n, 70 -0.008831189 -0.0017117457 s=n, 71 -0.009744729 0.0025186655 s=n, 72 -0.009799696 0.0025431379 s=n, 73 -0.009886422 0.0026061484 s=n, 74 -0.010391124 0.0031666767 s=n, 75 -0.010844447 0.0039518555 s=n, 76 -0.01104082 0.0033474807 s=n, 77 -0.01152434 0.0025100003 s=n, 78 -0.011612375 0.0024122272 s=n, 79 -0.011682604 0.0023612028 s=n, 80 -0.0123748835 0.0026694252 s=n, 81 -0.012520759 0.0026694252 s=n, 82 -0.012404897 0.0026912317 s=n, 83 -0.012550773 0.0026912317 s=n, 84 -0.01209745 0.0019060532 s=n, 85 -0.012657413 0.0027138987 s=n, 86 -0.01220409 0.0019287202 s=n, 87 -0.0121740755 0.0019069137 s=n, 88 -0.011669374 0.0013463852 s=n, 89 -0.011637591 0.0010439919 s=n, 90 -0.012217856 0.0019257942 s=n, 91 -0.012187841 0.0019039877 s=n, 92 -0.01168314 0.0013434592 s=n, 93 -0.011651357 0.0010410659 s=n, 94 -0.011544717 0.0010183989 s=n, 95 -0.0108524375 7.1017636E-4 s=n, 96 -0.010765712 6.4716605E-4 s=n, 97 -0.009557918 -0.006857067 s=n, 98 -0.009546931 -0.0068760966 s=n, 99 -0.009474708 -0.0069285696 s=n, 100 -0.0094248885 -0.0069838986 s=n, 101 -0.008882575 -0.0018241275 s=n, 102 -0.008883209 -0.0018180992 s=n, 103 -0.00881298 -0.0017670747 s=n, 104 -0.008781371 -0.0017670747 s=n, 105 -0.00951301 0.0047233286 s=n, 106 -0.009567976 0.0047478015 s=n, 107 -0.009654703 0.0048108115 s=n, 108 -0.010159405 0.00537134 s=n, 109 -0.010612727 0.0061565186 s=n, 110 -0.013170495 0.0035415133 s=n, 111 -0.013316371 0.0035415133 s=n, 112 -0.01342301 0.0035641803 s=n, 113 -0.012575984 6.293953E-4 s=n, 114 -0.012469344 6.067283E-4 s=n, 115 -0.011777065 2.9850577E-4 s=n, 116 -0.011690339 2.3549546E-4 s=n, 117 -0.009821957 -0.007669698 s=n, 118 -0.00981097 -0.0076887277 s=n, 119 -0.009699429 -0.0087499665 s=n, 120 -0.00943539 -0.007937335 s=n, 121 -0.009363167 -0.007989809 s=n, 122 -0.009313349 -0.008045138 s=n, 123 -0.009297958 -0.008071796 s=n, 124 -0.0094094975 -0.0070105568 s=n, 125 -0.008867184 -0.0018507856 s=n, 126 -0.008004 -0.002477925 s=n, 127 -0.008019391 -0.002451267 s=n, 128 -0.008020026 -0.0024452389 s=n, 129 -0.007949796 -0.0023942143 s=n, 130 -0.007918187 -0.0023942143 s=n, ; VLABELS 2 'No305' x=12 y=9 f='Dialog-PLAIN-16', 3 'No1114S' x=11 y=14, 4 'No306' x=-15 y=26, 5 'No304' x=-19 y=28, 6 'No0913S' x=-34 y=29, 7 'No1202S' x=-39 y=27, 8 'No0910S' x=-77 y=16, 9 'No0906S' x=-79 y=11, 10 'No1206S' x=-79 y=6, 11 'No0908S' x=-77 y=2, 12 'No1208S' x=-34 y=-19, 13 'No0912S' x=-25 y=-16, 14 'No1103S' x=11 y=4, 117 'No1007S' x=-37 y=-18, 123 'No0909S' x=-31 y=-24, ; EDGES 1 1 2 s=5 w=0.006068427, 2 15 1 s=10 w=0.0030639141, 3 16 15 s=9 w=3.1608884E-5, 4 17 1 s=4 w=8.927283E-5, 5 18 15 s=4 w=8.927283E-5, 6 18 17 s=10 w=0.0030639141, 7 19 16 s=4 w=8.927283E-5, 8 19 18 s=9 w=3.1608884E-5, 9 20 19 s=23 w=1.3156666E-4, 10 21 16 s=23 w=1.3156666E-4, 11 21 20 s=4 w=8.927283E-5, 12 22 15 s=23 w=1.3156666E-4, 13 22 21 s=9 w=3.1608884E-5, 14 23 20 s=22 w=8.6808155E-5, 15 24 21 s=22 w=8.6808155E-5, 16 24 23 s=4 w=8.927283E-5, 17 25 19 s=8 w=0.0018286711, 18 26 20 s=8 w=0.0018286711, 19 26 25 s=23 w=1.3156666E-4, 20 27 23 s=8 w=0.0018286711, 21 27 26 s=22 w=8.6808155E-5, 22 28 17 s=3 w=3.0405898E-4, 23 29 18 s=3 w=3.0405898E-4, 24 29 28 s=10 w=0.0030639141, 25 30 19 s=3 w=3.0405898E-4, 26 30 29 s=9 w=3.1608884E-5, 27 31 25 s=3 w=3.0405898E-4, 28 31 30 s=8 w=0.0018286711, 29 32 26 s=3 w=3.0405898E-4, 30 32 31 s=23 w=1.3156666E-4, 31 33 27 s=3 w=3.0405898E-4, 32 33 32 s=22 w=8.6808155E-5, 33 34 31 s=17 w=6.0168037E-5, 34 35 32 s=17 w=6.0168037E-5, 35 35 34 s=23 w=1.3156666E-4, 36 36 33 s=17 w=6.0168037E-5, 37 36 35 s=22 w=8.6808155E-5, 38 37 27 s=17 w=6.0168037E-5, 39 37 36 s=3 w=3.0405898E-4, 40 38 34 s=16 w=1.0719955E-4, 41 39 35 s=16 w=1.0719955E-4, 42 39 38 s=23 w=1.3156666E-4, 43 40 36 s=16 w=1.0719955E-4, 44 40 39 s=22 w=8.6808155E-5, 45 41 37 s=16 w=1.0719955E-4, 46 41 40 s=3 w=3.0405898E-4, 47 42 23 s=35 w=0.0010072162, 48 43 24 s=35 w=0.0010072162, 49 43 42 s=4 w=8.927283E-5, 50 44 21 s=35 w=0.0010072162, 51 44 43 s=22 w=8.6808155E-5, 52 45 22 s=35 w=0.0010072162, 53 45 44 s=9 w=3.1608884E-5, 54 46 28 s=2 w=9.67039E-4, 55 46 3 s=1 w=0.007878401, 56 47 29 s=2 w=9.67039E-4, 57 47 46 s=10 w=0.0030639141, 58 48 30 s=2 w=9.67039E-4, 59 48 47 s=9 w=3.1608884E-5, 60 49 31 s=2 w=9.67039E-4, 61 49 48 s=8 w=0.0018286711, 62 50 34 s=2 w=9.67039E-4, 63 50 49 s=17 w=6.0168037E-5, 64 51 38 s=2 w=9.67039E-4, 65 51 50 s=16 w=1.0719955E-4, 66 52 51 s=15 w=7.542655E-4, 67 53 38 s=15 w=7.542655E-4, 68 53 52 s=2 w=9.67039E-4, 69 54 39 s=15 w=7.542655E-4, 70 54 53 s=23 w=1.3156666E-4, 71 55 40 s=15 w=7.542655E-4, 72 55 54 s=22 w=8.6808155E-5, 73 56 55 s=21 w=7.577939E-4, 74 57 40 s=21 w=7.577939E-4, 75 57 56 s=15 w=7.542655E-4, 76 58 41 s=21 w=7.577939E-4, 77 58 57 s=3 w=3.0405898E-4, 78 59 56 s=26 w=1.458757E-4, 79 60 57 s=26 w=1.458757E-4, 80 60 59 s=15 w=7.542655E-4, 81 61 58 s=26 w=1.458757E-4, 82 61 60 s=3 w=3.0405898E-4, 83 62 41 s=26 w=1.458757E-4, 84 62 61 s=21 w=7.577939E-4, 85 63 37 s=26 w=1.458757E-4, 86 63 62 s=16 w=1.0719955E-4, 87 64 42 s=34 w=6.061471E-6, 88 65 43 s=34 w=6.061471E-6, 89 65 64 s=4 w=8.927283E-5, 90 66 64 s=38 w=2.1973468E-5, 91 67 65 s=38 w=2.1973468E-5, 92 67 66 s=4 w=8.927283E-5, 93 68 43 s=38 w=2.1973468E-5, 94 68 67 s=34 w=6.061471E-6, 95 69 44 s=38 w=2.1973468E-5, 96 69 68 s=22 w=8.6808155E-5, 97 70 45 s=38 w=2.1973468E-5, 98 70 69 s=9 w=3.1608884E-5, 99 71 49 s=7 w=6.354771E-4, 100 71 4 s=6 w=4.1818016E-4, 101 72 50 s=7 w=6.354771E-4, 102 72 71 s=17 w=6.0168037E-5, 103 73 51 s=7 w=6.354771E-4, 104 73 72 s=16 w=1.0719955E-4, 105 74 52 s=7 w=6.354771E-4, 106 74 73 s=15 w=7.542655E-4, 107 75 74 s=14 w=9.066461E-4, 108 76 52 s=14 w=9.066461E-4, 109 76 75 s=7 w=6.354771E-4, 110 77 53 s=14 w=9.066461E-4, 111 77 76 s=2 w=9.67039E-4, 112 78 54 s=14 w=9.066461E-4, 113 78 77 s=23 w=1.3156666E-4, 114 79 55 s=14 w=9.066461E-4, 115 79 78 s=22 w=8.6808155E-5, 116 80 56 s=14 w=9.066461E-4, 117 80 79 s=21 w=7.577939E-4, 118 81 59 s=14 w=9.066461E-4, 119 81 80 s=26 w=1.458757E-4, 120 82 80 s=20 w=3.7099395E-5, 121 83 81 s=20 w=3.7099395E-5, 122 83 82 s=26 w=1.458757E-4, 123 84 59 s=20 w=3.7099395E-5, 124 84 83 s=14 w=9.066461E-4, 125 85 83 s=25 w=1.0902213E-4, 126 86 84 s=25 w=1.0902213E-4, 127 86 85 s=14 w=9.066461E-4, 128 87 59 s=25 w=1.0902213E-4, 129 87 86 s=20 w=3.7099395E-5, 130 88 60 s=25 w=1.0902213E-4, 131 88 87 s=15 w=7.542655E-4, 132 89 61 s=25 w=1.0902213E-4, 133 89 88 s=3 w=3.0405898E-4, 134 90 86 s=28 w=1.40733355E-5, 135 90 9 s=27 w=0.0051963497, 136 91 87 s=28 w=1.40733355E-5, 137 91 90 s=20 w=3.7099395E-5, 138 92 88 s=28 w=1.40733355E-5, 139 92 91 s=15 w=7.542655E-4, 140 93 89 s=28 w=1.40733355E-5, 141 93 92 s=3 w=3.0405898E-4, 142 94 61 s=28 w=1.40733355E-5, 143 94 93 s=25 w=1.0902213E-4, 144 95 62 s=28 w=1.40733355E-5, 145 95 94 s=21 w=7.577939E-4, 146 96 63 s=28 w=1.40733355E-5, 147 96 95 s=16 w=1.0719955E-4, 148 97 64 s=33 w=0.0051881927, 149 98 66 s=33 w=0.0051881927, 150 98 97 s=38 w=2.1973468E-5, 151 99 67 s=33 w=0.0051881927, 152 99 98 s=4 w=8.927283E-5, 153 100 99 s=40 w=7.4452415E-5, 154 101 67 s=40 w=7.4452415E-5, 155 101 100 s=33 w=0.0051881927, 156 102 68 s=40 w=7.4452415E-5, 157 102 101 s=34 w=6.061471E-6, 158 103 69 s=40 w=7.4452415E-5, 159 103 102 s=22 w=8.6808155E-5, 160 104 70 s=40 w=7.4452415E-5, 161 104 103 s=9 w=3.1608884E-5, 162 105 71 s=12 w=0.0022168073, 163 105 5 s=11 w=0.0020751753, 164 106 72 s=12 w=0.0022168073, 165 106 105 s=17 w=6.0168037E-5, 166 107 73 s=12 w=0.0022168073, 167 107 106 s=16 w=1.0719955E-4, 168 108 74 s=12 w=0.0022168073, 169 108 107 s=15 w=7.542655E-4, 170 109 75 s=12 w=0.0022168073, 171 109 108 s=14 w=9.066461E-4, 172 109 6 s=13 w=0.0012816527, 173 110 82 s=19 w=0.0011441667, 174 110 7 s=18 w=7.864587E-4, 175 111 83 s=19 w=0.0011441667, 176 111 110 s=26 w=1.458757E-4, 177 112 85 s=19 w=0.0011441667, 178 112 111 s=25 w=1.0902213E-4, 179 112 8 s=24 w=0.0020897626, 180 113 93 s=30 w=0.0010121305, 181 113 10 s=29 w=0.004156471, 182 114 94 s=30 w=0.0010121305, 183 114 113 s=25 w=1.0902213E-4, 184 115 95 s=30 w=0.0010121305, 185 115 114 s=21 w=7.577939E-4, 186 116 96 s=30 w=0.0010121305, 187 116 115 s=16 w=1.0719955E-4, 188 116 11 s=31 w=0.004199673, 189 117 97 s=32 w=8.544509E-4, 190 118 98 s=32 w=8.544509E-4, 191 118 117 s=38 w=2.1973468E-5, 192 119 118 s=37 w=0.0010670845, 193 119 12 s=36 w=0.0010342944, 194 120 98 s=37 w=0.0010670845, 195 120 119 s=32 w=8.544509E-4, 196 121 99 s=37 w=0.0010670845, 197 121 120 s=4 w=8.927283E-5, 198 122 100 s=37 w=0.0010670845, 199 122 121 s=40 w=7.4452415E-5, 200 123 122 s=39 w=3.0782125E-5, 201 124 100 s=39 w=3.0782125E-5, 202 124 123 s=37 w=0.0010670845, 203 125 101 s=39 w=3.0782125E-5, 204 125 124 s=33 w=0.0051881927, 205 126 125 s=42 w=0.0010669535, 206 126 13 s=41 w=0.0030889313, 207 127 101 s=42 w=0.0010669535, 208 127 126 s=39 w=3.0782125E-5, 209 128 102 s=42 w=0.0010669535, 210 128 127 s=34 w=6.061471E-6, 211 129 103 s=42 w=0.0010669535, 212 129 128 s=22 w=8.6808155E-5, 213 130 104 s=42 w=0.0010669535, 214 130 129 s=9 w=3.1608884E-5, 215 130 14 s=43 w=9.133177E-4, ; END; [Network] BEGIN st_Assumptions; uptodate; chartransform=Uncorrected_P; disttransform=NeighborNet; splitstransform=EqualAngle; SplitsPostProcess filter=dimension value=4; exclude no missing; autolayoutnodelabels; END; [st_Assumptions] phangorn/inst/extdata/trees/RAxML_bootstrap.3moles0000644000176200001440000012771013201424001021756 0ustar liggesusers((((Hma,Mur),Uth),(Uam,(Uar,Uma))),Tor,Ame); (((Hma,(Mur,Uth)),(Uam,(Uar,Uma))),Tor,Ame); ((((Uar,Uma),(Mur,(Uth,Uam))),Hma),Tor,Ame); ((Hma,((Uth,(Uam,(Uar,Uma))),Mur)),Tor,Ame); (((Uam,(Uar,Uma)),((Mur,Hma),Uth)),Tor,Ame); (((Mur,Hma),(Uth,(Uam,(Uar,Uma)))),Tor,Ame); ((Hma,((Uth,(Uam,(Uar,Uma))),Mur)),Tor,Ame); ((((Uar,Uma),Hma),((Uth,Uam),Mur)),Tor,Ame); ((Hma,((Uth,Mur),(Uam,(Uar,Uma)))),Tor,Ame); ((((Uth,Mur),Hma),(Uam,(Uar,Uma))),Tor,Ame); ((((Uar,Uma),Uam),(Uth,(Hma,Mur))),Tor,Ame); (((((Uar,Uma),Uam),(Uth,Mur)),Hma),Tor,Ame); ((((Uar,Uma),Uam),(Uth,(Hma,Mur))),Tor,Ame); (((Uar,Uma),(((Uam,Uth),Mur),Hma)),Tor,Ame); ((Mur,((Uar,Uma),(Hma,(Uam,Uth)))),Tor,Ame); ((((Uam,Uth),(Uar,Uma)),(Hma,Mur)),Tor,Ame); (((Hma,Mur),((Uam,(Uar,Uma)),Uth)),Tor,Ame); (((Mur,(Hma,(Uam,Uth))),(Uar,Uma)),Tor,Ame); (((Mur,(Hma,(Uam,Uth))),(Uar,Uma)),Tor,Ame); ((Mur,((Hma,Uth),(Uam,(Uar,Uma)))),Tor,Ame); (Tor,((Uma,Uar),((Mur,(Uth,Uam)),Hma)),Ame); (Tor,((Hma,Mur),((Uam,(Uma,Uar)),Uth)),Ame); (Tor,((Uam,(Uma,Uar)),(Uth,(Hma,Mur))),Ame); (Tor,((Mur,(Uma,Uar)),((Uam,Uth),Hma)),Ame); (Tor,((Uth,(Hma,Mur)),((Uma,Uar),Uam)),Ame); (Tor,(((Uth,Hma),((Uma,Uar),Uam)),Mur),Ame); (Tor,(((Uma,Uar),Uam),((Mur,Uth),Hma)),Ame); (Tor,((Uth,((Uma,Uar),Uam)),(Mur,Hma)),Ame); (Tor,(Hma,((Uth,((Uma,Uar),Uam)),Mur)),Ame); (Tor,((Uth,((Uma,Uar),Uam)),(Mur,Hma)),Ame); ((((Uam,(Uma,Uar)),(Mur,Uth)),Hma),Tor,Ame); (((Uma,Uar),(Hma,(Mur,(Uam,Uth)))),Tor,Ame); ((Hma,(Mur,(((Uma,Uar),Uam),Uth))),Tor,Ame); (((((Uma,Uar),Uam),Uth),(Hma,Mur)),Tor,Ame); ((((Uma,Uar),(Uam,Uth)),(Hma,Mur)),Tor,Ame); ((((Uth,(Uam,(Uma,Uar))),Mur),Hma),Tor,Ame); (((Uth,(Uam,(Uma,Uar))),(Mur,Hma)),Tor,Ame); ((Hma,((Uth,(Uam,(Uma,Uar))),Mur)),Tor,Ame); (((Mur,Hma),(Uth,(Uam,(Uma,Uar)))),Tor,Ame); (((Mur,Hma),((Uma,Uar),(Uth,Uam))),Tor,Ame); (Tor,((Uam,(Uar,Uma)),(Uth,(Hma,Mur))),Ame); (Tor,(Mur,((Uar,Uma),((Uth,Uam),Hma))),Ame); (Tor,((Uar,Uma),(((Uth,Uam),Hma),Mur)),Ame); (Tor,((Uth,((Uar,Uma),Uam)),(Hma,Mur)),Ame); (Tor,((Hma,(Uar,Uma)),((Uam,Uth),Mur)),Ame); (Tor,((Uam,(Uar,Uma)),((Hma,Uth),Mur)),Ame); (Tor,((Uar,Uma),(Mur,(Uth,(Hma,Uam)))),Ame); (Tor,((Uth,(Hma,Mur)),(Uam,(Uar,Uma))),Ame); (Tor,((Hma,(Mur,Uth)),(Uam,(Uar,Uma))),Ame); (Tor,((Mur,(Uam,Uth)),((Uar,Uma),Hma)),Ame); (Tor,(Mur,((Uam,Uth),(Hma,(Uar,Uma)))),Ame); (Tor,((Uam,(Uar,Uma)),(Mur,(Hma,Uth))),Ame); (Tor,((Uam,(Uar,Uma)),((Mur,Hma),Uth)),Ame); (Tor,(((Uar,Uma),(Hma,(Uth,Uam))),Mur),Ame); (Tor,((Uar,Uma),((Hma,(Uth,Uam)),Mur)),Ame); (Tor,((Uar,Uma),((Hma,(Uth,Uam)),Mur)),Ame); (Tor,((Uam,(Uar,Uma)),((Uth,Hma),Mur)),Ame); (Tor,((Uam,(Uar,Uma)),((Uth,Hma),Mur)),Ame); (Tor,((Uam,(Uar,Uma)),((Uth,Mur),Hma)),Ame); (Tor,((Uar,Uma),((Hma,(Uth,Uam)),Mur)),Ame); (Tor,((Hma,(Uth,Mur)),(Uam,(Uma,Uar))),Ame); (Tor,(Hma,(Mur,(Uth,(Uam,(Uma,Uar))))),Ame); (Tor,((Uth,Uam),((Hma,Mur),(Uma,Uar))),Ame); (Tor,((Mur,(Uth,Uam)),((Uma,Uar),Hma)),Ame); (Tor,((Mur,(Hma,(Uth,Uam))),(Uma,Uar)),Ame); (Tor,((Mur,(Hma,Uth)),(Uam,(Uma,Uar))),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Hma),Uth)),Ame); (Tor,((Uam,(Uma,Uar)),(Hma,(Uth,Mur))),Ame); (Tor,((Uam,(Uma,Uar)),(Hma,(Uth,Mur))),Ame); (Tor,((Uam,(Uma,Uar)),(Hma,(Uth,Mur))),Ame); ((((Hma,Mur),Uth),((Uma,Uar),Uam)),Tor,Ame); (((Mur,(Uth,Uam)),((Uma,Uar),Hma)),Tor,Ame); ((Uth,((Uam,(Uma,Uar)),(Hma,Mur))),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uma,Uar)))),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uma,Uar)))),Tor,Ame); ((Hma,(Mur,(Uth,(Uam,(Uma,Uar))))),Tor,Ame); (((Uma,Uar),((Hma,(Uth,Uam)),Mur)),Tor,Ame); ((Hma,((Uth,((Uma,Uar),Uam)),Mur)),Tor,Ame); (((Uth,((Uma,Uar),Uam)),(Mur,Hma)),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); (Tor,(Mur,((Uar,Uma),(Hma,(Uam,Uth)))),Ame); (Tor,(Hma,(Mur,(((Uar,Uma),Uam),Uth))),Ame); (Tor,(((Uar,Uma),Uam),(Uth,(Hma,Mur))),Ame); (Tor,(((Uar,Uma),Uam),(Hma,(Mur,Uth))),Ame); (Tor,(((Uth,(Uam,(Uar,Uma))),Hma),Mur),Ame); (Tor,((Uam,(Uar,Uma)),((Hma,Mur),Uth)),Ame); (Tor,((((Uam,Uth),Hma),Mur),(Uar,Uma)),Ame); (Tor,((((Uam,Uth),Hma),Mur),(Uar,Uma)),Ame); (Tor,(Mur,((Uar,Uma),((Uam,Uth),Hma))),Ame); (Tor,((Uar,Uma),(((Uam,Uth),Hma),Mur)),Ame); ((((Uth,Uam),Hma),(Mur,(Uar,Uma))),Tor,Ame); ((((Uar,Uma),Uam),((Hma,Mur),Uth)),Tor,Ame); (((Mur,(Uth,((Uar,Uma),Uam))),Hma),Tor,Ame); (((Uth,((Uar,Uma),Uam)),(Hma,Mur)),Tor,Ame); (((Uth,((Uar,Uma),Uam)),(Hma,Mur)),Tor,Ame); ((((Uar,Uma),(Uam,Uth)),(Hma,Mur)),Tor,Ame); ((((Uar,Uma),(Hma,(Uam,Uth))),Mur),Tor,Ame); ((Hma,(Mur,(Uth,(Uam,(Uar,Uma))))),Tor,Ame); (((Mur,(Hma,(Uth,Uam))),(Uar,Uma)),Tor,Ame); (((Hma,(Uth,Mur)),(Uam,(Uar,Uma))),Tor,Ame); ((((Uar,Uma),((Uam,Uth),Hma)),Mur),Tor,Ame); (((Uar,Uma),(Uam,(Uth,(Hma,Mur)))),Tor,Ame); (((Uth,(Hma,Mur)),((Uar,Uma),Uam)),Tor,Ame); (((Uth,(Hma,Mur)),((Uar,Uma),Uam)),Tor,Ame); (((Hma,Mur),(((Uar,Uma),Uam),Uth)),Tor,Ame); (((Hma,Mur),(((Uar,Uma),Uam),Uth)),Tor,Ame); ((Hma,(Mur,(((Uar,Uma),Uam),Uth))),Tor,Ame); (((Mur,(Hma,(Uam,Uth))),(Uar,Uma)),Tor,Ame); (((Uth,(Mur,Hma)),(Uam,(Uar,Uma))),Tor,Ame); (((Uth,(Mur,Hma)),(Uam,(Uar,Uma))),Tor,Ame); (Tor,((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Ame); (Tor,((Uam,(Uar,Uma)),((Hma,Uth),Mur)),Ame); (Tor,((Uth,(Uam,(Uar,Uma))),(Hma,Mur)),Ame); (Tor,(((Uth,Hma),Mur),(Uam,(Uar,Uma))),Ame); (Tor,((Uar,Uma),(Mur,(Hma,(Uth,Uam)))),Ame); (Tor,((Hma,(Uth,Uam)),((Uar,Uma),Mur)),Ame); (Tor,((Uar,Uma),(Hma,(Mur,(Uth,Uam)))),Ame); (Tor,((Hma,Mur),((Uam,(Uar,Uma)),Uth)),Ame); (Tor,((Hma,Mur),((Uam,(Uar,Uma)),Uth)),Ame); (Tor,((Hma,Mur),((Uam,(Uar,Uma)),Uth)),Ame); (Tor,((Uar,Uma),((Hma,(Uam,Uth)),Mur)),Ame); (Tor,((Uar,Uma),((Hma,(Uam,Uth)),Mur)),Ame); (Tor,(((Uam,(Uar,Uma)),Uth),(Mur,Hma)),Ame); (Tor,(((Uam,(Uar,Uma)),Uth),(Mur,Hma)),Ame); (Tor,(((Uar,Uma),(Uth,Uam)),(Mur,Hma)),Ame); (Tor,(((Uar,Uma),(Uth,Uam)),(Mur,Hma)),Ame); (Tor,((Mur,Uth),((Uam,(Uar,Uma)),Hma)),Ame); (Tor,(((Hma,Mur),Uth),(Uam,(Uar,Uma))),Ame); (Tor,((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Ame); (Tor,((Mur,(Uam,Uth)),((Uar,Uma),Hma)),Ame); (Tor,((Uma,Uar),(((Uam,Uth),Hma),Mur)),Ame); (Tor,((Uma,Uar),(((Uam,Uth),Hma),Mur)),Ame); (Tor,((Uma,Uar),(((Uam,Uth),Hma),Mur)),Ame); (Tor,((((Uma,Uar),Uam),Uth),(Hma,Mur)),Ame); (Tor,(((Uma,Uar),Uam),((Mur,Uth),Hma)),Ame); (Tor,((Mur,(Uth,Uam)),(Hma,(Uma,Uar))),Ame); (Tor,((Uth,(Mur,Hma)),(Uam,(Uma,Uar))),Ame); (Tor,(((Uth,Uam),Hma),((Uma,Uar),Mur)),Ame); (Tor,((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Ame); (Tor,((Uth,Uam),(Hma,((Uma,Uar),Mur))),Ame); (Tor,(Mur,(Hma,(Uth,(Uam,(Uma,Uar))))),Ame); (Tor,(Hma,((Uth,(Uam,(Uma,Uar))),Mur)),Ame); (Tor,((Uth,(Uam,(Uma,Uar))),(Mur,Hma)),Ame); (Tor,(Hma,((Mur,(Uth,Uam)),(Uma,Uar))),Ame); (Tor,(Hma,((Uth,(Uam,(Uma,Uar))),Mur)),Ame); (Tor,((Uma,Uar),((Hma,(Uth,Uam)),Mur)),Ame); (Tor,((Uam,(Uma,Uar)),(Hma,(Uth,Mur))),Ame); (Tor,(((Uth,Uam),Mur),((Uma,Uar),Hma)),Ame); (Tor,(((Hma,(Uth,Uam)),Mur),(Uma,Uar)),Ame); (Tor,(((Hma,(Uth,Uam)),Mur),(Uma,Uar)),Ame); (Tor,(((Uma,Uar),(Hma,(Uam,Uth))),Mur),Ame); (Tor,((Uma,Uar),((Mur,Hma),(Uam,Uth))),Ame); (Tor,((Mur,Hma),(Uth,(Uam,(Uma,Uar)))),Ame); (Tor,(((Uth,Mur),Hma),(Uam,(Uma,Uar))),Ame); (Tor,((Hma,((Uam,(Uma,Uar)),Uth)),Mur),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),(Uth,(Hma,Mur))),Ame); (Tor,((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Ame); (Tor,(Hma,(Mur,((Uam,(Uma,Uar)),Uth))),Ame); (Tor,((Uam,(Uma,Uar)),(Uth,(Hma,Mur))),Ame); (Tor,((Uth,((Uma,Uar),Uam)),(Mur,Hma)),Ame); (Tor,(((Uma,Uar),Uam),(Mur,(Uth,Hma))),Ame); (Tor,(Hma,((Uma,Uar),((Uth,Uam),Mur))),Ame); (Tor,((Uma,Uar),((Hma,(Uth,Uam)),Mur)),Ame); (Tor,((Uam,(Uma,Uar)),((Uth,Mur),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),(Uth,(Mur,Hma))),Ame); (Tor,((Uam,(Uma,Uar)),(Uth,(Mur,Hma))),Ame); (Tor,((((Uam,(Uma,Uar)),Hma),Uth),Mur),Ame); (Tor,(((Uma,Uar),(Uth,Uam)),(Hma,Mur)),Ame); (Tor,((Hma,(Mur,Uth)),(Uam,(Uma,Uar))),Ame); ((Mur,((Hma,(Uam,Uth)),(Uma,Uar))),Tor,Ame); (((Mur,(Uth,(Uam,(Uma,Uar)))),Hma),Tor,Ame); (((Mur,(Uth,(Uam,(Uma,Uar)))),Hma),Tor,Ame); (((Uma,Uar),(((Uth,Uam),Hma),Mur)),Tor,Ame); (((Hma,Mur),((Uam,(Uma,Uar)),Uth)),Tor,Ame); (((Hma,(Uth,Mur)),(Uam,(Uma,Uar))),Tor,Ame); (((Uam,Uth),((Uma,Uar),(Mur,Hma))),Tor,Ame); (((Uth,(Uam,(Uma,Uar))),(Mur,Hma)),Tor,Ame); (((Uma,Uar),(Mur,((Uam,Uth),Hma))),Tor,Ame); ((((Uam,Uth),Hma),((Uma,Uar),Mur)),Tor,Ame); (((Hma,(Uth,Mur)),(Uam,(Uar,Uma))),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uar,Uma)))),Tor,Ame); (((Uam,(Uar,Uma)),((Hma,Mur),Uth)),Tor,Ame); (((Uam,(Uar,Uma)),((Mur,Uth),Hma)),Tor,Ame); ((((Uth,Uam),Mur),((Uar,Uma),Hma)),Tor,Ame); (((Uth,(Hma,Mur)),(Uam,(Uar,Uma))),Tor,Ame); ((((Uam,Uth),Mur),((Uar,Uma),Hma)),Tor,Ame); ((((Hma,(Uam,Uth)),Mur),(Uar,Uma)),Tor,Ame); (((((Uar,Uma),Uam),Uth),(Mur,Hma)),Tor,Ame); (((Uar,Uma),((Uth,Uam),(Mur,Hma))),Tor,Ame); (Tor,((Hma,(Uth,Uam)),((Uar,Uma),Mur)),Ame); (Tor,((Mur,(Uth,Uam)),((Uar,Uma),Hma)),Ame); (Tor,(Mur,((Uar,Uma),((Uth,Uam),Hma))),Ame); (Tor,(Mur,((Uar,Uma),((Uth,Uam),Hma))),Ame); (Tor,(((Hma,Mur),Uth),((Uar,Uma),Uam)),Ame); (Tor,(((Uth,Mur),Uam),(Hma,(Uar,Uma))),Ame); (Tor,(Hma,((Uar,Uma),((Uth,Uam),Mur))),Ame); (Tor,((Uar,Uma),(Hma,((Uth,Uam),Mur))),Ame); (Tor,((Uar,Uma),((Hma,(Uam,Uth)),Mur)),Ame); (Tor,((Uam,Uth),((Mur,Hma),(Uar,Uma))),Ame); (((Uam,(Uar,Uma)),((Mur,Uth),Hma)),Tor,Ame); (((Uam,(Uar,Uma)),((Mur,Hma),Uth)),Tor,Ame); (((Uam,(Uar,Uma)),((Mur,Hma),Uth)),Tor,Ame); (((Mur,(Uth,(Uam,(Uar,Uma)))),Hma),Tor,Ame); (((Uth,(Uam,(Uar,Uma))),(Hma,Mur)),Tor,Ame); ((((Hma,(Uam,Uth)),(Uar,Uma)),Mur),Tor,Ame); (((Uam,(Uar,Uma)),(Uth,(Hma,Mur))),Tor,Ame); (((Uam,(Uar,Uma)),((Uth,Mur),Hma)),Tor,Ame); ((((Uar,Uma),(Hma,(Uth,Uam))),Mur),Tor,Ame); (((Uar,Uma),((Hma,(Uth,Uam)),Mur)),Tor,Ame); (Tor,((Mur,(Uam,Uth)),(Hma,(Uma,Uar))),Ame); (Tor,((Mur,Hma),((Uam,(Uma,Uar)),Uth)),Ame); (Tor,((((Uam,Uth),Hma),Mur),(Uma,Uar)),Ame); (Tor,((Uam,(Uma,Uar)),((Uth,Mur),Hma)),Ame); (Tor,((Uth,(Uam,(Uma,Uar))),(Mur,Hma)),Ame); (Tor,((Mur,(Uam,Uth)),((Uma,Uar),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Ame); (Tor,((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Ame); (Tor,((Uth,(Uam,(Uma,Uar))),(Hma,Mur)),Ame); (Tor,((Uma,Uar),(Mur,(Hma,(Uam,Uth)))),Ame); (((Uth,(Hma,Mur)),(Uam,(Uar,Uma))),Tor,Ame); (((Mur,((Uam,(Uar,Uma)),Uth)),Hma),Tor,Ame); ((((Mur,Hma),Uth),(Uam,(Uar,Uma))),Tor,Ame); (((Hma,(Uth,Mur)),(Uam,(Uar,Uma))),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uar,Uma)))),Tor,Ame); (((Uar,Uma),(Mur,(Hma,(Uam,Uth)))),Tor,Ame); ((Hma,((Uam,(Uar,Uma)),(Mur,Uth))),Tor,Ame); ((((Uth,Uam),(Uar,Uma)),(Hma,Mur)),Tor,Ame); (((Uar,Uma),(Mur,(Hma,(Uth,Uam)))),Tor,Ame); ((Mur,((Hma,(Uth,Uam)),(Uar,Uma))),Tor,Ame); ((((Uma,Uar),(Hma,Mur)),(Uam,Uth)),Tor,Ame); (((Hma,(Uth,Mur)),(Uam,(Uma,Uar))),Tor,Ame); (((Uth,(Uam,(Uma,Uar))),(Mur,Hma)),Tor,Ame); ((Uam,((Uma,Uar),((Mur,Hma),Uth))),Tor,Ame); ((Mur,((Uma,Uar),(Hma,(Uth,Uam)))),Tor,Ame); (((Uma,Uar),((Hma,(Uth,Uam)),Mur)),Tor,Ame); ((Mur,((Uma,Uar),(Hma,(Uth,Uam)))),Tor,Ame); (((Mur,(Uth,Uam)),((Uma,Uar),Hma)),Tor,Ame); (((((Uth,Uam),Hma),Mur),(Uma,Uar)),Tor,Ame); ((((Hma,Uth),Mur),(Uam,(Uma,Uar))),Tor,Ame); (((Uth,(Hma,Mur)),(Uam,(Uma,Uar))),Tor,Ame); ((Mur,(((Uam,(Uma,Uar)),Uth),Hma)),Tor,Ame); (((Uam,(Uma,Uar)),((Hma,Mur),Uth)),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uma,Uar)))),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); ((((Uam,(Uma,Uar)),Uth),(Hma,Mur)),Tor,Ame); ((((Uam,(Uma,Uar)),(Mur,Uth)),Hma),Tor,Ame); (((Mur,(Hma,(Uam,Uth))),(Uma,Uar)),Tor,Ame); (((Hma,(Uth,Mur)),(Uam,(Uma,Uar))),Tor,Ame); (((Uma,Uar),(((Uam,Uth),Hma),Mur)),Tor,Ame); (Tor,((Mur,(Uth,(Uam,(Uma,Uar)))),Hma),Ame); (Tor,(((Mur,(Uth,Uam)),Hma),(Uma,Uar)),Ame); (Tor,((Uma,Uar),(((Uth,Uam),Hma),Mur)),Ame); (Tor,(((Uma,Uar),(Uth,Uam)),(Mur,Hma)),Ame); (Tor,((Uma,Uar),((Hma,(Uth,Uam)),Mur)),Ame); (Tor,((Uma,Uar),((Hma,(Uth,Uam)),Mur)),Ame); (Tor,((Hma,Mur),((Uma,Uar),(Uth,Uam))),Ame); (Tor,(Hma,(((Uam,(Uma,Uar)),Uth),Mur)),Ame); (Tor,(Mur,(Hma,((Uam,(Uma,Uar)),Uth))),Ame); (Tor,(((Mur,Uth),(Uam,(Uma,Uar))),Hma),Ame); (Tor,(((Uth,Mur),Hma),(Uam,(Uar,Uma))),Ame); (Tor,((Uam,(Uar,Uma)),((Mur,Hma),Uth)),Ame); (Tor,((Mur,Hma),(Uth,(Uam,(Uar,Uma)))),Ame); (Tor,(Mur,(Hma,(Uth,(Uam,(Uar,Uma))))),Ame); (Tor,(((Uam,Uth),Mur),(Hma,(Uar,Uma))),Ame); (Tor,(((Uar,Uma),(Uth,Uam)),(Hma,Mur)),Ame); (Tor,((Uar,Uma),((Hma,(Uth,Uam)),Mur)),Ame); (Tor,((Uth,((Uar,Uma),Uam)),(Mur,Hma)),Ame); (Tor,(((Uar,Uma),(Uth,Uam)),(Mur,Hma)),Ame); (Tor,((Mur,Hma),(((Uar,Uma),Uam),Uth)),Ame); (Tor,((Hma,Mur),((Uth,Uam),(Uar,Uma))),Ame); (Tor,((Uar,Uma),(Mur,(Hma,(Uth,Uam)))),Ame); (Tor,(((Uar,Uma),(Mur,(Uth,Uam))),Hma),Ame); (Tor,(((Mur,Hma),Uth),((Uar,Uma),Uam)),Ame); (Tor,(((Uar,Uma),Uam),(Hma,(Mur,Uth))),Ame); (Tor,((Uar,Uma),(Mur,(Hma,(Uth,Uam)))),Ame); (Tor,((Uam,(Uar,Uma)),(Mur,(Hma,Uth))),Ame); (Tor,((Uam,(Uar,Uma)),((Uth,Mur),Hma)),Ame); (Tor,((Uam,(Uar,Uma)),(Uth,(Mur,Hma))),Ame); (Tor,((((Uam,Uth),Hma),(Uar,Uma)),Mur),Ame); ((((Uar,Uma),Uam),(Uth,(Hma,Mur))),Tor,Ame); ((((Uar,Uma),(Uth,Uam)),(Mur,Hma)),Tor,Ame); (((Uar,Uma),(Mur,((Uth,Uam),Hma))),Tor,Ame); ((((Uth,Uam),Hma),((Uar,Uma),Mur)),Tor,Ame); ((Mur,((Uth,Hma),(Uam,(Uar,Uma)))),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uar,Uma)))),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uar,Uma)))),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uar,Uma)))),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uar,Uma)))),Tor,Ame); (((Hma,((Uth,Uam),Mur)),(Uar,Uma)),Tor,Ame); (((Hma,Mur),((Uam,(Uar,Uma)),Uth)),Tor,Ame); ((Mur,(((Uam,(Uar,Uma)),Uth),Hma)),Tor,Ame); (((Uam,(Uar,Uma)),((Mur,Uth),Hma)),Tor,Ame); (((Uam,(Uar,Uma)),((Mur,Uth),Hma)),Tor,Ame); ((Hma,((Uth,(Uam,(Uar,Uma))),Mur)),Tor,Ame); (((Uar,Uma),((Mur,Hma),(Uam,Uth))),Tor,Ame); (((Hma,(Uar,Uma)),(Mur,(Uam,Uth))),Tor,Ame); (((Uar,Uma),(Mur,(Hma,(Uam,Uth)))),Tor,Ame); ((((Uam,Uth),Mur),(Hma,(Uar,Uma))),Tor,Ame); ((((Uar,Uma),Uam),(Uth,(Mur,Hma))),Tor,Ame); (((Uam,(Uma,Uar)),(Uth,(Hma,Mur))),Tor,Ame); (((Mur,((Uam,(Uma,Uar)),Uth)),Hma),Tor,Ame); (((Uam,(Uma,Uar)),(Uth,(Hma,Mur))),Tor,Ame); (((Uam,(Uma,Uar)),(Uth,(Hma,Mur))),Tor,Ame); (((Hma,Mur),((Uam,(Uma,Uar)),Uth)),Tor,Ame); (((Hma,(Uam,(Uma,Uar))),(Uth,Mur)),Tor,Ame); (((Uam,(Uma,Uar)),(Uth,(Hma,Mur))),Tor,Ame); (((Uma,Uar),(((Uth,Uam),Hma),Mur)),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uma,Uar)))),Tor,Ame); ((((Uth,Hma),Mur),(Uam,(Uma,Uar))),Tor,Ame); (Tor,((Uam,(Uar,Uma)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uar,Uma)),((Uth,Hma),Mur)),Ame); (Tor,((Uar,Uma),(((Uam,Uth),Mur),Hma)),Ame); (Tor,((Uar,Uma),(((Uth,Uam),Hma),Mur)),Ame); (Tor,(((Uam,(Uar,Uma)),Uth),(Hma,Mur)),Ame); (Tor,((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Ame); (Tor,((Uar,Uma),(((Uth,Uam),Hma),Mur)),Ame); (Tor,((Uam,(Uar,Uma)),(Uth,(Hma,Mur))),Ame); (Tor,((Uar,Uma),(((Uth,Uam),Hma),Mur)),Ame); (Tor,((Uar,Uma),(((Uth,Uam),Hma),Mur)),Ame); (((Uar,Uma),((Mur,(Uth,Uam)),Hma)),Tor,Ame); ((((Mur,Uth),Hma),(Uam,(Uar,Uma))),Tor,Ame); ((((Uar,Uma),(Hma,(Uth,Uam))),Mur),Tor,Ame); ((((Hma,Mur),Uth),((Uar,Uma),Uam)),Tor,Ame); (((Mur,(Hma,(Uam,Uth))),(Uar,Uma)),Tor,Ame); (((((Uar,Uma),Uam),Uth),(Mur,Hma)),Tor,Ame); (((Mur,(Uth,Uam)),(Hma,(Uar,Uma))),Tor,Ame); ((((Mur,Uth),Hma),(Uam,(Uar,Uma))),Tor,Ame); ((((Uth,Uam),Hma),((Uar,Uma),Mur)),Tor,Ame); (((Hma,(Mur,Uth)),(Uam,(Uar,Uma))),Tor,Ame); ((((Hma,Uth),(Uam,(Uma,Uar))),Mur),Tor,Ame); ((((Uma,Uar),(Uth,Uam)),(Hma,Mur)),Tor,Ame); (((Uth,(Hma,Mur)),((Uma,Uar),Uam)),Tor,Ame); (((Uth,(Hma,Mur)),((Uma,Uar),Uam)),Tor,Ame); ((((Uma,Uar),Uam),(Hma,(Uth,Mur))),Tor,Ame); ((((Uma,Uar),Uam),(Hma,(Uth,Mur))),Tor,Ame); ((Hma,((Uth,Mur),((Uma,Uar),Uam))),Tor,Ame); ((Hma,(Mur,(((Uma,Uar),Uam),Uth))),Tor,Ame); ((((Mur,Hma),(Uma,Uar)),(Uam,Uth)),Tor,Ame); ((((Uma,Uar),Uam),((Mur,Uth),Hma)),Tor,Ame); (((((Uth,Uam),Hma),Mur),(Uma,Uar)),Tor,Ame); ((Mur,((Uth,((Uma,Uar),Uam)),Hma)),Tor,Ame); (((Mur,(Uth,Uam)),((Uma,Uar),Hma)),Tor,Ame); (((Uma,Uar),(Hma,(Mur,(Uth,Uam)))),Tor,Ame); (((Uma,Uar),((Hma,(Uth,Uam)),Mur)),Tor,Ame); (((Hma,(Uth,Uam)),(Mur,(Uma,Uar))),Tor,Ame); (((Uma,Uar),((Hma,(Uth,Uam)),Mur)),Tor,Ame); ((((Uth,Uam),(Uma,Uar)),(Mur,Hma)),Tor,Ame); ((Hma,(((Uam,(Uma,Uar)),Uth),Mur)),Tor,Ame); (((Uam,(Uma,Uar)),((Hma,Uth),Mur)),Tor,Ame); (Tor,((Hma,Mur),(((Uma,Uar),Uam),Uth)),Ame); (Tor,(((Uma,Uar),Uam),(Uth,(Hma,Mur))),Ame); (Tor,((Uma,Uar),(((Uth,Uam),Hma),Mur)),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Hma),Uth)),Ame); (Tor,((Mur,(Uth,(Uam,(Uma,Uar)))),Hma),Ame); (Tor,((Uam,(Uma,Uar)),((Hma,Mur),Uth)),Ame); (Tor,((Mur,(Uam,Uth)),(Hma,(Uma,Uar))),Ame); (Tor,(Hma,((Uth,(Uam,(Uma,Uar))),Mur)),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Hma),Uth)),Ame); (Tor,(((Uar,Uma),Uam),(Uth,(Hma,Mur))),Ame); (Tor,(((Uar,Uma),(Uth,Uam)),(Hma,Mur)),Ame); (Tor,((Uth,Uam),((Hma,Mur),(Uar,Uma))),Ame); (Tor,((Uam,(Uar,Uma)),((Mur,Uth),Hma)),Ame); (Tor,(Hma,(Mur,((Uam,(Uar,Uma)),Uth))),Ame); (Tor,((Uam,(Uar,Uma)),(Uth,(Hma,Mur))),Ame); (Tor,((Uam,(Uar,Uma)),(Uth,(Hma,Mur))),Ame); (Tor,((Uam,(Uar,Uma)),(Uth,(Hma,Mur))),Ame); (Tor,((Uar,Uma),(((Uth,Uam),Hma),Mur)),Ame); (Tor,((Uam,(Uar,Uma)),(Uth,(Hma,Mur))),Ame); (Tor,(((Uth,Mur),Hma),(Uam,(Uar,Uma))),Ame); (Tor,((Uam,(Uar,Uma)),((Mur,Hma),Uth)),Ame); (Tor,((Uam,(Uar,Uma)),((Mur,Hma),Uth)),Ame); (Tor,((Mur,(Uth,Uam)),((Uar,Uma),Hma)),Ame); (Tor,((((Uth,Uam),Hma),Mur),(Uar,Uma)),Ame); (Tor,((Hma,Mur),(Uth,(Uam,(Uar,Uma)))),Ame); (Tor,(((Uam,(Uar,Uma)),(Mur,Uth)),Hma),Ame); (Tor,((Uar,Uma),((Mur,(Uam,Uth)),Hma)),Ame); (Tor,(((Uar,Uma),((Uam,Uth),Hma)),Mur),Ame); (Tor,(((Uar,Uma),((Uam,Uth),Hma)),Mur),Ame); (Tor,((Uma,Uar),(Mur,((Uth,Uam),Hma))),Ame); (Tor,(Mur,(Uth,((Uam,(Uma,Uar)),Hma))),Ame); (Tor,((Uam,(Uma,Uar)),((Uth,Mur),Hma)),Ame); (Tor,((Uth,(Uam,(Uma,Uar))),(Mur,Hma)),Ame); (Tor,((Uth,(Uam,(Uma,Uar))),(Mur,Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Uth,Mur),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Uth,Mur),Hma)),Ame); (Tor,((Uth,Mur),(Hma,(Uam,(Uma,Uar)))),Ame); (Tor,((Uth,(Hma,Mur)),(Uam,(Uma,Uar))),Ame); (Tor,((Uth,Uam),((Uma,Uar),(Hma,Mur))),Ame); (Tor,((Hma,Mur),((Uth,Uam),(Uar,Uma))),Ame); (Tor,((Uam,(Uar,Uma)),(Mur,(Hma,Uth))),Ame); (Tor,(Mur,(Hma,(Uth,(Uam,(Uar,Uma))))),Ame); (Tor,((Uth,Uam),((Uar,Uma),(Mur,Hma))),Ame); (Tor,((Uam,(Uar,Uma)),((Mur,Hma),Uth)),Ame); (Tor,((Uar,Uma),((Mur,(Uth,Uam)),Hma)),Ame); (Tor,((Uar,Uma),(Mur,((Uam,Uth),Hma))),Ame); (Tor,(((Uam,Uth),Hma),((Uar,Uma),Mur)),Ame); (Tor,((Hma,Mur),(Uth,(Uam,(Uar,Uma)))),Ame); (Tor,((Uam,Uth),((Uar,Uma),(Hma,Mur))),Ame); (Tor,(Mur,((Hma,(Uam,Uth)),(Uar,Uma))),Ame); (Tor,(Hma,((Uth,(Uam,(Uar,Uma))),Mur)),Ame); (Tor,((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Ame); (Tor,(Hma,(Mur,((Uam,(Uar,Uma)),Uth))),Ame); (Tor,((Uar,Uma),(Mur,(Hma,(Uth,Uam)))),Ame); (Tor,((Uam,(Uar,Uma)),(Uth,(Mur,Hma))),Ame); (Tor,((Uam,(Uar,Uma)),(Uth,(Mur,Hma))),Ame); (Tor,((Mur,Hma),((Uam,(Uar,Uma)),Uth)),Ame); (Tor,((Uar,Uma),(Mur,(Hma,(Uth,Uam)))),Ame); (Tor,(Hma,(Mur,(Uth,(Uam,(Uar,Uma))))),Ame); (((Mur,(Hma,Uth)),(Uam,(Uar,Uma))),Tor,Ame); ((((Uth,(Uam,(Uar,Uma))),Mur),Hma),Tor,Ame); (((Uam,(Uar,Uma)),((Mur,Hma),Uth)),Tor,Ame); (((Uar,Uma),(Mur,(Hma,(Uth,Uam)))),Tor,Ame); ((Hma,((Uth,(Uam,(Uar,Uma))),Mur)),Tor,Ame); (((Uam,(Uar,Uma)),((Mur,Hma),Uth)),Tor,Ame); (((Mur,Hma),(Uth,(Uam,(Uar,Uma)))),Tor,Ame); (((Mur,Hma),(Uth,(Uam,(Uar,Uma)))),Tor,Ame); ((((Uth,Uam),Hma),((Uar,Uma),Mur)),Tor,Ame); (((Uth,(Hma,Mur)),(Uam,(Uar,Uma))),Tor,Ame); (((Uth,(Uam,(Uma,Uar))),(Mur,Hma)),Tor,Ame); (((Uma,Uar),((Mur,Hma),(Uth,Uam))),Tor,Ame); (((Uth,(Mur,Hma)),(Uam,(Uma,Uar))),Tor,Ame); ((((Uth,Mur),(Uam,(Uma,Uar))),Hma),Tor,Ame); (((Uth,(Uam,(Uma,Uar))),(Mur,Hma)),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); (((Uma,Uar),(Mur,((Uam,Uth),Hma))),Tor,Ame); (((Uam,(Uma,Uar)),((Hma,Mur),Uth)),Tor,Ame); (((Uma,Uar),(Mur,(Uam,(Hma,Uth)))),Tor,Ame); (Tor,(Mur,((Uar,Uma),((Uam,Uth),Hma))),Ame); (Tor,((((Uar,Uma),Uam),Uth),(Hma,Mur)),Ame); (Tor,(((Uar,Uma),((Uam,Uth),Hma)),Mur),Ame); (Tor,((Uar,Uma),(((Uam,Uth),Hma),Mur)),Ame); (Tor,(Hma,((((Uar,Uma),Uam),Uth),Mur)),Ame); (Tor,(((Uar,Uma),Uam),(Uth,(Mur,Hma))),Ame); (Tor,(((Uth,Mur),((Uar,Uma),Uam)),Hma),Ame); (Tor,(((Mur,Uth),Hma),((Uar,Uma),Uam)),Ame); (Tor,(((Mur,Uth),Hma),((Uar,Uma),Uam)),Ame); (Tor,((Mur,Hma),((Uar,Uma),(Uth,Uam))),Ame); (((Uma,Uar),((Uam,(Hma,Uth)),Mur)),Tor,Ame); ((((Uth,Mur),(Uam,(Uma,Uar))),Hma),Tor,Ame); (((Uma,Uar),((Hma,(Uth,Uam)),Mur)),Tor,Ame); (((Mur,Hma),(((Uma,Uar),Uam),Uth)),Tor,Ame); (((Mur,(Uma,Uar)),(Hma,(Uam,Uth))),Tor,Ame); ((Hma,((((Uma,Uar),Uam),Uth),Mur)),Tor,Ame); ((((Uma,Uar),Uam),((Mur,Hma),Uth)),Tor,Ame); ((((Uma,Uar),Uam),((Mur,Uth),Hma)),Tor,Ame); ((((Uma,Uar),(Uth,Uam)),(Mur,Hma)),Tor,Ame); ((((Uma,Uar),(Uth,Uam)),(Mur,Hma)),Tor,Ame); (Tor,((Hma,Mur),(((Uar,Uma),Uam),Uth)),Ame); (Tor,(Hma,((Mur,Uth),((Uar,Uma),Uam))),Ame); (Tor,((Mur,(Uth,Uam)),(Hma,(Uar,Uma))),Ame); (Tor,((Mur,(Hma,(Uth,Uam))),(Uar,Uma)),Ame); (Tor,((Hma,(Uth,Mur)),(Uam,(Uar,Uma))),Ame); (Tor,((Hma,(Uth,Mur)),(Uam,(Uar,Uma))),Ame); (Tor,((Hma,(Uth,Mur)),(Uam,(Uar,Uma))),Ame); (Tor,(((Uar,Uma),(Hma,(Uth,Uam))),Mur),Ame); (Tor,((Uth,((Uar,Uma),Uam)),(Hma,Mur)),Ame); (Tor,((Uth,((Uar,Uma),Uam)),(Hma,Mur)),Ame); (((Mur,Hma),(Uth,(Uam,(Uar,Uma)))),Tor,Ame); ((((Uam,Uth),Mur),(Hma,(Uar,Uma))),Tor,Ame); (((Mur,(Hma,(Uam,Uth))),(Uar,Uma)),Tor,Ame); ((((Uam,(Uar,Uma)),Uth),(Mur,Hma)),Tor,Ame); ((((Uar,Uma),(Uth,Uam)),(Mur,Hma)),Tor,Ame); (((Mur,(Uth,((Uar,Uma),Uam))),Hma),Tor,Ame); ((((Uar,Uma),(Uam,Uth)),(Hma,Mur)),Tor,Ame); (((Mur,(Uam,Uth)),(Hma,(Uar,Uma))),Tor,Ame); ((Hma,(((Uar,Uma),Uam),(Mur,Uth))),Tor,Ame); ((((Uar,Uma),(Hma,(Uth,Uam))),Mur),Tor,Ame); (Tor,((Uth,Uam),((Hma,Mur),(Uma,Uar))),Ame); (Tor,((Uam,(Uma,Uar)),((Hma,Uth),Mur)),Ame); (Tor,((Hma,(Uma,Uar)),((Uth,Uam),Mur)),Ame); (Tor,((Hma,Mur),((Uma,Uar),(Uth,Uam))),Ame); (Tor,(((Uma,Uar),(Hma,(Uth,Uam))),Mur),Ame); (Tor,(Hma,((Mur,Uth),(Uam,(Uma,Uar)))),Ame); (Tor,(Hma,(Mur,(Uth,(Uam,(Uma,Uar))))),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,((Uma,Uar),(Mur,((Uam,Uth),Hma))),Ame); (Tor,((Uma,Uar),(Mur,((Uam,Uth),Hma))),Ame); ((Mur,((Uar,Uma),((Uam,Uth),Hma))),Tor,Ame); ((((Uam,Uth),Hma),(Mur,(Uar,Uma))),Tor,Ame); ((Mur,((Uar,Uma),((Uam,Uth),Hma))),Tor,Ame); (((Uth,(Hma,Mur)),((Uar,Uma),Uam)),Tor,Ame); (((Hma,Mur),(((Uar,Uma),Uam),Uth)),Tor,Ame); ((((Uar,Uma),Uam),((Uth,Mur),Hma)),Tor,Ame); ((Hma,(((Uar,Uma),Uam),(Uth,Mur))),Tor,Ame); ((((Uar,Uma),Uam),(Hma,(Mur,Uth))),Tor,Ame); ((((Uar,Uma),Uam),(Hma,(Mur,Uth))),Tor,Ame); ((Mur,(((Uth,Uam),Hma),(Uar,Uma))),Tor,Ame); (Tor,(((Uth,Mur),Hma),((Uma,Uar),Uam)),Ame); (Tor,(Hma,((Uth,((Uma,Uar),Uam)),Mur)),Ame); (Tor,(Hma,((Uth,((Uma,Uar),Uam)),Mur)),Ame); (Tor,(((Uma,Uar),(Uth,Uam)),(Mur,Hma)),Ame); (Tor,(Hma,((Mur,(Uth,Uam)),(Uma,Uar))),Ame); (Tor,((Mur,(Hma,Uth)),(Uam,(Uma,Uar))),Ame); (Tor,(Mur,(Hma,(Uth,(Uam,(Uma,Uar))))),Ame); (Tor,((Uth,(Uam,(Uma,Uar))),(Mur,Hma)),Ame); (Tor,((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Ame); (Tor,((Uam,(Uma,Uar)),((Hma,Mur),Uth)),Ame); (Tor,(((Uth,Mur),Hma),((Uar,Uma),Uam)),Ame); (Tor,((Hma,(((Uar,Uma),Uam),Uth)),Mur),Ame); (Tor,((Uar,Uma),(Mur,((Uam,Uth),Hma))),Ame); (Tor,((Uar,Uma),(Mur,((Uam,Uth),Hma))),Ame); (Tor,((Hma,(Uar,Uma)),(Mur,(Uam,Uth))),Ame); (Tor,((Uam,(Uar,Uma)),((Mur,Uth),Hma)),Ame); (Tor,((Uth,(Uam,(Uar,Uma))),(Mur,Hma)),Ame); (Tor,((Uam,(Uar,Uma)),(Mur,(Uth,Hma))),Ame); (Tor,((Hma,(Uar,Uma)),(Mur,(Uth,Uam))),Ame); (Tor,((Uam,(Uar,Uma)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),(Uth,(Hma,Mur))),Ame); (Tor,((Mur,((Uam,(Uma,Uar)),Uth)),Hma),Ame); (Tor,((Uam,(Uma,Uar)),((Uth,Mur),Hma)),Ame); (Tor,(Hma,((Uth,(Uam,(Uma,Uar))),Mur)),Ame); (Tor,((Uam,(Uma,Uar)),(Mur,(Hma,Uth))),Ame); (Tor,((Uam,(Uma,Uar)),(Hma,(Uth,Mur))),Ame); (Tor,(((Uth,Uam),Hma),(Mur,(Uma,Uar))),Ame); (Tor,((Hma,Mur),((Uam,(Uma,Uar)),Uth)),Ame); (Tor,(Hma,(((Uam,Uth),Mur),(Uma,Uar))),Ame); (Tor,(((Uma,Uar),Mur),(Hma,(Uam,Uth))),Ame); (Tor,(((Uth,Uam),Hma),(Mur,(Uar,Uma))),Ame); (Tor,((Hma,Mur),(((Uar,Uma),Uam),Uth)),Ame); (Tor,(Mur,(((Uar,Uma),(Uth,Uam)),Hma)),Ame); (Tor,(((Uth,Mur),((Uar,Uma),Uam)),Hma),Ame); (Tor,((Mur,(((Uar,Uma),Uam),Uth)),Hma),Ame); (Tor,(((Uar,Uma),(Uam,Uth)),(Hma,Mur)),Ame); (Tor,(((Uar,Uma),(Hma,(Uam,Uth))),Mur),Ame); (Tor,((Uar,Uma),((Hma,(Uam,Uth)),Mur)),Ame); (Tor,((Hma,(Uar,Uma)),((Uam,Uth),Mur)),Ame); (Tor,((Hma,(Uar,Uma)),((Uam,Uth),Mur)),Ame); (Tor,((Uam,(Uma,Uar)),(Uth,(Mur,Hma))),Ame); (Tor,((Mur,Hma),((Uam,(Uma,Uar)),Uth)),Ame); (Tor,(((Uth,Mur),Hma),(Uam,(Uma,Uar))),Ame); (Tor,(Hma,((Uam,(Uma,Uar)),(Uth,Mur))),Ame); (Tor,(Hma,((Uam,(Uma,Uar)),(Uth,Mur))),Ame); (Tor,(((Uth,Uam),(Uma,Uar)),(Hma,Mur)),Ame); (Tor,(((Uth,Uam),Mur),((Uma,Uar),Hma)),Ame); (Tor,((Hma,(Uth,Uam)),(Mur,(Uma,Uar))),Ame); (Tor,(Hma,((Uth,Mur),(Uam,(Uma,Uar)))),Ame); (Tor,((Uam,(Uma,Uar)),(Hma,(Uth,Mur))),Ame); (((Uma,Uar),((Hma,(Uth,Uam)),Mur)),Tor,Ame); (((Mur,Hma),((Uam,(Uma,Uar)),Uth)),Tor,Ame); (((Mur,Hma),((Uam,(Uma,Uar)),Uth)),Tor,Ame); (((Mur,Hma),((Uam,(Uma,Uar)),Uth)),Tor,Ame); ((((Uma,Uar),(Hma,(Uth,Uam))),Mur),Tor,Ame); (((Hma,Mur),(((Uma,Uar),Uam),Uth)),Tor,Ame); (((Uma,Uar),(((Uam,Uth),Mur),Hma)),Tor,Ame); (((Uma,Uar),(((Uam,Uth),Hma),Mur)),Tor,Ame); ((Mur,((Uma,Uar),((Uam,Uth),Hma))),Tor,Ame); (((Hma,Mur),((Uma,Uar),(Uam,Uth))),Tor,Ame); (Tor,((Uma,Uar),(Mur,(Hma,(Uth,Uam)))),Ame); (Tor,((Uma,Uar),(Mur,(Hma,(Uth,Uam)))),Ame); (Tor,((Uth,((Uma,Uar),Uam)),(Mur,Hma)),Ame); (Tor,(((Uma,Uar),Uam),((Uth,Mur),Hma)),Ame); (Tor,(Hma,(((Uma,Uar),Uam),(Uth,Mur))),Ame); (Tor,(Hma,(((Uma,Uar),Uam),(Uth,Mur))),Ame); (Tor,((Uth,Mur),(Hma,((Uma,Uar),Uam))),Ame); (Tor,(((Uma,Uar),(Hma,(Uam,Uth))),Mur),Ame); (Tor,(((Uma,Uar),Uam),(Uth,(Hma,Mur))),Ame); (Tor,(((Uma,Uar),Uam),(Mur,(Uth,Hma))),Ame); (((Hma,Mur),(((Uma,Uar),Uam),Uth)),Tor,Ame); ((Hma,(Mur,(((Uma,Uar),Uam),Uth))),Tor,Ame); ((((Uma,Uar),Uam),(Uth,(Hma,Mur))),Tor,Ame); ((Mur,((((Uma,Uar),Uam),Uth),Hma)),Tor,Ame); ((((Uma,Uar),Uam),((Uth,Hma),Mur)),Tor,Ame); (((Uma,Uar),((Uth,Uam),(Hma,Mur))),Tor,Ame); ((Mur,((Uma,Uar),((Uth,Uam),Hma))),Tor,Ame); ((Mur,((Uma,Uar),((Uth,Uam),Hma))),Tor,Ame); (((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Tor,Ame); (((Uma,Uar),(((Uam,Uth),Hma),Mur)),Tor,Ame); (Tor,(((Uar,Uma),(Hma,Mur)),(Uth,Uam)),Ame); (Tor,(((Uar,Uma),Hma),(Mur,(Uth,Uam))),Ame); (Tor,((Hma,(Uth,(Uam,(Uar,Uma)))),Mur),Ame); (Tor,((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Ame); (Tor,((Uth,(Uam,(Uar,Uma))),(Hma,Mur)),Ame); (Tor,((Uam,(Uar,Uma)),((Hma,Mur),Uth)),Ame); (Tor,((Hma,Mur),(Uth,(Uam,(Uar,Uma)))),Ame); (Tor,((Mur,(Hma,(Uam,Uth))),(Uar,Uma)),Ame); (Tor,(((Uam,(Uar,Uma)),(Uth,Mur)),Hma),Ame); (Tor,(Mur,((Uth,(Uam,(Uar,Uma))),Hma)),Ame); (Tor,((Hma,Mur),(Uth,(Uam,(Uar,Uma)))),Ame); (Tor,(((Uar,Uma),((Uth,Uam),Hma)),Mur),Ame); (Tor,(((Uar,Uma),(Hma,Mur)),(Uth,Uam)),Ame); (Tor,((Uth,(Hma,Mur)),(Uam,(Uar,Uma))),Ame); (Tor,((Uth,(Hma,Mur)),(Uam,(Uar,Uma))),Ame); (Tor,((Hma,Mur),((Uam,(Uar,Uma)),Uth)),Ame); (Tor,((Hma,(Uth,Mur)),(Uam,(Uar,Uma))),Ame); (Tor,((Uth,(Mur,Hma)),(Uam,(Uar,Uma))),Ame); (Tor,(Hma,((Uth,(Uam,(Uar,Uma))),Mur)),Ame); (Tor,(((Uar,Uma),(Hma,(Uam,Uth))),Mur),Ame); (((Uth,((Uar,Uma),Uam)),(Hma,Mur)),Tor,Ame); ((((Uar,Uma),Uam),(Hma,(Uth,Mur))),Tor,Ame); (((((Uar,Uma),Uam),Uth),(Hma,Mur)),Tor,Ame); ((Mur,((((Uar,Uma),Uam),Uth),Hma)),Tor,Ame); ((((Uar,Uma),(Uam,Uth)),(Hma,Mur)),Tor,Ame); (((Uar,Uma),((Hma,(Uam,Uth)),Mur)),Tor,Ame); ((Hma,(Mur,((Uam,(Uar,Uma)),Uth))),Tor,Ame); ((((Uam,(Uar,Uma)),Uth),(Hma,Mur)),Tor,Ame); (((Hma,Mur),((Uth,Uam),(Uar,Uma))),Tor,Ame); (((Hma,(Uth,Mur)),(Uam,(Uar,Uma))),Tor,Ame); (((Uma,Uar),(Mur,((Uam,Uth),Hma))),Tor,Ame); ((Mur,(((Uam,Uth),Hma),(Uma,Uar))),Tor,Ame); (((Hma,((Uam,Uth),Mur)),(Uma,Uar)),Tor,Ame); ((Hma,(((Uam,(Uma,Uar)),Uth),Mur)),Tor,Ame); ((((Hma,(Uam,(Uma,Uar))),Uth),Mur),Tor,Ame); ((((Hma,(Uam,Uth)),(Uma,Uar)),Mur),Tor,Ame); ((Hma,((((Uma,Uar),Uam),Uth),Mur)),Tor,Ame); ((((Uma,Uar),Uam),((Uth,Mur),Hma)),Tor,Ame); (((Uma,Uar),(Mur,(Hma,(Uam,Uth)))),Tor,Ame); ((((((Uma,Uar),Uam),Uth),Mur),Hma),Tor,Ame); (Tor,(((Mur,(Uam,Uth)),Hma),(Uar,Uma)),Ame); (Tor,(((Uam,Uth),(Uar,Uma)),(Hma,Mur)),Ame); (Tor,((Mur,(Uam,Uth)),((Uar,Uma),Hma)),Ame); (Tor,((Mur,(Uam,Uth)),((Uar,Uma),Hma)),Ame); (Tor,((Mur,(Uam,Uth)),((Uar,Uma),Hma)),Ame); (Tor,(Mur,((Hma,(Uam,Uth)),(Uar,Uma))),Ame); (Tor,((Hma,Mur),(Uth,((Uar,Uma),Uam))),Ame); (Tor,(((Uar,Uma),Uam),((Uth,Mur),Hma)),Ame); (Tor,((((Uar,Uma),Uam),Uth),(Mur,Hma)),Ame); (Tor,((((Uar,Uma),Uam),Uth),(Mur,Hma)),Ame); ((Hma,((Uma,Uar),(Mur,(Uth,Uam)))),Tor,Ame); (((Uam,(Uma,Uar)),(Mur,(Hma,Uth))),Tor,Ame); (((Mur,(Uth,(Uam,(Uma,Uar)))),Hma),Tor,Ame); (((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Tor,Ame); ((((Uma,Uar),((Uam,Uth),Hma)),Mur),Tor,Ame); (((Uma,Uar),((Uth,(Hma,Uam)),Mur)),Tor,Ame); (((Hma,Mur),((Uam,(Uma,Uar)),Uth)),Tor,Ame); ((Hma,(Mur,((Uam,(Uma,Uar)),Uth))),Tor,Ame); ((((Uam,Uth),Hma),(Mur,(Uma,Uar))),Tor,Ame); ((((Mur,(Uam,Uth)),Hma),(Uma,Uar)),Tor,Ame); (((Uth,(Hma,Mur)),((Uma,Uar),Uam)),Tor,Ame); (((Hma,Mur),(((Uma,Uar),Uam),Uth)),Tor,Ame); (((Hma,Mur),(((Uma,Uar),Uam),Uth)),Tor,Ame); (((Hma,Mur),(((Uma,Uar),Uam),Uth)),Tor,Ame); (((Mur,(Uam,Uth)),(Hma,(Uma,Uar))),Tor,Ame); ((((Mur,Uth),Hma),(Uam,(Uma,Uar))),Tor,Ame); (((Uth,(Hma,Mur)),(Uam,(Uma,Uar))),Tor,Ame); (((Uma,Uar),(Mur,(Hma,(Uam,Uth)))),Tor,Ame); ((((Uma,Uar),Uam),((Uth,Mur),Hma)),Tor,Ame); ((((Uma,Uar),Uam),(Mur,(Hma,Uth))),Tor,Ame); (((Uth,(Mur,Hma)),(Uam,(Uar,Uma))),Tor,Ame); (((Mur,Hma),((Uam,(Uar,Uma)),Uth)),Tor,Ame); ((((Uam,Uth),Hma),(Mur,(Uar,Uma))),Tor,Ame); ((Mur,((Uar,Uma),((Uam,Uth),Hma))),Tor,Ame); ((Mur,((Uar,Uma),((Uam,Uth),Hma))),Tor,Ame); (((Hma,(Uth,Mur)),((Uar,Uma),Uam)),Tor,Ame); (((((Uar,Uma),Uam),Uth),(Hma,Mur)),Tor,Ame); (((((Uar,Uma),Uam),Uth),(Hma,Mur)),Tor,Ame); (((((Uar,Uma),Uam),Uth),(Hma,Mur)),Tor,Ame); ((((Uar,Uma),Uam),((Hma,Uth),Mur)),Tor,Ame); (Tor,((Uma,Uar),(Mur,((Uth,Uam),Hma))),Ame); (Tor,((Uth,((Uma,Uar),Uam)),(Hma,Mur)),Ame); (Tor,((Uma,Uar),((Uam,Uth),(Hma,Mur))),Ame); (Tor,((Mur,(Uma,Uar)),((Uam,Uth),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Hma),Uth)),Ame); (Tor,(((Uth,Uam),Mur),((Uma,Uar),Hma)),Ame); (Tor,(Hma,((Mur,Uth),(Uam,(Uma,Uar)))),Ame); (Tor,(((Uam,(Uma,Uar)),Uth),(Hma,Mur)),Ame); (Tor,(((Uma,Uar),(Uth,Uam)),(Hma,Mur)),Ame); (Tor,(Mur,((Uar,Uma),((Uam,Uth),Hma))),Ame); (Tor,(((Uar,Uma),Uam),((Hma,Mur),Uth)),Ame); (Tor,(((Uar,Uma),(Uth,Uam)),(Hma,Mur)),Ame); (Tor,(((Uar,Uma),Uam),(Uth,(Hma,Mur))),Ame); (Tor,((Hma,Mur),(((Uar,Uma),Uam),Uth)),Ame); (Tor,((Mur,(Hma,(Uam,Uth))),(Uar,Uma)),Ame); (Tor,((Uth,(Mur,Hma)),(Uam,(Uar,Uma))),Ame); (Tor,(((Uth,Mur),(Uam,(Uar,Uma))),Hma),Ame); (Tor,(((Hma,Mur),Uth),(Uam,(Uar,Uma))),Ame); (Tor,(((Hma,Mur),Uth),(Uam,(Uar,Uma))),Ame); (((Uth,(Hma,Mur)),(Uam,(Uar,Uma))),Tor,Ame); (((Uth,(Hma,Mur)),(Uam,(Uar,Uma))),Tor,Ame); (((((Uam,Uth),Mur),(Uar,Uma)),Hma),Tor,Ame); (((Hma,(Uth,Mur)),(Uam,(Uar,Uma))),Tor,Ame); (((Uar,Uma),(((Uth,Uam),Hma),Mur)),Tor,Ame); ((((Uth,((Uar,Uma),Uam)),Hma),Mur),Tor,Ame); ((((Uar,Uma),(Uam,Uth)),(Hma,Mur)),Tor,Ame); (((Uar,Uma),(Hma,(Mur,(Uam,Uth)))),Tor,Ame); (((Uar,Uma),((Hma,(Uam,Uth)),Mur)),Tor,Ame); (((Uam,(Uar,Uma)),((Hma,Uth),Mur)),Tor,Ame); (Tor,((Hma,((Uam,Uth),Mur)),(Uma,Uar)),Ame); (Tor,((Hma,(Uth,Mur)),(Uam,(Uma,Uar))),Ame); (Tor,(Hma,(Mur,(Uth,(Uam,(Uma,Uar))))),Ame); (Tor,((Uam,(Uma,Uar)),((Hma,Mur),Uth)),Ame); (Tor,((Hma,Mur),(Uth,(Uam,(Uma,Uar)))),Ame); (Tor,(((Uam,(Uma,Uar)),(Mur,Uth)),Hma),Ame); (Tor,(((Uma,Uar),Hma),((Uth,Uam),Mur)),Ame); (Tor,((((Uma,Uar),Hma),(Uth,Mur)),Uam),Ame); (Tor,(Mur,((Uma,Uar),(Hma,(Uam,Uth)))),Ame); (Tor,((Uam,(Uma,Uar)),(Uth,(Hma,Mur))),Ame); (((((Uar,Uma),Uam),(Mur,Uth)),Hma),Tor,Ame); ((((Uar,Uma),Uam),((Hma,Mur),Uth)),Tor,Ame); ((((Uar,Uma),Uam),((Mur,Uth),Hma)),Tor,Ame); ((((Hma,(Uth,Uam)),(Uar,Uma)),Mur),Tor,Ame); (((Hma,Mur),((Uam,(Uar,Uma)),Uth)),Tor,Ame); (((Uam,(Uar,Uma)),((Mur,Uth),Hma)),Tor,Ame); (((((Uth,Uam),Hma),Mur),(Uar,Uma)),Tor,Ame); (((Uth,(Hma,Mur)),(Uam,(Uar,Uma))),Tor,Ame); ((((Uth,Mur),(Uam,(Uar,Uma))),Hma),Tor,Ame); (((Uar,Uma),((Hma,(Uth,Uam)),Mur)),Tor,Ame); (Tor,((Hma,Mur),(((Uma,Uar),Uam),Uth)),Ame); (Tor,(((Uma,Uar),(Uth,Uam)),(Hma,Mur)),Ame); (Tor,((Uam,(Uma,Uar)),((Hma,Uth),Mur)),Ame); (Tor,((Uam,(Uma,Uar)),((Hma,Mur),Uth)),Ame); (Tor,((Uam,(Uma,Uar)),((Hma,Mur),Uth)),Ame); (Tor,(((Uth,Uam),(Uma,Uar)),(Hma,Mur)),Ame); (Tor,((Uam,(Uma,Uar)),(Hma,(Uth,Mur))),Ame); (Tor,(Hma,(((Uam,(Uma,Uar)),Uth),Mur)),Ame); (Tor,((Uam,(Uma,Uar)),(Uth,(Mur,Hma))),Ame); (Tor,((Uam,(Uma,Uar)),((Uth,Mur),Hma)),Ame); (((Hma,(Mur,Uth)),(Uam,(Uar,Uma))),Tor,Ame); (((Hma,Mur),((Uth,Uam),(Uar,Uma))),Tor,Ame); (((Hma,Mur),((Uam,(Uar,Uma)),Uth)),Tor,Ame); (((Hma,Mur),((Uar,Uma),(Uth,Uam))),Tor,Ame); ((Hma,((Mur,Uth),((Uar,Uma),Uam))),Tor,Ame); ((Hma,(Mur,(Uth,((Uar,Uma),Uam)))),Tor,Ame); ((Hma,(Mur,(Uth,((Uar,Uma),Uam)))),Tor,Ame); ((((Mur,Hma),Uth),((Uar,Uma),Uam)),Tor,Ame); ((Hma,((Uth,((Uar,Uma),Uam)),Mur)),Tor,Ame); (((Mur,(Uth,Hma)),((Uar,Uma),Uam)),Tor,Ame); ((Mur,((Uma,Uar),(Hma,(Uam,Uth)))),Tor,Ame); (((Uma,Uar),((Hma,(Uam,Uth)),Mur)),Tor,Ame); (((((Uma,Uar),Uam),Uth),(Mur,Hma)),Tor,Ame); (((Mur,(Uam,Uth)),(Hma,(Uma,Uar))),Tor,Ame); (((Mur,(Hma,(Uam,Uth))),(Uma,Uar)),Tor,Ame); ((Mur,((Hma,(Uam,Uth)),(Uma,Uar))),Tor,Ame); (((Hma,Mur),((Uam,Uth),(Uma,Uar))),Tor,Ame); (((Hma,(Uth,Mur)),(Uam,(Uma,Uar))),Tor,Ame); ((Hma,((Uam,(Uma,Uar)),(Mur,Uth))),Tor,Ame); ((Mur,((Hma,Uth),(Uam,(Uma,Uar)))),Tor,Ame); (Tor,((Uam,(Uma,Uar)),((Hma,Uth),Mur)),Ame); (Tor,((Uam,(Uma,Uar)),((Hma,Uth),Mur)),Ame); (Tor,((Uth,(Uam,(Uma,Uar))),(Hma,Mur)),Ame); (Tor,((Hma,(Uam,(Uma,Uar))),(Mur,Uth)),Ame); (Tor,(Mur,((Hma,(Uth,Uam)),(Uma,Uar))),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Hma),Uth)),Ame); (Tor,((Mur,(Uth,(Uam,(Uma,Uar)))),Hma),Ame); (Tor,((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Ame); (Tor,((Uma,Uar),(Hma,(Mur,(Uth,Uam)))),Ame); (Tor,(((Uam,(Uma,Uar)),(Uth,Mur)),Hma),Ame); (((Hma,(Uth,Uam)),(Mur,(Uar,Uma))),Tor,Ame); (((Uth,Uam),((Hma,Mur),(Uar,Uma))),Tor,Ame); (((Mur,(Uth,Uam)),(Hma,(Uar,Uma))),Tor,Ame); (((Mur,Hma),(Uth,((Uar,Uma),Uam))),Tor,Ame); (((Mur,Hma),(Uth,((Uar,Uma),Uam))),Tor,Ame); ((((Uar,Uma),Uam),((Mur,Hma),Uth)),Tor,Ame); ((((Uar,Uma),(Hma,(Uam,Uth))),Mur),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uth,(Uam,(Uar,Uma))),(Hma,Mur)),Tor,Ame); (Tor,((Mur,(Uam,Uth)),((Uar,Uma),Hma)),Ame); (Tor,((Uth,(Hma,Mur)),(Uam,(Uar,Uma))),Ame); (Tor,((Hma,Mur),((Uam,(Uar,Uma)),Uth)),Ame); (Tor,((Uar,Uma),(Hma,((Uth,Uam),Mur))),Ame); (Tor,(((Uth,Uam),Mur),((Uar,Uma),Hma)),Ame); (Tor,(((Hma,(Uth,Uam)),Mur),(Uar,Uma)),Ame); (Tor,(((Uar,Uma),Uam),((Mur,Hma),Uth)),Ame); (Tor,((Mur,Hma),(Uth,((Uar,Uma),Uam))),Ame); (Tor,((Uar,Uma),(Mur,(Hma,(Uam,Uth)))),Ame); (Tor,((Hma,(Uam,Uth)),((Uar,Uma),Mur)),Ame); (Tor,(Hma,(Mur,(((Uma,Uar),Uam),Uth))),Ame); (Tor,(((Uma,Uar),Uam),(Uth,(Hma,Mur))),Ame); (Tor,(((Uma,Uar),Uam),(Hma,(Mur,Uth))),Ame); (Tor,((Uth,((Uma,Uar),Uam)),(Mur,Hma)),Ame); (Tor,(Hma,((Uth,((Uma,Uar),Uam)),Mur)),Ame); (Tor,((Uma,Uar),(Mur,(Hma,(Uth,Uam)))),Ame); (Tor,(((Uth,Uam),(Uma,Uar)),(Mur,Hma)),Ame); (Tor,((Hma,(Uam,(Uma,Uar))),(Mur,Uth)),Ame); (Tor,((Mur,((Uth,Uam),Hma)),(Uma,Uar)),Ame); (Tor,(((Uma,Uar),(Uth,Uam)),(Hma,Mur)),Ame); (Tor,((Mur,(Uth,Hma)),(Uam,(Uma,Uar))),Ame); (Tor,((((Uma,Uar),Uam),Uth),(Mur,Hma)),Ame); (Tor,((Mur,(Uam,Uth)),(Hma,(Uma,Uar))),Ame); (Tor,((Mur,(Uam,Uth)),(Hma,(Uma,Uar))),Ame); (Tor,((Mur,(Hma,(Uam,Uth))),(Uma,Uar)),Ame); (Tor,(Mur,((Hma,(Uam,Uth)),(Uma,Uar))),Ame); (Tor,(Hma,(Mur,(Uth,((Uma,Uar),Uam)))),Ame); (Tor,(Mur,((Uma,Uar),((Uth,Uam),Hma))),Ame); (Tor,((Hma,(Mur,Uth)),(Uam,(Uma,Uar))),Ame); (Tor,((Hma,(Mur,Uth)),(Uam,(Uma,Uar))),Ame); (Tor,((Hma,(Uam,Uth)),((Uar,Uma),Mur)),Ame); (Tor,((Uar,Uma),(Mur,(Hma,(Uam,Uth)))),Ame); (Tor,((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Ame); (Tor,((Uth,(Uam,(Uar,Uma))),(Hma,Mur)),Ame); (Tor,((Uth,(Uam,(Uar,Uma))),(Hma,Mur)),Ame); (Tor,((Uth,(Uam,(Uar,Uma))),(Hma,Mur)),Ame); (Tor,(((Uar,Uma),(Uth,Uam)),(Hma,Mur)),Ame); (Tor,((Uth,(Hma,Mur)),((Uar,Uma),Uam)),Ame); (Tor,((Hma,(Mur,Uth)),((Uar,Uma),Uam)),Ame); (Tor,((Hma,Mur),(Uth,((Uar,Uma),Uam))),Ame); (((Uth,(Hma,Mur)),((Uma,Uar),Uam)),Tor,Ame); (((Hma,Mur),(((Uma,Uar),Uam),Uth)),Tor,Ame); ((((Uma,Uar),Uam),(Uth,(Hma,Mur))),Tor,Ame); (((Hma,((Uma,Uar),Uam)),(Uth,Mur)),Tor,Ame); ((((Uma,Uar),Uam),(Uth,(Hma,Mur))),Tor,Ame); (((Hma,Mur),(((Uma,Uar),Uam),Uth)),Tor,Ame); ((Hma,(Mur,(((Uma,Uar),Uam),Uth))),Tor,Ame); ((((Uma,Uar),Uam),(Uth,(Hma,Mur))),Tor,Ame); ((((Uma,Uar),Uam),(Uth,(Hma,Mur))),Tor,Ame); (((Uth,Uam),((Hma,Mur),(Uma,Uar))),Tor,Ame); (((Uar,Uma),((Mur,(Uth,Uam)),Hma)),Tor,Ame); (((Uar,Uma),(Mur,((Uam,Uth),Hma))),Tor,Ame); (((Hma,Mur),((Uam,(Uar,Uma)),Uth)),Tor,Ame); (((Uth,Uam),((Hma,Mur),(Uar,Uma))),Tor,Ame); ((((Uth,Uam),(Uar,Uma)),(Mur,Hma)),Tor,Ame); (((Uth,Mur),(Hma,(Uam,(Uar,Uma)))),Tor,Ame); (((Uth,(Hma,Mur)),(Uam,(Uar,Uma))),Tor,Ame); (((Uar,Uma),(Mur,(Uam,(Uth,Hma)))),Tor,Ame); (((Uam,(Uar,Uma)),((Mur,Uth),Hma)),Tor,Ame); (((Uth,(Uam,(Uar,Uma))),(Mur,Hma)),Tor,Ame); (((Uma,Uar),((Hma,(Uam,Uth)),Mur)),Tor,Ame); (((Uma,Uar),((Hma,(Uam,Uth)),Mur)),Tor,Ame); (((Hma,(Uam,(Uma,Uar))),(Uth,Mur)),Tor,Ame); (((Uam,(Uma,Uar)),((Uth,Mur),Hma)),Tor,Ame); ((((Uam,Uth),Mur),(Hma,(Uma,Uar))),Tor,Ame); (((Mur,(Hma,(Uam,Uth))),(Uma,Uar)),Tor,Ame); (((Mur,(Hma,(Uam,Uth))),(Uma,Uar)),Tor,Ame); (((Hma,(Uth,Mur)),(Uam,(Uma,Uar))),Tor,Ame); ((((Uth,Uam),Hma),(Mur,(Uma,Uar))),Tor,Ame); ((Mur,((Uth,((Uma,Uar),Uam)),Hma)),Tor,Ame); (Tor,(((Uam,Uth),(Uar,Uma)),(Mur,Hma)),Ame); (Tor,((Uam,(Uar,Uma)),(Uth,(Mur,Hma))),Ame); (Tor,((Uar,Uma),(((Uam,Uth),Mur),Hma)),Ame); (Tor,((Hma,((Uam,(Uar,Uma)),Uth)),Mur),Ame); (Tor,((Uar,Uma),(Mur,(Hma,(Uam,Uth)))),Ame); (Tor,((Uar,Uma),((Uam,Uth),(Mur,Hma))),Ame); (Tor,((Hma,(Uar,Uma)),((Uam,Uth),Mur)),Ame); (Tor,((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Ame); (Tor,((((Uth,Uam),Hma),(Uar,Uma)),Mur),Ame); (Tor,((Mur,(Uth,Uam)),(Hma,(Uar,Uma))),Ame); ((((Hma,Mur),Uth),((Uma,Uar),Uam)),Tor,Ame); (((Hma,Mur),(Uth,((Uma,Uar),Uam))),Tor,Ame); (((Hma,(Uth,Mur)),((Uma,Uar),Uam)),Tor,Ame); (((Hma,(Uth,((Uma,Uar),Uam))),Mur),Tor,Ame); (((Uma,Uar),(((Uam,Uth),Hma),Mur)),Tor,Ame); (((Uam,(Uma,Uar)),(Uth,(Hma,Mur))),Tor,Ame); (((Uma,Uar),(((Uam,Uth),Hma),Mur)),Tor,Ame); (((Mur,Hma),(((Uma,Uar),Uam),Uth)),Tor,Ame); ((((Uma,Uar),Uam),(Uth,(Mur,Hma))),Tor,Ame); ((((Uma,Uar),Uam),(Uth,(Mur,Hma))),Tor,Ame); (Tor,(Mur,((Uam,(Uar,Uma)),(Hma,Uth))),Ame); (Tor,(((Hma,(Uth,Uam)),(Uar,Uma)),Mur),Ame); (Tor,(Hma,(Mur,(Uth,(Uam,(Uar,Uma))))),Ame); (Tor,(Hma,((Uam,(Uar,Uma)),(Mur,Uth))),Ame); (Tor,(Mur,((Uar,Uma),((Uam,Uth),Hma))),Ame); (Tor,(((Uam,Uth),Hma),(Mur,(Uar,Uma))),Ame); (Tor,(Mur,((Uar,Uma),((Uam,Uth),Hma))),Ame); (Tor,((Hma,Mur),(Uth,((Uar,Uma),Uam))),Ame); (Tor,(((Uar,Uma),Uam),(Hma,(Mur,Uth))),Ame); (Tor,(((Uar,Uma),((Uth,Uam),Hma)),Mur),Ame); ((Hma,((Uar,Uma),(Mur,(Uam,Uth)))),Tor,Ame); ((Hma,(Mur,(Uth,(Uam,(Uar,Uma))))),Tor,Ame); (((Uar,Uma),(Mur,(Hma,(Uth,Uam)))),Tor,Ame); (((Mur,Hma),((Uam,(Uar,Uma)),Uth)),Tor,Ame); ((((Uth,Mur),Hma),(Uam,(Uar,Uma))),Tor,Ame); ((((Uar,Uma),(Hma,(Uth,Uam))),Mur),Tor,Ame); (((Hma,Mur),(((Uar,Uma),Uam),Uth)),Tor,Ame); ((Hma,(Mur,(((Uar,Uma),Uam),Uth))),Tor,Ame); ((Hma,(((Uar,Uma),Uam),(Uth,Mur))),Tor,Ame); ((Hma,(((Uar,Uma),Uam),(Uth,Mur))),Tor,Ame); (Tor,((Hma,Mur),((Uam,(Uma,Uar)),Uth)),Ame); (Tor,((Uam,(Uma,Uar)),(Uth,(Hma,Mur))),Ame); (Tor,((Uam,(Uma,Uar)),((Uth,Mur),Hma)),Ame); (Tor,(((Uth,Uam),Mur),(Hma,(Uma,Uar))),Ame); (Tor,((Uth,(Hma,Mur)),(Uam,(Uma,Uar))),Ame); (Tor,(((Uth,Mur),(Uam,(Uma,Uar))),Hma),Ame); (Tor,((Hma,Mur),((Uth,Uam),(Uma,Uar))),Ame); (Tor,(Hma,(Mur,(Uth,(Uam,(Uma,Uar))))),Ame); (Tor,((Hma,(Mur,(Uth,Uam))),(Uma,Uar)),Ame); (Tor,((Uth,Uam),((Uma,Uar),(Hma,Mur))),Ame); (((Uam,(Uar,Uma)),((Uth,Hma),Mur)),Tor,Ame); ((((Uth,Uam),Mur),(Hma,(Uar,Uma))),Tor,Ame); ((((Uth,Uam),Mur),(Hma,(Uar,Uma))),Tor,Ame); ((((Hma,(Uth,Uam)),Mur),(Uar,Uma)),Tor,Ame); (((Uth,Uam),((Mur,Hma),(Uar,Uma))),Tor,Ame); ((Hma,(Mur,(Uth,((Uar,Uma),Uam)))),Tor,Ame); ((((Uar,Uma),Uam),((Hma,Mur),Uth)),Tor,Ame); (((((Uam,Uth),Hma),(Uar,Uma)),Mur),Tor,Ame); (((((Uam,Uth),Hma),(Uar,Uma)),Mur),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Tor,Ame); (Tor,(((Hma,Mur),Uth),((Uar,Uma),Uam)),Ame); (Tor,((((Uth,Uam),Hma),Mur),(Uar,Uma)),Ame); (Tor,(((Uth,(Uam,(Uar,Uma))),Mur),Hma),Ame); (Tor,((Uth,(Uam,(Uar,Uma))),(Mur,Hma)),Ame); (Tor,((Mur,((Uam,(Uar,Uma)),Uth)),Hma),Ame); (Tor,(((Uam,(Uar,Uma)),Uth),(Hma,Mur)),Ame); (Tor,((Uam,(Uar,Uma)),((Mur,Uth),Hma)),Ame); (Tor,(Hma,((Uth,(Uam,(Uar,Uma))),Mur)),Ame); (Tor,(((Uar,Uma),Hma),((Uth,Uam),Mur)),Ame); (Tor,(Mur,(((Uar,Uma),Hma),(Uth,Uam))),Ame); ((((Uth,Mur),Hma),((Uar,Uma),Uam)),Tor,Ame); (((Mur,(Hma,Uth)),((Uar,Uma),Uam)),Tor,Ame); ((((Mur,Uth),((Uar,Uma),Uam)),Hma),Tor,Ame); ((((Hma,Mur),Uth),((Uar,Uma),Uam)),Tor,Ame); (((Uar,Uma),(Hma,(Mur,(Uam,Uth)))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),((Uth,Hma),Mur)),Tor,Ame); (((Uam,(Uar,Uma)),((Hma,Mur),Uth)),Tor,Ame); ((Mur,((Uth,(Uam,(Uar,Uma))),Hma)),Tor,Ame); ((Hma,(Mur,(Uth,(Uam,(Uma,Uar))))),Tor,Ame); ((((Mur,Hma),Uth),(Uam,(Uma,Uar))),Tor,Ame); (((Mur,(Hma,Uth)),(Uam,(Uma,Uar))),Tor,Ame); (((Mur,Hma),(Uth,(Uam,(Uma,Uar)))),Tor,Ame); ((((Hma,(Uth,Uam)),Mur),(Uma,Uar)),Tor,Ame); ((Mur,((Uma,Uar),(Hma,(Uth,Uam)))),Tor,Ame); (((Uma,Uar),((Hma,(Uth,Uam)),Mur)),Tor,Ame); (((Uma,Uar),((Hma,(Uth,Uam)),Mur)),Tor,Ame); ((((Uth,Uam),(Uma,Uar)),(Hma,Mur)),Tor,Ame); (((Uth,Uam),((Uma,Uar),(Hma,Mur))),Tor,Ame); (Tor,((Hma,(Uth,Mur)),(Uam,(Uar,Uma))),Ame); (Tor,(((Uam,(Uar,Uma)),Uth),(Hma,Mur)),Ame); (Tor,((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Ame); (Tor,((Uth,(Uam,(Uar,Uma))),(Hma,Mur)),Ame); (Tor,((Uth,(Uam,(Uar,Uma))),(Hma,Mur)),Ame); (Tor,(((Uar,Uma),(Mur,(Uth,Uam))),Hma),Ame); (Tor,((Mur,(Uth,Uam)),(Hma,(Uar,Uma))),Ame); (Tor,((Mur,(Hma,(Uth,Uam))),(Uar,Uma)),Ame); (Tor,((Mur,(Hma,Uth)),(Uam,(Uar,Uma))),Ame); (Tor,((Uam,(Uar,Uma)),((Mur,Hma),Uth)),Ame); ((((Uar,Uma),Uam),((Mur,Uth),Hma)),Tor,Ame); ((((Mur,Hma),(Uar,Uma)),(Uam,Uth)),Tor,Ame); ((Uam,(Uth,(Mur,(Hma,(Uar,Uma))))),Tor,Ame); (((Hma,(Uth,Mur)),(Uam,(Uar,Uma))),Tor,Ame); ((((Uam,(Uar,Uma)),Uth),(Hma,Mur)),Tor,Ame); ((((Uam,(Uar,Uma)),Uth),(Hma,Mur)),Tor,Ame); (((Mur,(Uam,Uth)),(Hma,(Uar,Uma))),Tor,Ame); (((Mur,(Hma,(Uam,Uth))),(Uar,Uma)),Tor,Ame); (((Mur,(Hma,(Uam,Uth))),(Uar,Uma)),Tor,Ame); (((Mur,(Uam,Uth)),(Hma,(Uar,Uma))),Tor,Ame); (((Uar,Uma),(Hma,(Mur,(Uth,Uam)))),Tor,Ame); (((Hma,Mur),((Uth,Uam),(Uar,Uma))),Tor,Ame); (((Hma,Mur),((Uth,Uam),(Uar,Uma))),Tor,Ame); (((Uar,Uma),(Mur,(Hma,(Uth,Uam)))),Tor,Ame); (((Uar,Uma),(Mur,(Hma,(Uth,Uam)))),Tor,Ame); (((Uar,Uma),(Mur,(Hma,(Uth,Uam)))),Tor,Ame); (((Uar,Uma),((Mur,(Uth,Uam)),Hma)),Tor,Ame); ((((Uth,(Uam,(Uar,Uma))),Hma),Mur),Tor,Ame); (((Uth,(Uam,(Uar,Uma))),(Hma,Mur)),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Mur,(((Uma,Uar),Uam),Uth)),Hma),Tor,Ame); (((((Uma,Uar),Uam),Uth),(Hma,Mur)),Tor,Ame); ((Mur,((((Uma,Uar),Uam),Uth),Hma)),Tor,Ame); (((Mur,(((Uma,Uar),Uam),Uth)),Hma),Tor,Ame); ((((Uma,Uar),(Uam,Uth)),(Hma,Mur)),Tor,Ame); ((((Mur,Uth),(Uam,(Uma,Uar))),Hma),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uma,Uar)))),Tor,Ame); ((Mur,((Uma,Uar),(Hma,(Uth,Uam)))),Tor,Ame); (((Uth,((Uma,Uar),Uam)),(Mur,Hma)),Tor,Ame); (((Uma,Uar),(((Uam,Uth),Mur),Hma)),Tor,Ame); (Tor,(Hma,((Uam,(Uma,Uar)),(Mur,Uth))),Ame); (Tor,(Hma,((Mur,(Uth,Uam)),(Uma,Uar))),Ame); (Tor,(Hma,(Mur,(Uth,(Uam,(Uma,Uar))))),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,(Hma,((Uth,(Uam,(Uma,Uar))),Mur)),Ame); (Tor,(((Uma,Uar),(Uam,(Uth,Hma))),Mur),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,(Mur,(Uth,(Hma,(Uam,(Uma,Uar))))),Ame); (Tor,(Mur,(((Uth,Uam),Hma),(Uma,Uar))),Ame); (Tor,(((Hma,Mur),Uth),(Uam,(Uma,Uar))),Ame); (Tor,(Mur,((Uma,Uar),(Hma,(Uth,Uam)))),Ame); (Tor,(((Uma,Uar),((Uth,Uam),Mur)),Hma),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Uth,Hma),Mur)),Ame); (Tor,(((Uam,(Uma,Uar)),Uth),(Mur,Hma)),Ame); (Tor,((Uam,(Uma,Uar)),(Uth,(Mur,Hma))),Ame); (Tor,((Mur,Hma),((Uam,(Uma,Uar)),Uth)),Ame); (Tor,(Hma,(((Uam,(Uma,Uar)),Uth),Mur)),Ame); (Tor,(((Uth,Uam),(Uma,Uar)),(Mur,Hma)),Ame); (Tor,(((Mur,(Uth,Uam)),(Uma,Uar)),Hma),Ame); (Tor,(Hma,(Mur,(((Uar,Uma),Uam),Uth))),Ame); (Tor,(((Uar,Uma),Uam),(Hma,(Uth,Mur))),Ame); (Tor,(((Uar,Uma),Uam),(Hma,(Uth,Mur))),Ame); (Tor,((Uth,((Uar,Uma),Uam)),(Hma,Mur)),Ame); (Tor,((Uar,Uma),((Uam,Uth),(Mur,Hma))),Ame); (Tor,(((Uam,(Uar,Uma)),(Uth,Mur)),Hma),Ame); (Tor,(((Uam,(Uar,Uma)),(Uth,Hma)),Mur),Ame); (Tor,((Uth,Mur),(Hma,(Uam,(Uar,Uma)))),Ame); (Tor,((Hma,(Mur,Uth)),(Uam,(Uar,Uma))),Ame); (Tor,((Uth,(Hma,Mur)),(Uam,(Uar,Uma))),Ame); ((Hma,((Uam,(Uar,Uma)),(Uth,Mur))),Tor,Ame); (((Uam,(Uar,Uma)),(Uth,(Hma,Mur))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uth,(Uam,(Uar,Uma))),(Hma,Mur)),Tor,Ame); (((Hma,(Uam,(Uar,Uma))),(Mur,Uth)),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Mur,(Uth,Uam)),((Uar,Uma),Hma)),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uar,Uma)))),Tor,Ame); (((Uam,(Uar,Uma)),((Hma,Mur),Uth)),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uma,Uar),(Mur,(Hma,(Uth,Uam)))),Tor,Ame); (((Uth,Uam),((Mur,Hma),(Uma,Uar))),Tor,Ame); (((Uma,Uar),((Hma,(Uth,Uam)),Mur)),Tor,Ame); (((Uam,(Uma,Uar)),((Hma,Uth),Mur)),Tor,Ame); (((Uam,(Uma,Uar)),((Hma,Mur),Uth)),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uma,Uar)))),Tor,Ame); (((Mur,(Hma,Uth)),(Uam,(Uma,Uar))),Tor,Ame); ((((Uma,Uar),(Uth,Uam)),(Mur,Hma)),Tor,Ame); ((Uam,((Uth,(Mur,Hma)),(Uma,Uar))),Tor,Ame); ((((Uma,Uar),Hma),((Uam,Uth),Mur)),Tor,Ame); phangorn/inst/extdata/trees/RAxML_bestTree.Wang.out0000644000176200001440000000254213201424001022011 0ustar liggesusers(((t2:0.14211731987709066982,t3:0.06053783689898680626):0.01915320533263515854,(((t26:0.10076663346788350406,t27:0.09012377576079726171):0.00617748657056873228,(((t24:0.05083401775033660058,t25:0.04968730003684527358):0.12390520932858628544,(((t18:0.22659556680242753934,t17:0.09828171476802796680):0.01533921899764495791,((t19:0.10129875525132767122,t20:0.12134488266574683379):0.00849558744650705938,(t21:0.14505926027183771443,t22:0.17551017119642836617):0.00877793060138474905):0.00308912190361631612):0.00325025398389936155,t23:0.13360283374445222626):0.00171491633371120703):0.00160215446139677989,(((t15:0.03914802254136381943,t14:0.07040398566638517153):0.03746247464686409262,t16:0.07327896602473775445):0.00145565313441271263,((t12:0.05709523870354735187,t13:0.05346362539908256634):0.06851532854988398591,(t11:0.11034742412225925778,((t9:0.09630285720604085664,t10:0.09806651845861839856):0.01228546588769166559,(t8:0.05668846472663713332,(t6:0.06757767233543143792,t7:0.07178189518727731699):0.05036938539158694605):0.02478913815739459264):0.01159461463256000746):0.04912118273441323790):0.00191152082391572308):0.00157222714633921249):0.00574371179431406795):0.00298952648360721086,(t5:0.10213446240655763009,t4:0.08638068218703777446):0.04442405900560150028):0.00219766117784960489):0.08957057546751605315,t1:0.08141632437271865974,t0:0.18549589738394117733):0.0; phangorn/inst/extdata/trees/RAxML_bootstrap.AIs0000644000176200001440000006025613201424001021231 0ustar liggesusers(((Hma,Mur),((Uar,Uma),(Uth,Uam))),Tor,Ame); (((Hma,Mur),((Uar,Uma),(Uth,Uam))),Tor,Ame); (((Hma,Mur),(((Uar,Uma),Uam),Uth)),Tor,Ame); (((Uma,((Mur,Uth),Hma)),(Uar,Uam)),Tor,Ame); (((Uth,(Mur,Hma)),((Uma,Uar),Uam)),Tor,Ame); (((Mur,Hma),((Uma,Uar),(Uth,Uam))),Tor,Ame); (((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Tor,Ame); (((Uth,Uam),((Uma,Uar),(Mur,Hma))),Tor,Ame); (((Uth,(Mur,Uam)),((Uma,Uar),Hma)),Tor,Ame); ((Hma,((Uam,(Uth,(Uma,Uar))),Mur)),Tor,Ame); (Tor,(((Uma,Uar),Uam),(Hma,(Mur,Uth))),Ame); (Tor,((Uth,Uam),((Uma,(Hma,Mur)),Uar)),Ame); (Tor,(((Hma,Mur),Uth),(Uam,(Uma,Uar))),Ame); (Tor,(((Hma,Mur),Uth),((Uam,Uar),Uma)),Ame); (Tor,(Uam,((Uth,(Uar,Uma)),(Hma,Mur))),Ame); (Tor,((Hma,(Uth,Mur)),(Uam,(Uar,Uma))),Ame); (Tor,((Uam,(Uth,Mur)),((Uar,Uma),Hma)),Ame); (Tor,((Hma,Mur),(((Uar,Uma),Uam),Uth)),Ame); (Tor,((Hma,(Uar,Uma)),((Uth,Mur),Uam)),Ame); (Tor,(Hma,(Mur,(Uth,(Uam,(Uar,Uma))))),Ame); (Tor,((((Hma,Mur),Uma),Uar),(Uam,Uth)),Ame); (Tor,((Hma,((Uam,Uth),Mur)),(Uma,Uar)),Ame); (Tor,(Uam,((Mur,Hma),((Uma,Uar),Uth))),Ame); (Tor,((Hma,(Uma,Uar)),(Uth,(Uam,Mur))),Ame); (Tor,((Mur,((Hma,(Uma,Uar)),Uth)),Uam),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,(((Uth,Uam),(Uma,Uar)),(Mur,Hma)),Ame); (Tor,((Uar,(Uma,(Hma,Mur))),(Uth,Uam)),Ame); (Tor,((Uar,(Uma,(Hma,(Uth,Mur)))),Uam),Ame); (Tor,(((Uth,(Uar,Uma)),(Hma,Mur)),Uam),Ame); (Tor,((Hma,Mur),((Uth,Uam),(Uar,Uma))),Ame); (Tor,(((Mur,Uth),Uam),((Uar,Uma),Hma)),Ame); (Tor,(((Mur,Hma),Uth),(Uam,(Uar,Uma))),Ame); (Tor,((Mur,Hma),(Uth,(Uam,(Uar,Uma)))),Ame); (Tor,((Hma,(Uar,Uma)),(Mur,(Uam,Uth))),Ame); (Tor,((Uam,(Uar,Uma)),((Hma,Mur),Uth)),Ame); (Tor,((Mur,(Uth,Uam)),((Uar,Uma),Hma)),Ame); (Tor,(((Hma,Uma),(Uam,(Mur,Uth))),Uar),Ame); (Tor,(((Uar,Uma),((Mur,Uth),Hma)),Uam),Ame); (Tor,((Mur,Hma),(Uam,(Uth,(Uar,Uma)))),Ame); (Tor,((Uth,Mur),(Hma,(Uam,(Uar,Uma)))),Ame); (Tor,(Hma,((Mur,(Uth,Uam)),(Uar,Uma))),Ame); (Tor,(Hma,((Uam,(Mur,Uth)),(Uar,Uma))),Ame); (Tor,((Uam,Uth),(Uar,(Uma,(Hma,Mur)))),Ame); (Tor,(Uam,(Uar,(Uma,(Hma,(Uth,Mur))))),Ame); (Tor,((Uth,((Uma,Uar),Uam)),(Hma,Mur)),Ame); (Tor,((Mur,(Uam,Uth)),((Uma,Uar),Hma)),Ame); (Tor,(((Uth,Mur),Hma),(Uam,(Uar,Uma))),Ame); (Tor,((Mur,(Uam,Uth)),(Hma,(Uar,Uma))),Ame); (Tor,(Hma,((Uar,Uma),(Mur,(Uam,Uth)))),Ame); (Tor,((Uam,(Uar,Uma)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uar,Uma)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uar,Uma)),(Uth,(Hma,Mur))),Ame); (Tor,(((Uth,Uam),(Uar,Uma)),(Hma,Mur)),Ame); (Tor,(((Uma,Uar),Uam),(Hma,(Uth,Mur))),Ame); (Tor,((Hma,(Uma,Uar)),((Uth,Mur),Uam)),Ame); (Tor,((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Ame); (Tor,(Uam,((Uma,((Uth,Mur),Hma)),Uar)),Ame); (Tor,(Uam,((Uth,Mur),(Hma,(Uar,Uma)))),Ame); (Tor,((Uth,Uam),(((Hma,Mur),Uma),Uar)),Ame); (Tor,(Uam,(((Hma,(Uth,Mur)),Uma),Uar)),Ame); (Tor,(Uam,((Hma,Mur),(Uth,(Uar,Uma)))),Ame); (Tor,((Uth,Uam),(((Hma,Mur),Uma),Uar)),Ame); (Tor,(((Mur,Uth),Uam),(Hma,(Uma,Uar))),Ame); (Tor,(((Uth,Hma),Mur),((Uar,Uma),Uam)),Ame); (Tor,((Hma,(Mur,Uth)),((Uar,Uma),Uam)),Ame); (Tor,((Hma,(Mur,Uth)),((Uar,Uma),Uam)),Ame); (Tor,(((Mur,Uth),Uam),(Hma,(Uar,Uma))),Ame); (Tor,((((Hma,Mur),Uth),Uam),(Uar,Uma)),Ame); (Tor,((Uth,Uam),((Mur,Hma),(Uar,Uma))),Ame); (Tor,((Mur,((Hma,(Uar,Uma)),Uth)),Uam),Ame); (Tor,((Hma,Mur),((Uth,Uam),(Uar,Uma))),Ame); (Tor,((Hma,(Uth,Mur)),((Uam,Uar),Uma)),Ame); (Tor,((Hma,(Uth,Mur)),((Uar,Uma),Uam)),Ame); (Tor,((Hma,(Uth,Mur)),((Uar,Uma),Uam)),Ame); (Tor,((Hma,Mur),((Uar,Uma),(Uth,Uam))),Ame); (Tor,((Hma,(Uth,Mur)),((Uar,Uma),Uam)),Ame); (Tor,((Hma,(Uma,Uar)),((Mur,Uth),Uam)),Ame); (Tor,((Uam,(Uma,Uar)),((Hma,Mur),Uth)),Ame); (Tor,((Uam,(Uma,Uar)),(Mur,(Uth,Hma))),Ame); (Tor,((Uth,Uam),((Uma,Uar),(Mur,Hma))),Ame); (Tor,((Uam,(Uar,Uma)),(Uth,(Mur,Hma))),Ame); (Tor,(Uam,((Uth,(Uar,Uma)),(Mur,Hma))),Ame); (Tor,(((Uth,Mur),Hma),(Uam,(Uar,Uma))),Ame); (Tor,(((Uth,Mur),Hma),(Uam,(Uar,Uma))),Ame); (Tor,((((Uth,Mur),Uam),(Uar,Uma)),Hma),Ame); (Tor,(((Uth,(Mur,Uam)),(Uar,Uma)),Hma),Ame); (((Uam,(Uth,(Uar,Uma))),(Hma,Mur)),Tor,Ame); ((((Uar,Uam),Uma),(Hma,(Uth,Mur))),Tor,Ame); ((((Uth,Mur),((Uar,Uma),Hma)),Uam),Tor,Ame); (((Uth,(Uar,((Hma,Mur),Uma))),Uam),Tor,Ame); (((Hma,(Uma,(Uam,Uar))),(Uth,Mur)),Tor,Ame); ((((Uth,Mur),Hma),(Uam,(Uma,Uar))),Tor,Ame); ((((Uth,Mur),Hma),(Uam,(Uma,Uar))),Tor,Ame); ((((Uth,Mur),Hma),(Uam,(Uma,Uar))),Tor,Ame); (((Mur,Hma),(Uth,(Uam,(Uma,Uar)))),Tor,Ame); ((Hma,((Uth,(Uam,(Uma,Uar))),Mur)),Tor,Ame); (((Hma,(Uar,Uma)),(Uam,(Uth,Mur))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Tor,Ame); (((Uth,(Uam,(Uar,Uma))),(Hma,Mur)),Tor,Ame); (((Uth,(Uam,(Uar,Uma))),(Hma,Mur)),Tor,Ame); ((((Uar,Uma),(Uth,Uam)),(Hma,Mur)),Tor,Ame); ((Uar,(Uma,(((Mur,Uth),Uam),Hma))),Tor,Ame); ((Uam,((Hma,(Uar,Uma)),(Mur,Uth))),Tor,Ame); (((Uth,Uam),((Uar,Uma),(Hma,Mur))),Tor,Ame); ((((Uam,Uar),Uma),(Hma,(Uth,Mur))),Tor,Ame); (((Uam,(Mur,Uth)),((Uma,Uar),Hma)),Tor,Ame); (((Uth,(Hma,Mur)),(Uam,(Uma,Uar))),Tor,Ame); ((((Uma,((Hma,Mur),Uth)),Uar),Uam),Tor,Ame); (((Hma,(Mur,Uth)),((Uar,Uma),Uam)),Tor,Ame); ((Uam,((Hma,(Mur,Uth)),(Uar,Uma))),Tor,Ame); (((Hma,Mur),((Uth,Uam),(Uar,Uma))),Tor,Ame); (((Uar,((Hma,Mur),Uma)),(Uth,Uam)),Tor,Ame); ((((Hma,Mur),Uth),(Uam,(Uma,Uar))),Tor,Ame); (((Hma,(Mur,Uth)),(Uam,(Uma,Uar))),Tor,Ame); (((Uam,(Uth,Mur)),(Hma,(Uma,Uar))),Tor,Ame); ((((Uma,Uar),Uam),(Hma,(Mur,Uth))),Tor,Ame); ((((Uma,Uar),Uam),((Hma,Mur),Uth)),Tor,Ame); ((((Uma,Uar),Uam),(Hma,(Uth,Mur))),Tor,Ame); ((((Uma,Uar),Uam),((Hma,Mur),Uth)),Tor,Ame); ((((Uma,Uar),(Uam,(Mur,Uth))),Hma),Tor,Ame); (((Uam,(Uar,Uma)),((Hma,Mur),Uth)),Tor,Ame); ((Mur,((Uth,Uam),((Uar,Uma),Hma))),Tor,Ame); ((Uam,((Uth,Mur),((Uma,Uar),Hma))),Tor,Ame); ((((Uma,Uar),Hma),((Uth,Uam),Mur)),Tor,Ame); ((((Uma,(Uam,Uar)),Hma),(Mur,Uth)),Tor,Ame); (Tor,((((Uma,Uar),Uth),(Mur,Hma)),Uam),Ame); (Tor,((((Uth,Mur),Hma),Uma),(Uam,Uar)),Ame); (Tor,((Mur,Hma),(Uth,(Uam,(Uma,Uar)))),Ame); (Tor,(((Uth,Mur),Hma),(Uam,(Uma,Uar))),Ame); (Tor,((Mur,Hma),((Uth,(Uam,Uar)),Uma)),Ame); (Tor,(((Uth,Mur),Hma),(Uam,(Uar,Uma))),Ame); (Tor,((Hma,(Uar,Uma)),(Mur,(Uth,Uam))),Ame); (Tor,((Uar,(Uma,((Mur,Uth),Hma))),Uam),Ame); (Tor,(((Mur,Hma),(Uar,Uma)),(Uth,Uam)),Ame); (Tor,((Hma,(Uth,Mur)),((Uar,Uma),Uam)),Ame); (Tor,(((Uma,Uar),Uam),((Mur,Uth),Hma)),Ame); (Tor,(((Uth,(Uma,Uar)),Uam),(Mur,Hma)),Ame); (Tor,(Uam,(((Uth,Mur),Hma),(Uar,Uma))),Ame); (Tor,((Uth,((Uar,Uma),Uam)),(Mur,Hma)),Ame); (Tor,(((Uar,Uma),Hma),((Uth,Uam),Mur)),Ame); (Tor,((Hma,Mur),((Uar,Uma),(Uth,Uam))),Ame); (Tor,((Hma,(Uth,Mur)),((Uar,Uma),Uam)),Ame); (Tor,((((Uar,Uma),Uth),(Mur,Hma)),Uam),Ame); (Tor,(((Uth,Mur),Hma),(Uam,(Uar,Uma))),Ame); (Tor,(((Uth,Mur),Hma),(Uam,(Uar,Uma))),Ame); ((((Mur,Hma),((Uar,Uma),Uth)),Uam),Tor,Ame); ((((Uth,Uam),(Uar,Uma)),(Mur,Hma)),Tor,Ame); ((((Mur,Uth),Uam),(Hma,(Uar,Uma))),Tor,Ame); (((Uth,(Uam,Mur)),(Hma,(Uar,Uma))),Tor,Ame); (((Uth,Uam),((Mur,Hma),(Uar,Uma))),Tor,Ame); (((Uth,Uam),(Mur,(Hma,(Uar,Uma)))),Tor,Ame); ((((Uar,Uma),Uam),(Uth,(Hma,Mur))),Tor,Ame); ((((Hma,(Uar,Uma)),(Uth,Uam)),Mur),Tor,Ame); ((((Uam,Uar),Uma),((Mur,Uth),Hma)),Tor,Ame); ((((Mur,Hma),((Uma,Uar),Uth)),Uam),Tor,Ame); (((Mur,Hma),(Uth,(Uam,(Uar,Uma)))),Tor,Ame); ((((Uth,Mur),Hma),(Uma,(Uam,Uar))),Tor,Ame); (((Uth,Mur),(Hma,(Uma,(Uam,Uar)))),Tor,Ame); (((Uam,Uth),(Uar,((Mur,Hma),Uma))),Tor,Ame); (((Uth,(Mur,Hma)),(Uam,(Uma,Uar))),Tor,Ame); (((Uth,Mur),(Hma,(Uam,(Uma,Uar)))),Tor,Ame); (((Hma,(Uth,Mur)),(Uma,(Uar,Uam))),Tor,Ame); (((Uth,Mur),(((Uam,Uma),Uar),Hma)),Tor,Ame); ((((Uth,(Hma,Mur)),(Uma,Uar)),Uam),Tor,Ame); (((Uth,(Hma,Mur)),((Uma,Uar),Uam)),Tor,Ame); (((Uth,Uam),(Uar,((Hma,Mur),Uma))),Tor,Ame); ((((Mur,Uth),Hma),((Uma,Uar),Uam)),Tor,Ame); ((Uam,((Uma,((Mur,Uth),Hma)),Uar)),Tor,Ame); ((Uam,((Uth,(Hma,Mur)),(Uar,Uma))),Tor,Ame); (((Uth,(Hma,Mur)),((Uar,Uma),Uam)),Tor,Ame); (((Uam,Uar),(Uma,(Uth,(Hma,Mur)))),Tor,Ame); (((Hma,(Mur,Uth)),(Uam,(Uar,Uma))),Tor,Ame); ((Uam,((Uar,Uma),(Hma,(Mur,Uth)))),Tor,Ame); (((Uar,(Hma,Uma)),((Mur,Uth),Uam)),Tor,Ame); ((((Mur,Uth),Hma),((Uma,Uar),Uam)),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Tor,Ame); ((Uam,(((Uar,Uma),Uth),(Mur,Hma))),Tor,Ame); (((Uam,(Mur,Uth)),(Hma,(Uar,Uma))),Tor,Ame); ((Uam,((Hma,Mur),((Uar,Uma),Uth))),Tor,Ame); ((Uam,((Hma,Mur),((Uar,Uma),Uth))),Tor,Ame); (((Hma,(Uth,Mur)),(Uam,(Uar,Uma))),Tor,Ame); ((((Hma,Mur),((Uar,Uma),Uth)),Uam),Tor,Ame); (((Uam,(Uar,Uma)),(Uth,(Hma,Mur))),Tor,Ame); ((((Uth,Uam),(Uar,Uma)),(Hma,Mur)),Tor,Ame); ((((Uth,Uam),(Uar,Uma)),(Hma,Mur)),Tor,Ame); (Tor,((Uma,(((Uth,Mur),Hma),Uar)),Uam),Ame); (Tor,(Uam,(Uar,(Uma,(Uth,(Mur,Hma))))),Ame); (Tor,(((Mur,Hma),((Uar,Uma),Uth)),Uam),Ame); (Tor,((Hma,((Uar,Uma),(Mur,Uth))),Uam),Ame); (Tor,((Mur,Hma),((Uma,Uar),(Uth,Uam))),Ame); (Tor,(((Mur,Uth),Hma),((Uma,Uar),Uam)),Ame); (Tor,(((Uam,(Mur,Uth)),Hma),(Uma,Uar)),Ame); (Tor,(((Hma,Mur),Uth),(Uam,(Uma,Uar))),Ame); (Tor,((Uth,Uam),(((Hma,Mur),Uma),Uar)),Ame); (Tor,((Hma,(Uth,Mur)),((Uma,Uar),Uam)),Ame); (Tor,((Uam,(Uma,Uar)),((Uth,Mur),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Uth,Mur),Hma)),Ame); (Tor,((Uth,(Uam,(Uma,Uar))),(Mur,Hma)),Ame); (Tor,((Uam,(Mur,Uth)),((Uma,Uar),Hma)),Ame); (Tor,((Uam,(Uar,Uma)),((Hma,Mur),Uth)),Ame); (Tor,(((Uth,Uam),(Uar,Uma)),(Hma,Mur)),Ame); (Tor,(((Mur,Uth),Uam),((Uar,Uma),Hma)),Ame); (Tor,((Uam,(Uar,Uma)),((Mur,Hma),Uth)),Ame); (Tor,(((Uth,Uam),(Uar,Uma)),(Mur,Hma)),Ame); (Tor,(((Mur,Uth),Uam),((Uar,Uma),Hma)),Ame); ((Hma,((Uam,(Uth,Mur)),(Uma,Uar))),Tor,Ame); (((Uam,(Uth,Mur)),(Hma,(Uma,Uar))),Tor,Ame); (((((Uma,Uar),Uth),(Hma,Mur)),Uam),Tor,Ame); ((((Uma,Uar),Hma),((Uth,Mur),Uam)),Tor,Ame); (((Hma,Mur),((Uam,(Uma,Uar)),Uth)),Tor,Ame); (((Hma,Mur),((Uth,Uam),(Uma,Uar))),Tor,Ame); (((Hma,Mur),((Uth,Uam),(Uma,Uar))),Tor,Ame); (((Hma,(Uth,Mur)),(Uam,(Uma,Uar))),Tor,Ame); (((Uth,(Uam,(Uma,Uar))),(Hma,Mur)),Tor,Ame); (((Uam,(Uth,Mur)),((Uma,Uar),Hma)),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Uth,Mur))),Tor,Ame); (((Uth,(Uam,(Uma,Uar))),(Hma,Mur)),Tor,Ame); (((Uam,(Uma,Uar)),(Uth,(Mur,Hma))),Tor,Ame); (((Mur,Hma),((Uam,(Uma,Uar)),Uth)),Tor,Ame); ((((Uth,Mur),Hma),(Uam,(Uma,Uar))),Tor,Ame); (((Mur,Hma),((Uth,Uam),(Uma,Uar))),Tor,Ame); (((Mur,Hma),((Uam,(Uma,Uar)),Uth)),Tor,Ame); (((((Uma,Uar),Uth),(Mur,Hma)),Uam),Tor,Ame); (((Uma,Uar),((Uth,(Mur,Hma)),Uam)),Tor,Ame); (((Uth,(Mur,Hma)),(Uam,(Uma,Uar))),Tor,Ame); ((((Uma,Uar),Uam),(Hma,(Uth,Mur))),Tor,Ame); ((((Uth,Mur),Uam),(Hma,(Uma,Uar))),Tor,Ame); (((Uth,Uam),((Mur,Hma),(Uma,Uar))),Tor,Ame); (((Uth,Uam),((Hma,(Uma,Uar)),Mur)),Tor,Ame); ((((Uma,Uar),Hma),((Mur,Uth),Uam)),Tor,Ame); ((Uam,((Hma,Mur),((Uma,Uar),Uth))),Tor,Ame); (((Hma,(Uth,Mur)),((Uma,Uar),Uam)),Tor,Ame); ((((Uma,Uar),Uam),((Hma,Mur),Uth)),Tor,Ame); (((Hma,(Uma,Uar)),(Uam,(Mur,Uth))),Tor,Ame); (((Hma,(Uma,Uar)),(Mur,(Uth,Uam))),Tor,Ame); (((Uam,(Uth,Mur)),((Uma,Uar),Hma)),Tor,Ame); ((Uth,(Uam,(((Hma,Mur),Uma),Uar))),Tor,Ame); ((Hma,(Mur,((Uam,(Uma,Uar)),Uth))),Tor,Ame); ((Uam,((Hma,Mur),((Uma,Uar),Uth))),Tor,Ame); (((Uma,(Uar,(Hma,(Uth,Mur)))),Uam),Tor,Ame); ((((Uth,(Mur,Hma)),(Uma,Uar)),Uam),Tor,Ame); (((Mur,Hma),((Uam,(Uma,Uar)),Uth)),Tor,Ame); (((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Tor,Ame); (((Uth,(Uam,(Uma,Uar))),(Mur,Hma)),Tor,Ame); ((Hma,((Uam,(Uth,Mur)),(Uma,Uar))),Tor,Ame); (Tor,((Uth,(Mur,Hma)),((Uma,Uar),Uam)),Ame); (Tor,((Uma,Uar),(Uam,(Uth,(Mur,Hma)))),Ame); (Tor,((Uma,Uar),((Mur,(Uam,Uth)),Hma)),Ame); (Tor,(((Mur,Uth),Hma),(Uam,(Uma,Uar))),Ame); (Tor,(Uam,((Uma,Uar),(Uth,(Hma,Mur)))),Ame); (Tor,((Uam,(Uar,Uma)),(Uth,(Hma,Mur))),Ame); (Tor,((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Ame); (Tor,(Uam,((Uar,Uma),(Hma,(Mur,Uth)))),Ame); (Tor,(Uam,(Mur,(Uth,((Uar,Uma),Hma)))),Ame); (Tor,(Uam,((Hma,Mur),(Uth,(Uar,Uma)))),Ame); (Tor,((Hma,Mur),(Uth,((Uma,Uar),Uam))),Ame); (Tor,(Uam,((Mur,Hma),((Uma,Uar),Uth))),Ame); (Tor,(((Uth,Mur),Hma),(Uam,(Uma,Uar))),Ame); (Tor,((Uma,((Uth,Mur),Hma)),(Uam,Uar)),Ame); (Tor,((Mur,Hma),((Uth,Uam),(Uar,Uma))),Ame); (Tor,((Uth,Uam),((Uar,Uma),(Mur,Hma))),Ame); (Tor,((Uth,(Uam,(Uar,Uma))),(Hma,Mur)),Ame); (Tor,(Uam,((Uar,Uma),(Hma,(Uth,Mur)))),Ame); (Tor,(Uam,((Uth,(Uar,Uma)),(Hma,Mur))),Ame); (Tor,(((Uam,Uth),(Uar,Uma)),(Hma,Mur)),Ame); ((((Uma,Uar),Uam),((Uth,Mur),Hma)),Tor,Ame); ((((Uma,Uar),Uam),((Mur,Hma),Uth)),Tor,Ame); (((Mur,Uth),(Hma,((Uma,Uar),Uam))),Tor,Ame); (((Hma,Mur),(((Uma,Uar),Uam),Uth)),Tor,Ame); (((Hma,(Uth,Mur)),((Uma,Uar),Uam)),Tor,Ame); ((Uam,(((Hma,Mur),Uth),(Uma,Uar))),Tor,Ame); ((Uam,((Mur,Uth),(Hma,(Uma,Uar)))),Tor,Ame); (((Uth,Uam),(((Hma,Mur),Uma),Uar)),Tor,Ame); ((((Uma,Uar),Uam),((Hma,Mur),Uth)),Tor,Ame); (((Uam,(Mur,((Uma,Uar),Uth))),Hma),Tor,Ame); (((((Uma,Uar),Uam),Uth),(Mur,Hma)),Tor,Ame); ((((Uma,Uar),Uam),(Mur,(Uth,Hma))),Tor,Ame); ((((Uma,Uar),Uam),(Hma,(Mur,Uth))),Tor,Ame); ((((Uam,Mur),Uth),((Uma,Uar),Hma)),Tor,Ame); (((Mur,Hma),((Uar,(Uam,Uth)),Uma)),Tor,Ame); (((Mur,Hma),((Uam,Uth),(Uma,Uar))),Tor,Ame); (((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Tor,Ame); (((Hma,(Uma,Uar)),((Uam,Uth),Mur)),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Tor,Ame); (Tor,(((Uma,Uar),(Uth,Uam)),(Hma,Mur)),Ame); (Tor,(((Uma,Uar),Uam),(Hma,(Uth,Mur))),Ame); (Tor,(Uam,(Mur,((Hma,(Uma,Uar)),Uth))),Ame); (Tor,((Mur,Hma),((Uma,Uar),(Uam,Uth))),Ame); (Tor,(((Uth,Uma),(Mur,Hma)),(Uar,Uam)),Ame); (Tor,(Hma,(Mur,((Uma,Uar),(Uam,Uth)))),Ame); (Tor,((Uth,((Uma,Uar),Uam)),(Hma,Mur)),Ame); (Tor,(((Uam,Uth),Mur),((Uma,Uar),Hma)),Ame); (Tor,((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Ame); (Tor,(Uam,(((Uar,Uma),Hma),(Uth,Mur))),Ame); (Tor,(((Uma,Uar),(Uth,Uam)),(Hma,Mur)),Ame); (Tor,(Uam,((Uma,Uar),(Hma,(Mur,Uth)))),Ame); (Tor,((((Uam,(Uma,Uar)),Uth),Mur),Hma),Ame); (Tor,(((Uth,Uam),Uar),(Uma,(Hma,Mur))),Ame); (Tor,(Uam,((Uar,Uma),(Uth,(Hma,Mur)))),Ame); (Tor,((Hma,Mur),((Uth,Uam),(Uar,Uma))),Ame); (Tor,(((Hma,Mur),(Uth,(Uar,Uma))),Uam),Ame); (Tor,(((Hma,Mur),(Uth,(Uar,Uma))),Uam),Ame); (Tor,((Hma,(Uth,Mur)),((Uar,Uma),Uam)),Ame); (Tor,(((Uar,Uma),Hma),((Uam,Uth),Mur)),Ame); ((Uam,((Uth,(Uar,Uma)),(Mur,Hma))),Tor,Ame); ((Uam,((Hma,(Uar,Uma)),(Mur,Uth))),Tor,Ame); ((Uam,(((Hma,Mur),Uth),(Uar,Uma))),Tor,Ame); ((Uam,((Hma,Mur),(Uth,(Uar,Uma)))),Tor,Ame); (((Uar,(Uth,Uam)),((Hma,Mur),Uma)),Tor,Ame); (((Hma,Mur),((Uar,Uma),(Uth,Uam))),Tor,Ame); (((Uth,(Uma,(Hma,Mur))),(Uar,Uam)),Tor,Ame); (((Hma,(Uth,Mur)),(Uam,(Uar,Uma))),Tor,Ame); ((Uam,((Uth,Mur),((Uar,Uma),Hma))),Tor,Ame); ((Uam,(Uma,((Hma,(Uth,Mur)),Uar))),Tor,Ame); (((Mur,Hma),((Uth,Uam),(Uar,Uma))),Tor,Ame); (((Mur,Hma),(Uth,(Uam,(Uar,Uma)))),Tor,Ame); (((Hma,(Mur,Uth)),(Uam,(Uar,Uma))),Tor,Ame); (((Hma,(Mur,Uth)),(Uam,(Uar,Uma))),Tor,Ame); (((Uam,(Uar,Uma)),((Hma,Mur),Uth)),Tor,Ame); (((Uam,(Uar,Uma)),((Mur,Uth),Hma)),Tor,Ame); ((((Uam,Mur),Uth),(Hma,(Uar,Uma))),Tor,Ame); (((Uam,(Uar,Uma)),((Mur,Uth),Hma)),Tor,Ame); (((Mur,((Uam,(Uar,Uma)),Uth)),Hma),Tor,Ame); ((Uam,(Uar,(Uma,((Hma,Mur),Uth)))),Tor,Ame); (((Uth,Uam),(Uar,((Hma,Mur),Uma))),Tor,Ame); (((Hma,(Uth,Mur)),(Uam,(Uma,Uar))),Tor,Ame); (((Uma,(Hma,Mur)),((Uth,Uam),Uar)),Tor,Ame); ((((Uma,(Hma,(Uth,Mur))),Uar),Uam),Tor,Ame); ((((Uth,(Mur,Hma)),(Uar,Uma)),Uam),Tor,Ame); ((Uam,(((Hma,(Uth,Mur)),Uma),Uar)),Tor,Ame); ((Hma,((Uma,Uar),((Uth,Mur),Uam))),Tor,Ame); (((Uam,(Uma,Uar)),((Hma,Mur),Uth)),Tor,Ame); (((Hma,(Uth,Mur)),(Uam,(Uma,Uar))),Tor,Ame); (((((Hma,Mur),Uth),Uam),(Uar,Uma)),Tor,Ame); ((Uam,(((Hma,(Mur,Uth)),Uar),Uma)),Tor,Ame); (((Hma,Mur),(Uma,(Uth,(Uar,Uam)))),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uma,Uar)))),Tor,Ame); (((Uma,Uar),(((Uth,Hma),Mur),Uam)),Tor,Ame); (((Mur,(Hma,(Uma,Uar))),(Uth,Uam)),Tor,Ame); (((((Hma,(Mur,Uth)),Uma),Uar),Uam),Tor,Ame); ((((Uma,Uar),Uam),(Hma,(Mur,Uth))),Tor,Ame); (((Uth,(Uma,(Uar,Uam))),(Hma,Mur)),Tor,Ame); (((Hma,(Uth,Mur)),((Uma,Uar),Uam)),Tor,Ame); ((((Uma,Uar),Uam),((Hma,Mur),Uth)),Tor,Ame); (Tor,((Uth,Uam),((Uar,Uma),(Mur,Hma))),Ame); (Tor,((Uam,(Uar,Uma)),((Mur,Hma),Uth)),Ame); (Tor,(((Uth,Uam),(Uar,Uma)),(Mur,Hma)),Ame); (Tor,((Uam,(Uar,Uma)),(Uth,(Mur,Hma))),Ame); (Tor,(Uam,((Uth,(Uar,Uma)),(Mur,Hma))),Ame); (Tor,((Mur,Hma),((Uth,Uam),(Uar,Uma))),Ame); (Tor,(((Mur,Hma),((Uar,Uma),Uth)),Uam),Ame); (Tor,((Mur,Hma),((Uar,Uma),(Uth,Uam))),Ame); (Tor,((Mur,Hma),((Uar,Uma),(Uth,Uam))),Ame); (Tor,(((Uth,Mur),Hma),((Uar,Uma),Uam)),Ame); (Tor,((Uth,(Uam,(Uar,Uma))),(Hma,Mur)),Ame); (Tor,(Uam,(((Hma,(Uth,Mur)),Uar),Uma)),Ame); (Tor,((Mur,Hma),((Uam,(Uar,Uma)),Uth)),Ame); (Tor,(Uam,(Uar,(((Mur,Uth),Hma),Uma))),Ame); (Tor,(Uam,((Uth,(Hma,Mur)),(Uma,Uar))),Ame); (Tor,((Uam,(Uth,(Hma,Mur))),(Uma,Uar)),Ame); (Tor,((Hma,(Mur,Uth)),(Uma,(Uam,Uar))),Ame); (Tor,(((Hma,Mur),Uth),(Uam,(Uma,Uar))),Ame); (Tor,((Hma,Mur),(Uth,(Uam,(Uma,Uar)))),Ame); (Tor,(((Uma,Uar),((Hma,Mur),Uth)),Uam),Ame); (((Uth,Uam),(Uar,(Uma,(Mur,Hma)))),Tor,Ame); ((((Mur,Hma),Uth),(Uam,(Uar,Uma))),Tor,Ame); (((Mur,Hma),(Uth,(Uam,(Uar,Uma)))),Tor,Ame); (((Uam,(Uth,Mur)),(Hma,(Uar,Uma))),Tor,Ame); (((Uth,(Mur,Uam)),(Hma,(Uar,Uma))),Tor,Ame); (((Uth,(Hma,Mur)),((Uar,Uma),Uam)),Tor,Ame); (((Hma,Mur),(((Uar,Uma),Uam),Uth)),Tor,Ame); (((Uar,(((Mur,Uth),Hma),Uma)),Uam),Tor,Ame); ((((Mur,Uth),Hma),(Uma,(Uam,Uar))),Tor,Ame); (((Mur,Hma),((Uth,Uam),(Uar,Uma))),Tor,Ame); (((Uam,(Uma,Uar)),(Uth,(Hma,Mur))),Tor,Ame); (((Uth,Uam),((Uma,Uar),(Hma,Mur))),Tor,Ame); ((((Mur,Uth),Uam),((Uma,Uar),Hma)),Tor,Ame); (((Uth,Uam),(Uar,((Mur,Hma),Uma))),Tor,Ame); ((Uam,(Uar,(((Uth,Mur),Hma),Uma))),Tor,Ame); ((Uam,(((Uma,Uar),Uth),(Mur,Hma))),Tor,Ame); ((Uam,(((Uma,Uar),Uth),(Mur,Hma))),Tor,Ame); ((((Uth,Mur),Hma),(Uam,(Uma,Uar))),Tor,Ame); (((Mur,Hma),(Uth,(Uam,(Uma,Uar)))),Tor,Ame); ((((Hma,(Uma,Uar)),(Mur,Uth)),Uam),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); ((Uam,(Uar,(Uma,(Hma,(Mur,Uth))))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); ((Uam,(Mur,((Uth,Hma),(Uar,Uma)))),Tor,Ame); ((Uam,(Mur,((Uth,Hma),(Uar,Uma)))),Tor,Ame); ((((Uam,Uar),Uma),(Hma,(Mur,Uth))),Tor,Ame); ((((Uar,Uma),(Hma,Mur)),(Uth,Uam)),Tor,Ame); (((Uth,Uam),((Uma,(Hma,Mur)),Uar)),Tor,Ame); (((Uth,(Mur,Uam)),(Hma,(Uar,Uma))),Tor,Ame); ((Uam,((Mur,Hma),(Uth,(Uma,Uar)))),Tor,Ame); (((Mur,Hma),((Uam,Uth),(Uma,Uar))),Tor,Ame); (((Uam,Uth),(Uar,(Uma,(Mur,Hma)))),Tor,Ame); ((Hma,((Uar,Uma),(Uam,(Mur,Uth)))),Tor,Ame); (((Uar,Uma),(Uam,((Hma,Mur),Uth))),Tor,Ame); (((Uam,Uar),(Uma,(Hma,(Mur,Uth)))),Tor,Ame); ((Uam,((Uar,Uma),(Hma,(Mur,Uth)))),Tor,Ame); (((Hma,Mur),((Uth,Uam),(Uar,Uma))),Tor,Ame); ((((Uar,Uma),(Hma,Mur)),(Uth,Uam)),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uar,Uma)))),Tor,Ame); (Tor,((Hma,(Uth,Mur)),((Uam,Uar),Uma)),Ame); (Tor,(((Uth,Mur),(Hma,(Uar,Uma))),Uam),Ame); (Tor,((Mur,(Hma,(Uar,Uma))),(Uth,Uam)),Ame); (Tor,((Uth,Uam),((Mur,Hma),(Uar,Uma))),Ame); (Tor,((Mur,(Uth,Uam)),(Hma,(Uar,Uma))),Ame); (Tor,(Uam,((Hma,Mur),((Uar,Uma),Uth))),Ame); (Tor,(Uam,((Hma,Mur),((Uar,Uma),Uth))),Ame); (Tor,((Hma,(Uar,Uma)),((Uth,Mur),Uam)),Ame); (Tor,((Hma,Mur),((Uam,Uth),(Uar,Uma))),Ame); (Tor,((Hma,Mur),((Uam,Uth),(Uar,Uma))),Ame); (Tor,((Hma,Mur),(Uth,(Uam,(Uar,Uma)))),Ame); (Tor,(Uam,((Uar,Uma),(Uth,(Hma,Mur)))),Ame); (Tor,((Uar,Uma),((Uth,(Hma,Mur)),Uam)),Ame); (Tor,((((Uar,Uma),Uth),(Hma,Mur)),Uam),Ame); (Tor,((Hma,(Mur,Uth)),((Uar,Uma),Uam)),Ame); (Tor,((Uth,(Hma,Mur)),((Uar,Uma),Uam)),Ame); (Tor,((Uth,(Hma,Mur)),((Uar,Uma),Uam)),Ame); (Tor,((Hma,Mur),((Uar,Uma),(Uth,Uam))),Ame); (Tor,(((Hma,Mur),((Uar,Uma),Uth)),Uam),Ame); (Tor,((Hma,Mur),((Uam,(Uar,Uma)),Uth)),Ame); (((Uam,(Uma,Uar)),(Uth,(Mur,Hma))),Tor,Ame); (((Uam,(Uma,Uar)),((Uth,Mur),Hma)),Tor,Ame); ((Uam,((Uth,Mur),((Uma,Uar),Hma))),Tor,Ame); (((Hma,Mur),((Uma,Uar),(Uth,Uam))),Tor,Ame); (((Uth,Uam),((Hma,Mur),(Uma,Uar))),Tor,Ame); (((Uth,(Mur,Uam)),(Hma,(Uma,Uar))),Tor,Ame); (((Mur,Hma),((Uma,Uar),(Uth,Uam))),Tor,Ame); (((Mur,Hma),(Uth,(Uam,(Uma,Uar)))),Tor,Ame); ((((Uth,Mur),Hma),(Uam,(Uma,Uar))),Tor,Ame); (((Mur,Hma),((Uth,Uam),(Uma,Uar))),Tor,Ame); ((Hma,(((Uam,Uth),Mur),(Uma,Uar))),Tor,Ame); (((Uth,Mur),((Uma,(Uam,Uar)),Hma)),Tor,Ame); ((Hma,((Uth,(Uam,Mur)),(Uma,Uar))),Tor,Ame); (((Mur,Hma),(Uam,((Uma,Uar),Uth))),Tor,Ame); (((Mur,((Uma,Uar),Hma)),(Uam,Uth)),Tor,Ame); ((((Uma,(Uam,Uar)),Uth),(Hma,Mur)),Tor,Ame); (((Mur,(Uth,Uam)),((Uar,Uma),Hma)),Tor,Ame); (((Uma,(Uam,Uar)),(Hma,(Uth,Mur))),Tor,Ame); ((((Uam,Uth),Mur),((Uma,Uar),Hma)),Tor,Ame); ((((Uam,Uth),Mur),((Uma,Uar),Hma)),Tor,Ame); (Tor,((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Ame); (Tor,((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Ame); (Tor,(Uam,((Uth,Mur),((Uar,Uma),Hma))),Ame); (Tor,((Uar,Uma),(Uam,(Uth,(Hma,Mur)))),Ame); (Tor,((Mur,Hma),((Uar,Uma),(Uam,Uth))),Ame); (Tor,((Mur,Hma),((Uar,Uma),(Uam,Uth))),Ame); (Tor,((Mur,(Uam,Uth)),(Hma,(Uar,Uma))),Ame); (Tor,((Uam,(Uth,Mur)),(Hma,(Uar,Uma))),Ame); (Tor,((Uth,(Hma,Mur)),((Uar,Uma),Uam)),Ame); (Tor,(Uam,((Hma,Mur),(Uth,(Uar,Uma)))),Ame); (Tor,((Uar,(Hma,Uma)),(Uth,(Uam,Mur))),Ame); (Tor,((Uam,(Mur,Uth)),(Hma,(Uar,Uma))),Ame); (Tor,(Uam,((Hma,(Mur,Uth)),(Uar,Uma))),Ame); (Tor,((Hma,(Mur,Uth)),((Uar,Uma),Uam)),Ame); (Tor,(Hma,(Mur,(((Uar,Uma),Uam),Uth))),Ame); (Tor,(Uam,(Uar,((Hma,(Mur,Uth)),Uma))),Ame); (Tor,(Uam,(Uar,((Hma,(Mur,Uth)),Uma))),Ame); (Tor,(((Uth,(Hma,Mur)),Uma),(Uam,Uar)),Ame); (Tor,(((Uth,Mur),Hma),(Uam,(Uma,Uar))),Ame); (Tor,(((Uam,(Uth,Mur)),Hma),(Uma,Uar)),Ame); (((Uma,(Uth,(Hma,Mur))),(Uam,Uar)),Tor,Ame); ((((Uth,Mur),Hma),(Uam,(Uar,Uma))),Tor,Ame); (((Mur,Hma),(Uth,(Uam,(Uar,Uma)))),Tor,Ame); ((Uam,(Uar,(((Uth,Mur),Hma),Uma))),Tor,Ame); (((Mur,(Uam,Uth)),(Hma,(Uma,Uar))),Tor,Ame); (((Uam,Uth),(Uar,((Hma,Mur),Uma))),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Uth,Mur))),Tor,Ame); ((Uam,(Uar,(Uma,((Uth,Mur),Hma)))),Tor,Ame); ((Uam,(Uar,(Uma,((Uth,Mur),Hma)))),Tor,Ame); (((Uam,(Uar,Uma)),((Uth,Mur),Hma)),Tor,Ame); (((Uam,(Mur,Uth)),((Uma,Uar),Hma)),Tor,Ame); (((Hma,Mur),((Uth,Uam),(Uma,Uar))),Tor,Ame); (((Uth,(Hma,Mur)),(Uam,(Uma,Uar))),Tor,Ame); (((Uth,Uam),((Uma,Uar),(Hma,Mur))),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); ((Uam,(((Hma,(Mur,Uth)),Uma),Uar)),Tor,Ame); ((((Uma,Uar),Hma),((Uth,Uam),Mur)),Tor,Ame); ((((Hma,Mur),((Uma,Uar),Uth)),Uam),Tor,Ame); (((Hma,Mur),((Uma,Uar),(Uth,Uam))),Tor,Ame); (((Hma,((Uma,Uar),(Mur,Uth))),Uam),Tor,Ame); (((Mur,(Uam,Uth)),(Hma,(Uma,Uar))),Tor,Ame); ((((Uma,Uar),Uam),((Mur,Hma),Uth)),Tor,Ame); ((((Uma,Uar),(Uth,Uam)),(Mur,Hma)),Tor,Ame); (((Mur,Hma),(((Uma,Uar),Uam),Uth)),Tor,Ame); ((((Mur,Hma),((Uma,Uar),Uth)),Uam),Tor,Ame); (((Mur,Hma),((Uma,Uar),(Uth,Uam))),Tor,Ame); (((Mur,Hma),((Uma,Uar),(Uth,Uam))),Tor,Ame); (((Uth,(Mur,Hma)),((Uma,Uar),Uam)),Tor,Ame); (((Uma,Uar),(Uam,(Uth,(Mur,Hma)))),Tor,Ame); (((Hma,(Uth,Mur)),((Uma,Uar),Uam)),Tor,Ame); (((Uth,Uam),((Uar,Uma),(Hma,Mur))),Tor,Ame); (((Uth,Uam),((Uar,Uma),(Hma,Mur))),Tor,Ame); (((Hma,(Uth,Mur)),(Uam,(Uar,Uma))),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uar,Uma)))),Tor,Ame); (((Hma,(Uth,Mur)),(Uam,(Uar,Uma))),Tor,Ame); ((Uam,(Uar,(Uma,(Uth,(Mur,Hma))))),Tor,Ame); (((Uam,(Uar,Uma)),((Uth,Mur),Hma)),Tor,Ame); (((Uma,(Uam,Uar)),((Uth,Mur),Hma)),Tor,Ame); (((Uth,Mur),(Hma,(Uma,(Uam,Uar)))),Tor,Ame); (((Uam,(Uar,Uma)),((Hma,Mur),Uth)),Tor,Ame); (Tor,(Uam,(Uar,(Uma,(Hma,(Uth,Mur))))),Ame); (Tor,((Hma,((Uth,Mur),Uma)),(Uam,Uar)),Ame); (Tor,(Uam,(((Hma,(Uma,Uar)),Mur),Uth)),Ame); (Tor,(((Uma,Uar),(Mur,Hma)),(Uth,Uam)),Ame); (Tor,((Uth,(Mur,Hma)),(Uam,(Uma,Uar))),Ame); (Tor,(((Uma,Uar),(Mur,Hma)),(Uam,Uth)),Ame); (Tor,(((Uma,Uar),Hma),(Mur,(Uam,Uth))),Ame); (Tor,((Uth,(Uam,(Uma,Uar))),(Hma,Mur)),Ame); (Tor,((Uam,(Uth,Mur)),((Uma,Uar),Hma)),Ame); (Tor,((Hma,(Uth,Mur)),(Uam,(Uma,Uar))),Ame); (((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Tor,Ame); ((((Uar,Uma),((Hma,Mur),Uth)),Uam),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Tor,Ame); ((Uam,((Uar,Uma),(Hma,(Uth,Mur)))),Tor,Ame); ((((Uam,Uar),Uma),(Hma,(Uth,Mur))),Tor,Ame); (((Mur,Hma),((Uam,(Uar,Uma)),Uth)),Tor,Ame); (((Hma,(Uam,(Uar,Uma))),(Uth,Mur)),Tor,Ame); ((((Uth,(Mur,Uam)),(Uar,Uma)),Hma),Tor,Ame); ((((Uar,Uma),(Hma,Mur)),(Uam,Uth)),Tor,Ame); ((((Uar,Uma),Hma),((Mur,Uam),Uth)),Tor,Ame); (((Hma,Mur),((Uth,Uam),(Uar,Uma))),Tor,Ame); (((Hma,(Uth,Mur)),(Uam,(Uar,Uma))),Tor,Ame); (((Hma,(Uth,Mur)),(Uam,(Uar,Uma))),Tor,Ame); (((Hma,Mur),((Uth,Uam),(Uar,Uma))),Tor,Ame); (((Uar,(Uma,(Hma,(Uth,Mur)))),Uam),Tor,Ame); (((Mur,Hma),(((Uar,Uma),Uam),Uth)),Tor,Ame); (((Mur,Hma),((Uar,Uma),(Uam,Uth))),Tor,Ame); (((Mur,Hma),((Uar,Uma),(Uam,Uth))),Tor,Ame); (((Uar,((Mur,Hma),Uma)),(Uam,Uth)),Tor,Ame); ((((Mur,Hma),Uma),((Uam,Uar),Uth)),Tor,Ame); (((Uth,((Uma,Uar),Uam)),(Hma,Mur)),Tor,Ame); ((((Uma,Uar),(Uth,Uam)),(Hma,Mur)),Tor,Ame); (((Uar,Uam),(Uma,(Uth,(Hma,Mur)))),Tor,Ame); ((((Uam,Uth),(Uar,Uma)),(Hma,Mur)),Tor,Ame); (((Uam,(Uar,Uma)),(Uth,(Hma,Mur))),Tor,Ame); ((((Uth,Mur),Hma),((Uar,Uma),Uam)),Tor,Ame); ((((Uth,Mur),Hma),((Uar,Uma),Uam)),Tor,Ame); (((Uth,((Uar,Uma),Uam)),(Mur,Hma)),Tor,Ame); ((((Uar,Uma),Uam),(Uth,(Hma,Mur))),Tor,Ame); (((Hma,Mur),((Uma,(Uam,Uar)),Uth)),Tor,Ame); phangorn/inst/extdata/trees/RAxML_bipartitionsBranchLabels.3moles0000644000176200001440000000055613201424001024707 0ustar liggesusers(Ame:0.24240784786309346743,(((Hma:0.03262045163347984666,Mur:0.03886458455630492637):0.00225499947410235475[36],Uth:0.02580682933153511174):0.00059392541543651757[30],(Uam:0.02931596331419318927,(Uar:0.00602522464221224522,Uma:0.00593640374580924231):0.02934241311799383120[100]):0.00269684120306867619[60]):0.06379221863907107160[100],Tor:0.09747395533792581335); phangorn/inst/extdata/trees/RAxML_bestTree.YCh0000644000176200001440000000053413201424001020771 0ustar liggesusers((((Mur:0.00215666997155560154,Uth:0.00192023592185219349):0.00016696946772137622,Hma:0.00368686670740361357):0.00018687639400160564,(Uam:0.00135720565202207934,(Uma:0.00118651800822575332,Uar:0.00101739764390293918):0.00033775695210929856):0.00157503466397103213):0.00634369057289599098,Tor:0.00989995418842323435,Ame:0.02707461606876413254):0.0; phangorn/inst/extdata/trees/RAxML_bipartitionsBranchLabels.mtG0000644000176200001440000000055713201424001024235 0ustar liggesusers(Ame:0.42623829669506568818,(Mur:0.07919097361296209558,((Uar:0.01286960617186264609,Uma:0.01148014536527527073):0.05944338095871280064[100],((Uam:0.06376626308156593814,Uth:0.05419104627017570786):0.00666893477206217944[92],Hma:0.06896198930015005890):0.00974981555038798714[100]):0.00145717534115081442[66]):0.13909717574901725445[100],Tor:0.19825987246617926552); phangorn/inst/extdata/trees/RAxML_bestTree.AIs0000644000176200001440000000053413201424001020762 0ustar liggesusers(((Hma:0.00312706379726812329,(Uth:0.00121026052477198292,Mur:0.00312046250563168155):0.00087036069658183684):0.00122506270256386740,((Uar:0.00052373856518729458,Uma:0.00247018618187345041):0.00167792487939210548,Uam:0.00184159984063642979):0.00107249327886021345):0.00382497683824970002,Tor:0.00848622429823414105,Ame:0.02681059329595153473):0.0; phangorn/inst/extdata/trees/RAxML_bipartitions.woodmouse0000644000176200001440000000142213201424001023256 0ustar liggesusers(No305:0.00622878382196208596,(((No1007S:0.00000170671604060440,(No0909S:0.00108390188878723214,No1208S:0.00108436668237289475)52:0.00108405665369984980)99:0.00776063902846151413,(No0912S:0.00328637227135690751,No1103S:0.00109428209179901806)77:0.00000170671604060440)74:0.00223367776102044056,((No0908S:0.00552992494657482316,(No1206S:0.00557570157809361960,((No1202S:0.00108229934579785574,No0910S:0.00222680065047513396)95:0.00225951139716124754,No0906S:0.00571167759421415972)73:0.00108738027363135628)52:0.00108364136649804653)49:0.00000170671604060440,(No306:0.00000170671604060440,(No0913S:0.00331906405569605848,No304:0.00275623272441480370)81:0.00275326022717664034)76:0.00218358914928350797)74:0.00218629437313406583)88:0.00379919491759181556,No1114S:0.01098665288440475382); phangorn/inst/extdata/trees/RAxML_bestTree.mtG0000644000176200001440000000053413201424001021035 0ustar liggesusers((Mur:0.07919097361296209558,((Uar:0.01286960617186264609,Uma:0.01148014536527527073):0.05944338095871280064,((Uam:0.06376626308156593814,Uth:0.05419104627017570786):0.00666893477206217944,Hma:0.06896198930015005890):0.00974981555038798714):0.00145717534115081442):0.13909717574901725445,Tor:0.19825987246617926552,Ame:0.42623829669506568818):0.0; phangorn/inst/extdata/trees/RAxML_bipartitionsBranchLabels.YCh0000644000176200001440000000055613201424001024170 0ustar liggesusers(Ame:0.02707461606876413254,(((Mur:0.00215666997155560154,Uth:0.00192023592185219349):0.00016696946772137622[63],Hma:0.00368686670740361357):0.00018687639400160564[81],(Uam:0.00135720565202207934,(Uma:0.00118651800822575332,Uar:0.00101739764390293918):0.00033775695210929856[94]):0.00157503466397103213[100]):0.00634369057289599098[100],Tor:0.00989995418842323435); phangorn/inst/extdata/trees/RAxML_bipartitions.YCh0000644000176200001440000000054413201424001021724 0ustar liggesusers(Ame:0.02707461606876413254,(((Mur:0.00215666997155560154,Uth:0.00192023592185219349)63:0.00016696946772137622,Hma:0.00368686670740361357)81:0.00018687639400160564,(Uam:0.00135720565202207934,(Uma:0.00118651800822575332,Uar:0.00101739764390293918)94:0.00033775695210929856)100:0.00157503466397103213)100:0.00634369057289599098,Tor:0.00989995418842323435); phangorn/inst/extdata/trees/RAxML_bipartitions.mtG0000644000176200001440000000054513201424001021771 0ustar liggesusers(Ame:0.42623829669506568818,(Mur:0.07919097361296209558,((Uar:0.01286960617186264609,Uma:0.01148014536527527073)100:0.05944338095871280064,((Uam:0.06376626308156593814,Uth:0.05419104627017570786)92:0.00666893477206217944,Hma:0.06896198930015005890)100:0.00974981555038798714)66:0.00145717534115081442)100:0.13909717574901725445,Tor:0.19825987246617926552); phangorn/inst/extdata/trees/woodmouse.mrbayes.nex.run2.t0000644000176200001440000025045013201424001023135 0ustar liggesusers#NEXUS [ID: 2542150086] begin trees; translate 1 No305, 2 No304, 3 No306, 4 No0906S, 5 No0908S, 6 No0909S, 7 No0910S, 8 No0912S, 9 No0913S, 10 No1103S, 11 No1007S, 12 No1114S, 13 No1202S, 14 No1206S, 15 No1208S; tree rep.1 = ((((3,(((4,(8,(15,5))),2),((14,11),12))),(9,13)),7),(10,6),1); tree rep.10000 = (12,(((8,((15,6),11)),10),((((2,9),3),(14,((7,13),4))),5)),1); tree rep.20000 = (12,((8,((6,(11,15)),10)),(((14,((13,7),5)),4),((9,2),3))),1); tree rep.30000 = (12,(((3,(9,2)),(5,((14,4),(7,13)))),((8,10),((6,15),11))),1); tree rep.40000 = ((((12,5),((2,9),3)),(14,((7,13),4))),((8,((11,15),6)),10),1); tree rep.50000 = (((((11,(6,15)),(8,10)),((4,((13,7),14)),5)),((2,9),3)),12,1); tree rep.60000 = ((10,(8,(((4,(((9,2),3),((7,13),14))),5),(11,(15,6))))),12,1); tree rep.70000 = (12,((10,(((11,15),6),8)),((((13,7),4),(5,14)),((9,2),3))),1); tree rep.80000 = (12,(((3,(9,2)),(((7,13),4),(14,5))),((8,(11,(15,6))),10)),1); tree rep.90000 = (((((((13,7),4),5),((2,9),3)),14),((10,8),((11,15),6))),12,1); tree rep.100000 = (12,((10,8),(((9,2),((13,7),4)),(((5,14),(6,(11,15))),3))),1); tree rep.110000 = (12,((((7,13),4),(14,(5,((9,2),3)))),(10,(8,(11,(6,15))))),1); tree rep.120000 = (((10,(8,((6,15),11))),((5,(3,(2,9))),(14,(4,(13,7))))),12,1); tree rep.130000 = (((((4,((7,13),14)),5),(3,(2,9))),(8,(10,((15,6),11)))),12,1); tree rep.140000 = ((((10,8),((15,11),6)),((((7,13),(4,14)),5),(3,(2,9)))),12,1); tree rep.150000 = ((((5,(((9,2),3),14)),((7,13),4)),12),((8,10),((15,11),6)),1); tree rep.160000 = (((((11,(6,15)),10),8),((5,(((7,13),4),14)),((9,2),3))),12,1); tree rep.170000 = (12,((((10,8),((15,6),11)),4),((((9,2),3),5),(14,(7,13)))),1); tree rep.180000 = ((((3,(9,2)),(5,(4,(14,(13,7))))),((8,((15,11),6)),10)),12,1); tree rep.190000 = (12,(((((9,2),3),5),((14,4),(13,7))),((((6,15),11),8),10)),1); tree rep.200000 = (12,((14,((5,(7,13)),(((((11,6),15),10),8),4))),((9,2),3)),1); tree rep.210000 = ((((5,(3,(9,2))),(((13,4),7),14)),((8,10),((15,11),6))),12,1); tree rep.220000 = (12,(((((13,7),14),4),5),(((9,2),3),((11,(6,15)),(8,10)))),1); tree rep.230000 = (12,(((6,15),11),(((5,((13,(4,7)),(3,(9,2)))),14),(8,10))),1); tree rep.240000 = ((((13,7),(((11,(6,15)),(8,10)),((5,4),14))),((2,9),3)),12,1); tree rep.250000 = (((4,(13,7)),((5,14),((2,9),3))),(((10,8),((11,15),6)),12),1); tree rep.260000 = ((((((4,(13,7)),14),(3,(2,9))),5),(8,(((15,11),6),10))),12,1); tree rep.270000 = (12,((8,(10,((11,15),6))),(3,((13,7),(((9,2),5),(4,14))))),1); tree rep.280000 = (((((9,2),3),(5,((7,13),(14,4)))),(((11,15),6),(8,10))),12,1); tree rep.290000 = ((((((7,13),14),4),((3,(2,9)),5)),((10,8),(11,(15,6)))),12,1); tree rep.300000 = ((((((8,(6,(11,15))),10),5),((9,2),3)),(((13,7),14),4)),12,1); tree rep.310000 = (12,(((((2,9),3),5),(((13,7),14),4)),(8,((11,(15,6)),10))),1); tree rep.320000 = (12,((10,((6,(15,11)),8)),((5,((4,(13,7)),14)),((2,9),3))),1); tree rep.330000 = (12,(((8,10),((6,15),11)),(((13,7),(4,(5,14))),((2,9),3))),1); tree rep.340000 = ((((((11,15),6),((((2,9),3),5),(4,((13,7),14)))),10),8),12,1); tree rep.350000 = (12,((8,(((15,6),11),10)),((((9,2),3),5),(14,(4,(7,13))))),1); tree rep.360000 = ((((((11,15),6),8),10),((5,((9,2),3)),((7,13),(14,4)))),12,1); tree rep.370000 = ((((((11,15),6),(8,10)),(3,(5,(9,2)))),((4,(7,13)),14)),12,1); tree rep.380000 = ((((((14,(7,13)),4),(3,(9,2))),5),(((6,15),11),(10,8))),12,1); tree rep.390000 = (12,((14,((((9,2),3),((13,7),4)),5)),(((11,(6,15)),8),10)),1); tree rep.400000 = (12,((5,((14,((7,13),4)),(3,(9,2)))),(10,((6,(15,11)),8))),1); tree rep.410000 = (((10,((6,(15,11)),8)),(((3,(9,2)),5),(((7,13),14),4))),12,1); tree rep.420000 = (12,((5,((7,13),((14,4),((9,2),3)))),((11,(15,6)),(10,8))),1); tree rep.430000 = ((((7,13),5),((((9,2),3),4),14)),((10,(8,(6,(11,15)))),12),1); tree rep.440000 = (12,(((4,(14,(13,7))),(5,(3,(9,2)))),((8,((15,11),6)),10)),1); tree rep.450000 = (((((9,2),3),((((7,13),4),14),5)),((8,10),((11,15),6))),12,1); tree rep.460000 = (12,((((15,11),6),(10,8)),((4,((9,2),((3,5),(13,7)))),14)),1); tree rep.470000 = (12,((8,((6,(11,15)),10)),(5,((3,(9,2)),((7,(13,4)),14)))),1); tree rep.480000 = (12,(((5,((9,2),3)),((11,(15,6)),(8,10))),(((7,13),14),4)),1); tree rep.490000 = (12,(((((13,7),4),(5,14)),(3,(9,2))),(((6,15),11),(8,10))),1); tree rep.500000 = (((((13,7),4),(14,5)),(12,((9,2),3))),((8,((11,15),6)),10),1); tree rep.510000 = ((((8,10),(6,(15,11))),((7,13),(((9,2),3),(5,(14,4))))),12,1); tree rep.520000 = (12,((((((9,2),3),((5,14),(13,(7,4)))),(6,(15,11))),8),10),1); tree rep.530000 = (12,((5,(((2,9),3),((13,7),(4,14)))),((10,8),(11,(6,15)))),1); tree rep.540000 = ((((((15,6),11),8),10),((((7,13),4),(14,5)),(3,(2,9)))),12,1); tree rep.550000 = ((((12,(9,2)),(4,(13,7))),((14,5),3)),(((15,6),11),(10,8)),1); tree rep.560000 = (12,((((7,13),((9,2),3)),(4,(14,5))),((10,8),((6,15),11))),1); tree rep.570000 = (12,((((5,14),(4,(7,13))),((2,9),3)),((6,(15,11)),(8,10))),1); tree rep.580000 = (12,(((8,10),((6,15),11)),(((13,4),7),(((2,9),3),(14,5)))),1); tree rep.590000 = ((5,(3,(9,2))),((12,(10,(8,(6,(11,15))))),((4,14),(7,13))),1); tree rep.600000 = (12,(((8,(15,(6,11))),10),(((9,2),3),(((7,13),(5,14)),4))),1); tree rep.610000 = (12,(((3,(2,9)),(5,((4,7),(14,13)))),(8,(((15,6),11),10))),1); tree rep.620000 = (((((6,(11,15)),8),10),(((14,((7,13),4)),5),((2,9),3))),12,1); tree rep.630000 = (((((2,9),3),(5,(14,((7,13),4)))),(((11,(15,6)),10),8)),12,1); tree rep.640000 = (12,(((((9,2),3),(13,(7,4))),(14,5)),(10,(8,((6,15),11)))),1); tree rep.650000 = (12,((8,(((15,11),6),10)),(((3,(9,2)),(4,(7,13))),(14,5))),1); tree rep.660000 = ((((3,(2,9)),(((13,(7,4)),14),5)),(((15,11),6),(8,10))),12,1); tree rep.670000 = ((((11,(15,6)),(8,10)),(((14,(7,13)),4),(5,(3,(2,9))))),12,1); tree rep.680000 = (((((11,15),6),(8,10)),(((4,(14,(7,13))),5),(3,(9,2)))),12,1); tree rep.690000 = (12,(((8,10),((11,6),15)),((3,(9,2)),((14,4),(5,(7,13))))),1); tree rep.700000 = (((((5,(7,13)),14),(((2,9),3),4)),((6,(11,15)),(8,10))),12,1); tree rep.710000 = (12,(((10,8),(11,(6,15))),((((14,(7,13)),4),(3,(9,2))),5)),1); tree rep.720000 = (12,((5,((3,(9,2)),((4,14),(7,13)))),(8,(10,(11,(6,15))))),1); tree rep.730000 = ((((13,7),((3,(9,2)),(((15,6),11),(10,8)))),((14,5),4)),12,1); tree rep.740000 = (12,((8,(10,((15,6),11))),((3,(9,2)),(4,((7,13),(14,5))))),1); tree rep.750000 = (((5,((((8,10),((11,15),6)),12),((2,9),3))),((7,13),4)),14,1); tree rep.760000 = (12,(((14,4),5),((((8,10),(11,(6,15))),(3,(2,9))),(13,7))),1); tree rep.770000 = ((((14,(7,13)),4),(((((11,6),15),(8,10)),((2,9),3)),5)),12,1); tree rep.780000 = (((((3,(2,9)),((8,10),((11,15),6))),(14,5)),(4,(13,7))),12,1); tree rep.790000 = (((((4,(13,7)),14),(5,(3,(9,2)))),((10,8),(6,(11,15)))),12,1); tree rep.800000 = (12,(8,((10,(((14,(4,(7,13))),5),((9,2),3))),(11,(6,15)))),1); tree rep.810000 = (12,(((10,((6,15),11)),8),(14,(((4,(13,7)),(3,(2,9))),5))),1); tree rep.820000 = ((((5,(14,((13,7),4))),(3,(2,9))),((10,8),(11,(15,6)))),12,1); tree rep.830000 = ((4,(13,7)),((14,((((2,9),12),3),(((6,15),11),(8,10)))),5),1); tree rep.840000 = ((((10,8),(6,(11,15))),((14,((7,13),4)),(5,(3,(2,9))))),12,1); tree rep.850000 = (((8,(10,((15,11),6))),((((9,2),3),14),(((13,7),4),5))),12,1); tree rep.860000 = (12,((((6,(11,15)),8),10),((4,(7,13)),((14,5),((9,2),3)))),1); tree rep.870000 = (12,(((4,(7,13)),(((9,2),3),(14,5))),(8,(((15,6),11),10))),1); tree rep.880000 = (12,(((3,(9,2)),(((4,13),7),(5,14))),((((11,6),15),8),10)),1); tree rep.890000 = (((2,9),((5,(((13,7),14),4)),3)),(12,((11,(15,6)),(10,8))),1); tree rep.900000 = (12,(8,((((3,(9,2)),(5,((4,(13,7)),14))),((15,11),6)),10)),1); tree rep.910000 = ((12,5),(((((7,13),4),((((15,11),6),8),10)),((2,9),3)),14),1); tree rep.920000 = (((((9,2),3),((14,(4,(13,7))),5)),((11,(6,15)),(8,10))),12,1); tree rep.930000 = (((8,((6,(15,11)),10)),(((14,(5,4)),(7,13)),((9,2),3))),12,1); tree rep.940000 = ((((10,8),((15,11),6)),((7,13),(14,(((2,(9,3)),4),5)))),12,1); tree rep.950000 = (((5,(3,(2,9))),(14,((4,7),13))),(12,(8,(10,(6,(15,11))))),1); tree rep.960000 = (((((((6,15),11),8),10),5),(4,((3,(9,2)),(14,(13,7))))),12,1); tree rep.970000 = ((((10,((11,15),6)),8),(((3,(2,9)),((14,4),(7,13))),5)),12,1); tree rep.980000 = (12,((3,(2,9)),((((8,((15,11),6)),10),5),((4,(13,7)),14))),1); tree rep.990000 = (12,(((14,((7,13),4)),(((9,2),3),5)),((10,((6,15),11)),8)),1); tree rep.1000000 = ((((6,(11,15)),8),(10,((((9,2),3),((7,13),4)),(14,5)))),12,1); tree rep.1010000 = ((((10,(11,(15,6))),8),(5,(((2,9),3),(((13,7),4),14)))),12,1); tree rep.1020000 = ((((10,(11,(6,15))),8),((5,(14,(4,(13,7)))),((9,2),3))),12,1); tree rep.1030000 = ((((5,(4,(3,(9,2)))),(14,(7,13))),(8,((11,(15,6)),10))),12,1); tree rep.1040000 = ((((((11,15),6),8),10),(4,((14,(5,(3,(9,2)))),(13,7)))),12,1); tree rep.1050000 = (12,((5,(14,4)),((((9,2),3),(13,7)),(10,(8,((11,6),15))))),1); tree rep.1060000 = (((((4,(7,13)),(5,14)),(3,(9,2))),((10,8),((15,6),11))),12,1); tree rep.1070000 = ((((10,(11,(15,6))),8),((((9,2),14),((13,5),7)),(4,3))),12,1); tree rep.1080000 = ((((10,8),(11,(15,6))),(((2,3),5),(14,((9,4),(13,7))))),12,1); tree rep.1090000 = (12,((8,(((6,11),15),10)),(((4,5),(14,(13,7))),(3,(2,9)))),1); tree rep.1100000 = (((11,(6,15)),((4,(((7,13),(14,5)),(3,(9,2)))),(8,10))),12,1); tree rep.1110000 = ((((((4,13),7),14),5),(3,(9,2))),(12,(10,(8,(6,(15,11))))),1); tree rep.1120000 = ((((((13,7),14),4),(5,((9,2),3))),((10,(15,(6,11))),8)),12,1); tree rep.1130000 = (12,((10,(8,((15,11),6))),(5,(((9,2),3),(14,(4,(7,13)))))),1); tree rep.1140000 = (12,(((4,((6,(11,15)),(8,10))),14),(((2,9),3),((7,13),5))),1); tree rep.1150000 = (12,((((6,(11,15)),8),10),((5,((2,9),3)),((7,13),(4,14)))),1); tree rep.1160000 = (12,((((3,(2,9)),((7,13),4)),(5,14)),(8,(((15,11),6),10))),1); tree rep.1170000 = ((((3,(2,9)),(((7,13),14),4)),5),((10,8),((11,(6,15)),12)),1); tree rep.1180000 = (((5,14),(((7,13),4),(3,(2,9)))),(12,((8,((15,11),6)),10)),1); tree rep.1190000 = (((7,13),(4,(14,(5,(3,(9,2)))))),((((15,6),11),(10,8)),12),1); tree rep.1200000 = ((((10,(11,(6,15))),8),(((13,7),4),(((9,2),3),(14,5)))),12,1); tree rep.1210000 = ((((8,((6,15),11)),10),(((3,5),(2,9)),((14,4),(7,13)))),12,1); tree rep.1220000 = (((((15,(6,11)),8),10),(((5,((9,2),3)),14),(4,(13,7)))),12,1); tree rep.1230000 = (12,((4,((((2,9),3),((13,7),14)),5)),((10,(15,(11,6))),8)),1); tree rep.1240000 = (12,(((10,8),(6,(11,15))),((5,((2,9),3)),((13,7),(14,4)))),1); tree rep.1250000 = ((12,(3,(9,2))),(((10,8),((15,6),11)),(5,((14,4),(7,13)))),1); tree rep.1260000 = (((14,(7,13)),(4,(((9,2),3),5))),(12,(10,(((15,6),11),8))),1); tree rep.1270000 = (12,(((15,6),11),(10,(8,((((9,2),3),(14,(4,(13,7)))),5)))),1); tree rep.1280000 = ((((10,8),((15,11),6)),(((5,14),(4,(7,13))),(3,(9,2)))),12,1); tree rep.1290000 = (((14,5),(((3,(2,9)),(((10,8),(11,(15,6))),(7,13))),4)),12,1); tree rep.1300000 = (12,((((10,(6,(15,11))),8),5),(((7,13),(14,4)),(3,(2,9)))),1); tree rep.1310000 = (((((15,11),6),(((7,13),(14,4)),(((9,2),3),5))),(10,8)),12,1); tree rep.1320000 = (12,(((14,5),((4,(7,13)),(3,(9,2)))),((6,(15,11)),(8,10))),1); tree rep.1330000 = ((((3,(2,9)),((13,7),14)),(4,5)),((8,(10,(6,(15,11)))),12),1); tree rep.1340000 = ((((10,8),((6,15),11)),((5,(3,(2,9))),(((13,7),4),14))),12,1); tree rep.1350000 = (((((14,(7,4)),13),(((9,2),3),5)),((10,(11,(6,15))),8)),12,1); tree rep.1360000 = (12,((((15,11),6),(8,10)),((7,13),((4,14),(((2,9),3),5)))),1); tree rep.1370000 = (12,((((5,(14,(13,(7,4)))),3),(2,9)),(10,((15,(11,6)),8))),1); tree rep.1380000 = ((8,((11,(15,6)),10)),((12,(14,((7,13),4))),(5,((2,9),3))),1); tree rep.1390000 = ((((3,(2,9)),(4,((7,13),14))),5),(((((6,15),11),8),10),12),1); tree rep.1400000 = ((((13,7),((5,(2,9)),(4,((10,(6,(11,15))),8)))),(14,3)),12,1); tree rep.1410000 = ((((6,(11,15)),(8,10)),(((3,(9,2)),((14,5),(13,7))),4)),12,1); tree rep.1420000 = (12,((((13,7),4),5),(((((11,15),6),(8,10)),((9,2),3)),14)),1); tree rep.1430000 = (12,(((6,(11,15)),(8,10)),(((13,7),((14,5),4)),(3,(9,2)))),1); tree rep.1440000 = (((((3,(9,2)),5),(14,(4,(13,7)))),(8,(10,((15,6),11)))),12,1); tree rep.1450000 = (12,(((5,(((13,7),4),14)),(3,(9,2))),((8,((15,6),11)),10)),1); tree rep.1460000 = (((11,(6,15)),((10,8),(((5,14),((9,2),3)),((13,7),4)))),12,1); tree rep.1470000 = ((((11,(15,6)),(((14,5),((13,7),4)),(10,8))),12),(3,(9,2)),1); tree rep.1480000 = (((12,(8,(((15,11),6),10))),((2,9),3)),(((4,(7,13)),5),14),1); tree rep.1490000 = (((10,((6,(15,11)),8)),((5,((2,9),3)),(14,((7,13),4)))),12,1); tree rep.1500000 = (12,((5,(14,((3,(9,2)),(13,(4,7))))),((8,(6,(11,15))),10)),1); tree rep.1510000 = (12,(((5,((9,2),3)),(4,((7,13),14))),((10,8),(6,(15,11)))),1); tree rep.1520000 = (12,((((14,(3,(9,2))),(5,((13,7),4))),(10,8)),((15,6),11)),1); tree rep.1530000 = (12,(((8,10),((11,15),6)),(((3,(9,2)),5),(((13,7),4),14))),1); tree rep.1540000 = ((((11,(15,6)),(10,8)),((((13,7),4),(14,5)),(3,(9,2)))),12,1); tree rep.1550000 = (12,((((8,(10,(11,(15,6)))),(5,14)),((3,9),2)),((13,7),4)),1); tree rep.1560000 = (((((3,(2,9)),((13,7),(14,5))),4),((11,(6,15)),(10,8))),12,1); tree rep.1570000 = (12,((6,(15,11)),((10,(4,(((3,(2,9)),(14,(13,7))),5))),8)),1); tree rep.1580000 = (12,((((2,9),3),(5,((14,4),(7,13)))),(10,(((15,6),11),8))),1); tree rep.1590000 = ((((10,8),((11,15),6)),((4,5),((3,(9,2)),((7,13),14)))),12,1); tree rep.1600000 = (12,((10,8),((14,((3,(9,2)),(((13,7),4),5))),((11,15),6))),1); tree rep.1610000 = ((((5,(((13,7),4),14)),((2,9),3)),(10,(8,(6,(15,11))))),12,1); tree rep.1620000 = ((12,((3,(2,9)),(((14,4),5),(7,13)))),(((6,(11,15)),8),10),1); tree rep.1630000 = (12,((4,((14,(5,(7,13))),(3,(2,9)))),((8,10),((15,11),6))),1); tree rep.1640000 = (12,((((10,8),(11,(15,6))),((3,(9,2)),((14,4),(7,13)))),5),1); tree rep.1650000 = (((((6,15),11),(10,8)),(((3,(9,2)),5),((7,13),(14,4)))),12,1); tree rep.1660000 = (((((11,15),6),10),8),(12,(14,(((7,13),(3,(2,9))),(5,4)))),1); tree rep.1670000 = (((((2,9),3),((((13,7),4),14),5)),(((6,15),11),(10,8))),12,1); tree rep.1680000 = (((10,(8,(11,(15,6)))),(5,((((7,13),4),14),(3,(9,2))))),12,1); tree rep.1690000 = ((((3,(9,2)),5),(4,(14,(7,13)))),(12,((11,(15,6)),(8,10))),1); tree rep.1700000 = (((((13,7),(4,14)),((9,2),3)),(12,(((6,15),11),(10,8)))),5,1); tree rep.1710000 = (((((14,((7,13),(5,3))),4),(9,2)),((10,((15,6),11)),8)),12,1); tree rep.1720000 = (12,(((((13,7),4),(5,14)),((9,2),3)),((10,8),((15,11),6))),1); tree rep.1730000 = (((((6,(11,15)),10),8),(((2,9),3),((14,(5,(13,7))),4))),12,1); tree rep.1740000 = (((((9,2),3),(14,5)),((13,7),4)),(((8,10),((11,15),6)),12),1); tree rep.1750000 = (((8,(11,(15,6))),10),(((3,(9,2)),12),(((4,(7,13)),14),5)),1); tree rep.1760000 = (((((13,7),4),(14,((3,(2,9)),5))),12),(8,(10,(6,(15,11)))),1); tree rep.1770000 = (((10,8),(11,(15,6))),(((13,7),4),((5,14),(12,((2,9),3)))),1); tree rep.1780000 = ((12,((5,(14,((13,7),((2,9),3)))),4)),(((6,15),11),(8,10)),1); tree rep.1790000 = (12,((6,(11,15)),(((((9,2),3),4),((13,7),(14,5))),(10,8))),1); tree rep.1800000 = ((((3,((13,7),(14,4))),5),(9,2)),(12,((15,(6,11)),(8,10))),1); tree rep.1810000 = (12,((((15,6),11),(8,10)),(((5,(3,(2,9))),(4,(13,7))),14)),1); tree rep.1820000 = (((((((15,11),6),(10,8)),((9,2),3)),5),(((13,7),4),14)),12,1); tree rep.1830000 = ((((10,8),((6,15),11)),((5,(((13,7),4),14)),(3,(9,2)))),12,1); tree rep.1840000 = (((12,(11,(15,6))),(8,10)),((((9,2),3),(7,13)),((14,4),5)),1); tree rep.1850000 = ((10,((((14,(((7,13),5),4)),((2,9),3)),((6,15),11)),8)),12,1); tree rep.1860000 = (((((4,(13,7)),((2,9),3)),(5,14)),((10,8),((15,6),11))),12,1); tree rep.1870000 = (((10,(8,((6,15),11))),((5,(3,(9,2))),((4,14),(7,13)))),12,1); tree rep.1880000 = (12,((10,(((15,6),11),8)),((7,13),(((4,5),14),((9,2),3)))),1); tree rep.1890000 = ((((3,(2,9)),((14,5),((7,13),4))),12),(10,(((11,15),6),8)),1); tree rep.1900000 = (((8,10),(6,(15,11))),(12,(((3,(2,9)),5),(14,(4,(7,13))))),1); tree rep.1910000 = ((((14,(((13,7),4),(9,2))),(5,3)),(((6,(11,15)),10),8)),12,1); tree rep.1920000 = (12,((3,(9,2)),((((13,7),5),(4,14)),(8,(10,((6,15),11))))),1); tree rep.1930000 = (((((5,(4,(7,13))),14),((9,2),3)),((10,8),(11,(6,15)))),12,1); tree rep.1940000 = (12,((13,(4,(((9,2),3),(7,(14,5))))),((10,8),((15,11),6))),1); tree rep.1950000 = (((8,10),(11,(6,15))),((((((13,7),4),3),((9,2),14)),5),12),1); tree rep.1960000 = ((((14,((13,7),4)),(((2,9),3),5)),((10,8),((6,15),11))),12,1); tree rep.1970000 = ((12,((10,8),(6,(15,11)))),((14,5),(((9,2),3),(4,(7,13)))),1); tree rep.1980000 = (12,(((((15,11),6),8),10),(5,(((9,2),3),((13,7),(4,14))))),1); tree rep.1990000 = (12,(((((2,9),3),(5,(14,(4,(7,13))))),(10,8)),((11,15),6)),1); tree rep.2000000 = (12,((((7,13),3),(14,(((9,2),5),4))),((10,8),((6,11),15))),1); tree rep.2010000 = (12,((((15,6),11),(8,10)),((5,(((4,7),13),14)),(3,(9,2)))),1); tree rep.2020000 = ((14,(((9,2),3),((4,(13,7)),5))),(12,(8,(10,(11,(15,6))))),1); tree rep.2030000 = (((((3,(9,2)),((7,4),13)),(14,5)),((10,8),(11,(15,6)))),12,1); tree rep.2040000 = ((5,((3,(9,2)),((((6,(11,15)),8),10),(((7,13),4),14)))),12,1); tree rep.2050000 = ((12,(5,(((9,2),3),(14,((13,7),4))))),((10,((11,15),6)),8),1); tree rep.2060000 = ((((((11,15),6),8),10),12),((4,((14,5),(7,13))),(3,(9,2))),1); tree rep.2070000 = (((14,(5,(((9,2),3),((7,13),4)))),(((15,6),11),(10,8))),12,1); tree rep.2080000 = (((((9,2),3),(((7,13),4),14)),(5,((8,(11,(15,6))),10))),12,1); tree rep.2090000 = (12,(((11,(6,15)),(10,8)),(((4,14),(13,7)),(((2,9),3),5))),1); tree rep.2100000 = ((((((15,6),11),8),10),((3,(2,9)),((14,(4,(13,7))),5))),12,1); tree rep.2110000 = (12,(((14,(((2,9),3),5)),((7,13),4)),(10,(8,((15,6),11)))),1); tree rep.2120000 = (12,((8,(((15,6),11),10)),((14,(4,(13,7))),(((9,2),3),5))),1); tree rep.2130000 = ((((((15,11),6),8),10),(((5,14),((2,9),3)),(4,(7,13)))),12,1); tree rep.2140000 = (((6,(15,11)),(10,8)),(((5,(3,(2,9))),(14,((13,7),4))),12),1); tree rep.2150000 = (12,(((8,10),((6,15),11)),((5,14),(((2,9),3),(4,(13,7))))),1); tree rep.2160000 = (12,((((9,2),3),((14,(5,4)),(7,13))),(8,(10,(11,(6,15))))),1); tree rep.2170000 = (((11,(15,6)),(10,8)),(((((13,7),(14,4)),(3,(9,2))),5),12),1); tree rep.2180000 = ((((6,(15,11)),(8,10)),(((14,5),(4,(3,(9,2)))),(13,7))),12,1); tree rep.2190000 = (12,((5,((14,((7,13),4)),((2,9),3))),((8,10),((15,6),11))),1); tree rep.2200000 = ((((((14,5),3),4),((13,7),(2,9))),(((15,6),11),(8,10))),12,1); tree rep.2210000 = ((((((((7,13),4),((2,9),3)),(14,5)),((11,15),6)),10),8),12,1); tree rep.2220000 = (((8,((6,(11,15)),10)),(((13,7),4),((14,5),(3,(9,2))))),12,1); tree rep.2230000 = (12,(((8,10),((4,(7,13)),((5,14),((9,2),3)))),(11,(15,6))),1); tree rep.2240000 = (((((5,(7,13)),14),(4,((2,9),3))),(10,((6,(11,15)),8))),12,1); tree rep.2250000 = (((((15,6),11),(10,8)),((5,(3,(9,2))),((7,13),(4,14)))),12,1); tree rep.2260000 = (12,(((5,(14,(7,13))),(4,((2,9),3))),(10,(8,((6,15),11)))),1); tree rep.2270000 = (((((14,(13,7)),(4,5)),((2,9),3)),(8,((11,(6,15)),10))),12,1); tree rep.2280000 = ((((10,((6,15),11)),8),(((14,(7,13)),4),(5,((9,2),3)))),12,1); tree rep.2290000 = ((((8,10),(14,(((9,2),3),(5,((7,13),4))))),12),(11,(15,6)),1); tree rep.2300000 = (((((11,6),15),(8,10)),(((9,2),3),(5,(14,(4,(7,13)))))),12,1); tree rep.2310000 = (12,(5,(((4,(7,13)),14),(((2,9),3),(((15,6),11),(10,8))))),1); tree rep.2320000 = (12,(((4,14),((2,9),3)),(((8,(((6,15),11),10)),(13,7)),5)),1); tree rep.2330000 = ((((10,8),(11,(15,6))),(((14,5),(((7,13),4),(2,9))),3)),12,1); tree rep.2340000 = ((((5,(7,13)),((3,(2,9)),(4,14))),12),(10,(((11,15),6),8)),1); tree rep.2350000 = ((((((9,2),3),((4,14),(7,13))),5),(10,(8,(11,(15,6))))),12,1); tree rep.2360000 = (((5,(((4,(7,13)),14),((9,2),3))),((6,(15,11)),(10,8))),12,1); tree rep.2370000 = (12,((((11,15),6),(8,10)),(((7,13),((4,((9,2),3)),5)),14)),1); tree rep.2380000 = ((8,(10,(15,(6,11)))),(12,((3,(9,2)),(14,((4,(7,13)),5)))),1); tree rep.2390000 = (((((14,5),(3,(9,2))),(4,(7,13))),((10,8),((15,6),11))),12,1); tree rep.2400000 = (12,(((6,(11,15)),(10,8)),(((4,(14,(13,7))),5),((2,9),3))),1); tree rep.2410000 = (((((3,(2,9)),5),((7,13),(14,4))),(((11,(6,15)),8),10)),12,1); tree rep.2420000 = ((5,(((13,7),(14,4)),(3,(9,2)))),(((10,8),(6,(11,15))),12),1); tree rep.2430000 = ((((6,(11,15)),10),8),((5,12),((3,(9,2)),((13,7),(14,4)))),1); tree rep.2440000 = (12,((((8,10),(6,(11,15))),((9,2),3)),((7,13),((5,14),4))),1); tree rep.2450000 = ((12,((8,(10,(6,(15,11)))),(14,((7,13),(4,5))))),((2,9),3),1); tree rep.2460000 = (12,((5,(((13,7),14),((10,8),((6,15),11)))),(((9,2),3),4)),1); tree rep.2470000 = ((((10,8),(6,(15,11))),((4,(13,7)),((3,(9,2)),(5,14)))),12,1); tree rep.2480000 = (12,((((4,(7,13)),((8,10),(6,(15,11)))),((9,2),3)),(5,14)),1); tree rep.2490000 = ((((7,13),(14,(4,(((9,2),3),5)))),(8,((6,(15,11)),10))),12,1); tree rep.2500000 = ((((((9,2),3),((13,7),5)),(14,4)),((10,(6,(15,11))),8)),12,1); tree rep.2510000 = ((12,(((2,(3,9)),5),(((7,13),4),14))),(8,(10,(6,(11,15)))),1); tree rep.2520000 = (12,(((11,(15,6)),(10,8)),((14,(((13,7),4),(3,(2,9)))),5)),1); tree rep.2530000 = ((((11,(15,6)),8),10),(12,(5,(((14,(13,7)),4),((2,9),3)))),1); tree rep.2540000 = ((((11,(6,15)),(8,10)),((5,((9,2),3)),(((13,7),14),4))),12,1); tree rep.2550000 = (12,(((10,8),(6,(11,15))),((5,(14,((7,13),4))),(3,(2,9)))),1); tree rep.2560000 = (12,(((14,(4,(13,7))),((5,3),(9,2))),((6,(11,15)),(10,8))),1); tree rep.2570000 = (((11,(15,6)),(10,8)),(12,((14,5),((4,(7,13)),((2,9),3)))),1); tree rep.2580000 = (12,((((3,(2,9)),5),(4,(14,(7,13)))),(((11,(15,6)),8),10)),1); tree rep.2590000 = (((10,((11,15),6)),8),(((5,(3,(9,2))),((14,4),(13,7))),12),1); tree rep.2600000 = ((((5,((14,((13,7),4)),3)),(2,9)),(((11,(6,15)),8),10)),12,1); tree rep.2610000 = (((8,(((15,6),11),10)),12),(((14,5),(3,(9,2))),(4,(7,13))),1); tree rep.2620000 = (((11,(6,15)),(10,8)),(((((7,13),(14,5)),4),(3,(9,2))),12),1); tree rep.2630000 = (12,(5,((((4,14),(13,7)),((9,2),3)),((8,10),((6,15),11)))),1); tree rep.2640000 = (12,(((5,14),((4,(7,13)),(3,(9,2)))),(10,((6,(11,15)),8))),1); tree rep.2650000 = (12,((5,(((14,(13,7)),4),((9,2),3))),(10,(8,(11,(15,6))))),1); tree rep.2660000 = (12,((7,(((13,14),(5,(3,(9,2)))),4)),(10,(8,((11,15),6)))),1); tree rep.2670000 = ((8,10),((6,(11,15)),(((5,((9,2),3)),(((7,13),14),4)),12)),1); tree rep.2680000 = ((((5,((7,13),((2,9),3))),(4,14)),((15,(11,6)),(8,10))),12,1); tree rep.2690000 = (12,(((10,(6,(15,11))),8),(((((7,13),4),14),5),((9,2),3))),1); tree rep.2700000 = ((((8,10),((6,15),11)),((5,((3,(9,2)),14)),((7,13),4))),12,1); tree rep.2710000 = (((4,((13,7),14)),(((2,9),3),5)),(((10,8),(11,(15,6))),12),1); tree rep.2720000 = (((5,(((4,(13,7)),(3,(2,9))),14)),((8,((15,11),6)),10)),12,1); tree rep.2730000 = (((((13,7),4),(5,(14,(3,(9,2))))),((10,8),((15,11),6))),12,1); tree rep.2740000 = (12,(((8,10),(6,(11,15))),(5,((((7,13),14),4),((9,2),3)))),1); tree rep.2750000 = (((((13,7),(14,4)),((3,(9,2)),5)),((8,((15,6),11)),10)),12,1); tree rep.2760000 = ((((((13,7),(2,9)),3),((4,14),5)),((11,(6,15)),(8,10))),12,1); tree rep.2770000 = ((((14,(3,(2,9))),(5,(4,(13,7)))),((10,8),(11,(15,6)))),12,1); tree rep.2780000 = (12,((((5,14),(((2,9),3),4)),(13,7)),(((11,15),6),(8,10))),1); tree rep.2790000 = (12,(((13,7),4),(((14,5),((2,9),3)),((10,((15,6),11)),8))),1); tree rep.2800000 = ((((8,((6,15),11)),10),((((2,(3,9)),((7,13),14)),4),5)),12,1); tree rep.2810000 = ((((5,(3,(9,2))),(14,(4,(7,13)))),(((11,(6,15)),10),8)),12,1); tree rep.2820000 = (12,(((10,((11,15),6)),8),((4,((13,7),14)),((3,(9,2)),5))),1); tree rep.2830000 = ((12,((11,(6,15)),(8,10))),(((9,2),3),(5,((14,4),(7,13)))),1); tree rep.2840000 = ((10,(8,((11,15),6))),((5,(14,(((7,13),4),(3,(9,2))))),12),1); tree rep.2850000 = (((11,(6,15)),(8,10)),((((9,2),3),((((13,7),4),14),5)),12),1); tree rep.2860000 = ((((15,6),11),(10,8)),(((12,5),(3,(9,2))),(14,((7,13),4))),1); tree rep.2870000 = (12,(((((13,7),4),((2,9),3)),(5,14)),((8,10),(11,(6,15)))),1); tree rep.2880000 = ((((8,10),(15,(6,11))),(((7,13),((3,(2,9)),(4,14))),5)),12,1); tree rep.2890000 = (12,(((10,(6,(15,11))),8),((7,13),(((5,14),((2,9),3)),4))),1); tree rep.2900000 = (12,((5,(3,(9,2))),((8,((6,(11,15)),10)),(((7,13),4),14))),1); tree rep.2910000 = ((((10,((15,6),11)),8),12),((((14,4),(13,7)),((2,9),3)),5),1); tree rep.2920000 = (12,((((6,15),11),(10,8)),((5,(((4,(7,13)),14),3)),(9,2))),1); tree rep.2930000 = (((((9,2),3),(14,(5,(4,(13,7))))),((8,10),(11,(15,6)))),12,1); tree rep.2940000 = (12,(((3,(2,9)),(((13,7),(14,5)),4)),(((11,(6,15)),8),10)),1); tree rep.2950000 = ((((((7,13),14),4),5),(12,((2,9),3))),((8,((11,15),6)),10),1); tree rep.2960000 = (((4,(((13,7),3),((2,9),5))),14),(12,((10,8),((6,15),11))),1); tree rep.2970000 = (12,(((((13,7),(14,5)),4),((9,2),3)),((6,(15,11)),(10,8))),1); tree rep.2980000 = (((10,(8,((14,(5,((7,13),(3,(2,9))))),4))),((11,15),6)),12,1); tree rep.2990000 = (((((6,11),15),(8,10)),(((14,4),(13,7)),((5,3),(2,9)))),12,1); tree rep.3000000 = (12,((5,(((2,9),3),(((15,11),6),(10,8)))),(14,((13,7),4))),1); tree rep.3010000 = ((((((13,7),4),14),((3,(2,9)),5)),((6,(11,15)),(8,10))),12,1); tree rep.3020000 = (12,(((14,5),(((9,2),3),(4,(13,7)))),((11,(6,15)),(8,10))),1); tree rep.3030000 = ((((8,(11,(15,6))),10),(((9,2),3),((5,14),((13,7),4)))),12,1); tree rep.3040000 = ((((8,(6,(15,11))),10),(5,((4,(14,(7,13))),((2,9),3)))),12,1); tree rep.3050000 = (12,((((((13,7),14),4),((2,9),3)),5),((8,10),((15,6),11))),1); tree rep.3060000 = (12,(((10,8),(6,(11,15))),(((7,4),13),((3,(2,9)),(14,5)))),1); tree rep.3070000 = ((((11,(15,6)),10),8),(((3,(2,9)),(((13,7),(14,5)),4)),12),1); tree rep.3080000 = (12,((8,((6,(11,15)),10)),((((13,7),(4,14)),(3,(2,9))),5)),1); tree rep.3090000 = (12,((((3,(2,9)),5),((14,(7,13)),4)),(10,(8,((15,6),11)))),1); tree rep.3100000 = (((((15,6),11),(((2,9),(5,(14,(4,(13,7))))),3)),(10,8)),12,1); tree rep.3110000 = (((10,((11,(15,6)),8)),((3,(2,9)),((14,5),(7,(4,13))))),12,1); tree rep.3120000 = (((((14,4),(13,7)),(((2,9),3),5)),((8,(11,(15,6))),10)),12,1); tree rep.3130000 = ((12,((6,(11,15)),(8,10))),((((2,9),3),(14,(4,(7,13)))),5),1); tree rep.3140000 = (((10,((11,(6,15)),8)),(((4,(14,(7,13))),5),((2,9),3))),12,1); tree rep.3150000 = (((10,8),((((9,2),3),((14,((7,13),4)),5)),((6,15),11))),12,1); tree rep.3160000 = (((10,(((15,11),6),8)),((5,14),((4,(3,(2,9))),(7,13)))),12,1); tree rep.3170000 = ((5,(((((13,7),4),12),(3,(2,9))),14)),((10,8),((15,6),11)),1); tree rep.3180000 = ((((((9,2),3),((4,(14,5)),(13,7))),(6,(11,15))),(8,10)),12,1); tree rep.3190000 = (((((15,11),6),(10,8)),(5,(((9,2),3),(((13,7),4),14)))),12,1); tree rep.3200000 = (((((15,11),6),8),10),(12,(((5,(4,(13,7))),14),(3,(9,2)))),1); tree rep.3210000 = (((((3,(9,2)),(7,13)),(4,(5,14))),((11,(15,6)),(8,10))),12,1); tree rep.3220000 = (((5,((4,(14,(13,7))),((9,2),3))),((10,((15,6),11)),8)),12,1); tree rep.3230000 = ((((((4,(13,7)),14),((9,2),3)),5),((10,8),((15,6),11))),12,1); tree rep.3240000 = ((((5,((3,9),2)),(14,(4,(13,7)))),((10,(11,(15,6))),8)),12,1); tree rep.3250000 = (12,(((15,(11,6)),(10,8)),(4,(((14,5),((9,2),3)),(7,13)))),1); tree rep.3260000 = (12,((8,((11,(6,15)),10)),((((7,13),4),((2,9),3)),(5,14))),1); tree rep.3270000 = (((14,(4,(5,(13,7)))),(((((6,15),11),8),10),(3,(2,9)))),12,1); tree rep.3280000 = (((10,(8,((6,11),15))),12),((4,14),((3,(2,9)),(5,(13,7)))),1); tree rep.3290000 = (((8,10),((15,6),11)),((14,((7,13),(5,(12,(3,(2,9)))))),4),1); tree rep.3300000 = ((((5,((2,9),3)),((4,14),(7,13))),((10,8),((11,15),6))),12,1); tree rep.3310000 = (((10,((6,(15,11)),8)),(5,(((9,2),3),((14,4),(13,7))))),12,1); tree rep.3320000 = ((((((14,(4,13)),7),5),(3,(9,2))),((10,8),(6,(11,15)))),12,1); tree rep.3330000 = (12,((8,(((15,11),6),10)),((14,(7,13)),(4,(5,((9,2),3))))),1); tree rep.3340000 = (12,((3,(9,2)),(5,(((4,(13,7)),14),(10,(((6,11),15),8))))),1); tree rep.3350000 = (12,((10,(((15,11),6),8)),(((9,2),3),((14,5),(4,(7,13))))),1); tree rep.3360000 = (12,(((10,8),(((14,(13,7)),4),(5,(3,(9,2))))),((11,6),15)),1); tree rep.3370000 = ((12,((14,(13,7)),4)),(((9,2),(5,3)),(((11,15),6),(10,8))),1); tree rep.3380000 = ((((4,((14,5),(7,13))),(3,(2,9))),(8,((6,(15,11)),10))),12,1); tree rep.3390000 = ((((3,(2,9)),5),((14,4),(13,7))),((((15,11),6),(10,8)),12),1); tree rep.3400000 = (((10,((11,(6,15)),8)),(((7,13),(14,(5,4))),(3,(9,2)))),12,1); tree rep.3410000 = (12,((((9,2),3),((((13,7),4),14),5)),(10,(((15,11),6),8))),1); tree rep.3420000 = (12,(((((4,(13,7)),((2,9),3)),(((6,15),11),(8,10))),14),5),1); tree rep.3430000 = (12,(((7,13),((4,((3,(2,9)),5)),14)),((10,8),((11,15),6))),1); tree rep.3440000 = (((14,((3,(2,9)),5)),((10,(((11,15),6),8)),(13,7))),(12,4),1); tree rep.3450000 = ((((4,(7,13)),((5,14),((9,2),3))),((15,(11,6)),(10,8))),12,1); tree rep.3460000 = (((((15,6),11),(10,8)),(((3,(9,2)),5),(14,((13,7),4)))),12,1); tree rep.3470000 = ((((9,2),3),(5,((4,14),(7,13)))),((((15,6),11),(10,8)),12),1); tree rep.3480000 = (12,(((8,(11,(6,15))),10),((((9,2),3),(14,5)),(4,(7,13)))),1); tree rep.3490000 = (((5,((3,14),(((7,13),4),(9,2)))),(10,((6,(15,11)),8))),12,1); tree rep.3500000 = (12,((((2,9),3),(5,(((13,7),4),14))),(10,(8,(15,(11,6))))),1); tree rep.3510000 = (12,(((14,5),((4,(7,13)),(3,(9,2)))),(10,(((15,6),11),8))),1); tree rep.3520000 = ((12,(((3,(2,9)),(5,14)),(4,(13,7)))),(((11,(6,15)),8),10),1); tree rep.3530000 = ((((6,(11,15)),(10,8)),(((13,7),4),((2,9),(3,(5,14))))),12,1); tree rep.3540000 = ((((5,(3,(2,9))),((4,(13,7)),14)),((10,8),((6,15),11))),12,1); tree rep.3550000 = (12,((3,(2,9)),((5,14),((4,(13,7)),((10,8),(11,(6,15)))))),1); tree rep.3560000 = (12,((((((9,2),3),(7,13)),5),4),(((8,(15,(11,6))),10),14)),1); tree rep.3570000 = ((((10,8),(11,(6,15))),((5,(14,(4,(13,7)))),(3,(9,2)))),12,1); tree rep.3580000 = (12,((((9,2),3),((5,14),((7,13),4))),(8,(10,(15,(11,6))))),1); tree rep.3590000 = ((((8,(6,(15,11))),10),(((9,2),3),((14,(4,(13,7))),5))),12,1); tree rep.3600000 = (12,(((((4,(7,13)),14),(((6,(15,11)),10),8)),5),((9,2),3)),1); tree rep.3610000 = (((5,((14,(4,(7,13))),(3,(9,2)))),((8,10),(11,(6,15)))),12,1); tree rep.3620000 = (12,((((((7,13),(8,(10,(11,(6,15))))),5),14),4),((9,2),3)),1); tree rep.3630000 = ((12,((6,(11,15)),(10,8))),((5,14),((3,(9,2)),(7,(4,13)))),1); tree rep.3640000 = ((((8,(11,(15,6))),10),((5,((2,9),3)),(((13,7),4),14))),12,1); tree rep.3650000 = (((5,(3,(9,2))),((14,4),(13,7))),(12,(10,((11,(15,6)),8))),1); tree rep.3660000 = ((((4,(7,13)),(5,14)),((9,2),3)),(12,((8,10),((11,15),6))),1); tree rep.3670000 = (12,((((11,(15,6)),8),10),(5,(4,(((9,2),3),((7,13),14))))),1); tree rep.3680000 = ((((((9,2),3),((4,(7,13)),14)),5),(((15,6),11),(10,8))),12,1); tree rep.3690000 = (12,(((8,10),((15,11),6)),((3,(9,2)),((14,((13,7),4)),5))),1); tree rep.3700000 = ((14,(((4,(7,13)),5),((9,2),3))),(12,(8,((6,(15,11)),10))),1); tree rep.3710000 = ((((5,14),(((7,13),4),(3,(2,9)))),12),(8,((11,(15,6)),10)),1); tree rep.3720000 = (12,(((5,((2,9),3)),((7,13),(4,14))),((8,((15,6),11)),10)),1); tree rep.3730000 = (12,(((5,((9,2),3)),((14,(7,13)),4)),((15,(6,11)),(8,10))),1); tree rep.3740000 = (((4,(9,(13,7))),((3,2),((14,5),(((11,15),6),(8,10))))),12,1); tree rep.3750000 = ((((14,5),(((7,13),4),(3,(9,2)))),12),((10,8),((15,6),11)),1); tree rep.3760000 = (((8,10),((5,((9,2),(((4,(7,13)),14),3))),((11,15),6))),12,1); tree rep.3770000 = ((((5,(((13,7),4),(3,(9,2)))),14),((10,((11,15),6)),8)),12,1); tree rep.3780000 = (12,(5,((14,(4,(13,7))),(((11,(15,6)),(8,10)),(3,(2,9))))),1); tree rep.3790000 = (12,((((10,8),((15,6),11)),((3,(9,2)),(14,(13,7)))),(5,4)),1); tree rep.3800000 = (((((11,15),6),(8,10)),(((9,2),3),(14,(((7,13),4),5)))),12,1); tree rep.3810000 = ((((6,(11,15)),(8,10)),(((7,13),(4,((9,2),3))),(5,14))),12,1); tree rep.3820000 = (((((15,6),11),(8,10)),((((13,7),4),14),(5,((9,2),3)))),12,1); tree rep.3830000 = (((((15,6),11),8),10),((5,((9,2),3)),((12,14),(4,(13,7)))),1); tree rep.3840000 = (12,((((13,7),4),(((3,(9,2)),14),5)),((10,(11,(6,15))),8)),1); tree rep.3850000 = (12,(((14,(4,(7,13))),(5,(3,(9,2)))),(10,(((15,6),11),8))),1); tree rep.3860000 = (((4,(13,7)),(((2,9),3),(5,14))),(((8,((11,15),6)),10),12),1); tree rep.3870000 = (12,(((((6,15),11),10),8),((4,((((9,2),3),(7,13)),14)),5)),1); tree rep.3880000 = (((5,((14,(4,(13,7))),(3,(9,2)))),(10,((11,(15,6)),8))),12,1); tree rep.3890000 = (12,(((3,(9,2)),(((4,(7,13)),14),5)),(((11,6),15),(8,10))),1); tree rep.3900000 = (((((9,2),3),((14,(4,(13,7))),5)),(10,(((15,11),6),8))),12,1); tree rep.3910000 = ((((3,(9,2)),((7,13),14)),(5,4)),(((10,(6,(15,11))),8),12),1); tree rep.3920000 = ((((8,10),((11,15),6)),(((4,(7,13)),14),(5,((2,9),3)))),12,1); tree rep.3930000 = (((12,(14,(4,(13,7)))),((3,(2,9)),5)),((10,8),(11,(15,6))),1); tree rep.3940000 = (12,(((4,((14,5),((9,2),3))),(13,7)),(((15,(11,6)),10),8)),1); tree rep.3950000 = (12,(((10,(6,(15,11))),8),(((14,5),(4,(13,7))),((9,2),3))),1); tree rep.3960000 = (12,(((3,(9,2)),((5,14),((7,13),4))),((10,8),((11,15),6))),1); tree rep.3970000 = (((14,((((7,13),4),5),(3,(9,2)))),((8,10),(6,(15,11)))),12,1); tree rep.3980000 = (((5,((((9,2),3),14),((13,7),4))),(10,(8,(11,(6,15))))),12,1); tree rep.3990000 = ((((4,((14,5),(3,(2,9)))),((8,10),((15,11),6))),(7,13)),12,1); tree rep.4000000 = (12,(((((2,9),3),5),(14,(4,(7,13)))),(10,((6,(11,15)),8))),1); tree rep.4010000 = ((((15,6),11),(10,8)),((12,((9,2),3)),((5,14),((13,7),4))),1); tree rep.4020000 = (12,((((15,6),11),(8,10)),(((((2,9),3),(14,5)),4),(7,13))),1); tree rep.4030000 = ((((((9,2),3),((8,10),(11,(15,6)))),(((13,7),4),14)),5),12,1); tree rep.4040000 = (12,(((((11,15),6),10),8),((13,(7,4)),((((9,2),3),14),5))),1); tree rep.4050000 = (((8,(10,((11,15),6))),(5,((4,((2,9),3)),(14,(7,13))))),12,1); tree rep.4060000 = ((((6,(11,15)),(10,8)),(((13,7),14),(((2,9),3),(5,4)))),12,1); tree rep.4070000 = ((((((3,(2,9)),5),((13,7),4)),14),(((15,6),11),(8,10))),12,1); tree rep.4080000 = ((((((2,9),3),5),(14,(4,(13,7)))),12),(((11,(6,15)),8),10),1); tree rep.4090000 = (((((13,(7,4)),(5,14)),(3,(2,9))),(8,(10,((15,11),6)))),12,1); tree rep.4100000 = (((((9,2),3),(5,(14,((7,13),4)))),((6,(11,15)),(10,8))),12,1); tree rep.4110000 = ((((10,8),(11,(6,15))),((3,(9,2)),((4,(14,(13,7))),5))),12,1); tree rep.4120000 = (((((9,2),3),(((4,14),(7,13)),5)),(10,(8,((15,6),11)))),12,1); tree rep.4130000 = ((((10,8),(11,(6,15))),12),((3,5),((9,2),((7,13),(4,14)))),1); tree rep.4140000 = (12,((4,((14,(7,13)),(5,((9,2),3)))),((8,10),((15,11),6))),1); tree rep.4150000 = (((10,(8,((6,15),11))),((5,((14,4),(7,13))),((9,2),3))),12,1); tree rep.4160000 = (12,((5,(((9,2),3),((4,14),(13,7)))),(((6,(15,11)),10),8)),1); tree rep.4170000 = (12,(((((9,2),3),((14,(7,13)),5)),4),(((15,11),6),(8,10))),1); tree rep.4180000 = (12,(((5,(3,(9,2))),((4,14),(7,13))),(10,(((15,6),11),8))),1); tree rep.4190000 = (((((15,6),11),(8,10)),12),((5,(3,(2,9))),((13,7),(4,14))),1); tree rep.4200000 = ((((8,(6,(15,11))),10),(((3,(2,9)),((7,13),(14,4))),5)),12,1); tree rep.4210000 = (((((11,15),6),8),10),((((((13,7),14),4),5),(3,(2,9))),12),1); tree rep.4220000 = ((((7,13),4),(((5,((10,8),((6,15),11))),(3,(2,9))),14)),12,1); tree rep.4230000 = (((((11,15),6),(10,8)),12),(4,((5,((7,14),13)),((2,9),3))),1); tree rep.4240000 = ((((14,((7,13),4)),5),((9,2),3)),(((((11,15),6),8),10),12),1); tree rep.4250000 = (((((15,6),11),(10,8)),(((4,(3,(2,9))),(14,(7,13))),5)),12,1); tree rep.4260000 = ((((3,(2,9)),(4,(14,((13,7),5)))),((10,8),((15,6),11))),12,1); tree rep.4270000 = (5,((((11,(6,15)),(10,8)),(((13,7),4),14)),(12,((9,2),3))),1); tree rep.4280000 = (((10,((15,6),11)),8),(12,((5,(((2,9),3),(4,14))),(7,13))),1); tree rep.4290000 = ((12,(10,8)),(((15,6),11),((5,((14,(13,7)),4)),((9,2),3))),1); tree rep.4300000 = (12,(((((9,(3,2)),4),(7,13)),(14,5)),(10,((15,(6,11)),8))),1); tree rep.4310000 = (12,(((((13,7),4),14),(5,(3,(9,2)))),((10,((15,11),6)),8)),1); tree rep.4320000 = (((10,(8,(6,(15,11)))),(4,(((13,7),((2,9),(14,5))),3))),12,1); tree rep.4330000 = (((10,(((15,6),11),8)),(((13,7),4),((14,5),(3,(9,2))))),12,1); tree rep.4340000 = (((12,(5,(((4,14),(7,13)),(3,(9,2))))),(10,(11,(15,6)))),8,1); tree rep.4350000 = (12,((14,((13,7),4)),((((6,15),11),(10,8)),(((9,2),3),5))),1); tree rep.4360000 = ((((10,8),(6,(15,11))),(((7,(13,14)),4),(5,(3,(2,9))))),12,1); tree rep.4370000 = ((((((2,9),3),((14,4),(13,7))),5),((8,(6,(15,11))),10)),12,1); tree rep.4380000 = (((((9,2),3),(5,((7,13),(4,14)))),(8,(10,(6,(15,11))))),12,1); tree rep.4390000 = (((10,(8,(11,(6,15)))),(((14,(4,(7,13))),(3,(2,9))),5)),12,1); tree rep.4400000 = ((10,((11,(15,6)),8)),(12,(((5,14),(4,(7,13))),(3,(9,2)))),1); tree rep.4410000 = ((((((11,15),6),(10,8)),((((13,7),(9,2)),5),(3,4))),12),14,1); tree rep.4420000 = ((12,(((5,(9,2)),((14,4),(7,13))),3)),((10,8),((15,11),6)),1); tree rep.4430000 = ((((11,(15,6)),(8,10)),(14,(5,((3,(2,9)),(4,(13,7)))))),12,1); tree rep.4440000 = (12,((((7,13),4),((14,5),((2,9),3))),(10,(8,((11,15),6)))),1); tree rep.4450000 = (12,(((((7,13),4),((2,9),3)),(5,14)),((11,(6,15)),(10,8))),1); tree rep.4460000 = (((10,8),((11,(6,15)),12)),((((7,13),4),14),(5,(9,(3,2)))),1); tree rep.4470000 = (12,((((11,15),6),(10,8)),((5,((14,(7,13)),4)),((2,9),3))),1); tree rep.4480000 = (((8,10),((6,15),11)),(12,(((5,14),((7,13),4)),(3,(2,9)))),1); tree rep.4490000 = (((((2,9),3),((8,10),((15,6),11))),((5,(14,4)),(13,7))),12,1); tree rep.4500000 = ((((8,((6,11),15)),10),((14,((((9,2),3),5),(13,7))),4)),12,1); tree rep.4510000 = ((5,(12,((2,9),3))),((((6,15),11),(10,8)),(14,((13,7),4))),1); tree rep.4520000 = (((8,(10,(6,(15,11)))),(((5,((((9,2),13),7),14)),4),3)),12,1); tree rep.4530000 = (((15,6),11),(12,((((((9,2),3),(14,(4,(13,7)))),5),8),10)),1); tree rep.4540000 = (12,((((((((2,9),3),5),((13,7),4)),14),10),8),((6,15),11)),1); tree rep.4550000 = (12,(((((2,9),5),3),((13,7),(14,4))),(((6,15),11),(10,8))),1); tree rep.4560000 = (((((2,9),3),((4,(13,7)),(14,5))),((10,(6,(15,11))),8)),12,1); tree rep.4570000 = ((((10,(8,(6,(15,11)))),((2,9),(3,12))),5),(14,(4,(7,13))),1); tree rep.4580000 = (((((14,((13,7),4)),5),(3,(9,2))),((8,(6,(15,11))),10)),12,1); tree rep.4590000 = (12,(((5,14),((3,(9,2)),((7,13),4))),(((15,6),11),(8,10))),1); tree rep.4600000 = (12,((((3,(2,9)),((13,7),(4,14))),5),((15,(11,6)),(10,8))),1); tree rep.4610000 = ((((7,(13,4)),((8,10),((15,11),6))),((5,((2,9),3)),14)),12,1); tree rep.4620000 = (((10,(((6,11),15),8)),((5,((9,2),3)),((4,14),(7,13)))),12,1); tree rep.4630000 = ((((5,((4,((13,7),(3,(9,2)))),14)),((11,15),6)),(8,10)),12,1); tree rep.4640000 = (((10,8),(6,(15,11))),(5,(14,(((7,13),4),(((9,2),3),12)))),1); tree rep.4650000 = (((7,13),(((((((11,15),6),(8,10)),5),(2,(9,3))),4),14)),12,1); tree rep.4660000 = ((((2,9),3),(((14,(7,(13,4))),5),((6,(15,11)),(8,10)))),12,1); tree rep.4670000 = (12,(((3,(2,9)),(((7,13),4),(5,14))),((10,((15,6),11)),8)),1); tree rep.4680000 = (((((9,2),3),(5,(14,((7,4),13)))),((10,(11,(15,6))),8)),12,1); tree rep.4690000 = (12,(((14,5),(((13,7),4),(3,(2,9)))),((8,((6,15),11)),10)),1); tree rep.4700000 = (12,((10,(((15,11),6),8)),((4,(13,7)),((5,14),((2,9),3)))),1); tree rep.4710000 = (((10,(((6,15),11),8)),12),((3,(2,9)),((((13,4),7),14),5)),1); tree rep.4720000 = (12,(((((4,(7,13)),14),5),((2,9),3)),((6,(11,15)),(10,8))),1); tree rep.4730000 = (12,((8,((11,(15,6)),10)),(5,((3,(9,2)),((4,(13,7)),14)))),1); tree rep.4740000 = (12,(((11,(6,15)),(8,10)),((5,((14,4),(7,13))),(3,(2,9)))),1); tree rep.4750000 = (12,((((2,9),3),(((13,7),4),(5,14))),(((15,11),6),(8,10))),1); tree rep.4760000 = (((((15,6),11),(8,10)),(((14,5),((13,7),4)),(3,(2,9)))),12,1); tree rep.4770000 = (((14,((13,7),4)),(((2,9),3),5)),(12,((10,(6,(15,11))),8)),1); tree rep.4780000 = (((((10,8),(((13,7),4),(5,(11,(6,15))))),14),(3,(9,2))),12,1); tree rep.4790000 = ((((3,(2,9)),((13,7),4)),(14,5)),(12,((10,(6,(15,11))),8)),1); tree rep.4800000 = ((((((3,(9,2)),((7,13),4)),14),5),((10,(11,(15,6))),8)),12,1); tree rep.4810000 = (12,((((11,15),6),(10,8)),((((3,(2,9)),((7,13),4)),14),5)),1); tree rep.4820000 = (12,(((8,(6,(15,11))),10),(((2,9),3),((4,(7,13)),(14,5)))),1); tree rep.4830000 = (12,(5,((((8,10),(11,(6,15))),(14,(13,(7,4)))),((9,2),3))),1); tree rep.4840000 = (((10,(((11,6),15),8)),(((14,5),((7,13),4)),(3,(2,9)))),12,1); tree rep.4850000 = (12,((((4,(13,7)),(14,5)),((9,2),3)),((10,(11,(6,15))),8)),1); tree rep.4860000 = (((((3,(9,2)),5),((14,4),(13,7))),((((6,15),11),8),10)),12,1); tree rep.4870000 = ((((((10,8),((6,11),15)),((9,2),3)),(4,(14,(7,13)))),5),12,1); tree rep.4880000 = ((((8,10),(11,(6,15))),(5,((((4,7),13),14),((2,9),3)))),12,1); tree rep.4890000 = ((((((9,2),14),(3,(5,4))),(7,13)),((10,8),(6,(15,11)))),12,1); tree rep.4900000 = (((10,((15,6),11)),8),(12,((((2,9),(14,(4,(13,7)))),3),5)),1); tree rep.4910000 = ((((((15,11),6),10),8),((4,((7,13),14)),((3,(9,2)),5))),12,1); tree rep.4920000 = (((8,10),((15,11),6)),((((7,13),(14,4)),(((9,2),3),5)),12),1); tree rep.4930000 = (((14,((5,(3,(9,2))),(4,(13,7)))),(10,(((6,15),11),8))),12,1); tree rep.4940000 = (12,((((14,4),(7,13)),((8,10),(6,(11,15)))),(((9,2),3),5)),1); tree rep.4950000 = (12,((((15,6),11),(8,10)),((3,(((4,(7,13)),14),5)),(2,9))),1); tree rep.4960000 = (12,((8,(10,((15,6),11))),(((3,(9,2)),5),(((7,13),4),14))),1); tree rep.4970000 = ((3,(9,2)),(((5,14),((6,(11,15)),(10,8))),((13,7),(12,4))),1); tree rep.4980000 = (12,(((3,(2,9)),(5,(((13,7),14),4))),(((11,15),6),(10,8))),1); tree rep.4990000 = (((((6,11),15),(10,8)),12),((3,(((14,(7,13)),4),(2,9))),5),1); tree rep.5000000 = ((((((2,9),3),((10,8),((15,11),6))),(5,14)),(4,(7,13))),12,1); tree rep.5010000 = (((((((4,(7,13)),14),3),(((11,15),6),(8,10))),(2,9)),5),12,1); tree rep.5020000 = (((((2,9),3),(4,(5,((13,7),14)))),(8,(10,(11,(6,15))))),12,1); tree rep.5030000 = ((((6,(15,11)),(10,8)),((14,5),(((7,13),4),(3,(2,9))))),12,1); tree rep.5040000 = (12,(((((13,7),14),5),(4,(3,(2,9)))),(((11,15),6),(10,8))),1); tree rep.5050000 = ((4,(((3,(2,9)),(7,13)),((5,(8,(10,((15,11),6)))),14))),12,1); tree rep.5060000 = ((((4,(14,(7,13))),(((2,9),3),5)),((8,10),(11,(6,15)))),12,1); tree rep.5070000 = ((((((15,11),6),(10,8)),(3,(9,2))),((13,7),((5,14),4))),12,1); tree rep.5080000 = (12,(10,((((15,11),6),(((3,(9,2)),14),((4,(13,7)),5))),8)),1); tree rep.5090000 = ((((8,10),((15,6),11)),((4,((13,7),14)),((3,(9,2)),5))),12,1); tree rep.5100000 = (((((6,15),11),(10,8)),((5,14),((4,(7,13)),((2,9),3)))),12,1); tree rep.5110000 = ((((((13,7),4),14),(((2,9),3),5)),((((15,11),6),8),10)),12,1); tree rep.5120000 = (12,((((14,4),(7,13)),((3,(9,2)),5)),(((11,15),6),(10,8))),1); tree rep.5130000 = (12,(((5,((9,2),3)),(4,((13,7),14))),(10,((11,(15,6)),8))),1); tree rep.5140000 = (((10,((6,(11,15)),8)),(5,((3,(9,2)),((4,14),(13,7))))),12,1); tree rep.5150000 = ((((((15,6),11),10),8),((((13,7),4),((9,2),3)),(14,5))),12,1); tree rep.5160000 = ((((3,((((7,13),4),14),5)),(9,2)),(8,(((15,11),6),10))),12,1); tree rep.5170000 = ((((7,13),((5,(4,14)),((9,2),3))),((10,((6,15),11)),8)),12,1); tree rep.5180000 = ((((((9,2),3),((4,(13,7)),14)),5),(10,(8,((15,6),11)))),12,1); tree rep.5190000 = ((12,(8,(((15,6),11),10))),(((9,2),3),((14,((13,7),4)),5)),1); tree rep.5200000 = (((((7,13),(4,14)),(5,(3,(9,2)))),((8,(6,(15,11))),10)),12,1); tree rep.5210000 = (12,((10,(8,(6,(15,11)))),((3,(9,2)),(5,(4,((13,7),14))))),1); tree rep.5220000 = ((((((4,(7,13)),((9,2),3)),14),5),(((11,6),15),(8,10))),12,1); tree rep.5230000 = (12,(((8,(11,(6,15))),10),(((4,(13,7)),(14,5)),(3,(9,2)))),1); tree rep.5240000 = ((((((4,(13,7)),14),(3,(9,2))),5),(10,(8,((6,15),11)))),12,1); tree rep.5250000 = ((12,((10,8),(6,(11,15)))),(((14,4),((13,7),5)),(3,(9,2))),1); tree rep.5260000 = (12,(((8,10),(11,(15,6))),((14,((4,(13,7)),((9,2),3))),5)),1); tree rep.5270000 = (12,((14,(((2,9),3),(((7,13),4),5))),((8,(11,(6,15))),10)),1); tree rep.5280000 = (((((6,15),11),(10,8)),(((14,5),(4,(7,13))),((2,9),3))),12,1); tree rep.5290000 = (((((13,7),(14,4)),(((2,9),3),5)),(((6,15),11),(8,10))),12,1); tree rep.5300000 = ((14,(13,7)),((4,(((2,9),3),5)),(12,((8,((6,11),15)),10))),1); tree rep.5310000 = (12,(((10,8),(6,(15,11))),(5,(((3,2),9),(14,(4,(7,13)))))),1); tree rep.5320000 = (12,((((9,2),3),((4,5),(14,(13,7)))),(8,(10,(11,(15,6))))),1); tree rep.5330000 = ((((((7,13),4),(5,14)),(3,(9,2))),((15,(6,11)),(8,10))),12,1); tree rep.5340000 = ((((((13,7),4),14),(5,(3,(9,2)))),((8,(6,(15,11))),10)),12,1); tree rep.5350000 = ((((4,(13,7)),((5,14),((2,9),3))),((8,(11,(6,15))),10)),12,1); tree rep.5360000 = (((((6,15),11),(10,8)),((3,(2,9)),(((14,(13,7)),4),5))),12,1); tree rep.5370000 = ((((8,10),(11,(15,6))),(((((7,13),4),14),((9,2),3)),5)),12,1); tree rep.5380000 = ((((5,(((7,13),4),14)),(3,(9,2))),(((6,(11,15)),8),10)),12,1); tree rep.5390000 = (((5,((3,(9,2)),((4,(13,7)),14))),(8,(10,((15,11),6)))),12,1); tree rep.5400000 = (12,(((7,13),((14,5),(((2,9),3),4))),((8,10),((15,6),11))),1); tree rep.5410000 = (12,((((2,9),3),((((13,7),4),14),5)),(10,(((11,6),15),8))),1); tree rep.5420000 = (12,((5,(((13,(4,7)),14),(3,(2,9)))),(10,((11,(15,6)),8))),1); tree rep.5430000 = (12,(((3,(((4,(7,13)),(2,9)),14)),5),((10,(6,(15,11))),8)),1); tree rep.5440000 = (((10,(8,(11,(6,15)))),(((5,(3,(9,2))),(4,(13,7))),14)),12,1); tree rep.5450000 = ((((10,(6,(11,15))),8),((14,5),(((2,9),3),((7,4),13)))),12,1); tree rep.5460000 = ((((2,9),3),((((6,(15,11)),(10,8)),5),(((13,7),4),14))),12,1); tree rep.5470000 = (12,(((5,(14,((7,13),4))),(3,(2,9))),(((6,15),11),(10,8))),1); tree rep.5480000 = ((8,(10,(11,(6,15)))),(12,(5,(((2,9),3),(((7,13),4),14)))),1); tree rep.5490000 = (((((6,15),11),(10,8)),(((((7,13),4),14),5),(3,(9,2)))),12,1); tree rep.5500000 = ((5,((14,((9,2),3)),(4,(13,7)))),((8,((6,(11,15)),10)),12),1); tree rep.5510000 = ((12,((((4,(13,7)),14),((9,2),3)),5)),((10,((6,15),11)),8),1); tree rep.5520000 = ((12,((10,(6,(15,11))),8)),(((14,(4,(7,13))),5),(3,(9,2))),1); tree rep.5530000 = (12,(((3,(9,2)),((13,7),(4,(5,14)))),(((6,15),11),(10,8))),1); tree rep.5540000 = (12,((8,(10,(6,(11,15)))),(((4,(7,13)),(3,(9,2))),(5,14))),1); tree rep.5550000 = (((((15,(11,6)),8),10),(5,((14,((7,13),4)),((9,2),3)))),12,1); tree rep.5560000 = (12,(((14,5),(((7,13),4),((9,2),3))),((((6,15),11),8),10)),1); tree rep.5570000 = (((((2,9),3),((5,14),(4,(13,7)))),(((15,6),11),(8,10))),12,1); tree rep.5580000 = (((((4,((13,7),14)),(3,(9,2))),5),((((11,6),15),8),10)),12,1); tree rep.5590000 = (12,(((((5,((8,10),(11,(6,15)))),9),(2,3)),14),((7,13),4)),1); tree rep.5600000 = (12,(((10,8),((15,6),11)),((((3,5),14),(2,9)),((13,7),4))),1); tree rep.5610000 = (12,((((((((8,10),((6,11),15)),14),(13,7)),4),5),(2,9)),3),1); tree rep.5620000 = (12,((8,(10,((11,15),6))),(4,((13,7),((3,(9,2)),(14,5))))),1); tree rep.5630000 = (12,((5,(((2,9),3),((4,(13,7)),14))),((11,(6,15)),(10,8))),1); tree rep.5640000 = (((((3,(9,2)),((14,((7,13),4)),5)),(11,(6,15))),(8,10)),12,1); tree rep.5650000 = (12,(((3,(8,(10,((15,6),11)))),(((4,(7,13)),(2,9)),14)),5),1); tree rep.5660000 = (12,((((2,9),3),((7,(13,4)),(5,14))),((10,(11,(6,15))),8)),1); tree rep.5670000 = (((((11,(6,15)),(10,8)),(5,14)),(((2,9),3),(4,(7,13)))),12,1); tree rep.5680000 = (((((15,11),6),(10,8)),(4,((7,13),((3,(2,9)),(5,14))))),12,1); tree rep.5690000 = (12,((((15,11),6),(8,10)),((5,(14,((7,13),4))),(3,(9,2)))),1); tree rep.5700000 = (((((6,15),11),(10,8)),(5,(((9,2),3),(4,(14,(7,13)))))),12,1); tree rep.5710000 = (12,((8,(10,((11,15),6))),((5,4),(((7,13),14),((2,9),3)))),1); tree rep.5720000 = (((((15,11),6),(8,10)),12),(((2,9),3),((7,13),((5,14),4))),1); tree rep.5730000 = ((((15,(11,6)),(8,10)),(3,((5,((13,7),(4,14))),(2,9)))),12,1); tree rep.5740000 = (12,(((8,10),((15,11),6)),((((2,9),3),5),(14,((7,13),4)))),1); tree rep.5750000 = (12,((((4,((7,13),((2,9),3))),14),5),(((15,11),6),(8,10))),1); tree rep.5760000 = (((((2,9),3),((7,13),((5,14),4))),(8,((11,(15,6)),10))),12,1); tree rep.5770000 = ((((2,9),3),(((5,(13,7)),(4,14)),((((6,15),11),10),8))),12,1); tree rep.5780000 = (((10,8),((15,6),11)),(12,((((4,14),(7,13)),(3,(9,2))),5)),1); tree rep.5790000 = (((((9,2),3),((14,(4,(7,13))),5)),((((6,15),11),10),8)),12,1); tree rep.5800000 = (((3,(2,9)),(12,(((7,13),(4,14)),(((6,(15,11)),8),10)))),5,1); tree rep.5810000 = (12,(((11,(15,6)),(((((7,13),14),4),((3,5),(2,9))),8)),10),1); tree rep.5820000 = ((((3,(9,2)),((10,8),(11,(15,6)))),(5,((4,(7,13)),14))),12,1); tree rep.5830000 = (12,(((3,(9,2)),((4,(14,(13,7))),5)),(((11,(15,6)),8),10)),1); tree rep.5840000 = (12,(((10,(6,(11,15))),8),((4,((13,7),14)),(5,((9,2),3)))),1); tree rep.5850000 = (12,(((11,(6,15)),(8,10)),((4,(7,13)),((14,5),(2,(9,3))))),1); tree rep.5860000 = (12,(((4,((14,5),(7,13))),((9,2),3)),((11,(15,6)),(10,8))),1); tree rep.5870000 = (12,((14,(9,2)),((5,3),(((10,8),((15,6),11)),((7,13),4)))),1); tree rep.5880000 = ((12,((3,(9,2)),((((7,13),14),4),5))),(((11,(6,15)),8),10),1); tree rep.5890000 = (((((11,15),6),8),10),(12,((((13,7),4),14),(5,(3,(9,2))))),1); tree rep.5900000 = (((3,(2,9)),(5,(4,((7,13),14)))),(12,((10,8),((15,6),11))),1); tree rep.5910000 = (12,(((5,((13,7),(14,4))),((2,9),3)),((8,10),((15,11),6))),1); tree rep.5920000 = ((((15,(11,6)),(8,10)),12),((((13,7),14),((3,(2,9)),5)),4),1); tree rep.5930000 = (((3,(2,9)),((4,((7,13),14)),(5,((11,(15,6)),(10,8))))),12,1); tree rep.5940000 = (12,(((13,7),4),((3,(2,9)),(((10,8),((11,15),6)),(5,14)))),1); tree rep.5950000 = (12,(((((6,15),11),8),10),(((4,14),(7,13)),((3,(9,2)),5))),1); tree rep.5960000 = (12,(((5,(14,(4,(13,7)))),((2,9),3)),((10,8),(11,(15,6)))),1); tree rep.5970000 = ((14,((5,((9,2),(((8,((15,6),11)),10),12))),3)),(13,(7,4)),1); tree rep.5980000 = (12,(((((9,2),3),5),(14,((7,13),4))),((((15,11),6),8),10)),1); tree rep.5990000 = ((((8,10),(6,(15,11))),(((14,(9,2)),(5,3)),(4,(13,7)))),12,1); tree rep.6000000 = ((((5,((9,2),3)),(14,(4,(13,7)))),12),((10,8),(11,(15,6))),1); tree rep.6010000 = ((((4,(13,7)),((9,2),3)),(14,5)),((((15,11),6),(8,10)),12),1); tree rep.6020000 = ((10,(8,(6,(15,11)))),((((3,(2,9)),((4,(7,13)),5)),14),12),1); tree rep.6030000 = (12,((((2,9),3),((14,5),(4,(7,13)))),((8,10),(6,(15,11)))),1); tree rep.6040000 = (12,((((15,(6,11)),10),8),((((13,7),4),(3,(2,9))),(5,14))),1); tree rep.6050000 = ((((6,(15,11)),(8,10)),(((13,7),(14,4)),((3,(2,9)),5))),12,1); tree rep.6060000 = ((((8,(11,(15,6))),10),((((2,9),3),(5,14)),(13,(4,7)))),12,1); tree rep.6070000 = (12,((((4,(14,5)),(13,7)),((9,2),3)),((8,10),(11,(6,15)))),1); tree rep.6080000 = (12,(((10,8),(11,(15,6))),(((9,2),3),((14,5),(4,(13,7))))),1); tree rep.6090000 = (12,(((((2,9),3),(14,4)),((13,7),5)),(((11,15),6),(10,8))),1); tree rep.6100000 = ((((((8,(10,(11,(15,6)))),3),(12,(9,2))),(4,(7,13))),14),5,1); tree rep.6110000 = (((8,10),(11,(15,6))),(((((9,2),3),((12,14),4)),(7,13)),5),1); tree rep.6120000 = (((5,((3,(9,2)),(14,(4,(13,7))))),(8,((6,(15,11)),10))),12,1); tree rep.6130000 = (((12,((14,((13,7),4)),5)),((9,2),3)),(((11,15),6),(10,8)),1); tree rep.6140000 = (((8,(10,((15,11),6))),(5,((3,(9,2)),(14,(4,(13,7)))))),12,1); tree rep.6150000 = ((((10,(11,(15,6))),8),((5,(((7,13),4),14)),((2,9),3))),12,1); tree rep.6160000 = (12,(((8,((15,6),11)),10),(((14,5),((2,9),3)),((13,7),4))),1); tree rep.6170000 = (12,(((((2,9),3),(14,(4,(13,7)))),5),((10,8),((11,15),6))),1); tree rep.6180000 = ((((3,(9,2)),((((13,7),4),14),5)),((11,(6,15)),(10,8))),12,1); tree rep.6190000 = ((((((10,8),(11,(6,15))),((2,9),3)),(7,(13,4))),(14,5)),12,1); tree rep.6200000 = (12,(((10,8),((15,6),11)),((14,(4,(13,7))),(((9,2),3),5))),1); tree rep.6210000 = (((5,(((2,9),3),((7,13),(14,4)))),(10,(8,(15,(6,11))))),12,1); tree rep.6220000 = (((((13,7),4),((5,14),((2,9),3))),(((11,15),6),(10,8))),12,1); tree rep.6230000 = (12,(((5,((3,(2,9)),14)),(8,((6,(15,11)),10))),(4,(13,7))),1); tree rep.6240000 = (12,(((((2,9),3),((14,(7,4)),13)),5),((8,10),((15,11),6))),1); tree rep.6250000 = (((((15,6),11),10),8),((12,(3,(2,9))),(5,((14,(13,7)),4))),1); tree rep.6260000 = (12,(((3,(9,2)),(((4,(7,13)),14),5)),((((15,6),11),8),10)),1); tree rep.6270000 = ((((((6,11),15),8),10),(((4,((9,2),3)),((13,7),14)),5)),12,1); tree rep.6280000 = (((((15,6),11),(8,10)),12),(((3,(9,2)),((4,(13,7)),14)),5),1); tree rep.6290000 = (((((14,4),((9,2),3)),((7,13),5)),12),(10,(8,((15,11),6))),1); tree rep.6300000 = (12,((5,(((4,13),7),14)),((3,(9,2)),((8,10),(11,(15,6))))),1); tree rep.6310000 = (12,((((11,(15,6)),(10,8)),(14,(((13,7),4),((9,2),3)))),5),1); tree rep.6320000 = (12,(((((2,9),3),5),((4,(7,13)),14)),((10,8),(15,(6,11)))),1); tree rep.6330000 = ((10,8),(((5,(3,(9,2))),(12,((4,(13,7)),14))),(6,(11,15))),1); tree rep.6340000 = ((((10,(11,(6,15))),8),((5,((13,7),(4,14))),((2,9),3))),12,1); tree rep.6350000 = (12,((((13,7),(14,((3,(2,9)),4))),5),((8,10),(6,(15,11)))),1); tree rep.6360000 = ((((8,(11,(6,15))),10),((14,((7,13),4)),(5,(3,(2,9))))),12,1); tree rep.6370000 = ((((((7,13),4),(3,(9,2))),(14,5)),(((6,(15,11)),8),10)),12,1); tree rep.6380000 = ((8,((6,(15,11)),10)),(((14,((13,7),4)),((3,(9,2)),5)),12),1); tree rep.6390000 = ((((6,(15,11)),(10,8)),(((3,(2,9)),((13,7),4)),(5,14))),12,1); tree rep.6400000 = (((((13,7),4),14),(5,(3,(2,9)))),((((11,(15,6)),10),8),12),1); tree rep.6410000 = (12,((10,(8,((11,6),15))),(((14,(4,(7,13))),5),((2,9),3))),1); tree rep.6420000 = (12,(((5,(4,((7,13),14))),((9,2),3)),((((15,11),6),8),10)),1); tree rep.6430000 = ((((10,((11,15),6)),8),(3,((9,2),((4,(13,7)),(14,5))))),12,1); tree rep.6440000 = (((8,(10,((15,6),11))),(5,(3,(14,(((13,7),4),(9,2)))))),12,1); tree rep.6450000 = (12,(((14,4),(((7,13),5),((9,2),3))),(((6,15),11),(8,10))),1); tree rep.6460000 = ((((((13,7),4),((3,(2,9)),5)),14),(10,(8,((6,15),11)))),12,1); tree rep.6470000 = (12,(((6,(15,11)),(10,8)),(((13,7),(4,(14,5))),((2,9),3))),1); tree rep.6480000 = ((((3,(2,9)),((14,5),(4,(7,13)))),((6,(11,15)),(10,8))),12,1); tree rep.6490000 = ((((3,(2,9)),(((4,14),(13,7)),5)),((10,8),(11,(15,6)))),12,1); tree rep.6500000 = (((8,10),((15,6),11)),(5,((14,((13,7),4)),(12,(3,(9,2))))),1); tree rep.6510000 = (((8,((6,(11,15)),10)),(((9,2),3),((14,5),((7,13),4)))),12,1); tree rep.6520000 = ((((((9,2),3),5),((14,4),(13,7))),((8,((11,15),6)),10)),12,1); tree rep.6530000 = (12,((((3,(9,2)),(14,(4,(13,7)))),5),(8,(10,((6,15),11)))),1); tree rep.6540000 = (12,((5,(((13,7),(14,4)),(3,(9,2)))),(((11,(15,6)),8),10)),1); tree rep.6550000 = ((8,(10,((15,6),11))),(12,(5,((((7,13),14),4),((9,2),3)))),1); tree rep.6560000 = (12,(((6,(11,15)),(8,10)),(((13,7),(14,4)),(5,((9,2),3)))),1); tree rep.6570000 = (((((6,15),11),(10,8)),12),((14,5),((4,(7,13)),(3,(9,2)))),1); tree rep.6580000 = ((((8,10),((15,11),6)),12),((14,4),((7,13),(5,(3,(9,2))))),1); tree rep.6590000 = (12,(((5,(3,(9,2))),(14,((7,13),4))),((8,10),((11,15),6))),1); tree rep.6600000 = (12,((((6,(11,15)),10),8),(((13,7),(4,(5,14))),((9,2),3))),1); tree rep.6610000 = (12,((((11,15),6),(8,10)),(5,((14,(4,(13,7))),((9,2),3)))),1); tree rep.6620000 = (((((((2,9),3),14),(4,(13,7))),5),((8,10),(6,(15,11)))),12,1); tree rep.6630000 = ((12,((10,8),(11,(6,15)))),(((14,(9,2)),((4,(13,7)),5)),3),1); tree rep.6640000 = ((12,((8,(6,(11,15))),10)),(5,((14,(4,(13,7))),((9,2),3))),1); tree rep.6650000 = ((((8,10),(6,(11,15))),(((14,5),((7,13),4)),(3,(2,9)))),12,1); tree rep.6660000 = ((((6,(15,11)),(10,8)),(((5,(4,(7,13))),14),(3,(2,9)))),12,1); tree rep.6670000 = ((((12,((8,((15,11),6)),10)),5),((9,2),3)),(4,((7,13),14)),1); tree rep.6680000 = (12,((((15,6),11),(10,8)),(((4,(14,(7,13))),((9,2),3)),5)),1); tree rep.6690000 = ((((6,(11,15)),(8,10)),((3,(9,2)),((((13,7),14),4),5))),12,1); tree rep.6700000 = (12,(((11,(6,15)),(8,10)),((((2,9),3),5),(4,(14,(7,13))))),1); tree rep.6710000 = (12,((10,((15,11),6)),(8,((((13,7),4),(3,(9,2))),(14,5)))),1); tree rep.6720000 = ((14,((((9,2),3),5),((13,7),4))),((((15,6),11),(8,10)),12),1); tree rep.6730000 = ((((10,8),((11,15),6)),((((2,9),3),((14,4),5)),(7,13))),12,1); tree rep.6740000 = (((((13,7),(14,4)),(3,(9,2))),5),(12,((8,10),(11,(15,6)))),1); tree rep.6750000 = ((((14,((9,2),3)),((4,(7,13)),5)),(8,(((6,15),11),10))),12,1); tree rep.6760000 = (12,(((((9,2),(14,5)),((7,13),4)),3),(10,(((15,6),11),8))),1); tree rep.6770000 = (((((((11,15),6),(8,10)),5),(3,(9,2))),(14,((7,13),4))),12,1); tree rep.6780000 = (((10,8),(11,(6,15))),((5,(((2,9),3),(4,(14,(13,7))))),12),1); tree rep.6790000 = (((((3,(2,9)),(((13,7),14),4)),5),((10,(11,(6,15))),8)),12,1); tree rep.6800000 = ((((8,10),(11,(15,6))),((((2,9),3),((13,7),5)),(4,14))),12,1); tree rep.6810000 = (12,(((8,(11,(15,6))),10),((((14,(9,2)),((7,13),4)),5),3)),1); tree rep.6820000 = ((8,(((15,6),11),10)),(12,((13,7),(((5,(3,(9,2))),14),4))),1); tree rep.6830000 = (12,(((((11,15),6),8),10),((14,5),(((7,13),((2,9),4)),3))),1); tree rep.6840000 = ((((8,(11,(15,6))),10),((5,(((2,9),3),(4,14))),(7,13))),12,1); tree rep.6850000 = (((((10,8),(6,(11,15))),4),(((7,13),(((2,9),3),12)),14)),5,1); tree rep.6860000 = (12,(((((4,((7,13),14)),3),(9,2)),5),(((15,(11,6)),8),10)),1); tree rep.6870000 = (12,(((6,(15,11)),((9,2),((14,(((13,7),4),3)),5))),(10,8)),1); tree rep.6880000 = (12,((((6,15),11),(8,10)),((3,(9,2)),(5,(14,(4,(13,7)))))),1); tree rep.6890000 = (((((6,(15,11)),8),10),((((7,13),14),5),(4,((2,3),9)))),12,1); tree rep.6900000 = ((((8,10),(15,(11,6))),(3,((4,((9,2),((7,13),14))),5))),12,1); tree rep.6910000 = (12,(((8,(11,(6,15))),10),((3,(9,2)),(((13,7),(4,14)),5))),1); tree rep.6920000 = ((((((6,15),11),10),8),(((2,9),(((5,(13,7)),4),3)),14)),12,1); tree rep.6930000 = ((5,(((8,10),(11,(6,15))),((((13,7),4),14),(3,(2,9))))),12,1); tree rep.6940000 = (12,((5,((14,(4,(7,13))),(3,(2,9)))),((6,(11,15)),(10,8))),1); tree rep.6950000 = (12,((((2,9),3),(14,((4,(7,13)),5))),(8,(((15,6),11),10))),1); tree rep.6960000 = ((((8,10),(6,(15,11))),(((5,14),(3,(9,2))),((7,13),4))),12,1); tree rep.6970000 = (((((11,(6,15)),8),10),(((9,2),3),((4,(13,7)),(5,14)))),12,1); tree rep.6980000 = (12,(((14,((2,9),(3,5))),((7,13),4)),((8,10),(15,(11,6)))),1); tree rep.6990000 = (12,((8,((6,(11,15)),10)),((5,14),(((4,13),7),((9,2),3)))),1); tree rep.7000000 = ((((8,10),((3,(2,9)),(5,((7,13),(4,14))))),(6,(11,15))),12,1); tree rep.7010000 = ((8,(((3,((((4,7),13),14),(5,(2,9)))),(6,(11,15))),10)),12,1); tree rep.7020000 = ((((14,5),((13,7),4)),((8,(10,(11,(15,6)))),((9,2),3))),12,1); tree rep.7030000 = (12,(((4,((3,(2,9)),(5,14))),(7,13)),(10,(((11,15),6),8))),1); tree rep.7040000 = (((((13,7),(((11,(6,15)),(8,10)),(5,((2,9),3)))),4),14),12,1); tree rep.7050000 = ((((8,10),((15,11),6)),(((3,5),(13,7)),((14,4),(2,9)))),12,1); tree rep.7060000 = (12,((((4,(7,13)),(5,14)),((9,2),3)),((11,(15,6)),(8,10))),1); tree rep.7070000 = (12,(((10,((15,6),11)),8),((((7,13),4),14),(5,(3,(2,9))))),1); tree rep.7080000 = (12,(((8,10),((11,15),6)),(5,(((2,9),3),((4,(13,7)),14)))),1); tree rep.7090000 = ((((6,(15,11)),(10,8)),(5,(((9,2),3),((13,7),(14,4))))),12,1); tree rep.7100000 = (((5,(((9,2),3),(14,((13,7),4)))),(8,(((15,6),11),10))),12,1); tree rep.7110000 = (12,((((6,15),11),(8,10)),((4,((14,5),((2,9),3))),(7,13))),1); tree rep.7120000 = ((5,(((9,2),3),(4,(14,(7,13))))),((((15,11),6),(10,8)),12),1); tree rep.7130000 = ((((11,15),6),(8,10)),((4,(14,(7,13))),((3,(2,9)),(12,5))),1); tree rep.7140000 = (((((4,((7,13),9)),(14,5)),(3,2)),(((15,11),6),(10,8))),12,1); tree rep.7150000 = (((((6,(11,15)),10),8),12),(4,(((9,2),3),((7,13),(14,5)))),1); tree rep.7160000 = (12,((((11,15),6),(8,10)),(((3,(9,2)),(((13,7),4),14)),5)),1); tree rep.7170000 = (((10,((((4,(13,7)),14),(((2,9),3),5)),(6,(15,11)))),8),12,1); tree rep.7180000 = ((14,((13,7),(((10,8),((15,11),6)),((3,(9,2)),(5,4))))),12,1); tree rep.7190000 = (((6,(15,11)),12),(((3,(2,9)),((4,14),5)),((7,13),(10,8))),1); tree rep.7200000 = (((((13,7),5),14),(((10,8),((11,15),6)),(4,((9,2),3)))),12,1); tree rep.7210000 = ((12,((((4,14),(7,13)),5),(3,(2,9)))),((10,8),(11,(6,15))),1); tree rep.7220000 = ((((10,((15,11),6)),8),(((5,((13,7),4)),14),((9,2),3))),12,1); tree rep.7230000 = ((8,(((15,11),6),10)),(12,((((9,2),3),(14,((7,13),4))),5)),1); tree rep.7240000 = ((12,((5,4),((14,(7,13)),((9,2),3)))),(10,((11,(15,6)),8)),1); tree rep.7250000 = ((((3,(9,2)),(((13,7),4),(5,14))),(8,(10,(11,(15,6))))),12,1); tree rep.7260000 = (((((9,2),3),14),(5,((4,7),13))),(12,((8,10),(6,(11,15)))),1); tree rep.7270000 = (((((6,15),11),(10,8)),(14,((13,7),((4,(3,(2,9))),5)))),12,1); tree rep.7280000 = (((10,8),(11,(15,6))),(12,(((14,(7,13)),(4,((9,2),3))),5)),1); tree rep.7290000 = ((((((11,15),6),10),8),((((13,7),(3,(9,2))),4),(14,5))),12,1); tree rep.7300000 = (12,((14,((3,(2,9)),(5,(4,(13,7))))),((((6,15),11),10),8)),1); tree rep.7310000 = (12,(((14,5),(((3,(2,9)),(7,4)),13)),((((6,15),11),10),8)),1); tree rep.7320000 = ((((3,(2,9)),(((7,13),4),(5,14))),((15,(6,11)),(8,10))),12,1); tree rep.7330000 = (((5,((2,9),3)),(((13,7),14),4)),((((11,(15,6)),10),8),12),1); tree rep.7340000 = (12,(4,(((14,(13,7)),(5,((15,(6,11)),(8,10)))),((3,9),2))),1); tree rep.7350000 = (12,(((9,2),3),((5,(((15,6),11),(10,8))),((4,(7,13)),14))),1); tree rep.7360000 = (12,((3,(9,2)),(5,(((4,(13,7)),14),((10,8),(11,(6,15)))))),1); tree rep.7370000 = (12,((((7,13),((9,2),3)),(5,(14,4))),((((6,15),11),8),10)),1); tree rep.7380000 = (12,((((4,((7,13),14)),5),((2,9),3)),(((15,11),6),(8,10))),1); tree rep.7390000 = ((((10,8),((15,6),11)),(14,((4,(13,7)),(5,(3,(9,2)))))),12,1); tree rep.7400000 = (12,(((14,(4,(7,13))),(5,(3,(9,2)))),((8,10),((6,15),11))),1); tree rep.7410000 = (12,((3,(((4,(5,14)),(13,7)),(9,2))),(8,((11,(15,6)),10))),1); tree rep.7420000 = (((((11,6),15),(8,10)),(((2,9),3),((13,7),(5,(14,4))))),12,1); tree rep.7430000 = ((5,(((7,13),(14,4)),((9,2),3))),(12,(8,(10,(11,(15,6))))),1); tree rep.7440000 = ((((5,14),(3,(2,9))),(((((11,15),6),10),8),12)),((4,7),13),1); tree rep.7450000 = (12,(((5,(((7,13),4),14)),((9,2),3)),(((6,15),11),(10,8))),1); tree rep.7460000 = ((((5,((3,(9,2)),(4,(13,7)))),14),(8,(10,(6,(15,11))))),12,1); tree rep.7470000 = ((10,8),(((((4,(13,7)),((12,3),(2,9))),(6,(15,11))),14),5),1); tree rep.7480000 = ((((3,(2,9)),(((4,14),(13,7)),5)),(10,(((15,11),6),8))),12,1); tree rep.7490000 = (12,(5,((((7,13),14),4),(((6,(15,11)),(10,8)),(3,(9,2))))),1); tree rep.7500000 = (((5,(((2,9),3),((14,4),(13,7)))),(((6,(11,15)),10),8)),12,1); tree rep.7510000 = (((((6,(11,15)),8),10),12),(((2,9),3),(((4,(7,13)),5),14)),1); tree rep.7520000 = (12,(((3,(9,2)),(5,(14,((7,13),4)))),((11,(6,15)),(8,10))),1); tree rep.7530000 = (((((6,15),11),(10,8)),((3,(9,2)),(((14,4),(13,7)),5))),12,1); tree rep.7540000 = ((((4,5),(14,(7,13))),((12,3),(2,9))),((8,(11,(15,6))),10),1); tree rep.7550000 = (12,((8,(10,(15,(11,6)))),(5,((((9,2),3),14),(4,(13,7))))),1); tree rep.7560000 = ((((((6,15),11),8),10),(5,(((4,14),(7,13)),(3,(2,9))))),12,1); tree rep.7570000 = (12,(((5,(3,(9,2))),(4,(14,(7,13)))),((11,(6,15)),(10,8))),1); tree rep.7580000 = ((((((11,15),6),8),10),(((7,13),((5,(3,(9,2))),14)),4)),12,1); tree rep.7590000 = ((((6,11),15),(10,8)),(((3,(((14,4),(13,7)),12)),(2,9)),5),1); tree rep.7600000 = (12,((8,(((5,((4,(13,14)),7)),(3,(2,9))),(11,(6,15)))),10),1); tree rep.7610000 = ((5,((3,(9,2)),((4,(14,(7,13))),(((11,(15,6)),10),8)))),12,1); tree rep.7620000 = (12,((10,(((15,6),11),8)),((5,((14,(13,7)),4)),(3,(9,2)))),1); tree rep.7630000 = ((((6,(15,11)),8),10),(12,(((2,9),3),((4,(13,7)),(5,14)))),1); tree rep.7640000 = ((14,((5,(4,(7,13))),(3,(2,9)))),(((8,10),((11,15),6)),12),1); tree rep.7650000 = ((((2,9),((5,3),(14,((7,13),4)))),((8,10),(6,(11,15)))),12,1); tree rep.7660000 = (((((5,3),(4,((7,13),14))),(2,9)),((8,10),(6,(11,15)))),12,1); tree rep.7670000 = (12,((((7,4),13),((((2,9),3),14),5)),((10,(11,(15,6))),8)),1); tree rep.7680000 = (12,((10,((6,(11,15)),8)),(14,((((7,13),4),((2,9),3)),5))),1); tree rep.7690000 = (((((6,(11,15)),10),8),((4,((((9,2),3),5),14)),(7,13))),12,1); tree rep.7700000 = (((((2,9),3),(((10,8),(15,(6,11))),(7,13))),(4,(14,5))),12,1); tree rep.7710000 = (((((15,6),11),(10,8)),((3,(2,9)),(5,(14,(4,(7,13)))))),12,1); tree rep.7720000 = (12,(((7,13),(4,(14,(((9,2),3),5)))),((8,(11,(15,6))),10)),1); tree rep.7730000 = ((((5,(6,(11,15))),(((14,4),(13,7)),((9,2),3))),(8,10)),12,1); tree rep.7740000 = (12,((8,(10,(6,(11,15)))),((4,((5,14),(3,(2,9)))),(13,7))),1); tree rep.7750000 = ((((10,8),(6,(15,11))),((((3,(2,9)),5),14),(4,(13,7)))),12,1); tree rep.7760000 = (12,((((14,(7,13)),((3,(9,2)),5)),4),(((6,(11,15)),8),10)),1); tree rep.7770000 = (5,(4,(((12,((11,(15,6)),(8,10))),(13,7)),(14,((9,2),3)))),1); tree rep.7780000 = (((((9,2),(((11,(15,6)),(10,8)),3)),(14,5)),((7,13),4)),12,1); tree rep.7790000 = (12,(((4,(13,7)),(5,(14,(3,(9,2))))),((((15,6),11),10),8)),1); tree rep.7800000 = (((8,10),(((5,14),(((9,2),3),(13,(4,7)))),(6,(15,11)))),12,1); tree rep.7810000 = (((((6,15),11),8),10),(12,(((9,2),3),(((14,(7,13)),4),5))),1); tree rep.7820000 = ((((9,2),3),(((7,13),(4,14)),((((6,(11,15)),8),10),5))),12,1); tree rep.7830000 = ((8,(((((5,((2,9),3)),14),((4,7),13)),((11,15),6)),10)),12,1); tree rep.7840000 = (12,((((4,(13,7)),14),(((2,9),3),5)),((8,((15,11),6)),10)),1); tree rep.7850000 = (12,((5,(((7,13),4),(14,(3,(2,9))))),(((11,(15,6)),10),8)),1); tree rep.7860000 = ((12,(3,((2,9),(14,((13,7),(5,4)))))),((10,(11,(6,15))),8),1); tree rep.7870000 = (((10,(((6,15),11),8)),(((9,2),3),(5,((14,4),(7,13))))),12,1); tree rep.7880000 = (12,(((9,2),3),((((((15,11),6),8),10),((5,14),(7,13))),4)),1); tree rep.7890000 = (((5,((((13,7),14),4),((9,2),3))),12),(10,(8,(6,(15,11)))),1); tree rep.7900000 = ((((12,(14,5)),((9,2),3)),((13,7),4)),((8,10),(11,(15,6))),1); tree rep.7910000 = (((3,((9,2),((14,5),(4,(7,13))))),(((6,(11,15)),10),8)),12,1); tree rep.7920000 = ((12,((10,8),(11,(15,6)))),((5,(14,((13,7),(3,(9,2))))),4),1); tree rep.7930000 = ((((6,(11,15)),(10,8)),(((9,2),3),(5,((7,4),(14,13))))),12,1); tree rep.7940000 = (12,(((15,(11,6)),(8,10)),((14,((3,((13,7),4)),5)),(2,9))),1); tree rep.7950000 = (12,(((4,(13,7)),5),((((8,10),((15,6),11)),((2,9),3)),14)),1); tree rep.7960000 = ((((((14,4),(7,13)),(3,(2,9))),5),((10,8),((15,11),6))),12,1); tree rep.7970000 = (((3,(2,9)),((5,(10,(((6,15),11),8))),(14,(4,(7,13))))),12,1); tree rep.7980000 = (12,((((6,(15,11)),8),10),((((3,2),9),5),((13,(7,4)),14))),1); tree rep.7990000 = ((((((7,13),14),4),5),(3,(2,9))),(12,((10,8),((11,15),6))),1); tree rep.8000000 = (((((11,15),6),(8,10)),((3,(2,9)),(5,((7,13),(14,4))))),12,1); tree rep.8010000 = (12,(((4,(9,(3,2))),((((10,8),((11,15),6)),14),5)),(13,7)),1); tree rep.8020000 = (((3,(((2,9),5),14)),((13,7),4)),(12,(((15,11),6),(8,10))),1); tree rep.8030000 = (12,(((3,(2,9)),((14,((7,13),4)),5)),((10,8),((6,15),11))),1); tree rep.8040000 = ((((10,8),((11,15),6)),(((2,9),3),(14,(4,(5,(7,13)))))),12,1); tree rep.8050000 = ((((10,8),((6,11),15)),(((5,14),((7,13),4)),(3,(2,9)))),12,1); tree rep.8060000 = (12,(((8,10),((15,6),11)),(5,(((7,13),(4,14)),((9,2),3)))),1); tree rep.8070000 = ((((4,(7,13)),((14,5),(3,(2,9)))),(10,(8,((11,15),6)))),12,1); tree rep.8080000 = (((8,(10,((6,15),11))),(((3,(9,2)),5),(14,((7,13),4)))),12,1); tree rep.8090000 = ((((((7,13),4),(5,14)),(3,(9,2))),(10,(8,(11,(15,6))))),12,1); tree rep.8100000 = (((14,((4,(13,7)),(5,((2,9),3)))),((((6,11),15),8),10)),12,1); tree rep.8110000 = (((((6,15),11),(10,8)),(((14,(4,(13,7))),((2,9),3)),5)),12,1); tree rep.8120000 = (((5,(((9,2),3),(14,((7,13),4)))),(8,((15,(6,11)),10))),12,1); tree rep.8130000 = ((((8,10),((6,15),11)),(((13,7),4),((5,(3,(9,2))),14))),12,1); tree rep.8140000 = (12,(((8,((6,15),11)),10),((4,(13,(14,7))),((3,(9,2)),5))),1); tree rep.8150000 = (((5,((((7,13),4),(3,(2,9))),14)),((((11,15),6),10),8)),12,1); tree rep.8160000 = (12,((((((7,13),5),4),((9,2),3)),14),(8,(10,(6,(15,11))))),1); tree rep.8170000 = (((((9,2),3),(((13,7),4),14)),((((11,6),15),(8,10)),5)),12,1); tree rep.8180000 = (12,(((((6,15),11),8),10),(((3,(5,(2,9))),(4,14)),(13,7))),1); tree rep.8190000 = (12,(((8,(6,(15,11))),10),((5,(3,(2,9))),((4,(13,7)),14))),1); tree rep.8200000 = (12,((5,((3,(9,2)),((4,(13,7)),14))),(((15,11),6),(10,8))),1); tree rep.8210000 = (((2,9),(5,(((((6,15),11),(8,10)),(((13,4),7),14)),3))),12,1); tree rep.8220000 = ((((3,(2,9)),((((7,13),14),4),5)),12),((8,10),(6,(11,15))),1); tree rep.8230000 = (((((3,(2,9)),(14,((7,13),4))),5),(8,((11,(15,6)),10))),12,1); tree rep.8240000 = (((((11,(6,15)),10),8),(((3,(2,9)),12),5)),(((7,13),4),14),1); tree rep.8250000 = ((((((13,7),14),4),(5,(3,(2,9)))),((((6,15),11),8),10)),12,1); tree rep.8260000 = (12,(((11,(6,15)),(10,8)),((((13,7),(4,14)),5),((2,9),3))),1); tree rep.8270000 = (((((4,14),(13,7)),(((2,9),3),5)),((8,(6,(11,15))),10)),12,1); tree rep.8280000 = (12,(((((6,(11,15)),10),8),(((13,7),(14,4)),(3,(2,9)))),5),1); tree rep.8290000 = (((10,(8,((11,15),6))),((2,(9,3)),(5,(((7,13),4),14)))),12,1); tree rep.8300000 = ((((8,10),((11,15),6)),(5,((((13,7),4),(3,(9,2))),14))),12,1); tree rep.8310000 = (12,(((5,14),(((13,7),4),(3,(2,9)))),((10,8),(6,(11,15)))),1); tree rep.8320000 = (12,((10,(8,(11,(15,6)))),(((3,(2,9)),((13,7),4)),(14,5))),1); tree rep.8330000 = ((14,((8,(10,(6,(11,15)))),(((13,7),4),((3,(9,2)),5)))),12,1); tree rep.8340000 = ((((((2,9),3),(((7,13),4),14)),5),(8,(10,(11,(15,6))))),12,1); tree rep.8350000 = (12,((10,((6,(15,11)),8)),(14,((4,(((2,9),3),5)),(7,13)))),1); tree rep.8360000 = (12,((8,(10,((11,15),6))),(((3,(9,2)),(14,(13,(4,7)))),5)),1); tree rep.8370000 = (12,((10,(((6,15),11),8)),((4,(14,(13,7))),(5,((9,2),3)))),1); tree rep.8380000 = ((((9,2),3),((4,(13,7)),(5,14))),(12,((((6,11),15),10),8)),1); tree rep.8390000 = (12,(((((14,5),4),(7,13)),((9,2),3)),(((11,15),6),(8,10))),1); tree rep.8400000 = (12,((8,((11,(6,15)),10)),((((14,(7,13)),4),5),((2,9),3))),1); tree rep.8410000 = (((((11,15),6),(8,10)),(((((7,13),14),4),5),(3,(9,2)))),12,1); tree rep.8420000 = (12,(((10,8),(11,(15,6))),(((13,(7,4)),14),((3,(9,2)),5))),1); tree rep.8430000 = (12,((((7,13),4),((5,((2,9),3)),14)),(((11,(6,15)),8),10)),1); tree rep.8440000 = (5,((14,((7,13),4)),((12,(3,(9,2))),(((11,15),6),(10,8)))),1); tree rep.8450000 = ((4,(((7,13),((12,14),5)),((2,9),3))),((((15,11),6),10),8),1); tree rep.8460000 = (((3,(2,9)),((4,(13,7)),((5,14),((8,10),((15,11),6))))),12,1); tree rep.8470000 = (12,(((5,((9,2),3)),(14,(7,(13,4)))),((6,(11,15)),(8,10))),1); tree rep.8480000 = (12,(((((15,6),11),10),8),((3,((14,(13,7)),4)),(5,(2,9)))),1); tree rep.8490000 = ((((5,4),(((3,(2,9)),(((6,15),11),(8,10))),(13,7))),14),12,1); tree rep.8500000 = (12,(((10,8),(6,(15,11))),((5,(3,((4,14),(7,13)))),(9,2))),1); tree rep.8510000 = (((14,((((6,(11,15)),(10,8)),((2,9),3)),5)),(4,(7,13))),12,1); tree rep.8520000 = ((((4,((13,7),14)),((3,(9,2)),5)),(((6,(15,11)),8),10)),12,1); tree rep.8530000 = (12,(((5,(((7,13),4),14)),((2,3),9)),((8,10),((11,15),6))),1); tree rep.8540000 = (12,(((8,10),(11,(15,6))),((5,(((13,7),4),14)),(3,(2,9)))),1); tree rep.8550000 = ((((6,(15,11)),(10,8)),(((13,7),4),(12,((9,2),3)))),(14,5),1); tree rep.8560000 = ((((10,8),((15,11),6)),((((9,2),3),5),((13,7),(4,14)))),12,1); tree rep.8570000 = (12,(((10,((11,15),6)),8),(5,((3,(9,2)),(14,(4,(7,13)))))),1); tree rep.8580000 = (((((15,6),11),10),8),(12,(((4,(13,7)),14),(5,((9,2),3)))),1); tree rep.8590000 = ((((3,((13,7),(2,9))),(14,(5,4))),((((6,15),11),10),8)),12,1); tree rep.8600000 = (((5,((2,9),3)),(4,((8,10),((6,15),11)))),(((7,13),14),12),1); tree rep.8610000 = (((((7,13),4),(5,(((2,9),3),14))),((10,(6,(11,15))),8)),12,1); tree rep.8620000 = (((10,(11,(15,6))),8),((5,((14,(4,(13,7))),(3,(2,9)))),12),1); tree rep.8630000 = ((((((15,11),6),8),10),(((5,(3,(2,9))),14),((4,7),13))),12,1); tree rep.8640000 = ((((5,((8,10),(6,(15,11)))),(((7,13),4),14)),((2,9),3)),12,1); tree rep.8650000 = (12,(((((9,2),3),(4,(5,(13,7)))),14),((10,8),((11,15),6))),1); tree rep.8660000 = (((12,5),(9,2)),(((3,((8,((11,15),6)),10)),(14,4)),(13,7)),1); tree rep.8670000 = (12,(((8,10),((15,6),11)),(((14,4),(7,13)),(5,(3,(9,2))))),1); tree rep.8680000 = ((((14,((13,7),4)),(5,(3,(2,9)))),((6,(11,15)),(10,8))),12,1); tree rep.8690000 = (((((3,(9,2)),(4,((13,7),14))),5),((10,8),((15,6),11))),12,1); tree rep.8700000 = (12,((10,((11,(6,15)),8)),(5,(((7,13),(14,4)),(3,(9,2))))),1); tree rep.8710000 = (12,((10,8),((((9,2),3),((14,((13,7),4)),5)),(11,(6,15)))),1); tree rep.8720000 = (12,(((3,(9,2)),(14,5)),(((7,13),4),((10,(11,(6,15))),8))),1); tree rep.8730000 = (12,(5,(((4,14),((7,13),((9,2),3))),(((6,15),11),(8,10)))),1); tree rep.8740000 = (((((((13,7),4),14),(3,(9,2))),5),((6,(11,15)),(8,10))),12,1); tree rep.8750000 = (((10,(8,(11,(15,6)))),((((13,7),4),((2,9),3)),(5,14))),12,1); tree rep.8760000 = ((((((2,9),3),((7,13),(4,14))),5),((10,((6,15),11)),8)),12,1); tree rep.8770000 = (((((11,(6,15)),(10,8)),((((7,13),4),((2,9),3)),14)),5),12,1); tree rep.8780000 = (12,(((5,((14,((7,13),4)),((10,8),((15,11),6)))),3),(2,9)),1); tree rep.8790000 = (12,(((10,8),((15,6),11)),(((5,14),(3,(9,2))),((7,13),4))),1); tree rep.8800000 = (12,((((5,14),(4,(13,7))),(3,(9,2))),((8,10),(11,(6,15)))),1); tree rep.8810000 = (((((15,6),11),(8,10)),((((4,(13,7)),14),5),((2,9),3))),12,1); tree rep.8820000 = (12,((3,(2,9)),(((14,5),((6,(15,11)),(10,8))),((7,13),4))),1); tree rep.8830000 = (12,(((3,(2,9)),(((14,5),4),(13,7))),((10,((6,15),11)),8)),1); tree rep.8840000 = ((12,((((3,(2,9)),4),5),(14,(7,13)))),((((11,15),6),8),10),1); tree rep.8850000 = (12,((3,(9,2)),(((((15,11),6),8),10),(5,(14,(13,(4,7)))))),1); tree rep.8860000 = (12,((3,(5,((9,2),((13,7),(14,4))))),(8,(((6,15),11),10))),1); tree rep.8870000 = (12,((((2,9),3),((14,5),((10,(6,(11,15))),8))),(4,(7,13))),1); tree rep.8880000 = (12,((((9,2),3),((14,4),(13,7))),(5,((8,10),((6,15),11)))),1); tree rep.8890000 = (12,(((((13,7),4),5),14),(((9,2),3),(((15,6),11),(8,10)))),1); tree rep.8900000 = ((((6,(11,15)),(8,10)),(((3,(2,9)),(13,(7,(4,14)))),5)),12,1); tree rep.8910000 = ((5,(((8,10),(6,(11,15))),(((7,13),(14,4)),((2,9),3)))),12,1); tree rep.8920000 = (12,(((((7,13),4),(14,5)),((9,2),3)),(((11,(6,15)),10),8)),1); tree rep.8930000 = (12,(((8,((15,6),11)),10),(((14,(4,5)),(13,7)),(3,(2,9)))),1); tree rep.8940000 = (12,(((3,(2,9)),((13,7),(14,(4,5)))),(((6,(15,11)),10),8)),1); tree rep.8950000 = (12,(((3,(2,9)),((5,4),(14,(13,7)))),(((11,15),6),(10,8))),1); tree rep.8960000 = ((12,((10,(11,(15,6))),8)),((3,(2,9)),(5,(14,((7,13),4)))),1); tree rep.8970000 = (12,(((3,(2,9)),((14,((7,13),5)),4)),(10,(8,((15,6),11)))),1); tree rep.8980000 = (12,((((14,5),(13,(4,7))),((2,9),3)),((((15,6),11),8),10)),1); tree rep.8990000 = ((((11,(6,15)),(8,10)),12),((((((9,2),3),5),14),4),(13,7)),1); tree rep.9000000 = ((((3,(9,2)),((((13,7),4),14),5)),((10,8),((15,11),6))),12,1); tree rep.9010000 = ((((8,(11,(6,15))),10),(((3,(9,2)),14),(((13,7),4),5))),12,1); tree rep.9020000 = ((((3,(5,(9,2))),14),(4,(7,13))),(12,((8,10),(6,(11,15)))),1); tree rep.9030000 = ((((13,7),(4,14)),(5,(3,(9,2)))),(((10,((6,15),11)),8),12),1); tree rep.9040000 = ((((7,13),4),(((2,9),3),(14,5))),((10,(8,((11,15),6))),12),1); tree rep.9050000 = ((((((9,2),3),4),((10,(8,((6,15),11))),(14,(13,7)))),5),12,1); tree rep.9060000 = (12,((((6,15),11),(10,8)),(((9,2),3),(((14,(7,13)),4),5))),1); tree rep.9070000 = (((10,8),((((14,4),(7,13)),5),((11,(15,6)),((2,9),3)))),12,1); tree rep.9080000 = (12,((((13,7),(14,4)),((8,10),(11,(15,6)))),((2,9),(5,3))),1); tree rep.9090000 = (((((2,9),3),((((7,13),14),4),(((15,6),11),(8,10)))),5),12,1); tree rep.9100000 = ((((((2,9),3),(4,(7,13))),(5,14)),(((15,11),6),(10,8))),12,1); tree rep.9110000 = (12,(((3,(9,2)),(((13,7),4),(14,5))),(8,(10,((11,15),6)))),1); tree rep.9120000 = (12,(14,((2,9),(((7,13),(5,((((15,6),11),(8,10)),4))),3))),1); tree rep.9130000 = ((((14,(7,13)),(4,((3,(9,2)),5))),((((6,15),11),10),8)),12,1); tree rep.9140000 = (((((((6,15),11),(8,10)),(14,(4,(13,7)))),(9,(2,3))),5),12,1); tree rep.9150000 = (((8,((11,(15,6)),10)),(((3,(2,9)),((7,13),(14,4))),5)),12,1); tree rep.9160000 = ((12,((10,(11,(15,6))),8)),(((((7,13),4),14),(3,(2,9))),5),1); tree rep.9170000 = (((((6,(15,11)),10),8),((((4,(7,13)),14),((2,9),3)),5)),12,1); tree rep.9180000 = ((((9,2),3),((((11,15),6),(8,10)),((13,7),(4,(5,14))))),12,1); tree rep.9190000 = ((((11,6),15),(10,8)),(12,(5,(((2,9),3),(14,((7,13),4))))),1); tree rep.9200000 = (((((2,9),3),((6,(15,11)),(10,8))),((14,4),((7,13),5))),12,1); tree rep.9210000 = ((10,(8,((15,11),6))),((5,(((7,13),(14,4)),((2,9),3))),12),1); tree rep.9220000 = (((10,(8,((((13,7),(((9,2),3),4)),14),5))),((6,15),11)),12,1); tree rep.9230000 = (((((((7,13),(14,4)),(((2,9),3),5)),12),8),10),((15,6),11),1); tree rep.9240000 = (12,((10,(8,(15,(6,11)))),((5,((13,7),(14,4))),((9,2),3))),1); tree rep.9250000 = (((((4,(13,7)),5),(((9,2),3),14)),((6,(15,11)),(8,10))),12,1); tree rep.9260000 = (((((15,6),11),(8,10)),(((7,13),14),(4,(5,(3,(2,9)))))),12,1); tree rep.9270000 = ((14,(5,((4,(13,7)),((((11,(15,6)),8),10),((9,2),3))))),12,1); tree rep.9280000 = (((((3,(2,9)),((4,14),(7,13))),5),(8,(10,((11,15),6)))),12,1); tree rep.9290000 = (12,(((11,(6,15)),(8,10)),(((2,9),3),(4,((13,(5,14)),7)))),1); tree rep.9300000 = (((8,10),(11,(6,15))),(12,(((3,(2,9)),5),((14,(13,7)),4))),1); tree rep.9310000 = ((((15,6),11),((((13,7),4),14),((2,9),(3,(12,5))))),(10,8),1); tree rep.9320000 = (12,(((8,10),(6,(15,11))),((13,(((14,((9,2),3)),7),5)),4)),1); tree rep.9330000 = (12,(((5,14),((3,(2,9)),(((15,11),6),(10,8)))),(4,(7,13))),1); tree rep.9340000 = (12,(((((2,9),3),5),((14,(13,7)),4)),(((15,6),11),(10,8))),1); tree rep.9350000 = (((((((13,7),14),4),5),(3,(9,2))),((8,10),(11,(15,6)))),12,1); tree rep.9360000 = (12,((5,((3,(9,2)),((4,(7,13)),14))),((10,((11,15),6)),8)),1); tree rep.9370000 = ((((3,(9,2)),(14,(5,((13,7),4)))),(((11,15),6),(8,10))),12,1); tree rep.9380000 = ((((6,(15,11)),(10,8)),(((4,(7,13)),(5,14)),(3,(9,2)))),12,1); tree rep.9390000 = (12,(((((3,(2,9)),5),4),((13,7),14)),((8,10),(6,(11,15)))),1); tree rep.9400000 = ((((3,(9,2)),(((13,7),14),4)),5),(12,((10,((6,15),11)),8)),1); tree rep.9410000 = ((((3,(2,9)),(((7,13),4),14)),5),(12,(8,(10,((11,15),6)))),1); tree rep.9420000 = (12,((8,(((15,6),11),10)),((4,((7,13),14)),(5,((9,2),3)))),1); tree rep.9430000 = (((3,(9,2)),((((11,(6,15)),(10,8)),((4,14),(7,13))),5)),12,1); tree rep.9440000 = ((12,(8,10)),(((15,6),11),((((2,9),3),4),((14,5),(13,7)))),1); tree rep.9450000 = (12,((8,10),(((11,6),15),(5,((3,(2,9)),((4,(13,7)),14))))),1); tree rep.9460000 = (((14,(((2,9),3),4)),(((((11,15),6),8),(12,10)),(7,13))),5,1); tree rep.9470000 = (12,((((7,13),4),((10,8),(15,(6,11)))),(5,(((2,9),3),14))),1); tree rep.9480000 = ((3,(((((8,10),(11,(15,6))),5),(14,((7,13),4))),(2,9))),12,1); tree rep.9490000 = (12,(((3,(9,2)),((((7,13),4),14),5)),(((15,6),11),(10,8))),1); tree rep.9500000 = (12,((((3,(2,9)),(4,(14,(13,7)))),5),((10,((6,15),11)),8)),1); tree rep.9510000 = ((((5,14),(((2,9),3),((13,7),4))),(((6,15),11),(10,8))),12,1); tree rep.9520000 = (((((9,2),3),12),(5,((4,(7,13)),14))),(((6,15),11),(8,10)),1); tree rep.9530000 = (12,((5,(((14,4),(13,7)),((2,9),3))),((11,(15,6)),(10,8))),1); tree rep.9540000 = (12,((10,(8,((11,15),6))),(((((13,7),4),14),(3,(2,9))),5)),1); tree rep.9550000 = (((((2,9),3),((4,(13,7)),14)),(5,(((11,(6,15)),8),10))),12,1); tree rep.9560000 = ((12,(10,(8,(15,(6,11))))),((3,(2,9)),(((4,(7,13)),14),5)),1); tree rep.9570000 = (((10,((6,15),11)),((((5,14),(7,13)),(4,(3,(2,9)))),8)),12,1); tree rep.9580000 = (((14,((13,7),4)),((3,(2,9)),5)),(12,(((6,(15,11)),8),10)),1); tree rep.9590000 = (((((((2,9),3),5),(4,(7,13))),14),12),(((11,15),6),(10,8)),1); tree rep.9600000 = ((((8,10),(15,(11,6))),(5,((4,((7,13),14)),((9,2),3)))),12,1); tree rep.9610000 = (((((6,15),11),(8,10)),((3,(9,2)),(((13,7),4),(5,14)))),12,1); tree rep.9620000 = (((((14,(4,(7,13))),((9,2),3)),5),(((6,(11,15)),10),8)),12,1); tree rep.9630000 = (((5,((9,2),3)),(((6,(15,11)),(8,10)),(14,((7,13),4)))),12,1); tree rep.9640000 = (12,((5,(((7,(13,4)),(((11,(15,6)),8),10)),14)),((9,2),3)),1); tree rep.9650000 = ((((5,(3,(2,9))),(14,(4,(7,13)))),12),((8,((15,6),11)),10),1); tree rep.9660000 = (12,((8,((6,(15,11)),10)),((3,(2,9)),(((5,(13,7)),4),14))),1); tree rep.9670000 = (12,(((6,(15,11)),(8,10)),((4,(7,13)),((14,5),(3,(2,9))))),1); tree rep.9680000 = ((((6,(11,15)),(10,8)),((14,((13,7),4)),(((2,9),3),5))),12,1); tree rep.9690000 = (((((2,9),3),(((13,7),4),14)),(((6,(15,11)),(10,8)),5)),12,1); tree rep.9700000 = ((((6,(11,15)),8),10),((5,(3,(9,2))),((((13,7),4),12),14)),1); tree rep.9710000 = ((((13,7),((5,14),(4,((9,2),3)))),((8,10),(6,(15,11)))),12,1); tree rep.9720000 = (12,(((8,10),(11,(6,15))),(((5,(3,(9,2))),(4,(7,13))),14)),1); tree rep.9730000 = (((10,8),((15,6),11)),(((2,9),((5,(13,7)),3)),(12,(4,14))),1); tree rep.9740000 = (12,(((8,10),(6,(15,11))),(((3,(2,9)),5),(14,(4,(13,7))))),1); tree rep.9750000 = (((((9,2),3),(5,(4,((7,13),14)))),12),((8,10),((6,15),11)),1); tree rep.9760000 = (12,(((5,((9,2),3)),((4,14),(13,7))),((((11,15),6),10),8)),1); tree rep.9770000 = ((((10,((6,15),11)),8),((9,(2,3)),((4,((7,13),14)),5))),12,1); tree rep.9780000 = ((((14,(5,(3,(2,9)))),(7,(4,13))),12),(10,(((11,15),6),8)),1); tree rep.9790000 = (12,(((((9,2),3),(4,(13,7))),(14,5)),((6,(11,15)),(8,10))),1); tree rep.9800000 = (12,(((10,8),((6,15),11)),((5,((4,(13,7)),14)),((9,2),3))),1); tree rep.9810000 = ((((6,(15,11)),(8,10)),((5,14),((7,(13,4)),(3,(2,9))))),12,1); tree rep.9820000 = (((((3,(9,2)),((7,13),(4,14))),((6,(15,11)),(10,8))),5),12,1); tree rep.9830000 = ((12,((3,(9,2)),(((4,(7,13)),5),14))),((((15,11),6),10),8),1); tree rep.9840000 = (12,(((((11,15),6),10),8),(((14,((13,7),4)),5),((9,2),3))),1); tree rep.9850000 = ((12,(((4,((2,9),3)),(14,(7,13))),5)),(10,(8,((6,15),11))),1); tree rep.9860000 = ((((11,(6,15)),(10,8)),(14,(((7,4),13),(5,(3,(9,2)))))),12,1); tree rep.9870000 = (((8,((6,15),11)),10),(12,(3,((14,4),(((9,2),5),(13,7))))),1); tree rep.9880000 = (((14,(((4,(13,7)),5),((2,9),3))),((((6,15),11),8),10)),12,1); tree rep.9890000 = (12,(((5,((13,7),(4,14))),((2,9),3)),((((11,15),6),10),8)),1); tree rep.9900000 = (12,(((10,8),(6,(15,11))),(((14,((7,13),4)),5),(3,(9,2)))),1); tree rep.9910000 = (12,(((((14,4),(7,13)),((8,((11,15),6)),10)),(3,(9,2))),5),1); tree rep.9920000 = (12,((10,((6,(11,15)),8)),((5,14),((3,(9,2)),(4,(7,13))))),1); tree rep.9930000 = (((3,(9,2)),(((14,(7,13)),4),(5,(10,(8,(11,(6,15))))))),12,1); tree rep.9940000 = ((((5,((9,2),3)),((13,7),(14,4))),(8,(((11,15),6),10))),12,1); tree rep.9950000 = (12,(((10,((15,6),11)),8),(5,(((13,(14,7)),4),(3,(2,9))))),1); tree rep.9960000 = (12,((((4,((7,13),14)),((9,2),3)),((8,10),(11,(15,6)))),5),1); tree rep.9970000 = ((((3,(2,9)),(10,(8,((11,6),15)))),(4,((5,14),(7,13)))),12,1); tree rep.9980000 = (((8,(10,((11,6),15))),((((14,(7,13)),4),5),((2,9),3))),12,1); tree rep.9990000 = (12,((8,(10,((15,11),6))),((((13,7),(14,4)),((9,2),3)),5)),1); tree rep.10000000 = (((((6,(11,15)),10),8),(((4,(13,7)),(5,(3,(2,9)))),14)),12,1); end; phangorn/inst/extdata/trees/RAxML_bipartitions.3moles0000644000176200001440000000054413201424001022443 0ustar liggesusers(Ame:0.24240784786309346743,(((Hma:0.03262045163347984666,Mur:0.03886458455630492637)36:0.00225499947410235475,Uth:0.02580682933153511174)30:0.00059392541543651757,(Uam:0.02931596331419318927,(Uar:0.00602522464221224522,Uma:0.00593640374580924231)100:0.02934241311799383120)60:0.00269684120306867619)100:0.06379221863907107160,Tor:0.09747395533792581335); phangorn/inst/extdata/trees/RAxML_bootstrap.YCh0000644000176200001440000002576213201424001021243 0ustar liggesusers((((Mur,Uth),Hma),(Uam,(Uma,Uar))),Tor,Ame); ((((Mur,Uth),Hma),(Uam,(Uma,Uar))),Tor,Ame); ((((Mur,Uth),Hma),(Uam,(Uma,Uar))),Tor,Ame); (((Uth,(Hma,Mur)),(Uam,(Uma,Uar))),Tor,Ame); (((Uth,Mur),(Hma,(Uam,(Uma,Uar)))),Tor,Ame); (((Uth,(Hma,Mur)),(Uam,(Uma,Uar))),Tor,Ame); (((Hma,(Mur,Uth)),(Uam,(Uma,Uar))),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uma,Uar)))),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); ((((Mur,Uth),Hma),(Uam,(Uma,Uar))),Tor,Ame); ((((Mur,Uth),Hma),(Uam,(Uma,Uar))),Tor,Ame); (((Uam,(Uma,Uar)),((Mur,Hma),Uth)),Tor,Ame); (((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Tor,Ame); (((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Tor,Ame); (((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Tor,Ame); (((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Tor,Ame); (((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Tor,Ame); (((Uam,(Uma,Uar)),(Uth,(Hma,Mur))),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); ((((Mur,Uth),Hma),(Uam,(Uma,Uar))),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uma,Uar)))),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uma,Uar)))),Tor,Ame); ((((Uam,(Uma,Uar)),(Mur,Uth)),Hma),Tor,Ame); (((Uam,(Uma,Uar)),((Hma,Mur),Uth)),Tor,Ame); (((Uam,(Uma,Uar)),((Hma,Mur),Uth)),Tor,Ame); (((Hma,(Uam,(Uma,Uar))),(Mur,Uth)),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uma,Uar)))),Tor,Ame); (((Uth,(Hma,Mur)),(Uam,(Uma,Uar))),Tor,Ame); ((((Uam,(Uma,Uar)),Hma),(Uth,Mur)),Tor,Ame); (((Uam,(Uma,Uar)),((Uth,Hma),Mur)),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); (((Uar,(Uam,Uma)),((Hma,Mur),Uth)),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uma,Uar)),((Hma,Mur),Uth)),Tor,Ame); (((Uam,(Uma,Uar)),((Hma,Mur),Uth)),Tor,Ame); (((Hma,(Uam,(Uma,Uar))),(Mur,Uth)),Tor,Ame); (((Uam,(Uma,Uar)),((Hma,Mur),Uth)),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uma,Uar)))),Tor,Ame); (((Uam,(Uma,Uar)),((Hma,Mur),Uth)),Tor,Ame); (((Hma,(Uam,(Uma,Uar))),(Mur,Uth)),Tor,Ame); (((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Tor,Ame); (((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Tor,Ame); (((Uam,(Uma,Uar)),((Mur,Hma),Uth)),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uma,Uar)))),Tor,Ame); (((Uam,(Uma,Uar)),((Hma,Mur),Uth)),Tor,Ame); (((Hma,(Uam,(Uma,Uar))),(Mur,Uth)),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uar,Uma)))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),((Hma,Mur),Uth)),Tor,Ame); (((Hma,(Uam,(Uar,Uma))),(Mur,Uth)),Tor,Ame); (((Hma,(Uam,(Uar,Uma))),(Mur,Uth)),Tor,Ame); (((Hma,Mur),(Uth,(Uar,(Uma,Uam)))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),(Uth,(Hma,Mur))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),((Hma,Mur),Uth)),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uar,Uma)))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uar,Uma)))),Tor,Ame); (((Uam,(Uar,Uma)),((Hma,Mur),Uth)),Tor,Ame); (((Uam,(Uar,Uma)),((Mur,Uth),Hma)),Tor,Ame); (((Uam,(Uar,Uma)),((Mur,Uth),Hma)),Tor,Ame); (((Uam,(Uar,Uma)),((Mur,Hma),Uth)),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Tor,Ame); (((Uam,(Uar,Uma)),(Uth,(Mur,Hma))),Tor,Ame); (((Uam,(Uar,Uma)),((Uth,Mur),Hma)),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uar,Uma)))),Tor,Ame); (((Mur,Uth),((Uam,(Uar,Uma)),Hma)),Tor,Ame); ((((Hma,Mur),Uth),(Uam,(Uar,Uma))),Tor,Ame); ((((Hma,Mur),Uth),(Uam,(Uar,Uma))),Tor,Ame); (((Hma,(Mur,Uth)),(Uar,(Uma,Uam))),Tor,Ame); (((Hma,(Mur,Uth)),(Uar,(Uma,Uam))),Tor,Ame); (((Uma,(Uam,Uar)),((Hma,Mur),Uth)),Tor,Ame); (((Hma,(Mur,Uth)),(Uam,(Uar,Uma))),Tor,Ame); (((Uth,(Hma,Mur)),(Uam,(Uar,Uma))),Tor,Ame); ((((Uma,Uar),Uam),(Hma,(Mur,Uth))),Tor,Ame); ((((Uma,Uar),Uam),(Uth,(Hma,Mur))),Tor,Ame); ((((Uma,Uar),Uam),(Hma,(Mur,Uth))),Tor,Ame); (((Hma,Mur),(Uth,((Uma,Uar),Uam))),Tor,Ame); (((Uma,(Uar,Uam)),((Hma,Mur),Uth)),Tor,Ame); (((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Tor,Ame); (((Uam,(Uma,Uar)),(Uth,(Hma,Mur))),Tor,Ame); (((Uam,(Uma,Uar)),(Uth,(Hma,Mur))),Tor,Ame); (((Uam,(Uma,Uar)),(Uth,(Hma,Mur))),Tor,Ame); (((Uam,(Uma,Uar)),(Hma,(Mur,Uth))),Tor,Ame); ((((Uma,Uar),Uam),(Hma,(Mur,Uth))),Tor,Ame); ((((Uma,Uar),Uam),(Hma,(Mur,Uth))),Tor,Ame); ((((Uma,Uar),Uam),(Hma,(Mur,Uth))),Tor,Ame); ((((Uma,Uar),Uam),(Hma,(Mur,Uth))),Tor,Ame); ((((Uma,Uar),Uam),(Hma,(Mur,Uth))),Tor,Ame); ((((Uma,Uar),Uam),(Hma,(Mur,Uth))),Tor,Ame); ((((Uma,Uar),Uam),(Hma,(Mur,Uth))),Tor,Ame); ((((Uma,Uar),Uam),(Hma,(Mur,Uth))),Tor,Ame); ((((Uma,Uar),Uam),((Hma,Mur),Uth)),Tor,Ame); ((((Uma,Uar),Uam),((Hma,Mur),Uth)),Tor,Ame); ((((Uma,Uar),Uam),(Hma,(Mur,Uth))),Tor,Ame); ((((Uma,Uar),Uam),(Hma,(Mur,Uth))),Tor,Ame); ((((Uma,Uar),Uam),(Uth,(Hma,Mur))),Tor,Ame); ((((Uma,Uar),Uam),(Uth,(Hma,Mur))),Tor,Ame); (((Hma,((Uma,Uar),Uam)),(Uth,Mur)),Tor,Ame); (((Hma,Mur),(((Uma,Uar),Uam),Uth)),Tor,Ame); ((((Uma,Uar),Uam),(Uth,(Hma,Mur))),Tor,Ame); (((Hma,((Uma,Uar),Uam)),(Uth,Mur)),Tor,Ame); ((((Uma,Uar),Uam),(Uth,(Hma,Mur))),Tor,Ame); ((((Uma,Uar),Uam),((Uth,Mur),Hma)),Tor,Ame); (Tor,((Uam,(Uar,Uma)),((Mur,Hma),Uth)),Ame); (Tor,((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Ame); (Tor,((Hma,Mur),(Uth,(Uam,(Uar,Uma)))),Ame); (Tor,((Mur,Uth),((Uam,(Uar,Uma)),Hma)),Ame); (Tor,((Mur,Uth),((Uam,(Uar,Uma)),Hma)),Ame); (Tor,(((Hma,Mur),Uth),(Uam,(Uar,Uma))),Ame); (Tor,((Mur,Uth),(Hma,(Uam,(Uar,Uma)))),Ame); (Tor,((Mur,Uth),(Hma,(Uam,(Uar,Uma)))),Ame); (Tor,((Hma,(Mur,Uth)),(Uma,(Uam,Uar))),Ame); (Tor,((Hma,Mur),(Uth,(Uam,(Uar,Uma)))),Ame); (Tor,((Uam,(Uar,Uma)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uar,Uma)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uar,Uma)),((Mur,Hma),Uth)),Ame); (Tor,((Uam,(Uar,Uma)),((Mur,Hma),Uth)),Ame); (Tor,((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Ame); (Tor,((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Ame); (Tor,((Hma,Mur),(Uth,(Uma,(Uam,Uar)))),Ame); (Tor,((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Ame); (Tor,((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Ame); (Tor,((Uar,(Uma,Uam)),((Hma,Mur),Uth)),Ame); (Tor,((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Ame); (Tor,((Uam,(Uar,Uma)),(Hma,(Uth,Mur))),Ame); (Tor,((Uam,(Uar,Uma)),((Hma,Mur),Uth)),Ame); (Tor,((Uam,(Uar,Uma)),((Mur,Uth),Hma)),Ame); (Tor,((Hma,Mur),(Uth,(Uam,(Uar,Uma)))),Ame); (Tor,((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Ame); (Tor,((Uam,(Uar,Uma)),(Uth,(Hma,Mur))),Ame); (Tor,((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Ame); (Tor,((Hma,Mur),(Uth,(Uam,(Uar,Uma)))),Ame); (Tor,((Uam,(Uar,Uma)),((Hma,Mur),Uth)),Ame); ((((Uar,Uma),Uam),((Mur,Uth),Hma)),Tor,Ame); ((((Uar,Uma),Uam),((Mur,Uth),Hma)),Tor,Ame); ((((Uar,Uma),Uam),((Mur,Uth),Hma)),Tor,Ame); (((Hma,Mur),(Uth,((Uar,Uma),Uam))),Tor,Ame); (((Hma,(Uth,Mur)),((Uar,Uma),Uam)),Tor,Ame); (((Hma,Mur),(Uth,((Uar,Uma),Uam))),Tor,Ame); (((Hma,Mur),(Uth,((Uar,Uma),Uam))),Tor,Ame); ((((Uar,Uma),Uam),((Hma,Mur),Uth)),Tor,Ame); ((((Uar,Uma),Uam),((Mur,Uth),Hma)),Tor,Ame); ((((Uar,Uma),Uam),((Mur,Uth),Hma)),Tor,Ame); ((((Uar,Uma),Uam),((Mur,Uth),Hma)),Tor,Ame); ((((Uar,Uma),Uam),((Mur,Uth),Hma)),Tor,Ame); (((Hma,Mur),(Uth,((Uar,Uma),Uam))),Tor,Ame); ((((Uth,Mur),Hma),((Uar,Uma),Uam)),Tor,Ame); (((Hma,Mur),(Uth,(Uar,(Uma,Uam)))),Tor,Ame); (((Uma,(Uam,Uar)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),(Uth,(Hma,Mur))),Tor,Ame); (((Hma,(Uam,(Uar,Uma))),(Uth,Mur)),Tor,Ame); (((Hma,(Uam,(Uar,Uma))),(Uth,Mur)),Tor,Ame); ((((Uar,Uma),Uam),((Mur,Uth),Hma)),Tor,Ame); (((Hma,Mur),(Uth,(Uma,(Uam,Uar)))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),((Hma,Mur),Uth)),Tor,Ame); ((((Uam,(Uar,Uma)),Hma),(Mur,Uth)),Tor,Ame); ((((Hma,Mur),Uth),(Uam,(Uar,Uma))),Tor,Ame); ((((Hma,Mur),Uth),(Uam,(Uar,Uma))),Tor,Ame); (((Uar,(Uma,Uam)),((Mur,Uth),Hma)),Tor,Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),(Uth,(Hma,Mur))),Ame); (Tor,((Uam,(Uma,Uar)),(Uth,(Hma,Mur))),Ame); (Tor,((Hma,(Uam,(Uma,Uar))),(Uth,Mur)),Ame); (Tor,((Uam,(Uma,Uar)),(Uth,(Hma,Mur))),Ame); (Tor,((Uam,(Uma,Uar)),((Uth,Mur),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Uth,Mur),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Uth,Mur),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),(Uth,(Hma,Mur))),Ame); (Tor,((Uar,(Uam,Uma)),((Uth,Mur),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),(Uth,(Mur,Hma))),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Hma),Uth)),Ame); (Tor,((Uma,(Uar,Uam)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Uth),Hma)),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Hma),Uth)),Ame); (Tor,((Uam,(Uma,Uar)),((Mur,Hma),Uth)),Ame); (Tor,((Uam,(Uma,Uar)),(Hma,(Uth,Mur))),Ame); (Tor,((Uam,(Uma,Uar)),(Hma,(Uth,Mur))),Ame); (Tor,((Uam,(Uma,Uar)),(Hma,(Uth,Mur))),Ame); (((Hma,Mur),(Uth,((Uar,Uma),Uam))),Tor,Ame); ((((Uar,Uma),Uam),((Hma,Mur),Uth)),Tor,Ame); ((((Uar,Uma),Uam),((Hma,Mur),Uth)),Tor,Ame); ((((Uar,Uma),Uam),((Hma,Mur),Uth)),Tor,Ame); ((((Uar,Uma),Uam),((Mur,Uth),Hma)),Tor,Ame); ((((Uar,Uma),Uam),((Mur,Uth),Hma)),Tor,Ame); ((((Uar,Uma),Uam),((Mur,Uth),Hma)),Tor,Ame); ((((Uar,Uma),Uam),(Uth,(Hma,Mur))),Tor,Ame); (((((Uar,Uma),Uam),(Uth,Mur)),Hma),Tor,Ame); ((((Uar,Uma),Uam),(Uth,(Hma,Mur))),Tor,Ame); ((((Uar,Uma),Uam),((Mur,Uth),Hma)),Tor,Ame); (((Hma,Mur),(Uth,(Uar,(Uma,Uam)))),Tor,Ame); (((Uam,(Uar,Uma)),((Hma,Mur),Uth)),Tor,Ame); (((Uam,(Uar,Uma)),((Hma,Mur),Uth)),Tor,Ame); (((Hma,Mur),(Uth,(Uam,(Uar,Uma)))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),(Hma,(Mur,Uth))),Tor,Ame); (((Uam,(Uar,Uma)),(Uth,(Hma,Mur))),Tor,Ame); (((Uam,(Uar,Uma)),((Uth,Mur),Hma)),Tor,Ame); ((((Uar,Uma),Uam),(Hma,(Mur,Uth))),Tor,Ame); ((((Uar,Uma),Uam),(Hma,(Mur,Uth))),Tor,Ame); ((((Uar,Uma),Uam),(Hma,(Mur,Uth))),Tor,Ame); ((((Uar,Uma),Uam),(Hma,(Mur,Uth))),Tor,Ame); ((((Uar,Uma),Uam),(Hma,(Mur,Uth))),Tor,Ame); ((((Uar,Uma),Uam),(Hma,(Mur,Uth))),Tor,Ame); ((((Uar,Uma),Uam),((Hma,Mur),Uth)),Tor,Ame); ((((Uar,Uma),Uam),((Mur,Uth),Hma)),Tor,Ame); ((((Uar,Uma),Uam),((Mur,Uth),Hma)),Tor,Ame); ((((Uar,Uma),Uam),((Mur,Uth),Hma)),Tor,Ame); phangorn/inst/extdata/trees/RAxML_bootstrap.Wang.out0000644000176200001440000045657013201424001022267 0ustar liggesusers(t1,((((((t14,t15),(t13,t12)),((t11,(((t6,t7),t8),(t9,t10))),(t24,t25))),t16),(((t17,t18),((t22,t21),(t20,t19))),t23)),((t2,t3),((t4,t5),(t27,t26)))),t0); (t1,((t2,t3),((t4,t5),((((((t14,t15),(t13,t12)),(t11,(((t6,t7),t8),(t9,t10)))),t16),((t24,t25),(((t17,t18),((t22,t21),(t20,t19))),t23))),(t27,t26)))),t0); (t1,((((((t11,(((t6,t7),t8),(t9,t10))),(t16,(t14,t15))),(t13,t12)),((t24,t25),(((t17,t18),((t22,t21),(t20,t19))),t23))),(t27,t26)),((t2,t3),(t4,t5))),t0); (t1,(((((t16,(t14,t15)),((t13,t12),(t11,(((t6,t7),t8),(t9,t10))))),((t24,t25),((((t17,t18),(t21,(t20,t19))),t22),t23))),(t27,t26)),((t2,t3),(t4,t5))),t0); (t1,(((t27,t26),(t2,t3)),((t4,t5),(t16,((t14,t15),(((t13,t12),(t11,(((t6,t7),t8),(t9,t10)))),((t24,t25),(((t17,t18),((t20,t19),(t21,t22))),t23))))))),t0); (t1,(((t2,t3),(t4,t5)),((((t24,t25),(((t17,t18),((t20,t19),(t21,t22))),t23)),((t16,(t14,t15)),((t13,t12),(t11,(((t6,t7),t8),(t9,t10)))))),(t27,t26))),t0); (t1,((t2,t3),((((((t17,t18),((t20,t19),(t21,t22))),t23),((t13,t12),(((t24,t25),(t11,(((t6,t7),t8),(t9,t10)))),(t14,t15)))),t16),((t27,t26),(t4,t5)))),t0); (t1,(((t2,t3),(t4,t5)),(((((t17,t18),((t20,t19),(t21,t22))),t23),((((t13,t12),(t24,t25)),(t11,(((t6,t7),t8),(t9,t10)))),((t14,t15),t16))),(t27,t26))),t0); (t1,(((t2,t3),(t4,t5)),((((((t24,t25),((t17,t18),((t20,t19),(t21,t22)))),t23),((t13,t12),((t11,(((t6,t7),t8),(t9,t10))),(t14,t15)))),t16),(t27,t26))),t0); (t1,((t2,t3),((t4,t5),(((((t17,t18),((t20,t19),(t21,t22))),t23),((t14,t15),(t16,(((t24,t25),(t13,t12)),(t11,(((t6,t7),t8),(t9,t10))))))),(t27,t26)))),t0); (((t2,t3),((t5,t4),((t26,t27),(((t16,(t15,t14)),(((t12,t13),(t24,t25)),(t11,((t9,t10),(t8,(t7,t6)))))),(((t18,t17),((t19,t20),(t22,t21))),t23))))),t1,t0); (((t2,t3),((t5,t4),((t26,t27),((((((t12,t13),(t24,t25)),(t11,((t9,t10),(t8,(t7,t6))))),(t15,t14)),(((t18,t17),((t19,t20),(t22,t21))),t23)),t16)))),t1,t0); (((t5,t4),(((t26,t27),(((t11,((t9,t10),(t8,(t7,t6)))),(((t12,t13),t16),(t15,t14))),((t24,t25),(((t18,t17),((t19,t20),(t22,t21))),t23)))),(t2,t3))),t1,t0); (((((((t15,t14),(t11,((t9,t10),(t8,(t7,t6))))),t16),(t12,t13)),((t24,t25),(((t22,(t18,t17)),((t19,t20),t21)),t23))),(((t2,t3),(t5,t4)),(t26,t27))),t1,t0); ((((t26,t27),(t5,t4)),(((((t15,t14),((t24,t25),(t11,((t9,t10),(t8,(t7,t6)))))),(t16,(t12,t13))),(((t18,t17),((t19,t20),(t21,t22))),t23)),(t2,t3))),t1,t0); ((((((t15,t14),((t24,t25),(t11,((t9,t10),(t8,(t7,t6)))))),(t16,(t12,t13))),(((t18,t17),((t19,t20),(t21,t22))),t23)),((t2,t3),(t27,((t5,t4),t26)))),t1,t0); (((t2,t3),((t5,t4),(((((t15,t14),((t24,t25),(t11,((t9,t10),(t8,(t7,t6)))))),((t12,t13),t16)),(((t18,t17),((t19,t20),(t21,t22))),t23)),(t26,t27)))),t1,t0); (((t2,t3),((t5,t4),(((((t15,t14),((t24,t25),(t11,((t9,t10),(t8,(t7,t6)))))),((t12,t13),t16)),(((t18,t17),((t19,t20),(t21,t22))),t23)),(t26,t27)))),t1,t0); ((((t26,t27),(t2,t3)),((t5,t4),(((t16,(t15,t14)),((t11,((t9,t10),(t8,(t7,t6)))),(t12,t13))),((t24,t25),(((t18,t17),((t19,t20),(t21,t22))),t23))))),t1,t0); ((((t5,t4),(((((t18,t17),((t19,t20),(t21,t22))),t23),(((t11,((t9,t10),(t8,(t7,t6)))),((t12,t13),(t15,t14))),(t16,(t24,t25)))),(t26,t27))),(t2,t3)),t1,t0); (((t2,t3),(((t26,t27),((((((t9,t10),((t6,t7),t8)),t11),((t12,t13),(t25,t24))),((t15,t14),t16)),(((t18,t17),((t22,t21),(t20,t19))),t23))),(t4,t5))),t1,t0); (((t4,t5),((((t2,t3),((((((t9,t10),((t6,t7),t8)),t11),((t12,t13),(t25,t24))),((t15,t14),t16)),(((t20,t19),((t18,t17),(t22,t21))),t23))),t27),t26)),t1,t0); ((((t27,t26),((((((t22,t21),(t20,t19)),(t18,t17)),((t25,t24),t23)),(((((t9,t10),((t6,t7),t8)),t11),((t12,t13),(t15,t14))),t16)),(t4,t5))),(t2,t3)),t1,t0); (((t4,t5),(((t27,t26),(((((t22,t21),(t20,t19)),(t18,t17)),((t25,t24),t23)),(((t12,t13),(((t9,t10),((t6,t7),t8)),t11)),(t16,(t15,t14))))),(t2,t3))),t1,t0); (((t4,t5),((t16,((t15,t14),(((t25,t24),(t23,(((t22,t21),(t20,t19)),(t18,t17)))),((t12,t13),(((t9,t10),((t6,t7),t8)),t11))))),((t27,t26),(t2,t3)))),t1,t0); ((((t4,t5),(((t23,(((t22,t21),(t20,t19)),(t18,t17))),(((t16,(t15,t14)),(((t9,t10),((t6,t7),t8)),t11)),((t25,t24),(t12,t13)))),(t27,t26))),(t2,t3)),t1,t0); (((t4,t5),(((t23,(((t22,t21),(t20,t19)),(t18,t17))),(((t16,(t15,t14)),(((t9,t10),((t6,t7),t8)),t11)),((t25,t24),(t12,t13)))),((t2,t3),(t27,t26)))),t1,t0); (((t2,t3),((((((t25,t24),t23),(((t22,t21),(t20,t19)),(t18,t17))),((t16,(t15,t14)),((((t9,t10),((t6,t7),t8)),t11),(t12,t13)))),(t27,t26)),(t4,t5))),t1,t0); (((t2,t3),((((t23,(((t22,t21),(t20,t19)),(t18,t17))),(((t12,t13),t16),(((((t9,t10),((t6,t7),t8)),t11),(t25,t24)),(t15,t14)))),(t27,t26)),(t4,t5))),t1,t0); (((t2,t3),(((t23,(((t22,t21),(t20,t19)),(t18,t17))),((((((t9,t10),((t6,t7),t8)),t11),(t25,t24)),((t15,t14),(t12,t13))),t16)),((t27,t26),(t4,t5)))),t1,t0); (t1,((t3,t2),(((t5,t4),(t27,t26)),((((t25,t24),(t23,((t17,t18),((t22,t21),(t19,t20))))),((t12,t13),((t15,t14),(((t10,t9),(t8,(t6,t7))),t11)))),t16))),t0); (t1,(((t27,t26),(t3,t2)),((t5,t4),(((t25,t24),(t23,((t17,t18),((t22,t21),(t19,t20))))),((t16,(t15,t14)),((((t10,t9),(t8,(t6,t7))),t11),(t12,t13)))))),t0); (t1,((t5,t4),((((t23,((t17,t18),((t22,t21),(t19,t20)))),((t16,(t15,t14)),((((t10,t9),(t8,(t6,t7))),t11),((t25,t24),(t12,t13))))),(t27,t26)),(t3,t2))),t0); (t1,((((t25,t24),(t23,((t17,t18),((t22,t21),(t19,t20))))),((t16,(t15,t14)),((((t10,t9),(t8,(t6,t7))),t11),(t12,t13)))),(((t5,t4),(t27,t26)),(t3,t2))),t0); (t1,((t3,t2),((t5,t4),(((t23,((t17,t18),((t22,t21),(t19,t20)))),((t16,(((t25,t24),(((t10,t9),(t8,(t6,t7))),t11)),(t15,t14))),(t12,t13))),(t27,t26)))),t0); (t1,((t3,t2),((t5,t4),((((t25,t24),(t23,((t17,t18),((t22,t21),(t19,t20))))),(((((t10,t9),(t8,(t6,t7))),t11),(t15,t14)),(t16,(t12,t13)))),(t27,t26)))),t0); (t1,((t3,t2),((((t25,t24),(t23,((t17,t18),((t22,t21),(t19,t20))))),((t15,t14),(t16,((t12,t13),(((t10,t9),(t8,(t6,t7))),t11))))),((t27,t26),(t5,t4)))),t0); (t1,((t3,t2),((((t23,((t17,t18),((t22,t21),(t19,t20)))),(((t12,t13),(((((t10,t9),(t8,(t6,t7))),t11),(t15,t14)),t16)),(t25,t24))),(t27,t26)),(t5,t4))),t0); (t1,((t5,t4),((t3,t2),((((t16,(t15,t14)),((((t10,t9),(t8,(t6,t7))),t11),(t12,t13))),((t25,t24),(t23,((t17,t18),((t22,t21),(t19,t20)))))),(t27,t26)))),t0); (t1,((t3,t2),((((t16,(t15,t14)),((((t10,t9),(t8,(t6,t7))),t11),(t12,t13))),((t25,t24),(t23,((t17,t18),((t22,t21),(t19,t20)))))),((t27,t26),(t5,t4)))),t0); (t1,(((t4,t5),(t27,t26)),((t3,t2),(((((t22,t21),(t19,t20)),(t18,t17)),t23),((t16,(t15,t14)),((t12,t13),((t25,t24),(t11,((t10,t9),(t8,(t7,t6)))))))))),t0); (t1,((t3,t2),(((((((t22,t21),(t19,t20)),(t18,t17)),t23),(t16,((t15,t14),((t11,((t10,t9),(t8,(t7,t6)))),((t12,t13),(t25,t24)))))),(t27,t26)),(t4,t5))),t0); (t1,((t3,t2),((t16,((t15,t14),(((t11,((t10,t9),(t8,(t7,t6)))),(t12,t13)),((t25,t24),((((t22,t21),(t19,t20)),(t18,t17)),t23))))),(((t4,t5),t26),t27))),t0); (t1,((t3,t2),(((((((t22,t21),(t19,t20)),(t18,t17)),t23),(t16,((t15,t14),(((t25,t24),(t12,t13)),(t11,((t10,t9),(t8,(t7,t6)))))))),(t26,t27)),(t4,t5))),t0); (t1,((t3,t2),(((((t25,t24),((((t21,(t19,t20)),(t18,t17)),t22),t23)),(((t12,t13),(t11,((t10,t9),(t8,(t7,t6))))),(t16,(t15,t14)))),(t26,t27)),(t4,t5))),t0); (t1,((t3,t2),((t4,t5),(((((t18,t17),((t21,t22),(t19,t20))),t23),(t16,((t15,t14),(((t25,t24),(t12,t13)),(t11,((t10,t9),(t8,(t7,t6)))))))),(t26,t27)))),t0); (t1,((t4,t5),(((((t21,(t19,t20)),((t18,t17),t22)),t23),(t16,(((t15,t14),((t11,((t10,t9),(t8,(t7,t6)))),(t25,t24))),(t12,t13)))),((t3,t2),(t26,t27)))),t0); (t1,((t3,t2),(((t26,t27),(((t25,t24),((((t22,t21),(t19,t20)),(t18,t17)),t23)),(((t11,((t10,t9),(t8,(t7,t6)))),(t12,t13)),((t15,t14),t16)))),(t4,t5))),t0); (t1,((t3,t2),(((t26,t27),(((((t22,t21),(t19,t20)),(t18,t17)),t23),((((t15,t14),((t25,t24),(t11,((t10,t9),(t8,(t7,t6)))))),(t12,t13)),t16))),(t4,t5))),t0); (t1,((t3,t2),(((t26,t27),(((((t22,t21),(t19,t20)),(t18,t17)),t23),((((t12,t13),(t25,t24)),(t11,((t10,t9),(t8,(t7,t6))))),(t16,(t15,t14))))),(t4,t5))),t0); (((((t23,((t21,(t18,t17)),(t22,(t20,t19)))),(t16,((t15,t14),(((t25,t24),(t12,t13)),(t11,((t8,(t6,t7)),(t10,t9))))))),(t26,t27)),((t4,t5),(t3,t2))),t1,t0); (((t3,t2),((t16,(((t15,t14),((t12,t13),(t11,((t8,(t6,t7)),(t10,t9))))),(t23,((t25,t24),((t18,t17),((t21,t22),(t20,t19))))))),((t26,t27),(t4,t5)))),t1,t0); ((((t26,t27),(t4,t5)),((t3,t2),(((t25,t24),(((t18,t17),((t21,t22),(t20,t19))),t23)),((t16,(t15,t14)),((t12,t13),(t11,((t8,(t6,t7)),(t10,t9)))))))),t1,t0); (((t3,t2),((((t25,t24),(((t18,t17),((t21,t22),(t20,t19))),t23)),((t16,(t15,t14)),((t12,t13),(t11,((t8,(t6,t7)),(t10,t9)))))),((t26,t27),(t4,t5)))),t1,t0); ((((t26,t27),(((t15,t14),(((t12,t13),(t11,((t8,(t6,t7)),(t10,t9)))),((t25,t24),(((t18,t17),((t21,t22),(t20,t19))),t23)))),t16)),((t3,t2),(t4,t5))),t1,t0); (((t4,t5),(((t26,t27),((((t18,t17),((t21,t22),(t20,t19))),(t23,(t25,t24))),((t16,(t15,t14)),((t12,t13),(t11,((t8,(t6,t7)),(t10,t9))))))),(t3,t2))),t1,t0); (((t3,t2),(((t4,t5),(t26,t27)),(((t23,((t25,t24),((t18,t17),((t21,t22),(t20,t19))))),((t15,t14),((t12,t13),(t11,((t8,(t6,t7)),(t10,t9)))))),t16))),t1,t0); ((((t3,t2),(t26,t27)),(((((t18,t17),((t21,t22),(t20,t19))),t23),((t15,t14),((((t25,t24),(t12,t13)),(t11,((t8,(t6,t7)),(t10,t9)))),t16))),(t4,t5))),t1,t0); (((t4,t5),(((t3,t2),(t26,t27)),(((t25,t24),(((t18,t17),((t21,t22),(t20,t19))),t23)),(((t12,t13),(t11,((t8,(t6,t7)),(t10,t9)))),(t16,(t15,t14)))))),t1,t0); (((t3,t2),(((t26,t27),((((t18,t17),((t21,t22),(t20,t19))),t23),((t16,((t15,t14),((t12,t13),(t11,((t8,(t6,t7)),(t10,t9)))))),(t25,t24)))),(t4,t5))),t1,t0); (t1,((t5,t4),((t3,t2),(t27,(t26,((t23,((t18,t17),((t19,t20),(t22,t21)))),(t16,(((t15,t14),((t25,t24),(t11,((t9,t10),(t8,(t6,t7)))))),(t13,t12)))))))),t0); (t1,((t3,t2),((t5,t4),((t27,t26),((t23,((t25,t24),((t18,t17),((t19,t20),(t22,t21))))),(((t11,((t9,t10),(t8,(t6,t7)))),(t15,t14)),((t13,t12),t16)))))),t0); (t1,((t5,t4),(((t3,t2),(t27,t26)),((((t18,t17),((t19,t20),(t22,t21))),t23),(((t13,t12),(t15,t14)),(((t25,t24),(t11,((t9,t10),(t8,(t6,t7))))),t16))))),t0); (t1,((t3,t2),((t5,t4),((t27,t26),((((t25,t24),((t18,t17),((t19,t20),(t22,t21)))),t23),(t16,(((t15,t14),(t13,t12)),(t11,((t9,t10),(t8,(t6,t7)))))))))),t0); (t1,(((t27,t26),((((t18,t17),((t19,t20),(t22,t21))),(t23,(t25,t24))),(((t13,t12),(t11,((t9,t10),(t8,(t6,t7))))),(t16,(t15,t14))))),((t3,t2),(t5,t4))),t0); (t1,(((t27,t26),((((t18,t17),((t19,t20),(t22,t21))),t23),(t16,((t15,t14),((t13,t12),((t25,t24),(t11,((t9,t10),(t8,(t6,t7)))))))))),((t3,t2),(t5,t4))),t0); (t1,((t5,t4),(((t27,t26),((((t18,t17),((t19,t20),(t22,t21))),t23),((((t13,t12),(t25,t24)),(t11,((t9,t10),(t8,(t6,t7))))),((t15,t14),t16)))),(t3,t2))),t0); (t1,(((t3,t2),(((t25,t24),(((t18,t17),((t19,t20),(t22,t21))),t23)),((t13,t12),((t11,((t9,t10),(t8,(t6,t7)))),((t15,t14),t16))))),((t27,t26),(t5,t4))),t0); (t1,((t3,t2),((t5,t4),((((t25,t24),(((t18,t17),((t19,t20),(t22,t21))),t23)),(((t13,t12),((t11,((t9,t10),(t8,(t6,t7)))),(t15,t14))),t16)),(t27,t26)))),t0); (t1,((t5,t4),((((((t18,t17),((t19,t20),(t22,t21))),t23),(((t11,((t9,t10),(t8,(t6,t7)))),(t25,t24)),((t16,(t15,t14)),(t13,t12)))),(t27,t26)),(t3,t2))),t0); (((t2,t3),((t4,t5),(((t16,(((t14,t15),(t11,(((t7,t6),t8),(t9,t10)))),((t13,t12),(t25,t24)))),(t23,((t18,t17),((t22,t21),(t19,t20))))),(t26,t27)))),t1,t0); ((((((t11,(((t7,t6),t8),(t9,t10))),((t13,t12),(t25,t24))),(t16,(t14,t15))),(t23,((t18,t17),((t22,t21),(t19,t20))))),((t26,t27),((t2,t3),(t4,t5)))),t1,t0); (((t4,t5),(((((t13,t12),((t25,t24),(t11,(((t7,t6),t8),(t9,t10))))),(t16,(t14,t15))),(t23,((t18,t17),((t22,t21),(t19,t20))))),((t2,t3),(t26,t27)))),t1,t0); ((((t16,((t14,t15),(((t25,t24),(t23,((t18,t17),((t22,t21),(t19,t20))))),((t11,(((t7,t6),t8),(t9,t10))),(t13,t12))))),(t2,t3)),((t4,t5),(t26,t27))),t1,t0); ((((t4,t5),((t26,t27),((t23,((t18,t17),((t22,t21),(t19,t20)))),(t16,((t14,t15),(((t25,t24),(t11,(((t7,t6),t8),(t9,t10)))),(t13,t12))))))),(t2,t3)),t1,t0); (((((t25,t24),(t23,((t18,t17),((t22,t21),(t19,t20))))),((t16,(t14,t15)),((t11,(((t7,t6),t8),(t9,t10))),(t13,t12)))),((t4,t5),((t2,t3),(t26,t27)))),t1,t0); (((t2,t3),((t4,t5),((t26,t27),(((t25,t24),(t23,((t18,t17),((t22,t21),(t19,t20))))),((t16,(t14,t15)),((t11,(((t7,t6),t8),(t9,t10))),(t13,t12))))))),t1,t0); ((((t26,t27),(((t25,t24),(t23,((t18,t17),((t22,t21),(t19,t20))))),((t16,(t14,t15)),((t11,(((t7,t6),t8),(t9,t10))),(t13,t12))))),((t2,t3),(t4,t5))),t1,t0); (((t4,t5),(((t26,t27),(t2,t3)),((t23,(((t18,t17),((t22,t21),(t19,t20))),(t25,t24))),((t16,(t14,t15)),((t11,(((t7,t6),t8),(t9,t10))),(t13,t12)))))),t1,t0); ((((t2,t3),(t4,t5)),((t26,t27),(((t23,(((t18,t17),((t22,t21),(t19,t20))),(t25,t24))),((t13,t12),((t14,t15),(t11,(((t7,t6),t8),(t9,t10)))))),t16))),t1,t0); ((((t4,t5),(t27,t26)),((t3,t2),((t23,((t18,t17),((t22,t21),(t20,t19)))),((((t12,t13),(t24,t25)),(t11,((t8,(t6,t7)),(t9,t10)))),(t16,(t14,t15)))))),t1,t0); ((((t3,t2),(t4,t5)),((t27,t26),(t16,((t23,((t18,t17),((t22,t21),(t20,t19)))),(((t24,t25),(t12,t13)),((t14,t15),(t11,((t8,(t6,t7)),(t9,t10))))))))),t1,t0); (((t4,t5),(((t27,t26),((t23,((t18,t17),((t22,t21),(t20,t19)))),((((t12,t13),t16),(t14,t15)),((t11,((t8,(t6,t7)),(t9,t10))),(t24,t25))))),(t3,t2))),t1,t0); (((((t3,t2),(t27,t26)),((t23,((t18,t17),((t22,t21),(t20,t19)))),((((t12,t13),t16),((t14,t15),(t11,((t8,(t6,t7)),(t9,t10))))),(t24,t25)))),(t4,t5)),t1,t0); (((((t3,t2),(t27,t26)),((t23,((t18,t17),((t22,t21),(t20,t19)))),(((t14,t15),(((t12,t13),(t24,t25)),(t11,((t8,(t6,t7)),(t9,t10))))),t16))),(t4,t5)),t1,t0); (((((t3,t2),(t27,t26)),((t16,(t14,t15)),(((t24,t25),(t23,((t18,t17),((t22,t21),(t20,t19))))),((t11,((t8,(t6,t7)),(t9,t10))),(t12,t13))))),(t4,t5)),t1,t0); (((t3,t2),(((t27,t26),(t4,t5)),((t23,((t18,t17),((t22,t21),(t20,t19)))),((t16,((t14,t15),(t11,((t8,(t6,t7)),(t9,t10))))),((t24,t25),(t12,t13)))))),t1,t0); (((t3,t2),((t4,t5),((((t24,t25),(t23,((t18,t17),((t22,t21),(t20,t19))))),((t16,((t14,t15),(t11,((t8,(t6,t7)),(t9,t10))))),(t12,t13))),(t27,t26)))),t1,t0); ((((((t16,(t14,t15)),((t24,t25),((t12,t13),(t11,((t8,(t6,t7)),(t9,t10)))))),(t23,((t18,t17),((t22,t21),(t20,t19))))),(t27,t26)),((t3,t2),(t4,t5))),t1,t0); (((t3,t2),((t4,t5),((((t16,(t14,t15)),((t11,((t8,(t6,t7)),(t9,t10))),((t24,t25),(t12,t13)))),(t23,((t18,t17),((t22,t21),(t20,t19))))),(t27,t26)))),t1,t0); ((((t27,t26),((t16,(t15,t14)),(((t24,t25),(t23,((t17,t18),((t19,t20),(t21,t22))))),((t13,t12),(t11,((t8,(t6,t7)),(t9,t10))))))),((t5,t4),(t2,t3))),t1,t0); ((((t27,t26),(t5,t4)),((t2,t3),((t23,((t17,t18),((t19,t20),(t21,t22)))),((t16,(t15,t14)),(((t11,((t8,(t6,t7)),(t9,t10))),(t24,t25)),(t13,t12)))))),t1,t0); ((((t5,t4),((t27,t26),((t23,((t17,t18),((t19,t20),(t21,t22)))),((t15,t14),(((t13,t12),(t11,((t8,(t6,t7)),(t9,t10)))),((t24,t25),t16)))))),(t2,t3)),t1,t0); (((t5,t4),(((t2,t3),(t27,t26)),((t23,((t17,t18),((t19,t20),(t21,t22)))),((t24,t25),((t16,(t15,t14)),((t13,t12),(t11,((t8,(t6,t7)),(t9,t10))))))))),t1,t0); ((((t27,t26),((t23,((t17,t18),((t19,t20),(t21,t22)))),((t16,(t15,t14)),((t13,t12),((t24,t25),(t11,((t8,(t6,t7)),(t9,t10)))))))),((t5,t4),(t2,t3))),t1,t0); (((t5,t4),(((t2,t3),(t27,t26)),((t23,((t17,t18),((t19,t20),(t21,t22)))),((t16,(t15,t14)),((t13,t12),((t24,t25),(t11,((t8,(t6,t7)),(t9,t10))))))))),t1,t0); (((t2,t3),(((t27,t26),((t23,((t17,t18),((t19,t20),(t21,t22)))),(t16,(((t24,t25),(t13,t12)),((t15,t14),(t11,((t8,(t6,t7)),(t9,t10)))))))),(t5,t4))),t1,t0); (((t2,t3),(((t27,t26),((t23,((t17,t18),((t19,t20),(t21,t22)))),((((t24,t25),(t11,((t8,(t6,t7)),(t9,t10)))),(t15,t14)),((t13,t12),t16)))),(t5,t4))),t1,t0); (((t5,t4),((t2,t3),((t27,t26),((t23,((t17,t18),((t19,t20),(t21,t22)))),((t16,(t15,t14)),((t13,t12),((t24,t25),(t11,((t8,(t6,t7)),(t9,t10)))))))))),t1,t0); (((t2,t3),(((t26,((t23,((t22,(t17,t18)),((t19,t20),t21))),(((t11,((t8,(t6,t7)),(t9,t10))),(t16,(t15,t14))),((t13,t12),(t24,t25))))),(t5,t4)),t27)),t1,t0); (((((t5,t4),(t27,t26)),(((t16,(t14,t15)),((t12,t13),((t24,t25),(t11,((t8,(t6,t7)),(t10,t9)))))),(t23,((t17,t18),((t19,t20),(t22,t21)))))),(t3,t2)),t1,t0); (((t5,t4),((t27,t26),(((t16,(((t12,t13),(t11,((t8,(t6,t7)),(t10,t9)))),(t14,t15))),((t24,t25),(t23,((t17,t18),(t22,(t21,(t19,t20))))))),(t3,t2)))),t1,t0); ((((((t12,t13),(t11,((t8,(t6,t7)),(t10,t9)))),((t14,t15),t16)),((t24,t25),(t23,((t17,t18),((t19,t20),(t22,t21)))))),((t3,t2),((t5,t4),(t26,t27)))),t1,t0); (((t3,t2),((t5,t4),((t26,t27),((t16,((((t24,t25),(t12,t13)),(t11,((t8,(t6,t7)),(t10,t9)))),(t14,t15))),(t23,((t17,t18),((t19,t20),(t22,t21)))))))),t1,t0); ((((t16,((((t23,((t17,t18),((t19,t20),(t22,t21)))),(t24,t25)),((t14,t15),(t12,t13))),(t11,((t8,(t6,t7)),(t10,t9))))),((t3,t2),(t26,t27))),(t5,t4)),t1,t0); (((t3,t2),(((t26,t27),(((t16,(t14,t15)),(((t24,t25),(t11,((t8,(t6,t7)),(t10,t9)))),(t12,t13))),(t23,((t17,t18),((t19,t20),(t22,t21)))))),(t5,t4))),t1,t0); (((t3,t2),(((t26,t27),((((t11,((t8,(t6,t7)),(t10,t9))),((t14,t15),t16)),((t12,t13),(t24,t25))),(t23,((t17,t18),((t19,t20),(t22,t21)))))),(t5,t4))),t1,t0); (((t3,t2),(((t26,t27),((((t14,t15),t16),((t12,t13),(t11,((t8,(t6,t7)),(t10,t9))))),(((t24,t25),t23),((t17,t18),((t19,t20),(t22,t21)))))),(t5,t4))),t1,t0); (((t3,t2),(((t26,t27),((t16,(((t11,((t8,(t6,t7)),(t10,t9))),((t24,t25),(t12,t13))),(t14,t15))),((t22,((t17,t18),(t21,(t19,t20)))),t23))),(t5,t4))),t1,t0); ((((((t12,t13),((t11,((t8,(t6,t7)),(t10,t9))),(t24,t25))),((t14,t15),t16)),(((t17,t18),((t22,t21),(t19,t20))),t23)),(((t26,(t5,t4)),(t3,t2)),t27)),t1,t0); (((t2,t3),((((t23,((t24,t25),(((t21,t22),(t19,t20)),(t17,t18)))),((t12,t13),((t16,(t15,t14)),(t11,((t8,(t6,t7)),(t9,t10)))))),(t27,t26)),(t4,t5))),t1,t0); (((t2,t3),((((((t21,t22),(t19,t20)),(t17,t18)),t23),(((t15,t14),((t12,t13),((t11,((t8,(t6,t7)),(t9,t10))),(t24,t25)))),t16)),((t4,t5),(t26,t27)))),t1,t0); ((((t4,t5),(t26,t27)),((t2,t3),(((((t21,t22),(t19,t20)),(t17,t18)),t23),(((t12,t13),((t11,((t8,(t6,t7)),(t9,t10))),(t24,t25))),(t16,(t15,t14)))))),t1,t0); (((t4,t5),((((t24,t25),((((t21,t22),(t19,t20)),(t17,t18)),t23)),(((t11,((t8,(t6,t7)),(t9,t10))),(t12,t13)),(t16,(t15,t14)))),((t26,t27),(t2,t3)))),t1,t0); (((t2,t3),(((((((t21,t22),(t19,t20)),(t17,t18)),t23),(t16,(((t15,t14),((t24,t25),(t11,((t8,(t6,t7)),(t9,t10))))),(t12,t13)))),(t26,t27)),(t4,t5))),t1,t0); (((t2,t3),(((((((t21,t22),(t19,t20)),(t17,t18)),t23),((t16,(t15,t14)),(((t24,t25),(t11,((t8,(t6,t7)),(t9,t10)))),(t12,t13)))),(t26,t27)),(t4,t5))),t1,t0); (((t2,t3),(((((((t21,t22),(t19,t20)),(t17,t18)),t23),(t16,((t15,t14),((t11,((t8,(t6,t7)),(t9,t10))),((t12,t13),(t24,t25)))))),(t26,t27)),(t4,t5))),t1,t0); (((t2,t3),(((((((t21,t22),(t19,t20)),(t17,t18)),t23),(((t12,t13),((t24,t25),(t11,((t8,(t6,t7)),(t9,t10))))),(t16,(t15,t14)))),(t26,t27)),(t4,t5))),t1,t0); (((((((t24,t25),(((t21,t22),(t19,t20)),(t17,t18))),t23),((t12,t13),(((t15,t14),(t11,((t8,(t6,t7)),(t9,t10)))),t16))),((t2,t3),(t26,t27))),(t4,t5)),t1,t0); ((((t26,t27),((((t22,(t19,t20)),(t21,(t17,t18))),t23),((((t12,t13),(t11,((t8,(t6,t7)),(t9,t10)))),(t16,(t15,t14))),(t24,t25)))),((t4,t5),(t2,t3))),t1,t0); (((t4,t5),(((((t15,t14),((((t10,t9),((t6,t7),t8)),t11),((t24,t25),(t13,t12)))),((((t19,t20),(t21,t22)),(t17,t18)),t23)),t16),((t26,t27),(t3,t2)))),t1,t0); ((((t26,t27),(t3,t2)),((t4,t5),(((t15,t14),(((((t10,t9),((t6,t7),t8)),t11),(t24,t25)),(t16,(t13,t12)))),((((t19,t20),(t21,t22)),(t17,t18)),t23)))),t1,t0); ((((t26,t27),(t4,t5)),((((((t10,t9),((t6,t7),t8)),t11),(t16,((t13,t12),(t15,t14)))),(((((t19,t20),(t21,t22)),(t17,t18)),t23),(t24,t25))),(t3,t2))),t1,t0); (((t3,t2),(((t26,t27),(t4,t5)),(((((t19,t20),(t21,t22)),(t17,t18)),t23),(t16,((t15,t14),(((t24,t25),(((t10,t9),((t6,t7),t8)),t11)),(t13,t12))))))),t1,t0); (((t4,t5),((((((t19,t20),(t21,t22)),(t17,t18)),t23),((((t24,t25),(((t10,t9),((t6,t7),t8)),t11)),(t15,t14)),((t13,t12),t16))),((t3,t2),(t26,t27)))),t1,t0); (((t4,t5),((t26,t27),((((t24,t25),((((t19,t20),(t21,t22)),(t17,t18)),t23)),((t16,(t15,t14)),((t13,t12),(((t10,t9),((t6,t7),t8)),t11)))),(t3,t2)))),t1,t0); (((t4,t5),((t3,t2),((t26,t27),(((t24,t25),((((t19,t20),(t21,t22)),(t17,t18)),t23)),((((t10,t9),((t6,t7),t8)),t11),(t16,((t15,t14),(t13,t12)))))))),t1,t0); (((((t3,t2),(t26,t27)),(((((t19,t20),(t21,t22)),(t17,t18)),t23),((t16,(t15,t14)),(((((t10,t9),((t6,t7),t8)),t11),(t24,t25)),(t13,t12))))),(t4,t5)),t1,t0); (((((t3,t2),(t26,t27)),(((((t19,t20),(t21,t22)),(t17,t18)),t23),(t16,((t15,t14),((((t10,t9),((t6,t7),t8)),t11),((t24,t25),(t13,t12))))))),(t4,t5)),t1,t0); ((((t3,t2),((t26,t27),(((((t19,t20),(t21,t22)),(t17,t18)),t23),(((t13,t12),((((t10,t9),((t6,t7),t8)),t11),(t24,t25))),(t16,(t15,t14)))))),(t4,t5)),t1,t0); (t1,((t5,t4),((((t24,t25),((((t22,t21),(t19,t20)),(t18,t17)),t23)),(((t12,t13),(t11,((t9,t10),((t7,t6),t8)))),((t15,t14),t16))),((t26,t27),(t3,t2)))),t0); (t1,((t5,t4),((t26,t27),((t3,t2),(((((t22,t21),(t19,t20)),(t18,t17)),t23),((t11,((t9,t10),((t7,t6),t8))),((t15,t14),(((t24,t25),(t12,t13)),t16))))))),t0); (t1,(((t3,t2),(((t24,t25),((((t22,t21),(t19,t20)),(t18,t17)),t23)),(((t12,t13),(t11,((t9,t10),((t7,t6),t8)))),(t16,(t15,t14))))),((t5,t4),(t26,t27))),t0); (t1,((t3,t2),((t5,t4),((t26,t27),(((((t22,t21),(t19,t20)),(t18,t17)),t23),((((t24,t25),(t12,t13)),(t11,((t9,t10),((t7,t6),t8)))),(t16,(t15,t14))))))),t0); (t1,((t5,t4),((t26,t27),((t3,t2),(((((t22,t21),(t19,t20)),(t18,t17)),t23),(((t24,t25),(t12,t13)),(t16,((t15,t14),(t11,((t9,t10),((t7,t6),t8)))))))))),t0); (t1,(((t3,t2),(t5,t4)),((((((t22,t21),(t19,t20)),(t18,t17)),t23),((((t24,t25),(t12,t13)),(t11,((t9,t10),((t7,t6),t8)))),(t16,(t15,t14)))),(t26,t27))),t0); (t1,(t27,(((t26,(t3,t2)),(t5,t4)),(((((t22,t21),(t19,t20)),(t18,t17)),t23),((((t12,t13),(t11,((t9,t10),((t7,t6),t8)))),(t16,(t15,t14))),(t24,t25))))),t0); (t1,((t5,t4),((t27,t26),((t3,t2),(((t12,t13),(t16,((t15,t14),(t11,((t9,t10),((t7,t6),t8)))))),((t24,t25),((((t22,t21),(t19,t20)),(t18,t17)),t23)))))),t0); (t1,((t3,t2),(((((((t22,t21),(t19,t20)),(t18,t17)),t23),(((t12,t13),((t24,t25),(t11,((t9,t10),((t7,t6),t8))))),((t15,t14),t16))),(t27,t26)),(t5,t4))),t0); (t1,((t3,t2),((t27,t26),((t5,t4),(((((t22,t21),(t19,t20)),(t18,t17)),t23),((t24,t25),(((t12,t13),(t11,((t9,t10),((t7,t6),t8)))),(t16,(t15,t14)))))))),t0); (t1,(((t5,t4),(t27,t26)),((t16,((t14,t15),(((t24,t25),(t23,((t21,(t18,t17)),(t22,(t19,t20))))),((t11,((t10,t9),(t8,(t7,t6)))),(t12,t13))))),(t2,t3))),t0); (t1,(((t2,t3),(t26,t27)),((t5,t4),(((t24,t25),(t23,((t18,t17),((t21,t22),(t19,t20))))),(((t11,((t10,t9),(t8,(t7,t6)))),(t14,t15)),((t12,t13),t16))))),t0); (t1,(((t2,t3),(t26,t27)),((t5,t4),((((t18,t17),((t21,t22),(t19,t20))),((t24,t25),t23)),((t16,(t14,t15)),((t12,t13),(t11,((t10,t9),(t8,(t7,t6))))))))),t0); (t1,((t2,t3),((((t24,t25),(t23,((t21,(t18,t17)),(t22,(t19,t20))))),(((t11,((t10,t9),(t8,(t7,t6)))),(t14,t15)),((t12,t13),t16))),((t5,t4),(t26,t27)))),t0); (t1,((t5,t4),(((t2,t3),(t26,t27)),(((t24,t25),(t23,((t18,t17),((t21,t22),(t19,t20))))),(((t11,((t10,t9),(t8,(t7,t6)))),(t14,t15)),((t12,t13),t16))))),t0); (t1,((((t23,(((t18,t17),((t21,t22),(t19,t20))),(t24,t25))),((t14,t15),(((t12,t13),t16),(t11,((t10,t9),(t8,(t7,t6))))))),(t2,t3)),((t5,t4),(t26,t27))),t0); (t1,((((t23,((t18,t17),((t21,t22),(t19,t20)))),((t16,(t14,t15)),(((t24,t25),(t12,t13)),(t11,((t10,t9),(t8,(t7,t6))))))),(t5,t4)),((t26,t27),(t2,t3))),t0); (t1,((((t23,((t18,t17),((t21,t22),(t19,t20)))),((t11,((t10,t9),(t8,(t7,t6)))),((t16,(t14,t15)),((t24,t25),(t12,t13))))),(t5,t4)),((t26,t27),(t2,t3))),t0); (t1,((t5,t4),(((t26,t27),(t2,t3)),(t16,(((t14,t15),((t12,t13),(t11,((t10,t9),(t8,(t7,t6)))))),((t24,t25),(t23,((t18,t17),((t21,t22),(t19,t20))))))))),t0); (t1,((t5,t4),(((t26,t27),(t2,t3)),((t23,((t18,t17),((t21,t22),(t19,t20)))),((t16,((t12,t13),((t11,((t10,t9),(t8,(t7,t6)))),(t24,t25)))),(t14,t15))))),t0); (t1,(((t2,t3),((t26,t27),((t23,((t17,t18),((t19,t20),(t22,t21)))),(((t14,t15),t16),((t11,((t9,t10),(t8,(t7,t6)))),((t12,t13),(t25,t24))))))),(t5,t4)),t0); (t1,((t2,t3),(((t26,t27),((((t25,t24),(t23,((t17,t18),(((t19,t20),t21),t22)))),((t11,((t9,t10),(t8,(t7,t6)))),((t14,t15),(t12,t13)))),t16)),(t5,t4))),t0); (t1,(((t26,t27),((t23,(((t17,t18),((t19,t20),(t21,t22))),(t25,t24))),(((t14,t15),(t11,((t9,t10),(t8,(t7,t6))))),(t16,(t12,t13))))),((t5,t4),(t2,t3))),t0); (t1,((t27,((((t25,t24),(t23,((t17,t18),((t19,t20),(t21,t22))))),((t16,(t14,t15)),((t11,((t9,t10),(t8,(t7,t6)))),(t12,t13)))),t26)),((t5,t4),(t2,t3))),t0); (t1,((t2,t3),((((t23,((t17,t18),((t19,t20),(t21,t22)))),(((t16,(t14,t15)),((t11,((t9,t10),(t8,(t7,t6)))),(t12,t13))),(t25,t24))),(t26,t27)),(t5,t4))),t0); (t1,((t2,t3),((((t23,((t17,t18),(t21,(t22,(t19,t20))))),((t16,(t14,t15)),((t11,((t9,t10),(t8,(t7,t6)))),((t25,t24),(t12,t13))))),(t26,t27)),(t5,t4))),t0); (t1,(((t2,t3),(t26,t27)),((t5,t4),((t23,((t17,t18),((t19,t20),(t21,t22)))),(t16,((t14,t15),((t11,((t9,t10),(t8,(t7,t6)))),((t25,t24),(t12,t13)))))))),t0); (t1,((t27,((t2,t3),t26)),((t5,t4),((((t23,(((t19,t20),t21),(t22,(t17,t18)))),(t25,t24)),((t12,t13),(t11,((t9,t10),(t8,(t7,t6)))))),(t16,(t14,t15))))),t0); (t1,(((((t23,(((t19,t20),(t22,t21)),(t17,t18))),(t25,t24)),((t12,t13),((t11,((t9,t10),(t8,(t7,t6)))),(t14,t15)))),t16),(((t2,t3),(t26,t27)),(t5,t4))),t0); (t1,((t2,t3),((((((t19,t20),(t22,t21)),(t17,t18)),((t25,t24),t23)),((t16,(t14,t15)),((t12,t13),(t11,((t9,t10),(t8,(t7,t6))))))),((t5,t4),(t26,t27)))),t0); ((((((t24,t25),(t11,((t9,t10),(t8,(t6,t7))))),((t15,t14),(t16,(t12,t13)))),(t23,(((t22,t21),(t19,t20)),(t18,t17)))),((t5,t4),((t26,t27),(t2,t3)))),t1,t0); ((((t26,t27),(((t16,(t12,t13)),((t11,((t9,t10),(t8,(t6,t7)))),(t15,t14))),((t24,t25),(t23,(((t22,t21),(t19,t20)),(t18,t17)))))),((t2,t3),(t5,t4))),t1,t0); (((t2,t3),((t5,t4),((t26,t27),((t23,((t21,(t19,t20)),(t22,(t18,t17)))),(((t16,(t15,t14)),((t12,t13),(t11,((t9,t10),(t8,(t6,t7)))))),(t24,t25)))))),t1,t0); (((t5,t4),(((t2,t3),(t26,t27)),((t23,((t18,t17),((t19,t20),(t21,t22)))),((t15,t14),(t16,(((t11,((t9,t10),(t8,(t6,t7)))),(t24,t25)),(t12,t13))))))),t1,t0); (((t5,t4),(((t2,t3),(t26,t27)),((t23,((t18,t17),((t19,t20),(t21,t22)))),((((t11,((t9,t10),(t8,(t6,t7)))),(t24,t25)),(t15,t14)),(t16,(t12,t13)))))),t1,t0); ((((t26,t27),(((t24,t25),(((t18,t17),((t19,t20),(t21,t22))),t23)),(((t15,t14),t16),((t12,t13),(t11,((t9,t10),(t8,(t6,t7)))))))),((t5,t4),(t2,t3))),t1,t0); (((t2,t3),((((t24,t25),(((t18,t17),((t19,t20),(t21,t22))),t23)),((t12,t13),((t11,((t9,t10),(t8,(t6,t7)))),((t15,t14),t16)))),((t26,t27),(t5,t4)))),t1,t0); ((((t26,t27),((((t24,t25),(((t18,t17),((t19,t20),(t21,t22))),t23)),((t15,t14),((t12,t13),(t11,((t9,t10),(t8,(t6,t7))))))),t16)),((t5,t4),(t2,t3))),t1,t0); (((t2,t3),(((t26,t27),((((t18,t17),((t19,t20),(t21,t22))),t23),((t16,(t12,t13)),((t15,t14),((t24,t25),(t11,((t9,t10),(t8,(t6,t7))))))))),(t5,t4))),t1,t0); (((t2,t3),(((t26,t27),((((t18,t17),((t19,t20),(t21,t22))),t23),(((t24,t25),(t11,((t9,t10),(t8,(t6,t7))))),((t16,(t12,t13)),(t15,t14))))),(t5,t4))),t1,t0); (((t2,t3),(t27,((t5,t4),(t26,((t16,((t14,t15),((t24,t25),((t12,t13),(t11,((t9,t10),(t8,(t7,t6)))))))),(t23,((t18,t17),((t22,t21),(t19,t20))))))))),t1,t0); ((((((t12,t13),t16),((t11,((t9,t10),(t8,(t7,t6)))),(t14,t15))),((t24,t25),(t23,((t18,t17),(t22,(t21,(t19,t20))))))),(((t2,t3),(t26,t27)),(t5,t4))),t1,t0); (((t2,t3),(((t26,t27),(((((t12,t13),t16),((t11,((t9,t10),(t8,(t7,t6)))),(t14,t15))),(t24,t25)),(t23,((t18,t17),((t19,t20),(t22,t21)))))),(t5,t4))),t1,t0); (((t2,t3),(((t26,t27),(((t16,(t14,t15)),((t11,((t9,t10),(t8,(t7,t6)))),((t24,t25),(t12,t13)))),(t23,((t18,t17),((t19,t20),(t22,t21)))))),(t5,t4))),t1,t0); (((t2,t3),(((t26,t27),((((t12,t13),(t11,((t9,t10),(t8,(t7,t6))))),((t14,t15),t16)),((t24,t25),(t23,((t18,t17),((t19,t20),(t22,t21))))))),(t5,t4))),t1,t0); (((t2,t3),(((t26,t27),((t23,((t18,t17),((t19,t20),(t22,t21)))),((((t11,((t9,t10),(t8,(t7,t6)))),((t12,t13),(t24,t25))),(t14,t15)),t16))),(t5,t4))),t1,t0); (((t2,t3),(((t26,t27),((t23,((t18,t17),((t19,t20),(t22,t21)))),(((t14,t15),((t11,((t9,t10),(t8,(t7,t6)))),(t24,t25))),((t12,t13),t16)))),(t5,t4))),t1,t0); ((((t26,t27),((t23,((t24,t25),((t18,t17),((t19,t20),(t22,t21))))),(t16,((t11,((t9,t10),(t8,(t7,t6)))),((t14,t15),(t12,t13)))))),((t5,t4),(t2,t3))),t1,t0); ((((t26,t27),(t2,t3)),((((t24,t25),(((t18,t17),((t19,t20),(t22,t21))),t23)),((t11,((t9,t10),(t8,(t7,t6)))),((t14,t15),(t16,(t12,t13))))),(t5,t4))),t1,t0); ((((t5,t4),((t26,t27),(((t24,t25),(((t18,t17),(t22,(t21,(t19,t20)))),t23)),((t12,t13),((t16,(t11,((t9,t10),(t8,(t7,t6))))),(t14,t15)))))),(t2,t3)),t1,t0); ((((t27,t26),((t23,((t18,t17),((t20,t19),(t22,t21)))),((t16,(t14,t15)),((t12,t13),((t11,((t10,t9),(t8,(t7,t6)))),(t24,t25)))))),((t5,t4),(t2,t3))),t1,t0); (((((t2,t3),(t27,t26)),(((t24,t25),(t23,((t18,t17),((t20,t19),(t22,t21))))),((t16,(t14,t15)),((t12,t13),(t11,((t10,t9),(t8,(t7,t6)))))))),(t5,t4)),t1,t0); ((((((t24,t25),(t23,((t18,t17),((t20,t19),(t22,t21))))),((t11,((t10,t9),(t8,(t7,t6)))),((t14,t15),(t12,t13)))),t16),(((t5,t4),(t2,t3)),(t27,t26))),t1,t0); (((t5,t4),((t2,t3),((t27,t26),((t23,((t18,t17),((t20,t19),(t22,t21)))),(((t12,t13),((t24,t25),(t11,((t10,t9),(t8,(t7,t6)))))),(t16,(t14,t15))))))),t1,t0); (((((t23,((t18,t17),((t20,t19),(t22,t21)))),(t16,((t14,t15),((t11,((t10,t9),(t8,(t7,t6)))),((t12,t13),(t24,t25)))))),(t5,t4)),((t2,t3),(t27,t26))),t1,t0); ((((((t24,t25),(t23,((t18,t17),((t20,t19),(t22,t21))))),(((t11,((t10,t9),(t8,(t7,t6)))),(t12,t13)),(t16,(t14,t15)))),(t5,t4)),(t27,(t26,(t2,t3)))),t1,t0); ((((t27,t26),((t16,(t14,t15)),((((t18,t17),((t20,t19),(t22,t21))),((t24,t25),t23)),((t11,((t10,t9),(t8,(t7,t6)))),(t12,t13))))),((t2,t3),(t5,t4))),t1,t0); ((((t27,t26),((((t24,t25),(t23,((t18,t17),((t20,t19),(t22,t21))))),(((t11,((t10,t9),(t8,(t7,t6)))),(t12,t13)),(t14,t15))),t16)),((t2,t3),(t5,t4))),t1,t0); (((((t2,t3),(t27,t26)),(((t14,t15),(((t24,t25),(t23,((t18,t17),((t20,t19),(t22,t21))))),((t11,((t10,t9),(t8,(t7,t6)))),(t12,t13)))),t16)),(t5,t4)),t1,t0); ((((((t23,((t18,t17),((t20,t19),(t22,t21)))),((t14,t15),(t16,((t11,((t10,t9),(t8,(t7,t6)))),((t24,t25),(t12,t13)))))),(t2,t3)),(t27,t26)),(t5,t4)),t1,t0); (((t2,t3),(((((t25,t24),(((t20,t19),(t21,t22)),(t17,t18))),t23),((t26,t27),(t5,t4))),((t13,t12),((t16,(t14,t15)),(((t8,(t6,t7)),(t9,t10)),t11))))),t1,t0); (((t2,t3),((t5,t4),((((((t13,t12),(((t8,(t6,t7)),(t9,t10)),t11)),(t14,t15)),((t25,t24),((((t20,t19),(t21,t22)),(t17,t18)),t23))),t16),(t26,t27)))),t1,t0); (((((((t13,t12),(((t8,(t6,t7)),(t9,t10)),t11)),(t16,(t14,t15))),(t23,((t25,t24),(((t20,t19),(t21,t22)),(t17,t18))))),(t26,t27)),((t2,t3),(t5,t4))),t1,t0); ((((((t16,((((t8,(t6,t7)),(t9,t10)),t11),((t13,t12),(t25,t24)))),(t14,t15)),((((t20,t19),(t21,t22)),(t17,t18)),t23)),(t26,t27)),((t2,t3),(t5,t4))),t1,t0); ((((t2,t3),((((t13,t12),(((t8,(t6,t7)),(t9,t10)),t11)),((t14,t15),t16)),((t25,t24),(((t20,t19),((t21,t22),(t17,t18))),t23)))),((t26,t27),(t5,t4))),t1,t0); ((((t2,t3),(t5,t4)),((((((t8,(t6,t7)),(t9,t10)),t11),((t14,t15),((t13,t12),t16))),((t25,t24),((((t22,t21),(t20,t19)),(t17,t18)),t23))),(t26,t27))),t1,t0); ((((t2,t3),((((t14,t15),(((t25,t24),(t13,t12)),(((t8,(t6,t7)),(t9,t10)),t11))),t16),((((t22,t21),(t20,t19)),(t17,t18)),t23))),((t26,t27),(t5,t4))),t1,t0); ((((t2,t3),((((t13,t12),(((t8,(t6,t7)),(t9,t10)),t11)),(t16,(t14,t15))),(((t25,t24),((t21,((t20,t19),t22)),(t17,t18))),t23))),(t27,((t5,t4),t26))),t1,t0); (((t5,t4),(((t26,t27),(t2,t3)),((t16,((t14,t15),(((t25,t24),(t13,t12)),(((t8,(t6,t7)),(t9,t10)),t11)))),((((t20,t19),(t22,t21)),(t17,t18)),t23)))),t1,t0); ((t27,(((t2,t3),t26),(((((((t8,(t6,t7)),(t9,t10)),t11),(t25,t24)),(((t13,t12),t16),(t14,t15))),((((t20,t19),(t22,t21)),(t17,t18)),t23)),(t5,t4)))),t1,t0); (t1,(((t23,((t18,t17),((t21,t22),(t20,t19)))),(((t14,t15),((t11,((t8,(t6,t7)),(t10,t9))),((t25,t24),(t13,t12)))),t16)),((t5,t4),(t27,((t3,t2),t26)))),t0); (t1,((t5,t4),(((t3,t2),(t26,t27)),((t23,((t18,t17),((t21,t22),(t20,t19)))),(((t11,((t8,(t6,t7)),(t10,t9))),((t13,t12),(t14,t15))),((t25,t24),t16))))),t0); (t1,(((t5,t4),(t3,t2)),((t26,t27),((t23,((t18,t17),((t21,t22),(t20,t19)))),(t16,((t14,t15),((t11,((t8,(t6,t7)),(t10,t9))),((t25,t24),(t13,t12)))))))),t0); (t1,((t3,t2),(((t26,t27),(((t25,t24),(t23,((t18,t17),((t21,t22),(t20,t19))))),(((t11,((t8,(t6,t7)),(t10,t9))),(t13,t12)),(t16,(t14,t15))))),(t5,t4))),t0); (t1,((t5,t4),((t3,t2),((t26,t27),((((t18,t17),((t21,t22),(t20,t19))),((t25,t24),t23)),(((t11,((t8,(t6,t7)),(t10,t9))),(t13,t12)),(t16,(t14,t15))))))),t0); (t1,((t3,t2),(((t5,t4),(t26,t27)),(((t25,t24),(t23,((t18,t17),((t21,t22),(t20,t19))))),(((t11,((t8,(t6,t7)),(t10,t9))),(t13,t12)),(t16,(t14,t15)))))),t0); (t1,(((t23,((t18,t17),((t21,t22),(t20,t19)))),((t14,t15),(((t11,((t8,(t6,t7)),(t10,t9))),(t13,t12)),((t25,t24),t16)))),((t5,t4),((t3,t2),(t26,t27)))),t0); (t1,((t16,((((t23,((t18,t17),((t21,t22),(t20,t19)))),(t25,t24)),((t11,((t8,(t6,t7)),(t10,t9))),(t13,t12))),(t14,t15))),((t3,t2),((t26,t27),(t5,t4)))),t0); (t1,((t16,((t23,((t18,t17),((t21,t22),(t20,t19)))),(((t11,((t8,(t6,t7)),(t10,t9))),((t25,t24),(t13,t12))),(t14,t15)))),((t5,t4),((t3,t2),(t26,t27)))),t0); (t1,(((t3,t2),(t26,t27)),(((t23,((t18,t17),((t21,t22),(t20,t19)))),(((t25,t24),(t13,t12)),((t16,(t14,t15)),(t11,((t8,(t6,t7)),(t10,t9)))))),(t5,t4))),t0); (t1,((t2,t3),((((t23,((t17,t18),((t22,t21),(t20,t19)))),(((t12,t13),(((t24,t25),(t11,((t8,(t7,t6)),(t10,t9)))),(t15,t14))),t16)),(t27,t26)),(t5,t4))),t0); (t1,((((t23,((t17,t18),((t22,t21),(t20,t19)))),((t15,t14),((((t24,t25),(t12,t13)),(t11,((t8,(t7,t6)),(t10,t9)))),t16))),(t27,t26)),((t5,t4),(t2,t3))),t0); (t1,(((t2,t3),(t27,t26)),((t5,t4),((t23,((t17,t18),((t22,t21),(t20,t19)))),((((t24,t25),(t12,t13)),(t11,((t8,(t7,t6)),(t10,t9)))),(t16,(t15,t14)))))),t0); (t1,((((t24,t25),(t23,((t17,t18),((t22,t21),(t20,t19))))),((t12,t13),((t11,((t8,(t7,t6)),(t10,t9))),(t16,(t15,t14))))),(((t2,t3),(t27,t26)),(t5,t4))),t0); (t1,(((((t24,t25),(t23,((t17,t18),((t22,t21),(t20,t19))))),((t16,(t15,t14)),((t12,t13),(t11,((t8,(t7,t6)),(t10,t9)))))),(t27,t26)),((t5,t4),(t2,t3))),t0); (t1,(((((t24,t25),(t23,((t17,t18),((t22,t21),(t20,t19))))),((t16,(t15,t14)),((t12,t13),(t11,((t8,(t7,t6)),(t10,t9)))))),(t27,t26)),((t5,t4),(t2,t3))),t0); (t1,(((((t24,t25),(t23,((t17,t18),((t22,t21),(t20,t19))))),(((t12,t13),t16),((t15,t14),(t11,((t8,(t7,t6)),(t10,t9)))))),(t27,t26)),((t5,t4),(t2,t3))),t0); (t1,((((t23,((t17,t18),((t22,t21),(t20,t19)))),(((t12,t13),t16),((t15,t14),((t24,t25),(t11,((t8,(t7,t6)),(t10,t9))))))),(t27,t26)),((t5,t4),(t2,t3))),t0); (t1,((t5,t4),(((t2,t3),((t23,((t17,t18),((t22,t21),(t20,t19)))),(((t15,t14),t16),(((t24,t25),(t11,((t8,(t7,t6)),(t10,t9)))),(t12,t13))))),(t27,t26))),t0); (t1,(((t2,t3),((t23,((t17,t18),((t22,t21),(t20,t19)))),((((t24,t25),(t11,((t8,(t7,t6)),(t10,t9)))),((t12,t13),(t15,t14))),t16))),((t27,t26),(t5,t4))),t0); (t1,((((((t18,t17),((t20,t19),(t21,t22))),t23),(t16,(((t24,t25),(((((t7,t6),t8),(t9,t10)),t11),(t13,t12))),(t14,t15)))),(t27,t26)),((t4,t5),(t2,t3))),t0); (t1,((((((t18,t17),(t22,((t20,t19),t21))),t23),(((t13,t12),(t24,t25)),((((((t7,t6),t8),(t9,t10)),t11),(t14,t15)),t16))),(t27,t26)),((t4,t5),(t2,t3))),t0); (t1,((t2,t3),((((((t18,t17),((t20,t19),(t21,t22))),t23),((t14,t15),(t16,(((((t7,t6),t8),(t9,t10)),t11),((t24,t25),(t13,t12)))))),(t27,t26)),(t4,t5))),t0); (t1,((t4,t5),((((t24,t25),(((t18,t17),((t20,t19),(t21,t22))),t23)),(((t13,t12),t16),(((((t7,t6),t8),(t9,t10)),t11),(t14,t15)))),((t2,t3),(t27,t26)))),t0); (t1,(((t4,t5),(t2,t3)),((t27,t26),((((t18,t17),((t20,t19),(t21,t22))),t23),(((t24,t25),(t13,t12)),(((((t7,t6),t8),(t9,t10)),t11),(t16,(t14,t15))))))),t0); (t1,((((t24,t25),(((t18,t17),((t20,t19),(t21,t22))),t23)),((t16,(t14,t15)),((t13,t12),((((t7,t6),t8),(t9,t10)),t11)))),((t4,t5),((t2,t3),(t27,t26)))),t0); (t1,((t4,t5),(((t2,t3),(t27,t26)),((t23,((t24,t25),((t18,t17),((t20,t19),(t21,t22))))),((t16,(t14,t15)),((t13,t12),((((t7,t6),t8),(t9,t10)),t11)))))),t0); (t1,((t2,t3),(((t27,t26),(t4,t5)),(((t24,t25),(((t18,t17),((t20,t19),(t21,t22))),t23)),(((((t7,t6),t8),(t9,t10)),t11),(t16,((t14,t15),(t13,t12))))))),t0); (t1,(((t26,(t4,t5)),(((((t24,t25),(((t18,t17),((t20,t19),(t21,t22))),t23)),(((((t7,t6),t8),(t9,t10)),t11),((t14,t15),(t13,t12)))),t16),(t2,t3))),t27),t0); (t1,((((((t18,t17),((t20,t19),(t21,t22))),t23),(((t14,t15),((t24,t25),((((t7,t6),t8),(t9,t10)),t11))),(t16,(t13,t12)))),(t2,t3)),((t26,t27),(t4,t5))),t0); (t1,(((t26,t27),(((((t21,t22),(t19,t20)),(t17,t18)),t23),(((t12,t13),((t24,t25),(t11,((t10,t9),(t8,(t6,t7)))))),((t14,t15),t16)))),((t3,t2),(t5,t4))),t0); (t1,((t3,t2),((t5,t4),((t26,t27),((((t24,t25),((((t21,t22),(t19,t20)),(t17,t18)),t23)),((t11,((t10,t9),(t8,(t6,t7)))),((t14,t15),(t12,t13)))),t16)))),t0); (t1,(((t3,t2),(((t24,t25),(((t22,((t19,t20),t21)),(t17,t18)),t23)),((t11,((t10,t9),(t8,(t6,t7)))),((t14,t15),(t16,(t12,t13)))))),((t5,t4),(t26,t27))),t0); (t1,((t5,t4),((t26,t27),((t3,t2),(((((t19,t20),(t21,t22)),(t17,t18)),t23),((t16,(t12,t13)),(((t24,t25),(t11,((t10,t9),(t8,(t6,t7))))),(t14,t15))))))),t0); (t1,((t3,t2),((t5,t4),((((t24,t25),((((t19,t20),(t21,t22)),(t17,t18)),t23)),(((t14,t15),t16),((t12,t13),(t11,((t10,t9),(t8,(t6,t7))))))),(t26,t27)))),t0); (t1,(((t3,t2),(t26,t27)),((t5,t4),((((((t19,t20),(t21,t22)),(t17,t18)),t23),((t14,t15),(((t24,t25),(t12,t13)),(t11,((t10,t9),(t8,(t6,t7))))))),t16))),t0); (t1,((t3,t2),((((t24,t25),((((t19,t20),(t21,t22)),(t17,t18)),t23)),((t16,(t14,t15)),((t12,t13),(t11,((t10,t9),(t8,(t6,t7))))))),((t26,t27),(t5,t4)))),t0); (t1,(((t3,t2),(t26,t27)),((t5,t4),(((t24,t25),((((t19,t20),(t21,t22)),(t17,t18)),t23)),(((t12,t13),t16),((t14,t15),(t11,((t10,t9),(t8,(t6,t7))))))))),t0); (t1,(((t26,t27),((t3,t2),(t5,t4))),(((t24,t25),((((t19,t20),(t21,t22)),(t17,t18)),t23)),(((t11,((t10,t9),(t8,(t6,t7)))),(t12,t13)),((t14,t15),t16)))),t0); (t1,((t5,t4),((((((t19,t20),(t21,t22)),(t17,t18)),t23),((((t24,t25),(t11,((t10,t9),(t8,(t6,t7))))),(t12,t13)),((t14,t15),t16))),((t3,t2),(t26,t27)))),t0); ((((((t24,t25),(((t18,t17),((t22,t21),(t19,t20))),t23)),((t13,t12),(((t14,t15),t16),(t11,(((t6,t7),t8),(t10,t9)))))),(t27,t26)),((t2,t3),(t4,t5))),t1,t0); ((((t27,t26),(t4,t5)),((((t24,t25),(((t18,t17),((t22,t21),(t19,t20))),t23)),(((t14,t15),t16),((t11,(((t6,t7),t8),(t10,t9))),(t13,t12)))),(t2,t3))),t1,t0); (((t2,t3),(((((t24,t25),(((t18,t17),((t22,t21),(t19,t20))),t23)),(((t14,t15),t16),((t11,(((t6,t7),t8),(t10,t9))),(t13,t12)))),(t26,t27)),(t4,t5))),t1,t0); (((t4,t5),((t2,t3),((((t14,t15),t16),(((t11,(((t6,t7),t8),(t10,t9))),(t13,t12)),((t24,t25),(((t18,t17),((t22,t21),(t19,t20))),t23)))),(t26,t27)))),t1,t0); (((t2,t3),(((((t24,t25),(((t18,t17),((t22,t21),(t19,t20))),t23)),((t14,t15),(t16,((t11,(((t6,t7),t8),(t10,t9))),(t13,t12))))),(t26,t27)),(t4,t5))),t1,t0); (((t4,t5),((t2,t3),(((((t18,t17),((t22,t21),(t19,t20))),t23),(((t14,t15),t16),((t13,t12),((t11,(((t6,t7),t8),(t10,t9))),(t24,t25))))),(t26,t27)))),t1,t0); ((((((t16,(t13,t12)),((t14,t15),(t11,(((t6,t7),t8),(t10,t9))))),((((t18,t17),((t22,t21),(t19,t20))),t23),(t24,t25))),(t26,t27)),((t4,t5),(t2,t3))),t1,t0); (((t2,t3),(((((t18,t17),((t22,t21),(t19,t20))),t23),((t14,t15),(t16,((t13,t12),((t11,(((t6,t7),t8),(t10,t9))),(t24,t25)))))),((t26,t27),(t4,t5)))),t1,t0); ((((t4,t5),((((t24,t25),(t23,((t18,t17),((t22,t21),(t19,t20))))),(((t14,t15),(t16,(t13,t12))),(t11,(((t6,t7),t8),(t10,t9))))),t26)),(t27,(t2,t3))),t1,t0); (((t4,t5),((((t23,(((t18,t17),((t22,t21),(t19,t20))),(t24,t25))),(((t13,t12),(t11,(((t6,t7),t8),(t10,t9)))),(t16,(t14,t15)))),(t26,t27)),(t2,t3))),t1,t0); (t1,((t3,t2),((((t25,t24),(((t18,t17),((t21,t22),(t19,t20))),t23)),((t16,(t13,t12)),((((t9,t10),(t8,(t6,t7))),t11),(t15,t14)))),((t4,t5),(t27,t26)))),t0); (t1,((((((t18,t17),((t21,t22),(t19,t20))),t23),((t16,(t13,t12)),(((t25,t24),(((t9,t10),(t8,(t6,t7))),t11)),(t15,t14)))),(t27,t26)),((t3,t2),(t4,t5))),t0); (t1,((t4,t5),((((t25,t24),(((t18,t17),((t21,t22),(t19,t20))),t23)),(((t13,t12),(((t9,t10),(t8,(t6,t7))),t11)),((t15,t14),t16))),((t27,t26),(t3,t2)))),t0); (t1,(((t4,t5),(t3,t2)),((((t25,t24),(((t18,t17),((t21,t22),(t19,t20))),t23)),(((t13,t12),(((t9,t10),(t8,(t6,t7))),t11)),((t15,t14),t16))),(t27,t26))),t0); (t1,((t4,t5),((((t25,t24),(((t18,t17),((t21,t22),(t19,t20))),t23)),(((t13,t12),(((t9,t10),(t8,(t6,t7))),t11)),((t15,t14),t16))),((t3,t2),(t27,t26)))),t0); (t1,((t4,t5),((t27,(t26,((((t18,t17),((t21,t22),(t19,t20))),t23),(((t25,t24),t16),((((t9,t10),(t8,(t6,t7))),t11),((t13,t12),(t15,t14))))))),(t3,t2))),t0); (t1,((t3,t2),((t4,t5),((((t16,(t13,t12)),((t15,t14),(((t9,t10),(t8,(t6,t7))),t11))),((((t18,t17),((t21,t22),(t19,t20))),t23),(t25,t24))),(t27,t26)))),t0); (t1,((t4,t5),(((((t15,t14),((((t9,t10),(t8,(t6,t7))),t11),((t25,t24),(t13,t12)))),(((t18,t17),((t21,t22),(t19,t20))),t23)),t16),((t27,t26),(t3,t2)))),t0); (t1,(((((t25,t24),(t13,t12)),((t16,(t15,t14)),(((t9,t10),(t8,(t6,t7))),t11))),(((t18,t17),((t21,t22),(t19,t20))),t23)),(((t27,t26),(t3,t2)),(t4,t5))),t0); (t1,(((((t16,(t15,t14)),((((t9,t10),(t8,(t6,t7))),t11),(t13,t12))),((t25,t24),(((t18,t17),((t21,t22),(t19,t20))),t23))),(t3,t2)),((t4,t5),(t27,t26))),t0); (((t5,t4),((((t25,t24),(t23,((t18,t17),((t19,t20),(t22,t21))))),((t16,(t15,t14)),((t12,t13),(t11,((t10,t9),((t7,t6),t8)))))),((t3,t2),(t26,t27)))),t1,t0); (((t3,t2),(((t5,t4),(t26,t27)),((t16,(t15,t14)),(((t12,t13),(t11,((t10,t9),((t7,t6),t8)))),((t25,t24),(t23,((t18,t17),((t19,t20),(t22,t21))))))))),t1,t0); (((t5,t4),(((t3,t2),(t26,t27)),(((t25,t24),(t23,(((t18,t17),((t19,t20),t21)),t22))),((t16,((t15,t14),(t11,((t10,t9),((t7,t6),t8))))),(t12,t13))))),t1,t0); ((((t3,t2),(t26,t27)),((((t25,t24),(t23,((t18,t17),((t19,t20),(t22,t21))))),((t11,((t10,t9),((t7,t6),t8))),(((t12,t13),t16),(t15,t14)))),(t5,t4))),t1,t0); ((((t3,t2),(t5,t4)),((t26,t27),((t23,((t18,t17),((t19,t20),(t22,t21)))),((((t11,((t10,t9),((t7,t6),t8))),(t12,t13)),(t16,(t15,t14))),(t25,t24))))),t1,t0); (((t5,t4),(((t3,t2),(t26,t27)),((t23,((t18,t17),((t19,t20),(t22,t21)))),(((t15,t14),((t11,((t10,t9),((t7,t6),t8))),((t25,t24),(t12,t13)))),t16)))),t1,t0); ((((t26,t27),((t23,((t18,t17),((t19,t20),(t22,t21)))),(((t25,t24),(t12,t13)),((t16,(t15,t14)),(t11,((t10,t9),((t7,t6),t8))))))),((t5,t4),(t3,t2))),t1,t0); ((((t26,((t23,((t18,t17),((t19,t20),(t22,t21)))),(((t25,t24),(t12,t13)),((t16,(t15,t14)),(t11,((t10,t9),((t7,t6),t8))))))),((t5,t4),(t3,t2))),t27),t1,t0); ((((((t23,((t18,t17),((t19,t20),(t22,t21)))),(t25,t24)),((t12,t13),((t16,(t15,t14)),(t11,((t10,t9),((t7,t6),t8)))))),((t27,t26),(t3,t2))),(t5,t4)),t1,t0); ((((t5,t4),(t3,t2)),(((t23,((t18,t17),((t19,t20),(t22,t21)))),((t25,t24),((t12,t13),((t16,(t15,t14)),(t11,((t10,t9),((t7,t6),t8))))))),(t27,t26))),t1,t0); (((t5,t4),((t26,t27),(((((((t9,t10),((t6,t7),t8)),t11),(t12,t13)),(t16,(t14,t15))),((((t18,t17),((t20,t19),(t22,t21))),t23),(t25,t24))),(t2,t3)))),t1,t0); (((t2,t3),(((t5,t4),(t26,t27)),(t16,((t14,t15),(((((t18,t17),((t20,t19),(t22,t21))),t23),(t25,t24)),((((t9,t10),((t6,t7),t8)),t11),(t12,t13))))))),t1,t0); (((t5,t4),(((((t25,t24),(((t9,t10),((t6,t7),t8)),t11)),(((t12,t13),(t14,t15)),t16)),(((t18,t17),((t20,t19),(t22,t21))),t23)),((t26,t27),(t2,t3)))),t1,t0); ((((t5,t4),((t27,t26),((((t18,t17),((t20,t19),(t22,t21))),t23),((((t25,t24),(((t9,t10),((t6,t7),t8)),t11)),(t12,t13)),(t16,(t14,t15)))))),(t2,t3)),t1,t0); ((((t5,t4),((t27,t26),((((t18,t17),((t20,t19),(t22,t21))),t23),(t16,((t14,t15),(((t25,t24),(((t9,t10),((t6,t7),t8)),t11)),(t12,t13))))))),(t2,t3)),t1,t0); (((t5,t4),((t27,t26),((t2,t3),((((t18,t17),((t20,t19),(t22,t21))),t23),(((t14,t15),((t25,t24),(((t9,t10),((t6,t7),t8)),t11))),(t16,(t12,t13))))))),t1,t0); ((((t2,t3),((((t18,t17),((t20,t19),(t22,t21))),t23),((t16,(t14,t15)),(((t12,t13),(t25,t24)),(((t9,t10),((t6,t7),t8)),t11))))),((t5,t4),(t27,t26))),t1,t0); ((((t5,t4),((t27,t26),((((t18,t17),((t20,t19),(t22,t21))),t23),((t16,(t14,t15)),(((t12,t13),(t25,t24)),(((t9,t10),((t6,t7),t8)),t11)))))),(t2,t3)),t1,t0); ((((t5,t4),((((t18,t17),((t20,t19),(t22,t21))),t23),(((t16,(t14,t15)),((((t9,t10),((t6,t7),t8)),t11),(t12,t13))),(t25,t24)))),((t27,t26),(t2,t3))),t1,t0); (((t5,t4),(((((t18,t17),(t22,(t21,(t20,t19)))),t23),(t16,((t14,t15),((((t9,t10),((t6,t7),t8)),t11),((t25,t24),(t12,t13)))))),((t27,t26),(t2,t3)))),t1,t0); ((((t26,((t4,t5),(((((t24,t25),(t12,t13)),((t15,t14),(t11,((t8,(t7,t6)),(t10,t9))))),(t23,((t18,t17),((t22,t21),(t20,t19))))),t16))),t27),(t3,t2)),t1,t0); (((t4,t5),(((t16,(((t12,t13),(t15,t14)),(t11,((t8,(t7,t6)),(t10,t9))))),((t24,t25),(t23,((t18,t17),((t22,t21),(t20,t19)))))),((t27,t26),(t3,t2)))),t1,t0); ((((t16,((t15,t14),((t11,((t8,(t7,t6)),(t10,t9))),(t12,t13)))),((t24,t25),(t23,((t18,t17),((t22,t21),(t20,t19)))))),(((t27,t26),(t3,t2)),(t4,t5))),t1,t0); ((((t27,t26),(t3,t2)),((t4,t5),((t16,(((t24,t25),(t11,((t8,(t7,t6)),(t10,t9)))),((t12,t13),(t15,t14)))),(t23,((t18,t17),((t22,t21),(t20,t19))))))),t1,t0); ((((t4,t5),((((t16,(t15,t14)),(((t11,((t8,(t7,t6)),(t10,t9))),(t12,t13)),(t24,t25))),(t23,((t18,t17),((t22,t21),(t20,t19))))),(t27,t26))),(t3,t2)),t1,t0); (((t4,t5),(((t16,((t15,t14),((t11,((t8,(t7,t6)),(t10,t9))),(t12,t13)))),((t24,t25),(t23,((t18,t17),((t22,t21),(t20,t19)))))),((t3,t2),(t27,t26)))),t1,t0); (((t3,t2),(((t27,t26),(((t15,t14),(((t24,t25),(t11,((t8,(t7,t6)),(t10,t9)))),((t12,t13),t16))),(t23,((t18,t17),((t22,t21),(t20,t19)))))),(t4,t5))),t1,t0); (((t3,t2),((t27,(t26,((((t11,((t8,(t7,t6)),(t10,t9))),(t12,t13)),(t16,(t15,t14))),((t24,t25),(t23,((t18,t17),((t22,t21),(t20,t19)))))))),(t4,t5))),t1,t0); (((t4,t5),((t3,t2),(((t23,((t18,t17),((t22,t21),(t20,t19)))),(((t12,t13),((t11,((t8,(t7,t6)),(t10,t9))),(t24,t25))),(t16,(t15,t14)))),(t27,t26)))),t1,t0); (((t3,t2),(((t23,((t18,t17),((t22,t21),(t20,t19)))),(((((t12,t13),(t11,((t8,(t7,t6)),(t10,t9)))),t16),(t15,t14)),(t24,t25))),((t4,t5),(t27,t26)))),t1,t0); (t1,(((t5,t4),(t26,t27)),((t3,t2),(((t25,t24),((((t22,t21),(t20,t19)),(t18,t17)),t23)),((t16,(t15,t14)),((t12,t13),(t11,((t8,(t7,t6)),(t10,t9)))))))),t0); (t1,(((t5,t4),(t26,t27)),((t3,t2),(((((t22,t21),(t20,t19)),(t18,t17)),t23),((t16,(t15,t14)),((t12,t13),((t25,t24),(t11,((t8,(t7,t6)),(t10,t9))))))))),t0); (t1,(((t5,t4),((((t11,((t8,(t7,t6)),(t10,t9))),(t16,(t15,t14))),(t12,t13)),(((((t22,t21),(t20,t19)),(t18,t17)),t23),(t25,t24)))),((t26,t27),(t3,t2))),t0); (t1,((t3,t2),((t5,t4),(t27,(t26,(((t15,t14),(((t11,((t8,(t7,t6)),(t10,t9))),((t25,t24),(t12,t13))),t16)),((((t22,t21),(t20,t19)),(t18,t17)),t23)))))),t0); (t1,((t5,t4),((((((t11,((t8,(t7,t6)),(t10,t9))),(t12,t13)),(t16,(t15,t14))),((t25,t24),((((t22,t21),(t20,t19)),(t18,t17)),t23))),(t27,t26)),(t3,t2))),t0); (t1,((t3,t2),((t5,t4),((((((t22,t21),(t20,t19)),(t18,t17)),t23),((t16,((t15,t14),((t11,((t8,(t7,t6)),(t10,t9))),(t12,t13)))),(t25,t24))),(t27,t26)))),t0); (t1,(((t3,t2),(t27,t26)),((t5,t4),((((t12,t13),((t15,t14),(t11,((t8,(t7,t6)),(t10,t9))))),((t25,t24),((((t22,t21),(t20,t19)),(t18,t17)),t23))),t16))),t0); (t1,((((((t12,t13),(t11,((t8,(t7,t6)),(t10,t9)))),(t16,(t15,t14))),((t25,t24),((((t22,t21),(t20,t19)),(t18,t17)),t23))),((t27,t26),(t5,t4))),(t3,t2)),t0); (t1,((t5,t4),((((((t25,t24),(t12,t13)),(t11,((t8,(t7,t6)),(t10,t9)))),(t16,(t15,t14))),((((t22,t21),(t20,t19)),(t18,t17)),t23)),((t3,t2),(t27,t26)))),t0); (t1,((((((t25,t24),(t12,t13)),(t11,((t8,(t7,t6)),(t10,t9)))),(t16,(t15,t14))),((((t22,t21),(t20,t19)),(t18,t17)),t23)),(((t3,t2),(t27,t26)),(t5,t4))),t0); (((t5,t4),((((t16,(t14,t15)),((t13,t12),(t11,((t8,(t7,t6)),(t9,t10))))),(((t25,t24),(((t19,t20),(t22,t21)),(t17,t18))),t23)),((t3,t2),(t27,t26)))),t1,t0); (((((t16,((t25,t24),(t13,t12))),((t11,((t8,(t7,t6)),(t9,t10))),(t14,t15))),((((t19,t20),(t22,t21)),(t17,t18)),t23)),((t3,t2),((t27,t26),(t5,t4)))),t1,t0); (((t5,t4),((t3,t2),(((t16,(((t13,t12),(t11,((t8,(t7,t6)),(t9,t10)))),(t14,t15))),((t25,t24),((((t19,t20),(t22,t21)),(t17,t18)),t23))),(t27,t26)))),t1,t0); (((t5,t4),((t16,((((t25,t24),((((t19,t20),(t22,t21)),(t17,t18)),t23)),((t13,t12),(t11,((t8,(t7,t6)),(t9,t10))))),(t14,t15))),((t27,t26),(t3,t2)))),t1,t0); (((t3,t2),(((((((t19,t20),(t22,t21)),(t17,t18)),t23),(((t13,t12),((t11,((t8,(t7,t6)),(t9,t10))),(t25,t24))),((t14,t15),t16))),(t27,t26)),(t5,t4))),t1,t0); (((t5,t4),((((((t19,t20),(t22,t21)),(t17,t18)),t23),(t16,(((t25,t24),(t13,t12)),((t14,t15),(t11,((t8,(t7,t6)),(t9,t10))))))),((t3,t2),(t27,t26)))),t1,t0); (((((((t19,t20),(t22,t21)),(t17,t18)),t23),(t16,((t14,t15),((t25,t24),((t11,((t8,(t7,t6)),(t9,t10))),(t13,t12)))))),((t3,t2),((t27,t26),(t5,t4)))),t1,t0); (((t3,t2),(((t27,t26),(((t25,t24),((((t19,t20),(t22,t21)),(t17,t18)),t23)),(((t13,t12),(t11,((t8,(t7,t6)),(t9,t10)))),(t16,(t14,t15))))),(t5,t4))),t1,t0); ((((t27,t26),(((((t25,t24),(((t19,t20),(t22,t21)),(t17,t18))),(((t13,t12),(t11,((t8,(t7,t6)),(t9,t10)))),(t14,t15))),t23),t16)),((t5,t4),(t3,t2))),t1,t0); (((((t3,t2),(t27,t26)),(t16,((t14,t15),(((t25,t24),(t23,(((t19,t20),(t22,t21)),(t17,t18)))),((t13,t12),(t11,((t8,(t7,t6)),(t9,t10)))))))),(t5,t4)),t1,t0); (t1,((t5,t4),(((t27,t26),((t16,((t14,t15),((t13,t12),(t11,((t10,t9),(t8,(t6,t7))))))),(t23,(((t17,t18),((t22,t21),(t20,t19))),(t25,t24))))),(t3,t2))),t0); (t1,((((t16,(t14,t15)),(((t25,t24),(t23,((t17,t18),((t22,t21),(t20,t19))))),((t13,t12),(t11,((t10,t9),(t8,(t6,t7))))))),(t3,t2)),((t5,t4),(t27,t26))),t0); (t1,((((t23,((t17,t18),((t22,t21),(t20,t19)))),(((t11,((t10,t9),(t8,(t6,t7)))),((t25,t24),(t13,t12))),(t16,(t14,t15)))),(t3,t2)),(t27,(t26,(t5,t4)))),t0); (t1,((((t23,((t17,t18),((t22,t21),(t20,t19)))),(((t25,t24),((t11,((t10,t9),(t8,(t6,t7)))),(t13,t12))),(t16,(t14,t15)))),((t27,t26),(t3,t2))),(t5,t4)),t0); (t1,((((t23,((t17,t18),((t22,t21),(t20,t19)))),((((t13,t12),((t25,t24),(t11,((t10,t9),(t8,(t6,t7)))))),(t14,t15)),t16)),(t27,t26)),((t5,t4),(t3,t2))),t0); (t1,(((((t25,t24),(t23,((t17,t18),((t22,t21),(t20,t19))))),((t16,(t13,t12)),((t11,((t10,t9),(t8,(t6,t7)))),(t14,t15)))),((t27,t26),(t3,t2))),(t5,t4)),t0); (t1,(((((t25,t24),(t23,((t17,t18),((t22,t21),(t20,t19))))),((t16,(t13,t12)),((t11,((t10,t9),(t8,(t6,t7)))),(t14,t15)))),((t27,t26),(t3,t2))),(t5,t4)),t0); (t1,((t3,t2),((((t23,((t17,t18),((t22,t21),(t20,t19)))),((t16,(t13,t12)),(((t25,t24),(t11,((t10,t9),(t8,(t6,t7))))),(t14,t15)))),(t27,t26)),(t5,t4))),t0); (t1,(((((t25,t24),(t23,((t17,t18),((t22,t21),(t20,t19))))),(((t11,((t10,t9),(t8,(t6,t7)))),((t14,t15),t16)),(t13,t12))),(t27,t26)),((t5,t4),(t3,t2))),t0); (t1,(((((t25,t24),(t23,((t17,t18),((t22,t21),(t20,t19))))),(((t13,t12),t16),((t11,((t10,t9),(t8,(t6,t7)))),(t14,t15)))),(t27,t26)),((t5,t4),(t3,t2))),t0); ((((t26,t27),(((t24,t25),(t23,(((t21,t22),(t19,t20)),(t18,t17)))),(((t14,t15),t16),((t13,t12),(((t10,t9),(t8,(t6,t7))),t11))))),((t5,t4),(t2,t3))),t1,t0); ((((t26,t27),(((t24,t25),(t23,(((t21,t22),(t19,t20)),(t18,t17)))),((((t10,t9),(t8,(t6,t7))),t11),((t14,t15),(t16,(t13,t12)))))),((t5,t4),(t2,t3))),t1,t0); (((t2,t3),(((t26,t27),((t23,((t19,t20),((t18,t17),(t21,t22)))),(((t13,t12),((t24,t25),(((t10,t9),(t8,(t6,t7))),t11))),(t16,(t14,t15))))),(t5,t4))),t1,t0); ((((t2,t3),((t23,(((t22,t21),(t19,t20)),(t18,t17))),(((t13,t12),((t24,t25),(((t10,t9),(t8,(t6,t7))),t11))),(t16,(t14,t15))))),((t5,t4),(t26,t27))),t1,t0); (((((t23,(((t22,t21),(t19,t20)),(t18,t17))),(((t24,t25),((((t10,t9),(t8,(t6,t7))),t11),(t13,t12))),(t16,(t14,t15)))),(t26,t27)),((t2,t3),(t5,t4))),t1,t0); (((((((t24,t25),t23),(((t22,t21),(t19,t20)),(t18,t17))),((t13,t12),((t16,(t14,t15)),(((t10,t9),(t8,(t6,t7))),t11)))),((t26,t27),(t2,t3))),(t5,t4)),t1,t0); ((((((t24,t25),(t23,(((t22,t21),(t19,t20)),(t18,t17)))),((t16,(t13,t12)),((t14,t15),(((t10,t9),(t8,(t6,t7))),t11)))),(t26,t27)),((t5,t4),(t2,t3))),t1,t0); (((t2,t3),((((t23,(((t22,t21),(t19,t20)),(t18,t17))),(((((t10,t9),(t8,(t6,t7))),t11),((t16,(t13,t12)),(t14,t15))),(t24,t25))),(t26,t27)),(t5,t4))),t1,t0); ((((((t24,t25),(t23,(((t22,t21),(t19,t20)),(t18,t17)))),(((t14,t15),(((t10,t9),(t8,(t6,t7))),t11)),((t13,t12),t16))),(t26,t27)),((t5,t4),(t2,t3))),t1,t0); (((t2,t3),((((t23,(((t22,t21),(t19,t20)),(t18,t17))),((t16,(t14,t15)),((t13,t12),((((t10,t9),(t8,(t6,t7))),t11),(t24,t25))))),(t26,t27)),(t5,t4))),t1,t0); (((((t23,(((t20,t19),t22),(t21,(t18,t17)))),((t24,t25),((t13,t12),((((t10,t9),(t8,(t6,t7))),t11),(t16,(t15,t14)))))),(t27,t26)),((t5,t4),(t2,t3))),t1,t0); (((t2,t3),((((((t13,t12),((((t10,t9),(t8,(t6,t7))),t11),(t15,t14))),((t23,(((t20,t19),(t21,t22)),(t18,t17))),(t24,t25))),t16),(t27,t26)),(t5,t4))),t1,t0); (((((t23,(((t20,t19),(t21,t22)),(t18,t17))),((t24,t25),((t16,(t15,t14)),((t13,t12),(((t10,t9),(t8,(t6,t7))),t11))))),((t2,t3),(t27,t26))),(t5,t4)),t1,t0); (((((t23,(((t20,t19),(t21,t22)),(t18,t17))),((t24,t25),(((t15,t14),(t16,(t13,t12))),(((t10,t9),(t8,(t6,t7))),t11)))),((t2,t3),(t27,t26))),(t5,t4)),t1,t0); (((t2,t3),(((t26,t27),(t5,t4)),(t16,((t15,t14),(((t13,t12),(((t10,t9),(t8,(t6,t7))),t11)),((t23,(((t20,t19),(t21,t22)),(t18,t17))),(t24,t25))))))),t1,t0); (((t5,t4),((((t23,(((t20,t19),(t21,t22)),(t18,t17))),((t15,t14),(((t13,t12),(t24,t25)),(t16,(((t10,t9),(t8,(t6,t7))),t11))))),(t2,t3)),(t26,t27))),t1,t0); ((((t26,t27),(t2,t3)),((t5,t4),(((t24,t25),(t23,(((t20,t19),(t21,t22)),(t18,t17)))),((t16,(t15,t14)),((t13,t12),(((t10,t9),(t8,(t6,t7))),t11)))))),t1,t0); (((t5,t4),(((t23,(((t20,t19),(t21,t22)),(t18,t17))),((((t24,t25),(((t10,t9),(t8,(t6,t7))),t11)),((t15,t14),(t13,t12))),t16)),(t27,((t2,t3),t26)))),t1,t0); ((((t2,t3),(t26,t27)),((t5,t4),((t23,(((t20,t19),(t21,t22)),(t18,t17))),((t24,t25),(((t13,t12),(((t10,t9),(t8,(t6,t7))),t11)),((t15,t14),t16)))))),t1,t0); (((t5,t4),(((((t13,t12),(((t10,t9),(t8,(t6,t7))),t11)),((t15,t14),t16)),((t23,((t21,(t22,(t20,t19))),(t18,t17))),(t24,t25))),((t2,t3),(t26,t27)))),t1,t0); (((t3,t2),(((t27,t26),(((((t22,t21),(t20,t19)),(t18,t17)),t23),((((t24,t25),(t13,t12)),(t11,((t8,(t6,t7)),(t10,t9)))),(t16,(t14,t15))))),(t4,t5))),t1,t0); (((((((t22,t21),(t20,t19)),(t18,t17)),t23),(((t13,t12),((t11,((t8,(t6,t7)),(t10,t9))),(t24,t25))),(t16,(t14,t15)))),((t4,t5),((t3,t2),(t27,t26)))),t1,t0); ((((((t24,t25),((((t22,t21),(t20,t19)),(t18,t17)),t23)),(((t11,((t8,(t6,t7)),(t10,t9))),(t13,t12)),(t16,(t14,t15)))),(t27,t26)),((t4,t5),(t3,t2))),t1,t0); ((((((t24,t25),(((t20,t19),((t18,t17),(t22,t21))),t23)),(((t11,((t8,(t6,t7)),(t10,t9))),(t13,t12)),(t16,(t14,t15)))),((t3,t2),(t27,t26))),(t4,t5)),t1,t0); (((t4,t5),((((((t24,t25),(t11,((t8,(t6,t7)),(t10,t9)))),((((t18,t17),((t22,t21),(t20,t19))),t23),((t13,t12),(t14,t15)))),t16),(t27,t26)),(t3,t2))),t1,t0); (((t3,t2),((t4,t5),(((((t18,t17),((t22,t21),(t20,t19))),((t24,t25),t23)),((t13,t12),((t11,((t8,(t6,t7)),(t10,t9))),(t16,(t14,t15))))),(t27,t26)))),t1,t0); (((t3,t2),((t4,t5),(((((t18,t17),((t22,t21),(t20,t19))),((t24,t25),t23)),(((t14,t15),((t13,t12),(t11,((t8,(t6,t7)),(t10,t9))))),t16)),(t27,t26)))),t1,t0); ((((t3,t2),(t16,((t11,((t8,(t6,t7)),(t10,t9))),(((t24,t25),(t23,((t18,t17),((t22,t21),(t20,t19))))),((t14,t15),(t13,t12)))))),((t27,t26),(t4,t5))),t1,t0); (((t4,t5),(((t23,((t18,t17),((t22,t21),(t20,t19)))),((((t24,t25),(t11,((t8,(t6,t7)),(t10,t9)))),(t14,t15)),(t16,(t13,t12)))),((t3,t2),(t27,t26)))),t1,t0); ((((t4,t5),(((t23,((t18,t17),((t22,t21),(t20,t19)))),((t14,t15),(t16,((t13,t12),((t24,t25),(t11,((t8,(t6,t7)),(t10,t9)))))))),(t27,t26))),(t3,t2)),t1,t0); (t1,(((t2,t3),((t16,(t15,t14)),(((t11,((t8,(t7,t6)),(t10,t9))),(t13,t12)),((t24,t25),((((t22,t21),(t19,t20)),(t18,t17)),t23))))),((t5,t4),(t27,t26))),t0); (t1,((((t27,t26),(t2,t3)),(((t24,t25),((((t22,t21),(t19,t20)),(t18,t17)),t23)),((t16,(t15,t14)),((t11,((t8,(t7,t6)),(t10,t9))),(t13,t12))))),(t5,t4)),t0); (t1,(((t27,t26),(t2,t3)),((((t24,t25),((((t22,t21),(t19,t20)),(t18,t17)),t23)),((t13,t12),((t16,(t15,t14)),(t11,((t8,(t7,t6)),(t10,t9)))))),(t5,t4))),t0); (t1,((t5,t4),(((t27,t26),(t2,t3)),(((t24,t25),((((t22,t21),(t19,t20)),(t18,t17)),t23)),((t16,(t15,t14)),((t11,((t8,(t7,t6)),(t10,t9))),(t13,t12)))))),t0); (t1,(((t27,t26),(t2,t3)),((((((t22,t21),(t19,t20)),(t18,t17)),t23),(((t15,t14),((t11,((t8,(t7,t6)),(t10,t9))),(t16,(t13,t12)))),(t24,t25))),(t5,t4))),t0); (t1,((((t27,t26),(((((t22,t21),(t19,t20)),(t18,t17)),t23),(t16,((t15,t14),(((t24,t25),(t11,((t8,(t7,t6)),(t10,t9)))),(t13,t12)))))),(t5,t4)),(t2,t3)),t0); (t1,((((t27,t26),(((((t22,t21),(t19,t20)),(t18,t17)),t23),((((t24,t25),(t11,((t8,(t7,t6)),(t10,t9)))),(t13,t12)),(t16,(t15,t14))))),(t5,t4)),(t2,t3)),t0); (t1,((((t27,t26),(((((t22,t21),(t19,t20)),(t18,t17)),t23),((((t24,t25),(t11,((t8,(t7,t6)),(t10,t9)))),(t13,t12)),(t16,(t15,t14))))),(t5,t4)),(t2,t3)),t0); (t1,((((t27,t26),(((((t22,t21),(t19,t20)),(t18,t17)),t23),(((t13,t12),(t24,t25)),((t16,(t15,t14)),(t11,((t8,(t7,t6)),(t10,t9))))))),(t5,t4)),(t2,t3)),t0); (t1,((t5,t4),((t2,t3),((t27,t26),(((((t22,t21),(t19,t20)),(t18,t17)),t23),((t16,(t15,t14)),(((t11,((t8,(t7,t6)),(t10,t9))),(t24,t25)),(t13,t12))))))),t0); (t1,((t2,t3),((t4,t5),((t27,t26),(((((t25,t24),(t12,t13)),(t11,((t9,t10),(t8,(t6,t7))))),(t16,(t15,t14))),(((t18,t17),((t22,t21),(t19,t20))),t23))))),t0); (t1,((t2,t3),((t4,t5),((t27,t26),(((t15,t14),((((t25,t24),(t12,t13)),(t11,((t9,t10),(t8,(t6,t7))))),t16)),(((t18,t17),((t22,t21),(t19,t20))),t23))))),t0); (t1,((t2,t3),((t4,t5),(t27,(t26,((t16,((t15,t14),(((t25,t24),(t12,t13)),(t11,((t9,t10),(t8,(t6,t7))))))),(((t18,t17),((t22,t21),(t19,t20))),t23)))))),t0); (t1,((t2,t3),((t4,t5),(((((t12,t13),((t11,((t9,t10),(t8,(t6,t7)))),(t25,t24))),(t16,(t15,t14))),(((t18,t17),((t22,t21),(t19,t20))),t23)),(t27,t26)))),t0); (t1,(((t27,t26),(t2,t3)),((t4,t5),((t16,(((t15,t14),(t12,t13)),(t11,((t9,t10),(t8,(t6,t7)))))),(((t25,t24),((t18,t17),((t22,t21),(t19,t20)))),t23)))),t0); (t1,((t2,t3),((t4,t5),((t27,t26),(((t12,t13),((t11,((t9,t10),(t8,(t6,t7)))),(t16,(t15,t14)))),((t25,t24),(((t18,t17),((t22,t21),(t19,t20))),t23)))))),t0); (t1,((t4,t5),(((t2,t3),(t27,t26)),(((t16,(t15,t14)),((t12,t13),(t11,((t9,t10),(t8,(t6,t7)))))),((t25,t24),(((t18,t17),((t21,(t19,t20)),t22)),t23))))),t0); (t1,((((t16,(t15,t14)),((t12,t13),(t11,((t9,t10),(t8,(t6,t7)))))),((t25,t24),(((t18,t17),((t19,t20),(t22,t21))),t23))),((t4,t5),((t2,t3),(t27,t26)))),t0); (t1,((t4,t5),(((((((t25,t24),(t11,((t9,t10),(t8,(t6,t7))))),((t15,t14),(t12,t13))),(((t18,t17),((t19,t20),(t22,t21))),t23)),t16),(t2,t3)),(t27,t26))),t0); (t1,((t2,t3),(((t27,t26),(((t15,t14),(((t12,t13),(t11,((t9,t10),(t8,(t6,t7))))),((t25,t24),(((t18,t17),((t19,t20),(t22,t21))),t23)))),t16)),(t4,t5))),t0); ((((((t24,t25),((((t22,t21),(t19,t20)),(t17,t18)),t23)),(((t13,t12),(((t9,t10),((t7,t6),t8)),t11)),((t15,t14),t16))),((t5,t4),(t26,t27))),(t3,t2)),t1,t0); ((((t5,t4),((t26,t27),(((((t22,t21),(t19,t20)),(t17,t18)),t23),(t16,((t13,t12),(((t24,t25),(((t9,t10),((t7,t6),t8)),t11)),(t15,t14))))))),(t3,t2)),t1,t0); ((((t5,t4),((t26,t27),(((t16,(t15,t14)),((((t9,t10),((t7,t6),t8)),t11),(t13,t12))),(((((t22,t21),(t19,t20)),(t17,t18)),t23),(t24,t25))))),(t3,t2)),t1,t0); (((t27,(t26,(t5,t4))),((((t16,(t15,t14)),((((t9,t10),((t7,t6),t8)),t11),(t13,t12))),(((((t22,t21),(t19,t20)),(t17,t18)),t23),(t24,t25))),(t3,t2))),t1,t0); ((((t5,t4),(t27,t26)),(((((t15,t14),((((t9,t10),((t7,t6),t8)),t11),(t13,t12))),(((((t22,t21),(t19,t20)),(t17,t18)),t23),(t24,t25))),t16),(t3,t2))),t1,t0); (((((t3,t2),(t5,t4)),(t27,t26)),(((t15,t14),((((t24,t25),(((t9,t10),((t7,t6),t8)),t11)),(t13,t12)),((((t22,t21),(t19,t20)),(t17,t18)),t23))),t16)),t1,t0); (((t3,t2),((t5,t4),((t27,t26),(((((t22,t21),(t19,t20)),(t17,t18)),t23),((t16,(t15,t14)),((((t9,t10),((t7,t6),t8)),t11),((t13,t12),(t24,t25)))))))),t1,t0); (((t3,t2),((t5,t4),((t27,t26),(((t24,t25),((((t22,t21),(t19,t20)),(t17,t18)),t23)),((t16,(t15,t14)),((((t9,t10),((t7,t6),t8)),t11),(t13,t12))))))),t1,t0); ((((t27,t26),(t5,t4)),((((((t22,t21),(t19,t20)),(t17,t18)),t23),((((t13,t12),t16),(t15,t14)),((t24,t25),(((t9,t10),((t7,t6),t8)),t11)))),(t3,t2))),t1,t0); (((t5,t4),((((((t22,t21),(t19,t20)),(t17,t18)),t23),(((t15,t14),((((t9,t10),((t7,t6),t8)),t11),((t13,t12),(t24,t25)))),t16)),((t3,t2),(t27,t26)))),t1,t0); (t1,((t5,t4),((t26,t27),((t2,t3),((t23,(((t18,t17),t22),((t21,t19),t20))),(((t15,t14),t16),((t13,t12),((t25,t24),(((t9,t10),((t7,t6),t8)),t11)))))))),t0); (t1,((t5,t4),((t2,t3),((t27,t26),(((t25,t24),(t23,((t18,t17),(t22,(t21,(t19,t20)))))),((((t9,t10),((t7,t6),t8)),t11),(((t15,t14),t16),(t13,t12))))))),t0); (t1,((t2,t3),(((t27,t26),(t5,t4)),(((t25,t24),(t23,((t18,t17),((t19,t20),(t22,t21))))),((((t9,t10),((t7,t6),t8)),t11),(((t13,t12),t16),(t15,t14)))))),t0); (t1,((((t25,t24),(t23,((t18,t17),((t19,t20),(t22,t21))))),((((t9,t10),((t7,t6),t8)),t11),((t13,t12),(t16,(t15,t14))))),(((t2,t3),(t27,t26)),(t5,t4))),t0); (t1,((((t23,((t18,t17),((t19,t20),(t22,t21)))),(((t15,t14),(((t25,t24),(((t9,t10),((t7,t6),t8)),t11)),(t13,t12))),t16)),(t27,t26)),((t5,t4),(t2,t3))),t0); (t1,((((t23,((t18,t17),((t19,t20),(t22,t21)))),(((((t9,t10),((t7,t6),t8)),t11),((t13,t12),(t25,t24))),(t16,(t15,t14)))),(t2,t3)),(t27,(t26,(t5,t4)))),t0); (t1,((t2,t3),((t5,t4),((t27,t26),((t23,((t18,t17),((t19,t20),(t22,t21)))),(t16,((t15,t14),(((((t9,t10),((t7,t6),t8)),t11),(t13,t12)),(t25,t24)))))))),t0); (t1,(((t27,t26),((t23,((t18,t17),((t19,t20),(t22,t21)))),((t15,t14),(((((t9,t10),((t7,t6),t8)),t11),(t13,t12)),(t16,(t25,t24)))))),((t2,t3),(t5,t4))),t0); (t1,(((t27,t26),((t2,t3),((((t23,((t18,t17),((t19,t20),(t22,t21)))),(t25,t24)),((t15,t14),((((t9,t10),((t7,t6),t8)),t11),(t13,t12)))),t16))),(t5,t4)),t0); (t1,(((((t23,((t18,t17),((t19,t20),(t22,t21)))),(t25,t24)),((t13,t12),((t16,(t15,t14)),(((t9,t10),((t7,t6),t8)),t11)))),((t27,t26),(t2,t3))),(t5,t4)),t0); ((((((((t20,t19),t21),t22),(t17,t18)),t23),((t16,(t14,t15)),((t11,((t8,(t6,t7)),(t10,t9))),((t25,t24),(t12,t13))))),((t5,t4),((t3,t2),(t27,t26)))),t1,t0); (((t5,t4),(((t3,t2),(t27,t26)),((((((t20,t19),(t21,t22)),(t17,t18)),t23),(((t25,t24),(t12,t13)),((t14,t15),(t11,((t8,(t6,t7)),(t10,t9)))))),t16))),t1,t0); (((t5,t4),((t3,t2),((t27,t26),(((((t20,t19),(t21,t22)),(t17,t18)),t23),(((t12,t13),(t16,(t14,t15))),((t11,((t8,(t6,t7)),(t10,t9))),(t25,t24))))))),t1,t0); (((((t25,t24),(((((t20,t19),t21),(t17,t18)),t22),t23)),(((t14,t15),((t11,((t8,(t6,t7)),(t10,t9))),(t12,t13))),t16)),(((t5,t4),(t3,t2)),(t27,t26))),t1,t0); (((((t3,t2),(t27,t26)),(t16,(((((t20,t19),(t22,t21)),(t17,t18)),t23),(((t25,t24),(t11,((t8,(t6,t7)),(t10,t9)))),((t12,t13),(t14,t15)))))),(t5,t4)),t1,t0); ((((t3,t2),(t27,((((t25,t24),((((t20,t19),(t22,t21)),(t17,t18)),t23)),((t16,(t14,t15)),((t11,((t8,(t6,t7)),(t10,t9))),(t12,t13)))),t26))),(t5,t4)),t1,t0); ((((t3,t2),(((t23,((t25,t24),(((t20,t19),(t22,t21)),(t17,t18)))),((t16,(t14,t15)),((t11,((t8,(t6,t7)),(t10,t9))),(t12,t13)))),(t26,t27))),(t5,t4)),t1,t0); ((((t3,t2),(((((((t20,t19),(t22,t21)),(t17,t18)),t23),(((t25,t24),(t11,((t8,(t6,t7)),(t10,t9)))),((t12,t13),(t14,t15)))),t16),(t26,t27))),(t5,t4)),t1,t0); ((((t3,t2),((((((t20,t19),(t22,t21)),(t17,t18)),t23),((((t12,t13),(t25,t24)),(t11,((t8,(t6,t7)),(t10,t9)))),(t16,(t14,t15)))),(t26,t27))),(t5,t4)),t1,t0); (((t3,t2),(((((((t20,t19),(t22,t21)),(t17,t18)),t23),((t25,t24),((t12,t13),((t16,(t14,t15)),(t11,((t8,(t6,t7)),(t10,t9))))))),(t26,t27)),(t5,t4))),t1,t0); (((t3,t2),(((t27,t26),((t16,((t14,t15),((t11,((t10,t9),((t6,t7),t8))),((t24,t25),(t13,t12))))),((((t20,t19),(t21,t22)),(t18,t17)),t23))),(t4,t5))),t1,t0); (((((t3,t2),(t27,t26)),(((t14,t15),(((t11,((t10,t9),((t6,t7),t8))),((t24,t25),(t13,t12))),t16)),((((t20,t19),(t21,t22)),(t18,t17)),t23))),(t4,t5)),t1,t0); (((t3,t2),(((t27,t26),(((t13,t12),((t16,(t14,t15)),(t11,((t10,t9),((t6,t7),t8))))),(((t21,(t22,(t20,t19))),(t18,t17)),((t24,t25),t23)))),(t4,t5))),t1,t0); (((t3,t2),(((t27,t26),((t23,(((t20,t19),(t21,t22)),(t18,t17))),((t16,(t14,t15)),(((t24,t25),(t13,t12)),(t11,((t10,t9),((t6,t7),t8))))))),(t4,t5))),t1,t0); (((t4,t5),(((t27,t26),(t3,t2)),(((t24,t25),(t23,(((t20,t19),(t21,t22)),(t18,t17)))),((t13,t12),((t11,((t10,t9),((t6,t7),t8))),(t16,(t14,t15))))))),t1,t0); (((t3,t2),((((t24,t25),(t23,(((t20,t19),(t21,t22)),(t18,t17)))),((t16,(t14,t15)),((t13,t12),(t11,((t10,t9),((t6,t7),t8)))))),((t27,t26),(t4,t5)))),t1,t0); (((t4,t5),(((t27,t26),(t3,t2)),(((t24,t25),(t23,(((t20,t19),(t21,t22)),(t18,t17)))),(((t13,t12),t16),((t14,t15),(t11,((t10,t9),((t6,t7),t8)))))))),t1,t0); (((t3,t2),((((t24,t25),(t23,(((t20,t19),t22),(t21,(t18,t17))))),((t13,t12),((t11,((t10,t9),((t6,t7),t8))),(t16,(t14,t15))))),((t27,t26),(t4,t5)))),t1,t0); (((t4,t5),(((t23,((((t20,t19),t21),(t22,(t18,t17))),(t24,t25))),((t16,(t13,t12)),((t11,((t10,t9),((t6,t7),t8))),(t14,t15)))),((t3,t2),(t27,t26)))),t1,t0); (((t3,t2),(((t4,t5),(t27,t26)),(((t24,t25),(t23,((t18,t17),((t20,t19),(t21,t22))))),(((t14,t15),((t13,t12),(t11,((t10,t9),((t6,t7),t8))))),t16)))),t1,t0); (((t4,t5),((((t25,t24),(t23,((t18,t17),((t22,t21),(t19,t20))))),(((t14,t15),(t11,((t9,t10),(t8,(t7,t6))))),(t16,(t12,t13)))),((t2,t3),(t26,t27)))),t1,t0); (((t2,t3),((t4,t5),((t26,t27),(((t25,t24),(t23,((t18,t17),(t22,(t21,(t19,t20)))))),(((t16,(t14,t15)),(t11,((t9,t10),(t8,(t7,t6))))),(t12,t13)))))),t1,t0); (((t2,t3),(((t23,((t18,t17),((t19,t20),(t22,t21)))),(((t14,t15),((t25,t24),(t11,((t9,t10),(t8,(t7,t6)))))),(t16,(t12,t13)))),((t4,t5),(t26,t27)))),t1,t0); ((((t2,t3),(t4,t5)),((t26,t27),((t23,((t18,t17),((t19,t20),(t22,t21)))),(t16,((t12,t13),((t14,t15),((t25,t24),(t11,((t9,t10),(t8,(t7,t6))))))))))),t1,t0); (((t2,t3),((t4,t5),((t26,t27),((t23,((t18,t17),((t19,t20),(t22,t21)))),((t16,(t14,t15)),(((t12,t13),(t25,t24)),(t11,((t9,t10),(t8,(t7,t6)))))))))),t1,t0); ((((((t25,t24),(t23,((t18,t17),((t19,t20),(t22,t21))))),((t14,t15),((t11,((t9,t10),(t8,(t7,t6)))),(t12,t13)))),t16),(((t4,t5),(t26,t27)),(t2,t3))),t1,t0); (((t2,t3),((t4,t5),(((t23,((t18,t17),((t19,t20),(t22,t21)))),(t16,(((t11,((t9,t10),(t8,(t7,t6)))),((t25,t24),(t12,t13))),(t14,t15)))),(t26,t27)))),t1,t0); ((((t2,t3),(t26,t27)),((t4,t5),(((t25,t24),(((t18,t17),((t19,t20),(t22,t21))),t23)),(((t11,((t9,t10),(t8,(t7,t6)))),(t12,t13)),((t14,t15),t16))))),t1,t0); (((t2,t3),(t27,(((t23,((t18,t17),((t19,t20),(t22,t21)))),((((t25,t24),(t11,((t9,t10),(t8,(t7,t6))))),(t16,(t12,t13))),(t14,t15))),((t4,t5),t26)))),t1,t0); (((t2,t3),(((t27,t26),(((t25,t24),(t23,((t21,(t22,(t18,t17))),(t19,t20)))),(((t14,t15),t16),((t12,t13),(t11,((t9,t10),(t8,(t7,t6)))))))),(t4,t5))),t1,t0); (((t3,t2),(((t27,t26),(((((t20,t19),(t22,t21)),(t17,t18)),t23),(((t15,t14),((t13,t12),((t25,t24),(t11,((t10,t9),(t8,(t6,t7))))))),t16))),(t5,t4))),t1,t0); ((((t27,t26),((((t21,((t20,t19),t22)),(t17,t18)),t23),(((t11,((t10,t9),(t8,(t6,t7)))),((t13,t12),(t25,t24))),(t16,(t15,t14))))),((t5,t4),(t3,t2))),t1,t0); (((t3,t2),(((t27,t26),(((((t21,(t20,t19)),(t17,t18)),t22),t23),((((t13,t12),((t25,t24),(t11,((t10,t9),(t8,(t6,t7)))))),(t15,t14)),t16))),(t5,t4))),t1,t0); (((t16,((((t17,t18),((t21,t22),(t20,t19))),t23),(((t11,((t10,t9),(t8,(t6,t7)))),((t13,t12),(t25,t24))),(t15,t14)))),((t3,t2),((t27,t26),(t5,t4)))),t1,t0); (((((t3,t2),(t27,t26)),(t5,t4)),(((t25,t24),(((t17,t18),((t21,t22),(t20,t19))),t23)),(((t13,t12),(t11,((t10,t9),(t8,(t6,t7))))),(t16,(t15,t14))))),t1,t0); (((t5,t4),((t3,t2),((((t25,t24),(((t17,t18),((t21,t22),(t20,t19))),t23)),(((t13,t12),(t11,((t10,t9),(t8,(t6,t7))))),(t16,(t15,t14)))),(t27,t26)))),t1,t0); (((t5,t4),((t27,t26),((t3,t2),(((t25,t24),(((t17,t18),((t21,t22),(t20,t19))),t23)),((t13,t12),(t16,((t15,t14),(t11,((t10,t9),(t8,(t6,t7))))))))))),t1,t0); ((((t5,t4),(t3,t2)),(((((t17,t18),((t21,t22),(t20,t19))),t23),(((t11,((t10,t9),(t8,(t6,t7)))),(t16,(t15,t14))),((t25,t24),(t13,t12)))),(t27,t26))),t1,t0); ((((((t25,t24),(((t17,t18),((t21,t22),(t20,t19))),t23)),((t16,(t15,t14)),((t13,t12),(t11,((t10,t9),(t8,(t6,t7))))))),((t3,t2),(t27,t26))),(t5,t4)),t1,t0); ((((t27,t26),((((t17,t18),((t21,t22),(t20,t19))),t23),(((t25,t24),(t13,t12)),((t11,((t10,t9),(t8,(t6,t7)))),(t16,(t15,t14)))))),((t5,t4),(t3,t2))),t1,t0); (((t4,t5),(((t26,t27),(t3,t2)),((t16,(((t12,t13),(t15,t14)),(t11,((t10,t9),(t8,(t6,t7)))))),((t25,t24),(t23,((t21,(t20,t19)),(t22,(t17,t18)))))))),t1,t0); ((((t3,t2),(((t16,(t15,t14)),((t11,((t10,t9),(t8,(t6,t7)))),(t12,t13))),((t25,t24),(t23,(((t22,t21),(t20,t19)),(t17,t18)))))),((t4,t5),(t26,t27))),t1,t0); (((t4,t5),((t26,t27),((t3,t2),((((t25,t24),(t11,((t10,t9),(t8,(t6,t7))))),((t23,(((t22,t21),(t20,t19)),(t17,t18))),((t12,t13),(t15,t14)))),t16)))),t1,t0); ((((t3,t2),((((t25,t24),(t23,(((t22,t21),(t20,t19)),(t17,t18)))),(((t11,((t10,t9),(t8,(t6,t7)))),(t12,t13)),(t15,t14))),t16)),((t4,t5),(t26,t27))),t1,t0); ((((t3,t2),((t26,t27),((t23,(((t22,t21),(t20,t19)),(t17,t18))),((t16,(((t25,t24),(t12,t13)),(t11,((t10,t9),(t8,(t6,t7)))))),(t15,t14))))),(t4,t5)),t1,t0); ((((t3,t2),((t26,t27),(((t23,(((t22,t21),(t20,t19)),(t17,t18))),((((t11,((t10,t9),(t8,(t6,t7)))),(t12,t13)),(t25,t24)),(t15,t14))),t16))),(t4,t5)),t1,t0); (((t3,t2),(((t26,((t23,((t25,t24),(((t22,t21),(t20,t19)),(t17,t18)))),(((t11,((t10,t9),(t8,(t6,t7)))),(t15,t14)),((t12,t13),t16)))),(t4,t5)),t27)),t1,t0); (((t4,t5),((t3,t2),((t26,t27),((t23,(((t22,t21),(t20,t19)),(t17,t18))),((((t25,t24),(t11,((t10,t9),(t8,(t6,t7))))),(t15,t14)),((t12,t13),t16)))))),t1,t0); (((t3,t2),(((t26,t27),((t23,(((t22,t21),(t20,t19)),(t17,t18))),(((t15,t14),((t12,t13),((t25,t24),(t11,((t10,t9),(t8,(t6,t7))))))),t16))),(t4,t5))),t1,t0); (((t3,t2),(((t26,t27),((t23,((t17,t18),(t22,(t21,(t20,t19))))),(((t12,t13),(t25,t24)),((t11,((t10,t9),(t8,(t6,t7)))),(t16,(t15,t14)))))),(t4,t5))),t1,t0); (t1,((t3,t2),(((t26,t27),(((((t21,(t19,t20)),t22),(t17,t18)),t23),((t25,t24),(((t13,t12),(t11,((t9,t10),((t6,t7),t8)))),(t16,(t14,t15)))))),(t5,t4))),t0); (t1,((t5,t4),((t3,t2),((t26,t27),(((t25,t24),((((t19,t20),(t22,t21)),(t17,t18)),t23)),(t16,((t11,((t9,t10),((t6,t7),t8))),((t14,t15),(t13,t12)))))))),t0); (t1,(((t26,t27),((t23,((t25,t24),(((t19,t20),(t22,t21)),(t17,t18)))),(t16,((t13,t12),((t11,((t9,t10),((t6,t7),t8))),(t14,t15)))))),((t5,t4),(t3,t2))),t0); (t1,((t5,t4),((t3,t2),((t26,t27),(((t25,t24),((((t19,t20),(t22,t21)),(t17,t18)),t23)),((t11,((t9,t10),((t6,t7),t8))),((t16,(t14,t15)),(t13,t12))))))),t0); (t1,((t3,t2),(((t26,t27),((t23,(((t19,t20),(t22,t21)),(t17,t18))),(((t14,t15),((t13,t12),((t25,t24),(t11,((t9,t10),((t6,t7),t8)))))),t16))),(t5,t4))),t0); (t1,((t3,t2),(((t23,(((t19,t20),(t22,t21)),(t17,t18))),(((t14,t15),((t25,t24),(t11,((t9,t10),((t6,t7),t8))))),((t13,t12),t16))),((t5,t4),(t26,t27)))),t0); (t1,((t3,t2),((t5,t4),((t26,t27),(((t25,t24),(t23,(((t19,t20),(t22,t21)),(t17,t18)))),(((t13,t12),(t11,((t9,t10),((t6,t7),t8)))),(t16,(t14,t15))))))),t0); (t1,((((t3,t2),(t26,t27)),(((t25,t24),(t23,(((t19,t20),(t22,t21)),(t17,t18)))),(((t13,t12),(t11,((t9,t10),((t6,t7),t8)))),(t16,(t14,t15))))),(t5,t4)),t0); (t1,(((t26,(t27,(t3,t2))),((t23,(((t19,t20),(t22,t21)),(t17,t18))),((((t13,t12),(t11,((t9,t10),((t6,t7),t8)))),(t16,(t14,t15))),(t25,t24)))),(t5,t4)),t0); (t1,((t3,t2),(((t26,t27),((t23,(((t19,t20),(t22,t21)),(t17,t18))),(((t14,t15),(((t25,t24),(t13,t12)),(t11,((t9,t10),((t6,t7),t8))))),t16))),(t5,t4))),t0); (t1,((t2,t3),((t5,t4),((((t12,t13),((t11,((t8,(t6,t7)),(t10,t9))),(t16,(t15,t14)))),((t24,t25),(((t18,t17),((t21,t22),(t20,t19))),t23))),(t26,t27)))),t0); (t1,((t2,t3),(((((((t24,t25),(t12,t13)),(t11,((t8,(t6,t7)),(t10,t9)))),((t15,t14),t16)),(((t20,t19),((t18,t17),(t21,t22))),t23)),(t26,(t5,t4))),t27)),t0); (t1,((t2,t3),((t5,t4),((t26,t27),((((t24,t25),(t11,((t8,(t6,t7)),(t10,t9)))),((t15,t14),((t12,t13),t16))),(((t18,t17),((t21,t22),(t20,t19))),t23))))),t0); (t1,((t2,t3),((t5,t4),((t26,t27),(((t24,t25),(((t12,t13),t16),((t11,((t8,(t6,t7)),(t10,t9))),(t15,t14)))),(((t18,t17),((t21,t22),(t20,t19))),t23))))),t0); (t1,(((t2,t3),((((t15,t14),(((t24,t25),(t12,t13)),(t11,((t8,(t6,t7)),(t10,t9))))),t16),(((t21,t22),(t20,t19)),(t23,(t18,t17))))),((t5,t4),(t26,t27))),t0); (t1,(((t2,t3),(t5,t4)),((t26,t27),((((t15,t14),((t12,t13),(t11,((t8,(t6,t7)),(t10,t9))))),t16),((t24,t25),(((t20,t19),((t18,t17),(t21,t22))),t23))))),t0); (t1,((t2,t3),((t5,t4),((t26,t27),((((t18,t17),((t21,t22),(t20,t19))),t23),((((t12,t13),(t11,((t8,(t6,t7)),(t10,t9)))),(t16,(t15,t14))),(t24,t25)))))),t0); (t1,((t5,t4),(((t2,t3),(t26,t27)),((((t12,t13),t16),((t15,t14),(t11,((t8,(t6,t7)),(t10,t9))))),((t24,t25),(((t18,t17),((t21,t22),(t20,t19))),t23))))),t0); (t1,((t5,t4),((t26,t27),((((t16,((t12,t13),(t15,t14))),(t11,((t8,(t6,t7)),(t10,t9)))),((t24,t25),(((t18,t17),((t21,t22),(t20,t19))),t23))),(t2,t3)))),t0); (t1,(((((t15,t14),(t16,(t12,t13))),(t11,((t8,(t6,t7)),(t10,t9)))),((t24,t25),(((t18,t17),((t21,t22),(t20,t19))),t23))),(((t26,t27),(t2,t3)),(t5,t4))),t0); (((((((t15,t14),t16),((t11,((t10,t9),(t8,(t6,t7)))),(t12,t13))),((t24,t25),(((t17,t18),((t22,t21),(t20,t19))),t23))),(t27,t26)),((t4,t5),(t3,t2))),t1,t0); (((t3,t2),((t16,((((t11,((t10,t9),(t8,(t6,t7)))),(t12,t13)),((t24,t25),(((t17,t18),((t22,t21),(t20,t19))),t23))),(t15,t14))),((t27,t26),(t4,t5)))),t1,t0); (((t3,t2),((t4,t5),(((((t17,t18),(t19,((t22,t21),t20))),(t23,(t24,t25))),(((t15,t14),t16),((t11,((t10,t9),(t8,(t6,t7)))),(t12,t13)))),(t27,t26)))),t1,t0); (((t4,t5),((((((t17,t18),((t22,t21),(t20,t19))),t23),(((t15,t14),t16),(((t24,t25),(t11,((t10,t9),(t8,(t6,t7))))),(t12,t13)))),(t27,t26)),(t3,t2))),t1,t0); (((t4,t5),((t27,t26),((t3,t2),((((t12,t13),((((t17,t18),((t22,t21),(t20,t19))),t23),(t24,t25))),(t11,((t10,t9),(t8,(t6,t7))))),((t15,t14),t16))))),t1,t0); (((t4,t5),((t3,t2),((((((t17,t18),((t22,t21),(t20,t19))),t23),(t24,t25)),(((t11,((t10,t9),(t8,(t6,t7)))),(t15,t14)),(t16,(t12,t13)))),(t27,t26)))),t1,t0); ((((((((t17,t18),((t22,t21),(t20,t19))),t23),(t24,t25)),(((t11,((t10,t9),(t8,(t6,t7)))),(t16,(t15,t14))),(t12,t13))),((t3,t2),(t27,t26))),(t4,t5)),t1,t0); ((((t4,t5),(t3,t2)),((t27,t26),((((t17,t18),((t22,t21),(t20,t19))),t23),((((t24,t25),(t11,((t10,t9),(t8,(t6,t7))))),(t15,t14)),(t16,(t12,t13)))))),t1,t0); (((t4,t5),((t3,t2),((t27,t26),((((t17,t18),((t22,t21),(t20,t19))),t23),((t15,t14),(((t12,t13),(t11,((t10,t9),(t8,(t6,t7))))),(t16,(t24,t25)))))))),t1,t0); (((t3,t2),(((t4,t5),(t27,t26)),((((t17,t18),((t22,t21),(t20,t19))),t23),((t16,(t15,t14)),(((t24,t25),(t12,t13)),(t11,((t10,t9),(t8,(t6,t7))))))))),t1,t0); ((((((((t25,t24),t23),((t18,t17),((t21,t22),(t19,t20)))),((t14,t15),((t12,t13),(t11,((t9,t10),((t7,t6),t8)))))),t16),(t26,t27)),((t2,t3),(t4,t5))),t1,t0); ((((((t16,(t14,t15)),((t12,t13),((t25,t24),(t11,((t9,t10),((t7,t6),t8)))))),(t23,((t18,t17),((t21,t22),(t19,t20))))),(t26,t27)),((t2,t3),(t4,t5))),t1,t0); (((((t2,t3),(((t12,t13),((t16,(t14,t15)),(t11,((t9,t10),((t7,t6),t8))))),((t25,t24),(t23,((t18,t17),((t21,t22),(t19,t20))))))),(t26,t27)),(t4,t5)),t1,t0); ((((t2,t3),((((t16,(t14,t15)),((t11,((t9,t10),((t7,t6),t8))),(t12,t13))),((t25,t24),(t23,((t18,t17),((t21,t22),(t19,t20)))))),(t26,t27))),(t4,t5)),t1,t0); ((((t26,t27),(t2,t3)),((t4,t5),(((t11,((t9,t10),((t7,t6),t8))),((t12,t13),(t16,(t14,t15)))),((t25,t24),(t23,((t18,t17),((t21,t22),(t19,t20)))))))),t1,t0); ((((t2,t3),(((t16,(t14,t15)),((t11,((t9,t10),((t7,t6),t8))),(t12,t13))),(t23,(((t18,t17),((t21,t22),(t19,t20))),(t25,t24))))),((t26,t27),(t4,t5))),t1,t0); (((t2,t3),((t4,t5),((((t16,(t14,t15)),((t11,((t9,t10),((t7,t6),t8))),(t12,t13))),((t25,t24),(t23,((t18,t17),((t21,t22),(t19,t20)))))),(t26,t27)))),t1,t0); (((t4,t5),(((((t16,(t14,t15)),((t11,((t9,t10),((t7,t6),t8))),((t25,t24),(t12,t13)))),(t23,((t18,t17),((t21,t22),(t19,t20))))),(t26,t27)),(t2,t3))),t1,t0); ((((t26,t27),(t2,t3)),((t4,t5),((t16,((t14,t15),((t12,t13),((t11,((t9,t10),((t7,t6),t8))),(t25,t24))))),(t23,((t18,t17),((t21,t22),(t19,t20))))))),t1,t0); ((((t26,t27),(t4,t5)),(((((t12,t13),(t11,((t9,t10),((t7,t6),t8)))),(t16,(t14,t15))),((t25,t24),(t23,((t18,t17),((t21,t22),(t19,t20)))))),(t2,t3))),t1,t0); (((t4,t5),(((t23,(((t19,t20),(t22,t21)),(t18,t17))),((((t13,t12),(t11,((t9,t10),(t8,(t6,t7))))),(t16,(t15,t14))),(t25,t24))),((t3,t2),(t26,t27)))),t1,t0); ((((t26,t27),(t4,t5)),(((((t13,t12),(t11,((t9,t10),(t8,(t6,t7))))),(t16,(t15,t14))),((t25,t24),(t23,(((t19,t20),(t22,t21)),(t18,t17))))),(t3,t2))),t1,t0); ((((t4,t5),(t3,t2)),((t26,t27),(((t11,((t9,t10),(t8,(t6,t7)))),((t16,(t15,t14)),(t13,t12))),((t25,t24),(t23,(((t19,t20),(t22,t21)),(t18,t17))))))),t1,t0); (((t3,t2),(((t26,t27),(t4,t5)),(((t13,t12),((t11,((t9,t10),(t8,(t6,t7)))),(t16,(t15,t14)))),((t25,t24),(t23,(((t19,t20),(t22,t21)),(t18,t17))))))),t1,t0); (((t3,t2),((t4,t5),(((t23,(((t19,t20),(t22,t21)),(t18,t17))),((((t11,((t9,t10),(t8,(t6,t7)))),((t15,t14),(t13,t12))),(t25,t24)),t16)),(t26,t27)))),t1,t0); ((((t26,t27),(t4,t5)),(((((t11,((t9,t10),(t8,(t6,t7)))),((t13,t12),(t15,t14))),((t25,t24),(t23,(((t19,t20),(t22,t21)),(t18,t17))))),t16),(t3,t2))),t1,t0); (((t3,t2),((t26,t27),(((((t13,t12),((t15,t14),(t11,((t9,t10),(t8,(t6,t7)))))),((t25,t24),(t23,(((t19,t20),(t22,t21)),(t18,t17))))),t16),(t4,t5)))),t1,t0); (((t3,t2),(((t23,(((t19,t20),(t22,t21)),(t18,t17))),(t16,(((t25,t24),(t13,t12)),((t15,t14),(t11,((t9,t10),(t8,(t6,t7)))))))),((t4,t5),(t26,t27)))),t1,t0); (((t4,t5),((t26,t27),((t3,t2),((t23,(((t19,t20),(t22,t21)),(t18,t17))),(((t15,t14),((t25,t24),(t11,((t9,t10),(t8,(t6,t7)))))),(t16,(t13,t12))))))),t1,t0); (((t3,t2),((t4,t5),(((t23,(((t19,t20),(t22,t21)),(t18,t17))),((t15,t14),(t16,((t11,((t9,t10),(t8,(t6,t7)))),((t25,t24),(t13,t12)))))),(t26,t27)))),t1,t0); (t1,(((t5,t4),(t27,t26)),((((t12,t13),(t16,((t11,((t10,t9),(t8,(t6,t7)))),(t15,t14)))),(((t21,(t19,t20)),(t22,(t18,t17))),((t25,t24),t23))),(t2,t3))),t0); (t1,(((t5,t4),(t27,t26)),((((t16,(t12,t13)),(((t25,t24),(t11,((t10,t9),(t8,(t6,t7))))),(t15,t14))),(t23,((t18,t17),((t19,t20),(t21,t22))))),(t2,t3))),t0); (t1,((t2,t3),(((t27,t26),((((t12,t13),(t11,((t10,t9),(t8,(t6,t7))))),((t15,t14),t16)),((t25,t24),(t23,((t18,t17),((t19,t20),(t21,t22))))))),(t5,t4))),t0); (t1,((t5,t4),(((t2,t3),(t27,t26)),((t23,((t18,t17),((t19,t20),(t21,t22)))),((((t12,t13),(t11,((t10,t9),(t8,(t6,t7))))),((t15,t14),t16)),(t25,t24))))),t0); (t1,(((t5,t4),(t2,t3)),((t27,t26),((((t16,(t12,t13)),(t11,((t10,t9),(t8,(t6,t7))))),(t15,t14)),((t25,t24),(t23,((t18,t17),((t19,t20),(t21,t22)))))))),t0); (t1,((t5,t4),((t2,t3),((t27,t26),((((t12,t13),(t11,((t10,t9),(t8,(t6,t7))))),(t16,(t15,t14))),((t25,t24),(t23,((t18,t17),((t19,t20),(t21,t22))))))))),t0); (t1,((t5,t4),((t27,t26),((((t11,((t10,t9),(t8,(t6,t7)))),((t16,(t15,t14)),(t12,t13))),((t25,t24),(t23,((t18,t17),((t19,t20),(t21,t22)))))),(t2,t3)))),t0); (t1,((t5,t4),((t2,t3),((t27,t26),(((t16,(t15,t14)),((t12,t13),(t11,((t10,t9),(t8,(t6,t7)))))),((t25,t24),(t23,((t18,t17),((t19,t20),(t21,t22))))))))),t0); (t1,(((t2,t3),(t5,t4)),((t26,((t23,((t18,t17),((t19,t20),(t21,t22)))),(((t16,(t15,t14)),((t12,t13),(t11,((t10,t9),(t8,(t6,t7)))))),(t25,t24)))),t27)),t0); (t1,((t5,t4),(((((t11,((t10,t9),(t8,(t6,t7)))),((t16,(t15,t14)),(t12,t13))),((t25,t24),(t23,((t18,t17),((t19,t20),(t21,t22)))))),(t27,t26)),(t2,t3))),t0); (((t3,t2),((t5,t4),((((t15,t14),(t16,((t12,t13),((t24,t25),(t11,(((t7,t6),t8),(t9,t10))))))),(((t17,t18),((t22,t21),(t20,t19))),t23)),(t26,t27)))),t1,t0); (((t5,t4),(((t3,t2),(((t15,t14),(((t24,t25),(t11,(((t7,t6),t8),(t9,t10)))),(t16,(t12,t13)))),(((t17,t18),((t22,t21),(t20,t19))),t23))),(t26,t27))),t1,t0); (((t5,t4),(((((t15,t14),(t11,(((t7,t6),t8),(t9,t10)))),((t12,t13),t16)),((t24,t25),(((t20,t19),((t17,t18),(t22,t21))),t23))),((t26,t27),(t3,t2)))),t1,t0); ((((t5,t4),(t27,t26)),((((t11,(((t7,t6),t8),(t9,t10))),(((t12,t13),t16),(t15,t14))),((t24,t25),(((t17,t18),((t22,t21),(t20,t19))),t23))),(t3,t2))),t1,t0); (((t3,t2),(((t27,t26),(((t11,(((t7,t6),t8),(t9,t10))),(((t12,t13),t16),(t15,t14))),((t24,t25),(((t17,t18),((t22,t21),(t20,t19))),t23)))),(t5,t4))),t1,t0); (((t3,t2),((((((t11,(((t7,t6),t8),(t9,t10))),(t12,t13)),t16),(t15,t14)),((t24,t25),(((t17,t18),((t22,t21),(t20,t19))),t23))),((t5,t4),(t27,t26)))),t1,t0); (((t3,t2),(((((t11,(((t7,t6),t8),(t9,t10))),((t12,t13),((t24,t25),(((t17,t18),((t22,t21),(t20,t19))),t23)))),(t16,(t15,t14))),(t27,t26)),(t5,t4))),t1,t0); ((((t3,t2),(t16,((t15,t14),((((t17,t18),((t22,t21),(t20,t19))),t23),(((t24,t25),(t11,(((t7,t6),t8),(t9,t10)))),(t12,t13)))))),((t27,t26),(t5,t4))),t1,t0); ((((((t17,t18),((t22,t21),(t20,t19))),t23),((((t24,t25),(t11,(((t7,t6),t8),(t9,t10)))),(t12,t13)),(t16,(t15,t14)))),(((t3,t2),(t27,t26)),(t5,t4))),t1,t0); (((t3,t2),((((((t17,t18),((t22,t21),(t20,t19))),t23),((((t11,(((t7,t6),t8),(t9,t10))),(t12,t13)),(t16,(t15,t14))),(t24,t25))),(t27,t26)),(t5,t4))),t1,t0); (t1,((t4,t5),(((t3,t2),(t26,t27)),(((t16,(t15,t14)),((((t9,t10),(t8,(t6,t7))),t11),((t25,t24),(t12,t13)))),(((t18,t17),((t19,t20),(t21,t22))),t23)))),t0); (t1,((t4,t5),(((t3,t2),(t26,t27)),(((((((t9,t10),(t8,(t6,t7))),t11),(t25,t24)),(t12,t13)),(t16,(t15,t14))),(((t18,t17),((t19,t20),(t21,t22))),t23)))),t0); (t1,(((t3,t2),(t26,t27)),(((((t25,t24),(t12,t13)),(t16,((((t9,t10),(t8,(t6,t7))),t11),(t15,t14)))),(((t18,t17),((t19,t20),(t21,t22))),t23)),(t4,t5))),t0); (t1,((t4,t5),(((t3,t2),(t26,t27)),((((t12,t13),(((t9,t10),(t8,(t6,t7))),t11)),((t15,t14),t16)),((t25,t24),(((t18,t17),((t19,t20),(t21,t22))),t23))))),t0); (t1,((t4,t5),((t3,t2),((t26,t27),((t16,(((((t9,t10),(t8,(t6,t7))),t11),(t25,t24)),((t12,t13),(t15,t14)))),(t23,((t18,t17),((t19,t20),(t21,t22)))))))),t0); (t1,((((t16,(t15,t14)),(((((t9,t10),(t8,(t6,t7))),t11),(t25,t24)),(t12,t13))),(t23,((t18,t17),((t19,t20),(t21,t22))))),((t26,t27),((t3,t2),(t4,t5)))),t0); (t1,((((t15,t14),(((t12,t13),(((t9,t10),(t8,(t6,t7))),t11)),t16)),((t25,t24),(((t4,t5),(t26,t27)),(((t18,t17),((t19,t20),(t21,t22))),t23)))),(t3,t2)),t0); (t1,(((t4,t5),(t26,t27)),((((t15,t14),(((t12,t13),(((t9,t10),(t8,(t6,t7))),t11)),((t25,t24),(((t18,t17),(((t19,t20),t22),t21)),t23)))),t16),(t3,t2))),t0); (t1,((t3,t2),((t4,t5),((t26,t27),((((t18,t17),((t19,t20),(t22,t21))),t23),(((t16,(t15,t14)),((t12,t13),(((t9,t10),(t8,(t6,t7))),t11))),(t25,t24)))))),t0); (t1,((t3,t2),((t4,t5),(t27,((((t16,(t15,t14)),(((t25,t24),(t12,t13)),(((t9,t10),(t8,(t6,t7))),t11))),(((t18,t17),((t19,t20),(t22,t21))),t23)),t26)))),t0); (((t3,t2),((t5,t4),(((t16,(((t12,t13),((((t10,t9),(t8,(t6,t7))),t11),(t24,t25))),(t15,t14))),((((t20,t19),(t22,t21)),(t17,t18)),t23)),(t26,t27)))),t1,t0); (((t3,t2),((t5,t4),(((t16,(((t24,t25),(t12,t13)),((t15,t14),(((t10,t9),(t8,(t6,t7))),t11)))),((((t20,t19),(t22,t21)),(t17,t18)),t23)),(t26,t27)))),t1,t0); (((t3,t2),((t5,t4),((((t16,(t15,t14)),(((((t10,t9),(t8,(t6,t7))),t11),(t12,t13)),(t24,t25))),((((t20,t19),t22),(t21,(t17,t18))),t23)),(t26,t27)))),t1,t0); ((((((t24,t25),((t16,(t15,t14)),((((t10,t9),(t8,(t6,t7))),t11),(t12,t13)))),((((t20,t19),(t21,t22)),(t17,t18)),t23)),((t3,t2),(t26,t27))),(t5,t4)),t1,t0); (((t3,t2),((((t5,t4),t26),t27),((((t15,t14),((((t10,t9),(t8,(t6,t7))),t11),((t24,t25),(t12,t13)))),t16),((((t20,t19),(t21,t22)),(t17,t18)),t23)))),t1,t0); (((t3,t2),(((t5,t4),(t26,t27)),((((((t10,t9),(t8,(t6,t7))),t11),(t12,t13)),(t16,(t15,t14))),((((t20,t19),(t21,t22)),(t17,t18)),((t24,t25),t23))))),t1,t0); (((t3,t2),(((((t12,t13),(t16,((t15,t14),(((t10,t9),(t8,(t6,t7))),t11)))),((t24,t25),(t23,(((t20,t19),(t21,t22)),(t17,t18))))),(t26,t27)),(t5,t4))),t1,t0); (((t5,t4),((t3,t2),(((((t15,t14),t16),((((t10,t9),(t8,(t6,t7))),t11),(t12,t13))),((t24,t25),(t23,(((t20,t19),(t21,t22)),(t17,t18))))),(t26,t27)))),t1,t0); (((((t5,t4),(t16,((((((t10,t9),(t8,(t6,t7))),t11),(t12,t13)),((t24,t25),(t23,(((t20,t19),(t21,t22)),(t17,t18))))),(t15,t14)))),(t26,t27)),(t3,t2)),t1,t0); (((t5,t4),(((t23,(((t20,t19),(t21,t22)),(t17,t18))),((((t15,t14),t16),((((t10,t9),(t8,(t6,t7))),t11),(t12,t13))),(t24,t25))),((t26,t27),(t3,t2)))),t1,t0); (t1,((t5,t4),((t26,t27),((((t24,t25),(t23,(((t22,t21),(t19,t20)),(t18,t17)))),((t13,t12),(t16,((((t9,t10),(t8,(t6,t7))),t11),(t15,t14))))),(t2,t3)))),t0); (t1,((t5,t4),((t26,t27),(((t23,(((t22,t21),(t19,t20)),(t18,t17))),(((t13,t12),(t15,t14)),(t16,((t24,t25),(((t9,t10),(t8,(t6,t7))),t11))))),(t2,t3)))),t0); (t1,((((t23,(((t22,t21),(t19,t20)),(t18,t17))),(((t13,t12),(t16,(t15,t14))),((t24,t25),(((t9,t10),(t8,(t6,t7))),t11)))),((t26,t27),(t2,t3))),(t5,t4)),t0); (t1,(((t26,t27),(t2,t3)),((t5,t4),((t23,(((t22,t21),(t19,t20)),(t18,t17))),((t15,t14),((((t24,t25),(((t9,t10),(t8,(t6,t7))),t11)),(t13,t12)),t16))))),t0); (t1,((t2,t3),(((t23,(((t22,t21),(t19,t20)),(t18,t17))),((((t13,t12),(t24,t25)),((t15,t14),(((t9,t10),(t8,(t6,t7))),t11))),t16)),((t5,t4),(t26,t27)))),t0); (t1,((t2,t3),(((t23,(((t22,t21),(t19,t20)),(t18,t17))),((t24,t25),((t16,((t13,t12),(t15,t14))),(((t9,t10),(t8,(t6,t7))),t11)))),((t5,t4),(t26,t27)))),t0); (t1,(((t2,t3),(((t23,(((t22,t21),(t19,t20)),(t18,t17))),((t15,t14),(((((t9,t10),(t8,(t6,t7))),t11),(t24,t25)),((t13,t12),t16)))),(t26,t27))),(t5,t4)),t0); (t1,((t2,t3),((((t23,(((t22,t21),(t19,t20)),(t18,t17))),((((t24,t25),(t13,t12)),((t15,t14),(((t9,t10),(t8,(t6,t7))),t11))),t16)),(t26,t27)),(t5,t4))),t0); (t1,(((t2,t3),(t16,((t15,t14),(((t23,(((t22,t21),(t19,t20)),(t18,t17))),(t24,t25)),((((t9,t10),(t8,(t6,t7))),t11),(t13,t12)))))),((t26,t27),(t5,t4))),t0); (t1,((((t26,t27),(t2,t3)),((t23,(((t22,t21),(t19,t20)),(t18,t17))),((((t24,t25),(((t9,t10),(t8,(t6,t7))),t11)),((t15,t14),(t13,t12))),t16))),(t5,t4)),t0); (((t5,t4),(((((t15,t14),t16),((t13,t12),(t11,(((t7,t6),t8),(t10,t9))))),((((t21,t22),(t20,t19)),(t18,t17)),((t25,t24),t23))),((t3,t2),(t27,t26)))),t1,t0); (((t5,t4),(((t3,t2),(t27,t26)),(((t11,(((t7,t6),t8),(t10,t9))),(((t15,t14),t16),(t13,t12))),((t25,t24),(t23,(((t21,t22),(t20,t19)),(t18,t17))))))),t1,t0); (((((t5,t4),(t27,t26)),(((t11,(((t7,t6),t8),(t10,t9))),((t15,t14),(t16,(t13,t12)))),((t25,t24),(t23,(((t21,t22),(t20,t19)),(t18,t17)))))),(t3,t2)),t1,t0); (((t5,t4),(((t3,t2),(t27,t26)),((((t15,t14),((t13,t12),(t11,(((t7,t6),t8),(t10,t9))))),t16),(((t22,((t20,t19),t21)),(t18,t17)),((t25,t24),t23))))),t1,t0); ((((t3,t2),(t27,t26)),((t16,((((t13,t12),(t11,(((t7,t6),t8),(t10,t9)))),((t25,t24),(t23,(((t20,t19),(t21,t22)),(t18,t17))))),(t15,t14))),(t5,t4))),t1,t0); (((t5,t4),(((t3,t2),(((t25,t24),(t23,(((t20,t19),(t21,t22)),(t18,t17)))),((((t13,t12),(t15,t14)),(t11,(((t7,t6),t8),(t10,t9)))),t16))),(t27,t26))),t1,t0); (((t3,t2),(((t23,(((t20,t19),(t21,t22)),(t18,t17))),(t16,(((t13,t12),(t11,(((t7,t6),t8),(t10,t9)))),((t25,t24),(t15,t14))))),((t27,t26),(t5,t4)))),t1,t0); ((((t5,t4),(((t23,((t18,t17),(((t20,t19),t21),t22))),(t16,((t13,t12),((t15,t14),((t11,(((t7,t6),t8),(t10,t9))),(t25,t24)))))),(t27,t26))),(t3,t2)),t1,t0); ((((t5,t4),(((t23,((t18,t17),((t20,t19),(t21,t22)))),((((t13,t12),(t11,(((t7,t6),t8),(t10,t9)))),(t25,t24)),(t16,(t15,t14)))),(t27,t26))),(t3,t2)),t1,t0); ((((t16,(((t11,(((t7,t6),t8),(t10,t9))),(t15,t14)),((t13,t12),((t23,((t18,t17),((t20,t19),(t21,t22)))),(t25,t24))))),(t27,t26)),((t3,t2),(t5,t4))),t1,t0); (((t2,t3),((((t16,(((t11,((t10,t9),((t7,t6),t8))),(t13,t12)),(t14,t15))),(((t19,t20),((t18,t17),t21)),((t23,t22),(t24,t25)))),(t27,t26)),(t4,t5))),t1,t0); (((t2,t3),((((((t18,t17),((t21,t22),(t19,t20))),t23),((t16,(t14,t15)),((t11,((t10,t9),((t7,t6),t8))),((t24,t25),(t13,t12))))),(t27,t26)),(t4,t5))),t1,t0); (((((((t18,t17),((t21,t22),(t19,t20))),t23),((t16,(t14,t15)),((t11,((t10,t9),((t7,t6),t8))),((t24,t25),(t13,t12))))),(t27,t26)),((t4,t5),(t2,t3))),t1,t0); ((((((((t24,t25),(((t18,t17),((t21,t22),(t19,t20))),t23)),((t13,t12),(t11,((t10,t9),((t7,t6),t8))))),(t14,t15)),t16),(t27,t26)),((t4,t5),(t2,t3))),t1,t0); ((((((((t11,((t10,t9),((t7,t6),t8))),(t24,t25)),(t13,t12)),((t14,t15),t16)),(((t18,t17),((t21,t22),(t19,t20))),t23)),(t2,t3)),((t27,t26),(t4,t5))),t1,t0); ((((((t11,((t10,t9),((t7,t6),t8))),(t16,((t13,t12),(t14,t15)))),((t24,t25),(((t18,t17),((t21,t22),(t19,t20))),t23))),(t2,t3)),((t27,t26),(t4,t5))),t1,t0); (((t2,t3),(((((t14,t15),(t16,((t11,((t10,t9),((t7,t6),t8))),(t13,t12)))),((t24,t25),(((t18,t17),((t21,t22),(t19,t20))),t23))),(t27,t26)),(t4,t5))),t1,t0); (((t2,t3),((((((t18,t17),((t21,t22),(t19,t20))),t23),((((t11,((t10,t9),((t7,t6),t8))),(t13,t12)),(t14,t15)),(t16,(t24,t25)))),(t27,t26)),(t4,t5))),t1,t0); (((t4,t5),((t2,t3),(((((t18,t17),((t21,t22),(t19,t20))),t23),((((t11,((t10,t9),((t7,t6),t8))),((t24,t25),(t13,t12))),(t14,t15)),t16)),(t27,t26)))),t1,t0); (((t4,t5),(((((t19,t20),((t18,t17),(t21,t22))),(t23,(t24,t25))),((t16,(t13,t12)),((t14,t15),(t11,((t10,t9),((t7,t6),t8)))))),((t27,t26),(t2,t3)))),t1,t0); (t1,(((t5,t4),(t27,t26)),((t2,t3),(((t25,t24),(t23,((t17,t18),((t21,t22),(t19,t20))))),((t16,(t14,t15)),((t12,t13),(t11,(((t6,t7),t8),(t9,t10)))))))),t0); (t1,(((t23,((t17,t18),((t21,t22),(t19,t20)))),(((t25,t24),(t12,t13)),((t11,(((t6,t7),t8),(t9,t10))),(t16,(t14,t15))))),(((t5,t4),(t27,t26)),(t2,t3))),t0); (t1,((t2,t3),((t5,t4),(((t23,((t17,t18),((t21,t22),(t19,t20)))),((t16,(t14,t15)),((t12,t13),((t11,(((t6,t7),t8),(t9,t10))),(t25,t24))))),(t27,t26)))),t0); (t1,((((t23,((t17,t18),((t21,t22),(t19,t20)))),(((t11,(((t6,t7),t8),(t9,t10))),((t12,t13),(t25,t24))),((t14,t15),t16))),((t2,t3),(t27,t26))),(t5,t4)),t0); (t1,((((t25,t24),(t23,((t17,t18),((t21,t22),(t19,t20))))),((t12,t13),(((t14,t15),t16),(t11,(((t6,t7),t8),(t9,t10)))))),(((t2,t3),(t27,t26)),(t5,t4))),t0); (t1,(((t2,t3),(t5,t4)),(t27,(t26,((t23,((t17,t18),((t21,t22),(t19,t20)))),((t16,(t12,t13)),((t14,t15),((t25,t24),(t11,(((t6,t7),t8),(t9,t10)))))))))),t0); (t1,((t5,t4),((((((t12,t13),(t11,(((t6,t7),t8),(t9,t10)))),(t16,(t14,t15))),((t23,((t17,t18),((t21,t22),(t19,t20)))),(t25,t24))),(t27,t26)),(t2,t3))),t0); (t1,((t5,t4),(((t2,t3),(t27,t26)),(((t11,(((t6,t7),t8),(t9,t10))),(t16,((t14,t15),(t12,t13)))),((t23,((t17,t18),((t21,t22),(t19,t20)))),(t25,t24))))),t0); (t1,((t2,t3),((((t16,(t14,t15)),((t11,(((t6,t7),t8),(t9,t10))),(t12,t13))),((t23,((t17,t18),((t21,t22),(t19,t20)))),(t25,t24))),(t27,(t26,(t5,t4))))),t0); (t1,((t5,t4),((t27,(((t16,(((t14,t15),((t25,t24),(t11,(((t6,t7),t8),(t9,t10))))),(t12,t13))),(t23,((t17,t18),((t21,t22),(t19,t20))))),t26)),(t2,t3))),t0); (((t4,t5),((t27,t26),((((t24,t25),(t23,((t18,t17),((t19,t20),(t21,t22))))),((t13,t12),((t11,((t9,t10),(t8,(t7,t6)))),((t15,t14),t16)))),(t2,t3)))),t1,t0); (((((t27,t26),((t23,((t18,t17),((t19,t20),(t21,t22)))),(((t13,t12),(((t24,t25),(t11,((t9,t10),(t8,(t7,t6))))),(t15,t14))),t16))),(t2,t3)),(t4,t5)),t1,t0); (((t2,t3),((t4,t5),((t27,t26),((t23,((t18,t17),((t19,t20),(t21,t22)))),((((t24,t25),((t13,t12),(t11,((t9,t10),(t8,(t7,t6)))))),(t15,t14)),t16))))),t1,t0); ((((t2,t3),(((t23,((t18,t17),((t19,t20),(t21,t22)))),(t24,t25)),(((t13,t12),(t11,((t9,t10),(t8,(t7,t6))))),((t15,t14),t16)))),((t4,t5),(t27,t26))),t1,t0); ((((t2,t3),((t23,((t18,t17),((t19,t20),(t21,t22)))),((((t24,t25),(t13,t12)),(t11,((t9,t10),(t8,(t7,t6))))),((t15,t14),t16)))),((t4,t5),(t27,t26))),t1,t0); ((((t23,((t18,t17),((t19,t20),(t21,t22)))),(((t24,t25),(t13,t12)),((t11,((t9,t10),(t8,(t7,t6)))),((t15,t14),t16)))),(((t4,t5),(t27,t26)),(t2,t3))),t1,t0); (((t4,t5),(((((t13,t12),t16),((t11,((t9,t10),(t8,(t7,t6)))),(t15,t14))),((t23,((t18,t17),((t19,t20),(t21,t22)))),(t24,t25))),((t2,t3),(t27,t26)))),t1,t0); (((t2,t3),(t27,((((t23,((t18,t17),((t19,t20),(t21,t22)))),(((t15,t14),((t24,t25),(t11,((t9,t10),(t8,(t7,t6)))))),((t13,t12),t16))),t26),(t4,t5)))),t1,t0); (((t4,t5),((t2,t3),((t26,t27),((t23,((t18,t17),((t19,t20),(t21,t22)))),((t16,(t15,t14)),(((t24,t25),(t11,((t9,t10),(t8,(t7,t6))))),(t13,t12))))))),t1,t0); (((t4,t5),((t2,t3),((t26,t27),(((t24,t25),(t23,((t18,t17),((t19,t20),(t21,t22))))),((t16,(t15,t14)),((t11,((t9,t10),(t8,(t7,t6)))),(t13,t12))))))),t1,t0); (t1,((t5,t4),((t3,t2),((t26,t27),((((((t9,t10),(t8,(t6,t7))),t11),((t25,t24),(t13,t12))),((t15,t14),t16)),(((t18,t17),((t21,t22),(t19,t20))),t23))))),t0); (t1,((t3,t2),(((t26,t27),((((t25,t24),(t13,t12)),(((t15,t14),t16),(((t9,t10),(t8,(t6,t7))),t11))),(((t18,t17),((t21,t22),(t19,t20))),t23))),(t5,t4))),t0); (t1,(((t26,t27),(((t25,t24),(((((t9,t10),(t8,(t6,t7))),t11),(t13,t12)),(t16,(t15,t14)))),(((t18,t17),((t21,t22),(t19,t20))),t23))),((t5,t4),(t3,t2))),t0); (t1,((t3,t2),(((t26,t27),(((t25,t24),(((((t9,t10),(t8,(t6,t7))),t11),(t13,t12)),(t16,(t15,t14)))),((t22,(((t19,t20),t21),(t18,t17))),t23))),(t5,t4))),t0); (t1,((((t3,t2),(t26,t27)),((t16,((t15,t14),((((t9,t10),(t8,(t6,t7))),t11),((t25,t24),(t13,t12))))),((((t19,t20),(t22,t21)),(t18,t17)),t23))),(t5,t4)),t0); (t1,(((t3,t2),((t26,t27),(((t15,t14),(t16,((t13,t12),((t25,t24),(((t9,t10),(t8,(t6,t7))),t11))))),((((t19,t20),(t22,t21)),(t18,t17)),t23)))),(t5,t4)),t0); (t1,(((t3,t2),((t26,t27),((((t15,t14),((t13,t12),((t25,t24),(((t9,t10),(t8,(t6,t7))),t11)))),((((t19,t20),(t22,t21)),(t18,t17)),t23)),t16))),(t5,t4)),t0); (t1,((((t3,t2),(t26,t27)),(((((t9,t10),(t8,(t6,t7))),t11),((t16,(t15,t14)),(t13,t12))),((t25,t24),(t23,(((t19,t20),(t22,t21)),(t18,t17)))))),(t5,t4)),t0); (t1,(((t3,t2),((t26,t27),(((((t13,t12),t16),(t15,t14)),(((t9,t10),(t8,(t6,t7))),t11)),((t25,t24),(t23,((t19,t20),((t22,t21),(t18,t17)))))))),(t5,t4)),t0); (t1,(((t26,t27),((t23,((t18,t17),((t19,t20),(t22,t21)))),((((t13,t12),(t25,t24)),((t15,t14),(((t9,t10),(t8,(t6,t7))),t11))),t16))),((t5,t4),(t3,t2))),t0); (t1,(((((t24,t25),(t23,(((t21,t22),(t20,t19)),(t18,t17)))),((t16,(t15,t14)),((t11,(((t6,t7),t8),(t9,t10))),(t13,t12)))),(t27,t26)),((t2,t3),(t4,t5))),t0); (t1,(((t4,t5),(t27,t26)),((t2,t3),(((t24,t25),(t23,(((t21,t22),(t20,t19)),(t18,t17)))),((t11,(((t6,t7),t8),(t9,t10))),((t16,(t13,t12)),(t15,t14)))))),t0); (t1,((((t23,((((t21,t22),(t20,t19)),(t18,t17)),(t24,t25))),((t16,(t13,t12)),((t15,t14),(t11,(((t6,t7),t8),(t9,t10)))))),((t27,t26),(t2,t3))),(t4,t5)),t0); (t1,((t2,t3),((((t23,(((t21,t22),(t20,t19)),(t18,t17))),(((t24,t25),(t11,(((t6,t7),t8),(t9,t10)))),((t16,(t13,t12)),(t15,t14)))),(t27,t26)),(t4,t5))),t0); (t1,((t2,t3),((t26,((t4,t5),((t23,(((t21,t22),(t20,t19)),(t18,t17))),((t16,(t15,t14)),((t11,(((t6,t7),t8),(t9,t10))),((t24,t25),(t13,t12))))))),t27)),t0); (t1,(((t4,t5),((t23,(((t21,t22),(t20,t19)),(t18,t17))),((t16,(t15,t14)),((t11,(((t6,t7),t8),(t9,t10))),((t24,t25),(t13,t12)))))),((t2,t3),(t27,t26))),t0); (t1,(((t4,t5),(((t23,((((t21,t22),(t20,t19)),(t18,t17)),(t24,t25))),(((t13,t12),t16),((t15,t14),(t11,(((t6,t7),t8),(t9,t10)))))),(t27,t26))),(t2,t3)),t0); (t1,(((((t24,t25),(t23,(((t21,t22),(t20,t19)),(t18,t17)))),(((t13,t12),t16),((t15,t14),(t11,(((t6,t7),t8),(t9,t10)))))),(t27,t26)),((t2,t3),(t4,t5))),t0); (t1,((((t24,t25),(t23,(((t21,t22),(t20,t19)),(t18,t17)))),((t13,t12),((t16,(t15,t14)),(t11,(((t6,t7),t8),(t9,t10)))))),(((t27,t26),(t4,t5)),(t2,t3))),t0); (t1,(((t4,t5),((t27,t26),(((t24,t25),((t18,t17),(t23,((t21,t22),(t20,t19))))),(((t13,t12),t16),((t15,t14),(t11,(((t6,t7),t8),(t9,t10)))))))),(t2,t3)),t0); (((t2,t3),((t5,t4),((t27,t26),(((t15,t14),(((t25,t24),(t23,(((t20,t19),(t21,t22)),(t17,t18)))),((t13,t12),(t11,((t9,t10),((t7,t6),t8)))))),t16)))),t1,t0); ((((t27,t26),(((t23,(((t20,t19),(t21,t22)),(t17,t18))),(((t25,t24),(t13,t12)),(t11,((t9,t10),((t7,t6),t8))))),(t16,(t15,t14)))),((t2,t3),(t5,t4))),t1,t0); ((((((t25,t24),(t23,(((t20,t19),(t21,t22)),(t17,t18)))),((t15,t14),((t16,(t13,t12)),(t11,((t9,t10),((t7,t6),t8)))))),((t27,t26),(t2,t3))),(t5,t4)),t1,t0); ((((t27,t26),((t2,t3),((t23,(((t20,t19),(t21,t22)),(t17,t18))),(t16,(((t15,t14),(t13,t12)),((t25,t24),(t11,((t9,t10),((t7,t6),t8))))))))),(t5,t4)),t1,t0); (((t2,t3),((((t23,(((t20,t19),(t21,t22)),(t17,t18))),((t16,(t13,t12)),(((t25,t24),(t11,((t9,t10),((t7,t6),t8)))),(t15,t14)))),(t27,t26)),(t5,t4))),t1,t0); (((t2,t3),((((t23,(((t20,t19),(t21,t22)),(t17,t18))),(((t25,t24),(t11,((t9,t10),((t7,t6),t8)))),((t15,t14),(t16,(t13,t12))))),(t27,t26)),(t5,t4))),t1,t0); (((t2,t3),((((t23,((t25,t24),(((t20,t19),(t21,t22)),(t17,t18)))),(((t11,((t9,t10),((t7,t6),t8))),((t15,t14),(t13,t12))),t16)),(t27,t26)),(t5,t4))),t1,t0); (((((t25,t24),((((t20,t19),(t21,t22)),(t17,t18)),t23)),(((t15,t14),t16),((t13,t12),(t11,((t9,t10),((t7,t6),t8)))))),((t27,((t5,t4),t26)),(t2,t3))),t1,t0); (((t2,t3),(((((((t20,t19),(t21,t22)),(t17,t18)),t23),(t16,(((t25,t24),(t11,((t9,t10),((t7,t6),t8)))),((t15,t14),(t13,t12))))),(t26,t27)),(t5,t4))),t1,t0); (((((((t22,((t20,t19),t21)),(t17,t18)),t23),(((t11,((t9,t10),((t7,t6),t8))),((t13,t12),(t25,t24))),((t15,t14),t16))),((t2,t3),(t26,t27))),(t5,t4)),t1,t0); (((((t27,t26),(t5,t4)),(((t24,t25),(t23,((t18,t17),((t21,t22),(t19,t20))))),(((t13,t12),t16),((t15,t14),(((t9,t10),((t6,t7),t8)),t11))))),(t3,t2)),t1,t0); ((((t5,t4),((((t24,t25),(t23,((t18,t17),((t21,t22),(t19,t20))))),(((t13,t12),t16),((t15,t14),(((t9,t10),((t6,t7),t8)),t11)))),(t27,t26))),(t3,t2)),t1,t0); (((((t23,((t18,t17),((t21,t22),(t19,t20)))),(((t16,(t15,t14)),(((t9,t10),((t6,t7),t8)),t11)),((t13,t12),(t24,t25)))),((t27,t26),(t5,t4))),(t3,t2)),t1,t0); (((((t5,t4),(((t23,((t18,t17),((t21,t22),(t19,t20)))),(((t15,t14),((((t9,t10),((t6,t7),t8)),t11),(t24,t25))),(t16,(t13,t12)))),t26)),(t3,t2)),t27),t1,t0); (((((t23,((t18,t17),((t21,t22),(t19,t20)))),((t16,(t15,t14)),(((t13,t12),(((t9,t10),((t6,t7),t8)),t11)),(t24,t25)))),((t27,t26),(t5,t4))),(t3,t2)),t1,t0); ((((t3,t2),(t5,t4)),(t27,(((t23,((t18,t17),((t21,t22),(t19,t20)))),((((t13,t12),(((t9,t10),((t6,t7),t8)),t11)),((t15,t14),t16)),(t24,t25))),t26))),t1,t0); (((t3,t2),((t5,t4),(((t23,((t18,t17),((t21,t22),(t19,t20)))),((((t13,t12),(((t9,t10),((t6,t7),t8)),t11)),((t15,t14),t16)),(t24,t25))),(t26,t27)))),t1,t0); (((t5,t4),((((t23,((t18,t17),((t21,t22),(t19,t20)))),(((t15,t14),t16),(((t24,t25),(t13,t12)),(((t9,t10),((t6,t7),t8)),t11)))),(t26,t27)),(t3,t2))),t1,t0); (((t5,t4),((((((t9,t10),((t6,t7),t8)),t11),((t15,t14),(t16,(t13,t12)))),((t24,t25),(t23,((t18,t17),((t21,t22),(t19,t20)))))),((t3,t2),(t26,t27)))),t1,t0); (((((t23,((t19,t20),((t18,t17),(t21,t22)))),((t13,t12),((t24,t25),((t15,t14),(((t9,t10),((t6,t7),t8)),t11))))),t16),((t3,t2),((t5,t4),(t26,t27)))),t1,t0); ((((t4,t5),(t26,t27)),((t2,t3),(((t15,t14),((t23,(((t22,t21),(t19,t20)),(t18,t17))),((t11,((t8,(t7,t6)),(t9,t10))),((t24,t25),(t13,t12))))),t16))),t1,t0); (((t2,t3),((t4,t5),((t26,t27),((t23,(((t22,t21),(t19,t20)),(t18,t17))),(((t11,((t8,(t7,t6)),(t9,t10))),((t24,t25),(t13,t12))),(t16,(t15,t14))))))),t1,t0); (((t4,t5),(((t26,t27),(((t23,(((t22,t21),(t19,t20)),(t18,t17))),((t24,t25),(((t13,t12),(t11,((t8,(t7,t6)),(t9,t10)))),(t15,t14)))),t16)),(t2,t3))),t1,t0); (((t4,t5),((t26,t27),((t2,t3),(((t11,((t8,(t7,t6)),(t9,t10))),((t16,(t15,t14)),(t13,t12))),((t23,(((t22,t21),(t19,t20)),(t18,t17))),(t24,t25)))))),t1,t0); (((t4,t5),((t26,t27),((t2,t3),(((((t13,t12),(t11,((t8,(t7,t6)),(t9,t10)))),((t23,(((t22,t21),(t19,t20)),(t18,t17))),(t24,t25))),(t15,t14)),t16)))),t1,t0); (((t4,t5),((t26,t27),((t2,t3),(((t23,(((t22,t21),(t19,t20)),(t18,t17))),(t24,t25)),(((t11,((t8,(t7,t6)),(t9,t10))),(t15,t14)),(t16,(t13,t12))))))),t1,t0); (((t2,t3),((t4,t5),((((t23,(((t22,t21),(t19,t20)),(t18,t17))),(t24,t25)),((((t13,t12),(t11,((t8,(t7,t6)),(t9,t10)))),(t15,t14)),t16)),(t26,t27)))),t1,t0); (((t2,t3),((t4,t5),(((t23,((((t22,t21),(t19,t20)),(t18,t17)),(t24,t25))),(((t13,t12),(t11,((t8,(t7,t6)),(t9,t10)))),((t15,t14),t16))),(t26,t27)))),t1,t0); (((t4,t5),(((t23,(((t22,t21),(t19,t20)),(t18,t17))),(((t15,t14),((t24,t25),(t11,((t8,(t7,t6)),(t9,t10))))),(t16,(t13,t12)))),((t2,t3),(t26,t27)))),t1,t0); ((((t26,t27),(t4,t5)),((((t24,t25),(t23,(((t22,t21),(t19,t20)),(t18,t17)))),((t16,(t15,t14)),((t11,((t8,(t7,t6)),(t9,t10))),(t13,t12)))),(t2,t3))),t1,t0); (t1,((t2,t3),((((t23,((t22,(t21,(t20,t19))),(t18,t17))),((t16,((t14,t15),((t12,t13),(((t9,t10),((t7,t6),t8)),t11)))),(t25,t24))),(t26,t27)),(t4,t5))),t0); (t1,((t2,t3),(((((t12,t13),((((t9,t10),((t7,t6),t8)),t11),((t14,t15),t16))),((t25,t24),(t23,(((t20,t19),(t22,t21)),(t18,t17))))),(t26,t27)),(t4,t5))),t0); (t1,((t2,t3),((((((t14,t15),t16),((t12,t13),(((t9,t10),((t7,t6),t8)),t11))),((t25,t24),(t23,(((t20,t19),(t22,t21)),(t18,t17))))),(t26,t27)),(t4,t5))),t0); (t1,(((t14,t15),((((t12,t13),(((t9,t10),((t7,t6),t8)),t11)),t16),(t23,((((t20,t19),(t22,t21)),(t18,t17)),(t25,t24))))),(((t2,t3),(t26,t27)),(t4,t5))),t0); (t1,(((((t25,t24),(t23,(((t20,t19),(t22,t21)),(t18,t17)))),(((t14,t15),(t12,t13)),(((t9,t10),((t7,t6),t8)),t11))),t16),(((t26,t27),(t4,t5)),(t2,t3))),t0); (t1,(((((t23,(((t20,t19),(t22,t21)),(t18,t17))),((t14,t15),(((t12,t13),((t25,t24),(((t9,t10),((t7,t6),t8)),t11))),t16))),(t26,t27)),(t4,t5)),(t2,t3)),t0); (t1,((((t23,(((t20,t19),(t22,t21)),(t18,t17))),((((t14,t15),((t25,t24),(((t9,t10),((t7,t6),t8)),t11))),(t12,t13)),t16)),(t26,t27)),((t4,t5),(t2,t3))),t0); (t1,((t4,t5),((t26,t27),((t2,t3),((t23,(((t20,t19),(t22,t21)),(t18,t17))),(((t14,t15),(((t12,t13),(t25,t24)),(((t9,t10),((t7,t6),t8)),t11))),t16))))),t0); (t1,(((t2,t3),((t23,(((t20,t19),(t22,t21)),(t18,t17))),((((((t9,t10),((t7,t6),t8)),t11),(t12,t13)),(t16,(t14,t15))),(t25,t24)))),((t4,t5),(t26,t27))),t0); (t1,((((t2,t3),((t23,(((t20,t19),(t22,t21)),(t18,t17))),((t16,(t14,t15)),((t12,t13),((((t9,t10),((t7,t6),t8)),t11),(t25,t24)))))),((t4,t5),t27)),t26),t0); (t1,((t2,t3),(((((((t21,t22),(t19,t20)),(t18,t17)),t23),(t16,((((t25,t24),(t13,t12)),(t11,((t9,t10),((t7,t6),t8)))),(t15,t14)))),(t26,t27)),(t4,t5))),t0); (t1,((t2,t3),((t16,(((((((t21,t22),(t19,t20)),(t18,t17)),t23),(t25,t24)),((t13,t12),(t11,((t9,t10),((t7,t6),t8))))),(t15,t14))),((t4,t5),(t26,t27)))),t0); (t1,((t2,t3),((t26,((((((t21,t22),(t19,t20)),(t18,t17)),t23),(((t13,t12),((t25,t24),(t11,((t9,t10),((t7,t6),t8))))),((t15,t14),t16))),(t4,t5))),t27)),t0); (t1,((t2,t3),((t4,t5),((t27,t26),(((t25,t24),((((t21,t22),(t19,t20)),(t18,t17)),t23)),(((t11,((t9,t10),((t7,t6),t8))),(t13,t12)),((t15,t14),t16)))))),t0); (t1,((t2,t3),((t4,t5),((t27,t26),(((t25,t24),((((t21,t22),(t19,t20)),(t18,t17)),t23)),(((t11,((t9,t10),((t7,t6),t8))),(t16,(t13,t12))),(t15,t14)))))),t0); (t1,((((t25,t24),((((t21,t22),(t19,t20)),(t18,t17)),t23)),((t11,((t9,t10),((t7,t6),t8))),((t13,t12),(t16,(t15,t14))))),((t4,t5),((t2,t3),(t27,t26)))),t0); (t1,(((t2,t3),(t27,t26)),((((t25,t24),((((t21,t22),(t19,t20)),(t18,t17)),t23)),((t13,t12),((t16,(t15,t14)),(t11,((t9,t10),((t7,t6),t8)))))),(t4,t5))),t0); (t1,((t2,t3),(((t27,t26),((((t21,(t22,(t19,t20))),(t18,t17)),t23),(((t25,t24),(t13,t12)),((t16,(t15,t14)),(t11,((t9,t10),((t7,t6),t8))))))),(t4,t5))),t0); (t1,((((t2,t3),(t27,t26)),((((t21,(t22,(t19,t20))),(t18,t17)),t23),((t16,(t15,t14)),((t11,((t9,t10),((t7,t6),t8))),((t25,t24),(t13,t12)))))),(t4,t5)),t0); (t1,(((t27,t26),(((t25,t24),((((t19,t20),(t21,t22)),(t18,t17)),t23)),((t16,(t15,t14)),((t11,((t9,t10),((t7,t6),t8))),(t13,t12))))),((t4,t5),(t2,t3))),t0); (((t3,t2),((((t5,t4),t26),((t23,((t18,t17),((t20,t19),(t21,t22)))),((t16,(t25,t24)),(((((t8,(t6,t7)),(t10,t9)),t11),(t12,t13)),(t14,t15))))),t27)),t1,t0); ((((t5,t4),(t26,t27)),((t3,t2),(((((t8,(t6,t7)),(t10,t9)),t11),((t12,t13),(t16,(t14,t15)))),((t23,((t18,t17),((t20,t19),(t21,t22)))),(t25,t24))))),t1,t0); (((t3,t2),(((((t14,t15),(((((t8,(t6,t7)),(t10,t9)),t11),(t12,t13)),((t23,((t18,t17),((t20,t19),(t21,t22)))),(t25,t24)))),t16),(t26,t27)),(t5,t4))),t1,t0); (((((t23,((t18,t17),((t20,t19),(t21,t22)))),((t16,((((t8,(t6,t7)),(t10,t9)),t11),(t14,t15))),((t12,t13),(t25,t24)))),(t26,t27)),((t5,t4),(t3,t2))),t1,t0); (((t3,t2),((((t23,((t18,t17),((t20,t19),(t21,t22)))),((((((t8,(t6,t7)),(t10,t9)),t11),(t25,t24)),((t12,t13),(t14,t15))),t16)),(t26,t27)),(t5,t4))),t1,t0); ((((t3,t2),(t26,t27)),((t5,t4),(t16,((t23,((t18,t17),((t20,t19),(t21,t22)))),(((((t8,(t6,t7)),(t10,t9)),t11),(t25,t24)),((t12,t13),(t14,t15))))))),t1,t0); ((((t5,t4),(((t23,((t18,t17),((t20,t19),(t21,t22)))),((t14,t15),((((((t8,(t6,t7)),(t10,t9)),t11),(t25,t24)),(t12,t13)),t16))),(t26,t27))),(t3,t2)),t1,t0); (((t5,t4),(((t23,((t18,t17),(t22,((t20,t19),t21)))),(((((t8,(t6,t7)),(t10,t9)),t11),((t25,t24),(t12,t13))),(t16,(t14,t15)))),((t3,t2),(t26,t27)))),t1,t0); (((t5,t4),((t3,t2),((t26,t27),((t16,(t14,t15)),(((t25,t24),(t23,((t18,t17),((t20,t19),(t21,t22))))),((((t8,(t6,t7)),(t10,t9)),t11),(t12,t13))))))),t1,t0); (((t3,t2),(((t26,t27),((t23,((t18,t17),((t20,t19),(t21,t22)))),((((t25,t24),(((t8,(t6,t7)),(t10,t9)),t11)),(t12,t13)),(t16,(t14,t15))))),(t5,t4))),t1,t0); (t1,(((((t24,t25),(t23,((t18,t17),((t22,t21),(t19,t20))))),(((t14,t15),t16),((t12,t13),(t11,((t10,t9),((t6,t7),t8)))))),(t26,t27)),((t5,t4),(t2,t3))),t0); (t1,(((t26,t27),(t2,t3)),(((t23,((t18,t17),((t22,t21),(t19,t20)))),(t16,(((t24,t25),(t12,t13)),((t11,((t10,t9),((t6,t7),t8))),(t14,t15))))),(t5,t4))),t0); (t1,(((t5,t4),((t26,t27),(((t23,((t18,t17),((t22,t21),(t19,t20)))),(t24,t25)),((t16,(t12,t13)),((t11,((t10,t9),((t6,t7),t8))),(t14,t15)))))),(t2,t3)),t0); (t1,(((((t23,((t18,t17),(t22,(t21,(t19,t20))))),(t24,t25)),(((t11,((t10,t9),((t6,t7),t8))),((t14,t15),(t12,t13))),t16)),((t5,t4),(t26,t27))),(t2,t3)),t0); (t1,((t5,t4),(((t2,t3),(t26,t27)),(t16,(((t23,((t18,t17),((t19,t20),(t22,t21)))),(t24,t25)),((t14,t15),((t12,t13),(t11,((t10,t9),((t6,t7),t8))))))))),t0); (t1,(((t23,((t21,(t18,t17)),((t19,t20),t22))),((t16,(t14,t15)),((t12,t13),((t24,t25),(t11,((t10,t9),((t6,t7),t8))))))),((t5,t4),((t2,t3),(t26,t27)))),t0); (t1,((t5,t4),((t2,t3),((t27,t26),(((t24,t25),(t23,((t18,t17),((t19,t20),(t21,t22))))),((t16,(t14,t15)),((t11,((t10,t9),((t6,t7),t8))),(t12,t13))))))),t0); (t1,((((t2,t3),(t27,t26)),((t23,((t18,t17),((t19,t20),(t21,t22)))),(((t24,t25),(t12,t13)),((t16,(t14,t15)),(t11,((t10,t9),((t6,t7),t8))))))),(t5,t4)),t0); (t1,(((t16,((t14,t15),(((t11,((t10,t9),((t6,t7),t8))),(t12,t13)),((t24,t25),(t23,((t18,t17),((t19,t20),(t21,t22)))))))),(t2,t3)),((t5,t4),(t27,t26))),t0); (t1,((t5,t4),(((t23,((t18,t17),((t19,t20),(t21,t22)))),((((t14,t15),((t11,((t10,t9),((t6,t7),t8))),(t24,t25))),(t12,t13)),t16)),((t2,t3),(t27,t26)))),t0); ((((t27,t26),(((t23,((t18,t17),((t21,t22),(t20,t19)))),(t16,(((t24,t25),(((t9,t10),(t8,(t6,t7))),t11)),((t12,t13),(t15,t14))))),(t2,t3))),(t4,t5)),t1,t0); (((t2,t3),((t27,t26),((t4,t5),(((t24,t25),(t23,((t18,t17),((t21,t22),(t20,t19))))),(((t15,t14),t16),((((t9,t10),(t8,(t6,t7))),t11),(t12,t13))))))),t1,t0); (((t4,t5),(((t2,t3),((t23,((t18,t17),((t21,t22),(t20,t19)))),(((t15,t14),t16),((((t9,t10),(t8,(t6,t7))),t11),((t24,t25),(t12,t13)))))),(t27,t26))),t1,t0); (((t4,t5),((t2,t3),(((((t24,t25),t23),(((t18,t17),(t21,(t20,t19))),t22)),(((t15,t14),t16),((((t9,t10),(t8,(t6,t7))),t11),(t12,t13)))),(t27,t26)))),t1,t0); (((t2,t3),((((t24,t25),(t23,((t18,t17),((t20,t19),(t21,t22))))),((((t9,t10),(t8,(t6,t7))),t11),((t12,t13),((t15,t14),t16)))),((t4,t5),(t27,t26)))),t1,t0); (((t2,t3),(((((t18,t17),((t20,t19),(t21,t22))),t23),(((t15,t14),(t12,t13)),(t16,((t24,t25),(((t9,t10),(t8,(t6,t7))),t11))))),((t4,t5),(t27,t26)))),t1,t0); (((t4,t5),(((((t18,t17),((t20,t19),(t21,t22))),t23),(t16,(((t24,t25),((t12,t13),(((t9,t10),(t8,(t6,t7))),t11))),(t15,t14)))),((t2,t3),(t26,t27)))),t1,t0); (((t4,t5),((((((t18,t17),((t20,t19),(t21,t22))),t23),(t24,t25)),(t16,((((t9,t10),(t8,(t6,t7))),t11),((t12,t13),(t15,t14))))),((t2,t3),(t26,t27)))),t1,t0); (((t4,t5),((t2,t3),((t26,t27),(((t15,t14),(t16,((t12,t13),((t24,t25),(((t9,t10),(t8,(t6,t7))),t11))))),(t23,((t18,t17),((t20,t19),(t21,t22)))))))),t1,t0); ((((t4,t5),(t26,t27)),((((((t9,t10),(t8,(t6,t7))),t11),((t16,(t12,t13)),(t15,t14))),((t24,t25),(t23,((t18,t17),((t20,t19),(t21,t22)))))),(t2,t3))),t1,t0); (t1,((t5,t4),((t26,t27),((((t25,t24),(t23,(((t22,t21),(t19,t20)),(t18,t17)))),((t16,(t15,t14)),((t12,t13),((((t7,t6),t8),(t9,t10)),t11)))),(t2,t3)))),t0); (t1,(((t16,((t15,t14),(((t12,t13),((((t7,t6),t8),(t9,t10)),t11)),((t25,t24),(t23,(((t22,t21),(t19,t20)),(t18,t17))))))),(t2,t3)),((t5,t4),(t26,t27))),t0); (t1,((t2,t3),(((t26,t27),(t16,((t23,(((t22,t21),(t19,t20)),(t18,t17))),(((t25,t24),(t12,t13)),((t15,t14),((((t7,t6),t8),(t9,t10)),t11)))))),(t5,t4))),t0); (t1,((t2,t3),((((t12,t13),(t16,((t15,t14),((((t7,t6),t8),(t9,t10)),t11)))),((((t22,t21),(t19,t20)),((t18,t17),t23)),(t25,t24))),((t26,t27),(t5,t4)))),t0); (t1,((((((((t7,t6),t8),(t9,t10)),t11),(t12,t13)),(t16,(t15,t14))),((t23,(((t22,t21),(t19,t20)),(t18,t17))),(t25,t24))),(((t26,t27),(t5,t4)),(t2,t3))),t0); (t1,(((((t12,t13),((t16,(t15,t14)),((((t7,t6),t8),(t9,t10)),t11))),((t23,(((t22,t21),(t19,t20)),(t18,t17))),(t25,t24))),((t2,t3),(t26,t27))),(t5,t4)),t0); (t1,(((t26,t27),((((t15,t14),(((((t7,t6),t8),(t9,t10)),t11),(t12,t13))),((t23,(((t22,t21),(t19,t20)),(t18,t17))),(t25,t24))),t16)),((t5,t4),(t2,t3))),t0); (t1,(((t26,t27),(((t16,(t15,t14)),(((((t7,t6),t8),(t9,t10)),t11),(t12,t13))),((t23,(((t22,t21),(t19,t20)),(t18,t17))),(t25,t24)))),((t5,t4),(t2,t3))),t0); (t1,((((t2,t3),(t26,t27)),((t23,(((t22,t21),(t19,t20)),(t18,t17))),((t25,t24),(((((t7,t6),t8),(t9,t10)),t11),(((t12,t13),t16),(t15,t14)))))),(t5,t4)),t0); (t1,((((t26,t27),((t23,(((t22,t21),(t19,t20)),(t18,t17))),(t16,((t15,t14),((t12,t13),((t25,t24),((((t7,t6),t8),(t9,t10)),t11))))))),(t5,t4)),(t2,t3)),t0); (t1,((t3,t2),(((t26,(((((t22,t21),(t19,t20)),(t17,t18)),t23),(((t24,t25),(t12,t13)),((((t8,(t6,t7)),(t9,t10)),t11),((t14,t15),t16))))),(t4,t5)),t27)),t0); (t1,((t4,t5),(((t26,t27),(t3,t2)),(((t14,t15),(((t24,t25),((((t22,t21),(t19,t20)),(t17,t18)),t23)),((t12,t13),(((t8,(t6,t7)),(t9,t10)),t11)))),t16))),t0); (t1,((t3,t2),(((t26,t27),(((((t22,t21),(t19,t20)),(t17,t18)),t23),(((t24,t25),(((t8,(t6,t7)),(t9,t10)),t11)),(((t12,t13),t16),(t14,t15))))),(t4,t5))),t0); (t1,(((t26,t27),((t3,t2),(((((t22,t21),(t19,t20)),(t17,t18)),t23),(((t24,t25),(t12,t13)),(((t14,t15),t16),(((t8,(t6,t7)),(t9,t10)),t11)))))),(t4,t5)),t0); (t1,(((((t14,t15),((((t24,t25),(((t8,(t6,t7)),(t9,t10)),t11)),(t12,t13)),((((t22,t21),(t19,t20)),(t17,t18)),t23))),t16),((t26,t27),(t3,t2))),(t4,t5)),t0); (t1,((t3,t2),((((t24,t25),((((t22,t21),(t19,t20)),(t17,t18)),t23)),((t12,t13),((t16,(t14,t15)),(((t8,(t6,t7)),(t9,t10)),t11)))),((t4,t5),(t26,t27)))),t0); (t1,((t4,t5),(((t3,t2),(t26,t27)),(((((t22,t21),(t19,t20)),(t17,t18)),t23),(((t24,t25),(t12,t13)),((t16,(t14,t15)),(((t8,(t6,t7)),(t9,t10)),t11)))))),t0); (t1,((t27,((t3,t2),t26)),((((t12,t13),((((t8,(t6,t7)),(t9,t10)),t11),(t16,(t14,t15)))),(((((t22,t21),(t19,t20)),(t17,t18)),t23),(t24,t25))),(t4,t5))),t0); (t1,((t27,(t26,(((((t22,t21),(t19,t20)),(t17,t18)),t23),((t24,t25),((t16,(t14,t15)),((t12,t13),(((t8,(t6,t7)),(t9,t10)),t11))))))),((t4,t5),(t3,t2))),t0); (t1,((t3,t2),((((((t24,t25),(((t22,t21),(t19,t20)),(t17,t18))),t23),(t16,((t14,t15),((t12,t13),(((t8,(t6,t7)),(t9,t10)),t11))))),(t27,t26)),(t4,t5))),t0); ((((t26,((t5,t4),(t3,t2))),t27),(((t16,(t14,t15)),(((t24,t25),(t13,t12)),(t11,((t8,(t6,t7)),(t9,t10))))),(((t18,t17),((t19,t20),(t22,t21))),t23))),t1,t0); (((t3,t2),(((t27,t26),(t5,t4)),(((t13,t12),((t16,(t14,t15)),(t11,((t8,(t6,t7)),(t9,t10))))),((t24,t25),(((t18,t17),((t19,t20),(t22,t21))),t23))))),t1,t0); (((t3,t2),((t5,t4),(((((t18,t17),((t19,t20),(t22,t21))),t23),((t16,(t14,t15)),(((t24,t25),(t11,((t8,(t6,t7)),(t9,t10)))),(t13,t12)))),(t27,t26)))),t1,t0); (((t5,t4),((((((t18,t17),((t19,t20),(t22,t21))),t23),(((t13,t12),(t24,t25)),((t16,(t14,t15)),(t11,((t8,(t6,t7)),(t9,t10)))))),(t27,t26)),(t3,t2))),t1,t0); (((((((t18,t17),((t19,t20),(t22,t21))),t23),((((t14,t15),((t11,((t8,(t6,t7)),(t9,t10))),(t24,t25))),(t13,t12)),t16)),(t27,t26)),((t3,t2),(t5,t4))),t1,t0); ((((t3,t2),((((t18,t17),((t19,t20),(t22,t21))),t23),((t24,t25),(((t14,t15),(t11,((t8,(t6,t7)),(t9,t10)))),((t13,t12),t16))))),((t27,t26),(t5,t4))),t1,t0); ((((t27,t26),(((t16,(t14,t15)),(((t24,t25),(t11,((t8,(t6,t7)),(t9,t10)))),(t13,t12))),(((t18,t17),((t19,t20),(t22,t21))),t23))),((t5,t4),(t3,t2))),t1,t0); (((((t11,((t8,(t6,t7)),(t9,t10))),(((t13,t12),t16),(t14,t15))),(((t18,t17),((t19,t20),(t22,t21))),((t24,t25),t23))),(((t3,t2),(t27,t26)),(t5,t4))),t1,t0); (((((t14,t15),t16),(((t24,t25),(t23,((t18,t17),((t19,t20),(t22,t21))))),((t13,t12),(t11,((t8,(t6,t7)),(t9,t10)))))),((t3,t2),((t27,t26),(t5,t4)))),t1,t0); (((t3,t2),(((((t24,t25),(t23,((t18,t17),((t19,t20),(t22,t21))))),(((t13,t12),(t11,((t8,(t6,t7)),(t9,t10)))),((t14,t15),t16))),(t27,t26)),(t5,t4))),t1,t0); (t1,((((((t11,((t10,t9),((t7,t6),t8))),(t12,t13)),(t16,(t14,t15))),((t24,t25),(((t21,(t20,t19)),((t18,t17),t22)),t23))),((t2,t3),(t27,t26))),(t4,t5)),t0); (t1,((t2,t3),(((t27,t26),(((((t24,t25),(t11,((t10,t9),((t7,t6),t8)))),(t12,t13)),(t16,(t14,t15))),((((t22,t21),(t20,t19)),(t18,t17)),t23))),(t4,t5))),t0); (t1,((t4,t5),(((t2,t3),(t27,t26)),(((t16,(t12,t13)),((t14,t15),(t11,((t10,t9),((t7,t6),t8))))),((t24,t25),((((t22,t21),(t20,t19)),(t18,t17)),t23))))),t0); (t1,(((t2,t3),(t4,t5)),((t27,t26),(((t16,(t14,t15)),((t11,((t10,t9),((t7,t6),t8))),(t12,t13))),((t24,t25),((((t22,t21),(t20,t19)),(t18,t17)),t23))))),t0); (t1,((t4,t5),(((((t24,t25),(t12,t13)),((t16,(t14,t15)),(t11,((t10,t9),((t7,t6),t8))))),((((t22,t21),(t20,t19)),(t18,t17)),t23)),((t2,t3),(t27,t26)))),t0); (t1,((t2,t3),((t4,t5),((t27,t26),(((t16,((t12,t13),(t14,t15))),(t11,((t10,t9),((t7,t6),t8)))),((t24,t25),((((t22,t21),(t20,t19)),(t18,t17)),t23)))))),t0); (t1,(((((t11,((t10,t9),((t7,t6),t8))),(t12,t13)),(t16,(t14,t15))),((t24,t25),((((t22,t21),(t20,t19)),(t18,t17)),t23))),((t4,t5),((t2,t3),(t27,t26)))),t0); (t1,((t2,t3),(((t27,t26),((((t16,(t12,t13)),(t11,((t10,t9),((t7,t6),t8)))),(t14,t15)),((t24,t25),((((t22,t21),(t20,t19)),(t18,t17)),t23)))),(t4,t5))),t0); (t1,(((t2,t3),((((t11,((t10,t9),((t7,t6),t8))),(t12,t13)),((t14,t15),t16)),((t24,t25),((((t22,t21),(t20,t19)),(t18,t17)),t23)))),((t4,t5),(t27,t26))),t0); (t1,((t2,t3),(((((t16,(t12,t13)),((t14,t15),(t11,((t10,t9),((t7,t6),t8))))),((((t22,t21),(t20,t19)),(t18,t17)),(t23,(t24,t25)))),(t27,t26)),(t4,t5))),t0); (t1,((t4,t5),((t26,t27),((t3,t2),((((t18,t17),((t22,t21),(t20,t19))),t23),(t16,((t14,t15),((t24,t25),((t12,t13),((((t6,t7),t8),(t10,t9)),t11))))))))),t0); (t1,((t4,t5),(((((t18,t17),((t22,t21),(t20,t19))),t23),((t16,(t14,t15)),(((t24,t25),(t12,t13)),((((t6,t7),t8),(t10,t9)),t11)))),((t26,t27),(t3,t2)))),t0); (t1,((t3,t2),((((((t18,t17),((t22,t21),(t20,t19))),t23),(((t12,t13),t16),((t14,t15),(((((t6,t7),t8),(t10,t9)),t11),(t24,t25))))),(t26,t27)),(t4,t5))),t0); (t1,((((t3,t2),(((t24,t25),(((t18,t17),((t22,t21),(t20,t19))),t23)),(((t12,t13),t16),((t14,t15),((((t6,t7),t8),(t10,t9)),t11))))),(t26,(t4,t5))),t27),t0); (t1,((t4,t5),(((t3,t2),(((t14,t15),((((((t6,t7),t8),(t10,t9)),t11),(t12,t13)),((t24,t25),(((t18,t17),((t22,t21),(t20,t19))),t23)))),t16)),(t27,t26))),t0); (t1,(((t3,t2),(((t24,t25),(((t18,t17),((t22,t21),(t20,t19))),t23)),((t16,((t14,t15),((((t6,t7),t8),(t10,t9)),t11))),(t12,t13)))),((t27,t26),(t4,t5))),t0); (t1,((t4,t5),(((t3,t2),((((t24,t25),(((t20,t19),((t18,t17),(t22,t21))),t23)),(((((t6,t7),t8),(t10,t9)),t11),(t12,t13))),(t16,(t14,t15)))),(t27,t26))),t0); (t1,((t3,t2),((t4,t5),(((((t18,t17),((t22,t21),(t20,t19))),t23),((((t14,t15),((((t6,t7),t8),(t10,t9)),t11)),((t24,t25),(t12,t13))),t16)),(t27,t26)))),t0); (t1,((t3,t2),((t4,t5),((((t24,t25),(((t18,t17),((t22,t21),(t20,t19))),t23)),((t16,(t14,t15)),(((((t6,t7),t8),(t10,t9)),t11),(t12,t13)))),(t27,t26)))),t0); (t1,((t4,t5),((((((t18,t17),((t22,t21),(t20,t19))),t23),(((t24,t25),(t12,t13)),((t14,t15),(((((t6,t7),t8),(t10,t9)),t11),t16)))),(t27,t26)),(t3,t2))),t0); ((((t27,t26),(((((t24,t25),t23),((t17,t18),((t21,t22),(t19,t20)))),((t16,(t14,t15)),((t12,t13),(t11,((t9,t10),(t8,(t6,t7))))))),(t3,t2))),(t5,t4)),t1,t0); (((t5,t4),(((t27,t26),(t3,t2)),((((t14,t15),(((t24,t25),(t12,t13)),(t11,((t9,t10),(t8,(t6,t7)))))),(t23,((t17,t18),((t21,t22),(t19,t20))))),t16))),t1,t0); ((((t27,t26),(t3,t2)),((((t16,(t14,t15)),((t12,t13),(t11,((t9,t10),(t8,(t6,t7)))))),((t24,t25),(t23,((t17,t18),((t21,t22),(t19,t20)))))),(t5,t4))),t1,t0); ((((t27,t26),(t3,t2)),((((t16,((t12,t13),(t14,t15))),(t11,((t9,t10),(t8,(t6,t7))))),((t24,t25),(t23,((t17,t18),((t21,t22),(t19,t20)))))),(t5,t4))),t1,t0); (((t27,(t3,t2)),((t26,((t16,((t12,t13),((t14,t15),((t24,t25),(t11,((t9,t10),(t8,(t6,t7)))))))),(t23,((t17,t18),((t21,t22),(t19,t20)))))),(t5,t4))),t1,t0); (((((t16,(((t12,t13),(t11,((t9,t10),(t8,(t6,t7))))),(t14,t15))),(t23,((t24,t25),((t17,t18),((t21,t22),(t19,t20)))))),(t3,t2)),((t26,t27),(t5,t4))),t1,t0); (((((((t24,t25),(t12,t13)),((t11,((t9,t10),(t8,(t6,t7)))),((t14,t15),t16))),(t23,(((t21,t22),(t19,t20)),(t17,t18)))),(t26,t27)),((t5,t4),(t3,t2))),t1,t0); ((((((t14,t15),t16),((t12,t13),(t11,((t9,t10),(t8,(t6,t7)))))),((t24,t25),(t23,(((t21,t22),(t19,t20)),(t17,t18))))),((t26,t27),((t5,t4),(t3,t2)))),t1,t0); (((t3,t2),(((((t12,t13),((t11,((t9,t10),(t8,(t6,t7)))),((t14,t15),t16))),((t24,t25),(t23,(((t21,t22),(t19,t20)),(t17,t18))))),(t26,t27)),(t5,t4))),t1,t0); (((((((t14,t15),t16),(((t24,t25),(t12,t13)),(t11,((t9,t10),(t8,(t6,t7)))))),(t23,(((t21,t22),(t19,t20)),(t17,t18)))),((t3,t2),(t26,t27))),(t5,t4)),t1,t0); (((t4,t5),((t27,t26),(((t16,(((t13,t12),(t14,t15)),((t24,t25),(t11,((t10,t9),(t8,(t6,t7))))))),(((t20,t19),((t22,t21),(t18,t17))),t23)),(t2,t3)))),t1,t0); (((t16,((t14,t15),(((t11,((t10,t9),(t8,(t6,t7)))),(t13,t12)),((t24,t25),((((t22,t21),(t20,t19)),(t18,t17)),t23))))),(((t4,t5),(t2,t3)),(t27,t26))),t1,t0); ((((t4,t5),(t2,t3)),(t27,((((t24,t25),((((t22,t21),(t20,t19)),(t18,t17)),t23)),((t13,t12),((t16,(t14,t15)),(t11,((t10,t9),(t8,(t6,t7))))))),t26))),t1,t0); ((((t4,t5),(((((t22,t21),(t20,t19)),(t18,t17)),(t23,(t24,t25))),((((t13,t12),t16),(t14,t15)),(t11,((t10,t9),(t8,(t6,t7))))))),((t26,t27),(t2,t3))),t1,t0); (((t4,t5),((((((t22,t21),(t20,t19)),(t18,t17)),(t23,(t24,t25))),(((t11,((t10,t9),(t8,(t6,t7)))),(t13,t12)),(t16,(t14,t15)))),(t27,((t2,t3),t26)))),t1,t0); ((((t4,t5),((((((t22,t21),(t20,t19)),(t18,t17)),t23),((t14,t15),(((t24,t25),((t11,((t10,t9),(t8,(t6,t7)))),(t13,t12))),t16))),(t26,t27))),(t2,t3)),t1,t0); ((((((((t22,t21),(t20,t19)),(t18,t17)),t23),((t14,t15),((t11,((t10,t9),(t8,(t6,t7)))),((t13,t12),(t24,t25))))),t16),((t2,t3),((t4,t5),(t26,t27)))),t1,t0); ((((t2,t3),(t26,t27)),((t4,t5),((((((t22,t21),(t20,t19)),(t18,t17)),t23),((t13,t12),((t14,t15),((t24,t25),(t11,((t10,t9),(t8,(t6,t7)))))))),t16))),t1,t0); (((t4,t5),((((((t22,t21),(t20,t19)),(t18,t17)),t23),(t16,((t13,t12),(((t24,t25),(t11,((t10,t9),(t8,(t6,t7))))),(t14,t15))))),((t2,t3),(t26,t27)))),t1,t0); (((t2,t3),((((t4,t5),t26),t27),(((t24,t25),((((t22,t21),(t20,t19)),(t18,t17)),t23)),((t11,((t10,t9),(t8,(t6,t7)))),(((t13,t12),t16),(t14,t15)))))),t1,t0); (t1,((t2,t3),(((t26,t27),((((t13,t12),(t11,((t8,(t7,t6)),(t10,t9)))),(t16,(t14,t15))),(((t25,t24),(((t22,t21),(t20,t19)),(t18,t17))),t23))),(t5,t4))),t0); (t1,((t2,t3),(((t26,t27),((((t14,t15),((t11,((t8,(t7,t6)),(t10,t9))),((t25,t24),(t13,t12)))),t16),(((t18,t17),((t22,t21),(t20,t19))),t23))),(t5,t4))),t0); (t1,((((t2,t3),(t26,t27)),((((t14,t15),((t13,t12),((t11,((t8,(t7,t6)),(t10,t9))),(t25,t24)))),t16),(((t18,t17),((t22,t21),(t20,t19))),t23))),(t5,t4)),t0); (t1,(((t26,t27),((((((t11,((t8,(t7,t6)),(t10,t9))),(t25,t24)),(t14,t15)),(t16,(t13,t12))),(((t18,t17),((t22,t21),(t20,t19))),t23)),(t2,t3))),(t5,t4)),t0); (t1,((((t26,t27),(((t14,t15),(t16,((t13,t12),(t11,((t8,(t7,t6)),(t10,t9)))))),(((t18,t17),((t22,t21),(t20,t19))),((t25,t24),t23)))),(t2,t3)),(t5,t4)),t0); (t1,((((t16,(((t13,t12),((t25,t24),(t11,((t8,(t7,t6)),(t10,t9))))),(t14,t15))),(((t18,t17),((t22,t21),(t20,t19))),t23)),((t2,t3),(t26,t27))),(t5,t4)),t0); (t1,(((t26,t27),((((t13,t12),(t11,((t8,(t7,t6)),(t10,t9)))),((t14,t15),t16)),((t25,t24),(((t18,t17),((t22,t21),(t20,t19))),t23)))),((t5,t4),(t2,t3))),t0); (t1,((t2,t3),((t27,(((((t18,t17),((t22,t21),(t20,t19))),t23),((((t13,t12),(t11,((t8,(t7,t6)),(t10,t9)))),((t14,t15),t16)),(t25,t24))),t26)),(t5,t4))),t0); (t1,(((t2,t3),(((t14,t15),(((t25,t24),(((t18,t17),((t22,t21),(t20,t19))),t23)),((t13,t12),(t11,((t8,(t7,t6)),(t10,t9)))))),t16)),((t26,t27),(t5,t4))),t0); (t1,(((t26,t27),(((t25,t24),(((t18,t17),((t22,t21),(t20,t19))),t23)),((t13,t12),((t16,(t14,t15)),(t11,((t8,(t7,t6)),(t10,t9))))))),((t5,t4),(t2,t3))),t0); (t1,((t2,t3),(((t26,t27),(t5,t4)),((((t24,t25),(t12,t13)),((t11,((t8,(t7,t6)),(t10,t9))),(t16,(t15,t14)))),(t23,((t18,t17),((t22,t21),(t19,t20))))))),t0); (t1,((t5,t4),((t2,t3),(((((t12,t13),(((t11,((t8,(t7,t6)),(t10,t9))),(t24,t25)),(t15,t14))),t16),(t23,((t18,t17),((t22,t21),(t19,t20))))),(t26,t27)))),t0); (t1,((t2,t3),((((((t15,t14),t16),((t12,t13),(t11,((t8,(t7,t6)),(t10,t9))))),((t23,((t18,t17),((t22,t21),(t19,t20)))),(t24,t25))),(t26,t27)),(t5,t4))),t0); (t1,((t16,((((t12,t13),(t11,((t8,(t7,t6)),(t10,t9)))),((t23,((t18,t17),((t22,t21),(t19,t20)))),(t24,t25))),(t15,t14))),((t5,t4),((t26,t27),(t2,t3)))),t0); (t1,((t5,t4),((((t23,((t18,t17),((t22,t21),(t19,t20)))),((t24,t25),(((t15,t14),t16),((t12,t13),(t11,((t8,(t7,t6)),(t10,t9))))))),(t26,t27)),(t2,t3))),t0); (t1,((t2,t3),((t5,t4),((((t16,(t15,t14)),((t12,t13),((t24,t25),(t11,((t8,(t7,t6)),(t10,t9)))))),(t23,((t18,t17),((t22,t21),(t19,t20))))),(t26,t27)))),t0); (t1,((t5,t4),((t26,t27),((t2,t3),(((t16,((t11,((t8,(t7,t6)),(t10,t9))),(t15,t14))),((t12,t13),(t24,t25))),(t23,((t18,t17),((t22,t21),(t19,t20)))))))),t0); (t1,(t27,(((t2,t3),(t26,((((t11,((t8,(t7,t6)),(t10,t9))),((t15,t14),(t12,t13))),t16),(((t24,t25),t23),((t18,t17),((t22,t21),(t19,t20))))))),(t5,t4))),t0); (t1,((t5,t4),(((t26,t27),(t2,t3)),(((t16,(t15,t14)),((t12,t13),((t24,t25),(t11,((t8,(t7,t6)),(t10,t9)))))),(t23,((t18,t17),((t22,t21),(t19,t20))))))),t0); (t1,((t5,t4),(((t26,t27),(t2,t3)),((((t24,t25),(t11,((t8,(t7,t6)),(t10,t9)))),((t15,t14),((t12,t13),t16))),(t23,((t18,t17),((t22,t21),(t19,t20))))))),t0); (t1,((t4,t5),((((t11,((t10,t9),(t8,(t6,t7)))),((t16,(t12,t13)),(t14,t15))),((t24,t25),(t23,((t18,t17),(t22,((t19,t20),t21)))))),((t2,t3),(t27,t26)))),t0); (t1,(((t4,t5),(t27,t26)),(((t16,((t14,t15),(((t24,t25),(t12,t13)),(t11,((t10,t9),(t8,(t6,t7))))))),(t23,(((t22,t21),(t18,t17)),(t19,t20)))),(t2,t3))),t0); (t1,((t2,t3),(((t27,t26),((((t12,t13),((t11,((t10,t9),(t8,(t6,t7)))),(t24,t25))),(t16,(t14,t15))),(t23,((t18,t17),((t19,t20),(t22,t21)))))),(t4,t5))),t0); (t1,((t2,t3),(((t27,t26),((((t11,((t10,t9),(t8,(t6,t7)))),((t24,t25),(t12,t13))),(t16,(t14,t15))),(t23,((t18,t17),((t19,t20),(t22,t21)))))),(t4,t5))),t0); (t1,((t2,t3),(((((t12,t13),((t11,((t10,t9),(t8,(t6,t7)))),(t24,t25))),(t16,(t14,t15))),(t23,((t18,t17),((t19,t20),(t22,t21))))),((t4,t5),(t27,t26)))),t0); (t1,((t4,t5),((t2,t3),((t27,t26),(((t12,t13),((t11,((t10,t9),(t8,(t6,t7)))),(t16,(t14,t15)))),((t24,t25),(t23,((t18,t17),((t19,t20),(t22,t21))))))))),t0); (t1,((((t2,t3),(t27,t26)),(((t12,t13),(t16,((t14,t15),(t11,((t10,t9),(t8,(t6,t7))))))),((t24,t25),((t18,t17),(((t19,t20),(t22,t21)),t23))))),(t4,t5)),t0); (t1,((((t2,t3),(t27,t26)),((((t18,t17),((t19,t20),(t22,t21))),(t23,(t24,t25))),((t11,((t10,t9),(t8,(t6,t7)))),(t16,((t12,t13),(t14,t15)))))),(t4,t5)),t0); (t1,((((t27,t26),((((t18,t17),((t19,t20),(t22,t21))),t23),(((t16,(t14,t15)),((t12,t13),(t11,((t10,t9),(t8,(t6,t7)))))),(t24,t25)))),(t4,t5)),(t2,t3)),t0); (t1,((t4,t5),((t2,t3),((t27,t26),(((t16,(t14,t15)),((t12,t13),(t11,((t10,t9),(t8,(t6,t7)))))),((t24,t25),(((t18,t17),((t19,t20),(t22,t21))),t23)))))),t0); (((t3,t2),(((t5,t4),(t26,t27)),(((t24,t25),(t23,((t19,t20),((t21,t22),(t18,t17))))),((t16,(t15,t14)),((t13,t12),(t11,((t10,t9),((t7,t6),t8)))))))),t1,t0); (((t5,t4),((t26,t27),((((t15,t14),(((t13,t12),(t11,((t10,t9),((t7,t6),t8)))),((t24,t25),(t23,(((t22,t21),(t19,t20)),(t18,t17)))))),t16),(t3,t2)))),t1,t0); ((((t5,t4),(((t24,t25),(t23,(((t22,t21),(t19,t20)),(t18,t17)))),((t16,(t15,t14)),((t13,t12),(t11,((t10,t9),((t7,t6),t8))))))),((t26,t27),(t3,t2))),t1,t0); ((((t5,t4),(t26,t27)),((t3,t2),((t23,(((t22,t21),(t19,t20)),(t18,t17))),((t16,(t15,t14)),(((t24,t25),(t13,t12)),(t11,((t10,t9),((t7,t6),t8)))))))),t1,t0); (((t5,t4),(((t26,t27),((t23,((t22,(t19,t20)),(t21,(t18,t17)))),(((t13,t12),t16),((t15,t14),((t11,((t10,t9),((t7,t6),t8))),(t24,t25)))))),(t3,t2))),t1,t0); (((t5,t4),((t26,t27),((((t24,t25),(t23,(((t21,t22),(t19,t20)),(t18,t17)))),((t16,(t15,t14)),((t11,((t10,t9),((t7,t6),t8))),(t13,t12)))),(t3,t2)))),t1,t0); ((((t26,t27),(t3,t2)),((t5,t4),((t23,((t22,(t19,t20)),(t21,(t18,t17)))),((((t24,t25),(t11,((t10,t9),((t7,t6),t8)))),(t13,t12)),((t15,t14),t16))))),t1,t0); (((t5,t4),((t26,t27),((t3,t2),(((t24,t25),((((t21,t22),(t19,t20)),(t18,t17)),t23)),(((t13,t12),(t15,t14)),(t16,(t11,((t10,t9),((t7,t6),t8))))))))),t1,t0); ((((t26,t27),(t3,t2)),(((((((t21,t22),(t19,t20)),(t18,t17)),t23),((t15,t14),((t11,((t10,t9),((t7,t6),t8))),((t13,t12),(t24,t25))))),t16),(t5,t4))),t1,t0); ((((t26,t27),(t3,t2)),(((((((t21,t22),(t19,t20)),(t18,t17)),t23),((t24,t25),(((t13,t12),(t15,t14)),(t11,((t10,t9),((t7,t6),t8)))))),t16),(t5,t4))),t1,t0); (t1,((t3,t2),(((t26,t27),((t23,(((t20,t19),(t22,t21)),(t18,t17))),(((t12,t13),((t25,t24),(((t9,t10),((t6,t7),t8)),t11))),(t16,(t15,t14))))),(t4,t5))),t0); (t1,(((t26,t27),(((t25,t24),(t23,(((t20,t19),(t22,t21)),(t18,t17)))),((((t9,t10),((t6,t7),t8)),t11),((t16,(t15,t14)),(t12,t13))))),((t4,t5),(t3,t2))),t0); (t1,(((((t25,t24),(t23,(((t20,t19),(t22,t21)),(t18,t17)))),((t16,((t12,t13),(t15,t14))),(((t9,t10),((t6,t7),t8)),t11))),(t3,t2)),((t26,t27),(t4,t5))),t0); (t1,(((((t23,(((t20,t19),(t22,t21)),(t18,t17))),((t12,t13),((t25,t24),((t15,t14),(((t9,t10),((t6,t7),t8)),t11))))),t16),((t3,t2),(t26,t27))),(t4,t5)),t0); (t1,((t3,t2),((t26,(((t23,(((t20,t19),(t22,t21)),(t18,t17))),((t16,(t15,t14)),((((t9,t10),((t6,t7),t8)),t11),((t12,t13),(t25,t24))))),t27)),(t4,t5))),t0); (t1,((t27,(t3,t2)),((t26,((t23,(((t20,t19),(t22,t21)),(t18,t17))),((t16,(t15,t14)),((t25,t24),((((t9,t10),((t6,t7),t8)),t11),(t12,t13)))))),(t4,t5))),t0); (t1,((t4,t5),(((t26,t27),(t3,t2)),((((t16,(t15,t14)),(((t9,t10),((t6,t7),t8)),t11)),(t12,t13)),((t23,(((t20,t19),(t22,t21)),(t18,t17))),(t25,t24))))),t0); (t1,((t4,t5),((t26,t27),((t3,t2),((t23,(((t20,t19),(t22,t21)),(t18,t17))),(((t15,t14),((((t9,t10),((t6,t7),t8)),t11),(t25,t24))),(t16,(t12,t13))))))),t0); (t1,(((t3,t2),(((t25,t24),(t23,(((t20,t19),(t22,t21)),(t18,t17)))),((t16,(t15,t14)),((t12,t13),(((t9,t10),((t6,t7),t8)),t11))))),((t4,t5),(t26,t27))),t0); (t1,(((t3,t2),((t23,(((t20,t19),(t22,t21)),(t18,t17))),((((t25,t24),(((t9,t10),((t6,t7),t8)),t11)),(t12,t13)),(t16,(t15,t14))))),((t4,t5),(t26,t27))),t0); (((((t16,((t14,t15),((t11,(((t7,t6),t8),(t9,t10))),((t24,t25),(t13,t12))))),(((t18,t17),((t22,t21),(t19,t20))),t23)),(t27,t26)),((t2,t3),(t4,t5))),t1,t0); (((((((t14,t15),t16),((t13,t12),(t11,(((t7,t6),t8),(t9,t10))))),((t24,t25),(t23,((t18,t17),((t22,t21),(t19,t20)))))),(t27,t26)),((t2,t3),(t4,t5))),t1,t0); ((((t16,(((t13,t12),(t11,(((t7,t6),t8),(t9,t10)))),(t14,t15))),((t24,t25),(t23,((t18,t17),((t22,t21),(t19,t20)))))),((t4,t5),((t27,t26),(t2,t3)))),t1,t0); ((((t27,t26),(t2,t3)),((t16,((((t13,t12),((t24,t25),(t11,(((t7,t6),t8),(t9,t10))))),(t14,t15)),(t23,((t18,t17),((t22,t21),(t19,t20)))))),(t4,t5))),t1,t0); (((((t16,((t14,t15),(t11,(((t7,t6),t8),(t9,t10))))),((t13,t12),(t24,t25))),(t23,((t18,t17),((t22,t21),(t19,t20))))),((t4,t5),((t27,t26),(t2,t3)))),t1,t0); ((((t27,t26),(((((t14,t15),((t11,(((t7,t6),t8),(t9,t10))),((t13,t12),(t24,t25)))),(t23,((t18,t17),((t22,t21),(t19,t20))))),t16),(t2,t3))),(t4,t5)),t1,t0); ((((t27,t26),((((t14,t15),(t16,((t11,(((t7,t6),t8),(t9,t10))),((t13,t12),(t24,t25))))),(t23,((t18,t17),((t22,t21),(t19,t20))))),(t2,t3))),(t4,t5)),t1,t0); ((((t27,t26),((t23,((t18,t17),((t22,t21),(t19,t20)))),(((t13,t12),t16),((t24,t25),((t14,t15),(t11,(((t7,t6),t8),(t9,t10)))))))),((t2,t3),(t4,t5))),t1,t0); (((t2,t3),((t4,t5),((t27,t26),((t23,((t18,t17),((t22,t21),(t19,t20)))),((((t24,t25),(t13,t12)),(t11,(((t7,t6),t8),(t9,t10)))),(t16,(t14,t15))))))),t1,t0); (((t2,t3),((t4,t5),((t27,t26),((t16,(t14,t15)),((t23,((t18,t17),((t22,t21),(t19,t20)))),((t13,t12),((t11,(((t7,t6),t8),(t9,t10))),(t24,t25)))))))),t1,t0); (t1,((((t25,t24),(t23,((t18,t17),((t21,t22),(t20,t19))))),(((t11,((t9,t10),(t8,(t6,t7)))),(t13,t12)),(t16,(t14,t15)))),((t5,t4),((t2,t3),(t27,t26)))),t0); (t1,((t5,t4),(((t2,t3),(t27,t26)),(t16,((t14,t15),(((t25,t24),(t23,((t18,t17),((t21,t22),(t20,t19))))),((t11,((t9,t10),(t8,(t6,t7)))),(t13,t12))))))),t0); (t1,((t2,t3),(((t27,t26),((t23,((t21,(t20,t19)),(t22,(t18,t17)))),((t14,t15),(((t11,((t9,t10),(t8,(t6,t7)))),(t25,t24)),((t13,t12),t16))))),(t5,t4))),t0); (t1,((t2,t3),(((t27,t26),(((t25,t24),(t23,(((t22,t21),(t20,t19)),(t18,t17)))),((t16,(t14,t15)),((t11,((t9,t10),(t8,(t6,t7)))),(t13,t12))))),(t5,t4))),t0); (t1,((t5,t4),((t27,t26),((t2,t3),((t23,(((t22,t21),(t20,t19)),(t18,t17))),((t16,(t14,t15)),((t11,((t9,t10),(t8,(t6,t7)))),((t25,t24),(t13,t12)))))))),t0); (t1,(((t23,(((t22,t21),(t20,t19)),(t18,t17))),(t16,((t14,t15),((t11,((t9,t10),(t8,(t6,t7)))),((t25,t24),(t13,t12)))))),((t27,t26),((t5,t4),(t2,t3)))),t0); (t1,((((t23,(((t22,t21),(t20,t19)),(t18,t17))),(((t13,t12),((t11,((t9,t10),(t8,(t6,t7)))),(t25,t24))),(t16,(t14,t15)))),((t27,t26),(t2,t3))),(t5,t4)),t0); (t1,(((t2,t3),((((t25,t24),(t23,(((t22,t21),(t20,t19)),(t18,t17)))),(((t13,t12),(t11,((t9,t10),(t8,(t6,t7))))),(t16,(t14,t15)))),(t27,t26))),(t5,t4)),t0); (t1,((((t23,((((t22,t21),(t20,t19)),(t18,t17)),(t25,t24))),((t11,((t9,t10),(t8,(t6,t7)))),(t16,((t14,t15),(t13,t12))))),(t27,t26)),((t5,t4),(t2,t3))),t0); (t1,(((t5,t4),((t23,(((t22,t21),(t20,t19)),(t18,t17))),(((t25,t24),(t13,t12)),((t11,((t9,t10),(t8,(t6,t7)))),(t16,(t14,t15)))))),((t27,t26),(t2,t3))),t0); (t1,((t5,t4),(((t27,t26),(((((t13,t12),(t24,t25)),(t16,(t11,(((t6,t7),t8),(t9,t10))))),(t15,t14)),((((t20,t19),(t21,t22)),(t17,t18)),t23))),(t3,t2))),t0); (t1,(((t27,t26),(t3,t2)),((t5,t4),(((((t13,t12),(t24,t25)),((t11,(((t6,t7),t8),(t9,t10))),(t15,t14))),((((t20,t19),(t21,t22)),(t17,t18)),t23)),t16))),t0); (t1,((t3,t2),((((((t24,t25),(t11,(((t6,t7),t8),(t9,t10)))),((t15,t14),(t13,t12))),t16),((((t20,t19),(t21,t22)),(t17,t18)),t23)),((t5,t4),(t26,t27)))),t0); (t1,((t5,t4),(((t26,t27),(t3,t2)),(t16,(((((t20,t19),(t21,t22)),(t17,t18)),t23),(((t24,t25),(t11,(((t6,t7),t8),(t9,t10)))),((t15,t14),(t13,t12))))))),t0); (t1,((((((t20,t19),(t21,t22)),(t17,t18)),t23),((((t15,t14),t16),((t11,(((t6,t7),t8),(t9,t10))),(t13,t12))),(t24,t25))),((t26,t27),((t5,t4),(t3,t2)))),t0); (t1,(((((((t20,t19),(t21,t22)),(t17,t18)),t23),(((t16,(t13,t12)),((t15,t14),(t11,(((t6,t7),t8),(t9,t10))))),(t24,t25))),((t3,t2),(t26,t27))),(t5,t4)),t0); (t1,(((t3,t2),(t26,t27)),((t5,t4),(((t11,(((t6,t7),t8),(t9,t10))),((t16,(t13,t12)),(t15,t14))),((t24,t25),((((t20,t19),(t21,t22)),(t17,t18)),t23))))),t0); (t1,(((t3,t2),(((t11,(((t6,t7),t8),(t9,t10))),(((t24,t25),(t13,t12)),((t15,t14),t16))),((((t20,t19),(t21,t22)),(t17,t18)),t23))),((t26,t27),(t5,t4))),t0); (t1,(((t26,t27),(t3,t2)),(((t16,(((t13,t12),(t11,(((t6,t7),t8),(t9,t10)))),(t15,t14))),((t24,t25),((((t20,t19),(t21,t22)),(t17,t18)),t23))),(t5,t4))),t0); (t1,(((t5,t4),(t3,t2)),((t26,((((t13,t12),t16),((t11,(((t6,t7),t8),(t9,t10))),(t15,t14))),((((t20,t19),(t21,t22)),(t17,t18)),(t23,(t24,t25))))),t27)),t0); (t1,((t27,(t3,t2)),((t4,t5),(t26,((t23,(((t22,t21),(t19,t20)),(t17,t18))),(((t14,t15),t16),((t12,t13),((t25,t24),(((t8,(t7,t6)),(t10,t9)),t11)))))))),t0); (t1,(((t26,t27),((t3,t2),(t4,t5))),((t23,(((t22,t21),(t19,t20)),(t17,t18))),(((t14,t15),t16),((t12,t13),((t25,t24),(((t8,(t7,t6)),(t10,t9)),t11)))))),t0); (t1,((t3,t2),((t4,t5),(((((t25,t24),t23),(((t22,t21),(t19,t20)),(t17,t18))),((((t14,t15),t16),(((t8,(t7,t6)),(t10,t9)),t11)),(t12,t13))),(t26,t27)))),t0); (t1,((t3,t2),((t4,t5),((((t25,t24),(t23,(((t22,t21),(t19,t20)),(t17,t18)))),(((t14,t15),t16),((((t8,(t7,t6)),(t10,t9)),t11),(t12,t13)))),(t26,t27)))),t0); (t1,((t4,t5),((((t25,t24),(t23,(((t22,t21),(t19,t20)),(t17,t18)))),(((t14,t15),t16),((((t8,(t7,t6)),(t10,t9)),t11),(t12,t13)))),((t3,t2),(t26,t27)))),t0); (t1,((t3,t2),((t4,t5),((t26,t27),((t23,((t22,(t21,(t19,t20))),(t17,t18))),((((((t8,(t7,t6)),(t10,t9)),t11),((t25,t24),(t12,t13))),(t14,t15)),t16))))),t0); (t1,(((t3,t2),(((t25,t24),(t23,(((t19,t20),(t22,t21)),(t17,t18)))),(((t14,t15),t16),((((t8,(t7,t6)),(t10,t9)),t11),(t12,t13))))),((t4,t5),(t26,t27))),t0); (t1,((t4,t5),((((t14,t15),(((((t8,(t7,t6)),(t10,t9)),t11),(t12,t13)),((((t19,t20),(t22,t21)),(t17,t18)),((t25,t24),t23)))),t16),((t26,t27),(t3,t2)))),t0); (t1,(((t26,t27),((t23,(((t19,t20),(t22,t21)),(t17,t18))),((t16,(t12,t13)),(((t25,t24),(((t8,(t7,t6)),(t10,t9)),t11)),(t14,t15))))),((t3,t2),(t4,t5))),t0); (t1,((t3,t2),((t4,t5),((t26,t27),((((((t8,(t7,t6)),(t10,t9)),t11),(t14,t15)),(((t12,t13),(t25,t24)),(t23,((t21,((t19,t20),t22)),(t17,t18))))),t16)))),t0); (((t2,t3),(((t23,((t17,t18),((t19,t20),(t21,t22)))),(t16,((t14,t15),(((t24,t25),(t13,t12)),(t11,((t8,(t6,t7)),(t10,t9))))))),((t4,t5),(t26,t27)))),t1,t0); ((((t4,t5),((t26,t27),(((t24,t25),((t17,t18),(((t19,t20),(t21,t22)),t23))),(t16,(((t13,t12),(t14,t15)),(t11,((t8,(t6,t7)),(t10,t9)))))))),(t2,t3)),t1,t0); ((((t4,t5),((t26,t27),(((((t17,t18),((t19,t20),t21)),t22),t23),(((t24,t25),(t13,t12)),((t16,(t14,t15)),(t11,((t8,(t6,t7)),(t10,t9)))))))),(t2,t3)),t1,t0); (((t4,t5),(((t26,t27),(((t24,t25),(((t17,t18),((t19,t20),(t22,t21))),t23)),((t16,(t14,t15)),((t11,((t8,(t6,t7)),(t10,t9))),(t13,t12))))),(t2,t3))),t1,t0); (((t2,t3),(((t4,t5),(t26,t27)),((((t24,t25),(((t19,t20),((t22,t21),(t17,t18))),t23)),((t13,t12),((t14,t15),(t11,((t8,(t6,t7)),(t10,t9)))))),t16))),t1,t0); (((t2,t3),(((t4,t5),(t26,t27)),(((t24,t25),(((t17,t18),((t19,t20),(t22,t21))),t23)),(t16,(((t13,t12),(t14,t15)),(t11,((t8,(t6,t7)),(t10,t9)))))))),t1,t0); (((((t24,t25),(((t17,t18),((t19,t20),(t22,t21))),t23)),(((t16,(t13,t12)),(t14,t15)),(t11,((t8,(t6,t7)),(t10,t9))))),((t2,t3),((t4,t5),(t26,t27)))),t1,t0); (((t2,t3),((t4,t5),(((((t17,t18),((t19,t20),(t22,t21))),t23),((t16,(t14,t15)),((t11,((t8,(t6,t7)),(t10,t9))),((t13,t12),(t24,t25))))),(t26,t27)))),t1,t0); (((((((t17,t18),((t19,t20),(t22,t21))),t23),(((t16,(t24,t25)),((t11,((t8,(t6,t7)),(t10,t9))),(t13,t12))),(t14,t15))),(t26,t27)),((t2,t3),(t4,t5))),t1,t0); ((((((t24,t25),(t23,((t17,t18),((t19,t20),(t22,t21))))),((t13,t12),((t16,(t14,t15)),(t11,((t8,(t6,t7)),(t10,t9)))))),(t26,t27)),((t2,t3),(t4,t5))),t1,t0); ((((t26,t27),((t23,((t18,t17),((t22,t21),(t20,t19)))),(((t14,t15),t16),((((t9,t10),(t8,(t6,t7))),t11),((t12,t13),(t24,t25)))))),((t5,t4),(t3,t2))),t1,t0); ((((t3,t2),((t23,((t18,t17),((t22,t21),(t20,t19)))),((t14,t15),(t16,((((t9,t10),(t8,(t6,t7))),t11),((t12,t13),(t24,t25))))))),((t5,t4),(t26,t27))),t1,t0); (((t5,t4),(((t26,t27),(((t24,t25),(t23,((t22,(t18,t17)),(t21,(t20,t19))))),(((((t9,t10),(t8,(t6,t7))),t11),(t12,t13)),((t14,t15),t16)))),(t3,t2))),t1,t0); ((((t26,t27),(((t24,t25),(t23,((t18,t17),((t22,t21),(t20,t19))))),(((((t9,t10),(t8,(t6,t7))),t11),(t12,t13)),((t14,t15),t16)))),((t3,t2),(t5,t4))),t1,t0); ((((t26,t27),(t3,t2)),((t5,t4),((((t14,t15),t16),((((t9,t10),(t8,(t6,t7))),t11),((t24,t25),(t12,t13)))),(t23,((t18,t17),((t22,t21),(t20,t19))))))),t1,t0); (((t5,t4),(((((((t9,t10),(t8,(t6,t7))),t11),(t24,t25)),((t14,t15),((t12,t13),t16))),(t23,((t18,t17),((t22,t21),(t20,t19))))),((t26,t27),(t3,t2)))),t1,t0); (((t5,t4),(((((((t9,t10),(t8,(t6,t7))),t11),((t24,t25),(t12,t13))),(t16,(t14,t15))),(t23,((t18,t17),((t22,t21),(t20,t19))))),(t26,(t27,(t3,t2))))),t1,t0); (((((t16,((t14,t15),((((t9,t10),(t8,(t6,t7))),t11),((t24,t25),(t12,t13))))),(t23,((t18,t17),((t22,t21),(t20,t19))))),(t26,t27)),((t5,t4),(t3,t2))),t1,t0); (((t3,t2),((((t16,((t14,t15),((((t9,t10),(t8,(t6,t7))),t11),((t24,t25),(t12,t13))))),(t23,((t18,t17),((t22,t21),(t20,t19))))),(t26,t27)),(t5,t4))),t1,t0); (((t5,t4),(((((t12,t13),((((t9,t10),(t8,(t6,t7))),t11),(t24,t25))),(t16,(t14,t15))),(t23,((t18,t17),((t22,t21),(t20,t19))))),((t3,t2),(t26,t27)))),t1,t0); (t1,(((((t16,(t14,t15)),((t11,((t9,t10),((t6,t7),t8))),(t12,t13))),((t25,t24),(t23,((t17,t18),((t19,t20),(t21,t22)))))),(t26,t27)),((t3,t2),(t4,t5))),t0); (t1,(((((t16,(t14,t15)),((t11,((t9,t10),((t6,t7),t8))),(t12,t13))),((t25,t24),(((t19,t20),(t21,t22)),(t23,(t17,t18))))),((t4,t5),(t26,t27))),(t3,t2)),t0); (t1,((t4,t5),((((t11,((t9,t10),((t6,t7),t8))),((t12,t13),(t16,(t14,t15)))),((t25,t24),((((t19,t20),(t21,t22)),(t17,t18)),t23))),((t26,t27),(t3,t2)))),t0); (t1,(((((t16,(t14,t15)),(((t25,t24),(t11,((t9,t10),((t6,t7),t8)))),(t12,t13))),((((t19,t20),(t21,t22)),(t17,t18)),t23)),(t26,t27)),((t4,t5),(t3,t2))),t0); (t1,((t4,t5),((((t11,((t9,t10),((t6,t7),t8))),(((t25,t24),((((t19,t20),(t21,t22)),(t17,t18)),t23)),((t14,t15),(t12,t13)))),t16),((t26,t27),(t3,t2)))),t0); (t1,(((t16,(t14,t15)),(((t11,((t9,t10),((t6,t7),t8))),((t25,t24),(t12,t13))),((((t19,t20),(t21,t22)),(t17,t18)),t23))),(((t4,t5),(t26,t27)),(t3,t2))),t0); (t1,((t4,t5),((t16,((t14,t15),(((t12,t13),(t11,((t9,t10),((t6,t7),t8)))),((t25,t24),((((t19,t20),(t21,t22)),(t17,t18)),t23))))),((t26,t27),(t3,t2)))),t0); (t1,((t4,t5),((t3,t2),((((t25,t24),((((t19,t20),(t21,t22)),(t17,t18)),t23)),((t16,(t14,t15)),((t12,t13),(t11,((t9,t10),((t6,t7),t8)))))),(t26,t27)))),t0); (t1,((t4,t5),((((((t19,t20),(t21,t22)),(t17,t18)),t23),((t16,(t14,t15)),(((t25,t24),(t12,t13)),(t11,((t9,t10),((t6,t7),t8)))))),((t26,t27),(t3,t2)))),t0); (t1,((t4,t5),((((t14,t15),(((t12,t13),(t11,((t9,t10),((t6,t7),t8)))),((t25,t24),((((t19,t20),(t21,t22)),(t17,t18)),t23)))),t16),((t26,t27),(t3,t2)))),t0); (t1,((t4,t5),((((((((t7,t6),t8),(t9,t10)),t11),((t24,t25),(t12,t13))),(t16,(t15,t14))),(t23,(t22,(((t20,t19),t21),(t18,t17))))),((t2,t3),(t27,t26)))),t0); (t1,(((t4,t5),((t27,t26),(((t12,t13),(t16,(((((t7,t6),t8),(t9,t10)),t11),(t15,t14)))),((t24,t25),(t23,(((t20,t19),(t22,t21)),(t18,t17))))))),(t2,t3)),t0); (t1,((((t4,t5),(t26,((t23,(((t20,t19),(t22,t21)),(t18,t17))),((((t12,t13),((((t7,t6),t8),(t9,t10)),t11)),((t15,t14),t16)),(t24,t25))))),(t2,t3)),t27),t0); (t1,((((t23,(((t20,t19),(t22,t21)),(t18,t17))),(((t16,(t12,t13)),((t24,t25),((((t7,t6),t8),(t9,t10)),t11))),(t15,t14))),((t4,t5),(t27,t26))),(t2,t3)),t0); (t1,((t4,t5),(((t27,t26),(((t23,(((t20,t19),(t22,t21)),(t18,t17))),((((t12,t13),(t24,t25)),((((t7,t6),t8),(t9,t10)),t11)),(t15,t14))),t16)),(t2,t3))),t0); (t1,(((t23,(((t20,t19),(t22,t21)),(t18,t17))),((t16,(((t12,t13),(t24,t25)),((((t7,t6),t8),(t9,t10)),t11))),(t15,t14))),((t2,t3),((t4,t5),(t27,t26)))),t0); (t1,((t2,t3),((t27,(t26,(t4,t5))),((t23,((((t20,t19),(t22,t21)),(t18,t17)),(t24,t25))),((((((t7,t6),t8),(t9,t10)),t11),(t12,t13)),((t15,t14),t16))))),t0); (t1,((t2,t3),(((t27,t26),((t23,(((t20,t19),(t22,t21)),(t18,t17))),(((t24,t25),((((t7,t6),t8),(t9,t10)),t11)),((t16,(t12,t13)),(t15,t14))))),(t4,t5))),t0); (t1,(((t27,t26),((t23,(((t20,t19),(t22,t21)),(t18,t17))),((t16,(t24,t25)),((((((t7,t6),t8),(t9,t10)),t11),(t15,t14)),(t12,t13))))),((t4,t5),(t2,t3))),t0); (t1,((t4,t5),((t2,t3),((t27,t26),(((((((t7,t6),t8),(t9,t10)),t11),(t16,(t15,t14))),((t24,t25),(t12,t13))),(t23,(((t20,t19),(t22,t21)),(t18,t17))))))),t0); (t1,(((t23,((t18,t17),((t22,t21),(t20,t19)))),((((t24,t25),(t11,(((t7,t6),t8),(t9,t10)))),(t15,t14)),((t13,t12),t16))),(((t26,t27),(t3,t2)),(t5,t4))),t0); (t1,((t5,t4),((((t11,(((t7,t6),t8),(t9,t10))),((t15,t14),((t13,t12),t16))),((t23,((t18,t17),((t22,t21),(t20,t19)))),(t24,t25))),((t26,t27),(t3,t2)))),t0); (t1,(((t5,t4),(t26,t27)),((t3,t2),((((t13,t12),(t11,(((t7,t6),t8),(t9,t10)))),(t16,(t15,t14))),((t23,((t18,t17),((t22,t21),(t20,t19)))),(t24,t25))))),t0); (t1,(((t3,t2),(t26,t27)),((t5,t4),(((t11,(((t7,t6),t8),(t9,t10))),((t16,(t15,t14)),((t24,t25),(t13,t12)))),(t23,((t18,t17),((t22,t21),(t20,t19))))))),t0); (t1,(((t3,t2),(t5,t4)),((((t16,(t15,t14)),((t11,(((t7,t6),t8),(t9,t10))),(t13,t12))),((t24,t25),(t23,((t18,t17),((t22,t21),(t20,t19)))))),(t26,t27))),t0); (t1,(((t3,t2),(t5,t4)),((((t16,(t15,t14)),((t11,(((t7,t6),t8),(t9,t10))),(t13,t12))),((t24,t25),(t23,((t18,t17),((t22,t21),(t20,t19)))))),(t26,t27))),t0); (t1,((((t16,(t15,t14)),((t11,(((t7,t6),t8),(t9,t10))),(t13,t12))),((t24,t25),(((t22,t21),(t20,t19)),(t23,(t18,t17))))),((t5,t4),((t26,t27),(t3,t2)))),t0); (t1,((t5,t4),((t3,t2),((t27,t26),(((t16,(t15,t14)),((t11,(((t7,t6),t8),(t9,t10))),((t24,t25),(t13,t12)))),((((t22,t21),(t20,t19)),(t18,t17)),t23))))),t0); (t1,(((t27,t26),(t3,t2)),(((t16,((t15,t14),((t11,(((t7,t6),t8),(t9,t10))),((t24,t25),(t13,t12))))),((((t22,t21),(t20,t19)),(t18,t17)),t23)),(t5,t4))),t0); (t1,(((t3,t2),((((t11,(((t7,t6),t8),(t9,t10))),((t24,t25),(t13,t12))),(t16,(t15,t14))),(((t21,(t22,(t20,t19))),(t18,t17)),t23))),((t5,t4),(t27,t26))),t0); (t1,(((t16,((((t24,t25),(t13,t12)),(t11,((t9,t10),(t8,(t7,t6))))),(t15,t14))),(((t17,t18),(t22,(t21,(t19,t20)))),t23)),((t5,t4),((t27,t26),(t2,t3)))),t0); (t1,((t2,t3),((t5,t4),(((((t13,t12),(t11,((t9,t10),(t8,(t7,t6))))),((t15,t14),t16)),((t24,t25),(((t17,t18),((t19,t20),(t22,t21))),t23))),(t27,t26)))),t0); (t1,((t5,t4),((((((t17,t18),((t19,t20),(t22,t21))),t23),(((t16,(t13,t12)),((t11,((t9,t10),(t8,(t7,t6)))),(t15,t14))),(t24,t25))),(t27,t26)),(t2,t3))),t0); (t1,((t5,t4),((((t11,((t9,t10),(t8,(t7,t6)))),((t15,t14),(t16,(t13,t12)))),((t24,t25),(((t17,t18),((t19,t20),(t22,t21))),t23))),((t27,t26),(t2,t3)))),t0); (t1,((t2,t3),((t5,t4),(((((t15,t14),t16),((t11,((t9,t10),(t8,(t7,t6)))),((t24,t25),(t13,t12)))),(((t17,t18),((t19,t20),(t22,t21))),t23)),(t27,t26)))),t0); (t1,(((((t15,t14),t16),((t13,t12),((t11,((t9,t10),(t8,(t7,t6)))),(t24,t25)))),(((t17,t18),((t19,t20),(t22,t21))),t23)),((t2,t3),((t27,t26),(t5,t4)))),t0); (t1,((((((t15,t14),t16),((t11,((t9,t10),(t8,(t7,t6)))),(t13,t12))),((t24,t25),(((t17,t18),((t19,t20),(t22,t21))),t23))),((t2,t3),(t27,t26))),(t5,t4)),t0); (t1,(((t2,t3),(t27,t26)),((t5,t4),((((t17,t18),((t19,t20),(t22,t21))),t23),(t16,(((t11,((t9,t10),(t8,(t7,t6)))),(t15,t14)),((t13,t12),(t24,t25))))))),t0); (t1,((t16,(((t13,t12),((t11,((t9,t10),(t8,(t7,t6)))),(t15,t14))),((t24,t25),(((t17,t18),((t19,t20),(t22,t21))),t23)))),(((t2,t3),(t27,t26)),(t5,t4))),t0); (t1,((t5,t4),((((((t17,t18),((t19,t20),(t22,t21))),t23),((t16,((t11,((t9,t10),(t8,(t7,t6)))),(t24,t25))),((t13,t12),(t15,t14)))),(t2,t3)),(t27,t26))),t0); (t1,(((t16,((t15,t14),((t12,t13),((((t10,t9),(t8,(t6,t7))),t11),(t25,t24))))),(((t18,t17),((t20,t19),(t22,t21))),t23)),(((t5,t4),(t27,t26)),(t2,t3))),t0); (t1,((((((t16,(t12,t13)),(((t10,t9),(t8,(t6,t7))),t11)),(t15,t14)),((t25,t24),(((t18,t17),((t20,t19),(t22,t21))),t23))),(t5,t4)),((t2,t3),(t26,t27))),t0); (t1,(((((t12,t13),(((t10,t9),(t8,(t6,t7))),t11)),(t16,(t15,t14))),((t25,t24),(((t18,t17),((t20,t19),(t22,t21))),t23))),((t5,t4),((t2,t3),(t26,t27)))),t0); (t1,((((((t12,t13),(((t10,t9),(t8,(t6,t7))),t11)),(t16,(t15,t14))),((t25,t24),(((t18,t17),((t20,t19),(t22,t21))),t23))),(t2,t3)),((t26,t27),(t5,t4))),t0); (t1,(((t26,t27),(((((t10,t9),(t8,(t6,t7))),t11),(t16,((t15,t14),(t12,t13)))),((t25,t24),(((t18,t17),((t20,t19),(t22,t21))),t23)))),((t2,t3),(t5,t4))),t0); (t1,((t2,t3),(((((t18,t17),((t20,t19),(t22,t21))),t23),(t16,(((t12,t13),(t15,t14)),((((t10,t9),(t8,(t6,t7))),t11),(t25,t24))))),((t5,t4),(t26,t27)))),t0); (t1,((t5,t4),((t2,t3),((t26,t27),((((t18,t17),((t20,t19),(t22,t21))),t23),(t16,((t15,t14),((((t10,t9),(t8,(t6,t7))),t11),((t25,t24),(t12,t13))))))))),t0); (t1,((t2,t3),((t16,(((t15,t14),((t12,t13),((((t10,t9),(t8,(t6,t7))),t11),(t25,t24)))),(((t18,t17),((t20,t19),(t22,t21))),t23))),((t5,t4),(t26,t27)))),t0); (t1,((t2,t3),((t5,t4),((t26,t27),(((((t10,t9),(t8,(t6,t7))),t11),((t16,(t12,t13)),(t15,t14))),((t25,t24),(((t18,t17),((t20,t19),(t22,t21))),t23)))))),t0); (t1,((t5,t4),(((t2,t3),(t26,t27)),(((t16,(t12,t13)),((t15,t14),(((t10,t9),(t8,(t6,t7))),t11))),((t25,t24),(((t18,t17),((t20,t19),(t22,t21))),t23))))),t0); ((((t27,t26),(t4,t5)),((t2,t3),((t23,((t18,t17),((t22,t21),(t20,t19)))),(t16,((((t24,t25),(t12,t13)),(t11,((t10,t9),((t7,t6),t8)))),(t14,t15)))))),t1,t0); (((t2,t3),((((t23,((t18,t17),((t22,t21),(t20,t19)))),((t14,t15),(t16,(((t24,t25),(t12,t13)),(t11,((t10,t9),((t7,t6),t8))))))),(t27,t26)),(t4,t5))),t1,t0); (((t2,t3),(((((t24,t25),(t23,((t18,t17),((t22,t21),(t20,t19))))),(((t11,((t10,t9),((t7,t6),t8))),(t12,t13)),((t14,t15),t16))),(t27,t26)),(t4,t5))),t1,t0); (((t2,t3),((((t24,t25),(t23,((t18,t17),((t22,t21),(t20,t19))))),(t16,(((t11,((t10,t9),((t7,t6),t8))),(t12,t13)),(t14,t15)))),((t27,t26),(t4,t5)))),t1,t0); (((((t24,t25),(t23,((t18,t17),((t22,t21),(t20,t19))))),((t11,((t10,t9),((t7,t6),t8))),((t14,t15),((t12,t13),t16)))),(((t27,t26),(t4,t5)),(t2,t3))),t1,t0); (((t4,t5),(((t23,(((t18,t17),((t22,t21),(t20,t19))),(t24,t25))),((t12,t13),(t16,((t11,((t10,t9),((t7,t6),t8))),(t14,t15))))),((t2,t3),(t27,t26)))),t1,t0); (((t4,t5),(((t23,((t21,(t18,t17)),(t22,(t20,t19)))),(((t24,t25),(t12,t13)),((t11,((t10,t9),((t7,t6),t8))),((t14,t15),t16)))),((t2,t3),(t27,t26)))),t1,t0); (((t4,t5),((((t24,t25),(t23,((t18,t17),((t21,t22),(t20,t19))))),((((t11,((t10,t9),((t7,t6),t8))),(t12,t13)),(t14,t15)),t16)),((t2,t3),(t27,t26)))),t1,t0); (((t4,t5),((((((t18,t17),((t21,t22),(t20,t19))),((t24,t25),t23)),(((t11,((t10,t9),((t7,t6),t8))),(t12,t13)),((t14,t15),t16))),(t27,t26)),(t2,t3))),t1,t0); (((t4,t5),(((t2,t3),((t23,((t18,t17),((t21,t22),(t20,t19)))),(((t24,t25),(t12,t13)),(((t14,t15),t16),(t11,((t10,t9),((t7,t6),t8))))))),(t27,t26))),t1,t0); (((t3,t2),(((((((t25,t24),(t11,((t8,(t6,t7)),(t10,t9)))),(t13,t12)),((t15,t14),t16)),((((t22,t21),(t20,t19)),(t17,t18)),t23)),(t27,t26)),(t5,t4))),t1,t0); ((((((t25,t24),((t11,((t8,(t6,t7)),(t10,t9))),((t15,t14),((t13,t12),t16)))),((((t22,t21),(t20,t19)),(t17,t18)),t23)),((t3,t2),(t27,t26))),(t5,t4)),t1,t0); (((t3,t2),(((t27,t26),((t16,(((t11,((t8,(t6,t7)),(t10,t9))),((t13,t12),(t25,t24))),(t15,t14))),((((t22,t21),(t20,t19)),(t17,t18)),t23))),(t5,t4))),t1,t0); ((((t27,t26),((((t11,((t8,(t6,t7)),(t10,t9))),(t13,t12)),((t15,t14),t16)),((t25,t24),((((t22,t21),(t20,t19)),(t17,t18)),t23)))),((t5,t4),(t3,t2))),t1,t0); (((t3,t2),(((t27,t26),((((t11,((t8,(t6,t7)),(t10,t9))),(t13,t12)),((t15,t14),t16)),((t25,t24),((((t22,t21),(t20,t19)),(t17,t18)),t23)))),(t5,t4))),t1,t0); (((t5,t4),(((t27,t26),(t3,t2)),((((t15,t14),(t11,((t8,(t6,t7)),(t10,t9)))),((t13,t12),t16)),((t25,t24),((((t22,t21),(t20,t19)),(t17,t18)),t23))))),t1,t0); (((((((t15,t14),((t25,t24),(t11,((t8,(t6,t7)),(t10,t9))))),(t16,(t13,t12))),((((t22,t21),(t20,t19)),(t17,t18)),t23)),(t27,t26)),((t5,t4),(t3,t2))),t1,t0); (((t5,t4),(((t3,t2),(t16,((t15,t14),(((t11,((t8,(t6,t7)),(t10,t9))),(t13,t12)),((t25,t24),((((t22,t21),(t20,t19)),(t17,t18)),t23)))))),(t27,t26))),t1,t0); (((t3,t2),((((t25,t24),((((t22,t21),(t20,t19)),(t17,t18)),t23)),(((t11,((t8,(t6,t7)),(t10,t9))),((t15,t14),(t13,t12))),t16)),((t27,t26),(t5,t4)))),t1,t0); ((((t27,t26),(t5,t4)),((t3,t2),(((((t22,t21),(t20,t19)),(t17,t18)),t23),((((t11,((t8,(t6,t7)),(t10,t9))),(t15,t14)),t16),((t25,t24),(t13,t12)))))),t1,t0); (t1,(((t4,t5),((((t14,t15),t16),((t11,((t10,t9),((t7,t6),t8))),(t13,t12))),((t24,t25),(t23,((t17,t18),((t22,t21),(t19,t20))))))),((t26,t27),(t3,t2))),t0); (t1,((t4,t5),(((((t24,t25),(t13,t12)),(((t14,t15),t16),(t11,((t10,t9),((t7,t6),t8))))),(t23,((t17,t18),((t22,t21),(t19,t20))))),((t26,t27),(t3,t2)))),t0); (t1,((t3,t2),((((((t14,t15),t16),((t11,((t10,t9),((t7,t6),t8))),((t24,t25),(t13,t12)))),(t23,((t17,t18),((t22,t21),(t19,t20))))),(t26,t27)),(t4,t5))),t0); (t1,((((((t11,((t10,t9),((t7,t6),t8))),(t24,t25)),((t13,t12),((t14,t15),t16))),(t23,((t17,t18),((t22,t21),(t19,t20))))),((t3,t2),(t26,t27))),(t4,t5)),t0); (t1,((((((t14,t15),t16),(((t11,((t10,t9),((t7,t6),t8))),(t24,t25)),(t13,t12))),(t23,((t17,t18),((t22,t21),(t19,t20))))),(t3,t2)),((t4,t5),(t26,t27))),t0); (t1,((((((t11,((t10,t9),((t7,t6),t8))),((t13,t12),(t14,t15))),t16),(((t24,t25),t23),((t17,t18),((t22,t21),(t19,t20))))),((t27,t26),(t3,t2))),(t4,t5)),t0); (t1,((t3,t2),((((((t11,((t10,t9),((t7,t6),t8))),(t13,t12)),(t16,(t14,t15))),((((t17,t18),((t22,t21),(t19,t20))),t23),(t24,t25))),(t27,t26)),(t4,t5))),t0); (t1,(((t3,t2),((((t17,t18),((t22,t21),(t19,t20))),t23),((t14,t15),(t16,(((t24,t25),(t11,((t10,t9),((t7,t6),t8)))),(t13,t12)))))),((t27,t26),(t4,t5))),t0); (t1,((t4,t5),((((((t17,t18),((t22,t21),(t19,t20))),t23),(((t11,((t10,t9),((t7,t6),t8))),((t13,t12),(t24,t25))),((t14,t15),t16))),(t27,t26)),(t3,t2))),t0); (t1,((t3,t2),((t4,t5),(((((t17,t18),((t22,t21),(t19,t20))),t23),(((t13,t12),((t24,t25),(t11,((t10,t9),((t7,t6),t8))))),((t14,t15),t16))),(t27,t26)))),t0); (((t4,t5),(((t23,((t17,t18),((t22,t21),(t20,t19)))),(((t15,t14),(((((t6,t7),t8),(t10,t9)),t11),(t25,t24))),((t13,t12),t16))),((t2,t3),(t26,t27)))),t1,t0); (((t2,t3),(((t26,t27),(t4,t5)),((t23,((t17,t18),((t22,t21),(t20,t19)))),(((t15,t14),(((((t6,t7),t8),(t10,t9)),t11),((t13,t12),(t25,t24)))),t16)))),t1,t0); (((t4,t5),((((t23,((t17,t18),((t22,t21),(t20,t19)))),((t15,t14),(((t25,t24),(((((t6,t7),t8),(t10,t9)),t11),(t13,t12))),t16))),(t2,t3)),(t26,t27))),t1,t0); (((t2,t3),((t4,t5),((t26,t27),((t23,((t17,t18),((t22,t21),(t20,t19)))),((t25,t24),((((((t6,t7),t8),(t10,t9)),t11),(t13,t12)),(t16,(t15,t14)))))))),t1,t0); (((t4,t5),(((t2,t3),(t26,t27)),((((t15,t14),(((((t6,t7),t8),(t10,t9)),t11),((t25,t24),(t13,t12)))),(t23,((t17,t18),((t22,t21),(t20,t19))))),t16))),t1,t0); ((((t2,t3),(t26,t27)),(((((t13,t12),(((((t6,t7),t8),(t10,t9)),t11),(t25,t24))),(t16,(t15,t14))),(t23,((t17,t18),((t22,t21),(t20,t19))))),(t4,t5))),t1,t0); ((((t2,t3),((((((((t6,t7),t8),(t10,t9)),t11),((t25,t24),(t13,t12))),(t15,t14)),(t23,((t17,t18),((t22,t21),(t20,t19))))),t16)),((t4,t5),(t26,t27))),t1,t0); (((t2,t3),(((((t25,t24),(((t15,t14),t16),((t13,t12),((((t6,t7),t8),(t10,t9)),t11)))),(t23,((t17,t18),((t22,t21),(t20,t19))))),(t26,t27)),(t4,t5))),t1,t0); (((t2,t3),((((t16,(((t13,t12),((((t6,t7),t8),(t10,t9)),t11)),(t15,t14))),((t23,((t17,t18),((t22,t21),(t20,t19)))),(t25,t24))),(t26,t27)),(t4,t5))),t1,t0); (((t2,t3),(((((t13,t12),(((((t6,t7),t8),(t10,t9)),t11),((t15,t14),t16))),((t23,((t17,t18),((t22,t21),(t20,t19)))),(t25,t24))),(t26,t27)),(t4,t5))),t1,t0); (t1,((t2,t3),((t4,t5),((((((t13,t12),(t24,t25)),(((t8,(t7,t6)),(t10,t9)),t11)),((t15,t14),t16)),((((t22,t21),(t19,t20)),(t17,t18)),t23)),(t26,t27)))),t0); (t1,((t2,t3),((t4,t5),((((t15,t14),(t16,(((t13,t12),(t24,t25)),(((t8,(t7,t6)),(t10,t9)),t11)))),((((t22,t21),(t19,t20)),(t17,t18)),t23)),(t26,t27)))),t0); (t1,((t2,t3),((t4,t5),((((t16,(t15,t14)),((t13,t12),((t24,t25),(((t8,(t7,t6)),(t10,t9)),t11)))),((((t22,t21),(t19,t20)),(t17,t18)),t23)),(t26,t27)))),t0); (t1,(((t2,t3),(t16,((t15,t14),(((((t8,(t7,t6)),(t10,t9)),t11),(t13,t12)),((t24,t25),((((t22,t21),(t19,t20)),(t17,t18)),t23)))))),((t26,t27),(t4,t5))),t0); (t1,((((t24,t25),(((t8,(t7,t6)),(t10,t9)),t11)),(((t15,t14),(t13,t12)),(t16,((((t22,t21),(t19,t20)),(t17,t18)),t23)))),(((t2,t3),(t26,t27)),(t4,t5))),t0); (t1,((t2,t3),(((t26,t27),(t4,t5)),(((((t22,t21),(t19,t20)),(t17,t18)),t23),(((t16,(t15,t14)),(((t8,(t7,t6)),(t10,t9)),t11)),((t24,t25),(t13,t12)))))),t0); (t1,(((t26,t27),(t4,t5)),((((((t22,t21),(t19,t20)),(t17,t18)),t23),(((t16,(t15,t14)),(((t8,(t7,t6)),(t10,t9)),t11)),((t24,t25),(t13,t12)))),(t2,t3))),t0); (t1,(((t26,t27),(((t24,t25),((((t22,t21),(t19,t20)),(t17,t18)),t23)),((t16,((t15,t14),(((t8,(t7,t6)),(t10,t9)),t11))),(t13,t12)))),((t2,t3),(t4,t5))),t0); (t1,((t4,t5),(((t26,t27),(((((t22,t21),(t19,t20)),(t17,t18)),t23),(((((t8,(t7,t6)),(t10,t9)),t11),((t16,(t15,t14)),(t13,t12))),(t24,t25)))),(t2,t3))),t0); (t1,((t2,t3),((t4,t5),((t26,t27),(((t16,(t15,t14)),((t13,t12),(((t8,(t7,t6)),(t10,t9)),t11))),((t24,t25),(((t19,t20),((t17,t18),(t22,t21))),t23)))))),t0); (t1,((((((t17,t18),((t21,t22),(t20,t19))),t23),(((t11,((t10,t9),((t7,t6),t8))),(((t14,t15),t16),(t13,t12))),(t24,t25))),(t26,t27)),((t3,t2),(t4,t5))),t0); (t1,((t4,t5),((((((t17,t18),((t21,t22),(t20,t19))),t23),((((t14,t15),t16),((t13,t12),(t11,((t10,t9),((t7,t6),t8))))),(t24,t25))),(t26,t27)),(t3,t2))),t0); (t1,((t4,t5),(((t26,t27),(t3,t2)),((((t11,((t10,t9),((t7,t6),t8))),(t14,t15)),(t16,(t13,t12))),((t24,t25),(((t17,t18),((t21,t22),(t20,t19))),t23))))),t0); (t1,((((((t11,((t10,t9),((t7,t6),t8))),(t14,t15)),(t13,t12)),((t24,t25),(((t20,t19),((t17,t18),(t21,t22))),t23))),t16),((t3,t2),((t4,t5),(t26,t27)))),t0); (t1,(((t4,t5),(t26,t27)),(((((t17,t18),((t21,t22),(t20,t19))),t23),((t16,(t14,t15)),(((t13,t12),(t24,t25)),(t11,((t10,t9),((t7,t6),t8)))))),(t3,t2))),t0); (t1,((t3,t2),(((t26,t27),((((t17,t18),((t21,t22),(t20,t19))),t23),(((t13,t12),(t24,t25)),((t14,t15),((t11,((t10,t9),((t7,t6),t8))),t16))))),(t4,t5))),t0); (t1,((((t24,t25),(((t17,t18),((t21,t22),(t20,t19))),t23)),((t11,((t10,t9),((t7,t6),t8))),(t16,((t13,t12),(t14,t15))))),((t4,t5),((t26,t27),(t3,t2)))),t0); (t1,((t3,t2),((t4,t5),((((((t17,t18),((t21,t22),(t20,t19))),t23),((((t11,((t10,t9),((t7,t6),t8))),(t16,(t13,t12))),(t14,t15)),(t24,t25))),t26),t27))),t0); (t1,((t4,t5),((((((t17,t18),((t21,t22),(t20,t19))),t23),((t16,(t14,t15)),(((t24,t25),(t11,((t10,t9),((t7,t6),t8)))),(t13,t12)))),(t26,t27)),(t3,t2))),t0); (t1,((((((t17,t18),((t21,t22),(t20,t19))),t23),((t14,t15),(((t11,((t10,t9),((t7,t6),t8))),((t13,t12),(t24,t25))),t16))),(t26,t27)),((t3,t2),(t4,t5))),t0); (t1,((t2,t3),(((t27,t26),((((t15,t14),t16),((((t9,t10),(t8,(t7,t6))),t11),((t25,t24),(t12,t13)))),(((t18,t17),((t19,t20),(t22,t21))),t23))),(t4,t5))),t0); (t1,((t2,t3),(((t27,t26),((t16,(((t12,t13),((((t9,t10),(t8,(t7,t6))),t11),(t25,t24))),(t15,t14))),(((t18,t17),((t19,t20),(t22,t21))),t23))),(t4,t5))),t0); (t1,((t2,t3),(((t27,t26),((((((t9,t10),(t8,(t7,t6))),t11),((t25,t24),(t12,t13))),((t15,t14),t16)),(((t18,t17),((t19,t20),(t22,t21))),t23))),(t4,t5))),t0); (t1,((t4,t5),((t2,t3),((t27,t26),((((((t9,t10),(t8,(t7,t6))),t11),(t12,t13)),((t15,t14),t16)),((t25,t24),(((t18,t17),((t19,t20),(t22,t21))),t23)))))),t0); (t1,((t2,t3),(((t4,t5),(t27,t26)),((((t18,t17),((t19,t20),(t22,t21))),t23),(t16,(((((t9,t10),(t8,(t7,t6))),t11),((t25,t24),(t12,t13))),(t15,t14)))))),t0); (t1,((t2,t3),((t4,t5),((t27,t26),((((t18,t17),((t19,t20),(t22,t21))),t23),(((t12,t13),((((t9,t10),(t8,(t7,t6))),t11),(t25,t24))),((t15,t14),t16)))))),t0); (t1,(((t2,t3),((((t18,t17),((t19,t20),(t22,t21))),t23),((t12,t13),((((((t9,t10),(t8,(t7,t6))),t11),(t25,t24)),(t15,t14)),t16)))),((t4,t5),(t27,t26))),t0); (t1,((t4,t5),((t27,t26),((t2,t3),(((t15,t14),(((((t9,t10),(t8,(t7,t6))),t11),((t12,t13),(t25,t24))),(((t18,t17),((t19,t20),(t22,t21))),t23))),t16)))),t0); (t1,((t2,t3),(((((t18,t17),((t19,t20),(t22,t21))),t23),((((t25,t24),(((t9,t10),(t8,(t7,t6))),t11)),((t15,t14),(t12,t13))),t16)),((t4,t5),(t27,t26)))),t0); (t1,((t4,t5),(((t2,t3),(t27,t26)),((((t18,t17),(t22,(t21,(t19,t20)))),t23),(((t25,t24),(((t9,t10),(t8,(t7,t6))),t11)),((t15,t14),(t16,(t12,t13))))))),t0); (((t3,t2),((t5,t4),(((t23,((t17,t18),(t22,(t21,(t19,t20))))),((t24,t25),(t16,(((((t6,t7),t8),(t10,t9)),t11),((t14,t15),(t13,t12)))))),(t26,t27)))),t1,t0); ((((t3,t2),(t26,t27)),((t5,t4),((t23,((t17,t18),((t19,t20),(t22,t21)))),((t24,t25),(((t13,t12),((((t6,t7),t8),(t10,t9)),t11)),((t14,t15),t16)))))),t1,t0); ((((t3,t2),(t5,t4)),(((t23,((t17,t18),((t19,t20),(t22,t21)))),((t24,t25),((t16,(t13,t12)),(((((t6,t7),t8),(t10,t9)),t11),(t14,t15))))),(t26,t27))),t1,t0); (((t3,t2),((t5,t4),(((((t14,t15),(((t24,t25),(t13,t12)),((((t6,t7),t8),(t10,t9)),t11))),(t23,((t17,t18),((t19,t20),(t22,t21))))),t16),(t26,t27)))),t1,t0); (((t3,t2),(((t16,((t14,t15),((t13,t12),((((t6,t7),t8),(t10,t9)),t11)))),((t24,t25),(t23,((t17,t18),((t19,t20),(t22,t21)))))),((t26,t27),(t5,t4)))),t1,t0); ((((t5,t4),((t23,((t17,t18),((t19,t20),(t22,t21)))),((t14,t15),(t16,(((((t6,t7),t8),(t10,t9)),t11),((t13,t12),(t24,t25))))))),((t3,t2),(t26,t27))),t1,t0); ((((t5,t4),((t26,t27),(((t24,t25),(t23,((t17,t18),((t19,t20),(t22,t21))))),(((((t6,t7),t8),(t10,t9)),t11),(t16,((t13,t12),(t14,t15))))))),(t3,t2)),t1,t0); (((t5,t4),(((t3,t2),(t26,t27)),((t23,((t19,t20),((t22,t21),(t17,t18)))),(((t24,t25),(t13,t12)),(((((t6,t7),t8),(t10,t9)),t11),((t14,t15),t16)))))),t1,t0); ((((t23,(((t22,t21),(t19,t20)),(t17,t18))),(((t14,t15),((t13,t12),t16)),((t24,t25),((((t6,t7),t8),(t10,t9)),t11)))),((t3,t2),((t5,t4),(t26,t27)))),t1,t0); ((((t3,t2),(t5,t4)),((t26,t27),((((t24,t25),t23),(((t22,t21),(t19,t20)),(t17,t18))),(((t13,t12),((((t6,t7),t8),(t10,t9)),t11)),((t14,t15),t16))))),t1,t0); (((t5,t4),((((t25,t24),(t23,((t17,t18),((t19,t20),(t22,t21))))),(((t11,((t8,(t7,t6)),(t10,t9))),((t14,t15),t16)),(t13,t12))),((t3,t2),(t26,t27)))),t1,t0); (((t3,t2),((t5,t4),((t26,t27),((t23,((t17,t18),((t19,t20),(t22,t21)))),(((t14,t15),((t13,t12),((t25,t24),(t11,((t8,(t7,t6)),(t10,t9)))))),t16))))),t1,t0); (((t5,t4),(((t3,t2),(t26,t27)),((t23,((t17,t18),((t19,t20),(t22,t21)))),(((t13,t12),(t25,t24)),(((t14,t15),(t11,((t8,(t7,t6)),(t10,t9)))),t16))))),t1,t0); (((t3,t2),(((t26,t27),((t23,((t17,t18),(t21,((t19,t20),t22)))),((t25,t24),(((t13,t12),(t11,((t8,(t7,t6)),(t10,t9)))),(t16,(t14,t15)))))),(t5,t4))),t1,t0); (((t5,t4),((t26,t27),((t3,t2),((((t14,t15),((t13,t12),((t25,t24),(t11,((t8,(t7,t6)),(t10,t9)))))),(t23,((t17,t18),((t19,t20),(t22,t21))))),t16)))),t1,t0); (((t3,t2),((((((t11,((t8,(t7,t6)),(t10,t9))),(t13,t12)),(t14,t15)),((t25,t24),(t23,((t17,t18),((t19,t20),(t22,t21)))))),t16),((t5,t4),(t26,t27)))),t1,t0); ((((t5,t4),((t26,t27),((t23,((t17,t18),((t19,t20),(t22,t21)))),((((t11,((t8,(t7,t6)),(t10,t9))),(t13,t12)),(t16,(t14,t15))),(t25,t24))))),(t3,t2)),t1,t0); (((t5,t4),(((t26,t27),((t23,((t17,t18),((t19,t20),(t22,t21)))),((((t11,((t8,(t7,t6)),(t10,t9))),(t13,t12)),(t16,(t14,t15))),(t25,t24)))),(t3,t2))),t1,t0); (((t3,t2),((t5,t4),((t26,t27),((t23,(((t17,t18),((t19,t20),t21)),t22)),((((t11,((t8,(t7,t6)),(t10,t9))),(t14,t15)),((t25,t24),(t13,t12))),t16))))),t1,t0); (((t3,t2),((t5,t4),((t26,t27),((t23,((t17,t18),((t19,t20),(t21,t22)))),((((t11,((t8,(t7,t6)),(t10,t9))),(t14,t15)),((t25,t24),(t13,t12))),t16))))),t1,t0); phangorn/inst/extdata/trees/primates.dna0000644000176200001440000001010013201424001020102 0ustar liggesusers 14 232 Mouse ACCAAAAAAA CATCCAAACA CCAACCCCAG CCCTTACGCA ATAGCCATAC AAAGAATATT Bovine ACCAAACCTG TCCCCACCAT CTAACACCAA CCCACATATA CAAGCTAAAC CAAAAATACC Lemur ACCAAACTAA CATCTAACAA CTACCTCCAA CTCTAAAAAA GCACTCTTAC CAAACCCATC Tarsier ATCTACCTTA TCTCCCCCAA TCAATACCAA CCTAAAAACT CTACAATTAA AAACCCCACC Squir MonkACCCCAGCAA CTCGTTGTGA CCAACATCAA TCCAAAATTA GCAAACGTAC CAACAATCTC Jpn Macaq ACTCCACCTG CTCACCTCAT CCACTACTAC TCCTCAAGCA ATACATAAAC TAAAAACTTC Rhesus MacACTTCACCCG TTCACCTCAT CCACTACTAC TCCTCAAGCG ATACATAAAT CAAAAACTTC Crab-E.MacACCCCACCTA CCCGCCTCGT CCGCTACTGC TTCTCAAACA ATATATAGAC CAACAACTTC BarbMacaq ACCCTATCTA TCTACCTCAC CCGCCACCAC CCCCCAAACA ACACACAAAC CAACAACTTT Gibbon ACTATACCCA CCCAACTCGA CCTACACCAA TCCCCACATA GCACACAGAC CAACAACCTC Orang ACCCCACCCG TCTACACCAG CCAACACCAA CCCCCACCTA CTATACCAAC CAATAACCTC Gorilla ACCCCATTTA TCCATAAAAA CCAACACCAA CCCCCATCTA ACACACAAAC TAATGACCCC Chimp ACCCCATCCA CCCATACAAA CCAACATTAC CCTCCATCCA ATATACAAAC TAACAACCTC Human ACCCCACTCA CCCATACAAA CCAACACCAC TCTCCACCTA ATATACAAAT TAATAACCTC ATACTACTAA AAACTCAAAT TAACTCTTTA ATCTTTATAC AACATTCCAC CAACCTATCC ATACAACCAT AAATAAGACT AATCTATTAA AATAACCCAT TACGATACAA AATCCCTTTC ACAACTCTAT CAACCTAACC AAACTATCAA CATGCCCTCT CCTAATTAAA AACATTGCCA GCTCAATTAC TAGCAAAAAT AGACATTCAA CTCCTCCCAT CATAACATAA AACATTCCTC CCAAATTTAA AAACACATCC TACCTTTACA ATTAATAACC ATTGTCTAGA TATACCCCTA TCACCTCTAA TACTACACAC CACTCCTGAA ATCAATGCCC TCCACTAAAA AACATCACCA TCACCTCCAA TACTACGCAC CGCTCCTAAA ATCAATGCCC CCCACCAAAA AACATCACCA TCACCTTTAA CACTACATAT CACTCCTGAG CTTAACACCC TCCGCTAAAA AACACCACTA TTATCTTTAG CACCACACAT CACCCCCAAA AGCAATACCC TTCACCAAAA AGCACCATCA CCACCTTCCA TACCAAGCCC CGACTTTACC GCCAACGCAC CTCATCAAAA CATACCTACA TCAACCCCTA AACCAAACAC TATCCCCAAA ACCAACACAC TCTACCAAAA TACACCCCCA CCACCCTCAA AGCCAAACAC CAACCCTATA ATCAATACGC CTTATCAAAA CACACCCCCA CCACTCTTCA GACCGAACAC CAATCTCACA ACCAACACGC CCCGTCAAAA CACCCCTTCA CCACCTTCAG AACTGAACGC CAATCTCATA ACCAACACAC CCCATCAAAG CACCCCTCCA ACACAAAAAA ACTCATATTT ATCTAAATAC GAACTTCACA CAACCTTAAC ACATAAACAT GTCTAGATAC AAACCACAAC ACACAATTAA TACACACCAC AATTACAATA CTAAACTCCC CACTAAACCT ACACACCTCA TCACCATTAA CGCATAACTC CTCAGTCATA TCTACTACAC GCTCCAATAA ACACATCACA ATCCCAATAA CGCATATACC TAAATACATC ATTTAATAAT AAATAAATGA ATATAAACCC TCGCCGATAA CATA-ACCCC TAAAATCAAG ACATCCTCTC GCCCAAACAA ACACCTATCT ACCCCCCCGG TCCACGCCCC TAACTCCATC ATTCCCCCTC ACCCAAACAA ACACCTACCC ATCCCCCCGG TTCACGCCTC AAACTCCATC ATTCCCCCTC ACCCAAACAA ACACCTATCT ATCCCCCCGG TCCACGCCCC AAACCCCGCT ATTCCCCCCT AATCAAACAA ACACCTATTT ATTCCCCTAA TTCACGTCCC AAATCCCATT ATCTCTCCCC ACACAAACAA ATGCCCCCCC ACCCTCCTTC TTCAAGCCCA CTAGACCATC CTACCTTCCT ATTCACATCC GCACACCCCC ACCCCCCCTG CCCACGTCCA TCCCATCACC CTCTCCTCCC ACATAAACCC ACGCACCCCC ACCCCTTCCG CCCATGCTCA CCACATCATC TCTCCCCTTC GCACAAATTC ATACACCCCT ACCTTTCCTA CCCACGTTCA CCACATCATC CCCCCCTCTC ACACAAACCC GCACACCTCC ACCCCCCTCG TCTACGCTTA CCACGTCATC CCTCCCTCTC ACCCCAGCCC AACACCCTTC CACAAATCCT TAATATACGC ACCATAAATA AC ATCCCACCAA ATCACCCTCC ATCAAATCCA CAAATTACAC AACCATTAAC CC ACCCTAACAA TTTATCCCTC CCATAATCCA AAAACTCCAT AAACACAAAT TC AATACTCCAA CTCCCATAAC ACAGCATACA TAAACTCCAT AAGTTTGAAC AC ACAACGCCAA ACCCCCCTCT CATAACTCTA CAAAATACAC AATCACCAAC AC AATACATCAA ACAATTCCCC CCAATACCCA CAAACTGCAT AAGCAAACAG AC AATACATCAA ACAATTCCCC CCAATACCCA CAAACTACAT AAACAAACAA AC AATACACCAA ACAATTTTCT CCAACACCCA CAAACTGTAT AAACAAACAA AC AACATACCAA ACAATTCTCC CTAATATACA CAAACCACGC AAACAAACAA AC AGCACGCCAA GCTCTCTACC ATCAAACGCA CAACTTACAC ATACAGAACC AC AACACCCTAA GCCACCTTCC TCAAAATCCA AAACCCACAC AACCGAAACA AC AACACCTCAA TCCACCTCCC CCCAAATACA CAATTCACAC AAACAATACC AC AACATCTTGA CTCGCCTCTC TCCAAACACA CAATTCACGC AAACAACGCC AC AACACCTTAA CTCACCTTCT CCCAAACGCA CAATTCGCAC ACACAACGCC AC phangorn/inst/extdata/trees/RAxML_bootstrap.woodmouse0000644000176200001440000042331013201424001022570 0ustar liggesusers(((No1007S,(No0909S,No1208S)),(((No0906S,(No0910S,No1202S)),((No0912S,No1103S),(No0908S,No1206S))),(No306,(No0913S,No304)))),No1114S,No305); (((No306,((No0906S,(No0913S,(No0910S,No1202S))),(((No1208S,(No1007S,No0909S)),(No0912S,No1103S)),No304))),(No0908S,No1206S)),No1114S,No305); (((No0909S,(No1208S,No1007S)),((No0912S,No1103S),((No0908S,No1206S),((No304,No306),(No0906S,(No0913S,(No0910S,No1202S))))))),No1114S,No305); (((No1007S,(No0909S,No1208S)),((No0906S,(No0908S,(((((No0913S,No304),No306),No1103S),No1206S),No0912S))),(No0910S,No1202S))),No1114S,No305); (((((No0908S,No1206S),(No304,No306)),((No0913S,(No0910S,No1202S)),No0906S)),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No1114S,No305); (No1114S,(((No0908S,((No0910S,No1202S),(No1206S,No0906S))),(No306,(No0913S,No304))),((No1208S,(No1007S,No0909S)),(No0912S,No1103S))),No305); ((No1114S,(No306,(No0913S,No304))),(((No0909S,(No1208S,No1007S)),(No0912S,No1103S)),((No0910S,No1202S),((No0908S,No1206S),No0906S))),No305); ((((No0906S,(No0910S,No1202S)),No1206S),(No0908S,((No0909S,(No1208S,No1007S)),(No0912S,No1103S)))),(No306,(No0913S,(No1114S,No304))),No305); ((((No0912S,No1103S),(No1007S,(No0909S,No1208S))),(((No304,No0913S),No306),(((No0906S,(No0910S,No1202S)),No1206S),No0908S))),No1114S,No305); (((No0912S,No1103S),((No1007S,(No0909S,No1208S)),(((No304,No0913S),No306),((No0906S,(No0910S,No1202S)),(No1206S,No0908S))))),No1114S,No305); ((((No1103S,No0912S),(((((No1202S,No0910S),No0906S),No1206S),No0908S),(No306,(No304,No0913S)))),((No1208S,No0909S),No1007S)),No1114S,No305); (((((((No1202S,No0910S),No0906S),No1206S),No0908S),(No306,(No304,No0913S))),(No1103S,(((No1208S,No0909S),No1007S),No0912S))),No1114S,No305); (((((((No1202S,No0910S),No0906S),No1206S),No0908S),(No306,(No304,No0913S))),(No1103S,(((No1208S,No0909S),No1007S),No0912S))),No1114S,No305); ((((No0906S,(No1206S,No0908S)),(No306,(No304,((No1202S,No0910S),No0913S)))),((((No1208S,No0909S),No1007S),No0912S),No1103S)),No1114S,No305); ((((No0908S,(((No1202S,No0910S),No0906S),No1206S)),(No306,(No304,No0913S))),((No0909S,(No1007S,No1208S)),(No0912S,No1103S))),No1114S,No305); (((No306,((No304,No0913S),(No0908S,(((No1202S,No0910S),No0906S),No1206S)))),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No1114S,No305); (((((No306,(No0913S,(((No1202S,No0910S),No0906S),No1206S))),No0908S),No304),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No1114S,No305); ((((((No0913S,No304),No306),No0908S),(((No1202S,No0910S),No0906S),No1206S)),(((No1007S,(No1208S,No0909S)),No0912S),No1103S)),No1114S,No305); ((((((No0913S,No304),No306),No0908S),(((No1202S,No0910S),No0906S),No1206S)),(((No0909S,(No1007S,No1208S)),No0912S),No1103S)),No1114S,No305); ((((((No304,No0908S),(No306,(((No0913S,(No1202S,No0910S)),No0906S),No1206S))),(No0909S,(No1007S,No1208S))),No0912S),No1103S),No1114S,No305); (((No1103S,(No0912S,(No0909S,(No1007S,No1208S)))),(((((No1202S,No0910S),No0906S),No1206S),No0908S),(No306,(No304,No0913S)))),No1114S,No305); (((No1007S,(No1208S,No0909S)),(No1103S,No0912S)),((No0908S,(((No1202S,No0910S),No0906S),No1206S)),(No306,(No1114S,(No304,No0913S)))),No305); (((No1103S,No0912S),(((No0908S,(((No1202S,No0910S),No0906S),No1206S)),(No306,(No304,No0913S))),(No1007S,(No1208S,No0909S)))),No1114S,No305); ((No1103S,(((((No1202S,No0910S),No0906S),(No1206S,No0908S)),(No306,(No304,No0913S))),(No0912S,(No1007S,(No1208S,No0909S))))),No1114S,No305); ((((No306,(No304,No0913S)),(No0908S,(((No1202S,No0910S),No0906S),No1206S))),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No1114S,No305); ((((No306,(No304,No0913S)),(No0908S,(((No1202S,No0910S),No0906S),No1206S))),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No1114S,No305); ((((No306,(No304,No0913S)),(No0908S,(((No1202S,No0910S),No0906S),No1206S))),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No1114S,No305); (((No306,(No0908S,((((No1202S,No0910S),No0906S),No1206S),(No304,No0913S)))),((No0909S,(No1007S,No1208S)),(No0912S,No1103S))),No1114S,No305); ((No0908S,((No306,(No304,No0913S)),((((No1202S,No0910S),No0906S),No1206S),((No0909S,(No1007S,No1208S)),(No0912S,No1103S))))),No1114S,No305); ((((No0912S,No1103S),(No1007S,(No1208S,No0909S))),(((No0908S,No1206S),((No1202S,No0910S),No0906S)),(No306,(No304,No0913S)))),No1114S,No305); (((No0913S,No304),(No306,(((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),(No0908S,((No0906S,(No0910S,No1202S)),No1206S))))),No1114S,No305); ((((No0912S,No1103S),(No1007S,(No1208S,No0909S))),(((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),((No0913S,No304),No306))),No1114S,No305); ((((No0912S,No1103S),(No1007S,(No1208S,No0909S))),(((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),((No0913S,No304),No306))),No1114S,No305); ((((No0912S,No1103S),(No0909S,(No1007S,No1208S))),(((No1206S,(No0910S,(No1202S,No0906S))),No0908S),((No0913S,No304),No306))),No1114S,No305); (((No0909S,(No1007S,No1208S)),(No0912S,(No1103S,(No306,(((No0913S,No0910S),No1202S),(No304,(No0906S,(No0908S,No1206S)))))))),No1114S,No305); (((No306,((No304,No0908S),(No0913S,(No1206S,(No0906S,(No0910S,No1202S)))))),((No0909S,(No1007S,No1208S)),(No1103S,No0912S))),No1114S,No305); (((No1103S,No0912S),(((No0908S,(No306,(No304,No0913S))),(No0906S,((No1206S,No1202S),No0910S))),(No0909S,(No1007S,No1208S)))),No1114S,No305); (((No1103S,No1114S),No0912S),((((No1206S,No0908S),(No306,(No304,No0913S))),(No0906S,(No1202S,No0910S))),(No0909S,(No1007S,No1208S))),No305); (No1114S,((No0912S,((No1007S,(No1208S,No0909S)),No1103S)),((((No306,(No304,No0913S)),((No1202S,No0910S),No0906S)),No1206S),No0908S)),No305); (No1114S,((No0912S,((No0909S,(No1007S,No1208S)),No1103S)),((No0908S,(No1206S,((No1202S,No0910S),No0906S))),(No306,(No304,No0913S)))),No305); ((((No0909S,(No1007S,No1208S)),(No0912S,No1103S)),((No306,((No0910S,((No0913S,No304),No1202S)),No0906S)),(No0908S,No1206S))),No1114S,No305); ((((No0909S,(No1007S,No1208S)),(No0912S,No1103S)),((((No0913S,No304),No306),(((No1202S,No0910S),No1206S),No0906S)),No0908S)),No1114S,No305); ((((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),(((No1202S,No0910S),No0906S),(((No0913S,No304),No306),(No0908S,No1206S)))),No1114S,No305); ((((No0909S,(No1007S,No1208S)),(No0912S,No1103S)),(((No1202S,No0910S),No0906S),(((No0913S,No304),No306),(No0908S,No1206S)))),No1114S,No305); ((((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),((No0908S,No1206S),(No304,(No306,(No0913S,((No1202S,No0910S),No0906S)))))),No1114S,No305); (((No1208S,(No0909S,No1007S)),((No0912S,No1103S),((No0908S,(No1206S,((No1202S,No0910S),No0906S))),((No0913S,No304),No306)))),No1114S,No305); ((((No0908S,(No1206S,((No1202S,No0910S),No0906S))),((No0913S,No304),No306)),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No1114S,No305); ((((No0908S,(No1206S,((No1202S,No0910S),No0906S))),((No0913S,No304),No306)),((No0909S,(No1007S,No1208S)),(No0912S,No1103S))),No1114S,No305); (((No1007S,(No1208S,No0909S)),((No0912S,No1103S),((No0908S,((No0906S,(No1202S,No0910S)),No1206S)),((No0913S,No304),No306)))),No1114S,No305); ((((No0908S,((No1202S,No0910S),(No1206S,No0906S))),((No0913S,No304),No306)),((No0909S,(No1007S,No1208S)),(No0912S,No1103S))),No1114S,No305); (No1114S,(((No1103S,No0912S),(No1007S,(No1208S,No0909S))),(((No306,(No304,No0913S)),(No1206S,No0908S)),(No0906S,(No0910S,No1202S)))),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No1208S,No0909S))),((No306,(No304,No0913S)),(No0908S,(No1206S,(No0906S,(No0910S,No1202S)))))),No305); (No1114S,((No304,No0913S),(((((No0912S,No1103S),(No1007S,(No1208S,No0909S))),(No0908S,No1206S)),(No0906S,(No0910S,No1202S))),No306)),No305); (((No0908S,(No1206S,(No0906S,(No0910S,No1202S)))),(No306,(No1114S,(No304,No0913S)))),((No0912S,No1103S),(No1007S,(No1208S,No0909S))),No305); (No1114S,((No306,((((No304,No0913S),(No0910S,No1202S)),No0906S),(No0908S,No1206S))),((No0912S,No1103S),(No0909S,(No1007S,No1208S)))),No305); (No1114S,((No306,(No304,No0913S)),((((No1007S,(No1208S,No0909S)),No0912S),No1103S),(No0908S,(No1206S,((No1202S,No0910S),No0906S))))),No305); (No1114S,((No1103S,No0912S),((No306,(No304,No0913S)),((((No1202S,No0910S),No0906S),(No0909S,(No1007S,No1208S))),(No0908S,No1206S)))),No305); (No1114S,(((No1103S,No0912S),(No1007S,(No1208S,No0909S))),((No0908S,(No306,(No304,No0913S))),(No1206S,((No1202S,No0910S),No0906S)))),No305); (No1114S,(((No1103S,No0912S),(No1007S,(No1208S,No0909S))),((No0908S,(No306,(No304,No0913S))),(No1206S,((No1202S,No0910S),No0906S)))),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No1208S,No0909S))),((No306,(No304,No0913S)),((No1202S,No0910S),((No0908S,No1206S),No0906S)))),No305); (No1114S,(((No1007S,(No1208S,No0909S)),(No1103S,No0912S)),(((No0906S,(No1202S,No0910S)),(No0908S,No1206S)),((No0913S,No304),No306))),No305); (No1114S,((No0912S,No1103S),(No0906S,((((No1202S,No0910S),(No1007S,(No1208S,No0909S))),((No0913S,No304),No306)),(No0908S,No1206S)))),No305); (No1114S,((((No1007S,(No1208S,No0909S)),No0912S),No1103S),(((No0913S,No304),No306),(No0908S,(No1206S,(No0906S,(No1202S,No0910S)))))),No305); (No1114S,((No0912S,No1103S),(((No0908S,(No1206S,(No0906S,(No1202S,No0910S)))),((No0913S,No304),No306)),(No0909S,(No1007S,No1208S)))),No305); (No1114S,(((No0908S,(No1206S,(No0906S,(No1202S,No0910S)))),((No0913S,No304),No306)),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No305); (No1114S,(((No0908S,(No1206S,(No0906S,(No1202S,No0910S)))),((No0913S,No304),No306)),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No305); ((((No0906S,(No1202S,No0910S)),(No1206S,No0908S)),(No1114S,((No0913S,No304),No306))),((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),No305); (((((No0913S,No304),No306),(No0908S,(((No1202S,No0910S),No0906S),No1206S))),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No1114S,No305); (((((No0913S,No304),No306),(No0908S,(((No1202S,No0910S),No0906S),No1206S))),((No0909S,(No1007S,No1208S)),(No0912S,No1103S))),No1114S,No305); ((No0908S,((((No1202S,No0910S),No0906S),No1206S),((No0913S,(No1114S,No304)),No306))),(No1103S,((No0909S,(No1007S,No1208S)),No0912S)),No305); (No1114S,((No1007S,(No1208S,No0909S)),(((((No1103S,No0912S),No1206S),(No0906S,(No1202S,No0910S))),No0908S),((No0913S,No304),No306))),No305); ((((((No1206S,No0908S),No0912S),(No0906S,(No1202S,No0910S))),No1103S),((No0913S,No304),No306)),((No1114S,(No1007S,No1208S)),No0909S),No305); (No1114S,((((No1206S,(No0906S,(No1202S,No0910S))),No0908S),((No0913S,No304),No306)),(((No1007S,No1208S),No0909S),(No0912S,No1103S))),No305); (No1114S,((((No1206S,(No0906S,(No1202S,No0910S))),No0908S),((No0913S,No304),No306)),(((No1007S,No1208S),No0909S),(No0912S,No1103S))),No305); (No1114S,(((No1007S,No1208S),No0909S),((No306,(No1103S,(((No0906S,(No1202S,No0910S)),No1206S),(No0908S,No0912S)))),(No0913S,No304))),No305); (No1114S,(No0912S,(No1103S,((No306,((No0906S,((No1202S,No0910S),No1206S)),((No1007S,(No1208S,No0909S)),No0908S))),(No304,No0913S)))),No305); (No1114S,(((No1007S,(No1208S,No0909S)),((No0908S,No1206S),(((No304,No0913S),No306),(No0906S,(No1202S,No0910S))))),(No0912S,No1103S)),No305); (No1114S,(((No0910S,(((No0908S,No1206S),No1202S),((No304,No0913S),No306))),No0906S),((No0912S,No1103S),(No1007S,(No1208S,No0909S)))),No305); (((No0912S,No1103S),(((No1206S,(No0906S,(No0910S,No1202S))),(No0908S,((No304,No0913S),No306))),(No1007S,(No1208S,No0909S)))),No1114S,No305); ((No304,(No306,((((No0909S,(No1007S,No1208S)),(No0912S,No1103S)),(No0908S,No1206S)),(No0906S,(No0913S,(No0910S,No1202S)))))),No1114S,No305); (((((No1208S,No0909S),No1007S),(No0912S,No1103S)),((((No0906S,(No0910S,No1202S)),No1206S),No0908S),(No306,(No304,No0913S)))),No1114S,No305); ((((No0909S,(No1007S,No1208S)),(No0912S,No1103S)),(((No0906S,(No0910S,No1202S)),(No1206S,No0908S)),(No306,(No304,No0913S)))),No1114S,No305); ((No0912S,(((((No0906S,(No0910S,No1202S)),No0908S),((No0909S,No1208S),No1007S)),((No306,(No304,No0913S)),No1206S)),No1103S)),No1114S,No305); ((((((No0906S,(No0910S,No1202S)),No1206S),(No306,(No304,No0913S))),No0908S),((((No0909S,No1208S),No1007S),No1103S),No0912S)),No1114S,No305); (((((((No0913S,No1202S),No0910S),No0906S),(No0908S,No1206S)),(No306,No304)),(No1103S,(No0912S,((No0909S,No1208S),No1007S)))),No1114S,No305); (((No304,((No1206S,((No0913S,(No1202S,No0910S)),No0906S)),(No306,No0908S))),(((No0909S,No1208S),No1007S),(No1103S,No0912S))),No1114S,No305); (((((No1206S,((No0913S,(No1202S,No0910S)),No0906S)),No0908S),(No304,No306)),(((No0909S,No1208S),No1007S),(No1103S,No0912S))),No1114S,No305); ((((No0908S,(No306,(No1206S,((No0913S,(No1202S,No0910S)),No0906S)))),(((No0909S,No1208S),No1007S),(No1103S,No0912S))),No304),No1114S,No305); (((((No0909S,No1208S),No1007S),(No1103S,No0912S)),((No306,(No0913S,No304)),(No0908S,(No1206S,((No1202S,No0910S),No0906S))))),No1114S,No305); (((No1103S,No0912S),(((No0909S,No1208S),No1007S),((No0908S,(No1206S,((No1202S,No0910S),No0906S))),(No306,(No0913S,No304))))),No1114S,No305); (No1114S,(((((No304,No0913S),No306),No0908S),(No1206S,(No0906S,(No1202S,No0910S)))),(No0912S,(No1103S,(No1007S,(No0909S,No1208S))))),No305); (No1114S,(((((No304,No0913S),No306),No0908S),(No1206S,(No0906S,(No1202S,No0910S)))),(No0912S,(No1103S,(No1007S,(No0909S,No1208S))))),No305); (No1114S,(((((No304,No0913S),No306),No0908S),(No1206S,(No0906S,(No1202S,No0910S)))),(No0912S,(No1103S,(No1007S,(No0909S,No1208S))))),No305); (No1114S,(((((No304,No0913S),No306),No0908S),(No1206S,(No0906S,(No1202S,No0910S)))),(No0912S,(No1103S,(No0909S,(No1208S,No1007S))))),No305); (No1114S,(No304,((((No0906S,(No0913S,(No1202S,No0910S))),No306),(No0908S,No1206S)),(No0912S,(No1103S,(No1208S,(No1007S,No0909S)))))),No305); (No1114S,(((No0908S,((No0906S,(No1202S,No0910S)),No1206S)),(No0912S,(No1103S,(No1007S,(No0909S,No1208S))))),((No304,No0913S),No306)),No305); (((No1007S,(No0909S,No1208S)),(No0912S,No1103S)),((((No1114S,(No304,No0913S)),No306),No0908S),((No0906S,(No1202S,No0910S)),No1206S)),No305); (No0912S,(No1103S,((((No306,((No1114S,No304),No0913S)),(No0906S,(No1202S,No0910S))),(No1206S,(No1007S,(No0909S,No1208S)))),No0908S)),No305); (((((No1206S,No0908S),(No306,No304)),(((No1202S,No0910S),No0913S),No0906S)),No1114S),((No0912S,No1103S),(No1208S,(No1007S,No0909S))),No305); (No1114S,((((No306,No304),(((No1202S,No0910S),No0913S),No0906S)),(No1206S,No0908S)),((No0912S,No1103S),(No1007S,(No0909S,No1208S)))),No305); (No1114S,(((((No304,No0913S),No306),No0908S),(No1206S,(No0906S,(No1202S,No0910S)))),(No0912S,(No1103S,(No1007S,(No0909S,No1208S))))),No305); (No1114S,((((No304,No0913S),No306),((No0908S,No1206S),(No0906S,(No1202S,No0910S)))),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No305); (No1114S,((No0912S,(((No0913S,(No306,No304)),No1103S),(No0908S,(No1206S,(No0906S,(No1202S,No0910S)))))),(No1007S,(No0909S,No1208S))),No305); (No1114S,(((No0908S,No1206S),(((No0913S,(No306,No304)),No0906S),(No1202S,No0910S))),(((No0909S,(No1208S,No1007S)),No0912S),No1103S)),No305); (No1114S,(((No0908S,No1206S),((No306,(No304,No0913S)),(No0906S,(No1202S,No0910S)))),((No0909S,(No1208S,No1007S)),(No0912S,No1103S))),No305); (No1114S,(((No0908S,No1206S),((No306,(No304,No0913S)),(No0906S,(No1202S,No0910S)))),((No0909S,(No1208S,No1007S)),(No0912S,No1103S))),No305); (((No1114S,(No306,(No304,No0913S))),((No1206S,(No0906S,(No1202S,No0910S))),No0908S)),((No0909S,(No1208S,No1007S)),(No0912S,No1103S)),No305); (No1114S,((No0909S,(No1208S,No1007S)),(((No306,(No304,No0913S)),((No0906S,((No1202S,No0910S),No1206S)),No0908S)),(No0912S,No1103S))),No305); (No1114S,(((No306,(No304,No0913S)),((No0908S,No1206S),(No0906S,(No1202S,No0910S)))),((No1007S,(No0909S,No1208S)),(No1103S,No0912S))),No305); (No1114S,(((((No1202S,No0910S),No0906S),No1206S),(No0908S,(No306,(No304,No0913S)))),((No1007S,(No0909S,No1208S)),(No1103S,No0912S))),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No0909S,No1208S))),(((No0906S,(No1202S,No0910S)),(No0908S,No1206S)),(No306,(No304,No0913S)))),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No0909S,No1208S))),((((No0906S,(No1202S,No0910S)),No1206S),No0908S),(No306,(No304,No0913S)))),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No0909S,No1208S))),((((No0906S,(No1202S,No0910S)),No1206S),No0908S),(No306,(No304,No0913S)))),No305); (No1114S,(((No0912S,No1103S),((No1007S,No1208S),No0909S)),((No0906S,(No1202S,No0910S)),((No306,(No304,No0913S)),(No1206S,No0908S)))),No305); (No1114S,(((No0912S,No1103S),((No1007S,No1208S),No0909S)),((No1206S,(No0906S,(No1202S,No0910S))),((No306,(No304,No0913S)),No0908S))),No305); (No1114S,(((No0912S,No1103S),((No1007S,No1208S),No0909S)),((No1206S,(No0906S,(No1202S,No0910S))),((No306,(No304,No0913S)),No0908S))),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No1208S,No0909S))),(No0908S,((No1206S,(No0906S,(No1202S,No0910S))),(No306,(No304,No0913S))))),No305); ((No1208S,(No0909S,No1007S)),((No1114S,(No306,(No304,No0913S))),((No1206S,No0908S),(No1103S,((No0906S,(No1202S,No0910S)),No0912S)))),No305); ((((((No1202S,No0910S),No0906S),(No1206S,No0908S)),(((No1208S,No1007S),No0909S),(No0912S,No1103S))),(No306,(No304,No0913S))),No1114S,No305); ((((((No1202S,No0910S),No0906S),(No1206S,No0908S)),(((No1208S,No1007S),No0909S),(No0912S,No1103S))),(No306,(No304,No0913S))),No1114S,No305); (No1114S,(((No0912S,No1103S),(No1007S,(No0909S,No1208S))),(((No0906S,(No1202S,No0910S)),(No0908S,No1206S)),(No306,(No304,No0913S)))),No305); (No1114S,((No1007S,(No0909S,No1208S)),(((((No306,(No304,No0913S)),(No0908S,No1206S)),(No1202S,No0910S)),No0906S),(No0912S,No1103S))),No305); ((((No1114S,((No304,No0913S),No306)),No0906S),((No0908S,No1206S),(No1202S,No0910S))),((No0912S,No1103S),(No1208S,(No1007S,No0909S))),No305); (No1114S,((No1007S,(No0909S,No1208S)),((((No304,No0913S),No306),(No0908S,(No1206S,(No0906S,(No1202S,No0910S))))),(No0912S,No1103S))),No305); ((((No1206S,(No0906S,(No1202S,No0910S))),No0908S),(No1114S,((No304,No0913S),No306))),((No1007S,(No0909S,No1208S)),(No0912S,No1103S)),No305); (No1114S,((((No304,No0913S),No306),((No0908S,No1206S),((No1202S,No0910S),No0906S))),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No305); (No1114S,(((No1206S,((No1202S,No0910S),No0906S)),(No0908S,((No304,No0913S),No306))),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No305); (No1114S,((No0912S,No1103S),((((No1206S,((No1202S,No0910S),No0906S)),No0908S),((No304,No0913S),No306)),(No1007S,(No0909S,No1208S)))),No305); (No1114S,((((No1206S,((No1202S,No0910S),No0906S)),No0908S),((No304,No0913S),No306)),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No305); (No1114S,(((((No1202S,No0910S),No0906S),(No0908S,No1206S)),((No304,No0913S),No306)),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No305); (((((No0906S,(No1202S,No0910S)),No1206S),(No306,((No0913S,No304),No0908S))),(No0912S,(No1103S,(No1208S,(No1007S,No0909S))))),No1114S,No305); (((No0906S,((No306,(No0913S,No304)),((No0908S,No1206S),(No1202S,No0910S)))),((No0912S,(No0909S,(No1208S,No1007S))),No1103S)),No1114S,No305); (((((No1206S,(No0906S,(No1202S,No0910S))),No0908S),(No306,(No0913S,No304))),((No0912S,(No1007S,(No0909S,No1208S))),No1103S)),No1114S,No305); (((((No1206S,(No0906S,(No1202S,No0910S))),No0908S),(No306,(No0913S,No304))),((No0912S,(No1007S,(No0909S,No1208S))),No1103S)),No1114S,No305); ((((((No1206S,No0908S),No0906S),(No1202S,No0910S)),(No306,(No0913S,No304))),(No0912S,((No1007S,(No0909S,No1208S)),No1103S))),No1114S,No305); ((No304,((((No0908S,((No0909S,(No1208S,No1007S)),(No1103S,No0912S))),(No1206S,(No0906S,(No1202S,No0910S)))),No306),No0913S)),No1114S,No305); (((No0909S,(No1208S,No1007S)),(No1103S,No0912S)),(((No0908S,No1206S),(No0906S,(No1202S,No0910S))),(No306,(No1114S,(No0913S,No304)))),No305); ((((No1103S,No0912S),(No0909S,(No1208S,No1007S))),(((No1206S,(No0906S,(No1202S,No0910S))),(No306,(No0913S,No304))),No0908S)),No1114S,No305); ((((No1103S,No0912S),(No0909S,(No1208S,No1007S))),(((No1206S,(No0906S,(No1202S,No0910S))),(No306,(No0913S,No304))),No0908S)),No1114S,No305); (((No0906S,(No1202S,No0910S)),(((No1103S,No0912S),(No1007S,(No0909S,No1208S))),(No0908S,No1206S))),(No1114S,(No306,(No0913S,No304))),No305); ((No304,(No306,(((No0912S,(No1103S,(No0909S,(No1208S,No1007S)))),(No0908S,No1206S)),(No0906S,(No0913S,(No1202S,No0910S)))))),No1114S,No305); ((No304,((No306,((((No1202S,No0910S),No0906S),(No0912S,(No1103S,(No0909S,(No1208S,No1007S))))),(No0908S,No1206S))),No0913S)),No1114S,No305); ((((No0912S,No1103S),(No0909S,(No1208S,No1007S))),((No0908S,No1206S),(((No0913S,No304),No306),((No1202S,No0910S),No0906S)))),No1114S,No305); ((No0908S,(((No0913S,No304),No306),(((No0912S,No1103S),(No0909S,(No1208S,No1007S))),((No1202S,No0910S),(No1206S,No0906S))))),No1114S,No305); ((((No0912S,No1103S),(No1007S,(No0909S,No1208S))),(((No0913S,No304),No306),((No0906S,(No1202S,No0910S)),(No0908S,No1206S)))),No1114S,No305); (((No1007S,(No0909S,No1208S)),((((((No1202S,No0910S),No0913S),No304),No306),((No0908S,No1206S),No0906S)),(No0912S,No1103S))),No1114S,No305); ((No304,(No306,(((No0908S,((((No1208S,(No1007S,No0909S)),No0912S),No1103S),No1206S)),No0906S),((No1202S,No0910S),No0913S)))),No1114S,No305); ((No304,(No306,(((((No1208S,(No1007S,No0909S)),No0912S),No1103S),(No1206S,No0908S)),(No0906S,(No1202S,(No0910S,No0913S)))))),No1114S,No305); ((((No0909S,(No1208S,No1007S)),(No0912S,No1103S)),(((No304,No306),(No1206S,No0908S)),(No0906S,(No0913S,(No1202S,No0910S))))),No1114S,No305); ((((No0909S,(No1208S,No1007S)),(No0912S,No1103S)),((No306,(No0913S,No304)),((No1206S,No0908S),(No0906S,(No1202S,No0910S))))),No1114S,No305); ((((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),((No0908S,No1206S),(No0906S,(No1202S,No0910S)))),(No1114S,(No306,(No0913S,No304))),No305); (No1114S,(((No306,(No0913S,No304)),((No0908S,No1206S),(No0906S,(No1202S,No0910S)))),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No305); (No1114S,((No0912S,(((No306,(No0913S,No304)),((No1206S,(No0906S,(No1202S,No0910S))),No0908S)),(No1007S,(No1208S,No0909S)))),No1103S),No305); (No1114S,(No304,(((((No0906S,(No1202S,No0910S)),(No0908S,No1206S)),(((No1007S,(No1208S,No0909S)),No0912S),No1103S)),No306),No0913S)),No305); (No1114S,((((No1007S,(No1208S,No0909S)),No0912S),No1103S),((No306,(No0913S,No304)),((No0906S,(No1202S,No0910S)),(No0908S,No1206S)))),No305); (No1114S,((No0909S,(No1007S,No1208S)),((No0912S,No1103S),((No306,(No0913S,No304)),((No0908S,No1206S),(No0906S,(No1202S,No0910S)))))),No305); (No1114S,((No306,(No0913S,No304)),((No0908S,(No1206S,(No0906S,(No1202S,No0910S)))),(No1103S,(No0912S,(No1007S,(No1208S,No0909S)))))),No305); (No1114S,((No0913S,(((No0908S,(No1206S,(No0906S,(No1202S,No0910S)))),(((No1007S,(No1208S,No0909S)),No0912S),No1103S)),No306)),No304),No305); (No1114S,(((No1103S,No0912S),(No1007S,(No1208S,No0909S))),(No0908S,((No306,(No304,No0913S)),(No1206S,(No0906S,(No1202S,No0910S)))))),No305); (No1114S,(((No1103S,No0912S),(No1007S,(No1208S,No0909S))),(No0908S,((No306,(No304,No0913S)),(No1206S,(No0906S,(No1202S,No0910S)))))),No305); ((((No0912S,(No0909S,(No1007S,No1208S))),No1103S),(((No304,No0913S),No306),(No0908S,(No1206S,(No0906S,(No0910S,No1202S)))))),No1114S,No305); ((((No0912S,(No0909S,(No1007S,No1208S))),No1103S),(((No304,No0913S),No306),(No0908S,(No1206S,(No0906S,(No0910S,No1202S)))))),No1114S,No305); ((((No1007S,(No1208S,No0909S)),(No1103S,No0912S)),(((No304,No0913S),No306),(No0908S,(No0906S,((No0910S,No1202S),No1206S))))),No1114S,No305); ((((No1007S,(No1208S,No0909S)),(No1103S,No0912S)),((((No304,No0913S),No306),(No0906S,(No0910S,No1202S))),(No0908S,No1206S))),No1114S,No305); (((No0909S,(No1007S,No1208S)),((((No304,No0913S),No306),((No1206S,(No0906S,(No0910S,No1202S))),No0908S)),(No1103S,No0912S))),No1114S,No305); ((No304,(No306,((No0913S,(No0906S,(No0910S,No1202S))),(((No1103S,No0912S),(No0909S,(No1007S,No1208S))),(No0908S,No1206S))))),No1114S,No305); ((((No0909S,(No1007S,No1208S)),(No0908S,(((No306,No304),No0913S),(No0906S,((No0910S,No1202S),No1206S))))),(No0912S,No1103S)),No1114S,No305); (No0908S,((((No1007S,(No1208S,No0909S)),No0912S),No1103S),(((No0906S,(No1202S,No0910S)),No1206S),(No306,(No1114S,(No0913S,No304))))),No305); ((((No1103S,No0912S),(No1208S,(No0909S,No1007S))),((No306,No304),((No0908S,No1206S),(No0906S,(No0913S,(No1202S,No0910S)))))),No1114S,No305); (((No0909S,(No1007S,No1208S)),(((No0908S,No1206S),((No0906S,(No1202S,No0910S)),(No306,(No0913S,No304)))),(No0912S,No1103S))),No1114S,No305); (((No0912S,(((No0906S,((No0910S,No1202S),No1206S)),(((No304,No0913S),No306),No0908S)),No1103S)),(No1007S,(No1208S,No0909S))),No1114S,No305); (((No0912S,No1103S),((No1007S,(No1208S,No0909S)),(((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),((No304,No0913S),No306)))),No1114S,No305); (((((No0908S,No1206S),(No0906S,(No0910S,No1202S))),((No304,No0913S),No306)),((No0912S,No1103S),(No1208S,(No0909S,No1007S)))),No1114S,No305); (((No0908S,(((No1206S,No0906S),(No0910S,No1202S)),((No304,No0913S),No306))),((No0912S,No1103S),(No0909S,(No1007S,No1208S)))),No1114S,No305); (No0908S,((No1206S,(No0906S,(No0910S,No1202S))),(((No1114S,(No304,No0913S)),No306),((No0912S,No1103S),(No0909S,(No1007S,No1208S))))),No305); (No1114S,(((((No0909S,No1007S),No1208S),No0912S),No1103S),((No306,(No304,No0913S)),((No0908S,No1206S),(No0906S,(No0910S,No1202S))))),No305); (No1114S,((((No1007S,(No1208S,No0909S)),No0912S),No1103S),(No0908S,((No306,(No304,No0913S)),(No1206S,((No0910S,No1202S),No0906S))))),No305); (No1114S,((((No1007S,(No1208S,No0909S)),No0912S),No1103S),(((No0910S,No1202S),No0906S),((No306,(No304,No0913S)),(No0908S,No1206S)))),No305); (No1114S,((No0909S,(No1007S,No1208S)),((No0912S,No1103S),((No306,(No304,No0913S)),(No0908S,(No1206S,((No0910S,No1202S),No0906S)))))),No305); (No1114S,(((((No1206S,((No0910S,No1202S),No0906S)),No0908S),No306),(No304,No0913S)),(((No0909S,(No1007S,No1208S)),No0912S),No1103S)),No305); (((No0912S,(No1103S,(No1007S,(No0909S,No1208S)))),(((No0913S,No304),No306),((No0906S,(No0910S,No1202S)),(No1206S,No0908S)))),No1114S,No305); ((No0912S,(No1103S,(No1007S,(No0909S,No1208S)))),((No1114S,((No0913S,No304),No306)),(No0908S,((No0906S,(No0910S,No1202S)),No1206S))),No305); (No1114S,((((No0913S,No304),No306),(No0908S,((No0906S,(No0910S,No1202S)),No1206S))),((No0909S,(No1208S,No1007S)),(No0912S,No1103S))),No305); (No1114S,((No0912S,No1103S),((((No0913S,No304),No306),((No0906S,(No0910S,No1202S)),(No1206S,No0908S))),(No1007S,(No0909S,No1208S)))),No305); (No1114S,(((((No0906S,(No0910S,No1202S)),No1206S),(No0908S,((No0913S,No304),No306))),(No1007S,(No0909S,No1208S))),(No0912S,No1103S)),No305); (No1114S,(No304,((No306,(((No1007S,(No0909S,No1208S)),(No0912S,No1103S)),(((No0906S,(No0910S,No1202S)),No1206S),No0908S))),No0913S)),No305); (No1114S,((((No1007S,(No0909S,No1208S)),No0912S),No1103S),((((No0906S,(No0913S,(No0910S,No1202S))),No1206S),(No304,No0908S)),No306)),No305); (No1114S,(((No0909S,(No1208S,No1007S)),(No0912S,No1103S)),((No304,No306),(No0906S,((No0913S,(No0910S,No1202S)),(No0908S,No1206S))))),No305); (No1114S,(((No1206S,(No0906S,(No0910S,No1202S))),No0908S),(((No304,No0913S),No306),((No1007S,(No0909S,No1208S)),(No0912S,No1103S)))),No305); (No1114S,(((No1007S,(No0909S,No1208S)),(No0912S,No1103S)),((((No304,No0913S),No306),(No1206S,(No0906S,(No0910S,No1202S)))),No0908S)),No305); ((((No0912S,No1103S),(No0908S,(((No0913S,No304),No306),(No1206S,(No0906S,(No0910S,No1202S)))))),(No1007S,(No0909S,No1208S))),No1114S,No305); ((((No0908S,(No1206S,(No0906S,(No0910S,No1202S)))),((No0909S,(No1208S,No1007S)),(No0912S,No1103S))),((No0913S,No304),No306)),No1114S,No305); ((((No0908S,(No1206S,(No0906S,(No0910S,No1202S)))),((No0909S,(No1208S,No1007S)),(No0912S,No1103S))),((No0913S,No304),No306)),No1114S,No305); ((No0912S,No1103S),(((No1206S,((No0906S,(No0910S,No1202S)),((No1114S,(No0913S,No304)),No306))),No0908S),(No1007S,(No0909S,No1208S))),No305); (No1114S,((No0913S,No304),(No306,((No0908S,((No1206S,No0906S),(No0910S,No1202S))),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))))),No305); (No1114S,((No1007S,(No0909S,No1208S)),((No0912S,No1103S),((((No0910S,No1202S),No0906S),(No1206S,No0908S)),(No306,(No304,No0913S))))),No305); (No1114S,((No0912S,No1103S),(((((No1206S,No0908S),No0910S),(No1202S,(No306,(No304,No0913S)))),No0906S),(No1007S,(No0909S,No1208S)))),No305); (No1114S,((((No0913S,(No0906S,(No0910S,No1202S))),No306),((No1206S,No0908S),(((No0909S,(No1208S,No1007S)),No0912S),No1103S))),No304),No305); ((((((No0906S,(No0910S,No1202S)),(No304,No0913S)),(No1206S,No0908S)),No306),(((No1007S,(No0909S,No1208S)),No0912S),No1103S)),No1114S,No305); ((((((No1206S,No0906S),(No0910S,No1202S)),((No304,No0913S),No0908S)),No306),((No1208S,(No1007S,No0909S)),(No0912S,No1103S))),No1114S,No305); (No1114S,(((((No0912S,No1103S),(No1007S,(No0909S,No1208S))),(No0906S,((No0910S,No1202S),No1206S))),((No0913S,No304),No306)),No0908S),No305); (No1114S,(((((No0912S,No1103S),(No1007S,(No0909S,No1208S))),No0908S),(No1206S,(No0906S,(No0910S,No1202S)))),((No0913S,No304),No306)),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No0909S,No1208S))),(((No0908S,No1206S),((No0906S,(No0910S,No1202S)),(No0913S,No304))),No306)),No305); (No1114S,(No0912S,((((((No0908S,No1206S),No0906S),(No0910S,No1202S)),(No306,(No0913S,No304))),(No1007S,(No0909S,No1208S))),No1103S)),No305); (No1114S,(((No1206S,(No0906S,(No0910S,No1202S))),No0908S),(No306,(((No0912S,(No1007S,(No0909S,No1208S))),No1103S),(No0913S,No304)))),No305); (No1114S,(((No1208S,(No1007S,No0909S)),(No1103S,No0912S)),(No0908S,((No306,(No304,No0913S)),(No1206S,(No0906S,(No0910S,No1202S)))))),No305); (No1114S,((No1103S,No0912S),(((No0908S,(No306,(No304,No0913S))),(No1206S,(No0906S,(No0910S,No1202S)))),(No1007S,(No0909S,No1208S)))),No305); (No1114S,((No1007S,(No0909S,No1208S)),((No1103S,No0912S),(((No1206S,(No0906S,(No0910S,No1202S))),No0908S),(No306,(No304,No0913S))))),No305); (No1114S,((No1007S,(No0909S,No1208S)),((No1103S,No0912S),(((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),(No306,(No304,No0913S))))),No305); (No1114S,((((No0913S,(No0906S,(No0910S,No1202S))),(No0908S,No1206S)),(No306,No304)),((No0909S,(No1208S,No1007S)),(No1103S,No0912S))),No305); ((((No1103S,(No0912S,((No1208S,No0909S),No1007S))),No0908S),(No1206S,(No0906S,(No0910S,No1202S)))),(((No0913S,No304),No306),No1114S),No305); (((((No1208S,No0909S),No1007S),(No1103S,No0912S)),((No0908S,No1206S),(((No0913S,No304),No306),(No0906S,(No0910S,No1202S))))),No1114S,No305); ((((No0909S,(No1007S,No1208S)),(No1103S,No0912S)),(((No0913S,No304),No306),((No1206S,(No0906S,(No0910S,No1202S))),No0908S))),No1114S,No305); (((No0909S,(No1007S,No1208S)),(No0912S,(((No1114S,(No0913S,No304)),No306),(((No0910S,No1202S),(No0908S,No1206S)),No0906S)))),No1103S,No305); (No1114S,(((No0913S,No304),No306),(((No0908S,No1206S),((No0910S,No1202S),No0906S)),((No1208S,(No0909S,No1007S)),(No1103S,No0912S)))),No305); (No1114S,(((((No0913S,No304),No306),((No1206S,(No1202S,No0910S)),No0906S)),No0908S),((No1007S,(No1208S,No0909S)),(No1103S,No0912S))),No305); (No1114S,(((((No1202S,No0910S),No0906S),(No0908S,No1206S)),((No0913S,No304),No306)),((No1007S,(No1208S,No0909S)),(No1103S,No0912S))),No305); (No1114S,(((((No1202S,No0910S),No0906S),(No0908S,No1206S)),((No0913S,No304),No306)),((No1007S,(No1208S,No0909S)),(No1103S,No0912S))),No305); (No1114S,(((((No1202S,No0910S),No0906S),(No0908S,No1206S)),((No0913S,No304),No306)),((No1007S,(No1208S,No0909S)),(No1103S,No0912S))),No305); (No1114S,((No0909S,(No1007S,No1208S)),((No1103S,No0912S),((((No1202S,No0910S),No0906S),(No0908S,No1206S)),((No0913S,No304),No306)))),No305); ((((No1103S,No0912S),(((No0913S,No304),No306),((No1206S,(No0906S,(No0910S,No1202S))),No0908S))),((No1208S,No0909S),No1007S)),No1114S,No305); (((No1103S,No0912S),(((No1206S,(No0906S,(No0910S,No1202S))),(No0908S,(No1208S,(No0909S,No1007S)))),((No0913S,No304),No306))),No1114S,No305); ((((No1206S,(No0906S,(No0910S,No1202S))),(((No0913S,No304),No306),((No1103S,No0912S),(No1007S,(No1208S,No0909S))))),No0908S),No1114S,No305); (((No0912S,((No0909S,(No1007S,No1208S)),No1103S)),(((No0908S,No1206S),(No0906S,(No0910S,No1202S))),((No0913S,No304),No306))),No1114S,No305); (((No0912S,((No1007S,(No1208S,No0909S)),No1103S)),(((No1206S,(No0906S,(No0910S,No1202S))),((No0913S,No304),No306)),No0908S)),No1114S,No305); (((No1007S,(No1208S,No0909S)),((No1103S,No0912S),(((No1206S,(No0906S,(No0910S,No1202S))),((No0913S,No304),No306)),No0908S))),No1114S,No305); ((((No0908S,No1206S),((No0910S,No1202S),No0906S)),(No1114S,((No0913S,No304),No306))),((No1103S,No0912S),(No0909S,(No1007S,No1208S))),No305); (No1114S,(((((No0908S,No1206S),No0906S),(((No0913S,No304),No306),(No0910S,No1202S))),(No1208S,(No0909S,No1007S))),(No1103S,No0912S)),No305); (No1114S,((No0906S,(((No0913S,No304),No306),((No0908S,No1206S),(No0910S,No1202S)))),((No0909S,(No1007S,No1208S)),(No1103S,No0912S))),No305); (No1114S,((((No0913S,No304),No306),((No0908S,No1206S),(No0906S,(No0910S,No1202S)))),((No0909S,(No1007S,No1208S)),(No1103S,No0912S))),No305); (((No0912S,No1103S),((No1007S,(No1208S,No0909S)),(((No306,(No304,No0913S)),No1206S),((No0906S,(No1202S,No0910S)),No0908S)))),No1114S,No305); ((((No306,(No304,No0913S)),((No0908S,No1206S),(No0906S,(No1202S,No0910S)))),((No0912S,No1103S),(No1208S,(No0909S,No1007S)))),No1114S,No305); (((No1007S,(No1208S,No0909S)),((((No0908S,No1206S),(No0906S,(No1202S,No0910S))),(No306,(No304,No0913S))),(No0912S,No1103S))),No1114S,No305); (((((No0908S,No1206S),(No0906S,(No1202S,No0910S))),(No306,(No304,No0913S))),((No0912S,No1103S),(No0909S,(No1007S,No1208S)))),No1114S,No305); (((No1007S,(No1208S,No0909S)),(((((((No1202S,No0910S),No0906S),No1206S),No0908S),(No306,(No304,No0913S))),No0912S),No1103S)),No1114S,No305); (((No0908S,(No306,((No304,No0913S),((No0906S,No1202S),(No0910S,No1206S))))),(((No1007S,(No1208S,No0909S)),No0912S),No1103S)),No1114S,No305); ((((No1007S,(No1208S,No0909S)),No0912S),No1103S),(No1114S,(((No1206S,No0908S),(No0913S,((No1202S,No0910S),No0906S))),(No306,No304))),No305); (No1114S,((((No1206S,No0906S),No0908S),(((No1202S,No0910S),(No304,No0913S)),No306)),(No0912S,(No1103S,(No1007S,(No1208S,No0909S))))),No305); ((((No1114S,(No304,No0913S)),No306),((No1206S,No0908S),(No0906S,(No1202S,No0910S)))),((No0909S,(No1007S,No1208S)),(No0912S,No1103S)),No305); ((((No304,No0913S),No306),((((No1007S,(No1208S,No0909S)),No0912S),No1103S),(No0908S,((No1206S,No0906S),(No1202S,No0910S))))),No1114S,No305); (No1114S,((No0912S,(No1103S,(No0909S,(No1007S,No1208S)))),((((No0910S,No1202S),No0906S),(No0908S,No1206S)),(No306,(No0913S,No304)))),No305); (No1114S,((No0912S,(No1103S,(No0909S,(No1007S,No1208S)))),(((((No0910S,No1202S),No0906S),No1206S),No0908S),(No306,(No0913S,No304)))),No305); (No1114S,((No0912S,(No1103S,(No0909S,(No1007S,No1208S)))),((((No0910S,No1202S),No0906S),(No1206S,No0908S)),(No306,(No0913S,No304)))),No305); ((No0912S,No1103S),((No0909S,(No1007S,No1208S)),((((No0910S,No1202S),No0906S),(No1206S,No0908S)),(No1114S,(No306,(No0913S,No304))))),No305); (No1114S,(No306,((No0908S,(((No0912S,No1103S),(No1007S,(No1208S,No0909S))),((No0910S,No1202S),(No0913S,No304)))),(No1206S,No0906S))),No305); (No1114S,(No306,(((No0908S,(No1206S,((No0910S,No1202S),No0906S))),((No0912S,No1103S),(No1007S,(No1208S,No0909S)))),(No0913S,No304))),No305); (No1114S,((No1007S,(No1208S,No0909S)),(((((No0913S,No304),No306),No0908S),(No1206S,((No0910S,No1202S),No0906S))),(No0912S,No1103S))),No305); (No1114S,((((No0913S,No304),No306),(No0908S,(No1206S,((No0910S,No1202S),No0906S)))),((No0912S,No1103S),(No1208S,(No0909S,No1007S)))),No305); (No1114S,((((No0913S,No304),No306),(No0908S,(No1206S,((No0910S,No1202S),No0906S)))),((No0912S,No1103S),(No1208S,(No0909S,No1007S)))),No305); (No1114S,((((No0913S,No304),No306),(No0908S,(No1206S,((No0910S,No1202S),No0906S)))),((No0912S,No1103S),(No1007S,(No1208S,No0909S)))),No305); (No1114S,((No0912S,(No1103S,(No1007S,(No1208S,No0909S)))),(((((No0910S,No1202S),No0906S),No1206S),((No0913S,No304),No306)),No0908S)),No305); (No1114S,((No1007S,(No1208S,No0909S)),(No0912S,(((((No0910S,No1202S),No0906S),(No0908S,No1206S)),((No0913S,No304),No306)),No1103S))),No305); (No1114S,((((No1206S,((No0910S,No1202S),No0906S)),No0908S),((No0913S,No304),No306)),(((No1007S,(No1208S,No0909S)),No1103S),No0912S)),No305); (No1114S,((((No1206S,((No0910S,No1202S),No0906S)),No0908S),((No0913S,No304),No306)),(((No1007S,(No1208S,No0909S)),No1103S),No0912S)),No305); (No1114S,((((No1206S,((No0910S,No1202S),No0906S)),No0908S),((No0913S,No304),No306)),(((No1007S,(No1208S,No0909S)),No1103S),No0912S)),No305); (No1114S,((((No1206S,((No0910S,No1202S),No0906S)),No0908S),((No0913S,No304),No306)),(((No0909S,(No1007S,No1208S)),No1103S),No0912S)),No305); (No1114S,((No306,(No0913S,No304)),(((No0910S,No1202S),No0906S),(((No1007S,(No1208S,No0909S)),(No1103S,No0912S)),(No0908S,No1206S)))),No305); (No1114S,(((No0913S,No306),((((No0906S,(No0910S,No1202S)),No1206S),((No0909S,(No1007S,No1208S)),(No1103S,No0912S))),No0908S)),No304),No305); (No1114S,((No1103S,(No0912S,(No1007S,(No1208S,No0909S)))),(((No304,No0913S),No306),(No0908S,((No0906S,(No0910S,No1202S)),No1206S)))),No305); (No1114S,((No1103S,(No0912S,(No0909S,(No1007S,No1208S)))),(No306,((No0908S,((No0906S,(No0910S,No1202S)),No1206S)),(No304,No0913S)))),No305); (No1114S,((No1103S,(No0912S,(No1007S,(No0909S,No1208S)))),(No0908S,((No1206S,(No0906S,(No1202S,No0910S))),((No0913S,No304),No306)))),No305); (((No0909S,(No1208S,No1007S)),No1114S),(((((No0908S,No1206S),((No0910S,No1202S),No0906S)),((No0913S,No304),No306)),No1103S),No0912S),No305); ((((No1103S,(No0912S,(No1007S,(No0909S,No1208S)))),((No0910S,No1202S),No0906S)),(No1206S,No0908S)),(No1114S,((No0913S,No304),No306)),No305); ((((No1103S,No0912S),(No1007S,(No0909S,No1208S))),(((No0910S,No1202S),(No1206S,No0906S)),(No0908S,((No0913S,No304),No306)))),No1114S,No305); (((((No1007S,(No0909S,No1208S)),No0912S),No1103S),((((No0906S,No0910S),No1202S),(No0908S,No1206S)),((No0913S,No304),No306))),No1114S,No305); ((((No0909S,(No1208S,No1007S)),No0912S),No1103S),(((((No0910S,No1202S),No1206S),No0906S),No0908S),((No0913S,(No1114S,No304)),No306)),No305); (((No0912S,(((No0908S,(((No0906S,No1202S),No0910S),No1206S)),((No0913S,No304),No306)),(No0909S,(No1208S,No1007S)))),No1103S),No1114S,No305); ((No0908S,(((No0913S,No304),No306),(((No0906S,(No1007S,(No0909S,No1208S))),(No0912S,(No1202S,No0910S))),(No1206S,No1103S)))),No1114S,No305); (((No0912S,No1103S),(No0908S,(((No0913S,No304),No306),(No0906S,((No1202S,No0910S),No1206S))))),((No0909S,(No1208S,No1007S)),No1114S),No305); (No1114S,((No0912S,No1103S),(((No0906S,(No1202S,No0910S)),((No0908S,No1206S),((No0913S,No304),No306))),(No0909S,(No1208S,No1007S)))),No305); (No1114S,((No1103S,(No0912S,(No1007S,(No0909S,No1208S)))),(No0908S,((No1206S,(No0906S,(No1202S,No0910S))),((No0913S,No304),No306)))),No305); (No1114S,(((No1007S,(No0909S,No1208S)),(No1103S,No0912S)),(((No0908S,No1206S),(No0906S,(No1202S,No0910S))),((No0913S,No304),No306))),No305); (No1114S,(((No0909S,(No1208S,No1007S)),(No1103S,No0912S)),(((No0908S,No1206S),(No0906S,(No1202S,No0910S))),((No0913S,No304),No306))),No305); (No1114S,(((No0909S,(No1208S,No1007S)),(No1103S,No0912S)),(((No0908S,No1206S),(No0906S,(No1202S,No0910S))),((No0913S,No304),No306))),No305); (No1114S,((No1103S,No0912S),(((No0906S,(No1202S,No0910S)),((No0909S,(No1208S,No1007S)),(No0908S,No1206S))),((No0913S,No304),No306))),No305); (No1114S,(No1103S,(No0912S,((No0909S,(No1208S,No1007S)),(No0908S,(((No0913S,No304),No306),(No1206S,(No0906S,(No1202S,No0910S)))))))),No305); (No1114S,(((No1007S,(No0909S,No1208S)),((((((No1202S,No0910S),No0913S),No304),No306),No0906S),(No0908S,No1206S))),(No1103S,No0912S)),No305); (No1114S,((No0908S,(No1206S,(((No0913S,No304),No306),((No1202S,No0910S),No0906S)))),((No1103S,No0912S),(No0909S,(No1208S,No1007S)))),No305); (No1114S,(((((No0913S,No304),No306),((No1202S,No0910S),No0906S)),(No0908S,No1206S)),((No1103S,No0912S),(No0909S,(No1208S,No1007S)))),No305); ((((No0908S,(No1206S,((No1202S,No0910S),No0906S))),((No0913S,No304),No306)),(No0912S,No1103S)),(No1114S,(No1007S,(No0909S,No1208S))),No305); (((No0909S,(No1208S,No1007S)),(No0912S,No1103S)),((No0908S,(No1206S,((No1202S,No0910S),No0906S))),(No1114S,(No306,(No0913S,No304)))),No305); (No1114S,(((No1206S,No0908S),(((No1202S,No0910S),No0906S),(No306,(No0913S,No304)))),((No0909S,(No1208S,No1007S)),(No0912S,No1103S))),No305); (No1114S,(((No306,(No0913S,No304)),(No0908S,(No1206S,((No1202S,No0910S),No0906S)))),((No0909S,(No1208S,No1007S)),(No0912S,No1103S))),No305); (No1114S,((No0909S,(No1208S,No1007S)),((No0912S,No1103S),((No0908S,(No1206S,((No1202S,No0910S),No0906S))),(No306,(No0913S,No304))))),No305); (No1114S,((((No306,No0913S),(((No1202S,No0910S),No0906S),(No0908S,No1206S))),((No0909S,(No1208S,No1007S)),(No0912S,No1103S))),No304),No305); (No1114S,((((No0909S,No1208S),No1007S),(No0912S,No1103S)),((No306,(No304,No0913S)),((((No1202S,No0910S),No0906S),No1206S),No0908S))),No305); (No1114S,((((No0909S,No1208S),No1007S),(No0912S,No1103S)),((No306,(No304,No0913S)),((((No1202S,No0910S),No0906S),No1206S),No0908S))),No305); (No1114S,(((No0909S,(No1208S,No1007S)),(No0912S,No1103S)),((No306,(No304,No0913S)),(((No1202S,No0910S),No0906S),(No1206S,No0908S)))),No305); (((No1103S,No0912S),(((No306,(No304,No0913S)),(((No1202S,No0910S),No0906S),(No1206S,No0908S))),(No0909S,(No1208S,No1007S)))),No1114S,No305); (((No1103S,No0912S),(((No306,(No304,No0913S)),(((No1202S,No0910S),No0906S),(No1206S,No0908S))),(No0909S,(No1208S,No1007S)))),No1114S,No305); ((((No1007S,(No0909S,No1208S)),(No0912S,No1103S)),((No0908S,(No1206S,((No1202S,No0910S),No0906S))),(No306,(No0913S,No304)))),No1114S,No305); ((((No1007S,(No0909S,No1208S)),(No0912S,No1103S)),((No0908S,(No1206S,((No1202S,No0910S),No0906S))),(No306,(No0913S,No304)))),No1114S,No305); ((((No0909S,(No1208S,No1007S)),(No0912S,No1103S)),(((No0908S,No1206S),No0906S),(No306,(((No1202S,No0910S),No0913S),No304)))),No1114S,No305); (((No0913S,(No306,((((No1007S,(No0909S,No1208S)),(No0912S,No1103S)),(No0908S,No1206S)),(No0906S,(No1202S,No0910S))))),No304),No1114S,No305); ((((No1206S,(No0913S,(No0906S,(No1202S,No0910S)))),(No306,(No0908S,((No0909S,(No1208S,No1007S)),(No0912S,No1103S))))),No304),No1114S,No305); (((No0908S,((No306,(No304,(No0913S,(No1202S,No0910S)))),(No0906S,No1206S))),((No0912S,No1103S),(No1208S,(No1007S,No0909S)))),No1114S,No305); ((No304,((No306,((((No1202S,No0910S),No0906S),No1206S),(((No0912S,No1103S),(No0909S,(No1208S,No1007S))),No0908S))),No0913S)),No1114S,No305); (((No0912S,No1103S),(No1007S,(No0909S,No1208S))),((No0908S,(((No1202S,No0910S),No0906S),No1206S)),(No306,((No0913S,No304),No1114S))),No305); (No1114S,((((((((No1202S,No0910S),No0906S),No1206S),No306),No0908S),((No0912S,No1103S),(No1208S,(No1007S,No0909S)))),No0913S),No304),No305); (No1114S,(((No0912S,No1103S),(No0909S,(No1208S,No1007S))),((No306,(No0913S,No304)),((No1202S,((No1206S,No0906S),No0910S)),No0908S))),No305); (((No306,((No304,(No1206S,(No0906S,((No0910S,No1202S),No0913S)))),No0908S)),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No1114S,No305); ((((No0908S,(No1206S,(No0906S,(No0910S,No1202S)))),((No0913S,No304),No306)),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No1114S,No305); ((((No0908S,(No1206S,(No0906S,(No0910S,No1202S)))),((No0913S,No304),No306)),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No1114S,No305); ((No304,((((No0906S,(No0913S,(No0910S,No1202S))),(No0908S,No1206S)),No306),((No1208S,(No1007S,No0909S)),(No0912S,No1103S)))),No1114S,No305); (((No1007S,(No0909S,No1208S)),(No0912S,(No1103S,((No0908S,((No1206S,(No0910S,No1202S)),No0906S)),((No304,No0913S),No306))))),No1114S,No305); ((((No1007S,(No0909S,No1208S)),((No0908S,((No1206S,(No0910S,No1202S)),No0906S)),((No304,No0913S),No306))),(No0912S,No1103S)),No1114S,No305); ((((((No0906S,(No0913S,(No0910S,No1202S))),No306),(No1206S,No0908S)),(((No1007S,No1208S),No0909S),(No0912S,No1103S))),No304),No1114S,No305); ((((((No0913S,No304),No306),(No1206S,(No0906S,(No0910S,No1202S)))),No0908S),((No0912S,No1103S),(No1007S,(No1208S,No0909S)))),No1114S,No305); ((((((No0913S,No304),No306),(No1206S,(No0906S,(No0910S,No1202S)))),No0908S),((No0912S,No1103S),(No1007S,(No1208S,No0909S)))),No1114S,No305); ((((((No0913S,No304),No306),No0906S),((No0910S,No1202S),(No0908S,No1206S))),((No0912S,No1103S),(No1007S,(No1208S,No0909S)))),No1114S,No305); (No1114S,(No306,((((No0913S,No304),No0908S),((No1103S,(No1007S,(No0909S,No1208S))),No0912S)),(No1206S,(No0906S,(No0910S,No1202S))))),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No0909S,No1208S))),(No0908S,((No1206S,(No0906S,(No0910S,No1202S))),(No306,(No0913S,No304))))),No305); (No1114S,((No0912S,No1103S),((No1007S,(No0909S,No1208S)),((No306,(No0913S,No304)),(No0908S,(No1206S,(No0906S,(No0910S,No1202S))))))),No305); (No1114S,((No0912S,No1103S),((No1007S,(No0909S,No1208S)),((No306,(No0913S,No304)),(No0908S,(No1206S,(No0906S,(No0910S,No1202S))))))),No305); (No1114S,(((No306,(No0913S,No304)),((No0906S,(No0910S,No1202S)),(No0908S,No1206S))),((No0912S,No1103S),(No0909S,(No1208S,No1007S)))),No305); (No1114S,(((No306,(No0913S,No304)),((No0906S,(No0910S,No1202S)),(No0908S,No1206S))),((No0912S,No1103S),(No0909S,(No1208S,No1007S)))),No305); (No1114S,((No0909S,(No1208S,No1007S)),((((No306,(No0913S,No304)),(((No0910S,No1202S),No0906S),No1206S)),No0908S),(No0912S,No1103S))),No305); (No1114S,((No0912S,No1103S),((No0909S,(No1208S,No1007S)),((((No306,(No0913S,No304)),No0906S),(No0908S,(No0910S,No1202S))),No1206S))),No305); (No1114S,(((No0908S,(No306,(No0913S,No304))),(((No0910S,No1202S),No0906S),No1206S)),((No0912S,No1103S),(No1007S,(No0909S,No1208S)))),No305); (No1114S,((((No1206S,No0908S),((No0910S,No1202S),No0906S)),((No0912S,No1103S),(No1007S,(No0909S,No1208S)))),(No306,(No0913S,No304))),No305); (No1114S,(((((No0913S,No304),No306),((No0908S,No1206S),(No0906S,(No0910S,No1202S)))),(No1103S,No0912S)),((No1208S,No1007S),No0909S)),No305); ((No304,((No0913S,No306),(No0908S,((No1206S,(No0906S,(No0910S,No1202S))),(((No1208S,No1007S),No0909S),(No0912S,No1103S)))))),No1114S,No305); (((No0912S,No1103S),((((No1206S,(No0906S,(No0910S,No1202S))),((No304,No0913S),No306)),No0908S),(No1007S,(No0909S,No1208S)))),No1114S,No305); (((((No1114S,No304),No0913S),No306),(No0908S,(No1206S,(No0906S,(No0910S,No1202S))))),((No0909S,(No1208S,No1007S)),(No0912S,No1103S)),No305); ((((((No0910S,No1202S),(No1206S,No0906S)),No0908S),((No304,No0913S),No306)),(((No1007S,(No0909S,No1208S)),No0912S),No1103S)),No1114S,No305); ((No0908S,((((No304,No0913S),No1114S),No306),((No0910S,No1202S),(No1206S,No0906S)))),((No1007S,(No0909S,No1208S)),(No0912S,No1103S)),No305); ((((No0908S,((No0906S,(No0910S,No1202S)),No1206S)),((No304,No0913S),No306)),((No0912S,No1103S),(No1007S,(No0909S,No1208S)))),No1114S,No305); (((No1007S,(No0909S,No1208S)),((((No0906S,(No0910S,No1202S)),(No1206S,No0908S)),((No304,No0913S),No306)),(No0912S,No1103S))),No1114S,No305); (((No1007S,(No0909S,No1208S)),((((No0906S,(No0910S,No1202S)),(No1206S,No0908S)),((No304,No0913S),No306)),(No0912S,No1103S))),No1114S,No305); (((((No1206S,(No0906S,(No0910S,No1202S))),No0908S),((No304,No0913S),No306)),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No1114S,No305); ((((No1007S,(No0909S,No1208S)),(No1103S,No0912S)),((No306,(No304,No0913S)),((No1206S,(No0906S,(No0910S,No1202S))),No0908S))),No1114S,No305); ((((No1007S,(No0909S,No1208S)),(No1103S,No0912S)),((No306,(No304,No0913S)),((No1206S,(No0906S,(No0910S,No1202S))),No0908S))),No1114S,No305); ((((No306,(No304,No0913S)),((No0906S,(No0910S,No1202S)),(No0908S,No1206S))),(((No1007S,(No0909S,No1208S)),No0912S),No1103S)),No1114S,No305); ((((No306,(No304,No0913S)),((No0906S,(No0910S,No1202S)),(No0908S,No1206S))),(((No1007S,(No0909S,No1208S)),No0912S),No1103S)),No1114S,No305); ((No0908S,(((((No1007S,(No0909S,No1208S)),No0912S),No1103S),(No306,(No1114S,(No304,No0913S)))),(No0906S,(No0910S,No1202S)))),No1206S,No305); (No1114S,((No306,(No304,No0913S)),(((((No1007S,(No0909S,No1208S)),No0912S),No1103S),No1206S),(No0908S,(No0906S,(No0910S,No1202S))))),No305); (No1114S,((No0912S,(No1103S,(No1007S,(No0909S,No1208S)))),((No0908S,(No1206S,(No0910S,(No0906S,No1202S)))),(No306,(No304,No0913S)))),No305); (No1114S,(((No1007S,(No0909S,No1208S)),(No0912S,No1103S)),(No0908S,((No306,No304),(No1206S,(No0906S,(No0913S,(No1202S,No0910S))))))),No305); (No1114S,((((((No1206S,(No0906S,(No0913S,(No1202S,No0910S)))),No0912S),(No1103S,No306)),No0908S),(No1007S,(No0909S,No1208S))),No304),No305); ((((No304,No1114S),No0913S),No306),(((No0909S,(No1208S,No1007S)),(No1103S,No0912S)),((No1206S,(No0906S,(No1202S,No0910S))),No0908S)),No305); ((((No1007S,(No0909S,No1208S)),(No1103S,No0912S)),(((No306,(No304,No0913S)),((No0910S,No1202S),No0906S)),(No1206S,No0908S))),No1114S,No305); ((No1103S,(No0912S,(No0909S,(No1208S,No1007S)))),((No1114S,(No306,(No304,No0913S))),((No1206S,((No0910S,No1202S),No0906S)),No0908S)),No305); (No1114S,((No306,(No304,No0913S)),(((No0910S,No1202S),No0906S),((((No1208S,(No1007S,No0909S)),No0912S),No1103S),(No0908S,No1206S)))),No305); (No1114S,(((((((No0908S,No1206S),No0906S),(No306,(No304,No0913S))),(No0910S,No1202S)),(No0909S,(No1208S,No1007S))),No0912S),No1103S),No305); (No1114S,((No0909S,(No1208S,No1007S)),((No0912S,No1103S),((No304,No0913S),(((No0908S,No1206S),(No0906S,(No0910S,No1202S))),No306)))),No305); (No1114S,((((No0906S,((No0910S,No1202S),No1206S)),No0908S),((No304,No0913S),No306)),(((No0909S,(No1208S,No1007S)),No0912S),No1103S)),No305); (No1114S,((((No0906S,((No0910S,No1202S),No1206S)),No0908S),((No304,No0913S),No306)),(((No0909S,(No1208S,No1007S)),No0912S),No1103S)),No305); (No1114S,((((No0906S,((No0910S,No1202S),No1206S)),No0908S),((No304,No0913S),No306)),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No305); (No1114S,((((No0906S,((No0910S,No1202S),No1206S)),No0908S),((No304,No0913S),No306)),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No305); (No1114S,((No0912S,No1103S),((((((No0906S,No0910S),No1202S),No1206S),No0908S),((No304,No0913S),No306)),(No1007S,(No0909S,No1208S)))),No305); (No1114S,((No1103S,(No0912S,(No0909S,(No1208S,No1007S)))),(((No0913S,No304),No306),(No0908S,(No1206S,((No1202S,No0910S),No0906S))))),No305); (No1114S,((No1103S,No0912S),((No0909S,(No1208S,No1007S)),(((No0913S,No304),No306),(No0908S,(No1206S,((No1202S,No0910S),No0906S)))))),No305); ((((No0913S,No304),No306),No1114S),(((No1103S,No0912S),((No0909S,No1208S),No1007S)),(No0908S,(No1206S,((No1202S,No0910S),No0906S)))),No305); (No1114S,(((No0912S,No1103S),((No0909S,No1208S),No1007S)),(No0908S,((No0906S,(No1206S,(No1202S,No0910S))),((No0913S,No304),No306)))),No305); (No1114S,((No0912S,No1103S),(((No0909S,No1208S),No1007S),(((No0906S,(No1202S,No0910S)),No1206S),(((No0913S,No304),No306),No0908S)))),No305); (No1114S,((((No0913S,No304),No306),(No0908S,((No0906S,(No1202S,No0910S)),No1206S))),((No0912S,No1103S),((No0909S,No1208S),No1007S))),No305); (No1114S,((((No0913S,No304),No306),(No0908S,((No0906S,(No1202S,No0910S)),No1206S))),((No0912S,No1103S),((No0909S,No1208S),No1007S))),No305); (No1114S,((((No0913S,No304),No306),(((No0906S,(No1202S,No0910S)),(No1206S,No0908S)),(No1103S,((No0909S,No1208S),No1007S)))),No0912S),No305); (No1114S,(((No0912S,No1103S),((No0909S,No1208S),No1007S)),((No0913S,(No304,No306)),(No0908S,((No0906S,(No1202S,No0910S)),No1206S)))),No305); (No1114S,(((No0912S,No1103S),((No0909S,No1208S),No1007S)),(((No306,(No0913S,No304)),(No0906S,(No1206S,No0908S))),(No1202S,No0910S))),No305); (No1114S,(No304,((No0913S,No306),(((No1007S,(No0909S,No1208S)),(No0912S,No1103S)),((No1206S,((No0910S,No1202S),No0906S)),No0908S)))),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No0909S,No1208S))),(((No0906S,(No1206S,(No0910S,No1202S))),No0908S),((No304,No0913S),No306))),No305); (No1114S,((No0912S,No1103S),((No0909S,(No1208S,No1007S)),(((No0906S,(No1202S,No0910S)),(No0908S,No1206S)),((No304,No0913S),No306)))),No305); (No1114S,(((No1206S,((No1202S,No0910S),No0906S)),(No0908S,((No304,No0913S),No306))),((No0912S,No1103S),(No1208S,(No1007S,No0909S)))),No305); (No1114S,(((No1206S,((No1202S,No0910S),No0906S)),(No0908S,((No304,No0913S),No306))),((No0912S,No1103S),((No1208S,No0909S),No1007S))),No305); (No1114S,(((No1206S,((No1202S,No0910S),No0906S)),(No0908S,((No304,No0913S),No306))),((No0912S,No1103S),((No1208S,No0909S),No1007S))),No305); (No1114S,(((No1206S,((No1202S,No0910S),No0906S)),(No0908S,((No304,No0913S),No306))),((No0912S,No1103S),((No1208S,No0909S),No1007S))),No305); (No1114S,(((No0906S,((No0908S,No1206S),(No1202S,No0910S))),((No304,No0913S),No306)),((No0912S,No1103S),((No1208S,No0909S),No1007S))),No305); (No1114S,(No304,((No0913S,No306),(No0908S,(((((No1208S,No0909S),No1007S),No0912S),No1103S),(No1206S,((No1202S,No0910S),No0906S)))))),No305); (No1114S,(((No304,No0913S),No306),((((No1202S,No0910S),No0906S),No1206S),(No0908S,((((No1208S,No0909S),No1007S),No0912S),No1103S)))),No305); (No1114S,((((No304,No0913S),No306),((No1206S,No0908S),((No0910S,No1202S),No0906S))),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No305); (No1114S,((No0912S,No1103S),(((((No0910S,No1202S),(No1206S,No0906S)),No0908S),((No304,No0913S),No306)),(No0909S,(No1208S,No1007S)))),No305); (No1114S,((((No0906S,(No1202S,No0910S)),(No1206S,No0908S)),((No304,No0913S),No306)),((No0909S,(No1208S,No1007S)),(No0912S,No1103S))),No305); (No1114S,((((No0906S,(No1202S,No0910S)),(No1206S,No0908S)),((No304,No0913S),No306)),((No0909S,(No1208S,No1007S)),(No0912S,No1103S))),No305); (No1114S,(((No1206S,((No1202S,No0910S),No0906S)),(No0908S,((No304,No0913S),No306))),(No0912S,(No1103S,(No0909S,(No1208S,No1007S))))),No305); (No1114S,(((No304,No0913S),No306),(((No0909S,(No1208S,No1007S)),(No0912S,No1103S)),((No0908S,No1206S),((No1202S,No0910S),No0906S)))),No305); (No1114S,((No1208S,(No1007S,No0909S)),((No0912S,No1103S),(No306,((No0908S,((No1202S,No0910S),((No304,No0913S),No1206S))),No0906S)))),No305); (((No0912S,((No1007S,(No0909S,No1208S)),No1103S)),((No1206S,((No1202S,No0910S),No0906S)),(No0908S,((No304,No0913S),No306)))),No1114S,No305); ((((No0912S,No1103S),((((No1202S,No0910S),No0906S),(No0908S,No1206S)),((No304,No0913S),No306))),(No1007S,(No0909S,No1208S))),No1114S,No305); (No1114S,((No0912S,No1103S),((((No0908S,No1206S),((No1202S,No0910S),No0906S)),((No304,No0913S),No306)),(No0909S,(No1208S,No1007S)))),No305); ((((((No0908S,(No0909S,(No1007S,No1208S))),((No0906S,(No0910S,No1202S)),No1206S)),((No0913S,No304),No306)),No0912S),No1103S),No1114S,No305); (((((No0910S,No1202S),No0906S),(((No0913S,No304),No306),(No0908S,No1206S))),((No1103S,No0912S),(No0909S,(No1007S,No1208S)))),No1114S,No305); (((((No0910S,No1202S),No0906S),(((No0913S,No304),No306),(No0908S,No1206S))),((No1103S,No0912S),(No0909S,(No1007S,No1208S)))),No1114S,No305); (((No1103S,No0912S),((No0909S,(No1007S,No1208S)),(((No0913S,No304),No306),((No0908S,No1206S),((No0910S,No1202S),No0906S))))),No1114S,No305); (((((No0913S,No304),No306),((No0908S,No1206S),((No0910S,No1202S),No0906S))),((No1103S,No0912S),(No1007S,(No1208S,No0909S)))),No1114S,No305); (((No1103S,No0912S),((No0909S,(No1007S,No1208S)),((((No0913S,(No0910S,No1202S)),No0906S),(No304,(No0908S,No1206S))),No306))),No1114S,No305); (((((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),((No0913S,No304),No306)),((No1103S,No0912S),(No0909S,(No1007S,No1208S)))),No1114S,No305); (((((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),((No0913S,No304),No306)),((No1103S,No0912S),(No0909S,(No1007S,No1208S)))),No1114S,No305); (((No1103S,No0912S),((No0909S,(No1007S,No1208S)),(((((No0910S,No1202S),No0906S),No1206S),No0908S),((No0913S,No304),No306)))),No1114S,No305); (((No0913S,No304),(No306,(((No1103S,No0912S),(No1007S,(No1208S,No0909S))),(((No0910S,No1202S),No0906S),(No1206S,No0908S))))),No1114S,No305); (((No0912S,No1103S),((((No0913S,No304),No306),(No0908S,(No0906S,((No0910S,No1202S),No1206S)))),(No1208S,(No0909S,No1007S)))),No1114S,No305); (((((No0913S,No304),No306),(No0908S,(No1206S,(No0906S,(No0910S,No1202S))))),((No0909S,(No1007S,No1208S)),(No0912S,No1103S))),No1114S,No305); (((((No0913S,No304),No306),((No0906S,(No0910S,No1202S)),(No0908S,No1206S))),((((No1007S,No1208S),No0912S),No1103S),No0909S)),No1114S,No305); ((((No1208S,(No0909S,No1007S)),(No1103S,No0912S)),((No0913S,(No1114S,No304)),No306)),((No0908S,No1206S),(No0906S,(No0910S,No1202S))),No305); (No1114S,(((No1103S,No0912S),(No1007S,(No1208S,No0909S))),(((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),((No0913S,No304),No306))),No305); (No1114S,(((No1103S,No0912S),(No1007S,(No1208S,No0909S))),((No0908S,(No1206S,(No0906S,(No0910S,No1202S)))),((No0913S,No304),No306))),No305); ((No1007S,(No1208S,No0909S)),((No1103S,((No0908S,(No1206S,(No0906S,(No0910S,No1202S)))),No0912S)),((No0913S,(No1114S,No304)),No306)),No305); ((No304,((No1206S,(No0906S,(No0913S,(No0910S,No1202S)))),((((No1103S,No0912S),(No0909S,(No1007S,No1208S))),No0908S),No306))),No1114S,No305); ((No0912S,((((No304,No0913S),No306),((No0908S,No1206S),(No0906S,(No0910S,((No1007S,(No1208S,No0909S)),No1202S))))),No1103S)),No1114S,No305); ((((No1202S,No0910S),(((No304,No0913S),No306),((No0908S,No1206S),No0906S))),((No0909S,(No1007S,No1208S)),(No1103S,No0912S))),No1114S,No305); ((((No306,(No304,No0913S)),(((No0910S,No1202S),No0906S),(No0908S,No1206S))),(((No1007S,(No1208S,No0909S)),No1103S),No0912S)),No1114S,No305); ((((No306,(No304,No0913S)),(((No0910S,No1202S),No0906S),(No0908S,No1206S))),(((No1007S,(No1208S,No0909S)),No1103S),No0912S)),No1114S,No305); (((((((No0910S,No1202S),No0906S),No1206S),(No306,(No304,No0913S))),No0908S),((No1007S,(No1208S,No0909S)),(No1103S,No0912S))),No1114S,No305); (((((((No0910S,No1202S),No0906S),No1206S),(No306,(No304,No0913S))),No0908S),((No1007S,(No1208S,No0909S)),(No1103S,No0912S))),No1114S,No305); (((((No0910S,No1202S),No0906S),(No0908S,No1206S)),(No306,(No304,No0913S))),(((No0909S,(No1007S,(No1208S,No1114S))),No0912S),No1103S),No305); (No1114S,((No306,(No304,No0913S)),(((No0906S,(No0910S,No1202S)),No1206S),((((No1208S,(No1007S,No0909S)),No0912S),No1103S),No0908S))),No305); (No1114S,((((No1208S,(No1007S,No0909S)),No0912S),No1103S),(((No0910S,No1202S),No0908S),((No306,(No304,No0913S)),(No1206S,No0906S)))),No305); (No1114S,(((No0909S,(No1208S,No1007S)),(No0912S,No1103S)),((No306,(No304,No0913S)),((No0908S,No1206S),(No0906S,(No0910S,No1202S))))),No305); (No1114S,((No0912S,No1103S),(((No304,((No0906S,(No0910S,No1202S)),No0913S)),((No0908S,No1206S),No306)),(No1007S,(No0909S,No1208S)))),No305); (No1114S,((((No1007S,(No0909S,No1208S)),No0912S),No1103S),(No0908S,(((No0913S,No304),No306),(No1206S,((No1202S,No0910S),No0906S))))),No305); (No1114S,((No0912S,No1103S),((No0909S,(No1007S,No1208S)),((No306,(No304,No0913S)),((No0906S,(No1202S,No0910S)),(No1206S,No0908S))))),No305); (No1114S,(((No0908S,((No0906S,(No1202S,No0910S)),No1206S)),(No306,(No304,No0913S))),((No0912S,No1103S),(No1007S,(No1208S,No0909S)))),No305); (No1114S,((((No0906S,(No1202S,No0910S)),(No1206S,No0908S)),(No306,(No304,No0913S))),((No0912S,No1103S),(No0909S,(No1007S,No1208S)))),No305); (No1114S,((No0912S,No1103S),((No1007S,(No1208S,No0909S)),(((No0906S,(No1202S,No0910S)),(No1206S,No0908S)),(No0913S,(No306,No304))))),No305); ((((No0906S,(No1202S,No0910S)),(No1206S,No0908S)),(No306,((No1114S,No304),No0913S))),((No0912S,No1103S),(No0909S,(No1007S,No1208S))),No305); ((No304,(((No0906S,((No1202S,No0910S),No0913S)),(((No0912S,No1103S),(No1208S,(No0909S,No1007S))),(No1206S,No0908S))),No306)),No1114S,No305); (((No0912S,No1103S),((No0908S,(No1206S,(No0906S,(No1202S,No0910S)))),(No306,(No0913S,No304)))),((No1007S,(No1208S,No0909S)),No1114S),No305); (((No1206S,No0908S),((No306,(No0913S,No304)),((No1202S,No0910S),No0906S))),(No1114S,((No1103S,No0912S),(No1007S,(No1208S,No0909S)))),No305); (No1114S,(((No0908S,((No306,(No0913S,No304)),((No1202S,No0910S),(No1206S,No0906S)))),(No0912S,No1103S)),(No1007S,(No1208S,No0909S))),No305); (No1114S,((No0908S,(((No306,(No0913S,No304)),((No1202S,No0910S),No1206S)),No0906S)),((No0909S,(No1007S,No1208S)),(No0912S,No1103S))),No305); (((No0912S,No1103S),(No0909S,(No1007S,No1208S))),((No0908S,((No0906S,(No1202S,No0910S)),No1206S)),(No1114S,(No306,(No304,No0913S)))),No305); (No1114S,(((No0908S,(((No0906S,No0910S),No1202S),No1206S)),((No0912S,No1103S),(No0909S,(No1007S,No1208S)))),(No306,(No304,No0913S))),No305); (No1114S,((((No0910S,(No0906S,(No0908S,No1206S))),No1202S),((No0912S,No1103S),(No1007S,(No1208S,No0909S)))),(No304,(No0913S,No306))),No305); (No1114S,((No0912S,No1103S),((No0909S,(No1007S,No1208S)),((((No304,No0913S),No306),No0908S),(No1206S,((No1202S,No0910S),No0906S))))),No305); (((No0912S,No1103S),(No1208S,(No0909S,No1007S))),((No0908S,(No1206S,((No1202S,No0910S),No0906S))),(((No1114S,No304),No0913S),No306)),No305); ((((No0912S,No1103S),(No1007S,(No1208S,No0909S))),((No1206S,((No1202S,No0910S),No0906S)),(((No304,No0913S),No306),No0908S))),No1114S,No305); (((No0912S,No1103S),((No0909S,(No1007S,No1208S)),((No306,((No0906S,(No1206S,(No1202S,No0910S))),No0908S)),(No304,No0913S)))),No1114S,No305); (((((No306,(No1103S,((No1202S,No0910S),No0913S))),((No0906S,(No1208S,(No0909S,No1007S))),(No0908S,No1206S))),No0912S),No304),No1114S,No305); ((((No306,((No0912S,No1103S),(No0908S,No1206S))),(No0906S,((No1202S,No0910S),No0913S))),No304),((No1007S,(No1208S,No0909S)),No1114S),No305); (No1114S,(((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),(((No0913S,No304),No306),((No0906S,(No1202S,No0910S)),(No0908S,No1206S)))),No305); (No1114S,(((No1007S,(No1208S,No0909S)),(No1103S,No0912S)),(((No0913S,No304),No306),(No0908S,((No1206S,No0906S),(No0910S,No1202S))))),No305); (No1114S,((No0909S,(No1007S,No1208S)),((No1103S,No0912S),(((No0913S,No304),No306),(No0908S,(No0906S,((No0910S,No1202S),No1206S)))))),No305); (No1114S,(((No1103S,No0912S),(No1007S,(No1208S,No0909S))),(((No0906S,(No0910S,No1202S)),((No0913S,No304),No306)),(No0908S,No1206S))),No305); (No1114S,(((No1103S,No0912S),(No1007S,(No1208S,No0909S))),(((No0906S,(No0910S,No1202S)),((No0913S,No304),No306)),(No0908S,No1206S))),No305); (No1114S,(((No1103S,No0912S),(No0909S,(No1007S,No1208S))),(((No0913S,No304),No306),((No0908S,No1206S),(No0906S,(No0910S,No1202S))))),No305); (No1114S,(((No1103S,No0912S),(No1007S,(No1208S,No0909S))),((((No0913S,No304),No306),(((No0910S,No1202S),No0906S),No1206S)),No0908S)),No305); (No1114S,(((No1103S,No0912S),(No0909S,(No1007S,No1208S))),(((((No0913S,No304),No306),(No0910S,No1202S)),(No1206S,No0906S)),No0908S)),No305); (No1114S,(((No1103S,No0912S),(No0909S,(No1007S,No1208S))),((((No0913S,No304),No306),(No0906S,(No0910S,No1202S))),(No1206S,No0908S))),No305); (No1114S,(((No1103S,No0912S),(No0909S,(No1007S,No1208S))),((((No0913S,No304),No306),(No0906S,(No0910S,No1202S))),(No1206S,No0908S))),No305); (No1114S,(No304,(No0913S,(No306,(((No1206S,No0908S),(No0906S,(No0910S,No1202S))),((No1103S,No0912S),(No1007S,(No1208S,No0909S))))))),No305); ((((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),((No0908S,(No1206S,(No0906S,(No0910S,No1202S)))),((No0913S,No304),No306))),No1114S,No305); ((((No0909S,(No1007S,No1208S)),(No0912S,No1103S)),((No1206S,((No0908S,No0906S),(No0910S,No1202S))),((No0913S,No304),No306))),No1114S,No305); ((No0912S,((((No0906S,(No0910S,No1202S)),((No1206S,No0908S),((No0913S,No304),No306))),(No0909S,(No1007S,No1208S))),No1103S)),No1114S,No305); (((No0906S,(((No1206S,No0908S),((No0910S,No1202S),(No0913S,No304))),No306)),((No1103S,No0912S),(No0909S,(No1007S,No1208S)))),No1114S,No305); (((No1103S,No0912S),((No1007S,(No1208S,No0909S)),(((No1202S,(No0906S,No0910S)),(No306,(No0913S,No304))),(No1206S,No0908S)))),No1114S,No305); (((No0909S,(No1007S,No1208S)),((((No0906S,(No0913S,(No0910S,No1202S))),(No306,No304)),(No1206S,No0908S)),(No1103S,No0912S))),No1114S,No305); (((((No0906S,(No0910S,No1202S)),(No306,(No0913S,No304))),(No1206S,No0908S)),((No0909S,(No1007S,No1208S)),(No0912S,No1103S))),No1114S,No305); (((((((No0906S,(No0910S,No1202S)),No0912S),No1103S),(No0908S,No1206S)),(No306,(No0913S,No304))),(No1007S,(No1208S,No0909S))),No1114S,No305); (((((No306,(No0913S,No304)),((No0910S,No1202S),((No0908S,No1206S),No0906S))),No1103S),No0912S),((No0909S,(No1007S,No1208S)),No1114S),No305); (((((No1206S,(No0906S,(No0910S,No1202S))),No0908S),(No306,(No0913S,No304))),((No1103S,No0912S),(No0909S,(No1007S,No1208S)))),No1114S,No305); ((((No0909S,(No1007S,No1208S)),(No0912S,No1103S)),(((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),(No306,(No304,No0913S)))),No1114S,No305); ((((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),((No0908S,(No1206S,(No0906S,(No0910S,No1202S)))),(No306,(No304,No0913S)))),No1114S,No305); ((((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),(((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),(No306,(No304,No0913S)))),No1114S,No305); ((((No1208S,(No0909S,No1007S)),(No0912S,No1103S)),((((No0906S,(No0910S,No1202S)),No1206S),(No306,(No304,No0913S))),No0908S)),No1114S,No305); ((((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),(((No0906S,(No0910S,No1202S)),No1206S),((No306,(No304,No0913S)),No0908S))),No1114S,No305); ((((No0909S,(No1007S,No1208S)),(No0912S,No1103S)),(No306,((No304,No0913S),(No0908S,((No0906S,(No0910S,No1202S)),No1206S))))),No1114S,No305); (((No0912S,No1103S),((((No304,No0913S),No306),(No0908S,No1206S)),((No0906S,(No0910S,No1202S)),(No1007S,(No1208S,No0909S))))),No1114S,No305); (((No0909S,(No1007S,No1208S)),(((((No304,No0913S),No306),No0908S),(No1206S,(No0906S,(No0910S,No1202S)))),(No0912S,No1103S))),No1114S,No305); (((((No304,No0913S),No306),((No0908S,No1206S),(No0906S,(No0910S,No1202S)))),((No0909S,(No1007S,No1208S)),(No1103S,No0912S))),No1114S,No305); (((((No1206S,(No0906S,(No0910S,No1202S))),No0908S),((No304,No0913S),No306)),((No1007S,(No1208S,No0909S)),(No1103S,No0912S))),No1114S,No305); (No1114S,((((No0906S,(No0910S,No1202S)),((((No304,No0913S),No306),No0908S),(((No1208S,No1007S),No0909S),No1206S))),No1103S),No0912S),No305); ((No0909S,(No1208S,No1007S)),((No1103S,((No0908S,No0912S),((No0906S,(No0910S,No1202S)),No1206S))),(No1114S,((No304,No0913S),No306))),No305); (No1114S,((((No304,No0913S),No306),((No0906S,(No0910S,No1202S)),(No0908S,No1206S))),(No0912S,(No1103S,(No0909S,(No1208S,No1007S))))),No305); (No1114S,(((((No0906S,No1206S),(No1202S,No0910S)),(No0912S,(No1103S,(No1007S,(No0909S,No1208S))))),No0908S),((No304,No0913S),No306)),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No0909S,No1208S))),((((No304,No0913S),No306),((No1202S,No0910S),No0906S)),(No0908S,No1206S))),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No0909S,No1208S))),((((No304,No0913S),No306),((No1202S,No0910S),No0906S)),(No0908S,No1206S))),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No0909S,No1208S))),((((No304,No0913S),No306),((No1202S,No0910S),No0906S)),(No0908S,No1206S))),No305); (((No1007S,(No0909S,No1208S)),No1114S),((No0912S,No1103S),(((No304,No0913S),No306),((No1206S,((No1202S,No0910S),No0906S)),No0908S))),No305); (No1114S,((No0912S,No1103S),((No0908S,(No1206S,((No1202S,No0910S),No0906S))),((No1007S,(No0909S,No1208S)),((No304,No0913S),No306)))),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No0909S,No1208S))),(((No304,No0913S),No306),(No0908S,(No0906S,(No1206S,(No1202S,No0910S)))))),No305); (No1114S,((((No1208S,No1007S),No0909S),(No0912S,No1103S)),(((No1206S,No0908S),No0906S),((No0910S,No1202S),((No304,No0913S),No306)))),No305); (No1114S,(((No1007S,(No0909S,No1208S)),(No0912S,No1103S)),(((No1206S,No0908S),(No0906S,(No0913S,(No0910S,No1202S)))),(No304,No306))),No305); (No1114S,((No0912S,No1103S),(No306,((No1007S,(No0909S,No1208S)),((No0908S,No304),(No1206S,(No0906S,((No0910S,No1202S),No0913S))))))),No305); (No1114S,(((No1007S,(No0909S,No1208S)),(No0912S,No1103S)),((((No0913S,No304),No306),(No0906S,(No0910S,No1202S))),(No1206S,No0908S))),No305); (No1114S,((No0912S,No1103S),((((No0913S,No304),No306),(((No0906S,(No0910S,No1202S)),No1206S),No0908S)),(No0909S,(No1208S,No1007S)))),No305); (No1114S,((((No0913S,No304),No306),(((No0906S,(No0910S,No1202S)),No1206S),No0908S)),((No1208S,(No1007S,No0909S)),(No0912S,No1103S))),No305); (No1114S,((((No0910S,No1202S),No0906S),(((No0913S,No304),No306),(No1206S,No0908S))),((No1208S,(No1007S,No0909S)),(No0912S,No1103S))),No305); (No1114S,((((No0910S,No1202S),No0906S),(((No0913S,No304),No306),(No1206S,No0908S))),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No305); (No1114S,((((No0910S,No1202S),No0906S),(((No0913S,No304),No306),(No1206S,No0908S))),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No305); ((No0908S,(((No1007S,(No0909S,No1208S)),(No0912S,No1103S)),(No1206S,((No0910S,No1202S),No0906S)))),(No1114S,((No0913S,No304),No306)),No305); (No1114S,(((No0912S,No1103S),((No1208S,No1007S),No0909S)),(((No304,No0913S),No306),((No1206S,No0908S),(No0906S,(No0910S,No1202S))))),No305); (No1114S,(((No0912S,No1103S),((No1208S,No1007S),No0909S)),(((No304,No0913S),No306),((No1206S,No0908S),(No0906S,(No0910S,No1202S))))),No305); (No1114S,(((No0912S,No1103S),((No1208S,No1007S),No0909S)),(((No304,No0913S),No306),(No0908S,((No0906S,(No0910S,No1202S)),No1206S)))),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No0909S,No1208S))),(((No304,No0913S),No306),(No0908S,(((No0906S,No1202S),No1206S),No0910S)))),No305); (No1114S,((No0912S,No1103S),((((No304,No0913S),No306),(No0909S,(No1208S,No1007S))),(No0908S,((No0906S,(No1202S,No0910S)),No1206S)))),No305); ((((No0906S,(No1202S,No0910S)),(No1206S,No0908S)),((No1114S,(No304,No0913S)),No306)),(No1103S,((No0909S,(No1208S,No1007S)),No0912S)),No305); ((((No0906S,(No1202S,No0910S)),(No1206S,No0908S)),((No306,(No0913S,No304)),No1114S)),(No1103S,((No0909S,(No1208S,No1007S)),No0912S)),No305); (No1114S,((((No0906S,(No1202S,No0910S)),(No1206S,No0908S)),(No306,(No0913S,No304))),((No1208S,(No1007S,No0909S)),(No0912S,No1103S))),No305); (No1114S,(((No0906S,(No1206S,No0908S)),(No306,(((No1202S,No0910S),No0913S),No304))),((No0909S,(No1208S,No1007S)),(No0912S,No1103S))),No305); (No1114S,(((No0913S,No304),No306),(((No1007S,(No0909S,No1208S)),(No0912S,No1103S)),(No0908S,(((No1202S,No0910S),No0906S),No1206S)))),No305); (No1114S,(((No0908S,(No1206S,(No0906S,(No0910S,No1202S)))),((No0913S,No304),No306)),((No1007S,(No1208S,No0909S)),(No1103S,No0912S))),No305); (No1114S,(((No0908S,(No1206S,(No0906S,(No0910S,No1202S)))),((No0913S,No304),No306)),((No0909S,(No1007S,No1208S)),(No1103S,No0912S))),No305); (No1114S,(((No0908S,(No1206S,(No0906S,(No0910S,No1202S)))),((No0913S,No304),No306)),((No1007S,(No1208S,No0909S)),(No1103S,No0912S))),No305); (No1114S,((No0909S,(No1007S,No1208S)),((No1103S,No0912S),(No306,((No0908S,(No1206S,(No0906S,(No0913S,(No0910S,No1202S))))),No304)))),No305); (No1114S,((No306,((No0913S,No304),((No1206S,(No0906S,(No0910S,No1202S))),No0908S))),((No0909S,(No1007S,No1208S)),(No0912S,No1103S))),No305); (No1114S,((((No1206S,(No0906S,(No0910S,No1202S))),No0908S),(No306,(No304,No0913S))),((No0909S,(No1007S,No1208S)),(No0912S,No1103S))),No305); (No1114S,((No0909S,(No1007S,No1208S)),((No0912S,No1103S),(((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),(No306,(No304,No0913S))))),No305); (No1114S,((((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),(No306,(No304,No0913S))),(((No1208S,(No0909S,No1007S)),No0912S),No1103S)),No305); (No1114S,((((No1206S,((No0910S,No1202S),No0906S)),No0908S),(No306,(No304,No0913S))),((No0909S,(No1007S,No1208S)),(No0912S,No1103S))),No305); (No1114S,((((No1206S,((No0910S,No1202S),No0906S)),No0908S),(No306,(No304,No0913S))),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No305); (No1114S,(((No0906S,((No0910S,No1202S),((No304,No306),No0913S))),(No0908S,No1206S)),((No0909S,(No1007S,No1208S)),(No1103S,No0912S))),No305); (No1114S,((((No304,No306),No0913S),((No0906S,(No0910S,No1202S)),(No0908S,No1206S))),((No1208S,(No0909S,No1007S)),(No1103S,No0912S))),No305); (No1114S,(No304,(((((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),((No0909S,(No1007S,No1208S)),(No1103S,No0912S))),No306),No0913S)),No305); (No1114S,((((No0909S,(No1007S,No1208S)),No0912S),No1103S),((No306,((No0913S,No304),((No1202S,(No1206S,No0910S)),No0906S))),No0908S)),No305); (No1114S,((((No1007S,(No1208S,No0909S)),No0912S),No1103S),((No306,(No0913S,No304)),(((No1202S,No0910S),No0906S),(No0908S,No1206S)))),No305); (No1114S,((No0912S,(No1208S,(No0909S,(No1103S,No1007S)))),(((No306,(No0913S,No304)),(No1206S,((No1202S,No0910S),No0906S))),No0908S)),No305); (No1114S,(((No0912S,(No0909S,(No1007S,No1208S))),No1103S),((((No1202S,No0910S),No0906S),(No1206S,No0908S)),(No306,(No0913S,No304)))),No305); (No1114S,((No0912S,((((((No1202S,No0910S),No1206S),No0906S),((No0913S,No304),No0908S)),No306),(No1007S,(No1208S,No0909S)))),No1103S),No305); ((No0909S,((No1114S,No1007S),No1208S)),((No0912S,No1103S),((No306,(No0913S,No304)),(No0908S,(No1206S,(No0906S,(No1202S,No0910S)))))),No305); ((((No0909S,(No1007S,No1208S)),(No0912S,No1103S)),(((No1206S,(No0906S,(No1202S,No0910S))),No0908S),(No306,(No0913S,No304)))),No1114S,No305); (((No1103S,(No0912S,(No1007S,(No0909S,No1208S)))),(((No306,(No304,No0913S)),((No0906S,(No0910S,No1202S)),No1206S)),No0908S)),No1114S,No305); ((((No0909S,(No1208S,No1007S)),(((No0906S,(No0910S,No1202S)),No1206S),(No0908S,(No306,(No304,No0913S))))),(No0912S,No1103S)),No1114S,No305); (((((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),(No306,(No304,No0913S))),((No0912S,No1103S),(No1208S,(No1007S,No0909S)))),No1114S,No305); (((No0912S,No1103S),((No0909S,(No1208S,No1007S)),((((No0906S,(No0910S,No1202S)),No1206S),No0908S),(No306,(No304,No0913S))))),No1114S,No305); ((((((No0906S,(No0913S,(No0910S,No1202S))),(No1206S,No0908S)),No306),((No0912S,No1103S),(No1007S,(No0909S,No1208S)))),No304),No1114S,No305); (((No0912S,No1103S),((No0909S,(No1208S,No1007S)),(((No304,No306),(No1206S,No0908S)),(No0906S,(No0913S,(No0910S,No1202S)))))),No1114S,No305); (((((No0910S,(No0906S,No1202S)),(No1206S,No0908S)),((No304,No0913S),No306)),((No0912S,No1103S),(No1007S,(No0909S,No1208S)))),No1114S,No305); ((((No306,((((No0910S,No1202S),No1206S),No0906S),(No304,No0913S))),No0908S),((No0912S,No1103S),(No1007S,(No0909S,No1208S)))),No1114S,No305); (((No0912S,No1103S),(((No0909S,No1208S),No1007S),((No0908S,(No1206S,(No0906S,(No0910S,No1202S)))),((No304,No0913S),No306)))),No1114S,No305); (((No0908S,(No1206S,(No0906S,(No0910S,No1202S)))),((No0912S,No1103S),(No0909S,(No1208S,No1007S)))),(((No304,No0913S),No306),No1114S),No305); (((No1103S,(No0912S,(No1007S,(No0909S,No1208S)))),(((No306,(No304,No0913S)),((No0906S,(No0910S,No1202S)),No1206S)),No0908S)),No1114S,No305); ((No1103S,(No0912S,(No0909S,(No1208S,No1007S)))),((No306,(No1114S,(No304,No0913S))),((No0906S,(No0910S,No1202S)),(No0908S,No1206S))),No305); ((No1103S,(No0912S,((No0909S,(No1208S,No1007S)),((No1206S,(No306,(No304,No0913S))),((No0906S,(No0910S,No1202S)),No0908S))))),No1114S,No305); (((((No0908S,No1206S),(No306,(No304,No0913S))),(No0906S,(No0910S,No1202S))),((No1103S,No0912S),(No1007S,(No0909S,No1208S)))),No1114S,No305); ((((No306,((No304,No0913S),No0908S)),((No1206S,No0906S),(No0910S,No1202S))),((No1103S,No0912S),(No1007S,(No0909S,No1208S)))),No1114S,No305); ((((No1103S,No0912S),(No1208S,(No1007S,No0909S))),(((No1206S,(No306,(No304,No0913S))),((No0908S,No1202S),No0906S)),No0910S)),No1114S,No305); ((No304,((No306,(((No1007S,(No0909S,No1208S)),(No1103S,No0912S)),((No1206S,No0908S),((No0910S,No1202S),No0906S)))),No0913S)),No1114S,No305); (((No1103S,(No0912S,(No0909S,(No1208S,No1007S)))),(No0908S,(((No0910S,No1202S),No0906S),No1206S))),(No1114S,((No0913S,No304),No306)),No305); (No1114S,(((No0908S,(((No0910S,No1202S),No0906S),No1206S)),(((No1007S,(No0909S,No1208S)),No0912S),No1103S)),((No0913S,No304),No306)),No305); (No1114S,((((No0908S,((No0913S,(No0910S,No1202S)),No306)),(No1206S,(((No1208S,(No1007S,No0909S)),No0912S),No1103S))),No0906S),No304),No305); (No1114S,(((No0908S,No1206S),((No1202S,No0910S),((No306,(No304,No0913S)),No0906S))),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No305); ((No0906S,(((No0908S,No1206S),(No1202S,No0910S)),(No306,(No304,No0913S)))),((No1114S,(No1007S,(No0909S,No1208S))),(No0912S,No1103S)),No305); (No1114S,((((No1007S,No0909S),No1208S),(No0912S,No1103S)),((No0908S,(No1206S,(No0906S,(No0913S,(No1202S,No0910S))))),(No306,No304))),No305); (No1114S,((((No1007S,(No0909S,No1208S)),(No0912S,No0908S)),((No1206S,(No0906S,(No1202S,No0910S))),No1103S)),(No306,(No0913S,No304))),No305); (((No0908S,(No306,(No1114S,(No0913S,No304)))),(No1206S,(No0906S,(No1202S,No0910S)))),((No1007S,(No0909S,No1208S)),(No0912S,No1103S)),No305); ((((No0908S,No1206S),(((No306,(No0913S,No304)),No0906S),(No1202S,No0910S))),(((No0909S,(No1208S,No1007S)),No0912S),No1103S)),No1114S,No305); (((((((No0908S,No1206S),(No0906S,(No1202S,No0910S))),(No306,(No0913S,No304))),(No1007S,(No0909S,No1208S))),No0912S),No1103S),No1114S,No305); (((((No0906S,(No1202S,No0910S)),(No0908S,No1206S)),((No0913S,No304),No306)),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No1114S,No305); (No1114S,((((No1206S,((No1202S,No0910S),No0906S)),(No0908S,((No0913S,No304),No306))),(No1208S,(No1007S,No0909S))),(No0912S,No1103S)),No305); (No1114S,(((No0912S,No1103S),(((No0913S,No304),No306),(No0908S,(No1206S,((No1202S,No0906S),No0910S))))),(No1007S,(No0909S,No1208S))),No305); (((((No0906S,(No1202S,No0910S)),(No0908S,No1206S)),((No0912S,No1103S),((No1208S,No1007S),No0909S))),(No306,(No0913S,No304))),No1114S,No305); ((No0912S,(No1103S,(No1007S,(No0909S,No1208S)))),((No306,(No1114S,(No0913S,No304))),((No0906S,(No1202S,No0910S)),(No0908S,No1206S))),No305); (((No1007S,(No0909S,No1208S)),(((No0913S,No306),No304),((No0912S,(No0906S,(No1202S,No0910S))),(No1103S,(No0908S,No1206S))))),No1114S,No305); (No1114S,((No0912S,No1103S),((No1007S,(No0909S,No1208S)),(((No0908S,No1206S),(No0906S,(No1202S,No0910S))),((No0913S,No304),No306)))),No305); (No1114S,((No304,No306),((((No0912S,No1103S),(No0909S,(No1208S,No1007S))),No0908S),(No1206S,(No0906S,(No0913S,(No1202S,No0910S)))))),No305); (No1114S,(No304,(No306,((((No0912S,No1103S),(No1007S,(No0909S,No1208S))),No0908S),(No1206S,(No0906S,(No0913S,(No1202S,No0910S))))))),No305); ((((No0912S,No1103S),(No0909S,(No1208S,No1007S))),(((No0913S,No304),No306),(No0908S,(No0906S,((No1202S,No0910S),No1206S))))),No1114S,No305); ((((No0912S,No1103S),(No1007S,(No0909S,No1208S))),(No0908S,(((No1206S,No0906S),(No0910S,No1202S)),((No0913S,No304),No306)))),No1114S,No305); ((((No0912S,No1103S),(No0909S,(No1208S,No1007S))),(((No0906S,(No0910S,No1202S)),((No0913S,No304),No306)),(No0908S,No1206S))),No1114S,No305); ((((No0912S,No1103S),(No0909S,(No1208S,No1007S))),(((No0913S,No304),No306),(No0908S,(No1206S,(No0906S,(No0910S,No1202S)))))),No1114S,No305); (((((No0909S,No1208S),No1007S),(No0912S,No1103S)),((No306,(No0913S,No304)),((No0906S,(No1202S,No0910S)),(No0908S,No1206S)))),No1114S,No305); (((No306,(No0913S,No304)),(((No1202S,No0910S),((((No0909S,No1208S),No1007S),(No0912S,No1103S)),(No0908S,No1206S))),No0906S)),No1114S,No305); (((No0909S,(No1208S,No1007S)),(((No306,(No0913S,No304)),((No1206S,(No0906S,(No1202S,No0910S))),No0908S)),(No0912S,No1103S))),No1114S,No305); ((No1114S,(No306,(No0913S,No304))),(((No1206S,(No0906S,(No1202S,No0910S))),No0908S),((No0912S,No1103S),(No1007S,(No0909S,No1208S)))),No305); ((((No0912S,No1103S),(No1007S,(No0909S,No1208S))),((No0908S,(No1206S,(No0906S,(No1202S,No0910S)))),(No306,(No0913S,No304)))),No1114S,No305); ((((No0912S,No1103S),(No1007S,(No0909S,No1208S))),((No0908S,(No1206S,(No0906S,(No1202S,No0910S)))),(No306,(No0913S,No304)))),No1114S,No305); ((((No0912S,No1103S),(No1007S,(No0909S,No1208S))),((No0908S,(No1206S,(No0906S,(No1202S,No0910S)))),(No306,(No0913S,No304)))),No1114S,No305); ((((No0912S,No1103S),(No1208S,(No1007S,No0909S))),((No0906S,(No1202S,No0910S)),((No1206S,No0908S),(No304,(No306,No0913S))))),No1114S,No305); ((No304,((((No0906S,((No0912S,No1103S),((No1007S,No0909S),No1208S))),(No1206S,No0908S)),No306),((No1202S,No0910S),No0913S))),No1114S,No305); (((((No0909S,No1208S),No1007S),((((No0906S,(No1202S,No0910S)),No1206S),No0908S),(No306,(No304,No0913S)))),(No0912S,No1103S)),No1114S,No305); (((((No0913S,No304),No306),(No0908S,((No0906S,(No0910S,No1202S)),No1206S))),(((No1007S,No1208S),No0909S),(No0912S,No1103S))),No1114S,No305); (((((No0913S,No304),No306),(No0908S,(No1206S,(No1202S,(No0906S,No0910S))))),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No1114S,No305); (((((No0913S,No304),No306),(No0908S,(No1206S,(No1202S,(No0906S,No0910S))))),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No1114S,No305); (((((No1206S,No0908S),(No0906S,(No1202S,No0910S))),((No0913S,No304),No306)),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No1114S,No305); (((((No1206S,No0908S),(No0906S,(No1202S,No0910S))),((No0913S,No304),No306)),((No0909S,(No1007S,No1208S)),(No0912S,No1103S))),No1114S,No305); (((((No0913S,No304),No306),((No1206S,(No0906S,(No1202S,No0910S))),No0908S)),((No0909S,(No1007S,No1208S)),(No0912S,No1103S))),No1114S,No305); (((No1208S,(No0909S,No1007S)),((No0912S,No1103S),(((No0913S,No304),No306),((No0906S,(No1202S,No0910S)),(No0908S,No1206S))))),No1114S,No305); (((No1007S,(No1208S,No0909S)),((No0912S,No1103S),((No0913S,No304),(No306,(No0908S,(No1206S,(No0906S,(No1202S,No0910S)))))))),No1114S,No305); (((No1208S,(No0909S,No1007S)),((No0912S,No1103S),(((No0906S,(No1202S,No0910S)),(No0908S,No1206S)),((No0913S,No304),No306)))),No1114S,No305); ((No1114S,((No0912S,No1103S),(No0908S,(((No0913S,No304),No306),(No1206S,(No0906S,(No1202S,No0910S))))))),(No1007S,(No0909S,No1208S)),No305); (((((No0913S,No304),No306),(No0908S,((No0906S,(No0910S,No1202S)),No1206S))),(((No1007S,No1208S),No0909S),(No0912S,No1103S))),No1114S,No305); ((((((No0913S,No304),No306),((No0910S,No1202S),(No1206S,No0908S))),No0906S),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No1114S,No305); ((((((No0913S,No304),No306),((No0910S,No1202S),(No1206S,No0908S))),No0906S),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No1114S,No305); (((((No0906S,(No0910S,No1202S)),No1206S),(No0908S,((No0913S,No304),No306))),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No1114S,No305); (((No0913S,(No306,(((No0906S,(No0910S,No1202S)),No1206S),(((No0909S,(No1007S,No1208S)),(No0912S,No1103S)),No0908S)))),No304),No1114S,No305); (((No0912S,No1103S),(No1206S,((No0906S,No0908S),((No0910S,No1202S),((No304,No0913S),No306))))),(No1114S,(No1007S,(No1208S,No0909S))),No305); (No1114S,(((No0912S,No1103S),(No0909S,(No1007S,No1208S))),(((No304,No0913S),No306),((No1206S,(No0906S,(No0910S,No1202S))),No0908S))),No305); (No1114S,(((No0912S,No1103S),(No0909S,(No1007S,No1208S))),(((No304,No0913S),No306),((No1206S,(No0906S,(No0910S,No1202S))),No0908S))),No305); (No1114S,(((No0912S,No1103S),(No0909S,(No1007S,No1208S))),(((No304,No0913S),No306),((No1206S,(No0906S,(No0910S,No1202S))),No0908S))),No305); (No1114S,((No0909S,(No1007S,No1208S)),((((No304,No0913S),No306),((No0906S,(No0910S,No1202S)),(No0908S,No1206S))),(No0912S,No1103S))),No305); (No1114S,((No1103S,(No0912S,(No1007S,(No0909S,No1208S)))),((((No304,No0913S),No306),(No1206S,No0908S)),(No0906S,(No0910S,No1202S)))),No305); (No1114S,(No1103S,(No0912S,(((((No304,No0913S),No306),No0908S),(No1206S,(No0906S,(No0910S,No1202S)))),(No0909S,(No1208S,No1007S))))),No305); (No1114S,((((No0909S,No1208S),No1007S),(No1103S,No0912S)),(((No304,No0913S),(No306,No0908S)),(No1206S,(No0906S,(No0910S,No1202S))))),No305); (No1114S,(((No0909S,(No1208S,No1007S)),(No1103S,No0912S)),((No0906S,(No0910S,No1202S)),(((No304,No0913S),No306),(No0908S,No1206S)))),No305); (No1114S,(((No0909S,(No1208S,No1007S)),(No1103S,No0912S)),((No0906S,(No0910S,No1202S)),(((No304,No0913S),No306),(No0908S,No1206S)))),No305); (No1114S,(((No1007S,(No0909S,No1208S)),(No1103S,No0912S)),((No0906S,((No0910S,No1202S),(No0908S,No1206S))),((No304,No0913S),No306))),No305); (No1114S,(((No0909S,(No1208S,No1007S)),(No1103S,No0912S)),(No306,((((No0910S,No1202S),(No304,No0913S)),No0906S),(No0908S,No1206S)))),No305); (No1114S,(((No0909S,(No1208S,No1007S)),(No1103S,No0912S)),(((No0908S,No1206S),((No1202S,No0910S),No0906S)),(No306,(No304,No0913S)))),No305); (((No0909S,(No1208S,No1007S)),(No1103S,No0912S)),(No1114S,((No1206S,((No1202S,No0910S),No0906S)),(No306,(No0908S,(No304,No0913S))))),No305); (No1114S,((No1007S,(No0909S,No1208S)),((((No1206S,((No1202S,No0910S),No0906S)),(No306,(No304,No0913S))),No0908S),(No0912S,No1103S))),No305); (No1114S,((((No1206S,(No0906S,(No0910S,No1202S))),No0908S),((No0913S,No304),No306)),(No1103S,(No0912S,((No1208S,No0909S),No1007S)))),No305); (No1114S,((((No1206S,(No0906S,(No0910S,No1202S))),No0908S),((No0913S,No304),No306)),(No1103S,(No0912S,((No1208S,No0909S),No1007S)))),No305); (No1114S,((((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),((No0913S,No304),No306)),(No1103S,(No0912S,(No0909S,(No1007S,No1208S))))),No305); (No1114S,((((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),((No0913S,No304),No306)),(No1103S,(No0912S,(No0909S,(No1007S,No1208S))))),No305); (((No0908S,(No1206S,(No0906S,(No0910S,No1202S)))),(No1114S,(No0913S,(No304,No306)))),(No1103S,(No0912S,(No1208S,(No0909S,No1007S)))),No305); (No1114S,((No306,((((No0909S,(No1007S,No1208S)),(No1103S,No0912S)),(No1206S,No0908S)),(No0906S,(No0913S,(No0910S,No1202S))))),No304),No305); ((((No1007S,(No1208S,No0909S)),No0912S),No1103S),(((No306,((No0913S,No304),No1114S)),No0908S),(No1206S,(No0906S,(No1202S,No0910S)))),No305); ((((((No0913S,No306),(No0906S,(No1202S,No0910S))),(No0908S,((No1007S,(No1208S,No0909S)),(No0912S,No1103S)))),No1206S),No304),No1114S,No305); (((No0908S,(((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),((No0913S,No306),(No1206S,(No0906S,(No1202S,No0910S)))))),No304),No1114S,No305); (((((No0906S,(No1202S,No0910S)),(No0908S,No1206S)),((No304,No0913S),No306)),(((No0909S,(No1007S,No1208S)),No0912S),No1103S)),No1114S,No305); (No1114S,((((No1206S,(No0906S,(No0910S,No1202S))),No0908S),((No0913S,No304),No306)),(No1103S,(No0912S,(No0909S,(No1007S,No1208S))))),No305); (No1114S,(((((No0906S,(No0910S,No1202S)),((No0908S,No1206S),(No0913S,No304))),No306),(No1208S,(No0909S,No1007S))),(No1103S,No0912S)),No305); (No1114S,(((No0908S,(((No1206S,No0906S),(No0910S,No1202S)),((No1007S,(No1208S,No0909S)),(No1103S,No0912S)))),No306),(No0913S,No304)),No305); (No1114S,(((No0908S,(No1206S,(No0906S,(No0910S,No1202S)))),(No306,(No0913S,No304))),((No1208S,(No0909S,No1007S)),(No1103S,No0912S))),No305); (No1114S,((No0906S,((No1206S,No0908S),((No306,(No0913S,No304)),(No0910S,No1202S)))),((No1103S,No0912S),((No1208S,No1007S),No0909S))),No305); (No1114S,((No1007S,(No0909S,No1208S)),((((No0906S,(No0910S,No1202S)),No1206S),((No306,(No0913S,No304)),No0908S)),(No0912S,No1103S))),No305); (No1114S,((((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),(No306,(No0913S,No304))),((No1007S,(No0909S,No1208S)),(No1103S,No0912S))),No305); (No1114S,((((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),(No306,(No0913S,No304))),((No1007S,(No0909S,No1208S)),(No1103S,No0912S))),No305); (No1114S,((No306,(No0913S,No304)),((((No0906S,No1206S),(No1202S,No0910S)),No0908S),((No1208S,(No1007S,No0909S)),(No1103S,No0912S)))),No305); (No1114S,(((No1007S,(No0909S,No1208S)),(No1103S,No0912S)),(((No306,(No0913S,No304)),((No1202S,No0910S),No0906S)),(No0908S,No1206S))),No305); (((((((No304,No0913S),No0908S),(No306,((No1202S,No0910S),(No1206S,No0906S)))),(No0909S,(No1208S,No1007S))),No1103S),No0912S),No1114S,No305); (((No1007S,(No0909S,No1208S)),((No1103S,No0912S),((((No0906S,(No1206S,No0910S)),No1202S),((No306,No304),No0913S)),No0908S))),No1114S,No305); (((((No0906S,(No0910S,No1202S)),(No306,(No304,No0913S))),(No1206S,No0908S)),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No1114S,No305); (((((No0906S,((No0910S,No1202S),No1206S)),(No306,(No304,No0913S))),No0908S),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No1114S,No305); (((((No0906S,((No0910S,No1202S),No1206S)),(No306,(No304,No0913S))),No0908S),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No1114S,No305); (((No306,(No304,No0913S)),(((No0908S,(No0906S,(No0910S,No1202S))),No1206S),((No1007S,(No0909S,No1208S)),(No0912S,No1103S)))),No1114S,No305); (((No1007S,(No0909S,No1208S)),((No0912S,No1103S),((No306,((No0906S,(No0913S,(No0910S,No1202S))),(No304,No0908S))),No1206S))),No1114S,No305); (((No304,No306),(((((No1007S,(No0909S,No1208S)),No0912S),No1103S),(No0906S,(No0913S,(No0910S,No1202S)))),(No0908S,No1206S))),No1114S,No305); (((No0912S,(No1103S,(No1007S,(No0909S,No1208S)))),((No306,(No0913S,No304)),((No0906S,(No1206S,(No0910S,No1202S))),No0908S))),No1114S,No305); (((No0912S,(No1103S,(No1007S,(No0909S,No1208S)))),((No306,(No0913S,No304)),((No1206S,((No0910S,No1202S),No0906S)),No0908S))),No1114S,No305); (No0906S,(((No0912S,((No1208S,(No1007S,No0909S)),No1103S)),(No306,(No1114S,(No304,No0913S)))),((No1206S,No0908S),(No1202S,No0910S))),No305); ((((No0912S,No1103S),((No306,(No304,No0913S)),((No1206S,No0908S),((No1202S,No0910S),No0906S)))),(No1208S,(No1007S,No0909S))),No1114S,No305); (((No0912S,No1103S),(((No0908S,((No1202S,No0910S),(No1206S,No0906S))),(No306,(No304,No0913S))),(No0909S,(No1208S,No1007S)))),No1114S,No305); (((((No0913S,(No1202S,No0910S)),((((No0909S,(No1208S,No1007S)),(No0912S,No1103S)),(No0908S,No1206S)),No0906S)),No306),No304),No1114S,No305); (((No0913S,(No306,(((No1007S,(No0909S,No1208S)),(No0912S,No1103S)),(((No0906S,(No1202S,No0910S)),No1206S),No0908S)))),No304),No1114S,No305); (((No0912S,No1103S),((((No0910S,(No0906S,No1202S)),(No0908S,No1206S)),(No306,(No0913S,No304))),(No0909S,(No1208S,No1007S)))),No1114S,No305); ((((((No1206S,(No1202S,No0910S)),No0906S),No0908S),((No306,No304),No0913S)),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No1114S,No305); (((((((((No1202S,No0910S),No1206S),No0906S),No306),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No0908S),No0913S),No304),No1114S,No305); (((No0913S,No304),(((((No0909S,(No1208S,No1007S)),(No0912S,No1103S)),(((No1202S,No0910S),No1206S),No0906S)),No0908S),No306)),No1114S,No305); ((((No0909S,(No1208S,No1007S)),(No0912S,No1103S)),(((No1206S,(No0906S,(No1202S,No0910S))),(No306,(No304,No0913S))),No0908S)),No1114S,No305); (No1114S,((No1103S,((No1007S,(No1208S,No0909S)),No0912S)),(((No304,No0913S),No306),((No1206S,(No0906S,(No1202S,No0910S))),No0908S))),No305); ((No1114S,((No304,No0913S),No306)),(((No1206S,(No0906S,(No1202S,No0910S))),No0908S),(No0912S,(No1103S,(No1007S,(No1208S,No0909S))))),No305); (No1114S,(((((No304,No0913S),No306),No0908S),(No1206S,(No0906S,(No1202S,No0910S)))),((No0909S,(No1007S,No1208S)),(No0912S,No1103S))),No305); (No1114S,(((((No304,No0913S),No306),No0908S),(No1206S,(No0906S,(No1202S,No0910S)))),((No0909S,(No1007S,No1208S)),(No0912S,No1103S))),No305); (No1114S,(((((No304,No0913S),No306),No0908S),(No1206S,(No0906S,(No1202S,No0910S)))),((No0909S,(No1007S,No1208S)),(No0912S,No1103S))),No305); (No1114S,((((No306,No0908S),(No1206S,(No0906S,(No0913S,(No0910S,No1202S))))),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No304),No305); (No1114S,((((No1007S,(No1208S,No0909S)),No0912S),No1103S),((No306,No304),((No0906S,(No0913S,(No0910S,No1202S))),(No0908S,No1206S)))),No305); (No1114S,((((No1208S,(No0909S,No1007S)),No0912S),No1103S),((No306,No304),(No0908S,(No1206S,(No0906S,(No0913S,(No0910S,No1202S))))))),No305); (((No0908S,(((No0910S,No1202S),No0906S),No1206S)),(No306,(No0913S,(No1114S,No304)))),((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),No305); ((((No0908S,(((No0910S,No1202S),No0906S),No1206S)),(No306,(No0913S,No304))),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No1114S,No305); ((((((No0908S,No1206S),((No0906S,(No0913S,(No1202S,No0910S))),No306)),(No1103S,No0912S)),((No0909S,No1007S),No1208S)),No304),No1114S,No305); (((No0906S,((((No1007S,(No1208S,No0909S)),(No1103S,No0912S)),(No0910S,(No0908S,No1206S))),No1202S)),(No306,(No304,No0913S))),No1114S,No305); ((((((No0906S,No1206S),(No0910S,No1202S)),(No306,(No304,No0913S))),No0908S),((No1208S,(No0909S,No1007S)),(No1103S,No0912S))),No1114S,No305); (((No306,(No304,No0913S)),((No1206S,((No0906S,No0908S),(No1103S,((No1202S,(No1007S,(No1208S,No0909S))),No0910S)))),No0912S)),No1114S,No305); ((((No0909S,(No1007S,No1208S)),(No0912S,No1103S)),(((No1206S,No0908S),(No0906S,(No0910S,No1202S))),(No306,(No304,No0913S)))),No1114S,No305); (((No304,No0913S),((((No0909S,(No1007S,No1208S)),(No0912S,No1103S)),(No0908S,(No1206S,(No0906S,(No0910S,No1202S))))),No306)),No1114S,No305); ((((No0912S,No1103S),((No0909S,No1208S),No1007S)),((No1206S,(No0906S,(No0910S,No1202S))),(No0908S,(No306,(No0913S,No304))))),No1114S,No305); ((No304,(((No0906S,(((No0910S,No1202S),((No0912S,No1103S),((No0909S,No1208S),No1007S))),(No0908S,No1206S))),No306),No0913S)),No1114S,No305); (((No0912S,No1103S),((No0909S,(No1208S,No1007S)),(((No0906S,No1206S),((No0913S,No1202S),No0910S)),(No0908S,(No306,No304))))),No1114S,No305); ((((No0908S,((No0913S,No304),(No0909S,(No1208S,No1007S)))),(No1206S,(No0906S,(No0910S,No1202S)))),No306),((No1103S,No1114S),No0912S),No305); ((((No1103S,No0912S),(No1007S,(No1208S,No0909S))),((No306,(No0913S,No304)),(((No1206S,No0906S),(No1202S,No0910S)),No0908S))),No1114S,No305); ((((No1103S,No0912S),(No1007S,(No1208S,No0909S))),((No306,(No0913S,No304)),(((No1206S,No0906S),(No1202S,No0910S)),No0908S))),No1114S,No305); ((((No0908S,No1206S),((No1103S,((No1202S,No0910S),No0906S)),(No0912S,(No306,(No0913S,No304))))),(No1007S,(No1208S,No0909S))),No1114S,No305); (((No0908S,((((No1202S,No0910S),No0906S),No1206S),(No306,(No0913S,No304)))),((No0912S,No1103S),(No1007S,(No1208S,No0909S)))),No1114S,No305); (((No0908S,((((No1202S,No0910S),No0906S),No1206S),(No306,(No0913S,No304)))),((No0912S,No1103S),(No1007S,(No1208S,No0909S)))),No1114S,No305); ((No304,((No306,((No0908S,No1206S),((No0912S,No1103S),(No1007S,(No1208S,No0909S))))),((No1202S,No0910S),(No0913S,No0906S)))),No1114S,No305); ((No304,(No306,((((No0908S,No1206S),((No0912S,No1103S),(No0909S,(No1007S,No1208S)))),(No0906S,(No1202S,No0910S))),No0913S))),No1114S,No305); ((((No0912S,No1103S),(No1007S,(No1208S,No0909S))),((No0908S,No1206S),((((No1202S,No0910S),No0906S),No0913S),(No304,No306)))),No1114S,No305); (((No1007S,(No1208S,No0909S)),(((No0906S,(No1202S,No0910S)),((No0912S,No1103S),(No0908S,No1206S))),((No0913S,No304),No306))),No1114S,No305); (((No1007S,(No1208S,No0909S)),((No0912S,No1103S),(((No0913S,No304),No306),((No0906S,(No1202S,No0910S)),(No0908S,No1206S))))),No1114S,No305); (No1114S,(((No0912S,No1103S),(No1007S,(No1208S,No0909S))),(No306,((No0906S,(No1206S,((No304,No0913S),No0908S))),(No0910S,No1202S)))),No305); (No1114S,(No304,(((((No0906S,(No0913S,(No1202S,No0910S))),No1206S),((No0912S,No1103S),(No0909S,(No1007S,No1208S)))),No0908S),No306)),No305); ((((No0912S,No1103S),(No1007S,(No1208S,No0909S))),((No0906S,(No1202S,No0910S)),((No0908S,No1206S),(No306,(No0913S,No304))))),No1114S,No305); ((((No0912S,No1103S),(No1007S,(No1208S,No0909S))),((No0906S,((No1202S,No0910S),No1206S)),(No0908S,(No306,(No0913S,No304))))),No1114S,No305); ((((No0912S,No1103S),(No0909S,(No1007S,No1208S))),((No306,(No0913S,No304)),((No0910S,(No0906S,No1202S)),(No1206S,No0908S)))),No1114S,No305); ((((No0912S,No1103S),(No0909S,(No1007S,No1208S))),((No306,(No0913S,No304)),(No0908S,((No0906S,(No1202S,No0910S)),No1206S)))),No1114S,No305); ((((No0912S,No1103S),(No0909S,(No1007S,No1208S))),((No306,(No0913S,No304)),(No0908S,((No0906S,(No1202S,No0910S)),No1206S)))),No1114S,No305); ((No1103S,(((No0909S,(No1007S,No1208S)),((No0908S,(No0906S,((No1202S,No0910S),No1206S))),(No306,(No0913S,No304)))),No0912S)),No1114S,No305); ((((No0908S,(No1206S,(No0906S,(No1202S,No0910S)))),(No306,(No0913S,No304))),(No1103S,(No0912S,(No1007S,(No1208S,No0909S))))),No1114S,No305); (((((No0906S,(No1202S,No0910S)),(No0908S,No1206S)),(No306,(No0913S,No304))),((No0909S,(No1007S,No1208S)),(No1103S,No0912S))),No1114S,No305); (No1114S,(((No0912S,No1103S),(No0909S,(No1007S,No1208S))),(((No304,No0913S),No306),(((No0910S,No1202S),(No0908S,No1206S)),No0906S))),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No1208S,No0909S))),(((No304,No0913S),No306),((((No0910S,No1202S),No1206S),No0906S),No0908S))),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No1208S,No0909S))),(((No304,No0913S),No306),((((No0910S,No1202S),No1206S),No0906S),No0908S))),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No1208S,No0909S))),((No0913S,(No306,No304)),((No1206S,(No0906S,(No0910S,No1202S))),No0908S))),No305); (No1114S,(((((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),((No0913S,No304),No306)),(No1007S,(No1208S,No0909S))),(No0912S,No1103S)),No305); (No1114S,((((No0906S,(No0910S,No1202S)),No1206S),(No0908S,((No0913S,No304),No306))),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No305); (No1114S,((No0912S,No1103S),(((No304,(No306,No0913S)),((No0906S,((No0910S,No1202S),No1206S)),No0908S)),(No1007S,(No1208S,No0909S)))),No305); (No1114S,((No1007S,(No1208S,No0909S)),((No0912S,No1103S),(No0908S,((No306,(No0913S,No304)),(No0906S,((No0910S,No1202S),No1206S)))))),No305); (No1114S,((No0912S,No1103S),(((No0908S,(((No0906S,No0910S),No1202S),No1206S)),((No304,No0913S),No306)),(No0909S,(No1007S,No1208S)))),No305); (No1114S,(((No0908S,((No0906S,(No0910S,No1202S)),No1206S)),((No304,No0913S),No306)),((No0909S,(No1007S,No1208S)),(No0912S,No1103S))),No305); ((No1208S,(No1007S,No0909S)),((((No306,No0913S),(No1114S,No304)),((No0908S,No1206S),((No1202S,No0910S),No0906S))),(No1103S,No0912S)),No305); ((((No306,(No304,No0913S)),(No0908S,((No1007S,(No0909S,No1208S)),(No1206S,((No1202S,No0910S),No0906S))))),(No1103S,No0912S)),No1114S,No305); ((((No1206S,((No1202S,No0910S),No0906S)),((No306,(No304,No0913S)),No0908S)),((No1007S,(No0909S,No1208S)),(No1103S,No0912S))),No1114S,No305); (((No1103S,No0912S),((((No306,(No304,No0913S)),No0908S),(No1206S,((No1202S,No0910S),No0906S))),(No0909S,(No1208S,No1007S)))),No1114S,No305); (((((No306,(No304,No0913S)),No0908S),(No1206S,((No1202S,No0910S),No0906S))),(((No1007S,No1208S),No0909S),(No1103S,No0912S))),No1114S,No305); (((((No306,(No304,No0913S)),No0908S),(No1206S,((No1202S,No0910S),No0906S))),((No1007S,(No1208S,No0909S)),(No1103S,No0912S))),No1114S,No305); (((((No306,(No304,No0913S)),No0908S),(No1206S,((No1202S,No0910S),No0906S))),((No0909S,(No1007S,No1208S)),(No1103S,No0912S))),No1114S,No305); (((((No306,(No304,No0913S)),No0908S),(No1206S,((No1202S,No0910S),No0906S))),((No0909S,(No1007S,No1208S)),(No1103S,No0912S))),No1114S,No305); (((((No306,(No304,No0913S)),((No1202S,No0910S),No0906S)),(No0908S,No1206S)),(((No0909S,(No1007S,No1208S)),No0912S),No1103S)),No1114S,No305); (((((No306,(No304,No0913S)),((No1202S,No0910S),No0906S)),(No0908S,No1206S)),(((No0909S,(No1007S,No1208S)),No0912S),No1103S)),No1114S,No305); (((No0908S,((No306,(No0913S,No304)),((No0906S,(No0910S,No1202S)),No1206S))),((No0909S,(No1208S,No1007S)),(No1103S,No0912S))),No1114S,No305); ((No304,(No306,((((No1007S,(No0909S,No1208S)),(No1103S,No0912S)),(No0908S,No1206S)),((No0906S,(No0910S,No1202S)),No0913S)))),No1114S,No305); (((No1103S,No0912S),(((No0908S,(No1206S,(No0906S,(No0910S,No1202S)))),((No306,No0913S),No304)),(No1208S,(No1007S,No0909S)))),No1114S,No305); (((((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),((No0913S,No304),No306)),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No1114S,No305); (((No1007S,(No0909S,No1208S)),((No0912S,No1103S),(((No0908S,No1206S),(No0906S,(No0910S,No1202S))),((No304,No0913S),No306)))),No1114S,No305); (((((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),((No304,No0913S),No306)),((No0909S,(No1208S,No1007S)),(No0912S,No1103S))),No1114S,No305); (((No0912S,No1103S),((((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),((No304,No0913S),No306)),(No0909S,(No1208S,No1007S)))),No1114S,No305); (((((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),((No304,No0913S),No306)),((No1208S,(No1007S,No0909S)),(No0912S,No1103S))),No1114S,No305); (No1114S,(((((No0906S,(No0910S,No1202S)),(No0908S,((No304,No0913S),No306))),No1206S),(No1007S,(No0909S,No1208S))),(No0912S,No1103S)),No305); (No1114S,((((No304,No0913S),No306),((No0908S,No1206S),(No0906S,(No0910S,No1202S)))),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No305); ((((No306,(No0913S,No304)),((No0906S,(No0910S,No1202S)),(No0908S,No1206S))),((No0909S,(No1208S,No1007S)),(No1103S,No0912S))),No1114S,No305); ((((No306,(No0913S,No304)),((No0906S,(No0910S,No1202S)),(No0908S,No1206S))),((No0909S,(No1208S,No1007S)),(No1103S,No0912S))),No1114S,No305); ((((No306,(No0913S,No304)),((No0906S,(No0910S,No1202S)),(No0908S,No1206S))),((No0909S,(No1208S,No1007S)),(No1103S,No0912S))),No1114S,No305); (((No1114S,(No306,(No0913S,No304))),(No0908S,((No0906S,(No0910S,No1202S)),No1206S))),((No0909S,(No1208S,No1007S)),(No1103S,No0912S)),No305); ((((No306,(No0913S,No304)),((No0906S,(No0910S,No1202S)),(No1206S,No0908S))),((No0909S,(No1208S,No1007S)),(No1103S,No0912S))),No1114S,No305); (((No1103S,No0912S),(((No306,(No0913S,No304)),((No0906S,(No0910S,No1202S)),(No1206S,No0908S))),(No0909S,(No1208S,No1007S)))),No1114S,No305); ((((No306,(No0913S,No304)),((No0906S,(No0910S,No1202S)),(No1206S,No0908S))),((No0909S,(No1208S,No1007S)),(No1103S,No0912S))),No1114S,No305); ((((No0909S,(No1208S,No1007S)),(No1103S,No0912S)),(((No1206S,No0908S),(No306,(No0913S,(No0906S,(No0910S,No1202S))))),No304)),No1114S,No305); ((((No1103S,((No304,No306),(No0908S,(No1206S,(No0906S,((No0910S,No1202S),No0913S)))))),No0912S),(No1007S,(No0909S,No1208S))),No1114S,No305); ((((((No0913S,No304),(No0906S,(No0910S,No1202S))),(No306,(No0908S,No1206S))),(No1007S,(No0909S,No1208S))),(No0912S,No1103S)),No1114S,No305); (No0912S,(((((No0908S,No1206S),(No0906S,(No0913S,(No0910S,No1202S)))),No304),No306),((No1114S,(No1007S,(No0909S,No1208S))),No1103S)),No305); (No1114S,(((No0908S,((No0906S,No1206S),(No0910S,No1202S))),((No0913S,No304),No306)),((No0912S,No1103S),(No1208S,(No1007S,No0909S)))),No305); (No1114S,((((No0908S,No1206S),((No0913S,No304),No306)),((No0910S,No1202S),No0906S)),((No0912S,No1103S),(No1007S,(No0909S,No1208S)))),No305); (No1114S,((((No0908S,No1206S),((No0913S,No304),No306)),((No0910S,No1202S),No0906S)),((No0912S,No1103S),(No1007S,(No0909S,No1208S)))),No305); (No1114S,((((No0908S,No1206S),((No0913S,No304),No306)),((No0910S,No1202S),No0906S)),((No0912S,No1103S),(No0909S,(No1208S,No1007S)))),No305); (No1114S,((No0912S,No1103S),((No1208S,(No1007S,No0909S)),((((No0910S,No1202S),No0906S),((No0913S,No304),No306)),(No0908S,No1206S)))),No305); (No0908S,(((No1114S,((No0913S,No304),No306)),(No1103S,((No0909S,(No1208S,No1007S)),No0912S))),(((No0910S,No1202S),No0906S),No1206S)),No305); (No1114S,((((((No0910S,No1202S),No0906S),No1206S),No0908S),((No0913S,No304),No306)),((No1103S,No0912S),(No0909S,(No1208S,No1007S)))),No305); (No1114S,((((No0906S,((No0909S,(No1208S,No1007S)),No0908S)),(No1202S,(No1206S,No0910S))),((No0913S,No304),No306)),(No1103S,No0912S)),No305); (No1114S,(No0912S,(((No0909S,(No1208S,No1007S)),((((No0906S,(No0910S,No1202S)),No1206S),No0908S),((No0913S,No304),No306))),No1103S)),No305); ((((No1007S,(No1208S,No0909S)),No0912S),No1103S),((No306,((No1114S,No304),No0913S)),((No1206S,(No0906S,(No1202S,No0910S))),No0908S)),No305); ((((No0909S,(No1007S,No1208S)),(No0912S,No1103S)),(No0908S,((No1206S,(No306,(No304,No0913S))),(No0906S,(No1202S,No0910S))))),No1114S,No305); (((No0909S,(No1007S,No1208S)),((No0912S,No1103S),(((No0908S,No1206S),(No306,(No304,No0913S))),(No0906S,(No1202S,No0910S))))),No1114S,No305); ((((No306,No0913S),(((No1206S,No0906S),(No1202S,No0910S)),(No0908S,((No0909S,(No1007S,No1208S)),(No0912S,No1103S))))),No304),No1114S,No305); ((((No1103S,No0912S),((No0909S,No1007S),No1208S)),((No306,(No304,No0913S)),(No0908S,(No1206S,(No0906S,(No1202S,No0910S)))))),No1114S,No305); ((((No1103S,No0912S),(No0909S,(No1007S,No1208S))),(((No0910S,(No306,(No304,No0913S))),(No0906S,(No0908S,No1206S))),No1202S)),No1114S,No305); (((No1103S,No0912S),((No0909S,(No1007S,No1208S)),(((((No0910S,No1202S),No0906S),No1206S),No0908S),(No306,(No304,No0913S))))),No1114S,No305); (((No1114S,(No306,(No304,No0913S))),(((No0910S,No1202S),No0906S),(No0908S,No1206S))),((No1103S,No0912S),(No1208S,(No0909S,No1007S))),No305); (((((No0910S,No1202S),No0906S),(No0908S,(No1206S,(No306,(No304,No0913S))))),((No1103S,No0912S),(No0909S,(No1007S,No1208S)))),No1114S,No305); ((((((No1206S,((No0910S,No1202S),No0906S)),No0908S),(No304,No0913S)),No306),((No1103S,No0912S),(No0909S,(No1007S,No1208S)))),No1114S,No305); ((((((No0913S,No304),No306),(No1206S,(No0906S,(No1202S,No0910S)))),No0908S),((No1103S,No0912S),(No1007S,(No0909S,No1208S)))),No1114S,No305); (((((No1206S,No0908S),((No0913S,No304),No306)),((No1202S,No0910S),No0906S)),((No1103S,No0912S),((No1007S,No1208S),No0909S))),No1114S,No305); (((No1007S,No1208S),(No0909S,((No0910S,((No1202S,((No0913S,No304),No306)),(No0906S,(No1206S,No0908S)))),(No1103S,No0912S)))),No1114S,No305); (No1114S,((((No1206S,No0908S),((No0906S,(No0913S,(No0910S,No1202S))),No304)),No306),((No0909S,(No1208S,No1007S)),(No1103S,No0912S))),No305); (No1114S,(No1103S,(No0912S,(((No0906S,(No0913S,(No0910S,No1202S))),(No304,No306)),((No1206S,No0908S),(No0909S,(No1208S,No1007S)))))),No305); (No1114S,((((No0913S,No304),No306),((No1206S,No0908S),(No0906S,(No0910S,No1202S)))),((No1103S,No0912S),(No1007S,(No0909S,No1208S)))),No305); (((((((No1206S,No0906S),(No0910S,No1202S)),No1103S),(((No0913S,No304),No306),No0908S)),No0912S),(No0909S,(No1208S,No1007S))),No1114S,No305); ((((((No1206S,No0906S),(No0910S,No1202S)),((No0913S,No304),No306)),No0908S),((No0912S,No1103S),(No1007S,(No0909S,No1208S)))),No1114S,No305); (((((No0908S,No1206S),(No0906S,(No0910S,No1202S))),((No0913S,No304),No306)),((No0912S,No1103S),(No0909S,(No1208S,No1007S)))),No1114S,No305); (((((No0908S,No1206S),(No0906S,(No0910S,No1202S))),((No0913S,No304),No306)),((No0912S,No1103S),(No0909S,(No1208S,No1007S)))),No1114S,No305); ((((No1103S,No0912S),(No1007S,(No0909S,No1208S))),(((No0908S,No1206S),(No304,No306)),(No0906S,((No1202S,No0910S),No0913S)))),No1114S,No305); ((((No304,No306),((No1103S,No0912S),((No1208S,(No1114S,No1007S)),No0909S))),(No0906S,((No1202S,No0910S),No0913S))),(No0908S,No1206S),No305); ((No304,((No0908S,((((No1208S,No1007S),No0909S),No0912S),No1103S)),((No1206S,(No0906S,(No1202S,No0910S))),(No306,No0913S)))),No1114S,No305); (((No1007S,(No0909S,No1208S)),(No1103S,(((No0908S,((No0906S,(No1202S,No0910S)),No1206S)),(No306,(No304,No0913S))),No0912S))),No1114S,No305); ((((No1206S,No0908S),(No306,(No304,((No0906S,(No1202S,No0910S)),No0913S)))),((No0912S,No1103S),(No0909S,(No1208S,No1007S)))),No1114S,No305); ((((((No0906S,(No1202S,No0910S)),No1206S),No0908S),(No306,(No304,No0913S))),((No0912S,No1103S),(No0909S,(No1208S,No1007S)))),No1114S,No305); (((No0912S,No1103S),((No1208S,(No1007S,No0909S)),((((No0906S,(No1202S,No0910S)),No1206S),No0908S),(No306,(No304,No0913S))))),No1114S,No305); ((((((No0906S,(No1202S,No0910S)),No1206S),No0908S),((No0913S,No304),No306)),(No0912S,No1103S)),(No1114S,(No1007S,(No0909S,No1208S))),No305); (No1114S,((((No0909S,No1208S),No1007S),(No1103S,No0912S)),((((No0906S,(No1202S,No0910S)),No1206S),No0908S),((No0913S,No304),No306))),No305); (No1114S,((No0908S,((No0909S,(No1208S,No1007S)),(No1103S,No0912S))),(((No0906S,(No1202S,No0910S)),No1206S),((No0913S,No304),No306))),No305); ((No304,(((No0908S,((No0906S,(No1202S,No0910S)),No1206S)),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),(No306,No0913S))),No1114S,No305); (((((No0909S,(No1007S,No1208S)),No0912S),No1103S),((No0908S,(No306,(No304,No0913S))),((No0906S,(No1202S,No0910S)),No1206S))),No1114S,No305); (((((No1007S,(No1208S,No0909S)),No0912S),No1103S),((No0908S,(No0913S,(No306,No304))),((No0906S,(No1202S,No0910S)),No1206S))),No1114S,No305); ((No1103S,(((No304,(No306,(No0908S,((No0906S,(No0913S,(No1202S,No0910S))),No1206S)))),(No1007S,(No1208S,No0909S))),No0912S)),No1114S,No305); ((((No1103S,((No1007S,(No1208S,No0909S)),No0912S)),((No0906S,(No0913S,(No1202S,No0910S))),(No1206S,No0908S))),(No304,No306)),No1114S,No305); (((((((No1007S,No1208S),No0909S),No0912S),No1103S),(((No0908S,((No0910S,(No0913S,No1202S)),No0906S)),No306),No1206S)),No1114S),No304,No305); (No1114S,(((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),(((No0913S,No304),No306),(No0908S,(No1206S,((No0910S,No1202S),No0906S))))),No305); (No1114S,(((No0913S,No304),No306),((((No0909S,(No1007S,No1208S)),(No0912S,No1103S)),(No0908S,No1206S)),(No0910S,(No1202S,No0906S)))),No305); (No1114S,(((No1103S,No0912S),(No1007S,(No1208S,No0909S))),((((No0913S,No304),No306),(No0908S,No1206S)),(No0906S,(No0910S,No1202S)))),No305); (No1114S,((((No0908S,No1206S),(((No0910S,No1202S),No0913S),No0906S)),(((No1103S,No0912S),(No1007S,(No1208S,No0909S))),No306)),No304),No305); (No1114S,((No1103S,No0912S),((No0908S,((No1206S,((No0910S,No1202S),No0906S)),((No304,No0913S),No306))),((No1208S,No0909S),No1007S))),No305); (No1114S,((No1103S,No0912S),(((((No0910S,No1202S),No0906S),(No0908S,No1206S)),((No304,No0913S),No306)),((No1208S,No0909S),No1007S))),No305); (No1114S,(((((No0906S,No1206S),(No1202S,No0910S)),((No304,No0913S),No306)),No0908S),(((No0909S,No1208S),No1007S),(No1103S,No0912S))),No305); (No1114S,((No1103S,No0912S),((((No1206S,((No1202S,No0910S),No0906S)),((No304,No0913S),No306)),No0908S),(No0909S,(No1208S,No1007S)))),No305); (No1114S,((((No304,No0913S),No306),(No0908S,(No1206S,((No1202S,No0910S),No0906S)))),((No0909S,(No1208S,No1007S)),(No1103S,No0912S))),No305); (No1114S,((((No0908S,No1206S),((((No0913S,No0906S),No0910S),No1202S),No306)),((No0909S,(No1208S,No1007S)),(No1103S,No0912S))),No304),No305); (No1114S,((No1103S,No0912S),((((No0913S,No304),No306),(No0908S,(No1206S,((No0910S,No1202S),No0906S)))),(No0909S,(No1208S,No1007S)))),No305); (No1114S,((((No0913S,No304),No306),(No0908S,(No1206S,((No0910S,No1202S),No0906S)))),((No1208S,(No1007S,No0909S)),(No1103S,No0912S))),No305); (No1114S,((No0909S,(No1208S,No1007S)),((No1103S,No0912S),(((No0913S,No304),No306),(No0908S,(No1206S,((No0910S,No1202S),No0906S)))))),No305); (No1114S,((No1103S,No0912S),(((((No0913S,No304),((No0910S,No1202S),No0906S)),(No0908S,No1206S)),No306),(No1007S,(No0909S,No1208S)))),No305); (No1114S,((No0908S,((No1206S,((No0910S,No1202S),No0906S)),(No306,(No304,No0913S)))),(No1103S,((No0909S,(No1007S,No1208S)),No0912S))),No305); (No1114S,(((((No0910S,No1202S),No0906S),(No0908S,No1206S)),(No306,(No304,No0913S))),(No1103S,((No1007S,(No1208S,No0909S)),No0912S))),No305); (((((No0910S,No1202S),No0906S),(No0908S,No1206S)),(No306,(No1114S,(No304,No0913S)))),(No1103S,((No0909S,(No1007S,No1208S)),No0912S)),No305); (((No1007S,(No1208S,No0909S)),((No0912S,No1103S),(((No306,No304),No0913S),((No1206S,((No0906S,No0910S),No1202S)),No0908S)))),No1114S,No305); (((No1007S,(No1208S,No0909S)),(No0912S,(No1103S,(No0906S,((No1202S,((No306,(No304,No0913S)),No0910S)),(No1206S,No0908S)))))),No1114S,No305); (((((((No1206S,No0908S),No0906S),(No306,(No304,No0913S))),(No0910S,No1202S)),(No1007S,(No1208S,No0909S))),(No1103S,No0912S)),No1114S,No305); (((No1103S,No0912S),(No0909S,(No1007S,No1208S))),((No0906S,(No1206S,(No0910S,No1202S))),(No0908S,(No1114S,(No306,(No304,No0913S))))),No305); ((No0909S,((No1114S,No1007S),No1208S)),(No0912S,(No1103S,(No0908S,((No306,(No304,No0913S)),(No0906S,(No1206S,(No0910S,No1202S))))))),No305); (No1114S,((No0912S,No1103S),((((No306,(No304,No0913S)),(No1206S,((No0910S,No1202S),No0906S))),No0908S),(No0909S,(No1007S,No1208S)))),No305); (No1114S,(((No0909S,(No1007S,No1208S)),(No0912S,No1103S)),(((((No1202S,No0906S),(No0910S,No0913S)),(No304,No0908S)),No1206S),No306)),No305); (No1114S,((((No1208S,No1007S),No0909S),(No1103S,No0912S)),((No306,(No304,No0913S)),(((No0910S,No1202S),No0906S),(No0908S,No1206S)))),No305); (No1114S,((((No1208S,No1007S),No0909S),(No1103S,No0912S)),((No306,(No304,No0913S)),(No0908S,(No1206S,((No0910S,No1202S),No0906S))))),No305); (No1114S,((((No1208S,No1007S),No0909S),(No1103S,No0912S)),(((No306,No304),(No0913S,(No0910S,No1202S))),((No0908S,No1206S),No0906S))),No305); (No1114S,(((No306,No304),No0913S),(((No0912S,(No0908S,(No1007S,(No0909S,No1208S)))),(No1206S,(No0906S,(No0910S,No1202S)))),No1103S)),No305); (No1114S,((((No0906S,((No0912S,No1103S),(No1208S,(No1007S,No0909S)))),(No0908S,No1206S)),(No0910S,No1202S)),((No0913S,No304),No306)),No305); (((No0912S,No1103S),((No1208S,No1007S),No0909S)),((((No0913S,No304),No306),No1114S),((No0908S,No1206S),(No0906S,(No0910S,No1202S)))),No305); (No1114S,((((No0906S,((No0913S,No304),(No0910S,No1202S))),(No0908S,No1206S)),((No0912S,No1103S),((No1208S,No1007S),No0909S))),No306),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No0909S,No1208S))),(((No0913S,No304),No306),(No0908S,(No1206S,((No0910S,No1202S),No0906S))))),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No0909S,No1208S))),(((No0913S,No304),No306),(No0908S,(No1206S,((No0910S,No1202S),No0906S))))),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No0909S,No1208S))),(((No0913S,No304),No306),(No0908S,(No1206S,((No0910S,No1202S),No0906S))))),No305); (No1114S,((No1103S,No0912S),((No0909S,(No1208S,No1007S)),(No0906S,(((No306,(No0913S,No304)),No0908S),((No1202S,No0910S),No1206S))))),No305); (No1114S,((No1007S,(No0909S,No1208S)),((((No306,(No0913S,No304)),No0908S),(No0906S,(No1206S,(No1202S,No0910S)))),(No1103S,No0912S))),No305); (No1114S,((No1007S,(No0909S,No1208S)),((((No304,(No0906S,(No0913S,(No1202S,No0910S)))),(No0908S,No1206S)),No306),(No1103S,No0912S))),No305); (No1114S,((No1208S,(No1007S,No0909S)),((No1103S,No0912S),(No1206S,((No0906S,(No1202S,No0910S)),(((No304,No0913S),No306),No0908S))))),No305); (No1114S,((No1103S,No0912S),((No0909S,(No1208S,No1007S)),(((No304,No0913S),No306),(No0908S,(No1206S,(No0906S,(No1202S,No0910S))))))),No305); (No1114S,((No1103S,No0912S),((No0909S,(No1208S,No1007S)),(((No304,No0913S),No306),(No0908S,(No1206S,(No0906S,(No1202S,No0910S))))))),No305); (No1114S,((((No304,No0913S),No306),(No0908S,(No1206S,(No0906S,(No1202S,No0910S))))),((No1103S,No0912S),(No1007S,(No0909S,No1208S)))),No305); (No1114S,((((No304,No0913S),No306),(No0908S,(No1206S,(No0906S,(No1202S,No0910S))))),((No1103S,No0912S),(No1007S,(No0909S,No1208S)))),No305); (No1114S,((((No304,No0913S),No306),(No0908S,(No1206S,(No0906S,(No1202S,No0910S))))),((No1103S,No0912S),(No1007S,(No0909S,No1208S)))),No305); (No1114S,(((No0906S,((No304,No0913S),No306)),((No1202S,No0910S),(No0908S,No1206S))),((No1103S,No0912S),(No1208S,(No1007S,No0909S)))),No305); (No1114S,(((No1103S,No0912S),(No1007S,(No0909S,No1208S))),((No1206S,(No0906S,(No1202S,No0910S))),((No306,(No0913S,No304)),No0908S))),No305); (No1114S,(((No1103S,No0912S),(No1007S,(No0909S,No1208S))),((No1206S,(No0906S,(No1202S,No0910S))),((No306,(No0913S,No304)),No0908S))),No305); (No1114S,(((No1103S,No0912S),(No0909S,(No1208S,No1007S))),(No0908S,((No1206S,(No0906S,(No1202S,No0910S))),(No306,(No0913S,No304))))),No305); (No1114S,((No1007S,(No0909S,No1208S)),(((No306,(No0913S,No304)),(No0908S,(No1206S,(No0906S,(No1202S,No0910S))))),(No1103S,No0912S))),No305); (No1114S,((((No0908S,(No1206S,(No0906S,(No1202S,No0910S)))),(No0913S,No304)),No306),((No1007S,(No0909S,No1208S)),(No1103S,No0912S))),No305); (No1114S,(((((No304,No0913S),No306),(No0908S,No1206S)),(No0906S,(No1202S,No0910S))),((No1007S,(No0909S,No1208S)),(No1103S,No0912S))),No305); (No1114S,(No304,((((No0906S,(No0913S,(No1202S,No0910S))),(No0908S,No1206S)),No306),((No1208S,(No1007S,No0909S)),(No1103S,No0912S)))),No305); (No1114S,(No304,((((No0906S,No1206S),(No0910S,No1202S)),((((No1007S,(No0909S,No1208S)),(No1103S,No0912S)),No0908S),No306)),No0913S)),No305); (No1114S,(((No1103S,No0912S),(No1007S,(No0909S,No1208S))),(No0908S,(((No0913S,No304),No306),(No1206S,((No0910S,No1202S),No0906S))))),No305); (No1114S,(((No1103S,No0912S),(No0909S,(No1208S,No1007S))),((((No0910S,No1202S),No0906S),(No0908S,No1206S)),((No0913S,No304),No306))),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No1208S,No0909S))),((No306,(No0913S,No304)),(No0908S,(No1206S,(No0906S,(No0910S,No1202S)))))),No305); (No1114S,((No0912S,No1103S),((No1208S,(No0909S,No1007S)),((No306,(No0913S,No304)),(No0908S,(No1206S,(No0906S,(No0910S,No1202S))))))),No305); (No1114S,((No306,(((No0913S,(No0906S,(No0910S,No1202S))),No304),(No0908S,No1206S))),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No305); ((No0908S,((No306,(No0913S,(No1114S,No304))),(No1206S,((No0910S,No1202S),No0906S)))),((No0912S,No1103S),(No0909S,(No1007S,No1208S))),No305); (((((No306,(No0913S,No304)),(No0908S,((No0910S,No1202S),No0906S))),No1206S),((No0912S,No1103S),(No0909S,(No1007S,No1208S)))),No1114S,No305); (((No0908S,((No1206S,((No0910S,No1202S),No0906S)),(No306,(No0913S,No304)))),((No0912S,No1103S),(No1208S,(No0909S,No1007S)))),No1114S,No305); ((((No1202S,(((No0908S,No1206S),No0906S),No0910S)),(No306,(No0913S,No304))),((No0912S,No1103S),(No0909S,(No1007S,No1208S)))),No1114S,No305); (((((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),(No306,(No0913S,No304))),(No0912S,(No1103S,(No0909S,(No1007S,No1208S))))),No1114S,No305); (((((No1206S,(No0906S,(No0913S,(No0910S,No1202S)))),No0908S),(No304,No306)),((No1208S,(No0909S,No1007S)),(No0912S,No1103S))),No1114S,No305); ((((No1103S,(No1007S,(No1208S,No0909S))),No0912S),((((No0910S,No1202S),No0906S),(No0908S,No1206S)),(No0913S,(No304,No306)))),No1114S,No305); ((((No1208S,No0909S),No1007S),(((No306,(No304,No0913S)),((No1206S,(No0906S,(No0910S,No1202S))),No0908S)),(No1103S,No0912S))),No1114S,No305); ((((No306,(No304,No0913S)),((No1206S,(No0906S,(No0910S,No1202S))),No0908S)),((No1103S,No0912S),(No1208S,(No0909S,No1007S)))),No1114S,No305); (((No306,(((No0909S,(No1007S,No1208S)),(No304,No0913S)),((No0906S,(No0910S,No1202S)),(No0908S,No1206S)))),(No1103S,No0912S)),No1114S,No305); (((No306,(No304,No0913S)),(((No0908S,No1206S),(No0906S,(No0910S,No1202S))),((No1208S,(No0909S,No1007S)),(No1103S,No0912S)))),No1114S,No305); (((((No1007S,(No1208S,No0909S)),No0912S),No1103S),((No306,(No304,No0913S)),((No0908S,No1206S),(No0906S,(No0910S,No1202S))))),No1114S,No305); (((No306,((No1114S,No304),No0913S)),(No0908S,(No1206S,(No1202S,(No0906S,No0910S))))),((No0909S,(No1007S,No1208S)),(No0912S,No1103S)),No305); (((((No306,(No304,No0913S)),No0908S),(No1206S,(No0906S,(No0910S,No1202S)))),((No0912S,No1103S),((No0909S,No1208S),No1007S))),No1114S,No305); ((((No0909S,No1208S),No1007S),(((No0908S,No1206S),(((No0906S,(No0910S,No1202S)),No0913S),(No306,No304))),(No0912S,No1103S))),No1114S,No305); ((((No0909S,No1208S),No1007S),((No0912S,No1103S),(No0908S,((No306,(No304,No0913S)),(No1206S,((No0910S,No1202S),No0906S)))))),No1114S,No305); (((No0912S,No1103S),((No0906S,((((No304,No0913S),No306),(No0908S,No1206S)),(No0910S,No1202S))),((No0909S,No1208S),No1007S))),No1114S,No305); ((((No1208S,No0909S),No1007S),((((No306,(No304,No0913S)),(No0906S,(No0910S,(No1202S,No1206S)))),No0908S),(No1103S,No0912S))),No1114S,No305); (((((No306,(No304,No0913S)),((No0906S,(No0910S,No1202S)),No1206S)),No0908S),((No1208S,(No0909S,No1007S)),(No0912S,No1103S))),No1114S,No305); ((((No306,(No304,No0913S)),((No0906S,(No0908S,No1206S)),((No1007S,(No1208S,No0909S)),(No0910S,No1202S)))),(No0912S,No1103S)),No1114S,No305); (((No1206S,(No0906S,(No0910S,No1202S))),(No0908S,((No0912S,No1103S),(No1007S,(No1208S,No0909S))))),(No306,((No1114S,No304),No0913S)),No305); (((No0912S,No1103S),(No1208S,(No0909S,No1007S))),(((No306,((No1114S,No304),No0913S)),(No1206S,(No0906S,(No0910S,No1202S)))),No0908S),No305); ((No0912S,No1103S),((No0909S,(No1007S,No1208S)),((((No306,(No304,No0913S)),No1114S),(No1202S,(No0906S,(No1206S,No0910S)))),No0908S)),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No1208S,No0909S))),((((No0910S,No1202S),No0906S),(No306,(No304,No0913S))),(No1206S,No0908S))),No305); (No1114S,(((No0912S,No1103S),(No1208S,(No0909S,No1007S))),((No0908S,((No0910S,No1202S),(No1206S,No0906S))),(No306,(No304,No0913S)))),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No1208S,No0909S))),((No0908S,((No1206S,No0906S),(No0910S,No1202S))),(No306,(No304,No0913S)))),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No1208S,No0909S))),(((No1206S,(No0906S,(No0910S,No1202S))),No0908S),(No306,(No304,No0913S)))),No305); (No1114S,(((No0912S,No1103S),(No0909S,(No1208S,No1007S))),((No1206S,((No0910S,No1202S),No0906S)),((No0908S,(No304,No0913S)),No306))),No305); ((((No1007S,(No0909S,No1208S)),No0912S),No1103S),(No1114S,((No306,(No0913S,No304)),(No0908S,(No1206S,((No0910S,No1202S),No0906S))))),No305); ((No0912S,No1103S),(No1114S,((No306,(No0913S,No304)),(((No0909S,(No1208S,No1007S)),No0908S),(No1206S,((No0910S,No1202S),No0906S))))),No305); (No1114S,(((No1007S,(No0909S,No1208S)),((No0908S,No1206S),((No306,(No0913S,No304)),((No0910S,No1202S),No0906S)))),(No0912S,No1103S)),No305); (No1114S,((No0906S,((No306,(No0913S,No304)),((No0908S,No1206S),(No0910S,No1202S)))),((No0912S,No1103S),(No1007S,(No0909S,No1208S)))),No305); (((No0908S,(No0906S,((No0910S,No1202S),No1206S))),(No306,(No0913S,No304))),(((No0912S,No1103S),(No0909S,(No1208S,No1007S))),No1114S),No305); (No1114S,(((No0908S,(No1206S,(No0906S,(No0910S,No1202S)))),(No306,(No0913S,No304))),((No0912S,No1103S),(No0909S,(No1208S,No1007S)))),No305); (No1114S,((No0913S,((((No0912S,No1103S),(No1007S,(No0909S,No1208S))),(No0908S,(No1206S,(No0906S,(No0910S,No1202S))))),No306)),No304),No305); (((No1007S,(No0909S,No1208S)),(((No0908S,(No1206S,(No0906S,(No0910S,No1202S)))),(No306,(No304,No0913S))),(No0912S,No1103S))),No1114S,No305); (((No0912S,No1103S),(((No0908S,(No1206S,(No0906S,(No0910S,No1202S)))),(No306,(No304,No0913S))),(No0909S,(No1208S,No1007S)))),No1114S,No305); (No0908S,((No0912S,(No1103S,(No0909S,(No1007S,No1208S)))),((No1114S,(No306,(No304,No0913S))),(No1206S,(No0906S,(No0910S,No1202S))))),No305); (((((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),No0908S),(No1114S,(No306,(No304,No0913S)))),(No1206S,(No0906S,(No0910S,No1202S))),No305); (No1114S,(((No1206S,(No0906S,(No0910S,No1202S))),((No306,(No304,No0913S)),No0908S)),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No305); (No1114S,(((No1206S,(No0906S,(No0910S,No1202S))),((No306,(No304,No0913S)),No0908S)),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No305); (No1114S,(((No1206S,(No0906S,(No0910S,No1202S))),((No306,(No304,No0913S)),No0908S)),((No0909S,(No1007S,No1208S)),(No0912S,No1103S))),No305); (No1114S,(((No1206S,(No0906S,(No0910S,No1202S))),((No306,(No304,No0913S)),No0908S)),((No0909S,(No1007S,No1208S)),(No0912S,No1103S))),No305); (No1114S,(((No1206S,(No0906S,(No0910S,No1202S))),((No306,(No304,No0913S)),No0908S)),((No0909S,(No1007S,No1208S)),(No0912S,No1103S))),No305); ((((No0908S,No1206S),(No0906S,(No0910S,No1202S))),(No1114S,(No306,(No304,No0913S)))),((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),No305); (No1114S,((No306,(No304,No0913S)),((No0908S,No1206S),(((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),(No0906S,(No0910S,No1202S))))),No305); (((No0912S,No1103S),(No0909S,(No1007S,No1208S))),((No0906S,(No0910S,No1202S)),(((No0913S,(No304,No306)),No1114S),(No0908S,No1206S))),No305); (No1114S,(No306,(((No1208S,(No0909S,No1007S)),(No0912S,No1103S)),(((No0906S,(No0910S,No1202S)),(No0908S,No1206S)),(No304,No0913S)))),No305); (No1114S,(((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),((No306,(No304,No0913S)),(((No0906S,(No0910S,No1202S)),No1206S),No0908S))),No305); (No1114S,(((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),((No306,(No304,No0913S)),(((No0906S,(No0910S,No1202S)),No1206S),No0908S))),No305); (No1114S,(((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),((No306,(No304,No0913S)),(((No0906S,(No0910S,No1202S)),No1206S),No0908S))),No305); ((((No0909S,(No1007S,No1208S)),(No0912S,No1103S)),((((No0906S,No0910S),No1206S),No1202S),((No306,No1114S),(No0913S,No304)))),No0908S,No305); (((((No0910S,No1202S),No0906S),No1206S),(No0908S,(No1114S,((No0913S,No304),No306)))),((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),No305); (No1114S,(((No0913S,No306),((((No0908S,No1206S),No0906S),((No1208S,(No0909S,No1007S)),(No0912S,No1103S))),(No0910S,No1202S))),No304),No305); (No1114S,((No0912S,No1103S),((No0909S,(No1007S,No1208S)),(((No304,No1206S),(No0906S,(No0913S,(No1202S,No0910S)))),(No306,No0908S)))),No305); (No1114S,(((No0912S,No1103S),(No1007S,(No1208S,No0909S))),(((No1206S,(No0906S,(No0910S,No1202S))),No0908S),((No0913S,No304),No306))),No305); (No1114S,((No0912S,No1103S),((No1007S,(No1208S,No0909S)),((No0908S,(No1206S,(No0906S,(No0910S,No1202S)))),((No0913S,No304),No306)))),No305); ((((No0912S,(No1103S,(No1007S,(No0909S,No1208S)))),(((No0913S,(No1202S,No0910S)),No0906S),(No0908S,No1206S))),(No304,No306)),No1114S,No305); ((((No0909S,(No1208S,No1007S)),(No0912S,No1103S)),((No306,((No304,No0913S),((No1202S,No0910S),No0906S))),(No0908S,No1206S))),No1114S,No305); (((No0912S,No1103S),(((No306,(No304,No0913S)),(No0908S,(((No1202S,No0910S),No0906S),No1206S))),(No1007S,(No0909S,No1208S)))),No1114S,No305); (((((((No1202S,No0910S),No0906S),No1206S),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),(No306,(No304,No0913S))),No0908S),No1114S,No305); ((((No306,(No0908S,No1206S)),(((No0913S,(No1202S,No0910S)),No0906S),No304)),((No0909S,(No1208S,No1007S)),(No0912S,No1103S))),No1114S,No305); (((((((No1202S,No0910S),No0906S),No1206S),No0908S),(No306,(No304,No0913S))),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))),No1114S,No305); (((((No1114S,(No1007S,No1208S)),No0909S),((No0906S,(No1206S,(No1202S,No0910S))),No0908S)),(No1103S,No0912S)),(No306,(No304,No0913S)),No305); ((((No1103S,No0912S),((No1007S,No1208S),No0909S)),((((No306,(No304,No0913S)),No1206S),No0906S),((No1202S,No0910S),No0908S))),No1114S,No305); ((((No306,(No304,No0913S)),No1114S),(No0908S,(No1206S,(No0906S,(No1202S,No0910S))))),((No0912S,No1103S),(No1007S,(No1208S,No0909S))),No305); ((((No0913S,(No306,No304)),(No0908S,(No1206S,(No0906S,(No1202S,No0910S))))),((No0912S,No1103S),(No1208S,(No0909S,No1007S)))),No1114S,No305); ((((No0912S,(No1208S,(No1007S,No0909S))),No1103S),((((No0913S,No304),No306),(((No0910S,No1202S),No0906S),No1206S)),No0908S)),No1114S,No305); ((((No0912S,(No1208S,(No1007S,No0909S))),No1103S),((((No0913S,No304),No306),(((No0910S,No1202S),No0906S),No1206S)),No0908S)),No1114S,No305); ((((No0909S,(No1208S,No1007S)),(No1103S,No0912S)),(((No0908S,No304),((((No0913S,No0910S),No1202S),No0906S),No1206S)),No306)),No1114S,No305); ((((No1007S,(No0909S,No1208S)),(No1103S,No0912S)),((No0908S,(((No1202S,No0910S),No0906S),No1206S)),((No0913S,No304),No306))),No1114S,No305); ((((No0909S,(No1208S,No1007S)),(No1103S,No0912S)),((No0908S,(((No1202S,No0910S),No0906S),No1206S)),((No0913S,No304),No306))),No1114S,No305); ((((No0909S,(No1208S,No1007S)),(No1103S,No0912S)),((No0908S,(((No1202S,No0910S),No0906S),No1206S)),((No0913S,No304),No306))),No1114S,No305); ((((No1007S,(No0909S,No1208S)),(No1103S,No0912S)),((No0908S,(((No1202S,No0910S),No0906S),No1206S)),((No0913S,No304),No306))),No1114S,No305); (((No1103S,No0912S),((((No0908S,No1206S),((No0913S,No304),No306)),((No1202S,No0910S),No0906S)),(No1007S,(No0909S,No1208S)))),No1114S,No305); (((No1103S,No0912S),(((No0908S,((No0913S,No304),No306)),((No1202S,No0910S),(No1206S,No0906S))),(No0909S,(No1208S,No1007S)))),No1114S,No305); ((((No0913S,No304),No306),(((No1206S,(No0906S,(No1202S,No0910S))),No0908S),((No0909S,(No1208S,No1007S)),(No1103S,No0912S)))),No1114S,No305); (No1114S,(((No0906S,(No0913S,(No1202S,No0910S))),((No0908S,No1206S),(No304,No306))),(No1103S,((No1007S,(No0909S,No1208S)),No0912S))),No305); (No1114S,(((No1206S,(No0906S,(No0913S,(No1202S,No0910S)))),(No0908S,(No304,No306))),(No1103S,((No0909S,(No1208S,No1007S)),No0912S))),No305); (No1114S,(((No1206S,(No0906S,(No0913S,(No1202S,No0910S)))),(No0908S,(No304,No306))),(No1103S,((No0909S,(No1208S,No1007S)),No0912S))),No305); (No1114S,((((No0908S,No1206S),(No0910S,(No1202S,No0906S))),((No0913S,No304),No306)),((No0909S,(No1208S,No1007S)),(No0912S,No1103S))),No305); (No1114S,((((No0906S,No0910S),(No1206S,No1202S)),((No0908S,(No0913S,No304)),No306)),((No0909S,(No1208S,No1007S)),(No0912S,No1103S))),No305); (No1114S,(((No1206S,(No0906S,(No0910S,No1202S))),(No0908S,((No0913S,No304),No306))),(((No1007S,(No0909S,No1208S)),No0912S),No1103S)),No305); (No1114S,(((((No1206S,No0908S),((No0906S,(No0910S,No1202S)),No306)),(No1007S,(No0909S,No1208S))),(No0913S,No304)),(No0912S,No1103S)),No305); (No1114S,((No306,(No0913S,No304)),(((((No1007S,(No0909S,No1208S)),No0912S),No1103S),No0908S),((No0906S,(No0910S,No1202S)),No1206S))),No305); ((((No0912S,(No0909S,(No1208S,No1007S))),No1103S),((No0908S,(No306,(No0913S,No304))),((No0906S,(No0910S,No1202S)),No1206S))),No1114S,No305); ((No0912S,No1103S),((No0909S,(No1208S,No1007S)),((No1114S,(No306,(No0913S,No304))),(((No0906S,(No0910S,No1202S)),No1206S),No0908S))),No305); (No1114S,(((No0909S,(No1007S,No1208S)),(No0912S,No1103S)),((No0906S,(No1202S,No0910S)),((No306,(No304,No0913S)),(No1206S,No0908S)))),No305); (No1114S,((No1007S,(No1208S,No0909S)),((No0912S,No1103S),((No306,(No304,No0913S)),(No0908S,(No1206S,(No0906S,(No1202S,No0910S))))))),No305); (No1114S,((((No0906S,(No1202S,No0910S)),(No306,(No304,No0913S))),(No0908S,No1206S)),(((No0909S,No1007S),No1208S),(No0912S,No1103S))),No305); (No1114S,((((No0906S,(No1202S,No0910S)),(No306,(No304,No0913S))),(No0908S,No1206S)),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No305); (No1114S,((((No1206S,(No0906S,(No1202S,No0910S))),(No306,(No304,No0913S))),No0908S),((No0909S,(No1007S,No1208S)),(No0912S,No1103S))),No305); (No1114S,((((No1206S,(No0906S,(No1202S,No0910S))),(No306,(No304,No0913S))),No0908S),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No305); (No1114S,((No0912S,No1103S),(((No306,(No304,No0913S)),(No0908S,(No1206S,(No0906S,(No1202S,No0910S))))),(No1007S,(No1208S,No0909S)))),No305); (No1114S,(((No306,(No304,No0913S)),(No0908S,(No1206S,(No0906S,(No1202S,No0910S))))),((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),No305); (No1114S,((No0912S,No1103S),(((No304,No0913S),((No0908S,(No1206S,(No0906S,(No1202S,No0910S)))),No306)),(No0909S,(No1007S,No1208S)))),No305); (No1114S,((((No0912S,No1103S),(No1007S,(No1208S,No0909S))),(No306,(No0908S,(No1206S,(No0906S,(No0913S,(No1202S,No0910S))))))),No304),No305); (No1114S,(((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),((No306,(No304,No0913S)),((No1206S,No0908S),(No0906S,(No1202S,No0910S))))),No305); (No1114S,(((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),((No306,(No304,No0913S)),(No0908S,((No0906S,(No1202S,No0910S)),No1206S)))),No305); (((No0908S,((No1007S,(No1208S,No0909S)),(No0912S,No1103S))),((No1114S,(No306,(No304,No0913S))),(No0906S,(No1202S,No0910S)))),No1206S,No305); (No1114S,((No306,(No304,No0913S)),(No1206S,(((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),(No0908S,(No0906S,(No1202S,No0910S)))))),No305); (No1114S,((((No1007S,(No1208S,No0909S)),No0912S),No1103S),((No306,(No304,No0913S)),((No0908S,No1206S),(No0906S,(No1202S,No0910S))))),No305); (No1114S,((((No1007S,(No1208S,No0909S)),No0912S),No1103S),(No306,((No304,No0913S),(No0908S,(No1206S,(No0906S,(No1202S,No0910S))))))),No305); (No1114S,(((No1208S,(No0909S,No1007S)),(No0912S,No1103S)),(((No1206S,No0908S),No0906S),((No1202S,No0910S),(No306,(No0913S,No304))))),No305); (No1114S,(((No0909S,(No1007S,No1208S)),(No0912S,No1103S)),(No1206S,((No0906S,(No1202S,No0910S)),(No0908S,(No306,(No0913S,No304)))))),No305); (No1114S,((No0912S,No1103S),((No0908S,No1206S),((No0906S,(No1202S,No0910S)),((No0909S,(No1007S,No1208S)),(No306,(No0913S,No304)))))),No305); (No1114S,((((No1007S,(No1208S,No0909S)),No0912S),No1103S),(((No1206S,(No0906S,(No1202S,No0910S))),No0908S),(No306,(No0913S,No304)))),No305); (((No1103S,No0912S),(No1007S,(No0909S,No1208S))),(((No0908S,No1206S),((No0910S,No1202S),No0906S)),(No1114S,(No306,(No304,No0913S)))),No305); ((((No1103S,No0912S),(No1007S,(No0909S,No1208S))),((No0908S,(No1206S,((No0910S,No1202S),No0906S))),(No306,(No304,No0913S)))),No1114S,No305); (((No0909S,(No1208S,No1007S)),((((No0908S,No1206S),(No0906S,(No306,(No304,No0913S)))),(No0910S,No1202S)),(No0912S,No1103S))),No1114S,No305); ((((No306,(No304,No0913S)),((No1206S,(No0906S,(No0910S,No1202S))),No0908S)),(((No1007S,(No0909S,No1208S)),No0912S),No1103S)),No1114S,No305); (((((No306,(No304,No0913S)),((No1206S,(No0906S,(No0910S,No1202S))),No0908S)),(No0909S,(No1208S,No1007S))),(No0912S,No1103S)),No1114S,No305); ((((No0913S,No306),(((No0906S,((No0910S,No1202S),No1206S)),No0908S),((No1007S,(No0909S,No1208S)),(No0912S,No1103S)))),No304),No1114S,No305); ((((No0909S,(No1208S,No1007S)),(No0912S,No1103S)),((No1206S,((No304,No0913S),No306)),(No0906S,((No0910S,No1202S),No0908S)))),No1114S,No305); ((((No0909S,(No1208S,No1007S)),(No0912S,No1103S)),((No0908S,((No304,No0913S),No306)),(((No0910S,No1202S),No0906S),No1206S))),No1114S,No305); ((((((No1007S,(No0909S,No1208S)),No0912S),No1103S),No0906S),((No0908S,No1206S),(No0910S,No1202S))),(No1114S,((No304,No0913S),No306)),No305); (((No0909S,(No1208S,No1007S)),((No0912S,No1103S),(((No0908S,No1206S),(No0906S,(No0910S,No1202S))),((No304,No0913S),No306)))),No1114S,No305); (((No1103S,(No0912S,(No1007S,(No1208S,No0909S)))),((No1206S,(No0906S,(No0910S,No1202S))),(((No304,No0913S),No306),No0908S))),No1114S,No305); (((No1103S,(No0912S,(No1007S,(No1208S,No0909S)))),(No0906S,(((No0908S,No1206S),((No0910S,No1202S),(No304,No0913S))),No306))),No1114S,No305); (((No0909S,(No1007S,No1208S)),(No1103S,No0912S)),((No0908S,(No1206S,(No0906S,(No0910S,No1202S)))),(No1114S,(No306,(No304,No0913S)))),No305); (No1114S,(((No306,(No304,No0913S)),(No0908S,(No1206S,(No0906S,(No0910S,No1202S))))),((No1103S,No0912S),(No1007S,(No0909S,No1208S)))),No305); (No1114S,(((No306,(No304,No0913S)),((No1206S,No0908S),(No0906S,(No1202S,No0910S)))),((No1103S,No0912S),(No1007S,(No0909S,No1208S)))),No305); (No1114S,((No1007S,(No0909S,No1208S)),(((No0906S,((No1202S,No0910S),No1206S)),((No306,(No304,No0913S)),No0908S)),(No1103S,No0912S))),No305); (No1114S,(No304,((No0908S,(No1206S,((No0906S,(No0913S,(No1202S,No0910S))),((No1007S,(No0909S,No1208S)),(No0912S,No1103S))))),No306)),No305); (((No0909S,(No1208S,No1007S)),(No0912S,No1103S)),(No0908S,(((No306,No304),No1114S),(No1206S,(No0906S,(No0913S,(No1202S,No0910S)))))),No305); ((No0908S,(((No1007S,(No0909S,No1208S)),(No0912S,No1103S)),((No0906S,(No1202S,No0910S)),No1206S))),((No306,(No0913S,No304)),No1114S),No305); (((No0912S,No1103S),((((No0906S,(No1202S,No0910S)),No1206S),((No306,(No0913S,No304)),No0908S)),(No1208S,(No1007S,No0909S)))),No1114S,No305); (((No1103S,(No0912S,(No1007S,(No1208S,No0909S)))),(((No0906S,((No1202S,No0913S),No0910S)),((No1206S,No0908S),No306)),No304)),No1114S,No305); (((No1103S,(No0912S,(No1208S,(No0909S,No1007S)))),((No0906S,(No0913S,(No0910S,No1202S))),((No1206S,No0908S),(No304,No306)))),No1114S,No305); (((No1103S,(No0912S,(No1007S,(No1208S,No0909S)))),((((No0906S,(No0913S,(No0910S,No1202S))),No306),(No1206S,No0908S)),No304)),No1114S,No305); (((No1103S,(No0912S,(No1208S,(No0909S,No1007S)))),(((No0913S,((No0910S,No1202S),No0906S)),(No304,No306)),(No1206S,No0908S))),No1114S,No305); (((((No1208S,(No0909S,No1007S)),(No1103S,No0912S)),((No1206S,((No0910S,No1202S),No0906S)),No0908S)),(No306,(No304,No0913S))),No1114S,No305); ((((No0912S,No1103S),(No1007S,(No1208S,No0909S))),((((No306,(No304,No0913S)),No1206S),((No0910S,No1202S),No0906S)),No0908S)),No1114S,No305); (((No0912S,No1103S),((No0909S,(No1007S,No1208S)),((No306,(No304,No0913S)),(No0908S,((No1206S,(No0910S,No1202S)),No0906S))))),No1114S,No305); ((((No0908S,(((No0913S,(No0910S,No1202S)),No0906S),No1206S)),(No306,No304)),((No0912S,No1103S),(No1007S,(No1208S,No0909S)))),No1114S,No305); (No1114S,(((No0909S,(No1007S,No1208S)),((No0908S,(((No0910S,No1202S),No0906S),No1206S)),(No306,(No0913S,No304)))),(No0912S,No1103S)),No305); (No1114S,((((No1206S,No0908S),No0906S),(No306,(((No0910S,No1202S),No0913S),No304))),((No0912S,No1103S),(No1007S,(No1208S,No0909S)))),No305); (No1114S,((((No306,(No304,No0913S)),(No1206S,(No0906S,(No0910S,No1202S)))),(No0912S,(No1103S,(No0909S,(No1208S,No1007S))))),No0908S),No305); (No1114S,((((No306,(No304,No0913S)),((No0906S,(No0910S,No1202S)),No1206S)),No0908S),((No0912S,No1103S),(No0909S,(No1208S,No1007S)))),No305); (No1114S,(((No0908S,No1206S),((No306,No304),(No0906S,(No0913S,(No0910S,No1202S))))),((No0912S,No1103S),(No1007S,(No0909S,No1208S)))),No305); (No1114S,(No0906S,((No306,(No0913S,No304)),(((No0908S,No1206S),(No0910S,No1202S)),((No0912S,No1103S),(No1007S,(No0909S,No1208S)))))),No305); (No1114S,(((No0909S,(No1208S,No1007S)),(No0912S,No1103S)),(((No0908S,No1206S),((No0906S,(No0913S,(No0910S,No1202S))),No306)),No304)),No305); (((No0912S,No1103S),(No0909S,(No1208S,No1007S))),(No0908S,((No1206S,(No0906S,(No1202S,No0910S))),(No1114S,((No0913S,No304),No306)))),No305); ((((No0912S,No1103S),(No1007S,(No0909S,No1208S))),((No0908S,(No1206S,(No0906S,(No1202S,No0910S)))),((No0913S,No304),No306))),No1114S,No305); (((No1007S,(No0909S,No1208S)),((((No0913S,No304),No306),No0912S),(No1103S,((No1206S,(No0906S,(No1202S,No0910S))),No0908S)))),No1114S,No305); (No0908S,((((No1007S,(No0909S,No1208S)),No0912S),No1103S),((No1114S,((No304,No0913S),No306)),(((No1202S,No1206S),No0910S),No0906S))),No305); (No1114S,((((No304,No0913S),No306),((((No1202S,No0910S),No0906S),No1206S),No0908S)),(((No0909S,(No1208S,No1007S)),No0912S),No1103S)),No305); (No1114S,(((No0912S,(No1007S,(No1208S,No0909S))),No1103S),(((No1206S,No0908S),((No0913S,(No0906S,(No0910S,No1202S))),No304)),No306)),No305); (No1114S,((No0912S,No1103S),((No1007S,(No1208S,No0909S)),(No304,(No306,((No1206S,No0908S),(No0906S,((No0910S,No1202S),No0913S))))))),No305); (No1114S,(((No1208S,(No0909S,No1007S)),(No0912S,No1103S)),(((No304,No0913S),No306),(No0908S,((No0906S,(No0910S,No1202S)),No1206S)))),No305); (No1114S,(((No1208S,(No0909S,No1007S)),(No0912S,No1103S)),(((No304,No0913S),No306),(No0908S,((No0906S,(No0910S,No1202S)),No1206S)))),No305); (No1114S,(((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),(((No304,((No0910S,No1202S),No0913S)),No306),((No1206S,No0908S),No0906S))),No305); (No1114S,(((No0909S,(No1007S,No1208S)),(No0912S,No1103S)),(((No0913S,No304),No306),((No1206S,(No0906S,(No0910S,No1202S))),No0908S))),No305); (No1114S,(((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),(((((No0913S,No304),No306),(No1206S,(No0910S,No1202S))),No0906S),No0908S)),No305); (No1114S,(((No1007S,(No1208S,No0909S)),(No0912S,No1103S)),(((No0913S,No304),No306),((No0908S,No1206S),(No0906S,(No0910S,No1202S))))),No305); (No1114S,((No1208S,(No0909S,No1007S)),((No0912S,No1103S),(((No0913S,No304),No306),((No0908S,No1206S),(No0906S,(No0910S,No1202S)))))),No305); (No1114S,((((((No0913S,No304),No306),(No0908S,(No0906S,((No0910S,No1202S),No1206S)))),(No0909S,(No1007S,No1208S))),No0912S),No1103S),No305); (No1114S,((No0912S,(No1103S,(No0909S,(No1007S,No1208S)))),((No304,No306),((No1206S,No0908S),(No0906S,(No0913S,(No0910S,No1202S)))))),No305); (No1114S,((No0909S,(No1007S,No1208S)),((No0912S,(No1103S,(No0908S,((No1206S,(No0906S,(No1202S,No0910S))),(No304,No0913S))))),No306)),No305); (No1114S,((((No0908S,No1206S),(No0906S,(No1202S,No0910S))),(No306,(No304,No0913S))),((No1208S,(No0909S,No1007S)),(No0912S,No1103S))),No305); (No1114S,((No306,((((No1007S,(No1208S,No0909S)),No0912S),No1103S),((No0906S,((No1202S,No0910S),No1206S)),No0908S))),(No0913S,No304)),No305); (No1114S,((((No0909S,(No1007S,No1208S)),No0912S),No1103S),((No1206S,No0908S),(No0906S,(((No1202S,No0910S),No0913S),(No304,No306))))),No305); (No1114S,(No304,((No306,((((No1206S,No0906S),(No1202S,No0910S)),No0908S),(((No0909S,(No1007S,No1208S)),No0912S),No1103S))),No0913S)),No305); (No1114S,((No1007S,(No1208S,No0909S)),((No0912S,No1103S),(No0908S,((No1206S,(No0906S,(No1202S,No0910S))),((No0913S,No304),No306))))),No305); (No1114S,((No0909S,(No1007S,No1208S)),((No0912S,No1103S),(No0908S,((No1206S,(No0906S,(No1202S,No0910S))),((No0913S,No304),No306))))),No305); (No1114S,((No0912S,No1103S),((No0908S,((No0909S,(No1007S,No1208S)),((No0913S,No304),No306))),(No1206S,(No0906S,(No1202S,No0910S))))),No305); (No1114S,((No1007S,(No1208S,No0909S)),((No0912S,No1103S),(((No1206S,(No0906S,(No1202S,No0910S))),((No0913S,No304),No306)),No0908S))),No305); (No1114S,(((No306,(No0913S,No304)),((No1206S,No0908S),(No0906S,(No1202S,No0910S)))),(((No1208S,No0909S),No1007S),(No0912S,No1103S))),No305); (((((No1206S,No0906S),(No1202S,No0910S)),No0908S),(No1114S,(No306,(No0913S,No304)))),((No0909S,(No1007S,No1208S)),(No0912S,No1103S)),No305); (No1114S,(((No306,(No0913S,No304)),((No1206S,(No0906S,(No1202S,No0910S))),No0908S)),((No0912S,No1103S),(No1007S,(No1208S,No0909S)))),No305); (No1114S,((No0906S,(((No1206S,No0908S),((No0913S,No304),(No1202S,No0910S))),((No0912S,No1103S),(No0909S,(No1007S,No1208S))))),No306),No305); (No1114S,(((No0906S,((No0913S,(No306,No304)),(No1202S,No0910S))),(No1206S,No0908S)),((No0912S,No1103S),(No0909S,(No1007S,No1208S)))),No305); (No1114S,(((No306,(No304,No0913S)),((((No1202S,No0910S),No0906S),No1206S),No0908S)),((No0912S,No1103S),(No1007S,(No1208S,No0909S)))),No305); (((No306,((No1114S,No304),No0913S)),((((No1202S,No0910S),No0906S),No1206S),No0908S)),((No0912S,No1103S),(No0909S,(No1007S,No1208S))),No305); (No1114S,(((No1007S,(No1208S,No0909S)),(((((No1202S,No0910S),No0906S),No1206S),No0908S),(No306,(No304,No0913S)))),(No0912S,No1103S)),No305); (((No306,(No304,No0913S)),No1114S),((((No1202S,No0910S),No0906S),(No1206S,No0908S)),(No0912S,(No1103S,(No1007S,(No1208S,No0909S))))),No305); (No1114S,((No0912S,No1103S),((((No1202S,No0910S),(No1007S,(No1208S,No0909S))),(No0906S,No1206S)),((No306,(No304,No0913S)),No0908S))),No305); (No1114S,((((No0908S,((No306,(No304,No0913S)),(No1206S,(No0906S,(No1202S,No0910S))))),(No1007S,(No1208S,No0909S))),No1103S),No0912S),No305); (No1114S,(((No306,(No304,No0913S)),((No1206S,(No0906S,(No1202S,No0910S))),No0908S)),((No1007S,(No1208S,No0909S)),(No1103S,No0912S))),No305); (No1114S,(((No306,(No304,No0913S)),((No1206S,(No0906S,(No1202S,No0910S))),No0908S)),((No1007S,(No1208S,No0909S)),(No1103S,No0912S))),No305); (No1114S,((((No1202S,No0910S),(No306,(No304,No0913S))),((No0908S,No1206S),No0906S)),(No0912S,((No1007S,(No1208S,No0909S)),No1103S))),No305); (No1114S,((No0908S,((No306,(No304,No0913S)),(No1206S,(No0906S,(No1202S,No0910S))))),((No1007S,(No1208S,No0909S)),(No1103S,No0912S))),No305); ((((No1202S,No0910S),(No0908S,No1206S)),((No306,((No1114S,No304),No0913S)),No0906S)),((No1208S,(No0909S,No1007S)),(No1103S,No0912S)),No305); (((No0906S,No1206S),(No1202S,No0910S)),(((No306,(No304,No0913S)),No1114S),(No0908S,(((No0909S,(No1007S,No1208S)),No1103S),No0912S))),No305); (((No0912S,No1103S),(No1007S,(No1208S,No0909S))),(((No306,(No304,No0913S)),((No1206S,((No1202S,No0910S),No0906S)),No0908S)),No1114S),No305); (No1114S,(((No306,(No304,No0913S)),((No0912S,No1103S),(No0909S,(No1007S,No1208S)))),((No1206S,((No1202S,No0910S),No0906S)),No0908S)),No305); (((No1103S,No0912S),(No0909S,(No1007S,No1208S))),(((No1206S,No0906S),((No306,((No1114S,No304),No0913S)),No0908S)),(No1202S,No0910S)),No305); phangorn/inst/extdata/trees/RAxML_bipartitions.AIs0000644000176200001440000000054313201424001021714 0ustar liggesusers(Ame:0.02681059329595153473,((Hma:0.00312706379726812329,(Uth:0.00121026052477198292,Mur:0.00312046250563168155)39:0.00087036069658183684)42:0.00122506270256386740,((Uar:0.00052373856518729458,Uma:0.00247018618187345041)83:0.00167792487939210548,Uam:0.00184159984063642979)41:0.00107249327886021345)100:0.00382497683824970002,Tor:0.00848622429823414105); phangorn/inst/extdata/trees/woodmouse.mrbayes.nex.run1.t0000644000176200001440000025045013201424001023134 0ustar liggesusers#NEXUS [ID: 2542150086] begin trees; translate 1 No305, 2 No304, 3 No306, 4 No0906S, 5 No0908S, 6 No0909S, 7 No0910S, 8 No0912S, 9 No0913S, 10 No1103S, 11 No1007S, 12 No1114S, 13 No1202S, 14 No1206S, 15 No1208S; tree rep.1 = ((((((3,((((((13,6),15),(5,9)),12),2),11)),7),8),4),10),14,1); tree rep.10000 = (12,((8,(10,(11,(15,6)))),(((14,((7,13),4)),(3,(9,2))),5)),1); tree rep.20000 = (((8,(10,((6,15),11))),(((2,9),((14,5),3)),(4,(7,13)))),12,1); tree rep.30000 = (((4,(((7,(9,13)),(3,2)),(14,5))),((10,8),((15,6),11))),12,1); tree rep.40000 = (((((6,11),15),(10,8)),(((3,(2,9)),(4,(14,(13,7)))),5)),12,1); tree rep.50000 = (((((7,13),4),((11,(6,15)),(10,8))),((3,(2,9)),(14,5))),12,1); tree rep.60000 = (12,(((8,10),((15,6),11)),(((4,(7,13)),(5,(3,(9,2)))),14)),1); tree rep.70000 = (((4,(13,7)),(((((9,2),3),12),5),14)),((8,10),(11,(6,15))),1); tree rep.80000 = (12,(((5,(14,((7,13),4))),(3,(2,9))),((8,((11,6),15)),10)),1); tree rep.90000 = (12,((((2,9),3),(14,(5,(4,(7,13))))),(((11,(15,6)),8),10)),1); tree rep.100000 = (((((9,2),3),(5,((14,(13,7)),4))),(8,(((15,6),11),10))),12,1); tree rep.110000 = (((((6,15),11),(8,10)),(5,(((4,14),(7,13)),((2,9),3)))),12,1); tree rep.120000 = (12,(((5,(14,(3,(9,2)))),((7,4),13)),(10,(((6,11),15),8))),1); tree rep.130000 = (12,(((10,8),(11,(6,15))),((3,(2,9)),(5,((4,(13,7)),14)))),1); tree rep.140000 = (12,(((3,(9,2)),((15,(11,6)),(10,8))),((5,(13,7)),(14,4))),1); tree rep.150000 = (((4,(((9,2),3),(5,(14,(7,13))))),12),(((11,(6,15)),10),8),1); tree rep.160000 = (((5,((14,((3,(9,2)),4)),(7,13))),(((15,11),6),(10,8))),12,1); tree rep.170000 = (12,((((15,6),11),(8,10)),((14,(((13,7),4),5)),((2,9),3))),1); tree rep.180000 = (((((7,13),4),5),((10,(8,(11,(6,15)))),(((9,2),3),14))),12,1); tree rep.190000 = (12,((3,(9,2)),(((8,10),((15,6),11)),(5,(14,((13,7),4))))),1); tree rep.200000 = ((((6,(11,15)),(10,8)),(((4,(13,7)),((2,9),3)),(14,5))),12,1); tree rep.210000 = (((8,(10,(11,(15,6)))),(((13,7),4),(5,((3,(2,9)),14)))),12,1); tree rep.220000 = ((((4,(7,13)),(((3,(9,2)),5),14)),(10,((11,(15,6)),8))),12,1); tree rep.230000 = (12,((14,((((8,(11,(15,6))),10),(((13,7),5),4)),3)),(2,9)),1); tree rep.240000 = ((((14,((2,9),3)),((((6,(15,11)),8),10),5)),(4,(13,7))),12,1); tree rep.250000 = (12,(((6,(11,15)),(10,8)),((3,(9,2)),(5,((14,(13,7)),4)))),1); tree rep.260000 = (((((11,(15,6)),10),8),((((3,(2,9)),14),(4,(13,7))),5)),12,1); tree rep.270000 = (12,((5,14),((((8,10),((6,15),11)),((9,2),(4,(7,13)))),3)),1); tree rep.280000 = ((((((7,13),((2,9),3)),(5,14)),((11,(15,6)),(10,8))),4),12,1); tree rep.290000 = (((8,(((11,6),15),10)),((5,((2,9),3)),((4,14),(7,13)))),12,1); tree rep.300000 = (12,((((3,(5,((7,13),4))),(2,9)),14),(8,(((11,15),6),10))),1); tree rep.310000 = (((11,(6,15)),((5,((14,((13,7),4)),(3,(2,9)))),(10,8))),12,1); tree rep.320000 = (12,((((15,6),11),(10,8)),(((3,(2,9)),(4,(14,(7,13)))),5)),1); tree rep.330000 = ((((((11,(6,15)),(10,8)),(5,((7,13),(4,14)))),3),(2,9)),12,1); tree rep.340000 = ((((10,8),(11,(15,6))),(((((2,9),3),(4,14)),(7,13)),5)),12,1); tree rep.350000 = (12,((5,(((6,15),11),(10,8))),(((2,9),3),(4,(14,(7,13))))),1); tree rep.360000 = (12,(((((6,15),11),8),10),((5,((2,9),3)),((14,(7,13)),4))),1); tree rep.370000 = (12,((4,(14,((7,13),(5,(3,(9,2)))))),((11,(15,6)),(10,8))),1); tree rep.380000 = (((((14,5),(4,(13,7))),((2,9),3)),(8,((6,(15,11)),10))),12,1); tree rep.390000 = ((((((7,13),4),5),((2,9),3)),((((11,(15,6)),10),8),14)),12,1); tree rep.400000 = (12,(((9,2),3),((((6,11),15),(8,10)),((14,5),(4,(7,13))))),1); tree rep.410000 = ((5,((((4,(13,7)),14),((10,8),((11,15),6))),(3,(9,2)))),12,1); tree rep.420000 = ((((8,(11,(15,6))),10),(5,((14,((13,7),4)),(3,(9,2))))),12,1); tree rep.430000 = (12,((((9,2),((7,13),4)),(14,(3,5))),((8,(11,(6,15))),10)),1); tree rep.440000 = (12,((5,((4,((3,(9,2)),(13,7))),14)),((8,((11,15),6)),10)),1); tree rep.450000 = ((((8,10),((6,15),11)),(5,(((2,9),3),(14,((13,7),4))))),12,1); tree rep.460000 = (((14,((5,((2,9),3)),(4,(13,7)))),((8,10),((15,11),6))),12,1); tree rep.470000 = (((4,(13,7)),(14,(5,(3,(2,9))))),((10,((11,(15,6)),8)),12),1); tree rep.480000 = (12,((((15,6),11),(8,10)),((((2,9),3),((4,(13,7)),14)),5)),1); tree rep.490000 = ((((10,8),(11,(6,15))),(((9,2),3),(((4,(13,7)),14),5))),12,1); tree rep.500000 = (12,(((10,(6,(15,11))),8),(((2,9),3),(5,(((7,13),4),14)))),1); tree rep.510000 = (12,((8,(((11,6),15),10)),((4,(((2,9),3),5)),((13,7),14))),1); tree rep.520000 = ((((11,(6,15)),(8,10)),12),((4,(13,7)),((5,14),(3,(9,2)))),1); tree rep.530000 = (12,((((13,7),4),(14,5)),(((9,2),3),((15,(11,6)),(8,10)))),1); tree rep.540000 = (12,((14,((4,((13,7),9)),(2,(3,5)))),((((15,11),6),8),10)),1); tree rep.550000 = ((((3,((9,2),(14,((7,13),4)))),5),12),(10,(((11,15),6),8)),1); tree rep.560000 = (12,((5,(3,((14,(4,(13,7))),(2,9)))),((10,8),((15,6),11))),1); tree rep.570000 = (((((6,(15,11)),10),8),(((3,(2,9)),(((7,13),4),14)),5)),12,1); tree rep.580000 = ((((5,(14,(7,(4,13)))),(3,(9,2))),(8,(10,(6,(11,15))))),12,1); tree rep.590000 = (12,((5,(((4,(7,13)),14),((2,9),3))),(8,(10,(11,(6,15))))),1); tree rep.600000 = ((10,(((((7,13),4),(5,(3,(2,9)))),14),8)),(12,((11,6),15)),1); tree rep.610000 = (((((3,(2,9)),(14,((4,13),7))),5),(10,(8,(6,(15,11))))),12,1); tree rep.620000 = (((3,(9,2)),(((((7,13),4),14),(((15,11),6),(8,10))),5)),12,1); tree rep.630000 = (12,((((15,6),11),(8,10)),((((13,7),(14,4)),((2,9),3)),5)),1); tree rep.640000 = (((((14,(7,13)),4),(3,(9,2))),(5,12)),(8,(((15,6),11),10)),1); tree rep.650000 = (12,(((((11,15),6),10),8),(((5,3),4),(14,((13,7),(9,2))))),1); tree rep.660000 = ((((6,(15,11)),(8,10)),(14,(((9,2),3),(((7,13),4),5)))),12,1); tree rep.670000 = (((((11,(6,15)),8),10),(14,((7,13),(((3,(2,9)),5),4)))),12,1); tree rep.680000 = (12,(((((2,9),3),5),(4,(14,(13,7)))),(8,(10,(11,(6,15))))),1); tree rep.690000 = (((((13,7),((14,5),4)),(3,(9,2))),((10,8),((15,11),6))),12,1); tree rep.700000 = (((5,((4,(3,(2,9))),(7,(13,14)))),(((6,11),15),(10,8))),12,1); tree rep.710000 = (((5,14),((7,13),(4,((2,9),3)))),(12,(8,(((15,6),11),10))),1); tree rep.720000 = (((2,9),3),((7,13),(5,(4,(14,((10,(8,(6,(11,15)))),12))))),1); tree rep.730000 = (((((11,15),6),(10,8)),((4,(14,(7,13))),(5,(3,(2,9))))),12,1); tree rep.740000 = ((12,((11,(15,6)),(10,8))),((14,4),(((7,13),5),((2,9),3))),1); tree rep.750000 = (12,(((((9,2),3),(14,((13,7),4))),5),((10,8),((15,11),6))),1); tree rep.760000 = ((((10,8),((11,6),15)),(5,((4,(14,(13,7))),(3,(2,9))))),12,1); tree rep.770000 = (12,(((3,(2,9)),((10,((6,(11,15)),8)),(5,14))),((13,7),4)),1); tree rep.780000 = (((3,(2,9)),(5,(14,(((8,10),((11,15),6)),12)))),(4,(13,7)),1); tree rep.790000 = (12,(((14,(((3,(2,9)),(7,13)),4)),5),(8,(10,((15,6),11)))),1); tree rep.800000 = (12,(((((9,2),3),5),(14,(4,(7,13)))),((8,((15,6),11)),10)),1); tree rep.810000 = (12,((((15,11),6),(10,8)),(((9,2),3),((14,5),(4,(7,13))))),1); tree rep.820000 = ((((14,(4,((7,13),(3,(9,2))))),5),(10,(8,(11,(15,6))))),12,1); tree rep.830000 = (12,((((3,(2,9)),5),(14,(4,(7,13)))),(8,(10,(6,(15,11))))),1); tree rep.840000 = ((((8,10),(11,(15,6))),(((14,(13,7)),4),(5,((2,9),3)))),12,1); tree rep.850000 = (12,(((10,((15,11),6)),8),(((5,((7,13),4)),14),(3,(9,2)))),1); tree rep.860000 = ((((((3,(9,2)),(14,(13,7))),4),5),((((6,15),11),10),8)),12,1); tree rep.870000 = (12,(((((9,2),3),(5,14)),((8,(11,(15,6))),10)),((4,13),7)),1); tree rep.880000 = ((((14,4),(13,7)),((((2,9),3),(10,((15,(6,11)),8))),5)),12,1); tree rep.890000 = ((((4,(13,7)),(14,(5,(3,(2,9))))),(10,(((15,6),11),8))),12,1); tree rep.900000 = (12,(((8,10),((6,15),11)),((5,14),((3,(2,9)),(4,(7,13))))),1); tree rep.910000 = (((((14,(7,13)),((2,9),3)),(4,5)),(10,(8,(6,(11,15))))),12,1); tree rep.920000 = ((12,(((9,2),3),(5,(((13,7),4),14)))),((8,(11,(6,15))),10),1); tree rep.930000 = (((((3,(9,2)),5),(14,((13,7),4))),((8,((6,15),11)),10)),12,1); tree rep.940000 = (12,(((8,10),(11,(15,6))),((((3,(2,9)),(7,13)),(5,14)),4)),1); tree rep.950000 = (((((6,(15,11)),8),10),(((13,7),(14,4)),(5,(3,(2,9))))),12,1); tree rep.960000 = ((((8,10),((6,15),11)),((((7,13),14),4),(((2,9),3),5))),12,1); tree rep.970000 = ((((((4,14),5),(3,(9,2))),(7,13)),(8,((11,(15,6)),10))),12,1); tree rep.980000 = (12,(((((14,4),(8,(10,(11,(15,6))))),5),(7,13)),((9,2),3)),1); tree rep.990000 = (((5,((3,(9,2)),((7,(14,13)),4))),(10,(((6,11),15),8))),12,1); tree rep.1000000 = (12,(((5,(((13,7),14),4)),((2,9),3)),((11,(15,6)),(10,8))),1); tree rep.1010000 = (12,((((14,5),(((15,6),11),(10,8))),(4,(13,7))),(3,(2,9))),1); tree rep.1020000 = (12,(((6,15),11),((4,(5,(((2,9),3),(14,(13,7))))),(8,10))),1); tree rep.1030000 = (((5,3),((4,(7,13)),((2,9),14))),(((((15,11),6),8),10),12),1); tree rep.1040000 = (12,(3,(((((14,4),((8,10),(6,(11,15)))),5),(13,7)),(2,9))),1); tree rep.1050000 = (12,(((5,((4,(13,7)),14)),(3,(2,9))),(10,(8,(6,(15,11))))),1); tree rep.1060000 = ((((4,((13,7),14)),(5,((8,10),(6,(15,11))))),(3,(2,9))),12,1); tree rep.1070000 = (12,((((8,(10,((15,11),6))),14),((((9,2),3),5),(13,7))),4),1); tree rep.1080000 = ((((10,8),((15,11),6)),12),((5,(14,(3,(9,2)))),(4,(7,13))),1); tree rep.1090000 = (12,((10,8),(((6,11),15),((((7,13),(3,(2,9))),(5,14)),4))),1); tree rep.1100000 = (12,((((13,(7,14)),(5,4)),(3,(2,9))),((8,((15,11),6)),10)),1); tree rep.1110000 = ((((10,8),(6,(15,11))),((4,(((13,7),14),(3,(9,2)))),5)),12,1); tree rep.1120000 = (((10,((6,(11,15)),8)),(((7,13),14),((4,5),((2,9),3)))),12,1); tree rep.1130000 = ((((((9,2),(14,((13,7),4))),5),3),(8,(((15,11),6),10))),12,1); tree rep.1140000 = ((((5,((10,8),((6,15),11))),((9,2),3)),(((13,7),14),4)),12,1); tree rep.1150000 = ((10,8),((12,((5,3),((2,9),((4,(7,13)),14)))),((11,15),6)),1); tree rep.1160000 = (12,(5,(((2,9),3),(((6,(15,11)),(10,8)),((13,7),(14,4))))),1); tree rep.1170000 = (((14,(((7,13),4),(5,((9,2),3)))),(8,((6,(15,11)),10))),12,1); tree rep.1180000 = ((((10,(11,(15,6))),8),(((7,(4,13)),14),(5,((2,9),3)))),12,1); tree rep.1190000 = (12,((5,(((4,(7,13)),14),((9,2),3))),(8,(10,((6,15),11)))),1); tree rep.1200000 = ((((14,(4,(7,13))),5),(3,(9,2))),(((10,8),((15,6),11)),12),1); tree rep.1210000 = (12,(((8,10),((11,15),6)),((((13,7),4),5),(((9,3),2),14))),1); tree rep.1220000 = ((((9,2),3),((14,((6,(15,11)),(8,10))),(((13,7),4),5))),12,1); tree rep.1230000 = (((((9,2),3),((4,14),(13,7))),5),(12,((8,10),(11,(15,6)))),1); tree rep.1240000 = ((((8,10),((15,11),6)),((5,((13,7),14)),((3,(9,2)),4))),12,1); tree rep.1250000 = (12,((10,8),(((15,11),6),(14,((4,(13,7)),(5,((9,2),3)))))),1); tree rep.1260000 = ((((((6,15),11),10),8),((14,((7,13),4)),((3,(9,2)),5))),12,1); tree rep.1270000 = (12,(((7,13),(((2,9),3),((5,14),4))),((((6,11),15),10),8)),1); tree rep.1280000 = ((14,((((10,8),((6,15),11)),5),(((3,(9,2)),(7,13)),4))),12,1); tree rep.1290000 = (12,((8,(10,(11,(15,6)))),(((4,7),13),(14,(5,(3,(9,2)))))),1); tree rep.1300000 = (((((13,7),((14,5),((9,2),3))),4),(10,(((6,15),11),8))),12,1); tree rep.1310000 = ((((8,((6,15),11)),10),((3,(2,9)),((14,5),(4,(13,7))))),12,1); tree rep.1320000 = (12,((((2,9),3),(5,((4,(7,13)),14))),((10,((15,11),6)),8)),1); tree rep.1330000 = (12,(((3,(2,9)),(14,((5,4),(13,7)))),((((15,6),11),8),10)),1); tree rep.1340000 = ((8,((((15,11),6),(5,(((4,14),(13,7)),((2,9),3)))),10)),12,1); tree rep.1350000 = (((((5,14),((4,7),13)),((2,9),3)),(((11,(6,15)),10),8)),12,1); tree rep.1360000 = ((12,((((15,11),6),8),10)),(5,((14,((7,13),4)),((9,2),3))),1); tree rep.1370000 = ((((8,(6,(11,15))),10),(((5,14),((7,13),4)),(3,(9,2)))),12,1); tree rep.1380000 = (((((13,7),14),(5,4)),((12,(2,9)),3)),((8,10),(6,(11,15))),1); tree rep.1390000 = (12,(((4,(7,13)),((5,14),((2,9),3))),(10,(8,((15,11),6)))),1); tree rep.1400000 = ((12,(8,(((15,6),11),10))),(((3,(9,2)),5),(14,((13,7),4))),1); tree rep.1410000 = (((3,((5,(9,2)),12)),((4,(7,13)),14)),((10,((15,6),11)),8),1); tree rep.1420000 = ((((10,(11,(15,6))),8),((14,5),(((9,2),3),(4,(7,13))))),12,1); tree rep.1430000 = (12,(((11,(6,15)),(8,10)),((3,((13,7),4)),(((9,2),5),14))),1); tree rep.1440000 = ((((5,((14,(4,(7,13))),((2,9),3))),(8,10)),(6,(11,15))),12,1); tree rep.1450000 = (((((14,(5,(2,3))),4),((10,8),((11,15),6))),(9,(7,13))),12,1); tree rep.1460000 = ((((((4,(13,7)),((5,14),(3,(9,2)))),10),8),(6,(11,15))),12,1); tree rep.1470000 = (12,((8,(10,(11,(15,6)))),((((4,(7,13)),14),((2,9),3)),5)),1); tree rep.1480000 = (((((7,(4,13)),(5,((9,2),3))),14),(((6,(15,11)),8),10)),12,1); tree rep.1490000 = ((12,((3,(9,2)),((((7,4),13),14),5))),(((6,15),11),(8,10)),1); tree rep.1500000 = ((7,((5,(14,((3,(2,9)),(4,((10,8),((15,6),11)))))),13)),12,1); tree rep.1510000 = (((((6,11),15),(10,8)),((((13,7),14),4),(((2,9),3),5))),12,1); tree rep.1520000 = ((((14,5),(((7,13),4),((2,9),3))),((8,10),((15,11),6))),12,1); tree rep.1530000 = ((5,((4,(7,13)),(14,(3,(2,9))))),(12,(8,(10,(11,(15,6))))),1); tree rep.1540000 = (12,(((3,(2,9)),((4,((14,13),7)),5)),(10,(8,((6,15),11)))),1); tree rep.1550000 = (12,(((11,(15,6)),(10,8)),(5,(((9,2),3),(14,((7,13),4))))),1); tree rep.1560000 = ((((3,(9,2)),((4,(13,7)),(5,14))),((11,(15,6)),(8,10))),12,1); tree rep.1570000 = (((15,11),6),(5,((2,9),(((14,((4,3),12)),(13,7)),(10,8)))),1); tree rep.1580000 = ((((11,(15,6)),(10,8)),(((4,(7,13)),14),(((2,9),3),5))),12,1); tree rep.1590000 = (((((2,9),3),(4,((7,13),(14,5)))),((8,(6,(15,11))),10)),12,1); tree rep.1600000 = ((((11,(15,6)),(10,8)),12),((((14,4),(13,7)),((2,9),3)),5),1); tree rep.1610000 = ((((10,8),((11,15),6)),((((2,9),3),5),(14,(4,(7,13))))),12,1); tree rep.1620000 = (((((2,9),3),((14,5),(4,(7,13)))),(10,(8,((6,15),11)))),12,1); tree rep.1630000 = (((((7,13),((5,4),14)),((9,2),3)),(10,(8,(6,(11,15))))),12,1); tree rep.1640000 = (((((14,5),((2,9),3)),(4,(13,7))),((11,(6,15)),(8,10))),12,1); tree rep.1650000 = (((((3,(9,2)),(((13,7),14),4)),5),(((6,15),11),(8,10))),12,1); tree rep.1660000 = ((((10,((15,11),6)),8),(4,(((14,(7,13)),5),(3,(2,9))))),12,1); tree rep.1670000 = (((14,(((13,7),4),(5,((9,2),3)))),(8,(10,((15,11),6)))),12,1); tree rep.1680000 = (12,(((8,10),(11,(6,15))),(((7,13),(4,14)),(((9,2),3),5))),1); tree rep.1690000 = (((8,((6,(15,11)),10)),(5,((14,((13,4),7)),((9,2),3)))),12,1); tree rep.1700000 = (12,(((4,(5,(13,7))),(((9,2),3),14)),((8,(15,(6,11))),10)),1); tree rep.1710000 = (((((((9,2),3),(4,(7,13))),((8,10),(6,(11,15)))),5),14),12,1); tree rep.1720000 = (((8,((6,(11,15)),10)),(((14,4),(13,7)),((3,(2,9)),5))),12,1); tree rep.1730000 = (((5,((4,14),(13,7))),((2,9),3)),((((11,15),6),(10,8)),12),1); tree rep.1740000 = (12,(((((2,9),3),5),(((13,7),4),14)),((8,((15,6),11)),10)),1); tree rep.1750000 = (12,((((4,(5,14)),(7,13)),((9,2),3)),(10,(8,(11,(15,6))))),1); tree rep.1760000 = ((((5,(14,((7,13),4))),(3,(9,2))),((11,(15,6)),(10,8))),12,1); tree rep.1770000 = ((10,(8,(6,(11,15)))),((((14,4),(13,7)),(5,(3,(2,9)))),12),1); tree rep.1780000 = (12,((((((7,13),4),14),5),((2,9),3)),((10,8),(6,(11,15)))),1); tree rep.1790000 = ((((8,10),(11,(15,6))),((3,(2,9)),(((7,13),(4,14)),5))),12,1); tree rep.1800000 = (((10,8),(11,(6,15))),((((((4,(7,13)),9),3),2),(14,5)),12),1); tree rep.1810000 = (((10,(8,(11,(15,6)))),(((((9,2),3),(7,13)),5),(14,4))),12,1); tree rep.1820000 = (12,((4,((3,(9,2)),(5,((7,13),14)))),((10,8),(11,(6,15)))),1); tree rep.1830000 = (12,((((11,(6,15)),8),10),((14,5),((4,(13,7)),(3,(9,2))))),1); tree rep.1840000 = (12,(((4,(14,((13,7),(3,(9,2))))),5),(((11,(15,6)),10),8)),1); tree rep.1850000 = ((((14,(9,2)),(7,13)),5),(4,(3,(12,((10,8),((15,11),6))))),1); tree rep.1860000 = ((((8,10),(6,(15,11))),((14,5),(((7,13),((9,2),3)),4))),12,1); tree rep.1870000 = (12,(((8,10),(11,(6,15))),(((3,(9,2)),5),((4,(7,13)),14))),1); tree rep.1880000 = ((((((14,((13,7),4)),5),(3,(2,9))),(10,8)),(6,(15,11))),12,1); tree rep.1890000 = ((((10,(11,(6,15))),8),(((7,13),4),(((9,2),3),(14,5)))),12,1); tree rep.1900000 = (12,(((14,5),((3,(2,9)),((13,7),4))),((((6,15),11),8),10)),1); tree rep.1910000 = (((((11,15),6),(10,8)),(5,(14,((7,(13,4)),((2,9),3))))),12,1); tree rep.1920000 = (((((9,2),(5,(7,(4,(14,13))))),3),(10,((6,(15,11)),8))),12,1); tree rep.1930000 = ((((9,2),3),(5,(((13,7),4),14))),(12,(((6,(15,11)),10),8)),1); tree rep.1940000 = (12,((((9,2),3),(5,(((13,7),4),14))),(10,((6,(11,15)),8))),1); tree rep.1950000 = ((((((13,7),(5,4)),((2,9),3)),14),(10,(8,((11,15),6)))),12,1); tree rep.1960000 = (12,(((3,(2,9)),((14,4),((13,7),5))),(((11,(6,15)),10),8)),1); tree rep.1970000 = (12,(((((7,13),(14,5)),4),(3,(2,9))),((10,8),((15,6),11))),1); tree rep.1980000 = ((((6,11),15),(8,10)),(((3,(2,9)),(5,(4,(14,(13,7))))),12),1); tree rep.1990000 = (((8,(10,((15,6),11))),((3,(2,9)),((5,14),((13,7),4)))),12,1); tree rep.2000000 = ((((6,(11,15)),(8,10)),(5,(((((2,9),3),4),14),(7,13)))),12,1); tree rep.2010000 = ((((10,8),(11,(15,6))),((((4,(13,7)),5),14),((2,9),3))),12,1); tree rep.2020000 = (12,(5,(((6,(11,15)),(10,8)),((3,(9,2)),(((13,7),14),4)))),1); tree rep.2030000 = (12,(((((15,11),6),8),10),((((4,(13,7)),14),5),(3,(2,9)))),1); tree rep.2040000 = (8,(((15,11),6),(((((3,(2,9)),((4,14),(13,7))),5),12),10)),1); tree rep.2050000 = (((((15,11),6),(((((7,13),4),14),((2,9),3)),5)),(10,8)),12,1); tree rep.2060000 = ((((8,(11,(15,6))),10),((3,(2,9)),((14,((7,13),4)),5))),12,1); tree rep.2070000 = (12,(((5,((3,(2,9)),14)),(4,(13,7))),((8,((11,15),6)),10)),1); tree rep.2080000 = (12,(((15,6),11),((10,8),((4,(13,7)),((9,2),((14,5),3))))),1); tree rep.2090000 = (12,((((((7,13),4),((9,2),3)),5),14),(((15,11),6),(10,8))),1); tree rep.2100000 = (((9,2),(((((8,10),(6,(15,11))),(((13,7),4),14)),5),3)),12,1); tree rep.2110000 = ((((14,(7,(13,4))),(((2,9),3),5)),((10,8),((11,15),6))),12,1); tree rep.2120000 = (12,((((8,10),(6,(11,15))),(((7,13),4),(5,14))),(3,(9,2))),1); tree rep.2130000 = (12,(((5,(3,(((7,13),4),14))),(9,2)),(((15,(6,11)),8),10)),1); tree rep.2140000 = (12,(((10,8),(6,(11,15))),((7,13),(4,((((2,9),3),5),14)))),1); tree rep.2150000 = (12,((((6,15),11),(10,8)),(((14,(4,(7,13))),(3,(2,9))),5)),1); tree rep.2160000 = ((((((4,14),5),(7,13)),((2,9),3)),((8,10),(11,(15,6)))),12,1); tree rep.2170000 = ((((((13,7),4),14),5),(3,(2,9))),(12,((11,(15,6)),(10,8))),1); tree rep.2180000 = ((12,(((3,(9,2)),((4,(13,7)),14)),5)),((10,(6,(15,11))),8),1); tree rep.2190000 = ((((8,((3,(2,9)),(5,((4,(13,7)),14)))),10),(11,(15,6))),12,1); tree rep.2200000 = (12,(((9,2),3),((((8,10),((15,11),6)),(14,((13,4),7))),5)),1); tree rep.2210000 = ((12,((((15,6),11),8),10)),(((2,9),3),(5,(14,(4,(13,7))))),1); tree rep.2220000 = (((5,(12,((2,9),3))),((4,(13,7)),14)),(((15,11),6),(10,8)),1); tree rep.2230000 = (((5,((4,(14,(13,7))),((9,2),3))),((((15,6),11),8),10)),12,1); tree rep.2240000 = (12,((((11,(6,15)),10),8),((5,(3,(9,2))),(((13,7),4),14))),1); tree rep.2250000 = ((((((3,2),9),(14,((13,7),4))),5),12),((8,10),((6,15),11)),1); tree rep.2260000 = ((((8,10),(11,(15,6))),(((3,(9,2)),4),(5,((14,7),13)))),12,1); tree rep.2270000 = (((8,10),(11,(6,15))),(((((14,4),(13,7)),5),(3,(2,9))),12),1); tree rep.2280000 = (((((6,(11,15)),8),10),(((2,9),((14,5),((13,7),4))),3)),12,1); tree rep.2290000 = (12,(((14,(4,(7,13))),((9,2),3)),(((10,8),(11,(6,15))),5)),1); tree rep.2300000 = (12,((((4,(14,(13,7))),(3,(2,9))),5),((11,(15,6)),(10,8))),1); tree rep.2310000 = (12,(((4,((13,7),(5,14))),((2,9),3)),((6,(11,15)),(10,8))),1); tree rep.2320000 = ((((4,(7,13)),(((3,(9,2)),((10,8),(11,(15,6)))),14)),5),12,1); tree rep.2330000 = (12,((4,(13,7)),(((5,((9,2),3)),14),(((6,(11,15)),8),10))),1); tree rep.2340000 = (12,((((3,(9,2)),5),(14,((7,13),4))),((8,10),(15,(6,11)))),1); tree rep.2350000 = (12,(((4,((13,7),14)),(5,((2,9),3))),((10,8),((11,6),15))),1); tree rep.2360000 = (((((6,15),11),(10,8)),(5,(14,((4,(13,7)),((2,9),3))))),12,1); tree rep.2370000 = (12,(((13,7),(5,((14,4),((10,8),((15,11),6))))),(3,(9,2))),1); tree rep.2380000 = (((6,(15,11)),(8,10)),(12,((5,(14,(7,(4,13)))),(3,(2,9)))),1); tree rep.2390000 = ((((10,8),((6,15),11)),(((14,5),((7,13),4)),(3,(2,9)))),12,1); tree rep.2400000 = ((((10,8),((11,15),6)),((5,14),((4,(7,13)),((9,2),3)))),12,1); tree rep.2410000 = (((8,((11,(15,6)),10)),12),(((5,14),((9,2),3)),((7,13),4)),1); tree rep.2420000 = (12,((((13,7),(4,14)),((((15,6),11),(8,10)),5)),(3,(9,2))),1); tree rep.2430000 = (((((5,14),(4,(13,7))),((9,2),3)),(8,(10,((11,15),6)))),12,1); tree rep.2440000 = ((((13,((14,7),4)),(((9,2),3),5)),12),((10,8),(11,(6,15))),1); tree rep.2450000 = ((((((6,15),11),8),10),((3,(9,2)),(((5,14),4),(7,13)))),12,1); tree rep.2460000 = ((((5,(((7,14),4),13)),((9,2),3)),((10,(15,(11,6))),8)),12,1); tree rep.2470000 = ((((5,14),(7,13)),(((9,2),3),4)),((((6,(15,11)),8),10),12),1); tree rep.2480000 = (((14,((3,(9,2)),(5,(4,(7,13))))),(((15,11),6),(8,10))),12,1); tree rep.2490000 = (12,((((8,((15,(11,6)),10)),(((7,13),4),14)),5),((9,2),3)),1); tree rep.2500000 = (12,(((((9,2),3),5),(14,((13,7),4))),((15,(11,6)),(10,8))),1); tree rep.2510000 = ((6,(15,11)),(8,(10,(12,((5,(14,(4,(7,13)))),(3,(2,9)))))),1); tree rep.2520000 = ((((10,((11,15),6)),8),(((2,9),3),(5,(14,(4,(7,13)))))),12,1); tree rep.2530000 = (14,(((4,(12,(3,(9,2)))),((13,7),5)),((8,10),((11,6),15))),1); tree rep.2540000 = ((((8,(11,(6,15))),10),((4,(13,7)),((3,(2,9)),(14,5)))),12,1); tree rep.2550000 = ((((5,14),(((13,7),4),((9,2),3))),(((15,6),11),(10,8))),12,1); tree rep.2560000 = (12,(((11,15),6),(8,(10,((((7,13),5),(14,4)),((9,2),3))))),1); tree rep.2570000 = (((14,(((13,7),4),5)),((9,2),3)),(12,((11,(6,15)),(10,8))),1); tree rep.2580000 = ((((8,10),((6,15),11)),(3,((9,2),(((14,4),(7,13)),5)))),12,1); tree rep.2590000 = (12,(((10,(11,(15,6))),8),((14,((3,(9,2)),5)),((13,7),4))),1); tree rep.2600000 = ((((10,8),(6,(15,11))),(5,(((13,7),(14,4)),(3,(9,2))))),12,1); tree rep.2610000 = (((8,(((14,(4,(7,13))),(5,(3,(9,2)))),10)),(6,(11,15))),12,1); tree rep.2620000 = (12,(((10,8),(11,(6,15))),((5,(7,13)),(((2,9),3),(4,14)))),1); tree rep.2630000 = ((((2,9),3),((5,14),(4,(13,7)))),((10,(8,((11,15),6))),12),1); tree rep.2640000 = (((10,8),((11,15),6)),(((((7,13),14),4),(((9,2),3),5)),12),1); tree rep.2650000 = (12,(((5,((13,7),4)),(((2,9),3),14)),((8,(11,(6,15))),10)),1); tree rep.2660000 = (12,(((14,((7,13),4)),(5,(3,(2,9)))),(8,((15,(6,11)),10))),1); tree rep.2670000 = ((((8,10),((6,15),11)),(((4,(7,13)),((3,(2,9)),5)),14)),12,1); tree rep.2680000 = (((8,10),((15,6),11)),((((((2,9),3),5),14),(4,(7,13))),12),1); tree rep.2690000 = ((((((14,4),(7,13)),5),(3,(9,2))),(8,((6,(15,11)),10))),12,1); tree rep.2700000 = (((5,(((7,13),4),14)),(3,(9,2))),(12,(((11,(15,6)),10),8)),1); tree rep.2710000 = ((((6,(11,15)),8),10),(((14,5),(((9,2),3),((13,7),4))),12),1); tree rep.2720000 = (((((10,8),(11,(15,6))),((2,9),3)),(4,(5,((7,13),14)))),12,1); tree rep.2730000 = (((10,((15,6),11)),8),(12,(5,((((4,14),7),13),(3,(2,9))))),1); tree rep.2740000 = (12,((((11,15),6),(10,8)),((5,4),((13,7),(14,(3,(2,9)))))),1); tree rep.2750000 = ((((8,10),((15,11),6)),12),(((2,9),3),(((7,13),4),(5,14))),1); tree rep.2760000 = (((((5,14),(3,(2,9))),((13,7),4)),((8,(11,(15,6))),10)),12,1); tree rep.2770000 = (12,((4,((5,(14,((9,2),3))),(7,13))),((8,(11,(6,15))),10)),1); tree rep.2780000 = (12,((3,(9,2)),((7,(4,13)),(((8,((15,6),11)),10),(5,14)))),1); tree rep.2790000 = (12,((10,((11,(15,6)),8)),((4,((14,5),(7,13))),(3,(9,2)))),1); tree rep.2800000 = (((((11,(15,6)),8),10),((4,((14,5),(13,7))),(3,(2,9)))),12,1); tree rep.2810000 = (((12,((9,2),3)),(5,((11,(15,6)),(10,8)))),((4,14),(7,13)),1); tree rep.2820000 = ((((6,(11,15)),(10,8)),((5,((2,9),3)),((13,7),(4,14)))),12,1); tree rep.2830000 = ((((10,8),(11,(15,6))),((4,((13,7),((9,2),3))),(14,5))),12,1); tree rep.2840000 = (((5,((((2,9),3),14),(4,(13,7)))),(10,(8,(6,(15,11))))),12,1); tree rep.2850000 = ((((((13,7),(3,(2,9))),(14,5)),4),(((11,15),6),(10,8))),12,1); tree rep.2860000 = (12,((5,(((14,(13,7)),4),(3,(2,9)))),((6,(15,11)),(10,8))),1); tree rep.2870000 = (((5,((((13,7),4),((2,9),3)),14)),((10,((15,6),11)),8)),12,1); tree rep.2880000 = ((((10,8),((11,15),6)),((14,(((9,2),3),(4,5))),(7,13))),12,1); tree rep.2890000 = (12,((((3,(2,9)),(14,((13,7),4))),5),((11,(6,15)),(8,10))),1); tree rep.2900000 = ((((((7,13),4),(5,14)),(3,(2,9))),((((6,15),11),10),8)),12,1); tree rep.2910000 = (12,(5,(((7,13),4),((14,((9,2),3)),((11,(6,15)),(10,8))))),1); tree rep.2920000 = (12,(((((3,(9,2)),(13,7)),4),(5,14)),((8,(11,(6,15))),10)),1); tree rep.2930000 = ((((10,8),(11,(6,15))),((((4,(13,7)),14),5),((2,9),3))),12,1); tree rep.2940000 = (((((2,3),9),(((5,14),(13,7)),4)),(((6,(11,15)),10),8)),12,1); tree rep.2950000 = ((((5,((7,13),(((2,9),3),4))),14),(((11,(6,15)),10),8)),12,1); tree rep.2960000 = ((((10,((11,15),6)),8),(((9,2),3),(((4,(13,7)),14),5))),12,1); tree rep.2970000 = (12,(((3,(9,2)),((5,14),(4,(13,7)))),(8,(10,((15,11),6)))),1); tree rep.2980000 = (12,((((11,(6,15)),10),8),(5,(14,((3,(2,9)),((7,13),4))))),1); tree rep.2990000 = (((5,14),((((2,9),3),4),(7,13))),(((11,(6,15)),(8,10)),12),1); tree rep.3000000 = ((((14,5),(3,(9,2))),(((10,8),(6,(15,11))),(4,(7,13)))),12,1); tree rep.3010000 = (12,((((3,(2,9)),5),((13,7),(14,4))),((8,10),((15,11),6))),1); tree rep.3020000 = ((((6,11),15),(10,8)),(((3,(2,9)),12),(5,((4,(13,7)),14))),1); tree rep.3030000 = (12,(((8,10),(6,(11,15))),((5,((2,9),3)),(((7,13),4),14))),1); tree rep.3040000 = (((((4,(7,13)),14),(5,(3,(9,2)))),((10,8),(15,(6,11)))),12,1); tree rep.3050000 = ((((13,7),4),(5,((((11,15),6),(8,10)),(((2,9),3),14)))),12,1); tree rep.3060000 = (12,(((10,((11,15),6)),8),(4,(((7,13),14),(5,(3,(2,9)))))),1); tree rep.3070000 = ((((6,(15,11)),(8,10)),(((5,(14,4)),(7,13)),((2,9),3))),12,1); tree rep.3080000 = (12,((14,(((5,7),(13,4)),(3,(9,2)))),((10,(6,(15,11))),8)),1); tree rep.3090000 = ((((4,(7,((14,(3,(9,2))),13))),5),(10,((6,(11,15)),8))),12,1); tree rep.3100000 = ((((((7,13),4),(5,14)),((2,9),3)),((((15,6),11),10),8)),12,1); tree rep.3110000 = (((((7,13),((((15,11),6),(10,8)),4)),14),(((9,2),3),5)),12,1); tree rep.3120000 = (((8,(10,(15,(11,6)))),((((2,9),3),5),(4,(14,(7,13))))),12,1); tree rep.3130000 = (((((((13,7),14),4),(3,(9,2))),5),(((11,(6,15)),10),8)),12,1); tree rep.3140000 = (((((9,2),3),((7,13),4)),((((15,11),6),(8,10)),12)),(5,14),1); tree rep.3150000 = ((((14,(7,13)),4),(3,(9,2))),((8,(10,(11,(15,6)))),(5,12)),1); tree rep.3160000 = ((14,(5,(((3,(9,2)),(7,(4,13))),((10,8),((11,15),6))))),12,1); tree rep.3170000 = (12,(((8,10),(6,(11,15))),((5,(14,((13,7),4))),((9,2),3))),1); tree rep.3180000 = ((((9,2),3),(((4,14),(7,13)),5)),(((11,(6,15)),(10,8)),12),1); tree rep.3190000 = (12,((((9,2),3),((4,14),((13,7),5))),((6,(11,15)),(10,8))),1); tree rep.3200000 = ((((3,(9,2)),(((6,15),11),(8,10))),((4,(7,13)),(14,5))),12,1); tree rep.3210000 = (12,((((3,(9,2)),(((7,13),14),4)),5),((8,10),(11,(6,15)))),1); tree rep.3220000 = (((10,8),((11,15),6)),((((3,(9,2)),((4,(13,7)),14)),5),12),1); tree rep.3230000 = (((((15,6),11),(10,8)),(((2,9),(((13,7),4),14)),(5,3))),12,1); tree rep.3240000 = (((5,(8,(10,((6,15),11)))),((3,(9,2)),(14,((13,7),4)))),12,1); tree rep.3250000 = ((12,(((14,((13,7),4)),5),(3,(9,2)))),((10,8),(11,(15,6))),1); tree rep.3260000 = ((((((((9,2),3),5),(4,(13,7))),14),(11,(15,6))),(8,10)),12,1); tree rep.3270000 = (12,((((4,(13,7)),((9,2),3)),(5,14)),((11,(6,15)),(8,10))),1); tree rep.3280000 = (((8,10),((11,15),6)),(((3,(9,2)),((5,14),((13,7),4))),12),1); tree rep.3290000 = ((((14,((13,7),4)),5),((2,9),3)),(12,((11,(6,15)),(10,8))),1); tree rep.3300000 = (((((9,2),3),(5,((4,(13,7)),14))),((6,(11,15)),(8,10))),12,1); tree rep.3310000 = (12,((10,8),(((((4,5),14),(7,13)),(3,(9,2))),((15,11),6))),1); tree rep.3320000 = (((14,((13,7),4)),((((10,8),(6,(11,15))),(3,(9,2))),5)),12,1); tree rep.3330000 = (12,(((((5,((((13,7),4),14),(9,2))),3),10),8),((15,11),6)),1); tree rep.3340000 = ((((14,5),((7,13),4)),(3,((9,2),12))),(((6,15),11),(10,8)),1); tree rep.3350000 = (12,((((9,2),3),((5,14),((13,7),4))),(((6,(15,11)),10),8)),1); tree rep.3360000 = (12,((((((6,15),11),((7,13),(4,14))),(3,(2,9))),5),(10,8)),1); tree rep.3370000 = (((3,(9,2)),(14,(((13,7),5),(4,(((15,11),6),(8,10)))))),12,1); tree rep.3380000 = ((((14,5),((3,(9,2)),((7,13),4))),(10,(8,((6,15),11)))),12,1); tree rep.3390000 = (12,(((10,((15,11),6)),8),((3,((9,2),5)),(14,(4,(13,7))))),1); tree rep.3400000 = (((((4,(13,7)),5),14),((10,(((11,15),6),8)),((2,9),3))),12,1); tree rep.3410000 = (((5,(((2,9),3),(((13,7),4),14))),((11,(6,15)),(8,10))),12,1); tree rep.3420000 = (12,(((14,(5,((13,7),4))),((9,2),3)),(((11,(15,6)),8),10)),1); tree rep.3430000 = (12,((((6,(15,11)),8),10),(((3,(9,2)),5),((4,14),(13,7)))),1); tree rep.3440000 = ((((10,8),(11,(15,6))),(((7,13),4),(14,((3,(9,2)),5)))),12,1); tree rep.3450000 = (12,(((5,(3,(2,9))),(((4,13),7),14)),((8,10),((15,11),6))),1); tree rep.3460000 = ((((6,(11,15)),(8,10)),(((((13,4),7),14),(3,(2,9))),5)),12,1); tree rep.3470000 = ((((10,(6,(11,15))),8),((((13,7),(14,4)),((2,9),3)),5)),12,1); tree rep.3480000 = (((3,(2,9)),12),(((4,((13,7),14)),5),((10,(6,(11,15))),8)),1); tree rep.3490000 = (12,((((9,2),3),(5,(4,(14,(7,13))))),(10,(8,((11,15),6)))),1); tree rep.3500000 = (12,(((8,10),((6,15),11)),((3,(9,2)),((5,(4,(7,13))),14))),1); tree rep.3510000 = (12,((5,(3,(2,9))),((4,(14,(7,13))),(8,(10,((11,15),6))))),1); tree rep.3520000 = (((5,((3,(9,2)),(14,((7,4),13)))),(10,(((11,15),6),8))),12,1); tree rep.3530000 = ((((8,10),((15,11),6)),12),((5,(4,((7,13),14))),(3,(9,2))),1); tree rep.3540000 = (12,(((((2,9),3),5),(14,((7,13),4))),(10,(8,(11,(15,6))))),1); tree rep.3550000 = (((((5,14),(4,(13,7))),((9,2),3)),((8,((6,15),11)),10)),12,1); tree rep.3560000 = ((((10,(11,(15,6))),8),(4,(((13,7),(3,(2,9))),(14,5)))),12,1); tree rep.3570000 = (((3,(2,9)),(5,(14,(13,(4,7))))),((((15,(6,11)),8),10),12),1); tree rep.3580000 = (((((9,2),3),(((4,(7,13)),((8,((15,11),6)),10)),5)),14),12,1); tree rep.3590000 = (12,(((5,((4,(13,7)),14)),((2,9),3)),(10,(((6,15),11),8))),1); tree rep.3600000 = (12,((((14,5),(4,(13,7))),((2,9),3)),((((6,15),11),8),10)),1); tree rep.3610000 = ((((((11,15),6),10),8),((5,(3,(2,9))),((4,(13,7)),14))),12,1); tree rep.3620000 = (12,(((10,8),(6,(11,15))),(((7,13),14),(((9,2),3),(5,4)))),1); tree rep.3630000 = (12,(((((13,7),(4,14)),5),(8,(10,((6,15),11)))),(3,(2,9))),1); tree rep.3640000 = ((((6,(15,11)),(10,8)),(4,(((13,7),(5,14)),(3,(2,9))))),12,1); tree rep.3650000 = (12,((14,(((10,8),(11,(15,6))),((7,13),5))),((3,(2,9)),4)),1); tree rep.3660000 = ((((((6,15),11),10),8),((5,(((13,7),4),14)),(3,(9,2)))),12,1); tree rep.3670000 = ((((15,6),11),(10,(8,(5,((((7,13),14),4),(3,(9,2))))))),12,1); tree rep.3680000 = ((8,10),((5,((((9,2),3),12),(14,((13,7),4)))),((15,6),11)),1); tree rep.3690000 = (((5,((((13,7),4),(3,(9,2))),14)),((10,8),((6,15),11))),12,1); tree rep.3700000 = (((((3,(9,2)),((5,14),(7,13))),4),((10,8),(6,(15,11)))),12,1); tree rep.3710000 = (12,((((11,(6,15)),8),10),(5,((((7,13),4),14),((9,2),3)))),1); tree rep.3720000 = ((((13,4),((7,((2,9),3)),(14,5))),((10,8),(11,(15,6)))),12,1); tree rep.3730000 = (12,((((15,11),6),(10,8)),((14,(5,(13,(7,4)))),(3,(2,9)))),1); tree rep.3740000 = (((5,((14,((13,7),4)),(3,(9,2)))),((10,8),(11,(6,15)))),12,1); tree rep.3750000 = (12,((((13,7),(5,((9,2),3))),(14,4)),((11,(6,15)),(10,8))),1); tree rep.3760000 = (((((4,(7,13)),14),((3,(9,2)),5)),((8,10),(11,(6,15)))),12,1); tree rep.3770000 = (13,(7,((3,(2,9)),(14,(((12,((10,8),((15,6),11))),4),5)))),1); tree rep.3780000 = (((((2,9),3),(13,(4,7))),(14,5)),(12,(((11,(15,6)),10),8)),1); tree rep.3790000 = (12,(((((4,(13,7)),14),(5,(3,(2,9)))),(11,(15,6))),(10,8)),1); tree rep.3800000 = ((((3,(2,9)),(((4,13),7),(5,14))),12),(10,((6,(11,15)),8)),1); tree rep.3810000 = (12,((8,(10,(6,(11,15)))),(((2,9),3),((4,((13,7),14)),5))),1); tree rep.3820000 = (((5,(((14,(13,7)),4),((9,2),3))),((8,10),(11,(15,6)))),12,1); tree rep.3830000 = ((((10,8),((6,15),11)),((4,(13,7)),(((2,9),3),(14,5)))),12,1); tree rep.3840000 = (12,(((((9,2),(14,5)),(((11,(15,6)),10),8)),(4,(7,13))),3),1); tree rep.3850000 = (12,(((14,5),(3,((9,2),(4,(7,13))))),(((15,11),6),(10,8))),1); tree rep.3860000 = (12,(((10,8),((15,11),6)),(((14,(4,(7,13))),5),((2,9),3))),1); tree rep.3870000 = (12,(((14,((13,7),4)),(5,((2,9),3))),(((11,(15,6)),8),10)),1); tree rep.3880000 = ((((((8,10),(11,(15,6))),5),(14,(4,(13,7)))),((2,9),3)),12,1); tree rep.3890000 = (((((11,(15,6)),(8,10)),((9,2),3)),((14,4),((13,7),5))),12,1); tree rep.3900000 = (((((6,11),15),(10,8)),((5,((4,(13,7)),14)),(3,(9,2)))),12,1); tree rep.3910000 = (((5,(((8,10),(11,(15,6))),(((2,9),3),((7,4),13)))),14),12,1); tree rep.3920000 = (12,(((((15,6),11),10),8),((((7,13),4),(5,14)),((9,2),3))),1); tree rep.3930000 = (12,((9,2),((((10,8),(11,(15,6))),(3,5)),((14,(13,7)),4))),1); tree rep.3940000 = (12,(((3,((2,9),5)),(4,((7,14),13))),(((11,(15,6)),8),10)),1); tree rep.3950000 = (12,(((10,(11,(15,6))),8),(((13,(7,(14,4))),(3,(2,9))),5)),1); tree rep.3960000 = (12,((((((13,7),4),(5,14)),3),(9,2)),((8,10),((11,15),6))),1); tree rep.3970000 = ((((14,(4,(13,7))),((3,(9,2)),5)),((((6,15),11),8),10)),12,1); tree rep.3980000 = (((((14,5),((7,13),4)),(3,(2,9))),((10,8),((11,15),6))),12,1); tree rep.3990000 = (((5,(14,((13,7),4))),(((2,9),3),12)),(10,(8,(11,(6,15)))),1); tree rep.4000000 = (12,((4,(((7,13),((2,9),3)),(14,5))),(((11,(6,15)),10),8)),1); tree rep.4010000 = ((12,(14,(5,((3,(2,9)),((7,13),4))))),(((15,11),6),(8,10)),1); tree rep.4020000 = (12,(((14,((5,(3,(9,2))),(7,13))),4),(((6,(15,11)),8),10)),1); tree rep.4030000 = (12,((((10,8),(6,(15,11))),5),(((9,2),3),(14,(4,(7,13))))),1); tree rep.4040000 = (((((14,5),((9,2),3)),((13,7),4)),12),((10,8),(6,(11,15))),1); tree rep.4050000 = (12,(((14,(((11,15),6),(10,8))),(7,13)),((5,(3,(2,9))),4)),1); tree rep.4060000 = ((((4,(((14,13),7),5)),(3,(9,2))),(((11,(15,6)),8),10)),12,1); tree rep.4070000 = (12,(((5,((7,(4,13)),14)),((9,2),3)),((6,(11,15)),(8,10))),1); tree rep.4080000 = (12,((((((15,11),6),(8,10)),((3,(9,2)),((13,7),4))),5),14),1); tree rep.4090000 = ((((((13,7),5),4),((3,14),(9,2))),(8,(10,(11,(6,15))))),12,1); tree rep.4100000 = (12,(((((4,((3,(9,2)),5)),((7,13),14)),10),8),((11,15),6)),1); tree rep.4110000 = (((((15,11),6),10),8),(((5,(14,(4,(7,13)))),(3,(9,2))),12),1); tree rep.4120000 = (12,((((11,(6,15)),10),8),((((9,2),3),(14,((7,13),4))),5)),1); tree rep.4130000 = (12,((((2,9),3),(8,(((6,15),11),10))),(5,((4,14),(13,7)))),1); tree rep.4140000 = ((((13,7),4),((12,(3,(2,9))),(5,14))),(10,((6,(15,11)),8)),1); tree rep.4150000 = ((((14,((13,7),4)),((9,2),3)),5),(8,((6,(15,11)),(10,12))),1); tree rep.4160000 = (((13,7),4),(((14,5),((2,9),(12,3))),((11,(15,6)),(10,8))),1); tree rep.4170000 = ((5,((3,(2,9)),((14,(13,7)),4))),(12,((6,(15,11)),(10,8))),1); tree rep.4180000 = ((((2,9),3),(((4,(13,7)),14),((10,(8,((15,11),6))),5))),12,1); tree rep.4190000 = ((((14,5),((7,13),4)),(3,(9,2))),((((15,6),11),(8,10)),12),1); tree rep.4200000 = (12,((((8,10),(6,(11,15))),(3,(2,9))),((((13,7),14),4),5)),1); tree rep.4210000 = (12,((((10,8),(6,(15,11))),(14,(4,((7,13),(3,(2,9)))))),5),1); tree rep.4220000 = (((8,(((15,11),6),10)),((5,((7,13),4)),(14,((9,2),3)))),12,1); tree rep.4230000 = (12,(((5,((2,9),3)),(14,((13,7),4))),((8,(11,(15,6))),10)),1); tree rep.4240000 = (((((4,(7,13)),((9,2),3)),(14,5)),((10,8),(11,(6,15)))),12,1); tree rep.4250000 = (12,((((3,(9,2)),5),(14,(4,(7,13)))),(((15,6),11),(8,10))),1); tree rep.4260000 = (((8,(6,(11,15))),10),(12,(4,((7,13),((5,14),(3,(2,9)))))),1); tree rep.4270000 = (12,((((3,(9,2)),5),((13,7),(14,4))),(((15,6),11),(10,8))),1); tree rep.4280000 = ((((((15,6),11),10),8),(((7,13),((2,9),3)),(4,(14,5)))),12,1); tree rep.4290000 = ((((((2,9),3),14),(5,((13,7),4))),(8,((6,(15,11)),10))),12,1); tree rep.4300000 = (12,(((8,10),(11,(6,15))),(((((2,9),(3,(13,7))),5),14),4)),1); tree rep.4310000 = (12,(((5,((4,(7,13)),14)),(3,(9,2))),((10,(11,(15,6))),8)),1); tree rep.4320000 = (((8,(10,(6,(11,15)))),((((9,2),3),(4,(5,(7,13)))),14)),12,1); tree rep.4330000 = ((((8,10),((6,15),11)),(((5,(3,(9,2))),((4,7),13)),14)),12,1); tree rep.4340000 = (12,(((3,(2,9)),(((13,7),5),(4,14))),(8,(10,(11,(15,6))))),1); tree rep.4350000 = ((((5,(3,(2,9))),(14,(4,(13,7)))),12),((8,((6,15),11)),10),1); tree rep.4360000 = ((((10,8),((15,6),11)),((((14,4),(13,7)),5),(3,(2,9)))),12,1); tree rep.4370000 = (12,(((5,(3,(2,9))),(4,((13,7),14))),(((15,6),11),(8,10))),1); tree rep.4380000 = (((((13,(7,4)),14),(((2,9),3),5)),12),((((15,6),11),10),8),1); tree rep.4390000 = (12,((((15,11),6),(10,8)),((((9,2),3),((4,14),(7,13))),5)),1); tree rep.4400000 = (12,(((4,(14,5)),(((9,2),3),(7,13))),(10,(8,(6,(15,11))))),1); tree rep.4410000 = ((((((5,14),(13,7)),((9,2),3)),4),(8,(10,(11,(15,6))))),12,1); tree rep.4420000 = (12,(((8,10),(6,(11,15))),((4,((7,13),14)),(5,(3,(2,9))))),1); tree rep.4430000 = (((((15,6),11),(10,8)),(((5,((9,2),3)),(4,(7,13))),14)),12,1); tree rep.4440000 = (((((2,9),3),(5,(14,(13,(7,4))))),(10,(8,(11,(15,6))))),12,1); tree rep.4450000 = (((((6,(11,15)),10),8),(((3,(2,9)),((5,4),14)),(13,7))),12,1); tree rep.4460000 = ((12,((8,10),((11,6),15))),((5,(14,(4,(7,13)))),((9,2),3)),1); tree rep.4470000 = (12,((((11,15),6),(10,8)),(((3,(2,9)),((4,14),(7,13))),5)),1); tree rep.4480000 = ((((((10,((6,15),11)),8),((13,7),4)),5),((3,(9,2)),14)),12,1); tree rep.4490000 = (((6,(11,15)),(8,10)),(12,((4,(13,7)),((14,5),((9,2),3)))),1); tree rep.4500000 = ((((((15,11),6),10),8),(((4,(7,13)),14),(((2,9),3),5))),12,1); tree rep.4510000 = (((3,(2,9)),((5,14),((7,13),4))),(12,((8,((11,15),6)),10)),1); tree rep.4520000 = (12,((10,((11,(6,15)),8)),(((14,(13,7)),4),((3,(9,2)),5))),1); tree rep.4530000 = (12,(((8,((6,15),11)),10),((4,(5,(14,(3,(2,9))))),(7,13))),1); tree rep.4540000 = ((((8,10),((15,6),11)),((14,((7,13),4)),(5,(3,(2,9))))),12,1); tree rep.4550000 = (12,((((14,(4,(13,7))),(3,(9,2))),5),((((11,6),15),10),8)),1); tree rep.4560000 = (12,((((6,15),11),(10,8)),((((2,9),3),((7,13),4)),(5,14))),1); tree rep.4570000 = (12,((((7,13),((2,9),3)),((4,14),5)),(((15,11),6),(10,8))),1); tree rep.4580000 = ((12,(((4,((9,2),3)),5),(14,(7,13)))),((8,10),((11,15),6)),1); tree rep.4590000 = (((5,((14,(4,(7,13))),(3,(9,2)))),12),((10,8),(11,(6,15))),1); tree rep.4600000 = (12,((8,10),(((14,5),(4,(13,7))),((2,9),((11,(6,15)),3)))),1); tree rep.4610000 = (12,((((4,14),(13,7)),(5,((9,2),3))),((8,10),(6,(11,15)))),1); tree rep.4620000 = (((((4,(7,13)),(14,5)),((9,2),3)),(((11,(15,6)),10),8)),12,1); tree rep.4630000 = (12,((((11,15),6),(10,8)),((((4,(13,7)),14),5),((9,2),3))),1); tree rep.4640000 = (12,((((3,(9,2)),5),((14,4),(7,13))),(((15,11),6),(10,8))),1); tree rep.4650000 = (12,(((2,9),3),((13,7),((14,4),(((10,8),(11,(15,6))),5)))),1); tree rep.4660000 = ((((14,(4,(7,13))),((5,(9,2)),3)),12),((10,8),((15,6),11)),1); tree rep.4670000 = (12,((((3,9),2),(5,(((7,13),4),14))),((10,8),((6,15),11))),1); tree rep.4680000 = ((7,(4,13)),(14,((((10,(11,(6,15))),8),12),(5,((2,9),3)))),1); tree rep.4690000 = (12,(((15,11),6),((((3,(9,2)),(5,((4,(13,7)),14))),10),8)),1); tree rep.4700000 = (12,((10,(((11,15),6),8)),(5,((3,(2,9)),((4,(13,7)),14)))),1); tree rep.4710000 = (12,((4,(7,13)),(((((10,(11,(6,15))),8),14),5),((9,2),3))),1); tree rep.4720000 = (((((3,(2,9)),5),(14,(4,(13,7)))),(8,((15,(11,6)),10))),12,1); tree rep.4730000 = (12,(((((3,(9,2)),(14,(7,13))),5),(10,(8,(6,(15,11))))),4),1); tree rep.4740000 = ((((4,((7,13),14)),5),(((9,2),3),12)),(8,((11,(6,15)),10)),1); tree rep.4750000 = (((((15,11),6),(10,8)),((5,((((9,2),3),14),(13,7))),4)),12,1); tree rep.4760000 = ((((8,(6,(15,11))),10),((14,(5,(3,(9,2)))),(4,(13,7)))),12,1); tree rep.4770000 = (12,((8,((6,(15,11)),10)),((((13,7),14),4),(5,(3,(2,9))))),1); tree rep.4780000 = ((5,(((4,(13,7)),((((15,6),11),(8,10)),12)),14)),(3,(9,2)),1); tree rep.4790000 = (((((4,14),(13,7)),(5,(3,(2,9)))),((8,10),(11,(6,15)))),12,1); tree rep.4800000 = (12,((5,(((((6,(11,15)),10),8),(3,(9,2))),(4,(13,7)))),14),1); tree rep.4810000 = (((10,((6,(11,15)),8)),(((5,4),(((2,9),(7,13)),3)),14)),12,1); tree rep.4820000 = ((((6,11),15),(10,8)),((((4,(14,(13,7))),5),((2,9),3)),12),1); tree rep.4830000 = ((((14,((13,7),((3,(9,2)),5))),4),12),(10,((6,(11,15)),8)),1); tree rep.4840000 = ((((((4,(7,13)),14),(3,(9,2))),5),12),(10,(((6,15),11),8)),1); tree rep.4850000 = (12,(((6,(11,15)),(10,8)),(((2,9),3),(5,((4,(13,7)),14)))),1); tree rep.4860000 = (5,((((9,2),3),(14,(4,(13,7)))),(12,((((6,15),11),10),8))),1); tree rep.4870000 = ((((10,8),(11,(6,15))),(5,(((2,9),3),(4,((7,13),14))))),12,1); tree rep.4880000 = (12,((((3,(2,9)),(((7,13),4),5)),14),((10,(11,(6,15))),8)),1); tree rep.4890000 = (12,(((8,10),((11,15),6)),((4,((13,14),7)),(((2,9),3),5))),1); tree rep.4900000 = ((((5,((4,(13,7)),14)),((9,2),3)),((8,10),((15,11),6))),12,1); tree rep.4910000 = (12,(((2,9),(3,(((4,14),5),(13,7)))),((10,((15,6),11)),8)),1); tree rep.4920000 = (12,(((10,((11,15),6)),8),((((9,2),(13,7)),((5,14),4)),3)),1); tree rep.4930000 = (12,(((((15,11),6),10),8),(((4,((9,2),3)),((7,13),14)),5)),1); tree rep.4940000 = (((((4,5),((9,2),3)),((13,7),14)),((8,10),(6,(15,11)))),12,1); tree rep.4950000 = ((((3,((9,2),(14,5))),(4,(7,13))),(((11,15),6),(10,8))),12,1); tree rep.4960000 = ((8,(10,((6,15),11))),(12,(4,((5,(14,(7,13))),(3,(9,2))))),1); tree rep.4970000 = (12,(5,((((4,(13,7)),14),((9,2),3)),(((15,6),11),(10,8)))),1); tree rep.4980000 = (12,((((6,(15,11)),8),10),((((13,7),(4,14)),5),((9,2),3))),1); tree rep.4990000 = ((((4,((9,2),3)),((7,13),(5,14))),(8,((15,(11,6)),10))),12,1); tree rep.5000000 = (12,(((10,8),((11,6),15)),(((7,13),4),(((9,2),3),(14,5)))),1); tree rep.5010000 = ((((3,(9,2)),(4,((7,13),(5,14)))),((10,8),(11,(15,6)))),12,1); tree rep.5020000 = (12,(((5,((3,(2,9)),((7,13),4))),14),((8,((6,15),11)),10)),1); tree rep.5030000 = (((((4,(7,13)),(5,14)),((2,9),3)),(8,((11,(6,15)),10))),12,1); tree rep.5040000 = (((8,10),(11,(6,15))),(12,((((7,13),(14,4)),(3,(9,2))),5)),1); tree rep.5050000 = (12,(((11,(15,6)),(10,8)),((7,13),(4,((14,5),(3,(9,2)))))),1); tree rep.5060000 = (12,((((5,14),((4,(13,7)),(2,9))),3),(((11,(15,6)),8),10)),1); tree rep.5070000 = (((5,((7,13),((14,4),((9,2),3)))),(10,(8,(6,(15,11))))),12,1); tree rep.5080000 = (12,(((14,(((7,13),5),4)),((2,9),3)),((10,8),((15,11),6))),1); tree rep.5090000 = (12,(((8,(6,(15,11))),10),((3,(2,9)),((13,((7,14),4)),5))),1); tree rep.5100000 = (((8,(((15,11),6),10)),(5,(((2,9),3),(14,(4,(7,13)))))),12,1); tree rep.5110000 = ((((9,3),2),((((7,13),4),14),(((8,10),((6,11),15)),5))),12,1); tree rep.5120000 = (12,(((((8,10),((15,6),11)),((2,9),3)),(4,(7,13))),(14,5)),1); tree rep.5130000 = (12,(((((8,10),((6,15),11)),5),14),(((13,7),4),((2,9),3))),1); tree rep.5140000 = ((9,2),((12,((14,((4,(7,13)),(8,(10,(11,(6,15)))))),5)),3),1); tree rep.5150000 = ((((6,(15,11)),(10,8)),((3,(9,2)),(5,(14,((7,4),13))))),12,1); tree rep.5160000 = ((((5,(3,(2,9))),(((13,7),4),14)),(((11,(15,6)),8),10)),12,1); tree rep.5170000 = (((5,((3,(9,2)),(((15,6),11),(10,8)))),(((7,13),14),4)),12,1); tree rep.5180000 = (5,((((8,((15,6),11)),10),12),((3,(2,9)),(14,((7,13),4)))),1); tree rep.5190000 = ((((11,(6,15)),(8,10)),((3,(9,2)),(5,((4,14),(13,7))))),12,1); tree rep.5200000 = ((((((15,6),11),10),8),((3,((13,(7,4)),(5,14))),(2,9))),12,1); tree rep.5210000 = (((((7,13),((14,5),(3,(9,2)))),4),(8,((11,(15,6)),10))),12,1); tree rep.5220000 = (12,(((((15,6),11),8),10),((((9,2),3),14),(((13,7),4),5))),1); tree rep.5230000 = (12,((((6,(11,15)),8),10),((9,2),((3,5),((7,13),(4,14))))),1); tree rep.5240000 = ((((4,(7,13)),(((9,2),3),5)),14),((6,(11,15)),(12,(10,8))),1); tree rep.5250000 = (12,(((8,10),((6,15),11)),((14,((13,7),(5,4))),(9,(3,2)))),1); tree rep.5260000 = (12,(((((7,13),4),14),((3,(2,9)),5)),((15,(11,6)),(8,10))),1); tree rep.5270000 = ((12,(((14,4),(13,7)),(5,(3,(2,9))))),((10,8),(6,(15,11))),1); tree rep.5280000 = ((((10,((15,6),11)),8),(((5,(14,4)),(13,7)),((9,2),3))),12,1); tree rep.5290000 = ((12,((((2,9),3),5),(14,((13,4),7)))),((10,(11,(6,15))),8),1); tree rep.5300000 = (((((11,(15,6)),8),10),(5,((4,((2,9),3)),((13,7),14)))),12,1); tree rep.5310000 = (((((15,6),11),(8,10)),(5,((((3,(9,2)),14),4),(13,7)))),12,1); tree rep.5320000 = ((((7,13),(14,((5,4),((10,8),((15,11),6))))),(3,(2,9))),12,1); tree rep.5330000 = (((10,(8,(11,(15,6)))),(((7,13),(9,2)),(3,(14,(4,5))))),12,1); tree rep.5340000 = (12,((10,(8,((6,15),11))),(5,((4,(13,7)),(((9,2),3),14)))),1); tree rep.5350000 = (12,((((14,(4,(13,7))),(3,(2,9))),5),(((11,15),6),(10,8))),1); tree rep.5360000 = ((((((((15,11),6),(10,8)),((7,13),4)),(3,(9,2))),14),5),12,1); tree rep.5370000 = (4,(((5,(7,13)),((10,(((11,15),6),8)),(12,(3,(2,9))))),14),1); tree rep.5380000 = (((5,(((9,2),3),(((7,13),4),14))),((6,(15,11)),(10,8))),12,1); tree rep.5390000 = (12,((((4,(7,13)),14),((3,(2,9)),5)),(10,((11,(6,15)),8))),1); tree rep.5400000 = ((((((14,(7,13)),4),(3,(9,2))),5),((10,(6,(11,15))),8)),12,1); tree rep.5410000 = (12,(((10,8),((15,6),11)),(5,(((4,(7,13)),14),((2,9),3)))),1); tree rep.5420000 = ((((3,(2,9)),(14,(4,((7,13),5)))),((8,10),((11,15),6))),12,1); tree rep.5430000 = ((((6,(11,15)),(((((13,7),4),14),5),(3,(9,2)))),(8,10)),12,1); tree rep.5440000 = ((((10,(11,(15,6))),8),((((9,2),(4,(13,7))),3),(14,5))),12,1); tree rep.5450000 = (((5,4),(((13,7),(((10,8),(11,(6,15))),(3,(9,2)))),14)),12,1); tree rep.5460000 = ((8,(((6,15),11),10)),((((14,4),(7,13)),5),(12,(3,(2,9)))),1); tree rep.5470000 = (12,((((15,11),6),(10,8)),((14,(4,(5,(7,13)))),((9,2),3))),1); tree rep.5480000 = (((6,(15,11)),(10,8)),(12,((5,(14,4)),(((2,9),3),(7,13)))),1); tree rep.5490000 = (((10,(8,((11,15),6))),(((4,14),(13,7)),(((2,9),5),3))),12,1); tree rep.5500000 = ((((((7,13),(4,14)),5),((2,9),3)),((8,10),(15,(11,6)))),12,1); tree rep.5510000 = (12,((((((3,(2,9)),14),(7,13)),4),5),((10,8),(6,(11,15)))),1); tree rep.5520000 = (12,((((6,(15,11)),10),8),((14,5),((3,(2,9)),((13,4),7)))),1); tree rep.5530000 = (((((13,7),4),((5,(3,(2,9))),14)),(8,((6,(11,15)),10))),12,1); tree rep.5540000 = (12,((((10,(15,(6,11))),8),(4,(((9,2),3),(14,(7,13))))),5),1); tree rep.5550000 = (((((7,13),4),(((2,9),3),(5,14))),(10,(((15,11),6),8))),12,1); tree rep.5560000 = (12,((10,(8,((15,11),6))),(((3,(2,9)),(5,14)),((13,7),4))),1); tree rep.5570000 = (((((10,8),(6,(15,11))),3),(5,(((7,13),4),((9,2),14)))),12,1); tree rep.5580000 = (((((2,9),3),((((8,((6,15),11)),10),(14,(13,7))),4)),5),12,1); tree rep.5590000 = (12,(((3,(2,9)),(((14,4),(7,13)),5)),(((11,(6,15)),10),8)),1); tree rep.5600000 = (12,((((11,15),6),(10,8)),(5,(((7,13),(14,4)),(3,(2,9))))),1); tree rep.5610000 = ((((14,((13,7),4)),(5,(3,(2,9)))),(10,(8,(6,(11,15))))),12,1); tree rep.5620000 = ((((10,8),((6,15),11)),(((5,(4,(7,13))),14),((2,9),3))),12,1); tree rep.5630000 = (12,((((11,(15,6)),10),8),(((13,7),4),((3,(9,2)),(5,14)))),1); tree rep.5640000 = ((((6,(15,11)),(8,10)),(5,(((13,7),(14,4)),((9,2),3)))),12,1); tree rep.5650000 = (12,(((3,(2,9)),((7,13),((14,4),5))),((10,8),((11,15),6))),1); tree rep.5660000 = (((((4,(7,13)),14),(((2,9),3),5)),(8,(((6,15),11),10))),12,1); tree rep.5670000 = ((12,(5,(((9,2),3),((4,14),(7,13))))),(10,(8,((11,15),6))),1); tree rep.5680000 = ((((6,(11,15)),(10,8)),(5,((((13,7),4),14),(3,(9,2))))),12,1); tree rep.5690000 = (12,(((((7,13),4),14),(((2,9),3),5)),(((6,(15,11)),8),10)),1); tree rep.5700000 = ((14,(((5,((13,7),4)),12),((9,2),3))),(10,(8,(6,(15,11)))),1); tree rep.5710000 = (12,((5,(((7,(14,13)),4),((9,2),3))),((10,8),((15,6),11))),1); tree rep.5720000 = ((((13,7),4),14),(((9,2),3),(((((15,11),6),(8,10)),12),5)),1); tree rep.5730000 = (12,((((5,14),((13,7),4)),(3,(2,9))),(((11,(6,15)),10),8)),1); tree rep.5740000 = (((((7,13),14),((4,(3,(2,9))),5)),((8,10),((15,6),11))),12,1); tree rep.5750000 = (((((2,9),(5,3)),(4,(14,(7,13)))),(10,(((15,11),6),8))),12,1); tree rep.5760000 = ((((8,(11,(15,6))),10),((5,14),((3,(9,2)),(4,(7,13))))),12,1); tree rep.5770000 = (12,((((11,(15,6)),8),10),((((2,9),3),(((4,7),13),14)),5)),1); tree rep.5780000 = (((10,(8,((11,15),6))),((4,((7,13),(14,5))),(3,(9,2)))),12,1); tree rep.5790000 = ((((4,(7,13)),(14,((3,(2,9)),5))),((10,((15,11),6)),8)),12,1); tree rep.5800000 = ((((3,((4,(13,7)),14)),(5,(2,9))),(8,(10,((15,6),11)))),12,1); tree rep.5810000 = (12,(((8,((11,15),6)),10),(((7,13),4),((((2,9),3),14),5))),1); tree rep.5820000 = ((((3,(2,9)),12),((10,8),(6,(15,11)))),(((14,5),4),(7,13)),1); tree rep.5830000 = (((10,8),(11,(6,15))),(12,(((14,5),((4,13),7)),(3,(2,9)))),1); tree rep.5840000 = ((((13,7),(5,(4,(14,(3,(2,9)))))),(10,(((11,15),6),8))),12,1); tree rep.5850000 = (((((3,(9,2)),5),((6,(15,11)),(8,10))),((14,(13,7)),4)),12,1); tree rep.5860000 = (12,((5,(((4,(7,13)),14),((2,9),3))),(10,(((6,11),15),8))),1); tree rep.5870000 = ((5,(((9,2),3),(((7,13),4),14))),(12,((6,(15,11)),(10,8))),1); tree rep.5880000 = (((((2,9),3),(((7,14),(13,4)),5)),(8,(10,(11,(15,6))))),12,1); tree rep.5890000 = (((((6,15),11),10),8),(((14,5),(3,((9,2),12))),((13,7),4)),1); tree rep.5900000 = ((((11,6),15),((5,(((9,2),3),(14,((13,7),4)))),(8,10))),12,1); tree rep.5910000 = ((((8,10),((6,15),11)),(((5,(4,(7,13))),14),((9,2),3))),12,1); tree rep.5920000 = ((((11,(6,15)),(10,8)),((5,((14,(13,7)),4)),(3,(2,9)))),12,1); tree rep.5930000 = ((((4,(3,(2,9))),(((7,13),14),5)),((10,8),((11,15),6))),12,1); tree rep.5940000 = (12,(3,(((5,(9,2)),((13,7),(14,4))),((((15,6),11),10),8))),1); tree rep.5950000 = (((5,14),(((13,7),4),((2,9),3))),(12,((6,(15,11)),(8,10))),1); tree rep.5960000 = (12,(((10,((11,15),6)),8),(((14,5),(4,(13,7))),((9,2),3))),1); tree rep.5970000 = (12,((((9,2),3),((4,(13,7)),(5,14))),((11,(15,6)),(8,10))),1); tree rep.5980000 = (12,(((10,((11,15),6)),8),((7,13),(4,((14,5),(3,(9,2)))))),1); tree rep.5990000 = ((((2,9),3),((5,(14,((10,8),(11,(6,15))))),(4,(13,7)))),12,1); tree rep.6000000 = (12,(((8,10),((15,11),6)),(((2,9),3),((14,((13,7),4)),5))),1); tree rep.6010000 = (12,((10,(8,(15,(6,11)))),((((9,2),3),((13,14),(7,4))),5)),1); tree rep.6020000 = (12,((((5,(2,3)),14),(4,(9,(13,7)))),(8,(((6,15),11),10))),1); tree rep.6030000 = (((((14,(7,13)),4),(5,(3,(2,9)))),((((6,15),11),8),10)),12,1); tree rep.6040000 = ((((4,14),(7,13)),(5,((2,9),3))),((10,((6,(11,15)),8)),12),1); tree rep.6050000 = ((((2,9),(((14,5),(4,(7,13))),3)),(10,((11,(15,6)),8))),12,1); tree rep.6060000 = (12,(((5,((3,(2,9)),(4,(7,13)))),14),((((6,15),11),8),10)),1); tree rep.6070000 = (12,(((3,(9,2)),(((7,13),(4,14)),5)),((15,(11,6)),(10,8))),1); tree rep.6080000 = (((5,(((13,7),(((9,2),3),14)),4)),((8,10),(11,(15,6)))),12,1); tree rep.6090000 = (((8,10),(11,(15,6))),((((9,2),3),(5,((4,(13,7)),14))),12),1); tree rep.6100000 = (12,(((3,(9,2)),((14,5),(4,(7,13)))),(8,(10,(6,(11,15))))),1); tree rep.6110000 = (12,((((9,2),3),(5,(4,((13,7),14)))),((10,8),((11,15),6))),1); tree rep.6120000 = ((((6,(11,15)),10),8),(12,(5,(((2,9),3),(4,(7,(13,14)))))),1); tree rep.6130000 = ((((((13,7),4),((14,5),(3,(2,9)))),8),((6,(15,11)),10)),12,1); tree rep.6140000 = (((8,(((11,15),6),10)),12),((((2,9),3),(14,(4,(13,7)))),5),1); tree rep.6150000 = (12,((((6,15),11),(8,10)),(5,((3,(2,9)),(((13,7),4),14)))),1); tree rep.6160000 = ((10,(((15,11),6),8)),(12,((3,(9,2)),((((13,7),4),5),14))),1); tree rep.6170000 = (((((10,8),(11,(6,15))),(14,((7,13),4))),(((2,9),5),3)),12,1); tree rep.6180000 = (12,((5,(14,(4,(13,7)))),(((6,(15,11)),(10,8)),((9,2),3))),1); tree rep.6190000 = (12,((5,((3,(2,9)),((4,(13,7)),14))),((15,(6,11)),(10,8))),1); tree rep.6200000 = (12,(((8,10),(11,(6,15))),(((3,(9,2)),5),(4,(14,(7,13))))),1); tree rep.6210000 = ((((3,(9,2)),((5,7),((14,4),13))),((8,(11,(15,6))),10)),12,1); tree rep.6220000 = ((((((2,9),3),(14,((13,7),4))),5),((10,8),(11,(6,15)))),12,1); tree rep.6230000 = (((((4,(14,(13,7))),((3,(2,9)),5)),(10,8)),(6,(11,15))),12,1); tree rep.6240000 = ((((11,(6,15)),(8,10)),((((2,9),3),14),(5,(4,(7,13))))),12,1); tree rep.6250000 = ((((6,(15,11)),(10,8)),(14,((((13,7),5),(3,(9,2))),4))),12,1); tree rep.6260000 = (((((15,11),6),(10,8)),((4,((13,7),14)),(5,(3,(9,2))))),12,1); tree rep.6270000 = (12,(((((4,(13,7)),14),5),((9,2),3)),((11,(15,6)),(8,10))),1); tree rep.6280000 = (((10,(((15,11),6),8)),((((2,9),3),((7,13),5)),(14,4))),12,1); tree rep.6290000 = ((((10,8),((11,15),6)),((((13,7),(3,(2,9))),14),(4,5))),12,1); tree rep.6300000 = ((12,((8,10),((6,11),15))),(((3,9),2),(5,(((13,7),4),14))),1); tree rep.6310000 = (((10,(8,((15,6),11))),(4,((((7,13),14),5),(3,(9,2))))),12,1); tree rep.6320000 = (12,(((2,9),3),(5,(4,(((7,13),14),((8,10),((11,6),15)))))),1); tree rep.6330000 = (12,((10,((11,(15,6)),8)),(((7,13),(((9,2),3),(5,14))),4)),1); tree rep.6340000 = (12,(((15,(11,6)),(8,10)),(((14,(13,(4,7))),((2,9),3)),5)),1); tree rep.6350000 = (((((9,2),3),(5,((14,4),(7,13)))),(8,(10,(6,(11,15))))),12,1); tree rep.6360000 = ((((((7,(13,4)),14),((10,8),(6,(15,11)))),5),(3,(9,2))),12,1); tree rep.6370000 = (((10,8),((15,6),11)),(12,(14,((5,4),((3,(9,2)),(7,13))))),1); tree rep.6380000 = ((((((2,9),3),((4,(13,7)),12)),5),14),((8,10),(6,(11,15))),1); tree rep.6390000 = (12,((((11,15),6),(8,10)),((((2,9),3),((4,(7,13)),14)),5)),1); tree rep.6400000 = (12,(((8,(15,(6,11))),10),((((13,7),4),14),(5,(3,(2,9))))),1); tree rep.6410000 = ((((8,10),((6,15),11)),((((9,2),3),((14,5),4)),(7,13))),12,1); tree rep.6420000 = (((10,(8,((11,15),6))),(5,((3,(9,2)),(14,(4,(13,7)))))),12,1); tree rep.6430000 = ((((((4,(7,13)),14),5),(3,(2,9))),((6,(15,11)),(8,10))),12,1); tree rep.6440000 = (12,((((14,((7,13),4)),(3,(2,9))),5),(8,(10,(11,(6,15))))),1); tree rep.6450000 = (12,(((11,(6,15)),(8,10)),(((3,(2,9)),(5,14)),((13,7),4))),1); tree rep.6460000 = (12,((3,(9,2)),(((((6,15),11),8),10),(((4,(13,7)),14),5))),1); tree rep.6470000 = (12,((((((2,9),(4,3)),(7,13)),5),14),(10,(8,((15,11),6)))),1); tree rep.6480000 = ((10,(((6,15),11),8)),(12,(((9,2),3),((14,((7,13),4)),5))),1); tree rep.6490000 = ((((10,8),(6,(11,15))),(((3,(2,9)),5),(14,(4,(13,7))))),12,1); tree rep.6500000 = (12,((10,((11,(15,6)),8)),((14,(4,(13,7))),(5,((2,9),3)))),1); tree rep.6510000 = (12,(((5,(3,(2,9))),((14,(7,13)),4)),((8,(6,(11,15))),10)),1); tree rep.6520000 = (12,((((((9,2),3),14),(4,(7,13))),5),(((6,11),15),(10,8))),1); tree rep.6530000 = ((12,((((2,9),3),((5,14),4)),(13,7))),((6,(11,15)),(10,8)),1); tree rep.6540000 = ((((((4,(13,7)),14),5),((2,9),3)),(8,((6,(11,15)),10))),12,1); tree rep.6550000 = (12,(((2,9),3),(((4,(7,13)),(5,14)),((11,(6,15)),(10,8)))),1); tree rep.6560000 = (12,(((3,(2,9)),(((13,7),4),(5,14))),(8,(10,(6,(15,11))))),1); tree rep.6570000 = (12,(((5,(4,14)),(((11,(15,6)),(8,10)),((2,9),3))),(13,7)),1); tree rep.6580000 = ((((8,((15,6),11)),10),((3,(2,9)),((5,(4,(7,13))),14))),12,1); tree rep.6590000 = (((4,(3,(2,9))),((7,13),((14,(10,(8,((15,6),11)))),5))),12,1); tree rep.6600000 = (12,((((14,(4,(13,7))),5),((2,9),3)),(((6,(15,11)),8),10)),1); tree rep.6610000 = (12,((((7,13),4),(((2,9),3),(14,5))),((8,((11,15),6)),10)),1); tree rep.6620000 = ((((6,15),11),(8,10)),(((3,(9,2)),(5,(((7,13),14),4))),12),1); tree rep.6630000 = (((8,((11,(6,15)),((5,(((13,7),14),4)),(3,(2,9))))),10),12,1); tree rep.6640000 = ((((3,(2,9)),((14,5),4)),(12,(13,7))),((10,8),((6,15),11)),1); tree rep.6650000 = ((5,((((8,(10,((6,11),15))),((2,9),3)),4),(13,(14,7)))),12,1); tree rep.6660000 = ((((10,8),((11,15),6)),(((3,5),((14,(7,13)),4)),(2,9))),12,1); tree rep.6670000 = ((((4,(13,7)),(14,5)),((2,9),3)),((((15,6),11),(8,10)),12),1); tree rep.6680000 = (((((((9,2),3),(((13,7),14),4)),5),(8,10)),(6,(11,15))),12,1); tree rep.6690000 = ((((3,(9,2)),((4,14),(5,(7,13)))),(8,(10,(11,(15,6))))),12,1); tree rep.6700000 = (12,((11,(6,15)),(((3,(((13,7),(14,4)),(9,2))),5),(10,8))),1); tree rep.6710000 = (12,(((8,(6,(15,11))),10),((4,((14,5),(((2,9),3),7))),13)),1); tree rep.6720000 = (12,((((3,(2,9)),((13,7),(14,4))),5),((8,10),((15,6),11))),1); tree rep.6730000 = (12,(((4,(3,(2,9))),((14,5),(7,13))),(10,(((11,15),6),8))),1); tree rep.6740000 = (12,(((8,(6,(11,15))),10),(((4,(13,7)),(((2,9),3),14)),5)),1); tree rep.6750000 = (12,(((((6,15),11),8),10),((14,(5,(4,(7,13)))),((2,9),3))),1); tree rep.6760000 = (12,(((((4,(7,13)),14),5),(3,(2,9))),(10,((11,(15,6)),8))),1); tree rep.6770000 = (((((9,2),3),(((13,7),(5,4)),14)),((8,((15,11),6)),10)),12,1); tree rep.6780000 = (12,(((((13,7),4),(14,5)),(10,(8,(11,(6,15))))),(3,(2,9))),1); tree rep.6790000 = (((((11,(15,6)),10),8),((((14,(13,7)),5),(3,(2,9))),4)),12,1); tree rep.6800000 = (((10,(8,((11,6),15))),((3,(2,9)),(5,(14,(4,(13,7)))))),12,1); tree rep.6810000 = ((((((11,15),6),8),10),(((((13,7),4),14),5),(3,(2,9)))),12,1); tree rep.6820000 = ((((8,(15,(11,6))),10),(((5,((2,9),3)),(4,(7,13))),14)),12,1); tree rep.6830000 = (12,(((6,(11,15)),(8,10)),((((7,13),(4,14)),5),((2,9),3))),1); tree rep.6840000 = (12,(((((6,15),11),8),10),((((7,4),13),(5,((9,2),3))),14)),1); tree rep.6850000 = (((5,(((4,(7,13)),14),(3,(2,9)))),((10,((15,11),6)),8)),12,1); tree rep.6860000 = (12,((((3,(9,2)),(((7,13),14),4)),5),((10,8),((11,15),6))),1); tree rep.6870000 = (((((14,(4,(7,13))),5),((9,2),3)),((((6,15),11),8),10)),12,1); tree rep.6880000 = (12,((((((9,2),3),4),(5,14)),(13,7)),((10,8),((15,11),6))),1); tree rep.6890000 = ((((14,(13,7)),((5,((2,9),3)),4)),((10,8),(15,(11,6)))),12,1); tree rep.6900000 = (12,(((14,(4,(7,13))),((3,(2,9)),5)),(10,(((11,15),6),8))),1); tree rep.6910000 = ((((3,(2,9)),(((4,13),(7,14)),5)),(((11,15),6),(10,8))),12,1); tree rep.6920000 = (((((7,13),4),14),((3,(9,2)),(((((6,11),15),8),10),5))),12,1); tree rep.6930000 = (12,((((2,9),3),(5,(14,((7,13),4)))),((6,(15,11)),(10,8))),1); tree rep.6940000 = (12,((5,(((6,11),15),(10,8))),((3,(9,2)),(14,((13,7),4)))),1); tree rep.6950000 = ((((9,2),3),(((7,13),14),(((8,(((15,11),6),10)),4),5))),12,1); tree rep.6960000 = ((((10,8),((15,6),11)),(5,((((7,13),4),14),((9,2),3)))),12,1); tree rep.6970000 = ((((14,((3,(9,2)),5)),((13,7),4)),(8,(10,(15,(6,11))))),12,1); tree rep.6980000 = ((((5,((9,2),3)),14),(4,(7,13))),(12,(((11,(6,15)),10),8)),1); tree rep.6990000 = ((((8,10),(11,(15,6))),(5,(((2,9),3),(((7,13),4),14)))),12,1); tree rep.7000000 = (12,(((10,8),((11,15),6)),(5,(14,(3,((2,9),((13,7),4)))))),1); tree rep.7010000 = ((4,((5,((6,(15,11)),((8,12),10))),14)),(((9,2),3),(7,13)),1); tree rep.7020000 = (12,((8,(10,(11,(15,6)))),(((4,(13,7)),5),(14,(3,(9,2))))),1); tree rep.7030000 = ((((10,8),((6,15),11)),((4,(7,13)),((14,5),(3,(9,2))))),12,1); tree rep.7040000 = (((10,((6,(11,15)),8)),(((3,(9,2)),(14,(4,(7,13)))),5)),12,1); tree rep.7050000 = (12,((10,(((6,15),11),8)),((5,((9,3),2)),(((4,14),13),7))),1); tree rep.7060000 = (12,(((3,(9,2)),((14,(4,(13,7))),5)),((11,(6,15)),(8,10))),1); tree rep.7070000 = (((((14,4),((7,13),((10,8),((11,15),6)))),5),(3,(9,2))),12,1); tree rep.7080000 = (((5,14),((13,7),((12,((6,(11,15)),(8,10))),(3,(2,9))))),4,1); tree rep.7090000 = (12,((8,(10,(11,(15,6)))),((5,(((13,7),4),14)),(3,(2,9)))),1); tree rep.7100000 = (12,((5,(3,((2,9),((7,13),(14,4))))),((8,10),(11,(6,15)))),1); tree rep.7110000 = ((((10,8),((15,11),6)),((13,7),((5,(3,(9,2))),(4,14)))),12,1); tree rep.7120000 = (((8,(10,((6,15),11))),((14,((13,7),4)),((3,(9,2)),5))),12,1); tree rep.7130000 = (12,(((10,8),(6,(11,15))),((((14,(7,13)),4),5),((9,2),3))),1); tree rep.7140000 = (12,((10,(((11,15),6),8)),(((14,((13,7),4)),5),(3,(2,9)))),1); tree rep.7150000 = (12,(((8,(11,(15,6))),10),(5,(((2,9),3),((4,(13,7)),14)))),1); tree rep.7160000 = (12,(5,(((2,9),3),(((((6,15),11),(10,8)),14),(4,(13,7))))),1); tree rep.7170000 = (((4,(7,13)),((14,5),(3,(2,9)))),((8,10),(((15,11),6),12)),1); tree rep.7180000 = ((5,((((2,9),3),14),((4,(13,7)),(10,(8,((15,6),11)))))),12,1); tree rep.7190000 = (12,((10,(8,((11,15),6))),(((3,(9,2)),5),(14,((7,13),4)))),1); tree rep.7200000 = ((((11,(6,15)),(10,8)),(((3,(2,9)),5),((4,14),(13,7)))),12,1); tree rep.7210000 = (((14,(7,13)),(((10,8),((6,11),15)),(4,((3,(2,9)),5)))),12,1); tree rep.7220000 = (12,(((7,13),4),(((5,14),(8,(((15,6),11),10))),(3,(9,2)))),1); tree rep.7230000 = (12,(((6,(11,15)),(8,10)),((5,14),(((9,2),3),(7,(4,13))))),1); tree rep.7240000 = (12,((4,((5,((7,13),14)),((9,2),3))),((11,(15,6)),(8,10))),1); tree rep.7250000 = (12,((10,(8,(11,(15,6)))),(((2,9),3),((5,14),(4,(13,7))))),1); tree rep.7260000 = (12,((((5,((9,2),3)),(4,(13,7))),14),(10,(8,((11,15),6)))),1); tree rep.7270000 = ((((((((6,15),11),(8,10)),14),(5,4)),(3,(2,9))),(7,13)),12,1); tree rep.7280000 = ((((14,((7,13),(5,4))),((2,9),3)),12),(8,(10,(11,(15,6)))),1); tree rep.7290000 = (12,((((11,(6,15)),8),10),((5,(14,(3,(2,9)))),(4,(7,13)))),1); tree rep.7300000 = (((5,(12,(3,(2,9)))),(14,(4,(13,7)))),(((15,6),11),(10,8)),1); tree rep.7310000 = (((((5,((9,2),3)),((7,13),4)),14),((8,10),(6,(15,11)))),12,1); tree rep.7320000 = (12,((14,(((9,2),3),(5,((4,7),13)))),((8,10),(6,(15,11)))),1); tree rep.7330000 = (((10,((6,(15,11)),8)),((5,(14,((7,13),4))),(3,(9,2)))),12,1); tree rep.7340000 = (12,((((9,2),3),(5,(((13,7),4),14))),((8,((6,11),15)),10)),1); tree rep.7350000 = ((((5,((2,9),3)),((4,(13,7)),14)),((8,10),((15,6),11))),12,1); tree rep.7360000 = (((3,(2,9)),(((6,(11,15)),(8,10)),(((7,13),(4,14)),5))),12,1); tree rep.7370000 = ((((((13,7),(4,14)),(3,(9,2))),5),(((15,11),6),(8,10))),12,1); tree rep.7380000 = (((3,(2,9)),((14,(7,13)),4)),((12,((8,10),(6,(11,15)))),5),1); tree rep.7390000 = (((10,((6,(15,11)),8)),(((13,7),4),((14,5),(3,(2,9))))),12,1); tree rep.7400000 = (12,(((3,((9,2),5)),(4,((7,13),14))),(((6,(11,15)),10),8)),1); tree rep.7410000 = (12,((5,(((4,14),(13,7)),((9,2),3))),((8,((11,15),6)),10)),1); tree rep.7420000 = (((6,(15,11)),(((3,(2,9)),12),(5,(((13,7),14),4)))),(8,10),1); tree rep.7430000 = (12,(((2,9),(8,(10,((11,15),6)))),((14,(4,(13,7))),(5,3))),1); tree rep.7440000 = (12,(((((2,9),3),(14,(4,(13,7)))),5),((10,8),((15,6),11))),1); tree rep.7450000 = (((((11,(6,15)),10),8),((14,((4,((9,2),3)),(13,7))),5)),12,1); tree rep.7460000 = (((((2,9),3),(((14,(13,7)),4),5)),(8,((11,(6,15)),10))),12,1); tree rep.7470000 = (((((13,(4,7)),14),(3,(2,9))),5),((8,(10,(11,(6,15)))),12),1); tree rep.7480000 = ((((10,(6,(11,15))),8),((5,((2,9),3)),((13,7),(14,4)))),12,1); tree rep.7490000 = (12,((((15,11),6),(8,10)),(3,((((7,13),4),14),((9,2),5)))),1); tree rep.7500000 = ((4,(((7,13),(3,(9,2))),((14,5),(10,((6,(15,11)),8))))),12,1); tree rep.7510000 = (((5,(((7,(4,14)),(3,(2,9))),13)),(8,(10,(11,(15,6))))),12,1); tree rep.7520000 = (12,((((13,7),(4,14)),(3,((9,2),5))),(((15,11),6),(10,8))),1); tree rep.7530000 = (((((5,14),((9,2),3)),((13,7),((8,10),(15,(6,11))))),4),12,1); tree rep.7540000 = (12,(((10,((11,15),6)),8),(14,(5,(((7,13),4),(3,(9,2)))))),1); tree rep.7550000 = (((((6,15),11),(8,10)),(5,(3,((2,9),(4,((7,13),14)))))),12,1); tree rep.7560000 = ((((5,((4,(7,13)),14)),(3,(2,9))),((10,8),((15,6),11))),12,1); tree rep.7570000 = (12,((((10,8),(11,(15,6))),(14,(4,(13,7)))),(5,((2,9),3))),1); tree rep.7580000 = (12,(((((5,14),4),(7,13)),((2,9),3)),(10,(8,((15,6),11)))),1); tree rep.7590000 = (12,((((11,(6,15)),10),8),(((((4,(7,13)),14),3),(2,9)),5)),1); tree rep.7600000 = (((10,8),(11,(6,15))),(12,(((13,7),(4,14)),(((2,9),3),5))),1); tree rep.7610000 = (12,(((7,13),(((3,4),(14,5)),(9,2))),(10,(8,((11,15),6)))),1); tree rep.7620000 = (12,((5,14),(((10,(8,((6,11),15))),((2,9),3)),((13,7),4))),1); tree rep.7630000 = (((((6,(15,11)),10),8),((14,5),((3,(2,9)),(4,(7,13))))),12,1); tree rep.7640000 = (((((2,9),3),((13,7),((14,4),5))),((((15,11),6),8),10)),12,1); tree rep.7650000 = (12,((10,(8,((6,11),15))),(5,(((2,9),3),((4,(7,13)),14)))),1); tree rep.7660000 = (12,((((14,(3,(9,2))),5),((4,7),13)),((8,((11,15),6)),10)),1); tree rep.7670000 = (12,(((((13,7),4),(14,5)),((9,2),3)),((8,(11,(15,6))),10)),1); tree rep.7680000 = ((((3,(9,2)),((14,5),(4,(7,13)))),(((6,(15,11)),8),10)),12,1); tree rep.7690000 = ((12,(((4,(7,13)),(14,5)),(3,(2,9)))),(8,(((15,11),6),10)),1); tree rep.7700000 = (((((11,(15,6)),8),10),(((14,5),((2,9),3)),((7,13),4))),12,1); tree rep.7710000 = (((5,(((4,14),(13,7)),((2,9),3))),((8,10),((15,6),11))),12,1); tree rep.7720000 = (12,(((5,((9,2),((13,7),(4,14)))),3),(8,(10,((15,6),11)))),1); tree rep.7730000 = (12,((((3,(9,2)),(14,5)),(4,(7,13))),(((15,6),11),(8,10))),1); tree rep.7740000 = ((((3,(9,2)),(5,(14,((13,7),4)))),(10,((6,(11,15)),8))),12,1); tree rep.7750000 = (((((15,11),6),(8,10)),((((13,7),4),14),(5,((9,2),3)))),12,1); tree rep.7760000 = (((11,(6,15)),(8,10)),(((2,9),3),(12,(5,((13,7),(14,4))))),1); tree rep.7770000 = (12,((((6,(11,15)),8),10),((14,(((9,2),3),(5,4))),(7,13))),1); tree rep.7780000 = (12,((((3,(9,2)),(14,5)),((7,13),4)),(((15,11),6),(10,8))),1); tree rep.7790000 = (((5,(((9,2),3),(14,((13,7),4)))),((8,(11,(15,6))),10)),12,1); tree rep.7800000 = (((((6,(11,15)),8),10),(((14,(7,13)),4),((5,(2,9)),3))),12,1); tree rep.7810000 = ((((8,10),(11,(6,15))),((5,((4,14),(13,7))),((2,9),3))),12,1); tree rep.7820000 = ((5,((4,(13,7)),((3,((12,2),9)),14))),(8,(((6,15),11),10)),1); tree rep.7830000 = (12,(((8,10),(11,(15,6))),((13,7),((14,5),(((9,2),3),4)))),1); tree rep.7840000 = (12,((5,((((2,9),3),14),(4,(13,7)))),(((6,(15,11)),10),8)),1); tree rep.7850000 = (((((3,(2,9)),((4,(13,7)),14)),5),(((15,11),6),(10,8))),12,1); tree rep.7860000 = (12,(((((6,11),15),8),10),((((2,9),3),(((14,13),4),7)),5)),1); tree rep.7870000 = (12,((3,(9,2)),(((((6,15),11),(10,8)),5),(14,((7,13),4)))),1); tree rep.7880000 = (12,(((8,10),(14,(5,(((13,7),4),(3,(9,2)))))),((11,15),6)),1); tree rep.7890000 = (12,(((15,(6,11)),(10,8)),(((9,2),3),(4,(((7,13),14),5)))),1); tree rep.7900000 = (12,((((5,((13,7),(14,4))),(2,9)),3),(((11,15),6),(8,10))),1); tree rep.7910000 = (((((14,4),(2,((7,13),5))),9),3),(((10,((11,15),6)),8),12),1); tree rep.7920000 = (((((3,(2,9)),5),((14,4),(7,13))),(8,((6,(15,11)),10))),12,1); tree rep.7930000 = ((3,(2,((((4,(14,(13,7))),((11,(15,6)),(10,8))),5),9))),12,1); tree rep.7940000 = ((((((13,7),(4,14)),5),(3,(2,9))),(((11,6),15),(8,10))),12,1); tree rep.7950000 = ((((10,8),((15,11),6)),((5,12),(3,(9,2)))),((4,14),(13,7)),1); tree rep.7960000 = (12,((((11,(6,15)),10),8),(5,((13,7),((14,4),(3,(9,2)))))),1); tree rep.7970000 = (((10,(8,(11,(15,6)))),((((2,9),3),((7,13),5)),(14,4))),12,1); tree rep.7980000 = (12,(((3,(2,9)),(((8,10),((15,6),11)),(4,5))),(14,(13,7))),1); tree rep.7990000 = (12,((((((14,(4,(13,7))),5),(3,(2,9))),10),8),(6,(15,11))),1); tree rep.8000000 = (12,(5,(((2,9),3),(14,((13,7),(4,((15,(6,11)),(10,8))))))),1); tree rep.8010000 = (((((2,9),3),(((13,7),(5,14)),4)),((11,(6,15)),(8,10))),12,1); tree rep.8020000 = ((((8,10),(6,(15,11))),(((2,9),3),(((4,13),7),(14,5)))),12,1); tree rep.8030000 = (((3,(9,2)),(14,(((7,13),4),5))),(((10,((6,15),11)),8),12),1); tree rep.8040000 = (((((11,(15,6)),10),8),((((9,2),3),5),(((7,13),14),4))),12,1); tree rep.8050000 = ((((((11,15),6),10),8),(((7,13),(5,(3,(9,2)))),(14,4))),12,1); tree rep.8060000 = (((((15,11),6),(10,8)),((5,(4,(13,7))),((3,(2,9)),14))),12,1); tree rep.8070000 = (((8,10),(5,(((((7,13),4),14),((2,9),3)),((15,11),6)))),12,1); tree rep.8080000 = (12,(5,((((14,4),(7,13)),(3,(9,2))),(((11,15),6),(10,8)))),1); tree rep.8090000 = (12,(((10,((15,6),11)),8),(((7,13),4),((14,5),(3,(9,2))))),1); tree rep.8100000 = ((((15,6),11),(10,8)),(((((9,2),3),5),(((13,7),4),14)),12),1); tree rep.8110000 = (12,((5,((3,(2,9)),(14,(4,(13,7))))),(8,(10,((15,11),6)))),1); tree rep.8120000 = (((5,(4,((3,(9,2)),(14,(7,13))))),((6,(11,15)),(10,8))),12,1); tree rep.8130000 = (12,((14,(5,(((9,2),3),((8,10),(15,(11,6)))))),(7,(4,13))),1); tree rep.8140000 = (((((3,(9,2)),((14,4),(7,13))),5),(8,(10,(11,(6,15))))),12,1); tree rep.8150000 = ((((10,8),((15,6),11)),((4,(13,7)),((14,5),(3,(9,2))))),12,1); tree rep.8160000 = ((((4,(13,7)),(((14,5),(2,9)),3)),((6,(15,11)),(10,8))),12,1); tree rep.8170000 = ((((15,6),11),(((5,((9,2),3)),(14,(4,(13,7)))),(8,10))),12,1); tree rep.8180000 = (12,(((((8,10),(6,(15,11))),5),(14,((7,13),4))),(3,(2,9))),1); tree rep.8190000 = (12,((5,((14,(13,7)),((3,(2,9)),4))),((((11,15),6),10),8)),1); tree rep.8200000 = ((((((6,15),11),10),8),(14,((7,13),4))),(12,(5,((2,9),3))),1); tree rep.8210000 = (12,((5,(((14,(13,7)),4),((9,2),3))),((10,8),((15,11),6))),1); tree rep.8220000 = ((((14,5),(((9,2),12),3)),((7,13),4)),((15,(11,6)),(10,8)),1); tree rep.8230000 = (12,((((15,11),6),(8,10)),((((7,13),(5,14)),4),((2,9),3))),1); tree rep.8240000 = (12,(((3,(2,9)),((4,(7,13)),(5,14))),((8,10),((11,6),15))),1); tree rep.8250000 = (12,((((6,15),11),(8,10)),((14,(4,(13,7))),(((9,2),3),5))),1); tree rep.8260000 = (12,(((3,(2,9)),5),((((7,14),4),13),((8,10),(15,(11,6))))),1); tree rep.8270000 = (12,((((6,15),11),(8,10)),(5,((14,(13,7)),(3,(4,(2,9)))))),1); tree rep.8280000 = (12,(((((7,13),4),((2,9),3)),(5,14)),((8,10),(6,(15,11)))),1); tree rep.8290000 = ((((5,((4,(14,(13,7))),(3,(2,9)))),(8,((6,15),11))),10),12,1); tree rep.8300000 = (12,(((((7,13),4),(5,14)),(3,(9,2))),((6,(15,11)),(10,8))),1); tree rep.8310000 = (12,(((10,8),((((4,(13,7)),((9,2),3)),5),14)),((15,11),6)),1); tree rep.8320000 = ((((5,(((9,2),3),4)),(14,(13,7))),((10,8),((6,15),11))),12,1); tree rep.8330000 = (12,((((11,(6,15)),8),10),((5,((2,9),3)),((4,(7,13)),14))),1); tree rep.8340000 = (12,(((9,2),3),(((4,((8,10),(6,(11,15)))),5),((13,7),14))),1); tree rep.8350000 = (12,(((14,(3,(2,9))),(((7,13),5),4)),((6,(11,15)),(8,10))),1); tree rep.8360000 = (12,(((9,2),(3,((7,13),(4,(5,14))))),(10,(((11,15),6),8))),1); tree rep.8370000 = (((((15,6),11),(10,8)),(((2,9),3),(5,((14,4),(7,13))))),12,1); tree rep.8380000 = (12,(((5,14),((10,((15,11),6)),8)),(((13,7),4),(3,(2,9)))),1); tree rep.8390000 = (12,((((5,14),((9,2),(3,4))),(13,7)),((8,(6,(11,15))),10)),1); tree rep.8400000 = (((((4,14),5),((7,13),((9,2),3))),((10,8),((15,6),11))),12,1); tree rep.8410000 = ((5,(((12,((13,7),4)),14),((9,2),3))),(10,(8,((15,6),11))),1); tree rep.8420000 = (((5,((15,(11,6)),(8,10))),(((13,(7,4)),14),((2,9),3))),12,1); tree rep.8430000 = (12,(((5,((4,(7,13)),14)),((2,9),3)),(8,((11,(15,6)),10))),1); tree rep.8440000 = (12,(((14,5),(4,((10,8),((11,15),6)))),((3,(9,2)),(7,13))),1); tree rep.8450000 = (12,((((13,7),(4,14)),((3,(2,9)),5)),((11,(15,6)),(8,10))),1); tree rep.8460000 = (12,((5,((14,(13,7)),((3,(9,2)),4))),(((15,6),11),(10,8))),1); tree rep.8470000 = (12,((11,(15,6)),(8,(10,(((13,7),4),(5,((3,(9,2)),14)))))),1); tree rep.8480000 = ((((((4,(7,13)),14),(3,(9,2))),5),(8,(((11,15),6),10))),12,1); tree rep.8490000 = (12,(((10,8),((6,15),11)),(((4,(7,13)),14),(5,((9,2),3)))),1); tree rep.8500000 = (((((11,15),6),(10,8)),((5,((14,4),(7,13))),(3,(9,2)))),12,1); tree rep.8510000 = ((((5,4),(3,(9,2))),(7,(14,13))),(12,(((11,(15,6)),8),10)),1); tree rep.8520000 = (((8,10),(6,(15,11))),(12,((((13,7),(4,(14,5))),3),(2,9))),1); tree rep.8530000 = (((((4,(14,(7,13))),5),((2,9),3)),((10,8),(11,(6,15)))),12,1); tree rep.8540000 = (((10,(((15,11),6),8)),(((5,14),((9,2),3)),(4,(7,13)))),12,1); tree rep.8550000 = (12,((10,(((15,11),6),8)),(5,(((2,9),3),((13,7),(4,14))))),1); tree rep.8560000 = ((((3,(9,2)),(4,((14,5),(13,7)))),(((15,6),11),(10,8))),12,1); tree rep.8570000 = ((((3,(9,2)),(((14,(13,7)),4),5)),((10,8),((6,15),11))),12,1); tree rep.8580000 = (((5,14),((3,(2,9)),(((8,10),(11,(15,6))),(4,(7,13))))),12,1); tree rep.8590000 = (12,((((4,(7,13)),(14,5)),(3,(9,2))),(8,(((11,15),6),10))),1); tree rep.8600000 = (12,((14,((((13,7),4),5),((2,9),3))),(((15,(6,11)),8),10)),1); tree rep.8610000 = (12,((5,(((14,4),(13,7)),((2,9),3))),(((15,6),11),(8,10))),1); tree rep.8620000 = (((14,5),(((3,(9,2)),((7,13),4)),((6,(15,11)),(8,10)))),12,1); tree rep.8630000 = (12,(((8,10),(11,(15,6))),((5,((4,(14,13)),7)),((2,9),3))),1); tree rep.8640000 = (12,(((8,((15,11),6)),10),((5,(14,(4,(13,7)))),(3,(9,2)))),1); tree rep.8650000 = (((14,(4,(7,13))),((((8,10),(6,(15,11))),5),(3,(2,9)))),12,1); tree rep.8660000 = (12,(((10,8),(15,(6,11))),(((3,(9,2)),((4,(13,7)),14)),5)),1); tree rep.8670000 = (((((14,5),(4,(13,7))),((9,2),3)),(8,((6,(11,15)),10))),12,1); tree rep.8680000 = ((12,(((11,(6,15)),8),10)),(5,((3,(9,2)),(((7,13),14),4))),1); tree rep.8690000 = (((((((2,9),3),5),(4,14)),(13,7)),((((15,6),11),10),8)),12,1); tree rep.8700000 = (((4,((5,(3,(2,9))),(14,(13,7)))),12),(8,(((11,15),6),10)),1); tree rep.8710000 = ((((12,(2,9)),3),((14,5),((10,(15,(11,6))),8))),((4,13),7),1); tree rep.8720000 = (12,(((4,(7,13)),((14,5),((2,9),3))),(8,((11,(15,6)),10))),1); tree rep.8730000 = (12,((((2,9),3),(((13,7),4),(5,14))),((6,(15,11)),(10,8))),1); tree rep.8740000 = (((10,8),(11,(15,6))),(12,(((4,(13,7)),14),(5,(3,(2,9))))),1); tree rep.8750000 = ((10,((((4,(13,7)),(14,5)),(((2,9),3),12)),((6,15),11))),8,1); tree rep.8760000 = (12,(((3,(9,2)),(((4,(13,7)),14),(10,(((15,6),11),8)))),5),1); tree rep.8770000 = (((4,(13,7)),((((((11,15),6),10),8),((9,3),2)),(5,14))),12,1); tree rep.8780000 = (12,((14,((5,(3,(9,2))),(4,(13,7)))),(10,((6,(15,11)),8))),1); tree rep.8790000 = (((4,(13,7)),((((2,9),12),3),14)),(((10,8),(6,(11,15))),5),1); tree rep.8800000 = ((5,((3,(9,2)),((4,14),(7,13)))),((8,(10,(6,(11,15)))),12),1); tree rep.8810000 = ((10,(8,(11,(6,15)))),((5,(4,(14,(7,13)))),(12,((2,9),3))),1); tree rep.8820000 = (12,(((8,10),(6,(11,15))),(((((4,5),14),(7,13)),3),(9,2))),1); tree rep.8830000 = ((((((3,(2,9)),5),4),14),(13,7)),(12,((8,10),(11,(6,15)))),1); tree rep.8840000 = (12,((10,(8,(6,(15,11)))),(5,((4,(13,7)),(14,((9,2),3))))),1); tree rep.8850000 = ((((10,((15,11),6)),8),((3,(9,2)),(4,((14,5),(7,13))))),12,1); tree rep.8860000 = (((((4,14),(13,7)),5),(((8,10),((6,15),11)),((2,9),3))),12,1); tree rep.8870000 = (12,(((8,10),((((4,(7,13)),14),5),((2,9),3))),(11,(15,6))),1); tree rep.8880000 = ((((15,11),6),(10,8)),(12,((5,((4,(7,13)),14)),((2,9),3))),1); tree rep.8890000 = (((((13,7),(14,4)),(((11,(15,6)),(10,8)),((2,9),3))),5),12,1); tree rep.8900000 = ((((((15,6),11),8),10),(((((7,13),4),14),((9,2),3)),5)),12,1); tree rep.8910000 = (((((4,13),(14,7)),(((9,2),3),5)),((10,(11,(15,6))),8)),12,1); tree rep.8920000 = ((((8,10),(11,(6,15))),((((7,(13,9)),14),4),(5,(2,3)))),12,1); tree rep.8930000 = (12,((((3,(9,2)),5),((13,7),(14,4))),(10,(8,((6,15),11)))),1); tree rep.8940000 = (12,(((5,((4,(7,13)),14)),((2,9),3)),((10,8),((15,6),11))),1); tree rep.8950000 = (12,((8,(((15,6),11),10)),(((3,(2,9)),5),(((13,7),14),4))),1); tree rep.8960000 = (12,((((3,(9,2)),5),((14,(7,13)),4)),((((15,6),11),8),10)),1); tree rep.8970000 = (12,(((6,(11,15)),(10,8)),(((3,(9,2)),((4,(13,7)),14)),5)),1); tree rep.8980000 = ((((5,((14,4),(7,13))),((9,2),3)),(((15,6),11),(10,8))),12,1); tree rep.8990000 = ((((3,(9,2)),(((4,(7,13)),5),14)),((((15,11),6),10),8)),12,1); tree rep.9000000 = (12,(((3,(2,9)),((4,(14,(7,13))),5)),(((6,15),11),(8,10))),1); tree rep.9010000 = (12,((((2,9),3),((4,(5,(13,7))),14)),(((6,15),11),(10,8))),1); tree rep.9020000 = ((((6,(15,11)),8),10),((((13,7),4),(12,(((2,9),3),14))),5),1); tree rep.9030000 = (((8,((11,(15,6)),10)),((14,((2,9),3)),(5,((13,7),4)))),12,1); tree rep.9040000 = (12,((10,(8,(11,(6,15)))),(((14,5),((13,7),4)),(3,(2,9)))),1); tree rep.9050000 = (((((14,(13,4)),7),((3,(2,9)),5)),(((6,15),11),(8,10))),12,1); tree rep.9060000 = ((((5,(7,13)),(12,((9,2),3))),(4,14)),(((11,15),6),(10,8)),1); tree rep.9070000 = (((((7,13),((3,(2,9)),(14,5))),4),((10,8),(6,(11,15)))),12,1); tree rep.9080000 = ((((10,((15,11),6)),8),(((((13,7),4),14),((9,2),3)),5)),12,1); tree rep.9090000 = ((((10,(11,(6,15))),8),(((3,(9,2)),5),(14,(7,(4,13))))),12,1); tree rep.9100000 = (12,(((((((13,7),(5,(3,(2,9)))),4),14),(11,(6,15))),8),10),1); tree rep.9110000 = (((((6,15),11),(8,10)),((5,((2,9),3)),(14,(4,(13,7))))),12,1); tree rep.9120000 = ((((8,(11,(6,15))),10),(((9,2),3),(5,((14,(7,13)),4)))),12,1); tree rep.9130000 = (((((14,5),(4,(7,13))),(3,(9,2))),(8,(((15,11),6),10))),12,1); tree rep.9140000 = (12,((((14,5),((9,2),3)),(13,(7,4))),((8,10),(6,(15,11)))),1); tree rep.9150000 = ((5,((((4,(7,13)),14),((9,2),3)),((6,(15,11)),(10,8)))),12,1); tree rep.9160000 = (12,(((((2,9),3),(5,14)),(4,(7,13))),((8,(6,(11,15))),10)),1); tree rep.9170000 = ((((8,10),((15,6),11)),((((9,2),3),5),(((7,13),14),4))),12,1); tree rep.9180000 = ((((15,(11,6)),10),8),(12,(((9,2),3),(((7,13),(14,4)),5))),1); tree rep.9190000 = ((((8,10),(11,(15,6))),(((3,(9,2)),4),((14,5),(13,7)))),12,1); tree rep.9200000 = (12,((((3,(9,2)),(4,(7,13))),(5,14)),((8,10),(11,(6,15)))),1); tree rep.9210000 = (12,((((6,15),11),(8,10)),((((14,(7,13)),4),((9,2),3)),5)),1); tree rep.9220000 = (12,(((4,(7,(14,13))),(((10,8),((15,11),6)),(9,2))),(5,3)),1); tree rep.9230000 = (((((15,11),6),(8,10)),(((4,14),(7,13)),(5,((2,9),3)))),12,1); tree rep.9240000 = (((((2,9),3),5),(14,(4,(13,7)))),(12,((10,8),((11,15),6))),1); tree rep.9250000 = (12,(((8,(6,(15,11))),10),(((3,(9,2)),4),(5,(14,(7,13))))),1); tree rep.9260000 = ((((8,10),(5,((14,(4,(13,7))),(3,(2,9))))),((15,11),6)),12,1); tree rep.9270000 = (((((2,9),3),(((7,13),(4,14)),5)),(10,(8,((11,15),6)))),12,1); tree rep.9280000 = ((((5,(4,((13,7),14))),((9,2),3)),((11,(15,6)),(8,10))),12,1); tree rep.9290000 = (12,((((6,(11,15)),(8,10)),(14,((13,7),4))),(((9,2),3),5)),1); tree rep.9300000 = (12,((((3,(9,2)),((4,(7,13)),14)),5),(10,((11,(6,15)),8))),1); tree rep.9310000 = (12,(((((9,2),3),(4,(7,13))),(5,14)),(((11,15),6),(8,10))),1); tree rep.9320000 = (12,(((6,(11,15)),(10,8)),(((3,(2,9)),((13,(14,7)),4)),5)),1); tree rep.9330000 = (((((15,6),11),(10,8)),(((13,(4,7)),14),((3,(2,9)),5))),12,1); tree rep.9340000 = ((((9,2),3),(((4,(((8,10),(11,(15,6))),14)),5),(7,13))),12,1); tree rep.9350000 = (12,(((((15,6),11),8),10),((14,5),((4,(13,7)),(3,(9,2))))),1); tree rep.9360000 = (12,((((3,(9,2)),(((7,13),4),(5,14))),(15,(6,11))),(8,10)),1); tree rep.9370000 = ((((((9,2),5),3),(((7,13),4),14)),(10,(((6,15),11),8))),12,1); tree rep.9380000 = ((((3,(9,2)),((4,(7,13)),(5,14))),12),((((15,11),6),10),8),1); tree rep.9390000 = ((((9,2),3),((((13,7),4),14),((8,((11,(6,15)),10)),5))),12,1); tree rep.9400000 = (((13,7),(((14,(4,5)),((9,2),3)),12)),((8,10),(15,(6,11))),1); tree rep.9410000 = ((((8,10),(6,(11,15))),((((9,2),3),(4,(7,13))),(5,14))),12,1); tree rep.9420000 = (((8,10),((11,6),15)),(((3,12),(9,2)),(((7,13),4),(5,14))),1); tree rep.9430000 = ((((5,((7,(4,13)),14)),(3,(2,9))),((8,10),(11,(15,6)))),12,1); tree rep.9440000 = (12,((9,(3,2)),((((4,(13,7)),14),5),(10,(8,((15,6),11))))),1); tree rep.9450000 = ((14,((((11,(6,15)),(8,10)),(5,4)),(((2,9),3),(7,13)))),12,1); tree rep.9460000 = (((((3,(9,2)),5),((14,(7,13)),4)),(10,(8,(11,(6,15))))),12,1); tree rep.9470000 = (((5,((2,9),((((13,7),14),4),3))),((11,(15,6)),(10,8))),12,1); tree rep.9480000 = ((((14,(7,13)),(4,((3,(2,9)),5))),12),((6,(15,11)),(10,8)),1); tree rep.9490000 = ((((10,(11,(15,6))),8),((((13,7),4),(14,5)),(3,(2,9)))),12,1); tree rep.9500000 = (12,(((((11,6),15),10),8),((5,((7,(13,4)),14)),((9,2),3))),1); tree rep.9510000 = (12,((((11,(6,15)),8),10),(((2,9),3),((((7,13),4),5),14))),1); tree rep.9520000 = ((((6,11),15),(8,10)),(((3,(2,9)),(4,(7,13))),(12,(5,14))),1); tree rep.9530000 = (((((5,((7,13),14)),4),(3,(2,9))),(((11,(15,6)),10),8)),12,1); tree rep.9540000 = (12,((10,(8,((6,15),11))),((14,5),(((13,7),4),(3,(2,9))))),1); tree rep.9550000 = (12,(((8,10),((6,15),11)),(((9,2),3),(5,(((14,4),7),13)))),1); tree rep.9560000 = (((10,(8,((11,15),6))),((14,((9,2),3)),(((7,13),4),5))),12,1); tree rep.9570000 = (((14,(3,(2,9))),(5,((13,7),4))),(12,(8,(((15,6),11),10))),1); tree rep.9580000 = (((((9,2),(((7,13),14),4)),(3,5)),(((11,15),6),(8,10))),12,1); tree rep.9590000 = (12,(((9,2),3),(5,((((6,(11,15)),(10,8)),((13,7),4)),14))),1); tree rep.9600000 = (12,((5,((((10,8),(11,(6,15))),((4,7),13)),(3,(9,2)))),14),1); tree rep.9610000 = (12,(((10,((15,6),11)),8),((13,7),(((14,5),(3,(9,2))),4))),1); tree rep.9620000 = (((11,(15,6)),(10,8)),((3,((2,9),(14,((4,(13,7)),5)))),12),1); tree rep.9630000 = (((((11,(15,6)),8),10),((((9,2),3),((14,4),(13,7))),5)),12,1); tree rep.9640000 = (12,(((5,((9,2),3)),(4,(14,(7,13)))),((10,8),(6,(11,15)))),1); tree rep.9650000 = (((5,((14,(4,(13,7))),((9,2),3))),((8,((15,11),6)),10)),12,1); tree rep.9660000 = ((8,(10,((6,15),11))),(((3,(2,9)),((14,(5,(13,7))),4)),12),1); tree rep.9670000 = ((((10,8),(6,(11,15))),((3,(2,9)),((((7,13),5),4),14))),12,1); tree rep.9680000 = (((11,(15,6)),(10,8)),(12,(((2,9),3),(((14,(13,7)),4),5))),1); tree rep.9690000 = ((((6,(11,15)),(8,10)),((((5,14),(3,(9,2))),4),(13,7))),12,1); tree rep.9700000 = (((((((3,(9,2)),5),(14,((7,13),4))),8),10),(11,(15,6))),12,1); tree rep.9710000 = (((11,(6,15)),(((((9,2),3),5),(((13,7),4),14)),(8,10))),12,1); tree rep.9720000 = (12,((10,(8,((15,6),11))),((((4,(7,13)),14),5),(3,(9,2)))),1); tree rep.9730000 = (12,((((7,(14,5)),(3,(9,2))),(13,4)),((8,10),((15,11),6))),1); tree rep.9740000 = (12,(((10,8),((15,11),6)),((5,((9,2),3)),(4,((7,13),14)))),1); tree rep.9750000 = (12,((((11,(15,6)),(8,10)),(5,(14,((7,13),4)))),(3,(9,2))),1); tree rep.9760000 = (((8,10),(((11,15),6),((((9,2),3),5),(((13,7),4),14)))),12,1); tree rep.9770000 = (((((14,5),(3,(9,2))),((7,13),4)),(8,(10,(6,(11,15))))),12,1); tree rep.9780000 = ((((((((6,15),11),8),10),((13,7),4)),((3,(2,9)),14)),12),5,1); tree rep.9790000 = (12,(((4,(13,7)),(14,(((9,2),3),(((11,15),6),(8,10))))),5),1); tree rep.9800000 = ((((3,2),9),((((6,(11,15)),8),10),(14,((4,(13,7)),5)))),12,1); tree rep.9810000 = ((((10,(11,(6,15))),8),((14,(((9,2),3),5)),(4,(7,13)))),12,1); tree rep.9820000 = ((10,(((11,15),6),8)),((((((7,13),14),5),4),(3,(9,2))),12),1); tree rep.9830000 = (12,(((14,((4,(13,7)),((9,2),3))),5),((10,8),(11,(15,6)))),1); tree rep.9840000 = (12,(((6,(15,11)),(10,8)),(((9,2),3),(14,(5,(4,(7,13)))))),1); tree rep.9850000 = (((((6,15),11),(10,8)),((((2,9),3),(((7,13),4),14)),5)),12,1); tree rep.9860000 = ((((3,(2,9)),(5,((7,13),(4,14)))),(8,(((11,15),6),10))),12,1); tree rep.9870000 = ((8,((((5,((14,7),(13,4))),((2,9),3)),((6,15),11)),10)),12,1); tree rep.9880000 = (((4,((14,5),(((11,15),6),(8,10)))),((3,(2,9)),(7,13))),12,1); tree rep.9890000 = ((((5,(((13,7),(2,9)),4)),(14,3)),((10,((15,6),11)),8)),12,1); tree rep.9900000 = (12,(((6,(11,15)),(10,8)),(14,((((7,13),4),5),((9,2),3)))),1); tree rep.9910000 = (12,((5,(((9,2),3),((4,(7,13)),14))),((10,8),((15,11),6))),1); tree rep.9920000 = ((((((2,9),3),(4,(13,7))),(5,14)),(8,(((15,6),11),10))),12,1); tree rep.9930000 = (12,(((10,8),((11,15),6)),((4,(((14,13),7),(3,(2,9)))),5)),1); tree rep.9940000 = (12,((5,(14,(((9,2),3),((7,13),4)))),(8,(((15,11),6),10))),1); tree rep.9950000 = ((((((9,2),3),5),((14,(7,13)),4)),12),(((6,(15,11)),8),10),1); tree rep.9960000 = (12,(((2,9),3),(14,(13,(5,(4,((8,(((15,11),6),10)),7)))))),1); tree rep.9970000 = ((12,(10,(8,((15,6),11)))),((14,((7,13),4)),((2,9),(5,3))),1); tree rep.9980000 = (12,(((14,((((6,15),11),(8,10)),((2,9),3))),5),(4,(13,7))),1); tree rep.9990000 = (((10,(8,((11,15),6))),((13,7),(14,((4,(3,(9,2))),5)))),12,1); tree rep.10000000 = (12,((((5,14),4),((13,7),(8,(10,((15,11),6))))),((3,2),9)),1); end; phangorn/inst/extdata/trees/woodmouse.fasta0000644000176200001440000003447113201424001020654 0ustar liggesusers>No305 nttcgaaaaacacacccactactaaaanttatcagtcactccttcatcgacttaccagctccatctaacatttcatcatgatgaaacttcggctcattactaggagtctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgtcgagacgtaaattatggctgactaattcgatacatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatgtattacgggtcatacattttcatagaaacatgaaacatcggtgtggtccttttattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaanttactatcagcaattccatacatcggaactaccctagtagagtgaatctgaggaggattctcagtagacaaagccacactgacacgttttttcgcttttcactttatccttccatttatcattgccgccctagtaattgtccacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggtgtactaataatagtttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatatttcctatttgcctatgcaatcctacgatccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcagaccctata >No304 attcgaaaaacacacccactactaaaaattatcaaccactccttcatcgacttaccagctccatctaacatttcatcatgatgaaacttcggctcattactaggaatctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgtcgagacgtaaattatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatgtattacgggtcatacatttttatagaaacatgaaacatcggtgtagtccttttattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattncaaatttactntcagcaattccatacatcggaactaccctagtagaatgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcacttcatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggtgtactaataatagtttccttcctaataactctagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatacttcctatttgcctatgcaatcctacggtccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaaccctgtn >No306 attcgaaaaacacacccactactaaaaattatcaatcactccttcatcgacttaccagctccatctaacatttcatcatgatgaaacttcggctcattactaggaatctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgtcgagacgtaaattatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatgtattacgggtcatacatttttatagaaacatgaaacatcggtgtgatccttttattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaatttactatcagcaattccatacatcggaactaccctagtagaatgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcacttcatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggtgtactaataatagtttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacnncatattaaaccagaatgatacttcctatttgcctatgcaatcctacggtccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaaccctata >No0906S attcgaaaaacacacccactactaaaaatcatcaatcactccttcatcgatttaccagctccatctaacatttcatcatgatgaaacttcggctcattactaggaatctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgtcgagacgtaaattatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatgtattacggatcatacatttttatagaaacatgaaacatcggtatgatccttttattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaatttactatcagcaattccatacatcggaactaccctagtagagtgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcacttcatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggtgtactaataataatttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatacttcctatttgcctatgcaatcctacgatccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaatacnnnn >No0908S attcgaaaaacacacccactactaaaaattatcaatcactccttcatcgacttaccagccccatctaacatttcatcatgatgaaacttcggctcattactaggaatctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgtcgagacgtaaattatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttctccatgtaggacgaggaatgtattacgggtcatacatttttatagaaacatgaaacatcggtgtgatccttttattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggggctacagtaattacaaatttactatcagcaattccatatatcggaactaccctagtagagtgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcacttcatcctcccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggtgtactaataatagtttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatacttcctatttgcctatgcaatcctacgatccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaacccnnnn >No0909S attcgaaaaacacacccactactaaaaattatcaatcactccttcatcgacttaccagctccatctaacatctcatcatgatgaaacttcggctccttactaggaatctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgtcgagacgtaaactatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatgtattacgggtcatacactttcatagaaacatgaaacatcggtgtgatccttctattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaatttactatcagcaattccatacatcgggactaccctagtagagtgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcactttatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggtgtactaataatagtttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatacttcctatttgcctatgcaatcctacgatccatccccaataaactaggcggagtcctagccctaatcctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaacccnnnn >No0910S attcgaaaaacacacccactactaaaaattatcaatcactctttcatcgatttaccagctccatctaacatttcatcatgatgaaacttcggctcattactaggaatctgcctaataatccagatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgtcgagacgtaaattatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatgtattacggatcatacatttttatagaaacatgaaacatcggtgtgatccttttattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaatttactatcagcaattccatacatcggaactaccctagtagagtgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcacttcatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggcgtactaataatagtttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatacttcctatttgcctatgcaatcctacgatccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccatttcttcacacttgcaaacaacgcagcctaatattccgcccaattactcaaacccnnnn >No0912S attcgaaaaacacacccactactaaaaattatcaatcactccttcatcgacttaccagctccatctaacatctcatcatgatgaaacttcggctccttactaggaatctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgtcgagacgtaaattatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacggggaatgtattacgggtcatacattttcatagaaacatgaaacatcggtgtgatccttttattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaatttactatcagcaattccatacatcggaactaccctagtagagtgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgctttccacttcatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagacattctaggtgtactaataatagtttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatatttcctatttgcctatgcaatcctacgatccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaacccnnnn >No0913S attcgaaaaacacacccactactaaaaattatcaaccactccttcatcgacttaccagctccatctaacatttcatcatgatgaaacttcggctcattactaggaatctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgtcgagacgtaaattatggctgactaattcgatatatgcatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatgtattacggatcatacatttttatagaaacatgaaacatcggtgtgatccttttattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaatttactatcagcaattccatacatcggaactaccctagtagaatgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcacttcatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggcgtactaataatagtttccttcctaataactctagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatacttcctatttgcctatgcaatcctacggtccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaacccnnnn >No1103S attcgaaaaacacacccactactaaaaattattaatcactccttcatcgacttaccagctccatctaacatctcatcatgatgaaacttcggctccttactaggaatctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgtcgagacgtaaattatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatgtattacgggtcatacattttcatagaaacatgaaacatcggtgtgatccttttattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaatttactatcagcaattccatacatcggaactaccctagtagagtgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcacttcatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggtgtactaataatagtttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatatttcctatttgcctatgcaatcctacgatccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaacccnnnn >No1007S attcgaaaaacacacccactactaaaaattatcaatcactccttcatcgacttaccagctccatctaacatctcatcatgatgaaacttcggctccttactaggaatctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgccgagacgtaaattatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatgtattacgggtcatacactttcatagaaacatgaaacatcggtgtgatccttctattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaatttactatcagcaattccatacatcgggactaccctagtagagtgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcactttatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggtgtactaataatagtttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatacttcctatttgcctatgcaatcctacgatccatccccaataaactaggcggagtcctagccctaatcctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaacccnnnn >No1114S nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnatcgacttaccagctccatctaacatttcatcatgatgaaacttcggctcattactaggagtctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagnaacccatatttgccgagacgtaaattatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatatattacggctcatacattctcatagaaacatgaaacatcggtgtggtccttttattcgcagtaatagtcacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaatttcctatcagcaattccatacatcggaactaccctagtagagtgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcactttatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaggatattctaggtgtactaataatagtttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatatttcctatttgcctatgcaatcctacggtccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccattccttcacacttccaaacaacgcagcctaatattccgcccaattactcaaacccnnnn >No1202S attcgaaaaacacacccactactaaaaattatcaatcactccttcatcgatttaccagctccatctaacatttcatcatgatgaaacttcggctcattactaggaatctgcctaataatccagatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgccgagacgtaaattatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatgtattacggatcatacatttttatagaaacatgaaacatcggtgtgatccttttattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaatttactatcagcaattccatacatcggaactaccctagtagagtgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcacttcatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggcgtactaataatagtttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatacttcctatttgcctatgcaatcctacgatccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaacccnnnn >No1206S attcgaaaaacacacccactactaaaaattatcaatcactccttcatcgatttgccagctccatctaacatttcatcatgatgaaacttcggctcattactaggaatctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgtcgagacgtaaattatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttctccatgtaggacgaggaatgtattacgggtcatacatttttatagaaacatgaaacatcggtgtgatccttttattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccttctgaggagctacagtaattacaaatttactatcagcaattccatacatcggaactaccctagtagagtgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcacttcatccttccatttatcattgccgccctagtaattgtgcacctcttgtttcttcatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggtgtactaataatagtttccttcctaataactttagtccttttctttccagacctcttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatacttcctatttgcctatgcaatcctacgatccatccccaataaactaggcggagtcctagccctaattctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaacccnnnn >No1208S nnncgaaaaacacacccactactaaaaattatcaatcactccttcatcgacttaccagctccatctaacatctcatcatgatgaaacttcggctccttactaggaatctgcctaataatccaaatcctcacaggcttattcctagcaatacactacacatcagacacaataacagcattctcttcagtaacccatatttgccgagacgtaaactatggctgactaattcgatatatacatgcaaacggagcctcaatattttttatttgcctatttcttcatgtaggacgaggaatgtattacgggtcatacactttcatagaaacatgaaacatcggtgtgatccttctattcgcagtaatagccacagcattcataggatatgttcttccatgaggacaaatatccctctgaggagctacagtaattacaaatttactatcagcaattccatacatcgggactaccctagtagagtgaatctgaggaggattctcagtagacaaagctacattgacacgttttttcgcttttcactttatccttccatttatcattgccgccctagtaattgttcacctcttgtttctccatgaaactggatctaataacccaacaggccttaactcagacgccgataaaatcccatttcacccttactatacaattaaagatattctaggtgtactaataatagtttccttcctaataactttagtccttttctttccagaccttttaggtgacccggacaactacatgcctgctaacccacttaacaccccacctcatattaaaccagaatgatacttcctatttgcctatgcaatcctacgatccatccccaataaactaggcggagtcctagccctaatcctatcaatcttaattttagccttattaccatttcttcacacttccaaacaacgcagcctaatattccgcccaattactcaaacccnnnn phangorn/inst/extdata/trees/RAxML_distances.Wang.nxs0000644000176200001440000014142413201424001022215 0ustar liggesusers#nexus BEGIN Taxa; DIMENSIONS ntax=28; TAXLABELS [1] 't0' [2] 't1' [3] 't2' [4] 't3' [5] 't4' [6] 't5' [7] 't6' [8] 't7' [9] 't8' [10] 't9' [11] 't10' [12] 't11' [13] 't12' [14] 't13' [15] 't14' [16] 't15' [17] 't16' [18] 't17' [19] 't18' [20] 't19' [21] 't20' [22] 't21' [23] 't22' [24] 't23' [25] 't24' [26] 't25' [27] 't26' [28] 't27' ; END; [Taxa] BEGIN Distances; DIMENSIONS ntax=28; FORMAT labels=no diagonal triangle=both; MATRIX 0.0 0.258843 0.409325 0.343611 0.386997 0.415368 0.467334 0.473925 0.408069 0.420966 0.43411 0.394818 0.389391 0.391833 0.378215 0.350729 0.345639 0.384907 0.508726 0.36965 0.401646 0.425956 0.475112 0.398581 0.446356 0.436988 0.369089 0.354247 0.258843 0.0 0.323278 0.239842 0.290738 0.303712 0.355727 0.361451 0.303126 0.328877 0.330235 0.305238 0.287997 0.28925 0.273233 0.243648 0.237544 0.285948 0.408866 0.273934 0.300483 0.316453 0.371314 0.289605 0.336424 0.335047 0.274434 0.251616 0.409325 0.323278 0.0 0.192319 0.275137 0.292431 0.35189 0.362158 0.296773 0.310806 0.326997 0.296513 0.272283 0.273158 0.265655 0.23153 0.229852 0.269492 0.391463 0.269358 0.28426 0.330917 0.349753 0.285794 0.307787 0.311625 0.257636 0.248276 0.343611 0.239842 0.192319 0.0 0.198776 0.213667 0.27468 0.280565 0.218724 0.241622 0.240754 0.218819 0.204383 0.202528 0.189195 0.15777 0.149061 0.201101 0.313442 0.193414 0.209843 0.237999 0.269041 0.214494 0.250222 0.253596 0.178383 0.171646 0.386997 0.290738 0.275137 0.198776 0.0 0.18134 0.319484 0.333494 0.263994 0.288442 0.294154 0.26471 0.243803 0.240583 0.227367 0.205057 0.198308 0.234238 0.355626 0.239961 0.25183 0.273172 0.3179 0.251589 0.285163 0.292887 0.221681 0.211134 0.415368 0.303712 0.292431 0.213667 0.18134 0.0 0.333731 0.340654 0.278111 0.300698 0.31011 0.28522 0.256139 0.258498 0.242481 0.221987 0.217595 0.24785 0.376793 0.252101 0.265266 0.293642 0.330253 0.272678 0.301029 0.302205 0.236378 0.229261 0.467334 0.355727 0.35189 0.27468 0.319484 0.333731 0.0 0.134287 0.168048 0.234852 0.24194 0.242607 0.30195 0.305477 0.288246 0.259075 0.256117 0.302991 0.41738 0.288657 0.317827 0.340062 0.383568 0.3144 0.350638 0.345894 0.292802 0.279407 0.473925 0.361451 0.362158 0.280565 0.333494 0.340654 0.134287 0.0 0.168357 0.231526 0.237933 0.239547 0.309204 0.307881 0.30116 0.27246 0.262342 0.317714 0.443878 0.299024 0.320617 0.343873 0.390457 0.316104 0.350009 0.345356 0.296305 0.28984 0.408069 0.303126 0.296773 0.218724 0.263994 0.278111 0.168048 0.168357 0.0 0.18008 0.181142 0.185641 0.244912 0.248834 0.236322 0.207572 0.201513 0.24871 0.372027 0.240296 0.259989 0.292156 0.320957 0.261104 0.294639 0.291276 0.240866 0.224824 0.420966 0.328877 0.310806 0.241622 0.288442 0.300698 0.234852 0.231526 0.18008 0.0 0.188549 0.209353 0.26783 0.265944 0.259007 0.231976 0.232078 0.276663 0.390486 0.266511 0.289918 0.309126 0.350459 0.278135 0.310626 0.303923 0.262268 0.254853 0.43411 0.330235 0.326997 0.240754 0.294154 0.31011 0.24194 0.237933 0.181142 0.188549 0.0 0.200935 0.276708 0.271141 0.260416 0.23615 0.238456 0.275479 0.390198 0.26919 0.289665 0.316638 0.352527 0.291514 0.320199 0.321656 0.269881 0.254806 0.394818 0.305238 0.296513 0.218819 0.26471 0.28522 0.242607 0.239547 0.185641 0.209353 0.200935 0.0 0.254629 0.248918 0.238901 0.214572 0.209137 0.247335 0.362256 0.244905 0.267859 0.289265 0.340281 0.26744 0.293766 0.290507 0.242726 0.227337 0.389391 0.287997 0.272283 0.204383 0.243803 0.256139 0.30195 0.309204 0.244912 0.26783 0.276708 0.254629 0.0 0.106404 0.215913 0.18846 0.188488 0.229021 0.350267 0.227728 0.243568 0.27675 0.298806 0.241919 0.279501 0.27594 0.228754 0.217302 0.391833 0.28925 0.273158 0.202528 0.240583 0.258498 0.305477 0.307881 0.248834 0.265944 0.271141 0.248918 0.106404 0.0 0.215622 0.188337 0.187822 0.231728 0.359961 0.226188 0.246065 0.271509 0.301748 0.242827 0.27931 0.272526 0.223715 0.214143 0.378215 0.273233 0.265655 0.189195 0.227367 0.242481 0.288246 0.30116 0.236322 0.259007 0.260416 0.238901 0.215913 0.215622 0.0 0.105689 0.170273 0.214167 0.335401 0.21004 0.227981 0.248821 0.290917 0.229404 0.267494 0.265412 0.20581 0.199473 0.350729 0.243648 0.23153 0.15777 0.205057 0.221987 0.259075 0.27246 0.207572 0.231976 0.23615 0.214572 0.18846 0.188337 0.105689 0.0 0.143812 0.184106 0.311927 0.183622 0.201611 0.220634 0.253471 0.201767 0.235578 0.234455 0.175537 0.16857 0.345639 0.237544 0.229852 0.149061 0.198308 0.217595 0.256117 0.262342 0.201513 0.232078 0.238456 0.209137 0.188488 0.187822 0.170273 0.143812 0.0 0.184446 0.309875 0.181246 0.200167 0.221079 0.254232 0.201279 0.233194 0.23272 0.174841 0.166217 0.384907 0.285948 0.269492 0.201101 0.234238 0.24785 0.302991 0.317714 0.24871 0.276663 0.275479 0.247335 0.229021 0.231728 0.214167 0.184106 0.184446 0.0 0.30631 0.205173 0.220753 0.263666 0.288162 0.231847 0.273379 0.270824 0.212613 0.200892 0.508726 0.408866 0.391463 0.313442 0.355626 0.376793 0.41738 0.443878 0.372027 0.390486 0.390198 0.362256 0.350267 0.359961 0.335401 0.311927 0.309875 0.30631 0.0 0.328767 0.345767 0.375018 0.413708 0.353073 0.377324 0.383577 0.326556 0.324104 0.36965 0.273934 0.269358 0.193414 0.239961 0.252101 0.288657 0.299024 0.240296 0.266511 0.26919 0.244905 0.227728 0.226188 0.21004 0.183622 0.181246 0.205173 0.328767 0.0 0.20445 0.244817 0.276658 0.231816 0.269496 0.272141 0.210992 0.20783 0.401646 0.300483 0.28426 0.209843 0.25183 0.265266 0.317827 0.320617 0.259989 0.289918 0.289665 0.267859 0.243568 0.246065 0.227981 0.201611 0.200167 0.220753 0.345767 0.20445 0.0 0.26742 0.303242 0.250707 0.278888 0.278873 0.227446 0.228395 0.425956 0.316453 0.330917 0.237999 0.273172 0.293642 0.340062 0.343873 0.292156 0.309126 0.316638 0.289265 0.27675 0.271509 0.248821 0.220634 0.221079 0.263666 0.375018 0.244817 0.26742 0.0 0.317486 0.270538 0.308484 0.306739 0.264346 0.244066 0.475112 0.371314 0.349753 0.269041 0.3179 0.330253 0.383568 0.390457 0.320957 0.350459 0.352527 0.340281 0.298806 0.301748 0.290917 0.253471 0.254232 0.288162 0.413708 0.276658 0.303242 0.317486 0.0 0.305015 0.339609 0.342366 0.282416 0.276724 0.398581 0.289605 0.285794 0.214494 0.251589 0.272678 0.3144 0.316104 0.261104 0.278135 0.291514 0.26744 0.241919 0.242827 0.229404 0.201767 0.201279 0.231847 0.353073 0.231816 0.250707 0.270538 0.305015 0.0 0.285912 0.284949 0.228325 0.220458 0.446356 0.336424 0.307787 0.250222 0.285163 0.301029 0.350638 0.350009 0.294639 0.310626 0.320199 0.293766 0.279501 0.27931 0.267494 0.235578 0.233194 0.273379 0.377324 0.269496 0.278888 0.308484 0.339609 0.285912 0.0 0.097874 0.268769 0.255562 0.436988 0.335047 0.311625 0.253596 0.292887 0.302205 0.345894 0.345356 0.291276 0.303923 0.321656 0.290507 0.27594 0.272526 0.265412 0.234455 0.23272 0.270824 0.383577 0.272141 0.278873 0.306739 0.342366 0.284949 0.097874 0.0 0.270444 0.256659 0.369089 0.274434 0.257636 0.178383 0.221681 0.236378 0.292802 0.296305 0.240866 0.262268 0.269881 0.242726 0.228754 0.223715 0.20581 0.175537 0.174841 0.212613 0.326556 0.210992 0.227446 0.264346 0.282416 0.228325 0.268769 0.270444 0.0 0.183681 0.354247 0.251616 0.248276 0.171646 0.211134 0.229261 0.279407 0.28984 0.224824 0.254853 0.254806 0.227337 0.217302 0.214143 0.199473 0.16857 0.166217 0.200892 0.324104 0.20783 0.228395 0.244066 0.276724 0.220458 0.255562 0.256659 0.183681 0.0 ; END; [Distances] BEGIN Splits; DIMENSIONS ntax=28 nsplits=90; FORMAT labels=no weights=yes confidences=no intervals=no; PROPERTIES fit=98.91263210217491 cyclic; CYCLE 1 3 4 5 6 17 15 16 13 14 12 10 11 9 8 7 26 25 19 18 21 20 23 22 24 27 28 2; MATRIX [1, size=1] 0.1279713 1 2 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [2, size=2] 0.017143281 1 2 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [3, size=4] 0.0013902244 1 2 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [4, size=9] 1.5893235E-4 1 2 7 8 9 10 11 12 18 19 20 21 22 23 24 25 26 27 28, [5, size=3] 0.002769119 1 2 28, [6, size=2] 0.08403672 1 2, [7, size=1] 0.17367192 1, [8, size=1] 0.057841897 1 2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [9, size=3] 1.7729466E-4 1 2 3 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [10, size=5] 3.662799E-4 1 2 3 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 24 25 26 27 28, [11, size=2] 0.0060906718 1 3, [12, size=1] 0.08134686 1 2 3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [13, size=2] 0.038590923 1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [14, size=4] 0.0018195357 1 2 3 4, [15, size=1] 0.09856205 1 2 3 4 5 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [16, size=8] 4.167727E-4 1 2 3 4 5 24 27 28, [17, size=4] 0.0012588556 1 3 4 5, [18, size=1] 0.0688266 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28, [19, size=3] 8.21237E-4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 18 19 20 21 22 23 24 25 26 27 28, [20, size=12] 8.992125E-4 1 2 3 4 5 6 18 19 20 21 22 23 24 25 27 28, [21, size=8] 0.0022681346 1 2 3 4 5 6 27 28, [22, size=1] 0.0665534 1 2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21 22 23 24 25 26 27 28, [23, size=2] 0.03262534 1 2 3 4 5 6 7 8 9 10 11 12 13 14 17 18 19 20 21 22 23 24 25 26 27 28, [24, size=3] 4.7089203E-4 1 2 3 4 5 6 7 8 9 10 11 12 14 17 18 19 20 21 22 23 24 25 26 27 28, [25, size=4] 4.685271E-4 1 2 3 4 5 6 7 8 9 10 11 12 17 18 19 20 21 22 23 24 25 26 27 28, [26, size=9] 0.0010168224 1 2 3 4 5 6 17 27 28, [27, size=1] 0.03859058 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 18 19 20 21 22 23 24 25 26 27 28, [28, size=3] 3.5754856E-4 1 2 3 4 5 6 7 8 9 10 11 12 15 17 18 19 20 21 22 23 24 25 26 27 28, [29, size=1] 0.052748006 1 2 3 4 5 6 7 8 9 10 11 12 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [30, size=2] 0.06064433 1 2 3 4 5 6 7 8 9 10 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [31, size=7] 0.0010652957 1 2 3 4 5 6 7 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [32, size=9] 7.895848E-4 1 2 3 4 5 6 15 16 17 18 19 20 21 22 23 24 25 27 28, [33, size=1] 0.05142635 1 2 3 4 5 6 7 8 9 10 11 12 13 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [34, size=4] 0.0011806624 1 2 3 4 5 6 7 8 9 13 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [35, size=8] 1.787175E-4 1 2 3 4 5 6 13 15 16 17 18 19 20 21 22 23 24 25 27 28, [36, size=9] 8.855418E-4 1 2 3 4 5 6 13 15 16 17 18 19 20 21 22 23 24 27 28, [37, size=1] 0.0914247 1 2 3 4 5 6 7 8 9 10 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [38, size=5] 0.0012966593 1 2 3 4 5 6 7 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [39, size=6] 0.038550336 1 2 3 4 5 6 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [40, size=9] 0.001203692 1 2 3 4 5 6 13 14 15 16 17 18 20 21 22 23 24 27 28, [41, size=1] 0.092642605 1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [42, size=2] 0.0044335932 1 2 3 4 5 6 7 8 9 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [43, size=4] 0.0014246248 1 2 3 4 5 6 7 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [44, size=5] 0.012698617 1 2 3 4 5 6 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [45, size=7] 2.5534217E-4 1 2 3 4 5 6 12 13 14 15 16 17 18 19 20 21 22 23 24 27 28, [46, size=1] 0.09702029 1 2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [47, size=4] 0.0010406735 1 2 3 4 5 6 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [48, size=1] 0.05344081 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [49, size=3] 0.021949023 1 2 3 4 5 6 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [50, size=14] 3.9997647E-4 1 2 3 4 5 6 10 11 12 13 14 15 16 17, [51, size=1] 0.06783958 1 2 3 4 5 6 7 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [52, size=2] 0.04591966 1 2 3 4 5 6 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [53, size=3] 2.8627258E-4 1 2 3 4 5 6 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28, [54, size=4] 4.0487162E-4 1 2 3 4 5 6 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 27 28, [55, size=1] 0.064194575 1 2 3 4 5 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, [56, size=1] 0.047182973 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28, [57, size=2] 0.10500158 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 27 28, [58, size=3] 0.0014762296 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 22 23 24 27 28, [59, size=5] 0.001466786 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 20 22 23 24 27 28, [60, size=8] 8.702291E-4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 24 27 28, [61, size=9] 0.0010516174 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 27 28, [62, size=1] 0.044313457 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28, [63, size=2] 0.004750093 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 22 23 24 26 27 28, [64, size=6] 1.337294E-5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 22 24 26 27 28, [65, size=1] 0.20566262 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 28, [66, size=2] 0.013317523 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 28, [67, size=4] 0.0021476466 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 22 23 24 25 26 27 28, [68, size=8] 0.0015038507 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 25 26 28, [69, size=1] 0.09029672 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 20 21 22 23 24 25 26 27 28, [70, size=2] 1.5751319E-4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 20 22 23 24 25 26 27 28, [71, size=4] 0.0019187863 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 22 24 25 26 27 28, [72, size=1] 0.109228075 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 23 24 25 26 27 28, [73, size=2] 0.006326371 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 22 23 24 25 26 27 28, [74, size=4] 0.0023116763 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 24 25 26 27 28, [75, size=1] 0.089916565 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 21 22 23 24 25 26 27 28, [76, size=2] 1.050739E-4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 21 22 24 25 26 27 28, [77, size=3] 0.0016833246 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 21 24 25 26 27 28, [78, size=1] 0.17474917 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28, [79, size=2] 0.0022174222 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 24 25 26 27 28, [80, size=3] 0.001391344 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 25 26 27 28, [81, size=5] 4.242624E-4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 25 26, [82, size=1] 0.13961297 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28, [83, size=2] 0.0013124112 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 25 26 27 28, [84, size=1] 0.1194786 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28, [85, size=2] 4.8682792E-4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 28, [86, size=1] 0.09366718 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28, [87, size=2] 0.0045568696 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26, [88, size=1] 0.08093566 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27, [89, size=2] 0.0015117239 1 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27, [90, size=1] 0.076351464 1 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28, ; END; [Splits] BEGIN Network; DIMENSIONS ntax=28 nvertices=346 nedges=600; DRAW to_scale; TRANSLATE 2 't0', 3 't2', 4 't3', 5 't4', 6 't5', 7 't16', 8 't14', 9 't15', 10 't12', 11 't13', 12 't11', 13 't9', 14 't10', 15 't8', 16 't7', 17 't6', 18 't25', 19 't24', 20 't18', 21 't17', 22 't20', 23 't19', 24 't22', 25 't21', 26 't23', 27 't26', 28 't27', 29 't1', ; VERTICES 1 -0.17367192 0.0 w=2 h=2 s=n, 2 0.0 0.0 w=2 h=2 s=n, 3 -0.11768977 0.045046512 w=2 h=2 s=n, 4 -0.19602421 0.041381847 w=2 h=2 s=n, 5 -0.17523988 0.08842624 w=2 h=2 s=n, 6 -0.17898935 0.1143971 w=2 h=2 s=n, 7 -0.24188966 0.07239327 w=2 h=2 s=n, 8 -0.2543338 0.10839781 w=2 h=2 s=n, 9 -0.26945123 0.082165845 w=2 h=2 s=n, 10 -0.30659822 0.12002788 w=2 h=2 s=n, 11 -0.31904063 0.11555596 w=2 h=2 s=n, 12 -0.3723963 0.09579757 w=2 h=2 s=n, 13 -0.40555912 0.08773562 w=2 h=2 s=n, 14 -0.4215746 0.07218595 w=2 h=2 s=n, 15 -0.40375552 0.03841092 w=2 h=2 s=n, 16 -0.46578634 0.021180429 w=2 h=2 s=n, 17 -0.457186 0.0051984675 w=2 h=2 s=n, 18 -0.4112275 -0.0713001 w=2 h=2 s=n, 19 -0.40493098 -0.082802355 w=2 h=2 s=n, 20 -0.41573197 -0.17496379 w=2 h=2 s=n, 21 -0.32123187 -0.093300976 w=2 h=2 s=n, 22 -0.29972327 -0.1157434 w=2 h=2 s=n, 23 -0.27406484 -0.09962054 w=2 h=2 s=n, 24 -0.23216128 -0.17543635 w=2 h=2 s=n, 25 -0.2095651 -0.12994294 w=2 h=2 s=n, 26 -0.19596717 -0.09110639 w=2 h=2 s=n, 27 -0.19119321 -0.05464892 w=2 h=2 s=n, 28 -0.1878907 -0.030641899 w=2 h=2 s=n, 29 -0.10504844 -0.018586801 w=2 h=2 s=n, 30 -0.25718024 0.009409128 w=2 h=2 s=n, 31 -0.26323262 0.008727189 w=2 h=2 s=n, 32 -0.17972429 -6.819389E-4 w=2 h=2 s=n, 33 -0.25987992 0.010025315 w=2 h=2 s=n, 34 -0.2659323 0.009343375 w=2 h=2 s=n, 35 -0.2677404 0.009139652 w=2 h=2 s=n, 36 -0.2650407 0.008523465 w=2 h=2 s=n, 37 -0.26892862 0.008723878 w=2 h=2 s=n, 38 -0.2662289 0.008107692 w=2 h=2 s=n, 39 -0.2644208 0.008311415 w=2 h=2 s=n, 40 -0.18091251 -0.0010977125 w=2 h=2 s=n, 41 -0.26934275 0.008770542 w=2 h=2 s=n, 42 -0.27159664 0.008516592 w=2 h=2 s=n, 43 -0.27118248 0.008469928 w=2 h=2 s=n, 44 -0.27258795 0.008290328 w=2 h=2 s=n, 45 -0.27217382 0.008243664 w=2 h=2 s=n, 46 -0.27272007 0.007912797 w=2 h=2 s=n, 47 -0.2723059 0.007866133 w=2 h=2 s=n, 48 -0.2713146 0.008092397 w=2 h=2 s=n, 49 -0.2690607 0.008346348 w=2 h=2 s=n, 50 -0.26636103 0.007730161 w=2 h=2 s=n, 51 -0.27223247 0.009152431 w=2 h=2 s=n, 52 -0.2732238 0.008926167 w=2 h=2 s=n, 53 -0.2733559 0.008548636 w=2 h=2 s=n, 54 -0.25981095 0.010168508 w=2 h=2 s=n, 55 -0.26586333 0.009486569 w=2 h=2 s=n, 56 -0.26767144 0.009282845 w=2 h=2 s=n, 57 -0.26885965 0.008867072 w=2 h=2 s=n, 58 -0.2692738 0.008913736 w=2 h=2 s=n, 59 -0.27152768 0.008659785 w=2 h=2 s=n, 60 -0.2721635 0.009295625 w=2 h=2 s=n, 61 -0.27315485 0.00906936 w=2 h=2 s=n, 62 -0.27386624 0.009411948 w=2 h=2 s=n, 63 -0.2739352 0.009268755 w=2 h=2 s=n, 64 -0.27406728 0.008891224 w=2 h=2 s=n, 65 -0.27472958 0.009609 w=2 h=2 s=n, 66 -0.27479854 0.009465806 w=2 h=2 s=n, 67 -0.27493063 0.009088275 w=2 h=2 s=n, 68 -0.27421924 0.008745687 w=2 h=2 s=n, 69 -0.2735834 0.008109848 w=2 h=2 s=n, 70 -0.27600223 0.009465806 w=2 h=2 s=n, 71 -0.27613434 0.009088275 w=2 h=2 s=n, 72 -0.27542293 0.008745687 w=2 h=2 s=n, 73 -0.2747871 0.008109848 w=2 h=2 s=n, 74 -0.27392375 0.007912797 w=2 h=2 s=n, 75 -0.27636832 0.008063024 w=2 h=2 s=n, 76 -0.27565694 0.0077204364 w=2 h=2 s=n, 77 -0.2750211 0.007084597 w=2 h=2 s=n, 78 -0.27415776 0.0068875453 w=2 h=2 s=n, 79 -0.27295408 0.0068875453 w=2 h=2 s=n, 80 -0.2725399 0.0068408814 w=2 h=2 s=n, 81 -0.27489826 0.009668026 w=2 h=2 s=n, 82 -0.27496722 0.009524833 w=2 h=2 s=n, 83 -0.2761709 0.009524833 w=2 h=2 s=n, 84 -0.27630302 0.009147302 w=2 h=2 s=n, 85 -0.27653703 0.008122051 w=2 h=2 s=n, 86 -0.27682444 0.0073006563 w=2 h=2 s=n, 87 -0.27665576 0.0072416295 w=2 h=2 s=n, 88 -0.27594435 0.0068990416 w=2 h=2 s=n, 89 -0.27530852 0.006263202 w=2 h=2 s=n, 90 -0.27444518 0.0060661505 w=2 h=2 s=n, 91 -0.2732415 0.0060661505 w=2 h=2 s=n, 92 -0.2742768 0.004571756 w=2 h=2 s=n, 93 -0.2730731 0.004571756 w=2 h=2 s=n, 94 -0.2727857 0.0053931507 w=2 h=2 s=n, 95 -0.27237153 0.005346487 w=2 h=2 s=n, 96 -0.27213752 0.006371738 w=2 h=2 s=n, 97 -0.2711462 0.0065980023 w=2 h=2 s=n, 98 -0.26889235 0.006851953 w=2 h=2 s=n, 99 -0.27469912 0.010076149 w=2 h=2 s=n, 100 -0.27556247 0.0102732 w=2 h=2 s=n, 101 -0.27573115 0.010332228 w=2 h=2 s=n, 102 -0.2758001 0.010189034 w=2 h=2 s=n, 103 -0.2770038 0.010189034 w=2 h=2 s=n, 104 -0.2771359 0.009811503 w=2 h=2 s=n, 105 -0.27725914 0.010189034 w=2 h=2 s=n, 106 -0.27739123 0.009811503 w=2 h=2 s=n, 107 -0.27655837 0.009147302 w=2 h=2 s=n, 108 -0.27679238 0.008122051 w=2 h=2 s=n, 109 -0.2770798 0.0073006563 w=2 h=2 s=n, 110 -0.2769111 0.0072416295 w=2 h=2 s=n, 111 -0.2761997 0.0068990416 w=2 h=2 s=n, 112 -0.27556387 0.006263202 w=2 h=2 s=n, 113 -0.31339082 0.022921404 w=2 h=2 s=n, 114 -0.31364617 0.022921404 w=2 h=2 s=n, 115 -0.31377825 0.022543872 w=2 h=2 s=n, 116 -0.31294537 0.021879671 w=2 h=2 s=n, 117 -0.27556828 0.00625058 w=2 h=2 s=n, 118 -0.27531293 0.00625058 w=2 h=2 s=n, 119 -0.2744496 0.0060535283 w=2 h=2 s=n, 120 -0.27428123 0.004559133 w=2 h=2 s=n, 121 -0.27307752 0.004559133 w=2 h=2 s=n, 122 -0.26563498 0.009772938 w=2 h=2 s=n, 123 -0.26744306 0.009569215 w=2 h=2 s=n, 124 -0.26863128 0.009153441 w=2 h=2 s=n, 125 -0.26904544 0.0092001045 w=2 h=2 s=n, 126 -0.2712993 0.008946154 w=2 h=2 s=n, 127 -0.27193514 0.009581993 w=2 h=2 s=n, 128 -0.27292648 0.009355729 w=2 h=2 s=n, 129 -0.31455907 0.023484003 w=2 h=2 s=n, 130 -0.31481442 0.023484003 w=2 h=2 s=n, 131 -0.3149465 0.02310647 w=2 h=2 s=n, 132 -0.32719463 0.02630971 w=2 h=2 s=n, 133 -0.32732674 0.02593218 w=2 h=2 s=n, 134 -0.3261585 0.02536958 w=2 h=2 s=n, 135 -0.3253256 0.024705378 w=2 h=2 s=n, 136 -0.2779943 0.0061538764 w=2 h=2 s=n, 137 -0.27782562 0.00609485 w=2 h=2 s=n, 138 -0.27711424 0.005752262 w=2 h=2 s=n, 139 -0.27647838 0.0051164227 w=2 h=2 s=n, 140 -0.27648282 0.0051038004 w=2 h=2 s=n, 141 -0.27622747 0.0051038004 w=2 h=2 s=n, 142 -0.27536413 0.004906749 w=2 h=2 s=n, 143 -0.27519575 0.0034123538 w=2 h=2 s=n, 144 -0.27399206 0.0034123538 w=2 h=2 s=n, 145 -0.272813 0.0042274315 w=2 h=2 s=n, 146 -0.27280858 0.004240054 w=2 h=2 s=n, 147 -0.27252117 0.005061449 w=2 h=2 s=n, 148 -0.272107 0.005014785 w=2 h=2 s=n, 149 -0.271873 0.006040036 w=2 h=2 s=n, 150 -0.27088168 0.0062663006 w=2 h=2 s=n, 151 -0.26862782 0.0065202513 w=2 h=2 s=n, 152 -0.26879618 0.008014646 w=2 h=2 s=n, 153 -0.2660965 0.007398459 w=2 h=2 s=n, 154 -0.25863382 0.010908152 w=2 h=2 s=n, 155 -0.2646862 0.010226212 w=2 h=2 s=n, 156 -0.26445782 0.010512582 w=2 h=2 s=n, 157 -0.26626593 0.010308859 w=2 h=2 s=n, 158 -0.26745415 0.009893085 w=2 h=2 s=n, 159 -0.26786828 0.009939749 w=2 h=2 s=n, 160 -0.27297893 0.009821311 w=2 h=2 s=n, 161 -0.2732073 0.009534941 w=2 h=2 s=n, 162 -0.2739187 0.009877529 w=2 h=2 s=n, 163 -0.27475157 0.010541731 w=2 h=2 s=n, 164 -0.27561492 0.010738782 w=2 h=2 s=n, 165 -0.2757836 0.010797808 w=2 h=2 s=n, 166 -0.27661845 0.011632663 w=2 h=2 s=n, 167 -0.276566 0.011167082 w=2 h=2 s=n, 168 -0.27663496 0.011023888 w=2 h=2 s=n, 169 -0.27783865 0.011023888 w=2 h=2 s=n, 170 -0.31422567 0.023756258 w=2 h=2 s=n, 171 -0.31539392 0.024318857 w=2 h=2 s=n, 172 -0.31564927 0.024318857 w=2 h=2 s=n, 173 -0.32802948 0.027144564 w=2 h=2 s=n, 174 -0.32937416 0.027615089 w=2 h=2 s=n, 175 -0.3285393 0.026780235 w=2 h=2 s=n, 176 -0.32867143 0.026402703 w=2 h=2 s=n, 177 -0.3304083 0.027731607 w=2 h=2 s=n, 178 -0.32957345 0.026896752 w=2 h=2 s=n, 179 -0.32970557 0.026519222 w=2 h=2 s=n, 180 -0.3283609 0.026048698 w=2 h=2 s=n, 181 -0.32719263 0.025486099 w=2 h=2 s=n, 182 -0.32635975 0.024821898 w=2 h=2 s=n, 183 -0.3300877 0.026385501 w=2 h=2 s=n, 184 -0.32874304 0.025914976 w=2 h=2 s=n, 185 -0.3275748 0.025352377 w=2 h=2 s=n, 186 -0.3267419 0.024688177 w=2 h=2 s=n, 187 -0.32570776 0.024571659 w=2 h=2 s=n, 188 -0.31332752 0.02174595 w=2 h=2 s=n, 189 -0.2769405 0.009013581 w=2 h=2 s=n, 190 -0.2771745 0.00798833 w=2 h=2 s=n, 191 -0.27746195 0.0071669356 w=2 h=2 s=n, 192 -0.27837646 0.006020156 w=2 h=2 s=n, 193 -0.27820778 0.0059611294 w=2 h=2 s=n, 194 -0.27749637 0.0056185415 w=2 h=2 s=n, 195 -0.27686054 0.004982702 w=2 h=2 s=n, 196 -0.27686495 0.0049700798 w=2 h=2 s=n, 197 -0.27590507 0.001385226 w=2 h=2 s=n, 198 -0.2747014 0.001385226 w=2 h=2 s=n, 199 -0.27378684 0.0025320055 w=2 h=2 s=n, 200 -0.2749162 -5.2149536E-4 w=2 h=2 s=n, 201 -0.2740017 6.252841E-4 w=2 h=2 s=n, 202 -0.27329236 0.002652412 w=2 h=2 s=n, 203 -0.27302784 0.0023207103 w=2 h=2 s=n, 204 -0.2746574 -0.0028186364 w=2 h=2 s=n, 205 -0.27374285 -0.0016718569 w=2 h=2 s=n, 206 -0.27303353 3.55271E-4 w=2 h=2 s=n, 207 -0.272769 2.3569324E-5 w=2 h=2 s=n, 208 -0.2725542 0.0019302907 w=2 h=2 s=n, 209 -0.27254978 0.0019429132 w=2 h=2 s=n, 210 -0.2643192 0.0106231235 w=2 h=2 s=n, 211 -0.26612732 0.0104194 w=2 h=2 s=n, 212 -0.26731554 0.010003626 w=2 h=2 s=n, 213 -0.26772967 0.01005029 w=2 h=2 s=n, 214 -0.2717524 0.01038264 w=2 h=2 s=n, 215 -0.27274373 0.010156376 w=2 h=2 s=n, 216 -0.27279618 0.0106219575 w=2 h=2 s=n, 217 -0.27302456 0.010335588 w=2 h=2 s=n, 218 -0.27279618 0.011092849 w=2 h=2 s=n, 219 -0.27302456 0.01080648 w=2 h=2 s=n, 220 -0.2732073 0.010005834 w=2 h=2 s=n, 221 -0.2739187 0.0103484215 w=2 h=2 s=n, 222 -0.27475157 0.011012622 w=2 h=2 s=n, 223 -0.27310413 0.011155064 w=2 h=2 s=n, 224 -0.27328685 0.010354417 w=2 h=2 s=n, 225 -0.27399826 0.010697005 w=2 h=2 s=n, 226 -0.27483115 0.011361206 w=2 h=2 s=n, 227 -0.27483115 0.010890314 w=2 h=2 s=n, 228 -0.2756945 0.011087365 w=2 h=2 s=n, 229 -0.27586317 0.011146393 w=2 h=2 s=n, 230 -0.27669802 0.011981247 w=2 h=2 s=n, 231 -0.3516546 0.026519222 w=2 h=2 s=n, 232 -0.3520367 0.026385501 w=2 h=2 s=n, 233 -0.35069206 0.025914976 w=2 h=2 s=n, 234 -0.3495238 0.025352377 w=2 h=2 s=n, 235 -0.34869093 0.024688177 w=2 h=2 s=n, 236 -0.3523158 0.026321799 w=2 h=2 s=n, 237 -0.35097113 0.025851276 w=2 h=2 s=n, 238 -0.34980288 0.025288677 w=2 h=2 s=n, 239 -0.34897003 0.024624474 w=2 h=2 s=n, 240 -0.327021 0.024624474 w=2 h=2 s=n, 241 -0.32598686 0.024507957 w=2 h=2 s=n, 242 -0.31360662 0.02168225 w=2 h=2 s=n, 243 -0.2772196 0.00894988 w=2 h=2 s=n, 244 -0.2774536 0.007924628 w=2 h=2 s=n, 245 -0.27774104 0.007103234 w=2 h=2 s=n, 246 -0.27865556 0.005956454 w=2 h=2 s=n, 247 -0.2798097 0.00503604 w=2 h=2 s=n, 248 -0.2795306 0.0050997417 w=2 h=2 s=n, 249 -0.27936193 0.0050407154 w=2 h=2 s=n, 250 -0.27865055 0.004698127 w=2 h=2 s=n, 251 -0.27801472 0.004062288 w=2 h=2 s=n, 252 -0.27801913 0.0040496653 w=2 h=2 s=n, 253 -0.27763698 0.004183386 w=2 h=2 s=n, 254 -0.27738163 0.004183386 w=2 h=2 s=n, 255 -0.2765183 0.0039863344 w=2 h=2 s=n, 256 -0.2763499 0.0024919398 w=2 h=2 s=n, 257 -0.27705923 4.648119E-4 w=2 h=2 s=n, 258 -0.2733683 -0.003312977 w=2 h=2 s=n, 259 -0.27265897 -0.0012858491 w=2 h=2 s=n, 260 -0.27239445 -0.0016175507 w=2 h=2 s=n, 261 -0.2721796 2.891706E-4 w=2 h=2 s=n, 262 -0.2721752 3.017931E-4 w=2 h=2 s=n, 263 -0.27179077 -0.0028711085 w=2 h=2 s=n, 264 -0.27157593 -9.64387E-4 w=2 h=2 s=n, 265 -0.27157152 -9.517645E-4 w=2 h=2 s=n, 266 -0.27194607 6.893556E-4 w=2 h=2 s=n, 267 -0.2722049 0.0029864965 w=2 h=2 s=n, 268 -0.2719175 0.0038078912 w=2 h=2 s=n, 269 -0.27150333 0.0037612275 w=2 h=2 s=n, 270 -0.24245258 0.016570218 w=2 h=2 s=n, 271 -0.24850495 0.01588828 w=2 h=2 s=n, 272 -0.24827658 0.016174648 w=2 h=2 s=n, 273 -0.24813797 0.01628519 w=2 h=2 s=n, 274 -0.23883942 0.037707303 w=2 h=2 s=n, 275 -0.24002762 0.03729153 w=2 h=2 s=n, 276 -0.24044177 0.037338194 w=2 h=2 s=n, 277 -0.2691433 0.04351305 w=2 h=2 s=n, 278 -0.2693717 0.043226678 w=2 h=2 s=n, 279 -0.26945123 0.043575265 w=2 h=2 s=n, 280 -0.2948607 0.068602376 w=2 h=2 s=n, 281 -0.2948607 0.068131484 w=2 h=2 s=n, 282 -0.29572403 0.06832854 w=2 h=2 s=n, 283 -0.29589272 0.06838756 w=2 h=2 s=n, 284 -0.29672757 0.06922242 w=2 h=2 s=n, 285 -0.3331282 0.029973902 w=2 h=2 s=n, 286 -0.33416232 0.030090421 w=2 h=2 s=n, 287 -0.39794675 0.021180429 w=2 h=2 s=n, 288 -0.39660206 0.020709904 w=2 h=2 s=n, 289 -0.3954338 0.020147305 w=2 h=2 s=n, 290 -0.39460093 0.019483104 w=2 h=2 s=n, 291 -0.3687171 -0.05082817 w=2 h=2 s=n, 292 -0.368438 -0.050764468 w=2 h=2 s=n, 293 -0.36826932 -0.050823495 w=2 h=2 s=n, 294 -0.3675579 -0.051166084 w=2 h=2 s=n, 295 -0.36692208 -0.051801924 w=2 h=2 s=n, 296 -0.3669265 -0.051814545 w=2 h=2 s=n, 297 -0.37028533 -0.055173367 w=2 h=2 s=n, 298 -0.28137794 6.908425E-4 w=2 h=2 s=n, 299 -0.2809958 8.2456315E-4 w=2 h=2 s=n, 300 -0.28074044 8.2456315E-4 w=2 h=2 s=n, 301 -0.27987713 6.275116E-4 w=2 h=2 s=n, 302 -0.27970874 -8.668832E-4 w=2 h=2 s=n, 303 -0.28041807 -0.002894011 w=2 h=2 s=n, 304 -0.2875034 -0.01417028 w=2 h=2 s=n, 305 -0.28414458 -0.0108114565 w=2 h=2 s=n, 306 -0.28299043 -0.0098910425 w=2 h=2 s=n, 307 -0.28178674 -0.0098910425 w=2 h=2 s=n, 308 -0.28200155 -0.011797764 w=2 h=2 s=n, 309 -0.2820536 -0.011946438 w=2 h=2 s=n, 310 -0.27496824 -6.701694E-4 w=2 h=2 s=n, 311 -0.2747094 -0.0029673104 w=2 h=2 s=n, 312 -0.27541775 -0.009253902 w=2 h=2 s=n, 313 -0.2753657 -0.009105228 w=2 h=2 s=n, 314 -0.2744512 -0.0079584485 w=2 h=2 s=n, 315 -0.2740766 -0.009599569 w=2 h=2 s=n, 316 -0.27406484 -0.009703982 w=2 h=2 s=n, 317 -0.27335653 -0.0034173902 w=2 h=2 s=n, 318 -0.2726472 -0.0013902623 w=2 h=2 s=n, 319 -0.27238268 -0.001721964 w=2 h=2 s=n, 320 -0.271779 -0.0029755216 w=2 h=2 s=n, 321 -0.27104664 -0.0050685094 w=2 h=2 s=n, 322 -0.27105838 -0.0049640965 w=2 h=2 s=n, 323 -0.27084357 -0.0030573749 w=2 h=2 s=n, 324 -0.27083912 -0.0030447524 w=2 h=2 s=n, 325 -0.2701409 -0.004156003 w=2 h=2 s=n, 326 -0.27087325 -0.0020630148 w=2 h=2 s=n, 327 -0.27124783 -4.218947E-4 w=2 h=2 s=n, 328 -0.27150667 0.0018752463 w=2 h=2 s=n, 329 -0.27121925 0.002696641 w=2 h=2 s=n, 330 -0.2708051 0.0026499773 w=2 h=2 s=n, 331 -0.27046084 0.002305738 w=2 h=2 s=n, 332 -0.2711591 0.0034169883 w=2 h=2 s=n, 333 -0.2717628 0.004670546 w=2 h=2 s=n, 334 -0.27152878 0.005695797 w=2 h=2 s=n, 335 -0.27053744 0.0059220614 w=2 h=2 s=n, 336 -0.26828358 0.0061760116 w=2 h=2 s=n, 337 -0.26442516 0.003751611 w=2 h=2 s=n, 338 -0.2647694 0.0040958505 w=2 h=2 s=n, 339 -0.2649378 0.005590245 w=2 h=2 s=n, 340 -0.2622381 0.0049740584 w=2 h=2 s=n, 341 -0.26081118 0.0044747675 w=2 h=2 s=n, 342 -0.2646696 0.0068991682 w=2 h=2 s=n, 343 -0.26493412 0.00723087 w=2 h=2 s=n, 344 -0.26480204 0.007608401 w=2 h=2 s=n, 345 -0.26299393 0.007812124 w=2 h=2 s=n, 346 -0.17948562 -0.0015970032 w=2 h=2 s=n, ; VLABELS 2 't0' x=12 y=6 f='Dialog-PLAIN-10', 3 't2' x=12 y=9, 4 't3' x=11 y=11, 5 't4' x=9 y=13, 6 't5' x=3 y=20, 7 't16' x=-3 y=22, 8 't14' x=-5 y=23, 9 't15' x=-8 y=23, 10 't12' x=-11 y=23, 11 't13' x=-13 y=17, 12 't11' x=-16 y=20, 13 't9' x=-19 y=13, 14 't10' x=-27 y=11, 15 't8' x=-22 y=9, 16 't7' x=-22 y=6, 17 't6' x=-22 y=3, 18 't25' x=-27 y=1, 19 't24' x=-25 y=-1, 20 't18' x=-15 y=-13, 21 't17' x=-13 y=-15, 22 't20' x=-11 y=-16, 23 't19' x=-8 y=-16, 24 't22' x=-5 y=-16, 25 't21' x=-3 y=-15, 26 't23' x=-1 y=-13, 27 't26' x=9 y=-1, 28 't27' x=11 y=1, 29 't1' x=12 y=3, ; EDGES 1 1 2 s=7 w=0.17367192, 2 30 1 s=6 w=0.08403672, 3 31 30 s=11 w=0.0060906718, 4 32 1 s=11 w=0.0060906718, 5 32 31 s=6 w=0.08403672, 6 33 30 s=5 w=0.002769119, 7 34 31 s=5 w=0.002769119, 8 34 33 s=11 w=0.0060906718, 9 35 34 s=14 w=0.0018195357, 10 36 31 s=14 w=0.0018195357, 11 36 35 s=5 w=0.002769119, 12 37 35 s=17 w=0.0012588556, 13 38 36 s=17 w=0.0012588556, 14 38 37 s=5 w=0.002769119, 15 39 31 s=17 w=0.0012588556, 16 39 38 s=14 w=0.0018195357, 17 40 32 s=17 w=0.0012588556, 18 40 39 s=6 w=0.08403672, 19 41 37 s=16 w=4.167727E-4, 20 42 41 s=21 w=0.0022681346, 21 43 37 s=21 w=0.0022681346, 22 43 42 s=16 w=4.167727E-4, 23 44 42 s=26 w=0.0010168224, 24 45 43 s=26 w=0.0010168224, 25 45 44 s=16 w=4.167727E-4, 26 46 44 s=50 w=3.9997647E-4, 27 47 45 s=50 w=3.9997647E-4, 28 47 46 s=16 w=4.167727E-4, 29 48 43 s=50 w=3.9997647E-4, 30 48 47 s=26 w=0.0010168224, 31 49 37 s=50 w=3.9997647E-4, 32 49 48 s=21 w=0.0022681346, 33 50 38 s=50 w=3.9997647E-4, 34 50 49 s=5 w=0.002769119, 35 51 42 s=20 w=8.992125E-4, 36 52 44 s=20 w=8.992125E-4, 37 52 51 s=26 w=0.0010168224, 38 53 46 s=20 w=8.992125E-4, 39 53 52 s=50 w=3.9997647E-4, 40 54 33 s=4 w=1.5893235E-4, 41 55 34 s=4 w=1.5893235E-4, 42 55 54 s=11 w=0.0060906718, 43 56 35 s=4 w=1.5893235E-4, 44 56 55 s=14 w=0.0018195357, 45 57 37 s=4 w=1.5893235E-4, 46 57 56 s=17 w=0.0012588556, 47 58 41 s=4 w=1.5893235E-4, 48 58 57 s=16 w=4.167727E-4, 49 59 42 s=4 w=1.5893235E-4, 50 59 58 s=21 w=0.0022681346, 51 60 51 s=4 w=1.5893235E-4, 52 60 59 s=20 w=8.992125E-4, 53 61 52 s=4 w=1.5893235E-4, 54 61 60 s=26 w=0.0010168224, 55 62 61 s=32 w=7.895848E-4, 56 63 52 s=32 w=7.895848E-4, 57 63 62 s=4 w=1.5893235E-4, 58 64 53 s=32 w=7.895848E-4, 59 64 63 s=50 w=3.9997647E-4, 60 65 62 s=36 w=8.855418E-4, 61 66 63 s=36 w=8.855418E-4, 62 66 65 s=4 w=1.5893235E-4, 63 67 64 s=36 w=8.855418E-4, 64 67 66 s=50 w=3.9997647E-4, 65 68 53 s=36 w=8.855418E-4, 66 68 67 s=32 w=7.895848E-4, 67 69 46 s=36 w=8.855418E-4, 68 69 68 s=20 w=8.992125E-4, 69 70 66 s=40 w=0.001203692, 70 71 67 s=40 w=0.001203692, 71 71 70 s=50 w=3.9997647E-4, 72 72 68 s=40 w=0.001203692, 73 72 71 s=32 w=7.895848E-4, 74 73 69 s=40 w=0.001203692, 75 73 72 s=20 w=8.992125E-4, 76 74 46 s=40 w=0.001203692, 77 74 73 s=36 w=8.855418E-4, 78 75 71 s=61 w=0.0010516174, 79 76 72 s=61 w=0.0010516174, 80 76 75 s=32 w=7.895848E-4, 81 77 73 s=61 w=0.0010516174, 82 77 76 s=20 w=8.992125E-4, 83 78 74 s=61 w=0.0010516174, 84 78 77 s=36 w=8.855418E-4, 85 79 46 s=61 w=0.0010516174, 86 79 78 s=40 w=0.001203692, 87 80 47 s=61 w=0.0010516174, 88 80 79 s=16 w=4.167727E-4, 89 81 65 s=35 w=1.787175E-4, 90 82 66 s=35 w=1.787175E-4, 91 82 81 s=4 w=1.5893235E-4, 92 83 70 s=35 w=1.787175E-4, 93 83 82 s=40 w=0.001203692, 94 84 71 s=35 w=1.787175E-4, 95 84 83 s=50 w=3.9997647E-4, 96 85 75 s=35 w=1.787175E-4, 97 85 84 s=61 w=0.0010516174, 98 86 85 s=60 w=8.702291E-4, 99 87 75 s=60 w=8.702291E-4, 100 87 86 s=35 w=1.787175E-4, 101 88 76 s=60 w=8.702291E-4, 102 88 87 s=32 w=7.895848E-4, 103 89 77 s=60 w=8.702291E-4, 104 89 88 s=20 w=8.992125E-4, 105 90 78 s=60 w=8.702291E-4, 106 90 89 s=36 w=8.855418E-4, 107 91 79 s=60 w=8.702291E-4, 108 91 90 s=40 w=0.001203692, 109 92 90 s=68 w=0.0015038507, 110 93 91 s=68 w=0.0015038507, 111 93 92 s=40 w=0.001203692, 112 94 79 s=68 w=0.0015038507, 113 94 93 s=60 w=8.702291E-4, 114 95 80 s=68 w=0.0015038507, 115 95 94 s=16 w=4.167727E-4, 116 96 47 s=68 w=0.0015038507, 117 96 95 s=61 w=0.0010516174, 118 97 48 s=68 w=0.0015038507, 119 97 96 s=26 w=0.0010168224, 120 98 49 s=68 w=0.0015038507, 121 98 97 s=21 w=0.0022681346, 122 99 62 s=31 w=0.0010652957, 123 100 65 s=31 w=0.0010652957, 124 100 99 s=36 w=8.855418E-4, 125 101 81 s=31 w=0.0010652957, 126 101 100 s=35 w=1.787175E-4, 127 102 82 s=31 w=0.0010652957, 128 102 101 s=4 w=1.5893235E-4, 129 103 83 s=31 w=0.0010652957, 130 103 102 s=40 w=0.001203692, 131 104 84 s=31 w=0.0010652957, 132 104 103 s=50 w=3.9997647E-4, 133 105 103 s=45 w=2.5534217E-4, 134 106 104 s=45 w=2.5534217E-4, 135 106 105 s=50 w=3.9997647E-4, 136 107 84 s=45 w=2.5534217E-4, 137 107 106 s=31 w=0.0010652957, 138 108 85 s=45 w=2.5534217E-4, 139 108 107 s=61 w=0.0010516174, 140 109 86 s=45 w=2.5534217E-4, 141 109 108 s=60 w=8.702291E-4, 142 110 87 s=45 w=2.5534217E-4, 143 110 109 s=35 w=1.787175E-4, 144 111 88 s=45 w=2.5534217E-4, 145 111 110 s=32 w=7.895848E-4, 146 112 89 s=45 w=2.5534217E-4, 147 112 111 s=20 w=8.992125E-4, 148 113 103 s=39 w=0.038550336, 149 114 105 s=39 w=0.038550336, 150 114 113 s=45 w=2.5534217E-4, 151 115 106 s=39 w=0.038550336, 152 115 114 s=50 w=3.9997647E-4, 153 116 107 s=39 w=0.038550336, 154 116 115 s=31 w=0.0010652957, 155 117 112 s=64 w=1.337294E-5, 156 118 89 s=64 w=1.337294E-5, 157 118 117 s=45 w=2.5534217E-4, 158 119 90 s=64 w=1.337294E-5, 159 119 118 s=36 w=8.855418E-4, 160 120 92 s=64 w=1.337294E-5, 161 120 119 s=68 w=0.0015038507, 162 121 93 s=64 w=1.337294E-5, 163 121 120 s=40 w=0.001203692, 164 122 55 s=10 w=3.662799E-4, 165 123 56 s=10 w=3.662799E-4, 166 123 122 s=14 w=0.0018195357, 167 124 57 s=10 w=3.662799E-4, 168 124 123 s=17 w=0.0012588556, 169 125 58 s=10 w=3.662799E-4, 170 125 124 s=16 w=4.167727E-4, 171 126 59 s=10 w=3.662799E-4, 172 126 125 s=21 w=0.0022681346, 173 127 60 s=10 w=3.662799E-4, 174 127 126 s=20 w=8.992125E-4, 175 128 61 s=10 w=3.662799E-4, 176 128 127 s=26 w=0.0010168224, 177 129 113 s=38 w=0.0012966593, 178 130 114 s=38 w=0.0012966593, 179 130 129 s=45 w=2.5534217E-4, 180 131 115 s=38 w=0.0012966593, 181 131 130 s=50 w=3.9997647E-4, 182 132 130 s=44 w=0.012698617, 183 133 131 s=44 w=0.012698617, 184 133 132 s=50 w=3.9997647E-4, 185 134 115 s=44 w=0.012698617, 186 134 133 s=38 w=0.0012966593, 187 135 116 s=44 w=0.012698617, 188 135 134 s=31 w=0.0010652957, 189 136 109 s=59 w=0.001466786, 190 137 110 s=59 w=0.001466786, 191 137 136 s=35 w=1.787175E-4, 192 138 111 s=59 w=0.001466786, 193 138 137 s=32 w=7.895848E-4, 194 139 112 s=59 w=0.001466786, 195 139 138 s=20 w=8.992125E-4, 196 140 117 s=59 w=0.001466786, 197 140 139 s=64 w=1.337294E-5, 198 141 118 s=59 w=0.001466786, 199 141 140 s=45 w=2.5534217E-4, 200 142 119 s=59 w=0.001466786, 201 142 141 s=36 w=8.855418E-4, 202 143 120 s=59 w=0.001466786, 203 143 142 s=68 w=0.0015038507, 204 144 121 s=59 w=0.001466786, 205 144 143 s=40 w=0.001203692, 206 145 121 s=81 w=4.242624E-4, 207 146 93 s=81 w=4.242624E-4, 208 146 145 s=64 w=1.337294E-5, 209 147 94 s=81 w=4.242624E-4, 210 147 146 s=60 w=8.702291E-4, 211 148 95 s=81 w=4.242624E-4, 212 148 147 s=16 w=4.167727E-4, 213 149 96 s=81 w=4.242624E-4, 214 149 148 s=61 w=0.0010516174, 215 150 97 s=81 w=4.242624E-4, 216 150 149 s=26 w=0.0010168224, 217 151 98 s=81 w=4.242624E-4, 218 151 150 s=21 w=0.0022681346, 219 152 49 s=81 w=4.242624E-4, 220 152 151 s=68 w=0.0015038507, 221 153 50 s=81 w=4.242624E-4, 222 153 152 s=5 w=0.002769119, 223 154 54 s=3 w=0.0013902244, 224 155 55 s=3 w=0.0013902244, 225 155 154 s=11 w=0.0060906718, 226 156 122 s=3 w=0.0013902244, 227 156 155 s=10 w=3.662799E-4, 228 157 123 s=3 w=0.0013902244, 229 157 156 s=14 w=0.0018195357, 230 158 124 s=3 w=0.0013902244, 231 158 157 s=17 w=0.0012588556, 232 159 125 s=3 w=0.0013902244, 233 159 158 s=16 w=4.167727E-4, 234 160 128 s=25 w=4.685271E-4, 235 161 61 s=25 w=4.685271E-4, 236 161 160 s=10 w=3.662799E-4, 237 162 62 s=25 w=4.685271E-4, 238 162 161 s=32 w=7.895848E-4, 239 163 99 s=25 w=4.685271E-4, 240 163 162 s=31 w=0.0010652957, 241 164 100 s=25 w=4.685271E-4, 242 164 163 s=36 w=8.855418E-4, 243 165 101 s=25 w=4.685271E-4, 244 165 164 s=35 w=1.787175E-4, 245 166 165 s=34 w=0.0011806624, 246 167 101 s=34 w=0.0011806624, 247 167 166 s=25 w=4.685271E-4, 248 168 102 s=34 w=0.0011806624, 249 168 167 s=4 w=1.5893235E-4, 250 169 103 s=34 w=0.0011806624, 251 169 168 s=40 w=0.001203692, 252 170 113 s=34 w=0.0011806624, 253 170 169 s=39 w=0.038550336, 254 171 129 s=34 w=0.0011806624, 255 171 170 s=38 w=0.0012966593, 256 171 12 s=37 w=0.0914247, 257 172 130 s=34 w=0.0011806624, 258 172 171 s=45 w=2.5534217E-4, 259 173 132 s=34 w=0.0011806624, 260 173 172 s=44 w=0.012698617, 261 174 173 s=43 w=0.0014246248, 262 175 132 s=43 w=0.0014246248, 263 175 174 s=34 w=0.0011806624, 264 176 133 s=43 w=0.0014246248, 265 176 175 s=50 w=3.9997647E-4, 266 177 174 s=47 w=0.0010406735, 267 178 175 s=47 w=0.0010406735, 268 178 177 s=34 w=0.0011806624, 269 179 176 s=47 w=0.0010406735, 270 179 178 s=50 w=3.9997647E-4, 271 180 133 s=47 w=0.0010406735, 272 180 179 s=43 w=0.0014246248, 273 181 134 s=47 w=0.0010406735, 274 181 180 s=38 w=0.0012966593, 275 182 135 s=47 w=0.0010406735, 276 182 181 s=31 w=0.0010652957, 277 183 179 s=54 w=4.0487162E-4, 278 184 180 s=54 w=4.0487162E-4, 279 184 183 s=43 w=0.0014246248, 280 185 181 s=54 w=4.0487162E-4, 281 185 184 s=38 w=0.0012966593, 282 186 182 s=54 w=4.0487162E-4, 283 186 185 s=31 w=0.0010652957, 284 187 135 s=54 w=4.0487162E-4, 285 187 186 s=47 w=0.0010406735, 286 188 116 s=54 w=4.0487162E-4, 287 188 187 s=44 w=0.012698617, 288 189 107 s=54 w=4.0487162E-4, 289 189 188 s=39 w=0.038550336, 290 190 108 s=54 w=4.0487162E-4, 291 190 189 s=61 w=0.0010516174, 292 191 109 s=54 w=4.0487162E-4, 293 191 190 s=60 w=8.702291E-4, 294 192 136 s=54 w=4.0487162E-4, 295 192 191 s=59 w=0.001466786, 296 193 137 s=54 w=4.0487162E-4, 297 193 192 s=35 w=1.787175E-4, 298 194 138 s=54 w=4.0487162E-4, 299 194 193 s=32 w=7.895848E-4, 300 195 139 s=54 w=4.0487162E-4, 301 195 194 s=20 w=8.992125E-4, 302 196 140 s=54 w=4.0487162E-4, 303 196 195 s=64 w=1.337294E-5, 304 197 143 s=67 w=0.0021476466, 305 198 144 s=67 w=0.0021476466, 306 198 197 s=40 w=0.001203692, 307 199 121 s=67 w=0.0021476466, 308 199 198 s=59 w=0.001466786, 309 200 198 s=71 w=0.0019187863, 310 201 199 s=71 w=0.0019187863, 311 201 200 s=59 w=0.001466786, 312 202 121 s=71 w=0.0019187863, 313 202 201 s=67 w=0.0021476466, 314 203 145 s=71 w=0.0019187863, 315 203 202 s=81 w=4.242624E-4, 316 204 200 s=74 w=0.0023116763, 317 205 201 s=74 w=0.0023116763, 318 205 204 s=59 w=0.001466786, 319 206 202 s=74 w=0.0023116763, 320 206 205 s=67 w=0.0021476466, 321 207 203 s=74 w=0.0023116763, 322 207 206 s=81 w=4.242624E-4, 323 208 145 s=74 w=0.0023116763, 324 208 207 s=71 w=0.0019187863, 325 209 146 s=74 w=0.0023116763, 326 209 208 s=64 w=1.337294E-5, 327 210 156 s=9 w=1.7729466E-4, 328 211 157 s=9 w=1.7729466E-4, 329 211 210 s=14 w=0.0018195357, 330 212 158 s=9 w=1.7729466E-4, 331 212 211 s=17 w=0.0012588556, 332 213 159 s=9 w=1.7729466E-4, 333 213 212 s=16 w=4.167727E-4, 334 214 127 s=19 w=8.21237E-4, 335 214 7 s=18 w=0.0688266, 336 215 128 s=19 w=8.21237E-4, 337 215 214 s=26 w=0.0010168224, 338 216 160 s=19 w=8.21237E-4, 339 216 215 s=25 w=4.685271E-4, 340 217 161 s=19 w=8.21237E-4, 341 217 216 s=10 w=3.662799E-4, 342 218 216 s=24 w=4.7089203E-4, 343 219 217 s=24 w=4.7089203E-4, 344 219 218 s=10 w=3.662799E-4, 345 220 161 s=24 w=4.7089203E-4, 346 220 219 s=19 w=8.21237E-4, 347 221 162 s=24 w=4.7089203E-4, 348 221 220 s=32 w=7.895848E-4, 349 222 163 s=24 w=4.7089203E-4, 350 222 221 s=31 w=0.0010652957, 351 223 219 s=28 w=3.5754856E-4, 352 224 220 s=28 w=3.5754856E-4, 353 224 223 s=19 w=8.21237E-4, 354 225 221 s=28 w=3.5754856E-4, 355 225 224 s=32 w=7.895848E-4, 356 226 222 s=28 w=3.5754856E-4, 357 226 225 s=31 w=0.0010652957, 358 227 163 s=28 w=3.5754856E-4, 359 227 226 s=24 w=4.7089203E-4, 360 228 164 s=28 w=3.5754856E-4, 361 228 227 s=36 w=8.855418E-4, 362 229 165 s=28 w=3.5754856E-4, 363 229 228 s=35 w=1.787175E-4, 364 230 166 s=28 w=3.5754856E-4, 365 230 229 s=34 w=0.0011806624, 366 231 179 s=49 w=0.021949023, 367 231 15 s=48 w=0.05344081, 368 232 183 s=49 w=0.021949023, 369 232 231 s=54 w=4.0487162E-4, 370 233 184 s=49 w=0.021949023, 371 233 232 s=43 w=0.0014246248, 372 234 185 s=49 w=0.021949023, 373 234 233 s=38 w=0.0012966593, 374 235 186 s=49 w=0.021949023, 375 235 234 s=31 w=0.0010652957, 376 236 232 s=53 w=2.8627258E-4, 377 237 233 s=53 w=2.8627258E-4, 378 237 236 s=43 w=0.0014246248, 379 238 234 s=53 w=2.8627258E-4, 380 238 237 s=38 w=0.0012966593, 381 239 235 s=53 w=2.8627258E-4, 382 239 238 s=31 w=0.0010652957, 383 240 186 s=53 w=2.8627258E-4, 384 240 239 s=49 w=0.021949023, 385 241 187 s=53 w=2.8627258E-4, 386 241 240 s=47 w=0.0010406735, 387 242 188 s=53 w=2.8627258E-4, 388 242 241 s=44 w=0.012698617, 389 243 189 s=53 w=2.8627258E-4, 390 243 242 s=39 w=0.038550336, 391 244 190 s=53 w=2.8627258E-4, 392 244 243 s=61 w=0.0010516174, 393 245 191 s=53 w=2.8627258E-4, 394 245 244 s=60 w=8.702291E-4, 395 246 192 s=53 w=2.8627258E-4, 396 246 245 s=59 w=0.001466786, 397 247 246 s=58 w=0.0014762296, 398 248 192 s=58 w=0.0014762296, 399 248 247 s=53 w=2.8627258E-4, 400 249 193 s=58 w=0.0014762296, 401 249 248 s=35 w=1.787175E-4, 402 250 194 s=58 w=0.0014762296, 403 250 249 s=32 w=7.895848E-4, 404 251 195 s=58 w=0.0014762296, 405 251 250 s=20 w=8.992125E-4, 406 252 196 s=58 w=0.0014762296, 407 252 251 s=64 w=1.337294E-5, 408 253 140 s=58 w=0.0014762296, 409 253 252 s=54 w=4.0487162E-4, 410 254 141 s=58 w=0.0014762296, 411 254 253 s=45 w=2.5534217E-4, 412 255 142 s=58 w=0.0014762296, 413 255 254 s=36 w=8.855418E-4, 414 256 143 s=58 w=0.0014762296, 415 256 255 s=68 w=0.0015038507, 416 257 197 s=58 w=0.0014762296, 417 257 256 s=67 w=0.0021476466, 418 258 205 s=77 w=0.0016833246, 419 259 206 s=77 w=0.0016833246, 420 259 258 s=67 w=0.0021476466, 421 260 207 s=77 w=0.0016833246, 422 260 259 s=81 w=4.242624E-4, 423 261 208 s=77 w=0.0016833246, 424 261 260 s=71 w=0.0019187863, 425 262 209 s=77 w=0.0016833246, 426 262 261 s=64 w=1.337294E-5, 427 263 260 s=80 w=0.001391344, 428 264 261 s=80 w=0.001391344, 429 264 263 s=71 w=0.0019187863, 430 265 262 s=80 w=0.001391344, 431 265 264 s=64 w=1.337294E-5, 432 266 209 s=80 w=0.001391344, 433 266 265 s=77 w=0.0016833246, 434 267 146 s=80 w=0.001391344, 435 267 266 s=74 w=0.0023116763, 436 268 147 s=80 w=0.001391344, 437 268 267 s=60 w=8.702291E-4, 438 269 148 s=80 w=0.001391344, 439 269 268 s=16 w=4.167727E-4, 440 270 154 s=2 w=0.017143281, 441 270 3 s=1 w=0.1279713, 442 271 155 s=2 w=0.017143281, 443 271 270 s=11 w=0.0060906718, 444 272 156 s=2 w=0.017143281, 445 272 271 s=10 w=3.662799E-4, 446 273 210 s=2 w=0.017143281, 447 273 272 s=9 w=1.7729466E-4, 448 273 4 s=8 w=0.057841897, 449 274 211 s=13 w=0.038590923, 450 274 5 s=12 w=0.08134686, 451 275 212 s=13 w=0.038590923, 452 275 274 s=17 w=0.0012588556, 453 276 213 s=13 w=0.038590923, 454 276 275 s=16 w=4.167727E-4, 455 276 6 s=15 w=0.09856205, 456 277 218 s=23 w=0.03262534, 457 277 8 s=22 w=0.0665534, 458 278 219 s=23 w=0.03262534, 459 278 277 s=10 w=3.662799E-4, 460 279 223 s=23 w=0.03262534, 461 279 278 s=28 w=3.5754856E-4, 462 279 9 s=27 w=0.03859058, 463 280 226 s=30 w=0.06064433, 464 280 10 s=29 w=0.052748006, 465 281 227 s=30 w=0.06064433, 466 281 280 s=24 w=4.7089203E-4, 467 282 228 s=30 w=0.06064433, 468 282 281 s=36 w=8.855418E-4, 469 283 229 s=30 w=0.06064433, 470 283 282 s=35 w=1.787175E-4, 471 284 230 s=30 w=0.06064433, 472 284 283 s=34 w=0.0011806624, 473 284 11 s=33 w=0.05142635, 474 285 174 s=42 w=0.0044335932, 475 285 13 s=41 w=0.092642605, 476 286 177 s=42 w=0.0044335932, 477 286 285 s=47 w=0.0010406735, 478 286 14 s=46 w=0.09702029, 479 287 236 s=52 w=0.04591966, 480 287 16 s=51 w=0.06783958, 481 288 237 s=52 w=0.04591966, 482 288 287 s=43 w=0.0014246248, 483 289 238 s=52 w=0.04591966, 484 289 288 s=38 w=0.0012966593, 485 290 239 s=52 w=0.04591966, 486 290 289 s=31 w=0.0010652957, 487 290 17 s=55 w=0.064194575, 488 291 247 s=57 w=0.10500158, 489 291 18 s=56 w=0.047182973, 490 292 248 s=57 w=0.10500158, 491 292 291 s=53 w=2.8627258E-4, 492 293 249 s=57 w=0.10500158, 493 293 292 s=35 w=1.787175E-4, 494 294 250 s=57 w=0.10500158, 495 294 293 s=32 w=7.895848E-4, 496 295 251 s=57 w=0.10500158, 497 295 294 s=20 w=8.992125E-4, 498 296 252 s=57 w=0.10500158, 499 296 295 s=64 w=1.337294E-5, 500 297 296 s=63 w=0.004750093, 501 297 19 s=62 w=0.044313457, 502 298 252 s=63 w=0.004750093, 503 298 297 s=57 w=0.10500158, 504 299 253 s=63 w=0.004750093, 505 299 298 s=54 w=4.0487162E-4, 506 300 254 s=63 w=0.004750093, 507 300 299 s=45 w=2.5534217E-4, 508 301 255 s=63 w=0.004750093, 509 301 300 s=36 w=8.855418E-4, 510 302 256 s=63 w=0.004750093, 511 302 301 s=68 w=0.0015038507, 512 303 257 s=63 w=0.004750093, 513 303 302 s=67 w=0.0021476466, 514 304 303 s=66 w=0.013317523, 515 304 20 s=65 w=0.20566262, 516 305 257 s=66 w=0.013317523, 517 305 304 s=63 w=0.004750093, 518 306 197 s=66 w=0.013317523, 519 306 305 s=58 w=0.0014762296, 520 307 198 s=66 w=0.013317523, 521 307 306 s=40 w=0.001203692, 522 308 200 s=66 w=0.013317523, 523 308 307 s=71 w=0.0019187863, 524 309 308 s=70 w=1.5751319E-4, 525 309 21 s=69 w=0.09029672, 526 310 200 s=70 w=1.5751319E-4, 527 310 309 s=66 w=0.013317523, 528 311 204 s=70 w=1.5751319E-4, 529 311 310 s=74 w=0.0023116763, 530 312 311 s=73 w=0.006326371, 531 312 22 s=72 w=0.109228075, 532 313 204 s=73 w=0.006326371, 533 313 312 s=70 w=1.5751319E-4, 534 314 205 s=73 w=0.006326371, 535 314 313 s=59 w=0.001466786, 536 315 258 s=73 w=0.006326371, 537 315 314 s=77 w=0.0016833246, 538 316 315 s=76 w=1.050739E-4, 539 316 23 s=75 w=0.089916565, 540 317 258 s=76 w=1.050739E-4, 541 317 316 s=73 w=0.006326371, 542 318 259 s=76 w=1.050739E-4, 543 318 317 s=67 w=0.0021476466, 544 319 260 s=76 w=1.050739E-4, 545 319 318 s=81 w=4.242624E-4, 546 320 263 s=76 w=1.050739E-4, 547 320 319 s=80 w=0.001391344, 548 321 320 s=79 w=0.0022174222, 549 321 24 s=78 w=0.17474917, 550 322 263 s=79 w=0.0022174222, 551 322 321 s=76 w=1.050739E-4, 552 323 264 s=79 w=0.0022174222, 553 323 322 s=71 w=0.0019187863, 554 324 265 s=79 w=0.0022174222, 555 324 323 s=64 w=1.337294E-5, 556 325 324 s=83 w=0.0013124112, 557 325 25 s=82 w=0.13961297, 558 326 265 s=83 w=0.0013124112, 559 326 325 s=79 w=0.0022174222, 560 327 266 s=83 w=0.0013124112, 561 327 326 s=77 w=0.0016833246, 562 328 267 s=83 w=0.0013124112, 563 328 327 s=74 w=0.0023116763, 564 329 268 s=83 w=0.0013124112, 565 329 328 s=60 w=8.702291E-4, 566 330 269 s=83 w=0.0013124112, 567 330 329 s=16 w=4.167727E-4, 568 331 330 s=85 w=4.8682792E-4, 569 331 26 s=84 w=0.1194786, 570 332 269 s=85 w=4.8682792E-4, 571 332 331 s=83 w=0.0013124112, 572 333 148 s=85 w=4.8682792E-4, 573 333 332 s=80 w=0.001391344, 574 334 149 s=85 w=4.8682792E-4, 575 334 333 s=61 w=0.0010516174, 576 335 150 s=85 w=4.8682792E-4, 577 335 334 s=26 w=0.0010168224, 578 336 151 s=85 w=4.8682792E-4, 579 336 335 s=21 w=0.0022681346, 580 337 336 s=87 w=0.0045568696, 581 337 27 s=86 w=0.09366718, 582 338 151 s=87 w=0.0045568696, 583 338 337 s=85 w=4.8682792E-4, 584 339 152 s=87 w=0.0045568696, 585 339 338 s=68 w=0.0015038507, 586 340 153 s=87 w=0.0045568696, 587 340 339 s=5 w=0.002769119, 588 341 340 s=89 w=0.0015117239, 589 341 28 s=88 w=0.08093566, 590 342 153 s=89 w=0.0015117239, 591 342 341 s=87 w=0.0045568696, 592 343 50 s=89 w=0.0015117239, 593 343 342 s=81 w=4.242624E-4, 594 344 38 s=89 w=0.0015117239, 595 344 343 s=50 w=3.9997647E-4, 596 345 39 s=89 w=0.0015117239, 597 345 344 s=14 w=0.0018195357, 598 346 40 s=89 w=0.0015117239, 599 346 345 s=6 w=0.08403672, 600 346 29 s=90 w=0.076351464, ; END; [Network] BEGIN st_Assumptions; uptodate; disttransform=NeighborNet; splitstransform=EqualAngle; SplitsPostProcess filter=dimension value=4; exclude no missing; autolayoutnodelabels; END; [st_Assumptions] phangorn/inst/extdata/FLU.dat0000644000176200001440000000721113201424001015601 0ustar liggesusers 0.138658764751059 0.0533665787145181 0.161000889039552 0.584852305649886 0.00677184253227681 7.73739287051356 0.0264470951166826 0.16720700818221 1.30249856764315e-005 0.014132062548787 0.353753981649393 3.29271694159791 0.530642655337477 0.145469388422239 0.00254733397966779 1.4842345032161 0.124897616909194 0.0616521921873234 5.37051127867923 3.91106992668137e-011 1.19562912226203 1.13231312248046 1.19062446519178 0.322524647863997 1.93483278448943 0.116941459124876 0.108051341246072 1.59309882471598 0.214757862168721 1.87956993845887 1.38709603234116 0.887570549414031 0.0218446166959521 5.33031341222104 0.256491863423002 0.0587745274250666 0.149926734229061 0.246117171830255 0.21857197541607 0.0140859174993809 0.00111215807314139 0.0288399502994541 0.0142107118685268 1.62662283098296e-005 0.243190142026506 0.0231169515264061 0.296045557460629 0.000835873174542931 0.00573068208525287 0.00561362724916376 1.02036695531654 0.016499535540562 0.00651622937676521 0.321611693603646 3.51207228207807 0.474333610192982 15.3000966197798 2.6468479652886 0.290042980143818 3.83228119049152e-006 2.559587177122 3.88148880863814 0.264148929349066 0.347302791211758 0.227707997165566 0.129223639195248 0.0587454231508643 0.890162345593224 0.00525168778853117 0.0417629637305017 0.111457310321926 0.190259181297527 0.313974351356074 0.00150046692269255 0.00127350890508147 9.01795420287895 6.74693648486614 1.33129161941264 0.0804909094320368 0.0160550314767596 0.000836445615590923 1.0600102849456e-006 0.10405366623526 0.0326806570137471 0.00100350082518749 0.00123664495412902 0.119028506158521 1.46335727834648 2.98680003596399 0.319895904499071 0.279910508981581 0.659311477863896 0.154027179890711 0.0364417719063219 0.188539456415654 1.59312060172652e-013 0.712769599068934 0.319558828428154 0.0386317614553493 0.924466914225534 0.0805433268150369 0.634308520867322 0.195750631825315 0.0568693216513547 0.0071324304661639 3.01134451903854 0.950138410087378 3.88131053061457 0.338372183381345 0.336263344504404 0.487822498528951 0.307140298031341 1.58564657669139 0.580704249811294 0.290381075260226 0.570766693213698 0.283807671568883 0.00702658828739369 0.996685669575839 2.08738534433198 5.4182981753166 0.183076905018197 2.14033231636063 0.135481232622983 0.011975265782196 0.60234096342392 0.2801248951174 0.0188080299490973 0.368713573381758 2.90405228596936 0.0449263566753846 1.52696419998775 2.03151132062208 0.000134906239484254 0.54225109402693 2.2068599339404 0.195966354027106 1.36942940801512 0.000536284040016542 1.4893873721753e-005 0.0941066800969967 0.0440205200833047 0.155245492137294 0.196486447133033 0.0223729191088972 0.0321321499585514 0.431277662888057 4.97641445484395e-005 0.0704600385245663 0.814753093809928 0.000431020702277328 0.0998357527014247 0.207066205546908 0.0182892882245349 0.0998554972524385 0.373101926513925 0.525398542949365 0.601692431136271 0.0722059354079545 0.104092870343653 0.0748149970972622 6.44895444648517 0.273934263183281 0.340058468374384 0.0124162215506117 0.874272174533394 5.39392424532822 0.000182294881489116 0.392552239890831 0.124898020409882 0.42775543040588 3.53200526987468 0.103964386383736 0.0102575172450253 0.297123975243582 0.0549045639492389 0.406697814049488 0.285047948309311 0.337229618868315 0.0986313546653266 14.3940521944257 0.890598579382591 0.0731279296372675 4.90484223478739 0.592587985458668 0.0589719751511691 0.0882564232979724 0.654109108255219 0.256900461407996 0.167581646770807 0.0470718 0.0509102 0.0742143 0.0478596 0.0250216 0.0333036 0.0545874 0.0763734 0.0199642 0.0671336 0.0714981 0.0567845 0.0181507 0.0304961 0.0506561 0.0884091 0.0743386 0.0185237 0.0314741 0.0632292 phangorn/inst/extdata/Dayhoff.dat0000644000176200001440000000250613201424001016535 0ustar liggesusers 27.00 98.00 32.00 120.00 0.00 905.00 36.00 23.00 0.00 0.00 89.00 246.00 103.00 134.00 0.00 198.00 1.00 148.00 1153.00 0.00 716.00 240.00 9.00 139.00 125.00 11.00 28.00 81.00 23.00 240.00 535.00 86.00 28.00 606.00 43.00 10.00 65.00 64.00 77.00 24.00 44.00 18.00 61.00 0.00 7.00 41.00 15.00 34.00 0.00 0.00 73.00 11.00 7.00 44.00 257.00 26.00 464.00 318.00 71.00 0.00 153.00 83.00 27.00 26.00 46.00 18.00 72.00 90.00 1.00 0.00 0.00 114.00 30.00 17.00 0.00 336.00 527.00 243.00 18.00 14.00 14.00 0.00 0.00 0.00 0.00 15.00 48.00 196.00 157.00 0.00 92.00 250.00 103.00 42.00 13.00 19.00 153.00 51.00 34.00 94.00 12.00 32.00 33.00 17.00 11.00 409.00 154.00 495.00 95.00 161.00 56.00 79.00 234.00 35.00 24.00 17.00 96.00 62.00 46.00 245.00 371.00 26.00 229.00 66.00 16.00 53.00 34.00 30.00 22.00 192.00 33.00 136.00 104.00 13.00 78.00 550.00 0.00 201.00 23.00 0.00 0.00 0.00 0.00 0.00 27.00 0.00 46.00 0.00 0.00 76.00 0.00 75.00 0.00 24.00 8.00 95.00 0.00 96.00 0.00 22.00 0.00 127.00 37.00 28.00 13.00 0.00 698.00 0.00 34.00 42.00 61.00 208.00 24.00 15.00 18.00 49.00 35.00 37.00 54.00 44.00 889.00 175.00 10.00 258.00 12.00 48.00 30.00 157.00 0.00 28.00 0.087127 0.040904 0.040432 0.046872 0.033474 0.038255 0.049530 0.088612 0.033618 0.036886 0.085357 0.080482 0.014753 0.039772 0.050680 0.069577 0.058542 0.010494 0.029916 0.064718 phangorn/inst/extdata/cpREV.dat0000644000176200001440000000352413201424001016135 0ustar liggesusers 105 227 357 175 43 4435 669 823 538 10 157 1745 768 400 10 499 152 1055 3691 10 3122 665 243 653 431 303 133 379 66 715 1405 331 441 1269 162 19 145 136 168 10 280 92 148 40 29 197 203 113 10 396 286 82 20 66 1745 236 4482 2430 412 48 3313 2629 263 305 345 218 185 125 61 47 159 202 113 21 10 1772 1351 193 68 53 97 22 726 10 145 25 127 454 1268 72 327 490 87 173 170 285 323 185 28 152 117 219 302 100 43 2440 385 2085 590 2331 396 568 691 303 216 516 868 93 487 1202 1340 314 1393 266 576 241 369 92 32 1040 156 918 645 148 260 2151 14 230 40 18 435 53 63 82 69 42 159 10 86 468 49 73 29 56 323 754 281 1466 391 142 10 1971 89 189 247 215 2370 97 522 71 346 968 92 83 75 592 54 200 91 25 4797 865 249 475 317 122 167 760 10 119 0.0755 0.0621 0.0410 0.0371 0.0091 0.0382 0.0495 0.0838 0.0246 0.0806 0.1011 0.0504 0.0220 0.0506 0.0431 0.0622 0.0543 0.0181 0.0307 0.0660 A R N D C Q E G H I L K M F P S T W Y V Ala Arg Asn Asp Cys Gln Glu Gly His Ile Leu Lys Met Phe Pro Ser Thr Trp Tyr Val Symmetrical part of the rate matrix and aa frequencies, estimated for plant chloroplast proteins, under the REVaa model. The first part is S_ij = S_ji, and the second part has the amino acid frequencies (\pi_i). The substitution rate from amino acid i to j is Q_ij = S_ij*PI_j. This is the cpREV model used in protml 2.3b6 (12/10/98), described by Adachi, J., P. J. Waddell, W. Martin, and M. Hasegawa. 2000. Plastid genome phylogeny and a model of amino acid substitution for proteins encoded by chloroplast DNA. Journal of Molecular Evolution 50:348-358. phangorn/inst/extdata/mtmam.dat0000644000176200001440000000726613201424001016300 0ustar liggesusers 32 2 4 11 0 864 0 186 0 0 0 246 8 49 0 0 0 0 569 0 274 78 18 47 79 0 0 22 8 232 458 11 305 550 22 0 75 0 19 0 41 0 0 0 0 21 6 0 0 27 20 0 0 26 232 0 50 408 0 0 242 215 0 0 6 4 76 0 21 0 0 22 0 0 0 378 609 59 0 0 6 5 7 0 0 0 0 57 246 0 11 53 9 33 2 0 51 0 0 53 5 43 18 0 17 342 3 446 16 347 30 21 112 20 0 74 65 47 90 202 681 0 110 0 114 0 4 0 1 360 34 50 691 8 78 614 5 16 6 0 65 0 0 0 0 0 12 0 13 0 7 17 0 0 0 156 0 530 54 0 1 1525 16 25 67 0 682 8 107 0 14 398 0 0 10 0 33 20 5 0 2220 100 0 832 6 0 0 237 0 0 0.0692 0.0184 0.0400 0.0186 0.0065 0.0238 0.0236 0.0557 0.0277 0.0905 0.1675 0.0221 0.0561 0.0611 0.0536 0.0725 0.0870 0.0293 0.0340 0.0428 A R N D C Q E G H I L K M F P S T W Y V Ala Arg Asn Asp Cys Gln Glu Gly His Ile Leu Lys Met Phe Pro Ser Thr Trp Tyr Val //End of File Symmetrical part of the rate matrix and aa frequencies, estimated from the 12 mt proteins (atp6 atp8 cox1 cox2 cox3 cytb nd1 nd2 nd3 nd4 nd4l nd5) on the same strand of the mitochondrial DNA (3331 sites). The data are from 20 species of mammals and three close outgroups (wallaroo, opossum, and platypus). The model used is REVaa+dGamma(K=8) with the estimated gamma parameter to be 0.37. The first part is S_ij = S_ji, and the second part has the amino acid frequencies (PI_i). The substitution rate from amino acid i to j is Q_ij=S_ij*PI_j. The data are from Cao, Y. et al. 1998 Conflict amongst individual mitochondrial proteins in resolving the phylogeny of eutherian orders. Journal of Molecular Evolution 15:1600-1611. The species are listed below 1 SB17F Homo sapiens (African) # D38112 2 CHIMP Pan troglodytes (chimpanzee) # D38113 3 PyGC Pan paniscus (bonobo) # D38116 4 GORIL Gorilla gorilla (gorilla) # D38114 5 ORANG Pongo pygmaeus (orangutan) # D38115 6 Ponpy Pongo pygmaeus abelii (Sumatran orangutan) # X97707 7 Hylla Hylobates lar (common gibbon) # X99256 (lar gibbon) 8 Phovi Phoca vitulina (harbor seal) # X63726 9 Halgr Halichoerus grypus (grey seal) # X72004 10 Felca Felis catus (cat) # U20753 11 Equca Equus caballus (horse) # X79547 12 Rhiun Rhinoceros unicornis (Indian rhinoceros) # X97336 13 Bosta Bos taurus (cow) # J01394 14 Balph Balaenoptera physalus (fin whale) # X61145 15 Balmu Balaenoptera musculus (blue whale) # X72204 16 Ratno Rattus norvegicus (rat) # X14848 17 Musmu Mus musculus (mouse) # J01420 18 Macro Macropus robustus (wallaroo) # Y10524 19 Didvi Didelphis virginiana (opossum) # Z29573 20 Ornan Ornithorhynchus anatinus (platypus) # X83427 The results and details of the model are published in Yang, Z., R. Nielsen, and M. Hasegawa. 1998. Models of amino acid substitution and applications to Mitochondrial protein evolution, Molecular Biology and Evolution 15:1600-1611. Prepared by Z. Yang, April 1998. phangorn/inst/extdata/lg.dat0000644000176200001440000000361513201424001015561 0ustar liggesusers 0.425093 0.276818 0.751878 0.395144 0.123954 5.076149 2.489084 0.534551 0.528768 0.062556 0.969894 2.807908 1.695752 0.523386 0.084808 1.038545 0.363970 0.541712 5.243870 0.003499 4.128591 2.066040 0.390192 1.437645 0.844926 0.569265 0.267959 0.348847 0.358858 2.426601 4.509238 0.927114 0.640543 4.813505 0.423881 0.311484 0.149830 0.126991 0.191503 0.010690 0.320627 0.072854 0.044265 0.008705 0.108882 0.395337 0.301848 0.068427 0.015076 0.594007 0.582457 0.069673 0.044261 0.366317 4.145067 0.536518 6.326067 2.145078 0.282959 0.013266 3.234294 1.807177 0.296636 0.697264 0.159069 0.137500 1.124035 0.484133 0.371004 0.025548 0.893680 1.672569 0.173735 0.139538 0.442472 4.273607 6.312358 0.656604 0.253701 0.052722 0.089525 0.017416 1.105251 0.035855 0.018811 0.089586 0.682139 1.112727 2.592692 0.023918 1.798853 1.177651 0.332533 0.161787 0.394456 0.075382 0.624294 0.419409 0.196961 0.508851 0.078281 0.249060 0.390322 0.099849 0.094464 4.727182 0.858151 4.008358 1.240275 2.784478 1.223828 0.611973 1.739990 0.990012 0.064105 0.182287 0.748683 0.346960 0.361819 1.338132 2.139501 0.578987 2.000679 0.425860 1.143480 1.080136 0.604545 0.129836 0.584262 1.033739 0.302936 1.136863 2.020366 0.165001 0.571468 6.472279 0.180717 0.593607 0.045376 0.029890 0.670128 0.236199 0.077852 0.268491 0.597054 0.111660 0.619632 0.049906 0.696175 2.457121 0.095131 0.248862 0.140825 0.218959 0.314440 0.612025 0.135107 1.165532 0.257336 0.120037 0.054679 5.306834 0.232523 0.299648 0.131932 0.481306 7.803902 0.089613 0.400547 0.245841 3.151815 2.547870 0.170887 0.083688 0.037967 1.959291 0.210332 0.245034 0.076701 0.119013 10.649107 1.702745 0.185202 1.898718 0.654683 0.296501 0.098369 2.188158 0.189510 0.249313 0.079066 0.055941 0.041977 0.053052 0.012937 0.040767 0.071586 0.057337 0.022355 0.062157 0.099081 0.064600 0.022951 0.042302 0.044040 0.061197 0.053287 0.012066 0.034155 0.069147 phangorn/inst/extdata/JTT.dat0000644000176200001440000000252713201424001015621 0ustar liggesusers 58.00 54.00 45.00 81.00 16.00 528.00 56.00 113.00 34.00 10.00 57.00 310.00 86.00 49.00 9.00 105.00 29.00 58.00 767.00 5.00 323.00 179.00 137.00 81.00 130.00 59.00 26.00 119.00 27.00 328.00 391.00 112.00 69.00 597.00 26.00 23.00 36.00 22.00 47.00 11.00 17.00 9.00 12.00 6.00 16.00 30.00 38.00 12.00 7.00 23.00 72.00 9.00 6.00 56.00 229.00 35.00 646.00 263.00 26.00 7.00 292.00 181.00 27.00 45.00 21.00 14.00 54.00 44.00 30.00 15.00 31.00 43.00 18.00 14.00 33.00 479.00 388.00 65.00 15.00 5.00 10.00 4.00 78.00 4.00 5.00 5.00 40.00 89.00 248.00 4.00 43.00 194.00 74.00 15.00 15.00 14.00 164.00 18.00 24.00 115.00 10.00 102.00 21.00 16.00 17.00 378.00 101.00 503.00 59.00 223.00 53.00 30.00 201.00 73.00 40.00 59.00 47.00 29.00 92.00 285.00 475.00 64.00 232.00 38.00 42.00 51.00 32.00 33.00 46.00 245.00 25.00 103.00 226.00 12.00 118.00 477.00 9.00 126.00 8.00 4.00 115.00 18.00 10.00 55.00 8.00 9.00 52.00 10.00 24.00 53.00 6.00 35.00 12.00 11.00 20.00 70.00 46.00 209.00 24.00 7.00 8.00 573.00 32.00 24.00 8.00 18.00 536.00 10.00 63.00 21.00 71.00 298.00 17.00 16.00 31.00 62.00 20.00 45.00 47.00 11.00 961.00 180.00 14.00 323.00 62.00 23.00 38.00 112.00 25.00 16.00 0.076748 0.051691 0.042645 0.051544 0.019803 0.040752 0.061830 0.073152 0.022944 0.053761 0.091904 0.058676 0.023826 0.040126 0.050901 0.068765 0.058565 0.014261 0.032102 0.066005 phangorn/inst/extdata/dayhoff-dcmut.dat0000644000176200001440000000565713201424001017721 0ustar liggesusers0.267828 0.984474 0.327059 1.199805 0.000000 8.931515 0.360016 0.232374 0.000000 0.000000 0.887753 2.439939 1.028509 1.348551 0.000000 1.961167 0.000000 1.493409 11.388659 0.000000 7.086022 2.386111 0.087791 1.385352 1.240981 0.107278 0.281581 0.811907 0.228116 2.383148 5.290024 0.868241 0.282729 6.011613 0.439469 0.106802 0.653416 0.632629 0.768024 0.239248 0.438074 0.180393 0.609526 0.000000 0.076981 0.406431 0.154924 0.341113 0.000000 0.000000 0.730772 0.112880 0.071514 0.443504 2.556685 0.258635 4.610124 3.148371 0.716913 0.000000 1.519078 0.830078 0.267683 0.270475 0.460857 0.180629 0.717840 0.896321 0.000000 0.000000 0.000000 1.127499 0.304803 0.170372 0.000000 3.332732 5.230115 2.411739 0.183641 0.136906 0.138503 0.000000 0.000000 0.000000 0.000000 0.153478 0.475927 1.951951 1.565160 0.000000 0.921860 2.485920 1.028313 0.419244 0.133940 0.187550 1.526188 0.507003 0.347153 0.933709 0.119152 0.316258 0.335419 0.170205 0.110506 4.051870 1.531590 4.885892 0.956097 1.598356 0.561828 0.793999 2.322243 0.353643 0.247955 0.171432 0.954557 0.619951 0.459901 2.427202 3.680365 0.265745 2.271697 0.660930 0.162366 0.525651 0.340156 0.306662 0.226333 1.900739 0.331090 1.350599 1.031534 0.136655 0.782857 5.436674 0.000000 2.001375 0.224968 0.000000 0.000000 0.000000 0.000000 0.000000 0.270564 0.000000 0.461776 0.000000 0.000000 0.762354 0.000000 0.740819 0.000000 0.244139 0.078012 0.946940 0.000000 0.953164 0.000000 0.214717 0.000000 1.265400 0.374834 0.286572 0.132142 0.000000 6.952629 0.000000 0.336289 0.417839 0.608070 2.059564 0.240368 0.158067 0.178316 0.484678 0.346983 0.367250 0.538165 0.438715 8.810038 1.745156 0.103850 2.565955 0.123606 0.485026 0.303836 1.561997 0.000000 0.279379 0.087127 0.040904 0.040432 0.046872 0.033474 0.038255 0.049530 0.088612 0.033619 0.036886 0.085357 0.080481 0.014753 0.039772 0.050680 0.069577 0.058542 0.010494 0.029916 0.064718 A R N D C Q E G H I L K M F P S T W Y V Ala Arg Asn Asp Cys Gln Glu Gly His Ile Leu Lys Met Phe Pro Ser Thr Trp Tyr Val # #Dayhoff rate matrix prepared using the DCMut method* #---------------------------------------------------- # #The first part above indicates the symmetric 'exchangeability' parameters s_ij, #where s_ij = s_ji. #The second part gives the amino acid equilibrium frequencies pi_i. #The net replacement rate from i to j is q_ij = pi_j*s_ij. # #This model is usually scaled so that the mean rate of change at #equilibrium, Sum_i Sum_j!=i pi_i*q_ij, equals 1. You should check this #scaling before using the matrix above. The PAML package will perform #this scaling. # # # #*Prepared by Carolin Kosiol and Nick Goldman, December 2003. # #See the following paper for more details: #Kosiol, C., and Goldman, N. 2005. Different versions of the Dayhoff rate matrix. #Molecular Biology and Evolution 22:193-199. # #See also http://www.ebi.ac.uk/goldman/dayhoff phangorn/inst/doc/0000755000176200001440000000000013241142073013605 5ustar liggesusersphangorn/inst/doc/Trees.pdf0000644000176200001440000022727113241412170015373 0ustar liggesusers%PDF-1.5 %¿÷¢þ 1 0 obj << /Type /ObjStm /Length 2629 /Filter /FlateDecode /N 53 /First 405 >> stream xœµZ[sÓÈ~?¿bÞj æ.mmQ'rB 8[<(¶’hq¬`Ëöן¯g$[–’àdCy<u÷ô|}#Y̳Ži&­e†é8f–Ù8eŽY³„9­YÊRi˜ˆ™±Å2qø`B+Œ+&, j&œÁ<†RZ‡©Á:Ǥ‰1Ÿ0™& ™Rðv—l©/™V’(¦m˜Ǫ̂4ÆËÌe!!36ÁzÇL¢0ž0“:"Š6µ C6†ÌJ0ˆƒV¢Åû ;”q”FKó†Y•:’Öh!˜µ „J ‰ã)ZB(†aèF0)™“ã -öÅ8æÕiÝYæ,mÂ1çœÆ&˜K“˜T"Hx¨S8H% z1’%Ìb‰RŒFk“ÿüù'ãy•²*ÃÎqDÆßÌ«q1Ég8ß?ÌÎÑÑ¡süã*g| ëÇå9{þܓؘWå”=yŠ™ižUE9ÙΪœ=ÙþCÆ"‰¥Ð"‘±LžÅæ·8þ­YGï¼ÊŽóö½¨.ØhO§ù»Ê†_ÀËöóßËéhæi”£Ÿ‘=œ–£ù0ÝÝÃWl÷¢œU³á´¸ªXIGóÓ¿óaåéÕ8§oõ6¶Êù¤"lñý,ÿbA!‰ÿ¨Iý§ NÞ/ŠJC/ o¥á5+CÔ'êFøæs£Î áF™“IYw^æ=…ÀßÖdƒ.°t z[å¤Ê'x]Ô²áxGE¶Y^ƒ XPu©¤µ‡ÙK›ƒä³r>BâÅuµ{T‘²“šÎ(\5$¦åð(¯@“nï`ùu’ÏŸ·w´ªÖ$Šé¬baüU†ï6h®^¸Ïª…ÖùÉÇO4’¯ŽRXÐd>“ܯ‰™q 8ý&j¨Ö'º7©<ˆO{z•aÇ2ð‘ö݉ÇÑLZº“ét·ZV*­nZ>ŽÐʵ„VÉ¿ZVº¶#yƒÐê‘PªÚ(ÕBéB&ý82™¶å˜‡XΆ§xÄø»Á^3¿áQ†ž\fŸ*ÿø2Îæ³h6¼ùÕÏi4–—O=ÙMøO8İ áÕï;"tä aRFÚ sE£ÓáI¸È ¼|ö®³ò"¼*&_âÐY7òÞÎ*¦Nmß~.RUcßµDÔ‘„£ÕVGH´H£”âµSQ»–@­C5s¨”•,OUÄîǺy'VN/³1‚íáÔÃ÷Y5çÍê%¿æ•l–{Ž|cÿͻ׿o :1–£brN=ˆE>vë"›¢ëe„Ò}D¬-×ë—ès©Eb- ³Ũº K¶Þ%öÿ B%6ôÜ4ÓŸNÒVO%ቑÑPÂ%=ë[Z·î#]hºŽr°ùŽ9B¥\ +?§ ™Xù7hw”~Ѹï[ë[‡¼‘væiÐMÇ ÊÖa{ôå«M+Ót1N+©oDØf"êuõ<¥„¶#!¨¥‡hÒúÏ O1x|’³«—yq~ÑtqÒÍ'|ƒoò-¾Í_ð¾Ëw³ËËŒ¿ä{ü|Ÿ¿âü5Ãù[>àGü˜¿ãïù~Â?òO<ã§ütЬ,G|=«šïSâ‡|XŽË >‰àˆçÜsçùd”Í.xþužù?ÿÿ¾åü }X?çIßE>áÿ›ác~É'|‚ì“—¼Äç¿"³ôLý·ÀybQŽøÕx>ã_ù×yYå£Óq˜›òŸåß@sV\óÙ˜d¨xu1Ís^}/ùœãßù5ÿÁÿáÿäÓò©wL^}Ï$Ü4ßgç”ïzØ ¾âÛÏRUAjý¦wŠqŽšD´œÂëì2ïšéÒåb¸19Gv‚#9(f3­·.€#GU~ùž1iÛ_Ët{nàÓÉààÃ.èož¬ø˜ìdc2+–K€ª¡çÒžKkºåà)î]O¼XÙü%:8€Ä†ñÄläòõ<|¬«­™†ª’|¶vÛŸÁÎh©Ò·H+™ P?`à è[JU­ªgÁÚÀ<½©º'ZMOÏÄâU‹;&¶ ÓÚƒ1z3"Ãiìcigµ46P, ¿@}ø*–WQ ¯@7^@W­b7“"ÆÎHÜt[é^€nZkcWß‚]~RëJ£bïyÿýÆîæ ¸ï­dÓc"ÅÃL…z¼^ìBUŽ,ñzÖlõ”³uÎβå¬Ã¨1wÑ4ž–6á›®¥iúdt໩Çë· 3ºHQ„g<ô–õÜèš ‡]ªm[ØõÝNxxá¿CÛ³U_Ý€u¨UíZ;°Ô·Àò*j?:çEéà²U;\v²&.iK-ú°ìí½=yO̎׆e³Á6,U–zMX¨¤yj ,zí¹‡<} ¿ŽæÝŸ÷§z?™Âû]C°)Naã[ƒ–U³ pkÖÔÏ—šlé2%Ÿ'eÓõs¥Q9cý"ejr¥Vx8§›²|Ú6?Šã|6[fK“ùåi>ç“û%N¨ÈPM.2¨5’§ù%ÞlXNóeÕÍ¢dº°y³jó"Ì©ýtL>íš|Ç »&Ÿ]·pÕÐH˜à€êÔ¿,a¥¶(RE¯†Uq+¸èDD†rv­"Gù{*"¥µ¨‰lšFθžD:‰ ÔB"+#ù…òg)P}_ꉋbœ®022¨¶;2)# %;.J‘¨(“D 2?‹È©{Wúò‘.>•d­{°Úß«Î(Áê{‡ÅˆfM­0P k‚Ü@Ǭ‘{ %ý>Ñzk•^æãoyU ³g›åxtg ¹ãÝ7§ãâ+]6,oêíýœÞOöd)ai¾ ú}¤½‡Ù–Öq¤l5R§‘ö¥AÅP˜4.’.A‘øÈ_{ce´‹¬ê‹¤0)kswô³p5xëúµY ‰lO œ€‚á `XZDAdE”®+Ñ}`Ü…nË,éN]·ÍR?Ä,[µÇÇ÷;[[¿íPx¡”q½4/íEÝ­>hÍÚY^/;‘ñj>²RbúXM‘nœ·‚nÜD\kŒM:õœKê<Õ€+[º¬sì®Fî̲—AöÖâo= -qÃôsfünÃÄIäà:&‘ª(u‚YDb E ™$†1 ÞCýÚ ©ì]tK8¬u^ƒ~ÁF”Di¥†×kŠ´õÑþ‡ý”3­]¹€KÒÝËbZ³Þ]±ŠoN¸[NW*ÏÁú@¶±¼!s”ª äŽÖ-ãuïßÞì¿{;xCt\‡iŒj¡]¡úoºwñF‹ÖÒïM¿ÔÒoè.ô{ ÀåÕ-JÖqOÉþzYË®’uWÉ=%Ü¥fºÖ¯Õlͽ½q×» ÿâ ›˜óà”êËØ.ÎÎrD# ?…£ :\þf¿XÜüx½ò ÝP]“ùìöî%”éïëÉ©ð³3<ž±¿rX¹þ¿é„«÷›yÿ¨Á[fendstream endobj 55 0 obj << /Subtype /XML /Type /Metadata /Length 1557 >> stream GPL Ghostscript 9.21 2018-02-14T18:20:28-05:00 2018-02-14T18:20:28-05:00 LaTeX with hyperref package endstream endobj 56 0 obj << /Type /ObjStm /Length 1761 /Filter /FlateDecode /N 53 /First 424 >> stream xœµXÛrÛ6}ïWà±LHÜ/Lf|MÒÚij§qÒŒ ±9–HH§Îß÷%Š”YvFƒìÙ³‹Ý•!”(KuD9¹&š!(ÑŒH‹†¥1(ˆah$±Ñ ZMÃ|mãX ±‘¤–hG˜R’J˜¡ K ³Rà sŽ# ›I¸˜§ׯ£ ·}Cè["xØÇ¡0ÂJ``hÃr"\À$ˆ X‰–bZ€°šHØÖ©(æY"µbÄ:"ÓÄQ"p9F…\@S z9V¢•h¡ŸSh1K”–8ƒVaE‹ä)X™šŠÀ8Ô¦?èÅ0ª46dÀ¡LœŒ]M b[KÃöµ<Œ`c«[³(õË‹$Ý÷UM>‹ôã§ÁK O‚‰Š›É„œ“ô­¿­ƒIã¬wÙÌ5ÑóÞÌ#¦y~Ÿ×O~}åë:/.HUg³Ú#/_v…Ùž0Í]Â@ïª0w§0µ*m?‡œbäÉ—¬òc2õõe9®~$” “¹"f¹S¨]ŠU>-‹ï 9{å –½™’I~å'ùeY(g´¯¾¦‰†«·`Z!tuãrì'¤ò?ªó²èèZÔ˜^á„Î=çØól·¼…¬°…†ÃxþrgÙÌ;ñUy3ùŠ„}nëW§uVûèÓqÂ!¶ŽŽ=×¶ú Aúnÿ¸1ç€Çï×>ì~á{ºjÞ÷/ç§Y5µº“Ý ;×׾緿@-ÆÙlLªÑ,¿†ú_ËvM|YçcO²"›|¯òjOú©x’+<©Gð$7âIßÍ“XËáw0•Mó¢$Ù(™jý”õ0!ò%ˆ¬}7í¢P+(N}UÁUÉ›"§ÙŠÛî–³±ŸÍ©ga¿½Ø BÏ—ú¼Í­ÄÄ Næ!K$Z"+H‡Y‚ÊD†l¡\‚±0óôæKé?Ê‹«Ö;EQÖ„„@YzIÑD„¡†‚—0ä)©Š#õ”ˆú†‚''t "-Rc‹È˜D#U?$»ç›Ÿû9$cŽS$¬Kò1˜¤€hÀ/ªÕ‚ f€˜4 S¡jI$¨aJ‚2‹-Žje3DÈ}1$¤ŽÎþÙß}¶w|˧Ũ‡\œžåÅNQå˘ö.³Y(­b<îx\qVX¦¥8‡!W.q¬ÒÈ=ËÇõeí`#/ÿɘd%ÕËÿQH^\º8#´Æð8Ö¾Cý†rN(ÛUu¨d´æœŸjŠ¥t/»~íó‹KtQô¥A½;MÒ,¥>½H/Ó<¤Ó´HËô:¥UZ§ÿ¥HöÁ¶q§çÁ‡ÒÃIvQ¡žlHØm{|i‚¼óæåa>ñ0.7Ëøý6›ú¾ÁÞÔÙ$ífù"G8+."¹¨'1rZû霿ú;–K?Ε“(BÞqöçþÑÎ_ÏNOŽQXÒŽƒ„Ò¤A¶ð ɇ~¡z~ælä|ßÙ¥cަ»0DøY^]!Š_v˜§-í²Ç:LŽº?lÒ£Üö)°pëBˆ–uäšõ¤x~öÇÁ§ý(šÏnžÍÖý}Ý0ÚáX ØvýhŽâFtóh©u¿Õ7æÎy›ÿÂùR.þ‡¥Ô\–Bp OVˆÎ»!]Hx6öûÎaPDvœ£é.#ÍjÅQ9)‹Eh¼ŠÁ1„ÆkxN9Žññf5:êû¢#®ÏLDQ«.$hß…V ¼itä?ŽŽ(èæ<œÜ©›¸¶áá»BS‰#¦0Ý>ëð}aþŒ«ô<²œH˜›¶Ï¸]µka$Ó® ß*lWÊ–UCàÄ ÒâR$Æw¸×êPMÜày¸ÿ'¨6*"ÖÑU¾«ðBÉGÖÖE³ve Ydq‰ªR€8ÎBѦQA)¶™:±Ψmt²MLµ¶9óçÝ[š˜Wµ½¥9¶tãðèáw´-éäµ£T:¹Hh[Ð)LB…z[BÒ–&n·B²]ÂÅ…†þãõ¯®óéƒc{ Ç ·>¸¬€&P…K‹LÎŽ,¡¡52Vo†ªãMü‰¼It½InáM?8؃ÃüÐùÅ鬻:›Ÿ óÚˆ=ÔG>>Œv2[ü”»ELXT=¯ý䛯óQvo‘r7ᣰskò[øNß²¢™ÇÃ-ÒÃ}ì>&Íl…¡Ãß=â~þõ«‡-ƒñ>Çz»[S7Ü.Vü¼mÿ÷endstream endobj 110 0 obj << /Filter /FlateDecode /Length 3724 >> stream xœÍ[I“[·¾Óþ<>ºÄìKN©TW–CO*YjöhyFcYÿ>ÝÞC7Þ2[Q¥tÄÒË×+ÀŸ¶¢—[ÿÊÿ§·›ßýSËíåãFl/7?mdúv[þ;½Ýþñg¨­½sÊnO.6y©Üß[ ‹Ž½ ~{r»yÝ}»ÛÃæ1ÆÐ=î`ÐÞÇîŽ 4Jv×ø‡BiÓÝÒ/°@G)`m³@ôFxgº»Žê¨î.w{-$ldº÷døj§\/…óÝ'UÑY¯»ÜÎÆ(¬îîÓnÂZØ?mwŽòh>CI§èh"H a´&ôœfà˜ ú•²{ sÉ风Q»²…ø…ì>qä±x•gG¡VS Ãõóì’9p!Ey¼¯ …ÒIœ½GÊ} áÍÉ_QÛf+M¯SIÛÚÂÁa»‡ÿAËq{rjþ.R¹M²B¡­M:4RÝ=!R( ÂAvQ-!tÿØ8NX×õyPHÙý@枢}„Ñ+2ZN1ÆÆ¤ú×9Ìó@šB$À›hLaÆmcr‰"l·µ@º Yé¾ÙügÂô^ ˜cp­{éŒÌ\ÿydƒsY—s)B÷6­3ðÍÿ6&*—${4jØ>HÕÉq‚)ªô*t¯ŠŒ„ëÔ8AŒŸ$™êçÂzØJß+iMf ÌT˜íÞƒât ™#Ø@J ÀÊî/EBØùn§%Ÿ`m…‘¶nP¸°ˆ„?ÀÌΞNˤ&sÍ&áp ÊÁv[ Bk“˜3å"÷o^w'TRE„ x>°dW¼Z¢æ-¥2ï£x89QHj6üC _æbÆÜ0çi„œ×±@ÉxÈÄ1È|%J'mãZŒŸq®ÔúìyGo3œƒÕ‘2Eé-$*Y,q$¼²GKÙ+ %–K€(í’ˆ~"Vé´öÙ䣨²ó³_FEÁ‘ æ4X2D.ˆX ðDõãù‚‘Ëî‚ vüHar[À<•ÏÍ5åçn_‚²ÉÛôíÁý㊧¡²æ"›‰Q¥€¤ב@Xau˜ÿgPúG SÒ=(·ùCñJ&šn £ùÖlÁW‹ ÃZFõáv‘Ë„@)´ý@b×A G·Óšò'Úm”¨a p¯ŠËæ]fªlð"ütBböfF0o¦¤½¿:Ü]Þ£8 ¸À°à­0Äq ;¨2Å €‰w;k€Ïôu…U óÚ$©'Q€›xM LÖÝTýø¢°Å°˜¢pR¶tcFT÷3Z¯‚TcFÓAEwˆ( Ø b%8ðØÔŒŠ¦Æ—0ºp ãé Â% qÌûƒÆ!êp±®9²Å ?£¹ùÝ’êtï!#.‹ˆ¸G4Ö'Hõu³«~ŠBô>OwVœ-a¯D@§ÓC5æ¶ß&›Á|ƒmr–O‚¬O¿Ë⃿™yR?G_Ø“q^bÎT×D7…š¸H Ãr ¦ãf S4ÌÕT Âù]aNAzV˜£¨ÙK(‚lˆÑ&²ˆb­-î¢@øœ©5åõ:˜1ýCG{žœ1dl–ùß!Š9¯0#Ð^#ƒàÈXVA眢Ùúh 8º;º À‡ªS€ Bz¢û1Ó:ÃC5ÆàÆúò¨å~€è%Q›Ò¤5犻`¨åaa6гÄh5*LóäbŽt>Lᯯ©Æeå àå„B[âpÔuÊ«" Á®#ZyC`O6<ÉÙŠŒ=eƒSá"b¦ñ˜R5þg¿M„A½ÃÅû40.ßœ™Z¸/> ‚0¤Â“ÏOÔK©ädÈÚ‡³À¸ö(fsòµl]p…jrÉûaý¨ÚÜ+IJ†hÓRœ.KR£€r1š]Q€?á!ËŸ‰êîÔž˜ìÍ«.˜+Da\ F³™…”u”Žo}uBþ¯R}<|ÁgKõqsî²ÉÍb £ø4ëÍá˜O2X£?–uaž¨=Ö)×wô Bq Îöû#ÉJ¬ÏJ>£@Mæ+b /N›…H¡k!„PsO¦a±×TZÒF {Wã¡'§ÚT!dsxq†Í°ÌçMì‰SÞ›Ô0*™ê0g­“$0!`?‹ú¡÷t1AÔ‚5°Âs’™ÒxB°ÑÅ÷yØÆ°s1‹׃+¡Â™¤‚3fÍ •œõ˜¥£“¢FÑôFŠcc*…rĸ®9ã²Ô·™dE\n|ÙèY|øU ­MXÆBUúvq“óÜeÂ×"Ã0…™H5¨¦ó’ûz=è˚˜KÊIÁ¬åê¤×Ô£ÝÖþéË=ðRéØô° ¤ Vë – `©"trÌ …Nãä\‡SÇ>D¡†n¢ª­ÍïpØ~ˆc,­M©e鹕®%2ea%Hø»¶ù6o¤a³‘UEÙ‚;º¤óPWc!—¸$ß¶ØÅ ”#Ú XU£™~MAHB.£ è¶Òô0z°)¬™/g–s™Û`»¥#ï3˜W9¾Íg$0žZð½¤sÉé÷u[î|Émž›¶ ¶ÍmÊì…¨%×YžŒ}¹¶ºÆ9bgF™ù°]Xwo)‰bþi°Nê0¶ÉÁtÿº{Þö3D–«rÐ00b"í€N Üb޹>øT€“âTfÚC+%óp6÷þtñ/µ$ yÒBÕ€Íç¢~¯@§’æÈPmcîf!ê{È{ƒJ¹%¶a% pŒ7§ì´Qîȼ[ÎøR˜ŸÚ†ŸÉ“ìTÛ&—¨<·Ç»LZoN ÒjK|ð®iÓ$hƒ>´Ûþ–Cm5ù;¶ˆJßë$iÖ«±A\Nù2ÌÛŒ¢!Âx¼¸mø¡Bèœ%— "ÞíÇÑ÷uÙ™ðiœð§ÙÍ>ð’§ _^õ^×ú–±†`Ðɼ³Bµa/šÆÝã(Vc¼¹:š&Åý°G˜é&jÁ¦ÞÕ©GšÈBfó" útÁ¢Ž¼ó$yáy–¨‘·œiLälÓ+qQúù¶MZWûù±zoÛîç—é绘øáy„qriI;IË nÙæ$áÆ'Ú/SØüÏ£ý‘!µÒ3/B0²[ÌÊùêêä«Ë*,.å̽^+;ÓJDa{Þ0—J¹Ò6ÂM‚ðM7.‰ž¼º¶½°†xuœˆaÖéœÜt–}äu þ“Fg9û÷»ÝØØgX^È^š²°ÎyªŒdJVæ\‘L'ƒRÝ øØÚ´§J!ô¢Á|qðÓ£äùÁ;Ìó,¾¦˜–lµå¯‚IwÁ«‚Mmwµ[Á#Ù”"é¢ì³Ò–!ÙÐ!ÏÆ÷_ƒªš …ã 5÷u#vãZå—oªÒm@"=?Èá÷J¸Mîy¸+o¤êƒoˆÛ ³æ•¡YÑ5CÿôBÐHF†”ödRgÚJó™NÛïÞsË8¼ßÙL[ÚR“‚j¿Õž¾O˜\j›ÕKm«Srøš…'Óßàœ|™ÂCôv :Ëf¾+·FøÀÁØôÀgž•—œŽåT“˜3^å†xG”þÜ. ¡öEŒÁ¾­¥váiÏÜI…Í«õØ*=ä1:üFdÜÍ/ûeœðÔÈ8öuÙÙìiއ®×k®Œ0ëÒ롽v2ùfnGÖG¸VÆõöéì£Ì´ ^P.G¹®Õb€Ýzbçb Ê QZÞ&0ÛÀëG§R9Ð-³ Âw¸wõMÇŠï¹TÖ/¬ÅçÆ@Ö@¬Àª¶¿Ĥ}kÆ÷PPEÞ6$]‚‡l²Á†P½F¹6vŽ.…•Lp Mÿ÷.¤Æ ž«Žñ/Ä{´ ,Ž×MklæI] `ó|þ^®¹¶žïF}"á+yÙ!’ñ–+nO¥ØÚûV‹¹²Z¾™\ú \þTXo‚ÏU“àJ{©ã ßGKøZ~æ÷Ñ(Ìï©ËÏ:réÜVc׃>9¦Õž^ê.OºvƒÈ'¹\9­ieãô\þ²_´ËÖp̃@Ú±NNãÛ“Í÷¬0¶7bûT•àCœ1½3ÛÛ æ|½´ãÈÍæ‡Åß³…c€Oú“B°#À^ØJ ß)…?)~ eè¹ÀÌœÇÝ;àF ?š.4pÍÁë½­Ë/Ò •â?!AÄG:¿Ï¡ÉÅò<6àÕ£*³c„Ðtx*¢‹¥Òz£“·S4ˇÓs[uÉ«-ì1žžö»®„ ? t.”¢ZàÏÊþPiºœp'"~ ;}ýxJ¹/K¡ú˜íÎÕCž··Õ‡ñ}²BiTô÷›ÿ±é-üendstream endobj 111 0 obj << /Filter /FlateDecode /Length 3730 >> stream xœÍ[[o\·~Wû#?í¶Ö ï—") "i#1Ò@i€&yP$Y,iKNß’‡œáò¬Ö©“~ð5$‡Ãs×O‡b’‡ÿ•ÿÏn>úZËÃˇqxyðÓL¿=,ÿÝþí(Œ:”rŠÖªÃ“Wyª"59]ðSð«ÛƒïV]Y©'·ºY øµÐÁ­®×b2RY¹ú‘Œ¾©£§ð¥£“^Ã`#ø¥|¿"Ã÷uøªÍ;%w•à’Œnêè›6íŽ|¿n?üpòâ@šÉ'O¾88ù9Ù+2ç¼.zÍN–I¥[}Üö:ÂQ£jõÐF!óêjà‚ÜV‚‰Œ¾"LÔiTþcA>«ÃmÞ;BðX ÎÉèéˆK*ÿÁèº/Ƈk§Öž7¡Ýw;«Ó^ .ÉÆu±OæÛ${Ý“IWœcdÕivHD޶bRÖÃ+99‡7q7”y·£yÖQ|¤Év÷CY^ÑAÔãM=Bq¯7ÃI§CàOO "üÓ§X€Îô5 r3ÏT êÕÒv•â|¸3ÊóöÂô!®hpºó±î:͸Ó~Š®âîWnóÏGŠl3<滃Wô„~¦ ¸ЦM#í X«p(ý¤¤5h‹Ž´““ööðÈ„)óÉõúHÂR,†ˆsQïón&ÆcR6JÀ“³ Viu:¥ˆÂ;Vwg€/XzR@þ#þF NSe´¦&j!œ íÍ£±ådL÷Y¶O×lX„Õ( 4ð’ÒEüÎG4ÔÜ*7)/ôl†ŽÓ­)ô1±®D *fVÊ0\¡Öa Ò&Êè…³Œ"= át0ìB àD;P8g´É›s™×tBn%ØÅ¢í=Dp•h¬7Á&Þp®Œ±àH‰ ê2lMj¶ïÒ/”0Jê„G`(XÍ|·)Ũñ2;8þ7z¸MºÿݦÃgEˆh×aõ–ýtM¹¹¡?àõë?'ã3‹êlv¾ 'ŒÉ¯»Þbæ9U@påê”T:HvÖù0Á ÛpæÌxå­N¸(]Í+=<ÉCV*L¶©´HðÁ;.©³3±ˆMJ;Ðk~àäø= Lf»W¶åvoéªäq<ëñžðžà¶-h?hº;øL.(…ZÀ*ð<‚–|ØÉˆ8©}e•Dà¯âl‹3©ó¦‰âW‰—Á×,w0uh#ÓïØO§y ÒS$8åOê±ÜÎ<É5dÅ‹LŒ0$Ü'™Çà<¥¸ï™!žƒÔxjÖqú}•}õe=—ŠxÓÔÅß’¿Xú¢.Š•TðÖì ó‡|år~ Á× ×pÊ®³ÑŸ-Àœ,“Ñ^v/h×™‰WÝ!5pïTRäéÙq ÊãxD«…Dõ &¯ùåqGÅöÀ0뙨ƒš_îü`p®…Í©:¿Î$Æ~)8I6å-JÆ ù HÜ®Ëñõz¸{4‡=ò*ËIÝJÚ¬0ilLÚ$XxÔA¾`Ú&ËÍFÛ¡¡SFH¤vâ)dë©ÜÖãÃhă—8òfù)æ‚<>°FÈ ÝNÂW…~Ú¤Rl£òíŒóá«© &õgü‚{•”–ÈŒh“¢Ïó®\Ÿ— ÖÎ>IúLê®1x[,}ÑšôȯÒm°Lk%çGƒN¾E3¤“ñ% ì5;’(nÈS¢pO³Ž®·ÉK8¡è537†ª;z„‡¼ ŸñÓ¼OS ¯³8RÇ¿u,Ä9(M˜·úû¬à*P$½É;ø`·Ë¨âëoò|´D(T«]·÷wÞ?*”‹Œ»_R’þþïhËäƒ{Õ땬ÎnÖ’`[f7ºËZåð0TÈHuÍîl”ºhá×m›vÃaß»íGÚ@ü¡by˜GÂ}ÉýŸƒ î½ã§r!Å€ÊùdV÷0ƒF¥¾-®/û÷7C'H9t¶~OPDr_`‡ºœéC§+Ò¦`3ØzïÆ..4Ü»`NÿE^}ñgk© œqõíZ ^Ñê8G%qõy %xøHgáö,ÆáÊcÄ ê ^½8!ìÑïL¢#ÆïY·Ã&"¶X^á bv>OѧÑÊ4þê¶šLú´9‡§Èµg™ò¯pe \‡£Ñ«ÖŸwçàž.hÿ¸„ôÌDÛÈš Ðý„ óû$j h2nõ5.Á$ ò3BóÏ"—ûõÒao׬ n¦‚Úæ,˜ðvœ_«SÖ2ƒ?³åÇË|Ù[ôü«‰¹<òôI±ù ®OàO¾8î¤ÙÁì×d¢JÂa¬LJDÊ•%RÞì5·)Gî'k{äÜ7H”*ï.E‚´t§Ù²? ]ñ$x+Q-¨¤!k/ˆi¡=¢²>·Ìؘc'2ú5þXŸ)®ôÄ[H޲êFu3Û«#ù¶ÿ»Ì¥‡KbITBÒyTæ½ ~¬á]8Y’{Ô\ÖåR $™J”j5½Ò"ãR…°Î»%§Ãíh…p±NV“‹]ïÂRA~´ü7mù¯Áç•àK2zLe:jyxÛFïûËî…w:¿Ã¥:úRÛÆûýeãåE:XX>£mB-ÎÉ!Éɶk›<ƒH6 O ¤uqI¾]‘Ò¹|Z»•#'¥= µ1gçyQšÌïà&;MR­väÑæ] ÉB™‘~?”‰ï9­óÀ0žuÚ9fÌŽóÒ l–}ðóYa?·£~¿|ѤH3 ¼´wÙôwTø³èd‡ƒ,u½¯Ë:8É–jacÓTëméTQ“”5+–­œRVuöœ•F¨‰üËBº-Uõ¼0‡GXì”1UŽMÉÑÖŽ@ôÆBŸÈ’Êö”µvŽwãÕÎÞ°¬Ïɨ¢jhÔ´¤†£’iîi íRÔ5ÍyÅ^ð<úI›v6>*áó:ªÖC«²¥®˜r7ݼYº°¡¦']sŸ4Aðû¨ßbÈûx”ßA%C²úscC´‰Ó {ˤµ¼ôRíËÂüÛè­ ñÛ¡0»жû|S –8¨ÓŽ Ár#Üï.DníÇ=^mømw7V1›'Ø$ïù|(¢ØSª'ïçe%x±—ø÷tCrÆ|ˆ98”vËK¦7GO!D¿wlh1Ôw¼±UR+‰Å‹u-£ç©}IábÍk±£Ö¤}#‰ÁzYÒ5×f‚L1§YFi›”öÄ,‹ÅʼìbNXøTÎoâ²Ø»µÕj0[÷r^Ö79ù-z,t¼É|aÞjw‘ÜæøÎâ^ÙyG¾Œ¹kyã0÷-Z—ÒÈ´_vv6êY“'VeÝ ë<.0÷É$ëRɈ÷'it•ºêØBfƒ—j][ms°ºïë÷V¶ì 9dÖ9Háƒâj0= –JïÖµ~Á©vÀqq›Ã\Ôbp¿ÐâÆSt¼î×7³Èòd°š±ÓŸGÑuRú\ݳA›=Ž–KÉQ<ãðæú5m}è2¨ÙK¾fM,¿MKIË•õ9p·;ŠröF”-1É—«rðž]ÿP v°» (|M ö³À‰¢Fɦ5Ì~µÖr2QÖ ›4é… ³ê·ÂZ/kÏ+lÒ0Ö°áD°š(Î=jNã—š\]ð3;´ðYí-È»h]‰­»¿Y‹^V7‡Ì½(¶$+æ+.—âsrÙ4«°ƒ’ÂÙbD¹UºÁ%e×Gšíó8;*¿o¸M&–©{C»¨Ù#íZ[Å>¢W‹º¥BÀô·ÅîÕ>sþ˜÷ Bõ»ô¼%¨xµ”ô”ŒlQI"Î]…åßæáô÷LÊw†?;0ÕF°š5Aa…k‚–½âŠ`KA̶…y³AødnhD“]â/ñwÄÐÊöÅjê‚Å»È++Ñ Ý¤ÎCÅK¼ß¼sv²ãö˜Æ;(ó²%-¸ {Ù+éå‚1ú%ï䣣@ÚdÖmì[š–6:c7Õxn6R6"ÛÝ\«HÍeÔ:Kji§çEÇ`.œzmHóß<âæº–Ÿ‡Æî.Ï‹¼N»;o–ÄЊQ…ŽušÆœ+ËiL Ø¿x8pÏûíê,$ËF Ný/ýœÔµáQ–ç•þ €G*{­ m ;}Â*¼ò`‰#6y Ê^PçC^¤ÒE%ƒÛýUÜr³·ædkè+m6üÁ–Ó8±Xð#P^NfÊäCw!ð{d¿Zåh¡ÖÓ’ôϺØ_ÀþOD¿ÙŸ´m•mˆZÍàwm-š¦ü¡åd<¶u 9XÕlÕ‚þ/ìédÔïVCDÙ©ðënÄÔ_µ÷üáéMÁA0¯âêð)>鳓ƒÀ¿ÿÄÇ“endstream endobj 112 0 obj << /Filter /FlateDecode /Length 3042 >> stream xœµZIs\·¾³ü#æø˜òÈ:Ã5"9”f¨åß»±¼‡n 0¤d¥tÐÓh4º¿nô2ïlä þåÿW·ÏŽ$_\nØâòàÝß.ò«ÛÅOÇB-8½Öbq|q¶ò…õ£XgGÇ`ýöàõp|¸d£`Œ ?\…ÏŒY-àßp~¸T†Ü©áâÖ)nÝði8ÓÖïð+Äi çÒ ×‡%7FI5¬‰aL:ö*ÃFï-,³QzÁœî1ÇÀ…{ËŒ¦ln#ÓÒ#þ‚ì>A‡½ò0/¹6HÌëta­œä‚°E"Ý ëÜŸ“ÈÖ‹p’0 ¼“AO3Ãxg8\ åu- Òqrà&i[0›¯m˜R‘8ÄÇœOIJGqËŠéôñ„˜"hA0%¸.ËÍ1ÃÛó7 Ÿ  ©Að7Ç¿H.G%nÇg€¯ö½ÖI“†™á»d3n˜× Ògi+ã°–Šk¬?ª’@¡´÷ØÂAžehÉÕ¨€a’ë#A¸š )3I©µþ œœ¤O€«á†°¡8ÜýcЂõÜVx€}|Ç-6f ¾ÙM–°Nò’pY†}ND%…FÍqfÁ¬ãáÒ 9z¸æþ¸ºàÎ<©@ ØúR¤…SÂd|8Œ•îÏA5ª “­ŸÑõ|O»Ádô¸ˆzéGåýûÝS(uÛVÁYTRNx‚§ç|R³¶éÀ)3ký#ú ÐÆ/1p§;.òôˆ)B8ÇyÅ=*+/À渚qy ’Dx°¬àÁ%ª ^ ŒÂþnl oÊ*(^° ™³S!¿xN6I¡æ÷¡XæåË"îsvøý0PÙèXÝÎ'\D™H9§dötäŠçY8â9Éù‚ŠDP]«#²Ö~ß…R$‡÷Ù™ Ó¾¬`Ë=aÖ;øJÐ!Áþ2©>c•ü°Z¯bâ„ÃQ ÑÞH&‚f®ÂxŽúIxö÷†5© |'hˆGévjXW ₸¯k¥gø’S?O<=zY¨…DÄ+¯†·Q,xA"¤Ã12 Äuâfˆ)ÒÅ ·rº¨¶ñ.fÝ#È^%r8¼ÌW‘ÜXãÁþ®}âÇG¤or‘ï¤S)PÈSqÑù4y\êðÞºþµÂ(^ÎlôG땽|‹‚›BR¼·£·¾øF¼®ƒ\á_¦ióspOlj•OÜ?„Ø·á€7I¶æ\•7P° ïcZç «Áe¼I\=Ï$ í*‰Apœ·þ¹Fø”Ãt2Õm±výLöE6Û&~ᑱaÇ7‰„ü‰ÀSòŽN€<í{“±2úØ WDX¢ PNÜK(6Ɇg‚ü¿p‚sšNˆß&¸Ñ;ÄksMv‚’Sÿ_'Uj/ö'õ@”ÓÌ™6f ÄÑ69E–•†r”¨×ÑX@ääSàxI_YœÈèãºë ´hŠçxx ÿ×)ibÉA„ ‚BƒcYJ¦„ó†¾ —i¯ÕÄä$ŠÉÜð¬¬ÿJ ú |4u³þNÞù/göXOÓûýìH ÜÁ€0 5€X,`€å¸ø7ˆßPÜ™CtÅ…ÎÁ2¯žÏ«¯Ê»Wß<€8œ 7B¸ýk¡]Nga‹ÝÏ›¶•ÓêmÙ?6·õ$˜·]#‚Û™ Î3Òêç²-åP(j&Š÷…¢­œÿ¢ÕWóê?˶ˆàï3Á÷A9 4&âÝæ´â‘kÔ¡}2Û¼mƒB&ŽßJÈ!SZ??8þËëáçöYwͳn²-¹Áâ.ÅfÞ·B«ëŽ"§»Û²ªÐ6SŽCI×Eçòˆ6‘Oè»k^îºÈ°.'Ü·­ýéd&hã·³MÃÁK“%¾Ê)ÚN¹mšáª•mßk÷óëO+ÀfŠû敯˾[Dp‚‚GÓP„È¿¶^c…u=mûq² CA¢ö¨©¡Pò¾)ôû¦¤»ÏÁþ<¯Fæ}«¶n{pjª®Ä®G#lO·-˜¢ÓŽ:–lÙáª-dÁ[¬`wå¹oËÓ|_z±´e¤ý¡ôuaÊi¦+?”ÛZ°Ê˜µcul§îÜI"÷ÍuRñ£FÏç⤴¤B¢ÑfÛdjÿ峉dr9• ©,jHŸ³çºKFÛù"¹,Ó}jÁm´Ÿ¬Û¨ÿ»›ÑgL®Bíç¸v±”t¦gö˜³ôõN·? <ÛaHZ^ß®ÁŽ x§U¿*üßàuHÌ÷€Ê9ظ:ØÀ²õ*GŒ ‘,H÷û#FôÌM¢æN?µñ4ØqÚŸ :Ì÷õD ½B„^‰¼‚—ïY¹½êl¥OaÙYg ÖÀÎÙÆ×;#º|4iàácÄÊ›´«°$±yRÇp6UÊ'¥R®æw7@%÷S¦Ð䨮¿Ä~ÁÜ( «rË×âUÕŒðpV¢p2ß÷f:Ai§õŒFÕk©„W±#—š)¦Ú;]…B*õPC/íc"Icß'ÈD߈^,~›:°ÊMä¡Cµ·ÿœiò0CBjÂæ†W§«ˆ€òø8.6+¢ad«eG @§gÑ-ÑI<7%?l:§8)œ?ž¶³j\a?Ì«§ä¸†<ÝúçÑ„õkëŸy•Ï«?´UÖL«qλ“C2ê ®MF•ùaÕ`oàÁ‡ÁÙœw>W’1H?MÙ`š+k¦µ ·– ’WzxH pðaÌ´ «ð~'yfÀ/ÞÊøs‰üfH@´r5­† "ñaŽÀÇØz'HžÑ^g×ÁuŒ÷SŠ¿º]±ž‚Q³X§yŠ3:ähU8lüˆ´RCVÇ}&Ž¿ 8:ý…Šq ÖXLH$§ñ·N-yàÑ®ô‡((•’SåýNÉ|²ZêÁj<–«þ;[÷á#ŸáÃΡL*çAwÝ«$­ÆÑ‘BVZûÐÕƒ*½â ÖZ#t5V¸…§´Ê{o«0¨{žÂª£Òzž#äÙ¥>W`±¹&©ÂÁ:ª[{cƒ ó7³§­ÿi\2Y|§çq9L¢‡KfãOoГ¼I«åqÙ÷ë4Õ¢p-0&Ù.ÎWRÎv8ÓÃÞS<ë’ÌͤyK/‘¼#¸!ÏsÊt]XÞM2iš$‹=I²HwøíÐ¥Ÿí'ÜóèMyèVÏH€þèý$¥_µ÷þœ9XGGáìí–À”ŒÂD9égÂì\ vy¾/„›oŽó,ûÒßËhcÄ4âJ?I‰éŸáÜîdY&Êb qƒö yuõ'c(~b_…>¿_2ìÁó’Yl½N”ŽàÄã¦$_9&y‰VÁYJ:÷¬“å´V,gõºÇå´î‹ˆ¨ÃÙìó†XZõy»ŠÅ›@€O°ÍÔ4 ¶¹)‡a§¼œ™Ü4Y¿mëù¦y÷Ò‡_·O;C‰áŒ…e¡•å#CÛì¼ ÏlÆyÕ—mˆª3ë%”²žçþåCÙŒß+tZî¯Ýö>iêó®­Ï³Ò¹Åv(=ù˲¯g¨ÄÕ{†jvV¶µ ʼnš§mó-‰45T4˜§UžÐ …tÛ1VÈ' LâˆbPCTQÿdòÇU9ú²1T‹°£,¦é¤L{fó‘“µ=aÕØÁç¶^¶ÉZBÕ[·û¶RIvì:‹þSÛ¬›–Y/pÑÚt w󶇦# ¿[5ý§]ÕÖh ÚGƒº±éëÑÎõ‚)´½G0×dÜbßTr‰ÑÈk4¹Õ9**ºéÇÿÝ1”Ýendstream endobj 113 0 obj << /Filter /FlateDecode /Length 3200 >> stream xœ½[YsGÞg…„‚§ž]¦©ûp?˜Å,„—Ø•åØÌŒÎFÒv„üfUuweÖdk€5<0ªÉ¬ÊãË£Žy·/z¹/Ò¿áÿÕzïÑ–û§w{bÿtïÝžÌßîÿ­Öû?& ³/e­Uû‡'{…UîûØ«}|Œ¯÷^u?.‚ê…°º»^ˆ^G%BìnK£ùîF…Îmº7‹¥è:8 ½QËÐVÎãD¡€AM³ø¨º PÈè…³™oøˆ‰ñç»Ä({%-fðì.FNßg7+a”Ôڃ뇱ëÅRyð}t0Avª6¬öúðÅžÖ®×vxˆº%–`¤ä1& ÙÀƒô¿eUƒJëR’ ¯~±”iîå0ùRšÞ'ËÿY„´‚O†P!¤Ù÷FíNÞèÒ¸ ¾Ñ`,PNºÉ:>JŸ5†©dÌ Ê…LàzG6%(E:oÒ¸ÑDÆÎ4Æy•X‘9±ý)Òì:ãÔRÉÄ}vgÄóë²Tò ¢©z’YŠcD°:v7dš[Ì z!\÷![0ZìºÈ¤ÂM¶[ ÎãXhÐ6cåOs§äE¡ÞFºŽ!åÞ«$˜?¥‘ Y€“T~Ä,  Ö™Lwˆ&;kƒ?XHeA.M13¥ø$Ä\3U¤<‰ÆLÃ|§«Ðiuzv¿.ÀŸB%uF´Å ›â”Œ#´¦Y¸ÏI¯±_±=R&:¡à.Ì€êØ}CZpY4šÆBÞ˜ÉØ†yEÂç–·écÉÓ*8˜ÅŒ ¿¢9æÏ*s`w@ÑìœÌ‚Sþù%í)€](ô6 ÊT98F=hM(6“Ò‚…äJkˆçؽBö*ùWˆ‡@nU®ähøŸcâÚ¼T$(A.¾(™òkÓã@…¿HG4§¤„á\º®Šæ>(ýuìP¿±šÎ -W Çr¥ xáÌŒŒÜ”µÁÏ¢ã¢|‚ɆÅë\g˜UòôÇÙ<ÝOë(*n™¥ŸQ½Ò¡ÆÉàa9ß‚M ÍàWˆclª\0ÛZaõeúª©²~h}Šç&q0Ì0æÇdéd Â¥6'Æl3”µÁMBÍIÒá ]mUUèùJ>Í}WbOý,Ù!žˆMP—‰35oŠ1Pø,øf",Wo—|Õ[¤’ä6âFy·+°SŠH‹,'Ié´ö“!cÓÍð­A!š$ 0“¾àS2{µJ‰cÀ†ÜNuã2SÛÇþA|gbŒ&«EžT˜J€Âa?15Æ%f‚§Îœ*øVCTcaÌùSškwž9ÍAÜ®í0¡Â)2¨Nà‘’ôègÙ}Ö›`óÜKí-A;) IU•úPóä¤éAmŠ £,­÷Yy«Ñ@‚lŠš©#z…‘)+|¶ªã@Ò§9ÁÆNä™ô½µ±Ý÷E‰ Ò¾ÝÈÜËܳµÇU×ĪrsÐl†ÙïÝ(啈d³þnû½¼l“}À_FBü^¾ñoˆñi4²³·|mÞÔÚŒ¯=P1ã › Ž›ÜDpA#0_QÙyÃPAá"[Lg`Ïj5Ý­]f†Ùíë‰Á<·dwˆa}1”`7Q~ʰ‰¤y$'VœÅJæ€ÎÎO™cÜJmêV ѹÏxñèÀ(|°¦t:5RûK¥zØ/“¿XZ©{WÒÏ XZÆ@~œ0Œ>›FëÖã ñ(Ϊû®Ž.ë(Ú¦ÜÔvµ59UG&¸œ 8Õá“iøœ_«QG¦Ñ‡£EÖmˆæ¯ê¬Ç¬4´þŒ£Ï*¿ì4:Š 5ͨ…ïyӔѕ Ës8 Ñ_¦Ñ§•í!vaƹˆÙé‚—©‰#eͺø ²Ùëü‚FŸbW£CüiÂÿ[êÄ]ì* j4Ê4íYq½åU©6n»–QA•mS ûx„ÚƒÊtÇÚ·q«iôŒñŽ ßf«Ê6ƒ:DÑv˜Ûß")'¶KFË—•©gµœ“pz‰Fsûz/ß°ò¦zÂøŠxx²Î¤ÀK,j>Z´¸¦¥¸üR/^Åõ6^ߥKGua<âf=yÊš©.~±+Ë£Ñ3xµ£‰àÛ ‹e¥Uõ£Clbb laЕ èÆú“aTèCTªæ}e¾ú ØÝñE¥ÆÀÖžW¼=*¨.YŸ’ˆbÅ%!äõ9Gí¨m¼£$bSœÄ.G!ç@O5ÇO{‡}ÕýkW€ß°£·¼ƒÎgüÊÚ“ªû9’Èݬ”ç,š"bÿŽeÚ°^½cÝ#pþdQãY"mŸÃÖDWòÔßy´Õ2´b#å˜÷J´¸ÂÖfUXÚML|ŸÙ¹m£0`¾¬LïÙòõ–uÕíè_Œ¶“*á-«Ù†H8:ãvS½eÈ­må( 2ĆQøm•ÒÜ ?Wþ3VÞ«7¼>| ]ï† §%RBãøàд„:2ŽÊÊæ§&É%E†Ñ$»]5¹uiwV¿ábJ›Õ­s'¬¾JaCŸ ÌÓà†N²Ì¤FnÏ"E:÷™Éð|Þ@©iŽKHšÒp½¨ÎÁ ‰)3Ž%ÀlfUc¬âÚ$§¯{–Éáî…S – RTíн*ѨˆÙ[“|`b¹¦¹ÕÿZÖ43uÝ!̶KÇ9\|!œÐè`×ó‹9ÎÁžµŽ­±.±¡vø¯9ÿ:ŽñoÍÕ§_ ã|æüJöÆñ¤i›× Ÿ°Pú²Ô%w¯ü¿.7¶]›vÖ¬ÁÐ^˰ø£NÊ(ð®åp–c—sH.ÁG½Ñ­Ÿ`ܯäÖÿCÆbÚ‰øv¢6Ö¨8©´h „Ýwîdkÿ„ö¨¸aÇ #'CÓ…4‰gg9‹ì(Ê’¸ôÔ|hwm€xôãÕp¦fAj*úç2ËWÝ«H,1lz—’ïo´¦ò?:€ÖÔÆå{e¾ðÐ7ÄÆáà(Ï`Ò}e(Gme©âéé’íþ™DŒÖš¼©Ö²·RÀ6+ÃDÃz®\¡{@D~nî~  Æ»`•åzÆD«¦§ex•ûR ³(] XÖ¿.b§`}Èb¥ziHß_Æ|ŸGïû—Ó›°«áÕapÍ%»o¶·Ÿ2oÁÐ{c´(y%3wsXnJó]Tû0"?‡¤×>è.¶<»Ao&Þ|ÁUžÜiÀt³É2ö,³/b•^ÈÚ[8|aÍßñ_ަ^ $wÃù°ê#„ßq-Ñcž+LJƒn9rÒmÕp%œïóðÝÿ«xÒüŽ úAIŠ­ úÉa³/~¯ËkÛ<’C¯$?e–òúÐ:ò¸¾y£¶Ä¡÷_]JßœŸóGløä…=¯›½6¬£uãþ¢ò=AèÎdîâ{†ø‹¸öâ Ÿä'”TöS yÁh|TÏžÓ\³–B'Ò;3ÎÉlº¢à;tvˆ×˜>¾eõ8nŒ£z÷ö¸ÙˆÞw°íì…G_ÅC'›'ó£ ƒ¸c:ChãyJ ÄÌzÎsZkùš¿(è«5fNÙÑ…Ù÷høiô ªºÞ÷àzI}7>t¨ÇåÎ1>ؘé0'éã¾nU±°›lr;ÅJ`ð$‘ÀH™–àýŒÈ£*]R£½"ˆÄÌ©N^vßXP,­ýÿÌ=Os°Ð¶[Ëšœ dy9\¯m?ÇÑöÍÔW¤×,g¥&Ýóº*½K?Ïø"RFÚÞˆÖúíFí¼ô!ÎÆŒ‚á5é?òxHMÈìO:JdçŸt¼™~oò1ÿzÚá´¶Îîg¶a ¼žûÑŸ§ÐÎq|Úü(C) ñZz1l(“OO>=Üû7üû/ÀÓaNendstream endobj 114 0 obj << /Filter /FlateDecode /Length 3315 >> stream xœÝ[Ûn¹}òóØxZ¼_ ìƒlˉwe[‘Æ6Þ…¡›GZ4²4rdäòÙ)’Ýd±‡Ôhv üàÅK±êÔ©"Yú<"-÷¯ûÿärkû€ÓÑìv‹Œf[Ÿ·¨ÿí¨ûïärôlêzˆ¥­•’¦·ÂP:Ò¶e#etk´_n½oÞIK¥’›†Â7·ŒÛˆñ„´ÒZ£eóëx"Œiá»ù±O¸&­µºÙqßÊÂwsèzJ¤1¢YÂ,Ôj¢ds‡ÛOñaY¥Í™û ƒ™mn¤Ú6G®UÂj®p÷Ó to~B#;ÑéÄt¢žu9ƒi´QŒ5×^b¥Ò°ñü§¹_ŒÁ(ÈŸ”pî“J ´ÙéÕ@AL<Ï"©sé~a‘TºœŒpÜãªßí¨ˆÍy6a7’‚!®†¿ˆBzÍRŹnfHƒçc¦@FbšãñÄšlý›´èÄ  ©›ßÐÌ®· LÒæ",O© ?ÍÆ¿NÜ⊷F ÝôPv”šÏÒ÷ èWåVQÍÝÐrk„M¨h…P4Lt“À•Aîãì6k©Ç+ÚìG×Ê`_¢¹EôRš‚V'Çß¹Yœ/ˆ±ê×÷í¹ÉŠVpcºµ:¼µ®GêÔ°} HæÈL´„é^¯¯dDQÀÞb~6–n"®š“»ù‘s$jZa›gc' –ZÌЫ™} ¿µà¼GW§á­Ù;·7`ðe1¿[^,®ÆAŽ¡(ÙJÂ{9ž¸mºéL#“ši¨ÒÐ/cçHÄ0°ÊSú³ôiQ÷9ÜÐ&k4jæ©Hâ7aƶ’wð‘:ÈIË+˜4•AÍmœË)]ŽÜÿÄsU˜S–™ó ŸW ƒ•'QA½Ç6êŒÀ2”ÝzÎ’ÔzÒQ†ò=;B°Ps’1\úžÀ-‰µ"£€ä˜9GÁ'%šI‡`/ øJFŒj?™KËÁú‘‰²Îç–tt$­ÒþSþ­ò«ãI{èŸRXnf¬™'ݤmœ…m )ý~ìùÔhõP(ó$^i™}Q™ûÿS°%qÄ ›i`LÆZÐUïQ’´d²“Ãkæ²5-h›AwpósÌÈU wàÇUÄ <íê>-Ð(f…<ÂæŒ‹ˆÍ#J?Cö¾4$4‹*Kûm~½]ž]-/Ô\XO®ÏP<òæÚfŽÅJÜd!.Úˆ›8“Þ %æÄGM²Gô5Fñ4ìQ0˜wRéÓ”9‹£f›1gõb±HêLRgž ªD+}Q©2QýkÛ4†R½b儼ð 3QB¹œtäæm~Ž|V (¨„‚—hÖóùâòúnyäâÒðàÕsÄÃqÐõŽœi ­Ð1´‚Û3ÖƒüH :ì\ž|+$‹|˜š¸3"84LBQ3Mñ­€?z£*ƒI;Ë—ž¬œcY¦MÑÆÈ^›÷ é8‹R1ø~(¶Š4l‚:\Ç'ƒ-†Öyv1ÈLB‡;Ôz['iØlݰ"Ö ?c(?ÓæÑhÛóv…¼Ûâþ$Á ;ö´¾Kæ¨ÃË’­ÌÐ*ÃÂZiC:-<„[Ⱦ¸¦WÖ›â¦^§a»¨ÃAìð µ>G*,­VÚ”æ­æÉ¦k6p”-ÔÉãÚÍaÕ¿Z·¹b‡³¢ó|HÃÞ¡‡±C[Tå4 {Ytöuæ§C¤ØÀü*F6ò•t’@ÃöP‡¢bwÿëæßÓ¯‹›zS6{bˆ"ÒoÔ¢$"€C”dxYë0â(’ãËβq¡Zº©½.Úú°¼¿‘¿¬ö?¤ÍoéqûEmí¯#Üï¯-žìwO;’k| ýHÙr”¼Ôý…óÖlì0˜G^ÄÖiØAÅ5JAåpê7±@™ê÷ÊØþº ?ÚpFµòÆï7v‘9‹Ü“|¬lÎ Fß‹s8¬F…åÜ£˜œ`*ü=¹‡´­Vf3?é/èתûUÑOvÓ°7Åàa/QkqµrÊ’rÁ·åÕäÊ‘©;á+íGÐÝc®´Šå×UWÕ²³yö›™;b+8 ?0UvÙY~l«ÀŒt—MQr>Ž‘ÒîŠA|[A4Iy«²¼.¦Ï4¶’uú·ªµî¤ºéýÈk¤pÿ%©dø)ß„[n* Òk8qû /ë:¥¢›eô¤•é=3~]F#àûn0ØÚ?¾Ö/æ>vÒ]|Üe²«?t•õPop€ŸÂöü–„`¢Ù9¬A‹k÷„9z;A ßqÜF<Ü ÖíØZ¹09޶Që=¢¿8 _è'ŠÂ­eGqØu¸(¥eµ›šÔ:[7,mßÇ¥;¤JÈ8FÚI­G±õ6 ÃÚ™ÇeM—7ç-¥œhµE±z6,cRØVÙÍýÝLíì»è..ø#ø=\÷g•X5¼Jw“šÿ/x-±8ºó¬áµ4l{ÝjÇe(`@§Ö«ß¼ëÒæ±-H1î°RBµrQ½2,™{±Å øÎ?ƒnš.`f {–„ÃÑâ,dl—ÐóNª‰ø4–"¼ÔfOHø”™<Ã?X#4‹!)êáE°>°Pq(zaÍ£YåÕ 6Øæà}†Q—áô+ùr¿Ri̋۽X¡–H÷ ãbÿ®Ý'¡›ìÚÛô“ }By¾fšÒ›Í½±kyò‚£ì±ëdýjî)—¸%n›aqK·ò¹ŸRie•Œ:h2Hœ˜‰÷Š]–^ÀŠªÌŸý}žê’²­¨áÁ})OX4?QgIJÀ²|wŽ@“ã&œU¹ä4« ”Z@Â>xEãÞ£¾“ËaO¹u²Féèù$+ol1Ð;òCŒ<·'ù𮆼&C&²5†ÚM—‹Ÿò2Q$Z¨Ç19Ÿ¢òp^)ÖEÅ*ýÃ¥Íê73V.CUYg¨ÎfYöîãP0GàØ”5ôœ)Ƥoü‚郜8ae„s ¶üäCXaGÉàÕƒâi¯Ù½£û2›ÌKÒ[ïQ<“^U<#'®2Ï]g4œ¹ÕJàsü¸¤÷¡j‹ÊxˆºSž¨0\ÅøÃ²Ãr-…¯·ýIª»9‘«¯P—²âûšgÞuh«ª.Èʨ çn|¤¹“zþެŠ|Ð ÆIf2TnwíeÁÇx\€Ä[ñÍQX™@Šü¯íÿ€(îË~ºrjÉ”õÀStö§ƒ’ÆÄ¢¢Ýréd­8T_¦X©Ë ³†SV`†µÒ5›cM¢r ’ºgãrÞ”©¹Ñ拆|„·DÄ»Æl!#³#\ãôå<`Ž®Å\Ë Ÿô’äÅ<ŸãÕ/åòÛ#N¥//[1HÚ6‡¶ûkÀ@–ô¬@À¯SË—†ü²¸ƒÁª#C!÷CQ¯RS3 à. ©4ó«Ó;a¨¯e. CË vBF‹ÂÔ«èÊÊÄ­rÂÜÍ/|Ñ÷7@¼¶­Q10çJIF?ú«Š¬8ëOÿ³ ¥ôÚ¢ ·%¢Ÿô²å‰úçäYÎŽÕ{ŠAX¿Åùo—&ÔÜDÐÀ­e¼  ˆdqÒ.aU^ë˜Ùö¶O EmkrÃÁ}5à±®rŠÝ %WþœGäýw§[ƒÿ`ÁÍendstream endobj 115 0 obj << /Filter /FlateDecode /Length 4204 >> stream xœÅ[IwǾ+ù<Þ3&½/ºÑ¶òÅVl‰—Äö)6 J"i™O>UݳTõtƒpä$ƒÞ»ê«¯–y$zy$ðoø¿¹~ò—WZ]Ü>GOÞ?‘é×£áßæúèËlŽ¤ï•´æèäí“ÜUùØ«#|„::¹~òC÷jµ½ˆ1úè»sü¢à‹ŽÝÛ•èµÖ[öø<6QÂ'út·9‡ç^Hå]w‹?øƒ?¼Àµ˜#)ûh­ÂµØ>'âÑZ¹^¹ŽNÎ`?@!¤´:t§ŽJ„Øý´Z›¿HÕýu41a˜Z«Ø¥~Ú gûª¤Ô®Ûæ¡3ÚtÒäfµV*ôN¸îøÍé<é-iCÛç&QÁ˜WtÌ/`ãûM>N nhàà0ËQœôš­÷*/&F×ý ZؤÖÐx/íHu–nMDë<œ×ÍJùÞHm»‡ª„3"Û!Ë£ÃíÒ”0Jjg‡!»¯óõã´Ç‘4ø5MÃyòŽæù'÷ÑႪg™Öà‡býtU=Œç5,†+.3OxCßÍ'r·BYÓÒõ œ ëI¨èùÒ…ÜÍÃ=]­u00_`-†ž©I¾k¸é#rCá2J¸½-Ùýnµ–¸®µŠ¡÷ kizcœÌë#-AB”s=ð X;ÜHðÊH˜'+—Û\Ãc'­ªûs:PP× ¶QÔLèîz•«³¸»ÞF7ÊÏМK!>7Q…çKRÂ/jYºwì?à· „…_°½Á(7Œ†O”„H:­=΃²—P$Ü(Êdò+*z÷lz2P~¤CßàÞ¦Œ 0cõ î£(}‰­ Œj=Üðv÷ö&#!@–ì®Oï¶›ÛU í¼…+rã(¨ŠÞ'mQóºÞýØ‘SŒó)þ¸š·÷T©  êÄ<Œ!->Í-ïhI‹/&áõªÙ+„—l@^b×r½ÎƒÉÐKþa0á+ðO&ðÿ"Ë”7ÂÖ45}R­»DÜChò ÛÁ…Ý:ÅZì¨u)D†e¨HuqGu ¶¯…Ç%tÏHû__•ЊÁÚ°.Jþ¹BÞ°ùh!ÈêªZ ¨2·ž‚.³¥ú×örÀ_¬›Y8&~±8¾Sª{O†Ïç!­ƒ3¦pÁ‡Üdk ¬Ô?f ÐD ]JFN¥¬â§ø[ºy@c7®E›±Ð^áýÊòigm̪¶lI¡JŒM0ºò Ž w"›‚Ëš_R™#x=ì¬ Ü„VŽòƒw´û’¤ß2ùÍ-4iáç´cš=C2{œ?†:†Oøª‚í­7¾Æ%¼’.¼j‹¨‚×ú;6äg"l]Ö|–“ÿöÖ;àO»·ç ¹¬Jo:bз» Ø]â¡2ÑA0Ï.ðt6ú¥!&ö!/Í.W?¶>›Û¼I‚‹AJnî‹¥6:“ ˜ÇpAnûf¾mÂ{˜>Þ‘^¦à†sÌ«ºÍ·GM©ÔM^Œ¦©ƒÇ t {æ(8cp°mz¾× &·;>ä$jIdµNƱPºdF˜ü°_hv¢“RQÈTV S¡²*ĉ-.êÄ,Øœ ";´oóX\Kî÷óX¢Ÿ Ëal˯†ŽÓ»Ë~`#°6îÞnúªEŸÙ)+,ÃR;_gÄ%¢D„pÂ2(ÔÅ:ÔM,#À2Te`ÌÇùÊ-p‘ìŠàâ7éjDL"5O1È7ûvuˆ[Ô 'ˆAAÈÈŇÉh5Xs í¶{™4|è{Oä÷¡Ê£™{gî܈C<ÆY‘#Â/$(1MzÜçÏèç¼n£y¾TÆ9šV÷öÈ⎳ü§PÜYï´*àY7eä,~‡¿Û$Ï3~+«Z’––$¡ÑÕ"ΚµqZ$g»³Aj&cšÉúedå~†‹-Ïôò{\ÔVK.Ëhæ€"ØW¦Ë¡†xK¯›‰P鼟ðØâÜûýjúHøJæLÒuéµ?ÆEê¤Ä•¦{"¼ë.Ÿ†æC®ßxM-ûŸ« T0ól F‰‹â$3çyjü¸äçÉ&ÞeKâÑu2›|3Îé™åiÚïlI‘¾OÞþvi½aHoõÂ';rƒICöÙ*¥=nm{Ïb• ¿e5-9wÔeûâpV›" U«ü[Æ+ïÊi•/hJòe%ìM²P¸wɇ`ùÅAˆ9þŒû‰p¿<ˆ|IØç„rŒÃ†@Å!ÃìYZÁÖö{)€WÏhU¡Õ¸Cè-0ÎÀ_LQ ¤Ÿ¹XõîP1[Òa .}ÏÈ{ƒ­òµØqó)!ø±›åÆWØfÈ+<Í‚`ˆ¥®ÎfBNˆô¸K&Éc˨ )­82pmÇŒ¬–¿O«º{¹%JAt‰L¢Whó5ò?ä(óƒðÃÊàÅ '˜s%M6›îƒJä6dMаjžÆ!ø?kKš ºÄ | h¸Ánp×¶ÐUªÙ¬ ­Ó•pÈcò;Ó4hXwÍ®Ç]óôScô&\œåaPRˆ}¼aG- üZÎè»6œ—ßì<šL)šQÃ*w4\6 /îHÀá=ÌÓd»£0'h Ío¹öTfˆWõ0ËjeiÎ SV êHL°ƒÒ}uuz¶½MY­“Ÿ— ƒS«öGLiö‡ú2 D.ˆ/CYò1@¡ÈAŸX\  ŒÒŽ›ú*ž<ãG‹‰vL$ÌrŸ$œNoóŒâ 3ÞôÞ0uèt÷"M‚‘‘Ø}E€çŠrÛEè°;_ ?íe—y^1”îÙ¥Œ&÷}(àäZ ¥ƒä:Há¡f¨H,‹«<¦ÅÏfÓÿt.u8Þµ¢@„Y´ÂÒ·yl™ú6äPUÖ’u|ò†®(T]ÌÁak ©Ýó(Û _ÖèM¡¡ÆP‰ûdÈüü·ƒ68GÉdñÙ«spÒñëhJÜE)ŵ¤æÅ¬Ðç\,÷& ¬Jåtr¦6UŒÈWºXÒ$“¯AWFòUÆ}Âü‘Zƒ|±¸Ï+c;^…Þ9îºnUl£$Yf%s¬Gj‡\¹áÍ ÄFøUÔK™`;ZbÔ6Á¶L }SZçx§™bö§W·[Á8•ø$f+SS#}tžD ZÊäLÝk©Ëü#äÇíÝå0zp¹âlΔ"Šî…õ$•ïQ;Ù+ îñšN+¼×K­ùcô&¦À£é^’ ÛÇüXBÇ®‚DUWÕ›Xò/3ã!×BòÍŠT&”\žPA&2§žGÓš‰-Õ×fÆãØ ëŠ¼`),!U ¼Æª²t–poEÅÁRÐèÙÙä°“bѦ)¤Pb¹Á&8OátfzRù·H¥úS¼.‰ÂÉJ쟬ÛÛqh=œQêõòx50Y‰¡ÑMæÐnNÜ¿¡rrHðŒ0IÛm¯»‹€’¼Øo¨ô¥|ÎUÿG|€¸EÔ¬R>@Զ͈umÔ¦>ÀÏ-HiÊ!¾S5ä³@%8?;oGcÈrêêoB…\£÷5óÂSݱ뎗qÍ侇Äô¨;^OI¡3W! ›âÂÝϤï·ºF5®ÀžFXtH^‰Ò·ëÚîø5Û¡ú»Ô (§X8tn›µc6˜D§Ë4×ýn„aÊð;H?bÒ~©ïû7ˆ5és!/1® ÙÀv(è¶(Š£J-qÁP\Ýkíaܱ(C@™7%EâÐ0wCƒ»"”—‹Õ.Câ—PKÆ`èáA¢ƒ!õª„¡Ø@’Á´£«‚Êã%Â{AEƒZË=•l²XâS^¦ÊT!Îm)§ØÎÞ.1'¼èĈìiìá:c^ù“‡ÄvççctN*— Ñ·‰ÚŸ¬Æ"®…]Çm`)~;îJŠºˆÍÂJjJj¤ˆfƒ~NÄYYËÉáP—äiO¢e¡¨x€ŸΧŒ%é@ŒH¯ÈŒƒ·êbпÀ62*¦=Ïã ¾’4* ¾\Òñx ­œR‡A••ñ{R‡);j©;µtVRõO“Á4è‘1¤2Õ[y%j‘iLQîÿýñy¹CíÑ 'ò<ûtzùòÑôNÅCs{¹¦8—¿)“Ðߊ øSÙC üÃ)ì~çm î×\ô1¸G"ßù]‘Á±6³ÞI²ð”^4¥žƒI¢ìiAÊ!©CJRru‚K£S„k E¢I= ÌA¯êO=Ë+æYRˆ¿/ßø’Q³rÈšš”•¶“Mž›’F|»¤Ÿ° EF; PtÑ冟ÛfCõâFÞ§•ƒž÷y‰û£5ÿsMÀlO}Ë2–ÍP#žÏ3¨·Ã!¡GUkD “…K@þö* ›Ó"—¼%ö¬k ¢uoÜl’ O¬WYú>DÍlÆèTVrm0ƒôv?+¤ MðS°h&øYùaµf€ø””ó7‘’à¯2Ë’þYà;‡9”ºŽ ÏQ¡Bºa®²LQ›E:ÜÞSîH|Ò—g÷œøo»Fí,·IŒq$}ã‚ÁÐ<_‚eÈ ÊDµoð˜Am?fP¾ðne:NP‡¼ÊÁfZÞzÕŒcërž—/cHLfX1e2׬ó»B½‹DérîâÍZÊH¶q›OV >÷Ûü!¦–šlwf ”—o$àKà²ÿßÛb13#q¼îÙ²GâÌ`ºßŒŽ<šúŽ.aϽ–HM+xHàØ¦¸4ƒîÓlQ7Oø Ê@HöˆnFó7y1JØ}Î eûyÔôê> stream xœµyt×ÖõaÍÐ „ ±ŒL `:¦÷`SB±©¦˜b7 ¶Ü{•‹,éH¶ä^%¹ËÜé0„PH@BRÞ»c®“õ]I@H^òåýÿúÿe`!¸wtÏ>çì³÷Õ½%DNÎk';˜þ6™,à‡tãßúã¬çÁ)VoS}ß}ÛÛ=m5ôBïîû†ŒŒzƒßØê‹üúQÝIXJ†SPpL¨¿ßÎp»Ñ^öv“gÍš1ÎÎaÒ¤Yv }Bý½<%vΞá;}=Ãɇ»uA^þ>á1v£çî ž=qbTTÔÏÀ° A¡~óíÇÙEù‡ï´[ëæéãm·$Hnçâècg>èóŸNAÁá>¡vÎAÞ>¡’¥žžE­Z(Ùä´Ù)ØmQÈâÐ%aKÃß‹X¹<ÊsEôŽ•1^αÞ.>«|Wû­Ù¹ÖÝ®õ»]6nœ8i²Ã”©Ó†MŸ1sÖìy£í·Œí=®Ï¶ñq¨^5ŒZEÍ¢†S«©ÙÔj 5‡z‡ZK¤ÖQ£¨õÔhÊ•²§6Pc¨ÔXjåH£6SNÔxÊZDM ¶P‹©‰Ôjµ”šL½G9P˨)Ôrj*µ‚šF­¤¦SÎÔ Ê…šIõ£úSoP¨7)–HEQoQ6”-5ˆLqTª'5—êMR}( 5Ÿ²¦‚¨¾¥ 'µšdêN)}7»9wkÎîí>¥{z÷§VžVWE3DÕôJúKf8s®Ç˜ =~ééÒ«g¯ÌÞ+ú é“Õç¾u¤õ•¾»úí7­ß‘þoõßÕÿêó píM7v2pèÀ¤ß¾¥µén³Ðæ°mô ÙƒÂý8xîà=Cæ Ѿ=ím#7†Ká°8Y|@ÌÛ¹ØÕÚÚohÃÐ_†åkvvØíaχ;èÇË­;CÁˆ<Œü"½€«s%›Q Ð&@(ä²8ìÓõÄ&aGPÈ %#¡Ï©Õ°já(T+Ú{7ÒžªPù¬µ¦ð0²µAÑ)3S£åO"<$ÙJB_ÉIsãJz{2,'_R­î _a„Ž—'[‘‡ÄÈ…þå£ÓçÏmrápÒß®Ý ¡ ¬cÌ@tZå‹…ü`þMqh[i¥ñà•­‘öP$Ã&†®&Û$t›¼0 b!9#==÷Æ‹lð`´Už•‘ Û"CI#g¤ÃsAA°Â,{n@žÌ°­Âu6x.VĆîö𬴕ÐÔùpjàÒK<Õ‰UP ùšlm.…vÛ éX¦MQ)!Ã’bb½Mù¨TF⨅kPiÙµ ¼D²Œ¤ô#=Úo î&º÷Px s+ÑÓ×3¥¾â®ZÚW.uâ¢$|obÜÿö¶ãç¸W¡øIÙGásoê]ü‡—àk,RÓ{ÕÙ9ô†è‡Æi®Ë6ÎÄBñhü5ë®ÈÞ+FF´Šþ¶}ÆüÙ. íÅÖ|‚´œwÐ ên¢º›BÞíbkÿfpïqCñøÍÆ"êùô;ô‡wáí¬/l/‘ >¤üöC3œ«?T{à`I´Àþ˜ïúm°|a'8‡l Ú²-Ú~Oúü–ÿŽ¿Çî=y¸à0FzBA–I¦j£!1,Q!—Ɖñ<\‹]PGzž"´¶†êLSn³If‚`ÑËÜ\ƒBy¹òÃOlðæ—‰*ÔwÆF¸óã(ÚQ‘× F[iëΑÆÎ‰FAÇ#>¬ZØi×9-4]©¦sns·Ÿ^Úà¶xv ?Ø MÅ“Ð24óŽºåƒ6Yª”¥‰SðÌ,Ìb¼n?:„ö£Õ¯ÿò£«“@^Ldê ¼­xƒMÔóãË?_B%7…Hg±–Jw¤ËBÛ¼/ƒègO‹Œÿ ¦l]™!_¦ –¹ªMswíú›6XÀç± U~IÝ¡cºf`nœ„»ã^K§Îê¢Äáñz¨e¬ù'Pß)$Qó)B~Oç6§TÍÉ šëZ)JÆaVå¢ldUM'ç™*ê²ûµ§U¸JYÁñn¢Tj!JÃC#'âåÀày"ëΤI}û?ð¡pÿ_–*úI„æ Ah rF®¤Ó&âÙb<ð×a–Jä÷[êôÑ]øÐ«mÙ¡E0¼`rüÚ…»µ€¤ªÛðñØøÖ :Vµ7бóÿÎ0+Q6 »c$áá~¾>òx`¬~Œ„¨÷Õ/>¹µÚF±uçÒ‰Œ¨©^€†ÜFnåÂÎ7P.! ÓÂáy!"K3U<¤¿Í˜&.G%¢iÉc¹IH.²´Ÿ­‚úÍÅxS. AaV]m½ÈQõ«nî <ÚÏ£?_ø÷-!,}ÚúðÓ5(³¸ÔŒ¸tf$É%z}aM]p­ÇtÉÄètN‰„"<è/hµV} ê-]{AK¦âÏo$Q Qµ“_–¨Ö— ù+¤ú»jþóP¢Jõ×ä ðÍϤ§* ÅHýý8o× K¸3¤»ÆsSPÞ‹pû‹Ð0n(ÂCI¸Öü@©žŸ^&Ø{Å¢ÛüsŸ¥FG¤¤qUÚÝÅ>~ËÖ'ÃÎæâ=AûÒ§œJ.”WE•ÅF@ãºeʲ-Í?Dpe RªY &d1b<„ŽYžF¥2”ršlP—4oí ÜËürâÌ­Ž]{RrÅ~õÁÚeZÇ"8ËÔ?@í„5§J͆L`òASF@É4¢D#?ÚÌsn ;ÅÈmÉÒ\$l¢X°¦B°™mêé¯2“üÄ+h,Âo¥†ÌūޢÒûk^½ÿóJ¼¸šS'ÿÞûHJ¿Î,’F—SãH¹.#Ô1{f™B˜eùµÛ›Äe»÷îÊ&´%„3úJdD3õ‚Ÿ.¡!åB4—É¢¡F<­Œ)Çû$g¢¾Äõ4~~òÂÞó×¹÷#ÖÓNOï¥ð¨”³ÈƒK¤‚æ\Ÿ¸-äó?³M™y×9½Q¦˜EF\ ÌzA£/Kñ rêXõ{{“21ñlÝk<ë$Ïk£2t—ýÓ*¤D·¾”è}Þ‘}YÍKééÛ½;Kvä$‡¾ ñPSß¹ƒ¡ÁüêvU†´%'ßûŒÆŠ’ff2ÄyVFzijö11âikô¯$5ä¶Z¸Á•›B›F $™µ„VNßø=´w¹Ó¡ï‘#×Áý‡Ž ßµºPjàe|¸‡¾fsËK\T‘a&Q$@DB“Å^4Þ&_0æ3s¿ =÷á¡Ö£:.kk½Ñ'†3EŸ‹OG¬£×†¥&øÀÉbnù1ÖÞq—‡ÛŽÆ£ÈÍ/hTüÔ¿× 3Øâ’–¦’b"Cß®­½¥6Fl‡XýR„”e)ñi)‘ø >jƒnÒÇòá ³øücÏÑ_䃛¸«’vK†œI=þ±—èÉp̤$P/D#g\—•ž•¦–Ùª3T2Hg‚ü μëc²«Ú¡Á²Ëb5»šÆ+™<=Œ‚<>Mˆö¢dÖØ¼¿Cgh;|${I yæ >$=›-Ç)T”¤C8Ħ$§§®˜m3ï'yVz.dÛ‚VSVg)šM,éã S‚Q<ÞF­ÈJ'.Ÿg/MtwuOö0éáfâO!©†vËÙÂ23Š¡J²sò ‹ {Û*ëïØÙ”F'¦Cjj\°iSµúì{ɦ³–M F¶‡±pÊD=òo%Ó•¹5§s9kÑRffézRNgåÔ¶geWøðù£ö®ßêé/V»²Pêü’ÊÆƒÆcÀÔý’„׿'õ óGxlWØÙ[“h€,0µ&z­.›u‚tT"€€™j‘ ü>ºQ]pŸ«3Š$Š)Dò‚Ãß‘*"“êñЗÝä“Ý !oî³5—¨tð‚fv“¼ê±&En8qg„f2¤ï` ¢ªô"âïT¶Õ  7Ï17Òb¦,®µl99²ÂdßÕÍÆ}((2Rcƒ}¶]bhÈj¨Œ.Œ‰”J|š|Ožn;v¡šßRi92Þé0ë°íw…è7^Ä&ùÂŽ°ÒØÊ ]‘ñò⣳q ÃM¦ˆ1+dS‡zçæ¦~žõø÷­gOÇ|…‹ñƒW½ðLt,ª²¸«Ç"âè°•‡'Õ:Ãdø±§¹žºg@jƒàÜGÈ飖cn´Œ=Ð ùÀ<¸|åÓšÔæÝ{Ä-­G@CXŽüVH3dRHfò’JrÊ4åe µ;7zïŽOà+v›?ù½¥ó×6øæ¥ˆ“âc$dj¬iÍ‘mKÜæ™%×¢¾¨×÷'oT¥}°ªžÛT½¦ ¤AŒNš—¢”jKóŠ˜ï¥ìxVQm¥5b±.ÏÌW02<vÄ‹£%ÒH`j0bÇ:{?GÝÒ\-./Ê…«ÀÜEV0uõ‚­ žj¼áÑçåè =¿‡ÔÃCä G‡ y•–EÔ‘'¨? iÌÔÆ64OAK÷îÓæÖp%ïN{@Zº‡ 9åæA®4ÒÒ”â4'·°° ›®2ØYË.¬uPƒÔhð£~AoÅJ<Ü}Äœu\l{ÐÄ,o–xì.ŠTËÅhl·;-ø–J£a_óûú­ëòÅ//ÒL´ðwwiÓÀkyB£D?Š^Ÿf†ÿ·—iÞ‘RЧõ蔥÷?úÎ äg£Gì÷Ÿ^€O™§Øê.ÁáQŒ/o]îþ‘]Ik1t 4%×íó!úx Ì…ƒÅñûÃOóYá}ƒr“¥.UŠe«$Á»aH¤žTf§W¥µgì ¬OΩY_ÌŒ/`‰ˆ.A²rUu æ6zðØ©[Wà¤c+ ’L+ðÔÔ±BäÈw±Õ‘A!‘Á•Ñ•õeÕåæ° !Ý‹¹é„t«~ïΣäðùpö½¸óÌдˆùî„¶Z#“kgÐõ3BäÍOc7no‡‹ÌÕÓ>C3Ëñt-§N‚Œ¼¾m7{?y$¦q»\¶œ_VàN¼Ÿp¶Ã;[JÝ›¼Ä Þ )×bRO%¥ ¯w…uÌ»ÍÜîœÀ[s"ãºr¯ÒÄ´/ýîv³ßÕªÔÙ\VŽ¡)§¸Ñë‚ÿ=R¡Ýo?AÝÎ… Þ+ö=´=ß;!´EäCÉç|‚ÿ» 0]XPdDpHyDu®²’ãÌ@ÜÈ5•Òz}òÂ5Š( çª59:¢m*bËÂBcc¶t„œ¸þÁù‡ŸlºA#“„Ú'@·<´s6ÛõTc¾?*B¹Èˆ§ZÈQèåª$gºŒ´?$Øs~ÑõOÐB~~†=f„ýh{(Ú'æ4T©sK²rÔFÐy@®_v0ß"˜ô©h 3É9“B-cA•–*ȼБ“óÑÙƒ*ƒIuF)Bˆ¦ 1u¦eä”* R Ž‰ŠŠQr˜H+>’þ˾1eÝäóŽBík}ó/úâéo1W™ ¶1 ²H²´ŠˆÎ¢U‰^µ, &ö(¨Í4[I} ²XíÕ˜D`,‹íÆÍ¿jx+râø7ÿÑR[ÓøÄ CøòÇ[Óç>5[Ä…+¥¢9¦Á–:ï´jµù»’¸¯wÌ\û‚3×Ð9Ìdùœ…<âo³¹U¥?3á¸É¬÷_»=®,‚(¢¼é xU—ÔoæKe&¤¶5¶C•Ù²,0ß—/}iYÎC {¡Ä®.³‰-"b^•i2±§__`¢¹NÏ?ÑÜLð\çð©kùÊÿ¯¯þoØñyжÒçîÂçýù;lÉQ£¾]õÂ&¹“òs} Á9eÙn›LžªHÃãº$6x:ÊLEñÊu'¡Ò ÛB›„ Á‰= Eòü˜ìÄì€B?<¼k­ žÊËz&]wªÍ×ß ÌÅðjOé—äÖõ›&>+#rLn¹ÍæKlМ®M¼Fžc’ÃYYšb“_Æ™†çëô‚¾¿wìÜÎjLn\ÍJµ©‰ò”D‡üæ(K$Ä£°MÎIÍ/ÌÌËÏâÈÆH}ç ½ í&ʹ)ä×£Y¸+»íwsÇ]§r7X‹$¾3ƒVJS0&Û±qQË‚ÂNÀ}h?a<ÓxCýœa°þ„Ý ËË¢‘ ù,Ü$Sû|RòAéåãõ&x&\7­p-™Ká=Xì»­ŒÞiºN uÓj/W ®¶”»_uúcøŒ¹5ë̘Q ]½êS‹ •Åu{Š"ÒÍ'j¾ò˜h6fï¥xûhù:‰‡8ÐÝ_NŒ³IÄywåÑ…è×N1«MBª’R9ÜÑåg%A%“h_…ÔÑ2Ò-ïÿd˜>3ޤ—ñ}Ø®>8Ã%¢¿BkõH|#_/xVƒân Ñ›üUö@Bƒ’HJduýnQ–B“N%#E¼.l‹<–ÁV}tNZ&920©'ÆídÌ¥hTª‚<®¶íHe»É¸åÄ–z«ÜˆõµAÛ#ü¼CÝÉæå‡b>Ö(´JhiMÞ¾Úè’ИïéWLîÁêû'„L{Íù~ØZ÷РSâùÑô.‘ýôh¾^ˆ¬ù_YUšJ‰³—,II1½ed™&÷Ö'Ht>¼ÕK¬‹¨«)Ô©8´vàÿÑz3,üý7wÚ*mwPÆ!ÑÀÏX¤E}[;“u\’ìˆ(Ž®®*-6žð9>•xgÌâ`\‹z;‰ž ÈvÂ×£vÍ’ŠQ_|…] §S )ÕÒcp•¹ÕøýƒSF_ÿb®Ä—°¶™€Û£}B·øÅz™'ÒÀ_½V@²½ˆ”zP§€­Àé4îŠÂ ! À[ÉÜÎ,Ë=_˜Ÿ£½A˜šA;ECñ¸`ï‘x&àÕ¶ÉàÕ¶Z ¹v}%bŽ\6?·¦³/‰ê0:Ü&DÇѯl{ÍÇ‡á æþŒ³GÏsœäŸç_ëÏå'ª”WÝÆlßü82CŸ-û ÝùåG§CóŽrxÈ61׫Ž1—®´]¾~q£“‹»ÛšÝÜ’ ,ê3·:öp¸Ø.˜¿qÎtÇów?{ÿÂ¥: ¤Íwéù‘/!廡ƒ,Næ¶*lCfC(§e+µÐÄ”ÇëBBâbCœÛ=ï£þ¨²E¨w¿<w3‘ÀlóhòŸ4w×søÍéÕàã)º¸f"Ái8ZÝVVScì€÷Á¸9/\ïÓ!ž™á3v gš½O‘ô©àþSÒÊü¶&Ü*‰  ¬Š®¨)7Ôrø~÷ÿø7bJׄì›C…3ЧlQ”éb!^ÜuO”1Ñ¥P,æïIö—ÿcÍ÷ÃY†çëõ‚ï:„è3Lg&¨cKG=[‡fò´ášƒÔ3/×44­L‘8ËÉÞÛ42Üp_p(½NØ}€{ßYNš2K£Ö¾öTMÛ€Ô,Ü”¢~ë³õžu)˜ ™"]ŠÒXñ#OãY€=oØŠçBì)µtAºF‘UxçúwǸã?V Po¢B+qfÓs‡&bš„(g²Mcž;ýÍaŒ/$²F·ÐšA>*¢J´†íÀ…®¦©rõà„¦¿±ú®„(ÚÜ[–Æ:öŸ}e¹j¾¸jm3½¼„ÿþå%¿Çr!òoâ ÚµÛ™Æ•WW<Xï ßÜòËM—<"#&ö_tï`ûÁâ"™\ûçKžÆu›½|bÂB¹¦uâéÇâî‡þ×Ð{ÿãµ®FÈ„ý_6ŸÍ>‘F.X– ñ››PœžOQ2)kÚšp¼S1 ÊË1ˆ°g>mìy©׳û }ïúÜÞ½/•ôîCQÿ[Åñçendstream endobj 117 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3997 >> stream xœW TS×Ö¾1{UÄ©W¥Ö{±E«j«ÖZEE©Ô‡A@†È@&ÁIv‚‚ 2È,“QD!8´ˆÚj­ÖªU_ëP]>­ïµT[}º/ûÿï´ízí¿Ö[ÿ:++Ó¹çœýí½¿ï;2Ʀ#“ÉXw¯Ù+Ý&X?ºICeÒ=¤ar kŸçuzÛcúΞ9̽v½=ØÉÁÎæànÀ›ýÑÔýû1r™L£uWoŽ  ŠvtÞ0ÚÑmêÔÉc'¸ºNuœ¼Aî襊 SEÓ/¡Ž>ê ÁÑñŽÎïEGo~ÏÅ%66v¼*,j¼:2ðƒÑccƒ£ƒ—DDjü=ÔáÑŽ‹UaŽÝßýæ®Ûéè¥öˆ gfÔ¬põæ9‘Qó¢cÆ>ÿkŸg¿orß_û…ö{Ðß±ÿLIgßy,èj‘”ɤuSyínýŽ(ˆ}†6ž_<¢M½Z©Ë„à╊=¦3P5p*õŸØ°°1êü¬\0™¶·ã !X®ø‚¸ÚŽS*öš:  öÂ/PÝ5u,KîJ &=ܽ‚f ì¡ Ó·Ù*Ù³9à/’KJ¶Òô5ÔÒñj f‘¹Ñ~î@yÔ ÔüÕÖ^:Þ(½n–5  \ªA5C]72yÒ2ˆ ~0Ýpò݇8@ &ò!Oö¼u>)m+ÞmO¡qs‰º,V€/7GxA–[ÐÉ, n”=¡qdÓÕq?y›÷ÀÕ1­‘g€ÃaϾÑ(Œ¿G†z¯Œ Ù gɬßâz±óχöšùÇÚ‹wþ´7BœÜW.T*+ކŠö)n¾…¥7ð ySçl^ùôEÇp¥4•ÅÐûâ&Աؗx‹Äû×Á¼ÔcØ»p)øÀŠ:¿ÒÕ@x =W­ Z;“pöÒúîdÒ ¾rÓõ–(dê¶j3têâÙÀ…‘1@½‰ýb2Äš súv8”v(TÜ® Y¹¨¸C-¤—Œ[€Ó€.Z$,Ú¢— {J€Ýàpû Ã±sìnÑo_pö²¼…ùKòáwþ”£<{n¤I0&ï„àÊ!«R´Î¥XÐ×" °ÈÎâpi‘w¦âþ[‹"Jï!°*…ÁÙ×ÙYÇmºIØá·¢¿¾ÚzêªÐ®ZÁz†…‡. •Ö ¥øsm¿·>•ó¯’¶’±nñô™™Õ'ü‘%¿§3•u!üYÕU¸iŒï)pV¶­…õÒÂAQ²¡Y}÷eŽ pamç`m,Š@ý(PÑ1 »ñ²yÑAl”l£é´Ðñ»Ê‚XW°¤›Ñ¯'™eûèÙü¬ ÄãüƒÙgÉpÒ+c²jo|M}]yS©v÷–|Áœ[¥À}Õ0UÜÀ’ dâz"wE.öâ7·´–‰Aù³Ð¦(ß åi$.2B1TrDvŠ79>dµŸùÈ÷È4ü´C°—¬¬÷œþ>å#tÈß•»ó;p°°>z=C8(AÝ[Zž¡¥d¨×‹“F;cÛ‹"Z?6C,{9ç2‹®d)åQ)IZípP²gL&h mеÝ,§Ù‘ccÎNñÚ¢œ µU)U¦ ´Yê¡ý嬹lw²^7ã²6Ú‰˜o%ÿÎüÙâ綤´¤´¸¬mùÉ­‡(»Oo£wŸ ó^â'îðå÷;¾»…þ×È@Ïu°4j£ê»&5æÁÆcI´ßï“5fé¼EVaÅ}›Ô—Ï.ܾóp6XŸ ~4B=,íÆÀx’uºtƒN$=ÉòÖÛž´öÆvÅ·ñíÃOKŠ!=Á KN#xj|é '=%ÖÙ˜šËK÷À3È%vÆUœ=þØÕ[E…ÝöÉ=«˜„YKa!½+ž|YlÎ7ôÙBbjÚÐpöÆï©h,jml™ãJ䄜f)¯’ç-&¹tõ¢&lï–?<ŠÃåX‡Ÿñø§ýãÎcdÆÞ!SÅc»QQgzt<ƒºî<°øºÔÁ£ Lç “‰‹HDlWP‡@ÖîÅ ®íÅä}²†[õ4û–áþXÄ)(²öÙÉo.µ…7¦ä‰uÅUÛKLº ꊒ9MaÜž=…¥åUñ{UJ?M¼Fð«òÏ]Iq>ú`nhž_K°¸%.>AY¹±˜Íùtøµºe¨î—‚û…%Û²’ã Údƒ˜±*T£†… ½°í701½]{•0fJe<é‰t!œœ5Õû#Ã$2M´Çó´^¤¶Ÿñ-k5Ê1ªSÎ7ojð÷ hn>hnhÈâIïô\ÌEjqkáÜËÂó’Þ¶RsŠ¥“=$;{¯Ü—cŽ´ˆw®Ð} …\›ùtGÇÝ5dp¹¥CéKcÞ¬Õèhu†Ô4A¹:²|ÕÁ1”nFÌp#²ùk “Äã+jÓŸD?Š)ÐWhv%שa%§Ô¼Ol&±Gn »!+ö•Ùñî6;FcnžŸŸ»«ºú³µ·’­öÒõ˧OÿéuŸÈªÅWÒ†¾V‘ã4ó8à—‚¼üÜ‹V}‹ÐÇÂFˆˆîæö‚*ݶÌôLªodi+)Ù?—†Œ¸ø[i¼ÎíªØ}ˆëœm” \j,$ J¶Êô%Ú…ÐÒ-|  [IY™Y[ ¹®tHmݹûaëÞìr×f—/²çÓÿpMXßý’wÞ¡5ýÀÿ8±¹f^H‚pg^ÑBxVxi|¹ÿúÞ »yü‹1Óÿÿ/¦X¯ôxY–Ö2&¡­v²|B„Y ‰ÜziŠS–*öC{ö¡]Ü‹ "*ÙÓ¿à(O_bD†u­‚½ð:´Yd§Ð½ñ5¹dÂ^¥Ði´Þ‰©Û´Ó!‘rŠ‹¢iï÷+ÊGùw_µÁör¼LÀv̱Ë-‰• åGZBËC· ‡Ž´o/îAëL÷éËÝý”" #±©i4Yñ[¤)Ö-SD쿯µ4ʾÅèe¥ÓB¼MÍŒð]à £ñÌÚç+Zr‹ žk¯óS…‡«\-£wŒ©×¿ôqäÄ¥Fø{Íçgá:wÍý "›©Þï­:˜°§né‘ÊÔ}kr„–æ¯ ¸{à–¹–Z”ˆà}€>ÅkÈÔ§ë@ ™Ü–l°Z 'Õ ë…¿±’×\tã;,c¤YŠjÃöÈx=$¦¤ãÅ[% "S²u¦‡”OöÁ×R;†*¢¤æÉeÝQ^Æþ8Îü3ÚÐE™#¨¶ZÖñR1¿o[ eö*z³»ÐÜPzü0µ‹;  Å ‡ŒTamÂê­>Ôáûæ¯)Ñšt&p)ºE$­´·–噌y;…‚ÂÆÖ;e÷¾;Œ }7.*ü4Xlßu¨¢1¢fcئø5“®OÆÞ8¾ãöCû)wɰ ¾ÛB”b×Á˜O`¯ÚFÙQä1Êq6þŸg­=QÑÒvð<F]Ud@f‚6s5Ñ{÷˜KZÏløüMÒŸLŸN ç)ÂTòӷ舎c®’Þ± áÝ ÊÈ~!DžÈÜ™d†Ëaßöã§´QÎ0m„ç”r©{Y!ñ±º"³ô#Ÿ›& \¨Ð½#Ź]Ÿ¯ÏãTŠMl[4âK%ù¹ÙßQgÍ¡§‚š­áÉ ¡ÞÞ„KsƒÕÜü6ØY]¸+'GØUL¯=­€ã Ñæ‹k\W´Ò=è > stream xœ­˜wtw¶ÇGÈ1œ(‹6aÆ)Ø,`“,I€„B1ÍÓ1–»Œ,ËÝV—FW²¬ênÙrAn¸¦Ù@ÀÔ$¡†{6lv÷½äåìû2ÞwÞOØ$Ù,'‡óòþRýÍü~ßû¹÷~ïðˆ€Ç¹ bí’ð™þ·áì <öÅìD~·ãûXß¶À‰ÄØùïOo׬ † >4½øls:=éÆ"ñ8‚ÏãI24 $iÙÒÄøY蔘©¡á³g¿ýûЙaa³C?H•&ÆDï ˆ–%ĦFËð‡”ÐHILb¬,;tÊ{ 2YÚ;3fdffNNMŸ.‘ÆÏúûÐÌDYBèšØôX©N;¿Î‚}IàEÑ^v›‡–£aÊZ‰l£NaT!‡T:ÁLÕA£¹ÁË4ÀÑ Wl.¨v¨MZ:Ýœ_ÕPf/uT\C (Oàâf™rÍiFQ¾ ²ðj Ý íæ6h…6¦Å¿ÚZU. lÒÙz»4Ö‹òA”­¦äv .¢5螇»ÌRºÙnÔ_{’L¨Nh­=Žžû+acNÄv.(g­’êU '77§ö=ŸëÕçƒô¢B{a•ÇYUi¡‚} ±€—ÝhŸ—Ç^¿ÃG%¾yÂlÿémP]¿rµ``´47qð°*A«^¢G?Ú¡‚FŸÐD4 þqcÕ‘9Nú¿kÜä'k/p<ŠÓrW„g‘ÅÑiÃê‰Ð(ÁÍÊUÑo¾7™ÐÜîOÂ]F“ËfKý êDó7j#¢^ž5õ%:˜5 é†FœG%çù¬µ¿[vê}.˜ á^â¦pÄÅuWQ0 A¯ É\­0:±ýÒÁ:4¢õ$Ýq¾¯©Ⱦ†-kv¤sÉké £¤ @ûVɽ¾^šr“ïk÷ÍšŠLv0“ 0ŒTjé»ÉQMKAÄmã8§äæ¢Óгˆwó†ÍNß¿WñÀÿ5hÕz£Ê@mã¦q£æL2löyôâš÷7ô[ºïòŸ/|$–pôö2‘ŸM',Ú)I2Bû,Q‘ÙNû^ǘœó¢Žfž/-0ƒ‰t*Á 3€Á@1Œ:S§XËývçn*\°àÇ_FÍ÷í¹’l„QÓä6øÓÓRb²”Q#©Éb²‚Eä¿ ¦?ß@eÎËNŸ äg‘ɱ×fjÁ  ×Î*ÈÔ%Ó c” #(.¢ª"ª-¼Y(¹ÔC nä ³zÔJ08¸»2+¸Ád²–“Ál˜²}~­ fêç|TŒº„E%½hì](†=P›Ÿ§ÏÊ))¯P—W5–¶÷-¶I¶Æflˆ£T;ÊÓþÏ™Xý‹W•î3Ÿ¢7Ï÷»yŸÞ@ËŽðÙ6@¯gRAO*lùnOeUÛÁ˜Îe\P¤qÕr‡’ªÌ­ÖíWÖëú a-™–þ7"~cÙ!uØ =Õšl{Z¬_»âdÂezñß[X±ÙE¥YãíÐK6Ô^ºÝã•'Û¨`t'Ý‹^4çÝè|ä`' ¿T:Õ»ú=A7 7™M8ì"‡¦Ë°¿ZÊ0X²¼ÐQ QK1 ¸}X)%£eFÇ%lr›ª·õôÞ¯=çi»§¸Üdwz禰Dî5­Ê‚©¨ÌBÙ›¾>d‰K—.Uî–¯¦“gD˜ H?²o¯»»…r‰›å{¡ ÜÞRoåÞ’“PDU^£LKeþ!+Ad†®¦úñNƒÀë ôòβïòÙ`Ö'´·9m§¬±C5fVOǘ‰ƒX›ãü «V@¶Â• Q0 ÕçúÉëPÅk5‹q·Pw—vè2w@'t3þEvÜ›œÈ’ì‚J+˜Í|ßõà M?YÕÆÜá³Yìa_fiv–4K¦2ë0ž´¢8È%woåJ¸QQùºOµ=ôœ¡ìuO­N Ç×ǃ„œôyî>ôÎAôÏŒ£Sî¾ò€ÕxyÿùÏÖ³ÿÄuÂn݇—ù™ÀRÑÉÏ$A ì4‹ý»W ™¶ º[A®gÔF=ÍLÍù0r^$ˆb!¶N{¸Èh­5MžšÜ2¹~Ì_Ü{úÏ÷oÜ­Áe†z|ÜS•ý_žD‹ñG£¹BMª1Ôd~ÊÛëV+޵¨hýŠ*ï±8Ÿò€IáŠ-ONý4£¯¡Ízºª]yFÛŸC×ÅÆ«å=ûÐkpš|’ª NÍ‹“¯KÞ¤_Û=¶ÆÒ~ÚÖTuÍîµÖ»@ñ«i¾žú±ugù¬„ ¹ ç¡K]š¬e4fJ,IÆÇÄÝcòÌCË/õô4ôvÒ®½JÏSY%Ôî^ùÖj ×37J޶ ÑÝtÃÙÞ¾ý@ž¶ÍÔ `0?n‡»ïÚÑ_J³G[ŸÏV§ÄDâ8ýÚüÚßT[QA)·F%D%o‹—'@HJ5‡Í&I*W”ejb˜ÕQ]I}ßÝÿÇ×uÔ#ÈѾÏ µüØ|v>;J(5fdA:)­Õ9œÖþCÑ+;€IgVÞBãî|SfSÛµ£Q¥¦Ö/x_âQZïÀ°h;}¤m?Xá”m&ƒ¿'†Ø÷?,+t´Yíg¬t W7n”@Pær?™°Ž=ÇÔMé8HcOðBϺs>Ṳ́2"Ò˜­²-ôh6{q»nn×MfªIbƒ6p`¹Mè¶s‚Ipjð{s–ÙP"ܵŠí¥ìH_þš{yðâO“Šè6l>÷B;t0{[W§ò"Áî°›ŠMæ¬JlBî€ï ¡Éj¶`èS®ñ5Õ„|£ÊÙ$.ÐeGA¥ÔùÓ’ZÅ©ò[¤Þ¿†ÃÒâ=E¥ôÚj¡&må¬'rxÆ:Ý@ò‡,u£98‚sHׯG9(O¸­Ò׹ꎞÄ-œÜ¿àË +=Ö%ª›-l{œ]´Õ-ìFoüÝYd·G’ʽÉt0:†1¯úŒUzÑ›Wjݼ´ëèêu>ªÇMìÆMlžÀ±ßÚ^yËqÀu´KTåY‰m(Ȭ2e¥ÇSÕÚ%öì|]Ê=Ÿ¨¡ä/pù‚,ä®dT¹+DŠèÂ-ñ ©© ªÃfi;Yï̑ɲ“IJžÛ‡°7ÕL ¹¦}uèænìm>@W„hšG¾A£¿Xr.”溞„ØÏì¶¿Wì…s;†¡kûO` Íåh"Û/rÛä}Á®¤•ÙªiQ‘´Þ°}söc!,’ëê7nv’?Óþ½BÉ ä9 e(=Ò6Üh_âHn7yÆÑÕ<Ö{Ðf£“¹ç)±óÞ‘a·«ÖápCYªªeJs’c»r¯ûÙ…›n*­ª“VÌ]ä:æzÉá&XÑI×c*àêdŸ¥eŒ:Fõ¯øÞ|4$õa€ÍVÓ/¬g”`nòàmC‘ƒ¨ÀQX¹ÇÚ`3SØ)Z=Çѳѯ°–EÇ%Jp·Êkp ?v£x@²_éÆ Iƒ Ñ8ïÝ/à.y냋\0ÅYž2ˆmÐù(£;ŸÄK¨.xRZ—«NÔHiD™äœsÒã·š¾sø¶R¸Zçn$$™Ìx÷4ÙŽYši0w@œß¹w[9»D8IðGTio±9L"›¹ ºäÙoáõl·ŠÛîÏ—!á©OyèÙ¾£ý|tÕÇVç»r²wçJ2°½u×U5PÜòA›P "WwÉ[¿ú¹~»Ã×à¡¥°¸®¡¬½ê=€ÞrÔc^%êKjÏHâ¦è~Ò3ZâžQ YŠÝÚM6ÿ!<…7òЦ³(ú ßGøæM¼Æb P¨©m+ã®|Ù¸RâF`"ƒ2Ì;ÛÅt¬Jw9³DßShgöåW‰a6çÕ°¹ »¾uš­u”Ɉ/¢S0Æ\=µ ŒÓ‚ç0³Åd*qR½§wö&ßÄcÅ€žCÏߌéÝXA«Í‹j²¬ÉŽ-eðyïæý»(¸€”ÈÑï¢-0`$q m®¡a)ݾ M¼‡'†àýåê; oÈ ‰Qá'Zß–p°ÍíÙSFUµ–]ÀÇ8èôÐâ<4èó ª‚M9+Zpƒ}=CÃ'ðg «ó?V¢þÿá±ÂÆøµñ”öÒÏfX ›Râ7þšG %6·2;;Ñï¬õŵ֚âZgÇ 4ê¡§Q¹™xI6½„«ÄJàéL¤°<~*þ ­éç}‰€úq-qc³Rä2[­Õ`õ+”Kqk™8£ÕfÖ/p^v þÆCÿÁGñ§„M2GŽ$%-%£"§®±¥¾• –×° œ(Ý\Y#àv8GzGŸ{†ð¶;h”ÛDÿ ¡3À0endstream endobj 119 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6038 >> stream xœ¥XTTW·¾ãÀkÖÁr/Q£{ÝØh*bAEEi20 eè0 í Cïm¨ÒÄÅX£âhLÆ Æ$ö£1ÆMþdÿáyg`&Ѭ÷ÞzK×Ò;÷Üsvù¾½¿}”YJ ˆ–8º¸Lž¢ÿïdÝPnXÝpa*–éÔ¯í̇Sý/¾s[Â8 ÔGˆú˜Õ³>8P·bì;ûSB@œ°D “xïö’ZÝac=yöì™ã­§Lš4ÛzÑO‰÷wkGw©—çw)yð³^+Þáí)•Yë%•Ì™8144ÔÖ}O­X²{¾ÍxëPo©—µ³g§$Äs§õ2±¿ÔÚÉ}§µÁP[Ã?KÄ{‚¥žkGñNO‰?EQö‹ü‹]—|¸T²,h¹tEðÊ»Pwû0ÙÇNž«v­Þíåì½ÖÅwßž 'MŽœ2uÚô3g˜=rΨ¹óæ]`³yÜx· ¶Û(jµŠI­¦æP£¨5Ôû”35šZK¡\¨±Ô:ʆZO}@m ÆQ©ÅÔxÊ•ZBM 6QQ¶ÔRj"µŒšD-§&S+¨•ÔTÊŽšFM§¨”#åDÍ¢úS¨”5ˆz‡b©w©Á”%eE ©!”5”2§†SÅS=)kª5—êCõ¥æST?j!å@RF…PO.‚Ü¢!= g kÌ8³8³Wæ±´9íA?9ˆ2E/™E̵ž®=oörëu²wßÞù½ë£ê}Cú¶YL±È·øW¿æþ£ú>à½gX9ÈlвAÞIxç$Û“uecÙû`°óà/,9KdùØjÛCì‡ü9ÔyhöÐï‡MV? Ÿ9<~ø©á:n87Ÿs×åYèòÌ4º¾å‚ZÝv!|¦{ÈÊ÷‡")òC1I ¾¸û^K)ò÷¯E…üOta-ª« B~| ˜™Ã º›™ûýõµùð8æ³Yõç 6㣤UÒB'”zË, '~­ü¤­P7ޱ?»›½|›gX8wîàVÒQdDzãaÜæa|‚1ta 9 Eñ°’~ÞÖrV“ïãÌáÑÛWцó"4à¡<ÑB„VxYlÇb½ÉUíò :* ã©€‡8„ݺ¶I;·„?U|þúй¾ú.îÁáA¸„è/ºWå¸{ËN§™<¦ð"`°èeùtïMžŽSxršB÷4ÔÄ»-àÇ€I/ÈRjÒX<üaÜüð äðf<‹]âøí³§_\¾zõ‹•¶ã.á;ÌÕÉ5&Ÿ¯ÔbK邽Ä1Šæ',­Ae¼3î+q Û–duz5ôõúŠ)Óû@|žÐåO!_JÃX|É;ÂSŠxÐEÕá '}€b4ºbàc-œmêüuwÙbT!–%Æ&$qÉr¹,9Ác¿[‘;b0k9¼ÛC<BÏ;O5„ ˜¨ˆÄð^ŽŒNGŒí À8÷¨'g/lŸXÈ«‚såˆiB¥åz±DSº0®ÂV,aMëCWðoEÌïOŸÁ è7ó瑋ݶÅÅóM¨è¯èhßg‚Žßu‘ìùÖVíWšÅ“Ç-_þÑÂ]NqÝñ¼«…­ðRWîõ”·ËCMÀµ™ö!Œ€)0mŒÃV<6o?ÅêäÏDÀœ!~Ó¸ïjl&.ÜÖk¡œdÊNgÍ–¢J_Æ…‰ÂÊw}¼ŒL`3¿ƒ-ÁõÃ-jmu§&£ÏÚVÚ€]»iÖ‡ ¯?þñê՛߶Ìq4ØáØÑ-KíU¯ép˜KÚ …55¢ÊRî¾Èpt˜‡-a¤l¢eHÚØ„*ʸˢE®7‡ÿˈŠÚvy€ñI÷Ý”•ÓÈßuÛoËE†ƒÛÇiÁá¦ü` ½ï_{‘‰R38Õî½ÉYˆ©,.©hq/v]á¼g­ÈpØhcT¿Åm Lbœj¤æˆNjŠ5௼ÒÂ0íqâÛ‡Pϰ·û6 üAù¦oífFoêÛå{ŒO0ÒxÞfº›œ×4P¤êféFw =H!MåvT¹¡P’±™Á³¼=ªÄûÂøFY]âÝèC ·£‘ ³ËÛËÖÞ½ú«.±09O‚bQ(?J‚÷æç ÃEÜ1ÏO“Žúäþ†û«7gñS‹Vå¢#LmCãÏÒ·¦qi¡¥ÉùF&Äh`ŽNh´PCPä^ly±‰[‡éD§€³3g>!×`{û÷['ÎxŽ)àU’2”Û¹#¼/Òû®ˆMLæ¢}}êw”nCV¸×h<ÛaÇWØ z¶)=°ì¯ºŒ3Ääkͯ剞J2à§ëÉ’ÊÞ8<ã.mÈTÆÍž!ê¬A…üCœAÛ~áýÕÙµ¯ÊQ…/ áRW9ÇI3ªâMkïC-x’ŠVaØ[‚"y,0úX=°xT9AÞFJ:«h—Ó¦E¬{U0)Á^8"Ø$í¦%Žîr±»ã膰¸ùKŸÙCÏ^¼u.ÚßÀA•èÍ÷ùôċ⟬.)çvW¡îò]¦«lC qò•I+Œ½j—¿o‡ ãª÷õ›$ªáµFP©óêæ’4ԘĢ‡Ñ¿jšô“o0ߘW¿}E "ü<Ï»•!«2Tòö1†BŸ®|{–‘8Œ"VÖš|>Ïh×öÉôÔ9Šð×´ú@.#S•ƒruDYT)¶oÛòÃýÛgžrÝö鄺õÄÞªê·`÷8íŠ5æ©tRMDk\£L›œïƒ|QRŒÌ>ty‚²ŒI¥7€Æü¸‰)_W£*þ"~šéUœ\‰¬¡´ìò+9ÍÅçTµDR(£3Äêùå+Òâ¢T޲0†LÏÑü®´j!Œø8°ß:߯CÝ?@ËÊ"+2›ÒŽ(9”¡TªÓò•(U¢}¨I²_ŒÄÈuÊš$ÇP×pûÝh9óÑ竞6^ÊØÿ)Wîs*å bªª © MËŒâí.³D%…x„y…oAɈY½½ñð…?öA_cØ*„*ø7 `ƒy]eg¢gãŒwaµ9¨ËEÝ(GÿC{úɈ”PRŸ<Î0îzÿ•á}’ðÆÒÝ D0μÙBæU$¸ GÍÿÕ¼²êooôÛ5ÓÐ#‚e–¹· ±zö‘¢þ! |ŒšK‚º°,4žáÕIºÛ`º»ütÝ—oò®=G_Îõµ¨Žû‡®{šýs[J ²ù"æOMœüÀhtS»ÜǤÝQ†vwWTbhw2Î+ôí‡A/]¨FpäÖÿ@>ñlgüa”3ÁmbER^\­-¤ZV¾}q- Ö¸==¥ T+”8-R¬ˆ“lÙœ¡T©2QSQ,•D†K=wœzÞl¶ŠëîR_ßÔKH[#Ari’<*‘ vÙ¤BÌŒ%מž®#©\«NIÍá³R”©(QåÑš‰˜Š²¢Ú+£Ñ6¼À[ÏÄOÇ@Òü¢ØˆÌ¶V(#àüDDZÑ›>Äù©iP”’[ŠˆŠ[ßEÁ¾]. ”t:ô­ÁO äu¡JQ¦Ÿ*6÷5d™&Ï×:•dg—f=&TÈ´¿ýC¹¨¦«P¬§w"EŒ<1ÌÀBýÀà9tD±Ç>'ļ7qˆû=´ùUÛr¨¢ŒwGÑÿµ*Û%»ÖmöÂ%k®?þ©­íšöøê Fè_u×åTˆº[Û“ÎÖ–J'çÅ×ÈNwúi}†’"Õe—…ºiàªËÐè¹òGÂ8Æv ‘™_Ú@?`_“™Rá¦HˆTð’5v‰ahZùyì FyŽ-x =õ9ú©g¤»2Ý:þœjIô¶†…£!µx%^€[ðQu¬„•êZháðVœÏNBÁU±Ç¢O£Çè<ú]Ë;Qx®¾à.º…c ×çoAórDóc×Ån ²ELWawñì´¯n éÅB_âõ=E߼й”ì]MÅ•ù{Ï/@‘ >Ü>…[7Ö¨~ÁmãMº`¶ñûñªÐY¨£r¤tè]% ýi`®þðýÓ%ßcšÇ~ÿ$g¡·1W´Nnö;ýSËÒõÎ[WLàßÓoŽe­°¬UÓ ­‚6-¬Õ:/çÏØ7t¶L•žžÍ—G5EïGÌ“«×V+BšøšÂ*U‘2Ó¯.U‰˜üêìú²È¦µ²­I>î¼O¥w¶1“–.žœá¹w7&NÞƒbW‰8;ÞeOè:´“™õÒ´A//݇Qx)òá¶Íºn=zá±£'Ï´¸9;ow[Ï×á—¬Íâ£ÇŠ2šTò•E¹è bA4Õmñ6¾knî,¨oŽÎàü¦ji—ÿÿ§ç[§HH4œ½ö„vð hx çÙsõgÑYæÞâû¸‡çÿï´š˜túÑ“ ¨Q\B:èv´ù—yÖDù|¹üÊþòø‚ =)Añ É;dèèù6”WÍŠŽ® *Éa0ÓÀ.ÿëôGWmÚ´mÕÄî†÷ä±â^Îé¾`«CË%’ÐP‰¤<´ºº¼¼šÃ ñ0ãì÷nô jŒ^…tG$»uú¾¤ŸÆ “qHŠÜ=†ÛÔâœåEªÐ‚SW7ïÌTðGÜK’þ%ù&¼$©Z\œ+AbfÝöUs§/9ð(‘K-J-ÙÓ95`®clP§eÉçÎm¿’p˜Œ æ×¾ûþêö£ÉéüŽÃa飫¤™;säiE>ÍèæÌ©“W¾9½cF§ K‹Þk •¬F C´`Õ©<Áê-#ÒÚG.÷áWŠºßœ„!íòÍ&‰Ÿþ·YÉ@u àR%›!›Pz™×›p}´1€Í4žmÍá7ÃyNÆ7Ÿ´Ë·šz´ÉÈ{Ÿ¾ù5‘SÌ}»nÀ̸}Ý­X¿ÑB4¼ýßko“"€ŸÓX`·nÃzûs@qð¼Vôë~%sü½ /^Üûúr×í 1¡E»[˜<_2‰€Ý}Ÿu¦ý_¡ÎZÙ fS½¼#vpŠ¢àƒ›ÑVäç/Om A2Äì1lW‰xÜ&ò îÜú~—ºòãÁAtÿ™£{³½¶pX. ï²ÿúÿi 1.^­;¨äéb…ºÝ$|YuAYdŒI%½ßHpŽwLõ´"šæÚ؈Òˆæˆ'BP|HRüV¼)qÑ©µ)…‰oÔ²4Ó:·ªC™¼’þª½\š¶Yå"5Ê©LËüBÓOÁžîö)OÏ Õ¬ûPZ¹ªTßQf©_KËçu£„º ¯ßaUYª,”ŨÃó#Cäáq‰¾ó‡ä„ä”`RS¤Î.ÎË0Ró”dìÔ7;§±`I# ‚í±Ó l ~†!`Ïá¤áÍu€¾`6W~¹~ýÊlƒÇ:`‹¹=K•Ý9í…„FûM{f0ðÁãg§Åצä>;X{}Ê|³PKB-œ·y‘Ou\±Þ¾byRrõ¯¤• ¦íÔî-þa³F$ð»R"R’PhJb4ŠbüÕdp60¦‡F×DèËVáAH`㣉B–1^Iµ¤à«Løö‘‘o« Ç7Ƨ…ðoº)!Û›“ÒA(15&ŒÁóÚû±à¿šã_Ei`¦Fð¨CHè, Œä- }år?—‹¢¤¾8=#7›«o>Zü)bnžøè£9KfnX_}\Ƨ§ge¡R¦VZsæ½%ÐúþüÌ^.|Ÿm ©;.'»’rð5T÷†‡l.X~÷ËÏ$'•ÉEI‰I‰(’ + ©©)*«<ãq| LþXI¦áÒg<{@äzÏiFntsÛΑâcÖ:†)•Ê ¤âQf[ÍYÍÝ›çVÌf·jIÔºÃA‹ö"q³qoÀ~±XŽì¸¦%œ 6Þ' ;æå¦§£Fߢ•ŠBiÇÅßîÎö ®â:ñÒqws^ •Ä—p½]õÉÔÊÜu÷Ä=gÍ›½æÄ†Rn´¯ç2´–±ùa‹Å_œÛuõýFna;wíɳç4'nÜÐlvYç¼i/›Mwøìòµ/Ïß½¯]µb©Ýš™zÂ-5d– þ¤b¾¥î?~(ü“ºú'¥Ó²ÊÊ„:o2_ïHUmÊÃ;,•±ÊÀZ´)k” 8ÀvVuÂK%G^H¾+-){[*£”{Q­~EžAÇàI‰*¾êH³gã°ÕܱP«d%÷eQêÀÀÈ0©ë~×ßÁ z ë!‹>›NJÊ Ü÷únÚoçZÕG?æð(;ÏåË[®\¸~oï4ÿ^™ŒRTAJEZR0NÎkçvÀ\ £´úkµ÷ Òÿ ³ÙtA#jlò#è[N—’¹ü”ñºú¤7ÉòeÈJŒ’S¢#ð@RÏÞúó|:Úùú4~´Ñ2<ÎÜÕøÃa:÷QlmF*dµ©jÒ Ša )…oüÌàwáK^è7 é-sps¸¹¾Ôõb›ªü}%ß=5õMUµu¾föÆoïüEº[.ž'Õü"5 ¼(„Cº³ìÅAIþ¶˜øÔH”ÈTD•fìOkÙ <¥˜; Ò—ZÅyŠ0í°-BáJló}'²Ëï‹kÉÍV l¦6¸P–ì‰Ü–™l4·‹7 ®ÕqE@}~ ÝFšÝOðÐfM>k—ïvD'Nù<—ÑàFöRìɭȹz¸.Ñ#ã¼Z·¥\pN7VÍæfåeš«eù‘\Jª<5ÅÊ­ð]¼3&!!–ÔW$ËKÈN„;ØÓ2+)[‘ƒ˜¢Ò|u¾"76‹ÇÇÁÉ\cWíwZÁƒP· ^±õ$»>ú‹Îçt¤òñm@ù<¼ÂãÙ¢&ÔÔè‡bxü½‡¤®‰Hå¿Úä{Ùü¬¬<2U—ÆfÉ3ðð´LH—gÆ#&R"ËSä&ðЂÈtç—«@2«Ò˜".M™­LCyÙVÆV4_ùêÌ¢‚„ô¨\Ì=ó†‘è9zÖ£Àúyan–¾ä&I­±sãÖÎÛ¢ñ ?¶=²ú˜ýu'¢9«2Jr:zåãûj¥|v狯 © Á¢¶æS7?9ZSÚŒö3û¥Iìb¿Ê«Nž_T_Wœ˜‘”Á–7U|‰˜í÷òK"ãyüþŒäYh#³EíßJ*¸<÷Månt¢‘œöœ´zt3ìå’çÞÇ}I4µT“•XC¤ÚôcxÂæh²?ƒGŽŽ—'¢h&>3¼²úkö§¹[ó#ú¾Cvh^ÛÙ@²ìu“®°˜öIˆ÷åÿc/òËŒÛÇÁb¹góÚFÏ’jøP s»<Ô°0ÂHd<FÒÝÄ#EÝÜòD›*Ì«¡—žpu„P§býB=7…ǧD&¢0&º(¼¸öÅI ÎøÙ¶+Ô?À§:¨!3K™–É=Ž¿~¯S¸.6iœ6ÿ±Á6&Ï‹ 7_z”Öh ›Bl7þ¥±ˆjAWh}³ ¶]›ØþÃ1ùº%9° ŸÆ²,‘¦—¶7×ËL&îÓSÓ§¶O_Šúo™Ì1Nendstream endobj 120 0 obj << /Filter /FlateDecode /Length 1544 >> stream xœWMsÛ6½ëWàVª3D±‹ïÞ’LꎧnÓD™2=ȉê8äX®Û¿ß· H‘ åC&“‘ôø¸Ào÷­ï•ѤŒü«Ÿï÷«^[R7«ûUvY“ÉÊeÎÚge}$m"Ÿ¢æ Ž;õ‡:¬Œº™JU?ÞïÕó B ¤}´ImþZukbO:;«‚õÚpT›ýªyûêâêÙzóiõr³úÿ°| m(`yGÚÉò.jå-{mc¿|Ðl {õÂ_âÿ'lèÛɬ±ªËÙè ö+ë.…ø¼z3p|HN{ qØí€VqÈÚJ( .iGRX=fr¢Ñ‚=2a9ouet8!…ÕcätôÝOy>³v<^«"–uNn2y} ©B±ºGªÈ˜äðQÀ2Gì€iÀlHšü8TE&,Xûñ½ôÈä‚ÃÂrLÌΔƒ«HÙVy°sǪȄ­íXìM„ü¤°z,@šÄ(VE&¬D„äÈg -öHaõXÄ^cǪȄ•PLròœ oÛÿ.”A“[î€1%['6âTd¬à`rÖQ’#ïq y@ kÀ8élG±zd¢hº#€¦£\ITWŒ­tŒQ¬ŠLXLQ”:bUd\¥C%ÏËöL‘Î’^.ÒyA.Ä<éåçé,”ò\ØËÕ<¯Üe±Ï…½,ã¹d—:ãbg˜u%ÎÔx¦-ÌZ€°ž´RYg6nì ЦÒͱ'Ü›8ÈÕÝãÃND<ÇjÆ›«wÍó»5Î3'ßü{{Ø­ÿÜ\‚£¶œ¨cü²Û¯±FÊ”šÇcaPÒ©¸Ö/«Í÷ïšÍšH¶Ùnw'[Ø ¥ysÿx{TWw‡¿×ß!:‹¨pžˆÞ\~9¨«íûí}·51hŒ;øçÇýö05ó:KPô(½0Ì–b)âoŸ%BÐ"v1è’=”ðëåâ A܆AŠfìÓƒ — nëDR¥å3¦&åXª´ËœD `VΠÄBu¬NÊ2ªÃ•Šš¾µÈ¡¢†\@B~µ¦"ž¼H)ëTÌ*1ê#¡ÊÒYR"MÁѱ\õcéYdǬÙ{gXÙ’4°²­Ð‚uâ“´ƒÂš½w†å3ÆAl^®0÷s ™°‹¾³,hs —ÆŽ¥¯Ÿa%“tŒ`a©óHkpaÈm•u ¥•Mß[f ´Š¢­¬5ª “$ïýWïa1\rg~ï –D#PpŠ"ákúÞV@ãÌ`9ÔT˜ÅÊhˆ¦˜÷ì½3¬Ùmt§Š2Áx¶ÓƱê{ˬq–ÓßP2N3À†‹E·I/µgÑÁ—IóØË¤i©|“nÃãj±WšÚtæB”Ï8OÍ$ðÉMÐx]†¼ÊÊø|ÖSZÜWòªe´ák£î…ÇÎ"¶¸ôú®§Ž,FÌ­Ð@H­6Êþk«*3žÂgpÎ/ŽÜ¥ƒKa1K¹îûœï´˜yVò§`2]¼“É–0hx¤ß’ÁíåxÖˆZœ,ÄK`B ƒe-R‹»Í(0…“”âS¾ÔÂXf6Õ¢zcóÔ XnI⩃dÜ¢O=% ù×$Cž(ÕŸ– krAô®ùiË1>bwër–!8ëšü° |\ãn  \®9ʘa‘®Ù­[ùó–‰8cSh~\·NƼ›×%ù Þ­[ÌR˜p¾±ÿÁW؆q%šWƒ|›]äŒß¾á GŸj®Fè3a£qÐ8\ÙhBfÇp"Ùw{÷LÍv´çCÉÇd‡ÕsŸ»Á( +küëxZL’ÃÈ ÿ›&·¸…Qx˜ý'l ÍÖMŽeô½TšŠ‡%´ h¬‚³§¬„SÅò?{1‘éendstream endobj 121 0 obj << /Filter /FlateDecode /Length 3537 >> stream xœ½Ùr·1ÏŒ?bK/YÆÚ1î\VR±£r¬r©….?(~y‰ÑR¤xÈq¾> `tÏôìëÁKlèûÄ~X‰N®Dü7üÿð|ï‹WZ®N¯÷ÄêtïÞLß®†ÿž¯¾>ˆf%e¬U«ƒ“½¼U®úЩ•ó}笟ï½^ìoD§„*¬ßÆÏBôVÁ¿õñþÆÙÉ`×'è69+Œôë÷é/)¬÷f}ˆÀnöᣔڭÏö#¼tÎh³¾€?tP‡¸Uþtðp5 ãÚËΩÐ=8ü.Ó'{½>Ç;!´wëmûœÏ ô*Ý)ÝËrÈ"CHGªo1:“'‚u½öëëÈ¿[¿!tD>…0u?ïo¬î‚ïåúßèJ|=e":/5ÒÈ<)2ÐzY*Ö‘} ˽7²O¨hŽÇR÷@¹ú4&KßH}9¤Ûß8'€f‡ReePÂ( ô:S§dOˆŽ¬3å°®R´“s²ëA(x9ŠÂÀO€T…è“Àep·„”T>¸¢ÏÒÌ1~hç[ rLù¼QVtVÊÕFšÎ'3kŽõ}°êÜÄu/à?“–ðF¹õÓýK> ÷&]|‹uîU®‡¯|>¤¶‡¬ºÀYÐR¯íÍHqÛGÄô@Òª·:.ã÷€ê¯Ö ;PV „H÷÷3jŸpÀTI–‡ãµ¥ã¥ÅÄÇclò)^Q[ĸO-]hÍ ’—¯ ‹üØ3ŸÝT ZHøþ‹¸ÜÙàú—0ÛÂv—º0pò]d’&nZ¦%œk‹Ý-á¥ÖÛ³wÑ@äèò¤÷`˜ :¢Ö÷ø±v†G¤Ü÷fÀ&k¼í3R;ÃʈÿÑê¶.ê'õÛÚF§eG ŠÔ9š¹!ê§¶ô3¬O‘,ÓÍ2Ø Àñ lˆ–íÇhý²¥³L­q½J®¥àwÒ|Ò-á7 Ó`˜ôŒö‚˜õŒñ:‰½ÍO_e{﫱2:‰œ{aêlô¨ìC£\¯Ö¯â÷ô@}’‡Žl&DÍËq›o‘N z Ýúã í¾S!uG(^n±wøy‹‘ª#ë׿ÌG¦Ãx/°1}QT;_M½9 ۬”ÈÁŸ/* p¡†ÏÒ»]¾<‚Àt}‡«nlqvER-²ç4ÞaÁ¢û±{ËWïÄéE¶S ãüŠ•¯›É !§ƒø¨Vø`äI‚¥îI\¢E©¬Ì¶1¬¾­«ÈŽŽFùSø×-ÖåmÛ7λ2À5Z}VWŸ´m—àÛVŸ4$öiþ%Á…[£Wßïüñõúu;U¢ý? èù´ü]=ö›¶„'*àÞ×mñ;´ëpþÜŒ”1¼GõØh˜#EŒ„eXQNë¾ïG‰X^}WÄŠ¶åxSi@Yì{è{ºK(1¼n«g¬tþÙŽÀ‡Æè[´|Y÷ñÚrSŽã NPÀ=$–cGÊ=’ E®yé¦/^õ´L2…ŸÖ?$»7 ̾ç,Üä¶üÏ|Õð`ãÛ‰ª py¸+¦Rß6ü„géU“àÖÞy®òöÎêÙiñ[þ°¦Ô—EçiÖÝÔ©ué©o i< å„%;º¹«öÛ@œƒh¢W1OTÍïöi(ˆ£³gªd?®’c²UãRO[ó³õg8D ë^r íT\3y? o£” çâCTI>QŽO<ÊT ±»|(œÙYô©3ÍßS"G€éù³¹|dAð=NhGÖ‘¸Z«Ðݸ#˜+žpLá ºU|6……£Cò§:ãT«u*NѼ06AuÉåìÛ3"š”&4¢60rÊ­‡Œ0ãC3Âvk[î”Jý㌮’®\1é0m½*ÚŽfCЧ@VE³=Z=Ç/4iæ"Íê²Äî+cKrG¬IÔ…4»h^ë‘RDEoLl‡hÀ[6±žØYÓ£*h¤¤» ¤™®·¹>’ʬQa'°‰Ÿ!W¶Oi“ÀyÉvEHséó·*÷›Ií!51Jµß¬ú•­ä³·JݨÖÖ'1ß³ØîÜÔÔ"^ýonQ9íSqùÔj(ŽQ1pD‡/`ü/¨&?Ã:¸d7Ⱦ¥§r§¸9›sy¼ÉÜx§hWn§±näô‡²&5Xe ¡Žc rɇ4Âk. öo|ŸRÓÝõD¢Xs^"Óìô±)öIžÜèù´n¨†æl†¼Ó÷v64@e >¹jÈ-ïã[¹5× ¨ÛæœâuÖA˜pA2mTbWäÒÆ¬Æ»Ã  Jô#Eˆ„±ƒ_CÆãG‰Ø4×L%¬Çù%ädøƒsªj(hlöIÃÜ~4:DÛ[ÿ¸ïEê#¤înë°!&lÄŒÈ ¢úó8gbsÓyeE2¹yΠ“i@ºžûÏ‹}×5ÜÙûAò2ô'FÛÓƒÏsOÚðïDsïuˆ9f°5 Y_ mqo¬ÿ?Ï-0é»|Ìx24™[ÍŒßâ1pñ´Û^àòùq¾¿«Ä@¥X†§ ðã–H…É+Æúg“ Ý9YËäÿÓ˜õSýË)ê·u•¦y%ùûª­nÚ*ñÑl‹ò {[ëw¦ìmØ·ŒåÓ–(¿kûž!S÷¡ÌeŽ¨Ïˆ»ïmð øø¡f³E’ÏþVŒ¾`}ÃÞ†\WWg³6v~sÂeÝsd´ÕW”ûãSËðQŸŸoìb™¶ñηmí^YËL<Àií㼎T€Å:è)aêRX°e‹žjqØ 2±c9gEüñl;? ÕçXT$ziø‚衬 SdRÔ,yìóêOJãñ){Ø9¯mÛMcì³¢jhfømzÉJùÉTUYU¥0†Ä ¢ÀUçžqã8~~Ù¬tfÆ@èfQX*ôù}hByHä@©È|Fž|àl©ÿHþé:iLˆä8ÎU}éð-ŒI·ìåïxÕj®wXØ?ýù²qjÓ`UûèÐ6Y·iV|ÛÖ̳2òP”šTKxÖ|ÈjiS§ë%å¿ù›ØÄ1aFÕ›¹Æ«§d†Íx$é9á,^8ø €B©‚ÀÒ³S;ø{ƒ¼bQ¼dW¯x©œÍ“ s'3ÙOÛ÷‘óü#Þsß#ç'º|¾wÍÊ„$],÷E=Ù|f F³Û,Ù6‘Ô_ykcëCÖ<ŽyI!Šã[ Õ(¾ÑX^÷Ý3ošô²Aâ!w @?³ò)óýñ“§‚ÖKÎ A‹˜/öjNg Ó,´ «Þ— KCù‘ŸYÖW@èqÊ[–œK^”—<=¼³<_ÖŽJD„ÆFÑ B݇¨LÀ»Bl#,IÁCúÂ’WË¢ªb=ǰ áÛÒp¨$á½Ï"üäÉàÆ: ålz ñ]²&ãbß—ÃâÜ!ü…w弋Aîh¯V‰ÍÔŽ–ݧQºÐ뻚 u1UÆ|ýšÇÀòÑ/p´cG*Y­ëioèÊ%VKr0³­™r_ôöpA¾–½%e†•ˆ#¼[¢qN/¨Nhõº–ä'@`µ-4S÷û\\æÓ&^uÝ\þ; X§¿‘:Ïèb¾ë‘9Ëaà¿Ë Ê;¨Ò¢Ò<ÌIÉå›?õº"Ò› æÙ8sSè©" .ÛpšÚ’#Tjâgƒ£côþ`1Xy´ÚZÊ(PcÕõXÃv gvëPÙ(åp<â5Ýפ.YâfòF³þš–—Èáx–üQá¼ãùE|7[Ú?ãç&È8YÜõæÉ„4e~ô8<Ð*¿†BgàŸ7eØ48ÝæÓ„,3×úš+´ô6J _ArªBåìämæ­)ž3 ´1‚þF—ŒÌB;Uf‹&çÏȘÊÌ¥½¤C>:x<ÍG¹É(ÑŒæ¼X†W„Úw€xéÏ~áÏŽ“åé ¿áW³‰ØT{åG~êZN§E y¶ÚÃs¿eẇ–äQØgïtšSÿ-äW¿X™#×µM¿—ûe?ˆe_ó3òÈþ`ð&CzÑãŸ-Ñ_÷Þ'xI^^äU'%Np¤zNÍËýq,¦DíaÜb¥AÐãoÇúWh<Ú†pZPÍÔ–0°l uúxFë  .‡Y“éB{>2aÐOM jʈ£dpèüHC´ó\3ظ#‡þü`ïð全x¢endstream endobj 122 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 234 >> stream xœcd`ab`ddä v 1420qôH3ýaîîþ¾÷'«,¿“ƒlJ|‹2_c7s7Ëâï9Bßù¿óðç``bd”ÖrÎÏ-(-I-RðÍOI-ÊS©,H-/ÊŠ É0000ª30d€´±Gügb*eà“ß?–}ßQ.ô=çŠÓ—Sâ¾OøÉ ZÒYWÙ]Ô]ÒWÜSÂ!|¢7¥'¥/¥§¸5}S÷Ò)}˺Wq¬f¾Ð·o¾}RØ;æWÍ*ïæàk˜þÃiÊw‡él¿Ë'²¿çÚË-ÇÅ<Íž‡“³¿U|endstream endobj 123 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 340 >> stream xœcd`ab`dddwö 641~H3þaú!ËÜÝýãÝO/VY~'Ù”ø–p¾Ænæn–µß÷ }ÏüžÁÿ=U€™‘1¿´Å9¿ ²(3=£DA#YSÁÐÒÒ\GÁÈÀÀRÁ17µ(391OÁ7±$#57±ÈÉQÎOÎL-©TаÉ())°Ò×///×KÌ-ÖË/J·ÓÔQ(Ï,ÉPJ-N-*KMQpËÏ+QðKÌMU€¸TB9çç”–¤)øæ§¤å1000103012²øÿèàûÉÕ½àûžãßgf|vÿûÕ[Ì?´¿ßýθêØõî«ïýV”ûÝð×ëþ÷‹ß ؾûþ¾Èúíý^Ñï3¿+²ç=æíáêþ[Hž¯lÁ€Yß#Ì]Àö;qûq®ëÜr\,æóy8Näá¹>•‡—Î{åendstream endobj 124 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 206 >> stream xœcd`ab`ddä v ò5420qôH3ýaîîþáþÃU–ßÉA6%¾E—¯‡‡±›‡¹›‡eéwo¡ï\‚ßÙù¿³0012Š©:çç”–¤)øæ§¤å)åç&æ¡ 2000v00”€t°ÛügtógàûÏø²ŒávÙ¡òåB¾WýðÕ¬³uìVâк¥÷ùó£ÇŸå„> stream xœåZKoG¾ û#'‡™Xœí÷t«ƒ“8ŽƒM€ØÌÉÉA"©$R4IÙÑ¿ßêž™îêa )²H ƒéRUu=¾zt‹F¬â#æÚ§‹“¿•|tµ9a£«“'<üvÔþ3]Œ¾x;âu%¸V£ÉåI#ÊGµ«ÄÈØº²LŒ&‹“÷…)Çœ ]i^¼,Y¥3–«U9–¬rÖÚb^ŽY%œsÒËÙ 0iæ¬0ÅŸð‘['…,^”c-%HóâÝÖókÆ ³Å¹gáÌp¢þ?Ì%•,ÖžI9Ç]1ƒ£œåD±ñìN×LÓ5Rs,3RËb…Õo¼(gêâX$3Rðâq¬Íx±,%¯s²x˜Þ%Wƒ{¸•m$«¶ÁOe€Óƒ>ÁÀçbÿcòÓ‰pSr4¼rÜŽ&3iã'« ·Å2D€i£Eq×j·ÎÁS£¸joÇÆ®á³ AFÕˆÃ)Z ŸÑq<ÙTÂØöè›d1Æ…ß}~j[ï¤PÊS|*…O¿Êˆ+/ÆÀNkU#çjf4˜—ºøØš£\k&cJ™šaÙ Sî Dd¹ÕÖi@–×>Àþ×ÚêÆ¿ÖÒmƒ$ˆ Ȇ1i2>w%¸laN›Z6À’N0Ûºé ˜ãy¼zgëLý8jȤh`gÓ\·^p%À§6ömR¹iG?!•× ­ü|FC§Þ[¨¯ÀÔ™LpJÚ¾‡! zQúTú|ã "?ûHZVøxd;ì;I‡R©­âu øV˺9,rPK•vGÀÖuv~´Ñ <‰\á&³muƧÈ(Ì´0U‹ª| |Òµ·dÜ™2æªØñÆ¢æ`fµôªb  ¨R9‘6Ê(’·eüˆÉU9†:„Ôéâç¾ÁZ¡Ñ­{µPÜ»'•…ëâ.¸Áos-.Úÿ܆zp†gy ü\9i4PŠgq'îþ(p*ƒÀ:¸a¯’£™(6aYàA‘ç¸çXßZq¼rÃk‰k©iPJà%`ü8¡:ô¬“àÙí³¢`þðÞ-µŠÔU»F ‘á{RÙ6Q©æYóªÖFÐÈ>G=Ï7W®²¨£Ý7ùÒ#_½ubsYrf{m§åŽÛS«<Ô‚ àÖUÆö°ßŠjí›ôX…úÍ©€O[ëÐr,L±[r-‚›’“PÊôŠÉ÷"íLwwäÇ̓ycÐ!1Èqm?à:X{noš-þ…•ßá.T P©†ác‡Mï›Ø6{¨çš»ÐŠ¿M½%èSÜh§2îëÆDç\oŽäÃ6^ó¼ûï$Þ#îÔP+j?MÄ,7‡^áúXsLJ{ÆÞ¶q¥ÈÅ¢n;/Ûf¸H¤‚*©cû_<Ümo¦%4Vç4`]jW<Š÷”N>Çm·i°ºÎ’•¦æm©a)±*÷Ãw5 ¡Ê|a²|³è-¡éß"”úŽ‹.ÏÇβ¡z``ìöZhÜŒÂÉPU½Kb râ]"êM¤¢èa½Ïr½]³ÄÙkšËÊ_ÕÎüGE>¶I¹Y4¡ê­¤ õšÎÏ÷(؈Žò×Ê yœ¨ó$Wîõx‘\;kÎ6¤~“„Ð6V“™Tl÷Œ,Övš‚Žòþâ°QŽgiò7€P¹„ÛÞ¾¶¯9_’ÐOtIaÏûmIñU§g|“"pNtKW$e²ú>RŽ£JÍ÷ÛŽá¼³|CbõœrbÀ,#õªÓº%ýšÓŽ¿ØÅ÷1IþOâwç¯ÈóéºœÒ ùœ„w†˜®ƒÁæÀhp R{W´\2sC':¡òž þã¡àcß¾xÄ—¤MwY]¤¶åéIöHÖ B2¤ŠøåQî49‘·Ð”`H×°èÁÒôå©w–ôæTb Ï;­ŸH­7¤š9Û,¦;‰ŒFãîZý…= ×ygć$÷@Ϊ)¢ÞbãÉg–8èÑ·¦Ã—Vζâ5úõ$þúmÊïs‚³‹ýÀ‚”úî¸nKí/+ŒÛøêQGõáS:Šd¶Q!Ý&êSû‡¨–¶JÚ{ÔVtNSÒYï/ƒûN"_¢º${GÆš\æÖ$lÅ=5]椙g‰­Ä€ÊŽa‚¨o©eüt ¬D_ÓCkAûœ2’6ç7D}©]tz =<áú÷}.»;<=A×´µÙ¢B´Þó%™bò~CoSx^O©–ž¯Ôi¸3’yïÙ¸ TóX¡ë&^q:ˆÿãé€J”žè+’º¦ë Îk\~hU¦.¨[â.;!½ ³GÜЩÛáŪ¡f’ËEŠÁ…šõ¼äúyy¨y5`ÎÈ\3—P(z fè7ÚÊI{‹~‹ ¯öàn–#ë{²3$kzÿšN×¢$êíkÄð22¼AÔï¨è`' îÇ{ÖÌiVV”ci¨m2Ç:|_Ðîf¥Ôœ54**¡º$C˜ÿ¡áyà2HqàfyQR%8'WW²éÓ±°çÎÝr›Á¼ñþ%z…¾Ë,ØIîS2BÞKw§}wHœÞÔ›0”>ê,¢à>Ñù¥/ ÎèÆº Åð#êPq&êבú2É gÖb*²÷F†)žÌÉ•:kòd¿:¦ñ ¥ò¢ÝO[ežö ýE/Y(€ÈHz9Êb‚¯ùd,Ñålhm'‡ÎóÈ𚤾¡c‰fç (¨{Úg î̇Þ2:¥ô[wìô轡aD^±òê%·”k”!âÁ,©½ ³M<ýmyAædàÏôsäÁµù¯$ч(B?CŒõà=qYiayžEerè|÷…?|d¸¡äŽ®è¢¸1¤?Þ wúÂÿœlzÏé1˜ôž’¥°¤½CsòX9b˜þÓß§è+ø@÷ZS ô_£1®%Ñ6–£½¼~¤¢£»s¬Â9NyÚÕóW4Üj$«jÑÿŠÈž×¨Ü,h(àçµDÅÕQlÏóÚSñš. t¯}Â_dxE#ì³_@?«í5£Òw‘d§Ç^æßÓá¤ïPdÙ`¨àþ@• ú²Ä` €wJ9±!CÌ#•¥Ãу€ÿ…œ›¨‡ A;Qñ3 uýxÂ[ÙØÝÈçCF¦çéø=̃öö¸ó3®M%9DZ^ÕÊ4zyоÃÄs¯&'¿ÂÏÿÙ˜=µendstream endobj 126 0 obj << /Filter /FlateDecode /Length 2488 >> stream xœíZKǾ¯ÿ¡ø0 Äq¿§;ˆR, Y( ,Ñ0Ù‡]r„H.MîÛ_Ÿªî™éj²f¹Jäð°d³ªº_}]=ÜßF¢–#¯öïluòÝG-GW»1º:ùíDÆoGíŸÙjôfŠ~$›ZIkFÓË“¤*GM¨ÕÈù¦öB¦«“ÏU3žH©lmeõz,j„ó²ÚlÆ-ê཯.ÆQ«‚Õz¾!+‚W®ú}<±®©›à+…2V'|õ§ñÄ{0(\õé–¬Ÿ¦”ÂIfðƒÎh£«mÜ×m«y2‚«v(l#l5Û3‹(í´ÕÕ†šßuÞ˜êD´pZÉê†Hl“„ñÉD㤯VID )Eg¼SÕú&¯ÿ:==Q¡F&JÖAúÑtÉ£ff ”7!ø0ÝÈ_(dÖ1Â:«ªeÜÊÚFV¸êƒV£CðÚ·Îhc ]F_ ¼f$Ák–wÒ;çjå|ëÝ?Æ^ÖBø² J€;wà™nj!«Y¬«R%' dÌ›jÝ È´k+€P°*œ@ /FC© tWH(£WP¼þˆ]Ýø˜”ÖÃFQ^H‡ ¨¾^ ¹» º %¥vÅêz q† lu›lƒfá,¾ƒß Þ2†…Ö)ö69Ëdò ¨ˆžz €ØÐ×´ˆ@Ò¾°¸Œ r‡®  (>/äïŠO)J%uRï>Ìû"2±4Ükª²óu²ÚX¯Rc†™‚^Bî#.*iü.Ò÷%0oZ†Z;µNñ‰½¬wñeµZsÑŸEr0- Òا7²ñà“Çv¨¿DãÑ…•:¦WAˆ¾ºÊn×@_èá¤sq"MmŒ“ÉÓcä6#tõóX ðíuBO¨Þ¡y æa+4h÷Waˆö锸ßË­ˆ2éaø Ñûa­d!‘°«þ‰Ý®D£×V®íRŒoÈnÉ3&XÏÞ'fð¦Q¨]P °‹d$Ä üEd’°)x¹Ö cJøÐ&(¾øçAßGà¯ÇH8Zk(`z¶Š$í…°Âu4â\ ÊHpm›8#^ÞÆTy $ÂÔ«éí@@¿'+È|7ÄÈ6^ùÎÁð„"V‡‹uªŸtÈÈmÈDþ!“’.J`n·/Áܦ´:žv&v±Šm9+PÑÆÜÀ¦Fµ²c§KÊÇ´õwÆâ0`K…;úá²Yä&ð§ rÿÜØjžBÒ¶8lð¡…ý’(¼‰Œ€²2÷sR•ÔIk¹¦_Òè >™An×é €‰cèœxL;â¸óÜ{ŸÓ`El¼Å>UI¿á”f¬Òü«ú• áÿ¤ñ\ÒxÁï¶$jì¼S RR‰ÞPûqÇã–Ïm¿¼ú±_ý)«=³ýž¸³äTbWIcmy$‘{Aèý±\´}5f@>€™ëç·Yïol²‡€Ò«}fäk>m3"ÀÏïGf"üL(d6þ–¼éþJVÿž"¿òȽ`Ý e¢ Åxé¦ÎwÏ;¾ÊD¢ýÖ@ù˜ù(?—ÃûÛч7/Ϲnp ûŸq½ßäq…Pì7}a ›b¾è&Ç!Áï{5rõ£7~õïq GÅ3¼#ü¹b›Œ¨ Þ—óò%7 Ðí>Ù‘Mð_ó7Ç> stream xœµU{PSé¿×`îU(®Î¦Å]½7;µ+® Ríú¨µ]qqñ¨uU „, ò !‰R^Aò8 @$!„ ‚ê‚\G6‚R]ëh×ÕiºíÔÚ]uêê>ü.óñG¯0ÛÙ>¶3iç›9sïÌùÎýý~çÜß!‰¨iI’Âä´ô¤•ÏŸ’¸—InÞ4n¾pöxéøæéó‰Yë6?7«zG,Ä &ªoÞ åÔ4éf!É „€$‹Š«’Uj“V‘'׉㥋ÄI«W¯\"þá²e«Åo(eZ…TR$N“èä2¥DÇ¿Šwª¤ ™Î$Ž_+×éÔk C‚DYœ Òæ­[´DlPèäâtY±L["˧¨Štâ­¥L<‰3a2&«”j½N¦§©reÚ"‚ f©Ôoj‹u‰I*Ë“+ •±ØNì ^%vÄ.âçÄzâmb‘B¼El"6iÄVb¯Eü‚ø#)#oN{}ÚmÁK‚QÒ¨/§§Nï– 1µz=gåÜæÄ~òIåFÜrtQ4\ù1ž¹6g«´”±?â™Ó5ÔXãá},î¡d–šTFCu8!ÌŸ!è°ù~˜Jµ¸úY”A}2zã7·6íc°ù?çÆr™æ·ÂO½Šº¯ ¸d”/B/&|†IL&,Ä/â9Ÿ.F$"?}„æ08g‹öƒ´Kׯ²ŽÂ œq¾ ööæë¾«í÷ì‡MP¹¶mê}ªÙFÐ<7¼'Œ~äç–ÈÇä»*@jüÑÖmT·äŒ:ôgOî¡yhΊG ¶½/U±Q8úï”'”ßBc#W/´õŸªsõ;ôG¿Z†…X˜š°6/·å=%[‚zðÓ±ã4„Ñõ0:ÝE¢ï]C{î T/2 õxaÙñ 1+”ÚêúXÔý€zШXÅ×$\U¥XÊ,ENaŸ³n€Aó…(i><—‹‘fúD­Fxãd²'©Ì Ha4\ ‹žMµóñ0¢® Ðk¨BôèôýÛn·Ýêf@_­)n­ln ¹»Ž?ÍC^ÉÚ)Äô¿mòYžo7 ÃÑ©Æ%—˰ÙÏ­ò‘'QÅIºÂ­ìŽÃ»½´œ±Zª*­–‚¾LÇAž˜@ºcGÒÓ’îÃìe!K›É[ÒC-)Þ•¸¢ðÚ=cõà ´Ùn7°xerØëëކ:¦¾±¹£ÞTŸÐŒý8ráwÃê£eM¬²Gî–4d4½éƒËtØ7òäYýÂ'㨩³×ݵ-<¾gü`1a´:Hþ5‚˜€-æâEHÆb”fÚÈ“^·Ñ‡þ„û(#à(Dõ]ºÅ\4í¤RÔ$EÒà_˜ØñDs÷r˜D£—ÜôPp6;è0e°óŒ ¼(ªÇÖb-TÛªlÕKqgÜÐ9›ÛÚ®¹á>ð3aJg“@1Ÿ¡ÝÔ[Û–DÜÎÔxÁ µ_çó¹ZЃJ¦ráˆõH>š…'â\eµ|Y7¸œuÍŸ£‘¸/ðH]©Ë憹 P[ëòÒÏ)?:äÞ¼ã'.£œÈïyò¨I×à„¤ÿÞlèµéi›Þ9f«÷¶7tu´ÔØíV¶íƒ @ŸÉZÉfQÛmÌ;•[䦽 £×Ý×GF†{.†gV—t趈ï;jJ§¶ªÍe9ðþ ³»C´"-+coǼ‘KÇ™sGG\Ç<$#Îòs÷ÂdÓ¯ÜK¼—‡>à…4Úµv#”@>¦¨¾ku¨À •¶ššrÞÚãp4ªiâ;æ†Ú“òdóò¨¡ôSw.@}·-šÄe♚”-PÚZS ÝéñA ÝRÞlÐW”𤧋†.=db¹×ÌúðV€ì½Š$7è)ú\dT\Õnöº»kO|¸ñºW’ñ4÷Á²§è…DqÙk««íö2 «Y“nÈ:uÝŠGKnŒõ_2f„Ø©²úf´aÒЪy'ÊE.ß\ýtן±ð••¯âYø»…¢¿js[µÝVnaô3{øyÊîPüG;šEn´à·Çà:œMuà¨ç½ÅÙ-èÀàý¤ºBÛѾ±s$@o‰ZK{}çú•ÃæeÛuì´§\¼ÕY-ö* ¢Ë«¼Í oki°@*7jTŒòhž§€Ÿ‡i«Ò{ó<•¬R9P¬¯dOYŽöÒÉw#!šöxø6š‡ãa.5La]Iœ€Fµ†èOJEËÁ îÝL |XΆñ—¢…)‘‘ž–îŸílñðdè»H )»²_o¤:õ/ËgµtS~9cGHøM+þ_nää?} Í¿K> DnB2µêôF“N0¶‡Zí žwˆ4ÔhÃ?¹â/¡:à4´OÜn«?ÉrBj²æxô©É‚KÇ7‹¾{'gðñŒ{¿±†Ÿ‹1¾Šã|ÕpôÆýv™»°üîöÀNX 9[K¥ôÿo1ÿW2òs뛪ÁçâìF*<3ÍÌŒ2©bfø=11oÌwâoœŸ‡éendstream endobj 128 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 415 >> stream xœ];OÂP…ï…¢ÅúÀWaqqþÁ„dp2$ C)È#¥È#/ðJÍ•8´IÜMù þ‡6ÑDëjNNr¾³|Ìi„Ðàs{=N‡Ãñve[£ìhRÜÊéü.XrìO*vSÑQ‹Œs’bY‘7Ìòê’l^Z×÷œ‡±(“J†6O,JÐ6o, ÿ uŸ]œGÉîXõß?ÐsL?ðó¼¦WfEN¼„&QùxƒœÉW²¸#bX*v¹‹ˆ\‘eÓ£ªP±>e¥Â8;.mÖõt‰Î2…`Ö’¯dª(M°}öv8tûÔTz§"A¾ûó^ÿVŽçª©nnùöµ+9«Mêjqíáiü1>eúå7Dù&ð¼0JuØŽ5ˆžÆto³©÷ÆX⟰eعï !ø<Ëqå"f"ñpœ g·îšXu¶&͇֤Ñn´Q›è—ñ%U×å \NÕúÿÑ–)}¯¸°L7xQ÷åGú…çEjA[ œ ü‘¢ª²endstream endobj 129 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 387 >> stream xœcd`ab`ddä v ò5070qôH3ýaîîþQý#U–ßÉA6%¾E“¯‡‡±›‡¹›‡eé÷ïBßÅ¿‹ð``fdS5tÎÏ-(-I-RðÍOI-ÊSÊÏMÌCL,²3‹³sK2µ;˜Ùoÿgl¸ÌÀ÷ŸÉÒáHÙ§r¡ïNo~ð}á÷¢‰ËW&.kšØ8¥¾›£ª¶º²pYÛÜù­•Ûª·T$U$T'VV¶´urTάž3é’ésäV-X½`Ղº®º&C‰®¦ŽÆîFŽÊµófÍš:§WNøÂªcû¤¶æoÍÝZ0¥ujÓônŽ93gÏ]Z0¡r’¼ðƒÄ¹ ³“æm™·möÖ¹s'-›Ð½”cníìªò¢ú* æœ²ì²œ2áçÙ/Õ9§fjM7GE]mec_cO“üÞº¾ºî:I¾ò?œf}Ï빘íwÜö÷\{¹å¸˜§Ùóp20¨‚Ëendstream endobj 130 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2082 >> stream xœ­TiTY® J±%]ƒK[̸ ƒâÒ¨§]iqC\Ú%ˆ€C"›@D–›¢à†@ ŠÒ€í2Ž3Œí¸Ì±méé=slõ¨ô óúÇhÛžãésÎü©WõÞ­w¿û}ß½"Ê݉DžÁák§¾ºÆ‰\»¹Æ‹D \ˆôO\²h|Œ,w«7x‰ÁËýÄÇÃò}ðÐ(ÔŽDù‡”X$R%ç«“Ò4ñ±qZéäè)ÒÀ¹sƒü¥3¦OŸ+]¬Thâ£å*i¸\§PʵÂG¢4B¯Ð¦I'§Õ&Í›6-%%%@®LPkbLñ—¦Äkã¤kÉ ÍnEŒ4T­ÒJWÊ• é΀¡g°Z™¤Ó*4ÒpuŒB£¢(j”:)Y«“G+bãâ•óPÔjj µŽŠ¤ÖSK¨Ï¨P*ŒZF-§VPáÔJj5Iù PîTõQƒè™Ûj·gâõâ‹îM3t+ L4s¦œƒ`æ0”TòÏé (ÕçBvg(Ø›S`PØ¢`0Ä[wL]¯ã%ß5î²å}•)À­·â¤*T;pN•èe/޵Šq±Ëʼn2Wh'à†G™,—`m‹A_;»^7Æ6sQ†<%d1»Ž§Øêª*þ²°m5PäCNòŠ|ôt228¶½ÊÊö‚!§° ¯S,Ïތĵ~æœÍ¿N£¬Æ%¡©rz4Cyܱ„ÝS¾±žæEÓœÝ,6zZŠ úiä¡Ó˜i~d/¤ûj*Òè}Å•eûÌù9…yû ¹8¿@Ø › ºAÛª¼=Ð2H8‰ªÁµW¾©A¨ñ±u¥ÜÆ%·›»dW|%?èQƒ‹ØYð¬¦ÞÔxÔÊ8Tc;Ì·0I›dLØ£á÷ekÕтᘊ¡¦¢ªM}ÚP ÌãÞÞ»­­š¾åDKÉqÁ²%PdÔäë!›I?œ}¬¬²´¦"»1&E–%çäMò"0¡¡ d…u7Ÿµ'm'Ä1’ +)«Ò¶C4ützãð—÷š3;7Ú¸õ¶5°4°rM Å»ÐÈ éeÚÙÝ~²õlÕ³Ýaväg›¦¬vÃ5Æ‚;œ¢×î£ÛöͰh6ušë¡º O¼;,VÐ/o^ºq½´…4(ÈÜ-[±1/˜àU}(FñÕ¾[2"ZøÃ©`€4fˆˆ×,t¿O‚·Îâ ®@Uù~‹'‰:D;†÷~À wªòf9èåÕ[å5‚¢þ ²"„endstream endobj 131 0 obj << /Filter /FlateDecode /Length 2870 >> stream xœÅZYo¹~WþÄ@O3YO‡÷dx¬W^Hìy1¼†!ëð:ÑáÕÈZÄ¿>E²›¬b³§5ŽÃ±Ébñc_U÷o Öñ ÿúÿO.þôRòŇí[|8øí€Ç§‹þ¿“ËŘ¡Ä‚óÎk-›óƒ´”Ã$ÑæÆÙÎ1xtyðfù—ÕZsÙ™å«ÕšÁc&Yþ´bâBóe‡Foóèü’Þp+—Ûæ„_–hø<,ënÑ„§y¾̣ÏÑãù1õ,>){ý²*3ÞnžHÖY¡kn;)œ_lNˆM™ƒž¡C—Q8µdNvÚ//ʺ« §ê ËçƒÊmª|^—Eµ¨°þyyü©<^#©wYêq™p&|n!à°Î@¨N)ÃoŠޤ<ÊRÞ®ÖB[xž'-×e@kL^ÃШCÖ•—ÉæLØ•©hËš›Áo°{ Re†Fë&Ô!¨E°´]lžlþHà3p‰\²y3ÞÊç :օê2W—Ÿ-ëò2<Êó('˹ÿÅ=`!Š)£ÖBvŠ9±X Óy«“)^Çs>ø¤„GŽ™åï0긖":cÜ%U Ö{åÕò×4ŠĽeF‡Q˜Ï™vN_S@øòñQ”hœ6Öa¾çÌ%=i,-jªŽy!’ž9ˆ>F'>B¡¨ŒBdlÍ(ú >)±µŠf9Šì»ïÛ^Enˆq•ëveiZ‰&&7RA2>¨ð?‚ã)ÝäÑ—Óq~odðÅý‘±Íg¨2{s‚s)N3 çÒ¼ì%F|5Öëk‘ñs‘Å4—ÉÈüðmMf4T+}Ø&ª%Õ`&2š>ä<† ”…p¦ú¼Ãäˆ9ôÅÌ/à‰¡~r.M`% W æ%w4ÆÞ­ •r8c”¡ãÎÒÛ¤]Ðö×i¶†ÑÏxÏ-Rkèu2hǘæ!héÆo Þõ-M2$#]*æµ±ð× šÅ™”¾WZ0%¸ÄyóVà‡”Ð9åHGø/Ë]_#ÜN›lñ¢å“”N6\¹e *i-†)…Æ''S PQQeÀÝi8ý'¾ùh`nÞb°OÓ¥qK–ÿ@oÖxøj,×9N$Z§Ã  ¸Á ’ìHl\Œ¶‘¡ 8±ò²§¨u…sãF‹çZ)gÉ®èäȉ­žV|@H摽 Ã2ÔK=hýôbÜ-ÇÁÊÄm9ĉ`aA¢÷äF@H`©Ì›Z­@j”ô.*?RwÛÀ¯äVÑ€à]“°Îêª04™˜pÒoÂ+&á}°N·µ'9!ÿ“ˆFŠ…Ìí¬¡ˆúhϱÎbýË,ÜÕiïF¾ ÄWeüvÕŒhï'µD÷Ï)8kAUK¾X+êª{X’p:8Y×OZØH¦TŠyã17V·icŸ˜wF»Ñ‚°ŽÂ)@Tîj9 Ú_W~œ±Bàü'3ä¤ÏqÍyÆrðÆWIŸPBÔw=Á!?8÷­Èu–ëìA4I#“N©&vš¦Â‡e䋿÷p'‚-4¢ë¦dS+¢çt‚æ@¦ÑÌ GG ?!$וI 3_µyoçrFW™hE—~±ûžTè¿y߸§šT€\,’Ž_§qMêÈ ç>Ks3S3g`+I¥°Žõ æCy€%^Ö©ªw¼ÔØ ·½Š|Gµ&p0Ä^Çu{¬^çÍgЯ'بŒ8%§ƒ[†(¨‹å㊅Žùܨ“ßÞý%ËV5®u#LÑRÀÕ8Ê×I±‰®§‘*‚S'ÿQQµÞ”Ÿ´gf­ Ô„DÙ òãÆ )HÇA¾ð…{¸cg\" ÆÄfËqÚVWIŒF»0#ÐìŠ4…aÞûþd=ZÊʪ Eä%èâ9 ‹yÛи³¶žY¬¥0D$‚ò=q‰¤°K‡6 ¥ ²Ã[M(‡Ž‰UÑ^âÅ bн{(ôäê¦`Aòs,D¥í´%Éu°à³tLÁrˆLöÛº\Cö¾¦¾´6¡©`Ûóf䀣b`G¤×'¥ˆ Ô¦IµâR{÷¡eŸ -›êdâ!xAÌÇKœ1qÿFõT€I7;~R‰15Û&Dó”`ñdÛè¯ hbׄ~‰À¥`{—P¡VÍØm:Ðcb–(¥UBغj‹´:gµs¤Ü2ê"¡±àâéœr|°^&;©xiL®Q7® ,sW_7Ý‘÷kr°.kSóˆkãACì)¿Äè$¤25²ÁL”í#z¯í˜bZç¶NøYñŒì(}b/ ÕW}§nž¦ˆa´AÀJïbt²Â*ŽôÛ ¥¶ðÛ´»ƒ$ 몶¡žgfúšÆÕª ‰²2Kœõ£))攈IŸÓ z˜©"~€ºr—»•íMÇ«=KÇeRü6A_ü‚Æ•û¥4@ým”ò0Ü/ø†žáÐUô…*®€Ù€ÛIjÒØr/ÁD½á†ø+À Ã­@þgE¬ ©Ë\>¬5¨¿Çtr²Šý?󯄃ãš4]®Ó°É‡ö[œXëÃÒðvÎ:Å-Ͳ7ƒpÙ|‡£™â¤OtŸ”“eVœ+†¯ZÁ#YÈŽ²:Óœñ‹±HØw¼A:%Íc«éRcÊŽÿw5BÓôG{èUb¼G‹sèÜåçqÅß•çŸ y_‹Ú½Å[rôÖ»ìËæºGe³C\)à/£ò²òéÓ!}0õuîÁnWÍkiØ^ îЄò4öýªÑbm+^+ J Q}œ6ÿJðc–îÚëã:¾çÙkÝwyÂS*MqKute?¢å&ôQÑwhBùjáëßÛíP¸Œr$,ïvDÞñÎ_Ï<û‘ÅÀ³ëöxöÛ†xîË̯ØÏ\>@ý¹¬{=ðìº}þ Íø9¯{ý c…Ëèë=^—¨[QCféo›ÁöYùù¤‚ÜèÑ š_ܶ‘ 0›@ &´/ª)–B«½«noâEîý ƒggÀCv‡cÃÚÂ2–`¼ÿ²iDƒáRD‹±¢8Îf½C“—%»U¸ØXKpg÷¸©0ãoZù ̯ÚîýbæÙeûÀüª^<$̯š1áÅÃÁ¬g`>-?Û4ï˜:Qroy›b¦YHÖ»=èÃaþ¬ú›5[Îïò„¯ä*¡dÓJÔ*ÐvüèS*4æ2ídó ¸ýñxÛþÇ9ªíqËÞ¦tÈ»½Ûƒ½D2@"ÄänMÃÁûä.ùA¼fŠî•WcÃÙŽ [ÄžF_„p¥§vPWúÎ9ÛóKWýmsðø÷@ñÇAendstream endobj 132 0 obj << /Filter /FlateDecode /Length 2729 >> stream xœÅ[msÛ6þ®_¡É'êZ±Ä+ÌÍÍ\swNœú¦õ%Óv:‰í¸žÚIj;Éôß@‰À.¹+Š• -^vŸ‹ùç¼*żŠ›Ï‹»Ùw¯”˜_?ÌTéÝüˬšŸÌj/çÖ{S7¿›i'\Y‹Tr;;V׳?g¢ij¾ù¸¸›¿ŠÍé¹¥7FÎWïfë~ÄÜ™RÔ.´â|)u=_ÝÍ~.Î˪”U%¤/>,–Ò–Æ+[\ÆâJTÆ9]\›ÛÅRo°Á»ÅR„ÏRÊð{(®d¥¥P¡ÁªT^VÎ×ùë±jí®eqÍ…tÞ„Þµ¨J'о=>[,½#®t¯<}ÿàk[ ßµ =9Æu,ª*üÐo= ám¥u´‰åÍпÄÑ[ü>ëà”© f¿®Ngÿ^Í~Zã<+…†¸mJ"n{bVë0¹Æì4ô¬­•1Þ2ÇÕÄñتRÎeŽk•-ªu(wÅ2+ïe[‹ym]´HmØX\i¥eár%Xs¹iÜ™P3 ²Û«–^{h¢bµU¥•ÐÔ=v­Á׊fÜ›Rºñy Šiš‡hÊÀ©Ø`5&°…$uY#dž›k-"³DÀ^[1_ý0[ým "á7M-'…‰ÜTF»HY¹-ÒDomè–¡Ôø e•ýÁ• †¹JÅEÀ¸äâ:#X°7䀜$YárŸšñG P5¤0~RXz¶•`Ô´¢ÂI ‚PªTr4öKÜ|öˆ.\phúÑ\ø: B2íYÄœ‰í¼&üˆ´pÒнjе0¦V1[ÈPV"gëÿg²Ð Bäè<É ‘ëÙ:q²à_/öN„ó 4€6¥B¼A‰¬øÏBo­´p柴46vzpû¦™Óƒ\ùÙ·Îá7tÌý0Àʾwz0¹ÔÓ¼æÚƒX¨=Óƒ¡Iîqzw¤–ÖC ÑèˆÎ(•%Š1©AÒþTÛZî­»’Žàœp)et„Þ[Gˆt¼ÙSG0äàœ—¨‘(ÖY˺Tã)±_Âàæ7ˆ¾ä„CÓ‘æ&ÙÁ ÃÑ ¦½ú˜ ƒv4²][Ž£#1„*nHÉĉI?1öH#ÔÈe–Û@ôÞc8‘pOÁ½4ZãÈq€å®ÔØá-"ô%РMTÖª!´Žû‹·#x kC\¼vH @7s ÞcW0˜ûÒ¸—Õý† –Àbm< ‹FJ3‘ÍÙùa…[Ñ1{CVl×FhÄ-ˆ`…î« pI3¤€)TÐ2Ô“­ôrz8O±ª0”äÚÓ+öÜ¥‚T h~Ò͹ùU‡­t);ü˜:mìÀ¬°&`ˆA&0„:%@I|K•7öäMç}yÁÉ í«Î¾eê]- Ë›P=¨ÓôpYäΤé¸ÃmÒ§>ôB´¡Õ–`ÉÒ©Ï!q^‡õ$¤‚²’SïR˜3;Ã"Àˆ R’ï `«i Ã6]=AF$¿j‚]ŠÞÑ÷nsÛ¥'¦RÒHÓÂÄ»°Õ| †XâPqAœ ×Q-Óg0¬àüq(TghÚyxN/ríÂáU„\Qãñ‘v8»ÀGÝT һ܅àUnˆ[÷³³ÁÞE4ëÁ¬€¯1ØÏì‡KABCl!'š' -úd?(-:º80$,dŠä9ñ Ԩà G¦†;Üà‹Á´â£™•Š\ÇáVyØeÅy,ªBÓuXq%‚wû,ÉÀÑÉ€{Ôß,~þ‚;‡¨Q¤––F½·ù"h´ï“Ðw ýbhvòj‘$@ç’4i„øÓÔ¹d/±­å†ŠŽ âÄð ¡ ‡K†ý'z!7D@¤ õ ±qØ…r°¾T£Y1"W€Ýwq„·´¨é<Ô¹§G‹¹‚&ü¶+ú)sEMdËEXg±#-X=aLç¶£¿ì”DèÝÇ–š‹\L¸2¸-˜ä¶ƒ¡ wR†Uÿ¡· År7d•÷ÖÿjŸ/5ÂûâUTu`rç„cí2¸£üÌ͈m&‡ÿØ[óýÎvÙeÔÓž=ÀLÕ4}!6 j¬I.ÈÌõSVÆv¯@ûSwª]ÆÇÍÜæÚœ°À±› )0Oqj“òФÈñ˜Õ8V4ÂB»x±qdµIq½åîUz$Q} ᪫¤Èj¢w>Ö”zžÖ sóÑùͰ‡TçbHYb×äp—ëÝ!ƒTïnˆÑ8õúo¶ü,ïRSoILî[ ;g4í°îIwѰZ$/r)dÍ#½k†ü›@5H·§y”äcF©Òï¤iü>ÒNÐ òn˜”k`ä²håÈÇP6Wƒ·Cë±Þ1¤·¥³~¾ÔáSúz½’t*5Ÿ?ÍþšäJ»endstream endobj 133 0 obj << /Filter /FlateDecode /Length 2686 >> stream xœÍZYo#Ç~ׯ „< qÒ÷aDlg‘da/µŒðæAKRZÁºV¤¼Ö¿wõ1ÝUÃRÚlCšiVWWW}utõ|œ±žÏXøËÿ—7G~+ùìrsÄf—Gxüu–ÿ-ofßœ…3Î{¯µ˜]¥©ˆDo˜›g{Çà§›£Ÿº·sÖKo¸•Ýù|Á€€Igº- +.4ïÖó…æª7\t7˜¶Ámb^{9Шf¦Óuž9(¦8´œúb¶‚š‹…¾;:ûãOÁ2Y½S+}žz§Œõ2õV-”yý3æµ—Ðÿ [qˆ¯jhWùA»—!°fåc Ÿö^Ä!%%x¸żH·hô÷å_Ïîö ·zrÛRÍyâÀrê÷æ]SÊ49ÏÝ ÜoÚÉdÓJ&•ö¡>®Ñ´eÚ#]—ÑÛ:m‰®ðj ¾Ú‹´Wìf ¹YKEº­C…M:ìœ,Qe@¢‰äê–8´4 @°ô@àШomnju/Ól{s²E ÈÂÄ@Pð(\Î,„ì³n¶PÃtŸþ×sazï..½î—Ý5¬ÀçZºDZ§¹÷˜úS`a=·9À¹çÞÄ¢‡qæ´ôÀ–T\êî)8®Ã¬PO)CV¸Mâ0…U÷–ÝÝ¥Q òâi÷Q`Á”òûðc^ ò_㟞2S&»÷óEÚ¹ LáQ{cÃ#)æsÂ[Øø"<3.|’ÆYgSÝ›eJåÊÈ}X?,âME—cPgÑ ãyCqÞq¦«dIm÷ìç®(óSR&¬9˜€YÂ/n)- Î;i!¤ÚÿyCçÍ á2¤¦0œúø„è­QY§¡jÕ7Ÿ·Íë¦þk=?Lé¡UÅ­ê<¼\­®FÐÝ)¶` |:hÍ«b¾®ó¾E@Œ[&Z×ikª½g›'¸œÂÕɸËÈZ<Ñ~ŸÚ[7ñt\FQ w¼%i|G±°mZoÛDÈzÂ8U˜ó¶§Ë2"̲‰‰5±x©cÿR™.ªB—íú·rÛ´MŽ êèckÚ›¦u¶mï  iž:°±ëña¢T;UM×nÛg9;ŽMϱtXì¸)êßšX)“°^>H}Ûz«BpÙ4š†O7ç-3­› ÃÎwVFÑ߈àÕ¤•þ¾÷þžwàHd]Ê÷?ઠW0¿„³’àŒŽÆÆçÒŒê¡m(wF½¡apÞ$kZ-à¯u¦‹¾·Â/WØE1È‚%| É#~u(«à Fàä‹Ðù©×㨇“D£)÷×y¹i@¦ÛÍÍ›ÿu’€»d Ó»¯?FŽÒz1B.âÂG̯ œŽ÷éß“¼( ˜ é«48mnüåí_ì÷¹ÔÅðèàrS2òÍ\êNÖ½Ûk ‘Ü;ëÑGjYÛãÉN;9-³>ÒÃB‹ò)ßžÔ¦÷¥6ÍMm§û2›Ú—Ù•Gø¶b5r áÞd|“ȹYhtNn½DYq÷£‚x•0ÜÃpõrcvÓ8è*ap¦ïGêÇ¿¯öM"ß¡Œ‘.¸Í_@Þ5,1n\o…S; 6WÉV£¯–^ý þ~1Ág‹endstream endobj 134 0 obj << /Filter /FlateDecode /Length 2220 >> stream xœ­WMs·½ï¯˜ãìa`tã;G©§TQR‘éÊÁöa)Ó.I-Eûïçu3;3Ü¡«R±ÊµRã ÐýÐ_:k¨³ò§ý~<î¾ùà¨ûô´û²#³¡Øyç¬ ©søÏpè˜-çºÓM÷ïî~ [ ó;êÞáÿßv¶ûnGTȄ܅@É„Ðwä3Ï-w»ïÏ6&2”•±ýdQT³ù\€Ž@1…hB™,‚šlÉã‹ \v†ÎE¶hs=‘£O¦äÉ¢¨Ñæ B÷‚’“ä»fQÔd#ü& \°ÞDš, TEür£)n²,NLŒ‚ˆ²Éi4,|Ï`-9ÙRLñ“eÎC°®Tæ3..O–9§!p1IÙ ˆ?Nݪ™œ°”qêl©ñ5'o ©WÙò“EP“J4>ªWà*Åɲ@¹•^|˜,‹YáCörYnx´Ì1Ë•Qä­Ÿ,‹Ì ¨¥\pu“EQ-™#S”5¤)‡b"OE6‹_®$šfhç©)”lM ³”-sT$—¤òàU*Þ0O–Åy.±$L1H9ŒE6Æ>+YÁ ¥£eòŒ«9J†Ýh˜³0+é/—#\Gs™«U0Ýau]—»Ã:·7ºÃªN6ºÃªæ6ºÃ²z/×Î2/ßÍê.××:ÿ7êkUK—;Öº; ÊvŸ´ýëHh?Ý›+ d*:J·»úuW‡uÈaœ)9ìq;±»:îú÷ÏO7û«ßvC"äFv‹Åê/»û7{B89ô¿ßÞßì¾z·óÈ!t*Åeö÷÷›ãæB¹>)Κ˜2ò¥nHwµG2çúÃééö¦" ®L%t’9ç˜ÛÿåùöÔ½¸ÿ¸‡ #ÜëÙÄ€tÄ»Çûîýáãá‹à&Çœ;ü&ǺþáóÍÓó“@4@ÜB.Hlñ‡bsüíi»µúÃõð­°úæ#R¯CÉ$ù• ßN×çÁWñ—œI€Ôý¾»½V"ÀÃõÃý´úc7Àµ3³ÿlçÒî?)Á. À(Ôæ¶ãÃi?è%pèoïîŠE# ÉåN¸ó®ÒÛ¿ý|{|ÔXQw)¢kã»Ì\ ýÛóñp/«ß| ›fù1Há&Jàß&e¦YigL$Ôæ‹É#ïu *#ØèÔ´¿OÜ–rAëBB?Ñ¥ìÚ†=GÉH¶:–¼®  šÅ@ðÛ7±Þ\1Þ#X©Ð–ÈZ]C=$ì‡"rX«ûé ÙÚqRÉ’Øõ¨’ÛQ­¸á{]šÎBmâZF—zXÑ¿½Úý ¾ìŠÈ¢…¸àPX(Ü0#ãM Qr½Z °P½ÂY…"ƒá3úŠ(\´B?í‡zb`ÜÖ–ÞCï‰ËK½‡±ÉÒe8°—eÜbÌÈç—5j´(NØÏf ØŽÃèª$ñ¿ã,{Õæ¹Þ'z›ŒÃwÒ½mÜB9ïå<:zÓh+/p¢ôvd,;(,»‰ŠÑËœ`—pqm†¬|•#:w΢OÚ@9C¥sÄ:½Ôû•¯£ÌB\(Ë\J›(”Uïqr#«€à§`,¨‰HÍÄ[(ï¢Éb é<—aëŒ2¾ñäÂFë˜UwáE“/Æ-”ECAoBÀn¦kfDZáD‡EP› ªa Ú÷ˆZÐP,P¡ )u”7@/[Ç,ª#éœe$¹ávË«h„ÌtYœ;½6^¢¸`h¡É8 ŒŒŠZ…#nÁO„J bÍÅ-TJIQE8÷ZPF¢•(7rµnYV¹Æ œhEÅŠÂý¤)¹¥ ˜ÈªAcÌ(Jô ¬Huþo ¥ × ÃR¿È<ñ¸Ãaœ#[úe€„ØbÌ4ÐÕ×EãEÃy\$ù”^U0è×)C¬Ë¬i³p)`Ì — ¾ Ó}ÿ¥‚TyŒ†ì>]Ð0(Väfšõ˜óŸh˜,ó2‰òÐÈòK3`„Ä(ãX29•mã¼ÌôÒA÷§M#ä[=1¡ ¬õ¯I˜‰ êíÖ6ÉvV0འsXJYJJy:QŽxœè"n‹kLP|@QâÍcK[® D¸@Ë”ÙÛ©(@ƒ·r E´Sý¨ŠAF|”g§¶TÅÄ€l ÄEó z7·UVgp¥IØ þ2åqµj‰\T ÚZ—÷U%‚!áÔT&Çx¨WgaPÅŒ`œ>îZ× áP> œ¬¹áRå ÂÇ Güq%JÁ4nâ&‹hÂë.”šóâÑEùCÁi‹û¿Ê‹·L5’%øõBþ¼¶'<Àž%ˆ <ï™äá*Ù]<ˆ?ö݃!‹vÔßîµlGî?í…–l~Þr/6äìû“ü#Äìû›=²ûÙØóþ—ý ãÊZ”ßÙ ·œrê¸?íå ˜l ýÃ^ª$ Åä¯VTšË±ÿ jÛ¡ænÄÌpŒKÿ‹î¢«íû¥Còr²xΪoY>sýO½¢£õ¾?î5”Œn -•ÉÉÆò¯".¡T§Š´µ‡s ‹î÷¨D%δÈr:Ÿôj\Bj—l‡x ®q•¥jû?f Û9èëù¨ÏÕpÐ_ÏŸ90ÅðUöC+ èŽO0Ãk޼0KLH{š_àãùù.[Šä†¾¾ðŒÉh;¶ö·Ç\.989˜q÷û>ˆö e~ê]K>Bo Æžêßõ. ÚiíÊÍé®^f‡úsÝØ¢£+¹ÏgÌÄþ­, ™"!Gžájg ÿ4;s~~Y´"[Êõ¬9æ‹Ë¼°ÿCÒ3•äIÜÐŒâkÿ«Þ‚‡ÔXä²øãmö¨Ëcƒ…yâ^°|S1 m3.&áÜAÝ<£Bã<‘—9 Ô•UÀ‡ÙÖÇYðË<¸›WÏŒI¹8-H6ÌI…Æ£¶ óÉö|„à[ûû/–€øTendstream endobj 135 0 obj << /Type /XRef /Length 137 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 136 /ID [<7cc7ce145643a7f0d44984da74c39be2>] >> stream xœcb&F~0ù‰ $À8J’LþgàÚuÈfO…ä{±Ñ$?$%ŒA!É †üw@$ˆä=&mA¤à6)» D ü«T‘A${ˆä“‘Œ. ’i˜­"¹À$ˆäàËþ“w$#G-ØÆÉýLž‘œß¤„^ endstream endobj startxref 77086 %%EOF phangorn/inst/doc/Networx.R0000644000176200001440000000265213241142073015403 0ustar liggesusers## ---- eval=TRUE---------------------------------------------------------- library(phangorn) data(Laurasiatherian) data(yeast) ## ---- eval=TRUE---------------------------------------------------------- set.seed(1) bs <- bootstrap.phyDat(yeast, FUN = function(x)nj(dist.hamming(x)), bs=100) tree <- nj(dist.hamming(yeast)) par("mar" = rep(1, 4)) tree <- plotBS(tree, bs, "phylogram") cnet <- consensusNet(bs, .3) plot(cnet, "2D", show.edge.label=TRUE) ## ---- eval=FALSE--------------------------------------------------------- # plot(cnet) # # rotate 3d plot # play3d(spin3d(axis=c(0,1,0), rpm=6), duration=10) # # create animated gif file # movie3d(spin3d(axis=c(0,1,0), rpm=6), duration=10) ## ---- eval=TRUE---------------------------------------------------------- dm <- dist.hamming(yeast) nnet <- neighborNet(dm) par("mar" = rep(1, 4)) plot(nnet, "2D") ## ---- eval=TRUE---------------------------------------------------------- nnet <- addConfidences(nnet, tree) par("mar" = rep(1, 4)) plot(nnet, "2D", show.edge.label=TRUE) ## ---- eval=TRUE---------------------------------------------------------- tree2 <- rNNI(tree, 2) tree2 <- addConfidences(tree2, tree) # several support values are missing par("mar" = rep(1, 4)) plot(tree2, show.node.label=TRUE) ## ---- eval=TRUE---------------------------------------------------------- cnet <- nnls.networx(cnet, dm) par("mar" = rep(1, 4)) plot(cnet, "2D", show.edge.label=TRUE) phangorn/inst/doc/Trees.Rnw0000644000176200001440000003273213207147352015375 0ustar liggesusers%\VignetteIndexEntry{Constructing phylogenetic trees} %\VignetteKeywords{Documentation} %\VignettePackage{phangorn} %\VignetteEngine{Sweave} \documentclass[12pt]{article} \usepackage{times} \usepackage{hyperref} \begin{document} \SweaveOpts{concordance=TRUE} \newcommand{\Rfunction}[1]{{\texttt{#1}}} \newcommand{\Robject}[1]{{\texttt{#1}}} \newcommand{\Rpackage}[1]{{\textit{#1}}} \newcommand{\Rmethod}[1]{{\texttt{#1}}} \newcommand{\Rfunarg}[1]{{\texttt{#1}}} \newcommand{\Rclass}[1]{{\textit{#1}}} \textwidth=6.2in \textheight=8.5in %\parskip=.3cm \oddsidemargin=.1in \evensidemargin=.1in \headheight=-.3in \newcommand{\R}{\textsf{R}} \newcommand{\pml}{\Robject{pml}} \newcommand{\phangorn}{\Rpackage{phangorn}} \newcommand{\ape}{\Rpackage{ape}} \newcommand{\multicore}{\Rpackage{multicore}} \newcommand{\term}[1]{\emph{#1}} \newcommand{\mref}[2]{\htmladdnormallinkfoot{#2}{#1}} % leave comments in the text \SweaveOpts{keep.source=TRUE} % Ross Ihakas extenstion for nicer representation \DefineVerbatimEnvironment{Sinput}{Verbatim} {xleftmargin=2em} \DefineVerbatimEnvironment{Soutput}{Verbatim}{xleftmargin=2em} \DefineVerbatimEnvironment{Scode}{Verbatim}{xleftmargin=2em} \fvset{listparameters={\setlength{\topsep}{0pt}}} \renewenvironment{Schunk}{\vspace{\topsep}}{\vspace{\topsep}} <>= options(width=70) foo <- packageDescription("phangorn") options("show.signif.stars" = FALSE) @ \title{Estimating phylogenetic trees with phangorn} %$ (Version \Sexpr{foo$Version})} \author{\mref{mailto:klaus.schliep@gmail.com}{Klaus P. Schliep}} \maketitle \nocite{Paradis2012} \section{Introduction} These notes should enable the user to estimate phylogenetic trees from alignment data with different methods using the \phangorn{} package \cite{Schliep2011}. Several functions of \phangorn{} are also described in more detail in \cite{Paradis2012}. For more theoretical background on all the methods see e.g. \cite{Felsenstein2004, Yang2006}. This document illustrates some of the \phangorn{} features to estimate phylogenetic trees using different reconstruction methods. Small adaptations to the scripts in section \ref{sec:Appendix1} should enable the user to perform phylogenetic analyses. \section{Getting started} The first thing we have to do is to read in an alignment. Unfortunately there exists many different file formats that alignments can be stored in. The function \Rfunction{read.phyDat} is used to read in an alignment. There are several functions to read in alignments depending on the format of the data set (nexus, phylip, fasta) and the kind of data (amino acid or nucleotides) in the \ape{} package \cite{Paradis2004} and \phangorn{}. The function \Rfunction{read.phyDat} calls these other functions. For the specific parameter settings available look in the help files of the function \Rfunction{read.dna} (for phylip, fasta, clustal format), \Rfunction{read.nexus.data} for nexus files. For amino acid data additional \Rfunction{read.aa} is called. %When using the \Rfunction{read.dna} from \ape{} the parameter the we have to use as.character=TRUE. We start our analysis loading the \phangorn{} package and then reading in an alignment. <>= library(phangorn) fdir <- system.file("extdata/trees", package = "phangorn") primates <- read.phyDat(file.path(fdir, "primates.dna"), format = "phylip") @ \section{Distance based methods} After reading in the alignment we can build a first tree with distance based methods. The function dist.dna from the ape package computes distances for many DNA substitution models. To use the function dist.dna we have to transform the data to class DNAbin. For amino acids the function \Rfunction{dist.ml} offers common substitution models (for example "WAG", "JTT", "LG", "Dayhoff", "cpREV", "mtmam", "mtArt", "MtZoa" or "mtREV24"). After constructing a distance matrix we reconstruct a rooted tree with UPGMA and alternatively an unrooted tree using Neighbor Joining \cite{Saitou1987,Studier1988}. More distance methods like fastme are available in the \Rpackage{ape} package. <>= dm <- dist.ml(primates) treeUPGMA <- upgma(dm) treeNJ <- NJ(dm) @ We can plot the trees treeUPGMA and treeNJ (figure \ref{fig:NJ}) with the commands: <>= layout(matrix(c(1,2), 2, 1), height=c(1,2)) par(mar = c(0,0,2,0)+ 0.1) plot(treeUPGMA, main="UPGMA") plot(treeNJ, "unrooted", main="NJ") @ \begin{figure} \begin{center} <>= <> @ \end{center} \caption{Rooted UPGMA tree and unrooted NJ tree} \label{fig:NJ} \end{figure} Distance based methods are very fast and we will use the UPGMA and NJ tree as starting trees for the maximum parsimony and maximum likelihood analyses. \section{Parsimony} The function parsimony returns the parsimony score, that is the number of changes which are at least necessary to describe the data for a given tree. We can compare the parsimony score or the two trees we computed so far: <>= parsimony(treeUPGMA, primates) parsimony(treeNJ, primates) @ The function optim.parsimony performs tree rearrangements to find trees with a lower parsimony score. The tree rearrangement implemented are nearest-neighbor interchanges (NNI) and subtree pruning and regrafting (SPR). The later one only works so far with the fitch algorithm. However is also a version of the parsimony ratchet \cite{Nixon1999} implemented, which is likely to find better trees than just doing NNI / SPR rearrangements. <>= treePars <- optim.parsimony(treeUPGMA, primates) treeRatchet <- pratchet(primates, trace = 0) parsimony(c(treePars, treeRatchet), primates) @ For small data sets it is also possible to find all most parsimonious trees using a branch and bound algorithm \cite{Hendy1982}. For data sets with more than 10 taxa this can take a long time and depends strongly on how tree like the data are. <>= (trees <- bab(subset(primates,1:10))) @ \section{Maximum likelihood} The last method we will describe in this vignette is Maximum Likelihood (ML) as introduced by Felsenstein \cite{Felsenstein1981}. We can easily compute the likelihood for a tree given the data <>= fit = pml(treeNJ, data=primates) fit @ The function \Rfunction{pml} returns an object of class \Robject{pml}. This object contains the data, the tree and many different parameters of the model like the likelihood. There are many generic functions for the class Robject{pml} available, which allow the handling of these objects. <>= methods(class="pml") @ The object fit just estimated the likelihood for the tree it got supplied, but the branch length are not optimized for the Jukes-Cantor model yet, which can be done with the function \Rfunction{optim.pml}. <>= fitJC <- optim.pml(fit, TRUE) logLik(fitJC) @ With the default values \Rfunction{pml} will estimate a Jukes-Cantor model. The function \Rfunction{update.pml} allows to change parameters. We will change the model to the GTR + $\Gamma(4)$ + I model and then optimize all the parameters. <>= fitGTR <- update(fit, k=4, inv=0.2) fitGTR <- optim.pml(fitGTR, model="GTR", optInv=TRUE, optGamma=TRUE, rearrangement = "NNI", control = pml.control(trace = 0)) fitGTR @ With the control parameters the threshols for the fitting process can be changed. Here we want just to supress output during the fitting process. For larger trees the NNI rearrangements often get stuck in local maxima. We added two stochatic algorithm to improve topology search. The first (set rearrangement="stochastic") performs stochastic rearrangements similar as in \cite{Nguyen2015}, which makes random NNI permuation to the tree, which than gets optimised to escape local optima. The second option (rearrangement="ratchet") perform the likelihood ratchet \cite{Vos2003}. While these algorithms may find better trees they will also take more time. <>= fitGTR <- optim.pml(fitGTR, model="GTR", optInv=TRUE, optGamma=TRUE, rearrangement = "stochastic", control = pml.control(trace = 0)) fitGTR @ \subsection{Model selection} We can compare nested models for the JC and GTR + $\Gamma(4)$ + I model using likelihood ratio statistic <>= anova(fitJC, fitGTR) @ with the Shimodaira-Hasegawa \cite{Shimodaira1999} test <>= SH.test(fitGTR, fitJC) @ or with the AIC <>= AIC(fitJC) AIC(fitGTR) AICc(fitGTR) BIC(fitGTR) @ An alternative is to use the function \Rfunction{modelTest} to compare different nucleotide or protein models the AIC, AICc or BIC, similar to popular programs ModelTest and ProtTest \cite{Posada1998, Posada2008, Abascal2005}. <>= load("Trees.RData") @ <>= mt = modelTest(primates) @ The results of \Rfunction{modelTest} is illustrated in table \ref{tab:modelTest} \begin{center} <>= library(xtable) print(xtable(mt, caption="Summary table of modelTest", label="tab:modelTest"), include.rownames=FALSE) @ \end{center} The thresholds for the optimization in \Rfunction{modelTest} are not as strict as for \Rfunction{optim.pml} and no tree rearrangements are performed. As \Rfunction{modelTest} computes and optimizes a lot of models it would be a waste of computer time not to save these results. The results are saved as call together with the optimized trees in an environment and this call can be evaluated to get a "pml" object back to use for further optimization or analysis. <>= env <- attr(mt, "env") ls(envir=env) (fit <- eval(get("HKY+G+I", env), env)) @ At last we may want to apply bootstrap to test how well the edges of the tree are supported: %, results=hide <>= bs = bootstrap.pml(fitJC, bs=100, optNni=TRUE, control = pml.control(trace = 0)) @ %$ Now we can plot the tree with the bootstrap support values on the edges and also look at consensusNet to identify potential conflict. <>= par(mfrow=c(2,1)) par(mar=c(1,1,3,1)) plotBS(midpoint(fitJC$tree), bs, p = 50, type="p") title("a)") cnet <- consensusNet(bs, p=0.2) plot(cnet, "2D", show.edge.label=TRUE) title("b)") @ %$ \begin{figure} \begin{center} <>= <> @ \end{center} \caption{a) Unrooted tree (midpoint rooted) with bootstrap support values. b) ConsensusNet from the bootstrap sample} \label{fig:BS} \end{figure} Several analyses, e.g. \Rfunction{bootstrap} and \Rfunction{modelTest}, can be computationally demanding, but as nowadays most computers have several cores one can distribute the computations using the \multicore{} package. However it is only possible to use this approach if R is running from command line ("X11"), but not using a GUI (for example "Aqua" on Macs) and unfortunately the \multicore{} package does not work at all under Windows. \newpage \section{Appendix: Standard scripts for nucleotide analysis}\label{sec:Appendix1} Here we provide two standard scripts which can be adapted for the most common tasks. Most likely the arguments for \Rfunction{read.phyDat} have to be adapted to accommodate your file format. Both scripts assume that the \multicore{} package works on your platform, see comments above. <>= options(prompt=" ") options(continue=" ") @ <>= library(phangorn) file="myfile" dat = read.phyDat(file) dm = dist.ml(dat, "F81") tree = NJ(dm) # as alternative for a starting tree: tree <- pratchet(dat) # parsimony tree tree <- nnls.phylo(tree, dm) # need edge weights # 1. alternative: quick and dirty: GTR + G fitStart = pml(tree, dat, k=4) fit = optim.pml(fitStart, model="GTR", optGamma=TRUE, rearrangement="stochastic") # 2. alternative: preper with modelTest mt <- modelTest(dat, tree=tree, multicore=TRUE) mt[order(mt$AICc),] # choose best model from the table according to AICc bestmodel <- mt$Model[which.min(mt$AICc)] env = attr(mt, "env") fitStart = eval(get("GTR+G+I", env), env) # or let R search the table fitStart = eval(get(bestmodel, env), env) # equivalent to: fitStart = eval(get("GTR+G+I", env), env) fit = optim.pml(fitStart, rearrangement = "stochastic", optGamma=TRUE, optInv=TRUE, model="GTR") bs = bootstrap.pml(fit, bs=100, optNni=TRUE, multicore=TRUE) @ \newpage \section{Appendix 2: Standard scripts for amino acid analysis}%\label{sec:Appendix2} You can specify different several models build in which you can specify, e.g. "WAG", "JTT", "Dayhoff", "LG". Optimizing the rate matrix for amino acids is possible, but would take a long, a very long time and you will need to have a large alignement to estimate all the parameters. So make sure to set optBf=FALSE and optQ=FALSE in the function \Rfunction{optim.pml}, which is also the default. <>= library(phangorn) file="myfile" dat = read.phyDat(file, type = "AA") dm = dist.ml(dat, model="JTT") tree = NJ(dm) # parallel will only work safely from command line # and not at all windows (mt <- modelTest(dat, model=c("JTT", "LG", "WAG"), multicore=TRUE)) # run all available amino acid models (mt <- modelTest(dat, model="all", multicore=TRUE)) fitStart = eval(get(mt$Model[which.min(mt$BIC)], env), env) fitNJ = pml(tree, dat, model="JTT", k=4, inv=.2) fit = optim.pml(fitNJ, rearrangement = "stochastic", optInv=TRUE, optGamma=TRUE) fit bs = bootstrap.pml(fit, bs=100, optNni=TRUE, multicore=TRUE) @ <>= options(prompt="> ") options(continue="+ ") @ \newpage % \cite{Sugiura1978} \bibliographystyle{plain} \bibliography{phangorn} \section{Session Information} The version number of \R{} and packages loaded for generating the vignette were: <>= toLatex(sessionInfo()) @ \end{document} phangorn/inst/doc/phangorn-specials.R0000644000176200001440000000714313241142067017355 0ustar liggesusers### R code from vignette source 'phangorn-specials.Rnw' ################################################### ### code chunk number 1: phangorn-specials.Rnw:48-51 ################################################### options(width=70) options("show.signif.stars" = FALSE) foo <- packageDescription("phangorn") ################################################### ### code chunk number 2: phangorn-specials.Rnw:73-79 ################################################### library(phangorn) data = matrix(c("r","a","y","g","g","a","c","-","c","t","c","g", "a","a","t","g","g","a","t","-","c","t","c","a", "a","a","t","-","g","a","c","c","c","t","?","g"), dimnames = list(c("t1", "t2", "t3"),NULL), nrow=3, byrow=TRUE) data ################################################### ### code chunk number 3: phangorn-specials.Rnw:82-84 ################################################### gapsdata1 = phyDat(data) gapsdata1 ################################################### ### code chunk number 4: phangorn-specials.Rnw:87-90 ################################################### gapsdata2 = phyDat(data, type="USER", levels=c("a","c","g","t","-"), ambiguity = c("?", "n")) gapsdata2 ################################################### ### code chunk number 5: phangorn-specials.Rnw:94-109 ################################################### contrast = matrix(data = c(1,0,0,0,0, 0,1,0,0,0, 0,0,1,0,0, 0,0,0,1,0, 1,0,1,0,0, 0,1,0,1,0, 0,0,0,0,1, 1,1,1,1,0, 1,1,1,1,1), ncol = 5, byrow = TRUE) dimnames(contrast) = list(c("a","c","g","t","r","y","-","n","?"), c("a", "c", "g", "t", "-")) contrast gapsdata3 = phyDat(data, type="USER", contrast=contrast) gapsdata3 ################################################### ### code chunk number 6: phangorn-specials.Rnw:165-170 ################################################### tree = unroot(rtree(3)) fit = pml(tree, gapsdata3) fit = optim.pml(fit, optQ=TRUE, subs=c(1,0,1,2,1,0,2,1,2,2), control=pml.control(trace=0)) fit ################################################### ### code chunk number 7: phangorn-specials.Rnw:233-244 ################################################### library(phangorn) fdir <- system.file("extdata/trees", package = "phangorn") primates <- read.phyDat(file.path(fdir, "primates.dna"), format = "phylip", type = "DNA") tree <- NJ(dist.ml(primates)) dat <- phyDat(as.character(primates), "CODON") fit <- pml(tree, dat) fit0 <- optim.pml(fit, control = pml.control(trace = 0)) fit1 <- optim.pml(fit, model="codon1", control=pml.control(trace=0)) fit2 <- optim.pml(fit, model="codon2", control=pml.control(trace=0)) fit3 <- optim.pml(fit, model="codon3", control=pml.control(trace=0)) anova(fit0, fit2, fit3, fit1) ################################################### ### code chunk number 8: plotAll ################################################### trees <- allTrees(5) par(mfrow=c(3,5), mar=rep(0,4)) for(i in 1:15)plot(trees[[i]], cex=1, type="u") ################################################### ### code chunk number 9: figAll ################################################### getOption("SweaveHooks")[["fig"]]() trees <- allTrees(5) par(mfrow=c(3,5), mar=rep(0,4)) for(i in 1:15)plot(trees[[i]], cex=1, type="u") ################################################### ### code chunk number 10: phangorn-specials.Rnw:272-273 ################################################### trees = nni(trees[[1]]) ################################################### ### code chunk number 11: phangorn-specials.Rnw:284-285 ################################################### toLatex(sessionInfo()) phangorn/inst/doc/Networx.html0000644000176200001440000114120213241142073016142 0ustar liggesusers Splits and Networx

Splits and Networx

Klaus Schliep

February 14, 2018

This tutorial gives a basic introduction for constructing phylogenetic networks and adding parameters to trees or networx objects using phangorn (Schliep 2011) in R. Splits graphs or phylogenetic networks are a useful way to display conflicting data or to summarize different trees. Here, we present two popular networks, consensus networks (Holland et al. 2004) and Neighbor-Net (D. Bryant and Moulton 2004).
Trees or networks are often missing either edge weights or edge support values. We show how to improve a tree/networx object by adding support values or estimating edge weights using non-negative Least-Squares (nnls).

We first load the phangorn package and a few data sets we use in this vignette.

library(phangorn)
data(Laurasiatherian)
data(yeast)

consensusNet

A consensusNet (Holland et al. 2004) is a generalization of a consensus tree. Instead of only representing splits (taxon bipartitions) occurring in at least 50% of the trees in a bootstrap or MCMC sample one can use a lower threshold and explore competing splits. Note that, in its basic implementation used here, the consensusNet edge lengths are proportional to the frequence of the corresponding splits in the provided list of trees.

The input for consensusNet is a list of trees i.e. an object of class multiPhylo.

set.seed(1)
bs <- bootstrap.phyDat(yeast, FUN = function(x)nj(dist.hamming(x)), 
    bs=100)
tree <- nj(dist.hamming(yeast))
par("mar" = rep(1, 4))
tree <- plotBS(tree, bs, "phylogram")

cnet <- consensusNet(bs, .3)
plot(cnet, "2D", show.edge.label=TRUE)

In many cases, consensusNet will return more than two incompatible (competing) splits. This cannot be plotted as a planar (2-dimensional) graph. Such as situation requires a n-dimensional graph, where the maximum number of dimensions equals the maximum number of incompatible splits. For example, if we have three alternative incompatible splits: (A,B)|(C,D) vs. (A,C)|(B,D) vs. (A,D)|(B,C), we need a 3-dimensional graph to show all three alternatives. A nice way to get still a good impression of the network is to plot it in 3D.

plot(cnet)
# rotate 3d plot
play3d(spin3d(axis=c(0,1,0), rpm=6), duration=10)
# create animated gif file 
movie3d(spin3d(axis=c(0,1,0), rpm=6), duration=10)

which will result in a spinning graph similar to this

rotatingNetworx

rotatingNetworx

neighborNet

The function neighborNet implements the popular method of D. Bryant and Moulton (2004). The Neighbor-Net algorithm is essentially a 2D-version of the Neighbor joining algorithm. The Neighbour-net is computed in two steps: the first computes a circular ordering of the taxa in the data set; the second step involves the estimation of edge weights using non-negative Least-Squares (nnls).

dm <- dist.hamming(yeast)
nnet <- neighborNet(dm)
par("mar" = rep(1, 4))
plot(nnet, "2D")

The advantage of Neighbor-Net is that it returns a circular split system which can be always displayed in a planar (2D) graph. The plots displayed in phangorn may (however) not be planar, but re-plotting can give you a planar graph. This unwanted behavior will be improved in future version. The rendering of the networx is done using the the fantastic igraph package (Csardi and Nepusz 2006).

Adding support values

We can use the generic function addConfidences to add (branch) support values from a tree, i.e. an object of class phylo to a networx, splits or phylo object. The Neighbor-Net object we computed above provides no support values. We can add the support values from the tree we computed to the splits (edges) shared by both objects.

nnet <- addConfidences(nnet, tree)
par("mar" = rep(1, 4))
plot(nnet, "2D", show.edge.label=TRUE)

Analogously, we can also add support values to a tree:

tree2 <- rNNI(tree, 2)
tree2 <- addConfidences(tree2, tree)
# several support values are missing
par("mar" = rep(1, 4))
plot(tree2, show.node.label=TRUE)

Estimating edge weights (nnls)

Consensus networks, on the other hand, provide primarily information about support values corresponding to a split, but no information about the actual difference between the taxon bipartitions defined by that split. For example, one may be interested how the alternative support values correspond with the actual genetic distance between the involved taxa. Given a distance matrix, we can estimate edge weights using non-negative Least-Squares, and plot them onto the consensusNet splits graph.

cnet <- nnls.networx(cnet, dm)
par("mar" = rep(1, 4))
plot(cnet, "2D", show.edge.label=TRUE)

Import and export networks, advanced functions for networx objects

The functions read.nexus.networx and write.nexus.networx can read and write nexus files for or from SplitsTree (Huson and Bryant 2006). Check-out the new vignette IntertwiningTreesAndNetworks for additional functions, examples, and advanced applications.

References

Bryant, David, and Vincent Moulton. 2004. “Neighbor-Net: An Agglomerative Method for the Construction of Phylogenetic Networks.†Molecular Biology and Evolution 21 (2): 255–65. doi:10.1093/molbev/msh018.

Csardi, Gabor, and Tamas Nepusz. 2006. “The Igraph Software Package for Complex Network Research.†InterJournal Complex Systems: 1695. http://igraph.org.

Holland, Barbara R., Katharina T. Huber, Vincent Moulton, and Peter J. Lockhart. 2004. “Using Consensus Networks to Visualize Contradictory Evidence for Species Phylogeny.†Molecular Biology and Evolution 21 (7): 1459–61. doi:10.1093/molbev/msh145.

Huson, D.H., and D. Bryant. 2006. “Application of Phylogenetic Networks in Evolutionary Studies.†Molecular Biology and Evolution 23 (2): 254–67.

Schliep, Klaus Peter. 2011. “Phangorn: Phylogenetic Analysis in R.†Bioinformatics 27 (4): 592–93. doi:10.1093/bioinformatics/btq706.

phangorn/inst/doc/IntertwiningTreesAndNetworks.html0000644000176200001440000143070213241142072022345 0ustar liggesusers Intertwining phylogenetic trees and networks: R Example Script

Intertwining phylogenetic trees and networks: R Example Script

Klaus Schliep, Alastair Potts, David Morrison and Guido Grimm

February 14, 2018

Description: This script provides examples of the new functions available in the phangorn library to ‘intertwine’ trees and networks, i.e. compare trees and networks and data transferrance. It also provides a step-by-step guide for users new to R.

Methodological advancement: The major advancement in this phangorn update is the introduction of a generic network object with a wide range of related transfer and analysis functions. These new functions provide the first means to directly transfer information amongst a wide range of phylogenetic trees and networks, as well as means to visualise and further analyse this information. This should provide a platform for individuals to easily conduct tree-network comparisons and stimulate further function development by the community.

What next?: By implementing full network handling compatibility in R, and providing exemplar scripts (such as this) and support, the scientific community now has an easy means to analyse and compare the results of phylogenetic trees vs. network approaches. We hope this will open a largely unexplored world to the general phylogenetic audience.

Installing R

  1. Download R
    Select the nearest mirror to your location at https://cran.r-project.org/mirrors.html
  2. Select your operating system and download the relevant installation file.
  3. Install R following the instructions.

Installing the phangorn library

Open R and run the two lines of code below in the command line.
(You will need to select a region from which to download the library)

install.packages("phangorn", dependencies=TRUE)
# install latest development version needs devtools
install.packages("devtools", dependencies=TRUE)
library(devtools)
install_github("KlausVigo/phangorn")

Getting started

library(phangorn)    # load the phangorn library
library(magrittr)  

Set the working directory

This is often a major stumbling block for new R users. You need to specify where in your folder structure you wish to work. i.e, where are the files stored that you wish to input?

This is done using the setwd() function, e.g. setwd("C:/TreesNetworks/Example Files").

We now set it to the folder of the phangorn package, which contains the files we want to load for this example.

Read in the example file datasets:

This example files are based on the woodmouse dataset available in the ape library. Ultimately, this dataset is from this study: Michaux, J. R., Magnanou, E., Paradis, E., Nieberding, C. and Libois, R. (2003) Mitochondrial phylogeography of the Woodmouse (Apodemus sylvaticus) in the Western Palearctic region. Molecular Ecology, 12, 685-697.)

## automatically set the correct working directory for the examples below
# setwd(system.file("extdata/trees", package = "phangorn"))
# for this vignette we create a path to the files we want to load 
fdir <- system.file("extdata/trees", package = "phangorn")
## in your case it may look something like this...
# setwd("C:/TreesNetworks/Example Files")

##DNA Matrix, maybe not needed 
woodmouse <- read.phyDat(file.path(fdir, "woodmouse.fasta"),format="fasta") 
## RAxML best-known tree with bipartition support (from previous analysis)
raxml.tree <- read.tree(file.path(fdir,"RAxML_bipartitions.woodmouse"))
## RAxML bootstrap trees (from previous analysis)
raxml.bootstrap <- read.tree(file.path(fdir,"RAxML_bootstrap.woodmouse"))
## MrBayes consensus tree (50% majority rule) (from previous analysis)
mrbayes.tree <- read.nexus(file.path(fdir,"woodmouse.mrbayes.nex.con"))
## MrBayes sample runs 1 and 2 (from previous analysis)
run1 <- read.nexus(file.path(fdir,"woodmouse.mrbayes.nex.run1.t"))
run2 <- read.nexus(file.path(fdir,"woodmouse.mrbayes.nex.run2.t"))
## How many trees are in the MrBayes tree sample?
run1
## 1001 phylogenetic trees
run2
## 1001 phylogenetic trees
## Combining the two runs and removing 25% burn-in
mrbayes.trees <- c(run1[251:1001],run2[251:1001])
## NeigbourNet Nexus file generated by SplitsTree (from previous analysis)
Nnet <- read.nexus.networx(file.path(fdir,"woodmouse.nxs"))

All example files read into R.

Viewing the data

par(mfrow=c(1,2), mar=c(1,1,1,1)) # Setting plot parameters
### Plotting trees with support values:
##  RAxML
plot(raxml.tree)
nodelabels(raxml.tree$node.label, adj = c(1, 0), frame = "none")
##  MrBayes
plot(mrbayes.tree)
nodelabels(mrbayes.tree$node.label, adj = c(1, 0), frame = "none")

par(mfrow=c(1,1)) # Setting plot parameters
# NeighbourNet
plot(Nnet,"2D")

## alternatively,
# plot(Nnet,"2D")

Interwining trees and network functions

1A:

Identification of edge bundles (in black) in a neighbour-net (NN) network that correspond to branches (labelled 1-12) in a tree (a maximum likelihood tree, in this case).

# create a vector of labels for the network corresponding to edges in the tree
edge.lab <- createLabel(Nnet, raxml.tree, raxml.tree$edge[,2], "edge")
# could be also 1:27 instead of raxml.tree$edge[,2]

# Show the correspondingly labelled tree and network in R
par(mfrow=c(1,2))  
plot(raxml.tree, "u", rotate.tree = 180, cex=.7) 
edgelabels(raxml.tree$edge[,2],col="blue", frame="none", cex=.7)

# find edges that are in the network but not in the tree
edge.col <- rep("black", nrow(Nnet$edge))
edge.col[ is.na(edge.lab) ] <- "red"
# or a simpler alternative...
edge.col <- createLabel(Nnet, raxml.tree, "black", nomatch="red")

x <- plot(Nnet, edge.label = edge.lab, show.edge.label = T, "2D", edge.color = edge.col,
                  col.edge.label = "blue", cex=.7)

# the above plot function returns an invisible networx object and this object also  
# contains the colors for the edges.

1B:

Bootstrap support for all branches (branch labels) in the ML tree mapped on the corresponding edge bundles of the NN network. The edges in the network which are not found as ML tree branches are highlighted in red.

# the scaler argument multiplies the confidence values. This is useful to switch
# confidences values between total, percentage or ratios.   
x <- addConfidences(Nnet,raxml.tree, scaler = .01)
# find splits that are in the network but not in the tree
split.col <- rep("black", length(x$splits))
split.col[ !matchSplits(as.splits(x), as.splits(raxml.tree)) ] <- "red"

# simpler alternative...
split.col2 <- createLabel(x, raxml.tree, label="black", "split", nomatch="red")

# Plotting in R
out.x <- plot(x,"2D",show.edge.label=TRUE, split.color=split.col, col.edge.label = "blue")

Again we can write to SplitsTree for viewing…

# write.nexus.networx(out.x,"woodmouse.tree.support.nxs")
## or we can also export the splits alone (for usage in software other than SplitsTree)
# write.nexus.splits(as.splits(out.x),"woodmouse.splits.support.nxs")

1C:

Frequencies of bipartitions found in the bootstrap pseudoreplicates mapped on the corresponding edge bundles of the NN network using a threshold of 10% (i.e. any edge is labelled that occurs in at least 100 of the 1000 ML-BS pseudoreplicates). Edge bundles not found in the ML tree are labelled using grey edges.

y <- addConfidences(Nnet, as.splits(raxml.bootstrap))
edge.col <- createLabel(y, raxml.tree, label="black", "edge", nomatch="grey")

y <- plot(y,"2D",show.edge.label=TRUE, edge.color=edge.col)

## Write to SplitsTree for viewing
# write.nexus.networx(y,"NN.with.bs.support.nxs")

Extras…

We can also compare the neighborNet with a consensusNet (Holland BR, Huber KT, Moulton V, Lockhart PJ,2004, Using consensus networks to visualize contradictory evidence for species phylogeny. Molecular Biology and Evolution, 21, 1459-1461). Furthermore, we can extract the support values from the consensus network, and place these on to the NeighbourNet (this is similar to the process explained in 1C above).

cnet <- consensusNet(raxml.bootstrap,prob=0.10)
edge.col <- createLabel(cnet, Nnet, label="black", "edge", nomatch="grey")
cnet <- plot(cnet, "2D", show.edge.label = TRUE, edge.color=edge.col)

edge.col <- createLabel(Nnet, cnet, label="black", "edge", nomatch="grey")
z <- plot(Nnet, "2D", show.edge.label = TRUE, edge.color=edge.col)

obj <- addConfidences(Nnet,cnet)
plot(obj,"2D",show.edge.label=T, edge.color=edge.col, col.edge.label = "blue")

## Write to SplitsTree for viewing
# write.nexus.networx(obj,"Nnet.with.ML.Cnet.Bootstrap.nxs")

There are four possible data patterns in phylogenetic reconstruction: (1) patterns that are well supported in the network and appear in the bootstapped trees; (2) patterns that are well supported by (part of) the data/network but do not appear in the optimised trees, i.e. they are incompatible with the tree; (3) patterns that are weakly supported by the network but appear in the optimised trees anyway, i.e. they are compatible with the tree.

Here we demonstrate these patterns by showing the relationships between splits weights, from a NeighborNet splits graph, bootstrap bipartitions support and bootstrap percentages plotted on the optimised tree for a dataset of Wang, Braun, and Kimball (2012).

(An advanced user figure…)

Nnet <- read.nexus.networx(file.path(fdir,"RAxML_distances.Wang.nxs"))
raxml.tree <- read.tree(file.path(fdir,"RAxML_bestTree.Wang.out")) %>% unroot
raxml.bootstrap <- read.tree(file.path(fdir,"RAxML_bootstrap.Wang.out"))

bs_splits <- as.splits(raxml.bootstrap)
tree_splits <- as.splits(raxml.tree) %>% unique %>% removeTrivialSplits
# we overwrite bootstrap values and set the weights 
# to 1e-6 (almost zero), as we plot them on a log scale later on
attr(bs_splits, "weights")[] <- 1e-6
# combine the splits from the bootstrap and neighbor net
# and delete duplicates and add the confidence values
# we get rid of trivial splits
all_splits <- c(Nnet$splits, bs_splits) %>% unique %>% removeTrivialSplits %>% addConfidences(bs_splits, scaler=100)

# For easier plotting we create a matrix with the confidences and 
# weights as columns
tab <- data.frame(SplitWeight = attr(all_splits, "weights"), Bootstrap=attr(all_splits, "confidences"), Tree=FALSE)
# we add a logical variable pto indicate which splits are in the RAxML tree
tab$Tree[matchSplits(tree_splits, all_splits, FALSE)] = TRUE

tab[is.na(tab[,"Bootstrap"]),"Bootstrap"] <- 0
tab[,"Bootstrap"] <- round(tab[,"Bootstrap"])
rownames(tab) <- apply(as.matrix(all_splits, zero.print = ".", one.print = "|"), 1, paste0, collapse="")
tab[1:10,]
##                              SplitWeight Bootstrap  Tree
## ..||........................   0.0171433       100  TRUE
## ..||||......................   0.0013902        14 FALSE
## ..||||......|||||...........   0.0001589         0 FALSE
## ||.........................|   0.0027691         1 FALSE
## ||..........................   0.0840367       100  TRUE
## ...|||......................   0.0001773         0 FALSE
## ...|||........|.|...........   0.0003663         0 FALSE
## |.|.........................   0.0060907         0 FALSE
## ....||......................   0.0385909       100  TRUE
## ||||........................   0.0018195        34  TRUE
col <- rep("blue", nrow(tab))
col[tab[,"Bootstrap"]==0] <- "green"
col[tab[,"SplitWeight"]==1e-6] <- "red"

pch = rep(19, nrow(tab))
pch[tab$Tree] <- 17

par(mar=c(5.1, 4.1, 4.1, 8.1), xpd=TRUE)
plot(tab[,"SplitWeight"], tab[,"Bootstrap"], log="x", col=col, pch=pch,  
     xlab="Split weight (log scale)", ylab="Bootstrap (%)")
legend("topright", inset=c(-0.35,0), c("Pattern 1", "Pattern 2", "Pattern 3", "Pattern in the\nbest tree"), pch=c(19,19,19,17), col=c("blue", "green", "red", "black"), bty="n")

Figure 4

YCh <- read.tree(file.path(fdir, "RAxML_bestTree.YCh")) 
mtG <- read.tree(file.path(fdir, "RAxML_bestTree.mtG")) 
ncAI <- read.tree(file.path(fdir, "RAxML_bestTree.AIs")) 
all_data <- read.tree(file.path(fdir, "RAxML_bestTree.3moles")) 
YCh_boot <- read.tree(file.path(fdir, "RAxML_bootstrap.YCh")) 
mtG_boot <- read.tree(file.path(fdir, "RAxML_bootstrap.mtG")) 
ncAI_boot <- read.tree(file.path(fdir, "RAxML_bootstrap.AIs")) 
all_data_boot <- read.tree(file.path(fdir, "RAxML_bootstrap.3moles")) 

There are several option plotting a co-phylogeny. In the following we use the cophylo function of the phytools package.

library(phytools)
par(mfrow=c(2,1))
obj <- cophylo(YCh, mtG) 
plot(obj, mar=c(.1,.1,2,.1),scale.bar=c(.005,.05), ylim=c(-.2,1))  
title("A. YCh                                    B. mtG")
obj <-  cophylo(ncAI, all_data)
plot(obj, mar=c(.1,.1,2,.1),scale.bar=c(.005,.05), ylim=c(-.2,1))
title("C. ncAI                              D. All data")

Unfortunately this function does not (yet) offer to add confidences to some splits, but we can do this easily with more basic plot functions.

par(mfrow=c(2,2), mar = c(2,2,4,2))
YCh <- plotBS(midpoint(YCh), YCh_boot, "phylogram", p=0, main = "YCh")
mtG <- plotBS(midpoint(mtG), mtG_boot, "phylogram", p=0, main = "mtG")
ncAI <- plotBS(midpoint(ncAI), ncAI_boot, "phylogram", p=0, main = "ncAI")
all_data <- plotBS(midpoint(all_data), all_data_boot, "phylogram", p=0, main = "All data")

We can compare this with consensus network with the different bootstrap values for the different genes.

par(mfrow=c(1,1))
cn <- consensusNet(c(YCh, mtG, ncAI))
cn <- addConfidences(cn, YCh_boot) %>% addConfidences(mtG_boot, add=TRUE) %>% addConfidences(ncAI_boot, add=TRUE) %>% addConfidences(all_data_boot, add=TRUE)
plot(cn, "2D", show.edge.label=TRUE)

Schliep, Klaus, Alastair J. Potts, David A. Morrison, and Guido W. Grimm. 2017. “Intertwining Phylogenetic Trees and Networks.†Methods in Ecology and Evolution, n/a–n/a. doi:10.1111/2041-210X.12760.

Wang, Ning, Edward L. Braun, and Rebecca T. Kimball. 2012. “Testing Hypotheses About the Sister Group of the Passeriformes Using an Independent 30-Locus Data Set.†Molecular Biology and Evolution 29 (2): 737–50. doi:10.1093/molbev/msr230.

phangorn/inst/doc/IntertwiningTreesAndNetworks.Rmd0000644000176200001440000003345313201424001022113 0ustar liggesusers--- title: 'Intertwining phylogenetic trees and networks: R Example Script' author: "Klaus Schliep, Alastair Potts, David Morrison and Guido Grimm" date: "`r format(Sys.time(), '%B %d, %Y')`" bibliography: phangorn.bib output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{IntertwiningTreesAndNetworks} %\VignetteEngine{knitr::rmarkdown} %\usepackage[utf8]{inputenc} --- [comment]: # (output: html_document) --- nocite: | @Schliep2017 ... ```{r setup, echo=FALSE} # set global chunk options: images will be bigger knitr::opts_chunk$set(fig.width=6, fig.height=6) #, global.par=TRUE options(digits = 4) knitr::knit_hooks$set(small.mar=function(before, options, envir){ if (before && options$fig.show!='none') par(mar=c(.5,.5,.5,.5)) }) ``` *Description:* This script provides examples of the new functions available in the phangorn library to 'intertwine' trees and networks, i.e. compare trees and networks and data transferrance. It also provides a step-by-step guide for users new to R. *Methodological advancement:* The major advancement in this phangorn update is the introduction of a generic network object with a wide range of related transfer and analysis functions. These new functions provide the first means to directly transfer information amongst a wide range of phylogenetic trees and networks, as well as means to visualise and further analyse this information. This should provide a platform for individuals to easily conduct tree-network comparisons and stimulate further function development by the community. *What next?:* By implementing full network handling compatibility in R, and providing exemplar scripts (such as this) and [support](https://github.com/KlausVigo/phangorn), the scientific community now has an easy means to analyse and compare the results of phylogenetic trees vs. network approaches. We hope this will open a largely unexplored world to the general phylogenetic audience. ### Installing R 1. Download R Select the nearest mirror to your location at https://cran.r-project.org/mirrors.html 2. Select your operating system and download the relevant installation file. 3. Install R following the instructions. ### Installing the phangorn library Open R and run the two lines of code below in the command line. (You will need to select a region from which to download the library) ```{r, eval=FALSE} install.packages("phangorn", dependencies=TRUE) # install latest development version needs devtools install.packages("devtools", dependencies=TRUE) library(devtools) install_github("KlausVigo/phangorn") ``` ### Getting started ```{r} library(phangorn) # load the phangorn library library(magrittr) ``` ### Set the working directory This is often a major stumbling block for new R users. You need to specify where in your folder structure you wish to work. i.e, where are the files stored that you wish to input? This is done using the `setwd()` function, e.g. `setwd("C:/TreesNetworks/Example Files")`. We now set it to the folder of the phangorn package, which contains the files we want to load for this example. ### Read in the example file datasets: This example files are based on the woodmouse dataset available in the ape library. Ultimately, this dataset is from this study: Michaux, J. R., Magnanou, E., Paradis, E., Nieberding, C. and Libois, R. (2003) Mitochondrial phylogeography of the Woodmouse (*Apodemus sylvaticus*) in the Western Palearctic region. Molecular Ecology, 12, 685-697.) ```{r} ## automatically set the correct working directory for the examples below # setwd(system.file("extdata/trees", package = "phangorn")) # for this vignette we create a path to the files we want to load fdir <- system.file("extdata/trees", package = "phangorn") ## in your case it may look something like this... # setwd("C:/TreesNetworks/Example Files") ##DNA Matrix, maybe not needed woodmouse <- read.phyDat(file.path(fdir, "woodmouse.fasta"),format="fasta") ## RAxML best-known tree with bipartition support (from previous analysis) raxml.tree <- read.tree(file.path(fdir,"RAxML_bipartitions.woodmouse")) ## RAxML bootstrap trees (from previous analysis) raxml.bootstrap <- read.tree(file.path(fdir,"RAxML_bootstrap.woodmouse")) ## MrBayes consensus tree (50% majority rule) (from previous analysis) mrbayes.tree <- read.nexus(file.path(fdir,"woodmouse.mrbayes.nex.con")) ## MrBayes sample runs 1 and 2 (from previous analysis) run1 <- read.nexus(file.path(fdir,"woodmouse.mrbayes.nex.run1.t")) run2 <- read.nexus(file.path(fdir,"woodmouse.mrbayes.nex.run2.t")) ## How many trees are in the MrBayes tree sample? run1 run2 ## Combining the two runs and removing 25% burn-in mrbayes.trees <- c(run1[251:1001],run2[251:1001]) ## NeigbourNet Nexus file generated by SplitsTree (from previous analysis) Nnet <- read.nexus.networx(file.path(fdir,"woodmouse.nxs")) ``` All example files read into R. ### Viewing the data ```{r} par(mfrow=c(1,2), mar=c(1,1,1,1)) # Setting plot parameters ### Plotting trees with support values: ## RAxML plot(raxml.tree) nodelabels(raxml.tree$node.label, adj = c(1, 0), frame = "none") ## MrBayes plot(mrbayes.tree) nodelabels(mrbayes.tree$node.label, adj = c(1, 0), frame = "none") par(mfrow=c(1,1)) # Setting plot parameters # NeighbourNet plot(Nnet,"2D") ## alternatively, # plot(Nnet,"2D") ``` ### Interwining trees and network functions ### 1A: Identification of edge bundles (in black) in a neighbour-net (NN) network that correspond to branches (labelled 1-12) in a tree (a maximum likelihood tree, in this case). ```{r, fig.width=7, fig.height=4, small.mar=TRUE} # create a vector of labels for the network corresponding to edges in the tree edge.lab <- createLabel(Nnet, raxml.tree, raxml.tree$edge[,2], "edge") # could be also 1:27 instead of raxml.tree$edge[,2] # Show the correspondingly labelled tree and network in R par(mfrow=c(1,2)) plot(raxml.tree, "u", rotate.tree = 180, cex=.7) edgelabels(raxml.tree$edge[,2],col="blue", frame="none", cex=.7) # find edges that are in the network but not in the tree edge.col <- rep("black", nrow(Nnet$edge)) edge.col[ is.na(edge.lab) ] <- "red" # or a simpler alternative... edge.col <- createLabel(Nnet, raxml.tree, "black", nomatch="red") x <- plot(Nnet, edge.label = edge.lab, show.edge.label = T, "2D", edge.color = edge.col, col.edge.label = "blue", cex=.7) # the above plot function returns an invisible networx object and this object also # contains the colors for the edges. ``` ### 1B: Bootstrap support for all branches (branch labels) in the ML tree mapped on the corresponding edge bundles of the NN network. The edges in the network which are not found as ML tree branches are highlighted in red. ```{r, small.mar=TRUE} # the scaler argument multiplies the confidence values. This is useful to switch # confidences values between total, percentage or ratios. x <- addConfidences(Nnet,raxml.tree, scaler = .01) # find splits that are in the network but not in the tree split.col <- rep("black", length(x$splits)) split.col[ !matchSplits(as.splits(x), as.splits(raxml.tree)) ] <- "red" # simpler alternative... split.col2 <- createLabel(x, raxml.tree, label="black", "split", nomatch="red") # Plotting in R out.x <- plot(x,"2D",show.edge.label=TRUE, split.color=split.col, col.edge.label = "blue") ``` Again we can write to SplitsTree for viewing... ```{r} # write.nexus.networx(out.x,"woodmouse.tree.support.nxs") ## or we can also export the splits alone (for usage in software other than SplitsTree) # write.nexus.splits(as.splits(out.x),"woodmouse.splits.support.nxs") ``` ### 1C: Frequencies of bipartitions found in the bootstrap pseudoreplicates mapped on the corresponding edge bundles of the NN network using a threshold of 10% (i.e. any edge is labelled that occurs in at least 100 of the 1000 ML-BS pseudoreplicates). Edge bundles not found in the ML tree are labelled using grey edges. ```{r, small.mar=TRUE} y <- addConfidences(Nnet, as.splits(raxml.bootstrap)) edge.col <- createLabel(y, raxml.tree, label="black", "edge", nomatch="grey") y <- plot(y,"2D",show.edge.label=TRUE, edge.color=edge.col) ## Write to SplitsTree for viewing # write.nexus.networx(y,"NN.with.bs.support.nxs") ``` ### Extras... We can also compare the neighborNet with a consensusNet (Holland BR, Huber KT, Moulton V, Lockhart PJ,2004, Using consensus networks to visualize contradictory evidence for species phylogeny. Molecular Biology and Evolution, 21, 1459-1461). Furthermore, we can extract the support values from the consensus network, and place these on to the NeighbourNet (this is similar to the process explained in 1C above). ```{r, small.mar=TRUE} cnet <- consensusNet(raxml.bootstrap,prob=0.10) edge.col <- createLabel(cnet, Nnet, label="black", "edge", nomatch="grey") cnet <- plot(cnet, "2D", show.edge.label = TRUE, edge.color=edge.col) edge.col <- createLabel(Nnet, cnet, label="black", "edge", nomatch="grey") z <- plot(Nnet, "2D", show.edge.label = TRUE, edge.color=edge.col) obj <- addConfidences(Nnet,cnet) plot(obj,"2D",show.edge.label=T, edge.color=edge.col, col.edge.label = "blue") ## Write to SplitsTree for viewing # write.nexus.networx(obj,"Nnet.with.ML.Cnet.Bootstrap.nxs") ``` ### There are four possible data patterns in phylogenetic reconstruction: (1) patterns that are well supported in the network and appear in the bootstapped trees; (2) patterns that are well supported by (part of) the data/network but do not appear in the optimised trees, i.e. they are incompatible with the tree; (3) patterns that are weakly supported by the network but appear in the optimised trees anyway, i.e. they are compatible with the tree. Here we demonstrate these patterns by showing the relationships between splits weights, from a NeighborNet splits graph, bootstrap bipartitions support and bootstrap percentages plotted on the optimised tree for a dataset of @Wang2012. (An advanced user figure...) ```{r, fig.width=7, fig.height=6} Nnet <- read.nexus.networx(file.path(fdir,"RAxML_distances.Wang.nxs")) raxml.tree <- read.tree(file.path(fdir,"RAxML_bestTree.Wang.out")) %>% unroot raxml.bootstrap <- read.tree(file.path(fdir,"RAxML_bootstrap.Wang.out")) bs_splits <- as.splits(raxml.bootstrap) tree_splits <- as.splits(raxml.tree) %>% unique %>% removeTrivialSplits # we overwrite bootstrap values and set the weights # to 1e-6 (almost zero), as we plot them on a log scale later on attr(bs_splits, "weights")[] <- 1e-6 # combine the splits from the bootstrap and neighbor net # and delete duplicates and add the confidence values # we get rid of trivial splits all_splits <- c(Nnet$splits, bs_splits) %>% unique %>% removeTrivialSplits %>% addConfidences(bs_splits, scaler=100) # For easier plotting we create a matrix with the confidences and # weights as columns tab <- data.frame(SplitWeight = attr(all_splits, "weights"), Bootstrap=attr(all_splits, "confidences"), Tree=FALSE) # we add a logical variable pto indicate which splits are in the RAxML tree tab$Tree[matchSplits(tree_splits, all_splits, FALSE)] = TRUE tab[is.na(tab[,"Bootstrap"]),"Bootstrap"] <- 0 tab[,"Bootstrap"] <- round(tab[,"Bootstrap"]) rownames(tab) <- apply(as.matrix(all_splits, zero.print = ".", one.print = "|"), 1, paste0, collapse="") tab[1:10,] col <- rep("blue", nrow(tab)) col[tab[,"Bootstrap"]==0] <- "green" col[tab[,"SplitWeight"]==1e-6] <- "red" pch = rep(19, nrow(tab)) pch[tab$Tree] <- 17 par(mar=c(5.1, 4.1, 4.1, 8.1), xpd=TRUE) plot(tab[,"SplitWeight"], tab[,"Bootstrap"], log="x", col=col, pch=pch, xlab="Split weight (log scale)", ylab="Bootstrap (%)") legend("topright", inset=c(-0.35,0), c("Pattern 1", "Pattern 2", "Pattern 3", "Pattern in the\nbest tree"), pch=c(19,19,19,17), col=c("blue", "green", "red", "black"), bty="n") ``` ### Figure 4 ```{r} YCh <- read.tree(file.path(fdir, "RAxML_bestTree.YCh")) mtG <- read.tree(file.path(fdir, "RAxML_bestTree.mtG")) ncAI <- read.tree(file.path(fdir, "RAxML_bestTree.AIs")) all_data <- read.tree(file.path(fdir, "RAxML_bestTree.3moles")) YCh_boot <- read.tree(file.path(fdir, "RAxML_bootstrap.YCh")) mtG_boot <- read.tree(file.path(fdir, "RAxML_bootstrap.mtG")) ncAI_boot <- read.tree(file.path(fdir, "RAxML_bootstrap.AIs")) all_data_boot <- read.tree(file.path(fdir, "RAxML_bootstrap.3moles")) ``` There are several option plotting a co-phylogeny. In the following we use the `cophylo` function of the `phytools` package. [comment]: # ({r cophylo, fig.width=7, fig.height=7}) ``` library(phytools) par(mfrow=c(2,1)) obj <- cophylo(YCh, mtG) plot(obj, mar=c(.1,.1,2,.1),scale.bar=c(.005,.05), ylim=c(-.2,1)) title("A. YCh B. mtG") obj <- cophylo(ncAI, all_data) plot(obj, mar=c(.1,.1,2,.1),scale.bar=c(.005,.05), ylim=c(-.2,1)) title("C. ncAI D. All data") ``` ![](cophylo.png) Unfortunately this function does not (yet) offer to add confidences to some splits, but we can do this easily with more basic plot functions. ```{r} par(mfrow=c(2,2), mar = c(2,2,4,2)) YCh <- plotBS(midpoint(YCh), YCh_boot, "phylogram", p=0, main = "YCh") mtG <- plotBS(midpoint(mtG), mtG_boot, "phylogram", p=0, main = "mtG") ncAI <- plotBS(midpoint(ncAI), ncAI_boot, "phylogram", p=0, main = "ncAI") all_data <- plotBS(midpoint(all_data), all_data_boot, "phylogram", p=0, main = "All data") ``` We can compare this with consensus network with the different bootstrap values for the different genes. ```{r, small.mar=TRUE} par(mfrow=c(1,1)) cn <- consensusNet(c(YCh, mtG, ncAI)) cn <- addConfidences(cn, YCh_boot) %>% addConfidences(mtG_boot, add=TRUE) %>% addConfidences(ncAI_boot, add=TRUE) %>% addConfidences(all_data_boot, add=TRUE) plot(cn, "2D", show.edge.label=TRUE) ``` phangorn/inst/doc/Ancestral.pdf0000644000176200001440000046005113241142074016223 0ustar liggesusers%PDF-1.5 %¿÷¢þ 1 0 obj << /Type /ObjStm /Length 13209 /N 77 /First 623 >> stream 2 0 3 67 4 266 5 344 6 531 7 572 8 665 9 784 10 957 11 1077 12 1224 13 1326 14 1502 15 1646 16 1795 17 1942 18 2088 19 2139 20 2495 21 2792 22 3297 23 3758 24 3902 25 4116 26 4463 27 4746 28 5107 29 5394 30 5849 31 6347 32 6491 33 6705 34 7031 35 7294 36 7312 37 7414 38 7564 39 7730 40 7785 41 7803 42 7857 43 8003 44 8151 45 8317 46 8664 47 8891 48 9157 49 9400 50 9543 51 9759 52 10011 53 10244 54 10262 55 10364 56 10444 57 10537 58 10597 59 10615 60 10681 61 10831 62 10849 63 10915 64 11067 65 11272 66 11418 67 11631 68 11649 69 11727 70 11814 71 11894 72 11981 73 12069 74 12151 75 12200 76 12309 77 12396 78 12475 << /Metadata 79 0 R /Outlines 6 0 R /Pages 4 0 R /Type /Catalog >> << /Author () /CreationDate (D:20180214182028-05'00') /Creator (LaTeX with hyperref package) /Keywords () /ModDate (D:20180214182028-05'00') /Producer (GPL Ghostscript 9.21) /Subject () /Title () >> << /Count 6 /Kids [ 5 0 R 38 0 R 9 0 R 16 0 R 44 0 R 11 0 R ] /Type /Pages >> << /Annots [ 13 0 R 14 0 R 15 0 R 17 0 R ] /Contents 80 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /ExtGState 35 0 R /Font 36 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> << /Count 4 /First 7 0 R /Last 12 0 R >> << /Dest [ 5 0 R /XYZ 79.2 500.661 null ] /Next 8 0 R /Parent 6 0 R /Title (Introduction) >> << /Dest [ 5 0 R /XYZ 79.2 405.476 null ] /Next 10 0 R /Parent 6 0 R /Prev 7 0 R /Title (Parsimony reconstructions) >> << /Annots [ 42 0 R 43 0 R ] /Contents 81 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /ExtGState 53 0 R /Font 54 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> << /Dest [ 9 0 R /XYZ 79.2 626.992 null ] /Next 12 0 R /Parent 6 0 R /Prev 8 0 R /Title (Likelihood reconstructions) >> << /Contents 82 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /ExtGState 67 0 R /Font 68 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> << /Dest [ 11 0 R /XYZ 79.2 577.655 null ] /Parent 6 0 R /Prev 10 0 R /Title (Session Information) >> << /A << /S /URI /Type /Action /URI (mailto:klaus.schliep@gmail.com) >> /Border [ 0 0 1 ] /C [ 0 1 1 ] /Rect [ 251.394 572.716 353.407 592.641 ] /Subtype /Link /Type /Annot >> << /Border [ 0 0 1 ] /C [ 0 1 0 ] /Dest [ 11 0 R /XYZ 79.2 699.757 null ] /Rect [ 81.444 439.814 89.282 449.62 ] /Subtype /Link /Type /Annot >> << /Border [ 0 0 1 ] /C [ 1 0 0 ] /Dest [ 16 0 R /XYZ 131.987 143.005 null ] /Rect [ 330.291 129.581 338.13 143.415 ] /Subtype /Link /Type /Annot >> << /Contents 83 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /ExtGState 58 0 R /Font 59 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> << /Border [ 0 0 1 ] /C [ 0 1 0 ] /Dest [ 11 0 R /XYZ 79.2 665.386 null ] /Rect [ 423.67 118.124 431.508 127.929 ] /Subtype /Link /Type /Annot >> << /BM /Normal /OPM 1 /TK true /Type /ExtGState >> << /BaseFont /RHLEDO+CMR17 /Encoding /WinAnsiEncoding /FirstChar 40 /FontDescriptor 20 0 R /LastChar 119 /Subtype /Type1 /Type /Font /Widths [ 354 354 0 0 0 0 249 0 458 0 458 0 458 0 0 0 0 0 0 0 0 0 0 0 0 693 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 693 0 0 0 0 0 0 0 0 0 0 458 0 406 0 406 0 458 510 249 0 0 249 0 510 458 510 484 354 359 354 510 0 667 ] >> << /Ascent 749 /CapHeight 707 /CharSet (/A/V/a/c/e/four/g/h/i/l/n/o/p/parenleft/parenright/period/q/r/s/t/two/u/w/zero) /Descent -250 /Flags 32 /FontBBox [ 0 -250 682 749 ] /FontFile3 84 0 R /FontName /RHLEDO+CMR17 /ItalicAngle 0 /MissingWidth 500 /StemV 102 /Type /FontDescriptor /XHeight 446 >> << /BaseFont /RQHSUR+CMR12 /Encoding 78 0 R /FirstChar 11 /FontDescriptor 22 0 R /LastChar 123 /Subtype /Type1 /Type /Font /Widths [ 571 543 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 271 489 0 0 0 0 0 380 380 0 0 271 326 271 0 489 489 489 489 489 489 489 489 489 489 271 0 0 761 0 0 0 734 693 707 747 666 639 0 734 353 0 761 611 897 734 761 666 0 720 543 707 734 0 1006 0 734 598 271 0 271 0 0 0 489 543 435 543 435 299 489 543 271 299 516 271 815 543 489 543 516 380 386 380 543 516 707 516 516 0 489 ] >> << /Ascent 750 /CapHeight 750 /CharSet (/A/B/C/D/E/F/H/I/K/L/M/N/O/P/R/S/T/U/W/Y/Z/a/b/bracketleft/bracketright/c/colon/comma/d/e/eight/endash/equal/exclam/f/ff/fi/five/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/parenleft/parenright/period/q/quotedblright/r/s/seven/six/t/three/two/u/v/w/x/y/zero) /Descent -251 /Flags 4 /FontBBox [ -34 -251 988 750 ] /FontFile3 85 0 R /FontName /RQHSUR+CMR12 /ItalicAngle 0 /MissingWidth 500 /StemV 148 /Type /FontDescriptor >> << /BaseFont /TTKDVL+SFRM1000 /Encoding 69 0 R /FirstChar 42 /FontDescriptor 24 0 R /LastChar 42 /Subtype /Type1 /Type /Font /Widths [ 500 ] >> << /Ascent 466 /CapHeight 466 /CharSet (/asteriskmath) /Descent 0 /Flags 4 /FontBBox [ 0 0 434 466 ] /FontFile3 86 0 R /FontName /TTKDVL+SFRM1000 /ItalicAngle 0 /MissingWidth 333 /StemV 65 /Type /FontDescriptor >> << /BaseFont /SQUJTT+CMBX12 /Encoding /WinAnsiEncoding /FirstChar 49 /FontDescriptor 26 0 R /LastChar 121 /Subtype /Type1 /Type /Font /Widths [ 562 562 562 562 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 418 0 0 675 0 0 0 768 0 839 625 0 0 0 0 0 0 0 0 0 0 0 0 0 546 0 500 625 513 343 0 625 312 0 593 312 937 625 562 0 0 459 443 437 625 0 0 0 593 ] >> << /Ascent 700 /CapHeight 698 /CharSet (/I/L/P/R/S/a/c/d/e/f/four/h/i/k/l/m/n/o/one/r/s/t/three/two/u/y) /Descent -200 /Flags 32 /FontBBox [ 0 -200 913 700 ] /FontFile3 87 0 R /FontName /SQUJTT+CMBX12 /ItalicAngle 0 /MissingWidth 500 /StemV 136 /Type /FontDescriptor /XHeight 453 >> << /BaseFont /XQKTFQ+CMTI12 /Encoding /WinAnsiEncoding /FirstChar 46 /FontDescriptor 28 0 R /LastChar 121 /Subtype /Type1 /Type /Font /Widths [ 300 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 726 688 700 0 663 0 0 0 0 0 0 613 876 0 0 663 0 713 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 450 500 450 300 450 500 300 0 0 250 800 550 500 500 450 412 400 325 525 450 650 0 475 ] >> << /Ascent 714 /CapHeight 714 /CharSet (/A/B/C/E/L/M/P/R/a/c/d/e/f/g/h/i/l/m/n/o/p/period/q/r/s/t/u/v/w/y) /Descent -204 /Flags 32 /FontBBox [ -27 -204 977 714 ] /FontFile3 88 0 R /FontName /XQKTFQ+CMTI12 /ItalicAngle 0 /MissingWidth 500 /StemV 146 /Type /FontDescriptor /XHeight 441 >> << /BaseFont /PMHQAW+CMTT12 /Encoding /WinAnsiEncoding /FirstChar 34 /FontDescriptor 30 0 R /LastChar 121 /Subtype /Type1 /Type /Font /Widths [ 514 0 0 514 0 0 514 514 0 0 514 514 514 514 514 514 514 514 514 0 514 514 514 0 514 0 514 514 514 0 0 514 514 514 514 514 514 514 514 514 0 0 514 514 514 514 514 0 514 514 514 514 0 0 0 514 0 514 0 514 0 514 0 514 514 514 514 514 514 514 514 514 0 514 514 514 514 514 514 514 514 514 514 514 0 514 514 514 ] >> << /Ascent 694 /AvgWidth 514 /CapHeight 625 /CharSet (/A/B/C/D/E/F/G/H/I/L/M/N/O/P/R/S/T/U/Y/a/b/bracketleft/bracketright/c/colon/comma/d/e/eight/equal/f/four/g/greater/h/hyphen/i/k/l/less/m/n/o/one/p/parenleft/parenright/percent/period/q/quotedbl/r/s/seven/six/slash/t/three/two/u/underscore/w/x/y/zero) /Descent -229 /Flags 35 /FontBBox [ -1 -229 524 694 ] /FontFile3 89 0 R /FontName /PMHQAW+CMTT12 /ItalicAngle 0 /MaxWidth 514 /MissingWidth 514 /StemV 113 /Type /FontDescriptor /XHeight 443 >> << /BaseFont /ZHWYHV+SFRM0700 /Encoding 71 0 R /FirstChar 42 /FontDescriptor 32 0 R /LastChar 42 /Subtype /Type1 /Type /Font /Widths [ 569 ] >> << /Ascent 466 /CapHeight 466 /CharSet (/asteriskmath) /Descent 0 /Flags 4 /FontBBox [ 0 0 487 466 ] /FontFile3 90 0 R /FontName /ZHWYHV+SFRM0700 /ItalicAngle 0 /MissingWidth 384 /StemV 73 /Type /FontDescriptor >> << /BaseFont /KLOGWP+CMR10 /Encoding /WinAnsiEncoding /FirstChar 46 /FontDescriptor 34 0 R /LastChar 117 /Subtype /Type1 /Type /Font /Widths [ 277 0 0 0 0 0 0 0 0 0 0 0 277 0 0 0 0 0 777 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 444 0 444 0 500 555 277 0 527 277 833 0 500 555 0 0 394 388 555 ] >> << /Ascent 705 /CapHeight 705 /CharSet (/a/at/c/colon/e/g/h/i/k/l/m/o/p/period/s/t/u) /Descent -206 /Flags 32 /FontBBox [ 0 -206 813 705 ] /FontFile3 91 0 R /FontName /KLOGWP+CMR10 /ItalicAngle 0 /MissingWidth 500 /StemV 121 /Type /FontDescriptor /XHeight 453 >> << /R19 18 0 R >> << /R20 19 0 R /R22 21 0 R /R24 23 0 R /R26 25 0 R /R28 27 0 R /R30 29 0 R /R32 31 0 R /R34 33 0 R >> << /Border [ 0 0 1 ] /C [ 1 0 0 ] /Dest [ 38 0 R /XYZ 132.963 421.957 null ] /Rect [ 443.025 247.611 450.863 261.445 ] /Subtype /Link /Type /Annot >> << /Annots [ 37 0 R ] /Contents 92 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /ExtGState 40 0 R /Font 41 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> << /BaseFont /Helvetica /Subtype /Type1 /Type /Font >> << /R19 18 0 R >> << /R22 21 0 R /R28 27 0 R /R30 29 0 R /R42 39 0 R >> << /Border [ 0 0 1 ] /C [ 0 1 0 ] /Dest [ 11 0 R /XYZ 79.2 627.201 null ] /Rect [ 415.791 549.909 423.63 559.714 ] /Subtype /Link /Type /Annot >> << /Border [ 0 0 1 ] /C [ 1 0 0 ] /Dest [ 44 0 R /XYZ 130.102 143.34 null ] /Rect [ 510.393 256.526 518.232 270.36 ] /Subtype /Link /Type /Annot >> << /Annots [ 60 0 R ] /Contents 93 0 R /MediaBox [ 0 0 612 792 ] /Parent 4 0 R /Resources << /ExtGState 61 0 R /Font 62 0 R /ProcSet [ /PDF /Text ] >> /Type /Page >> << /BaseFont /JMBTAL+CMMI12 /Encoding 76 0 R /FirstChar 25 /FontDescriptor 46 0 R /LastChar 120 /Subtype /Type1 /Type /Font /Widths [ 555 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 271 0 0 0 0 0 734 0 0 0 0 0 0 0 0 0 0 666 0 0 0 631 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 334 0 509 0 0 0 0 0 0 0 0 0 0 0 0 556 ] >> << /Ascent 714 /CapHeight 714 /CharSet (/A/L/P/comma/i/k/pi/x) /Descent -193 /Flags 4 /FontBBox [ 0 -193 740 714 ] /FontFile3 94 0 R /FontName /JMBTAL+CMMI12 /ItalicAngle 0 /MissingWidth 500 /StemV 111 /Type /FontDescriptor >> << /BaseFont /SSZTBK+CMMI8 /Encoding 70 0 R /FirstChar 59 /FontDescriptor 48 0 R /LastChar 114 /Subtype /Type1 /Type /Font /Widths [ 295 0 0 0 0 0 795 0 757 0 0 0 827 0 0 0 0 0 0 0 0 0 0 0 0 618 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 361 0 553 0 0 0 0 0 0 479 ] >> << /Ascent 714 /CapHeight 714 /CharSet (/A/C/G/T/comma/i/k/r) /Descent -193 /Flags 131076 /FontBBox [ 0 -193 800 714 ] /FontFile3 95 0 R /FontName /SSZTBK+CMMI8 /ItalicAngle 0 /MissingWidth 500 /StemV 120 /Type /FontDescriptor /XHeight 441 >> << /BaseFont /MOJVAW+CMEX10 /Encoding 72 0 R /FirstChar 80 /FontDescriptor 50 0 R /LastChar 80 /Subtype /Type1 /Type /Font /Widths [ 1055 ] >> << /Ascent 0 /CapHeight 0 /CharSet (/summationtext) /Descent -1000 /Flags 4 /FontBBox [ 0 -1000 999 0 ] /FontFile3 96 0 R /FontName /MOJVAW+CMEX10 /ItalicAngle 0 /MissingWidth 500 /StemV 149 /Type /FontDescriptor >> << /BaseFont /ZKCFKU+CMSY8 /Encoding 75 0 R /FirstChar 50 /FontDescriptor 52 0 R /LastChar 103 /Subtype /Type1 /Type /Font /Widths [ 708 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 531 531 ] >> << /Ascent 750 /CapHeight 750 /CharSet (/braceleft/braceright/element) /Descent -250 /Flags 4 /FontBBox [ 0 -250 619 750 ] /FontFile3 97 0 R /FontName /ZKCFKU+CMSY8 /ItalicAngle 0 /MissingWidth 500 /StemV 92 /Type /FontDescriptor >> << /R19 18 0 R >> << /R22 21 0 R /R26 25 0 R /R28 27 0 R /R30 29 0 R /R50 45 0 R /R52 47 0 R /R54 49 0 R /R56 51 0 R >> << /BaseFont /Helvetica-Oblique /Encoding 74 0 R /Subtype /Type1 /Type /Font >> << /BaseFont /ZapfDingbats /Encoding 77 0 R /Subtype /Type1 /ToUnicode 98 0 R /Type /Font >> << /BaseFont /Helvetica-Bold /Subtype /Type1 /Type /Font >> << /R19 18 0 R >> << /R22 21 0 R /R42 39 0 R /R62 55 0 R /R63 56 0 R /R64 57 0 R >> << /Border [ 0 0 1 ] /C [ 1 0 0 ] /Dest [ 16 0 R /XYZ 131.987 143.005 null ] /Rect [ 291.149 124.909 298.988 138.743 ] /Subtype /Link /Type /Annot >> << /R19 18 0 R >> << /R22 21 0 R /R42 39 0 R /R62 55 0 R /R63 56 0 R /R64 57 0 R >> << /BaseFont /YWPUQU+CMSS12 /Encoding /WinAnsiEncoding /FirstChar 82 /FontDescriptor 64 0 R /LastChar 82 /Subtype /Type1 /Type /Font /Widths [ 630 ] >> << /Ascent 694 /CapHeight 694 /CharSet (/R) /Descent 0 /Flags 65568 /FontBBox [ 0 0 602 694 ] /FontFile3 99 0 R /FontName /YWPUQU+CMSS12 /ItalicAngle 0 /MissingWidth 500 /StemV 90 /Type /FontDescriptor >> << /BaseFont /RQTENL+SFRM1200 /Encoding 73 0 R /FirstChar 136 /FontDescriptor 66 0 R /LastChar 136 /Subtype /Type1 /Type /Font /Widths [ 489 ] >> << /Ascent 442 /CapHeight 442 /CharSet (/bullet) /Descent 0 /Flags 65540 /FontBBox [ 0 0 435 442 ] /FontFile3 100 0 R /FontName /RQTENL+SFRM1200 /ItalicAngle 0 /MissingWidth 326 /StemV 65 /Type /FontDescriptor >> << /R19 18 0 R >> << /R22 21 0 R /R26 25 0 R /R28 27 0 R /R30 29 0 R /R74 63 0 R /R76 65 0 R >> << /BaseEncoding /WinAnsiEncoding /Differences [ 42 /asteriskmath ] /Type /Encoding >> << /BaseEncoding /WinAnsiEncoding /Differences [ 59 /comma ] /Type /Encoding >> << /BaseEncoding /WinAnsiEncoding /Differences [ 42 /asteriskmath ] /Type /Encoding >> << /BaseEncoding /WinAnsiEncoding /Differences [ 80 /summationtext ] /Type /Encoding >> << /BaseEncoding /WinAnsiEncoding /Differences [ 136 /bullet ] /Type /Encoding >> << /Differences [ 45 /minus ] /Type /Encoding >> << /BaseEncoding /WinAnsiEncoding /Differences [ 50 /element 102 /braceleft /braceright ] /Type /Encoding >> << /BaseEncoding /WinAnsiEncoding /Differences [ 25 /pi 59 /comma ] /Type /Encoding >> << /BaseEncoding /WinAnsiEncoding /Differences [ 108 /a71 ] /Type /Encoding >> << /BaseEncoding /WinAnsiEncoding /Differences [ 11 /ff /fi 34 /quotedblright 123 /endash ] /Type /Encoding >> endstream endobj 79 0 obj << /Subtype /XML /Type /Metadata /Length 1557 >> stream GPL Ghostscript 9.21 2018-02-14T18:20:28-05:00 2018-02-14T18:20:28-05:00 LaTeX with hyperref package endstream endobj 80 0 obj << /Filter /FlateDecode /Length 3879 >> stream xœÍÙnÇññG,˜5´ã¾#6’ wl@¶‰¼Èz –g$â’¶ô÷©ªîž©îí!)X?xت®®ª®»kß­Ä(WÿËÿß^|ùƒŒ«³ÝX¼;ô¯«ü¿íåêO‡¡ÄJ‰Ñ9eW‡§i«\Å0z)âÊé8šàW‡—/‡?®7bT1Z冫5œ#‚fØÂ§"(;œ „އû¾(àŒ8ÜⲈ1%‡#üö*m†·ëb´ÑU[OÖ¸æUÃ;‚ŽÑ7ÜÓùNIR%¢ÖF[  –ÈÒBÂùx)„Ñ:£>(|½Æ/¥®Ðš´Cvf$…e¥ÉTy«T‘ RÅÁ/ðÛÆ(¬¦“t18‰˜Q¿Ðù!€x8pF"sž #ÿ†H4އåùûˆ°Çq#¬ÐV gt¤F3ŸqËptˆ>†ðêðŸÒèÑè°Ú(ƒ7¨W‡Ç  ? Œ¥¯½½ð‘ß—3Ýj•wœ€«tA>Õ¼:®§m†)ÊHÒk5¶üӚݒº­VÒŒÚ8Eº Êkäj£-¨4ê4rò/ÒiÐ^‰ û…6 )›(eÐt©B ‹¬håFÂðb@PÂ: ˆ…”à v»†Ee¾˜¼šO1ÆÆ¢Ó_(?|Tx¯xi1DSx1«8F§\bv)¹²@º Y¾Xþgçc4p­GéTL\ÿuäƒsÉbe- ÃëDL´ÎÀ¿Ü¢.ƒêÅXI`– ]±µ> ì¤äP. Œwxže$\ºaÓ—d aþά»•ô£’Ö$–œA€Jº`Ñ$–ƒ”@èþ?òE ±–@=ù +Œ´™rƒÒ … zð‡óÃñý6§ÒÕL@¸9¾Y·@†Ö’œ5åP§¾=8üâåp˜µJªˆÆŠÔ€S°ÅCæÙ¥ëVäÃ@< ô*&iÛ RG²Ðàò6îH†KÚ ~ó˜o]8iË–ñŠ•”ph–°æœK=Pž“tGªà…³™›ùˆrÄ%·)”¯«óP¿ƒ.dŸ— }ú\º™îIf 'Åð©» ×üýŽøPŒø~Òa¯k9%ªŒWÞ¶Tr šêx"4^Ù úºeT:­=I8ƒÖrÇÜ.Q¶møÛÒ:æ{È¢»&USQCÐ –Iϯ’Ìacƒ‘ '»k‚¸« î,!°Qæ{uà~ʽJ‡Ž—‰-+{àÊîÀ3¹( E7çGWg×È©‰F’7EjÚÄÏ;"G¯è9M^Þ¬­µ°µn¥ð j©ÜîÖÅÕüŸ1N¦ƒ^&ͳäyò9¯Ø2øoÙ㼉vjOŒÉBBR°Ä(ÜW0¡á4YÌílI×È©A‡ø3¶Ç˜XÙáæ¼1(œ“@+w`(?#n%MHk"xxÀ¶˜Æp™ü|°º¶/¦ ç•.]£§@'\|SFD $p%»N«6î±S‘ÆËÚ8iL]îú{4ô€cš$óbng.8Fž†@­™æž/èöÂì¹H¥£¯ˆº%EÓ"Ž‚Šb-¸PNÞºr;BA¶É½óµo ûØ€¬Æàuca'- ÔP3 ÖÎQCxÆrÞ0|ÇV“Ì@Ljx¿`—kQ÷Ü@.ç,ìEʼ\¨„q;ÇÏŽ¯t˜„JϮ竻‚ãuœ3‡Yð$#Nþ‹ôMzƒYi‚7ßm"6€õGjk‚¬ˆ}Oj°ÚØÁÄw±5Æø·D¦Õ¦7H½¬;¨î¼*àE ÇO‡õ™GcG¦ B[B"ü›BL Ì×VYÔ™A†’?©9™{雉"V(ל U·#ìJ&¦-Ôp ÷˽ì .ÄMÉ Þ¢7 #s2(³fBeåÀqn©<“¢¯vIui5ùáD ÊŸ˜:n¦c¨Ê‰Þ{•ò… tµ›Ræ°˜EB`²Hª0HsHÞPGdm}›uŠ\t4u2¹ï0€ë0åñ½S¦/¬7w™‡¼+úZ9´ {“RU¹'0aµK²Ë'¥ÌŠ-Å1¾ÍŠü'Mö–<½¦0éÀ ’Ã9ëuè4‡Ï*ì,ÔrLæ-d2¨9w›xâf}Ìù›2FžS^¶<rê[Å@šÜÉú–(xH;ú9+aÌ8ëhÔÌM¥Q)¸-fñÆ{¾íNrª+ T0ª¾š|‰ÜŒ6**¨€W¥!\‰\é³ÞX ©YªÀ³´ÉP%6L^7‘"­&1:鳟È&€Ô ÉË7Óòù¼¯M@À[½žVoçmW µ6Ò©)“ÃoòÿÎ.{ûκˆ/šü#­Þõk9«Ø9­ §‡ÿ6ƒ‚ ÿ~>`ƒ«VY^ýÀöízttùÙê)#bÚÆ…~Ò—Þ³iùdÞ÷¾+§c¶zÔ£’«Ó—‰÷„ÜãþÙ¼íù,´›þiÛiÛ›>À?­ ûºÜ&;ë†m:gšÕ7”iÛuuóäÔ,8ëYmÜ‘y«c›²«Nc'µ»yT­»Öpוûn–D«¡xVÿ²ŽºŠ?>&@®á~ŒDÊÛ·³Ùm¼í[Æ8,¨É¬ËçKÇMûŽ»'s¡<Ÿ-|A>Åu¸;î»â£¤w[“Þ=«=ZAñ¼çÈ®»l.‘Û±¢G W‚·]ÑÌÛúæÇ‘uE~ÒTG2(ƒºëÞÖIða?Îtí¶ºŽÜv㤫¢¤–¿µR1^ðÓ3Û¾Õ}=ˆZ×&ÌŸÏ¿a ŸÏ}_¾ísÂ…ž[þä‚›Ýy¨ ‰Â¦À>Á‰ÏÒå2ß1J'š.»–ÊÀ‡®ž¢â{ná7S¸½|êlkcÉ_θ$ÛõjVÏ–Ít„«±¶Õë²y‚^a›À1¿5)¬ÅBÓÿPÁCÉ¥êþhÛ-ËÅbz¿ˆ*è¶ Ä»5\O„ˆï£ð ,\U§˜±Tõ'[ǫν§åæú.q"ƒ­(8Í˱í¤ÕÅ]‚©Kùã5«]ÏfÚxUj.Ö½l/'<Ø™Y(²n8–˜¥ò;exI]>{.¸×œµúÔ…26˜â"xKõgìraK¡‘fæ¶4ñ𹽪J/Ó²œß½x{2i\ºÜÇ»¾UÁ\_g+Lâyœº­P¾jÓv[@ Á__<=#6ÇRµîbП²ÿ3Á$ý—Æ~Ô@Ay5HIuðX—h3½C'Ú j{/iÚîàû‘ˆå.x¯?Òœˆ8dêhóXJ |ù”}§ˆ!Œ ÕàAx·Ç‹Ø?ã&wµƈÞóZ›¹NàÝ·¾=½2†0z7…^ölTÓÌkþÂXÛûzšCê?=î Ϊ…všÙ¦f~9°÷kY)©Kþ÷üôÌý‚¶OC|_ò$"êÖ_CöYDVg½O{õ U y2 {õÃ|zr:˜4ƒoŽ_ÊûÊ-Lû¨N˜=½µ§AÕa´µCŽ4ö†ÈðѹmÅf{«[±KºYýñ!ScÎ:»º®u^|³áH›—õ™·ûÆxè>„\Ò©í½·ø‡ú¢N$Óô#¨S1ͽ„ŠvK¾¡î”lrÐüu/†(JTPÚ¸&£¢c"dtóü©¶æʃílõܭܳ;¬5#?`L ;‘‡ ;ÞgªŠ/ìγt ¡ööÈ|0åagÿiñ$¢í$uð/θ& (àUî¹ïC§½íeѱç xØ‘dˆãeËøÝB|NÒ“&xRë òÙ_é 8ë¥÷OJWbP௟Z ®ûÿ¶vI ¾&9¦Ç`ªR%Ç0W¥K©]'³Éf9!_˜ jÞ¿!346Ð)2çA6º3Y›ê¾Òìͽ‘¦ÐÖ¥|¤?Ëä׿QE ú†@ôØÓ¨õ°ÒíÅù¯›¤ÁÊå8±¸9÷F”MDÐDf[Ý"m²©QY(ÉEonEØmÍÝÇÕS¨@ÄÕ4»;—Vˆ\5ôUIÏI&6ÊšªF-óm3—ú»;ô£Sª²qÙ5“bP¥ƒ_6b(Hf,l®R©àš:…‹Ïšød”0÷ñÆðÁReßCäâî¢HNšN B›WS,ɬ$c±¾4sº‘¢´°µ‘d©eT¼5P™P;dàŽ—=4Âì ÿ¶úÓÁ¾˜#R=T¢]¤ÈP׬¸*CcÕÌVtóÄî<÷/{iqg4¥õëu厜âïk>Þmï23 Ã|àë³æ„Ey<"2À%³iÜ԰Δ_ ò)ÎÑ™SNŒô¡9¶ ¾è*Ãb6O¼®ë W4‰3³…ùÍ…iOÂWÍUãÏ{Ùð^K%% Aº`KO€ò·…²D¸jIÆ«“Ef)e‹Ô{Í fœ$àÑ52[ìÌ—)­_Û™O“œrQj6¸Õ{™P]¸pokŒm£‡~¦:N¢Š ÝÉ2QWO}—áÅ»ÜÃ×£šú{BeÕßkÚô#’,‡—z–׫ÒAÿËáÁ÷ÒŠÕ/bõ·PU àÅLX](ëý¡§¬¼=øqñG’Z­À }Õo$ÕjVQŽP³Eüdù–æ?Öƒr>úÕßÖLÈ¿W¢—F rÃׂ ºëÒËŽ Ú—w#PR ÂW´ØÄ›, )U†¦ÙÕ£û,’”h0!£i¢’X)êå-ª ä9Ck–Óé„ïb&„®©àB~ˆøÓ±?Ì4íq'bÄgìŒóç–r·J£º#±Gùp–2ýàãôc/þIýýÁOPendstream endobj 81 0 obj << /Filter /FlateDecode /Length 3469 >> stream xœÝÙn7ò}œÈÛÀO= O‡÷‘@ Ø`áŽ#`±pü ÎX—%9^ýý&«zØ£‘lÆBšfÉbÝûýœõ|ÎÂ_þ¿:›}÷ŠûùÑõŒÍfïg<¾ç«³ù³]€0Â{¯µ˜ïÎÒT@¢7Ìͳ½cðêlöºûçb©¹ìMw³X2xͤ3ÝÉ‚õŠ ÍÉèi=€_Òne÷G‡ ˆ_ÐèË2úªÎ{ŒþXÔ‡7»ÿšqÕ+eø|÷Ål÷ÅË&2hô¦Œ>­[#€U ˆ×yWuÞ8(O6ª7\t{xòs…¦õeÚ^‰U†)}ÕœvNqáèµ­GÑ“ñóòù)ý±ŒþXçí"€WÍi¿–ÑÇh»Ñ¾{%ÌœÛ^p­‚L/…ìsb¾Ô¢wJ°ìƒ4ËÅ’ÃR=,öc^[¡e<§fZ[Þ½[HÞ fEb¯ðÞK¬™°R, +ï÷Ý1È– O2ŠÌTž¹n~ZÕ@d”‡÷:-'3Êu«(“úü€S‚«(gšI¥LMûpß}X¥q#\Ù†/â ç܆5`Ø18Û@‡U\˜^€Zsy¼w~tq•àRùÌÓž¦%LóÁ>Dê%yÌ%‚0ÆQRuqs" µTÜ;BïÀ[§¸u™® :ÐGp.MXC xˆ$àÞ2£»ãÉ8ÓΩ0-pô,‘%ŒE ©õ€\d-c‘¼²{®+}uŠÈ››E S¦»Mg³Ù po0j819XDÀ!’æ8Æ4ϲø ÝÙ"Îi/DY´2:28'‡X¡MÇä]1‰àB:N¹à)#&Î:k¦ñCûE\9pêC:%7€cÆCiXû$ʘð ¥Â2uŽÒ"¨¾7Põ—°7N PÙz>¾Oæ#£Ä…Y-à¯Obì÷ñv˨KÀhmfK©ƒj™ù²8˜€á_ ­Â¹\2¶pg5àE© Zk¼ÑÑÈ98ºÂ™ÀÑ= £Áìdǘô"Áñ`]`;@Õ:†ýøH‘"¨õ*yÁAk°ˆ¼›è-asJ¦•“à³°T^`¡ƒ]n>*àê–¨Éu>WXDމ°blnŒí4üA¢ì‘oˆÝ*’Ö™h ¨+ʵd­øaR¥n¢¾0)==-!M<¸÷„ÿ+‚d/)To¹?®à‚4S…I”fÞa² âRc‹¸›é)©Ÿ<š°IÖ†“`;ç9Fö©h—I…ò!© eoÁµt£½Â¸cÖõhlcÖ}æd0RÁ+ÓýŽa‚†€~VŸCÕ4ð˜‹u âÝnÓ‚6ò7NÕ ³Ö &S”l÷ÏG*­pXÌ ‘ž€¤bF^tê¤\W+ù!ÄXãM +Á@ÈÄÚ¶S¢‰èx¿¦èÀ:Ž)rI%¾óÿld± ~ÕÜ`L£å›iñ¨RœT*Å 8y`'Œ [ ØË‡}eáˆOáM”–2#åø| RÑ´m §Bç!!Ø©™J‰dÏš‘õgÈ>ÐhÚ švÖL#ên(¼¿¾+Óv-Ûžu£Ë&&m¬ûö´ pбîÊða›7-*žUX„å~“øx»VÖòp€WœõI7$e¼(óPNÙN/ˆh•ÕvZùr›h5?]a:´rÎ)Ê´3¢þêÔ—8•â6SçJö4ʪ-6f‹$Ït͇0++¶• Ÿ/ûg£–‚Xæ=b™[sšŽ,ƒqñ`s+æÄçå" ¬[‚¡˜Yåt6\VÑkIqU4(‘Ѻ£Tqé(N ƒÝЧd‘`ÜLÇDÔÃåPã´q5ÔU¯LÓ²l /¶Òd3Ä£µé”Ã…R Ð2Š9ó½Vzs²ú»Îk²Zt˜ÜH9r±Ç8°»ˆY°öÆÆŸ$›X{ÙÚåC?^„’‡bƒ‹àmÁ)×ᤙêßç§©óã #Fû9¬ÂÁ|:ÌË(Ú,Ô5Zšå{n9kzèÖ&ª×ˆ1€ÿ—&h-涇À``n^rPÈjÒœ¡n"™l!d{`nçdÎÎØbúRb ZýP[‘™©ÔÜÀ„z±SB¾ ù5v ½°J¬•a‡¬•YëÓ¿MA²êBà¬õ¿X¯nZ¡xrvÖ±,k§*²(îh€ h‘«a3Ê*¯°¯/à´Ä»7õâ!µßT5˜ò­ã‡zÝmËÁcÊ KøÈÿ9xI⣫‰"ÔDð5NãöX‹uª/~áûðÚ{gØ„ÿ7¼ •¯Éý ÕÿOeĽ<Õ¶¾Ÿ÷ʺ‘ïÿö®C«`Oé¡‘ùoc'‘9[ciì3Æ_)çÖb aA!!0`¨C8 g{À~¹`aE¯Ã’¡!÷µp|÷·GÂÝ#¬Ð4¨¸[_‚‡¢¦¸š"ÕËžÃˤ/eÎçɃ Ü?x)m­/eÆ}ôe›ØÅytàÅæƒWS$€­Ë|ûaìnÆ%™ÐÌ0!ÝZA¬›f}D~n­ß׈*Æ\£XI áAáÂ,Ö(Zëj µ­3“ VÒÜÅb) b±”MïvÐ,ŧeNô?^†¦+©®Ó8 ›zìD0Ûý9®Ï õR´b®Ò³Xòö|HVã’·“¡ØÆ ͦím@C@¦I°s8‹´£qg•¿¦+Zq ®iù+Ÿ[o¬2 DE0ä”f…Q¶QéË3öÓI=mNn|ßB^š*œ©~j¢‹àß T–ë{çÚZWôRÉÊÐÎÛ͆C„ÚàCJBc5ÍkV!ü#d¨­'YédûSå1B¨-u>¿ÍZoÕöÑ\¬[0ll P9EC!Ò‚¬ù_HùÂ%žÂª¦ÎK­"«¦ šù‚ÒHÿ7Þ`‰;‘¾qÂ%Ô•ßb&jæ/î4näbiBíÀ÷h8wÓµñQPO+ίNj¹u\ÄÎлiÔ>ؘ´äGÙç‹V€O#TÊEvg=èCÇvϪ:äÎÑ^tŽÝ£ ;38eŒÔ„ÐÂ2µQaQî ±QGñè bêÂÆÀÖÐU>ÌÒɨ¡KÕoá|êEÜù´«ó’˜Æû-klL»qr5Ê «å!D?d„â½T:+¹ÊA ¾’1q«â}DÙAt<ÈgѾömˆuùT Ï 4F´––Ñ:mÕ^XTˆ'‚7­JÛ„˜é«ýlçÓüËun÷Δürß\½(£>ªù?áÒ=£‡¯ï#ªgM忽+z¹÷çRàí•ïÎÆçU´pLfɨÒ×Pñþ$8R«Épú؉—Ü2ž¯¢‹{hM²Í6|¹ãZAÇè3¥×‹zmœWËûfh&;ýÛt™8_¬›(MÔŠådSœðñ–ê^¦xÀ¸ní†wŒ(°4íã8g\wm¤$ôû,ôgÎÖÆKèÓ‡oÃöNo¯OB`Œ WÝ/ëïØ6ʹÿñíéÅBǺ‡ëŽÎnNVqš‹'Ù;ßÏpÚçhÞ_§nN.ÎóªLtOnއ=D’\n1L‰ðá*J()ðüä/'|åÉøë¢ò9øÀ%Ÿ'sD÷+ÊÍS[ -š.N( J GŸÿ,\pÁ0™Þ/(å²w5ÄöIÍtEfÅxÕ4Õ:L…8,ÐÁ;ðç¡©6´/$UÃØaümö? bsÏendstream endobj 82 0 obj << /Filter /FlateDecode /Length 3191 >> stream xœÝ[Ys·~gò#öq6¥â>TåYG¢XCR•r$—ЇHm¼\R"éÈå?àŸ0tÏ`¸$-å!År±£_ÝšŸf¬å3~ºßGg[Û»ÜÏN/·ØìtëÓßκ_Gg³ï÷ABˆç­×ZÌöO¶RW>³¾3ãlë´Ÿm½mÞÎYËçZºFÀßÒ æ|óÓ|¡<|ÃEóÃ|s{Ï™kVáoÆŒfŠ»æ È_Ç/8ÓΩær¾€ß­àÍÎ\˜Özãš k½’Î5WAÖz¯¼ŠÍŽ3+tó9õ²Î4{x´£¹€õr횸y•nŒ’ªYₘ€Â7ñ i™Q¦iç .¸j½ƒö¨ˆ×ÆÊ~àþRkM¾8 Ÿ K<!Å`: ö1L©üÃùÂkŸ¢¬éc0ŠwV5¿ÎC£Zwꦗ0x™è´L„[Gye…Õ’|qÆäLJßY¥ó(˜×‚TP° ¿Æ2Hs²´ÎK4Õ2i«•“€“¼ë¾øiÿï[öÍh ÀÛ?¤­Ó÷Œ«f7Ìãt{„±#VúÖ9Ÿ;¦R° m›åùr}r¬â^7gWË£Ëy7 ¾Õ­á¦åA7ÙB‰€>[”2<}ðo‘‰Þ5Q}/òªˆ¼›#?LÐT6¤ÑEÈ—?ò·²©5ûÒ,KGXµ: †ŒÁŠ0/ÂIô¶]p×rëülj+f]R»>š¹þ“¨8HÀPÈÁ^DÀƒA|˜B 7•8í’ãs¥ùO;±ÙÁû€‡êæ8Œ&Z0éØ »‘È?Û¹ú`–§uˆæ%š! ¸ä¡rKú‰8É%Y!öŒt˜L¶½7’µ7Ô;FšF°Sz¸x-wÖYƒéäšÈÝÂËG„Œ¥=Ÿ&5<*Va¼:i=!;L#«äñ2@Á÷îv@Šûž¹¹YñR&FjÚY/ïsPÄô”ñ€Ñ\Ì o‡:û@pëXZá8ÆKècšëèeÈÄ©§G@jŸh‘Е£dT0˜OwÁªs€‘õ¢çTh¹ ÒgóØ×ié±/®CT…väîÂ00ûsCXÑoëË0-3< êêcð<åÔ€¤/–m•“ $!„ )÷ôæêü0ª 0-¦:_gÎßê”+Šîø ™™AX$Cç?¶eŒ64{ï ë)Ö¶J÷ëÇ ‹"bØa“Eiç8·žæ:„ ƒsN4?ÎN-*ѽ×iYÁÔNê`°ìÀÏÏ.®¯ ºž¯VaŸãç«sS,ðÚëÕÁç$¥<$%¿œ¯®C×* µÞª~¦@©—i©Š«¤6¤D® ¬šIX[ ¥ š}Œ>²²àpÏ“Õ%¬Ì·> FñNùá<öL˜dlèË}¤2@–îÈ”yfÁVé<¡ðX7)‡¤°K¢»æ:Áï…ñ`¹[ûyÛì“âC"‰;w°2XqN0MÄ„|ÃxˆƒÉñé š›ÃùBØqÄÓpÂ#!ô$ Á¥°— °Xïc»é hµU< —}2a8îøÚûÁ)ŠFð»¸ÍÏs­Bòà¦`ò  (žâ± ^;}:(P¦‰¶U¿F°æIô[ G†ÉÖ$¼x«Öç’{Mä›R2p!oS®’\üãP“7h+c’¤atâKBhÈ2H—‚D8ïR™){˜Á p|ÎâÈ¢ù}¾ÿïŽ,“¡.(l˜ ¾¤Ý Ïɧ¨Ë¸W^ÀBȉ~Š÷é:´ó‰"­—ÅôñH×¥N›ÏT8YÌCˆda|Ôâ¥ã…ô°B,i\šœ;ã? ‰Äö®dÄš]Ëçà/%BàÄÄÄy $4ï«­ªt[ ‹,p4P1µ®J·å «H׃˜–Z¥Û0Óu«ƒÍÀ¡Å‘dêVXCÓóÀŸ0‡\”ÁF,Ø›ŠЀ¬F:ÏñTŽÑ ï³Ž¸u?·þXºí §Yà»3¦Öué†7øMØ@>µ¾)Ýö‘À³ÚN¹áž , ç$çqÒ~j!DJËoo¬WU¥^–nO‘ÀnxŽZ#Öf«ÞÉÖʲ§·PÊ”cÐF¥°ÉŸoRê»,ð¡ê2ïK·7H`/ ´Uî—nϪ.¾iÛCö«åðmhš…„C9zø½““¼Î­¨Û $ð¨jÙ§_eß¿ Š_VµyUßð ªØFL1Å µ5 —Ÿâ„ÚžÕÄ&tR”òþã„»—9Ë.ïÕ,àøë¦n_Ùœ)öŽæ›ÍÂ(ÖŽ~í¹S5×Î&’ý_G¤Û›+†$ÿØûUÕZÙ{óhÝJH¿Ñš1“<É­OJ·Ý ߨ”oFïªu²Q߈,ð·»ñ­÷Ï™–¡Cò´‹j颸k<¬SÞ£: _«oëV_U-‹óÜmŠëùG5AÁ!æ>ùØÑšo•v>¯úËÓÒíUUÜíj­ÎVÏZJ>øº>Û ˆ–¬ çœ;–ÐÓ¹~ZO~ gòÑE´Ñ7 uŒ?Ô/ϦÎ^NƒlaMD‘É®«±ü*·ÂÒ4—­!w[M yne¬ïMëYpôh}'nmþñS¥×eé'^Là›‘t•ؽ/éï®OCè=(M ›k©ÝÉöŒ‡7˜°!°×ÐÁÜpÙv2Ф»ð —ä>/ÞØ–—³ÊeS2Õ]! ^D…”ªy´7,žT&Œí,|³q™ÑðµnçÖ‰k’Ã,°Z¿ êËÝð¥|¡'ܪP†”»­À²–šMÝÏ”ÖÓMÝŠšø®ÜM„‹CdÒz[/K7lU¨[ò°®<·–v¢ÙΫrƒ›+ßÛOt#õ(V+X§BL@Þ'nïj«~ ~WÅ«÷§åÀõÿ‚ׇ£›Î)¼Öºmoší° èÒº¾ð.jÊã½`Õ¨#jÉÔèzzÔ­l÷ù ;nÅâÕ¤±Ö–>xæç†ér…®„»7!uÛPñ‹ø(à²"‡#h=¤“`kàE宨ʀF²‰'´°šƒwÁ-=÷Æ÷1_–Ð{î“×ã²Rý£rá©'ÇÄþáP*Ø$ﯧ tú*.éœeÈôlæ”07Ö>K7͆«K†%žÝÌãÆoBÙd¦€¬I¸ü0I¸«¦´ÓE>Y[ôö51©ñAâËêPuÉÀsœ»{–—NžRKNÊ^“M´Uß±èç«zÿELáleñ{7ªel16Ðsr- <6*bEŽ@À†ö£§§e¤ô‡,WP¢rž{–øæ/èkq&†uyþ ¿?¦Ú¥Mg šöÞ/˸ñ©¼røÊ/åº{l††¡'½ƒònzÏyë xRB¨óÇ¡7‚íQ@á^ö¯µ]™àæ²ú¶ÈUyõ¯3†¢Ìât£—zdIT/ðn^ÆDþ6QŸŠ0å_’9B%Ò” 8â7h^Žd¼æ)—cu•Û20R¯‹‹T¯‚|¾ÅC¡Òº-nà—©l©š^Œ ëe32VÂ0>$ø$ÿ 0¬˜aá? ,ÎïqI€š²E \Ï‹ÑI·KÑÆ± 8×M’!Ê2®$óÃ:D²¿Øä¨ ÕÖJâb/‚©ã2稔b• ÊÓ¹ŒwdôzòC#¿£ðb^LÌ/Е˷†?Ïs!¥†%q¼ÇjóD°ÔëC³ú¶YN)D’îV„„,o9¤8‹a‰kMÔð¥-FzO]œ¯ÔvúS'#”Mœf@Ú}쟪¯‘NÙE–Uñy-S¤7C°Æ¶˜úwò;üªç4ýGMVÙÃá»×¸Ø?^ªR¨ýyfä*&Ä&¨r¸k>•µÑ‹7dDzð¡º!¥ÿ}” éÁ”÷é.¥W­5ù?mpÒ%ŽfÓ’ ‹.+ñܨ@âÅô=¸ÁYpF‡@cÃÝJë2TêéþÖ?àç¿}Ã]mendstream endobj 83 0 obj << /Filter /FlateDecode /Length 12714 >> stream xœí}]“Çqå;~Ŭžfp·ë»zß$†–†i{)DèAáIÈ(‚‚÷ï;O~UöH&Ãl;Ä=ÓÝU••y2+»:ëû›í’n6ü¿þ÷«×Oþ÷i¿ùæ‡'ß?I#÷K7µ¶yIó&ÏR.yÜä4æ¥å›·/nþxóæI¿ämËíæÿ?I7ŸÑÿþòd»ùôIš%]Ê~ÓJÞ/yÞ¼~’s™—½;òêɶ¥zÙ®jÛ~™ á««³SÃ|ÕÜÆ%Gø*ÃFÉ—™èª²õzÙwGp•c=Ñàøª\úeLGø*Ãõo\Õ3 );r¸ªïÔ׊«ZÝ.£;rhqV7·ÈXHì}Û¶z)“û• ÆfH”DKmI”m¤KOޤÚk•1æ6÷KªŽÈ³kÛ¼ôÁR¥ îÓé—beϘ|´XÛ%5GdŒ†Ñ¬‚«R¦–Š#‡«H<—‡Øú¥gíõÌRC{û¼lÝ‘CßǤYéèûÞò¥/W™öÜ©]\T¶vÙ’ü$ƒæ„¥0hôi!|•a[Ê,ÆG’¤¿ÂãS¬í¥] KaN’Bv$^Õ·}»ðÎ} ë ÚË$1žÕ&]äÐ÷ºm—YƒÆrB#ao™µ4k[H¼jÙëõ}Øë•®=b¯Wzû°½^ÛÀ#özeOèò•†Ý™^è $…Fý{öúÉíçß½ûáÅݳ¿Ðü_hšûÍÓÔ.|Áͳ??ùÓíï¾»£ï³ÝþçË7/îþýÙgOh:F/ãêÂ~ñúŽÚ›}äÛwoù§¤O9w}äFúÀW>»K W–Ûçoxù®¥>%g'É%:]zû‡ïß½|{óùwoþì4±¥VzMËFú‚K>û뛛ϟõü{ù«4ç õ¸u²0\ðÅ·/~x÷®Áèɤy½¡ÿÖšµGŸ¼½Kdm[j·Ï¿|úû .–Nу*iébÓ«o÷üí—«Åt™;ÑñÓ “>ýéöÓ—_²,Ò¼ýò»7ü(j/íu¿áGºÐþUžûíó7ßÈ…4·£`”=\øéwoïžòDävûòÕ«ç|-éÏ6K¾yZH4Û&þäÛ—¯ÿÊc—½t)Ý×Û¿þÓ»×Ïß௿öäÿ©Z¼ýæÉF´¬^ýQ}*ZÇÔ}"…Í3“FQ¤¤QÔã·On_y4b“$íü¸‡“J2‡NêB®øg{ÿÜs'9Z túFf¾=øàŸÐéI,B‚l“¼Øl>œ.K?úÁ¹v¨ñ3Mv«÷zû€‡ÉS¯3¸ÿÁ^ÿÈ©Ûɾ@Ž –óÓŸGSE O„?Èí?ùy™¼ÅF*ÐF&së¡Ûe'nj0ßí£ÛQc7ugwôñì€&›¦š+ri·Ï­]ÆÞh11),üéVê €ž»\ööà„¹ÈÓ%óF58´1f àkr„;"kå2’!ä¢!gU éüœq)ÍÂ×# C62ʼӮÏép±9²Q @Ûä7k ¡MBð2 lAÀ§@v ¡ã¹ÿ×dHÆ5£ ^f$_˜×FõAÑj]Ö`„PˆÁw±€Ðüƒe7úo“»hÁ¦Ù¦þúÆ"HYI§iªÞµÓéuƒ¤öt¶©ŸDŒ„Ì‹<„F2¸/ºeŠ˜½"MŸ’E„ Rçž’ÄÀrF¶ÓBJr 7O !ª5MÛ"¹yrÓŸ*ð–E‹h*ì‚ î‘.!õܽ†E #ôĈJZXi¢X¤¨5 2äɤÌ]€)#(»Ž©I&‹ÍrkG¤ó6Èxo®Œ&óëãÐ8±äl‡fÞ'Al{'¹dÒ.y¯ËT¹@‰ûk=[³󒆎Ê玖3e?Ì/ù&™)×ò_LKOÈÇõ¨Iäẃ²mCìÛÕ©ìvÐØ™)j5yhž»¥ùäÖgÆAž¿¥h?‰¢ƒ´GKdì-ša¢@d¤hª |Ù¢5'É&‹O;gÄ+$ÐX‹Ì‘ˆÇqvIû&Äë ”°¾®¤ÈñîðÅcäÀ9ÎZTd«‘ÓìbáN™IÜl U XÓ.æM ¶ÙÈÖ“û“‰pŽÂ#w?؃«ÀjâÞHÝ£Ça$E¯DlŽ Ïù‡zÒÓž.ðt§ <]àéÿǺÀûÍë^ÿ£^ôƒî»—-~ä1<&2ãÚã&;îõ ØñQ~°ãyq^ó«Ó€_Êaª’n±X³‰O/ÆaÆS‘ÉÒŠ”àæ¢æà#¨vЮÍ'XÐvj,%µ-K‘·âÊ¥º¾%%3·²Üm6“÷)ûÜ®2YnÊÑö´ôíIÎц\¨PÕÎ9ºˆTÀ¡ÄˆtÈAFn”’§nÃpÖAèP[d&„%’"‡t 8D[ˆÈa‘'9(÷ “æiý3²E,¡¨„ŒX¢–HÚˆ%ú‰ÁÄÞ÷È{tyè&w!@R‰n†C]§x+Ä$3ú3õà󀤃_ÌDãªï2Jô¯@4¾RœGvo*~: âÊÃMêíÃ5"kÔ:¨‘E„Fkœ Iðä.QiˆÄ©aP¹†JaZ4œ 3§!W˜] Ë‚tk˵D£» I]Ó1裆‘Ag5Ô z­áèR} XƒuHL HÃÞ`d/CÔèÙMÕâëe̓/‹·8}±‚Åò‹9,Þ_ìâkg _68KÙʉÌNv¾@qBôEÌæë'Yæ8«úJÈ™×WKÎξ r÷E—³¼/ÌÜøÚ-¯”®ïÜ£øнŽ-Ý1­µ¥9¯,»{ºÁÓ žnðtƒ§<Ýà¯Õ ß“¶Î»êbݘ#òêJ2_à}÷ß“>ü8Û xŒ$ fR@ Ê[àcèbȆçä¤iFF6ÄËô}‚*0¹^ü7D¾eS‰Æ€L °(¼9—•ëRÂb+ »Iè_)x7ÏHfúÁ«ó¤ONì}·bJz£ù©zÍÆ»F¶ºI™â¤7\àmº(`k“·„lD”¼©!ãÃmØ¿MY´®H×ÄWk2ò:4áÒšÔ”Ùꎮ3"š×éM‘,ÃjIóH­‰ aÓ·6N÷w<Ï“¡W$×vŠi t#¤—ˆÕo4IÕ5ê;ÏöŠ –‡mêIoJP_B’rf#wÖÇævrdy2È.,M…&V¬ªaÚÐånfÕJÒÖ»f+\²ˆ]œ§Ì ·p>ðü¥“&5N]ÊÂÎØÔ¯BÏœÐdDˆ¡‘F$/×Hé¹N Ñ’`—I¤è5âŽH~´QÒE~Øâ2È6ýɆ ‘_@|Cx0— 84Žp«:¦.q•Ø<ïqœ•b=.Éä²À7ø3qUbV™)hÝ9}d^‰÷ûç¥N—M]œè ³[gÕ‰2 ¨“õ%hIIäçšT'eж:¦¹kdt/­­C‚\WìŠø£EݯuZ´ŠÏ@r´¡ ÙF+«ˆz´ÄÚÙ¶ƒµVÐf]{»Œ¾‚ÝJ$T@¸µ¸£Ê€¿ÔžYË*añTEy¢¹ µÏx®œïj“ð~q"ÖçÍŠºV%r+­Eþ­M…ì „¯q¯$:µZ\„Çnî ’,÷è/0y¸OÂìë~V:Ë7áçºÿZÈw¨§'<=áé OOxzÂÓþ*<áñ­éÕ ¯ÿQgúA÷Ýkú¾ÇdM¬qKíÀ%TP<ŠoëF*áÍ’M>ø¢;æ‰X¥0—•÷Ö×0ßòSP‰Êûú{P›ŠïF ªEÈš^V?B’ìë7%¶ÒïM ±¦DÓ èÆdb „Tã ±B,1§VEHºìÁðØì¸mÖ] Al—~ŽK4oºi´P!U“p³ !Ù:"dCHÒœ‘!º¡Ü8‹z¤F?õl#>Bº¦Œ” iºA ”ï,#)"&¤¸š€,U>Î IR×(Ÿ‘Ô‚[ d3ŠÏQwš=åsq.ŒÔà¡èçÔ=êÅÑðB<à éçÐâ-ÐhM*#§ŠÓˆ8æ’EvaŸ,A@l<©¨´wHÄÞK¬G(ñˆ‰@ã• # i‚5ì ²ÖÐ(̇FOaÎ4 óªQØšz Ô‚vh04H¾ eMÔÀ1h«Æ–¦Î|}×5؄İÁl4Ì ¦¥¡p°> —ƒ…jH½ŒX£n3r‰Êhà¾hBcûÀ$ÿ¶Ñ5B`$]G,ÒÒ¥Fà5]ŽîÓ%KàG]ÖÕ¥OàY]-*ÖT`k_e9£Û:ÌIß—jî|9ç¾Ã—|î_Ö²P]ÐZ9š—úÇ’º§¿;ýÝéïNwú»Óßý÷w÷^F~h©n¼c';½óÕôqJ£ô7˜–÷”þzÔØ1°åˆÔiß?vmâ„÷Ф9 ÕIßSÿûƒzNÆ”I©ØŠÿ*U3ñãE=Þà¿¿ús’"‹‡[@ßQM {ÂÙft”+Y?¾Â¥åŠeŒ€<§t}cdãk¦n*dl\~Î3F@*ªÄùV÷Ϲ¶Âù™/|GSÃÀuåªå‡lþ'D³Š£³ûé©YW¹kYÓG£ñ¦BŠnµp"6Q˜ðÇhœ„$Ä6ïÖ¥((Kïjð§Viަ¥n‰«­ˆ@qP>9KåN#Iª„b޵ɰü‰!I=BìK†×üœ]‡^9èilêO†|g@ˆ~±1*"Vú]Ô‹Žše†ÏAHãÛi¨pÐHHwdJÉÒ1”LJÌ|ÇÙ?ڽ›TÙMJ-™›úÄAZÆ¢˜öÉ(:Y3éN™'O=N&ãÜ!|ÓD8ydÞ¦Ò±±Ê“³Ô¢bG¼ÀŠˆb"‰Æ‘8‚îÉ¿©K½ÔÙü®*• QÝIY Ä¿Ei“’„ø^‰ì±Ë ȃI&\÷.ß‹x-š–ÝC¡{}ŸRgчÐ÷.ªíÃÄa&3J¢ï¼Õ*«‹ í(M¸G¡w­o°&¦Ï.vå“×µDÚà>³TÍu%èì`¢¢t­!±”©®˜®.ut])ûZKq;ï“ ºÝÉÊAÿûHÂSf!_.õhD½ó·egŒò`‰ÜÁZ{¯¢¢nѱF‰Vß;‡c:XcFöè}“r—Î0½qùEBÔµG¢êC2ëô·½DÂ’öHŠ]ª âì ³¸KØé·ƒÝöHÑ@$Þ[–ªžÎò@xàî €pÁc÷]ê-d”èu€p%R÷L@X€î½±Ãšîß‹ŽŸñôˆ§G<=âéOøëõˆ÷74_Ýô:"C_¸{ãÙ¶5xs¹dzî,ðqf­Õ½d‘l¯¼ËË·ž›HS3í2©§â¬3“’O°NQÏ^Œ½òó V#})Êf;á]™¶Õ–*Üf[L'7Û(bjËõÆ÷¨Ú(8~Ð~”)Z—F„Zâ{´³Ø©îÁ7ÿ¦ÁŒ•ÄuØjÐÛ´= fó›>a¼€ÚâFAR»nÚ‡Æ.(6.›9ŒPl<µÈR1šN¸Õ‡#¶SÂQ¶CrUeÄM’ ¬‰šäãÀ¬@¶ÙUÊÕ\•¡7|ë²G’Lï•ÌͰKÄ_ ´¹ò‰ú”Í?Í1¿$|Ó6²;´¢%Òõ¸Ywq›¤^€ìf2Gõ¥á&õ·áÁê“Cãê·CÕ·‡A¨ÿ_ÕaÉ¢ˆ%.‹4–H-Yb·ˆeME5kú,òYSlÑÑR‹ –ªX”µÔÉ"±¥r­-µ´ˆn©®E}K½50\`¡ã2 /—!YºŒÍ¢ÔeÉ.›µh×ÍÚb7|‹™7X\íôa¡÷bÏ…<„w¢ò0ßÉÌ—Nx¾\pRô%…§¯:œ\}eâl‹çhYÜ8‰ûêÇyÞWHî |åþÂWZîS|5fnÇlî™|QçÞëjá÷[üúôƒ§<ýàéO?xúÁ_±ÖY'kÝwATÈÕ =¶*Hãä —¤•Æ3¾ÀŸŠH¶²OKÜ?ý‹‡IÿÝ‘“gðE¿pú]¢M}Oˆ‹Å€¡»icïDUÛ^ª ªDØSwŽ)ÚÒCˆXÛñi„§žFøsáýlñÕ=0JR†´Ÿ’pðDh;ãpÆû„1­1ä½ÇAjQ’ èz­QV(‘ÒK”'W€Ù£ÌQ%µ8/YÞ…¹Cå—ÑÃìÂ|SŠ €:7,aW™QÀ¹D]›ðìº>‚q¶=ê,—Šj"9Ò¶©~Æ»˜­tW¢1#Fà ¶ÍU}J¦š)ôäθ9gìƒæŽrA#ð õì|‘Z·H(¨A$ˆ‘NÆNщ •‹ú¼rã×uà23—3`ÆÇ’Ó{[Ššox4 „IÓ©5–FdkBÏ•·íÒ]^ŽH*Ñyh5§à`€ôèÏrT@pbÛrf ë{Ð'žöwÚßi?ýWÇÇË_G ˜Jz«ÉÊ]YÏÚn%±¬÷mXÕ,aëvê€IßqRÉ- BNQÜušIÛŒÔajk³V›ëÎ,mZ7ߦ¾f+yƺQ7’)O™VºÌŒb6-:fJH1›N¬)j©^Ì^•™b¶qPv Ù–9 àÈÑ`2²o)ýC?1ÃCmAm[“¤h5ÝÅ~Q0E ÏDV&OHu µHšEN»U‡.A-ÄîÅì¸3iXA¥¤L<¦¥à”¶Peq´Àl9UgL!? ªJ(Ö¨ ¡Š‚ŽZr^y6'ƒr1UPåkÔ…´ÒoÂé@Ô˜”÷QMr|«âÖå§V"Tï’7W õ@y3Ù˜—¢Áºz2 ’­u$DŠŸ?àO;<íð´ÃŸÙïgo¯îy½V ñ¹²J mëJ6ôOW»k º ^ô5ó’ƒ­«—¬lí½äiëó%s[ïyÑeþš:K¬éµdÁRK(,5±¤ÃR%KL,m³äÅÒHKp,­µ$ÈÒlÍ“,Ý·TʲͶ,²„̲2KÚ,C´ÄÎ2VÎü,k¶ÌвxK-Vðì’‡g Œ[§oÏ:Ã{®Ð€çÝQxÎщç%ÝáxîÒÒÊošãZ9PsnÇ4éÃ>ò4ÆÓOcü%ãá=cA1xÞ’x‘üZ‘›uV/üœT‘å¿)'Åãá­7¤güúŸ‘Ìgõ&™”‚Jô;^žg=¡˜‘¦GórY/FÄ«Gó2å5=i§xám e“ä@AÕ{Þ|Päà‚ºø|tp©R)‘Ä75ys_PMš…³y9 TPq¿ócVS²å •ȪÞ%û¤p6ï¦w%‘`ÕOÁ ‚4k}êÐí¸Þ‚“øàâªßÞœ6Ðù®]…Š# xXM3`ßð†œæ­Ï*;1ZÑ¡ãœ>öW³<ßȱ¿Mg{ÿwFºìº/ØûÏ3Òr2ô1ädhÒ¾M†>Xtê6}Nå4]O..Ø×Ï[ˆzó $ÉÖŸžM (~fUéZ `#?o¶¡ø¼Ê¨z—Æq„µ•w‘˜Ò=§¦ë§üûø?Fs`ûøP©·!ÊÔ§_"¬ºu-5OH•Í$HÔHoHÚ…{³›p§uÉ2çDl$<™÷™ñÚü«éˆv©JQ°g¿ô#’TzvÊÿ§ÃC‹¸—Ðp:§®# €ù5Ž‘Lgï9`B9È Ò÷ƒ83†EžÙ÷†YÁ9Ü#N‹‘š‚[cDq}ŒäèÈ8ÞÂþ5>V|plZütìžøò8ñ÷q˜ApÔE%E§Qä Äi‘&ΜÄ9qv% ó/áRT ©¢qÔÕL³¨Š¼Eu•/ª´Qí%PŒ¦!Ád4‰7£‰ILÍPâÖhªÛk–ð7¼„È4Œ^¼¡‘v ÆýhÄ(J£zã0 ûÉéÒ ð .Wê #Щ®BåêJÅ8Y—2´}¹ãÄîK"'_6¹ƒð¥•;_~¹£ñ%š;#_Å™¿ºZè=ä¿>=ßéùNÏwz¾ÓóžïWåù»Kˉþ]çùA÷ÝÛ½óßß|ŶàzSQØž´{¯ O9Í/QçÛñ½écesk¾¡Íd!¡l.=ò¥@9ö9¸€ðíóW;øýÏ…u.Ç{ûÕz®Íä‡=E¥ÉIã™ßü¸RÄï.™ >ßþÍËeˆñöžÄd¥å”zÃÕ È§¿}qóÇ›74¨÷”@®7ØC?ÈJCÃsÓd|*Í–o?ÿ·/ŽmãkzòD›;x*Ï¡ENòU¼6¾J9¦›Ïè¡î|ú$Í´™{ã¶±ÿ“†B´iÈ+Òǰ£Éa…d¬­:ÂWî“ã$æÆuå á« Cz®pxŠÒâÍ\cñ!3,쀼7MŠ!|•a³s2ºª'Ž> ‰WeKÕ¸A”—ŸÍ‘ØbF-7ˆ¡”Ì›^8ô2³¢W™ë)rʃ³ ˆ#‚7ä Q.qÏûnq:ž®ˆ‚!‡«*öK± æÎUç 9´Øú *¼íy:rèý@<\ƒÎrÄü9 T‚þJmH¼jìõ}ì•Â=b°WÊû Á^ÛÁ#{´¨GÔùJG1ë+~X鯵ò¥¿Rð‡õæz^ÑÁ«y}D»®4é*ïñy ì6þ§‰#øîÝ/à 1ÕNí?…xÈÜ<ûó“?Ýþî»;œQ?Ûí¾|óâîߟ}öAw&×p¼ðŸ_¼¾£'9™Ûwoù§ø©N}äFäÅW>»ÃšâÕÛçoxù®Åì 4DiEÔÜÿó“Û?|ÿîåۛϿ{óè N…„ûzŠåßG—|ö×77Ÿ?ÿêù÷<|Ã榅H‡ç¦ ¾øöÅï~À5¸â)oŒ$¹'¼ƒÈÚ£OÞÞ%Ò]RŒÛç_>ýýK§°¢!íÁ{…šy¤·¿{þöËÕ"¢cŠâŸòN{éÓŸn?}ù%Ë"ÍÛ/¿{ÃJXÐ"†™º^ø¯ÚðÜoŸ¿ùF.Üà¿!³¤ûéwoïžòDävûòÕ«ç|m†Ÿ"±>…%l› ø“o_¾þ+•lˆº qô6ä¯ÿôîõó7÷*øÐS,øÔ Rí‚UÖ|ð‹Ÿr0“ ¶HfHì=G-ü¸ç¢Æ,ùÐÚhï9pâƒ:¯hU„/4s©>üï…¥Ÿò؉Lkü|w’ƃ½þ‘SG«0úKÒG8Ý„Ø/‘ õ…Ç?ýN"beîÍí£œ¾B‹kì­%SûØf ëŒ7©åýGŽü¸g>õ {¹{þØf€ÏžÈ­£ê2¹çŸ.àŠjxôô³iF ®¡Qq‘ ¡!Y¥^BLˆßÕŸKA€&Ù ¸¸!Z΋‘̈ž‹K¢+e×êb ÑåŽkñ.2_ReíDHFÈBH¿è¸&ZëŒ I'B¼%)”Wê&½\QŒ~fÙC ReŸ!|Ê!MörÒ0èJ,¢cÜ)B¦,¡aѲËL„p4D4ò“8ô3K‡ü%¶¿Päb8/AH• õ„tŒŒ " áBj„ Ù¾·{á›æE[¢£@¥z@›Î›ìI³ñ¶Bä$Hù¤Ç@çi¯ˆ­¥oˆkÑ -‡¤Yœ™Ä­’"„³0ŒLynµfšéeåð›‘]\yK !]ª HFtЕË[2tæ+hÀ@“Æ §æÒTáSЙR¦£rQþ,ž‘,Mé:á>¢æv<ñá´ÅÓO[üùlñÞž¦ë›`‘´Žhãðt¬Ï\Ë"v0ãLCÎ*ugæ÷SAiê亴 é ÑÄo¢Ô¡tõ03¼î:Ì­›R=Ì0>ªÛ£l]¬kéÉÖD‡—.¡vjZº†7®õ ŒòâbéëØ§(’«ôÀ‹’¨ôu@öh/döhåÈOß Ð‡ Éq±·=aÉ›ÅÔʕȞÍùÈ6"ç"9ZSäe|â¯ô©Ü $·ÈïÈ%}rpœoJÑ• œ€®ÄÛÐ%‹:$ iN ˆ®ÝÔ±¡LÁ^–x .ò4ÈÓ Oƒü¥ä½ýI×7½^KÔøYƆÆu©:¨Ëá0]2‡qêª:ÈBWÞA^º:2Õ|»®òÃÜh& ÌŸf ÂkB!è&‚®H^"¨“æ-‚Êin#¨¥¦?‚êJ†$h·&Q–X¢e‰%cÜŽ4]³,Í2:Ë-å³,ÖÒB˪-u´,_³K‹,µÄ’T‹d,‘µˆÈ2]‹¬<æ„æ3'=OªÕ•ÔÄ›“§çæœ`=ç$ì9>'jÏ:™[ªÐùÞ’‰Ís–<ÿî0<éNÅs–îx<¯Ù=+¨©Ow_žuwÌ >â+O[ø¦÷GnÀÉ¥ã%©Òö‘_K£ž#v•fN•|œWèØJÂÂç{^GÈþ¢ê¤ (®œê{6O|Ø zÒ¶9n°£¿´7;ü„žc™Aj‰ÿ¶‡wÁü¸çáL1l²Ä¾üàó~‚Nà ’Bõµîx¾ÏÕžMG¦Öй6º~ýÍð&Ë‹UHŒbÞ:s[ÁÆu­I‡sñ ;*õ+\Å AqÇVŽdïmÚüp‹ÆŸR­fžülzt3(ª`ƒÝ¶N,é¼û²oZ€kµ{Ú.»ä_XíT¤€ ©^«­àƒBô3}.WÑ»4¼Pœˆ¯§éo‚dÝçk5éñ#<¤n!YâBa;úYå «|GHÓuD+ŸÑmØä(˜Ö•*‹"b1›É*‹´^6¯ÝÇ¢'ÄÇ(²€î%[Á¼ÂŽ–b¥å 7'¤:ÂÕûiznª ÂUb¿¦Õ$ÜyÙMJiç½ Lß5µHvà ìðŽ“‘2±OKuqBŒU­Q˜´¥jçÂ!˜s¢ã”0‰õ‚\Á±  µ]±Us beùsFF´Ä߯_´Rôh3Ô¾¯» I+Ë6Uµóø°•j¶#Âßî"½‰kÔÏò‘cè *áî9"ï\Ä6Œ“‹Û( ®o_¢¼²|DdŠ÷¹F¹£Ä}KajP˜Gå³Ç%îÃü¢Â=7ä*JÝgT“<øÓº Jðr<(W7li+-ª$Šσڢæ}mQµQ2ykQýsçïiƒ‰ ðr9˜‘t43”8=XbîY-ÑŒuËÁšQ'ú`ðˆ.R‰¤€]Ü9'”`Üä‚ȬÅN@ØÒϳâ$…âŽõ@d(˜ÝöÀupijF:Â&JÜ<*§UT–ÜkäÝ,‡ÆnÆ–ùyào ˜…ÅñZM<ø­8\V£;ÑZæÁåÉ·„Ÿì® „ê Üÿ$!n”9ÝáéOwxºÃÓžîðWêïŸtwuÓëøàjg:YãëŒ#ëà:äÈSŽãúýø’…¼ Œò ‡‰LÛÈ’Dr¹·±™ÙëÜ4ÔˆÓçù·O™|Sµ]žÿïÈn=÷Û—w\d%‘{ A‚V3*Ÿ¼»{JxÚÚœõö-~Œ}¯{½}q÷´`cÔÞoóºüÿÜ=m|èÚ¼ý훯p9©mÊ;.÷ÿ€§}OÛ$ÙÒ?g©ÐÓŽ­7Ò:â+´Cîrkñ‚ø¸ØÌw¸qN\ý†{¾íľ4¤ÂEÒæ˜£ë#ûV«ŽÔ®ÿêêzÒ]r…*%ÒÒ9jŒ®A%ÄÙÑví{¾ýúº?{OÃcÍ”åá{ùB›öB 2˜©ÍÛo—<¢÷ô”¼(±GºE¦}tãßïíß–Œ¾½ß[lÙ+·¿aÅDTDö@ºÆuq>¿Cv“æöößB#_„üæî)*§ôí8®7–'“fÒ%¨(Dýÿí+Vßo?áçöÙ2ýs=ø™¨wô‹%ŽßþËoäѵ®d½DÉžZaiè¬jE ÷•‹tµ§©Ê5 ýo¢YÜ×-ÒíÕõ`E÷燸ßì¯÷Zê•f…?\îžVý@û£LFJæãÐgè"> œíØOzj†ëêãöÏדOL: k¯dOWâ‰0ãý;؈õeßbŠ-þ'4=Ó?¯TÔ5÷Š xhãÊìW÷^ÉÐê6+ÑZ0µ£Ë×!Ó\Eô'R ÛФ’oØ*öqȆ¥@ׄο‰ þ7¹|«¼‹—®ùý"“wiÖÿº{ QGaKš… ê> stream xœ­V{TWŸ!P±ÕÎ.œê$mí µlik­Šo‹D-âƒS‚ˆ! !@2ùáM„$ˆ<”‚Š‚„ÚÚ®õA×µÚuµn»ÚZíë½ìÙ¤n÷ÕþµgróÝßý}¿ïþ¾oHÂÓƒ IR9}ÆÈÛtþI’ŸäÁO.š3”ã5™?îä ªœ\_+‚±žm“Æ´O@­£ÌñHö!"É©¹áªd]JB¼R# J§‡…Íx^úbHH˜t^’"%A.Û!i”Š$™Fø³]ºF%OPhtÒ€ÙJ&yVppFFF,)5H•?'ðyiF‚F)T¤*RÒ[¥‹T;4Ò²$…ô!Ï ‡k¸*)9M£H‘F¨¶*Rvá7o‡*Y’ªIËÉñÊ„íëB^  "ˆ§‰•Ä*b5I¬!¢ˆµÄ:âMb>±€XD,!–ˈbñ81‘`o‡Oø ²žGz òŽÇ&·(VÔàéáyÌk¹W½X$¤"©Fê&½þØ{¾w‰÷]Ÿ>q¼Ñwh)¸P¢‹Ÿé Ñ߇3•\aäg,ÈÂÊá/ý´kå{”@«©K'ÔBtÂ>®{ì3.j£%¯* Ôbµ»Q ª¿‹çX³ƒr,hY5Õd9Íà‚îG›Ö²Úi\Íc/þÒ ž¼ \¼ÔNÞw£­nÿ:Ãôä|Š}fÇ­ïbM÷ÅØg—š(Í‘àfJa(X.`ï³t È.8ö{¹¡¨C‚¢¨Ïû>º0X²4†Åú_õå7ëkøP;Ùx5ñáhƒžú“˜ šŠŸÀ¾˜†HD~qM`ñfËlù~MGÊ1ctÁË)×1GkGK€ûvÊ>eóFX Ûa+·29Fµ)V«ZÈ ¯w¡—í|H yϪΉP2~庒j’Ivýõý[hšzwÊÊ Ûä*Ée ùgÊÃI¿Æb¾˜*pv´[‹Út}ùÝ,ÆâåA³ã·î=‘$ɪƒb° $´?“h=‡ª‘ƒùeL¦8)@ã–_þφ`?üÛσ¿¾rt ®R‚c~]º7‘Øx¹Ñ¸]¯Ozîê;H„¼?üìÊ'!ë%¾è‡ÑšÞëAÔyzíaî¾ý±Íf2ÚXHËS§ÖæTWÔÙö·$:^ß6O™#1!RŒéÿYéã&èÆQ áÙpL8ëíüÌ*²áÚsH„Þãg15&s¾ÁdÚ•Í ¹9FCbÛfóN ±H¾zõôéMù’÷³ê N]ev]ÄÓ²ÔµÁ¡Û?¼¥cU`Ö­7™2$x ¥3›Š­fs‰•-.­ÞW\æH>¨îúžûô{’³*$IÍJ›¬$ªbaœ¥]U½÷(žšhaÍVS!Ð¥P¸wDáv±.æ ¿r#¶F„¦ñ ’º°EèÄÜåôW8:ó&n£´€==ÐÖ?Ȟѭ¡%o’í;þ ×GÈqrûOÖ@'ø×™Gò,£flž?/,ïS,ºNáq#ÂuB#˜å4Ž¢` ĺT•Y êKpZ/•8is)ñrQ«r‹OJДïP°ÞÉ?é"Q_¿ˆ¿Šî0ŽNKµ™vQ&á-ÄÂN‹ ¹šjæöê ò¸\.ïÜà÷,:ÉÙŒ%Päïj;ë¢4œ R…5hFwôpÎ7‚±Ó/)¨ >ŠMbS  }4¶ ÊåÛÐx<ìW”U(ÀÚ Èb­þõú}‹{­»Š8ø—@aaQ%=âZ;Ê´;.]µ“gQœûš í0ª`àC8(ëx«5¶,èÙ‘Kß:ÀWÖ—ìoЖï4˜LF‰óýÓ5îîÝ2C²…ZÅ-ЯIzC©‹=çvš»·§ùLkÙ²_Þ´Ó]uUÒ§‹¤V$ë³âàT»n±%*zkûñ•îþödcoQ‹E ôœ¾Õ]|h/Ù%z€¾a´*Pªêõ•¶¦ÂƒŸžóÔô@¡§øÿ5äz¬QåE¦Â¼<“)Ë Qϊ̈zùœ€žìèè×FÕIFaӪт‡-*O°íã(›)*´,£¬ý ‹Ÿšñ;<ÿæÎ´ï‘g×÷N[>py&.ÛÀ¦-ŽJX/”/v_r×ö€´¹š±¡)WZ:á<_nÆž#RâØ½hS×í½Hõéè,­G1';E‚•—0µ»Zwv}õü{ŸºôIÍ’ý—ÕC‘ÐS¬Fƒ)×™tVineuIYeí.G¢\©U«Ø¤Æø²DAþÅ3#[ãËr$IJˆƒP—)ÚÒ×gÅÉ!š¿³‰‘ǽžÑ$s4q`.`·[Ó÷ÃA(…ºÚ:úó]ÌK€‡CXnÝLddËKþŽ™ºÈÝÛ¼·©Î.iØ[&$C_GbŠZ´nªäÑ,Aªöÿ'aò¥Û²YBâm®ÿÏy‚,ÂácÚÑäëäƒ 懙:]­&M«Ó¤ÕhëëjkêYìW î+ùwT˜­ûà0Ô®âŠIx1õshLûCÀ†–1¿È½AàÓõï|†–f:‡¤.²l(TÄßäo1¥uö£¿ñ·†S L*ó“[»%äÃcžQ£‡ËüpÈhã¬`õoì§àÚDn#lü½RG÷ôC¹¡"åþô³î6såPf‹µjäZeÚ‡üíäÛçM˜«3Ñ gMßÊ>y몆õ+Òáò¹† x "ͯ͡rew‡ µ‡ïø¨è\¦ñ<È,Eïî?ì€?C\s•gkoô¹:™Üɵa•‘æ%ð*,ƒW³W¥cr•V92p7C?O_C¹ÈÃ×PúG"þeÌèÄ9 ôÙ†ü}8ìB”øPÇ…‹7®Ÿí¿xîÑÈç…óOc%ÏMßÚTPQv ø`³ºtw~¾‰3°µ7úœúæ™E!¡oÎ\&ÌFœæ¥AßQ#g¹Ð-|=µõŠÐgCO2N“YÇâîá$/5*¤â¹œ…¬V-n±œ†6á9 -+¤¥re‡$_=p=KEñ 3Ìà|¡Ø?àBç‘òv— `#f° 7ÀãÑ€>~hšøN· ´ÐOéB£Å°ç•yØcE»1Ó Ü†}ßÅÌÉg®Ï¯Új±I~ÆE*ØŽ, \ÊC¾+ómØål ?pf“™“œŒ¾Ë&>ø<OÜmâL&àè¡_•ßDï°ÝHT…¸KÜÎë䟮‹Ð¬ÃLC†==#=3%Å‘ét8í ¬o¦Ÿ_T%Uv1Ž-¥\>î1¬§N5ÖÛ^6v¬»rì8‚øEH¯ñendstream endobj 85 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 6674 >> stream xœµy X×Þ÷ÄHfTÄVµ3ØE‹Šû®`µîÅD6Qû*aMòO ìk@  ²Š*Z[µÖ¥Vi­Új«Uk­íí½gâ¡÷¾'‰¶ÞÞööý¾çûž¨È93ç¿ý–ƒˆêÙƒ‰D·åî\Ì_M†Š„a=„×ÄA8çY˜)Õæ5ªŸë¼×"(p[”ãÛ¾NަOŸ:ÆÑeüøéŽóCü#‚|}¤ŽË}¢¶ù‡øD‘o‚W‡úùGÅ;¾=k[TTØ gçØØØq>!‘ãB#ç8qŒ ŠÚæèîéãïç¸0Tå¸Â'ÄßÑrÎq–ÝBC¢£ü#—‡úùGH)ŠZ8_êºÁ-ÌsAø; #£Þ^ë³4në²xßå~+üW¼¸Í=hõö5;<‚CÖŸà2qÒä×§L>múŒÙo;m´³yìÎq}(êuj%õõ5ƒz“ZEͤޢܩÔjj$µ†ò œ¨µÔ(jµžr¥ÆP(7j,åI- ÆQïPÎÔBj<µˆš@½K-¦&RK¨IÔRj2µŒšB-§VPÓ¨W©þÔj ÅRƒ¨Xj0eOõ ¨!ÔPŠ£zQ½©YTÕ—šCÙQ¡T?Qoj)Õ“RˆúŠÒD÷{Dö¸+íùzÏbÚ&Äæ Iªä ½¾ÀðLQ/÷^×{ç÷ñëÓe;ÊöxßÁ}÷Û±kég×ϧßÙW&¿jÿª¡ÿÖþíœ8a`»„Í´p038sðûyö—F8œ2{ȉ¡ƒ‡ú ½1Ì{Xá°®×Æ¾–ùÚnΕ“sµÜQî2÷„oäv¦0¢-Fa^$ 6-c³Š¹I yæNìßýÈ>ikhøR%#¥ÏªÕ°êà(Ô(:lß0Ò>ªù>Ôš’ÃÈÁi$§ðM2(@î²"8)]¥¾A–ÔÁU¨²nZñÔÆ`PÉ"ß±Á‰;¡ŒÂ0½Qï±° e±ðê¢öH÷oÊ ‚Qà?--–Qþ$ÁÃRl¤ô¥ütOWÓ^)°„¼¤FÝI^a„Î'[š ‡x´‚þùòésçJׯàpòŸ®Ý ¬gìL‹I".ëÑ£q]èÎ}ñAÓ\Vª§¯fËøî::@.sãb¥‚­±÷î~wÓõ ܧ„¤½ü\gîLºsx!þ„Ejz¯:¯Cý%?4MöX¼nóoãoXoEÞ^ÑJú»Ž©sf¬˜ïÄÛ I²JÁE/ªïBõ]bÁmgëôf°í˜á¸?øÃh$A½úsx;öbÀ«\z,ìò8-p¶áPÝÁöòFØâký6Ã2€m°<|SèÆÍqþÀX*l²!Q}qC,|/Üa÷ž<\|#½Z¡ KÀ¤@Mr!¥†]‘»rÙNÏÆuxêÌ(TdC®ƒ¡&»‰3ÒQŠJ> Òºá(‘W¢@üÈox‘!I•úɰnAµ%DZ´«¢°‘G›h;Óº£ÉÙ(ê| DÖˆMŽ¦Ù¬4² ¥B–ÁyÎò:½¨Ñ ðRìB>[°/š„Ç£ÅhÚôêQ¹)2ef:ŸŠ'bæQÀ¼ƒW@‡Ðô^ûÕŸ¿uÁ£ô¼:äÅÀ”B¶ž¤·¯5"g½0¶Rô· ¨¼KŒx:kíWZÑæ÷0ˆ~ú±hÀØï±hâ¦eYrþ"ys£]ÉM÷æ»·ÿIóÌ YЪ¨¼þÐ1] 0×?{â>‹&Í ––èbù¨ªD=Ô1vÂ#h0‰IÔBªXØcÆæ—€ ò˜ÒLˆãº—IRp¤M¥$Ù4ÜDSÈy&Iºém¥RVq‚§¤UØDKÒñðg¼<[bgJ~^Ô×nƒî‹üa«¢Ÿ$h&‚F¡åÈEÎxýòºµ…Ö>ýYr>öm[|hŒ_X­ë>»ÏÊ­SIï%¿å¯± •“Ù\*,gc%ãâ[üNÍ%¥êñÆXl|ç„Dí»;šx¼ü¿Ïå2”ÇÂŽxiTT`€¿<˜¹ï=Dbd{åËk7L^ÇۙƑI¯XÑçoçÿqCL–Ä>n½ÿY¾”9\ZÖÎ c¤U)åz}Im}XÝ–)Rç¸ N‰Ä<äÀ¨N} ê¡>yŽxææ/j"Q Qu?Ö¨ÖTŠ…K¤û»kÿóP’jõ7äð5-Ï¡')Š›x¤þš~X¸}ª5Ü©²íc¹‰¨ðy¸¯JЛ`\[Ї“pí„A2½0E+Ú{Å£›ÂLËœ¥ÅE§¦sÁ»ƒsw,ö \¼&¶µlã÷„îK?œz*¥D¾;V›X ¡Ì–ˆolù!šËÒ‚J©Räd˜ÈŒçñ0:2 5*•¡‚Ó京¼eS'Tóó‰37:·ïI-àÂr‡äº–‡Lƒáð=$ʬæTiy Lh´d>_!ð7Ĉ¦éE?]@Ã*Åh–0‚EÃx8Z-QŽ =^ÎÄ~…h,¾uòüÞsW¹÷£×ÐnR¿Eð ‚³ØÒ-FK^OÜ …¿±ÍÙ…W9½Q©˜RéÏ!ëù`>dô_¬úm”HI̘Vÿ¦¹É ›y¤E'°ö¯V"åÚú‚àÐû‚+û¢sÑS¼Ì›žyä$‡¾¤ñpsOuÜ…Ç£hXõÛ«ÃÛ’“ìî}FcUy 3F|¡‘^”–wŒGm‡þþ†Ý£k®s•æÐ&“ÀB`ÒóÐ*éë¿…6‹6ú9r=Ü}~èhzžõÐ%2ƒ0Ô(Ò Qba ú†-¨¬8ø‘ЇT‘Á‰°ÙÊšHTEffò[¸È÷D™¥JCM h uD(Ö¦ÙN´Á ë–ÓP˜UŒÞÀÏì5IêÌbȃ\u^á«uÏ_kr ?’×VžoWW˜_¡ˆ'¯•’gxXŸqHQq „ô,™3.³‰šÈƒÔíP× òÖPÅV²~Ù±Úº£JE»4ÅÛób§`¹ýh´;³„ìÈq¨Ý:Ë97s†’ˬ;Ž“sí@ýÉ9sR²Ó‹ 4ÙšòP‹ý¸E³S#/‡"ÈÎË)bÌt®G ºÝ·>Ô‹Ú?A[/t‘1„ô,ÁÀVïýÛöx•z3}™Ç©.©ªº¢¢º-ùªGµ­ÀþÀïKãÍò¹Sa3ëÛˆ³j=ªãr65Æ6œ)ý‚?½švLKò‡“eÜ’c¬“ëö-ž[›Ž"{4§¸IMBý['C…©lYùþæò2Ä¡×êên¨-åK/‡÷ Ê£A©M…hHLOŽÁgðQ{ÔE+‚/I>~?ô—EàÉwWÓž)0•ÀÝï;žžšÇÌÜŠú -Çõ99éêLu–*2˜Ð@ØiÙõ)ÙUÐhÝå šGÍ„C°¸—QT(¤‹Ñ^”Â[tê m‡äí1K–-D²ø?)ÏëqJå ©)iKgØÏþIž“Qy«ÑÖ[›fý¿7ÞqÐ) a¨k¯VädP“Ïv’íòöðNÙbÖ¹-Dç$ÒJ Ö³Efg•A)”çå–”ö¶U7Ür´¯ˆ&OÌ€´´aæM5êc„êö’MZ7­…xuäÆ:ùÎzÔJøi‰™iZÂZÕ…eþ»UÒ9ùu9yUýÿ]ˆ×lŠð âÕ,hA]T^ÝÔn<LýÏÉxÍ»2ŸÈ@>6Ø7xxÀ¶Æ„Ú]È2@z©.Z˜S6r€Ý€™d%Naݤ.¾ËÕ%RÅD"CÀåÏ O‰YlÑk»„£Hw],8¡»líÅ#*<ƒ¤¿ÎX³¢ Ѝ|Y²·°Æ‹ÑîŒRâT5 'M®ð$#f®¢»uËÈÏ, FNÝ=콇ƒ"+-!$Ìß ˜à8-ðИÓXWŸ#“ú7œ<Ývì| §E²Jd¼ÕiQ&^·Å蟂„M€­‘ ÕUºRãÅwŽÎÀ½Æ½a–ÑDžØ ûzd[PòT¥€%xªÙ±bò8uÇ€ÔÑÙËÈíòþc$Ýh1{$¸Š€¹wñÒgµi-;öðû[€†€ù«eeÊ …I*L.Ï×j*µIuÛÖùíHLâBª¶•Ÿ:áÝEsÜ SùäÄx)ùUù™›wm„u̇î¨êóääõÝé¬làÖ×l€É°Ò!^'+LÕ*r+ K™'2v"<­ÒB[E-¯3Ö€ùFDÅÃÖ„0>N"‹¦#v´ë±÷óÕû[jøÊÒ¸Ìmd“Þ›»É™qaž²?»‘˜ ¾K’‚%úQò2–þß^IøÅHeOëÑ)ke<øÞ f 쓪ÏÎÃgÌcls¿ÉáPÛ.üö¿c éT†ÞÍ)µ¡ûü‰†[³ ¼}KYâ¨ÓÀ|^r× )2È)ù̕Ұ°dGÒN*ó2Êw§wdí iH) ¯]SÆŒ-f‰Ð+“@r Tõ æ&xô¤MKñ 2Õ$“L+ðØ<bä*t³51U¡áÑ1a!ÕqÕ ÚšJsxÁ° 2†íþ­Ù’ÃÁØ÷üæ(K³Ÿzh1š&ÔŠ:Ï «gÄÈO˜Ì®/ñꀘ+§ÏަUâ)[r9u2d>÷È‹6»yìJ綯Øxnq±7±®â.om¬ðnöåýS?‰oL;•Tšq$ªÁV3óÖ.˜æµ¼è '·êDÖUå^¥¸^ø/‹ÿÉU©‹ó¸œ|Cs~Y“ïù ;„¼{Þ|„zœ:¶—8äUäWÈ äYþ…dÉCÐíû$Þ$õ‘ºÈИè°ðÊèšz]u5‡GZq½ÀÜJoÒkRæ¯RCiW£É×f¯JÐFF$ÄGnì ?qõƒs÷9!Å|£B€™Ú'Bß›†›f°Ý%ñ–û„RäRЄ\ˆt¨ƒ|…^®J†(¦ÛHA’(•ìQÿûÉço°Ç’á@Ú J÷ñ‚‘†Ýê‚òœ|µt@PXŠ],®Ò¬Î${P¤Y̘õ™–Uz>¨ û|g~þåÛU³æŠU„Eë_Ì eq*ìdbcã•&„l#ÄÐ87檛½ÈQ¨{inþNtú;Ì•Åä¥@’C|Rf Yº›H®Z¢ÔˆZ³. #æ ´ÍLU¤?†XíàßkÍ(ÅŽc¦]ùF+rã„iûìhüb^G ûì賟YlL¸Âƒ0“”(®ß¸)ÌÚç&›Vk“ÏûÀ{)¸c–à:þ-8;Óé—o?ÍpcòùÜLŸ•;ý’>ó¨\öÿõ2ôÿ¥ž¥ÆL¯EϼÅÏ^n±åGúÕs±îMÚÀã…w8«Ôî€XÈ”§)Òñ˜n©=ž"€2[‘O[ýI¨¶øù$½R‚íÏ|JåEñy»ò‚KñÝîöx’™YjqyõÇ¡Ær-9×R”_÷t’¾-öGžÝÿ´×$æd@¾Ù³•¡B¹=šÙ]®IÔÈóÍ¢,'GSfvm1zÓ½¨­ åw‰…5èSngÞ ìÚzÛ­ÒVÁiÀ´Ðe²å€)•çÚ´`ÿÜË‘'ˆaî8a<Ót]ý=œað|ÝK´qH”ò!tN¹×Ê?¨¸x¼Ál'ÎDé&—¸°]ïÂÜ”q¸Ç²¸mæ;¶$RþVc;i€ÐËbÔfbÙ*PÅr‘aÞâ-ªHܪaºµt Ù\S·—*AM€Å¡ÔÙ*-ӄǰ5Ñ•á/ø¼ÎPYkÍ‘©ÉÏat¸MŒŽ£_ØŽÚO×ÌÝ©:¿=Ûu|PaP]W´K¥¼â9ÊkûàÊ ºøG$~pëçÝÍ>Êáa÷Ø]¾5pŒ¹p©íâÕÖ¹­ðö\µƒ[¸–E}gÕ$†s笛9ÅõÜíÏß?¡Þúâ–[ôˆÅz v§¼î¹2rmvc—+ÉS4åB3S™¨ ß™¾¼Ãç.zõE(Uâž'⣜IÁìLøáZKçq=‡N!õ ;žªÛÙBúœ†£5mÚÚZc'¼Æ …QzO˜‰ÌTÿÑ9K‘ì±èîc ¶6Ê!ŠÙWU[i¨ãðÝžÿñĆ!®95‹:MÃŦ©è3¶T Z]$òÝw$IñWe¼p‡h¥?ü‰ð Î1<[£}ß)FŸc¤٠N¨ùt5šh  µGÐLÄ Þ…far3ÕY»¦»9yrëGD9î.¥¸Ï ǰí­%d¼s4êÜ—žŠâÈc‘š….ze5bÞC¶Ó/¤“•©Èƒ¢"ÿaÄi<ðÀk7á™Z{ˬó”¡Qä”ܺúý1îøUˆdkn7œÝüÌ¥Y„˜f1ÊÆÙló¨g.›ñ&ÒV/Ò«õû²Ñü äOÆ'ÂB6dJ…ùCæ•Á½äÇ»-UÕs>òàiõ® muqÃñM‡æŒÇ½7`ŠÇôïÜä©tM çîÚÊãÚÿ¾Ò,ÅÉÙ=¬¸ãF@g]{.f¿ß œ(+ÊÓärÙÙ*¢5$e. _齙ϒ“CgY¡¥ë¢¹—2ЛdÀÙ”Êâ!ÿé2* ‘Ø¡hU§¨•ˆQ5ZÅvâ3(£½„$±ù+VßK[ÎÚmÇþ³Ùì„K¿šq’G¿óßÞ KÌv\bÄ ±ãwÚ;ÚËJ3广·ãMÛê7øúÇGFpáÍ«5aÀŒÆ=× ÿ_§Óï/ <®AˆE6ô_µ|˜×1F.,3-!¡ ©,#+‘€r ©1mGðέ …æ$اˆ6ö¾Ð‡ëÝsªÞ¶—¾ÀÖöB¹m_Šú¥°©™endstream endobj 86 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 415 >> stream xœ]½NÂP…ï…¢”úƒ¨ÅÅÅE|‚  Ê ‹!ÁJA­A(åÏD¼@*”š+qh °›888ò¾ƒC›h‚u5''9ßY>¦tBhÚóú};.—ë¶ÕUº¦GHõªÇÓëÀêq¯Æó5KÅ ‘YÌS²j·)ËóÊ‚U™Ÿz—6wvã1æâ<œÜðÅCá$½áÇ‚ô¿3x¦í“³ÓXð< €[–BãÏúÜÀ2_àU=—6%ùîÅ”ƒer¬äi1"E¥ˆœ»ã["Ò9Žc;×bÉ9JÉÙnª[X)éb²¡”=Sº¼F,Á5¹Çv«uפ†ò@JùÈøŽ´À‹TÕ >< õ[-Nr|Ó+÷µâ›'„‡‰AbÈ4‹-¾ò]±sÑàÎfÓ÷+Uc÷¾‹ea„ííÆsu1+d8ž/æ¨MD9F¸öTÅš³Ö«ök½J½RGu¢YÄWTÙÉòiM»'ööYõ`…®’á;€ŒŸ3/³ÔŒ¾<2›ø z«endstream endobj 87 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2582 >> stream xœV PSg¾—Ü ElÕÔ¢õÞPŸõQ@RÚúV¥¥>ñ‘ R ‘W(o‘I`AEå%"`4ò j-Z­v­µºZ»ÝV·N[k·¥Úêê¹ø³3û'øèl»33™{3sîùÏùÎw¾ó³Œ»ò,7+tæò€‰Î×i(+=ï& “Yõ`dO˜|Óæôa+ 9Foð’—{ëó^S`Ç3¸©?F=ÍÈXÖlšeØ˜š ‹ŽIRY÷¢* ((p¼j¢¿j†^› [§‰S…j’b´zMý« 7¬Ói“RUc^IJÚøªŸ_JJÊK}âK†„è©/ŽW¥è’bTojµ Fm”*Ø—¤Z¤ÑkU}‰¾Ô÷˜eÐoLNÒ&¨B QÚ„8†a†Ä“’C4 S×Eiׇż© ß«˜8i2Ã,f˜pæ-f ³”ËÌd&0+™ÙÌ&˜™Ë0!Ì$f>3™YÈ„2‹˜Ì@f£d†R|wÆÀœe‡³ºqn«ÝªeCdËe×Ügº·É‡ÊSå—Óßp¸Ë|<¿×c¶‡Õãßž[=¿•ÌÞ=rpHž6eÈâdeÒ><£ü1òq›3]'XÑMA¦äÊÕÜÙRˆÉ_ƒÕ\]ÑeØGí3¨³¼ï5ÜŒ:™¯Nœ;T“8M äÂyKgòìÒÛŒ^X^2© Jêw‹ÀÉÃɳdðÍ €ßÜÂ)"o(ɳ€׎ÂûUv±¶íðn|ö» ÕѰ "øW€ðD)xKkûЏ{÷ò2ŒÂd¥­'¡‡¹É”©|¤-­¾Þ¶«½kÙ¾ˆ×uÁšLZ–LA^ùï²>§7ÂUØãÊy2ÍyqžMR5±-0ý‚Lê'MSVAiFž6gæM¦|³açú’hàõd,g_À§“›óņ|[ÞhÛÜ–~ª?—/ÜÙmòª­…iÀÁœ$Ž{L•¥E°³ZØ[u8æØ >'ñ™ ôy/Þ–²[Œ< +Y²mAùârxÿä;¨AYÉœ„"¡0k+T_Åu¢·BAå8­šý•v°_‡ £¥‘Já #0\£°Ž‰3ÆÌ¿}•4s¾×’._éf97mÍ¢)Ó êO øG‚Ÿ@–Ãþ4îþž+pÕ!¾ªÀ%rj‚VQr§È½L{Òí`q8>'Ã}=ƒ•èîPD[Fƒ†Úhˆ.¢«Ñ½·›¸«9{Ñmè vì.è‰3‚#φ‘ 8ÙÆ ¹E:É©ÆãÊ›3Ïßp♨ٟÚÐÔXÓReÚV.ØÊö@ðÚµAâ:ŽL$“Ö™?ò)¿8ÖÑY-®õ/B—¢f+ÔÖl†Lqa!ì„:ž°§”S7¬Œ´ù™æŸß¥>L~M¾‡Ç:¥Fa N§1篒ºÑÇ¡Xi™Ka=Ĺj¹×Ûí«–NÓÄoU6é[ëL9Wê¯,Ù±eë9àœÎR‘°,ð¦ë®ð(d™ÍyV³H<È»d6ÉO:‰–¹`€8ƒx—Û9C{GæggÆågû×lž ›JŠ ›* …·%ÖècºUš®}p¥³šÎ„™c°m¡Ó6=eR z(+6ANºÕš/˜ÞÙ8Ïxâ 8þð™BŒƒKÏXò­V«Å*šÍYÀk¤Õ×´l?zp%KHð:lyþG?ÍÈ—>¤Î.érSâ$Ï힙ɳ†K®ZÛLÏyaÔ$¢"Ão½Œ>'VÙZÅe?!ŒÄ¶÷†R³hy%ò4àÀótìk[ÄæSgJê :Smkyoi[žÃqjŸŒl¾)“–c¼²®ê›LŸ¯>*j:·¿A#ø¿<’ ª;þ8Ǿ·«2òÒ­æ¬<1~~ˆ1‚zŒ´âÐSb£{Q{ak½jÿÁZ܇2âU¸‚÷ÆŸÀ˜H•Q~÷;§ªèc¥p§î(îžßi+/²ZJ„ŒœÍi`ä×íOÝ[k¯ìlî˜íOdZ #g¨¯¬*=e4ze žp1l E_6âi%NUàk?\¿ƒÌøë$HìßG*EcÑ}°S»®¾‘º•èAsC ø‰DÄŠGjîìÇú¨•³õNåûYAf<ãÞÓÿ· ÷|•m3:ð 펮BZÐwðÀ i/þ@…Ýn» ð·_øš„ ½òÇ•ÜuUò¯G•à!nà1|JÑû³kã›t ó¨EvéŽÇ\³ÖÿkÅ»r‹³Þ±š²¬bþŠX£€éÓÜ›üÀŒ¼¦+„±QW+‰Úi , {Ë:™¼&zã'h©ëál£ {dÊö·›£"cuZm³®½ÕÖÜ.Ù$„2öÌoöÀEh ¥ž{رPi-VžíèáÚØ³7ð³2,•*ÇÔš/þËv¦»û›UdpPlkÕCiÆ0ι*LfkÎfA½2¡fEëXð!çvž}ÕŽLñø²}yw“n'WXjÛ³ °œW_'؄£rën(Ny´.ÂúÖEaaÙ6¡¼¼l{}ýéÕײ>ýÏß»÷ÏЄ­§ëàFo#ºè2”áu´)qÀ¯ÛÊË.‚ƒ‹·¤PÅŠ‡pHꓟŠ=æÜ‚¼‹E$óÉ(¹¤æ~O ' pñ15†p;+*·×îÆ~Äÿ¹Ò\ªeV>'25·§è–ð#ñk¾møËYø’ÿ|ÖÇD$îAa¯®hMßÛx°êH]ÎU¥BGû(þ;Öë Voˆãuñ­%Ûšb-°ä™Á|Z 8·…“Ь4Ÿâù…S¼æ`€²Û1V𡍷nIHµ@F¶@º{ËÕxˆ(«æ‹nQ=9· Á…çXºJ$ƒ’\"ÀygWHae¸¶z[…‚¬.åžÈ>%xºV{y(óòB¶Î«_¡—7ÃüpþZendstream endobj 88 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3534 >> stream xœ­˜yxSuºÇOHPŠà‡ŒrNÕa–¢èàUP *BËV ì-]Ó…¤iš®i³''oÒ4KÓ½éÞtI7 ”­„²¨ ,‚Ž8Ï•ë8÷q®wî/ñôÞçþÒ‚2ÏõþÕõô¼¿÷ûy¿ï÷W4àñx#"£W‡/|î{šç{f‚o_ÂÅ~Ÿèß<‹˜¶âÍYÛÅ*m(„ð!$¨ý™ŸÏ@'§#í4”ðÁçñÄÙÚ±$O*JN‘…ÍŸ¾té«¿[¼hÑÒ°·2¥¢ø¸}a‘q²”ÄŒ8þ"=l“8^”(Ë ›ûzŠL&ym᜜œqY ÄÒäeó~–#’¥„mLÌJ”ÊÂÞï“…EÅe$†º`üC„8C’-K”†EŠ¥û‚ ßÚ·B!É\%Í’eËsâÖæÅG&$&­ONÙ(JÏX@Ïëˆç‰õÄo‰ ÄFb±‰ˆ&6[ˆ­D ±‚˜Ol'V ˆUÄÛÄ;D8ñ.±šx‰xˆ$¢ˆiƒ{Eõ¼U¼Mä§M úà}Áßâ&N™¨#W‘ŸLÚ=™?9yÊSþ²*äöÔÔ©£¡uÓ²§qOdLß0]â3†úSÁƒâ<¾7­EATz´X¶M¯4iLOªÊÀB7A«¥ZÁöÀñçí.¨sjÌ:&Ë¢(‡:¨tT8«¯!j&*¸¸%æ‹$Ò$T¨!?meº Çâ….ð²§måPëÒBÑv½½…eöøIS½©DBuÚb’Û7ºŠBÑÜÁ¡¾#*·o¡›ç n8ÍGfÔDÙN¢_ýÈð-?r’¿QK j“;:2îu¢yV§ Å&c¡V‹$ᛀ,ÔØ›\7ÓrÍ{Î'dÇ–EîLÞJÓ{v 2UòØÜ¤¢uÀ’šRÖé2›mtÕH݈ÈØWœkÈ6(˜Ü A&0‹ŵeµ5V:Ô¿7ð7:àáùnÜá£rÿr*/pz;Ô5·AŒ¬ŽáfU§è4Q û¡ªô¡ÍB‘àï7×{£Œù¯ú/ïÀ—ä‡Ñ—8Í鸨óÈêì³ãî Ñ$Á­šõq/¿>‡0ÜjîÏÔ>“Ùe‹µ’ùõ£å‚› ‘1Ï-™÷,ê3Ž÷ M¸ˆÊ/ò}:ÔI}·æÌ›\(7ƒ{–›Ë—7_E¡hzÍ¡9à¨8QÏ•ÃMhB×i¦÷âP{/C-;7ÆfqÁiÑÌÞ•1Ò CýëåÿBͽÅ÷÷ø—Qæ³,¤S ,kµ–~ï_ÒFbÚß!·›KádœŠ[†&ÌGO"Þ­›vs÷‹ê/¿¯Æ`RéÝÜ|nÒ €\´ô"z¦Í…–ƒ~à }𯗾Qå³§• õDµJË,æjÜrŸ‘ÛâA ÇÙx÷ÿKîW”&]«KR©‚\-eZÀci…vèd=?p§ƒ¼ìL¨ršíGÐZ¦LÚœr¿…‡%X€fßÝuéíµ[×hõŒúXrƒè±  ™÷ó)Gǹ;§€ì©KÚ²IÄMωcRVí§©û7Ü¢‹k²åÇšqžïËõ-¡ÌV³ ¬d©Áª×$‰Ò h¥'«w;›ˆ;3gñ‘µWzzÜÝ^Æl*Ú®Š+Œ*6»ÆD=˜¯vðZ: ÏWÇOÏi‹ÅÉX‘“ÒJÖ-ÙäöfùñN4¹z?Ór~pè çl ŒŒQêS|Áƒz;xþpTDY`3Y¦£ÞF#Ͳš½2šûÍÞÜ<\a¨àG?@Áw—â<­˜Õ0c4îa-7[+Jè÷‘tü¨ÂÀÄé0Ò9Ëó²–ùÁydvvÛÍòéâÚ¥†}zVzRé„Òr(©-¡›Ð*À½„¡KùôèVAþýQ:•X<¢ÜÓ£û:g¾Ìf[ê[¤ªGׯUbnæ]ç£RÔO•”¢iŸC)´Aƒ¢Ð[RR^­©ªm­èzÇ.Þ•˜½5‰VÄVIþÏFQ7FíoUîs£—/»yßDkŽñ}3|AT²Í©´+Ü5µÞÃñ}k¸”Ù±Iur§Š®)¨ÓT5뇊!š”d½ÄMHÞVyDIµÀž¤úخָS=Žæ–ìVib•zº8=aÞ{Ønö®*k£µ Cßp߈柮æûX߯)k%ËJV;‹Ä)æ ‚;€;¥bõœ¸¤”]@îVvíþºñ"ãh,­7¹?«oû"÷‚N@Á\Ri¥í-_Ÿ²Ü¥Ï’ª2嘴ÅE1@†d;ÐíÞßI»:äÝÐnO…§¦»ü4”ã‹Á$ÓÑ9ÈM™­¯¯{Pé–û•.8];Œ¦Þ ÌçTj(§"/Wš+S[ôX‹FII™»¸rnRŒâÐþ3Þ{çhGÓcWÏñ É &g_/8€^;Œþ»ïúÁ›ÏÔ ÿé4z¿{2ZFi3LY !é¯nÞ <á=T3Òõ]5`-{Ìw¥†+wB29ïã졯ílݰ®CÿåÖ«UÐ p–|Ô!!-¬0I¾9mG c¶Ù[+†{{í5‡ÇÖì:¥ãòi¥ ýã² ˜šØ7ƒ*qA FÓ¥©ÈKÓ&m2å•KðNxÈÕZûWÔ ªñ±EÚTKé2×½òH#;k_¬5•Àb)ýàñãm<Õ÷Ÿ”³×}œt h˜xˆcã!â-‰ÃÔ(gUûÂõ`[Íu”1º Wjוh•&“TMï[ËMá¹ṫŎës±î¡kÇnÆZ¸‚;ªIß´ „¿ýƒí ÕÕ´jOqLJLÚîdy H@\¡í=j1Ü¢JY™£g7Äô§}w÷ï_7ÑcÜ£Ÿ ‰7ù¾¾I”Ô” Y¤´Aï,ëµ ‰ëzfŸ[÷)zâη•vCg4™ÔzKÄ›â*’Á‘ûÂ{ö˜÷ ØàTî C¿'ÆñÿÏG9½6Çy kœ÷‡›$ƒTܽÑgnö]`Læ, ËTÁ#RÔS£îüww°¬P¯2å©&+Ó^ô÷ýƒxšaÛÁ NÜn3zÚ×7Ó,83ú½%×b,!^(¥Ž ßDþ6÷Üèå‡/ƒÆ‹ck7ô@/Ûý ô–i p8œs©ÙòCÈB¢öqôù_¢Ì6‹ÃïÔš L/¨g*Lj䑘 Êã VéYÉ@¯çÔŠN©'ö—ÌCEi[I]÷‹}L`©½\@z/å£Bª­4c0©oýó3›[9g8âOÿ(+s_ÖÕê[‡ìmeýŒÍMíG/ýµ¬ÈýbQ÷¤1¡èƼöŸÊƒ^þ¨ÁÍ“Ü@WoðQ3Þ/7Ü/Ë΃¶žšO‡\Ç{q‹š¡*W¤ÕI@IæVªjk»ú÷¾(åžii9Ç ^ûÃvgF+GùÅëXuA”PW¼3 5ÕöÚ­íà ëeù2Y^jB¯làöœj—tÐãæ@º„¹›v›FÐGš/@ÓÑÌoÑäÏV_c¸þG!ö“éd¬nèµô`úÇap<c© F³|ÃÔxN'ï îô§®ËSÏÙÄŒ{v,ÂQi† þbÝ®«ßº}³“öÏN)+’ç³´I j”zñ|–#¹ÙÜœ…Ç7üñÄàa»IãžR¦'. „JA¦«ÁétC%Y¡®–åHóÓû nüí“K·Ü´m¤4©QË6¹™½Q~´W÷1͘ŠCØ%Kt¬IϪÿß[c׫! °Åfþ€ ¬ Ìͽm,2±`9‹kÚl-v Cœ­ñ$zò/ üÅW³5qI"1Vp—¼kø¾Âfîøh?^ŒZtBOx>ÿ >'?}ë2JsÖÇÑ }cÝ÷H¯ ¦`Dà;Ö–¤H+e´buäo\žü´ý;'έ”ƒÝº`«8%È4ÖÓÖn?aí`ÀRÚ •pqo÷îZri95[ðGTãè´—8ÍB»¥_‘ÉóƒóôÜznO`^ÆOÌCO棫~>U§påçeˆ³qòt7Õ¶ÐÜÚQ;¥É†"P“úå]_ý´™áñu§¸´©¥²§ö3‚^q6ãp\+JmMX˜ÊÍÕ?´3:[îáѹÊL]¾6WQ¢rûg¶óîþçë¾ð3Fͬ/ÙBáoÊa¯»±­’®íª¼„m ·RoЂ3l4ÕEÛó׉6«PÿÀxNð ´ùôËü81ÿ—ùmÉÑÉ´îÊÎÆ°¶§'oû%ûòj»ÛN[ÊúÐïlÍ¥ ¶úÒ†²ÞShÒ½@¥19ø‘> stream xœ¥X XS×¶>1prÀñT°öj[…ª8+ZG¬È 8´¢ €(s H™B˜v˜çyFœZÅ:`Œ­·±¨U[ªÞÖÖZkµ½uÅ·é»o‡I¯öûÞûÞ'~º9û¬½×Zÿú×¿Ž€2B ÑJçM›fÍÖýw–öuvâí ,×Ö¼p4}ƒi¿ü wqb†9!D#LöOœ8bŒöÝѰo$ìE qDòJq¨\â¿ÇOjeícc5káÂÓ¬fÏœ¹ÐjE°¯ÄßÇ+ÄÊÙKêçì%%‹ «b_©ÜÊz±ŸTºhÆŒ¨¨([¯àp[±dÏR›iVQþR?+7ßp_I¤ï.«Õâ©•‹W°¯•þ¢¶úVŠƒC#¤¾+gñ._IEQ+V„Ø‹·® }?l•duøéÚ‡(/™·“ÜÇy—‹¯ëîõ{üÜü7n ܤ쩭ÔJj:åN½OÙR«¨Ôjj&µ†šE­¥¨9”#5—šG9Qó)gÊ…E¦ÆPc©qK§,(KJH½NÑÔGñÔPjµ˜2£–RæÔHj9eO’B™P‘Ô‚M‚Â!¢!‘C M8“D“g¦ ´)íM?9‰r™IÌþ¡Ó‡ª†ö Û3¬k¸çðÏF¬Qm6ÄlÙyó8ó,ùlTî¨_FKF_óÚ˜Çü<ÖnlÚØçãÆ=d½Ø£¯½ùZÌkÇÆ¯_5þ®ÅL‹D‹¯,GZ:Z*-[,¿°|¢-2×!5˜¨µfÕ‚&íN!|®½Ï*E!) Bñ©ÉxTï>‹) iB¥üÏtijnGA|#˜˜Â|º›˜…ÿõ±ð8–²yû;!!磢³¤¥.(ã –[èO¼®ü¬M¡v>œ`ñ8±pÍ_Y4w•úpôÞ0b±‘X<Š»½ +˜B—6’ÂÐ^ÞèÇÝíçÔÅnŽñ½z­?/F ÞjÁˆÑ/iíÛ¬»r}¯"œÞÚ·*á!‘á…ïn]u×,®à;ÊÏŸB_1×Ö÷à!‹+Xð†Q¢oë÷lßå²€Ç>ÆB Œ=­žçïîë<›'§)Õð­Z Ö@ ñn;±0z沕šiGã1?N}þüÇŸa ‡·a;v¥ó×~qéÊ•/l§:/_É÷]W«P ‚¼î í`+é’}Ä1Šã§ëoÚˆªx7l&Ù$Û‘n¹÷Ìz0óûŠ©ÒùJ|ž>àO)_Iƒ5¾hŠ]"ôái@e<貆þðD€‹.@ñjm¹Zð±Îu µ!Ú¶ÕŠå) É©\šB!OKö>äQæ…ÌZa¯Áë`~ÆÀÐ;¿k‰Dñ{cR¢Óy=991¶óASaê} ~8waçŒR>+¢@Y˜6TY­sKÔ0{Ù!xb k”غ>ôpHbþxøÆÂÈ¿¼eï±#1‰oCeEGï#tü¡eÏwui¾RÛÏšºfÍûËwßëàãÙ£ ðâ@îu/T÷*¢ŒÀµö>L‚Ù0צbK›öv°ZÅ#0g‰ß46[ͱÀÈ…ÛjÁQ T“L9j­ØJT€"dœL$«Þýñj0Ít<›g ‚kGÛkkxî)LÌÐŒ.kž´#»ÑÝî½eÎ×ütåÊͯÛ9ëïÑjðé‹–…æ ‰×<8Ê‚í‡dm­¨®’»+Ò-óã°ø@º;-GÒÖ6T[Å]µ( ý9üßT4õ*B +í8º-¯ •¿#¼ÿ:\-ÒÜM€8UN7…X~÷꽜\”‘ÃeíÙ—–‡˜ºòŠÚv¯ò­kÝ‚7zðé›lˆê׸{™QŒ3 ¥9©¿4ÅjQ ži`¢æ$ñí=ØÏÂÄWû6B@õ²o½&oö÷*‚ +xËpÞ6z°8¯ª¡L-ÔÚi'÷!=\)Íà|ê=PÉØ‚;ïzñß*oNé‰û(ùvÚÄìö÷³]çÕðU$—RšV$A ¹Qÿ¶(Eì+.@G˸¾Ÿ¦µ œŒ(üªÙ–ÇÏ)s-Dǘ¦–ÖŸe{†er™Q•iņJˆWÃ"5œR k ‘ È üØê:ÆFn¥S\B'-DÌ¢¥¤¸ÞÛÛÜ:uÖwJ Ÿ%©B…ýá‘ΟheBJ°ß§r²ÄÃ&ã×±#v~†-ahû±ÊÃø°¾ðÖTqú˜\WÿVÝ—è9$AÚ¡,aöÁÀáù=´>R9·p¾¨ŸƒJùû8‡¶ýÂÿ«sOšžU£Ú€@Ée¸º%J³uÔóÆÜ{_~ÄÃå„Ñjõ¶%(–ǃµØûw­¡&ÈÓXIÿaµ½ŠÚ˜ÄwE öÃ1Fi7¦8zÀÅÁŽ£Àöáæ/}&˜^¸&Âs1:ÔÂA½èåçÅôŒÏÄß|~¤¡¢šÛS*¸K/u™Ú†vâä3£Ö =ëU¼cTµ†]ï茤ÔÀ µ L+j·4Ô7¼ 'é­XmšA§6Æt%¶Ê5iÅ(¥ÆË×E­II“3ô 6=iÇþ·P=ÿ~˜ëWžV‡,?B™ùÕ— –wf5‘­ŠË×,­^›™tU j”w˜ÑGn‘úµ K2»Ùp˜ýÚí6~Ýë]´:´*¶6·-ó˜ŠC9*UMf±ª£:tµI‰‘…¬Oßêµ5zÝ´†yÿ®[/æú”«èH?‚˜úz½ëaQ™¹{yÇK,Q‘Þ2¿èí( 1ëw¶½ðü˜ñ*:D0Õô Qt…úxÖç–¿½ô7Óºúÿx¢‹ôA†ã©¤Û™úeˆÞŽ…ò÷aÌ<ÆT>¡á ¿~ÝV3صæi¿|G½:zÒÕV3÷7] 5ùû6””Äø ¡Oœ|×pé¶^E€}SzúîUèé[Î9b¥Ž¾± †i£Ô‚c·„ÚÅLF€b0Ð@‹ºá÷öºܤԦ%6ÙB†EÝ«77Ñ`…{³Q:ʰDéascÅÊDÉöm9ª¬¬\TÄÔÅ”K%±ÑRßVŸŽÇíÀægqƒ¬{@è¦N ØF RHS{S¸ˆMîÊpÄÌ_yõá™f’ÚñM5é|^º*¥dy·dä"¦¶ª¬éòd´/Û„­`ó‡S`L8ø¤Ü –º» ªKŸh96Î;f›2€8£è˜ eéÙ uQˆ¨’-%ÐÈ÷*Da’~‡¾Öû)Aa¼6J%Ê ÊJ(Þs‡[d* ÄÍÎùù•9e?@*ez#^ý¢BÔ8P¨[è]H¯cŒs¸0„x^¼ˆŽ)÷>à‚˜7gLÅcðÈû6¿iÚ?ª­â½PÜÇeG°`7z,\¾rõ?ww_Õœ\ÿ:?tA(‰«ö: E"ÆñïèóW#öÔʈý¦ba Ì•¿¸ò{Ló8èïä 7ä*”Ö*Lþ n_µÅÍsítþMq,ï‚Õ]ê.ðîtk`£æ£óBpûœ÷@窲²³óùê½mq‡óÕk÷”-‘m|ci}V™*7¨9C…˜â†üýU±måž©^|@¾13WÙÏ‹ÈñÝ·‡—‰Ó‚Q<ò«ç'm ŽÚŒv1vO¡}zñ.¼W¡n;ÐìVÏã.œ8~úl»‡›ÛN-|3~ÊÚØ?Q–sðp_WVˆ.#æ;‚æxØï°áæÀ~B}y·—»p¯âÿ? Æ«=úEç¢IÖiNiƃ‡pžílÝc¾µ¿‹‡qxéÿN{ˆé±gn}Ô‚ZÅu‘¤ƒíD«PH•yXc,‘ƒ—ª/ªN* NOJN󑇢ãç»Qnb?6.®9¼:¾€ÁL k!×軺»ïp1Øð~x €D‚—NílCTµD%‘TG54TW7px9žh˜ežãnL¡¦Åàµ5Ü£û"9XQg.ÂÑ‹ºéR?éE¦+¼â9÷v·Jd°éÕ~eçñ´lÞç¨,{r½4wW"Ó»,à ú„9Ûqúò3>óK¸,YfÜ>ƒ Ö3Y£&hÀ²_Iå+$ÿh:@¡àDƒONÄ^Å6£ÄÏûí¯/usµà9aɃOJ†™î7ªõɆ¤ñ|lk ¿ëÏs1<ù¤WáièÉF#Ü]úæu"3f›|ƒùÐþQ;[-¸¡8øuÄ»&£F;܈ðc 7°e]'P*`jbªÂ#£â‚æ>Zæ0æÞƒGgÄWçá>?Òôú”¹±\Cb(\²mE@Cb¹î~劤âö¹œY˜îŽ=ÛCdv“’ùÝé1é©(*=%íeBjÈ¥GÚµv$ ä—]Â#Ì&Åe)güJR›8HÇC\pú¾§®0ä†aµþ‹nKÎ÷ç¤t8JɈ—1xIïHBà7Sü›Hïñ‰ ðõu¨%‡ûl!Xüó×_H„êÒÊbRSRSP,#+ll,«ª;ë}r6Oþ˜a¡áªGÏÝ#¢sèÜïÞúÐM汓#2øcÖ*&ªTª”Å£ÜT2ü0êsêž›kÏut]Ù‡ºíQµ ]óÝ0Ríø”€È‘‰Cm-ª–R. >ì ‹ ³³Q £ó‰Ã·h•²TÚ÷9fO?ÉÕÔsýÙ뛨Ïk Žør¾eo×ru1=v7ñP<ÔnÉ §>øFÊMô]626?Î%©3ÿñþ“ÎÝWÞiå–7³‹7ž>ש>õÍ7êm›6»¹/áñ%“yNŸ_ºúåùž»×µ«7,ÐnÕ@nµàßTü×ÔÝ÷…ÿ¦®ü›ÒjXU]r³?™Ò|2²Ü‹°…*AÖ„ö!U£ª„'ØÉfòËR ?¤Ø™Z„ý-T{UaûP“nGQŸðSðSx€©¾ÔcÛBëC%’ÀàÆ°ýmõM;jòÒït p¬/@Ú°¹ 8ÐõY×3òW¨µ#d]”™rûÈ@š,KLåpÕŸŽ© wJKyYlem^eQ6·~goìV»»ïÞ°|ùá §OVßàæ­`dM'OV5U…nß. MàñzíößóÛ¶îY¿bé·S‡.\×ïlþäTßÎÏmºäVçk´Û«ZkÝ·À8¶0¯(U25òâX.=C‘‘Ž–¸ïŠONN 5ŠäEÉù)pûZ䥿+ SVY\S¬,LÈãñIp1Õ«æŸÁa­“P»ž±%ûQk[€î£Éc:6¶ bžáilYjk Bñ<~NÇ£À€6"Sþz''ØÇç呉¦2!O‘ƒï€¯Er¶"7 1±òøHy‘²0™‡vìD”µsbr‚É-#+ã˸LU¾*å[’/,Õ}ÈqcQIröÞBÌ=ò‡·Ðcô¨Þ«Ç¥…y:¦”‡KVlpôà6.Û¢i ?¶=¶þĺk.¤ß×çTØZ ŽNF7eOW>ö?±âK¢-¤Êè¤ø¼”ÊxÒ²æÀ6E³Bðü–u\’"Å1I¹Ñu ×Õšœº§ñ'ô½Wvê6¤ý…’+®~1ÊðYÛÓÉIüŸëDA¹‰8°7j{6/lú¤4_Ãt˜l¾ „æ,6%(Ê×=:)=6ɘ¸²èò¦'§:plÇî¨Ð€†ð–Ü> stream xœcd`ab`ddä v ò5070qôH3ýaîîþQý#U–ßÉA6*¿±ƒ¯‡‡±›‡¹›‡eé÷ïBßÅ¿‹ð``fdS5tÎÏ-(-I-RðÍOI-ÊSÊÏMÌCL,²3‹³sK2µ;˜Ùoÿgl¸ÌÀ÷ŸÉÒáHÙ§r¡ïNo~ð}á÷¢‰ËW&.kšØ8¥¾›£ª¶º²pYÛÜù­•Ûª·T$U$T'VV¶´urTάž3é’ésäV-X½`Ղº®º&C‰®¦ŽÆîFŽÊµófÍš:§WNøÂªcû¤¶æoÍÝZ0¥ujÓônŽ93gÏ]Z0¡r’¼ðƒÄ¹ ³“æm™·möÖ¹s'-›Ð½”cníìªò¢ú* æœ²ì²œ2áçÙ/Õ9§fjM7GE]mec_cO“üÞº¾ºî:I¾ò?œf}Ï빘íwÜö÷\{¹å¸˜§Ùóp20*Vž-endstream endobj 91 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2080 >> stream xœ­TiTY® J±%]ƒK[̸ŒƒâÒˆ§Ý ÁeÄ Á] Y“@HdˆÈrÀÜÂê¥ÛefÛq™cÛÒÓ3zæØêQéæõ)ÐîöOÿ˜sæO½ª÷n½ûÝïûîQ®.”H$r ]ï7kèÍÏ9AäüØÅ9Q $jðÒ`¸ÛDjtà’‰[T{s<ÁC ®-(ôÂÃcP3eRb‘H™š¤JÎPÇÇÆi¤S£§IýügHgÏš ]ª«ã£eJi¨L'WÈ4ÂG’4L/×dH§~§Ñ$/˜93--ÍW¦HõU©cM›!M‹×ÄI×ËSåêÝòiˆJ©‘®–)äÒaœ¾ÃÏ •"Y«‘«¥¡ª¹ZIQÔUrªF+‹–ÇÆÅ'&),ñ¥¨µÔ:jNEPÔgTµœZA­¤VQ¡Ôjj5‰My P®TõQ£è¹ËZ—çâñ%×f·ÙnFw_÷Dz.À,d¶:õžN½ÎâœeYbãC±3XühÊEÆL'"2†°¯~‹#pÔ‹ïP‘²Ý ‘5ÉêspÚà\ª;×Ðq¡æ4œƒ³Úúõ;aÈ!µ‘Ú‘ÊÍÀx:»I„g˜ãj‹×@è-yŠKœl/M|tnIô­‘¼äÁqô,ç’èc·© «¸Õð¹Çd;½\çyü”>D—e9ÂúY”LF\yÉÓ… ‹LÓ2%ä‹©´­«ÓÖÌíësˆì¿4Z^}&™Ï®#T ˆ8ÙùI•W³E}3,š‹Þ’o1#XsÑWYÄlŠ‹^è{åQ:§?b(Ý Lägðd, ùeFcUg2éDÕ9ÙyC€…îøó—=ŠÆÜÃ|BSÌAÙAFr/¬bù‘«ã[ëÏô£K™_’‰3æ0G ¬ŠAWÂ]a1äæpú¢½yEz¹5 öC<åËÃ⎫´¼äÛ¦kÁ—Ùܱ: N©F•çW‹^õáx‹—:}Xœl'“q•ÚÝ N+b´ˆ&£Ÿä¶Ý²ÞºÉ]Qo ³îZÿªätf­ÃéæðB—>”÷yKÒþÎúÑèSáf§ƒ÷èä%çi2eH’¿Ìß“zîÖeþEº9|ôöä>ègód:½fá N’~ÎYmd†¼dδc¢¹þŸ~;Ì^Ž{[£ßm‹·DуýwÙÒèÙ`j®}À_V‡ÑëÔº„¢óen£Á§bÛcNm>¾˜€m+Õ™õÖÕõ‡ ›·ù†ÖΊ&`:¯ÄÌæwÑ’³=›ôÁúUŠ%ñêÉ,xª¾Á Iz¡ãtÕ&ç³SèAñ;¶Dµ~þ…ã!ìê_+°Øü¸ÝâÕò7>Î`9k+YôÿÊÑsè†!¶•‹Ò( ‡I9‘f­¯®lüËâS‹È˜™„"r’×ä£gS‘ÁñMèQ^¾ôyÅEÅœÒweî.`$Έ9gqÿ&¢Í^BSåõª‡ó¸b»§}miæe9™Ó¼Ý,6¹›K æYøS¡Ó˜™>d /¤ÿz:ÒèyÅUåûL…yÅûй8?Ø ›!ºQÓ®¸½Ð6D8‰ªÅõW¿®E¨õ²v§ÝÁÀ;­Ý‘W½%ßëPKعð¼¶ÁØtÌÂ<\k= Ì70E“lHÜ£æ÷åjTÑ‚á˜J¡¶²ú”ꌾ ˜'}}÷Ú³ÚÕµ|[K[Ù Á²ePbÐê —É<’{¼¼ê@menSLZdA”Œ“5ËJ´Àø†„,Š4Ë-»ùœ= ÇH)H:"·§­ÉLÜ ÑLг è‰#_uÝoÍîÚdå"¬ë`5¨a'äKwÛ¡‰AÒÇþ&¤«§ãdû¹þš{?ºÂ¼ðÏ6OXí»sœw9DoÜ+F—»ìÛaÑjì25@=t·¼;,Vѯn]¾y£"|=G²é_ŠÝ(€042FC?ؓڲ+ª×?D®É”3øòí€îOlP¸9pÔ€×à^oÉ v®f‰t(äO‡ „†1ÿ˜¨ÉxÉT­Ðúc¢Ee§xÉ‹RçI¶I]£JÒ&§$›SìVKM“`κ¡›í˜â ôŠ~*­ÙxÁdƒF8m8]üsi/é›_ܛ䃌qé™EéBœÕxÍT6°loâvä=D‚ËÆL…û¡Joý¡üà.‡©ÆÈØi¥>Tœ5e…’è*C¹r -;w_>™D<Ç:5ïÕ>(è÷Š1xp%ûÎá•ôOx{L°@gqû;Rxþm˜8­ùíì?è‚OYRó‹Òü/2þ¿$ÏþfiÅ„m;U¡ŒäÁkšL*SÒù ¨õˆqƒÓ“µ¥Ö)•©©Je]ªÍVWgãÈ}×÷ö<OèÌ8ÂŒ7«o ­¢Ë¤úðhR±ó‘s;[k0j¸L÷,0 l¿±ñh 0>3|‰ñú·ïËKmŽF¾|cwúI`þqôå÷˜Cã82üžL'sÈV²9²·uß> stream xœ„½]’õ8¯¬wߣ¨”%RüÑ4|ã8ìã‹ÞŽ8öü#Ì@êÝýµc_ìïEתҒ(HðaþÏŸë÷þ¹ðüÿÿûýõ¿ü¯÷ûó?þß¿þç_wëû÷ùyúýþ¶Ÿ>Ö}þ_› Áÿçÿøùß~þï¿®|îÿùÝoÛ¿mýŒ«Ý¿Ïýó_'²Þßý3ç;~çüùû¯v]ãwôOdÌßwç‡éçÌOä¿»ýŒÑúïÜ'r¿óýŸÀxä^ÊßýŸÝ?¸ÄõüÎóÁù޿ײK|Ûïß³ß-16~óõà%`ä:·½½3#ç¶ŸoÑöþí>Tæú}8¿øŽÀ£ Ýü‘ù»Îosüfƒ©…«²È°¡ÓÎðºý›Ïç÷ŇžêDú¹É­ŸoÎßÓ>u¾çóFƒ áåc¤Ù@i÷yÀþ<çm¼§Ç»|" ¿C×c/ǸߟFdœ{î×½Ï÷ÍHkˆÜqOÇÆß þkÎÄ;‚yψàñáBo¿œ3 ë³ÿàW3žÚ‰œá?#‚ouŸg¾ü›ŸñÐ_D®ü5Ýû}òäïi6nïöæïi~Åíù½ø3ç>á7ÇŸ¾l&¸ÏÍâ»x".ïzùìžóÛðï'ÞñgÛû{½vƒ,²ìm½ÎLË¡u"×H¾ãÏôYrÏx£Ï—øÔÎ÷÷y0GŒë¼Ù ôß:ïg·i‘;îÃ/~͆ü‘ÃåžxÏMÃtÍœƒN7øÂ€ô¯Ù__ ÎŒøŒs[6}¤Ÿná[=;FzŸx®óå8)€ýDÏÏ ›Ž¯sU?òØ\{ßÿúw[ZNdbv·ˆ½'òàʱ;z~öâoÆ9l ã\6F®óü9jÎÿÙ¸‹l¿Åí\8#g|ã·_ªÙ,w"O<ªóÓ¸ég ÜüÐÀF€ãêüì´i˜/,Ò}Pœß1ütó…rògl2÷¥Ó¿Ãù_]—׌ؤŸº_¿¾;^ð{ÿòj8§ß ·_¯øž\ú\•E†ÝгÖy)Úí÷ŠïûÝí}Âýä:pfÓ{ú=¹í…ÇsáÍ:Kß͇yûo¾|ÁÃçum›¯3 9®±Ö<>p^¿×ô»u^“׿÷Iq쯟É_lˆYþˆ­…'2b˜\ÍoÅ™Îø%®Û#gŽâ¯¹0ÛÛ;å ^öÎ÷ÎgçëEbv“‹Ùõ.< ó>Ç*~eÄFúyçûëŸö1/xJvæ[{Yχ¯á‘n«.sò7ŒÃ{ôðS>£ã 1m;ÙŽÏ}_'äX~±h³8‘•¿Õ ç·¤tçµÄ‰D’ÃzãDF¨A^“L¬œÔ¼n9‘,9½¶™ó½¢ÜµêgBx¤üâÒ‰t¦æ,¢,òJuÞÇ¿£3͵±è³\Ð",u¼ ]öŸ"Íï"°ÚÑQZ}iJ ^ƒÚÕÄŸB™ê×Ë«™~y=î•׺'Ò8©³¶A Ìkf»W|R^WÛý¤ àµ·ÝsŠ£VžÛcñ¹…ü‰<|aXåÛÃl¬é}ÞÇoTéP;ù‹MQ°S*~1æÀø·ýÀyù&\ØpäwrqÇ,#¯?nègþp]$9?ò†&æBʉDvE±åDSê1öN=©â4¾wZ®ëœH$ï”~Îë»ã9¸õ?'K UØ´ä3˜^.·”›'Нø{ ÏÂþÄH1ÕÚÖþ¡ÂöDQGùÔÅï¹RÇ6ü$©l»ˆ~Ö”‡ÃËuvËM(‡»rh2.ןçeNI¢ðD¯=ŠYJªÞ°Ü©e¯`"/zìŽXÄ: 'ãí=ˆ“¥­x­K1ÑQ»²m§Û¯HºÙ온Ù9n¬ròÁ;æto™œœ1go«œ´²ÇJêÕÀy{~IkÏœ5;D¶pN ›j®·y&~¾õÞ š4²„÷÷<Œx½£äù³vNŽ=cHxgêäá3^rï^MeØ(³×´áóDs-^·e5Àd‚ÏfÚ¼K¹ó~Û´¥eG í£ü‘«ÈÐâ}ÁÍш¿SX†¹Ô£ºÀÕ´–oÙm ¤z/+[FèÍиñ›Ÿ–Cÿ²‘~—jåÏ™hzy‹~´Á‡æÎFÆëßó 2Ž¿a—1íÖ–@Ï„ÓÉØþ©³âR~dmx¿¹> ¢D±såȶºô<ój´Øt9¡|qî8,<í¤ñk¦WQhä<º}tݱxÅ öŸN$TLLÐ6j[ˆ£˜±ñ‡ªw…IwøX§ê?¬8‘(ÙAƒ7$îM³5¸­Tx±‚àúNB3ÿm¥í÷7ÈjÛ›]‰³4áö¡\‹?e îDïÉ’¼åmÇšg ú<#"xgúÉࢳ½;w”—óØb¬ —×~2—  ¼Å´r•FÝlâÝŽÈ3|æê±´ÛœóTbá•XÇ|"!°Ÿ9·ë‰` îgŒ²kÍ4¢gŸñ›Gó˜`Sm‹µù‰Ef䀮°Û?s[9áðÊÌÇ~&«RD웟gÅqÑmy>kA‹™šn×YS>ŸñÐ8Ž´Ð¶œ%厅’ÙÎ(Ý+ré?w¯ÚŸ++O±V1糄ûžlE=v/P#¿Á÷|îhöu+{ÎxÇ„|"Ý"=šŠÝõ i˜Ÿ&íçŒþšÛVE,®8ýöt _y5®¸<=ôÇÛ• é‘°œ¾B™ 3ß~|ç­ñÖÖ‰d'ï\…Ýš:\$ùÐk£16=­@q˜-«ÐñègDì›#IÍþùÓ²1f­ó‰ýl7OùauˆÒe{2ߢùWž,:nKOŠlQý[àòoùä[û.IωXªT»nkœëõžÕ²2|§\ÓoÄÎNYß~³þq?yøèvLá,0ŸÚ¤pŠPäxš|an_ñÀ£,m|RQ%ßö²Û¸‰ŽÛ…7ÇÆÖ•»â–oÙy+,±¬A Á¡’»k¹°sn ;‚—g5ÏóÔÉ0Pæáâݺ|æÂkÇeñòjÌü”eaÏÕbʆ jïü³É‰tŸ˜÷^–mŸÈ÷Ëzß¡±B—°™ò û{lÒzâß×r%í¢Øòú¤ºbCÁëÓOÊs¥HbZßLÁ÷]–DŽq¦O¡èmDϤ?©Ð/²}Êo°Õ¥§rKU]žh)>öØzËfÌ mÉÒÕ;;¦)Þ=[ŠVI¥­:“ž8õ‹É4ÝØÔØ]˜Æ²ÿôu7Jˆ[ ë÷Š?ˆ fmv=°­Èh's{#`?1"̓ˆ†_û¼,²è.ÙRp<«‡I¿=(kâC-Ê{Èu/.¿]!JnSKOòÓ¹ãrÝß2&¶aN1-Þq_N£ù~¯ùº§˜çÿßwD,5Äþ•”/äks¥Xèy ò¿1"‚Œä$"·-Ķþ¦œi™`¥ozš¼bxnÏd0'±Ý´­8ñB÷”I;~Íy¸oþ ŠuŒ•‡*®müÃ÷}ãߘۡÜöÔc1m‹U]k+l&ß¶áW ¶. ûÞ3‚9å:SSh×Û’Ç˧ü¿]Ƴ»î'P‹ñ{®ì,Zs/Ôì4ôÞK"Ø›ð®Té—ïÀfÄ'3š~ï¼¢7½,ó²æÍ´;ßÜB€6 ½=»uË*¤ñ¶ºŸ¦˜×gpF°æ½bãÝÛí¦ú+"-©™*8#~é9Ïa—Þ¾>½®ŒØ§¹#Ûè ;Ûâ’á?æœ\ò/kÎŽXù Óôrã6r@]_½^Ã1{ËÉÅw’Ù.§ {›Ç™9d° °g¥åxôYa@hã÷™Ã6´^A‹~ <_2®Ì+“Ô€ˆÆ>Odc ¢è2Ùñ¼ù)›Gifœ4ÇèÙeó‰uŒ6s›ˆM¾cœ™,~oàçI]Á~…q–þ©ýùã37 Øb0žýæ7µÃöÁrÓ…­)¶‰`å"ƒÏàÊ}-Ø"÷Ì+Þz_»ÆƒM¥·,oãyjš·%pX’—hÚö²=Nl±ÔkÉZ;P/ð¯sk’¨©Kö@Îiˆ-ë'Ò9máý¤•-\Ø<ûfÑ…P€q÷ãDîßla;+tñÚ„Ϭ+?ãô^RKwN ö YF4úÐFv‚vNûžV KظñÝ„ý,ôWn Z¾CwòG,è—²¼À¡Ž—Ycóï×R·$ñîü–G”ìñg|Ó1¶A1ô݆պeÆ:0qo¡gµ¶í7úW¾K)ÕOŽG{wfµ–@ëÖ`O²O$Ë5OĤÃìV-lFÚ)/{>"3« ›0Tîjó²àDzæüV:œÈÅŽï̓š²µ9‘Ø%Æ2e ùÍ Ó+™ayóòK^Õ=[¾Çø¼aÜŒîEÓ€–C©Ø +‹´¼÷g´×gŸ­¹ÿsäý~Ȫ‹0`Õ¤Þ¬/ýkV jU©E¢µÊÕ¾kC¯n-¦‡WÀv+X¢{•l·ëùl Å-¥FäÕ¶Ývª^‘Û£‰JÚ_ lcåg…½=Oê^ûÛ3™Áw#a\ĦØÛ÷z#ň€É½¥£v¿>àj߬}ó’³]ÑÐqëªÇ@ÅÀºÞ…‘É–‹'¶·-7öbÃ^¿rÇ«ïýÅ{ÅjÛE{÷âKùv3Ñß¹§Ûò9¸\:‘wÝE#{ñ» K69Ä®bŸª©h—Y= ÞUû[ìk§…®ÉM°ž+ÚÔÅkvÁìÌnQþ»¦6°Ó#¶„wþHÖÒܹ¢q«|góêÌžŸMMã ™×eÀ3÷cN_3åW¢`µïŠã¨=$T%•½àõŽ¥:ƒ˜¾„Øpô,:=¯Ðó¨uÑ•|}ËÞÕâºØjl˜ ²²ÁÈ~"îö†ÌlÂîY8³§âÚŸj\€[ö=…¨ò¦=Át²å8lßù§º¯¶Ò+´lv …FÍTïM.ñ­L?yÆ•2³mù~J6uyÝr“$¦ï^Ü+;Ž¦ÒŸ'÷û’?°F´þ“Å– ¶,w ÍÛ·ù;¶ø{WÁ˜,ª¨Þyhd¾±a»^ÿГŒõ8¶ÊDËÔ§ql•‰– w@¢1òDÄRDôÒ³Á²,ù|²ÁbmKP£±i­›É7ÄÛ;'­}„JAê4¯; oî´¬aiÿ`à®Öï[ø/ì½Å°.þ ì.þ ‘¦ø&(<Ü¿ñ-¥±¹×Ú Kñ¯~’ÛSšø"ö-sû*"vGÿÂôø¡¿0Ü*é/Dl nÒ_ýšž¯&ý…HJu—G„þBÄ^ͤ¿±×7ÕlÌßöŠ'þe€Ô£øW?©Øþð_ˆ|§, û3 !bÓR`ȸlêÊXˆ [. +ŽýL`ˆ<ÊÙÞ=Å¿@fQø2¹õ*þ…H{ÿÂj·>9"¶¿<ñ/ü·Ù”ÿjïÔÄ‹¨m@¦ zW¸Õ@CÄò“„¿°[“ð"†¢%üÕÞf9C²_¶¤oe¿Á0)ö ›Ó}[}°_–Le¿i²_¶;r(ûÕ¶ÚÅ~!‚×.Ù/¤%xAŠýj§ÂÛ¯²_ˆ ðÒ›g*ü…_«à/K„•ý‚rÙ§²_Ȥ0h‹ýÂz»²_ˆÜo²_Èφ¢_Hᜳ`7’ýjä)‹ýjÎû…üq5e¿c¾[Ù/ËC»²_ÈUŸ.ìW# YìWsöDØ/D°J%ûÕÖå˜J²_p Jö«M"PÉ~5lYÊ~!b`M²_mN»åÅ~a€º’ðW›žeýÕæ£èW3ÀFÈ/¨Év½I~Á0*.ɯ†+oJ~5.S…~5gyýjƒTl¹Çë÷¼J~A¹vf+6’µ1Èl…º€ˆ3[~a?‡qIIRa²Z‘ £{>e¿Ú°ô[Ø/¼ü;Ðë‘+¸®û?Dü+äGžíT\’_èä¿CѯÆR.Ø*A¿ÇÇ€íêö«¡¶”ý²m[Ù¯Ö­ö L»GbWtë&~ ûÕüá û…IÏîM ·Ày<UrcÑ’ìW f0Ù¯æ—!ìö“Û½Hö«±ðJö ó«Ýœd¿¬7ñ(ûÕšÓQjpKÁ_ØÁcŒ[Â_eiÂ_Ø»a£?á¯ÖlŽ/ö«5òªÉ~¡/bÌm²_í~9÷…†ƒôÐÈ~a×îL±_ˆ\·Â_ÍwëüÕn»kaYy”ýBGÆ®%Ù¯SÈÚ8Oö {XŒÞu¹·¶É~µÛ64 ûÕ®×!æd¿ì)ú… ·Ð/DP ú…-R¨2ŠýBÇÈÊõd¿Dý¦ì"¶è'ûÕNró¼Ê~µó„L%Iø Áþ kéNÂ_ø‚Æ_%ü…ä )IS^ øë.ý-êD¤.Mᯛ2^©"¯aCÅ~Ý„‹ýºßá¥H²_ˆ@(ö 9 °Á~!`µS²_ØÚdg$û…ˆýL²_xÖ»+ûu‡*šì×}^ ;v Ù/D°¶ÊÙ ïíŠu²_ÖÞkÊ~!âuÎÊÓ¢¬ ø ÐiÝT„ þº·µÇþBŸ*úëv†²à/˘^…¿YÂ_ˆ e¿n¦RÙ²©ðvòá.ø  ˜Ùn?e¿n êÅ~!ÒýBöÐ/‹ÜÊ~ÝÛ+Ýd¿,ЄýB©S±_Qô+I~E ]ÿ1ØWü;©¯ü³I}Å•õ_ÔW|Á¾â&öÅû”ÔWÜÉ¢¾x³ úâóè‹ÏL />W¾øì…úòá!ÐG@_e}ù@æ‹cU /Žg¾8æúâ{!Ðß¡¾ø~ õÅwP¨/¾§B}ñ]ê‹ï»P_œ„úâ¼!Ô硾8ÿõÅ9ª¨/ÎbB}q¦ꋳ¡P_œ1…úâ¤*Ô×ÍÝ" }qjèëÎM'©ð䯔ì¸ Èö:.}q9è‹KŽ@_\–„úâÒ%Ô—7¡¾¸ õÅe²¨/®¤‚}qµì‹+²`_¾hõÅe½¨/®üB}1;ê‹„P_L2„úb""Ô—ç*}1è‹)@_L‹ŠúbæTÔ3+¡¾˜} õÅ ­¨/&qB}yž'ÐSA¾˜- ôÅŒR /f}13ê‹Ù«P_Ìp…úb,Ô墾˜K õÕ‚ÞIê‹)¹P_LÛ‹úbf/Ô³¡¾X!õÅ*B¨/VB}±ê‹‹P_¬j„úbá#Ø‹#Á¾X@ öÅ"K¸/b~¡Rê«d“Œ×?GìæõŪQ¨/V–B}±úꋪ`_¬b…ûb¥+Ü«aá¾X1 ÷åEµ`_¬»ûbm.Üëwá¾Xã ÷E@¸/— û‚” ̵†‚¾(GõEÉB¨/ÊB}Qúê‹òˆP_”P„ú¢Ì"Ô•¡¾¨ÖõEEG¨/Š>B}Qê‹â‘P_˜„ú¢UÔu*¡¾¨e öE¹K°/WÄ„ú¢b&ÔU5¡¾¨¼ õEuN¨/ðú¢Æ'Ðu@¾¨ õE=Q¨/jŽB}Q–ê‹Ò¥P_”7…ú¢*ÔeR¡¾(¥ õE¹U¨/J²B}¹j+Ð…]¾(þôE}X /jÈ}Qf諽S7?S¨ä‹b¶ _¼eW0EqA¾(œòEm]/—ß‹ør}^€/Jø|Qåà‹¾Ø-à‹…¾Øt@ƒ A¾Ø¼ä‹ A¾Øæ‹a¾ØLæ‹ a¾Ø”æ‹a¾ØÜæËû?…|±C$È»H‚|±Ó$È»Q‚|±c%È»Z‚|y㫈/¶Æ„øbûLˆ/´×÷bÿMx/oÑ ÜÕ|îÜß½Z”‰{á´ ²‰{!²ºâ^ˆ²–{Œ¹·â^xÝ‘î…Þ½¬Ás+ïÕìF%ì…YÕ]Á^ˆô¦°"vúEÂ^˜Ÿ–²^Xi’¬"˜ öÂ4g,aÂ^6.…½l·°^ø÷x•õBÄFQÂ^1éì…ˆáUI{!‚lQšUhQÜJ{!â{ãPǰö²J]a/[8^…½¬ƒ6ö²Õ¦+ì…ã¦ì…H› {52”{ÙVœWa/,‡¾~gfy –°"Æä\«jÂ^ ª-ØËö )ëÕHœê…ÕÛ©ÕÌ&––P¨—í«ÚŠzµ _õjIȆ@¿œ9*Ô«%g¨W$%…z!q™¢^Do¡^‘îH- 2øUÔËý«¨"V'êÕ| ½ ^HÈ ÀJÔ Ã[õB·§¢^ˆ‡”¨Wä~Éz!І²^­KQ¯æ=ÈB½rÜœ¨"@Ç,$ªÏTÔ É¬’^ø·‘ÖIz!¶õ2I/DZWÒ yô\Jz!âàOh[x ÑJÔ úû(ê…ˆI‰zE^_¨"ŽhƒÕÉ­;ûU&< ê…ªÂ`¥D½0G8^ÛìqÊ<¶ÙY½ò*ê…ˆ}÷D½PäÌ[H®¨ƒþ%ðgJÖ åÖìŸtçñJ½ö: Ò>×ûLwý„(ì,[KÔ ‘« ê…uÛ¾c¢^Í››‚zEUY¨—/¢^¨E?¤—MËMH/jÜg(é…:xÝJz!b\cמON¬d’^X%œ„ŒiÊ0½¬‡ÒôjöK“òB­oÏ$1/è~@`^'~çÁŽMJÎ B¾R¡^ˆ\]Q/¬rX¦’õ‚‚±^e½±Y5Y/(!xŠõ‚Zb _²^ˆXþ8J»ñÂöBÀ°²„½ ÌØ±NI{5o írNÑ^P|ü©h¿ ÒnŽš7‡÷BäVÚ+´¥¤½ ?9=ÎyÞ¤½ Xù›¥ öóv¥½is´Ï#´Ws [h/Dü4ƒÀ½,_mÊ{AsMy/D®Wy¯æ¬ð^ˆ´¦¼þžwñ^ˆà½,Þ ¢  ÕÉ{!b9fî£FÄŽîuÊzAø´ì1Y/Dì\´d½ñ3b?¡É§SY/DpCöB )ë…`±^¶õçVÜ L„…{5¢Ÿ…{!b'Í%î…â²\á^ˆàÑîe2ñRÜËJ–­¸"·Ò^öT—Ò^ˆØ‰zI{Eß¶h¯Æ­lI{!`'õÕ¦Áޏ¢½ù€¢½,Ò•öj|Qà‹Ò‘_”—ø¢%Àe*¾bósí®ká“À%1¾bWu_- gžÚîœ]_±]»€¯æ6 |Qèà‹b _ øj´ÚIÞËEGÁ½¨K i»Ò ÷¢¼)|%PÁ½(“ îE)Up¯ÎD‰{Q’Ü‹²­à^”v÷¢ú+¸bÁ½¨" îåBsÑ^”¢…ö¢\-´%m¡½({ îÌAá^”Ï…÷¢Ä.¼—‹ð‚{Q§Ü‹Z~á^”û…÷bK@x/ïîž‚à^ì=îÅþDá^Íð¥d½ØàØ‹M½Ø(؋ͽØpØ‹M½Ø¸ثŞ̄½L)Ø‹M"…½Òï¬ußí\~g 9íîÈíÝöUKÃänº}#²÷O„RÚ›5¼¯†lUÄÁùÔ—žg­“UHϳ“DlÓ}r/Ú¦KÎþüPxžÅWÿã[œßù¼FoÉ7pÖïOħ ¹æ3Ü}{E\¢–oú`ÔîÆƒ½<á¿ÝU~wdòÏ£ß}\ÞÈï><Ñ“ïþLJþüî|‹ó;Q]µW¿)Š´8Ù#Ø#û||î°³v}¾¶wtõ¹;ëf×bÛïøXãý·[Ê/>Ï*u«ÑÝY:§w²â‹O§Ùä‹ÿñ¡?îv›n"‘˜#"·RŽ߇€ŽŒÑ"íct·›Ë E:"2?FwˆôÑ"×ÇènûT$¤#"ýct‡Èõ1ºÛ¾OZPGDú­¨#$ +ÖuDd|Œî¹?Fw»ùÎú’ÿ飻};RÝDžÓ"×ÇénßÌ3uDäþxÝíÛ¨‘ûãu·o7…+Ô£«uÜ·mšÔK"²·°ïÇ“‘„¹?^wû”ä^4ìˆˆÓ ;B¯»}ß<ƒ ¤De÷y¸ûѼ‘ÖwÜަܑëãu·/ž(‘¸ãöMH‚;"Ò>^wûr^«xGì??^wˆàµ.Þq£èûxÝ!bX_òŽ›dw„H¶>Vwˆ\ju·¯ÛÄÄ÷åºLáŽëuâÂ鯻õz)U¸ãzl)Þ‘¦¸ãòͦ‚;®×ÊwÁ—o Üq½>µïhŸZÝaÿVÜëcu·^ë– î¸^›w\H>VwËEÁö ©ÕÝ‚ÃÇênma w\Û¶î¸|÷§àŽ&]~¬îÖî>'ûi]_âŽk»CbáŽkt\´ãZFÏì`b}¬îÖrp¿€GDîÕÝ‚t¿x„Øjw4Çå˜k¹TÀ#"×Çën-??¡ˆÇµœ&+âq-OŠx\Óα*àqMWÆŠDÄж×ô|´€Ç5ýp±0‰œÉ¿Ä|Ì%öŸ"½ò~ªùmNæqÍÛ/9Ç5/.÷yÉŽþò¸ÆæjΉk º&òhŠöÇînA$ëŠ<®áËg!k„›a0 mæÇînAÔPâq ;0©€Çu²÷Z ‘háxŽ&À#äu»˜×ÃW&Çå›üx\S¡×C£Â×ã´Vë±syŠw\¨—òŽ`Œrö2‘KÍî þß³»Õ—#Ù <®î¶„<®>Üú3ÇÕÉŒ'ð¸ºIá<.Gx\ÝU¤W'žÀ#"×Çíí‰ûãv·ÎPè[‰ÇÕl—VÀ¯ÖÇínád!¸•w\Í'çâWó#e x\P‰S¥±óx´~ÊÇìnÿQÞÓ‡’w\·ÏÎÅ;.«Ew\¾³FpGDÚÇënÝîvX¸ãºŸ?NàA¤}¼îV$/‰;"r}¼îÖÝxNˆ‚hmõºC }¼îÖítñŽˆÜ¯»Åì%yG>VwË!Á¹?Vwëò#\ wDäþXÝ­ËëÀÂé«»u9»V¸ãºxŒ^⎈Xå’¸ãº|µ(Ü‘þñº[Ì w\W÷ãw\žíˆÀõñºC+n¼î1?¼Ä­]÷(ïˆÈ­¸ãºüìŸÂ™¯»åBàŽˆ´×"æ—¼ãòÚC€GüÆ÷ãu‡ˆµ+x´Hà©fwHà‘ñ1»‹2´ÇŒd»÷_"A=æ/Nì1ÿxb)ì1¾Bañ5 {Œ[QØcÜ®äãŽ÷w½ÀG>ùô|äðÑp'>r, øÈñ&à#Ǥ>l|äÈð‘£_ÀG¾!>ò-ð‘oš€||ä+à#ßjùæ øÈÙAÀGÎ >r–ð‘3‘€>Y•ìÀÙL¸GÎxÂ=rVî‘3§pœ\…{ä,à#'i9‘ øÈÉ^ÀG.²Ù”‹†€\X|äâ#࣯OÂ=r î‘Ëœp¾ öÈŲ°G®§‚=rÍì‘ë²`\»‹{äò^Ü£'‚=zŠ Ô#³¡™hõÈdD¨G&,‚=2©쑉`LŽ {dþTØ#ó+Á™ƒ öÈ<­°G¦r‚=2Ýî‘)¡pÌ…{df)Ü#³Oá=Aì‘9¬`Ìs{d*,Ø#Óå™Q öȬ[°G&æ‚=2y/ìÑÓ{¡½è‘5‚@¬#zd­!Ð#ëY³ôȺF G–>=²<è‘%”@^e óÈBL˜Gk‚=² Sqö"ƒH쑵£`¬/{d *Ø#ëTÁ½”ê‘Õ®P¬ˆ…zdÕ,Ô#+kÁY} öÈ ]°GVñ‚=²Òì‘j€`T „{¤ª è£ E>º2!à#Å )pøHDÀG %>RLð‘‚‹€Ôd|¤n#à#µ)ÿøH‰HÀGÊH>Rjð‘rTT¬|tQK¸GÊ^Â=Rð‘Ú™€Ô×|¤'à£ËtÂ=RÉð‘jŸ€T|¤j(à#•E©> øHRÀGŠ˜>ºÎ)Ü#¥Pá)— ÷HIU¸GÊ®Â=Ršî‘ò­€”x|¤ \à#•b©& øHÁYÀGŠÒ¸n-è#¥mA)Ë6yJä‚>RF/ô‘J» Tã‹}¤`/ð#Eý‚©û üÈÞ€ÀìüÈCÁlC°ÄV…ÀlgüÈ–‡Àl‹üÈÖ‰Àl¯üÈŒÀlÓüÈVŽÀl÷üÈ–PÑì ýÈÎ’Ðì> ýÈ•Ðìb ýÈN—Ðì†þȆ™àlª þȾ›Þš’Ý;áñÊŒõgÄðÁ$ ¹>†wx÷Çð‘ñ1¼C¤} ïð–¿ûPœ €ÜWŸìlgøò^ äö÷]HDîá&&óLr³<,‘{)‰ n+‰Àó1¼CäþÞaž\jxgSéÇðnùd̾E@"‚µH›³?~wˆ<¿;D®ßc6D¤}üîl ùøÝ-Op ÄJô.E —ç7‚@"âîvACaE3È0Èõ LËàúøÝ!Ò•€Äbº?4µ-¯[H¬ÀA`¯Œô­$ÖíWíîðZ±‹Ms»` y>vwHìg’Œ4"Hdî¯"ÏÇîÎò“Ý"ÏVyÎû±»Cäù–¥»û7O‘þ±»CNµ?vwˆôÝÝòmÜÂ@Z¶¶”DB·>vwˆØa;É@2 Lÿ¾>vwHÝ/ÈH.“DÀüï’DŽº?vw–µ~ìîÙú!C+~Yg‰lØ ÒR _žh‰úù¸Ý!ó~D ÜÛ"W¦Ç$¿HD®Û*ƒçãv‡êaÜîé·;T!k(RˆHSÒJ—¥$"×Çìny^|c”Dÿ¸?nw(µžÛ•c] HTlïû½Þû7¨Nÿ·3ØE@.O:‹€Dàþ˜Ý¡|4•$ È(1‹€Däú˜Ý¡0íÅëåíûñºC¤}¼îP›$ g»à±#ì³{áZ½(ÈwçƒDÿ|¼î¬ÐßJA"ò ×Ðs@P¶2ܯ;¨CH>Ùôü¤ÈE@BÌ·;6í&‰Hÿ¸Ý-¯ „€DÄÐî$ —ËKE@šür+iòºPqÖÇî.t ¡ýŒÝÝBRWô#ä¢çcvEiÌîLcR³;ÈPv@\âˆØY χ$þˆˆÙß%þ¸|Çiá45» …¬ðGDºÒÕ¶ÂXÚšð#Ô9snNøÑø§ÙÝBúYä#$¾ñqºCäþ8ÝA\§;DúÇérâûqºCd|œî–C>‚>B•ܧ;DžÓI™êt±s}œîy>NwˆÜ§;h¦ûãt‡æñ¢é?âß×ÇéZìVø3ÃKøq±)ø‘ëãu·ðø‘ùñºCäùxÝ-ß›.ð#"×Çë 3v,ýˆÈúxÝ!‚hшŒ×"]½î0˼ÚAÐÌÓ àGìjZ—ß{}¬î ‰¿«»Å]s?f$áG‹|¬î2’ðcFªÓõŸ# ?f$áÇüë ?f$áÇø ?ÆMø1îEÁ¼]Å>Æ-ö1nz±ñ`Š}Œ‡Wìc<àdc üã$áG%9Ü~äø‘öàGŽì‚9ø~ä "ð£¿CÂ>ò5øÑ_Daù® ûÈ÷YØG¾óÂ>r^ö‘s‡àœ^ä$ø#§)Á9• þÈéNøGN‰Â?rÚþ‘S«ðœ~…ä-üã²=· ?r’ø‘ À\,~ôõDØG_q}Œ=-…>rÝô‘K› \þ}ä)è#×PA¹Î úÈ¥XÐG.×Â>rI/öq”à#sc‹PÌ- |ôìC¸G&(Â=2‡î‘yŽpÌ…„{d¾Ü#*á™t ÷èi™`ÌÜ{ôäN¨GæB=zŠ(Ð#³H=Ñ摹¨`ÌW{dN+Ü#Ó^á™ ÷ÈôY63Å€ŒixqÌÔ…{d6/Ü£çû‚=²$î‘eƒp±+¯¸G–Â=²Dî‘UŒp¬t„{ôZH°G–KÂ=²¤*î‘U—ìfe&cìa,ÊñŸ"ƒÌe}jrV–fn§RÜ£›‚=²ì‘5«`¬k{dí+Ø#ëcÁc[ha¬³{d-.Ø#ëuÁ½¤ê‘U¿PT„z¤zPÔ£ë =Rê‘*…PT2tкÚ!ÔcìÏ-ê‘¢IaÔU{ä¾ß¢)ÎõHG¨GŠ&÷ÈŠpl³÷ÈVŒpl×÷È–Žp¨÷ÈÖÐÇäîÅÍ—»w8l]ü"Šáßíãs÷ŽÉÝ;º#¢É~!Ò?.wˆ\—»w8-Qì"jÅ~!r}\îP—Zâœì"¢_\—»§ E¿±d5ѯ÷d9ûãr‡Èóq¹Cäú¸Ü½7í¦ˆÈýq¹{7ê(Õ‘®ä×ûøšR“ "_§Í×·=ù…ˆýLnÁz±©(ù…Hÿ˜Ü½üHM‘GÁ¯÷ñÝ·~!‚ŒªÀ/èëãr‡Hû¸Ü½ÏÅ£¢CÄ+òëí/½p#óÁ>ÒWî裻·»a{‘_ˆÜ£»·»é|‘_owê"¿±Ä"ɯ·?N™%ù…Èõqº{‘ƒ7%¿ …˜;Q’_ˆ\§»·;t^è×Û&Iô ëãt÷¢ùqº{›Ÿ Rè"†%úõ¢òqº{ !¿Þæç'ú…fÎB¿°Å÷ù8ÝAá±+Ž¿Ü•ûzÑ_VŸ»·¹çZ_/qÊ¿¹>>wïý:^”à׋Su>>wïMD%Á¯÷žNø…Àýñ¹{owP,ð úÔTŸ»÷f%À/D®­à×{J𠻣ŸÏÝ{_…Ðø8GÊÖüBļå’üz/ϲ ýz/³ô)ò뽦>± ï½ÐüBäzü‚èfWœà×{y½Qà×{5[ÑÝz/ÒO±áþ½.[Á}!âÀVì!ÛïK`+äl&·‚_û *(ªýNâY‘ #bÃ"Á¯í»üÚ¯óÄ…pm’‡…yýS¤ÍOݼ¿¶oiòko/‚åš‘~~Ìî6’V5»3!³)ù…½öOWòkoëÎ ùµ™Šùµ}ã—_{Û¢Wàׯ^½[ɯ½^+†p»Qb}¼î «võºÛkú+’è×^¶ÉKЯ½œ’*ôk³øJôk/ú&úê`|¼îv‚É~m´I>^w{nÜ’ý‚î»ÔënCqüxÝíéTT¢_{z¶\è"·’_óëRòkO?)‰äמ^ùµ§K´E~ía!¿6YÀ"¿¶mð [¹¯í›"‹ûÚà 9á¾öðƒ¨ üÚÃ}s‹üÚvJQb_ž×J}íá~¸E}mfIE}A.ÿ@_Ü—»}FŽ I}mÔK©¯ýøÔ\Ô"^Uö–Åà¬Ä¾vä2‰}!‚õ¥°¯ýtž±såõ4/ûÚ¥¾å·¸M»,ì ‘ûcs·}Ãwa_›ba_ˆ<›»Ý])ì ‘¾ûÚ}¹ï]r_ˆôÍÝÆTþ±¹CÄŽËIîk‡&šÜ×vTJ¸/DŒÅª“º5SÜ"ícs·»ƒ±Å}!bÅPr_ˆ|\î6 Â¾y>.wÛU}á¾€4mž°¦Ab_ˆ´Ëú3æ„—Ø"ûÃ}!2>6wˆôÍ"÷ÇæîDúÚ͵¾‚¾AúSÐ"Ö•Iè ‘ñq¹C¤«ËÔåöq¹ËHB_Qæ+Ùäú¾ò—&ð•‘¾âÚ øŠË/à+¾b_q øŠ[•ÀWÜ;ìvíÅç!´Ÿ™Ð^|®B{ñÙ îÅñ!¸Çà^g‚{ùPÚ‹£Up/ŽhÁ½8ê÷òCh/¾;B{ñýÚ‹ï Ð^|O…öâ»,´ßw¡½8'íÅyCh/Î-B{qþÚ‹sTá^œÅ÷âL'¸gCÁ½8c îÅIUp/N¼‚{qrÜkçv“y|’Ü‹ ì«ãb!¸Á½¸èîÅ…Ix/.^Â{qÞ‹‹ _\( øò¥Tx/®¶Â{qEÞËí½°¦ëÅ5_`/æB{1wÚ‹é…Ð^žìå9а^Lc„õbª#¬Ó¡b½˜1ëÅŒJX/f]ÂzybV¨S7A½<»Ò‹  ^Ì…ôb)¤sM!½v0<‰z1gÔ‹y­ ^L}õbz\¨3hA½˜e êÅD\P/&ë…z1ŸÖ‹9¿À^^ëÅÊAX/VÂz±Ö‹Uа^¬d„õb±#¬ "a½X4 ëÅÂJ`/_{±@ØkY“h×?E|[~Â^¬öbM)°ëN½X› ìÅúUh/Ö¸B{±Ú‹µ²Ð^^N ìÅŠ[`/Vå{±r؋սÀ^Tör‘@X/—õ¢ÒP¬Å½(XìEQC`/ {QØ‹ŠÀ^Yö¢#°µ½¨çìEÉG`/ÊB{Q:Ø‹ò’À^”  ö¢J%°•,¡½(v íõÚhKÔ‹Z™ ^ÔÓõ¢æ&¨u9a½\ºÔ‹êž ^Tõ¢J(¨•DA½¨6 êEARP/Š–‚zQØÖ‹â§°^H…õ¢ˆ*¬…Va½(Æ ëEÁVX/ŠºÂzQø-Ö‹Ú°°^Ô…õ¢Ä,¬ehÙöL©Z`/ÊÙ{Qò–Á”Åö¢t^°Õu½\€/Ö‹½°^”ñ‹õ¢Ò/¬»Âz±c ¬» Åz±ñ h†÷&õbûBP/¶8õbDP/¶Jõb;EP/¶\õb[FP/¶nõb{GP/ïéÅ‘^ì# éÅ^“^ìG éÅž•^ìk éÅÞW‘^ïø¸Ü±y&˜—·×„òbN0/véêÂÛÒÞ?#×ÇèoÝúÝ!b—“˜"íct‡·÷ýÝÙÆÎÑ"î]˜"÷Çèîí4< Ì ¡”÷Çéój‘”"C!/š2^¯×‘Âx½^Ž ä…Èý1ºÃ|hÛ¹òBÄʧ€¼lý8Ýa¢]§;Dú£œfç÷ãt‡Èø8Ý!bgc$ç…Y~}œîAúRœV‹÷cugëÇÇêî%˜œ×ëÇŒ ç…`q^X¹0Ëç…HÿXÝa½Û«;DžÕVÉ÷cu‡ÈøXÝÙÒú è…Õw|¬î¹•óÂ’m@jp^o©Oå^‚ç…ÈýñºCv0?^w‘A$ç…$c~¼î¹?^wHM–b^Ü«;ä3ócu÷º¦$å(ò¢ñ±ºCäúXÝ!›2_Àļqó»wëò#@óŠ<­0/DŒ¾ª†óE)1¯H“óBЏ>Vwˆî’œóÊļðo[{óB.:>ÐŒå«M1/ä´n~·â×t§’’óB¤}¼î,¯×"÷ÇëöüxÝ!r}¼î—å¼ÌïÕ]¤÷Åy¡X«;Dšb^¨ì‹'æµÉræµßð‰‹v¨QöÇéΪ–ÓÝöRI8¯MP3)®¨†þ-ÐH¡Å;ÈýqºC%ö å¼¶mù\ïUßÉÛÍa‹óB8^á¼P(îÓ"&Ž$çåeq^ÛK á¼LµœÊyYáz è…Úv~¬î¶×½z!bWœ Šæñ±gDa½?VwˆÜ«;”ãZÝ¡`ßÊy!`¶ÈÉy¡Ê7:09/(ûz!rÜî ŒÛ$†ýq»C¤}Üî LŒÛÄ‹WÝîh·;(6õ&ë…Èõq»ƒNò|ÜR¨·šÝ™þÒõBäú˜ÝAµ±&Y¯PvŠõB¤}Ìî6Ïx)Ü ‘ûcvi*í…À¥fw¢†Nu}zZDÚk{+´ä­÷cv‡È£fwÄ^5»Càù˜Ý!rÝŠ{AY³;D® Ï©¾ù;V¼"÷Çìn,ä ‘¶ù‚¸?fwˆ8S¥Ò7=Ï̽ÔÐçÇ쑮ĄÈ÷cv‡Èø˜Ý!rÌî¶khE|!0øBàþØÝmRš|!2>vwˆ`B/à Üö$¾6K†"¾Á³*ä ‘öñ»CÓa!_Pu×ÇïsÖKäkû¦8A¾¹?~w&OE¾Y¿»íĉ _ÛåA¾1§ºD¾ jŠ|™V-ÄÔl³Í«ŸÕ_È"ëãwg‘ß"óãwg%¾»»Œ$ñ•‘$¾2R®ÿIâ+#I|U$ˆ¯¸À¾â;$ð_3¯¸|ÅÝ*â+îh_¼ç|Åc)à+]_ñxøŠPÀWŒ’¾8øâ`à‹R€/Ú¾8® øâÐà‹¯‡_|…„øâk&ÄßDA¾ø¶ òÅ7Z/¾õ‚|qfäË'!¾8½ñÅ)Hˆ/NSB|q*âËg;¾8! ðÅIS€/N¬|qòà‹´_œÄ…ùâD/Ìa¾¸`óÅEE /.(äsFA¿˜W úÅÜSØ/æ§Â~1‡öËÓ\A¿˜ úÅdYÐ/&Ôê áI·P4LÌ ýbî.èó{A¿XûÅ2AØ/–Â~ž¼b¿X’ûŲEØ/V6Â~±úö‹’À_^C ûÅ2«Ø/Vbê}áÕšP\±±H¯Š88¢Ÿzˆ™E¹æÕ¥°_¬@þb•*ð+Y¿Xí üå±°_¬™…ýŠ­¡Å~±ööËËsA¿XÁ úÅ*_Ø/*Â~Q-ö‹ŠB±_þ¢.!ðµ ¿¨oȰ¥"ð·èûE!¥Ø/j-Â~ÅÎß‚¿(ÙüEYGà¯ØS\ðå!¿(! üE™Ià/JQQ®ø‹’–lµ£ì%ð¥1¿\=+ö‹úš°_Ôà„ýŠÛÅ~QÊö‹rŸ°_”…ýzÃNgÖ>mÏæŠýrñQÐ/ê“Ê]¸„)èeN¥5\ ö‹r©°_”T…ý¢ì*ì¥Ya¿(ß ûE‰WØ/ªÀÂ~Q)ö‹j²°_Tœ‹ý¢(-ì…ka¿(n ûE\Ø/ŠäÂ~QHü‹b»à_Ôãÿ¢f/øuý¿(ý ÿÅö€ð_ÞA(üË[ B± !ô;Ey/Cà/ïvûņˆÀ_lšüÅÆŠÀ_l¾üÅÀ_lâüÅFÀ_Á¨üņÑ?›Þ½Ã:¾[íÎ¥ý×_gf²=Ž;´ìI÷«Óç»"H¡Z~ ‘“ü{P‘gÐâ‰óºWµD¶Ïù©?¯' ÐÎUùæÔÞ­½ˆëlž$Ìsÿí>ñ2–ªsƒÐŸr4|óÏw#ÿ•ß«ö’TÄO÷¬»ñß#UrÖ=ü3RŸª¿y,uƒÃ”®ß¾ÃR. ÐVC¾{ëõà™éÝ@¨˶»§]‡¢²ÞOävÀ«>ôÇÕäCÁfÇ·‹+ÝYk.×ʸ_°ÛfvµãûóC¸Òu¨€–½ñ ±bÄÑ6YÄ“¿íSEl ;ÖýØX[Ûµ“4»e”%[3"–xâ%ìi¶…MÇŽ¡ƒß;8w[ÀöÓf±=L;=K(°±Eä1ï±í³°Eð!”…Ãn¬ƒ.ä½#Ò Róƒ½ÓR&á¶È[dÐìݹíg¸W¾cQ¶¤÷âV"‹tú•ÝüãNxß±EÒ"F9¼.wtôí^blñ#ͱ‡Ýóþ¹ÉÕ½¶·IO„Ü×beaÿ™+ÿ¸íQ÷dÕe‘«;áCÛ*œå¬›ÈÙ'À–£E ޵#e1²íqÍ)—ûñŠï¼ò¹ûÊ™nÈÓ™wÔRfŸÖ^ŸR-bt^q/šá~'Bø¡wº©C lÀ„e¨‰Ml“1†Žmp‹˜¡Úµ<ýêÝß¹éžu0æ3t]ù3—óm/7õNcyèœÃóíIäõrG°EŒØŠ–û‰,§Ÿv÷\ùDœ?¸öå€E̵,6ow$˜FH-¶ ;ÊȵðYÀgb×u‡"oŒÒyÅÍM®oì(=1›ç!DÚpÜ.®æ¢óÚˆO‰Ö®xø¾Q \Fä]®ŸÈöiòɯ€Mqf«6b¶¸ˆ¡Åfr‹wyrž5Àü‘Ç9¦>c \.4×zzDÌï®7O§;RãäúóÛ‘õ‚;‰M¾"¶Ýz:af™§Enri>a Yž¨Dí»8{¡Ç£òáaá·ýfûÜ"6PbWJo/IµÛEóns3®ï—m‘æÚ]GédW|“°µˆ]1ž¢Ü{«åð«ÙÎ_—³œs¾¹]Ë ö[b,(ˆ´;"öÈ/îÍè¨õ@7@Dù{³],z˜/#kð¹4,›¯+F6š>æI†{n|t¡ížÀð†îËßÅËù¡ÞÕ•+ýSÄu'ùÐÊTɤpóz?d§ßÈå.?._ò₼2iX„ ¯É‰¸Öðûy3à|Âå÷júÒ‰uùŸšž´ãYrÞxáG߃Ç<Z$N6ºí§3óŠ÷çñâZÝwÚud26Ì׊çò4Ÿý‚Ð<6{ÄW@šf Ì´{I†e‰w´»@ f““Ò)C4¹x´¾<=ˆfå‰L_£Ó×3#¬­üâÝa :¼¾î‚þ”nGòe‹Û1pºÏÎÉvžH#íIaêDÌXÍÊ–ËhˆÎvP7§&¾Ô"§sRÇÅ´×YÏXŸí$ºþñDö²&„ˆ8úÆÕ5—Cî=-bß xÊŽÍÃR;þË?¾Ì[p¤A\k§ámÍ;{xÑö/ØOxâýr\{à«'"vÎC¿¹ÍÕ& 版i­™:7‡­FäÔÝÜ×½…¼Þ‘þÚ±_sÆ[x×ÉoF, Ž-s½1²‰ÿŽHœ0ÆÇo7~w|÷Ûö¯™Ç¡v/_®YÄ߸s‚&eºZ.‡÷ä¡mÜbˆT}²F@Àt"¼k="F¹>o<._‚6XÄŸrâ<ùÃ"Ö˜o¬ñ°‡ ´Õ#0ìH‘S“¸²,bg*Å4//)[=èÞ˜¹¾‘èÝT ×ÿOàýü3¶ûÔß}ZÌ,¼6èS¯^>°«géWı.÷-wnóëÑõ¬ÁL?n¦µË^½áÏÎʇ‚½éWׇƒhÆ#Ï|V £I-êÉîCdà\Î4vR„Öü™ÉÃ"÷£ÃÈVû Ù}ÆŸa=‚©È¡ M}=Fðù ™}Ó×lS”¯"ÐÞë󺢵z^éñæåk’‹×Ì©(WÌl>}Ìû‰áÇ)&Y®œ†¦›cÈTUPLgÓIƘïæy¥â—Ød8ŸÐˆb¾œ£fYŸSÁ­,v»Ü:3ƒ‰9ÖgïÄjb‚Ÿ› Ü\æž¹nØ21ß;W1vÒßS”¯5fØu92˿ϒµBÞËe 6w\úìäØÏòˆsMãj| µƒC›.³ËDYбí`~Vk;ÉréŠŽÍ ¼¡\õq$—Pf8®‘ßË“ªøhzÓ»f 87”Y ÜšÈ,Çî,âÉÎZüO†p.ÞóI˜°Aƒ_šIã¼ÁÄ Ç¼}s3œ½ÆåœùDãWdއcÉZf}8BøÊu•™"àoΰÌ&áZÄ!ÁŒD¯_ ³R8ÅŸòÌ.@œ1™ÜÂЇ œç¿0Ù‰DÛSd˜ãDNïi4œo8l˜jÃŽ†S&³ñÝVÜAOØÁtó±0§Ï­4™÷o¾‘¬ @?s}bí`¬3?âõ8æ(S¼µ<µL¢<ü³’1F™‘NÃÔ,SX!œً&ˆÛœÓXW!ÂÁÉÚ ‘ÉjÌË3DX„°„+‘ü"¬åS^,"ÀÌzÒþT‹ÈËËR¹d–®øV|/YÞ"r32yŽ@VÒ^%#À¹›•4n)_ VÛ¸ë‹ðË[š•4‹vD¨ø€Çy¯ˆ¼Ó9çÊÆÖS¾p Á }ª®2Ø©MÜv ÷Žìjä­‚†Y(ù¿]ò0³&^ŸË"ú‹Ÿq黽¸hQ^sÕ F䌽Sp•fß”ƒ\ÆÙ÷“R”ÏÌØ1ÖZDöò·¹ñgºþn>§•àwv©òdÞØ6·pKG Xv–"?ä"Îu|©!½<œNjeæhG¡Îõ4I-Šš›Ì™ÜrÌ™ÔY©Ýa^O¹¾g΂TóLľ·ýFÀö§­Ò5“¸3¡û?]i´¿EÄ®wö¼Îߓ۳SÕÄ¡¾3¸ç8,˜ÍŠ£Xx‡) .Üþ.‘‡-SF§‹ƒŸ7åeŸâqÄtüŒ ºËÛr—è‹£¶ï‘MKéP“=iY9C_6?Ù'"vºÈ=bœP§Îí|©eÃØ÷á§\î6¿âK]Þ7äGÊæ G§´n‰ ¥kWß“ O…~îȬBÅŸ¶+èïúqËh±½„ëÊGãÞÁÁ 7š sÞñ%ØxEÏ›ÁÞÄìgÿyE^ö8úÅ_÷>aŽöJÀG“Èû)³½Ùäð´h¶ê°x[™i4‰¼uƒ]‰üãÖÜ™(?ýŸyåðghú®–¿«T™sôšF=oG=³ùä«lgWk¬™7Ð;_Híù„Ù;w9>ÅZÔ=ÆŠ”š-"VÄŒ;f86ëP|ðK´ËÏúùDnº³9a§®fÊÈl²³Ò"}ùA¢;æ²óRÎôöfÛ™ª+Æ2J?tu °­ó1cØ—X+ÿøòÃõwöSPÈ›!@ÿͦÇ;ü¾G‹ÃËûÇôƒýßö›³™ïúæÐF~6|cêΟiÛçSÔOàá’‡€WOÕóðãÀ1ºfL¶Ëü!ZÅô;qQ°]÷›7Ïçlîq1~ÌFz|ÉÛ¦ÎÙ²uûÉ•³_ñO+žz‹FÅí£‡ipß~¸J2NÑ—e[{öhl£ïÓâ^]¦ž@ÿú~dÛ‰äírô™®\)½>™£š+V.XyŸ²íŸ:\¾·_èË÷¿È$t Ö€=nÎõðg¸ÉÓ"vg}Ón§Zaƒè›•Ö v[¤GoŒ‰Dl°¶Dc[`Q<@Äö>¬7ï we僧ŸÁßoä4Xq±•{f˨µOMúZƒÚfúhùÞ©¹ßl+ùþ*h™Úòó¼ÞTöÞénoJÈïôó†ßÕäëµø;CS~íL³ÉÞÎËzþ}%M´åóJí×Åd+’£ÓäÉ%öµS…z›çh°xZSmïûÃûni+ñ<‘ØŽÇkmV2ÛO~à [ý)ÌwëJe÷¤Ì˜ÝÖ}|Û¦à–pÛ7ý­;%Ííjó–éúX¡ö³»:‘ߘã#ÀϰFi˜L0ˆ¬*pÁ™¦ÚöØé‘‡-,?³&ÈØœµ=òf›ë‰„$«›í6"à3©¯±$ú÷ÈvëšOÄ\r2÷AAf™"0Öu“_=/yYþlÞŒå£#Â’wù¿¸=#+Fÿ¢Üšg‘öx„õ6ëL<š(No*.W¼5ëæ®3 X{ZÙDóaº³ef÷m|],¯­í`£’7Þ)$¸ì¢MŽÊžEùô—Úç´Í¸öÖ°‚·á¼ÑWó³½ñòÍ*ö—¿ !0óv±YæM%yŽl³‡Üô-‘8ïf§ø`ëvo—>1}nÚ;"¶dí–ê3ÕÍ…‡et~@#·M•3n šcœ^Ùj>ɬhK—>³½1l«êœ3ßÍj³?#ÝSY¾¿ƒjåˆíFˆØW6ð^ÿÒ=g%ìÛœžØV¯ðân9޾ÇÓ,î|* HƧ{8[d|ˆØzê{l-âY ¤Ûì0Þƒù e¸Ç•Ö÷$Ö}b'ãM§óØÈBûÃ=’qÚ’ELµ.yÔõvšÊc».-¿ãxnO.{ðˆŸaw‚¹ïÜù— dŸ+UMË ç•Z¨úŠŒyFÀ>4rYìþ‚8ÃÒTãz‚ò¶ˆ¥âAI[wGïpšbõ0üwÏŒŒÅ"­Ed?¾É™‚E"ñ)/Äj#tké’Ý¿FX~#›¿˜%2-RZô_¢EdåÞËñ½d–²òµXîÞ¹¹6JbD¢°ö²7ŒÉ;+k¹©,¾qã9S°@G„c™EüÝóMc¡‡|¥:À§ÎW‚rF'%J ==þˆW¼T&‰&œ‰w 1”7dÜRIÁû‘InÞrê(x=îŒØö'v»RŽ‘wŠ’ ޹ Å·›=<<…ìËï±q\Õ£»oç¹Rc¼‚ëP˜;¢GçZÜcáF= ûìžT¸–m«»Rís],Ï«KíÌ6ãQ·»ù3#Ôpjp8ØäfÄeº´kH)+E~Ê}wð¼¡ÞáD“¢!Näž{ ‹·¿[—øˆSÁ¯Ü{n?SèEÌ{ßÎ)¼µP¬8oFlkå[J:½O€Ô]ï‚ ¨Íâ$¾žÄN$jüÔxÛ]×ÐqðbhÝÌ^®lZROnw‹š›âý¤¼ìŠ´í•JnÀ\AÛÿ4ˉÛáBú¶?-"–&µÐìBAÇv›Çé¹™yIñH.£ùhZ½moIS‹9OݱdQÞˆ¼ÜòíïXнKÇ“] o@`.Vs1лè Ëõ²eÉ^‡í¸ø0X(Z{ËÄ–‘'æ´{v^lûˆH'fýiàØž‚Œl#ÿ£HŒFÍ*Ùdµòån,¡ób ÐyÝ7üð–‘dñ0§öañlßèûýTüu¥ó‚Q{æë½»°Î³ˆ‰^ag‘>Ê;Ï·XçuÛˆøŠ{žEìdpϳˆ•Úáž×qJ‡íÊ ÷<‹˜îyi¸çuœ€kG—„ÿ‡EÆ÷<‹˜]]ØçÈp‡’°Ï³ˆúöy¹–ØçuâKÜó,Ц¸çõÇy-÷<‹ØŽÎ8Ð"æ?îyÂŽ7‰Ã -be]ØçOÖÈ}¬ˆûwDZ&«‹}žE¬ÌÌM´Ð¼\=,ˆ´GìóÎÿ mtUgcÚÃ?ïD–3íáŸg?}£ÅCöýûåŸg‘¨#B7ßðÏëÐ2è¤3].6x6­ñ”K ¸iO¬ Ïp¯¯´Ïë8ùIlGÄÞö°ÏëMÌ7ìó,bØfØçWÓì´ÏëŸ"[öyá²áÒ N“\~|ªy`ºðSæy°5>Ìóºi6ÏOšçõÇ+Ð2ϳȽÊ<¯c0>ïO™çõçáòæy¹YBxò<ô~ ÷¼yhý”y^7;Ÿ©É-"–q†y^ØØ¿ù—û"Ï "ÎR·c+Ê>¯?Ü©öy/®?íó,bÔ›ï¸CeŸ×q.€Á3;ßßî'3…}žÌ€-“–Çóë²ÏëgîiŸ×ídlObG/Î$0næä§¹•}^‡lf×öy‚#-!±=íq‚%%î8®Ñ›“’[³•{^ü$ä²Ïë8pÈh¤ðÏë8ãÑ.9üó:Ž7 |Ï—æ‡kaúçuœihYøçuèx†–…^Çf¨Vèul7´, ô:N[5´, ô,rZâÃBcï§üó:N‡0€*¼èNävè&üóNärD)üó,r‘ ô…;ø#žØCkìÏPàÿYEŠóS3}øøŠ_ã—$çuÏõ’/?Ø"íó:ƒF¸‘›×7㥿.FbŸngòŸöyË‚QKaŸ×q>”QUaŸ×qôºÁq*wð`DW#PPÛO¹çuœía;Üóz÷:Ýó:Îã4‹ÂpÏ;‘‹‘ࣺsQåž×qì»Ý› µpˆgçkõ0âÙbºçõn™çuObà]¢Y8ù3\3™iïÆéãæ&’};ãæyÝ$`㌣_e‡Ðcê½’t_,Â>ïD§¿èm#be¿õâüˆ¸SËžÜPµh7öy'â;yÓ>¯ã\f«­gn:ô[¢Ù Öœ™îŒ[èuP2ÏOùçõn"XÙçuc«è•ô2U¢´Ð³Hc‘Á¬~º½cZèˆ-å¡×q@gõ¹}Æ|YèõÎ-Øi¡×»×­e¡gÓGùêŽL—…^ï‘ÏÔ±ãu¥?,ôNdMÝ;Äz;,,ô,bNXèõÙKXèuœÍã¾êAc!b"yÖ ãqgú°Ð³ˆ9’‡…^G_`Ýb¡g;„†z'`^Fe¡g³L ½Þý , =‹X¢z'ry;%,ô,Ò±Ð뀰l·Y¦Ðvù#zˆˆ^GÃÚˆO¾½/éŸw"¶×¥ ô,2¶èYÄwfÕûLßz±6l8èYÄÎr =‹Xó6»Hf­’ =‹X%z±NöÎ Sx’zVˆÙ±–wÒûî{V&z± a¢gÛg&z±-a¢gLi¢ç‘^&z°=óWH–&zQ(–‰^EžœŽ#’eá¿Dh¤W0Ò«?Fzy}i¤—_!ôòk¦‘^ÞŠ4ÒËÛFzyGß:‹w=½ôâÉ”—^<½òÒ‹'\^z1 ¦à#¥¼ôb4M9ÕÁG\yéŨ,3½¹e¦£»Ìôâ (3½xKÊM/Þ¤rÓ‹·­Üôìu,+½x_ËJ/Þé²Ò‹÷¾¬ôbn(+½˜?ÊJ/昲ҋy¨¬ôb®ª£q8›••^Ìxe¥³bYéÅÌYVz1¹–•^LÀe¥“tYéÅD^Vz1Ù—•^,å]‹FYéÅÂRVz±ø”•^,Pe¥‹XYéÅBWVz\ ËI/–ËtÒ‹µ¬ôbÕ-+½X™ËJ/VïôÒ‹>íô˜”›“„2Ó‹<¢Ìô"Õ(3½HGÊM/R–²Ó‹´¦ìô"õ);½HÒN/2¨YÛ“=Ã*;½ÈÂÊN/2µôÓ‹d®üô"á+C½H ËP/òÆ2ԋܲ õ"ÿ,C=¦¨å§YlùéE¦[~z‘ —Ÿ^$Ìé§9uùéEÞ]~z‘š—Ÿ^¤ïé§Ç¿ìôX”›^T e§•DÙéEµQvzQ‘”^T-e§•MÙéEñSvzQ •^Qe§Ç:«Üô¢+7½(×ÊM/J:QTÿ)òòÇoÖ“×-nzQa–›^T¡å¦•j¹é±˜-3½¨wËL/jâ2Ó‹º¹Ìô¢¶.7½¨¿ËM/jôrÓ‹:¾Üô¢Ö/7½ÐÊM/4ƒ²Ó ]¡üôB{H?=ªe§FÙé…ÈQvz!„”^ˆ%e§‚JÙé…èRvz¡Ë”^h7e§úNÙé…Tvz!•^HIe§rSÙé…$•vz¡Z•…­rÓ é«ÜôB+C½ÐÏÊP/4¶2Ô ® õ(Õ•Ÿ^¨ye¨Š_ê…*X†z¡–¡^¨‹e¨ dê…HY†z!d–¡µÎòÓ 9´üô¨˜–^ˆªe§ÂkÙé…8[vz!à–^ˆ¼e§BpÚé…V\vz¡'—^HÎe§²t¹ËP¹.7½·ËM/ð²] ‘¼ÜôBHO7½ÐÚËM/ôø´Ó ɾìôBÖO;½PþËN/ºe§„²Ó‹.CÚéE#¢ °¢YQ~zÑÐ(?½hz”Ÿ^4FÊO/š'å§ –òÓc¦ìô¢MSvzÑÊ);½h÷”^´„ÒO/ºFå§¥òÓ‹îSùéE‡ªüô¢‹U~zÑé*?½è†¥Ÿ^4ÌÊR=µrÔ‹®[YêEg®,õ¢{WzöƘ»ŸDü­JK=‹˜—HXêY9LZêYäÚb©g/0&Ò´ÔËWú.õ:꟰ԋy v( `_",õ|òØâ©g ÖÊôԳȜâ©g‘®¦z6Q™çß›ëÃóx-s娶íeªg3 ÜVÓTÏ"HÓTÏ"VHÑTÏ'Ò%¦zâ©—³ozêÙ »­ôÔó9»‰§žMëïO=‹ ~LO=‹˜ àÊd½ÖÊ‚1G¿ðÔ³eæ-K=û÷³ÄRÏ"æm–z¶XMqÔ³ÒÂtÔ³%ÏfpÔ³ˆMBá¨g åC= ã“ù¤?îéIC= „¥çÊ5Ú Á;²¥ÞÝZé‰^™Óµå¨gÌ8é¨gé€Ùû…£žEìgÂQÏÒ ¿ž½Æn…P9êY.b.ðá¨çÙÉK=Ë`ügÞü™(B3ùm––KYŠˆÿL`»ÈŸìæ„¥žgT[,õ,ëÂKž–z1G°°Ôó\m‰¥žEÚ-–z–à™{Xêe–z–&NqÔ³N:êen–z–~¾],õ,bktØ“yÒz‹¥žEÚ(K=Ë}­HK=‹Ü],õ,c¶Å5,õ,b pXêYžýˆ£ž¥âfÖs®õý/e©g üjb©çIþ-–zV¸CÝ7ý6Õ©<õ¼zèâ©g†}óðÔ³HâQguÉK=/]–XêYuã²CìSBdNÃ4ÌË’èß¶I´,õ¬øzïOÒãëã”M×ð^׋=äe©gÿ6Ÿ»°Ô³JÐü‹yо‹Kõ¬ž4‘$õ¼Â\â¨gUèèâ¨g•ª?Ëä¤ýHŒtÔ³òÖù®l¸¹Åv:êYÄLÃQÏ çïÅûçã1û¯Q|å¨g¹ù.ÒQÏJöùˆ¥ž•õö˜r'¾ú[,õL ˜â¨gzÍ.á¨g‘.†z¦1˜Whê™ñ¾b¨çÊÄC=S/ÌH•†z¸–ê™äa3oê™*b¦va¨g“ûfj¾~²K9êYÄëè¨çÌ-Žz&Ò QJG=‹X ÛS½Ý·ÏpÔ³È5ÅQÏ¡!†z¦½êYÄnÅ•- Má¨gäIé¨gêÔ~ÂQÏþintá¨g ×Úâ¨çš×[Žz¦Š­·õR&KG=“Ò¶êY ‹ŸžÉo™“¼yºøé™hgÖ}á§g‘!vz¸–Øé™ö·ÄMÏ&W‡›žIˆ&i‡;E°¨¦›žE®WìôL‰\·ØéY³QÚéYõ|Úé¹ 9ËNÏ]ýô,â&ÒÙðò­ïå§gLé§gÌæé§gêê.;=û7f÷´Ó³H7= `ÖH7=“q·˜éY`L1Ó³&–4Ó³–µ4Ó3}.Íô,‚÷4Íô,‚öešéYm½4Ó³H›b¦gì J3=‹`OEšé™\vt¸éY{bßÚH€ˆ˜éYÀ®¦Õýô·ÒLÏ"Ø^’fzA{5Ýô*²óé;ÒM¯"á¦W‘êwýçH¸éU$Üôê¯ç` ;½üa§—_4ìôò^¤^Ü®tÓË;šnzyÓÓN/LÚéåÃK;½|Àa§—c íôrœ„^ %=LJ[ÙéÅ,;½¶i§#[N{°±_nzñz”›ß 2Ó‹—¬Ìôø–—^¼©å¥osyéÅ_^z1+”—^Ìe¦“K™éÅTfz1I•™^Ldzä‹Ovå¦b¹éŤYnz1±–›çÞ2Ó‹é¹Ìô8ƒ——^Lòå¥ AyéÅbQ^z\OÊJ+N9éåÖ–tÒ‹u«œôbi+'½Xþ=åYNz±†–“^¬³å¤—»sê4V.×e¥KzZéqÑ/'½È ÊI/r‡rÒ‹ü"ô")'½HSÊI/2™rÒ‹l§¬ô"#*+½Èšh¥iUYéEêUVz‘••^dpe¥Y^YéE&XVzLËI/òÉrÒcÊYFz‘•éàzæZFz‘Ý–“^$Àå¤Ir9éE"-›„™l—%Y$äé¤9{9éE^_Nz‘ú—“^”å¤%D9éE™!t*K‘rÒcµ"hë™2Ò‹š§ŒôX•^Ne¤ÅUéEý¥{¡½F+K¼ÜϘ¶yÿ!òþñ)šÆ¬(Òîpš‰F —壕iùèEõZ>zQá–^TÁe¤•réE5]FzQq—‘^Tå夕{9鱸/#½¨ÿËH/4‚2Ò !ôBjˆ™jDé…b!‡nSÕQK壌ôr³n:é…€’Nz”XÊH/7™M¡¦ŒôBÌ¢À7îL #½…ÊH/„£2Ò q©ŒôB€*#½©ÊH/„,ÙpG±«ŒôB+#½ÍÒI/tµrÒ í­œôBž+'½ðÊI/d¾rÒ )°œôB.,'½PËI/TÇ²Ò eR /ËJ/N%7L-'½IËI/¤ÔrÒ ¹µœô¨È–‘^ˆ¶e¤ÂnéQú-½P‡ËG/äòÑ •9}ôBˆ.½«ËG/íòÑ Ñ»|ôDH=jçe£òzÙè…_6z¡Ò—^(ùi£G­¿\ô¢P.zÑ2H½è*”^tÊG/ºé£ Œ2Ò‹&G9éû‘FzÑ*)#½FÒH/Z.e¤m9#‘­›2Ò‹öNé%­’FzÑ&R#½ŽÄxŒ±+³TùGÜʆÃIâV†}œ‹G;ôp¡lùÎé…Yvò8Ëfeˆ8ï͜ᙀ¸•áðAßaÓ8"vtBZ. ×eÄ­lø±âV6¼ã!veˆØÁ iW6^?–8íÊèæ§[w~ýˆ]"ØÓXveˆØ’–ve× ±+CÄ Ù܆†rdÿ”[þmF_I¿?õDYDžçGÜÊ0 gO·2;Xˆ‡%ðo;‰$neˆ ¸-·2œI¶hÄ¿iÒð¸¼ÊñMð#/pœE€À½~Ä« ;À& è-"×PDÛœ¤y'¸O>½Ê1°?¼Ê쬤±*Cà2ƒ•è.O'Īl¬í_*­Ê±½þiU†c7Í‘(ibÛ|qÿˆU"FJ¤UÙðH¬Êðv›éSZ• O¥ÄªÌÊOšÖLþõæÞjþ»ûT”eØxå‘ 3á×bW“eƒÕJ:”Û%¨·¯+åP†äÉ#áP†ÝÆ/i?¾ì¾É¦,ʰëëâÛÆ§Ïú¯,Êp”›nQk(¬$ܸlÜ7‘Ű(¾üŠGö“},ʰ;Ú¨²´(—%ÖéP6®ÉI¯çg,ƒ/ƒ2;DnýˆAÙ°/¼¹Û¡Æc›ÍoéN6¬±$æd8‡ÎèÊ4'C:»ºpàxì±¥;"vëÒìy—ÓwéN9püˆ9vÐa] o²ç}<ÈÎÏóò€¦ìš Û~~ÄšìyZ*k2lNï±&{È–5Ùãt—ps&÷8“=^:‰5™Ù=?eMfÅÀüo2Dì‚Ó› ”­ìiNöDº’ædˆ4dÂdóØ¡4'{¨ï•9ÙC±ÌɰQßNib¡ƒ½™ëG ÊLm]?bPf; ,Ï !ŽÂ‰A"v I”=.K‰A"æœeÏ¢Ú“eˆŒ¦Ù2"Û¥A™VˆëIÑÓ‘Ò  uÚû‰ I²‡YOù“Á—Ê|ÎJ*aTþdæ]¥ödÖ—öd‹ÒåNöøž1q'{\È.s2LóMw²‡êw¹“=.¿‰;™qjNöø™cz®ÂrÖ·ÌɱóÒì1P1­Éjó" ¸ª'ÖdIk2¬†Nk²Œ¤n9‡ñÿ=Ó˜,ÿ™»&ò¯¦1YExS\|“Ù·+W²øúeK·¨lÉâ6–-ït¹’ÅÃ(W²x`åJµlÉøÜË•,†F¹’qô”)Y °2%ã,O²¦åIC¹<Éb¸—'߈²$‹—¦,ÉâÅ*K²xùÊ’,^в$‹—¸ŒâE/K²˜ Ê’,&Œ²$‹I¥h˜˜xÊ’,&§²$‹ ¬,Éb’+W²˜Ë–,fʲ%‹Ù4mÉbÂM[²˜“Ë–,æm¡8·—/YÌÿu|¬eLËH“ÅRSÎd\ʘ,¬2&‹E­ŒÉbá+c²X˘Œëgù’Å[¾d± —/ê²%ãR^®d±Ú—+YdåJYCÚ’Eb‘¶d‘{”-Ó“t%‹¦\É"É¡+™e@eI)RY’1‹*G²H´Ê‘Œ©X’E¶V†dLèÊ,r¾2$‹¼° É"w,C²È/Ë,rÐ2$‹<µ É"•-C²HwË‘,Râr$‹´¹É"µ.G²È¾Ë‘,2ô²$‹,¾ö#D¦OK2åHµB9’E=QŽdQs”#YÔ%eIµKY’E}S–dQ•%YÔIeðµTy’Y±U†dQŒ•µXle?öÏ»<ù”׆åHõc9’±Â,C2Ö r¹,SË,JÙò#‹r7ýÈ¢".?2ÍeGƲºÜÈ¢ð.7²(ÎÓ,Ê÷r#‹¿ÜȨ”Ù·:‘QD(#²Ðʈ,´ˆ2" ½"ÈBÒ('²=ʉ,¤‘r" ù¤œÈBbI'²Pavüá—~€OJM.å”YÈ=åD’P9‘…lTNd!-•YÈOeEUY‘…ŒUVdTºÊ‰,´°r" ½¬œÈBS+'²ÐÝʉŒÒ\‘…zWFd¡ð•5À2" ™Fd¡#–YheDzd‘…f™Fd!k–YHŸeDòh‘…„ZFd!³–YH±eDrm‘QÑ-²Ð|ˇ,táò! í¸|ÈB_./ŽÐ kTèÔåCRv9T„Ü]>d!‰VJÕ¼lÈ(«NÊ{¹…:Ÿ.d!à— YˆüåB€r!‹fAEC¡lƒØr(²èJ” Yt.Ê„,ºeB2!‹.I™E'¥LÈ¢ÙR&dÑI²èÙ” YôuÊ…,z?åBý¡J–£‡T.dÑg*²èEU‹-úUeC=­²!cÛ«\È¢1V.dÑ<+2ö×Ê„,Zpe96Ü?ànr™!b^Æ™`#b{ÝrG®Ý~Ϭ¦Çä aB6|‹²˜ /dÅ…,¦‚r!,™Ò„ÌæWMÈ™[LÈ0è4!QÐ… Ù`˜&dƒ•c™!rÝjB6¼ì-2– ™×KÙÎXty 2šYŽ…<SošÙA—Ö?}óæ]^Ó¤ ¦t+jÒ„ sÞJ2så0w“+þiûÓ„ÌÖŽ÷GLȆoW2DÜX%û ®Öˆ ™ L|§4!ÃRæ>ƒ9?ÏA/Â+ɇ~…Ù7™|Ó„ ·.ËÙdv¿¡iB†ˆÖSsÐl¬øzÞœææ\iB6xf™ ?!V\È̲dýˆ "v7Ò…,’ˆÜ—Š€ÿH¸!í˜vTЛ-?ÿ²\Èð2­1!CÀËÍ8ËìR>("'úêÙÝI²H¦Ê„ o²M¤iBf<öþ2ËÒö˜™"Ñ~Ä…l¸Ç¸1ý+2lýO²Á1Ë„Œ9ey ×Éă [¥ÓƒÌ’Õ¦&dFO5!³Ó¤Ôƒ Óœµ”dˆXª‘dÃO-2Dî[MÈ€¡&dƒÛCÊ„ Û&d‘ا mª ™mßU2¬®õ¹hèç~£Y†^ˆ„}×[¬W=È …¡ñgü ñ²‹2èß#¾“R#°¢&³íÞiB†Hû^rϯÅ{ÑiM—dˆ¸OYæÝ2)ñ ~p¿x îù*2Dܧ,<ÈPŽúó̆ró¡Ëƒ ×qv6Å&}ʲ×î4—x!bלdÃ6}h‚×è3—dˆ˜Ô‘d¨ËýM#ò8|g­xYyÿþˆ"6)§Ùðý%âA6±2H ž)†ä†uÿˆ">íĆÁáÛ"Ë‚ ʆYm†6§Ù¸9 ¥$S÷Òƒlø9žiA™Å–ž<£Æ„—þ#d¶ëþ28¶Ððõ½Ýµ<È ù˜)dz žóYdŠìܸô CĽè:º¶Tdتd¤lZM2hV¾?Ò |Þq F5¤ýØpdZìÇFäœ$.'DÊ{ {Îá=±Í ËÒ{ ̱å=ξqUž.ZÞcõÖVï±áG)Š÷´@“§K„w \¼Ç±ì0½Ç )nµCàéê>öxwGÜÇ Uέîc¦^.uC$2e^Íôd0ÝÇ7 ÷1D ( öõ½­å>f§†Üê>†ˆåÿé>fm‡&îcPdm^º=,GÊ} ‘¶Ô} ÓîÓ}ìñÃâÅ}Ì6/u3xŠûm«û"÷P÷±‡EV¹!bDEº!²šÚ™:­îcØÎÑt³Èÿ×ÛùõÚr×ýȇ¸ðÓ¹/5=ÓÓÝcØdÃN(-ñ%°ý ‘E‡i‘´ oŸYU«ªÖ>Ü÷J<º§8{ïùÓÓ]µºWÿšÒÇÙ/¥un›ø1lgËÚPÄV²‰$¹cZw”ÀÇ2’ð±ŠÄœÖ{ «È¡¿›ì± D'_豸¾bÅ=(öXܧbŽ,öow¡Çâ‰{,žZ±ÇâÉ{,ž~±Ç¢…{,Q±Ç¢¡{,c±Ç¢Á{,u±Ç¢á{,^ŽbÅûSì±xÇŠ=ïa±Çâ]•î|Ÿ“=¯|±Ç¢[(öXô²lŸ½K±Ç¢w{©bEOVø1vvE‹þ°ècÑg},úÕ¢Eß[ô±èŸ‹>}xmgý|ÒÇb((úX Eùˆ¥èc1ê}ìtœH®ïå¸Uè1ØŠ;#_qÇbt,îXŒ É‹A¶¸c‡;Æqº¨c1”u,†û¢ŽEJPÔ±HŠ:yEQÇ"÷ u,’“ÂŽESØ1¦8E‹,¨°c‘)%v,’©ÄŽEºUØ1fdE‹¤-©c‘×u,r¿¢ŽE~XÔ±È!‹:yfQÇ"-êXä«E‹”¶I‘öu,RãÂŽ1{®•¾Ì¯‹Þ9xQÇ"OOêX¤òE‹t¿¨cQu,ʆ¢ŽEiQÔ±(?j?Ö(Q eLQÇ¢Ô)êX”C…çbÅT¯(ª :…—¬hfqV„…(àþXd¼úÔâ« ŽEAYÔ±(:‹:v ßáÊ—¯.‹nQÇXt,Ê䂎E%-÷”ÅvAÇ¢ /èXí‹Â¾ cQüu,‚¢Ž…ˆÔ1Ê  %¢ c¡V$u, i·=Š:F]„бÐM :ÚJBǨ¾ÈuÆ;6R¬r§ c!ôt,Ä „Ž…^TбД :ºSAÇB›*èXèW « c”ÁjG¯PÊŠ9jZ1ÇBq+æXˆrµÃ}wÅ q¯˜c!t,DÂ‚Ž…Xб :‚¤8((Z&t,tM±]Pû,èXè£ µ c¡³t,´Ø‚Ž…^[бÐt :ºoAÇB.èXèÇ„Ž…º\бP  :*5¡c!ct,¤î‚Ž…^бPÌ :¢º¤#Þ :â|QǨßt,$þ‚ŽÅ4@AÇb¦  c1™Pб˜p(èXÌIt,æ- :Æ©bŽÅìG1Çb†¤ c1‹RÎà˜i)èXÌÆ$t,&l :“:‹‰Ÿ‚ŽÅäÐSè˜/昹¿ÚÙ7#É CwO"²mÆI£é"ò©øñgȱ¹OŸ¨Kä"6…È1ÌäZÍÈ1›ÚÊ›¾K‚0ǰÎêRäfÃKä˜-ÅZŠ›{§›/îóô­±9†ˆM°%/aîÞr ã\'r ‘ýPäf£ñ>rlºKScˆ íslîŽÁ©í¶¦[s…96}*aŽ!b -“9†™oókænoˆX9—Ì1›_º@uúÞâw¾·•0Ǧܲ6v:èB˜c³Ù’ÈBŽ!€±½cPŸq 9fzô©È1ˆÍ¶à7‘c³uåA{¶&·€ÒlvÃäMßzK€cОçT“ýôM 8éÙz´Ü­Ñ& ¬º àØt±G€c£ÇÀ1“§çŽÙô‡ù[FÙ±f sŸ'p ö •pãùÄh3ˆÃ.F|†BŽÍ¨æ@Ž!`ëá9†™ .¢o<›Íù'q ËÂ’8fË!èô d\Žc,â"I¾<2}üÌÔr¹q"ÇÐ]n:ˆ?­2Lc ôônÞŠñ˜5³2%™cØñsl¸ˆ Ì1¬Ö0_S2Ç Â‘*™c˜Å3ƒL2Ç1ׂA¦?hÔ[üÌ´â¶c&Ü÷7…CÀ\x±`wp‘IÇ í›§-‰cX:b®«$ŽÙŽîýÇ1O[îÙŠ Nã2%rÌv†·HÌÍbZÔ9e±'& ÌM”È1DÚ!Ž Ž`EÃ<‚ÝÐ,Ç0%k¨¦$Žaq‹¡ß’8føâ±\ê¶7†Ç°ý}øòxUÞ9 p kdÌ*–Ä1Ì"Û5$¾ ‘V&×älcóþFˆc˜îýÇ0±qÒñçiý·còÅžEzúãSN *â¶LŸäy·Žt3&É9õ–†Ì»Þ ÞSÈ1LÖÚ¯|,ÀÎëÎu‹Zp°`(ä&ýÇ!Žg0øÐ½Ÿ²Ù˜äØ@Û£Ëó>¬/°û•Ì1ÌØ˜/1¼=¶zü|#Ì1,SfÑ ×fu<Ì1,npPß_c«„96|MaŽp&&tltËÂÅr5l aŽ §4s ³%s Ë¢¬vMæØð‘N˜cã`%Ì1¬óðþ/¦²1íäìr?•ƒuJz§°Xd²[cšÀÉÃÎö^1ÆÊ¬áaŽ ÛÞX ²±ÓqÈ1Lp™~‘È1ìo…~2ÇlÇüý@Çà(°â ¡c˜3jqúx°•×x#̱ÁT©˜cc§™>™c˜N3i7™cXBfcbjjX cƒBdžmJ+̱ÑhŒJ'fåVWæ"íT料ŸÌ1¬V[§n‚H›Ê‘¾$slPK,æØð)…96(I&slØf¼‚C.÷¹cˆlK‘c˜H´<9†€ai9zÍBŽ!²Š3ÈŠdž‹·Ãü¤aÊ8†ˆ9d2ƾlKycØÜa"DZ¹ÃDŽa±ŸÍ&r ‘£)r +½®®È1D ]–ȱÁ´¨cˆØìk"Ç0¥jΑDŽ!bKŸrÊ«d9f\‡ý Çà˱‰ëDŽ!b>‹DŽ ³z qÌÌ;Žñù pŒm@€cl'c[àÛ›ÇØ&8Æv+À1¶mޱý pŒïˆÇø pŒïšÇø> sÌ_YAŽñ­äß|AŽyç Ä1ï>8ÆF€cì…8Æžª€cìË8ÆþN€cì8æÝ¦ðÆØ± oŒ¯ðÆØA oŒ¸ðÆØÑ oŒƒlìÎCxcT„7ÆGxcœ„7æã—àÆ8Ä nŒÃ ðÆ8ToŒ£©ðÆ8â oÌeÁqÜ.܇öÂqôÞ3Ž1‹à Žy."¼1¦+ÂcJ#¼1¦=ÂcjT¼1fOÅcv%¼1f`Âc–V¼1&rÂc²'¼1&„ÂcÎ(¼1O+7ÆÌSpcÌN…7Æ VxcÌr…7ÆDXxcL–‹7Æ|Zxc̹…7Æ´\xcLÝ‹7Æì^€c¬„8Æ*Aˆc^HpŒµ†ÇXpŒ5‹ÇX×pŒ¥ÇX pŒ%”ÇXf qŒ¥˜ÇX® qŒ%ê©O"ŽúIâ«G!ޱÂâ«P!ޱRâ«YAޱâä«bAŽyá,Ä1ÖÖBcý-Ä1ÖèBc/Ä1ÖúBs9@€cT 8FUA€cT 8FqBˆc0„8F‘CˆcB„8F±DˆcT„8暋ǨÊpŒÊǨîpÌõáQ"Þe$áQjÞå¨âQ±ÞU-ŽQøàÅ1ŽQ=à6ŽQ…à•:!ŽQÍâ?!ŽQâ•C!޹¸(À1ê£D)À1ʘ£Ô)Ä1Ê¡B£d*È1ʪ‚£ô*È1ʳ‚£„+È1ʼ‚£\È1ªÅ‚£¢,È1ŠÎ‚£0-ô Š×£À-Ì1Šà¦˜­+pŒ2zǨ´ pŒj|Ç(Ø pÌ5ýâQõÞg„7ÆÙáq†¡xcœ„>'*„7ÆÉ áqÂCxcœÞ'N„7ÆÉáqF€cœ¤à'r8ÆÉŽqB¨€cœ3àç•8ƹ'Žq~J€cœÃàç¹8æSaÅãd™ðÆ8¡&À1ι pŒórãÜàÅ𾜯¸ÇÅ›¸3CÈ©°1DŒfœ°1DveM_(¬1DFWÖXtµ4»€„™c¥)l ‘ãRØ"†ªÈ-úÐÙ§66½2,ÖØôrRXcèØÐ=l ‘ãTØØôùC™¥` lÌŒ9ÊC7k˜º„!b(»„ _¿*°±ábŒÀÆ9–ÂÆÐí$acˆ )Ø"6ËÝ~0|Le ßy¾`crÀ)ؘ¥?CacÃw{Ú˜¥?‡ÒÆi ¾Ÿ®ÀÆ1:LÒÆ†c³¤7± I`c–,*kÌlºŠÀ½¦ Æ°Î¦W>áUX¡Æ±c5fŽKQc‘>$jÌ|b—¢ÆéJfÐÇ© 1$7^}fÒ» Ä¢õè2¤LqÆ83†4Ê“¹7"û©˜1$_†@JÌX$h…CgåhN<Û–-S1c‘ù%f ÉáõÀ$ÌXd”‰3çÊ©˜±á+$„Ùd™ê¡˜1d³c f ¶+f ê©”±áê§PƆ¯0Ê’ص+fÌÒ縉1¤è³)f ã­%f,ûÂŒY6<3fûä4ÅŒ¡d°+OÌØðµ?‚C=°]ˆl§rÆP°œŠCIsuÅŒ!rì‹:èÃm)f õÕ#[ÕÜA§bÆÏ;ЬÎw¯kòÑsÉC¨˜1üm$²t… ß®Z8cQXgÌêæS9cˆøÃ<²Þ†,Ž+·å,Ûé(²äŒ¡¶NΘíMö<ˆ"Ë)‹sw9'1cV‡_‚C`›ŠCí~\Š3£”RÆ0T^bÆ ]1cæÞ•3†ˆa¼’3µt¥âŒYŤ˜1“/vÁŒ kBþÜ…2†È>”2†²Ë4¾¤Œ Gee ¢Šõ±Aƒ–‚ÇR”1DÀ/.ÊÄY’2‚NQÆPâò1)cã Î11c¶UÖTÌÔ$ÔM….åfÌäŸS1cfÿNÊ*É©1ÛpAcйFÆíƘYÌOeŒ ïË2AÍ2˜LñŒ5)c¨a ^–”1D0Ôe jže,iA¤_ŠCÄòÄäŒ /g„3†ˆ¥–Éî¾,\8cˆ]œ1DZWÎØˆL79cˆXØë Gp8=LΘ yоÖ]0cPLA+̘YÅŒ!‚ûžœ1è®èÞ‹36|{C!‚¿@cƒH‘Æ è¢à(Ò"È…Š4†ˆ1Í’46|Ù¿ÆL+^Jƒ(¥’E³m46è'(Ð"˜û,Ð"ýPÐØð‘»@cf™\ C äŠ46lÒf¯û¹Ù `aÆ1|YbÆ,Ò3†æX 3–‘ÄŒe$1c©I®÷G3–‘ÄŒUdËÇÀ3LÌX\EbÆâB3f7¢cq§ 2w³ cqà 2¥ cñà 27!c|üÅ‹’Œ16"Ù[‡ MclŒÂcƒ-ÆÛtíåÀf/1¾ãë#”1¾bBã[(˜1¾©‚ãÛ,˜1¾ñ‚óNA(cì7„2Æ®E(cì~„26blRÆØÉž.ìê„2ÆîP(cì2…2ÆnU(cìz3ÆîY0cìÂ…3Æn^8c „3ÆáB8cR4ÆaGHcš„4ÆÑKHcà„4æc ¸L}”Θ¢‚ã8+˜1Ų³*‡kÁŒqH/ÌG}áŒ13ÎX¬*Î3ŒâŒ1 ÎáŒ1—ÎóáŒ1'Îó¦àŒ1±Θç^‚cv&˜1Oà„2ÆO(cÌ…2Æ\Q0cÌ'3ÆœS8cž– fŒ™«`Æ˜Ý fŒ °`Ƙ$ fŒ‰´¬ ö\[xMLÇ‹2ÆŒ](cÌê…2ÆÄ_(c,„2ÆB(c±*¯|¨,D„2ÆbEÌ^ÎeŒPÆX fŒ…“`ÆX\fŒõ—¬€f&À°XÄXP±g‘ák«åSV0fÌKJÙ@šU§`ÆX™ fl„seV}xùÒêYëK7_W–˜1VÊ‚‹…¡…cÅ-˜1Vå‚cå.˜1V÷Âá1Y¥5øZ¤âŒ¹P˜1J âW¦!˜1*²wöHßGi ޲,ÌX,Ð-̘ë'E£Â"˜±Xø[&l 5‚£˜#˜±XR\˜1ŠB‚£p$˜1ŠK‚sýI(c®P dŒ"–®°[±æ.¿º&1×ËŠ1悚 ƨ¹ b,ÖlbŒÒ Æ(ï bŒ  Æ( bŒJ¢ Æ\l˜ˑb¸p½Røb”4Å¥AÙSc”F0æê©ðÅ(° _Œ"¬Æ(Ô `Œb®Æ¨÷ aÌ%aŒQ5À•åŒQ|ÀjŒQÄÀ…nŒQ Às!Œ¹¦.€1ªî£2/€1ª÷£À/„1NaÌç 0Æ™Œq¶Acœ‘(À'-0Ɖ Œ…Õ£cœ Â'Q„0æó,ãTŒì~ÈéŒMK“.Ö”¢‹ùœÐ\l§çíiúBÄRû4}!Òw1}![Îx“XgÏ ½gAÄ6$L×"‡š¾ÖéNã2}!b IÓô…ˆí'“¦¯u>,X]§÷iåøBÄhwéøZ§SBËñ…ˆµòt|!²«ák¶±“¾éê÷Båx õ{!b¯nªØˆ4µ{­î,ãRÝñN"ì^«ÏW "‡v>ËöN³‡z½°ry½1þaš½Vï¾½G ªˆ6Í^Ëwe³"Ž« ³×êþú”ß ‘öÓ­Nëiú½qweø½lóé¥Ùjq[p31j÷ÂfÎ62§Ý ‘m¨ÝËöwîj÷ÂÏ–'¤ÝkÙk-n/ìïl[w¤Û <›W6Ý^ë`z–n/lùl¦æt{aÏg[äŸn/DŽ¡n/¬á5Ûu¸½lgèKÝ^ˆ˜)!í^Ëwo»6‹6«YÚ½ÙÕí…ݣͷn¯µ; ºÜ^ˆl—º½°Ã´íÆn¯åÛg†ÛË6P?Ôí…ˆÛ*8 „-¨Í·n¯E e¹½°W»A‹Òí…ˆñzÒí…mª»š½lIô©f/ì[m¢p{!`(žt{­f;ËŠÛ {Éc„J·v·6SJÚ½–“ƒ²óinxJ«4 3<¥Õk5oõeõÂ~Øf*Ë)sD̤’V¯µyV]V/ì™Ýµz­mÒÒëî°‹özðzÙ¾ÚM½^XOn‘^¯µu3¥× {o»I+f¶ e¹á)ÖØc7n7i…Ùkù¿bö2@W³vì¶«H³×¼ÂÆ)ðÜ’ù¯íê}ªÙ ‘vªÙk^î .ÛÖ¤Û°¬]Ï"¾‡ƒ~jç†Ù „ÞÕì5™>Ê9/"ÝÒì”ÂÑÅì5×d ×1%.³×\ŽpK¯×ôÜ»¬^ELS¯×ôÝÅÄë…­Ég•^¯¹6¿9©ÖÎy¹ 0½^ð"x$ÖMrÊê5§oŠRV/è•v#Òê…݈°zÍé›^•Õ › ÷¡V¯9›Óê5=I«×ÄŒIS¯×d-š^/lžn¯kz½æ  *½^ÐS‘%—×kz†*^/D¼÷ éfºË&¼^sXâ_V¯9\›-«6i?‡Z½æÛÿ„ÕkžŽ-«6r·sI¯"í¯äߣ«×kúÒkñzaû÷1Õë5=U¯"Vá¶:ÁÝ¡WiöšÌ’Êì5Ob°Òì…ˆ©iöšý"š*Ì^³»W½Ì^Ó×ŠÛ ¯¦Ãí5]·×ì§iéöB¤-u{MJfYŠÎTÕÂì5Kv‹‹i.Í^ˆ¸™>ÄÙ ³³×tESÜ^ÓYq{MŸÌ·"¶û@¸½ Õ¯)Ý^ˆU9Ý^ØuEy¹½q‚SÏŸ¢ š~¯éËÄï5î³^&Üy1 _ˆ˜ž†/@p¼ÌÉW˜YO¾æÁÂ' _àØ&ŠiøBÄ>•†/Dl‡å4|M/MÅð…ˆmé†/DlCÔ4|Íã2|!bUL¾± DÓð…È¡~/|¿â4ÔŽ~)Ã"Ký^ÓŸˆß £¥ßkz=#~/D±{ákÝË( Kí^I»—Evµ{e$g¹> »W~qÚ½2’v¯8¿²{ñ ÊíYn¯¸åöŠ›•n/ÞÎ2{Å/³ŸŠ¸½üÁ‰Ù‹ÏVÌ^|þböb³Û‘˜½ØÖÄìÅö(f/¶Y1{±]‹Ù‹m_Ì^|?ÄìÅwHÌ^|ÏÄìÅwQÌ^|_ÅíÅwZÜ^|ïÅížAì^ì?ÄïÅ>Fü^ì‡Äü^ìÍÄïÅOü^ìÅïÅžS _ì\ÅðÅX _3Ö”¤ák溓zrmJ¨v“ËWr}‡ ñ{qX¿‡ñ{qx¿‡01|q˜Ã‡B1|q¸,ÃGT1|qÔÃGfq|qô.Çør|1Çóq|1—ÇÓ q|1%ËÓ±|1µËÓ±|1E*Ë—'QåøbŽ%Ž/æaâøb®VŽ/¦sâøbÊ'Ž/¦…âøbæ(Ž/f—bùb*–/f©bùb&+–/f»bùbB,–/&Íeùb^-–/O½ÅñÅä\_LàËñÅ__¬ÄñÅZA_¬'Äòå%‡8¾¼(Ãë1|±¶ÃË1|±DÃË(1|±ÔÃË11|±dÃ× wMÚ»žE|q~¾XAŠá‹U¦¾X‰Šá‹Õª¾XÑŠá‹U¯¾X‹á‹Õ³8¾Xa‹ã‹U¸8¾X©‹ã‹Õ¼8¾Xñ‹ã‹ª€X¾¨ˆå‹ê‚X¾¨@”å‹"…X¾(dˆå‹b‡X¾(ˆˆåË5q|-»€´{Qt¿uñ{Q»¿õñ{QÃe"1|¹’$~/ŠMâ÷¢ U~/jVâ÷¢®%~/J_â÷¢<&~/êgâ÷¢Æ&~/êpâ÷¢V'~/êyâ÷rÉOì^TÅîEåPì^TÅïERü^)ÅïE!Sü^;ÅïEATü^MÅïEaUü^_Åïåú¬Ø½(áŠÝ‹2¯Ø½(—Ý‹j±Ø½\P·%gq{Q––EД®ÅíEy[Ü^”Àe}0er1|QJ/ÃÕv1|Q‘/ÃE{1|QØ/ǵq|ùô€¾|Aü^>ÅPv/NBˆAƒb÷âd†Ø½|¾CÜ^œ·§MÄíå3+böâ䋘½|~F¼^œÂ¯§yÄëÅ© òzq¶H¼^ëŒt¾IŒ^œ“£ç­ÄèåS[âóâìW½8A&F/N¢‰Ñ‹ólbôâ\œ½8_'¾®åª‡ˆ¿LåôZQY¤Ù ³™¥ÙËà•§š½–¯M·—½ÊjöB`¿Ôì…^Œ2{¡G°‹H³"v¡iöZ¾ºOÌ^èk–z½°/Òëµó!f/tYVäÙkyQ*f/DÌG˜f/ë /5{!bT˜½ ôÚÔí…>ÕVr§Û˺ݩn/tÍëP·×rƵ¸½1Zº½ÐÅÛ ðt{!‚ä¥Ü^ËiÐâöZžËŠÝk9ɯì^ -»"¸íe÷Â85–Ú½A:Sv/ŒwëÁï…ˆYªÒïµ·&~/DúùÐphMÃf'MÇ×òœ],_Æ(½Äò…€Š•Pиš–/Dš:¾–Íû‹á+ò‡4|!Å0›m¾VúlÃñeðá]-_ËW Šåk9ø\,_ˆÀR%ér x¾A{+Ó)»}iúZ¾‰«˜¾éêùŠ ­<_ˆ˜«fŸ7’Òó©_z¾Ž©ž/#¸65}­pc‡ék™Ë%_ÈBÝú«°»®¥Ž/D̰ޝåx@q|!²7µ|­v¤´|-úDËò…äúìjù²|©å ‘c¨å ‰üRÇWdöåøBö?–:¾±„#_¨N5|¡¬¸N5|BûRŠ÷—ÇB»é´Lq|¡¦§:¾&ÍšéçŠBèCÃzçr|Í‹¶¦²¶»1S6º½ =ÿp¾7»ábBvõ{¡þë§¾P"Ú%¦ákúR1|EaY†¯é uÅð…úôZjøšÎ{)ÃjÚóTÃêÞ5Õð…H»Ôð…jÙÎ8›ì\tý—ùöFåøBÞÅð…B}îjøB¤©ß Õ½¹ÓðÀžJ¾ñÂðÙ jø‚²`Û&¥áË ‡¾Œªã šF©t|Mg‰å B‡õ¨iù‚/LY¾¦—bùšN'Ë"Ö…†å º‹mÙ”–/h3ס–/D̪•–¯PtÊò…È®Ž/È@¾ÉTn˜<Ü8TޝékøÅñúR:¾p?t*ìÓ"Z¾ð§»¹™Åàiú2¥kˆé Z˜¦/p‰eúš¾Æ^L_ˆô®¦/Ènf OÓ"gSÓ"ÛTÓä;K\Òô…È®ž/h~æÃJÏ"]-_-ÇÌ…Ô“•åk:PW,_ ‘¶”å+Dɲ|!b©`¯ó³%meùBÀå°|M7 ˆçkº[³,_ÀÚV–/Q—Z¾ ´â®§åk²^(Ë—i±K-_ˆ´C-_Ó G±|!2Õñ…^Ãr|!1»_“VÑr|™X|©ã ‘©†/°¼§_“«ôËñ…”ã Lú•ãË„ê]_в1s^Ž/D°0¬_y0}!b›¦ékº+FL_ÙÕô…æZËô•‘4}e$M_y˜ézjùÊHZ¾*–¯<¿´|Å5¤å+.3-_q'Êõw«\_qGËõ7½\_ñ`Êõ¯\_ñ€Óõm l_l&éúbC×›¸¾Ø ÅõÅF[®/oÖeúbÃÓ_1}ñÓ_21}ñ=ÓßU1}ñ}Ó—¿òâùb¯ ¦/öbúbç"¦/v@búŠeúbG&¦/vvbúb‡(¦/všbúò~U<_ìzÅóå½³X¾Ø‹å‹¼X¾8ˆå‹ƒ…X¾8 ˆå‹ƒŽX¾80‰å‹c—X¾8¼‰å‹C x¾8LŠé‹ã¨¸¾8ÖŠë+–æ”ë‹C¶¸¾8¬—ë‹#¿¸¾<9ÓW,*ÓsŒ2}1 ÓS1}1›Ó31}1+Ó3§0}1µÓÓ/q}1C׳8±}1ÓÛ³A±}1cÛ³J±}1óÛ³Sñ}y+¶/æ¸bûò,X\_L”ÅõÅdZ‰žp‹†IyÙ¾˜·‹í‹¹½Ø¾˜þ‹í‹%‚ؾXFˆí+Öç•í‹åˆØ¾X²ˆí‹Uø¾¼ðÛK#±}±|Û—WXåúb ¦Ü ¯ÓÄ¿«Ëãõ,âÆýÔIƒYjÎk)ÛkO±}±>ÛkX±}y™+®/VÂâúbµ,®¯X!Z®//ºÅôź\L_¬ÝÅôÅú^L_ÔÄôE@L_ÔÊõE¹A\_T$ÄõEÕB\_T6¤ÕBúË× ŽHZ¾(Ÿ”ç‹ ‹x¾bpy¾(Ôˆç‹bŽx¾bmqy¾\Ëe#±|QZËå'ñ|Q¢Óe,YiG©KL_”ÃÄôEɬ\_+p3iû¢ò&¶¯X¼]¶/×ïÄõå Ÿ˜¾VðqÒôE¡PL_ÔÅôE½Q\_Ô$ÕyÁ%êåû¢´©v —?Å÷E‰T|_”QÅøE©UŒ_”cÅøEÉVŒ_”uÅøEåWŒ_T‡ÅùEYœ_T™ËùE!Zœ_«ÅùEA[œ_½ÅùEa\œ_ÏÅùE]¬_ÔàÅúE^¬_ÔòËúE¹_¬_œë§ ÊûÅ™ñ~ùäƒX¿8?QÖ/Naˆõ‹ÓbýâTˆX¿8]"Ö/ŸQç']Äúʼn±~qòF¬_+–h¦û+¬*åþâD‘Ú¿€þr*j¤uäÒø¯?:®¶ù“\Cq¾‰´D–£ÏjAý511é$‚{SFdÛôϵ¼Û¨¼:ç§}úÒT¬£¸»œäî¢].HCujkCý¯~ô¡¯>úÍÃ…ç%löð¿þèN$QÙu&¼æ<׊`6koùƒEËã!2¶l¨»f‘}¹y¹"ÍmTù©×'ÞaÖXÖÚ2'œ$æ:to}Ù}š4¹\ õúCqáĽÝWÁU‹çáOÜ"¶MNçzŽ;bÓÇ¦ÅØ{jÛ’-Ï6ˆÆ>#b3€ûô>ôŽøb̶sñƒELÁi”_-â çI:¤ûËŒØàvøÛb¨¢Ûµ<èp Š:öbZä°EË[\Ç7B8Ûë0‹œ¶µÏ^XË>g÷a³c¹§qÆåc…E ÚoãôŠwÄWÁ ÔgDŒ'pžÞ­Y7y ‡VÇÄ-d|¸Ö[˜Úw;,S¶ õ˜Þ©ZĶ:(0tÜ[ò Üî;fïùë»Mn;m‹`N‹i;ñU[c½d‘f²Óò àŽøNö¶&÷ŠH³u»ÌE:L]°Ï]ÇR‹˜¦t±²éxnxq®ûÙ4Fœñr- FÙm#šBïˆ'ï×.ÑXýó5÷xm/¯Ù¡qٸݱ„wi‚Õ¤ElQóØ}v±£ÕÀtùÙbä“Ó¾÷Ÿ>ŒC›h挾#¾·£ 3¼è`!aŒ£k0Cëp}íË#làÛO‘ÃÚÍ9<ÂGu'÷\ðŽøƒ9UHo±‹8¯¸§oâa©Ý+DxKO£Ô¦Üƒä^/Ù—Xš,· ãûÅ.¸¼é÷ù1Ï·¼n-Fë9y;7OÙ:|vsú½bÓï¾y"‹÷¾àž/þ¶»XðXxˆCåð䨋‘ñ1‡}ßGjY{²€¡Ñh–?%,¯hÞÔøBù"g³„°û<ºŸK5ØÃ4j6>Â]’gÏwxò‡·…/üá~1¼P¼ã»‹Þxç|Ebä‘Á bÛÝ·ÖŠh÷-ŒðÆs䨽Ç_Þc[„æѪw'îÈ]Ûn}ˆuIqÇ.ÒÄÇ4ïþr´ÃhiS-Æì­±GÉë¸Yü#~ÂX}Š"…µH³ˆ7_&‘×-¯¹—=>Ÿ ¾ÜæWFtjÍÛÌÕ7ÿó‡÷_=N½‘ÔWÜÊÆ^ùäêˆ;Â^ùÌac3ߊMþð‘ Aº|¨äõlÇpÊNn3%àr¹½À1C¶M4Í3"6à¯#ÚÌf‹=lÀg¿·u¿¹¼ø[^]׊ëŠDfã ï¶6'ÅÖ°5Ÿ¸kGܪ!²°ï€ÃÐΛ_Û£bCòâ³rÃãlÂí£"‡‹NJ€×å³¥[PߨÍi³W—',c‹DÃ";GzÁvyU50(‘Ƥ4¾ÇMÖ]Œ¸<…H:âtlâYS[8¦gÍ?ådsæÏˆpoø7ËØùÞÞ!,«Ÿ9˜ù_Á 5¬|'V=ö[wxîyÝ[nÊ^—WÐÕGD|n9ÔD¬z™‹E1"¾;|§¹|êvÅ$"ÓV N®EÄÖÄ垈øfð[þ–-\”ƒˆøöðá.DåvÑa5÷ˆ˜꘬þ/Ïà̳בaË·¼Òét‚“K XÊJØŒÌ-njF¢ ~o`T–2Æ|øékê¹;Ø<Øo÷©×x`˜Þ†#—RÆ­:réMÜN¬ò£ À[~tÖuùX°¨o}tÇ3ññxks4c\y˽™Ø4޶¤cíùSÞÚ°¼ztm‘XX³e;F«í[ªlÙ%ÕEãïíáíÀR¡}èÔ÷z¸%{ú¯øbÔ|xU±‹m†¯3V§oMÞø~Î<]ﰙ͕݄­à+¿Æ;›ý;µêkãBçè¤z®TŒŽ¬_11]w¯Œô‡˜ŸìÚe›v-íVÏ–o{Þ³qö%{çsÏ´•=8vÙíî>Xãæ\ÇŠ³Ê|09OŸë‹ñæä8ëcÒ€NDzÔÇ-³P°¼ÝˆT›œµŽñQ³ù9°QRœŽ£ã\=ÊkïÈ•ƒ™ÇãÄÄ»ŽÙ㌛ãú>RcÿÀô7kUK˜|éƒyãÚ%)ÆÎ.RºÓöLK=S1·ÜLf`ïÑ=—±•Ø©G64õÒH˜†í®I=Ì);pìøg<ïØÀò!73ã¯Àó73EnÖýìΓºó@ó×1÷\q`Æ33L33aÕµæœf]š)Ø-zîxC=w5 ÔC~k.¼H“›»­fdÊÒä W sópûÕÔl»|y‘‘»‹_39âÁXbon0¦8žú[Du`®2ÿíNìÚªêÅÅ9ÛµJ`×Z$ö=°k´´E=ã¶7Ö*YËZe¸‘ëÊ*Ó*' °x±ÚªÌ}Q~¹+ϯé¤ÉìŠÖg5\‰ÐÏûÇó1àë«Ó2å¤E–“l5è#p]ô"²µÊÕ"|/OÂúÂÁ°E:#‡{h'ƒ&³k aÐdvµn¼ ·§ÂYÍnŽeœ×õnÃô@÷KX3f—¬AðŽ»„PÂÌBxò[ìg{CŠV1°Å$û>—3´½ºä1°ye£$³%o0„_åˆåBT\^±—… Â$Mmî¡À¦6·UƱ×òJ­Ý|®cFêr½Ììw'mÁc'å²’u K¥§1Δå&‰çˆ*άíhÙì}Âg‹÷}±kîW´-ˬg+ùÌ^ŸÞ£ØsÑm`'a ¦ËYÉŽÍ¥;ëTCsspšá3S<ÔÈ2áÀÔq‚žÇÙ¶Ù~/\mt“#eB[£Œq!ΆxK]ÎTMs=²ßpás`7¶ÓF¸¶Ÿ]>57ßo®¯+êU/çïÈ…5“¸"C"¶þcœáû ±×FÕ½Ë?WKù×S—³Ú£ Ë ½xg\|6ÛzHÖ&µÝ‘‘±³8`vo1«"Vjq:as*ßÙYå†`ŽÝãÕ-1Ù#öÊù]œ?ÉŠ:|,!;)Î3Áh|Fdnô¿(òwÃ9¡€íBä÷I‡³µœàð‰‰¯hGݘqçü¶˜Ùs~ÃÌ +œ'±µh+"– ¯žóÖÃôš`LÈô¸lŸ±ÁòÎù†‹äÜSæyÜÙM?f‡ºï ýUÍ õs‹Î2õ>rÞÉg¢`]héDûµ‡­Ž¹ä‡Y¯Kùrf ëÙâS6yf{AÆßŽU+¦àÒ ÓtwV/ëµÛ¤ålgha˜a±ò$UË«¹Y¶¥¼„Áf¹Saä1;ñ5ì ]oX[°çT§YX÷”½Hß«Ì÷z´‡Xc¥ÿÆ"æC9RréÞ3Ñ)­³¬*0OŸÙÛøxfb·&½»Gä™kºw×—c2b‹Efô‘“SÏ^3š{7ûÚ‘ª?»Þ>ÛÇ9Õ²Xòˆ f9¯Ï‘}±›/ÐÎ9ž¸qß6û`’¹Óm—e쩬t› ±¶ˆt¯Êص-·gÀ,MÝX«ÓFNØ#zËñeó²:çEN(æt®ÿ¬oc<ÇÈÃÛ|(÷0j¤ÎìHl`µH‘÷êÚ÷ b é»áõ®ºEB4‡—R{^ãd#}äæ„ßóIû,üYñ¤™=ä³Ùˆ½f9M¼¸#@d%ç¡™‹8±$Ó²?æŠtwrË“*FçÆòtÏ Ã÷À8{ÿXçñïÀ"ê1‚jŸq»w`éKg“¦/LÆtÄöÙ¢îírÖ”Ž;MÓóoÒ¼YÓ+ϳ¦“<§<ÏhŽÃÝþ8Ãh_…̈ñf·˜^rÀûé»Â0Ò¸‡ N§;«D®° re&mO|ôœoro9êô/ÜGÜ™sù #çë0pÛ×Ìòzx«N/Ï*Oß#æÍçéO7D‹XÃW¼-gç…_Yt^øùÉhä¤# ûC^rúÖ3PøöztÎ-’¯gkò™Í[ú¸âŒ;ßï:›î9°œ1¦º=ÀÈ­vál³}x++ FÛ½á39ý…3î(kJ<˜š5³„#6®°JÔgÙþóYÅbÛå’ú+çÑœwܲòÜÌx†9²T¶n«-öϼ4¯C}R)âoÝïÿÃfHi/¿Ù‘®xñ¨ ¡º_þº®¬÷-ûê9ãy8€¯ýQ3p—w gšrÄí9‰‹.gð˜æ—UÂËá°]t]<„¹é‘cÝî_d™!¼\®á[ÜA_Ïä}k &Ö¾|׋Lïm÷÷áZÛÞr²Ï÷r±¾Ÿßì»`{»Îv䇺·¸F¿’E¶á{LôøØÅnißýª¶šŒt é+ßaÈ^‡œ=#ÇáƒkL+Rû]—L¢’èë̵]–ÉÚ¸Îá¶ù†MûyÊpêÉ"~̿ޘό­©M÷)n¹bú^­»ü·Ÿ+Ô·á¦ä³Ç•7¦/ç¥Y;ݰ;S ì„C¦Ð|/+8vcRóHüâ™Ë*XBÑÜMŠÅ¨q'˜¿T«ÀòVsœgFÖ|o>$§|¯îtÂÒÁ–ZcJS¹Hó÷f-•S›$€âóõ_5së\¼ãÚ¢¯bÝpàqròðrLb‹Þb£quÎT§-Ê C-`ß2–H½†«=^Íw£Áºå´—¥BGlgÞÙUm}‡g$¦^=¥‚k¶¦gm“˜cF÷¿Ù°í(ÚlÎä;Ø7§ËêŠÈîû:„ÀîFÛÖSMwîðŽ‹ØÞ[†5aîäš[$G·›"ÂÕù0Øb“ée‹pšëC=^–øZxœGd{qrçúøUàˆÅ'¼Æ´çæ}Àv4£É­Â!Û®wÓö§™zÇ÷#K9>’}áœO ÛÒ©OÓ‘ÛÒ§¿·]Zš fÈsâÁ6|Üb…vO‰YvoŒØ[2fȽÁÂ÷Èu[g 0Þî±Eåž¼ØçÊ rçOóýÂŽ0Ìhùboû•o¥ï “ã_eÛk&;¼î0·ì$ÎîÎWN”˜å¸§üÊ®kXçC÷càïÚEµcË^»±ÛwgO‡Muê˜ëôU­#çWl޼eºÂ^ºÃ•]ñîû‰Æ4÷ÍÐqŽœ‚Aÿ ¥ih¿]ù—-¸öPõ9J BžYƒkšŽ6(㑬`{µP%]5“ƒ³ådŠ~V„,!Q=l£(rø˜”ñ‘ÖÒñCGcdÍ##¶ öÌéÔ‘”އqßfr¤Šœ£/䌽–µH¬ÿ<}«æX5±E¢´ö…{W-îãŠPDø5V}ã¦ÇŸ“ÈÚ¨«¯\3ÆnÞ«|‹x`Ä®©B¹X -Âk5›jÉ…±vÕ׉ Öóo[D^ ÖåkÔì’¸(‹%8}ÉÝUsÃÖ{cìMáÅLÛ÷’r ^ºQ\ÒÁ’Î$SöÁzÞJCxãF¸|dILÎÞÙöÈr óá=Güé«éšLÝõÇõu”»Ð!­\€¤‰9§ 0#ÞŸQÀLQÎBX*Øörf }b!ä•¡‹›»Çô£OoäfŠ1Òö,‚9I‚Ýùh9‘ÒŽœCçd vµ‰©ŸAbz槖ퟋq8±ÓbùiNþÀµÅ6 ":»à"ëØ5h;…óvGšï–‚yófX1ó†ˆ0Þ:Jc¯ãÍ"†© È›EÚ!·»ê·5}y³†Ý„¼YÄ ª¸#n½OΛEŽK8oÁP—œ·ŽÅ—fa ΛEÌå ·;2|'нY¤O!½Y¤ è­Hl èÍ"öÒ[6e èÍÊy»¾›A‡-âQÄ8°¶°Hoé]PowÄw‰z³ˆY’õÖQc^§ Þ,b4Í@½uìwy éÍGÒ[ÇÖRîB'éÍ"û%û8Ü‘éü™ ½Y¤5!½u¸§îp€HaÞ:¶l5jkì”Ù±ØÖØ3Áy³È.˜·¾ûÚî¼ݑ݉my³ˆí󜷎™338o10]pÞ:öÏ2„mpÞúÞÜŽŸœ7‹à"“óÖA`0.PpÞ:ŠöyçÍÈS’óÖ±7-®<9ow*IaÞ,€†ž˜·Žs7,PpÞ:ö÷ºúä¼uÈhèÉy³ìMÉyëØ'Õ`B±²¹c4Ü-~zÈ[ß7[u·ÅYBÞºÝÄ)7‹àôòÖmÞ%·¾{S”·Ž%ÚH™“òÖ¡e Ñ Ê› 8”·;BœWPÞ:ž 1çHyë $!£OÊ›E¶% ·‘Äà]AzëØÍiAzëXTnŒ´ ½ul" H’Þ,bº ½ÝG~è­›ú"œ·Ž o턃óÖAzZ—pÞ,bgœ·Þ®€€á°½¼ÀHÎ[oËQçÉy»#þv'ç­[c¾„óf‘¶„óÖ±5²óи“P‡án9…íft¨w³€™— wóÀ.p·ÜS$ánéÙ G$íˈîV€»ÕÜ-Ï/ány Iw‹«L¸[Þˆ„»åÍ ¸[ÞϤ»å=Oº[<—¢»Å³+¼[<ß»± Ý-ZIÑÝØ îm­ànÑ îm¶ànÑ® îm¿àn|=ŠíoP±Ýâ-+¶[¼‰Åv‹·µØnñFÛ-Þúb»EÏPl·è=Ší=L±Ý¢*¶[ôT5wʾ¬ØnÑßÛ-úÄb»E¿Yl7ö¬…v‹Î·ÐnÑAÚ}x‘Ý¢›/²[ µ~ …v‹!¥Ðn1ìÚ#S‘Ýbð*²[ pEv‹A°Èn1P&ÙCiÝb´-°[ŒÈvã \7ÓêÆ!¿˜n‘Ó-2‡bºErQL·H@ŠéIŠ,cb"SL·HvdYšçC‰t‹Œ)™nL¨ é9W!ݘ–%Ñ-·"ºErWD·H‹è9bÝ"#sÍ"ºE>ZD7¦¬t‹¬¶€n‘øÐ-’ãºEþ\@·È±‹èixÝ"UO¢[dóEtcÂ_@·¨ Ĉú¡€nQ[Ñ-êBºERH·¨c é¥N!Ý¢*¤[”LbˆbYUH·(½ÄõÅòLüY,áÄÃõ,â«òÓÆj±nQQÒ-ªÎBº±0-¢[Ô®Et‹úVìo¬‹èurÝ¢–.¢[ÔÛEt‹š\ìX¬Û‹èµ}Ý¢þ/¢[hEt£ŒP@7 És )¢xn!WÏ-$â¹…ìQ<·F èòI1ÝBb)¦[¨0Åt ¥¦˜n¡æÓ-Ÿbº…(TL·Ž êâRAÝB€J¨[hTu « n!uÔÍ´°"º…RVD·PÓŠèŠ[ÝB•+¢[(wEt u¯n¡ÊÊX ‹è:¢¬î¦ÖXD·#‹è’eÝBÖ,¢[HŸEt y´ˆn!¡Ñ-dV±PŠ-¤[ȵ…t I·nT}“èºpÝB;.¤›iËÅs ñ¹'!PÏ-DlñµPè.úGˆáÅs ÁÕ’ Ç€Õ”EtcÙY@·¨L èÕkÝ¢Â-¢‹àºE\@·\ š@·¨·‹è5yÝ¢n/¢[ÔöEt‹ú¿ˆn¡Ñ-t„$ºQi( [ht ½¢€n¡ih«uÝ£˜n¹(7™n!Ÿ$Ó-–bº…SL·jŠébN1ÝBð)¦[ˆBu ᨠn!.Ô-¨‚º…HUP·²dyÅ®‚ºQ+¦[®¨¦[¨jÅt å­˜n¹T;™n!àÔ-D¾¢º…XT· ‹êzbQÝBs,ª[è’j³p鲨n!oª9Ã%Тº…LZT·R‹êrkQÝB’-ª[ȶEu i·¨n¡þÕ-⢺…Š\T·Pš“êbtQÝB°.ª[z’êÂwQÝÒqT·Ћê"{QÝB‡/ª[hõEu£œŸP·ü ê“u‹‰ƒ„ºÅÜBAÝbþ¡¨n1G‘T·˜Æ(ªg: ê–&„ºÅ„IAÝbR¥¨n1ñRT·˜œ)ª[LàÕ-&yŠê–Æ”¤ºÅdÑSª[ÇLÚ%P·Ž¡Ù&ÙsÖiµñ™æ “åóöí½"ÇNÇ)n]n;"sóÿñ¡Ç³I¸Ùî.u›˜² Ô!·×Ÿyu{} ÷WBþk]/Óv¾yØ&Ó‡bçºíÜ÷Ž—««„~¾î”¼ã|¸[¯ï(¯º:²êºr{ouv-´â+/ýÕ‡üÒMLøýý­ÿýþß¿Üwâ¿~Ô.·öµloúöˆ|õÑ/žU‘ÿ⣽y+«£*"GÁ™uãrTFä¨cÚŒ­•9ÊöqZzTFä(l…Ûôì+"G#½Î>#rH2çÃÙg¤Ž:`Ùõì+"G¡ò¹ôì+"G!ºN9*#röð|¸÷‘£°›×ý¯ˆe»›=*#r9ÂrTFä(²娌ÔQÜ¡@aäf¹rPFä(ö rTFä¨Wm\[}µÝoß¿~ÔC¼; ÿ¿O¿~óן|ô“Ÿß]9¦ˆ?Á;ê´Äf:ÜýìPÞÜgõÉ×ýãK{û¤Ók­—½þyÔ?;þ‰¬ìåôàÑÆË¨ÿ>ó¿¯ ^oßÙŽí|iÛÛw»™ì×Kkþo|EÛño,’|i‡Òåß§ü{ÔáSÂK¾ñÊCöíí?r÷!Xütï°HöÎmÞ|òÙ}Éÿ¶cÛÆË7ß}ùý—ßüÖŽýÛO>ú‡ÐÎ÷Íí×°¬â댌yp£›_<= 3aÑ£ºÊ!öç÷¥lCaD²M®.GEäá(tA}êQŒ<Åk‘£äêþ/ÔÀxp¿š¶Ç‰5¨—íí'ÿòÑ;¬ÆÂ1OøÝÜ÷ýåÎðß6 Þ>ƒ½‚ýN6<8$˜_>ûææG·û9ã¼°÷>Ò!8ºîgõ÷¿ûæW¿üÕ—_}ùýp¬=ëøàësWÑÈAïñP¯Ø°šÝö¶âûówoïákûxùòíÝà·ÖîDûå‹·XuçÐ×ËoßáEØît¨¿üÜO¡_ýåó·ï0ÄÞµç}yø_Üo²ÌûŸ?GtêˆcïÛwû~½|k¿sÌmôq!LÄ÷¿Ï‡c¾“[ü ï—áå·o÷ùò}}æ—õÃ啌qgL/ßàã°5¬qÜNù>ÿ—_¿…óúÀÿó#æýjúb3‰—ߨ=Ø.4ì~×R<};FOÿSù÷7vÖ¶øyù½Fû­5×~‹qøÝ÷ü`2æ¸Æ¸¿·¾vjuÌ—þ|îT¬óÇü~Ü?†©ñ»ýµGïÒúOº¾ÿôðäjOýÏa 4¯»™Y'µËMÝü ÏûG?} ,u»¿Ì³µqûýõà›×]ÑëãýôÕÝâz×åƒßùeÞe*®øñYÜCÇ<âA?yÌ<¥ÏùmèußmÅv5ó¡ÙÈÁ½x7ãÔ¾Þ/¿'¿å«´Íyé7}¦q½¢ß¾kø¾ŸüüØôuÆ Ðv„ï°BïØýÛÿËýæÝÕáx¸™¿}‹¡ûÙü2úqFYwDø4øþÕ“ùÑÇ~‹ŸÅÚ•ýå/+ú®¢Ç>ýµÏó{¿{¸§ý]}L¯í«<àc‰~ûì$'|—üÓËû¹ÏŸžåŸÇþöéÍùR¢_?;›ïÿèµÇ/ÜïÏês?•#þ&?÷7ý$£?þ±ÿéï*?mwõÏä€z[xSæ±Þ”Gûw4¶¯ëœï\^ì_Jø]…›Û“VúùÓçûýóðË<à«§§ùíóæö»§OênCäç>z–ò„¿}þ¹/ŸÝ·_>m±Ï/?›©>ßÿ‘ÿùï%úóŒJs{Ý^'ï@sXëNOoìä~Š×òîÌÖy\¸ÁpoM‡çßhFÁ uî¾nJ9„ËÈ÷¾$Á‡ÈcšR<ö÷a½áx•ÅÜwÛæ~þhÔÆ&c÷iýÿµÌj«m¾Æ³š³7ÊϾgHÕó÷“ØÎ¾îñÊZY<·‡3ÂZÖ®—?øÙ¬í!ïÒ+ÿ<η½üêÕÉäñ?JíøïÏü³Ûu<¦lž\À3£ÃÒ;ù»Û}îó<ª5M¦.Ìe¿3Ï^h‡¦î_zz_IêûÍó[øåûR†¯­µë·ýVÿógÍßa£Ÿ¾Æ«ìà;æ¹£YJŠé<ôúàý›ï«FæiG¬»Xüæ}ïÍWúÇüó:ølø>$Ë’¿7ïÿ´Þ˜×½Ñ¾]Ç}ö_ù[ýž/x]ÛÒá=ïã«wK©ÛÕÛž¦ßvÀOÓ΄ÃÃß `Gá—ßã_óÚ¦ý6ßÕÏšï_t@|®—ÿæŸkwóù½¥²Û1NôßÅ}x•šòækK||sþØeúªTï„#î7î‹|SöÖâMÑ/û>Oâ±§»øƒ¶×‡ÆûêUÝßš_?üÌÓ÷[^ Þñ}¾¯ùLßéïü´ï3|<½'=ÙÄö¯Nü‹×ù oÐc>ÃÇrž5{8àƒÃ:ö)=Ïüí_ÿèJ)e×ðu^þª”ù16ÿ/úå·oO» hLÏ~ØvhùÖÔ_÷x½y¯é¾ç׉è'ì5¡üæ¡Hã{ZCa¿Ë+_”ïž'ýÿš7ógý&£_ÔǾùðmÅ”¨ÙžÜÖÿÈÖ„U)×uýi Mû~O>(<ÞÃÇ' Ýl;ê~îOxΗýDJ,,½Ò”Ô6_¾øæésï0nžY¼NcD°‘û¾ŠÿýK¤Ö«,ç ëï[²¿ïµý£7â¯ßâÛzŸ¼Å9X¼³Æ|'‰5Ð×}Ö{TŒoºAôòÑRP®ìÿ­²~"7~þøoB×c¾/ƒþËY¢ß,ŽvWî:7xŸâönÇ®â÷pŽà¸\èD•„€õª€ø .õ‡<àA—ªzþóúÜ¿Ê?Ë´‘~!Ñ÷Vôùÿì£Oþ³\ %_¼ïGóëõ®óp5¡ŠDb—ÿÖßûáéÝ{z4ëæ}’T~NåÂèž‹y)¢|ñôžÈýüéÕ?ªÄrOž^ÅïÞ>“tê笩òs^·µUô/äs{~n{Þ^þ1øG‰¶Œþs}îŸõf¿õÖöæÎª\NèËúÜ{îûwò`*ªÒÜÓ|ì¯ò€¿“èO%KËýBø[½ƒLÓÞ°áµñêEÿ_oæÉ®];Ù¬7yN~™c³Œ€Ý«îëAÿ°~´ë@õM 0ﯪÜaßùðzy­•‡ÜôÕcbý:©ƒGþ.þ#’º™ù¯|p¾Öc]üzr<ܱ^žO«=í—1‡»#%Q òiGVïäO߸OŸ·8éXTGýͳ.@_嚇Гø‹Œþ¤>ö9àWyÀ—OÏ]ÎòuÞâh¥÷ó}ÿô{u$*)üqÂìÉà"W¡Ýõ—oŸõŸ>{Mõ2Ÿ+Úu:2©ñ¡9‹‡±ìÿÙi=4Œ§CÙ¿{èüÐEbÙï]¥¿ºuûåÓ§+ç-ºÂ¯Ÿ¾z›~ŸÑ¿ÒÞýéëìïŸgT†©‡QèOMKôÚ¾zzŽõ¤~Z¿õ|Êèß5ù÷§ÎlêÜ׳®A~íùp>?p›~¤Ÿ€s2®7ï°½Ì#×þø!.ù?°Gÿ·endstream endobj 93 0 obj << /Filter /FlateDecode /Length 35896 >> stream xœì½Ë®eÇq&<¯§8CrÀÓy¿Lmn6¶ ôÀèå&m¹«(‹úÕýú~—X{ïSUr“bÛ–´aÈÅýµVÞâ–‘‘¿~I¯ù%áÿüï?~x÷_þ.ï—úÍ»_¿Ë³Œ×¶^Zùµ——²j}-ó¥ä¹ðû‡o_þûË÷ïÆkI©ô—ÿó.¿üÕùß¿¼K/ù.¯š_ë~éµ–×Q^>¼+¥®×=.äý»¿¿a)O<}žêi¿®§Œµ5óëâS+Í×R/„O6ëxÍý‚ý,ê~Ý%µ—¯¿{'Ÿ_£¾žOœiØõåëï¾ø›_ýö7ß~ùõ¿œå=«<^¾Êýµeðòõÿ|÷_üÙ¯¾ÌgöWÿâÿòûo¿ü_ÿÕ»³sÔùæÁ¿þö×§¹5fùâ·?ðÁ¯9•2üÉtÈO~ýeÎx²~ñÍ¿ùå·ñ,ˆâLö¡—ÏjŸG¿øû_ÿö—?¼üͯ¾ÿ_èà8¹.þ ²&ÕÃ#õ¯ß¿üÍ7ÿøÍ¯9„³y­—Óã>‡á¿ûçoóÛßà<ž¬³®/çßÖŠ{ôç?|™³¥Ü¿øæ_ýÅ+V§Î‡Ú!ª³šÝOñgßüð‹[‹ ÷³†_ 0˜úô_üå/Á¹Èë‹_üê{~ê´—wÛ/üä5iÿÍ ¯ýÅ7ßÿ“L¯}VŒrÜ=ø—¿úá˯¸¥ñË÷ï¿á³G¯¤UËËWõLMJðŸÿó/?ü+Ç:Ï3¥ç½Ñ§þú_ûá›ïñ׿øúÝßš*~ø§w鈫õÏ’SŤ ,Í9¥ôZV9uú63(êôø‡w_¼¿Ú8ãIg¾ÕÎûø!Éy’àðð§>~ àÇ}"â˜:#ULÑÏÜëu„͙ɾŽÎ9ÆÕ§>~Ë?úÃ¥ ÐØ‘ÏéØiëó½N?áãGÈI|z}ŒÀÚ?Ùë¹vgͤãáùÉ)þ‘ý;KvIïÐCõ÷þ^9Ú"èòægè^zÝG6õþ«ýì|pDc›/í(¨Z~N>8‹}$L›GWöóvº÷×¹ûÙN&ž¿ÿ‚Õcn¬ÕÝ`Lÿ®98*à(ÝÃݽ¤es€3Žƒ±çŽp„ r `B·Û§ÐñÊÙ åHЀ¬7rÔhÒ@DFz2^×…$´tLÐá¦N'ÆAæáã.¤½.|ùc™´>ª[BÎ`ÐÁÙ_·€c= ñIk’Èá5¾´eÜ$¡c#¿$5>a)0qˆ,Øi¯Uß9_\øò騇5¬†tf é%›Šžâ÷ï¾»ß>çÿß}þÿÆà=³¾y‹pz>Ø4 x~¶i&vz­7lY<³3–ƒH~ݲ9Ý•Ó æj_ÝgÉÐ]ØÏúîðöÀ„˜ëƒœu×°flû˜íšš¡ΰ)ÔÖ`Û9eÓÄ1a"æTŽ5E¤/lÝ;•õ{ë« 9>Ñ´]9È1ŸôWÿ.Øn`ÈŽ?Èi§Q3GˆuöäZ€£ŒWâí@bç†Aö¨åïhÙòÙ ©nN'®îÔ Ÿ¯u'¯ðºk+£0ýRáºñl›°=g3Ön/ñ?ÖÇe½ÜöÔ|bçèÆ›ŸÉjê6èú§€ééZrê¤_Óå©8V)7ݘRåµjÎM30…½.YMŸïí¬¥kê6^Ý¡IDzQÀÒ‡A ¦‘¤/ú)Ûtäï$hB’Zæ3óÐe©¢FMàÜÜð’b5óÐw¢jj®ÊŸ~«šòMns| Túg„é“{ŸÜûäÞ?Lî¥*ŽÞÛ>I¯dÁb"Ÿg/҇ؖþǃ,’0X»¨kGä!ö_KÈ O"¢ú™.+ vƒ‘f„~I"•tû#Z/$GØ(ôú$“òaÇL ÍVÌæù]˜s˜¥æ$›ÐbZ5¬Ašt>™1Nl7uD›nëà CÏ@ ­@ò”M—µG®&»¯Ö@:º< h×W÷HÉB ‰féEiúÄN ì Cµ–G¤¾öG Û‚»>Óèó¼oêHžÔÉè‘<¥ˆ1œ—k ÁÙùLF',\¹žp;XÜf)äƒXgpÖ²OG½ÓÀ4 !9$}†‹y/ ž•)£‰XG—Yx Ï9‘eB¤×P"÷æ{òÉÛw>h[”»W„–à-ØmØdã/qÃ:œ[=}öÔîΞ>ïy¾4çñÌwYÞ5f쯰tÍÍjºÉ–œ«7Ì‘åg†\’‡L¼U>rMT[cgÙ·Ê!7ož†›êáħɸ^»iîä±›RÿFGƒ½¿ža ƒ˜¶Æ’ 䙑³»—ðZ±ß¶¸Ó8FмÅ!uñ¸÷šã|æ,„ßfà±BÄîÙr͠„ rôss™ÖbŸê!‰­|ùKEÛðÎGgUÒÏ èÎ! ™ äÍÐDhn¾¼á9šº÷—ƪyòÔ“§ž<õ3òÔÖufX <<ŒÒDDÞUëùÁYEP”ó댗æÈùÙôVeÄɈ6Bô‡µ)³د¶­É>H¡öÚ³LÙ£+¿ûÃÂGgXo_âˆ2Vü E摌Ù2<ÑrrœöCèÕ®I8´1ùÊÆ‘ îu\½ÃÙ"€"b>@§p­Øif7!éñDÁ-pðA–Œáƒp'Ö+‹ß¢“ò Y¾çR°Up5>éº>H“i~úUÒ£;“>òƒ ô©°L2µ»9O²äO?÷»ÙòÜKNÌÅéÖÒúnÖ’¦w Ôì2´¾£ÒÜDlMSOSÒ^ýR‚à%àµëÜZı¥‰¦†ÍAè.&âYƾ]^×,úX]ÈT㈞d[+Hòl K¢ÏÃÈuÍÅBÝѤ)5Jô$1ªHÑ+q$È = 8õ&Õ¹ŠíÕLÍ"š[?Êv3ÑÕ²ÜÊ5ÄéhÀKS€ÜÇI9›ÒÃmâŽbÙUH’qÜ®ùWg¤Ÿˆ˜ÛáüÏ^F?Ó É0*!E*Ú& Zʯš¹´Eõ *}1Ÿ&¼ýy‘öOðšàá$íÍóih¢ç [‰]ô“g<ðÄÙ{ˆK.¾9;–ÚÅ[ÜHI¡M~Ç1ûE,Z ™±åø:HéŽ%§ÑAè£8H~«€Ë(2ÔŸ¼ÝŸÑ<áy'‘Ý៪ïÊ!׎àȼ–(äH0  $øÃ@M_FÀ€nãïloèFª½šÿ2dš„iÉp 2B}Dõ°Ïè$"ô—!öh56¹¸‰ ²Vcvoiyì¶>)ðŸ‹üG¾Èy ß¾ôAÈàK[>"”nuÊO oÕ~uî[îvÒÕÒÔxy|$]³îÏ”¥=5ª6DÇö@¸ž¥ËyΑ'>Så´%‚–J¾>\ézA$ôh1¥œ®#bw4C²c$¸2|¢É µÃâ;v¬/tÎAÈ Ì Dì~ pS} ¥ÃNé"7j„ A’BŠ<$[*ÚÃN­iceÊvÔ Éã,{1!Œ"™:Ž Ól¾Õcõ63:ö’e;"`¼Ä!ÝA6ÆÜiòW'¾äÈ̓hõ`ßÕX*XxYª)ÑeÑiÏYñ4£—8´;ÈzåKŽ#¥¶/IVhjµÃÂË¡ò6¿RÂPÁݾ³U²„ ¼ÚËYfL0.ô±vEˆ>3W(SöJ%4=g|ΰÆ©Â¼Rs   X‰V®‰;r6yÙ±«ZÂ,áâΖ),ö÷š*œyÈaÁü¾Cà;h/Ù‡“1YZ@ì €5æjá>ï{Ü6D𥥄»g{àj î"ÄtÊÌŸ:»‚µ,?ÂØ`®A˜®Œ©ãÂÙÜ>r:ÅRê­cð/·m×!W H¢i c˜«ÉÆ5ŒNP–-¹±ÅÊ6ä³Xa )Z«5cºf3=ưp”ÙÄ Ä$ÿ‘]®]E5C‰Á1b²Â®AÄYîbÌî}OåìkW…â7Kºø!`’\¶Ú#ªfaâ¦&Efºµ½HIëÚ·Qû–mö51î KîA"ÓâÏü²5‘Õþ(¡fG‘å@ÔzÇ 9 4îP!çu9±ìù¶%äaZïÔÂ}œ´nªóÌêÖùædÆ3ÀŒZh_Ž:¹îÒëÀŠô“öÓS—>uéS—>uéS—>uéS—þºôñt°Æ€Ý'.Z„O‰DˆœyAˆ•DÐ0Ïk³üT0ùùÕIõˆíê#½á áœvœÎòÔšH!“òQ•ïþàzüñÙß›—89×yí¦t̘Ï` Ñ¡e)ôé8ƒ–1ч¸‡Ð©é˜Z}Õ ºX)ÜR;áTZn(ÞDæ3K2¶÷a`ÛÃÙ»ç¦ïôÞà#:H±äëÂAœúá :á@@d÷w]:é´ ©Ñq®Šîô`§Þx‹¡ã¥Ì¼Þ¼ÞgtÃÏt,w*Å`½É“Ž N9‹+ƒS:ÂðC’xÅÒ‹­WÞ¡8ˆf«êlÑ¢îìH¾2}èq RMÅÓ°ƒÓl«Ù^å[ǽ̤¾”­u™É’ð¨Fá¬hðŠÎ!x™ÓH¡¤¢¦K¢/a²Ym#ûE"aϼBdøZ4D–Ÿ©ZÍY­z–½Á{£¥·þˆLjÈ{Dö»ïÀÙŸ&’#¨ÁRé6†ú}¾hËb”Zʶy½›ˆÜô òÔ3‘ŒT­Ë™¿x&ƒõ9é2«ÚÚ"ȃÈ0hKÇX<ÙÄmé,ë+¡Û–,+ Ùß©&¿©⃸-"NF·jS¶,²û™AÃ5íèk’œ©Sˆœ² uQAÃ,,±ƒÈ«1SÂtßð:fÓ¦i€èdQiÃY˜8O‚ ©îôð‚6ÈLòbH·NâòlÄÝéÁ‹ ·%-d\#ï ÷pòè$ ´>/韂ò)(Ÿ‚ò)(Ÿ‚òó‚òñ,ùÍ €$îIˆ¨U8BH±uÜ:]&ˆ¶y/D2ÜU ÚiDþšTcs„$p{jò ™7ð‘¢K¹ð¼”Ûwu‡KŠíø”røÓèÇgŠo^ú „·„O õPÉA}]šØ"ÕGÀWÇï~×?~&WÝ ¹5•}CùÖœ‚ï0ΤåmfB¹ðœº„eSºØXƒT¯…37§ uVå<Ý•Ìuj¼^Rc- û†ð{óvha?_##‰t¾tµ¯N;ÈÚ!E!AðxV°î‘h¹†4ª_ö*Ìçƒþ-ß“¢P Pì·…Üh|)[@¶ tÇ×å$}€«mDW˜wBŒž=:3sfOj›¼@uÝ< yy€bwdêFgf¶§År÷ éB(›ZÙ¡s$¿²bý%ã2½‡øÎ®y º@±‹¸ç!DNE¨œÁ7…jS-ty\º«~Z—lꛃ[hÐå¸F¹+ulfMUˆ­Äxq"ÕÊIº„äÐ×ë4Òõ†w™fæå1]Èa’ßR<}7„÷ᅵéh½k\þáûþ!¥äÃàøhÃÄ!ĺŸŠ^hÍ™¶¶†ª†Ñ[HvDC-µûué•‘wwk×^ëæàýú÷ ôJÇ5éÈ6[¥§N´F'?Kä˜m»µ|‘lot˜’¬%J`ñr馣ãiï%î°!ÚÉÎQ›É[²²dɱ€½R¯™’ZÞOQª¦k‡5–%¯oËÒ­);ÆRÌ7“·s ]J`\·U¥(š?õèS>õèS>õèSþ4=úx–ˆLijwå FuúôjO®J+€Â%Q±Ê·¶ ²Å‰(‰À“×tÃÓ¿ ~wM..Ò‚êyér’ùmæFÞ6Hµµ³Išrñäu0BoÖAºµãG%¾û“ùÇg›o^ú „/íaW&rá5tð°†îjð®4€mûhÉñÝvÊޏ`MîAØ‘?£ÙÛ‡5D÷Ș'¤Çœãæ6TGšvê2‡_/KÞ·£“M^ pÍMc™ƒ $Õ£©öñKÌìwk¶šeÂ{üŒÖaç«7U³¾³Ë8Üt§µƒ³l}§ºõ’,ûpa>¡‡%[½,¤ØÓŠKÁ´ÙJñ¹2ï¾Uc…>¯ƒøúyA®Ígº¥Ö*]6[év[®m Çl õåaq2•‚D”™]Њf©†â[â°¼.¾®_zÖVY6Š‘{“Š8%-:¼ë<_ɼøî;©´!rÛ#/ÊlH{|…‰‰xaÍpµ `î%MV¦¹‰]V2üL—ÅV¦WœùašfFúe*/Ù¡Sº‡3¼Œ,ÑIQ*š‚Œ6Ô[Ø«4! ​¹ýR•Æ.ÕçAH°D!BFZ…“¿”9m—œ“ IÖÊÙ‰TBM4:ýH•ÁsèØ@‘zÎ#¦bÒ';h÷2‡L«´6‡›ÎÎVs©½ òϨÃ2|ÈœÝoÙFšGuoÐ !/#E³ž†Ý¾sØäMA×s$#Õñ³o™E‡~6ûÇ šY”\ØÓ›'T>©þŒº (f’øV‹ÆaÎ(Ú`ÍN«ðɰDvòW´a²èˆžé橉˂íN7èYÚc_ÌWäW(=D-´,qfOÖTä/Ò?˜ŽH½Å˜ ä ¿xç,|ø,öf+ð7Xxé¢{g™s ¤ñ™bÅÛ (±~ÍhßiWÀZ…®‘ŃMDºe V*’ëR0Ý Ž ´$•XLÈL¦^]AÏ´qÃVµÄJBÑ%h‰¹ƒÚ¨×[qÀ&ÚÊlbªAK¸uÄ¢­7Ħ÷Ëе‡T¾Õl=ƒ‹ >XýEm åÇG~ÖÌ™µ‘Fð+$ r+-ó´v]T#øžÝTÉŠDÁ-}wºÂ DYùÂΔ¸l ”øVõÖrª£7%Ž-!Ë2¿“c­V‡¾A$Ò¬€î!6±Yg"XSÃÎqe™Y¿º)NhîL«ãÒ[’,Ö›(òn†2h¤£¡/²3ð–ðEæ¬i%“5¡9nÓ!¥ùU\jè.lcˆí—7È÷cTh#æ˜uhÒ^šÊ %2Vhää·lŽfFpÅ:ZºÛȱ"¤“kv°Ž1úÝ<Ëg˜¤-D”š¢•¿šúº[BlðÕlªˆX4× ú̆ÌDPNõ[CRzцД´-¾½ þª¢ÑlC§x¤cûSFÿÓÖ}ÚºO[÷ië>mݧ­û´uŸ¶îÓÖ}ÚºŒ¶îc„á›>Èä„ÃR¹¬H ©üý‰~÷3~ëm”Ü›—>ÈÒíSb ŒÖ¥¯Õª¢ŽòKœ@:Öu/rÂðÆÌ†_EÚ¸‡|ð”þ-$ $19¸E!ì¨ã”¤ô½ö ä4D4úË:¯BßÍF±Ò –|»\ù”(èi„ÊRJ$»Ns»Ž²(½ð±Am÷u0Bº'Ú2 âÙ ¡L‘Bé:Ô@†õ ‘.\Á5×áHŠŸw§'ŸZáïžKúǶ¤g‡5CÙ•û¢ç7Ä—´‰@(Ζ»Nk9›ïªÁzÏæƒÍƒ@i K·€e;›ï½Á„϶¥ƒ+ ùv Ý¢Ýþ쾈J½é]wtÀ» VÅøA´Ç„M4K  bØä<±?ˆö×°w8»Ñi7ì­"#/ŸñáìA O ±(~Fó†ÁÕE–Œ™ª·JÖgÕÔ¬ËÿmƵ‡šu‹¶¹ÁûO”Ÿÿî¹^PëõÑ9íÛ—°|©k Ó×É+KUaNç”*®(LÕÙøÒF²ªZƒË£&¹ð ðÖTƒQ« Õ&â´»5)uos…"¤†æâD˜@¡¡.‰GÉ ë †/íªšÖUàÆø2¹âËW¤*ª™L#Ëð:V£q<…x¥Î÷EÇi©¥í›µK6Éǵ2a¨E¢œ&gxgm#+ïar¶òŒTܸYC€ˆ–Ÿš¡g}Iô‘¡-«=ü•¥‰r%Ý?#Cÿö™¾E|»D-Ó…T?ÓEjÛW…â!RßU^nYBD¯¸ÜÒº¦j«/ù)ˆ4#ÓË´c š‚À€T}¹i»Šuš\ÕËZÜí·’Öiùz|u~n’„9¼ÉQËw‰ªë˜²ü’"ú@ŽC®¬ûÒ¸ë :hØ«R¶h/ɯI™4ÈU_) ¯d?ã¦çˆ!úFàtj©h‡ ¶¬~‰W‚Èïæ’Ì–Wo2S Pn›r/[²3ªäOõ[C+3ºöו«|Ëh*¿¯-Y7r œ®‘ƒ(rÕêõTå€o@õQ8ŠîÔD(E»« UD+Áž‚;à ‘å·¢ëD=L[c×åG#”´Íñ·Õ…V¨@,ÒŸ5Çß|Æñ·DH¹-ù§%úª+ùBFŒëBžuûNuWuVþƒ¸P «„ö€íò,óõG~Hf_{\\ž³É,%h;'é¡’‚ï³ü]3ïkµ²ˆ;«>1‹r{ãÈÂgòµ¾8öŽ4€)W¦ ¶ÝL[.p™<͘¼l¶Oײü03µ×YŽ¢i½P’V2eójáu½8r±"Vªcl§æ¯.!p§ÈÐñK‹ãÇ#šÏNÅøï ŽÆðª>£†>Ü#€ÑÃ`ãž.ÿ¤÷>¾ÿöæ%)dG S¿»ùñÞc\Æ›âHÄwŸiúG¿÷qÄÅ›—ü$(8pã16Ìg"|l­ŠÄb f È®5pà&€7(Ñc@‘¸[9ŽºÖ3Qm êÛ Xä]Çw­Ÿ‰é˜"½z ȯ0fDß ÿ¤:\uT†Â¤;À`TV ;HDß °èÌŒc÷q¶EÈLõèï´WÙY#†âÕ:ÔšnJªÒØãªN5*ãúˆ«ž¬ÄÏ\mÊ¥E¤©a¼Z‡BR ë‘wê#Mpñì¸b:Öaž)iôqÅuŽÂTp:I‰ä†ë}C'Š]D¶ÏÄžRP–/ŽÌ=s§Öò;,¬Õ¡µl0‹oQhàHŒ`ë0fS5]DüR#ñA×黉{qË$(´å眊ˆ~àÀHW¿„8Å£Ó4ÃÐV·¾™•Žˆ¿ÂM½€‹¡4¦Âì2®ÂxDŠeD|Í|Ñ9 ˜1Y×ärº¦öÈš ]3Ÿ<Ë&âíH ùtƒÉ$jD|ã^b®K\Œ§ûˆ~òò:ÖÖYtdÎåW ®Ò—% qÖE¿Š"c¦’s‚ö|m¿3césù™ÁŒîØtPAµÇQÕEø¾KßéG#sHfË F¤4 `Q]Þ÷ÊzȨxÃÌâSgŸÖn™¼ìejJ ~·xoŒ‡¤Lˆ„žÊd ;ÛG›r–C´DZ-˜Wã•–-E”3M°ä"„˜“€"Ή"+"¥Hô¥HîPyeáHË3FFO²÷ai u2³zŽÇ­-e #Ôb ø<áÈ‘aµB!…sJm?fïB(IzDe;(ô˜ç¯ªBå¸"«nH”¼!Qé’ŸAÛ-ê©]M5G£{È=áL«Uõ(¡æ5.p ]w ¼Fìå59W¸Êïj7 'Ì:ʾ‹:d}­±X¤~Txر T%ÂÞ@‰ÏÔ+1ˆJTB¶G[JôÙnQæÌ¯í‘ãƒÉÏ;d»3R6O!|%£ƒ¹ErÕÖ¤$sä_UtÏ"‹«’‰tˆvÓI[bòtkzK#¦È öDVÿ‚%÷ÙD:¤½×SI9RƒCº’ïCDÆ¥Ã)r B ,~9…Ô”îü³¯ ñJ# %¹8èÂïÐóJé‘ „üÃ<ô=\סËcØ¡E"/½RëöÙ&!hgâ´ “>íMc!9Ut ï+¡íä†ë 1çS2@¹Tt8ô“sÿ.V×!2CÁhŒ92Ì,FB1!-% éá°§2Ó¨.Dþþ$SQÝ#tßY³rßúæÚßuð,Gš÷cÀ’­ûazo3â¨Ã“eÍOêî‚-ŠÙï'¤Ù–eË${P±x$ð­Ö•0Ú²¹ÃyRˆ-ß“Šß—¢•Iå‚Ì!Ú³ÞŒU*• Ó‚ãm½6mq .³XH„åCX¢Ú-æÄÝ©,K$“‚"¶KHIÎÃL§®*.É ¹ òÔ´Ëøç—ýJ K"36Eƒº"ϱÏà׸e„s\¯–¨$(Á{ „*ºÆ æJzÜA—@¸W‚:p?Õ"ºˆÔcùo›Ææõã.öýïØñ=·jïŸ[µçVí¹U{nÕž[µçVí¹U{nÕž[µçVí¹U{ÿܪý'Ùª=ÞD¡I\$Éñ„R‚¦Ã³ú¢Z> s§®Ri‰Å[ºwýó}ëí½²7/éÃø9c†Šš“8à Ur:BU`)Ju2jy’‰8óH-ªKܰt­ÂPÔž%°͆•SÄj‰rD­8Hª¨®Q#µ !ÊpÁ5õw˜Ï¦a¡ˆÄ:¦D–cxPë”RÝ™Œ*ê¡ ÉWë…Ñ8JO@ù?`:M#Ž‹:ZOa (ÆÊQõkœSéÙa“yJ§2µÐnÐ?™®kq"slÕ=òɢ͡?¬|ícDXªÐ."]1,TË—†C’‹þ«ÁöTdnQºö¡ 옕é [‘@ÅiàiÓj”#)þjF˜Êï2FËÓ§‚hÔk"L¿Ó`<+*U~z3tû ÑP‹)GLmâ16å¶§Q®gÚpd•ü¤;ú*æáHNðw(-+ˆkŽ‹}¶½¦Ó!UÔfe¤Ïަ‹•ýˆ0å×Ã[EQo@$!Í‹HŽš<3L™Z¨Ao¥t[6ÔÁ‚ý§B1„¥ÉA,J’˜˜5ž´_BLHyÄJ9l³ ‚Ñ‹¥À¸’«(EÇhÍ$Sê nJ¹€ Ò´ Q`JIt‘¶´THeê󬧦¶Çµr"ˆú…’ádßq1}¢û‡ì¡1 ò8‚êЂP/sY÷3¼ 8qÇãÝÌ›3.ð"2‹£ïÎjéV‚CEuöì/' ì^â¶„Y–€qôÔ]h »^5u$™¨9[TEYx.Vsž¶ŠÒñÛòÎ7žW—€i5byõdƒŽÆ™Û‡¢uŽ@(%늠¡U´Äȳ0ah!Â65ôEGEý ò39bß ›ªV¡ø(v;á|;ˆ0®±´?Z´A¨àj $SYñ\€Húþ¥<â¾z|8rßÝGTÜCÿ 6‹Ö乚å’Ñr{NO {¦P3pŒâÃc_R’ 7qV`™´Ú°ÏÜ%äæ`%¨lŠ ©ù 0gÑ$4.á`ÿÚZHq(ö·ÛH#³é5”ÁîBJè‹ÁîÕPã¨ÏBt3¢Tz‰ˆÃ ¼-Cˆä ÔWw\X‡ò¡GñiI8jmdŒØm5 G""Zhåî·®^d¡qXÙºÆ [O(HÑ„¬FBŸšÁjD%hXj¡‡±±½¶X:¥+©qi"¢HX5»hÍ Ðú"Y˜P]Ó$ìgºI0‡r¬ÏÀÊ}ÈdM*ö·LŠ“n÷eÌõ-bO¶$‹¦t†€QX³˜&ÌDݪWù3ºx„m*88Å›îÞÜ"Òå”2´b;Ÿ¹Fñ6tµ/€¤°Ù]EÇkÅ|ªœ(N¿ÌnöîI˜æ$éÔ÷2ßë’l3)-ux÷Xð¥,‘ݽÑ}HÑì G’jO)Æ­€nJãØ1é$¶›ÚJ߇ŽÛþ'ó-'$Ò¥Z `YØÝÊç‡zì¼ÏBÑíä½ía»öÝ»çþì¹?{îÏžû³çþì¹?{îÏžû³çþì¹?{îÏžû³çþì?Ãþìñnë›îÏè²Óâv‹÷£ßûønë›—â3ûùñÞ›:’[ñŠ(êš23ý>"ï•¡?òÝO|ï5 çg`ðã›ÿÌ{ork?¾ðæNÏýo4ýýÞ'²f?¾ŸA tŸF°bÐsÔ¤‚ º®$(@PòÀŽ<ÈàWDh”„×VØI)‘sy)&åt1½(§«Ø­… (ÔÒu1–Å€Ù^¢z낃(ªœkS£$6+H áH*rGÉ ŽÎÏTEÒÔ(‰ $ó-o]°þÐ[Ó%’…+…3­å©j-ªÙ8À1Uãd¢øƒ8/ìAЗU¿Q.!ʈ¨r¡Ÿ©ÐRD@ºil©ñ‘^"ãýtÄÎÙ¡8ÍôT\ #ª4îáÎDÚ˜‚j‹_¾:ýIÄs‘zó¥@UÐÌHWºh £L®:ƒJàø]¤Ù˜›ä0®©êŠÕ¥ñ"€U:Ô¾ç®W-ÓðÌ›Ô{¤Øu¹£•ïº@miÈcDêý³¯Z|fÆ[W4шúíÈ@¯Í ðÆP³³@±vÈ ¾8A7â4¸@“rñ~©yH7„‰EÉÑÑ8‹cÌn_.нk½t­ÒX‘œ¼˜ÙǼ )^–ÀlÜ@Ý¢-Da|(}0ýŒÙ?wϹ~),—Æ™¾š³‡±X¨Ï …ªW‡h§D…Z%¯ ɸ@Rêž¾ùÍS Éù¢”iÑœe.juYŒÍL\¤q…Á> @º;{(VLAÇïUÛ(›yºŸ©’+½DAšÍÖÉ“XK£šO]µ’R¬¬ßkk"rü^%:Ȥ‡›…Vv|Bb-ý ¾fÊ6Œ§]í®&Ωû*²T5uuFµ¢Ð<¤»’-òZþX¬¿Ò½K$)p±FQp¤ßšKòÖ¥J¦§·DSs‰~‘bÂXÌÒ ê(ý.t4§¢&‘|k‚¯©•ˆT)×QR8*¢¶á‡s½Š¶âT+wˆ“[ܾ“¢"y4•œ1èÖ›Ô¢\Í¥Ð^× R6ÝAl‹ô+DŽž:H(J&4#Ò£ÏT‰í¶ÛµV‰ªÍ¹’T&p "ˆÅkˆ Û×’o Qƒ TÑ"½ )§ð-;[Io ü)¢¬ÌAr” Â<É¢„×A¢r(ʱÍe¾6ÓɤǜnVì:H‹’X›UnR¢ b"›]dËÊ7Rôe+˜º…Ñ¥h‘[é2E"·eÉ $8Åv’SŽT¾ÔPøw5T@Rhwr„Qb5›¢’!ÒTÙ p†Øã'RH½œÕì‘VQ„FÁô@\"Kêµ~Õ|Ën§ßJÇI«±u¥d,¹†X$¸]Ñí åRƒý‰ZlP,m ‰úwÐòšH¦u!5gЇån.Ks¨²üý;LIÄZ®%­[JbPºs?ti F Ê„÷£lSäÚGh¦{.w³Õ&~?£êûaÖ;ËWper˜#c ˆ²“—Vî¸óHÀ• UeDcí9d´ÜÈH¥5DiFúk¾§Å1ÄÉ㚇±4Èq r(ܹá/6"XMÆÐgg1K^ÝŒ¸%¹¼Ñ”!Üâ`€Æ'©f¶›uJ{©ÍkéÀöMÌê6£®¨Â²´±€ÐÛ8‹fWûnyÖÕ:™äS˜ÿºÖÖ…¿° 9gN„ÏA¢0ìrÝÍ‚¸t©'hÙb‰êg¸‘€Ð­×fZµí[K¼Û@á=w ÐÅðýÚ÷pS“òµÛðÆ'Õ ïR³Ãö‰FUdÓºm±`'Í@´ K±ž?zGüÜÐ=7tÐ-Ï ÝsC÷ÜÐ=7tÏ ÝsC빡³{nèªynèÞ¿{nèþslèÞTÌL?uóöé‡÷JQŽ®\Èw?ñ½OUü÷nþ–õù?fäéw6;ª*âð½Û•p±½¥µ&S–©€h±2iàA¦pŠÌCI‘Á;Iù¥ˆºBA{Å®¡J åá߆äÈ"Ò"ŽucðáÜ£rÁæ¾â ãJ\nÑ›#Z µe(JÒOfˆiåÖŒRG4ÔÙðU\šßmíR"Žy×…ÌÈ&¿=ì²#GþR¶‹VÓ]Bw²–¨yÁr4¨Q#d ?õj|)›D«#†½”ÿ¢ÕGš‚AÔuå O²òpw]_ž6AZŠâ¶”œ¾<••¥5?¨YƒŸ2Š‚54®ÈNT¬¡’jý*s“$B[Äh"?gî6ß® Räô§i—ƒŸ©ZWi”ƒ™¼‰L¿•èrh=Eñ‚î)Fb5Þµ{l=G¦ý®í WEèÕÏ5ø[â2ØR¡õ~-z¿„(¦&µ¡qÝ!Mzé)Ü€ß#ÌlÿåjýÖºÊÖÜ÷°Ú½¢2ýýýHk)ßf£&ÍámÆÊKßfµ Ùv·™Gª‡‡Å)ž°Û–,¢¼Ö¸¸¥ähé"•£xJ²´¡ rî’nRæ È[?H—…Òê M¦eH´ƒTë”xüI37DâAЏ<ÄæA²•›­' ´W,}DJùÖNÒ#!ÄË^[†Zz"w("ð…¶ˆ@>È’±N!@ 0Ô¨PMy‚_Úë‰}7Ä‚wß)6¨¢­ kç¡;~ßrßåª@÷»aÕé¢bèuE±ó˜žª¨l# Ó:÷Ešå:£ˆ{¬DÅ y¿Zu:®öZÑ:‹ñXò:³ýAul'U Ò©cÙ òª0îó= Öˆê½È´ŽHu¤\‡çð"÷:œ\äb‰ŠK¿g›ŠýN½g­ÚG+2ûÕÞ£üŠY´‰í@fãÚKT÷1«×ž£›ÅAíW-.‹ŒÚv”„ʼ¾sÒÓ¢§¶éò>™~ƒŒ¸“8€óÉ\2®¶ep,¸Œ”EemQüšÒ”Žjb¸,w,”k»ŠÇUºŠrÕQ«YÃl×0­€ä%Qá*~P$@¼XV6@¢Öš($$ç]­+J5Y±Ý#R~÷ˆä=²_çÇ­gï·.¾ë õõÝ àcȵ޿› ÛwfûánRmcÜM¼íÛÚØT¹[>[3wK<“Wë"[Ew¤bËéFMˆ™^÷ôfãëŽ$m Ý‘­¸;Ò¶¡wGþ6ïXÄãÙ¨¼c5žwì(ÛôŽcm¾ÞqµMÜ;η|'l*_ä2§ëèwÅ縓D—Y~I«°Ü/vYö—л¬ÿK0!¡„ð¼v—€½6—¾6#— ¾6,—0¿65—À¿6>—R¸6G—â¸öO—r¹öX—ºmÃbo;µˆtÿ}¶ŽÏ=ßsÏ÷Üó½{îùž{>!Ï=ßsÏ÷Üó=÷|—pzîùž{¾çžï¹çûƒÛó=ÞHEÍö#îFV|ß!Çz:H‹H®ÁbÔ6€´ dEèÏàyôÈŠŽ0ræü Ù¦ÃÄíx|§E.h Gü¤G|Õ`ÍèƒDæg •ÈŽè›Aãuäž®/3”é N;=Ï€—P&^]F8€HÒ>;‹§dFQ§ 9ÈŽ0­N™82ªÖ«m„t`œ£Øòš|1EåÒcœ™Ž¶˜=k#õ£T=Þ˜‘ó•ê+‘ìà…ÙÜ»K¹ÏF%xHqÚõ•HC`íz‘”¥ëÑÛÉ™Q¹~£{3ò@Ϻ5y¨À-€•ò‹8ö ¤ _@ƒ¦ÎB„—üò‚ —á&‰A,€RöäŠâ<¬d?…xê Ãò‚ÈžC){rEQTï%9®y=Ã} G½%¦‡ Bgù“øŸÄÿ§Iüçxóx!s¿3nÇK‡ˆVÅÍŒ“#b2B  Gµ½™@YôU…h‹6f…Ô[ÿö#BçÀÒ@ D´!c¡ òЖ>q‰Ÿ»£ O󘪟颣k²P¬g{&\Pa3 'Ïgm®‚Ä*ñL¯¦ÓàŸ‡9çëÊÁ¿›HІm,ä=9²“Tâ!?Äå«S»D[Ú?¢Æé²%¨úÕ‹(Ôu§ ®Šˆᮚ„îš³Š¶æUæ`2+ùÅõ `¿V1™¶³(\v~U#ÛÙœâKC™!5í¬à­c ¹¶"î«D€Wa¸3cÄ* Ö¢ñ#¾^¢F‘ƒHvF&Å1ŸÁÏ!ŽL“d¼¦¡3måž‹v!Z¾—Ȇ¶Æ½ød~4 X?âÙìQ6H² ®~¦jµQægÂA¶ƒìE‚£]å(z¡liÅR@Ò-®±š¥ò „Ÿ‰W²xÕF ?íɱ”ñ®(=|µ,ß@¹Z.Wa‘è]i>V¡DÎâRHQ¿®W-Þø@ÈÛÙ7>®éÌ=*ctž#¤v&Ï:ÈUc¥wI¬|›+z²FNë¢ ŠÉƒÌ‹&–¤2øõ ¬ ªNWÙ•‘¤ÏS‰Ú~#ÉJðT±sM¸¨ú p`#᪃9¶(Á LG6°‹qÅ¡>c§cŠDˆxR¢ˆÊP±‡²(™ÌÓ7°Ïr¥>l5¹[ƒãñ•5c.&݇[¼r£àw’ “É‚¶…ë’>ÐcØ:šˆ“šñÊ,T·Øozú–DjZÙª²p°©º˜Vg`'ë:K‚.éê†ÅîÀÏeE ÑÜ”ÏÛyOÝöÔmOÝöÔmOÝöÔmLºí1ÇÚãó(~¼Y¢õ Óõ=]—ˆË oÔ8™]€vó¼—Ȱ2bFi"*9 €ÝIÚˆj&*Tx³}5á†Ò=óà Y*ïǿwífLÝw-ó"Ô]÷¡ì˸"vÈiÝOÃ,t ÜÍláõ­L‘î¼îª^Pâªúžg•óˆjÂbÛÏ5\9ÜGUûuЋJ@ÏÚM/qÏŽJ·ßË ¡¶zØ-™XGØ ­˜X§¥2Ü“ßY—Û¤‹IåŽ/·Iïb%ß:lò:€}yöÈyÌú®á6éÌ¢ >þ$~÷¤½'íýÑÞǹïßø #{¿G8U;œÏ€ÜH¥µõæ?ê–Ê?%_T…ó“N*—Wui—[•×ä©n}­»/ùô’µ¸bÓ¾\ÅöÖæd Œ]éþðAÛç‹2åöùÚ/œ#ÛÁå;ÎQÓóò/çëšÿàmóc®dŸÙ¡™YjøL×}¨2Ï@è`,‘‰âò‰£ÐûD~óÛ |ëŸϵúY«ÇSÃ:˜= ýó™B`P—ëÆ;p;’=ç ù\¢„(‰âjçÅ‹Ä%YŸ ävÖRÁŽ™œ%²pî<‰¸p‘‚î,×8³äiÖ hFfÍ'N´º³U½¤àÌôÈlÊnЉ¸‡SÿI|©;NÓ1yeK¾Ú™Mü ‘¸gðØ'”½½ûÄ9=äeMÙÛ œîc›XS\3Fª¦¸ý[UDü ÝF7â° ¨iÚ6F¬Awœ²0ùámå¨lèjÎÞ# Ss1mUU¸=HõÎá˜Ázh]ìZ+Z™.jÕôÔ)*ª dzk[+/Ðd™¥kMšŒ¼•˜§&X5j¼0AmjÑ8Ë5┃ÄÍcü ê®^ =І€¸9}åÌ$,sÓ6ÅÔ“ÞŸôþ'CïŸ >¾êÏt›‘óÃ…EXe2b† ×k¹5¸(J´fúLˆH byÒâõ—#c`¤éêmX,ýÉTãüŒÆ¬ »“0«)¯&<Ö¶lf!’ý ã“8l±«!¢$ð¯K3.êŒ.D¨°½rJѾ-Cˆ_T¼\íæ—h5“D8NV;-¼õ@D»ÔLÈC¤'Þ@¡ìðöÒ)‹‚‹Éj:_ãÆÉ|'È‚) u#ÿè¥!*?ä‰z\$’I'Pb1õÊ_„‚\¼9P˜¢˜ÁµÍ*ƒI„(D]¨oÁ©H‘ü5ºHL)rt *%ë%pJF"Wki, ®º ÙæÉèÜQþu¿T_ hö:3Q„–H–”•-UÉHIì1v¦õ /BgÒ!Jt‰Y” Á!õMk¹¬¨<çmKÌN¡*¨ ¶©<\²‹Èä#Íè3Åñ@@²EÂûú9"$ý†Df Ÿ(ÒûÃg‡ôoM\ÝCu¸ykÒC'ݦåÊ”ƒ¹ÃK±€@ÅJ¤SLtþ5v1'm_ë‚A ²[ 0ÃQe­\K‹Þ´£ê”)Vá jÚ£/j ºÂ¹ª¬y¥:CCÊËx;6ëC SV× /˜ ¡V›Ÿ²Cž‚ø)ˆŸ‚ø)ˆŸ‚ø?P?žº<<þA\B ªÅ>`pRç#)æTk¹&‚©”åÍ$XòÅд?Á’s Zº÷0$ ô¼¸¨!Å—þÁfIT´Å±(eÀè¥\Ó¦ûõÛ¼f“É j¼5?³´q=Mq ~0: Ãé¨ÂiFGü’sˆ×Íï¸_áþSõ¤ ÷§[ˆ…ÓNi®Þ`Ý ¢.ïªkv…ÂRx-€€IhK‡±þ¿ÂCÚá VPdŒ±ms±.”äâ-h"λg¤Öî,ÕÄ΀,õˆÖ³•µT¨+ôéZ­\|| R=ÞîæEõH«Ž£9ƒÒ?Pydæ—ëht­Dö–“QD¼KÆĦõë~f{m\p‹{Y+®öÕJ€Ds­šädsâ0¾¤09ª‡…Ü¿Ÿ3ž¬ödµ'«ý¿gµÏÔßù Wر+Þ·éØÝÒ.7êÊ’‹ìl•ì[\'°àZm¾ÛSÇ,žäV»§C¸ÈÑÞáèÜ@P/oÛb¢̈kpôÖ¸· w#ª^­÷bd…÷³ŠJŽý0ü™&мl x?Iü—â{q´UÂûɪ©4gì€ìS¼Ø–c¡àŒíüÎŽ¥ëŒ!¤é$sðróöj“®`Z8W~ÚË]Üçëå?¦q}e꽜Î#ESᘑ¾ør^fcÿrp0ÿÞ8Á?#£Ÿ”ò¤”ÿ JyÌøZt¡àfµ {&ÆCâbµ«çªúéAn5Ù/U¢,:ë,ã­R£°qâÝɃ8—7J3ë<• v J@ñ‚„3.VGéèE5”ª³ðaø %Pðe:D“8ԭθœ¹—ª÷á®.=Rs&v Fh0®U»föV¨%®U»ú. £h=’ïl…7âZuw=¸7¦ë¤ªÚ>’NÜß«Œ6ƒ8ºO Xi›Ô«ÚºÂEqÑzù%…*⢵ǩJà™¢´ê‹QW¯£ÚzRÌNßqvnÅÅŒeÈU/{à2¶‡Ï¿}RQ³îê¤E‰v•¸œˆ6幚ۄ¸v¹®4fTžW1åÜM߇ÀŽK¼#šÚ±œæ^òÖKº;GÄÃì:®ÂµïxFr ˆeŸ¥W’oªŽË~m Q֒ܘ㙈’³d\ˆëBÄ!ˆ¼%½Ý!¬ ó€dz.€˜àpîáÃZn\¬ÝQZÛ©¾¦¼œ‡WÔ”êÛ°7Œ$«¢î“íŸlÿdû?)¶ÿD¾õ‡W€®Ê@ òð^]3: ¿"ÏÒžU›ÝŠXR~¦„8I¬S³!ìF†ÉGRp'.ý`DŠ:ÈÎН…*˜ˆ#·Æ%¥P.nkPaP‹e†¬C¦ 7qˆ$=a¤!1+?[µ·£TM|¤„ÑQ¨oˆÔK8£¤ËÙò¦&Mø¬[TâoCÔíPœÞq ºÒýF¤ÖP@œ^ÜOZ¡£Æg÷ÈŠ›ck ‘5˜™Ÿ‰€B‘Ôú58fϨ†ÊýgöõaåþÁ}¸™ºÓU–æ®ËÊšDd„% ‰°¦èLz¡©ÙŸÒß=âS!>âS!>âS!>âG²Ÿ‡r”_[³­n ^ØçŠôk[_´ŒåÚù'#Ë/M/c$ô…¡eчD¼ d¥qe0‹ìÊå¬Ð¬ ‰¦¶3ÛåA·ÃenññŒìãpp¦n|²ŠÈõ´àô‹>"±›ænñ‚,i¿x|;tÜÙkbmïë×RV y°¶f—íkJdÛuññ΢‡uÍÎæ ÅSùœió\¾?ØåûD½¸‡W°˜›ëÑ‘*9|¨MÂ|‡fQJª¾ryL)dw½›pHv$&¾~Ï!%Ô¥Y€•v9kw‘®Î—Ï—®ÏTCØì­Ûü¨hȇ§GiÌ'|!zk¹tÀåqÎÉòòæ•.Z—ã:4ü£kû3Ì𜾟<} Ɔ0˜öÒPÆô(4ÎT)¶#&êËßÞŸ1þú]Nüoÿó^þìëwÿåïÎÆ í_ç§ó ÑŸÙzA!Îrÿõ‡w_|óå×ÿòî/¾~÷·îËŸö]tõ˜„øî?Þ¾Zî§}Rí̾ùOoúš~Ÿï"òò˜›øîÿw}÷oñ1œ‡ŸùGœÍ¡«Ú'c~˘Œ\úáÛ—ÿþòýÕç>6³Æq×2‹7‚«à?-ÿÍ_?6̈G´eÔŠ>dIÑC9€ ¸ícÖk¾¿üŸóí¿:ÿû—Ó›¿|—QøÐó®dæýÄHŽÚäý¡œ CÃb(CO ü „OÞ­| õ–ÏŽ%>v©+¶Æ§gà©ÀÓs¿1„O†‚¼¸PGæýd÷Ï”¤˜ô󊮯~!÷íh½Ä^ñÚÙ¸‡¾# ©°B b9V¾‡y`‰njv‡ò0§Ð¦aéH.U/Dß2†EåCø³,Ô+CÈÛÅNñ¤l ñÊþAý¸!OÍÍ=:ƇKðÐ܆LaãÈ}Ç邨$†ÝiÖ‚§‚üjWi€Šs;:~+°v)²ZÙŸ ¬ê¸Cl•ÜXãòïoã½9K yx ut*'bé.F -vlÏ8[ªbà¡ïLm±îÈ=‡y@Éå%b€û`]ÈýS7f}ûÞg˜õ ©}†Yßí§™õ- |†Yß°Ó§Iù ‰|š£ß°ï' þ-I~†âßP÷§‰æÍ¢~†þÞ¬êg(ë ½çöíw¨€OéÞQ:,rº§ÓCj€_ýö7ßB `¿žùŠ›³¼|ý?ßýÃö«/Q£dõ/þ÷/¿ÿöËÿñõ_½ÃV ¥ðøà_ûáKÜ3>Úå‹ßþÀ¿:ôtv¼þd:B‹O~ý%Ò1›ù‹o~øÍ/¿g±6 È:ÖöYÁóèÿëßþò‡—¿ùÕ÷ÿ ÄTÛæ|­ Ûâ#õ¯ß¿üÍ7ÿøÍ¯9\†ÈÆ]CbxàïþùÛßüö7xO '«ÍùGX+îÑŸÿð%b[Sî_|ó‹¯þâ«S8"?V sÔŽô‹?ûæ‡_ÜZDLÛ1Þ¾¢ÿU}ú‡/þò—¿à\äõÅ/~õ=?…ÕC‡/üd~ð¿¹áµ¿øæûÒƒØápÆÝìþå¯~øò+.Dé_üòýûoø,‚,ú™Ö¯pÍ9% øÏÿù—þ•cEÈÛ:–‘ªbê¯ÿõ·¾ùþÒù—wlÉP韥¨ŠIXš{›Ž»C¼g«wZ:uþßï¾xÿ㬺O;SҰЂŒº·ßþ7­ÐOÄ£bpÉœDù³v ÌÒ‘¢ûïõÉÿ[öè'?ŒXÆÔÕÀ¨óó½þ7ŒÒÏ,#ž§E¦OöúG.2ù ‘}¨ê÷þ^BÈÿÑpÚ¶OÒÙ›LÔ:Âñ“}ÿ ýcŠƤîüs³ʼ­…ôUóçäƒÂ3†ó÷Ÿ› ¥{6pž”ßÁ„<;aWÞê'ìš„|$ò+ÔðämØ~ú°í ôõÄ^DŽ^8†NÒnžÕù*JA¤, Îêu[ŒGò…ÐNŒ”‰D2Z_Žu:S“Õº³ÜêDú ª ip×U¡8ö|fÈ09¯ŠÄÙÁˆœ~Ô–œÒñ ƒdndØw–Dr2°¼&pqà×A°é⤓¡3¯¢Ö˜ åÈ<¬ÉXeê߬8:@‰qNºÎj‹”œáÉÌÍ®9j’ÎñÊriêÍXê_v¶ªËVõÃïs·)}ÀŸ|÷ö%Áà]´ƒ8óØAè§­­$í@Âëõý4ùËàœ±á1KEQÀ¢Æ™'=Ó¯¤Ç0;« Y¦ÒÓVÔô0;=—5 «ï¼÷@dë˸ðËï,982q\YëÐÝÛDâFÂVTHÌj½1î•HSëþC"^OÌp«9^A)³%Ä´UY„HÓ„âÀ­ é-VÊ/ ©0ó²à½éÌ É¯fÀ¤iÿSs¬TaYöwk…îM"C]Î[Ä…PÌÍÄ©YšÐÌm‘ªQ}ÄîšbK œ”f!ÅßI¢ã2u~~4ÝÒô)b„ÈÔ°Ê®JÌLM"0—§h«éÜá <§!uù¥Ä ,E®ß<÷6QÄÎÍz3$c |BQšÔyânâ_çD„DƒHvÍÍXYò¢Æ0w2K7aæ¹x)¦²R¥ÞZŒž%—'µ¾Xiç )z¸˜?ƒÂ"û™.jJÓf.¦´¦Ì¡žnHJ˜[ãî`ª¯êÒ/I·î¯°T[EíJ‘ÅÄEO É¿ÓÕÚÍ ëZ {2… Åq”&‘Ý5¤Éê;±¤ô{Ñ?'óvS=”HßR!-Ÿ-ûHÚREË­7ÊTHK-x PE­”G¤¿¾y$äca<5ÊS£<5ÊS£<5ÊS£üå!ëí D½#Ȫi"Z]óßœ›’\°yæà VòÇ\§“üU}.‘zð )WÌï¼]«¯à‘•AfÕ)±2N:tº‘c=¶W¨¦ 3„B ì è½Õ™ìaÓe†N…ðGÕ"l¢3qÑbŽSœæ‰¢—T‹Kf&Û÷"ˆ·ë9Úʱõͬ CÄz5w9àÂÍ!âÉa*?ýëเÈ øQÖÛ—>H÷C Á½mó€— dõ¦TùqT ËfÆBÆS„d‘¯9=³ÛT}¸².›ˆµH*Ý!íj*ÞêWSa<Í«);`p!q Y¶Ò²¨ë6ˆÆÌ,DD°öÖ²mí Q;rîØ"de"~¦óôR‹% Ë_¥ò DdݱO«3ntÑm ùêŠI{õå•q~¹c@GK#LË‘%è‘Ho!¼(9û¥&)^9™Ô`ÛáÃ{Ôom3¯/祈E²šÇ0Ýxía@Ï* ¡Ž0Žå3õR[“)…( ¼ÄÓ¾Ä /œ„Œó)ÓS'!SÃèŸ[º´õ°-U¬"©³]‰YTÐ.JA5‹"­çÉXÕzÐY‰à+q£™>JÊÕ«%ÒE:}„§n±ZZeæl{-%ÓHA·‹™TõÞí l „?±+@ó›ÿ– ësùfIüPílÛ&^ÍËìë2o\ÅŸ‘ìOIð”OIð'/ ‹u ;Ã2oÑŽu‹®©ª Sìâ§J¼WÞ3£,™âx‘MeßV A”#J¥Ýj:HC‚xMV_tf8Þ ,Œö|q¹ùÂnJˆ÷66ó»?Â1}œtÿá•ú]Û#ë¬Êá©F¦óùm†o²“ÓW¦BvÎ H§ƒ Ù9w é9ìwñ™(P‰l‚³w• EÆÁÃĬêô‚<;ci;÷&kvŽyYô5²Z˜³ Næ f¹°H•Ðl„ÜèºL—òésëV¢H=&¢%¥è65>SœZ\Ö°2ÅòäD®göI:™•š>/×˼}{€(Ä žgs”b‡\(|¦Ý‰v0×È➘>å 92½§¢m-ÿ%¤†ùÜC%"+²Ó'ÖÞ=ˆk›B²;)J­BfÒ„HQ­r5£ƒJÃN¤ÈI5ä: Ü‰p.g*1†3$í”/¾%S” -¬·CÀU8 OSæŽòÁE‹ˆÄ3<•=ˆ+'Cuå*À9ø w‰¸DIeÙƒÌ0Êx7‹À¸4)؈VÊ67!þp•õr‡4¦ º«1o#‘¨ùÒ¨'ÌË@ÈnÝÙôÛô——)7즯f×gܦOë996px¿LógsF—Ø0ÇQvG·=ìËt¢œO9ŠæŒ,m–J†¶öˆ@#F aˆ ©ªÔ¢Ë`F—“±M#8½–htè­Ydæb—ñ™§hÝ#GTÁ‡ÜŠ-‘;Ëë}ErU³yjS=·«îS¢ÁÕè…ýLwQ†¸‡‡-ßÄ%yÊ—NH##À¶sDKÑþ/–7Ñ0Wù ã*\µ –)·®Å’d‹ò ,>q"'ì¬ÝH ©å² ”¡¶Û· åQ‡•Åå¸:Ô½w zfÇ„o.*eºw,JLtzç$ã2µ%46‹OP}ØpÚ]vR[±¸—.Y_>¼›CîÁÏ÷Y5ýTŒOÅøTŒOÅøTŒOÅøTŒ· äí°FâÞg3 ¤‘÷ÁŸÅeùú#²¶?Á´ˆ%”䂎"Ü0ùFY²†JjT"ÕSГƒª8»þQ^•ïþÀúûñéÝ›—>ûÇÌÓM1¬™^$$Œ`8Vý ¢_–TÙBDãÒFßédœ4ËÑ;ûUµ* Ò;ƒè #[k pCâìYÝáéàÁ³ ­X‘^¿ª&êòîôîÞÏnw^ï D.¸¼¸ÈIŽË‹r‰wM}A4¯ÇÜäGį;ÒX‘í ÙnàˆëðÙ°°Z©Šš&BznÒ›§i zC6½Â&ì• é aÝõÊèï‚ÀfÓLUR o½JöÖ#l¤; sapÞ([ãÞ× uèAŠ–¶€kTE¼*6ý½Ò¡4~÷štD¹g!^ü,>•{í™E/KÝ!tzf©L"žLÍ@‚¿çìAÅ¡ˆ|ù3BZš¿»GÚ}ÿ™ÄÐn"2;ò†N!fžäï6Kä¶ÙMDo°ýîôÃajdQ7¤J«B¤³²¬nͰ8Ù»ê"šn‹®m²w,˵”‘ÑÕ,DFF;t7›(@¥ÚrSðÄú-yÑA[ª=ÕæM PDœÓéô)¦ÈkàS¦h]µ§Ú”·!òèÌbŬڦ[Ÿ±oiƒQd<™SmLªmÍˈEÂ0¦Ì™á¹l*"K&w‡6%ˆ>)Fêk“œð,#]#¹ÞÚéØ(AGmh3ȉÖ鄆Èòä 1$Å‘w6­»¿#v6…«(ݲ*Óª–?+/:ë=È.—>ïù»¥&áØÃ(¢gl u_:ˆ|ï>-´ÝBÖÈ|$Äpë V5³y!˜ò–¯Ai󈪙‘°{¯·jØ`×—k áöIúÔAOôÔAOôÔAOô ƒÏrß¼ðAÝ´zÞ}Bý¤÷>>=}óÒ‡»).Ó ‰¹NAj¥¿ö‡…*Õn‰k1‹K^ݼ8“ ‰nZ¬÷Ýà-ÔÎZ#kJ,ÞS_ö•Å‹@óÕÒHÒ99ÅÒ 9eQy­`J¿î·à–ÔÝtðSjv)¤ú½ñ%ú›TÆëòŠ2Ú ö†-Qö²~ €êÏÒ¢›È°¦…( ÿ¢„¸YÃ3’Gˆ¤ÌgjPñdÈ4=59$t-œ99‡ô/ª_C@B•ÁITB†‚¨Yôz]rv¿Ðù¤0Œ¶xqMQYû×[ˆ®qtñY—ØWSÎéHÕv)ëšã­9†·lßÌÒCå"@%m¡§6_*öËC•Í.dÌKÝm!íR‰5 QÌ2Ô&Ü¿@n¼ºû’åϼGH‰÷ßÉòÿ±½•åÿ"‡&Œ°CY5¬…©1ÕEÏBüF‘yC¿á¸ì’%d\¶Ë,šôrÙ7š¾~EYD±†ýf0“4&ߦ)U›}3·¶ÈÂÖmU(ÇŸÙš¾Â*j¼ÝMú³bëÎDÛƒž>ØR¶Mç¶½OÈ ~Cf((?˜ª`2Ñ,ÌÙJ¶ÛaÄõ,{,¥p„u ÕmIÑÃ=éT²‘F †7]ÕH°gƒ2ŒsÑÎ{™ô”—éÖ´<²¨¯n#Øû€ì2‚Ü*H¶ ÏÁã"ÊÂðËyË‘Cp\Û’¼cܱu)Áñ×ö¦Ä Ëå»+q,dR6‹›®JášËmHyˆÐ^¬öWö«±ÜÃóU{ò—Ãòæn|pa~V½=õÒS/=õÒS/=õÒS/ý'ÑKg‡¼†:j\HDe)/ æPO$–ApÔ8²IM0Fr©'"$=äw¼ž8Gœó•\Š¥ˆM·gÑ^rœ‚«´ˆGX†¤²R‘-‘©GÈÛª ßý‘Žëã³È7/}B阛¥ î'på¡‚4^8^EŒ¾¸Ó wW‰ Õ÷ž©F}YšnK"FE!õÈôE ÅLtMBTtâŠÔ_œ„#ù–†dÔŠ$Rq¸å¬·%aX]7® •@u“ƒðfÉŒᓈ“}ܯD\E±àf9õOu=¿²ìÄÅùº|…ËN\ÜÉðD(f‹‘.Ò‡K~Þäpgj“~i¾6^p?žZ´¹´aYÊùÅhÙ%È6ù–ï\¼‡´²üŒ|Õˆ˜ñ$fbÄŒÜsȦ¶¦Dó¼ðÆŠ>›ùÁ+,z%[êCÖû‰ yANZm_oéê+CsÔRö¶kº`¾ðúŒ?Œ{9FLÕT÷@•~¼{Gꟕ˜ŠèQg¶f£""W52ÉJâÙfºÆ­G&°±„h”ÌæÉã½÷‚D7e ©F˜Ë‰‹ u:[€ôÔ\¶'ZÐ’1QGyРN¦ }YŸ¦‰o&èIG2÷V­Iæ3ýU=?£;F Ùìgª)еgbÚ€¬ÃRa[~U¥¤ ¶«“ã@v*&E6GWoâg•ƒÔ=ê¿òd1MVÀYŒY¦#;æHZƒâÜeváA’È¿<;é¸z$^™]átGâ¹Ù‡‰3>!ïæeòœÝý…Åè·´)¨½àÆm¢£®m„ó™‹ÒD‡ › ™#-»²g× ‚=Ѓ < Š¡øËÌEAåa*鞌¢H³Ú%Ö?Bl\°ûˆ¼¬@UY»†H ò»ÞJ×&zñ"ªMŠ2'ËUóÔÁF§öÀâ#ÕeŒ1ay¹Ì‘Î'ï41_0²êGAŠðÅj1KÔA\´“h=ÏúZ¯åÃïl‹q*ÕCAEÀ½Áö9u­Õ ‚AeÁhIG%yøè­ñ3ÕÊ4)¤ØfÝ6¾”,ÒAÛû¹ï`Î!BÉ}Ú@³æwÈæ`ß‚ú™©£!V56-_T£ù q½j–‹)¨ÌY/–æêa¥g°=Öê7/0­%Ò´èÀ¶ 5AѦ'·S3Ýr‹ã³©ä|Å_LØØ÷n!!þt÷I h3š[…Mm]‹«˜Z¬rØ-²6 ëöq¨}ê)f Þâb¨–àd#Úú !Ÿ§ Mnn jªjC8å r©ÖªqV •ƒ8L éRK0xPF³µ’nÇÑêB¹Á‘p0^õɉVæí3r®Ü7•uú $ÏPÇ}Ýõ˜>õ{öPê¹ÞyB×¼ŸX#ßO¬‡Ú„ô¹î¬B¶…!ã€+•ÃR©K«iëªfEœ}Ââa[­†ñ§C"Ëo)ŠÄe ¬Ê°»àª<Ö#‘zNþHÇzã î3Cß ){P¬™/ ±kŽ{\Ž\ Ûù;K½A±›ÚfÄa…vf±ø°̳JŠŸ}rCò´ÔŸ–úÓRZêOKýi©?-õ÷OKýi©?-õ§¥þŸÌRŒk{óÂÙÉœ¼óÓÆþOxï㸶7/}áŽc¶|šWáˆÍ»Ï_ÈLìf—X=ƒö½Ãû ‰⤣óúòAJœGtƲ®¤ÉòI—a0jô Ó!SŸÙAÔEjh\Åü ©„,²n§*>œY÷Ç5EJñ:ÏÑ Ïí´æá賫õœæÿ×ÓüpêXsa1ƒ»šé@`$&X˜èš ßÊ%€YHC%DT>¢Ð™Oø6rE•_è“4|¨Kó¦Ë½Dr,!úB`¦éXÛƒho™p÷Àˆ6âi: ™äsZ)†Yã 2>ïÜÄ5uÂ{ñýüƒhó––³D·46<~F ßÒNÚ~\tþ»ç4ÿ{LóGg²o_¬'yzÒv±¥ƒèÂLÚU»äƒ(Y`Ú×d$]rMÛé(XX¼ò;Sñ‘>Mˆˆò—3¬sòƒŠÿ¢Mœ¢ªòip}Š Ãió%_ ¨h•ÖFRê‹4mÔ-"ºJ®û+Y¦xr||ÅT.~Å7t¢‹é@Ôã„b•l{kT±lpia&iÅD¡X¢¤¶–n¤)Ï6Ñ• t¨Uí†\eÒ¤É~ËUކƒ(”ˆŸº`kCIAgYu~C Eo.á‡Øxuª©aóîÙ ÙWjr¾ Ic茗Qÿ4ƒ]‰ô€xõzÕ.åÈdí³¯¯ÔÔ”v| ¶±ÿXšRS{SX}·éVfêÃMÑa@’Õ˜ÖËYÕRõ--sZªn)M¹á¢2ÐÒÖŒV¹O€$#Úîƒ=U> i Þ‚#Ϥ¥x?vÈ©uø8‡XdêËe˜A·\*ifÇ%—ÊA”謒4;¥˜Ýä :X¥Ðæœïî(Ó}¯t\|[òÂt ¡9äÛ ÐV²*i Y{SȳldpÊöW÷±hrËÌpÉéqgÝõ똭œþ$M¥€8Ý iú‚ i^ %epã”(•¦/¸„n¢4VMZ’¾c„HÊ ¾Éj)éŽøÆÓ™´ñ®üX|-Ë8Ù.HØ ]Î¥-˦‘KŽw°9í`v¯8îž6禄£9²$€êe¨“¨‹K÷ј’cÝŸQ‚Ⱥtí(Jªs/Ýö ¨p"€Ñ(S³· K³†îBÙnM±¨"åwAåí³žÿÓâ÷´øŸÿ»§Åÿ´øŸÿÓâZüO‹ÿiñÿqZügÄo_øpwöѪÏ>½iø ï}tFüö%†j+(Îk(Yšsé!S^Ê.Ž"5æÝIQ·Ìsšô;†õŸ¦?w‘ªjlF}¸CfŠ»šKTîgx>ü“Þûø®Þ›—ü™ 9æöw¶þ#^{Œbx|Þ€µdÿΆìkÇ0¼y‰Ÿád8BÈàŠWø ý¾¯¨4äÝÅZï+r Ö¾¢Û€`ï·W\ðD–öÆïLéfô…Y½¿TÁ!äÞQHi4þ×AŠ#R[ƒ½£TÕ€\Þ×MÒÃW¦c‘^ºe祥ÄÄó嘃ÉÁ'Hþ.$GÓÄP¸{TÕ¾…ŠjFXä¨BE-¿Äèš´Š*eÖd>³|†? +ZÊÕŒÆ4ÑÎtw ‡ÉÎÔ¸ keÒ°¬þ2‹.Ѱt #hX*‚â7ŸÂ’:´,•v 9§7FŠ¿ñd@~ø-ìÆµ¡úÿÛû–žK’ãº=áÑËîÅŒ*ߙޙ€½ðNÆ^X^)Ñî¡lQìï<È[·§‡”†IAµšþÎܪ|EDFdEžPã‰9êD”NÔu\@WS‰TdÍæorˆŽk¼Ñk.’ÇÑõ¨.Râ™FTÉžþ©ž®(L¤ìƒ™üýUßUGµ%ÄÈ“FäÓú7<… â›ÿ‹™D||’»ð aÉÂä“7„±Þ¬Ë꓌ÒD´m2:S ˆ¿€Ù¶ôåÃô¥üíy¥˜ ü”®ÙRK`kó„¸ð>Îù0ÑädYg ¾þ/öH®]õíú¦Å5]€8×)ë\ãGQ] ~âÒÏýÐŒ,QËf/`°Fq,þ £wŠl6…=AеIZÖÒ¥wöE?I…Y~êÒÒ¥ÓåÊKöŠÍÚÀ­HÁ¤º”á¤·Ê ýTi/Ô6€”Ù+R€ÀìÀå½ÎŒ*œ¤õòKZ­µN.µ°B2€Á+±Vß¶mW‘13M¶¹(`í‚Ó¢Ûþ%ßšr Y͵eµeõЋ’0׌lÞ`€…޶t@+^¨E†¾õ@p°µF­ Š ìf$-¢yÇ–’ GiÚv<§(YÎ÷ä`|( ;°±®ûß=²0‚Œ$ÞT˜òÖNmˆü¢€ÉŸDÞ&†„HjµÈ|‚,ÈÕºs Z-Ò{1{•H$ó6¶ÜÒY&%BFŠ -¬-—1$Ö X5’œ±ÚpÖÉô„@pׄcšBh°&5…«<³\Õ'€=îò%(+ƒœdY窇\‚î³ÊW[åVÖàØH±„ªp@%Š«A&ójY÷€ýr¨%½‡d™P]QèÜ$xKn¡MY¨+¿øg±ˆ9RdaE¯¯œ¢#õ•£ðKPç®|žOÂ6X¦éªî¹°ñÙèiÒÞ™ÎÑžÛ®b£@ÌüA6Ì ×gâ3’ÂJSI’K×ÀŽ7ýmÞ”AºÌ”ÐÏÁz"áYÒ _§6 6•Ævòñ•kµR”Äià-BLÚê›ôŽ(cì†èxô !+èýÍdy½7¾º´Ä§ÞÜ•{»¥?Ö}˜(ë‘Ó}*XÅ£z²f8 ÝÓ9Ã(ž`e;÷+f«åò Fø+ejiÇqièú¦P¸=´\)бzÎ’i/‚ûÔ»$-Ù1»¤×9Dœ#Ød—ÿ’HÛy«Z»<½pùhšrT<‚[H¿5‡8Âu´~ç’›A )‡ʉ(é8©žá’“ZxèuÏö~íä—aøÃ86Y'¹>3wƒ2£7eh ©¯Ö§¹æö½YÛRlBùCèá€â’œÀÄ8|H’“:­d@–í©ã”¬InqW¢ëbm²›ªÅ¿‰K#ˆf¸ ·È“?ñM»ÿYC´÷»“`ûíãCZ"ù^H`¶€;d'~Âï²?å±Þm{Æ/)|f8!«PNÂ’(áƒe9ñ›fb"{I7bW‰êOÂ$>ž@º¶8" /n&()`Kî|j)‰ À^Ñ„]‰É¼a÷ì¬3ooÄîs!ó6šê§©I‚’„eš~3 J¥úÍL]JôM4ªYŒd'ƒ‘ÆOâÔ%”XÝÊ»‘æ\ITaMh}˜³¦äáQ Ñm€Ip þU3B–¡„ð[ 2( ‹gTùšÛLk𦰲,Úž&6*¬>Ë×´˜‹ÎdµDPsÑ™·—¡»Ýó5ÍÖSP · ƒÓ|Cs'æBËH$«­Y>(¼K‘\&û.¹‘å(Á¯õ(ÚÐú­âèÜ=m¤~kÀ]‘–[ÖB¨®‘ _‚O­´- q «‡ÄmNYˆ’½À„9]#ä']ˆ{@÷3ªk<®$Ä󅣇%Ä/.Ý£2%x™O/ïH†õöT¼VA0wFy¥$ïrg”W˜jjH~«âg"îo&y寨§&MŸîÜ’¨§ Qˆz´R‘;¢©:cD=ëYýž Ÿ+®t%õ$I…¼TUˆ²€Á£œ‡dÉ@ƒàQÜ”3w–—DRc@mn ­—ÙfY‚íl E ªƒ3éuD•Qš¸¡ÙôŒƒ>z¡{3EŽ>ØÕ¥ŠÊ‚ZEº9B=@íCõ&ª*¸;Os2š&)LKŒ†„L94šPTwOhjD"_Ò±Ÿ¤¿Øvj:1<é¬ÖÍéUSî:b(,X¦»)Јp:•CŸf¶É4ƒÈ6ãÚ¸¢AÚëh&i±›Y• X†:Ÿ*qq|^Z•–b~‡W%ˆÊˆPÅêŒT´ÁóÏÀó‰z£jŠ;"4½ÁôvCÒÛ#%ö)"hº •¡Å„t^B»†¨8Fp¡/[]c•¶H¸"Q FÏä™sÓË¿:‹ÈLҕ츛Sœ‰ø ŒínN·uªè_¾bañÒúj žz\:™¤oIôšsH ^‘JÌ.ÄcbR ½˜ ‚7bÖŠ"2ˆ-³+d—„ç”oJÃÕcÍVÖQ=Ô„£©Ü Õ¢¾²s-Á›Å½yû%nÁ4E;´ňó%{2×ïã"‡ÇF¢+ õ*ìþÑz ¾¦zòÁ –ÙL‰ýäˆi¦ ÈÜáúÌ•ŽQ¼¾Uw®Ø`‘¿0ç:¯B€„Õœxí<#@” `ÄÆ™dççŠÄÌÓß´Ø‘³‡4›¥Ìްá@rì(0½sÖð° Ͻ‰x«/G!šT­#¤®kïÈÔ䇪öãÛ{«öì[Û[—S½wOd‹ì‘H‘€Ý´J÷ì>à<ž«ã¬·él4D†Ý…Nûw[9gÙèqrYí•t7óZzÔ°xû;ÿ¢y§íÑòyÑFäï@“Ãë#WËïàõI´=Æ„ãDJ½nemÔŒjïþÇ’¸÷i¤×èTr¸ŽˆÓ¥ŠÚÝË YùQiJiº‘¤]ô:<íx^¦¯£«L$ù“ÝiÚôtŸL‘§e²«‚ÍM¶+_>Ù·ðÓy¯ƒ6Ð^&îÔÐŽú´¨<ÍèÌÐ(ær‹>¸æv‹>è/â6‚ú·ìÊçã\y¹ÂáY¬FÄÝÁ6B…{¸¬­ki1§*èÂÈ‚Ñ[Y!?ã=ÑÙ=ÑÙ=ÑÙ=ÑÙ=ÑÙ=ÑÙ=ÑÙŸ5:{¿3úÅß¿#ž™ß÷ï_òÜïŒ~ñÐý5ñÐlþŸýÜõ&§>MOdÓj÷ øü3þ üú§<ô•J‰¿ïã'µüõ§¾`~ÿýOi÷ŸûØWø£¿ú|[¿·k›L2¸‹ß;¤ÑL¥¡Iè½]|e’¦|#9¨µ'“:Içíz–“ù¬¨ÿÄÞN1·ò®€T¾y±÷T¶´]Ýd#Hw˜-J3cCA‚8™=“I¤`®ð-Óßæ'âlô8ˆo7"2dR) P~‹~º{“z¦Š¼ž­Þ¢~ÌPæÇìQÑ{‚˜€™O6Ð5Êqáº6÷STÛÙöÉAsœÆñ¯úššÁ+>l*üÁ+5 ßtåÖ°zM'q>ûéîtWc,Z»Nv"W¯A )1ý{7.fM© QÐ3k¢è¦ëõ˜|OW뜊ÙbéL£MŸ@³ÕHÌeFlæ¨P8Ì…_yƒœN—^£¥Tø6Šf2z勱´UQPžˆŸ: RÿJsÍ»FSQ¡ÞÜ=Ô.Žé†(Ó뎈! ˆ2‹ üöæÜ%I§í,R,QRˆIq3ŠY@¨x"”jÝa ß.ë\B.:P•à9”¨T²ÔÏïQ'UÑžI „T?=u-¯TŠK—’ÿf/“ ÕDTK ÊçZ'ÃÓ[—ó¦€dÛo/ª ±bC mÊf’ª¶ ]òˆ(£BSRfTªÁ *:ˆ`e¢m©Ý*. )QWè éÛþöÑÝ›ÊQŒRÈ ~.n2ÄÄý«émX9Gý¤!>3–òhgv0¬´BNiލ€e¾ÍrjQëgô„…E\grZTëƊ‚á õI\ÂhZJ¯«5UÏ è:4³ÈP]Q¬òEá¿j”‰šÊŸ—i“(¥œÂ+EÑ*×Ôba¯ÒŒº["âq’yªuA]h‰ *èÖqò˜?ðÿxì‹;úþoŠº7KYìx_ÇR ÉPÐÉ¥@·ì2\bbÝšödð©nÓïRf˜V ©ð˜¤W þ¢ÄÆt‰\pÄq#çŸ31O¹¤ê4Ô†tñ7WÔþN* ǵ/a¡ù¬3&#™T`2dŸ+yŽÇf–‘")Àþ€D_H§kƈégÄÙ&Å| H96"hÄýlq¼ƒ"E±¡qTñ„%cÒ; ²t÷‡¸]³©ëì®Õ½É±çôÖ=]¢¸Àõoƒ¬t*Ôã à~Øm®ªJhÜæ³©<ÆmΛŠVp]ìxÐM‘¾µð_z[ߦÂ3agÑœÑVÛå’s%Õ ´©L*~ d'é¡6Žã¹5‰uÔ«Ÿ\º¹Âá"Òñ‡›”T3ÅŽ<äÊAÙ\}h0Û˜Êv¼QJÍj7µñ'gé†J™@ÙÂc•Ç»°ŽsÌÍ?ˆ½¸}O™{{SËmó/”¯ +1A‘ý»Flý“ ÉÔ¶ä(¡Éþ!›{Bw%¸²ä¸À"¦n$]ÚæÞ¬³½+tœç†ÛqNQí0‚œœOàá@(×Xü–rz.“çáT´W@E/=¯[@¥¸,€ê_?ñÝß=ñÝß…;ñÄwŸŸøî‰ïžøî‰ïžøî‰ï„<ñÝßýk‰ï¾¨˜yÑ;É$Ϊ0r>»PÃz¿þ)}¥šáŸ°á§òŸz´×nxFÝÈKAÅ Šò¸.€-6NœS‰T'ñ]6¹ùd\]*¢9²+¸’Ü[­Sn…¤£¤¨H­@ 2òEΖDÆ+Åð¡~꺨zò(3Ø—·£²‚^}‰^}Ôu @ŒƒaÖW[â0µžs†+'ú[\ £§5¡æ§¯®`Ó^w»‚©_ëÌ› *¢AUyç˜â•GYyñ³ KÆ+$ØÜY2^ݛޙیîLï¨-ÒÁþõûCSÜsY :PÞ ÝaÖ‡7Kükʈ¤Í¨(3NÒ: ¡~`½x%±¡¢ MùÉbGEN‚|-BWñšÑWpÂwW¨)ï)]Õϸ&@—?9F$e»ÿP&ÒgUà†æ¼ÙÛˆK¶4V{ â-Ôï¨VSÑ.„CR1Õ,à×T@\ì§20º¤³C’½‚ƒ9Ò·—iç"Ú.ŠÀnÝ+Õ.ÊB‘}fIòtÎLdUð¸MVZª×„æfäL:ˆ¸êÛÂä¬MöµxYU>n ¬Ýè.iÈ ¼%©TÍM–w#Š[ ª¬qI×¹‰mºä ÷3Ò‹9Ðwé¿èÜäêrŠ_J„ì²ò¦hW‘]})£ÊQÜõfó®Óä@’zß8f—mPÆ|úy³dE¢›6†´HŒl†2¯Œ›¡"’îÆŒÌIÔ¬0xä’㤆Q—R¹N"H/šK¾~`"h9mÁ¸™q\‰°ô¤dâÈc7ISÖŽ!¿˜Ùó󵩠×ûYô¨$(ÆÒá‹cÿ"Â)õ&xûIpm×DÖñ«©-Uã½7ײë|z|éŠQ]Ý!ÍùåäÓ39WvXqæ;ïÛ÷µ¯Ç:ôåœÐ³Vñd¾¯g_Õw¬y_Á^rѱMÕ»ìt9u7ñêÑ=É_ŸAÏ2Ú#7öÈqŸÅ.nÈzŸùÔ’>tAßt¦Û½õªGA")^f)9ÊÙGä܆÷a—£ä}˜væ‚>ò­TcC—Óàô.b•cs:‚”u·KÝåul¸zQ¡ÅÆ­÷…^l{o®ºdÙ{ ûg; $ßMmï§Ô™Í1›H›ìŽ“µ~³êüþÞOõ8o@Ê}ÿàyñÓûåZ/¸>TxÕ¼Sqå:ïfw„Þžº¢}óöbo­¯¶½ûÞºçú5oâ·AjŸ¿Íƒ]ÛTÙ]¸M§]ŠÛ”Ûíx­JïßÖ·uë:AÝÔ=AÝÔ=AÝÔ=AÝÔ=AÝÔÝvª'¨{‚º'¨ûË êÞï”Ò?ÊJmdÿ^ȶ7é‘{ÕYy##R™:3r6Tì@övSjî` [ë7R¼×Ñój@‚užêx5ÈðÅCPD÷¿´tEJmbµ"NfLE“œÜÓP%ˆÒÖ±ïAjX….†aD,ýùÞV´y{б߽­‹Ñ޳ï-|¹;ZsløÉÃÒ‹ûb•#"M@a¥.(…<2ͱK`Az‡YŠ>§gýPÖOò"q…¥Š}²Â‘ä§HÖA¹¥è“„”&E‰p²`; q ³û˜šÀ8ö1,M)ê>E²í¿IÙCéwÉ©‘¥¿psÔcÜÃ0|±=M)”koáìfHé\vL/Mz© 9¸¼)Iw]ͬWksŠ T°˜0 +J m뇇™põ«N)A,€R`/sÓáÎO™$õ¯¹ʦ#B÷n#QÚ¤ƒÚ«Èúéàír™ýT³…ìQ3£ñˆƒ†ÖsÑXÐˆÆØe ]µD@ ä¢Õ_ÇæqöS“¢‘F‡Ãrã\œjÍs=b‚T5"&" MµØ?€\ƒ[—þ¼dÛ©rS`ä<’Îüùµu9]ð4­»'÷îÕ¨éÂ!ð75t¡‘g#ùÛ'«^6ñ@^S¢Â ¦¯Qc¤QÌ6Òœy¤cþ˜ˆëµC¥·ºmp=+~ñ'q¯ÈÀ8aƒkÈ ZÊq¤³ ÅZhKcX°‘3¦~ÉN_„Тwºb¹†z×·[VâÅ).è@=`ä+œvu¸“ j#q;ˆQ#€%>º¬M…¹uS,•µ‘Õ:†W3]!¡C³^qÏ â$2C72¢ƒ£«;WÉne¾lXÙl#5LÇLR׫D¾Y$W‰Ò‚ÓZ…ÓŸ6“š§‹/¶«úw? Ò/º®˜åÅsÌRV\DÇ.T–ï‡ÀÆC‹’ä‰È:q”Å3<"9Çv§¬¬¸©‡-sZ>!%»i—vm ²0ØÞZyG]¹¢ê…D4ïóoM%’½±›†„ù®.K±k§%Ä·2åoC™‡û¯ÙWQ§'0…çA³¤+Dº%%¤id9X«v¼œÜµžÉ¾Q’o|e›7 Ó)»Î]£­ÌW—ìØC-]ÞÞw„p% ôM”m$ú’”jÜ5ɹ»Î¸¿æò?>ÍãÓ<>ÍãÓ<>ÍãÓ<>ÍãÓük÷iÞY¿xà{y©¯gj•¾¤s»vÉpÊç(mX}« ˜ƒ í•r0MA –e¼Š_ó¾þ‚»÷CVÈûßël“'Á[ô|øÚ|Z¼EÏ×Ò·æ>’ƒ ç¨E&7D‡€.à6Ê -å *BßBd Dxo{#§¥NÂÚ”8{w¯v‘o4>åEZ—7£tñ¶a᜚£¬Q¨”gÙÚöú¸f¸z‰×3„sl~YÏÉzþ6p;|ÿ1‰yÖàÏ»ï_K§·[Pòv¡rÊ Y΂XdÅ=` P`”¼•¯\º¼´5)ˆ0jÞÊÂp`g q}Ö¤§¸ë_K©”½•§TÏí7\K#×ÎF\q‚> ì­¶ìÒø~#Ë‘Pi,s[º’AˆhvzŽ»;¾áÞ²·n½2'  È­FUéÖo ‹#¥TÞT.ý\®-•·™ ŠÜÊg,Õý+q[¸TÆ3En/·„lŠ‚·Ò•Rx­»°Æ­^¬ÂØ¥î¤ߊný'?ɸ•RJÑ\•iV†Rèö”³-nˆ‡ ÊÙêâqÉ^LUä&2èQôY2kÔ³mþM¥gÌz¶zsv[5( RÄ0Ìz“„È&Ô¸¡8­&Þ»ËJ3W!Zp|¿ÇßÝno¹xm?4†FíÑ¢G‹-ú£´è‡_+ߟN]žòåšž‰3Ç£{"ŠOÐR-ïHæ–xG.F ¯÷äÅä§[[yqÇ'¢…¼õ¶fRs“q$ç¹ÑQ‰ö›xê’¤×êÕ<É­D$!;WF±FžMJQ§ -¯)²²Â(ò(Páªþ(› †. J+Ì,qÓDÁF‰TD…Š SÐè¡\WZlOÍ ‘%_¾9Êu)‡G¤ËP ýÙe¡J²CÉ 5|Ùüä^¥¥î‡ÈëJ?üF¨mA}ÊÝú„Ê]µÉ¸#ÏÓfHÆscÜL»"«†Ù¶Gú:ÅöI:‡ê^Ô°ä2W™Õ9dædQQï«ÛZˆÃIšËYáº!òo¼nÇì¢&Âæ‡u¹JXF=ŠÕ±ð@Z½ï@(h—k±eÔãÉøÙL€0Aál8@xÌ ádo\½Âbe)á ;²óÛo\ùêõ°—ÌÓ¼{õfæP¨èñL÷!µ±|ÃÂ*hH䵑«‹«.B͉ÆSHÖ]hÕ·Ñh³ø=åÜc@­Ê2{RØ> ŒÖûˆ¦¢PIF—ÁŸô0†¢e$bŸS…pl+€ç¡rXsôîÜŽ€Áççx36~Ùˆuu‘yp#Å µ´§°pißm%–{”†Tdu±å!ÀnÕÕßþÿЙ°ä9á†ZýL/±Oãš]›±—_IÝ·Š6¢¤ü«ð³Y?›õ³Y?›õ³Y?›õ³YÿoÖïß—¾xà{Eüë\ œ 0g¹„êàä g-G:§ ÍÈð)¹ÁoËZò”zí•/>ÿЉ¤#ŽU’ä¥F& ÎH˜àƒÓ#M³[sœ&”!á-_ò¯ÿŒó‡_¼n|ÿ:¡‚âIéìÆÁC®–»zX³ltÞ.p`–m‡|0ˆÂë2U휻Éx%3à⬎öãX¼RyùLFÑ——R¥ZÓ¯Æ4®Ë—YÖ«­8ÙjEHÜûæ‰#¾dß&6m+½†‚µî=£ÇÉ snZÜ^ç (µº ¹óÔ´pOKþÄ d%íW^$§`´Qý9ž'´‚Rg¸ùðÍù×9ïáÒ2—öW7çųÚa:gÊóŒáœDÏs^üv6ýcúñÊ#(PPÞ™YQÓvn˺û½| „´¨ü6æ‹Ô$—EåÍ‘èQ‹Ù'€0Ñ£¶S_9Ž…²1@"#d÷2Á‘ß@j LƒiÙ÷qQ”y)q+S…h V¹û)– .XÁ(÷LŠ‚‚Åp)ê%™ÀL¿™ÛÈFòVQ:M7?<+K#N-¸Bì²rõF† í¢BµiÂT°æô ÷³Ê5>Ì”‘¢uÞH‰‘²âòªÔŠõ´Ùer7»LQ^ÝýÓ·«Qì› 6cÉUd‰pø¿eš)¸¤áyŸù”'×g¢2‹IqÒÐG¡2k”¼äµ‘öm”9×'–2»o '%$nÄ{ÏÖw¬27´}¤âúô áoœo²‘Ê´¬+ª°wt¹ÀFÜÖJQ'ÊÀ9AJÑ}îÔxo#®×²~T'b1@̸„èrj¼¿ òÚþŒµ³âòè•$ÐDT$9AYÞ–L¹#(MÛß^½¬oM¦o²w¦*Õ‰X%FY‹²ÀŠ#Ú_?šþhú£éÿ4ý+èïAΨD㊇1}"YJy*%Ôé}²ªAC¤1DzX©qè7´˜âàH¸›…ø¡Ky¤s™"ùó4¤Ä2‘tò Ù£FJMË‹ªKzqB6R, ‰ˆEB›ýb’5P°m»¢CøƒôAGT: -ór-öÄÔPª™úr±z518 ˜–Me͇‘¯g+´ûè¼X+nV¼ìʱ`à>ˬàÐà"àÌ¿i²µÝ†TTðîR$ïà:)Óì³>¨t=^¿¤!ôt¨8’V®­C×á1è^úgÑ‹PU[Ø­kjTí4Â%™ùC­W–v‚`À²ªÕ‡¤D¸L5Æ„JlÚrê €s…´‡Ó¥«kK ÅÙûÊŒàãlèJ©Áñ¯-9ø_¢é’‚»pâ¼b™æHƒ(ǰiÂr;lŸ‚Óˆtg,8±0Õ‰jkætÌXœâäcÕ@ðPr5.µ:Sb¹iøR‰e‚ž£;(ãSBH¸K¥ë0¯0Iºà\+H™È[Šò-̇¿“Pf¹ \58hÖÔj^‡öMÉßñqv0­œËÙ@^ê3¾ Y1Y=¦à³m‹²¸ Îû‚æ…w(JÖ=+"ƒÁW^õ¨¦ÎŒp’xÙ¸hNùéh…åè|ê W$wç ëƒo48°´1Äg‰dfÒa†À¨3H•B‡Á«cƒ)•Q d…ÁDØ“À­†qO³éLØÆ™ë\a›ÕT1×^ÊÚ_2Üý¦0û €A ˾ñD@ìÙxÒç€(õ*ëŠÖ!bO V…ØðB»Ñúa›Sˆý­ªDªûoÃíû{í›SlÏó½?MžÉ­Ïø&P5.o ŽþÄSC‚Ö¥EošBÏci Þ…\´¶ü¸Q3µ\9…‡S‹åßè,«î×DS#öMÐP xápY¾ÂK“O–uðóËoƒØzíÛåL¡Iõ)ìŒÉ•T‹Óô8W;ž¥çt+Vx–º …“tK÷Ôå'è§)œïWé°H*áùÊ‚½#¼cú£WШ~-Ty<–Çcy<–Çcy<–Çcy<–Çcù ÷X¾¨þöþœ—åsVlËçh‘§?Ç,ñøQ–+Î, %9Vè¯yJ²Æ¾Rmîý!¶­KÖ°Úq†Ú´m'_áy-:Ó8çµCçggƒÒµ‡øTnM909ljéšZ¨\Cø‘cE¤Ÿ£a}›ã·üxš·}ÇoeÎñ7®t òf›ôÅ)ú-Ë35?*D•¶ñCBERÖR…Éþ–·EùÇ_Ý¿Oþ‹ÿö~ùý‡Ÿ÷³¿ú/{Ç ÀVðï~í_§7UÀËŒ;1[â¿ûþgñé»ÿñ³ÿøÝÏþúýPô§½T/»«xï/_ï ÍÿIïäbm«†wþÝ}½þ˜÷âörxï?÷þ5^–±~HHAb¾ØHb8Fp°üÕ‡ÿúá·{T?Þðv@Î=¶(ÝZ†—S· ãn}ÝûÈnù¿}üù/>àjóãÿû.Ÿ½aüÕï>ý÷ïþsôè÷µ´ýhPä¿ZB.âD{së›ùOŸö&}õÜ?þæšÛÁW™{>w²'h®ÿçÓ7h|÷cÖÿˆ?ÆZuí¾|ú*¹íþǸ_×Ð>þûO߀ ãºêÇÿðÛ_âléÞ ~þý;ü{ëÉöÏöƒÀ¼ÎTö뎫·-}¯W~VK{.¾èÀö¶Ï—ÛÇ{;ÿ€·µvLôñ·Óö,vÄ·ÛÜ?¿êþ?»Éoðï«¥Æ63V6y¨Ûñí{ÞÞùOüѵ#[OÓ–¼;ü¯yú-:¹7Îk|üõ[oð‹žFÇaÌ+üwo-ýÝm¬ßªÇ{Ç^³èW×$­~Õúñïßžý•šÍ©ÑýÛpߺüÛ/›Æãmþ¡&¶;•ß³w×l{"î+ô¹†mný %†x5(âw»¥ìûOy„$¥¾_¼‘o¡ìåýÍÿü„ó†5Ò›|fcÈeó÷÷‡÷#zõqÿç߯ ¼÷í·ÄÑõóñ¶ò”ŸÎ—šú?©{¾ÚÀH¾‰¡|ƒ\éº÷ŽèY-®1Ö›êH†{kí ¾KÓ/>¡^¶B}ÖOú68õãß|Ú=ÅÕÍ-è?ÿ„€Ògÿ9v[I·!à<õô…2!¥}䚢E½îmðfÄíã®d÷·üòK¡˜&‹‹Õÿw_¨Dš[…Ï!9¬ Ýþ­- WÂ:äm óö¹¾Á%ܱ÷M.C{ñfÿ?ô!vendstream endobj 94 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1400 >> stream xœ…”kLSgÆÏ¡¥qÃ4Ú çtc.š9.jf˜—¨Ì%Ýð2 D„^i˵Ûrúï¡wÊ­7PDDPT¼ÎÈ6ÍÜ¢,ó’ÈÈ6—}Y–¸/ïiŽKvû¾Oïû&oÞçy~Oþ/Ž “0Ç—äìËÝ´°Íe×âlz›!îpBŸ(KÎÀVîÙ•q¼ÁÔ” )Hޤ'ßOCæ7‘r%ª~âxƒöŒ-¿AaPÉ«k4Òõ¤¹yy[7J7åääIw×ÉTòŠòziA¹¦FVW®á§¥Ÿ5TÈeƒtýöFñQv¶N§Ë*¯Sg5¨ªwnØ(ÕÉ55ÒOej™ªQV)ý¤¡^#-,¯“If-.ù u ­F¦’4TÊTõ 9†aÄnýƒòÚm {ûûËÅöc°¸[ʇńØ9¼ÿ;©S.@¶#5¡‚8ªˆ³»#øXb‹íDqÍA¹®¤Ãè°«Ûî%Cp AFéa¸•’é BØoqZ) £÷ÁôxººcOQÚä9Í`qš;•ÁLÐuÇèf£ F?xú# ô“3¢ûp•váí‚pÀ -ÅÿHU˜Ò;c‰ ¬´¹…àš^,F¥èå÷29•ýÒé{ŽÔ/º#øð<š°õìFq­µ]Í«¨Ã–ž‘èàÐTI¸¼P^¤7“š'.ës«µv—Íëc<.†C‚ï£q ®ùËÕZ«¦½„’s-EõÅG@b4v{}#$"-A½ZÙX[~]寨Äå(Ùwð–î"¯î¢Õ1·Ýe5;l–J±ùÐÉ2 jôƒ—c®¾¾ï¨ (½÷›±«Ó a`¢mDj" â‰ä8>ÍÎ Xû—Ø?Ñøˆ!/ßv†Ž%Òƒ–Ña1‚Þä‡Þû`1Ò`µ·PÜÚ×Ì5´i/Hô&¥"[,ŠÓé =Cò5Œ›ñ@'á±¹lØi’vmÑ×n.ã’¹@¼/jþ)§Ñé`À^ÆÃøycËùâ§ÐÃ8žxw^€n¢Y1Ú.B$"_!Ñó}³\Å=éÍÿ燯6ÌW¦ÐRQ¢tßÝ9¼·ÓëtS(½)ö_t1“@ü)zò@½KÙöai)Õd(‘åÁ½-JE¿˜"lv­}‘öôÞõ{'~Z½ŠEã(S¼È»£ÉF*sNž>D{kçÈPp¤k„zŒ ;}Þ„%Sudz«¸u–…ºýNW‹˜Ÿ¸ÄËùûµÊ¶S-µ—+´6[›Á );W}ã÷qôž—\õÒÂjŽí!­F©Uª¢–àÐÙÁ™ÊzLôx.AòK8š|ðˆG4–È;]> stream xœm“Ylw‡wq’.šC²Hìº\ 4åh©(…¢’¨„¢†#Äe‚IB'Žs8ñ‘µ½Þ]Ïú¾s˜„;‡ $ÊÙ"µ€P‹€B[!„}A¨ýÛÚÕõ¡R_F3o¿ùf>K‡á8ž‘_XøÅÇÿtKÓñÄŒq‰™·&G’{Ògb“ò>›¹SE7J!S™i}3ÒïLEº)¨|RLÆ$8^UkÊWUkÕe%¥yNñ|ù’åË—åÊ?X¼x¹|u¥R]V¬¨’*4¥ÊJ…&5TÈ7«ŠË”­?;Ž—L“\IkKû1ÁI“Ç!ŽvÆy‡qTˆ&Êvçí§K8Úf´AÁÙ[‚¤ÜŽÛpŽp.¸9ÛÕ ‘A°RõB½º ÕŠôÞDã²P4£Sü4]¯ÕíÒ Ñ&ÚüÃvÁG~—ñÚ9/Î6ˆ„ Ð¼Åæ;ÊQ+¯¸.›§ ²µÀÐ MˆÆ±<*FGŇéÒ$_O¾Ç/=“$‡’Ëe‚Óîáa\ Ç™Ìäç«L¡mwÅñ-êDƒX.6‰y(ëô!š†$î]¦âçCçÀMø§ÉÈ[[8R!’âô¥b&så×Ñû´IÐê§_^ ßM½8/WÏ6‚‘2„À²;;œ¤4QKw¢ OC1sLD]»®+Ú×uòxű¢‚Ý{ªëɆ;@C ¨5Íš=-Û#LÖœ=2x¾ãÛQ zÜê:­µÑ|ˆâͺ¬þ ¸ ‹Õ1j` MÄ:æ‰ zIiòf}5ÇT ÏsIrøÿñì¾±îhAŠŽAÔ‹¢V\&‹éhœ85DË»U~p‚ËnwºÛ»_xb¾“ž˜Ûë F„> Rgîð[\f‹‘ƒ”Ê@'è„bA£ƒF}z:‡ÁÔM ¼À V¦Ž305- –._»@½ˆ‘¸ˆ–=Ds?§ž¿DXûÅcéÕ÷æéYí£¿èX‚Š!ÙSüñ­øm ú:™&ëjnÓÔTÕVÖµ5ééíî#ÅycÙV‘´ê¬FhÊÞ9\ré÷$ùÍ‹‘·Ð©Y±1F£+ÚíéõSþ¨?ˆöÿœå;ì‡vâBñ±í ¢Üð¼Ûï cÏÎFSû†ýVmÓÓ•”4ñ â‰?Oâ‰í‰2ßqÁ>ÄÝŒ—ÁC;ÔÌ>›•â[l&à ƒsœîˆƒŒ¢éa#hɱß2ÔÀƒ¥~½¸:‹·rf`³‡ñì®v7y -í ¢\ Ndô 63Ç6ØXJÌë2)¹–Ù]N§¬C{ô–¢Ô¯1¸Íŀ𦄠·@u­ì5T¹ƒuBŠœàtø iâC§ž´Æò Ž®Ý½šúÐ3É\™`w„@ \¬ÏÈVp¼†ÜÌÖñ´ ´Ùú0Ïc‷jIqÖØ÷¬°e7…õ‘Aï@ØIúG{þŒ^a~h„"°‚•§9¯+±ñô¾oF{ú#!²{¨ízJ­7ä-KvÕ¬ÝD Ó A×Jp¦lÀÃ9Û=C]ƒƒÁЕËg†Î¥¢9/½Õ»Àö¯##ƒµÇwlújoQ¹©HÝÒl!¤èœ¸­­FmˆIІV¬Ó²ϧ’˜½Œ'øè>£öôÞÒUµ*¢ên ¤´¾3‘ïPug†¸ÏÿÖÀ„{É iËgŽ9331ìo Ø endstream endobj 96 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 372 >> stream xœcd`ab`dddwöu041~H3þaú!ËÜý¯æWu7«,¿“ƒlT~c _c7s7˲ïo„¾W ~/ãÿ^,ÀÀÂȘ_Ú2Ñ9¿ ²(3=£DA#YSÁÐÒÒ\GÁÈÀÀRÁ17µ(391OÁ7±$#57±ÈÉQÎOÎL-©TаÉ())°Ò×///×KÌ-ÖË/J·ÓÔQ(Ï,ÉPJ-N-*KMQpËÏ+QðKÌMU€8UB9çç”–¤)øæ§¤å—悌ªM­(a``` ``ìb`bddÉûÑÁ÷kó¿šC¿d73þ°ü³Jô÷÷?ÞÍ]Ýí’ SºçÊý¼Èöð{/k[‘ƒ‡ŸY^u›[ñoõnŽ?¶lßßÿpœ4¥·¯»_²»¿«§uÊï›?‚$~(°}gëþ^Õrñ·?Ç6Óïu¬/²tuåÈó•Ïg“ù]9Ÿ}×.n9.–Ê|ÎÍ“xx€˜—ÚŠendstream endobj 97 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 619 >> stream xœM_HSqÇ×­íG­iÁžj»¿—BaMó¥’娬°…Òþl½s3ï®Ü][Ûrþaۙ˶ÔI9ÍM«ÙKÁ¤·ž¤{’z‚z‰@~wü‚šƒ"8çpÎùÂ9Ÿ/‡´5ˆã8££«çänפâÔÃ5ªY,¥þ.G÷˜QmÛóuilÊ ´‹åºƒT9@ÅZê­CZŽó¢q‡4<*û¼ ©ïk ÇíöVÒÜÔd'gEAöõ¹ý¤Ã­xÑ­T†!Ò%õùe”Ô·xeøTcc0´¹Å€M’N7XIЧxI§ä;B?9/ùrÅ- ¤Êi«V‡$(‚L:¤~Aö C‚(ø„Æ3ÐŒÐMääU{H‹²Ü1nFÕ%-ô–¶ ·šYXϼJe“éŠe¨3MZÞ‚Ul,w_.Ñønp_64êg4=Y„\nîó¿:uYÊS¼C­€©]÷O`-:ÖÎŽ0ÂÚ˜ƒe<½ÀÓ–ÿt»ŽYá0å±1°Tn}¦c–y}ioi_é©ÁPÉýýx!#¹endstream endobj 98 0 obj << /Filter /FlateDecode /Length 160 >> stream xœ]O1ƒ0 Üó ÿ €ÔNˆ…. ­PÛÇAp¢†þ¾$ÎÒùîä³ì‡ÛÀ6‚ƒÃE0–u Õm &š-‹ºm1,O\”²¿+ÿþx‚Ý@¦ð‡ZH>몬êB§iõ )(žI´UÕµÆt‚XÿIG`2‡óŠ]FsÁâ?•M%Λ€[Ä17ÍMRËô{Æ;ŸR°C|i¨Sóendstream endobj 99 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 340 >> stream xœcd`ab`dddwö 641~H3þaú!ËÜÝýãÝO/VY~'Ù¨üƾÆnæn–µß÷ }ÏüžÁÿ=U€™‘1¿´Å9¿ ²(3=£DA#YSÁÐÒÒ\GÁÈÀÀRÁ17µ(391OÁ7±$#57±ÈÉQÎOÎL-©TаÉ())°Ò×///×KÌ-ÖË/J·ÓÔQ(Ï,ÉPJ-N-*KMQpËÏ+QðKÌMU€¸TB9çç”–¤)øæ§¤å1000103012²øÿèàûÉÕ½àûžãßgf|vÿûÕ[Ì?´¿ßýθêØõî«ïýV”ûÝð×ëþ÷‹ß ؾûþ¾Èúíý^Ñï3¿+²ç=æíáêþ[Hž¯lÁ€Yß#Ì]Àö;qûq®ëÜr\,æóy8Näá¹>•‡—ÿØ|endstream endobj 100 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 206 >> stream xœcd`ab`ddä v ò5420qôH3ýaîîþáþÃU–ßÉA6*¿±‡¯‡‡±›‡¹›‡eéwo¡ï\‚ßÙù¿³0012Š©:çç”–¤)øæ§¤å)åç&æ¡ 2000v00”€t°ÛügtógàûÏø²ŒávÙ¡òåB¾WýðÕ¬³uìVâк¥÷ùó£ÇŸå„endstream endobj 101 0 obj << /Type /XRef /Length 510 /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 102 /ID [<22a46af0e551b0dc1bf8f888dc38aa40>] >> stream       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL3û:bIÒW¨dh–\ ®»½Ç‚Õªê|ìXôÒ¼ÌINO U VØYœZ„\1]Y endstream endobj startxref 154969 %%EOF phangorn/inst/doc/Ancestral.Rnw0000644000176200001440000001440413227471203016220 0ustar liggesusers%\VignetteIndexEntry{Ancestral Sequence Reconstruction} %\VignetteKeywords{Documentation} %\VignettePackage{phangorn} %\VignetteEngine{Sweave} \documentclass[12pt]{article} \usepackage{times} \usepackage{hyperref} \newcommand{\Rfunction}[1]{{\texttt{#1}}} \newcommand{\Robject}[1]{{\texttt{#1}}} \newcommand{\Rpackage}[1]{{\textit{#1}}} \newcommand{\Rmethod}[1]{{\texttt{#1}}} \newcommand{\Rfunarg}[1]{{\texttt{#1}}} \newcommand{\Rclass}[1]{{\textit{#1}}} \textwidth=6.2in \textheight=8.5in %\parskip=.3cm \oddsidemargin=.1in \evensidemargin=.1in \headheight=-.3in \newcommand{\R}{\textsf{R}} \newcommand{\pml}{\Robject{pml}} \newcommand{\phangorn}{\Rpackage{phangorn}} \newcommand{\ape}{\Rpackage{ape}} \newcommand{\multicore}{\Rpackage{multicore}} \newcommand{\term}[1]{\emph{#1}} \newcommand{\mref}[2]{\htmladdnormallinkfoot{#2}{#1}} \begin{document} % Ross Ihakas extenstion for nicer representation \DefineVerbatimEnvironment{Sinput}{Verbatim} {xleftmargin=2em} \DefineVerbatimEnvironment{Soutput}{Verbatim}{xleftmargin=2em} \DefineVerbatimEnvironment{Scode}{Verbatim}{xleftmargin=2em} \fvset{listparameters={\setlength{\topsep}{0pt}}} \renewenvironment{Schunk}{\vspace{\topsep}}{\vspace{\topsep}} <>= options(width=70) options("show.signif.stars" = FALSE) foo <- packageDescription("phangorn") @ \title{Ancestral sequence reconstruction with phangorn (Version \Sexpr{foo$Version})} %$ \author{\mref{mailto:klaus.schliep@gmail.com}{Klaus P. Schliep}} \maketitle \nocite{Paradis2006} \section{Introduction} These notes describe the ancestral sequence reconstruction using the \phangorn{} package \cite{Schliep2011}. \phangorn{} provides several methods to estimatea ancestral character states with either Maximum Parsimony (MP) or Maximum Likelihood (ML). %For more background on all the methods see e.g. \cite{Felsenstein2004, Yang2006}. \section{Parsimony reconstructions} To reconstruct ancestral sequences we first load some data and reconstruct a tree: <>= library(phangorn) library(magrittr) fdir <- system.file("extdata/trees", package = "phangorn") primates <- read.phyDat(file.path(fdir, "primates.dna"), format = "phylip", type = "DNA") tree <- pratchet(primates, trace=0) %>% acctran(primates) parsimony(tree, primates) @ For parsimony analysis of the edge length represent the observed number of changes. Reconstructing ancestral states therefore defines also the edge lengths of a tree. However there can exist several equally parsimonious reconstructions or states can be ambiguous and therefore edge length can differ. %\phangorn{} brakes them equally down. "MPR" reconstructs the ancestral states for each (internal) node as if the tree would be rooted in that node. However the nodes are not independent of each other. If one chooses one state for a specific node, this can restrict the choice of neighbouring nodes (figure \ref{fig:Pars}). The function acctran (accelerated transformation) assigns edge length and internal nodes to the tree \cite{Swofford1987}. <>= anc.acctran <- ancestral.pars(tree, primates, "ACCTRAN") anc.mpr <- ancestral.pars(tree, primates, "MPR") @ All the ancestral reconstructions for parsimony are based on the fitch algorithm and so far only bifurcating trees are allowed. However trees can get pruned afterwards using the function \Rfunction{multi2di} from \ape{}. The \Rfunction{seqLogo} function from the \Rpackage{seqLogo} package from Bioconductor provides a neat way to show proportions of a nucleotides of ancestral states (see figure \ref{fig:seqLogo}). <>= library(seqLogo) seqLogo( t(subset(anc.mpr, getRoot(tree), 1:20)[[1]]), ic.scale=FALSE) @ \begin{figure} \begin{center} %<>= %<> %@ \includegraphics{seqLogo.pdf} \caption{Representation for the reconstruction of the first 20 characters for the root node.} \end{center} \label{fig:seqLogo} \end{figure} You may need to install \Rpackage{seqLogo} before <>= source("https://bioconductor.org/biocLite.R") biocLite("seqLogo") @ <>= options(SweaveHooks=list(fig=function() par(mar=c(2.1, 4.1, 2.1, 2.1)))) @ <>= par(mfrow=c(2,1)) plotAnc(tree, anc.mpr, 17) title("MPR") plotAnc(tree, anc.acctran, 17) title("ACCTRAN") @ \begin{figure} \begin{center} <>= <> @ \caption{Ancestral reconstruction for one character for the "MPR" and "ACCTRAN" reconstruction. When nodes contain several colours reconstruction is not unique!}\label{fig:Pars} \end{center} \end{figure} \section{Likelihood reconstructions} \phangorn{} also offers the possibility to estimate ancestral states using a ML. The advantages of ML over parsimony is that the reconstruction accounts for different edge lengths. So far only a marginal construction is implemented (see \cite{Yang2006}). <>= fit = pml(tree, primates) fit = optim.pml(fit, model="F81", control = pml.control(trace=0)) @ We can assign the ancestral states according to the highest likelihood ("ml"): \[ P(x_r = A) = \frac{L(x_r=A)}{\sum_{k \in \{A,C,G,T\}}L(x_r=k)} \] and the highest posterior probability ("bayes") criterion: \[ P(x_r=A) = \frac{\pi_A L(x_r=A)}{\sum_{k \in \{A,C,G,T\}}\pi_k L(x_r=k)}, \] where $L(x_r)$ is the joint probability of states at the tips and the state at the root $x_r$ and $\pi_i$ are the estimated base frequencies of state $i$. Both methods agree if all states (base frequencies) have equal probabilities. <>= anc.ml = ancestral.pml(fit, "ml") anc.bayes = ancestral.pml(fit, "bayes") @ The differences of the two approaches for a specific site (17) are represented in figure\ref{fig:MLB}. <>= par(mfrow=c(2,1)) plotAnc(tree, anc.ml, 17) title("ML") plotAnc(tree, anc.bayes, 17) title("Bayes") @ \begin{figure} \begin{center} <>= <> @ \caption{Ancestral reconstruction for fig.\ref{fig:Pars} the using the maximum likelihood and (empirical) Bayesian reconstruction.}\label{fig:MLB} \end{center} \end{figure} \bibliographystyle{plain} \bibliography{phangorn} \section{Session Information} The version number of \R{} and packages loaded for generating the vignette were: <>= toLatex(sessionInfo()) @ \end{document} phangorn/inst/doc/phangorn-specials.Rnw0000644000176200001440000003527513232243707017734 0ustar liggesusers%\VignetteIndexEntry{Advanced features} %\VignetteKeywords{Documentation} %\VignettePackage{phangorn} %\VignetteEngine{Sweave} \documentclass[12pt]{article} % setwd("/home/kschliep/Desktop/phangorn/vignettes") % Sweave("phangorn-specials.Rnw") % tools::texi2dvi("phangorn-specials.tex", pdf=TRUE) \usepackage{times} \usepackage{hyperref} \usepackage{amsmath} \newcommand{\Rfunction}[1]{{\texttt{#1}}} \newcommand{\Robject}[1]{{\texttt{#1}}} \newcommand{\Rpackage}[1]{{\textit{#1}}} \newcommand{\Rmethod}[1]{{\texttt{#1}}} \newcommand{\Rfunarg}[1]{{\texttt{#1}}} \newcommand{\Rclass}[1]{{\textit{#1}}} \textwidth=6.2in \textheight=8.5in %\parskip=.3cm \oddsidemargin=.1in \evensidemargin=.1in \headheight=-.3in \newcommand{\R}{\textsf{R}} \newcommand{\pml}{\Robject{pml}} \newcommand{\phangorn}{\Rpackage{phangorn}} \newcommand{\ape}{\Rpackage{ape}} \newcommand{\multicore}{\Rpackage{multicore}} \newcommand{\term}[1]{\emph{#1}} \newcommand{\mref}[2]{\htmladdnormallinkfoot{#2}{#1}} \begin{document} \SweaveOpts{concordance=TRUE} % Ross Ihakas extenstion for nicer representation \DefineVerbatimEnvironment{Sinput}{Verbatim} {xleftmargin=2em} \DefineVerbatimEnvironment{Soutput}{Verbatim}{xleftmargin=2em} \DefineVerbatimEnvironment{Scode}{Verbatim}{xleftmargin=2em} \fvset{listparameters={\setlength{\topsep}{0pt}}} \renewenvironment{Schunk}{\vspace{\topsep}}{\vspace{\topsep}} <>= options(width=70) options("show.signif.stars" = FALSE) foo <- packageDescription("phangorn") @ \title{Special features of phangorn (Version \Sexpr{foo$Version})} %$ \author{\mref{mailto:klaus.schliep@gmail.com}{Klaus P. Schliep}} \maketitle \nocite{Paradis2012} \section*{Introduction} This document illustrates some of the \phangorn{} \cite{Schliep2011} specialised features which are useful but maybe not as well-known or just not (yet) described elsewhere. This is mainly interesting for someone who wants to explore different models or set up some simulation studies. We show how to construct data objects for different character states other than nucleotides or amino acids or how to set up different models to estimate transition rate. The vignette \emph{Trees} describes in detail how to estimate phylogenies from nucleotide or amino acids. \section{User defined data formats}\label{sec:USER} To better understand how to define our own data type it is useful to know a bit more about the internal representation of \Robject{phyDat} objects. The internal representation of \Robject{phyDat} object is very similar to \Robject{factor} objects. As an example we will show here several possibilities to define nucleotide data with gaps defined as a fifth state. Ignoring gaps or coding them as ambiguous sites - as it is done in most programs, also in phangorn as default - may be misleading (see Warnow(2012)\cite{Warnow2012}). When the number of gaps is low and the gaps are missing at random coding gaps as separate state may be not important. Let assume we have given a matrix where each row contains a character vector of a taxonomical unit: <>= library(phangorn) data = matrix(c("r","a","y","g","g","a","c","-","c","t","c","g", "a","a","t","g","g","a","t","-","c","t","c","a", "a","a","t","-","g","a","c","c","c","t","?","g"), dimnames = list(c("t1", "t2", "t3"),NULL), nrow=3, byrow=TRUE) data @ Normally we would transform this matrix into an phyDat object and gaps are handled as ambiguous character like "?". <<>>= gapsdata1 = phyDat(data) gapsdata1 @ Now we will define a "USER" defined object and have to supply a vector levels of the character states for the new data, in our case the for nucleotide states and the gap. Additional we can define ambiguous states which can be any of the states. <>= gapsdata2 = phyDat(data, type="USER", levels=c("a","c","g","t","-"), ambiguity = c("?", "n")) gapsdata2 @ This is not yet what we wanted as two sites of our alignment, which contain the ambiguous characters "r" and "y", got deleted. To define ambiguous characters like "r" and "y" explicitly we have to supply a contrast matrix similar to contrasts for factors. <>= contrast = matrix(data = c(1,0,0,0,0, 0,1,0,0,0, 0,0,1,0,0, 0,0,0,1,0, 1,0,1,0,0, 0,1,0,1,0, 0,0,0,0,1, 1,1,1,1,0, 1,1,1,1,1), ncol = 5, byrow = TRUE) dimnames(contrast) = list(c("a","c","g","t","r","y","-","n","?"), c("a", "c", "g", "t", "-")) contrast gapsdata3 = phyDat(data, type="USER", contrast=contrast) gapsdata3 @ Here we defined "n" as a state which can be any nucleotide but not a gap "-" and "?" can be any state including a gap. These data can be used in all functions available in \phangorn{} to compute distance matrices or perform parsimony and maximum likelihood analysis. \section{Markov models of character evolution} To model nucleotide substitutions across the edges of a tree T we can assign a transition matrix. In the case of nucleotides, with four character states, each 4 $\times$ 4 transition matrix has, at most, 12 free parameters. Time-reversible Markov models are used to describe how characters change over time, and use fewer parameters. Time-reversible means that these models need not be directed in time, and the Markov property states that these models depend only on the current state. These models are used in analysis of phylogenies using maximum likelihood and MCMC, computing pairwise distances, as well in simulating sequence evolution. We will now describe the General Time-Reversible (GTR) model \cite{Tavare1986}. The parameters of the GTR model are the equilibrium frequencies $\pi = (\pi_A ,\pi_C ,\pi_G ,\pi_T)$ and a rate matrix $Q$ which has the form \begin{equation}\label{eq:GTR} Q = \begin{pmatrix} \ast & \alpha\pi_C & \beta\pi_G & \gamma\pi_T \\ \alpha\pi_A & \ast & \delta\pi_G & \epsilon\pi_T \\ \beta\pi_A & \delta\pi_C & \ast & \eta\pi_T \\ \gamma\pi_A & \epsilon\pi_C & \eta\pi_G & \ast \\ \end{pmatrix} \end{equation} where we need to assign 6 paramters $\alpha, \dots, \eta$. The elements on the diagonal are chosen so that the rows sum to zero. The Jukes-Cantor (JC) \cite{Jukes1969} model can be derived as special case from the GTR model, for equal equilibrium frequencies $\pi_A = \pi_C = \pi_G = \pi_T = 0.25$ and equal rates set to $\alpha = \beta = \gamma = \delta = \eta$. Table \ref{models} lists all built-in nucleotide models in \phangorn. The transition probabilities which describe the probabilities of change from character $i$ to $j$ in time $t$, are given by the corresponding entries of the matrix exponential \[ P(t) = (p_{ij}(t)) = e^{Qt}, \qquad \sum_j p_{ij}=1 \] where $P(t)$ is the transition matrix spanning a period of time $t$. \section{Estimation of non-standard transition rate matrices} In the last section \ref{sec:USER} we described how to set up user defined data formats. Now we describe how to estimate transition matrices with pml. Again for nucleotide data the most common models can be called directly in the \Rfunction{optim.pml} function (e.g. "JC69", "HKY", "GTR" to name a few). Table \ref{models} lists all the available nucleotide models, which can estimated directly in \Rfunction{optim.pml}. For amino acids several transition matrices are available ("WAG", "JTT", "LG", "Dayhoff", "cpREV", "mtmam", "mtArt", "MtZoa", "mtREV24", "VT","RtREV", "HIVw", "HIVb", "FLU", "Blossum62", "Dayhoff\_DCMut" and "JTT-DCMut") or can be estimated with \Rfunction{optim.pml}. For example Mathews et al. (2010) \cite{Mathews2010} used this function to estimate a phytochrome amino acid transition matrix. We will now show how to estimate a rate matrix with different transition ($\alpha$) and transversion ratio ($\beta$) and a fixed rate to the gap state ($\gamma$) - a kind of Kimura two-parameter model (K81) for nucleotide data with gaps as fifth state (see table \ref{gaps}). \begin{table}[htbp] \centering \begin{tabular}{l|lllll} & a & c & g & t & - \\ \hline a & & & & & \\ c & $\beta$ & & & & \\ g & $\alpha$ & $\beta$ & & & \\ t & $\beta$ & $\alpha$ & $\beta$ & & \\ - & $\gamma$ & $\gamma$ & $\gamma$ & $\gamma$ & \\ \end{tabular} \caption{Rate matrix K to optimise. }\label{gaps} \end{table} If we want to fit a non-standard transition rate matrices, we have to tell \Rfunction{optim.pml}, which transitions in Q get the same rate. The parameter vector subs accepts a vector of consecutive integers and at least one element has to be zero (these gets the reference rate of 1). Negative values indicate that there is no direct transition is possible and the rate is set to zero. <<>>= tree = unroot(rtree(3)) fit = pml(tree, gapsdata3) fit = optim.pml(fit, optQ=TRUE, subs=c(1,0,1,2,1,0,2,1,2,2), control=pml.control(trace=0)) fit @ Here are some conventions how the models are estimated: \\ If a model is supplied the base frequencies bf and rate matrix Q are optimised according to the model (nucleotides) or the adequate rate matrix and frequencies are chosen (for amino acids). If optQ=TRUE and neither a model or subs are supplied than a symmetric (optBf=FALSE) or reversible model (optBf=TRUE, i.e. the GTR for nucleotides) is estimated. This can be slow if the there are many character states, e.g. for amino acids. \begin{table}[htbp] \centering \begin{tabular}{|llllr|} \hline model & optQ & optBf & subs & df \\ \hline JC & FALSE & FALSE & $c(0, 0, 0, 0, 0, 0)$ & 0 \\ F81 & FALSE & TRUE & $c(0, 0, 0, 0, 0, 0)$ & 3 \\ K80 & TRUE & FALSE & $c(0, 1, 0, 0, 1, 0)$ & 1 \\ HKY & TRUE & TRUE & $c(0, 1, 0, 0, 1, 0)$ & 4 \\ TrNe & TRUE & FALSE & $c(0, 1, 0, 0, 2, 0)$ & 2 \\ TrN & TRUE & TRUE & $c(0, 1, 0, 0, 2, 0)$ & 5 \\ TPM1 & TRUE & FALSE & $c(0, 1, 2, 2, 1, 0)$ & 2 \\ K81 & TRUE & FALSE & $c(0, 1, 2, 2, 1, 0)$ & 2 \\ TPM1u & TRUE & TRUE & $c(0, 1, 2, 2, 1, 0)$ & 5 \\ TPM2 & TRUE & FALSE & $c(1, 2, 1, 0, 2, 0)$ & 2 \\ TPM2u & TRUE & TRUE & $c(1, 2, 1, 0, 2, 0)$ & 5 \\ TPM3 & TRUE & FALSE & $c(1, 2, 0, 1, 2, 0)$ & 2 \\ TPM3u & TRUE & TRUE & $c(1, 2, 0, 1, 2, 0)$ & 5 \\ TIM1e & TRUE & FALSE & $c(0, 1, 2, 2, 3, 0)$ & 3 \\ TIM1 & TRUE & TRUE & $c(0, 1, 2, 2, 3, 0)$ & 6 \\ TIM2e & TRUE & FALSE & $c(1, 2, 1, 0, 3, 0)$ & 3 \\ TIM2 & TRUE & TRUE & $c(1, 2, 1, 0, 3, 0)$ & 6 \\ TIM3e & TRUE & FALSE & $c(1, 2, 0, 1, 3, 0)$ & 3 \\ TIM3 & TRUE & TRUE & $c(1, 2, 0, 1, 3, 0)$ & 6 \\ TVMe & TRUE & FALSE & $c(1, 2, 3, 4, 2, 0)$ & 4 \\ TVM & TRUE & TRUE & $c(1, 2, 3, 4, 2, 0)$ & 7 \\ SYM & TRUE & FALSE & $c(1, 2, 3, 4, 5, 0)$ & 5 \\ GTR & TRUE & TRUE & $c(1, 2, 3, 4, 5, 0)$ & 8 \\ \hline \end{tabular} \caption{DNA models available in phangorn, how they are defined and number of parameters to estimate. The elements of the vector subs correspond to $\alpha, \dots, \eta$ in equation (\ref{eq:GTR})}\label{models} \end{table} \section{Codon substitution models} A special case of the transition rates are codon models. \phangorn{} now offers the possibility to estimate the $d_N/d_S$ ratio (sometimes called ka/ks), for an overview see \cite{Yang2014}. These functions extend the option to estimates the $d_N/d_S$ ratio for pairwise sequence comparison as it is available through the function \Rfunction{kaks} in \Rpackage{seqinr}. The transition rate between between codon $i$ and $j$ is defined as follows: \begin{eqnarray} q_{ij}=\left\{ \begin{array}{l@{\quad}l} 0 & \textrm{if i and j differ in more than one position} \\ \pi_j & \textrm{for synonymous transversion} \\ \pi_j\kappa & \textrm{for synonymous transition} \\ \pi_j\omega & \textrm{for non-synonymous transversion} \\ \pi_j\omega\kappa & \textrm{for non synonymous transition} \end{array} \right. \nonumber \end{eqnarray} where $\omega$ is the $d_N/d_S$ ratio, $\kappa$ the transition transversion ratio and $\pi_j$ is the the equilibrium frequencies of codon $j$. For $\omega\sim1$ the an amino acid change is neutral, for $\omega < 1$ purifying selection and $\omega > 1$ positive selection. There are four models available: "codon0", where both parameter $\kappa$ and $\omega$ are fixed to 1, "codon1" where both parameters are estimated and "codon2" or "codon3" where $\kappa$ or $\omega$ is fixed to 1. We compute the $d_N/d_S$ for some sequences given a tree using the ML functions \Rfunction{pml} and \Rfunction{optim.pml}. First we have to transform the the nucleotide sequences into codons (so far the algorithms always takes triplets). <>= library(phangorn) fdir <- system.file("extdata/trees", package = "phangorn") primates <- read.phyDat(file.path(fdir, "primates.dna"), format = "phylip", type = "DNA") tree <- NJ(dist.ml(primates)) dat <- phyDat(as.character(primates), "CODON") fit <- pml(tree, dat) fit0 <- optim.pml(fit, control = pml.control(trace = 0)) fit1 <- optim.pml(fit, model="codon1", control=pml.control(trace=0)) fit2 <- optim.pml(fit, model="codon2", control=pml.control(trace=0)) fit3 <- optim.pml(fit, model="codon3", control=pml.control(trace=0)) anova(fit0, fit2, fit3, fit1) @ The models described here all assume equal frequencies for each codon (=1/61). One can optimise the codon frequencies setting the option to optBf=TRUE. As the convergence of the 61 parameters the convergence is likely slow set the maximal iterations to a higher value than the default (e.g. control = pml.control(maxit=50)). The "YN98" model \cite{Yang98} is similar to the "codon1", but addional optimises the codon frequencies. \section{Generating trees} \phangorn{} has several functions to generate tree topologies, which may are interesting for simulation studies. \Rfunction{allTrees} computes all possible bifurcating tree topologies either rooted or unrooted for up to 10 taxa. One has to keep in mind that the number of trees is growing exponentially, use \Rfunction(howmanytrees) from \ape{} as a reminder. %<>= %trees = allTrees(5) %@ <>= trees <- allTrees(5) par(mfrow=c(3,5), mar=rep(0,4)) for(i in 1:15)plot(trees[[i]], cex=1, type="u") @ \begin{figure} \begin{center} <>= <> @ \end{center} \caption{all (15) unrooted trees with 5 taxa} \label{fig:NJ} \end{figure} \Rfunction{nni} returns a list of all trees which are one nearest neighbor interchange away. <>= trees = nni(trees[[1]]) @ \Rfunction{rNNI} and \Rfunction{rSPR} generate trees which are a defined number of NNI (nearest neighbor interchange) or SPR (subtree pruning and regrafting) away. \bibliographystyle{plain} \bibliography{phangorn} \section{Session Information} The version number of \R{} and packages loaded for generating the vignette were: <>= toLatex(sessionInfo()) @ \end{document} phangorn/inst/doc/Networx.Rmd0000644000176200001440000001237213201424001015712 0ustar liggesusers--- title: "Splits and Networx" author: "Klaus Schliep" date: "`r format(Sys.time(), '%B %d, %Y')`" output: rmarkdown::html_vignette bibliography: phangorn.bib vignette: > %\VignetteIndexEntry{Splits and Networx} %\VignetteEngine{knitr::rmarkdown} %\usepackage[utf8]{inputenc} --- This tutorial gives a basic introduction for constructing phylogenetic networks and adding parameters to trees or networx objects using [phangorn](https://cran.r-project.org/package=phangorn) [@Schliep2011] in R. Splits graphs or phylogenetic networks are a useful way to display conflicting data or to summarize different trees. Here, we present two popular networks, consensus networks [@Holland2004] and Neighbor-Net [@Bryant2004]. Trees or networks are often missing either edge weights or edge support values. We show how to improve a tree/networx object by adding support values or estimating edge weights using non-negative Least-Squares (nnls). We first load the phangorn package and a few data sets we use in this vignette. ```{r, eval=TRUE} library(phangorn) data(Laurasiatherian) data(yeast) ``` ## consensusNet A consensusNet [@Holland2004] is a generalization of a consensus tree. Instead of only representing splits (taxon bipartitions) occurring in at least 50% of the trees in a bootstrap or MCMC sample one can use a lower threshold and explore competing splits. Note that, in its basic implementation used here, the consensusNet edge lengths are proportional to the frequence of the corresponding splits in the provided list of trees. The input for `consensusNet` is a list of trees i.e. an object of class `multiPhylo`. ```{r, eval=TRUE} set.seed(1) bs <- bootstrap.phyDat(yeast, FUN = function(x)nj(dist.hamming(x)), bs=100) tree <- nj(dist.hamming(yeast)) par("mar" = rep(1, 4)) tree <- plotBS(tree, bs, "phylogram") cnet <- consensusNet(bs, .3) plot(cnet, "2D", show.edge.label=TRUE) ``` In many cases, `consensusNet` will return more than two incompatible (competing) splits. This cannot be plotted as a planar (2-dimensional) graph. Such as situation requires a n-dimensional graph, where the maximum number of dimensions equals the maximum number of incompatible splits. For example, if we have three alternative incompatible splits: (A,B)|(C,D) vs. (A,C)|(B,D) vs. (A,D)|(B,C), we need a 3-dimensional graph to show all three alternatives. A nice way to get still a good impression of the network is to plot it in 3D. ```{r, eval=FALSE} plot(cnet) # rotate 3d plot play3d(spin3d(axis=c(0,1,0), rpm=6), duration=10) # create animated gif file movie3d(spin3d(axis=c(0,1,0), rpm=6), duration=10) ``` which will result in a spinning graph similar to this ![rotatingNetworx](movie.gif) ## neighborNet The function `neighborNet` implements the popular method of @Bryant2004. The Neighbor-Net algorithm is essentially a 2D-version of the Neighbor joining algorithm. The Neighbour-net is computed in two steps: the first computes a circular ordering of the taxa in the data set; the second step involves the estimation of edge weights using non-negative Least-Squares (nnls). ```{r, eval=TRUE} dm <- dist.hamming(yeast) nnet <- neighborNet(dm) par("mar" = rep(1, 4)) plot(nnet, "2D") ``` The advantage of Neighbor-Net is that it returns a circular split system which can be always displayed in a planar (2D) graph. The plots displayed in `phangorn` may (however) not be planar, but re-plotting can give you a planar graph. This unwanted behavior will be improved in future version. The rendering of the `networx` is done using the the fantastic igraph package [@Csardi2006]. ## Adding support values We can use the generic function `addConfidences` to add (branch) support values from a tree, i.e. an object of class `phylo` to a `networx`, `splits` or `phylo` object. The Neighbor-Net object we computed above provides no support values. We can add the support values from the tree we computed to the splits (edges) shared by both objects. ```{r, eval=TRUE} nnet <- addConfidences(nnet, tree) par("mar" = rep(1, 4)) plot(nnet, "2D", show.edge.label=TRUE) ``` Analogously, we can also add support values to a tree: ```{r, eval=TRUE} tree2 <- rNNI(tree, 2) tree2 <- addConfidences(tree2, tree) # several support values are missing par("mar" = rep(1, 4)) plot(tree2, show.node.label=TRUE) ``` ## Estimating edge weights (nnls) Consensus networks, on the other hand, provide primarily information about support values corresponding to a split, but no information about the actual difference between the taxon bipartitions defined by that split. For example, one may be interested how the alternative support values correspond with the actual genetic distance between the involved taxa. Given a distance matrix, we can estimate edge weights using non-negative Least-Squares, and plot them onto the consensusNet splits graph. ```{r, eval=TRUE} cnet <- nnls.networx(cnet, dm) par("mar" = rep(1, 4)) plot(cnet, "2D", show.edge.label=TRUE) ``` ### Import and export networks, advanced functions for networx objects The functions `read.nexus.networx` and `write.nexus.networx` can read and write nexus files for or from SplitsTree [@Huson2006]. Check-out the new vignette IntertwiningTreesAndNetworks for additional functions, examples, and advanced applications. ## References phangorn/inst/doc/phangorn-specials.pdf0000644000176200001440000022743213241412170017725 0ustar liggesusers%PDF-1.5 %¿÷¢þ 1 0 obj << /Type /ObjStm /Length 4142 /Filter /FlateDecode /N 90 /First 742 >> stream xœÍ[[sÛ¸~ï¯À[w§’¸ƒÎN}‰lâ\l'q²“Z¢m6²ä•¨l²¿¾ßH‰Ùflí´#[H8øpî€K˜dÆ2Å„1L3iQeZKf™NsÌ& K™s ãô—¤Œsü¥†qÁ¸TôŸNãŠq#ð\3n-žãÏ9Ü·L$7\ZÆS&$^ Êà‹cð®$“ úŠI™ Èr‚(dÊ¿r•F{Ç”±x)e:I^bZ¡SÉ™¶)gR0“¤xSÒ÷&Cuͬ)“†Y¥1ˆeÖb~Ò1—(Ô1ÝĦæ¸QLqæ$&‹©:"pÝhêt¢4sFã¹!˜8S–¹Ô€8ÇR zTÊRmˆdi Ü4ðK$&ˆwx¢12àæ‰´ †óÄb€‹+ © 0L˜s ÚçÆ¡ -…A  b-3èYpàêQa= D1.$P0š XC+¨Ò„–Ÿ 4@3  Á¤Tp„ 6ÌRÏ’¥žS@o©ç0[ô,‰/¬¦Уµ—œ¡g)Sà‹ž¥p=K‹I?I‹w1.ÈsèY%œ@¦æPÀìzV<%œQhéг’†MKƒž•oaF\Y¬àÊ ó·ý‹ÅGy™³2c©Ï³øõ²œÓ|v÷õ7Ù%**TN¿ßä,ÞCûÉì’ýò‹ïbgY^Íæì§Ÿñdžge1›îgeÎ~Úÿ§H¸K8w"îI¢ÿž$¯ÛÑ;/³ÓüŒýQ”Wì }Ïçù»ÉF_0(š½È¿ÿ1›¾ï£Ùø¾nßÌgãå(G¿‡o^²Ã«Ù¢\ŒæÅMÉÒHp48Yžÿ'•¾¿Ó¢œäTª¦±7[NKæøE!ƒÔÓœÁítqþ›‡ X©à€|-Üt¡ö¹Æ,ÀX#6ÎJ‚Wݦþ"’ú½Ù´Ì§h’ÊüQ>.²ÝÙ7¼C (°X±ÏÔñ-ë:γå|„¡hœ§ßÊÓ’@“a ø“ ‡¥ÏF'y‰>ã7û 4ÿV¢Ë_~i݆Ǡ‹b¾(¡}/3”y¨T ÷óE¹B/>ûø ”FÚÄE¤Í¦ËÉ„è~EƒÕ„„9TW-Ì»rœ_€Ç̳èÅl~•‹Ÿ{0ª€’ (݇QmF­0jó+t\¥L½Ü‡óMè¼™ç_kô+¤Ž²ù—ÙWv=ç“›]°ÑU6ÏF%ðË¿Î&K’È>h:t¢):,…ÙÀ‚z;ØÞÀΈ‡cW á<Ã]ÄaèÚèÉ[ÑK[è=]”ŵ×ZÝt6}²(³é8›Y9Ϧ‹Â?šÓÐl^`f}0ìãf¶„›j⦛èФ6‘NmÜô­¸Õ Y·7˜Åò–žÉ*l¨Ô »%,Ò6yª‹E¢#x+,ìíXȇù4‹ÓK0Mžo‚ÀmÛ„À=Ó…ÀØÈÂo«!Ø4kÝšõI¾Xв?ŸÕÜÒ3žî¿;~^S±3ò\âoýt“röÏ/“l¹ˆ£«I‘ßüû’îF£ÙõÏžø]Xh±÷âå+póñ­¼ l~?ü£y¸ï¸õ?Õ(‰©¾‚ºGïjê+Ý©Ÿ$å©¿ÒÏ+1[ŒHH-Þ_~ó,/.¯ ³)U)…Ÿâ“ø}œÅ£8/â h•ø2¾Š‹xOãY|ß Oò‹2”æÔE g¼˜ãy¼ˆË¸üc/ã?óùìgÏw~Ì'BÓêL²ËÅ”ìÝZ³ù‡ Qö9<<(&¹D¬·V`¯²ë¼ËÏ\£é%4 ú?* c¦—~ *âÎI™_¿‡ š«Ü`ø¬BNUŸ Ÿ¿;þtpè &L+Mºf=X»ëé.뇱ž¦à~ªVMÆP.½“ÚÏ¥ ÿžI,òÆ_©ÕÐáÃÄ«ÞSÞ³Ry†µÐ™QºAl|¼êü3èS /ý;°8Š\)k@u´¥«‰Ÿ›ïƒžáŸ'žÏ©¨aþÂÐ5arôŠ¢à½º"r^ݧ–T×ÂèICè]έíè }#Ô]µ&óI_Q+ÈKƒñBuÅxK¶ø_êªv²i/D@›:é€Ì» ÷@¸ g)e3\â0ïîŸ~Â2îžµ4«s]ùÓžQwQ6^+?î#m݇†FÜôß3ô²VcŽJÓtŽœ Åk'‚'Æ®^qP©XgT¯Ãª[˜,jC¬ã¯ˆ3$é5@uéÓPÖTJ¥ ­*<å5iuízš/IÚž‚k2àtÞ!ôÝ‘×pï ×Ρ¸ÆÁs¨ÕRO'Õ)(£•²ñꊥ£RZZ$¹E‹$ᬼö$wø[tù»Ã}Cµ,Û}N„ÞàDüzðþÅÎ F;}Þâõ;]YÓDòž?Á‡º²É­¼Üybe°Ã†˜Ê´S£%ñª:<µ¸§Q³·Ž‘x•ÿuY&ëzM¹e]Ý_½GÔŽØThÏhÏÄÅÓ"^ošk_í˜ë§Þ@“yÆ9°n°¹k¯÷ºö{kóœÜ`í¾·ÙSÕ왚¶•ƒYðièé0¨ì2h‡eš úŽÍ†ÎÜïçò VïÃÉ«·/i¼ÓÁ,*UŸE{Ñ–PCÍoj9ª…;ué¡ÿý†÷ù#-kªoûÞÞX·¯=_µEÁ¤ÀçkÍ(mÁ ¥»É‹ýè…å<›?À{­ÝÖ†e¸¤Ý|Þµ“|±ø1Çõf²\lò^8®Ëé8Ÿ/F³y¾öa»,œŽ:|Õmáæá©ÊãÝ‘mՕ펬uOö­±Xm9§;•œóûML{OÎ_¾=Þ=8ñŽ]bÛÞm•ºÓ»•Ýv¸wkúaÕÖ½[g7y·º»=îônÝ t{æ=˜_¾{½{샔ä¿K Ï] kÙfSÜ~bom7ü£½ñV~?-|{Ó­u5–†ñ£’óÖ¡~æH m¢S½ïyê–OZº ôZËä•­ŽeÃV{;Ý¶ÐæŽ:.ýPªecÅBíê? ~¿ÿ¸Úc:É\¾ÕIÇ;Bº[ÔÉØÔ唎t„2u¨÷cyצƒàÝÏ|åˆæÁ1¼^NÊâfò~ßu1Éæ·lGôs ÎBålÈGö¶#: 0x?bpBò×woN÷)áyÔθš‹ïÚƒÐI—Å bú,6{7-ÐmNçæXãìV/y&ü©F Ë@§é¤?í¡\HèF² ¶ðëá?Î>§Ú2 ¼|؆¸ïc$™’æS°)tæ’¬n¸#)Aš4ßU)÷iSÿToÈÝÉ£7e“›+DLy™y%DDã|‚:⢛E†Çôø2£‡u@ä³÷ÙÍMb¡Ùu~™­}››±NË âë'’Wœ­’ œÍ{Iàã ål~›“Óãìý×;ÏNün —ltŸÅÅ ߨE=ÿZ]ëF'ÚZÒUÛoÎÇ=†²­|øŽ¯$®›¶ì¤ÛÀG÷$­ö“¿7Q NœQÞ’yêøµO¸ª2O´×ÕË<ñ^j´½(C^äÐÄÿ³³ƒ§/ÐÿÓ³–ÁLkþ[GD®¿Öª³ÖnSÞ¿¡Íês7›VßAG¸ŽžpÎmþ®Únzç®§€¨»ÔmÑVÞzåßÖöì¼\—¯‹ñºR6²!ç庌—Wåº7‡çͤIÝÊWÐl±¼GrÆÅâf’µòšÜñÛm¥È¥#¤Ë\½ÔGgñr—¸ÏXÞ ‰èä¹­ËŠ©´.û“æUÙ1-Ù½aF×…¾ïlk}â·UÃo¶tšÜ#´™“D2IÿGN½Ò6âô[€‘m¥´cN!Ñ_ûiÓÃIX9Ú*Òô+„H´I‹¤xI]œšgGB.ó# hS¢‡“5Ú–"2¸GNa5S¨z5ô×ðq“wǯ÷‡Å<ÈRt¦¬¹ˆ„uˆƒEdaÑ´H"ÊPÉ ȰÿߢÛ8xÍSZP:[’DýãrNøUç©ô¤ @ÛÄzà¶Äzf[Dn#Z½<ßÒ™nÛØæ¢¼<&î~–O¾æe1Êž¼>Ÿ¿Ó‰Â;\¾aÁ†Ùvi5ÜÇ“·OÏö)Ê;¼?æú¿5]ÿehþÜÈ~xì7wš›ó-—ñxSÒÜhm\/qn±aç‚÷²žšï4ê½ÿô,;í݉:î^»²Ÿ0·½„Š l:ö¥hw£±?á«kO  /o¹>‰Ú:{£}mäwîN3ôìÍ–5mJ鑺¬˜µ·èŽ-åì\#PaN>@wÜ3ÿÞˆ-ïóýââ"åDêo”Ü«“M¬•˜¢êôS8…ºràY#Uµþé×j„‡AÚýÿº[ÊøäóÙò,äFØ*5B?¬ ôýâ-$Dèhm|SÐqƒ¡ß%U‰R,ô¢Ù±Àà¢ØVg¤—‚Ù"–žÄøbB¿ gLý)Ö9Îp 9œ#Ýú똓µBKúå[3jõkÕoéWd­—~îUÇÁô{¦f˜ËZñ,kF½¬ÝúÌ@7¨Ý<ÝÿþT?endstream endobj 92 0 obj << /Subtype /XML /Type /Metadata /Length 1557 >> stream GPL Ghostscript 9.21 2018-02-14T18:20:28-05:00 2018-02-14T18:20:28-05:00 LaTeX with hyperref package endstream endobj 93 0 obj << /Filter /FlateDecode /Length 4250 >> stream xœÍ\Ks·¾3ú[:Í:Ú Þ¤ÊyUœ”U*¶éø û°ZJäÚä’&)Ëú÷é0˜n fI–­JJ-A ~ÝÀòÇ•èåJà¿üÿîêäw_*µ:¿;«ó“Odüí*ÿ·»Zýåg蕽sÊ®Nßž¤¥r%•ì½7+§Coü°:½:yÕ}µ½:h£»›õFÙ>a»7ëèuÁ†nSlΘnÃN¥M·…a#¤4²»\o´ð‹Ð½…QÜ Dœê•…©Ó²{ü,BPVšîÎ: ¾»Åq)„Ñi© bðª»K¤ ¾ŽÂ' »À¨è½Ä3 <²¶ª»˜¨m§¹‡Ä!0h»srDÎË÷>$ÒAèîÛŽŒÿg=ø~€ƒ'Ù’e ï²È´ §²ý5=I:uP"é“ ­:Óo×iKé¤ùîô¨l»’¦×Æ©¨l ¢nµÑ•V§g åâ"ʈºym@d6ÉIJ¯£*„JŠ! ]¹^zßý{íáÄÂ:8O'£ÉswkŒ^Ѽ‹1$ŸÌ¦ü„ÚàhÊdíÌḚ̀ }pÊE^@X@neáèÖ;d¥ûd}úýŒé0ÇhàZ÷Ò™¸þÛÚË>xç’ÊdRøîu:L°ÎÀon£½ °o&I.QÅœQ»îŠÀ‚Ù©N– £Îå»YF堂 ¢|’dªŸ>gÖÃJ½’Ö$–Ü‚ð«s}ÖâçYuà­zkÒù’Kcˆüä×hnðÈùìÝ.KZæ£iu4T – ¤­îèÑP’k%Cº˜þž‘HÎIåb*FK„ToYh’9ŠÁ|@A¢¼©bä ˆÈ11ëΖ\7žeðN)æ(·æ ¯Û>v–v ÞÏeþ€½@8°"ŒŽŸ#Môɦs«.à ª€Á˜cI  ¢ú9Y§‚9žÆ„ýúÊå‡É‡£;ŒGNîàr†§‰æ€ B<:Qkíœ)µ«£7W'JÙh™{†TÞ÷އ¢è4Ñ_D…8cŒ)E.æµ Iaßò  Qzïå}]Ε]2Ø,ßQ<,ÇÜ% u2x-?ÛÏ1=ns µófvÇ|“Ûr~îÌÚ³`³É•d ès/xè#cÙ!/“C{tˆI,<ÖŒ»,EòûQñžGþ›DýåFH>1 ‹[Ïžéú**²!ÛærK£X‘þžôØ_F–“C™P8@Ù J€È{p~–iÎèÌO–ü â…Q1{ƒåDHáDaá3i$m‚öçÇÔõ>MFØtÁ3Õ”(Ê ‚Òв®Y¸åò@r5ËEz·30á rØM¡÷>íŽu·´¶B¶iº“ŽÚ{«!¨ƒ™¿à ”‰Ê‹Q–ÂT! i;¨ £í6X9`ÀR(ËëÙštõ´1(P'G½?Kcˆ€«ÙßjM–ô&—Ü&r.V¨?´Iyx{v<‹v÷i]°îÁŽq£¥¦Ò[R¿Ë &ß—@Qâ¸o‹ü‡)º2ØÐPZæ{´HÒ %ÌP(³Ø`Ñ*—Ç*"÷’þ¦6Æj0[v !‡{ê •q› ^[G¶˜7D¨ÐË.#’¡ÛÁxxC=î‚ÍlΜñfMîUæ,éÈëצI2È@Hœ£"«K éúF#èÒ’¹™ŠÙ B-Þ@p–Ý_Éè¶ŒÞO£­ÀgFÜ‚˜~­jœ5J]@•i”Î,£à¨FÇn¡;ˇ†ÆË,|é »Y¿#^ݨd·h‹˜>Ù(ëz<`®iôP9çG²ð37¨#ÖàÖ·†P0Ö3_ïÕA?¥ë×è·Ç¬W®š›å“Ãë[߀K:·/Þn§ƒUµ2—K劰ÄX7Êåí$|¿bNˆ2ŽÞ>BøÓ æÇpÅÔ†ü%«‹µ?£nô³‡0ìb%:ï†ÇÞè|½¡ÁŸ]a>«»ÁNý€-7—ñ‚Ä¥Á±t\rG*øƒ4.J:Ýõ-Þ+W¾ñ8KY!Z°BÀ²@ƒç§ñ°˜ÓMòçØBÉ9%%ó×ìäË_¡œ)ÑñºÐŠÒ15BQ;»µx–’hìÄ ¢Ä”'×få–šßÊ–À¿¯Ë°¤6Ï˳…bv;qHn¾÷¼©™›—2”“U&í-AF7UÐ3VÑ3ÍÑþ3ŠNªÆJ©àãµ§FiSÓ"ä·øQFvžQo«è ðÆYÉñb‚±«§­~v½?'CçDÔ¹JÈ4ÚX´n;;O¬9¨ékAç n*ÜŽì×UÈm†’·¾?tÒÖ5Ïãô˜‡*Ø“À­ƒ÷Mq^®’¿XVdGá ŸH¹+ºy¢×=UlD×Â;¯éa6飺:-¯òù½½ˆÆRÀÛx X=„Âá™p¤Ì ˜¯fã±w êî1}œQòÇ}šî¥æ ‰T m)ÖwÝÌ®æá HÓ*U°KO}øågdÏÉ™Á%þ䬿¶PÏL”c7q× #Q;áH°§$¡JHݾª’ÇÄ6飮z1=ÐIºø@'ùs ]üxp¬(=±òKþ"jÅ]ÀÒÔyÚÕãô¹ËÒ÷¬tÎgäy¡\órìÏêXvÏ[,7&~VA˜’“~þvc|Ѐ_Qßq™ïèx\½¯ªeˆö÷Íâõ߯èU,ëŽÅAå5žƒrÜRðéÏmÚ³ ¯–pT Ç }; â¦öO<„ ~ÖâA:ØP©ZÔôÊWú#¾vç< ˧žv›ÛH¡×¥$¨”h,•]aùÒ©6<£ õµ ËxJoE"`TØâMùXñZ;6š"CÜYŽfeþÌ"?t"ü<•”®‚å#‹ú¤þ¬^óaU¨DÓísû(JPƒ/àk¯~è©¬Ž ÊÅ;˜Å{½q]õ 1×4¥Dv•ËŽ=ñãõyãþ‡Õ)MôÜnЮÍd8}2Ð Aè¶uÐ|éá—1ª>{|ü†OœÛ°„%üÔ”ðõ×üé1Á úd³ ²få$dÖ§çRoÎ7ú±é÷Sëä!­éMA|Çìc®Ú–@òÏY Òy GêêÀ™ ŒÊóÇÃñ%E~é›âÜÀÂB$¶¤goxË+š¿¡_ºîäÖz—‰'W¥Æž!Óò.FKLxÓ—u›¦QëH|›öZ½eØ<“ÁÕ5‡ÆÀê–o2!I”q„ï…©Ÿ;“—œ´¾LݧÍ2z¦Ûy¾BWuMÓ÷8‘»+Fˆ¼ß—kEÞFÃ7ßÿàS¸Af¯ÿÀf©{—¾2Cœ*uÍ^W±'&Ÿv5úŸé«K¤JLÃëfëîP&ÌàsnÝ•e´˜K4K׈…³³:ùϺ„Û<Bù§ãª«WMòØOü™°+3víáçmA>/^4G‰üŸ“ /Ý–VÈnmºçO¡{þxºÛÞš»íš»½hí¶y‚ÌvK¼%¤`K•‹:áþñlîžÂæù›U\Êã©ú·øMIz§Øâíã%·¤‘ÖèýG²Šó§ˆë ¼Ý?…îæñt—Ôû‹e¶{¼ÌÔZ F¿ÿcÙüïMäIžú„€ôÑLä¿Tf±É0_×0š.' @Óá˜c!J'¼)î0â{ 5eÖËiÑž,ºk&Y–CË:†/ž7ʉÇa£|TK <¾L/ɼ¥×Më¾&^– /9Èa§@R4 9ß—ÑOÛ‡|1! ñ&¬@0'Ó%¶×¦öŸ’ §…—m6?kŠ'%»L–÷¶Ÿ†ã(ÁÏNO¾8Á«ÛÕû±úûÉÔ*àw[Œ_](;@<”‘Ë“¯ÿ¢¶+¨¤ 0¢Ð ¨À·_ÙëAüƒã÷Ã5ý90ã†0¬6(o¬"[Ñ_4x, ÐÏ”´.õÃ$~M:×6ÂH|Îòû8ì]0ݹl’`iv|†·}·N¥Èøâ\‡`ŒŽßãWÒKÁ‡wXZÙ sÓ *YvôöÓAÆ¿8àœÏO~«ýOÓ™ÎgÜÀŽØa#ìôÓÇ9Èu^ 5|óm P=ZPµ„Þ—?( Šþâä¿k—ÓÙendstream endobj 94 0 obj << /Filter /FlateDecode /Length 4991 >> stream xœ½\Ks9rްoô„{ô±7Ã6ÞuÌÚ»ò†í‰ÝÃŽéðA3‰¤ÈÞáC"©—½3*T7Gã Ô¬F‰|~™Hô»c±•Çÿ•ÿÏoþé;¥Ž¯ÄñÕÑ»#™¾=.ÿßÿþ Fh},å6Z«ŽÏÞåW% R['± ~|u{ôrsurj¥ÞºÀfë¤Êñ™ì<ƒ¦:¸ξ=‚¯qòøìGgÿøró´6y&ÓákË@ÎñyÏšûèHÛ2qÚÖéÛ¢d®p鮳¹ö¬³Ãyî-I~k´ I¿†]ÍÃ6¯NÄÖHeåæ-yúXŸ^À'ô†ÎžêúT—¤Û|3-F§½®o}&OÿÌU{"¾ßrz¤?õ‰üz&‡N÷™l¹¾wI|SüzðßdÀÕ O¿ë½öõ,¦óùé=yí®·‡î>»øf~íœ ¸¯=ô™öx‚ª£ÙJ©À©œ]½äÒ8áZv:=­…¯ü"ÚÖZ̤€ŒS—õíwäéûúôr^”rêœ  ´Vú8¿·ë{MM´ŽUç]Ë ;|èYÆyw­KöZ¥ñUoóBq)ý½½©ë½é›ÎC— ªâíè×Dl•Æ·ûÔâ©+î‡þ拆»°uQO¾m•º|}Zý:Ž:›g¼î“Ú7Ñc›I}œYOÆ>0&ÏfšžÕ_|Ê7˜ÂRÄpªôÖˆV«<®Q¬ö?’Ø”RÅ´¼ >ø´CåVIj¯ÜÖGééÃä—…6³¡s|s^8ã²z£.p&±Qï”ÊE|ð¯ON¥³[Uã¬2âSüTEP&~š·ùªD(O£Æä=(øË${Ò™e+D´ÎëÔS%Œ’h}°{€VáŠ1Øä*|4:FÝÝ´+½y | šrNDÀ؈¯ù€<é û{ÏH:'[¼Aò¤ÓÚ3–&÷/œæ‘í²½\°9 '^³/øÒO…º8Ihúâži~"rë­LŒˆèj–åÁÛ‰avVƒÓ“úuRY*Ì¢'Ò!Y‘P(>Í`qòB(ëç9b‘šÒƵR“%®eò¹ ¨’ŒÈ1 Ÿ NO’,ð¿· S¶£“1ʰðfJD-8 H$ÇMb©&ê Š¸Ê f—ã¹®2¥6z$iú¸ˆÜ^T9tW±'Ç ìpBÌim\¸ÍSÔÀ(aCŶ¼Uði,°TeRðÐl„Ó¿°`ð*6ìÅÖ†ÈXòjÖÿ»<½ JÏçé“càÜ¢RjÜŽ xÌ€êÄ’ÒvC‡ÜäÀ42ç‹Më C"Þ$‹ëJ›ã0YE“­›éÿôòc&  Hµw›' ZÐLOwœLòÕÊ×ÃQ„‰-SdŽ8ZÒˆ£€ ޅɼ½~uwuŸðB yÐ SòÙ@qhõd÷}±ßÏzz›ŒBž…¢³ÅI¼§ðX´NT½ËCvû# sBçK5BΧ¢€U¡ˆõy_™T¬Ž\˳ø…0)Ã$ˆcvÌÃáÁA”yÌ.vÆóÃä’tr¶EO=#G÷0Ü'ÝPqùÉ|ÎáVÆmÔf²•Ë©2o«­ªx ®[Ik:œæ:Õð¿ÄJN ©‹Ä  €õO8{€(X2ˆgäŒ"·"J@‡?žh´%¯`—­˜õ-Ì€wË’7Ñûô=¬€“»HìÔà´LH[4°?m³[3°Ÿ¢&F€r¼É]D;Ðèf…ß\#ÿ¤€7K KËÌUˆÊ2‚‡MÈ<:mKöR|ÈәȞ~ȱle¤Í‚ÎmïŸÈó]b¤Ä&Ïk÷†xkÉèì$ ÄdzS ¾Í¶B´¥¤oò«È숰 7 —sØáP®1ó;-*¨äm¨z½'Ó¿ZâP™žÇÜ"Ð>œm‹*TãuáFʇìù„Ö,²R*§9¢aAù:­ã¼‹ÎQ.fr”M1Õeo~E)x“Ÿ*‘ *~´‘1àE/’C€ eMqϦÉӈ Oi^¢§FïŠF5X=£5#}`|Ú1xwÅD’V"'kE¿)3³”rZÇKQ­àš0Áù M¿ ò~J–á(.øQo3ÊûO‚uam®/NH’&ðJEi¬7Á&OcÀ¿È1|mPi=S÷7Ó$þ—N©×Ï_9Öþ1©¦Ãw pÌ2ó¾ÎÔcžüfÖ*º¿÷”†‡<ÜÜlò«Ð„Ø% *å6]ëš­ŸÃ¡´N‡•rÝRã&<!IÙ.{"ç ±¹ReqæÝ˜yS9š@¡PÙcx«Pù¯²Â¦öBÒ iZkò"X]éû–jƒÔ‚‹ 8î翟æ ûz)6ŒÏ‹güO3(æá¶; Iß§ùÀìÈÑ Â¤”Bƒ{{Ãô©›\^æÑ*Còg)1¥öò…®{ ¥îV/S÷ÌúRË­ê5C8š-ÐÐf 3È=:êå¬0Àn!n¨`3&pL¹Eé¡Ee Xü´à“‘:!Sœór¬>v}Ä>Bx‰ŠGi…ç%Ñ5þ™Àõ¶2 )cL¦9‡Êûü³ßÃ\r‹vdÐ>*îÜ›"eah›¼Lû˜‡È”ð’¢èPƒ3$ [п¹$8vÈYÛ:’>3_9#…‚hØ4 Õ„”ÙyÙƒ¬ÌEîhÏ S¬+Y?º—ØfýKÁ“ú,s«S¹i­<…cd4fR>f¾¸Å6¬ÂámÚÞ(ëTZ«¼º-’×gÅ·Ù€G .cÅ œBgcDLú|6‚ܵԅ҉F)ãfwaŒ2ßÙÊ!~¯8k‚–ª©y·•.ä5Vì¤ñúq“zX„ײ<+yšäãÇãG&>~»§8YØjþ8ÏX+á7e³Âp»á!«úªª«ž¿ïoªÖ_ñº)´ Ò™âHZ˜s,æ&™½&p¬_ ƒ´¹ä pôÐ3 Cà™—­r ݽ=ëH˾Í&¦Ì¼ÙŒòçùZÀ“™»›Ê^Ù-òøRuaÆ?[aÖÏæ{"ò åŠjà‡ %8åípcy,ÀÏÉRp€W9ú¤vCäŽ>ê´ëCÏ}YZXl Ãú•¯*†“,±ú­yd£‘*-„Ň1jر© ²8Âç=ȱ¿n‹Ó;e»…˜ ¥Ò´)æTl¬ÿº>CºÉcÀs‰ÈRr;Td¶áFtÈgpLc4Ûp+Ǩ(°Æ¨«<‹¥䂟fä·»Mû’ãÜæ9ð´ëf÷cÂݬ¶cVEÔ‹þ,Y?“sq)ïˆÛuì/Èç?Íxè1‘šNÚΑV*ËPö0üÆp"EdÓ©¡IÏ|GPåÚÔz>&»  ã³…é[¶þwøÆÚÑZ¯ŒµR~ê¥Ô1ÏÊŸ!Ƕ%³_X{™zl±3¥áù*IuÚ…xÕx’Ué^’v«í… w'µŠÊ,„Y÷y+(t0<Ûš±4u;ňBÍ_—Ǩ»Åát3Na·˜™4Öò?xþc‡.U3?ó`åæîoÒ \½y¢ŠÓÅ0>6Y¤ÊeÍœ*›PÿÊŠÇfB×Ðú4æßñ s¤ü¤TçI  0cÖÍ/I¡R»j.7þB)TæBêæ-¬¢¡{ù.iî&µ›âvƒØw6©y†h^Ô2CåXܼ´³rþ€PEÊ4èê ¨’I¼‹ _ßé¤ÌAº`'‰§$k˜ó™ýyL¸œŒŽÛ`bÓdÛÙ˜ò¶¢‹Ö.SeCÊ Æ}ÿ‡ [þJë áÅ„Ë<W\ɉ&[Vâ÷ªã–¶®ÕώبE’‚¥âj¸C ƒÆql7'!ŸTêý†c–ý¤ã?›v·àŸ ªæ,ß @‰öÈòv iƒ÷ãu¬;ö0BH (Î…‡l˜—z›ßù]…¾·‚͖ᘽòÏØ§Ðzö¬ó€ê4 ¾¨êmz ~Œà'ΓADzAVta´bVt 9öÊ÷yIˆÍû—ÔË].,¾1) uMo)’–? k—ΛÉ[–&õ8äpŸŸÚà6ƒ–•© Ÿ i!í,¿BsWæ†.“…u×¶™d¶:ÕyKüž@WO#ª”îÄv²Ó|t©†Nž’±¿J\ØÛƒ>ؤl<½ËgTLüXMë'„Hî6: ,mêšÕ¿ËÌån+¤Ð9à*U›ËÑîmv̘´®qaºÍ~Šz©ÍÔéÔjŒßÈ5&¤h¹Þ+gR1ûÙƒƒbm¨£.¬VÀX¼xtPs)W¥áˆ»F·Ï—‹ôån¥VãŸn){[»é™Þ._in\4ñ!m®ÙéÜ–ÝkáÞµ>O%Ûtþà¼xâ¼VYLcšCúØ&¡ÑÕ›Czë·>Z°ƒ o~ˆïgG†ÿqÖ¬ƒendstream endobj 95 0 obj << /Filter /FlateDecode /Length 4739 >> stream xœÍksÅñ»àG\åÓ]âÛÌû‘©‚Ä@0¡bǘ$ÀÙ’-%z!ÉØä×§{zv¦gv÷t–+„⫽™éÇô»{ýÃJ r%ð¿üÿç¿}¢ÔêÕÍX½:øá@¦_Wù/ÎWŸ<Åv%å­U«§/h«\ù8¨• ~ÞŸ|»>ÞlÅ „*®ßnH!úõÕf«ÜcˆëKx«£ðx‹…6Óì¼Ø¤ÕÊ®oñŒè…³ëSx„Ÿ3Ú¬qµB·>Ûlå÷O¿,­i°T€žs«­´Cpaõôü+n”BghOKY¤œº´ú»5.BXiç@˜ÁZí¸ü¶b5w¸”òÚ”Ã7Ààø°þý़¦2C°¢ x…«Êú¼Ú­ü,“¸(÷80ø¨á!í8Åð»ñfý¯ú<‡±Z¥WÍþ}˜t¾S\e!2e<¼pÈG‰j™áŠTã1Ç[®@ QÛhhÃcƔ۞)\œJ§msÀïqH¸£0†¿0'å ­§-ßyunpQE¿Ú* * ³üN.¬—ùÁjRA;¿·„øpvØ`c+#ÑÅY¸8Ù^ÜVEy@a«Õ€#iý¦ý'É,oüר…ë ²^jÇßαAëÁ[¤á>Jïc4q–ÇsJocÔÎî)߬[E»¡÷2:nôN:‰KÀvò%×õ‘[Å‹öpÔëT ó–éÚ)A2 È Œ1®Ï7 —`uPeáâ„1€ËÂoé” Z.ô*h@º?‘ƒˆÖyº¿ˆ%Œ’ºûé±àp‰UNV×£gDIh ¥9ñ2-·ÑùõQ¥ü’1ö%½•\æçÔ¢ªœ„S÷³–Cotè!m 0`5 ªÐ{е8#³ Ñà0%2J®nšS.‰Ü¢‘Y, zkbŽ…Õp¹çì5^–ˆ@¹òéþ­0ÒjbB^r™^Ç \’!£Q›ß*¡ˆ‘ðÖ ¸ÇÄ` ²}±E\”Ú‡|¸6ÆŒ0½“~}qD¡k;+cº48Ø“μޔǤ$õ ‚¤LÔà´íê„`ˆzBÌgIé`]ãwn“¤‚ÂÌ¥Ö‹zÉΣ[}ÖÙ‹%'BÆS÷­›©ü£ëӢЂ výÕ%æ F„PøûÞàKAˆ:K¼‘ÜMÆŒQY¦ ;™Á("FTØ,³`[ÉÌÉ,J'§Ð9óŒ«pˆkòü¡ñü—Õ™M(2‚IB·¾è§+¢+¦¾’(ä²;æ½Âš Á°@ ó©wG\€ðø¡/Šæ@®³s(@RÀT J ¤Ùɉ=¡Õ(9W …³3¾»s·ài-¾$>.›Ó_¡JÅ–¬S’ê“;4`5$q!ØÀ$fUÏ¢ÃÉ?cÔ1jE4:„&`!†F-C+&GüÌc‚бek&45Z›¤Ñ-Oq«ó.:ÇÏä,eâÐ{ 81ˆÖ&sJι™Â?ÀO‚mÖ\Ð11ô@AaÍŒ,Lkîú†—14èö ,ÒÛyˆDµìö¡Tfà6Ïz›Šøv&õ”̨Ó)ŸËf”‡×ÇÉZu`ÚsöaâÑ0\%WÓr¨jÝD`©|'ïLr¯:¡3dJ²ìéí0¿­.8ÛÛ8X_Ãf®KÙ-:ŒIC[dšp*%“VtÆÊzLE›œX‚Æà[_1BÀT@€™ ݯ6ls¿ø#ƒï©±„udój¸á¾0€ÒúóGŦýƒ^¾†@|†Gi€éÉSíI" •oäÞNx. —D,¤ò½g Kkp½"[0nå÷@š@]›ô2àòœ¸Ð.²ZsxϹxžˆ~­*ijÓÞ%ÊàƒOyfZ.lW-,vøŒtÌcú.k¶—v€6Á:7jƒ‰c 3F~?n¬Fïì8AYÒ Ö ‹Ñós.°Í"@AÙ¤Þ?³gP&¦f§A©ã NkÏ£Óh+ÑBÛeŸÎß§Š -R&À^·Ë*§%Qß8 uÑÁ®À‰›]Òý#bL,¦{¶DÁb˜6éé„6ÊèZôSÎù€²àFñìËrÎTK5x°lãžÿ—‰¶`ˆŒfµ # ¼?ÝTè&¯»&vú¨§&‡’Ó ®—´žª=e=çë)ÛÛ8×›N—µ Xàì<÷ùÕýˆº‡Eƒ…Ú$Ãæ M­Ä˜¥‰¾i­†(qfg5š‰²³C[j‰tAÐwgÑ.˜Õjtš„‡«Fë®kÜqL¿cÎÛ˜CL¶t˜ Š©fÖÈþÄŽºÕ¬bÀA=+ó› hj2SG)‚š°”Í냬ÈÁs_ͽ'¦%`vûÒY_f¥õëôp§×–ÃväG«` ¢É_ó;là }›KòÇ$… »m))_YðóÇüeâÒã?+ÙNG\#¿m°¶ ¿$˜OØÖ‡ è3…Ç m*vÓþl*“„Ór“$K"õ¶°)ªþŒÇ–°Ÿórá³7S½Xbò¸1!öìyý¡¬ßO)2 aж8/‹›üz¤Wö»éÈOØÍ5aÅBîÙËëyÙ!¼fÑXW¨%A1zVëe ¥[¥O¢ÜÕf•Ñ~øôàñ|X½9«Ï$¶æµ]+Ôêü9䳞þ<;øÛ;6ûaû`q;šd öû+æÌÌ>4 õz©D„iHThq–kM©àðï},óvƒ­H0f2ã•"<žseÄÒûŒ˜Á(×"–¯{uXàõmâšÞ9—á; wtQÑî ’’û¦3%ÑÙØ’¸–K`.Xµ>íê^³Q£ŠpÁ:þâ¢FIù–Ñou™I«»@ÄËû<ïyËüAbaÉku÷jWæ…GÊ€²\µ Í3UË”Jõ=Ûr/o˜Š`yI¨!G1M ^ƒïIZ)NŽRÍÆZ%ÙK‚,*#Xç=½Îõ§$Ö+Œßr)ãë{Zƒe´½Ú Gy}ôÓ z6/º!–*9[»‘ÊM:¿ÓâÍ\û¶é¥Æ€êÊøÖF.7än ”´®-P)á´Õ¿þÖǨ7‰HJF‘Ô{®ñÕ Jà¨X<×b6&Ô/R3KêÐÆ{¼üwYoœ#7iqdšÚÇB°Å«M2rYºé;3-ò†©mîÚcŸ …wÏwÚ®‚{ŸŽÂÛ´Ä)kwùmWù‹U‘n]Ç4”Ím2 žgí[`ÍÀõæÝ X¡d“¦Ra=s¸i/"ø¹æR¿Âu²†@œpÿ›I:”'•3 Æúe™¹Ï¨ÉÒM&ˆ82ö¦—бuÐZ(„‰5ÞEž]M’þ’‹²6:úüRc±Á¦Fƒ;õHÁIyU{¤}%`R¬5#³¼ßÖeÿ$dþîY½1]”ú _ÝZ·ÚÌ2eê–°?*þ"íúfk&ÁÚÑJ¤ÇCJE!F¶ËV"•aÀ#ÏÜH*Ã,[”ÎIè`ÉJ-ÕHÑ‘(,?Å;Ƥ€Ój¯âà 7Ñ3#—¾ã1ÂñÑÌÏ,{©‡$’ãÉ(}ØÈ2³n½ÏV1ÕGöRNä°¢w§ä¢Ûg;y‡„uÄ®ÿ…Bþ²•AÐHÿ]R.£Dm£}—)ŽùÙ+€ˆ¿sº‚TØ@Z 5FÒÿ]ÙtÚK?‰—êGȈ#~ý¨†S§¥”òzÉëg˜N¢ò'ñ7 80Ážd´"U}fŒxÓ¬ãó ˆ‡}¤1kc­´nò„fþ&}ƒ:`·Ô7 Î<5ÞŠZ>bñs`ì”5å ñJ›èåþ:­ÐcEÆ.ƶQRã¸;0g{‹S€“y›q¤ï°Ï*ÜaÙבåÉŠe-kâøâÃù~\¼·YÏÏ §}“åÆcbî˜V¦’‰¸zs xCãVÚ8`Vçõ“pÊ=j&ʃQz¥-üßxª™âø¥A‡‚&Ñ8ÉtiR‚L•Kx€ü¬Wℬ2^Æ"–†°ÔÖƒB¹òæhZH\”Zi „ ]Ðäy:¢!,v‘³È85Hû>ÀQrlæÓÀ)p¬D©æ~¿vçúûá°wûç­Ä9C©ºÆï«]Ü*`Uî|BÂ{`,°ž¿º° l¸‰y'ÜG/ÀÔq‚»Û†‰3®Q²Åžº:ªÉ<`%c§£w5‹pÏÆ4*òt3ÎÎàAG_ía8©éš«à÷I#„ß>ØQiÚšÅüÜÔeÎ=@Cm•*Gù†}Ô¹M€Í|áMævA¬¼h€cNb¤oI¹b¬-‘¬/Âwpà(Àðnì:¤ÉŠ…±Ý®ÕÈ#³íHa{2AM§éôuN;DÍ{“óSF.çLû5²%UÉWåȾ!BõÊQd9ƒƒ|UQ\¬çáÉ2®wµ‹5^Qw#½Æï¬ûXi®{Û ¥ãVßMÛ\tÇàÙiøBá༱r3_½k[ ßibŸ©ëüeQT¡#1]çyÄð? 7žKÒ¸§ª)‡ññª=&dGrþ ½ä•‰Þ°±Ý´º(:áe‘ž(—Fâ_.’Y¢Õ†õ31âNJGLi×Bµº‹M ŸG{Ò)(¾¾°ø<•&²RàœdšÝS믎™öU±r¿§JfDòži‹Nl$º™&n:¤é ü¨nǸ;:( “}%(ÍG¸e—Ø«uÊw»ÐîîG3²¤O `>[Ê.iƒ}ñn¿Yß"—·tNh?ÃÈʇ¦`ß̽×X}CçQÀ)2¯Òj|áMupËm§éT~b¥ÝÕB1Î\ìÂtýÈ‹¶[´ŸÒåÜuúu=~¸ìóns]84ÿêHm}·–³Ü(ŸžeMùaiÈF㦠ŽBç~ò “zÈS‹l¤–"îãÖl¦¥p—»^w®‰v]³·—å-Ë 8°dà§ûnÙÛ²¯Eg\@ÕÛüZ××›MSç©C‰b¾ñ•u‚pýPºÔ[GküüÉÅÁ©†_ÕÔ\Ü¥z—³*Ëïüª¼=¯Û¸ eÁ³Vmë<éÒwîksÄj©Ë6N†ØËî§ê»j/à‡àâ ÿ¥‡|ÎM»)Æü0XÃõendstream endobj 96 0 obj << /Filter /FlateDecode /Length 4494 >> stream xœí\KoǾ39æÜ69-cï¸ß#Î FËÌÉÉA"%Š6EJ¤äÇ¿OU÷ÌtUO÷ìPVb#|𪷟U_½kùj'¹øßøÿó'ÜÎë.˺£ÊèSÂÔyYQ­Ó.ʲ6£YæeC™`¦ ªL°dBäŒÊìÙ}zröÛ/öÊJÒ×ó¦OË _йGøCéñ-Å%½ŠCfw€ýq2#®Œòƒ€ü¤yÎ3NYt>]©‡Ž6QšÊœ¢£M”& :zrò‰hb†Bô½Î2"'Mˆ–×õä¤ %Ù‚è <2De¢oùúžÂèŠÉ¢“½œ®$;èøéiQцèÿµè¢&æƒ^ÿ¨´hON~rZT4!úÓÔ¢‡éJ®‰ŽØ$6¹Gl>4<¢² £w‰æ³eó–ôТìMˆR6´/Ñ|]ØQY êšíq£ …¦é9¦Eåfˆ¾+zM¡Rù Ë–4¼'„éö¬Ì½k³ÿÕ¼ìM“,$^?'®èi;Taä,c9¤ífuÌÅUë‘¢:¦ÓzØè½?x¤,Í0ì râ Ì¤ÿ$"È¥‰Ð2øà‘Œ­Ü `4‡ãð)æ Ñ gé„{ÜB !UÌÙ#8ÈÈÑ ØÖêHgŸW³p°¸¥Æà„\frþJ¶8”eÊZ@]\'‰6SQ$-ÂOÎmð™ywË^ü&mo¢jÿ’îÉþqMwbÛÒ£/ò1ØUfãÍþ û‚+®²é¼é3ÞÒ óçWEÐÞt1s“îo¼òV3©¹*`ª’('Tuåg™Ôô¸'#Mb PìbhäQ¸B™ Рäd;†Õo³)a°AN¦è³¼3ŠnwW¶›éìXô%áäU¾•RV…ýUÅ$üœÎ_ ãì(JhL$û`¤ì,r›Þ.l³6ð@ë³D1¯S†#*¥ÕadÂûˆQ°öˆGT&5 çjA|UgRxáM°Y¹ú¨·‘Bܤ~ÿÏ}9µ(ã7tå9[Y’îHTúëçûj’ò꟧ùnðâŠúã°^WÕ#E(o/è-6É#¦¡ÇíïˆXwNV»opÚä›®Œë³&v‰z.ù¸²VTUœ[õ pm­ òΡë*<¡@»I l×óJÒäÌ`½ž¤i¹µ pÓ—tgöë«§EZf’&æÏ©mçü˜¦¨eè×âпÁãSßÎ)y+?œ;‘RjGÝz†dÐ÷F¢«ªPÄŠõ¹-ŠŽ¹_Än}\l!ÉÊÒ?bµvÜÿáÓ¤/À(î?gø¤²x› ™Ê¸Ë£¾v¡çu_£ (u…J|¼Ðš+Pk‚–µu]Y‰4o ÀZ°¯BÏš /½Eäd•1°,«Û—ÿyøý|ù–õj `³6 Æù ÿ !/ö!SÀìÿœöŽÀ™Zý¤)¦<ë¹R#OåèsPˆÌ -œªñv\ –ž‰5&øuÏd ø®Ÿ´pLdHHºà¸ŒòHà–Ä–v=o“—‚Yu‰iI ‹íG…ì-xÁ–ûó=£ÛcŒÃŒ˜ Á“„h°S ó¸N ÍÞtÍd†ÇÔ°‰ŒÕñÏÆmäÖb¸ÑÈÌâLn¹â’Œ3zñËèWI›%ỉï]š(p™èH8z¾Ãt%j0Ó1a ÑO[ íEpóç}Ì'àù1 ’.ɽž0 ¾Ô˜›ÏÌ"9’‰—LÖÝ,ÿL^LNöÈuEìz×ÇFOñƒG*î@É‚ ¦¿tãé§t†Yà,  ¯þˆ¨‡Ç&Ý­ñ³=tTFYð&Ù©û E#ÍþÍ“ûÄ=å£ËL° -`¶ñ–Vè5~ƒì›§Ê™8%ðf>£êC})c÷‰{ö0ÙÁhÔcšÄ£„†VâSI®drþP޹Ox±.eTG'|;mÀ’0õt=í{Фrèµ·@@MMݳ¼‡ úH€‹™ G5"ñZ¸èrU×±í½à”gñÂBnJ‰Ìiµû¼L‰ÈÝL:9¿9VÉÐCÂj⢊Žw±ÁRrW]è9…zÝ#L‘-r¢´šÕßËço.oSV *Œ:²†›‡\‹9¡sÃ#=j%øÏ–á_¹â®8&-aÄ5¥ß}ñCž…  ®êŸ¡ö„ 5€nŒ-rö†ªµkò™Yù×ø~,ºê#T çy²Ç=$ÄÏl[Ú€@®¸‡* Áœ$w ö–!ПwžÌYP´GUAìä=É2P+³Ýΰ­ÄÉnÃ&0ZÁwH“×ü}Ô`à4¶Núƒ¦‚!ºæ#òžõ3q'`buæç%¼náU‚©ƒ ˆŸÉä½&g2Ø•ÎHÜÓEýùeYDWÑÂ2KL7¥_y•‰ŸÑõt/“÷:x¡Ép¼{„7}uj“"fi¯Èû¿Jð³A7óÉ5ÁÐBuƒYñðÀ \¥¶Ó{`:Q)v¨Ê†:Hløšp„NùfBû"I?ûßOó= ìÜA[ÿUbüI1@±ôëTnßÝæŒBã•IРSÑ«¥ÄSŽÎ #+§há.¦xÉþ¢ìU¼¢t˜0T›|KllÖ 8²nht¹Ä¨“÷³Ì_8ï¢ËµÂ˜ ,%O!·ÑÜÆ\"³oóæ˜3úÏVÃfzm 9ZúKy9Hg·kH­²²ünVæ²5T6VgWA¢3M×<\ANLìkœ@Y2ð튺Pßœ–"pídÆìdòáÙì¿"»Œ™ëâì*¥DóZÎùö“É>ƒ@–Ø•lÉ:P<²¼Ù2lL&»N.TÖ$Ù“?’ú&¤ºÏ£JšÚIãZ.2ãüǘ¤7(„_gs`˜9`ËX¹•>âÉšéÁ“0÷Е2Êg’jä•™Ër§ç ÜzBÁÇ$Ý$Å·ä9ï¥ê]çÊ3§õóú>ʃfÝ@~œC ‡ÃÓT4ý»ˆêâà‰ÓvìV70 ¾n˜ÛOOm²Y~ÿêêæ.«J;Ó:OËAK1· e´Í|X·‚™×¬ØQ795“’,£utV+Ö­|p[퇬©ØÎ©®Ú3KN ë” «D I»Ü¤FÚÈ/÷ÀÏÝ=¨ýM‰!Ìzx8çM(IdÛs‡gŠ{@г/üõØíQø»V"j¡ ˜QvÆÖ—ɦÌU´ÐѽS¡‰^ÒÓO¡ÿü”ÔOêZÕìì ó¢lÊOTm¹ÙÇöÒÒcq;µ]s'líŒ$äÃZ p:€(Bî(Kpš3^Õôbv{7búñµÁùWPð8£3½Ì‘²cÃm°±á7äXv<3pÐ  uÕN‡!X3®I ˆ€Z›|Ø×Û¦ÜÒïù·:jV¾õR¾‹µ¿ãßbäõ‡¾Õ‡üÛO°o ´±ŸQĹH.·Ì˜«ìš^®:XÒ‹ÀþËu.LlÿŸÕ['¢a,ÎÔöeÚ¿ÊAõ²íc;[×:su3m^ÿz“9ʦÊÂËRžàižòŒ+ª+h²EsòîÏ_ñ”Ñ£wQêJL¿,bÚ4¬ ƒFsÉ\ñ‘áÙ¾òmsÙ7•¹&äôKd¹J¬„S¶Î ÎÄà^ÑÇÌŠ Mú^—¼ ñx#³w¬ »Oà `æ¢þñÛ;á?É€ç‰-¶æ“úm‡PH>%&s÷¿ÈÞ·I®oáää›ý·8ùëÓ1þn 냹Æ1Bü%ØQ]e  Ö·ýóÊGûa{*.>sR÷p˜×üHœƽs_ãèlã7¢qj“ï‚¡œó¦ãv÷ÀÐo¯°è†ÍÀf ~'ðNaÖq”~êl÷3­ws‚ôHžN¯ÑQ[d^bŽXñP…¦M,qm\SÁ^/ËK*99û°’Šú¹&ª1=¼=RRéžÉ2†¼¤¢zÁÞ7+*‹bm?a8ƒíýõ€JË!„Ò­tDJá£RºÛÚIJE6•¾‡füç…§Õ*~oa]*¿:Þ¸¿éedTƒ—3jv=GµfïE¿À:"ÌÖ\m­$[R3]²¥©újQtv~pªngkTÓgVrù‚MÏtëØÍ<ØVg­àRÚÆ¥C޲MºÅ¡ó’jéþØæ>ßÉÌ»>Ò¨Tt“nÖHÍêÁI@aë-Š»±¦ÜâþO§A!½Ø¡UÇSÞ8çBÏžÀ$zQ êÚÌÆç—õÖ•Â2C L³e¦àpUyíRÇ}]`Õ¼æú¢ŸXx'¸¥Gš³RWøEž£îuü/\‰qœäôŸN°1IRqC•šD¹ì•êq=“z©°‹UjgRŠu[ÛÂ-U ´É¢ ÝEððà”“²`·|“¯àݘ¨=á«Vé/±ÂÃ^—6}Áw³ Ôÿ9ÃåÜh×(—ZÔ1Â+šOÝTnú±k¹ªNÊ:ÑÅ"R#aCNº­F°E¼aK¦¨ù‹“mözìIë“ê_–Rýž‹šŽ2bÇŠ‹,Sã£É½™èàc›7ÖeMÛ»bÇË®4¥¥@÷d‚Y²»<Û8èÏí–?:[Êê5™Ÿï¥P±”®Tx´\]ñ½&O`¿ð¸¦Ç|ÐJ‰¿\ª•¸ok‰ýÍ)ö¡µÕs­%™Ü^¯…(ã¸!„ÉoU!U®rø2þÂgcø¢\H ïÉ¢ƒôt=Çyõn]Onýº¥¯ù;}HU.xM‚ôVmtÂA²-Ð÷©5 £7Fo;èVY«‚>Ò…úçìß– ºþ±cnãmÞÁIþ‡-& Upñp‡|!)ÐÉøìjx<÷44ì»KŽý 0ßíÊXX.XM¯Ñ®ÊÒ‚Q¦Ip줽|Jí6X)„™J(:ßï7M«@­[ËŸÉrx‘ËÁ›uL£žKx¯ïÁ}G÷¢òR§äÒ»Aý«EéHü—P6¦V$My6X'³[CxøR—·í^:¶?7ê ‰’¥ŽU¨·ª‹ŒS© µ° ÿ{NcÏ¡km­ÜþåÉ óEÈßLÂYŸœ|ÿýy§Øendstream endobj 97 0 obj << /Filter /FlateDecode /Length 4479 >> stream xœí\[o\·~7ú#?íÞ“Ãë!‹8Esi‘"uRGEQ¤~XK²$X·x•8úã;$ÉžáêR£EÀ^qyÎ|sáp¸?Œƒ8ÿùÿ£Ë'Ÿ¼”òàt÷d<8}òã¿=˜ÿ;º<øü0ô0B ÞypøæI*¼&㬛7Â7—O~Xý}íÆÁûiu²Þ(©)Ìêh½9ŽBúÕõzôh•Ó«Kø8ŠÑåW7¡ üa|ñþãz ?Öà)oC—É{íõê,Ì3šI;ãCŸ¼Ö«Ã?éFcÒT«|ØÀá1P{\§™{Ûƒi€ÕDèl‡ÑI'6úH?¥1/â ÞY«Ø†ÑzMxÌó0ÆŽ£r6­é€`a˜5ÃL f¢k~Æï[i ˆ¼õ^Ò5ß4\WÞŠI­Þ%&:¡V»u D:T/#ûGoì¤fúÍxc'g¥\ýX÷“%g¬#oµrnuE¦<"óÔÏ»y©Ñ­N#ÁðɯΣxå¨%üóZZ E·³‡q ’Õ6|T°“ ø¤Ãž ‰aœã$ ž~"âž§oŒvJÈf#§iãÈjg‰ ÂB·ºÆ´ú šõ›D§#Rš‰˜Œ„óRó4˜ea)à zu~]ùDúïZ5P F:PÝ¢7—õ3º–[kªzÐÚŠ4ÙvAìhòö‚%EÂN2Ó‚zƒh {ÖB‘äQš[~XípÇfŒÔ¨|¦bXo´€Ýy·úãZDëbf kµš!5 ]Ô/ vINþšVï×2ØEmB£ð342|¶Ìzm€õßÔê:5/)¨ËÇÏ9 /ì §áKFÛ%œ‘9XØër¶ô~a4_D/`•š°J_7²ÏxǶำê£Ì”T ¨®ÊÍV*.»K IaWçiƒ#À„ˆ+ L +g@ÕE¢4ao~vy½=ªœÖ“«®ê*;"NîòjщÍ4ŒCHˆ1ÖÊä€V¯’WãÒ«†>¡[b!™ÒÁVÁƲ{eç•pT}W?ÃÞÇÑذ_ ð <Íû A“㺠’ÐB™Õ‡¸ä$'[g˜°|ðÞ†aÐ[-‘"æŽàð†àð…'0£R¡ÿ\‡iX ÌNžœyS©ÀZ8«£g{ûÙzcx”€´Ú|SšÏê8ÌÅ«Òáµ^—ÖwuØê['¸-~ä›'‡¿E;{C¢'μ›»‚À>­kmB«†VMôÜúÛ•Ùnk‡“އ©­oeæÿ Ïȧ¥ù¤Žû…usǨuËQ‰ùÿ ×áKÏ »û§uسʴ~µ£2ì-ßᯖ'{ž¥‰Ö®ú “GVF L4¶ô ìÜlm¯Xž·pÛäQ4€)°»aU‡?Bݲ|ßUN´ kñÂÚ²ÀïÄ:•á_ÞEbô)©Ö³jA.xÍJ‡L*–ÏzË•qÇìʘ)Ϫ†wô1DÄì]Û„;Bà‚»§Ô¸å)žq†ìšÝf\F‹î°Ï,kê0^ýoñd,ËOZ…šÙA㎢P·¬´Nè„ûíø‹ÚúgUH^x³ØÒsb¾ä 9š¸‡5öì´e—ÃX+ðYâ]¢Q —Øs{Ìǵ[–»È8ÝiÝÙ€»eQR‡Erî°U>Ä Õæ/ÊÀoëÀ/Q‡oK‡÷òMÝøçü1ÂfÁX– ²ñ¦ÿ1!Þ9+›ñ.ÓpÌ ìÈx–U(à`ÜrÅêc@W«ÅB‘2Žr.êæŸß_ÀugGü´W,§«ò –vóm>iv‘ä6UcÕîþQZÅÿ-\.Y¸³j‰Ã)æ§w þ‰˜ƒƒ¨Ã°™Cšß5ë5Þ±ËÕ¨ä9/‹G£:†fZB”¼â àuGØr!kØÅ÷&Ü žî†¼üòÿäå¯ÿC~q¿òêWÈÿW¿BþmåUy>÷…÷ý3GÞƒ0ˆ.tÚGÙ~˜|Ü0õ¸a¢ÏCaýc:C|ÃOõ¶Lu¢)þ‹rªIE%^Öqü‘çœÌVÆÖq|çñåãkvMFÈA:x„·uZÉãoP‚w¨ä}Y[ßô[ۣϼ'ì¬ç,ÆËZ¬O¹¯ñ±É)Üø®®úŽ·Ÿ¡æ•Ö/xPÕõþ…gkm/;8Ɉ1Ü¿†‚½ª—µÕsúƒo.tÝ#71§tí³†É;(P¨Õ•VÃS0ñØpã.Ä`<,RÂÞÕèô¢µ|tìÒ™8·Z2ïb¿5+¡ÅqÉï×ö÷k¥öÙPÆOá£`·cù™%ꀇm¤±~ ^¹º/¼;ÁM–ÏÝú¿ÁÌ‘?’Úq)žN<ï|d‡ žuçŽî|QðRï_AQóýëa4ßåÎusO¨HÐ&\“kíåýºúÆwÅéb]{åd¼ÿ×&^bwûã åhsS­Xº²v:{‘ë÷×2ÃqXÅÒËxTA+¨f‚$S  ¥×~è*²\“&Æ$‡ uª)Á¼ŠK»w´PìÇu¹2§cI@ HáC*HX”žugÄ®" õ$'£HyHäm®a!R‰SS|ƒƒÍØeòÁ‘Ç€v”ƒ0¥‰Þ»J;8adŒjê*ªÀŒ¨}U%‘# B\Hò¼Ñ…¹÷'õ£mµe ɹr!M ¦o5ÍMJX²½À…04 HÕa›¼šA»È•¢±¨ ¬¤B=a„S’€ˆ ?ÁÎXyßjÒZÄŠ‹“X ¦¼N%‰S U&§Å4«c©emÀçhøG_  [•YgâþCiŠTNÐÊ–ûW;2Õ¢ ™å>h0Yžîb}$ˆ¤)„ËÜgöÏÃæ7³ gÄ'MºR¡…íøËXLû·¯Pó–‡Ï«?öZÂÉ3,%TûIë¿Ð6A¥½ƒ]΀“ BLÖ*–¾¡+‹N™Ú¬Li‹4 D¬{<Î:ùfŒiÀFZu×Ö"µ œ”n··{sí²ËyoÊ£„²KÄÖ]Z1¥WÐİkV€&ËÌÞ{&‰ˆ¡èà «®þñÂW&ãõSÐÜmf®„9Røcÿv¢¡&=ÀÄu øþ¡ÔýKOI8©i“wøû0‚?© wö²ƒÒ¶åÞ¯r¸¨µ>5J8|¤ ø\D¼›qoc1r²œ`ÉÝh‘¨’i©™–X¯ÓZVìUÏ`ëAóû p½…ä&Îïjh‰Í" EìuÆg‰¼}¾&:BÃËÛDMÐk´7ZVOÿjâµÆøÖS±óaqt—b©^µÿ€(3öG¨I{Ÿû“]¦Â~PÛr@{ÌÙ’Ñ—«eDŸ”n¯œ$¢USˆàtÌQÌÔm(¹VóñÉ@ï€ ØÜŸÂ`²Kð °|þCª¸ 3ÊI™ˆŠÑSИh®4ø3Ÿ40#0÷*œ &˜zöafT:›pè-Ò‘ÃúÑÎ+*/ôü2Ž\NÍ/Ú” ¥î ¡i,uo7gÛ«Óë8©…Òj–ÅâFm‹pOZ¹ §Uëû{Pú9= P²Ž6‡SÄ2–{ÎeͨÅò \ ô°ŒMõÿŒÆWð'â§æhZÍž“Bs4á¢^Ä#”…¹C´Œ‰}WO'”‹‰>EéÃÊ£pGLqÙô’¢dˆè忞…L²ãž‡ôü ™é(¾Ô –³@»$Þ.G»nP“ÊÀú$îÆe=ãì™ Ï¦Î+¡N¤ËìJgVæ³ uQ¼šâR+½ïéOây~ú#‹€qŽ3p/ú=Áá2Ñë/Úì¥ó( ƒs/?­Qî…ø?2:%aÁ†ì£¦¦ÔØÛàz£vØH4ß³uîï6ûrÆF†<zÆFŸË—Ð=‡ÍÂgyÊ?”š1s‘ØÎ«Þn‰9°."gÔ’Ð@¢}å`\*íE´Œ3BÂþqœ´­ ¢6rSãïVVt‚øÆJ…¾Â»æ„X"ᛘ#Ǫg•²^꺱KßóTYzÚpVõÒ4eóÞBÎå$¯[Œšdȳ†£ê‚Z0YnôTݯð(…‰ÎËçš1í³X3x·}Ó¹åoR»w?‰­Vx¬­XªÛ*UtÖ;ä¯!@C71VMä›\¼ã%ö@E»ß!ö-—wŸç톀¹ÍÅf6tãbJï1Ë8¹üŠNjõñóí,&ˆFÚCžÞçƒsðm$¶½LÍ¢Ü4á<Ê<;ÍC† ÁîÜOuñc\üÎ}“·BÝ_ç@xб4)¿Ê~?ûDQd¡øõpÂçi:l™Æyÿ².Iý…%!ãiŒͳ4]_Úy~K\ò‡µää Øÿ…ƒÅOf4îÓ%ª”XáR#þ¤.´ö’†àõ0…R”…€ËºšîÊÉÚUiï E\Ê-3 ìèÚˆ.k0A&€…Á”¬çöfm"ãÍ|}×rCBH.ê%=ƒä·ÉÛ’7èlé’Æ®Äé5)._ÙŒÀ~Kp+ŽÞh?è½VnÝåAŸ¢¯7õª¿Åí¢²±uñ‹ñ•o¦ô¸ï»\ˆXßuj~б7,µØ ¾/­(¹wÄOŒ hž•VT@Ó{ƒÄ?iBHžßÉÕú ?¦YŠt‡¢{¿Õà="NœçQ¸ØëªnÈü®ŒB•†’ÅUñ^ y±…¬w†vϹèõ´¹2ìêðªt`Ÿ UØã—âϹÍ÷orÒ>áAR‹Šb[Ek`PÁÜ7E1¨B¿s:§cÆRª:šÎey½'$Q"êM¼+ù‰lf‰·ì””ä¨i•03ûŽZÙçÞë'ˆ¸_xXâÂÄÄE\Ôû= ‰œ÷ì&nQŸÅܱ¬ã®vD\)SÜèO‰JPLvVîd^ãc+Þ]rèV÷r,ù¦r4W3ORE Œj£bþVñ”h%rß5¨‰?G"éÏ‘Ä`,Áñ^8†Êäßõpà £v]eä ÿÃ+Ãxƒ‡­uµr¯x/­ û'ÈŸá׳/ÊŒ_ßaWü±¥`‚0b*º¿P¥!¤­Ã5ß#j¾+Ô¼¼5õ·*öfkçóÆÝ)hzèÖá‘§gàn¶¶”á…Är¬ë{œý ‹†ÌÚ“ÉÚ¦…@§¿áT{¿!_ôMÇñ¼°SÝ_›Š LdBšœ7Z˜Æ`í^Ï¿"‡Ñºú#jÄH’L’Vá6nß•iæ£î¥*gZP²¼jiÊØ€–Ãu>šMÞ· ©ù–õ{<Íwˆ–—³S³ ÚÌå˜Už‹ii~ò^‡É@Âògž°tSÚz.š¡P½«œÎÌÅ(‡|\Ýz'€8åµmKÐLƒ'„¬.e$´ÏNváèÆ ý†ÝìèLptiL¸œ&0å`ðÜäК—_>ù+üû7R„Ìendstream endobj 98 0 obj << /Filter /FlateDecode /Length 4316 >> stream xœÝ\IsǾóš?Àã %Žz_Tå­%^d‰¡J9²ËE‚ ‰e.ZÊ ?;ïu÷L¿žé!HÅö!¥A/¯ßò½­G¿î²–ï2ü—þ..v¿b÷ìz‡ížíüºÃï»éÏâb÷ë9Žð»Ü¶‚kµ;?݉Sù®õ­Ø5Î¶Ž‰ÝùÅλæÍlµÌ{o½m–øEÀé›Ók%gÚêâñQpV£€Ë4"³YE^š½øQzS÷ò D+©­o£H¸ùR&®(7I¼PÀÓNÑDóž®rUÅM%kÔX€Ú8Ü'ÈfO2Þ20ù=®Z¥ Ç¥OÏíÉ%U±ô‚|NçTôzÆ5ù úb„‘øæ[bÈ ‡JÌ+ôª?xg›‚ü•ãiÛÎvJK¢–ÇQÌ)ašG€L£¤Pó Lc‚)Áå=TÿÑPõ%/´ÊÉÖhÛiRÏ™Ak<º¸8Z¯Ž6HžY5𣠃ͮfÊ·šK þf¹ c,ìÂéË›£cæ½êÖ«ë‹Y !¹Ñ­f½eõ,P¥fQ˜; Š„9TJ Ö‘Gó<ú·úc™J””TNÁÍP%÷D5˜×ÚJDÉ Ú¹RÃ. œ\QE„¥$º X‰‚I”£#U,pV(^hí#\€Êãáò1|>¨ÉõåA©Žìq×rëüîž(&ÏK}Aâ»éÉÑ&Œ… è½‡äñy€Î¥Iî£Â¯ÁKX¥ÇÇ´Y, ’IËŒ2ͳÀ8 5’a`ýä³’¼ÖÔ¤ˆ;¢8CiocÐ.  ¬Re UÝPk= , ¬SžhÙ£4_ã³u6™ãÆi‘’6@ÅpL‹ÌŒ0Ë€IÌöZ—†—˜k̓åíw4ˆ¤ÍݘÓÞß JŠ}…à™ŒYߨ®°Á2÷싿Ř»òmízMmK!CÒ ØU+¤½œ¡˜œÖªy}˜AýémȾ•wÂuU5ðËÍ ñ´îÖ5Ȳ7ZvE_A= µgÜêàFª6lP×\Å}’é*lüÁ‚Ói´­Âö?©Ë £ç‡uçÞ§R>CSãà/4)oLáÿY…î¡G!ˆJóòrM‚€ÛõÈϬ¼¨–”ž`\kJØúÀ^&€íá „× Ä¥4„«ë¸ŽuÜÇÝ8xqÛ¼B£?ËÔ£ÅyÝñ¤IHdr!JÖ¼&çý”]ÉéÀz$D\VÒøõ$røÛä«B72ØÑ'X>ªQm obBYÎçÖ·&GAqZq¹÷Y«ðºµ\°î5*,X‹äÑ5¦Œô4›ù¸½Ü}&<È0TUÁÊ›D9é„TÞØûB$‚‡ ˜7‡A×9‹]› ŽìD£wOé†Êû….^1B€'› Zx§A‚—a®`Â4 }<·”—u Ð3 JáOC”ÀÒ¦€‰:Åÿéñ¦ªx1i^Ôv¨&ô¡zs(H#tr+ꔪlezuƉòvzÏGöHžf,tâ±¼( ÕÀ¦ÎÊÞÄøÏ17ÑÂhz›¼óTh±ûABI½ûã pŠ‚²P+(ëqeí=xÍÐâF>ƒ¹N×ÑŽ²ú–è +­ ÚuŠ[7°ŸÄM5Ùc¥áÏXØ¡2GLÛ¬”øQí÷ÕÞŽóbr’ n´-¯Iy¶U ã ²d^$µ÷D×ÞR™¢½%à XÞ“¼¢ÊÖ®ð_p— ï`á%­ÿT/iANÇríàM<°am ÒE™ôcÐ 'Ë`jx+©­µtx k}Õ@fÖ§ô2D‰Ûkq´ˆ¸‡¡*,BóEª{ņ^@£q´+މùãËI²à&¸Rçúúé§ìÿF -à1o~©>UyÚÓû‹ÁãÓuž¶ä?qÀíÀcǧ{yÚÙ¶iue3B¤²Åq‡²)™ }GÓ8¬Žø¢À2QP¢æ”M ”„â­tžÓ­Ò!Ÿ’EéIŸÎû§?æidÀó~ÀWhŒO7y•ðÛ~Àá@çãÓ·yÚœ xQ• eÀi!Zç ÀïR[ð‘ÒXqof½ªê‡<í9ð¦ð-yú”°°¶[µ­Êœü‡²üþ@Yþí¶C}ÕXVmæ—<í-pØh«,œçi/ª6¾Mì|‡–ÃÎË5¿Cî ‡1탌äuÿ”L{IìW9ûüKåžøS§z¨À¨žæU]àö«ºMb j4“ŸÂ„ /êb›v (Jùûqþ‹Ø™¥|X?`VŽ¿m›ö;³s+Ä>b»±YXÅú‡ÛA•]Û@öÏöH÷gWpIþBïWUnmEï-È£u+Itü;ÓL‘äYÿôYžöfÂ6jåt£‰ ê`ÿ².ˆƒ~À7ã{ËÏ™–‘,yÚDµ‡pqXÏþBÈÛ¯ƒP¶µºX'tõU•³4þè§Mab=þ¨(ÔÅ|Iü|´æ ;¿­ÚËó<íUõ$tÚ ò´º[=jÉñàëúnwhä0[²óœ‡gKñúŽöF”¨Íä—éÇY,7~ÇR“o…äòÙTòå4^³èa“x‘c³۪3¿éŸišËÖŒ[Ê£š÷OÙö{Óz†–þPö—¯…à4ÌH‹ÖFŠ;†Ÿrש¸ÖNn»–mÌ<¤mLå·Qh ÛR…;¢Óå¶ÓÁIRÉ£lá=Ò§š(7EVѦú½˜J/˜½œõ71ö§4KâK[²OgÍ¢Åë^®ÈÓÇýÓ‰JÉq?à1yú‰€_?Þ-ÈEŸ*#õÓÖdÀªœM•hòÓ³mÓò1i!.&Æ1áN~zÔ?½ÎÓ(wÖý€:'뇧ëÖO²Ûeu¹e_UI¼ZãÝÿT“Ú?˜…6’B¯^ñÅYß—†WÕW%Táÿßôµâ¤Ø9¥¯µi·ív\WªÐùéæËï}íðT¬êvD-œU¨GÓ²¸/·h±¸ãö ¼Vò¦çànKl9 ¼iüľDÐ]_HÝÑʆÞ)+z‡OËM(;(QýTÒ¾ÃDº)„°©+hˆÉ`$’·â{‰Î—®È¥ò–êiiÓšú9È ô¢2*ìŸSíézµÌÓ®\A ½ÿÙ©&ûâ×Cú&þCMn‹ ‚Æ=Èxc¯Î³xÛ%\¼©lw/ò r/;7y)cÈUÚŒ nÉD|›[ºÂ‚Bã;6Ý€"ï â¨çó¿Ã¿ÿ±µŸÚendstream endobj 99 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2451 >> stream xœ­UiTW®¢±«ĸԌžhugbF!!1¨Á7$(jŠ4MK#`ÓÐl"k½Ün–†šš­ÙqA!$Ä1.dœD&Æ$OŒNb^“Çœ3N2kfþÌyuÞ©:§Þ}÷~ßw¿KövI’|/_·ÕSon¶gIÛ";Ûbàü ω¬‹‰Ù›6,>víÕÎàÄ'ûöEŽóç¢æ9èèl$z†à‘䑸l/YlJ\d„T!\&^.tóðXý’ðeWWáÆI\¤XtDè+RH%1"÷- ‰#%Šá²uR…"vͪUIII.¢˜xY\„çò—„I‘ ©Ð_/‰K”„ ·ÊŽ(„;E1átž.Ó»—,&6A!‰úÊÂ%qG‚øõYl\¼"A$–ŠFDïu}Ù}Ùr‚ØEø»‰"ØCì%6›‰­Ä6b;áMì Ü _b51‡˜G0ÄL˜M,à0!ì‰4bœ”ÃvR»6ž¯’÷½ýûK3òùŽüƒÔlʇ ×Ó­ôäÌÀ™í3Gljg›¬6¡™|Ô‡Âûx¶WÐU¦7ëì°.l§ø«}ÄÇ™3äÔPIn°·PUž+§êô]`åÖy¨Óô8=o¥|TH}9ðÁÑbï`+ÿû¿Î¶e¥ÍÝL6Œ ¦žÍ fÐ|—o1‰I—¥x>žûÕ D"ò«h.‹Cp(³ÄŠŽ¸óê肳úËÖó–¶ŽÖ^.îé¸:iË~ð†h×ìŠ –M–ÍÕ†÷YÑ«f›k%ù°™Fx(¿Á<ÍuÕ$:Ûô·î¡Eh®ûƒ%»Þ>,– nSØñç’'c~¡Œm¶"LPÝqª° ½¹èÛï¸b>æû¸¬‹?~1F^E`¦ÑO~Ø‹¨ë<ô"Êdœ¹ÿ¡Á UXHÈ‘ÇWeU”Õ[£,‘ëo”f ´ˆäcú?Â~Ë  z¡á)”^p^àŒ°Òl{ÝDÖŸD™'yè]Û¦R«ËUiµÇ2Xµ*;K­ŠjÑóÄ»w»=Nlʼ—^£ªN)ϨI€Z¿g•{ôµ{)¬Ú:%ÐJ­6I€—P):mQ¡NW\È•TÔ-±'ä@?ì»ò‡Þ؆ô2AL‹Ô *,Ûb‚aÚjêôCÑÒ(=«Ë+Ôæ]ùǹü~à¨f­ÈÃB~Ó‡ØJZa[Æ ¡ ‘o _³Dêöš†Ný ·SÉ€í=Ô>8Ê^M  ¶Æ[¾`9.¹Ÿú›NÑEÛzæ'xvP«C6môȹt™Ecž5\'4€NLã@ ¶C¨UVž^/¿ãÐv«¸šÖ¹ð‘cñ +å—]Ô-@?RSb4£T³åÖGf²s…õÝå’œDe \ƒ¢ŽCm¡ÆH ×ùûzjÖ•×7Ö'—UåiµjAõ{W*OÝÓpµà å§Ù¬ ˆySšÚó~B_oËÕV°QÜtuŸé#Á@Š?µ3V™—»Ø½uŒ»ïÁÀ ðSšËû[Ùî†þ‚V='Þ••¨ææh%Ù6‚D·xè1ú3“,©¬VYnhÊ?qsÛÏçÜ–s­²ðO®Ñ3-ˆ*-Ðæçähµé*|R(Ð>žChzi´¨c09°Fð4lBÚ<Ýy9\ËÏALAèÁH?Þó9æ?·ú·x6þÕ×+ž û®'Õ†\Ðäh5*6a[`ä>…кخè^‚‹´®‚1 %wZ;á:\ðÑa{NïœÞ­hËõR3ù¸÷KNó+§Øæ[1fñ?9{ù\y…*ÇÈ*5‰9GË-J“ÉRl=Q+öcÿs,v\+ÿßûš·q–pèºÉÞ%-%µ(x¨»“‡xh;Su¬íh'Ð]÷«²3¦EÐØ|ÆX \GªUÚl¤Òé%ÙåÅÆòªc–(±4Y.cc"ŒQËÛ|_÷o‹0f b¤y 7JÚ÷¥‡‰!ˆöúz/â#»‡½¢Exx*Â@—ÇF&6 (šªúËcÌ+€‹…ÛîÝL$%qÛ++þžYºµ¯¿åxSYPÜÈaF!>¸nÝ»Tð“#Ù©3c±÷á V‹ÿ­éÿéÆHÏ]îx -ã8ã¡U¶I¦&¥J‘œ¢H¨L®­©ª¬eñL¼›kºâñ¤sPupjŸôÓØø\SR­+ëÈ ÝèÃnžmÇÄÚi[ÊÕ¨²UlŒ·¤wý›°ð5/D¶‹§œP~œØ¬ìI7ª®Æ7ï‚Úë-OwáÒw0‡ÕšµºœŸŒ)dÚ˜ ú«Ë}ÕéïOÓºFä/ž\Nî̬ˆFBÊ‚Ërò5`ÚcRâd-Y­ÐJ¿ùæø“kðœ 6Ÿ cøÙ¦8 &OM°rbó‹X×søuý3~Þ©ÕB+iœpçÙ>³ÝcJjÌç~§£­”B#‡8ˆç”¤ÐsäTZ/…\ÈT稕8hÒ¸‡ÙNª šB(\ØÐ Õ¬•ŠÒì‡Ã ‡ýÿôÌ ”ªÊ¢Pö_È…i:M)”‚N_hâ\"$Õ<±ÐLžAnоŽFÖ~'úøÐ ¿ú} ;$^â *xüuî-ëÏ-¹“ÖàFÕ™¯›?(¸ ·i€Gô§ý>sþpFʇ«Æ¬­}±Uåþºí°vÀÚ ¿DLú%K§Æk Úè»è+yæ.Jü€g{­bRøY›•ªÜ<¥¤q'²ãÆÍñ±áÁ›×á!V^ÿ ¶Ûþ¢[xS^™±¹èD‹¼$-7W«Q±Uãƒg‡þìêVW÷·6øïà`œ0C¾Ÿ2h°¢%V[…Díý<ôùijLµV—ÂâžÉ˜rTºœŠÐdma“åüVýhçÖhf(™Ú¢1ž|óØúhc˜IçRÜLÂùÕ?ú[Èû]<4„Õ è@¯Î?pÏFó½Ï=hšw©‡Zùt¾Z¯Ê|m#¶{› ¼4LÀ ð2`çw0Óýüئ2  õúÁßã"ØŒô ÜÊAλüÇí  9ÿÉÓè´: ;9ãy€G¿gáyoi5Z-hè<ÎÆKÇG‘Ý%¶ñLˆ€ô”:ÇÈOÇxhͦ>Éœ˜”˜gI­¶T›ëYçT³mS’›Ì|ZBYúYû™ÓL³ÑÉ©¯ÜiAüb…`Ýendstream endobj 100 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 7419 >> stream xœµy XS׺öŽ‘ìí„Z»-¨ÝgqBqž¬Ö GPd…02…!$ùóL¨ ‚³¨h­cj«­U[mµjmµ==gm\´Ï]I´õô´·÷ÿŸ{Ÿ¨È^ÉúÞõ~ï÷¾ Õµ %‰$Î+ÖLt4}5Q(uÞଗ!)VïR½æ¿ÿÑ”ÖÐS =»î4¼ñ-Á¥/jî¼úPb‘Hžâà¿=Ân”·½ÝÄ3¦µsœ0a†Ý‚ ß°o/©Ý ¯ˆí¾A^ä›@»µÁÞ¾±v£foˆ™éà=Þ+(||p˜ÿ\û±vÑÛíÖø†û†EùúØ- –FعxùÚ™÷9Þü¯spPHd„o˜ÝŠ`ß0)EQ. ¤NÁ›œC܆¾¶(|qÄû‘K¢–F{-‹Ù¶<Ö{Eœ‹ïJ¿Uþ«·¯ X»cÝN×ÀõA&Ltœ4yʩӦϘÙoΨyö›{ŽíµuÜ®ñ=(jµ’J­¢fRèÕÔ,j8µ†A­¥FRë¨Q”+eO­§FS¨1ÔFʉKm¢œ©q”µOm¦Þ£¨EÔj15‘zŸr¤–P“¨¥Ôdj5…ZNM¥VPÓ(j:Õ‡êK½Eõ£Þ¦Xª?M½CÙP¶Ôj •@qT7ÊŽêNͦ‚¨^””šKYSÁToQwj%98ª+¥õ¥Šu ïò@ >ÖuH×B+Ú*Èê I ÝŸÞDÿÊx2-ÝFwKë>¿û=d=×ô<Û˦×^k+k½õ½wö~ÑgE}_ºoÄ[ú1ý´o¯y»–ÝÀè?¸ÿ¹wf¾ýÎs›ÛÛº#„ ¸?0tà¹A;Ý{×óÝÃÜDî ÷ŒÄ»ó­vv »šÁ «†Œòþ­C†h‡®Öa`DžFa¡N$¼Ó±œÍ(Tf'@(ò]Ø·ó©M¶àÐe*FJŸ×h`/ÔÂ1¨V¶õj¤½Ôazò}6h´EG­ ÒJNã‰Ú$P‚Â6h#„qRºJs›  .(­;|¼¢˜›ç&ஸÇâÉs¥EÑ|DU¼jká)ÔwˆIÕBŠXØÓ1ˆÍ-5ä0Årˆá:—K’q¸U¥$YÕßASÉ~&K:í~én¡VUq‚›¤•YEJÒðà(¼ð§TE?IÐ,4F++ˆðL÷ÿeˆ…‰Â O–܃¼[—^#À֪ƭY°Ãkå¶i„;BÑïø5ÜB¥¤7— +Øh‰ßøØfŸÓóÈQu:Ûà~ßÙ#Qû¡Ým<^ñß÷år”ÃÂÎXiD„¿Ÿ¯"˜y«ž 1êyýËOo˜²·îO:ñ¢5ՋР;È­RÜñÊc#%áxBøB<‡ 0Hbi¦ªGôwSøJT)™’8†›€KûÙJÐH¨ßT‚‡1•’PnÕÙ*ÕI,UÿÖÍíD}úXÔçÿu[LK`Ÿµ<ú,Wª,.5cW:„0ÒªäR®¨¦.¤ÖsªÔ!&S!±ø1ªÕœ†:¨_)ž‰ü¤ª~¤ª6òÇRÕºJ±p•°¿³æ?7%1h¾!ïÑ_ƒÑüAôdea#4_ÓOòwL³”;M¶c7 å¿*·¯ ãúb<˜”k-ô—鄩墽‡Qìa1º#Ì2÷YjLdJ¸;0{'A±—ÿ’uɰ½y;¿'x_Ú‘”ÓÉEŠÝÑåñE‘Ìx†mž´dsóóH.£Ô*µ2+À$ƒ<–ǃèXçkÕj}§ÍMIió–v(æç“go·ïØ“’Çûׇd/) Êv*†sL½þÈC$ʨáÔ©9 LhË (yQF”hF™aÖqÜØýYÚKDmB•‹ vÂd1«M=ýuf’?¿ŒÆüNjèl¼òÚOzõ¡ëþ±¿WÍi’ï}$£ßTi£Ë鱄®KˆtLÄ^DY&eYúñªKM|ùν;rÉ…ìR¢}ˆ$0¢é:ÑO—Ñ J1š-Œ`Ñ`#Œ–GJTãüÇLP0Ñ_áz‹?8uqï…Ü‘ëhg©—Ïbx\ÆY†êeÂ`£ù¬OÞ O„°M™ù78Q®œRRÚŒW2úªq± Ÿ$»þ›§~ooB“ÎÖ½¡³ÎŠü&•£“¸üïž"ÚH(2°åõÐENìk6/¦§º/œ?C~ô‡¾¤ñ`Ïo‘ǣiXþu; ¡­I'ȉï}FcUi33‘F|¾•‘^œšsœGmþùJ¤Ý£ 7¹JSiSHaAäd-¥UÒ7/m>iÚô}²å:xðjÓ‘ô|˦‹dza QT.Dˆ…±è6¯²ìà%5fReBÄÃVËl: ÔA2¤(åò¤á¸ÀwE òb€Ö¶ºÊ Á”ÈôÛAüŠ‹eÉÈÏ( DCñKm‚F^9­É)#:Qºó? IFщÐ2Gûÿ2ÑôŠù]œÉ9íxƒ¦ß˜hÚéA;nYåµ*÷lW'¯+‡Fưkw@Dh‚ßÂË+|ùøêB¨²áUAŽbáGRPåÅCš2SAaÊXR”ìÎÕ²»Ãʈ¤eÈp‰ÍHÔH¶¨LÛÚ&Г+·‘çw’k-+š¡HY¨M/Ü‘=+lÆ Ýò"²"˶f?T˜÷¾‰ LV,·¬8A(؉Þ"d%g¦@h3µ¥ÏQ³ÍsܬݥUämdæd0&ó¢Cq»ïžÓ‰}Œ¶]¾ED­?Ò±Dñ[<öoßã^ìÌŒå®K¥ U†²2C«?ÄóUŽ•·säC߉¼7·*æMƒ¹ÌìoÃÎt¸åX—µ¥ÞŸøýÙâ/ø3‘ké5á© ¾pª„[zœµwÚáé¶­ñ²As 5?Íï ÓØ’ÒýM¥%ˆCïÖÖÞÖ˜‰‘î « ÂR£^Už‘Ÿ–…Ïâc6è}¼¾$xü±çè/ Àï4ÐnÉ0ˆû{‰ž– ÇMNõ@4Zë²Ò³Ò4r[M†ZéL°?ì2¯ú„¬ª†6h°¬r…8íÎc¦ñJ&O7£(_H£½(™56h¯Ð·9š³ÇdÐ<‰Aó_r<›,Û)R–¦CÄ¥$§§.›i3ç'EVzäØB¶¶¼ÎBšÿNéP¡Ô‡ nxœF™•N$\1Ç^–èáê‘ìirõÍÄÕ$FRm–½…gf”@1”æäæ•è÷¶êïÚÙ”E’wL‡ÔÔ]!¦EÕšãd°ï%‹ÎY­‡XMøÆ¢):ÐB¦)*'vkVÇRÖâ¥ÌÊÒù´’ÎÊ­mËÊ©ò;èûïÞK¼nK˜W¯qe¡4¥†ÆCÆãÀÔýœ„×½/ó ÷磽7+loˆ«IÔC˜Z½A€+fŸ ™ˆûag`&[l‚°nÔ>àꌩr±¼AàøW¢*€ÄäzïSÅ[¿d_áÇ„²OÅ(®c,›V¡"%2Øá7o¢¦C`ËX³§;et§^{º±p´†ªi”þKw¢©ù`›G"av Êè°¶QwÞ”üž ¾0ç‚/~³FæI$Ô¾žyØA *Uj –v~dCj†JÁV'ªºˆ…¾ÂH6¯À$^LAÄqø ±Í“ˆmÎþ±¢ ‰“ Þßù®U¬*9t›¸æåÄ5§`IÜfÜÃäv$oÒ“ X~QŒN™Œó«¡JG=\È£ÌH{ü6î÷Ôu¹u¨­¢˜_D£Á¿6áŸôÒÎOYr芄ÈðíÛ¤›€ ÅT>Z£°¥r/¯«o©oƒ Ðàž¿«0Ž{ì!lA˜h£¨Ž‰lJ‘JI>mœTrvCMÓ¹Ÿ–þ5ÌF^¨¢sSA™—$ è|d“Ÿ VåÖd©5Œp6Âѧfº­7‡´õj¡ÛSØ"å;—Ð…T gsÞL½ ú¡x¶R/\Ÿà^X2iîƒm~MìxÈÒg˳ÒSÉüTò¡ÓÞðÆkD-ZÀWÐê 6Müº¼þÙx°:€T¨‰ªê˜]iòqþÅз,òÆc‘#v"±ØO&¦ËÁ‘3ZŒF¡Ih+‡oã‡ìplóÊCJÄß{ò8Ëqä0š·F'Íòˆ²u"$ºøˆ˜óù&'feÄ4ê&yxäHkn‰2½ËP…¥€”‰(ÝUe(-54ù7¿7Ûu8‡»Í‘~Žïü­37åbØLq ~,FRDrü êö¯Û/žþäñÃßzáo ˜U°h·%]=‘D‡­<½€¸Öi¦À½ôÈõô}=ÒèEç¯!çkû¸Ñöh` óðÊÕÏjR›wîá÷·-Q9òW)ËË ™IÈO*Í-×V–'Ônßà³3> ªÚ^DbþÄ÷Ï]Óà—ŸÂ'ÅÇJÉÔXÝ–+ßš¸Õ60‹ž¬A½QNÝÜöáÊzncõ&˜.±²ü” ÐCYvY~1óƒŒ/ªÊ¡µ¬†¯0ÖåëùFD͏>F$‹¦#vŒÓñr5û›«ùÊâ<¸Ì=d“WÍÛâ@ðÔàõ¿¨Doé„=„£y$ÔÙ,¢Ž>E}Maþƒ[Ñ(< -Þ»/;¯†+^4å!iénj䜗y²THKSñiÎnáÛa#D4…_gðŠlvAõÈû€¤A?ÿ½3«ðPa³ÖrqmÁ’°¼Iê¹-¤8J£àјB6h×δ`<ã÷Œú}Í趬-à__?™dá¯n ¦€÷Ò„@F…~”¼9Íôÿ»WP>QzBÅ3:tÚBſ׋…™è1ûCÕgá3涺‡‡qøäŸñõ­Ë½WWÒZ ½š’k‚÷ù¼fCè!Ï’øg€ù¼è>ò’e.Sñò•Ò°dGSO©rÒ*v§µeì ªO.­YWÂŒ+d‰‰.‘@ê³òÔu æzð˜É[–áþ¤c I¦õ{fêX1r:ÙꨪàÐȨ CŒ¡¾¼º’Ãv!¢{)/ˆîîß»óÙ|œ…}¯n 3´ûy¡+‘­–(cÇÄQûYtã¬ùSØEîmp‰¹~æâçhz%žê™Íi’ #ÿU®Dîæì§È€Ä4n‡Ëæ K =HöÏt¾¹Ì£É›oðiHù8¶!õtBqúшzWXËÌ_¿pºûŠ‚ƒnÜê“7T{U&¥}wÝÍy7[­)Ìá²rõM¹%Þî†v½óu9q8d/ïwؽÀ'Ÿ!²EìCéB‚‡€{ˆºðŠðà¨ÈÐÊÈêº ƒÃ#Í@ÜÌ3Qi½.yÁje GpÕÚÜ âmªâÊÃÃâbÃ7·‡ž¼ñá…GœlºA#“„Ú'B‘´<¸c&ÛùLk¾?*FŽyÈ‘˜§ZÈUêê$ˆ`:t$ØsþRÉÍO°Ÿ¼þ{ÌûÓöP¼Œ4ìÖä•fåjŒPä òü‹±£ùÁäO%{P¸ÉΙj9 ê´\PCæÅöÜÜkç©õ&×­ %ž*ÔÔ™–‘S¦*L]Ltt¬ŠÃÄ’X QôŸöéÔM9ïÔ¾Ñ7ÿ¤/ùs%Q9É`› "î&¦³†xUâW-†xÜjš­„,QûŸ5&Çb»±3Æ­Ú‚œ9áí¿ÔÖ4Ž˜!¨âo£AÏ9Áš>ÿ™9"†*]É(•Ïùû0 ±ð¼ÃªÅBòù°¸owÜ\\Û¿gÚ¯¾cˆ)ò­ H¸Ãæí.;ô¹ Çf¿ÿÆ…ì UI0Dç­LOÀ+;e6x“P&7¹ ­± v›#Ë<²¿`Xü:²\€R(ñF‰æ[L̼:Ób;μyËn’¹¯?ÈÜtðZ¹Ë'á3×Êåÿ§—îÿ?êø2Å[ÙKñ˾Â]¶ô˜Qצ~“<ý\_Cp^U¾“À&W¤*ÓðØN© ž*€*S™K²rÝ)0˜a[@`“’!øê`OA±¢ 6'1'°Èí\cƒ' r‚ž)_×€jóõ÷<3~[ÓNú¥Ð¹uþj£ÏÊȃ\SZ.A3…R4«³T¯UäšìpV–¶Ä”—q¦þåZ¨]è+œ:ÜY­)k˜"Yvj¢"%QÎᇿ:ɉð(m“sS Š2ó ²8²0J×1@'j½…ro‰…uèîÉïøßÚvÏ¹Ò VÃB©ßôàå²€)ãÔ¸pÿ¼ká'á´4žm¼©ùÎ2ØÊî„¥å1H”|n‘©}>-ý°ìʉzS<Q1¥h ™‹á}˜—샻,ÙnºN ¼i1"Ì ¾&F­,[êh.±púk¡ÎÒ¿\§}ß.FŸc2h3AW6òÅZ4' õGÑ,Ä îùy¦!ÃdË5‰3œíݸ#"ì÷ÇbÜã¤Ý‡¸çÝ¥¤‰³´šlò®ÛàÙ==úüÞM2Fî]«üé–Å 9 ¾~q³V_]'™ó^7ñ0L­zo™MjI™¡°ŽXÉ0“8)¹Ê“g §L’N¾«bcâbùÅN‘ãÁ…ÙLš?£ rʹ&<­Ž¬ Š 7ÙöZ}e ÷{A(†TÔ€4,Ü’¡>k³ õœq9˜ ¹2]ʲ8þùˆ3x`OÀë·àYD»»Ë, ›®UfݽñýqîÄUˆÔ“fÎlzéØ$BL“eâL¶iôKÇgMxÀ¯ñ´%ukA½¿l0ýŽùËõ±°ˆM™JizA`p7d%ùñAó‡ùÇTuœ—"0YjH,+7ÖŸØrxîÜ}¦xLÿáBàÏüºƒ&ÒG²·ñ¸æ¿ÒNÈÞ]-ÂæLTmC{!j¿Ïk!*)ÈÑfs™™j☠$È—…®ôØÊg(Ȧ3,ÚuëSDs¯j4¢¼²W ˈ©LSEÉÓM^ä™E° ˜¡vë†ýËðý»gp ê`‘ýôÖáO4fàÔ*UrJªŒ|Zjf\Y ƒçÓoœPwrB),à÷ìWÇÑ~h€ÄÝF«ÛE¨HŒ h5ÛŽ‹\MS åéD $ˆM_±ºÎ„hÚÜ»–Æ=þŸ}k-\ýí¾‡ àsñÛÛba©éÆGbÄ ê&¹¨íPI±\‘ýÇŸÆíu›¼}cÃøЦµZðÇà®ÿqòùÛ;"\ ¨¿j>—s¢Œ\ˆ<5â!./¡$=#žL¥dÂAÚš¾s ÎÏÕK°Wmì~¹×½ë4]Ïnº¼ž=/—öìEQÿŒ¢Oendstream endobj 101 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 415 >> stream xœ]½KaÆßWK¯M¯û:]ZZÒ¡= Ú\,‡¦4ð<¿1ïhÅwãñ!Ó.wø."È7QÄ^ºÅµAÌ4¦¯—êÆþu˶w[÷-Ô#Ä‚Àr<_.Ra&Ç r„p㮎5gcPh jÍZ5‰vŸRU[àóšvOôï/›3÷ª+tM _~dü˜~ž¡¦õ•À¡i €_¼¸ªÏendstream endobj 102 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3726 >> stream xœW tSÕº>!mΡ”0yTÎIe™ \µ2ÊX,-CÒ¹v¢SJKiIçäO -蜔)¡´ “·- U@¸N\|*ò®VP±þ§ì®·ÞN‹âòê[w½µWV’•}Îÿßÿ}ß‘1C™Lƺ{.ßæ:ÏþÑUzJ&==Dš(²ãaAŸ—ãDfÄò¥“Þÿ›³œåàìpâéQ¥£ñ£Qhþ#¹L—î¹;!:$(8V5ÝïY•ëâÅ‹fªæÍ»Xµ,< :ÄO¡òÔÄ„kbé—0•w¤_H@l‚júKÁ±±»_˜3'>>~¶&‚£t]‡jýß'Ù<0„Eæ³®ËÇÍ1KR÷g[X¥Ôa•ž´ÈÑ‹ÐY.Õa$O͹G\É¢“ÈX2îî,tÅE_ÞÃÑ1‘< 8ôÖø{…U¬j=Unƒ·Àº»,²2¶‚÷<Žð‚²¯+ņ[+q­}m²‹è"Ûå}º¾|5äÄ KݽϮ®YH™M¦@â‹Ï’gQÈ¢Ê2ŒI:ì7ˆ©d&á·ºÂZ˜_î})¸%ô< ß—\?sáòÍûgá&àpMYaJ͇"àªÁT#*û´`Ãv–ž•ád‹éÕ_Åj^£Ð’gÝÈràÈ\lïV|Wà»DlÇb©Nóœà…¥8W³À²¶„ð\»"uŽý?«{ûﺨûJi× :ü„œý1Ž·äá|*ìÛŸž œ¯%±¶ÖRÖÖ±õ¨ÏK!š}/¹‚<ÿG¼nR(êás¨cã• ‹¤jµ|€{?KÃ¥%|ä%eè!5IÈÊÞŸž™Y˜\8™dì382®1S¬Ë´d€ÖÔÖhÐp/Ïí¶õ¥=‘BF¥Á˜œ²cE²{ ½$Ï¥•‘ŠSÁç &œÇQE8ál”%¾\ômÉÝR°®ð•B8˽÷5˜Qž»2Ú$“Ù{j†œjQù£˜úؤу€ÎÃñQLä?±)bô*… °6˜h9jt™Â‚"ý¢ã“ÃtØÓ‹=¯ûŸŠyÐ~*ûðT×_ƒ‡ìÿM’+Ÿ–tµ‰Í¡oÅäW¥¢RZC™ÌÚpI¥ìG:6ÃÛå$Máq²LFoÂ0ÝgúôlîÏI#ër+ö£'/ܺ4[Ù5áa¯À•jJYGÚ®ãñÜa¯´ÿ´mì’Ü–fÕžð;–x<†SÇN»ñKÍ øÜ&_Pà²\Gë™'DÉ¢ºò¥Ç&ÃI´]x´o6E~hèšAƒýrèï!jÖjºítÝë-ˆý„;™f‰·É¤4IÉç•8t 8¤×ƒ/ì=l8­«ÊL7€!S'’¡¤€ðØìxÞ¦ˆÕ¯¤›"`#D l»ÄâŠþÑù{L™Õ0¡™ò+9¥d˰ o.°Èšiõ¾vÍQc'wùEââMœ2išêêÍ-é剅‚%¿*€û -`±èÇ’ydþ."Ÿ‹\üÕßl?Y)‚ú¡Ca>UæTØ'®7B)TsDvŸµ(!ôu_Ëéoiüþࣦ?iÁ-t¢°jú÷­åɲßúÛÿC;[VQVQZÙñêùý­À¡Ð{§àÄYwÈD¯í{B}Ń>ü±³åíô·‘@Ƭ٠›bÅ0ŸíºPXg÷Uѳ)AÆYe-TêV¡“\ Æ¡|Ñ~Ðí5R2…ô=»WÏ¡šà8óT·ÇḼn}¦Á`ÐÄììä$ˆæ4͉µæ–Ãgn6w ñXI•Ž%O;§¡k#ry‚òaç#°§‘Ø/Ò€cx’.K¥}ÐR"‡P!¹¢€8ƒ!*+AoH.V­¨6}2 ÌŸ>RæXÖŽkLNăª8鼑ÅÚþ_îÏÕ•Á„2È-8Xˆ }CÆû{\ÔŠ:Óh¦ëÔ üÝEê鵑V ©ªå~ßc{õ¹vjßï[þµw²q»ê=hõÏLOTdÒ½…8áü™ Ë q+‹é,±DÖ‡×lØ–LUˆŒó>u‚ª±ñBwn5´ÁÉË.Úë‚ +z×ã˃ΒzW.mÃ(¾:jÒoî8#jÚ½o´+ðÂ)d4Qý4ŸÃçNõ–•$AÆ^Cvr†µvÖ‡î˜bÀ§.ˆõ¦6ã ³µ¢éX• ~|âl|SâwTäÚ0†š¥ãƒ¯íznz… ûIñàýRK¡É Ï’t©‰ åüšŽTYKN¶µ¯˜K䄦,Sß ÿB»ÉŽ&œw÷f&7ËoaLoî-9ŽÅµüÙ¨ Pbgâù?숰¦ˆõ¥5ÊLÙ™ÙYÌi‹÷9R\a®IhÒ¨}µ ZÁ·Æ?-GØüòʰßö1qOB0º:м7&Ã36q^ï­ÆõøÂís7¿ÚX]$øÔ¬ƒù » Ó¨ÎKi¡3wÈXRx˜Ãa¹ü¸zú4\ýòKðر<ˆˆýÃä­ÁÁÉx2>èBËåKP"þ'ìèÿI¢˜úúŠp»C}¯øýȽýÿN}Ÿ¥X´6‚sÜýgnO¡ß‘ƒ¿õ”¿Vº~†úAþâqvÌ›8LÑ M)UQ !«éòíé ¾e¨îÇ¢;Åei9É{ éÉ1óµ0m$¬ƒô+iw¹1I]é7c¡³\É“¡h¥ᢜÅ^› È‹¢ߣ¤‘:~ÀÉvÒÈ1¦Oη½ÑèïÐÒvÂÒØ&d îßùõU¨£¥^~ÄOé9Z¬cŠ­m•]¼ƒ×ïÈ1OZÏO¯ÊþйKwOÏ—ÛÉ8³£CÅ# E/ÖnééÙ]ª ~=ÚüÚ‰T&-q%²ÕÖíÅûÄέG3ÄÞ+ÒWi'×GÂ6N­}‰8Ì'bNM åÿ«­{ ںј_ æ®­}{Ç­äw(1ç¾ßÛû/Ï;DVK­ñÎà”øØ%VŽ_ …ÇÑ?æ_… 66JÞ;h$E5ÙiYYz½HÖ’©Ž’šýwjØ›QW£Æ“liQÉáªrNæŽÏK£êeàtñ°OP³5¦÷éÖ(†öÍì^ˆ‡ýÆ}9Y9û‹©8ýœb“$Û@J“ž9-ïó—úx¨2(7UËi&°»˜DÒåöè«Ù:0AMv}–Ñq\ÿ(–Lšº‘8÷,|òmAz¾×ÆFÐHD— "þÓÛïÊ’ñ½dî@ÏÛ4eޏ õt !ü¾3XéµJ¯=føC·ßÅó]ƒ/yßt îúw‡©ÛW…îö~±ªd<[=µ>Üœ×eŸw^:^çöÓõl±«½½ÛÉJîCG9Þëcùz=„ ËÖ9$nºBq ºr[sýUDT³í¦Ÿá ]½"NA'¼Œ:l² 8½ð ¹dÂPšŸ³µé^Iº´t7H¢‚6GÑÒôÍ?J QþÏ:à;Tרü8ÎX7óU[Ru£Õ|º=Ìv@h=ÝuÀ ÜÝ“KÝÝ^u÷U‹$œÄëR)S&$JÏÛ/™Òz}ì6>Ñn•}‚CÐ]äXŒ·if‚I>;Á…0Ú59Í>¢-¿¤¸¶ˆz_MD„fÎý-8úÍý7£¿%sꄯêÞ½Ÿr7Ý/‘8,özáµ{Ô«8]­kÞž'´·}¹À} ááY;h‚ˆ ‰ÒèS ñ†,}F6¤C—˜ •Â@;©ŸHki??¶+çJtå{l3¤eŠZÃè=$¥¤§ÿG5' "S³õ¦{TÌšáÞ#;žA]SŠäÉ5ƒU^ÃQ8Ëò:ÑC™ÓiO†³¥R¾9­ŽÚJ }¢ºÒÖXÑyŠf¦ƒP”bÐC¦Nر÷õýÞ4Hûn/K7e›²K]¢HNRØ_Y`2ŠŠ­'¿ ]†Y/¹Ã$2"p}ñ[!b×áÖ*kT]`ø Û|º‡á잯q$*Ÿÿ’LôóI U‹7†ÄrŽZegÇ #Çåø?<¼›sñ蹪öŽïQ²f×Ddí„Ý\P]lÓKÙÉwüÞ}†Œ"nn¤x5Ôáøï?AªfÜ Ãâ×ÁB?eä~DŸË:´ÏŸA>‡#º:»ïÁ‹Ó¦Ã‹“hŸN¾nÆ#8ô„…>^8mÿÄ«±Š‡¯Þº|ó”ùð©:¸ÌáX²‚ÈØuž«}öÔ7ÕU/K·h mÇß2QkøWŽßk›S’E×Ù0¸PÖ¤+„Cv>h;Ⱦ5´ÉÏ/4Ôϯ)´µµ©©UðH|ØyÍö';ô§rp_ÚÌg‘É÷YtD§‚ÖB+Ä7aºäˆâëbš-G«[Îï|{*}f.L}%þ øW²µ¹†`‘Üü³ß¥Ù”ÃpÅ]YvÉñ=\Áß%]sXeJ‘ä•»* ŠdGksBÙ0ÁÉaQ¥óÐæ|gg”U;7:+æƒúÆžendstream endobj 103 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 4073 >> stream xœ­XyxSåš?!m8@) ÆK®pNAZG@YTZ–e+”î´%%M×tÉžœ¼'I³voºÐ’¶”.)ZDvpeTpfäzuçΗøuæ™/-¨×ËãÃ3Î_]OÎwÞßú4‚#¯Œ^1'ðm„ï oÒßda&ÞþS¢?6x25nÑk“ ߟ;!B„Ô2Iì®<Џq(áJ(H³µ‹¥™ù²ÔäyØôøaóæ½ô\Øœððya¯g$ÊRããv…­Œ“§$fÄÉÉéak¥ñ©‰òü°é¯¦È噯̞››;+.#k–T–¼`Æsa¹©ò”°5‰Y‰²œÄ„°7¤»äa‘q‰aÃ5üe±4#3[ž( [)MH”í¢(jÊë»Igî^*Ë’gçäÆíX‘¿2!1*iUrÊšÔµÑé¯Ì¢¨§¨(j µŠzšZM­¡¦Qk©hjµžÚ@ÅP‹¨ÅÔLjµ„šE-¥Þ Â©7©ê-jõ<õ6õ5—ZIEROP㨧Éè¨ ªN°TpmDøˆ^azИ ÿÞü­(n䘑:z)ýé¨m£¾Íþ~ÌéŒKcgŒ=úå8õ#ùâÑÆñ±ã¯Lè™ðÝc!>c¨'xQœ×·Ø#@+P8=Z*ߨWš4&( U.03ÐlÞÍàåšàXÈ»j^Çf™‹Ê *åΪ‘x"*¹ñ\^aÎ\i’©!\me÷A‡¹öA;׸ÚV5n-oÒÛ›8v›Ÿ6Õ™,E )£N[Bã]ƒKÅh ºÝ€o‡úúTßlÀ2PRˆxÔ(¶Õ¿‹û+ЇacÁÊm8¤`«–ÔConÍè¹Û†fXj0”˜Œ…Fš±èB½¡ÑÝêð°M·ß…SôqùÑ+·$ÇîdŒ½é[A»U9Ûó’Š£€£5¥œÓÍó 6¦òtíév ›`WIž!ÛPÄ.½†"0ARâ(©ipÕT[™Pÿ2À+tÐ+ð]»%Deþ…âüÀÓÛ¡vÏ^PèÀÈéX!DNß4ñç¢j×°¯Š ÞÌØ%NmežLM 4G¿(úy7E‹q>JȃmmŽ;ñÝ14½4`·J§Ô3%é 3Þ&v[dßWim°VÒ×ß3¢™'k„>Î÷'±µ‚ËJW–8‹¥áÁb|LJÅé%¹qI)[ŽU÷î;³ÿ›† ¬£¡´<ô¬®Má©ø:@ÞRae-MßœºÌ­Ï’©vç¬fÓæÇ@q:ëèÁýžmŒ;¡5g?tƒÇ[î­Þ_v,ôp0˜ä:&÷å¼)ÐÙúºÚû']盧NÖ  ±·ú+îÏ-ÏÏ“åÉÕf=Á¢!Ó’ z÷V\†GÅ:pªýnÃYÆÑøÐ§ŒÇBC2Hé©WÑ+‡Ñ7‘ü`îßùTõÀ—'Ñ›äޣѱ6Ôº(ý¥u«•ÇÛUŸÞ÷5SÙcu=ä½vF(·@2=ã“ìþ¦vÛ™¦>ꬮ®B÷¥æ*{¢gà ý „„´°Â¤œui›c€<æ^{sùko©ùØáµíq‚Òaø´²"óKØLMê/¶¸ÁB¨éÖ”ç§i€1™òúRË2I&üÊÕzzšz»Xwd¯ªá¡AZ[#ÖíŽzñFvÆ>Gk2*ûJ”Ú"@¢”y^ˆúýÏ‹ÍvÞBæÔò Ó3ê‰E&µ òiÂëŠc Vé9­IÏLœ¡N†Ý ”DÃXæAó ¢óHß.D¨P¼­4¾7©kÕÌNÅK¦ ,þòïaeïÁºL}£í}¯«›µyÄÐóß¹j€>Ð M ï@êWç4ø_­ i·|É×…þ ß1šú" Æ ÞŠ·a5Và§oã Ä M(¢fð©ÁUâ9«o¡Ð³ èå›h${é/7^úóËËðŸðÌ⼌ Elj‚j>õ©¼è…ë=‚Ìkè£kB´‡dèõ_2t¡ÈùŽ­£ú3ç!÷±N2ý=P™—ªÕe‚’ΫPU74ÔìëNhØñ¬ ?žªer° xÅÏ †=-Z2(,‰âÔŠH‰2®dK2@Æ×tÚ­-à k‹\ryþ΄NyÏÍ>ÒÜç¶2Ã¥í`#ºH(=î¦FŠÑLzMüþ|Ùù0w?ˆ½¿1–@Üæ³îaž9~Å3Ö\Œ&ûÄû}Gt«{gT¾zfÌZÖ`ܶ9œÔÁñ¢@ÃÝîqô½Ç75 âLyqNǘDªY;Éù'1§âi³­~ÿxïa»MÃ+Ó¾%¤Ânw½Óé º\]%Ï•¤%v+®ýðéŦ­kvF.Xô:îZÙ‘\ÕÅî!„;D’À1WÇ™ôœúï•qch… ÿ;Ú0p*¢ ¿¬«Í´éŠ;+ôSþùb~hl œÑJ •ôáëOLpA’mÞÑ‘ÀÖÉkôWrË =%î`QMÄÒáóŸ_°¤û—¹ÙÖÈðŽ`ò!z%gR˜ 8Ádä4„-dK5[y¾ÌÅôžiÞÑ›vƒl5cI‘x =~#¾wc«1/­Ë³¥9·TÀ§ôíw¾@!€ƒÒ‹¡À°‹átÀ‰&@ÛÝ뮉,ª]àë$‘eßk+%‰NR†8ßÝš£"°n‘œV­[–* Ó‚–™]¤%ð’€/1ƒ&’lè‘xÅDrNíðnfqñ¼ÇÁC3êÑ$ ÛE `Ðê´¬Q]ê$êE” sÏ ö05÷Á8Æõèårß3¾Q(x‰4Ud•2›]t(²¨<þ‰-‚»'†u÷û™tOwãyNMz\¡d}{ÊávOÃÞ ¦f_ÅE‚a²Þ ±£¡Ð¨.ÞT•úë õ÷ WQ¿( vŸ>ð¾hX°ÿï‹6&G'3ºË[6ÃjØ”ž¼ñ¼;*«²{ìŒÙÕ…þɶ§´ÞVWZïê> stream xœ¥XTTW·¾ãÀkÃzAͽüjTbÄ®h°RQcADi20 eè0 í ½÷¡JK£F£âý3ŠKìc4ÆM^²ÇwÈûߘI4ë½·Þ’µärÏ=g—oûÛG@™ô¡ÈÎÑÕuÚtݯӴ£ÚÑ}´ï Ó°L«zcoú5hÉ¢÷¢.Îb†Ñ“ÆÑÜé¡Ú…C uìL qH¢8P&ñÙå-µœèie9mîÜ9ZNŸ:u®åâÝ^O÷KGw©·×nw)yð·\+öôñ’Ê,'ÚzK¥ó¦L ³vßl-–ìZ`õ¡e˜ÔÛÒÅ+ØKêµÃr™8@jéä¾ÛËRo¨µþ?;ñîÀ©—ÄÒQ¼ÃK@QÔŠÅKÄí?Z*Y¼\º"de¨}˜{¸‡ƒÌÓq‡“—óÎÕ»Öx»ø¬uõ[ç¿{ÊÔiQÓgÌœ5{ŽÍ˜¹ólç/˜¸Ðjó¤Ý&[o£¨1”35–ZMÍ£ÆQk¨÷)j<µ–š@¹R©u”µžú€Ú@M¢>¡–P);j2µ‰ú˜²¦–RS¨eÔTj95ZAM§VR3({j&5‹r fSŽ”5˜B ¥Ü¨aÔpŠ¥þA Ì) JH¤FQïQÅS})KªeK  R (3jµˆZI2E™P¡Ô÷WA~QŸÐ>O„s…u&œI¼ÉkÓ8Ú”ö Ÿ‰DÙ¢WÌbæjß}ïõ³í—ÞDÿàfÂü>ÐyàA³fÒAÖƒ® ¶üjÈò!O‡Ú =?ìƒaþÃû_<›¼§óä4…î«j ¨ˆw[ÀŸ…!S_’¥ÔÔ‰xútÒï¿?ý†rx3¶aío>öÕÅ+W¾Zi=Éq‘ße®V®@ù|¥ö[Ní!ÞˆQ ?Yoiªà]ð@‰kø¶Ä`‹è“«a ÷×L…Îç@âóäŠùr&â ¦Ø)DžZTƒ€.©íO8é«Ö–ªŸjàt‡P ½Ç–¢*±,).1™K‘Ëe)‰ûÜJ܃YKÌáåxôÁ£`(ô½ûìqS(ŠŽLŠHååxÈøÄÄXÏL‚I€úþô¹íSŠùŒ:QÃsï# xF«Òï-AQ<|¬ÂØ<ª 5AÞFIº«ê”‡ÐÆ$Ö»*„P°7Ž 1J»1ÅÑ=.övíH¶ 7ê3»é¹ËC¶Ú¢}MÔˆÞ~_HOùRüÍùµe•Ü®TÆ]|«ËôÐ6´'_°Ê°ÑëNùûFõPeXõ¾n“$¼Q ªµÞB­-ICQ,úü«¥I?¹)¸aZûîu4ˆð‹Ÿ*T,*P*ØËè‰>S-¸y–‘8Œ#VÖ}>ß`×7Óèó±Óƒ¸¬ìŒ<”Ǩ"+‚¥²(ñªŽ-OÜ9õŒëµ·D.Ô®'öÖÔ¾»ÇèXmšF'×E¶Ç7Ë4)…¾È%ÇÊV…-O H‘1iôP›32¥ûëZTÉŸe{—¦T#‹ƒ(=·òr^k陌z")”1YbÕ‚Êé PªD9û}¦ç©S Ú5N|œûÙ›.wð(÷вÀЍªì–ôÃJe)•ªôBe*DÕh/j‘ì#1 Xº&Ù1lcĪ]h9óñ¿œŸ5_ÈÚ÷Wé{"õbjjô© KÏŽæí/²D%…z„{GlA)ˆY½½ùйß÷Â@Þ@­ aA“L[Ð Ôǹ†8·hÜ‚_L«kþòF—VúãID0ؘú»~) äÁÐ'x¨©$¸KBÃÞÝ ¿£¦·ËÎÒ^z÷y::ÕqA÷7]÷5ùû¶ ”dóÅL_9ùÁè–N¹¯Q»¡ôíæž¨Lßndœ=VèÚ ‡~Ú0µàðíÿüâ¹.ø£h‚›¤ªä‚øzkH3¯~÷âz,qgf;Ù@R;¢^•š–Çç¤*ÓPR†GSZ6bª*Jê/GÛðBWl9›=›`dëËRƒºëh‡Šv!|¦åØÈÍ _âŒüÄL(IÍŒ«CDE­ï):¾S. ’t;tSï§ñÚ0¥(Û?#®p×Ulž.Ï78—åæ–g•|-¨˜é y÷‡rQ]O¡®§w E¬<ˆ1Ìþ.À¢|`ð<:²Ôc¯bþ9eŠ=²úEÓv°ª‚wG1Ÿþ™íÁœ]ë6w‘ÝškO~ì踪9¶zƒ:ß·C ‰³ö:»7 …"Æþïèþg#¶×†“q"./¨ü°ê´1/ô!­1…xm^•¨·µL0ê,áitJABìd·Ÿ–g`!‰¨¸(ÔÎWVUöCß•?Šc¬'™7ô• öØwuÙ©UþáŠÄ(/YcŸŽlÐÊÅ}Ã(ϰE5'þ…~FªÙ™™^}Fõ$zÛ@Í‘Ðz¼¯ Ämøˆ*VÂJU=´qx+.d§¢š¸£1'Ñt}…®/>ÓXtÝFͱÅë · ùÈ 9¢qëâ> ¶FL±ÀpRxöš×w„€tÍz Qá [7ÑйÆu¡\Ã÷v«25 .æHíÒ›JÓÀ\yúÝ3»ï0Ícÿ¿““Ðß«@Z+7ùþ±méz—­+&óÿÔmŽeí°¬]Ýí‚ ¬Õ<+—ól¬:]‘‘™™ËWF·ÄìCÌ÷W®=ªU4…¶ðuÅ5%Êlÿ†4%b ks+¢ZÖʶ&ûºó¾Õ>¹bÄL]ºdVH–מ]|¸8e7ŠEÞeâÜ×ÝaëÐÆæ•!´a¯.<€qx)òå¶ÍnÜzäܹ£G>?Õææâ²Ým=߀_±VKŽ-ÉjÝ_ÍW—ä£Ëˆy }Ð ·%Û¬ºD?¯úMŸáºYB;<ƒ=VYôiÞÕìè>:À¼íâf¤,äŠ$ŽÅ’üÈ\PËKQE¶lo\EÀ&'£pÄ$ÒÑ2ž¤LÉHâÙf% 4ÂW©ii\$ýŠiM8ÿ9º‰N¡/ÑÕüÏ ÔUU? çH%-X“¿ -Dëö ‹‘F2=Óu7í¿=`ƒËÛÚ¦SþÿŸ±cÕnÝR~(Qz«4Ç5#†ÅÀ38ËžincNøüò“ž³‹¸Œðô˜=†1CÏ·u©‹n} 句оr¹/¿RÔûæsÙ)ßl”øY™¨ô„d¦üN¸¼r Q@?ÓF#Fo`+gckSøUž“áÍgò­Fo4? o]'bhº©_Ï=˜¶¤{uí ÄÀ¯ú‹®íoDUøöë6¬_u(^Ô‹þfÝ/dÚ¿?ùåËû?À@î¯ê¾»-â FecÖ)ÇfFÏŒ"`F÷ÞzjF÷#Ôn„v¶ É oŸÈœ¢$äÀf´ùÈÒšC‘ 1»õÛU£&wˆüBº·~Уýyp=ØwêÈž\ï-–‹"zì¿öZBŒ³Q½‘V ÎjÇ µÞ g3r2rP£Š(Œ •GÄ'qøî)‰)‰(Ñ"´,¶D•[Ze@þ ì'ß¡ëxNÁœL'+<¯ÂN/±9P ø FÂ*{’®gëÁ ¬.ÿ|íÚå Ø OtÀf¶Ý0eÕ¯É *'Q>«½Í– º€EBŒ‚ ßî»~}rTZh* b"òc«ÚÛ§gp‹gݦ( IŸA÷:¥ÏÙ›÷Ø"ÔLô¦4÷‡(ù|7w§–€çä]¨ _A [\øê!ôä;:=°`æ÷Ö”ìòªâúŠÄì¤L®øÔÑV5bÞØ4sþjçu[xˆ×Æ%¤¤ X )¼¦«²ÉLR¨º¯/Bƒ9¬ÐCr/ÀVµàê]È!æÁiö×£KÖ­\ã8cÂÖÓÅéÊt¥’ÏÌÉÈí¹BÃbüg>_f0ôá“ç'ÅWgàΨÿ}ÁÜX¤!¡Î߼ط6¾Tg_©<)¹Æ—ÓËÓqb×–€p›1‰üÎÔÈÔd–šƒ¢™™^õ€ì£Ö"ºÔ.<‰lB ‘É2Æ»(¹žƒTÜÇÙÎàì }nžÁÒ-‰¹>œ”FIi±á žß9ˆ…øÅÿ"Ò{|P sÔ‚Ç]jBkNêÓPE´Ÿ\îÏãJQ4’4–ffåçr­GJ¿@Ì­ãû‰K¸ÛvŽLŸ²–!0Z©Tf¡ e'“Ù‘QŸVß»uf…íL{g»®rPi©mš/‰›ýˆ›xöÃrdÏÀµ4) à2à“{àdÇ‚üÌLTÄèÂÀáÛ´RQ,íº}ÛÕ;ª®/](g5PM|y÷Ù;5ŸBíÌ=›[¸/îk3îšã¾‘rãý¼–¡µŒÕÓ™,fO½<³óÊûÍÜ¢Övíç§Ï¨óz³ë:—Móy|Ñd–Ãù‹W/½÷@ã¼b©ýš9º „Û*È®ü›Š½I=xòHøoêÊ¿)­†UV'6ø!×3-cSö4WÆ)ƒêѤ¬S1àÛÙŒãÞrää;Ó“ °¹2Z´ÕëVè¥1|tŽ’”h êºPKz)-l'NFÁHœ!+ë¾d¨ˆVE…K7îÛøX@_`a=dbÑùY„Rfã¸ß·3=Ó®:ò)‡Ç)Øù®—n?¾|îÚý=3òxe JÍV*ÒÑ‚qrYkÛs0w0€˜ á’¶ÛXà'‘øí® jl©©oàðU“·þF¾<«Òn©œÑNÔ]ïÆ°ù9Ù€*Ya—š&OKEqr |ïˆMLŒ#•d‰¹Ip{™ç$ç*òSR^¨*TäÇåðø8™ê¼Qó­F°_ë Ô.ƒ×lQ#jnñÕ݃½ £|‘¯_*äá5þ-iA-Íþ(–Ç¿Ó1»‘Ÿo ÑH¶Éö°…99dè+Ë‘gá»àež˜)ÏN@L”,6TV ÈOä¡ ;9꟧@2‹ÐòØ.]™«LG¹’\ »›saQQbft>æžûÀXô=o†q`ù¢8?G‡Ôü¤Ò`Éâ5önÜÚùbkô!ÂÂO­¯>ºêš5Yey],þäJK©çï~õ5ô!ˆm‚Hu´ž¸õÙ‘ºòV´Ù'}BZÃ×UÎÞ òÂ’Ú†Ҥ¬ä,®¸²¥êbþcŸ·¯X•Äã÷g§Ø O˜](zß>TVÅåaÛ·%›Á‰frÚ Ò„Ð­ðWv/|Ž.¾DÄ”T‘›“TKzô¬£x$¦hZž€ÇNŒI'¡&!;¢ºöºZs”Sß«û}§Ã«úé÷$,ËÞ 6â«%´ob‚ÿÇ*‘vü^–õy«7V:Ѝ‚4`ÛÓz Ž…1tQ3Iµ¿nÕK÷ö"<Åø‘7uÝWã±´qo"#ôÓ·áœ2Ø$ÿ0¯M ©QI(œ‰)‰(­ù9P§|oÛè[Ü”£LÏæ Ȉ ÇÞü³[±,1¢t«?¬°•ÑóýÅŒ¥u=ĦÛ †_¢{ Õ×UOMµ¿]RduÏ&Ö³Gl¡Ö.ÒX–#R÷Óôçú™ÈÄúª Ð HQÿ oÔC^endstream endobj 105 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 387 >> stream xœcd`ab`ddä v ò5070qôH3ýaîîþQý#U–ßÉA¶æ¬©8_c7s7ËÒïß…¾‹ ~áÿ.(ÀÀÌÈ(¦j蜟[PZ’Z¤à›Ÿ’Z”§”Ÿ›˜‡&˜X dggç&–d0000j10v2012²ßþÏØp™ï?“¥ѲNåBß'œÞ$.üàûÂï+D—'®L\Ö4±qJ}7GUmueá²¶¹-ò[+·Uo©HªH¨N¬¬l)hë.䨜Y=gþÒ%ÓçÈ­Z°zÁªÝuu]uM†]MÝ•3jçÍš5uN¯œð…UÇöImÍßš»µ`JëÔ¦éÝsfΞ»´`Bå$yá‰sf'ÍÛ2oÛì­sçNZ6¡{)ÇÜÚÙUå…EõU@Í9eÙe9eÂÎ9²_ªsNÍÔšnŽŠºÚÊÆ¾Æž&ù)†=u}uÝu’|å ~8Íúž×;s1Ûï¸)ìï¹örËq1O³çád`ÚVðendstream endobj 106 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 2082 >> stream xœ­TiTY® J±%]ãÖVÅ#3.à¸4êiWDGÜ—v’`HdQ "KÈMQpC HHˆÒ€í2 3Œí¸Ì±méé=slõ¨ô óúÇhÛžãésÎü©WõÞ­w¿û}ß½"Ê݉DžAaëf ¾¸Æ‹\»¹&ˆD\ˆð˜@\ºxÂÞž9îÞà%/÷ÓË÷Á££P3eRb‘H™’¤JNW'ÄÅk¤Sb¦JæÍ ô“Μ1cžt‰B®Nˆ‘)¥a2M¼\!ÓIÒpUL‚\“.òi¼F“<úôÔÔT™"Å_¥Ž[8ÕOšš ‰—®“§ÈÕ»å±Ò•R#]%SÈ¥C8ý‡žA*E²V#WKÃT±rµ’¢¨QªäV#‹OHLRÌ_ìOQk¨µÔz*‚Ú@-¥>£B¨Pj9µ‚ZI…Q«¨ñÔDj$å#0@¹SñÔDu¢gnkÜž‰7ˆ/»×{Ìô0zú{&Ò³éÌf‹KïíÒë,®f‘õÖ=»q'‹Mî'#ȨiDDFöåoqŽxþ=J8²‹le£ ²2¹UÝ7 šáruKmëÅʳÐçµ5Q5Q°äÚHíöHåf`¼]dƒýÌ®±NµÅ§¿O>-y‚‹]^lM|uIôÍâ¼H^rÿÇxz»B¹$ú´±ÃTµÐ^Ø`øÂk’ÕÁ?¥ÐE{œw€Á^~,J¦=%î¼äÉE¦j™ä‹)´­½ÍÖÌ­³ˆ¸$F^q.™Ï¬#Tˆ8ÙõI¹O½E} Ó-šK£%ßa,n`Í_ï fS|Ì‚À¸«Ó8ý1ÃÁ}ÀdAn:OÆÐ[Zd4–—s&˜N•·È.*,t럿êTÔeåw:bË3’»á¥¡Ç®k¨9ׇnEI&ΘsLÀƒ¢rþ9]źüBÈÎâôûr ôrk4ì†xËCÃãOªjµ¼ä;Ç.kÞW™Ü1: N®@•çVˆ^öâ8‹—¸|Yœd'“p¥ÚÓ0O!ZÀhMF>În¼i½ÙÍ]U¯§³î…•q‚ :³Öéòpú [/Ê{GKÒ\ãÿÎÐè[êa§ƒ÷·ñ’ ˆ4™<(É_ç~Γzö–eK .vpøðÍÉ=ÐÏäÉ4zÌ@?N’vZ¬¶?2ƒ^2gØ1Ñ\óÏ€G­fçÝ-0°÷–e´Dщ}w؃1µ²‹ÀTÞ8~Ÿ¿¢§×ªót; .q¸•'4Ç5Å6o>¹˜y![—+*2j¬§*jŽæ×o3òµ m¥`Ú®ÆÎäwÐ’ó›ôÁú•ŠÅ êÉÌ¢îâ„$=Ðz¶ü"“‹sÙÉ´_PÂöÏ£¾øÒùçê_#°Xÿ¨Éâsún|”)Àr ÖV²øµ³óH—!®‹Öç) ‹Ùu*ÕZSQV÷—EÍ É¨é„"r’W䣧SÁqô*)ÙúœÂ‚¼BNé¿"{0׆Yçqÿ:¢—š}„¦ÊéQåqÇ"öNýÆr˜%d|,Orv³èð4€Ê§O„Nc¦û’Q¼fÜ«iH£÷——ì7åçæí/äâ}`l†˜:M“âô@ã á$º ×]û¦ ¡ÊÇÚ‘z—Þn舼6ZòƒÕ¸˜ ϪjŽþðÑ*ëY`¾…ÉšdCâ^5¿?[£Š ÇIJpªÊ*šUçôåÀ<îí½Û´§I]Å7žn,:%X¶tù:Èf2ŽeŸ,)/®*ËvĦFæEË8Y½ì€ÿ…‘f¹e7Ÿµ7}'Ä3’ ’ŽÉí©«3£ † zº½qøËö{ ™í›¬ÜëZXjˆ‚\câÁÝvp0èKzÙß„´w¶žij9À_÷ìCw˜ñÙæ©«`w5ã§èµ{Åèv‡}3,Œí¦Z¨ŽÂÓï‹•ôË›Wº»J#Öq$“þ¥ØCƒá4ô=©1³lgÅZ„ÈÕr_¼PCÝàu 'Žè÷¹ÝÜ3Zòƒ]«X" ùÓ‘<¡aÌ?%r/›ª¡~J´¼ ¨™—¤•…t(ÈܹrS^*0A«ûPŒâë}·—ö„7òÇÒ@é̯Yè|Ÿo­ÙT†ÊÒCfO}”¶ïý€îXá5Ì|ÄË«·ÂkEýpNbendstream endobj 107 0 obj << /Filter /FlateDecode /Length 2785 >> stream xœÕÉr·õÎòGLé4“p:XÛAV%e]R®TE¦O¶£á“ŠJâßçaià=4z†”h-âAM4ðöÍw3Öñó?éÿõÕÁ?Þ1;»;`³³ƒw<¼¥ÿÖW³Á)gœwN)1;:=ˆGùŒ Þ±^δ5eðêêà·ùo ÖI§¹‘óÃÅ’uš1iõœÃrÏ…âó?KÅûNsA÷æGŽ…Í6kØ\–34YÎM.ÇzJÀ€ª¦Hh‚ÕkžÖ>^dî)"ãåûÄsüÏQÕþqôïƒ%·]/{;[ƒ}¯ùìè¬hKp Ì¿(«·Ò‹Å’3a` Þ±šÚQ–2yyV½·гòØÞ0ICÞ±Þ»c¹Ÿõ>¶ä½êExh lŒÞŸQ †g¯¾ 4efG?ý¨M4Õ¶_ PÛöë«mû¨m5­¶JWòëéjù-¸ØäŽgÓÕ«Ow1ÈÏ gߥ]Ϭ˜-8îbÄüÏÆSÀ¸±.GËà_?¿òÏŒ©ÞJPï*  6].ü:×Â/ýåa±”½ìŒUó ¡;㸙ŸøÅ¾œ£ÅMwðp¦¬­Àû“ ÞE)qg˜V@c~DD]c(wþp„›Ÿ¢ç€Õ*sª¸òœz²³ f}??ü;¥´ó‹@˜`½àÒÃ,1gZ«¤ÃälxO°àBZN¡|¤¥éúõôÃ8w˜šMD©¹¬¸ö«pt~CÈ=Ï0%?x”VÄ2‡Õò\db Ÿÿ‰ð={Ó¶\m†·8)u €/XÖX=\Q¯žêž˜ï*Ø!(~`&mGÒÆ>Ä æì‰É¤µtrå—K̼áž0#C10Dk ÖÓ6 B´)0"ã-*ˆŸ1»¼ÀÖ}6áS®P­½AáìvãDW0oã\ïú$WÛ ãUbuÌ’KMtzë±(PkrÅd“Ä@ÿôÜqÝI$ 0Bìh|ÄZz|L(“V¥sóί‚p4ã16ÑΠ„&436 úÇ¡*™I˜7hõ.¯·C|‰³x•—ôå€ ƒ=ϧÐêOV3³ÿ>Gä´Hß¶‰ü}1N·_D¤43PX{µÄÒLøïБ“ èZ½Ï«'ÿu3ž²³>”sMºÏKÅAÛƒH㺩»:lŒt·nâ:!Ç2«6oÇemxzÛ¼f|§eÃI“b¼zl©¡  ü©-Óx³ÏB¶Muß¶™¿‹ñ_C‘åäÿ;jWËáuŒ¦}ª?Ž Äó6©wÜt½Bê]=Ú{K„\6ÖΆµ-åcO]esY~eÞ¨—ÒX“}Uã ÿÞçeeD ´Ê›^וÐCÅ¿bÔÇÑû|úºÚ5 [ÅGÍûŸ{ rþë/¯á¨±Vh1CkJ¡ä5“°Æmo„QÉ,Ð6Ÿ‡z¨ºBÚ¼ÎÊ'×8k) gUyCÎO ¼©Š¸•—>¤&=SX’KUm%áZò>{½“¶®·èo$u>DXÆY,ùD€á-NùHŽO÷›è\2)wƒsÝFX>Qc®`N¸ .@“6Ôžc¨7$ %AŒkàT(!€ÑAÔǵ 3ÆÑÚ$ÀWJ®‘,<Ûº8Ìäý'¤:Ë”Ñ;Ç¥ê0ˆ;"VQ£Î ˆ<ËŒóÊ™\W¶œâC„#˜®<§·©ˆE:„£:–õUgðøq•8@Ïäâ7Q2ZVÝÑÀ‰3Ó­âö4‰zEb;Y/=j^(Yë‘5j) "–`ñ›ŒÑƒÅ_T>N,3r1ØEu8éÁF†øl†ÛÕ6Dñ÷»|d Õ÷Xã7yôŸÄm.þy|Œý†´ ÈÉ:Ý5~AºöPØC ­’P*à×E4°æcŸ˜uà4wÔÕ¯²‘¼n²GýѰ s{¿à!"£öÈ‘ÄX£§ü®2O¯€Ìñ-'0 ¨¢T’p$åÜ”ã]—À·ð¹ÜJ¬bx¨—A_;ýibת¶œ¨·¥ÕàD“²Aã€)ÿÈ©i0ẋ &í˜ImœûR]œø¶º¸ÃB÷€Xnú/ó4àûmø%oxVß´Ž–:ö²í}«Y»l*ãe³… â)³É†|^¡4¨¤óÓh®}ǹÌõl œµ6o'ÄÓ€»l®BSÞ:cx"—Æð¿û¢Y»N‹*ì ß6;5ÄÖýÞVî¡aóë¶ñbi¼Úc,hõz¯4êqE.þB“ Qáÿþ&ìÛš\¸œã¦ž’†¡!²Û¦¤¯ ‘¨¯ß#2Ô “qE3ZOq_ˆÈǰ=t‹Æuäw1“ˆKê{†FC—ÝÕ çJÆVÑù}U½‰ÖI¹GKø°Ç2ŸtC¯«i¯ë7X®?ð„RS]Sx€\V¬§$8`Xdõ` ÔYÌNÕ5Ç‘ çÈÅJàCuäñÔÛÞ" ›ˆVYM ª‹H{º2#sq Wå¬ Ö¸C]€¢uýÔ˜дKÅwVXIV’””¾e°<¨)Í­Mž÷]¤b˜ÅbØ”¤ŽWáŠ'¸,ܹ5û´‹ëÃÑš´n·¢úIíù‹ÓŽàñ6"'l#«|=\ÒàŽ+8@ãŽ&ì¡-Hå܆þï1—4è&“¦Ë'³ oC–3#¹ÝIé ‚ìoì”ë磾v0ïÜu~0V`<„I ¥Ê˜ðÐwþ ͆:)Pã½~z\Øîÿ± ^)˜Î÷×"´àG Ë¢±yo„Ô¯òdôÉ3Ê$Bù™]jp .:WÆt“Þ|eîcèÚ#‚¸fëÛKšÆÆs¢ÑuÞ¸£E³mBKpñ§·N›®p¯Fn—•ÁHi$æ—9Ÿz`›Zæï üd™± 5LðÇДZ ß`¿!³p’°‹4¡EÓ’ÑW ኳþJ!uá•»‚nz1ñ=ÎbÃ^„cW5™AQ?ifœzþU¤ÖàÇ‘4ß àïPP¥í”ÃçŤ¹+bøä4ášÞ_{¨ÆIBDš„sXèóHãibA_@:¾r¤2Š3¥éÉgä¾'ãäº@ûè¦íܘÉ)‹°¾Ï¦,PÛÑ1 n 65xã:ʃ\.ÆÚ3·™WûZ4Ü”æá#jç¤ýhu;¤á‹x_ZÖ°Ê×Âè#Wü±j™0Òÿæ Aس:ÜУv¿Šm¦ÈúÊLH€SÂþë$P=ž×ž(Œ\×>’–gð&…VÌÔ곌g  ¬î˜VÄ´‡K8-\6&|Š›ßãyb3£àŽá~¨àƈŠFoÊ#ž>¿Æ\ŽXûq÷äèŠôäy Þ@æ%­‰æºÍù&f÷ܬ=¿ñŒÒšŸã1Õ]Y›H’£^´èÙ?ÇÆï™cŸ5WÛØ¶MlÍqýíÜÖêÃoñCQÞYÁ‡ nê»î=l¶Ôl¾j²üµ;–ôóäÁ˜¶¯&˜iLÛ×S²F8ùg ­p0ù÷숄e[rHF;ÿ¹ëN’ÖD'¬óâšøW?éCÜ}Ò¸VÍH—ý¬7Dßìåñ> stream xœíœKs7€ï›\òö8S•ê–Zä !!1ÀIrWal*ÿ>­Ñ<¤ñzØõ¼k¦8Øžínµ¤þÔR3«ws)`.ÿúçÞÑìÎÄùë³™ÞÍ?ÌäüÁ ¬¡`N^I¡a~4Ó Œ0¾}òfö´“²Žu Kuzè„ÆJJÎ_ÏÞÍ jt^ÿØ;šßÛ Ó@x"œïÌ¢G0ëHnË¡°èç»G³¿Š£R Ò‘òÅI¹@#È[ì—‹ê99§‹Wá”ÐoÊXDþ,ˆKa¤TÎoƒ‰R#¨âœÿo¤ÖÅc÷Àb+Iß+ƒˆÖ¶8`=ã¸Õâ,iü}å¬öÊañ²òPz2V¹ EšH 4®ƒáÏ‚Fûï݇³û»³Çݘ·ãÛÍB7¾É,@Oª~’IE‚ +ËÃím%uÅy2V8GqžþP.”ôÈCUüTò„ ÏÝ»û[º‡`¡xš È}@)eÅÓqºó„tæšöB:önwŸ}٠š'lÎûAB*ë|#ý¼âNJ*dKÛ v Õ÷ÎHXÞj º‘þˆmŽÐªul{\ö‚µlJ¿×²½žßÊÒÛÅó’ãM‘úmæÌµœt4uœ´ìhBRJS­7‚&vN«zÕc$8öÉRá˜åQ:_@Xþ\X×%l7Y£ž”h9ˆYõ ª ªë‚J AÕâÒÇ,ƒJiþ,eªR3c˜R™ú5xž³½‹T9æ*ôÙa%± ¹3̈aêtdÐé/)OÁ„ÔUÆäÚ‘‚!¤XrÆz›>QÁ}8ê36‚(Ô‚´‹Dýœ"õŒA’¹Ûé¦Aé'¤‰žÍ GÑÓ‚Ñã)£‡÷_¸”žZm>Z 1â³[º‘|`:­Ž˜V*ña‰€U8šRÒ— ÞT8UËK³”*NSJ ¦TÕzW§J{†ÌUÕ.§Ì4AtóÑD}¬2ˆ¬q¦g¥FoD8þ†º}Ýï1òƒs‡²^+çB,ijS–ú€]{ ®ÁVmý†²T‡N¹ 0Ãç•òU«àË6 ‡j0Õ"&¤¶©–>cQš9piÉ<ª)™kB6àÖÈYmßÞ— ï½ðüxÚN|Ý8_ƒ{œ¸¼|®•"Î)`µÞÀ”ΪUÃmÝ~dÆGvý‘Úví‘z‹O]ƒ¬e§Ï\Fxö#ÛÖz#C%4Ú5ÛÊ6vûLa-:}ä2À¤6BÛ°Zo`!ɸ•ëjJaŸ—°OY8¼þÍí§°–>s)aÊËðjdJX­wu”ׂ­AØ”Â&À6°¡Ö¡ÓG.Ì’”Væ£Þ˜Ê¼rœOœ¿Ø/ ;UÁ¬6YãwN#œ*ŠSÅãRÛêXza°£(§//Ò+J¤¹¬Qš!a´^5pdbÅ~ÃØÕí‡Ê AÕàÒ§,cJǤPEµL0EKªô—0•Ö8¶3}mëVq[«—¾Zˆzìe¤)ÔÒ× µ¨)#løhuÔ¶&}MPÝ~¨ÓWËK³Œª€‚M_/lôFP…(”4+S•V8¦6Õ:6“µÁÖRÔ§/cM*n+-×G½1åz%­pk¡6%° ªj0µ¸ä˜åzt>Dw U­wu¨Ð+¡aI…þωªÝRB¶2¦aI]øŠÿ"÷¶È骻­aâj˜«kÏÄoý ¹º‰ÂüЗ¹:bú¤e\qº*}ÿ°ÑÁ•eÌ’Â|à ¼ÑñK\Ãû¾Ë>ŸØ™Ø¹vì;-}š2vØáÒW ½ì0„õ«…ñ”Sßæól§ú¤ãíæôÆDÓ€mºš†þ‹¸ã¤ÏWF“&Žãô5ÂFoMÄánëׇ»WUv±Ž8/1?Œ¯¦³ÒDÒ&ä†Hjé³Õ#‰„NëìÍ“õIbp޼¢ü‹ÄºxÑÝÁô²ÎT [¸k.$âç'eC;áïʧ8ÇâÇ$¸ÝeYãyñ ×Ûu7ÌÅ&[zQ!Ê#[ü[R(Ô°G/’q?Œjèuãu}¹Ý…®593“ª:Ç»[g£¥æùq|ΛÞâm¦ýOöWêÉqªÿºký¤ûõ´»pï8³ó-7®¶ó=û'aãÌ )>ÔŽ²Hrm_.çQÞúl$ÚiÝ¿ÔÆ×UøôkIÕ×—û¥Rûer¥ÃÛnír‘ Ì~ôEVãÊÓɹð†\gï(>†0Uh3ó§QÙI“ŽäAí}3=µ¤«‹|^4.@3G¢Ÿõ€Qt™~üI`xÕ½âw+lºzì8í ÛÇg!Ö«ëÏ»oéŸÄ‡Fæ};«r˜E ™åÃØº6<òGI÷ã©EQ.–°„ÕÇ/r .† ^¥]ëcÑšŒc!-!ÿË>9Ñé=³™„dÝð”]> stream xœ-oluÇïø3n;5ÃgËÞlÓÙR1]ªs6n.]ý7»RÌ=à¤@ ×ÒY W`Àñpüçø3·Q«Y7ÔºgšÖú¢Ñ˜™ÎwúFßøÂì…ï‡Ïa~yò{žäI>Ÿç‹c†ã¸ndìÂÅAó­Y:ŒKO«¤>5ÈÙŽ£Õöa_{µ/´÷b_èÕ ×Üú{ð ”~E¢…Ç0-Žûæâùêˆo沟qºXê˜ý8584ôÒ êy³yˆ:í¡ýŒÝæ¥Æl¬‹öØXe˜¦.øì Í^¦Ž »XvæäÀ@0ì·yý>¿ó•ã'¨ ú¨wéퟧ§¨3>/K½ióÐT×´¿ûø<3s,í§Æ|S´ßk (=p+ W€ñ0Ó6?†aZ‡S¥îŰIìl Oã€íSŽÆ4X_S½¬ªJ©)%g›’cUbnàhú¾­Kÿ ýÙO/æ3¹1ÜQóøé4)/è` Üö]^šŸK'ÒÉ$\åTÒ{É-§8‘å€'!OèÀî-zóÇm!–@¬(‹ÓùÜD+¼“*ƒërè`3ö±»5ßôV|¥ß?Yß„ï‰ÿ•\M‰iv•¦åý°ÏŽÊx¼‹$8Ê=Øþ5C"EiZíÏ¿\»#¬dºÊðv.gYç¶Sb—¥(} -Ëûí3ˆ(ÜCqӽ䶻6žvÍ%k飖»9¿¶|36Ä:­ðÑÓ¹VnJcJBG¥ Z2¢ÛyY"U^ˆqy9ÊÅ^äLhR¶ÊJqÏCÜÈU¢•’ T«$²(Ï.Û…t1QcµTÈ¥ò¦´ ¿€/î Q4Ú›/4jùBFPN(*©—#±d’ãH%/šÒS }ö[5º)2dê°: ‹gÃDXW—äC¢y^ˆƒq)¼´´XIV&tä¬L¾±‹%!d ÕÂõ¢×?%‘æ·<¬¿–(UÅëd £Cýå„ÀÁX¯Õëh>R0½u‹‡á¯y¿÷j©”ƒÑ×–â<,øIYsR«D‚Œ»¨gßí<§î8І•+•X"_H“ÉgϽ÷:œË݉»ã›ïožBÆß–Ufw 2böFÖ”Cª_¾ùîÁÖ¥íK;Öï¬?ðêOSO`µsjeŸ|XÔµ´!hžtDôûÛWõz¥ŰËg¯þendstream endobj 110 0 obj << /Filter /FlateDecode /Length 310 >> stream xœ]’Anƒ0E÷œ‚`ã`+RäMºÉ¢UÕöØ ‹"dÑÛ÷ÿqÓEéÅcæO†æ|y¹ÌÓ^7ïÛ’?e¯Çi6¹/-Kä:Í•mëaÊû¯é3ßúµjίýúõ½J‹¿õ7i>lkô'[.åeûÚgÙúù*ÕɘxÇXÉ<ü;jåFŸ¥)\²šcÁ¥–:Ä‚KŽ*±àÒ:Æ‚•µ6*8 ÔCT =õã²¶(lµ8¡®Š1­P‘ˆ@3‰ˆA5‰NG*œòn‡á‰1uhB л¨ã9‘G@åD¾‹ ´£"/2¤G@¯!=' h´Q`£€&A6 xkÐ7ãÉM<ÿr.…ë}n³Îm“y×o@wÌÕN³ü}&ë²òV ª³ äendstream endobj 111 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 3246 >> stream xœ•VktSåšN [(E‰ˆàÞUG„s à‘é±8(H¹Ê½•ÚBÓ¤iÒ$½æžì¼¹ß›¶IzIiK)” ­\¥U(ÁQQðœYŒ#ºÎ|»~]Ykæ¬Yóc&ù‘ìoe½yÞç}žç{¹œ‰8\.wÒʼ¼5Y‹Ç¿f1³¸Ìì ÌÓ¼2ìՌҞæL[‘ûtíµßq2 é»gOÅÓÑWO þi(ü8'Ë•©L´ÓŽÆ;:ûVÊäZEiq‰2sî¾y™YÙÙKçg.^´(;s¹T¢(Ý'.ÏÌ+K$R±’}(ËÜ"ÛW*Qj3çæ”(•òß/\¨V«ˆ¥• dŠâWæÍÏT—*K27K*%Š*IQæjY¹2s½X*É|„xÁ£•2©\¥”(2ódEE¹¸L^"Þ+QŠ‹$eJq±X*³År¹X&•‹å¥yei™¬<‹ÃáÌ”W(÷I6n*=°,ç•—?%=cêO>#šÆálâlælåü³Š³š“ÅYÌYËyó8çiřʙƵsëà:¹.®›ëáz¹>Žˆ%“3‘ów÷Ó Ë'üÄó~˜x"mEÚ>¿™çߛě$*‰‡ÕOþÍäï¦xÓg¦«[Ó€·u¡…qfaœ‹–Ž ¼ÞI,š¤Vã^ ô ¡ÆP¤Ñ ê$?çèÞ0´„LP]`óùÃ(×ÛF…dEç@i(½€^øvûHîë[óêt”ñlQr”ƒ²N#Ñ×­+au[|~‡£ÍKF/Ç.§€hó×H+mz«–Ö }‡u55†‚½‡úˆïÙ¾[†ÓÛ)ÅÖ‚Ý@¼ªûÒírú*ƒYýߨ gœÇä1+…¶¾±¨¸DCjË: Ài8ÏÁsç^ÚtýT[‚rØ%ø7†bƒ´òí"Û¥Ékó5¶8¡‘zÈB3ýµËXеùl—‡Ã¡häZª®Ó¨d{ óØ«QS} Þ¨´4’ExIÚ?ðÕÐè}£¾á¯ÁÍÆ›êEù½…¿¿€æø¼V—™¶‚•&íìËTSµ³`Õ& ¤tG«b®0KL¶>ŽŽßŒsSDª?ñ˜YLºP¨k0[tµPC¨£ ±öÎxêtÁ±Õxû~?ûâ…œ‡hö—xÍ«Ín7È×_š_+bµjøl_óƒ£×©ä© ®@†èx!‘Áxôãä£Ò75‚¶\æ10š%t¸^ðA=Ðö]V»…¬¶×ÒZ»‚6ÙAKèýÐxÆaЛi–'r=¶ê’òÔvýí†Nì=D7žªî†nhoi9Út¤ñ=pìhÍ»¥ÖJÖnÔ¬cZN'ãnHøQëƒÿÑ0;Y‚q´,μ†šzxèUT+ì„ëÎÓ-Ÿtù.A 1 I­yÿv>^ýìðŠûÿ;/›¥ƒ5BGô*å‰ O¢ÿ=ÌJ¶»Bò,~ÄTÆèèBoµ£‘.îèßÁCgÐM!Êá#‘ÿÓ57ñt ¿Ï׌;Ñ÷À¨£Ál­¥ð¬±>C ­_"´ºxcq'+ô? :„?Īӵì¾ Çácý€f3g„cn'Ûëwṷ̈߯¨© €ªÖî–,b]ð ?c´ oûúOhZœ9ÜÊ=}qãè™N$¿Íc^ñ QîèI´ÐecÎ÷8Àe¸×à¬3ÑóGz=ÁäyX@C”Cîm4emðzY¿™i‹ÎFªÖm/Þ; ¾Ïr‹À¯y„9’»ð-ÜH"ѵï?BüïÎ} Ä7–â¿[^‚x#ž@YÎÕ ¯bkÁÖ]:w­ÛD¡ùaaqM™Y„¾Žö½=x6TºÓ F»™5ÕW$7ëÎôO.žºXxw†€AGÑsÂGÒ°U[ÈŠE{˰ÙUçêî w‡º©h½Ëïk˜è-iÿ®…ûñóÆñ 8Ün²ý‹þKX Ù~°¢þ€QE­ÂëÍ5æЊÞì)>ýíQÖq¤à#£FZTÊ U…"a w¶%[É f.Œ3…SÿR^.øÏè†Ðݬb/~sÎV<Çdq[½~‡;è!SÎö°Ñ–éJ…Þü±©šåù[Þ‘ª@l÷ÄbÐN454©**UÒ½Õ'>¸îß:Xè©ÑlaG•¿AΩ k[YIGv%~Úç^`žà1ËG „àðFÁI„õ>£Å*#‰¿þy9ØÍµ@‹‚&¿7àHøÈŒQ§,Á„âÜÏ™¿ðF_`j„-~§¼DÈè×Ñv»¹ŽëÇN­‘6Y&‡9f`؃™³Óî"ä÷‡¼´Oë§ÆÂHŸö?Ê!0px-8þ›±~äœYï¥4;“ÞØà·FÌÂú±06°™7þFŸ>ìt8¼djÇ[(÷­ŒóÐv«ð’æäÞƒ5*UT~$r¤ÓéN¨³0¯Ý´–Ò5 4añX<þ[¡IãUà÷«<´î´°«2^Y®®¬,oW·wÅÛÛÙþ'ü*§ñœ¼Êcö!¯ðÁ÷ŸùÛH|ÿ£öá›dã–ÙI .t^ŒL`cƒÄh£ ¥ªˆ2¸úõe´£éà F°±BÔZÉú=Ëò²‰u«„Krr %@üA}åÔÉÖ‡=CÔ‰{xX°Ta¯j‡Å¡c3õ,ÞGÿgf¨/¨Ñ)õô_¸7š9— çg~þeÂï~á0Ÿ ‡w\Y„…Ùxñs$^ü“h£—ö€Èì5å¹zg· \BðzÍBѼ~CÕaª!VÛX&?Ø?ðÞgOáx••:­:¨·k½A_Ô™€h¡­„`Œ½Ê× á ùËk÷k|UœåC®æd›××N ~:\ÑXºó)ØT“¯)<°|ÙîÕ@¬\º€ˆ;J ¦^4ã 4ùˆcÆwîaƒwUC|ôÅnnêÒÿz‡"ÌkBüdÙB,ü‘ùá†ÛhòmôÝ)zÉý§6Ü‚ÓDs¤{ '¦«î&æ¶úëh¢)Vë*ñSùÁ:¨¢z<¿«có‘5TH#ìωJa-±LŒ³mIþyäÚ„femâÆÌÈ5i|z¬]o›!¸Åd  !}†¾%¹§>[úÎ 6'§½†³* >pÀñP‰÷¯žù€Ýl¨8^8w©Ê¬¦4yðã #Œ.ƒ?èM…Èö¯½ž!tµ¿‹²?CY¾¦ÆNp»Ï@[Æïjš.yUú*!¸U[ª~óÀvÐj|0Ö%˜ìæµx‰‡yŒ u =qW:‰á’ÁZœ¿N¡%mïîíÙóØ Tú"S%ëF÷¦E+2UèòÁBÔ…tÑp£7ê'ž@Ÿ'Þzof/šéôvœ=vX”l?ÒĦ_ªQº¯ÜZcÑP˜+´[h3kÅÚ°>H¸»ý,qÃì}Y‘üó}|:úË•ØÝ@|† •²ûPo˱žŽÄðùÖ¦þ¨Õl7‚‰·Y‚‡[ºc^:Y²aãŽý{ÈM;ÊU{ë ÁÝ~´$m|Û1¨Æ·c“lã†5‹ÆAv{“ éMœ@/;½H`>yv±™`³é¬ЙØp|ÿ™m]É(™8ú¯uÀZÃZm·jù TºH_ÌÝÊŠÏdY ‚>¸§Ö¸X¾ÿ]m :?=ÜUŽzQ45CÐÅÜg÷¢.ã±µR¡6¸Í~­ŽÉ!ŠU›kÊÁŽ7dùÛg­ƒÊ”îb(Ù6IBвêMF«ÑBÖ©êsUšý[ó^â5íåw¹ßÒA£¾ ¾>kÈPc©o0’;rŠ1~Käµ-ÿøîù›ý Ò¿¥{Û?Ã'púGï$/õ '`ˆ…x^Ÿ`&\à¢;oóP˜™*Di|9žX½^&êsN$ZbÍpš¢¤üør‡Ëë!Ï~:€x—¯ÊU¼˜WkÆ©'ªZ,.ò­0ÙtœÁ ƒb§-íBsº¸o_硤F›¡)¢/ÿ¿ãþå¡o€èâ7GÙC{XÊÇÓð¬y8 ó>Îýîê•TÐkóšm´Ýj¡$Šý R ¶mé{s&)*£*Á¬ †BHžàãÂà¤ÖÉ#SÈÉ—ÆÓkõ¥§s8ÿ Gïéâendstream endobj 112 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1778 >> stream xœmT{lS׿Žc÷B"—vr·å^C K) ¡„…±%éƒfK:J‹£-Nb%&8qãÄñû}íïúýÌËäQì$5¶ª*¯A¤±uHC”vY‹Ø˜TÔ­çº'T»AûgÓtt޾sþ8ú=¾ß' Š‹@ ®­¯}óbµž{ZÀ=SÄ-šñþoË ïŠ–Öüd¹éÅ(Biñä3´>Ž!õ£H±Œ ÝŽÚNA«jmÓÉË›Ÿ—¯ß²eÓZù‹••[äÕj¥VÕ¬è×+tmJµBÇ_Êwu6«”:ƒ¼|[›N§yiݺžžž …º»¢SÛºýùµò•®Mþ¦²[©Õ+[ä¯vvèä µRþgÅó¶S­9¤Sjåõ-JmAK«k_Ó5ìTí:ðA¬$ž#ʉ·‰uÄ‹DQEü”ØH”ðd‰bbX°Jð¯"•p¹ðf±J´^tJüÇH Ç!ö湚ÃTJ¤ïÔ4Ù[»ßê‡>’ ØRT"Á«pƘ0œ)}6<™´…õÐzVƒQˆ¥3—QQÊŠGðDfƒiŸÉ½~Ö2˜˜°qêwâÛ0ÄÄ€ B¦ßÆ·üñ÷z÷3êöÌn»ÛNbëB5£Ï‰?I >}¾ðý¼àüaáDa‹” "&£î°ËÅ0'õÊvGz÷u¼dØ„-¸÷áT¶m@O"áÍ¿¦ó§ÓC„Œ»C«Ïcc(¦ðÓU¸ÈUòß |D[‘=Fÿqþþô§@¢ÇÏ­^köö‚•¶¤!”„†C”¤pYŸGÆèæu~BlXD“‚‘Ø$¸ÇhüÔÂQëž®C;|2·Õop‡ :cÁ9ø˜øâÇ<«LÊpÑ­¬:Ç ì=ÉeÊX1šZ¸5²¾$ÈøÇPhˆ”®ãÝ_ÍM!QŽËL Îþ}±Xý7!§ŠJQåET‰~ ¨‘D›±á*Þönläw"ð´-{4˜CE¿ÿòÞ…[@þs¾¯ØÝƒ}XIÚ:Ûs¦È7GÐI£—"R½£Õ®ÒÚ 3ÇNÌ|øáfKKÐÞe:‡¤ܺ’¿*Dg ÅÒQã ®«£[}hÐ8vdb|’«„Ò·1å1y¬Ð'Û;ÝzþÞ)$O'œA—Õç²3”nkSS3ÿ»5œ§§èD6‘Mf§>+‹¥¦`ˆ<Ó|¬qË-ލ7–f#‰ •»óQ–ïêþ„§Óî7ÛÕ¼ÿOñY^3)@u×Pòš°°áBäóYm”ÍÒÕn³¶Ìþ¬¿HL㼋wN©Â.:ß6áœë;æÀ„kÂõ‰6“U+VÖá’ÃhYF"㛥l¬×â÷ê¾8¦žmþ dh*áGDéG¦ãš­ÎˆíKuD[⺈:ºë0\%oÌÏß¿ýÛ}˜èöêÁKYã¾hŠ .f§ïÏq_<”Õtéæ„Üz^׌)Ó­îêìêèŸ<’;BaåƒJM {ëÀ¦e!NŽÒúö€ò„vö*šF¥“Ômôm0ˆÁ€ìÂ{3;WÔÿGÊ$ˆR“WΞ=äHÊ|ÀÌð‹–pßñQú椀käîKãÇÙÀ) ¯‹¿NØ£uï÷{hŸÍïi‰3‘d(’ RYôsQ¿ ÔÂb-øÀ¥oÀÕe>ã7錺cÉ@x(BÍ¢ª‰Z äŒx’õ;oßKã²…Q‡’±= ²v;?ÒÁ2”½„,ýgq®29 c|¨úm évB ‹nzCÀ6LýW›H&‘fDŒ÷'ù`éjiñ¦Ã¥Kr¡ÒR‚ø7F£¹endstream endobj 113 0 obj << /Filter /FlateDecode /Length 220 >> stream xœ]=nÃ0 FwB7°e»©‡€KºdhQ4½€LQ†È‚â ½}I*Éá x⤯;?Ž9m¶û®+žh³1åPéºÞ*’]蜲qƒ ·»é‰_Lwøôå÷¯åŠÍ¿ü…º7¼é•kC¸ºT}>“Ù÷=ìcC9¼”\ß&–xo¹Uˆ3-Àê@‰s܉Π°:Q ë(Š °¢ ëÄ:ñÖ©m¢¼uj›gÑ®¢è WßõÝÊ$ŒÇß-Þj¥¼ibšˆ‘2=C-k‘)˘#TtÏendstream endobj 114 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1083 >> stream xœ}‘mL[UÆÏmK{Ç {­½´—hÄ…‰Ù€…l·%–8cK/ƒÐÒR.”ò2ñÒÞÿmYysÀB€KHÌü nÎÌab¢QL4qâ[äÃtÉ2?œSν@e?Üœçœ<ù=ÿç¤Ó †a EÅ/–eg­Ëò C8 IÑGsqÕwâRО“)-_¾ I£Œº.îùý$u‰ßƒW÷¢D•\¨u"@ChÍ¢ѧh- h™Ñ¹Ü>OÕ¥J‘O/Ïà³ssás²²rùSNÁSUn­á‹­b¥à´ŠêÅÁŸw•W ¢O?Q)Šî¼£G½^o¦ÕY—éò\*È8Â{«ÄJþ¡Nð4vþ´«Fä_¶:~³CææQärºëEÁÃ»ì‚§Ææ±– BãÆá*D›¸%Uö--ºÝVP³1lLoº·¤Ð¸%·›cŽ -4ÖÕ;×˸jìUun‡Õ‡Ú]wâxöɬSEeˆ‘`d&È„˜^æ*fú˜~f×÷¨C9¨ =d2™³¨Ù«qh¾Ò(ÚâO\1Ò»üö8Cb£–ÈM¦iIv›ÏéÝ’Tk¡ïjeiÆü…~F–§-ª{íP$ú8掞];dš’åÉ1Iî Y“E¿þ›ý;ï}XdI¡a;H)4M¿OKp55°*‡#$Âéù7÷ ÝeÚEò €Êð›TÄnÀ)aàxV}ßÁÍ7À1µÓ—(ßÖ!IàŸ, uL{¿~ívÚÍüñÈY[Kz26‘• &øiŸÇ§ñþkƒ² cì¤${ÌÍzZMÙZô0«Ž¼£{ôo.ú”:óï*ƵZò=k‚)ƒWKg°‡jñešm-c=W{‚Y’›m¹í\óYð’Òô½òH^Íe[Ã0a¾§@ä!vº‰Æï«hüÍStÔÆÚ  `ÌЕióÔƒµô2Χ¶_owo (ÉÒ(°£}0„`×€…þJl‡É])ÚÍwA½Y+"d.†%i±¿[[Þç› ïý·á¦?^½›&Â0l FK~$ x™´ö €ÆvBs³Ú+`îñÓ4-^¤Iôúq:W¡ ¿£Ú¶«ÓËmaˆÀŽŠ±íÝ4IC]Ðl©¾¾ ZŸ“hG- Z^U†i2]¡.úYg¨ l{?ŒŒª™AsoÀiKø"NÂׯsïºÁvÀíì“®1þÿwå⦸ÿ"§ûó6Ãé–Um øÛ8Þþlêjp6tgÔÒR`•?ô$LöõCp5YíêT*¢û’Èzü4—q×{}F£ú% ô“'aðendstream endobj 115 0 obj << /Filter /FlateDecode /Length 1870 >> stream xœ­YM5½Ï¯è=‡6®*rD$ÄX‰CÂ!JB Ê%…ŸÏs·=mw{&ÙÞ(ŠvÇ~å®ö«W~ã}7hEƒNÿòÏç÷§¯a^}8½;KPf0^Œ²2x2Šý@µ2vxÿrømx{rеf;|<Ñð#þ¿>éá‡Yö*ÆÁjÏÊËp"ÑQ‰ &’¨`†7§_{(G¤LL «œ,¨Ø!ÜÅËHÚÊx­b€ÄWæ³úÕhdh&²öѯ^ùVˆ {2+ ‡ª­‹ÁŽ¡ÇÔÍòé4­?­=}ÔÅÍȸíû%îÒª7Q71UÏßcò›=ªå#cì霱ŠÈ¦¢~iÓvhºtÕöM§í“àŒÿ43þU9<€è¡ÛêŽ6µÁ#t#u¨ÒW 4xCe[vPÞzÕ ÐHÐIR–#©ˆÓ ò§P›Åűj2Û¸O ªVÔAZG^ù™pxos B¿myŸ% D­ÐEñÙ!¦©¿vs@˜¦…#^wŸížX`ux˜Ýs¶cT.9¡¨Åe`1h[Œ·nöz¨å²§2p?è:}¢•ÇIõÔƒX¼ VFå‚ ÅŽÊ‹‡›ö&n*_ÑE–‹»iãŽ]mY*ïtaŠQÚ DÌœKå.¦ŒETp‹ykâú(IûÈá2R?QXÛtýr¿‹»ã}¸‚*ï(âLºÉ9V.ý€Ó"Ê`‘½±Ÿ/gL}4ǺàX/¦Cô6Üðôݿػ#Ôg#TqšPÍü´8ª†÷<´Úu1ÅàÕt_¸²ÙFÝÂÔ„ï1Ÿ>†ïbñÂwÿo0Ò˜¿©ÃýÌÞê‹ëZ»pñ{uî ËW·áâ¼8¦fXßÙ}µY¼vlëA³»ª£*Û?aI‚zœýÃ"X5Ö­¿w3Ç—op0ÓÎýMKëG Ìèªý£Nç¿•<('RѦ’«ŒKºÓDÄ ôâ]ŸŒßŸ ¬·ã_g´NMÎAÛã+|È:Äñßó”&ÐE½„ñ}úAv|yžÒ= ”†ÖÜøÍy2"àËŽÏÖeÞÌËÃ33 >Ì‘1øñéˆ ŠNÓ¬b1l4ráñéyû(›lÞnr»¬ô÷y#NG‡_/9ü³^¦HˆNu|Q²15¢}SüJÚ³m?¤@Ô¹ñc5¼ì¤ñì­Ô+þ™Ÿ#ÞnþÕFÀúœgóK”Ëøß9­ˆg붤‹>µ(õa"vp´Ë`hA¹HþõùdÜendstream endobj 116 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 340 >> stream xœcd`ab`dddwö 641~H3þaú!ËÜÝýãÝO/VY~'Ùš³¦ò|=<ŒÝ<ÌÝ<,k¿ïúž-ø=ƒÿ{ª3#c~i‹s~AeQfzF‰‚F²¦‚¡¥¥¹Ž‚‘¥‚cnjQfrbž‚obIFjnb “£œŸœ™ZR© a“QRR`¥¯_^^®—˜[¬—_”n§©£PžY’¡”ZœZT–š¢à–ŸW¢à—˜›ªq©„rÎÏ-(-I-RðÍOI-Êc``` b`0f`bddñÿÑÁ÷“«{Á÷=Ç¿Ï<Ìøìþ÷«·˜h¿%úqÕ±ëÝW9Þ+<ú­(÷»á¯×ýï¿°}÷ý}‘õ!Ûû¼¢ßg~WdÿÎ{ÌÛÃ7Ôý·<_Ù‚³¾G,˜»€íwâ4öã\×¹å¸XÌçópœÈÃs}*/Í´{äendstream endobj 117 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 206 >> stream xœcd`ab`ddä v ò5420qôH3ýaîîþáþÃU–ßÉA¶æ¬©6_c7s7ËÒïÞBß¹¿³óg``bdSuÎÏ-(-I-RðÍOI-ÊSÊÏMÌCd```ì``(é`·ùÏèæÏÀ÷ŸñeÃí²Bå Ê…„|¯úá+ªYgëØ­Ä¡uKï;óçG?Ë /xæôþ7—œð¶ö®6i¾ò?œfÏ뵘íwh7û{®½Ür\ÌÓìy8}hFendstream endobj 118 0 obj << /Filter /FlateDecode /Length 784 >> stream xœ•VMÓ@ ½Güˆ§ ö|›#PoÀaµÝ- -ÛýñøÙx&ÍŽ¶Ò¢šŒ=öó›gOîz°‡ò;ü_îºWŸ¬í7ô›î®Ãjí—»þÍŠ=È÷ˆ…`ûÕu7nÅžâ"Ps2°i×™¿‹Õ÷2¨ 8$pÄ›Vëî³y¿àôäÈÜ.–0D—£¹àeÞykÖeBÎÞ\• €–ŠÁÙ0Pæ÷¢¬&›¢¹áG¶ÇÈ›9Lu ”ÆÇ8D4?eÀ’È‘…Lf·¨Ë90™çA<ïë^pÞ‘Ü|)œ®ÆTHÎ|1µ¾^¥!…˜\~*„æÉÈãè”Qzlá‹sôeo#c(|"d¾©ØšÉbðÌ_`È‹óõbÉ4²-›ÂàÑ¡pßÇC°à-:óg¤#Q4ØÒŶõeÉãÙRu÷>f~lT¼r)æSÙ˜KÕ\è×Õ»ÎYÇ™ü$¯ý¾ú‰e(Ût6pAgÃy9…^¢¼8f[£EǺ’bÚKÁ)}nå‹<‘{† yH9'°TÒÐf¦ÒÏ©ð=SÏ ä¤!#Ù]óÙår hgJ{¡Þ6íFµgÁ3zài„gs×°ýR©‡ke剕÷唿Î5_;Ž<ºÄ©ãäýÚ5úD­ºs9!WÁ¤%•{Û:ïaúHJ“rz‹ó®-€ÀŸ))õË8€?Ü3x²µÊ†·«î#ÿþ=îûãendstream endobj 119 0 obj << /Type /XRef /Length 130 /Filter /FlateDecode /DecodeParms << /Columns 5 /Predictor 12 >> /W [ 1 3 1 ] /Info 3 0 R /Root 2 0 R /Size 120 /ID [<485adce2bcca83da3a5c52c5a1ea3b36><7cc7ce145643a7f0d44984da74c39be2>] >> stream xœcb&F~0ù‰ $À8JŽ’(äÅËlötP x "EN€Há3 Rè:˜‹ª‚H®· R6 D2ý‘ü/Áz]@¤øZ°ø]ÉQ "¹µ$#g.ˆÍòD2ÖƒH^N°_°Ød–i`‘`ÖÅ5@$s$í[¦ endstream endobj startxref 77190 %%EOF phangorn/inst/doc/Ancestral.R0000644000176200001440000000647213241142046015655 0ustar liggesusers### R code from vignette source 'Ancestral.Rnw' ################################################### ### code chunk number 1: Ancestral.Rnw:44-47 ################################################### options(width=70) options("show.signif.stars" = FALSE) foo <- packageDescription("phangorn") ################################################### ### code chunk number 2: Ancestral.Rnw:62-68 ################################################### library(phangorn) library(magrittr) fdir <- system.file("extdata/trees", package = "phangorn") primates <- read.phyDat(file.path(fdir, "primates.dna"), format = "phylip", type = "DNA") tree <- pratchet(primates, trace=0) %>% acctran(primates) parsimony(tree, primates) ################################################### ### code chunk number 3: Ancestral.Rnw:74-76 ################################################### anc.acctran <- ancestral.pars(tree, primates, "ACCTRAN") anc.mpr <- ancestral.pars(tree, primates, "MPR") ################################################### ### code chunk number 4: Ancestral.Rnw:83-85 (eval = FALSE) ################################################### ## library(seqLogo) ## seqLogo( t(subset(anc.mpr, getRoot(tree), 1:20)[[1]]), ic.scale=FALSE) ################################################### ### code chunk number 5: Ancestral.Rnw:99-101 (eval = FALSE) ################################################### ## source("https://bioconductor.org/biocLite.R") ## biocLite("seqLogo") ################################################### ### code chunk number 6: Ancestral.Rnw:104-106 ################################################### options(SweaveHooks=list(fig=function() par(mar=c(2.1, 4.1, 2.1, 2.1)))) ################################################### ### code chunk number 7: plotMPR ################################################### par(mfrow=c(2,1)) plotAnc(tree, anc.mpr, 17) title("MPR") plotAnc(tree, anc.acctran, 17) title("ACCTRAN") ################################################### ### code chunk number 8: figMPR ################################################### getOption("SweaveHooks")[["fig"]]() par(mfrow=c(2,1)) plotAnc(tree, anc.mpr, 17) title("MPR") plotAnc(tree, anc.acctran, 17) title("ACCTRAN") ################################################### ### code chunk number 9: Ancestral.Rnw:133-135 ################################################### fit = pml(tree, primates) fit = optim.pml(fit, model="F81", control = pml.control(trace=0)) ################################################### ### code chunk number 10: Ancestral.Rnw:147-149 ################################################### anc.ml = ancestral.pml(fit, "ml") anc.bayes = ancestral.pml(fit, "bayes") ################################################### ### code chunk number 11: plotMLB ################################################### par(mfrow=c(2,1)) plotAnc(tree, anc.ml, 17) title("ML") plotAnc(tree, anc.bayes, 17) title("Bayes") ################################################### ### code chunk number 12: figMLB ################################################### getOption("SweaveHooks")[["fig"]]() par(mfrow=c(2,1)) plotAnc(tree, anc.ml, 17) title("ML") plotAnc(tree, anc.bayes, 17) title("Bayes") ################################################### ### code chunk number 13: Ancestral.Rnw:173-174 ################################################### toLatex(sessionInfo()) phangorn/inst/doc/IntertwiningTreesAndNetworks.R0000644000176200001440000002117013241142071021573 0ustar liggesusers## ----setup, echo=FALSE--------------------------------------------------- # set global chunk options: images will be bigger knitr::opts_chunk$set(fig.width=6, fig.height=6) #, global.par=TRUE options(digits = 4) knitr::knit_hooks$set(small.mar=function(before, options, envir){ if (before && options$fig.show!='none') par(mar=c(.5,.5,.5,.5)) }) ## ---- eval=FALSE--------------------------------------------------------- # install.packages("phangorn", dependencies=TRUE) # # install latest development version needs devtools # install.packages("devtools", dependencies=TRUE) # library(devtools) # install_github("KlausVigo/phangorn") ## ------------------------------------------------------------------------ library(phangorn) # load the phangorn library library(magrittr) ## ------------------------------------------------------------------------ ## automatically set the correct working directory for the examples below # setwd(system.file("extdata/trees", package = "phangorn")) # for this vignette we create a path to the files we want to load fdir <- system.file("extdata/trees", package = "phangorn") ## in your case it may look something like this... # setwd("C:/TreesNetworks/Example Files") ##DNA Matrix, maybe not needed woodmouse <- read.phyDat(file.path(fdir, "woodmouse.fasta"),format="fasta") ## RAxML best-known tree with bipartition support (from previous analysis) raxml.tree <- read.tree(file.path(fdir,"RAxML_bipartitions.woodmouse")) ## RAxML bootstrap trees (from previous analysis) raxml.bootstrap <- read.tree(file.path(fdir,"RAxML_bootstrap.woodmouse")) ## MrBayes consensus tree (50% majority rule) (from previous analysis) mrbayes.tree <- read.nexus(file.path(fdir,"woodmouse.mrbayes.nex.con")) ## MrBayes sample runs 1 and 2 (from previous analysis) run1 <- read.nexus(file.path(fdir,"woodmouse.mrbayes.nex.run1.t")) run2 <- read.nexus(file.path(fdir,"woodmouse.mrbayes.nex.run2.t")) ## How many trees are in the MrBayes tree sample? run1 run2 ## Combining the two runs and removing 25% burn-in mrbayes.trees <- c(run1[251:1001],run2[251:1001]) ## NeigbourNet Nexus file generated by SplitsTree (from previous analysis) Nnet <- read.nexus.networx(file.path(fdir,"woodmouse.nxs")) ## ------------------------------------------------------------------------ par(mfrow=c(1,2), mar=c(1,1,1,1)) # Setting plot parameters ### Plotting trees with support values: ## RAxML plot(raxml.tree) nodelabels(raxml.tree$node.label, adj = c(1, 0), frame = "none") ## MrBayes plot(mrbayes.tree) nodelabels(mrbayes.tree$node.label, adj = c(1, 0), frame = "none") par(mfrow=c(1,1)) # Setting plot parameters # NeighbourNet plot(Nnet,"2D") ## alternatively, # plot(Nnet,"2D") ## ---- fig.width=7, fig.height=4, small.mar=TRUE-------------------------- # create a vector of labels for the network corresponding to edges in the tree edge.lab <- createLabel(Nnet, raxml.tree, raxml.tree$edge[,2], "edge") # could be also 1:27 instead of raxml.tree$edge[,2] # Show the correspondingly labelled tree and network in R par(mfrow=c(1,2)) plot(raxml.tree, "u", rotate.tree = 180, cex=.7) edgelabels(raxml.tree$edge[,2],col="blue", frame="none", cex=.7) # find edges that are in the network but not in the tree edge.col <- rep("black", nrow(Nnet$edge)) edge.col[ is.na(edge.lab) ] <- "red" # or a simpler alternative... edge.col <- createLabel(Nnet, raxml.tree, "black", nomatch="red") x <- plot(Nnet, edge.label = edge.lab, show.edge.label = T, "2D", edge.color = edge.col, col.edge.label = "blue", cex=.7) # the above plot function returns an invisible networx object and this object also # contains the colors for the edges. ## ---- small.mar=TRUE----------------------------------------------------- # the scaler argument multiplies the confidence values. This is useful to switch # confidences values between total, percentage or ratios. x <- addConfidences(Nnet,raxml.tree, scaler = .01) # find splits that are in the network but not in the tree split.col <- rep("black", length(x$splits)) split.col[ !matchSplits(as.splits(x), as.splits(raxml.tree)) ] <- "red" # simpler alternative... split.col2 <- createLabel(x, raxml.tree, label="black", "split", nomatch="red") # Plotting in R out.x <- plot(x,"2D",show.edge.label=TRUE, split.color=split.col, col.edge.label = "blue") ## ------------------------------------------------------------------------ # write.nexus.networx(out.x,"woodmouse.tree.support.nxs") ## or we can also export the splits alone (for usage in software other than SplitsTree) # write.nexus.splits(as.splits(out.x),"woodmouse.splits.support.nxs") ## ---- small.mar=TRUE----------------------------------------------------- y <- addConfidences(Nnet, as.splits(raxml.bootstrap)) edge.col <- createLabel(y, raxml.tree, label="black", "edge", nomatch="grey") y <- plot(y,"2D",show.edge.label=TRUE, edge.color=edge.col) ## Write to SplitsTree for viewing # write.nexus.networx(y,"NN.with.bs.support.nxs") ## ---- small.mar=TRUE----------------------------------------------------- cnet <- consensusNet(raxml.bootstrap,prob=0.10) edge.col <- createLabel(cnet, Nnet, label="black", "edge", nomatch="grey") cnet <- plot(cnet, "2D", show.edge.label = TRUE, edge.color=edge.col) edge.col <- createLabel(Nnet, cnet, label="black", "edge", nomatch="grey") z <- plot(Nnet, "2D", show.edge.label = TRUE, edge.color=edge.col) obj <- addConfidences(Nnet,cnet) plot(obj,"2D",show.edge.label=T, edge.color=edge.col, col.edge.label = "blue") ## Write to SplitsTree for viewing # write.nexus.networx(obj,"Nnet.with.ML.Cnet.Bootstrap.nxs") ## ---- fig.width=7, fig.height=6------------------------------------------ Nnet <- read.nexus.networx(file.path(fdir,"RAxML_distances.Wang.nxs")) raxml.tree <- read.tree(file.path(fdir,"RAxML_bestTree.Wang.out")) %>% unroot raxml.bootstrap <- read.tree(file.path(fdir,"RAxML_bootstrap.Wang.out")) bs_splits <- as.splits(raxml.bootstrap) tree_splits <- as.splits(raxml.tree) %>% unique %>% removeTrivialSplits # we overwrite bootstrap values and set the weights # to 1e-6 (almost zero), as we plot them on a log scale later on attr(bs_splits, "weights")[] <- 1e-6 # combine the splits from the bootstrap and neighbor net # and delete duplicates and add the confidence values # we get rid of trivial splits all_splits <- c(Nnet$splits, bs_splits) %>% unique %>% removeTrivialSplits %>% addConfidences(bs_splits, scaler=100) # For easier plotting we create a matrix with the confidences and # weights as columns tab <- data.frame(SplitWeight = attr(all_splits, "weights"), Bootstrap=attr(all_splits, "confidences"), Tree=FALSE) # we add a logical variable pto indicate which splits are in the RAxML tree tab$Tree[matchSplits(tree_splits, all_splits, FALSE)] = TRUE tab[is.na(tab[,"Bootstrap"]),"Bootstrap"] <- 0 tab[,"Bootstrap"] <- round(tab[,"Bootstrap"]) rownames(tab) <- apply(as.matrix(all_splits, zero.print = ".", one.print = "|"), 1, paste0, collapse="") tab[1:10,] col <- rep("blue", nrow(tab)) col[tab[,"Bootstrap"]==0] <- "green" col[tab[,"SplitWeight"]==1e-6] <- "red" pch = rep(19, nrow(tab)) pch[tab$Tree] <- 17 par(mar=c(5.1, 4.1, 4.1, 8.1), xpd=TRUE) plot(tab[,"SplitWeight"], tab[,"Bootstrap"], log="x", col=col, pch=pch, xlab="Split weight (log scale)", ylab="Bootstrap (%)") legend("topright", inset=c(-0.35,0), c("Pattern 1", "Pattern 2", "Pattern 3", "Pattern in the\nbest tree"), pch=c(19,19,19,17), col=c("blue", "green", "red", "black"), bty="n") ## ------------------------------------------------------------------------ YCh <- read.tree(file.path(fdir, "RAxML_bestTree.YCh")) mtG <- read.tree(file.path(fdir, "RAxML_bestTree.mtG")) ncAI <- read.tree(file.path(fdir, "RAxML_bestTree.AIs")) all_data <- read.tree(file.path(fdir, "RAxML_bestTree.3moles")) YCh_boot <- read.tree(file.path(fdir, "RAxML_bootstrap.YCh")) mtG_boot <- read.tree(file.path(fdir, "RAxML_bootstrap.mtG")) ncAI_boot <- read.tree(file.path(fdir, "RAxML_bootstrap.AIs")) all_data_boot <- read.tree(file.path(fdir, "RAxML_bootstrap.3moles")) ## ------------------------------------------------------------------------ par(mfrow=c(2,2), mar = c(2,2,4,2)) YCh <- plotBS(midpoint(YCh), YCh_boot, "phylogram", p=0, main = "YCh") mtG <- plotBS(midpoint(mtG), mtG_boot, "phylogram", p=0, main = "mtG") ncAI <- plotBS(midpoint(ncAI), ncAI_boot, "phylogram", p=0, main = "ncAI") all_data <- plotBS(midpoint(all_data), all_data_boot, "phylogram", p=0, main = "All data") ## ---- small.mar=TRUE----------------------------------------------------- par(mfrow=c(1,1)) cn <- consensusNet(c(YCh, mtG, ncAI)) cn <- addConfidences(cn, YCh_boot) %>% addConfidences(mtG_boot, add=TRUE) %>% addConfidences(ncAI_boot, add=TRUE) %>% addConfidences(all_data_boot, add=TRUE) plot(cn, "2D", show.edge.label=TRUE) phangorn/inst/doc/Trees.R0000644000176200001440000002004513241142055015013 0ustar liggesusers### R code from vignette source 'Trees.Rnw' ################################################### ### code chunk number 1: Trees.Rnw:49-52 ################################################### options(width=70) foo <- packageDescription("phangorn") options("show.signif.stars" = FALSE) ################################################### ### code chunk number 2: Trees.Rnw:68-71 ################################################### library(phangorn) fdir <- system.file("extdata/trees", package = "phangorn") primates <- read.phyDat(file.path(fdir, "primates.dna"), format = "phylip") ################################################### ### code chunk number 3: Trees.Rnw:77-80 ################################################### dm <- dist.ml(primates) treeUPGMA <- upgma(dm) treeNJ <- NJ(dm) ################################################### ### code chunk number 4: plotNJ ################################################### layout(matrix(c(1,2), 2, 1), height=c(1,2)) par(mar = c(0,0,2,0)+ 0.1) plot(treeUPGMA, main="UPGMA") plot(treeNJ, "unrooted", main="NJ") ################################################### ### code chunk number 5: figNJ ################################################### getOption("SweaveHooks")[["fig"]]() layout(matrix(c(1,2), 2, 1), height=c(1,2)) par(mar = c(0,0,2,0)+ 0.1) plot(treeUPGMA, main="UPGMA") plot(treeNJ, "unrooted", main="NJ") ################################################### ### code chunk number 6: Trees.Rnw:102-104 ################################################### parsimony(treeUPGMA, primates) parsimony(treeNJ, primates) ################################################### ### code chunk number 7: Trees.Rnw:107-110 ################################################### treePars <- optim.parsimony(treeUPGMA, primates) treeRatchet <- pratchet(primates, trace = 0) parsimony(c(treePars, treeRatchet), primates) ################################################### ### code chunk number 8: Trees.Rnw:113-114 (eval = FALSE) ################################################### ## (trees <- bab(subset(primates,1:10))) ################################################### ### code chunk number 9: Trees.Rnw:120-122 ################################################### fit = pml(treeNJ, data=primates) fit ################################################### ### code chunk number 10: Trees.Rnw:125-126 ################################################### methods(class="pml") ################################################### ### code chunk number 11: Trees.Rnw:129-131 ################################################### fitJC <- optim.pml(fit, TRUE) logLik(fitJC) ################################################### ### code chunk number 12: Trees.Rnw:134-138 ################################################### fitGTR <- update(fit, k=4, inv=0.2) fitGTR <- optim.pml(fitGTR, model="GTR", optInv=TRUE, optGamma=TRUE, rearrangement = "NNI", control = pml.control(trace = 0)) fitGTR ################################################### ### code chunk number 13: Trees.Rnw:143-146 ################################################### fitGTR <- optim.pml(fitGTR, model="GTR", optInv=TRUE, optGamma=TRUE, rearrangement = "stochastic", control = pml.control(trace = 0)) fitGTR ################################################### ### code chunk number 14: Trees.Rnw:150-151 ################################################### anova(fitJC, fitGTR) ################################################### ### code chunk number 15: Trees.Rnw:154-155 ################################################### SH.test(fitGTR, fitJC) ################################################### ### code chunk number 16: Trees.Rnw:158-162 ################################################### AIC(fitJC) AIC(fitGTR) AICc(fitGTR) BIC(fitGTR) ################################################### ### code chunk number 17: Trees.Rnw:165-166 ################################################### load("Trees.RData") ################################################### ### code chunk number 18: Trees.Rnw:168-169 (eval = FALSE) ################################################### ## mt = modelTest(primates) ################################################### ### code chunk number 19: Trees.Rnw:173-175 ################################################### library(xtable) print(xtable(mt, caption="Summary table of modelTest", label="tab:modelTest"), include.rownames=FALSE) ################################################### ### code chunk number 20: Trees.Rnw:179-182 ################################################### env <- attr(mt, "env") ls(envir=env) (fit <- eval(get("HKY+G+I", env), env)) ################################################### ### code chunk number 21: Trees.Rnw:185-187 (eval = FALSE) ################################################### ## bs = bootstrap.pml(fitJC, bs=100, optNni=TRUE, ## control = pml.control(trace = 0)) ################################################### ### code chunk number 22: plotBS ################################################### par(mfrow=c(2,1)) par(mar=c(1,1,3,1)) plotBS(midpoint(fitJC$tree), bs, p = 50, type="p") title("a)") cnet <- consensusNet(bs, p=0.2) plot(cnet, "2D", show.edge.label=TRUE) title("b)") ################################################### ### code chunk number 23: figBS ################################################### getOption("SweaveHooks")[["fig"]]() par(mfrow=c(2,1)) par(mar=c(1,1,3,1)) plotBS(midpoint(fitJC$tree), bs, p = 50, type="p") title("a)") cnet <- consensusNet(bs, p=0.2) plot(cnet, "2D", show.edge.label=TRUE) title("b)") ################################################### ### code chunk number 24: Trees.Rnw:218-220 ################################################### options(prompt=" ") options(continue=" ") ################################################### ### code chunk number 25: Trees.Rnw:222-251 (eval = FALSE) ################################################### ## library(phangorn) ## file="myfile" ## dat = read.phyDat(file) ## dm = dist.ml(dat, "F81") ## tree = NJ(dm) ## # as alternative for a starting tree: ## tree <- pratchet(dat) # parsimony tree ## tree <- nnls.phylo(tree, dm) # need edge weights ## ## ## # 1. alternative: quick and dirty: GTR + G ## fitStart = pml(tree, dat, k=4) ## fit = optim.pml(fitStart, model="GTR", optGamma=TRUE, rearrangement="stochastic") ## ## # 2. alternative: preper with modelTest ## mt <- modelTest(dat, tree=tree, multicore=TRUE) ## mt[order(mt$AICc),] ## # choose best model from the table according to AICc ## bestmodel <- mt$Model[which.min(mt$AICc)] ## ## env = attr(mt, "env") ## fitStart = eval(get("GTR+G+I", env), env) ## ## # or let R search the table ## fitStart = eval(get(bestmodel, env), env) ## # equivalent to: fitStart = eval(get("GTR+G+I", env), env) ## fit = optim.pml(fitStart, rearrangement = "stochastic", ## optGamma=TRUE, optInv=TRUE, model="GTR") ## bs = bootstrap.pml(fit, bs=100, optNni=TRUE, multicore=TRUE) ################################################### ### code chunk number 26: Trees.Rnw:257-278 (eval = FALSE) ################################################### ## library(phangorn) ## file="myfile" ## dat = read.phyDat(file, type = "AA") ## dm = dist.ml(dat, model="JTT") ## tree = NJ(dm) ## ## # parallel will only work safely from command line ## # and not at all windows ## (mt <- modelTest(dat, model=c("JTT", "LG", "WAG"), ## multicore=TRUE)) ## # run all available amino acid models ## (mt <- modelTest(dat, model="all", multicore=TRUE)) ## ## fitStart = eval(get(mt$Model[which.min(mt$BIC)], env), env) ## ## fitNJ = pml(tree, dat, model="JTT", k=4, inv=.2) ## fit = optim.pml(fitNJ, rearrangement = "stochastic", ## optInv=TRUE, optGamma=TRUE) ## fit ## ## bs = bootstrap.pml(fit, bs=100, optNni=TRUE, multicore=TRUE) ################################################### ### code chunk number 27: Trees.Rnw:281-283 ################################################### options(prompt="> ") options(continue="+ ") ################################################### ### code chunk number 28: Trees.Rnw:295-296 ################################################### toLatex(sessionInfo()) phangorn/tests/0000755000176200001440000000000013201424001013213 5ustar liggesusersphangorn/tests/testthat.R0000644000176200001440000000013413201424001015174 0ustar liggesuserslibrary(testthat) suppressPackageStartupMessages(library(phangorn)) test_check("phangorn") phangorn/tests/testthat/0000755000176200001440000000000013241412170015063 5ustar liggesusersphangorn/tests/testthat/test_superTree.R0000644000176200001440000000141313201424001020212 0ustar liggesuserscontext("superTree") tree <- rtree(50, rooted=FALSE) trees_simple <- nni(tree) trees <- rNNI(tree, sample(10, 100, replace = TRUE)) trees <- .uncompressTipLabel(trees) labels <- paste0("t", 1:50) trees2 <- lapply(trees, function(x)drop.tip(x, sample(labels, 10))) class(trees2) <- "multiPhylo" test_that("superTree", { ## check superTree skip_on_cran() simple_superTree <- superTree(trees_simple, rooted=FALSE) difficult_superTree <- superTree(trees2, rooted=FALSE) expect_equal(RF.dist(simple_superTree, tree) , 0) expect_equal(RF.dist(difficult_superTree, tree) , 0) rf_superTree <- superTree(trees, method="RF") spr_superTree <- superTree(trees, method="SPR") expect_gte(attr(rf_superTree, "score"), attr(spr_superTree, "score")) }) phangorn/tests/testthat/test_treeManipulation.R0000644000176200001440000000404013231524174021572 0ustar liggesuserscontext("treeManipulation") set.seed(42) tree <- rtree(100, rooted=FALSE) tree2 <- root(tree, 1, resolve.root = TRUE) trees <- lapply(sample(10:500,50), function(x)tree <- rtree(x, rooted=FALSE) ) #Ancestors(x, node, type=c("all","parent")) #Children(x, node) #Siblings(x, node, include.self=FALSE) #Descendants(x, node, type=c("tips","children","all")) #Siblings(tree, 3) #mrca.phylo(tree, 1:3) #midpoint desc_108 <- Descendants(tree, 108)[[1]] node_108 <- mrca.phylo(tree, node=desc_108) test_that("ancestor, mrca, descendants", { ## ancestor, mrca, descendants expect_equal(mrca.phylo(tree, node=desc_108), 108L) expect_equal(mrca(tree), mrca.phylo(tree)) kids_108 <- Descendants(tree, 108, "children") expect_equal(length(Descendants(tree, 101L, "all")), 197L) expect_equal(lengths(Descendants(tree2, 101L:199, "all")), 2 * lengths(prop.part(tree2)) - 2L) expect_equal(Ancestors(tree, kids_108, "parent"), rep(108L, length(kids_108))) expect_equal(Siblings(tree, kids_108[1], include.self=TRUE), kids_108) }) test_that("allTrees", { ## allTrees expect_is(allTrees(6), "multiPhylo") expect_true(all(RF.dist(allTrees(6))>0)) }) # TODO: check why rooted trees give error in development version test_that("midpoint", { # topology stays the same expect_equal( max( sapply(trees, function(x)RF.dist(x,midpoint(x)))), 0) # 2 * max(height) == max(cophenetic) expect_equal( max( node.depth.edgelength(midpoint(tree)) *2) , max(cophenetic(tree))) }) test_that("maxCladeCred", { tree <- rcoal(100) trees <- nni(tree) expect_equal(maxCladeCred(c(tree, trees)), tree) }) test_that("add.tips", { tree <- rcoal(20) tree$tip.label <- paste0("t", 1:Ntip(tree)) tree$node.label <- paste0("n", 1:Nnode(tree)) tree1 <- add.tips(tree, c("A", "B", "C", "D"), c("t5", "t10", "n5", "n10")) tree2 <- add.tips(tree, c("A", "B", "C", "D"), c(5, 10, 25, 30)) expect_equal(RF.dist(tree1, tree2), 0) expect_false(is.binary(tree1)) expect_false(is.binary(tree2)) }) phangorn/tests/testthat/test_SH.R0000644000176200001440000000126513212303074016563 0ustar liggesuserscontext("SH-test") tree <- read.tree(text="(t1:0.1,t2:0.1,(t3:0.1,(t4:0.1,t5:0.1):0.1):0.1);") set.seed(42) dat <- simSeq(tree, l=500) trees <- c(tree, nni(tree)) fits <- lapply(trees, pml, data=dat) X <- sapply(fits, function(x)x$siteLik) weight <- attr(dat, "weight") test_that("SH-test works properly", { skip_on_cran() tmp <- SH.test(fits[[1]], fits[[2]]) expect_gt(tmp[1,"p-value"], 0) expect_lt(tmp[2,"p-value"], 0.05) tmp <- SH.test(X, weight=weight) expect_gt(tmp[1,"p-value"], 0) expect_lt(tmp[2,"p-value"], 0.05) tmp <- SH.test(fits) expect_gt(tmp[1,"p-value"], 0) expect_lt(tmp[2,"p-value"], 0.05) expect_lt(tmp[3,"p-value"], 0.05) }) phangorn/tests/testthat/test_pmlCluster.R0000644000176200001440000000145313212305723020405 0ustar liggesuserscontext("Stochastic partitioning") tree1 <- read.tree(text = "((t1:0.3,t2:0.3):0.1,(t3:0.3,t4:0.3):0.1,t5:0.5);") tree2 <- read.tree(text = "((t1:0.3,t3:0.3):0.1,(t2:0.3,t4:0.3):0.1,t5:0.5);") gene1 <- simSeq(tree1, l=200) gene2 <- simSeq(tree1, l=200) gene3 <- simSeq(tree1, l=200) gene4 <- simSeq(tree2, l=200) gene5 <- simSeq(tree2, l=200) X <- cbind(gene1, gene2, gene3, gene4, gene5) weight <- xtabs(~ index+genes,attr(X, "index")) fit <- pml(tree1, X) fit <- optim.pml(fit, control=pml.control(trace=0)) test_that("nni optimisation works properly", { skip_on_cran() sp <- pmlCluster( ~ edge + nni, fit, weight, p=1:3) # expect_equal( sp$Partition, c(1,1,1,2,2)) expect_equal( all(sp$Partition == c(1,1,1,2,2)) || all(sp$Partition == c(2,2,2,1,1)) , TRUE) }) phangorn/tests/testthat/test_treedist.R0000644000176200001440000001037213201424001020063 0ustar liggesuserscontext("treedist") ## generate data set.seed(42) tree <- rtree(10, FALSE) trees <- nni(tree) tree1 <- read.tree(text="(t5:1.0,(t4:1.0,t3:1.0):1.0,(t1:1.0,t2:1.0):1.0);") tree2 <- read.tree(text="(t4:1.0,(t5:1.0,t3:1.0):1.0,(t1:1.0,t2:1.0):1.0);") tree3 <- read.tree(text="(t5:1.0,t4:1.0,t3:1.0,(t1:1.0,t2:1.0):1.0);") test_that("Robinson-Foulds distance", { ## check RF.dist and tree dist expect_that(RF.dist(tree1, tree1), is_equivalent_to(0)) expect_that(RF.dist(tree1, tree2), is_equivalent_to(2)) expect_that(RF.dist(tree1, tree3), is_equivalent_to(1)) expect_true( all(RF.dist(tree, trees)==2) ) expect_is(RF.dist(trees),"dist") expect_that(treedist(tree1, tree1)[1], is_equivalent_to(0)) expect_that(treedist(tree1, tree2)[1], is_equivalent_to(2)) expect_that(treedist(tree1, tree3)[1], is_equivalent_to(1)) }) test_that("Kuhner-Felsenstein distance (branch score difference)", { ## check RF.dist and tree dist expect_that(KF.dist(tree1, tree1), is_equivalent_to(0)) expect_that(KF.dist(tree1, tree2), is_equivalent_to(sqrt(2))) expect_that(KF.dist(tree1, tree3), is_equivalent_to(1)) expect_is(KF.dist(trees),"dist") expect_that(treedist(tree1, tree1)[2], is_equivalent_to(0)) expect_that(treedist(tree1, tree2)[2], is_equivalent_to(sqrt(2))) expect_that(treedist(tree1, tree3)[2], is_equivalent_to(1)) expect_equal(KF.dist(tree1, c(tree1, tree2, tree3)), c(0, sqrt(2), 1)) }) test_that("path distance", { ## check path dist expect_that(path.dist(tree1, tree1), is_equivalent_to(0)) expect_equal(path.dist(trees)[1:13] , path.dist(trees[[1]], trees[2:14])) expect_is(path.dist(trees),"dist") }) ############################ # new tests from Michelle ############################ # make simple trees with one pair of unmatched edges, unit branch lengths tr1 <- read.tree(text="((A:1,B:1):1,C:1,(D:1,E:1):1);") tr2 <- read.tree(text="((A:1,C:1):1,B:1,(D:1,E:1):1);") # make a tree with same topology as tr1 but varied branch lengths tr3 <- read.tree(text="((A:2,B:1):3,C:1,(D:1,E:2):1);") test_that("Distance between known trees matches calculation by hand", { expect_equal(wRF.dist(tr1,tr2),2) # one pair of unmatched edges, unit branch lengths expect_equal(RF.dist(tr1,tr2),2) # one pair of unmatched edges (branch lengths irrelevant) expect_equal(wRF.dist(tr1,tr3),4) # same topology, different branch lengths expect_equal(RF.dist(tr1,tr3),0) # same topology (branch lengths irrelevant) expect_equal(wRF.dist(tr2,tr3),6) # one pair of unmatched edges, varied branch lengths }) ############################ # test that RF and wRF give same values for trees with every edge = 1 ############################ test_that("When each tree has unit branch lengths, RF = wRF", { skip_on_cran() expect_equal( max( sapply(sample(10:500,50), function(x) { # test some random numbers of tips between 10 and 500 trees <- rmtree(20, x, rooted=FALSE, br=1) # generate 20 unrooted trees with the given number of tips and unit branch lengths max(abs(RF.dist(trees) - wRF.dist(trees))) # find maximum abs difference between RF and wRF distance (expect 0) })), # find max of all these 0) # expect equal to 0 # now the same for comparison of one tree with many expect_equal( max( sapply(sample(10:500,50), function(x) { # test some random numbers of tips between 10 and 500 trees <- rmtree(20, x, rooted=FALSE, br=1) # generate 20 unrooted trees with the given number of tips and unit branch lengths max(abs(RF.dist(trees[[1]], trees) - wRF.dist(trees[[1]], trees))) # find maximum abs difference between RF and wRF distance (expect 0) })), # find max of all these 0) # expect equal to 0 }) ############################# # test sprdist from leomrtns ############################# test_that("SPR distance", { ## check spr dist set.seed(123) tree1 <- rtree(100, rooted = FALSE) tree2 <- rSPR(tree1, 1) trees <- rSPR(tree1, 1:5) expect_equal(sprdist(tree1, tree2)[[1]], 1) expect_equal(sprdist(tree1, tree2)[[3]], RF.dist(tree1, tree2)) expect_equal(SPR.dist(tree1, trees), 1:5) expect_is(SPR.dist(trees), "dist") }) phangorn/tests/testthat/test_pmlMix.R0000644000176200001440000000105313201424001017502 0ustar liggesuserscontext("Mixture models") X <- allSitePattern(5) tree <- read.tree(text = "((t1:0.3,t2:0.3):0.1,(t3:0.3,t4:0.3):0.1,t5:0.5);") fit <- pml(tree,X, k=4) weights <- 1000*exp(fit$site) ll0 <- sum(weights*log(weights/sum(weights))) attr(X, "weight") <- weights fit1 <- update(fit, data=X, k=1) #fit2 <- update(fit, data=X) #(fit2 <- optim.pml(fit2, optGamma=TRUE)) test_that("rate optimisation works properly", { skip_on_cran() fitMixture <- pmlMix(~rate, fit1 , m=4, control=pml.control(trace=0)) expect_equal(fitMixture$logLik, ll0) }) phangorn/tests/testthat/test_treeRearrangement.R0000644000176200001440000000165513201424001021716 0ustar liggesuserscontext("tree_rearrangement") set.seed(42) tree_u <- rtree(100, rooted=FALSE) tree_r <- rtree(100) test_that("nni", { nni_trees_u <- nni(tree_u) nni_trees_r <- nni(tree_r) ## nni expect_is(nni(tree_u), "multiPhylo") expect_true(all(RF.dist(nni_trees_u, tree_u)>0)) expect_true(length(nni_trees_u) == 194L) expect_true(length(nni_trees_r) == 196L) expect_true(all( RF.dist(tree_u, nni_trees_u) == 2)) expect_true(median( RF.dist(tree_r, nni_trees_r) ) == 2) }) r_nni <- rNNI(tree_u, 3, 100) test_that("rNNI", { expect_true(length(r_nni) == 100L) expect_true(median( RF.dist(tree_u, r_nni) ) == 6) expect_true(median( RF.dist(r_nni[[1]], r_nni) ) == 12) }) r_spr <- rSPR(tree_u, 3, 100) test_that("allTrees", { expect_true(length(r_spr) == 100L) expect_true(median( SPR.dist(tree_u, r_spr) ) == 3) expect_true(median( SPR.dist(r_spr[[1]], r_spr) ) == 6) }) phangorn/tests/testthat/test_mast.R0000644000176200001440000000111013201424001017172 0ustar liggesuserscontext("mast") ## generate data set.seed(42) tree1 <- rtree(100) tree2 <- rSPR(tree1, 5) tips <- mast(tree1, tree2, tree = FALSE) mast_tree <- mast(tree1, tree2) tip_label <- tree1$tip.label tips_to_delete <- setdiff(tip_label, tips) tree1_drop <- drop.tip(tree1, tips_to_delete) tree2_drop <- drop.tip(tree2, tips_to_delete) test_that("maximum agreement subtree (MAST)", { ## common subtrees should be identical expect_equal(RF.dist(tree1_drop, tree2_drop), 0) expect_equal(RF.dist(tree1_drop, mast_tree), 0) expect_equal(RF.dist(tree2_drop, mast_tree), 0) }) phangorn/tests/testthat/test_distances.R0000644000176200001440000000162413201424001020215 0ustar liggesuserscontext("distances") X <- allSitePattern(5) tree <- read.tree(text = "((t1:0.3,t2:0.3):0.1,(t3:0.3,t4:0.3):0.1,t5:0.5);") fit <- pml(tree,X, k=4, shape=0.5) weights <- as.vector(1000*exp(fit$site)) attr(X, "weight") <- weights dm <- cophenetic(tree) Y <- phyDat(matrix(c("A", "C", "G", "T", "A", "C", "G", "A"), 2, 4, dimnames=list(c("a", "b", NULL)), byrow=TRUE)) fun <- function(s) - 3/4 * log(1 - 4/3 * s) test_that("dist.ml works properly", { # skip_on_cran() expect_that(dist.logDet(X), is_a("dist")) expect_that(dist.hamming(X), is_a("dist")) expect_that(dist.ml(X), is_a("dist")) expect_equal(as.matrix(dist.ml(X, k=4, shape=.5)), dm) expect_equal(as.matrix(dist.ml(Y)), as.matrix(fun(dist.hamming(Y)))) }) test_that("read/write of distances works", { skip_on_cran() writeDist(dm, "dm.txt") expect_equal(as.dist(dm), readDist("dm.txt")) unlink("dm.txt") }) phangorn/tests/testthat/test_pmlPen.R0000644000176200001440000000160213201424001017467 0ustar liggesuserscontext("penalized likelihood") X <- allSitePattern(5) attr(X, "index") <- NULL tree1 <- read.tree(text = "((t1:0.1,t2:0.5):0.1,(t3:0.1,t4:0.5):0.1,t5:0.5);") tree2 <- read.tree(text = "((t1:0.5,t2:0.1):0.1,(t3:0.5,t4:0.1):0.1,t5:0.5);") fit1 <- pml(tree1,X) fit2 <- pml(tree2,X) attr(X, "weight") <- 1000*exp(fit1$site) Y <- X attr(Y, "weight") <- 1000*exp(fit2$site) fit1 <- update(fit1, data=X) fit2 <- update(fit2, data=Y) sp <- pmlPart(~ edge, list(fit1, fit2)) pp0 <- pmlPen(sp, lambda = 0, pml.control(trace = 0)) ppInf <- pmlPen(sp, lambda = 1e6, pml.control(trace = 0)) Z <- cbind(X,Y) fit3 <- update(fit1, data=Z) fit3 <- optim.pml(fit3, control = pml.control(trace = 0)) test_that("penalized partition models work as expected", { expect_equal(pp0$logLik[1], fit1$logLik + fit2$logLik) #, tolerance = 0.002) expect_equal(ppInf$logLik[1], fit3$logLik, tolerance = 1e-5) }) phangorn/tests/testthat/test_modelTest.R0000644000176200001440000000151313201424001020175 0ustar liggesuserscontext("modelTest") X <- allSitePattern(4) attr(X, "type") <- "DNA" tree <- read.tree(text = "((t1:0.2,t2:0.3):0.1,t3:0.2,t4:0.3);") fit <- pml(tree, X, k=4, bf = c(1:4)/10) # F81 + Gamma weights <- 1000*exp(fit$site) attr(X, "weight") <- weights set.seed(42) # tree <- read.tree(text = "((t1:0.2,t2:0.3):0.1,t3:0.2);") Y <- simSeq(tree, l=500, type = "AA", model="WAG") test_that("modelTest works properly", { skip_on_cran() MT <- modelTest(X, tree = tree, control = pml.control(epsilon = 1e-08, maxit = 10, trace = 0)) expect_equal(MT$Model[which.min(MT$BIC)], "F81+G") # amino acid models MT_AA <- modelTest(Y, tree = tree, model=c("JTT", "WAG"), FREQ = TRUE, control = pml.control(epsilon = 1e-08, maxit = 10, trace = 0)) expect_equal(MT_AA$Model[which.min(MT_AA$BIC)], "WAG") }) phangorn/tests/testthat/test_pmlPart.R0000644000176200001440000001216613212303074017672 0ustar liggesuserscontext("Partitioned likelihood models") X <- allSitePattern(5) tree <- read.tree(text = "((t1:0.3,t2:0.3):0.1,(t3:0.3,t4:0.3):0.1,t5:0.5);") tree2 <- read.tree(text = "((t1:0.3,t3:0.3):0.1,(t2:0.3,t4:0.3):0.1,t5:0.5);") fit0 <- pml(tree, X, k=4) fit1 <- update(fit0, rate=.5) fit2 <- update(fit0, rate=2) weights0 <- 1000*exp(fit0$site) weights1 <- 1000*exp(fit1$site) weights2 <- 1000*exp(fit2$site) W <- cbind(weights0, weights1, weights2) colnames(W) <- c("g1", "g2", "g3") # rate test_that("rate optimisation works properly", { skip_on_cran() sp <- pmlPart(edge ~ rate, fit0, weight=W, control = pml.control(trace=0)) expect_equal( sp$fits[[1]]$rate / sp$fits[[2]]$rate , 2, tolerance = 1e-5) expect_equal( sp$fits[[1]]$rate / sp$fits[[3]]$rate , 0.5, tolerance = 1e-5) }) # nni # Q test_that("transition rate optimisation works properly", { skip_on_cran() Q <- c(6:1) fit0 <- pml(tree, X, k=4) fit1 <- pml(tree, X, k=4, Q=Q) weights1 <- 1000*exp(fit1$site) Y <- X attr(Y, "weight") <- weights1 fit1 <- pml(tree, Y, k=4, Q=Q) weights0 <- weights1 weights2 <- weights1 W <- cbind(weights0, weights1, weights2) colnames(W) <- c("g1", "g2", "g3") # linked parameter sp <- pmlPart(edge + Q ~ ., fit0, weight=W) expect_equal(logLik(sp)[1], logLik(fit1)[1]*3, tolerance=5e-4 ) expect_equal(Q, sp$fits[[1]]$Q, tolerance=5e-4) # unlinked parameter # TODO more complicated models # weights0 <- 1000*exp(fit0$site) sp <- pmlPart( ~ Q, fit0, weight=W) expect_equal(logLik(sp)[1], logLik(fit1)[1]*3, tolerance=5e-4 ) expect_equal(Q, sp$fits[[1]]$Q, tolerance=5e-4) }) # bf test_that("base frequency optimisation works properly", { skip_on_cran() bf <- (1:4)/10 fit0 <- pml(tree, X, k=4) fit1 <- pml(tree, X, k=4, bf=bf) weights1 <- 1000*exp(fit1$site) Y <- X attr(Y, "weight") <- weights1 fit1 <- pml(tree, Y, k=4, bf=bf) weights0 <- weights1 weights2 <- weights1 W <- cbind(weights0, weights1, weights2) colnames(W) <- c("g1", "g2", "g3") # linked parameter sp <- pmlPart(edge + bf ~ ., fit0, weight=W) expect_equal(logLik(sp)[1], logLik(fit1)[1]*3, tolerance=5e-4 ) expect_equal(bf, sp$fits[[1]]$bf, tolerance=5e-4) # unlinked parameter # TODO more complicated models # weights0 <- 1000*exp(fit0$site) sp <- pmlPart( ~ bf, fit0, weight=W) expect_equal(logLik(sp)[1], logLik(fit1)[1]*3, tolerance=5e-4 ) expect_equal(bf, sp$fits[[1]]$bf, tolerance=5e-4) }) # Gamma test_that("shape parameter optimisation works properly", { skip_on_cran() shape <- 2 fit0 <- pml(tree, X, k=4) fit1 <- pml(tree, X, k=4, shape=shape) weights1 <- 1000*exp(fit1$site) Y <- X attr(Y, "weight") <- weights1 fit1 <- pml(tree, Y, k=4, shape=shape) weights0 <- weights1 weights2 <- weights1 W <- cbind(weights0, weights1, weights2) colnames(W) <- c("g1", "g2", "g3") # linked parameter sp <- pmlPart(edge + shape ~ ., fit0, weight=W) expect_equal(logLik(sp)[1], logLik(fit1)[1]*3, tolerance=5e-4 ) expect_equal(shape, sp$fits[[1]]$shape, tolerance=5e-3) # unlinked parameter # TODO more complicated models # weights0 <- 1000*exp(fit0$site) sp <- pmlPart( ~ shape, fit0, weight=W) expect_equal(logLik(sp)[1], logLik(fit1)[1]*3, tolerance=5e-4 ) expect_equal(shape, sp$fits[[1]]$shape, tolerance=5e-4) }) # Invariant sites test_that("Invariant sites optimisation works properly", { skip_on_cran() inv <- .2 fit0 <- pml(tree, X, k=4) fit1 <- pml(tree, X, k=4, inv=inv) weights1 <- 1000*exp(fit1$site) Y <- X attr(Y, "weight") <- weights1 fit1 <- pml(tree, Y, k=4, inv=inv) weights0 <- weights1 weights2 <- weights1 W <- cbind(weights0, weights1, weights2) colnames(W) <- c("g1", "g2", "g3") # linked parameter sp <- pmlPart(edge + inv ~ ., fit0, weight=W) expect_equal(logLik(sp)[1], logLik(fit1)[1]*3, tolerance=5e-4 ) expect_equal(inv, sp$fits[[1]]$inv, tolerance=5e-5) # unlinked parameter # TODO more complicated models # weights0 <- 1000*exp(fit0$site) sp <- pmlPart( ~ inv, fit0, weight=W) expect_equal(logLik(sp)[1], logLik(fit1)[1]*3, tolerance=5e-4 ) expect_equal(inv, sp$fits[[1]]$inv, tolerance=5e-5) }) # linked parameters test_that("Linked parameters optimisation works properly", { skip_on_cran() Z <- X fit0 <- pml(tree, X, k=4) weights0 <- 1000*exp(fit0$site) weights1 <- 1000*exp(update(fit0, rate=.5)$site) weights2 <- 1000*exp(update(fit0, tree=tree2)$site) attr(Z, "weight") <- weights0 + weights1 + weights2 W <- cbind(weights0, weights1, weights2) fit_Z <- update(fit0, data=Z) fit_Z <- optim.pml(fit_Z, model="GTR", rearrangement="NNI", optGamma=TRUE, optInv=TRUE) sp <- pmlPart(edge + bf + Q + shape + inv + nni ~ ., fit_Z, weight=W) expect_equal(sp$logLik[[1]], fit_Z$logLik, tolerance = 1e-5) }) phangorn/tests/testthat/test_dist_tree.R0000644000176200001440000000117013201424001020216 0ustar liggesuserscontext("dist_tree") data(Laurasiatherian) dm <- dist.ml(Laurasiatherian) test_that("check nnls functions", { tree_nj <- NJ(dm) tree_unj <- UNJ(dm) tree_nnls_unj <- nnls.phylo(tree_unj, dm) tree_nnls_nj <- nnls.phylo(tree_nj, dm) tree_upgma <- upgma(dm) tree_wpgma <- wpgma(dm) tree_nnls_upgma <- nnls.phylo(tree_upgma, dm, rooted=TRUE) tree_nnls_wpgma <- nnls.phylo(tree_wpgma, dm, rooted=TRUE) expect_equal(tree_upgma, tree_nnls_upgma) expect_false(all.equal(tree_wpgma, tree_nnls_wpgma)) expect_equal(tree_unj, tree_nnls_unj) expect_false(all.equal(tree_nj, tree_nnls_nj)) }) phangorn/tests/testthat/test_pml.R0000644000176200001440000001151313240405176017045 0ustar liggesuserscontext("likelihood") treeU1 <- read.tree(text = "((t1:.1,t2:.1):.1,t3:.2,(t4:.1,t5:.1):.3);") # edge length changed treeU2 <- read.tree(text = "((t1:.15,t2:.15):.05,t3:.2,(t4:.1,t5:.1):.3);") # 1 NNI move treeU3 <- read.tree(text = "((t1:.1,t3:.1):.1,t2:.2,(t4:.1,t5:.1):.3);") treeR1 <- read.tree(text = "(((t1:.1,t2:.1):.1,t3:.2):.1,(t4:.1,t5:.1):.2);") # edge length changed treeR2 <- read.tree(text = "(((t1:.15,t2:.15):.05,t3:.2):.1,(t4:.1,t5:.1):.2);") # 1 NNI move treeR3 <- read.tree(text = "(((t1:.1,t3:.1):.1,t2:.2):.1,(t4:.1,t5:.1):.2);") # dat <- phyDat(c(t1="a", t2="a",t3="t",t4="t"), type="USER", # levels=c("a","c","g","t")) #tree2 <- read.tree(text = "((t1,t3),t2,t4);") dat <- allSitePattern(5) weights <- as.vector(1000 * exp(pml(treeR1, dat)$siteLik)) attr(dat, "weight") <- weights dat_Mk <- subset(dat, select = -c(1,342,683, 1024)) Q <- c(6:1) pmlU1 <- pml(treeU1, dat) pmlU2 <- pml(treeU2, dat) pmlU2.fitted <- optim.pml(pmlU2, control = pml.control(trace=0)) pmlU3 <- pml(treeU3, dat) pmlU3.fitted <- optim.pml(pmlU3, TRUE, control = pml.control(trace=0)) pmlR1 <- pml(treeR1, dat) pmlR2 <- pml(treeR2, dat) pmlR2.fitted <- optim.pml(pmlR2, optRooted = TRUE, control = pml.control(epsilon=1e-10, trace=0)) pmlR3 <- pml(treeR3, dat) pmlR3.fitted <- optim.pml(pmlR3, TRUE, optRooted = TRUE, control = pml.control(epsilon=1e-10, trace=0)) test_that("edge length optimisation works properly", { skip_on_cran() expect_equal(logLik(pmlU2.fitted), logLik(pmlU1)) expect_equal(logLik(pmlR2.fitted), logLik(pmlR1)) expect_equal(pmlU2.fitted$tree, pmlU1$tree, tolerance=1e-6) # expect_equal(pmlR2.fitted$tree, pmlR1$tree, tolerance=5e-5) }) test_that("NNI optimisation works properly", { skip_on_cran() expect_equal(logLik(pmlU3.fitted), logLik(pmlU1)) expect_equal(logLik(pmlR3.fitted), logLik(pmlR1)) expect_equal(pmlU3.fitted$tree, pmlU1$tree, tolerance=1e-6) expect_equal(storage.mode(pmlU3.fitted$tree$edge), "integer") # expect_equal(pmlR3.fitted$tree, pmlR1$tree, tolerance=5e-6) }) test_that("bf optimisation works properly", { skip_on_cran() bf <- c(.1,.2,.3,.4) fit_T <- pml(treeU1, dat, bf=bf) weights <- as.vector(1000 * exp(fit_T$siteLik)) dat_tmp <- dat attr(dat_tmp, "weight") <- weights fit0 <- pml(treeU1, dat_tmp) fit.bf <- optim.pml(fit0, optEdge=FALSE, optBf = TRUE, control = pml.control(epsilon=1e-10, trace=0)) expect_equal(logLik(fit.bf), logLik(pml(treeU1, dat_tmp, bf=bf))) expect_equal(bf, fit.bf$bf, tolerance=5e-4) }) test_that("Q optimisation works properly", { skip_on_cran() Q <- c(6:1) fit_T <- pml(treeU1, dat, Q=Q) weights <- as.vector(1000 * exp(fit_T$siteLik)) dat_tmp <- dat attr(dat_tmp, "weight") <- weights fit0 <- pml(treeU1, dat_tmp) fit.Q <- optim.pml(fit0, optEdge=FALSE, optQ = TRUE, control = pml.control(epsilon=1e-10, trace=0)) expect_equal(logLik(fit.Q), logLik(pml(treeU1, dat_tmp, Q=Q))) expect_equal(Q, fit.Q$Q, tolerance=5e-4) }) test_that("Inv optimisation works properly", { skip_on_cran() inv <- 0.25 fit_T <- pml(treeU1, dat, inv=inv) weights <- as.vector(1000 * exp(fit_T$siteLik)) dat_tmp <- dat attr(dat_tmp, "weight") <- weights fit0 <- pml(treeU1, dat_tmp) fit.Inv <- optim.pml(fit0, optEdge=FALSE, optInv = TRUE, control = pml.control(epsilon=1e-10, trace=0)) expect_equal(logLik(fit.Inv), logLik(pml(treeU1, dat_tmp, inv=inv))) expect_equal(inv, fit.Inv$inv, tolerance=5e-4) }) test_that("Gamma optimisation works properly", { skip_on_cran() shape <- 2 fit_T <- pml(treeU1, dat, shape=shape, k=4) weights <- as.vector(1000 * exp(fit_T$siteLik)) dat_tmp <- dat attr(dat_tmp, "weight") <- weights fit0 <- pml(treeU1, dat_tmp, k=4) fit.Gamma <- optim.pml(fit0, optEdge=FALSE, optGamma = TRUE, control = pml.control(epsilon=1e-10, trace=0)) expect_equal(logLik(fit.Gamma), logLik(pml(treeU1, dat_tmp, shape=shape, k=4))) expect_equal(shape, fit.Gamma$shape, tolerance=5e-4) }) test_that("rate optimisation works properly", { skip_on_cran() rate <- 2 fit_T <- pml(treeU1, dat, rate=rate) weights <- as.vector(1000 * exp(fit_T$siteLik)) dat_tmp <- dat attr(dat_tmp, "weight") <- weights fit0 <- pml(treeU1, dat_tmp) fit.rate <- optim.pml(fit0, optEdge=FALSE, optRate = TRUE, control = pml.control(epsilon=1e-10, trace=0)) expect_equal(logLik(fit.rate), logLik(pml(treeU1, dat_tmp, rate=rate))) expect_equal(rate, fit.rate$rate, tolerance=5e-4) }) test_that("Mkv model works properly", { skip_on_cran() expect_equal(logLik(pmlU2.fitted), logLik(pmlU1)) }) phangorn/tests/testthat/test_speciesTree.R0000644000176200001440000000113613201424001020511 0ustar liggesuserscontext("speciesTree") tr1 <- read.tree(text = "(((B:0.05,C:0.05):0.01,D:0.06):0.04,A:0.1);") tr2 <- read.tree(text = "(((A:0.07,C:0.07):0.02,D:0.09):0.03,B:0.12);") TR <- c(tr1, tr2) start_tree <- read.tree(text = "(((B,C),D),A);") x <- matrix(c("A", "B", "C", "D"), 4, 1) rownames(x) <- c("A", "B", "C", "D") X <- phyDat(x, type="USER", levels = c("A", "B", "C", "D")) test_that("speciesTree", { ## check speciesTree st1 <- coalSpeciesTree(TR) st2 <- coalSpeciesTree(TR, X=X) st3 <- coalSpeciesTree(TR, sTree = start_tree) expect_equal(st1, st2) expect_equal(st1, st3) }) phangorn/tests/testthat/test_hadamard.R0000644000176200001440000000104713201424001020000 0ustar liggesuserscontext("Hadamard conjugation") v <- 1:8 data(yeast) dm <- dist.hamming(yeast) # RY-coding yeast_ry <- acgt2ry(yeast) # delete ambiguous states # dat4 <- phyDat(as.character(yeast), type="USER", levels=c("a","c", "g", "t"), ambiguity=NULL) # fit4 <- h4st(dat4) test_that("Hadamard conjugation works as expected", { # fast fft like multiplication expect_is(H <- hadamard(3), "matrix") expect_equal(as.vector(H %*% v), fhm(v)) expect_is(spl_ry <- h2st(yeast_ry), "splits") expect_is(spl_dm <- distanceHadamard(dm), "splits") }) phangorn/tests/testthat/test_splits.R0000644000176200001440000000362613207043151017573 0ustar liggesuserscontext("Test conversions") ## generate data set.seed(1) tree <- rtree(10, FALSE) tree2spl <- as.splits(tree) spl2tree <- as.phylo(tree2spl) dm <- cophenetic(tree2spl) mat <- as.matrix(tree2spl) Mat <- as.Matrix(tree2spl) trees <- nni(tree) test_that("splits", { ## skip on CRAN skip_on_cran() ## check classes expect_is(as.splits(trees), "splits") expect_is(tree2spl, "splits") expect_is(spl2tree,"phylo") expect_is(dm,"dist") expect_is(mat, "matrix") expect_is(Mat, "Matrix") expect_equal(spl2tree , tree) # test generics c_spl <- c(tree2spl, tree2spl, tree2spl) expect_equal(length(c_spl) , 3L*length(tree2spl)) expect_equal(length(unique(c_spl)) , length(tree2spl)) expect_equal(length(distinct.splits(c_spl)) , length(tree2spl)) spl <- allCircularSplits(6) spl <- phangorn:::oneWise(spl, 6) write.nexus.splits(spl, "tmp.nex") spl2 <- read.nexus.splits("tmp.nex") attr(spl2, "splitlabels") <- NULL attr(spl2, "weights") <- NULL class(spl2) <- "splits" expect_equal(spl2 , spl) unlink("tmp.nex") }) test_that("networx ", { net1 <- neighborNet(dm) write.nexus.networx(net1, "tmp.nex") net2 <- read.nexus.networx("tmp.nex") net3 <- as.networx(tree) # delete some additional attributes net2$.plot <- net2$translate <- NULL attr(net1, "order") <- NULL expect_is(net1, "networx") expect_is(net2, "networx") expect_is(net3, "networx") # expect_equal(net1, net2, tolerance=1e-6) # expect_equal(net3, net2, tolerance=1e-6) expect_equal(net1, net3) unlink("tmp.nex") cnet <- consensusNet(as.splits(trees)) expect_is(cnet, "networx") net1$edge.length <- cnet$edge.length <- cnet$edge.labels <- NULL attr(cnet, "order") <- NULL expect_equal(cnet, net1) expect_equal(nrow(cnet$edge), length(as.splits(cnet))) cnet }) phangorn/tests/testthat/test_Clanistics.R0000644000176200001440000000062413212554236020353 0ustar liggesuserscontext("Clanistics") tree <- rtree(10) x <- simSeq(tree, l=5, type="USER", levels = c("red", "violet", "blue")) test_that("clanistics works properly", { # skip_on_cran() expect_is(getClans(tree), "matrix") expect_is(getClips(tree), "matrix") expect_is(getSlices(tree), "matrix") expect_is(getDiversity(tree, x), "clanistics") expect_is(getDiversity(tree, x), "data.frame") }) phangorn/tests/testthat/test_phyDat.R0000644000176200001440000000650313236441272017513 0ustar liggesuserscontext("conversion_and_subsetting") # to test: phyDat.codon, data(Laurasiatherian) data(chloroplast) set.seed(42) tree <- rtree(10) codon_align <- simSeq(tree, l=100, type = "CODON") phy_matrix <- as.character(Laurasiatherian) phy_df <- as.data.frame(Laurasiatherian) phy_vec_dna <- phy_matrix[,1] phy_vec_user <- sample(c("0","1"), 26, replace=TRUE) names(phy_vec_user) <- letters phy_dnabin <- as.DNAbin(Laurasiatherian) phy_aabin <- as.AAbin(chloroplast) phy_align <- phyDat2alignment(Laurasiatherian) test_that("conversion work as expected", { ## skip_on_cran() expect_is(phy_matrix, "matrix") expect_is(phy_df, "data.frame") expect_is(phy_dnabin, "DNAbin") expect_is(phy_aabin, "AAbin") expect_is(phy_align, "alignment") expect_is(as.phyDat(phy_matrix), "phyDat") expect_is(as.phyDat(phy_df), "phyDat") expect_is(as.phyDat(phy_dnabin), "phyDat") expect_equal(as.phyDat(phy_aabin), chloroplast) expect_is(phyDat(phy_vec_dna), "phyDat") expect_is(phyDat(phy_vec_user, type="USER", levels = c("0","1")), "phyDat") expect_is(as.phyDat(phy_dnabin), "phyDat") expect_is(as.phyDat(phy_align), "phyDat") expect_is(c2d <- codon2dna(codon_align), "phyDat") expect_equal(dna2codon(c2d), codon_align) }) test_that("conversion with Biostrings work as expected", { skip_on_cran() if(require(Biostrings)){ expect_is(MA_AA <- as.MultipleAlignment(chloroplast), "AAMultipleAlignment") expect_equal(as.phyDat(MA_AA), chloroplast) expect_is(MA_DNA <- as.MultipleAlignment(Laurasiatherian), "DNAMultipleAlignment") expect_equal(as.phyDat(MA_DNA), Laurasiatherian) } }) test_that("subsetting and combining work as expected", { ## skip_on_cran() expect_is(subset_1 <- subset(Laurasiatherian, select = 1:1000, site.pattern = FALSE), "phyDat") expect_is(subset_2 <- subset(Laurasiatherian, select = 1001:3179, site.pattern = FALSE), "phyDat") expect_is(lauraCbind1 <- cbind(subset_1, subset_2), "phyDat") expect_equal(baseFreq(lauraCbind1), baseFreq(Laurasiatherian)) expect_is(subset_3 <- subset(Laurasiatherian, select = 1:100), "phyDat") expect_is(subset_4 <- subset(Laurasiatherian, select = 101:1605), "phyDat") expect_is(lauraCbind2 <- cbind(subset_3, subset_4), "phyDat") expect_equal(baseFreq(lauraCbind2), baseFreq(Laurasiatherian)) }) test_that("read and write work as expected", { skip_on_cran() write.phyDat(Laurasiatherian, "tmp1.txt") expect_is(laura <- read.phyDat("tmp1.txt"), "phyDat") expect_equal(laura, Laurasiatherian) unlink("tmp1.txt") write.phyDat(chloroplast, "tmp2.txt") expect_is(chloro <- read.phyDat("tmp2.txt", type="AA"), "phyDat") expect_equal(chloro, chloroplast) unlink("tmp2.txt") write.phyDat(chloroplast, "tmp.fas", format="fasta") expect_is(chloro_fas <- read.phyDat("tmp.fas", type="AA", format = "fasta"), "phyDat") expect_equal(chloro_fas, chloroplast) unlink("tmp.fas") }) test_that("removing duplicated sequences works", { skip_on_cran() tmp <- as.character(Laurasiatherian) laura <- phyDat(rbind(phy_matrix, phy_matrix)) names(laura) <- paste0(names(laura), rep(c(1,2), each=47)) map1 <- map_duplicates(laura) map2 <- map_duplicates(Laurasiatherian) expect_null(map2) expect_is(map1, "data.frame") }) phangorn/tests/testthat/test_parsimony.R0000644000176200001440000000335513207043151020275 0ustar liggesuserscontext("parsimony") data(yeast) all_trees <- allTrees(8, tip.label = names(yeast)) tree1 <- read.tree(text = "((t1,t2),t3,t4);") tree2 <- read.tree(text = "((t1,t3),t2,t4);") trees <- .compressTipLabel(c(tree1, tree2)) dat <- phyDat(c(t1="a", t2="a",t3="t",t4="t"), type="USER", levels=c("a","c","g","t")) #tr_acctran = acctran(tree1, dat) #tr_ratchet = pratchet(dat, trace=0) #bab(dat) test_that("parsimony works properly", { ## skip_on_cran() expect_that(fitch(tree1, dat), equals(1)) expect_that(fitch(tree2, dat), equals(2)) expect_that(fitch(trees, dat), equals(c(1,2))) expect_that(sankoff(tree1, dat), equals(1)) expect_that(sankoff(tree2, dat), equals(2)) expect_that(parsimony(tree1, dat), equals(1)) }) test_that("bab works properly", { skip_on_cran() # all_trees <- allTrees(8, tip.label = names(yeast)) all_pars <- fitch(all_trees, yeast) bab_tree <- bab(yeast) expect_equal(min(all_pars), fitch(bab_tree, yeast)) }) test_that("rearrangements works properly", { skip_on_cran() tree <- all_trees[[1]] start <- fitch(tree, yeast) bab_tree <- bab(yeast) best <- fitch(bab_tree, yeast) best_fitch <- optim.parsimony(tree, yeast, rearrangements = "NNI") best_sankoff <- optim.parsimony(tree, yeast, method="sankoff", rearrangements = "NNI") expect_equal(attr(best_fitch, "pscore"), attr(best_sankoff, "pscore")) }) test_that("tree length works properly", { skip_on_cran() tree <- nj(dist.hamming(yeast)) pscore <- fitch(tree, yeast) tree1 <- acctran(tree, yeast) expect_equal(sum(tree1$edge.length), pscore) tree2 <- rtree(100) dat <- simSeq(tree2) tree2 <- acctran(tree2, dat) expect_equal(sum(tree2$edge.length), fitch(tree2,dat)) }) phangorn/tests/testthat/test_ancestral.R0000644000176200001440000000165313201424001020216 0ustar liggesuserscontext("ancestral") # tree <- read.tree(text="((t1:1,t2:1):1,(t3:1,t4:1):1);") dat <- matrix( c("a", "a", "a", "t", "t", "a", "t", "t"), byrow = TRUE, nrow = 4L, dimnames = list(c("t1", "t2", "t3", "t4"), NULL)) dna <- phyDat(dat) fit <- pml(tree, dna) # dna tests differs from other data types as it may returns ambiguous data test_that("test ancestral dna", { test.ml1 <- ancestral.pml(fit, type = "ml") test.ml2 <- ancestral.pml(fit, type = "ml", return = "phyDat") test1 <- ancestral.pars(tree, dna, "MPR", return = "prob") test2 <- ancestral.pars(tree, dna, "MPR", return = "phyDat") test3 <- ancestral.pars(tree, dna, "ACCTRAN", return = "prob") test4 <- ancestral.pars(tree, dna, "ACCTRAN", return = "phyDat") expect_equal(as.character(test2), as.character(test4)) expect_equal(as.character(test.ml2), as.character(test2)) }) phangorn/src/0000755000176200001440000000000013241142074012653 5ustar liggesusersphangorn/src/Makevars0000644000176200001440000000010213241142074014340 0ustar liggesusersPKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) CXX_STD = CXX11 phangorn/src/fitch.c0000644000176200001440000005026313241142074014122 0ustar liggesusers#define USE_RINTERNALS #include #include #include #include // use R_len_t stat int, e.g. nr double huge = 1.0e300; static int *data1, *data2; static double *weight; void fitch_free(){ free(data1); free(data2); free(weight); } // type of fitch depending on nc e.g. int, long generic C++ void fitch_init(int *data, int *m, int *n, double *weights, int *nr) { int i; data1 = (int *) calloc(*n, sizeof(int)); data2 = (int *) calloc(*n, sizeof(int)); weight = (double *) calloc(*nr, sizeof(double)); for(i=0; i<*m; i++) data1[i] = data[i]; for(i=0; i<*nr; i++) weight[i] = weights[i]; } int bitcount(int x){ int count; for (count=0; x != 0; x>>=1) if ( x & 01) count++; return count; } void bitCount(int *x, int *count){ count[0]=bitcount(x[0]); } void addOne(int *edge, int *tip, int *ind, int *l, int *m, int *result){ int add = 1L, j=0L, p, k, i, l2=*l+2L, ei; p = edge[*ind-1L]; k = edge[*ind-1L + *l]; for(i=0; i<*l; i++){ ei = edge[i]; if( (add==1L) && (ei==p) ){ result[j] = *m; result[j+l2] = k; j++; result[j] = *m; result[j+l2] = *tip; j++; add=0L; } if(i== (*ind-1L)) result[j+l2] = *m; else result[j+l2] = edge[i+ *l]; result[j] = edge[i]; j++; } } SEXP AddOne(SEXP edge, SEXP tip, SEXP ind, SEXP l, SEXP m){ SEXP result; PROTECT(result = allocMatrix(INTSXP, INTEGER(l)[0]+2L, 2L)); addOne(INTEGER(edge), INTEGER(tip), INTEGER(ind), INTEGER(l), INTEGER(m), INTEGER(result)); UNPROTECT(1); return(result); } SEXP AddOnes(SEXP edge, SEXP tip, SEXP ind, SEXP l, SEXP m){ R_len_t n = length(ind); SEXP result, res; PROTECT(res = allocVector(VECSXP, n)); for(int i=0; ips)break; } // if(pvtmp[i] 0L){ dat1[k] = tmp; } } } void fitchT3(int *dat1, int *dat2, int *nr, double *pars, double *weight, double *w){ int k; int tmp; for(k = 0; k < (*nr); k++){ tmp = dat1[k] & dat2[k]; if(tmp==0L) { (*w)+=weight[k]; pars[k] += 1; } if(tmp >0){ if(tmp < dat2[k]){ (*w)+= .5*weight[k]; pars[k] += .5; } } } } //void ACCTRAN2(int *dat, int *nr, double *pars, int *node, int *edge, int *nl, double *weight, double *pvec, int *nTips) void ACCTRAN2(int *dat, int *nr, int *node, int *edge, int *nl, int *nTips) { int i; for (i=0; i< *nl; i++) { // , pars, weight, &pvec[i] if(edge[i]>nTips[0]) fitchT(&dat[(edge[i]-1L) * (*nr)], &dat[(node[i]-1) * (*nr)], nr); } } // , int *nTips void ACCTRAN3(int *dat, int *nr, double *pars, int *node, int *edge, int *nl, double *weight, double *pvec) { int i; for (i=0; i< *nr; i++)pars[i]=0.0; for(i=0; i< *nl; i++)pvec[i] = 0.0; for (i=0; i< *nl; i++) { fitchT3(&dat[(edge[i]-1L) * (*nr)], &dat[(node[i]-1) * (*nr)], nr, pars, weight, &pvec[i]); } } void fitchNNN(int d1, int d2){ int tmp; tmp = d1 & d2; if(tmp) d1 = tmp; else d1 = d1 | d2; } // haeufig 0 void fitchTripletNew(int *res, int *dat1, int *dat2, int *dat3, int *nr) { int k, v1, v2, v3; for(k = 0; k < (*nr); k++){ v1 = dat1[k]; fitchNNN(v1, dat2[k]); fitchNNN(v1, dat3[k]); v2 = dat1[k]; fitchNNN(v2, dat3[k]); fitchNNN(v2, dat2[k]); v3 = dat2[k]; fitchNNN(v3, dat3[k]); fitchNNN(v3, dat1[k]); res[k] = v1 & v2; // &v3[k]; res[k] = res[k] & v3; } } void fitchN(int *dat1, int *dat2, int *nr){ int k; int tmp; for(k = 0; k < (*nr); k++){ tmp = dat1[k] & dat2[k]; if(tmp) dat1[k] = tmp; else dat1[k] = dat1[k] | dat2[k]; } } // MPR reconstruction nicht immer gleiches ergebnis void fitchTriplet(int *res, int *dat1, int *dat2, int *dat3, int *nr) { int k; // ni, // ni = 0; int *v1, *v2, *v3; v1 = (int *) R_alloc(*nr, sizeof(int)); v2 = (int *) R_alloc(*nr, sizeof(int)); v3 = (int *) R_alloc(*nr, sizeof(int)); for(k = 0; k < (*nr); k++) v1[k] = dat1[k]; fitchN(v1, dat2, nr); fitchN(v1, dat3, nr); for(k = 0; k < (*nr); k++) v2[k] = dat1[k]; fitchN(v2, dat3, nr); fitchN(v2, dat2, nr); for(k = 0; k < (*nr); k++) v3[k] = dat2[k]; fitchN(v3, dat3, nr); fitchN(v3, dat1, nr); for(k = 0; k < (*nr); k++)res[k] = v1[k] & v2[k]; // &v3[k]; for(k = 0; k < (*nr); k++)res[k] = res[k] & v3[k]; } void prepRooted(int *res, int *nr, int *kids){ //int *data1, fitchTriplet(res, &data1[*nr * (kids[0]-1L)], &data1[*nr * (kids[1]-1L)], &data1[*nr * (kids[2]-1L)], nr); } void C_MPR(int *res, int *nr, int *parent, int *kids, int *nl) { int p, k1, k2; int i = *nl -1; while (i > 0L) { p = parent[i] - 1L; k1 = kids[i] - 1L; k2 = kids[i-1L] - 1L; fitchTriplet(&res[*nr * p], &data1[*nr* (k1)], &data1[*nr* (k2) ], &data2[*nr * p], nr); i -= 2L; } } SEXP C_MPR2(SEXP nrx, SEXP PARENT, SEXP KIDS, SEXP nlx, SEXP M) { int nr=INTEGER(nrx)[0], nl=INTEGER(nlx)[0], m=INTEGER(M)[0], *res; int *parent = INTEGER(PARENT), *kids=INTEGER(KIDS); int j, p, k1, k2; int i = nl -1; SEXP RES; PROTECT(RES = allocVector(INTSXP, nr * m)); res = INTEGER(RES); for(j = 0; j < (nr * m); j++) res[j]=0; while (i > 0L) { p = parent[i] - 1L; k1 = kids[i] - 1L; k2 = kids[i-1L] - 1L; fitchTripletNew(&res[nr * p], &data1[nr * k1], &data1[nr * k2], &data2[nr * p], &nr); i -= 2L; } UNPROTECT(1); return(RES); } void fitchNACC2(int *root, int *dat, int *nr, double *pars, int *result, double *weight, double *pars1){ int k; int tmp; for(k = 0; k < (*nr); k++){ // result[k] = 0L; tmp = root[k] & dat[k]; if(tmp==0L) { pars[0] += weight[k]; pars1[k] += weight[k]; } if(tmp >0){ if(tmp < root[k]){ pars[0] += .5*weight[k]; pars1[k] += .5*weight[k]; result[k] += 1L; } } } } void fitchTripletACC4(int *root, int *dat1, int *dat2, int *dat3, int *nr, double *p1, double *p2, double *p3, double *weight, double *pars1, int *v1) { int k; int tmp, a, b, c, t1, t2, t3; double d, f; for(k = 0; k < (*nr); k++){ tmp = root[k]; a = dat1[k] & dat2[k]; b = dat1[k] & dat3[k]; c = dat2[k] & dat3[k]; if((a+b+c) == 0L){ d = (2.0/3.0) * weight[k]; p1[0] += d; p2[0] += d; p3[0] += d; pars1[k] += 2*weight[k]; v1[k] = 2L; } else{ f = 0.0; d = weight[k]; t1 = 0.0; t2 = 0.0; t3 = 0.0; if( (dat1[k] & tmp)0.0){ pars1[k] += weight[k]; p1[0] += t1/f; p2[0] += t2/f; p3[0] += t3/f; v1[k] += 1L; } } } } // eleganter in Rcpp SEXP FITCH345(SEXP nrx, SEXP node, SEXP edge, SEXP l, SEXP mx, SEXP ps){ int *nr=INTEGER(nrx), m=INTEGER(mx)[0], i; double *pvtmp; SEXP pars, pscore; PROTECT(pars = allocVector(INTSXP, *nr)); PROTECT(pscore = allocVector(REALSXP, 1L)); pvtmp = (double *) R_alloc(m, sizeof(double)); for(i=0; i using namespace Rcpp; // import: edge matrix, number of tips // export: Descendants(x, 1:max(x$edge), "all") // [[Rcpp::export]] List allDescCPP(IntegerMatrix orig, int nTips) { IntegerVector parent = orig( _, 0); IntegerVector children = orig( _, 1); int m = max(parent); // create list for results std::vector< std::vector > out(m) ; for(int i = 0; i y; for(int i = 0; i nTips){ y = out[children[i] -1L]; out[parent[i]-1L].insert( out[parent[i]-1L].end(), y.begin(), y.end() ); } } // return the list return wrap(out); } // replacement for bipart maybe more error tolerant and slightly slower // import: edge matrix, number of tips // export: Descendants(x, 1:max(x$edge), "all") // [[Rcpp::export]] List bipartCPP(IntegerMatrix orig, int nTips) { IntegerVector parent = orig( _, 0); IntegerVector children = orig( _, 1); int m = max(parent), j=0; int nnode = m - nTips; // create list for results std::vector< std::vector > out(nnode) ; std::vector y; for(int i = 0; i nTips){ y = out[children[i] - nTips -1L]; out[j].insert( out[j].end(), y.begin(), y.end() ); } else out[j].push_back(children[i]); } for(int i=0; i > out(m) ; std::vector y; for(int i = 0; i nTips){ y = out[children[i] - 1L]; out[j].insert( out[j].end(), y.begin(), y.end() ); } else out[j].push_back(children[i]); } for(int i=0; i > out(m) ; for(int i = 0; i (m * eps)) res(i)+=tmp[j]; } } return res; } phangorn/src/read_aa.c0000644000176200001440000001112513241142074014373 0ustar liggesusers#include #include // The initial code defining and initialising the translation table: // //"a" "r" "n" "d" "c" "q" "e" "g" "h" "i" "l" "k" "m" "f" "p" "s" "t" "w" "y" "v" "b" "z" "x" // "-" "?" // // for (i = 0; i < 122; i++) tab_trans[i] = 0x00; // // tab_trans[65] = 0x88; /* A */ // tab_trans[71] = 0x48; /* G */ // tab_trans[67] = 0x28; /* C */ // tab_trans[84] = 0x18; /* T */ // tab_trans[82] = 0xc0; /* R */ // tab_trans[77] = 0xa0; /* M */ // tab_trans[87] = 0x90; /* W */ // tab_trans[83] = 0x60; /* S */ // tab_trans[75] = 0x50; /* K */ // tab_trans[89] = 0x30; /* Y */ // tab_trans[86] = 0xe0; /* V */ // tab_trans[72] = 0xb0; /* H */ // tab_trans[68] = 0xd0; /* D */ // tab_trans[66] = 0x70; /* B */ // tab_trans[78] = 0xf0; /* N */ // // tab_trans[97] = 0x88; /* a */ // tab_trans[103] = 0x48; /* g */ // tab_trans[99] = 0x28; /* c */ // tab_trans[116] = 0x18; /* t */ // tab_trans[114] = 0xc0; /* r */ // tab_trans[109] = 0xa0; /* m */ // tab_trans[119] = 0x90; /* w */ // tab_trans[115] = 0x60; /* s */ // tab_trans[107] = 0x50; /* k */ // tab_trans[121] = 0x30; /* y */ // tab_trans[118] = 0xe0; /* v */ // tab_trans[104] = 0xb0; /* h */ // tab_trans[100] = 0xd0; /* d */ // tab_trans[98] = 0x70; /* b */ // tab_trans[110] = 0xf0; /* n */ // // tab_trans[45] = 0x04; /* - */ // tab_trans[63] = 0x02; /* ? */ static const int tab_trans2[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0-9 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 10-19 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 20-29 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 30-39 */ 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, /* 40-49 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 50-59 */ 0, 0, 0, 25, 0, 1, 21, 5, 4, 7, /* 60-69 */ 14, 8, 9, 10, 0, 12, 11, 13, 3, 0, /* 70-79 */ 15, 6, 2, 16, 17, 0, 20, 18, 23, 19, /* 80-89 */ 22, 0, 0, 0, 0, 0, 0, 1, 21, 5, /* 90-99 */ 4, 7, 14, 8, 9, 10, 0, 12, 11, 13, /* 100-109 */ 3, 0, 15, 6, 2, 16, 17, 0, 20, 18, /* 110-119 */ 23, 19, 22, 0, 0, 0, 0, 0, 0, 0, /* 120-129 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 130-139 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 140-149 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 150-159 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 160-169 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 170-179 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 180-189 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 190-199 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 200-209 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 210-219 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 220-229 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 230-239 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 240-249 */ 0, 0, 0, 0, 0, 0}; /* 250-255 */ static const unsigned char hook = 0x3e; static const unsigned char lineFeed = 0x0a; /* static const unsigned char space = 0x20; */ // needs buffer seq // + buffer names SEXP rawStream2phyDat(SEXP x) { int N, i, j, k, n, startOfSeq; unsigned char *xr, *bufferNames; int *rseq, *buffer, tmp; SEXP obj, nms, seq; PROTECT(x = coerceVector(x, RAWSXP)); N = LENGTH(x); xr = RAW(x); /* do a 1st pass to find the number of sequences this code should be robust to '>' present inside a label or in the header text before the sequences */ n = j = 0; /* use j as a flag */ if (xr[0] == hook) { j = 1; startOfSeq = 0; } i = 1; for (i = 1; i < N; i++) { if (j && xr[i] == lineFeed) { n++; j = 0; } else if (xr[i] == hook) { if (!n) startOfSeq = i; j = 1; } } PROTECT(obj = allocVector(VECSXP, n)); PROTECT(nms = allocVector(STRSXP, n)); /* Refine the way the size of the buffer is set? */ buffer = (int *)R_alloc(N, sizeof(int *)); bufferNames = (unsigned char *)R_alloc(N, sizeof(unsigned char *)); i = startOfSeq; j = 0; /* gives the index of the sequence */ while (i < N) { /* 1st read the label... */ i++; k = 0; while (xr[i] != lineFeed) bufferNames[k++] = xr[i++]; bufferNames[k] = '\0'; SET_STRING_ELT(nms, j, mkChar((char *)bufferNames)); /* ... then read the sequence */ n = 0; while (i < N && xr[i] != hook) { tmp = tab_trans2[xr[i++]]; /* If we are sure that the FASTA file is correct (ie, the sequence on a single line and only the IUAPC code (plus '-' and '?') is used, then the following check would not be needed; additionally the size of tab_trans could be restriced to 0-121. This check has the advantage that all invalid characters are simply ignored without causing error -- except if '>' occurs in the middle of a sequence. */ if(tmp) buffer[n++] = tmp; } PROTECT(seq = allocVector(INTSXP, n)); rseq = INTEGER(seq); for (k = 0; k < n; k++) rseq[k] = buffer[k]; SET_VECTOR_ELT(obj, j, seq); UNPROTECT(1); j++; } setAttrib(obj, R_NamesSymbol, nms); UNPROTECT(3); return obj; } phangorn/src/sprdist.c0000644000176200001440000011700613241142074014514 0ustar liggesusers/* * sprdist.c * * (c) 2016-2017 Leonardo de Oliveira Martins (leomrtns@gmail.com) * * * This code may be distributed under the GNU GPL * */ # define USE_RINTERNALS #include #include #include #include #include /* standard integer types (int32_t typedef etc.) [C99]*/ #define true 1U /*!< Boolean TRUE */ #define false 0U /*!< Boolean FALSE */ typedef unsigned char bool; typedef struct splitset_struct* splitset; typedef struct hungarian_struct* hungarian; typedef struct bipartition_struct* bipartition; typedef struct bipsize_struct* bipsize; struct splitset_struct { int size, spsize, spr, spr_extra, rf, hdist; /*! \brief spr, extra prunes for spr, rf distances and hdist=assignment cost */ int n_g, n_s, n_agree, n_disagree; bipartition *g_split, *s_split, *agree, *disagree; bipartition prune; hungarian h; /* hungarian method for solving the assignment between edges */ bool match; /*! \brief do we want to calculate the minimum cost assignment */ }; struct hungarian_struct { int **cost, *col_mate; /*! \brief cost matrix, and col_mate[row] with column match for row */ int size, /*! \brief assignment size. Cost is a square matrix, so size should be an overestimate where "missing" nodes are added w/ cost zero */ initial_cost, /*! \brief sum of lowest input cost values for each column. The hungarian method rescales them so that minimum per column is zero */ final_cost; /*! \brief our final cost is on rescaled cost matrix, therefore to restore the "classical" optimal cost one should sum it with initial_cost */ int *unchosen_row, *row_dec, *slack_row, *row_mate, *parent_row, *col_inc, *slack; /* aux vectors */ }; /*! \brief Bit-string representation of splits. */ struct bipartition_struct { unsigned long long *bs; /*! \brief Representation of a bipartition by a vector of integers (bitstrings). */ int n_ones; /*! \brief Counter (number of "one"s) */ bipsize n; /*! \brief number of bits (leaves), vector size and mask */ int ref_counter; /*! \brief How many times this struct is being referenced */ }; struct bipsize_struct { unsigned long long mask;/*! \brief mask to make sure we consider only active positions (of last bitstring) */ int ints, bits, original_size; /*! \brief Vector size and total number of elements (n_ints = n_bits/(8*sizeof(long long)) +1). */ int ref_counter; /*! \brief How many times this struct is being referenced */ }; /*! \brief Allocate space for splitset structure (two vectors of bipartitions), for simple comparisons */ splitset new_splitset (int nleaves, int nsplits); /*! \brief free memory allocated for splitset structure */ void del_splitset (splitset split); /*! \brief low level function that does the actual SPR and hdist calculation based on a filled splitset struct */ int dSPR_topology_lowlevel (splitset split); /*! \brief function used by qsort for a vector of bipartitions (from smaller to larger) */ int compare_splitset_bipartition_increasing (const void *a1, const void *a2); /* BELOW: low level functions that work with bipartitions */ void split_create_agreement_list (splitset split); void split_remove_agree_edges (splitset split, bipartition *b, int *nb); void split_remove_duplicates (bipartition *b, int *nb); void split_compress_agreement (splitset split); void split_create_disagreement_list (splitset split); void split_disagreement_assign_match (splitset split); void split_find_small_disagreement (splitset split); void split_remove_small_disagreement (splitset split); void split_minimize_subtrees (splitset split); void split_remove_redundant_bit (splitset split, int id); void split_replace_bit (splitset split, int to, int from); void split_new_size (splitset split, int size, bool update_bipartitions); void split_swap_position (bipartition *b, int i1, int i2); /* BELOW: Hungarian method for bipartite matching (assignment) */ hungarian new_hungarian (int size); void hungarian_reset (hungarian p); void hungarian_update_cost (hungarian p, int row, int col, int cost); void del_hungarian (hungarian p); void hungarian_solve (hungarian p, int this_size); /* BELOW: Memory-efficient, fast bipartition comparisions based on 64bit representation of splits */ bipartition new_bipartition (int size); bipsize new_bipsize (int size); bipartition new_bipartition_copy_from (const bipartition from); bipartition new_bipartition_from_bipsize (bipsize n); void del_bipartition (bipartition bip); void del_bipsize (bipsize n); void bipsize_resize (bipsize n, int nbits); void bipartition_initialize (bipartition bip, int position); void bipartition_zero (bipartition bip); void bipartition_set (bipartition bip, int position); void bipartition_set_lowlevel (bipartition bip, int i, int j); void bipartition_unset (bipartition bip, int position); void bipartition_unset_lowlevel (bipartition bip, int i, int j); void bipartition_copy (bipartition to, const bipartition from); void bipartition_OR (bipartition result, const bipartition b1, const bipartition b2, bool update_count); void bipartition_AND (bipartition result, const bipartition b1, const bipartition b2, bool update_count); void bipartition_ANDNOT (bipartition result, const bipartition b1, const bipartition b2, bool update_count); void bipartition_XOR (bipartition result, const bipartition b1, const bipartition b2, bool update_count); void bipartition_XORNOT (bipartition result, const bipartition b1, const bipartition b2, bool update_count); void bipartition_NOT (bipartition result, const bipartition bip); void bipartition_count_n_ones (const bipartition bip); void bipartition_to_int_vector (const bipartition b, int *id, int vecsize); bool bipartition_is_equal (const bipartition b1, const bipartition b2); bool bipartition_is_equal_bothsides (const bipartition b1, const bipartition b2); bool bipartition_is_larger (const bipartition b1, const bipartition b2); void bipartition_flip_to_smaller_set (bipartition bip); bool bipartition_is_bit_set (const bipartition bip, int position); bool bipartition_contains_bits (const bipartition b1, const bipartition b2); // void bipartition_print_to_stdout (const bipartition b1); void bipartition_replace_bit_in_vector (bipartition *bvec, int n_b, int to, int from, bool reduce); void bipartition_resize_vector (bipartition *bvec, int n_b); /*! \brief Main SPR calculation function, to be used within R */ SEXP C_sprdist (SEXP bp1, SEXP bp2, SEXP lt) { int i, j, n_leaves = INTEGER(lt)[0]; SEXP result; double *res; splitset split; PROTECT(result = allocVector(REALSXP, 4)); res = REAL(result); // if (length(bp1) != length(bp2)) error ("number of bipartitions given to C_sprdist are not the same"); split = new_splitset (n_leaves, length(bp1)); for (i=0; i < split->size; i++) { // for (j=0; j < length(VECTOR_ELT (bp1, i)); j++) printf (";;%d ", INTEGER (VECTOR_ELT (bp1, i))[j]); for (j=0; j < length(VECTOR_ELT (bp1, i)); j++) bipartition_set (split->g_split[i], INTEGER (VECTOR_ELT (bp1, i))[j] - 1); for (j=0; j < length(VECTOR_ELT (bp2, i)); j++) bipartition_set (split->s_split[i], INTEGER (VECTOR_ELT (bp2, i))[j] - 1); } dSPR_topology_lowlevel (split); res[0] = split->spr; res[1] = split->spr_extra; res[2] = split->rf; res[3] = split->hdist; del_splitset (split); UNPROTECT(1); // result return(result); } /* functions below should not be called outside this scope */ splitset new_splitset (int nleaves, int nsplits) { splitset split; int i; split = (splitset) malloc (sizeof (struct splitset_struct)); split->n_g = split->n_s = split->size = nsplits; split->n_agree = split->n_disagree = 0; split->prune = NULL; split->match = true; /* do we want to calculate the assignment matching cost (using hungarian() )? */ split->spr = split->spr_extra = split->rf = split->hdist = 0; split->g_split = (bipartition*) malloc (split->size * sizeof (bipartition)); split->s_split = (bipartition*) malloc (split->size * sizeof (bipartition)); split->g_split[0] = new_bipartition (nleaves); split->s_split[0] = new_bipartition (nleaves); for (i = 1; i < split->size; i++) { split->g_split[i] = new_bipartition_from_bipsize (split->g_split[0]->n); /* use same bipsize */ split->s_split[i] = new_bipartition_from_bipsize (split->s_split[0]->n); } split->agree = (bipartition*) malloc (split->size * sizeof (bipartition)); split->disagree = (bipartition*) malloc (split->size * split->size * sizeof (bipartition)); split->agree[0] = new_bipartition (nleaves); // this bipsize will be recycled below split->disagree[0] = new_bipartition (nleaves); for (i = 1; i < split->size; i++) split->agree[i] = new_bipartition_from_bipsize (split->agree[0]->n); for (i = 1; i < split->size * split->size; i++) split->disagree[i] = new_bipartition_from_bipsize (split->disagree[0]->n); split->prune = new_bipartition_from_bipsize (split->disagree[0]->n); split->h = new_hungarian (split->size); return split; } void del_splitset (splitset split) { int i; if (!split) return; del_bipartition (split->prune); if (split->disagree) { for (i = split->size * split->size - 1; i >= 0; i--) del_bipartition (split->disagree[i]); free (split->disagree); } if (split->agree) { for (i = split->size - 1; i >= 0; i--) del_bipartition (split->agree[i]); free (split->agree); } if (split->g_split) { for (i = split->size - 1; i >= 0; i--) del_bipartition (split->g_split[i]); free (split->g_split); } del_hungarian (split->h); free (split); } int compare_splitset_bipartition_increasing (const void *a1, const void *a2) { /* similar to bipartition_is_larger() */ bipartition *b1 = (bipartition *) a1; bipartition *b2 = (bipartition *) a2; int i; if ((*b1)->n_ones > (*b2)->n_ones) return 1; if ((*b1)->n_ones < (*b2)->n_ones) return -1; for (i = (*b1)->n->ints - 1; (i >= 0) && ((*b1)->bs[i] == (*b2)->bs[i]); i--); /* find position of distinct bipartition elem*/ if (i < 0) return 0; /* identical bipartitions */ if ((*b1)->bs[i] > (*b2)->bs[i]) return 1; else return -1; } int dSPR_topology_lowlevel (splitset split) { int i = 0, mismatch = -1; for (i=0; i < split->size; i++) { bipartition_flip_to_smaller_set (split->g_split[i]); bipartition_flip_to_smaller_set (split->s_split[i]); } qsort (split->g_split, split->size, sizeof (bipartition), compare_splitset_bipartition_increasing); qsort (split->s_split, split->size, sizeof (bipartition), compare_splitset_bipartition_increasing); //for (i = 0; i < split->n_g; i++) bipartition_print_to_stdout (split->g_split[i]); printf ("G ::DEBUG 0 ::\n"); //for (i = 0; i < split->n_s; i++) bipartition_print_to_stdout (split->s_split[i]); printf ("S\n"); i++; /* to trick -Werror, since we don't use it unless for debug */ while (mismatch) { split_create_agreement_list (split); // vector of identical bipartitions split_compress_agreement (split); // iterative replacement of cherry by new leaf // for (i = 0; i < split->n_g; i++) bipartition_print_to_stdout (split->g_split[i]); printf ("G ::DEBUG::\n"); // for (i = 0; i < split->n_s; i++) bipartition_print_to_stdout (split->s_split[i]); printf ("S\n"); // for (i = 0; i < split->n_agree; i++) bipartition_print_to_stdout (split->agree[i]); printf ("A\n"); if (mismatch == -1) split->rf = split->n_g + split->n_s; mismatch = (split->n_g > 0) && (split->n_s > 0); // all edges were in agreement if (!mismatch) return split->spr; split_create_disagreement_list (split); // vector of smallest disagreements split_disagreement_assign_match (split); /* assignment matching between edges using hungarian method (split->hdist after first time) */ split_remove_duplicates (split->disagree, &(split->n_disagree)); // some elements are equal; this function also qsorts split_find_small_disagreement (split); // could also be one leaf only //for (i = 0; i < split->n_disagree; i++) { bipartition_print_to_stdout (split->disagree[i]); printf ("\n"); } //printf ("{%d} prune: ", split->n_disagree); bipartition_print_to_stdout (split->prune); printf ("\n"); split->spr++; split_remove_small_disagreement (split); split_minimize_subtrees (split); mismatch = (split->n_g > 0) && (split->n_s > 0); // all edges were in agreement } return split->spr; } void split_create_agreement_list (splitset split) { int s, g; for (g = 0; g < split->n_g; g++) for (s = 0; s < split->n_s; s++) if (bipartition_is_equal (split->g_split[g], split->s_split[s])) { bipartition_copy (split->agree[split->n_agree++], split->g_split[g]); split->n_g--; split_swap_position (split->g_split, g, split->n_g); /* if we don't swap them, we lose ref to "old" value on g_split[] */ split->n_s--; split_swap_position (split->s_split, s, split->n_s); g--; s = split->n_s; /* pretend loop finished, examine again with new values */ } split_remove_agree_edges (split, split->g_split, &(split->n_g)); split_remove_agree_edges (split, split->s_split, &(split->n_s)); } void split_remove_agree_edges (splitset split, bipartition *b, int *nb) { int i, a; for (i = 0; i < (*nb); i++) for (a = 0; a < split->n_agree; a++) if (bipartition_is_equal (b[i], split->agree[a])) { (*nb)--; split_swap_position (b, i, (*nb)); i--; a = split->n_agree; /* loop again over new value */ } } void split_remove_duplicates (bipartition *b, int *nb) { int i, j; bipartition pivot; if ((*nb) < 2) return; /* only if we have a vector with > 1 element */ qsort (b, (*nb), sizeof (bipartition), compare_splitset_bipartition_increasing); for (i = (*nb) - 1; i >= 1; i--) if (bipartition_is_equal (b[i], b[i-1])) { pivot = b[i]; /* do not lose a pointer to this element */ for (j = i; j < (*nb)-1; j++) b[j] = b[j+1]; b[j] = pivot; /* j = (*nb) - 1, which will become obsolete through next line --> (*nb)-- */ (*nb)--; } } void split_compress_agreement (splitset split) { int i, j, pair[2]; for (i = 0; i < split->n_agree; i++) if (split->agree[i]->n_ones == 2) { /* cherry in common, can be represented by just one leaf */ bipartition_to_int_vector (split->agree[i], pair, 2); split_remove_redundant_bit (split, pair[1]); split_new_size (split,split->agree[0]->n->bits - 1, false); /* false = do not recalculate every bipartition's last elem */ bipartition_resize_vector (split->agree, split->n_agree); for (j = 0; j < split->n_agree; j++) { /* minimize subtree size and remove single leaves */ bipartition_flip_to_smaller_set (split->agree[j]); /* agree only */ if (split->agree[j]->n_ones < 2) split_swap_position (split->agree, j--, --split->n_agree); } i = -1; /* redo all iterations, with new info (agree[] will be smaller) */ } bipartition_resize_vector (split->g_split, split->n_g); bipartition_resize_vector (split->s_split, split->n_s); } void split_create_disagreement_list (splitset split) { int g, s; for (g = 0; g < split->n_g; g++) for (s = 0; s < split->n_s; s++) { bipartition_XOR (split->disagree[g * split->n_s + s], split->g_split[g], split->s_split[s], true); /* true means to calculate n_ones */ bipartition_flip_to_smaller_set (split->disagree[g * split->n_s + s]); } split->n_disagree = split->n_g * split->n_s; } void split_disagreement_assign_match (splitset split) { /* also calculates split->hdist */ int g, s, max_n, sum = 0; if (split->n_g > split->n_s) max_n = split->n_g; else max_n = split->n_s; if (max_n < 2) return; hungarian_reset (split->h); for (g = 0; g < split->n_g; g++) for (s = 0; s < split->n_s; s++) hungarian_update_cost (split->h, g, s, split->disagree[g * split->n_s + s]->n_ones); hungarian_solve (split->h, max_n); /* now split->h->col_mate will have the pairs */ /* if we do the matching below it becomes much faster, but we may miss the best prune subtrees in a few cases (do not compromise the algo) */ split->n_disagree = 0; for (g = 0; g < max_n; g++) if ((g < split->n_g) && ( split->h->col_mate[g] < split->n_s)) { /* some matchings might be to dummy edges */ bipartition_XOR (split->disagree[split->n_disagree], split->g_split[g], split->s_split[split->h->col_mate[g]], true); /* true means to calculate n_ones */ bipartition_flip_to_smaller_set (split->disagree[split->n_disagree++]); sum += split->disagree[split->n_disagree-1]->n_ones; } if (split->match) { split->hdist = split->h->final_cost+split->h->initial_cost; split->match = false; } } void split_find_small_disagreement (splitset split) { bipartition dis; int a, d; bipartition_copy (split->prune, split->disagree[0]); /* smallest, in case we don't find a better one in loop below */ if (split->prune->n_ones < 2) return; dis = new_bipartition_from_bipsize (split->disagree[0]->n); for (d = 0; d < split->n_disagree; d++) for (a = 0; a < split->n_agree; a++) { if ((split->disagree[d]->n_ones == split->agree[a]->n_ones) || (split->disagree[d]->n_ones == (split->agree[a]->n->bits - split->agree[a]->n_ones))) { bipartition_XOR (dis, split->disagree[d], split->agree[a], true); if (!dis->n_ones) { bipartition_copy (split->prune, split->disagree[d]); d = split->n_disagree; a = split->n_agree; } else if (dis->n_ones == dis->n->bits) { bipartition_NOT (split->prune, split->disagree[d]); d = split->n_disagree; a = split->n_agree; } } } /* check if prune nodes are all on same side of a tree or if they are actually two SPRs (one from each tree) */ for (d = 0; d < split->n_g; d++) { if (!bipartition_contains_bits (split->g_split[d], split->prune)) { bipartition_NOT (dis, split->g_split[d]); if (!bipartition_contains_bits (dis, split->prune)) { split->spr_extra++; d = split->n_g; } } } del_bipartition (dis); } void split_remove_small_disagreement (splitset split) { int *index, i, j = split->prune->n_ones - 1, k = 0, size = split->agree[0]->n->bits; index = (int*) malloc (split->prune->n_ones * sizeof (int)); bipartition_to_int_vector (split->prune, index, split->prune->n_ones); for (i = size - 1; i >= (size - split->prune->n_ones); i--) { if (index[k] >= (size - split->prune->n_ones)) i = -1; else { if (i == index[j]) j--; else split_replace_bit (split, index[k++], i); } } split_new_size (split,size - split->prune->n_ones, true); if (index) free (index); } void split_minimize_subtrees (splitset split) { int i; for (i = 0; i < split->n_s; i++) { bipartition_flip_to_smaller_set (split->s_split[i]); if (split->s_split[i]->n_ones < 2) { split->n_s--; split_swap_position (split->s_split, i, split->n_s); i--; } } for (i = 0; i < split->n_g; i++) { bipartition_flip_to_smaller_set (split->g_split[i]); if (split->g_split[i]->n_ones < 2) { split->n_g--; split_swap_position (split->g_split, i, split->n_g); i--; } } for (i = 0; i < split->n_agree; i++) { bipartition_flip_to_smaller_set (split->agree[i]); if (split->agree[i]->n_ones < 2) { split->n_agree--; split_swap_position (split->agree, i, split->n_agree); i--; } } } void split_remove_redundant_bit (splitset split, int id) { int last = split->agree[0]->n->bits-1; if (id < last) split_replace_bit (split, id, last); } void split_replace_bit (splitset split, int to, int from) { if (from <= to) return; /*not needed for disagree[] */ bipartition_replace_bit_in_vector (split->agree, split->n_agree, to, from, true); bipartition_replace_bit_in_vector (split->g_split, split->n_g, to, from, true); bipartition_replace_bit_in_vector (split->s_split, split->n_s, to, from, true); } void split_new_size (splitset split, int size, bool update_bipartitions) { bipsize_resize (split->g_split[0]->n, size); bipsize_resize (split->s_split[0]->n, size); bipsize_resize (split->agree[0]->n, size); bipsize_resize (split->disagree[0]->n, size); if (update_bipartitions) { bipartition_resize_vector (split->g_split, split->n_g); bipartition_resize_vector (split->s_split, split->n_s); bipartition_resize_vector (split->agree, split->n_agree); } } void split_swap_position (bipartition *b, int i1, int i2) { bipartition pivot = b[i1]; b[i1] = b[i2]; b[i2] = pivot; } /* The hungarian method below is copied from http://www.informatik.uni-freiburg.de/~stachnis/misc.html * The (edited) original message follows: * ** libhungarian by Cyrill Stachniss, 2004 Solving the Minimum Assignment Problem using the ** Hungarian Method. ** This file may be freely copied and distributed! ** ** ** Parts of the used code was originally provided by the "Stanford GraphGase", but I made changes to this code. ** As asked by the copyright node of the "Stanford GraphGase", I hereby proclaim that this file are *NOT* part of the ** "Stanford GraphGase" distrubition! */ void hungarian_reset (hungarian p) { int i, j; for (i = 0; i < p->size; i++) { p->col_mate[i] = p->unchosen_row[i] = p->row_dec[i] = p->slack_row[i] = p->row_mate[i] = p->parent_row[i] = p->col_inc[i] = p->slack[i] = 0; for (j = 0; j < p->size; j++) p->cost[i][j] = 0; } p->final_cost = 0; } hungarian new_hungarian (int size) { int i; hungarian p; p = (hungarian) malloc (sizeof (struct hungarian_struct)); p->size = size; /* n_rows = n_columns; if it's not, fill with zeroes (no cost) */ p->cost = (int**) malloc (size * sizeof (int*)); for (i = 0; i < p->size; i++) p->cost[i] = (int*) malloc (size * sizeof (int)); /* edges would be assignment_matrix[ i * ncols + col_mate[i] ] = true; and other elems "false" (but we don't use the matrix notation) */ p->col_mate = (int*) malloc (size * sizeof (int)); /* for a given row node, col_mate[row] is the assigned col node */ p->unchosen_row = (int*) malloc (size * sizeof (int)); p->row_dec = (int*) malloc (size * sizeof (int)); p->slack_row = (int*) malloc (size * sizeof (int)); p->row_mate = (int*) malloc (size * sizeof (int)); p->parent_row = (int*) malloc (size * sizeof (int)); p->col_inc = (int*) malloc (size * sizeof (int)); p->slack = (int*) malloc (size * sizeof (int)); hungarian_reset (p); return p; } void hungarian_update_cost (hungarian p, int row, int col, int cost) { if (row >= p->size) return; if (col >= p->size) return; p->cost[row][col] = cost; } void del_hungarian (hungarian p) { int i; if (!p) return; if (p->cost) { for (i = p->size - 1; i >= 0; i--) if (p->cost[i]) free (p->cost[i]); free (p->cost); } free (p->col_mate); /* this is the important one, with i assigned to col_mate[i] */ free (p->slack); free (p->col_inc); free (p->parent_row); free (p->row_mate); free (p->slack_row); free (p->row_dec); free (p->unchosen_row); free (p); } void hungarian_solve (hungarian p, int this_size) { int i, j, nrows = this_size, ncols = this_size, k, l, s, t, q, unmatched; p->final_cost = p->initial_cost = 0; if (this_size > p->size) { p->final_cost = -1; return; } /* we don't call biomcmc_error(), but it *is* an error! */ for (l = 0; l < ncols; l++) { // Begin subtract column minima in order to start with lots of zeroes 12 s = p->cost[0][l]; for (k = 1; k < nrows; k++) if (p->cost[k][l] < s) s = p->cost[k][l]; p->initial_cost += s; /* this should be added to final_cost to have classical assignment cost; here we distinguish them */ if (s!=0) for (k = 0; k < nrows; k++) p->cost[k][l] -= s; } // End subtract column minima in order to start with lots of zeroes 12 // Begin initial state 16 t=0; for (l = 0; l < ncols; l++) { // n => num_cols p->row_mate[l]= -1; p->parent_row[l]= -1; p->col_inc[l]=0; p->slack[l]= 0x7FFFFFFF; } for (k = 0; k < nrows; k++) { // m => num_rows s = p->cost[k][0]; for (l = 1; l < ncols; l++) if (p->cost[k][l] < s) s = p->cost[k][l]; p->row_dec[k]=s; for (l = 0; l < ncols; l++) if ((s==p->cost[k][l]) && (p->row_mate[l] < 0)) { p->col_mate[k] = l; p->row_mate[l] = k; // fprintf(stderr, "matching col %d==row %d\n",l,k); goto row_done; } p->col_mate[k] = -1; // fprintf(stderr, "node %d: unmatched row %d\n",t,k); p->unchosen_row[t++] = k; row_done: ; } // End initial state 16 // Begin Hungarian algorithm 18 if (t==0) goto done; unmatched=t; while (1) { q=0; // fprintf(stderr, "Matched %d rows.\n",m-t); while (1) { while (qunchosen_row[q]; s=p->row_dec[k]; for (l=0;lslack[l]) { int del; del = p->cost[k][l] - s + p->col_inc[l]; if (del < p->slack[l]) { if (del==0) { if (p->row_mate[l]<0) goto breakthru; p->slack[l]=0; p->parent_row[l]=k; // fprintf(stderr, "node %d: row %d==col %d--row %d\n", t,row_mate[l],l,k); p->unchosen_row[t++]=p->row_mate[l]; } else { p->slack[l]=del; p->slack_row[l]=k; } } } } // End explore node q of the forest 19 q++; } // Begin introduce a new zero into the matrix 21 s = 0x7FFFFFFF; for (l = 0;l < ncols; l++) if (p->slack[l] && p->slack[l] < s) s = p->slack[l]; for (q = 0; q < t; q++) p->row_dec[ p->unchosen_row[q] ] += s; for (l = 0; l < ncols; l++) if (p->slack[l]) { p->slack[l]-=s; if (p->slack[l]==0) { // Begin look at a new zero 22 k = p->slack_row[l]; // fprintf(stderr, "Decreasing uncovered elements by %d produces zero at [%d,%d]\n", s,k,l); if (p->row_mate[l]<0) { for (j=l+1;jslack[j]==0) p->col_inc[j]+=s; goto breakthru; } else { p->parent_row[l]=k; // fprintf(stderr, "node %d: row %d==col %d--row %d\n",t,row_mate[l],l,k); p->unchosen_row[t++]=p->row_mate[l]; } } // End look at a new zero 22 } else p->col_inc[l]+=s; // End introduce a new zero into the matrix 21 } breakthru: // fprintf(stderr, "Breakthrough at node %d of %d!\n",q,t); while (1) { // Begin update the matching 20 j=p->col_mate[k]; p->col_mate[k]=l; p->row_mate[l]=k; // fprintf(stderr, "rematching col %d==row %d\n",l,k); if (j<0) break; k=p->parent_row[j]; l=j; } // End update the matching 20 if (--unmatched==0) goto done; // Begin get ready for another stage 17 t=0; for (l=0;lparent_row[l]= -1; p->slack[l]=0x7FFFFFFF; } for (k=0;kcol_mate[k]<0) p->unchosen_row[t++]=k; // fprintf(stderr, "node %d: unmatched row %d\n",t,k); // End get ready for another stage 17 } done: // Begin doublecheck the solution 23 for (k = 0; k < nrows; k++) for (l=0;lcost[k][l] < p->row_dec[k] - p->col_inc[l]) { p->final_cost = -1; return;} //printf ("\n**\n"); for (k = 0; k < nrows; k++) { l=p->col_mate[k]; if ((l < 0) || (p->cost[k][l] != p->row_dec[k] - p->col_inc[l])) { p->final_cost = -1; return; } } k=0; for (l=0;lcol_inc[l]) k++; if (k>nrows) { p->final_cost = -1; return; } // End doublecheck the solution 23 // End Hungarian algorithm 18 for (k = 0; k < nrows; ++k) for (l = 0; l < ncols; ++l) p->cost[k][l] = p->cost[k][l] - p->row_dec[k] + p->col_inc[l]; for (i = 0; i < nrows; i++) p->final_cost += p->row_dec[i]; for (i = 0; i < ncols; i++) p->final_cost -= p->col_inc[i]; // fprintf(stderr, "Cost is %d\n",cost); } /* BELOW are the bipartition functions (memory-efficient storage of bipartitions on 64 bits */ int BitStringSize = 8 * sizeof (unsigned long long); bipartition new_bipartition (int size) { bipartition bip; int i; bip = (bipartition) malloc (sizeof (struct bipartition_struct)); bip->n = new_bipsize (size); bip->n_ones = 0; bip->ref_counter = 1; bip->bs = (unsigned long long*) malloc (bip->n->ints * sizeof (unsigned long long)); for (i=0; i < bip->n->ints; i++) bip->bs[i] = 0ULL; return bip; } bipsize new_bipsize (int size) { bipsize n; int i; n = (bipsize) malloc (sizeof (struct bipsize_struct)); n->bits = n->original_size = size; n->ref_counter = 1; n->ints = size/BitStringSize + 1; n->mask = 0ULL; for (i=0; i < n->bits%BitStringSize; i++) n->mask |= (1ULL << i); /* disregard other bits */ return n; } bipartition new_bipartition_copy_from (const bipartition from) { bipartition bip; int i; bip = (bipartition) malloc (sizeof (struct bipartition_struct)); bip->n = new_bipsize (from->n->bits); bip->n_ones = from->n_ones; bip->ref_counter = 1; bip->bs = (unsigned long long*) malloc (bip->n->ints * sizeof (unsigned long long)); for (i=0; i < bip->n->ints; i++) bip->bs[i] = from->bs[i]; return bip; } bipartition new_bipartition_from_bipsize (bipsize n) { bipartition bip; int i; bip = (bipartition) malloc (sizeof (struct bipartition_struct)); bip->n = n; bip->n->ref_counter++; bip->n_ones = 0; bip->ref_counter = 1; bip->bs = (unsigned long long*) malloc (bip->n->ints * sizeof (unsigned long long)); for (i=0; i < bip->n->ints; i++) bip->bs[i] = 0ULL; return bip; } void del_bipartition (bipartition bip) { if (bip) { if (--bip->ref_counter) return; if (bip->bs) free (bip->bs); del_bipsize (bip->n); free (bip); } } void del_bipsize (bipsize n) { if (n) { if (--n->ref_counter) return; free (n); } } void bipsize_resize (bipsize n, int nbits) { int i; n->bits = nbits; n->ints = nbits/BitStringSize + 1; // might be smaller than original bs size n->mask = 0ULL; for (i=0; i < nbits%BitStringSize; i++) n->mask |= (1ULL << i); /* disregard other bits */ } void bipartition_initialize (bipartition bip, int position) { int i, j; for (i=0; i < bip->n->ints; i++) bip->bs[i] = 0ULL; j = position%BitStringSize; i = position/BitStringSize; bip->bs[i] = (1ULL << j); bip->n_ones = 1; } void bipartition_zero (bipartition bip) { int i; for (i=0; i < bip->n->ints; i++) bip->bs[i] = 0ULL; bip->n_ones = 0; } void bipartition_set (bipartition bip, int position) { bipartition_set_lowlevel (bip, position/BitStringSize, position%BitStringSize); } void bipartition_set_lowlevel (bipartition bip, int i, int j) { if (bip->bs[i] & (1ULL << j)) return; // bit already set bip->bs[i] |= (1ULL << j); bip->n_ones++; /* doesn't work if we reduce space later (check replace_int_in_vector() ) */ } void bipartition_unset (bipartition bip, int position) { bipartition_unset_lowlevel (bip, position/BitStringSize, position%BitStringSize); } void bipartition_unset_lowlevel (bipartition bip, int i, int j) { if (!(bip->bs[i] & (1ULL << j))) return; // bit already unset bip->bs[i] &= ~(1ULL << j); bip->n_ones--; } void bipartition_copy (bipartition to, const bipartition from) { int i; for (i=0; i < to->n->ints; i++) to->bs[i] = from->bs[i]; to->n_ones = from->n_ones; } void bipartition_OR (bipartition result, const bipartition b1, const bipartition b2, bool update_count) { int i; for (i=0; i < result->n->ints; i++) result->bs[i] = b1->bs[i] | b2->bs[i]; result->bs[i-1] &= b1->n->mask; /* do not change last bits (do not belong to bipartition) */ if (update_count) bipartition_count_n_ones (result); else result->n_ones = b1->n_ones + b2->n_ones; // works on topologies where b1 and b2 are disjoint } void bipartition_AND (bipartition result, const bipartition b1, const bipartition b2, bool update_count) { int i; for (i=0; i < result->n->ints; i++) result->bs[i] = b1->bs[i] & b2->bs[i]; result->bs[i-1] &= b1->n->mask; /* do not change last bits (do not belong to bipartition) */ if (update_count) bipartition_count_n_ones (result); else result->n_ones = 0;// update_count = false should be used only when you don't care about this value (temp var) } void bipartition_ANDNOT (bipartition result, const bipartition b1, const bipartition b2, bool update_count) { int i; for (i=0; i < result->n->ints; i++) result->bs[i] = b1->bs[i] & (~b2->bs[i]); result->bs[i-1] &= b1->n->mask; /* do not change last bits (do not belong to bipartition) */ if (update_count) bipartition_count_n_ones (result); else result->n_ones = 0;// update_count = false should be used only when you don't care about this value (temp var) } void bipartition_XOR (bipartition result, const bipartition b1, const bipartition b2, bool update_count) { int i; for (i=0; i < result->n->ints; i++) result->bs[i] = b1->bs[i] ^ b2->bs[i]; result->bs[i-1] &= b1->n->mask; /* do not change last bits (do not belong to bipartition) */ if (update_count) bipartition_count_n_ones (result); else result->n_ones = 0;// update_count = false should be used only when you don't care about this value (temp var) } void bipartition_XORNOT (bipartition result, const bipartition b1, const bipartition b2, bool update_count) { /* equivalent to XOR followed by NOT */ int i; for (i=0; i < result->n->ints; i++) result->bs[i] = b1->bs[i] ^ (~b2->bs[i]); result->bs[i-1] &= b1->n->mask; /* do not change last bits (do not belong to bipartition) */ if (update_count) bipartition_count_n_ones (result); else result->n_ones = 0;// update_count = false should be used only when you don't care about this value (temp var) } void bipartition_NOT (bipartition result, const bipartition bip) { int i; for (i=0; i < result->n->ints; i++) result->bs[i] = ~bip->bs[i]; result->bs[i-1] &= bip->n->mask; /* do not invert last bits (do not belong to bipartition) */ result->n_ones = bip->n->bits - bip->n_ones; } void bipartition_count_n_ones (const bipartition bip) { int i; unsigned long long j; bip->n_ones = 0; /* // Naive approach for (i=0; i < bip->n_ints - 1; i++) for (j=0; j < BitStringSize; j++) bip->n_ones += ((bip->bs[i] >> j) & 1ULL); for (j=0; j < bip->n_bits%BitStringSize; j++) bip->n_ones += ((bip->bs[i] >> j) & 1ULL); */ // clear the least significant bit set per iteration (Peter Wegner in CACM 3 (1960), 322, mentioned in K&R) for (i=0; i < bip->n->ints; i++) for (j = bip->bs[i]; j; bip->n_ones++) j &= j - 1ULL; } bool bipartition_is_equal (const bipartition b1, const bipartition b2) { int i; if (b1->n_ones != b2->n_ones) return false; if (b1->n->ints != b2->n->ints) return false; for (i=0; i < b1->n->ints - 1; i++) if (b1->bs[i] != b2->bs[i]) return false; b1->bs[i] &= b1->n->mask; b2->bs[i] &= b2->n->mask; /* apply mask before comparing last elems */ if (b1->bs[i] != b2->bs[i]) return false; return true; } bool bipartition_is_equal_bothsides (const bipartition b1, const bipartition b2) { int i; bool equal = true; for (i=0; (i < b1->n->ints - 1) && (equal); i++) if (b1->bs[i] != b2->bs[i]) equal = false; if ((equal) && ((b1->bs[i] & b1->n->mask) != (b2->bs[i] & b2->n->mask))) equal = false; if (equal) return true; /* the biparitions are already the same, without flipping the bits */ /* now we compare one bipartition with the complement of the other */ for (i=0; (i < b1->n->ints - 1); i++) if (b1->bs[i] != ~b2->bs[i]) return false; if ((b1->bs[i] & b1->n->mask) != ((~b2->bs[i]) & b2->n->mask)) return false; return true; /* they are the exact complement of one another */ } bool bipartition_is_larger (const bipartition b1, const bipartition b2) { int i; if (b1->n_ones > b2->n_ones) return true; if (b1->n_ones < b2->n_ones) return false; for (i = b1->n->ints - 1; (i >= 0) && (b1->bs[i] == b2->bs[i]); i--); /* find position of distinct bipartition elem*/ if (i < 0) return false; /* identical bipartitions */ if (b1->bs[i] > b2->bs[i]) return true; else return false; } void bipartition_flip_to_smaller_set (bipartition bip) { int i = bip->n->ints - 1; /* most significant position -- consistent with is_larger() above, using OLD algo below */ if ((2 * bip->n_ones) < bip->n->bits) return; /* it is already the smaller set */ /* OLD always x is different from ~x, so we just look at last element ("largest digits of number") */ // if (((2 * bip->n_ones) == bip->n->bits) && (bip->bs[i] < (bip->n->mask & ~bip->bs[i]))) return; /* NEW: resolve ties by always showing the same "side" of bipartition, that is, the one having an arbitrary leaf (first one, in our case) */ if (((2 * bip->n_ones) == bip->n->bits) && (bip->bs[0] & 1ULL)) return; for (i=0; i < bip->n->ints; i++) bip->bs[i] = ~bip->bs[i]; /* like bipartition_NOT() */ bip->bs[i-1] &= bip->n->mask; /* do not invert last bits (do not belong to bipartition) */ bip->n_ones = bip->n->bits - bip->n_ones; return; } bool bipartition_is_bit_set (const bipartition bip, int position) { if (bip->bs[(int)(position/BitStringSize)] & (1ULL << (int)(position%BitStringSize))) return true; return false; } bool bipartition_contains_bits (const bipartition b1, const bipartition b2) { /* generalization of bipartition_is_bit_set(); b1 contains or not b2 */ int i; if (b1->n_ones < b2->n_ones) return false; for (i=0; i < b1->n->ints; i++) if ((b2->bs[i]) && (b2->bs[i] != (b1->bs[i] & b2->bs[i]))) return false; return true; } void bipartition_to_int_vector (const bipartition b, int *id, int vecsize) { int i, j, k = 0; for (i=0; i < b->n->ints; i++) for (j=0; (j < BitStringSize) && (k < vecsize); j++) if ( ((b->bs[i] >> j) & 1ULL) ) id[k++] = i * BitStringSize + j; } /* void bipartition_print_to_stdout (const bipartition b1) { int i, j; for (i = 0; i < b1->n->ints - 1; i++) { for (j = 0; j < BitStringSize; j++) printf ("%d", (int)((b1->bs[i] >> j) & 1ULL)); printf ("."); } for (j = 0; j < b1->n->bits%BitStringSize; j++) printf ("%d", (int)((b1->bs[i] >> j) & 1ULL)); printf ("[%d] ", b1->n_ones); } */ void bipartition_replace_bit_in_vector (bipartition *bvec, int n_b, int to, int from, bool reduce) { /* copy info from position "from" to position "to" */ int k, j = from%BitStringSize, i = from/BitStringSize, j2 = to%BitStringSize, i2 = to/BitStringSize; /* boolean "reduce" means that bitstring space will be reduced (last bits will be removed), therefore the update of * n_ones is different from default bipartition_set() behaviour: it's not an extra "1" (that is, one that did not * contribute to n_ones), but an existing "1" that change places. Schematically: * from -> to | normal n_ones count | when bitstring is reduced afterwards * 0 -> 0 | 0 | 0 * 0 -> 1 | -1 | -1 * 1 -> 0 | +1 | 0 (since it's a leaf that belonged to position "from" and now is on position "to") * 1 -> 1 | 0 | -1 (in fact one of the two "1"s dissapeared after reducing the bitstring * (the above description is outdated since I rewrote by hand the bit functions -- observe how we must erase 1 values from "from") */ if (reduce) for (k = 0; k < n_b; k++) { // copy 0 or 1 values, erasing "from" values to avoid problems after reducing space (hanging 1s out of range) if ( ((bvec[k]->bs[i] >> j) & 1ULL) && ((bvec[k]->bs[i2] >> j2) & 1ULL) ) { bvec[k]->n_ones--; bvec[k]->bs[i] &= ~(1ULL << j); } else if ( ((bvec[k]->bs[i] >> j) & 1ULL) && !((bvec[k]->bs[i2] >> j2) & 1ULL) ) { bvec[k]->bs[i2] |= (1ULL << j2); bvec[k]->bs[i] &= ~(1ULL << j); } else if ( !((bvec[k]->bs[i] >> j) & 1ULL) && ((bvec[k]->bs[i2] >> j2) & 1ULL) ) { bvec[k]->bs[i2] &= ~(1ULL << j2); bvec[k]->n_ones--; } /* else do nothing (from zero to zero) */ } else for (k = 0; k < n_b; k++) { // copy 0 or 1 values if ( ((bvec[k]->bs[i] >> j) & 1ULL) ) bipartition_set_lowlevel (bvec[k], i2, j2); // will check if n_ones change or not else bipartition_unset_lowlevel (bvec[k], i2, j2); } } void bipartition_resize_vector (bipartition *bvec, int n_b) { int k, i = bvec[0]->n->ints - 1; for (k = 0; k < n_b; k++) { bvec[k]->bs[i] &= bvec[0]->n->mask; bipartition_count_n_ones (bvec[k]); } } phangorn/src/sankoff.c0000644000176200001440000002145113241142074014451 0ustar liggesusers/* * dist.c * * (c) 2008-2017 Klaus Schliep (klaus.schliep@gmail.com) * * * This code may be distributed under the GNU GPL * */ # define USE_RINTERNALS #include #include #include #include #include SEXP C_rowMin(SEXP sdat, SEXP sn, SEXP sk){ int i, h, n=INTEGER(sn)[0], k=INTEGER(sk)[0]; double x, *res, *dat; SEXP result; PROTECT(result = allocVector(REALSXP, n)); res = REAL(result); PROTECT(sdat = coerceVector(sdat, REALSXP)); dat = REAL(sdat); for(i = 0; i < n; i++){ x = dat[i]; for(h = 1; h< k; h++) {if(dat[i + h*n] < x) x=dat[i + h*n];} res[i] = x; } UNPROTECT(2); return(result); } void rowMin2(double *dat, int n, int k, double *res){ int i, h; double x; for(i = 0; i < n; i++){ x = dat[i]; for(h = 1; h< k; h++) {if(dat[i + h*n] < x) x=dat[i + h*n];} res[i] = x; } } /* * never used void rowMinInt(int *dat, int n, int k, int *res){ int i, h; int x; for(i = 0; i < n; i++){ x = dat[i]; for(h = 1; h< k; h++) {if(dat[i + h*n] < x) x=dat[i + h*n];} res[i] = x; } } */ /* // avoid malloc and free void sankoff4_old(double *dat, int n, double *cost, int k, double *result){ int i, j, h; double x; //tmp[k], tmp; double *tmp; tmp = malloc(k * sizeof(double)); for(i = 0; i < n; i++){ for(j = 0; j < k; j++){ for(h = 0; h< k; h++){tmp[h] = dat[i + h*n] + cost[h + j*k];} x = tmp[0]; for(h = 1; h< k; h++) {if(tmp[h]=0; j--) { PROTECT(result = allocMatrix(REALSXP, nrx, ncx)); res = REAL(result); if (pj != nodes[j]) { for(i=0; i<(nrx * ncx); i++) tmp[i] = 0.0; sankoff4(REAL(VECTOR_ELT(dlist, nodes[j])), nrx, cost, ncx, tmp); for(i=0; i<(nrx * ncx); i++) res[i] = tmp[i] ; pj = nodes[j]; start = j; } else for(i=0; i<(nrx * ncx); i++) res[i] = tmp[i] ; k = start; while (k >= 0 && pj == nodes[k]) { if (k != j) sankoff4(REAL(VECTOR_ELT(data, edges[k])), nrx, cost, ncx, res); k--; } SET_VECTOR_ELT(dlist, edges[j], result); UNPROTECT(1); } UNPROTECT(1); return(dlist); } SEXP sankoffMPR(SEXP dlist, SEXP plist, SEXP scost, SEXP nr, SEXP nc, SEXP node, SEXP edge){ R_len_t i, n = length(node); int nrx=INTEGER(nr)[0], ncx=INTEGER(nc)[0], n0; int ei, j, *nodes=INTEGER(node), *edges=INTEGER(edge); SEXP result, dlist2; //tmp, double *res, *cost; // *rtmp, cost = REAL(scost); n0 = nodes[n-1L]; PROTECT(dlist2 = allocVector(VECSXP, n+1L)); PROTECT(result = allocMatrix(REALSXP, nrx, ncx)); res = REAL(result); for(j=0;j<(nrx*ncx);j++)res[j]=0.0; for(j=n-1L; j>=0; j--) { if(nodes[j]!=n0){ SET_VECTOR_ELT(dlist2, n0, result); UNPROTECT(1); n0 = nodes[j]; PROTECT(result = allocMatrix(REALSXP, nrx, ncx)); res = REAL(result); for(i=0; i<(nrx * ncx); i++) res[i] = 0.0; sankoff4(REAL(VECTOR_ELT(plist,nodes[j])), nrx, cost, ncx, res); } ei = edges[j]; sankoff4(REAL(VECTOR_ELT(dlist,ei)), nrx, cost, ncx, res); } SET_VECTOR_ELT(dlist2, n0, result); UNPROTECT(2); return(dlist2); } phangorn/src/ml.c0000644000176200001440000013550013241142074013433 0ustar liggesusers/* * ml.c * * (c) 2008-2017 Klaus Schliep (klaus.schliep@gmail.com) * * * This code may be distributed under the GNU GPL * */ # define USE_RINTERNALS #include #include #include #include #include #define LINDEX(i, k) (i - ntips - 1L) * (nr * nc) + k * ntips * (nr * nc) // index for LL #define LINDEX2(i, k) (i - *ntips - 1L) * (*nr* *nc) + k * *ntips * (*nr * *nc) // index for scaling matrix SCM #define LINDEX3(i, j) (i - *ntips - 1L) * *nr + j * *ntips * *nr //nr statt *nr char *transa = "N", *transb = "N"; double one = 1.0, zero = 0.0; int ONE = 1L; const double ScaleEPS = 1.0/4294967296.0; const double ScaleMAX = 4294967296.0; const double LOG_SCALE_EPS = -22.18070977791824915926; // 2^64 = 18446744073709551616 static double *LL; //, *WEIGHTS; static int *SCM; //, *XXX; void ll_free(){ free(LL); free(SCM); } /* LL likelihood for internal edges SCM scaling coefficients nNodes, nTips, kmax SC = (int *) R_alloc(nr * k, sizeof(int)); sc = (int *) R_alloc(nr, sizeof(int)); tmp = (double *) R_alloc(nr * k, sizeof(double)); */ void ll_init(int *nr, int *nTips, int *nc, int *k) { int i; LL = (double *) calloc(*nr * *nc * *k * *nTips, sizeof(double)); SCM = (int *) calloc(*nr * *k * *nTips, sizeof(int)); // * 2L for(i =0; i < (*nr * *k * *nTips); i++) SCM[i] = 0L; } /* void ll_free2(){ free(LL); free(SCM); free(XXX); } void ll_init2(int *data, int *weights, int *nr, int *nTips, int *nc, int *k) { int i; LL = (double *) calloc(*nr * *nc * *k * *nTips, sizeof(double)); WEIGHTS = (double *) calloc(*nr, sizeof(double)); XXX = (int *) calloc(*nr * *nTips, sizeof(int)); SCM = (int *) calloc(*nr * *k * *nTips, sizeof(int)); // * 2L for(i =0; i < (*nr * *k * *nTips); i++) SCM[i] = 0L; for(i =0; i < (*nr * *nTips); i++) XXX[i] = data[i]; for(i =0; i < *nr; i++) WEIGHTS[i] = weights[i]; } int edgeLengthIndex(int child, int parent, int nTips){ if(child <= nTips) return(child-1L); else{ if(child < parent) return(parent-1L); return(child -1L); } } */ void matm(int *x, double *contrast, int *nr, int *nc, int *nco, double *result){ int i, j; for(i = 0; i < (*nr); i++){ for(j = 0; j < (*nc); j++) result[i + j*(*nr)] *= contrast[x[i] - 1L + j*(*nco)]; } } SEXP invSites(SEXP dlist, SEXP nr, SEXP nc, SEXP contrast, SEXP nco){ R_len_t n = length(dlist); int nrx=INTEGER(nr)[0], ncx=INTEGER(nc)[0], i, j; SEXP result; PROTECT(result = allocMatrix(REALSXP, nrx, ncx)); double *res; res = REAL(result); for(j=0; j < (nrx * ncx); j++) res[j] = 1.0; for(i=0; i < n; i++) matm(INTEGER(VECTOR_ELT(dlist, i)), REAL(contrast), INTEGER(nr), INTEGER(nc), INTEGER(nco), res); UNPROTECT(1); // result return(result); } void scaleMatrix(double *X, int *nr, int *nc, int *result){ int i, j; double tmp; for(i = 0; i < *nr; i++) { tmp = 0.0; for(j = 0; j < *nc; j++) tmp += X[i + j* *nr]; while(tmp < ScaleEPS){ for(j = 0; j < *nc; j++) X[i + j* *nr] *=ScaleMAX; result[i] +=1L; tmp *= ScaleMAX; } } } // contrast to full dense matrix // double *tmp und malloc rausziehen // zwei Versionen *= und new void matp(int *x, double *contrast, double *P, int *nr, int *nc, int *nrs, double *result){ int i, j; double *tmp; tmp = (double *) R_alloc((*nc) *(*nrs), sizeof(double)); F77_CALL(dgemm)(transa, transb, nrs, nc, nc, &one, contrast, nrs, P, nc, &zero, tmp, nrs); for(i = 0; i < (*nr); i++){ for(j = 0; j < (*nc); j++) result[i + j*(*nr)] = tmp[x[i] - 1L + j*(*nrs)]; } } void rowMinScale(int *dat, int n, int k, int *res){ int i, h; int tmp; for(i = 0; i < n; i++){ tmp = dat[i]; for(h = 1; h< k; h++) {if(dat[i + h*n] < tmp) tmp=dat[i + h*n];} if(tmp>0L){for(h = 0; h< k; h++) dat[i + h*n] -= tmp;} res[i] = tmp; } } // Ziel etwas schneller void getP(double *eva, double *ev, double *evi, int m, double el, double w, double *result){ int i, j, h; double res; //tmp[m], double *tmp; tmp = (double *) malloc(m * sizeof(double)); // tmp = (double *) R_alloc(m, sizeof(double)); // el = 0 return identity for(i = 0; i < m; i++) tmp[i] = exp(eva[i] * w * el); // eva *= tmp??? for(i = 0; i < m; i++){ for(j = 0; j < m; j++){ res = 0.0; for(h = 0; h < m; h++) res += ev[i + h*m] * tmp[h] * evi[h + j*m]; result[i+j*m] = res; } } free(tmp); // ausserhalb } // 64 * 3 + 4 16 + 64 * 2 SEXP getPM(SEXP eig, SEXP nc, SEXP el, SEXP w){ R_len_t i, j, nel, nw, k; int m=INTEGER(nc)[0], l=0; double *ws=REAL(w); double *edgelen=REAL(el); double *eva, *eve, *evei; SEXP P, RESULT; nel = length(el); nw = length(w); if(!isNewList(eig)) error("'eig' must be a list"); eva = REAL(VECTOR_ELT(eig, 0)); eve = REAL(VECTOR_ELT(eig, 1)); evei = REAL(VECTOR_ELT(eig, 2)); PROTECT(RESULT = allocVector(VECSXP, nel*nw)); for(j=0; j0)scaleMatrix(&ans[ni * rc], nr, nc, scaleTmp); // (ni-nTips) ni = node[i]; if(ei < nTips) matp(INTEGER(VECTOR_ELT(dlist, ei)), contrast, P, nr, nc, &nco, &ans[ni * rc]); else F77_CALL(dgemm)(transa, transb, nr, nc, nc, &one, &ans[(ei-nTips) * rc], nr, P, nc, &zero, &ans[ni * rc], nr); } else { if(ei < nTips) matp(INTEGER(VECTOR_ELT(dlist, ei)), contrast, P, nr, nc, &nco, rtmp); else F77_CALL(dgemm)(transa, transb, nr, nc, nc, &one, &ans[(ei-nTips) * rc], nr, P, nc, &zero, rtmp, nr); for(j=0; j < rc; j++) ans[ni * rc + j] *= rtmp[j]; } } scaleMatrix(&ans[ni * rc], nr, nc, scaleTmp); F77_CALL(dgemv)(transa, nr, nc, &one, &ans[ni * rc], nr, bf, &ONE, &zero, TMP, &ONE); } /* // neue Version: keine SEXP (dlist) void lll0(int *X, double *eva, double *eve, double *evei, double *el, double g, int *nr, int *nc, int *node, int *edge, int nTips, double *contrast, int nco, int n, int *scaleTmp, double *bf, double *TMP, double *ans){ int ni, ei, j, i, rc; // R_len_t i, n = length(node); double *rtmp, *P; ni = -1; rc = *nr * *nc; rtmp = (double *) R_alloc(*nr * *nc, sizeof(double)); P = (double *) R_alloc(*nc * *nc, sizeof(double)); for(j=0; j < *nr; j++) scaleTmp[j] = 0L; for(i = 0; i < n; i++) { getP(eva, eve, evei, *nc, el[i], g, P); ei = edge[i]; if(ni != node[i]){ if(ni>0)scaleMatrix(&ans[ni * rc], nr, nc, scaleTmp); // (ni-nTips) ni = node[i]; if(ei < nTips) matp(&X[ei * *nr], contrast, P, nr, nc, &nco, &ans[ni * rc]); else F77_CALL(dgemm)(transa, transb, nr, nc, nc, &one, &ans[(ei-nTips) * rc], nr, P, nc, &zero, &ans[ni * rc], nr); } else { if(ei < nTips) matp(&X[ei * *nr], contrast, P, nr, nc, &nco, rtmp); else F77_CALL(dgemm)(transa, transb, nr, nc, nc, &one, &ans[(ei-nTips) * rc], nr, P, nc, &zero, rtmp, nr); for(j=0; j < rc; j++) ans[ni * rc + j] *= rtmp[j]; } } scaleMatrix(&ans[ni * rc], nr, nc, scaleTmp); F77_CALL(dgemv)(transa, nr, nc, &one, &ans[ni * rc], nr, bf, &ONE, &zero, TMP, &ONE); } */ // this seems to work perfectly void lll3(SEXP dlist, double *eva, double *eve, double *evei, double *el, double g, int *nr, int *nc, int *node, int *edge, int nTips, double *contrast, int nco, int n, int *scaleTmp, double *bf, double *TMP, double *ans, int *SC){ int ni, ei, j, i, rc; // R_len_t i, n = length(node); double *rtmp, *P; ni = -1L; rc = *nr * *nc; rtmp = (double *) R_alloc(*nr * *nc, sizeof(double)); P = (double *) R_alloc(*nc * *nc, sizeof(double)); for(j=0; j < *nr; j++) scaleTmp[j] = 0L; for(i = 0; i < n; i++) { // entweder P matrix erstellen, openMP ?? // temp Vectoren vermeiden getP(eva, eve, evei, *nc, el[i], g, P); ei = edge[i]; if(ni != node[i]){ // test for node[i+1] // temp Vectoren vermeiden if(ni>0)scaleMatrix(&ans[ni * rc], nr, nc, &SC[ni * *nr]); // (ni-nTips) ni = node[i]; for(j=0; j < *nr; j++) SC[j + ni * *nr] = 0L; if(ei < nTips) matp(INTEGER(VECTOR_ELT(dlist, ei)), contrast, P, nr, nc, &nco, &ans[ni * rc]); else{ F77_CALL(dgemm)(transa, transb, nr, nc, nc, &one, &ans[(ei-nTips) * rc], nr, P, nc, &zero, &ans[ni * rc], nr); for(j=0; j < *nr; j++) SC[ni * *nr + j] = SC[(ei-nTips) * *nr + j]; } } else { if(ei < nTips) matp(INTEGER(VECTOR_ELT(dlist, ei)), contrast, P, nr, nc, &nco, rtmp); else{ F77_CALL(dgemm)(transa, transb, nr, nc, nc, &one, &ans[(ei-nTips) * rc], nr, P, nc, &zero, rtmp, nr); for(j=0; j < *nr; j++) SC[ni * *nr + j] += SC[(ei-nTips) * *nr + j]; } for(j=0; j < rc; j++) ans[ni * rc + j] *= rtmp[j]; } } scaleMatrix(&ans[ni * rc], nr, nc, &SC[ni * *nr]); for(j=0; j < *nr; j++) scaleTmp[j] = SC[ni * *nr + j]; F77_CALL(dgemv)(transa, nr, nc, &one, &ans[ni * rc], nr, bf, &ONE, &zero, TMP, &ONE); } /* SEXP PML_NEW2(SEXP EL, SEXP W, SEXP G, SEXP NR, SEXP NC, SEXP K, SEXP eig, SEXP bf, SEXP node, SEXP edge, SEXP NTips, SEXP nco, SEXP contrast, SEXP N){ int nr=INTEGER(NR)[0], nc=INTEGER(NC)[0], k=INTEGER(K)[0], i, indLL; int nTips = INTEGER(NTips)[0], *SC; double *g=REAL(G), *tmp, logScaleEPS; SEXP TMP; double *eva, *eve, *evei; eva = REAL(VECTOR_ELT(eig, 0)); eve = REAL(VECTOR_ELT(eig, 1)); evei = REAL(VECTOR_ELT(eig, 2)); SC = (int *) R_alloc(nr * k, sizeof(int)); PROTECT(TMP = allocMatrix(REALSXP, nr, k)); // changed tmp=REAL(TMP); for(i=0; i<(k*nr); i++)tmp[i]=0.0; indLL = nr * nc * nTips; for(i=0; intips){ for(i = 0; i < k; i++){ PROTECT(X = allocMatrix(REALSXP, nr, nc)); getP(eva, eve, evei, nc, el, g[i], P); helpDADI(&LL[LINDEX(pa, i)], &LL[LINDEX(ch, i)], P, nr, nc, tmp); helpPrep(&LL[LINDEX(pa, i)], &LL[LINDEX(ch, i)], eve, evi, nr, nc, tmp, REAL(X)); SET_VECTOR_ELT(RESULT, i, X); UNPROTECT(1); } } else{ for(i = 0; i < k; i++){ PROTECT(X = allocMatrix(REALSXP, nr, nc)); getP(eva, eve, evei, nc, el, g[i], P); helpDAD5(&LL[LINDEX(pa, i)], INTEGER(VECTOR_ELT(dlist, ch-1L)), contrast, P, nr, nc, nco, tmp); helpPrep2(&LL[LINDEX(pa, i)], INTEGER(VECTOR_ELT(dlist, ch-1L)), contrast2, evi, nr, nc, nco, REAL(X)); //; SET_VECTOR_ELT(RESULT, i, X); UNPROTECT(1); } } UNPROTECT(1); //RESULT return(RESULT); } */ // child *= (dad * P) void goDown(double *dad, double *child, double *P, int nr, int nc, double *res){ F77_CALL(dgemm)(transa, transb, &nr, &nc, &nc, &one, dad, &nr, P, &nc, &zero, res, &nr); for(int j=0; j<(nc * nr); j++) child[j]*=res[j]; } // dad *= (child * P) void goUp(double *dad, int *child, double *contrast, double *P, int nr, int nc, int nco, double *res){ matp(child, contrast, P, &nr, &nc, &nco, res); for(int j=0; j<(nc * nr); j++) dad[j]*=res[j]; } // , double *w void updateLLQ(SEXP dlist, int pa, int ch, double *eva, double *eve, double*evei, double el, double *g, int nr, int nc, int ntips, double *contrast, int nco, int k, double *tmp, double *P){ int i; if(ch>ntips){ for(i = 0; i < k; i++){ getP(eva, eve, evei, nc, el, g[i], P); goDown(&LL[LINDEX(ch, i)], &LL[LINDEX(pa, i)], P, nr, nc, tmp); } } else{ for(i = 0; i < k; i++){ getP(eva, eve, evei, nc, el, g[i], P); goUp(&LL[LINDEX(pa, i)], INTEGER(VECTOR_ELT(dlist, ch-1L)), contrast, P, nr, nc, nco, tmp); } } } // double *w, void updateLL2(SEXP dlist, int pa, int ch, double *eva, double *eve, double*evei, double el, double *g, int nr, int nc, int ntips, double *contrast, int nco, int k, double *tmp, double *P){ int i; if(ch>ntips){ for(i = 0; i < k; i++){ getP(eva, eve, evei, nc, el, g[i], P); goDown(&LL[LINDEX(pa, i)], &LL[LINDEX(ch, i)], P, nr, nc, tmp); } } else{ for(i = 0; i < k; i++){ getP(eva, eve, evei, nc, el, g[i], P); goUp(&LL[LINDEX(pa, i)], INTEGER(VECTOR_ELT(dlist, ch-1L)), contrast, P, nr, nc, nco, tmp); } } } void ExtractScale(int ch, int k, int *nr, int *ntips, double *res){ int i; int j, blub, tmp; for(i = 0; i < k; i++){ blub = LINDEX3(ch, i); for(j=0; j< *nr; j++) res[j +i * *nr] = SCM[blub+j]; } for(i = 0; i< *nr; i++){ tmp = res[i]; for(j = 1; j 1e-05) && (k < 5) ) { if(scalep>0.6){ NR55(eva, ncx-1L, edle, ws, gs, X, INTEGER(ld)[0], nrx, f, tmp); ll=0.0; lll=0.0; for(i=0; i 10.0) newedle = 10.0; if (newedle < 1e-8) newedle = edle/2; if (newedle < 1e-8) newedle = 1e-8; // 1e-8 phyML for(i=0; i0L)SET_VECTOR_ELT(RESULT, 1, getM3(child, dad, P, nr, nc)); if(INTEGER(retB)[0]>0L)SET_VECTOR_ELT(RESULT, 2, getM3(dad, child, P, nr, nc)); // add variance ?? SET_VECTOR_ELT(RESULT, 3, ScalarReal(l1)); UNPROTECT(3); return (RESULT); } //, SEXP basefreq SEXP FS5(SEXP eig, SEXP nc, SEXP el, SEXP w, SEXP g, SEXP X, SEXP ld, SEXP nr, SEXP weight, SEXP f0) { SEXP RESULT; // EL, P; double *tmp, *f, *wgt=REAL(weight), edle, ledle, newedle, eps=10, *eva=REAL(VECTOR_ELT(eig,0)); double ll, lll, delta=0.0, scalep = 1.0, *ws=REAL(w), *gs=REAL(g), l1=0.0, l0=0.0; double y; int i, k=0, ncx=INTEGER(nc)[0], nrx=INTEGER(nr)[0]; tmp = (double *) R_alloc(nrx, sizeof(double)); f = (double *) R_alloc(nrx, sizeof(double)); PROTECT(RESULT = allocVector(REALSXP, 3)); edle = REAL(el)[0]; for(i=0; i 1e-05) && (k < 10) ) { if(scalep>0.6){ NR55(eva, ncx-1L, edle, ws, gs, X, INTEGER(ld)[0], nrx, f, tmp); ll=0.0; lll=0.0; for(i=0; i 10.0) newedle = 10.0; // if (newedle < 1e-8) newedle = edle/2; if (newedle < 1e-8) newedle = 1e-8; // 1e-8 phyML for(i=0; i 1e-05) && (k < 10) ) { if(scalep>0.6){ NR77(eva, nc-1L, edle, w, g, X, ld, nr, f, tmp); ll=0.0; lll=0.0; for(i=0; i 10.0) newedle = 10.0; if (newedle < 1e-8) newedle = 1e-8; // 1e-8 phyML for(i=0; intips){ for(i = 0; i < k; i++){ getP(eva, eve, evei, nc, oldel, g[i], P); helpDADI(&LL[LINDEX(pa, i)], &LL[LINDEX(ch, i)], P, nr, nc, tmp); helpPrep(&LL[LINDEX(pa, i)], &LL[LINDEX(ch, i)], eve, evi, nr, nc, tmp, &X[i*nr*nc]); for(h = 0; h < nc; h++){ for(j = 0; j < nr; j++){ X[j+h*nr + i*nr*nc] *= blub[j+i*nr]; } } } } else{ for(i = 0; i < k; i++){ getP(eva, eve, evei, nc, oldel, g[i], P); helpDAD5(&LL[LINDEX(pa, i)], INTEGER(VECTOR_ELT(dlist, ch-1L)), contrast, P, nr, nc, nco, tmp); helpPrep2(&LL[LINDEX(pa, i)], INTEGER(VECTOR_ELT(dlist, ch-1L)), contrast2, evi, nr, nc, nco, &X[i*nr*nc]); //; for(h = 0; h < nc; h++){ for(j = 0; j < nr; j++){ X[j+h*nr + i*nr*nc] *= blub[j+i*nr]; } } } } fs3(eva, nc, oldel, w, g, X, k, nr, weight, f0, res); updateLL2(dlist, pa, ch, eva, eve, evei, res[0], g, nr, nc, ntips, contrast, nco, k, tmp, P); el[ch-1L] = res[0]; if (ch > ntips) loli = ch; else loli = pa; } UNPROTECT(1); //RESULT return(RESULT); } SEXP optQrtt(SEXP PARENT, SEXP CHILD, SEXP eig, SEXP EVI, SEXP EL, SEXP W, SEXP G, SEXP NR, SEXP NC, SEXP NTIPS, SEXP CONTRAST, SEXP CONTRAST2, SEXP NCO, SEXP dlist, SEXP WEIGHT, SEXP F0){ int i, k=length(W), h, j, m, lEL=length(EL); int nc=INTEGER(NC)[0], nr=INTEGER(NR)[0], ntips=INTEGER(NTIPS)[0]; int *parent=INTEGER(PARENT), *child=INTEGER(CHILD), pa, ch; int nco =INTEGER(NCO)[0]; // loli, double *weight=REAL(WEIGHT), *f0=REAL(F0), *w=REAL(W); double *g=REAL(G), *evi=REAL(EVI), *contrast=REAL(CONTRAST), *contrast2=REAL(CONTRAST2); double *el, *X; double *eva, *eve, *evei, *tmp, *P; double *blub = (double *) R_alloc(nr * nc, sizeof(double)); double oldel; double *res = (double *) R_alloc(3L, sizeof(double)); tmp = (double *) R_alloc(nr * nc, sizeof(double)); P = (double *) R_alloc(nc * nc, sizeof(double)); X = (double *) R_alloc(k * nr * nc, sizeof(double)); ExtractScale(parent[0], k, &nr, &ntips, blub); SEXP RESULT; PROTECT(RESULT = allocVector(REALSXP, lEL)); el=REAL(RESULT); for(i = 0; i < lEL; i++) el[i] = REAL(EL)[i]; eva = REAL(VECTOR_ELT(eig, 0)); eve = REAL(VECTOR_ELT(eig, 1)); evei = REAL(VECTOR_ELT(eig, 2)); for(m = 4L; m > -1L; m--){ pa = parent[m]; ch = child[m]; oldel=el[m]; // moveDad if(ch>ntips){ for(i = 0; i < k; i++){ getP(eva, eve, evei, nc, oldel, g[i], P); helpDADI(&LL[LINDEX(pa, i)], &LL[LINDEX(ch, i)], P, nr, nc, tmp); helpPrep(&LL[LINDEX(pa, i)], &LL[LINDEX(ch, i)], eve, evi, nr, nc, tmp, &X[i*nr*nc]); for(h = 0; h < nc; h++){ for(j = 0; j < nr; j++){ X[j+h*nr + i*nr*nc] *= blub[j+i*nr]; } } } } else{ for(i = 0; i < k; i++){ getP(eva, eve, evei, nc, oldel, g[i], P); helpDAD5(&LL[LINDEX(pa, i)], INTEGER(VECTOR_ELT(dlist, ch-1L)), contrast, P, nr, nc, nco, tmp); helpPrep2(&LL[LINDEX(pa, i)], INTEGER(VECTOR_ELT(dlist, ch-1L)), contrast2, evi, nr, nc, nco, &X[i*nr*nc]); //; for(h = 0; h < nc; h++){ for(j = 0; j < nr; j++){ X[j+h*nr + i*nr*nc] *= blub[j+i*nr]; } } } } fs3(eva, nc, oldel, w, g, X, k, nr, weight, f0, res); // go up // if i=2 go down if(m==2)updateLLQ(dlist, ch, pa, eva, eve, evei, res[0], g, nr, nc, ntips, contrast, nco, k, tmp, P); else updateLLQ(dlist, pa, ch, eva, eve, evei, res[0], g, nr, nc, ntips, contrast, nco, k, tmp, P); el[m] = res[0]; } UNPROTECT(1); //RESULT return(RESULT); } SEXP PML4(SEXP dlist, SEXP EL, SEXP W, SEXP G, SEXP NR, SEXP NC, SEXP K, SEXP eig, SEXP bf, SEXP node, SEXP edge, SEXP NTips, SEXP nco, SEXP contrast, SEXP N){ int nr=INTEGER(NR)[0], nc=INTEGER(NC)[0], k=INTEGER(K)[0], i, j, indLL; int nTips = INTEGER(NTips)[0], *SC, *sc; double *g=REAL(G), *w=REAL(W), *tmp, *res; SEXP TMP; double *eva, *eve, *evei; eva = REAL(VECTOR_ELT(eig, 0)); eve = REAL(VECTOR_ELT(eig, 1)); evei = REAL(VECTOR_ELT(eig, 2)); SC = (int *) R_alloc(nr * k, sizeof(int)); sc = (int *) R_alloc(nr, sizeof(int)); tmp = (double *) R_alloc(nr * k, sizeof(double)); PROTECT(TMP = allocVector(REALSXP, nr)); res=REAL(TMP); for(i=0; i<(k*nr); i++)tmp[i]=0.0; indLL = nr * nc * nTips; for(i=0; i using namespace Rcpp; // This is a simple example of exporting a C++ function to R. You can // source this function into an R session using the Rcpp::sourceCpp // function (or via the Source button on the editor toolbar). Learn // more about Rcpp at: // // http://www.rcpp.org/ // http://adv-r.had.co.nz/Rcpp.html // http://gallery.rcpp.org/ // // [[Rcpp::export]] IntegerVector threshStateC(NumericVector x, NumericVector thresholds) { int n = x.size(), m = thresholds.size()-1L, j=0L; IntegerVector out(n); for (int i = 0; i < n; i++) { j=0L; while(x[i]>thresholds[j] && j #include #include // for NULL #include /* The following symbols/expressions for .NAME have been omitted phangorn_allDescCPP phangorn_bipartCPP phangorn_bipCPP phangorn_allChildrenCPP Most likely possible values need to be added below. */ /* FIXME: Check these declarations against the C/Fortran source code. */ /* .C calls */ extern void ACCTRAN2(void *, void *, void *, void *, void *, void *); extern void ACCTRAN3(void *, void *, void *, void *, void *, void *, void *, void *); extern void AllKids(void *, void *, void *, void *, void *, void *, void *, void *); extern void C_cophenetic(void *, void *, void *, void *, void *, void *, void *, void *); extern void C_fhm(void *, void *); extern void C_reorder(void *, void *, void *, void *, void *, void *); extern void countCycle(void *, void *, void *, void *); extern void countCycle2(void *, void *, void *, void *); extern void distHamming(void *, void *, void *, void *, void *); extern void fitch_free(); extern void fitch_init(void *, void *, void *, void *, void *); extern void fitchQuartet(void *, void *, void *, void *, void *, void *, void *); extern void fitchTriplet(void *, void *, void *, void *, void *); extern void fitchTripletACC4(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *); extern void giveIndex(void *, void *, void *, void *, void *, void *); extern void ll_free(); //extern void ll_free2(); extern void ll_init(void *, void *, void *, void *); //extern void ll_init2(void *, void *, void *, void *, void *, void *); extern void nodeH(void *, void *, void *, void *, void *); extern void out(void *, void *, void *, void *, void *); /* .Call calls */ extern SEXP AddOnes(SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP C_rowMin(SEXP, SEXP, SEXP); extern SEXP C_sprdist(SEXP, SEXP, SEXP); extern SEXP dist2spectra(SEXP, SEXP, SEXP); extern SEXP FITCH(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP FITCH345(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP FITCHTRIP3(SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP FNALL_NNI(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP FNALL5(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP FNALL6(SEXP, SEXP, SEXP, SEXP); extern SEXP FS4(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP FS5(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP getd2PM(SEXP, SEXP, SEXP, SEXP); extern SEXP getd2PM2(SEXP, SEXP, SEXP, SEXP); extern SEXP getDAD(SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP getDAD2(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP getdPM(SEXP, SEXP, SEXP, SEXP); extern SEXP getdPM2(SEXP, SEXP, SEXP, SEXP); extern SEXP getPM(SEXP, SEXP, SEXP, SEXP); extern SEXP getPrep(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP getPrep2(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP invSites(SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP LogLik2(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP optE(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP optQrtt(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP _phangorn_bipartCPP(SEXP, SEXP); extern SEXP _phangorn_bipCPP(SEXP, SEXP); extern SEXP PML0(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP PML3(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP PML4(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP pNodes(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP PWI(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP rawStream2phyDat(SEXP); extern SEXP rowMax(SEXP, SEXP, SEXP); extern SEXP sankoff3(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP sankoff3B(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP sankoffMPR(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP sankoffQuartet(SEXP, SEXP, SEXP, SEXP); extern SEXP _phangorn_allDescCPP(SEXP, SEXP); extern SEXP _phangorn_allChildrenCPP(SEXP); extern SEXP _phangorn_p2dna(SEXP, SEXP); extern SEXP _phangorn_threshStateC(SEXP, SEXP); static const R_CMethodDef CEntries[] = { {"ACCTRAN2", (DL_FUNC) &ACCTRAN2, 6}, {"ACCTRAN3", (DL_FUNC) &ACCTRAN3, 8}, {"AllKids", (DL_FUNC) &AllKids, 8}, {"C_cophenetic", (DL_FUNC) &C_cophenetic, 8}, {"C_fhm", (DL_FUNC) &C_fhm, 2}, {"C_reorder", (DL_FUNC) &C_reorder, 6}, {"countCycle", (DL_FUNC) &countCycle, 4}, {"countCycle2", (DL_FUNC) &countCycle2, 4}, {"distHamming", (DL_FUNC) &distHamming, 5}, {"fitch_free", (DL_FUNC) &fitch_free, 0}, {"fitch_init", (DL_FUNC) &fitch_init, 5}, {"fitchQuartet", (DL_FUNC) &fitchQuartet, 7}, {"fitchTriplet", (DL_FUNC) &fitchTriplet, 5}, {"fitchTripletACC4", (DL_FUNC) &fitchTripletACC4, 11}, {"giveIndex", (DL_FUNC) &giveIndex, 6}, {"ll_free", (DL_FUNC) &ll_free, 0}, // {"ll_free2", (DL_FUNC) &ll_free2, 0}, {"ll_init", (DL_FUNC) &ll_init, 4}, // {"ll_init2", (DL_FUNC) &ll_init2, 6}, {"nodeH", (DL_FUNC) &nodeH, 5}, {"out", (DL_FUNC) &out, 5}, {NULL, NULL, 0} }; static const R_CallMethodDef CallEntries[] = { {"AddOnes", (DL_FUNC) &AddOnes, 5}, {"C_rowMin", (DL_FUNC) &C_rowMin, 3}, {"C_sprdist", (DL_FUNC) &C_sprdist, 3}, {"dist2spectra", (DL_FUNC) &dist2spectra, 3}, {"FITCH", (DL_FUNC) &FITCH, 8}, {"FITCH345", (DL_FUNC) &FITCH345, 6}, {"FITCHTRIP3", (DL_FUNC) &FITCHTRIP3, 5}, {"FNALL_NNI", (DL_FUNC) &FNALL_NNI, 7}, {"FNALL5", (DL_FUNC) &FNALL5, 7}, {"FNALL6", (DL_FUNC) &FNALL6, 4}, {"FS4", (DL_FUNC) &FS4, 14}, {"FS5", (DL_FUNC) &FS5, 10}, {"getd2PM", (DL_FUNC) &getd2PM, 4}, {"getd2PM2", (DL_FUNC) &getd2PM2, 4}, {"getDAD", (DL_FUNC) &getDAD, 5}, {"getDAD2", (DL_FUNC) &getDAD2, 7}, {"getdPM", (DL_FUNC) &getdPM, 4}, {"getdPM2", (DL_FUNC) &getdPM2, 4}, {"getPM", (DL_FUNC) &getPM, 4}, {"getPrep", (DL_FUNC) &getPrep, 6}, {"getPrep2", (DL_FUNC) &getPrep2, 7}, {"invSites", (DL_FUNC) &invSites, 5}, {"LogLik2", (DL_FUNC) &LogLik2, 10}, {"optE", (DL_FUNC) &optE, 17}, {"optQrtt", (DL_FUNC) &optQrtt, 16}, {"_phangorn_bipartCPP", (DL_FUNC) &_phangorn_bipartCPP, 2}, {"_phangorn_bipCPP", (DL_FUNC) &_phangorn_bipCPP, 2}, {"PML0", (DL_FUNC) &PML0, 14}, {"PML3", (DL_FUNC) &PML3, 14}, {"PML4", (DL_FUNC) &PML4, 15}, {"pNodes", (DL_FUNC) &pNodes, 6}, {"PWI", (DL_FUNC) &PWI, 6}, {"rawStream2phyDat", (DL_FUNC) &rawStream2phyDat, 1}, {"rowMax", (DL_FUNC) &rowMax, 3}, {"sankoff3", (DL_FUNC) &sankoff3, 8}, {"sankoff3B", (DL_FUNC) &sankoff3B, 10}, {"sankoffMPR", (DL_FUNC) &sankoffMPR, 7}, {"sankoffQuartet", (DL_FUNC) &sankoffQuartet, 4}, {"_phangorn_allDescCPP", (DL_FUNC) &_phangorn_allDescCPP, 2}, {"_phangorn_allChildrenCPP", (DL_FUNC) &_phangorn_allChildrenCPP, 1}, {"_phangorn_p2dna", (DL_FUNC) &_phangorn_p2dna, 2}, {"_phangorn_threshStateC", (DL_FUNC) &_phangorn_threshStateC, 2}, {NULL, NULL, 0} }; void R_init_phangorn(DllInfo *dll) { R_registerRoutines(dll, CEntries, CallEntries, NULL, NULL); R_useDynamicSymbols(dll, FALSE); } phangorn/src/RcppExports.cpp0000644000176200001440000000537613241142074015663 0ustar liggesusers// Generated by using Rcpp::compileAttributes() -> do not edit by hand // Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 #include using namespace Rcpp; // threshStateC IntegerVector threshStateC(NumericVector x, NumericVector thresholds); RcppExport SEXP _phangorn_threshStateC(SEXP xSEXP, SEXP thresholdsSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< NumericVector >::type x(xSEXP); Rcpp::traits::input_parameter< NumericVector >::type thresholds(thresholdsSEXP); rcpp_result_gen = Rcpp::wrap(threshStateC(x, thresholds)); return rcpp_result_gen; END_RCPP } // allDescCPP List allDescCPP(IntegerMatrix orig, int nTips); RcppExport SEXP _phangorn_allDescCPP(SEXP origSEXP, SEXP nTipsSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< IntegerMatrix >::type orig(origSEXP); Rcpp::traits::input_parameter< int >::type nTips(nTipsSEXP); rcpp_result_gen = Rcpp::wrap(allDescCPP(orig, nTips)); return rcpp_result_gen; END_RCPP } // bipartCPP List bipartCPP(IntegerMatrix orig, int nTips); RcppExport SEXP _phangorn_bipartCPP(SEXP origSEXP, SEXP nTipsSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< IntegerMatrix >::type orig(origSEXP); Rcpp::traits::input_parameter< int >::type nTips(nTipsSEXP); rcpp_result_gen = Rcpp::wrap(bipartCPP(orig, nTips)); return rcpp_result_gen; END_RCPP } // bipCPP List bipCPP(IntegerMatrix orig, int nTips); RcppExport SEXP _phangorn_bipCPP(SEXP origSEXP, SEXP nTipsSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< IntegerMatrix >::type orig(origSEXP); Rcpp::traits::input_parameter< int >::type nTips(nTipsSEXP); rcpp_result_gen = Rcpp::wrap(bipCPP(orig, nTips)); return rcpp_result_gen; END_RCPP } // allChildrenCPP List allChildrenCPP(const IntegerMatrix orig); RcppExport SEXP _phangorn_allChildrenCPP(SEXP origSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< const IntegerMatrix >::type orig(origSEXP); rcpp_result_gen = Rcpp::wrap(allChildrenCPP(orig)); return rcpp_result_gen; END_RCPP } // p2dna IntegerVector p2dna(NumericMatrix xx, double eps); RcppExport SEXP _phangorn_p2dna(SEXP xxSEXP, SEXP epsSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< NumericMatrix >::type xx(xxSEXP); Rcpp::traits::input_parameter< double >::type eps(epsSEXP); rcpp_result_gen = Rcpp::wrap(p2dna(xx, eps)); return rcpp_result_gen; END_RCPP } phangorn/src/phangorn.c0000644000176200001440000005505113241142074014641 0ustar liggesusers/* * phangorn.c * * (c) 2008-2017 Klaus Schliep (klaus.schliep@gmail.com) * * * This code may be distributed under the GNU GPL * */ # define USE_RINTERNALS #include #include #include #include #include // off-diagonal #define DINDEX(i, j) n*(i - 1) - i * (i - 1)/2 + j - i - 1 // with diagonal (+i), R index (+1) #define DINDEX2(i, j) n*(i - 1) - i * (i - 1)/2 + j - 1 // index likelihood pml // need to define nr, nc, nTips, nNodes k #define LINDEX(i) (i-nTips) * (nr*nc) //+ k * nTips * (nr * nc) #define LINDEX2(i, k) (i-nTips) * (nr*nc) + k * nTips * (nr * nc) #define LINDEX3(i, k) (i-*nTips-1L) * (*nr* *nc) + k * *nTips * (*nr * *nc) // index sankoff #define SINDEX(i) i * (nr*nc) void countCycle(int *M, int *l, int *m, int *res){ int j, i, tmp; res[0]=0L; for (i=0; i<*l; i++) { tmp = 0; if(M[i] != M[i + (*m -1) * *l])tmp++; for (j=1; j<*m; j++) { if(M[i + (j-1)* *l] != M[i + j * *l])tmp++; } if(tmp>2L)res[0]+=tmp; } } void countCycle2(int *M, int *l, int *m, int *res){ int j, i, tmp; for (i=0; i<*l; i++) { tmp = 0L; if(M[i] != M[i + (*m -1) * *l])tmp=1L; for (j=1; j<*m; j++) { if(M[i + (j-1L)* *l] != M[i + j * *l])tmp++; } res[i]=tmp; } } void nodeH(int *edge, int *node, double *el, int *l, double *res){ int ei, i; for (i=*l-1L; i>=0; i--) { ei = edge[i] - 1L; res[ei] = res[node[i]-1L] + el[ei]; } } SEXP rowMax(SEXP sdat, SEXP sn, SEXP sk){ int i, h, n=INTEGER(sn)[0], k=INTEGER(sk)[0]; double x, *res, *dat; SEXP result; PROTECT(result = allocVector(REALSXP, n)); res = REAL(result); PROTECT(sdat = coerceVector(sdat, REALSXP)); dat = REAL(sdat); for(i = 0; i < n; i++){ x = dat[i]; for(h = 1; h< k; h++) {if(dat[i + h*n] > x) x=dat[i + h*n];} res[i] = x; } UNPROTECT(2); return(result); } /* static R_INLINE void getP00(double *eva, double *ev, double *evi, int m, double el, double w, double *result){ int i, j, h; double tmp, res; for(i = 0; i < m; i++){ tmp = exp(eva[i] * w * el); for(j=0; j0) & (tmp<(*nbin+1L)) ) ans[tmp-1L] ++; } } void C_reorder(int *from, int *to, int *n, int *sumNode, int *neworder, int *root){ int i, j, sum=0, k, Nnode, ind, *ord, *csum, *tips, *stack, z=0; // l, double *parent; int m=sumNode[0]; parent = (double *) R_alloc((*n), sizeof(double)); tips = (int *) R_alloc(m, sizeof(int)); ord = (int *) R_alloc((*n), sizeof(int)); csum = (int *) R_alloc( (m+1), sizeof(int)); stack = (int *) R_alloc(m, sizeof(int)); for(j=0;j<(*n);j++) parent[j] = (double)from[j]; for(j=0;j<(*n);j++) ord[j] = j; for(j=0;j -1){ j=stack[z]; if(tips[j]>0){ for(i=csum[j];i=0L; i--){ p = INTEGER(parent)[i]; if(tab[p]==1L){ res[i] = 1L; tab[INTEGER(child)[i]] = 1L; } } UNPROTECT(1); return(RESULT); } */ // std::merge void cisort(int *x, int *y, int a, int b, int *res){ int i, j, k; i=0; j=0; k=0; int xi=x[0]; int yi=y[0]; while(k<((a)+(b))){ if(i<(a)){ if( (xi j) return(DINDEX(j, i)); else return(DINDEX(i, j)); } // faster and less memory consuming cophenetic void copheneticHelp(int *left, int *right, int *ll, int *lr, int h, double *nh, int *nTips, double *dm){ int i, j, ind; for(i=0; i<*ll; i++){ for(j=0; j<*lr; j++){ ind = give_index3(left[i], right[j], *nTips); dm[ind] = 2.0*nh[h] - nh[left[i]-1L] - nh[right[j]-1L]; } } } void C_coph(int *tips, int *kids, int *ptips, int *pkids, int *ltips, int *lkids, int*Nnode, double *nh, int *nTips, double *dm){ int h, j, k, lk, pk, lt, rt, leftk, rightk; for(h=0; h<*Nnode; h++){ lk=lkids[h]; pk=pkids[h]; for(j=0; j<(lk-1L); j++){ leftk=kids[pk+j] - 1L; lt=ptips[leftk]; for(k=j+1L; k #include #include #include #include // #include "dist.h" // off-diagonal #define DINDEX(i, j) n*(i - 1) - i * (i - 1)/2 + j - i - 1 // with diagonal (+i), R index (+1) #define DINDEX2(i, j) n*(i - 1) - i * (i - 1)/2 + j - 1 // #define threshold parameters int give_index(int i, int j, int n) { if (i > j) return(DINDEX(j, i)); else return(DINDEX(i, j)); } int give_index2(int i, int j, int n) { if (i > j) return(DINDEX2(j, i)); else return(DINDEX2(i, j)); } void giveIndex(int *left, int* right, int *ll, int *lr, int *n, int *res){ int i, j, k; k=0; for (i = 0; i < *ll; i++){ for (j = 0; j < *lr; j++){ res[k] = give_index(left[i], right[j], *n); k++; } } } void giveIndex2(int *left, int* right, int *ll, int *lr, int *n, int *res){ int i, j, k; k=0; for (i = 0; i < *ll; i++){ for (j = 0; j < *lr; j++){ res[k] = give_index2(left[i], right[j], *n); k++; } } } void PD(int *x, int *y, int *n, int *weight){ int i, k; //n =length(x) for(i=0; i< *n; i++){ k=give_index(x[i], y[i], *n); weight[k]++; } } void pwIndex(int *left, int* right, int *l, int *n, double *w, double *res){ int i, k; k=0; for (i = 0; i < *l; i++){ k = give_index2(left[i], right[i], *n); res[k] += w[i]; } } SEXP PWI(SEXP LEFT, SEXP RIGHT, SEXP L, SEXP N, SEXP W, SEXP LI){ int i, li=INTEGER(LI)[0]; SEXP res; PROTECT(res = allocVector(REALSXP, li)); for(i = 0; i < li; i++)REAL(res)[i] = 0.0; pwIndex(INTEGER(LEFT), INTEGER(RIGHT), INTEGER(L), INTEGER(N), REAL(W), REAL(res)); UNPROTECT(1); return(res); } void C_fhm(double *v, int *n){ unsigned int level, i, j; unsigned int start, step, num_splits; unsigned int max_n = (unsigned int)*n; double vi, vj; num_splits = (1 << (*n)); step = 1; for(level = 0; level < max_n; level++){ start = 0; while(start < (num_splits-1)){ for(i = start; i < (start + step); i++){ j = i + step; vi = v[i]; vj = v[j]; v[i] = vi + vj; v[j] = vi - vj; } start = start + 2*step; } step *= 2; } } void distance_hadamard(double *d, int n) { unsigned int num_splits; unsigned int x, r, nr, p, b, e; unsigned int odd = 1; // The inner while loop can only terminate with odd == 1 so we don't need to set it inside the for loop. double cost, best_cost; num_splits = (1 << (n - 1)); for (x = 1; x < num_splits; ++x) { r = (x - 1) & x; // r = x without LSB nr = (r - 1) & r; // nr = r without LSB if (nr) { // If x contains 1 or 2 bits only, then it has already been computed as a pairwise distance. b = x - r; // b = LSB of x: the "fixed" taxon in the pair. best_cost = 1e20; e = 0; // e holds bits to the right of the current p. while (1) { p = r - nr; // p = 2nd half of pair cost = d[nr + e] + d[p + b]; if (cost < best_cost) best_cost = cost; if (!nr && odd) break; // Ensure we get the (LSB with reference taxon) pair when there are an odd number of taxa r = nr; e += p; nr = (r - 1) & r; // nr = r without LSB odd ^= 1; } d[x] = best_cost; } } d[0] = 0.0; } // int num_splits raus void pairwise_distances(double *dm, int n, double *d) { int k=0; unsigned int offset; for (int i = 0; i < (n-1); ++i) { for (int j = (i+1); j < n; ++j) { // Calculate the offset within the array to put the next value offset = (1 << i); if (j < n - 1) { // If i == n - 1 then this is a distance between the reference taxon and some other taxon. offset += (1 << j); // Note that "+" is safe since (1 << i) and (1 << j) are always different bits. } d[offset]=dm[k]; k++; } } } SEXP dist2spectra(SEXP dm, SEXP nx, SEXP ns) { int n = INTEGER(nx)[0]; int nsp = INTEGER(ns)[0]; double *res; SEXP result; PROTECT(result = allocVector(REALSXP, nsp)); res = REAL(result); pairwise_distances(REAL(dm), n, res); //nsp, distance_hadamard(res, n); UNPROTECT(1); return(result); } // speed up some code for NJ void out(double *d, double *r, int *n, int *k, int *l){ int i, j; double res, tmp; k[0]=1; l[0]=2; res = d[1] - r[0] - r[1]; for(i = 0; i < (*n-1); i++){ for(j = i+1; j < (*n); j++){ tmp = d[i*(*n)+j] - r[i] - r[j]; if(tmp%", "%<>%") importFrom(Matrix, Matrix, sparseMatrix, spMatrix, crossprod, solve) #, %*% importFrom(fastmatch, fmatch, "%fin%") #importFrom(nnls, nnls) #importFrom(parallel, mclapply, detectCores) import(parallel) importFrom(quadprog, solve.QP, solve.QP.compact) #importFrom(rgl, open3d, segments3d, spheres3d, rgl.texts) importFrom(stats, AIC, BIC, logLik, reorder, update, optim, optimize, constrOptim, na.omit, cophenetic, hclust, as.dist, pchisq, reshape, qgamma, pgamma, model.matrix, aggregate, lm.fit, xtabs, quantile, sd, runif) importFrom(graphics, plot, plot.default, plot.new, plot.window, text, par, abline, strwidth, axis, title, segments, points, image, matplot, legend, hist, identify, locator) importFrom(utils, read.table, download.file, stack, installed.packages, write.table, combn, packageDescription) importFrom(grDevices, rgb, rainbow, adjustcolor, col2rgb) #importFrom(methods, hasArg, is) #importFrom(Rcpp, evalCpp) #importMethodsFrom(Biostrings,as.matrix) #importFrom(Biostrings,DNAMultipleAlignment) #importFrom(Biostrings,RNAMultipleAlignment) #importFrom(Biostrings,AAMultipleAlignment) export(pml, optim.pml, pml.control, parsimony, optim.parsimony, pratchet, NJ, UNJ, PNJ, phyDat, cbind.phyDat, read.phyDat, write.phyDat, as.Matrix, as.phyDat, as.splits, as.networx, dfactorial, ldfactorial, hadamard, nni, allSitePattern, allSplits, allCircularSplits, fhm, distanceHadamard, treedist, sankoff, fitch, h2st, h4st, dist.logDet, dist.hamming, dist.ml, dist.p, unique.dist, upgma, wpgma, write.nexus.splits, read.nexus.splits, read.nexus.networx, write.nexus.networx, write.splits, write.nexus.dist, pmlPart, pmlCluster, pmlMix, pmlPen, read.aa, allTrees, designTree, designSplits, nnls.tree, nnls.splits, nnls.phylo, nnls.networx, neighborNet, pmlPart2multiPhylo, multiphyDat2pmlPart, splitsNetwork, simSeq, SH.test, bootstrap.pml, bootstrap.phyDat, RF.dist, wRF.dist, KF.dist, path.dist, sprdist, SPR.dist, mast, rNNI, rSPR, plotBS, Ancestors, Descendants, allDescendants, mrca.phylo, Children, Siblings, pace, modelTest, lento, compatible, acgt2ry, ancestral.pars, ancestral.pml, CI, RI, getClans, getSlices, getClips, getDiversity, midpoint, pruneTree, acctran, getRoot, plotAnc, consensusNet, bab, random.addition, diversity, baseFreq, densiTree, superTree, coalSpeciesTree, pml.fit, pml.init, pml.free, edQt, lli, cladePar, addConfidences, createLabel, SOWH.test, presenceAbsence, as.networx.splits, addTrivialSplits, removeTrivialSplits, phyDat2alignment, AICc, readDist, writeDist, discrete.gamma, matchSplits, distinct.splits, c.splits, dna2codon, codon2dna, genlight2phyDat, removeUndeterminedSites, phyDat2MultipleAlignment, delta.score, maxCladeCred, as.MultipleAlignment, threshStateC, coords, add.tips, map_duplicates) # plot.networx, countCycles, S3method('[', splits) S3method(addConfidences, phylo) S3method(addConfidences, splits) S3method(addConfidences, networx) S3method(AICc, pml) S3method(as.character, phyDat) S3method(as.data.frame, phyDat) S3method(anova, pml) S3method(BIC, pml) S3method(c, phyDat) S3method(c, splits) S3method(cbind, phyDat) S3method(unique, phyDat) S3method(unique, dist) S3method(as.bitsplits, splits) S3method(as.matrix, splits) S3method(as.Matrix, splits) S3method(as.networx, splits) S3method(unique, splits) S3method(as.networx, phylo) #S3method(as.igraph, networx) S3method(as.phyDat, DNAbin) S3method(as.phyDat, alignment) S3method(as.phyDat, character) S3method(as.phyDat, data.frame) S3method(as.phyDat, factor) S3method(as.phyDat, matrix) S3method(as.phyDat, MultipleAlignment) S3method(as.MultipleAlignment, phyDat) S3method(as.AAbin, phyDat) S3method(as.DNAbin, phyDat) S3method(as.phylo, splits) S3method(as.splits, phylo) S3method(as.splits, multiPhylo) S3method(as.splits, prop.part) S3method(as.splits, networx) S3method(as.prop.part, splits) S3method(cophenetic, networx) S3method(cophenetic, splits) S3method(identify, networx) S3method(image, phyDat) S3method(logLik, pml) S3method(logLik, pmlPart) S3method(logLik, pmlMix) S3method(midpoint, phylo) S3method(midpoint, multiPhylo) S3method(plot, pml) S3method(plot, pmlPart) S3method(plot, networx) S3method(plot, pmlCluster) S3method(print, phyDat) S3method(print, pml) S3method(print, pmlMix) S3method(print, pmlPart) S3method(print, splits) S3method(print, summary.clanistics) S3method(print, SOWH) S3method(reorder, networx) #S3method(reorder, splits) S3method(simSeq, phylo) S3method(simSeq, pml) S3method(subset, phyDat) S3method(summary, clanistics) S3method(summary, SOWH) S3method(update, pml) S3method(vcov, pml) phangorn/NEWS0000644000176200001440000005535313241130606012574 0ustar liggesusers CHANGES in PHANGORN VERSION 2.4.0 NEW FEATURES o new function add.tips BUG FIXES o densiTree, bug report by Richel Bilderbeek o tree rearrangement in optim.pml return tree with double edge matrix o phyDat should work now for named vectors OTHER CHANGES o many more unit tests o more consistent coding style o flashClust and seqLogo are not suggested packages any more CHANGES in PHANGORN VERSION 2.3.0 NEW FEATURES o new function mast to compute the maximum agreement subtree o identify.networx to identify splits in a network o densiTree got more attributes o unique.dist, to filter duplicate distances o ancestral.pml and ancestral.pars are now may return proper phyDat objects and in for DNA may return ambiguous states BUG FIXES o densiTree may if the consensus tree had different ordering of labels OTHER CHANGES o acctran allows multiPhylo objects as input o rNNI has been completely rewritten and is faster CHANGES in PHANGORN VERSION 2.2.0 NEW FEATURES o midpoint in now generic and works for multiPhylo objects o as.bitsplits.splits to better interact with ape BUG FIXES o bug fix in RI and CI for ambiguous data OTHER CHANGES o added roxygen2 documentation, so R code is now much better documented, reorganisation of some documentation o many more unit tests CHANGES in PHANGORN VERSION 2.1.0 NEW FEATURES o new functions to compute the (approximate) SPR distance (sprdist, SPR.dist) contributed by Leonardo de Oliveira Martins. o super tree methods based on NNI and SPR distances BUG FIXES o fixed bug in KF.dist OTHER CHANGES o improvements to as.networx. It often now produces networks with less edges resulting in much nicer plots o plot.networx does take a different layout algorithm o as.data.frame.phyDat and as.character.phyDat return amino acids now in upper cases o more unit tests o improved cbind.phyDat, faster and more flexible o phangorn now requires ape 4.0 o phangorn now imports Rcpp, but not nnls any more CHANGES in PHANGORN VERSION 2.0.4 NEW FEATURES o new weighted Robinson-Foulds (1979) distance wRF, suggested by Michelle Kendall and normalized Robinson-Foulds suggested by Sereina Rutschmann o codon model "YN98" can be called directly, improved documentation o bootstrap.phyDat got an new argument jumble, which randomizes input order of sequences OTHER CHANGES o more unit tests CHANGES in PHANGORN VERSION 2.0.3 NEW FEATURES o new function maxCladeCred computing the maximum clade credibility tree from a sample of trees o function read.nexus.networx and write.nexus.networx to import / export phylogenetic networx to SplitsTree o function as.AAbin.phyDat to exchange data with the new AAbin class from ape o likelihood ratchet (Vos 2003) topology optimisation in optim.pml o with KF.dist (Kuhner & Felsenstein) and path.dist can be used like RF.dist BUG FIXES o improvements to optim.pml to avoid numerical problems, can now handle much more taxa (still experimantal) OTHER CHANGES o mrca.phylo can be used like mrca from ape (faster for large trees) o individual splits can be colored in lento plots (suggested by France Thouzé) o plot.networx now (silently) returns a networx object with some of the graphics parameters, more plot options o lots of small changes to make handling and identifying splits, edges in trees and networks easier o plotBS has a new argument frame and arguments BStrees can be empty o new vignette IntertwiningTreesAndNetworks CHANGES in PHANGORN VERSION 2.0.2 OTHER CHANGES o phangorn now suggests only the Biostrings and not depends on it o some improvements to bab (branch and bound), may be faster CHANGES in PHANGORN VERSION 2.0.0 NEW FEATURES o as.phyDat.MultipleAlignment to excange data with Biostrings o dist.ml can now compute distances using a discrete gamma model and the "F81" model. o optim.pml got a new rearrangement argument and can now use a stochastic rearrangements similar to Nguyen et al. (2015) BUG FIXES o plotBS may double counted edges when rooted trees were in the sample OTHER CHANGES o optim.pml uses more C code and should be more robust o more unit tests o baseFreq got additional parameter 'all' similar to base.freq in ape o lots of little improvements in the manual and help files o modelTest now also shows AIC weights and model="all" will test all available models CHANGES in PHANGORN VERSION 1.99.14 NEW FEATURES o phyDat2alignment to exports files to seqinr o readDist, writeDist to import / export distance matrices o cophenetic distance function for splits and networx o added unit tests BUG FIXES o as.splits.networx did not work properly for 4 taxa (reported by Laurélène Faye) o RF.dist returned sometimes wrong values (reported by Andres Dajles) o plotBS did sometimes not work if the tree had no edge lengths o plotBS did not work propoerly if input trees were rooted (reported by Quynh Quach) o plot.networx ignored cex argument in "2D" plots o Siblings ignored include.self argument if node is a vector OTHER CHANGES o plotBS got an additional argument p to plot only support values greater than p o pml and optim.pml now uses more C-code (and is a bit faster) o defaults in modelTest changed o discrete.gamma is now exported in the NAMESPACE CHANGES in PHANGORN VERSION 1.99-13 OTHER CHANGES o improved importing and conversion of data o improved stability of pml and optim.pml CHANGES in PHANGORN VERSION 1.99-12 NEW FEATURES o added neighborNet algorithm (Bryant and Moulton 2004) very experimental at the moment BUG FIXES o plotBS was not working correctly if bootstraped trees are in compressed form (bug report by Tobias Müller) OTHER CHANGES o many splits and networx methods have been improved and a vignette was added o phangorn now suggests only the rgl and not depends on it to avoid problems on different platforms (suggestion by Matt Pennell) o new package dependencies knitr for html vignettes and nnls CHANGES in PHANGORN VERSION 1.99-10 BUG FIXES o reorder.networx may not work as expected o Gamma model was not working properly in simSeq.pml CHANGES in PHANGORN VERSION 1.99-9 BUG FIXES o bug fixes for clang environment o midpoint takes care of node labels CHANGES in PHANGORN VERSION 1.99-8 NEW FEATURES o pmlPart got an argument rooted to handle rooted trees o simSeq is now a generic function. This simplifies the construcion of parametric bootstrap test o SOWH.test (very experimental) o as.networx and plot.networx improved considerably (often generate networks less edges) and planar graphs are now plotted nicely BUG FIXES o fixed some bugs in ancestral.pars o amino acid model "Blosum62" was not working OTHER CHANGES o improvements to read.nexus.splits, write.nexus.splits to be more consistant with splitstree o splitsNetwork got an additional argument splits o help for consensusNet, as.splits, as.networx have been reorganised and improved o treedist is much faster for larger trees o several changes to keep R CMD check happy o a development version phangorn is now available on github https://github.com/KlausVigo/phangorn.git CHANGES in PHANGORN VERSION 1.99-6 NEW FEATURES o cladePar helps coloring trees o treedist is faster for larger trees, better documentation and examples BUG FIXES o the plot of consensusNet shows now the proper bootstrap values OTHER CHANGES o phangorn does not depend only suggest rgl (should build on OS X now) o default rearrangement for parsimony is now "SPR" CHANGES in PHANGORN VERSION 1.99-5 NEW FEATURES o RF.dist works also on "multiPhylo" objects and is quite fast o optim.pml can now handle NNI tree arrangements for rooted trees, still experimental but useful for dating etc. BUG FIXES o rNNI did return sometimes trees without tip labels o SH.test did not work for pmlCluster objects o df for rooted rooted/ultrametric trees are correctly computed OTHER CHANGES o lots of internal code C-code changed o exports of some of the internal ML function, this should speed up in future other packages e.g. the colescentMCMC package, which use them considerably (interface may changes in the future) o registered C routines CHANGES in PHANGORN VERSION 1.99-0 NEW FEATURES o new function dist.p to estimate pairwise polymorphism p-distances from DNA sequences BUG FIXES o as.data.frame.phyDat returned only site patterns and so did write.phyDat for nexus files o some of the recently introduced (1.7-4) amino acid models were not known by all functions and contained NAs OTHER CHANGES o changed package imports and depends structure to aviod error messages, thanks to Brian Ripley o a lot of the internal C-code has changed CHANGES in PHANGORN VERSION 1.7-4 NEW FEATURES o densiTree plots are available now o new species tree and super tree methods o more amino acid models BUG FIXES o phangorn now depends on rgl instead of suggests rgl, rgl wants to be loaded before igraph, otherwise a compiling error on some platforms occured! o fixed a bug that sometimes caused in pratched to crash o fixed a bug when using negative indices in subset.phyDat o the search heuristic SPR in optim.parsimony evaluates now more trees and is more likely to find better ones OTHER CHANGES o underlying C-code for several functions has changed. less memory reallocations and potentially time savings hopefully I included not too many bugs o optimising edge length changed from Jacobi to Gauss-Seidel method and will hopefully be more robust in the long term! o Descendants is much faster for option type="all" o plotAnc gives user more control and produces nicer plots CHANGES in PHANGORN VERSION 1.7-1 NEW FEATURES o pmlPart got additional argument model (request from Santiago Claramunt) BUG FIXES o pmlPart should be more robust OTHER CHANGES o started reorganising the code o underlying code of several parsimony functions has changed and these are now considerably faster o some examples are changed to allow faster checking on CRAN CHANGES in PHANGORN VERSION 1.6-5 NEW FEATURES o dist.hamming handles ambigious states now as dist.ml (request from Arne Mooers) BUG FIXES o phangorn links properly to ape CHANGES in PHANGORN VERSION 1.6-3 NEW FEATURES o optim.parsimony has a new search heuristic (SPR) BUG FIXES o changed package to work with igraph >= 0.6 OTHER CHANGES o arguments of pratchet changed CHANGES in PHANGORN VERSION 1.6-0 NEW FEATURES o dist.ml has more options and is faster (ca. 5 times for nucleotides and 20 times for amino acids) BUG FIXES o plotBS did not work properly with ape version 3.0 OTHER CHANGES o vignettes changed for a faster compilation of the package o Ancestors allows a vector of nodes as input o midpoint uses less memory and works for larger trees (10000 of tips) o ancestral.pars gives better formated output CHANGES in PHANGORN VERSION 1.5-1 OTHER CHANGES o several examples changed for a faster compilation of the package CHANGES in PHANGORN VERSION 1.5-0 NEW FEATURES o codon models can be used directly (dn/ds ratio can be computed) o modelTest works now also for amino acids BUG FIXES o the code to compute RI and CI changed and should be more robust OTHER CHANGES o package parallel is used instead of multicore o vignettes, examples, help improved o ChangeLog is called NEWS CHANGES in PHANGORN VERSION 1.4-1 NEW FEATURES o parsimony branch-and-bould algorithms bab (so far pretty slow and memory intensive) o more amino acid models o function nnls.tree to compute non-negative edge weights for a given tree and a distance matrix BUG FIXES o allTrees returns now an integer edge matrix, this could have caused some problems previously o CI and RI now take better care of ambiguous states o dist.ml has default value for amino acids o as.splits.multiPhylo produces more sensible bipartitions and so lento and consensusNet produce more useful plots (thanks to Emmanuel Paradis) OTHER CHANGES o several changes to the networx classes and methods o modelTest now also returns the function calls of the estimated models, which can be used in downstream analyses o vignette "Trees" has a few more examples o dist.ml is more general (base frequencies and rate matrix can be supplied) o pml objects are more compact, thanks to the Matrix package o xtable is now a suggested package (needed for vignettes) CHANGES in PHANGORN VERSION 1.4-0 NEW FEATURES o plot.network to plot split networks in 3D (requires rgl) and 2D (still very experimantal) o consensusNet computes consensus networks o Lento plot allows to take multiPhylo objects as input BUG FIXES o CI and RI did not work with only one site pattern present o pratchet returned only one, not all of the best trees found OTHER CHANGES o phangorn now requires the Matrix, igraph and rgl packages o designTree returns a sparse Matrix and this can save a lot of memory o internal code for computing bipartitions is much faster for large trees, and so are several functions depending on it, e.g. RF.dist, treedist, Descendants CHANGES in PHANGORN VERSION 1.3-1 BUG FIXES o the multicore package may failed, if executed in a GUI environment, more error checks included o optim.pml, in rare cases may failed to optimize edge length (should be more robust now) OTHER CHANGES o some changes to keep R CMD check happy o modelTest, pratchet, bootstrap.pml, bootstrap.phyDat got an additional argument multicore option to switch between serial and parallel execution CHANGES in PHANGORN VERSION 1.3-0 NEW FEATURES o acctran to assign edge length to parsimony trees OTHER CHANGES o phangorn can now be cited o additional and improved ancestral reconstructions methods (ACCTRAN, MPR) o new vignette describing ancestral sequence reconstruction CHANGES in PHANGORN VERSION 1.2-0 NEW FEATURES o new function pratchet (parsimony ratchet) o new function midpoint for rooting trees o new function pruneTree to build concensus trees from node labels (e.g. bootstrap values) o multicore support for modelTest BUG FIXES o ancestral.pars sometimes did not show all possible states o the call-attributes did not get proper changed in update.pml and optim.pml OTHER CHANGES o there is now a general help page displayed with '?phangorn' o dist.hamming is faster o getClans, getSlices and getDiverstity can now handle multifurcating trees CHANGES in PHANGORN VERSION 1.1-2 NEW FEATURES o more generic methods for class splits (print, as.matrix) o plotBS can plot now cladograms and phylograms BUG FIXES o read.phyDat sometimes did not work properly for amino acids CHANGES in PHANGORN VERSION 1.1-1 NEW FEATURES o optim.pml allows to optimise rooted trees OTHER CHANGES o description of getClans improved CHANGES in PHANGORN VERSION 1.1-0 NEW FEATURES o Consistency Index (CI) and and Rentention Index (RI) o clanistic tools o new generic function cbind.phyDat o optim.parsimony works now also with the fitch algorithm, faster than the sankoff version BUG FIXES o treedist and RF.dist now check whether trees are binary and try to handle multifurcations (thanks to Jeremy Beaulieu for bug fixes) OTHER CHANGES o second vignette describing some special features o allTrees is faster o trace and pml.control are now more consistent o optim.pml uses less memory and can be faster for data with lots of characters CHANGES in PHANGORN VERSION 1.0-2 BUG FIXES o pml.control did not work properly OTHER CHANGES o pmlCluster, pmlMix and pmlPart gained an attribute control, which controls the outermost loop o some more error checking for pml and parsimony classes (thanks to Emmanuel and Liat) CHANGES in PHANGORN VERSION 1.0-1 NEW FEATURES o ancestral sequence reconstruction (parsimony and likelihood based) o a small convenience function acgt2ry for ry-coding o as.phylo.splits computes a tree from compatible splits BUG FIXES o a small error in pmlCluster was fixed OTHER CHANGES o upgma changed to accommodate change in as.phylo.hclust o lento plots are looking nicer CHANGES IN PHANGORN VERSION 1.0-0 NEW FEATURES o implementation of many nucleotide substitution models (additional general transition models can be defined) o new function modelTest, comparison of different phylogenetic model with AIC or BIC o Lento plot o subset functions for phyDat objects BUG FIXES o an error in pace is fixed OTHER CHANGES o parsimony (fitch and sankoff) can now handle multiPhylo objects o splits structure (which is a list of bipartitions), used by lento and hadamard conjugation o phyDat objects can be more general generated using a contrast matrix CHANGES IN PHANGORN VERSION 0.99-6 NEW FEATURES o pace, extracts the ancestral states of the root of a tree using the sankoff algorithm BUG FIXES o fixed a bug in dist.ml (thanks to Emmanuel) o fixed a bug introduced to SH.test in 0.99-5 OTHER CHANGES o fixed several spelling mistakes in the documentation CHANGES IN PHANGORN VERSION 0.99-5 NEW FEATURES o parallel computing via multicore (so far bootstrap.pml, bootstrap.pml profit under linux) o compute edge weights for parsimony trees BUG FIXES o optim.pml had problems when o as.character converted ?,- wrongly to NA o fitch needed binary trees as input, otherwise pscore is likely to be wrong (returns now a warning) o optim.pml had a problem with identical sequences OTHER CHANGES o optim.parsimony returns now a tree with edge weights o vignette is enhanced, I fixed some spelling mistakes and added some more examples. CHANGES IN PHANGORN VERSION 0.99-4 NEW FEATURES o new generic function unique.phyDat OTHER CHANGES o internal data format phyDat changed and data are stored more memory efficient (optim.pml and friends use less memory and may be faster) CHANGES IN PHANGORN VERSION 0.99-3 BUG FIXES o RF.dist sometimes returned wrong distances o rate parameter is now properly normalized in pml.Part and pmlCluster o simSeq had problems simulating a single character NEW FEATURES o rSPR and rNNI to simulate tree rearrangements CHANGES IN PHANGORN VERSION 0.99-2 NEW FEATURES o bootstrap.pml and bootstrap.phyDat: parametric bootstrap methods o simSeq: A new function to simulate sequence data o read.phyDat: simplifies reading in alignments o SH.test: Shimodaira-Hasegawa test o RF.dist: Robinson-Foulds distance as replacement for treedist (uses less memory and is much faster) BUG FIXES o dist.ml returned wrong variances. o as.character.phyDat, as.data.frame caused an error for alignments with only one site. OTHER CHANGES o added vignette describing how to perform some standard phylogenetic analysis with phangorn. o more functions to convert between different data formats. o NNI tree search is now general possible for partition models (pmlPart, pmlCluster) CHANGES IN PHANGORN VERSION 0.0-5 BUG FIXES o Solved a namespace problem with ape (>=2.2-3). CHANGES IN PHANGORN VERSION 0.0-4 NEW FEATURES o splitsNetwork fits a phylogenetic network using a L1 penalty. (High memory consumption) o pmlPen: A new function to estimate penalized likelihood models for sets of edge weights in mixtures or partition models. BUG FIXES o dist.ml should be more forgiving for different inputs. OTHER CHANGES o a new dataset. CHANGES IN PHANGORN VERSION 0.0-3 NEW FEATURES o amino acid models o several new maximum likelihood models: mixture models (pmlMix), and some model for phylogenomic data partition models (pmlPart), and clustering of partitions / genes (pmlCluster) (still experimental, feed back wellcome) o design matrices for phylogenetic distance methods o added some functions useful for simulations (nni, allTrees) OTHER CHANGES o the data object phyDat changed slightly internally o a new dataset o read.aa to read amino acid data in phylip format based on read.dna from the ape package CHANGES IN PHANGORN VERSION 0.0-2 NEW FEATURES o more generic functions (plot.pml, update.pml) BUG FIXES o the "Fitch" algorithm in parsimony contained a bug OTHER CHANGES o pml has a cleaner interface (less parameter) o new faster parsimony analysis (more compiled C-Code) o added NAMESPACE phangorn/data/0000755000176200001440000000000013201424001012762 5ustar liggesusersphangorn/data/yeast.RData0000644000176200001440000046427413201424001015045 0ustar liggesusersý7zXZi"Þ6!ÏXÌçïþ])TW"änRÊŸãX\°ÆqÅjnçj-&éd¿ ßk´9í¥÷oP6Â6RÈ èRîwÇ yXgÐË!qP×_¯¿?DS—ßÕ†þX¡Òñ]O¤ÐÚB`ã _däRŠÛ¹ajèvRŒíÎã³ÊS µ›«O%Tþ•J|qxK ‰ÀÞNæeÈÌÙ6·J*¿M8»‹%ú VÅ’1}mä :Pž·?6kdFsñäˆ|ípìKwÞéFúéq¾êÌûY}HÇòƧ «²B,ˆ„ìÆÐ>žÉ(:µkµ—PhÅ–-7¼Ù\Z¿¼"Á£Ó@ˆ‘<ÐÀ·ÅY@ë˜HMƒÏç; §„Ž9y¨§ÞÄ"žO¨+qƒt]­I'/T-0ÿUµ²Ë('€2!º+©µlÂíËÿ)p|T±ŸÊî凸²mØP§'PõÚ|hæWãö¤õ|r¸ü4½n¨Œ(Ê¡ò\+Ð15vª8exÔŠÈü’úŠÀgöcà%–-=<^ŸÓÏ‘¥Õ©–ºCŒ_ †x­„=9`MR„9~¹ÿ(7bÃ*V’Ÿ“(åˆt€‘_ì~*pÌÓçcÆ{¿{?âáòKš€ºµƒ¸ÿÌiÄuLbÿ1Bò«%#Á‰……wS¿³zS;ï*©QP{]ÎözVnSs´ùµ{ût¨úóíaS–Ö°qOµ å¨Ön=äS;Ò‰±î|¤¾8ZŽZõo]Ëó\زuR6!Èã&HKÎŽ£›îÑDÿͯ<Õ(ëc6vgšŠ°â€€|MÔB¬ÓÂçÙ‚rÊü‹”Ý©©‰vÑúBo;¨Ê*F7”I*µÌØ€F»«P{$Þ¦¢ýð_§•óÊ>1-›/#û#(¦còå~2w HsvÅ¡2NI\n’ˆbyNzÊüí\ÿ!àU™µúc¢!4sË5\@ÔLØíÿ#õmù®ktÄ^\c0ex„ñŠO4oÜöƒ²¥µDzœvE)<ž ’r“àNæ‹‘&Ë4¶CÃ<=0±·øQe´ußåЊ¶N„#;´Ü¾=ÏÚŽSÒš‰ë’Áóo K–&s2ÂSp7¯‡|bæf/8·ô1™ÿñr_avR„Ÿ¼RBèfdãhCC-‘ Ž7ƒH·í;ñ…ë1r-·ÊG¢(Û Ó¥ý¥« ÆZa7¾m¦¢Ü¥VFz[¹¯$°'ú„f³:t˜-éoÜÈg,Ì‚TYÑЃšg{Ü·ÔëŒ'ó´ŒèAwF:çM5âjk}Îã†AY $)uÔŒ7,Ðú¶–÷-ÙµÙ1™PS#²@·A=ž pÿ 锎`"ZYâ‡[G$÷}48_}·Í ©Y@ØSBy° °or{€µ?Ñ•žv;¤ÕbN”{—¶ &5‡æ±¦å|e¦âòKg N(R°. °€Ñ\ñ¨bÐ2g–Z}Ûÿ6-–ç^5705ä¶Ò´¶Õ¤~ë}< ôu©3aœz´×ó¬bpúƒ}j¾—’ˆ8ý¡ ~¾Êccî¿îF"¯¾ë#Î>ÌŒ¸wÑ-ñ¥ÊoØeÅúC'OìTµ˜ 4' EmGekÕì¦f‡¯ÜS\U_³ÀO¸I›:inuĺŰ_u‹U3 tb­vRIà™p³ü™²ëÍ}kÒBQöÖ°Ô n´JÚµ]>ºë©‚ð2üI¡ËÉÓ‘~ÆžŠ£ìr¦Êc±†ŽŠ a®&Ês¼›«y]a˜¿ó/’*œ P£|DÂ𙯩)æAÙÏå¢Hu¤½Zìº:ØoZ¨Ùa?³&ØeszùЄ;¿°c? Û¸ƒ:Æ*:úûó Ž‘ióíïf$EvUšIoÔ¨­;¹'”¢‹ÀÖ ÙR@G*Ö©ã¿BÚÄ¢ÂóJSœMÛÓš4Á—qŸõä«é+£nö}£Ö0ÌÞÒåÕ:1ž…N8¨ûñÍí-çšæR çF«¼[l ÖôZ•yû"…²hjðYê/;te÷–md'~ö¼·ÂŸü€¬ò+8-³DR¦m¸ùz ^ ©©°Ý:M|Œ:q#1’ GÔÖ IEÁ™–r†c·4‹oÙɰ’Í ŸøÏ¿W–­ÓæF¼ÙM5ÂKƒ2˜]9NsCÙ0¦V‰wÙ7“ ®pVUR° ¹@ù¦"®1™;-ÜÍCî™aKú¤B@XÙ^T¤|oZq§=ö‡5™NyÛ+¶Ÿéù¼·n½ ·­l2¦˜X,E>ó÷#ñjø¾ªæ-ͲהpSFÂLKšH6µVÇ×1{«¡Mßek]ùšÓ8¹–6XN­•œ A¤Üû]ùV¾d³øg.*÷¥0·prï#g'¢l‘§Ê ÏscHç½æ6çnÂ%Ó³›Ó9Ôj[5ª¿¤/Ì÷ô`Î'Rj,¡À2ý¼XGŠÒéÂ\Ù7ùEŧÐg‚Œ&ºÌžŸýðk‘ ?xᥠ7~*3˜l~Õæ‡gªÚ!è„Ó <àÔlV’÷·¼ž(•ÕE¦°>ø¢ö­0wdûÃêäíµäk±‰$‘DýÕ,»â€¾ÇGî4Ù çþ[€ƒÅ¼Ô;4.‡Ò4 V¾úãªYI¹Z®o·‘#ZÁUsÁÄH0EÇK翃êË®«¹„f™‹1Ít †Òß©‹t6ëîØ&í®jÑl{.ó$u3r;àgËè« W>ĸç[­4RǺÌ·@lq'=ß<ÅàÈãmÊ J¤ÇïeUùµáðÒoZw™Ûë5Þä·/¢D3á“R«†óÌçg*õvMòÌ©ü:»F 9 | fžuïu+\bQ lWý¢GÉ–š«xèY“ù> 0·µßá»§Í_EÅŽÑw®¦¤¦;+P,ŠÑ-ìyû-Àj¸Pwj¤ê‘|µÐÓX5d\áxˆ³4nÌ9pÞNÖﹸq'´ Xw‚õ „jøLllà àkð¬QnÞýúwáŸ2§ˆesEUh\ƒzØ3j¾d8‹«( *xüjÄŒ_aË^6#à$é‘݉Oý úcÃ;Yp>ñŒ¯e÷t¶·ú«½%?H{>$|ˆ“£mßG®m*ë“ǤþÍe¯ÈÈ_*mÆûD¢³æKC¢êqë a½&J%OçvnÏlš®ŒÄ9A,‹E›‚#9ŠœSžþÅ‚æ+*íÈæ\7ì‹ä,¼¾…ÇX«w' ϶°Ú-„oÊ}"îÁ©6.æ¨*]¬G"o ö"pÿ|"ƒ±®µ¡ë”®jj1€ybVLz³;GaÃB¿,¢3õyÙë9 ÏUUg¦Xè~ïˆÕe7ÖÝläã Âøê,ZCQëi¡Î5÷VìµäÄ4´nÉ›×;ˆ>¶«„Ò{¿uDéÃ5–Z#ë9ë-´$ç+ÚÒÌzÊmS=üjS®–C`¦:ÀZø˜dÖ¾^ÀåÊe%8#U) "·ñèìEÒMÔ:üS v_åÕ! ÌnÃìuï‰~–ØìÉWáJÊzݳ˜ÝðÅ <¹ ±%à ^’ëü嬂fÈy !qÌàÃÌv“FV8-|»n@V‘ž¼îcíR’³‰ ·{ššø /(¬)ƒ&Q1ÅËýD£yÐóe$³h‰¨¸¤ôœÕž=dªƒ£Î•ô‹\…æá –$™¤}p µ¥TÝ{÷>gmËéº;uWG©Dp?yê" ííÞãÈ|-©å_ o}EäX,>²Á18œ—®&«œ§&â²áG´%y³0R=;7å¹¢ëg‹øJOË.kbù‰rµ=±‘Œ ôB¨äÏ­ÊSñOŸ{Ÿ –YvÚ}¥©_ÅÍŠ`G Ž>0‹xü{/¸m‘}_q4sIW={bÑR8 1¾M-[tÑÍË^ ! .3, Rõ¬E„®õ 4/Ú9Âkk¦PraA&8èB„3øåàôŽöëJ]eÉ"<í2V©[ôÛªïÅ (Ûøš¾jZÔkd~´í[ 'éµ>ýÂL3óqÏ‘½¯“¸µ§‰¼×-»Hã¨A·u´Í[u‹-bt(³ÑTGb˜ìõ ˜ÝƲDqòiáMâ´ÑkÝv*Dß-•>í¦yµü°g¸—Ól Ž}·Ý'³®-‘Ú‡¼HŠ®êì°*F” •|³"?3äq‚] b\êÔÃvÆ(“f;ÉàŸ\é~¿íhD³?۬ї&CŒ|G½ùí­—Åta dÌ.èß„0@Ï-þw…›{l( ëZ¿üY5vò>GLN¹s¿MR#±ÙR)¹R;X¦ðÀýˆØÕoÉ|ô’&›ÐÒ.¬kî#êó¹,%ÕVg•hjDB¦ 8œÿD´ Ú?üKæþ úËnSO²uÖÙFÓór|+’_˜gFþ­óÿØÛœ,T‡î_fÑÙYi¨ â}  ñ¸DB2]Óþ @ äÀ5Óqæ ¡ëºêI¯ÎÁcJOŸÜ¿Àç–ži¿Û󣡓,u$Bùbtm ~zÙàõq{" ã .á}'øSoíW¢óÙR ºhî1è±6Ê}'žÞk"®kñ‚< Ù3lú6PaIpÑKCõ½ºsmô™°áp¸øà‚9?úC[ðóÔUÒÑ1‰(w±ë ¸ã~=Ì';K¶öéÑF>Ù Í{‹ßziጘ[½•¡7ØŒ©ƒ–Ü:îõù­±v¤¥(®N¢·‡¾ :WÄÓ÷ÉL1?dª[ æŽ(õ êéÜOÁ‡wM3Y"KÒ‡1›—ÔêÒê¿–Vê5AÅþepû¡G(ëKáÕ™NÐRÀóëvÑû$dæo• W/*É.ní°ž5VÁÙÒln¸ì4Ë¥'›•U/ ÷Åšc —õ<û%Öæ¦ðB¥‚CðÍ M[Ò/ß_0¸›•ÉRÚ±¦¸U¢ê®Á¦ÄCß§û*éÕz®í2ν·o©!¡“ž*Õ¿%ÍV4Ò§X‘§ÓŸŸ›}¢Ì #¹Á*UÎ=žDJ»ý¹v] 1ªç_g—ºòCïUT¼!ší‰yœÙHŠ%%fVú¨Wó[?z.F"nh»¥í¹º ™¼]Lˆ8ª“›­NkÈûõ‚½Q¨z }C~oÀU]GW^Å[ÔœÈ#æâùûGàF~76(+DŒø Ù™ŽϪËÞGpL¢C§ÛÜr…G[‘iÃ}pœå4ä‚´PÌE›Kp|Ø5ëé!—ÿq³¬ªUúÀ)`…ãæ¡r!‚ L`¦˜\¼B B¤¾xÊdk¯n9wòµº#Õ¡ûÇÈ\¿‰hͽ'bú üóQ­ôZÁÀ„míÖg5å¦÷™o˜2+ðXÄþÕ^¥@ÅêJÝY ºÅiöR¶Âï«ïó#Þ"çdm¹Y­øþø*jˆ]$6×m‘hhäîu8îŠE&Õ*ƒe ‰6q‹Ç2L¯þØ*utÌ.“n»‰hƒ}„KlK$æžÓ[p(%z³58a̤â" R胢­þÏ.¥§ãÔÙþГôØ«‚‹7×®‹ú]õÊ&èe^P•…¹¹eî$Çþ¨ÍíL„ù¥=t{œ‰˜àŸ6åWV üJgL ØR¸ðÇG!ósòeÐê½=Ûànú±p>QáŸxpVدo1¨a/©ëì3qçã§NÓ½ þŠ9V—€{0ø(G•ðw¾#ó-ÆÝ›ù4c¤8fa—ÂGþ[4c¤ƒA„öNÉ0¹7Ñö n6,è¦\PMŠ/pâpJÖ¯8讪ÃÉ—åH…Ä0J[”3‰±¢’%1),Œ«³‚Yä Òc××>;r 3AºãñH¶¯=6òvµˆ9#»’ÜVOü¾‰vqWÍÿƒ- xÖ­ ¬rí'‰k­Ë˜™n°n›ßaÙ ™àmÞ4èôÝš¬¾âTäD’Vr':S}Èí¥õÉ¿3åG­P7í×4â—0Ò‰¬FUû6R³êžàmbY•D ÛBd“êøàµ‰yͳm¨Vï!júòä¾N§å‘ÔúSt©Oƒë`á5аiO³´Üg,HgƒÚ< FÇ€Ác"©:Uù¬Â.EäЛª!¼P)¡Ñ6¹÷{:Ãq͈ÑN9É`ôG¢HJTGÏx؆L×bÈÎÍŽ¨Ä¿•ËÒnGl.Ö¿ F-ÛÓ’àKä.-ÄôÀuòU»!5Ý_ì>:<ÞÔt5Èró(í¸d¤¼š*¡Éïÿ®-ÊÕÞˆ±] oVXØf8ÞÖòsAŒÅŠpPùÁóPÝ û+ñ}‡_¾QÑÅé”Ê+þÅ6X_Ñ—Ã3}Ä)7ò Žù8z!ãñš†gÊS¡Øà*UèÅ…^*kã÷¼€R†pK_{RâÑÌT¦ºÔ^÷Çj†”Ï[‚Ó‘ •›UËfï©Ì¯öHôøåìäâŸ]Ë̉B=€BÞû!aÏìl¶#0Tôh×¢? Œš1ÄJDæ2}…“Ì™À ê|‰¯0á6Vš%e÷c±IÏ>Þÿîéè™—ºñ‚7Š“—¸ 5ô­DùÆõ‰Ô(ªVß8œ¿‰ªœO1Ä ôbKÍœŠ Èþ: +3Eþª¤àœ>‹F„Q–ðñ¶o„21î52¼¿ë&])Œ×\~ÎË#z‰+ëJòê´p­B­I°á'šˆÑˆY ejêtZ¾º–¼Ò @¤1}æBÿÈ÷÷­PÙo‰¹±,ªZ4ã:"ЉBE;áZ:¶}­JªB£²¯+ 6p}¡ù='ÄC›ÜŒlÌî·‡Á>R#)°Ñí%$Øí ¶0ÝÀDyCÊdS[¯1lˆcâÊw³Ë£Ü¾×ÂüdûyNDH® ÛGúÚvVĉ£'Z‚mbõ3ˆ”“…“EÎøYL.×n}†‡¡hû@U%4R·9jj;Ì|u7š¹øøg³ìÕ I[‡vxÄ pifèx–ž=|œ„KbÅ÷ÓLùZÝ»ã^μ¯^ãÞu½=³¢4:e üÓéw¢f×ÃT)=c¸¶îN?²[L>`G<œÂ~9KãV-Í~š¹"¾RJ×]¡†æyÜB¸î- ÁHLÂÝïl•ÕYCÛ.G¢f/˜mñÉCô-xHOmÑÖíw‹‡zQD¿²žfÑɯz9ºÞ“'b 5è„§.éê7 Ðê-…/D[‡ôãL¼€4Ï—À7ÑY- ¶­¯Ç´TÒ³"_;G—ò|·LÂv‚]ŒŸ~øz}÷¶Q´ ™E Ùc*‘*ÛÑ‘ü#I+60ÈZØìµ:ÖK@guvª•ÑU´ò—JΠ%]Æk¢ œŠî€N«ÌmWëIø Z—©Ñ\1Ä+QAj ³í(¯BËÚê–xªÌvìwÈ­VdŒdŠË~ Šú»äLXeð÷ïO9 +¡°SßJ’<4öÔÞ—” –†¶‹‚®žÇ˜U ÚRÏ;æ9È0”‹kP^ņÄW½Â4Ôh<€›ý£ §_FÛÔ5¬žXÞÄòŠ¾Ä¿ox¿ZÝ¿ µ¥lB…ðQ£!8KwT{='4K²á_F¡ì—yº¡YûeÛÁºvkÅR‹‚n_?Àªí÷\Éf‚#À̹JòF6¢Ü`…Í÷”†˜õD…ö2ôð˜YRýÍÏ4µÃ|×8¿¹M-RÖI<1]x¬éÒTðˆ#X¾Àà¢Èú¡Ä”Df·úçG”U¦WÎ켿yTåù]-O„ÔîŸooø0‰›Bleà\Á¹§¼È"üÍéå“á¶ÍAdg¹sÝQ†EžÚr*µèT6äásHÍt¡Êb&ƒI¬WÇNß¡}ά{µ]= å-žàºÕ«T—.¿ºˆHXñ9SNÎöXÚ0€Íœ­‡³/ãtŒsü´ä÷Ô¯†ÈlŸ¯“­Ö>]X©›Q¦;Ez2FM"ƒÆÎè½$ò¦%N!6 ·9Ìë;¶ÇÊN Ó"ûó8¸Ý¸0ñíT¹’3CÉm‡4åÈæbý´e€b›—S¼PÑS×o†•MࣃóBEz‡R!ÿ^0©˜TBSœ³«ð«¢ÎåÇØt²ñŸ$ý|j²_Û$Z`d¯6¡£õ.䣺ÏT®ö«]. ¶t ýíeÐh;ewÅ"Ur&NÿñS³h#cá$½j öÖ÷)âʆ âæwŽSBA㡜æåçɽ‰òzrç :á:Y@ü·;OhEX¡Ý{!Åg쬲H0©¨Èjž0»ïp9É«©Î¦,V&bÎ÷ïLO!IõX¿®¼°Ö kò;ˆuìthâÝ;LÕ?]ááT úÂöRºÆd™÷gŠºPFA-iºÝý‰úç{8ó2ÏúÚj'aùžˆCF[µûÅGÁb(7Ô€»s‘R ¶&õTmVî”K=Ìé·¤‰úâ󿊱rdÜå µ¹÷ÏðÃ×|ì¨èèÃ2äÅ|LváÁ8‘NWß$4Ž}#Ž£ªÀ"ö³—’¨ýé<±cÈ«VئÀ\mÖsDþwÌ#]·b^Fžƒ/ä¨~ºÆ€k+àö=Ï7P["š X1‰ ÂÃ7ôÁñ…kÙ½84àת°!a¥kÙrðjžS0¨Ü̪ø4ªˆ.IÁŒ…}xÎŒº‰DÒqçþÀ€ÏWU¤Þ®ìéžïð…m?1îÃo”·Ùø÷FâÝ,4E† øãn¯ðLù¶³à¹ëëh/›¡ö/†´v5½¡¿íi#¬AFlÀ̱AÄÜcÿÜh¸®½´8¢ÞÕ @ò|«Ð­\¿ pùÑóbg?Òß½5ÇŽ, {³.I¶º¯}0÷Zô‚N’ 3¦Á>{Q(:+³ Ÿr¥ýØ£ÚGVÊn7SȲÙÛóÂ÷3Q#Ю©CçP±9ŸŒ"ª:ùG,b”84ý´rc-È踢ñ.Pu¢ÚÀ1©ümFâ:t±•(sÝ&IáÞ<%¨üä«›JH<±6}ŒF‘µÃe4é¨s*1Ûú4žÀäæÌx¹·í*æDY/ïŒB†f°$Ú› +ó“E¼±ô¹dÞ[e9´z5³CY tq²ºÓt¶iÜîv,°°!™‚5¬9Ÿm ëp‹;þ_«ˆžÖµ¸Ñ²Ö ”i¶kS …JáùD| ÞÔ'RÚ!6IBí"‚Zå•oLú—MÒe-‚Ø/ýÌ»8žŒ\êÿÂ0?}ð:&w¬g׳6œ¾ÅEã¥Ìf™¯ ž5&‚(5ü­H7èV.Ž+ÑPÿ ª}=Î È-L å-êô5lü1r¸×§Œ@h¯[·´\·ýÇÁ*âüF\/øe‰‰8$¤è=ao¯©ïo•écw3÷å)Ú¨¤¸ŽÃn‚ú =e1•ªSò¯¡dÓ¹x^æx…¦C}ikÏxU|5C!þWñpuŽÏø*̇v¾È.oë3ÉýÔ‡f õ:Ãi--R†ÁˆHºh¥'Ž?ÖŒÊð\ËaeG7«^È@ ‰-d2$m<´3±d%$9‰ï,õœñ¶å>d±×ä–õ¿LS¸þ\‡÷ï.ª’Ù[—iL¿HEøNñ&˜ªfCõ 'ç2å[ôªÑz€Ùõ½­ +ošq’è:¾qX–^\›/ýÓšw11Í ]绽*Œ›•ö:Ï÷ƒ-Tþw } YÈùX0SÃk?C»£zšÈÃ0Æ‚ØÀÿë¢æ–ˆÈÈV³¦Ó&ÖmUŽHó/8òS/Ð-%øm‹' —SÂJs°œíÆPçí>‡í¸)\C×ÎZíN½ŸgúÓ[vÈPtØY,ÁEµNe Ñà[]ËSËÝÖ(Úèùa¦â­g“ÿ_𭵊1úÏz씜ï ­Q§½ï°DMK¿°Zu^IuúM£Òÿà¶(½?Úî¤9*›$Á³nKª\ÞâÒjQ,Z /Pé,<Þ½æ™%{‰Xzäše“PšøïÉ–8¨Ê?ZªÐUÏX@†¯ìt´6\ûµd:;Á¶Ó+qñc•z%›Ÿy𠉶x_–º¤„ÿÚ© „§¿S=vOv@8SéÚ:×ïî`*lÔÀ޾½¡h\(YE½ŽýŒºâÁ#Í‹û¦ŠOYÓ—c_ÐXªc Æh¹:[§œ÷Š]Ó2‘ɆÁp÷­jÉN1Rî.„ºãáBMžÓÀKprɉå½¢Ln½˜F…ïSÊu¹ArN“æ:|üûL;i¢–¨H?óâªþP9àwËítx®»£ˆ“Ü·­žºѯ$‚âÍz˜ eúéo”×S ‹ƒ]¯6½žÚi¶ù¦d;•íYn}¡ÂeÏÔ…/y{Ú¬aêÔ).3ýjP7Êã/Κ^cá›ñÙ#ý„ý™nä‰Ú”ø´>†ð˜¡Ö¾{/<¤³7«Ewå÷¡>ü •W™~ÚH˜=ê«Z Å$Cßy@春í&iœm˜Ñð*ˆ½ñ(Ü4"î<…8˜šLôT σ×ê^SR8¬:Úîõ¼Ênm{!¸V#? ›iÍí»<6D&ÿêÆäa?—ŽªÖ4ÆK*©ž®ùÃGʱ¿´ì­Y©ÇFW£Pyºè2›[¸* ¹ZM¶’Üäw ½Ä2©v‰(9~h‹—<ÚØEŠª«ÎÁÔ7Be â %±mä›bªšÊ^ùŒÌWÝw.!”?µîa‹¬ªQ¶µr9EÆ' ļ»º`‚-%Ö ;¿—Ý$€êëµ ãÂÖ5ÅF’Yû J™æ\õÑñЪGýiª¥ xB–‚k²ò®çÍ‘}RUþÑSÞ¥ùnÌ>:C)®huôTÍþy(ÊIæ_ÄºÑ šåfÍÐZhâíÈÏ—V½«óàwÿ۹칆»öKù;üe”r™%¥1­´¹þ³ÃÖ.€Ó‰< ‘X§–dy)1€õ¬Z”H¬×ç`”rà ŠÊžÅyÝÅ>Eiw SBwvûçX½§B^£ç²&<¾Mn¿o¿UO}VbpË÷»²9G?M{A¥…ÔÅö[ U_¡Ò.¼ËŸ5;âˆz©¶, h¥#v³°ÓÎè'wéd B|ïÔÍÝôÜ%gäÞ+R&  šÓg¿ÔKk$ð¦Ê‰}3MRÊ`Ñýݵ!µµ8°DAà:æEhÀqP6 Œ”ê- ¹ÁvkãR*ËüØçMòS xlöÎ{ïYô¾~IŸ¹¨ $'ëA&).¥C»¨£A@ Ë!ÖÌ×Ç*c¦ãÉÎvþŽF,¶'2x½Hw9.I^ŒaºB¡p (^Ù׊NuT¥‰ÅZúó䑳T›¾lQkr§jÆ‹bmHëR¤úÒ­QYŒl´†iù ÚãC.Á#þ ·Œd-PîÜÕ|3e_É©Šfɦy˜ŠËj¤¦3¾|ìt!ÂsœÀÖ™e€üâÕÖ½7܈»µùŒêÆ Ð|ÿÇ ¸¸ÄÜ·Ï«cyµµa寃,é–\$¯ÖŸÌh îó£‘ð± …âc~ £Ênø³Tªæ‡Ã‰,ôX{ÏÒ~žÉ–ùÒ´R´ùÜ„Ô+îSð:³hÆÁÛPÿߨü†0‰Ó*ÍíâGÂxå%âZŒˆG<&‰Òf¸^(Èf-š²‹NätÚVìÐndðÓ2C<¥UŽV¸:L‘®— Iõ¼»çDí”-g)SÚ\=þà°V,–45»‰Å¿†œ¦è6¯ýŒ˜ÓÃÊÅ£ ñiúʶ3¨$f®X½¤àë Ã`0…ûÝ«j¯kwŸ]ºVÔ郼M4êÒÒV!yÖÖìòкW³ìuíÕÙ¨V•Ah:@’IÒ}ܧdCGµ!r¼º¦øïfäUZ¹F õôè~é[-?³3£–«³âR—+fz'›ˆŽü{bƒ½s¢âÂyWH!™’~ÆçÍÝÿ¦›¢$O4Ø:7†Ó5-¼ØÁ3ùéU€MÏçˆ-€;AûM}Æ]¢Ò€åú‡ðt9mBiÇG% è+êŽe}Qñêów™GÌ˺>Ëé^sx„#øxxÍt·ÄgÚ%hÝ”A'ÿˆSL˜h£ËšBm-»¨°ÖïÀëøúKXŸý±‘BשÐûžaÌÈ¡†vAð­óAF¼rÚÁ•iRÛ²¢eš1\A§°×&W%ïÅá´Aa ˆWjŽu ¾´=ònB“³}8P ±c!þfôqaæüïãVÈ YæÝÝóÐTª “·8´c`Ç4&Ùç±µÔ? 4ŠîÈ×{x+éÉ(ŽS `³s;ªaÑ ”>!&ä–h~6Ѷg+¨hÚ%gÚa«ÌXQgm|òŽH r¢CS&ØS·Z°Î1->í †°…L¢+àµvO.ã¹^—$JÈ€lsqC§¨å7$4uØ W³1R¨³%œÐA¯8 8îjsAñ K”ro°]ÕCçãqˆ#²ö¿Ô¢-h«3„Q–ÕtH’è\bQBì0yʘãoγß>^äœ}e®<©RååLÓÀ×BÄÛ×®3Ì/¨(—t'3¶ÒéN¢&r½øS"žw¥ú;·“­cFðè©bÕ ùiñDU· Ãó…ý†À~~Øô’»aŬ­ñÓB¥Ú•ãÿ&îï¬ÖFßÂB°êžgѨÚevµr¸øˆñZëîµÒœ7`·]åLø ts-66²´¶aˆñq?¼蛪9ç0$=ø=ªšvvÜ:[ àÅÝé3š½oTúœx`ê·>Q4Õž÷Ño{ÏvøAM¯‡Æïåÿ©WÎwKÙÙn)JÇÃׄ2…ù&UtuÆ)iwñU¬oÄoÉ®ÆÌ¼ˆ©F° £°Þniô¸×ÑbË˲2ç k(6¬˜‰­Æ·Œ/±#9òØýUÁ´{âm<7&çy§b[a€ø•à—.¦Å–Û¦g‰ÌdÅìêk#"8èM³‡(úÜ>„x樲ú÷?Wñ8"T›è  î·ÇÂ}C»%L&¿Õ’Ìi>œ8B±ñ :’ãiîˆ^2¦Â†}g‡ïZ€ÞúÊÏþã¸HåÌr ü&ÁÖ™šá¤‚E¶a&¼UÞjèy\ve4¥gÓåWt šiEÞà hͤcA,°6†o%ÛÙräJ«” ‡Òù Ê)’ï@?†R2'¦/A×îiY˜Ê2ßêf¸ŒEÏìcJÌ“œ® K2ÒÔYÂ×"zPâN'ô™”ñK#ø3Ù-=…RC1š¿é³X'ˆHºðév/EVŠ`I ;õ¥˜¢½µ½½?œA±bŽ ¶©‘±¿;xfPù°ô½3ÍY J¿´ê¼©õ¤ÒÌèJ  %?2vd‚œSé—£ú_>`\C&RÇ­zxÈvCZä~ó` (U9ú़T}Õ4•w¹ÐÇ’™Âf_¦ú£ò¨ÂÍ‚R߯•k ˆDÔq WY§2ơȱY#Çýysì y“}[L†|üAùPú6~×PuùõH rµB‘³tÌÌó±jÆ6z6Þ9sç.òIž¸J„DZ £JçxóåIc0ßïg ~ÆM´6Ò áŠ (ì¤Àø€Ò¢qÆÒŬ§ÑiÏ©ž|ÁG:4’ë d7öFá|iÕÎ|Ú¡HU‰Ê ª³)þì’Ï’˜FÈÀEj\ßÞ2z¦âߎèÿ-Þ=<¥¨„Á–ÀÒàbãZü¼©]ùݳnàóbÆQ›b`ë!ªú·Bã;‰1‰bæhÄucº¼Õû®·JL+'$PÛ1ÆÂ(S!m/ci0 ŒW‰ÃœiÈï`4œã¯,ÍœYë4!NaéÐf.ÔûiM×G‰¾ #ó‹XâÆH–Ó›åP‡£h\„c [ , «mÕI`ÀÌOú ðc­Þª÷{ÏÐÇñúez:¥•¼ðÇrki=Ì«¿·Íkä[ ß%jУ‹d‹Ô;/|åà¾ùï_¥Bxæ«b¿QSí×Ëİ [É\Dé(nã©Íw¸eÁ‘qД¸ˆ'Ç<ç¤(‡Š½,[³€Ñ¼¬ˆ)°–¸›ïtz€#Ø9ÂÐEtS‰Q§z“hÝ/2]çf ʺP”ß©ž‚¦Ho\"»ÿÖ™þØ1`ü8ðû)ŸIÂT–êÁõoIƒ­`¬×bTÿ. ¾ï’ÀßMÒš “ât€ qþ¼£gUNôŒúÑY-įé¬êf!–ퟴCpÂ(Toæ–’¶ÙµÃ»aÜw*‘Ö„I· %7'.а»¸¢¯M·kfÙkysæ6ç;Cnû%£Á௯¶í!r‰ò½‘¹Û¥¥lŠ$Å×f ŸÉa‡wµËj^Ë|^Ü!dÞc6ìÛ£ƒ1{VÈê09î+Ær ¼®eÍV8QñV4Ô¼J½*pi³ÌÖŠ FÙ†S%Wè·Ës¢ÁûêéœÈ§Ü=«€¸xiôý9eùÙ;jFóVÉa]æ„W­Å´dyËÕ‡pç×Ó .©Gº(Ý<ÿ±æÛä߾ݦtA(|4ÛÃ]SKy§±¤«o¤§›!‡lòn\Bd±\×OB»ÓL“VéG2úõ“*Zk$¹P:/Üżß{ú£CZ=&¨Öæ=!͇™è1‘²'Û™@7€VÆ,ûÇ^€KsÚ.­p.4$5+ØLñR JÔ™—ê,¶,ʙۯ ßqi™¶=„_N[̰ëÌÓ+8Qv[ÏÙkÁ>©|I&*;‚ŒiŠúÕ  ²ý¼Ô#…\Àè|§Ó3e‹î Úæû¬ö…°‹V¶ªwí©Ëq}&ù4>8 _¸ùAÝ–_ÛÊëp×c UA¶þÁt¸,¬FŸD¶¿?pRéiÄF³fÔSÞOïæ“¹býѽg&yœm…͵µMj<ÛÀså£!‘ùï3wè]/»äº{©³îìüv´P †ŽøU¢ü¶Ž4̰ÙÜãœý_^|·”cÁ]õ± "ÿ¹Î¡F³Ã5áGy¸îiÔõñsžu /òô­ŠGæ«2ZZ²>=j7Ýq‘T,d‰Óyžfd«VRí4Îéê¡ÿÛ ÒÑð –õ+â(uqö¼ïVØ‘×úš€I”AŒ›.Xú²¥5Qˆàu¶Š™uõ~Übekx0¦{%ê°;ÐÄ3þñå\I„çžè./®-53öá@1éÚ=)èö‘o»…Úþ³BN*IÌg¨Î`§f=dHA÷uÐ3âÚT¢õúÿ‘šk £œîcM”Ò¯r2ŽŠkB1©›éaI†ÚígªÝ3ß-´¾—¼ùEa½1☂Y+Û|Ú 5.]æ&3UÓa €ñæÄ;`¶5’§ÝªáÜzÅñ±P(2‰j,Ä*•hÏ뙳±) ¯á·’ÜŒé0íØ"Q]k’ÏiÇjÆÞ`{öSæŸmH¦ü–¢øÈ<§‘Ú8ªAB×êl×@t8Mƒl'°’>$_­EÑîÞóÃꀪVCŠ˜Zôj3EMmʰ: ÉÅ.?.£ÖV>ò{ä\4Ì¢ÿÒó½Þ2‘=yP°d“Ÿõ°z/´×ð æ6SEÜU5<«€ó¥Ý¹øý†{Íq â¥TF3ß#¬ZgßpÊÒëQBÄmÆáQd@8ÿå•JÌ·ü°fS‚'HDtÓ.BÊÕ8 Å1æí ¥2»«Y´Ó‰Âá²í2™Â?‡ Y'’‰ä÷îŽxŽüŽ#è:é®,ÜxO±"çùôå= ðá“96]”1ºœ _˜r"h¤«`fßXä${ª’† ¢T½«<6Ç',„ëßHd Ö§%Þ%Þ̳›Þ¦E%©3¤Þ9©ä@»ËÅñ \íÛÝÆ [ì­ÿÏžN£!JF‹›Zçµ¢W£ ¡Øgü8‚ñ¤Aªã” 8. }uUfí\k}‰ÇS…ÃNݳ¾zLÂÁ©OASFî|ÓžßÄòû¡W)[ÖŸì8gï»Uy\HÝâL¼ŠÍOÐI‚ÿã8¥N¶÷›@f:¿ Ýo;êÎÃ>Þ]¢õÞž1Š­ÜœÏÄ)[+÷<úîÁìÙ™xŒ­ .ᛂoL‡À +õ7AØÇ™bÙ]ƒPh¶ Â’¡vJwÙêäÒV)ÁÝÄœ0ccKß¶ë¾?ú«@ió”‰#CUs¶-HÎ8­{<À^;Ñn[Yä­ ¬É2ý7M½DC³£áMréôR­igà–žaÑ|¤#åˆà¶á'0èïÈùv¥ÃW /¥¿²ÐK…·ð+´»Ñ¡yŹovØ-<½ÃE«"IWRß•Ëí­j¡¿á­ò.±ÚFŒ!Ì׫Ô_d°èHž÷ìðª:ÖØˆÞÙ•.³ÄzÃzµ„7ªa .À%m½2½sƒ (<¨dEÃÄ µ>9 ¥xÏî²!É”–ÀïIÉñV›äˆ™—ÔC~ %®½wy¦—ˆËô—çAôü€áäYüe˜ ¿ÀùaK’AMi6Kzµ|ù®¿ãÒ•× ÙœPj ¤ÿ%ÚÚy^N ÝþŒûÛ JVºŠŽm´ØŒÔ“_¹Yd ?ÊÉ·v×⋯˜ ’ˆØ÷å^…P¢ÔA— &˜‡B!odmñ^™ÄBÜn0pùŠº€Ick/ˆ¶³PLú…%n¨µÏŒ‡qV”`jBO`i¹M|SбTx jžvŒé¥Èç\P¨ð“ÙE¹|¿K±$&’ýîÎ4$&;j¥Ñ=Z §£xöø‰—\Ad=Ýõ´“^×KPÜÔl³ÇÀˆyÏ„êIíÚõ¦—BãwRÎñÖ^R_×ÛÒ.Åú ßpÔ2HHŒhû.FÀûrï2¾¹µ¢*êÇŠcÈ]¼W aàŒX~¤¥æ£ÙÍŠ*ʼn¯9½8Y  ë;bJFRßOžNFCŒ´w ÍK®«Òz„ËÑL ‹[³‡(RÒj³±·¡Üèpô “ºôêÍ=ÍøÙÏ{ì–3¦Ë1í§¢¾­ ¸X£î¶Ïi–ö ³.¦eU,DÕHËmñí …WºÈ'hY«4]kf•¯žÎ\xºQnàVa³dƽò mÊ«á ƒX ®DD[­gHd—ž0¹+$ÛóCÃ9Òz¨ãœ¯L,+Ócƒ%¢ãïñUÈ&Éð¢ºø$qØê /å?• ÛÚÍ'º¡k¾E÷ æ}bäÌÐöÈ·Ã` Ü%°n^ÂZ—a5¾Û§8†· ðm¡ë©~t(%ö+oÁ)™ &N?4½ð !Ho”¡<Ï.¸±u ß_üW‡RA “*ª£1¿Åð¿ÈÆYù.`¬®)u{OàÏ ~]G´gÈwW3„ªd0(±-µ-Ó;&¶ÛW÷Auš[„™uß.¡Í²_2oÝ_Kˆ@ë[3ÿ5fþs?6ê÷ó"˜yDÄ5Ûr}AxV¹Ð…“ã6¦…OÍ£x\DU2PJU/Œn{þ£Íç®6µŒ{ú‚ME’Aí­‚Y:ˆÀ9º2»°~qÔûÑ¡¡D$p‚ÖQ»ÿzÆ•ÆÜÛÅ‹CIÐn$õ`©+@ F»T*VÑ_de2{Þú¾vy…eÁÓ|`Š*±0'AÑ÷¢Û±RâBHȘ±ùÛ\ƒÁê/h» ±èü¯’‹vëwâøˆÛô÷é[Ý2rS‘°„„ÕÓzDÅzµ©Þnoªk4ckŽl }$À6·0JXÅINFXTØ W<ÌìßtÕ œ\þk{C¦$— e ™oÈLjü·Žò¨1Ñj³€Ö£ÃŒmÂò‚­Kƒúâoð%•:{P ’oýß¾öï\†)ò¹áöŽ0"Ýi1s®¯Í0-UG­0 ã±BŸÊëÙt—sRÓW—Ì‚-Ñ6ò‚<`\\4!á»c¬—¸Ý¸\"¾÷˳óY¯Uäfßv—KrC­¨õ•B§ÿW|†hr§S]h¬&YÜô/7´lÔ$˜/¯!‘e%¦þ‡c¥ç=Él³b°7,=+sYÔ)Ô€ ê3êúéqrI-Êk¶9@T²¬¯ëÒlüÈi¤¤ÛgÓ€ôc£YWKÉþH·Šìz—u½Ø×TçÖšz¡ì EþÐÄO!(bî/Qf]G+Ú“Þ´¦®SÿJï% ? A46¨lGK!¾3‚gŽ1ÉQjpâ-…å¢ËÞÇûAía ÚÝOÞöÑÎvàÍ&ƒØ~ŽLëË1±(³1£ô½¥ ¼=—æ«xŦh€[~ð{…t ŶœâõŒ­X„ø¸¥§5ü°Bkã×@9áEQä¥b" ÷lèáU5±ªÃܯ£„“7HSy•ŸØSÄj§Ã»ÁuÓ ú»8ÓÆ8¨ôX’›ݦ"â>÷>uÉaú‰üÆ%4T³:Ô²S¢¡ö2×ëÊ&ç£S"'8 ´SrdSU—Ú[и¨ q‰¢Ö)Ý5¤mít©FU¿Ï¡ Û T3¼W¶{(öŽ'¬á¾íÞ3÷ÉðKs$õí¤Òýò9F­%YeßbN›­£Y×ò®<ìÐ`}uCeµ ¡–¦§º¶Ã®RqŠ{·ÉÓßÐwlxàiµ/é> §bÐoåu‘³…µÙ|æ+uØqÊèÐ5óÃÖШ¾ÓïÚf¯5Ä}- ±&ÕTZ–îùó¹•Ó<ømh<Ç{¢îLæ€vtÌC –B¶~MœA³JSxù=`Ú2øÙ1KÛ lÍj™G¹gm;7ó¸j}ÀÖúLÖkažfÖÎ{Ñ̓ºîŸ]š@³¼¹yJ°¨Ôãb‡cɰK ½ùë” –Ù fòª˜Yv¶¯ SïcúN´?2ii˜ËDßc1LÝ€ËLJ$4+ó VQ Ýó[(Ð$~ ZÖ„ƒ€a“/¬2³Àrs2køÁ8§]¡ ÿÑf>ƒé_yCþ®¿[}ÞsÌ·î|i>“¯;>ƒ}jqT bN«fî@St#­Žqy>X#ú{ÒÁvLÐϲì5 Œf4`c°½&ôŽ~?‰>ùr¶ût³ïàÆ‚ŠÔ˜?$(»Ð×Ϥ2±ƒ}f/[¶¯/ Yýh£ñj‹ÌAØÁ~)ò|rÁý¤5.ÑÁÿ´Ð2ŽøpÖ•°õ+͸tn*Šý_ý"Žó©Û¤X±8ò³ßË}GÖɯÐ->Gc‘¿ˆ‡•^&ìêA)4¸öϳG´×%,•ÁM¨ˆâkÃ"G£àœéST7 м(¾ñ¯išŠBUß˪ËmÏL+²,•ASG´Ù•­Yó‘ºG² K†ò`›¿<ÞÞ5?ô7FBÜ;ïÌŽùZçÞÔ‡Ò ÛD6u±ùˆ +2ƒmªt ÊZ fCºhß/~üKÙ2ðO¯˜i@½ãxD{Èá•­Ú¡é©$€îÊ}”KÆ·«Ó`ùƒ;øÐÀÙRY¬ïŽß"oæj--ž’åHOȾ¨ÿä›z·9„ý6tSãÌ$‰âykwê¥y…Ø&ÀŠž¢·§O»¬™pñ×Ù@ï(] ‚¦yP!K¸Ý+ÊkÀŽ¥îýNs¢¶ï-µª¨§à‹™ü”.fôŽÁ#ˆ5L~ ‹È#ìË €œfšó'࣌£8eÄú7;îaà n„…¦dÎ2, ׸RÑÇk3ó1²ib«)rª)Eþ°UͽpøyÔgiKuÑ ü±áJ‡R]Ûû+*ñ ¸ƒ:í¤š”Gn¤»ß>Š)/ç‹€á‡öµIÁÔ^¶õ鉓“¿³{ß~"Ì}­{IÄÒpÛàOy%É#cŸ×Åteê=àÒÂfìëÙèvùµð‰yN€_ÑXËJQ¢¸0X¹³˜ñâ´Aiü÷“ïÂí¬õvr°6R‘@ Þ€âÔ§©Ôðrë¹ îëMíK,ÔÈ[Ø}}âwÛ´vHïáÚ·nó}ÈL"=…A1o·Õó\üƒ«³÷)áøW$ûL§ÆÙs”ëtò{“çƒbq‹Å'˜<Ë&ચy§wº¡«^E¦ ô<²ß¡Œ‹¾-áUB豫P(³I´CÛ¹{=¢ßóé'MSïôßê²KÐ9@K-Û›Ï<È“üãp‹Lt¥ÖLÀîÑZA-rKdn­Çtw(™æ1±9Û…ãÄÓøûš.”·ðÃ`É|´~uBqC´ÁÀn…µk<5—-Ö7h ù’_;4ß}œéi…Æ­q]s“iÒ}‰ùƒådÇå2+âû«ƒ†–?= †Q€æ'ÄÞÁ»v:ÇÚŸ¶qyR.Ø‚×Õÿ1¬ƒïÅo´Ó%B?_q£;58¥=9Õ8%Nðâzzø§%œr=šl›™ÞÉUò¡«jûefupxŠ?6 LíIår°+=0mÉH x}‡(nÑDC§-gRÁ«n˜ƒý„²?Á6ü,õ»êƒ¯÷©Ûx;û²òQݨÝWn¡*©«‰Ç§ùë—úG¾Ýïû‡2y›ÊŸg˜c×^,-+Ô×<£<KáçlIì¾È!ÀòhàcàÀ%Êãe$këæ~È^ææ”¾V«Ÿ‘fm7—–ŒèäV¡¡~®ùÕ.ÂN§È\¢U#©qˆcŠø{#–›ñ¤ëÂr!mL.¾ò|[v:wsú‘¨r}ã)ða}4½Æ(i%ã“ÈŒ¸«‘v<ª8-5›dÃ[( FÞt‚B(äà<¾^¿³ç(äÒÛ‚ËÓæ° , Dâ^œ¹'-܆—¿ùež> ýw™÷yzÒÜääL*sP€ƒgžaÌÞÚ¿IG2…à °†úãp~íÏ‚»5æ1Œ4ÿ ôêÃÓ³áa2ˆã:èoH¦º1ûë#Õð«êÈJ¯€¡PP p+ÃgÝæ½ÀùNb¤¾¦nYéð™Á¤Ÿ¹©ü•‡÷"òG¯µ rÓ:]tüEõòÊõ£‚À$mOÉ‚Ldè ÜxoQÃy¢Óʀ뢌Z*šFTž£*† fä’¶®­ k¸¡«ÇygÈ–xøú%C2’øÏ9z=¸yÔ?‘LóØcƒ¸c—†-+û4¡FþwF|œ~«€ØøY粕,nêïPR»ø+çiQuC¤9ò´Ì‚ÎQïûË¿ÙpbqC.Ÿ!¹ÕÌ´òËðÜèù&¾ŠáZ¹€ÎGdU™sÔ¤ PXN™omjT÷ÜßYs\‰ÖÀëí42+":'ÖqsÀ}Q"hR새¨^Ð*hÊÉ)õ˜c±O懺±Ù÷œ-•çµqû˜Àèörb÷y€wƒLïóÍYCjEŠÁð¸ãü戨ïÑõ¿Àñú­  8ìíª£¹d̃x¯¶oÉ#%–á=#.«õ’ŒqR¨zw¡w¤…iƯFÿX_ÈSààÍýÌÊ–ýZÕ£×™Ø÷š<åO5Ó Œ‹ øß‘«ö0sNkãfâ¦nsÿÓTÅÀ/÷«ÛR‹ú-“XÍyUìôïun£Ùüeþ~@¡‡…Pˆíoü¦£§'’ð…ü1¢9]­Ó _;el½³>CåºPf[ß-u#º¬e æíMÅCNÚ ´ñ“îe¿§@ÃHhÈc™žØ­üâŒt¯D5áT$öÜì·³ ÞËf±¸I²#·ª«9Í)I—7¾_¸^¦!~ˆÉ,‡üZ† ÌQÉÛDªaâõ÷È>ùx·©²È úò·ô³ Žeu0]tô3ãtÀž~@ñ¨Í„‡+®U2ß6’ÿX"_¦2á,ýŒ!ù±è˜?ü¤ÿíö²ˆcóU¹ÏQ‰ù(Ê m[ ·å=ë±YÑ;‚ºŸ`Œ%DZzVBJçø÷”ïÈ{GK§ŽÆN¨ûW`ÄçWµÿr;~x±.®l´@`€',®kkƒ³% *u|Q£º@H!a©D;F"ì# þW›õ cFßÝ3þÕÿiÎK2…ÈkªgQj3ﱌ[‹‘©l¹ù ¸’g»*½n^"µëXˆ2½Þ—ÂJºÕc 1Ö1 ìÝÄýFEacäíu90F5¨ZöŸÙê[?a¥û1ÿ/ € ÄB’FwŸ¸6±dÓÜÓNÖÕ¿‹9í3äÙR¦¤éŸ×Xæ%åŒ`7¯FV§cRfþÎÊHX(Á­ù©^¦©™§Í•[®™g%š’S•c×›àð­¿?’zðT2½a¾uP[=—q ‹‰w©ì…zœDí’vÈ„2ù [Òþ¼µEËk¢‰¤+ zíl=þñ(f]¦¹Š-xõ žáj×»bb÷ÖMúcQYÀ¶(í½ ¼sS(Q¸ù*ì3•j†ßËk'½²ïFX÷°Äˆ›„µVÔ¥tÚ1"ê×’§ ‰QÈàÎÿúû‰û)3kÿM½hÃü=W-£Ž>2üÓ e›¤Æ­•0ÛiÒfcHC`7™(X³_EÍÉ}ôE`‘5ök’–¸02ÆUЦèÄÙêüÑΘIj@†÷†›ôëÅöK™Aº[uØÖ—ÚŒt—¢á6v¬vàš=~¹q}ÐR媿í¸hÿÿNª$p}ô«–r8Îp›C; ˜œÀš!lü?%@¹ÿî|ØÄg'íÝêá·‘[v©qW5QãoH{Ö `ôE$0"õLͰÞk4;"YwóD @”âO)‚>ßÄqÒŠÃÕäÐçµÔuv_é=ÞÜV÷ Å#?b9ÏçéeÊ@¨-tþ®fÖÔ›Ñhm#MgAž±U‚uh[Õ:‡.­z”.@Õ¦0šÛç·ŽDk™oŒ~[kMY £ *à°lÏÄ4ªÊ*JEšªõ–¾ß.¢‘n´pÅ »4Ù¨‰@Ñ@§M'¥hêS‰}<|XüÓ)þát¦×2 y„¢?‰õTèݾV®w®P>ª`Ûô•¢Rß2ê…æý¡ùxHf£°$÷ñÒÂ0*–÷™0ÿ2Ñïüª fb!ÐþEg°VÉϰ!·HÊÎ~_÷âÜø!«g@Ùéûhk';¶¤‰ÈÊ¢a°dQ z)f#vÜ1H‘^Ñ42jBP‰ýbp_àYz–í¨áÐÀt¥‡û2º[~‹g+NÄye[©g_' ŠqÞ6ä“@ZÝ4T(r$à¹J-$æq/­&P;åÎ<Ï^[¹_À› åyï{èv¼«®µš•A$7ì:ôwÔ\fõ©ÇÝ»Šð¶ä¨ªax•/õEÃ?Ü›òñUGO/¶,XšÌ|Ù…—~}øµí?ÞJ.?„è”"šŸ_i21_ ­lL³ûPgùÓF."GZ%lgµÄLTCLº¿Š¯%ëéeû;òœàž½ß m'D4j¬Ì÷Nð%ìó˘XHÛúß—ó‘åêÕ&§š¶ ô‚Ë“+¤`Y–AmÓWS6I¨w bÔµDYºÀ¨yÐëB¡¤xC ‚O/¹¤x¶G6OÛí4¶VDú w~€Šö–à1ÝK:OOO®4í{öõÎÀ^ŠÔÌæ¥¤ão¥ØBÒƒ46/å•hƒ˜\=ˆQ`¢lz/4é-$6H#—#â,G>þCµWíãdêÎ53n8NêÍnM:Q+U¢ýÅØ¼:•Ø\ݹ2t£½¥O¥ŠÃ‡ÅšhœhcÑh°Ìe¹à‰J}Ó3y.u?G†jyÒ| /¹.Š–r`¼*èo^ø=»T ˜Þ´~ÂXüyör¹ÿöÓʸ†íŒ• òþà®#ô(YTp ë¹f+Ä7N3Oͺ‡`®F ÿ¦@C#¬ Eäc~ <þU¸ €³w°Œà{8™{lÁÅ—ûAª¶ß7a–Qö]Ft…kt$…S£m%t$àC{‹'o×GÄ3~“7ÉM)Žæ ³3fÿÛ©Ž,…èíµµUÆ×Db°J³âᇰháGZ3º‚/õ #¬ÚöZÁôÊU®ÂXn•Yì$—±êh™ž# åÔŸ:§l¢¦ùÜûœëHA ¸ôÉÿÎBg …¬!ñ¤+«ñÌMKX©'}£×<´9ÕçÖЙÙ®@üßÇMæ¸X4NJ†[XÈï»<"õ /ð²@3É_Š¡–b‚y„Šv>»Û§SÄñý[#¹~aË\öù®Lz÷záüÆ hQó~”Ù‹‰ÔØÎØßçô-sðÈò0fZ¤v/’‚9ã.d*È—¸ÊÑÂö®gù¸MMEáãz¨n$‚ Z*R+¤ÃÞP9öÊôƒFÒð‘à<«à$x¶¡ÜÊ3´3ΰ‘>6çìoRæwì´Èh9Û‚9¼Æk…Œ|,Ÿ‡"Wƒ2Œ¹ rè座=P½¨ÔîµL#MÉ»|ê–Á½*xÏ_UÀ[“¶Ô pœA[êÀ†È5jí¯ÜHæ¶}©&9>ÖÎû ×®.Ÿ½B÷ÜÕD‘\*Õgèa@=¦R_XC`ÚPÝ-Ÿþ껋e†¹ P2YÏnÛ3)äÏ@2=¯§st a+ò.Á*hlu/ÿÒrÁ[ Ûyç3¬ÆE|·UÛÏ;ùi­«6÷—´‡ÆÀG®–2êýÑÉrjÇœùjø“nqÚ¾‰ßw¾“W•°´µJ¶Ðì7¶òéØŒ§BExR£_ßÿHÚÓš‡“ù›š;™ª§Éƒ<(å(aƒ’ÄÜb éÂq&Þz]Ž8hÒpõ4´?Ý“°æ]7 ¨6q­çNÞPxÄ"!úŠUŽÛËxŸ"«k "Áu¸¾K.kº¦h± †‰ÑŠž©„imFÎý-éÔŒÂ:|át§ž¾æÜ®±©¹£î+„r<œMtnÞrÙ²»cANñ¼&d¥CÉŠ€ÛÛòÊ=ɸ;4ï¢8éVÞþ`¯rÒç€wP¤g0°LÞ¼XVhH—ûà¾ííTøGå"^ ãq¦ìž¯ê€~ƒCƒÄf”ž›À)ô?«ª—ý|Msí²ÓØÄ›š„~OU˜3¸_Çš>Í#¯™€[ÖÕ:ž:I¯Ã<Ö¼®~´Ç„*$m-®+pÃÒ¬1–#v¿õÉSõ+ieŸŸîª™Ï@(ˆfŒ#¢…äÚ' ·º°Ý™ÏÕ‹ §\ï°ž˜ø,š< Ž_ª‚‰#>g"ª?| a@™¤‡qôRPj^c2oxÝ»aÁ“C€À6Q#Û÷‘™ Eë ®¬²Vû0·,f*¥mÿð²06‚i+v1/±£:q2Ķ2&O1›3Â$Vç)€ñþ6AD=ç/:ùÇÑ`yê>Ã#§iª†ÞjoÈ¢ü2@qÆY¡ŸP—e5CÊ”ïùÕíIdö0 °‰ œ--ò&ä×qáS(àì'bá[ãð þ¹¶ƒmÐYˆS)þËJY݈¼«çe!€ †…›,’¡ªó˜SÊ"ò€¦ÏW#0â…ª±AëÅÔÍh›/?Ž¾Ù›j^ïÖÎqÊžNy ó´XvM²¥T°Æœ `e똰)úžÞ6j&1ÕP­"[-é4u“êvÀŽÚýc>;·á3ÌñCÂeÑ“ˆ™òTÅîü»uäY¡¢¹aIEÇ °0 xЋàÚ=_¼Œb§Ïö6çk¼èèI®ã÷]$ºTä×ÂCÔ PdÌmjAn?“ 434?ˆuЦxQŒÀ$Á›dŸæÏ*;ìAíª÷z‘C#žüQu«ùå2®>ßÒv'÷vb”ª¬î+‹`\—LJ=ôj{ŠŠ%—™=)yj˜ˆ}.[2ÞŽx$)I>Öz<…„I8Ø‚³ÂÀ4E@zUÒŠª H®a…NØVÁï‚Â0\a4‹*X8ÚO侦[O¼åý5õã5 ñwTÐ:u/9<ÔÊæŽîà ¯ÌÅz³° pY9行ZÈoSÔÂXhî‡7?R?2ŠÁÇâráÝÍÜE§cfû_¥Ð'šìy&ÙKø6Š¿ SN¢ ·íÂ7ŒùÁ¯Ãû¥/)ë¤_®îzø¦×h ;&)›‰§W)ç,;þ àxû ¡!ådu¾€z•7Ñ.ÇqHf/xíÆXaõ¼Ñ‰Ø„É! ÔÕÙ½£6åßËó/Ft{I×È›§ãC Yøô• ¨øHÎ@u¤nb%^¾W@r…²Õ“õ”Ãr´üÀ• wzú‹°4Ì7ˆÔBYf½iãà•Kjˆ€‹LºÁˆK¤ hÈy軬Á vP>ÚD̶š¹ŸEžIÉ逦>Sܵ‰2U®u½LÎïìpÇ“¡w${F›^ó 8’þ‡š:>’8+¼’«$räcT„Ä)¬ ä+c×"d] Ñ ·5«iúùôýí×FëåK—ù¡}a±xh^Uçò›/ÅòvŽÍÃ:ÞxÀ´‡d—½^hŠ€¸Ëv¨ÿbT¤¦ ÆÒGãÞ¬¯G±*€Âíú…ƒ4"W¹më3‡–>>ÃÄçĆ¢n[ÊaÕ}hš;{P‹Þ.aš6ý)‰‰Aœñ¦¸GG•1Öâr„àk÷!æÐ´ûØâ,ÌLéÅZÉÖm~ŠF_©2ä°0•^Añ”œ¹fÚ–Àõ8Ó©\®¤ÔàµMzrõD[ÓÛžƒ×Òœ5RµTf m–rñòZ-1P¹\߈§=Fœ—\ôÞÙwRÊ®ðâf2Ãào <é+*a‚ ìÒ…ü3þjdÀø@4+Ùdªôúêwõ^K®Z¯ö`_ǼÌ$÷eNT‰2{m©…±-xG8±®$ùr_‡Þ`vŠnÜŸÞ‰ìßD¯~,øˆˆ2™b<ئ-0Å¿¿V¾àDâ… PÏ*ûêKŽï){åäÓhƒíPBD®°J3t]Ï4‰Oº(TôŸvb ;¦Ö;ìúØë¿pýšdÙ“èd³v÷,^ÎÇQÅͥ㠶8¦ ÃHÐ)~l§]å Úç ?C8˜Q«Øhü ®þÙmEÏ×QfíxË™Tb€x¨ÈãTa îqJÁòG<êÇ¿x…hÔµ<…ÿö§Av Ôõ±»ÄCŽ ‘áÚ˜oºráqIÅWE˜¨_^8­û÷€!?´±ºÞ‚ùú®·‚Äýùå² n7×LÙh<uhmú.½ oa¡ÌèOGr#‡¥ÇHïo(Tkœ9®âD™Ï—«OAælaHÕób:ýrÂNÁìô;;Š2“aûû±|(ƒí%9ø u΋Êå#FäšPž¯Ü›†80ÎïØsÏÆù#”1É[®! ï`ÃìH“[íV£žçh½š‹¢‡­”¥Cœ÷@pÍC*Q*¢½§°dr!÷€[ÚTøX­)XÝ’ú‚´³•Š=èàß\§çäeÆYj†_êµiY [½«õt?´„îFÆìÈ’ß,SÌsèÒo0­Úßk ÷\dþKºyyDÜ4p-1ñYÿu±\:}!«—[{õ.>Õ£ë&/-C½A±q·šÿ÷—h}Ú…âdL‘4±f’t‚8èÃ'ØÌ©@–î‹y:Jåñç8,|ÙJTg¶ºˆ™T»†ÇöM úªØ‰v‹À›tü›RÐñ SÂáuê½{6Ž„œn¸¤œC+Óß>jœ­òáâ"p=®|¾ÿ{¾ª‡ùÊý–ú=àWÖNF±ÉWYö³>$‘×~ƒytZÍȯÚwO| jo¨O¾™bå²Is¯ët2Ì."t«¡2Ü7!§­«Ç˜qü€+ÌÎ3´xÙA^a2;Äyç61ûg€UZ®ñÃr•‰*áý»þŒé΃ó`?Ѫ æIKôÒ“’­$R`îÊΑw? Ю;Ì›£ØZÙìºZúB¶yÙ¥oZ´v$sé¨ûøÁõæQõÌírÄ—®+´=úœæ¤˜Pî–ŠM±©êÖއÀî–az´ÎEtÎF±‹tjÖ˹Ý:æÆãøMÖ·”‰—˜²ÞJé¬Ó%8™œË ª\‹Ä81$ìÛˆÕn’jfè©ìú§¸¡h Kh¤8ÀæÔ’˜À6ìß2ºú|µ5[«»yºZŒ]ãÿ‚Ïpîç ¦¸Û1³CÚѲޱXhíB"y›Üë‹ßýéÕæ÷\\B6¬ý¨ÿÌ €ö ©‹Ð’•~ Ý1\æ*÷ƒ8í–RÝžŽAž¢•ªIt¡ç—žò»S_ߣ*ukK gÚ.»”N•§ReÐ ~±A/äêcø^g@à(3í.wuWg&êêm[1°C(ºU¸Ïg«‹àfØß™ZáÌ‹EF ñ›ðº5±5ºŸås†Oçów §TS¡¾Òß[ð5ç¥Âñ5C¶5LÉì Xå |Œh óBì Xà×¢Šä."4^3šëkŽú''}&Ë6¬µÇÿ~ŒE»Z¤*~žø€™8 Êl[rl€:/†rH­qG‘×Rç4ÛÆ¥íúµWFŒµÈc¤·Ñ·ì/¶ÍžsOXÐmÍ©@·«ì«4² ¡kKMàÀ«¬ãqÎ0¦Ð»ºµkÈ¿ $‰<Õõæ3e»«Îì€/µƒUxŽ3„[ùŠRJ¦¹çå –mcíÉGeħ«ôÜfûÕpGÎ#MÅ!Žü4Ú€1í¢f=Rv±‘“m_ÊHî~Ö'Ë–FôÂÊZm>ùåŒöMòÝex¢)âEÆÃ¹€™¥zt†½½Q³t‡‘äŒOе±ì ˆ0u/cKÀm’A¼+z}¤#Ô;H¸¸,¢;Ý»ÚÿKQqòÚ“eXïeFz¬-äÄ»?UYè~l¥HÿGý…WñMûpæÙ½ÁNy¸(V²ÖEä)L`ºí_¼>•„s;"ÖH÷þ×Ç_ë°Á!­ît^/¦v®.¦'%„A .TÿþÌÞ«|kSÿ]ÖIÔýM¡ÿ¤%z®4@FiÓÓÀ)£ˆôßH)Ä=X†°D&ÁöÞQO‚NBŒ/ö¢†u¼®¾øµdˆìS©-˜è+úœgÀÝ>J¶©Jî€îƒ/wEÁX2À©gЦVþY0ýWÚŸ·czÍ“ó@p24L¥é>g|U&¦J;v^»”!d7~ ü… Ù9;ª'?,Ha~ëž¶FÑ Ð†a½Ó\Ö”ºì­Tbከr|š¾áò!Ö',l„²} âÄ­‰¨!ÿ~BVÆ÷¸ç½ˆ²ï?y1Bj´×|ÍaÇñå¨k´ñiôÝçXa0™i+`4y÷.•u_†&åc<-Ò'»p¬}†ÇLË+¹Ïx²|Ö|þ(¸ Z½Æäµ-ÌL®²¥7¶"^›=ÂÑîëÐݘ°üsG^'ì{L2ŸIz܃ÞÌdÕ z¦ÉCv¨‡ÉykM'o¶ÞßÀkUtÛ*d³Ù.»i¢—H¶Ž9s~U “ƒ¡©­ÞF.Û•)Má+z“8ö¹PQHy•IÏ’"@’ëlÌT}³ê‚™ÅO†cÜ„@Xªüæè¥¤±Í]}žrJâ2Á¹¤kdOˆ·˜_ÐoY~§]lEu-hw¬$RùjN›Îñ¹kböõ޳g†í z<÷{DL³÷ïü(Þœ+‹qN}›ÁSÖËú~[.)±¬ß’%*ùô«"ñ*9àÛƒœ` 倃áªÍöÞê ;_o„îDiùÓþKI?é@@¨nã;ÐmâXè‘k’JfûÜ›aw5g)òC¨lPú„¾ˆ´Â_ ”l÷èŤÒršhq¬úü {µ×¤† àãš_î}Hœ!O½û]ö^ZS.-4ÍÆùYùÅíÒöl=Ç‚üéó¥zÙšx^Øô¡'by‘‡Ÿ2¨àh¼Ütu½qÅöž î’ÀÍc@k~_±Þs^+ÔA¸?})é€<*DgˆÆ%¬}GjSv1êðxëñ©šÚ2óΉ<ƒJM02 €§ÞOÍÑübjJÅ!~̱º>FÏt/i6æ"´ìt"ƒ0pV½¡â°µB?@žú·ÅŽÆÌN=ˆ»‹GmLæK¶£uùYœõ4™H6iñÊRáeëS<žÛæ¦pɤ)w|¦Zk¢m, ¸ïuðlƒQyõ?yS.á] z™b®¼|ÀÏ+íKzž-Hwˆ?¥BÌ÷‰\Ï èCP£TG®¤xUŒRs¿Ë YÏõS6ÅU °¹•¾ a¾¤ÇZ[’To~è –y‰r¡¼ßÿÈ­cˆFŠS^-MàL¶F®h¡$Nϧ›'Êàê¦GlËœésMÒ‡ówåÃ[5ËAKPQê({hLFgp-×Þ™/HzcÏÛ³5–l°kzÃçÁw_ÁAȹáôR}-°‡Ðá™Xª©U¡¶s6„é^Úwúÿ <§ì¢4)Šà#ë…ÐŒ'BžWëLmT>ZÆM'­ÉîD®Ö¥ŠVUñšz!¬OÑDé ûU+{ès“®˜\Þ).Y 7ß|bäÕ@›Y”›¦ÇÍÕ™a…£]”m¬XÏBãz­î\À# öíV£ÎX,ÄÚ’S×R(ƒoXF­d@~Ô0_¬r7kº[ëkšœ:3ðø Uîfa€ÐQþˆ¢nƒ¹îgPïB«8ö^DRs¦ÅÇöëF3º[B"ÅéÁhÓ‡Ïá/”VÁÖ‰¥@ásCfûðá®þíL˜©rQ¸~õlpaHæ”ò)DÇy/ÔámóB=›s&ȨäÊ;îRêò† ³8¶zb'^ÀÔ¿õ0em¨ÝŸeù°Ff« ð/²üuª[ÐìD§‰¬¿ÇJ„ãk±AJgü˜KA“;#HZi80,Ujç°uÍ2Þ6ûßZ5ivÞFºöô‘¤­åþ2tJȘ°{­eãJÞ{°ˆ9¥*Ì–¿Œ……²òø~Œq´8&z÷wÕu=@T5 Ä«v?Ù¢—^DšuÅEMÓzÓÒ/?Ô´ ü•"#g¤Ñ)Á*Îr¦¢à‚À¥ZGm“7kÏJœ§5›ül’—Ÿ©­óµLŠ>o~ÓQò ð‰ éöãÑü¥.³°Íjº4p _¼².Fm‰ ‡ùµ’téË @úm\53 Sb/¶d]óýÀÖ WÍ[0y‰UnP„‚¶ÙgÙûlÕÕä¸"Æsq˜Öå!„8!Ň>UW9À2’zhÜ™Õ5s}º©}½­Òw ¿HŠñwøô5¦¢Sì•“Ý»¾–þK¨]¼ÚçFbsãæ$…ò–ß¡2ÊM0aд@ø ’+šæ\"™+ªëV¾—ZvUn‚}÷"Ú­aäø„-ç@?±û"xøb¨àŸôãó­{A<'¿" ,œ¬IWU6+ r óÚß'G3¹ƒÑ6oç]ÉÂ!Q~ú"ó ‡"þ,+ëýíòF+ ÇSƒÈß–Ùcé0™à,3Îçë}§ÛæHáeBð%¡Ih_†„c®ÃLHÚ9øíA«?A.%”£ÆÜ‘‰ÒX’4CQäÎiKV­ÎP‚YÛž´'÷|Pù½Áð“ó5†ýžØ Øæ –Xi÷a*ŽEÄÎú>*Ð*1FD’T°ù]¨£Áâø™ÚŠØá²ì,XåÝ8 ‚: ~=ÊÈ’ŠÁ~—Âa;y|aï !ÍÀrfÖ£È&ŒáúÓ0ÈE›nQ§óﲫüšS±u΃dÔÔu¡Èæø•˜³e´¥Dpÿbu“œxñ4¯%NfDy÷(.É‹˜œƒ–á°wðÍ=è fŒÊ±››s/%› D ’ íYÚÝåÇ!,‡q¥þ™_ŠLÝýW(khQŸ,QÞƒ݃^~²%`ÅPf (° û’³™"fê­ˆ1C°g”Q2G *x{†ç€÷8 Ž¢'&:acD*1=  £h ×–¢8–Ÿ1ûY~ó'~ªö D’º~_¯3ðÕ}©±—/¨oš„?Úë¼Aú´5]ë™\XöKý¹[ 7z¥œ—¥´ýç?lÎÜàüY*+B±ÒaˆÄï­Öá÷V-p¤Æ¶ñ«ÙtH®C^õ– ˆDâá:Ùf¢óæìv¤@ñD{ë½av ºÞôþ‰‘×! ÙºÅ޶Åó·ÜÛÌíÈ Í›ˆ£ºÞ„Þ=Ys²#œý½S㟲Œ»ÐŠpJZLÖçð¿ÒÑÿŠ(¡ôŸ¹³oÀ¤Iç®w[ƒ„‰(lé[=A½n%æÿ£¸5Ø^ñ²Q¶™éw£ßLÊ䨞Fs"A-þv0 ‚<øÿ™¶\n·®áb¼iêàAß+ì\†»Ùjgl÷³çŒÌ><™Ó©•éä|ÖËvw9mdWZ+H;´$WFöyE ·~«Y ¼çY·üŒºÉ2áÒ¼"©XÝ‹¶ª'T<×3BkpÆ…­׫ñÞ…ªŸèšš»,-AçGtF=^ÈËSc•ô^mïÎÛ»ZwÎhܾإIDVlJÅ[<é£`u#y;ª"M’ùH+éýØ)p–^=ÑÜ^[½ìÌj”þÿe3¹+¡3$‚é)~ä»yì—LRÕ6h{ä%übo` ZA‰l•ÄV'Eûp ˜¬~îËÑ»µ,É*Ld¢j»ã>Í™.ê-hݾP¢÷óÀ²j šüeÝÿR˜oµ}§Oºó{<.ßkÂŒìYFú0}ÎÄbO Ö[^­þ}#@ ²Î–3ìÅB%$h K¶ÆÂ#°ëkøò¨0†–gâUò;|^×S<ÄaÞ9®-ÕââûIèz•°Âé1Ýá.HÁZÐWÌÌŽÿn ° ã²‰9K{A‡Ž‰ˆò™žý~òzêAÚüõИ,wB)5'ܧÎzÉçòç€sà§ßœôíûûªˆQß”’mߦ™ˆJe}<¹šUx´ç½u¸ ¦)DÅ–|þœH± é£l‘òÔ°Š´/²Y u¢f1,U]×`±àÄ%hüK%<ŒÖ#éÍo5i¸›„+÷]ÓAÑ!±ÍÚ¬¼Âáò{[øAAô£#¹1»™•Yÿqk~A0¨ØÆ-½nëG<4®Jo+ó¿ý®øYÁèä¬sy,=„¾ã‡™¾ p+7ËZ÷XCî;›¶ (9Ê mè óÆäúÎ@ÀF'Ûú«y§iÏ\-8]*ú˜_°ptæ»-çì?îúpZò2n\3;[{Ð2§Ìi¡&Áá-0@ò?è0 ¯Ý ®/ lÚéHHöCN¡Ì(H‡xåNaÏG›åz‰Ž;]gÌV¦§TÍš~ÃmÙ•ñ¶ñ?VÓòôè+LÁ•ç’«¾º¾1ä௻2dóÞp$’:ÙÌѧTd³€u|äÃp`!Û]‹þ1|ïhA‡íÕkJ©·ç EÂ9¬Ÿíé? íB¨wç›ÏA«@9­»€ ®U7çh Í4õÏV)¶áÕÙ,íoÚæì>Ü»–)#¼Ëšy[½pÆtäR8¬"æy|9ŒýÎˆàŠ‰A~ÿ¹5!›žoI‚yáß—$¨ßžÅÜá‚B¢•b¤)ûÌDà&ŸÍRÞ.RJ‘.³£³U°_bµåL¶ÿML çæô Œó™¼_È.`k.°ìsÆŒ(G1…ʹ=Ì©¨î³¿€Qƒ2Ã]úÔSäÿõª î%ö'DwÙ¡y´ÅÕ %jZA¼b ¼C•b›Eu+½ù¶(ɦU\–ø‹ßG—"ˆ0ŽÂÁ sŠ‚.P¯Ç¸ q^›EÝsâI ³@˜ MS‡¬ @ä­¨w3ø¬ HÒªd…„&Ù‡kãázž}÷¾k„ËépË]°H‘– Ž£¤‚DQ~ß%‚š|k(x5ç®2ÄZ¼M50—Ùf\2è;‚,`zt¿XŒ:V]CCmQŽOélrí1”_&·Ù¿ÍÙÄ3°¿jlCœH›ËåCªõûÎÅìvÒÓ1lfÀ¥²12NÀ€wXüqÖWz@+ ÏÔc ¯x¿…±5ÎV› iüÇ[5UXˆø=o¦n8 9ò¿Ùï¼6a¾ÑGßþ™E®™`›«€OÆ3)¥‘» ÆyÄ,ÞW̶«‘Ä)“f†”dµʦ‹Û;ÒéíÆÜ_šs"2X# nôvk£²ÉD69–6?8ó¡s¦IÅ}²›ÖT³ÉzÞ×x¬™p ¦(åéô!-z*Lqú/VKëÁ·Å÷pxB‚S™Û¤)›&„·ýõ²wBHi-3,þö-9Z†Zø©>~çsO"õN«QVªôtÄ÷Ø2³K‡¼ÁrL?§kU_ ;ß”í1JÑÑ“cT(\‰º{ÐÏ£V[³1Šó_tüw%][V" kfÏ=¥¾øñ(¼]þ™ˆtEy©G†3XYí&–›©ZfüMm­@i†¢%Ó7Iqï8°†ˆ ŒJg¤/ÍT½(Ê:?˜@]Š;G¢1€RžbŒkka)øcy” öª—=R>jBôÿ…Ê(÷&U&÷ÀF1‡ôHØ\×\kKÐD(HÚ£ç#ÿÐÔGúmð°ø_@Ô¦ÅT´íá£9•=´r¬è”¿!à xlç'MûÆòÈê^Ó):¿¾,ˆx[rš£'C­4"Þõù´"ÀÊ ôóÝrOky[•Ћä(K9ô3IøÞ´¼—oj‚Ô¢øiK»"&DgÏ'l½Ñ«RÞ¸˜­FÛ·å~yÛI‡òÎÊpâÉQ£¥¸Í1¨îï˹‚[Œ'”Ó‡8,~LK±}±a+Ò®Óv(E³†Ù•ÅÀXi¸˜¡¡ÄQ´n¹·n<'›è_Ê$î–Æz¼GD,|(»¯“ŒK­ä*ŽP3æJ 3µ· Öí|ˆÏUçÙ×'ž§Ü£§l(èò%¹8IÓ[ŸLÑlæcãoùƒEüϋMÛ]ÃkDùÒI{Å‚ÞÁÎ??…¡þ ø2ŸùÍ;Õ¡vqÊàµEʧP W2ÎþÃmÔrÞêÝཿ¢åM Ö’Z~râôwu‰¼ò’IZÅ}‚3ì!ÂI=ž»óX3è2‡­J¯ÔƒN½æ´ýö” 9‚¡Ã¬ õ¿Øß$5ñÛ'42ÜLùJèÝAi^»²ZúÍZåš VM[iv}ª­Zá>Õ )¸â¯o¤U¸Ž^È.$(Z Ž„™o¿:äÁUœ«¦déÙ2šï6gÊ%ΚR”lÆCœzRP,;(4žQâ®Ý¹dnÝŒíNî ÿiû¿pCY° ôØ4ù#|‚Iât‰§ß—*ÇnS‚Ã÷‚»o˜hàM8†Emt”7@ÙYcœišéòúe³!ÂsùúíÕÐé{©½ÏO‚ˆ†Ùû x—Î øƒæ’#˜‰QF%³ÔÛ·ösáM` !7·öŽZW,µZˆÅiuÒì“Bë{YeÊwÒ9×I¢¢<=üT§ûUê5Rƒ$ñ6hçþávd®~7ÜJ¸…Âæ¥–Goñ<9ÝÌ—%”ð66µw>Ÿ žs/%ã¯zMŽÃ&ƒ;N¢X¨tìΠ‡(ÖM¾A6"2~"9E`låÚ³ÐQù«Bèq•xäË­Ä{ô¼¢à|Ž#h@õdtd¯ÅDÍ[rF”Å>¡„.±æbñbMì )50 ¨ ¤üpÆåVÙW’ïãJ3Öüoð î©ÏúV`¦Là{ô–µÛÑüBëþzE²óf( »‹>`Ѐ“ÒU‡”ø´'Ú˜b ÷Ÿ·ët¶4Âèº Þ­š ܯ`دʗÆÄnáÔ¯sá/R®!ÂèH:0+j]¬ÕÔê`*W&¬¨·éϧr;úŸ¨Ì±C}œæFÜi•f²©²¥æhÖëÄOØèñ?×|©O]sõçÐfÎ'GÇU7Þ.µÍ¾>;F­ÁÎ4)=¥—mû¸V!zé ûÈ󷫆;¦fpz,þ—Y ~å^”Í i/'¼Ö®Aç2!':'„@¡’'+8 aG+­Ä‹ow3èÆô~[]múÊY‹«ã£tU›ª3øT•¼zIòø$` Á±wý]Îxª¶¢àá¢0×ì|9à2uaëâ‚,Z®\169†¼½§ðKEçØÒŒ“K88âÊ` áTN󭊵òãé¥{ Ëp1t{áØãˆǤ´ÔB4DDÔ¾”!ô>_#æHe›}zÀ‹ðL%ˆ{£A`qÉ÷U†óžˆU+8—Yô’‰:ÐïKßI§²4!õÛó·¸ÕO¢5ÚèP Ñáó–õÜÚ$*”ãÊüÀ=f!t30¬‘KIõÉÁ±ñæÜ©úŸA¤ï‘ƱhC‹)l‘µ%+´‹a¥N'ÑcH9_Æ4cØо ' Ñ+Ò”ÁñÈŒÓFyݾ8¦6¦êOvw)/+à) ïyë[AÞÊLråÄ–æe©MúÆ}¶æs–ŒœDç³£óSrÃÍ»oN!yWF sJÜ®øp †ÅJª¤š¤?µA‘n÷îï„ ¿}ÕA/—å…¬ŸZ«²•+|ÎAsÆ[A…WÝ ýd€ÊKÝ¿6]¤g²`®»h“óûl§ ?±§]GíPïï|NtYŠôä~ÇH¥wvYÂ(Ú¸pHQJ<úY í!RþÍ·ä?ó\âPæo–.X‡ö —auË1# ÉÓj#w!w÷y´Úd<ºŸvG“Qó`«ñ kH~²msZç©ýLMÀOåq¨ªô(7LŠx‚|qJlëCº-d¤†ÁÛÊ®Œ•ætïÖDê»y*ÅâÀ§jt ëÚá¥Paûs6ækœà_Xå9NÞ/s^_œI÷iõé1WI½h:ar]ûäp=޽7¨Þ‰4VcòþrFNA«Ì«°b…Å&rÊ ÎNð]ñŸZÐÛø;5÷ÛÐP"¼~9Ø£l·% <_±Ú¤½¯ê§¡é‚ˆ‰ÛøüC-ÿ„Ff*åüi»ìÛÅØfZÛˆ¦%îfô XÇq´n‚Š"+Çjvå¦mTãØ ß gRN^ãAæŒÑRÚÏ££™\Œ¥Ä°n¬þífÎÖ6ëˆÖö’%ý(¥ RIy¤•á‰ZžG1¥Šjþe\½â©S†Æw%àáí[,;Ë9û°y!O=õX—Æð‘-&æ—‰ RGžÉYÊ? ° x俞ûÙ ßÙQikU¤<î6èï‹›³@ò!¶DV‹ö¨,¤‘.ám…q(ÃèêÈK-ý¤0K‚‚ ù`œq…+'ù+´Ó‘Hž¹sõ ´bŽÍ‚l`ŽäUÚ ƒéÏqÞ™—‚ÀO‘§|¼%ÌTи¦Ò >Óqm¼òšœ?Lm#‹4²«e~Y5?’ ‘@É‚Ñ]é…ç3<pòÏ3"ý¾õNGX¨ŠRÁ0ÌÀ¥ó°\í·£du…PGJk—tëI"¼<.¬aI×$:Žu§}– —ÑÞOf¼Wìôú¾ÔahYÓ¹´AÂ"ììÉ©ü()Óm’`ãaUÝR5s³²LÖ#è'\„gt8ø %æQÏ ‰X^]ëÀ솹ì/Sc œŒîbdæHcÔõŠ4gê$æe†Å-Ýþƒ]"@£ÃÜ™8vÂWJYñG|Bó€g#þŒs×¢¸½uyX€sÂO—¥;Þ‰‚tÏûE_Ã¥j-Õþ Ú‹ðý°å«…Í.²9îÑ|ÕN/›íÀ3Ÿ’ë~<âé#ó)¹xglíQÂ… •Fàf AU=6¡.ìʦ¿û]*"õTäJà4Sg¢Ø;þðó`NS,S{Î&È ÖÏÑÀÛ{?ûu¼ ºÐÓ‘o˜¿ûsa.¬c¢¢å6íºÞǘ—¢h¬IS×Óÿ€Ž[K^(Ä¥ÿu5±,ÕŠ íš=‚Ñm¯Ž1cŲÝ4ç¦R ¸p®tCK¨¥<Ý÷€Ë«Ê3Ьt0¯þ“Y‹9yzŸ„2òÏÇ:î]ù©$ú*b¯;j¥±låá+3WQœTÕ¸@Á‚éÌ6O¯OØà‹âñòD{[jí ýÀsÖ—˜b¸à!Ÿi%e–BÛh,£îÖõkŽ[àÌKÎ)¹Â’\|æÛûKLgLJ;+B‘@ÿ+„R[Ôæ¬ÓÞ·éW0¥Ð.a:€·¡”W!&¹ö*[mY3uîÓú¯ã_(žªV,l°>‰3tùó›Ý•«B$Cv,ªE|µÑSS‡] )öó…!fÐ|µ‰Áy;£M'÷A'ÏÂ(ý.ÿuÏb×ë~N¾# S||ë&â*¾Çùú$e½ ä 1øƒËb+^á½àLòÑþBc~¹tc $Ë–É'(ñy$V×°HЂ’ÁÑ¿ºk‚”ôs"·úL%Äš½ yº#¡6ͱì½Ô×Ewfáßa›&Vºá6Šˆ æëËÒ‘'sõ®™èlò ¾3ìl'9kl±Ùè‚ø˜€H<³{ÐýÓ®\xàÙc @sÇÙliw¿À›`…¤¸GFÛg-&á:û0¬wœV©^[¢[' !’(.:ŽALþlÐ y¯ý1üig3O°Ø'¡À˜ú·ïÌüþ,³²Ñ8øë}c´kÌêGñù«ýÌRe½)>àÒÅ >DýˆÒÍZn·ÀûGã({rE"DämYŒ=Ùñ"=xò¡GÔLrÀôŸ>Õò™å2—iceÉl‹“q%P?mÖããºþa&‚©ßí÷³„PpF„é–uŒ¯´¨a\y.2ÖG¶½òÅ‚+[Ê\ëÚswýKtä¬Ì^¦Ìé@Ìì4R‡F;\.WgvaR¢–ï<¾çØ/€Q*lczÔ°B€´ꮿ¿£šK4¿ú 6­º;*",޳6ßÛÌ­F펾ñÈ@¬›úðµAÉmºí³½WÆ+ ³&XŒÖÄaäkd]šPÏž<¨4f[KFšùÖyK¥ª¾ G!äû‡\€Ž‘H/ ’úÇúâµ<ðœB@ ÉøÁG¤ýR3ÁP}kÛ—‘­fpÛÃüæ=õ¡¡)‹  S¾§|/›oê‰ñ3ô†øÍnMsl\Ž@¬eq¶YŸÕøéµò´Ôàž¢yFû%„ î—Ò*¿ Mî{ò æ`CUûDçæª‡Ê˜”õîX›¬’›x®ùl$Žt؉E¼§l!Œ ³VŸÂ|,#ueæÓ/®_I`1ŸÇ¿G §emêåä, È\Ö] î1˜—¾ûΞ0Øg«n–7õÐå”/ïÞ‚z5kíøëóŠ7ÿ¯™ æ„Ü`ÅßÌjñÅ¢/ëÓð¨1y!ȑ֫ÑvÍamž~lx{Æ4®• Nlã—²¯,¨ÉÁ¸Š[ÝçD¡¼—9f# T*[D Lw|˜aYU3ùiÛDZ{@‚GÿÞTc,“²WÕÁ‚S)ÇjQáä©ï”×õErÒøëÂ-ÛÇÎh_‚r´‹3²Dœ?Ü&†¤Ž¼Ft€wC²ÿ±ê³/%pFúغ,{´@?ÕéNçä5åó=^!€.#õèúpà|®ÆžuÂÒ‘}÷Nª•âáÄ BT»ôFL¢Ê~JoÕg’¿¦ù*c>Õ¼¨9-@Ä’¹âBD«}uªÞ:SC¨ §yŠÅO;’U u'âÞºÌT̺ÊoUhzhX3Jb=Îmb”eÖäv+<ȈÏx}@ôÏ:„úe‚Îì),¯6ð¾îf—ñADã<®ì©--|21Ú[¿(Ž´ˆ™;ÄÞ ÕËgC6üÂE]%œ?I[4TF hT´à±3Å,wÞî¨Aô#Ò^&ÉòïnVH’O‚`ã@ÔBÔ ìì=hÞ~Ыø3ýsÆÐTäÂl RKÌ£e3Âp>™¼o“:@£ü³]yù–v¨b«RŽB•iîÿÿ²äQŽÀÞ·õtDyìË©så"–Ô—SdÈDãO$°vè`5ƒÒ6ÜúwãvSNˆcÑó79¯ÊØlé^e²‡ÃnwË.Ê‚²À¤Q!\v—º ä"´¤ÍŸs[’þÈ”ìIÆô(ì!›æX›ã°ëx¡4k/Ü ¡G/-î$RÔŸ±Ÿª¶öx+ ešög7OóòÏ÷[i,8æÓë-O‘ç¡&ËïéÌy×¾"ÄÄnãïíY}†¶…_‡©;R ŸÌÛÑÈ5ô>q¿: ^—êê’žzÂbì•»>âªÉIÆm†í]Hp5ºý!']É(Å j¥¨ö Qaؤ~™N·ãˆüÚ?Sžn¯ÿÿ›®úæØžz¯P›0™e«‰ÜsfJŒ¨,öûÇÝ^·O ©‡f`àÃûÞÁ•Û0ÚÄd¤wÃ!PLJ>þÛM6‰Ý îõ1&TtÜ/ãh5îKŸe& ¨RQl¬µ5Ãb;ÙD󦺳ñ¤`‘ø6ì/™ˆc×u&AºÈ6ðÔÞê[£w9êQÛŠ¾ž^èó,>f¶ÑuÀ‹ *µurï=ƒ¯Š=:U+š’‡Ò‚7ƒ¯‹¤Ðè3ÜCí (Üý sè*”¯Ö=›ÌÆÔ£ ‚ëEˆ^WÛ!mÌoѾÄNimGjËœí×>¾³È9cª¶Š0ÍåÇék°5\¡ûëË-B£èE¾Û‘á_šßlÉ·< .¶‡ÃúD Íké,–%CÈrQÃ$Rùu”ò•¤KoÆ‚Ÿßé¼°Ê ülcäùy[áb*ÞüªªAµ ¢ÜF GIéëùêb¯Ã 7+ÕþÆÅ¢ø¿À öB¼‡–Pž“º|ÙÏÕ” =;؈kKj°¢€nј=çáŠÜ@61ê훃 ±>Ø(ôFVt”ÁpÞ@pÖ½itã[L%ƒ"‹'Já›5(\’*iJ0eÖßRòááá#qκ2ÏAO7æ{‚\ÈŽSä×É|ÑšóTä(sÕ‘£ØUw jBµß ‰Z"ˆ‡lj{Ð_tJL0ôƒÙýD´ÝA³?ÿê#…úh:Ãá™éžÆÙUDRÂÆñd1L»Qȳ&m Zq'úÃ;Á–•ױÅ"²xcì A{Œ}aØtµÜžÀ5Lõ°hꞇ‚3u‚‘æ<ßÏ¿iºçVIïF¥¨³QïacS½²ØØï' %Ñ#'ä¿3ŵÎEÈ]Ït.ù¥ðR  ÔÝSƒ!k¾I(=3Jk WÐf&ñ¼QlÓ–Á;6›MMì/NXÁ,è5Á‡ßÈgLso'gšÎÕÎ_Þ¾$ A¨}š6¨À@©îÛ¯Þÿr=FA<×)½øEQÃcn ¥þàu ºBþ$¼[D9ß×QmïkÉâMBÔô„”XŠq{Vè%ïCÁ¨â6³_wÍ«Íy>þ`,ôÙÄ©j 'ƒ µýSÀª»ÕÓ¸Ež>JìÅk&± ø˜¹Kœn /+¤ÊI*‘´²:þvMb´W¬“«y0¤ß=à³&ÝÖ¶ŸIç;‡<¡)7$¤u‘Å4xPA“`v¦&›è½x¾R4sX°z${Ÿ6Øè¬9â0äiAï˜IŸéšýÒ…¶¢ÿ<ºVÛOÈ®eAN;A뇴nŒ/Õ(ã’(¶ðRÐqqàÒžÄ)9«4™¯iÂtªF70züÇCЫý>jk&5KS}ih?š¿ìë'Ï–5 C,{ 4+ŒŠ~õî<@ó }ðáÑ7G¶©ž$ó<ýB˜Ü•œ]îcÃ×-¼pmÕ^ô…H3Îߊ§j š%d}Ù,…ém¶¨â¼{‘Bk]¹+ðÏ¿t&Sò‘ãqÍþ†;X„<¾Kª‚#詉˹÷!d)ñgÝTÊ“r‘1ˆ›äÆ1jW°G5¹³ûŸŸÍ88ÁÇn %cÿ¢*ÌÓyñm8ÐóTˆ$eAeUžÕ¨f›eWšç—­q«šÇDÕö[nnºº0*­ï°A8‰ëñä-„þæÈìn4&>n.›ÅuA ÐVgÂ=;ÚùïºÝÁÈåäýŠ2\ÿ?›'÷ÍSé[¤ÂhCþÃTŸß¼l<Ñ7!&ÃW…¨AÐäwÑcO¸(ÌfE“šQ<Ääë\x÷ì+ˆ›ü²ij0ÆGYL¤Î|<žÂ÷BíêÐh¤=±ú›†߉¹ä„i¸þ ë;7~ÔÏñ¾ÙoˆSFú–”b¸“NHkïØ "!J3þ fã@†êQatí¾SqÞ ë“ÍQÔ{%Êxftyt"ñÒRw¦#6®lF”–ÊÉw†ÂiС.iý§ö­Ã´ç270 /¬¾›2=ãK'ê§µ<&NH|sÅŠóRH*£úñ4ƒ³¤è÷ó…?ù·£žÎJ’ªåÀ2Ýð_ŠÆMÔ¬ ¯þ$HÑ;õ«Hêž>Ëh¿ôð‰¶.ˆ÷v+ðî|°÷r*·ƒdrƒij¥ÛE”–µÙ¯ŽÒ˜×­#ÔŽæ#Ÿ’¨ Å îhR@aÍù.ž[jkj”‚õÚÀÀìâPt>šê¡¸æp«8"zщ¼ÂP Î‘wÝ2m\Èé¢/cWnËâ™Ö-s ÒÖxU4t±ŽŸzýi¢‹'ʦÓ3ÑLxÿj+n$uÌÀÏ/Õ<ù¡êZŸZñ&Y.mUJÈMŽSoyTò¥•C’.bÑàpËmàØ ºô†lÙpñ ýlííjy’|{HÍóÊns·ýtI.þÄ„·7+67Â-ˆ—æÈ@‡èR''\lP_†ŽŸ¦ýF)M^^=ELkýkFN瑊R›à…’ÀúKÚJŸ¥ü4'ñ7˜\àþæ\Æ V;WFX Á#.å¶Ì— îò"az½Ò2EVWð‚À-“½åbþ†ì¤«‘ïlXsIÔŠ‹´ëøÅ1æágæóO¬ü8øzCF¸ZRøò›Þ)«¦èžŠkÝÕÁhe,àú,ÖU"YÈPq@²²#6õͰ ÀþÈ}¤6&-‡T ¥zÓ³>z é-(ÔF#J8äéòö^ªEw 1–¡_NÝú²=®U8† óØŽ‹¢§?~LýžQtaÍtK´«ðæ¤Õ‡Iª'˰ºn <‰É!V·q‹Ý-àkÓàcØ ÕJ.P¹wnmhý.‘T+™êËHLò€òßÊê5ÜüÕ®a<'­ê4׎ ²‡·ÚMYýÀ—Þ1(àb7³’R„CÎlÁJóKÎáI.¿S±÷È_Ò6~9¹"-zYE-—V Xÿ f“uÑÕ×§Z™ gã‹@Ë}•É’ ÜfˆÀ‹Í¤<åBvÅk\¨Yô9Û V¥Eiæ•<’b)ßr†€ûå°\ht“9V Yˆ%7Õñ˜©t}É€»²ieùFž€ç*ïþÛŠ‚1n ÚB`ôÉHüÚ9/í%%ø t­,VV¼;‡Úb·[~þ€ð«» šWÎÝRïî3m X6ú ÆÕä’WGRšbùVÌᦌTŒù™¿™qeu†~ùût);Ø*⤩Gcè¿{{!êôSt1ÿuõ²M—(©=šŸ”bQŠ©©£R®µXÚŸÕköy¼u€¶ƒ9g¶ö†F}fÒ€q›|Q<…2\™ÑŸ¿DvÆF€|[»×AνšPÝyÐÿp/Ù¡B‚¼ÚdÄáÀ²ª`¿¤³Úû ÖŽreÔ«@Ší7ÉŸ¯´´sÕ‡°´ÔtÍG…~J͇0óˆz'q ¬R1^ù¥õimÉœG#õ½[o ‘6³X»}Ê÷M\»òåí‰`=è+wÉêœ åNDq'ÊØ„òjÉà›x—ɺ ©¸¼ ŽUØA—'o¾æÛi>5Ü ùa¹ ñkJp_N,øªØFŒäO{‘cˆ‚áúªØ¹ü I–*ÑÅÏp”¹½o±SÌt¥M ûÔ×Ûf°j¥Úó[“µÃæq舸þ@ó¨Ëù¸y|ðÐ쮃Tˆ½Ìhåç'~Â7‰óŽ¥¨ŸÓˆÐÅ´qÁ3¹¤|è›YÜݸ÷Áë-­GËòR09û¸ K9‰5äzNÌx¯yPô’—Ôö.æ·81ŠÑ€ó@ªÞÿ²5læÍ)·†8^Ÿ]€R‚™ZOb3MÆw@p?7›3ÌwiZÖ#{°pb DÒB/ Ocø*Üis<ð#žÊ홓Ãà bO a|u_'Ôˆ©T,\oØ­¾¥‘Þ×c˜ö –Іv;Ô ä”›H4ÂHyß6ÎûNq0â<öÂonª2;Åh‘óñF9¦K) ê Ϋ¾Yg˜†d”ؼöÆ rMrîä¿*ôƒíCŸÌ™‹îF±žša[ ük©0S%i¡# ö+y¶ïb€zŒ…Åž³ÐGÊÔ)þ¡Éº!oîî°QÉW“äRcØ1‡¸7½N ÀÅ} ÒÅœ°q ³™,ÃAjéŒÀ‰h™NB¬VC¸”ÑT’ û*“pB.Ø<$ƒY_èéRäš?ý§~Ý xö÷ FjÀK˜Š3ÁªPëÓØí4çê=<‹Œ6¡VLÃ!r5ƒ½nÌy…°å-[í¤Åıº" Û¾ë½õ.NgµI™Vטøï‡eÛ¿” "o™N‘fÜadŸÉ{$…Å¢å!žz¦H=79”¯ÜÒh³¥W…ç¥æ|F½÷}Àñ4߃RšgHU` MJuU!Ï¤š¯¥‰—áTNÀVŸöäÍ«Ûíj`ii!o9œÞ*4ÝŒVj-tÊ·üb€~5î@é5ÙCÑ;ÂîØdçì1žjkÿ¢6¤¿€Ôšl½æJ¹éŒÄÍ‚zÅ/vWtõû™”ëÏKÏ“º™u¼ê—˜mŽãQ¸ÑC _…¦ß™æ ªœvDM;YŠOó–Jœ˜F›½Ù³‡q¿9Ü d{R îßúšÚgѾ¼xû³q ­„*}#–·ÈIS…§ŽânVtâw u‘ 8ÕY…p9B¼ÐÆÃ„ù>m”îÿD•ÊD!ì‘K>VüÊPœ4+îô@Íî`©§ L¯Œ¹;ÑCwßS(›âœô±W\)Æ)…ª™ÉBžþZ'ÓŒlûQ)Ð--K‰ÑôüÔ΃|:€¢¯ž†åcÅ‚í.Aé¶Ë“×fÖ(ÁÃÂå¢ 9ß4ðÆ~|ƒ€yØQ#éß1RrpÅÕÿíç‹ú«&åE 6‰®$Bâ­«Cåj >@z§d.†#¡ì¡hSßwÈVľàŠ-Wü“ëïRÃøIÝ£¡¿6¾^…›§Ðú˜ŽZ;í¨§‚ñs¦î‰lãΦ`ù‡ßûЦæå.ÓÀ1W—Ë¿Ì}ÔyÔçïË€5¼dóœƒbÛ˜öÿ-K”˃vªÌœ_@ÂÉ©˜+à8¥f’†J‘¥ÃJ´â)E¡_‘r“Ãp¨R¦@|mù¬ßV‚´Ø^¸÷ƒsËìˆ Õ¿»sá Áe‚ĺÚé?[À®Î…±,©ÞLkßx¥ú,ª’ùgC…‹E^*UPãgÇã˜¤Â¡Š‰å{½f\ñ: Ÿv90NìQ–RLðL¹ƒ½Q"»8õ(°×\EÂ>WgšúD9MŸMJ†ÌaˆM]Šüs«šÈtPt‰¶V ]zÆÔͱÍÒ9 å ]Nªµ¬ðþgé܃¸–-u>Á¦¶ÒnÔÈè5¯}çoZ ,¥pKÇ @ú¦*Ø‘J1éÖ…KùœÃ›o½9%}S*Ô À³æ™<Ú·•s&ží6H‡PÕb¸óV-ŽH²X$û¥¨ÐYCWÆÀÇ7RKGDHe÷çT¤¤ª3(F_Ì.sH½¼„Óè9v,x¤J(®0ËŒî}³à~WevQÈÁÑÎþ/­ÔTÏÿ ® žŒ¼: QœgD|ßs^7åI+úœÀ£ÿ8Î:>ÜTC˜„ ƒë“Én­Ýr:<¹Â׿j•†’@.ƒ7{˜d;6ã:—å A æ”×hˆ”,³®Àã\p¨a03‚.ŠË²Ä«í]ªòåŒÖ5ˆFýœ \¬!6^ѧ[2ªÃ "ÖöÈYlm ³ÍWÈ&ÎÓ§ï¢iw o]‚¨'=¨Ü2P–ò=°"Ú%÷ u3J8Ú•ÍÓõšœ[h½Ü—B†'ñ@rØ©‡Ø÷M  !ï˜î¸sŸ¨”±‚Þù)ú©fvp›†ºW-Aâfðß¾‹5:ëÉ „»ˆä*®/ì¤O:íéó«ăT&\’(ɯ꧘ü{~'³F-9@ª£8jm¹}ÖP(i˜eºYvƒ§",Ÿ`˜q¢_ 'ˆ‰Qý—Þî0IaI¡ã¥²EY(ñL7wÊ®ÕCI¨fvƒ0š£P§HØ}Íh|cóé\e%Hš«»½H çóMáq Æ ¹XÿÌ îÁµŒ–ƒ¡Iþßú¼¯ùDÂ9BU¬ñ¨;¸ Û”Þ:2ÍDýâÊ¡Æ1Ì^C)*‘#ìh .8”$sÝUFê—Ç:¨¯ÇþLÝÔwBÖ<£ÍñÄAÅ+HËï®8¾aÝ;XüÏ*ëÜi¶ÔÔ@¾4ühÒÇÔáâˆUý»+cߪ]eÅ:ù>‘œ¶¯n¦‹2ºžO9¤áÎ'Â7}PpKêW¬ý¡Jê{.´Ñïl£„´€»I‘Y¼ õXTôõÑŽÖæ„m?@'óýŽ.(E—ïtqïŒyª)K]C„–b­ËXÛf@â°@´Þ©_ÃgÜÓ]Üê{ˆ‡ÅçÛ\!Ì ~>!Ñ·IüF _ë]`ì Á¢ÿÞ¼œBàœ‚ŸÐ$4Ò.kãæªÊí A‡S¯!²v6Ò ´]%丄Â!€ìC/V¿=ßÈRª:~vlƒ‘î ëöß¼#Õ¬[g ‘:~ ‰k¨l¹,ÅF4<~‚þáÇ„â/V[ÿ6)_¬‹Äª 9¯ÜœVfÁ€¨'eÔ¹•YL³Ú%½õŽþåÂ.ߥ§ø.E™óÚâÈÎBip¿ÐÑ‚Ý "›MxÎý®¨š:›«‚[߀Õº1™¥5û¾´r'ö¥ +›®À@2[˜SÌ$ø»Wâ0ƒ«÷ÌBØ™SìæÞPwO²WÖß­év©š—~ hÇ©K•ÛA} ²ýñmžUûò—ªñ ï²Ð6nyRž¥IÄÄ\Ãf'm…³ùj€Ðîô:à ܨ×V‘‹k¡7Z tH±‚I2 Ó ««ùC™¥ÂÍT|ƒ›³1³«l¥8£‰o£CÒõñAÙ™„sç;rÊqPó¶¹&Û>jGl%wX pÍþÃdÄlŒ -6¬µþ¾O¡fªAl.¾—Òúž[øwAÙÔ뫟³šÿüP÷ Ò‡u–ðš…Šsâ¼%ý‚S#àOmeŽUfºG%CËÿmÕ86‘˜ì‘®IƤáSÌÍvf€½z~aj>1Q>”ÑÒ)ß"pp@ħ'^Õ¿§‰‡ì;`_Çvt±¶rcþwη³Z'•zƒsBšâ9;¨¡Ô^oµçZ^ù(n $™ïxëN. Þ>¨q:¯¶ûÛ-´xÏG/x ½>*òò§Ä€  /<‚_-x{ÑyhO"¦øHÖ1¸1_Nµ5ÅÉUkïŒÁcºý# þl¦ú±‡kÛþ F,Š?oñ ëHˆ#vüFÑ ó="Ö8ÿóœ}iMœÖRÑ·{쬷ÖXŠ?%ÞN Á½ýïÐÙÆ•Ò‰¦¼ã#=1× hR ?@ð;ú35; qLbÊéâ7zE4bÌœ«eä˜O9&o툭@ï<ðP‰ÛÞÚÔøÕ²L¡W!/§‹Ž»ÑEEµ2þÀŠé¶óa„ƒl¯ñ/"¸{§­yMYE/LH)×a(#(Xh‡Ypœ©péb½FõvêP©ßDh ¢3@ד¿ÅᎻœE×~ QvSö:„Ή)òkQ:×MãÛ  [•¤žýøC6×úQ—L€ ÓlT»—ï‰øÖá‘!òåî7ÿ~’ÔÔùüLZ§6A†òõ~¦ «"ÐN¨:]‚=:+a ƒê,-sW5{MXÆ_ÇhzòæÇà-ÞW.—~üþºÌnæÍZÍ@ß3¯¡Ìv¢Þ§#i;ô­<ñ£Ê!àäuùAY㞈x/Àuw2®ÒR ëÁ$hÿMò¢×ñ ð:&Sñw`°ü‘Ô/£§€ô\ 2Z2 LnÇë)Šõ¶ƒè·ìø.hm/k 'ýà±NlãÐÖ€t6Ìi³$:‡Gf@jäÖÃP꘰8\Ùî„I3çg˜‚ºÌÒîY'¸sP³î¤F–qs —Mãÿô«$Ç‘à¸ÈË? G[£6?÷ylZϧëAw¸Â}€£`KR|´Îµ!+¼ss¶ ë´cZéý‚ƒH°¶7×á Þúí…Ñ #¶ìb)Õ-¸ã+y›Âï̦|6kÎÁÐ$ƒ?RTóòÅSj©ª”tp˜4þáUb1öè_s« _8ø±œcê’7ôíéq¼­ßªƒá.òB‹†©»”i` 4k¦àdÝEUgU“%å={‚ÈŽaÎ̳Æ¥*ï9‹y¼#W uŽj4%d¾sC‹•çlÖ"û<Æq‹Ë”¶|[*·Ôñp=X!]Jj%äšÝ>.éŠe€O¢»†Te5èY–øð¡µªÎ ³KéŒbðž\Ïœ{á8º3OÐŽ®sÁ_.áŠÿÜMäm 1Ö•HÂ|änµÐÈìUG¿E›{/ä«`ämR“be±z"%Ì’¦¨ˆFùëÈvÓßlfëGj‰`0#Ø÷ˆ^F'}¢ˆŸºä]—€ /ËU³ŠTØ­/bÏÎk[€¸þ2òŠF©»'åcU’Ëç1q¤#b‚+0E6¿CR"Z·ÆLVrøø‰d. Û(HnÍ>Ï¿ž¬éœÜðÁ,-jt†I– JC¿Dg@ËNW²ÓÇÒ£ÐN¶"«>‚c>«u62?&fÊG¢Õöt•ynå/žZ/WÓòBŒ&Õw$D}/ÕŒª&ŸŸ¯.(Ñs ö»…à8õˆ@µd¡¾’1gÊ"7þg8à´z7„yדƒEz‹)TG§Œpâ>Š@) ¼Æ„ÔJ¨¢^­¾¦Ù”ë¤CD:O+t…®9zÞ<¢·ç±¼/Vó{Ím·Ïb¾à|Š"1ò‚RþÆÑ-†íq èY´¡Y;ÜÎÕãF& f¹XPo·6lW»ç ã6U)“Mž´;Qa ½DáóôÀZD~Ph£„Cfk‡s¬e[ûñƒ Òôݶ}Yc…©žévk_Éô#QAT«|Ý£œÍL‘”^ô®…7oªäúpÚ£â9ƒÙ±f„»!êF¯Až¾çM¬Ÿ>ÌáHå1 T¥*Ëüû8tc×NQ!“Ù¦øE¾–MʇÌNg0„L?ÆðÈ֜Π Ð¼Z}YÏÅÉ:ÄÖs#O‘ªZ@Fú˜}/?RÚÈþÈÔÈEs™lúÅ) ‘µ¼©™k·Ûa:?Y|ëÏÕ!ÓnÈqEaOUnê˜ô_+!ѵÏ ú9Ò¼»­&ÛˆvÜ‹‡˜rL¸„w5”ŸøÂÛÙ”žŸ ¾ z•œþ¶gB–Ï,Ñ@5ø,³ýžïxx{ ¾®UÏ ,–ªR½âævù%ÆÉN…ÝÅMŸç¨n‹ò(íL¹Êawšµ!•ù€€4Ûv3šòÄ\Ÿju×/Ðå¼øfÍ{ÿJij»U" ›ùsª¯ùrLÿNà„ûÝr©G ÜŒ¯Ó·ýf[ZÉîoÕDÞ’AL|•y¥¼¢×3ë-ùÔÓº­»¦ñêöÑ;Ñõ©U¶É•,<4s" qR̤.Ð6ûh_ôRÒÇÕý`)e²¹Zœ,ñƒk¾WƯ–Xƒ—`L·í¹ôXóYuÇ‚G,hËT߉ÇÃä¤c¼™¯Ù/ä—;™˜þŠmÈñ‡óx"í²z£³Ÿ<µË Þ ‚8±EÂ<úÓ&U»Þû¿3ùõMX'aÕx«¼ìc¬ÆÙ‹¾\;럟†EËæãø¦â3‚]L…Òà ¬ècTo’÷5ðªaí²%7|ÒûÕVW’¤uÞ‡{GA–™YªA¨½ôýb¤dÆú+×+ê˜;T£98Ey-UºõÞ¸$óü‡íÃï4Z%<ú8œ¬î£IÂk“`?…oHrþö­r=ì¡Òy…+Ànˆ3hÈB|j^JZi®±ø:H yÈ®»zaqÒÜנ߆Åçò­¸l€5´Æq^Z©-0A¶;ñ/*‡ˆé3z ûóe) ÊŸO·»¥xÉÕèÜZ@Og½h* k~Ÿ»¦®0*ö3HÐ?ôÊ™¹ œëŽu:òHH–À9œ!ƒ«^h±lq>”Ì“fü7Q…<°o4ðà 4¯µÔ±+*L‡ëÂ&ƾ»"±ÌºAŠèÁOwsEÈD}ú˜‡æR׫ôÎa á«ÛûOSü÷yƒ#ü&LG ‚ŠKãï|êmè\&™ÿXcå”?} †å?ÜFv›jšg¶nÑûL7nÂ+R$ËøïãóŽÇ+jäßëú4¶2›}G%Mï`Š–S*2î6ê {Çh2ÈŒ‚pm³œkŒ´a«fT÷0ãaÆ&¯ê`I©ž3•ó©Ö;IÔ¼ÛÂ$F>fÃÑr»Èâ{f¡ß¤…Äû§¼»žÁN¶+Ì@í1LåÌõKÔžzƒ Ùš,Â{2;5µyK¿=÷0aѪâ•ô—ýG”Ä–f²B`ÿŒdΖm‹-.¢Ê,ºW[o›´5ˆ˜t%oÌf[öhkÚC²Ü9p1ÒÈáØOÇg×+÷­–IŸ‘,÷HD«/àÅ9@ø½5˜³AÊìC"„W£û'­Kµ_9 !}?®ÆtªŠ`Ï®Kà :2sYiïNšÒ¦'è¼`¼&4oAuSÜóçqÚÅ뙊ˆ73Û˲՘¢;¾Yº$½xU(Rýœ6úÁ!ª_Öí=dÆs¿¡›N7)â†_8Ý+%Ʊ­[øEP'#“\êÄÓ™.ÐQœ)¦®$7¹.Kø‘‡>u/¬á(îÌNmúßgˆ@2y÷ô«=t¡ hú) 7»f4"®¸T•!_ÔŒ+nntÉ ¸»Ð‡da¸a!ÕÜÕ·«‚NåžiÆÆ0”¿Tj>ma+oPÌ$Ï´³ÓÝ{ð*;,ú[GyU¡ïÉSº±qÎîGÜt ønf„n¢#v¸’Ê©J¶ŸúuI¡Ÿ xbŠø¾=‹Í龋b–#dMm1}k¥ñeÚ>R›¯5! ®©(|“Ñó¯|2c ‘;ÆH æV…öÆ ˆ©°É†Óez% t=ã{ ;ZœS×ot(Ž4<ÒëçñaGì‘-5q„§¢RãñŸçÏßyÙ ~¬…_º=’ °ßõ53Á^n1±ºð\¬o†î4ÚÀ÷Œè2Ý¡vîwëo‹%§¥3}I…ÄÕo%ŸKH„Ãõn„U²ÆÕѯ(ìßCuá ðŽaO °G©Ò†*h}sˆ ¿‘úQˆ†€…Émf<@fÞŠQK» ?/ý·ËÇ'(h$ªlAþÌ“cvòü û´Ýjh,¿‰ç†‡¶ûfìA¡p3Èf$œYDé“Iá Çüä5AÖ¾–¬£á%IÄŒâ#Ë‘û㨇z_þA€^ÞM¸üÆ;aT‹0?<ù(|îÖ ®‹±šLcõ+‚ßWñ¹×å…C.Ç¿ ›9A9ÅÈ™µ7±ñëaL€¢H"µôdšñ°-c`q: ×ñœä‡ÞŽž!TÕ½Äx7<ŽiÙƒ…ü# kz!_® Öb`¶X-w_– ¢Èr@>¥wå=‰Ì;¢FWkiÂøoët£WkþZñ¨ìÕ£ #"KþK> 0: ØÓÙ›žój<6¬ÐÌóÿÒïÿÆiD|ÆÈ…´J7ÙØç¾âôG\uuDí«¼ò{œ¹oˆV…¬b£ÂXcqŸ#1¨l«JSvœ—r4±`Ä´4V~RxZ ä×ôQ“¬>âò/WA±ý¶%u,Øà=Tÿ"90-†ÚÃ{Ÿ»Ž ÈÕó •ƒ˜(r÷ˆ3à²rSˆÕ+(Z†¢pöé7 D ؼ¢ºq×ìÂ>Í %ÛE÷÷†“÷µ2;8ûVƒYµ^Çêr/:7;èu4 ŒúòÅÿq¥‹K¬/¹?-·‘Ja0OC>gƒáÆÐšŠ€Ý.¿‚Üõë«Ð´WüÊ÷! %4ºËÜš%½Uà|ö¿³bà+\b|âtðö®÷xŸ£|·ìèùi^·„aË»Ö*4û 3ùÀ¢˜Õ’¹-ÿ5 4J“åý^'ÕY"Z§­“B©AäÌ9DjweJè6,&—ôi-6•[@›“!S%¹Ãíiá‹Ø*–4, i2nq$r|ª;e?Q‹ò\?þ6×±{‚*¿âÄmó0Bpg‡ëVßsÓâ’5ßœI<¾z¼éøs=ý¿jʼ’>Ú`EÇ»´„N[p¥r!pýØØ £2ž÷•\Æ--×ö¡·#eÜ&{€TWj!–!¹æ ç#˜øÁ1¹ª§–Ð\ÓíHáÖ‚ç;ÏFñEkýâm¹›œ·úâ‹ÊoÖB³oU@qÆP V*Ì΂ð6g; Ù¾~Ø›zW`Žƒ–%ÿG}&¨µ –éj‰£ ½Ã .@·ÎìÜrÓ ¢úß¹ö\9šæü€š›?ý“iÿXctÕ2‚¶9õLq©·À7¥RÈÈU…Äë•$*šEà½u²ÎS/å±éÌöù²Ëój57UrírRC˜fû4hÅWÉ.FKüÿ·Ã0S 7ï^·‹ˆ/0q»„éý\Í–‹¤²¬Xôvæ*Bþöt ©)„ ¨<Û‡A\õšÓC;Áˆhã¯o܉'U!‡”Ôï·*òʯ€Ro_ƒb>-:›>~dJ’S½`03§„ßòˆ!| muïâŽD$Çñ““‚¤Uþ0’ ;G²û÷ñi}VNLOšpE•e]È›ä|]¿—P'> ä|<&Sân¶®¶Ä”sæ—Xù¾}ŠxX÷ü•éÓ£H‚Kùæ ŽHT-]»¨5ôpílE¡ªªVâ‡AUì¦(íÔk²Žø˜]ö½Rƒa:78‘yIüL¬¡Ûg¹ôçíBKðò§ÛÛf–q= 9B\Éw–S!­îòżS1àC@>õ*áy|.Ñšï¶‚Z´ž²"k÷ÓO¨3›È8Ê1ÐüF³—xÏ×ÃB+¥Î:6Ž-#äÐPÆ÷ÿuêâfC’9~ø¢Ó¡MY’]è;–ÒøR{T7zûMÒ|®&üË­þ=!Œ‘ç¾NUnΙÁš˜y ÔWÌX® ·ãßbá÷°“¬aoD¤–äÛ%f“H¡íF1ÅQχ€”WÔ¦»‰ày %û :¨YœI€ùÔƒ…éäd§ô<~oÑy$­Ðoj™¼Ÿ£™—øqV#¶ê<ªzú¼‚n>sÇÿ'¯ñ¶[kÀY¡w§fc} _›%#*Ú2ÚHF̃jáÇþ— ߈m(¥¶¯†âX$@,,$˜¼Û ˆ'áìwÝËS]ÊíwÒ>•iQ!oa¬Çj½=ɰ΅$[3*kÓ*á W­Áo1[ŒÔú.2þ(AAgµlzhr%¥ì/n èo|laüt éÀn® 6oK4ê??I,PT¡‰>S!iOv˜­Gõ!@ßµeM®#üÄ÷{e# úL©Ÿ­¬ž¼|¶áÿææEäœ5{¡S$rž¯båËæœ Ìe£Y–Hlš°v¤ÒИY*:’G ^ ]‚ªYs¿ZS×,Žu§{—ŸÎ4ù›yßHíTÈU‹PêØéË“n4~@Êtã"HƒCög ¦&5šs:üü$Ÿ'¡€Ëä[ÝÓ—ô^ìuqäËÄtyÙäyª¾'8šð0W>0fÖëg‚ßÕ2x Šv`è”Æ fÐãßGלsÒñcÈ79 ]ÖS¡¾·ÆåÃåoœÖ/Ï7Ê]Þ¶"¨9tH5©˜†2ÀEO’HrŽm9)ƒ±vèYO¼× 9Rl•" Œ_9\}6lÆ>QÜTº2{ï+|& JcP?§HÁ±¨M»ŸËnÃ;¡>&tI8ņ!Ó+&sˆºŸ# Þ²…mšãÈçÐæhøF‘Æ;”¶…Qì§x‘6þøA¨n9;¢þ¤L²TL»Ù†SƸ'æâGê‡S‹b.$Ÿ}À],ƒKœW?9\ù]:´,]ÒÂZ§Ë׈Åd<|™}%ª’¡.-Ú&µÍkëõNx7‡aküyäØYd85gN“+…)Ê­ÖP¼}ñÏxéÒ…Û0Ü•î.Üw|—Eÿyvsd‚Oîÿ4¹ÞÅ0ÚgVOfÓûð;¾SÎT³)Ïí¿}P4HÊ ]¢>†zü,Š\ ]|ÌÈêà˜©ÀDð`Užû¨Ùš{7‚PXÓtˆ(òp%» @zº_\L òE €:äH Ó,‹`Ž¿ædÜÿ§ä@µYmf%©lòÆeÏC)•»çæaÀiðH¥+QÀÝVÆ›w‚3:蹩<]žçÐ%t?Ñ d†‰Ã7éÃÅÖýî‹=×t‰Á©¤¬¹)¿úKHª:„ü¹ÎOýŸã{æ¬NEYÇüôÛŠZdX7G5:`n}£è_ÛÕRnBÉõÑ-pé¾Ñ'²¦áù-®Ú‹RkôæV¡¸°}”yšÁDóNŒoý-‘›àÞeùbœ%M: ‚j¡SXr7‚D?Œ ñ–ˆ5ø¯ìäÈñbÍj½ ª%31­‰« GM„že›4/m ÄL[éÞF/<]0ósaœã¼!c¼s\Î…×:jb j¦·vSã'Ì!^ÓíL~ŠR*6À«X{ÁNÅÃEýèDœØ?/!£WQÓáÁã8ÜÞ=Û ¸-z>ª˜>µ",ñcÛ݈r-/¯™¢ô&³ýròÈĉdô˜üÛ+Èâ&$?*üæBºJκ’"¼ÅÀ"{›’›¦ƒ#çIã¿¶®ùC•VK}ök±žºI1Tðe•ö9…‹(Ï⑤¯ŠÂÙóLÑH«÷ËŠ9àYé\Ù×/$µIdBº.«dh|Lä-º¯cw¥Ó\Øú>7 Ìö€ñå¦_Jë´ÀðFìÏ)Ç—€|[tñ³Î×®œ»DüJ«‚eE"< õd¾ÝDVä4 ©*šY››ÉU¨pk9ºöй{ü:][¸ÀgQÂX”:‹Ã0Ð%ˆp¿Ô_+*IðÈÌó’ãÄÝþñPuÝj<¹ì“ýuöAô|«ªƒìÆ<Ìî‰a£ÞP ËàÍì¨i¿]2g;ç «gUÚæ>€Ï?[P¼¤Þ £++(Ü£ñjÛD@Àc»¹×úþ±§‰ „—4qàGE°£ YM<­C<›î#ªßЙÆÊõÒ2N»qM‡„ýÝ·g ØS…þþhY*%ÝtoÞÞÉê9ž 6WÙØ$\BW!2±ø…|”þZÍ€º’4Ê\^ƒi/ESÌ Ðæ—®hµ Ög1Û@«‰5Xrß¶ºå¦:o'Õà1Ú®ßòðÉ­@úVëPT)o«”*Ögxâ‡PTU×O‡La˜ F_¡¯W6º ÈÒ'öô@™ Ö6Œ‚èmë{ø\&ãJoNdp˜“kÂXZM‡]\Ë*‘à¡ÉK¨/,Á~r Ósü'

¶£'^~ÀgjX©'8k»è\IýWF‰+Þû¹ t³<ëžr~kJzûšÔâérTÏÆas\¤9 V×RyYyVÙDìÜãh¡³aö…hÓçÿ™k²É”%¶q—(«ÀHvd¨Âš;M(ºjóò«nç2‰EÏYó å „Ø­Q²Â‘úô n ÿT^¦ª:œCY~&9îòVôs¹$¡Ô£uo_™–ð¨~ÌΩÀ.ìDZ¶‡ðzŸJ‡}u£w'lƒ‰Dº]”m¦ö5ƒ¡_üÿ”Ãh”#§ îùP(s–ò&‚-UM.hêð‚Eñî¨îõÚÞØ[ éð_É /Dª¯ÖÙÏH©5ç5ï 9íy})Ÿ9#êâ¡jÞGÐhû|\3cÃ-çY_ê~5²vU\$Ië¶¼œøøàIÚj†ÚD‰T¿]‚p–—Îô â?=>®¦•¿åÎ6¸ÇP;qh»Fp]·÷¨thŒ#ºª‰ž øð b>›¶§„""úU%7/ˆ ݉lF´fc›´Ÿl±¢Eïz|˜Ð¡²;Îyï²XÜ D&D2A†Þ.†²Á˜îÔ kIÞ¢öu—¸•”þô7‹=eYsè5o¼=x}í”tDÕ tìb–|ûY õÛZÈ:ŸØÑp(àeuÒzAu&ùåŽÉ”œO>Ѱ‡pAœKÞw¶”ý®œBæÊ²/,©ì*DoYÈðÖê2¾†,™Ô¸õEfìAÿ¶­þ»…[ê­V¶§%P›¨Sp¥zÓäöank°^]çxȧÐ e¦ß0!;3Šsåxþ±øS¹¥VȾRº5µiä× ü½£‚ ƒÓ¶ùGäÇ4Qõ õØE]:ÙŒ_Òïu§¶ÊΗ†K§ûÐÆÈ.äê“0ú@úSÝ<ße·ð¦QŒóx†#py†à«‹ }·RñWDjÖrç~»B{×ϼÐî¥)Ô|ëûºlŽi«L*a†FÖ­Yý§#9_®õÄßEÝS›ÇÅ´ š¼6ÑîyÌð9ÑÍeó¥2¸ìÈry Ó* ŸÐ ¤Ù`ÍÈÆÅ«¢îz¶à D).èê l Dyè4ê*Úü£˜“Ÿÿæ‘ec ™Ýø¾à¯4RÓQ½Äâêg|™'kð8N–¯é!¼2퓺[…Q­;¿Fí‘7@ÿÄ@„‰»X8Àíô,[ó¯UL1Ú>&\îë_Nj5ºtÐ+YÞÇ„ôúâ†Z¼XD.²5#^x¯+…‡:XÃŽ´BÈrt2± øB17çSUàáÎn̯²EyDxóâ Ðï¨Sß”_Úô¨IÉ›œ\£§OoÇsÐ .=;dÌOšúÁÉÝ0Qx¶Kåæ­+÷¿’“Xn×áÀò¯Ùà‘8™CÏëæáJ0Îâ¾ã0 © °àÓwt@[¿Ô"êMf÷¶üݺ–H\°Êžw ºWR ¥gkuø15®AÕõã¦]¬ÙºŒ¯;œÉ©P'Î*óÅN¹Ù²LéZ+lP]Ù .‰IJ»02üÙ®×¥Ú£‚4¦ÞA$× ÆI £=¼¥QEv›cwÆç"€rÇ‘[ÌØh²dQ1Œm›) ±‡tå&¢å·ÓU€Mb6×éŸvRY=‘¶88·F«°æ?à5Xâ-dlÏ­bDâªzÝÈd7.]HÉõÈ)þT¦Bï·‚Ÿ #p†°k µý’Ò`]„n ’OéŽzž™«)£vÕÊFÍû¦uö˃WõS¬l„Ô–y.“_·Fê¿mN®­¸èÜÞ°9—~¸x˜,]àà{}`&rdc"™²À}ìÚ›|žŠ?¥·ÞžÖqç Ç†Âd78éÌd}»‹#й¥ãÚ˜"1ËÁ£¦JEШlE&øá<·‹‡_Nv5–z_Û5ü>›o<ÁL”g`ÿÌÒôE¸.\jdæB·`GEÛãA#wIweJaJY_^F›×„@ Oˆ‘ˆ´Di[A+Þ‡ ¤Ñ Gœï½[ ©÷¡VPÔÌsR³““û£•°;²eÓ•Ž ‚ß~„iËZ³uëG^î™yvâÒE\Xþ,ÿó'XSC†)±KAÅV¡"9v¯²¢¡?—H³‹ßù»¼«ªÝË'IÃ˧¹ÖI¼ÈuhU‚)œKáòÊûc°4ÀÞ1CÀ*…Ž ‹vË XHÇÇr¬‹-»v¸y4µÕh¼LOTŸ\ÔJ,–{§ Ê»eõó»S}y9-6Ñ*>;i‡!~r"ÍmÙ´—?›<µôk…²ùréÂà3ÇAÝEàxPZEðÒ`ÇÛ#ŠÀ^7Z­Å9Ïp+‘ÀVˆÞ¤ËÔ§oÈíøp^’ö ä©öeg]EnÛCª—VF 3¹cÛ!>?:¶kvp<¾èûkûI]f¼!]=dvoëÙVϨW,¼Í"ô+Ž5ÌIĬŸ/ÒîcïK}¡âuôµå”Io /ˆžGû3cmÛE©—:ñ¡s§L ]x0;²ˆê-ÍdyÃnæ©·’Q$¶˜´ÈÜ@4–Ïéë[e²ÙA›o†‡6ˆÊ}Q7OÈÔÇ3ò÷!æÿRܨÖ×ù8Ž´®Öå‚l|ªYË¿^ˆ•çâ³úÁ;‘ ð#þÜ9ÁŸ“:ÚÖƒ)vØFÑG´ô¿¦gÑ÷b²ì%ð˜ûgÁZÃs½ŠÁuzv$)é—Oò }öa苼@9Wìƒ/<’¥£å´>-ïe˜Ã(1Ö¡¦Q++Î}en {Ь-"ßqoó=½fC¿ö¨Ë…¡dÅÞ·½D”Hû%4V´o%ßé±²î¢Q†T¨³æz•´ÚÇÜ8&q2š/*˜ àjXlåAu‡'ÆQ[QkÝÄmî-mââÐm4Š ‚¾Þœóþ›¸ž5$å=K(õg¦ŠØ4N®à)Èz ]6“˜j«ï«`µ2^Ìõˆ… Æbj‹G0ø“ã-K–~—'½Ÿz|üÔ ’ÐéD­¯šÒäJ¥…7£ì‚•b8ÝL1)íx.Qo ‚Vñ0õ,b¢-¿•yèhrÖ(÷ŠÛüŸ(Fê†;Z³ ¨|k«Mj»?Zrp ¶­$ ¸7$·õ S Èi%×9dV7]× ÄsŸíÙ¸óªJOôÙ"®ä€`hZç Ò ñq¿l|jk{ü1RÂÊ¥Qö•q=Yèá'ïEÚÂj› 'Óâ'_·7{òP#†(„6¹/YUÄŠôƒ¸Ö'\vç¯EøÔ<þZ=šly@Är+óç²»áÖ!^\¾;{ <f•Çiø¹ƒÌØ6S!ø‚ìȉ«Ã ‰@ŒOÊÃ6ƒbM+’Þd,†+…|(8Ù{²uBESX:Ôêmè\&|脦ü°Çjî’ä¤ÈI*xe+aÅ|/ÖÆÒ±m‡”`¬Æ´ Ä¢¹|‚„ò(©J_òÉódk Æ€¶ŽØi›3ʤ¾L°T¶KWʾvWSÔOu1ôQ¨–>â©Ý¶§#>¢¼$ûýëUA6;;ò(¦˜; Éw3S;€ ë×PÛgã>-'‹73—-õõú­y½’À§ ËKÁ¨’+ÕKŠÒ_àPd#HPº4ãÊPL˯v¢ –?öþtHžS+G xïÉ[;¬0¸0­~Iƒ{]fŒ]tîVšõ¹ò͓㡘•ܸg*ퟦžÎðýl’ع™÷: 3± Â)S?–…²Y~^°ã$+惑 ùûÜ.¯æ^*íZÐg –˜Kf)Ô¢›¶€‚¥4fñ8žβå-]¢mÒÁ-u[üM^'‘ý *¾¤ÿÓÄRÊ#”HÊg’…ù{%Ål‹·X‡•ßÃùÙÔ”Ö2îSfÚk°«3U1®¹}…s¹„Ñä†gæw ¶ùÒŸþÓŒS9((38¬%ù\áj¼ñU5$›zIÍõS؈=1Kö¹¥ê~;ðo›ÝÎÝ·©àT˜¬.}ðÁÍx¨ŒyTE)œnDQ£ø¶U,eÙËFîäN¬U9b Gz/r‘ Ê¿äÔ¢ï1¤ÇZ§«ºÄן#ß­úy1:€¼Š‘ "}‰Å’VKWÅä‡K®¨w„Þh<:ÑøÀ÷kè‘Ú?p¤{d¦a¨ÿà»!9|q¯«µœOƒà™ÈY´õBP¤¥vÝ·H˜4KÑ&÷ãNØàM¢»Å™æÙhï8Cñ)ØZ5zÌ¢àQÊý]Œj¼¶ÎÑö‹/AË£4²eæ,/²§ÃE·l[ô·Æ^¬±©ÈBô›÷ôS«=æ¨6ÏÏš~—¬ÅÓ‚‹E^º@.cw²¶¯‘©¬2ØËzc·—÷]æÅ@Ôu†ûM€‡%'<9)B§ºEËMÇͻ¬0±ó->ŤžÑ ÈI€¥™ó%Ž®¶¢o†«ñP{¸¢#ïb[éVÞ JQú‹ý?½r é µµë 5¯üi>írú‰©R’‹ÅÊJ?4žmâk2FwÇ¥&Öëé­xKÎz&õy{þRÅËsÎ8ÁGìš ZºúdBe£¦ùÎlè4騱Ñãå/¾¦>Šá¶ÂV-þ±UrSÔjθJ&ö¡uÿ>E—lW(ÙšùìjùR6iü ˜”d4V>©™Lå«õî±M•›Ú*î#òÒ-ûL—Tĸ< XV´F9”ä,m×Ù ŸŠÚP_K•íÜl?%®”¼ßß‹(‰€6|'óìÓ¢Þ3¼Â ñåÉNË7™N”87/P‡…”½Åëª)mÐ/—»}˜‹ˆÇÕ_Ÿ}xÈ¡´£¨|Aù5tN %¬çA_éue+‰7q»¾Iß·ÕV…jT@I6÷eVìIKØðÕ54ÉM˧Û†¯J ?¾È%ü?J•¦—¿×"w$纟[v.¬*.ßYn„*¢É;|%>Z\ÿ~N»a•ù—ûÃòh )è‡[¿¾æ¨Õ³À®?Z¡‹bâÜè¾wnb ƒä,Mbÿ®pgÓ›þ®ëªZfmBÓ1:®Úî39GéBÙp?µð(Ï{º…b¶Ÿ<òÅ#iÌŽ6æ• ®Îä_ 1íVÜ*Õã{Ù²˜«îÆÊãÎÓò;ùVq@äDƒ5<¬3«¯Ï”RÂ%ÚM#³XÁÂ}×r÷ÎÉ@€µI§­©Ñ9!é]$KL¤æ–Ú­ÕÚ™Òw8ñNÏ£‘'L­Pö„ì¢å{@•Ÿ¶‡M䀶6öÑ0Y)/.—uN8jnŠ’dò,°oÅÔqr]óõÌŸšv(nèfü8ã ha‘lO»ö;ÿâ²JÏstØáX¯c£ñ6ÍÒïÒ=¬Ûç½XZ u’Ή_p¥&^FÁö±žÌJŽ„>)95µ~²f°9¾‚Ó= wð€JjùH©¹Ìóy´KPgÉ*WÒwV .<'©K°ò7`Flm¨±û€[÷þ7÷ƒ5þÂÉO&p=h*¾„0•?}þd$MÙŸV¿CÞª ÜdDú˜Æ5I×Îýe6°þ„OjÚ¼ßlõ𜘥0˜rrÐL·ŠûI®CO‹µH",vuB<¾ ÇY]ƒ02îÃ;WøûVê}$Ý:®Õï¡›‡ ÿr­åØž5Ù‚ וBÿ¯¹Ë¢fh^s tÁ|”pãe-¦±kà /,ó %/vÉ},yÅ&úƱٱ.:âRv›* ‡²·ôG(àÖã·Ux'¯mT;ñÈ»É0&˜¤…8ÕlŸÄHc*/  ¡ìgý:×j ~L ¢‚ò¿!±Úò¥²õ™ N¢ ãh ¦¡:¾ô ^!UíË’4ŠšZ¥ßŒÃ“ÞÉYµÃÈ¡­\ò‚2mIQŽSšS5õhq3úÁ4c¢äTñþ^gPiÜ-fÑo‘Î_ßÈ—ÆÄœåèøWÿÂà ƒÞ ê‹Ú˜×0ç=?ŽúýW¾ªž^;kygAØ7d/êüÝ=0§“¸û´\½„§@OñœMo1ÚÁ;”•Óßqᾕè[UG¨Ls7¯‚I}µKp£SW–ÅÞòƒ¡XÈÄmHMÝ¢ô÷ÑÁ˜™”C×ßÝÿ›÷!o¤ÕŽD<Ôeêa䑞õÇuq¦V8ÖÏ1qW—]#af”ÿëµÁ©/6Îv¨¤:I9T‰IÈYìNÜцeM\íÊ„(~º‰eÏx¨»ÍÄ(}ë<|¼:yw‹Ðʈ¬f~ý\ThïÐùv{>Ö\˜P5FaU„´iÓãdµÌ(µnž¿>þŽ"ÆÚØ%òJV&’Þ¸ôn³²<ôÇÆ‡¨1 mõjãå/°gkû,Õètå;×ÑCšæšé4¼¸³ðÕ(Ëã;´ËØ\7cï§Åhºªa ItñUé%âol"þÆ-«²x#þFï)Ѭcø0!Zšáœ·å½ByyÒž¾ðÉ»Ä,‘÷ ¦©ÇëóuÈ¿ìS ™¬ú/Ì*&Xîpò« Q!,póº'«îù€ÕYQ8Ò¿á*{ÒWýtK²ý¿´ÃŸztïU‚ˆ›2&逞4ŸÁ­çÀ€HðTŒ%„;Bá|Õ6/UìØQ‚'ñ>ó﹋žõ©7‘óÛ¸háUÖü$07ã}˜å¨ *3½üÓíà£<\‹tˆ£1Þ®1Ä ÒI˜ô¹W*wOnðD@Õ*Ë 9xzAÞðž ±„=ôÉj÷Úf J!\‡r+ È5zlÒÀÒ¼GPÒë÷A»GV´†7—û’-¸#b§BƒMpT™N´¯iå›ï.ªÞ™f‰p \+•†÷€£}–sÏ%þü§.=ò-!š°p¬®ð0æ6h€(©ñJÈÜ=I1Sž÷= Á߬¡‚F ŒóEš=©ä›ý6Âf78¹”Æ USyl£iõΑÀ‘wNEîjÞ“åg;Ñ…)ŒP*L¤õB‰I*iÕÂ(¿ŸÏZ¶ƒ¤[¨,8®ª¶p·bé¬îöQâÚêÜ©¿ŽÖ爗g“ÚZÑ7]ÅYí<¦^)–ùo^@ÌÒ0¿C–“Ÿü6ü?ädµ¹z!};’Ð>éú2OBMZˆ¶a@LÖá“\D«RL ‡‘ ‡åÝ‚L’qIF=Üþ?/»-s%Ì¥ÉK¨[îi{Ì”öBŽ"f&k3ëp„ö)ùu|_W»­mpÌÙ#Ÿ€p†Õècø­UƒÇ<9Uæ{ºåh@¥l¸ÓäÓ‘ñbaKâù+ÎPÑEׇAé˜KcüÓ|ï+îÄ^Œ–¦µŸÅC,9Ì/Ž§Ø„Ó¹- Ø0ŠÁh°*Zê"­½;ãÔcÍ×Á•m|ÔK5þðàøŒ©ìø ª_`Ôf%ÑÖ ;WÇâ$ ÅV–¬ôø ÿª‹YrZÔô;žDb²_Úø½R‹íÚXG£²JØYJ-ìJ†Åe»C•]‰Ÿn)M'À9?2k'¡Hú¸^öÓqîÓ_y¼<™{ÀbWKfW%”8R~ÝKE‚ÑÉ…,öN›‚þœ­‰É«¹&>CÙwèêôHqwE0| +ÏE®Èt¾å9pÂ?7žÄìœ@ÃÖ»Ýr¼r89K¸ÒÍì/†fÕ²gÎùVõæCø1@‹r‡¸Ÿø¨/æqœ:ítÀ³˜Â³W¡'päµ+ múÁÅ”þœIýÝ-X?Ëó ïÇ£ŸQgh…4@ˆõçƒÆCêöþ£T²ËíÐx‹¸¬Y gô†&Iöy¯ Knƒ6/u„œ]'¾¸œ«&vP8Ëu`,5qíËš"p‡pJ?p—|vfUaû¿fÌ­[ðÖž\ÑÿÄ×;˜ôì.{«ò6ºháÕz²ƒâSm$:ÍÞ#«„diܬȨѬ`P;E‚9h#uXàO®Ë«È%® ù»ŠÜ‘’Á$7éJˆ*w„ÝÛõ¶±@±4P«4qÊ‘P€˜ŽN­tT°‡º&û;ÃÔ¿ƒ2ÞÖÇ`r|  æLïhùÆ£Dad¡u|¼Ü“<ÔŸ}üÿà`9zu— sÒ¶!3÷8@¹¿IŒ°q@8[bËÎÀ‰(ì_ç|´Û~uÓ±çïbVé§BŽ»"V(Êχø¤»Ï öñ«‚YÓ|’(ZMKCZ€>’z>³”.l4r˜¿;Ï'¢ž¡òHæOùpÃÛ:ÄiÅS@—]Â`Ûië§Ò­oh7Y¶j1é%Pø'TPøMá÷%‘k^¶jgEh>±ª7œ=ï¾7Óü«„Œ?ϧ~nõá\¬;ÿŸæ~±Ç¶õJ:—ÓŠ=ì§¿*.@¡õ2°­ R™ä UÃ7¼¾ÊVƬ-x_U?Ó˜·lwf¬Ê—˜—aÂêök-²øÈ9ãéu"ßOJRIx]®ý÷“èœð;QUR£îe°þ¸’=¯{Aå.ôðïïÿGÓuy4üK°àqº¬Ðùà‚g¬×:†ç¡S¤9 ïÕ7 ðc^_<ïñ&–¢h7UhäÑ2^‹þî:ê’Ú…§wp¦Éq»ÔitÖÅâ|A5Ûƒ–ùØ…ßHªBÓ@¯©e†n\] u¾ÊPowàÊN[ß“@ñEÍvåjóÆÿ~o:-¯‹n§‹rÙ{ZYî:ž×>ïHÓ†vLï÷eù¢ÿD›§&å_Zª/øé9 yŒ¥×Ú#±J{‘ú Dg… X¨ØƒõŒU5IîUþðÕuÛ3Åšë®'œX“DAÅÙï›X`m Àí[[€¦5sJò;æw!³ÞK<6¦)Û=³ý6Xæ¢ƒÕæÀ>ÐŒõ¤s\§µ.Ø+…º}“ûO> Ýâ–1ÆLb]ªMñv¾‹}ñZ=5Ê´uf³KÛí¢c’аz¯±ñûÀ;Œ¼-i²V=i"K–B(Ä"}gqbk2[)p´·Ð)µŽ¤ü–?ø}ÉÍr:j˜®úœL&Wç§òe&¥¨C—xÌw]@–Q“²Á%£šöù±ïÑBb–¢O‚ጠ¬ðÓºÒA6‡;×AZd0C-]»«MF£—‚=تÊRÔ¡E‘bùî‚3#op¿‚–º!‹yW.ºb¿&=˜ƒc«°ñÃcåœîàDKÔÕ)®è W·žT\lwû¥¤8]æª#ä÷êÅÏÀÀ±JJZF× •}£Fi½/èç³úº±sÃùH”ÈG©³ÙÖ¿9}üZÏÞÆ--é¶x”_ü­Sžö7œÉÓòˆ|øÙžtÇžñ}_ÄŠ+ ôKar[ɽ6×ÛÌ µ!l³r¡ô¤Ê˜ï97™$*Eꤞpo0Âúó‘Ù+hârCEòªáy ßž¹iÄõï µ ¹’•ûTrNt;F(ü× ¢T²~®!T&/æÂ{ýç~†ÙÑÉyÉÓlør‘Ô™2«{º' #mq÷Ë¿UÚ“é}ÍZäv ñ…Ëúà^f0Çžkï¢ó,¿Á¨@!Ôž™lzÇ–Œzkl_¬}IóÑBÀˆNŸ|6g±¶Åd@2•°8â"1kÍqÅ_€W{+/úYá5]^õ[–À„æf´Fsâ¶ènÅ÷hæÏõcÏá¡—3ú–Jš·çÿÁ»é”{C Ñì–ÏËð³ Jõµ«ÏÔ¡çE#·ÑF¶aüT@BÙÒ¸?ê•ä6/KŸh‘7íX!bk° ß”x3þ£œµ}âÊFFH Y#+Ué_ÀÿÔªRmÆ9©ZR¶&Œ–ʉ{Þr¯Å$:I_žÂL°b>Eã>¿pS$Äž;ª«k€Ëy¯pœ(äcÕº„þ ôë‹àI™¤ÖÙ—Î6gÉtYŸ^³Q¢ýîíT0âÉÅ=Û±mÖ¢4’mÏ;2Y»êý-‡žu,G‘ê~N¸v§ÈæÐ—W¥v¤BN*h—·¥[ÿ‹óÀP'^š o“® Jÿóáë® Üáeš›F•‡ƒF¤Ñ—ðth¦ÅB*RöÆž;±0–¨˜´Ü›9Z£Ìi¶ƒÜ”S3ÏÅbŽåö†D"/a&ÑwaÊ™þKÅ׌sè|û¸¼ëv‹ï%¢½(+0Ný~ˆ:ÿVý“p™c «/ë0áʼÍK¿X#¤Vê¼L²•èsÄBm«"Õy&}­Ï\ù´aÁhˆØVÖÀ÷,ñÝ­B½ªs¹ ú*M±C,ä;µ®{7-LJ‰TÈö_ÐbUb RŽØt¨Å"‘K¸W(y%ÎÓàÿáÇ!ÕÚéo³:IIõk?˜[vˆsP¯¨ú÷ewöb½1Ô‘(Wô‚Á>ÐY¥ûž°~ |sOÊ‹9Ëæ÷Ãçu·6‚Khü:´íâþ.ƒŸ>ïþòRí0ÁP8AÔvÁ¨ÊÐöðP€™¤°œ% ’úi}ÒNÚõr‚XÙõ°tœø¾Á–ù½¤x{8Dz9Õ51®%rÒ^©'ÊT‘B*8ûõèGRA(¹z¦¬Ô“‘å€!âÙî<9)E•Vâ’R ¾á£1Ç˯#‚†QT¸o_Œ¾²[ÄZ%°S.,[Ûá¸IaŸá1ô‹…’ÓvyËôz>É!ßX:¦æ¢MýVk³‘ì/d­HäÐëýÈÓFÒZꨗ‡g»ÌZút/#͆»þž18P̪ô@ÂCålô­4N,Çg²©Âë¶Í$ö¬ÊÄhƒ«^ÚçJ,ʺ\Kb˜ATèlˆKŽÞ ÃwÈä' >áFâˆ-/dþþ¤… 㨚ÈÈëpžSÈÂQ·öìÑþ6ÄêWøn j}"Œ7©ÓçPK3ïÈT¨Ùjã Öꪪ{زF%.6<[ü'&ðjÈ“$ƒØV:«Áƒ¿¢`*Jy§'çX²EĤ­ó\2Œ’Ô9“(lMõ&[—8ÙÈo0 -§Å %tP~lêSX±;^…ÜH3÷ŒÔŒ¤õOÞPYßÿiR­ãq„Ù±9¯¸mÐÊàŽƒgCïÌZ(¹³fªÃ‘¿6ìDN~ kj¹Û¼ý© *RD匆AWF\lÆHÛlRÁMmÁMÆÕÀ:å·Wm jÛI0o·UÛäþG]Ÿþ½{Èy|pnVþ*i^#ǧGâµzsÿ£ö(zÿó?©Z'¦7/ØA}Ĺ_>o% Ab5å[XIìhPJyu‚PI¯øÆfÖâ}ÊHj·?X”ù2_Ò:Ï@Dù“búg Nê°œ06iƒ ‰C%'šéë±üòI]:Ï+€èíÏ£…†u´(âíéà>:YÞcýR;•y{H/‡Ñ4}¢JS5t„1m讔–Rü!Fм¾‡ô¸¾VxAùI©—ƒ pkĦ"hÐkÁ(šÊšùÛ×;sexHïï©0R´n ÌxÛ¶}@á‚ÅVï·Þ½ÿ¡MrÏÌKò€ðUÕŠË%jûïîŽ+Ô1½;鱯ŽiŽ× ôoÝÍ{6¨%Ÿˆ.)Þ~n0p Ôu:£ÂV)6bíS¬ý2––lÑTdÂ’sÌ’æ d—ŒÍ÷²ÂW (ày¯¥Ä (Þ²‰BGÝï;Ì UîvÞ½ÿ;øëWHœ&‚ °#Ù§ã„944(j}ÏË~4àúŠ6*Xê6¹¹Sþí˜9 ˆÜ/6ï¯(ȯ;í?zJ×pÁÖŒH𻃭Î'M'ð¦ó}ßJºƒtˆ>÷™ÖGí{AÈ<ýCœM¨À,DpYúýXw,è ¿ßÆ½¶â¦óg¾cðƒ…A 5Nj} ô²;rõ?~èæ¹K5°—ý>ÜK-:^»7ïúªò§üs‡$e‹¢W ĺÁ€ƒ–©^Ã%Ý?!,æóJ>„ºõ3=g‰3¾"…4ÏzPðÅ;ÕµüCÙ 5ë8¥ÊØ™^1Taö:¢ª­`Ëñ5+¨µÍsþà`$ϯèÓàwgW šQ=Nü̪?)Û¶†ötÂÒ²Æh0²9Õ—º“Ö¸óÙl>8PO_4ÈI\x`{¿}²;ŒGÈ-´ËÊ<à8–Ü.ÁKöò 3¾l*ïèRk.ä9ÀIЃ½p{G_Ïþ#8ÑL¯5i¬ÑF=’8Øb/°T¢q(ÞõÖ4‘×oGl& ¾#˜¶b–ô[t¥b5JÒÍÅ~¡8£xNh¨š\„ ñ¹Ö­8úGç€x§]zµ¡îî —žIs+ªåMÔ\V—KņOe â­Ê0ð%l{¯)ˆÒô??äÿƒƒk³%i¿(£®Ûø ?LøAaǤí‚úöÑ;ƒÃëð¸Ç„ÊsFwvˆJVïdîíŠh]úöœˆI :nšÉÍ•“÷vÀ_ êÚÜlÿº뽺j±-1ÃÒhºÁù’Åu‹ý V—éÝ…L™Q1²ˆ † ¤àzôâ5¾³!?Ãaq5”¶JsLô*Trc}6 »Ð×[ [Ý®T«6i‰tž ›ù¸’r¨9ŸBx*u…Õ 25¦yuåº_\êD•‚¿ð £2®žÜZÉeBð1á#osœ ‘ýœÃéÊ»O‹&¹.¸†Ú[Õ|°×·Úxm¨Lÿ]úÞGR¯Ö-y–­c¨øE©U ­‰ÅiSâ÷Α0èÕÅ–Œfù–;Ù¿’Zd)ý!`l>²g|Àh5EbÚz&œYOx7 V(__'QŽ´ øˆœWPÜî4{Z·,qˆ8ûTèÐ'é²7ø:¦[N˜íŒ>ÿ<ºÛŒðI$F*iG5G¢ÐŽÙÖù¸eþú12-9U39ïÙ ²ÏÚGxýhæ6áÍ‘7I©ÀìEd¹GÒû¤ZŠöØZ_›}ýéëùű©ÃJ0öÏ ¨mfÛó¥`êÀ§ïLAÝ2x‰M#%J4q“«ë?œéÈ–ŒÉ…¾Ø6Â2M})! wªA§ ˜Û Á;Z9Ö—•qŽ}÷x†LÌȹSUûî"`¢ G0z˜H) ¯=zwH‚s# AB/?êôÏ=€T#h‰:ÔË™pд}êPè¬i°?Z—¢q¾ÝÉ7Cá.6Îï†Êò"QÈ#sYUÔB."OL T] ª4ÞÉ@%f¤²Yiãk³X®'ÆåXü4Ý;sxËP¡Å0Í„¤gpz²Ïë7è»C ‘´ªë²Ù Þ“F+t.MéÈ–Ã7GiH½æµ[h HœY3è»ÞDúóØÇ= Ú׆oàÌ]gmõOlQ|{sûq§³x˜ÿ¹‡”$fLü,QŠk.BÞåWsé’D╋ʵc^\~äŸòKYµ£Í´å¬Ji]?}?¥óþËL—˜ß1H&¶7Àt)Ý®Ãk¶ú3Œÿä¾+íå§ßo¶1÷þ²7ð¦ ÿ¾s)i‡2ç鳨ó¾ìŠî4êóJºùæ/§ª—T±‚±Æ-I•r—Œ¡ˆ `c:™=h’Û‡qÝe7ÜéïtÂí_ÿʶ²ßbx¶d|*/Ü4 j."ÑÇYì"Pݵ—[hëÉçÔ:#D~äUÞvŸØÚÊ33b  –6‹Í'Jbýµ­G!ôs˜ßtðÊzÅêöôïGÓr5S 6îìbO" Ÿãÿb?dÙ%ëéÂv_·‹™æu³áµ Z6hrK=kÄIZ´‚¥uÓåàJ© wþÏÂO°‡ßsÊYÈÐ" >à¼ÉrúÍ)qæêã¤êqôfÌ”£ ,Ñ'5‰„Åy.qà,Dƒ ¤çxÓsº~}‡‘°. ov)@ç„í¹ô{ÝÌ0u§AGÏ„à ñ¬ÍÿnŠ×e/öOû`Ä3êÔRpöëLÂ3KËÈscÙX>SÉ*xƒØér¹GPa!ƹØÈ@ËèÇF¶‹^p¾Zù)Ö_v=½ê¯y×®D®WÍWKqIµÞ¨‡z,d©mÌ#•bi‹7z2ùÜ>ÖIϸ<øœ¹è¬d¥ Á4Ì,±úOʼnŽÖ†¥ðx²Çá+¥ó•mÜ]ÿÁX&¢¿úê #~#içnáÂщ^YÊ ‹xýùó$¾o'rÐëRuÿ3©˜Ù³ õýiRàŸÖ$Ç–<{³ V{«Œ×Z¥ŒÜï_“3ö¹Ãí?QR«½/@Dd'üºø7’Á±šÏŸé)÷^1vÐåÉpCïífwnP« ¸‹H–yD]±/,ló*‚ oá!¹Ï€(¸^ïj'ðOp™&¤|ˆõm‹ØÆ¡ˆ=åšœrC!¼?Xꯋ(S L³xÛ`aöé.]MoL[`d/7š0@ _Œ©Çäeà]`µáÕ…)Qt9•]#Üå’ùÿvVú•Ú;Ôŧ×@ÌÕgÐ0±6{rMc‚\`U·dVŨ}ƒ÷ ó©EÊü‡JÖ>jE¬õåçV?µñ¯½€¿gY¨¶PY%v,–ŽŠ‡ 1©a; ³|ZÀfô×0ÓðØBÏPXÕE•šp7Äðc`E&K¦qˆ£N×véÉgè™CʹnÑ)W×¹ôÌJþ9¿" øy¡sìLfHßob/&õ›jp…«ï.!]$eE"’|œ‹Œhî…@Ï%§n·’àòáùxÆQäC þÈ*¤Ð·“l“3i•¿¸¹å4·MZD¨ó–c! dü!¡6ý´ÓÞFï9…8+«b<ùq[äBzìÊiŸ®ÃÈ,¸Yjž‚ÄS4ýdLO'nÁOä~ßJ/]x·f“ÈÙ¯UÄœýBí¬»NM°‰\[Ó§Jò ïpŽó­ˆ‹[¯×€È Tk°¾`(`ÖZhÜÆt1EJYDá"váû§ÚEí‰ó%è¬a {g¢,œi,Ï?¼Õë,šˆëy†Û¦úß3ä;…R6\ð=ÅS»‹úúƒ­G­«[Š.66i”h‚Ð`°?À: šö;gSM¼v–ÉyBçf;½íèO€Ž ’öq:¯&ü­šµÑÿò|´™°MŠ•Ð!У@ýô Öƒ<$!±;±– ¬µà=@rSw ÉK|{¯¬è¬õ•¤9]Yš÷dFŽŽ3”Ài¿\‡R@Bo& ?A}A–<¤=˜ÓÌEº:¹æ`UbHÚFVPhÁê–Ûãk”dð±iÌ©¬["Ψ‡Ÿz| .$KcU´“Ýþ|ý:š-8Ö£«vBMKµ »W uˆÜìéº?ÏBÍÊ ò¤íæCîá• `B8œAϨ 9%¯sí BH2uvdÔoš~Šì¤!ä½ed„¦E_J¶¡U‚Y¯){‡ª–͘‚ÝrýªMJ·¿fϳTö©cñÎÑäÌ:ß Ó’éûñÊø»ãÍÑ`GÆ~~¥q%¥g|×µ£PAŒ\cÈCrùÑiy.™ãQsÁŽçƒ¹A©Ò[·ÿdSç;Cé|Ÿ‡^Ñ´Oë–r+Ïœ(šÅ‚OŠR§-žÍ³ƒ(ê¿¥U>j@„šOþܤjzÖàý€`Õ¾ •`ôÙ¶+ä}ë]ËLí2Añ>å¬;\e\5Óñ.õ M.Ù®?0n¬îRCGµzñ¥ˆˆعžA)ÙsA}ëHû|‚Z@Ò=Y‡&_šuMâùpźiíeÎ%Rvüðü-Ï’IC2„,P)£²}Wè,ñI…iõ* &ˆŠÈ2+ €ÿ¯„fy%W2†œ£¤˜ÌÖ›œ h¹Ž-- ò€õPÑõY•©=@õtH!BFuÒ3Èòµ ¶bKºO2¢cwì_mmR¾ Ùø©Â¥Ÿ°M6Ï#±Ç@ŸGâ‚îÒžcvp3¹:9Yš€Ãýž7NÇ‹3‰ŒËùÛÇý/DËzŒ‹‹óÊlF¨ñ ̼€œ^(ø¤*Н‹ðépÉØ¼®>"í‰ë0õ=·ÑŽÂ—0)a?£KÔääu–1UwyìåÐ¥w&®> ŒÎ£ÊÏM*÷.O£}y¼=i6œ‚(Ö“$ϵ“`D»–ƒá ÖhAX¾0¦A‹Äðβ˜¤büVKFumÓn%M+.à:@È‚°H†ÿiÿˆü²º|2¯ ´Ø™]˜\uüÐ=˜MuâŠý%0ަÑÌEfÈj¼+A £Þ§EØèz?«ý˜“:„ðj"Iãg~rHá K½‘^¯ZÔ£œÏ˜Ñ£Nñ* þÙxî¬T~823UñZ벺¸HzbÎíëë 2H„F«5¦A.wk"ÄŽy˸·"›Ê&•gçÖ·½++X"þ–èjÁȱÝX[F’;x F›'ðqщ¦2¤ÔÁ™QVÞ±ŸÄ[Ç©1þÂæ ô¾­Þ¶’èU¥°Z7cjŠ7&ç'OЦ3 pÂÕ MB0€i"a ¹c8›a7GßVî€M37ýc©$…±‰¹Ôœ¼ËÆ÷qÂ¥¬v+%]CkÒC<½$Z§“XÆ¥‰…TØÄãú:dÇc”kaê¦:\kò~rFßmK &ùKñoÙjÁØýê ÷+*ØCǽ˜ÆH[á›0"ß!ÄžkcW†ü˜,üÏçô# ÙO‰Ê‹ã÷0üÏXnØ™8KiÑæ.%‹bs7€‰êéT˜…tc¢“,ZÓ³èñ_jTH¦+6yàó@øKˆäå TU#ÁxØbJâìs¬rºÔ_Gä* q“ÝÖ-ÓPɪüV} é‹ff_F„œ*p[¸ZšùvÜ^6m, ^3—Ü[»Ù,›‘›â-™C*¨ÅÊÓríß ‡œå»|nޏ0‰à¥²]¯78x‹äV+s±¬QÈÉK}.8MË|ÝëàáWH´³rHD¤éÛœ[Ф{#÷—¿KäH îŽÿH‰H½Ù5$éŠn×*‡À|‰{¥ žðûCé ìeÿ-Ù^Ü£¶—50>múx®¸u™4Ùí{Õ§B"FÛÒ £gï2ØŠ/òa呯aúCçU ¯¾ Ú0b ¹qîªÐ‡zƒ©é~žv ÑpR:ææ;Ÿ¹*89y´'¨¶.ÿ/ª"Jø’ŠR´PTÚnC¿D*>dT|ѱ´š\N l²É<°£È¥O QžÖÌ“ò «;À$5ë瑳«sS(ÆèTãP&sCœr|Ñù/v ù–e`u´oÓcd´Oôï¥öRÜ!SÐ0ÍŠ‘SæÄrà&é˜vpñl=ÒÓ¡µ" LdÊååÖnqÒû$›TBAçË?ÂS ŽÖ“]£ OzN ý¡•–·ÂÖï#é‘-hîÂ{(Mñº,kötú|†ˆf|éÈqÖ0Oà¬5óT]gNÛDõ.~ ‚³W*q¿Ç5ƒ†µÛ]Gz~ÊÏ{% ¹­Tqœ‹A1c¦ý›ïSnõÂù ’ÁP‹˜Qž ô2IIBAÞÖxVè%Þ½¿/¢yYío¤Sv´Ë3„x˜¨eŸÁìc5|0_p Â`zJS Ïq0/þ¾á8ò(V¥ÜutØÚ‘Ô €œe)4@`ìA á—0ÎižÚ+´6ô9Äš~£”'ãz”5Y"\TÈeñ¿6¢ERcð÷çÒP¾AüdK`ò.ð‹PÅ¥cHŸûû¦ ß1û»ýC˜ëP4X¡øîM &ÒXkÏ $O™Ê13¤»=?nH]Ï¹Š‚O”§ü-¸=ìÔ¨2D¡ ïJ½ð‰U mwM“¥yŽ‚¥ 7µ„i sE™Œo–nþ2•îºë˜X?í²Ÿ_7TÚ1&Àüº,O¶«!ýš—Ð[ß+1jøÌñÄYþéÉÅõnpà:ÿf€(=‘ìƒs™î/tä¬Câ?’C#eß­}¾oãLÐÛîdÖ‡ºÈ¶¼² 9ï#ù"Œ¸ôÄ0Ì¡§üÍ+ZŠkáa‘„z7=zP3Г‰aŸeªŒ`ÏçƒrïB–™4™·Ì¥Ò*ÑÙÉ¢–¾‰©g†²™uL(²x肃VÇŒ'¡oÒúûû²ÁÛ eCuf±M/FÈÕ¿cëÔ O^B @í"zdÖ:yÖÃÓ4;'ÀE4&6™ ÓmõW@º* PÃ@:¶ »ëÌÃþR÷!›=¸æ¸ÖgakýJÇ-tªº¶É_wË5ÈÑSÃofC#3í„âÊ ±k®Ûl*øôh/Gt¿{d iœ.Áf[Ùú)·‰c1â—8‘eÞrË7 É-Q;?ƒ÷ð© YgRmö¾îìfLv1+]ÁA¼n$(AXÒAéHcg¡ñ6âOrWÙñ@Ç\/²ÙwO=I€6NDÌÚ•n¶dT96Ó”AUÙì÷ØF)ïþß,›?<º vm%•÷B¶«ã¶¥ZêU¥K¡Ò r¸%ù; —2J‰Úÿ‰X8è$27=dãA¦ÈwÀvÃj§åÁƒž=³žd Ní‡ç äTþœÇ»GûfžŸÌ+·ýSz¥CSï¸{µ>eÝ>÷ÞâksØmQ i¢çžÚ(­À)>´Ól–"‘ ¯¶ËãhÖè …Ì–-Žq)ã(,\ûÌÊÓÚ(ø^Ó¼o־И'‰ÒŒUÇÕÆf{¸uÔß]h;JàèCo’Ì:Ìeφ Ÿ…q>ªßu÷žûƒìRÍþ1‚é:+ÜQ ˆ1lìÿ,b0rÛž9&|¢¾14 þøìk2‘®Oޘ̌>ižcH›Omˆg2aàïHÔ5Ÿ$0Ïœ„˜qYæ”…øB—Ôº›O4ªØ¨O*¿¹O!3ÿYÖ¬d[9ésIÐí,„îmïPÜñ#?çYN µÍWc‚¶ZÞÁ6`ä¹øÊDX;I]ûdƒýØ[.†C<ï+«ÏŽ.x/!ôd`â%V©¸dúw;Þ¿¸ù­2ê`œí•‡¶mÔÜØ$›ÊMA)µeGqÒÀâÏ‘@70(±É|‘ž»Ôà5ùŸydƺîÞ§K‰ßEXÙWŸgÈ Zh5”ª›9×5#ñÑÉßT¡b¬Ô}‚-lÂç||½«cØJ3W‚ôÇÚ6àaL8ý O¿¤ëÅ–§÷fjb¥\ ì š¡Âã,ü¨ŒK{“ Ï“7Õ ÛÛÊòú˜>:ìÚð¢Ú6¬ê4³èé &b{ÎÒ„y ŒJ>¬v‡!Ò>QÑAB³o²@”Ö*Zª—¥NÆnh(WÐ)ĉh½­Ý/“ÁàÖT÷[ÌÂ&`èw¤V½ ˆ^Ö±·ïŠ ,.žm$ÿDKÔ¯ª¶pI³E(–Ùo2í0HÊD™opËÙ–ßÐ*i£í«ÝF ©\Êç$îÅÁ[¯ýgd·P§hhÜ’:º ±Ó˜cæž1| ¾þ’ñ ÆRLˆxbay­i„'mú“›]oáí}æŽ&²@èŒpÈΦI^ŒIÚßË<ü~ëU À ÍjSV ªÝ÷ž°`$>r‚¶òßÞxÉÇò¤J¶SwL•äÂKøè¥øP÷ÇAËÝ©ÀaÜ2¨N$…e·ôwßÊlpô¯Ä­­´FIÔ4z¾lµ‰h2w0±²t³§Ücz‚›¦Û¤-ˆ”‹F@X¡Åä¤{v„žÂA£Úr´ÿ]Gu|gõëd•åÀ¢ Œ"ŠLƒ˜M(Ïs–€ž-ÔÞJàq6¬TC+1‹kß3e܇6J,QDÇ.ÙÄë «h~jUKhýŠœ}¢¹ˆã ðÆ(yåÔØ°HÖälLö ‚?z’è;¤/‰ÅôCÅÞZ'ÊHMF ãåÄ¡ ùSÅpgs¹ErUE Š©"X]ŽD{zS êÁ§†É¯©˜Údu~“ŽÍÈvzY=L=|pºžHÜý!…³R(žcè€{£l%Ûô‰K2$«R$¥EÎX0”0Ù6`tuªýye›ã‚ûƒÓ%vÌÝ5[•šW1w^œc™*"v5Î¥3X«Ý¡ ïá‡u 8+*.÷–¤¯’°ˆør·û–zˆ&e‹³f3ÁžƒG–©'®»OÔ@…6R«Ÿfþ ÷°XÆ“âïð± ˜ l~ÃåVªÓ:LiKï–‘¡ò̼àºËQ¶Ž……T—GH›qóÕ¡Á×ûFAQZV"ªíÍO"z³I×¢;ZÇõ;kÊ¿Ùn?Óh¥@,u­Î*'ûO.­´>ò¯…¨ Á^Šg²lE`6{ª\ȱ´vPÏöþb[pÔ(îðÅg?èèžõýÍ=íÇÈqìãÙC drlµÚ/62€Wk3À´_\Àg{×þR’s– ¼X¹ao¥Iÿ›¥ L–«ÇÈ_“^…×–­–Ò©a´À|u™Þš£\ø$Ü®æò˜À¨C¢ÎjÏCp}rbgHÀŸ8ÓÚ>iW~npI7)‰3lO¡Z uᲦÀÃLH¨\~ò/nöbAc€T8½§©£œÉÀÀˆÅá ~A’ "A”LX`u—¤4XnâËÙêÓãÀý%®’ªYªjAðgÍgä6¢y»>2®\b<1‹sóEMàÃÓ„ˆ>Føê¦†H?¦_ÉæÁ×ÞKd9„o_lR¤¦ú5'{CãL5Ú~ž/µOG»ä‘aŒžX í~^ê¸ö­É¨$U 5;g[M—-Æÿ.p¢üºƒÞ øšàžÈ[–&ëåÏ H(–ôIyËr9—¯è>#E‹ØT„QD$5ƒcX@زn϶¢L8€?È ŠøÒR'ÛGG7"&í\‡ìˆÜšJÈBÂLäÍi„Úü¦· `<Âî0‘8V²hŽßrnApœ«·ðÕc{Wº^mÄw/ 2È"vzíìÛ­‡Ò‰œá³cŠI Ò 6o"é©;XW5»$ŸÈêU\iô‚6+8Öµ6ûªˆoùô¶µ ´Ùí‘Üòßg>®~ÛtŸM5J”qÑùüH=ƒlü³4~»Â_,ÃZðì(B“&«ô¢c2ü!¶’þL{U.V©ŽŒ@çØÙºT|}„­ïDöÞ3O“Qwx~´‡C`…m†Ô;3ÆãPð\°ö]Aä8a{\äò~v&´BcXhw Û>Ö‰^œå¶Ú3ó–1D[ê”sX2IEµWáÀÔ,åi99Ϥå#—¶E¼A¸³697Ŷ³zM(Ý8)ÜZCDÉ' —ùð—V*Zdö­°º¾"”’YQá¤yÏ¥’íÃÇÕÿ'P¦#ms2¾C…™TÄ\XжÀVv›”‡nww¸²RJ§­Y]À½]èOرu²Ú.¯ŽíP€øÚ§ñ ªÂuÀW¶5#5•߸JŽâ%~Ð!¥ÂŒ³¤(/”˜m^åòC›±æcäx&>ž¹Å;¶›“®F°kÕ a…kÛ(õM9FXNzÕ*e§Xõ®1£½÷ä÷¡hVó/l9‚™&µþ“ê‹ÚƒœÄ›@ÎÖIr#Á ir¥èÊ6~KCXÉ“'ñô‡•©)fžLí×Ù•!FÕ‘‘„œ«¼–Ç+›KM$_³³*õ›zÕ Ò‰„ñ¸ õ’©„’f–ªNáÚY˜d’PœnvfØ©âÍyâKÐ7î¬Àç΃õZÜIïfƒÝ¯ÏË]Àª©„´ȫݸ‰Û ’ØÄ•†Ô,?:UÉg3ï¿ý”vfñ>ÌãÀAÙ0«Ûœ§^¯)P 3ïÆ,È áØ¯ ̵ò1–¸¦ø^s¸ Ÿ²vA¿¤e‹`›À^Á|—÷ý@Œ–˜˜RŸië/tšÊˆè¬pÍ㪩àì,oNbåhyOï®'éwý#,ÆÂvXT†Lw€†ùÚ.H·­Y_:Î?{‚(oqo®,Kr+cÆ¢VcFÀëõðV?%œ‹ lõûµi·ÐHÅâSÆW&²¬i\œK 1e Úr xŠmVD;û”[ƒ^Wÿ$ˆÚàQ4 8óF° !oëä(C±‰ââ‚™añ9ÒËOäTîO3§“¯¢‡mUqå0mû$° ‡»XE¡Q»~„Ž;q_¦R€IABŒÃ&´%ñBQ«¯‹%tî×éâaÖoÎ3É4Yž_ŸÔè„:Í‚šÌ3:§¤`6Ô£1ßñFåG’ñ‘<ÐÀú^l¶Ä¯/n0¿ª$Íó(® x3 å1ì„‘ÈÄ~Ê_³ê“ŽY‰R¥±û@pïƒùRDQÂ`¤õýG¥'{HL$R+ŠˆÃ*ÎßòŸˆG¾Ì1Ê™ü„FŠñg¼1ÔÂ!â< ï$]l8õøÎ×nϲ(ôƒ¬*ز­dís"ëÎàô¡>&’îÉI.£8Y&1áÀ…IòåºÑ!û£h.£i·câªB øÞ´¸OŒË¾ë Êè¢ï‡çbÓÇz®[ð§*5oŸì‹4Š‚™'toOÆ*K)AÇÓtÕ'Úœ)ªs@Iõb$d¬"%.ä5aEe2ì. vóM²Sê7:D\ÿ·Á³ûŸÜ¨ÐbJ,¶™Ô6‹çF~‘|çmÎÈO¦æÔ™ÇÄBP‡À•L2ùÚ쾊†£5“å[™ˆÌ¥ŽlRåš›¸9pqS —¼åœDÊ´WVÛÇC Øèý:’´r‚*©f? Û›¬ÕW‘â"/&ª]Þ1F ŽÃyÉÃMå< °¢ E½ÓNê ËK:zÞ]ÛooWÎo–g3t¬ãÓ8™¶ähç›{÷= á;[zÂ\[Έó°y1\X+Ï«[ðqû°P.Ö;8srü¶ñnôS—Šæ±æanähh}S¶OkÔâáýJ ŒÒ¤‹‹Rë24tØRîÂG†"éúf¿…Ä·…ÊíÆàYvOáx†ÍËÊãzçõxh<‘Šî+pÒî——ÎÛ§OÆ;×(«O,G-ámŠ‚þGö<5ú¢$Y‹4 9eÀéù`Ø : cãSG&ÔnK\[~27R{dvƒ¹Q‰ÍTó­õNoßgEºÿèð8»ëÖÌJ¼U¤6´[€Ù¬WŽdÊkuÖìb=á#…¨Á¾ýüOÑ Sz(&\<ï }ËÝ1‹”øõ ñˆ*e’¾AYŸ~üáÚ¡2yg€èÒ@Å6ëMuŒ(!hþ§ï¼Ñà á­`sŽNªŒV*»ReбTSÍíÓR-:(ð¼*ͤsQ*\¼ëЊí9þ¿ª)C>Gm(È8ö€Š¹_|òh"w/¯ÒªV¸G\J¥e“·q4¶œyç»tÀlÖë8|$;`±XIÜ †º¥rÉ"¹‚ÂþþÀ[‹”NmoƒÅ}ÙðR—ÿs?FÍŠ÷°"–<·¥V®b±`}Q¦§*¶~OëàšB“Ûã3Üb"¥V³³ 1¿DȦà‡1Y— n=z‚ǵOé³í+W‡ní±Ö"Éh|8J¦&ÏI¸žÄš#vKt)Ÿ3(?ܶ¶\Ñ4~†PRÙT2É{×ÎŽ¶ YqŽbHö'ž€üha,ˆZÍêX'×qˆSœþ„w“ïcÇñµ}B\âc÷-f]Þ¦¹´R ÒÇ ¯oAœ$=!/j4üqììN+ÇÑ‹Ä Î«Ý–ÀfŽ}µï >ä_އ±Í4±`özÊ¡œ3Ä5‚¬>ö4~EJÝú$í}ÄTå¿ÌTD©’ÔWùé×{ÚÛœˆÒxææ•üÍŠDò'³¬‚§·–÷ßZèuÖ®ò(x\>z6Õ˜ŽbUºØ2\æ°êÁ!‡HgµÔxªhí‘ù‚/ ¼±Å¶snj;¬ß0‰&ç TÇw£)åã%ÜBûáÓúp¸ '‘N½SoUÎvXY•ØÛ˜4IØke‡sÆ? ó&¸2uhÆ(nå2ZgB%¾bÉtçRÀTœéLK¼"E i~b—”ij¨ì‹>Çø¬Rªèô 7í ÀAŠñpóg?HŒöð› M•c½ÃÛeL¶ûȶ‡Ñ6˽¿÷ML‰ Q˜K?iAË â9½Š Î("ZϨ»–âë#=y÷FÝ®íÈp¿Ú+joßÜC„š¸Zö9Åw½}áyAÚUU)Ðíp ¿ºìæ.1z8B,_ YëRïmoí¸kEÊ:!}H§´VgJuÁÐÏ øÚZ ~^5PƲTOÒ…¹Ðÿ5PŒÛâÔ´>e ®ÈKƒS¤lCJ¸)´Þs!y:a·PtxÕ&<Þ~iݽhw\Àa_¾­Bm&ÿ\@~×Þ®$÷dÊjݾƒÏ²yûÀl›%‰è\ô'¥wI·4)ec†"fjL“À3‡É ŽK´ëb¨ö߃_xÃçÕž.MY®•6h˜izi‰mÇÈfANT†ëEßÍhÜ-c›oÕòUƒsÅ$Reˈ=]»°ñµ+/È®Y–« B•D"x?èSq>ãëR†’°Å·TœêPÈØlÆø*y[­ÐȘ!Êé†ÝÆOWrŠô«Ë…˜„†íHS§‚ôÇ¥»”œa¡i#ÀKyÌ^{‡-iËá! AïOý½i*õªãêY\Õ³«-ÿ›Yâ°P¨ -™“lÀ,'Ø·8C78Q<ÉqE'›†Á| ”/qêP)#èmW‡Ð–Y)Å:Vurµbïé\<ŒËꌚ»kÚpVî.ÁaTSä‹_ðÇt.ÅÊ+2ò0þö¯Ö‚@mϦSc¸0Å3Øz¿¯z©¥:ôEÈ󮚕<)õlÏ'œFÅ̸k?ï²ôu˜¨ýCÒÛì}cvµÆ™Ú›!,T”ÄLõfPŠ›Bÿ¬Æ­%i¶«käLzCĶgܽá :¥àþÈ!–øV ÔÒrW¡È ©ÂKpß⿲mÝ•Ÿ£va˜Í3ÐJX^ÄÈ5îÀK>/ñ*ÒÅn´é¡é!ï¿Jª?$}/únË„M‹Î<ÔŸ9eŠÉ”Ù£nÕwŒ1ºDKG ¹L¯œxRY]»8Šqý¶úÕZÇ’(ñDå%©ÇjA¡:f¹çàÃí¸°˜.=uÆ­˜ž"˜¹[Ü #®UI]ë|btùR&„ƒTdŠÓøM?µ;föÁz„ö«MäÿgIøU{â÷"Ï2HþÁ}]+‚@_)B:y¶¿Oò¶xWߣ˜sm¸£Ó ‹À€ã튅T=ÇCË’ RÅF’l¨hD÷ð¡æAç©v^«éjç ^ù‚ÌEýF"°ß›Ö˜¼l8vŒ|*ºtUpÙÌŒ–ŠE°EbÇm©G`ßß§ ‰x©SƒBç¡%™,!ü{]Í&rV-.>³¯BþÀ™ìø‚d/ ìîÀÃDÇXÜ5Msî¦Z;¸[)³´ 8dž—ˆ©Æz›Ní÷à·ÛÂÒ‹3úm¬¿ŠÀË²ì šÐÀ^ÕU<ÂzŒc&wX.N˜MBE[fÀˆéàÓW·zQ?*Y¢Ù§l–¸àavé:‚KºFïI7ê¡fü{^4Æë´õuÊœè~„ë39ûOÑ¢ Í÷<ÏPè2q\ðomI³ m­åûÐG•x÷5ºjÿ©Ä¡d–yþ‘<ó[„ ë}è$ÃÉá7—kfñå ›á_a½è÷_´3Uÿtß”òô˜f-å¾§ä2(ܼêûçÐH…“ý•ï¹­G ,UZÀòbK¬4éaÈø/ÕN† Âë5Æ„ëÔÊŠP€¢ÐŒ±á¸ü6@¸œ® Wžÿ £>†™9"§@.sæéŸÙJväÀ) kn/ša9xSfgòä2wI™Œyγ®|ËçožÛ _êšêÀÇé~| ü3¾Siv¯4øO®K¤sQ nÇò—Y)¯/¥aj¼Ú·VÏé/:!ñ"Ëiœ ž[ÝxÎ$­gç{¶5‚3r/ ‹JµÛÓK,ü‚å ß¶¿tÀ#‡Ò‡O{šjrñ…ÚuÀ_À¸ÔÈ;÷ãªþ~õ9?$;é)1F¹ê¼E*ª‰+éT”š°{C‘ú Bè‚Â+42¥LG-Wl#¸ä7ë·Y£à¼ÿ¿Ä£ÿ÷u9Ù\êÖu¼J˜{c85Ëkßà?ŒsÈÃë4¬™§RU£ ªèœßx@£À5ìOk»›’—26rbZ8õæÉB¸n+Zòêi4T"ôÕiÀޱs" dk3݈ÿëìR`÷ë¦é‡çõ¸YŸïÏg¹Uµê†X=Ȱ!ÐFKÛ'EŒë؇ ®™ËcoI¨4wµcÙJ˜© 'UÁ‡÷" §+ÜéÌT³ÚHëü±# û¤ "}íÕìw¢"@+âCʑޠa;\-yHãÒ½¦â¥l–qjì¬ß@±GJ3¥ 5Maù&SV(3ªhÖrhYù<Ч;ó—$RTSp)fÉçàQ'ˆhÉt¨ x¤£vÿÿŸ¤Šê=…î⋱Û+}¥´²î˜¢‘?pC›Ãƒ™@€rq‘žDQ®|1 ”!;lSŸôŸ6#ø@$’ÊÒV=ë­·nZ|]Å`Æ ziÒq,- ¢ß¼Ö­!½’ ˆ ×–dË8é‚~nƒ¸'ÀÙöHi}o°ŒW–•ŒoÁê‚l)(ú~zkwrä ,÷ô9Ø4Œ—`‘Â}- 9Rœóžù2“»&]\¨ó®’üQš¯o›%€è„X1ƒ_³D¶r1Š'nï.(¤€iÚ!„³å—VjKÕyP ûv µ¤t6‚íK-Ì]9ãÍL½‹BÔ] ·] dçS/Oaa½t /yØÊÔåûqµ'û¸wf}x¼Ïë]JÅ£‹qI{*rDk@'úg?îT6¾ø1qå â å Èü]ÎÇè:×ø´Êéï­¼rq‘­¤×ùX¬v\ þ”)S原1?Tá:µ* 0ò+ˆÄ023Ö ´RË 0ÆŠÄñN3ÍW3åo©¹›â¶Øú±NfyÜ hé[öÝ*ÿ?e¡>œëLCÇá<*¯è]ܱà»ËÚÎBk±©4˜ÍßÀ‰e™Ó¦5²Ï,ŽÂ2ÊãÃ_™”܈v0ÝÉÀƇU8éc\D[%/r¶¿¯DW.W{‰ãÿèH*EÑÎ[ªák,(¾>RÈö BA›r=¼ŸÖy“s™19lª $x.Ó­”¶˜LëlçÐ82xøÔýQ)y'L!²?tA–Sù¨¬s4í_‚‰_ ½2¹æ0fö ³%T€ÿô¸1Xµó…ky;Ã^n-Îk#SK>7Rgº$OåžXgö¶¨&”Z. Éqõåcû½<('ÀUƒñ)cbõ9bË þ —?Évj!r»zßs¢Yë(ƒ!Ä‘L¦ ÷š³ž¦#£6U'ªÁÛ@xý÷_¾~WÞ°ëþ…Y™¶"Â÷…?d¢…ÉägdšeK¦öQ9  ìÐ ÊPe’s »Ô±mBV38óô`~º”Ρ)½[7"C#’ÄÁ„Å)=k‡®dŸÿŸ5ñI(Á&0mþÎ'Gà…$IñHø–,+Õrˆ1þ¾[@OÊ bðù > Èïw¸¯‹òÈõ ä×ço>-ä>$%§ ª4"¥IX'ëóm¬Z ÄÂéYívëIïÉsDò,Ÿ| Ó’wLÝ8óÔ[r®¿/éÜîp`±‡×ð-¶ iš¤ É<(ÕÜì"N3?öAzÌ7?ÃxKrñ-—W9å.iç«Åt’l>¤¨øßOb³+Ê?îL·3̳=€¢A3Єʾë×ñdC+¯¸Q$CTNÊŠÓ~>§&”z-Îq¢¼Ó ¨RSC§…þ¼9ì‚4½™ãF+6·‡~¿óÿ"=ò÷PŒO+IÊ"¨ìˆ[·jІ·ì¬€¨6ÄÔ){siµåÚRx8å‘PåZÔ”±/¤é8GQvÖ`7#ã¯1àÐSøx©øOôª¬=^‚!/¡÷fÕhQ'27YÔ~›Žë:é+¢˜ÅP5Nu¼ÚÅý/V}.œ²4ýìž„Ž»Á9žõ¬öfR‡ ”­6ߟ:AE{Êy_}‰­´L,…滫²(yázlW ÕȪÊï6ý¾,;gÐØ‰†©ÆäÁé|‘?*0{áö–i¾œŸbÀ‘Š•ì­†…nü]ìf%9B¸ ®•S6z¾ShŽ‹6ŽÅŠK²a³nW9žÓ,Ž"â/4N(Àn¾·ó1»(<ñD’VTÅ“‚5(Z;%|8½@ƒÑ®öë¦úò‚ÿ×*à¡g"ƒÕÖP´a¬&Kê¨ñ´ô*ä»H›ì³QS ¼X(`,Îy%_$FÇ…DÁ¨Ž)æi–q¾Müžn2tIJ,Qªvˆ×þdQ²c5`¬ß¡ý7y6Z I·P7™ål^ßP˜QÅFSWªÄ[¶@,®ÅǪ*ѽ¢rM1«º§!°¬‘š´§xcW®Îäp/,¢}<»öNÞŸ±ûÆdpg¶GŸƒ‹5™¶Ï‚‚ fª8ØZî¶—BÔrpT—^·SÃËö ÞrpVW™Î¿ÒCµ]ê”™n¦Ÿ™a1ªUU‚Âó«i@-ó8ùŠŸœ=þY­ô[¸ËQâÛaÖUþB^o ùúOÁ-+MëÒf¤´¿û´Y#q |À’Ýl X÷áDYÊÇ@©=oN¨¼ºSDNïúù|Y¨ÞFÂØZ[‘ê8b~Ù«Â0§ì8Û5Ë*¨‰M! <Ô׋G:˜ û4!ÃßÅ I0a}ê(Š¿lÓ™0,vˆG;6®ž]´hh«> jåT.2þeëgÒžD“›þ]Òò¹Y‹WëÚ}š´ûÞÉ’t=ŒÚ/ø ßnF¦„k@N{ý'@/;-jùÊ÷ 6Ñr19ý¬cMcE°w#¯v¿ˆHÛAID`Êöó„0“Fö!XÚâ(KÑÞßÞù[¤ s™A4v!ù'@3Sm̘œð¤R‡‰1C½Ô¾`uØÖ&h6%8°œ‚ÅÙY†á§¬jôÇ©ð`’uÆð¸Î Õ€ôÏ7å0I åäÇHNÕ¢cŸÁ: ŸJ¾PÿÓ3dË„¶âGèýþ.ñp†Ä{¹r¾x“¹ý±ivý„ @“;öD–°Ã\W,^Wòž0w)‰aù¾:&Ri?–)ôf€öMF44ê•ý8¦$I(}7¿º¹\»Õ 7› &O1þS:–¿N°QG"ö]Þ§Q¦û’ÆòY)¹à¼763¾K‚:Ó" ›€h£*í€Åz¡ú¯ë`¦"¬rKùÁŠÛ^[væ•«ôÿØ=ÛôÙ»uáÆÙS½£ TUÃáèõz;øø" QíGŒ¿YD»cQ®Ö‰†ênhÌ¡jÁRÌ]ÂKD^1Ü÷ƒiò‹0|)Ýt}ÊÃ>«6°K:ŽÜÀ“Úë3¼œL› e¥ ÕyÉŽÓÌþšxB s¢öá°ñÒæ)éV£V‘:ÒXàÍ«bËœD;,(­šŠisrÂê÷ŸRôõÏŽÌ„ç2àÿ|ÊÃÒÄC,iEbM½ÜÔ- é÷=Á¿oKÖm€oq`oèÜÙ¯™«i1û†‹Ý‡T\Ö"E}Óù`kgë­q41mµØ-ùÊ–Ïxd€ÖníSСȼ=§žÉX4y•«-©§Þ?UU´ÜÌŠuçµ±Ì~8§‹x€ì«"'›ø‡ø9¤ßÚ€ª ÉËP¥¼tíÿŒÐì(¯o™3­†ì­¼m“ö®-¿>¤¼J™äbò]éè~7à9ô·QgɯNa¢(¬0ذ`ÿÍïøå”B‚qîAk|9¤©%±…‚~ŠDÜýq{¦½-”Ÿ(ž2½lZ#·çŸÄâR)f³÷Ó€¢q牶¯BžÞÄzü.'£¿|’U¨.ÃoëÎÕærÉ?X±ˆ&Ò:DTzŸZSaIoȦ¯mObê~*Y‰Ÿ[wéŠÆe71•Twéõ&Ô¿˜ýÃp¶¥zí ±>qOM 8âRÇ‚DyX4 °m—’«1$ÉÛ`ÌÍ[œG¬×#zèCÝw V„÷nwóf׋¿tŸ‰ãùBÊ33£||D üWdxb„&œWV»Y*LLCrÅ­óHfã¤L¼à–¡ q›üÓ¸{fXi’,ô ˆ±: )ûs’Òu{kî곦>î"l;R©yÉ_ã²{ÅÞ˜sÁÄvï/‘ËŸ»è®ÃåDÓ–N†<)öe¯€ÈªÖ}(ꎎãU,lv×±§^\©ò¢ÇsÜSÀO >4Š*Ò‰XÉ”&åÿ ÄG¥EŸÍ 1Nȯ.ûª.3YD˜©ká¢m€pÖ¤v¤m™Ú½v»Äex : æ[€' \ì„Íè\E„R»ÐCTD{Ëù Édÿ:E[륕õ‡3Q% ¯žA¥­KɧڭÝb68¯‡$ùMXÒ—_1¿ÎrÁ{`} ט9þ=«r+½à°èZ{Háú°7c—l£ Íþý6sÝJ0ßut×I àê’dݧ|è§2øÊ‘¶¦Gµo´¨Òƒà«ÌºCg§—ëý5àÙŸ‡Ý"° Z²îŸƒŸ6<æÕ‘…| Ø‚"ln¬çB*Dd'î—IJ Mëfh)hÝ=¿dìVWwKcNË.Ö¯ªX4ûØ1?ì>åiJ¦ ª®âUæúLî©©c§AÄRóË]ÞÜtèƒyRUw°=ŽÚ»£r€Ápˆ)Ƥ÷b-÷’ã÷7¸¸Ÿ€äƒ…ÈËyôÚs1NÐÆìç)_]ŽMho?ù\{¶âÙ¦kÑȬa×"¦ÿÙs®Ã†)¨[Ïůb·¯Cƒ›ŸèË(vwÔEƹ ¯šbÿS |œƒÎ1Y¶ÍᥪÜ5žoÁƒá|Áwn¶¥‘¦Ð!0]: K8êq÷nk?™‹ÿºÎyÇØåOÏ!¥L½ûä!µÿh Cçr Ã0¸Nr*´7¤ãJ¦´G@ÃÎ ë´^a©,¨ï¸òŽüZv¢þa낺¼©u[¦ë®òä NÐ ÑçòŽR.KZÜ4ÒÜ4B0iвs#óN¤MW`ŠPn÷³)¹ öyé–Ά[Áì)cÓ[š£ ÷W1Êž‡ùuúNmá‰óWšAjÓæwNûÇ õF8ɆU?ŽÓáŒNõfê9ûäQq–æÚªçQUîÇc)®µ±ƒŽVã”-¡aZcjIì8šI{ѦýÀüŽ.”ÎAÙ°_ÐŬ¯§¼ uÒu’ïøÃ˜Lðÿû3¥,£.›r0TÁä¢x¬:;àÚ‰b6!Ì›ÇauÜ*ïìÕ¡ªéþÍà±GËFüø"J@šÂo¸4Õ~mÓP „¼[ÓG™F;AÂ[œùUIU¹“óJDͼ&ûV;)s°Jül„ ¸•&Š È#Zj-ÐÙsO& „Ì ;ÌËhCó>i1Q‘vÜì¯@à{Y%<Â&ÛâQõ†9áñŒÌ‘ÛŽâæ-ZôR[5þî›P;ǃH]Ôª›˜Ââ ½ÙØ,ϯ…±lßÈõ „1n£`ùƒµN. à  =OʹuEvŽõøCõ«Ö{oqaC˜›àã+Î$‹ñq#ðÎUP3A[ìó*8óÜ´V¼ä»mÛÁ*±H¢ÈýZ/ö fLúÄ‘ÆÊÄdÀo Df ¿“(ŒxéaJ‚EYÖßvcMãŸ"E@Ľ¸œÉW_Dا-TËmù2"ưØSqY!Œr)“ M—j 8¸n•½±R~3 …|Gr ŽGt¡ò¢\Ò“ú¢´„Õ’½-|;aa&ë_Ö’—Ÿ-íþ2 j¾#öê)7:È©Nüq]÷óF^[47Ey^cˆÊŽ@\ž‘QÅ­·ÊçX¼':Öwk²Äßgš-ì."~Q]·R  ÁÒoMû–þÙ”´,2ÆAž$s¿pæØ äО4JFˆf»¼¹vúl»?#u»O@ ¼¥Ó]”j¬1ã¤ûš´žN<¬ðˆá™Ûž6qvŸØ»w2J“vbÇ#6ìªr±‡±÷5ÄHœñ„Á¼¡Mš¸íÒ«g> Uxû0–6ÙD{~⟶e‚†W°£ærÚ¦v-í6ºäj¨u›2-a½œçpthynü4Ût&³¿úCRXûÝg*û?Xåy.ȉåˆ=¤²1½}õ̼›F´oëE­_|Ÿ¹¾-Zd61köð[é—GÔ+r½šûúJëwÁ4×!›˜ô$ê|/ø´N r`$¡L¤e5gÓŠcådHiˆœRžãue$ß›±+¶Å Är~vü\˜$A²¡¶ŽODáë Dp4_ôy iŸºò”}†…:ZƒÐƒá”½s‘¤×ÐrîEîδ• -µp3àö€7~QÝcIÂÇ7‚Årëά-„^ͯ¦Ž²•i\W1õN·÷·Ð=éJ0ZŒããJ/»ü.B%cÑØóâ‡1Gf²“û,¨6ž|>P¯lC7-!æÃªèÜ-3KÁß“²\ø€µ0tŽxñ|H@>Æt0þåÿ­¤wg¨Eý¨!$É~|âÐA> ú¥S[W®Ü­«Ë'ÉeSØø§a3±+‚âÖhÃUÞü¢¦|T#M»ý9yY³ õ·eg†õy€´@µ±:ŽÔâ²kéî&=ÎYÉ“mçÞ§“¸°ˆ¾»¹ÀzíùU´\Hu×ÌË+¿µ:ú^›æì»kƒ1ecØCkK”eÌîBŒ»‘Ïškz2Ô´Êó‚ÜP „¤‰ûvô[›—#éÎ9~eCãØ\dzn©M‰)°6a¢ÆÁ;î0ä ’ÐÄwøuXâõˆ4 !¼0¤‡õ‹hˆ"ˆ_L&6‡iEnò ãF X “]œ¤‹ ùp¿ü5ÑÜvÇÄsO ¡-KrDÁÎõƒ¡v§d)Ü„ĽOxÐ k†juáã œµ‚àjUKW†%×Hœ~†°Þ ²en s­|°,¿»BdϤD—Uâ—î0dÝÚ"ˆr¸.D Îq'O)7µ½¼\³Â[7ð…;NvOnÁáÕÖÏUªnK(51fhæ[öëë@zøkI´±@‡#ܯ4MðB·^£,ÂÑA×råa¬U84u%ÖsAÂïÖE~7Œ ±Ð 鵞&®L1ÃSøóéhÄ­’(N¨Tì…ƒ#Bŵ^‚bøe…a–¢Ö’®™Á|D2/S}Ç4Ÿ«öÎ|Ùç±(SÅB´¡óŸpŸ2 A1ÂH’ŒRóŸ`'ÞèÌüùºZŸ4iÐXÙ‘a ¼¹|që7Zð Cpœ‹¨.Ÿ³>9c-^ð,{'½6¹…<½ÃjþpµŸäŒ[ÅÍ<Ë:’ΞZKÏr2GÍb¡ô™dŒšL@–Ðá5x7@MÌd0 (°C"¡ãÙ¤ÿ'(ÕŸ%˧½í×;>F¬«Wa¿´—I4SÛ´6C·1EWð[¼sÑ?}* ó;QXfQÛ夼Ô]•‘³ô)Bõl"ÅK=mà‚]÷ÍÍ'‹š¡üé4uZvÕw©Ô}òÝjûš‹)ü–šiÈ2J|JIíïtwÔºFðëÕV‹…›€OœÞÛPvpmœ–ÓÀ¤ õž3kêøqzN€ª_R¡óã$ñTñrr1]c§-3%!å\»™‘¶{ÑøL(ìXø7¹«`öûôkæþ-Ó"¢b€:Ί4/Rs\Ž[hAZn¬‚‰ÅSk.‘²ÿeÝÌÚ•ï Xå²·y!²_|³X(¹!)*ÙŠ!Ÿ6U³»¯q= Ó•ÜQìÜОͥ5ªL¦€T‹o´‹hæÁYxß«™W ‘9¬>ËÑÛäj^wé‹zó$óoÛ`šÀd^XX³zNµ=¿:ù0ôåÖ(5§8éÖ).Í(¸o6_¿ñ^_$¨iiÝ‹}D{ 6Õó…у¥2rK—Ga—4ôîId3Y\Öþw’j³²|äÕÈø7z’3“ŸàšTU"=ëåÿÿ. ã/¾šÝ&‘pt‘=ªñd?½ÉˆºÝ3<ókýÔe{%åŠVÀYVÌvþ+ç=zÈ}ñ†X>!2ô¼/,™—•Ù5õ>äùÛg\è¿òC„nËÇÞ^€*uêú‹gåi¸#’܃"KR°xÚ"r ëØ”ªóMüä¿62‡7¡¿ü€ŽèeÅì請åÚ2ñˆŸ\1wh}°Ñö:@59K,° —Er*»+@eN'ž[À)ô'-à"MM*ÈWFT|òròïlˆåP9HØÞf¢T((¹çHY¿‰*ƒ•gã O£2´Œ1ôM÷ÛZK ¦~jÔ}þ_NˆØšÝÜð \6r¯Vó×gMU°zX‰œåZ;y9vÛ©±€Rà?oQîP€30–þk$lŠ•–ëÎ$jPçC”ˆ+mPká0Ú]\š€„FFIÂIœÀºÈ¶uå¹³©Qp?Qi=\ öÙ!–Ä•oWœI.òºc`eGbblºTÀŽdÖOÈ}VKO“2Œë}!Õè`å uŽ¿[/¶‰é€Ï´7\ä?Ö_ƒ°èuÎw,¨Dbß'&-ÕŽ!.ÚÄä¡aÁÅì:ÄA¯â-‹Jö ão Ö®=X® ‹€A´Æä|‡”Yaá³ÍÆD¾˜é÷}°³“óÝ1!Ñá᳑BqgÖB/÷Z|e•øÒ ™ìÚmnI3´¶@W4¢5-Š9š¾ì†Á/ù·„Ú•Î U„þ ¿ûËš°Ò0 ã†øŠ.÷ÜÅ‘R´pºéò`ÆÓpZÇ™UX:Ò£¼zÑú ™‚×x‡Õ((–CªrÏÕmÑ»Y̦ºÀη]ZðÎ "¯ï@û‹¥0)6±GPzâ¼P–ÜMùykwP»‚MN­'t‚«øï÷+›Aœ™T].¦Ï¤–f –$‹§¾ŽuEhXÌRºÛ¬¦ ¶ÓKüðçá](˜J“Š—Î‡¢"Ë9•>U’s"(ɺPAYÆ!e†×6f®ä{¬é1äi`z¬ 0Épȱá õø>Ì5Á²$Yÿ’+0 A•9Jô_DžÕD G"Ý´aŠw‹‰²—øˆÁ :0Ä­øé¬'z莑Ž÷‹õéŠù¥ ^Ïð²×Ë^sê´Ã@i”Cy¿@ç\)¹IЯ`…aÐùQäÈLÕ«=ËàGöó©ƒþŠ5q|x’ÛÔEP`áøå9%ÙúŸõ´/½ )Wt@‚‡9¥°sî^R¾6€©i*âáßyÚxGb+¹¬E›ŒC-(™Îµ{”è`6람«ûõ¡¬Yø©ÆB>ÀðEÁHÛ=«#ž^¦“Â!¼%õ¾ØñNÏ•ÛFK‡™gÅß ½ãN2þX³Óq]Qâ§ôrJ×ôª|®Æ$->’[ݵP™« ª}ÚÆù¤ ![u"uÄóôÞȼøú¦!»BM¤Èàšz¯åkà’óÃrêøØÅÃøï‘ÂþçÊÞC:Oa¨·8ÅÁÅ~­¨„EFѵ7š‘iéÁÒkøöHýtøà†®þ™ˆ½_˜Ú©õ×<û; Lˆ¾Ž³Š˜@RÆ H"S&èáµ/ÍHh{K4i–”ëXU­¤‹<Õ— ÿäQ‰â»gœãÉãü±xï¹kó¶{Ãyš³´ßù—¥3&ßïä»­PmËo·D¨,¦ÎÙ ôˆ¥_DáuLKÌnµÆC‚LÓ9~ðÏV}ÆÖ(Ó‰z¬îýÖ >ÄsCõpD03¢?²we¶³uæNp‹ì¯ÖÉå&‘œ‰Ø æb¼©E”öPÔuœD•ŠèÅè–Yï¼½Æ ;Á¬ùOòò2J¯ñ{ä’A3Í›+ù…7ÚiÜr®àµX?Ïzè´¥ÞÚœR“?¥èñWõ£”x|ÄÔ£Y™UÜXò¥%¯gxhxöÏ_kOl´å7^MÕwÒ:ÏA20MXžgÄ`P×ZKÖ÷80ò dÂpkÌ. îaE|ãˆd\º¦r˜(Ë-ð» úã‘—_¡hŒ³-··„’'=ôƒ¬ŠûÊ“‚ÒÅUjHÎzy”µËq]‰"ÌX¼õà º-À-™$œ äˆêÏëQ8XAý©ýBÉÖÿjw8#茷Ïõy"A©CY¨kù×f‹TÚvkåÞÞ±Ç|G?°1ÉNÄ/¤kг]Á~<$ßåsJ­Þ¾›Z–:ÙÅ–ù¾®jƒ.ÅÍ$MkÈô±ò=àq8s '• 3‹KúHl,•LýlEw?ÔÊ>:˜þo8¾·ôЇùSÝ.ÂýB^W’*{®· xÄ»hÆÿE¬.€ÃýÊ0‹ø¨ÑÓ6›Ü¿©=°pøý㠦)ˆRájÌ­OZÚìd 3«Ñ ÀñÓ¦*ƒ7XSþ‚¹Z€wñĤÒ£Ò£Çm÷J¢Y–šè^9–Ê(lÊÍwfçÖ›¼Óš v1;ÎUs•ÇÖÚ+šF 4 ×õHFëìx&˜=ý¥^=‹0¯¿/ŠÑ‰§}‘,¿ë¬äiçÂjU‚-éyD„wÛrÌŽ³F‡ÑЩ²Hî\flUþÞ<è!qî2÷żöxA!ÆPx4œS;œW¸óL"üéâW>Yiô,Bõóç§ë‹1K%t•±¦Ô~UvìP—=ÎP?fûÞÒ#Rc7Û’|žÐ½`p(W¶4’Šá&Å2Ùû{0/*vbÒÜ~ÆÛµSŽ©ïw²|õXClªP^’ƒ‹´æJ—GͧD&H~$ü…Þë^N§ Û•8 JˆæÿÇbÌÅÊ“ÄtSÏŸ^ògRWsïl‚}Ä[êD㘘x[MøÔS5•š¹EŸ%ñŸü•Öðð<Œd± Û0'Œ92Ê¢ ßsI/ÙLEBïv¬ê»ÃyhOÕ±¯ ož6«zž_<Ÿ Ük:'G•c9Z5I™‹ÞoF¿”¡•”Œ¦nU"§%eDó$´¸$®—! õbP¯ît%ú_R­æF…Ç«c!W¹‚9ž¶’ÞRYúÇqŠôQf{xÝCífd¬ótPoávò”ÐÇ!!û/ÍŸ+˜h;=\Ä]iaGŒ&ãkP6vŒ- Çf0ZL;]¥—\½nÕC0=C‹j»û+àAÇ¢MòºaúHÔ³uË¡•_Dðù¶VI¨2BZåUd}s³T ï‘·‘N±¦âœÄójhú$A,zÖéÚ“K\Ý%Æ Â:á¦ä8ašcWêälT™s³ä?¦ìÒ+AÕî¨ÊÍ€#RçPÈ1 »K›ÂAh—E:z4±:AÁ[w»Ë¾Æ¬ ¨Õ~Šp*~Ë,&Kÿíåϲd» ýŒ[¶/þû … ¢9´rwΊŒü¹U•e›×0ÒÖ1‡ ß‘‚ìîµe³{•&xìB>ÉJÁ {˜ÍÝëW”ž$d±cW~›4 Xøƒþ Óú Ød³ä1º×Ó«³Œ¯wFkcd"êýÝÖÃ×ô3Iðë”ÇI§iY:ø*m9¹™o|VšC³`p×5á—«°PO%ħšcÙšÚÝí¸Î¿È«]«h'Ê­ÿ]cïBÜ&ÖõZ|^3„á—BÎÈS6TŸøà½ÑÝÉ,›F¨®¸»Ý &ÌDá+Ñ–Üé&Ÿù«ï¡ÆÌœKÁ¢{801ît=€»Ô•¢‰D;?Ï #“Hœý9‚_®2Î…»¬´+‡‚s9*žgqQ2\ÒÁøk†]Ëq+•hMÂ ÝøÒ¸g´&Pe¥x.¼—üoé>Ù¥Äqxä ïÎ -¸q}˜SÒÂ*)]{¦%^P¾5ÐxßÔ¿å4C:½ÿ= j§1Ó %ÒƒÛr?V)t±qºÛ;„^ç}éjË iqdž ®e¡cæFã"ËQáÙ?¹µá6ݳãð2¹6|‡!]I’ûYÜØ7Îø$©ð~½°É´§¦ úÐ"§òRXo² ½{ÇAâ‹EàÖ>È ˜ýbÖv'dR÷YDþZÈœŒë攛ۧM±ç!ê(= ÷X#§@$Ó±L, J~A‹uãÙk2Ÿ¸²žKËÁþ#–›aÄhï)XmÀ€('è¨(N) Qz3p½»ÿì“fÈòÁz¡T É)ö–P‚¸¶¨æ­ ª‡žšp0.ŸÎí‰ß„Áö燜OMѲ¨¥ß>h'Ó¢XRK² ¢“šŸ¸ªŸ …¥fŸilbÆÑƒ1cÉɉmãr8&ê~¼6BÚÆKU´öò`ÒDT'µÐÿ•šCì8Ãé»ÜDL‰jÉ ”ÓìxpX«tm|•~1g&Î×\cs/JÙèV¾ †ËX‰ás sÒ•PK"D‚ˆ±7 ͸¨!üßJcÖé­`ý&öˆTWL¡H»Š ¶W¼ MŽ®„‡œÏÜ¬Ï A¢¤Ø-þ<5x»•¿³dªºDoPxlþ[ô'”ßÍ5Êà (o8W s(ö¡z¹Kø«·ßÕN[¿Âtðøš’5øz`øÛs‰jZÁ/òÂ'*íÑÇNFÆnM7RÂiYÿŸƒ¼™I#‹=Z,ú_)tÍæg`ZF]ùÖV¡óE÷D#”y ʸ¯)wé]%ƒiͪܙ;1!-¹C¨ˆ?|¨d½yÅd­:›YΦÏkõ©±OG§Ñx}â¼SãÅíÄ` ù ëLñòx ¾6ÿ(âpÑúÖ*N$u²ÃZÄñ‰F2›ÛÙ¢n–fü‚Ãy·$µ5R†œ›«¶†7LYg¶keö¼¼|_¯A‘ž;a<ñÿ”G¯õ?b×U¢t@­#«I˜.‡äÕX•:ì1nº#È#"WÓ|åÌ´Ví0XiÀ,‘Xr*¥‚£N¨…-ù³Èí¥%Ô#kpÖøÍ²µáñôz`@å|Â@@½†àïwj•^Ⱥ¿ïþC =9šÉf©¼ ˜~Cê¸5Ó¶ßþ¼ðop•‡ˆ[4F:ý]+ãÚNþ-W1ÞØ0å¿{‚î—”1¥ <ý”m»¬•b-VÛ’ý ®|Ñ5ÿÄØ5œêëiüŽ|Mù(Lm}Ÿ‚ÍËɬ”3`„\gSi†Þý ™å}Ms¬w_m+îûÜ-Ï£­>`¼›jKÿ–ŽE†.uD¤ñØÙ\1ôÖY•«1Œuô~tPªýÉ™˜09‰"Yöe~äþEЉ×—ß°9!`³ÎSø;ÌB‚]`ú…•—‚@ÌhPï.VêjêóÏhå³>åe» ®# Ro|[t×M žý§d¤ítÿÀÿG iïoØs7ŠAÿÒͳ!¦6‰ø ÊøLÈ᫘ª¡úbÓ;³ xO¦Éï:œÿsN§¡MËg·•½‰+|Uƒ,îK‘}˜+ýczž¦bf@ìÕN¿Èµõ JÙLôóNËþÇúµÁ„Zo΄§7³äªÖÔcûmúgW@} ÜIí¡l¿Lö¨†ÆÉ Ójá'yì<ü¯¥1GZKœÀ«µ´²¹øV6~“ ¬,ºLÍèÄ¥vZ•Ðq¾J¥Øž83(Ù= ýHÝå}.ƒuDe2ú“o=oÞÙT쬵¦$Œvì£öèZÒX:ö6½í|-ìH¬¸±25¾ÔXŽ!É}¢õ’6ÒVu!zD“7ŽP QÂàû½¥Å/”Dwóy¼ÿ 6 npHØ‚sef2uzhÓ¾Y׃|êÛ"{%•s$ïAÒÇžú̇˜p“q–Úå´·GÐ,üüûçöx¦®FÒCW @7 Q¢N„¿vÎO¡»Q]NBúëÕ1`›8T‡C®ÉѦpÉE„©Õú³„ɘ {lò¿ß!6ÚÇÙvìñFsw†¯äÀO”‰ÚR bÎ_0–ʹ¼Ý©¾Ýÿ¸É!šò9éá&ºÎúÈ=t‡FÆPáäƒ& ¨gƒC^âaJ>ˆ©Ø¼hÅeî­ÔöÑy?LSŠüÞ@ Å~<»d>¨ q¹ý—´ÈÉ þ…'ŒÄž/¾­*¥Îs lâ†Ò§°äonnÀœ§‡5-L¢ÒæiÅ©ø™¤…ëd54ǬQŸŒßΟ'놨F 2Ö_]œ´ÒâµþšB¨ãÏâ\бk¡*ŠÁßH¬°ðÌ*Ïü—ZÕãLj—Fì<ðiý¡›è9ÏgÚáS ÇóâÄ|õ·»Ð}þpDh¸ Vw½WÒõ¶†ÝEÄŒìFgëÚŽ4HœKE?uqÛš`Å´Í'ûÆd ,zG%Oµý-Åe·Õ.Á«\ë㥪“ÞÓìâÜhÊ>Å÷¼þŸ;pN¤á{pŽt8]Çe Y%ƒª6ó¾L§¿—‹ù¡YÂȈ\Ö!ždȯ`fÛŒ´åív¥¹~*PÜ’„¥÷; @tr´ÄóÚÈCžš–øÆl3”$LU: , “èÙN…:±lc…Žf‡À%±Êbq™3 dU¼ã²=r“îFíjÖ‹QLwؘÍz>ÝŸÑ€ºw÷Ot”ZóM T¦RFaã 7ð”˜Ùæ•9*²A)4;ò¦£ü‡¤+»V×1+ªœ&w5sT³¬OùŠÈ%Τ¯ -㉞]Ò-¢„—¸ó jæÓï¬ïl‘¦àVœ{ÍýÌ•³SÕÅJòƒ„ ™ÏgûK6ûY9è9;@rd¶ÝV*ºmër®­ &ŽQlç/·¨€¤™ ÝŒ;©sñ.ô¼‘½¾‘Þ.ZÓ[µ8îxŽ\lKã˜ÖŒÏÁ0$ÆÊõ ŒNЧKÏä'!(ÚAŒóz#›®%f8]ýÈ+Ö˜öŠ™&¹8šQìŠ_×´îLßôcr¹å½Æu:?œØ©µEÏ ¯=c@ ÊPtÅüºàÇ’ câ¾'–édÓ Æpo‡ˆ3òÊÃ;Pg¶ÕgƹS¿)>ñCã”0ƒŒ5 fRùõ=ðèYr'Ú/®ü+£[oÛ6ÝEÕëž#kIWéîrÂè ‹ªë¬Å«Ðü ò±L Žy hw8ç³E㽯üùbOt…Y-äOÄ(Ù.ÁÝZß'VOù $4šq?á”}dÝL1æ–-&§$]ŸÕ£NÓ•×g¿Ö÷[´–¨¸4R§™&„‚Ø1 Œ©ž±,VÚ¼h¼¼=Hë™é¨ãêóÒ“w!w¶+¥8/*XÕ¥C&Mp/ñ¬ÿ–øÜTGWaÈ\¨…ê<}ð;Qe)ÑXŸÔ–ûîS•üü¸g˜£ÑDê3nkl°=ô>÷¤ÙúáŒÈ žíH£¢â¶Š†ÁQ[lÇrÓw8Mˆ£J³Æ$™8”z‘kšHÀM2Â{_ ¹] ³ûÂ2âÓÊýíþû±ˆ<ÆgaS(ج1ð%°Çwá×µC(‚z¯a½/ë²iÑ švX ;ZÁ§‰“v%XDÃdÓtÊBswÞÖDq´LëZzìpÖŽ åª +ÌŠQMŠF#ëíýåc˜eOÖ|Ú¯m3½Ý•7ÁI[xÆ0ã76-ëGó +Ó‘pþ÷k¸…@Oèñb’õéÜùMr,}ßíɸ_6TÖÁd’¬ªŠãÛ$îdÇJ2ËÛc3T~²^DZáF D›ÁÃdÈœëý. š ¹ñ¸>rÙì²5•H4aýkB/r†®Ç:.…›Íô)%&]€Œž ãÖ¨™_¤‰ ŠÍE¬–4p`ðŽš‹î—4ô>FÚ¯% •cI!Fj⺗|³ Ö`Ožáö‡PO“4ÃqÁ½úr»¸‡N"ýÒ9sKŒ(Šo㋵h¤’ð«<¯*‡³w[é¦uàv÷Õ6²î;|Ëñ¨Å 8y£Óbq[ xêí”=bÖ¬X¸BÃߊM­CÁ«|zË£’ž­µŽ‡Ì(¥çª]?=± ¸fŸä\ÖÑVvŽÞo<9gx{>nÌ©_a‰ÖAñž'Š—¾D¶¶ýIÊò Wß“sÅË×9),Qg‘–óKä_æ@“äc3™ƒl"r ¸Îä9$[ã2gf#•Ï¿Drkã{¶B•j•}0Qgúç%s‡²>$þ¿–Zƒz+âO!¢kþ96èu޼P¬w]Ê…¿¼6îIôÊiÿ?¬>P@öÂN¡Ö}ý_ÂÍÌ€åLÛú¨õ“] b„ц/yx‰1¾|#½AŸáD•ÛãŠjæB›Ñ1eþN§0 Æ—ÅîXz/éäÙÀ§,^!z?ôß„7,ºfBGγuŽ˜2Ã-ê8Éè§K¹ùªzýQqç)åsumiS$‡oŽ’¸Ë²Î¨F¡=·™Z6/ "MçE«’¹Ä×S%k:Ïòh òöçé2ž„œÞ`‚œaKQJ~­W¨wõÄuï6Òs׉ Ü|W¹ê#÷¾9v"žm5=ZäŽgn£ö<×k*¥û2™Q;:0¾F¾úÜÿ×8’–Ó lXXí¥Ô­úª}\¹pt§‰Ò¨#u§©j~è°Þ“#ªbmš…3ƒ^ŠŠb)*^@C^ÉÉÔb5®_“KÑýI†™ñ²Þ*H8ôoˆÝ$OÌ¢·>lViK%Ð_ƒz2:ÑÖéL5ÄÓóãy$Ðaü,T!rV'‰r«(¿+jœ´DP@pbk«îÀ!傊«µ¥ÍòKTƒ€!¢yý嫺«{%‘¢áèâë„[™g  iéÄL5ï—ÅõV¥ySôÂ÷LŽy¼ÏŠÆ7#øÊ‘«ÞXd¤rÐÛ9$‡õüù+ØHs®}ɪÿ…ØßU¾”ä/íêlá)låMDÆÖg¾'CÈìlräbrn&ý-Ùé;;àСÖCÖúÕð,)¿ê‘m1P,/"Û5Ž jÿwSf!º·†[䱿$\ "ñVÃo÷gŽ}R4LèaT)4ˆxPŒnêöãâÊ.XA!r‡l›ÎáÌ:9®»ïe2¶WvN¬ ÑA=Ç?ˆ²)!{Êß:þ™ @ù‚Ï‹ðåa[»§ µ¸G‹Ÿ‰kž #[w‘ž•îÇm3îÈýCg9$æcŒÆ,cè_TyCF`èÍzT…ÜIs6ðLVBZ¯íh¯†ÍÖJqkÆõýJÖSÆþ}YW—ËùÒÇVuÝüßw ^t7LñuxMª­¯å%^މ'ZEë¬#¥ßX§ó©vèÅѤj¡֙ϛ¸ò¬àz°p¤Xò°azóUøÝZX1L{ .ʱ÷):HëñòeN|x­hE‡˜ ™.T“ËÇÞíåÚ™~-Ö·òç9'£¤B½=ý‡Wh·B·…õ߯”EGH޵}Y˜S©Ã-/×l¦Ð‡¬²Ó/ H­¦.U%èmUí $}@´•m¹~Q§aÛ …Á·ðË``w fî\u+)ªd kYLê»Ù9†'GŸ°%×OÎé Øv=-b¯xUÙ¨ö½™­Nm» NÆë%© •ËØ—ʸíYo²åÒ»˜é™wÚ8¬5MH7ÙO§áÛØÞñOŠB#æ_üŸ‰Šš€“còîü|QKp2#o9álO¡§ƒá)ÙIb ɦårÙÒ‹4N±ÈL<¶«Ë3`÷ p† µ5 î1…³r ôŠËpÛ¥Qœ¦'-ÓZsï>´S|̇ÆÀ¯×Æ0oKXˆÎŒ,­"¼F(âcËT•£ÇËÓRcï{© dUÈ}Çõ'ã«oËKb¤/„b(ã³ÓýýèIô’ÓtÓfìö,ÉÌۉ·(ZÓmépô¦]Üt·²“PçM\4¿>Ë)£‚6òt~JÑ7äùn…‡GFš­i™¤ÇdÆ@¨ÃMMómšáü×0¢]±Æeúò&00U°ó£ÁÈ™f‰Ñþjh¿kXÿ,§”“÷,ùoj„¶q­Q4Y~ÿ*×ÕíI™_F+@S [Œ°»;ó÷’#L8¼€ô&B[ëx ¹¯:6­©È²¦2§¨¯'c®ÖTñN£ÄÆ7KJ>3ŸPxS=i¼2>ÅÙ»âj{s3Ì´¾yoØÎͨ½2»•K ø^0q¤¬¾Gór†~œšásqŒð˜©ªw¶jÄx¤ | Kí”dkÉœ' é73|X:†Ñn(A»+Ȧc5«Ê ë‚‹t‘á{O¦Ïó‹ÐDý±OT¦ 8¥q7?#jîÜ+aÕ•üÉ»ÃÏkˆc¿JÅvf7Ü $†püj-¢œŸ^9<µØ@')?"æHÕ3âØH~»êó¹Çhç. €œk}°÷É;Õ!êt¸À>8âªððÒdfÄ¢üöq ƽwN¥í*1Ñ Ð·jÿûOܲ,enõ§Jœyr/RŽ1ú!'Ú3W³$Èí‡No¢¦îE$» U÷§ûSæÐGa4ø”ÈÓmõPÙYaî ÇqºÑa§‹=5—ëéÙýßdãšÍ7g=âZ·A”c× Áô;*pÜ’5,Øå«qé¬Û¦¤ÎOÎÅÍHæi°b·ü¹k ¯«zh!$Ýq $ìúPSôFÉÞŠf·§¸ –›L=†OJ˜u×]±¨/ˆ…=Y¡JéœÙ²8gÖi±6fç.b·Á ûçK¡Ó6%s¡`ï‘â>Ö¿³Z:Óò(.mKmä¿*²`Æ n]YãDõ‰¡‘‰?×\mЧñõrkÓÈ-þP'ç,Y´ª‹×ÏéfÊrÏÛ÷¯V™=Äk¬®üP ˆ+쇳Z·„©Ô®š& Ë..ª…G?þh þ>´”ñ·8zèÁÞ^Z,Õ–)ªÒ+‹ý]7 Aú‘íˆ}îÀ’ªÖ¥¤ÔL£€fÐ&…Ù5ÕFÔ`Àç6:4õë÷e¼ Ù㶇Ñ(,!ÏK%ÛÁzª‰<ä #"ªgìkWéO(#¬@f×–uLÐ]­À *¹'ÿÓ8Ûã…C‚¬·¿PÞdz_Žòë7È ;‡ ¡ñƒ]½¤:5É3¨jÈódfÃ_z‚E ?›X›x=s˜öx6šoãoûqˆ*ž0ÌúÐñÔqÎG¹^4å/ Z'Ÿzvcê'ãíE3òÍTj°þÁʺ’¦ÝzX®­«í{†rŸgÖˆ÷Vžé£fÍ TöT/·†ìíÿx¸Êå:òÑWç@’-¡x#‚A4QX´I¬èüšˆ*Q6ÔÄ–j®yü星²‚’ ÝVÉÿøL›ƒ†h‡)I7Š› ½ggóvÕ!Ò—dZîì Ä1GËtæ4ç¶؉2tW×…®†5¨•ìÚ3訜(û” ¯û9KšÑ>:F=µÃ¼¡¼p4ønRH»j…ÀLË&©ØrõUPg«zN“…üV±Œ˜çå-N uæý$ž.‚ÒdZŽôß…MÜ‘Ém—Ýò›-g³8´7Të*æ$rBÚ‘LÚ­žê}î7>b#`am¤4ð,YY±+E*¼SÏ‘Ú()—Ñì×IWƒ«Å2’ö@ `*IÊ>hS_”Qpší%¥`¨¾}sä¶ææ ‘€„ÀxÓK=LË.A' xí|F™«ãÏGÖ‚ƒÐ@5£š -sE+–ùÙ̄٠ȵÝýŠ ‘sµ… ¶©îaf +AVCD?ж_ÀŸW~÷Hd!€.±o(Ú‹&“CEŸßÎ~4ŠÀá3u—a¾›8'ع½/ÅÑFeVRJ®;…q7‘t=BÀŠtmé¥gê¥&Êœïe¨7¿J¹¬ SqÇ5!Ukëý· j¹~Hu4àe ÎÝ‹ýYo ±`¹öÜÀRÛ¼Àùú·Í¹^´ó¨ÑÜH˜%Ž¥ nH…,#`Ã;ŒÂø>†;n—TÁ¿_Cbz1i Ãë×ÞQ(¹PÛúùåï5ÙËqC:ØßTÙÒúO¸]®|ãúö_[ª†»¯Ø‹ Ñ-ëãO•ò>óPnëwï kd‹(ly“/}HA70¨ZÓ%/ݹΤ'[Ɖ„:zT¾ý£ƒsß^¦™­ uH\*±£ záuç2Á”­§šüާYÞKl(Ê*Ì;9 y·_,E„:‚Ôž”íìñ¢>^àËf‡ɤÿ×#•:v?ä“íûõ¯¨6gç¬C¸>—ùºênw÷ Q.È"!¹§¾“ØŽ2€[€;¶ShCæAC=|“¥—Ä`éZo8cÿã~æÕô´7ú£ÜêöG‡ßÖºï;I߃KÑ^Œêiãá⊙Ò;òkÃm£d Ž MÈB&f5¿qWËÞ!rŽ5Kp‘[‚™hûäs„ r¥ÅC¨’€æwˆäÊ/M´øY\É9 ¹-d…oˆµnßçý¶$¾{nøƒ•ºAVm¯½–oJi~Uå@¢þˆlîÅvˆnqê(¶Öxýtµ-ÜÝÁñáÞ°ÅÕ~³2ñºß´ÝywãuzŸ%BFÔ‚ÆL$4ghù‡'kD‹âØ*þs\Çs­H8aRÇ^ib$I*Ë{§ÕÊð™jZ~ÓÁ\ì™/¬æN‘U ¨ØpS\]z¬\9”UUÂÚ¯ê…W•ÏîT¨³¨/b6€¸D ¸ø•ppkì,,Zñœ ÌGßÌ—l5jí¬%b ao^ij)j’ç&ó†dðoÈe›àŠ,wÉiŒç¹ â-$cO[Õ{(Ñ,DöTÈ=TFL¶Ô|£óA"Bæ1ol CU¬\™ñžz¾¸“ŸïÅT‡Pæ¶É £·ˆ·}&ké´¤·|™m­-¯ÌG4C<öh¼é1¸°hû ŠæCÙŽPH á¡?KÙý¡ýFú™~IW&ÒB²õ wnº¬µ8õ¦Æ>p=ê±*vxe? ü׆‘ûúèŽÊLÒBÒ¤w«+‚ö~rb{FclZ~ÍIìlÕ<ßn|¿aäß}¸^ÍÓ…Í;ZäFB6.Ã'.è?ïBô+ñ,*ÄÍyä< &±à3Y¢U_Xc€Ø)·â¶‡ŽÑÛ§BáV>NO"ý–µóG‡ã!õž½'d¡&$–7T –ÄMsHQ¾.PÄ$ƒ@7MWMX07é&[“R¾–ÅPyŸ™ ©Ë;©¿6¦ÐíšY5îúa$u°Û9Ûå™Ú©D‚m°äÀ¿ˆhý›Ì_ê}Ž"¼œ¢14ñNoxŽ·rÏî BèSïM¼®Šlà<=V¨H;+¹qˆðc;ãÜ”NVLÉÚòâ_úXŸ”‹ÁmûÞ‡¬wï30MòRB gÎßk—HËC¬oüèe 0è…ÚÂé\:~±ùàÒ#kXÅò¼ZcŒ†ˆ©æò—%xå¿L55[éìnxûÔ^.|¸ßgO¦½t¤‹À‘áˆ;¸‰ÛÈrPFe3‘ 1‚‘^ã¾åþ‰›x{(S>q›véÔãSÌ}íÙNØB ½ÜÕþòÝïÛo0@ñÑÏaôÅ>`Úd¦›bM¥ºã¾ï"=Äøº<©—ý¹Éá…eËÚ“€n9v¿Ð蛎eÎ?Sÿ9=¬<[¶üóNí)~¦½õmMµD T7ún¿¯mï!Q‡d›°/–#²Ë(ÈRŒ{·~;’^lc—ÒóÇ.'ëŽ!Ô›=»§Yî›oµß»Æö“Ã5i8r;‡ß($–RëYs±Rð«‘[WrGÎõ;mO¸vµ8‹Ý_áïQÉûaÊ«à!¦ýôQú`~µeŒ¦¹çÅó5˜d?›n€2ÏGžl$è[Ip|é+Ÿ°;®÷Ÿ'–hlˆe“Q61ó]û!ó÷¨âÞ)na‰\0ê¶ÂUÏs"ÝLñÆl3̵¤y'J,—Ýôau¸qp¥i»þZE׀茞D¼Gœ£Âªf`-WYCx«uÍK¾ÖP{ NÖSô£+yþ‚½èÉaLp_,=4Q§O‡$qyòÙ霅¢À”“vT ’˜ý© Ý['âZ=[fÖ7ǽ¯9O‹í>(þ{Õ_Ot <à9!bPÀìu71¸íÚ_æ3·â½¶õÄY«›œ¦¢£|ùòœÅH!±nWuÇfdùþÖ"ûqœ˜— iߥßSÕ¥4¿V_Uøu»Í§d¢ŽÁ¥gi˸¾ø­YÕwWUa Ç0÷”\kFÚGb4Ícp_‡ÌTäûê27¦ÆÇ¹­Ü³.Ÿê Τqþkáè !ÞBv/ʉf0}tv8Äà2–­ç¡è‘9øë+žÅ•~¦³°šÄ¯ Ö§ž®_²¡÷nS÷À,ÜxäëSÜÈPn—²PhÞ¯T­æ¦(y•iúZùžè!ò¹œ”ú8ÿóDBñ\»aº .}<©fŸÐ”¢r˜%a ®2÷lj$°d ’~<À¬ÛÞßHÆ6±M‘u’1a«+:UÅGô::xÕÔÀ¤L'¥ˆ&Â<ê”+$|~5±h+O¸(…’Y ½ë3:†¡èòq(°Lzž¾õ9/jCB⌠KØ÷MAç¢ú»îmºÙƺrøïz;Óà;ݧå²ê¶ýÌRú8ÍÛ«å÷ˆê=þæéG…8ÍÂkwŠNûÒï¶P„xاÛBaÚ ¶îß{ÂÑ®(8¶ô·Ä@áO2’UÔiçuºwÂYh l*XWÆsÑü©ó`$¶š„~‰ ƒvýµ!Ÿ&#òÜêèVHEñ}ߨ•ÇCß”²ÞdVqœY<¥èÞ›¤ó¨ ºsÉÌh °}ý¾[I¿?G»‰ ëÞVûM¿«CSâRÂìe¹ÒÓœ\»%(ÝdW¹·®3SKëùW.ÁAŠ× ltZ+ ˜"Þ”þ’—Þ_‚óÏ›ÆH»ž»sj¥ `Ç‚}6Ê —d^˜æÅ‰þü¨ßOŸâqZ‚2TMŒ·ï÷NËî/ßë»ßMV¹ïª<<_ŽU@úÒÇgh%G©ÄBs9åõ:E ór17†Ùù“„½çÕó¼ °c±ÑbÄeª¸€âÌ™ól¶A³¹Ú3q”1Ôà³ó¯é!€†ÖM*…ûJǺØůf—µ+ÖÌL~@™ôõ¹æîo ¦öŒÞzX$¤ŒÉä‘Û#˜^LÎÏ|ésugpÚ†PMùœ§}Ìð=}F¨q¬-oÖŸ·p½![jŠ~´ã¨4òûOa‚_¦(æ\• ¨yܽG wôZj;à‰ãŸ/h.{Ü0šf¯V4º ‡¡>¯–¦îø›Âü¼S9Ä”i ZÅUE‘·…À§ S çX~OÍ–~pPÎeîxÌ稵XÚ¥‡©ÈôýÕKk#Á=м@žÒÝŸðrÜúek‡ï¾ý”¼÷ÖYø2F””R ÉYZ¬™½”Ô¾Yº/"ÄŠ[ÿäI‡‡nÂPt&Hss©b¿ÜÂ:l)¦s‘¢GWiú•PÒ´ƒÔLK5€sª"62/¥·äH>D›ŠLΙ{n{‘ØØ»Sé7N°-Êš« ô ‹±É€ëæ°\P€68NOp쬾nFÿmhè{ø†LSÙáÅļO‡EKõËÿ¤dDsù6/ÊG­ˆ9Åõ£ñð[‹_ÁQˆ\¹ š Co¨Û½ÄàºAçÁÔAÑ¼Ò ÎöÑênÐ ÊpíõiÕjLêNF]ܤ‚w«9¢M•»™& ê2\[ .›ó·yÞç†ñ*wX–æÑë…ÍfðÂ=RÎõ™²hÈ[ÄŒ‘š ÞÄØÂíNu½Õv1g‹-ä~™þ0јG_‹×zù %|œOEÓÐ⬠#öÇä‡n7Ì1÷Ø~üÆÎ–žíÕ™]dö[n&Sf×þtÔúÚdŽ´-EW]שTÿtNQÙÕÚ»Q írü×uª÷›“(W7o$:.ZÖ÷Ý5UAY`Dñ¾­'ó¹8b¯×ó9ò£ Úô/3_.èfþ«BvÂÆè;Ù4S…¯‚P_É¿|çÑF À-äïf ÌýÒU‘ø –MþŒzj†±ÿ@Õ¦¬•~Cœ'}OjÀú>í¯Àmç=r6÷2jùglWçâa¨‚NnðÐ2#áoÐ;ãWgÀÕÏ€ ›³H©†ý\_ß×3ÆöÏCž é{uØq$‹'³–ê1èª`X‘E1;ì¶…W‚A'2¹Nòˆõðÿ]•QÕ»È¤œvG`äsý]ÊS5qQ(nqVå-gfüãt+DußÙ™hL¯W­^E¤&„MïJçË]µs>uc Ãa_uªªƒÙD!çþjÀý„éÂog» –È'P Á\R:¤½ƒGû?ÕcÛ¥—™cVô÷,íNòÇg× #/²rÈÙoïæ©ý3ÛžJ_YÂï–÷~X%dó·*#xdµ¼£:ZbÒk \=:à¦nÅ`þb#CIés…LòÈLeã¦Ê<¸l¾¦…¡œC(¥’u¿ÿ5ó<¢«­QÙÂþ:è*Ùº¦©K-û; ~F¹™ù‰×˜„KÆ%ØÜ?ÈÌ ôsÕÔÌUññ–ÔùàFã‹lçõXÖ.¨ÙïÛ÷Æ<ÖT/ﳈçõyáÁ?(1%Ô¼‚ƒÝKzLñBJ'«X9ïŸ;ê¿™ª¨;@:öãæ™¡ž`®bÁv5ËÜ:cúY—=é|0Rˆ‰ ƒ6æÁJ™Am›oŸ{?õÈxHXRP²ÒD܉¬NëÐÚëoÚ÷ ogã…•Õg˜f¨à¬‰º•ü¦JÜÆT·n0`u›‘qt,ôYó&¶³ÜÄʇÁá“î,sr?ªbZ&SiOÊèkçîB7&ЦØÛP÷Á‰Qb1¸˜[=§\=¿ y¿ù@Ÿ†õ?Úz*Ácm Ö$K¡¹y”/œr’ø0'Ê…ê°Í0ÕµÔ¦›‚zŠ·½ Ú2ˆr]²-—%Ú{'ë5×ÓY°Å2 ÄÏ».Sþ#‘â†C%^®€£UW•`i–Íãï|ï"öÆ3ÀôFÙ :Tò. Ý-5EçÜøn&þâH¾ÍÕØ¦ˆ)Æ5ÐÙ×ösóæ™döò{™|IÐ0CJÍs +€8£rO#C»Eɵ¶åµµŸ÷ä/²7 ÙqVɯ×-uk¶ÄžÜ¸²`hàAS:“¸g·Ûµ>xšÍôõ˜ÕkWP mÁ òæzì>á÷í¦\Qø‚œ]Îk9êV¼Ôº•F]=°»Nrg=ZÉë f£¯äÍUh›Eôc÷jÙÿüDgbé…ØæI˜_ö ¢Á:“”ÊÝLãD-Éщ}ˆ­9掛8“!2Ä‚åÙ/PÝ©Rjòw@º`[¶‰½I‚C_Ua“ŠBeÁ|ê÷Ú@ªœz‘…ºû–U@D"à" õ6‚g·ÛMgVô<|¬h–&l:Ês´¸|}ÎóÀÓÐX|‰ôfYS3wy¹‡àOÚF3£J{M8QÉÛž-oF”GöÒÀÔ£.[ÚÃæ!>ûÓ±ô4ó€~päßÚİu\ËRËÝ N\á¨m";¦´–x¾ÞÄ@  -t|d«™Öhè`¤à¿VUv¶¿ÃÂv`£TŸÌÑIpŒºP ?ÿh§û©•4^ÖV”OgMªÅžØÝü k›œ×Xo…³ùÒ&õ”Ýô±d9‹ö)Á[gçŒ~&6ŽTÍÁeÒ'uýµ|7XuòæÒuy”~Gß^ r|+%óËM¬ ?¦ÈO¼#®RJ}£²£¸·„‡hËáÛéÎŽú7âŠOsó¤B»EG‚ÛŸB¦7©**ìe“çKXƃü‹ÁDLG|˜‹ìù5þ}!&ó…J£·öž)†ìlŠN„afxÒ£¬ DÀdÀørÃ~ðafèšO¹~cùß-×¥NG²Î1Tg)Öâ—Òå.½Ùè;÷z›^´Ð›Ÿ[)焉L´²SÝt¸€ Aù=ÅOP~>XÈ™à¶5G)õP¿õ,êˆDHó5å:xF‚_“×ѱåw®Ô•Êý ™z¥³ën1ؽ;ˆ9Éóù„¢X-ïV *ÿÅoÆLaš‰ÂxÂB³æ©.4^( Ü€ñjnÖ.ÊÛ¦²ot€Î"5ÕŒ *5..]¾#Mÿ‚L ¾ ðmb:®¹dè~²*Y°ŽQIö÷((í,ÊÃAóöƒ« èpö3Љô5./_á]“a…s¨6J#‹ÿw´"ðYù‚¢82Û¶4ÉM&ÙÄúÿjfò£RøúA"reWUÂÀ]´ô.Á󸳆h¸åõDŒÛM±Ü˜oQÖÁZÜ«\ÏÏÌ;AާH9fyWHuŠvãC©ÜÖ8Ó$ŸC6>âz÷<6œ÷ùÛÄ™\t÷D­~ûªi÷kÙÙLÈÿÕ =ì×H–ÂÏ€ÕÞqpÀ§ËÅŒ y}ñ/Iô¥2çyÝ-E~©a!I©€öÞqMñUw3ÞÆÓóPÆ#D*YsÖ\*)Æ-Y,“ì3ÈRL‘àì4âEImèA’ð£}Ÿfd ï{‚ÛËK‘Zz5Ø«ev@ÖšÁKâì•bmÚ÷0ê¿aV’2[=Ò§‹Éù;¸-ú¦Q›<ï3t¤âŸQ…®|ì"œ®j4 QÕ·¼ lõP•å¶>4=,kg C“V¶ zP’!퀇W÷OQ$îÔÅ),ìsÈí[¢ZCâáe,’TPõ²*ã'ªñiz¾¦û'`éØðöo>”}íÅÊê‚ä<ˆvsüXÍŒGâL¼šÁøÎ7nK¦£//» Suªjåh&ƒ‹|j ø.ïjÔ‘óÕÄIѳš¤ñOÑj{Â'ÕXTÞw ~¯Tô ²ÒjÔæŽßÂçyï~á¶n}W߸ê!iš¨ü;0PuzAHC’ûöœd+QV–+q€{É~Å]`ƒàº²‹?¥ :&]1°¯¿éT hv3(ºˆèR@»·˜,Jè1ÜÊöª—DZ0óß!gùW”ãèÒn “„j_Îá=à¬jÉt¶+_ë« ­“ݹ˜íéÌ›f˦ÛÑQluf¥þãÏËŠà»òˆ.U•ÜÇKœ`hm»-eeZ¢Ñ7B´;Çþ¨õSß±»hŠ~Z\ܧ v ×5H7$5Œ§"{¢ˆh†aíÁÖ‡q‹!–=©:Âæá÷Uï2ÌÁ+D} ±`‘e¥S„2O§Á*rÊI~æ ?CÿŒe‰¹=Ya\þÀbðgNC>DM5-®ã¶èžx^„ëµÒÅsQO„—ù‰Fc†ªI•¥•ÊÇ&vLëžÕK£M¨:Å/òç8yà‹Zþ<ú1'’êÉõFlúvy°ª·„1„YÄ9“£“ÉcëYJy#qE&ÉkÇŸPýþ/E/«ÖÕɪ°!¯pÎøjíd–€æùîk+Êóp€ ä±NFÖÄù9\G;E¾.å1ÊšMB)ÅÃÔÙ P—C¼Öp¿¥§yî⮘©8¾è»f?*C+ß(»@ʬ,;†P£ÛÇÐ]ey7ÇÀ£˜ý)*5 z¦ì1{²n§1}Ûݾ/3í«T ¡6ÏóÒÖkC²òåÛv’”­—÷UiÛ–X¤hlæ9ƒ] rÃÑA’´r8|,ù“v|ú™Ñ™e@¶y?rν‰ÖÁÈ+q+]a奪tª²MÛß <5;>øF Å1«ËÆK­(‹QbŠ•ðƒACEƒ Ö†¯·JFB°æLPð’ûÆE¿. Ër+ ¼Ò£„ö#Љ¦–¬u—’L‡Ž-”µ?¦/CÛ—(ÄÕt`_uk;B·\I²?×±gëAU3ó¡Ì ¢† 1Í™¦÷ DèàŽ„˜ö,‹“ß¾mŠøyR:ì$Kç‡,²þP¿²˜£±ÕÚt¬Cæ4LA'WÏBugþ¬yÝï[”K"/‡õ­1t1{Zá•«m ¥HÓ±D‚BÈ ètMc~Ð6z5gØ{½³€ï) šþ5ìx¿ú`¿V°ñßJÛO—0Pví6‘Ç“ô–6C½æÑ`Æò¾Ô¦º¬u±Õðôô%y5IcB¼—×%•ÈWný£µ®ä7߽ߢоŒ‰?l;(æÍº%¾É.gÝkk:ó™RiÅ´ÍÐ8½ªSS܃o³smpÀ ns‡rCeþô©žsг‡çóR" ÞW¡L›#’¡êMgù 197S{Ï¢ÉÀ2ØûéÓ-†x•… GÈ _e—@[q6ÒG‘üTPqµÚ§ÖÁÓëÊW˜$I 2 ÇVtuÙC¼MU œöÂwž§Ë”žëoÈT-/¾¥„¼ÍKVJŠná0‹—müø¶€ÕõçiFOÄÁ 3"dÀq,É7ß‚¢KèýÄRµçÑê™ 0[ÍÁ߯±›Å×=—NLN{Î'ªÃ!«ÿ§š"]P$_±S».Tù§è¬FÒÑ&±Æ¤³ ~²º®!âC`ḋÖfö¬„yäB?ÊǰÛ÷™’Õq¨Ö&yŸ« ’âDÍ&¦ºÊ~lÈŇ~ D?òYÐÞÜz¦«Wp nvÆCß@&*ùlñí±áŒ ž_„"£Cp­«„S{éûšë81·•&ÞV(5añœPÆ£ÁdÖ³7òae0(;5Øeh׫õŽÎße¬ï žÓ¸ïìÒm3{,”Ìú.ÒKØ9 “h¾‹q¬8#ãŠ3Ê !×Iè-K{(ääÖ‘€úýŸÅA:rÎHD :øÞ€ xmÿ¹?ÊrßleJ=ZÐÅ´̰1³Jõ·í©.å_¢¾ GñY"c’iÔú§­Q’| '=U¼;¸‘è&7|nβâ!{¤hÈÆ(7[ûë.Êʽ¬ÃÖfK¹PÄËŽQ€ö ËâëâPÀpÛÅÊÝ+SÇé¥rå%!™&ð”’÷½3kü‹9›¥ëHàõZÁa‰ÝeºŒ¿5¹&?…B2Sܸ·ASEË¿Ù|‘ý5³»YOêÒ@R ñ¦ ²ï“¬]\M$Ç`!æÿ×e|µœ§JN2AX&vç…¯–ý°-¼ê»Ã!Gà[½:A¼EÔG\¼^lÜièîÌqg¤$4XÕ¾UU_#£Á‹^«:‘Q;ª®¼°€\Ê/†ÞCÊ×€,§Ò»=~á›Nlÿ¹1g¸Ø`±Ÿ „!ÚÁhè _8¶£ôê¬3 >íq§ðRКû´/môäâ<,Õ EKy… 9|šÌ˜ môÄû*0Úµ®k1š‰GŒ•²©ôÃ~z°·¹©Š€<¹„áÏûèêß™0Œ¥BÁ9ÿ4úaÿ)ÅaîOWH¯wþKŠ™3—„ë¶Âo¥÷2úã`afç¾KâßoñÆ56š–f6åw3zëÃþx𩰝ߍÛ,Ä~Â'·Œp/Nɰ ³=†j0(ùëÛkÎÑ/³Ö‚‚ßÀž–fkÆgËúÏ9 SÖSy1´¬œƒ;ã<ø.üè _«G7{šš27#‰C‘Ž•¦˜Ú|4ÎU«4,tOìPJ+޾H.2†Å‡GưÚ~nïnF ¯ÆU9€¦5^Ü`Û°Asд@%Ó·®ý8P†ZìÀû¼á/ñ,ÔÏ·.Ö†äÈL-„ Ì9á†\‹VÈýdmT»¢â¼çj¥°ª‘'¼^C#·2R7ªË°(ÂA^—f7‡‡”–×î¬ò¤f=¢.ׯ愥š;E£’‚>6E=\)KoÜ\‚¢6Öð[|Ô4”J ЖãæÙu!>.ƒ8N™h,ÂÚBÙ¶ä·Ø(¬¹çÉÖ6M{Ä2«rB—óV¾ª+/›æ:éù „ÆÅ­S¯¦ÊŸûü¾îb´E´Æh™ñ…”,¾è“Øj°‹¡(ãâ6kjÞ†e·{[’ÍD|kñF öcŸÁ-ðV²ÃÜԜզñz¹×ö9—†$©ÔW;å‡É´lÄ:w\ÈÄÿÙÿÿ»pË}Ë9ˆ“¸@ƒ @ZÞûTäÁØL™¾ L+GaeÒžêš ‰jLÊ(¢®ËÜOÿ"¹]‹gZ)D³çZU޲0CaütØ«Œ› !5cz½EÏ4€a<àTA Ë9ièaÙê%ín•ÄàeQÝ¡¦ÖÒ-<›ÀON Ò{‘ý\O?ˆEÐŽM§ƒVW®ïöõjÔsßÚçA?-,«ÉöO£¿’S ™S´ÛµoFƒ«OS˜„ðQÈ· ÓУÿ{‘@>Õj6röõÀÚéë°­pw›£~lÙt~‰"u}Õ%m]0fXrmôRæ ósâ# %aÿýTyê6ÔSÑóÔ·‚äS÷€ _Žsëæ´\øÌ€T>Ä\CJ·Îݳ pˆka¶#Ö×µ…œÐ½¶G´Ãߨ”a±° U$Sëe«ò¸ÁôÐ#‹uƒ´¹]4÷·…5þ{myT¯˜XÇ·%Ä«+¬º6ŽØ÷+"3D©àX#éÈ+K€*õ­­®ÑEèÜÑÄ8òTh‹ ‘ášrk—""©5)Me5:òòÂËã ¢O´«çAâx^n¹›qP¯¤ hå2‹.jè:M‹€K›Àƒàßá`»ƒÓfÖ€-ö·©QŠ^¬nrWŠ¡K%õØL©ìÉ“~ vŸ"ª²³9£1¹E«C@xÃlN„Hœ8ÜÒ¾w=iæ`×ß|ZQé¢<0<¿Uš?3K·"óªÞ\Gcg$‹J~BF•`S‡¬˜¡ÌÛWÂt^Ý7?”Š¡RJ®¢§´7Óé4‰¢<®ÝGÊå)¾÷fø§N²B²×Ptê»têq\éßuµ„¦±:ûE\õ‘Fý@9J5ƒÓÕFD§m©Ÿ‹xÕœ}I°+‡ú4Jœæ“›ð 2à—G[˜ùº¹äø¦6ŒÔ2½VÒ„ÞÊ~|BŸg%gW©dˆBÉ‚á.|–¶wB54Ír"[;\zž¤Ö25„Ëê ñÁP0(wãèÙBöþÔ*Ä@ŠÉ®Ò™9‡ôR>®Sd·7ꆠa¤œ z'¿n¦ÐP¯ÐR„5÷]aÊXâ̽†zÃ;ÅÕ…bT,¥|»%¿d$c[†FÜ HÒ¢Äë¡b"ûJÚtÚ†ΖRÄ x 4‹Ugošà©QGwºÜàXðÞ¶%¦‹&ðõ•ý'Ƙ%îÖöZtnuÍH)5Ï~f°v_? ðo¡ÐwöW§Ä÷òZv¾1î$mKè}“é{±%!TÒUF#%µYSÞàlÖ,_ŒayÐN»æñH²ôr¶BCòYêRËB¾µìÅÕ…¡ÃaÖ4y¹Äi"  ®ø‹Lè ¶#yToPŒw-‘‰uE´Ø,8÷hŸi¤ Iž”µPŸ_uNeÉ…·°$µC mÜ^– Žf¢0,ã’I@¿ap%0œù»šûµÉoÕÓÊëEÖø‚úÍ_2ªçàããŽÇ$»–§6nûˆÊgi’Ü®¡öFpp&Üzrfõ‡!"ï_¿y ?)©ç†½ê°ýFuï¸Fº¼—†ö˜´W؈ЅHiUýèÕÓa°œ¨¿=ÆN ƒøÄž'€ƒ>K宨"x@ °$ï€ûÙz¿»~VÓÃØRðT9 œõçW«úbH‘A1FÙq®*#òï«h‡yú’%a¾DLB㦣_,ÇH þ˜pÆÀ GAu²™šÜûÓ ¾° ép_ÑÃJñYCÎúŽ~cO mÔ”r®ÄõDîõÐ`&Ç M¾$1}ª]ÜpjÕÍ–væA_Ù:ªÝZ›UçN”¸k7—3Q ¥®ŠmÍ< š"™ŒLábr§Cp ùzÊR† >ÖpnÁÿ©0Õ*nx³f>’¨»üQ+Õ#tý9òÄP:øâ—"Œmª®ïI…A‘njQ½>úº§[ó™sź„ÖFqt¸-Ìý!HMTaõÖmÒ!4ÁÇ‹ QÙIE†”½tšnæôÞÇ­¡GQÑņ*üQž¯œ½ŸÁšQ½˜¨"~ª×V»àÆg3P|]r•Ž;æ#g€)ä|ÑsóH±L£J5ÿ-\³q,&!Ïÿß6ìž~^ J»<«Ç,0ìŠÿv¦•ßò¹ãC5Êîœëk«— @¡0àB-w Ÿ”ˆYe`ªÇ?㨑2ª¢·AˆÒÙë…ó¨Ýk穟ƒÍ&æ+V4 «œ ³a·Ä§ÛÁfYVÀ7á®/Û#üÆÝ®%<Í‘=9Wý®§q„‚TûfñÈ«‹N6"š1¯by—¡ˆ¡ïÚÄ M_È·l×$ÿhU˜‚<ÀêƒÁ×ažçå™B‰ð´ [ó%p4"<gÛµy×6}‰'8cÈÛ_*œ($ !¢wâó¦uŸË¦ø¥+‰ç³xèf6={¡Kûê~3cs£mµ¦ŠtP*Ëî<†;€“^í;k_ü®÷ïØ)AÜ-¤Ò1MŠ…”ÐéþlÍOÊš£œžåÇ:H/‚L Gõz’%}é™cuõˆªÇc›z@n6î8"ÙWß~cHjL+Úï´^&+už{îä¥yX»8{ª\æÙÖq¸ªÁ=–xà œ³Êšß '²sw ûÝ=ß½Vºn·˜:V„‘íÀÿÔäÊ—S÷¿•ëD»QŠá•>?¥ €|‚Xí£É&£g'‚AhÙkMy¡×½³2hü¹v"Ï,>¾Á%†.Kw,B¸PY¦pËlÞᯗ-ŸÂ›çI†7º ÚÇ&àù«òMÉÛîe°žåÔ÷¼ˆ‘3‰ÀZóÇŽ^[ЏNF;™LÆ\º¥«‡Šäõ€Í­ í2ô/fÿŠ7ÿÄ„Ák,ÛÆ“ÁÞ‰D›à¼¿ñ pqJ¾ò¹iåÊs˜Ã;Çÿä³µªgO-Ád(³Ô")LªîÌ\νqRƒ¸vç)ßô«R0³"x8n·jmQê¹üím㈹=X,+h1¬lyåúàuQÅ  D×§ê$`Ÿ'L#0‚ôÖÜ=uÒGÁža9ß,ʧåŠw™Ü;¦váQ²qoñL—G'^k‘Ú=‘Þ+»ï-¶ɸV#LÃ’É]Ï{pø,ä*9?½Ì5»J)y-¬¼’²¼Ûw£ðr‰²÷òÿu—\}ðÅgkámŸßfe+X=Eð ÖcÒYåîí%ÛËò(”b1¤M}u6 8kç™ë~ç§é²óÕYì±ÁZœˆÚÃúKògÒÏ!WZ/DRbpy£êÕ.8‚'Ê[Y¦ã’øÈáÅqCö.÷Ü/ =ÉùpÕ?Ú´Ø š"œù yvkßÚSu8_t!õ|\agx]‚usž„Í¥ðƒ"ðOìT¶H3Nß[‚ ‘aîß—§H#)/!¯¶öB­aâ>V(?D[øžA‰“‡3Šæ±Ž§Än¹ žBc¯õ¸‡ R|©uµb 8VkûÐ-ˆØìQšz¸îî…=2l¢+èéä° ç‘'8Æ TÞ\†á1øÿ]ÛÈ‡Šæ‹¦»Ntf±mG›ÌvMÌ9ð|œÂ+Â)è”Û’&)©xKK[Ÿö);søý¥hè3÷\¦f f”>‡DØ,Ó}¬¥ìÈ´úhÿº~oË&{Ç‹wÿßu[PÙ³á—tÄ#f¯ð:¨¿5/ª‰%¦¤o3õ£ ÍeŸ£"S†í9G-^ÀuН¢“§^ÉÅ®Ý@á„g¶IQHŠg„/ÔªàÜ©Z·™8´ÂÛLhÜÓœÙø¨ä$^t£Õó(l?íc9oòþó«“M4¨÷š©ç=%eW*¯ Ž€ ´Ñf–^—ñ«ëYÂtpˆøCä•Wsª`Ë+´d_×SÌ›r²ßƒ`Ĥ ¸sš‰©W»gF<©w7s¥8Õ:_ë¼`¯Gèè‹ve ?ó“Î1 —8Eù$èCÂ_#é&˜OçXãÿ9y—µódö’~?Xz̋Šò=b"ÿ Ц»‡Þ¤Gz´¤<>¡,QŒ5>¼¡BâMPMí¶‘ò´ÀyíŽNï9†¦a2Ï"öe ßm`Yš¥ˆˆTDä}pâè"–C†äœFÍÜIç;:¸ÑŒ„¢æàêi†3PûýÖF_Q¾r÷9Á*Ãǯê—½‡úm¤$°?vŸçq‹+#‘6~óò¶þxíGºÿBÉ,Ð7mLÁÁPöÛȃHË}ïÈÎAf/þœFæ´ì™& ‚1S°ÜÖ…]xrfÿC`û½6!è!“¨\„t"9ºè8Ê÷EÓ0P=ªØíûRüýªH~-½ÚÄ$+Xe“€-â[™Ð@kO滑ý­3Úµ ìºÿ˜1*¤ÍåÂ÷¬ß»Odɤ»yäGEŒQ§Óea5½¸ŒgsÖU‡öìe0‚ÞÎ0ÊDí§¥w{‰B•{nåþnؾ@³–½?ó‹®‘®RŸEO5Ü¥g"^­w•Â?BS”ç}qÇG¢mÐd–L,ï¤GÀx4ÿz ?ö!ÚR¸ô•Å–Ã/¸Ôå\óÞŽ¥|2$^òüjøˆ¿Ò;VŠ4j°¢0™;v+Rž&q–ß—Œo?çödãöƒ<}Åauhh`%«U ^B&…ô°MœK©ÆEµ 3æ<¸€WÈ`=¦µŒ æ•&ÿŸmÉ·®“Ûü!*ÛxŒJ¾îKyåSï©åÔDmjK$òä´;ÚÍ2ùÛuô^yCÁ~²dÌÓ^®•8—1y¶f 0LÌ9Ñ´'‡ÎlÓLÙ®P"Ðù¤©Ì_Xr´\òB-›ûs‘ú¨KJï¯\÷³ }m®*I[Ú#·´Ù¯fÜ«8ÁA¾úL€š.~5‡U#"@ûÀ÷­PrtóN3iÔA¬r@ñ=f:T¦ß(ø¿ÛŒˆ˜ðÃÍÒªé«\ Íkó{õ¬—Yeû R/ÐÑc²Ç4À?ôXºx¸]¦;õ\Iáç$Ÿir—Ú­ÓÖvAG´wÐ$›Ï‚ÇLe— 1ö[~¸TÇ9¶ŠCg ‹ó:v®ëòpëÌýr/ 'E4¡å•½Ô žý0ÅC1…C:Àwy*‡£9„²G™ÐýeG~ö¡°³ù§²QÌëÓ2]¢`Ú”ÕòÁ­ïzJ-¿ö3GWgygDDW«^/ T2£îÞeU)ÙK¸ùýTM¶(†V{‹=p‡Ä­Ù°¢ó ÁšYR°vp¡kG‡U±Aû0ý”ƒÕ6¥3Ðü4Ü@µ=ŸÒF›Úç†cvm%?¾¸nœ5v—(Lžˆ¥à½Ãæ·,¯6xÇfµ0‹$|¾GbËE$JChUSŸéù€P‘¸¢ót׈}ié .a/Ý(Ð 6sX}cGÈô)ÌijÁ%*¶¬¾,¸DݹÝ1Ä´éĵ‘ØßÈ£¯«a³£æ :—vj˜€›®ïÏ(gzì…#Ä®X™ZŠõ3䎘¯Š„"¡Š25¢8«±QH´ShâÀäÈ‰Vn¡ž»-lã+TÈO§P%Õ˜ìÆ8ïV‡È¢©ïçØé銾rF…ã#ᙹ«Ñ×+½•ÔKAºÄáTcãmöàAèÆã^¡áAGo2‘8qìÓµG~`œ|Ýz†âK œÔÑ“sU'Ö·Ò2%&S"'0 ·È2ÄRÞ4·c°&‰éèbæ¦;u• ߘ(z V^ʇŅZò44FöS‰¿×}^ä%"?²Ñ[œZˆä¹§˜ ¸H½¾iã­-Ö ¦r²0WÖ°Vãv&눛êCrÌÔ~­Or³Ca£&E>·í\†‹œx“Óf5H”ΆŸÏÇu6íÇôrÜQ>hG¾2Ñ£C›_Óê}E>pa{À¸»Þ—ÅA{%+ ¡Ùeÿ¤;ƒ ¥Z[}rõ¼—b9ž¥×‹ŠŽ9lÒ&»Õ@åm4‹¥¿à~eûƒGK³Õë;?Ø8²WS¾¾±k„¥å@ÿil±­ [|4®˜f£Š~a0N‚-šB¨2XrÀ‡iÙŽþhu)V¥¥?öØÚ`ö;·9·Æ;î 5øðîx㎾1|Á&ª o>Ý5ÿ˜fÎeTµÊéGŠrÞ¤Žfø“,LJP]éÁâé~> •d ÚõCZÏà8O=yè• çv’Yúã‹#&ŽqPJ±AJ·£qDþïGkΉ,ØORÜÛ@h¦óñ­ðÈŠ™çPŒ“F^\DêÇOÊ/Q¤hoŸ¤‡N¸”8j‹JM/BeÃÙ‹,퇪MŠx’Qoz¢ÎLî´vooèï~óIš!oëlõؤ’îâF‘À1P‡, ‡%SžsÂ}æóRºs˜Zü·×QÅaÛ¶V¦\ãqcÇÐеP>¶¿\Ïš©?=,è'µÔ+ñY]õh³")|C³³cr4bµñ)²¿Iƒæ3)'<‹Ti®6‡¥ó*˜uã—³£úæ- ÛvU©¡@uóË:U>8ˆ'ýäÊC}ì/k98ÿâÄ‚UA&°X_:ñ=’ÜŒjü4¤ó~ЛÒrgÆÁ*‰øÆÑx„såZ2oá¶äeèi>½m á˜#¬dw_}ûø)vás޼jÜÎï…® ž`$ô7ß9ÓM Œ}Û”ó V’bö#ª;W^†&m­pßI,'NjÅôŒ"$š„{ûbÕÐÜÕòÐÞPô¿9•Ù°)FÝŽfq’±þÒ (ž2rTP„ˆmÜj‹ pÈŒÔrX`«U} -Õ¯cBj\°Sºö&F/ÊíBqŸ¾€ªd™‡…—Y; ó;/Èöˆø(¯‹&SQ³ûr:%a-ßq[¥˜¤ ÇxÕ΋ûÃq$ߦmW´ˆ¢©à ËI°Vkk Mµ;ôPâ:ëMÂË]¶Ü®öÆß¸3ŠRMíë-ý×)ÂßÕ•4ÙîÅoÒ¾â¤å½ƒTÕ¼¸”u°’yÿÚJl'éwÍv1Ôq\-AžšoÑÊ(ÐÚŠÙ×áì5eÂ*§t‚¸RÞ*ÐBå‡;¢ÀCf{r´‚Xê•êÈ„«ƒªò3\èªët” 3qNÛñ¿ðj‡‚4{U%œóö%¬ÐP\‰h‰>›‰ÖüƒðÞš’Ÿ©Î˜ @ò¹æÕEÅèd»­âX°¿^Á/ ¨ç˜®¸ù¹Zl·8Š}ojŽš¢¨µB| ¸˜†kêl£+?Ž|P×Ysx´ÄŒjÃ@€aé*¯ŽÇe¤}·R¥ ö&ܺåÏx܆ú‰ú À­^gÙ¢dÕYí’¶Q¶m¹\4¥ V) AèlÐï*C7δ ¨ôIµÆ_—ˆw x–'3žl4”n»ÂòЍˆÏ`a]1gh“uìåp3˜ÎR¶÷]¯-ž1ë]7ù´ŒöñîÂ:ªwñ~lœeáÝÚæ—öâ¼'Iú?Ư¨)×mM– ¯9Þ Mø•2m‚xe…¾ CßT‘ÆpB³ºDüÛ^×¢0b:НÊÑV¾+JÊ"Û.üsŽó}4€ÿ…pˆšÃ‰ÄoC\±–.i½¡7 …zÇJÓ¾H,-r F¼Ýâ$@€ÍýV ·á=‹j0½ï;ÁF\ГþÍ“KÙu_°Ýˆˆ}rè…1eõšá•ûds—Hn‡úXPYF¥ñxCÉQ¾GfhÜq‚·˜f²—›&8l-”Xþزcn)f¯êpY*2xX¡ëëEâRÛù|zðV“?ñ';8·ÚËÉ' pê4{|t c6ø¡5OU±a?Z„ÀŠÞÎJQeõU¯yOÌÈö)•*+SHå;Æñ(â\¹Žñt¤éx5#•`’¼Îì²|+Ê2ÀN3½Œb´¬ Õ@Ï¡¢mÂ; ^±®ÿ2þÙòÆ,½ÝN¿ª'w*xÝi’i™¶‹.WÓ.Yºp„çn7 JÔ*Ü)„èh«ìt¹ÈÆBöã¾UÒèCVÜæ ŽaWÑt;u£”ã õ6@°Z HÐåºÎë ÍŒrHA£EùžTaæ¢Q]ƒ—Ù ÌP9ä„׿šZQUÒrªUôÄåT¸s®i69|xœ‰dYØ5Ñ# á{¼¾NÀÚî¡Æ³dö'8??1ÛØ ™µÊßG¾…øaõ¾dEÍ!ö‹ËÈÒ¶~v$†?S§­ÉQ§?O7O~{$l¥Ý<ü¥ŸÊ~œ¤üÈôIJ?…Gèîb¹ûŸY“ñOŒ7#…ÕVX5&¥,ù©µO ³âê3¸4»°âõ¡±{ýÅò' ×Ií¥¯üjѨð«b7Aïj!ÃP°JªÅGϺ8†®{æˆP_ 8.®K×Z·$â* DJmêYˆÖ8…DS.¹S¿´è8?©Aˆäòèào¤fëŸN1Br&i(oòaYQÓäHÀ´ŠéäïSÞ°4eØ G8.¾ç¹EZ.¼óï×[7ÓÛ=h¦ÓRõE^RL¨(×v™Â´B3µÀeÏlúyØì£w¿,,>bõæÕRŒ‡¶AÞñô**O»¥(Úí7&ß•ÛÐV˜ΉY'Çš£ÏÙ!ÁìؘٞãZFüàì:\s,Ò”ÎÖî+$o‘Æ+ØÁ«‚²Ñqœn˜,çøÙºã4‹ (ûè6_J"³Å¶×ªœqÚÙ@ß{‘(3àçre3JK#zé’·È[~‰h§xà§mÍSÃ]WóÓÍ:àP O//R®µ,%´D¡f„*ü.‘q½©”éÏZâ•ñ ça£"!¤½±Á°Ý ‘WOCH4¦3¿çéG ½œ7¹M_»6çu?rPä"±zHÜ{Tà Kmtÿ¡êaý¯Š>>ëÅO´%Š«žIíìãR=©ó—H*õ®‹/ý,”1l8€TUq¯)áZ>?ÞÖEðI]÷ Nü WD!²öÂXÜO%¤¿Àõö´zþ¥Í)^‹œVU›è•\¶³ÏZ¼b‹¾9+¹‡Nª´êäo¼*õa¿2‘¦Œ~µ°1'xKqrû~¢H"$Pr¯›B/ Ýc¶"~k"õ{)ø3à”´Ô•ËæÁOÃteŸ#M™T,¢âÁ}±Ó™ß•ÝÙ—Ü0ZèÄU¸‘/ãÏ+(útsÉå*éÏÍç®_fu÷,GMï`Hn—‡È¨NÁ¥[ÉN›^zÇtœÎy£ö·ýMÒŒ%{áŒÐÕкå‡QÔ·ZüÕÌÌú‰$ Òõ{¦Ê¯u}gKùšo;DÕçÔP£Ø[2ÈÄS¡–æRŒáŽ=vл/‚X'ï¬2V Ê?vhŠ­AªÆ7Ä_šL »+¨¹êfD"d¾ßx‰Ù ©mØ&˜FñÅWeö–VƒÍ-áÃÝm)Ô~ì<Ïe‰C‰B1ÂùÅl.í]o –Ÿ‹á×Lе)A Ž¿CT*Öü»ƒÑ˜K™ƒ,@ëjxœ‘Д±Ã±råé­{(›dî^Ü:µ=Äø/tý…ç\îý`nè)UºzáŒ[¸BH¢ŒïFž>ñe’PÆÜž “[ü\Üœ.h°ÂÓîΊG‰¡šå…âa&l/¡vTrNÃ%T‚8)¾åËЦ}K—–ÐŒ‘Ö5™4Èû lé‘\åj(ÐÈbA$}©˜x²äÁ5(”J+r_°Ósƒå;€§² êûB½ë¸£RZÌÈŽ7J¶"PRóazú~!ÒØíÿ4ï ,ºœ)Ùð„CëúPÔóXÙŠd… ]6"à–Z Pí—%T€,~‚½­NÅ+ë!e¼…d@íÍäÈḲøÑ›‹"tÙ6€®õOóƒ_ºdÅöE¨>Eèz„U.àéñì¥r¾¹™¤ßàn_…î][ÕFÁpG;Mr=ØLÛîKO Á>ëV½3îäˆùýÜZaïw~O7vNÕÏm1ãR×ÍËZ©Ü9ÝgrV­DU«JYŽ!pµÕ¾ŠEœbÐpÎK»·ÁSÔˆ-•öÆç€T„ÞÞ²å9HVàø¸RM‘UI¹;o¿k>ÊEëò1?oÖH5iaÒÐfJ= À8vm¯ŽƒØöÂ6bÚ½ð*L¯­Ú}·ÊOà^’I5:ïn²æØ ÏÉna)ßSàr$ý^Co]š`Ñ©ðÒÂ-ÙL2^xè»e!HަàXð+[2r\ÿ;ªžh ³Pt}OÙÍpƒ~…‚¿ÿÖh'rnD6¢zb_¤ÝÂÀÒòÁÀ´‘M2¶D 7u黊š“:è±t”š´úÒcÉ:}V "6w?Q`¶¨Ä!s»ö#¥¤Î NòIáZ›âð°X.%ô¼û†”ˆ¾„¼ÜŒü¶75ÆÏØ w5… tÔ¢êñ¿-R}ÓöÍû±ñºÀêA˜KF·ZÚ Çç©K—à ïY]’q4c±€ïßæ”—Ìê“æ¯ÈA&¹C‡lÏuxåóµ<ä{Ú%çÛ5èb<-x\ |-ôÙ`¡/aªbÁ"Ss_Ång0?˜°+Í^. àNa¢öŠñh«C¾É·Ü£MX‹@2§<à[=­Sš —Â] ¹ Hõ|'ÊsñìÿëHvj°‘óUÔ †­yR†á «ªT ÛRtªp¡ÀNôÀ¨ëÅ€s/\ ŸOÓw¤&9=Ö©fÃË«’@¦ÈIIzÖCëãCí óXžGp¢d*}uVsIÚÙ;Q¢7éÖxbÍpdÝÚ,ÜÌ Ë‡ýCH;j¥Ò/]ð3DqÅî[kéerGqL"\œmŠ€7 ?‡¤Ìfü`ÕŠþŽöðŒà2?Ѷf#7Ï ˜‹oÍ•~÷›´W1èXº‘*+ŽT­/ʤaÏD–î­ùuÅc<`‡±Q=ÇüÝ@ÐgÐaN°tMOÃQì~£q5‚]jmõ\ˆ¹ËçÛœº,€êk39µÃ:›Ò(ä."ò•î˜ài¢@ó ‚"^œƒVÒˆÉY üJ¡1xú•©ÚþgÎaˆÆ–ëÄ5½g‚UÀG¼Ÿ­á® C•eAÚæÀ!v¿qá$ÀĶùçs·ÿÌûóD ¿ |ФñþfDDû™@½$š€¸aÄáÃå“¢‰4N{ì·Ú>ãO#;ð?ÈcƒHªŠS·™-tMÕþæðý xH°ejG¢–ÉñŸ™H<ž‘’2|lŠ"çÓ-íµv¯K*MpÜF 7æf Lªáº3Ë着N#« ð‚’ò`ž2¶†Î%ïÿ$Œ½ ¤¥\¾° sƒÌ1IÜóî¨. UãNSðÑZ˜â(åQð)]Eápþä÷fæ0rY³óSGû§~~î€)ÊHpîˆJlk¿ ÃEéy¸c÷‚DEfsÛQy{ÎäPÈtÙÙòk*(e0SàÇÃ÷ÿ5ÖLEôF­Q·6®¦9YæUÄnß1ŠgÍSMÕw$=¾é‚ -‰†=eÆÊÃdÆÁGsáå™RÐì Ù1wÚ7Ho?ç ùÒØpÇ_P•¢Ï\ôSzCê^j´/)Jzú1¸°…^4Çyée•C0 C½Ýa&Ń|•w¶ã¢ÕsÞÈa¯Á#T0Õ |–ÌLYß“ÎG÷@\IZX›ø.,£Ä¨»ùf˜ËöxÆ_ð­nR¦VÃý´®ç~—Ólî6÷ý¨’"¤= ºw ¸D»5AIE Ò$ý›Í§ ›^\ª°?U{2šde>ê†1[Šì½›)ñ‚U¨@æÝœþ´+~?Íæî+äcP´EL_°Nç€è\²îàû>zöÍ?JÚUÜ"à'šþ¶õŽGh›Ò’Hž‘¥(­–›ôä=®˜,âé`p¼œõx¼^ç­½P³•éÛöÕH-— Jf ùðBôÚï-z‘¥zF¶ì/-ýtfbœÛQt®‘t畈£çc…“yþä·Ú–0î/ˆÐŸý¬³½~+ãµÍ.õÞWâG§­2 eØšŸ¢®ÂTÖCZ†ÎÙ¡r‰ >Rµ”r · 0H¯p*Ál³PU¾«†eä`]:FÁè:ò¾`—ôn÷ÂB³FæzA ˆUÐa#ÆÜ>U -•Ü×׌ד†Øðz'ýNÜ^cqGcÙÆùy §,®Jp™Ô’ ÓûØBCÜaŠ W3*]/Éþ°_ÏÖâNHA6+lG›@FÍgÞ? \À6å‘ ‡÷óÜ‘!€&6É[ŸÜú E­q-æW[»ôhãÜûo€M7 îâX<=f3¼cM†™„~X­uÐCû{ ¾‡“` îþåð­UYƒp\pä°jäŽ ¡ŽÑ€þäí-“"T$‚XÆpÙÊ:ERïoÈ«2T¸)_Æg7ŒŒ,µ!͹Ü¿àUr_ă×”40åžËÿLµ5EÒùs$K™öH ù $“‰-:Æ×/f‡_ü†éíç!³#‰øæ.¹ž¸ ¦î!"Þ³Èɱ€ï1…Z'NÑÒ¥ ’0²;I–[ꮨƒ'Ò„¨œ*-tùÐaW–¶(el ØâÊj³ÔˆôJ¬÷rƒø.Ö%†¿k´†XœžIMå·à¹ ù¶%½2ô눧¬$"x€¯Q›Tâ—øO6SˆMâº~PlÞ±€ß +³ü#VŽ!eÓ4wôCIèE*нã÷f Á]ìÌÖRÙ0^ƒ/ŒÒÒq;דõ|û1ÝœAE£Œš4T Z«Ôš·tŽàþ+ׯh>‹_vÈm#ôþü¿©¥ïÎâPutü9´(JÄš|7wS°"œ’æs–®`ÖuFóNÑe$Óm•ÜÓq^Q7Mäíõ޹;±}<ÜT’ÀGÕ~Ã[‘³QÎ{¥¹Óˆ½ËßlP A.¼EPt’È“×-;ÿµ?\þ/H»ói^YVîØÜ<Ôy¢Ð¬yð¤2Ö&‰OJ>nk³×aaeN;ZFqÛÿsR"“ÕT}(r’,„Í»GŒ„ j®›ÁM3ñ?þ|‰ ®ô¹tÇTfáIˆæÂ‘–D ‘éaíE/Ò5t½ {æÄ 6ÃSàΉM¾—ÖJÓ§`§ïww%¢&ðåžlâÎ[l¦˜ª4”žßNÞYóÄ+J›ÊØ®Ox|Øž‘uw“µC¥„‚a´Û4=&I7­’ÊÙBÀ,@ Z6Q¡DZ6ÀŠ  ˆ€”Ü´Gž¯_yÇ‹ZÊ„ÿó>"ë«È*tn½hû ««en ³…Ù ‹­)ˆ‘ûE_¼*yQ”®c™t£,fPˆ#óÀCS"T„Éj‘èŠl}^e?íhî©T;ÀÒÑ&F‰@AE¶ Dg½ˆÑªðwGÔ/‰lj>&êð@:×°SOajŸÃ¿D869!§¹Ô'n^ÂéÚñÈ‘Oxdho@ýœ *&^e× ÊåÙŒ¤ª¦ÑÐÜ ø3ˆ|5{lÈðo‘½ *¡ Ïë»ÅÄOeagñÁ@þ†\-ȱ 4WÉ\\@Mýí„{¨¿Äã^nŸ|ž¤]›¯­ÙA tûvózZ›1WÊ]Å1…(ë‘£ÚPk£4*.îƒnÊæ(PùfWs&œð¾ÒoðT݃ýÃãi¼4”u©ŸÖU/;ˆq]þwþ˜†‘‡â ç C<×”Hì‰×ùYŒ­ËL¥/À_{Q½e¶výÙÂê§rš¾#Y>ÕQÀ¸Ý¦š‡\ɪ-V3Ò÷Ý퓲¶ fí ø/þxß¶Wª§áYˆÚS¸:«##|$šz,y‘]Ÿþƒ¾ïhÜ–&U”¿Kðoc?vñÒxnÁc™R7Ñ›£¡ïÕ”(÷ ¢׃aªÚ¹oäx-oÊRèxBLêÎþ¦ Í9Šã‚!\Ä#^YgþIéDIÃÑÑxÓpÉ”³1'¶²ZšJÓÉñš‡¡ÿDšú9¡ó`çQ‘0Ũ§œc{öLúÁœ:%²Åf—¯Ã.”!Ô¥gZNí"BžæÆTŸTevE4‰Œr]Ñ-Ô `¿¯A;=$ltI(Z¡ì/^cn§fÀw!îwƒêÉá×&$}ÿÒ àá w`g•_…êš·1Å·bÁª±dlïúþ˜ÝôÄÒºýßÝ<;:Þ·¸å·Š`Ë€D²2„ÓT¸^çʨF“‡[»`à[Ò…3qa¿mŸÿ1¾ÅÑ'¬ŠWH˜ cu¡Ä‰gØvÙüV.t*–p\³‡„£b– ¸Ý ²”xb›5‘—qf†„õ®;¬¥0,µ!|z=^LcËا«Üê1,,þå'n`Ûü ªò3r(öž%Íñºl«FŽÂl,CQ^“*ø“'jz[Z`ªè÷Óm êÂ&úë~:vàÇ“7-A£Bº^ýzÛD˜L>(,,P"I.ÊçcöÞJóÁ®©dæžh­ù úó/àg.§dѬ:~Kx©Z,/î: úcÿ¯ú÷G§Ç¢‘b„"΃æÑ‹ w.P¥oÿCµß}]«òVcè­¤ÅJÔÅi@vªàº¥ŽÚµú¿oˆîlX_ÔÏtc6“³¤kIa <¯ûG Ši$D Ùb·Â €í*ˆz=Õ‡F¿ë ¶¸õþXØ_–›Ëœ<ÚæÁuëgËÇ)O–õu7;Dù7E[=¡› ¢^-eK,z)âÒʸ¨Nçq×Õï-a®â6Â)tªa•ÄUêÒ"Šß¢dhÓ|ýýB²F•œ:c‰+ˆ8BíÚÒúNô yÀûå=‰Rj?Fò±«¿ä¾!×}²|¿Ó²¡C\uaëÿôÚ™SM‹5»TôßD—Rý-â’à•6DñÏzãLM,¤\»Í§Ér1ŒMØàZêØ¡©"çíäoYÜÑöøŠd.0¦¹.’ )#ýš†…¡R,²ÙæG,J^ߨí\·ç„°¨)JÔwŸ…¢äb%30ŠrÊÍKk´J3D<àIÛéí‰ÔQálÄu¦ˆNÉ]_µ†‹RÊYžx鑇®®HLVš¥`†ýQéfÓ˜íâ Ç2 ]n4,äœ%N³.Eçõ¡R{{Â÷û$,Ã}ÿcLn˜žJê¿(x{‚|4‡‘Mä÷gµìܬ<Ñ“¦È QŽ4+]讲 ›b=ã`þ¸ßËlvØ c!i}­'&]uI‡À#8‘9€0í"LÏû¨¶\|Å òU• Rãeªùè|͸}اf]¦€ƒ)3!‘öÊÒt¸­Ž*„ ”ãvQAŠ­› »ðïX²‘ßëxA2!ÄŸ»¢`Oj~mp¾—½É’¨SNµ†­óàÒBE Ú ñY±(†ëf)ít¹Š•¿ýJƒÙ¹°&j5ÉB:›„]¶²5¦n»ÞOƒ>jåŽ;pÄS‡¾UŒ 2°ßÜDX²,Å Ÿ<ôÙ¦<©°Z¦plÈKüø!¼Ü˜ÐÈ ®ñþŸê¿´çVÅI\a׳¤ss@_-Bîž(ªsÃëÀ¬!’]À‹*@š~:ß-h”¹–qã‘t3 ˜Ñ[|S§’ëOG U R¾éô »£,Ïa?ZÌ]õÚ«§n€³x»8eSoLZô`Ço˜U®»8ž±Ïò1O0kH7)Ÿw" Á«ŒÊ,54ä{P?± -¹ÖêþlÐOJæÈ»ÒXåL;ŸT(,†¶MáÿúÛ1ç1±¬Žú6'꬘hÕ¸ §] ã‘Ò&¬2ÚÑA·êƒioo !ŽÅ8Ê¿üâlùèRÖçÈû_»98Š»ž±Sóª;à†°÷pt'ØÅeø¿í9ˆ m{xúçຑñäs|‰ëó“€7pc¦ öÐOØÉaë¸9ˆ*Gr65søZ++‚þÕÒ×:Ej¶  /Š&YHÀ‚ ™™ò±‰ÿ7Ò€`kŠ­Í6Þ»"ÈÁ𻂒®štËþ¼s§GS ›sðPÍ®:¯Ue†—Ó¶" ÷”u«, èÿ /á â>R›‡EûâÛÅC»®5º×©ÌuÕ{±ÆÔ«î/¾µkäÓ~¼Yò§p"!“ûó«]Z¶P±JŠ›O6P¹k5NŽþ €¥­! YÔÊ’H;"@ßy÷p̵÷„®ü¹Õí͸rž7ŠÐÛ­‹ìνùÓa³.ݲ¢°ÿ')²^Ð_3¦ÿ‘/Ó¼l=±Þv9^Äû¶”o¡í«yÀ%`ZõBÇì‹e‚fó9¶":ýñ¢McN0½ Ö€ þq'Ô±¾­½JÒz\ žf»,7j& ¢uŽRˆPjÏ2g‰ÅÊO´F•«>b·zªñVàÏ,å@ TEuV2ˆaè’S•¿NO±'Æf_ñýòNÝÉÇT“]–íµ*­[«Êr­¸¤¿²€Hÿ£ ¸"Ij_ãù­–ÁÚ}€íÕr’* £yurÏæ% î ÌdOŠ›ôf÷$nîšVܺzêÕÉ_%|.¸ˆ…Lç°T2õ$4=8ÙFö!!š<†f¶H°`€wbýÖ?§$ÛÊx_*LQ§ÔZ*Ù6²—´–s¥™ø°¿§©kLvÛ"W øBv3à„¤f1TÃ04dÈUL*zTS脯Éxî]à-NcÔ~&fwŸhfŠ34dÞGÿyÎðÛT¹/¶vÍLKg:‡—_Àoµ;ÉX:ñ¶ôäîÕB¤·PCËzg¼\„g“o»x‘BS:ïæøJ²Ë»†âTõoÖ\ñX¥aË,Ü€¶+Ë ¬nÈnCÓ)»Íli²Õ²-HFèëÕÎáÝ6åï…íË~—J¥qrÁ0îdÂUæI¨9¨Ð`ÅŠÈá.;žèon5Óíí䛎uUQ!xô=_ÉÒÑŒX•ªÆÙ"UÁ{D$À×Xxˆà´oÂО ›[c»­G" µlë—¨o™ÝcðÌõꆆ{Ù‘0ó•ûÖ‘Å¥ºÕÏìdih*5;”nçU[ê_ÑÛ“/ÈÒ x¿äkÑ£pˆÕd¡ÃDKk_RùŒÂð&ƒÑ0­)ªuWdž-—¸¦OµQ6ÒÁ¬2 ;°Ÿ‚·—ƒ‘¹–éKà;,XXöŸÒa'r°Æ5¬D”è™y²+¢„>¢iùj—q¢×œ?v‘D¨óUÿ¥<ð¨ÕÛlOb”sÿ¤ôƒ“â‚d'Iúåø[’…½ËãÍ*Ì+3¼¬ë¹r‘Ê.Ë/ɶl°ÔîšßƹF·ùÍqýŸÝ3ërŸ[Åž!ˆ c—¹IpfYdÔ\T·íë-±§[Å€?:ôé8 “¾¢š9Ÿðz~b©üYrFá(XÑ<Žèmeݧ´j6"°|Ó ËN¹å!÷:žztÆ›ú:ZweÔf¾p½qálƒåÊýÙb©ŠÒwéÔ®ËÑV» eøgÖË|†J'ÆϬ à“ilW—k"øË!¿]sKØ9´ôø.KH‡Ã‹Ú¤p3ÞÔBQlÆ1ÇÙÛ§Ü_?b ’œúƒUâøÚžn—­´"ÚgBƒ„yTšúMuܱüoÉžåãŸÞ§ynBÈ<›Ò±º}”»i¸Óüc0¯o7a4ÂxM0ÊO<7¥üé¢ñôëDs–‡-ù©á8 jì×Î&¡[fê2ú”[’ÆGná}8ÕÜb а'Ϲé½bó‚!ÛpUl»'"°a΋ÚÌ-FŽ¦ÎŸŒ¸ŠìµÊ3¨ w€Ô=ЦÓͧz±6ëÄ‹ŒIÊÍò˜!sóÈtѧz¸é*Þñ oC0 Žúá)OqiâRî{Ò‘Þ EhÚïŸÒ+}bi–Š«,´.úÝ™ûðVœÏ09RÑt¼WqõeI:³ü¥§ÖªQF汦ÃAð4ŒX¯ÞuÍ~lmËÛTÓš°z-?-œÄÖQ½^t> |ŒÀ™Ùƒ={§7“ÞÏþ¦nh!{ekÓœïîþ5 _ZÐALm¶UägE"ûj>Bs¬ð¿ÞdÂÿy¬`a®/¬ÝdT ÕSZ¸c€Ò# rsïõ¿¿¦7ÕïÏå ¼\+û~u¨7pÜ`áºa_Tcy®ü:{@Þ‰l#æ¦5›ñ¯Kâ}ORéXÑvç<ûüIH~@öÊ…_r,`9…/:» *G?¤ÿÕOÀ%}ùã½Õ«ÅÓôVgg §â{}Z~üh‚ü¸ M ý<×N—èŠ}¦ç0wN_ Ït¸òb¶»oJ¸8–H"υꮊl­üºÁnªfÝüÍéHÊ#DüHQ«ö³ÄdPa{T¼Á+#°…½*䎈Â8ç7KÁ:u„l0â²ÉÏJû|C#$²µCË ,ææ:'¶`WH ¸\mÕ-C¬çÅ«!O€ C1”YuýâÏ2VGWCEôJ*›ûa(CC~uA©öb9Æ"©õ0ÅÒƒîü­gg4C[Jk!v,­6zØDoȰ–÷MUûj°™«ˆ¨Žg'\ŠKíŠWëˆ+Í'Çñz”Y‚ûØ\™aÑòÝç1-û´Gºô‘¹EÄ$^ÁþsUñœÊSD‘t{7o‘. ÍBˆ •É¿RÂç9îo«Š³zàž |†Y°~8?MAç¦D((„g¼eÁj–±~ž‘5Ï?#ê¨pò÷ýÃ\¡‹Âû¹5¨ÈZ+ç 2±b]f[e>Úž†;Ö–â‡]H‡Óp}3>í/"7eîö%‚–ñŒ_þ«Üg¶VœqÅ@}±€ßâYùZŒ_×)ª[UøjßÜ iÅq~鮎@¦Ù;õÏ*Bî$>)މFýˆº(5€®d!>>BꨗÁɽzƒ`RŒZaíæ`oJéG‰º8ˆu´|L'ý!síe2€w5Èþu´HÚ¢P9A$h(óx<—3S>HÕ ú^Á²ÿ)aìŠØw YÍ—Dr ÅDض‚tò*±I¢èò§k%Þõ´†ª¼ÒÒ禆¢D‰`JT2‘¾„ÍÏK``_˜Xp¼Ê°†˜ú) Z6ƧGHwõ2K$:b¹¤ö¤k„E?Å>HËXšÛ’ÜC>k¦öðËŽÛw&‰—Ì!Å€—½ôj¸«-í½âËEç!ÏkTÜ ÞY‘³pl\BA˜Ày^~«µ;QsK7´~ÒÿŽŽ±Š2ê¨ôHC‹<|ñ€Š<æÄú8b[§y¤ó£ d‰t[²âRR=ójZ0²­Qpü×w´°iCmJCõyJK©ä†|ÈIw*“˜E Qè„´(žåÎÿè7·Oº·:PÆ«Ò=Ó[jk·m?—ݾü˜ÔH¤}täRŠóÙ6í ï±HS dÃÔcB<{oµíRD“#ûÕû Óˆ3««ÚnU ûÑï¼tÆ;g5§‡B«c\ª&èè³éŒ§‰K­@gÆuFrR£ƒH]‡ßh|Õ,P¤Õ\~o©k!¶«ëaý+´˜Ïë¿ÿOºqà.ô©7!άæý&*ˆ¦Æ`ûE‘sïKmà†ý$È 'ÆBÅa ˜æah =ÔÆ\°Üʾ½R¤ù(_þ©•×QXnËÕ‰øgàg°J8¼ž L¾&wGZåìVù:eƒÊµú¯Ù':h„·sF”S&KÔ›û¤aT:¯5²÷¹Ô#áJ%«J6y÷8£¦žÎç¼íÔ m1æoQX8œ¹[_-«(—í=J‹øÎH»»Þq¯@Ev([Ê0¶<³µ¢àOÀ¡Ì1”:ã(ÊÅKGÄ^ž\Ié^Û»Ú¬L3ûPÑɸ êªÖõ)ªªCk«Ñ-4m‡¯ë¯Œ!EãhD#1Ы¹Æ–uæ.}¤À ;…vŽseÖ˜fÎQÆÜ¹™ù/ýUNæqI7½v’…R€Á혺>–î¤ùþ8–À¹±"}žzdK3©<‹²=’TÜ^yù7¼hjžªˆ;ÎãBd9ÊŒVPÚ°uê꾂jp=×H1†²,ÿ)Œtåû‚W{­ E³t{c]4mЊüúBï R®@ `¨¢Ø‚[ˆ½VßNÍúòQS+Û/¹FvOÂÁâŠÜ\Êé—9¹"?¾Tã})¬ûÁ‡ØYéh†&u+düu;lPÀŒÉ(Å£¹4ï^ 'VZá„à³Ìï#*ÜÜÇ1»‹§û‹aŽÇä¦Uì[”7vÌ:·=àÒÏf%³Ò¨Ê±pÿUÙúŠÅ"ñ´Ù&ßîÚ#ö¸)­›Ï7P&‚ÄÛ€l­XûõÞ#íU«{HÇ·öõ“U ›œ F {zŠ2ݳyTzæG£8<º‹ÐyÉ®Ô2àjÿ¸ÙOéñZâ¶ê¡¤W/Š£XUí|Áoç:W[&NñˆGÏ„F¢i £™3ÿ20 ¶/]˜IÀ¼×u,Å”Ü)¿$÷Iòðæ®üVí_ó>çÛ»—6{›êjã;gÎÜ*!)ôÓŘ̓¾ö͵$Á@3 û‰Ú´å´È)JQg‰ñ• ¦›ÜäåÉËn_3ëÂÇ ?Ù¼LŒê}··í?4—™¸%è&¥1õ_ž¹Öå—cwYÁ¾¦kéVÐ×'³ˆ°­xØŸ pÿ2–5Èm—ê®r@õÓæ©þUM”kÿP±CT‡fæ?׿ÜîNËy±L\® ô’žô6A²&«Æ:yCi ŸË6úKMFCÒ-q3N B\biI;bÀé^Û[[c2`îÀ-`éí4g:Jƒ£X»°þZYõUìCX=,ó|Ž, 7õO…Ãâ4øšŽJoO)‡[¿1réâ›=ŒùÜŽªç\¦’̺ÈZù©WœjÖî@‚##fSuŸœ$ëFõ²‰xs28¥k²+ {"íd Üo5]ËÕ£póÕ÷; ÿé夵–ïÞQžkDiùÚŒ$ç µéßL†ç„m,^L5¶²åÐ+RÆ' ®á“ȃqôE®Åw›ÏVÄÍù5×+îä×­WÙ$âQ”ŠŠüfwLçï+úÇû…8±@ðªv«¤¯•/#¹ìÈ`PàYd_½¾å¬±e$\NÈ›8·MßÇ΀ÿMxØ[Ž{tQ‚bÎe7ȇ¢Ãk9f°RªšzVíx9òƒ„X•)ÝÒF0²E£X‰¶·jng„õçRˆOê·xO¸¾ÃЯQu‹;Š÷ŠP“ÚIf;À&çbä"‹ClZW„¼ña ÆŸd’º·,¨ºX±…Œ%ËÍ5¹ÙÔÖgù´›8ÏÁ:{î‹°1”§^‹ÿ¿66CPqÔš#ÓÞï¯ÔÚæÆlä íP4LKÍ»pHˆ²Nég<2%2+sÐÖúF½täˆÜëJ`ƒ°ï”Ê&Ëøì‚`²˜º/9$ˆ×r}®1ðØ[ºòÒ\MÄäDU: ŒüÉBŠÆmriNAR¥;®L½H‡ŽØ°ñyj_¨ã¯wNX\³¡~( ÿÖü]î9°ÌÈtŠdÄKj¡]hð,´ÐuÚ¢T!MjdÁäc¯êOSeŸy ‹nhß¾Ùû#€ ÏEfì2„@©Íµ³";|ºekc\ˆ½©6Ýö§~»·b¢F½Ê—þÙ2 =½‰ºÊ’Ò¼fZx³ ŽîÝÒÓ#SU‡Ÿ¹¶¦¿#;7Ñ ]k”ÇI$aò•–õ—/@”¬cP@ÈÄ’ÿ\)Õ·{ê3³á‚ßqÚˆIÄDcÍŽFx¤·zÑþîÈåFûå WèOä6"½þKr8~RXD8«]9XÄ<µÀ3]eö•ÂKã1×ꪕß˧H6u$ÆŽô†ÍÔfŸ'oÿ ­¡G ý ÑŸ(ðMÇ)‘8™Ò R»nkAÐë€ù(6@`ðŽ¿ä¼eSYdÜi"¡óÞ}…"ÙÁ­v„w"‡C²l•g—È ˜Ÿwm"d].ãÒÜ ÍÆ-NÀlþó2"dÇ# k¬H„,~qÇ”Ww®Æ&êèk>­ˆëT+ñØÏª£?iwà¬ë_Ëå;q…¸¿Ð©-aú—ø÷HËŽó;²­+ìF²jÛ£áxîè¶Ȥƒ·ú޽…;˜?¡…1‡D#ûÆfÔE;Yû å©aåêŽüzŸ™0{òÛZÊbÏ:U±XÝ‹­ù‘nªÌÁ“ë\"feKÃŽ‘ƒeñä™MÙ{€ÿog[º)÷Å,B‘.à@:Ú`š®@FÝè»ý9¹MÊ#µ“çH_jËÀfS³oÖÅ„õBfeéh™{!þa‹ZÍ…¿S`eîjô¼’ëMƒP#ÇTÑ<7\jF(žó{²[hWóÁ)BçIæ÷oÖhUù!|öÜÿ'Ȥò'R#Z’0~¢’›Ä4ÁuùT—¾”9 ¨î¥>?Büð¨ç¥~\pty®Ã£Á»bd Y?3cƒ aËÞ´Ÿ8—…ícá,SŽBÝZÇÑ ¨ /$\0÷&©G6l޼•êè Ø<*XíF·\7ÐÁå$°uë'zÓîv–ˆ¿º¶[ x§›ìu, 0ë¦ávMÌ?«v‹<ð?¸ZX&~@ÆŒüŸß·‚úø‡…Ý4íò!Á^%ÂN„±ÂR0ÿ2V•5Õþëk:Uh…TÀGÉÃ^Úÿ:X°4’SÓ¸òp»ŽH,³[å+q S¦gÞÞ»R÷ºþú æ¯ð..â}UÊ ›®? sçôÚ,3‹gÙ“ø·4¾Ê$üÔS4àÉ|äÿí «½a‘ÎÞê”õYf@”8ÐE Éž3hi1úRIªš ¨Ñë!‘tëÿ»gc‚ÓH%ʱ4Ö 1:;ŠçòK§vcGó("·r ÞÑ©záÏÅ ÜR[:~ìç «d Üâ}Ìj¬î£j¬³PwõŸÓ%@ï5ñ}&¨7ÓÑX—®Šôj¾Iº-˜rØ®kì²à}ݬGÕÐ` …Ól£r©J8°6äM¥<÷r 3•€óðÜ$пlX:v†g4¯luƒZ ð䨀l#áñÏ5O(ožÝNöà©i2§U˜@ù bmìbDâ…£tgùyáÒ#_kibOˆw­Nk޾ò¿LÔ,J •ÍÅ­$^Í4}ô`Ùqf†È¦W«–„œƒMÝ÷eAX¥;½ ÆŒ?©9£!.ç£è# Þ‹Óøi=Éé‘c|üÑ/ß•"xúù‚qgf|e2綃‘wЇ"ûøëècKˆÈ|Èe[¾´€„wífà¦cSY¤Ì+ò (¯…à*Å&â„jëÔ…ν®äÒU™¢,c£®ØÿÅEœÂé¡™#Ñè@xúYØÆ™¯=ð¹<}<ŠPV„ô•fÈR®–¼ u—ªØ2»=žã[Œ¤èoó+ÄŒN7Æ>t¦±ši Q¨7K…EU¼©D=X.Ø®ŒI^ŠO¬|×8øçÿ~<6ç¹üóµ á¦i(ÐÐD €ÂŠîÚŠà³êžSº”0C[…øþn>Ö~ÕWj¦‰ïÖéC/^TÎOqì*ðÄu"w׺SÚ¸ÍÀ!Ä„$lÑV¼7#û­}‘$œ|—]yÛçþ£€†zæZ5º¬ï?"ŠhoŸœ*;ÉÓy”/v =Öz#müÊ”^€ž„hæÅ56#– ¯—@$ýj­"4ˆL#L›½W4¨ÌGÎüÚô ¸èRÖ$‚.Ü…{ßeM@ÉB`æãÈ^L~nÀ jR Æp¨P½¼s=ásßÌPÀ)ç,‰’~âoý‚ w(?¥ ´*9Ð);À饴ÂS}iM–HÎažž²‰¨ý-}Ô!h¸bÞºÜáï/ÉSsÔ¨ï \¹1: Œy¯ƒÔÂ~e:ð9I“½›šÍ$Ö9„›5 ÕTõt¢ ñb[,'€<é?e©[Îkƹ+»•™âPîp¬í˜}R)V:°ì çKQÒ°,&‡¦«Ï©^=!„!Áqˆ ù ü…m“tÓãú•¡ã££eL/Z1“PÓe‡p…Æ6ñªŠª p; ;~ A‚äúçà ï&ã’#Ë~i¿te8Ì ‘ÿ!þ–ß–¢vAL3À®::à#{üù¥8yÀ;ªÙÈ¢-ü·V ’ï"HÎs§ïÇË ùëÌ฾4÷7ÇÈC¨î‘’-ôÒ=Ï„_°)X²¥lú/]_ö–›ÊJÍ·ü¾·N¸·"ñoÍÜ„àå¡0²ç?TqXÂVãÈ/–&­×íü>\ £ë'O¥˜á-ÿ‰e$‡º7˜ÌÎÄÒ­kv€†KØx#ì_'¾…¾R(ºâ†pÅo v†Hb_ÑDWƒþž™çö¦·Dônnúçnþý¼íæ78OV•ÍŽcßúj>E¡TíÔÂ_š*Ç®‡®ŠCÏ?†T›O2öa`?‹v+BT›°ïo0ÞfA7Pž€—ž„`tœ„ŠS¼ÁEÉhP¼?¤Ñ7Êó‘ÇÖ 8¨pnÿ çÜ!ã|¤ ±˜•BAÁ¯*­z ÷ Ì©ÂÐæå2JêÍ’ˆ€³ªPѼÑçæ÷0¶Âó2˜ãƒ¤³“‹g¨‹ÐdnÐ ¢ÔôMb²‡ã$î²í´lÒ¾jLj›€\5r›­A€’³‚5:!ÂЭñywBBÄzîÝPÆ:Ú j»0³»N³”ë…=3½IÐe‰D5=}"&RlEW‘ù¨ºlë*žûÞŸÿÝ È—®?}Íôz>Åd4u[¥Ðln¹_±Á«0ïsb6´LVèí›éB¬Ô1;©0ëŸpq'ÝvÝÛÞZ‡çi›+õön‘¯š-!ª3ÁŠÏvÀ||Fd<HlpºlnîT> Ï_o 媳Í>â¬$~‘’ŸÑ1£ÆÃ¨¤0D©‹KÉÀ/TMœü8–Ñö¡ÓTû¹Ð.w±;lòÕ´qC7‚Å…©ä•‘6?\ LUSRNp!Axqz^ôYá׆ÿÑÅ©¿¯S§“=BÉÖOsêêkú%æ%£6ú€W±9jÝ‘ýjúzs¸fèG$‡Pé_‘MDT7UÑ}9BN\Ý­í×o¶ü‘%.šPÍŽ¡Ã”ó¿~µ~“E•|w‹®añ†î½øö(/CúA7ÁÊi…<äÍ L»->C—.¦ôÙÝ•.ŒbJêÀE9ôÝÞa\“'pI #ÇžŒ$¤§«Ø-HÁL&¦oÉ' fâIYËhÇ^@x3EÖ-ÄÑ*¶˜þ»ßÐaŸŒ´‚^õYÊäl8Mœù\_BÇd–I ØœïÎÀÿö'iÇü¯:ù\Ä»¬CN¼t‰%iÜ÷f}uVoP„6ŒVæÉªL8lŠ1EqÇœ§›c8B¤éŒ´3hN¾˜)~ZÃÀ/i!í“7)-NŸ‘^˜NÛpínY7F…Ûí³ÿ šÞ®% àúæ¼ã{”_é#Æ\…e|¬Y“tÎÒ[¤Ó€†w»\WzMîênA§Cd0éDâI¯¢Ð/ÎAp¾dÊHjìÓ{a±íL$‹íÛ[y;B«ÞI{Z¢fú0—&†È¦É—&{_jìoð0lÕhrÍV­>¹ÓöhDslânÆß§+Ê5«•ÙÔk9:ØÚä`’”ÓᬃtÚS#E÷g7à-SF'ä®ú tB[`Ëfî%¤æÒ_å/Ó‹}ÏO7šsÆÝ·†!?‘öóºÏÞ¶7·û`ãr ý=Ó´(hmZ¿¹VY™@E.±R£Â0ÈÉ5ù%õ£pôPÐeîýÇۘȳï é¨—üÓ³Ôø×Øb ¶¾üìˆTë¬w°ÉÃXVAo…Æc(eînwá±È¬,øóÐIæl·»¯°Õ°ÁþŠ2­8nî=4¨ïóÅæÇù ·d€ YJíi—Æ„¦¨»ý£fž“¯úÏu×øñoñ« ùø¿Y7!„QPéð,ÍÈ_vì鸂ýLÄÄÉO»€†³\!S5GVqÈ %× 7'ìô'ƒh,lÂX”“칋ߺ÷ÀMRÊ·+›Ó¢™/^¼»ÆÓƒ°ˆÜA3蘩¶ß䉩ªf4á"»<»êñ­j×e  •±Î£½î‰ÀÆÖAȵBº)EÈF¸hÄÓÄê8˜‹s(ÖñÓ@ AôþÅ4Ü´Z–WûdbëwCù¯Ì ¼²X«ßÛ €Ù$ˆ)üU=½×|Ô±âφG´iÍv=À_V1ÕMù÷BëXW5ðÖ!“±‘Oü+ýŽo«E¥ÿõÍ¿*xÚÑ!ñàÑüúw{‚ €u€à, ÀîU1³®ÕyÈaUµ¶5¡©ô ±g{ჷDdw@>ÿxã'cûÔŒ—ñ Á…sÿ5+–.£jH~8ËÚŸqüì—{æðÝê‡Í¡×}ð|hí§hïLô½†T¹ÒêDe¥{¯¦ñ²D9%öËV(±Ü•ùDOX,Yêzþî¿yé aEű„€l_ŒUþ]þ“)Ð"Q¬‘¯ŽÖ,Àp˜Ozõƒªà}¬?瞸;ÿeö4cþ2ƸZê{³o¡jM&zØÅ€v*‡I»u?å¥6Éõ±ih Þ£¸hüŲ«+*ž}yˆÏ ÐpÊ~nq_ öV¶Ò%¦HÄmŒ°ÞÁž ÙÙr7X[¼€Šƒ¢x@™qXŽwú²‘¬½†5Hha[æE¥µ½¢«î’ó™ÓèM!7u¯ô#÷Óz´²óÒ5–]ƒjãO`^¯*tËŸý«ï¹ê]ª…h¢7*îmñke®€|O»™ßÍЀ&ÁºEjãÖ›Jñ¥‡¿ügvç™’Ò¥Êñ²î¯t'á¥x5†…méÙùÂg8“aÌÀ·Ê(Óê†÷q»0V9‘²òì¡‚½…‹q—‹!÷Ïñìù^Т¹=’OºW”(?áYM[¾ ¶>–Ÿ¼Õ7}p·åÒkŠn°‰ mß<5³] ‡ÜÌNGQX8“¤2¿t¹_Ð@Ê9;‹?c”Ç•`ÙûL´Z§9ÆgCí±–›³euÍEÃú2b©­8Œ„çcµ=¯ þTÒ^ ´Ø$ú ¼UX]‘Ð@Eÿœ)®{ÁG)Œe¯Ýym²Ó€G’/j©Ó{Æ"Ï/^±xVàK¢î°¢êÓe“c1Ýä —B›dÅf[K<’pbÛýTPgÑïÉw\…Wˆ4>±JÅŒ]”Ñ8+fúð¦} ´-B¸0ÓWÆ2Á5¼: QVFÇQƒ/9Ô¾Î|‡xñR8í%|d ­¦»Å·àT¦W±@ãßÈí1»-E%°Ó¿Ï©å[°;ÚKbMäC9 §úÀâu¾û|ç'Å彯bÑJF+ûÛl™" ©Ј7rjŠf!w½œgé! $oéÝmÅ%[ÆtŠ¢}QÑú¢ð=¦ë‚,ˆ ‹U(@Ó ¥Ê~TÀ^D´{!Ò|þ²»pGYAK÷wÍØøÚ]žóqZ[l{œgm`ü¡ºhIK5Eä‰ÜuÁèCKÅ08‡¬ƒTñi?p˜ _ÛǺ嚶^0Ò›’dí‚‘%|t^Øãq†›*¶BÚ‰ïåxøó 3üYŸÞ`Þì=ÞÓ/+lLÖMW6^ƒñì‘Y‘¹ E’hX¡s¶¾xTpn±ckÏXyR§§¶Ù꿉6ÛîÎu«xwšé¥ì±|ä² ë­—ÃÆYD'àü¦wœÄ+.²¹J>(ûjY TmF §n››¤Éé½zîOû9--“yYihÈ.ᮘEÁ;ThãËß.“¡ ó»Ñq°ßnôÂ×$&ºUóÉZQ`„7{}Š“–´ñ‹Ž¼Û$‰rÀ'[Jô :ÜÀ$ÅŠgW ]Óê“ë—T÷XÓ žÏíDsæÀEÓ°!óÖ¿ ²w¤d'‘ø ­Øi…ï-ÚÛ¶)xâKšrê5 «Îù¬yë"Š?“ÊŽðŠ÷sÉvëÛVË¢Ñܺ_Ì#ñËc³W‹çù+9m)Q}¼Ó[œ‘é"v¾ŸŸï¼¶¿õ×¾»Ž `#ãÍœù‡ÂâmHtÒ0®|1•ç0’ôŒU2ÕôÛÀd>U–*$‘ÜÃ){Pab“IL=F¶Óºj@’í]÷Ãx;•’.·R§›ZÈ‚C_x¢—ßÈ@ _Ãî&A‹É»Žß†ƒŽ›1”63©v<잆`ÐK# ‚9:ÜÖ…ŽÂÃø€Â/&a‘¹¼ p~¦z ô®ì† Ñ|o?P~ jÍ¿HÎX+Bs!0ÿÿ®ý—ç¦t¹±¯/–ˆ4çõÙç#ûq''Ú"oÖˆ¤¨éžÑžŽK<è$šª¹a⋵ÔjÊ ¥U¡¡CŒ5H®,U@Ô“è(¹ËT}RÕ™žªýd§žÇì›E¸Þ¢}uC¯Öß×á"€¥" Ü`g…ª»t:$D/Yû", ®ÝÌmæéHDm|”vþB븕XîÈFWâá¡ÚTê»ƒŽ´Ž(̃?1™:6Ë“;0Ì‘ À1‰D#£OƒÅ×½ÖŽ˜ Â]CKðÆeÕ±šäý©¯? `ƒÄ€ãß#³qD¦ÆvnOÄ|eÒ¶ËÒy=¤ÛéøËÒùŽç5.H ²Ög”¹}Saã‘›Ýf)~2Ã¥BÉ °dâ‰àÝ·Žb_ 9ah0¬:â&5“öö¸°éó¾êD3RÅϱsSè‹ÑÜ´Ýf 0ÜÔƒ[€h€Ø227——™Ç^µw‹›.sSÿíJ®D9H6tÂÊ\.Öûªîî“‹sƒ–çñµ¹†JÉ‹ÙG“¥E>pgBÏN{y#Vc$p 2ëEîE 5؇hÐX|8Io÷`è2#S{æêy*/»ÍE ,™mßµ‰miðeœ³8‚–çJêô;8Õ‡—H¿ç w­$–”ñFšúaxWÅ_̯¡ …XtRà…OŸ«}°z­R:`æC¢C/›:[Sù†+䃵g}  œ0ÿ­£èÐ!õΫµñêYÊ@µŽn‘a%DóÇÍ3’o7ðÎTXx›™Õñ±ípËð‚µ­j²fàD]¾X‘9F=ÈAñ‹íΑ¨ÎÛö<ài³Sà¤E'FΓûø §h³Ü4‚ýi2)q©ÂVo(µ$ða”+g"dÛ‰Wš42½ŒØ§„l@Î={3Ùl©<85m·ŸçBg–XÇâ+¼M¤³ÓR/op;éôÑE´ÏÁËwÔÔâ-oä ÷°ˆäPõ¤»{nŸ¥5Îߣ؂êËCªaãWì‚pÙýd·ûN¸íç'àYH4’ŒKÁ6árX»ÇôŒuˆ¹Žú¨‰€37-%d‚ÁÖ¸ä®$u’‘âÔ"ý*OÏw¥µ}¸e–€¦¥ie4baÍô÷7»`ZÔ½þ’?wû^Þ î]õŒ³ö†j­lJm!i(Óçk‡ë»Ö`BFR sHy-³¸KÍÏ ÕGÑnXlß ^fÄz¹§6ù€´¯KÅÑ™§?Íé¾ÕÅê³ÀH3ük3µ^à\{›5µó¦{äÖô„|åÓW ÞùpVŸ •ÈÄ »y-§EZå¤:Ñ9ÜvŽ ìílµr hÉÈ|©#L)oÄÿ/øï™ SÜ}¢0Õž{=dYµêéQ>˘©×ºkhcVd…¯jS,ôÖTâȃñ Æ—¶qÁʘÛÇ}?¹¬ûtø5]e<ôP‰ìæÓcãÃ×=0vþ<ˆip¨ UávtpÒ·oàV¿B4†ºb“A(_÷ù…t5ýi¥ÙЂxÁb!‡!ÞÙ1i)=T $n{t“²8û;½©Ç9Ž,0gß11uò™“uêŠÇ tÖá Gx–œO'š ”6>;¬§LÉèªó›d¦ÅQß©@ÈÔíÅCª¯}deHM=ññ¦†þ;D74AcJqt@`ñ¨@?wÏÉŒ ΂ÆÐÒ(lé|?òæ\ÑB*ãû´"Ôñ]Çæö 6‚Bq";u”jHÃáñZ³f’PIJI³?ZÒ69û+£KùèíQý({ùM¿“Ås 3ƒ¼±,å0†­“Öð¶á¡o™xÍõý~Yýöær‘Ç·Pç±h 8Ô9ÈK«´Íö{ÖÓ^ÃÅSë.„Çæ6F™«’^LQÊ4:ÃWŒÛ•Þ4*žS™,yÙÅwo‚»\–µ2¶ 8…£ÐÍ>X!M•a 'ƒcl>6òïÿ1ö#ÛKÔ"îú[â\F*ïÐìÔù ƒ<$V•RÄZ÷dœË¦ú)b¶ÒJz¡Ô¥›¶Æ[«—Öe½îË|›m‡3µ”AÀ‘{ï›2]RW:AšDTâ@¬¼­6ÒÀ¦}Yóé•Å»QFAáI/A´Û§ ßs‘ERÝsÉ;üieƒùàÊé¹J~Ù䳩VüŸ”Ô¶<ý*>‹Ê9[, DS¥Xëž±Tƒò°Àöñ­Ý.úza6B-åÛ6ò•¨Ø9¼ókìj¬ŠŸ›"Ú#ÙË×ëËØ ÅHpEš—åÑ ^/×~®‘†U ÌôUÕu-ŒºÛ†Šõ, äp·Ô…Ç';f80ÿûØi|–2À„³l-~%á^Êž?ïÎ*}Ój3®¾Fm~=aúÝ«‚š7/~Aô?;³-œ¥>ëPJb+ל8èïÅ–6\Û%qÖ¦½8ÖB—Ï¡ê§szÌ‹½AˆŸóûÀ`A!ü‘ì8²àr¦ž°¥¶°Ÿá^:±ÖÄcLÅVqÉv0åR8UÚLCv@…θ7Æ]S¤öP3éúÞÜ5´º£æ„ÜΟIÑÌ–œžÀJ¶¸–IŠòu²ÎvâI¼PR¶£_hEð܈ày½päOW½u]q ’eèï·×Ž­Î¿6РÁKKÒ1‰TÔç㮈©¿ÂÁuïØxYKÍK‚`ÚdC UžÇde9ˆ/ƒ^åZ0°ªzz‡JÒpçÄ_·/vÀfGà·ñExª1UìYa [—Òû5 4Ø@ïõ GÑ9Æa†³SäßíêSFM¨„©ôÛò__†j#ë¥VÕýÎâÿ+€Ÿ‚µú=»½'yõqÂf—©L<`Y}^ v:r;JŠhúÒæ=*GJfHÈ´.WÖ£&„¦ó•€.o™‹– GÐ$\kK¿ªG.Ä$Z±î¬ Û9}9¼ô+ÐÔfý˜»ö"D–ƒßýÍúÉ1ÅôHDà-ˆù5³‡ý .«Ûh‹å‘!©fÜ>œ >Ÿek%WIúao˜àÔ‹ºJ,Ì‹Þû£ÜÓ8FŽ'E@˾ŽÏïŸAg-É´PEµš”ª”~a]3ŽZg,ۼɫ–ç´ôÿºa‚ñ7-NŽ”!³q×3˜hïùNy:‚ɘûVÌXÑ`%“#&F–Ë õj)ÝÀ99µ“ÞÇ.íío<|•wt¹k”R{4¼^MM[ii”a<ÒAtº3­‰§¤É~”P™Τ ¶šVô"Kx–!Ä¿2ä'Ô¨ïŽV¨ódë2 h˜žŠ ~}úÿ :Æ ;€f¦yTeRǺ"s…ç”5¥ôL]¨žùq6D¨££ë{ãÌîKdg#®'Z܇º¦Í‹d¸›WaùÊ=_óUÍÚ8™aˆàÂù í6瘷èº0fñ3döP%JøÀ’ÒöÓìqþëÃßð:½t ¾%3êG>cI¸ÂkP|qn§$9ŒyNÙÃçÕ¬k­->6«A½@¨0Éêí¦}êlô›”µZšÜòî)ªóZÃixÈ鎓eÈ7t ð)>vÒ¸PõËŠà¼oýþô5þpZkê¨(Û'•d˜[–B]T(šÍðØèÆ‚Ò·Æ Yo¾ ð[‚UH=ó™”’àvnå—ÎÖˆP3Kí4!¿~Á$Mš’Kÿ;‰íCžh¤:¦dBš¼k|S­ýéü?{dBsfâºÖãaÓׯh¶sÞ/ Ó'‡åG9€ŸW[íëÌ¢%q¯ÊÑÔ>KÞCçùGDï¼éH²¬îÄ _Ëißbpêp”!!ú'gxÅ1”#!]„™&+Û[ü’²²dn¬0fÓ6W3øsîÓ¶ ØÃ.UsƒèÄ7Ê*LÑî%w`uNAü,? ÒY1¼Û wÃh<éíWz—ß(„ZYXà_É2$ÎÍHÚ 1Hþ|NOÝ‘ôÍ:¿X·[œÕ޽™Š—a¦ƒ³5F1+­Î…)ø>2š¿ì¹¦°ÝÑÊÜj“šÚösGõQOY˜¬šœ3!oׯ9ø”IÊ%êkí'⌴’ÿòýL¢î¼wL¢{qÞvc¨î]Š58“*¹Ø¯7B¹XÌ×®²×òq±€ùgf¨IeΨ›jBçú9.šÙWq@Á¦1S³öùç÷ZNå´;»¹‹·˜¥tÈÄöÝèn5÷™9MÚkàÖEˤ?„Û„„-Èäû„“ÿÌ’ >ooN85ûžíÚe”ÛY×*ò\G9¼š¨’6²b¸‘ÿ4¹R¼$LÿÑGûp5bªŒ”îåÓ ùÅ.­™¥Âqè7ü…9vãNûçËÇÁ®Üi¹-Â1°$føùèUð)?š‚±ˆWÉtç.†hˆNGÀ×£ç¢wEºC|!ü9*ß¶<Œ¸¥¿ÇA'q;ççø±‘ä æ¨ý ú@à¼à<ϰ» mdǺæ-tÔ9æÊF©Ûò¸ÙÚM?}é:Ù‹ÊP·‰“˜õ„®ú¶’6 b½Ê²ßJýîÛ¬Á™ž›ùçR$ä”È/Ûm™Ažšº‡ âH/*íîiò§Cßèá›Z¤g^;ÿfãb‚W£*«kÏH±:ÎÙ9üWŽŽ’ ¿ÌJ}8ËÞ2…m:—©t®)Bð¥á¥=Ý?OGƒw¾ÜÕ~š±Èç¾èkÓ7Þüÿõç¤mNFçiÛÎè‡`’4Ó3+êŠÉ(ÑKW·:ÑÂAu@Ï›¯ÃK‚ÖÂ["t°–›³hwæÁ²S6J¦*2w’X„Hâ?¢S |(2¾0“ÖL=—Glò‰ˆ_Ò;ôõ–MV¡.:ràÍp¬ÃRFoµt§¯€8ÂnÚxPÒ Þ•—kn«1Ë7î8 ¹–›b" ¤ê7µŸ­­_Š šÄû³Ê‚V:à\î9vIñ£qA$SçMîáÖ0ær¯É•YÕ=dLQ‹õ»&}ûd(ž°T¦¿Yôav¦Áçõff/‚Î}töó`´\ÃYA0“I2-å%]"®cKMÄ€}©ZAúwvÚ8†ð%µdU~®ú‘á~ÅöèèÔD¾ñ)öf_o·¢•™™Âß1ÖÅ}ƒGbgâ<]„ñ&0¦¥Þzà/Ô$±×¤xž‹=J]4ðwÒ£O¡m³2å‘€šO¨ Ž ^¼ ý½ñ–·ê]à%x_ìWô…ÔzÆrÏZchã»û=#©“ý6…éùZ>-M}xÛùïxcx£IéСºÍ‘ý”« ¤:Â5•IG¨c_IP„ãò(„Ì '¬VL{HTí7"k Ã݇#çM½¼Î5©²LZŸh`¬Ü¬µF/Å´¬Å@^Ãdœ‹Ä<1õ«?[ K±LψfDåΘ”’,B€ûlž{ÇÔ~8µ¯O¦qܳy¹NÂÔßhÎ?yîÈÊ €zÞÞáÅBr•‰Ò{gjý)Ü®y7¢Á€+Üå/>Ùè,w÷àÌk䬆Gdçèè+)ƒÚ¡b×2GaA3{ßbì?&½òý4j·­)Æ9XMÝ.â¼ÖK4,¹sü'c«Ö$™¯>ç¿Õ±ž€Ù;Ï;c/<`Ï3&Lé`·Ë­!ªPÖ]£$ñR$z¹jYÄ…ó·›Ì¯&’<`zütpT”À9µ¢¯ö…u‰øôð!lèÏ ±cÚø$A•øétК ¶Åm˜§žÃTçÎ|>š YÅç«cš>É&ƒÑ­©¼G7qXNL™Ù(ZÎ*Ò™Tºã•í›FÖˆZÎÛ³û³:2e9qZÙLäŸD<˜<´ü½©ž’ä«ÕƒØD0¥ ÙdzÐÄdÂÿŽH}ðŽN H&“ȵƒ°þŠ“g‘@UÏ™Õã>$E‘éåŽh»!Ä[‘7hû¸šð½1Ê= [Û÷^^ÁgX—â¢`êÿÕúwßš-¾EÍuÕó9•GRX(*ÖMKÌ»ù3£Õ½$­'A= ™Ítƒbò³#û¢)OE-?:% &ñ,'¡g]U-R[%š¡/÷±¼sœØâ Ò/Â~Z1!Þï+u€™^ Çj’ÔÃ$Çä•ÒÄ?QsO½Ke0þQ,\œ¾õö…¢—H‹58 ÄõòM?©0©d9žYnÍ„­ìQ§Ì$ATȃ•S̸x¡0iWhCÈilì`(öЍuðýÊ Ú •q`Ú%€;çB„‹MFãÒ^úuò‘“ínÈyGñûn€¸iÉÚ´Ê»ªE°&qd°Öx$ƒ‘Ul€îØçžÎ—•î²ÞÎø3i^V•à µ'‰Qº&×ÿQyìÞ-¾Ÿmõ!ÐXEu³ŸJ^Ï­æÞ–ƒW—¯ËÁ.²o±Xhì!–)…©Ùr†Ýà{òYÅÈIÛ{ù#È ¸G/Áyøò˜™6ÕµfÞÀtW]@ùÄÙ÷O àVjжwÅ&CDæÇfXÆÆBX©³_ÍKÝ löÏ–;—àrÓ£´µ}é! š ¯[ÍÒ)÷0¥ìR°šåŸYr&x¤Û>ÜA ’Zæþ‰ ¢˜}Ó<’??ùyZS$FÑŒR̦WpÖêwîˆs?yvst%Áà~¬Cd2»«nÏ#R'IßUØø\¼«Â¢‹m œ›fïâÙÄwÅT˜aCY(zjr}¤¡Üš¼”͉{Ëè‚JMôf-œ `¾OWXϤ²Á¶*ÐjÏå4Qªª®XFñ¢}šÐ×8kaõû =IÏÁº¶Êv°w?qS÷uýG±Û³6t‘¥€õÖú=&[, øŠWÝc E¨xÏèü XÖìºõXñªd¶Vq¢”þ¡Ü(&N:‚8¸VA˜Ò%&^׉\h–mqײÌ;qqq-®ø7á¼g…(ˆAL´ˆ2ªv ´ù{UJáX[_.dRƒ¸×]–‚ÛÞ0õæ¯ÞQ  c|ø{>Í;ÎÎ.\¦Ÿ„›Ðœ<Šê´uV…^q~Bªæ¤áF™ˆÄƒ­Ú_îbGP·±x›E ›wÞ8‚\AuøVÈÍæ¦T>Lq™µ%ùý‰z6 ^K\}U h´¨Þq#£"·½OPÔG-Í=vJ#àá ±Ë[¬I6ÿ¥9—° bc2/Ä—8MìSßÖ÷º"3éGL{È×ù*] ‘‹‡ ¥~ߘ÷®Ï( " `§ƒyá51}èHòÑÁõ#+¦Y‹ËbpÑo/œ8Ö_ÙÉ­#[—hmœað$lF2mvKÜé$ÍI~ë,E®)Eëqé´ÝÐÑSù¶ªŽòûR’“% VÅ@Å+™øc¨âG³™–ÍŸŠÞÓïýÊ¥wÀ®‚ßsî94Qì£ù°wC†—nøá/ävÉïb°- ‹z€`WÈ×tÇññ‰ËðFÓ €FrsUî¥Í\:Z™›˜›V¶I;ØËðŒ¸.CPÁ m¨ÉЀU– ²CUã¬F¤Ÿ±%léá*Š~K9GV(Bs^ªêDÚ¾AÈúH‡æQ‚¶?ù¸ô×\Ucx…BTÿzšsðªoNÝ'íK@ãⳊVǰ‘[WU˜jÖöxÇ>@Ò„ýÑU=„V?Z £æÔÙýmì×ã'ïXõ†`[n‰x» ÁÊŽgÏ‘…c…R§F[h` øŒÃÔçCÝÕŠ.oêr•fq¯±ÐHÀb78ØÄN´jS÷œ’6¬àÅ"óÝŠîQvž°Uç£0á?Ùpò¹”öÜ<ÈÀ?oQa" 0Œ' ‚åXýô¤;|ƒˆÊE¥U›ŸXº~Ÿ2YEbzc©Àâ\º«\˜M†Kßÿ»üp8÷Ò­‰J !7ˆ‘à;ï×[\c »a™º\ÂM“ن’Û¼x@äi¬ˆ(eÎ)¦“+Yª’ôij“ GêÑÊÕc| ±áêA|GL=í£#Nr‹‘dÝ*ÕÒ…¿VŸ>3&§#Lö Ë}f<Ž\¯Š£X'„«¿ÿ°1ÔÛÁñv'|ÉÿäQà±åÆOÓ¶ôÈsê ¶æL ¿k"eÝŠ¼b¿Úa6. ¥í bÑÅßXʲŽZêjvxöe—ïäçt’1áòñ–­ˆÎOg¸vGa¼(ÊBPwóËdx Áר‘k¢—ÜHÎ%ÏéóäcxÖR“³Ú¡;k,eo@”—wîÀo„t‹N3 vrÃ)¿0Ù2:ÍÓ=‰ñ™ ³ªK¸õ‘Ømz޼ÃsÚ=&£Þ…"m¦Î2ê­rbLîWíN°†7ùV‡ùÐ4ÔŒ„µw[,Оg.÷”õ‘\Oi´ONd0G2âääF“ð;ÄmOY§NïCÖí”<˜@TsT‰…@Úº;°ÃŽùA„«³4t¯vFÜ¥ÓHK:«rÒpç‰Êô«–R³Ð4íØÀ’Ú8"ÍfðB“Ž×=•:/A3†•|T#JîÚ­û9—ë±®Í޹ÿ³y8V\2X‹4b)2wÀnµ¤%:®‰?WÍ×§I²jám OPh"KO¦œæÉ½'-äO÷hÐÕÁ;ù@OÜ¥Ù¢kþDû[€'ÄÊh¤>/ÁšmÑB~סÒqÔ“G[Ðo›d˜:¤ðž|$løýBÓU4#· }?]`ÜK¦æãrÙqq ÅJF †T°²|ðxZ)B±e*Ñ-¬©)S¶ñàÆ;À)ÎG²>áoãàÙW¾—ÒuçîóEã¥JhYE¥#ºÛÒ#¤ÀÊKè2ÒÊ‘»gÞñ@=6­€Æ Í%§[â:Ÿè¿I†©S_&Š Ö¡ó}Öͱ]0‚ù¨‘›#Rvïx‘s`~,þõ³ÁÚðįn÷IB?z㜠a[tNXXdaƒœ2Œ©^6ÈcN”뙬Xç€JEaoá“%L èy/ò|Œ5:V ýû˜ÚÅqBó¼Q”›Ú˧´«ªîò&¯õÕ‘ßà¹>³¡ñOã,1€õÒ¨jäö\­v?ÊÚõÎñ,Zê¼ÂL‹G Œ{¥k]a‹‡úÈßÛ]¡">‡6lH²™SÛ¾XKc?ôYìºZî}©i]awèŒÕi* z<ÿ¶íã¸Ã[iqîÙ˄ֲrøîÏhº½”¾¥äbÙéÕ«qâ•FP 8q™,‰ͳWÉÖý`1¹ìŠš¢åS– VÍäEhÁ¦—A¨cô ¥‚uÙ7èZåAI™‰©*•€/^ÔG‡÷Šè”{0^º:ÛаJìbJ‡ÇÙ"^ÕW¬iÏb 1îÃ~½ê7«„¬?α¿ýFµú©H •¸Ÿý6ÊíÄt°ˆ¡  º þÛƒ^ !kkLv²UØ †ß2Ã&‡a”²M|Bˆ‹yƒõ°ƒ?ÊZ‡-ÿÖB"–08ž•=Ãü ‚v?ͪ%×!vvÊCýmΕ«W±õažs½tu>º¸îëe‡Xƒ-·DЙÞv©@£çö?ï•Mrå¤ÃÎð¿Ôþ†Ed­mQ*I{ùË->§Î.QÂp¡û\‡å´çt‰ ˆah×&å¢-Ç)„·cl¶¯nWש_Ây ãŽY»ðx~ÔV†é@rM ©¦³­"wôœ#~ÑÔ1¦.ÆDÀT¢yDÀž†Ã<z|ò®1ë'ˆÜ»APÍÕ&`)jtÑp/ʸ©È pIÚ7[]WOs'¿Ó‡¿Ê)ùÛLÛ5†bÜW,QœCû¤¨Kã¼ÌÕ\ék¤ë¡§kƒø¹uPø®BŠû=Ê´+ÍV8t©fѤÝk˜¯«,©‡?rÆ<5’È0Âjh“ºíE6ˆz:\Ý–çãÒDyh®È¬^$&B„ÔaKó–QRò v¢:ö½Byré$̨™qÂ~|¼oS»šŒ#°“Ú-ëeýüætì¬-®@ð¹üº6Èû®ßaP¬ÀóÔ·åÝ1[¼=’O aÒ/ªè½ 3‰qÈm› Oa@î)ÕeT„½-û¾S€ß<çúç8.Ædľ›Pc,ô`޹vP°Ûé?†UäÈcW²èÞÁ»îCÇÄ{s¸eg’¸´´ÔþÓ£ñi~™Îk1ƒƒœ|§E ²¿Ó«2dm¤ÅÚ±Óÿ>Ѫ8f‚àBRªÏóò¸ÖÎjvü|BAê-è8ËÓùÎ¯Ûø M)^R’ŒÇŒRXð°éØ'ŸŸu«ArÁ^TÃ5Ðt” ;Œ¹½Õ¸Ãe%Ûú·¨W—‰ËK)¹k˜*‚ø/=5ŸqOÚM¸ñ‚ R›ÅIU³æge}E#Xž!¥Õ²sQñ3 8ÄFï€1ŽÜ]v&xÒhkDÔÀ€ô>Y#6¤ÈaÚˆ§=>Ô賄§0‡ó¼Bµ¯ÝÓf}c1自hTÜó»\t”®×|H Ã6;0%¶:¹'Ðx^räZDÙX`n„5É^a–ËÜjÁ€Ú5óuÕL®†äà³ÛÃã{ûŒçxÒ4vÔkR¬GVÊVuBõþ‡÷ÆU;s, ¾½M|¸k(ɹ:T3½Ã›}¸'雤ڈNN”]qÅ~Ÿ |uDVhž*N+Û0tN¶ï`*$ £L7X66%ÎF¿©%Ú¿=+¼ŸŠ†üøšPo3-ý”Š¢jrX(µµwK¼J·Zuðën’Ê ? ¦ƒð~Ή7Ì¿Wú¬¦®™é.ëX¥Ó`;3ž  c0‘±Ù+L„dVÀ‘1kæ[²6€3<×|® c}ü?ÝYÁ¾iï§_„-¹^Pìm( µZð\ºhLC¤í™|%’$³q­L"[U¸‡ÎË®”¥>,“œž©G!˜,ž¿çËÇçp$A•—·ó.C¥bÖkÉ$Y!EW]þô2©@>¶G0Wf˜·{:_f ¸e)Ëα†ÁÁžˆªÞô Ð\Ñy!龤qŸø•C¸„^Sq“3#Áf~,§ ö!›å.ÝRƱ¾OtŸ+$&z¦tN¹ ñ/ÆF1ëü“ªò^NC¾b¸ Úš¡›Ò{³öÅBnPUqÀ±é|íÎ ¯G4¹.L Ú “xKœ¢üÒAzë 7­e ¢––^Il}”ú”ñ믶r/×Ûdücá¤ÞAe±Hi˜C>ÅïÔv­:î}á¶Ëð÷âÚ”}‹jméYLÛýuNžÏÄÈy«Ê°ºÚ¤°êÞå’Îù±J51O¨þŸ+'´a=E´tb«P¥ë¾Í™…ÌC8rD•ÄŸÖþŒs™Ð“›'µl)¿«nãUÚñì7¹o#äÓ5+GÛÝÛñ‰y­ç!‰²‡sÜðhódÖ ›ŽÈÕ˜˜ ÆoóÏM x»µ"äíÔÖÐÿ0ÊÑÅi–É‘¶H¤~û…‘ ._*˜¿ÒF ³ý ~m‰ÞÏMN‚jÁZwþ±kˆ*‹^’ðòK¦ÑóÙW èB1ý,sÆ<Ÿ^Ä4¤7 l¼þo ½’Ò])/*˜ !(êJëÊÔEÅ4%5«®¾¦¡—?ÇiÄ’+x¯S§‡…:1Fú":fýf4%´n“®:Îxwo#T¸I©0‡-ïð¹h›ˆ“ÄÊS½˜ ˆ ~ÇãCrÓjE…Ðð;teíÎVñóÓœÈÇV"o]”oлÐ %Xæm~/¯9ªš aÖ{ÌÿàdSŽý›t&¸6´·b,Ò7ŠFðäÅ}<ŠEEÖš·Ãc 56H¡Ÿâ2ìî¶aZTµkáà/ç-aŽøëÀ²‚Ó|Vå¹¥Ö‹¢aÔ¶¾ ð`=á²½“™GjÌš —-vÄM–<“ð`;T™¿ThÕÀë!L†c[;yK¶lg˶{g2Xµ’Îñ唇S›F¶ïÖ„wX¿>£Õ¿'Qˆ¯1xA¿ ü ®ŠÖJe™KcšàçzäÆÓYÉêM8[úãð®S³ ]Äq½¤¢˜<µ- ÅUëâ[P®Llx$¬†ƒîÁžŽwÍâòϧ*¯¢Q›r^0 ^ýt·S9„EzS0£íí æ¦†dY;-„³±÷›Oª›¼ÇO¡U-Ê&â„0\Pùê¹ð_ËÛUA_Î`IrSy™ T<à”sD^1”ŒZ€6ÖPù*Sæg‡%ÕAÄà!ÈÓ®×{Š»»ò÷'É3^Fî±UŽs¢ÅfjE©`ÚuöijZ×RSÃ6ˆ'q3’»º†CzAš!ô§ ‰Æ+\AWÒ)Ùç”êBéV ;×t¥Væ|©)ZK9k¯ä—êaý·“Wu@Aœ€ìr’\X ô*†uÎ*}°rŒ.]ša£»á’’•#¼WŽþ¤Väµé…®Ùå:™¹ñì0N¬›˜›é•íàl—­Ty‹Z³Ácx*b¨‘ÇÖ…„fXš×«çŒ€j<•fèdæ: Saàz&]¥ƒ†÷*÷ÕâðífðÆùŒøBý"4ß}¨{+yw/…‹“0cΑPø¡|ÉK”Bdx™Å—ãk«’èw}úÔ'B C‘nÖä]–Zîd'å9·`ç|’°šøªr3<ÆG0Ì„Ú@6œ¿®›…tjYã 8¢MXÑ¢°`ö]+ÐõÏg›êÓûÝÆgEÅ̹½‰PFÅPºÀOÐ/@ÊÕÿŽžm(ÀXÄXO&æXžvz³½­FГbanÒ3s·Ð’`³4ÅEµ¤c/»9wh…7ÄPSyDÌÕ" «µ”u³&àz:»S¦ò¶1,tQ¥ò%âJÑì¬m\ç‹FaŸO •¹°ÚrO ¡Í«2VK@`U´ÔâælÏ×Ü‚›`»gB˜%ð>Ðq¤56ˆèŒ€3ùj9ò\X)žÀZ ĺ‘“ˆSÿOÁ2!©Ž§ªe³ÜÜžñòkÉù……²³„i¿Œà×/;N áÉIÆrœXç{äh‡¶¾DĉhJR<âEJ ùYjŠƒÙ@ütòWÎãù¸Kî¤;•~%ëà'…u…u¹yŸS‘câé²»â$Ÿá”³§WØ—ävhï‹@-•*žXh¥:ÊÒnaèÑ!ƒð6¸VT.´gËY#O–O­áДݢ­Þž~“Øó”E]‚Ôçª}‚eÇ P¨hÂ~Q^.ÍÒÆÁ?ç”Ä ñç²ÃNF˜U¾>2‚x[teÿ7Ie¿ú}HZÖ…L[¡ Å ¦¬Ì2¢µã(! ãôïI+X½Wõü»Á±%ëY/A_ÒirÆ÷®Ÿ¯~Û–_üÅ~ö0—Ê4pm_ëÐÌ îç*™Ó•« 0Ó7Ú66 ù—«  Ÿ«X ;%гx¢+ÅO„›Ô}Öͼß8ÿ’ËË€¸±aŠ×Ü«ôûX–ñÀ |m±!]íÞÎhã²5ìvø)/Êü¦žãôrñÒà¦Wù3Bu£òÕö°p14zóDÐáÈv›5–1X4Œn„ò7=_ ˸ۚRµ¬soun!Åæ">]¼ÌIGшxGQl¢†Ù¨[tïçsûÝ#ur[C¹]Î ÌEƒ‘[Ûf|ç…V›’ÀmU¼Vl¤´z·'.2Æ•"*– ¶°+h²ÛßýŒGÇÝíõ“¨€.1J!ÿ®Ø½Ð/‰Êoú¼d~apÕä†X³Tév‹ªçE)ì{•jh¸Ù‚-ŠUWœy¥Õý=Öž atF®Ù \ʬ?‡iÃͶŽ1@^>óÁ_¶:U Z¢{x¹Ð‘(¦ £4Øñú`‹/ ÁbH†0q‘Pä}Õh=Ù½Àœ–P"ïKG:úû—ßW è—Û`ì1ll'¿Z?Å»‰;ŒÈ¦…dóØñ††”&ÆmGT_<¶qÔæ^ACU–s1dír ÈšÅ.!˜·§-¶ÏFzÑ^‘-n'ØVÅÓëã ˆ82ÇO$r2Tψàp¤DrßTöòÏà âºD§ ÁÓrX¶Ë9¹v’×’ÃÌP‚Të•Ov`Ô¥—ÂM²`J‚‘ÜŽÐí\W¢½Ú•ó"—±rã=íåÒ ÇW3Yl›èîõýÈTÙRçîgYýEÏLÚÿ¾£_‚3$Nœá>£´=§®?ÿ(b™Ûç¶Yâ¼¼*ëe)W žÓ]ÂìAÊ!(œ{-@ õ¿¯ØvrÝMUoV†×ø%ö¹Éô¥x}-bØ´(4Ä ÜD´uÍ5cxIoÀÝ-NÝ¢¢´&äÒ >à ò+­Ô’»7)ÕŸÏwlV†ß°Ñ6J:ôdJ˜L:Ã[Sø ácÊ8¨%)O èÐvž^ÁT;ý>|c vIiEÅ™€\)Å´^;aÅK[KmzüÝÄ»U¶¼ ƒ§€¿HqËÞ®-yM•ò“¾ FñRkz•µ«H[mÛ+Žñ`Zg4Ï.¨¥ü•½ÑýPÔØæuæ1¦G6ÆËDgI#±¶72õT´Ú¬`ŠµÏ &嫯ÀÄ îw5ÏÕÕó™GÂþ kù/%ù—ºxèɆËHáùxµ$£•\JwQ%=èsÿÙìo>w(­Ï ;ú†á«š´g„o~@G­‚p¡j] ó`Mbªž7óóRø¿hH?9mhÒ”;ß|ʳմÁàöaû‘ ¾¨€ÇÊ’m‘Ò”Çs‘8"~YÃÀDÄVç=^ýšÑ7Ø-F¹òáˆrj3™FPîïñÏÎajæEÑ¿?’^¯EÙKy]o…¡ï#³Q’J©™ze?ñeúþ3—|Ðá„~9¢Ô ï4"Mß Œ-.Ó·ÕßÐå™îáün?ÚÍÙý©caÍ‚ žTjWºçïLúþ,%š¬?7(õJgLôÅz{ã\sý–¤°!l:iKŒ”«»Ý¸-8§^4ª^ÕÅŸÖ˜¯®a—è†<¥ÜBÎbqŸ/rÐ8¹u `yƦŽVäÏí„án5ÌQ6d_H8 NúlY“KL÷ñ`CÃKLŠUçMA¬¸óvo%ÓãSA¡†~>«Ò|Ò£6Ñ Rzlþ=/lÙ*è¡…¸Y}@øe!;hO€G 1¾…ú—É5¯uÿ$*£ÏôCCe[J?O6ª8nŽ[æØ“(@Â-לjÀ5hNU¤Õ$B#áþA˜E¤¾÷ZŸy ªÈóÌMÝôæÈ™Ë(“ìy’‰±¹\²tùBƒüþÈ*d§Y¯´ÂÁy?:Äaü&%sdVù@”Ô\kŽüÁª]®*}´"àŽ5äi[ëSÛ\N€´›"*}ãÅèV•ÚGÔR/§îª:ÔòÂÏ¢ì(a;úÜÈ”ˆÝSožŸÚ¨|jÀ©k/Æonª~î†[-y±àþ7ã´æõïQ㾿ú¬¯iE"#yõòGlL{}ûÜ'ø‚ÊÕ”™÷¡˜÷|;Éå°È&ó*¹òô°ãðC;‚MÇofÙ¬t•S×øë,m|Éôê ˜®Vt$_L%rî[ꤤµ~ê[–˜ÖqžÑí«BÔÕ&ý"íiºÉôS#êºCÇí Á¢* ³IuXfŽ0]Â(ÿÎ }”«ú¢ùgÏ8L.F›çMqüJžÊåçùØ¢nNAâ–Xeµæp~ *-–gf˜ü¤å t¹Ó™5Ž™‘$õ ®v²DSïòÄi.|²Ï±ÄX:Œß›¦oF½x\ÃÒɹÿS¡ÐÛÒ€,ÚN5E¿¿|&OéHƒ„³!›@wÉ‚ˆi,’Ü=¸¡§+³ú%´ä–ÂZé°.?!î¬ý¶ Ô’ýoK±«5BÈõ“‘\þh˜1²N¸*è_9¿É4çRÖÑQ]¡³ÿ°h­Mö«—NÉ[¥E(EFUBü`-cÿ4HØV’åÞš/—W•;¦^ï¢gÄz¶Y6Û‘:ö›„G‘SÓ©Œ^{+€Wý<€ãœ»…/–j ;™‰È0Í´Œç Gh£W%؃⠄ªDSáy 02E>ÇôGåvGÄöa]™Ý¬ï4ƒ´SíTÁµä¹ó7±?ï© ÑQÆEtø„ÝC‡{þØt(ðê÷$¦')l£9 ɱ„ÕÉ9eÎ-ŠÐž„…² Tñ%¨›ŠJ‘fpˆ^AJ5áò'_гˆÑ¡Ó9Uáó±ÏKrýyIû ­†ÍäjmâfŠ"¤`2,Ãë} 0CÐÓWA‡,`dTŸUt{˜ðK:óIzí‹-’ÖÑăÐcÀ€g˜Ú§±üÿk²'ªMLÏIø¤Ï,E\+u ®TÃÅéÃY–„øŒEX®´r‹ q Ú-\ñ«c1ò6k¸kTÀ«íR=MF88Îâÿ›SRn˜lÔ6m¬#¬Ë—/úvßfH×ÍŸ ªöµJOÿ‘ &?XìYð¤‰Ì×ÏqÑ(É,]nÂ+mR,OÆ-ÑÙNmó î¢A› ;U¿Â/v^º= |1Lþ!a3]oÂæk'¸[ì—Šªê`“ |Ø)·êî%"×;(oe˜­%ý‚ím8i•ç’à8Xmqàï8úIÝq<>•|X2û¶Ð~‘¾Üzܶ17¬yûbÄkíä(ˆÌœ2RŸàÌM¤C·g¼$Áv€¯âdÄcU.mÇï9Ô9“å•?¼¶B†¸[b@P‹W“L€.†vá.ÜÕ*\:¤Æ«ÚŒë*TrÖX)ÚØ{…"^CV­ý©›"Œvoƒ`åz˜|EÓû¯ÙòX÷RæcD0¡ù4êuÏ9C+]U´ý/ÿ¦8»Õ%îõ"QYŸÞ¼¨Ôø´Øz‚Aªéæë)H÷$++o…ÑM"´£êw»|e¡¦n锈Jìˆ ýª¸¶¾£ à-Ç¡–ý „ü“N²X\‡vù=Í+y `1Ó˰òØ¿HÆhU§é=Ÿ·K’;Ø,‰ÞVñD”¶ 1A°øª›¶©àÐüºýÙÆpñSÆš|?úJ,Û+³¨!ß"æÆC}ù5ܽ7‹ÙM;9<>$ó?’.ù‰#TôôݳíuÓ-ëòþ2“B±jãÄgÞ[üN®±Ñ‹\ 4Í91²ª|L‹z†^‚ÇŸT >gK}ÀÌBp¼Gº®œ*ÙË%X6µÁõ-ݧ˜Sð«/EçI=•@'~¸žý(6Å3Á•iä8wXäŽßl~Æcü¯+- ÀgS7¿!Ø)¯˜%,Ò('&ú§*;hð°iýÚ‹MŽ×Pc{6»Ž• ¯&­Ì-*Õ¶AÀh^ÂSùš  &ÄÊ&|ˇš:pìÍR½§ å'jŪ&¨Ôñ,7k }5.å £Hœ}žÍîÉxŽ„+û ¡”UWÃs§†@“¯km:yïÆ­Dðãý-ŽÝŸ)_5 Ò±}³¥’>epþ­Ð#µnï·ú!VrÚFi5>#êoátšXÏíp.Þ`ûI[ÊGÇKáÑڧϰ.L ýâ¸|olUÆ7U ûé«r‹Inѧ +[Â;Yn›ðü®N¹(½Ê¦Æ  ʵC¼•šµåŒ^¬„­ËSÁ×Ê%Æú¦«g›g©bkÉÏa—ö2à€wVuÝã²És%Gû™‹qâa€(àfatïÖàüÿИk©Õ°ŸˆLQä¶ý£:fÁ¸e ¿-³VùO°‚(‡þXù²cNLõ*!_ Ød‡Ÿ¯œÛèˆ VóÄ.lpP5k}ѵotïv®˜B—Í4‚ªÙއsÒ×sê«ð@–Ý3YÊ"kfA(&P–¼ö*…ÄÖðL¶¥ìë­ÿÈnMÎLg7ú¯;!®·©È‚ISnIGºÄ©§2ñ£œC6Wféþ‡ËÖô¡a¼ÆHÌTzƒÛ_Ôf^˘u´ñÐdâlâHX ¡T¨yžb2à­Î$Yß½9œÍ’ïîhTó•H3þ|]ÊW@К8JïŽ+b4ù_J„¤V²TBß“Bá \þç£lŒ}™¸Oð†­\ówŠD3 ì¤1ÿ®4pK9ót ¦ÂA'zyCÀÿˈ'“oñ³8ã¥Ï˜0úqX æ’ÓåIÞD&Þ¸S>8äæ…Qä:1V&wÞ%8ç?JAž#KöôËõ¼êì‡ìE‹²ÏœlË"V»ÇA{F­Ð {š'T`³íœ<©ÛV|»@øŸ¬ìž‹i, ärLÿÓò7Y틬—;ŽÉS<[—ëá½ÊùJFqh¶D{òá|åïƒñAt%¬PjoŒ8޲³©žL ¶™·2Æ8\8¸M¶rƒö7iõƒí Ö Þ/ÒÑÜ$!¾QbiÎgï6·èx‡[Îp¬­‘*¹åñE6OÔÑ LYÐæ56ôJ7î·’§WT¢ž1cÂWnn_ $…h‚ šÕ×Rª´³é(6ŠE°È$¾:¥A$jŸy‰X†#ÇÕœZ<ÎÊDÜó«ónÕ'5Îr!iib“¡9ïé%`¿q ¤^ÅÔé>L¬g¥s¸™ÉæÙùwPµè ÌTÊJ³¶A jщJ%¶¡Yã{þ[‰áÔ0ñ±¯>¸Pó„€o$x9œ­ÔÓ7>6ÚŽ9A¹Ç-éšÈWi,o5©¢$ß¡¶‹³=¸Ž¾B`'qånŒ… ¤¦'ÀKõDv M¤Üãu­3•~Ñ#[bƒGf>À:‰…†¨ä’ÕF¾>ûLÍHЫ Þí¶ÒË@Àýpo*x làFÍW•Áï]®Y¨ÍÒwX9ÔÝW#öΠŽ÷Ï , ”U‡· ƒ2™°û™þ‰7¥Y!y~×KþÜ¥ŠôÝr­TÑ@))þ|gN$Q­˜º;ã“´©!#¬øÊeÑí7lw‡'œº\N™<ç^³èÎ#+³¡©„>›;ïq¯ªûK‘Œ¶ÜâQ{繨ù._ *ý™Ì¯Cž ÔOp ñ›ð¸drº`Ò_Ëò8­Ä^`)œpÐF:Ð` ®3©aßLB"“«ÌàG£  ÌOàz¿+–ÒÜnt|)ÛuSŽq®Ž™d t ‡›Û½5ÎÓG0;È/rÜÃÁ!8p¶ ¢iÏ68%˜èUQ®-»¦³_Ëf}í÷ÕÞÚi¶9 ‡õ¡> T%y›Ü6%È–ÿ„H‘Æöf|%ïâ­i´\P‰t½=)‹î5­ÉJØ,$R ñxø]sÁ$G»Áx \À0½æ6‹¹Ï…}eñ4e~sÕ|&Ö‚ÕtƒT"u£_ÙÅng"§nfÊ’BZiK/1£°;^îÏ!iHž¼{"!ÚÝVRuC/³¤AÇç:>pèù,¼#IZzSÄlÏuÃëˆQ“¤í’ïÚÃM4 tq¢Ô R¨X·A§=·¼©é2GŽˆçÖDå#5†ß:…™ÉV& ¦Kóv_þ$1¹>‡.¨q^0_;ø²Jº-ìÈušäh¼è¡ÙlèŸ ìæ6žd‚Ñg²pyó÷"5²çv¾¨ŠÈÐ>á7sý–ÛŠ:eß.IsÊÈ2W¨¡*nvÚ©æë!rw¸@rQL@íç­“¬ÿçu+Ö4¾Aºb¹Ýúâð÷.þUŽºC™rI÷x) 3ƒÆx–¢6˜?îâ}!Uzìè%™Q }¾ !úêìÒì*ëB>¿ØÅdßÙ m…³²;÷V©˜€ùržw5žË†Ñƒ“¹·ô\…”ì… fÙtûߦJŸ§šÍôtJ6ˆô…KKÎÊ^”ð½åìŸLÈТ™Ìö p8Ôï«WŠj'Wð‚܇T3lR£H M¯«` (£PÞ±Ü`ÝA•mð]õ°«H’ ˾e/;sÅôß•dC¨ˆè$Õ-`jðXÑ*Á;ŠƒcÿOZx£³á Ü72zZ_™ë Á¿ó³®k{–¼…;54Ä3YÖ©ZT­³r¹L€À ;[£Ÿ°ÿ(JÉ%}мm±Z­7Fi^Õyh Ù†¤l} ²"H‡Ĉ­ò&ûìY»¡Pƒ¤Å{_ÓVÔð׺ Œ×ÓzW…¿›>l¨ÌíšËD‰•¤×†Øù|åd’4?[*íd¦ÒÎï ‡rB}jéìaëBñ½ío ¶D{:NÁ›(¡1ÿˆO~˜Ã{Œ8ÍéÛ’Ž*fBuü^õ¨Í·¡§Y?ƒ‘ÌDòø?^UU;¬«lóUFär"°«®5gŒ@-üGáÏi¾>¨ÎIJP)ÍÍ鎬» 8YF4³TX¡Í‚mYë*Ťoä5<õ$+úéÔ¯—gòíg¡D6 ¢^ß­ø !Vb2áÄ7•Àäܯ +ZbÔ$©kõDMÆA æ;.­1nà³µ-§üÿ)Ñ£]3ð†íºòo¹°) &HèËEœ=¾˜»¦«Å½–¹ÔÃÿ‹è#ÊY –WÎÙäßwG¸0Ç K©Œ)Èbà³:¦jG£´ÐÝÍaûrÞnO&¶ÃõÔ¾Òµñ £˜Íß¶¤cóvÆÙ#-tW¶ÑˆZ¤*Ú,½ˆ1m4ÖCÿ4¯2Õ3K±rÖB•ä]Ír:ìßÝbDÒÏl¦„ÛIþ¾p•4x‹fžAy´`íܬd³ýwW™¸çnW†Á"*ö»yÁ›õ ñ´ÿ>¡ã™Hö2{n`ɻϣ,QWÀpuËX}M[´9öÊøÂÍTÈò\ë~Dú Q–>@Ž,êL7_“&2à‡Áæw(ñ‹rȹ=ù6L$(m“/«ªŸp"óÉÔ7~~j¡‰±K¸O¢JØ¥ŒK*g9ÍÅ’ïk}´ò5ÛŸVzÿ³­È¤J ¢$°ßÝLJÚ“wß È¹¶¨-¿c[£x—å:çöùŽ´/PÏe6ÖõƘ³;¢?ŒèyÞH*â7xQ„ý-‰øÐº\¨³`çÚ”>Ùµ"ý,ëÊÓ¯—÷OWœe4êoTI$Žò4R<ºÓâä¬çÊô>/,+äâGÕƒ±~÷ØRý«¸6‚ż‚}„¦ïÞbZø7Ï#í÷¤™èhu縋äo#‚nKûüÜ’·½!ú»Àgí6ãd+%%T¦ÓMaèX´ƒdG?y°  JJûAÒ-Ôsë´xâ/ø¢¦Ä‰¤«z9Ôž$P?ÚÝ…|ÛÛ¶•hÕïÐ’«³«Êì]e§þa}3XeÌÏAÍ ÅÎh¥eU˜J¸ãq•4h{+“J~réúuÑŠÎ_« ÚRk-ˆ;Æ'Ÿ®kWà'lýpcCS×à6Šo»n‰“_C5b¼E‰Õ¸“e_Ï9xkú¤Mù­Hl|ŠF À÷õ±&á0°r~áÒæ t×{‚Ñ…»©Ä Ÿ$ý-¾µ?êì´Xј¡¥1ˆþCYÿ´ñ×]F×Tâ!5üÊj(a £Ís˜„h¥9x€&‹åß×Õ\ÙåÀÕX‘?®Wû:MĶ´ÌÚC­H¦úƒˆÌ€µ®!eXHô¢ýTJ´•@a]K“7v”õ.¹i\'xkgqšÁÕm/9ü^בÈ΂l ¿KvKO| +0Ö(Øðý4JÁ᛹×stj]geO#U…‘p²f@ûi‹9É&²Ð°Òuî´+)8“Žn;ýOSõ™´àO±`a8º+¶ç€tŠ#8n&}&“×â#kÔ k!1ÅØDqhCáÕ€DyŒö?¬Î·\)46ò7…Œ }9Ãì`xÅ«HA…î͹C^½ …MÑj¹TªJù]OkyíD9Ë„J$îmÞ¥¼#ž¡h’}ä2Ral÷ Ë h1Tª£¹!JÞËøù†fTN’ €Sì!2ÞJD·ï,=)ÎÃ[¿Cd‚=ÐD]Pß°Ž]ì’;½ìd!¸$‡uYÆ«SkGí`1Që(À1³­ªnoï#¿ßZÑbîGLíJä'Ÿj<Éœ`âx˜kåÛûá-·C %7ÉpÛ=О•ÐJÊÆ¬ô_‰,urVr­òqÿo(’å >—Cv°¡ª#DDdܦˆ«þY50ß#g¥ùÎé¨GOtqžÜ×QÕv0¡j×?&5æ,æE©û8p‹i Rã Tíð¹Q"²•™Šp9uÄ´?an'X¦ 'çó§ŸÃÜq P§¿‡FAè=yÚAÆ,ì©ÖG ÍO=oÊäÎ,Xkk‘$dJËL½›`îS d,O¼á|NiÎîüg¬-›5åL>²™kL‰ÀÓ§ùx1`¥(ŽãŽõd"¶ì5é;ïÃõ‡zwz {~ËLcp5Z‹Hˆ™5ˆh矑`E ßÀ©0»bEPËy£:fl=¼)xÂÍbˆ¯ÙM”$”§»Zòo%?a¦¬$Ø%Ñ6ÍÎ~äLºp²_=v±ièúÖù&o˜¸GÚ*åYÓÏ`¤–ã)¦£ÀO½”ÐÀÄ#WÎP‰9L$k(ÂâÒÂ"¡z'ijA'¢›D(ØGE/ÞóŠX-¼øm¼žðÈŠÓªË~zÆGðÞôéOd;FÐî:aÿÝ)ú½”x È/®4xÓ\ˆçûjÛ4ÍsTx§àµ á®+´Xªr¸ÆŸð‰û&9Á|.÷Â=à óšÎÿ´nKê|b>áº7¿ˆÑ‚Ži¬jÿnE“X~›{žÍŸu:òÐçÿ'o¯Ñµã)hèUFjÐéÔ샧•?÷ðS†%Èûù³~õa¥™ë¿ÒyÜ/™Ç©tÁp°y81xkhEj™³2Žš©o°[‚æwÒóîhønØ`|x¤áUXZÌ¿ª+$¥˜•ìÌÂøx…²ýð´-Jä_†©ð½l.™“é e»§«® ök€AìXKßׄZ+¸3½¬ìãLæœäùÏVV÷ é ÄL‡µrwj¢OÁãÀvÝëAÄMeóI!Œ2®ï î2å6M"Tv.uxÂÅ:–8PhXbýùë¡N`5¹4ïWc`oÂ"ÿ üŽæ5«®/Ï[ꓘ`.AR‡£ÂãÈì&8µšOŽk‚q–¿•=³ÅÅGÉa†˜ö“èÄšJhP„ò'œÜOÉØ]©cMDŸý=xÈûÒÅm° ~/¿’ýEùe,îI>ì„̱|넼†ÿkíÅ>âj%ám:ºÆz•î9^ åZóˆ ¾âTÀÏó¯*šÎòwšÌ¯“b‚õ\/‘…©u£rÐMb‚¸Ëý»’„fùìÝЃ٠€¹…¶Ë›É‘šˆâà.ÑŠ/mtò¶°ÕGó'÷ âk’ä"âhƒÊ7rírýáF#û|[cý¤¬Æë ÆÞ"ô¸Èlœî¢Ð7 «‰½Çì‰ \¥®¨SB NP º+þkg2ÏgîU*™ÑIùÍ>ÞÑu^ؽ¥Kj¥[Äé‚ä°ÃrØšT¢Ò«›k\}ª…™‹˜~€³«¶æuúO0lx±ä,=åAÚ…4Â:^E'ïÉoGPQË ?î"4OŒ°…†ª ·)u‚²;N´¬=lëL®,¢U_r+ö”|z%&À®¸Øèpï­Ãiâ2“ãþÒQOš^ÖùdOöq(L5Âc'º³ßäêlì³BÎþœƒ(ÛùÅÞ“/€bøy%µ,4‘Ï.D"ð»-Îh4”Ð’cìœ7Z2%¹‰Ãý»íW‰sJ˼&ßš!·!LâÍ)ä²oúa"ƒßÅU­+ýŸÛ6êÑÖ7»j&‹DÚQÉ úߌCô²ßÌLôN˜ìGBAëK,”÷±h?k·0 0W#¾D•ŸÈ•>Jâ)œ3Ü¥ŠL€¿³ÒŸ÷^ȥV=gUâ4z.&QK\‚pXqYR¿Å¯‰b0Gˆé ¾»=¤]^ëg)‰1“žëïtA3)»)î%´Úuà‰…c)!0MF5^¤ ÿùðž!ÉÃ{‰¹8 YŽm–­Ç›µuñ¿\oƪ SZ#úþE{礹6+†âÞ–D¬g2‹Óžw‘Ò¾;ß𾥓ÙWnÝæ&Ç<÷Á_DìÊ øUÅñîWu‹´]ù~NL 2WxYæ}M¸¤7VÕg{êF'l–  ù0òüÿ”XÙšã˜òíË´ÆUÇЭx·¿øM‰„Ï”(j£“Ë\hI¶â™Úw.˜dÎw…†*ã k«ëãùE’Z;¢M"»´vJž `ur‹ØæŽ—Z¹SÞ•oê¶ÍÎ"w¢¦]Ñ@ÿúö í(˜rârî–á0HÚ&.ý&uÞw®®§ÛI•ö~º e£SŠ踫àlqá)F!ÍÀ ¡2M¿[FÖ‚0$C2¶T¾Á’KD “wÅÇ|¼˜}ïµo}Ü,TLÁ”Ša©º›¦ÙFÓù Ðpèú0Uzïâ%A$ýIÆr¼ï3n¿ô¼h‚PÕ¿ÉO.׉ŸØãèÖ8¥lü$ ÅLb²Ø˜›‡%ÙõÀŠV2Uv6;ѴƬÏoA׿Ãç3í–θí¹rãbEýz»ØRQçòq½&Ò+~Ù ÄQèŸÆº ƈaôþ÷Ô‹=¶ÄÀ%÷0"ª¦ä˜uÚÖº ŸúÀv ÜU/ð{—~+ËnUEÈQš°¿_y:er¹h&Ì>&LÕCZ åOܰ'ŸÎø§ªÔ€¤6èñ‚b¦£¯ðWC>÷×[ó_¶ ±JÕzîÃ.Œ hÆl%ýß‘Á$í4åuð;: __[0²ÞQ-†ïŸnŽu¶®ó¸€¨„ÄZn¤ÿúá@ØÃnŽð°cEÉhFZ­/Y0ÒþÓ™*î$ÖÇU˜H\@?™î™Ë=<¹XYJÙÀ3Òê¢Qß½‚Šejfc’Î#Ù*¬¤©¦Ær}m@‡…Nú:5õœ¨m² ß­+T%nPЏ<}®Ô9Ó úúF‹Žܸ‰hèwÛY)Ü/»¬Fñ“ î=Œ_c˜ìËõt’5;iÞÎx_ô=×_»MÏEãॱºT/0z…¶Ç2cbQמ¿¤×ùÃð%{¡µí-Ùñƒ! –Úê´ƒ<“‡'Äâ㵯†ÒœPÛîwzD;ÉÄ/¿4u4‚G(&ÌÏUÞ;M¥üŒUZÎaA,¿n²yÚZù!µÅ«òs'Ž[’ûA¾CêG!2ÉÒÝ 1åvÕ™d(ËÍoF. +C"ÁÝôÌŠ-U£´ú?IA­5Ýèߤ-)FÖôÌT°HIžp3óæ¨ÎŒá¶N~=ø†ómÆ£ÊæÌ4eŠï©´¸rÀæ/ºÆ6i䚀Há.š­€Iµ]ß6P 4_Ø*p}O=÷Uœ2Ïô\âßöÞ¼÷ŒÔÉÊdÿÄ2à?=¥l°HUÂÇ'yÕ0ÔãîÕ_w†Eç ƒa|0A€¯ziN^sò·ÔP—9—ÒpƒHÒBa_J·SÕc ÝCíäüÉÿ UV€¶sAO^¯@+ïåž®ÃïÈI 1þ·W”À\Ö®‘O:ñ¶p„E<ÕfPè;MÌ—Î’|q`b{2¢Ú*õ§ GK/LD+£o9¨Í®Nسg}[BËJÑÈŽ(t ¢„౬epÍ'C_s&ñŽ[¬}Ép¿Ÿ'ÛË [Ýr(°ÄÛÂô‚†y“OºúeVy)ýÖ¹éßRl¸>“Î#Iœ^b£õ7}þšê ¬gÇ-nyÐÜ«A|À¬¹=6¤.U¦tB†Ÿ†%µ§Úa|¼0P­Vî%G£ ™lÐȶØctUµ1±ÔÍó¦UµMtüçýò ˜{¡\ä+Ô€M22LÉv¡*r"­üÿéÒnMHnÆ “`®T-û…RvgŒ0 ÅÑC«’âᓈ_;]ˆR—Îü†š±…ŸÄ/¼Ðå|O__åkfÿVÖôÈz~7`О£2 «Ðiæ?/‚×Íe“M¬šWé%ÿ‹£G!EL¦[Iï‘w{Ñú¢Ao¨ö‹Lew> „A0qGk˰q¢•„˜5$åq—®DÅëÄß„tBúGöóìš/{hGñÞ¡?i¹Î»’ûu'D”´ãH•ýžDB{ÂH¶Sxr)~½F Ø3¬Ü²éTNãyŸ8mw°f”&û(¬TNW™ w>èî˜Iç–þòÊ«Öü”úe¢¼¯?õj(oÕIlðaHúAùÿˆü2ŽtøuY ·¦ÕŸ@Î?²†4ôËVºT$+6÷%*Ъw-¢Øù—Oá€qÄ1 ^µKÔ~[³~´qp^Ç<};÷§ÒÜ û+FšhI·#\¢Ë­åÚí›HÏnUÛ”ÛÜØæTPq˜UZ%=§X’èB×(Rø4=—ˆÍ¶2¿ƒÇœ ©-aŒÅê òH?ÀÇÄÏžÿ{F¢œš¹(p߀ú*à-Ã\Í %¥8gS-ÿ òº þÂ.ŸñdäB¼@ ä™ðãUÊL¶ª­SqlEz§õ¢P¼ë7>ÝÑa5Mbñ¶Ì@3ås®)ÀºA¬Ì áê0ø¦‰*PÉü (Ûyh?—‹êQ3å$³<®]­†‘¥s¯Âž}Ä%ï’H½Î&% YÞ:”9Û2!œcάB ǹN[Nö-ò츿DS’TyËÒfvàU˜hwâ„­¸„.ŸCMJ×(=«Û¸-š~(¶>·Ê„âÈC,Ë¿ˆÁíñÌ—e£]®âúm‚N#aŒ;Áî¾ u( <†„WLfþ/_/¤Fc«ÖË¥<üÏŸM+m†œ›f·VvIé=óÌÊóñd+<ÄN¡óê¶ëzXxΩ9µ¿Û û;¾\òßy][ù¦&=„”ì=¢ ²×*mðSŒ¯J¤6ÝÑÚ}Ã%IŠQ!7ˆËh&2!ÛÈ_Ä·--|L-m_ b\ Õǹ˜C‚×Lp«?¬”îèÀáTiå±)ÈG"nwM¹h¤Îm}îüÊtðK"öâÌI_A×?“mÍ”ç-&ÒfSOÓmb“÷;¼Ibú2M€’0»-×è/ΔâѶ¯ìû+3ðÝaßɃa¯p­‰DäÅ^O/8z0ð?mwb½pm>çØ`í­éÇxŬŒ1‰Þ®ÄcìÈ—®ósEBk³+üX„Áw…«D£LÑ5)ˆ=Ô)8»ÑùñA¨*eÿºggQiÃeÛ28¨¶Ñîq„‹Óµ<ì&1«{kÐémãû€Vö\ʸ*XαVt äµ 1˜ðÓ³5h¹¬î»€[a|Vˆ3øëÙ߇ÏÚ†õ>CüÿNÙäkΛ.ßççD?å õef£è`J¾-f`BÍöíR× ¤”âí`¬6Rwïº÷‘]#s™âŽ­T}e°ã°ÛZ¥¡¡LrN¦Ymg€¬‹kv¥ôYš2ËñÞT£ñk¥\“dÿ¤ô™Y  cå2¹µÛŒ>µäyà“eËéDƒÓÛV#ÂDrÖGÆ57úÁÿ§MC"G84wTR]%Ècy¹º^Pþö¥Ñ=°©Ëžžd硘Ÿ¥4eþƒ’Ò™ú–¥Fø:y<ârk{ô­l蟛(Xñ¬`>«>ûÕ¢uå§àbÝâzjæôº^‹“öÞíÉДÃÂVGÝêjv=ý£5†@)o!¾Œ$2fÚ÷É^.Möùe£0j»w+¶«$lBƒR,r÷/”ÊÉiØ~þW·Táÿ§ˆ7÷I¦ 1õÌë¹F}Ò€8ð¼3¯êó Ù37öå]™N­;Ä^цþçSÇ´nfWgðûhaª>¹£³±C¹$¾¦óXÝLëØOË«’Ôu)œÇ;&zaÞ44ÎðæÆÃV`ÉkŽ¥Eÿ'lá)j!­g09±æ!Vç@$±lN*’ç|o6çºHúäÉgpQ ´aøÔr^gVW ë=X§.™*¹*ýf/Q¶ÿ?§70«IÈÝ¥¨éâ¼xn·BqB¡‰7 bš6=…W§©û€‹ëFˆgÞ„œOI’n¨‡.>Î}š+Mça!÷† ÀFC}®ÚÌ ­Öú¾°kÿûæï[dY LHðzyƒç²@áp¨P¿çÆðÖÙÚ*¾ ÏN®»K¹Ž{KTew¡:I«-ÿ(éɹ™†ñÎŽ‚>0•^å"vģ£@WÑs ™õÒf { ³³ßO™eÒ‡dÚœ,}JR«Í—Š. Yu:àª*šDÒvºxÐðO…å\Å;£—8}^lœèSs²3×õ*âc¼ãÓûC|æœ(¯ÀØž}'nƒð¾]ïð±Ôh"díxîËWXŠG€oõvSTK ŠÁ©˜˜x«1â,2ï×úÀÒÚ£bm¢Û‹l‹í)!¯õ(,„ÝľƒTÆ£`Ì”$#EE…šºÙ(œñÌ-â{=~à€ §ÙŽG •©XðÍz³Ø_¦¯5?Q#©Öí·Œí¢(–­ÄÇÊ`fÓŸ\ë†ÉIEŸhì\¬‹gnj^Õð'ë¢yÚ1®ÝÔ“~–öšÈm ÊÞÚwœªÅëú3‡¤Lõ€|‰ãtymâô0œÑÄWÅjg~9ÚR”óDl7Q0EœÕŠ8¬b±œë%- ÑK/vé´F© 7@oEgï¶p:ýAßµøhq ÁJ= ¿­Öï>EÏ«©:Z¾DºMHÏQØhÉË›î{]X)±uòÖô©m%®ÙÉû±¡—‘ÆáÌ耒¨”ªD"•äGö»“ pLô>!è]ƒptD^Rê<}žµå ~3­\U¡€@€Ä’¬‡—HÞ¯†¢óüÕj½\.A•¶ßÿ[z}”úxTp!69#Rd~´]^Aª«}E«+H›` •oå õûÕ«†tC.ç+Ž„ üHü´Q»xåÙ&rW®R%ïÎ,=’uX ±ï ¾oW€ˆî?¼¥-{îvNüÿ`QÛ¯tSw/º?Ë©Z³} ¼³‡`Äe>6ŸL‘ ¾àûÕpYý»kõ^ûh¬e­—õ/=caòc×¶³ß̇û<„0Ãz€N÷}} ƒÜmÿÇžM.ôt2Ôna6M+ón}·¯ ÜêjŒžãûUÙlHnù¸oà@ljV¡E^.ç(³ 9d«(ÚÖÏÙuˆFý„þ˜7nën»§ä&¯i–|²ªtä¬%T$=ïšv½;I¾ny…Þæ®sŸë#RÓp‹Š©fü¬#µ”R;Úª¨ìÌáçžw qÑ^ Å|USB OÑ]µi-yÞP;'.û¢ÌsUR#æøÔmx¨Ó§Õ•Ñ ‹ãQb<Ã>0 ‹YZphangorn/data/Laurasiatherian.RData0000644000176200001440000003716413201424001017026 0ustar liggesusersý7zXZi"Þ6!ÏXÌäî™>8])TW"änRÊŸãX\°ÆqÅjnçj-&ë…”€;"Ö¬óŽS[‰×‚ú«nïºzöóáùK™fe•˜ûNyè$_˜U¨íâéÁ©1[“ÊÐ|ú(iÀþ;Ò¡†² 9{ÈÊ¥ö ãK¹R˜©Ô1àÁvñf‚v»„ú!âoXÚ[¯°^#é§~¤4D¶î*MTö}¬ öO®†òÏh”Û³Ô±ƒ—nwÈ9Ây-ÏÆOÝoÐTRˆ†¶xdá r²{’²–íCÙCexÏ{íàPæò‰ÇöW3 Ë9þàNªô9sÒDN®ô'áÀøZH…ÕI¿j®mÜž:èpßÂÒÍq¸•AÓSƒìÓ¥ÈN¯ůKÁçŒ:ÌÅÂc.ç ùQ);'yøò x˜÷îž•`’g7tÑMHkr¥­L²F¦0QïLÏ’œBV×ÉA<¼LYn‰Ô>/ÔÏ‘½ßˆD®ýæý/ùz»¢ô£Ñ~¥¦Ad®¯^Pq áИCO°xÊ8õ}B<8¤[sé‡:HÜT«¹%s­Å3u²Î:µ3ºù]ÇE͵e~&ÏÑ6›xQ ¬+ñH°]ÔŒt¯Ï~‰[‚ô©2ÉîП†‡? ?†—ú®ÕoZ¿ÙhzLvÁ<ùAP{Ù–ª´xfÅéÏIõmþásµD VØ/ÑÀ£ý­eÊ‘Pòù)òù£ù`hµ‚¿®ÑNK¹Ÿ J“±£¸1˜¨¼y«}¤4ùÒOlÍHõÏ*‹ ³!(¼ÿ7¢ðíoD‘ƒç†.„ª?½žð!†ì‰L©CÃûúÓWâ§­N‚¹Ê­^ Fó,µmÉÂvƒ]ò¡]÷ö´CB }ó¶>ù7Ÿ¼Ë‰³¦5âö6¬tñ Ñ»[]OÀÄqd¤^3¹ÁŽ¥”³ÛŸNÀš*€W0Eh&³IµÄ‚cWˆ©tAeÛŒ ^ #4`ØòÝõÐ`G06„koèmÍÔÌBa×ÅðþÉ Ê~1¼Þ^ `˜·?# )ü»¤z—/c§ïÎ?~ 0‰é)½ýîºàX¡²WòŠb’T˸¼¬Ït˧¼ØR3!äkûîó@i<Íoßf=a²ñ¿ÍRåîUo?ìg>â–Θ`Á ýb©+r  eleÔøìí²ÞÕ=‡(If¦—ÎWÕ¶‚NÍ„.zDÔÃËI´š'@CŸ9é½’yB? »¬òôBM†zë°ÛA:ŒÜûH>· àd²™(ßÈÜ{_‘ŽyÍ<¾Ø¯ãí'üHlÞùÿ‚fß”–²½áyåñª/Hô Y”η ÉîF%…fÖ"ðÍ:qóòŠžS(+ÎOã®D@®¸Óµ"ÜüP0R:"öá¬:ÄNÁ¸££ÿÇ.nÀ˜Ë~ÁoÜÏ0ÃÍá9T µ¬±RÐû˜†¼@eY¬Ô;¢ç~ÂKÄ9•Uÿ{M¼¾¡‚ˆh´Ñ[=åxH®|^غ™ì‹û—|9ŒŒd÷ B¥ÑZ¡=ªËÿ³Ð|v¹˜¡‰íŠ æ‘¤€¼^"ü“YpÄ÷ G˘šÃý(Ó6íÈ6½y"76ë÷k{7¯JËù°:w¦—¦ÐÅ|ØàiïýXÝ¢Þ7Û̘g3Tm³$HGŠÀ°*k©‹e¥Þ—†¬7qçкU ‡¾0½…µ‘ÕHµèоÁCÖ OUóúê(k˜<—ÀQœ\½ ]ß&ŠÍÎÌGD–òPN“Q^ðx¤z‚Õ˜« ?¾mǨî†(8\ÆÅ/Ó+‡ùvUP PfŒ‹Ã@CÕS¹…KÆ|P=ì¶‚^ UM¢ß.¾LV¤ÂWÎ^p²Žeš”Ãê·ÚOƒÕ•¼]üØv“’#m¦¤DCòsÑBè7n‡í†nòOjc€{È;B(1³#pÑÐi÷ÌgÈúH²o#xAwÎèÎXê–á ɹÄêNLäk€{³Iò/Q?}¼Ø@£E <˜vÔf× üÀ¸åÞ¾uVʇÆìj”dÁºf¯._mzê–,Ó¯º'užh@L>ýn!ÄKÿpã-ܯÂ;ƒÊÍeM9TË"–z­ctCƒD¶ÃÎÊ8¬ (ÔðÜßV|jRÐË,ãÕìĵlè.‹ƒLÀyžÍ ‘…]R~„QaˆàUà’ 4Vóœísw­ã²÷ÛcEVoõ¤°+>ÝYzý}L¦ãÁ³:pé?l½ë¢¸uy 8òí ð‚?Ñ¥øP€h ƒðJµTL¦ –¿ŒûŽ&ëD›§ULõ\™°ôô ‰_rà«AZU  (Uƒ„RôG\<Žlοÿ´>¯P^µŠ¯5m<9Uú!üÌkŸä/zè¡+(¥ Ý$ª{Ý_‰LÂDãù¹£¹<ês!³‚¾l˜ŒÀ4£_M ÁñŽF®é%®ç6ZQ®¯|”'k–aÝò|gy½P¾Ú¾‚úò© Hñìg3_ÓM€\Ô<˜®cž#ÔPËŒ-{Ãú}r:É÷GVƒ¸R“0Ò sJ5CƒKé÷Ë×Üҷõð~vU§Òá¦où²ø ò­¨c÷ƒ·IIŠ#èZAlƒ’§«+au‰±¾=3i’ê·÷Lþ’LWöôÆPg:‹¨¶MKL„=ÓEsEßîÿ3vaF·¦i=?ÍCµ‹ôlž==¢]Ä4)¡¿'ÐåœÒe¾ õçŽhôÏ%of/bòaä?–3N=¼'ù1Ú7>;D:Îl©*ýZ•­ôË\5Ö‚$´¯•Æ@ÈÄe½¤UøŸl ž‰‰èºí6¹¼E,žê50UBÈfC€ÞaËð‚°ÞQ_`sb‡ìIRL'FLHÇ¢~#ÆÏª—¹këڜܑÜÊE¤\ FP™x•(6EhkaBµK“·¤&z¶¢…lž|µwut7vH%¸&Œ^i÷¹Ù#Õ뉘4ÌmsJ'þƒ·äm¼y©FÑm=$ôUÿ" <Ç»-OTñEgÖž{Eœí¼êm÷…™¶žcÎpèOÃa Ú#ºÍÛGÜW[¡4E†F=…8W²ùvÔXU˜·¨³·"C"¾ä›) ÝGõÑq•ÛÐ4»:œ–ü‰0ŽAyêëø]æóâ.õRUùûúsÑ?®~Z§3Ë7‘ßžtÝyiþo4œ©ÎÙþÇ q[ì?9´š’ k7z,6`¡®…myM—aÁ[°D…ÔшôŠ}Içî©ôi{ùfr¯£G¢A ÙĆLkZḒ¼Âg(Å× ]74ÃjÒWX‰|«F ³-Y–êèèÑÿŒo°¾–ö…™ƒ™X_¢ËtÎ_jGŸ"_çù*@t® àãAìÿZ†¢ZÒI׿¿<ÏùH‘«¿]5N-'‚¬ZÊ'<@Ù)²¤¼n-¾¼Où@wz )¥•Ô|ûòGw‰®ËŸ½è[Ói'mÞZ³¹wè ÷xÎÄPÔƒ82`Ö>ƒT+sÀw_IÝ ÍI=ÃyÀ£KÉs*÷eœÝŸâ2ŒÉÐÿO‚ATr½^{Ú²W~E °Ö*áéŽ @Žh,VbÉ·öò^±uе¬YvW×úÒ"‘}ІÏw3ÄA0V*°Å¾ˆȯ÷©Fø‹ ó‘! .*ò{ëIúD HµtJ•ØËK†êwò)F«PMøêX7üÈÕ_4C\ÿßÝbÈêEóŸ{+ä¶pã¬{[ChÓÄŽÑr "Kûy 0A’Cé»A- ¦å…ù}»O ›ù£fÿhl †Ì®â±^ûûÎ>Q|Þ"rÏqS£ÿ %àÖyAôñ$ä̸¡/ÏMÂÃ&åþA‹Ús-œ[âM2ž£Y×!-‡$˜d²ìåÛKbÓßÙ!­v×¼²,eâ%.hÑhn~r E¾h{ë·µdÜmÏÒ¾œ=ý"5SQfy2»AÞ@‘oW¨ËvtŒ•’ä£Ï ¢ò]¼jð~mº£%Ìøƒùö$p¢ gH /£$Î^Yü^× BCE9I³gL! ðæé(–éêqîîƒa,p<óÊè†ÊD5ô!´©w¶1óÙìÓÎW¯?L*#¹„ßVó3øèòÆ4cðk‘!Ên‹Šß44×d¿ú½¸îÆ9}ÅFŠÑ92èïg"6ÓLœžžFí韶49¶ë‰8ß"•kdLSAqÀL½ø,›½¤®áþý¥g{Ðn´VAŸ«¥áý·l Œ ±€ú^”®Gp·‚‰ºY@|¤^Ëe32¤â««VÛ=ÊÍö?9öRÑëz²ê ü7IèÎqO¾)¤ Æ®,ÉØ„\› BúÏ„ÖkÕ½‹p1´i:ATQ·S» ¯ÿw²‘Iiè¢jÛZ't–°“䣙¸q)„j`µÓÍÙûª²A`ÁÏ.ð2™s»F‰èÚ¸ŽœvŽÝ”JÄ×èð?*ÆQü Í0"”TR—ó8¼ô’}»Acsá¡Ñ #E:×`ש©±X,E¥´aa !¾ÓÝ…*ÈÂ0LÊÈ»1cju÷Y÷Sëñ øoÑü'¬vÈ‘‘‡¸AIɾÐÒÀôj7Àu*ï×ûNM¦-Œ–ô%¢àQ¼ÏÄ1ñ%5ƒ*Œ"2dIKµ~¸o€i.aŽfÕ±ÝÉ«¯Knó8™·ÆºGêL®=™·l@Œç;‡:ïa$ؼ—¿F‰¨.‘3åñC6Ök¤šËº}¡ÅIš@á!í7¤,$¶²PÕ½"FAîW€bÀ éƒxzæ”’4É%Ç8Ž;‚iïT±¥Ò7;V¯? &7ø¬·²bb ÿq4†ܬfm·d²§ågœ™^sÄI üDœCx!¹ì¹`Äù«S@ð¶ØYtmòþøûKÐg‹-u2m´¨«S 6ÀðK“w£ùv¼;>¼¾,ÿš·šZrædÈžE2Ç÷ÃÉÞ‰G¥Ê\Ó.‡È†ÿ\̇É•øºßXç°”6F.‚¾zýÙ•Åkðæ`uÙYõ):Oäþ³î!DðÒŸ‹É5Ú\ï Fñ_«J¼Œ¯¦` ÿþg3xVëZW©²…ó¥……>0Ú¢?ínañï2 µ­‘ß^ý‹Í|j>š+ÜÞ¦Ö"¿ÂÊoñ]D$‰Ul ¶U¼^Vn?!‚Á[ÛÄÊšÙʤ¸Fˣט6,E”Å‘N?&åщf˜¤Øï?} ’óôs™ ÑKZò;‚¾8ŠVéê–Zm¤ïoÌÜë1k㎋ѣ ô´ ºº¹®ª†îÍ1»Ö±ÿ‚&)#ìwx³np›Nw˜ði"²Æ‰]Àð>.j0Iù4æ—™O<ÖÆýÃ-æ¯Ó#µoÃm2^G-k ank4=ÿNXȇK†[7RƒŽÚe;·¥ì†,¬‹µÙ§w.’lùÝŽ[”Âý£Å¾¦Ñ….íM7Òc]Ë:+ÿ9eªÃ^–´8ÿ›QN¤Ð<Ÿmoâ 5`\ëµÊäóúg!Ê6íþqëG "D‹Z2ƒÉõX¾å+&ÐÔ©RvtÞíÿ(Ä`ÔæÆ9†ÊºÈ–4ÞºÝxüY<ÈGO‘Ì»5êô("°C¹‹ÃÔe=4øÑ õf#—D:`ˆ£­Ãb_0ʶ _è/X¥UÖfï .ÇçõLKtïÅC9ëÄ,üµšWo¹™]N[®™.ÈrƒßE¼Éå/y™«ê´ÇÁÿ ¨—µÙÞ®ƒÎ2¾L;ÈÃ×UvµrÔ×yeŠ#(ºÉšÿ MõÔÜW…ü¶Ï†ë©C{Œó£ùÃE7­fZí8ðøT¨Ã/*²-MªT:…·`ìÚ¨º‹Y™ðŽÌ®çý#¤ë¢CïL:=ÍÍJ^X(ŠîJ4W[9è]Œe¬æ4Åb¯3%õR'g&W§ô '¦T¦Ø ðpd‚Yñå* ±|ÌÕ@ôUœS¶«çîQ¤•9¢ÔÆ_¥4$-*é󖩤j×”äR¤¦yæœÑ“o‰œŠÝyiÚG$Ýþ¦J!ˆwûkæº,‰Â]Iï²Mb×s‘Šö·jòé}†Wµ‹&[¾«#¯~ƒ·° Ôý¯“Q³…ï|o»¦›[¢K-S8éðÿÃø:ï÷ðçšKGÑÅ*"ÃUÕizüì˜À¾qA¡‡¿k“%P {M8™o*½ÁÊÁ¹â:“'uNe€‰DÔP±”þLO°ñrþø`¥ö¸»†4&_=ùAApXìJÅLåtë@y.-œPUU–£¢û›­Wý9ÑdïTÉa1B!Â} {ÁÍ×­ðÐ_4Îæ"î1 ÑÀ¨ÍH ï×Ú6uŽ‹h{ m| ¢E÷“N iÐöµh´$¸=ñÖ€Š'lKDY:m~B/å¦K1‚2 š]§›Ï‰°´B‘êÎÆBî?ÒáGƒÊø®Y3š³Ñ5eZWT½U$Š{QÚ„ËRèqa¸ç“o®yÜ]`¥ŠhoæƒÑçšûæpZóð.«émv¤ÖŒW`@;M µ":×m¢™D>¤¸:Ã)NÂ<ñM›ã1º*îÎj˜”]l´¿_C¿ÍÀLŽÜÓ%±€5Á !½c—Iç!Ä ¶-úÚÝàÉ·ïÁdÞÿfvm ÂO $Ùº‚æ"Y­¬ÄUùãÜý ŠÍ'Uµ/oƒHo\‰v©òX°ËYX×ÛUÜSâ)û|ýƒÊtáUƒ±¡ ¾:"€Ìªø •bµæ4ÒägÅ!;™†á<°+n2jÙBüªF¥ÛJžÜÇjC”.4°)K ®ý˜³Ö‰4½Äx™Ñ¯ &DAà–M<‡0´tSßÔÝêûÁ“;¨.õRÂÛí>¦¥Úzª •"OMG׳lC•ÞÌ1@õ éßi¼Uþߊ5„GrÀ©„îM<±œ‚a±ÿ…< š0ÐåÃâ Ò\Ðîdnà|㦰¿Á½1Áñ‡2ÀVyÒM³“ÅGã”?'Mƒ:ë’›Ðü_.ž\gk“(‡!×99¬öþ.ãN>5ä”ÖIÈ/nþPN#% ViÏÜÊdØÍwðRE—©‚.«•–ެ¼W¬ššµ“åì?Žú®xº¾ayðD;Ô‰ËvDe4‘‹~ÏÆ@ ôGŒmøâ³ÚÝ ÜubaÌÕ6|ß‚mè JÖÉÏ¢(9í„*ÃyS­ÑªØ‡8+dMéfý(i]BëQ*_ ßÕÂ0NN-59Nfä7óg »õS‡š\GÕüÐKĽÅ¿w@mœ=oXžøóßÒ'Y„Y7-p >T„¿Þ5 ¤·@Œ¦^Ç‘“o·:>„«gˆŠ§zöûß“mµZ¯Ò\áxšTY;–£Qƒ)ŠõÀlg #R¡[’””‚\”}†‹½÷=QàQ†Éµ³YèEª_xàY­$n޵ù0@ëï‚Ί’íR{tÈàSE^–1£²Í;ĪˮØäia§xÿ=Y r/ÐìcP6FæF¿&’§d´l­Ûr}ú€$“¼Ùv.pˆ,÷÷œ*kèÔzCœš<¼¤ fÛ=¯ÀöGôubá^©9¹Ë±,e—MIâ–ƒO¢>-£Ѫ¨Ápôˆ²Žœ5Ô÷é:5,̹ÌRH’ "£-eMn>y=´"þxŒTOëê˜1ñ.”a¦õAÐ} a± û¹ØŽˆ&x¸tÕ¦žúñOÉ2µc~ËÚ­¾npîÎjžz”G×’ýþêÚ8ºµÅ“teÊÄ‚3ѪS·‡â×@7¸HJbÖL/£ÕîG˜ŒŸÇ "X0_‚~G@ö/ÌT'e}5 ÄUö8í¦cÛäæhÅ•ÈCÕ‡{{Š4ØÊ…€É÷Žum©%.Âk"L)ÌÖØ°å`8é6«Õ5¯:1ÈŠ¢™OçÑnÐÏÎQß¿µ4ÇÔUXÃj}`Îm«‘«îËR÷(|m˜X™½·>k1ÏZ¼!Æ/ÁÈo}3ys$Ѐ²™Ô#ï ±‹”ôO£ø[K½bs3 k=sàFªE‘ú»å•\÷§—;&•ïwSÔw’jv`C¦ž(†¥©Ù\kkn•IZ Iz5¥Íå¯6e?w²,æÌ,ç%–ãÛXw£Ç´ú‡£þv«8é7èW?n•áäbð×gôг¶Ê Ÿ-`¯›hÁùÂÍÁ¦eÖÃÆgUGÊåå÷µžŒC¿ƒ~¦ÝÝ'ªQÙ}äÔ}’ Ëª"‚ú"m§Ò*¤ºhÍäG×isíá_ÎÌ•MÜS"÷甆¹Ñ®f ]þR?^¾ò‚Éð R;Â…šµr‹RÞú]ÃÜD2β›”©¿kÌ´Þ}ÖâŒx’Ócv6gÌÃ-½³@än ˆO€“vgrcêÇk(ä^Cç’kÎ)àš¾ ”ºæ`±–ÉÐåS‡é8„äÊ[ ‰¿_^NC àÓäMS\9WXfèç¶A3áüú½Ù’æ µì åy¡dðÔR®J e\ò=òfGzeúl ÚÛc²O®ëmÐ)½–0VË6 º-ÎË®àv'+Ô¹€EzFŠ\r^F =f ï*­á=†Åæ5Wî*U×EÃ[>¹×™z4Á·ò€p1›É6€?kR½²¥ëÒ¸¤,‹¯!!Ô1Ÿt[É*Ù?ÅYøwâÓ¸¶xÖE¤ýâ´Ä77¾ÂðßfU2V˜â`U ð…,òZ̈¯È,o´Myÿ'ˆýFåVÏÐ1̶²¹”–ã*K…Û䃠c[Û*UGá— ×4ÓNyï¯üÁ O@ôb„P¹ –¥’ði²«NûùÁ0ƒÈ@…ÒXlé–> \ðå¬e£ý(JÓ£öÙ,±¾Ëpl…שýCu5Ö:J>Ú½&p üµøàÿ¡ášõú²;ü¹–°ÑB±ûH.ªòç…ñ“ ±r¶Iè'3»1ât¿Òæi»T.’Vn½ŠY.43uþüYý!§Ö¯Ò;YTÕ#Í>‘ƒSÂcàC¨’÷#µ›:*µ%HÈÆ´“ÐnïÏÞudà ß.š?1ÛÄû y*ƒŽpê ã›ö^/‚Ïs¼D–º>9ŸþQÐÛ[‡e-¼÷²wÄÅïú1YʤGìvís!.„úÎìZh@ãb®RCUÕ¯Ê- rÒ¼ò†Ì™ Ë¡Kű}÷šÖEÈehï6=F¤hÉMhû†›Kü(¤PùÔ,¸Š.žtéœ/ÑQ³®AˆÙ7 ÆŠÐ¥?Ë„1ï¾÷+ÂÆ*"B>t‚ÐÕ‰Ö `Z±í} 8†}r©Ñr‡žX-e[?ØY‰èV︟uì{É_ÞÑ2Z[TŸêý¬…OùG&'ñáÔù€üƒ¡.ÐÑ 9¼ø´À.1ž¼*øjr0³Úý#tL>>R87òõÁŸaìç´¶¥K{ÒÞ/ˆ»Ç‚´×K¾ðíJ§o¦d›¤ªê_Fj4+i´H˜~) Ûïuƒ›˜õ`·…)˜õˆ W¬{DOTÇ%’£eˆHS{¿Ø ï`×´v/ŒJþõY²S2±Q¾«Õ:4Ù†ÈQmâ|m#F§B\å•\ ¿Z`¨ˆ?oÁñ¥‘‡"X+즎}ݱ LYœÔª“‚•_>OTêµ§_@%DaœsúŠ£» ýÁJL ßèÙMU‡äÀÔ9è2TâÎ…¦8×Ö \×WÀˆj™êÁl?ýâ…~ÆËŠHWQõÓÞiÀ”G¸ÈN.ôø%oçãzk7¶3ÖÁaøhžkÁ‘®ReÛK“ˆÏ^ï_èaK -*$ºZ¸‹p¯úþkù§Î+±WjŠ!’ +^à”âZ¥˜Bà2i…`W~ÍÒpÏTѵ~9V_î ZZí·…*–ç²@R·Ÿu¬â)ùægúTŽuò¼áÖæDðfq‘A§}•É @Ÿ*ÁU¯æD .d`·¾½éì}禰+ÏæjN v`îP¨XOòêi ï齌µÿž#ŸÀ÷F÷BýíÊã!ê ‘B•Ä/}‰ú.àÂîgóICØÆúIµe…¹¶µQ œ^ýåûÒ^"ÝèµÔY¯rY ÐSßʪe=Ä› å9½/¿ Íj÷;jGNkæÿþ®½*…Bµ‰Æük˜<°®ÑH£WC$"´Ñ…±P¼|D Ú"Fê‡û¤F B^µ•Sí¿`ƒÔ׬jGÁK%P¶_ˆÄ G‘>éÈ6ƒ73ݲ&îkÛ¯Þiqo’”1~ð˜o„ï2<¼;{É|dï3φÝÒ’—§úòÚ®<Ö8íV‡^“.+mC|ð)~I78ŽØQo¡¼ÆÁfyWJ>×ô7!Å6ß·ÿQ^eV툺F¥ÝÉ)2q×ùTÙ¼]Ì{øÁ‘hÊò©¯ïÖõ*¦7àêTÀ­/Üܸõ™Í¢¦YÕBI£LÞë“÷îS;‹_:“” HµS³ûŸ)Yêžr›u˜z$ç ¶@V4*JÙ=É`×çíeš±W¥e‡êåÂO„CÎÆ’ÌÎ7Ä wG »r€|^˜–¼ÅJètvs‰-ú‰-C>ŽDÿ¦ôÇÕÝÕÂÞG° µ5x£D©D¨ÇVÅšÿ–œ<€;®t£3&Hªs¡™®ãÂ{Ÿ­‚ß:aü]±vÓ¢oEqßvi­ØŸÌ™}Žp’δl;î×ï>3aÀžžN.ÔÁXÃ8šØ{JÕ9NT—ŸCÚ”¥šr¶@÷½Ø%³fÀn¿KºjcõúÒbźàÅ•ýCûá |¾äÃïF€è÷›üCðë‚¢mŒÞwåþV»É+)ÞâOѲíF­ú]¸“MŸ^±€TDåÄë‚Ô°Ûªo¾#–^¦Xn½ÕsÜÆ¢¼<¸é#Òè4Iõ Ì‘Œ‰…œ“bý†­I§2Ã0¦O.ú=*¦É`xh ·L~¥ebŠ ñ“ã ÏX¸LõWþ¢Æ{+÷%nÛ«û…}Ñòz+}a J¼¦!s‰iŸ–›.Ueò³…hGGõÎ@”Ô¥eW!-;fñ‡¥ád¶—•ûèMó6èö!T:MÀÑG]bQ,&‚%Î^س:\=»ÛN«Ç…è-Ú”1Lö>7š~: ˆý_Óv TS¢ŽE¦`ÆõT±àk‚ÑÜ)&ü1D`e,r?œ€€‰XbгFµÕî'.?¾ãì²È„»ô#ˆ.\š‡¡=<ñeÀÀFŽXî·4Œ *óqkdi¼J?¼¸U<àzŠùv,ª!ã2zqÇ4ìà 4“Ø#¿k¾ñ·µ8(›‘ØZZ †æ>!ˆ¸Ç$'ºN5­þŒ7-wDL-ÏÐRm,Ê…ÒGX»)¶°Úē˄1h¥ä©ïeÑK8³J~ödÞd`€ÿr¬ÌFÔþ xñC&Ôå®4po¾\|‰c!_Ê…‘ô%°¾cVŽŒ˜ÎŒjJ8SÖ¢þþ 0¹˜ÖFËgDÓɉ½Ì œÉ+\@Ö‹‹ ‰ZÈo²ªÖ>SÁø”æKAï^I¿àcÝWäÕ`“e`þp'õùô<#yx %¢Àú@c&~#ÑŸg¢ßDTF&#Ø­TŸê âÓI ¶…‚vfæáp]êŒÏ ²ÎÀÐÃÝÿN“,ÿ¿:K ¡ËÂ<<4!s…+‡­²üyާËiæÁÙ¼0-‡í£Ö#!Mû©â¼åT³ÛNŠê4Ȧ¥Ù è¤Ô+ ¼#YÙ›‚O‘ôó—–—?±ÿ´ªÄ‘åaQ†| =7ŠÁçSR™”è­B× ”‡ãá^ó?‹0u?ãËÙ‰õhô‡¸gÅ•ošKá&‰Ãr@¾†…ÃÄy\Ûe>H øœŠû\ÈÿMgWzð}à9Ÿ?½àä,汤lP³ËE³Ïà¬Qi«m š@v7ú?¯(yõr‡¨_ç)0ÀÆ M0]c5ýêW3¬jÙý9;À¥^¥m¾7ŒÙæ¹t%D<ý+§Ú¥QXÚOòeFང®éÜ@Kk´x† ønJ÷³f¢é×…ÞY±™W³…hv&§Tòo¦Ù,j*ê÷õ¼”±2lžO9(pšþ rx–vž[úzlS¬ˆ—-7!VÉCÆœi—È2Eá¤VÓµáÐ`×Jh©`jw¢‘äàõ@»ëÚpNxçÉ`ñd¾•Ñ.¬îr}H¶oqg Ñ®ßE›Ï7C@¸â½”°×.±|d¾ç”ÁwÞ9ÔEYWé}GPwår½¨ß;> dôC)PÁåjÿ½$ÆZžng•µ„y=ª\8…£4—á) >Þ-AIì-£$ÈUßé›]·J)§ýÁã]QêŠxè.y#NJ£Rw•C²iÑ•¾›ù6è@R´?+HðÛxKøÒ &M=ð°€ pF¥4ÛýÓTÑIefˆÂR³8+Dj`cö£ö)Å*ÚÚ“ªŸ»=úøÓ™¯ßÐkÛí´0JÛ:Ž×Ñ­µAÙ|úa{g—î§Øþ–S†@Ÿ Ä6õq}R® ÓbÀœ¹f~Ь1Bh!ññ°"‚~g“h¼€°‘}â“X¸ÆÜ—]½6¼áÁQå»ÿÚœä'~Ÿp€é´ÅIÃ3Å~ˆÛ{ì²ç= “À£ŒPý2ïghÜ¥åum+½iÂF®IL³‡i|j ¤_>ÃÆóœpÉvû¼;OÙ?¼l #«céBb t'%ä1eäÒü¨.Ænˆ]É ñGJÇZ¥ýí݃úÀ±=óXQTê&H—GMÉxÎÿ1Úü{ªÒ6ÿ.’3Û +©éˆ”æ˜Âx"WÍÓ«4 ËüYêË(vN×»Gn·ƒAÝWöŸÐo³ã25ÌG&pç$$:s£Øþ #Ú•µcÚÿå'ÓKa  L>iÚ.ñ¥²¢6ãÃ'•áâÛ+ÃÙ‰b¸E«ð€ëµ¢vX‰ÞC§­5Ëé çBýæú,6Á7,”*;20Ié´¬ˆnÅbwëp'‰A$äbôhµ†1Þø@oñy¯'e!âu#äŒì1ê{L99ó¬)¹@DAtc™£ð }Né‡MÜ-PvoÔYÿ *Rs#…Ì•"ùP½EMi_UŽøŠ8@åóúmYÍW[]ª’¢ä\7y Óé¥NTæs®‡eÄfô 1Ñ#-@'1‡…©ÜÌ;û@=VêF:˜÷©×ÇØv•úýÅ¿<Bô Ia.¿ë õkµ!€á{8±Ü0F†).úµ -ÚüeÉï¡¥”ÑÉÄ»á«]½Ag³½¨,2WÀÌŸªæÐók ^@¢„H‡œ›F†Š(À!be Ú!…—4­»ù!u„‹ ‹]ÙSå•Ö“6¥¡tW/¶MMÃB˜ÔtŸMÞ-ÃæÒUèû0ý0G¤¢ j@( t;áÄéQ@Ô±×ËæIi%ïFŸ7C,5ý¸ífÈÀëìȆrÒ ­×êàWíü@ü‚su[ ØÆ8•dÕù½ F'“¶cý—ê\ +ïȦ¢Ù¼É(p¢²GŽáuVOÿîï|Ÿ…ÙU€‡CÍðï¸'SÚæ™ü°NÂÙ¤1ð8®Ì…~[!tS7{q¨ò’©ÍǶÆ|SR9l½.’u`S”­É´JÅ?¡™Ð‘lQ 8׿¦ËˆÁö§ÛpÍ%»ÏB-Vë:œ¢Áè66s,»wE<­‹$ŸØ„zídZNh*8B÷ûçqG/ÛôV_”ŽîÍwôÅÙƒÄ%Râ5a÷ã(fV¯Ê‡>®Ð!z}Œ6iR™OO'ðÂCʃ”H\ë°¹¤e°ÊlþÂ185ÝðâDK_žâìxhŠ”•îYõó§£X•\÷Ú^{§4!èGD †º]ùòUÀ•SVê½9%leí”BRbµp\2oI,²,-ÂV±ŒqÃÁ i» xÊë.ÜrûŸm=’‚vœõËØ¹b¦Ôß&.+a&Š ú»kQ&y^儦ݟr%½\»€áU):°þ¨œŽjLmé­± *òq•,p:”q®KÜGôNscôl‰™¦^Ç*zSÁþSNÜ´Ù;a¸É“ýž*Îå!a…Œ”(þÒãýº6µ}qŒÌná Òe‚)Ã,Kxž¢Ç·¢èt0ÎT)Aþµ\™®¼|Œ÷¿Ø/˜YàUKˆ{òÍuYÿ_p¯P»ÚÐaZÜæ-¼þ¡¹Ít ÖΣE‡£Ì⟷öVÍÅ QËWËIÉ6n¼–¢l9cA?Ñà5Š,§ûƎ׽Iñþìí¿Õ\¶9õ œ¦ñ4“îÜË–åõkŸkDnNÉx舑´µ§u——ðÚËE~)õ—Ì4ÿlcb^…ªëõŒ:FÎ#˜¿$¶·ê6ÊѳùAµ"‹´ú²ûa0¿¡Os 5ÌaeJó2ïÊjÞ0Œ!’Ò¥ÒœÆP£•Ó½«°æQâ:™ âðZ´7 ›À¡Ú?ì úÒ×Ëa¸™ ûÆÐ ùWg”Âä  ø±SÞrÆÝâ>u¥‰ü\Ëëth"mÚÝ5a‰ÛËQÔøÎ7\é%pÕ3„€­ÿ9Z>ÚR:=[4j+½mÇ"%½–y¿/P’L=£a[•ƒ‰_ȉ‡L¢XOÆÅt5Ò¤ïÙâÿ\xŸµq-_Øã¥Tº¬I\éD’ïZ'©t(€Iì¬Hžšð×%µ¡öM Oª ”îîõÞ% ™T/C¥sšÿÁ”g- ¯»e6/RŶÄÒñ õD]óeYCölÏWYb9Y¾PÆ ®›¢Åü“wV%€¿K¸1„4[ܪ6MÜ$Öaד̫Z€; Ðú@Í‹D%ï÷R2¦…¢i§ëMñ ŸwM ÆØ˜˜5ß«o üwûÔ>nº·Y`ýZdeLïcaFâÜ^‘Âû(Öç¯/ü¬b´[Cbp)׆÷Øs.PË‘½”­ÀÎY;Ü‚axØÆÀ"r.µqLÍ[:­¬]¦Rµ1¶à ‚´Ü  ‚1ì/bÕ*ü˜„Ëβ¶Èï*4拺îJqLdQ NÀ<¡ÏvYBNó&¤ôx*"ßQJÎ:ÞÅè … Ž1_v•‹XZÉ‹6ÌhaŠã%}d9bç̓LÒL,%½²ÛÙfkN—…Î;fÃaɬiÖ8dóuôvö+|q¼ó(˜žÜï0ïC »†±‘+Ë›+”ˆÎ‹8ÕC¤bk —ŒÃb=]-äRÈéAÒd\Î7˜Â»RA>*8¦01 \¾¢Ý³‘  ”×{­£xb°åLF–SÚù`Ac*mHØ@ºÈÛuÛ†˜xFÓøhßç\qdþÊ~áç(îËPD³1ãMqªtÁQ"΀k뵃7BáŠò†”ÆÀh¥-ð1Ï0õ'Ýãty¡NõÑ$:Ÿ®s08éÈ>&÷Šge¸ìf… ŠTÏÏËQ¶)¦±§ÊDHy•ô=_Qp$ò%°,Ð].Ö“§d²“楒‹ZC³ß~9?¦wf[ rÄhÄ8ÈSã^œ¯t¯‰ø{$R –Æ€å¥o¾L¥{§Í¯¢ÎAÉŠ*u?•-b sEÙ¸4=Y ¯N¯{ Bë´JNÕ¾\ÖðŽà¤CMæÊWqÜà¹X_cYõ¢KœßsâÚV{CFJŽ·å¯ûäÆ^wRîA£EÿÙl톯VnÒÖ%yãÔsAñ¡™w":K™ý†ú{moÙv\e;Oš˜c×1æ­WÆGò0!p Χ9ËoO¤SV+˜^ãÝ¥îé0§fI98ðq *Šj\OY‘z¬®™Ù@¡2®sÉë4ÕLP0á°BR(²…âãò#xžaOzˆJä8îofN×åÏ «"ލçO“Jm) cHȦb“WRµ-„Ý%zGZÔ‘ÁWdJÑ“¯__ww)EìG¦.®’ ‘”ß1Õ=Ú§á=Þ¬!öäëÑ÷D,ž B–R¼ á)… ÎûC†ÙêÊ8¯0 ‹YZphangorn/data/chloroplast.RData0000644000176200001440000005227413201424001016243 0ustar liggesusersý7zXZi"Þ6!ÏXÌãÉÙT])TW"änRÊŸãX\°ÆqÅjnçj-&êaN• í˺TÖ 5¹ ¼õ_çŒÐù2ÿúå¿âb¥gá ïÒªp×3{»¡]¯Î²‹´¼ÙìŽë|¾1x®ÅÇ€×f <ÄrZ=õyW--ãHS@Pïì’™n¹?lAã>üœ”11Ówþ¶ ?WÔªÀqäQlrpÈrEÌdµ…bÅ6oÓErþƒzþ™ Œ#ú÷¹Ó;Í¥ŠиxA¹¶{/ju‡,oÖx óù금ªzt*Í» #ø¥ÆN,È~½ºµ‹<ƒM±Ó8o1à jã)d1KG‚°(ä}òiéÆ:hÔ½j!ƒ²¢%„‚s“䉄ò„ÞZWGõF3 bD ÓËRÁ¸ÐYƒõ.áx GÍ]¨WßÂoPþØ©t_EÄk¥Óv_QCRC(HC5QÕǸó©ƒ+‹â»@ ûQ«°'¡ÓÑZÙCj<[ïò¹[*ôÊÛ»“ðÖ+*¨§ljß8òŠð^døKßW5ž5MKIÔÉÈ|½§9:LkuÊô*+˜,)’RýK(¯ ¹JÛý›^€±p¾Àý±44WÜ•ññ=ªô ú­\Ý" O‹ÍuY+𪅹3É»s)Š{¥v:CAéÈÛ&üÂbÚ…hjïeâÐzE£\FÒ€š^3L‡¥5€•y^6}ƒocݾX‡^ÍZÖOmÔœ[@ô[3«ÒÁØ‚¯ d/v˜ß\.½¹ºלô¿ž÷x˜aódÇchô1,<)ÒÚ|Ž®’4âÜܲ8Æ<—³¦¦–Å\_öiÔc’W~8À“’…Ó»â'Í­µ4×›£]¡Rc¦`Á´ Xð9¾ ŒGN†©[70´oÁCz{Ö<óëåj8­÷a£iìÏ$hÄ.Œ}*ǰØ^§7s³í0榆†\ޝ•e¿ ó'˜ÅŠâƒ! Ç5Ú.új8‡i]¹|7¢,@oq^w~§H…?k Gůwp.žK8©EÏPBHÎcÅŠÃþÑ‘>º-à¢zEßÖxA¾ks(&G ¿ØÛâÜ1*UryXô€Î­¦eôΑ”0¯þvHºâC o  „Õrã«sÌÒ°aŸú PvV,b“ÇÖ¡ñŽDϾxjn²×â·5§ èæÊë ë@=:¢”3-ˆÁð½ðGÙœÌû€íšk†Ñ^‚0'ÃØ(’ÎCÁïÿ´‹ñá+Â+‡?gOKöðJªþÓVî³Zˆþx¼?”‹|I¤€õߣ*žæ åëÃÕôLò80Ô@×vš¾ˆG5š9³\&/FB·B‡ð!3Ù¶î~ædãôåýÉÔ ¥îuf¸ÞWk¦ðX¿Ê¯8Ƙ„X…`×üi3ckgg±áõTì‡."µ4YËÝ¢f_R4˦GÍ%²Á+‹Žå^Ë슧T‹Ä.ý¯EKµK"uÜË4÷s*¤;±d·ç>ä2]9ñ(cV@³·†]ôUbòÂÕ-móRÕ– d«'Ô’Ÿ‹›MÍt1»¬›Þ°·8%gR“}éüædñ-D™<ˆé_€f$ïjŸ8Iæ—Í£µØè=.G÷xaƒxïv—]{U[ F‡ŸÕ¹7\Ü@5Î+HJi Ž÷#Àª³Ô‡bê`ä•;ÎñÉ# 8+7D^oS*!dm@y†Â+‹¾:¡L©l½¼œ¹kËÐ'ý^ȫ˦z7Ý_t1À¿9ý+&+§~Á¿W°ÜÊeQŸ+i@>³ƒhÓ"ë<14àjذ´e'‰?"·ä½'ïd­`è‹î…«Ÿrñ*ÏåÄâƒáêÿ°ÖD£*d¢@ºEýŸì!Eñ­t顯9å’iBÝÓ£Bâb¡¡QWœb[@­àQ¦Å]Fzm£Î Nä!. !çýÌ®Vköy€•'ÂòrjSÌñ>×È-çuótºq6ê(³B½AË&Ή³XÂ|Ô»9hFcŒ×º{(FZa ½åaÀíÿÒUwÁAkÿK×—¼·Æfœá!«(ã‹2ü'CïõÙ‚Zu0~òéKUʈ–ZËúô‘'²qãGþ/„fJίÌÒ£L›*iÈØUÊËòäÕ¥s÷uf€7rºB໼((óˆ§n;>D£R!PF¶eóoM „Ir/ù(¿c9ë`øó€Ì·ÅŒ4wš¡—4AñùÀZ–òmF"P¯À„-«¿Yö%àëIðbÌæÑ.Öʹ¡¤û¿qU1v<½xáf™™öû›»5r§%•—?n€6Ttjš>R׳þ»z=MÆß‘¯Ý×9O¢QÓât_Ý ¶ ûfÔë a}<¿G:º$ŸG˜ó­Òþ5Ø´J#Ùxæ!ù`LPC‚Ϻ? eZÌBÒNâZ*É×»`'’)] Ì‰»I|yØT#.­WØ1èîOc-°ûˆñŸP_Ÿ`õî2胷UX$á’-J*9ÏèòŸ«ÂŒ<©V`"ˆÞøžEà,é[Öœ€˜¨ñ¢\o3ŠKyø–T°w‡âdmHë“<¶ÃPú¥” ¶DÑ¢ÚlŸ޲‚/‹Òêн¸+MÐ`>µè¾ª'¤U TŠ\¨Q+–v»‹îï¬ö>x ý [ÐDo©×y†B +3NÊꤘèÛ`lµ$S>ôñ¨«b¥üÍÎqt©ÈÍ‚."þ ¹ðeΡO”ÄT|óG^þѬ,$άüÑ=‡`æ¹!ê ù龜È^›Òq^XÄϺêj½@5…ÖÛÎSH²—*MoÕÓõÑ,²°Õ?Ñ(3ƒ4«¦qâÍè… e»ÀÙvÓÅY¯ù†¦11å½;ɸ8QðTcôBm¶e­+1P^‹µÆ,K™ÅQûVÊÁNÔÙÀ¡ì®)['íë[Ò4T9â;¸ÕÈM“ÑŸ—† )œ’ªÓ£ ÄŸö¥G-Iý¥ØÞŠóEŒÞJ…Zà‚àæ÷F¬§w —‘ÿW$Ð/8ÒÍŸÔÂÙ0Ýóàb=¬rtǼOvQ‘Y…T¸k q}Û‚T²Fa"ˆXÔ(xë·Ê«¸­P85äJh¨ŠYÔ|Tž¡‚ákféœiÔ]C_— ˜>.aú¦³.ãâ°›~j ¼œpL\=ÿcý¼ÇWtÖÇùdÅKË%j!¬ÇsQÉø¿|í¬V^ê–̸Fûi°\º3ØÈ† Cï6yIª]76F4atÁÃ1.ž¿·:ãïêƒ8Õ¯b=ü´$ìÅò+åŠõUÖ…K sC¦]?bßTxʭиįOuo)›‰»:'oG/"q€hÙäÓKFÿ´§–qEOê̵C(Å$ŒöBæA6øh—;êðËÔ…CcºPÌo}žeù¦•÷KbI/‘„«•«ËgÇÕçûˆÑ¨? h\ÏÂÄb÷-ƒ¢58•Uê¼ú3¤i)¿ã€eèxéKÚ ™qygž(‡!XÞIˆì^ÂÕX®’»GµãF³½Lƒ抇_–úBaÝ;Èp÷*j JOîLqÅžµý’] ItÓûzsÁ­ng‰ŠgÜꮂZ¿C ¼Éú”k(mŽ•8ÄÂEcÃ1<À{†!ÄU¸zŸö/T2^Rú6±-[ÿL¸pØ›Å+u´æ©¥í:Dø¾–0øÃÝCÂCX+ëI—iPTÖ'øA3 Íc7‹&wéW±MÎ E__%ø´SÝ‘fÎÇ‚é@7!É£3~ý¼÷*Ì¿°|™f‡fœ9/¤g8n§„#‰lò?þÀñ˜¹kU™JŠÔ¤ Ûà¥`ÊÏÝ-ŸsÓÀ¸ÑÉ4Èd™ñhl±ürIÁyEók<üá “tÁiÙhÓÉ0oc/©n8›?Ð-ýåˆÿUâSSék³tôU’­Ý!D/îíT| WÍÌGÈH®þmÔþ–J=pt^J2´‘Ι^¦‘±lrKã 6R Ã¢Áâ«1ßERÏKkÚ©dÍúG¨ÇøçÁyäVé^ à°H¤¡áErsH­µº ª^\áò$³)ˆ³Ïûò 0òã§oû·$øÏ-Û¿lŸôÊ’º¿d# [a¨óôý»i#bÑaá*}1àlÜ6_ÙÝ¡<÷ʚǩ+¯‰Ê‘µeGþfP'_Bž_`ìP¯™œé“¾¨¢"”r¬yHž‚ë]w­mñ|yÙLüN…x¢`ÜkW4v¼R”?f^s¥,J%$[’—¼7J–å©Y„jBâ?WàÙk«àûdToë'G©¡Ì“V¯(1Ô¦oFâZ&ôËp–äT¾?ã­ÈÝÅ8!´Y;++®0lý0J=A¿ÓVCDs¸h$­m–`ù—™öúm·Š5ŸrÚ^e'ø%ú£ÃÅ¿üú)¸Š•“b™'<–Ý÷-jŠr–È$šRí9Û©õ,ðÁb@]ctaæˆëç‹·Óþ1¤^Ó /7“/\0Û†(žñÐ#Þêÿ”K!–|Ç8÷߬|9FkHa­”bJXØE늙.ˆ¤ ˆîÁ†kâK•Ó`uá£âC.’)ä Hƒ{<;ÍøyÑ|vÀÖíÔ‘¼éj}áy|Ú­ÒþÉ'©š9”©ì‘Žêñ񢆾 >þ…DzµîÇù?>|/;}G .¾OuÄb%6<‡iÿ Z K‰ÆT;gØ pÊÚ[ÁJÅþWz¾â\‘ÕLðžH ­ÔX.f‰ÖúŠ›zyX;òi#)*RXìômBXÃkhû Ëq7²!ä0ÇÒ4Yá LË*FŽX¨69oPFù>¬á°D³‹ÐI¢pþmÈç:.]Ì~•£c¾' i#ÛÔàgfŠV¸ˆº Õ¢Ç{᪲]HËÂÌ3䊢LÈõ–sÕÕÝ@{ýâ®òu WßGåA×6±ÛÓ¿Ç»dÄ!æíýxl%£áÓMál׃yX¾íBzmµÐÆ nz>ŠèA4‡ÀRMsòd ¿±“9vñ­}4¥d\$gîÓ}!T¡öâÀKc€ßáS'†'¥ñ¯T¯õ¿2Í'å^›2K<0ÖkënÇá^¸`L‡cWhæE®êßðo²Ö=¹ ±p%ÉTÿ×rN#î KkÖ^.“¿q bÃÖ{",N ³"8VgAéšÇ#4 ÑI_®CÄÄ%"ùUp¦-OúêQD-‹“›ûŠi*¢wQ̾`ÇÉ€XScñïŸe›.Á7ÿŒúb[{Â{+·{ι.›¿BݾIæ Èÿ MP¸\ï1[ÆVÿvéÊ"µH.œ3ÀQ¢Bb[‡ô6 e“! Ùýd£¦è!ܦ<:Ö¤¶¹zÅÉ%úW(? ½mhñ!$8;í¤Ö€+ˆÿä=| &.ަ±Ü|ÞÕÌ@sãÊHê‡ø¾å×þ*²”Âú+¤Â+žßº: ‹‹E;aEu‚ÜÓMH@„¥¾·2³„DÝz­å‰“}Y'j± =ô´9I¾aô¡¬ÿÈì(pÞˆ=š'6çoö3ßÿ}8SþD ‘k©xË›ÒÔ¢\Sç <ÍÁ«#—µH2±åŽîûÎÀ˜åjíÛ•¡J¨C¸ÈR–°(÷G>FRk•ÓA—ÕóäéŸIŒ‰I$r ¢F‚¬!¿Iªq»*®$\÷¸6êÒe°|bÈËa3  ”Ò4$^â÷½q%uO:ˆq…8pï“¢…!WQSM“u] ;P˜6NiPð2›¯'V1}Zl_¡k€sž ’ºq¥ ¹RZm$†8 €Üó@ïåF`‘ßÌBGxZÐÒ×ço`-¹hûñÆ«.!)W²è„ŠRù+x5ÄWYõ „¯¼ààŠ‡È)›¤£Çj%ÜÊ*~`5°cåîõ aÐn:+Ö>«ËÔl½Å¡s1¤às(Bž¦hñ†Æ)‰œë){—¶tEüoÿŠê–ÐjÙ„t{{ó¹d ØNmßMƒße>°^?µŠ°B]Ï̤Õå ?¬Gýödì(Šâÿ9øÎw’Øe«§4?ð—nQê …ÙIÇÈ7B^êpµ˜'¨¥ö$Á?@óº37\äÓ/î´äÀ„ãGðÍ %§Ø½0½Ò «œd8Dn¢zÓ°|kDŠá-¹çq×CÜjÂí¦lËW0¥Øâš0 TSÊýŇÝ/ü&‰ÄS¬MÒî›ZˆmW5náüÏ.¶ iv¬ "€H^ŵ?¤Å{‚M!-®ùjø ÓÄâU0“—£;âØ„©HŽ ÇøÊ48a©Ó”-Îû8ÛÌ-^EˆhÂö[)èW_õ¦Û©Jiâ-°ŒÌ`MI»Cž­}ÜXå}È9F ¤ç7ì›æÑ^<á­/gµyÛ§èñ!jSÒR0år‚áRìÞê¹`Z5y=qÞgq†:4ÞÚX°ÍÀM½û[æ!< .ÓµÂr"Ü5OBó–ld€àúã®b„Ôù³R–Ùì¢NV¥€›x 9·§9LŠ©£­ð¦J°EïçOŸ>HW\ÌôQg”ص!¿¥&Èž,cå¸èh®ÅB>™[Žì.|¶8K÷µ\R›‘@¥fZ޼%‘LpÿnÅ™tRÊ/á5A3aSa÷Ý 5$^.T5SýÄλƋ£º±ÂyqÊX†Ôº?Œfä^̶BaßM2¡šxoìÜÈùƒäk;Ù4œâÉ Ì³×ÊøºêN³ºÌ7S÷ ßÞî #£ ­¾+9¿bqÜ5­åÅ—J¼›ØðÅ¡àôýA—uôJÂ<Ë’*†v&Õ€­ q_nz¥p'=õWw2ë?P@xr#zk¨:›ï&NFß„6YfÐÂ>ŽäÊåµÙIŽ¡ý#éií8ï&{ƒ«1h,>×íSW‘Á¡‰\G'H¨Ý@¦ª©5Fp%—Æ“g¥l’!%º@©§I1!É…Òî«ø%;b;ñÔ‰»z‘ÕËo¸Gj怋,t”V2vMHkÊ‘,£ß(ebQ¶c3í;ß¿“€þ£¿fʰÂ9Ò gò1q‰Pé)"nnž 2¹9ïŽ3Y@•ËÛ‘RÁZ*IÐÞ1ÙŽ€íµZ¥bE¬r(y¨—žƒ·èña!8R5˜ "Vó5òYó]¨]E”pÃCQ2+R'ß,`:pì4ËJÆîƒÛ”†½0ýyÈ!·¡˜i“Ð\;Á¨÷ÍìDjë&ËVW;ïUW¾~F9×®Äâ1°›k7¸â€ï»Oë"eƒ¶‡Õ¡qÊÖƒyþ’1,”¿³è$zPàLZ"P„f%ÒåùaãG[áuUt‡H¼%kuž¨íSUB0Wi›_jŽox<_®Žâ,šÄ¬7ÔÙÓ ¨VuCSB%]Ô÷œhASdÄÛí#=VÍ×f E± !ê _Â*¦W>¶!†NaôEUÏʰV€æ˜6ëv ³IÝ3Ì \dˆx ŒŸžï·ÇPqÉ-ΛðRÍs³Õ‹þ5BY»ª¯J,óâ<ôi­ߋ?cèÓQ_5Zà+¢ýƒð‰j—ÙYœÖ¡L•ã]ÅŸï}":Þ>ÑŒ|xÇו¶`'z9X›¿7œº¤õþYÞ£±Pë×?ñU³ÃÎ|í»˜È*ù@9|Ü50ŸÒ¹iãÂêííDÁ¶ ¬Û̇æ]y »Îõ@Û¨ÉqbϬåߣ7ð2N€eNAùîÝÌ¢«‹”:èƒÚ°„£ |GóÄʘÇý ºEùƨa*(J\^ã/TÖËÞs£Ë°¶DÈ<tÇN8ï?”EB’N«ìe³hUÕ“lˆ¹CÇ0ˆðEëÊ*¿ôëñ±¨äaWócÇ »}\&f+*¥;ÁrëÞy/ê€@{¿0”ÛßBÎ6àÊ%0M(ýøÏ9nÕ´È›Ù×â'ß…6mpcýÌZZ8À­}(ÚêËìŽ~Ÿöò‘…xÕW³ØÆdƺéM)†çdò–e½ÎŠp÷Ž•ž¯ƒ£Û‚¦û¬)¿8¯e=gx¼xMO-{;`¹³8…è2Ø:œCÓ1ŠXÚì» ¡Nk÷=Æ{ƒ—|¢WNV K2ö븪 í_2Dç">pœ§' æ¶àYÒšº([mì[”’H¨ºiü^0n)4ZñÙBU±™+•“|²9Ð@‚CCoé>‘ñ£´¢’ÂßÒBU马1“}%«L‰³Q`¬ÕEÜÇ“¢òH°wÃQ-lÎìÓ‰š®—ç|”eîk[æ8¤‡C@ˆ ¹”ر‡rݱ€a ž‡ïSš=ŒQz$ê“€·n×­hhfÖ)Š(¸á#‚ÔÙäæ²#±»«‰À–[¾³ø7Õ[aÄü§ýH~6š×FObWXýKiÝ&²õ‘¡ =Õ$À5ar«8ô(M–ÒÚUëfØyPÌTF¾ý1ÐE=Â#¬Ýfl{~8ïൠ¨s ¡öLg’áÐ-ªñé/MNy·Rž[J ™%I1Ìܹ£ðèi¥×FÕç¢ ÍG¢ÜËØ[•¼“ÖŽíÊ1ô<#Y~üPÊíZÞ>Žñxà(°©}¢Üœ¾(íÏzÆš«DhB^IX[:{8²»,2Ùlõ-\Hº€`¤³™bJÿ)u«Ý?=ixŸÎ©YWÑõrC™OÚ§«M¨N†šQ:ÉæÕÐÛ.Wí¹§Á}úõØ4ØvK~Q»ü¿asŸ˜©&wx±þyUKÃLÖu«+GÙL› 9’:Ycv/£4Ò‚I·¨r×–•’­SÙ7¦+èçrdÉÊ\ñb«ÆñˆNïˆ!¹¼üä„QrcTM"¿n”̼õqò ñ4yØ"fxѿϞwÛ)äR6•†¼»‚@¢‘ÏÝä¹BŒ8™l’…¹ƒ†ß´Ôvá oìG°½$´ó7ÄìEôŽÈCß,yÙ~ÁÈîÅÇËàçu±ã[³éK,Þ+äRç^JïVÜeœg²FjÚŒ<6úõ>pjª‚É…P…MÙš%ôQOù)dZMSy“PoPNϘ·‹Rs±Ç!,`ÜßK–Gq_ìå¾4vjí5O8Æ ÷*‡‹ü[Ìm‰Pð.¢:B.Ð,T’r …ý¡Àó‰A]-Ôì^¢†?¤ø\Ž !.…ûc_Lò:Û¬dhØ@4†¦O-˜C5d¿æVEÚ›ö Sp¼[áEJJDt¨Q$3õó°ùH ¥+͸ÊÇ;úqˆSOìæ×Uïé/ÀÕW¦(”ÛÚB¶gši®¼‘á&¿º}¶™P)ÖX¯AÖL%$Ö  °l8<Åþ(ª4JÐÝü˜Å2ŒÅX61 ìvÏNÛX®_Þyçúj¬y‚ ÔùùÝ3 nB Wé› ¯°@—mŠ.ÐdƒþàÀ0 â$|Ýe³HAuá£Ì–‘%D"ƒéÄ ¿, a˜S؇ÆýÿE ù2&»H+KÄ©¯XȹcÓ…ÕË¢å ŠóÛÙCIjå-þpÇqÙY€s‡Xa¡¼ÙðŽóýzéøã—Äü%÷ôÁÙ—~E¹uŒBɺµÆØß…yÇ¥w–Óßí’‘¸™N @i|¤u2GøëaiGak¬ï/C”bÌìÀx;—GÏÂî‚ÊÂéShËO¾\ºÊèl ÆñNá1”a–‚<4öÔ¿­©´Xr¬·:/-ó×Sh§ÑßI‹„Þ$7Ù5d«cˆ]°Z;dløŠ¨µ/ÈÖ-Xz¡T(GñÍ“C¼ÕÔç¯~úÓ¹BƒÕ˜ 4B±ƒV[ˆ²GÀXXʈ¦2nuÓ9¯ÑIð­z€ðÂ51(Ë4n%i€—,0º—¬Í¥Yþ?—-Zú×òÛËïçÕÔ`ÍNp" øº±mjmÇÚÇÂÁµ:ƵÇ89.\«^†‚‹Ë2’c1ägzÁL83˜õªE"y4ÊŠB×íä'>­uÐßä`×T¶CHÀD¤¶0ˆF ‘tÎü2Á¦“Jr­>pü&xÝçËïwpý'–N层4@xÄ©xèåC·!§Õ…ýjŸ¦Ý—í—§üبü›ô-Œ!Cã\úM‘T¡FI–6_£“À¾Üº¾“äoj©¢[96ÔJð·ŽSDF{ˆ¶ŽOU¥<ìb“YÀ ÷01Öq1Ò»‘™ÁÈO/Ên¦µ ëOñ¡Åþ7 ’?6>{¨?H”æthûÖŸùd‹¯Q©Ú|!Pÿ~"g‘Éß Ìïìå%Œ 68ßùTˆ­(~@îN›Ž,å ÞÐ}(’•IÁÙf>—%³AÀo·ahT¡÷Ùƒt5Jä®nÈ<ÆÌRtg®ó¯wþèšæìw( Žb$_I UöÚðOÉ<“ÒâF C×Å¢›ÉU<ÊõØ£oC >6ÎŒ$”ýyÄgÀ!"‘ÀuC‹Lf["; ^3ñÞ6Â<@ü/ÃßêHøŒ¯žåÞñÐæ“ìJoS³àÁˆ¥ï@“È »ºöà’pö¤PôXÜhó¢78*7ZëŒOU…ßéY¤ïE,Pƒ±z!¾ñCLa„›@¹¤…ú_= pÜïzñNbœÜv¶:ÂZ‘N@fî ¯UKu-=·~Q 5õ­´¨BtÚW¼ï3¦0Ò.VÇ¢4ŠOC¿ò29,ÌÕv3ß dJDæµçñëq·Hë!¹ä´Îõñ<XyL·C.ìŒjq:åvŽp$K:/ÅÇÈÓzÊv‘šäZvšu§‚UsæŠE/Q¼5”Ë{ë›(#€ÑÆ §¡Ét¯ÂÆwO GØÔJÅîøg…ÌSÅgx¹FkEM?ŒDìþ¬§¥Ú¸HˆåãG¸¡PÆg¬.53â)fù–U)•Öàú}ÐÍòµŽ>·ÏÉ[˜¥o~ÀžEuêÔNèŸ%]†¹ÈŸ^äZ¾‰txÕvØßW‰¡K1äE³}Ž·¨üeƒF¨ŸwÑ;BCß;¸âÐ>e¢x…µ³FkÿÀ92ÔLäWÑ3î—2óßq´¹W!5ÉŒ÷ÅÖÿ²â€½ôfªWo{;âÁù¶;uÀ0¦üâ3:4 bb¾.Òá&ë@-E˱¹"é[xºSå£ìiË«°¡ Îɾˆs(EôÍ‚uŽM;N—máqHÁo˜"ï©ÇÁWƒzØUKäy–¦3‹[™oÓ â>Î}`¨5EÐLφ 0•Ë=ü‘’¢47 %"}fvËóÂ!ñ±.ÀÖAì×-•;Dé&8ÙÝÓg'<0ÐÀûsI;ðÛŒðUBcíÚ8H í7ŠO\ïB’õ1¸¿Ú}ÞyLÎY]bgžoù©¥ÄgþMI:ï¼KF6ø Ët´·ªòô}Þl¶K{¬òík y‡"5õ ŽÂÃu4ƒ#¿Æ)Ò}0«–·¤ƒ<Êfù[v©8j%ü6@ÈI"ÑAOIvýô!I>2Û­máƒä]ŽqB¤Q ï;-—îÕ2ú]A{ ¬šùŒ]a9‚êUÇ?Z[”/²¹.BPRÚÝUc|Ι$Ò3…ŠØ+òèP9t½×Êæ„üUÄμ“ß(±îì·ú’ÞKg+V ¦ÅsÉt’úw;øÆfÎFìÏÙl!3S¤8£dê|vàŠŠÆ,Ƈ7ÄÓÚLpH x°h~WDnÚs®ª—‚ÉÎÆs<P"µZÏà§ÐBlûÂô¹È×3¢XþJËš ¼ .»ˆQÉ7å$csñÔȽp¢ƒ×´†^Ü¿œAuLŽ`üpˆ1åN©;Yµ×CJ[¹iO-cÛ\v|ILÎÖÑu-ýžÌzªfß³™JY ÊÍå#÷4¨7£WÞnÂwÌ­¬È4A’¶FF1:…JÄã?j/]?”}h–Fž¼âqÓŸû(öž9V‘™ÖçzSÂ~E³‹ÜZ韬$‡é–5¸¥àˆ„ŸÍ xŽ|9¦,ŽF˱ްlµ*Ñ@T4ƒ›µXswWc..m~TàWç‹­&P÷ä£îœjgãøFçÄä`ü\Xééã’_:Œg ޶÷í?aô¹Ÿ}Ü·à ½ ÔWèñ\–™)o;í%z³˜—“V~˜Sv+ð'k©ˆˆÎñ˜¿pOEºZr‚38üžI«Ì¹üDÛŠ­ùëõ$èà6~s² ²‘˜+—cåŽþlØ"ifnõ£cù>üÇ}Fr¾ŽÃ_2Õ¢NêçU#/ÃàÕûbŸØ{¹Ï§%Ã!²|«åܘV>ÍbÒ©²}¢kÝ(KB‹y…¤âPœaMâI\d®ÆzžK_B~â:0ã |?FêÝßãà™éÂsǸÃ(×áŒþÔìÅ øÖÚZU!zY›Dˆ¬‰üè¸Ê^0¶+X÷Vëæ¡€fr“ùw!_-}Õ6ï¼Á]óm’¥ÆTî´7óÉU¦hÐ6‘|ÈÂu/+ßàð¹R˜«OÙÒUà>¼}ÀZ9B rãóüùžûû²Ñg?“QŸ{ݯfk³ôLu¥ªT³ŠzgΆæYüššNÇ@¨ãkôv$Oî ƒ²ðµÉµ= µÆ0#ZjÜŠØýzfí±´@*! oÚ¹m»uŸ#“)¡“/@’$Ï?~A_¢Þe ÇBó¯õ{y¡„÷4·ÁÏrô"feÜM®{_F!âp@ú„Ň}Þãi<²ÎLnÑŸí\aŒ§ëÔS †™x`² ~|D‰Bw±?uñp LXè×D¬ãb"Ì”0&?xoåùã=ÃÏ/½%D(¤–<Ó¬+öˆ–ÈgVþ.^&SP« ãLâ'ëOƒ¼0öÄjÔm»g»`r):>Yµš$þš ý››WÂþl˸hŽ÷­0q[àÏÅ—¦¹g4j€“9üû«ðÒôÍÁE—ƒ âC–:b\’¦:{yÿ¢¹æô—&«Â{9µ ‰ ýÃAèèlRîRYQ²·•ACÚÀ`‡ÿ Òõ«¯ ÙXõzÜè!ªîð41D?½Q-Ç;„VÈI² £µ”>¹¤×2÷ÿëd¥/!ó2NF_÷¸‚C,4oÕ©%6¢®`-Æo²b /†Õ¼Xf‡£Â ýãMŸ\'2‹kZ–®ìæÐÇ”ßÉ ®áâe²Ç;g)iBƒùŸ ÖÀ‡–ù#ò² :d¾â¼ƒYq†Às«Öa¤u%kŒâÕ±)+‚ÿYÕÅNL°šúKÖËZÙS››9&:x»­–›êe‘¿‡Ã¨tÑ©y‚ùO„¶ÆÂ§qŸ»¬­&”²Ñmˆµ™;¶›ÉB!çzµœÎ$VK›³/ÈxK›ø”½†/­¢+‚Aäwg‘§iÏßÀ18(óÇuâš‚Ž +†û6ˆÍ[7 Ž@4|ç!9”Õ­ŸægÀ6öxEfþvÁü°”ËÞG„|M©Ï(âœ%ÿ;ôœ×Iô£ƒ~'Å5¢ÓtlˆPQ=Ãpþ[CfÒ~ ǧŸt 9àñaã„ÜʱŸÊî°n5púrq°n#gžõOá\UçòÝwâ»ÔöáGgrº ¶^¸bã=q½¯x;­"ðŽÀ ¸„üâPÁ„½ßd'Wà¨iá!çRy}vi(Ìoêà˜7«Öü¶ŠÛ.ŸVCòÔœê-¯e³Eˆ(x@# `*EÉMÓl(°´Žó‰LP]¡ƒk ^V:Wü/aÿÁó¶áÅ?Žƒýg8rþñ$ž½°Añÿ-v™L&x_gÓ!Ë×ڜɳx°FlÏ“­ Îdµz*PÆ#=ŠF…7‚ý „R™g<ÖÆ®² èmS>rÉNÝ—Qè4ŠKÇ0Ñ ÿ#“.|£®ÒÍGÞ„ä)ɪ/‚5«  v2¢É·`¹4Ýÿ~bE¡õWË¡[4Ê;L±ßÈF«9•lOɼuÙ˜¹ö `ÎÆŽNêôޏ‚.ó£gÁû Ñæü׌oÊóË c±X3ØLÀü"X 7Y Ôt÷ –AôUzø“õ,ÛÖÊï4›‘ÐQ¤ yZiT7[ÝF‘ý,{ $£Ë§˜æL|äÕÎMÑ8‡.)ÐWÿ›§"?ÿUÌìI ¸¹.šê{Óο%\ŸÝÁÔ÷å™VB ´ïå*Õ(yÃeuµè&ÄB9'è)Sãfàöï[¡|Ú¶n‚».ðwirø”¤IU]Fª-‹Ÿ F i<¼’"Ã:%Ý4f9ÑTòFÛ1öñ¡G(k|Ëc™gøtÜ©HIgÞÙÉÚKP-êû&‰–YË’=tŒ°œ‹þ¸¶(þ©ƒø;…*ªSø»iC½é§·Ž4{7st[8U t¸©óž¼+®[ÛŽ;ᣟÈÉ©=]:{_‡Ë+_äjøKŠ[bà›£}ï €Ãû Ùq>6Ú–4è?D'Æ·ÿ0k½Æ4µ—Ó¥Çbw_cáš·2tÞèQã‡íŠÛö¶•Ü0Zf.&ÈA÷¬‡»n˜¬tþQä„5<ͧ_9˱îú!Ånt½O’Œgmý‡ëíï‡ó;ͯÌî¬y´{væØv‚$ˆV.4v©RóÜ y¤aiFVV€A[‰Z²¸“!÷„«ÄìªK$NCA D@xåˆäðp4¦ Z0Ú^vë ‹†áÌP™*Ëý*&–ÕåhÍG.Ah³ThË¢cѹ0Ÿ?Å ¹_( *µá`Ïq§À}ݺ”†h{2ëÛq#R¢üöcr{Qî€k±Êa¢4¡Ò9} ièXè½—öÊ«lAQ³O6X<Ênö.™´cãíOÁÖ åH¯£àþ?ï­jÑŒ²ñ3‘wã’9‚óUBær¨júr1Òýôñ Ú@špb.œsÖx£IþS;?—k…H†rw'BEìò¿ÓTP?hïÝ|¢¾Y1¾Ø«Oð„F—_0a¯7fÝ ´¶oN8á.öç>¬Ï-;àW ûŽuHÀåW A)ÍØ]÷¼sfp?¢±Âc »_7…øþ>÷õbh+“;ËÓ §›ËkrÈÙMCŠkåe“Õ‹¨‘òƒÓ¿¡xßÎk¦'ç‡gSŽ&‚húCY|'ÏöºÆþ)¡G5N Á#‡ºÄ79¯ÄÏ`÷š‹T/Ó¯HRæ¯TÌÁ;Žø·ÄÔ:­ Ü‹tƒmQöSò”Ÿ*¦¥õ‘>:Š'?WÐïü·¯—^€~Uê'Þ,Ú4moYƒd§å'Ò§6D^¶ƒÞ‚rS;ŠôiceíR…¸}¹&ìÇ.ü~qr&¿týßkj>xê çðÚp e™k/€ªç­ ‹»´È¢ÌÃ:Íàøx©0 Dc´R;‡É¾s cà·jEHF)\¸j.2Il0Ø#ø} ÿ¤ì2JÊÑšôu*…„òï¾™¹{)_7&Ø‹NµnÿkþVy/Iñò.÷õÒa¶5o¾ éæô^qi÷B¬NèdiÈXpÍÀI… î`vœ ŽEãðˆ;„ŠD$6ª2ÊôÃ7£8Ò$bÒZDUyÓ¨iîTBµ°·—æY°†¸ä¹ç!IuºâY£ŽntË‚p„=9‰…ø1eŽè{d"‰N^¯HK×-E8ñWé¥_É(Å¥„_ @\HÇ,-Q4ü/ȈÅͤjAÄt*#ÆIhDýfŠéW"Õƒ«•¬*¦bƕ΋>\;0”ã–¶+€í2Ñ7ýKýˆ )ú#¤à¢Œ¦’ù©3åš@ ä åŽɇœkLr+w}yIdõ³­Ð*Õ S,& y2›6Ì4ªGca­y˜‘bg¥¹Òññ|uRk¸ú¸Rê2ŠÒ%¶ì»›éÜ[mR0ú³K>wÿn­]öÖDu‰%´ø³ÂóZ®Òv5¯‹¼u¸~ˆPEYÞ> ºyénœz5áiN.(By–ºRNP0wµ#;"“îgUÚÜN ¶wvY™èÄ ‚ý´ù6èö$°›DPeòvЪÐ=z#—É´ 툵®|õä‡:ï5=\Eß•çØW;ªÌ[\ø6ß…yŸ½ÛMZÏ?ô^Fµò_ËŽÕ}/?TíOm–ÍíC0»óÕ'9öŸa•J‰ãu“uoÉõ—ëBƒ¿Y”âÏ.µ±âÌ pƒÚh6sð_Ž·è¢äØxÄð-Œ kº†˜ ¨Z’“‘ !ñÇ{dQ3MkKÀáþ]ó:õI[Ĩ„§Í$7ã/Õ! VÁ/ÁD @÷"ÝIíO øA‹$§b8z—JÓÜÃÚ6Ü’¹×Áy€Æ%"àfšËöv9ÁýµâßüÒ¾[†¾´òw_GƒU“ìÃU ÔFÓß ¡zaWM(ò¡`~l3š;#y¼üO×kZ.Ò¯%űÕ×pð5¶¼Bí27-È\kÔòöGlv^ÆÖïºÄŠÚ[ÿñ,[e½£ÝÿfW­‰_ßë}–„†¶b¸Ç”]BJ@‘‰vå¦Ä)V¢GÃ,Œ¸]— aqÀ$ºI¸|QT}#óÕªnõÅ¢åÔ•h¸%èmºjÁÒF¾‹¸å£q÷àoò]¥ž<,°ðr ½v€¡R/ÈÍvòù{m„Yìtõ KàÝ|‰Æ¡™Ò/&ÿPÈ´¤X™ÄæS%_6c´yÊ]”9mÐ]µ­ñòóç.EDPûÜI÷‘âÿt4\‡§çbWð@ œá@¼‰éyˆEAX×ur‹£ˆ¸ÙH»Â`)ûÔ:¼¹%ÕJ`œ‘íUV„šÌý©M%ï¶ÊýhùŒ¼qåòg‚¬Q(—:h´ëöxý%xÅRK{ö¯¥ßJæMÅÌÕ*þ~ÍœI7q¼½ >a¼½[ZO|ˆ¼ú@ÌŠ¹/Rð=ÁÅ[°'¸øWTˆL¨UAp^îÒVôʆŸ rÎмQ‡Ñ ˆpr±î0\Â0 Cœ3"ωåTÎVW‹N;øD×Vás¹lI¯å%J1rXá78fßþµ£ ^ãˆVúR|jBž¶ëy޶S2dèí0•¤î]4ÐŽ\±¹m„Þ¯iOý†èlÐKÓ“(?½&ЬR]È ~‚©¥ô¶/¤b« ¤»Ê>e£òÒuï€hŽ0Ä=‚<…øœmX 6\À™U#T­ìÕOÄöTkl‚òì$?Yyâ”à1r,’âÆ©Lµ”QÁ­ÆK£Õ©ÎÈ;zÌ$ýkþR{5zâkr Â…M±,‡)èZ®•ïá+¸…"Ÿ¾¶¿Çé¨}‚!`E)ü,‚ÿĈ,9…‡2ÃIé—1¾Œ³9³Ù=N6MvÛÊ1ä·×; w€ææe<~™­5<‘3‰ïhš¡ÞãI+b¥µ:›¯.‹„)ä…û;¤A†¾ÜÁýlM¾ HDÃÎ6‡PŽÕ 2z¡ÔŒYþÊg Hþ^æ8 õá/Þ×à~ÊÉD*ó¾ |¦§ÞÇÇm²Wº¯ÍEw}©Í‹Ìà?дR=ˆ¼œ=±vD_fÁóî»iýýú÷²Q*#Ö{9­Rwµ¨ß¨Ðã3\s?¹ qÊ•ô«ß.§{÷€üܯG1½cÎ>c³>+<¶ÿgk™ùC{¬qž´EqüV“d#Â3YNÂȾsàÅÖ«!Y±ØhùnPªªƒ+á`ÿµÖ?#J,6a©Á§­½\<–ÎÛý,kõWêd[o“¥Ó[Ì ÕÿânÇØäñ8o:]G§ÙA˜‹!îDÉø@m’# h?øý÷Mÿk\ÐK G†4þNÞ98äVÏ‹æ(+÷’@—ðô—=èqO‘Š%ü§‡á‘#içÍÿã‚Ãr-ý+«}¾ˆäia¨™{² áÀàó5eÑ.Tlqo(…QvvÓt6~‚Sk`ó»ÆÍgs·®¤gÚßå©ùÙ<Ì"̬<ÎÏuŽ?×ëÀÊóu½cTÑ^Ÿîø­uV/áˆLã¤úäÀg‰ ÓÙÞ»n¡„T¼“ÁJVjâ'™Í³–ðŠ‚õå^yÜ–pKòèš‚ž$ÿH5B‰åoq-,UvDo@€yªÓr}­t .0ç(xæºá5Bn)Ú;e©?uÂÌO&•Y¥ãX1OTú‹Ó–Â~ËpîløøGÖ2ÊG&ýÐÖ¦e®>Ÿ.ì8þQì§‹2`QÝÊo©j]¾÷ž#AëÂ@2ºh!¦Ñ0”oóâeâ/ot£Ã»˜(`èv ˆ›É7ç´‡»÷W3ŸX~r>3&¸Uo{HiJ@½îo‹NqÖfzª¤ÿmÀ—øÿNL¼*VPTuì‡ì SI~rj XPäI^$=òg˜œQ¯Àȱ)NúeØL騶ååIô"”Òˆu|¤¾ŒA¯àóv/“Žâ…Koà ڟÚöËFóØj¡ë8å–Âí“æMtN)ÂÎg›¦ŽRa€L”à@‡r âÆuæÐ™ººâfP3åöƒÏ!Eàè 2XºnAåO‘°ì€ëߨ€`"1_ ë“dRu†Xø±ow›`Ë-œ¦ÿ?!­ýGµ›°— 5ÛæïÎúl/Ø"ž]37¢¥ß¬„Â3J‡8‹™nºlh#<ƒ:$&ŽÀÒðQV… ñ)pß,)w„•t>ȵ‘1²#U¾cã…茹Рö”z*Xå1sÜR 2"G\Â;JÂÃéºéY…êÔhH™èD“×ÈyMë ßD*ÎÓKìëK5MñÎj©m™³ÞH­7\køˆ¿²@õm»W˜(,.„ƒýΫÕÈ:ýƒ¥?ת/ÞÕÀ…TÅØ7¿±w×–p7:®ª®à`Èêˆ9´}mï¡Ô0œøz2o „`Fsì¿ Tøq'Æ\b•ôgÆ© °åVÐÊ—õ9æoåÊ€D½À’ZüÙ.ç ZÎÊ{g_›¤¢š†`4U­QPXS<ª„¢G‘óˆ|bàh/¤­â¹}±ª+ĵU^­Îæ«Éʳóa=€î6‰+íSyöRíœ>ü,½‚|œ,ò=—upòÙí)Òd÷ì+w•Ú˜6 2¤ÚÜp9WUÇË~%‹Èm|È3„ªù›äxŒ›=ð ?8¿Gæ®Õ¯i)'«mP/o«]ÜzèA Z‚é‰Ñêæô4pWíß‚/Ü8O °ÒOÚZ8BØç›ø™IUR¿œ¢˜¼%E£Þ˜?èËûYC5ÃÇ+Æßµ²ûCR`ÒÆ^ËjÇ{m˜×¶ÿ3àÎßý÷#Ù@Šyç7‘޼Çp]>N}âPDñ#—z‡’§ZØÚY¦[Í?¸56·2 l»ˆby=ézsâ"2%1“ø%\ 3¯m£4ãƒ$æµB„0˜cXêEPš¸a•Yþˆq‰.[Œt\bJâgjJàâ!lô‘~ñl†.0~ÐÊ…&zŠTH.o´4¢Iæ'+ ZÜA%ªÖj‰t/À&9ï纮Rš¯ÿ¬Æ=‰\òS\šø»^jf}3bøº-–ä"äæ1.M, ú–ukÖ°ò»|2‡¶¡è†æ=J¹§c-<ó•»8|Ê!ÑPŠŽûôh&ž“;bΰáBŸô[f øIZgëàLCèU(oiʆ\CE¯vܰEd@ºáQŽÁ­¯“ÓýÐÒ Yg®<5Ô›óž<‡ÞHcô“ü©«4Öè‰Æÿ ªLõ§ÝqÕ¼ÍÂ[Ý®äÇõ-jÇô¦o‡Ø @ìKÅòNp4+HÔ}µGaÄ}¿—`:8Ç1SÌÅ=¬/äüiøìcÿ-ˆ½Â<0ªÒÂòÂ_”¦wgyeØGU¯ã* —Ò/xÖœÿk^wR/Ý8Â&ê‰ïúp¨QŠt·Öʆñë¨Ju‘S+õN!aÝ‚¦YüÓç™Õâdßþ•/à°k®úw„‚K©ÛÎy$R+G Ì“ºÆén®)v÷ÀÖ™þ‘*gÝܽmor¥D|”­?|ƒ´>±‹¨r2ƒþ˜Ãûœ$‚0XBtžP_ËSA«Ð ÒåkÂi˜RÝ®¹¹© 4N\=Jbл5U:j[ê±zúñ]û½©öàº9­L×,ºm¯΅« ¹[A§ CˆwÔk]¦z@{˜v*w[Yε-¿ù·:×¶K/v>z’\ƒsqÙÛZåd˜Õ°ÊÎN:è\ÁøYÃ~‡”ölÓr¡jãXÇ7.“óy8U‘<]V¥ðhü[?f®ËOмê ðbÝÐñÝ¢½ïÍíû NÏü(áÿÞöÀ€X½;Ÿ“¡qÅ+®Œ]uݼ‹÷y«ùS§Ä-¼W÷…™¤LWVþB)kWÏyfÀ7?}‘aжø³ÍvùÊøv¥µ4'13uikŒz(¶5çsÇÆ'd¤æÛiœ*Kçµ2ï9 ä¶ü¤äJ:÷“W"l<,axƒÐŸJè¢j¿‡ˆ£NøÏ?êÏïÖ¹¯`]DTy3¨’Æ)ÿ¦„‘FžRØDej5p¤Ç@³9‹•M‹5Þ=ù†òœ7ÈÕ”å‹ôO 2&X«_½TOæ¸Á¡Â6õ9lÁôõÜ÷(\Á¬È¬óÒ^zà¬HR‘ÔN tíO£XsNXn>MæTÆ©wYëb¤ø,žR™Û‘¿Û±Tfwõº'—ž£4wÍÇ+ñE÷1ÁZȾÐú‰ §$ »ð ghדc2Qû%ã,ûZÏ2h-Ö³vÇ* .lkùïÅRˆü[0’KUn ¶”¸¨WÉAotÒ^–ÙäòÝ%ÛSÔ­ãt…q&d§h#¤ß]²ðDÚËøOC@j‡õŽ'÷ï0ƒiŒs9 …­ w}†ØÏ'} ·[æ„Rª®Z½\¦·.¾”trß.ž3ÅSº5”œJ‰8\µg%áÛ²b®d(©&–§Îø± 'Í÷Ÿ©ð¤d,õ ˆ³!9hÙ÷;;¨"YÚÐãc«;V5ž=´ÈÏã¶HpЯáa&_¼zwÑljr Z¥ÊºÑÏÛ©4DšÍH&°Ÿ"ºÖm­Fð­ï›S¯žÞI½…Ý7pK¥ƒ\_‹;f=!J†žæâ"9†AW؉¨X5f¶6G¢,‰ŽïVÇè£?0$c¹ðòì©´¦þÊm;ó#ÀSAƒ vâ>ô´Wo¿¶ ü±qÃ8BðáæÌ|î×ÙºYQ/¤ËŒ"11€ ¸ïÒ§Í—å©ûÿoY3lƧh ]©¹¨G¹>׿¡E²é»+c†åˆ²sѨ”WÜ$©ûÌžHix|þÍkcV^.‡À‘®ç7ý¯«)OW8òX°xS-)p¬m¢ŠTìé”ñ°:¨Ûó©Èæb oÿA‡ƒ¼MÕ>é“6y›¿YÌ\ÖÔëµ÷4¼j0Mwj2ÏÕ#{ˬæqª5¼ ÁÔcl画ü=¡„'?$ KKj‚ =–Ò‹fË^·’éwÝ™ýKߥKa%@X2³Ýã’(E —h8Ø} ‘äSÍ}&…û[•3wM…!.À.å¦ü/3ÛÈòŒÌ;¬¹MK´1Ø~6—@æ«$pi†ÍáÌŠkÇW®óÑçöñ%3V£Ô’“ëbvGäê6ò¯ZRËMd-s<ª"ÕÚäÌ!ÕŒPr €ì´4yµsò*—d,K0/à±$ÿ¶Yý³SÙo°æ\V õõçÕ8+:«{\£0ó§e/m9Šß9K)ð ԉ´YØÌôµ¤4DìùFóL~H-†–«—©Ú“ pL>0 ‹YZphangorn/R/0000755000176200001440000000000013240406030012257 5ustar liggesusersphangorn/R/distSeq.R0000644000176200001440000003175313236422667014052 0ustar liggesusers# # dist # #' Pairwise Distances from Sequences #' #' \code{dist.hamming}, \code{dist.ml} and \code{dist.logDet} compute pairwise #' distances for an object of class \code{phyDat}. \code{dist.ml} uses DNA / #' AA sequences to compute distances under different substitution models. #' #' So far 17 amino acid models are supported ("WAG", "JTT", "LG", "Dayhoff", #' "cpREV", "mtmam", "mtArt", "MtZoa", "mtREV24", "VT","RtREV", "HIVw", "HIVb", #' "FLU", "Blossum62", "Dayhoff_DCMut" and "JTT_DCMut") and additional rate #' matrices and frequencies can be supplied. #' #' The "F81" model uses empirical base frequencies, the "JC69" equal base #' frequencies. This is even the case if the data are not nucleotides. #' #' @param x An object of class \code{phyDat} #' @param ratio Compute uncorrected ('p') distance or character difference. #' @param model One of "JC69", "F81" or one of 17 amino acid models see #' details. #' @param exclude One of "none", "all", "pairwise" indicating whether to delete #' the sites with missing data (or ambiguous states). The default is handle #' missing data as in pml. #' @param bf A vector of base frequencies. #' @param Q A vector containing the lower triangular part of the rate matrix. #' @param k Number of intervals of the discrete gamma distribution. #' @param shape Shape parameter of the gamma distribution. #' @param \dots Further arguments passed to or from other methods. #' @return an object of class \code{dist} #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso For more distance methods for nucleotide data see #' \code{\link[ape]{dist.dna}} and \code{\link{dist.p}} for pairwise #' polymorphism p-distances. \code{\link{writeDist}} for export and import #' distances. #' @references Lockhart, P. J., Steel, M. A., Hendy, M. D. and Penny, D. (1994) #' Recovering evolutionary trees under a more realistic model of sequence #' evolution. \emph{Molecular Biology and Evolution}, \bold{11}, 605--602. #' #' Jukes TH and Cantor CR (1969). \emph{Evolution of Protein Molecules}. New #' York: Academic Press. 21--132. #' @keywords cluster #' @examples #' #' data(Laurasiatherian) #' dm1 <- dist.hamming(Laurasiatherian) #' tree1 <- NJ(dm1) #' dm2 <- dist.logDet(Laurasiatherian) #' tree2 <- NJ(dm2) #' treedist(tree1,tree2) #' # JC model #' dm3 <- dist.ml(Laurasiatherian) #' tree3 <- NJ(dm3) #' treedist(tree1,tree3) #' # F81 + Gamma #' dm4 <- dist.ml(Laurasiatherian, model="F81", k=4, shape=.4) #' tree4 <- NJ(dm4) #' treedist(tree1,tree4) #' treedist(tree3,tree4) #' #' @rdname dist.hamming #' @export dist.hamming <- function (x, ratio = TRUE, exclude = "none") { if (!inherits(x,"phyDat")) stop("x must be of class phyDat") l <- length(x) contrast <- attr(x, "contrast") nc <- as.integer(attr(x, "nc")) con <- rowSums(contrast > 0) < 2 if (exclude == "all") { index <- con[x[[1]]] for (i in 2:l) index <- index & con[x[[i]]] index <- which(index) x <- subset(x, , index) } weight <- attr(x, "weight") d <- numeric((l * (l - 1))/2) if(exclude == "pairwise"){ k <- 1 W <- numeric(l*(l-1)/2) for (i in 1:(l - 1)) { tmp <- con[x[[i]]] for (j in (i + 1):l) { W[k] <- sum(weight[tmp & con[ x[[j]] ] ]) k <- k + 1 } } } if(nc > 31){ # contrast <- attr(x, "contrast") k <- 1 for (i in 1:(l - 1)) { X <- contrast[x[[i]], , drop = FALSE] for (j in (i + 1):l) { d[k] <- sum(weight * (rowSums(X * contrast[x[[j]], , drop = FALSE]) == 0)) k <- k + 1 } } } # end if else{ nr <- attr(x, "nr") if(exclude == "pairwise")ind <- which(con[unlist(x)]==FALSE) x <- prepareDataFitch(x) if(exclude == "pairwise")x[ind] <- as.integer(2L^nc -1L) res <- .C("distHamming", as.integer(x), as.double(weight), as.integer(nr), as.integer(l), as.double(d), PACKAGE = "phangorn") d <- res[[5]] } if (ratio){ if(exclude == "pairwise") d <- d/W else d <- d/sum(weight) } attr(d, "Size") <- l if (is.list(x)) attr(d, "Labels") <- names(x) else attr(d, "Labels") <- colnames(x) attr(d, "Diag") <- FALSE attr(d, "Upper") <- FALSE attr(d, "call") <- match.call() attr(d, "method") <- "hamming" class(d) <- "dist" return(d) } #' @rdname dist.hamming #' @export dist.ml <- function (x, model = "JC69", exclude = "none", bf = NULL, Q = NULL, k=1L, shape=1, ...) { if (!inherits(x,"phyDat")) stop("x must be of class phyDat") l <- length(x) d <- numeric((l * (l - 1))/2) v <- numeric((l * (l - 1))/2) contrast <- attr(x, "contrast") con <- rowSums(contrast > 0) < 2 if (exclude == "all") { index <- con[x[[1]]] for (i in 2:l) index <- index & con[x[[i]]] index <- which(index) x <- subset(x, , index) } nc <- as.integer(attr(x, "nc")) nr <- as.integer(attr(x, "nr")) model <- match.arg(model, c("JC69", "F81", .aamodels)) if (!is.na(match(model, .aamodels))) getModelAA(model, bf = is.null(bf), Q = is.null(Q)) if(is.null(bf) && model=="F81") bf <- baseFreq(x) if (is.null(bf)) bf <- rep(1/nc, nc) if (is.null(Q)) Q <- rep(1, (nc - 1) * nc/2L) bf <- as.double(bf) eig <- edQt(Q = Q, bf = bf) pos <- 1 k <- as.integer(k) w <- as.double(w <- rep(1/k, k)) g <- as.double(discrete.gamma(shape,k)) fun <- function(s) -(nc - 1)/nc * log(1 - nc/(nc - 1) * s) eps <- (nc - 1)/nc n <- as.integer(dim(contrast)[1]) ind1 <- rep(1:n, n:1) ind2 <- unlist(lapply(n:1, function(x) seq_len(x) + n - x)) li <- as.integer(length(ind1)) weight <- as.double(attr(x, "weight")) ll.0 <- as.double(weight * 0) if (exclude == "pairwise") { index <- con[ind1] & con[ind2] index <- which(!index) } tmp <- (contrast %*% eig[[2]])[ind1, ] * (contrast %*% (t(eig[[3]]) * bf))[ind2, ] tmp2 <- vector("list", k) # wdiag = .Call("PWI", as.integer(1:n), as.integer(1:n), as.integer(n), # as.integer(n), rep(1, n), as.integer(li), PACKAGE = "phangorn") # wdiag = which(wdiag > 0) wshared <- which(rowSums(contrast[ind1, ] * contrast[ind2, ]) > 0) tmp2 <- vector("list", k) for (i in 1:(l - 1)) { for (j in (i + 1):l) { w0 <- .Call("PWI", as.integer(x[[i]]), as.integer(x[[j]]), nr, n, weight, li, PACKAGE = "phangorn") if (exclude == "pairwise") w0[index] <- 0.0 ind <- w0 > 0 old.el <- 1 - (sum(w0[wshared])/sum(w0)) if (old.el > eps) old.el <- 10 else old.el <- fun(old.el) # sind = sum(ind) # browser() for(lk in 1:k) tmp2[[lk]] <- tmp[ind, , drop = FALSE] # FS0 verwenden!!! res <- .Call("FS5", eig, nc, as.double(old.el), w, g, tmp2, as.integer(k), as.integer(sum(ind)), w0[ind], ll.0, PACKAGE = "phangorn") d[pos] <- res[1] # res[[1]] v[pos] <- res[2] # res[[2]] pos <- pos + 1 } } attr(d, "Size") <- l if (is.list(x)) attr(d, "Labels") <- names(x) else attr(d, "Labels") <- colnames(x) attr(d, "Diag") <- FALSE attr(d, "Upper") <- FALSE attr(d, "call") <- match.call() attr(d, "variance") <- v class(d) <- "dist" return(d) } #' @rdname dist.hamming #' @export dist.logDet <- function (x) { if (!inherits(x,"phyDat")) stop("x must be of class phyDat") weight <- attr(x, "weight") contrast <- attr(x, 'contrast') r <- attr(x, "nc") l <- length(x) d <- numeric((l * (l - 1))/2) k <- 1 for (i in 1:(l - 1)) { Xi <- weight * contrast[x[[i]], , drop=FALSE] for (j in (i + 1):l) { tmp <- crossprod(Xi, contrast[x[[j]], , drop=FALSE]) class(tmp) <- "matrix" z <- determinant.matrix(tmp, logarithm=TRUE) res <- z$sign*z$modulus if (is.nan(res)) { d[k] <- 10 } else d[k] <- (-res + sum(log(rowSums(tmp) * colSums(tmp)))/2)/r k <- k + 1 } } attr(d, "Size") <- l if (is.list(x)) attr(d, "Labels") <- names(x) else attr(d, "Labels") <- colnames(x) attr(d, "Diag") <- FALSE attr(d, "Upper") <- FALSE attr(d, "call") <- match.call() attr(d, "method") <- "logDet" class(d) <- "dist" return(d) } #' Writing and reading distances in phylip and nexus format #' #' \code{readDist}, \code{writeDist} and \code{write.nexus.dist} are useful to #' exchange distance matrices with other phylogenetic programs. #' #' #' @param x A \code{dist} object. #' @param file A file name. #' @param format file format, default is "phylip", only other option so far is #' "nexus". #' @param \dots Further arguments passed to or from other methods. #' @param upper logical value indicating whether the upper triangle of the #' distance matrix should be printed. #' @param diag logical value indicating whether the diagonal of the distance #' matrix should be printed. #' @param digits passed to format inside of \code{write.nexus.dist}. #' @param taxa logical. If TRUE a taxa block is added. #' @param append logical. If TRUE the nexus blocks will be added to a file. #' @return an object of class \code{dist} #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso To compute distance matrices see \code{\link{dist.ml}} #' \code{\link[ape]{dist.dna}} and \code{\link{dist.p}} for pairwise #' polymorphism p-distances #' @references Maddison, D. R., Swofford, D. L. and Maddison, W. P. (1997) #' NEXUS: an extensible file format for systematic information. #' \emph{Systematic Biology}, \bold{46}, 590--621. #' #' @keywords cluster #' @examples #' #' data(yeast) #' dm <- dist.ml(yeast) #' writeDist(dm) #' write.nexus.dist(dm) #' #' @rdname writeDist #' @export writeDist writeDist <- function(x, file="", format="phylip", ...){ format <- match.arg(format, c("phylip", "nexus")) if(format=="phylip"){ x <- as.matrix(x) # x <- format(x, digits = digits, justify = "none") cat(ncol(x), "\n", file=file) write.table(x, file, append=TRUE, quote=FALSE, col.names=FALSE) } else write.nexus.dist(x, file=file, ...) } #' @rdname writeDist #' @export write.nexus.dist <- function(x, file="", append=FALSE, upper=FALSE, diag=TRUE, digits = getOption("digits"), taxa=!append){ taxa.labels <- attr(x, "Labels") ntaxa <- length(taxa.labels) m <- as.matrix(x) cf <- format(m, digits = digits, justify = "none") l <- length(attr(x, "Labels")) if(upper) diag <- TRUE if (!upper) cf[row(cf) < col(cf)] <- "" if (!diag) cf[row(cf) == col(cf)] <- "" cf2 <- apply(cf, 1, "paste0", collapse=" ") cf2 <- paste(attr(x, "Labels"), cf2) cf2 <- trimws(cf2, "right") if(!append)cat("#NEXUS\n\n", file = file) if(taxa){ cat(paste("BEGIN TAXA;\n\tDIMENSIONS ntax=", ntaxa, ";\n", sep = ""), file = file, append = TRUE) cat("\tTAXLABELS", paste(taxa.labels, sep = " "), ";\nEND;\n\n", file = file, append = TRUE) } cat("BEGIN DISTANCES; \n", file = file, append = TRUE) if(upper) cat("\tFORMAT TRIANGLE = BOTH;\n", file = file, append = TRUE) else cat("\tFORMAT TRIANGLE = LOWER;\n", file = file, append = TRUE) if(!diag) cat("\tFORMAT NODIAGONAL;\n", file = file, append = TRUE) cat("\tMatrix \n", file = file, append = TRUE) for(i in 1:l) cat("\t", cf2[i], "\n", sep="", file = file, append = TRUE) cat("\t;\nEND; \n", file = file, append = TRUE) } RSS <- function(x, dm, trace=0){ labels <- attr(x, "labels") dm <- as.matrix(dm) k <- dim(dm)[1] dm <- dm[labels,labels] y <- dm[lower.tri(dm)] betahat <- attr(x, "weights") X <- splits2design(x) RSS <- sum((y-(X%*%betahat))^2) RSS } #' @rdname writeDist #' @export readDist <- function(file){ #, format="phylip" tmp <- read.table(file, skip=1, stringsAsFactors = FALSE) labels <- tmp[,1] dm <- as.matrix(tmp[,-1]) dimnames(dm) <- list(labels, labels) as.dist(dm) } #' @rdname writeDist #' @param incomparables Not used so far. #' @export unique.dist <- function(x, incomparables, ...){ y <- as.matrix(x) l <- nrow(y) z <- character(l) for(i in seq_len(l)) z[i] <- paste( round(y[i, ] ,8), collapse="_") if(any(duplicated(z))){ ind <- !duplicated(z) y <- y[ind, ind] if(is.matrix(x))return(y) if(inherits(x, "dist")){ # attrib <- attributes(x) res <- as.dist(y, diag=attr(x, "Diag"), upper=attr(x, "Upper")) return(res) } } x } phangorn/R/clanistic.R0000644000176200001440000004503113201424001014351 0ustar liggesusers#' Clans, slices and clips #' #' Functions for clanistics to compute clans, slices, clips for unrooted trees #' and functions to quantify the fragmentation of trees. #' #' Every split in an unrooted tree defines two complementary clans. Thus for an #' unrooted binary tree with \eqn{n} leaves there are \eqn{2n - 3} edges, and #' therefore \eqn{4n - 6} clans (including \eqn{n} trivial clans containing #' only one leave). #' #' Slices are defined by a pair of splits or tripartitions, which are not #' clans. The number of distinguishable slices for a binary tree with \eqn{n} #' tips is \eqn{2n^2 - 10n + 12}. #' #' %A clip is a different type of partition as it is defined by evolutionary or #' cophenetic distance and not by the topology. Namely clips are groups of #' leaves for which the maximum pairwise distance is smaller than threshold. #' %For a better separation we additionally demand that the maximum pairwise #' distance within a clip is lower than the distance between any member of the #' clip and any other tip. #' #' A clip is a different type of partition, defining groups of leaves that are #' related in terms of evolutionary distances and not only topology. Namely, #' clips are groups of leaves for which all pairwise path-length distances are #' smaller than a given threshold value (Lapointe et al. 2010). There exists #' different numbers of clips for different thresholds, the largest (and #' trivial) one being the whole tree. There is always a clip containing only #' the two leaves with the smallest pairwise distance. #' #' Clans, slices and clips can be used to characterize how well a vector of #' categorial characters (natives/intruders) fit on a tree. We will follow the #' definitions of Lapointe et al.(2010). A complete clan is a clan that #' contains all leaves of a given state/color, but can also contain leaves of #' another state/color. A clan is homogeneous if it only contains leaves of one #' state/color. #' #' \code{getDiversity} computes either the \cr Shannon Diversity: \eqn{H = #' -\sum_{i=1}^{k}(N_i/N) log(N_i/N), N=\sum_{i=1}^{k} N_i}{H = -sum(N_i/N) * #' log(N_i/N), N=sum(N_i)} \cr or the \cr Equitability Index: \eqn{E = H / #' log(N)} \cr where \eqn{N_i} are the sizes of the \eqn{k} largest homogeneous #' clans of intruders. If the categories of the data can be separated by an #' edge of the tree then the E-value will be zero, and maximum equitability #' (E=1) is reached if all intruders are in separate clans. getDiversity #' computes these Intruder indices for the whole tree, complete clans and #' complete slices. Additionally the parsimony scores (p-scores) are reported. #' The p-score indicates if the leaves contain only one color (p-score=0), if #' the the leaves can be separated by a single split (perfect clan, p-score=1) #' or by a pair of splits (perfect slice, p-score=2). #' #' So far only 2 states are supported (native, intruder), however it is also #' possible to recode several states into the native or intruder state using #' contrasts, for details see section 2 in vignette("phangorn-specials"). #' Furthermore unknown character states are coded as ambiguous character, which #' can act either as native or intruder minimizing the number of clans or #' changes (in parsimony analysis) needed to describe a tree for given data. #' #' Set attribute labels to "old" for analysis as in Schliep et al. (2010) or to #' "new" for names which are more intuitive. #' #' \code{diversity} returns a data.frame with the parsimony score for each tree #' and each levels of the variables in \code{X}. \code{X} has to be a #' \code{data.frame} where each column is a factor and the rownames of \code{X} #' correspond to the tips of the trees. #' #' %TODO See also vignette("Clanistic"). #' #' @param tree An object of class phylo or multiPhylo (getDiversity). #' @param all A logical, return all or just the largest clip. #' @param x An object of class phyDat. #' @param norm A logical, return Equitability Index (default) or Shannon #' Diversity. #' @param var.names A vector of variable names. #' @param labels see details. #' @param X a data.frame #' @return getClans, getSlices and getClips return a matrix of partitions, a #' matrix of ones and zeros where rows correspond to a clan, slice or clip and #' columns to tips. A one indicates that a tip belongs to a certain partition. #' \cr getDiversity returns a list with tree object, the first is a data.frame #' of the equitability index or Shannon divergence and parsimony scores #' (p-score) for all trees and variables. The data.frame has two attributes, #' the first is a splits object to identify the taxa of each tree and the #' second is a splits object containing all partitions that perfectly fit. #' @author Klaus Schliep \email{klaus.schliep@@snv.jussieu.fr} #' #' Francois-Joseph Lapointe \email{francois-joseph.lapointe@@umontreal.ca} #' @seealso \code{\link{parsimony}}, Consistency index \code{\link{CI}}, #' Retention index \code{\link{RI}}, \code{\link{phyDat}} #' @references Lapointe, F.-J., Lopez, P., Boucher, Y., Koenig, J., Bapteste, #' E. (2010) Clanistics: a multi-level perspective for harvesting unrooted gene #' trees. \emph{Trends in Microbiology} 18: 341-347 #' #' Wilkinson, M., McInerney, J.O., Hirt, R.P., Foster, P.G., Embley, T.M. #' (2007) Of clades and clans: terms for phylogenetic relationships in unrooted #' trees. \emph{Trends in Ecology and Evolution} 22: 114-115 #' #' Schliep, K., Lopez, P., Lapointe F.-J., Bapteste E. (2011) Harvesting #' Evolutionary Signals in a Forest of Prokaryotic Gene Trees, \emph{Molecular #' Biology and Evolution} 28(4): 1393-1405 #' @keywords cluster #' @examples #' #' set.seed(111) #' tree <- rtree(10) #' getClans(tree) #' getClips(tree, all=TRUE) #' getSlices(tree) #' #' set.seed(123) #' trees <- rmtree(10, 20) #' X <- matrix(sample(c("red", "blue", "violet"), 100, TRUE, c(.5,.4, .1)), #' ncol=5, dimnames=list(paste('t',1:20, sep=""), paste('Var',1:5, sep="_"))) #' x <- phyDat(X, type = "USER", levels = c("red", "blue"), ambiguity="violet") #' plot(trees[[1]], "u", tip.color = X[trees[[1]]$tip,1]) # intruders are blue #' #' (divTab <- getDiversity(trees, x, var.names=colnames(X))) #' summary(divTab) #' #' @rdname getClans #' @export getClans <- function (tree) { if (is.rooted(tree)) tree <- unroot(tree) bp <- bip(tree) nTips <- length(tree$tip.label) root <- nTips + 1 bp[root] <- NULL X <- matrix(0, length(bp) - nTips, nTips) k <- 1 nl <- NULL if (!is.null(tree$node.label)) { nl <- c(rep("-1", nTips), rep("-1", nTips), tree$node.label[-1], tree$node.label[-1]) } if(root<=length(bp)){ for (i in root:length(bp)) { X[k, bp[[i]]] <- 1 k <- k + 1 } } res <- rbind(diag(nTips), 1 - diag(nTips), X, 1 - X) colnames(res) <- tree$tip.label if (!is.null(nl)) rownames(res) <- nl res } #' @rdname getClans #' @export getSlices <- function(tree){ nTips <- length(tree$tip.label) clans <- getClans(tree) m <- dim(clans)[1] X <- tcrossprod(clans) z <- rowSums(clans) Z1 <- matrix(z,m,m) Z2 <- t(Z1) Z <- matrix(0,m,m) Z[Z1<=Z2] <- Z1[Z1<=Z2] Z[Z20,arr.ind=TRUE) l <- dim(index)[1] nSlices <- 2 * nTips^2 -10 * nTips + 12 result <- matrix(0, nSlices, nTips) strClan <- do.call("paste", c(as.data.frame(clans), sep = "")) k <- 1 for(i in 1:l){ tmp1 <- as.numeric((clans[index[i,1],] + clans[index[i,2],])==2) tmp <- paste(tmp1,sep="",collapse="") if(is.na(match(tmp,strClan))){ result[k,] <- tmp1 k <- k+1 } } if(kmin(ind) ) break() within <- max(dm[ind, ind]) between <- min(dm[ind, -ind]) if (within < between) { res <- numeric(nTips) res[ind] <- 1L result <- rbind(result, res) } } } dimnames(result) <- list(NULL, tips) if (all) return(result) ind <- which.max(rowSums(result)) result[ind, ] } shannon <- function (x, norm=TRUE) { p <- x/sum(x) ShD <- -sum(p * log10(p)) if(norm){ if (sum(x) == 1) return(0) ShD <- ShD/log10(sum(x)) } ShD } shannon2 <- function (x, norm=TRUE) { p <- x/sum(x) ShD <- -sum(p * log(p)) if(norm){ if (sum(x) == 1) return(0) ShD <- ShD/log(sum(x)) } ShD } getE <- function (tree, x, clans = NULL, norm = TRUE) { if (is.rooted(tree)) tree <- unroot(tree) if (is.null(clans)) clans <- getClans(tree) labels <- tree$tip.label x <- x[labels] result <- rep(NA, 12) names(result) <- c("E* tree", "# natives", "# intruder", "# unknown", "E* clan", "# intruder", "# unknown", "E* slice", "# intruder", "# unknown", "bs 1", "bs 2") result[2] <- sum(x == 1) result[3] <- sum(x == 2) result[4] <- sum(x == 3) if (result[2] == 0 || result[3] == 0) { if (result[2] > 1) return(list(result, labels)) else return(list(result, integer(0))) } LHG <- E_Intruder(clans, x) d <- dim(LHG)[1] if (d == 1) { result[1] <- 0 if (!is.null(tree$node.label)) result[11] <- as.numeric(rownames(LHG)) return(list(result, labels[LHG == 0])) } intr <- drop(LHG %*% as.numeric(x == 2)) result[1] <- shannon2(intr, norm = norm) o <- order(intr, decreasing = TRUE) if (!is.null(tree$node.label)) result[11:12] <- as.numeric(rownames(LHG)[o[c(1, 2)]]) ind <- which(LHG[o[1], ] == 1) result[6] <- sum(x[-ind] == 2) result[7] <- sum(x[-ind] == 3) if (length(x[-ind]) < 4) return(list(result, NULL)) result[5] <- shannon2(intr[-o[1]], norm = norm) ind2 <- c(which(LHG[o[1], ] == 1), which(LHG[o[2], ] == 1)) spl <- structure(list(which(colSums(LHG)==0)), labels=labels, weights=1) class(spl) <- "splits" if (d == 2) { return(list(result, spl)) } result[9] <- sum(x[-ind2] == 2) result[10] <- sum(x[-ind2] == 3) if (length(x[-ind2]) < 4){ return(list(result, spl)) } result[8] <- shannon2(intr[-c(o[1], o[2])], norm = norm) return(list(result, spl)) } E_Intruder <- function (clans, x) { cp <- drop(clans %*% as.numeric(x == 1)) ci <- drop(clans %*% as.numeric(x == 2)) homo <- which(cp == 0 & ci > 0) l <- length(homo) if (l > 0) { HG <- clans[homo, , drop = FALSE] lhg <- rep(TRUE, l) rsh <- rowSums(HG) Z <- tcrossprod(HG)>0 Z <- Z * rsh zmax <- apply(Z,2,max) lhg <- !(zmax > rsh) LHG <- HG[lhg, , drop = FALSE] return(LHG) } return(NULL) } E_Intruder_2 <- function (clans, x, native=NULL) { contr <- attr(x, "contr") d <- dim(contr) if(d[1]>d[2]) contr[(d[2]+1):d[1],] <- 0 cp <- clans %*% contr[as.numeric(x),] homo <- which(rowSums(cp > 0) == 1) l <- length(homo) if (l > 0) { HG <- clans[homo, , drop = FALSE] lhg <- rep(TRUE, l) rsh <- rowSums(HG) Z <- tcrossprod(HG)>0 Z <- Z * rsh zmax <- apply(Z,2,max) lhg <- !(zmax > rsh) LHG <- HG[lhg, , drop = FALSE] return(LHG) } return(NULL) } getDiv <- function(tree, x, native=NULL){ clans <- getClans(tree) labels <- tree$tip.label x <- subset(x, labels) LHG <- E_Intruder_2(clans, subset(x,,1)) if(!is.null(native)){ ll <- match(native, attr(x, "allLevels")) ind <- (as.numeric(x) %in% ll) } if(!is.null(native)){ rs <- rowSums(clans) intr <- clans %*% ind clans <- clans[intr==0,] d <- which.max(rs[intr==0]) tree2 <- drop.tip(tree, tip=labels[which(clans[d, ]==1)]) } else tree2 <- NULL list(c(shannon(rowSums(LHG)), summary(factor(attr(x, "allLevels"))[as.numeric(subset(x,,1))]), parsimony(tree, x)), tree2 ) } #' @rdname getClans #' @export getDiversity <- function (tree, x, norm = TRUE, var.names = NULL, labels="new") { k <- 1 if(inherits(tree,"multiPhylo")) k <- length(tree) l <- attr(x, "nr") tmp <- matrix(0, k * l, 12) tnam <- 1 if (inherits(tree,"multiPhylo")) { tnam <- names(tree) if (is.null(tnam)) tnam <- 1:length(tree) } if(is.null(var.names)) var.names <- 1:l PM <- data.frame("t1", "a", stringsAsFactors = FALSE) colnames(PM) <- c("Tree", "Var") PM <- PM[FALSE,] PM[1 :(k*l), ] <- NA perfect <- names(x) L <- vector("list",k*l) m <- 1 o <- 1 ok <- 0 for (i in 1:k) { if (inherits(tree,"multiPhylo")) tmptree <- tree[[i]] else tmptree <- tree if (is.rooted(tmptree)) tmptree <- unroot(tmptree) clans <- getClans(tmptree) for (j in 1:l) { TMP <- getE(tmptree, getRows(x, j), clans, norm = norm) tmp[m, ] <- TMP[[1]] L[[m]] <- TMP[[2]] # if class =splits else NULL PM[m, 1] <- tnam[i] PM[m, 2] <- var.names[j] m <- m + 1 } } tnam <- rep(tnam, each = l) dnam <- var.names dnam <- rep(dnam, k) pscore <- as.numeric(sankoff(tree, x, site = "site")) res <- data.frame(tnam, dnam, tmp, pscore) if(labels=="old")names(res) <- c("tree", "variable", "E tree", "# natives", "# intruder", "# unknown", "E clan", "# intruder", "# unknown", "E slice", "# intruder", "# unknown", "bs 1", "bs 2", "p-score") else{ names(res) <- c("tree", "variable", "E clan", "# natives", "# intruder", "# unknown", "E slice", "# intruder", "# unknown", "E melange", "# intruder", "# unknown", "bs 1", "bs 2", "p-score") warning("The variable names have changed") } attr(res, "Perfect") <- L class(res) <- c("clanistics", "data.frame") res } summary.clanistics <- function(object, ...){ res <- matrix(FALSE, nrow(object), 5) res[,1] <- object[,4]>0 & object[,"p-score"]==0 # "natives" res[,2] <- object[,5]>0 & object[,"p-score"]==0 # "intruder" res[,3] <- object[,"p-score"]==1 res[,4] <- ( (object[,"p-score"]==2) & (object[,7]==0) & (!is.na(object[,7])) ) | ( (object[,"p-score"]==2) & (object[,4]==2) & (is.na(object[,7])) ) res[,5] <- object[,"p-score"]>=2 & (object[,7]>0) & (!is.na(object[,7])) res[] <- as.numeric(res) tmp <- data.frame(factor(object[,"variable"]), res) colnames(tmp) <- c("Variable", "Natives_only", "Intruder_only", "Clan", "Slice", "Melange") # colnames(res) = c("Natives only", "Intruder only", "Clan", "Melange") class(tmp) <- c("summary.clanistics", "data.frame") tmp } print.summary.clanistics <- function(x, ...){ print(aggregate(x[,-1], list(Variable=x[,1]), sum), ...) } compareSplits <- function(res, nam1, nam2){ wide <- reshape(res[, c("tree", "E tree", "variable")], v.names="E tree", idvar="tree", timevar="variable", direction="wide") wideI <- reshape(res[, c("tree", "# natives", "variable")], v.names="# natives", idvar="tree", timevar="variable", direction="wide") for(i in 2:dim(wide)[2]) colnames(wide)[i] <- strsplit(colnames(wide)[i],"E tree.")[[1]][2] for(i in 2:dim(wide)[2]) colnames(wideI)[i] <- strsplit(colnames(wideI)[i],"# natives.")[[1]][2] ntrees <- wide[,1] splits <- attr(res, "Perfect") dat <- attr(attr(res, "Perfect"), "data") res <- matrix(NA, length(ntrees), length(nam1)*length(nam2)) for(m in 1:ntrees){ k <- 1 trnam <- ntrees[m] for(i in nam1){ E1 <- wide[m, i] for(j in nam2){ E2 <- wide[m, j] if(!is.na(E1) & !is.na(E2)){ if(E1 == E2){ # if(E1 == 0 & E2 == 0){ if( (wideI[m, i] >0) & (wideI[m, j]) >0){ ind1 <- which(dat[,1]==trnam & dat[,2]==i) sp1 <- splits[[ind1]] ind2 <- which(dat[,1]==trnam & dat[,2]==j) sp2 <- splits[[ind2]] if(length(ind1)>0 & length(ind2)>0 ) res[m, k] <- drop(compatible3(sp1, sp2)) } } } k <- k+1 } } } res } #' @rdname getClans #' @export diversity <- function(tree, X){ # from kknn contr.dummy <- function (n, contrasts = TRUE) { if (length(n) <= 1) { if (is.numeric(n) && length(n) == 1 && n > 1) levels <- 1:n else stop("contrasts are not defined for 0 degrees of freedom") } else levels <- n lenglev <- length(levels) cont <- array(0, c(lenglev, lenglev), list(levels, levels)) cont[col(cont) == row(cont)] <- 1 cont } l <- dim(X)[2] m <- ifelse(inherits(tree,"multiPhylo"), length(tree), 1) contr <- as.list(rep("contr.dummy", l)) names(contr) <- names(X) tmp <- model.matrix(~.-1, X, contrast=contr) tmp1 <- phyDat.default(tmp, levels=c(1,0), compress = FALSE) attr(tmp1, "varnames") <- colnames(tmp) fd <- sankoff(tree,tmp1,site = "site") fd <- matrix(fd, ncol=m) if(m>1){ if(is.null(names(tree))) tnames <- paste("tree", 1:m, sep=".") else tnames <- names(tree) } else tnames <- "tree" dimnames(fd) <- list(colnames(tmp), tnames) res <- stack(data.frame(fd)) if(m>1)nt <- rep(sapply(tree, function(x)length(x$tip.label)), each=dim(fd)[1]) else nt <- rep(length(tree$tip.label), each=dim(fd)[1]) if(m>1)res2 <- as.vector(sapply(tree, function(x,y) colSums(y[x$tip.label,,drop=FALSE]) , y=tmp)) else res2 <- colSums(tmp[tree$tip.label,,drop=FALSE]) result <- data.frame(tree = res[,2], variable=rep(colnames(tmp),m), pscore=res[,1], ntips=nt, natives=res2) result } phangorn/R/cladePar.R0000644000176200001440000000334213201424001014112 0ustar liggesusers#' Utility function to plot.phylo #' #' cladePar can help you coloring (choosing edge width/type) of clades. #' #' #' @param tree an object of class phylo. #' @param node the node which is the common ancestor of the clade. #' @param edge.color see plot.phylo. #' @param tip.color see plot.phylo. #' @param edge.width see plot.phylo. #' @param edge.lty see plot.phylo. #' @param x the result of a previous call to cladeInfo. #' @param plot logical, if TRUE the tree is plotted. #' @param \dots Further arguments passed to or from other methods. #' @return A list containing the information about the edges and tips. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{plot.phylo}} #' @keywords plot #' @examples #' #' tree <- rtree(10) #' plot(tree) #' nodelabels() #' x <- cladePar(tree, 12) #' cladePar(tree, 18, "blue", "blue", x=x, plot=TRUE) #' #' @export cladePar cladePar <- function(tree, node, edge.color="red", tip.color=edge.color, edge.width = 1, edge.lty = 1, x=NULL, plot=FALSE, ...){ if(is.null(x)){ m <- max(tree$edge) x <- list(edge=data.frame(color=rep("black",m), width = rep(1, m), lty = rep(1, m), stringsAsFactors = FALSE), tip=rep("black", length(tree$tip.label))) } ind <- Descendants(tree,node,"all") x$edge$color[ind] <- edge.color x$edge$width[ind] <- edge.width x$edge$lty[ind] <- edge.lty x[[2]][Descendants(tree, node, "tips")[[1]]] <- tip.color if(plot){ tree <- reorder(tree) plot(tree, edge.color=x$edge$color[tree$edge[,2]], edge.width = x$edge$width[tree$edge[,2]], edge.lty = x$edge$lty[tree$edge[,2]], tip.color=x[[2]],...) } else return(x) } phangorn/R/hadamard.R0000644000176200001440000002163613207043151014157 0ustar liggesusersdec2Bin <- function (x) { res <- NULL i <- 1L while (x > 0) { if (x%%2L) res <- c(res, i) x <- x%/%2L i <- i + 1L } res } # returns binary (0, 1) vector of length k dec2bin <- function (x, k=ceiling(log2(x))) { i <- 1L res <- integer(k) while (x > 0) { if (x%%2L) res[i] <- 1L x <- x%/%2L i <- i + 1L } res } # double factorial: log version #' @rdname dfactorial #' @export ldfactorial <- function(x){ x <- (x+1)/2 res <- lgamma(2*x)-(lgamma(x)+(x-1)*log(2)) res } # double factorial #' Arithmetic Operators #' #' double factorial function #' #' #' @param x a numeric scalar or vector #' @return \code{dfactorial(x)} returns the double factorial, that is #' \eqn{x\!\! = 1 * 3 * 5 * \ldots * x } and \code{ldfactorial(x)} is the #' natural logarithm of it. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link[base:Special]{factorial}}, #' \code{\link[ape]{howmanytrees}} #' @keywords classif #' @examples #' #' dfactorial(1:10) #' #' @rdname dfactorial #' @export dfactorial "dfactorial" <- function(x){exp(ldfactorial(x))} # # Hadamard Conjugation # ### @aliases hadamard fhm h4st h2st #' Hadamard Matrices and Fast Hadamard Multiplication #' #' A collection of functions to perform Hadamard conjugation. %Hv of a #' Hadamard matrix H with a vector v using fast Hadamard multiplication. #' #' \code{h2st} and \code{h4st} perform Hadamard conjugation for 2-state #' (binary, RY-coded) or 4-state (DNA/RNA) data. \code{write.nexus.splits} #' writes splits returned from \code{h2st} or #' \code{\link[phangorn]{distanceHadamard}} to a nexus file, which can be #' processed by Spectronet or Splitstree. #' #' @param x a vector of length \eqn{2^n}, where n is an integer. #' @param v a vector of length \eqn{2^n}, where n is an integer. #' @param obj a data.frame or character matrix, typical a sequence alignment. #' @param eps Threshold value for splits. #' @param levels levels of the sequences. #' @return \code{hadamard} returns a Hadamard matrix. \code{fhm} returns the #' fast Hadamard multiplication. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{distanceHadamard}}, \code{\link{lento}}, #' \code{\link{plot.networx}} #' @references Hendy, M.D. (1989). The relationship between simple evolutionary #' tree models and observable sequence data. \emph{Systematic Zoology}, #' \bold{38} 310--321. #' #' Hendy, M. D. and Penny, D. (1993). Spectral Analysis of Phylogenetic Data. #' \emph{Journal of Classification}, \bold{10}, 5--24. #' #' Hendy, M. D. (2005). Hadamard conjugation: an analytical tool for #' phylogenetics. In O. Gascuel, editor, \emph{Mathematics of evolution and #' phylogeny}, Oxford University Press, Oxford #' #' Waddell P. J. (1995). Statistical methods of phylogenetic analysis: #' Including hadamard conjugation, LogDet transforms, and maximum likelihood. #' \emph{PhD thesis}. #' @keywords cluster #' @examples #' #' H <- hadamard(3) #' v <- 1:8 #' H %*% v #' fhm(v) #' #' data(yeast) #' #' # RY-coding #' dat_ry <- acgt2ry(yeast) #' fit2 <- h2st(dat_ry) #' lento(fit2) #' #' # write.nexus.splits(fit2, file = "test.nxs") #' # read this file into Spectronet or Splitstree to show the network #' \dontrun{ #' dat <- as.character(yeast) #' dat4 <- phyDat(dat, type="USER", levels=c("a","c", "g", "t"), ambiguity=NULL) #' fit4 <- h4st(dat4) #' #' par(mfrow=c(3,1)) #' lento(fit4[[1]], main="Transversion") #' lento(fit4[[2]], main="Transition 1") #' lento(fit4[[3]], main="Transition 2") #' } #' #' @rdname hadamard #' @export hadamard hadamard <- function(x){ res <- 1 while(x>0){ res <- rbind(cbind(res,res),cbind(res,-res)) x <- x-1 } res } #' @rdname hadamard #' @export fhm <- function(v){ n <- length(v) n <- log2(n) res <- .C("C_fhm", v = as.double(v), n = as.integer(n))$v # res } seq2split <- function(s){ n <- length(s) res <- fhm(log(fhm(s)))/n res } split2seq <- function(q){ n <- length(q) res <- fhm(exp(fhm(q)))/n res } #' Distance Hadamard #' #' Distance Hadamard produces spectra of splits from a distance matrix. #' #' #' @param dm A distance matrix. #' @param eps Threshold value for splits. #' @return \code{distanceHadamard} returns a matrix. The first column contains #' the distance spectra, the second one the edge-spectra. If eps is positive an #' object of with all splits greater eps is returned. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com}, Tim White #' @seealso \code{\link{hadamard}}, \code{\link{lento}}, #' \code{\link{plot.networx}}, \code{\link{neighborNet}} #' @references Hendy, M. D. and Penny, D. (1993). Spectral Analysis of #' Phylogenetic Data. \emph{Journal of Classification}, \bold{10}, 5-24. #' @keywords cluster #' @examples #' #' data(yeast) #' dm <- dist.hamming(yeast) #' dm <- as.matrix(dm) #' fit <- distanceHadamard(dm) #' lento(fit) #' plot(as.networx(fit), "2D") #' #' @export distanceHadamard distanceHadamard <- function (dm, eps = 0.001) { if (inherits(dm,"dist")) { n <- attr(dm, "Size") Labels <- attr(dm, "Labels") } if (inherits(dm,"matrix")) { n <- dim(dm)[1] Labels <- colnames(dm) dm <- dm[lower.tri(dm)] } ns <- 2^(n - 1) if (n > 23) stop("Hadamard conjugation works only efficient for n < 24") result <- .Call("dist2spectra", dm, as.integer(n), as.integer(ns), PACKAGE = "phangorn") weights <- -fhm(result)/2^(n - 2) if(eps>0){ weights <- weights[-1] ind2 <- which(weights>eps) n2 <- length(ind2) splits <- vector("list", n2) for(i in 1:n2)splits[[i]] <- dec2Bin(ind2[i]) attr(splits, "weights") <- weights[ind2] attr(splits, "labels") <- Labels attr(splits, 'dm') <- dm class(splits) <- 'splits' return(splits) } res <- data.frame(distance = result, edges = weights, index = 0:(ns - 1)) attr(res, "Labels") <- Labels res } #' @rdname hadamard #' @export h4st <- function(obj, levels=c('a','c','g','t')){ if (is.matrix(obj)) obj <- as.data.frame(t(obj)) if (inherits(obj,"phyDat")) obj <- as.data.frame(t(as.character(obj))) # if(is.matrix(obj)) obj = as.data.frame(t(obj)) # DNA = as.data.frame(obj) # DNA = t(as.character(obj)) n <- dim(obj)[1] p <- dim(obj)[2] if(p>11) stop("4-state Hadamard conjugation works only efficient for n < 12") DNAX <- matrix(0,n,p) DNAY <- matrix(0,n,p) DNAX[obj==levels[1]] <- 0 DNAX[obj==levels[2]] <- 1 DNAX[obj==levels[3]] <- 1 DNAX[obj==levels[4]] <- 0 DNAY[obj==levels[1]] <- 0 DNAY[obj==levels[2]] <- 1 DNAY[obj==levels[3]] <- 0 DNAY[obj==levels[4]] <- 1 DNAY <- DNAY - DNAY[,p] DNAX <- DNAX - DNAX[,p] DNAY <- abs(DNAY[,-p]) DNAX <- abs(DNAX[,-p]) dy <- DNAY %*% (2^(0:(p-2))) dx <- DNAX %*% (2^(0:(p-2))) INDEX <- dx + 2^(p-1) * dy blub <- table(INDEX) index <- as.numeric(rownames(blub)) + 1 sv <- numeric(4^(p-1)) sv[index] <- blub qv <- matrix(seq2split(sv),2^(p-1),2^(p-1)) sv <- matrix(sv,2^(p-1),2^(p-1)) # q = cbind(transversion = qv[-1,1], transition.1 = diag(qv)[-1], transition.2 = qv[1,-1]) transversion <- transition.1 <- transition.2 <- allSplits(p, colnames(obj)) attr(transversion,"weights") <- qv[-1,1] attr(transition.1,"weights") <- diag(qv)[-1] attr(transition.2,"weights") <- qv[1,-1] # result = list(q = q, qv = qv, sv=sv, n=sum(sv), names=names(obj)) result <- list(transversion = transversion, transition.1=transition.1, transition.2 = transition.2, qv = qv, sv=sv, n=sum(sv), names=names(obj)) result } #' @rdname hadamard #' @export h2st <- function (obj, eps=0.001) { if (!inherits(obj,"phyDat")) stop("Error") if (attr(obj,"nc") != 2)stop("Error") nr <- attr(obj, "nr") #n p <- length(obj) #p weight <- attr(obj, "weight") if (p > 23) stop("Hadamard conjugation works only efficient for n < 24") DNAX <- matrix(0, nr, p-1) for(i in 1:(p-1)) DNAX[,i] <- obj[[i]]-1 DNAX[obj[[p]]==2,] <- 1 - DNAX[obj[[p]]==2,] index <- DNAX %*% (2^(0:(p - 2))) + 1 sv <- numeric(2^(p - 1)) for(i in 1:nr)sv[index[i]] <- sv[index[i]]+ weight[i] qv <- seq2split(sv) if(eps>0){ qv <- qv[-1] ind2 <- which(qv>eps) indT <- c(2L^(0:(p-2)), 2L^(p-1)-1) ind2 <- union(ind2, indT) n2 <- length(ind2) splits <- vector("list", n2) for(i in 1:n2)splits[[i]] <- dec2Bin(ind2[i]) attr(splits, "weights") <- qv[ind2] attr(splits, "labels") <- names(obj) class(splits) <- 'splits' return(splits) } result <- data.frame(edges = qv, splits = sv, index = 0:(2^(p - 1) - 1)) attr(result, "Labels") <- names(obj) result } phangorn/R/bootstrap.R0000644000176200001440000003102713236367307014444 0ustar liggesusers#' Bootstrap #' #' \code{bootstrap.pml} performs (non-parametric) bootstrap analysis and #' \code{bootstrap.phyDat} produces a list of bootstrapped data sets. #' \code{plotBS} plots a phylogenetic tree with the with the bootstrap values #' assigned to the (internal) edges. #' #' It is possible that the bootstrap is performed in parallel, with help of the #' multicore package. Unfortunately the multicore package does not work under #' windows or with GUI interfaces ("aqua" on a mac). However it will speed up #' nicely from the command line ("X11"). #' #' @param x an object of class \code{pml} or \code{phyDat}. #' @param bs number of bootstrap samples. #' @param trees return trees only (default) or whole \code{pml} objects. #' @param multicore logical, whether models should estimated in parallel. #' @param mc.cores The number of cores to use during bootstrap. Only supported #' on UNIX-alike systems. #' @param jumble logical, jumble the order of the sequences. #' @param \dots further parameters used by \code{optim.pml} or #' \code{plot.phylo}. #' @param FUN the function to estimate the trees. #' @param tree The tree on which edges the bootstrap values are plotted. #' @param BStrees a list of trees (object of class "multiPhylo"). #' @param type the type of tree to plot, so far "cladogram", "phylogram" and #' "unrooted" are supported. #' @param bs.col color of bootstrap support labels. #' @param bs.adj one or two numeric values specifying the horizontal and #' vertical justification of the bootstrap labels. #' @param p only plot support values higher than this percentage number #' (default is 80). #' @param frame a character string specifying the kind of frame to be printed #' around the bootstrap values. This must be one of "none" (the default), #' "rect" or "circle". #' @return \code{bootstrap.pml} returns an object of class \code{multi.phylo} #' or a list where each element is an object of class \code{pml}. \code{plotBS} #' returns silently a tree, i.e. an object of class \code{phylo} with the #' bootstrap values as node labels. The argument \code{BStrees} is optional and #' if not supplied the tree with labels supplied in the \code{node.label} slot. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{optim.pml}}, \code{\link{pml}}, #' \code{\link{plot.phylo}}, #' \code{\link{nodelabels}},\code{\link{consensusNet}} and #' \code{\link{SOWH.test}} for parametric bootstrap #' @references Felsenstein J. (1985) Confidence limits on phylogenies. An #' approach using the bootstrap. \emph{Evolution} \bold{39}, 783--791 #' #' Penny D. and Hendy M.D. (1985) Testing methods evolutionary tree #' construction. \emph{Cladistics} \bold{1}, 266--278 #' #' Penny D. and Hendy M.D. (1986) Estimating the reliability of evolutionary #' trees. \emph{Molecular Biology and Evolution} \bold{3}, 403--417 #' @keywords cluster #' @examples #' #' \dontrun{ #' data(Laurasiatherian) #' dm <- dist.logDet(Laurasiatherian) #' tree <- NJ(dm) #' # NJ #' set.seed(123) #' NJtrees <- bootstrap.phyDat(Laurasiatherian, #' FUN=function(x)NJ(dist.logDet(x)), bs=100) #' treeNJ <- plotBS(tree, NJtrees, "phylogram") #' #' # Maximum likelihood #' fit <- pml(tree, Laurasiatherian) #' fit <- optim.pml(fit, rearrangements="NNI") #' set.seed(123) #' bs <- bootstrap.pml(fit, bs=100, optNni=TRUE) #' treeBS <- plotBS(fit$tree,bs) #' #' # Maximum parsimony #' treeMP <- pratchet(Laurasiatherian) #' treeMP <- acctran(treeMP, Laurasiatherian) #' set.seed(123) #' BStrees <- bootstrap.phyDat(Laurasiatherian, pratchet, bs = 100) #' treeMP <- plotBS(treeMP, BStrees, "phylogram") #' add.scale.bar() #' #' # export tree with bootstrap values as node labels #' # write.tree(treeBS) #' } #' #' @rdname bootstrap.pml #' @export bootstrap.pml <- function (x, bs = 100, trees = TRUE, multicore=FALSE, mc.cores = NULL, ...) { if(multicore && is.null(mc.cores)){ mc.cores <- detectCores() } data <- x$data weight <- attr(data, "weight") v <- rep(seq_along(weight), weight) BS <- vector("list", bs) for (i in 1:bs) BS[[i]] <- tabulate(sample(v, replace = TRUE), length(weight)) pmlPar <- function(weights, fit, trees = TRUE, ...) { data <- fit$data ind <- which(weights > 0) data <- getRows(data, ind) attr(data, "weight") <- weights[ind] fit <- update(fit, data = data) fit <- optim.pml(fit, ...) if (trees) { tree <- fit$tree return(tree) } attr(fit, "data") <- NULL fit } eval.success <- FALSE if (!eval.success & multicore) { res <- mclapply(BS, pmlPar, x, trees = trees, ..., mc.cores = mc.cores) eval.success <- TRUE } if (!eval.success) res <- lapply(BS, pmlPar, x, trees = trees, ...) if (trees) { class(res) <- "multiPhylo" res <- .compressTipLabel(res) # save memory } res } #' @rdname bootstrap.pml #' @export bootstrap.phyDat <- function(x, FUN, bs = 100, multicore=FALSE, mc.cores = NULL, jumble=TRUE, ...) { if(multicore && is.null(mc.cores)){ mc.cores <- detectCores() } weight <- attr(x, "weight") v <- rep(seq_along(weight), weight) BS <- vector("list", bs) for(i in 1:bs)BS[[i]] <- tabulate(sample(v, replace=TRUE),length(weight)) if(jumble){ J <- vector("list", bs) l <- length(x) for(i in 1:bs) J[[i]] <- list(BS[[i]], sample(l)) } fitPar <- function(weights, data, ...){ ind <- which(weights > 0) data <- getRows(data, ind) attr(data, "weight") <- weights[ind] FUN(data,...) } fitParJumble <- function(J, data, ...){ ind <- which(J[[1]] > 0) data <- getRows(data, ind) attr(data, "weight") <- J[[1]][ind] data <- subset(data, J[[2]]) FUN(data,...) } if(multicore){ if(jumble) res <- mclapply(J, fitPar, x, ..., mc.cores = mc.cores) else res <- mclapply(BS, fitPar, x, ..., mc.cores = mc.cores) } else{ if(jumble) res <- lapply(J, fitParJumble, x, ...) else res <- lapply(BS, fitPar, x, ...) } if(class(res[[1]]) == "phylo"){ class(res) <- "multiPhylo" res <- .compressTipLabel(res) # save memory } res } matchEdges <- function(tree1, tree2){ bp1 <- bip(tree1) bp2 <- bip(tree2) l <- length(tree1$tip.label) fn <- function(x, y){ if(x[1]==1)return(x) else return(y[-x]) } bp1[] <- lapply(bp1, fn, 1:l) bp2[] <- lapply(bp2, fn, 1:l) match(bp1, bp2) } checkLabels <- function(tree, tip){ ind <- match(tip, tree$tip.label) if (any(is.na(ind)) | length(tree$tip.label) != length(tip)) stop("tree has different labels") tree$tip.label <- tree$tip.label[ind] ind2 <- match(seq_along(ind), tree$edge[, 2]) tree$edge[ind2, 2] <- order(ind) tree } #' @rdname bootstrap.pml #' @export plotBS <- function (tree, BStrees, type = "unrooted", bs.col = "black", bs.adj = NULL, p=50, frame="none",...) { type <- match.arg(type, c("phylogram", "cladogram", "fan", "unrooted", "radial")) if (type == "phylogram" | type == "cladogram") { if (!is.rooted(tree) & !is.null(tree$edge.length)) tree2 <- midpoint(tree) else tree2 <- tree plot(tree2, type = type, ...) } else plot(tree, type = type, ...) if(hasArg(BStrees)){ BStrees <- .uncompressTipLabel(BStrees) # check if needed if(any(is.rooted(BStrees)))BStrees <- unroot(BStrees) # if(any(unlist(lapply(BStrees, is.rooted)))){ # BStrees <- lapply(BStrees, unroot) # } x <- prop.clades(tree, BStrees) x <- round((x/length(BStrees)) * 100) tree$node.label <- x } else{ if(is.null(tree$node.label))stop("You need to supply 'trees' or the tree needs support-values as node.label") x <- tree$node.label } label <- c(rep(0, length(tree$tip.label)), x) ind <- get("last_plot.phylo", envir = .PlotPhyloEnv)$edge[, 2] if (type == "phylogram" | type == "cladogram") { root <- getRoot(tree) label <- c(rep(0, length(tree$tip.label)), x) label[root] <- 0 ind2 <- matchEdges(tree2, tree) label <- label[ind2] ind <- which(label > p) # browser() if (is.null(bs.adj)) bs.adj <- c(1, 1) if(length(ind)>0)nodelabels(text = label[ind], node = ind, frame = frame, col = bs.col, adj = bs.adj, ...) } else { if (is.null(bs.adj)) bs.adj <- c(0.5, 0.5) ind2 <- which(label[ind]>p) if(length(ind2>0))edgelabels(label[ind][ind2],ind2, frame = frame, col = bs.col, adj = bs.adj, ...) } invisible(tree) } #' Maximum clade credibility tree #' #' \code{maxCladeCred} computes the maximum clade credibility tree from a #' sample of trees. #' #' So far just the best tree is returned. No annotations or transformations of #' edge length are performed. #' #' If a list of partition is provided then the clade credibility is computed #' for the trees in x. #' #' @param x \code{x} is an object of class \code{multiPhylo} or \code{phylo} #' @param tree logical indicating whether return the tree with the clade #' credibility (default) or the clade credibility score for all trees. #' @param rooted logical, if FALSE the tree with highest maximum bipartition #' credibility is returned. #' @param part a list of partitions as returned by \code{prop.part} #' @return a tree (an object of class \code{phylo}) with the highest clade #' credibility or a numeric vector of clade credibilities for each tree. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{consensus}}, \code{\link{consensusNet}}, #' \code{\link{prop.part}} #' @keywords cluster #' @examples #' #' #' data(Laurasiatherian) #' set.seed(42) #' bs <- bootstrap.phyDat(Laurasiatherian, FUN = function(x)upgma(dist.hamming(x)), #' bs=100) #' #' strict_consensus <- consensus(bs) #' majority_consensus <- consensus(bs, p=.5) #' max_clade_cred <- maxCladeCred(bs) #' par(mfrow = c(1,3), mar = c(1,4,1,1)) #' plot(strict_consensus, main="Strict consensus tree") #' plot(majority_consensus, main="Majority consensus tree") #' plot(max_clade_cred, main="Maximum clade credibility tree") #' #' # compute clade credibility for trees given a prop.part object #' pp <- prop.part(bs) #' tree <- rNNI(bs[[1]], 20) #' maxCladeCred(c(tree, bs[[1]]), tree=FALSE, part = pp) #' # first value likely be -Inf #' #' @export maxCladeCred maxCladeCred <- function(x, tree=TRUE, part=NULL, rooted=TRUE){ if(inherits(x, "phylo")) x <- c(x) if (is.null(part)){ if (!rooted) pp <- unroot(x) %>% prop.part else pp <- prop.part(x) } else pp <- part pplabel <- attr(pp, "labels") if(!rooted)pp <- oneWise(pp) x <- .uncompressTipLabel(x) class(x) <- NULL m <- max(attr(pp, "number")) nb <- log( attr(pp, "number") / m ) l <- length(x) res <- numeric(l) for(i in 1:l){ tmp <- checkLabels(x[[i]], pplabel) if(!rooted)tmp <- unroot(tmp) ppi <- prop.part(tmp) # trees[[i]] if(!rooted)ppi <- oneWise(ppi) indi <- fmatch(ppi, pp) if(any(is.na(indi))) res[i] <- -Inf else res[i] <- sum(nb[indi]) } if(tree) { k <- which.max(res) tr <- x[[k]] attr(tr, "clade.credibility") <- res[k] return(tr) } res } mcc <- maxCladeCred cladeMatrix <- function(x, rooted=FALSE){ if(!rooted) x <- unroot(x) pp <- prop.part(x) pplabel <- attr(pp, "labels") if(!rooted)pp <- oneWise(pp) x <- .uncompressTipLabel(x) nnodes <- Nnode(x) class(x) <- NULL #nnodes <- sapply(x, Nnode) l <- length(x) from <- cumsum(c(1, nnodes[-l])) to <- cumsum(nnodes) ivec <- integer(to[l]) pvec <- c(0,to) res <- vector("list", l) k <- 1 for(i in 1:l){ ppi <- prop.part(x[[i]]) if(!rooted)ppi <- oneWise(ppi) indi <- sort(fmatch(ppi, pp)) ivec[from[i]:to[i]] <- indi } X <- sparseMatrix(i=ivec, p=pvec, dims=c(length(pp),l)) list(X=X, prop.part=pp) } moving_average <- function(obj, window=50){ fun <- function(x){ cx <- c(0, cumsum(x)) (cx[(window+1):length(cx)] - cx[1:(length(cx)-window)])/(window) } res <- apply(obj$X, 1, fun) rownames(res) <- c() } phangorn/R/lento.R0000644000176200001440000000623113207043151013531 0ustar liggesusers#' Lento plot #' #' The lento plot represents support and conflict of splits/bipartitions. #' #' #' @param obj an object of class phylo, multiPhylo or splits #' @param xlim graphical parameter #' @param ylim graphical parameter #' @param main graphical parameter #' @param sub graphical parameter #' @param xlab graphical parameter #' @param ylab graphical parameter #' @param bipart plot bipartition information. #' @param trivial logical, whether to present trivial splits (default is #' FALSE). #' @param col color for the splits / bipartition. #' @param \dots Further arguments passed to or from other methods. #' @return lento returns a plot. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{as.splits}, \link{hadamard}} #' @references Lento, G.M., Hickson, R.E., Chambers G.K., and Penny, D. (1995) #' Use of spectral analysis to test hypotheses on the origin of pinninpeds. #' \emph{Molecular Biology and Evolution}, \bold{12}, 28-52. #' @keywords cluster plot #' @examples #' #' data(yeast) #' yeast.ry <- acgt2ry(yeast) #' splits.h <- h2st(yeast.ry) #' lento(splits.h, trivial=TRUE) #' #' @export lento lento <- function (obj, xlim = NULL, ylim = NULL, main = "Lento plot", sub = NULL, xlab = NULL, ylab = NULL, bipart=TRUE, trivial=FALSE, col = rgb(0,0,0,.5), ...) { if (inherits(obj,"phylo")){ if(inherits(obj,"phylo",TRUE)==1) obj <- as.splits(obj)[obj$edge[,2]] obj <- as.splits(obj) } if (inherits(obj,"multiPhylo")) obj <- as.splits(obj) labels <- attr(obj, "labels") l <- length(labels) if(!trivial){ triv <- lengths(obj) ind <- logical(length(obj)) ind[(triv >1) & (triv < (l-1))] <- TRUE if(length(col)==length(obj)) col <- col[ind] obj <- obj[ind] } CM <- compatible(obj) support <- attr(obj, "weights") if (is.null(support)) support <- rep(1, length(obj)) conflict <- -as.matrix(CM) %*% support n <- length(support) if (is.null(ylim)) { eps <- (max(support) - min(conflict)) * 0.05 ylim <- c(min(conflict) - eps, max(support) + eps) } if (is.null(xlim)) { xlim <- c(0, n + 1) } ord <- order(support, decreasing = TRUE) support <- support[ord] conflict <- conflict[ord] if(length(col)==length(obj)) col <- col[ord] plot.new() plot.window(xlim, ylim) title(main = main, sub = sub, xlab = xlab, ylab = ylab, ...) segments(0:(n - 1), support, y1 = conflict, ...) segments(1:n, support, y1 = conflict, ...) segments(0:(n - 1), support, x1 = 1:n, ...) segments(0:(n - 1), conflict, x1 = 1:n, ...) abline(h = 0) axis(2, ...) aty <- diff(ylim)/(l+1) at <- min(ylim) + (1:l) * aty if(bipart){ Y <- rep(at, n) X <- rep((1:n)-.5, each=l) Circles <- matrix(1, l, n) for(i in 1:n) Circles[obj[[ord[i]]],i] <- 19 # axis(4, labels=labels, at=at) col <- rep(col, each=l) text(x=n+.1,y=at, labels, pos=4, ...) points(X,Y,pch = as.numeric(Circles), col = col, ...) } invisible(list(support = cbind(support, conflict), splits=obj[ord])) } phangorn/R/ancestral_pml.R0000644000176200001440000003251213234124374015244 0ustar liggesusers# # ancestral sequences ML # #' Ancestral character reconstruction. #' #' Marginal reconstruction of the ancestral character states. #' #' The argument "type" defines the criterion to assign the internal nodes. For #' \code{ancestral.pml} so far "ml" and (empirical) "bayes" and for #' \code{ancestral.pars} "MPR" and "ACCTRAN" are possible. #' #' With parsimony reconstruction one has to keep in mind that there will be #' often no unique solution. #' #' For further details see vignette("Ancestral"). #' #' @param object an object of class pml #' @param tree a tree, i.e. an object of class pml #' @param data an object of class phyDat #' @param type method used to assign characters to internal nodes, see details. #' @param i plots the i-th site pattern of the \code{data}. #' @param col a vector containing the colors for all possible states. #' @param cex.pie a numeric defining the size of the pie graphs #' @param pos a character string defining the position of the legend #' @param cost A cost matrix for the transitions between two states. #' @param return return a \code{phyDat} object or matrix of probabilities. #' @param \dots Further arguments passed to or from other methods. #' @return %A matrix containing the the estimates character states. An object #' of class "phyDat", containing the ancestral states of all nodes. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{pml}}, \code{\link{parsimony}}, \code{\link[ape]{ace}}, #' \code{\link[ape]{root}} #' @references Felsenstein, J. (2004). \emph{Inferring Phylogenies}. Sinauer #' Associates, Sunderland. #' #' Swofford, D.L., Maddison, W.P. (1987) Reconstructing ancestral character #' states under Wagner parsimony. \emph{Math. Biosci.} \bold{87}: 199--229 #' #' Yang, Z. (2006). \emph{Computational Molecular evolution}. Oxford University #' Press, Oxford. #' @keywords ~kwd1 ~kwd2 #' @examples #' #' example(NJ) #' fit <- pml(tree, Laurasiatherian) #' anc.ml <- ancestral.pml(fit, type = "ml") #' anc.p <- ancestral.pars(tree, Laurasiatherian) #' \dontrun{ #' require(seqLogo) #' seqLogo( t(subset(anc.ml, 48, 1:20)[[1]]), ic.scale=FALSE) #' seqLogo( t(subset(anc.p, 48, 1:20)[[1]]), ic.scale=FALSE) #' } #' # plot the first site pattern #' plotAnc(tree, anc.ml, 1) #' # plot the third character #' plotAnc(tree, anc.ml, attr(anc.ml, "index")[3]) #' #' @rdname ancestral.pml #' @export ancestral.pml <- function(object, type="marginal", return="prob") { call <- match.call() pt <- match.arg(type, c("marginal", "joint", "ml", "bayes")) tree <- object$tree INV <- object$INV inv <- object$inv data <- getCols(object$data, tree$tip.label) data_type <- attr(data, "type") if (is.null(attr(tree, "order")) || attr(tree, "order") == "cladewise") tree <- reorder(tree, "postorder") nTips <- length(tree$tip.label) node <- tree$edge[, 1] edge <- tree$edge[, 2] m <- length(edge) + 1 # max(edge) w <- object$w g <- object$g l <- length(w) nr <- attr(data, "nr") nc <- attr(data, "nc") dat <- vector(mode = "list", length = m*l) result <- vector(mode = "list", length = m) dim(dat) <- c(l,m) x <- attributes(data) label <- as.character(1:m) nam <- tree$tip.label label[seq_along(nam)] <- nam x[["names"]] <- label tmp <- length(data) if(return!="phyDat")result <- new2old.phyDat(data) else result[1:nTips] <- data eig <- object$eig bf <- object$bf el <- tree$edge.length P <- getP(el, eig, g) nr <- as.integer(attr(data, "nr")) nc <- as.integer(attr(data, "nc")) node <- as.integer(node - min(node)) edge <- as.integer(edge - 1) nTips <- as.integer(length(tree$tip.label)) mNodes <- as.integer(max(node) + 1) contrast <- attr(data, "contrast") # proper format eps <- 1.0e-5 ind1 <- which( apply(contrast, 1, function(x)sum(x > eps)) == 1L) ind2 <- which( contrast[ind1, ] > eps, arr.ind = TRUE) # pos <- ind2[match(as.integer(1L:ncol(contrast)), ind2[,2]),1] pos <- ind2[match(seq_len(ncol(contrast)), ind2[,2]),1] nco <- as.integer(dim(contrast)[1]) for(i in 1:l)dat[i,(nTips + 1):m] <- .Call("LogLik2", data, P[i,], nr, nc, node, edge, nTips, mNodes, contrast, nco, PACKAGE = "phangorn") parent <- tree$edge[, 1] child <- tree$edge[, 2] nTips <- min(parent) - 1 # in C with scaling for(i in 1:l){ for (j in (m - 1):1) { if (child[j] > nTips){ tmp2 <- (dat[[i, parent[j]]]/(dat[[i,child[j]]] %*% P[[i,j]])) dat[[i, child[j]]] <- (tmp2 %*% P[[i,j]]) * dat[[i, child[j]]] } } } for (j in unique(parent)) { tmp <- matrix(0, nr, nc) if(inv>0) tmp <- as.matrix(INV) * inv for(i in 1:l){ # scaling!!! tmp <- tmp + w[i] * dat[[i, j]] } if ((pt == "bayes") || (pt == "marginal")) tmp <- tmp * rep(bf, each=nr) tmp <- tmp / rowSums(tmp) if(return=="phyDat"){ if(data_type=="DNA"){ tmp <- p2dna(tmp) # prob2fitchCoding(tmp) tmp <- fitchCoding2ambiguous(tmp) } else tmp <- pos[max.col(tmp)] # [apply(tmp, 1, which.max)] } result[[j]] <- tmp } attributes(result) <- x attr(result, "call") <- call result } #joint_reconstruction <- function(object){ # #} # in ancestral.pml and ancestral.pars ancestral2phyDat <- function(x) { eps <- 1.0e-5 contr <- attr(x, "contrast") # a bit too complicated ind1 <- which( apply(contr, 1, function(x)sum(x > eps)) == 1L) ind2 <- which( contr[ind1, ] > eps, arr.ind = TRUE) # pos <- ind2[match(as.integer(1L:ncol(contr)), ind2[,2]),1] pos <- ind2[match(seq_len(ncol(contr)), ind2[,2]),1] # only first hit # res <- lapply(x, function(x, pos) pos[apply(x, 1, which.max)], pos) res <- lapply(x, function(x, pos) pos[max.col(x)], pos) attributes(res) <- attributes(x) return(res) } # in ancestral.pml # variante fuer parsimony und ambiguous DNA, ersetzt durch p2dna prob2fitchCoding <- function(x, eps=0.999){ row_max <- apply(x, 1, max) x <- x / row_max as.vector((x>eps) %*% c(1L, 2L, 4L, 8L)) } fitchCoding2ambiguous <- function(x, type="DNA"){ y <- c(1L, 2L, 4L, 8L, 8L, 3L, 5L, 9L, 6L, 10L, 12L, 7L, 11L, 13L, 14L, 15L, 15L, 15L) fmatch(x, y) } fitchCoding2ambiguous2 <- function(x, type="DNA"){ y <- c(1L, 2L, 4L, 8L, 8L, 3L, 5L, 9L, 6L, 10L, 12L, 7L, 11L, 13L, 14L, 15L) dna <- c("a", "c", "g", "t", "t", "m", "r", "w", "s", "y", "k", "v", "h", "d", "b", "n") rna <- c("a", "c", "g", "u", "u", "m", "r", "w", "s", "y", "k", "v", "h", "d", "b", "n") res <- switch(type, "DNA" = dna[match(x,y)], "RNA" = rna[match(x,y)]) res } #' @rdname ancestral.pml #' @export ancestral.pars <- function (tree, data, type = c("MPR", "ACCTRAN"), cost=NULL, return="prob") { call <- match.call() type <- match.arg(type) if (type == "ACCTRAN") res <- ptree(tree, data, retData = TRUE)[[2]] # if (type == "MPR") # res = mpr(tree, data) if (type == "MPR"){ res <- mpr(tree, data, cost=cost, return=return) attr(res, "call") <- call return(res) } l <- length(tree$tip.label) data_type <- attr(data, "type") x <- attributes(data) m <- dim(res)[2] label <- as.character(1:m) nam <- tree$tip.label label[seq_along(nam)] <- nam x[["names"]] <- label nc <- attr(data, "nc") result <- vector("list", m) if(data_type=="DNA"){ result[1:l] <- subset(data, nam) for(i in (l+1) : m){ result[[i]] <- fitchCoding2ambiguous(res[,i]) } # phyDat needs new2old <- #if(return=="prob") tmp <- contrast[tmp, , drop=FALSE] } else { Z <- unique(as.vector(res)) tmp <- t(sapply(Z, function(x)dec2bin(x, nc))) tmp <- tmp / rowSums(tmp) dimnames(tmp) <- list(Z, attr(data, "levels")) for(i in seq_len(m)){ result[[i]] <- tmp[as.character(res[,i]),,drop=FALSE] rownames(result[[i]]) <- NULL } } attributes(result) <- x attr(result, "call") <- call if(data_type!="DNA" & return=="phyDat"){ contrast <- attr(data, "contrast") # proper format eps <- 1.0e-5 ind1 <- which( apply(contrast, 1, function(x)sum(x > eps)) == 1L) ind2 <- which( contrast[ind1, ] > eps, arr.ind = TRUE) # pos <- ind2[match(as.integer(1L:ncol(contrast)), ind2[,2]),1] pos <- ind2[match(seq_len(ncol(contrast)), ind2[,2]),1] result[1:l] <- subset(data, nam) for(i in (l+1) : length(result)) { tmp <- result[[i]] result[[i]] <- pos[max.col(tmp)] } } if(data_type=="DNA" & return=="prob"){ result <- new2old.phyDat(result) for(i in seq_len(length(result))) { tmp <- result[[i]] tmp <- tmp / rowSums(tmp) result[[i]] <- tmp } } result } #' @rdname ancestral.pml #' @export pace <- ancestral.pars mpr.help <- function (tree, data, cost=NULL) { tree<- reorder(tree, "postorder") if (!inherits(data,"phyDat")) stop("data must be of class phyDat") levels <- attr(data, "levels") l <- length(levels) if (is.null(cost)) { cost <- matrix(1, l, l) cost <- cost - diag(l) } weight <- attr(data, "weight") p <- attr(data, "nr") kl <- TRUE i <- 1 dat <- prepareDataSankoff(data) for (i in seq_along(dat)) storage.mode(dat[[i]]) <- "double" tmp <- fit.sankoff(tree, dat, cost, returnData='data') p0 <- tmp[[1]] datf <- tmp[[2]] datp <- pnodes(tree, datf, cost) nr <- attr(data, "nr") nc <- attr(data, "nc") node <- tree$edge[, 1] edge <- tree$edge[, 2] node <- as.integer(node - 1) edge <- as.integer(edge - 1) res <- .Call("sankoffMPR", datf, datp, as.numeric(cost), as.integer(nr), as.integer(nc), node, edge, PACKAGE="phangorn") root <- getRoot(tree) res[[root]] <- datf[[root]] res } mpr <- function(tree, data, cost=NULL, return="prob"){ data <- subset(data, tree$tip.label) att <- attributes(data) type <- att$type nr <- att$nr nc <- att$nc res <- mpr.help(tree,data,cost) l <- length(tree$tip.label) m <- length(res) label <- as.character(1:m) nam <- tree$tip.label label[seq_along(nam)] <- nam att[["names"]] <- label ntips <- length(tree$tip.label) contrast <- att$contrast eps <- 5e-6 rm <- apply(res[[ntips+1]], 1, min) RM <- matrix(rm,nr, nc) + eps # if(return!="prob" & type=="DNA"){ # for(i in (ntips+1):m){ # tmp <- as.numeric(res[[i]] < RM) # tmp <- prob2fitchCoding(tmp) # tmp <- fitchCoding2ambiguous(tmp) # res[[i]] <- tmp # } # browser() # res[1:ntips] <- data # attributes(res) <- att # return(res) # } fun <- function(X){ rs <- rowSums(X) #apply(X, 1, sum) X / rs } for(i in 1:ntips) res[[i]] <- contrast[data[[i]],,drop=FALSE] for(i in (ntips+1):m) res[[i]][] <- as.numeric(res[[i]] < RM) if(return=="prob"){ # for(i in 1:ntips) res[[i]] <- contrast[data[[i]],,drop=FALSE] if(return=="prob") res <- lapply(res, fun) } # else res[1:ntips] <- data[1:ntips] attributes(res) <- att fun2 <- function(x){ x <- p2dna(x) # prob2fitchCoding(x) fitchCoding2ambiguous(x) } if(return!="prob"){ if(type=="DNA"){ res <- lapply(res, fun2) attributes(res) <- att } else res <- ancestral2phyDat(res) res[1:ntips] <- data } res } #' @rdname ancestral.pml #' @param site.pattern logical, plot i-th site pattern or i-th site #' @export plotAnc <- function (tree, data, i = 1, site.pattern = TRUE, col=NULL, cex.pie=par("cex"), pos="bottomright", ...) { y <- subset(data, , i, site.pattern=site.pattern) # args <- list(...) # CEX <- if ("cex" %in% names(args)) # args$cex # else par("cex") CEX <- cex.pie xrad <- CEX * diff(par("usr")[1:2])/50 levels <- attr(data, "levels") nc <- attr(data, "nc") y <- matrix(unlist(y[]), ncol = nc, byrow = TRUE) l <- dim(y)[1] dat <- matrix(0, l, nc) for (i in 1:l) dat[i, ] <- y[[i]] plot(tree, label.offset = 1.1 * xrad, plot = FALSE, ...) lastPP <- get("last_plot.phylo", envir = .PlotPhyloEnv) XX <- lastPP$xx YY <- lastPP$yy xrad <- CEX * diff(lastPP$x.lim * 1.1)/50 par(new = TRUE) plot(tree, label.offset = 1.1 * xrad, plot = TRUE, ...) if(is.null(col)) col <- rainbow(nc) if(length(col)!=nc) warning("Length of color vector differs from number of levels!") BOTHlabels(pie = y, XX = XX, YY = YY, adj = c(0.5, 0.5), frame = "rect", pch = NULL, sel = seq_along(XX), thermo = NULL, piecol = col, col = "black", bg = "lightblue", horiz = FALSE, width = NULL, height = NULL, cex=cex.pie) if(!is.null(pos))legend(pos, levels, text.col = col) } phangorn/R/modelTest.R0000644000176200001440000002511013201424001014334 0ustar liggesusersaic.weights <- function(aic){ diff.aic <- aic-min(aic) exp(-0.5 * diff.aic) / sum(exp(-0.5 * diff.aic)) } #' ModelTest #' #' Comparison of different nucleotide or amino acid substitution models #' #' \code{modelTest} estimates all the specified models for a given tree and #' data. When the mclapply is available, the computations are done in #' parallel. \code{modelTest} runs each model in one thread. This is may not #' work within a GUI interface and will not work under Windows. #' #' @aliases modelTest AICc #' @param object an object of class phyDat or pml #' @param tree a phylogenetic tree. #' @param model a vector containing the substitution models to compare with #' each other or "all" to test all available models #' @param G logical, TRUE (default) if (discrete) Gamma model should be tested #' @param I logical, TRUE (default) if invariant sites should be tested #' @param FREQ logical, FALSE (default) if TRUE amino acid frequencies will be #' estimated. #' @param k number of rate classes #' @param control A list of parameters for controlling the fitting process. #' @param multicore logical, whether models should estimated in parallel. #' @param mc.cores The number of cores to use, i.e. at most how many child #' processes will be run simultaneously. Must be at least one, and #' parallelization requires at least two cores. #' @return A data.frame containing the log-likelihood, number of estimated #' parameters, AIC, AICc and BIC all tested models. The data.frame has an #' attributes "env" which is an environment which contains all the trees, the #' data and the calls to allow get the estimated models, e.g. as a starting #' point for further analysis (see example). #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{pml}}, \code{\link{anova}}, \code{\link[stats]{AIC}} #' @references Burnham, K. P. and Anderson, D. R (2002) \emph{Model selection #' and multimodel inference: a practical information-theoretic approach}. 2nd #' ed. Springer, New York #' #' Posada, D. and Crandall, K.A. (1998) MODELTEST: testing the model of DNA #' substitution. \emph{Bioinformatics} \bold{14(9)}: 817-818 #' #' Posada, D. (2008) jModelTest: Phylogenetic Model Averaging. \emph{Molecular #' Biology and Evolution} \bold{25}: 1253-1256 #' #' Darriba D., Taboada G.L., Doallo R and Posada D. (2011) ProtTest 3: fast #' selection of best-fit models of protein evolution. . \emph{Bioinformatics} #' \bold{27}: 1164-1165 #' @keywords cluster #' @examples #' #' \dontrun{ #' example(NJ) #' (mT <- modelTest(Laurasiatherian, tree)) #' #' # some R magic #' env <- attr(mT, "env") #' ls(env=env) #' (F81 <- get("F81+G", env)) # a call #' eval(F81, env=env) #' #' data(chloroplast) #' (mTAA <- modelTest(chloroplast, model=c("JTT", "WAG", "LG"))) #' #' # test all available amino acid models #' (mTAA_all <- modelTest(chloroplast, model="all", multicore=TRUE, mc.cores=2)) #' } #' #' @export modelTest modelTest <- function (object, tree = NULL, model = c("JC", "F81", "K80", "HKY", "SYM", "GTR"), G = TRUE, I = TRUE, FREQ=FALSE, k = 4, control = pml.control(epsilon = 1e-08, maxit = 10, trace = 1), multicore = FALSE, mc.cores = NULL) { # multicore <- mc.cores > 1L if(multicore && is.null(mc.cores)){ mc.cores <- detectCores() } if (inherits(object,"phyDat")) data <- object if (inherits(object,"pml")) { data <- object$data if (is.null(tree)) tree <- object$tree } if(attr(data, "type")=="DNA") type <- c("JC", "F81", "K80", "HKY", "TrNe", "TrN", "TPM1", "K81", "TPM1u", "TPM2", "TPM2u", "TPM3", "TPM3u", "TIM1e", "TIM1", "TIM2e", "TIM2", "TIM3e", "TIM3", "TVMe", "TVM", "SYM", "GTR") if(attr(data, "type")=="AA") type <- .aamodels if( (length(model)==1) && model == "all") model <- type model <- match.arg(model, type, TRUE) env <- new.env() assign("data", data, envir=env) if (is.null(tree)) tree <- NJ(dist.hamming(data)) else{ if(length(tree$tip.label) > 3) tree <- nnls.phylo(tree, dist.ml(data)) # may need something faster for trees > 500 taxa } trace <- control$trace control$trace <- trace - 1 fit <- pml(tree, data) fit <- optim.pml(fit, control = control) l <- length(model) if(attr(fit$data, "type")=="DNA")FREQ <- FALSE n <- 1L + sum(I + G + (G & I) + FREQ + (FREQ & I) + (FREQ & G) + (FREQ & G & I)) nseq <- sum(attr(data, "weight")) fitPar <- function(model, fit, G, I, k, FREQ) { m <- 1 res <- matrix(NA, n, 6) res <- as.data.frame(res) colnames(res) <- c("Model", "df", "logLik", "AIC", "AICc", "BIC") data.frame(c("Model", "df", "logLik", "AIC", "AICc", "BIC")) calls <- vector("list", n) trees <- vector("list", n) fittmp <- optim.pml(fit, model = model, control = control) res[m, 1] <- model res[m, 2] <- fittmp$df res[m, 3] <- fittmp$logLik res[m, 4] <- AIC(fittmp) res[m, 5] <- AICc(fittmp) res[m, 6] <- AIC(fittmp, k = log(nseq)) calls[[m]] <- fittmp$call trees[[m]] <- fittmp$tree m <- m + 1 if (I) { if(trace>0)print(paste0(model, "+I")) fitI <- optim.pml(fittmp, model = model, optInv = TRUE, control = control) res[m, 1] <- paste0(model, "+I") res[m, 2] <- fitI$df res[m, 3] <- fitI$logLik res[m, 4] <- AIC(fitI) res[m, 5] <- AICc(fitI) res[m, 6] <- AIC(fitI, k = log(nseq)) calls[[m]] <- fitI$call trees[[m]] <- fitI$tree m <- m + 1 } if (G) { if(trace>0)print(paste0(model, "+G")) fitG <- update(fittmp, k = k) fitG <- optim.pml(fitG, model = model, optGamma = TRUE, control = control) res[m, 1] <- paste0(model, "+G") res[m, 2] <- fitG$df res[m, 3] <- fitG$logLik res[m, 4] <- AIC(fitG) res[m, 5] <- AICc(fitG) res[m, 6] <- AIC(fitG, k = log(nseq)) calls[[m]] <- fitG$call trees[[m]] <- fitG$tree m <- m + 1 } if (G & I) { if(trace>0)print(paste0(model, "+G+I")) fitGI <- update(fitI, k = k) fitGI <- optim.pml(fitGI, model = model, optGamma = TRUE, optInv = TRUE, control = control) res[m, 1] <- paste0(model, "+G+I") res[m, 2] <- fitGI$df res[m, 3] <- fitGI$logLik res[m, 4] <- AIC(fitGI) res[m, 5] <- AICc(fitGI) res[m, 6] <- AIC(fitGI, k = log(nseq)) calls[[m]] <- fitGI$call trees[[m]] <- fitGI$tree m <- m + 1 } if (FREQ) { if(trace>0)print(paste0(model, "+F")) fitF <- optim.pml(fittmp, model = model, optBf = TRUE, control = control) res[m, 1] <- paste0(model, "+F") res[m, 2] <- fitF$df res[m, 3] <- fitF$logLik res[m, 4] <- AIC(fitF) res[m, 5] <- AICc(fitF) res[m, 6] <- AIC(fitF, k = log(nseq)) calls[[m]] <- fitF$call trees[[m]] <- fitF$tree m <- m + 1 } if (FREQ & I) { if(trace>0)print(paste0(model, "+I+F")) fitIF <- update(fitF, inv = fitI$inv) fitIF <- optim.pml(fitIF, model=model, optBf = TRUE, optInv = TRUE, control = control) res[m, 1] <- paste0(model, "+I+F") res[m, 2] <- fitIF$df res[m, 3] <- fitIF$logLik res[m, 4] <- AIC(fitIF) res[m, 5] <- AICc(fitIF) res[m, 6] <- AIC(fitIF, k = log(nseq)) calls[[m]] <- fitIF$call trees[[m]] <- fitIF$tree m <- m + 1 } if (FREQ & G) { if(trace>0)print(paste0(model, "+G+F")) fitGF <- update(fitF, k=k, shape=fitG$shape) fitGF <- optim.pml(fitGF, model = model, optBf = TRUE, optGamma = TRUE, control = control) res[m, 1] <- paste0(model, "+G+F") res[m, 2] <- fitGF$df res[m, 3] <- fitGF$logLik res[m, 4] <- AIC(fitGF) res[m, 5] <- AICc(fitGF) res[m, 6] <- AIC(fitGF, k = log(nseq)) calls[[m]] <- fitGF$call trees[[m]] <- fitGF$tree m <- m + 1 } if (FREQ & G & I) { if(trace>0)print(paste0(model, "+G+I+F")) fitGIF <- update(fitIF, k=k) fitGIF <- optim.pml(fitGIF, model = model, optBf = TRUE, optInv = TRUE, optGamma = TRUE, control = control) res[m, 1] <- paste0(model, "+G+I+F") res[m, 2] <- fitGIF$df res[m, 3] <- fitGIF$logLik res[m, 4] <- AIC(fitGIF) res[m, 5] <- AICc(fitGIF) res[m, 6] <- AIC(fitGIF, k = log(nseq)) calls[[m]] <- fitGIF$call trees[[m]] <- fitGIF$tree m <- m + 1 } list(res, trees, calls) } eval.success <- FALSE if (!eval.success & multicore) { # !require(parallel) || # if (.Platform$GUI != "X11") { # warning("package 'parallel' not found or GUI is used, \n analysis is performed in serial") # } # else { RES <- mclapply(model, fitPar, fit, G, I, k, FREQ, mc.cores=mc.cores) eval.success <- TRUE # } } if (!eval.success) RES <- lapply(model, fitPar, fit, G, I, k, FREQ) RESULT <- matrix(NA, n * l, 8) RESULT <- as.data.frame(RESULT) colnames(RESULT) <- c("Model", "df", "logLik", "AIC", "AICw", "AICc", "AICcw", "BIC") for (i in 1:l) RESULT[((i - 1) * n + 1):(n * i), c(1,2,3,4,6,8)] <- RES[[i]][[1]] RESULT[,5] <- aic.weights(RESULT[,4]) RESULT[,7] <- aic.weights(RESULT[,6]) for(i in 1:l){ for(j in 1:n){ mo <- RES[[i]][[1]][j,1] tname <- paste0("tree_", mo) tmpmod <- RES[[i]][[3]][[j]] tmpmod["tree"] <- call(tname) if(!is.null(tmpmod[["k"]]))tmpmod["k"] <- k if(attr(data, "type")=="AA") tmpmod["model"] <- RES[[i]][[1]][1,1] assign(tname, RES[[i]][[2]][[j]], envir=env) assign(mo, tmpmod, envir=env) } } attr(RESULT, "env") <- env RESULT } phangorn/R/read.nexus.splits.R0000644000176200001440000004446413201424001016002 0ustar liggesusers## @aliases read.nexus.splits write.nexus.splits write.splits ## read.nexus.networx write.nexus.networx #' Function to import and export splits and networks #' #' \code{read.nexus.splits}, \code{write.nexus.splits}, \code{read.nexus.networx}, \code{write.nexus.networx} #' can be used to import and export splits and networks with nexus format #' and allow to exchange these object with other software like Splitstree. #' \code{write.splits} returns a human readable output. #' #' @param file a file name. #' @param obj An object of class splits. #' @param weights Edge weights. #' @param taxa logical. If TRUE a taxa block is added #' @param append logical. If TRUE the nexus blocks will be added to a file. #' @param splits logical. If TRUE the nexus blocks will be added to a file. #' @param x An object of class splits. #' @param zero.print character which should be printed for zeros. #' @param one.print character which should be printed for ones. #' @param print.labels logical. If TRUE labels are printed. #' @param \dots Further arguments passed to or from other methods. #' @param labels names of taxa. #' @return \code{write.nexus.splits} and \code{write.nexus.networx} write out #' the \code{splits} and \code{networx} object to read with #' other software like Splitstree. #' \code{read.nexus.splits} and \code{read.nexus.networx} return an \code{splits} #' and \code{networx} object. #' @note \code{read.nexus.splits} reads in the splits block of a nexus file. It #' assumes that different co-variables are tab delimited and the bipartition #' are separated with white-space. Comments in square brackets are ignored. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{prop.part}}, \code{\link{lento}}, #' \code{\link{as.splits}}, \code{\link{as.networx}} #' @keywords cluster #' @examples #' #' (sp <- as.splits(rtree(5))) #' write.nexus.splits(sp) #' spl <- allCircularSplits(5) #' plot(as.networx(spl), "2D") #' write.splits(spl, print.labels = FALSE) #' #' @rdname read.nexus.splits #' @export read.nexus.splits <- function(file) { X <- scan(file = file, what = "", sep = "\n", quiet = TRUE) semico <- grep(";", X) X <- gsub("\\[(.*?)\\]", "", X) # get rid of comments i1 <- grep("TAXLABELS", X, ignore.case = TRUE) taxlab <- ifelse(length(i1)>0, TRUE, FALSE) if (taxlab) { end <- semico[semico >= i1][1] x <- X[(i1):end] # assumes not a 'new line' after "TRANSLATE" x <- gsub("TAXLABELS", "", x, ignore.case = TRUE) x <- unlist(strsplit(x, "[,; \t]")) x <- x[nzchar(x)] x <- gsub("['\"]", "", x) xntaxa <- length(x) } sp <- grep("SPLITS;", X, ignore.case = TRUE) spEnd <- grep("END;", X, ignore.case = TRUE) spEnd <- spEnd[spEnd>sp][1] dims <- grep("DIMENSION", X, ignore.case = TRUE) cyc <- grep("CYCLE", X, ignore.case = TRUE) matr <- grep("MATRIX", X, ignore.case = TRUE) format <- grep("FORMAT", X, ignore.case = TRUE) start <- matr[matr>sp][1] + 1 end <- semico[semico>start][1] -1 format <- format[(format>sp) & (format0){ tmp <- X[format] tmp <- gsub("\\;", "", tmp) tmp <- gsub("\\s+", "", tmp) flab <- grepl("labels=left", tmp, ignore.case = TRUE) fwei <- grepl("weights=yes", tmp, ignore.case = TRUE) fcon <- grepl("confidences=yes", tmp, ignore.case = TRUE) fint <- grepl("intervals=yes", tmp, ignore.case = TRUE) # = as.numeric(na.omit(as.numeric(strsplit(tmp, " ")[[1]]))) ind <- cumsum(c(flab, fwei, fcon, fint)) mformat <- sum(c(flab, fwei, fcon, fint)) } if(fint)intervals <- numeric(end - start + 1) if(fcon)confidences <- numeric(end - start + 1) if(flab)labels <- vector("character", end - start + 1) for(i in start:end){ tmp <- X[i] tmp <- sub("\\s+", "", tmp) tmp <- strsplit(tmp, "\t")[[1]] if(flab){ labels[j] <- gsub("'", "", tmp[ind[1]]) %>% as.numeric } if(fwei)weights[j] <- as.numeric(tmp[ind[2]]) if(fcon)confidences[j] <- as.numeric(tmp[ind[3]]) if(fint)intervals[j] <- as.numeric(tmp[ind[4]]) tmp <- tmp[length(tmp)] tmp <- gsub("\\,", "", tmp) res[[j]] <- as.integer(na.omit(as.numeric(strsplit(tmp, " ")[[1]]))) j <- j+1 } if(length(cyc)>0){ tmp <- X[cyc] tmp <- gsub("\\;", "", tmp) tmp <- gsub("CYCLE", "", tmp, ignore.case = TRUE) tmp <- sub("\\s+", "", tmp) cyc <- as.integer(na.omit(as.numeric(strsplit(tmp, " ")[[1]]))) } attr(res, "labels") <- x if(fwei)attr(res, "weights") <- weights if(fint)attr(res, "intervals") <- intervals if(fcon)attr(res, "confidences") <- confidences if(flab)attr(res, "splitlabels") <- labels attr(res, "cycle") <- cyc class(res) <- "splits" res } #' @rdname read.nexus.splits #' @export write.nexus.splits <- function (obj, file = "", weights=NULL, taxa=TRUE, append=FALSE) { taxa.labels <- attr(obj, "labels") ntaxa <- length(taxa.labels) obj <- oneWise(obj, ntaxa) ind <- which(lengths(obj)==ntaxa) # ind <- which(sapply(obj, length)==ntaxa) if(length(ind))obj <- obj[-ind] nsplits <- length(obj) if(is.null(weights))weight <- attr(obj, "weights") if (is.null(weight)) fwei <- FALSE else fwei <- TRUE # if (is.null(weight)) weight = numeric(nsplits) + 100 if(!append){cat("#NEXUS\n\n", file = file) cat("[Splits block for Spectronet or Splitstree]\n", file = file, append = TRUE) cat("[generated by phangorn", packageDescription("phangorn", fields = "Version"),"]\n\n", file = file, append = TRUE) # cat(format(citation("phangorn"), "text"), "]\n\n", # file = file, append = TRUE) } # TAXON BLOCK if(taxa){ cat(paste("BEGIN TAXA;\n\tDIMENSIONS ntax=", ntaxa, ";\n", sep = ""), file = file, append = TRUE) cat("\tTAXLABELS", paste(taxa.labels, sep = " "), ";\nEND;\n\n", file = file, append = TRUE) } # SPLITS BLOCK cat(paste("BEGIN SPLITS;\n\tDIMENSIONS ntax=", ntaxa, " nsplits=", nsplits, ";\n", sep = ""), file = file, append = TRUE) format <- "\tFORMAT labels=left" if(fwei) format <- paste(format, "weights=yes") else format <- paste(format, "weights=no") fcon <- fint <- flab <- FALSE if(!is.null(attr(obj, "confidences"))){ format <- paste(format, "confidences=yes") fcon <- TRUE conf <- attr(obj, "confidences") if(any(is.na(conf))){ conf[is.na(conf)] <- 0 attr(obj, "confidences") <- conf } if(storage.mode(conf) == "character"){ conf[conf==""] <- "0" attr(obj, "confidences") <- conf } } else format <- paste(format, "confidences=no") if(!is.null(attr(obj, "intervals"))){ format <- paste(format, "intervals=yes") fint <- TRUE } else format <- paste(format, "intervals=no") if(!is.null(attr(obj, "splitlabels"))) flab <- TRUE format <- paste(format, ";\n", sep = "") cat(format, file = file, append = TRUE) if(!is.null(attr(obj, "cycle"))){ cycle <- paste(attr(obj, "cycle"), collapse = " ") cat("\tCYCLE\t", cycle, ";\n", sep="", file = file, append = TRUE) } cat("\tMATRIX\n", file = file, append = TRUE) for (i in 1:nsplits){ slab <- ifelse(flab, attr(obj, "splitlabels")[i], i) swei <- ifelse(fwei, paste(weight[i], "\t"), "") scon <- ifelse(fcon, paste(attr(obj, "confidences")[i], "\t"), "") sint <- ifelse(fint, paste(attr(obj, "intervals")[i], "\t"), "") cat("\t\t", slab, "\t", swei, scon, sint, paste(obj[[i]], collapse=" "), ",\n", file = file, append = TRUE, sep = "") } cat("\t;\nEND;\n", file = file, append = TRUE) } #' @rdname read.nexus.splits #' @export write.nexus.networx <- function(obj, file = "", taxa=TRUE, splits=TRUE, append=FALSE){ if(!append){ cat("#NEXUS\n\n", file = file) cat("[Network block for Spectronet or Splitstree]\n", file = file, append = TRUE) cat("[generated by phangorn", packageDescription("phangorn", fields = "Version"),"]\n\n", file = file, append = TRUE) # cat(format(citation("phangorn"), "text"), "]\n\n", # file = file, append = TRUE) } ntaxa <- length(obj$tip.label) # TAXON BLOCK if(taxa){ cat(paste("BEGIN TAXA;\n\tDIMENSIONS NTAX=", ntaxa, ";\n", sep = ""), file = file, append = TRUE) if(splits)taxalabel <- attr(obj$splits, "labels") else taxalabel <- obj$tip.label cat("\tTAXLABELS", paste(taxalabel, sep = " "), ";\nEND;\n\n", file = file, append = TRUE) } # SPLITS BLOCK spl <- obj$splits if(splits){ # spl <- changeOrder(spl, obj$tip.label) # orderSplitLabel write.nexus.splits(spl, file = file, weights=NULL, append = TRUE, taxa=FALSE) } nvertices <- max(obj$edge) # if(is.null(attr(obj, "coords"))) if(is.null(obj$.plot$vertices)) vertices <- coords(obj, "2D") else vertices <- obj$.plot$vertices # y-axis differs between R and SplitsTree vertices[,2] <- -vertices[,2] if(is.null(obj$.plot)) edge.col <- obj$.plot$edge.color else edge.col <- NULL nedges <- nrow(obj$edge) # NETWORK BLOCK cat(paste("BEGIN NETWORK;\nDIMENSIONS ntax=", ntaxa, "\tnvertices=", nvertices, "\tnedges=", nedges,";\n", sep = ""), file = file, append = TRUE) cat("DRAW to_scale;\n", file = file, append = TRUE) cat("TRANSLATE\n", file = file, append = TRUE) if(is.null(obj$translate)){ for(i in 1:ntaxa){ cat(i, " ", obj$tip.label[i], ",\n", sep="", file=file, append=TRUE) } } else { translate <- obj$translate for(i in seq_along(translate$label)){ cat(translate$node[i], " ", translate$label[i], ",\n", sep="", file = file, append = TRUE) } } cat(";\nVERTICES\n", file = file, append = TRUE) for(i in 1:nvertices){ cat(i, "\t", vertices[i,1], "\t", vertices[i,2], ",\n", sep="", file = file, append = TRUE) } if(!is.null(obj$tip.label)){ cat(";\nVLABELS\n", file = file, append = TRUE) if(is.null(obj$translate)){ for(i in 1:ntaxa){ cat(i, "\t", obj$tip.label[i], ",\n", sep="", file = file, append = TRUE) } } else{ for(i in seq_along(translate$node)){ cat(translate$node[i], " ", translate$label[i], ",\n", sep="", file = file, append = TRUE) } } } # cnet$splitIndex if splits = TRUE cat(";\nEDGES\n", file = file, append = TRUE) if(is.null(obj$.plot$edge.color)) edge.col <- "black" else edge.col <- obj$.plot$edge.color if(length(edge.col)netStart][1] dims <- grep("DIMENSION", X, ignore.case = TRUE) dims <- dims[(dims>netStart) & (dims0){ tmp <- X[dims] tmp <- gsub("\\s+", "", tmp) ntaxa <- as.numeric(sub("(.+?)(ntax\\s*\\=\\s*)(\\d+)(.+)", "\\3", tmp, perl = TRUE, ignore.case = TRUE)) nvertices <- as.numeric(sub("(.+?)(nvertices\\s*\\=\\s*)(\\d+)(.+)", "\\3", tmp, perl = TRUE, ignore.case = TRUE)) nedges <- as.numeric(sub("(.+?)(nedges\\s*\\=\\s*)(\\d+)(.+)", "\\3", tmp, perl = TRUE, ignore.case = TRUE)) } transl <- grep("TRANSLATE", X, ignore.case = TRUE) translation <- if (length(transl) == 1 && transl > netStart) TRUE else FALSE translate.nodes <- FALSE if (translation) { end <- semico[semico > transl][1] x <- X[(transl + 1):end] x <- unlist(strsplit(x, "[,; \t]")) x <- x[nzchar(x)] x <- gsub("['\']", "", x) if(length(x) == 2*ntaxa){ TRANS <- matrix(x, ncol = 2, byrow = TRUE) TRANS[, 2] <- gsub("['\"]", "", TRANS[, 2]) TRANS <- list(node=as.numeric(TRANS[,1]), label=TRANS[,2]) # translate.nodes <- TRUE } else{ # TRANS <- matrix(NA, nrow = ntaxa, ncol = 2) y <- as.numeric(x) node <- numeric(ntaxa) label <- character(ntaxa) k <- 1 for(i in seq_along(x)){ if(!is.na(y[i])) tmp <- y[i] else{ node[k] <- tmp label[k] <- x[i] # TRANS[k, ] <- c(tmp, x[i]) k <- k+1 } } TRANS <- list(node=node, label=label) } # n <- dim(TRANS)[1] } vert <- grep("VERTICES", X, ignore.case = TRUE) start <- vert[vert>max(dims, netStart)][1] + 1 end <- semico[semico>start][1] -1 VERT <- matrix(0, nvertices, 3, dimnames = list(NULL, c("id", "x", "y"))) j <- 1 for(i in start:end){ tmp <- X[i] # tmp <- sub("\\s+", "", tmp) tmp <- gsub("\\,", "", tmp) tmp <- strsplit(tmp, "[[:space:]]")[[1]] VERT[j,1] <- as.numeric(tmp[1]) VERT[j,2] <- as.numeric(tmp[2]) VERT[j,3] <- as.numeric(tmp[3]) j <- j+1 } edges <- grep("EDGES", X, ignore.case = TRUE) start <- edges[edges>max(dims, netStart)][1] + 1 end <- semico[semico>start][1] -1 EDGE <- NULL if(splits) EDGE <- matrix(0, nedges, 4, dimnames = list(NULL, c("id", "vert_id_2", "vert_id_2", "splits_id"))) else EDGE <- matrix(0, nedges, 3, dimnames = list(NULL, c("id", "vert_id_2", "vert_id_2"))) j <- 1 for(i in start:end){ tmp <- X[i] tmp <- gsub("\\,", "", tmp) # tmp <- sub("\\s+", "", tmp) tmp <- strsplit(tmp, "[[:space:]]")[[1]] EDGE[j,1] <- as.numeric(tmp[1]) EDGE[j,2] <- as.numeric(tmp[2]) EDGE[j,3] <- as.numeric(tmp[3]) if(splits){ EDGE[j,4] <- as.numeric(sub("s=", "", tmp[4], ignore.case = TRUE)) } j <- j+1 } swapEdge <- function(x, old, new) { x[x==new] <- -1L x[x==old] <- new x[x==-1L] <- old x } swapRow <- function(x, old, new) { tmp <- x[old,] x[old,] <- x[new,] x[new,] <- tmp x } splitIndex <- if(ncol(EDGE)==4) EDGE[,4] else NULL # quick and dirty el <- sqrt(rowSums((VERT[EDGE[,2],c(2:3)] - VERT[EDGE[,3],c(2:3)])^2)) edge <- EDGE[,c(2:3)] vert <- VERT[,c(2:3)] if(translate.nodes){ oldLabel <- as.integer(TRANS$node) for(i in 1:ntaxa){ edge <- swapEdge(edge, oldLabel[i], i) vert <- swapRow(vert, oldLabel[i], i) } } dimnames(edge) <- NULL # y-axis differs between in R and SplitsTree vert[,2] <- -vert[,2] plot <- list(vertices=vert) obj <- list(edge=edge, tip.label=TRANS$label, edge.length=el, Nnode=max(edge)-ntaxa, splitIndex=splitIndex, splits=spl, translate=TRANS) obj$.plot <- list(vertices = vert, edge.color="black", edge.width=3, edge.lty = 1) class(obj) <- c("networx", "phylo") reorder(obj) obj } #' @rdname read.nexus.splits #' @export write.splits <- function (x, file = "", zero.print = ".", one.print = "|", print.labels = TRUE, ...) { labels <- attr(x, "labels") x.orig <- x cx <- as.matrix(x, zero.print = zero.print, one.print = one.print) w <- FALSE if (!is.null(attr(x, "names"))) { nam <- TRUE vnames <- format(attr(x, "names")) } nam <- FALSE if (!is.null(attr(x, "weights"))) { w <- TRUE weight <- format(attr(x, "weights")) } d <- FALSE if (!is.null(attr(x, "data"))) { d <- TRUE data <- attr(x, "data") } if(print.labels){for(i in seq_along(labels)) cat(labels[i], "\n", file=file, append = TRUE)} if (w) cat("weight", "\t", file = file, append = TRUE) if (d) cat(paste(colnames(data), "\t"), file = file, append = TRUE) cat("\n", file = file, append = TRUE) #"Matrix", for (i in seq_along(x)) { if (nam) cat(vnames[i], "\t", file = file, append = TRUE) if (d) cat(paste(data[i, ], "\t"), file = file, append = TRUE) if (w) cat(weight[i], "\t", file = file) cat("\n", paste(cx[i, ], collapse = ""),"\n", file=file, append = TRUE) } } phangorn/R/SH.R0000644000176200001440000001037313212303074012723 0ustar liggesusers#' Shimodaira-Hasegawa Test #' #' This function computes the Shimodaira--Hasegawa test for a set of trees. #' #' #' @param ... either a series of objects of class \code{"pml"} separated by #' commas, a list containing such objects or an object of class \code{"pmlPart"} #' or a matrix containing the site-wise likelihoods in columns. #' @param B the number of bootstrap replicates. #' @param data an object of class \code{"phyDat"}. #' @param weight if a matrix with site (log-)likelihoods is is supplied an #' optional vector containing the number of occurances of each site pattern. #' @return a numeric vector with the P-value associated with each tree given in #' \code{...}. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{pml}}, \code{\link{pmlPart}}, \code{\link{pmlCluster}}, #' \code{\link{SOWH.test}} #' @references Shimodaira, H. and Hasegawa, M. (1999) Multiple comparisons of #' log-likelihoods with applications to phylogenetic inference. \emph{Molecular #' Biology and Evolution}, \bold{16}, 1114--1116. #' @keywords models #' @examples #' #' data(Laurasiatherian) #' dm <- dist.logDet(Laurasiatherian) #' tree1 <- NJ(dm) #' tree2 <- unroot(upgma(dm)) #' fit1 <- pml(tree1, Laurasiatherian) #' fit2 <- pml(tree2, Laurasiatherian) #' fit1 <- optim.pml(fit1) # optimize edge weights #' fit2 <- optim.pml(fit2) #' # with pml objects as input #' SH.test(fit1, fit2, B=1000) #' # in real analysis use larger B, e.g. 10000 #' #' # with matrix as input #' X <- matrix(c(fit1$siteLik, fit2$siteLik), ncol=2) #' SH.test(X, weight=attr(Laurasiatherian, "weight"), B=1000) #' \dontrun{ #' example(pmlPart) #' SH.test(sp, B=1000) #' } SH.test <- function (..., B = 10000, data = NULL, weight=NULL) { fits <- list(...) if (inherits(fits[[1]], "matrix") || inherits(fits[[1]], "data.frame")) return(SH.tmp(fits[[1]], weight=weight, B=B)) p <- 1 if (inherits(fits[[1]],"pmlPart")) { fits <- fits[[1]]$fits p <- length(fits) } if (inherits(fits[[1]],"list")) { fits <- fits[[1]] } k <- length(fits) if (is.null(data)) data <- fits[[1]]$data res <- NULL for (h in 1:p) { if (p > 1) data <- fits[[h]]$data weight <- attr(data, "weight") lw <- length(weight) siteLik <- matrix(0, lw, k) for (i in 1:k) siteLik[, i] <- update(fits[[i]], data = data)$site ntree <- k Lalpha <- drop(crossprod(siteLik, weight)) Talpha <- max(Lalpha) - Lalpha M <- matrix(NA, k, B) # S <- matrix(NA, k, B) wvec <- rep(1L:lw, weight) size <- length(wvec) for (i in 1:B) { boot <- tabulate(sample(wvec, replace=TRUE), nbins=lw) M[, i] <- crossprod(siteLik, boot) } M <- M - rowMeans(M) # for (i in 1:B) for (j in 1:ntree) S[j, i] <- max(M[j, i] - M[, i]) S <- matrix(apply(M,2,min), k, B, byrow=TRUE) S <- M - S count <- numeric(ntree) for (j in 1:ntree) count[j] <- sum(S[j, ] > Talpha[j]) count <- count/B trees <- 1:k if (p == 1) res <- cbind(trees, Lalpha, Talpha, count) else res <- rbind(res, cbind(h, trees[-h], Lalpha[-h], Talpha[-h], count[-h])) } if (p == 1) colnames(res) <- c("Trees", "ln L", "Diff ln L", "p-value") else colnames(res) <- c("Partition", "Trees", "ln L", "Diff ln L", "p-value") res } SH.tmp <- function(siteLik, weight=NULL, B = 10000){ lw <- nrow(siteLik) if(is.null(weight)) weight <- rep(1, lw) ntree <- k <- ncol(siteLik) Lalpha <- drop(crossprod(siteLik, weight)) Talpha <- max(Lalpha) - Lalpha M <- matrix(NA, k, B) wvec <- rep(1L:lw, weight) size <- length(wvec) for (i in 1:B) { boot <- tabulate(sample(wvec, replace=TRUE), nbins=lw) M[, i] <- crossprod(siteLik, boot) } M <- M - rowMeans(M) S <- matrix(apply(M,2,min), k, B, byrow=TRUE) S <- M - S count <- numeric(ntree) for (j in 1:ntree) count[j] <- sum(S[j, ] > Talpha[j]) count <- count/B trees <- 1:k res <- cbind(trees, Lalpha, Talpha, count) colnames(res) <- c("Trees", "ln L", "Diff ln L", "p-value") res } phangorn/R/superTree.R0000644000176200001440000001671413207147352014405 0ustar liggesusers# now more memoryefficient # from phytools code by Liam Revell with a few changes my.supertree <- function(trees, trace=0, ...){ # some minor error checking if(!inherits(trees,"multiPhylo")) stop("trees must be object of class 'multiPhylo.'") labels <- lapply(trees, function(x)sort(x$tip.label)) ulabels <- unique(labels) lul <- length(ulabels) # compute matrix representation phylogenies X<-vector("list", lul) # list of bipartitions characters <- 0 # number of characters weights <- NULL species<-trees[[1]]$tip.label for(i in 1:lul){ pos <- match(labels, ulabels[i]) ind <- which(!is.na(pos)) temp<-prop.part(trees[ind]) # find all bipartitions # create matrix representation of trees[[i]] in X[[i]] X[[i]] <- matrix(0,nrow=length(trees[[ind[1]]]$tip.label), ncol=length(temp)-1) for(j in 1:ncol(X[[i]])) X[[i]][c(temp[[j+1]]),j]<-1 rownames(X[[i]])<-attr(temp,"labels") # label rows # if(i==1) species<-trees[[ind[1]]]$tip.label # else species<-union(species,trees[[ind[1]]]$tip.label) # accumulate labels characters<-characters+ncol(X[[i]]) # count characters weights <- c(weights, attr(temp, "number")[-1]) } XX<-matrix(data="?", nrow=length(species), ncol=characters, dimnames=list(species)) j<-1 for(i in 1:length(X)){ # copy each of X into supermatrix XX XX[rownames(X[[i]]),c(j:((j-1)+ncol(X[[i]])))] <- X[[i]][1:nrow(X[[i]]), 1:ncol(X[[i]])] j<-j+ncol(X[[i]]) } # compute contrast matrix for phangorn contrast<-matrix(data=c(1,0,0,1,1,1), 3, 2, dimnames=list(c("0","1","?"), c("0","1")),byrow=TRUE) # convert XX to phyDat object XX<-phyDat(XX,type="USER",contrast=contrast, compress=FALSE) attr(XX, "weight") <- weights # estimate supertree supertree<-pratchet(XX,all=TRUE, trace=trace, ...) # supertree <- acctran(supertree, XX) return(supertree) } # Robinson-Foulds supertree fun.rf <- function(x, tree) sum(RF.dist(x, tree)) fun.spr <- function(x, tree) sum(SPR.dist(x, tree)) dist.superTree <- function(tree, trace=0, fun, start=NULL, multicore=FALSE, mc.cores = NULL){ if(multicore && is.null(mc.cores)){ mc.cores <- detectCores() } if(is.null(start))start <- superTree(tree, rooted=FALSE) if(inherits(start, "multiPhylo")) start <- start[[1]] best_tree <- unroot(start) best <- fun(best_tree, tree) if(trace>0)cat("best score so far:", best, "\n") eps <- TRUE while(eps){ nni_trees <- nni(best_tree) if (multicore) { tmp <- mclapply(nni_trees, fun, tree, mc.cores = mc.cores) tmp <-unlist(tmp) } else tmp <- sapply(nni_trees, fun, tree) if(min(tmp) < best){ ind <- which.min(tmp) best_tree <- nni_trees[[ind]] best <- tmp[ind] if(trace>0)cat("best score so far:", best, "\n") } else eps <- FALSE } attr(best_tree, "score") <- best best_tree } # we want a rooted supertree #' Super Tree methods #' #' These function \code{superTree} allows the estimation of a supertree from a #' set of trees using either Matrix representation parsimony, Robinson-Foulds #' or SPR as criterion. #' #' The function \code{superTree} extends the function mrp.supertree from Liam #' Revells, with artificial adding an outgroup on the root of the trees. This #' allows to root the supertree afterwards. The functions is internally used in #' DensiTree. The implementation for the RF- and SPR-supertree are very basic #' so far and assume that all trees share the same set of taxa. #' #' @param tree an object of class \code{multiPhylo} #' @param method An argument defining which algorithm is used to optimize the #' tree. Possible are "MRP", "NNI", and "SPR". #' @param rooted should the resulting supertrees be rooted. #' @param trace defines how much information is printed during optimization. #' @param start a starting tree can be supplied. #' @param multicore logical, whether models should estimated in parallel. #' @param mc.cores The number of cores to use, i.e. at most how many child processes will be run simultaneously. #' @param \dots further arguments passed to or from other methods. #' @return The function returns an object of class \code{phylo}. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} Liam Revell #' @seealso \code{mrp.supertree}, \code{\link{densiTree}}, #' \code{\link{RF.dist}}, \code{\link{SPR.dist}} #' @references Baum, B. R., (1992) Combining trees as a way of combining data #' sets for phylogenetic inference, and the desirability of combining gene #' trees. \emph{Taxon}, \bold{41}, 3-10. #' #' Ragan, M. A. (1992) Phylogenetic inference based on matrix representation of #' trees. \emph{Molecular Phylogenetics and Evolution}, \bold{1}, 53-58. #' @keywords cluster #' @examples #' #' data(Laurasiatherian) #' set.seed(1) #' bs <- bootstrap.phyDat(Laurasiatherian, FUN = function(x)upgma(dist.hamming(x)), bs=50) #' #' mrp_st <- superTree(bs, rooted=TRUE) #' plot(superTree(mrp_st)) #' \dontrun{ #' rf_st <- superTree(bs, method = "RF") #' spr_st <- superTree(bs, method = "SPR") #' } #' #' @export superTree superTree <- function(tree, method="MRP", rooted=FALSE, trace=0, start=NULL, multicore=FALSE, mc.cores=NULL, ...){ fun <- function(x){ x <- reorder(x, "postorder") nTips <- length(x$tip.label) x$edge[x$edge>nTips] <- x$edge[x$edge>nTips] + 2L l <- nrow(x$edge) oldroot <- x$edge[l,1L] x$edge <- rbind(x$edge,matrix(c(rep(nTips+2,2),oldroot,nTips+1),2L,2L)) x$edge.length <- c(x$edge.length, 100, 100) x$tip.label <- c(x$tip.label, "ZZZ") x$Nnode <- x$Nnode+1L x } if(method != "MRP") rooted <- FALSE if(!rooted) tree <- unroot(tree) if(method=="MRP" | is.null(start)){ if(rooted){ if(!is.null(attr(tree, "TipLabel")))tree <- .uncompressTipLabel(tree) tree <- unclass(tree) if(rooted) tree <- lapply(tree, fun) class(tree) <- "multiPhylo" } res <- my.supertree(tree, trace=trace, ...) if(rooted){ if(inherits(res,"multiPhylo")){ res <- lapply(res, root, "ZZZ") res <- lapply(res, drop.tip, "ZZZ") class(res) <- "multiPhylo" } else{ res <- root(res, "ZZZ") res <- drop.tip(res, "ZZZ") } } if(inherits(res,"multiPhylo")){ fun <- function(x){ x$edge.length <- rep(.1, nrow(x$edge)) x } res <- lapply(res, fun) res <- lapply(res, reorder, "postorder") class(res) <- "multiPhylo" } else{ res$edge.length <- rep(.1, nrow(res$edge)) res <- reorder(res, "postorder") } } if(method=="MRP") return(res) if(is.null(start)) start <- res tree <- unroot(tree) tree <- reorder(tree, "postorder") if(method=="RF") res <- dist.superTree(tree, trace=trace, fun.rf, start=start, multicore=multicore, mc.cores = mc.cores) if(method=="SPR") res <- dist.superTree(tree, trace=trace, fun.spr, start=start, multicore=multicore, mc.cores = mc.cores) res } phangorn/R/sysdata.rda0000644000176200001440000004601513201424001014420 0ustar liggesusers‹í}w@U¹ò0M, T;*‚‚R *̱£ˆR,ØPDDi‚ Å.Hé R¤WéMz‘^”Þü€“Üý¸>ûÞ¾U÷­›?îÜ$“™Éd’ÉI9G~“â2fEf:ú‘ß‘ºáZ¦‘ˆžþÑa8…†f<´ÒŒ‚48Žá·ñgÿnùßËÿÞø¹ìX n_êôojüoÑý£ùß;?‰ïª÷·øüÓ®¯ðO{þ¹á{×÷{ùÓ—ïÏ Äæ÷½êû½üå¿Ë÷gâóû³ëû½üáåû£ñƒùý¨ñó[øÎô¿w ~0¿ÿ¶¾ÔŸý·áWk§?þ¨¿ú³øþ¬@ü >´žÔý·áŸvù9t~ýß ÄâóïÖó[þä{‡Úal>ñåøߟˆÄçgûß ¿ºÞtøÙr?ˆõsñôoâÿÎþ˯[þ¨ð«íß?ˆÏ¯ºò£ÃßMŸÄw¦ÿ«ì߉~OüÉô~•õsâ;ÓÿG_cïº~üûú-ñËýÝ×O‰?‰Î¯¦¿ûú!ñ;ù÷õ;â'óÿY|‰ÃæwîïÏZ?úQáG¯ßüìñðïÒn8üÙõù»œ?ü_?÷¿zþìgÏ÷ˆ?™Þ¿[ž ŠÿUƉïýüöW=ò¿Jç{??üìý÷¿ûs35?âß”ƒï[ôþSþ”Ïj‡ÿ.Ýÿ–Þ:_ùÿ´üÚžÿ­ÿ»û×Ôé_ߥ¼ MCu—ò[<Þ~~ïüï 6ÿ]O~Tûýlýþ,þ?Šï·øüÓ®/øO{þoñûVøÞíðO;þ9:ü¨~ôOûýw‡ÿ”Ï?íö×â÷O{ýµøáò8Uú÷’‡_¥þ¬öù«ôÓ¿KûüQ>ß*÷O¿ùkñù§ŸüX>8Uü¯"ßÿ:ÿßãó£õþþ,ÿ¿ ß¿ŠÞÿ®õýÙü â@þGåüoóÿ.Z¿?J?K¿?Ú~´Þ~»ý»êó{óûVøÞzø»è‘:ü(;ú_×?ºÿý¯ëí}ýßð[ág·Ã_R‡¿Šþl>8üÕúï_ϯ¦o…¿Š|Öx🎗ú‹?ª¾µvÿ»Õ¨ ÔéTÎU·ž8üYò+ÿg÷Ó¿K»}¯ú|ïú}+üÙzÿ^õ ßËnþlù©åý_‘û¯.ï·Â_eœ v;ýQ:ÔòüUäúÙt¾~Tÿù^|ÿ÷â÷g·ãʇߓã÷äûOåÿoù|+üYvõGëK-Ç«·7ÿÏjÏ·¿Å÷÷Ò©îRÒ íØJCCÇF3òéÊÑ+•4‘P,ºYÄ:²B޾_wêngf‘1,%è\Ê·öÝ…OLGxåã¡õiå!·‚æ ôGg?ƒüž+Ö†³ø véóùýù©P(³Üö‚?T ò§vè…¶Is“:@æ:ç9&¯A{Á ;QGbZ½“Zk×s‚v¶À6fHœ>MS-Þ1®æ˜±‘`8Êäéì=êYŽêÝy– oÃô&¬Pt‡Ê™Ìþ•ëÆs΋jŽƒi©œWêJð¾·®4EzA¯áôùr'D­—iÓÓ‡9Ã-\k/ÓeªÍ»VóAÙÀ„~C+ZðR޵]©yR«Mº2B“~'MÇf¨ºÂZmUC¹3õÝw@îˆôç½ ¾Üq E+Á.ÓOSeÊMžejFVðy޻£ŒVP¹'ð„‘ø!è¡y0‘—G—˜Æ¤ïãcu’. >dR?KmÛŹ,íâ9î×;ª¡ òŠ­WÑnšµq‰«!Ä~ÝuQ`póK•sAC{l0ÿ;¸¯µªŸØr>Ü Òk P‡ SvîSåTÀ—Þë² ÿ;¨xk÷eaÁÞ:Å£ö419¢RÐâÙØ$¡ VÕΗøOÈÀÍ §ô4ÈžEÚÐó-^¿¾ÁçÜλØtŒ %ã”[ÌžCÇ{‡"‘S xývAÁ!xöب­¾vDK {¬é‘gá tBPPÿ|-Y8åñI~YvT­:¹öõº¨¾¸{½Ìȵ⟙Vèfôä0炵 ˜ŠÈ3h~ÈøÎ©ø(´ùÌ|¹´5v¬ã¢{I0nyrÊÁ}~=Àa(q¢KTîm‘‰àO¤Þ’W2RæÕºBëáÓ«¥®»_¿…*ÿ-«“õÇ™¬ƒ¦›ÍŽ5Ëü–ŠqBä°5½3—!XïÚèÞiT€¸CGŒOì÷"¦r/ÑîÈq‚¶´79n UÈ,.Yó±|5„µ-î>‚Öë¢u…n@ø½·­› !-Vv‡”÷'báŽ}Q~+@ôÑðˆ˜E ×íN y2.éæQ¹,H©m÷ G.÷†œc2Þ¢Ùð!—Ѹ-–r–j§³uzÂgIÝë— æB ]­ªÌ•3ð`¸wóÞ«„÷Ÿ™xÖ,„º®•“é¶ÒA»Èýõ™–õàqc«Ñp‚¨ s]ËçCb ¿> $ÍàØý¹B‡µ-};ä‹ÝîÍâ 7x´j·²¦.Vzei!¯öÙGÁ ÏBq}x-”òÑm­,b®d¸³âçDØcHпžÂlIÌ]µŒc ú Tw,ŽÝZŸ]êƒÓû_€ªmö†»Âëæ{òº4!¸µâ…t5d÷•ï¾™v“˜þáéL¡ý¾Qû8Õ l«”ý“ T(¨«Õß bo¼~“82 B-˜E ZsÅÏß?%˜V6&)ïµ€¤õ¥3æ5®„Œưâêá¡dÜg‡@ Ï Îù†ðÒeû##µXp5¥ùœü¥¼;´od? ×Mƒè¢Ó€K¹úb…9à¯pöžª† xÜd-${ì«Åùo\| >9"-R×@èáÃÞ3§­ßkSK;¦Â}3ý/ŠU ÁõÅ£ÅGÖ€›Í‰ yZà³GÌÊæò°Ji­)?¼ ®O6¾¥žÏc f_À“¡ç½Ÿ©\×8m-5½á?¬#£DZüç þ£ÿ¨â?Çð]üG ÿ9ÿ¨ã?øÏ)üç$þ£…ÿÇtð=üç,þc€ÿ\ÀÎ ÿ ‘•bø‚êA‡3åк£ÇCûÿ^°oý×~»Òí¼xšù"¨}‘’uÃF,^ûZG‡:ha[7«6ê.ô)°ºbWÝžU÷ŵ˜ WªO›ãŠ$½]~…“iè\¨qX-4sõYeö@ó}Ëæc'™ ¥ÍÀæºô0ÈЮ¹ãL0÷(¿=|Þœ é`Åôö „wK%Nr…ôÌ64 šI;{­ïŸ‡êÝÑóÏ:L˜¢âKR]ë ¢¶5£r÷Fb‚T ¸"ëQ(™¹°{yº*TÙ‰ ì&h¹«¦« æBâÇ–k ÝP^X`°ýÍj‚ãD‘Ë€‹ Ô”œ»ñ9ß ÞHozÞj&5‘GBæ†+A‡½Q©ë•Q»?m~íšví·^Âû“LÇö²¾‚Ì9£ŽÐ å!)Èìë”Ù´Wzýß…»Î͈7…v:éåE½å‹›Ñ‘™Ÿ¶Ce¸Ìü$ójˆÊ«Ï[Ïr˜ÀýÀ¿áÝkH>²s“ˆßxýŒ]þéÁHñ‘Kªøt¾õÄ-îº}và¯1ŸîÚÖuЦ¼þÚ*éDHžc;°1Æ9Ê·I>á#ng*Áí¿wd‡&ÿÒU¦3m¡%iú„ó påœo.&5ìgcâ'M„² ¶ÈÎ']ðÆÖaSîæàÞ2i¼>l…âù7’Í#ý¡maK¦¼4 ¦uÏŒ ꉘ©MZ!ä¾?Ó1<õ‚Ø‹Á-«!tÇ<"æÄ'¸Wºã\Wä8ZÌçýe²ò¡Ÿð9[// Þ?Xd&—ÜþUaÒ™àýà‹•M;‡ç…U$æ@8míõÉbO Û*Ádh™#Th>ÙT©µíë’Êb¡òû9Ÿk Ð:!¶£bÕd‚£"i ¶ŸŽ€)‘†R J ¼Àf£TI¸N}Rq¢v†ìÝH±‘òÓz†— N ã W`°È:[ãEz¸3ý &¯ˆÑÑn¨½Y²6ï!/4îæÚØp¬âF§ÃœÌs¶ñ†{'TåW©V_懌fÏ×®éÁAh×3ç8{ð9¶,ŽrBAý‘Ìí Uï>»ö1xܺ©8«ç*d,•!x$¡ë<7Ü®Ý ïê¹-¼ãR ïö¼…lAoáUŠOøŒtHì zåÌ9¢}WDÈ %Byð¹ZÖ“Ðlzú‹¡°ôÌJÓõ;¡&B8(^5ìÖÝáu>Ãhš~P¶ÝCפí)d¦}Pa!¦ ¤ÏR\x"w…­Þ•C0)-´ìL¨ƒÜP¢ý&Û‰©ãðÌʇÖûÌÛ&'‡õþ‰¥% ruÏo„žÝw­;Aê2—ûý‡CQ5k°ˆ1w]MVd%öv›¦åê VÌMS„øCÑS~–ÕÏ*&àÑ ¹uGº™Jú fûÊé÷Í ТkÚq±©0.*[ô¡Zjì“„hCpDgLÐÌ|¨Ìæ²U†íožÎUæ†nÑ©­±;fÏb­¼”!zJêÙÒ^mȱY;ióUG蘔ÍÜ/ÌñhžUþdAȽ¥  wÃø‰6Ÿ ÂÌ£Ìzí2(>yi\áá<‚Æ Ðiùˆó$çq•ç7m+n^ 4•ד; ÷‰”Ƴ¦Äô,¡„ðz¨NmÜ‘³ú2†|ϺŸ½ä…çÜ€è÷ãj:¦˜Aª»šØ*…ÜÑé/1õ×˸O× "ÆôžèžÉÐ <±Í5EÒRT×Eú@øè´N²WßùhÝ+‡µºÊ‘ ¯bçÒµ†‚£b/LW7A.ïµ›ŒE)~;x)Ìwt¯·KŸ»y‡€ ýåȬS…གaNªË$°‹?å~Sü}‹LáÆ¹ƒ´ÏøŸƒ‹~)G¹ øó­l¨\ÑLåâ~1W=Ah“ÊõÓÇS»kb-ù²fÿoÙ¿L¦!ø\‡à–÷U¹åªòP„*_A)Râ²òX>­cä"ä Cô™¥‡Ów øö±ù¼õˆßnDo3ŠïD×ww %©ÊoCx (=UþJ7 <^ªüYâ~)Š ¶glOZÄ¿äO¡#MEµ ¶s 2kb’×ˉå85–Ž+ ·¢¸>‚ê¨ü"ÇýGŠï„gDBÜŽfçIxÌ‘„JÇz ÌÆòÅö VABmå±|0>¶'*9°ý£v öQñÛ…àšb»Àraº Ze’ëEÛå›ýkº¸]ÌEH(EBÜþÔv‡Ç¬·céb=ýæ®e:˜T…o‚KÛáÙ"ûŒÀ%à¢Îìáàþåaìízx¾àâÇ!¹àlÏiÅýCàqpð@eÿöÙ¼ôÌ‹.x¾òHÜ^}Vpª ¹~i¹ v¨Vò×Cà£s6Pòn®Ì\¼Ž– \ ^íÜ¿ <Ú_7$ ‚_FªH(Ïðî[ñ€þôZ°2)×*iSgNÛãn¢ßÛͤ~mwÍ ´}÷î¯\µ jJܵñ…‡´d“Púqeâ.Œ]:2JWÇôð£ŽÊ S2ñ%!vµØÔÏ ü-ˆŽJ?„Êë!þ(]…‡„g>b6"h)‚è¡8;‚ò?¢+‹Ò t1Ç]Ö ¥ã®‚]"ÖÖÛynEù¸kê t¬'<4`ý\DùZ(΃ ¢#BU»°+½$TFü¡|¬O [‘ܾcñ(ø¨<´ð¤F Éa¡CB$Œt<¯§¦{ñ5Bxºˆþy„ŸŽUð2’VN+„g$BB{dˆÞ U*#ùìrIˆÛGÑ÷¨"¡1VNÜžX.mb{À“,<É4@rª":GÞn]®“·/îØîÍVâAV¥k >x}·7ž,àÉ„ñ ‹Ÿ#­Œ­?– ×w/⃠î¯z¬cñðó2îO¸= —Cõ{ön¬¸êßBq_+“ð0*wáßBq<)ÃNÝ?á¡ø=r6CØe¢tDÏŒɉêíé„# ­‘ÓWGx”ɳFé6¾cë¯òO£ü³:$Üò÷!¹,I¯H™¤k¢rø¡S¦¨üQ7Aå,I¨‡êu£:(O¾ñ¸ „âŽé¨>(ÝL–„ªˆ?n_윯 ¨ï8¶žhòù›³VèI/ä¼>©wÖ,N4—ÁŽàÍÏSÁi(^ëP¿7X8SàãŠç›2šœsÀC‘õ¨Lv;Œ¦9áØE"'·,º#›S"+ ´Ò÷š#¿|±|ø Ǩ‚„ÍÆæ£Áé+ypç6G^!Š„¿Ó~”òøI ÇE~Ÿ÷wò±À›!k¿7‹*®ïKB´hMy22»5O—gl-RâØÉi£ò+©øà'éß[4Æí'3+¿ëoJ;³~#_ìÿ,þ»?AQÊ& u¿ZóêØ|Ü?ÅÆÒ¡äßÏÇ+@ØNñŠ^‰£æÎll\Áçh’ÍŠâ—ÓEýœâåÄ+[ø‰O°s•¡âƒÇlWTã!56NÕ(ýOލò¯#ˆŸ¬ñfž•, ±¾ðd§xÅ…ºÜ%‘±ôŒ•—:ZŽ$\ò- ä¬ýB¸«¦«Á=îY)p1¬ÜúŠÝì&V”e_MC‡ÈsIâðàc÷Ý-gáÀ¨{†—–A% ÀO»ªv×BF}²Äë80Kè‚ýs•êµ!xºÀé‰Á#ð‘º8</]ý›óìÀßöТ®[ž¤D]šÏh²F$çêg|y➀kè×ÿÇY¯?sö«fÉäL lE~š4 ê|üD@‰ãeBVªt%‚LÇ;7عXáÎh6–>æ«OŒ¥ƒèR–Ûͧàa'L’ñr*vNìTrN ù×ô¨ësÕïìë(“ðx q}ñr¬qýMDH¨EBêev„„Ì ?ܱãÅ}y»€½„äÎÖE³Àç\œ…Ñéìß.²Üå ¸j®z)òBd"z;õÀC¸óœ##<3[íp)ò8¸ˆ–Ÿ›žÞ׋B»öþêÎZæìÓ*_=Y3 ðyùh D¦“«‹œêl”.ŠÒϰ¿iYŽ 1“xãPa%˯1CÆUKâ[ò“ô ž£AêIÁ³s]gBôvÚñS$½éx0@x; ÇB¬H¾3›Èü)¨ž82j~Ç|Dœ‚(ÎŽè\B+ûÜÈø‰d2_ u:Ų^§žüVï á\DçB>YNþ™¾ɽån$ËŸ`#!®ŸJŸ…äX€ä^Žè[#~x°‘&éB/ê¬c;-uç¥Ä·!>tTzDrNFq)Ô‘]ìF餜2Tí¡ƒÊ©ö‘qTÞÒ‚ÄWGíºa‰§°„„ÚH|}¤¿yHÃCd=1}<™9‹èìF|°¾¶#ûUDp#ª/7’w; ±³ÛŒä]Šø¡~@qjªcõD‘C Á¨~ëIM“P9¼,)‚Úo6ÂÇú¤à¡8–› ñïDòèLEö‰â‹©¨Ü*²~ЇÒg z®BöíIá ãrˆßr”? É£C:QÈAx†v$äAüg’ñ½(¥ãþyõ—T|½!ã3Þ¥*2®µ…„|(]•COÆÄZTžå¹Læãí"¬_ÜÎ"¡<²¬¼‡Ï‡èivémê×zHßRûI¸ Ù.²Ï…H.ëñ•Aq‹³d¾ ’W¡™„;ôƶ++‚¢x¼Ì&!/’Gñ•Bõœ„ðñrøù_ÕCÕµïoOÖN³,šûáÞõ˜'FÏÁaŽÍÞjpOTÁƒ­%,5&]_hó ì¦ÖÍ-¿! íƒBÃdÀÿ”É… +žÃcý¹[]VBPâæêS_@Ë9® `Á!¸Vå2x|š|¬øD6M3‹pÌ·V`¯hs|ú)b[É xYöl×ñðÄËŒ[Ãü58ó=y-d ¾î_ùµ5½ÐÞ¯N—AZ¾‘Óª´áϘΧôEdöÎkö …´épŠïaä¼×´ÊŽƒª%‹nsÇ@3Ó§á”h\¸èÕÙö6xw]1 {Ý2(^º`gès(ha»+j©ìÓÆ…Ó:CDÉ¥+l… ÐÚ–½x¿" ²I®ˆô‚f®ÛæOÜ&yÛ铹 xÛóåÑ駠öBZ©6¤|V;nÃÇoZÞñä}Ž’ÇêK]¬¡üa&ä±ÈÜCÞ‰ãLà˜ïÖ ©R]ëö9,€ÀÒüŠãî@’ÃQ‘sQr0ÀÕ`/*,ÁwíÝ÷\S=u½ŸQg&äÞm ÙAÆ;…W @ ÏWpíÚÙÅ ¯ó\Gnþ@xÏüÊ—ûª yÓÐÊlÞ…ð„ßmÕÊ´vȹΣßY;/ÍÈfS‚A–¹Šm«¯ ±Ü‚w+{ªÆô‚ßfyýÊP1}ªÔ Cxç7Þœ.‡‰¥LZA¦ Úeló¡i&£ùs(C÷¡­N^Yu „Th¨Äj€‡ÅÕq³ôÀjÎg­”ñݲ|á´=ZÐw_Uóƒ³ätˆL®ŽŸ Ñ‚ǃ¹.ÂU÷ø—[g‚ÏâÓjÓøÝ{$ò`'1æ9ž+2 ï¶*Ñ.VâËdƒx×@²«Äç›®&Lz ö6|l¶_"À?2’SÖå0äxv(‰N~ ®)í}²¡í]µ°_Í‚>Û] â™QÇÚÖóŒ‚æè÷õªt ã…áø¥3š ØFÈ`b&7¤\òÐÚ±<n”­R¬¾%nFE¼wÛ€ïÚ%±üOàå³Ë+ÂhÀZh_ÝÃÙÊðüID”õãçàɼ7¬÷×öÔ„´ÎÊoÞ»Lì«ëUBì#›Ä4õ²šóZ®™éa–Ðq.€!ü@w}$ÊL(-Ý› R¨ý™©ô§÷t¬^Æ¡öZü‚¤#}€´û¥d;Qð$Hý¬X06 µ=â»òÍ~_µÿ#Ÿo©·…$dBú`@|Y‘ý†¯Ÿ”çH# ù[GõKH¢³;IùPûm9FÚ×,d¿–m£t(üÏÞ&ñ–ß&óÍ„Iü=$}±ç¨P»0ŽÕŸ8²3»™¤ý,EýÒìÙNÒ’t7¡…ùdýŽ Lb5iO[ØÐ=ª×ÞRÓ½m¨ü3d\…™„øP÷¶{cÛqo ©eHŸSHyÌÌI;Xì}#ÒçùÕ¤Ew‘ù²ÓHúzpž‹ìÛåtÄGm™¯<žäÊø‰¬@ã(O-<ÈúlÜNÊ!»f¬ 96¢vÓ¸MòYCõãk·wí¯}ÿÆ®òµ`w6\Ó´¯œG› RâçGÿôÃC´pôÅ_¾œ Ê×pž ŒÎ‘Åî@Ÿ†QªªÀËõÃÈ 6ðŽÌz9Ç|ƒ¸G(ÂSÿ¥Sö2LGò\¸‘é¿¶»f’?û¯ƒãóøü ^¥3Ò!!âxkR¹‚„h넲*ˆW“ð-å±ùЍ¼q ñåD¼5$ÊãCåø¦Þ¢Á‡^O:Ž•oUãsÔ7+,ÈSÛ”s/x ãá›!²(Ž·˜ñ¹Êê‚ʸ~(_Õ_R=K3V~¼•¥DâQô·ðñy¦3$aÊ!R„‡ÿ¢-:Jy|.ÅŒL 2ßKÅë—êÜ%ë]elü+<|.Fnl>e ñ‚è2*圮>ÄK]ŸOÄ[‡XeežÑ!¡ÊÇízž$üÛÍ%”®'‹øEåƒ/%œâ!áQDÛ¶_¼åˆ·6Qÿ ÐÁ[¥*ŽcÒ)ùxK_ZLJ´E©ð°}ÈQ¥ã-`l÷¶[¼‹oãt¼ €åÃt¨û7¾ô{xl=([ôøè¶Oܾz"cåÄ—(0}Ê¢8Ö++‚ø>:€wmn)•ߺÆ7DñÜ_ñy2Ü?1?¼µŒ_>@} ¿ôÛ%ÞÂÇõÁ“4t8ü«vÅöxÑ—Gtð8€·ÈñºâwáÛ¢s xÃrâ›\x÷ËëiÙ;6…@zü͞ėܣ8Ö3åÜrÖ£G·w«€»¨m<ƒùip&vº¼ˆÞ®%Æ'I+ÁEòS>#ÇËô,À­•úŒš±²ª w^]à ~#ÇÉ­á Ë-û°I ÕÔÒ¿ n’“sx:z mø¦Q/¶~ /d¥8[ÇS…? È4¶ *ÇáTÆ¡àãwpŸ¤×Ê_ÛY’Ú¶×à«uð€©KÎ ±Œ‡1Nk¿\~ ‹p÷ ¸}âõÝw0ŦÃYô`ÌIÄ=vý°Ñ¥S`œE¤u´F Tõròù·‹PÒ?ÌÖ”Í÷‡ÖEBW²C‰y"k>›Þî{¼'VÏ6yKM‡X!–ÿ\¥†BÏoÓ 7ãü&‚±>œóÉ‚×ÄÂýj‚9±*ð0N%ŽX)GTˆiÅç‹3•I[ëÒ38h. U ÁOƒ•ÞÛFÏÌÛS¾h-g¢ð+¬ý<òæK‚'@þÅF³«ÐŸ8ïÎ<‚«$3L;߀‚—5b²9±„„ºã­¥“áUowφ˜YW­+DX B2ZWGéļe·¼wÊÁ§{a‘Wl_Rêµp79aÅø˜~þÔAE«6bé‚䩟9‰i‚S²*)rìd²Û<(íD­¯E0o©è-‚7u¥!Ë­ûÝõ<£Ä#ˆ±;¥øñ•¿ùÙJéæO¿j7 ‹T›9ª—,›û3A¡OGïS¿oäÅdù_•ó`«TÚ½mé7éRÂ5¯úÿÖîmæÅW)ü8†yy®%xü|<6÷:%É}BKô6Šž—YײÞhÏ­zª5qãçôk}J"xÉ ;µž&Z~f¶B:Å®’Ñû9ÝüÕ6\èeÿ ©­Æ¦a ¥¤;YæE¬ÜQÏn]8râ4±ªûTçÜy¿_ïÒCÞ^9ç+ú´ž¶q µ}SŸÈî¾¥_búœ#"u_q>ÁˆÆXœÏ¨ôâþ1¥³”r«ËÓ˜äÂ;ï/‚‘©_Ñü@Ž©ubÆzkøàc`ȹûN”ü­‘ÃC¶ù{h4 ’Pò”˜/¦ïòú25JzÕÕI69bé5¥g3'<¢ØáÔ9Ü—äöãúýÆ×bÏÈ›ä:´à±ä¢qËmu=bêþ‘×.þ–ýÓõNŽ]5Ú•vVCKÉŽ'·âÊ¡éÑëúFñx ~ùñ¹ÜÉŸU¾i‡]ÞûÂ/øP|µ³ÂýNUðÞ¿ô„Å…&Μ±º"a.<¿4ÓZ÷úYx`¿bUʧ¹à¦éªùr¼)ø¼åô™u‚ ‚âiÀ¶»âxs„ ³?pÁ¼íW¸-u_-—*N'¸µº8]½±\]:6;,wÃ>½ÁeEðRlÒÖ ›'˜ÇÇþÊ9îN]·%l=Ücç÷Ë©ÐÏã÷Äè?ýâëࣾúèW¾:ç•hÁ4ÇfJ›öl}é¼}õÈÿ™Œ¼\ dÏ =O¦D–»´«{à5µ—¡æåþÏs¸[¡ö “(­!¦‡N»Ì²±ã)¼K¡×yíd¨é"bbÞ2ã™EcÇ”‹]—\áS(óùÅŒ×ÁR–QÞS·ß]tèØõ‘õºM!x‚Ì˃Pc®·Œ/6·?4ß\¹þf:<!æÜÛ?H~œÓZçòHSøLý “–¤¿ "nÆ ¬ŸK›ö,¢è5üSØ¥wážfö¸6¿kË)r‘/Ò}´CÀùv÷Á ƒ¶ßäÖ}Ç-$˜­§ûr3š"ÇU‡SÌÞm¤Ä³­_ÀÎuJÛKëÙ']Ú//³]*üÒ}ΚþŸ Ú/ÖüV«ëË:·±AÁèÑ)è0ˆ;JÁÿh&92é7jF–ÅOôàsÙÄS‹¿òÑóÜ•&¯> wœ•×÷DÞ›¶lnà> µñʉQr#ï†Ì¸L,ó‹9¥AáÏ•—61¸åä:–—õJ|o”V€ 1Q¸@‰gK"¸Ž 5Qõñ†“ÉŒç£Æóĵ…7ÿÆ·Gpó¢E„hÄ"›:z_,å YðqÁ±uTßļI!¹\šg¥ã‹yC‹ÏA§Èq×ÁMݳzÓëûP×mõà@ž8„{ÍÞõdîeèF{ö– µ…‘»vœZ4›ëÄTÌóV• !¦ù\ 5°ÒûJYôûœ÷0HBº Lm·l19Ó7NË|Ÿ:>‹’>SÃ{Clò§ßôþø¤@Ûfy<îAãµþÝñ»—BäæÔ-d±¤5¯ 8,^e‰oä&hfWï¥/¸Å¬q²“8‚²+œ.PèÏ+ ZAs' ž_@âØj¨’S±¾a“èNE§¬Z¿þÐÓóz “|w+%µÅW¿êµcî´Jߺ¾Pk&p»ß×ή¶r"Ñìp÷fBB£ÕQð:³kçþjð——´|®}ü-RÚ'ÑY€}®¸HH‡%ø–æ•ɆÐ;íU÷€·À§î4ƒP¸+¹ððíu–ðÔL|ãªê©à~ËqÙ›WàQŸqC¬^¼ÎI¥¹œÇÚ+·YðtüûG¶ÉÛÁçÆ¾»“ë~m_Í ´eÇž¯\uôÛ;ã:Oí/ùÒu7Ï¿…ªYB¯Åªá1{»Åñ˜.Èw®‹0«‚ž·§¼_]„öÙ‡•Aª‰°Õ6 ˆy÷ˆß3î{õ\4ÊLez ¯Ø*wêÉCàãÉGœRØ¡f:ûQ ?fb×ÚÔ;l+Ž—{|¯É§šsóáέƒ&‘ĤõÖý·ÛBÜcoÅËÏÕÁ(<Åù Œ%ÄŸ`žX;HO0ï3ê/Ö…·}Û¥û³ cÒ; nšÒréqd˜Å]ør ²Û5X‹Þ$„ºmtÙ ÍÆ+"w^Ò‡[:oš-ÇO€ØÅN‹};à㉫žo»nBâiÖcEG† «A(㡯>„ÞšŒ3àÍSõƒKaÄœ®Ù%Î<’M²áÇMâ¦AÅgÆrÂŽàs«bû>cÈu‘<ù*0ºE­w±vCj¿€Ãì^Q>–ѧ'CŒ[é¸Qä"è[¤ŠeŒ_ ÒêO¥–p½§¦]\Vƒˤækì•A;÷¸çFXÇ[¬º¯ *jëf5}+ÚêMÛf…„”|ˆyñ²©Ø†à0:±‹®®†ºØV'Ç›Aóñþ»'ÈM![AG€\˜²ABðdßbÕ¾ö\U:/g.¬ôK rÚä| ’æ³ÜwOî‡<÷iG>Bô¾3^ËnJ~ZÇ©Y–虬_º@ûÖyù¢ Z¶Ðr×"‰x³}º] âSÅãêG`¯tZc%Ó_ýÆy/ÝS87${Ÿ{‚dæ´Jí z:¿j öÀÞ8oȳP’Ør2û¸óÁnȳÚë[~h\½lܳ¸d+¼æRž~`¢ |XÏj ªÆðr–ž>œ1tÌÛAã"¨a„okáF‚C^»Øû<½ºZF³e+´*œÚÑ:¥’`0œPpåK $Ðð ©jÇ0Ë*Áöt¨Í ñ÷í‡òÕFÅsáÃå›J;Þ‚Ûµb›Õ¯v¿1§¿ ߻饃=ô™ì5Xõ25n®¼7f˜ëçT…[5ë9…iå –ÉÛiùyŽA.7Epñ-ÕH×õ;¹znå»ÒS ç…pb]#dµÜêÉM”‚Ør»•»ðÆ5÷v¹+dKŠ¿mk«…W\~Uëß•I¶MÑö÷,_ †¾±´¬¼FY—Ù Ö» ïir-üâ»7”ª;®çÄë™lô)¥·•Û v4.Ï?ü ’ù ’6ߣ…~¶ÃIÞwOðú´‰÷!ƒ§(þ \äÞÛ¶ÒÂXò׬0¶ä.‚Ý¥F 2î^yÞ­Krz9´Ü[ë|Àõ2TݛǾ,ý<¤ÉÌ·ìë[„or7ÓSßW‹„A(Ô]wÍÙ@Lâ=°9ˆÒ^ãѶ­'æ3‰J³«CFƒ¼Lò|fœr·fdß{d~»€¿öblfíVpÔsdÖ˜ YWØ©O&–$G¯°íЄ¨ëÇÏÎ< @Ì(iìÎ$ÆW÷hf­×‡êër*[Bկחæv÷;½Ê5z(~4Ùñ¸’äÅZ>˜¾g 4_LºmhtíèÕiaa„Ü K¼û•]7;åŠÇ §@U·»¨/Aãß鬛•æôë@!«G^ø«ÓfÆJdÀ+Q»y»Ök´înBûém!ôfÞ@öÀîáÇ|;m6¥ ¾ßÇö†ù.¤˜/\c° ix<”c*³ƒêçÄ/NbeEÙ©5-©;ʼn!q6ÄëÉF.\ÊKqÕ/¦§zÙVïOÖ:úwlÃõúd°Yì¼0Ÿ\TT6ÊÅ«ÁóÉ‚¦ÛxÅÀ«½ò¨ÃF¸±b缸«kÚè±;ü„½ÆIW^™áO"]à=­8ïé§>¸cÏÝŸX k”òèïOò–u[Aðóþ5’0¾¨”³ººBÞf¨T¹[Ë'Ó=‡x™›/ñB‡èÐãJÝ;о‚u}øiø"½ÃN!9j›ô–&¿ÛŽ]Þé{ž†o:ࡼÝó² “E5—ñÞS(· {s\ ÚãÃ; ϦSwÔp7ËÀgÏà;Ç¡4sW³êá-PûÙæIx+AkfÛòz“#tÆì»Ðâ^ãk-j- mñÉl¿{êÄÏŒ –Ð× »FPŠÒžQ€ž¼fAZ€Râ«ð¡e=ã¸ÍK —ÏJsö…Â'C™¼|(HfÌŽ›o %¯Vgì…¶î&ÍÛ{$ eSÛµåw@ñ¶ÂñªRšP7Åð~â¤*(™rãs‰Ÿ/Á¤ó^Z*Ž µw¯uå_ƒZZ ÓýÖBG!³¡a,#tù¹/Ÿší@ÐËÖòDÙ,ƒìY¼Â“ u._Pÿ‘¶áñßdSØŒP5¾ùõ•"ÈžØEÛqÊ_® ì·87<ž=t[Q'CJMrüK ÉÂ(g¹þu¨Ÿ£ín±rÇUÔk쮀ôœ°Ns.è˜2›½ûÐ.b Wz×ä/FÐpƒ+^Å&êk­u¦3AQòÓÏÏn¯‡Ô¦pé¡’:hµ¬Ÿ}¥,Þ™–çÝÙã+–^0› u*;­×ׂ>ùnÚÝKÐR]*&a 1<Ÿ-8™a¼«Œûê!ÓJ$xÒâÓ7Ó ~7/Ä0°lue^E±òÆ Ã~àÅE·ê:¨OýhóúR74>;{¶ÈÌbØ/…ñ{-¼ õ·êùR%¡D²ÜjWÁbÈO*(Ë©é…~æ¹K¡­1wÛá${¨¨r4IY eÜÊ´Õg䠭䮦[„Á9ûÉàÒàuðáRÉq¾Gm½ÑÝy—ßùAúÚÊx»¡Êa?£ÖY(HK°Ø¶D¤9NÐwÙ°±v$@Œá¶ök1BÐtAýK¿qÐð¼fíʶV&èÔ±]ª!" õ[ª,y}'®/ðy ËŒVÛûAñÌOëÕýJ¡|dcäÖVHltwÆxrm¸yˆ`<©Ô"<µ*ã»-ú/Ñ@¶Û™m¶‘’Ð⦡þf^' ÈÝñÜ m Võ$Ô@g@Þªü%ð[aÚÀôÅP‘àKóè° Tn¹ì; IkJTÍù¦BjÙ6}©a^϶39þ3”ž8þy|´1ÜbfcË~D4\­IÐC/ßòmLúmP}Ù%S;:*6]ødªV 9!Âêý›Ý seøv¾žC¹äÚ‘Ø Èß’é¡}d´Ù«+è Ÿ.VíŠ+‚ÚRýd©½ÃóÏRIÓwý¬ÐV~àa|ðS¨ sw;ù¤r¶¾Xɾj2ÁZ±â<ÿIOH~gÏd¢~†`áñ{z”K ¿°}¶ÆŸ`nšÉÙf,½[gܹ;I Þeºê´L€ü*Ú®—›¡½ôfØò0ÈûÀ}PúþJ¨±?gÏuw5Áãà¡ÉÃå%–â´ 5÷Üí] º€ ±Lñvç ‡‚Þ×'')ƒüû“Xé†Ç£–mÌ–js¡–ÇV# ØºBË"®Ø´…MâÐ&¸Alíð<‰CÚÆ˜~?´Æpð-·-€ åó,‰ƒÎ’—’\[!oãyÙsÂK ¶/Íp.\†òJ³ålù 0 Ô5÷Œ,”²ºv}þqh9.䯹¿z²¸bï ÄAóIù¡KŠ[áãY!>=‚áñ>—‰Î†V{Mz¾ã¨ÜZ?EÈv ”KÆUM+!h¬rÛ›,GÌÍw¸®Y«ŒÄïB{`ô*9ñcÐʹÛ|ònMÈäÝæå4¥ \ö®8.µ ÊÓ?I˜L"Ø‹Þy¼â#¼Ï‰œ Ð`:8Ñþi"T~–æÎœ¡'­½Ï¶+BÃóеÉÚ£´¯À‚uUèÓ ”E5ÅÐYÕ»ë·WÜàóemŸëNYƒ'zõ‰ûèñ6fÊ90|® ¿ª„r> •{„Êù¡üPô~3ot^ —1’ÜæI9¿æ-%?-R[mµú Ao9ÁTIy›_8»Šc9AÏêS;iuTK^\"±¹6¯’ò‰i:qŠ×² ùÕÈÇ!úòü8Y¾kЪ׻‡5çôš«ZNášY´=r yò ]æÈî<ô>XâÏâ食”Y—ú4²FáÛz6¾HsÓzè©YN\ÝÇ‹ S ŽE“—¬Ö‚úÑO\΂¼ÜÔgÇÌ&áÒùVÇ)å£ßño‚¢Üêä ¹· 6kþÍoùÚ º%§ '*»ԨÃòÑÚðQfϰÂì níõéÉyN”ò]v#WN$ ¾„¡]÷í¡£xJµƒœ4%=ßondéÞ>Yl—(øµ­WçŸÏ¢¡ ÍÛΟ¹È >>P ßÿšjøöz•AøWx 9,ŒK ¯¯ÒÃÎÝYz÷F4ds¯U^¤%L'®¤ßûL÷U¹$Zgm!¿8è»SôþÄ%©‡FˆPò?Ž|¹KØÊºËãÓòˆYŠä™ˆìq§d­—eÜ«·®ËÓƒD®9‹ƒý} î¨Q÷ çVèÝÉö\P ڙשŠúB¡×{rÓÌ×±‚PÙoüvÓN¨Èž?1ÖâùWrå‹õ Ëñƒ†Ï¼Çlî+@ φ{nñÙðÁ|—yŸ&„×ò9P¶_«ç™@Žùè!Jù q¥_¸ A]çþúL+È‹ŸíU¥kHÉO5zyƾ ÌyK…gBØ>eñ…aF”|ÿ9bñE5/¤â¥‰ħ¿mf mƒXWD…ºa'¸*z•Öîû]çù¦#ã¸ß}í†w_Õ£rµkúÁ [ ˆ±T#‡JŽ*=lØîY»Îyïý’‚W¦oo5m7´T´ù9&ùNœPªöÞõfšŸ…¬‘ejÆÐ #†é°Õ³Ë~*%Î’ß+5}u0É$€`ö ï ~Y+Ò›°«"Í" ˆáInFø tëÃ0¤1rUIœÂ·`pkdñ bÞ³ˆƒò qNayQ‚5ÁÞä¼Ib‹?ô1׬”ùwD¤= ¾mDq÷!Oäî, Î(½ÞlÙÛÙûÈoQ~&¿uJÐKKdͬ­¥ðÉ30'J¡ >Z‡Í]xdt=™ì¯#@yë"D5Ž×Y™ oî¾@ Z.V\ÿäïñÉ[w¦?‚ùΆ±M&Ðj¾8ÕKõ)µž †+lšK„oŸ;ž> JO3½2|9`iÄ{ìÁ¿ñ¤ícbÚn릃K‡Ú~ädD•-šÄxÕWV¡õÃYÄ-î:EˆÍy3xÿt'´Êm©Ž*ßOLX:²of¹G­öHö@×è75wL>g·ô…Þƒô‘3<­¯  gno¥ 1cv׸ÌþýPl/wÙ[|_ŸäèµM†Úp-5¥ÅÐÊx`Ÿªf5TgÌZ¦æ]<ƒ=¥Bú"ò£½ ô˜<]Îe!C^}†ÜÉÛî>»Ê õ¶ÅDû±BÕŦñÛ fC}dÝímë 5é (?uÿ}†¸-DßñydSæH0¬ÓS÷V¿y£ÿ ·ÇCà­ ƒ•c$Á¾ö@£¨ŠA—aÌ+ñ®‘òb¿ÚSÃÃ57ijð‡ 7ïƒ04®ð“ïˆ)*!æ²vŽ|®:~ˆÇ­=ü4}a¢åsˆðeVi9>F\éòe)ÍÖ¼eÊ{fH’ë¨tÕÝB×¥±4@Ô–úö§ÄG¨*–ºuçZ1¯Hçæ;¡Þ§„7Þ˜¥“m|M˜?BîÒu–N» !#Ó ýpðzè7™Ù*’Ÿ (Ë…iõ¥!vóèW½!~êÑEl›ÌÀƒ+hÑÉýìP$rø^é¨ lzÄ¥U oÝC¹&}KÐJÎYZ¯sʦÞ5îçs‚6ÏP‰¼MӪ˙àCeEü ŽÃÄÄ}ç$·GjBÚcòcçœ#GgT!ÉÌÃøIPë»x×9Ib|Xé€CŸ0”J”úñ<+÷c±³{TÞAß›ªÝ³o^†JÛÿG3¡"–¼üœÀüþ9§ÚSÈDïXJ¤ ?S¥ïm…Ž#3TÈXž"ZWøŸòÇÚ©óÃëÑýQøØ/%2Ã4ø'2ƸéD/_kïIvN\zòr†½¶@d+Œ^%Ÿs"¤¦EJ¹Zƒ/zy@i" ƒhD=$g-ñ.í\^Wž¬gK¸ ~)k¤÷¨×CÖæ)ƒÉqÅå»AþzÝ.ð:¶ ,¡ RF¿O ƒƒ³Ót”à w«Á|Î^¨Ôh^R­ú<+Goñ@zAâȧQ§)A厃7âei¡"ÍžG}ÏnÈ9ã´(JÉ ´o>_×´êRÔµM–@ÙÈÑ*âD©;æl‹¼Ep©Æô® t‚·£wû¹ºW‡ò6ÄArË•‰›‚#aœ˜ õ¥M…´7õ!tݵNæEç¡°å¼Ä`%´Éƒ2Ñ£ç_!礋]’ÃzbÁTå~Žb1ˆyûÁW’'˜RÔvU«W` yÄKÏ~ZG>•~ZªºF¤²tÊlO}j t?½DpÊóKz0 Tä!t” > Ü–æ4M‚‡³&œÝ8©~¢j9u ìðû>>øX{¥s{6g+u ?…`³ 5‘qæð6&…Ýú@qã±à«Ã†/×?ž nyµfÍM]‚¦±ûÒE£JHŽ—¥IVxI24’óˆ ;G DB,­É+ó«‚ðq—WcD'>sÙa•+_, ½åKp|*¶-ꂪÁx»YîùãN÷t–˜fhÏÍ›òÆ»üFýû$ˆX¸…Ùm‡¤²kï˜ÜeC°ÍÚe»Ûrjך¥| ª‡˜à1‡¢…ÇŽ¸jCàð,ýâÜÇq&ÌuŽøVf¯åòøå6ÍÐÿdƪ>õphangorn/R/treedist.R0000644000176200001440000010370613236366252014254 0ustar liggesusers# # tree distance functions # allKids <- function(phy){ nTips <- as.integer(length(phy$tip.label)) lp <- nrow(phy$edge) nNode <- phy$Nnode .C("AllKids", as.integer(phy$edge[,2]), as.integer(phy$edge[,1]), as.integer(nTips), as.integer(nNode), as.integer(lp), integer(lp), integer(nNode+1L),integer(nNode)) } coph <- function(x, path=FALSE){ if (is.null(attr(x, "order")) || attr(x, "order") == "cladewise") x <- reorder(x, "postorder") nTips <- as.integer(length(x$tip.label)) parents <- as.integer(x$edge[,1]) kids <- as.integer(x$edge[,2]) lp <- as.integer(length(parents)) nNode <- as.integer(x$Nnode) m <- as.integer(max(x$edge)) el <- double(m) if(path) el <- rep(1.0, m) else el[kids] <- x$edge.length dm <- .C("C_cophenetic", kids, parents, as.double(el), lp, m, nTips, nNode, double(nTips*(nTips-1L)/2L))[[8]] attr(dm, "Size") <- nTips attr(dm, "Labels") <- x$tip.label attr(dm, "Diag") <- FALSE attr(dm, "Upper") <- FALSE class(dm) <- "dist" dm } cophenetic.splits <- function(x){ labels <- attr(x, "labels") X <- splits2design(x) dm <- as.vector(X%*%attr(x, "weight")) attr(dm, "Size") <- length(labels) attr(dm, "Labels") <- labels attr(dm, "Diag") <- FALSE attr(dm, "Upper") <- FALSE class(dm) <- "dist" dm } #' Pairwise Distances from a Phylogenetic Network #' #' \code{cophenetic.networx} computes the pairwise distances between the pairs #' of tips from a phylogenetic network using its branch lengths. #' #' #' @aliases cophenetic.networx cophenetic.splits #' @param x an object of class \code{networx}. #' @return an object of class \code{dist}, names are set according to the tip #' labels (as given by the element \code{tip.label} of the argument \code{x}). #' @author Klaus Schliep #' @seealso \code{\link[stats]{cophenetic}} for the generic function, #' \code{neighborNet} to construct a network from a distance matrix #' @keywords manip cophenetic.networx <- function(x){ # spl <- attr(x, "splits") spl <- x$splits cophenetic.splits(spl) } SHORTwise <- function (x, nTips, delete=FALSE) { v <- 1:nTips l <- lengths(x) lv <- floor(nTips/2) for (i in seq_along(x)) { if(l[i]>lv){ y <- x[[i]] x[[i]] <- v[-y] } if(l[i]==nTips/2){ y <- x[[i]] if (y[1] != 1) x[[i]] <- v[-y] } } if(any(l==nTips) && delete){ x <- x[l!=nTips] } x } oneWise <- function (x, nTips=NULL) { if(is.null(nTips))nTips <- length(x[[1L]]) v <- 1:nTips for (i in seq_along(x)) { y <- x[[i]] if (y[1] != 1) y <- v[-y] if (y[1] != 1) y <- v[-y] x[[i]] <- y } x } zeroWise <- function (x, nTips=NULL) { if(is.null(nTips))nTips <- length(x[[1L]]) v <- 1:nTips for (i in seq_along(x)) { y <- x[[i]] if (y[1] == 1) y <- v[-y] x[[i]] <- y } x } ## @aliases treedist RF.dist wRF.dist KF.dist path.dist sprdist SPR.dist #' Distances between trees #' #' \code{treedist} computes different tree distance methods and \code{RF.dist} #' the Robinson-Foulds or symmetric distance. The Robinson-Foulds distance only #' depends on the toplogy of the trees. If edge weights should be considered #' \code{wRF.dist} calculates the weighted RF distance (Robinson & Foulds #' 1981). and \code{KF.dist} calculates the branch score distance (Kuhner & #' Felsenstein 1994). \code{path.dist} computes the path difference metric as #' described in Steel and Penny 1993). #' \code{sprdist} computes the approximate SPR distance (Oliveira Martins et #' al. 2008, de Oliveira Martins 2016). #' #' @details The Robinson-Foulds distance between two trees \eqn{T_1} and \eqn{T_2} with #' \eqn{n} tips is defined as (following the notation Steel and Penny 1993): #' \deqn{d(T_1, T_2) = i(T_1) + i(T_2) - 2v_s(T_1, T_2)} where \eqn{i(T_1)} #' denotes the number of internal edges and \eqn{v_s(T_1, T_2)} denotes the #' number of internal splits shared by the two trees. The normalized #' Robinson-Foulds distance is derived by dividing \eqn{d(T_1, T_2)} by the #' maximal possible distance \eqn{i(T_1) + i(T_2)}. If both trees are unrooted #' and binary this value is \eqn{2n-6}. #' #' Functions like \code{RF.dist} returns the Robinson-Foulds distance (Robinson #' and Foulds 1981) between either 2 trees or computes a matrix of all pairwise #' distances if a \code{multiPhylo} object is given. #' #' For large number of trees the distance functions can use a lot of memory! #' #' @param tree1 A phylogenetic tree (class \code{phylo}) or vector of trees (an #' object of class \code{multiPhylo}). See details #' @param tree2 A phylogenetic tree. #' @param normalize compute normalized RF-distance, see details. #' @param check.labels compares labels of the trees. #' @param rooted take bipartitions for rooted trees into account, default is #' unrooting the trees. #' @param use.weight use edge.length argument or just count number of edges on #' the path (default) #' @return \code{treedist} returns a vector containing the following tree #' distance methods \item{symmetric.difference}{symmetric.difference or #' Robinson-Foulds distance} #' \item{branch.score.difference}{branch.score.difference} #' \item{path.difference}{path.difference} #' \item{weighted.path.difference}{weighted.path.difference} #' @author Klaus P. Schliep \email{klaus.schliep@@gmail.com}, #' Leonardo de Oliveira Martins #' @seealso \code{\link[ape]{dist.topo}}, \code{\link{nni}}, #' \code{\link{superTree}}, \code{\link{mast}} #' @references de Oliveira Martins L., Leal E., Kishino H. (2008) #' \emph{Phylogenetic Detection of Recombination with a Bayesian Prior on the #' Distance between Trees}. PLoS ONE \bold{3(7)}. e2651. doi: #' 10.1371/journal.pone.0002651 #' #' de Oliveira Martins L., Mallo D., Posada D. (2016) \emph{A Bayesian #' Supertree Model for Genome-Wide Species Tree Reconstruction}. Syst. Biol. #' \bold{65(3)}: 397-416, doi:10.1093/sysbio/syu082 #' #' Steel M. A. and Penny P. (1993) \emph{Distributions of tree comparison #' metrics - some new results}, Syst. Biol., \bold{42(2)}, 126--141 #' #' Kuhner, M. K. and Felsenstein, J. (1994) \emph{A simulation comparison of #' phylogeny algorithms under equal and unequal evolutionary rates}, Molecular #' Biology and Evolution, \bold{11(3)}, 459--468 #' #' D.F. Robinson and L.R. Foulds (1981) \emph{Comparison of phylogenetic #' trees}, Mathematical Biosciences, \bold{53(1)}, 131--147 #' #' D.F. Robinson and L.R. Foulds (1979) Comparison of weighted labelled trees. #' In Horadam, A. F. and Wallis, W. D. (Eds.), \emph{Combinatorial Mathematics #' VI: Proceedings of the Sixth Australian Conference on Combinatorial #' Mathematics, Armidale, Australia}, 119--126 #' @keywords classif #' @examples #' #' tree1 <- rtree(100, rooted=FALSE) #' tree2 <- rSPR(tree1, 3) #' RF.dist(tree1, tree2) #' treedist(tree1, tree2) #' sprdist(tree1, tree2) #' trees <- rSPR(tree1, 1:5) #' SPR.dist(tree1, trees) #' #' @rdname treedist #' @export treedist treedist <- function (tree1, tree2, check.labels=TRUE) { if(has.singles(tree1)) tree1 <- collapse.singles(tree1) if(has.singles(tree2)) tree2 <- collapse.singles(tree2) tree1 <- unroot(tree1) tree2 <- unroot(tree2) if (check.labels) { ind <- match(tree1$tip.label, tree2$tip.label) if (any(is.na(ind)) | length(tree1$tip.label) != length(tree2$tip.label)) stop("trees have different labels") tree2$tip.label <- tree2$tip.label[ind] ind2 <- match(seq_along(ind), tree2$edge[, 2]) tree2$edge[ind2, 2] <- order(ind) } tree1 <- reorder(tree1, "postorder") tree2 <- reorder(tree2, "postorder") symmetric.difference <- NULL branch.score.difference <- NULL path.difference <- NULL quadratic.path.difference <- NULL if(!is.binary(tree1) | !is.binary(tree2))message("Trees are not binary!") bp1 <- bip(tree1) bp2 <- bip(tree2) bp1 <- SHORTwise(bp1, length(tree1$tip.label)) bp2 <- SHORTwise(bp2, length(tree2$tip.label)) bp1 <- sapply(bp1, paste, collapse = "_") bp2 <- sapply(bp2, paste, collapse = "_") l <- length(tree1$tip.label) if (!is.null(tree1$edge.length) & !is.null(tree2$edge.length)) { dv1 <- coph(tree1) dv2 <- coph(tree2) quadratic.path.difference <- sqrt(sum((dv1 - dv2)^2)) } RF <- sum(match(bp1, bp2, nomatch=0L)==0L) + sum(match(bp2, bp1, nomatch=0L)==0L) symmetric.difference <- RF #2 * (p - sum(r1)) if (!is.null(tree1$edge.length) & !is.null(tree2$edge.length)) { w1 <- numeric(max(tree1$edge)) w2 <- numeric(max(tree2$edge)) w1[tree1$edge[,2]] <- tree1$edge.length w2[tree2$edge[,2]] <- tree2$edge.length v1 <- tree1$edge.length v2 <- tree2$edge.length ind3 <- match(bp1, bp2, nomatch=0L) ind4 <- ind3[ind3>0] ind3 <- which(ind3>0) s1 <- sum((w1[ind3] - w2[ind4])^2) s2 <- sum(w1[-ind3]^2) s3 <- sum(w2[-ind4]^2) branch.score.difference <- sqrt(s1 + s2 + s3) } tree1$edge.length <- rep(1, nrow(tree1$edge)) tree2$edge.length <- rep(1, nrow(tree2$edge)) dt1 <- coph(tree1) dt2 <- coph(tree2) path.difference <- sqrt(sum((dt1 - dt2)^2)) result <- c(symmetric.difference = symmetric.difference, branch.score.difference = branch.score.difference, path.difference = path.difference, quadratic.path.difference = quadratic.path.difference) result } # leomrtns addition #' @rdname treedist #' @export sprdist <- function (tree1, tree2) { if(has.singles(tree1)) tree1 <- collapse.singles(tree1) if(has.singles(tree2)) tree2 <- collapse.singles(tree2) tree1 <- unroot(tree1) tree2 <- unroot(tree2) lt1 <- length(tree1$tip.label) lt2 <- length(tree2$tip.label) # checking labels is obligatory for spr (user should prune one of them # beforehand?) ind <- match(tree1$tip.label, tree2$tip.label) if (any(is.na(ind)) | lt1 != lt2 ) stop("trees have different labels") tree2$tip.label <- tree2$tip.label[ind] ind2 <- match(seq_along(ind), tree2$edge[, 2]) tree2$edge[ind2, 2] <- order(ind) # same as in original treedist (will create list of strings with shorter # side of splits) tree1 <- reorder(tree1, "postorder") tree2 <- reorder(tree2, "postorder") if(!is.binary(tree1) | !is.binary(tree2))message("Trees are not binary!") # possibly replace bip with bipart bp1 <- bip(tree1) bp1 <- SHORTwise(bp1, lt1) bp2 <- bip(tree2) bp2 <- SHORTwise(bp2, lt2) bp1 <- bp1[ lengths(bp1)>1 ] # only internal nodes bp2 <- bp2[ lengths(bp2)>1 ] if (length(bp1) != length(bp2)) stop ("number of bipartitions given to C_sprdist are not the same") # OBS: SPR distance works w/ incompatible splits only, but it needs common cherries (to replace by single leaf) spr <- .Call("C_sprdist", bp1, bp2, lt1) names(spr) <- c("spr", "spr_extra", "rf", "hdist") # list("spr" = spr[1], "spr_extra" = spr[2], "rf" = spr[3], "hdist"= spr[4]); spr } SPR1 <- function(trees){ trees <- .compressTipLabel(trees) trees <- .uncompressTipLabel(trees) trees <- lapply(trees, unroot) if(any(has.singles(trees))) trees <- lapply(trees, collapse.singles) trees <- lapply(trees, reorder, "postorder") nTips <- length(trees[[1]]$tip.label) fun <- function(x, nTips){ bp <- bipart(x) bp <- SHORTwise(bp, nTips) bp <- bp[ lengths(bp)>1 ] bp } BP <- lapply(trees, fun, nTips) k <- 1 l <- length(trees) SPR <- numeric((l * (l - 1))/2) for (i in 1:(l - 1)){ bp <- BP[[i]] for (j in (i + 1):l){ SPR[k] <- .Call("C_sprdist", bp, BP[[j]], nTips)[1] k <- k+1 } } attr(SPR, "Size") <- l if(!is.null(names(trees)))attr(SPR, "Labels") <- names(trees) attr(SPR, "Diag") <- FALSE attr(SPR, "Upper") <- FALSE class(SPR) <- "dist" return(SPR) } SPR2 <- function(tree, trees){ trees <- .compressTipLabel(trees) tree <- checkLabels(tree, attr(trees, "TipLabel")) trees <- .uncompressTipLabel(trees) if (any(is.rooted(trees))) { trees <- unroot(trees) } if(any(has.singles(trees))) trees <- lapply(trees, collapse.singles) trees <- lapply(trees, reorder, "postorder") tree <- unroot(tree) if(has.singles(tree)) tree <- collapse.singles(tree) nTips <- length(tree$tip.label) fun <- function(x, nTips){ bp <- bipart(x) bp <- SHORTwise(bp, nTips) bp <- bp[ lengths(bp)>1 ] bp } bp <- fun(tree, nTips) k <- 1 l <- length(trees) SPR <- numeric(l) for (i in 1:l){ SPR[i] <- .Call("C_sprdist", bp, fun(trees[[i]], nTips), nTips)[1] } if(!is.null(names(trees)))names(SPR) <- names(trees) return(SPR) } #' @rdname treedist #' @export SPR.dist <- function(tree1, tree2=NULL){ if(inherits(tree1, "multiPhylo") && is.null(tree2))return(SPR1(tree1)) if(inherits(tree1, "phylo") && inherits(tree2, "phylo"))return(sprdist(tree1, tree2)[1]) if(inherits(tree1, "phylo") && inherits(tree2, "multiPhylo"))return(SPR2(tree1, tree2)) if(inherits(tree2, "phylo") && inherits(tree1, "multiPhylo"))return(SPR2(tree2, tree1)) return(NULL) } wRF0 <- function(tree1, tree2, normalize=FALSE, check.labels=TRUE, rooted = FALSE){ r1 <- is.rooted(tree1) r2 <- is.rooted(tree2) if (r1 != r2) { message("one tree is unrooted, unrooted both") } if (!rooted) { if (r1) tree1 <- unroot(tree1) if (r2) tree2 <- unroot(tree2) } if (!r1 | !r2) { if (r1) tree1 <- unroot(tree1) if (r2) tree2 <- unroot(tree2) } if (!is.binary(tree1) | !is.binary(tree2)) message("Trees are not binary!") if (check.labels) { ind <- match(tree1$tip.label, tree2$tip.label) if (any(is.na(ind)) | length(tree1$tip.label) != length(tree2$tip.label)) stop("trees have different labels") tree2$tip.label <- tree2$tip.label[ind] ind2 <- match(seq_along(ind), tree2$edge[, 2]) tree2$edge[ind2, 2] <- order(ind) } if(has.singles(tree1)) tree1 <- collapse.singles(tree1) if(has.singles(tree2)) tree2 <- collapse.singles(tree2) bp1 <- bip(tree1) bp2 <- bip(tree2) if (!rooted) { bp1 <- SHORTwise(bp1, length(tree1$tip.label)) bp2 <- SHORTwise(bp2, length(tree2$tip.label)) } bp1 <- sapply(bp1, paste, collapse = "_") bp2 <- sapply(bp2, paste, collapse = "_") w1 <- numeric(max(tree1$edge)) w2 <- numeric(max(tree2$edge)) w1[tree1$edge[,2]] <- tree1$edge.length w2[tree2$edge[,2]] <- tree2$edge.length ind3 <- match(bp1, bp2, nomatch=0L) ind4 <- ind3[ind3>0] ind3 <- which(ind3>0) s1 <- sum(abs(w1[ind3] - w2[ind4])) s2 <- sum(w1[-ind3]) s3 <- sum(w2[-ind4]) wRF <- s1 + s2 + s3 if(normalize) wRF <- wRF / (sum(tree1$edge.length) + sum(tree2$edge.length)) return(wRF) } wRF2 <- function(tree, trees, normalize=FALSE, check.labels = TRUE, rooted=FALSE){ if(check.labels){ trees <- .compressTipLabel(trees) tree <- checkLabels(tree, attr(trees, "TipLabel")) } trees <- .uncompressTipLabel(trees) if (rooted & any(!is.rooted(trees))){ warning("some trees were rooted, unrooted all") rooted <- FALSE } if(!rooted){ if (any(is.rooted(trees))) { trees <- unroot(trees) } } if(any(has.singles(trees))) trees <- lapply(trees, collapse.singles) if(has.singles(tree)) tree <- collapse.singles(tree) unclass(trees) nTips <- length(tree$tip.label) fun1 <- function(x){ w <- numeric(max(x$edge)) w[x$edge[,2]] <- x$edge.length w } W <- lapply(trees, fun1) fun2 <- function(x, nTips){ bp <- bip(x) bp <- SHORTwise(bp, nTips) bp <- sapply(bp, paste, collapse = "_") bp } fun3 <- function(x, nTips){ bp <- bip(x) bp <- sapply(bp, paste, collapse = "_") bp } if(rooted) BP <- lapply(trees, fun3, nTips) else BP <- lapply(trees, fun2, nTips) if(!rooted & is.rooted(tree)) tree <- unroot(tree) bp <- bip(tree) if(!rooted) bp <- SHORTwise(bp, nTips) bp <- sapply(bp, paste, collapse = "_") w <- numeric(max(tree$edge)) w[tree$edge[,2]] <- tree$edge.length l <- length(trees) wRF <- numeric(l) for(i in 1:l){ ind3 <- fmatch(BP[[i]], bp, nomatch=0L) ind4 <- ind3[ind3>0] ind3 <- which(ind3>0) s1 <- sum(abs(W[[i]][ind3] - w[ind4])) s2 <- sum(W[[i]][-ind3]) s3 <- sum(w[-ind4]) wRF[i] <- (s1 + s2 + s3) } if(normalize){ sc <- sapply(trees, function(x)sum(x$edge.length)) + sum(tree$edge.length) wRF <- wRF / sc } wRF } wRF1 <- function(trees, normalize=FALSE, check.labels = TRUE, rooted=FALSE){ if(check.labels) trees <- .compressTipLabel(trees) trees <- .uncompressTipLabel(trees) if (rooted & any(!is.rooted(trees))){ warning("some trees were rooted, unrooted all") rooted <- FALSE } if(!rooted){ if (any(is.rooted(trees))) { trees <- unroot(trees) } } if(any(has.singles(trees))) trees <- lapply(trees, collapse.singles) unclass(trees) nTips <- length(trees[[1]]$tip.label) fun1 <- function(x){ w <- numeric(max(x$edge)) w[x$edge[,2]] <- x$edge.length w } W <- lapply(trees, fun1) fun2 <- function(x, nTips){ bp <- bip(x) bp <- SHORTwise(bp, nTips) bp <- sapply(bp, paste, collapse = "_") bp } fun3 <- function(x, nTips){ bp <- bip(x) bp <- sapply(bp, paste, collapse = "_") bp } if(normalize) sc <- sapply(trees, function(x)sum(x$edge.length)) if(rooted) BP <- lapply(trees, fun3, nTips) else BP <- lapply(trees, fun2, nTips) k <- 1 l <- length(trees) wRF <- numeric((l * (l - 1))/2) for (i in 1:(l - 1)){ bp <- BP[[i]] w <- W[[i]] for (j in (i + 1):l){ ind3 <- fmatch(BP[[j]], bp, nomatch=0L) ind4 <- ind3[ind3>0] ind3 <- which(ind3>0) s1 <- sum(abs(W[[j]][ind3] - w[ind4])) s2 <- sum(W[[j]][-ind3]) s3 <- sum(w[-ind4]) wRF[k] <- (s1 + s2 + s3) if(normalize) wRF[k] <- wRF[k] / (sc[i] + sc[j]) k <- k+1 } } attr(wRF, "Size") <- l if(!is.null(names(trees)))attr(wRF, "Labels") <- names(trees) attr(wRF, "Diag") <- FALSE attr(wRF, "Upper") <- FALSE class(wRF) <- "dist" return(wRF) } mRF2 <- function(tree, trees, normalize=FALSE, check.labels = TRUE, rooted=FALSE){ if (!inherits(trees,"multiPhylo")) stop("trees should be an object of class \"multiPhylo\"") if (!inherits(tree,"phylo")) stop("trees should be an object of class \"phylo\"") trees <- .compressTipLabel(trees) tipLabel <- attr(trees, "TipLabel") if (check.labels) { ind <- match(tipLabel, tree$tip.label) if (any(is.na(ind)) | length(tipLabel) != length(tree$tip.label)) stop("trees have different labels") tree$tip.label <- tree$tip.label[ind] ind2 <- match(seq_along(ind), tree$edge[, 2]) tree$edge[ind2, 2] <- order(ind) } nTips <- length(tipLabel) l <- length(trees) RF <- numeric(l) trees <- .uncompressTipLabel(trees) if(any(has.singles(trees))) trees <- lapply(trees, collapse.singles) if(has.singles(tree)) tree <- collapse.singles(tree) # trees <- unclass(trees) if(!rooted & any(is.rooted(trees))) { warning("some trees were rooted, unrooted all") trees <- unroot(trees) } if(!rooted & is.rooted(tree))tree <- unroot(tree) if (any(!is.binary(trees))) { message("Some trees are not binary. Result may not what you expect!") } tree <- reorder(tree, "postorder") trees <- reorder(trees, "postorder") xx <- lapply(trees, bipart) if(!rooted)xx <- lapply(xx, SHORTwise, nTips) xx <- lapply(xx,function(x)sapply(x, paste, collapse="_")) yy <- bipart(tree) if(!rooted)yy <- SHORTwise(yy, nTips) yy <- sapply(yy, paste, collapse="_") NnodeT <- Nnode(tree) Nnodes <- Nnode(trees) for (i in 1:l){ RF[i] <- Nnodes[i] + NnodeT - 2 * sum(fmatch(xx[[i]], yy, nomatch=0L)>0L) # RF[i] <- sum(match(xx[[i]], yy, nomatch=0L)==0L) + sum(match(yy, xx[[i]], nomatch=0L)==0L) } if(!is.null(names(trees)))names(RF) <- names(trees) if(!normalize)return(RF) else{ sc <- Nnode(trees) + Nnode(tree) - 2 return(RF/sc) } } mRF<-function(trees, normalize=FALSE, rooted=FALSE){ if (!inherits(trees,"multiPhylo")) stop("trees should be an object of class \"multiPhylo\"") trees <- .compressTipLabel(trees) tipLabel <- attr(trees, "TipLabel") nTips <- length(tipLabel) l <- length(trees) RF <- numeric((l * (l - 1))/2) if (rooted & any(!is.rooted(trees))){ warning("some trees were rooted, unrooted all") rooted <- FALSE } if(!rooted){ if (any(is.rooted(trees))) { trees <- unroot(trees) } } if(any(has.singles(trees))) trees <- lapply(trees, collapse.singles) # n <- length(attr(trees, "TipLabel")) # if (any(sapply(trees, is.rooted))) { # warning("some trees were rooted, unrooted all") # trees <- lapply(trees, unroot) # } if (any(!is.binary(trees))) { message("Some trees are not binary. Result may not what you expect!") } # trees <- reorder(trees, "postorder") # trees <- lapply(trees, reorder, "postorder") trees <- .uncompressTipLabel(trees) trees <- unclass(trees) xx <- lapply(trees, bipart) if(!rooted) xx <- lapply(xx, SHORTwise, nTips) xx <- lapply(xx,function(x)sapply(x, paste, collapse="_")) # returns list of character vectors Nnodes <- sapply(trees, Nnode) k <- 1 for (i in 1:(l - 1)){ tmp <- xx[[i]] for (j in (i + 1):l){ RF[k] <- Nnodes[i] + Nnodes[j] - 2 * sum(fmatch(xx[[j]], tmp, nomatch=0L)>0L) # RF[k] <- sum(match(xx[[j]], tmp, nomatch=0L)==0L) + sum(match(tmp, xx[[j]], nomatch=0L)==0L) if(normalize) RF[k] <- RF[k] / ( Nnodes[i] + Nnodes[j] - 2) k <- k+1 } } attr(RF, "Size") <- l if(!is.null(names(trees)))attr(RF, "Labels") <- names(trees) attr(RF, "Diag") <- FALSE attr(RF, "Upper") <- FALSE class(RF) <- "dist" return(RF) } RF0 <- function(tree1, tree2=NULL, normalize=FALSE, check.labels = TRUE, rooted=FALSE){ if(has.singles(tree1)) tree1 <- collapse.singles(tree1) if(has.singles(tree2)) tree2 <- collapse.singles(tree2) r1 <- is.rooted(tree1) r2 <- is.rooted(tree2) if(!rooted){ if(r1) { tree1<-unroot(tree1) r1 <- FALSE } if(r2) { tree2<-unroot(tree2) r2 <- FALSE } } else{ if(r1 != r2) { message("one tree is unrooted, unrooted both") tree1<-unroot(tree1) tree2<-unroot(tree2) r1 <- r2 <- FALSE } } if (check.labels) { ind <- match(tree1$tip.label, tree2$tip.label) if (any(is.na(ind)) | length(tree1$tip.label) != length(tree2$tip.label)) stop("trees have different labels") tree2$tip.label <- tree2$tip.label[ind] # tree2$edge[match(ind, tree2$edge[, 2]), 2] <- 1:length(ind) ind2 <- match(seq_along(ind), tree2$edge[, 2]) tree2$edge[ind2, 2] <- order(ind) } if(!is.binary(tree1) | !is.binary(tree2))message("Trees are not binary!") bp1 <- bipart(tree1) bp2 <- bipart(tree2) nTips <- length(tree1$tip.label) if(!rooted){ bp1 <- SHORTwise(bp1, nTips) bp2 <- SHORTwise(bp2, nTips) } RF <- sum(match(bp1, bp2, nomatch=0L)==0L) + sum(match(bp2, bp1, nomatch=0L)==0L) if(normalize) RF <- RF / (Nnode(tree1) + Nnode(tree2) - 2) RF } #' @rdname treedist #' @export RF.dist <- function(tree1, tree2=NULL, normalize=FALSE, check.labels = TRUE, rooted=FALSE) { if(class(tree1)=="phylo" && class(tree2)=="phylo")return(RF0(tree1, tree2, normalize, check.labels, rooted)) if(class(tree1)=="multiPhylo" && is.null(tree2))return(mRF(tree1, normalize, rooted)) if(class(tree1)=="phylo" && class(tree2)=="multiPhylo")return(mRF2(tree1, tree2, normalize, check.labels, rooted)) if(class(tree2)=="phylo" && class(tree1)=="multiPhylo")return(mRF2(tree2, tree1, normalize, check.labels, rooted)) else return(NULL) } #' @rdname treedist #' @export wRF.dist <- function(tree1, tree2=NULL, normalize=FALSE, check.labels = TRUE, rooted=FALSE){ if(class(tree1)=="phylo" && class(tree2)=="phylo")return(wRF0(tree1, tree2, normalize, check.labels, rooted)) if(class(tree1)=="multiPhylo" && is.null(tree2))return(wRF1(tree1, normalize, check.labels, rooted)) if(class(tree1)=="phylo" && class(tree2)=="multiPhylo")return(wRF2(tree1, tree2, normalize, check.labels, rooted)) if(class(tree2)=="phylo" && class(tree1)=="multiPhylo")return(wRF2(tree2, tree1, normalize, check.labels, rooted)) else return(NULL) } kf0 <- function(tree1, tree2, check.labels = TRUE, rooted=FALSE){ if(check.labels)tree2 <- checkLabels(tree2, tree1$tip.label) if(has.singles(tree1)) tree1 <- collapse.singles(tree1) if(has.singles(tree2)) tree2 <- collapse.singles(tree2) r1 <- is.rooted(tree1) r2 <- is.rooted(tree2) if(!rooted){ if(r1) tree1<-unroot(tree1) if(r2) tree2<-unroot(tree2) } else{ if(r1 != r2) { message("one tree is unrooted, unrooted both") tree1 <- unroot(tree1) tree2 <- unroot(tree2) r1 <- r2 <- FALSE } } bp1 <- bip(tree1) bp2 <- bip(tree2) if(!rooted){ bp1 <- SHORTwise(bp1, length(tree1$tip.label)) bp2 <- SHORTwise(bp2, length(tree2$tip.label)) } bp1 <- sapply(bp1, paste, collapse = "_") bp2 <- sapply(bp2, paste, collapse = "_") w1 <- numeric(max(tree1$edge)) w2 <- numeric(max(tree2$edge)) w1[tree1$edge[,2]] <- tree1$edge.length w2[tree2$edge[,2]] <- tree2$edge.length ind3 <- match(bp1, bp2, nomatch=0L) ind4 <- ind3[ind3>0] ind3 <- which(ind3>0) s1 <- sum((w1[ind3] - w2[ind4])^2) s2 <- sum(w1[-ind3]^2) s3 <- sum(w2[-ind4]^2) branch.score.difference <- sqrt(s1 + s2 + s3) branch.score.difference } kf1 <- function(tree, trees, check.labels = TRUE, rooted=FALSE){ if(check.labels){ trees <- .compressTipLabel(trees) tree <- checkLabels(tree, attr(trees, "TipLabel")) } trees <- .uncompressTipLabel(trees) if(any(has.singles(trees))) trees <- lapply(trees, collapse.singles) if(has.singles(tree)) tree <- collapse.singles(tree) if (rooted & any(!is.rooted(trees))){ warning("some trees were rooted, unrooted all") rooted <- FALSE } if(!rooted){ if (any(is.rooted(trees))) { trees <- unroot(trees) } } unclass(trees) # if (any(sapply(trees, is.rooted))) { # trees <- lapply(trees, unroot) # } nTips <- length(tree$tip.label) fun1 <- function(x){ w <- numeric(max(x$edge)) w[x$edge[,2]] <- x$edge.length w } W <- lapply(trees, fun1) fun2 <- function(x, nTips){ bp <- bip(x) bp <- SHORTwise(bp, nTips) bp <- sapply(bp, paste, collapse = "_") bp } fun3 <- function(x, nTips){ bp <- bip(x) bp <- sapply(bp, paste, collapse = "_") bp } if(rooted) BP <- lapply(trees, fun3, nTips) else BP <- lapply(trees, fun2, nTips) if(!rooted & is.rooted(tree)) tree <- unroot(tree) bp <- bip(tree) if(!rooted) bp <- SHORTwise(bp, nTips) bp <- sapply(bp, paste, collapse = "_") w <- numeric(max(tree$edge)) w[tree$edge[,2]] <- tree$edge.length l <- length(trees) branch.score.difference <- numeric(l) for(i in 1:l){ ind3 <- fmatch(BP[[i]], bp, nomatch=0L) ind4 <- ind3[ind3>0] ind3 <- which(ind3>0) s1 <- sum((W[[i]][ind3] - w[ind4])^2) s2 <- sum(W[[i]][-ind3]^2) s3 <- sum(w[-ind4]^2) branch.score.difference[i] <- sqrt(s1 + s2 + s3) } branch.score.difference } kf2 <- function(trees, check.labels = TRUE, rooted=FALSE){ if(check.labels) trees <- .compressTipLabel(trees) trees <- .uncompressTipLabel(trees) # unclass(trees) if(any(has.singles(trees))) trees <- lapply(trees, collapse.singles) nTips <- length(trees[[1]]$tip.label) # if (any(sapply(trees, is.rooted))) { # trees <- lapply(trees, unroot) # } if (rooted & any(!is.rooted(trees))){ warning("some trees were rooted, unrooted all") rooted <- FALSE } if (!rooted & any(is.rooted(trees))) { trees <- unroot(trees) } unclass(trees) fun1 <- function(x){ w <- numeric(max(x$edge)) w[x$edge[,2]] <- x$edge.length w } W <- lapply(trees, fun1) fun2 <- function(x, nTips){ bp <- bip(x) bp <- SHORTwise(bp, nTips) bp <- sapply(bp, paste, collapse = "_") bp } fun3 <- function(x, nTips){ bp <- bip(x) bp <- sapply(bp, paste, collapse = "_") bp } if(rooted) BP <- lapply(trees, fun3, nTips) else BP <- lapply(trees, fun2, nTips) k <- 1 l <- length(trees) KF <- numeric((l * (l - 1))/2) for (i in 1:(l - 1)){ bp <- BP[[i]] w <- W[[i]] for (j in (i + 1):l){ ind3 <- fmatch(BP[[j]], bp, nomatch=0L) ind4 <- ind3[ind3>0] ind3 <- which(ind3>0) s1 <- sum((W[[j]][ind3] - w[ind4])^2) s2 <- sum(W[[j]][-ind3]^2) s3 <- sum(w[-ind4]^2) KF[k] <- sqrt(s1 + s2 + s3) k <- k+1 } } attr(KF, "Size") <- l if(!is.null(names(trees)))attr(KF, "Labels") <- names(trees) attr(KF, "Diag") <- FALSE attr(KF, "Upper") <- FALSE class(KF) <- "dist" return(KF) } #' @rdname treedist #' @export KF.dist <- function(tree1, tree2=NULL, check.labels = TRUE, rooted=FALSE){ if(inherits(tree1, "multiPhylo") && is.null(tree2))return(kf2(tree1, rooted=rooted)) if(inherits(tree1, "phylo") && inherits(tree2, "phylo"))return(kf0(tree1, tree2, check.labels, rooted)) if(inherits(tree1, "phylo") && inherits(tree2, "multiPhylo"))return(kf1(tree1, tree2, check.labels, rooted)) if(inherits(tree2, "phylo") && inherits(tree1, "multiPhylo"))return(kf1(tree2, tree1,check.labels, rooted)) return(NULL) } #' @rdname treedist #' @export path.dist <- function(tree1, tree2=NULL, check.labels = TRUE, use.weight=FALSE){ if(inherits(tree1, "phylo") && inherits(tree2, "phylo")) return(pd0(tree1, tree2, check.labels, !use.weight)) if(inherits(tree1, "phylo") && inherits(tree2, "multiPhylo")) return(pd1(tree1, tree2, check.labels, !use.weight)) if(inherits(tree2, "phylo") && inherits(tree1, "multiPhylo")) return(pd1(tree2, tree1, check.labels, !use.weight)) if(inherits(tree1, "multiPhylo") && is.null(tree2)) return(pd2(tree1, check.labels, !use.weight)) else return(NULL) } #wPath.dist <- function(tree1, tree2=NULL, check.labels = TRUE){ # if(inherits(tree1, "phylo") && inherits(tree2, "phylo")) # return(pd0(tree1, tree2, check.labels, FALSE)) # if(inherits(tree1, "phylo") && inherits(tree2, "multiPhylo")) # return(pd1(tree1, tree2, check.labels, FALSE)) # if(inherits(tree2, "phylo") && inherits(tree1, "multiPhylo")) # return(pd1(tree2, tree1, check.labels, FALSE)) # if(inherits(tree1, "multiPhylo") && is.null(tree2)) # return(pd2(tree1, check.labels, FALSE)) # else return(NULL) #} pd0 <- function(tree1, tree2, check.labels=TRUE, path=TRUE){ if(check.labels)tree2 <- checkLabels(tree2, tree1$tip.label) if(path){ tree1 <- unroot(tree1) tree2 <- unroot(tree2) } # n <- nrow(tree1$edge) # tree1$edge.length <- tree2$edge.length <- rep(1, n) dt1 <- coph(tree1, path) dt2 <- coph(tree2, path) sqrt(sum((dt1 - dt2)^2)) } pd1 <- function(tree, trees, check.labels=TRUE, path=TRUE){ if(check.labels){ trees <- .compressTipLabel(trees) tree <- checkLabels(tree, attr(trees, "TipLabel")) } trees <- .uncompressTipLabel(trees) if(path){ trees <- unroot(trees) tree <- unroot(tree) } trees <- reorder(trees, "postorder") unclass(trees) l <- length(trees) dt <- coph(tree, path) res <- numeric(l) for(i in 1:l){ dt2 <- coph(trees[[i]], path) res[i] <- sqrt(sum((dt - dt2)^2)) } res } pd2 <- function(trees, check.labels=TRUE, path=TRUE){ if(check.labels) trees <- .compressTipLabel(trees) trees <- .uncompressTipLabel(trees) if(path)trees <- unroot(trees) trees <- reorder(trees, "postorder") l <- length(trees) unclass(trees) CM <- lapply(trees, coph, path) res <- numeric(l) k <- 1 PD <- numeric((l * (l - 1))/2) for (i in 1:(l - 1)){ for (j in (i + 1):l){ PD[k] <- sqrt(sum((CM[[i]] - CM[[j]])^2)) k <- k+1 } } attr(PD, "Size") <- l if(!is.null(names(trees)))attr(PD, "Labels") <- names(trees) attr(PD, "Diag") <- FALSE attr(PD, "Upper") <- FALSE class(PD) <- "dist" return(PD) } phangorn/R/phangorn-package.R0000644000176200001440000000514013236456077015634 0ustar liggesusers #' Chloroplast alignment #' #' Amino acid alignment of 15 genes of 19 different chloroplast. #' #' #' @name chloroplast #' @docType data #' @keywords datasets #' @examples #' #' data(chloroplast) #' chloroplast #' NULL #' Laurasiatherian data (AWCMEE) #' #' Laurasiatherian RNA sequence data #' #' #' @name Laurasiatherian #' @docType data #' @source Data have been taken from \url{http://www.allanwilsoncentre.ac.nz/} #' and were converted to R format by \email{klaus.schliep@gmail.com}. #' @keywords datasets #' @examples #' #' data(Laurasiatherian) #' str(Laurasiatherian) #' NULL #' Phylogenetic analysis in R #' #' Phylogenetic analysis in R (Estimation of phylogenetic trees and networks #' using Maximum Likelihood, Maximum Parsimony, Distance methods & Hadamard #' conjugation) #' #' The complete list of functions can be displayed with \code{library(help = #' phangorn)}. #' #' Further information is available in several vignettes. To show the available #' vignettes in an HTML browser type \code{browseVignettes("phangorn")}. #' \tabular{ll}{ \code{Trees} \tab Constructing phylogenetic trees (source, #' pdf) \cr \code{phangorn-specials} \tab Advanced features (source, pdf) \cr #' \code{Ancestral} \tab Ancestral sequence reconstruction (source, pdf) \cr #' \code{Networx} \tab Splits and Networx (source, html) \cr } The first #' vignette (to display type \code{vignette('Trees')}) gives an introduction in #' phylogenetic analysis with phangorn. The second vignette (phangorn-special) #' covers more advanced feature like defining special character spaces and #' things which fit nowhere else. More information on \bold{phangorn} can be #' found on \url{http://www.phangorn.org}. #' #' #' @name phangorn-package #' @aliases phangorn-package phangorn #' @docType package #' @author Klaus Schliep #' #' Maintainer: Klaus Schliep #' @references Schliep K.P. (2011) phangorn: Phylogenetic analysis in R. #' \emph{Bioinformatics}, 27(4) 592-593 #' @keywords package NULL #' Internal phangorn Functions #' #' Internal \pkg{phangorn} functions. #' #' @name phangorn-internal #' @aliases phangorn-internal threshStateC coords map_duplicates #' @keywords internal NULL #' Yeast alignment (Rokas et al.) #' #' Alignment of 106 genes of 8 different species of yeast. #' #' #' @name yeast #' @docType data #' @references Rokas, A., Williams, B. L., King, N., and Carroll, S. B. (2003) #' Genome-scale approaches to resolving incongruence in molecular phylogenies. #' \emph{Nature}, \bold{425}(6960): 798--804 #' @keywords datasets #' @examples #' #' data(yeast) #' str(yeast) #' NULL phangorn/R/pmlPart.R0000644000176200001440000007457413210060263014043 0ustar liggesusers# # pmlPart + pmlCluster # optimPartQGeneral <- function (object, Q = c(1, 1, 1, 1, 1, 1), subs=rep(1,length(Q)), ...) { m <- length(Q) n <- max(subs) ab <- numeric(n) for(i in 1:n) ab[i] <- log(Q[which(subs==i)[1]]) fn <- function(ab, object, m, n, subs, ...) { Q <- numeric(m) for(i in 1:n)Q[subs==i] <- ab[i] Q <- exp(Q) result <- 0 for (i in seq_along(object)) result <- result + update(object[[i]], Q = Q, ...)$logLik result } res <- optim(par = ab, fn = fn, gr = NULL, method = "L-BFGS-B", lower = -Inf, upper = Inf, control = list(fnscale = -1, maxit = 25), object = object, m=m, n=n, subs=subs, ...) Q <- rep(1, m) for(i in 1:n) Q[subs==i] <- exp(res[[1]][i]) res[[1]] <- Q res } optimPartBf <- function (object, bf = c(0.25, 0.25, 0.25, 0.25), ...) { l <- length(bf) nenner <- 1/bf[l] lbf <- log(bf * nenner) lbf <- lbf[-l] fn <- function(lbf, object, ...) { result <- 0 bf <- exp(c(lbf, 0)) bf <- bf/sum(bf) n <- length(object) for (i in 1:n) result <- result + update(object[[i]], bf = bf, ...)$logLik result } res <- optim(par = lbf, fn = fn, gr = NULL, method = "Nelder-Mead", control = list(fnscale = -1, maxit = 500), object, ...) # print(res[[2]]) bf <- exp(c(res[[1]], 0)) bf <- bf/sum(bf) } optimPartInv <- function (object, inv = 0.01, ...) { fn <- function(inv, object, ...) { result <- 0 n <- length(object) for (i in 1:n) result <- result + update(object[[i]], inv = inv, ...)$logLik result } res <- optimize(f = fn, interval = c(0, 1), lower = 0, upper = 1, maximum = TRUE, tol = 1e-04, object, ...) res[[1]] } optimPartGamma <- function (object, shape = 1, ...) { fn <- function(shape, object, ...) { result <- 0 n <- length(object) for (i in 1:n) result <- result + update(object[[i]], shape = shape, ...)$logLik result } res <- optimize(f = fn, interval = c(0, 100), lower = 0, upper = 100, maximum = TRUE, tol = 0.01, object, ...) res } dltmp <- function (fit, i=1, transform=transform) # i = weights { tree <- fit$tree data <- getCols(fit$data, tree$tip.label) if (is.null(attr(tree, "order")) || attr(tree, "order") == "cladewise") tree <- reorder(tree, "postorder") q <- length(tree$tip.label) node <- tree$edge[, 1] edge <- tree$edge[, 2] m <- length(edge) + 1 # max(edge) dat <- vector(mode = "list", length = m) eig <- fit$eig w <- fit$w[i] g <- fit$g[i] bf <- fit$bf el <- tree$edge.length P <- getP(el, eig, g) nr <- as.integer(attr(data, "nr")) nc <- as.integer(attr(data, "nc")) node <- as.integer(node - min(node)) edge <- as.integer(edge - 1) nTips <- as.integer(length(tree$tip.label)) mNodes <- as.integer(max(node) + 1) contrast <- attr(data, "contrast") nco <- as.integer(dim(contrast)[1]) dat[(q + 1):m] <- .Call("LogLik2", data, P, nr, nc, node, edge, nTips, mNodes, contrast, nco) result <- dat[[q+1]] %*% (bf * w) parent <- tree$edge[, 1] child <- tree$edge[, 2] nTips <- min(parent) - 1 datp <- vector("list", m) el <- tree$edge.length if (transform) dP <- getdP(tree$edge.length, eig, g) else dP <- getdP2(tree$edge.length, eig, g) datp[(nTips + 1)] <- dat[(nTips + 1)] l <- length(child) dl <- matrix(0, nr, l) for (j in (m - 1):1) { # tips have factor format, internal edges are matrices if (child[j] > nTips){ tmp2 <- (datp[[parent[j]]]/(dat[[child[j]]] %*% P[[j]])) dl[, j] <- (tmp2 * (dat[[child[j]]] %*% dP[[j]])) %*% (w * bf) datp[[child[j]]] <- (tmp2 %*% P[[j]]) * dat[[child[j]]] } else{ tmp2 <- (datp[[parent[j]]]/((contrast %*% P[[j]])[data[[child[j]]],] )) dl[, j] <- (tmp2 * ((contrast %*% dP[[j]])[data[[child[j]]],]) ) %*% (w * bf) } } dl } dl <- function(x, transform = TRUE){ w <- x$w l <- length(x$w) dl <- dltmp(x, 1, transform) i <- 2 while(i < (l+1)){ dl <- dl + dltmp(x, i, transform) i <- i + 1 } dl } # add control and change edge optimPartEdge <- function (object, ...) { tree <- object[[1]]$tree theta <- object[[1]]$tree$edge.length n <- length(object) l <- length(theta) nrv <- numeric(n) for (i in 1:n) nrv[i] <- attr(object[[i]]$data, "nr") cnr <- cumsum(c(0, nrv)) weight <- numeric(sum(nrv)) dl <- matrix(NA, sum(nrv), l) for (i in 1:n) weight[(cnr[i] + 1):cnr[i + 1]] <- attr(object[[i]]$data, "weight") ll0 <- 0 for (i in 1:n) ll0 <- ll0 + object[[i]]$logLik eps <- 1 scalep <- 1 k <- 1 while (eps > 0.001 & k<50) { if(scalep==1){ for (i in 1:n) { lv <- drop(exp(object[[i]]$site)) dl[(cnr[i] + 1):cnr[i + 1], ] <- dl(object[[i]], TRUE)/lv } sc <- colSums(weight * dl) F <- crossprod(dl * weight, dl) + diag(l)*1e-10 # add small ridge penalty for numerical stability } thetaNew <- log(theta) + scalep * solve(F, sc) tree$edge.length <- as.numeric(exp(thetaNew)) for (i in 1:n) object[[i]] <- update(object[[i]], tree = tree) ll1 <- 0 for (i in 1:n) ll1 <- ll1 + object[[i]]$logLik eps <- ll1 - ll0 if (eps < 0 || is.nan(eps)) { scalep <- scalep/2 eps <- 1 thetaNew <- log(theta) ll1 <- ll0 } else scalep <- 1 theta <- exp(thetaNew) ll0 <- ll1 k <- k+1 } object } makePart <- function(fit, rooted, weight=~index+genes){ if(inherits(fit,"phyDat")){ x <- fit dm <- dist.ml(x) if(!rooted) tree <- NJ(dm) else tree <- upgma(dm) fit <- pml(tree, x, k=4) } dat <- fit$data if(class(weight)[1]=="formula") weight <- xtabs(weight, data=attr(dat, "index")) fits <- NULL for(i in 1:dim(weight)[2]){ ind <- which(weight[,i] > 0) dat2 <- getRows(dat, ind) attr(dat2, "weight") <- weight[ind,i] fits[[i]] <- update(fit, data = dat2) } names(fits) <- colnames(fits) fits } #' @rdname pmlPart #' @export multiphyDat2pmlPart <- function(x, rooted=FALSE, ...){ shared_tree <- TRUE if(shared_tree){ concatenate_x <- do.call(cbind.phyDat, x@seq) dm <- dist.ml(concatenate_x) if(!rooted) tree <- NJ(dm) else tree <- upgma(dm) } else tree <- NULL fun <- function(x, rooted=FALSE, tree, ...){ if(is.null(tree)){ dm <- dist.ml(x) if(!rooted) tree <- NJ(dm) else tree <- upgma(dm) } fit <- pml(tree, x, ...) } fits <- lapply(x@seq, fun, tree=tree, rooted=rooted, ...) fits } #' @rdname pmlPart #' @export pmlPart2multiPhylo <- function(x){ res <- lapply(x$fits, FUN=function(x)x$tree) class(res) <- "multiPhylo" res } plot.pmlPart<- function(x, ...){ plot(pmlPart2multiPhylo(x), ...) } #' Partition model. #' #' Model to estimate phylogenies for partitioned data. #' #' The \code{formula} object allows to specify which parameter get optimized. #' The formula is generally of the form \code{edge + bf + Q ~ rate + shape + #' \dots{}}, on the left side are the parameters which get optimized over all #' partitions, on the right the parameter which are optimized specific to each #' partition. The parameters available are \code{"nni", "bf", "Q", "inv", #' "shape", "edge", "rate"}. Each parameters can be used only once in the #' formula. \code{"rate"} and \code{"nni"} are only available for the right #' side of the formula. #' #' For partitions with different edge weights, but same topology, \code{pmlPen} #' can try to find more parsimonious models (see example). #' #' \code{pmlPart2multiPhylo} is a convenience function to extract the trees out #' of a \code{pmlPart} object. #' #' @aliases pmlPart #' @param formula a formula object (see details). #' @param object an object of class \code{pml} or a list of objects of class #' \code{pml} . #' @param control A list of parameters for controlling the fitting process. #' @param model A vector containing the models containing a model for each #' partition. #' @param rooted Are the gene trees rooted (ultrametric) or unrooted. #' @param \dots Further arguments passed to or from other methods. #' @param x an object of class \code{pmlPart} #' @return \code{kcluster} returns a list with elements #' \item{logLik}{log-likelihood of the fit} \item{trees}{a list of all trees #' during the optimization.} \item{object}{an object of class \code{"pml"} or #' \code{"pmlPart"}} #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso #' \code{\link{pml}},\code{\link{pmlCluster}},\code{\link{pmlMix}},\code{\link{SH.test}} #' @keywords cluster #' @examples #' #' data(yeast) #' dm <- dist.logDet(yeast) #' tree <- NJ(dm) #' fit <- pml(tree,yeast) #' fits <- optim.pml(fit) #' #' weight=xtabs(~ index+genes,attr(yeast, "index"))[,1:10] #' #' sp <- pmlPart(edge ~ rate + inv, fits, weight=weight) #' sp #' #' \dontrun{ #' sp2 <- pmlPart(~ edge + inv, fits, weight=weight) #' sp2 #' AIC(sp2) #' #' sp3 <- pmlPen(sp2, lambda = 2) #' AIC(sp3) #' } #' #' @rdname pmlPart #' @export pmlPart pmlPart <- function (formula, object, control=pml.control(epsilon=1e-8, maxit=10, trace=1), model=NULL, rooted=FALSE, ...) { call <- match.call() form <- phangornParseFormula(formula) opt <- c("nni", "bf", "Q", "inv", "shape", "edge", "rate") optAll <- match(opt, form$left) optPart <- match(opt, form$right) AllNNI <- !is.na(optAll[1]) AllBf <- !is.na(optAll[2]) AllQ <- !is.na(optAll[3]) AllInv <- !is.na(optAll[4]) AllGamma <- !is.na(optAll[5]) AllEdge <- !is.na(optAll[6]) PartNni <- !is.na(optPart[1]) PartBf <- !is.na(optPart[2]) PartQ <- !is.na(optPart[3]) PartInv <- !is.na(optPart[4]) PartGamma <- !is.na(optPart[5]) PartEdge <- !is.na(optPart[6]) PartRate <- !is.na(optPart[7]) if(PartNni) PartEdge <- TRUE if(inherits(object,"multiphyDat")){ if(AllNNI || AllEdge) object <- do.call(cbind.phyDat, object@seq) else fits <- multiphyDat2pmlPart(object, rooted=rooted, ...) } if(inherits(object,"pml")) fits <- makePart(object, rooted=rooted, ...) if(inherits(object,"phyDat")) fits <- makePart(object, rooted=rooted, ...) if(inherits(object,"pmlPart")) fits <- object$fits if(inherits(object,"list")) fits <- object trace <- control$trace epsilon <- control$epsilon maxit <- control$maxit p <- length(fits) # if(length(model) epsilon & m < maxit) { loli <- 0 if(any(c(PartNni, PartBf, PartInv, PartQ, PartGamma, PartEdge, PartRate))){ for (i in 1:p) { fits[[i]] <- optim.pml(fits[[i]], optNni=PartNni, optBf=PartBf, optQ=PartQ, optInv=PartInv, optGamma=PartGamma, optEdge=PartEdge, optRate=PartRate, optRooted=rooted, control = pml.control(maxit = 3, epsilon = 1e-8, trace-1), model=model[i]) } } if (AllQ) { Q <- fits[[1]]$Q subs <- c(1:(length(Q)-1), 0) newQ <- optimPartQGeneral(fits, Q=Q, subs=subs) for (i in 1:p) fits[[i]] <- update(fits[[i]], Q = newQ[[1]]) } if (AllBf) { bf <- fits[[1]]$bf newBf <- optimPartBf(fits, bf=bf) for (i in 1:p) fits[[i]] <- update(fits[[i]], bf = newBf) } if (AllInv) { inv <- fits[[1]]$inv newInv <- optimPartInv(fits, inv=inv) for (i in 1:p) fits[[i]] <- update(fits[[i]], inv = newInv) } if (AllGamma) { shape <- fits[[1]]$shape newGamma <- optimPartGamma(fits, shape=shape)[[1]] for (i in 1:p) fits[[i]] <- update(fits[[i]], shape = newGamma) } if (AllNNI){ fits <- optimPartNNI(fits,AllEdge) if(trace>0) cat(attr(fits,"swap"), " NNI operations performed") } if (AllEdge) fits <- optimPartEdge(fits) if (PartRate){ tree <- fits[[1]]$tree rate <- numeric(p) wp <- numeric(p) for(i in 1:p){ wp[i] <- sum(fits[[i]]$weight) rate[i] <- fits[[i]]$rate } ratemult <- sum(wp) / sum(wp*rate) tree$edge.length <- tree$edge.length/ratemult for(i in 1:p)fits[[i]] <- update(fits[[i]], tree=tree, rate=rate[i]*ratemult) } loli <- 0 for (i in 1:p) loli <- loli + fits[[i]]$log eps <- (logLik - loli)/loli if(trace>0) cat("loglik:", logLik, "-->", loli, "\n") logLik <- loli m <- m + 1 } df <- matrix(1, 6 ,2) colnames(df) <- c("#df", "group") rownames(df) <- c("Edge", "Shape", "Inv", "Bf", "Q", "Rate") df[1,1] <- length(fits[[1]]$tree$edge.length) df[2,1] <- fits[[1]]$k > 1 df[3,1] <- fits[[1]]$inv > 0 df[4,1] <- length(unique(fits[[1]]$bf)) - 1 df[5,1] <- length(unique(fits[[1]]$Q)) - 1 df[6,1] <- 0 # rates if(PartEdge) df[1,2] <- p if(PartGamma) df[2,2] <- p if(PartInv) df[3,2] <- p if(PartBf) df[4,2] <- p if(PartQ) df[5,2] <- p if(PartRate) df[6,1] <- p-1 attr(logLik, "df") <- sum(df[,1]*df[,2]) object <- list(logLik = logLik, fits = fits, call = call, df=df) class(object) <- "pmlPart" object } # # pmlCluster # pmlCluster.fit <- function (formula, fit, weight, p = 4, part = NULL, control=pml.control(epsilon=1e-8, maxit=10, trace=1), ...) { call <- match.call() form <- phangornParseFormula(formula) opt <- c("nni", "bf", "Q", "inv", "shape", "edge", "rate") optAll <- match(opt, form$left) optPart <- match(opt, form$right) AllNNI <- !is.na(optAll[1]) AllBf <- !is.na(optAll[2]) AllQ <- !is.na(optAll[3]) AllInv <- !is.na(optAll[4]) AllGamma <- !is.na(optAll[5]) AllEdge <- !is.na(optAll[6]) PartNni <- !is.na(optPart[1]) PartBf <- !is.na(optPart[2]) PartQ <- !is.na(optPart[3]) PartInv <- !is.na(optPart[4]) PartGamma <- !is.na(optPart[5]) PartEdge <- !is.na(optPart[6]) PartRate <- !is.na(optPart[7]) if(PartNni) PartEdge <- TRUE nrw <- dim(weight)[1] ncw <- dim(weight)[2] if (is.null(part)){ part <- rep(1:p, length=ncw) part <- sample(part) } Part <- part Gtrees <- vector("list", p) dat <- fit$data attr(fit$orig.data, "index") <- attr(dat, "index") <- NULL for (i in 1:p) Gtrees[[i]] <- fit$tree fits <- vector("list", p) for (i in 1:p) fits[[i]] <- fit trace <- control$trace eps <- 0 m <- 1 logLik <- fit$log trees <- list() weights <- matrix(0, nrw, p) lls <- matrix(0, nrw, p) loli <- fit$log oldpart <- part eps2 <- 1 iter <- 0 swap <- 1 while (eps < ncw || abs(eps2) > control$eps) { df2 <- 0 if(any(c(PartNni, PartBf, PartInv, PartQ, PartGamma, PartEdge, PartRate))){ for (i in 1:p) { weights[, i] <- rowSums(weight[, which(part == i), drop = FALSE]) ind <- which(weights[, i] > 0) dat2 <- getRows(dat, ind) attr(dat2, "weight") <- weights[ind, i] fits[[i]] <- update(fits[[i]], data = dat2) fits[[i]] <- optim.pml(fits[[i]], PartNni, PartBf, PartQ, PartInv, PartGamma, PartEdge, PartRate, control = pml.control(epsilon = 1e-8, maxit = 3, trace-1)) lls[, i] <- update(fits[[i]], data = dat)$site Gtrees[[i]] <- fits[[i]]$tree } } if (AllQ) { Q <- fits[[1]]$Q subs <- c(1:(length(Q)-1), 0) newQ <- optimPartQGeneral(fits, Q=Q, subs=subs)[[1]] for (i in 1:p) fits[[i]] <- update(fits[[i]], Q = newQ) df2 <- df2 + length(unique(newQ)) - 1 } if (AllBf) { bf <- fits[[1]]$bf newBf <- optimPartBf(fits, bf=bf) for (i in 1:p) fits[[i]] <- update(fits[[i]], bf = newBf) df2 <- df2 + length(unique(newBf)) - 1 } if (AllInv) { inv <- fits[[1]]$inv newInv <- optimPartInv(fits, inv=inv) for (i in 1:p) fits[[i]] <- update(fits[[i]], inv = newInv) #there was an Error df2 <- df2 + 1 } if (AllGamma) { shape <- fits[[1]]$shape newGamma <- optimPartGamma(fits, shape=shape)[[1]] for (i in 1:p) fits[[i]] <- update(fits[[i]], shape = newGamma) df2 <- df2 + 1 } if (AllNNI) { fits <- optimPartNNI(fits, AllEdge) if(trace>0)cat(attr(fits, "swap"), " NNI operations performed") swap <- attr(fits, "swap") } if (AllEdge) { fits <- optimPartEdge(fits) df2 <- df2 + length(fits[[1]]$tree$edge.length) } if (PartRate) { tree <- fits[[1]]$tree rate <- numeric(p) wp <- numeric(p) for (i in 1:p) { wp[i] <- sum(fits[[i]]$weight) rate[i] <- fits[[i]]$rate } ratemult <- sum(wp)/sum(wp * rate) tree$edge.length <- tree$edge.length/ratemult for (i in 1:p) fits[[i]] <- update(fits[[i]], tree = tree, rate = rate[i] * ratemult) } for (i in 1:p) lls[, i] <- update(fits[[i]], data = dat)$site trees[[m]] <- Gtrees LL <- t(weight) %*% lls # choose partitions which change tmp <- (LL[cbind(1:ncw,part)] - apply(LL, 1, max))/colSums(weight) fixi <- numeric(p) for(i in 1:p){ tmpi <- which(part == i) fixi[i] <- tmpi[which.max(tmp[tmpi])] } oldpart <- part # restrict the number of elements changing groups # If more than 25% would change, only the 25% with the highest increase per site change if( sum(tmp==0)/length(tmp) < .75){ medtmp <- quantile(tmp, .25) medind <- which(tmp<=medtmp) # part[medind] <- apply(LL[medind,], 1, which.max) part[medind] <- max.col(LL[medind,]) } else part <- max.col(LL) # else part <- apply(LL, 1, which.max) # force groups to have at least one member part[fixi] <- 1:p Part <- cbind(Part, part) eps <- sum(diag(table(part, oldpart))) eps2 <- loli loli <- sum(apply(LL, 1, max)) eps2 <- (eps2 - loli)/loli logLik <- c(logLik, loli) if(trace>0) print(loli) Part <- cbind(Part, part) df2 <- df2 + df2 if (eps == ncw & swap == 0) AllNNI <- FALSE m <- m + 1 if (eps == ncw) iter <- iter + 1 if (iter == 3) break } df <- matrix(1, 6, 2) colnames(df) <- c("#df", "group") rownames(df) <- c("Edge", "Shape", "Inv", "Bf", "Q", "Rate") df[1, 1] <- length(fits[[1]]$tree$edge.length) df[2, 1] <- fits[[1]]$k - 1 df[3, 1] <- fits[[1]]$inv > 0 df[4, 1] <- length(unique(fits[[1]]$bf)) - 1 df[5, 1] <- length(unique(fits[[1]]$Q)) - 1 df[6, 1] <- 0 if (PartEdge) df[1, 2] <- p if (PartGamma) df[2, 2] <- p if (PartInv) df[3, 2] <- p if (PartBf) df[4, 2] <- p if (PartQ) df[5, 2] <- p if (PartRate) df[6, 1] <- p - 1 attr(logLik, "df") <- sum(df[, 1] * df[, 2]) res <- list(logLik = logLik, Partition = Part, trees = trees) # intermediate results result <- list(logLik = loli, fits = fits, Partition = part, df = df, res = res, call = call) class(result) <- c("pmlPart") result } #' Stochastic Partitioning #' #' Stochastic Partitioning of genes into p cluster. #' #' The \code{formula} object allows to specify which parameter get optimized. #' The formula is generally of the form \code{edge + bf + Q ~ rate + shape + #' \dots{}}, on the left side are the parameters which get optimized over all #' cluster, on the right the parameter which are optimized specific to each #' cluster. The parameters available are \code{"nni", "bf", "Q", "inv", #' "shape", "edge", "rate"}. Each parameter can be used only once in the #' formula. There are also some restriction on the combinations how parameters #' can get used. \code{"rate"} is only available for the right side. When #' \code{"rate"} is specified on the left hand side \code{"edge"} has to be #' specified (on either side), if \code{"rate"} is specified on the right hand #' side it follows directly that \code{edge} is too. #' #' @param formula a formula object (see details). #' @param fit an object of class \code{pml}. #' @param weight \code{weight} is matrix of frequency of site patterns for all #' genes. #' @param p number of clusters. #' @param part starting partition, otherwise a random partition is generated. #' @param nrep number of replicates for each p. #' @param control A list of parameters for controlling the fitting process. #' @param \dots Further arguments passed to or from other methods. #' @return \code{pmlCluster} returns a list with elements #' \item{logLik}{log-likelihood of the fit} \item{trees}{a list of all trees #' during the optimization.} \item{fits}{fits for the final partitions} #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso #' \code{\link{pml}},\code{\link{pmlPart}},\code{\link{pmlMix}},\code{\link{SH.test}} #' @references K. P. Schliep (2009). Some Applications of statistical #' phylogenetics (PhD Thesis) #' #' Lanfear, R., Calcott, B., Ho, S.Y.W. and Guindon, S. (2012) PartitionFinder: #' Combined Selection of Partitioning Schemes and Substitution Models for #' Phylogenetic Analyses. \emph{Molecular Biology and Evolution}, \bold{29(6)}, #' 1695-1701 #' @keywords cluster #' @examples #' #' \dontrun{ #' data(yeast) #' dm <- dist.logDet(yeast) #' tree <- NJ(dm) #' fit <- pml(tree,yeast) #' fit <- optim.pml(fit) #' #' weight <- xtabs(~ index+genes,attr(yeast, "index")) #' set.seed(1) #' #' sp <- pmlCluster(edge~rate, fit, weight, p=1:4) #' sp #' SH.test(sp) #' } #' #' @export pmlCluster pmlCluster <- function (formula, fit, weight, p = 1:5, part = NULL, nrep = 10, control = pml.control(epsilon = 1e-08, maxit = 10, trace = 1), ...) { call <- match.call() form <- phangornParseFormula(formula) if(any(p==1)){ opt2 <- c("nni", "bf", "Q", "inv", "shape", "edge") tmp1 <- opt2 %in% form$left tmp1 <- tmp1 | (opt2 %in% form$right) fit <- optim.pml(fit, tmp1[1], tmp1[2], tmp1[3], tmp1[4], tmp1[5], tmp1[6]) } p <- p[p!=1] if(length(p)==0)return(fit) n <- sum(weight) k <- 2 BIC <- matrix(0, length(p)+1, nrep) BIC[1,] <- AIC(fit, k = log(n)) LL <- matrix(NA, length(p)+1, nrep) LL[1,] <- logLik(fit) P <- array(dim=c(length(p)+1, nrep, dim(weight)[2])) tmpBIC <- Inf choice <- c(1,1) for(j in p){ tmp <- NULL for(i in 1:nrep){ tmp <- pmlCluster.fit(formula, fit, weight, p=j, part=part, control=control,...) P[k,i,] <- tmp$Partition BIC[k,i] <- AIC(tmp, k = log(n)) LL[k,i] <- logLik(tmp) if(BIC[k,i]1)dimnames(bf) <- list(1:r, levels) lQ <- x$df["Q",2] Q <- matrix(0, lQ, nc*(nc-1)/2) if(lQ>1)dimnames(Q) <- list(1:r, NULL) type <- attr(x$fits[[1]]$data, "type") loli <- numeric(r) rate <- numeric(r) shape <- numeric(r) sizes <- numeric(r) inv <- numeric(r) for(i in 1:r){ loli[i] <- x$fits[[i]]$logLik if(i <= lbf)bf[i, ] <- x$fits[[i]]$bf if(i <= lQ)Q[i, ] <- x$fits[[i]]$Q rate[i] <- x$fits[[i]]$rate shape[i] <- x$fits[[i]]$shape inv[i] <- x$fits[[i]]$inv sizes[i] <- sum(attr(x$fits[[i]]$data,"weight")) } cat("\nloglikelihood:", x$logLik, "\n") cat("\nloglikelihood of partitions:\n ", loli, "\n") cat("AIC: ", AIC(x), " BIC: ", AIC(x, k=log(sum(sizes))), "\n\n") cat("Proportion of invariant sites:",inv,"\n") cat("\nRates:\n") cat(rate,"\n") if(k>1){ cat("\nShape parameter:\n") cat(shape,"\n") } if(type=="AA") cat("Rate matrix:",x$fits[[1]]$model, "\n") else{ cat("\nBase frequencies: \n") print(bf) cat("\nRate matrix:\n") print(Q) } } logLik.pmlPart <- function (object, ...) { res <- object$logLik attr(res, "df") <- sum(object$df[,1] * object$df[,2]) class(res) <- "logLik" res } optNNI <- function(fit, INDEX){ tree <- fit$tree ll.0 <- fit$ll.0 loli <- fit$logLik bf <- fit$bf eig <- fit$eig k <- fit$k w <- fit$w g <- fit$g rootEdges <- attr(INDEX, "root") .dat <- NULL parent <- tree$edge[, 1] child <- tree$edge[, 2] data <- getCols(fit$data, tree$tip.label) datp <- rnodes(tree, data, w, g, eig, bf) # nicht elegant, spaeter auch raus tmp <- length(tree$tip.label) for(i in seq_along(w)).dat[i,1:tmp] <- new2old.phyDat(data) evector <- numeric(max(parent)) evector[child] <- tree$edge.length m <- dim(INDEX)[1] k <- min(parent) loglik <- numeric(2 * m) edgeMatrix <- matrix(0, 2 * m, 5) for (i in 1:m) { ei <- INDEX[i, ] el0 <- evector[INDEX[i, ]] l <- length(datp[, 1]) weight <- fit$weight datn <- vector("list", 4 * l) attr(datn, "dim") <- c(l, 4) datn <- .dat[, ei[1:4], drop = FALSE] if (!(ei[5] %in% rootEdges)) datn[, 1] <- datp[, ei[1], drop = FALSE] new1 <- optim.quartet(el0[c(1, 3, 2, 4, 5)], eig, bf, datn[, c(1, 3, 2, 4), drop = FALSE], g, w, weight, ll.0, llcomp = fit$log) new2 <- optim.quartet(el0[c(1, 4, 3, 2, 5)], eig, bf, datn[, c(1, 4, 3, 2), drop = FALSE], g, w, weight, ll.0, llcomp = fit$log) loglik[(2 * i) - 1] <- new1[[2]] loglik[(2 * i)] <- new2[[2]] edgeMatrix[(2 * i) - 1, ] <- new1[[1]] edgeMatrix[(2 * i), ] <- new2[[1]] } list(loglik=loglik, edges = edgeMatrix) } optimPartNNI <- function (object, AllEdge=TRUE,...) { tree <- object[[1]]$tree INDEX <- indexNNI(tree) l <- length(object) loglik0 <- 0 for(i in 1:l)loglik0 <- loglik0 + logLik(object[[i]]) l <- length(object) TMP <- vector("list", l) for(i in 1:l){ TMP[[i]] <- optNNI(object[[i]], INDEX) } loglik <- TMP[[1]][[1]] for(i in 2:l)loglik <- loglik+TMP[[i]][[1]] swap <- 0 candidates <- loglik > loglik0 while (any(candidates)) { ind <- which.max(loglik) loglik[ind] <- -Inf if (ind%%2) swap.edge <- c(2, 3) else swap.edge <- c(2, 4) tree2 <- changeEdge(tree, INDEX[(ind + 1)%/%2, swap.edge], INDEX[(ind + 1)%/%2, ], TMP[[1]][[2]][ind, ]) tmpll <- 0 for(i in 1:l){ if(!AllEdge)tree2 <- changeEdge(object[[i]]$tree, INDEX[(ind + 1)%/%2, swap.edge], INDEX[(ind + 1)%/%2, ], TMP[[i]][[2]][ind, ]) tmpll <- tmpll + update(object[[i]], tree = tree2)$logLik } if (tmpll < loglik0) candidates[ind] <- FALSE if (tmpll > loglik0) { swap <- swap + 1 tree <- tree2 indi <- which(rep(colSums(apply(INDEX, 1, match, INDEX[(ind + 1)%/%2, ], nomatch = 0)) > 0, each = 2)) candidates[indi] <- FALSE loglik[indi] <- -Inf for(i in 1:l){ if(!AllEdge)tree2 <- changeEdge(object[[i]]$tree, INDEX[(ind + 1)%/%2, swap.edge], INDEX[(ind + 1)%/%2, ], TMP[[i]][[2]][ind, ]) object[[i]] <- update(object[[i]], tree = tree2) } loglik0 <- 0 for(i in 1:l)loglik0 <- loglik0 + logLik(object[[i]]) cat(loglik0, "\n") } } if(AllEdge)object <- optimPartEdge(object) attr(object,"swap") <- swap object } phangorn/R/distTree.R0000644000176200001440000005227613240364263014214 0ustar liggesusers# # UPGMA, NJ, UNJ, nnls # #' UPGMA and WPGMA #' #' UPGMA and WPGMA clustering. Just a wrapper function around #' \code{\link[stats]{hclust}}. #' #' #' @param D A distance matrix. #' @param method The agglomeration method to be used. This should be (an #' unambiguous abbreviation of) one of "ward", "single", "complete", "average", #' "mcquitty", "median" or "centroid". The default is "average". #' @param \dots Further arguments passed to or from other methods. #' @return A phylogenetic tree of class \code{phylo}. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{hclust}}, \code{\link{dist.hamming}}, \code{\link{NJ}}, #' \code{\link{as.phylo}}, \code{\link{fastme}}, \code{\link{nnls.tree}} #' @keywords cluster #' @examples #' #' data(Laurasiatherian) #' dm = dist.ml(Laurasiatherian) #' tree = upgma(dm) #' plot(tree) #' #' @rdname upgma #' @export "upgma" <- function(D,method="average",...){ DD <- as.dist(D) hc <- hclust(DD,method=method,...) result <- as.phylo(hc) result <- reorder(result, "postorder") result } #' @rdname upgma #' @export "wpgma" <- function(D,method="mcquitty",...){ DD <- as.dist(D) hc <- hclust(DD,method=method,...) result <- as.phylo(hc) result <- reorder(result, "postorder") result } upgma.edge.length <- function(x, dm, method="average"){ METHODS <- c("average", "single", "complete") # , "mcquitty" i.meth <- match.arg(method, METHODS) X <- designTree(x, "rooted", TRUE) labels <- x$tip if(is.matrix(dm) || inherits(dm, "dist")){ dm <- as.matrix(dm)[labels,labels] dm <- dm[lower.tri(dm)] } ind <- X@i+1 node <- X@p X@x[] <- 1 nh <- numeric(max(x$edge)) Y <- X*dm for(i in 1:(length(node)-1)){ pos <- ind[(node[i]+1):node[i+1]] tmp <- switch(i.meth, average = mean(Y[pos, i]), single = min(Y[pos, i]), complete = max(Y[pos, i])) nh[X@nodes[i]] <- tmp } x$edge.length <- (nh[x$edge[,1]] - nh[x$edge[,2]]) /2 x } upgma_nni <- function(d, method="average", opt="min", trace=0, mc.cores=2L) { METHODS <- c("average", "single", "complete") # , "mcquitty" method <- match.arg(method, METHODS) OPT <- c("min", "ls") opt <- match.arg(opt, OPT) tree <- upgma(d, method=method) labels <- tree$tip.label nTips <- length(labels) y <- as.matrix(d)[labels,labels] y <- y[lower.tri(y)] best.tree <- tree bestLS <- sum((coph(best.tree)-y)^2) bestME <- sum(best.tree$edge.length) run.nni <- TRUE count_nni <- 0 if(trace>0) print(count_nni) while (run.nni) { trees <- nni(best.tree) trees <- .uncompressTipLabel(trees) trees <- unclass(trees) nni.trees <- lapply(trees, upgma.edge.length, y, method=method) ind <- which(sapply(nni.trees, function(x)!any(x$edge.length<0))) if (length(ind)==0)return(best.tree) nni.trees <- nni.trees[ind] if(opt == "min"){ ME <- sapply(nni.trees, function(x)sum(x$edge.length)) if (any(ME < bestME)){ bestME <- min(ME) count_nni <- count_nni + 1 best.tree <- nni.trees[[which.min(ME)]] if(trace>0) print(bestME) } else run.nni <- FALSE } else{ LS <- sapply(nni.trees, function(x) sum((coph(x)-y)^2)) if (any(LS < bestLS)){ bestLS <- min(LS) count_nni <- count_nni + 1 best.tree <- nni.trees[[which.min(LS)]] if(trace>0) print(bestLS) } else run.nni <- FALSE } } best.tree } NJ_old <- function(x) { x <- as.matrix(x) labels <- attr(x, "Labels")[[1]] edge.length <- NULL edge <- NULL d <- as.matrix(x) if (is.null(labels)) labels <- colnames(d) l <- dim(d)[1] m <- l - 2 nam <- 1L:l k <- 2L * l - 2L while (l > 2) { r <- rowSums(d)/(l - 2) i <- 0 j <- 0 tmp <- .C("out", as.double(d), as.double(r), as.integer(l), as.integer(i), as.integer(j)) e2 <- tmp[[5]] e1 <- tmp[[4]] l1 <- d[e1, e2]/2 + (r[e1] - r[e2])/(2) l2 <- d[e1, e2] - l1 edge.length <- c(l1, l2, edge.length) edge <- rbind(c(k, nam[e2]), edge) edge <- rbind(c(k, nam[e1]), edge) nam <- c(nam[c(-e1, -e2)], k) dnew <- (d[e1, ] + d[e2, ] - d[e1, e2])/2 d <- cbind(d, dnew) d <- rbind(d, c(dnew, 0)) d <- d[-c(e1, e2), -c(e1, e2)] k <- k - 1L l <- l - 1L } edge.length <- c(d[2, 1], edge.length) attr(edge.length,"names") <- NULL result <- list(edge = rbind(c(nam[2], nam[1]), edge), edge.length = edge.length, tip.label = labels, Nnode = m) class(result) <- "phylo" reorder(result, "postorder") } #' Neighbor-Joining #' #' This function performs the neighbor-joining tree estimation of Saitou and #' Nei (1987). UNJ is the unweighted version from Gascuel (1997). #' #' @aliases PNJ #' #' @param x A distance matrix. #' @return an object of class \code{"phylo"}. #' @author Klaus P. Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link[ape]{nj}}, \code{\link[ape]{dist.dna}}, #' \code{\link[phangorn]{dist.hamming}}, \code{\link[phangorn]{upgma}}, #' \code{\link[ape]{fastme}} #' @references Saitou, N. and Nei, M. (1987) The neighbor-joining method: a new #' method for reconstructing phylogenetic trees. \emph{Molecular Biology and #' Evolution}, \bold{4}, 406--425. #' #' Studier, J. A and Keppler, K. J. (1988) A Note on the Neighbor-Joining #' Algorithm of Saitou and Nei. \emph{Molecular Biology and Evolution}, #' \bold{6}, 729--731. #' #' Gascuel, O. (1997) Concerning the NJ algorithm and its unweighted version, #' UNJ. in Birkin et. al. \emph{Mathematical Hierarchies and Biology}, #' 149--170. #' @keywords cluster #' @examples #' #' data(Laurasiatherian) #' dm <- dist.ml(Laurasiatherian) #' tree <- NJ(dm) #' plot(tree) #' #' @rdname NJ #' @export NJ <- function(x) reorder(nj(x), "postorder") #' @rdname NJ #' @export UNJ <- function(x) { x <- as.matrix(x) labels <- attr(x, "Labels")[[1]] edge.length <- NULL edge <- NULL d <- as.matrix(x) if (is.null(labels)) labels <- colnames(d) l <- dim(d)[1] n <- l nam <- as.character(1:l) m <- l-2 nam <- 1:l k <- 2*l-2 w <- rep(1,l) while (l > 2) { r <- rowSums(d)/(l - 2) i <- 0 j <- 0 tmp <- .C("out", as.double(d), as.double(r), as.integer(l), as.integer(i), as.integer(j)) e2 <- tmp[[5]] e1 <- tmp[[4]] l1 <- d[e1, e2]/2 + sum((d[e1,-c(e1,e2)] - d[e2,-c(e1,e2)])*w[-c(e1,e2)])/(2*(n-w[e1]-w[e2])) l2 <- d[e1, e2]/2 + sum((d[e2,-c(e1,e2)] - d[e1,-c(e1,e2)])*w[-c(e1,e2)])/(2*(n-w[e1]-w[e2])) edge.length <- c(l1, l2, edge.length) edge <- rbind(c(k, nam[e2]), edge) edge <- rbind(c(k, nam[e1]), edge) nam <- c(nam[c(-e1, -e2)], k) dnew <- (w[e1]*d[e1, ] + w[e2]*d[e2, ] - w[e1]*l1 - w[e2]*l2)/(w[e1] + w[e2]) d <- cbind(d, dnew) d <- rbind(d, c(dnew, 0)) d <- d[-c(e1, e2), -c(e1, e2)] w <- c(w, w[e1] + w[e2]) w <- w[-c(e1, e2)] k <- k - 1 l <- l - 1 } edge.length <- c(d[2,1],edge.length) result <- list(edge = rbind(c(nam[2], nam[1]), edge), edge.length=edge.length, tip.label = labels, Nnode=m) class(result) <- "phylo" reorder(result, "postorder") } PNJ <- function (data) { q <- l <- r <- length(data) weight <- attr(data,"weight") height <- NULL parentNodes <- NULL childNodes <- NULL nam <- names(data) tip.label <- nam edge <- 1:q z <- 0 D <- matrix(0, q, q) for (i in 1:(l - 1)) { for (j in (i + 1):l) { w <- (data[[i]] * data[[j]]) %*% c(1, 1, 1, 1) D[i, j] <- sum(weight[w==0]) } } while (l > 1) { l <- l - 1 z <- z + 1 d <- D + t(D) if(l>1) r <- rowSums(d)/(l-1) if(l==1) r <- rowSums(d) M <- d - outer(r,r,"+") diag(M) <- Inf e <- which.min(M) e0 <- e%%length(r) e1 <- ifelse(e0==0, length(r), e0) e2 <- ifelse(e0==0, e%/%length(r), e%/%length(r) + 1) ind <- c(e1,e2) len <- d[e]/2 nam <- c(nam[-ind], as.character(-l)) parentNodes <- c(parentNodes,-l,-l) childNodes <- c(childNodes,edge[e1],edge[e2]) height <- c(height, len, len) edge <- c(edge[-ind], -l) w <- (data[[e1]] * data[[e2]]) %*% c(1, 1, 1, 1) w <- which(w == 0) newDat <- data[[e1]] * data[[e2]] newDat[w, ] <- data[[e1]][w, ] + data[[e2]][w, ] data <- data[-c(e1,e2)] data[[l]] <- newDat if (l > 1) { D <- as.matrix(D[, -ind]) D <- D[-ind, ] dv <- numeric(l - 1) for (i in 1:(l - 1)) { w <- (data[[i]] * data[[l]]) %*% c(1, 1, 1, 1) dv[i] <- sum(weight[w==0]) } D <- cbind(D, dv) D <- rbind(D, 0) } } tree <- list(edge = cbind(as.character(parentNodes),as.character(childNodes)),tip.label=tip.label) class(tree) <- "phylo" tree <- old2new.phylo(tree) reorder(tree) } # # Distance Matrix methods # # as.Matrix, sparse = TRUE, #' Compute a design matrix or non-negative LS #' #' \code{nnls.tree} estimates the branch length using non-negative least #' squares given a tree and a distance matrix. \code{designTree} and #' \code{designSplits} compute design matrices for the estimation of edge #' length of (phylogenetic) trees using linear models. For larger trees a #' sparse design matrix can save a lot of memory. %\code{designTree} also #' computes a contrast matrix if the method is "rooted". #' #' @param tree an object of class \code{phylo} #' @param method design matrix for an "unrooted" or "rooted" ultrametric tree. #' @param sparse return a sparse design matrix. #' @param x number of taxa. #' @param splits one of "all", "star". #' @param dm a distance matrix. #' @param rooted compute a "rooted" or "unrooted" tree. #' @param trace defines how much information is printed during optimisation. #' @param \dots further arguments, passed to other methods. #' @return \code{nnls.tree} return a tree, i.e. an object of class #' \code{phylo}. \code{designTree} and \code{designSplits} a matrix, possibly #' sparse. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link[ape]{fastme}}, #' \code{\link[phangorn]{distanceHadamard}}, #' \code{\link[phangorn]{splitsNetwork}}, \code{\link[phangorn]{upgma}} #' @keywords cluster #' @examples #' #' example(NJ) #' dm <- as.matrix(dm) #' y <- dm[lower.tri(dm)] #' X <- designTree(tree) #' lm(y~X-1) #' # avoids negative edge weights #' tree2 = nnls.tree(dm, tree) #' #' @rdname designTree #' @export designTree <- function(tree, method="unrooted", sparse=FALSE, ...){ if (!is.na(pmatch(method, "all"))) method <- "unrooted" METHOD <- c("unrooted", "rooted") method <- pmatch(method, METHOD) if (is.na(method)) stop("invalid method") if (method == -1) stop("ambiguous method") if(!is.rooted(tree) & method==2) stop("tree has to be rooted") if(method==1){ X <- designUnrooted(tree,...) if(sparse) X <- Matrix(X) } if(method==2) X <- designUltra(tree, sparse=sparse,...) X } # splits now work designUnrooted <- function (tree, order = NULL) { if(inherits(tree, "phylo")){ if (is.rooted(tree)) tree <- unroot(tree) p <- bipartition(tree) } if(inherits(tree, "splits")) p <- as.matrix(tree) if (!is.null(order)) p <- p[, order] m <- dim(p)[2] ind <- rowSums(p) p <- p[ind!=m,] n <- dim(p)[1] res <- matrix(0, (m - 1) * m/2, n) k <- 1 for (i in 1:(m - 1)) { for (j in (i + 1):m) { res[k, ] <- p[, i] != p[, j] k <- k + 1 } } if(inherits(tree, "phylo")) colnames(res) <- paste(tree$edge[, 1], tree$edge[, 2], sep = "<->") res } designUltra <- function (tree, sparse=TRUE) { if (is.null(attr(tree, "order")) || attr(tree, "order") == "cladewise") tree <- reorder(tree, "postorder") leri <- allChildren(tree) bp <- bip(tree) n <- length(tree$tip.label) l <- tree$Nnode nodes <- integer(l) k <- 1L u <- numeric( n * (n - 1)/2) v <- numeric( n * (n - 1)/2) m <- 1L for (i in seq_along(leri)) { if (length(leri[[i]])>1) { if(length(leri[[i]])==2)ind <- getIndex(bp[[leri[[i]][1] ]], bp[[leri[[i]][2] ]], n) else { ind <- NULL le <- leri[[i]] nl <- length(le) for(j in 1:(nl-1)) ind <- c(ind, getIndex(bp[[le[j] ]], unlist(bp[ le[(j+1):nl] ]), n)) } li <- length(ind) v[m: (m+li-1)] <- k u[m: (m+li-1)] <- ind nodes[k] <- i m <- m+li k <- k + 1L } } if(sparse) X <- sparseMatrix(i=u,j=v, x=2L) else{ X <- matrix(0L, n * (n - 1)/2, l) X[cbind(u,v)] <- 2L } colnames(X) <- nodes attr(X, "nodes") <- nodes X } designUnrooted2 <- function (tree, sparse=TRUE) { if (is.null(attr(tree, "order")) || attr(tree, "order") != "postorder") tree <- reorder(tree, "postorder") leri <- allChildren(tree) bp <- bip(tree) n <- length(tree$tip.label) l <- tree$Nnode nodes <- integer(l) nTips <- as.integer(length(tree$tip.label)) k <- nTips u <- numeric( n * (n - 1)/2) v <- numeric( n * (n - 1)/2) z <- numeric( n * (n - 1)/2) y <- numeric( n * (n - 1)/2) p <- 1L m <- 1L for (i in seq_along(leri)) { if (length(leri[[i]]) > 1) { if(length(leri[[i]])==2){ ind <- getIndex(bp[[leri[[i]][1] ]], bp[[leri[[i]][2] ]], n) ytmp <- rep(bp[[leri[[i]][1] ]], each = length(bp[[leri[[i]][2] ]])) ztmp <- rep(bp[[leri[[i]][2] ]], length(bp[[leri[[i]][1] ]])) } else { # browser() ind <- NULL le <- leri[[i]] nl <- length(le) ytmp <- NULL ztmp <- NULL for(j in 1:(nl-1)){ bp1 <- bp[[le[j] ]] bp2 <- unlist(bp[le[(j+1):nl] ]) ind <- c(ind, getIndex(bp1, unlist(bp2), n)) ytmp <- c(ytmp, rep(bp1, each = length(bp2))) ztmp <- c(ztmp, rep(bp2, length(bp1))) } } li <- length(ind) v[m: (m+li-1)] <- k u[m: (m+li-1)] <- ind y[m: (m+li-1)] <- ytmp z[m: (m+li-1)] <- ztmp nodes[p] <- i m <- m+li k <- k + 1L p <- p + 1L } } jj <- c(y,z) #[ind],v) ii <- c(u,u) #[ind],u) ind <- (jj < nTips) jj <- c(jj[ind], v) ii <- c(ii[ind], u) l1 <- length(u) l2 <- sum(ind) x <- rep(c(-1L,2L), c(l2, l1)) X <- sparseMatrix(i=ii,j=jj, x=x) if(!sparse){ X <- as.matrix(X) } nodes <- c(1:(nTips-1L), nodes) colnames(X) <- nodes attr(X, "nodes") <- nodes X } #' @rdname designTree #' @export nnls.tree <- function(dm, tree, rooted=FALSE, trace=1){ if(is.rooted(tree) & rooted==FALSE){ tree <- unroot(tree) warning("tree was rooted, I unrooted the tree!") } tree <- reorder(tree, "postorder") dm <- as.matrix(dm) k <- dim(dm)[1] labels <- tree$tip.label dm <- dm[labels,labels] y <- dm[lower.tri(dm)] #computing the design matrix from the tree if(rooted) X <- designUltra(tree) else X <- designUnrooted2(tree) lab <- attr(X, "nodes") # na.action if(any(is.na(y))){ ind <- which(is.na(y)) X <- X[-ind,,drop=FALSE] y <- y[-ind] } # LS solution Dmat <- crossprod(X) # cross-product computations dvec <- crossprod(X, y) betahat <- as.vector(solve(Dmat, dvec)) betahattmp <- betahat bhat <- numeric(max(tree$edge)) bhat[as.integer(lab)] <- betahat betahat <- bhat[tree$edge[,1]] - bhat[tree$edge[,2]] if(!any(betahat<0)){ # if(!rooted){ RSS <- sum((y-(X%*%betahattmp))^2) if(trace)print(paste("RSS:", RSS)) attr(tree, "RSS") <- RSS # } tree$edge.length <- betahat return(tree) } # non-negative LS n <- dim(X)[2] l <- nrow(tree$edge) lab <- attr(X, "nodes") # vielleicht solve.QP.compact ind1 <- match(tree$edge[,1], lab) ind2 <- match(tree$edge[,2], lab) # Amat = matrix(0, n, l) # Amat[cbind(ind1, 1:l)] = 1 # Amat[cbind(ind2, 1:l)] = -1 # betahat <- quadprog::solve.QP(as.matrix(Dmat),as.vector(dvec),Amat)$sol Amat <- matrix(0, 2, l) Amat[1,] <- 1 Amat[2,] <- -1 Aind <- matrix(0L, 3, l) Aind[1,] <- 2L Aind[2,] <- as.integer(ind1) Aind[3,] <- as.integer(ind2) if(any(is.na(Aind))){ na_ind <- which(is.na(Aind), arr.ind = TRUE) Aind[is.na(Aind)] <- 0L for(i in 1:nrow(na_ind)) Aind[1, na_ind[i, 2]] <- Aind[1, na_ind[i, 2]] - 1L } betahat <- quadprog::solve.QP.compact(as.matrix(Dmat),as.vector(dvec),Amat, Aind)$sol # quadratic programing solving # if(!rooted){ RSS <- sum((y-(X%*%betahat))^2) if(trace)print(paste("RSS:", RSS)) attr(tree, "RSS") <- RSS # } bhat <- numeric(max(tree$edge)) bhat[as.integer(lab)] <- betahat betahat <- bhat[tree$edge[,1]] - bhat[tree$edge[,2]] tree$edge.length <- betahat tree } #' @rdname designTree #' @export nnls.phylo <- function(x, dm, rooted=FALSE, trace=0){ nnls.tree(dm, x, rooted, trace=trace) } #' @rdname designTree #' @export nnls.splits <- function(x, dm, trace=0){ labels <- attr(x, "labels") dm <- as.matrix(dm) k <- dim(dm)[1] dm <- dm[labels,labels] y <- dm[lower.tri(dm)] x <- SHORTwise(x, k) l <- lengths(x) if(any(l==0)) x <- x[-which(l==0)] X <- splits2design(x) if(any(is.na(y))){ ind <- which(is.na(y)) X <- X[-ind,,drop=FALSE] y <- y[-ind] } Dmat <- crossprod(X) # cross-product computations dvec <- crossprod(X, y) betahat <- as.vector(solve(Dmat, dvec)) if(!any(betahat<0)){ RSS <- sum((y-(X%*%betahat))^2) if(trace)print(paste("RSS:", RSS)) attr(x, "RSS") <- RSS attr(x, "weights") <- betahat return(x) } n <- dim(X)[2] int <- lengths(x) # Amat = diag(n) # (int) # betahat <- quadprog::solve.QP(as.matrix(Dmat),as.vector(dvec),Amat)$sol # quadratic programing solving # faster version Amat <- matrix(1, 1, n) Aind <- matrix(0L, 2L, n) Aind[1,] <- 1L Aind[2,] <- as.integer(1L:n) betahat <- quadprog::solve.QP.compact(as.matrix(Dmat),as.vector(dvec),Amat, Aind)$sol RSS <- sum((y-(X%*%betahat))^2) ind <- (betahat > 1e-8) | int==1 x <- x[ind] attr(x, "weights") <- betahat[ind] if(trace)print(paste("RSS:", RSS)) attr(x, "RSS") <- RSS x } #' @rdname designTree #' @export nnls.networx <- function(x, dm){ # spl <- attr(x, "splits") spl <- x$splits spl2 <- nnls.splits(spl, dm) weight <- attr(spl, "weight") weight[] <- 0 weight[match(spl2, spl)] <- attr(spl2, "weight") # attr(attr(x, "splits"), "weight") <- weight attr(x$splits, "weight") <- weight x$edge.length <- weight[x$splitIndex] x } #' @rdname designTree #' @export designSplits <- function (x, splits = "all", ...) { if (!is.na(pmatch(splits, "all"))) splits <- "all" if(inherits(x, "splits")) return(designUnrooted(x)) SPLITS <- c("all", "star") #,"caterpillar") splits <- pmatch(splits, SPLITS) if (is.na(splits)) stop("invalid splits method") if (splits == -1) stop("ambiguous splits method") if(splits==1) X <- designAll(x) if(splits==2) X <- designStar(x, ...) return(X) } # add return splits=FALSE designAll <- function(n, add.split=FALSE){ Y <- matrix(0L, n*(n-1)/2, n) k <- 1 for(i in 1:(n-1)){ for(j in (i+1):n){ Y[k,c(i,j)] <- 1L k <- k+1L } } m <- n-1L X <- matrix(0L, m+1, 2^m) for(i in 1:m) X[i, ] <- rep(rep(c(0L,1L), each=2^(i-1)),2^(m-i)) X <- X[,-1] if(!add.split) return((Y%*%X)%%2) list(X=(Y%*%X)%%2,Splits=t(X)) } # faster sparse version designStar <- function(n, sparse=TRUE){ # res=NULL # for(i in 1:(n-1)) res = rbind(res,cbind(matrix(0,(n-i),i-1),1,diag(n-i))) res <- stree(n) %>% as.splits %>% splits2design if(!sparse) return(as.matrix(res)) res } phangorn/R/SOWH.R0000644000176200001440000001202313207043151013164 0ustar liggesusers#' Swofford-Olsen-Waddell-Hillis Test #' #' This function computes the Swofford--Olsen--Waddell--Hillis (SOWH) test, a #' parametric bootstrap test. The function is computational very demanding and #' likely to be very slow. #' #' \code{SOWH.test} performs a parametric bootstrap test to compare two trees. #' It makes extensive use \code{simSeq} and \code{optim.pml} and can take quite #' long. #' #' @param x an object of class \code{"pml"}. #' @param n the number of bootstrap replicates. #' @param restricted list of restricted parameter settings. #' @param optNni Logical value indicating whether topology gets optimized #' (NNI). #' @param trace Show output during computations. #' @param \dots Further arguments passed to \code{"optim.pml"}. #' @return an object of class SOWH. That is a list with three elements, one is #' a matrix containing for each bootstrap replicate the (log-) likelihood of #' the restricted and unrestricted estimate and two pml objects of the #' restricted and unrestricted model. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{pml}}, \code{\link{pmlPart}}, \code{\link{pmlCluster}}, #' \code{\link{simSeq}}, \code{\link{SH.test}} #' @references Goldman, N., Anderson, J. P., and Rodrigo, A. G. (2000) #' Likelihood -based tests of topologies in phylogenetics. \emph{Systematic #' Biology} \bold{49} 652-670. #' #' Swofford, D.L., Olsen, G.J., Waddell, P.J. and Hillis, D.M. (1996) #' Phylogenetic Inference in Hillis, D.M., Moritz, C. and Mable, B.K. (Eds.) #' \emph{Molecular Systematics} (2nd ed.) 407-514, Sunderland, MA: Sinauer #' @keywords models #' @examples #' #' # in real analysis use larger n, e.g. 500 preferably more #' \dontrun{ #' data(Laurasiatherian) #' dm <- dist.logDet(Laurasiatherian) #' tree <- NJ(dm) #' fit <- pml(tree, Laurasiatherian) #' fit <- optim.pml(fit, TRUE) #' set.seed(6) #' tree <- rNNI(fit$tree, 1) #' fit <- update(fit, tree = tree) #' (res <- SOWH.test(fit, n=100)) #' summary(res) #' } #' #' @export SOWH.test SOWH.test <- function(x, n=100, restricted=list(optNni=FALSE), optNni=TRUE, trace = 1, ...){ res <- matrix(NA, n, 2) extras <- match.call(expand.dots = FALSE)$... optU <- list (optNni = optNni, optBf = FALSE, optQ = FALSE, optInv = FALSE, optGamma = FALSE, optEdge = TRUE, optRate = FALSE, optRooted = FALSE, model = NULL) if(!is.null(extras)){ namAll <- names(extras) for(i in 1: length(extras))optU[[namAll[i]]] <- extras[[i]] } optR <- optU namR <- names(restricted) for(i in 1: length(namR))optR[[namR[i]]] <- restricted[[i]] restr <- optim.pml(x, optNni = optR$optNni, optBf = optR$optBf, optQ = optR$optQ, optInv = optR$optInv, optGamma = optR$optGamma, optEdge = optR$optEdge, optRate = optR$optRate, optRooted = optR$optRooted, model = optR$model, pml.control(trace = trace-1L)) unrestr <- optim.pml(restr, optNni = optU$optNni, optBf = optU$optBf, optQ = optU$optQ, optInv = optU$optInv, optGamma = optU$optGamma, optEdge = optU$optEdge, optRate = optU$optRate, optRooted = optU$optRooted, model = optU$model, pml.control(trace = trace-1L)) for(i in 1:n){ if(trace>0) cat("iteration: ", i, "\n") newData <- simSeq(restr) restrTmp <- update(restr, data=newData) unrestrTmp <- restrTmp # update(unrestr, data=newData) restrTmp <- optim.pml(restrTmp, optNni = optR$optNni, optBf = optR$optBf, optQ = optR$optQ, optInv = optR$optInv, optGamma = optR$optGamma, optEdge = optR$optEdge, optRate = optR$optRate, optRooted = optR$optRooted, model = optR$model, pml.control(trace = trace-1L)) unrestrTmp <- optim.pml(unrestrTmp, optNni = optU$optNni, optBf = optU$optBf, optQ = optU$optQ, optInv = optU$optInv, optGamma = optU$optGamma, optEdge = optU$optEdge, optRate = optU$optRate, optRooted = optU$optRooted, model = optU$model, pml.control(trace = trace-1L)) res[i, 1] <- logLik(restrTmp) res[i, 2] <- logLik(unrestrTmp) } result <- list("LL"=res, "restr" = restr, "unrestr" = unrestr) class(result) <- "SOWH" result } print.SOWH <- function(x, digits = 4L, ...){ resLL <- logLik(x$restr) unresLL <- logLik(x$unrestr) diffLL <- unresLL - resLL pval <- sum( (x$LL[,2] - x$LL[,1]) > diffLL) / nrow(x$LL) res <- c(resLL, unresLL, diffLL, pval) names(res) <- c("ln L restr", "ln L unrestr", "Diff ln L", "p-value") print(res, digits=digits) invisible(x) } summary.SOWH <- function(object, digits = 4L, plot=TRUE, ...){ resLL <- logLik(object$restr) unresLL <- logLik(object$unrestr) diffLL <- unresLL - resLL pval <- sum( (object$LL[,2] - object$LL[,1]) > diffLL) / nrow(object$LL) res <- c(resLL, unresLL, diffLL, pval) names(res) <- c("ln L restr", "ln L unrestr", "Diff ln L", "p-value") print(res, digits=digits) if(plot){ d <- object$LL[,2] - object$LL[,1] hist( d, freq=FALSE, xlim=c(0, 1.2 * max(d, diffLL))) abline(v=diffLL, col="red") } invisible(object) } phangorn/R/splits.R0000644000176200001440000003553513201424001013726 0ustar liggesusers#' Splits representation of graphs and trees. #' #' \code{as.splits} produces a list of splits or bipartitions. #' #' @aliases splits as.Matrix distinct.splits as.phylo.splits #' addTrivialSplits removeTrivialSplits matchSplits #' @param x An object of class phylo or multiPhylo. #' @param maxp integer, default from \code{options(max.print)}, influences how #' many entries of large matrices are printed at all. #' @param zero.print character which should be printed for zeros. #' @param one.print character which should be printed for ones. #' @param incomparables only for compatibility so far. #' @param unrooted todo. #' @param \dots Further arguments passed to or from other methods. #' @param recursive logical. If recursive = TRUE, the function recursively descends #' through lists (and pairlists) combining all their elements into a vector. #' @param obj an object of class splits. #' @param k number of taxa. #' @param labels names of taxa. #' @return \code{as.splits} returns an object of class splits, which is mainly #' a list of splits and some attributes. Often a \code{splits} object will #' contain attributes \code{confidences} for bootstrap or Bayesian support #' values and \code{weight} storing edge weights. #' \code{compatible} return a lower triangular matrix where an 1 indicates that #' two splits are incompatible. #' @note The internal representation is likely to change. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{prop.part}}, \code{\link{lento}}, \code{\link{as.networx}}, #' \code{\link{distanceHadamard}}, \code{\link{read.nexus.splits}} #' @keywords cluster #' @examples #' #' (sp <- as.splits(rtree(5))) #' write.nexus.splits(sp) #' spl <- allCircularSplits(5) #' plot(as.networx(spl), "2D") #' #' @rdname as.splits #' @export as.splits <- function (x, ...){ if(inherits(x, "splits")) return(x) UseMethod("as.splits") } as.Matrix <- function (x, ...){ if (inherits(x,"Matrix")) return(x) UseMethod("as.Matrix") } #' @rdname as.splits #' @method as.matrix splits #' @export as.matrix.splits <- function(x, zero.print = 0L, one.print=1L, ...){ m <- length(x) labels <- attr(x, "labels") n <- length(labels) res <- matrix(zero.print, m, n) for(i in 1:m)res[i,x[[i]]] <- one.print dimnames(res) <- list(names(x), labels) res } #' @rdname as.splits #' @method as.Matrix splits #' @export as.Matrix.splits <- function(x, ...){ labels <- attr(x, "labels") l <- length(x) j <- unlist(x) # i = rep(1:l, sapply(x, length)) i <- rep(1:l, lengths(x)) sparseMatrix(i,j, x = rep(1L, length(i)), dimnames = list(NULL, labels)) # included x und labels } #' @rdname as.splits #' @method print splits #' @export print.splits <- function(x, maxp = getOption("max.print"), zero.print = ".", one.print="|", ...) { x.orig <- x cx <- as.matrix(x, zero.print = zero.print, one.print=one.print) print(cx, quote = FALSE, right = TRUE, max = maxp) invisible(x.orig) } "[.splits" <- function(x, i){ tmp <- attributes(x) result <- unclass(x)[i] if(!is.null(tmp$weights)) tmp$weights <- tmp$weights[i] if(!is.null(tmp$confidences)) tmp$confidences <- tmp$confidences[i] if(!is.null(tmp$intervals)) tmp$intervals <- tmp$intervals[i] if(!is.null(tmp$data)) tmp$data <- tmp$data[i,, drop=FALSE] attributes(result) <- tmp result } changeOrder <- function(x, labels){ oldL <- attr(x, "labels") ind <- match(oldL,labels) for(i in seq_along(x)) x[[i]] <- sort(ind[x[[i]]]) if(!is.null(attr(x, "cycle"))) attr(x, "cycle") <- ind[attr(x, "cycle")] attr(x, "labels") <- labels x } #orderSplitLabel = function(x, order){ # label = attr(x, "labels") # nTips = length(label) # ord = match(label, order) # for(i in 1:length(x)) # x[[i]] = sort(ord[x[[i]]]) # attr(x, "labels") = order # x #} ## @rdname as.splits ## @export matchSplits <- function(x, y, as.in=TRUE){ tiplabel <- attr(x, "label") if(any(is.na(match(tiplabel, attr(y, "label"))))) stop("x and y have different labels!") nTips <- length(tiplabel) y <- changeOrder(y, tiplabel) y <- SHORTwise(y, nTips) if(as.in) return(match(SHORTwise(x, nTips), y, nomatch = 0L) > 0L) match(SHORTwise(x, nTips), y) } optCycle <- function(splits, tree){ tips <- tree$tip.label tree <- reorder(tree) nodes <- sort(unique(tree$edge[,1])) M <- as.matrix(splits) l <- as.integer(nrow(M)) m <- as.integer(ncol(M)) tmp <- tree$edge[,2] tmp <- tmp[tmp<=m] start <- .C("countCycle", M[, tmp], l, m, integer(1))[[4]] best <- start eps <- 1 if(eps>0){ for(i in seq_along(nodes)){ tmptree <- rotate(tree, nodes[i]) tmp <- tmptree$edge[,2] tmp <- tmp[tmp<=m] tmpC <- .C("countCycle", M[, tmp], l, m, integer(1))[[4]] if(tmpC < best){ best <- tmpC tree <- tmptree } } eps <- start - best } tree # list(best, tree) } countCycles <- function(splits, tree=NULL, ord=NULL){ M <- as.matrix(splits) l <- as.integer(nrow(M)) m <- as.integer(ncol(M)) if(!is.null(tree)) ord <- getOrdering(tree) res <- .C("countCycle2", M[, ord], l, m, integer(l))[[4]] res } #' @rdname as.splits #' @method c splits #' @export c.splits <- function (..., recursive=FALSE) { x <- list(...) if (length(x) == 1 && !inherits(x[[1]], "splits")) x <- x[[1]] n <- length(x) match.names <- function(a, b) { if (any(!(a %in% b))) stop("names do not match previous names") } if (n == 1) return(x[[1]]) labels <- attr(x[[1]], "labels") cycle <- attr(x[[1]], "cycle") for (i in 2:n) { match.names(labels, attr(x[[i]], "labels")) x[[i]] <- changeOrder(x[[i]], labels) } w <- as.vector(unlist(lapply(x, attr, "weights"))) x <- lapply(x, unclass) res <- structure(do.call("c", x), class=c("splits", "prop.part")) names(res) <- NULL # res <- structure(NextMethod("c"), class=c("splits", "prop.part")) attr(res, "labels") <- labels attr(res, "weights") <- w attr(res, "cycle") <- cycle res } #' @rdname as.splits #' @method unique splits #' @export unique.splits <- function(x, incomparables = FALSE, unrooted=TRUE, ...){ nTips <- length(attr(x, "labels")) x <- SHORTwise(x, nTips) x[!duplicated(x)] } distinct.splits <- function(...){ tmp <- c(...) res <- unique(tmp) attributes(res) <- attributes(tmp) attr(res, "weights") <- tabulate(match(tmp, res)) res } # computes splits from phylo #' @rdname as.splits #' @method as.splits phylo #' @export as.splits.phylo <- function(x, ...){ if (hasArg(as.is)) as.is <- list(...)$as.is else as.is <- TRUE result <- bip(x) if(!is.null(x$edge.length)){ edge.weights <- numeric(max(x$edge)) edge.weights[x$edge[,2]] <- x$edge.length attr(result, "weights") <- edge.weights } if(!is.null(x$node.label)){ conf <- x$node.label if(is.character(conf)) conf <- as.numeric(conf) if(!as.is) if(max(na.omit(conf)) > (1 + 1e-8))conf <- conf / 100 #if(!is.null(scale)) conf <- conf / scale attr(result, "confidences") <- c(rep(NA_real_, length(x$tip.label)), conf) } attr(result, "labels") <- x$tip.label class(result) <- c('splits', 'prop.part') result } # computes splits from multiPhylo object (e.g. bootstrap, MCMC etc.) #' @rdname as.splits #' @method as.splits multiPhylo #' @export as.splits.multiPhylo <- function(x, ...){ lx <- length(x) x <- unroot(x) splits <- prop.part(x) class(splits) <- 'list' weights <- attr(splits, 'number') lab <- attr(splits,'labels') attr(splits,'labels') <- attr(splits, 'number') <- NULL l <- length(lab) splitTips <- vector('list', l) for(i in 1:l) splitTips[[i]] <- i result <- c(splitTips,splits) attr(result, "weights") <- c(rep(lx, l), weights) attr(result, "confidences") <- attr(result, "weights") / lx attr(result, "summary") <- list(confidences="ratio", ntrees=l, clades=FALSE) attr(result, "labels") <- lab class(result) <- c('splits', 'prop.part') result } as.splits.prop.part <- function(x, ...){ if(is.null(attr(x, "number"))) attr(x, "weights") <- rep(1, length(x)) else{ attr(x, "weights") <- attr(x, "number") attr(x, "confidences") <- attr(x, "number") / attr(x, "number")[1] } class(x) <- c('splits', 'prop.part') x } #' @rdname as.splits #' @method as.splits networx #' @export as.splits.networx <- function(x, ...){ # if(!is.null(attr(x, "splits")))attr(x, "splits") if(!is.null(x$splits)) x$splits else warning("No split object included!") } #' @rdname as.splits #' @method as.prop.part splits #' @export as.prop.part.splits <- function(x, ...){ attr(x, "number") <- attr(x, "weights") attr(x, "weights") <- NULL class(x) <- c('prop.part') x } ## as.splits.phylo ## @rdname as.splits ## @method as.phylo splits ## @export as.phylo.splits <- function (x, result = "phylo", ...) { result <- match.arg(result, c("phylo", "all")) labels <- attr(x, "labels") nTips <- length(labels) weights <- attr(x, "weights") nTips <- length(labels) x <- SHORTwise(x, nTips) dm <- as.matrix(compatible(x)) rs <- rowSums(dm) ind <- which(rs == 0) if (any(rs > 0)) { tmp <- which(rs > 0) candidates <- tmp[order(rs[tmp])] for (i in candidates) { if (sum(dm[ind, i]) == 0) ind <- c(ind, i) } } splits <- x[ind] weights <- weights[ind] l <- length(ind) res <- matrix(0L, l, nTips) for (i in 1:l) res[i, splits[[i]]] <- 1L dm2 <- (crossprod(res * weights, 1 - res)) dm2 <- dm2 + t(dm2) dimnames(dm2) <- list(labels, labels) tree <- di2multi(NJ(dm2), tol = 1e-08) attr(tree, "order") <- NULL tree <- reorder(tree) tree <- optCycle(x, tree) tree <- reorder(tree, "postorder") if (result == "phylo") return(tree) # tree = reroot(tree, Ancestors(tree, 1, "parent")) spl <- as.splits(tree) spl <- SHORTwise(spl, nTips) spl <- spl[tree$edge[,2]] list(tree = tree, index = tree$edge[, 2], split = spl, rest = x[-ind]) } #' @rdname as.splits #' @method as.bitsplits splits #' @export as.bitsplits.splits <- function (x){ foo <- function(vect, RAWVECT) { res <- RAWVECT for (y in vect) { i <- ceiling(y/8) res[i] <- res[i] | as.raw(2^(8 - ((y - 1)%%8) - 1)) } res } N <- length(x) n <- length(attr(x, "labels")) nr <- ceiling(n/8) mat <- raw(N * nr) dim(mat) <- c(nr, N) RAWVECT <- raw(nr) for (i in 1:N) mat[, i] <- foo(x[[i]], RAWVECT) freq <- attr(x, "weights") if(is.null(freq)) freq <- rep(1, N) structure(list(matsplit = mat, labels = attr(x, "labels"), freq = freq), class = "bitsplits") } # computes compatible splits #' @rdname as.splits #' @export compatible <- function(obj){ labels <- attr(obj, "labels") if(!inherits(obj, "splits"))stop("obj needs to be of class splits") l <- length(labels) n <- length(obj) bp <- matrix(0L, n, l) for(i in 1:n)bp[i,obj[[i]]] <- 1L bp[bp[, 1] == 0L, ] <- 1L - bp[bp[, 1] == 0L, ] k <- 1 res <- matrix(0L, n, n) tmp1 <- tcrossprod(bp) #sum(bp[i,]* bp[j,]) tmp2 <- tcrossprod(1L - bp) #sum((1L - bp[i,])*(1L - bp[j,])) tmp3 <- tcrossprod(bp, 1L - bp) #sum(bp[i,]*(1L - bp[j,])) tmp4 <- tcrossprod(1L - bp, bp) #sum((1L - bp[i,])*bp[j,]) res[(tmp1 * tmp2 * tmp3 * tmp4)>0] <- 1L k <- k+1 res <- res[lower.tri(res)] attr(res, "Size") <- n attr(res, "Diag") <- FALSE attr(res, "Upper") <- FALSE class(res) <- "dist" return(res) } compatible2 <- function (obj1, obj2=NULL) { if (!inherits(obj1, "splits")) stop("obj needs to be of class splits") labels <- attr(obj1, "labels") l <- length(labels) n <- length(obj1) bp1 <- as.matrix(obj1) bp1[bp1[, 1] == 0L, ] <- 1L - bp1[bp1[, 1] == 0L, ] if(!is.null(obj2)){ m <- length(obj2) bp2 <- as.matrix(obj2) labels2 <- attr(obj2, "labels") bp2 <- bp2[, match(labels2, labels), drop=FALSE] bp2[bp2[, 1] == 0L, ] <- 1L - bp2[bp2[, 1] == 0L, ] } else bp2 <- bp1 if(is.null(obj2)) res <- matrix(0L, n, n) else res <- matrix(0L, n, m) tmp1 <- tcrossprod(bp1, bp2) tmp2 <- tcrossprod(1L - bp1, 1L - bp2) tmp3 <- tcrossprod(bp1, 1L - bp2) tmp4 <- tcrossprod(1L - bp1, bp2) res[(tmp1 * tmp2 * tmp3 * tmp4) > 0] <- 1L if(is.null(obj2)){ res <- res[lower.tri(res)] attr(res, "Size") <- n attr(res, "Diag") <- FALSE attr(res, "Upper") <- FALSE class(res) <- "dist" } return(res) } compatible3 <- function(x, y=NULL) { if (!inherits(x, "splits")) stop("x needs to be of class splits") if(is.null(y)) y <- x if (!inherits(y, "splits")) stop("y needs to be of class splits") xlabels <- attr(x, "labels") ylabels <- attr(y, "labels") if(identical(xlabels, ylabels)) labels <- xlabels else labels <- intersect(xlabels, ylabels) nx <- length(x) ny <- length(y) bp1 <- as.matrix(x)[,labels, drop=FALSE] bp2 <- as.matrix(y)[,labels, drop=FALSE] rs1 <- rowSums(bp1) rs2 <- rowSums(bp2) res <- matrix(0L, nx, ny) tmp1 <- tcrossprod(bp1, bp2) res <- matrix(0L, nx, ny) for(i in 1:nx){ for(j in 1:ny){ if(tmp1[i, j]==rs1[i]) res[i,j] <- 1 if(tmp1[i, j]==rs2[j]) res[i,j] <- 2 if(tmp1[i, j]==rs1[i] & tmp1[i, j]==rs2[j])res[i,j] <- 3 } } if(is.null(y)){ res <- res[lower.tri(res)] attr(res, "Size") <- length(x) attr(res, "Diag") <- FALSE attr(res, "Upper") <- FALSE class(res) <- "dist" } return(res) } compatible_2 <- function(obj1, obj2) { ntaxa <- length(obj1$labels) msk <- !as.raw(2^(8 - (ntaxa%%8)) - 1) r0 <- as.raw(0) arecompatible2 <- function (x, y, msk, r0) { foo <- function(v) { lv <- length(v) v[lv] <- v[lv] & msk as.integer(all(v == r0)) } nE <- foo(x & y) + foo(x & !y) + foo(!x & y) + foo(!x & !y) if (nE > 0) TRUE else FALSE } m1 <- obj1$matsplit m2 <- obj2$matsplit n1 <- ncol(m1) n2 <- ncol(m2) res <- rep(TRUE, n1) for (i in 1:n1){ j <- 1 while(j <= n2){ if (!arecompatible2(m1[, i], m2[, j], msk, r0)){ res[i] <- FALSE break() } j <- j+1L } } res } phangorn/R/phylo.R0000644000176200001440000034275613240405265013567 0ustar liggesusers edgeLengthIndex <- function(child, parent, nTips){ fun <- function(child, parent, nTips){ if(child <= nTips) return(child) else{ if(child < parent) return(parent) return(child) } } if (length(child)==1) return(fun(child, parent, nTips)) else { res <- integer(length(child)) for(i in 1:length(child))res[i] <- fun(child[i], parent[i], nTips) return(res) } } # # Maximum likelihood estimation # #' @rdname pml.fit #' @export discrete.gamma <- function (alpha, k) { if (k == 1) return(1) quants <- qgamma((1:(k - 1))/k, shape = alpha, rate = alpha) diff( c(0, pgamma(quants * alpha, alpha + 1),1)) * k } # allow transition probs of zero (added o) optimQ <- function (tree, data, Q=rep(1,6), subs=rep(1,length(Q)), trace = 0, ...) { m <- length(Q) n <- max(subs) o <- min(subs) ab <- numeric(n) # ab = log(Q[match(1:n, subs)]) for(i in 1:n) ab[i] <- log(Q[which(subs==i)[1]]) fn <- function(ab, tree, data, m, n, o, subs,...) { Q <- numeric(m) for(i in 1:n)Q[subs==i] <- ab[i] if(o < 0)Q[subs<0] <- -Inf pml.fit(tree, data, Q = exp(Q),...)# Q^2, ...) } res <- optim(par = ab, fn = fn, gr = NULL, method = "L-BFGS-B", lower = -Inf, upper = 10, control = list(fnscale = -1, maxit = 25, trace = trace), tree = tree, data = data, m=m, n=n, o=o, subs=subs,...) Q <- rep(1, m) for(i in 1:n) Q[subs==i] <- exp(res[[1]][i]) if(o < 0)Q[subs<0] <- 0 res[[1]] <- Q res } optimCodon <- function (tree, data, Q=rep(1,1830), subs=rep(1,length(Q)), syn = rep(0, length(Q)), trace = 0L, ab = c(0,0), optK=TRUE, optW=TRUE, ...) { m <- length(Q) n <- 1L # max(subs) fn <- function(ab, tree, data, m, n, subs, syn, optK, optW, ...) { Q <- numeric(m) Q[subs==1] <- 0 # transversion if(optK) Q[subs==2] <- ab[1] # transition else Q[subs==2] <- 0 if(optW) Q[syn==1] <- Q[syn==1] + ab[2] # ab[n+1] dnds Q[syn<0] <- -Inf pml.fit(tree, data, Q = exp(Q),...)# Q^2, ...) } res <- optim(par = ab, fn = fn, gr = NULL, method = "L-BFGS-B", lower = -Inf, upper = Inf, control = list(fnscale = -1, maxit = 25, trace = trace), tree = tree, data = data, m=m, n=n, subs=subs, syn=syn, optK=optK, optW=optW, ...) ab <- exp(res[[1]]) Q[subs==1] <- 1 # transversion if(optK) Q[subs==2] <- ab[1] # transition else{ Q[subs==2] <- 1 ab[1] <- 1 } if(optW) Q[syn==1] <- Q[syn==1] * ab[2] # dnds else ab[2] <- 1 Q[syn<0] <- 0 res[[5]] <- ab res[[1]] <- Q res } subsChoice <- function(type=c("JC", "F81", "K80", "HKY", "TrNe", "TrN", "TPM1", "K81", "TPM1u", "TPM2", "TPM2u", "TPM3", "TPM3u", "TIM1e", "TIM1", "TIM2e", "TIM2", "TIM3e", "TIM3", "TVMe", "TVM", "SYM", "GTR")){ type <- match.arg(type) switch(type, JC = list(optQ=FALSE, optBf=FALSE, subs=c(0, 0, 0, 0, 0, 0)), F81 = list(optQ=FALSE, optBf=TRUE, subs=c(0, 0, 0, 0, 0, 0)), K80 = list(optQ=TRUE, optBf=FALSE, subs=c(0, 1, 0, 0, 1, 0)), HKY = list(optQ=TRUE, optBf=TRUE, subs=c(0, 1, 0, 0, 1, 0)), TrNe = list(optQ=TRUE, optBf=FALSE, subs=c(0, 1, 0, 0, 2, 0)), TrN = list(optQ=TRUE, optBf=TRUE, subs=c(0, 1, 0, 0, 2, 0)), TPM1 = list(optQ=TRUE, optBf=FALSE, subs=c(0, 1, 2, 2, 1, 0)), K81 = list(optQ=TRUE, optBf=FALSE, subs=c(0, 1, 2, 2, 1, 0)), TPM1u = list(optQ=TRUE, optBf=TRUE, subs=c(0, 1, 2, 2, 1, 0)), TPM2 = list(optQ=TRUE, optBf=FALSE, subs=c(1, 2, 1, 0, 2, 0)), TPM2u = list(optQ=TRUE, optBf=TRUE, subs=c(1, 2, 1, 0, 2, 0)), TPM3 = list(optQ=TRUE, optBf=FALSE, subs=c(1, 2, 0, 1, 2, 0)), TPM3u = list(optQ=TRUE, optBf=TRUE, subs=c(1, 2, 0, 1, 2, 0)), TIM1e = list(optQ=TRUE, optBf=FALSE, subs=c(0, 1, 2, 2, 3, 0)), TIM1 = list(optQ=TRUE, optBf=TRUE, subs=c(0, 1, 2, 2, 3, 0)), TIM2e = list(optQ=TRUE, optBf=FALSE, subs=c(1, 2, 1, 0, 3, 0)), TIM2 = list(optQ=TRUE, optBf=TRUE, subs=c(1, 2, 1, 0, 3, 0)), TIM3e = list(optQ=TRUE, optBf=FALSE, subs=c(1, 2, 0, 1, 3, 0)), TIM3 = list(optQ=TRUE, optBf=TRUE, subs=c(1, 2, 0, 1, 3, 0)), TVMe = list(optQ=TRUE, optBf=FALSE, subs=c(1, 2, 3, 4, 2, 0)), TVM = list(optQ=TRUE, optBf=TRUE, subs=c(1, 2, 3, 4, 2, 0)), SYM = list(optQ=TRUE, optBf=FALSE, subs=c(1, 2, 3, 4, 5, 0)), GTR = list(optQ=TRUE, optBf=TRUE, subs=c(1, 2, 3, 4, 5, 0)) ) } optimGamma <- function(tree, data, shape=1, k=4,...){ fn <- function(shape, tree, data, k,...)pml.fit(tree, data, shape=shape, k=k,...) res <- optimize(f=fn, interval = c(0.1, 500), lower = 0.1, upper = 500, maximum = TRUE, tol = .01, tree=tree, data=data, k=k,...) res } optimInv <- function(tree, data, inv=0.01, INV=NULL, ll.0=NULL,...){ fn <- function(inv, tree, data,...)pml.fit(tree, data, inv=inv, INV=INV, ll.0=NULL,...) res <- optimize(f=fn, interval = c(0,1), lower = 0, upper = 1, maximum = TRUE, tol = .0001, tree=tree, data=data,...) res } # changed to c(-10,10) from c(-5,5) optimRate <- function(tree, data, rate=1, ...){ fn <- function(rate, tree, data, ...) pml.fit(tree, data, rate=exp(rate), ...) res <- optimize(f = fn, interval = c(-10, 10), tree = tree, data = data, ..., maximum = TRUE) res[[1]] <- exp(res[[1]]) res } optimBf <- function(tree, data, bf=c(.25,.25,.25,.25), trace=0,...){ l <- length(bf) nenner <- 1/bf[l] lbf <- log(bf * nenner) lbf <- lbf[-l] fn <- function(lbf, tree, data,...){ bf <- exp(c(lbf,0)) bf <- bf/sum(bf) pml.fit(tree, data, bf=bf, ...) } res <- optim(par=lbf, fn=fn, gr=NULL, method="Nelder-Mead", control= list(fnscale=-1, maxit=500, trace=trace),tree=tree, data=data,...) bf <- exp(c(res[[1]],0)) bf <- bf/sum(bf) result <- list(bf=bf, loglik = res[[2]]) result } optimW <- function(fit,...){ w <- fit$w g <- fit$g siteLik <- fit$siteLik k <- length(w) l <- dim(siteLik[[1]])[1] x <- matrix(0,l,k) for(i in 1:k)x[,i] <- rowSums(siteLik[[i]]) weight <- fit$weight nenner <- 1/w[k] eta <- log(w * nenner) eta <- eta[-k] fn <- function(eta,x,g,weight){ eta <- c(eta,0) p <- exp(eta)/sum(exp(eta)) res <- x%*%p res <- sum(weight*log(res)) * (1 + abs(sum(p*g) - 1)) res } res <- optim(eta, fn = fn, method = "Nelder-Mead", control=list(fnscale=-1, reltol = 1e-12),gr=NULL, x=x,g=g, weight=weight) p <- exp(c(res$par,0)) p <- p/sum(p) result <- list(par = p, value = res$value) result } #predict.pml <- function(object, newdata,...) sum(object$site * newdata) logLik.pml <- function(object,...){ res <- object$logLik attr(res,"df") <- object$df class(res) <- "logLik" res } AICc <- function (object, ...) UseMethod("AICc") AICc.pml <- function(object, ...){ n <- sum(object$weight) k <- object$df if(k >= (n-1)) return(NaN) res <- AIC(object) res + (2*k*(k+1))/(n-k-1) } BIC.pml <- function(object, ...){ res <- AIC(object, k=log(sum(object$weight))) res } anova.pml <- function (object, ...) { X <- c(list(object), list(...)) fun <- function(x){ tmp <- logLik(x) c(tmp[1], attr(tmp, "df")) } DF <- t(sapply(X, fun)) dev <- c(NA, 2 * diff(DF[,1])) ddf <- c(NA, diff(DF[,2])) table <- data.frame(DF, ddf, dev, pchisq(dev, ddf, lower.tail = FALSE)) dimnames(table) <- list(1:length(X), c("Log lik.", "Df", "Df change", "Diff log lik.", "Pr(>|Chi|)")) structure(table, heading = "Likelihood Ratio Test Table", class = c("anova", "data.frame")) } #vcov.pml <- function(object, obs=FALSE,...){ # if(obs) FI = score4(object)[[2]] # else FI = score(object,FALSE)[[2]] # l = dim(FI)[1] # res = try(solve(FI)) # if(class(res) == "try-error"){ # cat("Covariance is ill-conditioned !! \n") # res = solve(FI + diag(l)* 1e-8) # } # res #} vcov.pml <- function(object, ...){ FI <- score(object,FALSE)[[2]] l <- dim(FI)[1] res <- try(solve(FI)) if(class(res) == "try-error"){ cat("Covariance is ill-conditioned !! \n") res <- solve(FI + diag(l)* 1e-8) } res } getd2P <- function(el, eig=edQt(), g=1.0){ n <- length(eig$values) res <- .Call("getd2PM",eig,as.integer(n),as.double(el),as.double(g)) attr(res,"dim") <- c(length(g),length(el)) res } getdP <- function(el, eig=edQt(), g=1.0){ n <- length(eig$values) res <- .Call("getdPM",eig,as.integer(n),as.double(el),as.double(g)) attr(res,"dim") <- c(length(g),length(el)) res } # version without transformation (used for vcov) getdP2 <- function(el, eig=edQt(), g=1.0){ n <- length(eig$values) res <- .Call("getdPM2",eig,as.integer(n),as.double(el),as.double(g)) attr(res,"dim") <- c(length(g),length(el)) res } # version without transformation getd2P2 <- function(el, eig=edQt(), g=1.0){ n <- length(eig$values) res <- .Call("getd2PM2",eig,as.integer(n),as.double(el),as.double(g)) attr(res,"dim") <- c(length(g),length(el)) res } getP <- function(el, eig=edQt(), g=1.0){ n <- length(eig$values) res <- .Call("getPM", eig, as.integer(n), as.double(el), as.double(g)) attr(res, "dim") <- c(length(g), length(el)) res } #' @rdname pml.fit #' @export lli <- function (data, tree=NULL, ...) { contrast <- attr(data, "contrast") nr <- attr(data, "nr") nc <- attr(data, "nc") nco <- as.integer(dim(contrast)[1]) if(!is.null(tree)) data <- subset(data, tree$tip.label) .Call("invSites", data, as.integer(nr), as.integer(nc), contrast, as.integer(nco)) } #' @rdname pml.fit #' @export edQt <- function (Q = c(1, 1, 1, 1, 1, 1), bf = c(0.25, 0.25, 0.25, 0.25)) { l <- length(bf) res <- matrix(0, l, l) res[lower.tri(res)] <- Q res <- res + t(res) res <- res * bf res2 <- res * rep(bf, each = l) diag(res) <- -colSums(res) res <- res/sum(res2) e <- eigen(res, FALSE) e$inv <- solve.default(e$vec) e } edQ <- function(Q=c(1,1,1,1,1,1), bf=c(0.25,.25,.25,.25)){ l <- length(bf) res <- matrix(0, l, l) res[lower.tri(res)] <- Q res <- res+t(res) res <- res * rep(bf,each=l) diag(res) <- -rowSums(res) res2 <- res * rep(bf,l) diag(res2) <- 0 res <- res/sum(res2) e <- eigen(res, FALSE) e$inv <- solve.default(e$vec) e } edQ2 <- function(Q){ res <- Q l <- dim(Q)[1] diag(res) <- 0 diag(res) <- -rowSums(res) e <- eigen(res, FALSE) e$inv <- solve.default(e$vec) e } #' @rdname pml.fit #' @export pml.free <- function(){ .C("ll_free") # rm(.INV, .iind, envir = parent.frame()) } #' @rdname pml.fit #' @export pml.init <- function(data, k=1L){ nTips <- length(data) nr <- attr(data, "nr") nc <- attr(data, "nc") .C("ll_init", as.integer(nr), as.integer(nTips), as.integer(nc), as.integer(k)) # INV <- lli(data) #, tree # .iind <<- which((INV %*% rep(1, nc)) > 0) # .INV <<- Matrix(INV, sparse=TRUE) # assign(".iind", which((INV %*% rep(1, nc)) > 0), envir=parent.frame()) # assign(".INV", Matrix(INV, sparse=TRUE), envir=parent.frame()) } fn.quartet <- function(old.el, eig, bf, dat, g=1, w=1, weight, ll.0) { l <- length(dat[,1]) ll <- ll.0 res <- vector("list", 2*l) tmp1 <- NULL tmp2 <- NULL attr(res,"dim") <- c(l,2) for(j in 1:l){ P <- getP(old.el, eig, g[j]) tmp1 <- (dat[[j,1]] %*% P[[1]]) *(dat[[j,2]] %*% P[[2]]) tmp2 <- (dat[[j,3]] %*% P[[3]]) * (dat[[j,4]] %*% P[[4]]) res[[j,1]] <- tmp1 * (tmp2 %*% P[[5]]) res[[j,2]] <- tmp2 ll <- ll + res[[j,1]] %*% (w[j]*bf) } l0 <- sum(weight * log(ll)) list(ll=l0,res=res) } fn.quartet2 <- function (old.el, eig, bf, dat1, dat2, dat3, dat4, g = 1, w = 1, weight, ll.0, contrast, ext) { l <- length(w) ll <- ll.0 res <- vector("list", 2 * l) tmp1 <- NULL tmp2 <- NULL attr(res, "dim") <- c(l, 2) for (j in 1:l) { P <- getP(old.el, eig, g[j]) if (ext[1] == FALSE && ext[2] == FALSE) tmp1 <- (dat1[[j]] %*% P[[1]]) * (dat2[[j]] %*% P[[2]]) if (ext[1] == FALSE && ext[2] == TRUE) tmp1 <- (dat1[[j]] %*% P[[1]]) * (contrast %*% P[[2]])[dat2, ] if (ext[1] == TRUE && ext[2] == FALSE) tmp1 <- (contrast %*% P[[1]])[dat1, ] * (dat2[[j]] %*% P[[2]]) if (ext[1] == TRUE && ext[2] == TRUE) tmp1 <- (contrast %*% P[[1]])[dat1, ] * (contrast %*% P[[2]])[dat2, ] if (ext[3] == FALSE && ext[4] == FALSE) tmp2 <- (dat3[[j]] %*% P[[3]]) * (dat4[[j]] %*% P[[4]]) if (ext[3] == FALSE && ext[4] == TRUE) tmp2 <- (dat3[[j]] %*% P[[3]]) * (contrast %*% P[[4]])[dat4, ] if (ext[3] == TRUE && ext[4] == FALSE) tmp2 <- (contrast %*% P[[3]])[dat3, ] * (dat4[[j]] %*% P[[4]]) if (ext[3] == TRUE && ext[4] == TRUE) tmp2 <- (contrast %*% P[[3]])[dat3, ] * (contrast %*% P[[4]])[dat4, ] res[[j, 1]] <- tmp1 * (tmp2 %*% P[[5]]) res[[j, 2]] <- tmp2 ll <- ll + res[[j, 1]] %*% (w[j] * bf) } l0 <- sum(weight * log(ll)) list(ll = l0, res = res) } optim.quartet2 <- function (old.el, eig, bf, dat1, dat2, dat3, dat4, g = 1, w = 1, weight, ll.0 = weight * 0, control = list(eps = 1e-08, maxit = 5, trace = 0), llcomp = -Inf, evi, contrast, contrast2, ext = c(FALSE, FALSE, FALSE, FALSE)) { eps <- 1 iter <- 0 while (eps > control$eps && iter < control$maxit) { tmp <- fn.quartet2(old.el = old.el, eig = eig, bf = bf, dat1 = dat1, dat2 = dat2, dat3 = dat3, dat4 = dat4, g = g, w = w, weight = weight, ll.0 = ll.0, contrast=contrast, ext = ext) old.ll <- tmp$ll el1 <- fs3(old.el[1], eig, tmp$res[, 1], dat1, weight, g = g, w = w, bf = bf, ll.0 = ll.0, contrast=contrast, contrast2=contrast2, evi=evi, ext = ext[1], getA=TRUE, getB=FALSE) el2 <- fs3(old.el[2], eig, el1[[2]], dat2, weight, g = g, w = w, bf = bf, ll.0 = ll.0, contrast=contrast, contrast2=contrast2, evi=evi, ext = ext[2], getA=TRUE, getB=FALSE) el5 <- fs3(old.el[5], eig, el2[[2]], tmp$res[, 2], weight, g = g, w = w, bf = bf, ll.0 = ll.0, contrast=contrast, contrast2=contrast2, evi=evi, ext = 0L, getA=FALSE, getB=TRUE) el3 <- fs3(old.el[3], eig, el5[[3]], dat3, weight, g = g, w = w, bf = bf, ll.0 = ll.0, contrast=contrast, contrast2=contrast2, evi=evi, ext = ext[3], getA=TRUE, getB=FALSE) el4 <- fs3(old.el[4], eig, el3[[2]], dat4, weight, g = g, w = w, bf = bf, ll.0 = ll.0, contrast=contrast, contrast2=contrast2, evi=evi, ext = ext[4], getA=FALSE, getB=FALSE) old.el[1] <- el1[[1]] old.el[2] <- el2[[1]] old.el[3] <- el3[[1]] old.el[4] <- el4[[1]] old.el[5] <- el5[[1]] iter <- iter + 1 ll <- el4[[4]] eps <- (old.ll - ll)/ll if (ll < llcomp) return(list(old.el, ll)) old.ll <- ll } list(old.el, ll) } pml.nni.old <- function (tree, data, w, g, eig, bf, ll.0, ll, ...) { k <- length(w) INDEX <- indexNNI(tree) rootEdges <- attr(INDEX,"root") .dat <- NULL data <- getCols(data, tree$tip.label) parent <- tree$edge[,1] child <- tree$edge[,2] weight <- attr(data, "weight") datp <- rnodes(tree, data, w, g, eig, bf) contrast <- attr(data, "contrast") contrast2 <- contrast %*% eig[[2]] evi <- (t(eig[[3]]) * bf) nTips <- length(tree$tip.label) evector <- numeric(max(parent)) evector[child] <- tree$edge.length m <- dim(INDEX)[1] loglik <- numeric(2*m) edgeMatrix <- matrix(0, 2*m, 5) l <- length(datp[, 1]) for(i in 1:m){ ei <- INDEX[i,] el0 <- evector[INDEX[i,]] ext <- ei[1:4] < nTips+1L if (!(ei[5] %in% rootEdges)) dat1 <- datp[, ei[1], drop = FALSE] else{ if(ext[1]) dat1 <- data[[ ei[1] ]] else dat1 <- .dat[, ei[1], drop=FALSE] } if(ext[2]) dat2 <- data[[ ei[2] ]] else dat2 <- .dat[, ei[2], drop=FALSE] if(ext[3]) dat3 <- data[[ ei[3] ]] else dat3 <- .dat[, ei[3], drop=FALSE] if(ext[4]) dat4 <- data[[ ei[4] ]] else dat4 <- .dat[, ei[4], drop=FALSE] new1 <- optim.quartet2(el0[c(1, 3, 2, 4, 5)], eig, bf, dat1, dat3, dat2, dat4, g, w, weight, ll.0, llcomp=ll, evi=evi, contrast=contrast, contrast2=contrast2, ext=ext[c(1, 3, 2, 4)]) new2 <- optim.quartet2(el0[c(1, 4, 3, 2, 5)], eig, bf, dat1, dat4, dat3, dat2, g, w, weight, ll.0, llcomp=ll, evi=evi, contrast=contrast, contrast2=contrast2, ext=ext[c(1, 4, 3, 2)]) loglik[(2*i)-1] <- new1[[2]] loglik[(2*i)] <- new2[[2]] edgeMatrix[(2*i)-1,] <- new1[[1]] edgeMatrix[(2*i),] <- new2[[1]] } swap <- 0 eps0 <- 1e-6 candidates <- loglik > ll + eps0 nr <- as.integer(attr(data, "nr")) nc <- as.integer(attr(data, "nc")) nTips <- as.integer(length(tree$tip.label)) # on.exit(.C("ll_free")) # .C("ll_init", nr, nTips, nc, as.integer(k)) # cat("candidates", sum(candidates), "\n") while(any(candidates)){ ind <- which.max(loglik) loglik[ind] <- -Inf if( ind %% 2 ) swap.edge <- c(2,3) else swap.edge <- c(2,4) tree2 <- changeEdge(tree, INDEX[(ind+1)%/%2,swap.edge], INDEX[(ind+1)%/%2,], edgeMatrix[ind,]) test <- pml.fit(tree2, data, bf=bf, k=k, g=g, w=w, eig=eig, ll.0=ll.0, ...) if(test <= ll + eps0) candidates[ind] <- FALSE if(test > ll + eps0) { ll <- test swap <- swap+1 tree <- tree2 indi <- which(rep(colSums(apply(INDEX,1,match,INDEX[(ind+1)%/%2,], nomatch=0))>0,each=2)) candidates[indi] <- FALSE loglik[indi] <- -Inf } } list(tree=tree, ll=ll, swap=swap) } rnodes <- function (tree, data, w, g, eig, bf) { if (is.null(attr(tree, "order")) || attr(tree, "order") == "cladewise") tree <- reorder(tree, "postorder") data <- getCols(data, tree$tip.label) q <- length(tree$tip.label) node <- tree$edge[, 1] edge <- tree$edge[, 2] m <- length(edge) + 1 # max(edge) l <- length(w) dat <- vector(mode = "list", length = m*l) dim(dat) <- c(l,m) tmp <- length(data) # for(i in 1:length(w))dat[i,1:tmp]=new2old.phyDat(data) # # dat[1,1:tmp] <- data vielleicht gebraucht el <- tree$edge.length P <- getP(el, eig, g) nr <- as.integer(attr(data, "nr")) nc <- as.integer(attr(data, "nc")) node <- as.integer(node - min(node)) edge <- as.integer(edge - 1) nTips <- as.integer(length(tree$tip.label)) mNodes <- as.integer(max(node) + 1) contrast <- attr(data, "contrast") nco <- as.integer(dim(contrast)[1]) for(i in 1:l)dat[i,(q + 1):m] <- .Call("LogLik2", data, P[i,], nr, nc, node, edge, nTips, mNodes, contrast, nco) parent <- tree$edge[, 1] child <- tree$edge[, 2] nTips <- min(parent) - 1 datp <- vector("list", m) dat2 <- vector("list", m * l) dim(dat2) <- c(l,m) for(i in 1:l){ datp[(nTips + 1)] <- dat[i,(nTips + 1)] for (j in (m - 1):1) { if (child[j] > nTips){ tmp2 <- (datp[[parent[j]]]/(dat[[i,child[j]]] %*% P[[i,j]])) datp[[child[j]]] <- (tmp2 %*% P[[i,j]]) * dat[[i,child[j]]] dat2[[i, child[j]]] <- tmp2 } } } assign(".dat", dat, envir = parent.frame(n = 1)) dat2 } score <- function (fit, transform=TRUE) { tree <- fit$tree child <- tree$edge[, 2] l <- length(child) sc <- numeric(l) weight <- as.numeric(fit$weight) f <- drop(exp(fit$site)) dl <- dl(fit, transform) dl <- dl/f sc <- colSums(weight * dl) F <- crossprod(dl*weight,dl) names(sc) <- child dimnames(F) <- list(child, child) result <- list(sc = sc, F = F) result } # wird noch in partition models verwendet optim.quartet <- function (old.el, eig, bf, dat, g=1, w=1, weight, ll.0=weight * 0, control = list(eps = 1e-08, maxit = 5, trace = 0), llcomp=-Inf) { eps <- 1 iter <- 0 evi <- (t(eig[[3]]) * bf) while (eps > control$eps && iter < control$maxit) { tmp <- fn.quartet(old.el = old.el, eig = eig, bf = bf, dat = dat, g = g, w = w, weight = weight, ll.0 = ll.0) old.ll <- tmp$ll el1 <- fs(old.el[1], eig, tmp$res[, 1], dat[, 1], weight, g = g, w = w, bf = bf, ll.0 = ll.0, evi, getA=TRUE, getB=FALSE) el2 <- fs(old.el[2], eig, el1[[2]], dat[, 2], weight, g = g, w = w, bf = bf, ll.0 = ll.0, evi, getA=TRUE, getB=FALSE) el5 <- fs(old.el[5], eig, el2[[2]], tmp$res[, 2], weight, g = g, w = w, bf = bf, ll.0 = ll.0, evi, getA=FALSE, getB=TRUE) el3 <- fs(old.el[3], eig, el5[[3]], dat[, 3], weight, g = g, w = w, bf = bf, ll.0 = ll.0, evi, getA=TRUE, getB=FALSE) el4 <- fs(old.el[4], eig, el3[[2]], dat[, 4], weight, g = g, w = w, bf = bf, ll.0 = ll.0, evi, getA=FALSE, getB=FALSE) old.el[1] <- el1[[1]] old.el[2] <- el2[[1]] old.el[3] <- el3[[1]] old.el[4] <- el4[[1]] old.el[5] <- el5[[1]] iter <- iter + 1 ll <- el4[[4]] eps <- (old.ll - ll) / ll if(ll 0") if (!is.numeric(maxit) || maxit <= 0) stop("maximum number of iterations must be > 0") list(epsilon = epsilon, maxit = maxit, trace = trace) } # improves trees similar to likelihoodRatchet <- function(obj, maxit=100, k=10, control=pml.control(epsilon = 1e-08, maxit = 10, trace = 1L)){ tree <- obj$tree nTips <- length(tree$tip.label) trace <- control$trace control$trace <- trace-1L kmax <- 1 for(i in 1:maxit){ tree<- rNNI(obj$tree, moves=nTips/3, n=1) #tree <- rSPR(tree, moves=10, k=3, n=1) obj2 <- update(obj, tree=tree) obj2 <- optim.pml(obj2, TRUE, control = control) if(logLik(obj2) > logLik(obj)){ obj <- obj2 kmax <- 1 } else kmax <- kmax+1 if(trace > 0) print(paste("Iteration ", i,", best pscore so far:", logLik(obj))) if(kmax == k) break() } obj } fs <- function (old.el, eig, parent.dat, child.dat, weight, g=g, w=w, bf=bf, ll.0=ll.0, evi, getA=TRUE, getB=TRUE) { if (old.el < 1e-8) old.el <- 1e-8 lg <- length(parent.dat) P <- getP(old.el, eig, g) nr <- as.integer(length(weight)) nc <- as.integer(length(bf)) eve <- eig[[2]] dad <- .Call("getDAD", parent.dat, child.dat, P, nr, nc) X <- .Call("getPrep", dad, child.dat, eig[[2]], evi, nr, nc) .Call("FS4", eig, as.integer(length(bf)), as.double(old.el), as.double(w), as.double(g), X, child.dat, dad, as.integer(length(w)), as.integer(length(weight)), as.double(weight), as.double(ll.0), as.integer(getA), as.integer(getB)) } fs3 <- function (old.el, eig, parent.dat, child, weight, g=g, w=w, bf=bf, ll.0=ll.0, contrast, contrast2, evi, ext=TRUE, getA=TRUE, getB=TRUE) { if (old.el < 1e-8) old.el <- 1e-8 lg <- length(parent.dat) P <- getP(old.el, eig, g) nr <- as.integer(length(weight)) nc <- as.integer(length(bf)) if(ext==FALSE){ child.dat <- child eve <- eig[[2]] dad <- .Call("getDAD", parent.dat, child.dat, P, nr, nc) X <- .Call("getPrep", dad, child.dat, eig[[2]], evi, nr, nc) } else { nco <- as.integer(nrow(contrast)) dad <- .Call("getDAD2", parent.dat, child, contrast, P, nr, nc, nco) child.dat <- vector("list", lg) for (i in 1:lg)child.dat[[i]] <- contrast[child, , drop=FALSE] X <- .Call("getPrep2", dad, child, contrast2, evi, nr, nc, nco) } .Call("FS4", eig, as.integer(length(bf)), as.double(old.el), as.double(w), as.double(g), X, child.dat, dad, as.integer(length(w)), as.integer(length(weight)), as.double(weight), as.double(ll.0), as.integer(getA), as.integer(getB)) # as.double(bf), } optimEdge <- function(tree, data, eig=eig, w=w, g=g, bf=bf, rate=rate, ll.0=ll.0, control = pml.control(epsilon = 1e-08, maxit = 10, trace=0), ...) { if (is.null(attr(tree, "order")) || attr(tree, "order") == "cladewise") tree <- reorder(tree, "postorder") nTips <- length(tree$tip.label) el <- tree$edge.length tree$edge.length[el < 1e-08] <- 1e-08 oldtree <- tree k <- length(w) data <- subset(data, tree$tip.label) loglik <- pml.fit4(tree, data, bf=bf, g=g, w=w, eig=eig, ll.0=ll.0, k=k) start.ll <- old.ll <- loglik contrast <- attr(data, "contrast") contrast2 <- contrast %*% eig[[2]] evi <- (t(eig[[3]]) * bf) weight <- attr(data, "weight") eps <- 1 iter <- 0 treeP <- tree tree <- reorder(tree) child <- tree$edge[, 2] parent <- tree$edge[, 1] m <- max(tree$edge) pvec <- integer(m) pvec[child] <- parent EL <- numeric(m) EL[child] <- tree$edge.length n <- length(tree$edge.length) nr <- as.integer(length(weight)) nc <- as.integer(length(bf)) nco <- as.integer(nrow(contrast)) eve <- eig[[2]] lg <- k rootNode <- getRoot(tree) # raus ScaleEPS <- 1.0/4294967296.0 anc <- Ancestors(tree, 1:m, "parent") anc0 <- as.integer(c(0L, anc)) while (eps > control$eps && iter < control$maxit) { EL <- .Call("optE", as.integer(parent), as.integer(child), as.integer(anc0), eig, evi, EL, w, g, as.integer(nr), as.integer(nc), as.integer(nTips), as.double(contrast), as.double(contrast2), nco, data, as.double(weight), as.double(ll.0)) iter <- iter + 1 treeP$edge.length <- EL[treeP$edge[,2]] newll <- pml.fit4(treeP, data, bf=bf, g=g, w=w, eig=eig, ll.0=ll.0, k=k) eps <- ( old.ll - newll ) / newll if( eps <0 ) return(list(oldtree, old.ll)) oldtree <- treeP if(control$trace>1) cat(old.ll, " -> ", newll, "\n") old.ll <- newll } if(control$trace>0) cat(start.ll, " -> ", newll, "\n") list(tree=treeP, logLik=newll, c(eps, iter)) } pml.move <- function(EDGE, el, data, g, w, eig, k, nTips, bf){ node <- EDGE[, 1] edge <- EDGE[, 2] nr <- as.integer(attr(data, "nr")) nc <- as.integer(attr(data, "nc")) node <- as.integer(node - nTips - 1L) edge <- as.integer(edge - 1L) contrast <- attr(data, "contrast") nco <- as.integer(dim(contrast)[1]) tmp <- .Call("PML3", dlist=data, as.double(el), as.double(g), nr, nc, k, eig, as.double(bf), node, edge, nTips, nco, contrast, N=as.integer(length(edge))) # as.double(w), return(NULL) } bip <- function(x) { x <- reorder(x, "postorder") nTips <- as.integer(length(x$tip.label)) .Call('_phangorn_bipCPP', PACKAGE = 'phangorn', x$edge, nTips) } bipart <- function(x) { x <- reorder(x, "postorder") nTips <- as.integer(length(x$tip.label)) .Call('_phangorn_bipartCPP', PACKAGE = 'phangorn', x$edge, nTips) } bipartition <- function (tree) { if(is.rooted(tree))tree <- unroot(tree) if(is.null(attr(tree,"order")) || attr(tree, "order")=="cladewise") tree <- reorder(tree, "postorder") bp <- bip(tree) nTips <- length(tree$tip.label) l <- length(bp) res <- matrix(0L, l, nTips) for (i in 1:l) res[i, bp[[i]]] <- 1L res <- res[tree$edge[,2], , drop=FALSE] colnames(res) <- tree$tip.label rownames(res) <- tree$edge[,2] res[res[, 1] == 1, ] <- 1L - res[res[, 1] == 1, ] res } readAArate <- function(file){ tmp <- read.table(system.file(file.path("extdata", file)), col.names = 1:20, fill=TRUE) Q <- tmp[1:19,1:19] names <- c("a", "r", "n", "d", "c", "q", "e", "g", "h", "i", "l", "k", "m", "f", "p", "s", "t", "w", "y", "v") Q <- as.numeric(Q[lower.tri(Q,TRUE)]) bf <- as.numeric(as.character(unlist(tmp[20,]))) names(bf) <- names list(Q=Q, bf=bf) } #.LG <- readAArate("lg.dat") #.WAG <- readAArate("wag.dat") #.Dayhoff <- readAArate("dayhoff-dcmut.dat") #.JTT <- readAArate("jtt-dcmut.dat") #.cpREV <- readAArate("cpREV.dat") #.mtmam <- readAArate("mtmam.dat") #.mtArt <- readAArate("mtArt.dat") # save(.LG,.WAG,.Dayhoff,.JTT,.cpREV,.mtmam,.mtArt, file = "sysdata2.rda") getModelAA <- function(model, bf=TRUE, Q=TRUE){ model <- match.arg(eval(model), .aamodels) tmp <- get(paste(".", model, sep=""), environment(pml)) if(Q) assign("Q", tmp$Q, envir=parent.frame()) if(bf) assign("bf", tmp$bf, envir=parent.frame()) } print.pml <- function(x,...){ cat("\n loglikelihood:", x$logLik, "\n") w <- x$weight w <- w[w>0] type <- attr(x$data, "type") levels <- attr(x$data, "levels") nc <- attr(x$data, "nc") ll0 <- sum(w*log(w/sum(w))) cat("\nunconstrained loglikelihood:", ll0, "\n") if(x$inv > 0)cat("Proportion of invariant sites:",x$inv,"\n") if(x$k >1){ cat("Discrete gamma model\n") cat("Number of rate categories:",x$k,"\n") cat("Shape parameter:",x$shape,"\n") } if(type=="AA") cat("Rate matrix:",x$model, "\n") if(type=="DNA"){ cat("\nRate matrix:\n") QM <- matrix(0, nc, nc, dimnames = list(levels,levels)) QM[lower.tri(QM)] <- x$Q QM <- QM+t(QM) print(QM) cat("\nBase frequencies: \n") bf <- x$bf names(bf) <- levels cat(bf, "\n") } if(type=="CODON") { cat("dn/ds:",x$dnds, "\n") cat("ts/tv:",x$tstv, "\n") } if(type=="USER" & length(x$bf)<11){ cat("\nRate matrix:\n") QM <- matrix(0, nc, nc, dimnames = list(levels,levels)) QM[lower.tri(QM)] <- x$Q QM <- QM+t(QM) print(QM) cat("\nBase frequencies: \n") bf <- x$bf names(bf) <- levels cat(bf, "\n") } } optEdgeMulti <- function (object, control = pml.control(epsilon = 1e-8, maxit = 10, trace=1), ...) { tree <- object$tree theta <- object$tree$edge.length weight <- attr(object$data, "weight") ll0 <- object$logLik eps <- 1 iter <- 0 iter2 <- 0 scale <- 1 # l <- length(theta) while (abs(eps) > control$eps && iter < control$maxit) { dl <- score(object) thetaNew <- log(theta) + scale * solve(dl[[2]], dl[[1]]) #+diag(l)*1e-10 newtheta <- exp(thetaNew) tree$edge.length <- as.numeric(newtheta) object <- update(object, tree = tree) ll1 <- object$logLik eps <- ( ll0 - ll1 ) / ll1 if(eps < 0){ newtheta <- theta scale <- scale / 2 tree$edge.length <- as.numeric(theta) ll1 <- ll0 iter2 <- iter2+1 } else{ scale <- 1 iter2 <- 0 } theta <- newtheta if(iter2==0 && control$trace>0) cat("loglik: ",ll1,"\n") ll0 <- ll1 if(iter2==10)iter2 <- 0 if(iter2==0)iter <- iter+1 } object <- update(object, tree = tree) object } # add data for internal use parent.frame(n) for higher nestings update.pmlNew <- function (object, ..., evaluate = TRUE){ call <- object$call if (is.null(call)) stop("need an object with call component") extras <- match.call(expand.dots = FALSE)$... if (length(extras)) { existing <- !is.na(match(names(extras), names(call))) for (a in names(extras)[existing]) call[[a]] <- extras[[a]] if (any(!existing)) { call <- c(as.list(call), extras[!existing]) call <- as.call(call) } } if (evaluate) eval(call, object, parent.frame()) else call } # add dnds tstv update.pml <- function (object, ...) { extras <- match.call(expand.dots = FALSE)$... pmla <- c("tree", "data", "bf", "Q", "inv", "k", "shape", "rate", "model", "wMix", "llMix", "...") names(extras) <- pmla[pmatch(names(extras), pmla[-length(pmla)])] call <- object$call if (length(extras)) { existing <- !is.na(match(names(extras), names(call))) for (a in names(extras)[existing]) call[[a]] <- extras[[a]] if (any(!existing)) { call <- c(as.list(call), extras[!existing]) call <- as.call(call) } } existing <- match(pmla, names(extras)) updateEig <- FALSE updateRates <- FALSE if (is.na(existing[1])) tree <- object$tree else tree <- eval(extras[[existing[1]]], parent.frame()) if(is.null(attr(tree,"order")) || attr(tree,"order")=="cladewise") tree <- reorder(tree, "postorder") if (is.na(existing[2])){ data <- object$data INV <- object$INV } else{ data <- eval(extras[[existing[2]]], parent.frame()) ll.0 <- numeric(attr(data,"nr")) INV <- Matrix(lli(data, tree), sparse=TRUE) } nr <- as.integer(attr(data, "nr")) nc <- as.integer(attr(data, "nc")) if (is.na(existing[3])) bf <- object$bf else { bf <- eval(extras[[existing[3]]], parent.frame()) updateEig <- TRUE } if (is.na(existing[4])) Q <- object$Q else { Q <- eval(extras[[existing[4]]], parent.frame()) updateEig <- TRUE } # model <- object$model type <- attr(object$data, "type") model<-NULL if (type == "AA") { if(!is.na(existing[9]) ){ model <- match.arg(eval(extras[[existing[9]]], parent.frame()), .aamodels) getModelAA(model, bf = is.na(existing[3]), Q = is.na(existing[4])) updateEig <- TRUE } # else model <- object$model } if(is.na(existing[5])) inv <- object$inv else{ inv <- eval(extras[[existing[5]]], parent.frame()) updateRates <- TRUE } if(is.na(existing[6])) k <- object$k else{ k <- eval(extras[[existing[6]]], parent.frame()) updateRates <- TRUE } if(is.na(existing[7])) shape <- object$shape else{ shape <- eval(extras[[existing[7]]], parent.frame()) updateRates <- TRUE } rate <- ifelse(is.na(existing[8]), object$rate, eval(extras[[existing[8]]], parent.frame())) wMix <- ifelse(is.na(existing[10]), object$wMix, eval(extras[[existing[10]]], parent.frame())) if(is.na(existing[11])) llMix <- object$llMix else llMix <- eval(extras[[existing[11]]], parent.frame()) levels <- attr(data, "levels") weight <- attr(data, "weight") if(updateEig)eig <- edQt(bf = bf, Q = Q) else{ eig <- object$eig model <- object$model } g <- discrete.gamma(shape, k) g <- rate * g if (inv > 0) g <- g/(1 - inv) ll.0 <- as.matrix(INV %*% (bf * inv)) if(wMix>0) ll.0 <- ll.0 + llMix w <- rep(1/k, k) if (inv > 0) w <- (1 - inv) * w if (wMix > 0) w <- wMix * w m <- 1 ### play save kmax <- k if(any(g<.gEps)){ for(i in 1:length(g)){ if(g[i]<.gEps){ inv <- inv+w[i] } } w <- w[g>.gEps] g <- g[g>.gEps] k <- length(w) } #### resll <- matrix(0, nr, k) nTips <- as.integer(length(tree$tip.label)) data <- subset(data, tree$tip.label) on.exit(.C("ll_free")) .C("ll_init", nr, nTips, nc, as.integer(k)) tmp <- pml.fit(tree, data, bf, shape = shape, k = k, Q = Q, levels = attr(data, "levels"), inv = inv, rate = rate, g = g, w = w, eig = eig, INV = INV, ll.0 = ll.0, llMix = llMix, wMix = wMix, site = TRUE) df <- ifelse(is.ultrametric(tree), tree$Nnode, length(tree$edge.length)) df <- switch(type, DNA = df + (k>1) + (inv > 0) + length(unique(bf)) - 1 + length(unique(Q)) - 1, AA = df + (k>1) + (inv > 0) , CODON = df + (k>1) + (inv > 0) + length(unique(bf)) - 1 , #+ (dnds != 1) + (tstv != 1), USER = df + (k>1) + (inv > 0) + length(unique(bf)) - 1 + length(unique(Q)) - 1) # if (type == "CODON") { # df <- df + (k > 1) + (inv > 0) + length(unique(bf)) - 1 # } # else df = df + (k > 1) + (inv > 0) + length(unique(bf)) - 1 + length(unique(Q)) - 1 result <- list(logLik = tmp$loglik, inv = inv, k = kmax, shape = shape, Q = Q, bf = bf, rate = rate, siteLik = tmp$siteLik, weight = weight, g = g, w = w, eig = eig, data = data, model = model, INV = INV, ll.0 = ll.0, tree = tree, lv = tmp$resll, call = call, df = df, wMix = wMix, llMix = llMix) if (type == "CODON") { result$dnds <- 1 result$tstv <- 1 } class(result) <- "pml" result } ### this is the version we want to optimise pml.fit4 <- function (tree, data, bf = rep(1/length(levels), length(levels)), shape = 1, k = 1, Q = rep(1, length(levels) * (length(levels) - 1)/2), levels = attr(data, "levels"), inv = 0, rate = 1, g = NULL, w = NULL, eig = NULL, INV = NULL, ll.0 = NULL, llMix = NULL, wMix = 0, ..., site=FALSE) { weight <- as.double(attr(data, "weight")) nr <- as.integer(attr(data, "nr")) nc <- as.integer(attr(data, "nc")) nTips <- as.integer(length(tree$tip.label)) k <- as.integer(k) m <- 1 if (is.null(eig)) eig <- edQt(bf = bf, Q = Q) if (is.null(w)) { w <- rep(1/k, k) if (inv > 0) w <- (1 - inv) * w if (wMix > 0) w <- (1 - wMix) * w } if (is.null(g)) { g <- discrete.gamma(shape, k) if (inv > 0) g <- g/(1 - inv) g <- g * rate } # inv0 <- inv if(any(g<.gEps)){ for(i in 1:length(g)){ if(g[i]<.gEps){ inv <- inv+w[i] } } w <- w[g>.gEps] g <- g[g>.gEps] # kmax <- k k <- length(w) } # .iind <- get(".iind", parent.frame()) # .INV <- get(".INV", parent.frame()) # if(is.null(ll.0)) if (is.null(ll.0)){ ll.0 <- numeric(attr(data,"nr")) } if(inv>0) ll.0 <- as.matrix(INV %*% (bf * inv)) # if(inv>0) # ll.0 <- as.matrix(.INV %*% (bf * inv)) node <- tree$edge[, 1] edge <- tree$edge[, 2] # root <- as.integer(node[length(node)]) el <- as.double(tree$edge.length) node <- as.integer(node - nTips - 1L) # min(node)) edge <- as.integer(edge - 1L) contrast <- attr(data, "contrast") nco <- as.integer(dim(contrast)[1]) siteLik <- .Call("PML4", dlist=data, el, as.double(w), as.double(g), nr, nc, k, eig, as.double(bf), node, edge, nTips, nco, contrast, N=as.integer(length(edge))) # if(inv>0) siteLik[.iind] <- log(exp(siteLik[.iind]) + ll.0[.iind]) ind <- which(ll.0>0) # if(!is.null(ll.0)) siteLik[.iind] <- log(exp(siteLik[.iind]) + ll.0[.iind]) if(!is.null(ll.0)) siteLik[ind] <- log(exp(siteLik[ind]) + ll.0[ind]) # diese 2 zeilen darueber in C, weight, nr, nc, nco, contrast in C struct definieren if(wMix >0) siteLik <- log(exp(siteLik) * (1-wMix) + llMix ) loglik <- sum(weight * siteLik) if(!site) return(loglik) return(list(loglik=loglik, siteLik=siteLik)) #, resll=resll } #' Internal maximum likelihood functions. #' #' These functions are internally used for the likelihood computations in #' \code{pml} or \code{optim.pml}. #' #' These functions are exported to be used in different packages so far only in #' the package coalescentMCMC, but are not intended for end user. Most of the #' functions call C code and are far less forgiving if the import is not what #' they expect than \code{pml}. #' #' @param tree A phylogenetic \code{tree}, object of class \code{phylo}. #' @param data An alignment, object of class \code{phyDat}. #' @param bf Base frequencies. #' @param shape Shape parameter of the gamma distribution. #' @param alpha Shape parameter of the gamma distribution. #' @param k Number of intervals of the discrete gamma distribution. #' @param Q A vector containing the lower triangular part of the rate matrix. #' @param levels The alphabet used e.g. c("a", "c", "g", "t") for DNA #' @param inv Proportion of invariable sites. #' @param rate Rate. #' @param g vector of quantiles (default is NULL) #' @param w vector of probabilities (default is NULL) #' @param eig Eigenvalue decomposition of Q #' @param INV Sparse representation of invariant sites #' @param ll.0 default is NULL #' @param llMix default is NULL #' @param wMix default is NULL #' @param \dots Further arguments passed to or from other methods. #' @param site return the log-likelihood or vector of sitewise likelihood #' values #' @return \code{pml.fit} returns the log-likelihood. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{pml}, \link{pmlPart}, \link{pmlMix}} #' @references Felsenstein, J. (1981) Evolutionary trees from DNA sequences: a #' maximum likelihood approach. \emph{Journal of Molecular Evolution}, #' \bold{17}, 368--376. #' @keywords cluster #' #' @rdname pml.fit #' @export pml.fit pml.fit <- function (tree, data, bf = rep(1/length(levels), length(levels)), shape = 1, k = 1, Q = rep(1, length(levels) * (length(levels) - 1)/2), levels = attr(data, "levels"), inv = 0, rate = 1, g = NULL, w = NULL, eig = NULL, INV = NULL, ll.0 = NULL, llMix = NULL, wMix = 0, ..., site=FALSE) { Mkv <- FALSE weight <- as.double(attr(data, "weight")) nr <- as.integer(attr(data, "nr")) nc <- as.integer(attr(data, "nc")) nTips <- as.integer(length(tree$tip.label)) k <- as.integer(k) m <- 1 if (is.null(eig)) eig <- edQt(bf = bf, Q = Q) if (is.null(w)) { w <- rep(1/k, k) if (inv > 0) w <- (1 - inv) * w if (wMix > 0) w <- (1 - wMix) * w } if (is.null(g)) { g <- discrete.gamma(shape, k) if (inv > 0) g <- g/(1 - inv) g <- g * rate } # inv0 <- inv if(any(g<.gEps)){ for(i in 1:length(g)){ if(g[i]<.gEps){ inv <- inv+w[i] } } w <- w[g>.gEps] g <- g[g>.gEps] # kmax <- k k <- length(w) } if (is.null(INV)) INV <- Matrix(lli(data, tree), sparse=TRUE) if (is.null(ll.0)){ ll.0 <- numeric(attr(data,"nr")) } if(inv>0) ll.0 <- as.matrix(INV %*% (bf * inv)) if(Mkv) ll.0 <- as.matrix(INV %*% bf) if (wMix > 0) ll.0 <- ll.0 + llMix node <- tree$edge[, 1] edge <- tree$edge[, 2] # root <- as.integer(node[length(node)]) el <- as.double(tree$edge.length) node <- as.integer(node - nTips - 1L) # min(node)) edge <- as.integer(edge - 1L) contrast <- attr(data, "contrast") nco <- as.integer(dim(contrast)[1]) # dlist=data, nr, nc, weight, k ausserhalb definieren # pmlPart einbeziehen # as.double(w), resll <- .Call("PML0", dlist=data, el, as.double(g), nr, nc, k, eig, as.double(bf), node, edge, nTips, nco, contrast, N=as.integer(length(edge))) # sort(INV@i)+1L ind <- which(ll.0>0) # automatic in INV gespeichert sca <- .Call("rowMax", resll, length(weight), as.integer(k)) + 1 # nr statt length(weight) lll <- resll - sca lll <- exp(lll) lll <- (lll%*%w) if(Mkv) p0 <- sum(exp(log(lll[ind]) + sca[ind])) lll[ind] <- lll[ind] + exp(log(ll.0[ind])-sca[ind]) siteLik <- lll siteLik <- log(siteLik) + sca # needs to change if(wMix >0) siteLik <- log(exp(siteLik) * (1-wMix) + llMix ) if(Mkv)siteLik <- siteLik + log(1-p0) loglik <- sum(weight * siteLik) if(!site) return(loglik) resll <- exp(resll) return(list(loglik=loglik, siteLik=siteLik, resll=resll)) } #' Likelihood of a tree. #' #' \code{pml} computes the likelihood of a phylogenetic tree given a sequence #' alignment and a model. \code{optim.pml} optimizes the different model #' parameters. #' #' The topology search uses a nearest neighbor interchange (NNI) and the #' implementation is similar to phyML. The option model in pml is only used #' for amino acid models. The option model defines the nucleotide model which #' is getting optimised, all models which are included in modeltest can be #' chosen. Setting this option (e.g. "K81" or "GTR") overrules options optBf #' and optQ. Here is a overview how to estimate different phylogenetic models #' with \code{pml}: \tabular{lll}{ model \tab optBf \tab optQ \cr Jukes-Cantor #' \tab FALSE \tab FALSE \cr F81 \tab TRUE \tab FALSE \cr symmetric \tab FALSE #' \tab TRUE \cr GTR \tab TRUE \tab TRUE } Via model in optim.pml the following #' nucleotide models can be specified: JC, F81, K80, HKY, TrNe, TrN, TPM1, K81, #' TPM1u, TPM2, TPM2u, TPM3, TPM3u, TIM1e, TIM1, TIM2e, TIM2, TIM3e, TIM3, #' TVMe, TVM, SYM and GTR. These models are specified as in Posada (2008). #' #' So far 17 amino acid models are supported ("WAG", "JTT", "LG", "Dayhoff", #' "cpREV", "mtmam", "mtArt", "MtZoa", "mtREV24", "VT","RtREV", "HIVw", "HIVb", #' "FLU", "Blossum62", "Dayhoff_DCMut" and "JTT_DCMut") and additionally rate #' matrices and amino acid frequencies can be supplied. #' #' It is also possible to estimate codon models (e.g. YN98), for details see #' also the chapter in vignette("phangorn-specials"). #' #' If the option 'optRooted' is set to TRUE than the edge lengths of rooted #' tree are optimized. The tree has to be rooted and by now ultrametric! #' Optimising rooted trees is generally much slower. #' #' \code{pml.control} controls the fitting process. \code{epsilon} and #' \code{maxit} are only defined for the most outer loop, this affects #' \code{pmlCluster}, \code{pmlPart} and \code{pmlMix}. \code{epsilon} is #' defined as (logLik(k)-logLik(k+1))/logLik(k+1), this seems to be a good #' heuristics which works reasonably for small and large trees or alignments. #' If \code{trace} is set to zero than no out put is shown, if functions are #' called internally than the trace is decreased by one, so a higher of trace #' produces more feedback. #' #' If \code{rearrangement} is set to \code{stochastic} a stochastic search #' algorithm similar to Nguyen et al. (2015). and for \code{ratchet} the #' likelihood ratchet as in Vos (2003). This should helps often to find better #' tree topologies, especially for larger trees. #' #' @aliases pml #' @param tree A phylogenetic \code{tree}, object of class \code{phylo}. #' @param data An alignment, object of class \code{phyDat}. #' @param bf Base frequencies. #' @param Q A vector containing the lower triangular part of the rate matrix. #' @param inv Proportion of invariable sites. #' @param k Number of intervals of the discrete gamma distribution. #' @param shape Shape parameter of the gamma distribution. #' @param rate Rate. #' @param model allows to choose an amino acid models or nucleotide model, see #' details. #' @param object An object of class \code{pml}. #' @param optNni Logical value indicating whether toplogy gets optimized (NNI). #' @param optBf Logical value indicating whether base frequencies gets #' optimized. #' @param optQ Logical value indicating whether rate matrix gets optimized. #' @param optInv Logical value indicating whether proportion of variable size #' gets optimized. #' @param optGamma Logical value indicating whether gamma rate parameter gets #' optimized. #' @param optEdge Logical value indicating the edge lengths gets optimized. #' @param optRate Logical value indicating the overall rate gets optimized. #' @param optRooted Logical value indicating if the edge lengths of a rooted #' tree get optimized. #' @param ratchet.par search parameter for stochastic search #' @param rearrangement type of tree tree rearrangements to perform, one of #' "none", "NNI", "stochastic" or "ratchet" #' @param control A list of parameters for controlling the fitting process. #' @param subs A (integer) vector same length as Q to specify the optimization #' of Q #' @param \dots Further arguments passed to or from other methods. #' @param epsilon Stop criterion for optimisation (see details). #' @param maxit Maximum number of iterations (see details). #' @param trace Show output during optimization (see details). #' @return \code{pml} or \code{optim.pml} return a list of class \code{pml}, #' some are useful for further computations like \item{tree}{the phylogenetic #' tree.} \item{data}{the alignment.} \item{logLik}{Log-likelihood of the #' tree.} \item{siteLik}{Site log-likelihoods.} \item{weight}{Weight of the #' site patterns.} #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{bootstrap.pml}}, \code{\link{modelTest}}, #' \code{\link{pmlPart}}, \code{\link{pmlMix}}, \code{\link{plot.phylo}}, #' \code{\link{SH.test}}, \code{\link{ancestral.pml}} #' @references Felsenstein, J. (1981) Evolutionary trees from DNA sequences: a #' maximum likelihood approach. \emph{Journal of Molecular Evolution}, #' \bold{17}, 368--376. #' #' Felsenstein, J. (2004). \emph{Inferring Phylogenies}. Sinauer Associates, #' Sunderland. #' #' Yang, Z. (2006). \emph{Computational Molecular evolution}. Oxford University #' Press, Oxford. #' #' Adachi, J., P. J. Waddell, W. Martin, and M. Hasegawa (2000) Plastid genome #' phylogeny and a model of amino acid substitution for proteins encoded by #' chloroplast DNA. \emph{Journal of Molecular Evolution}, \bold{50}, 348--358 #' #' Rota-Stabelli, O., Z. Yang, and M. Telford. (2009) MtZoa: a general #' mitochondrial amino acid substitutions model for animal evolutionary #' studies. \emph{Mol. Phyl. Evol}, \bold{52(1)}, 268--72 #' #' Whelan, S. and Goldman, N. (2001) A general empirical model of protein #' evolution derived from multiple protein families using a maximum-likelihood #' approach. \emph{Molecular Biology and Evolution}, \bold{18}, 691--699 #' #' Le, S.Q. and Gascuel, O. (2008) LG: An Improved, General Amino-Acid #' Replacement Matrix \emph{Molecular Biology and Evolution}, \bold{25(7)}, #' 1307--1320 #' #' Yang, Z., R. Nielsen, and M. Hasegawa (1998) Models of amino acid #' substitution and applications to Mitochondrial protein evolution. #' \emph{Molecular Biology and Evolution}, \bold{15}, 1600--1611 #' #' Abascal, F., D. Posada, and R. Zardoya (2007) MtArt: A new Model of amino #' acid replacement for Arthropoda. \emph{Molecular Biology and Evolution}, #' \bold{24}, 1--5 #' #' Kosiol, C, and Goldman, N (2005) Different versions of the Dayhoff rate #' matrix - \emph{Molecular Biology and Evolution}, \bold{22}, 193--199 #' #' L.-T. Nguyen, H.A. Schmidt, A. von Haeseler, and B.Q. Minh (2015) IQ-TREE: A #' fast and effective stochastic algorithm for estimating maximum likelihood #' phylogenies. \emph{Molecular Biology and Evolution}, \bold{32}, 268--274. #' #' Vos, R. A. (2003) Accelerated Likelihood Surface Exploration: The Likelihood #' Ratchet. \emph{Systematic Biology}, \bold{52(3)}, 368--373 #' #' Yang, Z., and R. Nielsen (1998) Synonymous and nonsynonymous rate variation #' in nuclear genes of mammals. \emph{Journal of Molecular Evolution}, #' \bold{46}, 409-418. #' #' Lewis, P.O. (2001) A likelihood approach to estimating phylogeny from #' discrete morphological character data. \emph{Systematic Biology} \bold{50}, #' 913--925. #' @keywords cluster #' @examples #' #' example(NJ) #' # Jukes-Cantor (starting tree from NJ) #' fitJC <- pml(tree, Laurasiatherian) #' # optimize edge length parameter #' fitJC <- optim.pml(fitJC) #' fitJC #' #' \dontrun{ #' # search for a better tree using NNI rearrangements #' fitJC <- optim.pml(fitJC, optNni=TRUE) #' fitJC #' plot(fitJC$tree) #' #' # JC + Gamma + I - model #' fitJC_GI <- update(fitJC, k=4, inv=.2) #' # optimize shape parameter + proportion of invariant sites #' fitJC_GI <- optim.pml(fitJC_GI, optGamma=TRUE, optInv=TRUE) #' # GTR + Gamma + I - model #' fitGTR <- optim.pml(fitJC_GI, rearrangement = "stochastic", #' optGamma=TRUE, optInv=TRUE, model="GTR") #' } #' #' #' # 2-state data (RY-coded) #' dat <- acgt2ry(Laurasiatherian) #' fit2ST <- pml(tree, dat) #' fit2ST <- optim.pml(fit2ST,optNni=TRUE) #' fit2ST #' # show some of the methods available for class pml #' methods(class="pml") #' #' @rdname pml #' @export pml pml <- function (tree, data, bf = NULL, Q = NULL, inv = 0, k = 1, shape = 1, rate = 1, model=NULL, ...) { Mkv <- FALSE if(!is.null(model) && model=="Mkv")Mkv <- TRUE call <- match.call() extras <- match.call(expand.dots = FALSE)$... pmla <- c("wMix", "llMix") existing <- match(pmla, names(extras)) wMix <- ifelse(is.na(existing[1]), 0, eval(extras[[existing[1]]], parent.frame()) ) llMix <- ifelse(is.na(existing[2]), 0, eval(extras[[existing[2]]], parent.frame()) ) if(!inherits(tree,"phylo")) stop("tree must be of class phylo") # if(is.null(tree$edge.length)){ # warning("tree has no edge length, used nnls.phylo to assign them") # tree <- nnls.phylo(tree, dist.ml(data)) # } if(any(duplicated(tree$tip.label))) stop("tree must have unique labels!") if (is.null(attr(tree, "order")) || attr(tree, "order") == "cladewise") tree <- reorder(tree, "postorder") if(any(tree$edge.length < 0)) { tree$edge.length[tree$edge.length < 0] <- 1e-08 message("negative edges length changed to 0!") } if (class(data)[1] != "phyDat") stop("data must be of class phyDat") if(is.null(tree$edge.length)) stop("tree must have edge weights") if(any(is.na(match(tree$tip.label, attr(data, "names"))))) stop("tip labels are not in data") data <- subset(data, tree$tip.label) # needed levels <- attr(data, "levels") if(Mkv){ data <- cbind(constSitePattern(length(tree$tip.label),levels, tree$tip.label), data) attr(data, "weight")[1:attr(data, "nc")] <- 0.0 } weight <- attr(data, "weight") nr <- attr(data, "nr") type <- attr(data,"type") if(type=="AA" & !is.null(model)){ model <- match.arg(model, .aamodels) getModelAA(model, bf=is.null(bf), Q=is.null(Q)) } if(type=="CODON"){ Q <- as.numeric(.syn > 0) } if (is.null(bf)) bf <- rep(1/length(levels), length(levels)) if (is.null(Q)) Q <- rep(1, length(levels) * (length(levels) - 1)/2) m <- 1 eig <- edQt(bf = bf, Q = Q) w <- rep(1/k, k) if (inv > 0) w <- (1 - inv) * w if (wMix > 0) w <- wMix * w g <- discrete.gamma(shape, k) if (inv > 0) g <- g/(1 - inv) g <- rate * g inv0 <- inv kmax <- k if(any(g<.gEps)){ for(i in 1:length(g)){ if(g[i]<.gEps){ inv <- inv+w[i] } } w <- w[g>.gEps] g <- g[g>.gEps] k <- length(w) } INV <- Matrix(lli(data, tree), sparse=TRUE) ll.0 <- as.matrix(INV %*% (bf * inv)) # if(Mkv) ll.0 <- as.matrix(INV %*% rep(1, length(bf))) if(wMix>0) ll.0 <- ll.0 + llMix nr <- as.integer(attr(data, "nr")) nc <- as.integer(attr(data, "nc")) nTips <- as.integer(length(tree$tip.label)) on.exit(.C("ll_free")) .C("ll_init", nr, nTips, nc, as.integer(k)) tmp <- pml.fit(tree, data, bf, shape = shape, k = k, Q = Q, levels = attr(data, "levels"), inv = inv, rate = rate, g = g, w = w, eig = eig, INV = INV, ll.0 = ll.0, llMix = llMix, wMix=wMix, site=TRUE) #, Mkv=Mkv df <- ifelse(is.ultrametric(tree), tree$Nnode, length(tree$edge.length)) df <- switch(type, DNA = df + (kmax>1) + (inv0 > 0) + length(unique(bf)) - 1 + length(unique(Q)) - 1, AA = df + (kmax>1) + (inv0 > 0) , CODON = df + (kmax>1) + (inv0 > 0) + length(unique(bf)) - 1, USER = df + (kmax>1) + (inv0 > 0) + length(unique(bf)) - 1 + length(unique(Q)) - 1) # if(type=="AA" & !is.null(model)){ # df <- df + (kmax>1) + (inv0 > 0) #+ length(unique(bf)) - 1 # } # if(type=="CODON"){ # df <- df + (kmax>1) + (inv0 > 0) + length(unique(bf)) - 1 # } # else df = df + (kmax>1) + (inv0 > 0) + length(unique(bf)) - 1 + length(unique(Q)) - 1 result <- list(logLik = tmp$loglik, inv = inv, k = kmax, shape = shape, Q = Q, bf = bf, rate = rate, siteLik = tmp$siteLik, weight = weight, g = g, w = w, eig = eig, data = data, model=model, INV = INV, ll.0 = ll.0, tree = tree, lv = tmp$resll, call = call, df=df, wMix=wMix, llMix=llMix) #, Mkv=Mkv if(type=="CODON"){ result$dnds <- 1 result$tstv <- 1 } class(result) <- "pml" result } optimRooted <- function(tree, data, eig=eig, w=w, g=g, bf=bf, rate=rate, ll.0=ll.0, INV=INV, control = pml.control(epsilon = 1e-08, maxit = 25, trace=0), ...){ tree$edge.length[tree$edge.length < 1e-08] <- 1e-08 # nicht richtig nTips <- as.integer(length(tree$tip.label)) k <- length(w) # optimising rooted triplets optRoot0 <- function(t, tree, data, g, w, eig, bf, ll.0, k){ l <- length(tree$edge.length) tree$edge.length[1:(l-1)] <- tree$edge.length[1:(l-1)] + t tree$edge.length[l] <- tree$edge.length[l] - t loglik <- pml.fit4(tree, data, bf=bf, g=g, w=w, eig=eig, INV=INV, ll.0=ll.0, k=k) # loglik } # optim edges leading to the root optRoot2 <- function(t, tree, data, g, w, eig, bf, ll.0, k){ tree$edge.length <- tree$edge.length + t #c(el1+t, el2-t) loglik <- pml.fit4(tree, data, bf=bf, g=g, w=w, eig=eig, INV=INV, ll.0=ll.0, k=k) #, INV=INV loglik } # scale whole tree scaleEdges <- function(t=1, trace=0, tree, data, ...){ fn <- function(t, tree, data,...){ tree$edge.length <- tree$edge.length*t pml.fit4(tree, data, ...) } optimize(f=fn, interval=c(0.25,4), tree=tree, data=data, ..., maximum = TRUE, tol = .00001) } parent <- tree$edge[, 1] child <- tree$edge[, 2] anc <- Ancestors(tree, 1:max(tree$edge), "parent") sibs <- Siblings(tree, 1:max(tree$edge)) allKids <- cvector <- allChildren(tree) rootNode <- getRoot(tree) child2 <- orderNNI(tree, nTips) #(cvector, rootNode, nTips, TRUE) lengthList <- edgeList <- vector("list", max(tree$edge)) for(i in tree$edge[,2]){ pa <- anc[i] kids <- sibs[[i]] if(pa!=rootNode){ edgeList[[i]] <- cbind(pa, c(anc[pa], kids)) lengthList[[i]] <- c(pa, kids) } else{ edgeList[[i]] <- cbind(pa, kids) lengthList[[i]] <- kids } } treeList <- vector("list", max(child2)) for(i in child2){ pa <- anc[i] kids <- allKids[[i]] treeList[[i]] <- cbind(i, c(kids, pa)) } ll <- pml.fit4(tree, data, bf=bf, k=k, eig=eig, ll.0=ll.0, INV=INV, w=w, g=g) #, INV=INV # if(control$trace>2)cat("ll", ll, "\n") eps <- 10 iter <- 1 EL <- numeric(max(tree$edge)) EL[tree$edge[, 2]] <- tree$edge.length eps0 <- 1e-8 tmp <- scaleEdges(t, trace=0, tree, data, bf = bf, k=k, ll.0=ll.0, eig = eig, w=w, g=g) # if(control$trace>2)cat("scale", tmp[[2]], "\n") t <- tmp[[1]] tree$edge.length <- tree$edge.length*t el <- tree$edge.length EL[tree$edge[, 2]] <- tree$edge.length ll2 <- pml.fit4(tree, data, bf=bf, k=k, eig=eig, INV=INV, ll.0=ll.0, w=w, g=g) tmptree <- tree while(eps>control$eps && iter < control$maxit){ ll2 <- pml.fit4(tree, data, bf=bf, k=k, eig=eig, INV=INV, ll.0=ll.0, w=w, g=g) loli <- rootNode children <- allKids[[rootNode]] kidsEl <- EL[children] minEl <- min(kidsEl) kidsEl <- kidsEl - minEl tmptree$edge <- cbind(rootNode, children) tmptree$edge.length <- kidsEl t <- optimize(f=optRoot2,interval=c(1e-8,3), tmptree, data=data, k=k, g=g, w=w, eig=eig, bf=bf, ll.0=ll.0, maximum=TRUE) optRoot2(t[[1]], tmptree, data=data, k=k, g=g, w=w, eig=eig, bf=bf, ll.0=ll.0) # if(control$trace>2)cat("optRoot", t[[2]], "\n") ll3 <- t[[2]] EL[children] <- kidsEl + t[[1]] tree$edge.length <- EL[tree$edge[, 2]] ll2 <- pml.fit4(tree, data, bf=bf, k=k, eig=eig, INV=INV, ll.0=ll.0, w=w, g=g) for(i in 1:length(child2)){ dad <- child2[i] # if(dad>nTips ){ # kann raus pa <- anc[dad] while(loli != pa){ tmpKids <- cvector[[loli]] tmpEdge <- cbind(loli, tmpKids) pml.move(tmpEdge, EL[tmpKids], data, g, w, eig, k, nTips, bf) loli <- anc[loli] } pml.move(edgeList[[dad]], EL[lengthList[[dad]]], data, g, w, eig, k, nTips, bf) children <- allKids[[dad]] kidsEl <- EL[children] minEl <- min(kidsEl) maxEl <- EL[dad] EDGE <- treeList[[dad]] tmptree$edge <- EDGE tmptree$edge.length <- c(kidsEl, maxEl) t0 <- optRoot0(0, tmptree, data, g, w, eig, bf, ll.0, k) t <- optimize(f=optRoot0, interval=c(-minEl+eps0,maxEl-eps0), tmptree, data=data, g=g, w=w, eig=eig, bf=bf, ll.0=ll.0, k=k, maximum=TRUE) # if(control$trace>2) cat("edge", t[[2]], "\n") if(!is.nan(t[[2]]) & t[[2]] > ll3){ optRoot0(t[[1]], tmptree, data=data, g=g, w=w, eig=eig, bf=bf, ll.0=ll.0, k=k) EL[children] <- kidsEl+t[[1]] EL[dad] <- maxEl-t[[1]] ll3 <- t[[2]] } else optRoot0(0, tmptree, data, g, w, eig, bf, ll.0, k) loli <- dad # } } tree$edge.length <- EL[tree$edge[, 2]] ll2 <- pml.fit(tree, data, bf=bf, k=k, eig=eig, ll.0=ll.0, INV=INV, w=w, g=g) eps <- (ll - ll2) / ll2 if(control$trace>1) cat("optimRooted: ", ll, " -> ", ll2, "\n") ll <- ll2 iter <- iter+1 } list(tree=tree, logLik=ll, c(eps=eps, iter=iter)) } index.nni <- function (ch, cvector, pvector, root) { p1 <- pvector[ch] k12 <- cvector[[ch]] k3 <- cvector[[p1]] k3 <- k3[k3 != ch] kids <- c(k12, k3, ch) parents <- c(ch, ch, p1, p1) if (p1 != root){ k4 <- pvector[p1] kids <- c(kids, k4) parents <- c(parents, p1) } cbind(parents, kids) } orderNNI <- function (tree, nTips){ res <- reorder(tree)$edge[,2] res <- res[res>nTips] res } rooted.nni <- function(tree, data, eig, w, g, bf, rate, ll.0, INV, control = pml.control(epsilon = 1e-08, maxit = 25, trace=0), ...){ ind0 <- which(ll.0>0) contrast <- attr(data, "contrast") tree$edge.length[tree$edge.length < 1e-08] <- 1e-08 nTips <- as.integer(length(tree$tip.label)) k <- length(w) if (is.null(attr(tree, "order")) || attr(tree, "order") == "cladewise") tree <- reorder.phylo(tree, "postorder") if(!is.rooted(tree))stop("tree must be rooted") attr(tree, "order") <- NULL weight <- attr(data , "weight") nr <- as.integer(attr(data , "nr")) nc <- as.integer(attr(data , "nc")) getEL1 <- function(t, nh){ el <- numeric(4) if(nh[1] > nh[2]){ el[2] <- nh[1] -nh[2] tnh <- nh[1] + t[1] } else{ el[1] <- nh[2] -nh[1] tnh <- nh[2] + t[1] } el[1:2] <- el[1:2] + t[1] if(tnh > nh[3]) el[3] <- el[3] + tnh - nh[3] else el[4] <- el[4] - tnh + nh[3] el[3:4] <- el[3:4] + t[2] el } optRootU <- function(t, tree, data, bf, g, w, eig, ll.0, k, INV, nh){ tree$edge.length <- getEL1(t, nh) pml.fit4(tree, data, bf=bf, k=k, eig=eig, ll.0=ll.0, INV=INV, w=w, g=g) # pml.fit(tree, data, bf=bf, g=g, w=w, eig=eig, ll.0=ll.0, k=k, INV=INV) } getEL2 <- function(t, nh){ el <- numeric(5) eps <- 1e-6 nh12.min <- max(nh[1:2]) + eps nh123.min <- max(nh12.min, nh[3]) + eps l1 <- nh[5] - nh123.min - eps el[5] <- l1 * t[1] + eps nh123 <- nh[5] - el[5] l2 <- nh123 - nh12.min - eps nh12 <- nh12.min + l2 * t[2] el[1] <- nh12 - nh[1] el[2] <- nh12 - nh[2] el[3] <- nh123 - nh[3] el[4] <- nh123 - nh12 el } optEdgeU <- function(t, tree, data, bf, g, w, eig, ll.0, k, INV, nh){ tree$edge.length <- getEL2(t, nh) # pml.fit(tree, data, bf=bf, g=g, w=w, eig=eig, ll.0=ll.0, k=k, INV=INV) pml.fit4(tree, data, bf=bf, k=k, eig=eig, ll.0=ll.0, INV=INV, w=w, g=g) } child <- tree$edge[, 2] parent <- tree$edge[, 1] # ll <- pml.fit(tree, data, bf=bf, k=k, eig=eig, ll.0=ll.0, INV=INV, w=w, g=g) ll <- pml.fit4(tree, data, bf=bf, k=k, eig=eig, ll.0=ll.0, INV=INV, w=w, g=g) llstart <- ll eps <- .00001 iter <- 1 EL <- numeric(max(tree$edge)) EL[tree$edge[,2]] <- tree$edge.length change <- numeric(length(parent)) + 1 rootNode <- getRoot(tree) anc <- Ancestors(tree, 1:max(tree$edge), "parent") cvector <- allChildren(tree) sibs <- Siblings(tree, 1:max(tree$edge)) child2 <- orderNNI(tree, nTips) while(iter < 2){ ll2 <- pml.fit(tree, data, bf=bf, k=k, eig=eig, ll.0=ll.0, INV=INV, w=w, g=g) nh <- nodeHeight(tree) loli <- rootNode pa <- rootNode nchanges <- 0 ind <- 1 i <- 1 tree1 <- tree2 <- tree3 <- tree for(i in 1:length(child2)){ ch <- child2[i] dad <- anc[ch] if(ch>nTips){ EL[tree$edge[,2]] <- tree$edge.length pa <- ifelse(dad==rootNode, rootNode ,anc[dad]) # should avoid unnecessary movements while(loli != dad && loli!=rootNode){ if(loli==pa){ tmpKids <- sibs[[dad]] tmpEdge <- cbind(pa, c(anc[pa], tmpKids)) pml.move(tmpEdge, EL[c(pa, tmpKids)], data, g, w, eig, k, nTips, bf) # cat("move from pa to dad \n") loli <- dad } else{ # cat("move loli up", loli, "dad", dad, "pa", pa, "ch", ch, "\n") tmpKids <- cvector[[loli]] tmpEdge <- cbind(loli, tmpKids) pml.move(tmpEdge, EL[tmpKids], data, g, w, eig, k, nTips, bf) loli <- anc[loli] } } if(loli == rootNode && dad!= loli){ # update all nodes pml.fit(tree, data, bf=bf, k=k, eig=eig, ll.0=ll.0, INV=INV, w=w, g=g) # cat("move down loli", loli, "dad", dad, "pa", pa, "ch", ch, "\n") gd <- rev(Ancestors(tree, ch, "all")) tmpKids <- sibs[[gd[2]]] tmpEdge <- cbind(rootNode, tmpKids) pml.move(tmpEdge, EL[tmpKids], data, g, w, eig, k, nTips, bf) gd <- gd[-1] while(length(gd)>1){ tmpKids <- sibs[[gd[2]]] tmpEdge <- cbind(gd[1], c(anc[gd[1]],tmpKids)) pml.move(tmpEdge, EL[c(gd[1],tmpKids)], data, g, w, eig, k, nTips, bf) gd <- gd[-1] } loli <- dad } X1 <- index.nni(ch, cvector, anc, rootNode) # if(loli!=rootNode){ # tmpKids <- c(ch, sibs[[ch]]) # tmpEdge <- cbind(dad, c(pa, tmpKids)) # tree1$edge <- tmpEdge # tree1$edge.length = EL[c(dad, tmpKids)] # ll0 = pml.fit(tree1, data, bf=bf, g=g, w=w, eig=eig, # ll.0=ll.0, k=k, INV=INV) # cat("triplet", ll0, "\n") # } if(loli!=rootNode){ tree1$edge <- X1 tree1$edge.length <- abs(nh[X1[,1]] - nh[X1[,2]]) # ll0 = pml.fit(tree1, data, bf=bf, g=g, w=w, eig=eig, ll.0=ll.0, k=k, INV=INV) ll0 <- pml.fit4(tree1, data, bf=bf, k=k, eig=eig, ll.0=ll.0, INV=INV, w=w, g=g) # cat("quartet", ll0, ch, dad, "\n") } if(dad == rootNode){ ll0 <- pml.fit(tree, data, bf=bf, g=g, w=w, eig=eig, ll.0=ll.0, k=k, INV=INV) # cat("at root", ll0, ch, dad, "\n") ind2 <- c(1,3,2,4) ind3 <- c(3,2,1,4) X2 <- X3 <- X1 X2[,2] <- X1[ind2, 2] X3[,2] <- X1[ind3, 2] tree1$edge <- X1 tree2$edge <- X2 tree3$edge <- X3 edge1 <- X1[,2] edge1[4] <- dad res1 <- optim(par = c(.1,.1), optRootU, gr=NULL, tree=tree1, data=data, nh=nh[X1[,2]], g=g, w=w, eig=eig, bf=bf, ll.0=ll.0, INV=INV, k=k, method="L-BFGS-B", lower = 1e-8, upper = 5, control = list(fnscale=-1)) res2 <- optim(par = c(.1,.1), optRootU, gr=NULL, tree=tree2, data=data, nh=nh[X2[,2]], g=g, w=w, eig=eig, bf=bf, ll.0=ll.0, INV=INV, k=k, method = "L-BFGS-B", lower = 1e-8, upper = 5, control = list(fnscale=-1)) res3 <- optim(par = c(.1,.1), optRootU, gr=NULL, tree=tree3, data=data, nh=nh[X3[,2]], g=g, w=w, eig=eig, bf=bf, ll.0=ll.0, INV=INV, k=k, method = "L-BFGS-B", lower = 1e-8, upper = 5, control = list(fnscale=-1)) ind <- which.max(c(res1[[2]], res2[[2]], res3[[2]])) if(control$trace>2) cat("root", c(res1[[2]], res2[[2]], res3[[2]]), "\n") if(ind==1){ ll2 <- res1[[2]] optRootU(t=res1[[1]], tree=tree1, data=data, nh=nh[X1[,2]], g=g, w=w, eig=eig, bf=bf, ll.0=ll.0, INV=INV, k=k) tmpEL <- getEL1(res1[[1]], nh[X1[,2]]) tree <- changeEdgeLength(tree, X1[,2], tmpEL) } if(ind==2){ ll2 <- res2[[2]] optRootU(t=res2[[1]], tree=tree2, data=data, nh=nh[X2[,2]], g=g, w=w, eig=eig, bf=bf, ll.0=ll.0, INV=INV, k=k) tmpEL <- getEL1(res2[[1]], nh[X2[,2]]) tree <- changeEdge(tree, X1[c(2,3),2]) tree <- changeEdgeLength(tree, X2[,2], tmpEL) } if(ind==2){ ll2 <- res3[[2]] optRootU(t=res3[[1]], tree=tree3, data=data, nh=nh[X3[,2]], g=g, w=w, eig=eig, bf=bf, ll.0=ll.0, INV=INV, k=k) tmpEL <- getEL1(res3[[1]], nh[X3[,2]]) tree <- changeEdge(tree, X1[c(1,3),2]) tree <- changeEdgeLength(tree, X3[,2], tmpEL) } } else{ loli <- dad ind2 <- c(1,3,2,4,5) ind3 <- c(3,2,1,4,5) X2 <- X3 <- X1 X2[,2] <- X1[ind2, 2] X3[,2] <- X1[ind3, 2] tree1$edge <- X1 tree2$edge <- X2 tree3$edge <- X3 tt <- c(.3,.5) res1 <- optim(par = tt, optEdgeU, gr=NULL, tree=tree1, data, nh=nh[X1[,2]], g=g, w=w, eig=eig, bf=bf, ll.0=ll.0, INV=INV, k=k, method = "L-BFGS-B", lower = 1e-4, upper = 1-1e-4, control = list(fnscale=-1)) res2 <- optim(par = tt, optEdgeU, gr=NULL, tree=tree2, data, nh=nh[X2[,2]], g=g, w=w, eig=eig, bf=bf, ll.0=ll.0, INV=INV, k=k, method = "L-BFGS-B", lower = 1e-4, upper = 1-1e-4, control = list(fnscale=-1)) res3 <- optim(par = tt, optEdgeU, gr=NULL, tree=tree3, data, nh=nh[X3[,2]], g=g, w=w, eig=eig, bf=bf, ll.0=ll.0, INV=INV, k=k, method = "L-BFGS-B", lower = 1e-4, upper = 1-1e-4, control = list(fnscale=-1)) ind <- which.max(c(res1[[2]], res2[[2]], res3[[2]])) if(control$trace>2) cat("edge", ch, ":", c(res1[[2]], res2[[2]], res3[[2]]), "\n") ll3 <- max(c(res1[[2]], res2[[2]], res3[[2]])) if( (ll3 - 1e-5*ll3) < ll2){ loli <- rootNode # 2 <- pml.fit(tree, data, bf=bf, eig=eig, ll.0=ll.0, w=w, g=g) ll2 <- pml.fit4(tree, data, bf=bf, k=k, eig=eig, ll.0=ll.0, INV=INV, w=w, g=g) nh <- nodeHeight(tree) EL[tree$edge[,2]] <- tree$edge.length ind <- 0 } else{ if(ind==1){ ll2 <- res1[[2]] optEdgeU(res1[[1]], tree=tree1, data, nh=nh[X1[,2]], g=g, w=w, eig=eig, bf=bf, ll.0=ll.0, INV=INV, k=k) tmpEL <- getEL2(res1[[1]], nh[X1[,2]]) tmpE <- X1[,2] tmpE[5] <- X1[5,1] tree <- changeEdgeLength(tree, tmpE, tmpEL) } if(ind==2){ ll2 <- res2[[2]] optEdgeU(res2[[1]], tree=tree2, data, nh=nh[X2[,2]], g=g, w=w, eig=eig, bf=bf, ll.0=ll.0, INV=INV, k=k) tmpEL <- getEL2(res2[[1]], nh[X2[,2]]) tmpE <- X2[,2] tmpE[5] <- X1[5,1] tree <- changeEdge(tree, X1[c(2,3),2]) tree <- changeEdgeLength(tree, tmpE, tmpEL) } if(ind==3){ ll2 <- res3[[2]] optEdgeU(res3[[1]], tree=tree3, data, nh=nh[X3[,2]], g=g, w=w, eig=eig, bf=bf, ll.0=ll.0, INV=INV, k=k) tmpEL <- getEL2(res3[[1]], nh[X3[,2]]) tmpE <- X3[,2] tmpE[5] <- X1[5,1] tree <- changeEdge(tree, X1[c(1,3),2]) tree <- changeEdgeLength(tree, tmpE, tmpEL) } } } nh <- nodeHeight(tree) EL[tree$edge[,2]] <- tree$edge.length loli <- dad if(ind>1){ # print("NNI swap") nchanges <- nchanges+1 anc <- Ancestors(tree, 1:max(tree$edge), "parent") cvector <- allChildren(tree) sibs <- Siblings(tree, 1:max(tree$edge)) } } } # ll2 <- pml.fit(tree, data, bf=bf, g=g, w=w, eig=eig, ll.0=ll.0, k=k, INV=INV) ll2 <- pml.fit4(tree, data, bf=bf, k=k, eig=eig, ll.0=ll.0, INV=INV, w=w, g=g) eps <- (ll - ll2) / ll2 if(control$trace>1) cat(ll, " -> ", ll2, "\n") if(control$trace>1) cat("swap:", nchanges) ll <- ll2 iter <- iter+1 } list(tree=tree, logLik=ll, iter=iter, swap=nchanges) } #' @rdname pml #' @aliases optim.pml #' @export optim.pml <- function (object, optNni=FALSE, optBf=FALSE, optQ=FALSE, optInv=FALSE, optGamma=FALSE, optEdge=TRUE, optRate=FALSE, optRooted=FALSE, control = pml.control(epsilon = 1e-8, maxit = 10, trace = 1L), model = NULL, rearrangement = ifelse(optNni, "NNI","none"), subs = NULL, ratchet.par = list(iter = 20L, maxit = 100L, prop = 1/3), ...) { optRatchet <- FALSE optRatchet2 <- FALSE if(rearrangement == "none"){ optNni <- FALSE optRatchet <- FALSE optRatchet2 <- FALSE } if(rearrangement == "NNI")optNni <- TRUE if(rearrangement == "stochastic") optRatchet <- TRUE if(rearrangement == "ratchet") optRatchet2 <- TRUE extras <- match.call(expand.dots = FALSE)$... pmla <- c("wMix", "llMix") wMix <- object$wMix llMix <- object$llMix # Mkv <- object$Mkv Mkv <- FALSE if(is.null(llMix)) llMix <- 0 if (!is.null(extras)) { names(extras) <- pmla[pmatch(names(extras), pmla)] existing <- match(pmla, names(extras)) if (!is.na(existing[1])) wMix <- eval(extras[[existing[1]]], parent.frame()) if (!is.na(existing[2])) llMix <- eval(extras[[existing[2]]], parent.frame()) } tree <- object$tree call <- object$call ratchet <- FALSE ratchet2 <- FALSE if(optRatchet == TRUE){ if(optRooted==FALSE){ optNni <- TRUE optEdge <- TRUE ratchet <- TRUE } } if(optRatchet2 == TRUE){ optNni <- TRUE optEdge <- TRUE ratchet2 <- TRUE } data <- object$data addTaxa <- FALSE if(optNni) { # test this more dup <- duplicated(data) # duplicated_phyDat(data) if(any(dup)){ # && optNNI orig.data <- data addTaxa <- TRUE labels <- names(data) ldup <- labels[dup] ind2 <- match(subset(data, dup), data) tree2 <- drop.tip(tree, ldup) tree <- reorder(tree2, "postorder") mapping <- cbind(labels[dup], labels[ind2]) } if(!is.binary(tree)) tree <- multi2di(tree) optEdge <- TRUE } if(length(tree$tip.label) < (3 + !optRooted) ){ optNni <- FALSE ratchet <- FALSE ratchet2 <- FALSE } if(length(tree$tip.label) < (2 + !optRooted) ){ stop("rooted / unrooted tree needs at least 2 / 3 tips") } if(is.rooted(tree)) { if(optRooted==FALSE && optEdge==TRUE){ tree <- unroot(tree) attr(tree, "order") <- NULL tree <- reorder(tree, "postorder") warning("I unrooted the tree", call. = FALSE) } } if(is.null(attr(tree, "order")) || attr(tree, "order") == "cladewise") tree <- reorder(tree, "postorder") if(any(tree$edge.length < 1e-08)) { tree$edge.length[tree$edge.length < 1e-08] <- 1e-08 if(optRooted){ nTips <- as.integer(length(tree$tip.label)) ind <- match(as.integer(1:nTips), tree$edge[,2]) tree$edge.length[ind] <- tree$edge.length[ind] + nodeHeight(tree)[1:nTips] } # save to change to new update.pml object <- update.pml(object, tree = tree) } if(optEdge & optRate) { warning("You can't optimise edges and rates at the same time, only edges are optimised!", call. = FALSE) optRate <- FALSE } if(optRooted){ optEdge <- FALSE if(!is.rooted(tree)) stop("tree must be rooted") if(!is.ultrametric(tree)) stop("Tree must be ultrametric!") } trace <- control$trace data <- subset(data, tree$tip.label) type <- attr(data, "type") if (type == "AA" & !is.null(model)){ object <- update(object, model=model) } if (type == "CODON") { if(is.null(model)) model <- "codon1" model <- match.arg(model, c("codon0", "codon1", "codon2", "codon3", "YN98")) dnds <- object$dnds tstv <- object$tstv if(!is.null(model)){ if(model == "codon0") optQ <- FALSE else optQ <- TRUE if(model == "YN98") optBf <- TRUE } } Q <- object$Q if(is.null(subs)) subs <- c(1:(length(Q) - 1), 0) bf <- object$bf eig <- object$eig inv <- object$inv k <- object$k if(k==1 & optGamma){ optGamma <- FALSE message('only one rate class, ignored optGamma') } # if(Mkv==TRUE & optInv==TRUE){ # optInv = FALSE # message('cannot estimate invariant sites and Mkv model, ignored optInv') # } shape <- object$shape w <- object$w g <- object$g if (type == "DNA" & !is.null(model)) { tmp <- subsChoice(model) optQ <- tmp$optQ if (!optQ) Q <- rep(1, 6) optBf <- tmp$optBf if (!optBf) bf <- c(0.25, 0.25, 0.25, 0.25) subs <- tmp$subs } ll0 <- object$logLik INV <- object$INV ll.0 <- object$ll.0 rate <- object$rate ll <- ll0 ll1 <- ll0 opti <- TRUE nr <- as.integer(attr(data, "nr")) nc <- as.integer(attr(data, "nc")) nTips <- as.integer(length(tree$tip.label)) # on.exit(.C("ll_free")) # .C("ll_init", nr, nTips, nc, as.integer(k)) # .INV <- .iind <- NULL on.exit({ tmp <- pml.fit(tree, data, bf, shape = shape, k = k, Q = Q, levels = attr(data, "levels"), inv = inv, rate = rate, g = g, w = w, eig = eig, INV = INV, ll.0 = ll.0, llMix = llMix, wMix = wMix, site = TRUE) # df <- ifelse(optRooted, tree$Nnode, length(tree$edge.length)) # length(tree$edge.length) # nTips # nNodes # uniqueTips # uniqueNodes # kmax>1 # bf # Q if(addTaxa){ tree <- add.tips(tree, tips=mapping[,1], where=mapping[,2], edge.length=rep(0,nrow(mapping)) ) # addAllTips(tree, mapping) data <- orig.data } df <- ifelse(optRooted, tree$Nnode, length(tree$edge.length)) df <- switch(type, DNA = df + (k>1) + (inv > 0) + length(unique(bf)) - 1 + length(unique(Q)) - 1, AA = df + (k>1) + (inv > 0) + optBf * (length(unique(bf)) - 1), CODON = df + (k>1) + (inv > 0) + length(unique(bf)) - 1 + (dnds != 1) + (tstv != 1), USER = df + (k>1) + (inv > 0) + length(unique(bf)) - 1 + length(unique(Q)) - 1) object <- list(logLik = tmp$loglik, inv = inv, k = k, shape = shape, Q = Q, bf = bf, rate = rate, siteLik = tmp$siteLik, weight = attr(data, "weight"), g = g, w = w, eig = eig, data = data, model = model, INV = INV, ll.0 = ll.0, tree = tree, lv = tmp$resll, call = call, df = df, wMix = wMix, llMix = llMix) if (type == "CODON") { object$dnds <- dnds object$tstv <- tstv } class(object) <- "pml" extras <- pairlist(bf = bf, Q = Q, inv = inv, shape = shape, rate = rate)[c(optBf, optQ, optInv, optGamma, optRate)] if (length(extras)) { existing <- !is.na(match(names(extras), names(call))) for (a in names(extras)[existing]) call[[a]] <- extras[[a]] if (any(!existing)) { call <- c(as.list(call), extras[!existing]) call <- as.call(call) } } object$call <- call pml.free() return(object) }) pml.init(data, k) if (optEdge) { # check if non-negative least-squares is better for start of # optimisation treetmp <- nnls.phylo(tree, dist.ml(data)) treetmp$edge.length[treetmp$edge.length < 1e-8] <- 1e-8 tmplogLik <- pml.fit(treetmp, data, bf, k = k, inv = inv, g = g, w = w, eig = eig, INV = INV, ll.0 = ll.0, llMix = llMix, wMix = wMix) if(tmplogLik>ll) tree <- treetmp res <- optimEdge(tree, data, eig=eig, w=w, g=g, bf=bf, rate=rate, ll.0=ll.0, INV=INV, control <- pml.control(epsilon = 1e-07, maxit = 5, trace=trace - 1)) if(trace > 0) cat("optimize edge weights: ", ll, "-->", max(res[[2]], ll), "\n") if (res[[2]] > ll){ ll <- res[[2]] tree <- res[[1]] } } if(optRooted){ res <- optimRooted(tree, data, eig=eig, w=w, g=g, bf=bf, rate=rate, ll.0=ll.0, INV=INV, control = pml.control(epsilon = 1e-07, maxit = 10, trace = trace-1)) if(trace > 0) cat("optimize edge weights: ", ll, "-->", max(res[[2]], ll), "\n") if(res[[2]] > ll){ ll <- res[[2]] tree <- res[[1]] } } rounds <- 1 while (opti) { if (optBf) { res <- optimBf(tree, data, bf = bf, inv = inv, Q = Q, w = w, g = g, INV = INV, rate = rate, k = k, llMix = llMix) if (trace > 0) cat("optimize base frequencies: ", ll, "-->", max(res[[2]], ll), "\n") if(res[[2]] > ll){ bf <- res[[1]] eig <- edQt(Q = Q, bf = bf) if (inv > 0) ll.0 <- as.matrix(INV %*% (bf * inv)) if (wMix > 0) ll.0 <- ll.0 + llMix ll <- res[[2]] } } if (optQ) { if(type=="CODON"){ # if(is.null(model)) model <- "codon1" # model <- match.arg(model, c("codon0", "codon1", "codon2", "codon3", "YN98")) ab <- c(tstv, dnds) res <- switch(model, YN98 = optimCodon(tree,data, Q=rep(1,1830), subs=.sub, syn=.syn, bf = bf, w = w, g = g, inv = inv, INV = INV, ll.0 = ll.0, rate = rate, k = k, ab=log(ab), optK=TRUE, optW = TRUE), codon1 = optimCodon(tree,data, Q=rep(1,1830), subs=.sub, syn=.syn, bf = bf, w = w, g = g, inv = inv, INV = INV, ll.0 = ll.0, rate = rate, k = k, ab=log(ab), optK=TRUE, optW = TRUE), codon2 = optimCodon(tree,data, Q=rep(1,1830), subs=.sub, syn=.syn, bf = bf, w = w, g = g, inv = inv, INV = INV, ll.0 = ll.0, rate = rate, k = k, ab=log(ab), optK=FALSE, optW = TRUE), codon3 = optimCodon(tree,data, Q=rep(1,1830), subs=.sub, syn=.syn, bf = bf, w = w, g = g, inv = inv, INV = INV, ll.0 = ll.0, rate = rate, k = k, ab=log(ab), optK=TRUE, optW = FALSE)) tmp <- res[[5]] m <- length(tmp) dnds <- tmp[m] if(m>1) tstv <- tmp[1] } else res <- optimQ(tree, data, Q = Q, subs = subs, bf = bf, w = w, g = g, inv = inv, INV = INV, ll.0 = ll.0, rate = rate, k = k) Q <- res[[1]] eig <- edQt(Q = Q, bf = bf) if (trace > 0) cat("optimize rate matrix: ", ll, "-->", res[[2]], "\n") ll <- res[[2]] } if(optInv) { res <- optimInv(tree, data, inv = inv, INV = INV, Q = Q, bf = bf, eig = eig, k = k, shape = shape, rate = rate) if (trace > 0) cat("optimize invariant sites: ", ll, "-->", max(res[[2]], ll), "\n") if (res[[2]] > ll){ inv <- res[[1]] w <- rep(1/k, k) g <- discrete.gamma(shape, k) w <- (1 - inv) * w if (wMix > 0) w <- (1 - wMix) * w g <- g/(1 - inv) g <- g * rate ll.0 <- as.matrix(INV %*% (bf * inv)) if (wMix > 0) ll.0 <- ll.0 + llMix ll <- res[[2]] } } if(optGamma) { res <- optimGamma(tree, data, shape = shape, k = k, inv = inv, INV = INV, Q = Q, bf = bf, eig = eig, ll.0 = ll.0, rate = rate) if (trace > 0) cat("optimize shape parameter: ", ll, "-->", max(res[[2]], ll), "\n") if(res[[2]] > ll){ shape <- res[[1]] w <- rep(1/k, k) g <- discrete.gamma(shape, k) if (inv > 0) { w <- (1 - inv) * w g <- g/(1 - inv) } if (wMix > 0) w <- (1 - wMix) * w g <- g * rate ll <- res[[2]] } } if(optRate) { res <- optimRate(tree, data, rate = rate, inv = inv, INV = INV, Q = Q, bf = bf, eig = eig, k = k, shape = shape, w = w, ll.0 = ll.0) if (trace > 0) cat("optimize rate: ", ll, "-->", max(res[[2]], ll), "\n") if (res[[2]] > ll){ rate <- res[[1]] g <- discrete.gamma(shape, k) w <- rep(1/k, k) if (inv > 0) { w <- (1 - inv) * w g <- g/(1 - inv) } if (wMix > 0) w <- (1 - wMix) * w g <- g * rate ll <- res[[2]] } } if (optEdge) { res <- optimEdge(tree, data, eig=eig, w=w, g=g, bf=bf, rate=rate, ll.0=ll.0, control = pml.control(epsilon = 1e-08, maxit = 5, trace=trace - 1)) if (trace > 0) cat("optimize edge weights: ", ll, "-->", max(res[[2]], ll), "\n") if (res[[2]] > ll){ ll <- res[[2]] tree <- res[[1]] } } if(optRooted){ res <- optimRooted(tree, data, eig=eig, w=w, g=g, bf=bf, rate=rate, ll.0=ll.0, INV=INV, control = pml.control(epsilon = 1e-07, maxit = 10, trace = trace-1)) if(trace > 0) cat("optimize edge weights: ", ll, "-->", max(res[[2]], ll), "\n") if (res[[2]] > ll){ ll <- res[[2]] tree <- res[[1]] } } if(optNni) { swap <- 0 iter <- 1 while (iter < 4) { if(optEdge){ # tmp <- pml.nni.old(tree, data, w, g, eig, bf, ll.0, ll, ...) tmp <- pml.nni(tree, data, w=w, g=g, eig=eig, bf=bf, ll.0=ll.0, ll=ll, INV=INV, ...) swap <- swap + tmp$swap res <- optimEdge(tmp$tree, data, eig=eig, w=w, g=g, bf=bf, rate=rate, ll.0=ll.0, control=pml.control( epsilon = 1e-08, maxit = 3, trace=0)) ll2 <- res[[2]] tree <- res[[1]] } else{ tmp <- rooted.nni(tree, data, eig=eig, w=w, g=g, bf=bf, rate=rate, ll.0=ll.0, INV=INV, ...) swap <- swap + tmp$swap res <- optimRooted(tmp$tree, data, eig=eig, w=w, g=g, bf=bf, rate=rate, ll.0=ll.0, INV=INV, control= pml.control( epsilon = 1e-08, maxit = 5, trace = trace-1)) tree <- tmp$tree ll2 <- tmp$logLik } if (trace > 0) cat("optimize topology: ", ll, "-->", ll2, "\n") ll <- ll2 iter <- iter + 1 if (tmp$swap == 0) { iter <- 4 } } if (trace > 0) cat(swap, "\n") if (swap > 0) rounds <- 1 if (swap == 0) optNni <- FALSE } epsR <- 1e-8 if( (ratchet==TRUE) && (optNni == FALSE) ){ maxR <- ratchet.par$iter maxit <- ratchet.par$maxit kmax <- 1 i <- 1 while(i < maxit){ tree2 <- rNNI(tree, moves=round(nTips * ratchet.par$prop), n=1) #tree <- rSPR(tree, moves=10, k=3, n=1) swap <- 1 ll2 <- pml.fit(tree2, data, bf, shape = shape, k = k, Q = Q, levels = attr(data, "levels"), inv = inv, rate = rate, g = g, w = w, eig = eig, INV = INV, ll.0 = ll.0, llMix = llMix, wMix = wMix, site = FALSE) while(swap>0){ # tmp <- pml.nni(tree2, data, w, g, eig, bf, ll.0, ll=ll2, ...) tmp <- pml.nni(tree2, data, w=w, g=g, eig=eig, bf=bf, ll.0=ll.0, ll=ll2, INV=INV, ...) swap <- tmp$swap res <- optimEdge(tmp$tree, data, eig=eig, w=w, g=g, bf=bf, rate=rate, ll.0=ll.0, control = pml.control( epsilon = 1e-08, maxit = 3, trace=0)) if (trace > 1) cat("optimize topology: ", ll2, "-->", res[[2]], "\n", "swaps:", tmp$swap, "\n") ll2 <- res[[2]] tree2 <- res[[1]] } if(ll2 > (ll + epsR)){ tree <- tree2 ll <- ll2 kmax <- 1 } else kmax <- kmax+1 if(trace > 0) print(paste("Ratchet iteration ", i, ", best pscore so far:",ll)) i <- i+1 if(kmax > maxR) i <- maxit } optNni <- TRUE ratchet <- FALSE rounds <- 1 } if( (ratchet2==TRUE) && (optNni == FALSE) ){ if(optRooted){ FUN <- function(x, bf, Q, k, shape){ dm <- dist.ml(x, bf=bf, Q=Q, k=k, shape=shape) tr <- wpgma(dm) # nnls.phylo(tr, dm, TRUE) tr } } else{ FUN <- function(x, bf, Q, k, shape){ dm <- dist.ml(x, bf=bf, Q=Q) tr <- fastme.bal(dm, TRUE, FALSE, FALSE) tr$edge.length[tr$edge.length < 1e-8] <- 1e-8 tr #nnls.phylo(tr, dm) } } maxR <- ratchet.par$iter maxit <- ratchet.par$maxit kmax <- 1 i <- 1 while(i < maxit){ tree2 <- bootstrap.phyDat(data, FUN, bs = 1, bf=bf, Q=Q, k=k, shape=shape)[[1]] tree2 <- checkLabels(tree2, tree$tip.label) tree2 <- reorder(tree2, "postorder") swap <- 1 ll2 <- pml.fit(tree2, data, bf, shape = shape, k = k, Q = Q, levels = attr(data, "levels"), inv = inv, rate = rate, g = g, w = w, eig = eig, INV = INV, ll.0 = ll.0, llMix = llMix, wMix = wMix, site = FALSE) #print(ll2) while(swap>0){ # tmp <- pml.nni(tree2, data, w, g, eig, bf, ll.0, ll=ll2, ...) tmp <- pml.nni(tree2, data, w=w, g=g, eig=eig, bf=bf, ll.0=ll.0, ll=ll2, INV=INV, ...) swap <- tmp$swap res <- optimEdge(tmp$tree, data, eig=eig, w=w, g=g, bf=bf, rate=rate, ll.0=ll.0, control = pml.control( epsilon = 1e-08, maxit = 3, trace=0)) if (trace > 1) cat("optimize topology: ", ll2, "-->", res[[2]], "\n", "swaps:", tmp$swap, "\n") ll2 <- res[[2]] tree2 <- res[[1]] } if(ll2 > (ll + epsR)){ tree <- tree2 ll <- ll2 kmax <- 1 } else kmax <- kmax+1 if(trace > 0) print(paste("Ratchet iteration ", i,", best pscore so far:",ll)) i <- i+1 if(kmax > maxR) i <- maxit } optNni <- TRUE ratchet2 <- FALSE rounds <- 1 } if(rounds > control$maxit) opti <- FALSE if ((( ll1 - ll ) / ll < control$eps ) && rounds > 2 ) #abs(ll1 - ll) opti <- FALSE rounds <- rounds + 1 ll1 <- ll } } ################################################################################ # # experimental pml.nni # ################################################################################ indexNNI3 <- function(tree){ parent <- tree$edge[, 1] child <- tree$edge[, 2] ind <- reorder(tree)$edge[,2] nTips <- length(tree$tip.label) ind <- ind[ind>nTips] # ind <- which(child %in% parent) Nnode <- tree$Nnode # a d # \ / # e-----f c is closest to root, f is root from subtree # / \ # b c c(a,b,c,d,e,f) edgeMatrix <- matrix(0L,(Nnode-1), 6) pvector <- integer(max(parent)) pvector[child] <- parent tips <- !logical(max(parent)) tips[parent] <- FALSE # cvector <- allCildren(tree) cvector <- vector("list",max(parent)) for(i in 1:length(parent)) cvector[[parent[i]]] <- c(cvector[[parent[i]]], child[i]) k <- 1L for(i in ind){ f <- pvector[i] #f ab <- cvector[[i]] #a,b ind1 <- cvector[[f]] #c,d cd <- ind1[ind1 != i] if(pvector[f])cd <- c(pvector[f], cd) # cd edgeMatrix[k, 1:6] <- c(ab,cd,i,f) k <- k+1L } edgeMatrix } # EL ausserhalb index2tree <- function(x, tree, root=length(tree$tip.label)+1L){ EL <- numeric(max(tree$edge)) EL[tree$edge[,2]] <- tree$edge.length #edgeLengthIndex() pa <- c(5L,5L,6L,6L,6L) ch <- c(1L,2L,5L,4L,3L) elind <- c(1L,2L,5L,4L,6L) # raus if(x[6L]==root) el <- EL[x[ch]] #1 Zeile raus else el <- EL[x[elind]] #edgeLengthIndex() structure(list(edge = structure(c(x[pa], x[ch]), .Dim = c(5L, 2L)), edge.length = el, Nnode = 2L), .Names = c("edge", "edge.length", "Nnode"), class = "phylo", order = "postorder") } index2tree2 <- function(x, tree, root=length(tree$tip.label)+1L){ EL <- numeric(max(tree$edge)) EL[tree$edge[,2]] <- tree$edge.length pa <- c(6L,6L,5L,5L,5L) ch <- c(3L,4L,6L,1L,2L) elr <- c(3L,4L,5L,1L,2L) eln <- c(6L,4L,5L,1L,2L) if(x[6L]==root) el <- EL[x[elr]] else el <- EL[x[eln]] structure(list(edge = structure(c(x[pa], x[ch]), .Dim = c(5L, 2L)), edge.length = el, Nnode = 2L), .Names = c("edge", "edge.length", "Nnode"), class = "phylo", order = "postorder") } # weight, nr, nc, contrast, nco (Reihenfolge beibehalten) # INV raus # evi, eve, contrast2 ausserhalb definieren optimQuartet <- function (tree, data, eig, w, g, bf, rate, ll.0, nTips, weight, nr, nc, contrast, nco, llcomp =-Inf, control = pml.control(epsilon = 1e-08, maxit = 5, trace=0), ...) { # if (is.null(attr(tree, "order")) || attr(tree, "order") == "cladewise") { # tree <- reorder(tree, "postorder") # print("reorder") # } # nTips <- length(tree$tip.label) el <- tree$edge.length tree$edge.length[el < 1e-08] <- 1e-08 oldtree <- tree k <- length(w) loglik <- pml.quartet(tree, data, bf=bf, g=g, w=w, eig=eig, ll.0=ll.0, k=k, nTips=nTips, weight=weight, nr=nr, nc=nc, contrast=contrast, nco=nco) start.ll <- old.ll <- new.ll <- loglik # contrast <- attr(data, "contrast") contrast2 <- contrast %*% eig[[2]] evi <- (t(eig[[3]]) * bf) # weight <- attr(data, "weight") eps <- 1 iter <- 0 # treeP <- tree child <- tree$edge[, 2] parent <- tree$edge[, 1] m <- max(tree$edge) EL <- tree$edge.length n <- length(tree$edge.length) ind.inv <- which(ll.0>0) # nr <- as.integer(length(weight)) # nc <- as.integer(length(bf)) # nco <- as.integer(nrow(contrast)) eve <- eig[[2]] lg <- k rootNode <- getRoot(tree) # raus ScaleEPS <- 1.0/4294967296.0 # anc <- Ancestors(tree, 1:m, "parent") # anc0 <- as.integer(c(0L, anc)) while (eps > control$eps && iter < control$maxit) { EL <- .Call("optQrtt", as.integer(parent), as.integer(child), eig, evi, EL, w, g, as.integer(nr), as.integer(nc), as.integer(nTips), as.double(contrast), as.double(contrast2), nco, data, as.double(weight), as.double(ll.0)) iter <- iter + 1 # tree$edge.length <- EL[tree$edge[,2]] tree$edge.length <- EL # [treeP$edge[,2]] # vormals treeP newll <- pml.quartet(tree, data, bf=bf, g=g, w=w, eig=eig, ll.0=ll.0, k=k, nTips=nTips, weight=weight, nr=nr, nc=nc, contrast=contrast, nco=nco) # vormals treeP eps <- ( old.ll - newll ) / newll if( (eps<0) || (newll < llcomp) ) return(list(tree=oldtree, logLik=old.ll, c(eps, iter))) oldtree <- tree # vormals treeP if(control$trace>1) cat(old.ll, " -> ", newll, "\n") old.ll <- newll # loli <- parent[1] } if(control$trace>0) cat(start.ll, " -> ", newll, "\n") list(tree=tree, logLik=newll, c(eps, iter)) # vormals treeP } # weight, nr, nc, contrast, nco rein # inv, INV, site, ... raus # wMix, rate last pml.quartet <- function (tree, data, bf = rep(.25, 4), k = 1, rate = 1, g, w, eig, ll.0 = NULL, ind.ll0=NULL, llMix = NULL, wMix = 0, nTips, weight, nr, nc, contrast, nco, ..., site=FALSE) { # k <- as.integer(k) # m = 1 # if(any(g<.gEps)){ # for(i in 1:length(g)){ # if(g[i]<.gEps){ # inv <- inv+w[i] # } # } # w <- w[g>.gEps] # g <- g[g>.gEps] # k <- length(w) # } # if (is.null(INV)) # INV <- Matrix(lli(data, tree), sparse=TRUE) # in C if (is.null(ll.0)){ ll.0 <- numeric(nr) } if(is.null(ind.ll0)){ ind <- which(ll.0>0) } else ind <- ind.ll0 # if(inv>0) # ll.0 <- as.matrix(INV %*% (bf * inv)) # if (wMix > 0) # ll.0 <- ll.0 + llMix # node <- tree$edge[, 1] # edge <- tree$edge[, 2] # root <- as.integer(node[length(node)]) # el <- as.double(tree$edge.length) node <- as.integer(tree$edge[, 1] - nTips - 1L) # min(node)) edge <- as.integer(tree$edge[, 2] - 1L) # contrast = attr(data, "contrast") # nco = as.integer(dim(contrast)[1]) # dlist=data, nr, nc, weight, k ausserhalb definieren # pmlPart einbeziehen siteLik <- .Call("PML4", dlist=data, as.double(tree$edge.length), as.double(w), as.double(g), nr, nc, as.integer(k), eig, as.double(bf), node, edge, nTips, nco, contrast, N=as.integer(length(edge))) # in C if(!is.null(ll.0)){ # ind = which(ll.0>0) siteLik[ind] <- log(exp(siteLik[ind]) + ll.0[ind]) } if(wMix >0) siteLik <- log(exp(siteLik) * (1-wMix) + llMix ) loglik <- sum(weight * siteLik) return(loglik) } index2edge <- function(x, root){ ch <- c(1L,2L,5L,4L,3L) elind <- c(1L,2L,5L,4L,6L) if(x[6L]==root) el <- x[ch] else el <- x[elind] el } pml.nni <- function (tree, data, w, g, eig, bf, ll.0, ll, INV=INV, ...) { k <- length(w) INDEX <- indexNNI3(tree) tmpl <- pml.fit4(tree, data, bf=bf, g=g, w=w, eig=eig, INV=INV, ll.0=ll.0, k=k, ...) nr <- as.integer(attr(data, "nr")) nc <- as.integer(attr(data, "nc")) weight <- as.numeric(attr(data, "weight")) contrast <- attr(data, "contrast") nco <- as.integer(dim(contrast)[1]) contrast2 <- contrast %*% eig[[2]] evi <- (t(eig[[3]]) * bf) nTips <- as.integer(length(tree$tip.label)) m <- dim(INDEX)[1] loglik <- numeric(2*m) edgeMatrix <- matrix(0L, 2*m, 5) anc <- Ancestors(tree, 1:max(tree$edge), "parent") loli <- getRoot(tree) ind1 <- c(1L, 4L, 3L, 2L, 5L) # ind2 <- c(4L, 2L ,3L, 1L, 5L) # for(i in 1:m){ ei <- INDEX[i,] # el0 <- evector[INDEX[i,]] tree0 <- index2tree(INDEX[i, ], tree, nTips+1L) ch <- ei[5] pa <- ei[6] # move up while(pa != loli){ tmpr <- match(loli, INDEX[,5]) treetmp <- index2tree(INDEX[tmpr, ], tree, nTips+1L) tmpl <- pml.quartet(treetmp, data, bf=bf, g=g, w=w, eig=eig, ll.0=ll.0, k=k, nTips=nTips, weight=weight, nr=nr, nc=nc, contrast=contrast, nco=nco) loli <- anc[loli] } llt0 <- pml.quartet(tree0, data, bf=bf, g=g, w=w, eig=eig, ll.0=ll.0, k=k, nTips=nTips, weight=weight, nr=nr, nc=nc, contrast=contrast, nco=nco) # new0 <- optimQuartet(tree0, data, eig=eig, w=w, g=g, bf=bf, rate=rate, ll.0=ll.0, nTips=nTips, # weight=weight, nr=nr, nc=nc, contrast=contrast, nco=nco, # control = list(epsilon = 1e-08, maxit = 3, trace=0)) tree2 <- tree1 <- tree0 tree1$edge[,2] <- tree1$edge[ind1,2] tree1$edge.length <- tree1$edge.length[ind1] tree2$edge[,2] <- tree2$edge[ind2,2] tree2$edge.length <- tree2$edge.length[ind2] new1 <- optimQuartet(tree1, data, eig=eig, w=w, g=g, bf=bf, ll.0=ll.0, nTips=nTips, weight=weight, nr=nr, nc=nc, contrast=contrast, nco=nco, llcomp = ll+1e-8, ...) # new0$logLik+1e-8) new2 <- optimQuartet(tree2, data, eig=eig, w=w, g=g, bf=bf, ll.0=ll.0, nTips=nTips, weight=weight, nr=nr, nc=nc, contrast=contrast, nco=nco, llcomp = ll+1e-8, ...) #new0$logLik+1e-8) loglik[(2*i)-1] <- new1$logLik loglik[(2*i)] <- new2$logLik edgeMatrix[(2*i)-1,] <- new1$tree$edge.length edgeMatrix[(2*i),] <- new2$tree$edge.length # godown or recompute if(any (INDEX[i, c(1,2)]>nTips )) { tree00 <- index2tree2(INDEX[i, ], tree, nTips+1L) tmp3 <- pml.quartet(tree00, data, bf=bf, g=g, w=w, eig=eig, ll.0=ll.0, k=k, nTips=nTips, weight=weight, nr=nr, nc=nc, contrast=contrast, nco=nco) loli <- getRoot(tree00) } else tmp3 <- pml.quartet(tree0, data, bf=bf, g=g, w=w, eig=eig, ll.0=ll.0, k=k, nTips=nTips, weight=weight, nr=nr, nc=nc, contrast=contrast, nco=nco) } swap <- 0 eps0 <- 1e-6 candidates <- loglik > ll + eps0 # cat("candidates", sum(candidates), "\n") INDEX2 <- t(apply(INDEX, 1, index2edge, root=getRoot(tree))) while(any(candidates)){ ind <- which.max(loglik) loglik[ind] <- -Inf if( ind %% 2 ) swap.edge <- c(2,4) else swap.edge <- c(1,4) IND <- index2edge(INDEX[(ind+1) %/% 2,],nTips+1L) treeT <- changeEdge(tree, IND[swap.edge], IND, edgeMatrix[ind,]) test <- pml.fit4(treeT, data, bf = bf, k=k, g=g, w=w, eig=eig, ll.0=ll.0, INV=INV, ...) if(test <= ll + eps0) candidates[ind] <- FALSE if(test > ll + eps0) { ll <- test swap <- swap+1 tree <- treeT indi <- which(rep(colSums(apply(INDEX,1,match,INDEX[(ind+1)%/%2,], nomatch=0))>0,each=2)) candidates[indi] <- FALSE loglik[indi] <- -Inf } } # trees <- vector("list", 2*m) # for(i in 1:length(loglik)){ # ind = i # if( ind %% 2 ) swap.edge = c(2,4) # else swap.edge = c(1,4) # IND = index2edge(INDEX[(ind+1)%/%2,]) # tree2 <- try( changeEdge(tree, IND[swap.edge], IND, edgeMatrix[ind,]) ) # trees[[i]] <- tree2 # } # class(trees) <- "multiPhylo" # trees <- .compressTipLabel(trees) # , all=loglik list(tree=tree, loglik=ll, swap=swap, candidates = candidates) } phangorn/R/RcppExports.R0000644000176200001440000000117513201424001014672 0ustar liggesusers# Generated by using Rcpp::compileAttributes() -> do not edit by hand # Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 threshStateC <- function(x, thresholds) { .Call(`_phangorn_threshStateC`, x, thresholds) } allDescCPP <- function(orig, nTips) { .Call(`_phangorn_allDescCPP`, orig, nTips) } bipartCPP <- function(orig, nTips) { .Call(`_phangorn_bipartCPP`, orig, nTips) } bipCPP <- function(orig, nTips) { .Call(`_phangorn_bipCPP`, orig, nTips) } allChildrenCPP <- function(orig) { .Call(`_phangorn_allChildrenCPP`, orig) } p2dna <- function(xx, eps = 0.999) { .Call(`_phangorn_p2dna`, xx, eps) } phangorn/R/neighborNet.R0000644000176200001440000004725613207147352014700 0ustar liggesusers# computes all n(n-1)/2 cyclic splits cyclicSplits <- function(k, labels=NULL){ k <- as.integer(k) l <- (k-1L) %/% 2L res <- vector("list", k*(k-1L)/2) res[1:k] <- 1L:k ind <- k if(k>3){ fun <- function(x,y){ tmp <- (1L:y)+x tmp %% (k+1L) + tmp %/% (k+1L) } if(k>4){ for(i in 2:l){ res[(ind+1):(ind+k)] <- lapply(0L:(k-1L), fun, i) ind <- ind+k } } if((k%%2L)==0){ m <- k%/%2 res[(ind+1):(ind+m)] <- lapply(0L:(m-1L), fun, m) } } if(is.null(labels)) labels <- (as.character(1:k)) attr(res, 'labels') <- labels attr(res, "cycle") <- 1:k class(res) <- "splits" res } distC <- function(d, CL){ l <- length(CL) res <- matrix(0, l, l) for(i in 1:(l-1)){ for(j in (i+1):l) res[i,j] <- mean.default(d[CL[[i]], CL[[j]]]) } res + t(res) } updateDM <- function(DM, d, CL, j){ l <- length(CL) for(i in 1:l){ DM[i,j] <- DM[j, i] <- mean.default(d[CL[[i]], CL[[j]]]) } DM[j,j] <- 0 DM } Rx <- function(d, x, CL){ lx <- length(x) res <- numeric(lx) lC <- length(CL) for(i in 1:lx){ xi <- x[i] tmp <- 0 for(j in 1:lx){ if(j!=i) tmp <- tmp + d[xi, x[j]] } if(lC>0){ for(j in 1:lC){ tmp <- tmp + mean.default(d[xi, CL[[j]]]) } } res[i] <- tmp } res } reduc <- function(d, x, y, z){ u <- 2/3* d[x, ] + d[y,]/3 v <- 2/3* d[z, ] + d[y,]/3 uv <- (d[x,y] + d[x,z] + d[y,z])/3 d[x, ] <- u d[, x] <- u d[z, ] <- v d[, z] <- v d[y, ] <- 0 d[, y] <- 0 d[x, z] <- d[z, x] <- uv d[x,x] <- d[z,z] <- 0 # diag(d) <- 0 d } # computes ordering getOrderingNN <- function (x) { x <- as.matrix(x) labels <- attr(x, "Labels") if (is.null(labels)) labels <- colnames(x) d <- x #as.matrix(x) l <- dim(d)[1] CL <- vector("list", l) CL[1:l] <- ORD <- 1:l lCL <- length(CL) ord <- CL DM <- d while (lCL>1){ i <- 0 j <- 0 DM <- distC(d, CL) l <- nrow(DM) if(l>2){ r <- rowSums(DM)/(l - 2) tmp <- .C("out", as.double(DM), as.double(r), as.integer(l), as.integer(i), as.integer(j), PACKAGE = "phangorn") e1 <- tmp[[4]] e2 <- tmp[[5]] } else { e1 <- 1 e2 <- 2 } n1 <- length(CL[[e1]]) n2 <- length(CL[[e2]]) if(n1==1 & n2==1){ newCL <- c(CL[[e1]], CL[[e2]]) newOrd <- newCL CL <- c(CL[-c(e1,e2)], list(newCL)) ord <- c(ord[-c(e1,e2)], list(newCL)) lCL <- lCL - 1L } else{ CLtmp <- c(as.list(CL[[e1]]), as.list(CL[[e2]]), CL[-c(e1,e2)]) ltmp <- length(CLtmp) DM2 <- distC(d, CLtmp) if(ltmp>2) rtmp <- rowSums(DM2)/(ltmp - 2) DM2 <- DM2 - outer(rtmp, rtmp, "+") # compute only this TMP <- DM2[1:n1, (n1+1):(n1+n2)] blub <- which.min(TMP) #print("blub") if(n1==2 & n2==1){ if(blub == 2){ newCL <- c(CL[[e1]][1], CL[[e2]]) newOrd <- c(ord[[e1]], ord[[e2]]) d <- reduc(d, CL[[e1]][1], CL[[e1]][2], CL[[e2]]) } else{ newCL <- c(CL[[e2]], CL[[e1]][2]) newOrd <- c(ord[[e2]], ord[[e1]]) d <- reduc(d, CL[[e2]], CL[[e1]][1], CL[[e1]][2]) } } if(n1==1 & n2==2){ if(blub==1){ newCL <- c(CL[[e1]], CL[[e2]][2]) newOrd <- c(ord[[e1]], ord[[e2]]) d <- reduc(d, CL[[e1]], CL[[e2]][1], CL[[e2]][2]) } else{ newCL <- c(CL[[e2]][1], CL[[e1]]) newOrd <- c(ord[[e2]], ord[[e1]]) d <- reduc(d, CL[[e2]][1], CL[[e2]][2], CL[[e1]]) } } if(n1==2 & n2==2){ if(blub==1){ newCL <- c(CL[[e1]][2], CL[[e2]][2]) newOrd <- c(rev(ord[[e1]]), ord[[e2]]) d <- reduc(d, CL[[e1]][2], CL[[e1]][1], CL[[e2]][1]) d <- reduc(d, CL[[e1]][2], CL[[e2]][1], CL[[e2]][2]) } if(blub==2){ newCL <- c(CL[[e1]][1], CL[[e2]][2]) newOrd <- c(ord[[e1]], ord[[e2]]) d <- reduc(d, CL[[e1]][1], CL[[e1]][2], CL[[e2]][1]) d <- reduc(d, CL[[e1]][1], CL[[e2]][1], CL[[e2]][2]) } if(blub==3){ newCL <- c(CL[[e1]][2], CL[[e2]][1]) newOrd <- c(rev(ord[[e1]]), rev(ord[[e2]])) d <- reduc(d, CL[[e1]][2], CL[[e1]][1], CL[[e2]][2]) d <- reduc(d, CL[[e1]][2], CL[[e2]][2], CL[[e2]][1]) } if(blub==4){ newCL <- c(CL[[e1]][1], CL[[e2]][1]) newOrd <- c(ord[[e1]], rev(ord[[e2]])) d <- reduc(d, CL[[e1]][1], CL[[e1]][2], CL[[e2]][2]) d <- reduc(d, CL[[e1]][1], CL[[e2]][2], CL[[e2]][1]) } } CL <- c(CL[-c(e1,e2)], list(newCL)) ord <- c(ord[-c(e1,e2)], list(newOrd)) lCL <- lCL - 1L } } newOrd } # computes ordering O(n^2) statt O(n^3) !!! # needs debugging getOrderingNN2 <- function (x) { x <- as.matrix(x) labels <- attr(x, "Labels") if (is.null(labels)) labels <- colnames(x) d <- x #as.matrix(x) l <- dim(d)[1] CL <- vector("list", l) CL[1:l] <- 1L:l lCL <- length(CL) ord <- CL DM <- d z <- 0 #browser() while (lCL>1){ i <- 0 j <- 0 # DM <- distC(d, CL) z <- z+1 l <- nrow(DM) if(l>2){ r <- rowSums(DM)/(l - 2) tmp <- .C("out", as.double(DM), as.double(r), as.integer(l), as.integer(i), as.integer(j), PACKAGE = "phangorn") e1 <- tmp[[4]] e2 <- tmp[[5]] } else { e1 <- 1 e2 <- 2 } n1 <- length(CL[[e1]]) n2 <- length(CL[[e2]]) if(n1==1 & n2==1){ newCL <- c(CL[[e1]], CL[[e2]]) newOrd <- newCL # CL2 <- CL # DM_1 <- distC2(d, CL2, e1, e2) CL[[e1]] <- newCL DM <- updateDM(DM, d, CL, e1) DM <- DM[-e2, -e2, drop=FALSE] CL <- CL[-e2] # CL <- c(CL[-c(e1,e2)], list(newCL)) #browser() ord[[e1]] <- newCL ord <- ord[-e2] # ord <- c(ord[-c(e1,e2)], list(newCL)) lCL <- lCL - 1L } else{ CLtmp <- c(as.list(CL[[e1]]), as.list(CL[[e2]]), CL[-c(e1,e2)]) ltmp <- length(CLtmp) # DM2 <- distC(d, CLtmp) # z=z+1 CLtmp2 <- c(CL[[e1]], CL[[e2]]) rtmp2 <- Rx(d, CLtmp2, CL[-c(e1,e2)]) if(ltmp>2) rtmp2 <- rtmp2/(ltmp - 2) DM3 <- d[CLtmp2, CLtmp2] - outer(rtmp2, rtmp2, "+") # if(ltmp>2) rtmp <- rowSums(DM2)/(ltmp - 2) # DM2 <- DM2 - outer(rtmp, rtmp, "+") # compute only this # TMP <- DM2[1:n1, (n1+1):(n1+n2)] TMP2 <- DM3[1:n1, (n1+1):(n1+n2)] # blub <- which.min(TMP) blub <- which.min(TMP2) if(n1==2 & n2==1){ if(blub == 2){ newCL <- c(CL[[e1]][1], CL[[e2]]) newOrd <- c(ord[[e1]], ord[[e2]]) d <- reduc(d, CL[[e1]][1], CL[[e1]][2], CL[[e2]]) } else{ newCL <- c(CL[[e2]], CL[[e1]][2]) newOrd <- c(ord[[e2]], ord[[e1]]) d <- reduc(d, CL[[e2]], CL[[e1]][1], CL[[e1]][2]) } } if(n1==1 & n2==2){ if(blub==1){ newCL <- c(CL[[e1]], CL[[e2]][2]) newOrd <- c(ord[[e1]], ord[[e2]]) d <- reduc(d, CL[[e1]], CL[[e2]][1], CL[[e2]][2]) } else{ newCL <- c(CL[[e2]][1], CL[[e1]]) newOrd <- c(ord[[e2]], ord[[e1]]) d <- reduc(d, CL[[e2]][1], CL[[e2]][2], CL[[e1]]) } } if(n1==2 & n2==2){ if(blub==1){ newCL <- c(CL[[e1]][2], CL[[e2]][2]) newOrd <- c(rev(ord[[e1]]), ord[[e2]]) d <- reduc(d, CL[[e1]][2], CL[[e1]][1], CL[[e2]][1]) d <- reduc(d, CL[[e1]][2], CL[[e2]][1], CL[[e2]][2]) } if(blub==2){ newCL <- c(CL[[e1]][1], CL[[e2]][2]) newOrd <- c(ord[[e1]], ord[[e2]]) d <- reduc(d, CL[[e1]][1], CL[[e1]][2], CL[[e2]][1]) d <- reduc(d, CL[[e1]][1], CL[[e2]][1], CL[[e2]][2]) } if(blub==3){ newCL <- c(CL[[e1]][2], CL[[e2]][1]) newOrd <- c(rev(ord[[e1]]), rev(ord[[e2]])) d <- reduc(d, CL[[e1]][2], CL[[e1]][1], CL[[e2]][2]) d <- reduc(d, CL[[e1]][2], CL[[e2]][2], CL[[e2]][1]) } if(blub==4){ newCL <- c(CL[[e1]][1], CL[[e2]][1]) newOrd <- c(ord[[e1]], rev(ord[[e2]])) d <- reduc(d, CL[[e1]][1], CL[[e1]][2], CL[[e2]][2]) d <- reduc(d, CL[[e1]][1], CL[[e2]][2], CL[[e2]][1]) } } # CL <- c(CL[-c(e1,e2)], list(newCL)) # ord <- c(ord[-c(e1,e2)], list(newOrd)) # browser() ord[[e1]] <- newOrd ord <- ord[-e2] CL[[e1]] <- newCL DM <- updateDM(DM, d, CL, e1) DM <- DM[-e2, -e2, drop=FALSE] CL <- CL[-e2] lCL <- lCL - 1L } } # print(z) # browser() newOrd } #' Computes a neighborNet from a distance matrix #' #' Computes a neighborNet, i.e. an object of class \code{networx} from a #' distance matrix. #' #' \code{neighborNet} is still experimental. The cyclic ordering sometimes #' differ from the SplitsTree implementation, the \emph{ord} argument can be #' used to enforce a certain circular ordering. #' #' @param x a distance matrix. #' @param ord a circular ordering. #' @return \code{neighborNet} returns an object of class networx. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{splitsNetwork}}, \code{\link{consensusNet}}, #' \code{\link{plot.networx}}, \code{\link{lento}}, #' \code{\link{cophenetic.networx}}, \code{\link{distanceHadamard}} #' @references Bryant, D. & Moulton, V. (2004) Neighbor-Net: An Agglomerative #' Method for the Construction of Phylogenetic Networks. \emph{Molecular #' Biology and Evolution}, 2004, \bold{21}, 255-265 #' @keywords hplot #' @examples #' #' data(yeast) #' dm <- dist.ml(yeast) #' nnet <- neighborNet(dm) #' plot(nnet, "2D") #' #' @export neighborNet neighborNet <- function(x, ord=NULL){ x <- as.matrix(x) labels <- attr(x, "Labels")[[1]] if (is.null(labels)) labels <- colnames(x) l <- length(labels) #browser() if(is.null(ord))ord <- getOrderingNN(x) spl <- cyclicSplits(l, labels[ord]) spl <- nnls.splits(spl, x) # nnls.split mit nnls statt quadprog attr(spl, "cycle") <- 1:l as.networx(spl) } getOrderingNN4 <- function (x, splits=TRUE) { x <- as.matrix(x) labels <- attr(x, "Labels") if (is.null(labels)) labels <- colnames(x) d <- x #as.matrix(x) l <- dim(d)[1] CL <- vector("list", l) CL[1:l] <- 1L:l lCL <- length(CL) ord <- CL res <- vector("list", min(6*l, choose(l, 2))) res[1:l] <- 1L:l nres <- l DM <- d z <- 0 #browser() while (lCL>1){ i <- 0 j <- 0 # DM <- distC(d, CL) z <- z+1 l <- nrow(DM) if(l>2){ r <- rowSums(DM)/(l - 2) tmp <- .C("out", as.double(DM), as.double(r), as.integer(l), as.integer(i), as.integer(j), PACKAGE = "phangorn") e1 <- tmp[[4]] e2 <- tmp[[5]] } else { e1 <- 1 e2 <- 2 } n1 <- length(CL[[e1]]) n2 <- length(CL[[e2]]) if(n1==1 & n2==1){ newCL <- c(CL[[e1]], CL[[e2]]) newOrd <- newCL CL[[e1]] <- newCL DM <- updateDM(DM, d, CL, e1) DM <- DM[-e2, -e2, drop=FALSE] CL <- CL[-e2] ord[[e1]] <- newCL ord <- ord[-e2] nres <- nres+1L res[[nres]] <- sort(ord[[e1]]) lCL <- lCL - 1L } else{ CLtmp <- c(as.list(CL[[e1]]), as.list(CL[[e2]]), CL[-c(e1,e2)]) ltmp <- length(CLtmp) # DM2 <- distC(d, CLtmp) # z=z+1 CLtmp2 <- c(CL[[e1]], CL[[e2]]) rtmp2 <- Rx(d, CLtmp2, CL[-c(e1,e2)]) if(ltmp>2) rtmp2 <- rtmp2/(ltmp - 2) DM3 <- d[CLtmp2, CLtmp2] - outer(rtmp2, rtmp2, "+") # if(ltmp>2) rtmp <- rowSums(DM2)/(ltmp - 2) # DM2 <- DM2 - outer(rtmp, rtmp, "+") # compute only this # TMP <- DM2[1:n1, (n1+1):(n1+n2)] TMP2 <- DM3[1:n1, (n1+1):(n1+n2)] # blub <- which.min(TMP) blub <- which.min(TMP2) if(n1==2 & n2==1){ if(blub == 2){ newCL <- c(CL[[e1]][1], CL[[e2]]) ## ?? newOrd <- c(ord[[e1]], ord[[e2]]) ## ?? d <- reduc(d, CL[[e1]][1], CL[[e1]][2], CL[[e2]]) nres <- nres+1L res[[nres]] <- sort(newOrd) # nres <- nres+1L # res[[nres]] <- sort(c(newCL, CL[[e1]][2])) } else{ newCL <- c(CL[[e2]], CL[[e1]][2]) ## ?? newOrd <- c(ord[[e2]], ord[[e1]]) ## ?? d <- reduc(d, CL[[e2]], CL[[e1]][1], CL[[e1]][2]) nres <- nres+1L res[[nres]] <- sort(newOrd) # nres <- nres+1L # res[[nres]] <- sort(c(newCL, CL[[e1]][1])) } } if(n1==1 & n2==2){ if(blub==1){ newCL <- c(CL[[e1]], CL[[e2]][2]) newOrd <- c(ord[[e1]], ord[[e2]]) d <- reduc(d, CL[[e1]], CL[[e2]][1], CL[[e2]][2]) nres <- nres+1L res[[nres]] <- sort(newOrd) # nres <- nres+1L # res[[nres]] <- sort(c(newCL, CL[[e2]][1])) } else{ newCL <- c(CL[[e2]][1], CL[[e1]]) newOrd <- c(ord[[e2]], ord[[e1]]) d <- reduc(d, CL[[e2]][1], CL[[e2]][2], CL[[e1]]) nres <- nres+1L res[[nres]] <- sort(newOrd) # nres <- nres+1L # res[[nres]] <- sort(c(newCL, CL[[e2]][2])) } } if(n1==2 & n2==2){ if(blub==1){ newCL <- c(CL[[e1]][2], CL[[e2]][2]) newOrd <- c(rev(ord[[e1]]), ord[[e2]]) d <- reduc(d, CL[[e1]][2], CL[[e1]][1], CL[[e2]][1]) d <- reduc(d, CL[[e1]][2], CL[[e2]][1], CL[[e2]][2]) nres <- nres+1L res[[nres]] <- sort(newOrd) # nres <- nres+1L # res[[nres]] <- sort(c(newCL, CL[[e1]][1])) # nres <- nres+1L # res[[nres]] <- sort(c(newCL, CL[[e2]][1])) # nres <- nres+1L # res[[nres]] <- sort(c(newCL, CL[[e1]][1], CL[[e2]][1])) } if(blub==2){ newCL <- c(CL[[e1]][1], CL[[e2]][2]) newOrd <- c(ord[[e1]], ord[[e2]]) d <- reduc(d, CL[[e1]][1], CL[[e1]][2], CL[[e2]][1]) d <- reduc(d, CL[[e1]][1], CL[[e2]][1], CL[[e2]][2]) nres <- nres+1L res[[nres]] <- sort(newOrd) # nres <- nres+1L # res[[nres]] <- sort(c(newCL, CL[[e1]][2])) # nres <- nres+1L # res[[nres]] <- sort(c(newCL, CL[[e2]][1])) # nres <- nres+1L # res[[nres]] <- sort(c(newCL, CL[[e1]][2], CL[[e2]][1])) } if(blub==3){ newCL <- c(CL[[e1]][2], CL[[e2]][1]) newOrd <- c(rev(ord[[e1]]), rev(ord[[e2]])) d <- reduc(d, CL[[e1]][2], CL[[e1]][1], CL[[e2]][2]) d <- reduc(d, CL[[e1]][2], CL[[e2]][2], CL[[e2]][1]) nres <- nres+1L res[[nres]] <- sort(newOrd) # nres <- nres+1L # res[[nres]] <- sort(c(newCL, CL[[e1]][1])) # nres <- nres+1L # res[[nres]] <- sort(c(newCL, CL[[e2]][2])) # nres <- nres+1L # res[[nres]] <- sort(c(newCL, CL[[e1]][1], CL[[e2]][2])) } if(blub==4){ newCL <- c(CL[[e1]][1], CL[[e2]][1]) newOrd <- c(ord[[e1]], rev(ord[[e2]])) d <- reduc(d, CL[[e1]][1], CL[[e1]][2], CL[[e2]][2]) d <- reduc(d, CL[[e1]][1], CL[[e2]][2], CL[[e2]][1]) nres <- nres+1L res[[nres]] <- sort(newOrd) # nres <- nres+1L # res[[nres]] <- sort(c(newCL, CL[[e1]][2])) # nres <- nres+1L # res[[nres]] <- sort(c(newCL, CL[[e2]][2])) # nres <- nres+1L # res[[nres]] <- sort(c(newCL, CL[[e1]][2], CL[[e2]][2])) } } ord[[e1]] <- newOrd ord <- ord[-e2] CL[[e1]] <- newCL DM <- updateDM(DM, d, CL, e1) DM <- DM[-e2, -e2, drop=FALSE] CL <- CL[-e2] lCL <- lCL - 1L } } # print(z) # browser() if(!splits)return(newOrd) res <- res[1L:nres] attr(res, 'labels') <- labels attr(res, "cycle") <- newOrd class(res) <- "splits" res } removeNonsense <- function(obj){ nTips <- length(attr(obj, "label")) l <- lengths(obj) ind <- which((l == 0L) | (l == nTips)) obj <- obj[-ind] } neighborNet2 <- function(x){ x <- as.matrix(x) labels <- attr(x, "Labels")[[1]] if (is.null(labels)) labels <- colnames(x) l <- length(labels) #browser() spl <- getOrderingNN4(x) %>% removeNonsense %>% unique spl <- nnls.splits(spl, x) # nnls.split mit nnls statt quadprog as.networx(spl) } phangorn/R/Densi.R0000644000176200001440000002415713234706233013470 0ustar liggesusersgetAges <- function(x){ fun <- function(x) max(node.depth.edgelength(x)) height <- NULL if(inherits(x,"phylo")) height <- fun(x) if(inherits(x,"multiPhylo")){ if(!is.null(attr(x, "TipLabel"))){ x <- .uncompressTipLabel(x) x <- unclass(x) height <- vapply(x, fun, 0) } else{ x <- unclass(x) height <- vapply(x, fun, 0) } } height } add_tiplabels <- function(xy, tip.label, direction, adj, font, srt=0, cex=1, col=1, label.offset=0){ direction <- match.arg(direction, c("rightwards", "leftwards", "upwards", "downwards")) horizontal <- direction %in% c("rightwards", "leftwards") nTips <- length(tip.label) xx <- rep(1, nrow(xy)) yy <- xy[,2 ] if(direction == "leftwards" | direction == "downwards") xx <- xx*0 if (!horizontal) { tmp <- yy yy <- xx xx <- xy[,1] } MAXSTRING <- max(strwidth(tip.label, cex = cex)) loy <- 0 if(direction == "rightwards") lox <- label.offset + MAXSTRING * 1.05 * adj if(direction == "leftwards") lox <- -label.offset - MAXSTRING * 1.05 * (1 - adj) if (!horizontal) { psr <- par("usr") MAXSTRING <- MAXSTRING * 1.09 * (psr[4] - psr[3])/(psr[2] - psr[1]) loy <- label.offset + MAXSTRING * 1.05 * adj lox <- 0 srt <- 90 + srt if (direction == "downwards") { loy <- -loy srt <- 180 + srt } } text(xx[1:nTips] + lox, yy[1:nTips] + loy, tip.label, adj = adj, font = font, srt = srt, cex = cex, col = col) } #' Plots a densiTree. #' #' An R function to plot trees similar to those produced by DensiTree. #' #' If no consensus tree is provided \code{densiTree} computes a consensus tree, #' and if the input trees have different labels a mrp.supertree as a backbone. #' This should avoid too many unnecessary crossings of edges. #' Trees should be rooted, other wise the output may not be visually pleasing. #' \code{jitter} shifts trees a bit so that they are not exactly on top of each other. #' If \code{amount == 0}, it is ignored. If \code{random=TRUE} the result of the perputation is #' \code{runif(n, -amount, amount)}, otherwise \code{seq(-amount, amount, length=n)}, where \code{n <- length(x)}. #' @param x an object of class \code{multiPhylo}. #' @param type a character string specifying the type of phylogeny, so far #' "cladogram" (default) or "phylogram" are supported. #' @param alpha parameter for semi-transparent colors. #' @param consensus A tree or character vector which is used to define the order #' of the tip labels. #' @param direction a character string specifying the direction of the tree. #' Four values are possible: "rightwards" (the default), "leftwards", "upwards", #' and "downwards". #' @param optim not yet used. #' @param scaleX scale trees to have identical heights. #' @param col a skalar or vector giving the colours used to draw the edges for #' each plotted phylogeny. These are taken to be in the same order than input #' trees x. If fewer colours are given than the number of trees, then the #' colours are recycled. #' @param width edge width. #' @param lty line type. #' @param cex a numeric value giving the factor scaling of the tip labels. #' @param font an integer specifying the type of font for the labels: 1 (plain text), #' 2 (bold), 3 (italic, the default), or 4 (bold italic). #' @param tip.color color of the tip labels. #' @param adj a numeric specifying the justification of the text strings of the #' labels: 0 (left-justification), 0.5 (centering), or 1 (right-justification). #' @param srt a numeric giving how much the labels are rotated in degrees. #' @param underscore a logical specifying whether the underscores in tip labels #' should be written as spaces (the default) or left as are (if TRUE). #' @param label.offset a numeric giving the space between the nodes and the tips of the #' phylogeny and their corresponding labels. #' @param scale.bar a logical specifying whether add scale.bar to the plot. #' @param jitter allows to shift treees. a list with two arguments: the amount of #' jitter and random or equally spaced (see details below) #' @param \dots further arguments to be passed to plot. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{plot.phylo}}, \code{\link{plot.networx}}, \code{\link{jitter}} #' @references densiTree is inspired from the great #' \href{https://www.cs.auckland.ac.nz/~remco/DensiTree}{DensiTree} program of Remco #' Bouckaert. #' #' Remco R. Bouckaert (2010) DensiTree: making sense of sets of phylogenetic #' trees \emph{Bioinformatics}, \bold{26 (10)}, 1372-1373. #' @keywords plot #' @examples #' #' data(Laurasiatherian) #' set.seed(1) #' bs <- bootstrap.phyDat(Laurasiatherian, FUN = #' function(x) upgma(dist.hamming(x)), bs=25) #' # cladogram nice to show topological differences #' densiTree(bs, type="cladogram", col="blue") #' densiTree(bs, type="phylogram", col="green", direction="downwards", width=2) #' # plot five trees slightly shifted, no transparent color #' densiTree(bs[1:5], type="phylogram", col=1:5, width=2, jitter= #' list(amount=.3, random=FALSE), alpha=1) #' \dontrun{ #' # phylograms are nice to show different age estimates #' require(PhyloOrchard) #' data(BinindaEmondsEtAl2007) #' BinindaEmondsEtAl2007 <- .compressTipLabel(BinindaEmondsEtAl2007) #' densiTree(BinindaEmondsEtAl2007, type="phylogram", col="red") #' } #' #' #' @export densiTree densiTree <- function(x, type="cladogram", alpha=1/length(x), consensus=NULL, direction="rightwards", optim=FALSE, scaleX=FALSE, col=1, width=1, lty=1, cex=.8, font=3, tip.color=1, adj=0, srt=0, underscore = FALSE, label.offset=0, scale.bar=TRUE, jitter=list(amount=0, random=TRUE), ...) { if(!inherits(x,"multiPhylo"))stop("x must be of class multiPhylo") if(is.character(consensus)){ consensus <- stree(length(consensus), tip.label = consensus) consensus$edge.length <- rep(1.0, nrow(consensus$edge)) } if(is.null(consensus)){ # unroot(midpoint(superTree(x))) consensus <- tryCatch(consensus(x, p=.5), error = function(e)unroot(midpoint(superTree(x)))) } if(inherits(consensus,"multiPhylo")) consensus <- consensus[[1]] sort_tips <- function(x){ x <- reorder(x) nTip <- as.integer(length(x$tip.label)) e2 <- x$edge[,2] x$tip.label <- x$tip.label[e2[e2<=nTip]] x$edge[e2<=nTip,2] <- as.integer(1L:nTip) x } type <- match.arg(type, c("phylogram", "cladogram")) direction <- match.arg(direction, c("rightwards", "leftwards", "upwards", "downwards")) horizontal <- direction %in% c("rightwards", "leftwards") consensus <- reorder(consensus) nTip <- as.integer(length(consensus$tip.label)) # e2 <- consensus$edge[,2] consensus <- sort_tips(consensus) # consensus$tip.label <- consensus$tip.label[e2[e2<=nTip]] # consensus$edge[e2<=nTip,2] <- as.integer(1L:nTip) consensus <- reorder(consensus, "postorder") maxBT <- max(getAges(x)) if(scaleX) maxBT <- 1.0 label <- rev(pretty(c(maxBT,0))) maxBT <- max(label) xy <- plotPhyloCoor(consensus, direction=direction, ...) yy <- xy[,2] plot.new() tl <- which.max(nchar(consensus$tip.label)) sw <- strwidth(consensus$tip.label[tl],cex=cex) * 1.1 if(direction=="rightwards"){ plot.window(xlim=c(0, 1.0+sw), ylim=c(0, nTip+1)) if(scale.bar) axis(side=1,at=seq(0,1.0, length.out=length(label)), labels=label) #text(x=rep(1.0,Ntip(consensus)),y=xy[1:nTip, 2],labels=consensus$tip.label,pos=4,cex=cex, font=font) } if(direction=="leftwards"){ plot.window(xlim=c(0-sw, 1.0), ylim=c(0, nTip+1)) if(scale.bar) axis(side=1,at=seq(0,1.0, length.out=length(label)), labels=rev(label)) #text(x=rep(0,Ntip(consensus)),y=xy[1:nTip, 2],labels=consensus$tip.label,pos=2,cex=cex, font=font) } if(direction=="downwards"){ plot.window(xlim=c(0, nTip+1), ylim=c(0-sw, 1.0)) if(scale.bar) axis(side=2,at=seq(0,1.0, length.out=length(label)), labels=rev(label)) #text(x=xy[1:nTip,1],y=rep(0,Ntip(consensus)),labels=consensus$tip.label,pos=1,cex=cex, font=font, srt=90, adj=1) } if(direction=="upwards"){ plot.window(xlim=c(0, nTip+1), ylim=c(0, 1.0+sw)) if(scale.bar) axis(side=2,at=seq(0,1.0, length.out=length(label)), labels=label) #text(x=xy[1:nTip,1],y=rep(1.0,Ntip(consensus)),labels=consensus$tip.label,pos=3,cex=cex, font=font, srt=90) } tip_labels <- consensus$tip.label if (is.expression(consensus$tip.label)) underscore <- TRUE if (!underscore) tip_labels <- gsub("_", " ", tip_labels) # consensus$tip.label <- gsub("_", " ", consensus$tip.label) add_tiplabels(xy, tip_labels, direction, adj=adj, font=font, srt=srt, cex=cex, col=tip.color, label.offset=label.offset) col <- rep(col, length.out = length(x)) tiporder <- 1:nTip names(tiporder) <- consensus$tip.label if(jitter$amount>0){ if(jitter$random) jit <- runif(length(x), -jitter$amount, jitter$amount) else jit <- seq(-jitter$amount, jitter$amount, length=length(x)) } for (treeindex in seq_along(x)) { tmp <- reorder(x[[treeindex]]) tmp <- sort_tips(tmp) # if(!compressed) tiporder <- match(tmp$tip.label, consensus$tip.label) xy <- plotPhyloCoor(tmp, tip.height=tiporder, direction=direction, ...) xx <- xy[,1] yy <- xy[,2] if(horizontal){ if(scaleX) xx <- xx/max(xx) else xx <- xx/maxBT if(direction=="rightwards") xx <- xx + (1.0 - max(xx)) if(jitter$amount>0) yy <- yy + jit[treeindex] } else{ if(scaleX) yy <- yy/max(yy) else yy <- yy/maxBT if(direction=="upwards")yy <- yy + (1.0 - max(yy)) if(jitter$amount>0) xx <- xx + jit[treeindex] } e1 <- tmp$edge[,1] if(type=="cladogram") cladogram.plot(tmp$edge, xx, yy, edge.color= adjustcolor(col[treeindex], alpha.f=alpha), edge.width=width, edge.lty=lty) if(type=="phylogram"){ Ntip <- min(e1)-1L Nnode <- tmp$Nnode phylogram.plot(tmp$edge, Ntip, Nnode, xx, yy, horizontal, edge.color= adjustcolor(col[treeindex], alpha.f=alpha), edge.width=width, edge.lty=lty) } } } phangorn/R/networx.R0000644000176200001440000012553113234123002014115 0ustar liggesusers#' Phylogenetic Network #' #' \code{splitsNetwork} estimates weights for a splits graph from a distance #' matrix. #' #' \code{splitsNetwork} fits non-negative least-squares phylogenetic networks #' using L1 (LASSO), L2(ridge regression) constraints. The function minimizes #' the penalized least squares #' \deqn{\beta = min \sum(dm - X\beta)^2 + \lambda \|\beta \|^2_2 }{ beta = sum(dm - X*beta)^2 + lambda |beta|^2_2 } #' with respect to \deqn{\|\beta \|_1 <= \gamma, \beta >= 0}{ |beta|_1 = gamma, beta >= 0} #' where \eqn{X} is a design matrix constructed with \code{designSplits}. #' External edges are fitted without L1 or L2 constraints. #' #' @param dm A distance matrix. #' @param splits a splits object, containing all splits to consider, otherwise #' all possible splits are used #' @param gamma penalty value for the L1 constraint. #' @param lambda penalty value for the L2 constraint. #' @param weight a vector of weights. #' @return \code{splitsNetwork} returns a splits object with a matrix added. #' The first column contains the indices of the splits, the second column an #' unconstrained fit without penalty terms and the third column the constrained #' fit. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link[phangorn]{distanceHadamard}}, #' \code{\link[phangorn]{designTree}} \code{\link[phangorn]{consensusNet}}, #' \code{\link[phangorn]{plot.networx}} #' @references Efron, Hastie, Johnstone and Tibshirani (2004) Least Angle #' Regression (with discussion) \emph{Annals of Statistics} \bold{32(2)}, 407--499 #' #' K. P. Schliep (2009). Some Applications of statistical phylogenetics (PhD #' Thesis) #' @keywords cluster #' @examples #' #' data(yeast) #' dm <- dist.ml(yeast) #' fit <- splitsNetwork(dm) #' net <- as.networx(fit) #' plot(net, "2D") #' write.nexus.splits(fit) #' #' @export splitsNetwork splitsNetwork <- function(dm, splits=NULL, gamma=.1, lambda=1e-6, weight=NULL){ dm <- as.matrix(dm) k <- dim(dm)[1] if(!is.null(splits)){ # tmp = which(sapply(splits, length)==k) tmp <- which(lengths(splits)==k) splits <- splits[-tmp] lab <- attr(splits, "labels") dm <- dm[lab, lab] } if(is.null(splits)){ X2 <- designAll(k, TRUE) X <- X2[[1]] } else X <- as.matrix(splits2design(splits)) y <- dm[lower.tri(dm)] if(is.null(splits))ind <- c(2^(0:(k-2)),2^(k-1)-1) else ind <- which(lengths(splits)==1) # else ind = which(sapply(splits, length)==1) # y2 = lm(y~X[,ind]-1)$res n <- dim(X)[2] ridge <- lambda * diag(n) ridge[ind,ind] <- 0 if(!is.null(weight)) Dmat <- crossprod(X * sqrt(weight)) + ridge else Dmat <- crossprod(X) + ridge if(!is.null(weight)) dvec <- crossprod(X * sqrt(weight),y * sqrt(weight)) else dvec <- crossprod(X, y) # Dmat <- as.matrix(Dmat) # dvec <- as.vector(dvec) ind1 <- rep(1,n) ind1[ind] <- 0 Amat <- cbind(ind1,diag(n)) bvec <- c(gamma, rep(0,n)) # needs quadprog::solve.QP.compact solution <- quadprog::solve.QP(Dmat,dvec,Amat,bvec=bvec, meq=1)$sol ind2 <- which(solution>1e-8) n2 <- length(ind2) ind3 <- which(duplicated(c(ind2, ind), fromLast = TRUE)[1:n2]) ridge2 <- lambda * diag(n2) ridge2[ind3,ind3] <- 0 if(!is.null(weight)) Dmat <- crossprod(X[, ind2] * sqrt(weight)) + ridge2 else Dmat <- crossprod(X[, ind2]) + ridge2 if(!is.null(weight)) dvec <- crossprod(X[, ind2] * sqrt(weight),y * sqrt(weight)) else dvec <- crossprod(X[, ind2], y) Amat2 <- diag(n2) bvec2 <- rep(0, n2) # needs quadprog::solve.QP.compact # bvec2 not used solution2 <- quadprog::solve.QP(Dmat, dvec, Amat2)$sol RSS1 <- sum((y-X[,ind2]%*%solution[ind2])^2) RSS2 <- sum((y-X[,ind2]%*%solution2)^2) if(is.null(splits)){ splits <- vector("list", length(ind2)) for(i in seq_along(ind2))splits[[i]] <- which(X2[[2]][ind2[i],]==1) } else splits <- splits[ind2] attr(splits, "weights") <- solution[ind2] attr(splits, "unrestricted") <- solution2 attr(splits, "stats") <- c(df=n2, RSS_p = RSS1, RSS_u=RSS2) attr(splits,"labels") <- dimnames(dm)[[1]] class(splits) <- 'splits' return(splits) } #' @rdname as.splits #' @export allSplits <- function(k, labels=NULL){ result <- lapply(1:(2^(k-1)-1),dec2Bin) if(is.null(labels)) labels <- (as.character(1:k)) attr(result, 'labels') <- labels class(result) <- 'splits' result } #' @rdname as.splits #' @export allCircularSplits <- function(k, labels=NULL){ k <- as.integer(k) l <- (k-1L) %/% 2L res <- vector("list", k*(k-1L)/2) res[1:k] <- 1L:k ind <- k if(k>3){ fun <- function(x,y){ tmp <- (1L:y)+x tmp %% (k+1L) + tmp %/% (k+1L) } if(k>4L){ for(i in 2:l){ res[(ind+1):(ind+k)] <- lapply(0L:(k-1L), fun, i) ind <- ind+k } } if((k%%2L)==0){ m <- k%/%2 res[(ind+1):(ind+m)] <- lapply(0L:(m-1L), fun, m) } } if(is.null(labels)) labels <- as.character(1:k) attr(res, 'labels') <- labels attr(res, "cycle") <- 1:k class(res) <- "splits" res } getIndex <- function(left, right, n){ if(n1) # & l X[k,j]){ Vstop <- ord[j-1] ordStop <- j-1 } } fromTo <- ordStart:ordStop if(ordStart>ordStop) fromTo <- c(ordStart:nTips, 1:ordStop) fromTo <- ord[fromTo] # print(fromTo) g <- graph(t(res$edge), directed=FALSE) isChild <- (rsY == (Y %*% X[k,]))[index] sp2 <- NULL sp0 <- NULL for(i in 2:length(fromTo)){ # sptmp <- get.shortest.paths(g, fromTo[i-1], fromTo[i], # output=c("epath"))$epath[[1]] sptmp <- shortest_paths(g, fromTo[i-1], fromTo[i], output=c("epath"))$epath[[1]] sp2 <- c(sp2, sptmp[-c(1, length(sptmp))]) sp0 <- c(sp0, sptmp) } sp0 <- unique(sp0) if(length(sp2)>0){ # blub = which(dm[index[sp2], ind[k]]>0) TMP <- rowSums(dm2[index[sp2], 1:k, drop=FALSE]) blub <- which(TMP>0) sp2 <- sp2[blub] } if(length(sp2)==0){ isChild <- (rsY == (Y %*% X[k,]))[index] sp0 <- which(isChild == TRUE) edge1 <- unique(as.vector(res$edge[sp0,])) edge2 <- as.vector(res$edge[-sp0,]) asdf <- edge1 %in% edge2 sp <- edge1[asdf] } if(length(sp2)>0) sp <- unique(as.vector(t(res$edge[sp2,]))) parent <- res$edge[,1] child <- res$edge[,2] j <- ord[which(X[k,]==1)] anc <- unique(parent[match(j, child)]) maxVert <- max(parent) l <- length(sp) newVert <- (maxVert+1) : (maxVert+l) sp01 <- setdiff(sp0, sp2) for(i in 1:l) res$edge[sp01,][res$edge[sp01,]==sp[i]] <- newVert[i] newindex <- rep(ind[k], l) if(length(sp)>1)newindex <- c(index[sp2], newindex) index <- c(index, newindex) # connect new and old vertices newEdge <- matrix(cbind(sp, newVert), ncol=2) if(length(sp)>1){ # copy edges qwer <- match(as.vector(res$edge[sp2,]), sp) newEdge <- rbind(matrix(newVert[qwer], ncol=2), newEdge) } res$edge <- rbind(res$edge, newEdge) res$Nnode <- max(res$edge) - nTips res$splitIndex <- index res$edge.length <- rep(1, nrow(res$edge)) class(res) <- c("networx", "phylo") attr(res, "order") <- NULL } res$edge.length <- weight[index] # ausserhalb res$Nnode <- max(res$edge) - nTips res$splitIndex <- index # attr(res, "splits") = x res$splits <- x class(res) <- c("networx", "phylo") attr(res, "order") <- NULL res } #' Phylogenetic networks #' #' \code{as.networx} convert \code{splits} objects into a \code{networx} #' object. And most important there exists a generic \code{plot} function to #' plot phylogenetic network or split graphs. #' #' @details A \code{networx} object hold the information for a phylogenetic #' network and extends the \code{phylo} object. Therefore some generic function #' for \code{phylo} objects will also work for \code{networx} objects. The #' argument \code{planar = TRUE} will create a planar split graph based on a #' cyclic ordering. These objects can be nicely plotted in \code{"2D"}. So far #' not all parameters behave the same on the the \code{rgl} \code{"3D"} and #' basic graphic \code{"2D"} device. #' #' Often it is easier and safer to supply vectors of graphical parameters for #' splits (e.g. splits.color) than for edges. These overwrite values edge.color. #' #' @aliases networx #' @param x an object of class \code{"splits"} (as.networx) or \code{"networx"} #' (plot) #' @param planar logical whether to produce a planar graph from only cyclic #' splits (may excludes splits). #' @param coord add coordinates of the nodes, allows to reproduce the plot. #' @param type "3D" to plot using rgl or "2D" in the normal device. #' @param use.edge.length a logical indicating whether to use the edge weights #' of the network to draw the branches (the default) or not. #' @param show.tip.label a logical indicating whether to show the tip labels on #' the graph (defaults to \code{TRUE}, i.e. the labels are shown). #' @param show.edge.label a logical indicating whether to show the tip labels #' on the graph. #' @param edge.label an additional vector of edge labels (normally not needed). #' @param show.node.label a logical indicating whether to show the node labels #' (see example). #' @param node.label an additional vector of node labels (normally not needed). #' @param show.nodes a logical indicating whether to show the nodes (see #' example). #' @param tip.color the colors used for the tip labels. #' @param edge.color the colors used to draw edges. #' @param edge.width the width used to draw edges. #' @param edge.lty a vector of line types. #' @param split.color the colors used to draw edges. #' @param split.width the width used to draw edges. #' @param split.lty a vector of line types. #' @param font an integer specifying the type of font for the labels: 1 (plain #' text), 2 (bold), 3 (italic, the default), or 4 (bold italic). #' @param cex a numeric value giving the factor scaling of the labels. #' @param cex.node.label a numeric value giving the factor scaling of the node #' labels. #' @param cex.edge.label a numeric value giving the factor scaling of the edge #' labels. #' @param col.node.label the colors used for the node labels. #' @param col.edge.label the colors used for the edge labels. #' @param font.node.label the font used for the node labels. #' @param font.edge.label the font used for the edge labels. #' @param \dots Further arguments passed to or from other methods. #' @note The internal representation is likely to change. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{consensusNet}}, \code{\link{neighborNet}}, #' \code{\link{splitsNetwork}}, \code{\link{hadamard}}, #' \code{\link{distanceHadamard}}, \code{\link{layout_with_kk}}, #' \code{\link[ape]{evonet}}, \code{\link[ape]{as.igraph}}, #' \code{\link{densiTree}} #' @references Dress, A.W.M. and Huson, D.H. (2004) Constructing Splits Graphs #' \emph{IEEE/ACM Transactions on Computational Biology and Bioinformatics #' (TCBB)}, \bold{1(3)}, 109--115 #' #' Schliep, K., Potts, A. J., Morrison, D. A. and Grimm, G. W. (2017), #' Intertwining phylogenetic trees and networks. \emph{Methods Ecol Evol}. #' \bold{8}, 1212--1220. doi:10.1111/2041-210X.12760 #' @keywords plot #' @examples #' #' set.seed(1) #' tree1 <- rtree(20, rooted=FALSE) #' sp <- as.splits(rNNI(tree1, n=10)) #' net <- as.networx(sp) #' plot(net, "2D") #' \dontrun{ #' # also see example in consensusNet #' example(consensusNet) #' } #' #' @rdname as.networx #' @export as.networx as.networx <- function (x, ...) { if (inherits(x, "networx")) return(x) UseMethod("as.networx") } getOrdering <- function(x){ tree <- as.phylo(x) nTips <- length(tree$tip.label) ord <- reorder(tree)$edge[,2] ord <- ord[ord<=nTips] ind <- which(ord == 1L) if(ind>1) ord <- c(ord[ind:nTips], ord[c(1:(ind-1L))]) ord } ## as.splits.phylo addTrivialSplits <- function(obj){ label <- attr(obj, "label") nTips <- length(label) weight <- attr(obj, "weights") if(is.null(weight)) weight <- rep(1, length(obj)) STree <- stree(nTips, tip.label = attr(obj, "labels")) STree$edge.length <- NULL spRes <- as.splits(STree)[STree$edge[,2]] tmpIndex <- match(spRes, SHORTwise(obj, nTips)) if(any(is.na(tmpIndex))){ l.na <- sum(is.na(tmpIndex)) obj <- c(obj, spRes[is.na(tmpIndex)]) weight <- c(weight, rep(0, l.na)) attr(obj, "weights") <- weight } obj } removeTrivialSplits <- function(obj){ nTips <- length(attr(obj, "label")) l <- lengths(obj) ind <- which((l == 0L) | (l == 1L) | (l == nTips) | (l == (nTips-1L))) obj[-ind] } #' @rdname as.networx #' @method as.networx splits #' @export as.networx.splits <- function(x, planar=FALSE, coord = c("none", "2D", "3D"), ...){ label <- attr(x, "label") x <- addTrivialSplits(x) nTips <- length(label) x <- oneWise(x, nTips) l <- lengths(x) if(any(l==nTips))x <- x[l!=nTips] # get rid of trivial splits l <- lengths(x) weight <- attr(x, "weights") if(is.null(weight)) weight <- rep(1, length(x)) attr(x, "weights") <- weight ext <- sum(l==1 | l==(nTips-1)) if(!is.null(attr(x, "cycle"))){ c.ord <- attr(x, "cycle") } else c.ord <- getOrdering(x) attr(x, "cycle") <- c.ord dm <- as.matrix(compatible2(x)) # which splits are in circular ordering circSplits <- which(countCycles(x, ord=c.ord)==2) if(length(circSplits) == length(x)) planar <- TRUE tmp <- circNetwork(x, c.ord) attr(tmp, "order") <- NULL if(planar){ return(reorder(tmp)) } ll <- lengths(x) # ll <- sapply(x, length) ind <- tmp$splitIndex # match(sp, x) ind2 <- union(ind, which(ll==0)) # which(duplicated(x)) ind2 <- union(ind2, which(ll==nTips)) ord <- order(colSums(dm)) ord <- setdiff(ord, ind2) if(length(ord)>0){ for(i in seq_along(ord)){ tmp <- addEdge(tmp, x, ord[i]) tmp$edge.length <- weight[tmp$splitIndex] tmp$Nnode <- max(tmp$edge) - nTips class(tmp) <- c("networx", "phylo") } } tmp$edge.length <- weight[tmp$splitIndex] tmp$Nnode <- max(tmp$edge) - nTips attr(x, "cycle") <- c.ord # attr(tmp, "splits") = x tmp$splits <- x class(tmp) <- c("networx", "phylo") tmp <- reorder(tmp) coord <- match.arg(coord) vert <- switch(coord, "none" = NULL, "2D" = coords(tmp, dim="2D"), "3D" = coords(tmp, dim="3D")) # attr(tmp, "coords") <- coordinates tmp$plot <- list(vertices=vert) tmp } #' @rdname as.networx #' @method as.networx phylo #' @export as.networx.phylo <- function(x, ...){ spl <- as.splits(x) spl <- spl[x$tree[,2]] x$splitIndex <- 1:nrow(x$edge) # attr(x, "splits") = spl x$splits <- spl class(x) <- c("networx", "phylo") x } #as.igraph.networx <- function(x, directed=FALSE){ # graph(t(x$edge), directed=directed) #} #' Computes a consensusNetwork from a list of trees Computes a \code{networx} #' object from a collection of splits. #' #' Computes a consensusNetwork, i.e. an object of class \code{networx} from a #' list of trees, i.e. an class of class \code{multiPhylo}. Computes a #' \code{networx} object from a collection of splits. #' #' #' @param obj An object of class multiPhylo. #' @param prob the proportion a split has to be present in all trees to be #' represented in the network. #' @param \dots Further arguments passed to or from other methods. #' @return \code{consensusNet} returns an object of class networx. This is #' just an intermediate to plot phylogenetic networks with igraph. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{splitsNetwork}}, \code{\link{neighborNet}}, #' \code{\link{lento}}, \code{\link{distanceHadamard}}, #' \code{\link{plot.networx}}, \code{\link{maxCladeCred}} #' @references Holland B.R., Huber K.T., Moulton V., Lockhart P.J. (2004) Using #' consensus networks to visualize contradictory evidence for species #' phylogeny. \emph{Molecular Biology and Evolution}, \bold{21}, 1459--61 #' @keywords hplot #' @examples #' #' data(Laurasiatherian) #' set.seed(1) #' bs <- bootstrap.phyDat(Laurasiatherian, FUN = function(x)nj(dist.hamming(x)), #' bs=50) #' cnet <- consensusNet(bs, .3) #' plot(cnet, "2D") #' \dontrun{ #' library(rgl) #' open3d() #' plot(cnet, show.tip.label=FALSE, show.nodes=TRUE) #' plot(cnet, type = "2D", show.edge.label=TRUE) #' #' tmpfile <- normalizePath(system.file("extdata/trees/RAxML_bootstrap.woodmouse", package="phangorn")) #' trees <- read.tree(tmpfile) #' cnet_woodmouse <- consensusNet(trees, .3) #' plot(cnet_woodmouse, type = "2D", show.edge.label=TRUE) #' } #' #' @export consensusNet consensusNet <- function (obj, prob = 0.3, ...) { l <- length(obj) spl <- as.splits(obj) w <- attr(spl, "weights") ind <- (w/l) > prob spl <- spl[ind] attr(spl, "confidences") <- (w/l)[ind] # attr(spl, "weights") = w[ind] res <- as.networx(spl) res$edge.labels <- as.character(res$edge.length / l * 100) res$edge.labels[res$edge[,2]<=length(res$tip.label)] <- "" reorder(res) } #' @rdname addConfidences #' @export createLabel <- function(x, y, label_y, type="edge", nomatch=NA){ spl_x <- as.splits(x) if(inherits(x, "phylo", TRUE)==1) spl_x <- spl_x[x$edge[,2]] spl_y <- as.splits(y) if(inherits(y, "phylo", TRUE)==1) spl_y <- spl_y[y$edge[,2]] tiplabel <- attr(spl_x, "label") nTips <- length(tiplabel) spl_y <- changeOrder(spl_y, tiplabel) spl_y <- SHORTwise(spl_y, nTips) ind <- match(SHORTwise(spl_x, nTips), spl_y) pos <- which(!is.na(ind)) res <- rep(nomatch, length(spl_x)) if(length(label_y)==1L) label_y <- rep(label_y, length(spl_y)) res[pos] <- label_y[ind[pos]] if(type=="edge" && inherits(x, "networx")){ return(res[x$splitIndex]) } res } #' Compare splits and add support values to an object #' #' Add support values to a \code{splits}, \code{phylo} or \code{networx} #' object. #' #' @param x an object of class \code{splits}, \code{phylo} or \code{networx} #' @param y an object of class \code{splits}, \code{phylo}, \code{multiPhylo} #' or \code{networx} #' @param ... Further arguments passed to or from other methods. #' @param label_y label of y matched on x. Will be usually of #' length(as.splits(x)). #' @param type should labels returned for edges (in \code{networx}) or splits. #' @param nomatch default value if no match between x and y is found. #' @return The object \code{x} with added bootstrap / MCMC support values. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{as.splits}}, \code{\link{as.networx}}, #' \code{\link{RF.dist}}, \code{\link{plot.phylo}} #' @references Schliep, K., Potts, A. J., Morrison, D. A. and Grimm, G. W. (2017), #' Intertwining phylogenetic trees and networks. \emph{Methods Ecol Evol}. #' \bold{8}, 1212--1220. doi:10.1111/2041-210X.12760 #' @keywords cluster #' @examples #' #' data(woodmouse) #' woodmouse <- phyDat(woodmouse) #' tmpfile <- normalizePath(system.file("extdata/trees/RAxML_bootstrap.woodmouse", package="phangorn")) #' boot_trees <- read.tree(tmpfile) #' #' dm <- dist.ml(woodmouse) #' tree <- upgma(dm) #' nnet <- neighborNet(dm) #' #' tree <- addConfidences(tree, boot_trees) #' nnet <- addConfidences(nnet, boot_trees) #' #' plot(tree, show.node.label=TRUE) #' plot(nnet, "2D", show.edge.label=TRUE) #' #' @rdname addConfidences #' @export addConfidences <- function (x, y, ...) UseMethod("addConfidences") # some function to add confidences on splits if trees have different taxa # used in addConfidences.splits addConfidencesMultiPhylo <- function(spl, trees){ fun <- function(spl, intersect_labels){ spl2 <- spl index <- match(attr(spl, "labels"), intersect_labels) attr(spl2, "labels") <- intersect_labels for(i in seq_along(spl2)){ spl2[[i]] <- sort(na.omit(index[spl[[i]]])) } l_spl <- lengths(spl2) l <- length(intersect_labels) ind <- which( (l_spl > 1) & (l_spl < (l-1L)) ) if(length(ind)==0)return(NULL) list(spl=spl2[ind], index=ind) } spl_labels <- attr(spl, "labels") zaehler <- numeric(length(spl)) nenner <- numeric(length(spl)) for(i in seq_along(trees)){ intersect_labels <- intersect(trees[[i]]$tip.label, spl_labels) if(length(intersect_labels) > 3){ tmp <- fun(spl, intersect_labels) if(!is.null(tmp)){ tree_spl <- as.splits(trees[[i]]) if(!identical(intersect_labels, trees[[i]]$tip.label)) tree_spl <- fun(tree_spl, intersect_labels)[[1]] comp <- compatible_2(as.bitsplits(tmp[[1]]), as.bitsplits(tree_spl)) ind <- tmp$index zaehler[ind] <- zaehler[ind] + comp nenner[ind] <- nenner[ind] + 1L } } } confidences <- zaehler / nenner attr(spl, "confidences") <- confidences spl } # y now more general addConfidences.splits <- function(x, y, scaler=1, ...){ if (hasArg(add)) add <- list(...)$add else add <- FALSE tiplabel <- attr(x, "label") nTips <- length(tiplabel) # x = addTrivialSplits(x) if(inherits(y,"phylo")){ ind <- match(tiplabel, y$tip.label) if (any(is.na(ind)) | length(tiplabel) != length(y$tip.label)) stop("trees have different labels") y$tip.label <- y$tip.label[ind] ind2 <- match(seq_along(ind), y$edge[, 2]) y$edge[ind2, 2] <- order(ind) } if(inherits(y, "multiPhylo")){ if(inherits(try(.compressTipLabel(y), TRUE), "try-error")){ res <- addConfidencesMultiPhylo(x, y) return(res) } } # browser() spl <- as.splits(y) spl <- changeOrder(spl, tiplabel) spl <- oneWise(spl, nTips) # ind <- match(SHORTwise(x, nTips), spl) # ind ind <- match(oneWise(x, nTips), spl) # pos <- which(ind > nTips) pos <- which(!is.na(ind)) confidences <- rep(NA_real_, length(x)) #numeric(length(x)) #character confidences[pos] <- attr(spl, "confidences")[ind[pos]] * scaler if(add==TRUE) confidences <- paste(prettyNum(attr(x, "confidences")) , prettyNum(confidences * scaler), sep="/") # y$node.label[ind[pos] - nTips] attr(x, "confidences") <- confidences x } addConfidences.networx <- function(x, y, scaler=1, ...){ spl <- x$splits spl <- addConfidences(spl, y, scaler=scaler, ...) x$splits <- spl x } ## as.splits.phylo addConfidences.phylo <- function(x, y, ...){ # call <- x$call if (hasArg(as.is)) as.is <- list(...)$as.is else as.is <- TRUE nTips <- length(x$tip.label) spl <- as.splits(x) %>% oneWise(nTips=nTips) conf <- attr(addConfidences(spl, y), "confidences") l <- lengths(spl) if(is.character(conf)) conf <- as.numeric(conf) ind <- (l==1L) | (l==(nTips-1L)) | (l==nTips) conf[ind==TRUE] <- NA_real_ nTips <- length(x$tip.label) if(!as.is) conf <- conf * 100 x$node.label <- conf[-c(1:nTips)] x } # returns order of x$edge presenceAbsenceOld <- function(x, y){ X <- as.splits(x) Y <- as.splits(y) labels <- attr(X, "labels") # if(inherits(x,"phylo")) X <- X[x$edge[,2]] # if(inherits(y,"phylo")) Y <- Y[y$edge[,2]] Y <- changeOrder(Y, labels) # orderSplitLabel nTips <- length(labels) X <- oneWise(X, nTips) Y <- oneWise(Y, nTips) res <- match(X, Y) res <- !is.na(res) if(inherits(x, "networx")){ res <- res[x$splitIndex] } if(class(x)[1]=="phylo"){ # res <- res[x$edge[,2]] x$node.label <- res[-c(seq_along(labels))] return(x) } res } #' @rdname addConfidences #' @export presenceAbsence <- function(x,y){ spl <- as.splits(y) l <- length(spl) attr(spl, "confidences") <- rep(1, l) addConfidences(x, y) } reorder.networx <- function (x, order = "cladewise", index.only = FALSE, ...) { order <- match.arg(order, c("cladewise", "postorder")) if (!is.null(attr(x, "order"))) if (attr(x, "order") == order) return(x) g <- graph(t(x$edge)) # if(order == "cladewise") neword <- topological.sort(g, "out") # else neword <- topological.sort(g, "in") if(order == "cladewise") neword <- topo_sort(g, "out") else neword <- topo_sort(g, "in") neworder <- order(match(x$edge[,1], neword)) if(index.only) return(neworder) x$edge <- x$edge[neworder, ] if (!is.null(x$edge.length)) x$edge.length <- x$edge.length[neworder] if (!is.null(x$edge.labels)) x$edge.labels <- x$edge.labels[neworder] if (!is.null(x$splitIndex))x$splitIndex <- x$splitIndex[neworder] attr(x, "order") <- order x } coords <- function(obj, dim="3D"){ # if(is.null(attr(obj,"order")) || (attr(obj, "order")=="postorder") ) # obj = reorder.networx(obj) l <- length(obj$edge.length) ind1 <- which(!duplicated(obj$splitIndex)) n <- max(obj$edge) adj <- spMatrix(n, n, i = obj$edge[,2], j = obj$edge[,1], x = rep(1, length(obj$edge.length))) # Matrix:: g <- graph_from_adjacency_matrix(adj, "undirected") # g = graph.adjacency(adj, "undirected") ########## # add this # g2 <- graph(t(obj$edge), directed=FALSE) # g2 <- set.edge.attribute(g, "weight", value=rep(1, nrow(obj$edge)) if(dim=="3D"){ coord <- layout_nicely(g, dim=3) # coord <- layout_with_kk(g, dim=3) # coord <- layout.kamada.kawai(g, dim=3) k <- matrix(0, max(obj$splitIndex), 3) for(i in ind1){ tmp <- coord[obj$edge[i, 2],] - coord[obj$edge[i, 1],] k[obj$splitIndex[i], ] <- kart2kugel(tmp[1], tmp[2], tmp[3]) } k[obj$splitIndex[ind1],1] <- obj$edge.length[ind1] res <- matrix(0, vcount(g), 3) for(i in 1:l){# unique(obj$splitIndex) j <- obj$edge[i,1] m <- obj$edge[i,2] p <- obj$splitIndex[i] res[m,] <- res[j,] + kugel2kart(k[p,1], k[p,2], k[p,3]) } } else{ coord <- layout_nicely(g, dim=2) # coord <- layout_with_kk(g, dim=2) # coord <- layout.kamada.kawai(g, dim=2) k <- matrix(0, max(obj$splitIndex), 2) for(i in ind1){ tmp <- coord[obj$edge[i, 2],] - coord[obj$edge[i, 1],] k[obj$splitIndex[i], ] <- kart2kreis(tmp[1], tmp[2]) } k[obj$splitIndex[ind1],1] <- obj$edge.length[ind1] res <- matrix(0, vcount(g), 2) for(i in 1:l){# unique(obj$splitIndex) j <- obj$edge[i,1] m <- obj$edge[i,2] p <- obj$splitIndex[i] res[m,] <- res[j,] + kreis2kart(k[p,1], k[p,2]) } } res } kart2kugel <- function(x,y,z){ r <- sqrt(x*x+y*y+z*z) alpha <- atan(sqrt(x*x+y*y) / z) if(z<0) alpha <- alpha+pi beta <- atan(y/x) if(x<0) beta <- beta+pi c(r,alpha,beta) } kart2kreis <- function(x,y){ r <- sqrt(x*x+y*y) alpha <- atan(y/x) if(x<0) alpha <- alpha+pi c(r,alpha) } kreis2kart <- function(r,alpha){ c(r*cos(alpha), r*sin(alpha)) } kugel2kart <- function(r,alpha,beta){ x <- r * sin(alpha) * cos(beta) y <- r * sin(alpha) * sin(beta) z <- r * cos(alpha) c(x,y,z) } edgeLabels <- function(xx,yy,zz=NULL, edge){ XX <- (xx[edge[, 1]] + xx[edge[, 2]])/2 YY <- (yy[edge[, 1]] + yy[edge[, 2]])/2 if(!is.null(zz)){ ZZ <- (zz[edge[, 1]] + zz[edge[, 2]])/2 return(cbind(XX, YY, ZZ)) } cbind(XX, YY) } #' @rdname as.networx #' @method plot networx #' @export plot.networx <- function(x, type="3D", use.edge.length = TRUE, show.tip.label=TRUE, show.edge.label=FALSE, edge.label=NULL, show.node.label = FALSE, node.label=NULL, show.nodes=FALSE, tip.color = "black", edge.color="black", edge.width = 3, edge.lty = 1, split.color=NULL, split.width = NULL, split.lty = NULL, font = 3, cex = par("cex"), cex.node.label=cex, cex.edge.label=cex, col.node.label = tip.color, col.edge.label = tip.color, font.node.label = font, font.edge.label = font, ...){ type <- match.arg(type, c("3D", "2D")) if(use.edge.length==FALSE) x$edge.length[] <- 1 # test # x = reorder(x) nTips <- length(x$tip.label) conf <- attr(x$splits,"confidences") index <- x$splitIndex if(is.null(edge.label) & !is.null(conf)){ conf <- conf[index] if(!is.null(x$translate)) conf[match(x$translate$node, x$edge[,2])]<- "" else conf[x$edge[,2] <= nTips] <- "" edge.label <- conf } if(is.null(node.label))node.label <- as.character(1:max(x$edge)) if(show.tip.label)node.label[1:nTips] <- "" lspl <- max(x$splitIndex) if(!is.null(split.color)){ if(length(split.color)!=lspl) stop("split.color must be same length as splits") else edge.color <- split.color[x$splitIndex] } if(!is.null(split.width)){ if(length(split.width)!=lspl) stop("split.color must be same length as splits") else edge.width <- split.width[x$splitIndex] } if(!is.null(split.lty)){ if(length(split.lty)!=lspl) stop("split.color must be same length as splits") else edge.lty <- split.lty[x$splitIndex] } chk <- FALSE if(type=="3D") chk <- requireNamespace("rgl", quietly = TRUE) if(!chk && type=="3D"){ warning("type='3D' requires the package 'rgl', plotting in '2D' instead!\n") type <- "2D" } # use precomputed vertices when available coord <- NULL if(!is.null(x$.plot)) coord <- x$.plot$vertices if(type=="3D") { if(is.null(coord) || ncol(coord)!=3) coord <- coords(x, dim="3D") plotRGL(coord, x, show.tip.label=show.tip.label, show.edge.label=show.edge.label, edge.label = edge.label, show.node.label = show.node.label, node.label=node.label, show.nodes=show.nodes, tip.color = tip.color, edge.color=edge.color, edge.width = edge.width, font = font, cex = cex, cex.node.label=cex.node.label, cex.edge.label=cex.edge.label, col.node.label = col.node.label, col.edge.label = col.edge.label, font.node.label = font.node.label, font.edge.label = font.edge.label) } else{ if(is.null(coord) || ncol(coord)!=2) coord <- coords(x, dim="2D") plot2D(coord, x, show.tip.label=show.tip.label, show.edge.label=show.edge.label, edge.label = edge.label, show.node.label = show.node.label, node.label=node.label, show.nodes=show.nodes, tip.color = tip.color, edge.color=edge.color, edge.width = edge.width, edge.lty=edge.lty,font = font, cex = cex, cex.node.label=cex.node.label, cex.edge.label=cex.edge.label, col.node.label = col.node.label, col.edge.label = col.edge.label, font.node.label = font.node.label, font.edge.label = font.edge.label, add=FALSE) } x$.plot <- list(vertices = coord, edge.color=edge.color, edge.width=edge.width, edge.lty = edge.lty) assign("last_plot.networx", x, envir = .PlotNetworxEnv) invisible(x) } plotRGL <- function(coords, net, show.tip.label=TRUE, show.edge.label=FALSE, edge.label=NULL, show.node.label=FALSE, node.label=NULL, show.nodes=FALSE, tip.color = "blue", edge.color="grey", edge.width = 3, font = 3, cex = par("cex"), cex.node.label=cex, cex.edge.label=cex, col.node.label=tip.color, col.edge.label=tip.color, font.node.label=font, font.edge.label=font, ...){ # chk <- .check.pkg("rgl") # if(!chk) open3d <- segments3d <- spheres3d <- rgl.texts <- function(...)NULL open3d <- rgl::open3d segments3d <- rgl::segments3d spheres3d <- rgl::spheres3d rgl.texts <- rgl::rgl.texts edge <- net$edge x <- coords[,1] y <- coords[,2] z <- coords[,3] nTips <- length(net$tip.label) segments3d(x[t(edge)],y[t(edge)],z[t(edge)], col=rep(edge.color, each=2), lwd=edge.width) radius <- 0 if(show.nodes){ radius <- sqrt((max(x)-min(x))^2 + (max(y)-min(y))^2 + (max(z)-min(z))^2) / 200 spheres3d(x[1:nTips], y[1:nTips],z[1:nTips], radius=2*radius, color="cyan") spheres3d(x[-c(1:nTips)], y[-c(1:nTips)],z[-c(1:nTips)], radius=radius, color="magenta") } if(show.tip.label){ if(is.null(net$translate)) rgl.texts(x[1:nTips]+2.05*radius,y[1:nTips],z[1:nTips],net$tip.label, color=tip.color, cex=cex, font=font) else rgl.texts(x[net$translate$node]+2.05*radius,y[net$translate$node],z[net$translate$node],net$tip.label, color=tip.color, cex=cex, font=font) } if(show.edge.label){ ec <- edgeLabels(x, y, z, edge) if(is.null(edge.label)) edge.label <- net$splitIndex #else edge.label = net$splitIndex rgl.texts(ec[,1], ec[,2], ec[,3], edge.label, color=col.edge.label, cex=cex.edge.label, font=font.edge.label) } if(show.node.label){ rgl.texts(x, y, z, node.label, color=col.node.label, cex=cex.node.label, font=font.node.label) } } plot2D <- function(coords, net, show.tip.label=TRUE, show.edge.label=FALSE, edge.label=NULL, show.node.label=FALSE, node.label=NULL, tip.color = "blue", edge.color="grey", edge.width = 3, edge.lty=1, font = 3, cex = par("cex"), cex.node.label=cex, cex.edge.label=cex, col.node.label=tip.color, col.edge.label=tip.color, font.node.label=font, font.edge.label=font, add=FALSE, ...){ edge <- net$edge label <- net$tip.label xx <- coords[,1] yy <- coords[,2] nTips <- length(label) # cex=1 xlim <- range(xx) ylim <- range(yy) if(show.tip.label){ offset <- max(nchar(label)) * 0.018 * cex * diff(xlim) xlim <- c(xlim[1]-offset, xlim[2]+offset) ylim <- c(ylim[1]-0.03 * cex * diff(ylim), ylim[2]+0.03 * cex * diff(ylim)) } if(!add){ plot.new() plot.window(xlim, ylim, asp=1) } cladogram.plot(edge, xx, yy, edge.color, edge.width, edge.lty) if(show.tip.label){ if(is.null(net$translate)) ind <- match(1:nTips, edge[,2]) else ind <- match(net$translate$node, edge[,2]) pos <- rep(4, nTips) XX <- xx[edge[ind, 1]] - xx[edge[ind, 2]] pos[XX>0] <- 2 YY <- yy[edge[ind, 1]] - yy[edge[ind, 2]] pos2 <- rep(3, nTips) pos2[YY>0] <- 1 # needed if tiplabels are not at internal nodes XX[is.na(XX)] <- 0 YY[is.na(YY)] <- 0 pos[abs(YY)>abs(XX)] <- pos2[abs(YY)>abs(XX)] if(is.null(net$translate)) text(xx[1:nTips], yy[1:nTips], labels=label, pos=pos, col=tip.color, cex=cex, font=font) else text(xx[net$translate$node], yy[net$translate$node], labels=label, pos=pos, col=tip.color, cex=cex, font=font) } if(show.edge.label){ ec <- edgeLabels(xx,yy, edge=edge) if(is.null(edge.label))edge.label <- net$splitIndex # show only one edge label em <- apply(ec, 1, function(x)max(abs(x))) si <- net$splitIndex for(i in unique(si)){ tmp <- si==i if(sum(tmp)>1){ w <- which(tmp) wm <- which.max(em[w]) edge.label[w[-wm]] <- "" } } text(ec[,1], ec[,2], labels=edge.label, col=col.edge.label, cex=cex.edge.label, font=font.edge.label) } if(show.node.label){ text(xx, yy, labels=node.label, col=col.node.label, cex=cex.node.label, font=font.node.label) } } closest.edge <- function(x,y,P1,P2){ x1 <- P1[,1] x2 <- P2[,1] y1 <- P1[,2] y2 <- P2[,2] A <- sqrt( (x2-x)^2 + (y2-y)^2 ) # d_BC B <- sqrt( (x1-x)^2 + (y1-y)^2 ) # d_AC C <- sqrt( (x1-x2)^2 + (y1-y2)^2 ) # d_AB # Kosinussatz alpha <- acos( (B^2 + C^2 - A^2 ) / (2 * B * C) ) beta <- acos( (A^2 + C^2 - B^2 ) / (2 * A * C) ) d <- abs( (y2-y1) * x - (x2- x1) * y + x2 * y1 - y2 * x1 ) / sqrt( (y2 - y1)^2 + (x2 - x1)^2) d[alpha>(pi/2)] <- B[alpha>(pi/2)] d[beta>(pi/2)] <- A[beta>(pi/2)] d } closest.node <- function(x, y, P){ x1 <- P[,1] y1 <- P[,2] d <- sqrt( (x1-x)^2 + (y1-y)^2 ) d } #' Identify splits in a network #' #' \code{identify.networx} reads the position of the graphics pointer when the #' mouse button is pressed. It then returns the split belonging to the edge #' closest to the pointer. The network must be plotted beforehand. #' #' @param x an object of class \code{networx} #' @param quiet a logical controlling whether to print a message inviting the #' user to click on the tree. #' @param \dots further arguments to be passed to or from other methods. #' @return \code{identify.networx} returns a splits object. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link[phangorn]{plot.networx}} #' @examples #' \dontrun{ #' data(yeast) #' dm <- dist.ml(yeast) #' nnet <- neighborNet(dm) #' plot(nnet, "2D") #' identify(nnet) # click close to an edge #' } #' @export identify.networx identify.networx <- function (x, quiet = FALSE, ...) { if (!quiet) cat("Click close to a node of the tree...\n") xy <- locator(1) if (is.null(xy)) return(NULL) if(is.null(x$.plot)) lastPP <- get("last_plot.networx", envir = .PlotNetworxEnv) else lastPP <- x$.plot edge <- lastPP$edge vertices <- lastPP$.plot$vertices P1 <- vertices[edge[,1], , drop=FALSE] P2 <- vertices[edge[,2], , drop=FALSE] d <- closest.edge(xy$x, xy$y, P1, P2) split <- lastPP$splitIndex[which.min(d)] lastPP$splits[split] } phangorn/R/delta.score.R0000644000176200001440000000507613201424001014610 0ustar liggesusers################################################################################ # delta.score ################################################################################ # Calculated from mathematical description given in Gray et al. (2010) Phil. # Trans. Roy. Soc. B. # delta.score reference: Holland et al. (2002) Mol. Biol. Evol. ################################################################################ # Calculating Delta and Q-residual scores # internal delta.quartet <- function(quartet,dist.dna) { m1 <- dist.dna[quartet[1],quartet[2]] + dist.dna[quartet[3],quartet[4]] m2 <- dist.dna[quartet[1],quartet[3]] + dist.dna[quartet[2],quartet[4]] m3 <- dist.dna[quartet[1],quartet[4]] + dist.dna[quartet[2],quartet[3]] m <- sort(c(m1,m2,m3),decreasing=TRUE) if((m[1]-m[3])!=0) { ret <- (m[1]-m[2])/(m[1]-m[3]) } else { ret <- 0 } return(ret) } #' Computes the \eqn{\delta} score #' #' Computes the treelikeness #' #' #' @param x an object of class \code{phyDat} #' @param arg Specifies the return value, one of "all", "mean" or "sd" #' @param ... further arguments passed through \code{dist.hamming} #' @return A vector containing the \eqn{\delta} scores. #' @author Alastair Potts and Klaus Schliep #' @seealso \code{\link{dist.hamming}} #' @references BR Holland, KT Huber, A Dress, V Moulton (2002) \eqn{\delta} #' Plots: a tool for analyzing phylogenetic distance data Russell D. Gray, #' David Bryant, Simon J. Greenhill (2010) On the shape and fabric of human #' history \emph{Molecular Biology and Evolution}, \bold{19(12)} 2051--2059 #' #' Russell D. Gray, David Bryant, Simon J. Greenhill (2010) On the shape and #' fabric of human history \emph{Phil. Trans. R. Soc. B}, \bold{365} #' 3923--3933; DOI: 10.1098/rstb.2010.0162 #' @keywords cluster #' @examples #' #' data(yeast) #' hist(delta.score(yeast, "all")) #' #' @export delta.score delta.score <- function(x, arg="mean", ...) { # dist.dna <- as.matrix(dist.dna(dna,"raw")) # dist.dna(dna,"raw") is equivalent to dist.hamming(as.phyDat(dna), exclude="all") dist.dna <- as.matrix(dist.hamming(x, ...)) # Number of quartets # choose(length(names(x)),4) # Create all quartets all.quartets <- t(combn(names(x),4)) delta.values <- apply(all.quartets[,],1,delta.quartet,dist.dna) if (!arg%in%c("all", "mean","sd")) stop("return options are: all, mean, or sd") if (arg=='all') return(delta.values) if (arg=='mean') return(mean(delta.values)) if (arg=='sd') return(sd(delta.values)) } phangorn/R/phyDat.R0000644000176200001440000012227113240405176013652 0ustar liggesusers# # Data structures for ML and MP # fast.table <- function (data) { if(!is.data.frame(data)) data <- as.data.frame(data, stringsAsFactors = FALSE) da <- do.call("paste", c(data, sep = "\r")) ind <- !duplicated(da) levels <- da[ind] cat <- factor(da,levels = levels) nl <- length(levels(cat)) bin <- (as.integer(cat) - 1) pd <- nl bin <- bin[!is.na(bin)] if (length(bin)) bin <- bin + 1 y <- tabulate(bin, pd) result <- list(index = bin, weights = y, data = data[ind,]) result } phyDat.default <- function (data, levels = NULL, return.index = TRUE, contrast = NULL, ambiguity = "?", compress=TRUE, ...) { if (is.matrix(data)) nam <- row.names(data) else nam <- names(data) if(is.null(nam))stop("data object must contain taxa names") if(inherits(data, "character") | inherits(data, "numeric")) data <- as.matrix(data) if (inherits(data,"DNAbin")) data <- as.character(data) if (is.matrix(data)) data <- as.data.frame(t(data), stringsAsFactors = FALSE) # new 4.4.2016 bug fix (reported by Eli Levy Karin) # if (is.vector(data) && !is.list(data))data = as.data.frame(data, stringsAsFactors = FALSE) else data <- as.data.frame(data, stringsAsFactors = FALSE) # data = data.frame(as.matrix(data), stringsAsFactors = FALSE) if(length(data[[1]])==1) compress <- FALSE if(compress){ ddd <- fast.table(data) data <- ddd$data weight <- ddd$weight index <- ddd$index } else{ p <- length(data[[1]]) weight <- rep(1, p) index <- 1:p } q <- length(data) p <- length(data[[1]]) tmp <- vector("list", q) if (!is.null(contrast)) { levels <- colnames(contrast) all.levels <- rownames(contrast) rownames(contrast) <- NULL } else { if (is.null(levels)) stop("Either argument levels or contrast has to be supplied") l <- length(levels) contrast <- diag(l) all.levels <- levels if (!is.null(ambiguity)) { all.levels <- c(all.levels, ambiguity) k <- length(ambiguity) if (k > 0) contrast <- rbind(contrast, matrix(1, k, l)) } } # row.names(data) = as.character(1:p) # data = na.omit(data) # rn = as.numeric(rownames(data)) d <- dim(data) att <- attributes(data) # print(system.time(match(unlist(data), all.levels))) data <- match(unlist(data), all.levels) attr(data, "dim") <- d data <- as.data.frame(data, stringsAsFactors=FALSE) attributes(data) <- att # att = attributes(data) # data = lapply(data, match, all.levels) # avoid unlist # attributes(data) = att row.names(data) <- as.character(1:p) data <- na.omit(data) aaa <- match(index, attr(data, "na.action")) if(!is.null(attr(data, "na.action"))) warning("Found unknown characters (not supplied in levels). Deleted sites with with unknown states.") index <- index[is.na(aaa)] index <- match(index, unique(index)) rn <- as.numeric(rownames(data)) attr(data, "na.action") <- NULL weight <- weight[rn] p <- dim(data)[1] names(data) <- nam attr(data, "row.names") <- NULL attr(data, "weight") <- weight attr(data, "nr") <- p attr(data, "nc") <- length(levels) if (return.index) attr(data, "index") <- index attr(data, "levels") <- levels attr(data, "allLevels") <- all.levels attr(data, "type") <- "USER" attr(data, "contrast") <- contrast class(data) <- "phyDat" data } phyDat.DNA <- function (data, return.index = TRUE) { if (is.matrix(data)) nam <- row.names(data) else nam <- names(data) if (inherits(data,"DNAbin")) data <- as.character(data) if(inherits(data, "character")) data <- as.matrix(data) if (is.matrix(data)) data <- as.data.frame(t(data), stringsAsFactors = FALSE) else data <- as.data.frame(data, stringsAsFactors = FALSE) data <- data.frame(tolower(as.matrix(data)), stringsAsFactors = FALSE) ac <- c("a", "c", "g", "t", "u", "m", "r", "w", "s", "y", "k", "v", "h", "d", "b", "n", "?", "-") AC <- matrix(c(c(1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1), c(0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1), c(0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1), c(0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1)), 18, 4, dimnames = list(NULL, c("a", "c", "g", "t"))) # ddd = fast.table(data) compress <- TRUE if(length(data[[1]])==1) compress <- FALSE if(compress){ ddd <- fast.table(data) data <- ddd$data weight <- ddd$weight index <- ddd$index } else{ p <- length(data[[1]]) weight <- rep(1, p) index <- 1:p } # data = ddd$data # index = ddd$index q <- length(data) p <- length(data[[1]]) d <- dim(data) att <- attributes(data) data <- match(unlist(data), ac) attr(data, "dim") <- d data <- as.data.frame(data, stringsAsFactors=FALSE) attributes(data) <- att row.names(data) <- as.character(1:p) data <- na.omit(data) rn <- as.numeric(rownames(data)) if(!is.null(attr(data, "na.action"))) warning("Found unknown characters. Deleted sites with with unknown states.") aaa <- match(index, attr(data, "na.action")) index <- index[is.na(aaa)] index <- match(index, unique(index)) rn <- as.numeric(rownames(data)) attr(data, "na.action") <- NULL weight <- weight[rn] # weight = ddd$weight[rn] p <- dim(data)[1] names(data) <- nam attr(data, "row.names") <- NULL attr(data, "weight") <- weight attr(data, "nr") <- p attr(data, "nc") <- 4 if (return.index) attr(data, "index") <- index attr(data, "levels") <- c("a", "c", "g", "t") attr(data, "allLevels") <- ac attr(data, "type") <- "DNA" attr(data, "contrast") <- AC class(data) <- "phyDat" data } phyDat.AA <- function (data, return.index = TRUE) { if(is.matrix(data)) nam <- row.names(data) else nam <- names(data) # AAbin if (inherits(data,"AAbin")) data <- as.character(data) if(inherits(data, "character")) data <- as.matrix(data) if (is.matrix(data)) data <- as.data.frame(t(data), stringsAsFactors = FALSE) else data <- as.data.frame(data, stringsAsFactors = FALSE) data <- data.frame(tolower(as.matrix(data)), stringsAsFactors = FALSE) aa <- c("a", "r", "n", "d", "c", "q", "e", "g", "h", "i", "l", "k", "m", "f", "p", "s", "t", "w", "y", "v") aa2 <- c("a", "r", "n", "d", "c", "q", "e", "g", "h", "i", "l", "k", "m", "f", "p", "s", "t", "w", "y", "v", "b", "z", "x", "-", "?") AA <- diag(20) AA <- rbind(AA, matrix(0, 5, 20)) AA[21, 3] <- AA[21, 4] <- 1 # Aspartate or Asparagine AA[22, 6] <- AA[22, 7] <- 1 # AA[23:25, ] <- 1 dimnames(AA) <- list(aa2, aa) # ddd <- fast.table(data) # data <- ddd$data # index <- ddd$index compress <- TRUE if(length(data[[1]])==1) compress <- FALSE if(compress){ ddd <- fast.table(data) data <- ddd$data weight <- ddd$weight index <- ddd$index } else{ p <- length(data[[1]]) weight <- rep(1, p) index <- 1:p } q <- length(data) p <- length(data[[1]]) tmp <- vector("list", q) d <- dim(data) att <- attributes(data) data <- match(unlist(data), aa2) attr(data, "dim") <- d data <- as.data.frame(data, stringsAsFactors=FALSE) attributes(data) <- att row.names(data) <- as.character(1:p) data <- na.omit(data) rn <- as.numeric(rownames(data)) if(!is.null(attr(data, "na.action"))) warning("Found unknown characters. Deleted sites with with unknown states.") aaa <- match(index, attr(data, "na.action")) index <- index[is.na(aaa)] index <- match(index, unique(index)) rn <- as.numeric(rownames(data)) attr(data, "na.action") <- NULL # weight = ddd$weight[rn] weight <- weight[rn] p <- dim(data)[1] names(data) <- nam attr(data, "row.names") <- NULL attr(data, "weight") <- weight attr(data, "nr") <- p attr(data, "nc") <- 20 if (return.index) attr(data, "index") <- index attr(data, "levels") <- aa attr(data, "allLevels") <- aa2 attr(data, "type") <- "AA" attr(data, "contrast") <- AA class(data) <- "phyDat" data } phyDat.codon <- function (data, return.index = TRUE) { if(is.matrix(data)) nam <- row.names(data) else nam <- names(data) if (inherits(data,"DNAbin")) data <- as.character(data) if(inherits(data, "character")) data <- as.matrix(data) if (is.matrix(data)) data <- as.data.frame(t(data), stringsAsFactors = FALSE) else data <- as.data.frame(data, stringsAsFactors = FALSE) data <- data.frame(tolower(as.matrix(data)), stringsAsFactors = FALSE) data[data=="u"] <- "t" splseq <- function (seq, frame = 0) { starts <- seq(from = frame + 1, to = length(seq), by = 3L) sapply(starts, function(x) paste(seq[x:(x + 2L)], collapse="")) } data <- data.frame(lapply(data, splseq)) # ddd = fast.table(data) compress <- TRUE if(nrow(data)==1) compress <- FALSE if(compress){ ddd <- fast.table(data) data <- ddd$data weight <- ddd$weight index <- ddd$index } else{ p <- length(data[[1]]) weight <- rep(1, p) index <- 1:p } codon <- c("aaa", "aac", "aag", "aat", "aca", "acc", "acg", "act", "aga", "agc", "agg", "agt", "ata", "atc", "atg", "att", "caa", "cac", "cag", "cat", "cca", "ccc", "ccg", "cct", "cga", "cgc", "cgg", "cgt", "cta", "ctc", "ctg", "ctt", "gaa", "gac", "gag", "gat", "gca", "gcc", "gcg", "gct", "gga", "ggc", "ggg", "ggt", "gta", "gtc", "gtg", "gtt", "tac", "tat", "tca", "tcc", "tcg", "tct", "tgc", "tgg", "tgt", "tta", "ttc", "ttg", "ttt") # ohne Stopcodons "taa", "tag", "tga", CODON <- diag(61) dimnames(CODON) <- list(codon, codon) # data = ddd$data # index = ddd$index q <- length(data) p <- length(data[[1]]) tmp <- vector("list", q) d <- dim(data) att <- attributes(data) data <- match(unlist(data), codon) attr(data, "dim") <- d data <- as.data.frame(data, stringsAsFactors=FALSE) attributes(data) <- att row.names(data) <- as.character(1:p) data <- na.omit(data) rn <- as.numeric(rownames(data)) if(!is.null(attr(data, "na.action"))) warning("Found unknown characters. Deleted sites with with unknown states.") aaa <- match(index, attr(data, "na.action")) index <- index[is.na(aaa)] index <- match(index, unique(index)) rn <- as.numeric(rownames(data)) attr(data, "na.action") <- NULL # weight = ddd$weight[rn] weight <- weight[rn] p <- dim(data)[1] names(data) <- nam attr(data, "row.names") <- NULL attr(data, "weight") <- weight attr(data, "nr") <- p attr(data, "nc") <- 61 if (return.index) attr(data, "index") <- index attr(data, "levels") <- codon attr(data, "allLevels") <- codon attr(data, "type") <- "CODON" attr(data, "contrast") <- CODON class(data) <- "phyDat" data } #' Conversion among Sequence Formats #' #' These functions transform several DNA formats into the \code{phyDat} format. #' \code{allSitePattern} generates an alignment of all possible site patterns. #' #' If \code{type} "USER" a vector has to be give to \code{levels}. For example #' c("a", "c", "g", "t", "-") would create a data object that can be used in #' phylogenetic analysis with gaps as fifth state. There is a more detailed #' example for specifying "USER" defined data formats in the vignette #' "phangorn-specials". #' #' \code{allSitePattern} returns all possible site patterns and can be useful #' in simulation studies. For further details see the vignette #' phangorn-specials. #' #' \code{write.phyDat} calls the function write.dna or write.nexus.data and #' \code{read.phyDat} calls the function \code{read.dna}, \code{read.aa} or #' \code{read.nexus.data} see for more details over there. #' #' You may import data directly with \code{\link[ape]{read.dna}} or #' \code{\link[ape]{read.nexus.data}} and convert the data to class phyDat. #' #' The generic function \code{c} can be used to to combine sequences and #' \code{unique} to get all unique sequences or unique haplotypes. #' #' \code{acgt2ry} converts a \code{phyDat} object of nucleotides into an binary #' ry-coded dataset. #' #' @aliases #' as.phyDat.character as.phyDat.data.frame as.phyDat.matrix #' as.MultipleAlignment as.MultipleAlignment.phyDat cbind.phyDat c.phyDat #' acgt2ry removeUndeterminedSites phyDat2MultipleAlignment #' @param data An object containing sequences. #' @param x An object containing sequences. #' @param type Type of sequences ("DNA", "AA", "CODON" or "USER"). #' @param levels Level attributes. #' @param return.index If TRUE returns a index of the site patterns. #' @param file A file name. #' @param format File format of the sequence alignment (see details). Several #' popular formats are supported: "phylip", "interleaved", "sequential", #' "clustal", "fasta" or "nexus", or any unambiguous abbreviation of these. #' @param colsep a character used to separate the columns (a single space by #' default). #' @param nbcol a numeric specifying the number of columns per row (-1 by #' default); may be negative implying that the nucleotides are printed on a #' single line. #' @param n Number of sequences. #' @param names Names of sequences. #' @param subset a subset of taxa. #' @param select a subset of characters. #' @param site.pattern select site pattern or sites. #' @param allLevels return original data. #' @param obj as object of class phyDat #' @param freq logical, if 'TRUE', frequencies or counts are returned otherwise #' proportions #' @param all all a logical; if all = TRUE, all counts of bases, ambiguous #' codes, missing data, and alignment gaps are returned as defined in the #' contrast. #' @param drop.unused.levels logical, drop unused levels #' @param incomparables for compatibility with unique. #' @param identical if TRUE (default) sequences have to be identical, if FALSE #' sequences are considered duplicates if distance between sequences is zero #' (happens frequently with ambiguous sites). #' @param ambiguity character for ambiguous character and no contrast is provided. #' @param ... further arguments passed to or from other methods. #' @return The functions return an object of class \code{phyDat}. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{DNAbin}}, \code{\link{as.DNAbin}}, #' \code{\link{read.dna}}, \code{\link{read.aa}}, \code{\link{read.nexus.data}} #' and the chapter 1 in the \code{vignette("phangorn-specials", #' package="phangorn")} and the example of \code{\link{pmlMix}} for the use of #' \code{allSitePattern} #' @keywords cluster #' @examples #' #' data(Laurasiatherian) #' class(Laurasiatherian) #' Laurasiatherian #' baseFreq(Laurasiatherian) #' baseFreq(Laurasiatherian, all=TRUE) #' subset(Laurasiatherian, subset=1:5) #' # transform into old ape format #' LauraChar <- as.character(Laurasiatherian) #' # and back #' Laura <- phyDat(LauraChar) #' all.equal(Laurasiatherian, Laura) #' allSitePattern(5) #' #' @rdname phyDat #' @export phyDat <- function (data, type="DNA", levels=NULL, return.index = TRUE,...) { if (inherits(data,"DNAbin")) type <- "DNA" pt <- match.arg(type, c("DNA", "AA", "CODON", "USER")) if(pt=="DNA") dat <- phyDat.DNA(data, return.index=return.index,...) if(pt=="AA") dat <- phyDat.AA(data, return.index=return.index, ...) if(pt=="CODON") dat <- phyDat.codon(data, return.index=return.index, ...) if(pt=="USER") dat <- phyDat.default(data, levels = levels, return.index=return.index, ...) dat } #' @rdname phyDat #' @export dna2codon <- function(x){ if(!inherits(x, "phyDat"))stop("x needs to be of class phyDat!") phyDat.codon(as.character(x)) } #' @rdname phyDat #' @export codon2dna <- function(x){ if(!inherits(x, "phyDat"))stop("x needs to be of class phyDat!") phyDat.DNA(as.character(x)) } #' @rdname phyDat #' @export as.phyDat <- function (x, ...){ if (inherits(x,"phyDat")) return(x) UseMethod("as.phyDat") } #' @rdname phyDat #' @method as.phyDat factor #' @export as.phyDat.factor <- function(x, ...){ nam <- names(x) lev <- levels(x) x <- as.character(x) names(x) <- nam phyDat(x, type="USER", levels = lev, ...) } #' @rdname phyDat #' @method as.phyDat DNAbin #' @export as.phyDat.DNAbin <- function(x,...) phyDat.DNA(x,...) #' @rdname phyDat #' @method as.phyDat alignment #' @export as.phyDat.alignment <- function (x, type="DNA",...) { x$seq <- tolower(x$seq) data <- sapply(x$seq, strsplit, "") names(data) <- x$nam if(type=="DNA") dat <- phyDat.DNA(data,...) if(type=="AA") dat <- phyDat.AA(data, ...) if(type=="CODON") dat <- phyDat.codon(data, ...) if(type=="USER") dat <- phyDat.default(data, ...) dat } #as.alignment.phyDat <- function(x, ...) as.alignment(as.character(x)) #' @rdname phyDat #' @export phyDat2alignment <- function(x){ z <- as.character(x) nam <- rownames(z) type <- attr(x, "type") seq <- switch(type, DNA = tolower(apply(z, 1, paste, collapse="")), AA = toupper(apply(z, 1, paste, collapse=""))) names(seq) <- NULL res <- list(nb=length(seq), nam=nam, seq=seq, com=NA) class(res) <- "alignment" res } #' @rdname phyDat #' @method as.phyDat MultipleAlignment #' @export as.phyDat.MultipleAlignment <- function(x, ...){ if (requireNamespace('Biostrings')){ if(inherits(x, "DNAMultipleAlignment")) res <- phyDat.DNA(Biostrings::as.matrix(x)) if(inherits(x, "RNAMultipleAlignment")) res <- phyDat.DNA(Biostrings::as.matrix(x)) if(inherits(x, "AAMultipleAlignment")) res <- phyDat.AA(Biostrings::as.matrix(x)) return(res) } return(NULL) } as.MultipleAlignment <- function (x, ...){ if (inherits(x,"MultipleAlignment")) return(x) UseMethod("as.MultipleAlignment") } as.MultipleAlignment.phyDat <- function(x, ...){ if (requireNamespace('Biostrings')){ z <- as.character(x) nam <- rownames(z) type <- attr(x, "type") seq <- switch(type, DNA = tolower(apply(z, 1, paste, collapse="")), AA = toupper(apply(z, 1, paste, collapse=""))) if(type=="DNA") return(Biostrings::DNAMultipleAlignment(seq)) if(type=="AA") return(Biostrings::AAMultipleAlignment(seq)) } return(NULL) } phyDat2MultipleAlignment <- as.MultipleAlignment.phyDat as.phyDat.matrix <- function (x, ...) phyDat(data=x, ...) as.phyDat.character <- function (x, ...) phyDat(data=x, ...) as.phyDat.data.frame <- function (x, ...) phyDat(data=x, ...) acgt2ry <- function(obj){ ac <- c("a", "c", "g", "t", "u", "m", "r", "w", "s", "y", "k", "v", "h", "d", "b", "n", "?", "-") AC <- matrix(c(c(1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1), c(0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1), c(0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1), c(0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1)), 18, 4, dimnames = list(NULL, c("a", "c", "g", "t"))) ry <- AC[c(7,10),] RY <- AC %*% t(ry) RY[RY==2] <- 1 dimnames(RY) <- list(NULL, c("r", "y")) attr(obj, "levels") <- c("r", "y") attr(obj, "nc") <- 2 attr(obj, "type") <- "USER" attr(obj, "contrast") <- RY obj <- phyDat.default(as.character(obj, allLevels=FALSE), levels = c("r", "y"), ambiguity = NULL) obj } #' @rdname phyDat #' @export # replace as.character.phyDat weniger Zeilen, works also for codons as.character.phyDat <- function (x, allLevels=TRUE, ...) { nr <- attr(x, "nr") nc <- attr(x, "nc") type <- attr(x, "type") labels <- attr(x, "allLevels") if (!is.null(attr(x, "index"))) { index <- attr(x, "index") if (is.data.frame(index)) index <- index[, 1] } else index <- rep(1:nr, attr(x, "weight")) if (type == "USER") { #levels in acgt2ry if(!allLevels){ tmp <- attr(x, "levels") contrast <- attr(x, "contrast") # contrast=AC contrast[contrast>0] <- 1 ind <- which(rowSums(contrast)==1) contrast[rowSums(contrast)>1,] <- 0 labels <- rep(NA, length(attr(x, "allLevels"))) labels[ind] <- tmp[contrast%*%c(seq_along(tmp))] } } if(type == "AA") labels <- toupper(labels) if(type == "CODON"){ nr <- length(index) result <- matrix(NA, nrow = length(x), ncol = 3L*nr) labels <- strsplit(labels, "") for (i in seq_along(x)) result[i, ] <- unlist(labels[ x[[i]][index] ]) } else { result <- matrix(NA, nrow = length(x), ncol = nr) for (i in seq_along(x)) result[i, ] <- labels[x[[i]]] result <- result[, index, drop = FALSE] } rownames(result) <- names(x) result } #' @rdname phyDat #' @export as.data.frame.phyDat <- function(x, ...){ nr <- attr(x, "nr") nc <- attr(x, "nc") labels <- attr(x, "allLevels") if(attr(x, "type") == "AA") labels <- toupper(labels) result <- vector("list", length(x)) if (is.null(attr(x, "index"))) index <- rep(1:nr, attr(x, "weight")) else { index <- attr(x, "index") if (is.data.frame(index)) index <- index[, 1] } for (i in seq_along(x)) result[[i]] <- labels[x[[i]][index]] attr(result, "names") <- names(x) attr(result, "row.names") <- seq_along(index) attr(result, "class") <- "data.frame" result } #as.DNAbin.phyDat <- function(x,...) { # if(attr(x, "type")=="DNA") return(as.DNAbin(as.character(x, ...))) # else stop("x must be a nucleotide sequence") #} # quite abit faster #' @rdname phyDat #' @export as.DNAbin.phyDat <- function (x, ...) { if(attr(x, "type")=="DNA"){ nr <- attr(x, "nr") ac <- attr(x, "allLevels") result <- matrix(as.raw(0), nrow = length(x), ncol = nr) # from ape ._cs_ cs <- c("a", "g", "c", "t", "r", "m", "w", "s", "k", "y", "v", "h", "d", "b", "n", "-", "?") # from ape ._bs_ bs <- as.raw(c(136, 72, 40, 24, 192, 160, 144, 96, 80, 48, 224, 176, 208, 112, 240, 4, 2)) ord <- match(ac, cs) ord[5] <- 4 for (i in seq_along(x)){ ind <- ord[x[[i]]] result[i,] <- bs[ind] } if (is.null(attr(x, "index"))) index <- rep(1:nr, attr(x, "weight")) else { index <- attr(x, "index") if (is.data.frame(index)) index <- index[, 1] } result <- result[, index, drop = FALSE] rownames(result) <- names(x) class(result) <- "DNAbin" return(result) } else stop("x must be a nucleotide sequence") } #' @rdname phyDat #' @export as.AAbin.phyDat <- function(x,...) { if(attr(x, "type")=="AA") return(as.AAbin(as.character(x, ...))) else stop("x must be a amino acid sequence") } print.phyDat <- function (x, ...) { cat(length(x), "sequences with",sum(attr(x,"weight")), "character and", attr(x,"nr"),"different site patterns.\n") cat("The states are",attr(x,"levels"), "\n") } # in C++ to replace aggregate or use of distinct from dplyr / data.table aggr <- function(weight, ind){ res <- numeric(max(ind)) for(i in seq_along(weight)) res[ind[i]] <- res[ind[i]] + weight[i] res } # data has to be a data.frame in cbind.phyDat fast.table2 <- function (data) { if(!is.data.frame(data)) data <- as.data.frame(data, stringsAsFactors = FALSE) da <- do.call("paste", data) ind <- !duplicated(da) levels <- da[ind] cat <- factor(da,levels = levels) nl <- length(levels) bin <- (as.integer(cat) - 1L) bin <- bin[!is.na(bin)] if (length(bin)) bin <- bin + 1L result <- list(index = bin, pos = ind) result } # new cbind.phyDat cbind.phyDat <- function(..., gaps="-", compress=TRUE){ object <- as.list(substitute(list(...)))[-1] x <- list(...) n <- length(x) if (n == 1) return(x[[1]]) type <- attr(x[[1]], "type") nr <- numeric(n) ATTR <- attributes(x[[1]]) nr[1] <- sum(attr(x[[1]], "weight")) levels <- attr(x[[1]], "levels") allLevels <- attr(x[[1]], "allLevels") gapsInd <- match(gaps, allLevels) snames <- vector("list", n) # names(x[[1]]) vec <- numeric(n+1) wvec <- numeric(n+1) objNames <- as.character(object) if(any(duplicated(objNames))) objNames <- paste0(objNames, 1:n) # tmp <- as.character(x[[1]]) for(i in 1:n){ snames[[i]] <- names(x[[i]]) nr[i] <- sum(attr(x[[i]], "weight")) vec[i+1] <- attr(x[[i]], "nr") wvec[i+1] <- sum(attr(x[[i]], "weight")) } vec <- cumsum(vec) wvec <- cumsum(wvec) snames <- unique(unlist(snames)) weight <- numeric(vec[n+1]) index <- numeric(wvec[n+1]) ATTR$names <- snames ATTR$nr <- vec[n+1] tmp <- matrix(gapsInd, vec[n+1], length(snames), dimnames = list(NULL, snames)) tmp <- as.data.frame(tmp) add.index <- TRUE for(i in 1:n){ nam <- names(x[[i]]) tmp[(vec[i]+1):vec[i+1], nam] <- x[[i]][nam] weight[(vec[i]+1):vec[i+1]] <- attr(x[[i]], "weight") } if(compress){ ddd <- fast.table2(tmp) tmp <- tmp[ddd$pos,] weight <- aggregate(weight, by=list(ddd$index), FUN=sum)$x } if(any(sapply(x, function(x)is.null(attr(x, "index"))))) add.index <- FALSE if(add.index){ for(i in 1:n){ tmp2 <- attr(x[[i]], "index") if(!is.null(tmp2)){ if(is.data.frame(tmp2))index[(wvec[i]+1):wvec[i+1]] <- ddd$index[(vec[i]+1):vec[i+1]][tmp2[,1]] else index[(wvec[i]+1):wvec[i+1]] <- ddd$index[(vec[i]+1):vec[i+1]][tmp2] } else add.index <- FALSE } } if(add.index)ATTR$index <- data.frame(index = index, genes=rep(objNames, nr)) ATTR$weight <- weight ATTR$nr <- length(weight) attributes(tmp) <- ATTR tmp } c.phyDat <- cbind.phyDat #' @rdname phyDat #' @export write.phyDat <- function(x, file, format="phylip", colsep = "", nbcol=-1, ...){ formats <- c("phylip", "nexus", "interleaved", "sequential", "fasta") format <- match.arg(tolower(format), formats) if(format=="nexus"){ type <- attr(x, "type") if(type=="DNA") write.nexus.data(as.list(as.data.frame(x)), file, format = "dna",...) else write.nexus.data(as.list(as.data.frame(x)), file, format = "protein", ...) } else{ if(format=="phylip") format <- "interleaved" write.dna(as.character(x), file, format=format, colsep = colsep, nbcol=nbcol, ...) } } #' @rdname phyDat #' @export read.phyDat <- function(file, format="phylip", type="DNA", ...){ formats <- c("phylip", "nexus", "interleaved", "sequential", "fasta", "clustal") format <- match.arg(tolower(format), formats) if(format=="nexus") data <- read.nexus.data(file, ...) else { if(format=="phylip") format <- "interleaved" #"sequential" if (type == "DNA" || type == "CODON"){ data <- read.dna(file, format, as.character = TRUE, ...) } if (type == "AA") data <- read.aa(file, format=format, ...) if (type == "USER"){ data <- read.dna(file, format, as.character = TRUE) extras <- match.call(expand.dots = FALSE)$... extras <- lapply(extras, eval) return(phyDat(data, type, levels=extras$levels, ambiguity = extras$ambiguity, contrast = extras$contrast)) } # raus } phyDat(data, type, return.index = TRUE) } #' @rdname phyDat #' @export baseFreq <- function(obj, freq=FALSE, all=FALSE, drop.unused.levels = FALSE){ if (!inherits(obj,"phyDat")) stop("data must be of class phyDat") labels <- attr(obj, "allLevels") weight <- attr(obj,"weight") n <- length(obj) res <- numeric(length(labels)) D <- diag(length(labels)) for(i in 1:n)res <- res + colSums(D[obj[[i]],, drop=FALSE]*weight) names(res) <- labels if(!all) res <- res[attr(obj, "levels")] if(!freq)res <- res/sum(res) if(drop.unused.levels) return(res[res>0]) res } phylo <- function(edge, tip, edge.length=NULL){ res <- list(edge=edge, tip.label=tip, edge.length=edge.length) class(res) <- "phylo" res } getCols <- function (data, cols) { attrib <- attributes(data) attr(data, "class") <- "list" data <- data[cols] if (is.character(cols)) attrib$names <- cols else attrib$names <- attrib$names[cols] attributes(data) <- attrib attr(data, "class") <- "phyDat" data } # allows negative indexing subset(dat,,-c(3:5)) getRows <- function (data, rows, site.pattern = TRUE) { index <- attr(data, "index") if(is.data.frame(index))index <- index[,1] if(!site.pattern){ # & all(rows>0) weight <- tabulate(index[rows]) ind <- which(weight>0) rows <- ind # rows[ind] weight <- weight[ind] } for (i in seq_along(data)){ if(is.matrix(data[[i]]))data[[i]] <- data[[i]][rows,] else data[[i]] <- data[[i]][rows] } attr(data, "weight") <- attr(data, "weight")[rows] if(!site.pattern) attr(data, "weight") <- weight attr(data, "nr") <- length(attr(data, "weight")) attr(data, "index") <- NULL data } #' @rdname phyDat #' @method subset phyDat #' @export subset.phyDat <- function (x, subset, select, site.pattern = TRUE,...) { if (!missing(subset)) x <- getCols(x, subset) if (!missing(select)){ # if(!site.pattern){ # if(is.data.frame(attr(x, "index"))) select <- attr(x, "index")[select,1] # else select <- attr(x, "index")[select] # } if(any(is.na(select))) return(NULL) x <- getRows(x, select, site.pattern=site.pattern) } x } map_duplicates <- function(x, ...){ labels <- names(x) y <- as.matrix(dist.hamming(x, FALSE)) l <- nrow(y) z <- character(l) for(i in seq_len(l)) z[i] <- paste( round(y[i, ] ,8), collapse="_") res <- NULL if(any(duplicated(z))){ ind <- duplicated(z) ind2 <- match(z[ind], z) res <- data.frame(duplicates=labels[ind], where=labels[ind2], stringsAsFactors = FALSE) } res } #duplicated_phyDat <- function(x, ...){ # tmp <- map_duplicates(x)[,1] # getCols(x, setdiff(names(x), tmp)) #} # duplicated_phyDat <- function(x, ...){ # dm <- as.matrix(dist.hamming(x)) # diag(dm) <- 1 # res <- logical(nrow(dm)) # if(all(dm>0)) return(res) # tmp <- which(dm==0, arr.ind = TRUE, useNames = FALSE) # tmp <- tmp[tmp[,1] < tmp[,2],2] # res[unique(tmp)] <- TRUE # res #} #' @rdname phyDat #' @method unique phyDat #' @export unique.phyDat <- function(x, incomparables=FALSE, identical=TRUE, ...){ if(identical) return(getCols(x, !duplicated(x))) tmp <- map_duplicates(x)[,1] getCols(x, setdiff(names(x), tmp)) # getCols(x, !duplicated_phyDat(x)) } removeUndeterminedSites <- function(x, use.contrast=TRUE, undetermined=c("?", "n", "-"), ...){ nc <- attr(x, "nc") nr <- attr(x, "nr") contrast <- attr(x, "contrast") if(use.contrast) ind <- which( (contrast %*% rep(1, nc)) == nc ) else ind <- sort(match(undetermined, attr(x, "allLevels"))) tmp <- x[[1]] %in% ind for(i in 2:length(x)) tmp <- tmp & (x[[i]] %in% ind) if(any(tmp)) x <- getRows(x, (1:nr)[!tmp]) #getRows(x, -which(tmp)) x } removeParsUninfoSites <- function(data){ nr <- attr(data, "nr") pis <- parsinfo(data) if (length(pis) > 0){ p0 <- sum(attr(data, "weight")[pis[, 1]] * pis[, 2]) data <- getRows(data, c(1:nr)[-pis[, 1]], TRUE) if(length(attr(data, "p0"))) p0 <- p0 + attr(data, "p0") attr(data, "p0") <- p0 } data } #' @rdname phyDat #' @export allSitePattern <- function(n,levels=c("a","c","g","t"), names=NULL){ l <- length(levels) X <- vector("list", n) if(is.null(names))names(X) <- paste0("t", 1:n) else names(X) <- names for(i in 1:n) X[[i]] <- rep(rep(levels, each=l^(i-1)),l^(n-i)) X <- as.data.frame(X) phyDat.default(X, levels, compress=FALSE, return.index=FALSE) } constSitePattern <- function(n,levels=c("a","c","g","t"), names=NULL){ l <- length(levels) X <- matrix(0, l,n) X <- matrix(rep(levels, each=n), n, l) if(is.null(names))rownames(X) <- paste0("t", 1:n) else rownames(X) <- names phyDat.default(X, levels) } write.phylip <- function(data, weight, file=""){ n <- sum(weight) m <- dim(data)[2] cat(m,n,"\n",file = file) for(i in 1:m) cat(colnames(data)[i]," ",toupper(rep(data[,i],weight)),"\n", sep="", file=file, append=TRUE) } read.FASTA.AA <- function (file) { if (length(grep("^(ht|f)tp(s|):", file))) { url <- file file <- tempfile() download.file(url, file) } if (is(file, "connection")) { if (!isOpen(file, "rt")) { open(file, "rt") on.exit(close(file)) } x <- scan(file, what = character(), sep = "\n", quiet = TRUE) x <- charToRaw(paste(x, collapse = "\n")) sz <- length(x) } else { sz <- file.size(file) x <- readBin(file, "raw", sz) } ## if the file is larger than 1 Gb we assume that it is ## UNIX-encoded and skip the search-replace of carriage returns if (sz < 1e9) { icr <- which(x == as.raw(0x0d)) # CR if (length(icr)) x <- x[-icr] } res <- .Call("rawStream2phyDat", x) aa <- c("a", "r", "n", "d", "c", "q", "e", "g", "h", "i", "l", "k", "m", "f", "p", "s", "t", "w", "y", "v") aa2 <- c("a", "r", "n", "d", "c", "q", "e", "g", "h", "i", "l", "k", "m", "f", "p", "s", "t", "w", "y", "v", "b", "z", "x", "-", "?") AA <- diag(20) AA <- rbind(AA, matrix(0, 5, 20)) AA[21, 3] <- AA[21, 4] <- 1 # Aspartate or Asparagine AA[22, 6] <- AA[22, 7] <- 1 # AA[23:25, ] <- 1 dimnames(AA) <- list(aa2, aa) ddd <- fast.table(res) data <- ddd$data names(data) <- sub("^ +", "", names(data)) row.names(data) <- NULL attr(data, "row.names") <- NULL attr(data, "weight") <- ddd$weight attr(data, "nr") <- length(ddd$weight) attr(data, "nc") <- 20 attr(data, "index") <- as.integer(ddd$index) attr(data, "levels") <- aa attr(data, "allLevels") <- aa2 attr(data, "type") <- "AA" attr(data, "contrast") <- AA class(data) <- "phyDat" data } # throw out #' Read Amino Acid Sequences in a File #' #' This function reads amino acid sequences in a file, and returns a matrix #' list of DNA sequences with the names of the taxa read in the file as row #' names. #' #' #' @param file a file name specified by either a variable of mode character, or #' a double-quoted string. #' @param format a character string specifying the format of the DNA sequences. #' Three choices are possible: \code{"interleaved"}, \code{"sequential"}, or #' \code{"fasta"}, or any unambiguous abbreviation of these. #' @param skip the number of lines of the input file to skip before beginning #' to read data. #' @param nlines the number of lines to be read (by default the file is read #' until its end). #' @param comment.char a single character, the remaining of the line after this #' character is ignored. #' @param seq.names the names to give to each sequence; by default the names #' read in the file are used. #' @return a matrix of amino acid sequences. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link[ape]{read.dna}}, \code{\link[ape]{read.GenBank}}, #' \code{\link[phangorn]{phyDat}}, \code{\link[seqinr]{read.alignment}} #' @references % Anonymous. FASTA format description. % #' \url{https://www.ncbi.nlm.nih.gov/blast/fasta.shtml} Felsenstein, J. (1993) #' Phylip (Phylogeny Inference Package) version 3.5c. Department of Genetics, #' University of Washington. #' \url{http://evolution.genetics.washington.edu/phylip/phylip.html} #' @keywords IO #' @export read.aa read.aa <- function (file, format = "interleaved", skip = 0, nlines = 0, comment.char = "#", seq.names = NULL) { getTaxaNames <- function(x) { x <- sub("^ +", "", x) x <- sub(" +$", "", x) x <- sub("^['\"]", "", x) x <- sub("['\"]$", "", x) x } format <- match.arg(format, c("interleaved", "sequential", "fasta")) phylip <- if (format %in% c("interleaved", "sequential")) TRUE else FALSE if (format == "fasta") { obj <- read.FASTA.AA(file) return(obj) } X <- scan(file = file, what = character(), sep = "\n", quiet = TRUE, skip = skip, nlines = nlines, comment.char = comment.char) if (phylip) { fl <- X[1] oop <- options(warn = -1) fl.num <- as.numeric(unlist(strsplit(gsub("^ +", "", fl), " +"))) options(oop) if (all(is.na(fl.num))) stop("the first line of the file must contain the dimensions of the data") if (length(fl.num) != 2) stop("the first line of the file must contain TWO numbers") else { n <- fl.num[1] s <- fl.num[2] } X <- X[-1] obj <- vector("character", n * s) dim(obj) <- c(n, s) } if (format == "interleaved") { fl <- X[1] fl <- unlist(strsplit(fl, NULL)) bases <- grep("[-AaRrNnDdCcQqEeGgHhIiLlKkMmFfPpSsTtWwYyVvBbZzXx?]", fl) z <- diff(bases) for (i in seq_along(z)) if (all(z[i:(i + 8)] == 1)) break start.seq <- bases[i] if (is.null(seq.names)) seq.names <- getTaxaNames(substr(X[1:n], 1, start.seq - 1)) X[1:n] <- substr(X[1:n], start.seq, nchar(X[1:n])) X <- gsub(" ", "", X) nl <- length(X) for (i in 1:n) obj[i, ] <- unlist(strsplit(X[seq(i, nl, n)], NULL)) } if (format == "sequential") { fl <- X[1] taxa <- character(n) j <- 1 for (i in 1:n) { bases <- grep("[-AaRrNnDdCcQqEeGgHhIiLlKkMmFfPpSsTtWwYyVvBbZzXx?]", unlist(strsplit(X[j], NULL))) z <- diff(bases) for (k in seq_along(z)) if (all(z[k:(k + 8)] == 1)) break start.seq <- bases[k] taxa[i] <- substr(X[j], 1, start.seq - 1) sequ <- substr(X[j], start.seq, nchar(X[j])) sequ <- gsub(" ", "", sequ) j <- j + 1 while (nchar(sequ) < s) { sequ <- paste0(sequ, gsub(" ", "", X[j])) j <- j + 1 } obj[i, ] <- unlist(strsplit(sequ, NULL)) } if (is.null(seq.names)) seq.names <- getTaxaNames(taxa) } if (format == "fasta") return(read.FASTA.AA(file)) # start <- grep("^ {0,}>", X) # taxa <- X[start] # n <- length(taxa) # obj <- vector("list", n) # if (is.null(seq.names)) { # taxa <- sub("^ {0,}>", "", taxa) # seq.names <- getTaxaNames(taxa) # } # start <- c(start, length(X) + 1) # for (i in 1:n) obj[[i]] <- unlist(strsplit(gsub(" ", # "", X[(start[i] + 1):(start[i + 1] - 1)]), NULL)) # } if (phylip) { rownames(obj) <- seq.names obj <- tolower(obj) } else { names(obj) <- seq.names obj <- lapply(obj, tolower) } obj } #' @rdname phyDat #' @export genlight2phyDat <- function(x, ambiguity=NA){ tmp <- as.matrix(x) lev <- na.omit(unique(as.vector(tmp))) phyDat(tmp, "USER", levels=lev, ambiguity=ambiguity) } #' @rdname phyDat #' @method image phyDat #' @export image.phyDat <- function(x, ...){ if(attr(x, "type")=="AA")image(as.AAbin(x), ...) if(attr(x, "type")=="DNA")image(as.DNAbin(x), ...) else return(NULL) } phangorn/R/fitch.R0000644000176200001440000006072013240424737013522 0ustar liggesusers#' @rdname parsimony #' @export fitch <- function (tree, data, site="pscore") { if (!inherits(data,"phyDat")) stop("data must be of class phyDat") levels <- attr(data, "levels") if(inherits(tree,"multiPhylo")){ TL <- attr(tree,"TipLabel") if (!is.null(TL)){ data <- subset(data, TL) nTips <- length(TL) weight <- attr(data, "weight") nr <- attr(data, "nr") m <- nr*(2L*nTips - 1L) } } data <- prepareDataFitch(data) d <- attributes(data) data <- as.integer(data) attributes(data) <- d if(inherits(tree,"phylo")) return(fit.fitch(tree, data, site)) else{ if(is.null(attr(tree,"TipLabel"))){ tree <- unclass(tree) return(sapply(tree, fit.fitch, data, site)) } else{ tree <- .uncompressTipLabel(tree) tree <- unclass(tree) tree <- lapply(tree, reorder, "postorder") site <- ifelse(site == "pscore", 1L, 0L) on.exit(.C("fitch_free")) .C("fitch_init", as.integer(data), as.integer(nTips*nr), as.integer(m), as.double(weight), as.integer(nr)) return(sapply(tree, fast.fitch, nr, site)) } } } fit.fitch <- function (tree, data, returnData = c("pscore", "site", "data")) { if (is.null(attr(tree, "order")) || attr(tree, "order") == "cladewise") tree <- reorder(tree, "postorder") returnData <- match.arg(returnData) nr <- attr(data, "nr") node <- tree$edge[, 1] edge <- tree$edge[, 2] weight <- attr(data, "weight") m <- max(tree$edge) q <- length(tree$tip.label) result <- .Call("FITCH", data[, tree$tip.label], as.integer(nr), as.integer(node), as.integer(edge), as.integer(length(edge)), as.double(weight), as.integer(m), as.integer(q)) if (returnData == "site") return(result[[2]]) pscore <- result[[1]] res <- pscore if (returnData == "data") res <- list(pscore = pscore, dat = result[[3]], site = result[[2]]) res } # NNI fnodesNew2 <- function (EDGE, nTips, nr) { node <- EDGE[, 1] edge <- EDGE[, 2] n <- length(node) m <- as.integer(max(EDGE)+1L) m2 <- 2L*n root0 <- as.integer(node[n]) .Call("FNALL_NNI", as.integer(nr), node, edge, as.integer(n), as.integer(m), as.integer(m2), as.integer(root0)) } # SPR und bab kompakter fnodesNew5 <- function (EDGE, nTips, nr, m= as.integer(max(EDGE)+1L)) { node <- EDGE[, 1] # in C edge <- EDGE[, 2] # in C n <- length(node) # in C m2 <- 2L*n # in C root0 <- as.integer(node[n]) # in C .Call("FNALL5", as.integer(nr), node, edge, as.integer(n), as.integer(m), as.integer(m2), as.integer(root0), PACKAGE="phangorn") } #' @rdname parsimony #' @export random.addition <- function(data, method="fitch") { label <- names(data) nTips <- as.integer(length(label)) remaining <- as.integer(sample(nTips)) tree <- structure(list(edge = structure(c(rep(nTips+1L, 3), remaining[1:3]), .Dim = c(3L, 2L)), tip.label = label, Nnode = 1L), .Names = c("edge", "tip.label", "Nnode"), class = "phylo", order = "postorder") remaining <- remaining[-c(1:3)] if(nTips==3L) return(tree) nr <- attr(data, "nr") storage.mode(nr) <- "integer" n <- length(data) #- 1L data <- subset(data, ,order(attr(data, "weight"), decreasing=TRUE)) data <- prepareDataFitch(data) weight <- attr(data, "weight") m <- nr*(2L*nTips - 2L) on.exit(.C("fitch_free")) .C("fitch_init", as.integer(data), as.integer(nTips*nr), as.integer(m), as.double(weight), as.integer(nr)) storage.mode(weight) <- "double" for (i in remaining) { edge <- tree$edge[,2] score <- fnodesNew5(tree$edge, nTips, nr)[edge] score <- .Call("FITCHTRIP3", as.integer(i), as.integer(nr), as.integer(edge), as.double(score), as.double(Inf)) res <- min(score) nt <- which.min(score) tree <- addOne(tree, i, nt) } attr(tree, "pscore") <- res tree } fast.fitch <- function (tree, nr, ps = TRUE) { node <- tree$edge[, 1] edge <- tree$edge[, 2] m <- max(tree$edge) .Call("FITCH345", as.integer(nr), as.integer(node), as.integer(edge), as.integer(length(edge)), as.integer(m), as.integer(ps)) } fitch.spr <- function(tree, data){ nTips <- as.integer(length(tree$tip.label)) nr <- attr(data, "nr") minp <- fast.fitch(tree, nr, TRUE) m <- max(tree$edge) for(i in 1:nTips){ treetmp <- dropTip(tree, i) edge <- treetmp$edge[,2] # score = fnodesNew5(treetmp$edge, nTips, nr)[edge] score <- .Call("FNALL6", as.integer(nr), treetmp$edge[,1], edge, as.integer(m+1L), PACKAGE="phangorn")[edge] score <- .Call("FITCHTRIP3", as.integer(i), as.integer(nr), as.integer(edge), as.double(score), as.double(minp)) if(min(score)= p0) candidates[ind] <- FALSE if (test < p0) { p0 <- test swap <- swap + 1 tree <- tree2 indi <- which(INDEX[5,] %in% INDEX[1:5, ind]) candidates[indi] <- FALSE pscore[indi] <- Inf } } list(tree = tree, pscore = p0, swap = swap) } optim.fitch <- function(tree, data, trace=1, rearrangements = "SPR", ...) { if(!inherits(tree,"phylo")) stop("tree must be of class phylo") if(!is.binary(tree)){ tree <- multi2di(tree) attr(tree, "order") <- NULL } if(is.rooted(tree)){ tree <- unroot(tree) attr(tree, "order") <- NULL } if(is.null(attr(tree, "order")) || attr(tree, "order") == "cladewise") tree <- reorder(tree, "postorder") if (class(data)[1] != "phyDat") stop("data must be of class phyDat") # stop early for n=3 or 4 # if(rt)tree <- ptree(tree, data) # attr(tree, "pscore") <- pscore + p0 # tree rt <- FALSE nTips <- as.integer(length(tree$tip.label)) nr <- attr(data, "nr") pis <- parsinfo(data) p0 <- sum(attr(data, "weight")[pis[, 1]] * pis[, 2]) if (length(pis) > 0) data <- getRows(data, c(1:nr)[-pis[, 1]], TRUE) nr <- attr(data, "nr") data <- subset(data, tree$tip.label, order(attr(data, "weight"), decreasing=TRUE)) dat <- prepareDataFitch(data) weight <- attr(data, "weight") m <- nr*(2L*nTips - 2L) on.exit(.C("fitch_free")) .C("fitch_init", as.integer(dat), as.integer(nTips*nr), as.integer(m), as.double(weight), as.integer(nr)) tree$edge.length <- NULL swap <- 0 iter <- TRUE pscore <- fast.fitch(tree, nr) while (iter) { res <- fitch.nni(tree, dat, ...) tree <- res$tree if(trace>1)cat("optimize topology: ", pscore + p0, "-->", res$pscore + p0, "\n") pscore <- res$pscore swap <- swap + res$swap if (res$swap == 0){ if(rearrangements=="SPR"){ tree <- fitch.spr(tree, dat) psc <- fast.fitch(tree, nr) if(trace>1)cat("optimize topology (SPR): ", pscore + p0 , "-->", psc + p0, "\n") if(pscore < psc+1e-6) iter <- FALSE pscore <- psc } else iter <- FALSE } } if(trace>0) cat("Final p-score", pscore + p0,"after ", swap, "nni operations \n") if(rt)tree <- ptree(tree, data) attr(tree, "pscore") <- pscore + p0 tree } # branch and bound getOrder <- function (x) { label <- names(x) dm <- as.matrix(dist.hamming(x, FALSE)) ind <- as.vector(which(dm == max(dm), arr.ind = TRUE)[1, ]) nTips <- as.integer(length(label)) added <- ind remaining <- c(1:nTips)[-ind] tree <- structure(list(edge = structure(c(rep(nTips+1L, 3), c(ind, 0L)), .Dim = c(3L, 2L)), tip.label = label, Nnode = 1L), .Names = c("edge", "tip.label", "Nnode"), class = "phylo", order = "postorder") l <- length(remaining) res <- numeric(l) nr <- attr(x, "nr") storage.mode(nr) <- "integer" n <- length(x) #- 1L data <- prepareDataFitch(x) weight <- attr(data, "weight") storage.mode(weight) <- "double" m <- nr*(2L*nTips - 2L) on.exit(.C("fitch_free")) .C("fitch_init", as.integer(data), as.integer(nTips*nr), as.integer(m), as.double(weight), as.integer(nr)) for(i in seq_along(remaining)){ tree$edge[3,2] <- remaining[i] res[i] <- fast.fitch(tree, nr) } tmp <- which.max(res) added <- c(added, remaining[tmp]) remaining <- remaining[-tmp] tree$edge[,2] <- added # for (i in 4:(nTips - 1L)) { while(length(remaining)>0){ edge <- tree$edge[,2] score0 <- fnodesNew5(tree$edge, nTips, nr)[edge] l <- length(remaining) res <- numeric(l) nt <- numeric(l) k <- length(added)+1L for(j in 1:l){ score <- .Call("FITCHTRIP3", as.integer(remaining[j]), as.integer(nr), as.integer(edge), as.double(score0), as.double(Inf)) # score = score0[edge] + psc res[j] <- min(score) nt[j] <- which.min(score) } tmp <- which.max(res) added <- c(added, remaining[tmp]) tree <- addOne(tree, remaining[tmp], nt[tmp]) remaining <- remaining[-tmp] } added <- c(added, remaining) added } #' Branch and bound for finding all most parsimonious trees #' #' \code{bab} finds all most parsimonious trees. #' #' This implementation is very slow and depending on the data may take very #' long time. In the worst case all (2n-5)!! possible trees have to be #' examined. For 10 species there are already 2027025 tip-labelled unrooted #' trees. It only uses some basic strategies to find a lower and upper bounds #' similar to penny from phylip. It uses a very basic heuristic approach of #' MinMax Squeeze (Holland et al. 2005) to improve the lower bound. On the #' positive side \code{bab} is not like many other implementations restricted #' to binary or nucleotide data. #' #' @aliases bab BranchAndBound #' @param data an object of class phyDat. #' @param tree a phylogenetic tree an object of class phylo, otherwise a #' pratchet search is performed. #' @param trace defines how much information is printed during optimisation. #' @param \dots Further arguments passed to or from other methods #' @return \code{bab} returns all most parsimonious trees in an object of class #' \code{multiPhylo}. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} based on work on Liam #' Revell #' @seealso \code{\link{pratchet}}, \code{\link{dfactorial}} #' @references Hendy, M.D. and Penny D. (1982) Branch and bound algorithms to #' determine minimal evolutionary trees. \emph{Math. Biosc.} \bold{59}, #' 277-290 #' #' Holland, B.R., Huber, K.T. Penny, D. and Moulton, V. (2005) The MinMax #' Squeeze: Guaranteeing a Minimal Tree for Population Data, \emph{Molecular #' Biology and Evolution}, \bold{22}, 235--242 #' #' White, W.T. and Holland, B.R. (2011) Faster exact maximum parsimony search #' with XMP. \emph{Bioinformatics}, \bold{27(10)},1359--1367 #' @keywords cluster ~kwd2 #' @examples #' #' data(yeast) #' dfactorial(11) #' # choose only the first two genes #' gene12 <- subset(yeast, , 1:3158, site.pattern=FALSE) #' trees <- bab(gene12) #' #' @export bab bab <- function (data, tree = NULL, trace = 1, ...) { if(!is.null(tree)) data <- subset(data, tree$tip.label) pBound <- TRUE nTips <- length(data) if(nTips < 4) return(stree(nTips, tip.label = names(data))) data <- removeParsUninfoSites(data) p0 <- attr(data, "p0") # nr <- attr(data, "nr") # pis <- parsinfo(data) # p0 <- sum(attr(data, "weight")[pis[, 1]] * pis[, 2]) # if (length(pis) > 0) # data <- getRows(data, c(1:nr)[-pis[, 1]], TRUE) if(attr(data, "nr") == 0) return(stree(nTips, tip.label = names(data))) # added compressSites data <- compressSites(data) dup_list <- NULL addTaxa <- FALSE dup <- map_duplicates(data) # should be recursive if(!is.null(dup)){ dup_list <- c(list(dup), dup_list) addTaxa <- TRUE data <- subset(data, setdiff(names(data), dup[,1])) } #<- unique.phyDat nTips <- length(data) if(nTips < 4L){ tree <- stree(nTips, tip.label = names(data)) return(add.tips(tree, dup[,1], dup[,2])) } o <- order(attr(data, "weight"), decreasing = TRUE) data <- subset(data, , o) tree <- pratchet(data, start = tree, trace = trace - 1, ...) data <- subset(data, tree$tip.label) nr <- as.integer(attr(data, "nr")) inord <- getOrder(data) lb <- lowerBound(data) nTips <- m <- length(data) nr <- as.integer(attr(data, "nr")) TMP <- UB <- matrix(0, m, nr) for (i in 4:m) { TMP[i, ] <- lowerBound(subset(data, inord[1:i])) UB[i, ] <- upperBound(subset(data, inord[1:i])) } dat_used <- subset(data, inord) weight <- as.double(attr(data, "weight")) data <- prepareDataFitch(data) m <- nr*(2L*nTips - 2L) # spaeter on.exit(.C("fitch_free")) .C("fitch_init", as.integer(data), as.integer(nTips*nr), as.integer(m), as.double(weight), as.integer(nr)) mmsAmb <- 0 mmsAmb <- TMP %*% weight mmsAmb <- mmsAmb[nTips] - mmsAmb mms0 <- 0 if(pBound) mms0 <- pBound(dat_used, UB) mms0 <- mms0 + mmsAmb minPars <- mms0[1] kPars <- 0 if (trace) print(paste("lower bound:", p0 + mms0[1])) bound <- fast.fitch(tree, nr) if (trace) print(paste("upper bound:", bound + p0)) startTree <- structure(list(edge = structure(c(rep(nTips+1L, 3), as.integer(inord)[1:3]), .Dim = c(3L, 2L)), tip.label = tree$tip.label, Nnode = 1L), .Names = c("edge", "tip.label", "Nnode"), class = "phylo", order = "postorder") trees <- vector("list", nTips) trees[[3]] <- list(startTree$edge) for(i in 4:nTips) trees[[i]] <- vector("list", (2L*i) - 5L) # new # index M[i] is neues node fuer edge i+1 # index L[i] is length(node) tree mit i+1 L <- as.integer( 2L*(1L:nTips) -3L ) M <- as.integer( 1L:nTips + nTips - 1L ) # PSC = matrix(0, sum(sapply(trees, length)), 3) # PSC[1,] = c(3,1,0) PSC <- matrix(c(3,1,0), 1, 3) PSC[1,3] <- fast.fitch(startTree, nr) k <- 4L Nnode <- 1L npsc <- 1 blub <- numeric(nTips) result <- list() while (npsc > 0) { a <- PSC[npsc,1] b <- PSC[npsc,2] PSC <- PSC[-npsc,, drop=FALSE] npsc <- npsc - 1L tmpTree <- trees[[a]][[b]] edge <- tmpTree[,2] score <- fnodesNew5(tmpTree, nTips, nr, M[a])[edge] + mms0[a+1L] score <- .Call("FITCHTRIP3", as.integer(inord[a+1L]), as.integer(nr), as.integer(edge), as.double(score), as.double(bound), PACKAGE="phangorn") ms <- min(score) if(ms<=bound){ if((a+1L) pmax tmp <- apply(y, 2, fun2, singles) ind <- which(tmp) if(length(ind)<2) return(numeric(nTips)) y <- y[, ind, drop=FALSE] weight0 <- weight0[ind] UB <- UB[, ind, drop=FALSE] single_dis <- apply(y, 2, fun1) # single_dis <- lowerBound nTips <- nrow(y) l <- length(weight0) res <- numeric(nTips) for(i in 1:(l-1)){ for(j in (i+1):l){ # cat(i, j, "\n") if( (weight0[i] > 0) & (weight0[j] > 0) ){ z <- paste(y[,i], y[,j], sep="_") dis2 <- single_dis[,i] + single_dis[,j] # D1 <- (dis2[nTips] - dis2) dis <- fun1(z) # dis <- pmax(dis, dis2) # D2 <- dis[nTips] - (UB[, i] + UB[, j]) if(dis[nTips] > dis2[nTips]){ ub <- UB[,i] + UB[,j] dis <- dis[nTips] - ub d2 <- dis2[nTips] - dis2 dis <- pmax(dis, d2) - d2 if(sum(dis[4:nTips])>0){ wmin <- min(weight0[i], weight0[j]) weight0[i] <- weight0[i] - wmin weight0[j] <- weight0[j] - wmin res <- res + dis * wmin } } } if( weight0[i] < 1e-6 ) break() } } res } phangorn/R/treeRearrangement.R0000644000176200001440000003300613236365142016073 0ustar liggesusersnnin <- function (tree, n) { attr(tree, "order") <- NULL tree1 <- tree tree2 <- tree edge <- matrix(tree$edge, ncol = 2) parent <- edge[, 1] child <- tree$edge[, 2] k <- min(parent) - 1 ind <- which(child > k)[n] if(is.na(ind))return(NULL) p1 <- parent[ind] p2 <- child[ind] ind1 <- which(parent == p1) ind1 <- ind1[ind1 != ind][1] ind2 <- which(parent == p2) e1 <- child[ind1] e2 <- child[ind2[1]] e3 <- child[ind2[2]] tree1$edge[ind1, 2] <- e2 tree1$edge[ind2[1], 2] <- e1 tree2$edge[ind1, 2] <- e3 tree2$edge[ind2[2], 2] <- e1 if(!is.null(tree$edge.length)){ tree1$edge.length[c(ind1, ind2[1])] <- tree$edge.length[c(ind2[1] ,ind1)] tree2$edge.length[c(ind1, ind2[2])] <- tree$edge.length[c(ind2[2] ,ind1)] } tree1 <- reorder(tree1, "postorder") tree2 <- reorder(tree2, "postorder") # tree1$tip.label <- tree2$tip.label <- NULL result <- list(tree1, tree2) result } # faster for moves >> 1 n_nni <- function(tree, moves=1L){ edge <- tree$edge parent <- edge[, 1] child <- edge[, 2] nb.edge <- length(parent) nb.node <- tree$Nnode nb.tip <- length(tree$tip.label) if(nb.tip==1) return(tree) pvector <- integer(max(edge)) # parents pvector[child] <- parent ch <- Children(tree) edges <- child[child %in% parent] # these are the edges we sample from for(i in 1:moves){ p2 <- sample(edges, 1) p1 <- pvector[p2] ind1 <- ch[[p1]] v1 <- ind1[ind1 != p2][1] ind2 <- ch[[p2]] r2 <- sample(2, 1) v2 <- ind2[r2] ind1[ind1 == v1] <- v2 ind2[r2] <- v1 pvector[v1] <- p2 pvector[v2] <- p1 ch[[p1]] <- ind1 ch[[p2]] <- ind2 } tree$edge[,1] <- pvector[child] attr(tree, "order") <- NULL reorder(tree, "postorder") } # roughly 2* fast from Martin Smith one_nnin <- function (tree, n) { edge <- tree$edge parent <- edge[, 1] child <- edge[, 2] lengths <- tree$edge.length nb.tip <- length(tree$tip.label) ind <- which(child > nb.tip)[n] if(is.na(ind)) return(NULL) nb.edge <- length(parent) nb.node <- tree$Nnode if (nb.node == 1) return(tree) p1 <- parent[ind] p2 <- child[ind] ind1 <- which(parent == p1) ind1 <- ind1[ind1 != ind][1] ind2 <- which(parent == p2)[sample(2, 1)] new_ind <- c(ind2, ind1) old_ind <- c(ind1, ind2) child_swap <- child[new_ind] edge [old_ind, 2L] <- child_swap child[old_ind] <- child_swap neworder <- reorderRcpp(edge, as.integer(nb.tip), as.integer(nb.tip+1L), 2L) tree$edge <- edge[neworder, ] if (!is.null(tree$edge.length)) { lengths[old_ind] <- lengths[new_ind] tree$edge.length <- lengths[neworder] } attr(tree, "order") <- "postorder" tree } ## @aliases nni rNNI rSPR #' Tree rearrangements. #' #' \code{nni} returns a list of all trees which are one nearest neighbor #' interchange away. \code{rNNI} and \code{rSPR} are two methods which simulate #' random trees which are a specified number of rearrangement apart from the #' input tree. Both methods assume that the input tree is bifurcating. These #' methods may be useful in simulation studies. #' #' #' @param tree A phylogenetic \code{tree}, object of class \code{phylo}. #' @param moves Number of tree rearrangements to be transformed on a tree. Can #' be a vector #' @param n Number of trees to be simulated. #' @param k If defined just SPR of distance k are performed. #' @return an object of class multiPhylo. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{allTrees}}, \code{\link{SPR.dist}} #' @keywords cluster #' @examples #' #' tree <- unroot(rtree(20)) #' trees1 <- nni(tree) #' trees2 <- rSPR(tree, 2, 10) #' #' @rdname nni #' @export nni nni <- function (tree) { tip.label <- tree$tip.label attr(tree, "order") <- NULL k <- min(tree$edge[, 1]) - 1 n <- sum(tree$edge[, 2] > k) result <- vector("list", 2*n) l <- 1 for (i in 1:n) { tmp <- nnin(tree, i) tmp[[1]]$tip.label <- tmp[[2]]$tip.label <- NULL result[c(l, l+1)] <- tmp l <- l + 2 } attr(result, "TipLabel") <- tip.label class(result) <- "multiPhylo" result } #' @rdname nni #' @export rNNI <- function (tree, moves = 1, n = length(moves)) { k <- length(na.omit(match(tree$edge[, 2], tree$edge[, 1]))) k_nni <- function(tree, ch, pvector, moves=1L){ if(nb.tip==1) return(tree) for(i in seq_len(moves)){ p2 <- sample(edges, 1) p1 <- pvector[p2] ind1 <- ch[[p1]] v1 <- ind1[ind1 != p2][1] ind2 <- ch[[p2]] r2 <- sample(2, 1) v2 <- ind2[r2] ind1[ind1 == v1] <- v2 ind2[r2] <- v1 pvector[v1] <- p2 pvector[v2] <- p1 ch[[p1]] <- ind1 ch[[p2]] <- ind2 } # tree$edge[,1] <- pvector[child] # attr(tree, "order") <- NULL # reorder(tree, "postorder") edge[,1] <- pvector[child] neworder <- reorderRcpp(edge, nb.tip, nb.tip+1L, 2L) tree$edge <- edge[neworder, ] if (!is.null(tree$edge.length)) { tree$edge.length <- tree$edge.length[neworder] } attr(tree, "order") <- "postorder" tree } edge <- tree$edge parent <- edge[, 1] child <- edge[, 2] nb.edge <- length(parent) nb.node <- tree$Nnode nb.tip <- as.integer( length(tree$tip.label) ) pvector <- integer(max(edge)) # parents pvector[child] <- parent ch <- Children(tree) pvector_tmp <- pvector ch_tmp <- ch edges <- child[child %in% parent] if (n == 1) { trees <- tree if(moves>0){ trees <- k_nni(tree, ch, pvector, moves=moves) } trees$tip.label <- tree$tip.label } else { trees <- vector("list", n) if(length(moves)==1) moves <- rep(moves, n) for (j in seq_len(n)) { tmp <- tree if(moves[j]>0){ tmp <- k_nni(tree, ch, pvector, moves=moves[j]) } tmp$tip.label <- NULL trees[[j]] <- tmp } attr(trees, "TipLabel") <- tree$tip.label class(trees) <- "multiPhylo" } trees } rNNI_old <- function (tree, moves = 1, n = length(moves)) { k <- length(na.omit(match(tree$edge[, 2], tree$edge[, 1]))) if (n == 1) { trees <- tree if(moves>0){ if (moves > 1) trees <- n_nni(trees, moves) else{ # for (i in 1:moves) trees <- one_nnin(trees, sample(k, 1)) } #trees = nnin(trees, sample(k, 1))[[sample(2,1)]] } trees$tip.label <- tree$tip.label } else { trees <- vector("list", n) if(length(moves)==1) moves <- rep(moves, n) for (j in 1:n) { tmp <- tree if(moves[j]>0){ # for (i in 1:moves[j]) tmp = nnin(tmp, sample(k, 1))[[sample(2,1)]] if (moves[j] > 1) tmp <- n_nni(tmp, moves[j]) else{ # for (i in 1:moves[j]) tmp <- one_nnin(tmp, sample(k, 1)) } } tmp$tip.label <- NULL trees[[j]] <- tmp } attr(trees, "TipLabel") <- tree$tip.label class(trees) <- "multiPhylo" } trees } ################################################################################ # SPR ################################################################################ dn <- function(x){ # if (!is.binary(x) ) x <- multi2di(x, random = FALSE) if(is.null(x$edge.length)) x$edge.length <- rep(1,nrow(x$edge)) else x$edge.length[] <- 1 dist.nodes(x) } #' @rdname nni #' @export rSPR <- function (tree, moves = 1, n = length(moves), k=NULL) { if (n == 1) { trees <- tree for (i in 1:moves) trees <- kSPR(trees, k=k) } else { trees <- vector("list", n) if(length(moves)==1) moves <- rep(moves, n) for (j in 1:n) { tmp <- tree if(moves[j]>0){ for (i in 1:moves[j]) tmp <- kSPR(tmp, k=k) } tmp$tip.label <- NULL trees[[j]] <- tmp } attr(trees, "TipLabel") <- tree$tip.label class(trees) <- "multiPhylo" } trees } kSPR <- function(tree, k=NULL){ l <- length(tree$tip.label) root <- getRoot(tree) distN <- dn(tree)[-c(1:l), -c(1:l)] distN[upper.tri(distN)] <- Inf dN <- distN[lower.tri(distN)] tab <- tabulate(dN) tab[1] <- tab[1] * 2 tab[-1] <- tab[-1] * 8 if(is.null(k)) k <- seq_along(tab) k <- na.omit((seq_along(tab))[k]) if(length(k)>1)k <- sample((seq_along(tab))[k],1, prob=tab[k] / sum(tab[k])) if(k==1) return(rNNI(tree, 1, 1)) index <- which(distN==k, arr.ind=TRUE) + l m <- dim(index)[1] if(m==0)stop("k is chosen too big") ind <- index[sample(m, 1),] s1 <- sample(c(1,2),1) if(s1==1)res <- (oneOf4(tree, ind[1], ind[2], sample(c(1,2),1), sample(c(1,2),1))) if(s1==2)res <- (oneOf4(tree, ind[2], ind[1], sample(c(1,2),1), sample(c(1,2),1))) res <- reroot2(res, root) reorderPruning(res) } oneOf4 <- function(tree, ind1, ind2, from=1, to=1){ if (!is.binary(tree)) stop("Sorry, trees must be binary!") tree <- reroot2(tree, ind2) trees <- vector('list', 8) kids1 <- Children(tree, ind1) anc <- Ancestors(tree, ind1, "all") l <- length(anc) kids2 <- Children(tree, ind2) kids2 <- kids2[kids2!=anc[l-1]] child <- tree$edge[,2] tmp <- numeric(max(tree$edge)) tmp[child] <- seq_along(child) edge <- tree$edge edge[tmp[kids1[-from]],1] <- Ancestors(tree, ind1, "parent") edge[tmp[kids2[to]],1] <- ind1 edge[tmp[ind1]] <- ind2 tree$edge <- edge reorderPruning(tree) } # faster than kSPR rSPR_Old <- function(tree, moves=1, n=1){ k <- length(tree$edge[,1]) if(n==1){ trees <- tree for(i in 1:moves) trees <- sprMove(trees,sample(k,1)) } else{ trees <- vector("list", n) for(j in 1:n){ tmp <- tree for(i in 1:moves) tmp <- sprMove(tmp,sample(k,1)) tmp$tip.label <-NULL trees[[j]] <- tmp } attr(trees, "TipLabel") <- tree$tip.label class(trees) <- "multiPhylo" } trees } sprMove <- function(tree, m){ if (is.rooted(tree)) tree <- unroot(tree) #stop("Sorry trees must be unrooted") if(!is.binary(tree))stop("Sorry, trees must be binary!") # reroot2 <- function(tree, node){ # anc <- Ancestors(tree, node, "all") # l <- length(anc) # ind <- match(c(node, anc[-l]), tree$edge[,2]) # tree$edge[ind,c(1,2)] <- tree$edge[ind,c(2,1)] # tree # } changeEdge <- function(tree, new, old){ tree$edge[tree$edge==old] <- 0L tree$edge[tree$edge==new] <- old tree$edge[tree$edge==0L] <- new # needed for unrooted trees tree <- collapse.singles(tree) tree } edge <- tree$edge k <- max(edge) nTips <- length(tree$tip.label) nEdges <- 2*nTips-3 if(m > nEdges) stop("m is chosen too big") parent <- edge[,1] child <- edge[,2] pv <- integer(k) pv[child] <- parent cv <- list() for(i in unique(parent)) cv[[i]] <- child[parent==i] bp <- bip(tree) root <- parent[!match(parent, child, 0)][1] ch <- child[m] pa <- parent[m] candidates <- !logical(k) candidates[root] <- FALSE candidates[cv[[ch]]] <- FALSE candidates[cv[[pa]]] <- FALSE candidates[pv[pa]] <- FALSE candidates[pa] <- FALSE ind <- which(candidates) l <- sample(ind,1) cr <- FALSE if(!any(is.na(match(bp[[l]], bp[[ch]]))) ){ newroot <- cv[[ch]] #[ 1] newroot <- newroot[newroot>nTips][1] tree <- reroot2(tree, newroot) edge <- tree$edge parent <- tree$edge[,1] child <- tree$edge[,2] pv <- integer(k) pv[child] <- parent cv <- list() for(i in unique(parent)) cv[[i]] <- child[parent==i] tmp <- pa pa <- ch ch <- tmp cr <- TRUE } if(pa==root){ cp <- cv[[pa]] newroot <- cp[cp!=ch] newroot <- newroot[newroot>nTips][1] # if(length(newroot)==0)browser() #!newroot <- cp[cp>nTips][1] tree <- reroot2(tree, newroot) edge <- tree$edge parent <- tree$edge[,1] child <- tree$edge[,2] pv <- integer(k) pv[child] <- parent cv <- list() for(i in unique(parent)) cv[[i]] <- child[parent==i] cr <- TRUE } el <- tree$edge.length cp <- cv[[pa]] sib <- cp[cp!=ch] edge[child==l,1] <- pa edge[child==pa,1] <- pv[l] edge[child==sib,1] <- pv[pa] el[child==sib] <- el[child==sib] + el[child==pa] el[child==l] <- el[child==l] / 2 el[child==pa] <- el[child==l] tree$edge <- edge tree$edge.length <- el if(cr) tree <- changeEdge(tree,root,newroot) tree <- reorder(tree, "postorder") tree } phangorn/R/pmlMix.R0000644000176200001440000003660013207147352013671 0ustar liggesusers# # pmlMix # optimMixQ <- function(object, Q=c(1, 1, 1, 1, 1, 1), omega,...){ l <- length(Q) Q <- Q[-l] Q <- sqrt(Q) fn <- function(Q, object, omega,...) { Q <- c(Q^2, 1) weight <- object[[1]]$weight n <- length(omega) p <- length(weight) result <- numeric(p) for(i in 1:n)result <- result + as.numeric(update(object[[i]], Q=Q, ...)$lv) * omega[i] result <- sum(weight %*% log(result)) result } res <- optim(par=Q, fn=fn, gr=NULL, method="L-BFGS-B", lower=0, upper=Inf, control=list(fnscale = -1, maxit=25), object=object, omega=omega,...) res[[1]] <- c(res[[1]]^2, 1) res } optimMixBf <- function(object, bf=c(.25,.25,.25,.25), omega,...){ l <- length(bf) nenner <- 1/bf[l] lbf <- log(bf * nenner) lbf <- lbf[-l] fn <- function(lbf, object, omega,...) { bf <- exp(c(lbf,0)) bf <- bf/sum(bf) weight <- object[[1]]$weight n <- length(omega) p <- length(weight) result <- numeric(p) for(i in 1:n)result <- result + as.numeric(update(object[[i]], bf=bf, ...)$lv) * omega[i] result <- sum(weight %*% log(result)) result } res <- optim(par=lbf, fn=fn, gr=NULL, method="Nelder-Mead", control=list(fnscale=-1, maxit=500), object, omega=omega,...) # print(res[[2]]) bf <- exp(c(res[[1]],0)) bf <- bf/sum(bf) } optimMixInv <- function(object, inv=0.01, omega,...){ fn <- function(inv, object, omega,...) { n <- length(omega) weight <- object[[1]]$weight p <- length(weight) result <- numeric(p) for(i in 1:n) result <- result + as.numeric(update(object, inv=inv, ...)$lv) * omega[i] result <- sum(weight %*% log(result)) result } res <- optimize(f=fn, interval=c(0,1), lower=0, upper=1, maximum=TRUE, tol = .0001, object, omega=omega,...) # print(res[[2]]) res[[1]] } optimMixRate <- function (fits, ll, weight, omega, rate=rep(1,length(fits))) { r <- length(fits) rate0 <- rate[-r] fn<-function(rate, fits, ll, weight, omega){ r <- length(fits) rate <- c(rate, (1- sum(rate *omega[-r]))/omega[r]) for (i in 1:r) fits[[i]]<-update(fits[[i]], rate = rate[i]) for (i in 1:r) ll[, i] <- fits[[i]]$lv sum(weight*log(ll%*%omega)) } ui <- diag(r-1) ui <- rbind(-omega[-r], ui) ci <- c(-1, rep(0, r-1)) res <- constrOptim(rate0, fn, grad=NULL, ui=ui, ci=ci, mu=1e-04, control=list(fnscale=-1), method="Nelder-Mead", outer.iterations=50, outer.eps = 1e-05, fits=fits, ll=ll, weight=weight, omega=omega) rate <- res[[1]] res[[1]] <- c(rate, (1- sum(rate *omega[-r]))/omega[r]) res } optW <- function (ll, weight, omega,...) { k <- length(omega) nenner <- 1/omega[1] eta <- log(omega * nenner) eta <- eta[-1] fn <- function(eta, ll, weight) { eta <- c(0,eta) p <- exp(eta)/sum(exp(eta)) res <- sum(weight * log(ll %*% p)) res } if(k==2)res <- optimize(f=fn , interval=c(-3,3) , lower=-3, upper=3, maximum=TRUE, tol=.Machine$double.eps^0.25, ll=ll, weight=weight) else res <- optim(eta, fn=fn, method="L-BFGS-B", lower=-5, upper=5, control = list(fnscale=-1, maxit=25), gr=NULL, ll=ll, weight=weight) p <- exp(c(0,res[[1]])) p <- p/sum(p) result <- list(par = p, value = res[[2]]) result } optimMixEdge <- function(object, omega, trace=1,...){ tree <- object[[1]]$tree theta <- object[[1]]$tree$edge.length weight <- as.numeric(attr(object[[1]]$data,"weight")) n <- length(omega) p <- length(weight) q <- length(theta) lv1 <- numeric(p) for(i in 1:n) lv1 <- lv1 + as.numeric(object[[i]]$lv) * omega[i] ll0 <- sum(weight * log(lv1)) eps <- 1 iter <- 0 scalep <- 1 if(trace>0) cat(ll0) while(abs(eps)>.001 & iter<10){ dl <- matrix(0,p,q) for(i in 1:n)dl <- dl + dl(object[[i]],TRUE) * omega[i] dl <- dl/lv1 sc <- colSums(weight * dl) F <- crossprod(dl * weight, dl)+diag(q)*1e-6 blub <- TRUE iter2 <- 0 while(blub & iter2<10){ thetaNew <- log(theta) + scalep * solve(F, sc) tree$edge.length <- as.numeric(exp(thetaNew)) for(i in 1:n)object[[i]] <- update(object[[i]],tree=tree) lv1 <- numeric(p) for(i in 1:n) lv1 <- lv1 + as.numeric(object[[i]]$lv) * omega[i] ll1 <- sum(weight * log(lv1)) eps <- ll1 - ll0 if (eps < 0 || is.nan(eps)) { scalep <- scalep/2 eps <- 1 thetaNew <- log(theta) ll1 <- ll0 iter2 <- iter2+1 } else{ scalep <- 1 theta <- exp(thetaNew) blub <- FALSE } } iter <- iter+1 ll0 <- ll1 } tree$edge.length <- theta for(i in 1:n)object[[i]] <- update(object[[i]],tree=tree) if(trace>0) cat("->", ll1, "\n") object } #' Phylogenetic mixture model #' #' Phylogenetic mixture model. #' #' The \code{formula} object allows to specify which parameter get optimized. #' The formula is generally of the form \code{edge + bf + Q ~ rate + shape + #' \dots{}}, on the left side are the parameters which get optimized over all #' mixtures, on the right the parameter which are optimized specific to each #' mixture. The parameters available are \code{"nni", "bf", "Q", "inv", #' "shape", "edge", "rate"}. Each parameters can be used only once in the #' formula. \code{"rate"} and \code{"nni"} are only available for the right #' side of the formula. On the other hand parameters for invariable sites are #' only allowed on the left-hand side. The convergence of the algorithm is #' very slow and is likely that the algorithm can get stuck in local optima. #' #' @aliases pmlMix pmlPen #' @param formula a formula object (see details). #' @param fit an object of class \code{pml}. #' @param m number of mixtures. #' @param omega mixing weights. #' @param control A list of parameters for controlling the fitting process. #' @param \dots Further arguments passed to or from other methods. #' @return \code{pmlMix} returns a list with elements #' \item{logLik}{log-likelihood of the fit} \item{omega}{mixing weights.} #' \item{fits}{fits for the final mixtures.} #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{pml}},\code{\link{pmlPart}},\code{\link{pmlCluster}} #' @keywords cluster #' @examples #' #' \dontrun{ #' X <- allSitePattern(5) #' tree <- read.tree(text = "((t1:0.3,t2:0.3):0.1,(t3:0.3,t4:0.3):0.1,t5:0.5);") #' fit <- pml(tree,X, k=4) #' weights <- 1000*exp(fit$site) #' attr(X, "weight") <- weights #' fit1 <- update(fit, data=X, k=1) #' fit2 <- update(fit, data=X) #' #' (fitMixture <- pmlMix(edge~rate, fit1 , m=4)) #' (fit2 <- optim.pml(fit2, optGamma=TRUE)) #' #' #' data(Laurasiatherian) #' dm <- dist.logDet(Laurasiatherian) #' tree <- NJ(dm) #' fit <- pml(tree, Laurasiatherian) #' fit <- optim.pml(fit) #' #' fit2 <- update(fit, k=4) #' fit2 <- optim.pml(fit2, optGamma=TRUE) #' #' fitMix <- pmlMix(edge ~ rate, fit, m=4) #' fitMix #' #' #' # #' # simulation of mixture models #' # #' \dontrun{ #' X <- allSitePattern(5) #' tree1 <- read.tree(text = "((t1:0.1,t2:0.5):0.1,(t3:0.1,t4:0.5):0.1,t5:0.5);") #' tree2 <- read.tree(text = "((t1:0.5,t2:0.1):0.1,(t3:0.5,t4:0.1):0.1,t5:0.5);") #' tree1 <- unroot(tree1) #' tree2 <- unroot(tree2) #' fit1 <- pml(tree1,X) #' fit2 <- pml(tree2,X) #' #' weights <- 2000*exp(fit1$site) + 1000*exp(fit2$site) #' attr(X, "weight") <- weights #' #' fit1 <- pml(tree1, X) #' fit2 <- optim.pml(fit1) #' logLik(fit2) #' AIC(fit2, k=log(3000)) #' #' fitMixEdge <- pmlMix( ~ edge, fit1, m=2) #' logLik(fitMixEdge) #' AIC(fitMixEdge, k=log(3000)) #' #' fit.p <- pmlPen(fitMixEdge, .25) #' logLik(fit.p) #' AIC(fit.p, k=log(3000)) #' } #' } #' #' @export pmlMix pmlMix <- function (formula, fit, m = 2, omega = rep(1/m, m), control=pml.control(epsilon=1e-8, maxit=20, trace=1), ...) { call <- match.call() form <- phangornParseFormula(formula) opt <- c("nni", "bf", "Q", "inv", "shape", "edge", "rate") optAll <- match(opt, form$left) optPart <- match(opt, form$right) AllBf <- !is.na(optAll[2]) AllQ <- !is.na(optAll[3]) AllInv <- !is.na(optAll[4]) AllGamma <- !is.na(optAll[5]) AllEdge <- !is.na(optAll[6]) MixNni <- !is.na(optPart[1]) MixBf <- !is.na(optPart[2]) MixQ <- !is.na(optPart[3]) MixInv <- !is.na(optPart[4]) MixGamma <- !is.na(optPart[5]) MixEdge <- !is.na(optPart[6]) MixRate <- !is.na(optPart[7]) if (inherits(fit,"pmlMix")) fits <- fit$fits if (inherits(fit,"list")) fits <- fit if (inherits(fit,"pml")){ fits <- vector("list", m) for (i in 1:m) fits[[i]] <- fit } dat <- fits[[1]]$data p <- attr(dat, "nr") weight <- attr(dat, "weight") r <- m ll <- matrix(0, p, r) for (i in 1:r) ll[, i] <- fits[[i]]$lv for (i in 1:r){ pl0 <- ll[, -i, drop = FALSE] %*% omega[-i] fits[[i]] <- update(fits[[i]], llMix = pl0, wMix = omega[i]) } if(MixRate) rate <- rep(1,r) llstart <- sum(weight * log(ll %*% omega)) llold <- llstart ll0 <- llstart ll3 <- llstart eps0 <- 1 iter0 <- 0 trace <- control$trace while (eps0 > control$eps & iter0 < control$maxit) { #while (eps0 > 1e-6 & iter0 < 20) { eps1 <- 100 iter1 <- 0 if (AllQ) { newQ <- optimMixQ(fits, Q = fits[[1]]$Q, omega = omega)[[1]] for (i in 1:m) fits[[i]] <- update(fits[[i]], Q = newQ) } if (AllBf) { newBf <- optimMixBf(fits, bf = fits[[1]]$bf, omega = omega) for (i in 1:m) fits[[i]] <- update(fits[[i]], bf = newBf) } if (AllInv) { newInv <- optimMixInv(fits, inv = fits[[1]]$inv, omega = omega) for (i in 1:m) fits[[i]] <- update(fits[[i]], Inv = newInv) } if (AllEdge) fits <- optimMixEdge(fits, omega, trace=trace-1) for (i in 1:r) ll[, i] <- fits[[i]]$lv while ( abs(eps1) > 0.001 & iter1 < 3) { if(MixRate){ rate <- optimMixRate(fits, ll, weight, omega, rate)[[1]] for (i in 1:r) fits[[i]] <- update(fits[[i]], rate=rate[i]) for (i in 1:r) ll[, i] <- fits[[i]]$lv } for (i in 1:r){ pl0 <- ll[, -i, drop = FALSE] %*% omega[-i] fits[[i]] <- update(fits[[i]], llMix = pl0, wMix = omega[i]) } for (i in 1:r) { pl0 <- ll[, -i, drop = FALSE] %*% omega[-i] fits[[i]] <- optim.pml(fits[[i]], MixNni, MixBf, MixQ, MixInv, MixGamma, MixEdge, optRate=FALSE, control = pml.control(epsilon = 1e-8, maxit = 3, trace-1), llMix = pl0, wMix = omega[i]) ll[, i] <- fits[[i]]$lv res <- optW(ll, weight, omega) omega <- res$p if(MixRate){ blub <- sum(rate*omega) rate <- rate / blub tree <- fits[[1]]$tree tree$edge.length <- tree$edge.length*blub for (i in 1:r) fits[[i]]<-update(fits[[i]], tree=tree, rate = rate[i]) for (i in 1:r) ll[, i] <- fits[[i]]$lv } for (i in 1:r){ pl0 <- ll[, -i, drop = FALSE] %*% omega[-i] fits[[i]] <- update(fits[[i]], llMix = pl0, wMix = omega[i]) } } ll1 <- sum(weight * log(ll %*% omega)) res <- optW(ll, weight, omega) omega <- res$p if(MixRate){ blub <- sum(rate*omega) rate <- rate / blub tree <- fits[[1]]$tree tree$edge.length <- tree$edge.length*blub for (i in 1:r) fits[[i]]<-update(fits[[i]], tree=tree, rate = rate[i]) if(trace>0) print(rate) for (i in 1:r) ll[, i] <- fits[[i]]$lv } for (i in 1:r){ pl0 <- ll[, -i, drop = FALSE] %*% omega[-i] fits[[i]] <- update(fits[[i]], llMix = pl0, wMix = omega[i]) } ll2 <- sum(weight * log(ll %*% omega)) eps1 <- llold - ll2 iter1 <- iter1 + 1 llold <- ll2 } ll1 <- sum(weight * log(ll %*% omega)) eps0 <- (ll3 - ll1) / ll1 ll3 <- ll1 iter0 <- iter0 + 1 if(trace>0) print(iter0) } parameter <- c(AllBf=AllBf, AllQ=AllQ, AllInv=AllInv, AllGamma=AllGamma, AllEdge=AllEdge, MixNni=MixNni, MixBf=MixBf, MixQ=MixQ, MixInv=MixInv, MixGamma=MixGamma, MixEdge=MixEdge, MixRate=MixRate) df <- matrix(1, 6 ,2) colnames(df) <- c("#df", "group") rownames(df) <- c("Edge", "Shape", "Inv", "Bf", "Q", "Rate") df[1,1] <- length(fits[[1]]$tree$edge.length) # df[2,1] <- fits[[1]]$k - 1 df[2,1] <- fits[[1]]$k > 1 df[3,1] <- fits[[1]]$inv > 0 df[4,1] <- length(unique(fits[[1]]$bf)) - 1 df[5,1] <- length(unique(fits[[1]]$Q)) - 1 df[6,1] <- 0 if(MixEdge) df[1,2] <- r if(MixGamma) df[2,2] <- r if(MixInv) df[3,2] <- r if(MixBf) df[4,2] <- r if(MixQ) df[5,2] <- r if(MixRate) df[6,1] <- r-1 attr(logLik, "df") <- sum(df[,1]*df[,2]) converge <- c(iter=iter0, eps=eps0) result <- list(logLik = ll1, omega = omega, fits = fits, call = call, converge=converge, parameter=parameter, df=df) class(result) <- "pmlMix" result } print.pmlMix <- function(x,...){ nc <- attr(x$fits[[1]]$data, "nc") nr <- attr(x$fits[[1]]$data, "nr") levels <- attr(x$fits[[1]]$data, "levels") r <- length(x$fits) w <- x$fits[[1]]$weight w <- w[w>0] type <- attr(x$fits[[1]]$data, "type") nc <- attr(x$fits[[1]]$data, "nc") ll0 <- sum(w*log(w/sum(w))) bf <- matrix(0,r,nc) dimnames(bf) <- list(1:r, levels) Q <- matrix(0, r, nc*(nc-1)/2) dimnames(Q) <- list(1:r, NULL) rate <- numeric(r) inv <- x$fits[[1]]$inv shape <- numeric(r) for(i in 1:r){ bf[i, ] <- x$fits[[i]]$bf Q[i, ] <- x$fits[[i]]$Q rate[i] <- x$fits[[i]]$rate shape[i] <- x$fits[[i]]$shape } cat("\nloglikelihood:", x$logLik, "\n") cat("\nunconstrained loglikelihood:", ll0, "\n") cat("AIC: ", AIC(x), " BIC: ", AIC(x, k=log(nr)), "\n\n") cat("\nposterior:", x$omega ,"\n") if(inv > 0)cat("Proportion of invariant sites:",inv,"\n") cat("\nRates:\n") cat(rate,"\n") cat("\nBase frequencies: \n") print(bf) cat("\nRate matrix:\n") print(Q) } logLik.pmlMix <- function (object, ...) { res <- object$logLik attr(res, "df") <- sum(object$df[,1] * object$df[,2]) class(res) <- "logLik" res } phangorn/R/sankoff.R0000644000176200001440000000554613207043151014047 0ustar liggesusersprepareDataSankoffNew <- function(data){ contrast <- attr(data, "contrast") contrast[contrast == 0] <- 1.0e+06 contrast[contrast == 1] <- 0.0 attr(data, "contrast") <- contrast data } sankoffNew <- function (tree, data, cost = NULL, site = 'pscore') { if (!inherits(data,"phyDat")) stop("data must be of class phyDat") data <- prepareDataSankoffNew(data) weight <- attr(data, "weight") levels <- attr(data, "levels") l <- length(levels) if (is.null(cost)) { cost <- matrix(1, l, l) cost <- cost - diag(l) } l <- length(data) nr <- attr(data, "nr") # on.exit(.C("sankoff_free")) # .C("sankoff_init", as.integer()) # for (i in 1:length(data)) storage.mode(data[[i]]) = "double" if(inherits(tree,"phylo")) return(fit.sankoffNew(tree, data, cost, returnData =site)) if(inherits(tree,"multiPhylo")){ if(is.null(tree$TipLabel))tree <- unclass(tree) return(sapply(tree, fit.sankoffNew, data, cost, site)) } } fit.sankoffNew <- function (tree, data, cost, returnData = c("pscore", "site", "data")) { if (is.null(attr(tree, "order")) || attr(tree, "order") == "cladewise") tree <- reorder(tree, "postorder") returnData <- match.arg(returnData) node <- tree$edge[, 1] edge <- tree$edge[, 2] weight <- attr(data, "weight") nr <- p <- attr(data, "nr") contr <- attr(data, "contrast") q <- length(tree$tip.label) nc <- l <- attr(data, "nc") m <- length(edge) + 1 dat <- vector(mode = "list", length = m) dat[1:q] <- data[tree$tip.label] node <- as.integer(node - 1) edge <- as.integer(edge - 1) nTips <- as.integer(length(tree$tip.label)) mNodes <- as.integer(max(node) + 1) # tips <- as.integer((1:length(tree$tip.label))-1) res <- .Call("sankoff3B", dat, as.numeric(cost), as.integer(nr), as.integer(nc), node, edge, mNodes, nTips, as.double(contr), as.integer(nrow(contr)), PACKAGE="phangorn") root <- getRoot(tree) erg <- .Call("C_rowMin", res[[root]], as.integer(nr), as.integer(nc), PACKAGE = "phangorn") if (returnData=='site') return(erg) pscore <- sum(weight * erg) result <- pscore if (returnData=="data"){ result <- list(pscore = pscore, dat = res) } result } pnodesNew <- function (tree, data, cost) { if (is.null(attr(tree, "order")) || attr(tree, "order") == "cladewise") tree <- reorder(tree, "postorder") node <- tree$edge[, 1] edge <- tree$edge[, 2] nr <- nrow(data[[1]]) nc <- ncol(data[[1]]) node <- as.integer(node - 1) edge <- as.integer(edge - 1) .Call("pNodes", data, as.numeric(cost), as.integer(nr),as.integer(nc), node, edge, PACKAGE="phangorn") } phangorn/R/mast.R0000644000176200001440000000725513210055722013364 0ustar liggesusers#' Maximum agreement subtree #' #' \code{mast} computes the maximum agreement subtree (MAST). #' #' The code is derived from the code example in Valiente (2009), #' for the original code see \url{http://www.cs.upc.edu/~valiente/comput-biol/}. #' The version for the unrooted trees is much slower. #' #' @param x a tree, i.e. an object of class \code{phylo}. #' @param y a tree, i.e. an object of class \code{phylo}. #' @param tree a logicical, if TRUE returns a tree other wise the tip labels #' of the the maximum agreement subtree. #' @param rooted logical if TRUE treats trees as rooted otherwise unrooted. #' @return \code{mast} returns a vector of the tip labels in the MAST. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} based on code of Gabriel Valiente #' @seealso \code{\link{SPR.dist}} #' @references #' G. Valiente (2009). \emph{Combinatorial Pattern Matching Algorithms in Computational Biology using Perl and R}. Taylor & Francis/CRC Press #' #' #' @keywords cluster #' @examples #' tree1 <- rtree(100) #' tree2 <- rSPR(tree1, 5) #' tips <- mast(tree1, tree2) #' #' @rdname mast #' @export mast <- function (x, y, tree=TRUE, rooted=TRUE) { if(!is.rooted(x) | !is.rooted(y)){ rooted <- FALSE } shared_tips <- intersect(x$tip.label, y$tip.label) if(length(shared_tips) < length(x$tip.label)) x <- drop.tip(x, setdiff(x$tip.label, shared_tips)) if(length(shared_tips) < length(y$tip.label)) y <- drop.tip(y, setdiff(y$tip.label, shared_tips)) # make order of labels the same y <- .compressTipLabel(c(y), x$tip.label)[[1]] x <- reorder(x, "postorder") if(rooted)res <- mast.fit(x,y) else { x <- reorder(x, "postorder") bipart_x <- bipartCPP(x$edge, Ntip(x))[[2]] x <- root(x, bipart_x, resolve.root = TRUE) x <- reorder(x, "postorder") y <- unroot(y) y <- reorder(y, "postorder") res <- NULL bipart_y <- bipartCPP(y$edge, Ntip(y)) #unique(y$edge[,1]) for(i in 2:length(bipart_y)){ y <- root(y, bipart_y[[i]], resolve=TRUE) tmp <- mast.fit(x,y) if(length(tmp) > length(res)) res <- tmp } } if(tree) res <- drop.tip(x, setdiff(x$tip.label, res)) res } mast.fit <- function (x, y) { y <- reorder(y, "postorder") po1 <- c(x$edge[,2], x$edge[nrow(x$edge),1]) po2 <- c(y$edge[,2], y$edge[nrow(y$edge),1]) nTips <- length(x$tip.label) # vielleicht ausserhalb p_vec_1 <- Ancestors(x, 1L:max(x$edge)) #nTips p_vec_2 <- Ancestors(y, 1L:max(y$edge)) #nTips # vielleicht ausserhalb CH1 <- allChildren(x) CH2 <- allChildren(y) m <- matrix(list(),nrow=length(po1),ncol=length(po2)) for(i in seq_len(nTips)){ m[i,i] <- c(i) m[cbind(i, p_vec_2[[i]])] <- c(i) m[cbind(p_vec_1[[i]], i)] <- c(i) } for (i in po1) { for (j in po2) { if(i>nTips & j>nTips){ l1 <- CH1[[i]][1] r1 <- CH1[[i]][2] l2 <- CH2[[j]][1] r2 <- CH2[[j]][2] mm <- c(m[[l1,l2]],m[[r1,r2]]) if ( length(m[[l1,r2]]) + length(m[[r1,l2]]) > length(mm) ) mm <- c(m[[l1,r2]],m[[r1,l2]]) if ( length(m[[i,l2]]) > length(mm) ) mm <- m[[i,l2]] if ( length(m[[i,r2]]) > length(mm) ) mm <- m[[i,r2]] if ( length(m[[l1,j]]) > length(mm) ) mm <- m[[l1,j]] if ( length(m[[r1,j]]) > length(mm) ) mm <- m[[r1,j]] if(!is.null(mm))m[[i,j]] <- mm } } } x$tip.label[m[[i,j]]] } phangorn/R/Coalescent.R0000644000176200001440000000725013201424001014461 0ustar liggesusersnodeHeight <- function(tree) { if(is.null(attr(tree, "order")) || attr(tree, "order") == "cladewise") tree <- reorder(tree, "postorder") edge <- tree$edge[, 2] node <- tree$edge[, 1] m <- max(tree$edge) el <- double(m) el[edge] <- tree$edge.length res <- .C("nodeH", as.integer(edge), as.integer(node), el, as.integer(length(edge)), double(m))[[5]] max(res) - res } ancstat <- function(phy, x){ contrast <- attr(x, "contrast") storage.mode(contrast) <- "integer" phy <- reorder(phy, "postorder") res <- matrix(0L, max(phy$edge), ncol(contrast)) colnames(res) <- attr(x,"levels") nTips <- length(phy$tip.label) pa <- phy$edge[,1] ch <- phy$edge[,2] res[1:nTips, ] <- contrast[as.numeric(x)[match(phy$tip.label, names(x))],, drop=FALSE] for(i in seq_along(pa)){ res[pa[i],] <- res[pa[i],] | res[ch[i],] } res } comp <- function(x, y){ tmp1 <- matrix(rowSums(x), nrow(x), nrow(y)) res <- matrix(rowSums(y), nrow(x), nrow(y), byrow=TRUE) tmp3 <- tcrossprod(x, 1-y) tmp0 <- tcrossprod(x, y) tmp0[tmp3>0] <- 0L res[!(tmp0>(tmp1 - 1e-8))] <- 10000000L apply(res, 1, which.min) } comp2 <- function(x, y){ res <- matrix(rowSums(x), nrow(x), nrow(y)) tmp1 <- matrix(rowSums(y), nrow(x), nrow(y), byrow=TRUE) tmp3 <- tcrossprod(1-x, y) tmp0 <- tcrossprod(x, y) tmp0[tmp3>0] <- 0L res[tmp0<2] <- Inf apply(res, 2, which.min) } # single linkage of minimal coalescent times # extends speciesTree fom ape #' Species Tree #' #' \code{coalSpeciesTree} estimates species trees and can handle multiple #' individuals per species. #' #' \code{coalSpeciesTree} estimates a single linkage tree as suggested by Liu #' et al. (2010) from the element wise minima of the cophenetic matrices of the #' gene trees. It extends \code{speciesTree} in ape as it allows that have #' several individuals per gene tree. #' #' @export #' #' @param tree an object of class \code{multiPhylo} #' @param X A \code{phyDat} object to define which individual belongs to which #' species. #' @param sTree A species tree which fixes the topology. #' @return The function returns an object of class \code{phylo}. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} Emmanuel Paradies #' @seealso \code{\link{speciesTree}} #' @references Liu, L., Yu, L. and Pearl, D. K. (2010) Maximum tree: a #' consistent estimator of the species tree. \emph{Journal of Mathematical #' Biology}, \bold{60}, 95--106. #' @keywords cluster #' coalSpeciesTree <- function(tree, X=NULL, sTree=NULL){ if(is.null(X))return(speciesTree(tree)) trees <- unclass(tree) States <- lapply(tree, ancstat, X) NH <- lapply(tree, nodeHeight) if(is.null(sTree)){ l <- attr(X, "nc") m <- choose(l, 2) SST <- matrix(0L, m, l) k <- 1 for(i in 1:(l-1)){ for(j in (i+1):l){ SST[k, i] <- SST[k,j] <- 1L k <- k+1 } } Y <- matrix(Inf, length(NH), nrow(SST)) dm <- rep(Inf, m) for(i in seq_along(NH)){ ind <- comp2(States[[i]],SST) dm <- pmin(dm, NH[[i]][ind]) # for(j in 1:length(ind))Y[i, ind[j]] = min(Y[i, ind[j]], NH[[i]][j]) } dm <- structure(2*dm, Labels = attr(X, "levels"), Size = l, class = "dist", Diag = FALSE, Upper = FALSE) sTree <- upgma(dm, "single") # dm of pairwise states } else{ SST <- ancstat(sTree, X) Y <- matrix(Inf, length(NH), nrow(SST)) for(i in seq_along(NH)){ ind <- comp(States[[i]],SST) for(j in seq_along(ind))Y[i, ind[j]] <- min(Y[i, ind[j]], NH[[i]][j]) } STH <- apply(Y, 2, min) sTree$edge.length <- STH[sTree$edge[,1]] - STH[sTree$edge[,2]] } sTree } phangorn/R/simSeq.R0000644000176200001440000001516313203635050013656 0ustar liggesusers# # add codon models, change to phyDat statt 3* # #' Simulate sequences. #' #' Simulate sequences for a given evolutionary tree. #' #' \code{simSeq} is now a generic function to simulate sequence alignments. It #' is quite flexible and allows to generate DNA, RNA, amino acids or binary #' sequences. It is possible to give a \code{pml} object as input simSeq #' return a \code{phyDat} from these model. There is also a more low level #' version, which lacks rate variation, but one can combine different #' alignments having their own rate (see example). The rate parameter acts like #' a scaler for the edge lengths. #' #' @param x a phylogenetic tree \code{tree}, i.e. an object of class #' \code{phylo} or and object of class \code{pml}. #' @param l length of the sequence to simulate. #' @param Q the rate matrix. #' @param bf base frequencies. #' @param rootseq a vector of length l containing the root sequence, other root #' sequence is randomly generated. #' @param type Type of sequences ("DNA", "AA" or "USER"). #' @param model Amino acid models: e.g. "WAG", "JTT", "Dayhoff" or "LG" #' @param levels \code{levels} takes a character vector of the different bases, #' default is for nucleotide sequences, only used when type = "USER". #' @param rate mutation rate or scaler for the edge length, a numerical value #' greater than zero. #' @param ancestral Return ancestral sequences? #' @param \dots Further arguments passed to or from other methods. #' @return \code{simSeq} returns an object of class phyDat. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{phyDat}}, \code{\link{pml}}, \code{\link{SOWH.test}} #' @keywords cluster #' @examples #' #' \dontrun{ #' data(Laurasiatherian) #' tree <- nj(dist.ml(Laurasiatherian)) #' fit <- pml(tree, Laurasiatherian, k=4) #' fit <- optim.pml(fit, optNni=TRUE, model="GTR", optGamma=TRUE) #' data <- simSeq(fit) #' } #' #' tree <- rtree(5) #' plot(tree) #' nodelabels() #' #' # Example for simple DNA alignment #' data <- simSeq(tree, l = 10, type="DNA", bf=c(.1,.2,.3,.4), Q=1:6) #' as.character(data) #' #' # Example to simulate discrete Gamma rate variation #' rates <- discrete.gamma(1,4) #' data1 <- simSeq(tree, l = 100, type="AA", model="WAG", rate=rates[1]) #' data2 <- simSeq(tree, l = 100, type="AA", model="WAG", rate=rates[2]) #' data3 <- simSeq(tree, l = 100, type="AA", model="WAG", rate=rates[3]) #' data4 <- simSeq(tree, l = 100, type="AA", model="WAG", rate=rates[4]) #' data <- c(data1,data2, data3, data4) #' #' write.phyDat(data, file="temp.dat", format="sequential", nbcol = -1, #' colsep = "") #' unlink("temp.dat") #' #' @rdname simSeq #' @export simSeq simSeq <- function (x, ...) UseMethod("simSeq") #' @rdname simSeq #' @method simSeq phylo #' @export simSeq.phylo <- function(x, l=1000, Q=NULL, bf=NULL, rootseq=NULL, type = "DNA", model=NULL, levels = NULL, rate=1, ancestral=FALSE, ...){ if (!is.null(model)) { # model <- match.arg(model, c("USER", "WAG", "JTT", "LG", "Dayhoff", "cpREV", "mtmam", "mtArt", "MtZoa", "mtREV24")) model <- match.arg(model, .aamodels) #match.arg(model, c("USER", .aamodels)) getModelAA(model, bf=is.null(bf), Q=is.null(Q)) type <- "AA" } pt <- match.arg(type, c("DNA", "AA", "USER", "CODON")) if (pt == "DNA") levels <- c("a", "c", "g", "t") if (pt == "AA") levels <- c("a", "r", "n", "d", "c", "q", "e", "g", "h", "i", "l", "k", "m", "f", "p", "s", "t", "w", "y", "v") if (pt == "CODON"){ levels <- c("aaa", "aac", "aag", "aat", "aca", "acc", "acg", "act", "aga", "agc", "agg", "agt", "ata", "atc", "atg", "att", "caa", "cac", "cag", "cat", "cca", "ccc", "ccg", "cct", "cga", "cgc", "cgg", "cgt", "cta", "ctc", "ctg", "ctt", "gaa", "gac", "gag", "gat", "gca", "gcc", "gcg", "gct", "gga", "ggc", "ggg", "ggt", "gta", "gtc", "gtg", "gtt", "tac", "tat", "tca", "tcc", "tcg", "tct", "tgc", "tgg", "tgt", "tta", "ttc", "ttg", "ttt") Q <- as.numeric(.syn > 0) } if (pt == "USER") if(is.null(levels))stop("levels have to be supplied if type is USER") lbf <- length(levels) if(is.null(bf)) bf <- rep(1/lbf,lbf) if(is.null(Q)) Q <- rep(1,lbf*(lbf-1)/2) if(is.matrix(Q)) Q <- Q[lower.tri(Q)] eig <- edQt(Q, bf) m <- length(levels) if(is.null(rootseq))rootseq <- sample(levels, l, replace=TRUE, prob=bf) x <- reorder(x) edge <- x$edge nNodes <- max(edge) res <- matrix(NA, l, nNodes) parent <- as.integer(edge[, 1]) child <- as.integer(edge[, 2]) root <- as.integer(parent[!match(parent, child, 0)][1]) res[, root] <- rootseq tl <- x$edge.length for(i in seq_along(tl)){ from <- parent[i] to <- child[i] P <- getP(tl[i], eig, rate)[[1]] # avoid numerical problems for larger P and small t if(any(P < 0)) P[P<0] <- 0 for(j in 1:m){ ind <- res[,from]==levels[j] res[ind,to] <- sample(levels, sum(ind), replace=TRUE, prob=P[,j]) } } k <- length(x$tip.label) label <- c(x$tip.label, as.character((k+1):nNodes)) colnames(res) <- label if(!ancestral)res <- res[, x$tip.label, drop=FALSE] if(pt=="DNA") return(phyDat.DNA(as.data.frame(res, stringsAsFactors = FALSE), return.index=TRUE)) if(pt=="AA") return(phyDat.AA(as.data.frame(res, stringsAsFactors = FALSE), return.index=TRUE)) if(pt=="USER") return(phyDat.default(as.data.frame(res, stringsAsFactors = FALSE), levels = levels, return.index=TRUE)) if(pt=="CODON"){ res <- apply(res, 2, function(x)unlist(strsplit(x, ""))) return(phyDat.codon(as.data.frame(res, stringsAsFactors = FALSE))) } } #' @rdname simSeq #' @method simSeq pml #' @export simSeq.pml <- function(x, ancestral=FALSE, ...){ g <- x$g w <- x$w if(x$inv>0){ w <- c(x$inv, w) g <- c(0.0, g) } n <- length(w) res <- vector("list", n) y <- sample(n, sum(x$weight), replace=TRUE, prob=w) levels <- attr(x$data, "levels") type <- attr(x$data, "type") for(i in 1:n){ l <- sum(y==i) res[[i]] <- simSeq(x$tree, l, Q=x$Q, bf=x$bf, type=type, levels=levels, rate=g[i], ancestral=ancestral) } x <- call("c.phyDat", quote(res[[1]])) if(n>1) x <- parse(text= paste("c(", "res[[1]]", paste0(",res[[", 2:n, "]]", collapse=""), ")")) eval(x) } phangorn/R/treeManipulation.R0000644000176200001440000006001613236367307015747 0ustar liggesusers# # tree manipulation # # no checks for postorder #' @rdname midpoint #' @export getRoot <- function (tree) { if(!is.null(attr(tree, "order")) && attr(tree, "order") == "postorder"){ return(tree$edge[nrow(tree$edge), 1]) } z <- logical(max(tree$edge)) z[tree$edge[, 1]] <- TRUE z[tree$edge[, 2]] <- FALSE z <- which(z) if (length(z) == 1) return(z) else stop("There are apparently two root edges in your tree") } # renames root node reroot <- function (tree, node) { anc <- Ancestors(tree, node, "all") l <- length(anc) if(is.na(match(node,tree$edge[,1])))stop("node not in tree") if(l==0)return(tree) ind <- match(c(node, anc[-l]), tree$edge[, 2]) tree$edge[ind, c(1, 2)] <- tree$edge[ind, c(2, 1)] root <- anc[l] tree$edge[tree$edge == root] <- 0L tree$edge[tree$edge == node] <- root tree$edge[tree$edge == 0L] <- node # needed for unrooted trees tree <- collapse.singles(tree) attr(tree, "order") <- NULL reorder(tree, "postorder") } reroot2 <- function(tree, node) { if(node==getRoot(tree)) return(tree) anc <- Ancestors(tree, node, "all") l <- length(anc) ind <- match(c(node, anc[-l]), tree$edge[, 2]) tree$edge[ind, c(1, 2)] <- tree$edge[ind, c(2, 1)] reorderPruning(tree) } changeEdge <- function (tree, swap, edge = NULL, edge.length = NULL) { attr(tree, "order") <- NULL child <- tree$edge[, 2] tmp <- numeric(max(child)) tmp[child] <- seq_along(child) tree$edge[tmp[swap[1]], 2] <- swap[2] tree$edge[tmp[swap[2]], 2] <- swap[1] if (!is.null(edge)) { tree$edge.length[tmp[edge]] <- edge.length } reorder(tree, "postorder") } changeEdgeLength <- function (tree, edge, edge.length) { tree$edge.length[match(edge, tree$edge[,2])] <- edge.length tree } ## @aliases midpoint pruneTree getRoot #' Tree manipulation #' #' \code{midpoint} performs midpoint rooting of a tree. \code{pruneTree} #' produces a consensus tree. #' #' \code{pruneTree} prunes back a tree and produces a consensus tree, for trees #' already containing nodelabels. It assumes that nodelabels are numerical or #' character that allows conversion to numerical, it uses #' as.numeric(as.character(tree$node.labels)) to convert them. \code{midpoint} #' so far does not transform node.labels properly. #' #' @param tree an object of class \code{phylo} #' @param FUN a function evaluated on the nodelabels, result must be logical. #' @param node.labels are nodel labels 'support' values, 'label' or should be #' 'deleted' #' @param \dots further arguments, passed to other methods. #' @return \code{pruneTree} and \code{midpoint} a tree. \code{getRoot} returns #' the root node. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link[ape]{consensus}}, \code{\link[ape]{root}}, #' \code{\link[ape]{di2multi}} #' @keywords cluster #' @examples #' #' tree <- unroot(rtree(10)) #' tree$node.label <- c("", round(runif(tree$Nnode-1), 3)) #' #' tree2 <- midpoint(tree) #' tree3 <- pruneTree(tree, .5) #' #' par(mfrow = c(3,1)) #' plot(tree, show.node.label=TRUE) #' plot(tree2, show.node.label=TRUE) #' plot(tree3, show.node.label=TRUE) #' #' @rdname midpoint #' @export midpoint midpoint <- function(tree, node.labels = "support", ...) UseMethod("midpoint") #' @rdname midpoint #' @method midpoint phylo #' @export midpoint.phylo <- function(tree, node.labels = "support", ...){ # distance from node to root node2root <- function(x){ x <- reorder(x, "postorder") el <- numeric(max(x$edge)) parents <- x$edge[, 1] child <- x$edge[, 2] el[child] <- x$edge.length l <- length(parents) res <- numeric(max(x$edge)) for(i in l:1){ res[child[i]] <- el[child[i]] + res[parents[i]] } res } if(is.null(tree$edge.length)){ warning("tree needs edge length") return(tree) } oldtree <- tree tree <- unroot(tree) nTips <- length(tree$tip.label) maxD1 <- node2root(tree)[1:nTips] ind <- which.max(maxD1) tmproot <- Ancestors(tree, ind, "parent") nTips <- length(tree$tip.label) if(tmproot>nTips) tree <- root(tree, node=tmproot) else tree <- root(tree, tmproot) el <- numeric(max(tree$edge)) el[tree$edge[,2]] <- tree$edge.length maxdm <- el[ind] tree$edge.length[tree$edge[,2]==ind] <- 0 maxD1 <- node2root(tree)[1:nTips] tree$edge.length[tree$edge[,2]==ind] <- maxdm ind <- c(ind, which.max(maxD1) ) maxdm <- maxdm + maxD1[ind[2]] rn <- max(tree$edge)+1 edge <- tree$edge el <- tree$edge.length children <- tree$edge[,2] left <- match(ind[1], children) tmp <- Ancestors(tree, ind[2], "all") tmp <- c(ind[2], tmp[-length(tmp)]) right <- match(tmp, children) if(el[left]>= (maxdm/2)){ edge <- rbind(edge, c(rn, ind[1])) edge[left,2] <- rn el[left] <- el[left] - (maxdm/2) el <- c(el, maxdm/2) } else{ sel <- cumsum(el[right]) i <- which(sel>(maxdm/2))[1] edge <- rbind(edge, c(rn, tmp[i])) edge[right[i],2] <- rn eltmp <- sel[i] - (maxdm/2) el <- c(el, el[right[i]] - eltmp) el[right[i]] <- eltmp } tree$edge.length <- el tree$edge <- edge tree$Nnode <- tree$Nnode+1 attr(tree, "order") <- NULL tree <- reroot(tree, rn) if(!is.null(tree$node.label)){ node.label <- tree$node.label tmp <- node.label[1] node.label[1] <- node.label[rn-nTips] node.label[rn-nTips] <- tmp node.label[is.na(node.label)] <- "" tree$node.label <- node.label } attr(tree, "order") <- NULL tree <- reorder(tree, "postorder") # tree <- reorder(reroot(tree, rn), "postorder") # if(!is.null(oldtree$node.label))tree <- addConfidences.phylo(tree, oldtree) if(!is.null(oldtree$node.label)){ type <- match.arg(node.labels, c("support", "label", "delete")) if(type=="support") tree <- addConfidences.phylo(tree, oldtree) if(type=="delete") tree$node.label <- NULL } tree } #' @rdname midpoint #' @method midpoint multiPhylo #' @export midpoint.multiPhylo <- function(tree, node.labels = "support", ...){ if(!is.null(attr(tree, "TipLabel"))) compress <- TRUE else compress <- FALSE tree <- lapply(tree, midpoint.phylo, node.labels = node.labels) class(tree) <- "multiPhylo" if(compress) tree <- .compressTipLabel(tree) tree } #' @rdname midpoint #' @export pruneTree <- function(tree, ..., FUN = ">="){ if(is.null(tree$node)) stop("no node labels") if(is.rooted(tree)) tree <- unroot(tree) m <- max(tree$edge) nTips <- length(tree$tip.label) bs <- rep(TRUE, m) bs[ (nTips+1) : m] <- sapply(as.numeric(as.character(tree$node)), FUN,...) tree$edge.length[!bs[tree$edge[,2]]] <- 0 reorder(di2multi(tree), "postorder") } # requires postorder # works fine with fit.fitch # for internal use in fitch.spr # pos statt i dropTip <- function(x, i, check.binary=FALSE, check.root=TRUE){ edge <- x$edge root <- getRoot(x) ch <- which(edge[,2] == i) pa <- edge[ch,1] edge <- edge[-ch,] ind <- which(edge[,1] == pa) if(root == pa){ if(length(ind)==1){ edge <- edge[-ind,] x$Nnode <- x$Nnode-1L } if(length(ind)==2){ n <- dim(edge)[1] newroot <- edge[n-2L,1] newedge <- edge[ind,2] if(newedge[1]==newroot)edge[n-1,] <- newedge else edge[n-1,] <- newedge[2:1] edge <- edge[-n,] x$Nnode <- x$Nnode-1L edge[edge==newroot] <- root pa <- newroot } # todo handle unrooted trees } else{ nind <- which(edge[,2] == pa) # normal binary case if(length(ind)==1){ edge[nind,2] <- edge[ind,2] edge <- edge[-ind,] x$Nnode <- x$Nnode-1L } } # edge[edge>pa] <- edge[edge>pa] -1L x$edge <- edge x } # like drop tip and returns two trees, # to be used in fitch.spr # ch = allKids(edge, nTips) descAll <- function (x, node, nTips, ch) { edge <- x[,1] m <- max(x) isInternal <- logical(m) isInternal[(nTips+1):m] <- TRUE desc <- function(node, isInternal) { if (!isInternal[node]) return(node) res <- NULL while (length(node) > 0) { tmp <- unlist(ch[node]) res <- c(res, tmp) node <- tmp[isInternal[tmp]] } res } desc(node, isInternal) } dropNode <- function(x, i, check.binary=FALSE, check.root=TRUE, all.ch=NULL){ edge <- x$edge root <- getRoot(x) ch <- which(edge[,2] == i) # getIndexEdge(tip, edge) nTips <- length(x$tip.label) pa <- edge[ch,1] if(i>nTips){ # kids <- Descendants(x, i, "all") if(is.null(all.ch)) all.ch <- allChildren(x) kids <- descAll(edge, i, nTips, all.ch) ind <- match(kids,edge[,2]) edge2 <- edge[sort(ind),] edge <- edge[-c(ch, ind),] } else edge <- edge[-ch,] if(nrow(edge)<3)return(NULL) ind <- which(edge[,1] == pa) if(root == pa){ if(length(ind)==1){ edge <- edge[-ind,] x$Nnode <- x$Nnode-1L } if(length(ind)==2){ n <- dim(edge)[1] newroot <- edge[n-2L,1] newedge <- edge[ind,2] if(newedge[1]==newroot)edge[n-1,] <- newedge else edge[n-1,] <- newedge[2:1] edge <- edge[-n,] x$Nnode <- length(unique(edge[,1])) edge[edge==newroot] <- root pa <- newroot } # todo handle unrooted trees } else{ nind <- which(edge[,2] == pa) # normal binary case if(length(ind)==1){ edge[nind,2] <- edge[ind,2] edge <- edge[-ind,] x$Nnode <- length(unique(edge[,1])) } } x$edge <- edge y <- x y$edge <- edge2 y$Nnode <- length(unique(edge2[,1])) list(x, y, pa) } # postorder remained tip in 1:nTips addOne <- function (tree, tip, i){ edge <- tree$edge parent <- edge[,1] l <- dim(edge)[1] m <- max(edge)+1L p <- edge[i,1] k <- edge[i,2] edge[i, 2] <- m ind <- match(p, parent) if(ind==1) edge <- rbind(matrix(c(m,m,k,tip), 2, 2), edge) else edge <- rbind(edge[1:(ind-1), ], matrix(c(m,m,k,tip), 2, 2), edge[ind:l, ]) tree$edge <- edge tree$Nnode <- tree$Nnode+1 tree } addOneTree <- function (tree, subtree, i, node){ edge <- tree$edge parent <- edge[,1] l <- dim(edge)[1] m <- node #max(edge)+1L p <- edge[i,1] k <- edge[i,2] edge[i, 2] <- m edge2 <- subtree$edge ind <- match(p, parent) r2 <- edge2[nrow(edge2),1] if(ind==1) edge <- rbind(edge2, matrix(c(m,m,r2,k), 2, 2), edge) else edge <- rbind(edge[1:(ind-1), ], edge2, matrix(c(m,m,r2,k), 2, 2), edge[ind:l, ]) tree$edge <- edge tree$Nnode <- tree$Nnode + subtree$Nnode + 1L attr(tree, "order") <- NULL tips1 <- as.integer(length(tree$tip.label) + 1L) tmproot <- getRoot(tree) if(tmproot!=tips1){ tree$edge[tree$edge==tmproot] <- 0L tree$edge[tree$edge==tips1] <- tmproot tree$edge[tree$edge==0L] <- tips1 } tree <- reorder(tree, "postorder") if(tmproot!=tips1) tree <- unroot(tree) tree } reorderPruning <- function (x, ...) { edge <- x$edge parents <- as.integer(edge[, 1]) child <- as.integer(edge[, 2]) root <- as.integer(parents[!match(parents, child, 0)][1]) # unique out if (length(root) > 2) stop("more than 1 root found") n <- length(parents) m <- max(edge) # edge parents neworder <- .C("C_reorder", parents, child, as.integer(n), as.integer(m), integer(n), as.integer(root-1L), PACKAGE = "phangorn")[[5]] x$edge <- edge[neworder,] x$edge.length <- x$edge.length[neworder] attr(x, "order") <- "pruningwise" x } #' Add tips to a tree #' #' This function binds tips to nodes of a phylogenetic trees. #' #' #' @param tree an object of class "phylo". #' @param tips a character vector containing the names of the tips. #' @param where an integer or character vector of the same length as tips giving #' the number of the node or tip of the tree x where the tree y is binded. #' @param edge.length optional numeric vector with edge length #' @return an object of class phylo #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{bind.tree}} #' @keywords cluster #' @examples #' #' tree <- rcoal(10) #' plot(tree) #' nodelabels() #' tiplabels() #' tree1 <- add.tips(tree, c("A", "B", "C"), c(1,2,15)) #' plot(tree1) #' @export add.tips <- function(tree, tips, where, edge.length=NULL){ nTips <- length(tree$tip.label) nTips_new <- length(tips) if(nTips_new < 1) return(tree) edge <- tree$edge if(is.character(where)){ where <- match(where, c(tree$tip.label, tree$node.label)) } ind <- match(where, edge[,2]) n_internal <- sum(unique(where)<=nTips) edge[edge>nTips] <- edge[edge>nTips] + nTips_new p_vec <- integer(max(edge) + n_internal) p_vec[edge[,2]] <- edge[,1] tip_index <- (nTips +1) : (nTips + nTips_new) c_vec <- c(edge[,2], tip_index) # first handle internal nodes (easy) if(any(where>nTips)){ ind1 <- where>nTips p_vec[tip_index[ind1]] <- where[ind1] + nTips_new } # handle tips if(any(where<=nTips)){ m <- max(edge) tmp <- unique(where) tmp <- tmp[tmp<=nTips] new_internal <- as.integer((m+1L) : (m + n_internal)) # add new internal node p_vec[new_internal] <- edge[match(tmp,edge[,2]),1] p_vec[tmp] <- new_internal # add tip ind2 <- (where <= nTips) p_vec[tip_index[ind2]] <- p_vec[where[ind2]] # browser() ind <- match(tmp, edge[,2]) c_vec[ind] <- new_internal c_vec <- c(c_vec, tmp) if(!is.null(tree$node.label)){ tree$node.label <- c(tree$node.label, rep("", n_internal)) } } tree$edge <- matrix(c(p_vec[c_vec], c_vec), ncol=2) if(!is.null(tree$edge.length)){ if(is.null(edge.length)){ tree$edge.length <- c(tree$edge.length, rep(0, nTips_new + n_internal)) } else { if(length(edge.length) < nTips_new) edge.length <- rep(edge.length, length.out=nTips_new) tree$edge.length <- c(tree$edge.length, edge.length, rep(0, n_internal)) } } tree$Nnode <- tree$Nnode + n_internal tree$tip.label <- c(tree$tip.label, tips) attr(tree, "order") <- NULL tree <- reorder(tree) if(!is.null(tree$edge.length)){ if(is.null(edge.length)){ nh <- nodeHeight(tree) nh[tip_index] <- 0 tree$edge.length <- nh[tree$edge[,1]] - nh[tree$edge[,2]] } } tree } #' Compute all trees topologies. #' #' \code{allTrees} computes all tree topologies for rooted or unrooted trees #' with up to 10 tips. \code{allTrees} returns bifurcating trees. #' #' #' @param n Number of tips (<=10). #' @param rooted Rooted or unrooted trees (default: rooted). #' @param tip.label Tip labels. #' @return an object of class \code{multiPhylo}. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link[ape]{rtree}}, \code{\link{nni}} #' @keywords cluster #' @examples #' #' trees <- allTrees(5) #' par(mfrow = c(3,5)) #' for(i in 1:15)plot(trees[[i]]) #' #' @export allTrees allTrees <- function (n, rooted = FALSE, tip.label = NULL) { n <- as.integer(n) nt <- as.integer(round(dfactorial(2 * (n + rooted) - 5))) if ((n + rooted) > 10) { stop(gettextf("That would generate %d trees, and take up more than %d MB of memory!", nt, as.integer(round(nt/1000)), domain = "R-phangorn")) } if (n < 2) { stop("A tree must have at least two taxa.") } if (!rooted && n == 2) { stop("An unrooted tree must have at least three taxa.") } if (rooted) { edge <- matrix(NA, 2*n-2, 2) edge[1:2,] <- c(n+1L, n+1L, 1L, 2L) } else { edge <- matrix(NA, 2*n-3, 2) edge[1:3,] <- c(n+1L, n+1L, n+1L, 1L, 2L, 3L) } edges <- list() edges[[1]] <- edge m <- 1 nedge <- 1 trees <- vector("list", nt) if ((n + rooted) > 3) { i <- 3L + (!rooted) pa <- n + 2L nr <- 2L + (!rooted) while(i < (n+1L)){ nedge <- nedge+2 m2 <- m * nedge newedges <- vector("list", m2) for (j in 1:m) { edge <- edges[[j]] l <- nr # nrow(edge) edgeA <- edge edgeB <- edge for (k in 1L:l) { edge <- edgeA node <- edge[k, 1] edge[k, 1] <- pa edge[l + 1, ] <- c(pa, i) edge[l + 2, ] <- c(node, pa) newedges[[(j - 1) * (l + rooted) + k]] <- edge } if(rooted) { edgeB[] <- as.integer(sub(n+1L, pa, edgeB)) edge <- edgeB edge[l + 1, ] <- c(n+1L, i) edge[l + 2, ] <- c(n+1L, pa) newedges[[j * (l + 1)]] <- edge } } # end for edges <- newedges m <- m2 i <- i + 1L pa <- pa + 1L nr <- nr + 2L } # end for m } # end if for (x in 1:m) { tree <- list(edge = edges[[x]]) tree$Nnode <- n - 2L + rooted class(tree) <- "phylo" trees[[x]] <- reorderPruning(tree) } attr(trees, "TipLabel") <- if (is.null(tip.label)) paste("t", 1:n, sep = "") else tip.label class(trees) <- "multiPhylo" trees } # # some generic tree functions # allAncestors <- function(x){ x <- reorder(x, "postorder") parents <- x$edge[, 1] child <- x$edge[, 2] l <- length(parents) res <- vector("list",max(x$edge)) for(i in l:1){ pa <- parents[i] res[[child[i]]] <- c(pa, res[[pa]]) } res } ## @aliases Ancestors Children Descendants Siblings mrca.phylo #' tree utility function #' #' Functions for describing relationships among phylogenetic nodes. #' #' These functions are inspired by \code{treewalk} in phylobase package, but #' work on the S3 \code{phylo} objects. The nodes are the indices as given in #' edge matrix of an phylo object. From taxon labels these indices can be #' easily derived matching against the \code{tip.label} argument of an phylo #' object, see example below. All the functions allow \code{node} to be either #' a scalar or vector. \code{mrca} is a faster version of the mrca in ape, in #' phangorn only because of dependencies. #' If the argument node is missing the function is evaluated for all nodes. #' #' @param x a tree (a phylo object). #' @param node an integer or a vector of integers corresponding to a node ID #' @param type specify whether to return just direct children / parents or all #' @param include.self whether to include self in list of siblings #' @param full a logical indicating whether to return the MRCAs among all tips #' and nodes (if TRUE); the default is to return only the MRCAs among tips. #' @return a vector or a list containing the indices of the nodes. #' @seealso \code{treewalk}, \code{\link[ape]{phylo}}, #' \code{\link[ape]{nodelabels}} #' @keywords misc #' @examples #' #' tree <- rtree(10) #' plot(tree, show.tip.label = FALSE) #' nodelabels() #' tiplabels() #' Ancestors(tree, 1:3, "all") #' Children(tree, 11) #' Descendants(tree, 11, "tips") #' Siblings(tree, 3) #' # Siblings of all nodes #' Siblings(tree) #' mrca.phylo(tree, 1:3) #' mrca.phylo(tree, match(c("t1", "t2", "t3"), tree$tip)) #' mrca.phylo(tree) #' # same as mrca(tree), but faster for large trees #' #' @export #' @rdname Ancestors Ancestors <- function (x, node, type = c("all", "parent")) { parents <- x$edge[, 1] child <- x$edge[, 2] pvector <- integer(max(x$edge)) # parents pvector[child] <- parents type <- match.arg(type) if (type == "parent") return(pvector[node]) anc <- function(pvector, node){ res <- numeric(0) repeat { anc <- pvector[node] if (anc == 0) break res <- c(res, anc) node <- anc } res } if(!missing(node) && length(node)==1) return(anc(pvector, node)) else allAncestors(x)[node] } # new version using Rcpp allChildren <- function(x){ l <- length(x$tip.label) if(l<20){ parent <- x$edge[,1] children <- x$edge[,2] res <- vector("list", max(x$edge)) for(i in seq_along(parent)) res[[parent[i]]] <- c(res[[parent[i]]], children[i]) return(res) } else{ allChildrenCPP(x$edge) } } #' @describeIn Ancestors list all the descendant nodes of each node #' @keywords internal #' @export allDescendants <- function(x){ if (is.null(attr(x, "order")) || attr(x, "order") != "postorder") x <- reorder(x, "postorder") nTips <- as.integer(length(x$tip.label)) allDescCPP(x$edge, nTips) } #' @rdname Ancestors #' @export Children <- function(x, node){ # return allChildren if node is missing if(!missing(node) && length(node)==1)return(x$edge[x$edge[,1]==node,2]) allChildren(x)[node] } #' @rdname Ancestors #' @export Descendants <- function(x, node, type=c("tips","children","all")){ type <- match.arg(type) if(type=="children") return(Children(x, node)) if(type=="tips") return(bip(x)[node]) # new version using Rcpp if(missing(node) || length(node)>10) return(allDescendants(x)[node]) ch <- allChildren(x) # out of the loop isInternal <- logical(max(x$edge)) isInternal[ unique(x$edge[,1]) ] <- TRUE desc <- function(node, isInternal){ if(!isInternal[node])return(node) res <- NULL while(length(node)>0){ tmp <- unlist(ch[node]) res <- c(res, tmp) node <- tmp[isInternal[tmp]] } res } if(length(node)>1) return(lapply(node, desc, isInternal)) desc(node, isInternal) } #' @rdname Ancestors #' @export Siblings <- function (x, node, include.self = FALSE) { if(missing(node)) node <- as.integer(1:max(x$edge)) l <- length(node) if(l==1){ v <- Children(x, Ancestors(x, node, "parent")) if (!include.self) v <- v[v != node] return(v) } else{ parents <- x$edge[, 1] child <- x$edge[, 2] pvector <- integer(max(x$edge)) # parents pvector[child] <- parents root <- as.integer(parents[!match(parents, child, 0)][1]) res <- vector("list", l) ch <- allChildren(x) if(include.self) return(ch[ pvector[node] ]) k <- 1 for(i in node){ if(i != root){ tmp <- ch[[ pvector[i] ]] res[[k]] <- tmp[tmp != i] } k <- k+1 } } res } #' @rdname Ancestors #' @export mrca.phylo <- function(x, node=NULL, full=FALSE){ if(is.null(node)) return(mrca2(x, full = full)) return(getMRCA(x, node)) } # should be in ape mrca2 <- function(phy, full=FALSE){ Nnode <- phy$Nnode Ntips <- length(phy$tip.label) phy <- reorder(phy) nodes <- unique(phy$edge[,1]) if(!full){ res <- Descendants(phy, nodes, "tips") M <- matrix(nodes[1], Ntips, Ntips) for(i in 2:Nnode)M[res[[i]], res[[i]]]<-nodes[i] diag(M) <- 1:Ntips dimnames(M) <- list(phy$tip.label, phy$tip.label) } else{ res <- Descendants(phy, nodes, "all") M <- matrix(nodes[1], Ntips+Nnode, Ntips+Nnode) for(i in 2:Nnode){ tmp <- c(res[[i]], nodes[i]) M[tmp, tmp]<-nodes[i] } diag(M) <- 1:(Ntips+Nnode) dimnames(M) <- list(1:(Ntips+Nnode),1:(Ntips+Nnode)) } M } phangorn/R/dist.p.R0000644000176200001440000001277013236366614013634 0ustar liggesusers#' Pairwise Polymorphism P-Distances from DNA Sequences #' #' This function computes a matrix of pairwise uncorrected polymorphism #' p-distances. Polymorphism p-distances include intra-individual site #' polymorphisms (2ISPs; e.g. "R") when calculating genetic distances. #' #' The polymorphism p-distances (Potts et al. 2014) have been developed to #' analyse intra-individual variant polymorphism. For example, the widely used #' ribosomal internal transcribed spacer (ITS) region (e.g. Alvarez and Wendel, #' 2003) consists of 100's to 1000's of units within array across potentially #' multiple nucleolus organising regions (Bailey et al., 2003; Goeker and #' Grimm, 2008). This can give rise to intra-individual site polymorphisms #' (2ISPs) that can be detected from direct-PCR sequencing or cloning . Clone #' consensus sequences (see Goeker and Grimm, 2008) can be analysed with this #' function. #' #' @param x a matrix containing DNA sequences; this must be of class "phyDat" #' (use as.phyDat to convert from DNAbin objects). #' @param cost A cost matrix or "polymorphism" for a predefined one. #' @param ignore.indels a logical indicating whether gaps are treated as fifth #' state or not. Warning, each gap site is treated as a characters, so an an #' indel that spans a number of base positions would be treated as multiple #' character states. #' @return an object of class \code{dist}. #' @author Klaus Schliep and Alastair Potts #' @seealso \code{\link[ape]{dist.dna}}, \code{\link[phangorn]{dist.hamming}} #' @references Alvarez, I., and J. F. Wendel. (2003) Ribosomal ITS sequences #' and plant phylogenetic inference. \emph{ Molecular Phylogenetics and #' Evolution}, \bold{29}, 417--434. #' #' Bailey, C. D., T. G. Carr, S. A. Harris, and C. E. Hughes. (2003) #' Characterization of angiosperm nrDNA polymorphism, paralogy, and #' pseudogenes. \emph{Molecular Phylogenetics and Evolution} \bold{29}, #' 435--455. #' #' Goeker, M., and G. Grimm. (2008) General functions to transform associate #' data to host data, and their use in phylogenetic inference from sequences #' with intra-individual variability. \emph{BMC Evolutionary Biology}, #' \bold{8}:86. #' #' Potts, A.J., T.A. Hedderson, and G.W. Grimm. (2014) Constructing phylogenies #' in the presence of intra-individual site polymorphisms (2ISPs) with a focus #' on the nuclear ribosomal cistron. \emph{Systematic Biology}, \bold{63}, #' 1--16 #' @keywords cluster #' @examples #' #' data(Laurasiatherian) #' laura <- as.DNAbin(Laurasiatherian) #' #' dm <- dist.p(Laurasiatherian, "polymorphism") #' #' ######################################################## #' # Dealing with indel 2ISPs #' # These can be coded using an "x" in the alignment. Note #' # that as.character usage in the read.dna() function. #' ######################################################### #' cat("3 5", #' "No305 ATRA-", #' "No304 ATAYX", #' "No306 ATAGA", #' file = "exdna.txt", sep = "\n") #' (ex.dna <- read.dna("exdna.txt", format = "sequential", as.character=TRUE)) #' dat <- phyDat(ex.dna, "USER", levels=unique(as.vector(ex.dna))) #' dist.p(dat) #' #' #' @export dist.p dist.p <- function (x, cost="polymorphism", ignore.indels=TRUE) { if (!inherits(x,"phyDat")) stop("x must be of class phyDat") l <- length(x) weight <- attr(x, "weight") n <- length(attr(x, "allLevels")) d <- numeric((l * (l - 1))/2) lev <- attr(x, "allLevels") if(is.null(cost)){ cost <- 1 - diag(n) dimnames(cost) <- list(lev, lev) } # if(cost=="polymorphism" && attr(x, "type")=="DNA"){ if(cost=="polymorphism"){ costLev <- c('a','c','t','u','g','x','m','r','w','s','y','k','v','h','d','b','-','?','n') cost <- matrix(c( #a,c,t,u,g,X,m,r,w,s,y,k,v,h,d,b,-,?,n, 0,2,2,2,2,1,1,1,1,3,3,3,2,2,2,4,2,0,0, #a 2,0,2,2,2,1,1,3,3,1,1,3,2,2,4,2,2,0,0, #c 2,2,0,0,2,1,3,3,1,3,1,1,4,2,2,2,2,0,0, #t 2,2,0,0,2,1,3,3,1,3,1,1,4,2,2,2,2,0,0, #u 2,2,2,2,0,1,3,1,3,1,3,1,2,4,2,2,2,0,0, #g 1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,0, #X 1,1,3,3,3,1,0,2,2,2,2,4,1,1,3,3,3,0,0, #m 1,3,3,3,1,1,2,0,2,2,4,2,1,3,1,3,3,0,0, #r 1,3,1,1,3,1,2,2,0,4,2,2,3,1,1,3,3,0,0, #w 3,1,3,3,1,1,2,2,4,0,2,2,1,3,3,1,3,0,0, #s 3,1,1,1,3,1,2,4,2,2,0,2,3,1,3,1,3,0,0, #y 3,3,1,1,1,1,4,2,2,2,2,0,3,3,1,1,3,0,0, #k 2,2,4,4,2,1,1,1,3,1,3,3,0,2,2,2,4,0,0, #v 2,2,2,2,4,1,1,3,1,3,1,3,2,0,2,2,4,0,0, #h 2,4,2,2,2,1,3,1,1,3,3,1,2,2,0,2,4,0,0, #d 4,2,2,2,2,1,3,3,3,1,1,1,2,2,2,0,4,0,0, #b 2,2,2,2,2,1,3,3,3,3,3,3,4,4,4,4,0,0,0, #- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, #? 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),#n ncol = 19,nrow=19,dimnames=list(costLev,costLev)) } lev1 <- dimnames(cost)[[1]] if(any(is.na(match(lev, lev1)))) stop("Levels of x are not in levels of cost matrix!") if (ignore.indels) { cost["-",] <- 0 cost[,"-"] <- 0 } cost <- cost[lev, lev] k <- 1 for (i in 1:(l - 1)) { for (j in (i + 1):l) { d[k] <- sum(weight * cost[cbind(x[[i]], x[[j]])]) k <- k + 1 } } attr(d, "Size") <- l if (is.list(x)) attr(d, "Labels") <- names(x) else attr(d, "Labels") <- colnames(x) attr(d, "Diag") <- FALSE attr(d, "Upper") <- FALSE attr(d, "call") <- match.call() attr(d, "method") <- "p" class(d) <- "dist" return(d) } phangorn/R/zzz.R0000644000176200001440000000116713223000270013241 0ustar liggesusers## zzz.R .packageName <- "phangorn" .aamodels <- c("WAG", "JTT", "LG", "Dayhoff", "cpREV", "mtmam", "mtArt", "MtZoa", "mtREV24", "VT","RtREV", "HIVw", "HIVb", "FLU","Blosum62","Dayhoff_DCMut","JTT_DCMut") .dnamodels <- c("JC", "F81", "K80", "HKY", "TrNe", "TrN", "TPM1", "K81", "TPM1u", "TPM2", "TPM2u", "TPM3", "TPM3u", "TIM1e", "TIM1", "TIM2e", "TIM2", "TIM3e", "TIM3", "TVMe", "TVM", "SYM", "GTR") # if rate g[i] is smaller than .gEps invariant site is increased by w[i] .gEps <- 1e-12 .PlotNetworxEnv <- new.env() # .onLoad <- function(libname, pkgname) { # library.dynam("phangorn", pkgname, libname) #} phangorn/R/parsimony.R0000644000176200001440000005775513240405176014460 0ustar liggesusers# # Maximum Parsimony # rowMin <- function(X){ d <- dim(X) .Call("C_rowMin", X, as.integer(d[1]), as.integer(d[2]), PACKAGE = "phangorn") } sankoff.quartet <- function (dat, cost, p, l, weight) { erg <- .Call("sankoffQuartet", sdat = dat, sn = p, scost = cost, sk = l, PACKAGE = "phangorn") sum(weight * erg) } #' Parsimony tree. #' #' #' \code{parsimony} returns the parsimony score of a tree using either the #' sankoff or the fitch algorithm. \code{optim.parsimony} tries to find the #' maximum parsimony tree using either Nearest Neighbor Interchange (NNI) #' rearrangements or sub tree pruning and regrafting (SPR). \code{pratchet} #' implements the parsimony ratchet (Nixon, 1999) and is the preferred way to #' search for the best tree. \code{random.addition} can be used to produce #' starting trees. #' #' The "SPR" rearrangements are so far only available for the "fitch" method, #' "sankoff" only uses "NNI". The "fitch" algorithm only works correct for #' binary trees. #' #' @aliases parsimony #' @aliases optim.parsimony sankoff fitch pratchet #' random.addition acctran #' @param data A object of class phyDat containing sequences. #' @param tree tree to start the nni search from. #' @param method one of 'fitch' or 'sankoff'. #' @param cost A cost matrix for the transitions between two states. #' @param site return either 'pscore' or 'site' wise parsimony scores. #' @param trace defines how much information is printed during optimisation. #' @param rearrangements SPR or NNI rearrangements. #' @param start a starting tree can be supplied. #' @param maxit maximum number of iterations in the ratchet. #' @param k number of rounds ratchet is stopped, when there is no improvement. #' @param all return all equally good trees or just one of them. #' @param perturbation whether using a ratchet or stochastic (nni) for #' shuffling the tree. #' @param ... Further arguments passed to or from other methods (e.g. #' model="sankoff" and cost matrix). #' @return \code{parsimony} returns the maximum parsimony score (pscore). #' \code{optim.parsimony} returns a tree after NNI rearrangements. #' \code{pratchet} returns a tree or list of trees containing the best tree(s) #' found during the search. \code{acctran} returns a tree with edge length #' according to the ACCTRAN criterion. #' @author Klaus Schliep \email{klaus.schliep@@gmail.com} #' @seealso \code{\link{bab}}, \code{\link{CI}}, \code{\link{RI}}, \code{\link{ancestral.pml}}, #' \code{\link{nni}}, \code{\link{NJ}}, \code{\link{pml}}, \code{\link{getClans}} #' ,\code{\link{ancestral.pars}}, \code{\link{bootstrap.pml}} #' @references Felsenstein, J. (2004). \emph{Inferring Phylogenies}. Sinauer #' Associates, Sunderland. #' #' Nixon, K. (1999) The Parsimony Ratchet, a New Method for Rapid Parsimony #' Analysis. \emph{Cladistics} \bold{15}, 407-414 #' @keywords cluster #' @examples #' #' set.seed(3) #' data(Laurasiatherian) #' dm <- dist.hamming(Laurasiatherian) #' tree <- NJ(dm) #' parsimony(tree, Laurasiatherian) #' treeRA <- random.addition(Laurasiatherian) #' treeNNI <- optim.parsimony(tree, Laurasiatherian) #' treeRatchet <- pratchet(Laurasiatherian, start=tree, maxit=100, k=5) #' # assign edge length #' treeRatchet <- acctran(treeRatchet, Laurasiatherian) #' #' plot(midpoint(treeRatchet)) #' add.scale.bar(0,0, length=100) #' #' parsimony(c(tree,treeNNI, treeRatchet), Laurasiatherian) #' #' @rdname parsimony #' @export parsimony <- function(tree, data, method='fitch', ...){ if (class(data)[1] != "phyDat") stop("data must be of class phyDat") if(method=='sankoff') result <- sankoff(tree, data, ...) if(method=='fitch') result <- fitch(tree, data, ...) result } prepareDataFitch <- function (data) { lev <- attr(data, "levels") l <- length(lev) nr <- attr(data, "nr") nc <- length(data) contrast <- attr(data, "contrast") tmp <- contrast %*% 2L^c(0L:(l - 1L)) tmp <- as.integer(tmp) attrData <- attributes(data) nam <- attrData$names attrData$names <- NULL data <- unlist(data, FALSE, FALSE) X <- tmp[data] attributes(X) <- attrData attr(X, "dim") <- c(nr, nc) dimnames(X) <- list(NULL, nam) X } compressSites <- function(data){ attrData <- attributes(data) lev <- attr(data, "levels") LEV <- attr(data,"allLevels") l <- length(lev) nr <- attr(data, "nr") nc <- length(data) data <- unlist(data, FALSE, FALSE) attr(data, "dim") <- c(nr, nc) uni <- match(lev, LEV) fun <- function(x, uni) { u <- unique.default(x) res <- if(any(is.na(match(u, uni)))) return(x) match(x, u) } data <- t(apply(data, 1, fun, uni)) ddd <- fast.table(data) data <- ddd$data class(data) <- "list" attrData$weight <- tapply(attrData$weight,ddd$index, sum) attrData$index <- NULL attrData$nr <- length(attrData$weight) attrData$compressed <- TRUE attributes(data) <- attrData data } # # Branch and bound # parsinfo <- function (x) { low <- lowerBound(x) up <- upperBound(x) ind <- which(low==up) cbind(ind, low[ind]) } # greedy algorithm of Maximum Set Packing (MSP) problem # (should work in most instances) lowerBound <- function(x, cost=NULL){ tip <- names(x) att <- attributes(x) nc <- attr(x, "nc") nr <- attr(x, "nr") contrast <- attr(x, "contrast") rownames(contrast) <- attr(x, "allLevels") colnames(contrast) <- attr(x, "levels") attr(x, "weight") <- rep(1, nr) attr(x, "index") <- NULL y <- as.character(x) # states <- apply(y, 2, unique.default) return type not known states <- vector("list", ncol(y)) for(i in seq_len(ncol(y)))states[[i]] <- unique.default(y[,i]) singles <- which(rowSums(contrast) == 1) # noinfo <- which(rowSums(contrast) == nc) # ambiguous <- which( (rowSums(contrast) > 1) & (rowSums(contrast) < nc) ) # singles <- names(singles) noinfo <- names(noinfo) ambiguous <- names(ambiguous) fun <- function(states, contrast, singles, noinfo, ambiguous){ if(length(states)==1) return(0) states <- setdiff(states, noinfo) # get rid of "-", "?" in DNA if( (length(states)==0) | (length(states)==1) ) return(0) if( any(states %in% ambiguous)) { n <- 0 contrast <- contrast[states, , drop=FALSE] while(nrow(contrast) > 0){ m <- which.max(colSums(contrast)) contrast <- contrast[contrast[, m]==0 , , drop=FALSE] n <- n+1 } return(n-1) } else return(length(states)-1) } res <- sapply(states, fun, contrast, singles, noinfo, ambiguous) res } upperBound <- function(x, cost=NULL){ tree <- stree(length(x), tip.label=names(x)) if(is.null(cost))cost <- 1 - diag(attr(x, "nc")) sankoffNew(tree, x, cost=cost, site="site") } #' Consistency Index and Retention Index #' #' \code{CI} and \code{RI} compute the Consistency Index (CI) and Retention #' Index (RI). #' #' @details The Consistency Index is defined as minimum number of changes #' divided by the number of changes required on the tree (parsimony score). The #' Consistency Index is equal to one if there is no homoplasy. #' And the Retention Index is defined as #' \deqn{RI = \frac{MaxChanges - ObsChanges}{MaxChanges - MinChanges}}{RI = (MaxChanges - ObsChanges) / (MaxChanges - MinChanges)} #' #' @param data A object of class phyDat containing sequences. #' @param tree tree to start the nni search from. #' @param cost A cost matrix for the transitions between two states. #' @param sitewise return CI/RI for alignment or sitewise #' #' @seealso \code{\link{parsimony}}, \code{\link{pratchet}}, \code{\link{fitch}}, #' \code{\link{sankoff}}, \code{\link{bab}}, \code{\link{ancestral.pars}} #' #' @rdname CI #' @export CI <- function (tree, data, cost = NULL, sitewise=FALSE) { if(sitewise) pscore <- sankoffNew(tree, data, cost = cost, site="site") else pscore <- sankoffNew(tree, data, cost = cost) weight <- attr(data, "weight") data <- subset(data, tree$tip.label) m <- lowerBound(data, cost = cost) if(sitewise){ return((m/pscore)[attr(data, "index")]) } sum(m * weight)/pscore } #' @rdname CI #' @export RI <- function (tree, data, cost = NULL, sitewise=FALSE) { if(sitewise) pscore <- sankoffNew(tree, data, cost = cost, site="site") else pscore <- sankoffNew(tree, data, cost = cost) data <- subset(data, tree$tip.label) weight <- attr(data, "weight") m <- lowerBound(data, cost = cost) g <- upperBound(data, cost = cost) if(sitewise){ res <- (g - pscore) / (g - m) # res[is.nan(res)] <- 0 return(res[attr(data, "index")]) } m <- sum(m * weight) g <- sum(g * weight) (g - pscore)/(g - m) } # not used add.one <- function (tree, tip.name, i){ if (!inherits(tree,"phylo")) stop("tree should be an object of class 'phylo.'") nTips <- length(tree$tip.label) tmpedge <- tree$edge m <- max(tmpedge) l <- nrow(tmpedge) trees <- vector("list", l) tmp <- tree tmp$tip.label <- c(tree$tip.label, tip.name) tmpedge[tmpedge > nTips] <- tmpedge[tmpedge > nTips] + 1L tmp$Nnode <- tmp$Nnode + 1L tmp$edge.length <- NULL tmpedge <- rbind(tmpedge, matrix(c(m + 2L, m + 2L, 0L, nTips + 1L), 2, 2)) edge <- tmpedge edge[l + 1L, 2] <- edge[i, 2] edge[i, 2] <- m + 2L neworder <- .C("C_reorder", edge[, 1], edge[, 2], as.integer(l + 2L), as.integer(m + 2L), integer(l + 2L), as.integer(nTips + 1L), PACKAGE = "phangorn")[[5]] tmp$edge <- edge[neworder, ] tmp } # # Sankoff # #old2new.phyDat <- function(data){} # works only for nucleotides old2new.phyDat <- function(obj){ att <- attributes(obj) l <- length(obj) contrast <- attr(obj, "contrast") nr <- attr(obj, "nr") X <- matrix(rep(rowSums(contrast), each=nr),nrow=nr) res <- vector("list", l) for(i in 1:l){ # browser() tmp <- X - tcrossprod(obj[[i]], contrast) res[[i]] <- unlist(apply(tmp, 1, function(x)which(x<1e-6)[1])) } attributes(res) <- att res } old2new.phyDat <- function(obj){ att <- attributes(obj) l <- length(obj) contrast <- attr(obj, "contrast") nr <- attr(obj, "nr") X <- matrix(rep(rowSums(contrast), each=nr),nrow=nr) for(i in 1:l)obj[[i]][obj[[i]]>0] <- 1 res <- vector("list", l) contrast[contrast==0] <- 1e6 for(i in 1:l){ tmp <- tcrossprod(obj[[i]], contrast) - X res[[i]] <- unlist(apply(tmp, 1, function(x)which(x<1e-6)[1])) } attributes(res) <- att res } new2old.phyDat <- function(data){ contrast <- attr(data, "contrast") for(i in seq_along(data)) data[[i]] <- contrast[data[[i]],,drop=FALSE] data } prepareDataSankoff <- function(data){ contrast <- attr(data, "contrast") contrast[contrast == 0] <- 1e+06 contrast[contrast == 1] <- 0 for (i in seq_along(data)) data[[i]] <- contrast[data[[i]], , drop = FALSE] data } #' @rdname parsimony #' @export sankoff <- function (tree, data, cost = NULL, site = 'pscore') { if (!inherits(data,"phyDat")) stop("data must be of class phyDat") data <- prepareDataSankoff(data) levels <- attr(data, "levels") l <- length(levels) if (is.null(cost)) { cost <- matrix(1, l, l) cost <- cost - diag(l) } for (i in seq_along(data)) storage.mode(data[[i]]) <- "double" if(inherits(tree,"phylo")) return(fit.sankoff(tree, data, cost, returnData =site)) if(inherits(tree,"multiPhylo")){ if(is.null(tree$TipLabel))tree <- unclass(tree) return(sapply(tree, fit.sankoff, data, cost, site)) } } fit.sankoff <- function (tree, data, cost, returnData = c("pscore", "site", "data")) { if (is.null(attr(tree, "order")) || attr(tree, "order") == "cladewise") tree <- reorder(tree, "postorder") returnData <- match.arg(returnData) node <- tree$edge[, 1] edge <- tree$edge[, 2] weight <- attr(data, "weight") nr <- p <- attr(data, "nr") q <- length(tree$tip.label) nc <- l <- attr(data, "nc") m <- length(edge) + 1 dat <- vector(mode = "list", length = m) dat[1:q] <- data[tree$tip.label] node <- as.integer(node - 1) edge <- as.integer(edge - 1) nTips <- as.integer(length(tree$tip.label)) mNodes <- as.integer(max(node) + 1) tips <- as.integer((seq_along(tree$tip.label))-1) res <- .Call("sankoff3", dat, as.numeric(cost), as.integer(nr),as.integer(nc), node, edge, mNodes, tips, PACKAGE="phangorn") root <- getRoot(tree) erg <- .Call("C_rowMin", res[[root]], as.integer(nr), as.integer(nc), PACKAGE = "phangorn") if (returnData=='site') return(erg) pscore <- sum(weight * erg) result <- pscore if (returnData=="data"){ result <- list(pscore = pscore, dat = res) } result } pnodes <- function (tree, data, cost) { if (is.null(attr(tree, "order")) || attr(tree, "order") == "cladewise") tree <- reorder(tree, "postorder") node <- tree$edge[, 1] edge <- tree$edge[, 2] nr <- nrow(data[[1]]) nc <- ncol(data[[1]]) node <- as.integer(node - 1) edge <- as.integer(edge - 1) .Call("pNodes", data, as.numeric(cost), as.integer(nr),as.integer(nc), node, edge, PACKAGE="phangorn") } indexNNI <- function(tree){ parent <- tree$edge[, 1] child <- tree$edge[, 2] ind <- which(child %in% parent) Nnode <- tree$Nnode edgeMatrix <- matrix(0,(Nnode-1),5) pvector <- integer(max(parent)) pvector[child] <- parent tips <- !logical(max(parent)) tips[parent] <- FALSE # cvector <- allCildren(tree) cvector <- vector("list",max(parent)) for(i in seq_along(parent)) cvector[[parent[i]]] <- c(cvector[[parent[i]]], child[i]) k <- 0 for(i in ind){ p1 <- parent[i] p2 <- child[i] e34 <- cvector[[p2]] ind1 <- cvector[[p1]] e12 <- ind1[ind1 != p2] if(pvector[p1])e12 <- c(p1,e12) edgeMatrix[k+1, ] <- c(e12,e34,p2) k <- k+1 } # vielleicht raus attr(edgeMatrix, 'root') <-cvector[[min(parent)]] edgeMatrix } sankoff.nni <- function (tree, data, cost, ...) { if(is.rooted(tree))tree<- reorder(unroot(tree), "postorder") INDEX <- indexNNI(tree) rootEdges <- attr(INDEX,"root") if (!inherits(data,"phyDat")) stop("data must be of class phyDat") levels <- attr(data, "levels") l <- length(levels) weight <- attr(data, "weight") p <- attr(data, "nr") kl <- TRUE i <- 1 tmp <- fit.sankoff(tree, data, cost, returnData='data') p0 <- tmp[[1]] datf <- tmp[[2]] datp <- pnodes(tree, datf, cost) parent <- tree$edge[,1] child <- tree$edge[,2] m <- dim(INDEX)[1] k <- min(parent) pscore <- numeric(2*m) for(i in 1:m){ ei <- INDEX[i,] datn <- datf[ei[1:4]] if (!(ei[5] %in% rootEdges)) datn[1] <- datp[ei[1]] pscore[(2*i)-1] <- sankoff.quartet(datn[ c(1, 3, 2, 4)], cost, p, l, weight) pscore[(2*i)] <- sankoff.quartet(datn[ c(1, 4, 3, 2)], cost, p, l, weight) } swap <- 0 candidates <- pscore < p0 while(any(candidates)){ ind <- which.min(pscore) pscore[ind] <- Inf if( ind %% 2 ) swap.edge <- c(2,3) else swap.edge <- c(2,4) tree2 <- changeEdge(tree, INDEX[(ind+1)%/%2,swap.edge]) test <- fit.sankoff(tree2, data, cost, 'pscore') if(test >= p0) candidates[ind] <- FALSE if(test < p0) { p0 <- test swap <- swap+1 tree <- tree2 candidates[ind] <- FALSE indi <- which(rep(colSums(apply(INDEX,1,match,INDEX[(ind+1)%/%2,], nomatch=0))>0,each=2)) candidates[indi] <- FALSE pscore[indi] <- Inf } } list(tree = tree, pscore = p0, swap = swap) } #' @rdname parsimony #' @export optim.parsimony <- function(tree,data, method='fitch', cost=NULL, trace=1, rearrangements="SPR", ...){ if(method=='fitch') result <- optim.fitch(tree=tree, data=data, trace=trace, rearrangements=rearrangements, ...) if(method=='sankoff') result <- optim.sankoff(tree=tree, data=data, cost=cost, trace=trace, ...) result } #' @rdname parsimony #' @export # perturbation="ratchet", "stochastic" pratchet <- function (data, start=NULL, method="fitch", maxit=1000, k=10, trace=1, all=FALSE, rearrangements="SPR", perturbation="ratchet", ...) { eps <- 1e-08 # if(method=="fitch" && (is.null(attr(data, "compressed")) || attr(data, "compressed") == FALSE)) # data <- compressSites(data) trace <- trace - 1 uniquetree <- function(trees) { k <- 1 res <- trees[[1]] result <- list() result[[1]] <- res k <- 2 trees <- trees[-1] while (length(trees) > 0) { # test and replace # change RF to do this faster RF.dist(res, trees) class(tree) = "multiPhylo" # rf2 = RF.dist(res, trees, FALSE) rf <- sapply(trees, RF.dist, res, FALSE) if(any(rf==0))trees <- trees[-which(rf == 0)] if (length(trees) > 0) { res <- trees[[1]] result[[k]] <- res k <- k+1 trees <- trees[-1] } } result } if (is.null(start)) start <- optim.parsimony(nj(dist.hamming(data)), data, trace = trace, method=method, rearrangements=rearrangements, ...) tree <- start data <- subset(data, tree$tip.label) attr(tree, "pscore") <- parsimony(tree, data, method=method, ...) mp <- attr(tree, "pscore") if (trace >= 0) print(paste("Best pscore so far:",attr(tree, "pscore"))) FUN <- function(data, tree, method, rearrangements, ...) optim.parsimony(tree, data = data, method=method, rearrangements=rearrangements, ...) result <- list() result[[1]] <- tree kmax <- 1 nTips <- length(tree$tip.label) for (i in 1:maxit) { if(perturbation=="ratchet"){ bstrees <- bootstrap.phyDat(data, FUN, tree=tree, bs=1, trace=trace, method=method, rearrangements=rearrangements, ...) trees <- lapply(bstrees, optim.parsimony, data, trace = trace, method=method, rearrangements=rearrangements, ...) } if(perturbation=="stochastic"){ treeNNI <- rNNI(tree, floor(nTips/2)) trees <- optim.parsimony(treeNNI, data, trace = trace, method = method, rearrangements = rearrangements, ...) trees <- list(trees) } if(inherits(result,"phylo")) m <- 1 else m <- length(result) if(m>0) trees[2 : (1+m)] <- result[1:m] pscores <- sapply(trees, function(data) attr(data, "pscore")) mp1 <- min(pscores) if((mp1+eps) < mp) kmax <- 1 else kmax <- kmax+1 mp <- mp1 if (trace >= 0) print(paste("Best pscore so far:",mp)) ind <- which(pscores < mp + eps) if (length(ind) == 1) { result <- trees[ind] tree <- result[[1]] } else { result <- uniquetree(trees[ind]) l <- length(result) tree <- result[[sample(l, 1)]] } if(kmax == k) break() }# for if(!all) return(tree) if(length(result)==1) return(result[[1]]) class(result) <- "multiPhylo" result } # pratchet start_tree <- function(x, maxit = 1, trace = 0, ...){ tree <- pratchet(x, maxit=maxit, trace=trace, ...) ps <- attr(tree, "pscore") tl <- ps / (sum(attr(x,"weight")) * Ntip(tree)) tree$edge.length <- rep(tl, nrow(tree$edge)) tree } optim.sankoff <- function(tree, data, cost=NULL, trace=1, ...) { if(!inherits(tree,"phylo")) stop("tree must be of class phylo") if(is.rooted(tree))tree <- unroot(tree) if(is.null(attr(tree, "order")) || attr(tree, "order") == "cladewise") tree <- reorder(tree, "postorder") if (class(data)[1] != "phyDat") stop("data must be of class phyDat") rt <- FALSE dat <- prepareDataSankoff(data) l <- attr(dat, "nc") if (is.null(cost)) { cost <- matrix(1, l, l) cost <- cost - diag(l) # rt = TRUE } tree$edge.length <- NULL swap <- 0 iter <- TRUE pscore <- fit.sankoff(tree,dat,cost,'pscore') while (iter) { res <- sankoff.nni(tree,dat,cost,...) tree <- res$tree if(trace>1)cat("optimize topology: ", pscore , "-->", res$pscore, "\n") pscore <- res$pscore swap <- swap + res$swap if (res$swap == 0) iter <- FALSE } if(trace>0)cat("Final p-score",pscore,"after ",swap, "nni operations \n") if(rt)tree <- ptree(tree, data) attr(tree, "pscore") <- pscore tree } # # ACCTRAN # ptree <- function (tree, data, type = "ACCTRAN", retData = FALSE) { if (!inherits(data,"phyDat")) stop("data must be of class phyDat") if (is.null(attr(tree, "order")) || attr(tree, "order") == "cladewise") tree <- reorder(tree, "postorder") if (!is.binary(tree)) stop("Tree must be binary!") tmp <- fitch(tree, data, site = "data") nr <- attr(data, "nr") node <- tree$edge[, 1] edge <- tree$edge[, 2] weight <- attr(data, "weight") m <- length(edge) + 1 q <- length(tree$tip.label) l <- as.integer(length(edge)) nTips <- length(tree$tip.label) dat <- tmp[[2]] if (!is.rooted(tree)) { root <- getRoot(tree) ind <- edge[node == root] rSeq <- .C("fitchTriplet", integer(nr), dat[, ind[1]], dat[, ind[2]], dat[, ind[3]], as.integer(nr)) dat[, root] <- rSeq[[1]] } # result <- .C("ACCTRAN2", dat, as.integer(nr), numeric(nr), # as.integer(node[l:1L]), as.integer(edge[l:1L]), l, as.double(weight), numeric(l), as.integer(nTips)) result <- .C("ACCTRAN2", dat, as.integer(nr), as.integer(node[l:1L]), as.integer(edge[l:1L]), l, as.integer(nTips)) el <- result[[5]][l:1L] if (!is.rooted(tree)) { ind2 <- which(node[] == root) dat <- matrix(result[[1]], nr, max(node)) result <- .C("ACCTRAN3", result[[1]], as.integer(nr), numeric(nr), as.integer(node[(l - 3L):1L]), as.integer(edge[(l - 3L):1L]), l - 3L, as.double(weight), numeric(l)) # , as.integer(nTips) el <- result[[8]][(l - 3L):1L] pars <- .C("fitchTripletACC4", dat[, root], dat[, ind[1]], dat[, ind[2]], dat[, ind[3]], as.integer(nr), numeric(1), numeric(1), numeric(1), as.double(weight), numeric(nr), integer(nr)) el[ind2[1]] <- pars[[6]] el[ind2[2]] <- pars[[7]] el[ind2[3]] <- pars[[8]] } else { result <- .C("ACCTRAN3", result[[1]], as.integer(nr), numeric(nr), as.integer(node[l:1L]), as.integer(edge[l:1L]), l, as.double(weight), numeric(l)) # , as.integer(nTips) el <- result[[8]][l:1L] } tree$edge.length <- el if (retData) return(list(tree, matrix(result[[1]], nr, max(node)))) tree } #' @rdname parsimony #' @export acctran <- function(tree, data){ if(inherits(tree, "multiPhylo")){ compress <- FALSE if(!is.null(attr(tree, "TipLabel"))) compress <- TRUE res <- lapply(tree, ptree, data, type="ACCTRAN", retData=FALSE) class(res) <- "multiPhylo" if(compress) res <- .compressTipLabel(res) return(res) } ptree(tree, data, type="ACCTRAN", retData=FALSE) } parsimony.plot <- function(tree, ...){ x <- numeric(max(tree$edge)) x[tree$edge[,2]] <- tree$edge.length plot(tree, ...) ind <- get("last_plot.phylo", envir = .PlotPhyloEnv)$edge[, 2] edgelabels(prettyNum(x[ind]), frame = "none") } phangorn/R/pmlPen.R0000644000176200001440000001462213207043151013646 0ustar liggesusers# # pmlPen penalized ML # pmlPen <- function(object, lambda, ...){ if(inherits(object,"pmlPart")) return(pmlPartPen(object, lambda,...)) if(inherits(object,"pmlMix")) return(pmlMixPen(object, lambda,...)) else stop("object has to be of class pmlPart or pmlMix") } pmlPartPen <- function(object, lambda, control=pml.control(epsilon=1e-8, maxit=20, trace=1),...){ fits <- object$fits m <- length(fits) K <- -diag(length(fits[[1]]$tree$edge.length)) Ktmp <- K for(i in 1:(m-1))Ktmp <- cbind(Ktmp,K) KM <- Ktmp for(i in 1:(m-1))KM <- rbind(KM,Ktmp) diag(KM) <- m-1 theta <- NULL l <- length(fits[[1]]$tree$edge.length) loglik <- 0 for(i in 1:m){ theta <- c(theta,fits[[i]]$tree$edge.length) loglik <- loglik + fits[[i]]$logLik } # print(loglik) pen <- - 0.5 * lambda * t(theta)%*%KM%*%theta loglik <- loglik - 0.5 * lambda * t(theta)%*%KM%*%theta eps <- 1 H <- matrix(0, m * l, m * l) iter <- 0 trace <- control$trace while( abs(eps)>control$eps & iter0)print(loglik1) loglik0 <- loglik1 pen <- - 0.5 * lambda * t(theta)%*%KM%*%theta loglik1 <- loglik1 - 0.5 * lambda * t(thetanew)%*%KM%*%thetanew eps <- (loglik - loglik1) / loglik1 loglik <- loglik1 theta <- exp(thetanew) iter <- iter+1 if(trace>0)print(iter) } df <- sum( diag(solve(H + lambda* KM, H))) object$df[1,1] <- df object$df[1,2] <- 1 object$fits <- fits object$logLik <- loglik0 attr(object$logLik, "df") <- sum(object$df[,1]*object$df[,2]) object$logLik.pen <- loglik attr(object$logLik.pen, "df") <- sum(object$df[,1]*object$df[,2]) object } pmlMixPen <- function (object, lambda, optOmega=TRUE, control=pml.control(epsilon=1e-8, maxit=20, trace=1), ...) { fits <- object$fits m <- length(fits) K <- -diag(length(fits[[1]]$tree$edge.length)) tree <- fits[[1]]$tree Ktmp <- K for (i in 1:(m - 1)) Ktmp <- cbind(Ktmp, K) KM <- Ktmp for (i in 1:(m - 1)) KM <- rbind(KM, Ktmp) diag(KM) <- m - 1 theta <- NULL l <- length(fits[[1]]$tree$edge.length) omega <- object$omega dat <- fits[[1]]$data nr <- attr(dat, "nr") weight <- drop(attr(dat, "weight")) ll <- matrix(0, nr, m) for (i in 1:m) ll[, i] <- fits[[i]]$lv lv <- drop(ll %*% omega) loglik <- sum(weight * log(lv)) for (i in 1:m) theta <- c(theta, fits[[i]]$tree$edge.length) pen <- - 0.5 * lambda * t(theta) %*% KM %*% theta loglik <- loglik + pen print(loglik) eps0 <- 1 dl <- matrix(0, nr, m * l) iter0 <- 0 trace <- control$trace while (abs(eps0) > control$eps & iter0 < control$maxit) { eps <- 1 iter <- 0 while (abs(eps) > 0.01 & iter < 5) { for (i in 1:m) { dl[, (1:l) + l * (i - 1)] <- dl(fits[[i]], TRUE) * omega[i] } dl <- dl/lv sc <- colSums(weight * dl) - lambda * KM %*% log(theta) H <- crossprod(dl * weight, dl) thetanew <- log(theta) + solve(H + lambda * KM, sc) for (i in 1:m) fits[[i]]$tree$edge.length <- exp(thetanew[(1:l) + (i - 1) * l]) for (i in 1:m) { tree$edge.length <- exp(thetanew[(1:l) + (i - 1) * l]) fits[[i]] <- update.pml(fits[[i]], tree = tree) ll[, i] <- fits[[i]]$lv } lv <- drop(ll %*% omega) loglik1 <- sum(weight * log(lv)) pen <- - 0.5 * lambda * t(thetanew) %*% KM %*% thetanew loglik1 <- loglik1 + pen eps <- abs(loglik1 - loglik) theta <- exp(thetanew) loglik <- loglik1 iter <- iter + 1 } if(optOmega){ res <- optWPen(ll, weight, omega, pen) omega <- res$p for (i in 1:m) { pl0 <- ll[, -i, drop = FALSE] %*% omega[-i] fits[[i]] <- update(fits[[i]], llMix = pl0, wMix = omega[i]) } } lv <- drop(ll %*% omega) loglik1 <- sum(weight * log(lv)) loglik0 <- loglik1 loglik1 <- loglik1 - 0.5 * lambda * t(thetanew) %*% KM %*% thetanew eps0 <- (loglik - loglik1) / loglik1 theta <- exp(thetanew) loglik <- loglik1 iter0 <- iter0 + 1 if(trace>0) print(loglik) } for (i in 1:m) { pl0 <- ll[, -i, drop = FALSE] %*% omega[-i] fits[[i]] <- update(fits[[i]], llMix = pl0, wMix = omega[i]) } df <- sum(diag(solve(H + lambda * KM, H))) penalty <- list(lambda=lambda, K=KM, thetanew=thetanew, ploglik=loglik) object$omega <- omega object$df[1, 1] <- df object$df[1, 2] <- 1 object$fits <- fits object$logLik <- loglik0 object$penalty <- penalty object } optWPen <- function (ll, weight, omega, pen, ...) { k <- length(omega) nenner <- 1/omega[1] eta <- log(omega * nenner) eta <- eta[-1] fn <- function(eta, ll, weight, pen) { eta <- c(0, eta) p <- exp(eta)/sum(exp(eta)) res <- sum(weight * log(ll %*% p)) + pen res } if (k == 2) res <- optimize(f = fn, interval = c(-3, 3), lower = -3, upper = 3, maximum = TRUE, tol = .Machine$double.eps^0.25, ll = ll, weight = weight, pen = pen) else res <- optim(eta, fn = fn, method = "L-BFGS-B", lower = -5, upper = 5, control = list(fnscale = -1, maxit = 25), gr = NULL, ll = ll, weight = weight, pen=pen) p <- exp(c(0, res[[1]])) p <- p/sum(p) result <- list(par = p, value = res[[2]]) result } phangorn/vignettes/0000755000176200001440000000000013241142074014074 5ustar liggesusersphangorn/vignettes/seqLogo.pdf0000644000176200001440000013626113227464436016226 0ustar liggesusers%PDF-1.4 %âãÏÓ\r 1 0 obj << /CreationDate (D:20180116144537) /ModDate (D:20180116144537) /Title (R Graphics Output) /Producer (R 3.4.3) /Creator (R) >> endobj 2 0 obj << /Type /Catalog /Pages 3 0 R >> endobj 7 0 obj << /Type /Page /Parent 3 0 R /Contents 8 0 R /Resources 4 0 R >> endobj 8 0 obj << /Length 44364 /Filter /FlateDecode >> stream xœŒ½ÁÎ$;®¤¹¯§8Oí’\’ûv6 Ìnú ç6иF3SfåÉîEU%+â÷ˆp—(’â'kýßµ¿þÇ_ÿë_ÿOýç¿üçû¯ÿ×_ÿý?ÿuý¸®ë¯–ÿÿçÿŸÿj­ýèû¯ÖƾþúÏ~Ìç¯ñŒãúëïµ>~ìqØ£ÿ¸ß¯ïÏsÚóÇxÿjï—ýì¶¼ý´ç»ïÿéóÿþ×ÿ÷×ÿû¯v|Óv|ÓçÇžõžð}Óïkþ5¾ î7?ùþ1_ÿû—÷ãÊ×ñë+ÏþcŒ¿úõüO\ù³ûûÙëÇîq¥°ïÏž?®‡öõÙãÇ}—ݾO¾Ú§ÑnŸ}ýhoÙ×úîÁócnÚí³×7ïÁlñö~·Nv¼þÝú]ö3?»ózŸýý€÷ú±zÙûþ«=o| ìõ=“gÿ˜öwÏŸéÏûîT{î÷(ûþžÙÓãcËþžñóýÏUö÷ÅÚ~¼´¿ûÓöóãæûûwýýý^¯}ßwšßÿ»qmßñ³Ëþ¾ÿî¼WüaÛߟÝeÇï]o =Øßhë{>½ìõ}þÒç}öw¿ÖŒŸ{~×[7ï×õãŽëõ¯¿g5ÞŸëGÿ¾ßºüþïm>1´Ëþ¾ïüî'_ç7ב¿9Æç7>fÙÏ÷ùsÔx¸ó‡ÄcŸOÙë{^¸­°gØW #ØßÀj÷óãåûGØÛ×ëßï¹×Å÷·x}ÆÏ†}…}×ó‰ …=êþ}öö7ŒGÙñýîïþï²c¼Üß÷áûçgï²oÙß…Ûxj>|öçÚØ~=îßXþûxþcò÷}>á{žãŽa;ž÷¼Ÿ;ÇóçjnÚñ}FãïËÝÆ÷ØwÙásúwÛy½ð)Ÿ}]eÜúÓvÜŸÏuÝxÿÊç×W8Ø1¿>W†ù7úIãã³ç÷}?‡sÓŽùò¹Êç*ûû!ac<vÜþ=¾þàóL_߃‹çžŠöÿ ûVv~þÓ vÌßÏU/¾ŸÿÙí*;žÇçí¶Ón£ìo †k^ø¼;ÿg÷YöçR[[5_>{­´ïUv̯Ϯç}‡£×¾ù÷éÓgù—Ïn#íF;æ»ã±‡ýݸv}ß‘Ïÿ³Ç.;æ÷g×øáXbÍxùz̦ûÿ-&-íÅ÷_X£jüô¼ßŸ}Ó~ðþš=ïwãš÷ÙïÇÊrçÀôö;æçùþúüš ÷{p|·¸qÇ÷káhòû?eךùì²ûÊûQ÷¿¥Šû…ç÷s”½qßYvÞÏÉùÿÏï*;üaÓüMG6üõçb½úÆ Ö›ÏŽùòÙðoþ-ÆÛ]v¬/± ÷²Æëàë1>ûUó5MO¿ÿs4æ Ö£ÏÞ-çæÃgç|ìµ|vŒÇžÃvÇ|¼^ÃüÆxþ×;sþÚ9ÿ7cžŽ!ý_ÿóùÙ±ž|þ¨¿ewø«ú}þ¯×xûcŒ¿ÏßÍYv|Þç×[vÌ·Ï_>«ìô¿ºß+ý]ü,¾?ÆÃwÛt½ÿýàó>ÿò¦¿¯ç1s¾Å4zÊÞX/¾ããsSÏïÞå?{Äßs=øì¸¿±ì®²Ö»‹ïÏõrðõ;‰X/á¯üÍäz7âÉõþè³¿×æËûqǃ‹õþ÷³G¬ïô·±°Ì\ÿ±^~vÄ#_¼0i‡ÿûâ ¬?߃ˆñ¼ÞŠ>;ÆÛÀÿŽ ÄÚü¼œ˜ßÀ_ǃŒxˆë_Ø-㣗×ùû\Ï ø«/ÞÂüé8"›ü¼ñÛ*ÿöw½‡ñÏgÇúõÅuz®§Šþ2æ®û‘OÄ›­•¿ç}xÿ{üЈW/þýŠx¶ûõñî]þ೿ñqãçÏ+ãg}þçOz»"l.û»~ëÎ!¾ùÒåßÃâÏ`Güýù øÃ‘þ´wÆ»aïÿæûæëß÷o~?²#ÈiVö¿wÆÇñù7?õ}¿ÚŒô×=†=ÿþûÃ>äßr`÷o¾m½ÿ»þÝj=£=bÚýÍœ©GpŸöÃñó{;ÂÖ~\/âÇuÚwùëú>“ëu}ßÉø±~Ï7_ôüã÷~óEÏ'îÇš~q¿ÖæxÇý\Œ7ê~ÇüÇóøæÇs>¯o~¼ãxžß|¸Æñ¼¿ù ïãá9ÆoŒ—o>tþÞOß|ß÷ùÀïãñ›7¯ãõ›z~1žß›þãý›7ÿþ›ý›zý»‘ã›úûo>«ûúß|—ÆoÎÇq1À|ß|¨û›óy4Æo˜ï£É?¦?ÏÐ|Þ™-üɈx×ûüÍøÖÏ›Ÿÿù£¡øþj|ëßÅ×?6ºü{ú»ñ.ýï÷EÆ·¾a9¾õì¢ÿía7®§éo¾¦üñ7¿í¯Ç· m^?¾ß·^ úßï‡è¿ãþF˜Ãõã[/F„i\_¾õdÜò¹ÞŒ£/¯Gã[Ÿê~äz5"íáû¿;"íë^ïÆ”ÏõpÌQù ÖË1™?a=ßzUñK®·ãË/¾>âýOÅ{X¯Ç|9raëòúþ­÷ã›ßÿ9ªñÍǺ^Æ cÝ/#žßüì|}Äõ?/㑱~ŽWÆzäçñÊïŒÍ|ñÐØþ>Þ°_#ž_¾Žü ñÖøæûb¼õÝȱu¿2^›ùâ¹°Ƈ_¼7ö¢?Ëxp|ëgý¾¼qa—?ÉxrD½ñcüžX_xtì—ùUÆ«aWþœñìx8Ÿï†xñðxóŸ\¨Ã^Œß‘öËø<î×Ó™¿f<öÍø<æo¬ïŒÏc¾~öÃx~Ϭ©]¼ÞÛÓ®ü.ýuØùIÇû+?LGäšÜoì/_É÷¿e¯ºó“ïï|ÿ‹÷W¼?øùíÞòû¿Ì¯Â_}ö>ò±°QA¾–÷ãÈç†ü;ò½¼ŸÌ'¯+íÊ?rà‡­ü±ãýÊc<ÆókeÏçËëÅ|{.æÃð7›ë5òݰóçðûq>žãóáçg>ãñeþ}c¼Öçe>ãñòõ°o^?îwŒþ}Üïˆ1^²ógÑnoÚë£å|»YÈÏïÌ·æc/ÿ‹zEÌßA;çËåúFüþÅzê!aW½"ë%á?ë5qÿ?ÿ‚üõ–ð?û¨Ç„‚?G½&싯Çó_7ÇwÖ{ÂßuÚ±ž®^ëêEáküd`þ³æoÖ›Ò¿²^ãÿó¿²Óÿêùd=kÌÅç™õ®ðçƒõªXï?¯úX<ŸÉøõ´1™?¡ÞëÇÅz[®G\ÏP¯‹õgóý÷ë“ê1?ã1^e‡û†E§ß/âG¾ÿ¹nÖãùÝGý2×KÆÛ¨WÆzû²¾÷o°Þƒzg¬Ïƒ¯Z¿gÙ7Ö÷ÍëÇüB˜ö7ë­`ýE=v|ñõb}6ã§üê¹o<´ÃŸöYþõàˆW^Ö·ãù÷^ã õäˆo.¾ëaÔ¿Xoî=5¾PXù$êÙO5ÙoÆ[‹ïŸˆÇ¯ãå‹×&?/æÓõòþd 4®]ë êñãš5ÿQ¯Ïøð¨çGü¸Úßç]íØˆxôåç!~7ïâóWÏ ñøÏb<Ô~ÄKÿ]ûo«ü¾ö3ž—÷û_üÜX¿ýÚÏöïßœ/ï•ñõ£úñÊ뿜ŸOËxûåüËxúŽiSöï¿Ì÷c>>ù{Ê<ñ ã÷6ÎÇùd<ÞUy:ß?ŸwÍÿ‘÷Svăßý¶ý=ÏkØîˆßu½Xß¾ç§Ï‹ñù-ïĢïy7þžŒ÷UÿÞqÿr|°þóó³_úÓˆ‡šâëQk\?wÎ÷oü-úÃo!ˆñ9ù÷_ >Úízxø¦õ#ßázÝÎõ±q)üõÈüaÓ?gþ¡úpÞøÌ'xýˆŸ¾|Ûõò™vù£•¿·7¯?1¾c¾r} ÕåßWüPÏïZŸ¾|d«¾Þàh‡¿é¬WÜYx{óïGü½üûÊõàó7õüðŸ½ùzøëÏ? þ}¬·ƒõÆXŸ´UO|äóo¯?óŸ]ö.Èø âíÑ?dþÃü(â…'mÅñ|"m¢ë{¤A¼^é?Ä÷Gšò·â•Á|8â™Ê·ÿâË®ú7Ö·Îýû±áïëSˆ÷½ƒzDS½t§ô~ÐÎïë_¯õKþñ[ïtýðMû9;Ç_¬—¬„¿iª×íŒ/¿õ¶ê#È¢ÇúKÖû^Ö'WƯ×f½" Ylþý/LÖƒ"~¼˜?|vÌŸ/Þh|Å'ª÷Äøýâ—ÅÏWÆ7ƒŸ—ñÛÃúh"/=|C<…ø`,Ä‹7÷kâÉÎý‡þ âµÉzZÅsû3ÏÌøïe=í‰úêæõsc7ê¯õµúìæõ>Ç׿§a÷¬ç^´#žûòñÅëî_þÝø÷Ÿcí_>½U¿û®÷åσŸÇûo×ó¢>ù0ë…ßë›þ=ì¨?ûQQo^Ü™ÏG}{ñú=êãÇïëQïÖ~ÜÌç±ëS(F=}s,âï¥ýŽlˆúûæýç77ëoY_èQOäçEÿ3xc¾…ÿQ=:ö×6÷C1_¯ã~Æ|¾núsÌ÷Ï߬Ó\Ýþ(üÅç.ÙÏ_íe~û7÷£$ò1ú£þ´Wþmäþââë±?üåŸúûèOy;çCúËö¶ÊáO£_íáûc?òy|½Ø¯ ÿÃÏ‹~‰gñ~¥?~6Õ³¯û§u¿s=hQ¿¤ÝÑÏöëIìǾZ®ìo{¸žÝOîß>üûØŽz4ןèøü“^ýó=ý÷Ñÿµo_?¾ÿf=ëiØ×±ÞF?\Óú|åþ³âƒì·»Ø?ëyìWŸë}ìgï#hk{½_°??¹~³ž=œkÒße<û窯_°;í?kðóÓDÝË~Ž{0ÞúæØ¯_|ÿ‚Ýøzôs¬‹û½Å~ÿË÷G?KÔûX¯ÔØß¤ýoóa>p¡áa¼~?õï!ž »ñýýŠOc|º^˜ñjØŠ'«ßo3~Žýø9]ÿñ7UÏC¿ÎTÿMÆÓaoîÄü™wwÖaW>–ñzØñ}öÞµŸx?ú+Þ#ÈþCæ#ñ¼Ü˜&ì}ö3…½þÁž¿¼•­ý…×ç~Å®Ïãëì—׋~…©úÐÀ÷e¿ò±°;ó³|žŒG«ßkÒ¿#ßkÚG>öÃ|pU&óÇos:}Ð2•¾x¾Ìc>ÌõS>vgþœß—ûYȇÃ~hGŠÇÛïËþ\äÛa?̯óù?ÌÇnŒGÆ÷ÕŸ§ý}äû1?”¿Õ/ÃúEö»0>A=!ìÅzEøÇÕÜ_þqµÊ_P¯ˆùÜŽzFØz=ü£úoP [×ßèÇí|ÌïÅøõ–ð?ƒû)/üÑËúQŒµX/Xøþªod½'l÷_^éoö_Æ|Sü‡zRöóïc¼ì«Ö/Ô£Ü\ýŸ[õ„,´¸õ®ðçƒ×þísÿæEÿósÔÓb½˜¬ß5ôOÖÿú‰´_ãÉûOYÏ‹õi«þ‡õKõ¼ðoÞïÌ@>Ö¿®ý™+ûtýµ±^²~Ïë³µ?ãí9¾ôG=êÜ\Ÿë‡oõŸõÒXßµ?Ó°þßG½5ú™†ê³-ã…Á¿ïèoìg=ãÎzqô£EþÃzmÆ'ó°ŸìÒûãy¿Û׋õò}üy¯¼þ>Q¯¾.÷SoÄSÚ_Šz÷oMÕÇM~~Ô˯›ý¨¨§_“ûC¨·ñêëQPLÄÎ=Y3 ;{NÌ(„}ŒÂÎbƒ…Íýfb3Œ6÷Í(ìêc yg1ËŒÂΞ3 a·£mçæ…5DŒÂÎæ3 ŸsTŒÂîˆÑÈ(lôÔŠQØùAfvÇâžæî˜cdvÃ$3°ÁXˆQˆÉ}ŒÂn?ÏñÁ‹}ÂÆ-Fa70ìÑûì{Œ6cÍ( ¸3£v;…ø ~0 ;7Í(|Î꣰ssÁ1ÎFϯ…}¡§’{|‘Ÿ1A8¿÷`¾Fá³3f £°ssÀŒÂ#!Fagñ׌6›Í(,ô ‹QXY<6£€àÖŒÂB±…•‹…hnyFa¡§X5À•ÏŒÂ÷ âþ‰QX`"Ä(¬œãf>;ž·z?;Ƴ…•ӌ‚Ï£°àãÄ(¬l†3£°àCÅ(,õ ÃG® €ŒBlƯƒQˆf½û`r1 kŠ……œIŒÂBO²…•ÎÈŒÂgÇøWÙÊb©…H&îƒQX¹9aFa£°°¦kjMô¬“QX“=åˆ!1 1‘æÁ(¬âÊÈ(D³Ô{0 +kf¢9¡ŒB4 ¿£ÁÉ:…•Íôf>{^£°òfVãÌ(ÄD¿Faå fVÏf>{_£ÉÖ>…•ŽÝŒÂ`>¸ÇÁØÁÕýξ~z?z„Å(¬ÜÌ0£°róãø~=cZ1 9†…ÕqÉ(,0lb šQXðŸbü¥…•›qfr.íy~ŽñyFá³w?…u™áØ‚£€àØŒÂÊfh3 9¨…™Á£…™Íf¬šQ˜/æ#…ÏN&‰ŒÂÌâ…YÌ÷f1d"X£0Ád‰Q@3¢…™›£f&b41 sÃÿ‘Qøìb&ü…™ŽÉŒB7ŸƒQ˜¨ÁˆQ@³¤…HŽžƒQˆä{ŒBÀý`"¹ºFa.0d"›£0ssÃŒÂ\`Xž9{p‘Ì›QøìˆoÄ(Ì FO=%`®Ä(̬IšQ˜9 …¸P;r¤ &BŒÂÌâ¶…™/˜Q˜7j$d>;î… &KŒÂÌÍe3 9¨$×f"ù~FaÂ_‰Qˆd½ŒÂÌÍl3 (6˜Q˜ƒŒjݟ䈆u ~dÎöu0 9¼…™=†ffn®›Q˜éÍ(Ì\¨Í(Ìt|ffóÍ(̬9˜Q˜ÙLcFÍÁf&âo1 3›wÍ(|+bx1 aσQ˜¹9cFafs¥…‰ø|=BQVü1Ó_›Q˜¿›Q˜ÙãiF!ìë`fn.›Q MF6÷þÁ£@›ŒB}žj2õ}Ä(Ô÷U £~…ú½bê~ˆQ¨û%F¡î§…ºßbêyˆQ¨ç%F¡ž§…zÞbj<<Çøñ"F¡Æ“…obj<ŠQ¨ñ*F¡Æ³…ïb0Ì(`¾˜QÀ|2£€ùfFóÑŒæ«Ìg3 ˜ïfàÌ(À_˜Q€?1£cFþÈŒü•ø33 ðwfàÍ(À_šQ€?5£ëøc3 ð×fàÏÍ(Àß›QÀz`Fë…¬'f°Þ˜QÀzdF땬gf°Þ™QÀzhF륬§f°ÞšQÀzlF뵬çf°Þ›Q@<`Fñ‚Äfo˜QÀ›Q@¼bFñŒ…YL˜üb ¸g€xÉŒâ)3 ˆ·Ì( 3£€xÍŒâ93 ˆ÷Ì( 4£€xÑŒâI3 ˆ7Í( 5£€xÕŒâY3 ˆwÍ( 6£€xÙŒâi3 ˆ·Í( 7£€xÝŒây3 ˆ÷Í( 0£€|ÁŒò 3 È7Ì$üÆ×Á( Ÿ1£€|ÇŒò!3 È—Ì( Ÿ2£€|ËŒò13 È×Ì( Ÿ3£€|ÏŒòA3 ÈÍ( Ÿ4£€|ÓŒòQ3 ÈWÍ( Ÿ5£°Š! £€|ØŒòe3 «ÖˆW1Ü#G>nFùºäófï›Q@=ÀŒêfPO0£€zƒÔ#Ì( ^aFõ 3 ¨w˜QXb˜*_C’ÔSÌ( ÞbFa•ÿ!£€zÔsÌ( ÞcFõ 3 ¨™Q@=ÉŒêMfP2£€z•Ô³Ì( ÞeFõ03 ¨—™Q@=ÍŒnœÔãÌ( ^gFõ<3 ¨÷™Q@=ÐŒê…fPOtO"êfP4£€z¥{øPÏ4£€z§ÔCÍ( ^jFõT3 XfP5£€z­ÔsÍ( ÞkFõ`÷0£^lFõd3 ¨7›Q@=ÚŒêÕfPÏ6£€z·ÔÃÍ( ^nFõt3 ¨·›Q@=ÞŒêõfPÏ7£€z¿…]ŒìëÏ‹ø]ŒBí'ˆQ¨ý1 µ!F¡ö+Ä(Ô~†…Úï“ãýþžF!ÿu0 HÌ(ÄüÙ£ö8…˜oÏÁ(„=FaeOƒ…•…!3 +{ Ì(„}ŒÂB¨…°ÇÁ(,ô„ŠQX`&Å(¬Ìñt=:™2 ësBFaeó’…õ€Y!£°2-/ßãAŒÂ㩞¥ØL}Fa=`”É(À›Q@`gFa=èÙ<êímŒBøï÷`ÖƒüCõa0«bV6gšQXù…U=¨ÍëOÄ/bVn”˜QXÙläù]ë“…•Í_f>›=´²ÛÁ(¬ æ@þ= cfV1d¾F¡Ö[1 ±Ý£°À‹Q¨õ[ŒÂBª…• ½…Š”­ì3£ñÃ:…ˆ/öÁ(¬b&t?Š™`Ôó(FaebbFae3¯…ŠT¿XL9{˜ø›QX Ûãx©½£°&8öD¬Ê_ÇoÕ“~)ž£ñÞ}0 ΃QXyÚœ…ÏŽu1 _>£°rsÚŒ6þÌ(T¼*FaÝdàãá·ŒBÄ¿ý`ò}1 +3k€9$£°²YÏŒÂÊz„……3 Ä Tüþ'ûš£€f0Ç«óû*ߨíü~˜›Qøìû9…Õùý:÷#ŠáP~ÒÆÁ(T¾sùÑÛF!šw߃QX`üÔãùÕ>…•‰¿…•…s3 ‘¯s¼U¼¢ü¯aü±^øŠïu0 ë"£³˜®ç`â«qìoÜû`–Λùj_£°.œé õäCDFaæB`F! Ù÷Á(Ìþ‡=ä̪… ¦UŒÂó*Fa‚‰£0±>ŠQ˜`jÅ(ÌÌ…‰øZŒBÕÄ(̇g^Ü´×s0 hž2£0ï{ÿõ1 Ì öƒfÊÌ(L­_úûdÈ(Ì ŒÌ(„ÝFa‚™£õ•y0 ù… PŒBÔgÆÁ( ‘0£0Áh‹Q»ŒÂÌT3 hN3£0ÁŠQ˜ŒÇ÷܈ßÈ(ÌÌÍ( eFa.Ä‹·÷kö:…°ÛÁ(`£ÅŒÂÌæ"3 h¶3£0sãÄŒÂÌ©…™Í®ffö„™Q˜ ˜Q˜`2Ä( ÙÏŒÂÌ'3 a_£0ó‹˜Q˜YX7£03p0£€æR3 =Üb£€ú¢…™g–˜Q˜¹>›Q˜ÙXcFa¢‡\ŒÂÌÄÀŒÂÌú‚…™Íßff6˜Q ­ú.zÖÅ(Ð~~yýW{ý|=1 ´Çñz?…ú¾òßõ{Ä(Ôï£P÷CŒBÝ/1 u?Å(Ôý£PÏCŒB=/1 õ<ÿÕóîg=ø>…/bj<‰Q¨ñ&F¡Æ£…¯bj<‹Q¨ñ.F¡æƒ…š/Š÷k>‰Q¨ù&F¡æ£…š¯Þ_À|£Pó]ŒBù1 å/Ä(ÀŸ˜Q€¿1£dFþÊŒü™ø;3 ð‡fà/Í(ÀŸšQ€¿5£0«‡rÛ¿®ç`àÏÍ(Àß›QÀz`Fë…¬'f°Þ˜QÀzdF땅ꣀõÎŒÖC3 X/Í(`=5£Pýb°›QÀzmF빬÷f˜Q@¼`Fñ„Äf˜Q@¼bFñŒÄ;f™Q@¼dFaéŒàÆ×£§VŒÂªþ92 «úë^Ç_ìѦý^£€xÐŒâE÷ï!žtÏ8âM3 ˆGÍ( ^5£€xÖŒâ]3 ˆ‡Í(T¿ŽÄÓfo›Q@`FÆýˆÈ'ÌTÿ’˜„ߨ}ýüþ±FùŽäCf/™Q@>eFù–äcf¯™Q¨~/1 È÷Ì( 4£€|ÑŒòI3 È7Í( 5£€|ÕŒòY3 ÈwÍ(¬É3¬ÚuÆuc¾œß—ý¹È·Í( 7£€|ÝŒBõçiù¾ÔÌ( ^`Fap¹ÿ/™€æþÂðbP¯0£€z†…êG\G¿ãÝFõ3 Õß(Fõ3 ¨Ç˜Q¨~I1 ¨ç˜Q@½ÇŒêAfP/2£€z’Ô›Ì( å~äêÿ£€z–û—Qï2£€zX;÷oö}0 ¨§™Q@½ÍŒêqfP¯3£€zž…¥õkq¿$™<í—€q£€z¢ÔÍ( iFõJ3 Õ¯+FõN3 ¨‡šQ@½ÔŒê©fPo5£€z¬ÔkÍ( žkFõ^3 ¨›Q@½ØŒêÉfPo6£€z´…ªW‹Q¨z¶…ªw‹Q¨z¸…ª—‹Q¨zº…ª·‹Q¨züÉ(üƒÂÄèÔ¥ÂÄS;Ó‰ÏâÎ1ìïó4í+µìg³s žíÁiý²÷fç,ÞÿÓçÿQaâÉàÓ O6»¸ÇåÉäÖ ?½ÿ÷à§ßôÿŠÇ°ŽûãX‡ý}dvG×wŽ0ü=îIÜöûPՈdzQ÷mBÇ=üùžþó=ˆ³߃¯ïAüóõoþùýº?ÿ¦ïÊ_ª3ŽŽ€H•f?ìJL¿ùK½ÖÑÁ­ráã›ôl•±ÝÞìÀô=üùžþáô”FÂÍOÇÉv¢xÂŽ¨‚Uñ(7eûâßgyFOØ{™â {J#aÇx&Åö}(„Ê&Eñ„>‡OØ×¡4í°ï4ÅvÜR”FžËO·2 æÛ ÿHŠ'ìëPÉvôCi$˽‡ÒHØëP û>”FÂNå’Úµ »uS$Чò%Q<•O‰â©|KOåc¢x*_ÅSùœ(žÊ÷DñT>(ЧòEQ<•OŠâ©|SO壢x*_ÅSù¬(žÊwEñT>,ЧòeQ<•O‹â©|[Oåã¢x*_ÅSù¼(žÊ÷EñT=@OÕ DñT=AOÕDñT=BOÕ+DñT=COÕ;DñT=DOÕKDñT=EOÕ[DñT=FOÕkDñT=GOÕ{DñT=HOÕ‹DñT=IOÕ›DñT=JOÕ«DñT=KOÕ»DñT=LOÕËDñT=MOÕÛDñT=NOÕëDñT=OOÕûDñT=POÕ EñT=Q]»UoÅSõHQ¦x2^|Mñ¤}™âÉø²™â {tS<J#ŒWIñôRV#Åñn)s(~~¦)ž^J9¤x2~Þ¦dž‡ÒHÆÛ)žŒÇ_S<½”qHé0~ÿ“}½¦x"?(å“­|áPÉ|â>¿ß$u4iÏfЧ—ò )žjïÅÓKyóûÈÞÛOæGÃOæOÍOØë2Å“ù×kŠ'ìñ˜âé¥4èñ%Å77”RIñdþw(„ýJ#™/vS<½”DZ¿‘J"‹ãe@HûTóÍù%YR<½”Iñd¾{(d>¼Mñ„½·)žŽ$Š'óëmŠ'ì¬÷¼|~äã¿ïÛO/eR<½”,IñDþÿ¾¦xX Å“öeŠ'ëÍOØyJLQ”F²ÒMñD½ä½Mñ°~Ò4/*{ ¾¾›)ž°×¡4’õ™eŠ'ë7¯)ž´»)ž¬÷LS<½”MIñ¤ÝMñd½hšâÉzÒkЧã$uQï~Öƒ·)ŽR<O¤x8ÞHñp<’âáx%ÅÃñLЇãç)ÎÅû5ŸHñp¾‘âá|$ÅÃùz÷3»<‹²à|'ÅC@Їþ‚OùQ<åoDñ”?ÅSþJOù3Q<åïDñ”?ÅSþROùSQ<åoEñ”?ÅSþZO DQ<Ü_'ÅSë(žZ/DñÔz"ЧÖQ<µ‰â©õJO­g¢xj½ÅSë¡(žZ/EñÔz*Їý¤xj=ÅSëµ(žZÏEñÔz/ЧâQ</ˆâ©xBOÅ¢x*ÅSñŠ(žŠgDñT¼#Чâ!Q</‰â©xJOÅ[¢x*ÅSñš(žŠçDñT¼'ЧâAQ%Чò-Q<•‰â©|Mû½HñT¾'ЧòAQ<•/Šâ©|RO团x*ÅSùª(žÊgEñT¾+ЧòaQ<•/ãí!E6ý Q<•‹â©|]ûó´¿|_OÕDñT½@OÕDñT½AOÕ#DñT½BOÕ3DñT½Ãý7wQƒÃן‡ÒHÕSDñT½EOÕcDñ°_’OÕsDñT½GOÕƒDñT½HOÕ“DñT½IOÕ£Ž~ä ÊS¬' žuô/g /ЧêaíÜ¿ÙÛOÕÓDñT½MOÕãDñT½NOÕóDñT½OOÕEñT½POÕEñT½QOÕ#EñT½RûuIñT½SOÕCEñT½TOÕSEñT½UOÕcEñT½VOÕsEñT½WOÕƒEñT½XOÕ“EñT½YûŸIñ°^MЇõlR<¬w“âa=œëå¤xXO'ÅÃz;)ÖãOŠ'’¡çPIûP {¿£°ó$R3 »Èo2 »Èpöl¨ëˆQØ¥ÇòΞ3 j=bvnf¹ ƒÙŒÂ^ ÉØƒµH3úÀÉ—…½£‘QØè©£°AŠQØÊ!ÜÓÜÊ!d6N£°ÁXˆQØXSÅ(쉞?Îñ=éàv©/1†Þ8i\ŒBlîJ#Ífö¤z[ݯ™c^ŒÂ®“ǹǷcˆQØE–rÏzyÊg™Êœa‹\…OÚó0&ØE¾’QØEƲ¦·oÄ dvóÍ(ì%2 Œ„… å1 {@I„{h®4£ÎôP ;{PÉ(lÆbL›QÀÉvfvž\mF!6ÏïƒQØ`"Ä(l0bv63˜QØY¼3£€à݌†Ï£°áãÄ(løD1 h65£°Õƒ|óýÉ QˆÍýy0 dº…GŒÂ¾À °G¾”iÄ(ÄI‡ÒHØáÄ(”zÌ6H|1 qRå8…Í}f1 kºö 0‘Ì(¬—=åˆ!Ö‹ž|2 E^ŠQˆæ¦v0 EzŠQ(e1 A’J#a¯Ci¤¹*F¡HW1 Eƪ‡µHZ1 ¥$#F!‚“÷`‚ì]£ŨCi¤š/Í(Ds×:…µ©d2x½ë=˜ƒ•ŽÛLÂoìçúùýõù˜K Æ÷ZT2©ïµ71 kR99G‘ãbÔçÄ(,øS1 þSŒÂ‚¿£°àÅ(¬ çïºÁ!²†¿n(£°g~AiAŒB£‡ÒHØ×¡4žç9……TŒB)¿¨Æ½”>¸ÕÉbÖDFau0IdV‡²kÚ«˜î9¬bÈ(”Ò‹…•›7fü…:YBŒÂBŒ&F!‚ýq0 h®7£°àoÄ(,(c‰Qˆ“3¥‘(††¿£° Ö)F¡N棰S‹QX¨‰QXùÅÍ(¬ …8Iä>…Y „˜5([‰Qˆ“KžƒQˆ“MÖÁ(D±aŒBŒ"Fa¾ÈáÈ(Ì'…Q(å1 ¤ºr¤X¸¯ƒQˆbñu0 ó«z žÏbx’ {XyÒÌðçõq0 9¨… FKŒÂÌb‘… %Faâä1 'ˆQ˜`¸Ä( 1£0qòÖ÷WŒOúÑž?ÔÅ(Ìì14£0³YÔŒNÒ7£öu0 3{®Í(ÔIibfúG3 3Õ"Í(Ìì‰4£€f{3 3ý©…™êÉfföXšQ¨“˜Ä(Ìì17£0³fbFaæÂoFa¦¿6£P'?if§…(N¼£@[=Y³1£@›{ÿ`‹Q¨ë‰Q ÍšL}1 õ}Uèß#F¡~¯…ºbê~‰Q¨û)F¡î·…zbêy‰Q¨ç)F¡ž·…êa­ñ"F¡Æ“…obj<ŠQ¨ñ*F¡Æ³…ïb0Ì(ð$ÁË=¯b0ßÌ(`>šQÀ|5£€ùlFóÝŒüø 3 ð'fàoÌ(À™Q¨“Å(ÔIbàïÌ(ÀšQ€¿4£jFþÖ=8¥L!FþÚŒü¹…:SŒÖ3 X/Ì(`=1£€õÆŒÖ#3 X¯Ì(`=3£€õÎŒÖC3 X/Í(Ôɤb°ÞšQÀzlF뵬çf°Þ›QÀBfFñ‚ÄfêdW1 ˆGÌ( ^1£PJbV1ÌwW1Ü3@¼dFñ”Ä[fêä\1 ˆ×Ì(”²…Ä{fšQ@¼hFñ¤Ä›fšQ@¼jFñ¬Ä»f›Q@¼lFñ´ÄÛfêäg1 ˆ×Í( ž7£€xߌÂCPñ,)1 È'Ì( ß0“ðov"fϘQ@¾cFŽÞŒò%3 ȧÌ( ß2£PJbê¤s1 u2ºü{¤.F¡N^£€|ÑŒòI3 ¥…%J1 kK9„ùÁ»þl?‡ÒHGàåx`-2ŒÊ7æu~?1“vߣPÊ7bÖ"Ãq1ßy¥æ;÷‘íë`ÖcÂý‰{ŒšQÌ(,Äb";”Fz) z¼U¼räÏu0 h.6£°n2:‹ùá}(ôRFÇþF_£°ÄpÞÜï¸æÁ(¬b"¸žD>{ŒB)ÕˆQ(¥1 kÀÿ°‡|Y£°À´ŠQXõöP¬\/Í(,¬bJ™FŒB)YŠQXgVL×êL‹Á¿¯øì¦}ïƒQXPf£°ï{ÿ ±…UJpÚÊfFaiýª¿oéÅ(¬<ÓŒÂÊÄÑŒš«Ì(ÄFÿ¡4’õ–}0 H4Ì(D}¦ŒÂjPa=kÑ£€Âª…R6£°.Æ'ëS©dFFa]` 4¾/ÄodVžaaFa寷…u!^¼½_3¥‘´¯ƒQXã¹Îý¢û:…•=ÆfÂ>”F:NŽ7£°²gÙŒÂÊkFaåÀ5£°217£õºu0 a÷ƒQ@³ª…™5f \kFafbkFa¾8£çõ~S*m«žš±…°¥‘°÷¡4Ò¡œkF!ìy0 8©ßŒÂÌ@ÚŒBØý`fN 3 '‹Q ­ú.l1 ´Ÿ_^ÿÕ^¿¼þòú8^o£PßWþ»~…ú½bê~ˆQ¨û%F¡î§…ºßbêyˆQ¨ç%F¡ž§U<ï~ÖƒÇÁ(Ôx£PãIŒB71 5Å(Ôx£PãYŒBw1 5Ä(Ô|Q¼_óIŒBÍ71 5Å(Ô|ÕþBÍg1 5ßÅ(”?£PþBŒü‰…Rn£dFþÊŒü™ø;3 ð‡fà/Í(ÀŸšQ€¿5£lFþÚŒü¹ø{3 XÌ(`½0£€õÄŒÖ3 XÌ(`½2£€õÌŒÖ;3 XÍ(`½4£€õÔŒBõ#ˆQÀzlFëµ…RŽ£€õÞŒâ3 ˆÌ( ž0£€xÃŒâ3 ¥!F¡”"Ä( Þ1£€xÈŒâ%3 Kg7¾žJ$—ã·±FñšÄsfà¨Í( 4£€xÑý{ˆ'Ý3ŽxÓŒâQ3 ˆWÍ( ž5£€x׌âa3 Õ¯3þ›÷P©xÛŒB);ˆQ@¼nFa#@Fñ¾äf/¸qÀþÒê_“ðoöþI™¤ò3 ÈwÌ( 2£€|ÉŒB)5ˆQ@¾eFù˜äkfªßKŒò=3 ÈÍ( _4£€|ÒŒòM3 ÈGÍ( _5£€|ÖŒò]3 «Îä$£€|ùo™O›Q¨~:1 ÈÇÍ( _7£PýyÚßG¾oFõ3 Õï§ødp¹ÿoJ#U0£€z…Ô3Ì( ÞáþÔCÌ( ^bFõ3 ¨·˜Q@=ÆŒBõKŠQ@=ÇŒê=fP2£€z‘Ô“Ì( ÞdFõ¨£¹AyŠõÔ³ŽþåÏý7ÔÃÌ(ìbØØãzšÔÛÌ( gFõ:3 ¨ç™QØZ¿÷K’É;öK®Ci¤ê‰fPo4£€z¤Ô+Í( žiFõN3 ¨‡šQ@½ÔŒê©fPo5£€z¬ÔkÍ( žkFõ^3 ¨›Q@½ØŒêÉfPo6£€z´…ªW‹Q¨z¶…ªw‹Q¨z¸…ª—‹Q¨zº…ª·‹Q¨züÿ^i$R¦ìÔÍoöÿêO¦È ¹å•Ы²ÑòUï{ sWvil12zê´~Ùè\Ôûúü?*L<7ÔŽîxæñMwæ5»÷bŒ1ñÓûÏ+_¿¿µûýüÞ /{Ñâžüj;[â=üÙöûëóhÿáéðn—þGîã›åÓïË1ù÷ Éû½€Q½I¹é€óÖëþdo^ô:ëýy~{õ¶D‘õEoô|ÊŽç7r‰ÜÔ€]÷AÏââxK5ô{ÁNõ—Ï;7M£wû¡ÝawÚöíë]°î/zï{ŵ “lÈ[ö†}ßeG¯n¿±v†=a]öÞô‡× Úö’ÂNÖ£#–»ÁÖë±¶;‚ÏË »®ŸAUôÎ×çg’öÍ÷§^ÁËïCâåï»3vo/ÿ }„k}Ø ½ý¢m>ßV½£ÙD=ŒÖÊ^Ð;ØwÙ1ŸZåöabKFÙ¬Ââõôj•¾Jõb‡M½%\¿AÏåE-g`!h˜Ö°w7{”›r-×WøóžŽ#ì—?À"mÚ½ÖïQvê¡Ìò/½X¤…ZT5…$›t—ýÀ®ßwåóÕ‹‘›‚oÆ#‹ïOVõâç]ˆ¯Ÿ±J\ÿ>{@o«óï+žj»ìdW'ç'Î+À1ßeCë_ƒjò½+Þh¨}°w<íëˆÛËøÏ»Aïer>7ÔZ&×ïöJu—v©ÛF¼«¿¯óRtýó,ôù½jŸmÔ~^^¯¡¶ƒùÖ^ª>_ü= ¬TÖ&Â&+Íë]Pymzµ—ÎåEí¥r’,ŠÍNµi¬ç z5›ñGC-lWïbæ<¯k)i£–²øþÒ·ÛzÿÊÚÉ~N»jñ²éOþÉ.6˜öÃø±>ï©Ú¿ÏÃõº¾ïS½dü=OÕjù{ŸêÝáýxŠ5áýzv÷ºŸOÕöx¿¿¤tÍãy¼WÅ_õ¼Þê½âó|;²Q>ïwx<•V¨ÇÏÀ^ÇCž/µ<þ“ Û?1ßÇó¥TW5žJuUv(C^µ[ó!j!¶WÖBôþ<Ÿáöõó¼­éϽ•ëø~/Îï’‰óÏ®‡þçý]òµ7wÕý‚¿PÝ¡üI°i‹×»±w7éò|±Ûþ(Ø«6¹^¤? v­óóB4ØX^ÿýòó_èïȧÏ[ñümìEVü’þ82íAÿú+½s=Kö{øûØëÜ|=ê,ýæzœŽ*>ûãõ$÷No¯7aW¼ëQI•j½Š½ØÎ÷ß7öf§×»ÞåßqǸøýs½ ÏëiJN¯·½1µ‡ýëuìÏc=½e­ï«§­õ}¯dùt½Ø+“ñÓóñö*ÞHY™#I˜#^IÚÉ >ŒO3ÞI™•#Êcíoåï«ÚsÅSy Ü[vTZî‹ã1‰üû ö·êKåo^×7²æq}#õÍÞßÁó<‘O¢žR²R³Þ’²UG=&e±FÙwù+Öc&üÛÿ_ØåVö†|y½ôª?æÄ ûb½ªáüÐÉúW‡}ÑŽó:G÷ëù}ºÿ>¿Oóõc½?¢ˆù|é§õ—ß?þ°ë÷-¬GÿÂù£ŸOÖór}:ê}É~³žxc}´s}büˆzbغ^±ä“õÇ\/GÅK¨W†ÝY_-½¼Åzl<ÏÞX_ÙX?U¿„ìçKÖScý×ûc=m/ëk¹ðvöêW½6ã Ùˆ/:íÿÁÒõàˆW6ë¯ñü! ^öŸõçXÛàç=Ðì|>Y¯»±^ñÔàë¨>„zxÆc³ìø}×Kö —鬯¯Œï&¿O̯kÕú€z½ãCÔóÃn¼Þ†žâÐþÀí½¸Ú/èdqj?!âW]ïE<[ãçé~ñ.âûÚ¯x_ŽÿŠ¿U­ø[õPô~œöÆyhKóç¡5Ö“×ãÞ¬´ïüüÎúqžg{U¼6ôÑUÎûÙ<ŸJorðó³·¬»>=ê,3ÎÇxýÕüÇÙ·ìê=£Ý°—©×/œ•öòzÎR»é¯^è¿×ý@|ô=ïAÿôàù?ôwÆGg½:Ïçe=¡üÝõ²Þyc¼¼ÜßlÇkÚÔUY[õð^½›õï󅾿#_èòß8Ûbñ÷Äïw}8ΰµ¾¼˜_íó¯«~޳1ןù{q= Úäßó‘Í¿õ±-Ö·üÉòçø‡‡¯wøÆ¿ïð/“ë]ö:n¿?ýƒüoB_a—¿ÇzËÞÉ´[ú3ÕËsß—õZ¿›žò‡ör½èoô‹ûEùÖël {óý±~v棣ãüêÆý¬¸Ÿp¡w•ñ÷¸ÐûZgGd¼×rýºÿUþ×/.ôÆîL¬w5Þ/|_ÖÿzSûÍõ ½¬d·¯ö›ÏûÂz]lDÆ»Ð}/ÇøèŒ_;òýÎñÝÑ‹Üg—þ"Ÿ¬_¦ãM›ñô]6?/â¥Îõ â÷?Ù­ÿl_íˆ:Ö‹~ä‘ßùû=9{±Î™à~U½;!ò¼|ÿÀóx˜Ÿäùé7ó1ä;ýÈ^ÜÏ›û îÿà~ÂÆç5æc Ïïbþ•÷‹û=ÏëÍñ´Ë?7íöñMß÷^œ½ó0ßÌïsìOä÷Q½váûùèÄ||”â¼øªO,ÜŸÆ|na>_¬W'ØûÅûSzÅ\qh_úæÛå&÷7b|µ—ןˆ§Þ¬ŸíáýHGöÅ¿ÏÞíÍúQn|güÅ÷—Þ²®w•þ2ë oõ޳>gi¿ áô÷Ú/žsÕRÿ­{ÿõˆÆü ÐNöžËnXŸhwÄsúûð­ùúÖ¿ú|ä+íªx¸ê'÷c`a½½YÙ8 êá߯:o•û3 ½íªÏd¯Óæ÷ìu×çŠ'd÷´íŠOt½VzÚü¼x—Æ÷Èßwuî¿e"¶ös²¾Ø¸_ˆõ캼_ó Týk#^›¬—mô’½ÜÏY¨Ÿêý õUí'MÔ_ë~õÜ/xçsÏýªw²Øy¶×–ž ‹ö@oÜàßg=·s¾gSvÔ_~~žßÛüý:ôÏUï‹^ÎçõçÅ~Ðór|T/áÃç^ùgs<å!bQÿÖï» ¿Þ´¿µ²^>xý ½†‹÷?ö›Ÿáûy¡W±ñûÇþæÓ9¿p¾ÿÓø{˾XÏk8Ûöâz‘ëìøï¡O°~z}ÿ{ûçë­ãzOîW¬çø>[ë¡l=ï ú÷8~ï.¶“÷c³?¦î×n¿yöœöÛq¿×Ëùç±ú<¯õpÏsmúãÒC8êÁgé]?èÕÕ~eGo¯ö3zO°ú½çß7ÎöÛ¼þ V@Ÿwckhþܹÿ¥ñ}žßÎù6™?Ô|œÇ~ëFo÷{Îgöv×|ý9½¿zÏUï~ëü|ú› ½ø®g£—ñ(üQ›Œá¯bÿpóýÙë}ìWçùõŸGÝûÒ¥¿ [Ÿû÷÷ÃýÜô·a»>¾Ñ¿ÆÏ‹^ã›õøó°oþý‹³…í·?iÖ»ã÷E½‘ëUôç@ZëMƒÌ„֣ܿåß×YÄ›ëOì’E®õ®¹¾ëaغ~~ÿ‹ãg—ÞÚo¸Ñ_öÒÿ jh½Êõº îb=oQ×zv;âØßVý~¢nðýÕO§ëEÿ dïaçYë§x%ö×_Õïa+žj°;㯎³“_ö Ø‹ñVì'îG"Þ [ñ[ôã Õï3^kª÷!žËþ<ÆkáÏÆ`|»±ÿÏýÆ^ý~Šÿ2ž {0~¼«ÿ€¯ga÷~ÁBßsija+>ÍïÃ~GÄÃÙ߀ë¡_g¨ÿ&ãé°û}ú!.õÿŒì—xùþ‰~‡×[è'¬ý¹ý ýö‡ú…°_«~Dä:›šýK²ÇøÙ¾ëï™LØ[ýTø¼Í|*Ç—¾úüý_~߇¯¿ø=/ó·<Ûûb½ôâYÛûÉ:îãþÁÀóéÌïêÏd~8aß|=Ͼm¬§^ìOYÚŸhi+|ñü^^ïÅøºÔÿ†ñ×|Ùã !Ç#óëü¾ù*ô…P¦ø›ùzŽoæÛÑ/¤ñ|?låãý2‹Ÿý.ƒõ4¬ÿÚD½¡›õѬGä|åþGÍç‡ýˆó½ñõìÏ™þûý8‹ûý¸/ß¿êìuÖWò~³ÿõ˜Æ³BØ/ɳ…«ž“þŒûÎv_¬Eÿc”‰YÊùÆ~%Ô“²¿˜?Ь÷çýÝ¿9qvñ>êYGÿò€¿Wÿ*ØÃsÿ&~ÏÝXßÀÙÒÑÍ¿~­»y¿åª~"Ùµþõ¼XŸë‡ýF“õ½ðoÚïăÍ~níÏ œ¥ÌëåÙûÓõËì'ŸÜºÑo®ç…~Ý{q=þ÷v=ñ¹ŽõõÒXß/Ö+ólæ‡õ­ëõÃúöÄYÎoõK¢^›ñû—³_Ÿý™¨÷&"ñ‰^Oý¢æ×“¥ëÑ¥ýŸìà­zv±‹¬Ïi²êÝÉî©¿lÞÔþâµÆzs±xëØoŠx¯³Þý4òâJª3H\ITöãT Ñe“hQÿÕG’+åú7Ûï¯Ïûw®äߘŠYšs¥W2Ї§^É(~žz%£x{ꕌâõ©Wöz­W’ö´^IÚ—õJÂΕ> J¯$íÛçQY=Dì¹ »[¯$쾬W’öe½’°Ûm½’°¯Çz%£Î§^I19õJÆ|ÈË!¦à3©WvÌ1ê•„½–õJÀK÷¨ÕyáäóàÁÛz%a³'n>àÏ˪ôJÂÎŒ5Úù¯Äš07øKÖÈ&b¢¥çµ1ÆÙs27sœÉ×çk½’´/ë•äA‰Í|pØ£[¯$ìX£¨WvÖ+Ƀp‡õJâ Åˆ¹©Wv2)u_ØéÃYóÂùÔÒ+ {vë•äÁÝz%?Dz%aGÌN½’°“9ážÃœˆ!XÛ“=ªz=Ïë_ü{0Ô+ {b ï|ýF ]÷ú Ô+ »#¦©ß«oÂ'S¯$ìgY¯$ìÔ )½’°W·^IØ¥W7¡7C½’pZz%`µôJÂN†¤ô2@mé• €ÞÒ+Hf¥WöìÖ+ {¼Ö+Ƀ3·õJÂNf£Î³˜ 2V³˜ îqÏb6˜³ÎΞqÄ z Ô+¥1¥=­ÙÁ ”^É(M+ê•ÄÁ/zÚ‘sϽöôLôPS¯d”FõJFiz©&;õ53•fõJFiŒQ¯d`1•^IØú"5?®Ô {âý7í÷¾ŸŒ ¯WŒ bØ;‹µæc?¿¼Aoóï.fƒ{ÄwéÃðûÝ/‘â½Ã¾Š©Áõ2¸ÿ7˜;ê•„=Kÿe”= g‚˜á#G½’°/0ȉJ3熽ñ¼á¯,I¯$ì¼uÞ(Cê•„ŒIOµ¾¯õ}Ì×;R—^Iìz[¯$ìè©§^É€€ƒ{R?1a[†õJÂ^õJ§ôJšÍ¤W2ÐL&½’°ÃÿP¯$R‘ó"&½oæ`õûPc¡^I¼Žœ1gizR¯$ìˆ ÕƒÍcíÈ)5¸ç…P¯$ìݬW2lK¯$ì¬q1དྷ°ûe½’°¯m½’Ö+©ƒó¤W2М&½’ ½’ʤWRù„ôJ*ßpåìWùŠôJ*Ÿ‘^Iå;Ò+©|Hz%•/I¯¤ò)é•T¾%½’ÊǤWRùšôJ*Ÿ“^Iå{Ò+©|Pz%•/J¯¤òIé•T¾)½’ÊG¥WRùªôJ*Ÿ•^Iå»Ò+©|Xz%•/K¯¤òié•T¾-½’ÊÇ¥WRùºôJ*Ÿ—^IåûÒ+©z€ôJª^ ½’ª'H¯¤ê Ò+©z„ôJª^!½’ªgH¯¤êÒ+©zˆôJª^"½’ª§H¯¤ê-Ò+©zŒôJª^#½’ªçH¯¤ê=Ò+©zôJª^$½’ª'I¯¤êMÒ+©z”ôJª^%½’ªgI¯¤ê]Ò+©z˜ôJª^&½’ª§I¯¤êmÒ+©zœôJª^'½’ªçI¯¤ê}Ò+©z ôJª^(½’ª'ê|òª7J¯¤ê‘Ò+©z¥Îó®z¦ôJªÞ)½’ª‡J¯¤ê¥Ò+©zªôJªÞ*½’ªÇJ¯¤êµÒ+©z®ôJõÒØãŽz°ô ª^,½’ª'K¯¤êÍÒ+©z´ôJª^-½’ªgK¯¤êÝÒ+©z¸ôJª^.½’ª§K¯¤êíÒ+©z¼ôJª^/½’ ¤WRõ~é•Ô~€ôJj¿@z%ÜOxõ¼°ß@½îG¼òߨ¯ ^ ÷3¨WÂýê“ ´ø³Ý­W’óã±^IÚ·õJÒ¾¬W’ókZ¯¤æ›ôJr>.ë•Ôü”^IÎße½’Í(镄뎙=Ò+I°¬W’öe½’ôÓz%é_^땤}[¯$ýÑc½’´»õJÒ-ë• ¶%½ú; 3“I•^IÚÍz%é?§õJÂŽõ´Ý®‡çyïÓ¿çšÖ+IÿüZ¯$ín½’ôçÓz%éï땤ݬW’ëÃm½’\?¶õJ2P~­W’v·^ÉÀÁ«ÇüÎÖ¤W2p«ôJÒîÖ+8ØTz%ŸJ¯dàð2镤}Y¯$×Ón½’\ooë• ¦¤Wvê°0ìËz%¹žwë•äB1¬W’ñÀ<ò#¦&½’XHbý¤^IÚ—õJ2ÞhÖ+Éx¤[¯$ã•Ûz%ÏLë•„ñõJÿ¨~1¡'@½’´/ë•0ž¢^IØ¥q±^ëõ#Ƭüð=â·i½’°×²^IÆ{Ûz%>Ö+Éxñµ^IØýµ^IÚ—õJ2ÞlÖ+É…¹[¯dà¸Eé•„ý ë•d|{[¯$ãßi½’Œ§õJ¾—õ@2žÞÖ+Éx{[¯$ãñÇz%a_¯õH¿ÿÉ~ë•„½×Ü/¿¯òyè©„}wë• 47J¯$ó“×z%™¿<Ö+ÉDzY¯$ói½’ t†õJ2?êÖ+Éü©Y¯$ó«×z%…/é•d>¶­W’ùÚ:ÆÛ]ñÊ‘ÿåøc½0ò¿a½’°ãûP¯$±f½’,\Ö+É|óµ^IØíµ^Iæ§õJš=¥Wö³­W2p˜¡ôJ2ÞÖ+ {.ë•d`¸¬WöXÖ+É|{Y¯$óñe½’,Œlë•dþ¾­W’ùý¶^IØû±^IÖ^ë•d½àµ^IÚ—õJ`}é•d½¡[¯„õꕄݦõJ²~±­W’õÇz%i_Ö+ÉzH·^IØû¶^ ë':#î†^ õJ`}é• 4I¯$ë3Ëz%Y¿y¬W’v³^IÖ{në•„ãƒz%i7ë•d`?­W’õ¤Çz%iwë•dýiY¯$íËz%a¯i½’¬_½Ö+Iû¶^IÖ»^땤=¬W’õ±×z%ißÖ+ÉzÚk½’´§õJš‘¥W2Ðü%½’´‡õJ²^÷Z¯$íe½’´»õJª0(½’´—õJÒÖ+I»Y¯$ë‡õJÒ^Ö+Iû¶^IÚÝz%i_Ö+)G-½’´·õJÊñK¯¤·ôJÒ¾­W"[þ¾CïDõ]ØÔ+‘ýüòú¯öúåýóxý>Î ¡Ý×§õJø{¨WÂßK½Þ±\ï}.ë•ð~R¯„÷{h~àyP¯„Ï«k? ÏSñ_=ï~Öƒ×qæ@ê•pS¯„óz%ôÔ+¡¿ ^Iù3ñð7Ò+)$½’òWÒ+)&½’òwÒ+)(½’ò—Ò+)*½’ò·Ò+),½’ò×Ò+).½î¯S¯¤Öé•Ôz!½’ZOÌ0a½‘^I­GÒ+©õJz%ìÐiXï¤WRë¡ôJj½”^I­§Ò+©õVz%µK¯¤Öké•Ôz.½’Zï¥WRñ€ôJ*^^IÅÒ+©xCz%H¯¤âé•T<#½’Šw¤WRñôJ*^’^IÅSÒ+©xKz%I¯¤â5é•T<'½’Š÷¤WRñ ôJ*^tÿâIéGT¼)½’ŠG¥WRñªôJ*žmöߥ_1Ïîa½’Š—Í8!ž–^IÅÛîÑE<.½’Š×¥WRñ¼ôJ*Þ—^IåÒ+©|ÁýˆÈ'¤?Âþ%ê“ü›|ÅïG>#½’Êw|&#ò!é•T¾$½’ʧ¤WRù–ôJ*“^IåkÒ+©|Nz%•ïI¯¤òAé•T¾(½’Ê'¥WRù¦ôJ*•^Iå«Ò+©|ÖLò]é•T>ì3'‘/{¼!Ÿ–^ ûé¨WRù¸ôJ*_—^ ûó´¿|_z%U^IÕ ¤WRõé•T½Az%U^IÕ+¤WRõ é•T½Ãý7³ô‘Ø¿†z‰ôJªž"½’ª·H¯¤ê1Ò+©zôJªž#½’ª÷H¯¤êAÒ+©z‘ôJªž$½’ª7I¯¤êQG?r:>é•T=ëè_Îz—ôJªÖ¼æŽz%UO“^IÕÛ¤WRõ8é•T½®yÿ LõJªÞ'½’ªJ¯¤ê…Ò+©z¢ôJªÞؼßFz%U¯”^ ûu©WRõNé•T=Tz%U/•^IÕS¥WRõVé•T=Vz%U¯•^IÕs¥WRõ^é•T=Xz%U/–^IÕ“¥WRõfé•°ÿ™z%¬WS¯„õlê•°ÞM½ÖÃuFRÕË©WÂz:õJXo§^ ëñ§^Ilf®}è><àÀ¤ûð\êIï´ïC÷áÁ9ÀÒ}x.r#ð‘Ï…5—1És‘;鲯C÷áÁ9ÁÒ}x.è.¼¾^»݇'{v¬ûð\à†8Fv6ßY÷°u6zju®ßƹèÒ}Øàö¤û°_ôÀ³‡$šö¡û°ÁXH÷ÀºubsxÜÔg§.9«ý’ÓZ¼^ƒÎÃK;|Œt6Ö|é>lœ‹+݇ ] é>ì,¾Z÷a?äèôþâìóï‡Þäëžüûâ¯ßöÁYFsìú½›=õ7íð©Ò}غìyÙçtS÷aƒ‘îÃÞ8'œ>|£gXºÑüñº;Kë>lôK÷aƒ£Õ9,œ­t68\é>lpº:G%šOÆ¡û€¬û°ÁDH÷açÍÖ}Ø ç´3F݈ɥû€Í~ë>ÄËãÐ}Øð‰Ò}Ø“=øõ|ëœxöà퉞tê>lhìI÷aƒÃ–îÃFŽ#݇]çÆ3Æßy „uöžxraÑÌsº9›t64¥û‹Ý8t68wé>l0Ò}Ø` t®×¡sø7é>ìÒ­`M¯4¦¤û°u#C—¦•tv‡Ž9Ù8¢º=ÉÒ}®yè>lhI÷aãé>”f˜öøJcLº»¡GŸ1׆æ¦ÎõÛy@šuüY÷a7Üoö¸lļÒ}¶÷ÐqØy€—u~cÏ_Þ_ŸhÁsÁöE|¿õ‚¹`Oî’NŦ½®C÷aa“îÃÂ9ÙÒ}X/uó¯÷“º þQº¡8݇õPÇþk=Ðq` d=¸ôkƒÙàx[›ÌF£]Ìî7ð°îÂnÎ Z DZ÷¡4¥û°æÏXÐá‘îC·ï¡û°À,ÄôÒ}XŒÏ!Y` ÔÓŠb…uÖÀçó\óU\5uÐm†£4`¥û°ν 3¹:Î`ÏÌê87€ç¾-hòI÷aAÃOº ç°H÷aeóœuPL±îCiæJ÷a!‡”îÃBŽ©s{rPé>,0ZÒ}À1Ö}XðWÒ}XÐX”îÃç/݇fBº ŽêÁ]ÐxT|¸ )݇Ò4–îÃj<×åá÷­s_l_‡îC4܇îÂ?Tö}è>”F³tü£tVÂwÖ}€æ³uVéë±Æ¸àO¥û ië>¬Òà¤î4§­ûÍmÏÁ¸.ÔL¤û€æ7ë>,øké>¬ 5Gæ¤ L›th³çb]ÐØä9—´YÓ\¨áè\¦ßÙÏ¡ûP¶têó¤û@›ëu}_é>Ôï‘îCý^é>ÔýîCÝ/é>Ôý”îCÝoé>ÔóîC=/é>Ôó”îC=oé>ÔxîCé>Pó›= 5Þ¤ûPãQº¯Ö}Àx¶îÆ»u0¬û€ùbÝÌ'ë>`¾ù\_ÌGë>`¾Z÷óÙº˜ïÖ}€?°îü…uàO¬ûcÝø#ë>À_Y÷þ̺ðwÖ}€?´îü¥uàO­ûësMá­û°j‰=«ö„XÆ¿·îÖë>`½°îÖë>`½±îÖ#ë>`½²îÖ3ë>`½³îÖCë>`½´îÖSë>`½µîÖcë>`½¶îÖsë>`½·îâë> ^°îêsÊ©û€xúˆG¬û€xźˆg¬û€xǺˆ‡¬û€xɺˆ§¬û€x˺ˆÇ¬û€xͺˆç¬û€xϺˆ­û€xѺˆ'­û€xÓºˆG­û€xÕ{®ˆg­û€x׺ˆ‡­û€xÙºˆ§­û€xÛºˆÇ­û°¤£ÐŸ¿ãÐ}@¼o]äÖ}@¾`ÝäÖq@¾a‡ßØÏOïÏ|ƺÈw¬û€|ȺÈ—Žï—ù”uoY÷ù˜u¯Y÷ùœuïY÷ù u/Z÷ù¤uví¡sÏù¨u¯Z÷ù¬uvé&ðŒäÃÖ}@¾lÝäÓÖ}@¾mÝäãÖ}@¾nÝäóÖ}@¾oÝÔ¬û€zuPO°îê Ö}Ø¥“À3vé$¨¾Tþæu}£¯C÷õë> ^bÝÔS¬û€z‹uvù2 ¨×X÷õë> ÞcÝÔƒ¬û€z‘uPO²îêMÖ}@=ʺ¨WY÷õ,ë> ÞeÝÔìû€z™uPO³îêmÖ}@=κ¨×Y÷õ<ë> ÞgÝÔ­û€z¡uPOô9Ϩ7ºõHë> ^és‘QÏ´îêÖ}@=Ôº¨—Z÷õTë> ÞjÝÔc­û€z­uPϵîê½>çõ`Ÿ z±uPO¶îêÍÖ}@=Úº¨W[÷õlë> ÞmÝÔíû€z¹uPO·îÃSL6ãcÔã­ûðÓÍøõ|ë><Å„S÷ûÞÓÀ~u°Ÿ`Ýì7X÷ûÖ}¨ý é>Ô~†tj¿C:gèœv݇°ïC÷a££— lè,I÷aoÄÛÔ}»º5?¥û°tºëÃyfÔ°¿xú¡û°scú;—²îÃ^Ðq›~}µC÷a/èR û:tví1Q÷a/ÄûÛõïÑ݇]{Z¬'”¿“îÃF<&݇ Ýé>lœîzeÂ/Ö}ìi݇]ç†suçæ—up ¯uvk͎݇Ö}ÀáRÖ}ØÐáîÞÐMážÛ†î†ëÛ9Эû°³ÐqÌï„׬û°oœY°¼¾åï#sÍ]ë>ìº Œ÷÷ ]†í÷§.Ããõñ~݇ZoÕƒ¶oüž¹±ó@Xë>ìÒÍÐ󺩃÷²žþ¾‡îÃÈ´^£çTººKÒ}¨øBºìC÷aèJ0~Þ¹Ço݇= +Ážû :é>Tü£žâˆîC÷aWO{¨+žÒK»CG€g8à€gë>ìLL­û°¡{%݇ݡ{@wè°ÇfçaYÖ}Ø¥ƒqûó®yè>ì¦DÆ·Ï>tâð„çÐ}¨xUº»a½fù.]B2"ÿ¶C÷a#ß—îÆî˜tvÃý¥îÃNxѺõé>ì<£À:¿ÿÉ^÷Ï6u%”/´C÷a_ÐaÔ÷» ÓHf4òuè>,œÑ|æ‡îÃz©Ë±i¯vè>,¬ÏÒ}@aͺ ë½tVêY÷a!~Ð~ãz¨[µ˜ß=ýÐ}X¯ù_¿‹¿‡î®“tÖƒï£zm: ë>¬‡º+òÏyè>¬3S¨ûðÙû>t"Ÿ‡îÃÚˆ¿¸>®øFõÐMÿ£ý“Þ݇µO=ÞO¹ú¡û°°^J÷a-Ä7dR[÷aA7Qº :Ò}XyXŒuÖb|6YèëÐ}@s·uâ}ïß !݇Uºô/Q¿è‡îÃÒú¥zÉZ‡îÃÊ5­û°¦t’ø÷w?ttà¤û°&×營ñuÂn‡îÃ*](2ŠhÞ´îÃBþ%FuÝ<ÓrЮøDû9û:tÖ/é>¬ìÁµîúÑÃÒ½Ÿs¯C÷aa=“îúO²'máXé>¬ñœöГ%݇U=ÆÛûIí:ttÍ¥û°nöU=ghI÷a¥ã·îØ·îÃìAZÜÊžiža°t+šëyY¾\ïÛýÐ}Xyà±uΑ—îÃBÏ›tt×¥û°p½tÖ`Oôàõç:tV6f݇…sí¥û°°ÿ.݇…s„¥û°êëì™¶Ýøúýº´ÿ}ÚÛÿöÏ×[Ç÷¹ÝÚ\ëûJ÷¡~tê÷J÷¡î‡tê~I÷¡î§tê~K÷¡ž‡têyI÷¡ž§têy¯³Ü݇/Ò}¨ñ$݇oÒ}¨ñ(݇¯Ò}¨ñ,݇ïÒ}¨ù ݇š/Ò}¨ù¤ÓšoÒ}¨ù(݇š¯Ò}¨ù¬YÌwë>À¸'þºð'Ö}€¿±îü‘u௬ûfÝø;ë>ÀZ÷þÒº«Îu& kÝøcŸ mÝøsë>Ôþºt°X÷ë…u°žX÷ëu°Y÷ë•uª@L'Ö;ë>`=´îÖKë>`=µîÖ[ë>¬ÒAx]Ï_Ð…¸øùçšÏc½·îâë> ^°îâ ë> Þ°îâë> ^±îâë> Þ±îâ!ë> ^²îâ)ë> Þ²îâ1ë> ^³îâ9Ÿ{xϺˆ­û°ªßïˆÿž~œÃxÓº«ú Y/D¼j݇UýŠòß83Zºˆ‡­û°JAý7/u÷žqè ·îâuë> ž·nâ}ë* °îò…£ñ¹ûì/­þ¥?ÙÏ/ö[Ïzÿ]ˆ­~ª²™Oõ~~?ô+øû7~_õwMèB¼|}â÷½ü¼õ÷ ùžuZ÷ù¢uvéð ¤]:Ô}@>jÝä«Ö}@>kÝä»Ö}@>lÝ,Œoȧ­ûPýtÒ}@>nÝäëÖ}¨þ<äûÖ}@=Àº¨X÷õë> Þ`݇ê”îêÖ}@=ú¨wX÷õë> ^bÝÔS¬û€z‹uP±îCõKêŒVÔs¬û€zuP²îêEÖ}@=ɺ¨7Y÷a×™³êGžßd¬QÏ:ú—31·îêaÖ}@½Ìº¨§Y÷õ6ë> gÝÔë¬û€@ͺ[ë×d}-u&´_‚3Ä¥û€z¢uPo´îê‘Ö}@½ÒºÕ¯+݇]ë™ÔC½~£^jÝÔS­û€z«uPµîêµÖ}@=׺¨÷Z÷õ`ë> ^lÝÔ“­û€z³uªÿYº¨W[÷õl3e¨w[÷õpë>T½\ºUO—îCÕÛ¥ûPõøÿÝtY÷Ǹù´º²¥Û°qºã/¶iæÅê_l¿¿>ï¯ûp_ œmé>„=^ë>¤=­ûöe݇°û²îCÚͺ76?¤ûv³îCØÉ¥”OºÑü#݇ûºÀÝv^Z>Ô};bê>„½ë>¤Ý­ûvq²9æÂž¯uÒÖ};brê>„=^ë>¤Ý­ûvøê>„ç"WRÚGZØ¥½‡5ñEL!݇÷%Ç…5ñ…“tÞ=zÔ}xÁ|H÷áÍf|ë>¼/zêX#à Ö}x_rvˆa^0âF_ô(K÷á}1çxnÚ‹MœåggÎÁ˜î….†tbóê>tb Ü‡î€lë>¼`:¤ûð>ðá¬y½µân¾ÿº݇wçR÷áEϳtÞM- Æ÷¯Òr{ËžÐnÃÿn­y|½WO+ÿ¾aM­ß†Cº1 •V÷s!gÿ[9uÞE­.¬‰ïSž‚>\º/|¾tÞ:'žºï‚n}Ü ®Lº/8lé>¼ÈɤûðÖ¹ñÔxÁ}kOâ<§~òõðÒ}x‘cêÜÞ7¸°îŠSÖ}xÁ¹K÷á-fƒŒÕ[Ì÷¸ßb6˜³¾Ål0y¡[!݇5íi½8'@ºï@Ï=u^Ô`¤ûŲ}è>¼è¡–îÛ¢X÷ÆY÷áíÔ5@Ìôâyé>¼Ð¢”îx¶îAë>¼ÐÚ”®Â‹sã¥ûÅ»vè>¼ˆÑ¥ûðâœxé8¼ @_ÿ`ùóûëókþ³Á=â9‹¿_&?Ö}x¥Sœû½ÈÔý¿È G}áO¥ûð¼``Xcyà/¥ûðÀ?J÷áyÁÜpþ~v‡îë>àÀë><ê> ׺´¥ûð<Ô5Á|} Û£sƒžžú¤#´îó¡£BÆàtžÜ ·îÃGº é><`4¤ûð”.u¸Z÷ÍÈÖ}xµë÷-ø?ê><‹9bÎþFºÔB'1ïggÍB÷5#é><“Zpº^‡îÃS9Ï-}ªÆÅì)mOæL8dé><7´ã¨ûð€ÙîÃS5=2"´Ý¤ûð@·BºÏž}ædÏ`>æëƒš§tÔP¥ûðÎ=çg`=§¿rº´_¥ûð§Îs%hÉJ÷áAN+݇ÿ¿²séµ$IŠð¾E-g@>⹘Þ! „4hš ñï)ws3‹[ªnæ.º4>yòÜsòdF¸[¸Å·PóŠû°P‹û€ žÍ}Xð”‰û°hêô€-ŒWâ>¬ûž°§xÁç/îšåÍ}XдoÓÊÅ@sXÇâ>,p1Ä}X`+Šû°Ð)îÃBO·¸ØÙ܇uc_îÛ¹ªGœÜ‡…LqVŽæ>¬=ß±Á³¹ ù·¸ ù·¸ëËžÜÚÍ}XÈÇÅ}X艗çgaM\܇u£ÇùÇBO½¸+#szRUcÃÜ`îcÖ`¨lÌ}`ÌÊågbqêýÄ}`Ì5îú<â>Ôç•f_ßG܇ú¾â>Ôõ÷¡®—¸u=Å}¨ë-îCýâ>Ôï%îCýžâ>Ôï-îCÝÚ¼îqê~÷¡î7qê~÷¡îWqê~÷¡îwqð<˜û€çÅÜày3÷Ï£¹x^Í}Àólîžws0˜û€ñÂÜŒ'æ>`¼1÷㑹¯Ì}ÀxfîÆ;s0šû€ñÒÜŒ§æ>`¼õ¾¦«öMå;Æks0ž›û€ñÞÜÌæ>`¾0÷󉹘oÌ}À|dîæ+s0Ÿ™û€ùÎÜ̇æ>`¾4÷󩹘oÍ}À|lîæks0Ÿ›û€ùÞÜäæ> _0÷7¾¹È7Ì}@>bîòsϘû€|ÇÜäCæ> _2÷ù”¹È·Ì}@>fîò5sÏ™û€|ÏÜäƒæ> _4÷ù¤¹È7Í}@>jîòUsÏšû€|×ÜäÃæ> _6÷ù´¹È·Í}@>nîÃ.Žט‘Ï›û€|ßÜÔæ> ^0÷õ„¹¨7¬œ}'íà> ž1÷õ޹¨‡Ì}@½dîê)s0°šû€zÌÜÔkæ> ž3÷õž¹¨Í}@½hîêIsPošû€zÔÜÔ«æ>ìâ&l×ÓÉM ÷õ°¹¨—Í}@=mîêmsP›û€zÝÜÔóæ> Þ7÷z€¹Ð Ì}€ž`îÃ.n ÷ý…aîô s g˜û½ÃÜè!æ>@/1÷zйÐ[Ì}Ø5þû½ÆÜè9æ>@ï1÷z¹ЋÌ}€ždîô&s G™û½ÊÜèYæ>@ï2÷z˜¹ÐËÌ}€žfîô6s Ç™û½ÎÜèyæ>@ï3÷z ¹Ð Í}€žè}ž¡7šû=ÒÜè•Þz¦¹Ð;Í}€jîôRs §šû½ÕÜè±æ>@¯5÷z®¸¥÷ŠûPz°ö…/½X܇ғÅ}(½Y܇ңÅ}(½Z܇ҳÅ}(½[܇ÒÃÅ}(½\܇ÒÓÅ}(½]܇ÒãÅ}(½^܇ÒóÅ}(½_܇Z÷¡Ö Ä}àz¹\o ÷ëä>p½‚Ü®gûÀõqö"GÍq;¸_÷açünîCÄ÷Á}ØÉY2÷!âçà>Äó¸îžOsvÞ¨æ>lô¨Šû°óA2÷ag‡¹;AsöÇíuü΃û€ ÀÌ}Ø)„šû°‘©§rOäû‡þ}­ƒû°s ÎÜ,ô˜ûãá>¸ØÐÙ܇}ÂÅ}Ø™H›û°s1Ó܇œ¹{`_krv|æ>àF2÷a§ùÍ܇¹ø¡Ì}ØÙCdîÃwC܇‚¹;…,s68êyßœ‰îù-Æq6¸â>Ä|¸îÃÎ5jsví;NOËÆ¾ãâ>Ô|+îÃîØÇ«hs6¸â>ìÌ}ÀƒhîÃn¨Xmì;.îÃÆ¾ãâ>ìüaÍ}ØÙŒnîÃΞs*_÷!´ypö‹}èÙCYùô‹ .†¸\;q*Ÿ÷açhî6øõ>üûžôûÈßæÁ}Ø/¸ä>ì\z†öÎò9p0Ä}Øà`ˆû°ÁÁ÷aƒÛ%îCä£ïÁ}¨|U܇ý`¾~¼žðŒƒû°ó€¹õ¾<´Ü1qöM.àÞ?÷Á}ؙؚû°or 'óó~ÿrÜ®ƒû°op”¤ÞcîÃÎ w|¾ì2÷¹¹ûW‘=@ó£¸û"—q1~ÇÁ}€iîÃN¡¹ûB¾Â=õVr‡Ì}XÈÄ}XÉ92÷am¬…ü‹ž%L´æ>¬…ñ‡ûò¯‰ç—܇•fGsÖ„ÞÃ})8_â>,Ìâ>¬ .Ïp=ÿîƒû°R80÷¡ôqÖd~ÖÇï)ÖçL܇…|ßë7i65÷a{áõ .Ãôñš¿t~{îCè!ïÁ}ø““Dý#ží·À÷a¡þ÷auäkä>,p1Ä}ˆø:¸+=åæ>,Ô_â>,p2Ä}XùÉâßkãà>,xÅ}Xð€ˆû°°ç†¸+sVG¾HîÂ'D܇•‰½¹«3Ÿ{¸>“Ü]î´àѾ­+›¯Ì}X¹°bîÂgD܇Ï£¸+7ˆ7÷fsV6·›û°rŸ\sVšÇÍ}ÀB‰¹ žIq"î÷a¥Ï܇Џ+ÍÍæ>¬LÜÍ}ÀfDæ>,x0Å}XÙ¬nîCè•ûà>,ì¡ îÃÊ}„Í}€ÐmîÃÊÄÜÆÒw‹ûÀx}süÛx|óúþÍñ÷8>îC}^ßø>â>Ô÷÷¡®‡¸u½Ä}¨ë)îC]oqê÷÷¡~/qê÷TþW¿÷sêÁëØs îqê~÷¡î7qê~”ç¶îWqê~÷¡îwqêyЂõ¼(߯çI܇zÞÄ}¨çQ܇z^½¾€çY܇zÞÅ}¨ñ@܇/Ä}ÀxbO<Æs0™û€ñÊÜŒgæ>`¼3÷㡹/Í}ÀxjîÆ[s0›û€ñÚÜŒçæ>``2÷ó¹˜/Ì}À|bæs0™û€ùÊÜÌgÞ# ó¹˜Í}À|iîæSsªAÜÌÇæ>`¾6÷󹹘ïÍ}@>`îòsO˜û€|ÃÜä#æ> _1÷ùŒ¹ÈwÌ}@>dîò%sO™û€|ËÜäcæ> _3÷ùœ¹È÷Ì}@>hîòE÷ï!Ÿô>üÈ7Í}@>jîòUsÏšû€|×܇]{bKÏC¿Ž ^8úoîñ=Ï~&q¾o^?¯ƒû€zÇ{2¢2÷õ’¹¨§Ì}@½eîê1sP¯™ûPý^â> Þ3÷õ ¹¨Í}@=iîêMsPšû€zÕÜÔ³ö´¡Þ5÷õ°÷œÄÀèû õ´¹ÕO'îêqsP¯›ûPýyZßG½oîôsªßOù ôs 7˜û=ÂÜèæ>@Ï0÷z‡ûo ‡˜û½ÄÜè)æ>@o1÷zŒ¹Õ/)îôs ÷˜û=ÈÜèEæ>@O2÷z“¹УŽ~dpÄ}€žå=6¡w™û=ÌÜèeæ>@O3÷z›¹ÐãÌ}€^gîô@¯4÷z¦¹Ð;Í}€jîôRs §šû½ÕÜè±æ>@¯5÷z®¹Ð{Í}€lîôbs '›û½Ù܇ê÷¡ôjqJÏ÷¡ônqJ×I¥—‹ûPzº¸¥·‹ûPzüÉ}hÏ#ßzÐüh“ÍZö(<ö1¢Gáy´QöàcC-{ž4ˆÙ£ðÀ—&ƒ}ÌåQxR µGá¹±/êã÷ãð(<˜CäQxÒÀfÂÖŽ< ÏÍ}`áQxÐS+ƒ}ÑåQÀö(<Ø']…çÆ3H6´±GáÁœ*Âs}xÆ#ž ¦=µ/påЧç zô"îÝ…ˆã¥G!âwÛ£ñmBÄñ}èQˆønö(D|u{Ú nsœˆ×´G!â¹ìQˆxlçgR…Œ/{"Μ¡< ¿—= §ÏjúýîË…ˆÓ‡\…v£g˜…ˆ×eB A…ˆû¶G¡aƒ$y"~—= §ïµ4Àv—Owúxú*χ'‚…ˆÓçZsVƒ8%BÄå›lŒÛ²G¡¡X”G¡¡¹^…ˆÃIBÄéA(B»ÕƒŒ5Ò{ÀƒP…†ÅMy"Žç‰…ˆÓƒP…ˆÓƒP=òßÓ…ˆ¯nB»³Ø“G!âuÙ£ñ˜ö(Dœ¿zÜ"NŽ@õ FœûÖ×ܰ+BÄ×kB»á G!â¹ìQˆ8¹ÕóqìQˆ¸zØë÷nàTN×°á‹< 톔…€…< Ï×…† ýäQˆ¸M{ò(Dü\ö(D|M{ÚÅ“<¯Ë…ˆ‹Cðòõ½Ù£q»ì9ˆø™ö$|/¾ïóõ7ÿ~=ò@Ôý}ƒ“¡Ï‡}ÞéQˆøYö(D=üô(4äQˆ89åQˆx¼ö(Dܦ= ¿·= ÷¤Ö¼³ÙK…ˆ×cBÄcØ£q¿ìQˆøíö(D|o{ÄayÚµÀÁ©:âùØ£qŸö(DÜn{"~†= ß·= í*ÏC­9Dœž‡Áž‚‰ç¿zþ"î·= ¿Ó…ˆË×þ슯eBÆàò(D¼.{"Ž¿GBÄý±G!âwÙ£qŒwô(D|?ö(´+7l’G!âä<ü= Ñ£ñ¸ìQˆ8=åQˆøíö(DœÎöí G¡aƒty"^Ó…ˆç°G!âÑíQˆ¸¿ö(DÜ^{äQˆ8zøY#EŸ‡…vÕ>,ƒžMøÔéQˆ8÷}Ùôpbßz"ÎæåßCIBÄ­Û£qÔ¨ô(Dü,{2¾ìQˆø~ìQˆ8<,ô(´ .z6Ä”G!âõžÖìÙÆë.= ×> uý3“G¡!Ù–G!â6ìQhhÖ–G!âwØ£ñmBC³ˆ< ?ö(D|/{2îö(d|Û£ñµìQȸۣа¡¿< _ö(4l *BÆÝ…Œ›= ?ö(d|Û£ñe‚â×=F¹÷àïQñâýóý˜¾= ŠK“áç¡GŸ—¿= ü¾ô(ðzУÀëE¯'= ¼Þô(ð÷ G¿= ü=éQàïMï‡uÜ¿q¿Ð£Àû‰Þoô(ð~¤G÷+= ¼ŸéQàýNB=ò(Ôó"B=Oò(Ôó&B=ò(Ôó*B=Ïò(Ôó.Bò(Ôx!B'ò(Ôx#BGò(Ôx%Bgò(Ôx'B‡ò(Ôx)B§ò(Ôx«œåQ¨ñZ…ÏåQ¨ñ^…šäQ¨ùB…šOäQ¨ùF…šäQ¨ùJ…šÏäQ¨ùN…šåQ¨ùR…šOåQ¨ùV…šåQ¨ùZ…šÏåQ¨ù^…ÊäQ¨|A…Ê'äQ¨|C…ÊGäQ¨|E…ÊgäQ¨|G…ʇäQ¨|I…ʧäQ¨|K…ÊÇäQ¨|M…ÊçäQ¨|O…ÊåQ¨|Q…Ê'åQ¨|S…ÊGåQ¨|U…ÊgåQ¨|W…ʇåQ¨|Y…ʧåQ¨|[…ÊÇåQ¨|]…ÊçåQ¨|_…ªäQ¨zA…ª'äQ¨zCž„ïÅÑÓDBÕ3ò(T½#BÕCò(T½$BÕSò(T½%BÕcò(T½&BÕsò(T½'BÕƒò(T½(BÕ“ò(T½)BÕ£ò(T½*BÕ³ò(T½+BÕÃò(T½,BÕÓò(T½-BÕãò(T½.BÕóò(T½/Béò(”^ Bé ò(”Þ Béò(”^!Béò(”Þ!Bé!ò(”^"Bé)ò(”Þ"Bé1ò(”^#Bé9ò(”Þ#BéAò(”^$BéIò(”Þ$BéQò(”^%BéYò(”Þ%Béaò(”^&Béiò(”Þ&Béqò(”^'Béyò(”Þ'Béò(”^(Bé‰êI,½Q…Ò#åQ(½R=|¥gÊ£Pz§< ¥‡Ê£Pz©< ¥§Ê£Pz«< ¥ÇÊ£Pz­< ¥çÚ£½×èÁö(@/¶Gz²= ЛíQ€môj{ gÛ£½Ûèáö(@/·Gzº= ÐÛíQ€oôz{ çÛ£½ß¬Ø£€õ{j=A…ZoG¡Ö#äQ¨õ yj=C…Zï '!ï÷öM|Ù£ÏǰG¡AÈ‘G!âà6Ñ£ñkB>oË…†ÂN…|>·= 7{òyÞö(dÜìQhüÊ£ñkBŽË…Œ{r|™ö(d|Û£ÐD“G¡h"Bp@…ß–= ?ö(äxØíQˆ8=3Çgx.èQÈñtØ£ñeBŽ¿¯= 9>{rüÞö(düØ£ã}·G!çƒeBÆ·= í®ÔÛóOÜßô(ä|³íQÈø9žïšŸèQÈùkÚ£1{h?ö(äü×ìQÈùqØ£ÐîòP,^ß,äQà|KBÎÇÍ…ˆ£¡G!çïeBÎïÛ…Œo{„o×Gwö€É£ùðG!ó‹iBæÛ…Œ/{˜¯Ð£ñzíQÈü¦Ù£ÀüGúÅÝà)Ÿ|^áñ¦G!ó©eBæ[Û…Œ/÷Œg~vÛ£qõ¤_Êç^{2ßkö(d>ØíQhîåQˆ8ꋦçûeÏ|ãû½Ë…ÌO·= ÌWéQˆ¸<ðZO¸n{2ÿ}ìQÈüøµG!âÙìhذ^…Ì·»= ™{"~‡=Ìß)¾»= _íÌn~^Õë>?ßÍü¡3îË…¬O†= €ny²žiö(°Þiª0?7­g^ò˜p}b.{²¾šö(D÷#= €ly²^{Ïû­òæ7æÈ£ñuÙ£õá¶G!â¹íQÈzrÙ£õæ´G!âòp6Ö«ï°G!âÜÓóɵá!z©Wæ>Âò(D=¼›= Y7{²~nö(D<š= Yo7{²oö(Dü6{²~ïö(d}ßíQˆ8÷¬èÖjO‹—ú@íyÑÏeBê Û…Œ/{¨GÜÒK'èQÈø±G!õŸnBêCÛ…Œ{ROö(d|Ù£qô°ìáõœ½ìQÈø±G!õ«iBÆ·= ©w {2¾íQH}lØ£ñmBÄ}Ú£ñkBêmË…Œ›= _ö(¤^7íQÈøµG!ãË…Ôû¦= 7{2¾íQh®É£ñ°G!ãfBÆ= _ö(44É£ñ°G!ãnBÆÍ…Œ_{2~ìQÈø¶GA±ô]Äô(d|ë߉o{÷oŽ¿ÇñÇ~^ßõ}èQà÷¥G×㕎ëõ6ß¿÷e¯÷«ç£8•Çü^Ïòýœ£yüþ·= ¼èQàýBï'zx¿Ñ£Àû‘Þ¯ô(ð~¦G÷;= |èQàó¢|¿ž'zø¼Ñ£Àç‘>¯×q=ãy¦GÏ;= èQàxAB'ò(Ôx#BGò(Ôx%Bgò(Ôx'B‡ò(Ôx)B§ò(Ôx+BÇò(Ôx-Bçò(Ôx/BÍò(Ô|!BÍ'ò(Ô|#BÍGò(Ô|%ûèQ¨ùN…šåQ¨ùR…šOåQ`?= 5Ë£Póµ< 5ŸË£Pó½< •È£Pù‚< •OÈ£Pù†< •È£PùŠ< •ÏÈ£PùŽ< •É£Pù’< •OÉ£Pù–< •É£Pùš< •ÏÉ£Pùž< •Ê£PùâÑ¿—ù¤zÆ+ß”G¡òÑÛz!8™ô(T>+Bå»ò(T>,ûuºúonx*냛=ø19-­â¾ìQ¨|^…Ê÷åQ¨z@…ªŽ~Ĭ'ä9`ÿ= ß‹³çþx}ö(T½#BÕCò(T½$BÕSò(T½%BÕcò(T½&û½èQ¨zO…ªåQ¨zQ…ª'åQ¨zS…ªGåQ¨zU…ªgåQ¨zW…ª‡åQ¨zù¸ß>/ûsQoË£Põ¸< U¯Ë£Àþ<­ï£Þ—G¡ôyØï§üä.Oósè ò(”!Béò(”ž!Béî¿"Bé%ò(”ž"Bé-ò(”#û%éQ(=G…Ò{äQ(=H…Ò‹äQ(=I…Ò›äQ(=ÊýÈÕÿ9¥'¤žåþeè]ò(”vŸë7«Ù£Pzš< ¥·É£Pzœ< ¥×Ý^J=O…ÒûäQ(=ðöz'ö§G¡ôDyJo¼½Þ7±gýK}{/}þÉ=ï§âeBé¡ò(”^*Bé©ò(”Þ*Bé±ò(”^+Bé¹ò(”Þ+BéÁò(”^,BéÉò(”Þ,BéÑò(P¯¦Gz6= Ô»éQ Nõrz¨§Ó£@½êñ§Gáä*˜ûJþèì<ýé‡t¹W‚fqܲDs§ê»Ñ¹«wîæLÿlfzvÎâõþþI¨8ÿÍOúf3y²2g~Ò\üvËÛÁú¤Æ÷áõ¿x øò×ùúÎhëˆêwÏ6JDZ 9ùúˆ¯¼û÷ *³Ã^nÆ-qˆ~ý‡¿ÿ‹× _ð†¦Å:>iN É³Ìû¤cÅ·ýøú_¤lÉîJEàëóSÆQQì^Hz¡ ƒyïÁæ¿©`0Ü¡ãÅŠÌUÞ×8Wd¨H,åbÅèeü`׫Î×Ù7̲½âØEwq…bä ÿ,®¸ŒÜEõY:âl ÅŠÉÈVßPá Š—ñ`ë©udò¬"‡FOèºjD /:FºC¡ÀŒ:ÐQ¤ÅQq¸èçäõ@‡Úœ5à Œ';NGuÀõÊÀF.ÕG\ïÎï7éÈèè›/¯vÕUÅ0ò‡ Å£îaìÒ;õ{ÝØå 츱‹g¸]Ë‚ßÂós—…Íë_»¯šqÑ:ŠÉæû_ˆë÷·ãQGÀÈ¥ÂTTZÅ» ×ý•­œ¡° ƒ ëÎv•x+ƒv…`‡æÈRýE®ŽøFüðïe#;¼zV ÏàŠNÏŠâQGVÏŠ#ë×·Ï]ú.…­gëz*<£âø½{‘c#ŽÑK]ÏŽˆkŒYèð,’aı«2ȯñÀ®Ó˜¡;f e¤=;°"~ùúÜ£ùýr—ê"[FœŠê@ Åû1CïÙqçñ {÷·îçžc^(RÈâ‹Ô®Ù<ÿ…bõ0Žæ^伈ãyîEFŒ‘.ÿ>gÐH•Káº8®ì€EÆÓ3õ‹XçÇýÑ‹¬ñƒŽÙ‡#i(F½È\§‚µ«"èº\±B)1*ОRsÄQD\×£çóð|¿Ú¤>/­¶ª"Âñd¼ðúÁxâõuýs—åˆQÑvìÂÑØ‡V•ˆëóåÀž1ßïÂëë~|óù”"X3Ï/Å£^¿+Žñ¯±ƒ³gê•q¯¸vY¯û$y’½"^P$‘õ×wñùËÖ¹¼^OÅq?‘ñ]Y0ßô×sóûa|lììÙ‘‘¿ï]qÇïñ«ßx~¯ï:vqï̘û EV÷[.ÝÇý‰ù´gGKÄ/wì"E±§t1Œž¥W</‡"Ú¹BØ6ŸG(þvóyäñãøüD[ùé£2ü’zŸõýZ¶Fçx6+Îç÷c[ø{tÜ5¸n{‘¦#gÚØÅçfÏ[LWÅñýÆÍ÷ËÖšg°£­¥ôšã=?Ø5Š@›Tìëõ#çÓQ¤×ˆ:Üñ<…ÅãM˜è(m9qç ÏÏù’-/\Ì—:ÿÆ.þ›ïa—¤ºÞÙóqg¼0×çÏägr¼méš| ¬¹rU»ŒÎ^óOÓŠ Æ“V+"T¾ÆÕ¯¿ãñ¤‚ß@2_œÿZJ'‘/ÕýؘOa…¬i*<Ÿ är’¯#ŽùbÑá×Ò*ùÜâñ¿×àïRùš•¿´Æü±~ïì8Ÿç–Ro䟓Ÿ÷ª|U1òÙɺg#ßÌÙ7:”êý_P X‘µ”²ž­Ï÷bWU* -­eÏæøÞ*ÿ¦‚ÜÐÁp©f@GþÅŽ×†ŽØ‹ß —î_tô_Ì[’·Ý‘Ô^¬@ÎÊw:n/ŽÏ ‹óW{AAàøÖ^¬À²ƒ°½ì€ëzÿûèc|\¯ŒY½ý\LŒñäóUOã>Ïsùû7tÝíø>;êû>ìèªëñP1­ëõ°~¨ëùÐÁZ×û™þþ»œöyü^êh¬ßó½*ÿÇïA<bEòzMìJ:y=³C‡Ž4ÜoÙÑÃÏ»ÑÁ£ëU»Œ.>È_p¿§ƒ‚ñ]4ŒtdèüÚÕ²Þ¿(/ÿ~>á°ðó¹³#UÏgvh0¿Çó­ƒÇs×ÐUù&Æ‹èˆí|þãûvv|´¢BÜœ¿rÌŽìÅß”‰X1âëãzLî8€ùøõ|…ÇÉlÌçÙaÎ8:*§Æ‹xH<*ŽŽ™©ñ»zN*úÈ7È»+NŠÀÇ|%;æçßS¾’ùN^{ÅÑ6'ç/ìª>¹Â|*:úk>Í|+;ü‘_f>–€Qq\Ï©zГ+nÈ÷ÒaÂ㎒‡ç/80žô¢P°´…‚ãòÑW;n _M 8$ßoÁqr1Ýpœ<̯o8NPïwQ&óórhTýжõ°”#¤ê7PnWБï§cdV.r¬ ^ȘÇÇs8RPoX—üN¼Ÿ3ÎzÆÔ;Óù롌ïŠ^ûõÔ+}õ–8¨ÇÒáÂ÷«ë¹Žz.¯ã¯¬ߢt°žì¸ÞUŸw^ßú|9°æïÇ÷Ûø½ë×¢¢LÖÃ7~<¿¨wþÄã1~/ê=¨—û-ˆëóæ@ñË¿·Aù¸Yïõ¥ÎGñd>zÿUþ= YŒ;Zƒ¯±Éñ¶—ŽPèù¼â|8>&õ%èdþõŽ@_§f°>_ xtÖß  îH½%Þ|ýdP¿¹0^Õý½AÙyY¿G÷cêAvÈA/J`<õŸtÈéùEÇáäü=*ÆßE=j!~©]¿×¡wEüRïzàø[ÔÇ^8x¾¾a¾˜Ô×:âûÐãb~)}”†ÁHèy1?5þ½ùkQŒ¼A} zaÌwƒzáSGê›áˆtˆAŒùtRßl ”Ü|}\¿A½zgÌ׋ï?kþ¦~Ÿ7nê›Ñ1Ýé(„ÞñMý7ù!ôÚW+üÐs_­ CïMÇСG¾2¨7ä3ûГ3¿‘þ ‘þÞ€CuRßÎc֓г#~x<?Ô‡ ‡G>6©/§cvÔx=ým‡¾žÐÒ×_ìrÞ*ß…^ÿ6®èCÏø’þä‡ïÿ¢ãº1nèðZ?¨|•qGGïÅ÷ïè8ŽõŠÈ_®WdþÍÝñr×ðÉûñßĵë8ïßè¨Ö¿GG0¶~Š¿/½úÆ.çCÏ:Þ¾þªe¾ÿu¬VtÌQÞÇ.ûù|cW÷Éç¡Cýáó?ûÑÞ7v¹?ƛّ̿ÑË1ÆüªoìÒßêzÀ*—3Oøý¥õí–žûgðõå°¾ø÷oPá:ÇüŸ&õgt<[¯\ØÕ_ùÕÂõÐü±p=¤×­Ì×:×—ú"eëIÑÖ‡á@ÖŽZ—Ã[zù{8øøGÜùþqw֋tJOoÇóÝÑ1Ý›õíOšç·ñarM±¨Hõõ‰ñåÕüXs¾>LJáù1ÆëΚo;w¬Šùxd¼§#rZï¿1ÞÕõîó}r¾š™oÄ×bþÔ&Í×è ŽËNý}Âq¹¨¯ÇüŽi²bP¤t~~~åÏ ¦t®?õlõÍz‹ùɃz«ž'8`åE+V:ê¹Æ»A±ZÔç‹x1‹|cÜÔ{;æ7vtÔ‡ã>ò78Pó³˜ÏÇÍç”ÂAGxÏÓ˜Ï.æ{7êAý½¨×‡žoìh0¨ÿõ†ÏûP/oø¼¬¯*_i‚ùì@¬õ„íb~÷Ç`½ßQïÝß ×÷Èw³žåŽ (´½#AÏ­¶<wèƒóAå߉ÇüøúÈ;NúËÏ»Y¼ïùù^ä7ZÕn<Ìïž_ÆQÏ,üƒëß·3ø{ªúé@î¹°š¿ë¡ÊW.¾þF¾¢z)¯—Ö·RèËû‰ë«Ÿ÷òå7Qß½yÿnžÿaLjHnÜÿ½âüðÂÑ­õ”﹃CC¾¯õ›Ò#ºôR8x´„‰-ç'Æq=;X±ÐqãúIì·Aœóõ²Þ’”»Iý&ú"~yü…ƒ|òüp”4:>­×xÛ@AiýXŸ¹3?hÔƒ6ò éK™_r‡ˆ6™ŸtêKްÍõ™‡^ýžß;¶ GÜåõœÊµÞÓoM­÷ ¼yþ‹| ÷Wè]plI¯z ŸÞü¼7ôU½ÿ ýuòó] Ê\|¿ ÍWñ•zné½ Œ½7ïÏAjÕø(2˜_[¶†¿Ú‘² 츳­çM8T¥÷ÅøôLÿ½ J—Ö£"ÿ{Îõª}›ëSQ…£–¯OýºY¿ Ì<|ÿÔ»Ù±Ö@‰yn¯—¥>Îô„‡ëë ÞØ¨ 1Ãáuµ3ž|>‘ ±òˆûqþ÷ãï׎÷;Óü<Ïq>bŸßGX}ß›ŽÔºó“º^w«ëyqG¶&ÇX_ÇïqÑ!P¿×EGsýž×¡÷Nì(e=²Í÷Ÿå`ççͯgÆývÑaR÷ãuûûn8Î^þž޳Z/œ Ö,÷¸]åÀ×q8ô;ãëc‹ÏÓ]ÔAêÉѳµÞ:AÙi^ï}±þvóüësMãCËõ;GÙöøý{Qw¤gc°uŒGépãûOô§ o œoŽgÙ?¦ç1ÇÃ\äxýNkz|Mªã°þ;,t÷¹£Ü¯ŸÅ¸0ž?«yý=ú;õ%ÌÙÏÆãéÀ{¨gç|’;¦óM¬×j¼OªÐÍñváûP®~€¥ñýJÒ·1¦CýéÀ[ÖÓ‹:So臛ì?èpôi> -êïÑ;äðýâ‹çÇý9;õÊ ëéõÀ…õìvèõˆÛ‘D|æ+ÙO'ý±ò•øf~×s*ŸÎ+âÎxƒŠ¤ü+žy;»K¿Ïë'½/󹈕ÿEÿ›õ¿ëÿ\oìÕïwä ýß?¯×åü4ú ‡ô[ìø1¶ûmªß¯ùnÄ/Çý7¸ãFõë õßd>ñÅõ„ì¯àŽkÈÇ#^ÌïoôÎ#Ÿx°ß(ƃ¡~(ô›:P/d<*ø{ý¨?2~&^ëãë÷<úQïd¬~ªqþ}PœÆÑ¯õVÌ××çìÏêø>“õ[ö—ÐQVý^ƒã-ê½¼ž¬ß6~Ÿë¨óú³þ¼?ŒËáÚ¸¾ðÌó÷í níõlĪg;~_Õ³uÿ]G½|Üop ÆýÈz9>o8nÕ_·ÑÿÂúÿBÿé>êùG Ôûù|0~«_†ýÙïÂüzB>oÔ¢_irG6èÙË¿_Ïó¤Þã ùÐ;Ü=äÑŽ¯ÐKrü8ÖC²?‡zJ:’ëÇÉñg0nEY;ôœc<›øüýè¿\èžÇó6™ÿAOÊþb­ŸÜ_ùú¼þÓë!ÙïÃüz–û—¡we×Sb¾žº¿¾wžqãùŽn­·ôê'âßå?ô¼œŸxþD¿QãûÇøæõÎXb¾“^¸á0ŸÔ'/ôI¿Ì~ò×ë97æÛ‹ë1ÙÞ8žçƒñæù/æóvè¥Ù¿D½´¡ý=ôÖg1‚ÐùÂËóò‰Å~â‰üCý”@é½µ“ôàU;8ñõùÎË÷ÛçMÕÿ, ôêˆÕO; <^_º‘om®Åý½_¯÷d>÷º_û…Zúú j¢ôõwÐP”Õ°‹0)Eše£Èt¢lÉN”"ቲ±’´cÊÆ‚ËN” ØMÙXÙ3cÊÆjpASC_Ø¥^»(/¸üDÙ€ÙÀ”•Ų) ®AQ6âæÛecaiQ6Ö 4×ü×KÒÌf\$šÆ×ç®Ò¬ ±˜nÊ¿MÙXidzKm½tcÌ] 1‰²fÊÆ‚KS=‘Xü6eca×|Q6ÖCrÑâû÷ë l¬ä£Ë¯ž(ë+–.Ýõ€üE×;ËMÙÀö‘vµb°0ec¢¢5uÃUÌž—W­( ”Q6V&k¦l,ìÂ/ÊÆJ1Ù” $Û¦l„½|”•9¤)+'GS6VnÏhÊÆJ1Á”•öoS6V>s¦l¬\6eÛ_š²1SŒ2evwS6fæä¦l̳LÙ˜9Æ™²17vÝg΂fS6惔 L¦lD³À{P6&Hu¢l̬qLÙ˜µë?)®=Q6fÞ¸¦lÌü ¦lL¸ µK2씦lÌ\ 1eͦlÄä9ÊÆÌ9Ý” ²’(3kbS6&\¢l̬ÉMÙ˜Ô®AOPDÙÀdoÊÆ R°§aP(HÙ˜®ÑO³DÙ@raÊÆÌÅSS6f'•bóx[ecÂ,ÊÆÌ]8L±˜ ‰²1³YÏ”™9¯)3·“05cævö~'~¿y}¸üEÙ€ýÖ” ²›?vùecb<ec¾¸¾¤lÌ\7ece„9ÞÄø)ÊÆ„ë]” 4Ë™²ÉésP6&È|¢lÌÜÅÑ”Yæp³("\³ži×6ecbQ6"¹¾ÊÆÅI»4Í\,3e#ŠÑvP6æ…ç‘”‰ñI” 4«˜²13g0eÅ„)#+LÙ@1bÊÆÀø#ÊÆUD”]%DÙã)Q<̓²10Þˆ²1@Eec,P8Ô#°@á fÀ5,ÊÆeD”‘¾)cÊDÊÆÀ®¢lŒÌéMÙ³ÁsP6Fölš²1&v à®F®oQ6Æä®:ždOîº90Þˆ²fRS6v]e#ìöû l ìâ"—ÿ¤lUÏv…e#šW÷AÙ» ²1àâecd iÊÆÈÓ”j‰(#{êLÙ@bbÊ̦l EÙ в1:ȶÌvAÐ.Y£c—懣#¤†‰íRLÙØuA” 4K™²íLÙ¹8aÊÆ Y”Ñà2gï€GL”ò²(#‹S6òoQ6`¶4ecäö¦l h¢l xÎDÙ Q‹²íaLÙ@3˜)#·'3ecÀÓñ¾ìðœj—J$–¦lD¼Ê|ܦl0þ=îyxÚ~&eƒ±<Ðø{ÚU¤>(õyµ G}Q6êûвQ×C”º^¢lÔõe£®·(õ{ˆ²Q¿—(õ{ª§²~oQ6ê~Ð.ìu¿ˆ²Q÷“(u¿‰²Q÷£(u¿Š²Q÷³(u¿‹²çÁ” bÊòS6Ϙ²1ËSÀzù)È—LÙ@>åbä[¦l 3eùš)ÈçLÙ@¾gÊòAS6/š²|Ò” 䛦l 5eùª)ÈgMÙ@¾ëtäæl _6ece‚=UÈ·MÙ@>nÊòuS6Ï›²|ß=þS‚Êg³^°gõ„=¨7ìAøN<Öái@=cÊêS6P™²zÉ” ÔS¦l Þ²Gõ˜)¨×LÙ@=gÊê=S6PÚS€zÑ” Ô“¦l Þ4eõ¨)¨WMÙ@=kÊê]S6P›²1ËC@Oí,w9B½mÊÆ,ó Ôë¦làDS6P=À” è¦l@O0ecÕ†žè¦l@¯0ez†)Ð;LÙ€bÊôS6 §˜²½Å”Yã5hè5¦l@Ï1ez)ø¡Üã¶Ê3 ý±<|~¡7™²=Ê” èU¦l@Ï2ecU)ÐÃLÙ€^fÊô4÷èBo3ezœ)ÐëLÙXµ«õ´þ7ÖAÙ€hÊôBS6ð xWmè¦l@t7ôJïB =Ó” è¦l@5ez©)ÐSMÙ€ÞjÊôX{R¡×š²=×” 车l@ö.üЋMÙÀ@fÊÆ*ê{DÖË]›o¾>¾(гMÙ€Þm1ôpS6 —›²=Ý” èí¦l@7ez½)ÐóMÙ€ÞoÊÆ*Ï8{°^`ÊF­'ˆ²Që ¢lÔz„(µ^!ÊF­gˆ²Që¢j¬ÜòCk΢l¬žu®áÄó²ÊÆÊfwS6Vî:iÊ&ZS60p›²çÓ”…=,DÙXèec]èq"ec¡T”uÁ“þ8ný l¬\6e#Æ—vP6Ö…]±éIYÈDÙXòýCÿ¾ïƒ²±ÐC*ÊFw¢lÀœiÊF¢lLx.Ô3ãi;(=¦¢l`{=S6æFO×—&<¢lLP~¬ó*ÊÆÌDÑ” l‡mÊÆDª(ž Q6˜™²1áaÓó=zéA˜ðÜŠ²Å]S6&¨H¢l̽æ_x(DÙ€™Ï” …(5ߊ²1A•e…ª)5‹²1Q?ˆ²1±ë¼(_G}4Qˆ²1AQecNP¸?'=CÊÒ#Ä5÷ Ï„(_ecb×yQ6°0gÊÆ%E” ˜•MÙ¨|J”‰DQ6"±Yõ`V}¸¿½×AÙˆ|î>(”BQ6Ð\eÊÆ„Ç]” ¼òÙøy_­óóÁ#!ÊÆ|ái"ec¾¤†<¬wÆ{P6&ö¬e£êvÔGÏ:(³<{·×'®qP6&(~¢lÌ¢˜ÐS5ó™²1Ó~Üo•¯õß»ÊÆ|ЃÍñÛWÛS7Ó cÊÆ¼ñ|k}žQ6°y)žQ6æÍç¹Æ;P»DÙ˜7ò/öôLPÀDÙ˜7)¦qQNëï}”yAïá*³(fì ›ðÌŠ²1á©eÛu›²1A1eÍT¦lLx$DÙ@3Ÿ)ÎMÙ¹ù‡)¥Gˆ²1àÔzÐÈÄÑ” 4‡™²1àYecä7eÍf¦l”~"ÊšÝS=Pÿˆ²1àeÍ‚¦lŒª®ô¬ê.)õ—(hÆ3eͦl xEÙÀæM¦l ôàŠ²1°§•(#FLÙ ù")c©g†Ÿ§ö êÔŸ®vP6z²DÙê1î\Zû lŒ *÷ÈÕ³Ìú4ô¶qP6`î6ecT{»0ec gZ”1ѳ۬çõvP6°Ùˆ)crOI­7µqP6FîšoÊÆ˜è1=¾ß»Êƨ=¾¸‡CÄý lŒÜ•ß”‘ÍU¦lŒÚƒ” u¦lŒÉ=Ÿ1ÇûuQ6*eƒñúæø·ñøæõý8¾ÊãÇÇãójü®ï#ÊF}_Q6êzˆ²Q×K”ºž¢lÔõe£~Q6ê÷e£~Oåõ{?§|”º_DÙ¨ûI”ºßDÙ¨ûQž‘º_EÙ¨ûY”ºßEÙ¨çA”z^”ï×ó$ÊF=o¢lÔó(ÊF=¯^_Àó,ÊF=ï¢lÔx ÊF¢l`<1eã)LÙÀxeÊÆ3S60Þ™²ñД Œ—¦l`<5eã­)MÙÀxmÊÆsS6j}]” ̦l`¾0eó‰)˜oLÙÀ|dÊæ+S6ª@” Ìw¦l`>4eó¥)˜OMÙÀ|kÊæcS60_›²ùÜ” Ì÷¦l 0eù‚)È'LÙ@¾aÊòS6¯˜²|Æ” ä;¦l 2eù’)ȧLÙ@¾eÊò1S6¯™² eÊò=S6š²|Ñý{È'M=@¾iÊÆ, õB䫦l Ÿ5eù®)ȇMÙ¨~í †|Ú” äÛ¦l 7eùº)ÈçMÙ@¾oÊÆ,ªƒú…²^p?"ê S3ªITïÄEÍÐëç{P6fQ¸þ‹ß” ÔK¦l ž2eõ–)¨ÇLÙ@½fÊFõ{‰²zÏ” Ôƒ¦l ^4eõ¤)¨7MÙ@=jÊêUS6PÏš²z×” Ôæl ^>î·Ï;ý÷òóN÷ÃÍ~P6P¯›²zÞ” Ôû¦l@0ez)ÐLÙ€Þ`ÊôS6 W˜²=Ô èî¿bÊôS6ª¿Q” è-¦l@1e£ú%EÙ€žcÊôS6 ™²½È” èI¦l@o2ez”û‘¡W™²=ËýËлLÙ€fÊô2S6øš²½Í” èq¦l@¯3ezž)ÐûLÙÀÿ0ez¡)ÐMÙ€ÞhÊFõߊ²½Ò”ê×ez§)ÐCMÙ€^jÊôTS6 ·š²=Ö” 赦l@Ï5ez¯)ЃMÙ€^lÊôdS6 7›²QýÏ¢l”^-ÊFéÙ¢l”Þ-ÊFéá¢l”^.ÊFéé¢l”Þ.ÊFéñeca¤ec×Ê4ïÄ=¹rœq¿º:YGƘ©Õ¹º7;Ç0²íÜÝÊñÚìœ}¸²á¿ÿ‹„‰‹Á¦lìÜPÑ=.>Q6>¼þ—®ÁÇïôÓýÆê‹¾3ÚP?ÝѼOÊ0Žo< üÎýN™×ñ•Ë(Ç5üxMþÄ'KZ`]ƒ ÔGŸO|Ò=ý?¾ïü'ÿõ÷ù§_þì7pø÷7ö7_ÿ߯Çÿüðÿøåúò/?Ü_þêëÿö(dýÊgç㢿¿kkˆß|süK…µµß—¯Ç¡ˆê8Âã86ëÒq„Çq,”é8BÏ'dëx…Çñ';òtáq¼¥ MÇÇG®ˆè8ÂãøÊÂNÇúx¬ø|Èy¼ÂãxtûóUxÇ®:Žð8>ó÷Óq„Çq¸Êu¡Ç+<Žm£ããÈètáq‰¡Ž#<Žã¡Öq„>þá†ûéK…>þ§?~ç¶Ž'çOþâë óåÇý>Ø¥Šv§€=`~üé˯î_ùñß~øóãÿ¿sßìÒó¹Ï'ÎÅfŒ>÷ýĹh’ð¹í?7f¢¯3ÏíŸ8£‰ÏŸ8+>w~âÜ‘«>w}âÜ•ò>wÿáç†ÊzŸ¿ï}}âä'göãäOÜY¹>r~êû·VnuŸ'âÞªÝo“?qsµ+GåãäOÜ]íÉ!û8ù·Wî•ýá‚}âþʦÕì7Xîé8ùwX¿rš8FOÜa ¶Šµˆ:ù~õ·¿þúŽ_~õûÿúíÿö÷ÿþëüòã_Å[aм¯,½ªðå6!¿ùæx ªÆØZÇG¶"é8Bͳùü ãð<èxY t<Ö´¾>m<^áqXÇëócìÿ.ºàwš†â2â*c“ê(È¿Ö]yîâY,dËr"ÎþÄóTg£Ùgâ™¨íµŸTpö'îk\²fóŸþèxŸ–í=¡Z/üé¿ýÏßÿó?ýóo÷Ûÿþ_¾Íß}ùü÷Ãÿ$¹oóendstream endobj 3 0 obj << /Type /Pages /Kids [ 7 0 R ] /Count 1 /MediaBox [0 0 576 432] >> endobj 4 0 obj << /ProcSet [/PDF /Text] /Font <> /ExtGState << >> /ColorSpace << /sRGB 5 0 R >> >> endobj 5 0 obj [/ICCBased 6 0 R] endobj 6 0 obj << /Alternate /DeviceRGB /N 3 /Length 2596 /Filter /FlateDecode >> stream xœ–wTSهϽ7½P’Š”ÐkhRH ½H‘.*1 JÀ"6DTpDQ‘¦2(à€£C‘±"Š…Q±ëDÔqp–Id­ß¼yïÍ›ß÷~kŸ½ÏÝgï}ÖºüƒÂLX € ¡Xáçň‹g` ðlàp³³BøF™|ØŒl™ø½º ùû*Ó?ŒÁÿŸ”¹Y"1P˜ŒçòøÙ\É8=Wœ%·Oɘ¶4MÎ0JÎ"Y‚2V“sò,[|ö™e9ó2„<ËsÎâeðäÜ'ã9¾Œ‘`çø¹2¾&cƒtI†@Æoä±|N6(’Ü.æsSdl-c’(2‚-ãyàHÉ_ðÒ/XÌÏËÅÎÌZ.$§ˆ&\S†“‹áÏÏMç‹ÅÌ07#â1Ø™YárfÏüYym²";Ø8980m-m¾(Ô]ü›’÷v–^„îDøÃöW~™ °¦eµÙú‡mi]ëP»ý‡Í`/в¾u}qº|^RÄâ,g+«ÜÜ\KŸk)/èïúŸC_|ÏR¾Ýïåaxó“8’t1C^7nfz¦DÄÈÎâpù 柇øþuü$¾ˆ/”ED˦L L–µ[Ȉ™B†@øŸšøÃþ¤Ù¹–‰ÚøЖX¥!@~(* {d+Ðï} ÆGù͋љ˜ûÏ‚þ}W¸LþÈ$ŽcGD2¸QÎìšüZ4 E@ê@èÀ¶À¸àA(ˆq`1à‚D €µ ”‚­`'¨u 4ƒ6ptcà48.Ë`ÜR0ž€)ð Ì@„…ÈR‡t CȲ…XäCP”%CBH@ë R¨ª†ê¡fè[è(tº C· Qhúz#0 ¦ÁZ°l³`O8Ž„ÁÉð28.‚·À•p|î„O×àX ?§€:¢‹0ÂFB‘x$ !«¤i@Ú¤¹ŠH‘§È[EE1PL” Ê…⢖¡V¡6£ªQP¨>ÔUÔ(j õMFk¢ÍÑÎèt,:‹.FW ›Ðè³èô8úƒ¡cŒ1ŽL&³³³ÓŽ9…ÆŒa¦±X¬:ÖëŠ År°bl1¶ {{{;Ž}ƒ#âtp¶8_\¡8áú"ãEy‹.,ÖXœ¾øøÅ%œ%Gщ1‰-‰ï9¡œÎôÒ€¥µK§¸lî.îžoo’ïÊ/çO$¹&•'=JvMÞž<™âžR‘òTÀT ž§ú§Ö¥¾N MÛŸö)=&½=—‘˜qTH¦ û2µ3ó2‡³Ì³Š³¤Ëœ—í\6% 5eCÙ‹²»Å4ÙÏÔ€ÄD²^2šã–S“ó&7:÷Hžrž0o`¹ÙòMË'ò}ó¿^ZÁ]Ñ[ [°¶`t¥çÊúUЪ¥«zWë¯.Z=¾Æo͵„µik(´.,/|¹.f]O‘VÑš¢±õ~ë[‹ŠEÅ76¸l¨ÛˆÚ(Ø8¸iMKx%K­K+Jßoæn¾ø•ÍW•_}Ú’´e°Ì¡lÏVÌVáÖëÛÜ·(W.Ï/Û²½scGÉŽ—;—ì¼PaWQ·‹°K²KZ\Ù]ePµµê}uJõHWM{­fí¦Ú×»y»¯ìñØÓV§UWZ÷n¯`ïÍz¿úΣ†Š}˜}9û6F7öÍúº¹I£©´éÃ~á~éˆ}ÍŽÍÍ-š-e­p«¤uò`ÂÁËßxÓÝÆl«o§·—‡$‡›øíõÃA‡{°Ž´}gø]mµ£¤ê\Þ9Õ•Ò%íŽë>x´·Ç¥§ã{Ëï÷Ó=Vs\åx٠‰¢ŸN柜>•uêééäÓc½Kz=s­/¼oðlÐÙóç|Ïé÷ì?yÞõü± ÎŽ^d]ìºäp©sÀ~ ãû:;‡‡º/;]îž7|âŠû•ÓW½¯ž»píÒÈü‘áëQ×oÞH¸!½É»ùèVú­ç·snÏÜYs}·äžÒ½Šûš÷~4ý±]ê =>ê=:ð`Áƒ;cܱ'?eÿô~¼è!ùaÅ„ÎDó#ÛGÇ&}'/?^øxüIÖ“™§Å?+ÿ\ûÌäÙw¿xü20;5þ\ôüÓ¯›_¨¿ØÿÒîeïtØôýW¯f^—¼Qsà-ëmÿ»˜w3¹ï±ï+?˜~èùôñî§ŒOŸ~÷„óûendstream endobj 9 0 obj << /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences [ 45/minus 96/quoteleft 144/dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space] >> endobj 10 0 obj << /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica /Encoding 9 0 R >> endobj xref 0 11 0000000000 65535 f 0000000021 00000 n 0000000163 00000 n 0000044729 00000 n 0000044812 00000 n 0000044924 00000 n 0000044957 00000 n 0000000212 00000 n 0000000292 00000 n 0000047652 00000 n 0000047909 00000 n trailer << /Size 11 /Info 1 0 R /Root 2 0 R >> startxref 48006 %%EOF phangorn/vignettes/phangorn.bib0000644000176200001440000007513113216567701016407 0ustar liggesusers@article{Abascal2005, author = {Abascal, Federico and Zardoya, Rafael and Posada, David}, title = {ProtTest: selection of best-fit models of protein evolution}, volume = {21}, number = {9}, pages = {2104-2105}, year = {2005}, doi = {10.1093/bioinformatics/bti263}, URL = {http://bioinformatics.oxfordjournals.org/content/21/9/2104.abstract}, eprint = {http://bioinformatics.oxfordjournals.org/content/21/9/2104.full.pdf+html}, journal = {Bioinformatics} } @article{Leo2008, author = {de Oliveira Martins, Leonardo AND Leal, Élcio AND Kishino, Hirohisa}, journal = {PLoS ONE}, publisher = {Public Library of Science}, title = {Phylogenetic Detection of Recombination with a Bayesian Prior on the Distance between Trees}, year = {2008}, month = {07}, volume = {3}, url = {http://dx.plos.org/10.1371%2Fjournal.pone.0002651}, pages = {1-13}, number = {7}, doi = {10.1371/journal.pone.0002651} } @article{Leo2016, author = {De Oliveira Martins, Leonardo and Mallo, Diego and Posada, David}, title = {A Bayesian Supertree Model for Genome-Wide Species Tree Reconstruction}, volume = {65}, number = {3}, pages = {397-416}, year = {2016}, oi = {10.1093/sysbio/syu082}, URL = {http://sysbio.oxfordjournals.org/content/65/3/397.abstract}, eprint = {http://sysbio.oxfordjournals.org/content/65/3/397.full.pdf+html}, journal = {Systematic Biology} } @article{Schwarz1978, author = "Schwarz, Gideon", doi = "10.1214/aos/1176344136", fjournal = "The Annals of Statistics", journal = "Ann. Statist.", month = "03", number = "2", pages = "461--464", publisher = "The Institute of Mathematical Statistics", title = "Estimating the Dimension of a Model", url = "http://dx.doi.org/10.1214/aos/1176344136", volume = "6", year = "1978" } @incollection{Jukes1969, title = "\{CHAPTER\} 24 - Evolution of Protein Molecules ", editor = "Munro, H.N. ", booktitle = "Mammalian Protein Metabolism", publisher = "Academic Press", year = "1969", pages = "21--132", author = "Thomas H. Jukes and Charles R. Cantor" } @Article{Tavare1986, author = {Tavar\'{e}, Simon}, title = {Some probabilistic and statistical problems in the analysis of DNA sequences}, journal= {Lectures on Mathematics in the Life Sciences}, number = {17}, pages = {57--86}, year = {1986}, publisher = {American Mathematical Society} } @Article{Sugiura1978, Title = {{Further analysts of the data by akaike' s information criterion and the finite corrections}}, Author = {Sugiura, Nariaki}, Journal = {Communications in Statistics - Theory and Methods}, Year = {1978}, Month = jan, Number = {1}, Pages = {13--26}, Volume = {7}, Keywords = {aic, criteria, model, selection}, Url = {http://dx.doi.org/10.1080/03610927808827599} } @article{Knuth1984, title={Literate programming}, author={Knuth, Donald E.}, journal={The Computer Journal}, volume={27}, number={2}, pages={97--111}, year={1984}, publisher={British Computer Society} } @article{Buckheit1995, title={WaveLab and Reproducible Research}, author={Buckheit, J.B. and Donoho, D.L.}, journal={Wavelets and statistics}, volume={103}, pages={55}, year={1995}, publisher={Springer Verlag} } @Manual{rmarkdown, title = {rmarkdown: Dynamic Documents for R}, author = {JJ Allaire and Joe Cheng and Yihui Xie and Jonathan McPherson and Winston Chang and Jeff Allen and Hadley Wickham and Aron Atkins and Rob Hyndman}, year = {2015}, note = {R package version 0.8}, url = {http://CRAN.R-project.org/package=rmarkdown}, } @Manual{phyloch, title = {PHYLOCH: R language tree plotting tools and interfaces to diverse phylogenetic software packages.}, author = {C. Heibl}, year = {2008 onwards}, url = {http://www.christophheibl.de/Rpackages.html}, } @Manual{ips, title = {Interfaces to Phylogenetic Software in R}, author = {C. Heibl}, year = {2015}, url = {http://www.christophheibl.de/Rpackages.html}, note = {R package version 0.0-7}, } @Manual{CRAN, title = {R: A Language and Environment for Statistical Computing}, author = {{R Core Team}}, organization = {R Foundation for Statistical Computing}, address = {Vienna, Austria}, year = {2015}, url = {http://www.R-project.org/}, } @Manual{Biostrings, title = {Biostrings: String objects representing biological sequences, and matching algorithms}, author = {H. Pages and P. Aboyoun and R. Gentleman and S. DebRoy}, year = {2015}, note = {R package version 2.36.4}, } @Manual{Matrix, title = {Matrix: Sparse and Dense Matrix Classes and Methods}, author = {Douglas Bates and Martin Maechler}, year = {2015}, note = {R package version 1.2-0}, url = {http://CRAN.R-project.org/package=Matrix}, } @Manual{seqLogo, title = {seqLogo: Sequence logos for DNA sequence alignments}, author = {Oliver Bembom}, note = {R package version 1.34.0}, year = {2015} } @Manual{apex, title = {apex: Phylogenetic Methods for Multiple Gene Data}, author = {Thibaut Jombart and Zhian Namir Kamvar and Klaus Schliep and Rebecca Harris}, note = {R package version 1.0.1}, year = {2015} } @Manual{Turlach2013, title = {quadprog: Functions to solve Quadratic Programming Problems.}, author = {Berwin A. Turlach and Andreas Weingessel}, year = {2013}, note = {R package version 1.5-5}, url = {http://CRAN.R-project.org/package=quadprog}, } @Manual{rgl, title = {rgl: 3D Visualization Using OpenGL}, author = {Daniel Adler and Duncan Murdoch and {others}}, year = {2015}, note = {R package version 0.95.1247}, url = {http://CRAN.R-project.org/package=rgl}, } @article{Bouckaert2010, author = {Bouckaert, Remco R.}, title = {{DensiTree}: making sense of sets of phylogenetic trees}, volume = {26}, number = {10}, pages = {1372-1373}, year = {2010}, doi = {10.1093/bioinformatics/btq110}, URL = {http://bioinformatics.oxfordjournals.org/content/26/10/1372.abstract}, eprint = {http://bioinformatics.oxfordjournals.org/content/26/10/1372.full.pdf+html}, journal = {Bioinformatics} } @article{Cavalli1967, author = {Cavalli-Sforza, L.L. and Edwards, A.W.F.}, year = {1967}, title = {Phylogenetic analysis: models and estimation procedures}, journal = {American Journal of Human Genetics}, volume = {19}, pages = {233--257} } @Article{Huson2006, Author = "D.H. Huson and D. Bryant", Title = "Application of Phylogenetic Networks in Evolutionary Studies", Journal = "Molecular Biology and Evolution", Volume = "23", Number = "2", Pages = "254--267", Year = "2006" } @InCollection{Buneman1971, author = "Peter Buneman", title = "The recovery of trees from measures of dissimilarity", booktitle = "Mathematics in the Archaeological and Historical Sciences", editor = "Hodson, F. R. and Kendall, D. G. and Tautu, P. T.", publisher = "Edinburgh University Press", pages = "387--395", year = "1971" } @Article{Buneman1974, title = {A Note on the Metric Properties of Trees}, author = {Peter Buneman}, journal = {Journal of combinatorial theory (B)}, year = {1974}, volume = {17}, pages = {48--50} } @article{Fitch1971, author = {Fitch, Walter M.}, title = {Toward Defining the Course of Evolution: Minimum Change for a Specific Tree Topology}, volume = {20}, number = {4}, pages = {406-416}, year = {1971}, doi = {10.1093/sysbio/20.4.406}, URL = {http://sysbio.oxfordjournals.org/content/20/4/406.abstract}, eprint = {http://sysbio.oxfordjournals.org/content/20/4/406.full.pdf+html}, journal = {Systematic Biology} } @article {Paradis2017, author = {Paradis, Emmanuel and Gosselin, Thierry and Goudet, Jérôme and Jombart, Thibaut and Schliep, Klaus}, title = {Linking genomics and population genetics with R}, journal = {Molecular Ecology Resources}, issn = {1755-0998}, url = {http://dx.doi.org/10.1111/1755-0998.12577}, doi = {10.1111/1755-0998.12577}, pages = {n/a--n/a}, keywords = {multivariate analysis, NGS, R, SNP, VCF}, year = {2017}, } @article {Jombart2017, author = {Jombart, Thibaut and Archer, Frederick and Schliep, Klaus and Kamvar, Zhian and Harris, Rebecca and Paradis, Emmanuel and Goudet, Jérome and Lapp, Hilmar}, title = {apex: phylogenetics with multiple genes}, journal = {Molecular Ecology Resources}, issn = {1755-0998}, url = {http://dx.doi.org/10.1111/1755-0998.12567}, doi = {10.1111/1755-0998.12567}, pages = {n/a--n/a}, keywords = {R, package, Software, Genetics, Phylogenies}, year = {2017}, } @article{Kuhner1994, author = {Kuhner, M K and Felsenstein, J}, title = {A simulation comparison of phylogeny algorithms under equal and unequal evolutionary rates.}, volume = {11}, number = {3}, pages = {459-468}, year = {1994}, URL = {http://mbe.oxfordjournals.org/content/11/3/459.abstract}, eprint = {http://mbe.oxfordjournals.org/content/11/3/459.full.pdf+html}, journal = {Molecular Biology and Evolution} } @article{Lento1995, author = {Lento, G M and Hickson, R E and Chambers, G K and Penny, D}, title = {Use of spectral analysis to test hypotheses on the origin of pinnipeds.}, volume = {12}, number = {1}, pages = {28-52}, year = {1995}, doi = {10.1093/oxfordjournals.molbev.a040189}, URL = {http://mbe.oxfordjournals.org/content/12/1/28.abstract}, eprint = {http://mbe.oxfordjournals.org/content/12/1/28.full.pdf+html}, journal = {Molecular Biology and Evolution} } @article{Leaché2015, author = {Leaché, Adam D. and Banbury, Barbara L. and Felsenstein, Joseph and Nieto-Montes de Oca, Adrián and Stamatakis, Alexandros}, title = {Short Tree, Long Tree, Right Tree, Wrong Tree: New Acquisition Bias Corrections for Inferring SNP Phylogenies}, year = {2015}, doi = {10.1093/sysbio/syv053}, URL = {http://sysbio.oxfordjournals.org/content/64/6/1032.abstract}, eprint = {http://sysbio.oxfordjournals.org/content/64/6/1032.full.pdf+html}, journal = {Systematic Biology} } @article{Lewis2001, author = {Lewis, Paul O.}, title = {A Likelihood Approach to Estimating Phylogeny from Discrete Morphological Character Data}, volume = {50}, number = {6}, pages = {913-925}, year = {2001}, doi = {10.1080/106351501753462876}, URL = {http://sysbio.oxfordjournals.org/content/50/6/913.abstract}, eprint = {http://sysbio.oxfordjournals.org/content/50/6/913.full.pdf+html}, journal = {Systematic Biology} } @article{Potts2014, author = {Potts, Alastair J. and Hedderson, Terry A. and Grimm, Guido W.}, title = {Constructing Phylogenies in the Presence Of Intra-Individual Site Polymorphisms (2ISPs) with a Focus on the Nuclear Ribosomal Cistron}, volume = {63}, number = {1}, pages = {1-16}, year = {2014}, doi = {10.1093/sysbio/syt052}, URL = {http://sysbio.oxfordjournals.org/content/63/1/1.abstract}, eprint = {http://sysbio.oxfordjournals.org/content/63/1/1.full.pdf+html}, journal = {Systematic Biology} } @Article{ Rambaut1997, Author = "A. Rambaut and N.C. Grassly", Title = "Seq-Gen: an application for the Monte Carlo simulation of DNA sequence evolution along phylogenetic trees", Journal = "Comput Appl Biosci", Volume = "13", Pages = "235--238", Year = "1997" } @Article{Revell2012, title = {phytools: An R package for phylogenetic comparative biology (and other things).}, author = {Liam J. Revell}, journal = {Methods in Ecology and Evolution}, year = {2012}, volume = {3}, pages = {217-223}, } @Article{Revell2014, Title = {Rphylip: an {R} interface for {PHYLIP}}, Author = {Revell, Liam J. and Chamberlain, Scott A.}, Journal = {Methods in Ecology and Evolution}, Year = {2014}, Number = {9}, Pages = {976--981}, Volume = {5}, Doi = {10.1111/2041-210X.12233}, ISSN = {2041-210X}, Keywords = {phylogeny, statistics, computational biology, evolution}, Url = {http://dx.doi.org/10.1111/2041-210X.12233} } @InBook{Robinson1979, Title = {Combinatorial Mathematics VI: Proceedings of the Sixth Australian Conference on Combinatorial Mathematics, Armidale, Australia, August 1978}, Author = {Robinson, D. F. and Foulds, L. R.}, Chapter = {Comparison of weighted labelled trees}, Editor = {Horadam, A. F. and Wallis, W. D.}, Pages = {119--126}, Publisher = {Springer Berlin Heidelberg}, Year = {1979}, Address = {Berlin, Heidelberg}, Doi = {10.1007/BFb0102690}, ISBN = {978-3-540-34857-3}, Url = {http://dx.doi.org/10.1007/BFb0102690} } @article{Robinson1981, author = "D.F. Robinson and L.R. Foulds", title = "Comparison of phylogenetic trees", journal = "Mathematical Biosciences", volume = "53", number = "1", pages = "131 - 147", year = "1981", note = "", issn = "0025-5564", doi = "http://dx.doi.org/10.1016/0025-5564(81)90043-2", url = "http://www.sciencedirect.com/science/article/pii/0025556481900432", } @article{Holland2004, author = {Holland, Barbara R. and Huber, Katharina T. and Moulton, Vincent and Lockhart, Peter J.}, title = {Using Consensus Networks to Visualize Contradictory Evidence for Species Phylogeny}, volume = {21}, number = {7}, pages = {1459-1461}, year = {2004}, doi = {10.1093/molbev/msh145}, URL = {http://mbe.oxfordjournals.org/content/21/7/1459.abstract}, eprint = {http://mbe.oxfordjournals.org/content/21/7/1459.full.pdf+html}, journal = {Molecular Biology and Evolution} } @article{Bryant2004, author = {Bryant, David and Moulton, Vincent}, title = {{Neighbor-Net}: An Agglomerative Method for the Construction of Phylogenetic Networks}, volume = {21}, number = {2}, pages = {255-265}, year = {2004}, doi = {10.1093/molbev/msh018}, URL = {http://mbe.oxfordjournals.org/content/21/2/255.abstract}, eprint = {http://mbe.oxfordjournals.org/content/21/2/255.full.pdf+html}, journal = {Molecular Biology and Evolution} } @Article{Csardi2006, title = {The igraph software package for complex network research}, author = {Gabor Csardi and Tamas Nepusz}, journal = {InterJournal}, volume = {Complex Systems}, pages = {1695}, year = {2006}, url = {http://igraph.org}, } @Article{ Stefankovic2007a, Author = "D. Stefankovic and E. Vigoda", Title = "Pitfalls of heterogeneous processes for phylogenetic reconstruction", Journal = "Systematic Biology", Volume = "56", Number = "1", Pages = "113--124", Year = "2007" } @article{Nguyen2015, author = {Nguyen, Lam-Tung and Schmidt, Heiko A. and von Haeseler, Arndt and Minh, Bui Quang}, title = {IQ-TREE: A Fast and Effective Stochastic Algorithm for Estimating Maximum-Likelihood Phylogenies}, volume = {32}, number = {1}, pages = {268-274}, year = {2015}, doi = {10.1093/molbev/msu300}, URL = {http://mbe.oxfordjournals.org/content/32/1/268.abstract}, eprint = {http://mbe.oxfordjournals.org/content/32/1/268.full.pdf+html}, journal = {Molecular Biology and Evolution} } @Article{ Nixon1999, Author = "K. Nixon", Title = "The Parsimony Ratchet, a New Method for Rapid Rarsimony Analysis", Journal = "Cladistics", Volume = "15", Pages = "407--414", Year = "1999" } @Article{ Matsen2007, Author = "F. A. Matsen and M. Steel", Title = "Phylogenetic mixtures on a single tree can mimic a tree of another topology", Journal = "Systematic Biology", Volume = "56", Number = "5", Pages = "767--775", Year = "2007" } @Article{ Pagel2004, Author = "Mark Pagel and Andrew Meade", Title = "A Phylogenetic Mixture Model for Detecting Pattern-Heterogeneity in Gene Sequence or Character-State Data", Journal = "Systematic Biology", Volume = "53", Number = "4", Pages = "571--581", Year = "2004" } @Article{ Thornton2004, Author = "B. Kolaczkowski and J. W. Thornton", Title = "Performance of maximum parsimony and likelihood phylogenetics when evolution is heterogeneous", Journal = "Nature", Volume = "431", Number = "7011", Pages = "980--984", Year = "2004" } @Article{ Studier1988, Author = "J. A. Studier and K. J. Keppler", Title = "A Note on the Neighbor-Joining Algorithm of Saitou and Nei", Journal = "Molecular Biology and Evolution", Volume = "5", Number = "6", Pages = "729--731", Year = "1988" } @Article{ Saitou1987, Author = "N. Saitou and M. Nei", Title = "The Neighbor-Joining Method - a New Method for Reconstructing Phylogenetic Trees", Journal = "Molecular Biology and Evolution", Volume = "4", Number = "4", Pages = "406--425", Year = "1987" } @Article{ Pagel2008, Author = "Mark Pagel and Andrew Meade", Title = "Modelling heterotachy in phylogenetic inference by reversible-jump Markov chain Monte Carlo", Journal = "Philosophical Transactions of the Royal Society B", Volume = "363", Pages = "3955--3964", Year = "2008" } @Article{ Shimodaira1999, Author = "Shimodaira, H. and Hasegawa, M.", Title = "Multiple comparisons of log-likelihoods with applications to phylogenetic inference.", Journal = "Molecular Biology and Evolution", Volume = "16", Pages = "1114--1116", Year = "1999" } @InCollection{ Pagel2005, Author = "Mark Pagel and Andrew Meade", Title = "Mixture models in phylogenetic inference", BookTitle = "Mathematics of evolution and phylogeny", Editor = "Olivier Gascuel", Publisher = "Oxford", Address = "New York", Year = "2005" } @article{Pupko2000, author = {Pupko, Tal and Pe, Itsik and Shamir, Ron and Graur, Dan}, title = {A Fast Algorithm for Joint Reconstruction of Ancestral Amino Acid Sequences}, volume = {17}, number = {6}, pages = {890-896}, year = {2000}, eprint = {http://mbe.oxfordjournals.org/content/17/6/890.full.pdf+html}, journal = {Molecular Biology and Evolution} } @article{Pupko2002, author = {Pupko, Tal and Pe'er, Itsik and Hasegawa, Masami and Graur, Dan and Friedman, Nir}, title = {A branch-and-bound algorithm for the inference of ancestral amino-acid sequences when the replacement rate varies among sites: Application to the evolution of five gene families}, volume = {18}, number = {8}, pages = {1116-1123}, year = {2002}, doi = {10.1093/bioinformatics/18.8.1116}, URL = {http://bioinformatics.oxfordjournals.org/content/18/8/1116.abstract}, eprint = {http://bioinformatics.oxfordjournals.org/content/18/8/1116.full.pdf+html}, journal = {Bioinformatics} } @InCollection{ Swofford1996, Author = "Swofford, D.L. and Olsen, G.J. and Waddell, P.J. and Hillis, D.M.", Title = "Phylogenetic Inference", BookTitle = "Molecular Systematics", Editor = "Hillis, D.M. and Moritz, C. and Mable, B.K", Edition = "Second", Publisher = "Sinauer", Address = "Sunderland, MA", Year = "1996" } @Article{ Kolaczkowski2008, Author = "Bryan Kolaczkowski and Joseph W. Thornton", Title = "A Mixed Branch Length Model of Heterotachy Improves Phylogenetic Accuracy", Journal = "Molecular Biology and Evolution", Volume = "25", Number = "6", Pages = "1054--1066", Year = "2008" } @Article{ Dempster1977, Author = "A. P. Dempster and N. M. Laird and D. B. Rubin", Title = "Maximum likelihood from incomplete data via the EM algorithm", Journal = "Journal of the Royal Statistical Society B", Volume = "39", Number = "1", Pages = "1--38", Year = "1977" } @Book{ Felsenstein2004, Author = "Joseph Felsenstein", Title = "Inferring Phylogenies", Publisher = "Sinauer Associates", Address = "Sunderland", Year = "2004" } @Article{ Felsenstein1981, Author = "Joseph Felsenstein", Title = "Evolutionary trees from DNA sequences: a maxumum likelihood approach", Journal = "Journal of Molecular Evolution", Volume = "17", Pages = "368--376", Year = "1981" } @Article{ Felsenstein1985, Author = "Joseph Felsenstein", Title = "Confidence limits on phylogenies. An approach using the bootstrap", Journal = "Evolution", Volume = "39", Pages = "783--791", Year = "1985" } @inproceedings{Leisch2002, author = {Friedrich Leisch}, title = {Sweave: Dynamic Generation of Statistical Reports Using Literate Data Analysis}, booktitle = {Compstat 2002 --- Proceedings in Computational Statistics}, pages = {575--580}, year = 2002, editor = {Wolfgang H{\"a}rdle and Bernd R{\"o}nz}, publisher = {Physica Verlag, Heidelberg}, note = {ISBN 3-7908-1517-9}, url = {http://www.stat.uni-muenchen.de/~leisch/Sweave} } @Article{Penny1985, Author = "D. Penny and M.D. Hendy", Title = "Testing methods evolutionary tree construction", Journal = "Cladistics", Volume = "1", Pages = "266--278", Year = "1985" } @Article{Penny1986, Author = "D. Penny and M.D. Hendy", Title = "Estimating the reliability of evolutionary trees", Journal = "Molecular Biology and Evolution", Volume = "3", Pages = "403--417", Year = "1986" } @Article{Yang1998, author="Yang, Ziheng and Nielsen, Rasmus", title="Synonymous and nonsynonymous rate variation in nuclear genes of mammals", journal="Journal of Molecular Evolution", year="1998", volume="46", number="4", pages="409--418", doi="10.1007/PL00006320", url="http://dx.doi.org/10.1007/PL00006320" } @Book{ Yang2006, Author = "Ziheng Yang", Title = "Computational Molecular evolution", Publisher = "Oxford University Press", Address = "Oxford", Year = "2006" } @Book{ Yang2014, Author = "Ziheng Yang", Title = "Molecular Evolution: A Statistical Approach", Publisher = "Oxford University Press", Address = "Oxford", Year = "2014" } @article {Michaux2003, author = {Michaux, J. R. and Magnanou, E. and Paradis, E. and Nieberding, C. and Libois, R.}, title = {Mitochondrial phylogeography of the Woodmouse (Apodemus sylvaticus) in the Western Palearctic region}, journal = {Molecular Ecology}, volume = {12}, number = {3}, publisher = {Blackwell Science Ltd}, issn = {1365-294X}, url = {http://dx.doi.org/10.1046/j.1365-294X.2003.01752.x}, doi = {10.1046/j.1365-294X.2003.01752.x}, pages = {685--697}, keywords = {Apodemus sylvaticus, glacial refuge, mtDNA, North Africa, phylogeography, postglacial colonization, Western Palearctic region }, year = {2003}, } @Article{ Paradis2004, Author = "E. Paradis and J. Claude and K. Strimmer", Title = "{APE}: Analyses of Phylogenetics and Evolution in {R} language", Journal = "Bioinformatics", Volume = "20", Number = "2", Pages = "289--290", Year = "2004" } @Book{ Paradis2006, Author = "Emmanuel Paradis", Title = "Analysis of Phylogenetics and Evolution with R", Publisher = "Springer", Address = "New York", Year = "2006" } @Book{ Paradis2012, Author = "Emmanuel Paradis", Title = "Analysis of Phylogenetics and Evolution with R", Edition = "Second", Publisher = "Springer", Address = "New York", Year = "2012" } @InCollection{ seqinr, author = "D. Charif and J.R. Lobry", title = "Seqin{R} 1.0-2: a contributed package to the {R} project for statistical computing devoted to biological sequences retrieval and analysis.", booktitle = "Structural approaches to sequence evolution: Molecules, networks, populations", year = "2007", editor = "M. Porto H.E. Roman {U. Bastolla} and M. Vendruscolo", series = "Biological and Medical Physics, Biomedical Engineering", pages = "207--232", address = "New York", publisher = "Springer", note = "{ISBN :} 978-3-540-35305-8" } @Article{ Mathews2010, Author = "S. Mathews and M.D. Clements and M.A. Beilstein", Title = "A duplicate gene rooting of seed plants and the phylogenetic position of flowering plants.", Journal = "Phil. Trans. R. Soc. B", Volume = "365", Pages = "383--395", Year = "2010" } @article {Schliep2017, author = "Schliep, Klaus and Potts, Alastair J. and Morrison, David A. and Grimm, Guido W.", title = "Intertwining phylogenetic trees and networks", journal = "Methods in Ecology and Evolution", url = "http://dx.doi.org/10.1111/2041-210X.12760", doi = "10.1111/2041-210X.12760", pages = "n/a--n/a", keywords = "Exploratory Data Analysis, Networks, PHANGORN, R, Trees", year = "2017" } @Article{ Schliep2011, title = "phangorn: Phylogenetic analysis in {R}", author = "Klaus Peter Schliep", journal = "Bioinformatics", year = "2011", volume = "27", number = "4", pages = "592--593", doi = {10.1093/bioinformatics/btq706}, URL = {http://bioinformatics.oxfordjournals.org/content/27/4/592.abstract}, eprint = {http://bioinformatics.oxfordjournals.org/content/27/4/592.full.pdf+html}, } @Thesis{Schliep2009, author = "Klaus Schliep", title = "Some Applications of statistical phylogenetics", school = "Massey University", year = 2009 } @article{Lanfear2012, author = {Lanfear, Robert and Calcott, Brett and Ho, Simon Y. W. and Guindon, Stephane}, title = {Partition{F}inder: Combined Selection of Partitioning Schemes and Substitution Models for Phylogenetic Analyses}, volume = {29}, number = {6}, pages = {1695-1701}, year = {2012}, doi = {10.1093/molbev/mss020}, URL = {http://mbe.oxfordjournals.org/content/29/6/1695.abstract}, eprint = {http://mbe.oxfordjournals.org/content/29/6/1695.full.pdf+html}, journal = {Molecular Biology and Evolution} } @Article{ Rokas2003, title = "Genome-scale approaches to resolving incongruence in molecular phylogenies", author = "A. Rokas and B.L. Williams and N. King and S.B. Carroll", journal = "Nature", year = "2011", volume = "425", number = "6960", pages = "798--804" } @Article{ Schliep2011b, title = "Harvesting Evolutionary Signals in a Forest of Prokaryotic Gene Trees", author = "Klaus Schliep and Philippe Lopez and Fran\c{c}ois-Joseph Lapointe and Eric Bapteste", journal = "Molecular Biology and Evolution", year = "2011", volume = "28", number = "4", pages = "1393--1405" } @Article{ Swofford1987, title = "Reconstructing ancestral character states under Wagner parsimony", author = "D.L. Swofford and W.P. Maddison", journal = "Math. Biosci.", year = "1987", Volume = "87", pages = "199--229" } @article{Posada1998, author = {Posada, D. and Crandall, K.A.}, title = {{MODELTEST}: testing the model of {DNA} substitution.}, volume = {14}, number = {9}, pages = {817--818}, year = {1998}, journal = {Bioinformatics} } @article{Posada2008, author = {Posada, David}, title = {{jModelTest}: Phylogenetic Model Averaging}, volume = {25}, number = {7}, pages = {1253--1256}, year = {2008}, URL = {http://mbe.oxfordjournals.org/content/25/7/1253.abstract}, journal = {Molecular Biology and Evolution} } @article{Hendy1982, author = {M.D. Hendy and D. Penny}, title = {Branch and bound algorithms to determine minimal evolutionary trees}, volume = {59}, pages = {277--290}, year = {1982}, journal = {Math. Biosc.} } @Book{ Rao1973, Author = "C.R. Rao", Title = "Linear statistical inference and its applications", Publisher = "John Wiley", Address = "New York", Year = "1973" } @Book{ Burnham2002, Author = "K. P. Burnham and D. R. Anderson", Title = "Model selection and multimodel inference: a practical information-theoretic approach", Edition = "Second", Publisher = "Springer", Address = "New York", Year = "2002" } @Article{ Lapointe2010, title = "Clanistics: a multi-level perspective for harvesting unrooted gene trees", journal = "Trends in Microbiology", volume = "18", number = "8", pages = "341--347", year = "2010", url = "http://www.sciencedirect.com/science/article/pii/S0966842X10000570", author = "Fran\c{c}ois-Joseph Lapointe and Philippe Lopez and Yan Boucher and Jeremy Koenig and Eric Bapteste" } @article{Vos2003, author = {Vos, R. A.}, title = {Accelerated Likelihood Surface Exploration: The Likelihood Ratchet}, volume = {52}, number = {3}, pages = {368-373}, year = {2003}, doi = {10.1080/10635150390196993}, URL = {http://sysbio.oxfordjournals.org/content/52/3/368.abstract}, journal = {Systematic Biology} } @article{Wilkinson2007, title = "Of clades and clans: terms for phylogenetic relationships in unrooted trees", journal = "Trends in Ecology and Evolution", volume = "22", number = "3", pages = "114--115", year = "2007", url = "http://www.sciencedirect.com/science/article/pii/S016953470700019", author = "Mark Wilkinson and James O. McInerney and Robert P. Hirt and Peter G. Foster and T. Martin Embley" } @article{Warnow2012, title = "Standard maximum likelihood analyses of alignments with gaps can be statistically inconsistent", journal = "PLOS Currents Tree of Life", year = "2012", doi = "10.1371/currents.RRN1308", author = "Tandy Warnow" } @Manual{knitr, title = {knitr: A General-Purpose Package for Dynamic Report Generation in R}, author = {Yihui Xie}, year = {2015}, note = {R package version 1.11}, url = {http://yihui.name/knitr/}, } @Book{Xie2015, title = {Dynamic Documents with {R} and knitr}, author = {Yihui Xie}, publisher = {Chapman and Hall/CRC}, address = {Boca Raton, Florida}, year = {2015}, edition = {2nd}, note = {ISBN 978-1498716963}, url = {http://yihui.name/knitr/}, } @InCollection{Xie2014, booktitle = {Implementing Reproducible Computational Research}, editor = {Victoria Stodden and Friedrich Leisch and Roger D. Peng}, title = {knitr: A Comprehensive Tool for Reproducible Research in {R}}, author = {Yihui Xie}, publisher = {Chapman and Hall/CRC}, year = {2014}, note = {ISBN 978-1466561595}, url = {http://www.crcpress.com/product/isbn/9781466561595}, } @article{Wang2012, author = {Wang, Ning and Braun, Edward L. and Kimball, Rebecca T.}, title = {Testing Hypotheses about the Sister Group of the Passeriformes Using an Independent 30-Locus Data Set}, volume = {29}, number = {2}, pages = {737-750}, year = {2012}, doi = {10.1093/molbev/msr230}, URL = {http://mbe.oxfordjournals.org/content/29/2/737.abstract}, eprint = {http://mbe.oxfordjournals.org/content/29/2/737.full.pdf+html}, journal = {Molecular Biology and Evolution} } phangorn/vignettes/Trees.Rnw0000644000176200001440000003273213207147352015663 0ustar liggesusers%\VignetteIndexEntry{Constructing phylogenetic trees} %\VignetteKeywords{Documentation} %\VignettePackage{phangorn} %\VignetteEngine{Sweave} \documentclass[12pt]{article} \usepackage{times} \usepackage{hyperref} \begin{document} \SweaveOpts{concordance=TRUE} \newcommand{\Rfunction}[1]{{\texttt{#1}}} \newcommand{\Robject}[1]{{\texttt{#1}}} \newcommand{\Rpackage}[1]{{\textit{#1}}} \newcommand{\Rmethod}[1]{{\texttt{#1}}} \newcommand{\Rfunarg}[1]{{\texttt{#1}}} \newcommand{\Rclass}[1]{{\textit{#1}}} \textwidth=6.2in \textheight=8.5in %\parskip=.3cm \oddsidemargin=.1in \evensidemargin=.1in \headheight=-.3in \newcommand{\R}{\textsf{R}} \newcommand{\pml}{\Robject{pml}} \newcommand{\phangorn}{\Rpackage{phangorn}} \newcommand{\ape}{\Rpackage{ape}} \newcommand{\multicore}{\Rpackage{multicore}} \newcommand{\term}[1]{\emph{#1}} \newcommand{\mref}[2]{\htmladdnormallinkfoot{#2}{#1}} % leave comments in the text \SweaveOpts{keep.source=TRUE} % Ross Ihakas extenstion for nicer representation \DefineVerbatimEnvironment{Sinput}{Verbatim} {xleftmargin=2em} \DefineVerbatimEnvironment{Soutput}{Verbatim}{xleftmargin=2em} \DefineVerbatimEnvironment{Scode}{Verbatim}{xleftmargin=2em} \fvset{listparameters={\setlength{\topsep}{0pt}}} \renewenvironment{Schunk}{\vspace{\topsep}}{\vspace{\topsep}} <>= options(width=70) foo <- packageDescription("phangorn") options("show.signif.stars" = FALSE) @ \title{Estimating phylogenetic trees with phangorn} %$ (Version \Sexpr{foo$Version})} \author{\mref{mailto:klaus.schliep@gmail.com}{Klaus P. Schliep}} \maketitle \nocite{Paradis2012} \section{Introduction} These notes should enable the user to estimate phylogenetic trees from alignment data with different methods using the \phangorn{} package \cite{Schliep2011}. Several functions of \phangorn{} are also described in more detail in \cite{Paradis2012}. For more theoretical background on all the methods see e.g. \cite{Felsenstein2004, Yang2006}. This document illustrates some of the \phangorn{} features to estimate phylogenetic trees using different reconstruction methods. Small adaptations to the scripts in section \ref{sec:Appendix1} should enable the user to perform phylogenetic analyses. \section{Getting started} The first thing we have to do is to read in an alignment. Unfortunately there exists many different file formats that alignments can be stored in. The function \Rfunction{read.phyDat} is used to read in an alignment. There are several functions to read in alignments depending on the format of the data set (nexus, phylip, fasta) and the kind of data (amino acid or nucleotides) in the \ape{} package \cite{Paradis2004} and \phangorn{}. The function \Rfunction{read.phyDat} calls these other functions. For the specific parameter settings available look in the help files of the function \Rfunction{read.dna} (for phylip, fasta, clustal format), \Rfunction{read.nexus.data} for nexus files. For amino acid data additional \Rfunction{read.aa} is called. %When using the \Rfunction{read.dna} from \ape{} the parameter the we have to use as.character=TRUE. We start our analysis loading the \phangorn{} package and then reading in an alignment. <>= library(phangorn) fdir <- system.file("extdata/trees", package = "phangorn") primates <- read.phyDat(file.path(fdir, "primates.dna"), format = "phylip") @ \section{Distance based methods} After reading in the alignment we can build a first tree with distance based methods. The function dist.dna from the ape package computes distances for many DNA substitution models. To use the function dist.dna we have to transform the data to class DNAbin. For amino acids the function \Rfunction{dist.ml} offers common substitution models (for example "WAG", "JTT", "LG", "Dayhoff", "cpREV", "mtmam", "mtArt", "MtZoa" or "mtREV24"). After constructing a distance matrix we reconstruct a rooted tree with UPGMA and alternatively an unrooted tree using Neighbor Joining \cite{Saitou1987,Studier1988}. More distance methods like fastme are available in the \Rpackage{ape} package. <>= dm <- dist.ml(primates) treeUPGMA <- upgma(dm) treeNJ <- NJ(dm) @ We can plot the trees treeUPGMA and treeNJ (figure \ref{fig:NJ}) with the commands: <>= layout(matrix(c(1,2), 2, 1), height=c(1,2)) par(mar = c(0,0,2,0)+ 0.1) plot(treeUPGMA, main="UPGMA") plot(treeNJ, "unrooted", main="NJ") @ \begin{figure} \begin{center} <>= <> @ \end{center} \caption{Rooted UPGMA tree and unrooted NJ tree} \label{fig:NJ} \end{figure} Distance based methods are very fast and we will use the UPGMA and NJ tree as starting trees for the maximum parsimony and maximum likelihood analyses. \section{Parsimony} The function parsimony returns the parsimony score, that is the number of changes which are at least necessary to describe the data for a given tree. We can compare the parsimony score or the two trees we computed so far: <>= parsimony(treeUPGMA, primates) parsimony(treeNJ, primates) @ The function optim.parsimony performs tree rearrangements to find trees with a lower parsimony score. The tree rearrangement implemented are nearest-neighbor interchanges (NNI) and subtree pruning and regrafting (SPR). The later one only works so far with the fitch algorithm. However is also a version of the parsimony ratchet \cite{Nixon1999} implemented, which is likely to find better trees than just doing NNI / SPR rearrangements. <>= treePars <- optim.parsimony(treeUPGMA, primates) treeRatchet <- pratchet(primates, trace = 0) parsimony(c(treePars, treeRatchet), primates) @ For small data sets it is also possible to find all most parsimonious trees using a branch and bound algorithm \cite{Hendy1982}. For data sets with more than 10 taxa this can take a long time and depends strongly on how tree like the data are. <>= (trees <- bab(subset(primates,1:10))) @ \section{Maximum likelihood} The last method we will describe in this vignette is Maximum Likelihood (ML) as introduced by Felsenstein \cite{Felsenstein1981}. We can easily compute the likelihood for a tree given the data <>= fit = pml(treeNJ, data=primates) fit @ The function \Rfunction{pml} returns an object of class \Robject{pml}. This object contains the data, the tree and many different parameters of the model like the likelihood. There are many generic functions for the class Robject{pml} available, which allow the handling of these objects. <>= methods(class="pml") @ The object fit just estimated the likelihood for the tree it got supplied, but the branch length are not optimized for the Jukes-Cantor model yet, which can be done with the function \Rfunction{optim.pml}. <>= fitJC <- optim.pml(fit, TRUE) logLik(fitJC) @ With the default values \Rfunction{pml} will estimate a Jukes-Cantor model. The function \Rfunction{update.pml} allows to change parameters. We will change the model to the GTR + $\Gamma(4)$ + I model and then optimize all the parameters. <>= fitGTR <- update(fit, k=4, inv=0.2) fitGTR <- optim.pml(fitGTR, model="GTR", optInv=TRUE, optGamma=TRUE, rearrangement = "NNI", control = pml.control(trace = 0)) fitGTR @ With the control parameters the threshols for the fitting process can be changed. Here we want just to supress output during the fitting process. For larger trees the NNI rearrangements often get stuck in local maxima. We added two stochatic algorithm to improve topology search. The first (set rearrangement="stochastic") performs stochastic rearrangements similar as in \cite{Nguyen2015}, which makes random NNI permuation to the tree, which than gets optimised to escape local optima. The second option (rearrangement="ratchet") perform the likelihood ratchet \cite{Vos2003}. While these algorithms may find better trees they will also take more time. <>= fitGTR <- optim.pml(fitGTR, model="GTR", optInv=TRUE, optGamma=TRUE, rearrangement = "stochastic", control = pml.control(trace = 0)) fitGTR @ \subsection{Model selection} We can compare nested models for the JC and GTR + $\Gamma(4)$ + I model using likelihood ratio statistic <>= anova(fitJC, fitGTR) @ with the Shimodaira-Hasegawa \cite{Shimodaira1999} test <>= SH.test(fitGTR, fitJC) @ or with the AIC <>= AIC(fitJC) AIC(fitGTR) AICc(fitGTR) BIC(fitGTR) @ An alternative is to use the function \Rfunction{modelTest} to compare different nucleotide or protein models the AIC, AICc or BIC, similar to popular programs ModelTest and ProtTest \cite{Posada1998, Posada2008, Abascal2005}. <>= load("Trees.RData") @ <>= mt = modelTest(primates) @ The results of \Rfunction{modelTest} is illustrated in table \ref{tab:modelTest} \begin{center} <>= library(xtable) print(xtable(mt, caption="Summary table of modelTest", label="tab:modelTest"), include.rownames=FALSE) @ \end{center} The thresholds for the optimization in \Rfunction{modelTest} are not as strict as for \Rfunction{optim.pml} and no tree rearrangements are performed. As \Rfunction{modelTest} computes and optimizes a lot of models it would be a waste of computer time not to save these results. The results are saved as call together with the optimized trees in an environment and this call can be evaluated to get a "pml" object back to use for further optimization or analysis. <>= env <- attr(mt, "env") ls(envir=env) (fit <- eval(get("HKY+G+I", env), env)) @ At last we may want to apply bootstrap to test how well the edges of the tree are supported: %, results=hide <>= bs = bootstrap.pml(fitJC, bs=100, optNni=TRUE, control = pml.control(trace = 0)) @ %$ Now we can plot the tree with the bootstrap support values on the edges and also look at consensusNet to identify potential conflict. <>= par(mfrow=c(2,1)) par(mar=c(1,1,3,1)) plotBS(midpoint(fitJC$tree), bs, p = 50, type="p") title("a)") cnet <- consensusNet(bs, p=0.2) plot(cnet, "2D", show.edge.label=TRUE) title("b)") @ %$ \begin{figure} \begin{center} <>= <> @ \end{center} \caption{a) Unrooted tree (midpoint rooted) with bootstrap support values. b) ConsensusNet from the bootstrap sample} \label{fig:BS} \end{figure} Several analyses, e.g. \Rfunction{bootstrap} and \Rfunction{modelTest}, can be computationally demanding, but as nowadays most computers have several cores one can distribute the computations using the \multicore{} package. However it is only possible to use this approach if R is running from command line ("X11"), but not using a GUI (for example "Aqua" on Macs) and unfortunately the \multicore{} package does not work at all under Windows. \newpage \section{Appendix: Standard scripts for nucleotide analysis}\label{sec:Appendix1} Here we provide two standard scripts which can be adapted for the most common tasks. Most likely the arguments for \Rfunction{read.phyDat} have to be adapted to accommodate your file format. Both scripts assume that the \multicore{} package works on your platform, see comments above. <>= options(prompt=" ") options(continue=" ") @ <>= library(phangorn) file="myfile" dat = read.phyDat(file) dm = dist.ml(dat, "F81") tree = NJ(dm) # as alternative for a starting tree: tree <- pratchet(dat) # parsimony tree tree <- nnls.phylo(tree, dm) # need edge weights # 1. alternative: quick and dirty: GTR + G fitStart = pml(tree, dat, k=4) fit = optim.pml(fitStart, model="GTR", optGamma=TRUE, rearrangement="stochastic") # 2. alternative: preper with modelTest mt <- modelTest(dat, tree=tree, multicore=TRUE) mt[order(mt$AICc),] # choose best model from the table according to AICc bestmodel <- mt$Model[which.min(mt$AICc)] env = attr(mt, "env") fitStart = eval(get("GTR+G+I", env), env) # or let R search the table fitStart = eval(get(bestmodel, env), env) # equivalent to: fitStart = eval(get("GTR+G+I", env), env) fit = optim.pml(fitStart, rearrangement = "stochastic", optGamma=TRUE, optInv=TRUE, model="GTR") bs = bootstrap.pml(fit, bs=100, optNni=TRUE, multicore=TRUE) @ \newpage \section{Appendix 2: Standard scripts for amino acid analysis}%\label{sec:Appendix2} You can specify different several models build in which you can specify, e.g. "WAG", "JTT", "Dayhoff", "LG". Optimizing the rate matrix for amino acids is possible, but would take a long, a very long time and you will need to have a large alignement to estimate all the parameters. So make sure to set optBf=FALSE and optQ=FALSE in the function \Rfunction{optim.pml}, which is also the default. <>= library(phangorn) file="myfile" dat = read.phyDat(file, type = "AA") dm = dist.ml(dat, model="JTT") tree = NJ(dm) # parallel will only work safely from command line # and not at all windows (mt <- modelTest(dat, model=c("JTT", "LG", "WAG"), multicore=TRUE)) # run all available amino acid models (mt <- modelTest(dat, model="all", multicore=TRUE)) fitStart = eval(get(mt$Model[which.min(mt$BIC)], env), env) fitNJ = pml(tree, dat, model="JTT", k=4, inv=.2) fit = optim.pml(fitNJ, rearrangement = "stochastic", optInv=TRUE, optGamma=TRUE) fit bs = bootstrap.pml(fit, bs=100, optNni=TRUE, multicore=TRUE) @ <>= options(prompt="> ") options(continue="+ ") @ \newpage % \cite{Sugiura1978} \bibliographystyle{plain} \bibliography{phangorn} \section{Session Information} The version number of \R{} and packages loaded for generating the vignette were: <>= toLatex(sessionInfo()) @ \end{document} phangorn/vignettes/Trees.RData0000644000176200001440000050112613201424001016065 0ustar liggesusers‹ì}@TKûþ!-T0±PÁ.x1PADQ,$%ìn±P,¤»—†¥AºCÀîÑÿYØ%V0ï÷¿|ßî]çÄÌ{æ™ç™wÞ™3gÅ|õɽÕ{ÁNp°³ìä!';ùÁIô¢_ײ$Žä‘#ä$/ö#ÃÉ”™DÓ_K8ƒ%œÊÎf g±„ÓYÂ),ád–Pš%”b §±„’„âŒPŒE}Æ3‘ŒŸE}YôfчY.=á FØxÅ8çíD/¦ÞŒò`©9C2èKÐ+— †1¯ä^}ÃùòÙºǧHŽüfY˜ƒ¨Âá“ÜŽ"b«Ä…1£åA=G¬˜zv$’oUˆW ™©-U6N†k¬ã¥wÕcrÌ%wGÎP£ÍPŒì…Àwý_rT! }.ž›ô¥Ê=L‹‚‘×oÿ„À]ðWrÙ—£¼{7Z/¹‹ò‚ÈçyÓ[‘µãÞ>TÚðÎ4uñ“wI§ŸEÙ^Ù-{n½C l½Ì|n P^Ô;>›Š”u»]çx«"þé‰U¹ÏΓºð6éÔ¬6×23kK]Æ ÷<³­†¦Ì3.E]k ÆI•š–†ºÌÓÞª[¬ -–™™1®ôZbn*°LS[s 3Ê ]KkKú5æy M-‰’­WzÍÓ´Ðj›ˆ{‘¡––™)3Ë-4Mõ™9Xdfahl¬É¼'o`hbÎ ¢š=]yÏ#·÷{޼»‰Ñ=¾:*ð‚®(h™žÁÅÃû,? 6^º¶"[“â_û²["¹wö–ƲeˆÙòaMÝÇZdõ}Õoü¶\„iÖ-Yaƒè‹øhY‚‚ô‘|lSL¡P!ý¢'ªØ‰»ûßõ@ŒÄä…«è5ÅKü_¢ ŽoÄ?ÇœLa‘ëÍŸò@WùKø«¿¬ÿL}XñÍä&¾™x`Ñ‹‰oV½˜åÀÄ7C¯þ!!o'z1õfðØ/ñ@ìôðYìÇmTfe8.ON#†÷²žƒα.ÅZµç“Ir·Oxœ Š ‹ôO1[^Ôò<­&|Šzªó i£‡õˆNtÈoƒ€)3ìviBR†ç¾äíߜcç‘ü\‘;{ó&DÌò3CbÕþø—¦Â;bÇ:ýãÛp‰zçÆ=íň¤™ÁᇔãÏd f: ÒŸWrG‘#ÓW›È!¢êݽ ›°dø}ÊÌ™ÈÜ2Ðao-Â^p$÷›è„  –”ãʸÕcÖ ;½•y=³·ŠÃxÐv{‰|¶U»$ëÒI~©ßóD9ûšÖüƒš žç"ª×¥¶åOˆnèº<ðoã^Š%üSøÝþŸ‰{&ÎYÇ¿‰ûïÆL}XùYî žø5ÿ@&uѨ@”F I¤ Áùž…éÀáý<áÇÉ'ÚëÈ‚+ Å åêõ¾¶s’"1iB6%ÈlÔÎF²ïÀUaiHž,Þ°¡Þ WÏÓ?¬| Ñ._^_u÷Búnëëæ7ºžcï*ê@$Zl®‘œмK>”:p!¬.}9ÕÉÚ“÷:¢,rH­ïòPäëQµŠ÷O$ím&ÉæqH:´+äT|§^ùrùårжÖéu5 •*kìÙb‰nè:<ÀlŸÌðoyágýùßòFg<ÀÀQ þ~Æ ,zu6þg–+O1ù•7˜|Â:nèŒ7XƿąG¦Åk?JEå㳃 ò8PuÆ5ÂHew='{ÂWj,Ú iûó¦-šŒ„<ß«éÛ'n]Q$ŒàQNÆÂÓŸKΣµaËäUí‰nè:<ðO÷ç¿Ëÿ”ŸÕŽgÅ'kÎÄ#Ó^g9üÓ™ÈÎÆÿ¼ŒÉO¬ó }‰R‚”¬‡Ö"üú!ã+Æ IçÊVö q¸ìñ×_w€)YJ \Óáö™mºË»»H+9ö¸çyÔ\Ü·ài—+y«m¨C5Iú¾—6Â".,T ׈ÛI†ÃÞ"øÙ]Ñ[ç"!¶ð«÷®`Ü]Jµ˜[ŠÔè/¼«S‘26zç˜lÄÅUëõâÒ9+6¿S~‚BjRÉÂsÇP}ªÑgœ Ê÷îy[j—Ž$Í‹+rUPÒäðv«%BV³ . ßCtó@×á©öíð_°òÂ/òÀwvøï☕GXçYW.°Î;°úXç ;ó_°ðß/ñ@E¬ Ô‘»àÓ¾Nˆ|6ûÁ˜g«aÖwrãÇd\ëýÍ+hÍ"„-[ïu[CѹA;3S6ÚFÔ—T©"YqøÄK›h^ƒ,ÙaV¾w¼²çß7 4nPøÔsÚH¼¸ø= Bõ÷[d„?EÑöìy؆|AÅSÞ‘¥(屈{ãÜq*–}?^D¤Hdåò¸ˆzrvƒåGzIñÝ<Ð5y€w]m^ñWy€—2ñ÷·~¿ÿÔúÿì/ñÀ½¥“]+© `{_ùõ(’N,ìãü wÖðŽ]¾òR]ôɘÏjæ¿®Ã!û©ÒoRu¢¶àÊ£å¼$^:,òBtÏÖG¦"X¥~IJ÷û¦ÏŽ·£íáÿnèלÇZ8·¾øÃ>ˆÉ˜úü)\WdŒ¥ ˜í<Ë6]G*¯î…û•Cqsô“s¦e}î­“’xé—…â2½P*µS{¿ÒRÙ¶vuR'g#>‡#ÑuÊ88Þ®1™ÑÍ]‰þ§ËÿÔ¸àwý‚L<2õb'dW°Ž÷;³:ül^“¡ï/ñÀQÙÏ—/¤!|o]¿Õû® ø~ªO•c ¾ÏúìŒ4üMgÆŠÁË”:ÛlßI”P5.öZ„ˆššÔ3®ˆ>5çÅ‘í …%^V…¨—ŸÍ„ÞÄóçãL3Mœ¹të ]äR¶ ¼ï„ì• f#ž!ú‰øvùûA;ápnÿg¸)ûœœ¼‘/§ä6žÓBÙ¥Ú"Ïß&盦b^¯Üí¸E‹Ù³!ß×$b}Ý6$| ;Ê)+ƒÈ{‹—o–@²jÅÛYâý‰nè:<Àl§Ìðßæ…Ê?ð§~Ã?õ²ÚL}˜åòOúª ¢N¬ìƒ¬¡Þ[OqAôà^=ùvì­|}´ªÊaÐôŸ¬âÙçÙ§Ï‹ }¼’Ø{ïT„M8wùòÈzp(wÉí^é¹e¥˜>ÞÂb½>qO€ûˆÆí‹3ý@]p®^¶Ê¡†ñ:›W!ìeîyÝ TÄU©g»g¿CAák’J Hâ¼#iz…€Ë4íÓ§Ç Ñ+'.èH_”æHR`Ī7•¦™öDÒ» å²mËà†ú™µvœˆ^°VÖ9þ=ÑÍ]—þÖ?ðŸ~séWy€©/#ü]»ÿOý½¹ÔÙzBf9ÿκâÚyïL}ªö¡¤OÍKÞWDôü°ib|-jB^çš&Ðí»Š·9» ùú©ƒ ,þ­²x(û Dd׎³v¢ÅåGÎm¼[•ù¶Õ4Ü8™ÒkÐk8)%oØð TöC#Êá/È™Z™Þþ[ì½:5ñs³¤¦ (Af^Ÿ Ã*ûÒ6üÁ›cðmpÝ5r%ÜÃE¾<¼…ž)Õ‰‡‘(ü9å òbÄëå­:0s*¼4ªwªÄ;øEvÍK«¸ÎåÓù[õ½ ðAÉR%QŽpª7<»g4t3òµÆš}õ¹ˆ*Kõ´Á5ˆJŸ7ë‘$âgú*<ß”ƒ›ç2hìöHßvþ8ß<:Xx‰nè<ð¿ò¾!/#d™Ÿ§Œ°3ž`°¾'Àä V»€Õù«<ÁЫ…'þd\P¾þÑÈÊPý¢„5Ý„¨…Ž»°Ã …ûCwö²^‰ÀãW†¿Œ\#ùusÉþ|P.ÛVÜ2ž‰Ê/æðj|ë¸ßÑ´ç¹eÇ|EXM_‰+Ï @lÂøçÇýqõÊÕ˜ÊgjH}_E™av'ÞN212ÃÅàßT÷™WŸ+ú¤Ñ@Ûh½ `ÿl¤OÒ\:°EÈÛÉOço~ˆr³ÎÛ‰ÔÄ—g·êÄýQ;ÎX¦‡´Äø~ŸζJÇ~ås¢›ºüÛvÿÏxèWyàß¶û;› !“XõbY¯øK<>Q_ÕË5I}£{+³÷DTM¯ª‹âv8–)lT¸þÑo¼âÕ™ÆÅwôä3Äîó:ÐïÚzœ_ûØagŒ¨Z?¨k„g„rÔt½B„¯zWùV=©Ïh/Búü×vªÍFÞÝêþüC$[ðR´Ç"øÜQ§­>»³– §ËìF™rt±ÄɨŽx¸ëµ*W‰«é==°á¢Ï4æ $nò´©P”š `ÃÇ¢›ºü¾wüÝ:.Æ‚E/)Æ…_áê:kåGÂPlNá=ëˆ{ªÖʳ6öÈÙEP#†ì®¸f†+))Gæž@0ï˜ËO."Êcå ýgœßÞà¶uËqܺzÜByƒŒÞÆ o4Qö¼ÿÓþ‡ÿ²wiß1ð= ž 1½×2‡ ·)O¶W`ò¯¨jÕÏðuvîøÒð8ý.eHxO¤ÎÞ¯.ð¤nù÷ˆ0G T\»µéñ³(”è­|öF`7n6ì’,Dȉc<ûçÅÝ<ÐuxàŸ^ø³uBû>㯾gô»ë†™<º'/#l¾³çÿØßð'þÔÕ¯Ïq^„ð×ÛÇU"rú•:í~s¸X³æRˆ:Òj…möôu©‹Øû;VBãHOB^Ÿ°³«ÞÙ£æéEÑœ)FÈÆAOO¹gˆq×rTëó‘«.©z ¡P¼qÙÆ1QLÙ6z䲨öûpUòîq„»7:ñ.‚3O4޽&…+»?¼ºÐSaný÷riK"&v1ÇÈwYq×ìLb(ù×#"i¹ØÉ>CôÕSgÝTßðt\›úB‰^c¼D7t ø[\J±„ÿéuÇ¿hüîø½S;ž©ç?µ/Igë~gÿ¼žO{¯ÖØ€Jyá^=.ãüŽ1Þo¼Ï DãÎtj\¢ÊçF,Û/ ßšÅW3…²õÊ…«bôtÄåUøPØQ–DUZí>Åï¶ ¿qæ<2z-[4Ýé.­¹wkÙ}D†e¿8»—W¹o¤çœ{šðUÉ1îÓIcJx_låCÆXy—S2o´«`zHQ|ˆ1[Þ-FžøØ ‹´>H>p}·Ã ¸VSNÍœ=Qs½/̽8ùÏ|—**ç!ŸOX¼ÏåJ¢›º.H±„¬8ü·ßGøÙ:"^}˜üÀÔ§3?“XôaêÉê·üS^`]gH0B_üÔù'5㨨ã¸ðž-Ÿû{ðž»v¤î Ýx~¬â1ÄŽ½'¥;UÅG—XÞ n™ªÂÆÑ„‰çkè¹°!ådäü<þT„­u¥Mq¹†]£ý¹g}Þ†°9G4§n±C·ÌNýEqH0øàp_m7§]ür‰Õ~ù•ŸTÓ›ïnx=¹–×YN¯AÚÔ÷Kk¯ J}g¢ü´øŸÑ/Q‚_¬@¸Ð¸g·1³öÊcÔî¿'ð¬î:²iÞãÄâ—Ý<Ðuxàß^ðOͲβâ“Ù/w¶?Èß®#b]?Ä:_ÁÔ‡©7Á¢×ïØé\>W Câ}žHܬ»ˆzn<{º_=\\"#Ò—©¢h「7¾úðžZ±çÜ4’î?, QÇgZ¼ gï §¼îß[(•ƒ)~¡Ñ :‰ŸÚt‘7‡l‹à;ȉhù—Õ>G> Äx—KÒHÒÞ¢v^éJªãìäb¹QÛøÈÇR¼Ή çŒ¬Ž¢úİ}ü:/|²pÖÆñ«Mš–õæ.J—m}ÿæ|Ķ¿;hW‹ªò…qþÜ[ˆnè:<ð?ê'ünQóþÕ:¢Ò>1³Ö}D©û‡“÷/Mc®ï¥÷}Q6ø¬³ópãáék¾¯i¸íàøyßJDåo5¨ã»Ï>îÓ­à( ‹l#¡±È¾Sßãî†÷HÝi(y3¡"W;%^ŒÔD„ôǬ)Æ[ØP)¢9Ý)Äók´CÁˆl¨˜i›l…œâaB|§à.ùj·¦|:ü×Ùßf¸QrõªßÞÃÝ@èÕx¿a(8 ¯ºãÙ Ô­)íóp‚ó—7ކ,’”^ÚWÞèÞ‡¤›ºyà‹^RŒŒþÒ¾d^|3·¢Øòñ ‡cpSbè‹|É”.â¼,0% ¾ F-ºo|×tŒ]êmˆðY_'ó,(AªFðò¢<ø9|ŠÖè·)CO;š‰x³h¶]ø‚ð¡ö̜‡Äµ•ÎûÏ‚ßqɬ™ÛÞ#ψ8Œa§˜$ ¾#™³6¥ÂùµÎ8ÃÅQò1V”ë‡,®ŸªÆò ´OÞk.”;Y`߈{«V]r’áz÷ý²­‘_n“+®·•F‰r3¯s"©³¾ódnò|~oþi„÷Ì~±$Á‹ÂõjòÁb­…jÈùêë¶QÁÇ?ÈÝU!Çïc\Ã>!S9p3Ï“>}óÆýͲð~­ ;Ð ±ÇÅ·~˜sQ^F7Ó§V#@kÌWÍåEȢƿÝ=y%âØùùx!dVêüœÕ3d˜ëv¨ùÞÜúÉ—¬½ç©wž«=rû+n äzŠÝG½ßAtó@7tó@sø'Â]oºÇ¥þg‘¶N0×ÊŽô¥¥Ã7øF Yðfv^P9O|Héû %A· êú"ôBùé¹YH•±µ[ùQ‘~žüÛé%ÈKtó@×ä®6øÕõ„¬ëŠwð»_Tìl^ðgã^}þh‘î¥óCú¡ôžt?á­£ºÈtìõÇàq$`ù~>N:©¥­¾ä|žUGô>Ïûæþ=š¾·nö<Ž Þ•¾YeÒ3Œfí¶¾õÏ’µß!ÔSïø)µÇˆzgO‘xô ‰/6>Nò÷mz&O6 GÁî5qwRró±phˆO²¶ß¾_™À·Iî;¨ûU÷uÄÄ+%ÃQ7rí5«ž;P趬,Sþ+b{Ž5?¾gb´\Ž—~[ƒÈªÆKeVÝ<ÐÍÿ40Š»…ºtºÎñOx wÙœS3 ®¡âTÆ‚3—ìàfé©¥‘[…‹¯, ŸºøÂoqñK·!ÖÎu•Bæxm¼ñå‘Òü³ ÁÚ‘_6Ft+Ò·Ø/ï ×Ñk‡²_E¢–]Ú‘ÉchÎuö7Ed,(V ™ŸèùÉ»í3öhHŒóbPOÄ=¾2 éIÓ6Mîí„h=Ÿƒ÷Æ£l¹\”ýPÒK–ƒ·bîœô]þv?B*—¨ì9ÁAÒ¾7/ïAüg¡k6nÝût%øÿí'dåVžø[?!Á¢/#ü§ý„Lü3qÎÔ§3¾`êÃú“?zï¸|šî©Ê(“ãi΂{ŸŸ˜,ŸMŽÌ ˆ^†‡^áC÷s„ T9”+wžÑ¡!3û!.e•`Ü’Y9:ãÖ8¾‘Hy?p¸Hnž®m” ²Ò{ºãšJg$šÅë+-à5u—¯|RÒRõ]Wë zAv?•taÐÔú¹ÌitE„µê]ûçåÈØ>.ë„Ø#„>‰x<¹Lq±·=ÆY#ñÜzžþ'P3t§¸êØtÄÑZâÆ5Ï]qy'ˆnè:< Õ¾v9ÀïÚL\þí>ä¿É-¸îl_2^FȺ?Ÿð@±Ôú±'"ãPpeúS7ó¥H;z?A q ¨.±#Ö%!oçY*%@^1srêâÆ"îÔó;’2ðÍ9½«,¹Ñ”ìê Ä” ³1îûaçsÙ÷~æ†ÇöAr1êg4D¥Óá™H\ V¸y,h}’|¼ö=C:ßÚ9_dPy†ÃŸ+|2üDîk¾„(¾Ì1qù;¶^ñÓ‡4Üík±øø·dî±Ñ|S<É#~Ûêÿ‰‡TïXù‘ßB ÒÅD7t]èö¶×§+ú ïÞ¹;dÐdÜ4hÿ¤ (ë·¥|1>¡„vê¼ðÞ·H{#·ó0Ù_ó]u´6áAÄËGB·|!jó%¹ò$syÜÿ4|B6æÜwy"|ÒÊ‹¿=„Üü¨¨ù±ÉÕÕÕ«s¹ŽË\sâŽyçƒ*äv¹&h <ˆúÛÉ« ɽstŸ­SrÓ6ñå¥|ОxÜ/âŽØ’à‘e oà·wE–çÃp”j +óyÝI•ƒ-*ŠŸ"öÂgɜߛ׫Úk碛º.üÛû’ü[û”þî¸É¬z±ŽXö+ûGü„%ŽMçÏOAaãz±ƒëJ‘9ûnH… â•EïEá â<¼bëyá-Ùh1ºfÒ.ï^¼'{ü>7¿Îw~kko‡âÊ’aìÏçR:eÙ»Ð2$õyËÿ-ÆUOÄÊËw":ÈóŠÜ}’ofE>ÞÀGòË…÷É:ñp]ÛßEvÐ9C½jÈCR†…ø…Êh”o˜_øñìWd•ÈÎ0Ûvµ¹÷;JGj5ø¨îUD–H¿.Oµ•B¢R™D7tø§ý|ÿé÷þp]q OülÝ“xag~Öý…þt]òŸìO˜xÛs£ä©-ˆ™ã"5÷"z ©åoW„W²s¯µ·qßå…kŒ›œ¶ËÐÂÖ#ß(ñé§Í¸~äs¬×«S,÷ì·³Â)’™¥>{ ÔËÓn·Ðf”©¨>BqQí…9CáÇ9ó½ÉíW(]qB]jùIЪø^[¾nìAF‹Æàâ©9§ï/ÚŽÈ·÷_ˆy!øj´ä®’¸é}Ar†À=ñ¦½9¨‘ŽìC_†Ï[1±#¢7_9pÁ5¦ÄØ÷æD7t`¶cfØ=.h¯OWTØIÍ›×%J£ª¶VöE‘Ô³Ã7瘠dkC5ïk´ÎPïóbiÐz{n®·ñBŒ¾°ã~yCÄlÿrVeÝd|1™óöÒ}xë-³{#vÔe=.û??ŠÜ„ñ¯žqUIþÒ–ÀpØÁ£´ôøÏع™v²‚ÅVÄ‹g e®OXeÆIÄ¥ 8…ÛãÊÝÏlgCÄ|!©«ÁßÝWƒÓÅeÏçMO ßñÆÔóe"Íq[ŸKæý‘xnçÍ(;¢›ºü¯­+&Xôáe„ÿÔ<â¯îkúŸ\W\RËåwÙÅá£zÈñ=õ]îöÒÆ'¨èŸSs„£ ÁAÓÄ÷ЏR®d84 Á×öÖÚr^ÔbçÆ‘5}nÝ×ã¼=h F;»dABÙíçgV_G’éÊG&FÂïä%ý‘Ó‘Ì“¾áÜêýp<ÄŸ+ŽHÝ<=s÷Æyˆ6ÙR=:m<ò–lܺgk R¾‰H+1AŠƒuâÊl„X¡+9…OpR)C­žgª²ávø­œ·7z"ü·ùYD7tó@÷ûíõ’bdô—xÀêõ4«ç†¨L^ºcQŸ4¤›Íš[ë^€RŽË<²Ã=ãëiYÛ xôTzj6A Ab7_ñ¨Ç!å°gÏB/G¿ Læ_àŒxYéÝJ '‘ô„Mêµ?'‰Oeysã¼ÿ¼cöÔWý\e ²±.päÀ»ˆ0Š2/Q¨GÑz‘̈¨çð˜Røy–‚ìï‹íŒ´”©Ä~>ÄoJåرeùÓog• ò«´õÅ÷¼HÀ6Äåéb$¯25j W /ÑÍÝ<@taøÛï!tÆRÍáw<ð;ïç÷ç·ò j†æï胇$þimŒ-Bþö#nFð²gŽRöÁGÿQ©‡úB¸.˜y@&/´‘±1Ú–†°i,Œ(GÒ”!}Q:‰Ê‡â¬È#ù¿Ûh#„'çS©3ŒÞ·È\ an3ïHÙŒ¼Oö½vg¯„Ón¾ zÓHqOYÿÒÚ!ïwL)6¼týÔä­ž¨ò`Ï6ñ„ÝY8þñHP7H¿q¸ùõÁ÷8Ö%¢¨ôø²JÑ‘ð–Û»lÂÜJ„‹²|ž­Ftó@×áfûd†»O+Îÿ–7þÔOÈj°úó÷{Èù™<ÁÊ¿»/™#ã¿Âw.-ŒÒ¸=%›tT.ó$ °öýÍE}¯¢Ào´¯ÿƒEp¥áÈ Q£\wWŽ€QŽý煮©^\ öÌÑ1[|ï\8‰(¯7î=/¯B©ßÂëå\Ó¶íÚz™ªH*ßh–ä~aùvgDq}cœ4Wã)ä÷«¶AìfvW6îb„ÜØž5VÉ‘;KNW+,E¦Ý”O·¿EÄ. cÁ¯§.Õs/»ßmÄ Þrڞ؀ÜÑ&}êà-¶£ÔW–^B¼D7t øO¯øYÿ»ûžvfü§¿cÂÂ+}·¼ÓõL}X×#íõû%ˆ6Ùå9»×6d?ç¶¡.Íúù݉}êüí©AQ}BWÕÇñ¬ðDÜžu{öÄÀGáRÙ¼§ápý0áUd'â´æjÍ’ˆEÈlë ¥·áºáû™O²HU=¸2ýN8ªldg¾<ðÅEª7ÇQ/£öՠ̲Æ4$®gY¼Êñ·/?n`ˆYBý÷,C¨ÅQªçR„ï¯Y"ŸI^½Ê°_òøÏè{˜ôDÁž¥¾{Έ¡¨PY|Ü i_?ôìÞv#¢›º0Û/3ì^GÔ^}ºÂ:¢Ê·k-Ÿg£xµÔ¶)óŸ!eg©fƒáBÄÇ«” »ò‰q›‡~i¼_­•û7<:Šô1<û#bpå;ë­Fpï1gØÆkZ”»êI><Üeï8e¾7/¸#X°à¥Â³H[[¥¦4÷$òf7>~ Ú¸¨ä%÷ -ûh‘òaxÜRx-î¶¡_^dH®æÇ»[µ…×¢t±o`á[3”ÍTý°ë¨=Oï:]þ‚ÎÞ;ë vÔçñgç…ÐK”—èæ®Á?ë¯ÿKÖüö÷Œ~×ðý¯æ ªt¯æÁñŽð ‰g°ï–Ú­…ј°·¯yD¿º»`Ï$OˆÌ¾¯¯‡ª’ï2¥Uq³@Kó΋8î0`wÑòÄL¤=<]·u\Åj&¥äsœoì¯þ7Òç¡lZCtó@×á©öíð_÷þSöÀ¿5OÈÄ?S?â?bT"=Bò ŠØ¬^—„g"ðÄ“¢›7ÞÁƒwnÚ†²q³(.ç˜=©º=4,âøåýóâøûH¶g»øílR8omý´|œ͗™BAô2ÁôgM±ÿòá>Ÿ/"uDaô}¢r,ej oljÄõð2ÃÓÆ8Dˬ[$w2Rg·²gô…cÏųV\“ÇmË›6ñAûÜÓ&Þ×Pê(Üß¾žØl’û"Ò`‰ÇÀ¢IˆqöÔÛèæ®ËÿôzBVœÿ‡¾oøS?áÏÖ2qͪë< ç¿ëwìäû†ä'¼»¡hW_TÛ¦%—_@Ý©”Ç[¯U£\Í£‡°ï¤ÜêwWŒÄ[,uÉüíÆZðÞ8öÿ”¯ ¹é±ó€%Š—Š™b8~õ¼÷&nE(»RÀž|]Ü\¢$Ey͆øF‘çé\Á¨ùb¯iŸsyKcýw#dO]Ýa‹þi•¡ç0_~ìX{ÜL9m2¼…}´å<Œ”±F0†ÀIò^î³f_J³xО;ûhF@ÀˆËóÕtOÝ<ÐuxàoÇ÷¿Ë?ëÿ¥XÂ_}ïøO×÷3ñÿ§ã†ÎìÖq CŸN÷!áeDü˜SŸqq°¼óT¹WA(Þì¡ð¿F„ ×­C\‘hâóÔ^¿°Š'rÏ{äöò¿Q< Îür*x>"ÆH 9»öh”I—‡&ÊÀçÆ¦„gë4?j£ÆëâÓOäŽÞÍœ[QU]ˆ:ø1{p‚8BƲ¹È|‹b6Ï[7— ¾ê†=ÒP›ã“リljûˆû¼|¤OñªJÜ—zðÕ‘ÛßWç7"T©[j-ùŒ PY?éhL÷û†]‰¤Ú·Óî÷ XôéŠïÔÈU±o¸ˆ¼º½9£AÑÓ9.§6àÎã1öwc´‘yïò¡µˆþÊ(h—üe/ˆÖ{!Åyekm:Ò½òö¨$à}4Ž£azO„ˆóïè…Û‰lï¶½¼ï*«‹{ÃâqEÿÌó3 Jcë4÷—£@ V ­sᇼ2mêú–;q^XÕeä¦ûÕšªsìô+µöði iÜk>eÑK. w@Ä›á—#@ë½7JΫo _xëÑÍ]‡þWü„Œâît¿ßWüÙ¾$èõ›<ðGß=Ïêr*+‡¸.qø” Ä~V°ÓTïÆ¨B¯ ÐTW?2N·ö¬Ø]3N1ã.’ú ßš'êúY"PóÈçÞNeÈ|&W·­v* Tó;E¼C@ôìOc,Ç#l¶ÜkʸFxŽ ™IYŠ˜áÅûòßÁ•µþÙj^äùÆbaq)Èšša¼Øv²Go}ãDbÁ=ãð;(}MhùC”³}tV¬„¯Æ½âú¥SQwmlâjž÷:©~b]7t%jß»ý„Œ•'Xý:ÛŸðŸôÞqÕJ˜‚ÌÙ¼ÕPB슻šµÁ}`?°·ßñe»vvûøŸn–žï_†˜Â²¸ëD ’å ž[´‰Ùºž{>"bâ•Á“„³·{¿vÛj„œÛá|„]·ýOáVEÈÛó®+EìÇçÞž½á¡=QqñÈGˆ1,8UoHW~´³&d3ü.¬–ú¶è8Šõ<]‡—žEÙ“4~Ž)›QÙ¨ônfÌpDÊ}xÓ Dr‰Í¼¦} IÆ. ®"ºy ëò@÷¸ ½>]q\P»°zˆ¯ÖJ„'q;/;‹¢òW® ²DY’ñN)k¤]æ-DèPU¨2¼©‘Îë9Î'ú Rì?{:kä"E£(IÁਊOÎBÀ˜9U£z>FNÞ¹¤~.zðr;ý¤àv8;­¤7w/–%òz |ЄYCb® &ãŸ4z!Š$A}Ñ5eH˜ëkÙA$FŠ˜|ÎÛ‹@¾žñ)û^¢z¦ïÙUÑH}eýôe_1‚¿ß¼’± íö^ú¬Œèæ®Ãÿ+ゟ­÷ûÛ÷†þáõ‚E/)Æ…_úžÑVêù´¹¨hôÛ>!µ•Ñ»?=ß3!:ºá9Auå>)£zx5n>ú4èòÎX„8PÒ†¥i!:ÀhüÇÚ½UN¹°ÊfW ^”·£Ošû ɯ–Tìe뉋t¡áÖp%ö­_9ü¢N$–Ýš†¤ð &îÚ`¾'{fØŒSí#%e Pn{\OéÃf,W½š²¸!¸Ô>“¦"ßûÔf¡ƒHÒœw¦@ìëË~ÑÚ¡D7tóÀÊàeчÉL¼³ò“~¶ŽèOç#:›O Xô’b\ø¥yÃ~'JÙ=Cµ#ÿ7oãÅ 7>ÌzªÒŠ,ŒX ÚäÄ”þžˆÇª’÷ &¸þ`°‚ß(ÄgÊ*»K |úŒçyó|‘i±]qâê»pâX˜:­çä.ì]1>M!õr äž÷õè¹Áúªˆ1>º˜Ëï:|¿fS‹“öÄ'ùñ¯f T1enø•Hã1ùÔ÷¢¢Ã´E+íEÁš9¯ù´BèO"Yg‚ÂiV#¦Fªµ¢^Μ ÄHÚž T'ºy ëðÀ¿íb ÿt¿â{‚E/Ö}þIÿ€_Å˾ʷqÓUekÆøÛÔÙjÆXŸ£57Ç>@P¶d¤Ý›X$Gd¾éÇ Ú¤†µ÷K!T|¥AáCH^­¡qBé$$¹¦H>é[w¤J¯›"¬4`µ^•òW~&ì8AKUN•äš!~8Wf¡º ÒÌ#| j”QÍ=1,?ÝaBÛÑ„§ €ckLï$ÜY×÷œÃTKU؇ ×Dé 5!…ò|xØÌ{4dé8Ô>;½‰œGÒçÓk‚—èænh‹ƒ¿]?ð§ïüÌ>`Ýo¨³uE,ë¿óW0õáeч©7ƒ'~mý€ö†è›;öâ*gƶˆøÃJp=ÿX«1§s¿>² ¡"3v†ÊD ^¬xìèÑ(L7ðêÛsâw23€ÏFËKÕiˆ âÁÎaÂpç¹àÚÿ]ÎŽº;wÉDõéºÎNЂŸ~ºP1Q"+—³;¢v:eBøúK𶤌 5z‰ÄM:‰n ¨ºt¾[ùDdª>ª¾±¬×o­8‘ÊŽÒ™ 랯|„ p¡€û)kAíq]¤Â•Ù«´K÷rÝ<ÐÍÿ6ü§¾_D°èÓÉ|Agï+þ¸au™êøA¸Æ3xKò3ŠnùPµ 1r߬HuA‚öˆÏK‡€6ÀyëâËA]¹ÔëÔe¤F]³:|SžiìãeO!Zÿ•Ñ É‰ˆÕVIûJ]T6üÞ#ìðÌY&µq{Ñ´KÞ!tË ÊRÏm¸éø˜÷áNÄÎP»²ª˜ åüOÊÔB­à[qOà‚k JWM%œd«Pq#eºä}ñèu4¾ÕÛÆ(;?q‹ÓêeÅ-øºÿ‡è ‰nè:<ð?ºÑw8û·Ç ¬ó‹^RŒ ¿ô=£ 'ïÏ}3%O‹¢ßÅ£æ¾Ï”tyÄXŸ{x&Ñ áZ‡§½š<ÇÄNï¥Îzƒ° æÑiA½åØçsoDL¯r2艫kupr!Y㎡—'¬2)ñG!yî›%#óîÁGMBX¦ç Ä'&º"Dt´óÚ­77üñzÝ™W¬¶ ª®A°ÚûGdn!iü×)ëá¿{þî+óPðõåYƒò.f ›fšþÂc¼.txDCnš?ÑÍ]‡þÖ÷»û ý-OüCöÀwßêlüN°èÃÄñ?eOüÉ~D¡©N'¨Ö7áʯvò\µB©ÛûÆë€š“œ³zâ·Ä*‰LßÚþÓ…öчP7ÿµ˜ËM¤ˆ§pÝ]†’>ÓcµïPúÔõ¹ˆbâ¬ÃŒ¹Æ©"?mhÌ¡Š P÷ÅkÐUEá„ÁÏÇíFÚf/MQqlÚå³yÆ9QÙG»ObR7>Lxñi‘±#·!ùå¯8W#T»OýûDKäŠ×æ<•TBxêÎþ×F!Ú©‚p9ÂC³-lÜ ºy ëð³}3î¶ÿП®#úSÿþÏpκžègþf¹ð2BÖuŽô½ãÀuÅkj‘Ÿ«]ñZæ8\g*ËGÐ à1åó·]Ï·öyïC—\þ2Ø«l@>â|wñÌ<QÕؼ7 ©f÷7Ã8Ôˆ¸Ž½É»áß2*z;~Bö¶Áf^3ž^p9³^Å›½ÞhõÞ…€Gûx‹¹ åÊZ¯ŠrB¹çW^ìËDY¼èžâ{½ŸØ0ÆöeÖ­¼Þ …ÛÚÉ”£âÀ-Á£½ÀÙ ßÀqÑ{¼,³¹î}د.ëMtó@×å¿Ý—ì_tú¾!S¯ß}?ðŸÚ‡Œ•_XõbÙ'á—x DÖ2u¦Vò)µ¼‘ (_µ'zòÒ½ˆq™*:¸è:ÜsûÍNCx¿Ë£y¼§Àk}e…P'$sl]Ö´CCœÌ@åQ»5š•"x޽—¨‰³wñY€Ç‘¹ûûnÚ‚TwÅ[þ ÒíÍI¡Gˆ¸2xÌŒ¬TF­+Ù’³ÅóFí=_Ô°áù3µƒâ{&YÃ"¥rr{µGNB:÷ROYG¤Œœl:qÑAxÖ¿»C•FeqmŸrÑÍÿ=<ðß¶~€`„¼Œðq=áýeBî“ÜV"gÕ¿Ï×÷¡pôìK‘zûP©f2@¥j 2F[q]Z» ÔYó Šî;åéŠâo Õnz}+67ãü¦,Ÿ÷Ñ¥'¾¯ @PÒZ¾%kI^ñÐþ˜¸ø¼ ŠXìÀÒ!=>)uùà¥7U„®ûòmÝ%xÐFL}5Q™³¯½<~Úû»xâ v¨æÔd(‚ZxÂlÒ-ä;)Å<ø<>´£*JÊ¢ˆTâ’r$Øz…“#6M"ºy ëðÀ¿s)–ðO×üä»f?}?àŸZ'D°èÃÔó'ë˜<öK<2庪dŤLL ¬_‰`»ÇÜ´•áuîõy§Ïþ(U}6}sR¢¾i¼®ˆްè2¦Ÿ/"8&å³a–®L?Z7‡c;ü6ÖyŸ­ŸŠTMO—¥Ôl„¦-Ž“UFl/vÓш›n å•´áÛØ7[OFð¢ño¼¡ðEå¬õ‹·£0Yþnïz¤Ô†‹Jo€¦÷¢|µ¥ J’GäS+C‰[ Øº( Оޗ­~~ nòY·]ŽÁ/©oy;‰nè:<ð¿6_@°èÃË;ëÇ™¸ïl\ÀäÖõ :û~A'ã‚?zß°ðËÐ k&"ÿ¡¡hãjiÐŒÇg‹ °DaåG±iŸçàôž•:é'qkn’þÇÀ¸ µšºö]9œ]ÎòëD?GÆ¥—yï½Ï I©çh‘;‰Hb?u8*Ž‚´M~½ç„ èÛ°ûz§#-yCýJ²¬e޵’…ÛÄý„‘X8HSüñ„%U–Žö³6_…M:ýmªß¼¥¨Òéý8u&¨*Ó}wŒElÖó~WQ‰Ú> ü“¯ËÂ|Ò˜AþªD7tø·íêûûþÀßÚ¬ý=щ^ ½ÿê;&þW)G²#­Ï‰ˆ«Œz)·ð¼ýux˜õ‰Èç;ƒ¨ËµïF£0ÇA‘ÍØÎ鯨;¬BÆ, ³É¹*ð¨O‹«(›?áÎSÖóô`îæ}Wà»SPy|?’çp2_¬@öß5/m”9‘:ç” '‡‚ŒŠ>YrCñ¤B‡‚÷ñÈϘS%{(%{¯Ôq¤"#f‡ï¢{ˆ<øŠ#š‰DEÙOÅ ¸§Õ÷™Â׃ˆúä~.=¥{m©³¶Ý<ÐuxàŸÞ‡ügû޳ò+ÏüŒ—:ãßõò2BVÿ=Á™ý7«^¬|ÆÚÿw¶¿Q'û´ðCÿ_â‡]+Žº ¯¯gDZ¾E@Pº‹«îBP7ÌÛÿI3£u½uxñä{¨ È|Ìÿp%2}nÇ.{D F¥áÒó—P™nõÊÆS EW_Gºxž@ØŠkg\ÞÍA"û·Û&ûw!Ñ×´Ë®z—íÅIYdÙär{8Â}ÌÍ^#£h(Y5õÃÚ }Šx×¾[ã$Œ€OTù›§ï#ÌyÌËËkF–—Á¹¸ÿt$\¾z^bÅ%ºçÀ-Öˆ²‚6§\§#ÿ‹¸Z¦’ â]—©-*—oÕÆ'©}î!±7ïÆÝ}îÝ<Ðux «ÍH±„ú}ÿÝWäoÇ ¬ã?â_í[^9º(Þ×õ,Š®›‡<”Î@òRÕvu|ß{õÁbaDÖ¥ [ï€S7ðÃm»«GÔÓ/ÁM­!ñðY=ÐúÏ=ši©ð½ã¹{ãx•‰÷òƒ%ˆðI¹t ¡hˆ×ÀþÜð»kË{Éæ¢ýö]¿st hVïŸ %ÜýÞÆo›¨qítÇ7„¾ ›ÿA"ƒ¼ÿÄjõJ JÛ©ÜpE[,¸o1u Å*RúÊÃ;{¸Èþi9p±¸TèõE‡èæ®ËR,aW³~•ú´àíwçýþv3&îYõb݇™`„RŒƒ_Ú·œMpträX”ºTïâ`¿}£Îyq5*sئ<]ƒÍüŸå‘ðÉ}ÿeÿ®9  Ió7F”é¬#%ùÚ >@î°M‘2OòQêÛ1H¨|ÈSY_‡äIeaY‡ÕÌwÒF{ùJx(¬;õéÅ)øÅ~Y¾îË&¤òm¹~r·!²O‹?Ü·¡¡SË·«Ú¢jɰ•{Œv"ú —¦vÂ#xÔLŽÜ,³Éjjµ EkìµyŠ6›Z.y³‡ieæñôà%ºy࿃XqÏÊ ]œ(#dâ[€EŸÎü ;ùŸüîyñ´€µn.š¨¼Y¬»$w¢{ñxœ+÷@±«öê}o„‘a3=šR?áÃíû ¯ký®ý‡¿ÊpÕö Ÿ%J¥ëq)ìRe'Rn\ð<ä‚„›z—ë†'!âågã{îëàrîÙµº%È{ëøEp].<ýn§‹Í\$­CÔÑ.Õ_Qs+))¢<{Þ{Šò2/îÜõØ·/&æTÄ7ø®Œ[w þQú–~ZÌŽ2ËyÐFówY"1Òùæ™—w‘Üûêü}üˆ˜;M9èè8½Rax{ÒF;ìYä|IÞ£h½”:W½ïÅåðà¬sçzÙ yïÈdŸzêÃö_7MDæâðä·sG¢¸÷¼uŠpéy„Op<‰cR¼Ïm„[½>”šôYräéh¢›þ{xàßöv¯+þžjÓ\'P.6 _ê”%*4O^U4U¥ó‡v#÷ª‘À•!{á§¹ãÂþ#àí©R³q•hÚcÆ å"æâ[?]—„¸ë)ÅMRELpÿiÜ‹'£øðé:à]Ž>vT¼4®„×êl”šŠa¾‚ÌÚ+ŒÚxRßæ ‚ÓC^±{G 󭃩«9RîS­ˆ O ²ïÎË#öüIù¶LéÄÜ\–¼Q£Ëx‹Î†!æÜÑ䨻o=Á¯,Kâ9ÑÍ]—ºZÿß½oy~Â:Î~ ¶(‘‰O‰â„Wµ^ı„ÏÎ:õF`qþ‡ ÛO^œ\|ÞäBO+ðÕWØ"CTùD´ÖRdØ ñå— Z¼†ìµ\Ðêß·êÇ ÷tÛí³íßiÊ_…àËap7Ø~,Òbc"çf¥ äUá¥S¤ô|ú¾x„Ò¥¾ÈÍ™h°òz®*_Téΰ„Ò¹±¡Q«dÿå½ë„a!ȉRã¬ù;«“ÎØÍBäq‰à“ ôç%ºy ›ˆÿ"èJß9­9³á#Ç,Ê ^2Ç©¾—œ»“Ä¿‰[äîƒÆ9g<÷ÃÄÇZÚõ++ƒÿ»›ç×ÁÍíkªN—I"Rµß6±¥zHXžÌU±|B÷ö–_Îq!.6§EB!·4ÙjÕ2¸?ž¥¦½ú4n9|œuÙF žÚ}}ÒoõG¸Ò­Þ߆ ÄÍö󚻇M{ÜÈõi32mom{äQ‡²‚ƒžÃ+ªPéè.õÈj?²ÎÓfÖ¬möpó7=­Azrt°·3ÑÍ]‡þ¯ø ÿSû–u¶N¹3û@ª9ü«uÅÕR7B |‘=º12[gâ}FFÏó‡2;AŽ y„©ÍûT²enO¹ø¦ðn\8{ä{O¤ì¾¾ˆQ´°w#‹²Ì_(tqÿ'D½ ¶žÏsÉo•_ŒЍc¢ýòú#(AkýQ P¿qUœŒN@±'Ç)÷©‡á¶WÛ’oœR®Åüü^ ‘º….™·ÄlÔð›¨}!öÊ&F#Âú³Í=öa¨'~+<½¡ú7¤¯U¾B™¸Êôà½D7ü÷ðÀ‰à§ëû»ÊwͤÚëÓ¿ÃÅ'\ö¿|%èË7ŠGéËåòy#]0>M{º ¢Í¤¤û)ë þŒ§Qƒa2h*ÙŽZªî¸R?úžúv„úÓJ ¬lqûÍ1ÓµÔãH»>{ºÙŽqœóįªo‚Tä—^‡‹Ž¥oå$=ÊïP“îæï†ÅûçŠ" :Ø`à³ýHxª¡m|©2”È9ý ~5öëŽàëÂØ‹ÈÌÝ3aBvͽٶ ÉÛ+.á8 ï{ w [”±ü÷*b@Í•?=zå)¤dÞÍêÿî¼D'…j¯­|éš>^ùðŸùq\Š´c^/¸] Ÿ%çÙÜY€Äª\ÚôUKºkÀæ5_ûâÖâmæfHÏ~oÕÛÜéYÜ3¸{ÊØÁ±Iv»5>!¢|Ö®/s€‹Æ¦žór"l§zQ¦ÀR„_y—ö6å>üg”º®a냬žgìtÔÝ‘~¦^ÞVàh¹ aÓ8e2ôÓëôQ(Í/ŠZr3Iú|×{,„‚Ã+å9tŽ"rïNÅkïè5ÅKtó@×à©öíð¯×üKöÀO×ý.ü)î;³þÉuD÷RF¼|syòÊ*²ã°ÅÀÆqlÿḩ+Q¥‰”á©(Bg‘¼÷˜¸¤="KlÓ eÖÀ«tá}§5lˆv×’?åUˆH»¾‚Ž "|Û!³÷eCp¶Ï@6kÇ—f·¿°nà~=-V¨M„ÄAå.ìa'ÿÜGþ„8b‰¹œy…<¤|©à[ã]é;§UƒžnG€ÊwKp†(”¡LEn–½\N¾~õ8փѫ¢ îªùHæáÑœï‚P1§±n&hõgÕ&¬^ê´,áœêGÈH©5\ ØzåRíÇOÈ{çš}× ¯½´zçnÜx'³Šº] .‡EŸ< ›‚ÔÃ%C‹>ﬢY9iäø@%S,èKo”~àtXUªƒXµ†¥5ÂGñØëÁÖ"ÐXe’ˆü+kô?ï”nC\ì÷…Sd ×!¢›ºyà?4.èô}Ã_µ˜¸g僮4.([Þ+£¤%·•î©&–!li°7ÇT—ñŠxžâFÌÄ©‡^ »†Ô‹ÕzJ>EJ¿"†[.!@`*ßÂ÷sàMã~¯ö4…O=Fð ëPÿr\1·Â7MJGÏLz3¤·¢œÝ´×9ý¾Ò"ÁMøqæÆÐ3¥È:>âÒôùT$?®ß·ãöNïÕÿè.м{˜DLźñ}ü†,ADÌÓÇW£ï¡ì‘¹rÈ·,ĦMr›po,ÑÍ]‡¤Ú·Ãÿøü+λÊ÷ ~×^`â™ÉL}:[_ÈËYí”?±òäüú§YëRs}ƒ“U/—MΗtPØ2iÒ4Ð\Üž[cƒàÙæ¿Ý½‘I½ f/˜ÈÙA×feŸEüìWV¡½O".Ѓ°™—Ï„‘Çí=v!òáŽeÙŠð¤(nã‰J@j•UÿW§w£tìj›H~}Ä=}Mg>â‡äfÓÄo""úÅ)ªÅ38ïºÐkÔøõH\/²tͱ›(‹yÏ1jDÜI6ßæ-¹±ëf7˜=[Œ¤ÒZóm pÆVëU⛺.t¿_Ð^Ÿ®ø~AãBåg |([]È3§îŠÜ¦/{å—„fÛωÇ̓>ÏWXU ȯÁ÷BÚb„ú¿Ì êé”ëy‡>9‰D|;¶A½S7°{ØÓ©ë Æ¡`ÇÖP¥©üaFÌ?ͱáÂæŽH`‹q>±Ð ÑýíǹÄÁëyˆ^ÈÈ]HØ>z˜ÔM¤Ýé¡ßWû¨ÛIN¥Àç`ÚÒœ…(žR,^ƒ°S=œü!sœ*î=ÕÃõƒÓ&¨ —/ÑÍ]ƒº×¶×çŸ^güÙÀòŽF´Ùïn2õë6dÙÎj ~»qe¼ñ*ÕS´Eã*;œ&öxSÞOÔ!ªùeë“&RtbË!¤ôä̺èø‰QÖ…TõGâäµRÛ ‘2ìå¦Ý¼ %Ò¼Üùn÷”ˆzHçäÊ´8¡'så)¢NÈ—á׳_ |7¯+Ô‹,C잉BÙAH"£N½ð7.î¾Ì?ö**û9ÓÀn†Ðiɣ”Ñ$Ç7c¶ê`øèuÈtšÆ?T‘sE÷ÎèZf\÷p‘쟎h%éYn<âHf[}[zÜf„š…,_sË%Ÿç/“‘B©Ñ̉W¿¼@õ®¾üÛ"?!SþNÊ‚k¯4hÛ‘F5D‰p¬¼ÐýžQWâ÷R,áŸ~Çäßîï×ò2B&0y•åñK<J ÊÜùüNî½›|ꄇV»NE¬{@¯G¼õwõà{\?Yón»7|ÒDêU…‘µ¾£µ³ÿ’‚ÛNH]rš[½L>’®ÏnŒ6Âíç”(»z 8uü°Œõ§‘'Áù"íLÄ.Ù^{êd1çŠFÌ” @²éLÙ³ì‡Qy+}U¢ÃT«àNé‰äý¾ò¾ƒjý€ÙªUWq7@Óá1¹©5ÊWØ33Ï ÒIx/üôÎMŠ¹Æ‹¥^[¸o¾'ºy ëðÀ?=.`Åýßúÿ­ý ™¸gêõ»ëXùâ]G44}/ÕD…÷êÖiîC”‡ª¦âöw¨\º´¿úä§pˆ;°ÿƒÙ¸õãø”þÎ I«ƒæ\KYˆõiîÑÂÙü!)xÎ4¤¨¢"çØž²]v+Çoñ"àº>ü§\t5$‰/¥WpABL¿Ýï&˜Ã{Z –¸Ÿuï´xþ+‘Ù3#c•Œ$üz· !K¼Ä&Ü>T*·ÕeyäHõö™½´ÁK%œf ÀRl^á`1ö_+q'¬Šèæÿø/ñ~÷=#^½ºèzÂ?Ú—¬dÙçÜFþ1(©?‘÷`ªV®šìb,«Û—‚Ï#šâT²ˆ³q;U=ñ!yÏÛ \QD…Fõ~½^ Ѽu ¦Z倦}2›"qv˃^û"Âú±T×ãFŽt¤9âêþø¤ùÏ&"zŸPŊɈؙucä=IJ íˆÝµQ·¦ûŸ¹v)Õo2æ ®!í ; üq꣄åE(ëÛ¿wfc ‚ÏI«X{5–T1Ùrˆ¢Üœ[Z¿‡èæÿø·Ç ÿÔwÍþSï!u¶îè?ùÞqÅÅÛs×MÞƒ"Í^“6+®EÌ0ÿ§ß>>DAâº>§]qý@s.焀Ǹ]æ0˜'i"JØÏ]:5y}5 Œ—ìmïŒ)ÓqU]´n\ò'„?;zò¡[’5“Ó´f9#E¯Q“Í¥"u+sŠzÃÕnCT`V röûç/ràÓ³or7Nm ¯•3@Lµ˜cÚÆÄ_?:?*ÍÁI˜±“S!s†ej¦æ!õŽà™qP‹.–$êù"'<5b$Êoí;÷ð6Rü7E=̆¤}wý„äÉ÷TÆšÐk€—èæ®Áÿ¿¿Sú·¼òÍ´ðÆÏö #XôaâøŸ7üÑ|¤Zݬ9Þ¸ž6t·¤9hóêõB-@s?3ýí½4’?Ü #ºy ëðÀÿÚ¸€`„¼,zu•qÁ?á'¬Îñ6¸„¹OÃ\j 0&чýñn$e:IÉôÏ@Øà/çrŸ Áv´íûm²ˆ 0¹Á6$ÅŠŽ"Âh¦Ñ«CŸpÓôý ^¶"3ïlúÕ‰’äø}ÍŒÆ{.ðØ&<@>KUb &U!}‹Ñ¾ž=à?ýÛé]= töE`¿,’z?å/õ²Fê¦q'îê|A\düíaNÀ¥`g'äP)e¦›¼D‰±/KŸ« Ö6òø1¾cpM¹5èÊ“D7tjß»îÿtÑß®ø§ß/ü'×ÕºOòà¤=AžUÃÒ¸IÕ )Œ+‹ÕñDÀ¨¼‹¾ÎGBØñ¬DŒÀ¥o¡»“©æ04ùÞR„< þP0¹§hWfZe#:-i¸ÒŽ,ø»å,{»b/\û •2Xo«XùÓ= Úö›ra;jÞh€ô÷ѯ+§ø¢”Ÿý˜¿¶nN NͺÄ»—Sž®yî‚0™ 5¿ëgP^ìÅû°Òeöc®°åíh¤¼èè}¸yx¹Ç‘zEÄ–“=5›èæ®Ãÿ«û,zýÿÚ 3ûÿŸ´ò†\œê¹ìjŽ–‹ŽvB…Ýʑ&RĶYk Â?Îõjø2 ‰W2ö‡}AÂÔ q‡´cN¼û©Ç Áón.>¦<µì£^†Á³xü5®ºp¹hvíEIÃî5 ¬Be¸ïæÃ%rTI9åä#nV+o¼@~Ñô­ƒú}ƒ¯ž|\öÄ%¸u¢¿~àÖð)Vç=gä„ÀRÛÜ É(Ê/{¯zçb —~ïŒ;§Ù©Ü>…ெ6ž@tó@×á©öí°ÛOÈ¢OWôÖ]Ûº-yÌ)äIç.NÚ‚òº{©é£® Pò½×ìçzH ‹sÝÛÑÏ6f's  xÔQžmQH°Úœ³ù&RŽsÚß\ƒ°—f?ZsáÛ#8v½¬œ%Ù£rß!äÉ·a«¦À;öÑ.ÍÄÈ-”00EÈb6³£¥ˆšøÈ³,” ZÔ‰èbžmȹ÷tÙÍ}ñrêW ÏeÙ}ìÇ£ò¬ÐY¶¼~µ{}íõk~$I§?z‹¸¥ ÊF—‰nè:<ðo¯b ÿK×wºÒ¯¾_ð;~Âò+bÚ#Eà¹ÉâyÎõ „+?±\1o!bW_Ùä¾Y açKÓ¢eg!vÊ+“ëGDps¹š“Ó˜[ˆúÛÿ™ürd(,ˆm–ø…X"uØg¥ä[çà—³¦¿\Äkô†úÀú¸ô2;ôÁÌWkt¯=,9Ó.ÓŠÝSPÎï7&fÝ9äkQçî=?ñ>«Fט٢h™ã¾1$Þ+¶7XÍ¢nA™¥›ñŽ8ÄÉÐÆ;®E fLâé÷'á•cƒ—‚\öø|“‹À—®&š±£¢—#7¯¡‘W^|í‡õºKÙMðàs7/?V–E¯-H&ºy ëðÀ¿m÷ÿ.uÆÿö|ÀÏüL}:óüІÇR'òÚ ¡Öÿ°ÇÌ}Ý­x7ÿË ¸Díöyùa.‚ù$Ø÷¹FRŽ˜.ÇõIÄ¿½.¸ÇSOã³et¢\ƒsUEã}… Hì_zo¿Ì0¸ËîÔÎQV@Ðã·¢î²HðK唺viãOOºšk‚õ½ªÊÈZøéªÝò7¨4PÞx:Y¹/ˆÛDN­ï’ôÏw¨¹yÕAŽUÈ3oÃþ¥ëá{rÚc;¯£¦çÁT³·H:õËÐ!ôà%ºyà_âeô6±6¶2TnÄŒÕr—ÝÄŠÁ=éø™w–È3UZ"?qq›ãEÌ⤷ÜáX8Sš™mò°åzÓ 3I¦“Ö4KgJ1£‘‡­iè'-išNZÓ(,]ÓR1K×´¦¡Ÿ´¤i:iM£ºf3yØš†~Ò’¦é¤5Í¢•+˜ÑÈÃÖ4ô“–4M'使ÆÁßÂ)¬:‡Îe„2,¡l'ñ;K'Ë¢“sfHa†{›C9‚%l¾ÎÔƒæù±èÒYÃÝ4Ïçrk¤ùÑ<ßÞÜgy®Pµp]#Í#KMc]–.Í#Z&ü}ÅšGâhÁ½›zÒ<¢z†Èš'_óš Ù4O6N™z3u2Še_yyš½z>WKh­éqcç¯ç£DŠ ¿AÓXD‰” IrNÖSÈÂÀ4=J£>¾”W|~>‰Á£phK…úuÉ€Œð»”Ř'Üo (²&ž›JÉðeY(%b.£>RBñ.%Ë5!k†TÎzJXÀ1¿å ”° ÜÑÅ.P¨r}\³ޤP±i·å3…*½ÐIƒ·?…:åíͰ»â”°¤swJÖXRÂbdCTØo“õbàœ9„¼x¸[xiK}¨? 86Dxh⽩=wLºqKbÈaó‰C]íÇ_¿R²@ø»R¡ÖÉÃã(óÅf„O/ü*âNôðwÇMJZ$~É©l¬»HôÚ9Y—è5¹qi¶à|Ûõ‰ºÇe7Ú[=õN?#[5lÊó# Õ1xÀÜàÇøQyëë9}ÜEÒÖŽÕ¿HP´E–hæKdö•˜É>x‡¤‰ºæÖ~×ÇH*eê{LßvLö}/Ž‚ ÑWXìe§¢ð-ùÎAïEÜøR¶Â¤ªÖúØGD |D‰Ü^]øÁc %ò€ÅÚOP"÷ªSO8^¦D蔜ã0N‰PŸ¼¸±Ú†±qõ¨vJÄ:óþ^'(N{GÊÈN¥DØ:7ð^\l÷²–qAz‰×O‹wÃí¤…fÕé§& ¼ÿíKJ6FBnÊæUJ‡oA)Úï˜skÅàVÊÙ9Ôýb´ªtVQ¼oKcÀ4­YËΰ©ìšÌ3l;^Y>â½볌˜ÚN¨ÕÔ²4Ð4×m‰Äµ ®ßmâ{‹‰ËÊ´©öÚÕë ŽÝÄŒ%vŽ#²mf´"¶æÐþ¦a››Ü¬¾bªšâÊnK®Û’ë¶äº-¹nK®Û’ë¶ä~Å’ëÑâ•£³æïn=ɽè±Xí²/&zGÌÍ937ÑÞWôë3ÃÀúY§ÄŒ÷3Òo‘÷Rm÷c°·Æûq#d©ddíŸ×å—_©Ë&,ÃÞâG§K¡{o0~¼ŒßpÆoã7”ñãgü†0~ƒ¿AŒß@ÆñëßæÇÑü̦ç°3IÆsz2žÓ‹¡Y?ÆsxÏéÃxNoÆs†2žÃE4Û‰|Íùþÿs©ÿ™³ŽZ®(mؼ¯§ö0$ØÍ¥ÜzmŒâÏÊ«µÎí‚sÿ‰—<³l¯7>Zð$‚}¯å¢€˜F¿>V\æK©©;Âi‡”AÙGMCŠÉÑ §Üû#òëøX»þ’ã(úd,Ú®^†`SM-‡+nÈ`4Åmæ[ˆÔLñž¼X±·ÏTÂ1âLXʾ÷H{¨?AzÛ\P/™¿rBJ×òÔúwCí ö¯Vþ ª¯]ÁÛx^û"÷TÊÿÓþg¦ùÏó¯ûž{™›YZ™YèEÆÊ~ªªs(V8g«Ý¡×Ÿˆö“Tÿ÷ÀU¦´û=üP–b~;Xy3h«}ævDÉ¥¨§~£×À¹ß`‰/#v#ØõÑÒÚ” Ž;³÷½™'b…¾ZDCX^Ï1—W©#e™‘ȶ‘wráš[㙫ˆ‘ïÄÖ0 AJô¯{€„ˆÜ…&˼gÙ°µNȘû(mðœÅ˜vÖö޶òÕÊw|¾ŽˆY¶ŸÝ(Gú‚ juÞ€zÀ„¶rsJßÂþZÈ ÔI¿Øê¬ êòÃóÏTÃSC€#{Èÿø¦1]\#¿u#ŠQ«o÷L½†ò~kúêy¿M^ü„ýn=”ØëÖ9Q©pj ˆ‰?b…àÀ{Ö,{B"‹ïéðYÁˆßoH¯Œ„K«Þ˜‘ˉ”Å•+â$ÜHDyªÆCԨLJ#èà¹ëlã‘zíøxo[ ³š-> ›)ó×@ÀÕ„úCÃ7"ä™ÀÅ«sqj ××uéHWÚ¡°¿b¨[Üçkï:‚2ñµ#s¿¢n]í¹GaÖˆ ô>É‘l ¯¬¡ úîFT7¢º ¢VÈúÈ<$[læç’XÍR$¤^1ifJ® â&aáÜ·ð6uø»…S—XIöQ3j£RN v|ßl×^+¨¢n1EŠR”‡w5R.:–M„¨‘_MLžÚ#hùSÛK×&"!ª_Ö‹õÉ>J׳G ¸̹Ç3|mwT7"ï[ÚÌY¦§17Åé”á&¤+LÖ~¿ÑÔýêŽ «œPúq¹‰Äí{¨›ÖSÝl¨«ú½:Œ ž¦ãA7¢º¢˜C+z«î˘:è÷­ùG?¦O'ð2†Ñ?‹C?ØúW¥‰j §=í oÍ?úñà9£a–eY–‡iµ£¦4¬ÿ¡ü=xñzBø…6åÑ™?à÷ïÌ1÷OÑÌx?sô¶Èû‰#µ5Þ|­ñ~ìxêö tÕ.¡üýbû#¨ðMû4þ…2’N.|~ï`>J¹¾ØÉ®€ãëä÷5óÒñeo,BOšo—r-@Ì:GU¾¯oñåÍ”}r—RÿäF¤Rí]'*í‘G´£ Ñí«®~±¶Á¹l9hyú‰;"ì€úêb'd NË;BS@Ø€½Q² ÖÈ¿ísSñc>¢DÍ?Ùì€[+ž¾Sª6@\Ù`‰CG'£lž•ÁÃG/p·æÌµ\kĘûV øÂoéõ†Ü®Dw—Ð¥º„ÿȪxR,rg‘?*i‹üî1FRÑTÙKìQzå…–ÿmp<êm*°3¡½Uöï•«B¨[Bq1W‹»GE!ÒÛ•*"=^õíf¤–;-˜Á¥ˆèÇvT³‘´na£h;ûÚŒYóa·,2vä_G¦wÈ7«B'„íY|/²p> –OV±5Q–£Ïz-FÖä ÓxO"þÍký6a”Õõ½Zä·÷ i¡ ^:ˆÉØ;@*¥¾ §·]úÿºL7¢þ‹UÄ©Âëºw¦ θ„”i4_YÁZ” b»lê°޽ÏnöwVD(ŒgŒJF¨ñ—d/½3ˆU-|ÒÓÑ“©¯Ê+Dêˆg·æÚ¿FßzB»º16›\y}6#töª#OÍ@mæå­Ãf#,þ6³n…ÙðNI„ðÌ èP8$ ]u5¢÷NWËÕžìKCÂ&ÚÙ‚¦·<¯ê¼ÊŸN8 l•Š&\;uñæ>;ïå?EÐÞñ¢¶IWºÕ¨®‚¨]´ßå­Guß>Jª> YýHPêù(}çð%°à ×zëò¡ž¸Æ.€ÐK¡o_—­A,GÈL'•cˆRTâ>[^…Ô©ožŠ´Þ¾rÛ]E#çfU©UŽð×ò¼Âñ íßùpÂÒ÷oâ!†[2#3Ês·"|hÑ™‡ƒ¢ ýË«o"êkhÏžJË‘õñþÝMGO á+5&ÔI å;Õõ´3åp?îÖ’+˼›Ç^sjômø'pü|7¢º¢~Õ@?æcÊàD~i¡½,¯Jb§—üð Á»Ü ¹{y}B.{ ’øåA{[™Ò‹ó_TÉ¡Tw’û‹«[¬µ`0–ßGï{¹üPåïùî7ÏÜYç¾ÿÏžÅ.ßk¦ƒ JGHJöFð¢þLb7N–ÝàÁÄ:‹¿]-$¡ûGÏÍûàswí!#”^¶‹ u]‰`•)|ó¸®"o„í5µòï‘ÁIÓ=˜ÉÝ¡O4¦¬!~Á‘ñ[«™Ž‚Ÿ¬˜cÆûÙŠ´y?YñÕïÇ+‘Zãýx…L·#£«vi×±WÜ‹ªÒJjª;¯Êiì'„’-RËØá ÿÓcÖd"Øaá´†Gê™éRæðQÄ®S(íí‚„þC¢¶T#åÎA‘=N¤‘¹*åò©ÛʈR)ÚÛX‹ K¹K¾k."aQjO…IÓìñâÉÁÔÜÔ»QÓ7( AT6û;…Èûh|óìÉxDìæã©’\†[K{¯ür0ÂS¿7Y¶å*„ÎîàÃý-ÕŠƒÏŸÍcÁá<.„­Ý'W¶¼žèîÒºT—öQU=ñD®Ãú#å{& G’XȦ·7(]#úêýk8ËĪe ØÏµ®÷ëÕÙx|˜¼0bí±ËðAÈžÒí“¶!Um€ À3i¤²ÈttÍ@Ôá3'ÏUöFÐé5ÙeÉ!H8àhZá‹àÐw±Æ)ãp³JÈtƒ>‚yÞò­Z¿ùË«ó’U34ÚÉ«Ï%d*.°IwFøÃâGµQa{Cdû<<ê1SC¨‰æ§ó>ª¨!ÜbÙbãË_»Õ¨.‚¨刞·]p×pû´m3"‘J¼<»¯*†o„Ç9\ë;äû|´¿þ]8?¨5GzÍó7BXcjÎú}Ä/8B~ëG¦£á'¯2ãýìÕ»y?yµ­5Þ_¹j‰÷“Wº!]´K¤°/íç¹l3…{རÁœ ¸[.}Â¥„ÏÒ§8Ý6Æ…u¯Ròîr ¼ÀKg…íÄÞó!NH|FÔøÑsVÖ² líê¤NÎFé†Ù³‡Ì‘ÃMíÍšñ~HPó?¶IZbÊŽ”€&-6Q´t#…Q:0x\Ž=rÒPØïo•â4{ÿe¼Q³AåWðØñ â§OZ;O/‘—Îô¿ä™Ø‚¨rµ©c+çÙàf”Óã[t@Û /Pz4 éV}ÌÎ܈è²U3MÞ‡ŒWYªò;gãÑä™Fì9(=öÅúSèQ¼Íœ)›ë¤€Çïj,ŠËñÞ9OjΤ1x>i–™Ëê\ ûèËjB(ü3î¨|žŒ·‚WD6XXãʆqƒ»Wtt#ª« j@rAÙëùý(CR>„çË%vxõ§ôŒº9^qyì³0²ìŽ"ž‡¦ù­uD\ص‡fV#É~Á'L+kAT]Ê©3É^#›ÙWP£Ä´m4DÖevƒxO¤-^ï¬hø·tJ?O]sÏT(º‡¤Q<‰€=Þ»½] ¹e^í MªRÇGÃgXãõNï…¶ó(½ÆnxýÀy(EèPãÉÝ«®SØ–ô×4™øõ^ .â‰ÝˆêFTAÔ •> n.}BQ~判^n8f˧½”Þ~û}’ VÃ>EÞÁ'u "êîxÌÑF|ÿı=–îG’oÒÇäè³-ˆºk4`?òzô™1aáBÐöÈiGˆCö[U§o'¦X²_ùá%d«zçñ{ƒ+C¾˜Ù¡ÒwOØác¨·ë½Ï1s9^×-Ôµæï‡Ï9—xm7GŸJ•jSúŒø66¦eOv—³·‡ªã³°ö„qw#ªk!êWt”Ý«áÛ‡’ªåö³láa<\k¹ï~¤Ý©´»L²Óýœò§fÕµß èY®²Z¢ì%1}M%•ÔìõŽçáQ¢§½iØ ¤…Dn´–)ê4OóGTzò]žX®çd89~…ëÌ¥ûþ(¯åÅ ÎÏGɬO£8üáa£bì³|Ò(¶ïÉÊtš×ÅÔOVÉÏO—W–ë?t|°MœÖ_úDäŸåûñ‰ Ö—³P"#¦8æ&ì¨ñ™yOò¢¢v(óеEÉ&SÉ*¡qp´"ÓÿìGø[­Ô;„@AgÏ^$5:Ãü4?!÷Uw¦m}ŒÄÕ#äÎM.DâàçÖ‡{NµÚù17ßdøxÓxWBô…Ëæ>àwNUç é¤^˜°ö¨=ü”2"&ê'#(ué¬Þ–öu‹Y“Ü€Œ;ÚÓtÙî!¼.míõ5¨ÜY±œLî7ÈæÍ™¼±l£¿Yß!j™>÷<‰î.½Kuéÿ—eæ¸lÒ5Ô48»œ~ºQ–*ž§ïÑ!–+ßÓ Ž‹Ì¥Bteá¯vÙWºö>ÈsÅÎA_üsW΄”Þ2gϪEâºSÏs$Æ ‘‡÷Mа} ÞŽ<£¹9 >§ v2Côc£ú¬YðÓx&ï~ÈivOë·ÄyÀO†o°JùSæØüh†`?ÃۅƸɩt_»W&¨kÄf³MTAeÆžâ#‡+ñÀöE U ±sæ§~­ CÈ€¬~>w#ªQ]Qµi fÇœp¿dëOɈ:Ç}rçTNœ6ö™ïg\ßýÁ^cr#ü3ÜkÎ]ôF€ÙÈ!bšÅˆÙSÑ»Ïέˆ˜ééPºF‰©'h¯S‘èé9ªxõD®Š¹¼IùüŸ­¿.SèÜ“%­ €ð~3Ú7ÙBæ "‘ÚË}†Þˆ{(Êã2jä@8‡w¡—Åd P‰Œ7BdÊu“okz¡öÓá¡uqkðlQXß›%3‘<‰à®šTƒ°¤›Õ½gu#ªQ]Q)Sƒlª­p?¿!ÂsW¢‡M±•Q'û® ›V¾µ ×w­UV«Ó ¶= â°Eîø£‡³ýµÛ¥,yDˆÇˆko{ŽÄ4º,v9$z\½ž‘UƒÈ•|½ë"ìáOµu~£ûÑ»æûÏØÿ†«‰¯Uô‘Ñ(øÀSö2ü¹ú$&¾CQâËóûú/AXcàÑåÕ¹Oðz?D¦fÅ[{Fíû©®/ÏâÙ|ÞI³ yüÁ-——#,aÊìCžî݈êZˆú³-ñjBÙ_ô(ã\ä†ÇQø5MÇèkBi‡ím“O”Åܼl7ùýÍŠŠ”¿@E´:o¿¾Ù=ʨ¥#“äz@iZ¥™Ä×"Šâ‡ÒÜû_:u\âªyv"ãØ={nïIö¤DS¦\~isîž_¨­yÅÐ|ß +vS4¬‰Å}ÒŸuZ«C>û¬ŒyþãüL1~K?â!°™6ç/nVÍù‹›AsþâfËœ¿¸ 0çonNÛí!ºH—Ha¿»eÏ"Û: ÷ñ³¯ÒÒà^¿ê ‰_ñÙn»ã—Ç68¿ó±]ùÖç ¾\5`6ÇTÄæ­¿5ê"O.+IeËo™Û(³Xi°ømnÖÝUWD¼Á¢·å‘8åàwɽÜX¨ö4žü>wP«dZ¨àò¬}ù¤ñ´/ß;NÔ½‹nØ8~^nZó*½×5<˜Æãwáõa|œÛoþ oNo¡”ôãxº16Hƒì"íf¯­%º»Ä.Õ%þFTß‘çdϬ£ðž þlbI»Â§n§p®^?ùnÎ5.|]òñ "–ퟄ„Io“ ç"2¬öÖ'®-ˆªT>í·ˆ:·¶ÚžW?gƒøÆÐåßTípóÌÔxÉbÄn\!1b'n³©+ ŽY‚çÎþžYû. â<÷ž¼6øÐ¿ß3ÉIxæ·'íŒÅ:ÔWhVš\|×<Ÿ.¤¡pHÏ<Ø{Ê'Êð1Ö6¦Ó=ñî¶jÌvé*|$@©šDéFT7¢º¢œ¾•=}Xe¨@ü6e¼2#?P¥Çí‹)&#åa?àÓ¡]‚ÓYí¾nXàKÄk½ÒK’EâÑ·lo/¶®hùôâaÿ\w䉸O:,ñ®ï˘‚[2*=®bo±½°™7{7|‘ómܶž@•´¦ºœE4‰ îµ~^jxm'®yÒŽ†ÏI²é:='⛘Èq'YJÏ Vã…‡| îí}]Iq…° ìÿå|9>ºÅŒÊ3žØ¨nDuD Vy§¡weøÚ~{w-\…·}Îåì-¹BéÃs½°þ\<ìE¾úŒõcC{ª«Kœ/â ïÍ~®‚DÇÁ‰ª•|­+Z¾òmœ—¾y{î.o¼â„x‡È½ËËöãöq¾ý×Ô#mÒ°GF³ã¶ç÷ˆ¯ðJîê9½ýÇQËBuý«-¥Ç§W®y3¥Õ¢z¥¦Ã­jpèÜQ=^ÿñ…áÑïóTû|å¨ðWÊ;êÞu¦~¨6o<¼-ø2Öºí!©G‘^«=mTi§N†óûù9KÒþ(¯e¦ò‡6­BéÌsùÀmïX“—ˆAúù%o§÷Ïý.¯ßr¦DÚïJ¥èÞ:Ä¿Áë’7ZŒ_ºk?ˆÄŒÙu—¢\UN“øºê—3œò{§ºn’þ³|ÿÊ×îÚ8rþè#wmʸݗí:ѧóïÖñènÕ4–´´ÖÖÖµ´d°0[ësZâqëZ)kÒ‘Br}ïo,w¹Lš\ÑÀrƒƒLÖÁe¶E]\Üz‘®Ãw8®X Ò|½©^è½ÆžfJé¡G´~᎞zÏÂÎÀ-½G¡÷P‚ŒóQDsï"Ø\·Äx¢¹·ÂÁLÓ‹·7#N–8ôgÑËT†qmhs^!ò§Å({zï(Ë"——!—!wãÞ¢™kèùböºtÇ’¿ DkÏ<ô7ãó·yö0Ƴ‡3BºŒ1äo$ã|ã|4#oc221â2u6d<^þëeάƒÕŒ{mõĵ˜‘o!Yô>Ñ–EÖ8†,áÈÏй­,ú'¹O²ÈeÈé ^ÄúOdÈg‘'AþœYäI2äIt oCžCž4‹<ºuÆ"o CÞääo*#œÆ¨Ÿé ù3XäÏ$Y,ò¹ògþ ,g‘¿Ù Yôç’(Aßu©ª,cÆ5Y¢µ=¶•1—‘žþãgÈ Ç}Á"C–ñão#£m¢×ˆöx¦Ç¡͘–#£å3®Íc¤“gè7Ÿg‡—‘Ï…Œ²[Ä(3…f¹lL«–'‹á¢'Œ㥌{ŠD{Ì,cäW©¼åŒ¸ÊDs»Wa„+iUiW²Ô¡™7¢cl©uP‡JŒ<¯"¾Ç™†M™è[« Kø[kHYÚDÇØZCtÞv×2ôÔ`‘GÊaÛFtŒ­uÈcbk=CÞyIy'ˆŽ±µñùÛÄ5‰öØÒb‘OêÎæJtŒ-픥ñ=¶Hë•­-7_û[LzÄ÷ØÒ'e¤²ÈÐ'~[t­8 Ç7 š1DêÌEüg›ÉôOˆö83b”Ÿ1CþS¢=ÎLñL¡K¹›3ò·…ø›ŒÐ’ø›VŒ{ÖD{lní@›ôöGǤ Ñ16mYÚÀvR%a¢clnï  laÔßâ{lî$EÌ :ÆæÎÈÚE|Íݤˆ%DÇØÜMtÞö÷0ôÜË"o)fÑ16÷u ‰Íý yXä$ÅXcóàòwˆ&Ú·‘#,ò’bcóèÊòñ=6I9ìW‰ö¸:N|M¦ŒÄ÷Ø$mv?'‰ßÆ&{4ñ=6™}!½Ï>E4ãÐŽ <‰cõ4)¯ˆhÕ3Œò<Ëx^1Ñ1VÏ1Âó,õ`ÏÈïâ{¬^d„DÇXeíS/íq{¹ÙLÜÒ÷I¦ãõ*Ñ1n¯íÛ‡#YˆŽqëH|ß>.0êö:ñ=nHY㈎qëôYÎÄ÷¸u!eÍ$:Æ­ Ñ9.n0ôte‘GŽ 9‰ŽqëÖ<&nÝò,ò}Iù6DǸõýAYұŊ[RÖ1¢=æü‰ïqË”@|Û@RÆÄoã–ƒ®[ÜÍ &/í#~ŒÓ2H Úã4”Q~a ù4¢cÛ5œR‰ï1Á¸I´ÇY#ïÑÄ÷8‹!šñKtŒ³8–úŒ'óöŒègñÔg4£.èú²âŒÆpv„3ÚdÑ߸eÅYÿLœ%·ãd†ž),òè~³ñDÇ8Kí@gi yé,ò2Ȩ³‰Žq–ñƒüÝd„™D{œÝb‘OŽ 9Wã,ëe™M|³Ûd´¶ããækßáŒ)#‡øg¹d4+¹Äo㌓no°â¬mÿ˜G4cŠ/r™?Æis:íqWÈ(Ï"Æó®÷ÅŒ°„Q¥ŒteŒü–ßcµ‚Vc•µ¬"Ú㶺ÙLÜÞ!šñZCtŒÛZ¢}û¨#E”ã¶Žø¾}”3êö.ñ=nï‘ÑžãöÞdÝ'¾Çíƒf·]‡¸}@tŽ‹‡ =±È{LÊDtŒÛÇÈcâö CÞSy$×q‰ãöÙò÷œ¾ Úãö%‹üW¤| Ñ1n_ý ,_ßãö )K…h¹7Ä÷¸eÊxK|Ûw¤ -ïˆßÆ-—9Ñ1néö-·ï‰fL~ ÕÕ$~ŒÛzRÞ ¢=n?2Êóãy'‰Žqû™6´©úùÆy#CÎWFþ¿ßá¸ÉuNÙˆã˜1>ec'ÚᘣÙ ³ÑÏIü²1}×,8fã&Úµ¶¤®¬þ?Žé÷¾k/ßšëš~Çl½HYwˆqL¿×©,ºïœÇl}HYoˆqL¿×NØxzöe‘×lÜD‡8¦ßë ÇlýòxYä‘mƒ{8Ñ!Ž›ü„åo#H´Ã1Û ùƒIù“‰qL¿×iYÒÛ ŽÙÈ[žh‡AúµïpÌ”ÁO|‡c6²ír¯d‘1ŒømsÓ¹àg8nÓ³Ñ˘lïl#¢Ç*⇸f#qĽh‡k¶QŒòÍx~Ûþ¿ ®ÙÆ0B–zÛœ6Aâ{ 1B&^Ô³bzÑÓã;xÓtlÐ1-BtŒiQ–¶C¶5îD¢cL‹}ßvšžI¯wúœ+¦É:ä.$:Æ´ødIßcšÄ÷C¢cLKcfCO)yÒ¤¼¢cLKw ‰éÉ ySXäM%ÛX¢cLOýAþ¦1Âé,mg‹|²­ö˜@tŒé™?(ËæZØÈómýÆÍ×X1Ý"cñ=¦ç’2³È˜Kü6¦{Ðm &¦†3æ"1tË8æos<”h™d“m–ËF—ùŠu>ÙÒBÛB—îÉØ,™£/C*½6&· ¿Þoší¤ô ¥èë22Hÿ£w,_bG1Žó×î=éòM›×ó¶¹>s’™‰î$#cMkËIóÍ´­MtM­,'™Ø®0×Ô6ÒÔ×µœdn iªofa:iŤ¦ùñ•º–V’+þ,OßçËÌÂPßÐTÓø×to—–}›‹6b¿®M'2¹Œ Mu-›ÅNêÁ¸8\’‘\‰,@¹‚L)‚ŒòBôtÒ‚¿UžòfšÆº–ÚdÉLQ£è t õ ¬èÒ³6Õ¶243±²ÐÕ`.2ØÁ8X"@þê‰ZJšZ‹hZYY4ElZ$(**°s§@×ddµ5ut·Zê Š2ËP€ñGMÏ…nSfê–åF-)†ÑcÓ×8 È4%¦kˆ L^ß6]-–ÒÌCéLè3Ñ´i‰Â|À€¦“©u̬µŒuEL˜wÆ4ßÑ Ç^ßVzûåVôhº–d IyÁ¦д”44µÒÕ'•kz\»+ôHä]ãvW›Å6G'ï¶äGTCcÚúõm3LW…|¦¨½-™·‹q@tŽÐ4Õ¶´Ò´"³ÚRõæ¶â6¢;Z•Ö63µ²Ð´´’i®X²^˜—ZªEX@€^Sd›“¤ãV„¬xA†>‚­"ɇÈ0«ºéÔô¤¦R”1Ñ´²0´‘RoR’Œ-Ì(?Sm3ãÖ1“ Ò3lLgËæiɶ ±îV]cË–Œ"ÛÉJCsKF9ÓE·,•cFâ#3«)Ã|ª†xK3"oh´¹ÑÒUšò­!=»I¸¸½©0s©¡I‡Ž‰®…¡¶ˆ¨©›vËsI…š2m#*º^œ¬m 3s™…rŠª Ú´l=3 CCSéÙÌLkжÔÕ$FËÓ0×Ô0\/NpÛ³MgÚÍgä#‡€³¡p üJóªmfbÞŽ/È6aÛ’ Î&æÒäÓuga¶MÕÚ„®©#yÒz`ÛRm3™˜aIcÛAq-[òHfå µm*“|è:,µ-Ì,-Í-ÌtèÙ’–°mÑtXS$©ï"Ù¶©mz º(Y©õ2RŠŒ¢Í;V„~[V¤I? i]‰™dm‘ò¤¥šÿ™.  innlKoƒd.ĶjHššŠþ¬xùéÅ;¹óò廊~T¼³:«“¿*_i‰¦Œýå;°¹|é7çN¦èbS½Krò¯”¤¸€¥¡©¾±®ÙSÒ;B3=2¡‰¦1‰Ef?(`ehÒÒÚG èÚXéšêX XšëjêZ®¤÷Izf&äãuY M¢Ú&kç). ..ÐtKFIMQ±¥îØ[Êjb»®T]TÔB×ÊÚÂT¤ÍÛ»áÖâÚÜOÒ«ž|–±¦¥es Æm!U’Ì›î7YsV,Oæ©MW¦¤À­Õ`FÜ.Myje›!t 1¦kÞ᤾‚¦Ú‚m’2zYm33K]²k›Ì¼9‚~SUues'ÜÊïâ-¼Û›ňAºíóÚ ˆ±„tknø›íúýÍôû"†¥Eg·ÜbZäc5ŒÄ ×Óe7Ÿln:–f¶E^fÔ¦ÇMdf GóÕ6\Ùz"J?YÃì¬ÈÆKªÒLÐJ L`‘m1ªÑè˜4Q´ys“vÅó=Õ“’ZÔn΋¡©NSïBò…HsÝkì¾^œþ¨–f3¶9nÓÃÌIˆè­¤ÐSƒ”°žù\•æˆÌ¢j)Ë–‘EE×hŠÓ¬±y=¨tm/µŠÞÜ"¸]QµdÆÒÊÂZ›lôº"“ÅèyR¤w¼–̛ޠ˜=¶¸€ªávºEG¶¢¦†O7+t ID\`¾¡¦>yÚÔUŠ ¨™›ëZ0O™ÏçlÓÛ5i×Zks}ͦlf AÑÖ¨#šKƒÌ+I暆tÛUÀ²©œ™c2R¯Ö=éö¡¥îÖv.ÃÄ`3ˆÚ ñ·Î/4AÖÆñ}Û`Ä\ü­éáMꯤM3Ϭiâï6Ì-×Rm i2>™J£õ:ÝìZOö·¬W'¯gÚFml˜ ‰u²6|š¯kjiØ:r¦¯k%GFißM‹îhi Òôë2mî5Ù¯t’•ÔÑ5·2¤ëÀ(n›6,ßW@À ‰…›zŽÖ‰M HÓÑÊ’nÌ6½¦Ap´¾‘’Z)ž%…‰µ±•¡2#³­ŒgŒéƶÔÑm|Òzm$¹%ö æöbÓ¦²mßêè÷$É›d³#;lK¦ºþL ‡t$¥åî¨æ» µH–hn;d–Hý:lg½šf$ð~!›£(^ #ùmWOfÊŸqÓ…ô,HÛ¬&+33’Õ´éCR-[ECMt^3ØfH6vM=Ýmd/I¶´ZQ5±•´´&™ŒÞ3Ï•hgZXŠ›èZ˜éÈh‹š[ÐGº$ š™“ÖŒ¤9ý…&3S[:g’Cm])qIIÉ–*ìG§4K]+f)­öWóù\‰æP£e 3ª)‰:pÍ,t-,Èɧj¶¼Ç´šÑˆ˜Í­9£í›}„h."Øl˜X[Z h‘†™Öf]m+:Á6óú„Ö$’Z¬ zèMÊÚJ—a1ÐûM²‘Õ¤@ôuM [ ‘lês%ŒÉ^BD”LN? ?GË,$+Cz"ËVåO––•®…å\ )269JÓ";z¾Zî0b숛´jÊ zû±Ò51Ÿ+AÁæôz±jŽÓĘôüèÑùY“ldhvsÏ£m¡«Ù©ÂdÖZÒó¢Þtİ€.¡ù Y¥ KœÞÈ´ÍqSúèSTœ>œn¹Gæ\”4¯Zgí:‰¦‘w³p²Z›4´›RihlžH’µ(iTÍ•`ZNÓééÉG7p çJ4û‰ÈDäм©ëlª'ú!=¶e+÷5s™ŒŒ´(Ó8Ÿ+Ñ>ÿí^p[Ì$„ÖØÖ¦tü0NÅ;JK¶¦6Ù XÓ ½9Gmë£mi=žØ¶0šZ©59²ø®Ñ´ádŨ·T }+A¶«F>•Ò*L\ÇФ©ešš53³žHkdsk©ówÔNÕ[Û¨£‘™™Û èjjÐ[”:ÙÊL ‰{ÍN]MS“R×`­Hqm‘ͳED6“í¥]a#㹌ÆA¶º%ÃLѾ 1ÛlÓ˜T`s;1ß H[6`ºV˜(!Uhñ»6ÇߨêÃj_ìÚ"ÒâRäÒôÿDŧˆOf)`’b¥Hn•&¤+Ê8ÿ~ˆ<¦9[¦[IÚ&ËI€,G’”ækZ1H®ÕKC¯þæ["êêâV¶æº2‚jª VŠ·øÚZh­&9Bµ$IžÞ:[:‡Ö‘7‰FÇ ÓÚ/´­‘Q 4-å,ôEH[Ôªµ)Œlî›®2(“Þg7]`±*ÛM·[M‘máÞ$¯µ c戮0IzMÇÒCµvPMo3€™2§0e’Ïoz,©¥ÒAQfž•–ˆÐÇ’š&d7¥O>¦Ë™I›¶Io¡iªcfÒ*£)«"¦L’"Ä[ØA†Ñä[Åök'–™ÏÕ-Û4-LéYÔ1#ÇÖV$k›é›ÒÇ1VôFaÞDãôöÚôü9Öô!ˆ@s®š¯ÑÏé™jég´Šo.×ßËs/fb&”†2/hZè[¶©ùÖfÕz[˜QLmÅàvè "!¯Þ¶ÍµÜ$k}®½ÚÛŽ|XZ‰Ž™¤6O„ÙZÄé)™™aÏjÓJþ¨¡ }ל™RZ›4#ªaKÛk$+%J¬%9D1'1ª+"¸Ò@W`Ù åÖŒˆ7Õ¯ YÛ:[ 5Z²%*¾Î”!iöµØj–ÚfM>*AñöCñöMýeÛL6¥#yIP@¤É»emBJhÓ[Š Š[êšË¶j"ÑiÞÎdc$2û™ú­Ú‘íÙš´kÅ™=S2=—-'–ëL¶ï aÕÏ Aƒ´S×ÿYILhi=m™ó;3úß Ðù@ƒ%cMæ›Lsú¦¾ŒlîÿƒtÚ¦ ü:ÒŸûKl:³Uúåù;:ýgצºz3öêÕ‹q…§ƒê3f¤ GZFíU ‹¥M ±ä‰¥°4utšF#í kIû‚jŠ*ÉŒJ/Ò>ù½â›÷5òvÃõßàuóŸÛOy5Çÿô¾õg¥ð’ÿ=,ßfØÐ4ÇÔ<ÇÒ’ÝŸ¹qF lÓ%©‡Òi’cR3+²ÚYmoJÓ…&² ë,£_iã¨aHaØ%m=3ƒš<†me´NÃ79ÅlZæÌm:_Ñ4ëL÷”3<‹Mƒ{F„©MRš§ÍlStºw·ÃË&3=MË H7Ͷ[1Ñäæ53Ö¡+Ö*ÈX\Z‘9°Sh}®Œ…–¡©C‚8c0¦-BŸizæÄÉâ“EÅÒÄ›/‘C³ÉŠäÿ-•*Þ*á2&‡ríÎÅé3²Mÿ0ÓŒkNÓJGÚ"mÎÈò\»vmKIiŽÜ´OŽ #œØ2AÔÄ66ß7°…xR YÚ:S­š[JGNÒ¶mrcULÇ“}¢MÏjnK¢Ìˆí¦óšÜ™m&¤ÛH‘iKŒ’-óÊmœíÛqsÐŽzû¶ÍÈŽÎ(Øâ;o ËL–EÛi˦™Þ¦оZÄ:‹K_,!Ù´†¢9~‹ÖcšS4kÎXÒê?v'lûXz¶šÚ.k‚mã0³Ó6žÀÏ\ËcµÄš'B;c ‰æŒ´CCóÊ*sIiæd3€[œ Œ¡•MGYÁÔ‹Ò¶ÌÛxãÅ;‰Â «ÉjÔ¯ÔKïæéµ6͘uŠM‚ñh–ù£vÚ2o·ð‡p›ü2)µ¹ª¾Ïço¯Ža†Gtè3Fß­ ©»ÙáC_ g¦o¡iB_fln )#=©e:HœîH²$X[6M1ÌÆ,§%9JÖUgžÑ}„ô&†:$’Úº62’3›Q*ÐfLÑÎCÏ:!Ô윷iuÌ3=òmc1dÉ 0©‹ìIí õè•"ò£9$qæ m[—™t»-*‹Š¶Ò¥·ô¯­³8ríÁÒuÊ¡UŽLëq“9Ñê«¢Wc%‚¶¤&9¸£_!‹Q¤Ù\dÔQ› kknµ}³-µf§£ER…îäŽb‹².%kîÎéó§ß­ lIÕÔÁ‹¶RyÚ$—L¥;YCwò\ºŒõmWé˜hÚÌ[Ù´ÈF„1‘IŸƒl%ú°®©‰6Ç•‘–”jå©f=]ƒ­"d+°²²%»ð¦xâR¢-bµN»eu$mléëŒÍ¬š*KÞ̬]¹µïaléqmlÛ y‘žVÒTw›H ‘ÁÝn™¢Uó ƒVC£%!}eA°™ÖÔCÙÒSµo5¤(ñÖ¼É0Û»6Ô¿)± £µÌm6]þ¾qa˜/L É§ÚØL¢7)›âolµ@6xÆýÑŒ‡6Ý"miz½4/;¶iEÛÀ&)Ò2¤¬kL›oMns«%‹™#6z_Ò¶3h9–¤—“3±8™ ²5ÚŠ7-Ÿ–$; 3 MÍ$ß7“ŘÑIêÉ4…¢Œ¸Í=KÓ¿Œ+ÆV¶2Òí­yi%Í£„áG¦·É&¦54Ñ••V`‰Ð´p›ŒAÏtó #ÂŽæ-²YuSj²þš’´*Ú<Æú;u¥;^ÀÕd™üª-ÐY8çÏÖ¢¨*´.D‘&O¬t-Û­ß ;Åæ1¦’²¦•&yÖ´‘™ifå4ùðõÈn´É|c™h2†é=“ð FZ;_zRæÝÄXYÓªµƒœÄÐ3•5[|-Iš_ hIÖ®¨Û}[ò(#Ð’X˜~ԋ̼2H‡~»CQÓú£Ž#iÑa•ЋNT”5/ŒmÍ ýÂÿcï_»Ü:ŽDQÐíîÓmÙ§mY²õ°^›(>rW±€"%™æ¦Lñ%ÚEŠ")›TV£€]E°ð"€ªBQö9÷ÎZwÍÌýp¿Íš/óaÖšµæÌO™5ÿg2"2##rçP-ÛÝ‚-°wfdfddddd&Ö8ò,ñ%W^['ñQ>Öžr…e JaP°Szȼô-W¸wè±p¨l?+®È¤;Í7»{Þtv§Ã4Ùs%oóüÀàìuó^ÍUl¢±¥9ÅŽL_r;õ`ˆæ†ƒ> ¥-ÀŸ;€{®uáxîÅ&®W W8jU½±±m3µXày;íj>äšÀ† xMзp–ï Õ»W͘͢*€ô¦¥sJ3:ò¶;Õ7/&5âyn&ÖäÑÎŽ©W ‰]bücONW%Ñl“ZfÚÚFÆê¤Õõr„'´QÔ©(” e»;0’Å¡khMºÓtf³|C+¥jñ·>ÊððNÞLªw\¥tƒÃŸÎ…”4Ÿ¸.ÁlÞ±?WmW•Ú‹&ˆ‰˜N©wÒF æˆ4W1»÷ŸËºÐóZ³XƒÓçØ1zš+j4ºûX³IÖÇ“ý~‡³eV?©0«|£Ð~9ÿ±ä-ð!ã*°f¾äÍ«îñÃoëJ¤rbXmTÏ‘ù–]©íOJºÊ™«ˆUŽ`mµµÎEjû¤i¢Ð€!OӣςáŸí­ùI_°¿ïxÃqóó3ÿ˹ã'ü¿=8Påoµúý–zrƒ æ÷}°Õ žU@ïÓ¥B·×@TcÇ+­`&Õj dˆòj@X‡2[ÌŸ:á#,ÃÜãÀÚšM‚5lÞôŽL Ʊ¶~ÿw¡øsß' òZ±D$ í/Gûõ°7÷±7÷]_<iðø0¡@/ö¾ªßê•ÿd8ûîáÇ;LîÑg’ R]Û‚ YÐã»óŽþkí÷¦V¨¨V67+]aÅŠÛÌ «‚÷·j½¾)î½ 0¼úÙ«"î¸èÕ"õR:wÓ5¨Êlî.iK.ljì;øÍM{v’:ȃN˜*u17Åž:FªÅb®Â*Á—ç„‘dÝ1'1€67A—iJÒ×úVÍ{P-9ï.)½T³½†J¡§®¹ÔÖK±Wá+ ù(F:Ñ›&ÈIånnŠýˆ6D·½qFüfô§æY?¸Ýt']ˆÔÀŠâÒ ¼bðÑoŠSH&ãÁ<‚Î3b8R‰L)ÕçõTt^mÙç™ÜÍâäZh<Ãâwtšùý?Ö\ÿ»ÝÎaNx&ئ9Ý+B¸çZ`™¶°¯Zš+®^P‹¬×øºÊF+˜{bÕ•dÒ:È“~ÞŽbÃ*Óú†ûñÅ.J~‡êJØŒõæçwåvúœèw²á¡í„ÞËfýì÷PDhoÌ»e囘½< ¶$‡¶u‰™ã{ñ|”çåzû;Ùkø*ÔÐUAšÐ¼AÍÜïCò¨EÙ¡—`)PúL¾fÒKYà }ûx‰Jk2üFÒP°œ!ì¢XÏ~¤/hIÿÈX´¦OâÕh[&Ià\P'ÞÕÐÁ9¶1È×vwDejú]C¼ã«Ü?{þ¦+J·ÜÙw´½± HÆ×»á3ƒgðÓ·Åü¦ß5Wg[ñ£IbÓÒN·ùiæ{‚YYM—kèrB9¼¥x{Æ”YxÐYÁ 6*Q1Â`H‘]©Ô Ú#aˆÈBLA\>úÚ<©'r®[è ^EêIƒP˜ÊÎÙ¿NãEfw‚9üÈ•]„•OàÄûñ½¹F>~`wQ4©ÍP †j>d²`ƒ· ÓÜ«°0£l ÜÇ”nužð>4Ê>\/Ù>Â~Û„×üØi |/.Äzá?r$•q«ƒ¢”²/@A‡íX ¶“ü9á§ÒHÏuŸ/ÀQn1»(5c#°žNø²/Œ6êw˜Šì(®là¡ÝÎh )‚óñ!ÍÄ”3'$Û:xÍSIø,s¹;Å@¹jyM¼¯°¤“s„±¯kjìT[ƒ£êþu¯¼X’cÔÕD¼¢U7"Ñ\X‘fVÜFª‘!rÁnø`Û‰¦v×Ǫ+9ѽZ9k~W ‡½CÒë¼81&”³©v>¸ç¹‡ä ÅfÁUÇ*À˜Yìo22€oZ“é×hL[^šäƒƒ.Xïš“Šµ ½18pf牄óü6Qý6Ë‚·ëT†2ÍPS33ŽcaéuU« ðaëpÖí|þCv›%~ÿå!ºðVØfÝŒ…wÀÄš¦“-·âF…í‘8Ûǰè‚å¡´M$6YÓ*[†àx(„9ñ¶0< ªØC®¬×€É0¼ Æär8[©‹©l~€’‚S›¹ ¹g¢×“%>´ Ðv&ÔCêj9A¯hå½:T»ëkÓÄüS¡í¤‹IÂÁ_áyú2м†A^ ùö|M"…”vÞk¶…’e>Ë¡íU“Óï.åñºIÛûÚ§½Î ÛâeÃX~›GtErádÜÚŸ|ô‘$=ùVÊkbOi‹›+Ó›ó‘´5ÂxÅ2ðn?‰ÙNÿV–X–bLq<‰ÔáàL§óÈžPNøŠC‚2ÓíÙÐü‚³h{<é°¹‘ëÄF؉ÝN>0'³VÏGžvÍ·tíþ:Ò.ƒEäEcî|šX€µ-#êÁyƒã¡aÇí~N)»ØŽt{¤!™v•ý6Õ9Ⱥi;§¨  'S TEkâ6⼬ƒˆVB)ë<Œ¤±(` ½ ¼ÈëÓ'ùÓ¯[½á`zåÇR•󿥾t@²É›‰a{dͲ¡Z|Šºa]H“loQµ 0ÆÍ«ÔLývŸŽá€vïÍX¹íqÞr†¬?_:Ìþ{ìaÿüÀ…S¬òûcÄcÄ÷Âüq?ß óß óó>ß óWÂüÕç3É@Nx¯5öÿÓ= µÎD:Ê© LÈ—øwÒ¡2Aoç=J¿f6¸6ÙK(iÙôªG3¯ÚáEÖO²x&Ÿÿ§+1# ?Wk8wUê,pw^é×lw£Aù ÂîÊ'`€>Ø\ÜlÁM’wE€pW d‘}ñåITßtÚR®x³TtZO9EÌWZ½žŽ:BÁžá±ŠÒOß~)’T=Kû)gÅA¯ú/A¢›V¿¬«þ|)Ÿ¨‚Ãù²ùeýrö%f•ú²î~Hµ¢)Ѹüe 4ì÷Á¸<‘Õ2w¼x(sRά™ÖÍ;yúø½~”euùøe~ü%>vÔ@& 9Å ­®¬§­ñxÍÈ´£ØnÛSêb0Ö7büPÐùnƒÈ¼g¿\?W«FìÚoXBfkhªVÜ׌hkj’€Ûéƒ7ÒVáëõºKÔ>ä»$o"–}DC¬€ýﲄd6’¦¯@LP$5Rº²®B¹¨C<×îÀž¸ Ï @9Ä”Rz;Ÿæ9Ç´cT|U–:’Tm —]e?Ò“Ið™39ïDʺ“ [ñŸ‹²ëÈÅ10?Ññ]y}¸O©ª¹˜Î¥•>_x&¥ã/’ô£¶Ë£×“é\qX8JPô:)Œ}æöX[4B·4[‹ÖùÊÄ*ÃAÁžt0÷³øZö:;nA3%‡?x|ݼY…#³!õ†»õõªbçÎ…>LjF˜!âÁa„u±|ÑB͘ÏS T+*¸þ›-¿'-*/¿ŠãâÅaâ(&^.Ö#Âög)‹DÚÐóÒàM7Šoqä{CÀ (’(o0VÙÎk±!¾„Ô–xrÝ`¹&T2¤Ø‚GÌ¢ÎòÆG W»Z¹q–¬§IeżŸv(ZÈ äàïCì;üµ?ؘ‚×ÌòQ@À°æ×‚R ÅBƪ«mO’ºýÛБ£,÷@‘‰I[‘E6T‘F¬ÈUdC]ïÀ¼ŠÆ@ZþóŸ%ló$⤢«]1ÜÔöd— 2bÇëiju÷,vœ@˜JL0GY¶[8’‰}ùºÝZ&“ª\Ë*æßîtR PªqÃ/bëÃ#€ŒÛÇWR­'·¡É`ERæz¬è†’œ ß°3ÿMaêÙç߈ž|!„v•&f±§ˆw–iµTj©x¬å7fÇM{ä8 1ÞT×¼©Ý]\ų3ÄèãaÈ«¿=¢íî4@Þ>xÎPɽ{™§k …p"åÔKŠœïn¯ÜŽÃGÊÞã]+ѯ,{0°­ÎxòXhó̲ ϸ_jm )qÅmQ¯Ê2_Ù× ×gæ “¸ôÁ_B´¾Ö¬¢nž¨bá+&ˆxÚ‚ 0¥ËÎ=²¶é¤6¬—ERµŒðêžð¾nÄI/µ" å‹wÝÿWå†XÅ@(‰ð‰Ã, ¡ÍIøJÍÍar»^éÀÃ×Í*|‡léð"Ýbõf•Iß“0Õ„\KöT–í—5³ºwD”)÷³r¦£ïiû‘¶kæ@u½{q hZi¬¾íi gi†›Ùö$ŸÂB°¢»ä¡Üýuí7®–zÆín¯üe ö^¸“ ¦5›¤þ¥©_‹­^oÓæ¬gÞŽ•H²«ª•“œêNp®äϰ$&¼xI¬¥_½í“(ñÆKD¯e+ïØ. ßð‹ú$˜ËKr^œ }:6‚/ñ÷^rÜE¨™¸˲s6„œ …Ýæ¬8Õ´[6Š(p,ñ¤PèÞÞPÞ’¾dsµZq‚¹ S¬¶ß–Ýï6èNu7ªÑÉ“2Êe¨uD“Ö`o¸³ã·ˆ®nŠTàoã‘nRS˜…Zp•>%"®Úm#« {J- šæôÑfDÝÖv¿ßˆj©-X¯Šž§^BI]€w£Dg=GG¡ÜlŽH9å2—¯“å†î;^ºˆ ½høKŒÄ½¯€ÞHú¹éÀîscA0væâÈCÛԖБ<†°m0!„˜q¶‚Då_Ä<¡@!0ïцá›ÜGí°Š“cP͆‰xÝáixaœóPŒJ]øD1DQšstAŸ«Á‹h„†A²=ù[¢ö%.ª_3½°u´3î'ãܱë†ûU½X(1”†„rqžrÉ ̆#ë¹-ös.Š7,™Q—n€w¿ùÚÅ''È.ÿ¨eÀŸÝÜ«hPÉrÀ/ð“(l¥¤Å~_ŒñJÖÐ}¾RÚe¹ÑÈP)ï/öÑRŸÄVÁTí ûÀÌa«FfNuñ'¤s'˜M!€,’ú7¹KñõpÐ;‚ß|(u®YfóÀ±‹;võ»NÞåÍPbS|‚OBð!ÔüÅŽS&ƒâÒš·XMÅØžúO/+v•"Ö.X·3½dÑÖœâq¶vwÇù.„aš5S4WųŸCs6à £p¼3}aŒ]ÊCÎÓXkœ? !EvÙšAsÿõvþWd£]ÊTe =n0Úv3•‰ß7™j@©}@¢Bæßw;¦@æêM»ý‹¨ÓçØ¥¬Í2êÿ/®#·çöDÝ.Ç;#‹<07›ð5.  ÔHÙhI–ž`N sÞAá°Zx™Zü¬Yÿ&›ln/ÝÈí¹­Ü¦fxäÅ–^yi@Þ…"Y„m}÷%+ÓfÑ Ðm5/™åâŠÄÊqÀÃ`“HTZ —S‘¡^;ëøÛ„׆ú"Ý̄ɗã)zÛKö£›Ž ¤Œ*‘>|ÍhÇÆ£Á!oÔºúƒ'V <±PüªJÂφ€ô„¯iXÎiÇZÕuöu5?^qw©œêAg3ÓPí<°Øß°#Cã`\À^ŠTOˆh¤‰Ý†øÑˆvì!܈õ :uÖ–šZË2œ 4̃nm`´’% m‚W²v>ØÍ=k,ѳ':à]y׺k >PîÎí…ôЫ×Ph.{ð |ÎY[|óœ} ÞrÕ ý2­keoìã6Š_Î{Yê‹þŠ|ˆF½Ê¬/,÷R—Rö²²ð‰NLŸhÏ’@]ì–ÿJ²3ö“½½ó„Çz¼ÚYë˜9ÐHRzךL9Bƒò]‹ºq:Ædä eµ¢–"kä¬ g "bøš.FÆ@Ùðl;{¨´¥¬WnH¿—Pó@ ŽýHÌž‘V;ùNwwPŲn~í"Ëî@$î¼3ì볤œ«7|ß ×‡¾ƒƒ]óc„Ød®XØAv‡RèT[G 7mWmÕÔÁ¨Y‰‡¤¶U¦êª€Ô4ÛÞ""ápƒ?0dƒcü?åç)E”ƒóe—b'›wõ}NÄîZ½ä,˜p  Ëyž¹ŠÝÅå•¢'–Íë_Œ ¿+>fÀsÜçØS™*Î0ï°{íÚô¥<ö- “Ì6+<ˆ‰R©™"×ï^­à}½`J 0þ9”MÄM»z¦u&=Ó6ÿMÍûæ¿]óßÌü×7ÿ͇濉ùïÈü·gþ;0ÿ=6ÿuÌÛæ¿UóßGæ¿Á7À¹v¤ØëÐgwvU²\óYi¥ítšî§»é£´ŸŽÓÃt’¥{éAú8í¤ÛéjúQ:pI5ꮉõ´aÿW·ÿÛÀÿѳ æ¿uó?=¬/|E¨B]5W±]¬H¯\ª^àžPÅéóVÜU¤×u®ÿ5¸*UÜ +Ö)ëi=ú?ªø(VqÃvÒcø‚À/Uì+n0.†/Ø×EÅq¬bÇUilÜ&U< +:¸u[ñ‚mÕã˜*Nb}‹nÊÃTñ¨Xqƒñ'çÎÓUÜ‹Í㋎ºBIƒ»Êà‚¨F´º®*>.Vt¬ LÖy¬®b'¬èÇ%g´Îcu·Ëºê+Òÿ.Øÿ­ÛЫҼÌÿ’•ž«b-]qG¨Ë‰ÿ (ÄNý×)ÜÔdæ¯cá™ûQ¦öoÜ×@1ð¦×ðú:gÄn /ºe ·‹bä Xº»Ý£Aˆí.M»lÌ3>svî¸û50[â´' ûµŽE)E ¤V÷Þ­YY­CÎâûÔðïìÞ"‘ȱÿÊÕ¦ôÓŠm S¬íFH|ã/ =œ81‰O¤áƒ)ΔCóy.“ŸNsϸ[Qæ,u•²QÏl„Ã…7Ü*Õ…¡$–ÓÝ ž)·ÜâtŸå”VÁYÿü‚çÑgg®OÁ5 B`ƒŠæÑÒ,Hk¯K.{ÝDTRfÉyG•ù‚ ­¨BmŒEdhŽ·Ùϧ‡*\9 èê©C¯@²®H¬[STŽS¿0-Yø÷·Ï/û?ÈŸzáÿŸ\„›]Iàeø8ÃCÁãV¿ÎDáÑ“¼²9_>k÷ö;>|ØßâDPzøœk§Qg÷aaÑA MÖœKœ7lû3ƒ*mU]hÙ}9qq)Þr8`te …¿Š¸üÙÀVsF§ä9V30Wƒþžv5»¾æÛ!pR‚SÀ¥i[ä4Q¥Ô$Ó´ÅNZ: çÇ'e¹dv%‰®Q«;>ìNòʼë6ùú£ MÛ;[í­ÖE;˱oeÖEº6Ú¢Q²€É˜Ÿ?†L¾ ­ÐZÖžl%ß’¹3–þRÜÒð㘕 fâe;fI\I6¼n­*.ð—YWßb]—}D“€À›nŒû ,?1_„ˆí¾lŒý·bß…'‘.ÔèÎíoË/Ó­$ù ìD4IÛ0f&ƒ±šaÝÌWe¥ËL¥k’´Qºgµ­,³Æ fÇ3 gƒ!dÙ¾ÙiÒ»£]]ØìŒ¢[hÜØü“¡@H’ìýoµ€Z»VÅ-÷Ú¶*©¬>«áÏÎpNrV-Qb0Ö¿{ª$¦¹wõÚï¯Þ‚P·¹22ù†­c͚͋Ì|L³Ÿ`qýŒaH öÔbîÕR‘[Ôù?†ë%)zçi7ʺ¿—ð¤„WQE•„gÅ ¿¦œ×Fy«ß+ˆZ.£xåw×Þÿu¥(l¥Éö»Q|ÆßÌvhþEš¬^’…ào(•Ù…²PÀr‹ËWºû/-²W¾µH¬èØE+~J8Œ$«"Ïã#4ã²d\ùãÕ[ðçwŸMüq½uôx¸³ƒAéG÷oü¾ô§}ŠLߟ^OÑâoúå°EOL™Æß…KK·~óC01^kµð•¿qžò 8X‚Ó†x /´ë~Õæ5+ºÊ8Lþn>½/¯^uÅ‘'pìé±÷à3ïE»Åˆ¢ õG(Y†hª0ƒÎíÖ$¿9ΟúEüK±?¸ÚÅ`7Tà Ÿ´áòVyÈúŸEö—ϸvš€ ÂþµÏ7Ø›Sªj^³mfbë6ý’,Ïìˆ4ï|6­Z>³øòÅP^ 'BNÅÁîX·öÔ29TmúQﻄºßUE ëo› #_Û5ûL«ŠL;õ5ÐdÛì ÊfRKV: Zm¬%¸ 2˜xÒá(óÊI¢¢}‹u=:v¹nÑÇH}Ãr¤zâ2•̬^ª«þZC+ÞÌR7̘ÝÃl ðõœi~5™é ½nÀy¤Ù”’.|rUFká(ª6•^om]O˜ò×U¹ý ¬sSîh¨f¹º ºÿNX˜xú‰rv¦ïtôô;x¼š£{R ¿¦³A‰ê´Š…6 ÏY ðšÍ›¨¶¼Qð€ó.>¿CÃÅ£)´v ãcÞûãm-^*¨Í0ð‰Ñ?K Ÿ  ]ñˆ^wþ¶ìªM2‹¿DÐ É-–>ªŠ—SÌ=a*ÃÄÃõ9¸$) >{‚Ï,´Š(ÄÏâ¹Ð.`^5agdÝ9´êVü8(2)FkZ‹êèm u˜û>ÄQmö:k´‹KÃo¦%œÊ­küÉZéh` ¶öàwñA®_*:$X|!÷,àšdšîú ú(’žˆ–MŠÉ4b¨¹*Ÿ½qoÝJx›ÍÞÞ—Ášà ÆÕ!j|+ÉÍë†êLJ¹™ÁÁ‰'‚fû²4±‘do>¸g‘î.ìçò”l1d0MvÑw¯‘ê-SýtXòt]n¾»½“ZrG þíץɻÓ4[ú–;×Á­ÓåRŽ?PÅ\Üù*•‰ ðï²A»¿?—ß° -Õ m1⮥_äÉûöÄ]H øü‡îïOÙÏ}‡²Üóû³ûáßö„½±lëÅ£õè¿Ð±úïædüÉ8¿í©¸†»©½u5„Ýø»ïO´ßŸhÿ“hÙÏà»;Çþ}žK ÜßH¿³)B\p=¥Ê,X'uÙ<4ëK4ߥV0·%øosÀ„»®¹§ÊU“ó©REDBË€9§HUø@Ž!•cæñ’>}~üÎÅ„vÿì ø-½;¸#6ÎJ?¼ÒÆyç ñ=g|Aœñ„*ª,[ˆuý5 [ÖÆy«s½K†OH;Ý^á)RXƒ¦«&Þî² uæÎÚ*±ZšLöº#0fYW’"/sÀ]#©ˆX'HÐ}{óË ãïh;QtúµÌú(n¾Í …l´â!ŠuúìÈ;'ùýƒC³¢óš:}ƒ 3fÈÙÁ<ÊÐõzl4¾yä íÖ´ Î&ðÜLÿW5 aã\Ø’˜ûb1îzBDçÜfìK“§ûÃiîr 6âŽBÿûKÉ`c¾'îïsæz|C¼Ðˆaûk+Éç÷nݹš&w—&ŸÃ?ƒAoK+û£Ý~«¢ð=¥U’UZF|mAÈ: 7¾ë×37áו˜ø¸m¨î±9´À†DdFÝ7-¿¦L;æ ¯>n+æ"RñP¦—# 2ñ†<Çg8Ä÷jåpÞ°ûí§ûÝéôè?ݸ_»û»¯‡Zãօ̨{vY1 ?)Ø‹”Œã—GÒQùL€‰Ê­÷3÷V?¦hœñÆe’)Ô º?…S%3@Þ„:Á b‘Y<ú±ËiÒ1U©"¼ÉÁ_u»rcTuP~S¾:|l¸¸oD4c¡ÂïÔΣœÇr!  㤎'âáu÷Ðî`<ÜŸVBÃ]ÿ+bãkaO Q°«ë=Ѻ^œÈ†Ým„ݯYw//ðKN6ÔCŸ½få[çFΩŽÍÏ-ƒó·±e¤³Ma­†¬eŠöœpÄA¥4嵫=S¶×Håsµè=RÒÀvuÃÅa'¨Þ²êa¾.'ZjCŽf»º XÍÁë®lgƒ‚¹Jã„t¨æhûÀÞ݈òá–¹ÉuR¢Î&®ÄØ•hW¡L*ÌõOÉrHçB™Aùï[Í&1uÕgeä7=»ªøM1­b8[&¨6¶¢Ó…ÈDÖ#^¦Eñ oÉü%™`Î`& ‚üõó–=’-…óä?œÛÚ²Ó]H4e~ëÌ7IÕåoEéfXQCK°ÿòMîîïBFïÀ ž C@ZäÕÏ‹P¾ß.ü! îXܦà‚QgÚ[c#¡£æ<ˆ¦žõVÝ’ýw_LJ–ÿ…[L³¦¤í¢}÷2|?tW5)Cþ·û·Øvþº›K‡'¶¸¹ÀQœ8*±2àdÄOâIíìaSü2[ÐÙê`õ8;üÛði}[Ò¶…¶êÏÕÖ?þÞÆ(yè~»½‡}Öïxˆ€³~ߣ÷½:}5¯z ƒ1|êJ«;"Ǿ»ýoeP´woÊb‡Í"LÈûjø‚·ÕØ®z* “ŒöT³¥FˆõpϵKZ>ÔdÛr÷,ß$3Þ")=VÉ)9€Þ!½^°t[|ýžÞÑŒV¢±~Šz3ÔLj8IXÁ‹yÃû4T<Ëó?öü±»â†ÝL¼Dµx¦w NpßÅn0Œ¾£Þ ¯¹¥È;ÙaÜ\ü Pyرó^¿ô4ÒsÜÀž‰Í{ ‰}†˜§æÿ±Q¿¨+[¥3&ùØŒUßæ0FßáV–²œÁ´ýô–õ:$kx!ÊHóµ­r„á&,be–®Y~X}&”¼¿p/€ç\7/„Ê9.S½é¢Ã­}•Gûž, i™‚Â!î1¥é ÙÒa]¥ã´r.âç ‘¸0iÍíÁN oçDçyfsLu¦Ž¤|»žå§NÙµ5.îB°…ÛH”¦h¶Î1'A¬ÈÙ"€-—òFX>?uþ”¬#"y• @w /§-Zây2 IØâï×rg\¥{W%#®úØ—a'Þw¿%OXâwºÚ3ÿg”‰ÚuG° ¨ìâv”ýÒØª0Â1õ1 kW; ‡|€ÿvXËVÚ¸¯8¬²üú+'t^+:oÌ[Òz3%“ò@·8¹ ÙÙ¯c(ï’6lùKº|ó2çøJô䜨IOtH"ø@ WÕ‹y¡Bƒàô0õŽícH`.g¢`+Ê ÿº:]oüb²ßG®ìuœo<¤ÌI:Ò$–µ-V +PÆÏ³$ø”pëÞ¼©­…@:6| ¿ŽÞÐ){“ë,^7ò |+,3veÖ—Û 0î5ÆaAQÔ˜ZñbõÖRõÆ/ÍZ-å:ão5µ¡ÚÛUŒ½Z‘*²CÃ^§a(Ëjœm´V%’8aʽ[(LñE›+ Üã€ÑAré/!ÝwáÊÁU}{h•ÊB8ïÖx˜¢›[æšÁAwwðÐ ˆ„íÔõ”™+ïTwE#µ÷gܲ†°#k K zkÑ PÄ,·#ì;7~òéu¼î¬ÊžTì7µc{`AóÅ•]u}µ6»Xˆƒu­^·“¸«L[iÍU²ægd[§Õßîîî÷'a­ëT ±â¢áäŸvè… “ÃáØÅ<¯Ç¨Ìa¨e\YVÚ/ž6NØèPÛn5‹°¨*0{0i%Iótþ:‘¼Ža™Çv×àdÚåõµ]½XÒM›)Ýô`\. H¬Žã¨ˆßí×dFM‹³XH:šûV)7±Ëɶ¥5'árüí—t†¦{'²~ªÎÙŒ5|§ˆ'ŠF–¬ö-vÿ|l[åÎ0ßœ§¿üq§ïK©Ó ØÏí‘(2ûà úö¤ sýYÞp¤µ€ÃLE1ãG£PGúzù“¦³ryõÊñ“‚‰¬Ïìj5Ç1oJ. ÔFÑÚiHVë]Kþüç$òímÍÎÚɵÁ-Ë"ýÚo˜Q}:î#=ƒMÍz½k°µ›}_­ ¼%Ù¶kP½yÃQfO\Î5(ñÝ3j+ð{Õ«}ûc&W§X@n°Ÿ9‘Ï´{6©ȱ ¡XÆÁ‚B?v«“a¿®Î0îÆÂE*.…ÈöÚ—üIå>£ˆ/ ›ñÝ|zl¢«Û##iº`» ækúaƒxÂU4uŠFê´\G¦2.8÷òŒŠñiœ.aPèíSò°gÝ1LeGýñ¼våù`ÄÍ'4*ë¼aš&šÕ''~Ѓðj0âå¥ç^×wRØV«2Íþ%Ã*Ïõº¦w[™Û&•]à¾.C)¬Ã­±DÜÜ3EÂ|0;¨«ÉüÏÍÊ|he(%zÐw+€t³ýôIv&³Ì»‚ñ‰ý‘Ø96S½X Ý…žÕ°ÙP§ûéAO#zuŠJæË0O`KÎ ò·G`½ o*a™å$Ÿu-à4¾gÇ/”£zbð°;š$Êi+lI­R n¬óÂ98z¶ .棲B‚¢Q4Êx~ûCÌ¥Ey&”í€J ‹p3ùv»Éƒè™XÃ]nžKUL=@g‚¸‚~VÚö* ³N0µœí>Ò²±|_TÚ!ø°»Mìá;ÜA VÝ€xÙV¡À³ Àɰ@qæ3Úé°,Ž3¹ÉÙ–Þˆ—î–¦R°aÛªÑ0(RäZ@Cmù¿±¤Ù®¡ý=ÑQ½H’Z9 :D"œgNCÐXUTš)ù‘t•Vb‹ÿEI0Ê‹ (ÁÄÈòH—:ò V5¢t1ÄÛœE$¤Ñ‹Ô[<ˆ//?á*zò„È&}VKVÈÇì@­Ãn ì§û\`_] YV[5.Ó§\rlOžX¶õÖBïvíÛ}õíAìÌïË=ŠÌ|IÁeG;#FÚ®®Ö7S#ùa:7 bï¶üÉ("‚c·k$Ç'O@td¥—±Ã;ÕVà,œ-)>ç>SH¯0àÀÊ TlJÏr¿ añ°5_szgeØO¢ ‘NOkN÷í<¡•-ZŠ:I[ÏšÜBY”«ºØ’S¦cÙÃÖÄÂL“Û‰Sß&ÓÇ9Âò9Š–ËŠœHv¾šHï¤ðŠ[ƒh]ÖÊ'&Ùà €öå¯h§ß´&ôGEç9²†‡ùØLGZpлuÒÛíO!Ê=Œ™d|{d¡Ô’‰£Ìì®è*ZYâAâDù@sg5CK3ž$+Ðc¤4ZBîßµÒ™â2±ÇQͧ‘ ®vm|W,dãÐùGt[–]ëX:Ê ³Ç;·Ù¼BýÜ|L†½}<8Ù7¨V½nÐŽ÷ÞßÎðGú¹ ¿÷ÛÓ„æ ‚%&’ú;y;¨œ&Gn˜¬p;Ÿ¶S"ÃܰwW¡éaÔ”pf«ÐnȉÝ~Œ7©îÐoͼ6P‡­’My®im×¶ @?ý̨’P'ÂUíjái#šÞå ÇZaú-ÈËë~þÅ¥jõ„%åoäÒpŸûØM¡z´Z}têì)•ZíOê ³&+v!¿£al5JwnÓ+p—*)@Õryú5…›¿eÛ¯÷ewñV‘ር[©’¿`©dÖÖp°:€dí݃ܰÜ3â\fÅqÈî#HB.ï«}œc¯X»çc'¨“ݼ×ËÍ:ž&HÖkŸÝ[üÁmG_'킯SÃíÇUE]èÛ¦ìa “V C19À–wK(ùÄF bCCÝouÌúÞ½tɱ*®üÍ_¼L¶«Wt MÖNšâ1øÂ€…ìí€[˜øZ0Ca%X-|?QºRh™Øâg½>˜ Ï_E¡èïŒ=½;Je ”Z$d]D! ïf´…¾áäý¸ˆµ®#ì³”†’Ù,eQˆJÓì,êF¡Ø[ÑH?–߶Ë2h²;@Ϻ|K™éˆErm džŸ|zÿ!¨¡³:4*ZPÚ<­3wªUfÃVée 57k®’¼ÏJw/:D^$8yφBÌç¿'9çRääRºePÄ:L [†M¹mØD †s6Ê Þ ˜%& BŒ­3N,89›ª|õÃZògèB–yVüSG””C¶ì"ƒ[ ücnÈv‚ tœâV%ÄÓÇâˆo(à%¬pæ~H}I¸zωÕûièúýþ¯¹€eçþ&ÇóYÚX œxˆÇ—OXm8gEž*”‰°„‚ÖÝJêñ8r¥¬Tâg ¶Š^ñåZp­B1Ã1Ù+õåñ“`V¿•Ôº”tZY<ÉjM«à¸üÿÔ¢™üŽXû?ÿ¥ÀØI¨äÓÃáxVdçš‹椼2—ƒeË4Ü^j7ŠªùƒÀäÁ&ðÁ"¡ÌÏ}Á&Æs^$⣠Y¸Q¦Ã‘Ù(Â<Ï+ C&â3Ñw'¶"IÜö`v!àÅÉV ï¥Â°åó Ò0V¶B² Å[1¹ÄP•ê UÙ‹ÂKàXDY¤I×LYë¹€6Ú@ÓGíDä>¸·yûákâJ=¯L¦-¸—_I+íÖ4º½^k¬]}‡‚!©meÅXØt¶wnÉ;%•8Ъ¶U{d#>¹öÏÕÓ¤ñ§¾â6bLü‚};ï×–‹$L7<ÞœÀ=gÖøSnãj©ùÒ_íòºø·ÿc'Dr‚燗Xõ ³=ª:Åûˆ;™VeþmJ¼#3Ok¥”Ãä‰/ÉÔ”Ä8ŸÈ›ì;Ñ©¶v®äñ`¾§¤£bõœ)Õ­¥€Œ´žÒ¦ø8®Eç•ç‹t´I}˜£5ü3AB×ËdÒæYe4iÇÂZè‡|A_ñ<ÖñEòÙ,$d.â)èÊÓߟLÁ¾,!M,åW.¡æ˜„O+!SÑ·•þ~oÚ½Z~³aÅÃM·#Rñ‡Ý†S¨ÔÂŨÌdnú­¬pPp¢ìÔÕ‡›J p2Qò®°½-»2ãyÄÊ´¸…A!ðqXA¤ëTZrâã³ÕÆæYêÄQö§ÈC¢Þ+rÐ…LÊ¥±ŽEww{8Ó¾-AÉXÛ¢ žXÃúè` |§guí8ˆ¡y¢û©×ÔùÀÍñ9O›;A55½}¸_¦ #¹ïºíž=^P߸¯Ñn²ÑFÔ’CZR.Û¡÷W"{²Göž6zE{AV†ž&ì@J¿ (.1ж»¾Y ˜Ÿá`-Ÿu§UˆˆÃÿzÇ4î#•ʾPwÐêXÓH#:Ú6PùÙ0Ik™´®Ü×ÅÓfŽ%nÞ r5Íš«þ²š6?sjq•rþ;Lå|›útü%°ÉH¯@Oà/”왥æˆÐŸÛºÔ‚a[£˜µ)kœaûÿ3Ñ×-“ðY#üsÅ)cÇÝ‹<;š•Bjåw!K ÓaP‚µò°–E¹³TyÌã¬,¸Ô¾ªÂïÅwW噣8Ù‚Ív¾ª«J6Ý‚+ÊÜ-ø-EŒÑMVz…Û¬¾ÆŠn´µŒ=¿ R•ì½Wd©çÞ}Õ”gÿ½!+~Ûø)û›ìÁ Cs–‘º6„ϼ¥t-,üü;q!:Cé^Ý_£_STFyXUoÁuûê ƒêcâeÇ EÃäm®V¸Ïmà šýzIy›1ÅW¢„#0›Ý¬—€öWyè]Þ–¯gæõ ì^~yרb°P‹tõ–Šy{_İM»ÝW.]æ©bϽÎz–±Ðoªšßv¥ÿß"Ð/õ'/f©sžÜLdÉH:NIÙú?ˆáóÀõBéçç+X¥,৪è_æ>¿Á–:µý¤Hhocë»wo¥k}¢'ž¡õšb Cé%X±ÅJ62îTíTwpÊ6¢üZÜõƒòdߢŠ´b#à*3Ì÷Sq$T[#NGdW;ÂgÑvA«mÑ&ö-©”QÛƒ+¢ —TxPÚËÖ%öXŽL“:«alêÄf§TE×›4½1EÃbpã”°#l޼¥"[ëÇëËùkvµËåuhJ7± ÌdPi+ÌzuxA>L?•†löÎÕ·ð–iTO Ⱥ™&”›Å?•iÃÄahë|‹¡â-¡‘¬?­ s6È@SÀ‡àÙi#½^L߯¥6u–xyÁ¼Ü°/ JÓÓSvaΡ“©9‡Ò­Î~¾wÍ?4ïj?þl¿5žæÓdøxkÛú“+æ÷ kkò`ÙæK#ù2ïB„|SroÜ ™ÓƒA·Ü,(j'1—9Z›s‚9Èï û`aÚÍ ~$ÉéöÝë7Ð’—ÙN!üõÂSùòZ(™ðö:r|Wv>hã¾=ØCðï]ÂÓÉÞ#~[ckü¿°e±_ÚÛ/;z»¤&çéÝÝjwG·û6‚‡|IæöÕZ­Ùü`K¥ÌÉak$]D(iZkÐéÌ’ý‹A¨,dp€G˜//bÃù„žåãž;R»3-zŒ.=‰LwÁÑíIöÿþn˜ °SŠx4kϬ;3b Æï*ô¹Mƒ«É¢!çã©V¸b˜Ù:/µ3û±»®Kß‚"¨ËÉ!I‡B‚…R±£:ÎTF|¨aÅóÁŽÈPi\L‘ÐþKh»˜nÑL?ë—.ZÆÎPz´]ÜåxÕãg” ú9/Æ ¦M¬üE³ìM°ÖS‰…S¿ަÝ~ñzOq? ,'Zã1šÊƒÝƒ{÷‘›7нĚXÄr²C¡ÐšÎf³i(ZòG–ÅXÙà&Í×®R×jÈÀ“sÅînwÂ`çÊ“M¶ ÿ´²Dë±¶‡¾ío³t±Õ(ÿ·0m:rP)ClÆd¼‚ÎÇñHpô†ÞŒãiÀ Ž«¤V¦Ñm^H60êN¬ˆ:év†ÊdéCÏ`Àq3¶w6M}í!c}Ò¨afê®y_K®$ž)r^ gœ‚Š»CëòÓà¨¹ÊØÓ«Ä¿„š' ü³/û™lVÙ8œ>¯±MÅþÛØÚ,ecÓ‡B ll^¸‰Íä$…¡V¤:FYVí„têêNÑ$ .:^pЉm:,ª•?’çËœÈÚî²Øëy=qòpölcrRœ 9”¬ó,¾R¯A²û n)ÝgybØÃ°7Ü=º”Tx‹:‡[TeuõJ%EˆêyìRùjÀ»>oxD¸h¡ÊÁ×™<Ó;J×$,1ü¢Í©Í/ËpïãÒJ–Xã«:flTÝåÇŒjþa•…3‘TM§ká|$EƒRíö]’/Ù™´’ /{ã¹. œbεǭ>D=€«Zrùu5ð‡N2>„‰Ñ‡Ì¶:ÈEÇã5*ˆÛI¬*ñ¬\ÐvÃÈ([æ¹ñAoÉ8[ÚÌâފױ*؈CæÿO®Ôç±%¶QŽ×Ñh8bGüÛ+Ž¢¶"”Ú›mJr ›EN·îghƒ' …gÏi%l#Ø{+á™6þW5ü^jÒ;{ãyÌ^ÿSØþþ@¢J+ˆBGhs „t×ic+†èVÓî˜#í4¢¢Jé‹´IVbxÆØ>)|»Šß¤%¿©ªm}Ê,ç¡ jSZ$gÔD€± 5ÀÞ˜~½|ÅÞÇ%¶Îúc+qütÜÖiú\jGÁÛç¼eÏ^ÉÒçÀƒiì5Ÿz÷|ˆ¾Ú¹b(o«¾Çö¿K„,{æçòÉÖó\©­GM¸¥PàòLôò`ñõ —gÔ,ÃB@C¤¢-¸º½L©XÉí[AÐñ‡ò%³îÊ,Z6ÁxÙ9f}®«ÂýžZz‚”/¿¸’eAWo?öå)·.€3š’…œ> ‡1«Ü‚í¸DË©t†¦Àre'Ûȉ²éWUt³kŸÚy>8{;nS…a«ÿ–é ÷qð@fL@ w‡ê§ƒþ®ºi‘[R4Z„öã­©-ÉâÖs†ÍêxÙ˜™¶CDqZaš"ö!Yað¿AW%ðÊpýÐ!*¢ÐyŽN>¼sOÆžI“¾<¢@'w,‘ÌgÒ€ à3™‰B*¢¢Y¿ÔÝŠÛŒ»…†[Ÿ¿˜½ÆQ]YÍw×z±ú ¿Ü…çÛ~rµ¿-4=﨧0›|Ø¢P]¦p!úÒÄ.A˜_úm‹þ»- ĺòJ°ñÏ9]ÉMº˜Mçža-¶¨ˆIyžì«õ æÏß Ðrl©ãhLÙD"•щbÎl ­š:G`‘º’–×£-ïF²e‚‡î‚tüê"Gzø-N…Ò² –Pm±§éÿ»®81j¦ö¸ªc´\Ìê+€‚Jª3¢œæ’håÃa‹Ê˜õ†eMŽ3(W¿Kõƒæ`Íwk†ä/nÂ]ú ? :[]¡»óä;Ì>9È÷ó ¹í웡â¬uÙ–á¬+¿iËK'qÚ§úÝ)T`#èö¦ÖL€[xµ¾é†°º±™0â=Ý ¼+kHÏŸ ©æÿ\÷\<ÞÐLZOAz­‘É ÑlÖÓ­`ÉðÈuãZàì›6%£ò&%âè}¨6Å7|€ œuJ×*¢±>Šnâ³FÐ(’2Óá×Ûò5ÛÌpÀw@XÅi"BΰÊF9F uËÛ^kk«ÙÜf󖯽±"T “œ-ó±+·'´ˆ/Z"Ëk^ÁÆüÿg i ³aÜ—Æ·¶*Df¨,ˆ_MŠŸp^úÚÁ5<îÝáärF° q„m‰*  vY{K¤Ið±qRë—6Í$՚؞…ìfëÿÖ)ª7ÐâÍÍõ¹:̶å5ÕWñ”SIžºeðmÀ8úöS=¹O⩱á#Îè"ëÓ'a±á„!Þ¤xGW6u·Ãç´v(ÜžùžZs.ØÍZǰg14´ëkà1?M«º¹‘q´Î$ÁGZ;bYÖŸ0’ )éà [Üä캪ÿe©lƒ¾k"ˆ©–V`á$—½r ÅðCbŒY†Î«;šŒÏþÅ ˜(do{ Aêcù<òBø'ÔÇóeøÏlM—‰ÏœÃ Çi‘5ÿ<„ âÊ^qgÚ6N™¿s™ï: ƒ¾±Ìîq˜/Æt:zÞqšÀ‚îºà§ÿ‡ÆQYV"IŠ2^À£üi21ï¹$;5<±áéÌáO„ã+HžR*!ƒ;dTš‹`‘¶à+4x¤ªÔéêó…ã|Üê´ú­qÇGä|Ý0ÂÆÇ]ù3÷îë§vb¬HŠC])øà.hå—™^xƒ„óÇìÔ©Æf܃llç ‚™z·)C‹A½O?Õ(¨…ŽteÒC5wËF:5R.ÍÁ$!Û©õše¢`«cãN»Ô’)àД .Ód/kçÝÜþõ†» Ï\Dl…â^ÉqAÎ|ð|èeùÃB¦[†b„ß¿jß[±F£FÎv[½K‰A‰Aéx⿽Séu¸@E;º2—ø™ëhuv‚#K†GHëí¶úýVµqvV[­Ú³Ú¹êlµ^;kZ­6–Ž~ûJ±ãîÄ\™ÓÕ|6ªŠ¡ÀÄ—QÛ?­8!p%ùÄ®ÎäÚpðd·%râq1Wï ·”KÐô’YV—xCʩήxsº ‹Œ¤š6‡µxê®Âï‚3Ë b¿Í‚{uçq_â€{Ç©ì–q ôø‡ÇþÈSh¬®}m@ö~@'J+º@1}ÆÔj'Ìù˜=c’?m`¸hÁ>«M«ƒÌv~¢T‘€ïÄtXCþÔÖÎŽÝh½aú!{ð´¤Oã=r…¿OŸ§çÁÊòç|!ÈTåhœ°¾¶¾^/ò?Ž è#:÷Ó ­ˆ[B> ¼¾ß@®<è>Ë‹‘†7]öM_pSç¹)Þ¡º@ Ù‰×U' 9pÞ š; —³Õç\`¡´C~%ÙpT‘µbãO6S»}õ²ëûÀì Æïu× Y›òä´=kI‡ã½I2ôŽ’|g§Ûî‚Wè¿Íø’ÆFÖ-K :"(L‘!~³)Ž[Ê8T‹o0ñ:»hÒhëžGB™sгP‹d“u˜«@«V>:oñÑ(³úü)á§jhPp=&'Õ~kú ðì1oÓÒ¡Ë–»’{U[ÌêLÚ(&'’5ƒ\”¯e`„F*:‘ØÊlØœ¡ÜRtu]Ö JŒ F´O§øg•ê¦léô+1+øg•FìKü ,¼Öö¤JÀVGÚZÀ‚³©¸;G®?pµY5û›áV£Õ†8;R¹™ëUi¹B€Sr™Ì°ò9%Fuç¬iSJ86DÀ´…–>èPh_£‘«c¢-Ÿnl<<$1ªšög²É0„º@­ª;÷ÉA¡bæV1ÏtO<ͳ¸]`j€äþ*N1‘µÊж˜©€øL#Í &ö\j>=0¦Æÿw­žØüiOj 0¨— ªU‡ô2®¡{І‚Œw( þݰ¾ß”S¦:J½$©vƒs¼mIà©ÚòÝ¤à«Øöu9¶xK¶›…–ê"©ÎﻬwD àúiJûô 5s•™)2§°Á™àé Fš‰ñZˆ»E`Át)4( gj¸á„©A9ìª8;ôyŽNÿØwz‘ÐPyܰ¾¤|~B±ÁÈšYÉñé‘QZÕ'Fï=…Ý"—±wb|Ím¨V$$+#É´túX¿ìz6úëhÞ‰m·’u•OVHñ2Ýr» Íô%rVœ—›b³92;OÖHQ׿öõ"§«’ÅØ;žtƒ}«À`Ç)ÙöÃ` ƒqÍ1\§b?Ϲdzãá5&|Å—>l±bÒ.ÁU|à2yÄzz OWgE™‡ nlú½ÌAˆ§¯Öõþ( î@§¬íäïíÜÆ#,?·==PG¶sñâÈæùбÎcœªx‹)&®yÞÃó’»;z!«tȆ)Ž`–P-(Αñ->õš"|ŸÊ™ok6ç`h£þøù®[ÀQ¢÷0ŸLý}Ë;­n{Íi¤ÒÓ<מÑîÎΚyŠ¢@·½ fPHhîV××.‚ g‹×’óhÌ{µÐ¯ýwÜãÂ.d?0ƲtÃö»kp¿vóÃ:üùý‡ëÞC1iå“ßo|qþÜzxnán%dô›&·ùÛÍû7>#;””Ìl…N¦ã!4:ê÷Öì/`7Ýnÿõ|uýÃ<§P%[_†Ê^…<¯ß¬ Šm°ß^ƒîŽË»\|#èÿÝ•°6W»â¯Gl2Ъ/wútâœÑ]…Z18#ÃåF>5H¿?9([1ZxÀ‡y*žñ9?’5ª¦‚²õ8œ~O*@…r~ÉíˆÁ¹¨fèöŸ„Œ>– , áÀWAtËbVÚÈNFy¥–e³a‚þùYJ—ŽŽïæö/þ¹w§î©vçLÇÀ­;ûöKÃýu6Ü_zpûN=÷­uŽÓÔµ0¹ûbÿn¸ÔÜîäö¯oëÃÅMø¶äz•l§ ýWö×Z-d“$ª—½dá°í<®a.×ÓŽµØ„»5ûÎH¸ZÅ–ùì\ø$Å‚åAuQ$É(6å‡kæ[Uíùf‡„¬ï”ÆÉÅó0¥ºãÌüƒø:§ŒèU4[à/¿ÓÞ¡hC­üV¤кª}ÙætFãç; Àú= G!>+AGf¨y'™ !W ¸\€Íc>Fù˜,V¯$××͹ÖŠïö¿¢.?Å» ä¾'ñ¬Õ‹Dø$H±k´á/ÒùWIÞX€â¬@1ó;üß~«Iþ&,ˆšìË I³ÎÉ(Ûð[˜Vô†ÆeÓݰ¯Þ6o™ÿª· ÞQ*ÂükŸ¹·Ô|«|ótsWæ}£4ù½a1uO瑵kQvËl¯f/¥­Õ³r¾¾Ãj73Ìšm&:ݽjÝ4y_©©|)­²žTlŠÇº xIŒùôóîÀ¿½áîfw¾]½}ÍþiÃßÍOO€¢¹ã‚Rzgì›a01Á¾P–HyA޹n°Nîeí2«¢É)%e™¥Ù¯ WI.2Q .£ØêÉÎNØo[hC"Ù‚ï/@Aƒ³*ŽM:»h‹µƒrkA¹÷58’êàÊ(¿V€ŽÓÑlö·Dwá™-:lr=k£ªê i‚íä0Š8>¿ì^ë¾í—sNzÇѤ„ÈÊ9H%7ÉaÊ+žÂTì_Ó£Û!E 6¢0nã®DÒ°T+”~J IeG•Ä4¯û!UDèì¶§²•H± .¦èìD¤¨¤µÛÊÁ)(¨¨K®GJJz»]Bmª…ânKzS%C»-)ì—²dHeGÔ—Ý »[ÏIv·bdW•L'áµ?‚øjjî•‘é­LoňôU}Çdzë˜dzk92½u<2½µ4™ÞZ–Lo=™ÞZšLo=?™Šˆ÷,ïDÀ,Aªq©¬Û¡«·µÞhõF¬¸&ÖÛKSkÜê›?'.¥Þ÷#“¥Þ(›M"µ™~Ÿ=)·áË) ަ¢`柱e¡I˜‹Ö#E —ñÚ ²e@ÄŠÙâ»EŸ›Œ•e¬ƒÅpoÆhøc Átôæ’ûüÇ;ß1ÿ¼yLþys9þyóxüóæÒüóæ²üóæóðÏ›KóÏ›ÏOxl0èï[°ÐÛqòS xæMŒ¤É<ô&¨ÜœÀÒõÊ‹{ÅŠáÞ¾¹€n5ŒÍVñó­éí(!'‘Ú,¯Þ\Ž‘Þ¾y¥®í|!8Jã1¡Á‹Á‚ÈOE nˆ‚ŠÊc´«a¦ÝØâ $a.Ûˆ”Õ¢p¡«Vв°¢tU¶(  Rg™í§ÐÜá§Ô¥èM#ê$óƒVom²ßnç“I¥»‹fHªÔiQ‰¨»’œçO÷»ãR¥˜Æ!ÑŸÿÌC UŠ<¡ÐÐÚ½^kº3÷OÞúü6Ø~T¯W|+ÓB-ø¶Æ«Z±×õÉ×ò™d0c!pŽÚ$û§õÕ€j·­ÞÑÄ<6ÿåch=Ç$G?0‡»Ÿ‡m6Pîúåº>ßqOïßx€1,Ú½ÖhÔ; ý{­qL±ï/¯3¾]¶@}P†`þD¨äW ýŠÆ†åK.5ËÅ$*¶ûËv^颠öü`v !I+J+f|¾ù0Ñ7ÉÙ¤'n3VtI}›AùB‹òm†}™<÷…Ɖ}üPd–êâ£oÕÃCÙSø{vY^>=„ï>\„(´lVÍ#°Ä1ã/ª]ªÂ˜ºúµŽÙl.¤ï§Ö€¡™:h …yH,ìšq3½¸em`œáLÕ½¹À6TªÂ¥Þç ¯ØÞûÎ2hˆè‹ƒx¦Çþ0ìó‰7µ]—E§0%¼%b‡¯+°o·C¥›öG†òU3ðÏÆUµX¼‰ð+˜³œµ°ñ¨<dŸƒºÍÊ^ek #= ¨=„ãvÕ?µçØú¸p+…™n‚Q²%ì5<ö>µ‘;ù³‘ú€cꌬàZœ¯DqŒDBf”¦2ý€-õcO}öI©‰Uø÷úó™– €°·‡ã»¹0.ƒätía´yv̼'ƒê`œ¤“öQ»×m[S<·dè!Ù˜+[4ÃPÉ”#ï3飜±—(ÏYTù¾º· ‰µN?•°9ÊmãhP¬½³Tá<›R¾j 7ë—öÈOý’#>Ì:G!PÜ£ÿnépïÊF1³ˆQ’ÉtÉGµ‚-“]5ÐsÓÒQíÜ,FJPâÔ)38¾cXþ>ÒËb¡ì]¹oœ™PC0¡ …7! GÏ3…¿{µ-±;®o^"<¦0\7áíP—‚Ä![f¹”Üâô_­îa€,[/²Mø oë„°o3ù¶0–~a,}1–~A®ú‹ûb_üÈ=”2ºHÿBÔ\«9²ÖÎc†ÎXFGéØ;ž¡ àÚØ“n€oëbXJ›¾ÎÄŠøâ¸µ¬B«Ï-Vgnê{]Ê3Þóžkj‰Vv̟ͯš¥çœ¼¯19¾r¬§ Uð©íÚ¼½æíj©óþWíÂLõ‚’H)NoÞ¬uò–‘ö«æµM˜¾>Í›®HãþSêœYIÒf¤ïŽóÎ~;DÁ,MŽÒä™\øûè%}~ãlÒiÎ Nç9óå(Ý:¿áˈ2Ïbe ¿ÚÇBUrDfé3WòÙVíü†ˆšc›‚ƒ¼|h:X|øÌ–<Ð%Ÿ©‡?Lô#[g]×9R(]Û°G›´9ðØG'ŸNMB0ÒÝâðÀ¯®ø=Cå˜ó”›$ûÕ<º{wa>…W(‡O˜ÀÙÞ±y&*p~àÃÿº6¸ã5n_£ÏdÏE`™x&6,ØGfÉJ¤?£½ }ü…ϨAì5gÆÓªI;@CôFœD|zÿ:ü1?ýÞÖ3|p[¿Z͔غ¦Ã{™Ã½˜zWê:¾DeY—žˆ?Å£T˜Õöõ;86ÃS,‘Û&·€pN×ï¸çní]ièL®`ufŠ>ØïO øùj=Täf#A8Žá¾kq˜òg„¯WÓFäþSž ü‰Oô›Ä" à’ƒû†1»À24½h¸ù…?tbG NÇ‚¬ÜTÏÊTrPWÝlæuÏ ©D#,Ñð%^³XÔ³¬žœ6…Á:Öáß*ˆù!ÑS›[ ¶+!ý‚ËšÕ™dTIŸ¬Æ*d9MóFÍB–æ ÒºžXRmW!ºÛ‚*V?åßüY- $T°|½îzGZ6nlщóïQÖJ5ŒÀ°®‡ çÂvÍ*¯ßièå!ŠØ;ZX æ©YɘzæWA–<+¡*!ÿ«‰Y –o‡éßÊ9¦SÎÃj=!Ü1Ö6ìePOC(@™?ƒùñJ¸ä]âèŽMKÞ, ûcÙ¢vPÎ¥ŒZÊ ìà„*ÁÄ™‹S2J.‰ ò̺'²'O{Ínw+s_ Òg(LPÈA+Pà'R¨øqAiõ£ýûe…Ø·ôpáÍÝ*öî #߈=!òbpîp*¶R3vù0˜sêlµgï¡öƒÒÉú¦Eë‹í˜~°Ãv. ÐõÚ­÷zV‡Az›7˜‚¯4 |E#¥ÖÁ%ô½úK8O³a>©ªò)ñ Å®€…P×Iq“Ø¡TFø£Å¶?²ÙÒs=Ÿr$ƒ™3 Æ–n£­ò©d„¶}Ì~þxtCÁÈÊÇãH%Hýoº”žo·ø6^8ß’æÏ¶ïý"ä”̶­ò_%>Ù¢¡z¼Õ1× ñßb®ç'2ˆb«…áÄWñr³*bƒÆÖp#Žâºªå'vœT="Ó+ íJÖr#Jþ„)&ÿc€‰Jé**bª±,¦Jˆ±¡jyL1–ÇÃÏÒc,e{ÇCU}Tý؃YyÏEf>RÆûªV9™ù߀ÅAk禵²yX]^%¸žˆÏBjó»Ô‹Ò[€­è¹êØ'v,@óP¶œ&’¹²@Ò‚3SニA ×b•güì2ÿêàÇ~Fœ†æ/¡Èq=O …>ΟPZCŸµ& ©Dw‚Ã9ÚyÍÆ ŒÊ”(¬=ž£HAQµ'²þ–ê¡CÔïe:”ÈUîp<Ï%:ä /êÐu^€DA·žåãážÆ@5·iÖò §ß¤½‘½~9!ëÎð)È­§"šÎD¬±’E Üâcuà{Fi°ä÷ýéùg¨Òßʸÿ¶8´Ñéö•ƒ'±RË%Ü”º%(žâY(Á¬DÝ»É28ú91ª"†ñèN÷Øu~A@5`Žöfm§É„®¨f.‰ob5­±¡#Bp7}’"“ÆÊ›>í„­q(sØ¢Ì~!ÓN»·éúf ˜$©Û§R¤]Æ™)[³ýÖ ÔÀZGˆÅŠyB“Y ³*²­¬U$ÝVþ\QÙåXŸO¡¹×†ã.æ/t÷¨¨ÃkÏlŠ3·]KCR£oŠ¿)ñ”mâéþp*xŒmt)²j4ƒCjŸ±ö‘ÝÁAwÒ…3uuá»Òt J_&']&@H‹Ô×݆둀Ãpœog5dé7–‡JcŒ“Öz¥†¶'}¬Zñ B¹[7c ÚÃÁN·“Ú¹#žXPâ‰ïÐÕ4гZ=‹[Hü[të£ §À}µÕá«a5:‘”Dn]*¬)%®åB­Â«+6mÚ°@âÊÇ:\°Ë.6s&n•~[B¢ÃUTmz2jKB)æÊ˜½Zfœ c8ž¢4kY´j¯ÐÛÄfÑël¶Þô9(UÆp'™a‚2‡Î‘A;PÐÕmüói¯òë#}¹üÈò+‘ÍÔýB¿œRà3:Jªp’i²ía8°†üUOT[É©îà”)I ³K€;CtŽÁ¶ çôAw¸?¡šñŒ*/»¶p}ìï½ùrÙm³¨Œ YhTƒ‰%‹R7ò¨¶Û‘tQ«—“¨wWh\xüpÞDN+#¤ ´«ÚŽû:VªK[w7ŸMj©Íéç²vÕéÈ Ô‘9ð¬ÌÚö€±?ÂÄTðJp%(çb‡Ñj²–j^m%#ÆÞ  xƒVüfK-›ýâma#èôãa?A©ÎÍ2 9Énž~Ç¥D³h¶»#¿ £fÖ@RášÓÏR¤â[‚ÕY¹ô[3[·è]/ëH±õ²=[Q§báð³>¤¯©'aƈé½âÀ¼LëÇõ0ÞTA¤ŒÛŸþsæ%2ÐH)èeÂúJ±!¦KD…i‹b®ÄBÚÃvÕEN“3Lõg\ƒ?½ˆÈ®—™O¬hãŠ&Õ|mw-Ù§fU¶F†õ_»s-ɧmæ²5OŒ¢úŠtñ+åáRdt¬Õ@÷´f*›šñL\šHO·ÈØ{³ˆ:ò‹`»£Rvv‹3p*bT‚ßÇðp‚ û(Ÿ lHÑd§;žLMŸÀÙ%L\S' À®1ßì¥\4”CsÆ7[}{O§Ôð› ÷Éí OÇ`ß©žtŠ!³P·óñy|}ÏnAY6Û÷b@/À»F±óF¤ºÄ³ŸPJ”ÅúVûc™.L»NÚ-H8Ìq5§ÍéJ¶6ö [¹`ª%« ó¸LfW}oF‰‰BQñ¶QZ½œ˜ï’ûjn-bÿ] `!7¨Ší„ל|Ò-2Ë\YQFó_Á4GQn> Pì׬©cUÇKÖþ¨àÉ…SèA(œp=I‘šRÙò’äßU? ³y3ð’ܪO{Ü[åÐ<Ì»Â' ¨ç;ÃZá‘ÜÑ›=¹ïi9fï.NNT$£˜K7<ð%®šÎª™`„g‘9µ5Þ)qÁ^Þ-NÌsOÇ-+R•]1[áÈ0¡¤¡¥.cÙ­u#Â:¨YI“ ïãÈ>¢1Ÿ(Ù.Øb(^ é-·£=øäÓûAY: ”¥ÈË:}uŠ…í»5¥Û"³h<Vß>½#åoIÚ¡\–¬Fýt O0…¯?‡°î áŠÀÞ¾íÖ Ó…¨!öò¥I´ñt#[¬Ùäpþèãkú–O'âýƒÄ>d0'ã­ " r q»JÅKí‹ÚTN1ƒ¦Tæ­bnFQ"ÜŽ!7½$>íø¶‰g|5Û.½‹ô^§›îD$íPy’W‰@À†¿Ú'³B13nrÖç„L/c‘'÷5_ þ7óWÍ&_ŸÃ w!ìNŸšŒ‘û¸(àn¥»*D7UÓdŠÑY0 Bñ`Gz¸ŠMo®ÙÏ;®RÆ ª 9E0,#©q9])eWË‘›cIÌ“Ju¶WŽ×­p{°ƒ”j[» Û£inbס­q>yÞ´4H‹ÞêÜåpÞó<ç@-»¢¦w\13hó§©™*!–ÍZEú@ì˜K‰"ê$`ç ckcÒãΚ«°ßY‹³‘çaÚÿûmñBnxEÝ»hFNY›V~‹æ1ÈB%vtR'ABHˆB?1”šlçpˆ{^lóR=ÿZ°Òõ‚à"éTÎóöH³„ÁÑ|PÛ^àR<)>Ð `MóŠsD–=T”³ÅWR²—©äMN5c×q©$Vb¤aòèÇæÑ6œÊ€mcÏ·ÎB?ž¤L+¿µµº–í±­ê~€ÚYþ`œÌÂÙ[O Ëv# äŠr!Ú™´¬CŠ2UAgrÄÆYÞYêþ¹P»²¾•ñÌ¡zcÊž‹¥„|ÇÏ@õ‰™¡«½IhÊ(5*’ ,—J\ï¶v©„ ™xšW>/Åĉ­«ÌkÊŽmßÿL°ÆyŽÔrœgýÊoháÐÐ»á“æßF¦RàüË7‰ÖRÎÕ•Í_xp:Þò?å:uy¸\–?ü¢È8Ûe u%ñÉØMø¯d©Ç^Úê¯3St®¯5}A Ÿ¾ê^£¦È‘ºÐûØPû­ÇWC ¬QäÓhæßf*­Q& –8”ŽTØêMªEJäeLDžæ\wêÕ¦…ƒ%È7ªsx¡"®e#›6x¦¸Q°]ÒÜðŸ”x¤Yá,ÆW5œ-Åß æìÈÀ;’†•Ñlº7GKôæh©Þà2™-<Óc±#]ì¨Xì¢[ÇÈãÝv«W¹ÏQ¬¤^ûMö8—@ÃÃIÞžáH^3ˆ©ÛÑ$cpäßÕí£î³Z3uÍ™ä¹Ë>š[…¬°&u¡R0mÖôÛ†zëý±ý•œ´GjVó¸e@¡À-åY14š œvTû&ŸP0°t}ƒ£÷“­,3x;_¦¾TµF󉮿‚][ØZr:‰À \d˜‚JEÊ¿¨Á½Z\¸Çæ´¼­G9mHÂÿWŠ ¨­èÓ)¿ø”ßEÅòžâ̾SÖX³”]k›A~ç^«¿Ýieõ|õ}wíQp¡ t}^‰÷20úK_„ñƯkÁÎ^Éh%±ÔáÙûwwÉdï¦3ç×)"l¦TÒ@­‚&/8‰‡·b!gEn†#ëô›æÊsˆˆ¿ôC)@ b ‡‚gÔG¨¾Ê!šÞUSfOgÖC§½GÙ£†t-ûg宇ÜúQÄ@¨AP¹Ù¦ì`x¡˜I溑Î;u$¥MÞÃLÁæûå öÛvKjkËæ‰+½KÆÁG˜1¸_=ú zÐÙ2`OzÈŸÑ™èQ­Ù(ÒY[ãng7§K2 UÌÓÚÚ­ú£ÿ/mÔÁBPxݾüX Q8¤§6ØÅ{vfò äÉÓñÔ—9Gp=G@4Dj†E_Òhç oÏo4= {áñ‰­G@{T8‹î­§'x"ö;,å zCxÂö`ß@¶3÷`‹Ùà=j ñýz†â¯B¯F{ÛÍt=µSË-†½ }óe«È»RlxÝ4\ú'†A {ûxP75œSâ¥KæéA¾öÙ=DA #L¡#)´Á?æÔ“?54|Ò”ô,X!Se¨vØv®þÉšä_ñŠd¦lë#„µÁ+ª³oÖR»5Í;Õ¶ÏÁ ¡ýÆÃþfkâüujJ¥!=7‘ò‘âOÈo¸R01°H6JB¢•‘n„ê›ØÃÆVÙºqREZ¾pˆB˯ ’n”®¤Óå+ÉŠ®¨W‰lt£@øõȧáĺÌxþkOŽdAbRjI°ÐÉï?xÂ)ªüŽV‰©6¶N=åÚ üçµ?É«S©1·RC”_vë©8Œô&H߯´TEi*£ÀÓ’€üÞmøtKì/ÿ¤ß$pFC±@f‚?;/k¼Æ]Yý\.Œ»m³FU5G´—ÃàíÌK:;ÙÀ¬i3_ƒ¸óH¿ö3˜žZ¼UaÍ(n¿”oú RÕ¿KRŸ(A|Žsi¯÷ÀauQØÛš¼·QuL_o剴cÖÈÇ]Þ,ÖŸ3öh˜Ò”}#°¤ 1ó£À î_DdÔk׺ãö~¯5þ»‹\HÙüŸ#*° 0^ˆü;?Rî’Qß@"ÿƒûºª·¾ó ¿/.€ïÉÝœ<á$Ýõò©õYíµa.ƒ92©%Nèר ¤¶»1áÔ.®8¡¸^”@0Lë -JP¿Èzò*EÔ6Ò_oì_©j› ºWìvr%n”bp=ˆÎ1V‘:5ápÑ;ÛƒÓÅû[[|/WŠËTÛëøaÿmw="î°CÑ_¨‹­<„ó\V¼aþ1ñ¹ú¥¾°€À#{ŽÄÙC¤?IŒÖ¡DÏÈqf%LdsŠq¹ž¶÷û ÔŒÖe MˆC mÕGüòeb%{a®ôjœ`.j¸ÇÞã½õŠ]:£uóð„YçI·Y™ï°hÍßsuWÕšÖ £¹:ç©>KßâˆÿK´b§†þYXÞ†‰ûÃÓ¹00BÖM“Qf`βúÚzJUáŸÚ•ôúc{Ò'xÏ,R½Ye°6q¡€,½Þ #ŽOô+ÄœG¢Í·(ëˆMÙWŸni˜<ާFˆúzÔš>ž@§Z³·Å_!þÑp:ÚŸ‚ëG%+µÚIü"åž·%`áÁ1aHŒ_Êúrgñ]g4q‡…è®ÖýºK! Á— ƒC剃C"ýH…Vß5%µD]ØhŠÛÂJ[‰wn+AUëaꞸŠhq–;rXÔw—Å—9r×¹V§sÃ*€˜˜ÉxÖÈ\†·µQµY÷綎-*}ðq& 'ç^ÒôÉHP*k?î’c~àc‰ÚæÐÝ5á½D‚1 ƒ.tˆÞ<ŠzOöQbÿvÎ]ìÖkšŸ®ávOî/¸iŠñz§r[ì[Ì+/„q RÛ#SF}Å/„ÐM˜ ·*Ì Aâ A¶bc@Gjh]äSú¡Ü•}¬§h†Þ(iy<Á"îv瑺ùy†¡ s¬MÂRq’³±ìiàUc÷¬f‡ ?P·R¡¬/¬øuª¥ásƒ6„yßI¶‡ÓÇ@\Ó.rÒ+äüzØ5o'Ý~ל"à±mNNaOïI"Ý@Lb¨óªÁ§ÞÂàCŒÄŒ+ä1Ìê`®Ä]“-w;{_¤I ÈæÊ)¦$®aV/q†J%Z®¦n>Ñf¸”gäyc'ƒf #Siß Î2yyShûgËìˆ ÑFBþ< »;a`ŠÔ‡u@R`Eèۢ溭¹ìkr¡Å̰׹k'¸mŠw`1iÊF¸ïj€l)gØ•ÂØKƒüЕ«R <ú^â_NJ¶=(ÄGxu%ñ*a}åGWWÐØÖ÷R¾ÌQ#lߤli…תEœï„[YÊ¡³Ñ´ð2F˜ÕÓ¹QúpHÿJë$ÜŠ±™íWqåî¿Ù«Z1ߎFyÏ™ÊÜ\ÔqÄGþɲ…¼íºWËxù?R„, …ðµ^~€1QÖÁ‰/ŸÌ¢ ¶z—’ÁPû;†WTßç3k°Ü”vÈæØ³2È÷“gûF˜šÂ0¡õ|à1r£¤ktGâF–ò jÑþÊY,t 4Ôh+]D¢"ô¢(A ‹¯ËR¶Ï2Ö‘|}œfí¢ÁÅ’¬’äc ÿTN–PLÊ30B*Ä\Àý??S˜çhxÉ(pné°ì]ç#¾5¡š…ï,l݈œÂ£öÊ>JÑH^’c×ÅNû¾mÙ”9‘Õk6vEn5Ï.!hM¹~ Š™ƒ'Ó$š±/~žW±xš°8³bR]7•½=~‚q³äúw¯­çw&”ˆÛ™–Šg‘ØÞ5Ü'}¨÷@uSÓ7ßÐÁIå»­ð>,œYlŽe1ÎFÜ ëÖjÚÀ>=óÖÞ¥¨’’ÖxTm 6Ü”…·äØØQ‰é¤miÇ]rb›Z)·xxê 'ÇŠmKÝ‹‰Åx51ˆœ^Ãט…%ª¼÷vúZ„—²£G’ìNÅQ7 ËVq Y¬ƒí yàš02QrÚtïJØ´ùv™VR¾šÅê ÿ’lÿmÕükÃzĵ·"åSfcÎ8S뤯 WšÉA€[ÍD¾0%‰jÖ—î aÛö…PkÈGä†ëö;nµÊ/é¦CkÁç?'#–Q°jýhVí[b.aOácÞ>°`êaøaÈM€oØ0®AÌ‹{sóP2§YÄš{é#¤&—üºUcÇâ‚?žèåÖ/?b(OÂw¾#*õ_"å–éô•B§ $ú¡NY9dSÊ7ýsYFi~ì–è|¤+>l8Ô\²­Ù’lJhÆæŠ\±Ej¢z›ß^²ûNÝAR>c¢Q8ýð>ŒPŠzJ¯YbryÓEwr 5DF¸Ç5iþ~a{p^°b[³FÓ™Fìâͺ~6­lFµÆÒ•×È5E[î<·›O×Ü™nmÙ3ÝgóÎsò3÷l' ZÀWb]<ö‘óz²Üg™“§êtÌÃç{ºrÙù³ lxS×±gP󣌙CBf-×—FM£9‚ã¸Ì‘d]–ÍñÄTߣ \{\YW ÷¡ŒZÞ‰»¡êÖ/í)[í(RTãžoIÆ‘³ˆŸ€cŒ©°U†7®£Ñ obÕ|.¹^‹2™Ÿê9Ê”e§j XJ=¦Q`A(ÃKka冺 àZ«T-¶´&{øªS¼²\S© {xÍ…›P«Å¿‹£ØÌ›RßTް#$[“[Ý{&ÅM¬m'LJ÷XÔ§>Oìþ`Mˆ`~ÁlÈÁgŸŽÖ íÇ@=j’$ý$¥Æýò㑘Óìr ð¢¡(4|佨¨ $+\ÌÁÞ‚¬Zèçê¤7²¿z:Ž˜Øu´ ˧îÎŽã>¬0ü½+§ãêHš¬§[Íàw–MF^틈Õájb îp'b.”þSU`79Ic5#É Vmay{Q8n´\2h“Àó{0€H(¦¨!‡jrºÖpa›27HÃá$~TÈÀ…¯EŒ‘" cÖÐNó±á9¥¬O ?£#\š|m ß?=ÌÇ|Ú‹2•ê—=)w?R+Ùa¸Yè[<‚Ô_Úè„é×õ‡rèQP0Ì<•N~f;BíÍèÙÓ×n½}oªxÆüºFóâ94›ºø2FÓ—’Š“ÌšÅ…Ð%[§Á†8xY@ïõÈzk¥èæ—f5¡!AD¸¾%C»9]¸8€±Bîìj~’'–Úšý\ÃÊKȃ,sGŒທµéÒýÅe¢"Cšc¢7‘€áBP!.3ëY(h\]y î`…ò»Ò‘ ¦œóé¢ò^שãô }Ž¡êè"Õ£ä*œœÊ®'y|Pô¥‡ÍiDd=¯qý7ûzÑ>ÜX›{¼( Í\¸e^E±Å])Ì  î ï³+e}Xo“|0ÙŸØÜ¦*ÜT a¢A…º¾¶Qr’ ­°…>jÂø}â=NÌaâ}æ#;úkŽédIõð|‚ç@—ìÛW| ØO„ ô‘—cYw@¯¼?èT$V;[_gåpe%¨,Ýöe+"F\M”yDf‹X²æØ+Òý%<ŸOÀÿ@ô(D™ \vðÐÛƒ ­â\b^& 6éAw2„¨p²=ª©¨*Ì]¡;rBj·~*³Û°×Ù, ›A_»+Ñ5Rí"²0qlâ6gÐZÄ s[Ån s„)[’µ?1Ãç*,l19Åìö`xl‰ý¨t&¹’%ƒáaÒñh7äc#J:f¢g®äHp¤­R -:Dµ¶š*SrFÐÆñ|o…GŠ\k¦÷ECù[\Åüec™™‡NNøD27CášY:Á)z’º8:+‰0B–Ñò?GН  [¹˳Ï3ÁX¢)qŽôm8`Ή6AWebM¨"^îÿœù¥T$²u³ý²4Ršïü7VV(ÕlS¶Q#›TŒäÜÉai•E«GÚº=ß«ÇG«^‚±¨Õ0)~^¸ïº’Ü,3UdíA1´(Ǭ®…+3ø°¢]à  ª<¹ÙJÐå$µ(É$Jjpe›f_ö†»àZ²†Æ.tlÊ“¾†P›² Vwàu1—ŽÑü×ÑvO—4ûu´½u$M,H3J[ñÙ_¯§¶LÔ&1!ºu>s¶–ê O&>È!¥:劫6õ€›XÜ€óYwçµ°΂¦ø´}Є?ÍÖjòÁó¿ ýÕ‡^GÕnä¾0…á;¦Rá~³ÊÆuŸãõwœuW®>(ËË/ù󟓪ÐZÛç/Ö/焱¹ÂèÓù–ˆOQâ èºKw*ꬩHA*@º1ÊéöNÕT’¸Ee$m««p ¸B=D}ç ž7­Ãô#ׂÿ·+ ²”lBø ,N7Ÿ– •a÷Ò%ÛæûÄ|¬á×`öµéB«mv‹£¯­rÔ<À`1îà_Ñ’W_ãšåU~¼Âûä§t ît’éã®ôI ’/2Âʬo‰J“|º†£çÌáÈhlö»49hõöóLÞ“3xîK•@¯š`Yå†$Ng§#Ãñ¾Ûì¯÷ö )¨µá@_)©±¶×ê·:-óç°Õ-Tãû=o¦±ž2õ ¥lpy¶F–®‘Þ:ãªÜ‹¬¶xˆ£Ž”º˜€¹â CeŽK|,í5¹/hÊz½ÖxÚØÛßÍ1é;zÀÃ߆ý»¡oGáã¸ÈÅ(X3Š­´¾%¨Þ1\|J| Ñ!Mͬ£"¾º+‘Æ“©ìˆ¾Yq¦TÓ’GºZ‰]oö¥ õu¡h†ÛÄFk`L†GI;žfÏàÛóí\‚hnÆ«{Í2øÛ°7¶”ÍûŽ*sîØÙ §³X“êÏGõcR}㻦úKP9Õóî$ ú¿µ/Cå*WF¾Q*´Æ¨\QwÁx¢ü‹~v7‹¤—w= cGé3ÉŽ)—ovvvîèìѹggŸ©s«7zÜÂóZkP•%kÉùä™:VšíæÙåõš¯Ϻ¶ º¢lçS†vt^[í˜ú3¨oËÀSÛõéíê8E°)¼-UÔþÓK®_ž¬CLè°`!”š]ázjàfs†ýSÕo¾xøËKa_ÙfÊ“‹ê³ƒÀþö/¨gÛCsnÆçi2>;é쯅JìSž÷Æš!+kÓ Ž#7b~@ûXTùFÅŠÂUÔŠ ¢~ öí'ÄÑ.M w“Ï~¢MuSÿ™ µŒ2’k&a S¶iÕƒà&q.ñ¿[[µó°Ú_`µ£#]ÍÿVÕ¤ý)Ÿvž=óªÚuf_~‰€Ÿ=Ó€ýo¸ÂõìŒa=JMSŒiá'ÌatxD´¨T[ÌbîzÃ)+@T\ºdz4ÊQæL“ýI¾¦¯-áâ?ç’Ã5ÖØ 5@j!½Á÷þèè nÄšO,§4<¶¤F%-ð³  L\èI{بláºÂ^-x_†íb¬²;Î*¶+‡ÝjÃum „_w­Ù Fh]oŠ´ÑN«ÉÌs&\¨þ¨ýA,V×+ÁiÛQ€ÛÌeiׇzˆþ^Åö²‹ùï’*5Ô²+^¨ILU©­è "fÅx8×í˜Üºð]KN'¼\v­æ_:žrðºÀ’é§©‘ö"™´×,(M®JÓ*Õ}¢T漌{Œnñ2Ò‰,óж‚ë†k®Ê8ºoŽ‹w!ÔèÈœO«•ñnÏP„yšO{G‰‹”³bF’·÷ÖF{»T$ÜXOÀÓ§ц£À/ àä¤Xè+S諊ëÁÄœpóÄta¯µ›'_A_U¾€EÜp:3"S¡ºƒÉ4ouN|5àNøp8È 5Çdö_DРòÞñYaœ4d `U2áx k÷omV±(Ú’lGÿL \'øÍ<á?ùQä(K™SðD±)ùØ1YÕŽ`[þ«æ]ü=•,ËÕáaô/ó?RÇ»àc_í<îÔ^8qxiÞ|5ü|ýá%7Yë/~®š/©Q¾Ðy²MÜyéEN‘ÂÊÜÙq[N澤ñùJ}œ%‡óUù•ç¦]{ß.#%VÑl‚{ßÌ]í?*ÔGÏæïçW#˜Ÿ³§Göq è×Qlo¤…í{ÔW+æ«ÙêÔ>®ÜûW×/ãÌŸ9Å1°æZ2åƒ kw· ‘m&ö×èqnØ/ý0õצù,0B€n H7‰h¦çÁšº—.ÙŸNrDÌù渘æÎ$X2èŠ)ÇO¤¡z‰åø‰-: ½ê0Ÿ€gÛTÆô¦¯,½ñ 7E|s$Þ4Ô›gâ͆Jé¦ìñúQ€|oþ¤qW5§Jg+=ò_Ÿù¯ 8sÎV²ã¼Õ~Œ^½ÃNæIO'Ò·:ÝýI¶.‘å„$ùâVNUÜ™¯Îj«ý.ÜßÕþ }ñÙ=;’Ϟѳgð Îøõu©¼àÜÔ›‘×Ù•äÈ&Û4ÎÒĬÁöQËK ÿ-ïj¼úý,xm› é‰e0mU¢ÛÖë™~ºBGŽ~Å`Ï5ÖÖ/ºÅÇ­HÈõGl†dÈŸÉdðO´oÈ> ɘç´÷¶íö@§`¼yO“göÌ«Ù\\Ò®é-z_ÔÙ†vïDçTDóÕK‰y›î}àoÃþÝØJÕ¦¼ ²äŽ„:“k$@Ù&/?³_rß_ª±9+=8¿O‚Î1wSׯþª»éo-ô%·ÎâÇÂùÔþ,;#gõùû*‹+z‹}¥t“€é–TÈè5g¥[ÇQtëx£¸%Dãɾû8…;e‹X”p¤™õºè°1°êŒ¥gxw¤Þ©å/µdåÊIòà *c$D8ØVݲ>›¬¯­×?%›ÁõY4º«B¿ø²ÃÁ¾‚‰7|iÖ·V jŠ/š­sô›E[íÈU;²ÕLsº5x6=NIiáпÓðO`|U% $tjXä‡ÞU÷”|NçÃC µ ÑÜG*o ·¢$‡ wÇ­þT·ÁþfÀŽä H£bxm©ùâ“,D4uFŠÖ£ÐÝ‘«Ã;f8±Wäƒ@¶{$¦SY¢3 h ƒGÞ}ð—vóÑ£+ë2õ C%§Óh ¨ê‘‡úŽ€Ê x6‚>¿& 5¿ø‚ÚvËçÙ±Öö¤úŵ+ð÷Ñ#JÉ€µ /œý?\uàê Ò‰إ]d}Ëç ÌÌüGBÚ‹ß¡OÇwhÔMã“LnÒ¼dÁÅöèÅ[ô×xøáFkì³ÇØeÿÍFÞ]r›uÏ­$Û`£]¢òø ”Ëå‚ûÊ#Ù-çÊ4ÑúqX–GÛå‘üÑouÁÜ¥²‰5!øã"Æï˜`* \ñc» ¨í>nåîV0 ¤âÒ­‰œe·º{BÎVBQG’“qPýýÞ´{/€—̃'0‰g%ï®Qt|V·;¥)ÎnIç„E Ó G5ƒɼ¤|COn0Ö°*ümŠÇÀÜ·ŠÁ#þtBß/'Õ8…nY…jȨ%ŽB˜œîkq5\»ƒÂ„sÉ”³AÇíýÑhˆeæ8¬ÿŠçÍ¥û¢ZµÂ6'à•û°ãô¢¼×mCÉUï,άGÁ9‘ÍÉ94ØôSW úo{œ·&¨W1©~¥çÊ~kŠ@“o“ä¾Ê2x—ìe)&ÄåWä·¸ ºSC–­ÁŸÔ²0ó/s0øÃì—²pð6Ìi= KéÀÌHÜŽê¢ïªîšªkvâ¥j_Øâ ê"8Qm½¬šo$ZÙRk»×äU8µ°§ÙËøbÖTªNl ïý¼{¾Ú;Ç$”P À9èZà=èZ0àÓY¨jË9ÏeÚ0ŠI¬¾°k¼…‰—$7†Ï#û[[]»huK½BAț֓F7À3Ä÷]A™.»æª51'ùänm¥]”Ü`Ñ:·Âxº …¬ ļÏ|¶SfÉ$dƒskõô(ƒÑ¹ò •]л$[”†]˜ÙGéé¨ý˜6,—gÈög6 ñî¶YØð¿µ‹55{ŽòÝÁAw‚ÜÛÆ•r¤æ¹Ö<ö åŽÎ¡Ùvsç:–i?n/Ç‹Ã4y–‡k,¬™'ÃAîü¹’R(Mï(IET‚@/½EG‘ÞfkÃq-øøˆÁÝÛ3c`ôÐÿÐåï® Ÿ{èîååæwYÀ¤Šè² Oýø1¯ôöÌfaX />ƦÃEh±Ùú™‡)ûv¦¼o¼K‹Þ½ìúp¨ûÆ~wb#웇ëâ­ômŽ«G§ÎXÇ:ºcŸ jHê ±¾´,c’Xû¦è5Ênm3Nkòæ…•¯&vøc8Áh”\Ïj®¡Ÿ¸ñ2Mói`z èÊWÓù Cˆ†x]Bµ&Ó!Ødž5‚^[üEîÙ¢!&+2_÷g—ò*):ßò,òÍ9ŒÁô‘Gq9è­‹ïåó3 Ü#èZš¸£Ò­càGµà'u5lÁ…:‹uÞÁº/+¾íìÍl·Ì4öZ£ ±ÔZJe–èe\qûO¡aöbåƒ|¶ó¶çIÁÓí §ô&íòè µüáDÁ±,ðŠátXoË" ÑO]{T°Ð‚nÉàL¼ˆ¥Õ_¤#¶ãàÚÖÚÍ×úÃNN–{ä€éLî*%AõÑ¢þɲJ ëÖæÎÉre]±'IyDŸ,÷‰m hr‰žË v0ôJ0—í&6‹˜Àî ÕÓsÈ(,kŠ«•Ì y/gP d}á@ºŽ'SÛ£ØÜ>æ¶tÊ&°œ!–É຺ƒj”2”¡ØÃ9°9Ò÷„€a~:ÎZFù,@“e\~»”cÓAÄÓ[¢ Ê8¼¯x¡²Q`›àIx+HsìûD´‡Z„î–Ú2ÚBÞ ŸJº`&ïž³~mwyóYj/½Ç_ç­N©0X•ò ‹|¸Yã=ݤݢ2ÜúácÚDüF„=DCߨ.1ïwÛCr1ÍGÕÊoLáGJúx”íNö·Í¿jV×Î~Tûê«-89a9B±=죞LI¦u[îí ­î†ã|­ÝBQ;\JÈb̲ÑKÀ…a©×®¬§vÒ¬½ºd` OR]bUw>°öq0ò¦EÀÓÓ-ŸçŽ+Œ ŒGMÓ"ªs/™Ê8²5™ì÷ÉšyœŸ™$­ä }ß™¤µcH?©<¼õîƒÍ«oTÂu½²Bp ±¾¡uEM(a!€ýæå5¢)ÒÀ›éo’¯¦[ŒÓ/Yך5ÏðbÆ+N¨ԯ景*nªµ‡¤s€'·çÅiœŒ<Xñª”t½4WTÖÛ¢zï©zø¥‰ÿ^™ŒÄüâFI·=tö5;kû¨í«^ûâÚæEÕP¨=˜¯GûË¢Šbããª$".ªJñ\¦Ö7 ‡tc‹  h¹8b ã ÖÆÒ«uÉ}‡è[Óî±6^ˆÑ¯ËˆûhÎ-iƵdž½¯5ƒ‘éÈªí·¸DÁê„Å1°¤4º=>asÙ4ŽÖÊÊ; üQrt™‹…=¬:6Dc”‰Zxy“í£&‘I.*ºˆc®¿±+MÄ9\‰—œœ+eC|;* ’^µ"NT>Îu @'ˆüPÖ æ¦´þ†¯ÿ¾¬¯h¢´ö_›uú„*(á”|¡[óùWZdJœ\ØMl O»ùøx+ЂüwòIöäœcíJàxÍßE>jKþü†îü£¦yÿ|ÌùÃXI'Tæ0¦xKsxûMWdŽoA…¬0óÛÞøÌ• ˆŠÕJߥhêOÔ'ÁR–Ø_1V$jÅt1:RÞª\§aú1’žŒé¦&Ò vm!2t ²X×Tˆž6ŽÖàr½¢d1÷¬ô´÷O.âÏ+«*7³!çó§ûÄ~ïl†/q±µQ¿W¸(ÈÁ=MûàÒYÙn¡>§xS€´ßnQrò†_Úþ]ˆU9x¢N£i±:íkçp›ì„ú|E644'½}÷n‹Šš_òewp ^š_e¢¥½˜4çÓkÃÞÄ"ë$*>œì£B†¶&p"Š—dÈO“BíLD)N 8Ä”ó9>>í` N–`+u”ˆû¾% n¶mŠ;oÓ{ÛÂ/CáC?™‡òù®¾+±",øå9Ÿz?æ‹'š Ê`¬­ØíB‰6—Xµóí%‘>ÅCw Ð?ÛS´lÖì~o™zÊèØ¡Á³ÚKù­$B\n3«ëÆè[öbXr¢2re"GÖzò%…8rçqÖ꣢ù«ºÒlZC܈%”Fm]_ó»“…,»_Qèä‡a¯‘;¯·¦TPz/$f§ð„a~ŒE½í_d{GÑnOQ® J e÷ðhœOïUÁ Ø4&»êÜhIÌož!µéÒíy¥ÛƒÖFß—;3%õYMï×®Á¾SÙînv÷fQã÷LAˆi9†”uä]DfíÖð?µCL¹ó˜ÛÎT¼zí÷WoÝ€…ë¯E C3 ›¤²ŒOâH9*Ëå[rf`zm~H˜½â çõ:0½E"W¯-’PnìjéàRÝ+.YRt{öz5Ù•¼“³z!¯Ln¬lJL#Šow4ÃÀ‚÷<{²å3™~uÀDEÓ6¥€KN±¨û¿KÊû_>PÒê{U*ͧ0v‘£wj/ F”åÆžgûü’ ÚÔ!l¯fd†—2øüNjxäqíã1ÊÐþ!¤Øôy¢(G?e8a[& #ŒÁm¨ºD“gÑŒs{ÇpƵz¨ìyN,ެ3&&ïp>ï†v•´¬¼ÕQ-y’H\ û¸á6¶ùfËýÄ7Ê2li€ÕÃÖP JDô ’¨ñÉ9œ£¶]%ær…ëáx"kH½+®©dê\Ï'í|Ði¹(•&pirÆ•:#Ù<€ §÷>ô<•°Ý Ú6­æ¨ê öj©Óï»úÜ5ÈWO׌øž]Ò3Ád˜­Ê´È.—)ƒœ®0¢:9ù¸ª.žj­.d5ÁÉèD„~YrIÎZ˜“íg+ɤýx÷zù8ù補‡g¯ñâ§ï¹ÌÉ¥¡éîäèÁÅI§û­XˆÜf1}ÊG fÄîÜüß˼„ï­¼àcö+I'ïM[k“öpœÿ•Û\IŒ|ÙÉÀè âùÂ,?ÎÍ?àØcz2i»#p=c)h…q­} ÜÓªù/­Œ[‡J'Õ,V“î$€e-ð÷L¦C*ô¸ÕïCd3ÊØ‹Ýzç³voß0ù ‰3B~ÀÏœþ9ˆ6qa’W’»ûým³iwK>NÉxÒ—i?½qÙ ÏÌ>qAé¨ì5CQÓ<5`åaóέk¼BnÈí6p`ö£¡)ĈâdDŒ‚„Ô4g»zª¸†g ‡yBï3÷§ºƒSí*âÕˆ‹D•I¦’r©%Cdç˜òôßMYH¡‘L|äõT‚ÊÊΘ²gjŽ`å já,ú:ÚW‚_ºfÄŠÑUt|ÅI'^-ºV~»¶%I=©œ<ìçç÷z­ýÉùëÃö>šÜœïÝ·Qõ&çÝøüýóÃ^ç¸Gßw6(ÿ¶’ŒMM'æ¦ú”À:e¡xí\[HQË¿Œã·®Àa *”Xl9T –$—2-µžœòáX©¥4(nùð1K)pTàqIb©óv|åI¥ *k” ¿™›Tª`§PÈ)3)ŒÌ!Lü¼™¥Ò½ã»éÛó x‡ÓpTÅ9ÂÉø2Ì4Ü,ï¬9FP•Ž\Lâ6'@H=׆4Üü-Ã*uvAM1Ê ¶¤ XÀÁÇÏÇËÌÙiÒíGž›ñ5Ù/ ­Ç¬Ûßï'÷\±$,ôKƒ«;èµÌœí³4 ‘™=ûU¶Ä(eVYyíkªM&WR êÏàIžDµ’ 5ïOZƒ½áÎŽ¬QtZè> šÏúÛZo™¡ {ÌÇ»BÝjFpÁ@”®LæÐ2BÛ ¹C˜ézó®xÛ ë¯sº±Ðöž]µóйžÔÃ}L„™Ùé¶rFÇtúÄ­ : ãýجÀ‚¨VqÞ ö÷Í(·s´Z…‰+dá]&xUÛ¦Ù¸ y¸{£f äuz¦:)œ‚? aPÇ%|RVÿ8z°OÅ5±A¤& ߆ˆ62Õ{÷A¦ºzí VjDW%^f/àîø-7EÔ…L4]0¡l#è¸ê½a/×éZyQ³éC½±R€#dØï®hàýÑX€V÷mE ÅDÓÖpQC±(„ ÚVis@Ç„L*=‹g§9¡(Ä]*_E6öE7Ø&\-Óƒ›|Íñwt9éHœ¼ ÛÁ}•¸~O¬—,4)õ.¯Ø«/“ÌݘÑÙ²c!„£µ®ÕW­÷ËTMkæpÞØîâ!uЮé£ÛÕúkH‹¼sÛŒØ_ʦ͔¨—¨Uü2Ucïåä,#çS\Lô=Ý^ ,æxL`š•‚‹…×\%L§â8è … ñ6\Ì'¸Ì¾¶@´Ú„¸!åR: _x½O 0‘÷ˆï¹þ¡Hä/)Љ>½Èbøt„­ÝªOŸ‹ä–ùìÑ,Ç`ƒ¨^ŽB®ç­cðu¯—¨è ù-ñÑðpåuÈ^4Îá6ÒV‚‘»ÂÇ–‹„ñÀàe(ïI·™´`*áþv/¯ˆ‰úµç7f¯Ä%'ÉÒ–ýÉÎ@OÎ(Qr´nW7Ø1 è¯Ú!í¸×^8i_AË# mìÝ¡V™ õö2.GôÂýçEØa¹ÞœbX1³’ºC$—™cTµi¹Mñl@2!a ð—J‹aD›:è ÆµTþlלS4Krü‘ÖöøÉsQ¢Å–ñp8%ë½ûæN_¸Ï7›Pˆ’ÉC—Ýo[lY›Ì3†E–ž93Ñ ²œ5ÿÚÍZÝ` ðFɉÎ &&õr¸Éôž3?—»ÉôkŒ¢H‘VÁê  ì}ížyŠáRo 0|¥˜Ëçäl&ÞPÜdûæèÈ õñ uÖ åY€˜S€3^ÊÕ—Ž‹1N+"‘™YÞE!óZÝÁöð°ê'è‰rÏ1eOdÀ@9kÔ&Ù\£?9ÄŽ§Ã¹½ˆ™=Ç€/E‰$O0ÍÁ¤~üéÃO趦jVL{ 8ÎJKg¾@B;J3Ý®®CÃuˆègAܰKoglÖ%H¶gÂÑ`|@wFÞÖ=“sÜé] Ì… 3!Œ˜]<ÁÊv¯ÕÞ3·Á6ºÒÖcÃä?Ž»Ï˜ä‚“ …O]yìÌß2»þ¥ oÒ*§&œ¥1q{µPE{Rn‰¼ šn‡ïYf²à¤ö ’Uüý“y¯åêy¯YYÉW—Öi%P öÎhzíRäÚ:`ÖÚØü“¡•ÍKÕÈÔ›5µ§±Ý¨……²'q›j.mó9ðM'NÙ"Pü$n ¡ºÁ¿²BS§+›ZnKôœK]˼JÛ9ž Ø–¾Ý|T“’3‹¨|aÿº}«Õ¨j+[<²6‹ aψ\A ”ÒÄ£ETˆA‘ˆ0yÐæ:Xbó›c¢ýÄÕ'öÍÐÁ4aó»£å<ÏLÿ@N…l¶tÒPtßtý-®C £—µ·#rå ŒV»^‰ÂÒå>k\×:ùNk¿7õ#8´™× ·©OÍïX¸Ð´ ò™¢cøPIè@Ts~^ lZ%•ðPG!Õ¶à )»æNlEÉZµ] jt ØD3yDWR‰s-²ï/«%Íê ©µžÑ/RŽ)*•hþº‚ï3ÁÎj®1„À¯… ߹喣¸!tL¼À䢊ð‰9ô,+Ô¿m&Nòy§óê¾M«ÖŸYÕÒYQ»º(SØÑÑ;õüìµ$ë™øYß›S)akÖôÏ!2PVù¨’´†ÝÎÄÎpd„s)P&=gY½– Hªr1þ±/ÂÒKã‰Õ´7OT0t‰pøK»$"ܧFà>N;ÚÌÚ›¼ÁÄÇÌøÄ:œ@!§ª¯;=½ßú\E—Fv"ÓÔ•ºˆ­Ç^@Ôóo‹ÈS*mI´Î‚Ü99¢ÕjÙ”pʨ_êc讬âï®ì/ÎäÚÀíש‡ ·"%⣎Ë0 pß4˲.ÇÍúȺ) jƒÞ5ë—àjW¼Ãѵ"|ïøéwþà(“ÝÒÉü’yK‚²>âiµÊj•¦,2ö݆’¤¶¾›†· ]-LŒ˜UàßJ­éD¿èJsp(ÉaY­Ô)Ï£sÍó…s-éÂÆ¼RTZLÏŠŸ2Q„g³RŒ-ð™k·Ë5oÅ!Sô2óŽÏ]Ì‚b雲ª¥ÆEšyµûzã û (Õ¦ÞèWA¹b%¦ó#éÐRЧÓ÷—ÂS(<¾ŽyA±4zW–@—ÜöûI¢KBÚÕ2ÍHøë`0½I‹'†Õlm‰Uøóð½ò(‘å•Zè®[Ýðï9èüY V!d¡ q;ü³jjÄ–*—ıSiú*jdÅÖ”ô Ý9·«†ˆ[´ ×SDAJÝK“rL§hzŒ¿W|ßÚÍ>ô×Åb÷!t$uÅð»&iGMÝ”  ·Û5> _Œh8%µ—žð·Š%€Q?¡ˆKiâ9"Æ íƒTÙp‰ÖNW2ž¾“‘íÜ¥ÉEFýk Âý\[‘ÚMI¼n¨Û ylïÎØîy$xë.$ nõ‘âVÏÍ©^cÖ£Ýo¬Jˆ†¤tB¤9ÍŒ°cð¢N…$K!ĤÜòì-7q•¡0 rK”ûàëÎïlìFå·šH>CÇon‚² õÑBðÀ¹ö¢Â°Ô*ø«Ãu«Ùª¶ˆ]A¸'q ¶vK—ºq§àuß/4{=²Š-·ájƒ²³¶^åEGêæ(ˆ`*Ü•©¢ÂÈž!18iƒÅeJÕHëƒNI÷A­+°ªxu›SFòŠ!<ÖH´ý’Ü H\`°ÍÐ!:ÀU=Õ•ìdÔ†}àÛ^wì˜?^I¬½té½ÏÊʰ×i˜Ó‰¹žfÖ´’˜3ÌÞ$AÇK šÁ~»—§Ý÷)™ <]ÕF ×,úš[dÜÂƒŠ°¯t48íË]¸KqVÒº˜¸–ÁÊü‚ËçÂ`“*EųùÕ¦=OñðŠ]i"—{Ã,nÛ€žÆQ“«Æ“à#C Óöx8™ŒÆÃŽJ%b»ië9{ iÀilÄ´qMhžMšñT¼Õ`›D¸MJ 4*éÏ5mË;ñ)øÎÜΨµ„÷ÓòÎe¡{…u.cFñYîoåföÛùäzsµ î\ÎhÕ²;k”uójý¼’ H¢¦&¨½oľî=Û„CׯK®°E'^+<ìŽ6)¤‹½R5D‰fWÒqè׈ÙQôËZ±—¢ßºËª›/9ä.tÇÿ\œ¿F4VÀ/Ÿ ¸æã%¬OÊ\X5ŸAË«ÉÎôÒðÏkJ÷ñ-Ýæ–¾Ä|ÇJ'Ù<—Êå®(PÁôBPmÍ$bqÕíûs–5%ËG wG×fýÒÓ-w|Õ]Ü’¬eŽ¡,ö·JVZÓp%ÉÃ_åJ÷­ôRôdܨXcçt`äôÊqÑÅŸžb4ꨣ¤Ytb$ÇïÅèJ|XWZDŒáßXèqtyn8ND/¼l³3ÀZ|$2 iaÄ¡øÊ⸼jOŠ5eñN¬AËÃØ‚ªá°ëc¡ ¼ËÖô%µkC¸&~Çð?MÎÀó9ò? Ÿ}|ó f‡|±HébÔ{àqp#Y|¿$ƒáËíë³–ÚÅ0µÆÁáŸsû«‚Èe´ó“Ä죷PÉv÷®2êÑöɨ˜âxÅå³CÁæ³øì°(‰ÇB™IÕÐyP,Fµ'›>Pü!92´rEL©Ö¬b9ÃYÓ‹¡%$Å ³nX`ãk§ظ ¾.Ú¶h;I×°” 2zxu¢7Ü…¨¼1h¿r%›ôa©Ü|¤{lû¾ʹF±²-³UçQP«dã~ž¿„:ÅS©/há5mÿ@vÞ"wŠØ¿»Å«Oß{Ùº07÷¬ß¤§nXFu`”®©á éu­†ç $† P‚{ëc(ÈRЕº*ç3¦©»µ¼ÞÀ»êN½‰UN˜þ19«[;#À;:1Àj¦bÖ®Žê©ù¢$†ÌTÛÜ;Ww7k¦tj†Ž¸’º=ÚËö8I˜ŽVÿó•ä  áÈÍjšbD>ûÕôÈÇ}‹irvâ3 :aˆÜ"«ÁOu_˘ʂi= ˜ŒrÎqƒàÚj2R‹‡Yeç Zµ xËþ`Ì’Hy\Ç·ï^'wåÄñ;uš²1Œ†Óf¸þ°ŒµÒ ¼Ð¦ñµãý‹Šó‡dA=èœè(‘bi]…G‘ÒYç[‡F‘±ÄñÄ64môÙÏxý#öÑ"¼º‘N„g7öy/QIU$d– ÝöÓ8ÛwªP7Ûçý˜í 0±)¶ Éf¤Èj3àp"y×±|p¾}EB®š··\N»H7€Àƒx.! †À©Qi,M3„®9Ìl‰X‚.êcágXݱ\¨ysÅÂ#Ñ ¥Ü¶·¨µ Ô hmeAk‚J”ž—Áä°5’úKDu»5èt;ÎgÅ6 )Ké M\ÐÂÅ÷j I›Œ!"­!‘Q°-Æö5p‘˜Ý¸DSlLe˜(B:u*i$5ÁšËÒQm¤“ ´M ‹]‰“gƒò]\ÆèµƒÝ(Ç®A¢K0°:W¯:ª‘2ÔbŠP ¡vyµÀ<š{°Ò5èΚ.‚ºbÂzMÌ YXédȯ‡µ.c¥Â2C4£‘%” +;ÂÈàÞ¡•äâŽA8¢(!ÎígG…(t‹dg¸o2‡¼o" mYõÕTiq¶ÒÁßeë5È;WSÞ¨÷Ty·º¸ÚdÇÔÒõ„H=1Î7kAkòÐ!m§ÍGÇçõ”^†úqì@øôþÚœ¬DQaVv]ç‚V;Ïê°[µÆc kŒå›U`H)«ußÒÏœ¸¨Ô5ó»b朠=ü·Ð¦þ©E¦NØx,°+5/U±ÂeFõå9¸Æ@a‘x¿¦-Llm;^Aä@`ËÖ¬;Íêëëë·±¾.¦Â†2kÈS>+mžÊQWÏW×?´ó•s¶`x¨#|懥v$òT$Î\É­t·ÔÝ­rúW6¿$nA3ûwU‡½#«&ÇP]O<ëbë²=!£±£Ÿµ1*RÐz]¼'U®ÊÂŽã‚Kšš™¿leÕÂ^Öy ¹^¸&WYLbh-@…rÔ F¾»B{¸+Cît@øØR›+vJîßÄDÃdú¸;Ag÷|l®A’ åd[7+ r×4îä¦8õx…E@A”‚ ºNÂÙ³la U£®ªć²®uÚïdÀ¯DÚ=`‡LU•TìëÏEk~JhãD¤ÁÞ–µýŠmšDæØš”)£ŒåÌ#9—Ò˜C Ku'²¿8ÿ§A¹Ý³$Ø=ªƒ':¹ ]6rj¹V™ŸÑŸ¥X¹íÆË@)Щf8† :ÌHÍ­½€«‘rÅŽ)ˆÜuYô oŽ(ë` ¢-õ ‡`BÅ4š¶ï~ë;wÓªu þÖ±ÝÞ'C³6Ç—*i¬…‚ÿ3F˜¸ùù]¡Uèpc ñ®·†?1Y…3í±b/¢¾Å|ê+ÅG_“˧Ná~½»öÛ3û`ȸå½7n“~ÿonDÛvrÛ6Ç8¨;’YlS@^êèŒÆ»{ã‹£ä#½´}ü<Û¹4Äû‹^JìŽ.ïàmÄb¾ãïg¹úà£#H ÃjyÂècvMäXäRR­Ÿ£8vRÁíIê±pØ d>b€E†6ÌQb/©µ 5Ywª[ Ù+¦ÓÕÏåªñr¶¤@SYAÀAã+ø‡O/?õMeN° ßðÍD—=߇-·ôûþ–Õϸ`Ü%˜|4÷YTÞ“=hi1JQ‹’&PdµQ~ vˆuºpR^ç¢mzé­ê›ú¡ôÊQ¹I½œ´ú£^^í¥fôåf‘¡â4Y²WK¶ÍšÚc.…‘Y¶#¥9Så„‘Äù²UêPWmÝmŒªáó8ljKE”Á|ÄñˆV¼ý÷¿@0wÒ(9‰¸¿¿U§ â‘0t_•¨íºCB™íðŽ©z¡r -QrC¥vÛVéû*Ïsw«îj—¾›}ÑéH¤¶ ϘãQÊsAg©ßÖpM¨Ê#6+ß•ÁxÜ‘aìBLÆDÓ7Ý –ŽÛ2ÚÊVõá´‰x íNÑZFs]oéPÐÁ^ð|jÐPËl_Öc†o¬xßâ[¦Ø|ykðÔ59)Ä›ß Þƒ+ìJ½Ö6ÒI×g÷YnNm£ao¸{t)©°ÈLéêê2$9éŒ),DuGVùÊ_~³wk’|ípV…~Éì0P¾ °¡wÖ;Ð΄$Þ¿½«Æ»Nã½Ù´zÉhÕÚÇÙAUZ;°‚ªR äA׈K¹áq˜ð+‘sé”…j3×aŠ™ Ü_Ù±@bäGnî©xØ[䥕Ħ¾ ß|< ÕÑì=œ9GfÄÑ'âïÈ´ö»0a9²ŒýŽ÷!r¬­ä¬ðÀ'kÛ†vÆGk<Û5A+jØå>DÕ|tYç@EwvAê&kålM$Çš—Và;5\dŽˆï#–JôèEÍÿ”²Y¹Ù(™ww”o'bæl$@7kßÈ2ÈjË0#ј"G iL†Õ\{WÖƒ!3pzŽ»F83Le~Æ—èlÞÄ ñŠr½õEPÄÿÜ(ÚóDs*=l:%¥iµ!âúóŠkè¹å a©z/©qßﺦ#®fïR}3ÈnGAJìó¾"[qk(衞vP}Šbt}VÃP1Næýpk‹:]°&smºóŽeËÍ{Á!¬#C¤ ‰⢡†½ª2Ë{z‰!~ƒ6]#œ 厤5)á$`ЇÍZÉ\àk ôj||5/9?±“UéœñÕWaÞdŸÝææ c†ºâ23ø»PI%õ—-5 â8K͵î‡z]B“ïå÷9X““ú†„5oSÞцÕfFšÍ÷yŠ5D±Ê‹mˆbÆ9Æ©¼8w¿r¾½49/â)¡&>q>³_aJžË[3`q)IP‚¶6ÎÊ™Aàï|I›.Á^¸ËK‹”÷Zí¶‘‘%§óZ$…"9âÈ,1ÚNsîULPlN^ðÆgÂRýÆ6•âjÖT†BN±«Ð.Ä‘¦@ ®&œqøX bÔzBr–Ë`P3=º»ß¯ÎHé”ú”ƒá`N|Äž3Á-ÊÖ‘ì¶ï­$(äO¦ãý¶¡+sºÝöM¼Û»sÏûáŠCÖ>Tuñ>Y©ÃŽû± ÜÿfqÑçƒlÝp‡Þ®!ÎÚ£{WÉ^=´ eáÒ|lN“«“›-°Øœø#RyãM‚ —CJpZA5,Ä1u`sþ+_áÁæ9ƇM@zBÜí|»i)6Á \:-2y1ÙDÛúÿ"~ÍRn“}!¿EŸÃ÷AGÖe»5=&êKúá¿ ôªØ:¶H°ö­›![2£x±ŸÈ( ¶Ï ™o¾Ö¾õ|+rõw»&Ú„Ãã‹hmŽ ÃÚï™å­¤wß~IØ&þøN;/E6F‹æ#"9;F Û#u™‰qI¶^Àº,é•ËÃB×_©‰/þòÂ!ëBIáv³‰bÖLÌ%èÖ€$¥57#”]HxØS) '£Õßîîîw§[ªòƘ&ë Ì§&*èÁì] jª¬(¦÷¾ã¡”vãááE#’ºs{H…`æXªXÂjÄX! NjB£f£¾¢† FÙ2khÚšµËf6ÐÚ]¿{ÕЬÐÚñ¦ß }Ì$Ù±…ø¨Ilªt^›³¯Z0ŸŠv¬— µóíÀfŒùçÙó¥ŠÓß·y6¼rc2Â:J[n긷JÌ%|ÍËòz€Õ C«ÜY}T#¾"qK„ó€ÄÎ./9<2°Œ¼.®àÈ÷«B7lÖ-Rö¢~ik[žê¦´!ÿœnpòìb –§ÊïÚiìý”©âÕ@l€ÆÌ¦˜ËAœCðcĽ5.^Ì®·hF qµàÔ-®”½öÜÊM¼$Õ¡š˜È.䃼€x˜p4Çæ™[°äÛΓÉþÈH˜`dÎs© —,X_Ù1É*„Ñ[„ÂÔ<1ߥ„°]õ?SÏó ó´PPYCöȞϾþM|ĸ)J™{Š‹Î=¸è,uI.æÅŒg€u}@#-Ëz23Y¤ ¼Ô’ÊÉa%ÚA§Ð€L®)/‘ÏX –[\¸y˜®î l]C¹°%h4NoµZ‰‹iS©ûÖZ e‚ŠVÓ8Þ‚›$ÍPµ-ÕoWJ·± ñ%5ä—s¤º…KÛ’-Êy’"}´ ÛM³D óKúÒ¸¯È G %±t&ö^xiÜû”¸…<]~’\`A./{*Õvbo/UÛ5¬l„¹$+ÈÇøo'ÎþãÊ¡/D`t3v[ôGvfˆáGAƒ †²0ûöc7[mÜð*-÷Ó†vá{*ûðOþðý•CŒ ÿURÅsáSt¢•øç1†‚¶á*‚‡¥Ê*K¨­¾zÍß}µ«è¸.þ_wÿ/>‘PàãßÕ@_¶^¨&ë¯/†"Ea- EZ×#Š@¹VHõÑOÒ%KJ2™ÑÒN£d¼83rZ½ª¿àcû¼©)wÆð„ð­„r<uä>¶¼dS¶™}¶J¸µi«n“SšVm÷KYB|)ëÅâ‘[ê/X4:†ò¹šÿñ$¨‚ØR” "DO¾¾ÅÃ/HRßVZ {T¤Šæ^ßR’*¾'IꋞÖÃbBxŠm%Ê*fŽ,Õ–ä—¡Ìæïdž‚¤¥D¨«×þzÂÓÕ«1åâR“3».H ód¥·Yž(ÈJÚhð¿®´ôCFÄ ——Üì_!ÞHQvˆÈÇ,Þt˜æŸÂ?9S?ÊBÝJÑV«Òƒ7{,bíÀ?#±¦,q‘\¥´¼­Vã[öã£ç퇕êBLå¼™‘”‡òž²¶£%ƒÚœ†Î CoHßqõj*ÂÝ_LS¶&wõj³q)ÐgÝþ¸°EùW’«“Qk%«F¾¬¿¬ÿ“ Öï»3ú ¬ ŤšVW™4¬ekY´ÒK×ÈלL|:,§lb”É_CÆ~Ïb1¿¦©–~ÚŸeÜ™tëµ.(3Å>Ÿäw0>Œ‘\#åŽ ,ìsÙ5 •È ÝÙ_À>Yp‚p/xà­^ww€fMá¸ÉmÏiÔ¼××ì$–`HleZ|  ½ù2X«‘ʺAûÊÊ%gjÍNúUwž°_ÅžQ×jÁ£IG`cMW»Z¬uÕV’>.t-"Ó°"Òx±îE] ª.h¡ò¿Y¤-¢›+fyúbÙÁ,ñ&²\Um9³Â6q‚à4]H9]eà~îaLúŽ}&°ï™ZÖ³ž½K¤`IkrHŽßæ=Ke|4ñ2íà³Û3¼AÆ“Ep’`HŸ!]%@˜$t! ¸±ºäÉ4xX0±7 j×®@f°©S”©™™ÿÀæi†Ë¦=ìgw¯*™‹ãÒ ÿãy«HrZ"Ýܺç w °Í¨—_ñ†%r€Ïñºª¤R  dÇ.Ö®?{ÒŒ¶pÿoÜÂéx Wã ,; çLåB£Ñ¥ýŸnþöÛ®Ã8ï¥MÂnÌ1²Ä¥æ*oèÊWEÝ« ª–Îé–£FWÕœù.÷k¿N‰Ì¢‹Kê¡™Ú_B€™è?ÇÊ:ÖÙµÚ»ÓÆX6–ùQÁ÷od„z¾ïm°þ–6Xpð¡¹B³]ý ­¯×Ry(»ÿ¾ÃÜÒÓê˜-Ë_ÆwÍû_dYCÞOÂ&Ìš’û_Ô }å¨ü‡"Y®6äp…Å&.ëÚ ûöý6nöR§šû_ØB-SȼÏQñu¬Ïç,«^¢÷©òÚL¸ýˆZœTñײí²ó‘ïÍ_0Ü¥DŽâYªBòÐë¶~ÝÖQ²pŸ’ІzÄíÌšÌx¯ÓA®æÒŠ`IÆc©ÀÇdp,æ£<^/ôúê’^Òô!dØi0‡8–ùƒXe ›D”›@C<¨±Ús‘ ƒŸeYÎ:!Ê´£µšÅˆ[„öÁÖäøÌÒ9KʦÀR "H^£¦:Ì@<Óëx… dl‚u2VŸ3 ë„Ù*õ’ ,ZHÔ Žsáþ§(Ô¸RO¡©u7—d5F$¸ŸÝ½š²WO¯Ì>#\Nˆ,åZ6ì»-ÒIB Õ¹±³½àœƒ’Ú­:‰ó¼"zç$# ‚~n¬f.’„wVsIš]°pÁÀ¿ØûæáU1ß AÖf^e‰áæÔŸèÆw âŒp%§ósÝ+ú¦%!”°A[N¹yéx VŪ.Ã4T3ZÒàŠPg ågÊ-¢ÒĪrcy¬±>Xøà¨ô{¦¼\ÆÈó+:?¶û4Ö“/ó®™Îä0twsøõl¤p#.Å~ç{Ó µÎæ0¬ïIþ¿$ÉŸ]QWOsTyœfK™8èÓ?•Žèû«®„]ú÷•¤¿ß~lsQ¸™ZI~zýS³KàÙrk+ì©Ki‰Ä’s6b‰“S'ùôY>àN0]ÅÐði¯3ßnñVÄÊ”EŠK󌠓⠧_k˯F‡£èjô~r6(<\|ÑõD7Ѥ),ï£ÀÈÓ,N)Äé¨A¤‚ÿò Ö¥„\;.ÿrÞÜýrÞÌ-;o§Ž3k'–å€Õcr¿¼ïí%øÞ»Kñ¼7q»ö¼.{.’l"H¹O,K—k ©Ò‡ÃÏgb¥‡<´t*jà²t—§LCý&Ų­;z¨QdqìÆ´¾âv? )0ãx·­d°ßîåÃi·“ƒ¢u?´½äPdЯ®$O÷!ìmk»;Õlúô¼ñ•‹?ï%sGúMÐ —ì(ÛóåœßÄäÓûqë°º^[JÜÁ«û•mÑZFøZûº=ùÚ¾ÃXðmu\ÞåCò”OÏ}­WÜs§]”—+1)ìƒÃn±GÛÜ#¼µÞžX/ Óœ‹6ÞO“ira=MÌ’ýµùQ´oÌÏ_›×š>4¯ñýïƒgÀ‡ñ4‘öS¯7Ú:ªê|ÆUmÊC5rHM¡‰”O<»ùôÚ°çJ¦TÛ•g™ÂLO·0=Ýèô°jÞŽ¬ŽžæGZ¤ìÚ‚Û!Ú.ìë ×DqûÀvbî@’š‹÷Nöm#øêb¸Å[8Ëì%í!;æàçòþ ½_%…Ý–%wìb‹´…•ÇÖ±0ÁwÎÜÄV³—W“PÞË ¥RCZƒrŽü"€sLÍÃ_vÛ2g¿A~H¤ä¸“ñá½ë!C7Í·F“ îÿf¬ýoÆR¥£žá®>|xß³&ûºQYã¯É)ô™;‹GõX Îåí8ÄÁq¯Ïïµ× çÔØ&€3bJKdžãÛFdG‡¥¯ÿv;b~e¹mDΰÞRêbKá›[B"mY¢v“$,Ë»ƒÞÐŽ_΢Er³{®¾ÅGKY:ÜBEéÅ;ÚB~ég´½ß‡ÊæGlBíÛCñzEP‘Ë éœmì©öpëk†¥è·¡(ò‰s»ƒ°«qÈU”),Ü“LÏÔ¸½[bG‘&ï;a“]P)×b¥°`™¹S0þw4ñÉ›™þèx¤Ç‘%¤§­%9ÉÁm‹MDrwˬÃKŽLÐpXÜ¿4á§­›1Q‘3L¤z„†ƒ¤V „ô4käp­;)Š:8‹Z7b_¿É¯=‘)ïç8æØ:  A¹Ëšç‹vY÷·ªöÙï÷Õïæ¨².˜Î‹ÛºþÁN7’ðywÞV´²ìч͌–9Ê8‚ât€¥}è[œŸFYy‘{{¾òq‹%2Œ Á+öÌÜØ3¸oDx,bÄN‚ÿ5‚âç%Ó<.Ú‡¢Áap6¼ïÄrgCüü?8w§e÷î;Ý^žQ›“a.èîˆ\ûm;Õ¯-“Uàz±eB`;àõ«LB¨TAédÿµ-*éY§ÝVÏ‚¨+?Ègûf;ùÆñW/s]]þÄÅBïê(FÑ®êöv-êÍjAÏÁ Ü ¯"µõ¸¼3ù6 Gãá4ï4ºÌð£F•!Åüvœ·¢2NœZÔÅ‹$)Û>´ÌÓÔtw°\ßN ƒf²{yë ÇkU5ÇLG•voß|ëñ$Õ=ìàÆúÑ»šëú$&|PB3¸Z3Ĉ˜ÂDˆbu]Èñgbtîp(l¤9âðÀW`õÏ7äbßü6,—háe¡,-9Zõè®ÇäÐ êð£]r·LÜRK7”¹öèŸ:H+ɸµ?‰'ºá #"·¹ûL)+¼³Ýšä7Çä¹& êMþ”ìÖPuâ¾Â}êÚþ`’w|J2—sóÌ!Ž|fg€øb;“”¬mšÈ]¤¨ BØþ(Äe£Ù‡åé<°ÄJÀ6­#§v´è±'âÞÙèõÄå¦K¹b7í õ¢“…Îϧ_oš®èH¨§iØ:kSMª¸Ûìš7N’ˆ†ÜuGµÄ·ÔŒ8÷lIäA Ñ»ó –Ž½Ú¿nË £&îÅ›æ¿+ë[«?qXM»ØœÇŒ‰ŠH!!¢!ý®‘?DVF¼àfJüXLîP2ãškˆ¤¬C|W ÷!&¾5,ñž»—œ°—(± {3í“â­*]ën'ň/rÑ©˜Â Ï…òŒÑñѶšÐh!“qWÊØ­š’%|—Nºó”²EÎ2ïÊÈŸªa1Æ0FŒy$×aÙ-Ÿp½\:¦Åù`oÃÃI2Èw[ÓîAN:•î`7­DŽ\6MWÛÕKù ô>&ö>ŒNãØ<§´ëkö¢: âÌý‹¼Þ ¾HØÏõ)]ÑxFÇIY©w’Ö¯ì‡ÙW’Ó0`ð˜1+Rý9 ç»#PtKŸ„ë Õò †  u‰ö2óí—$à S”ˆ÷ÿ"—½µ©Bñ»û‡– éØwöTÏ_É£ºgiK’µ‹ÖGáÙÛ([{¬à\ŒÌÏü 8‚UÖ£ap¤WRDLO<¸¹ð¯Ë-[´>Êì(é-„eèåíitA(«£þ†G‡T ÕÊýîdbÖe• –4S·Ò®Iuï©+bW¼9ÞÛÞ8°¸Tl™?hÂÂ*ŒXÙQ3ÊøÓ¾lZdð"½¨¡“‰Ø¢ê®ò˾ò_$ÆVeoAGGÁ¨ÜèycÆÍÒUò §V¿!V#˜)\IÁXš$þ+[DHŸ‘6«äHÞ@Š;³m÷ò‰“C‘pÄÌËœµÅx-îïŸÆyxn°iúÝïò΃î4°£x\“|=Iþßu2sXûHX¸ÖbÞ¥Fù lƒqNÙRòŽ”¶èu;Ų»5gZJÜ9aGt·ÙómCæŒb:é`}ÄägëO†ãiÕÅŽóc¢1ŸG –Aš\RÞ’Ý‘*Ï•ÂDEØ“ªþ=XM× ù€¬ÑW²@®hÈZkž0oAé+Þ¬N°šä4³EZ%º¹×O>t;Ã"Õà†¤Ì|Å .-·ÑQתÇǰoñcÊÖT‚¸ÜríØÐQn V–´hX5Ñvv+]îLèþ^7Ó Ã¼g9¶ìÀ¦TÎÈrlÆÁx¢¤tÑ‚8Z}÷\ص —ã¬p‡QÜÙ]ÞRÐtÓiçÆ~ÃÛ0Y‡‹…ÄÞ,$¼ Ê‹U2y1úsEp“íbל4kþsŠÖ¼Õ~œõþTí®Bàóe°Ú­éÙGI0ñ‘pûHB…µ¸:ç'Cý!‹EátÝ4ë|2ý.&ì4a>/e¬ÕܨíÛ¾Ð$)´.ŧ—­³ç̰\k8Á¢’šãw桺¶³ë¬/îuG…5ïÒ4“æú¥¶dö&(rh‡O?‘¡G°ií§ƒŒVShlqÍè—®  ã¾{¹+¡p®Qjª»•‚Ü_I]ô ˜-”ySóÊö¶FíZ¤ÛQ’«e* :ÙR\åjÀn^}ððj!C ¦pì=0À]è]åOÕÇÓ?ïÔ¦£K¶/5‘´“sÁî1?;¼—T‚HšwÓ¼?‚ïU¥-B~jȨ74½Å×TªÐ­N÷h05yæ[C6Ž¥ONºÏTr‰)PZ»Nq\·À³f¡¦HuÖûý{Û´õ†©oÔÔœ ä˜:žõüÂdF»ðªyë¨Êyh›µkp„N<˜šŽõmÓ#ö á“â„ïýàó7Nsr=ù6IU®“DÃú>áIYÂl ÁÄ…FQž¤7Ð ¦9ÿ‘œ”WRùVíÅÃ%IÀ–`[HÙ)ï…ÌÙµ°°>¾ûòJŒ„µå|çÃþ\o˜\ªìBÚÊZYd•±ýO•â'+Éô1øK÷Ý$ܶw2ŽH^ê ¸É^N(f5zf)M軈ZO#·at:ОBýÜ:Ÿ®9 ¨:rÿ“º21òûÃÖ¬ÅV32ì!·û,Bî<­‘Rɹ“a©XÍ3_U¶–(ˆå ùb,š†b·’îÌpò%î;y)ã~ä¥2Ø -t<3Î…æ7Ëÿîú bŒ}†·p(RÊÀ ’1Èï¬4wT“qWyÞØ"ŠY9€¥¡ª/X†±:¸‹Ša³f< i·H °r¡‘H#ñz ~ å7 G”åžîwó)ßlÊé%rø#蜾¤!ËŸÖèÃ-¹Ääa 0E³æÑóŠ+¸ƒrÛ#`œio8ÄYŽ`ILª‡-T"®²ñÚm‚¥[Ã!w]çì¤l<åên°tvzàf~êè{Ô²mÒô  +Â`@ˆ"5-ülÿ p`o9§s3KãÉ4„Â='=1Ó‡wŸÀ[F†‡§fkÍhÜ•^W)¬K!Ú.$'ÌæÀݸõüÝxøÇOáÎs;û{U¾¤V×û¿’ÐéûâçR•˜ˆ|æ)ܬ3a<"ºXe`ladW”Ó0ÑÃþŸœMX¬à{+8ká / pžŒ.°ŠÃ¬XÖ’¡,C½Uý&¤Â^`Y÷GWîåCtêi®^mÝß\ï\köôF~k÷“Ç·»›½ßïÝéßܹ7z0y8ýãáG8øxûËgfmM;pá‘ó‰Ÿ;;UlÈ5Ï*àÈ…Ë3CÕŽÚŸ5»—Ìësɇµ-²ª­©%Σ0lnO DF*]³Ñr±ys­+§àí³VBм½’Œ7Q²*WÍ„\laˆNßø*ôZ*!ʰ¤ÝådU®ºSCaö…6mg:%î’XÞÂ*¯è c~ýûöhIËA©B zÔ„\C]àÓ 3Û èI4Ûe‚–[âôü¶{358ÆõÃ[Ì ÀpYÖCÒ çÚ¼§èæP¿…«"§ˆÁ'ŒµZ8Ì9kå#Yµ7g½ì]2¯cëå—Ið‘kæ„|Y7{â*Ñ`nØlÙRñ“ùÛÊ*€#D¡f„úŸxÚ?«¯—œ·N©+jmö:´€ù F\Âü€ ¢|à}×FD^e‹‚xÊX|çˆTáW韒oÖÓ¿\‘ ïM.ëø…áWP‹%. ͯdÏOp‰`Ÿï *\° }œÛO7µ=³¡ЊìGª*-‡õs‡úZymJó–ú툎Ï8\!²)8·ì¸p›x&xEuž–5 |š»ä~¯-ä°LÁþëŠJ©,ÏGVÇ;a‹±JdvjujÙ‘§hRÊFËó i¨GaòÑðÍ6ZÞ Æ€^x…½º››YØ}9?zÜìǃó÷ÉLozÿ“Ó!¾·’Üiͺ}s.ëu÷ò^÷ñpØIòÉ´kÆÜåH\þt§;i^”¯í¶úý@EÓê™Ód¯¨Fá;Ó=ëëeÙ/§ßB§û­Ù\?EèÕjvgÏáq‹ à©1hPí/…g” (rüˆYÈg]Uüƒë+…-ÿl²·ˆŒÎZk´d:n™“x4nãðY>šáw:y'º®<€ãiÿ3¢é8ÏÓ„lŸetéÿ~ìcìOËn>›yÓX;']V4® ®õ¾WP~V“/xÝ7Ci[½€|—ýî@½@õFk;æ0wz…ßõ†»ÕÏšd|@W~B™:wÁ[Û†eT—nOp¼Y·&ÈpûÛˆ€6ÕÖ6àÀ£¬w”CjVG¼céå31„~ARû¬iûŽÌÛþ¸#ðÕ¡mÖmÑËôzõö`Gö×v¿·¶cØ€š`S6ŸÌ¬`WW’ÏþÔPF劧¡üU:H9Õêq„3òݱÕTT`R.•6W?¾yëÁêÇ•b–xä ¶Çi‚w‰pK°ž’ ¥Ã-jg0i·PQµê3*4CD]PKÁ5ƒ#Iü[£éÁŸnÜÖ<Ïô0ƒéÊ`Â2;eÏ›$ÇÏì¾i™'ì|‘ŠÔl^Á|ÈÌ[`Y™4§Ù¢™L`²ä3û<4–ÖRŽ üŸüßqŠ®SÇxýÃõò5>9Øñ¯§Itñ›ÙÆÅ ™¶oŸÌ×?ÎK\PÊ ^s ¢¾™¬¸„ðe—$Î+ …zG³}Zn…òùÂMs‚¾¯Ç=ÈÇ¿­ËõiÚóÄѰKÙÔ^¼:lPXQu}dôôÑÀöÇ?­4 ó|4“Π£¼úí`Žÿ \ã·ó¹þX†m°¾úÛ²[žƒ¥eLm™'¹ÌÓ¤:\>’e(M­¢¸zœâœ§Æq¨Åb¶†öK@p'YVïDè‹}Ã*û¿„Æ·siô,Ó¨ ÍW˜þé¥oÿå€b×%AÌ]Ü¢—–[ðü ×»m•²‰üÛÕÊï®Á‰ïæ‡uøóû×áÏ'¿ÿþ<ßÍí_üsïŽ-Tw?÷í—†ûël¸¿ôàözî¾Ø¿ ÷ aÿn¸T÷wrûþ<øÿÜz•ÖÝzlê`‹5‰=™•,\?É﮹…ffù3gak¾¼ã~ØU!Ò$Ùÿ›¤Ï ² í"Ç‚gfDÁã=)Þ?•½)ÏLm)<×½ãÀYØÁ¼F9¼çê_)¼Æ²ý“ó1Þ²ý[ÞÆñúG£žïxý[Ïì+Ç£¿ ”]oi~µ <³Ñ-Í_$¼‹ ž¿#4;æsõàI) ?K[Ð_@Qùj°ÄÑFJá¨kÊL£{Ùe‚¨#–Õ§¢=¬ï °­²—íÉÓð—[óÝgyu'ï·Z=:®™~]\‡£ Õñ‘“ÔÍ«…oPëYc)5ÂgŠBüÚzúù.fvºkóhN•¼-PjU |9÷í È:PN=%YÌ‚Äã—ùRSdz–ü5!"ÔÛƒ«B>Œ*L›sÎŽÚLÏ„2ೊi-v,Kt,)üŠÀ?Þ)£ïíõÖÌÙWüç´:Ùº"ð—<;ulï(K§A>‘ßÞiö”ÍNo{Ç*eÍ—³¶¨Ò­Ù¦æ*W=S\O¦@a=쇠­å= ~]•ØÞÁP~¬|цA´=/ŠÇÿ5X ãȰÇ;ƒŒ™Tod•»y¯“Wïä-°/´J‹Lª,²U»f§²Kš«X´<ß °áÈH äÕrtœ³Ã¡¼Ø)‹3‘½îj À†§Ëb£¹¡ ÞB4ýQN°A»šT¼5‡,%æÅÉCùp×>ܵñîœJ7±kðÊþ’t¶çuŒ‡ÊZ/vÙ:´Ü¼á âiæ}–zéžrÄ*à½Ú ü_LŽQ8¦ˆè¹=È™¹àTÑ \aH‡Òõ4„¿bfÔÐt¹Þßû,µA•í{¼°w‰«ÒJg‡¢wØ¢§¹–ÿ. M…à”„\)ÅÍ{Wo_k뻇y“fXŸOò;HOÕ Ôª”áߖ⺰§9÷?;HMXÌÕBœ°é|ª{W²ê\L•Ó¾'‹_úbúê\q/a7¨6Îî­îƒ{nrÏ]†¼N¶ÃV8Þ8ùF~D.tò¢~¥>vkMÒDg 7È0ãQšTšMtåÚÑ~ñ½^´˜¥ ‘ 'Ú˜´a¨ïë{=oH…³Ó¡–©éìp×(€&8(¡ wãíõLa³•v𰪵w'O«øŸ¢ü¾6muÛ¯‹¼“ý¦¾wb ÂG˜—¾²9Ü£‰5çõ¶gæ©̱ˆl,\çÞ¸zåÏ×wÿ\ \'&Óñ~ÛTN=H“džwBظ¶ñV÷ÁB#y˜O¦ÉC(W)fº¦H]˜WigÎç ãf£‚®ü¾ºrД.­á¶‹ÿ Ù)·RÌëZró6,·öpœ_p4‡2ޱ0ùvpI×Í’,þêŠ.nÞ"Å›¼¶àŒpT {9a‚uýŒ líLáÕ|<޽«ð[(a›k‡ãnkÐΓî$éöz«f?ëà9|8‘ˆô5U®j7bÛ ³â)Yí,ìu–¥ýÈ Äü8[5G?ŽÎ29Qx ¶ Ö_)E:ï/%8¯,rŽÚzlŒó9c9„ÎËn]gwói§qO¡57|ÇìYÞùl ^=»Y}m½¦Ìá¤%¥)J’ÅDrúO\ç½05u§’š©ðÔ0Ýìp|4óžüµ[S´ØÔ»ýŠu®p®Û5gŠ`@,:‡h¨Aßþ X¸ÇÂß'ÖW{QŒY´†ûSº&^ÜŽ!òZ‰Âz¬Iº×øÎh¯AÿþÐwb!úÜ¡™Â_a·KÝß%ƪ¦sÇYtoÍÁ‚-ò»(`½Ü4ÑH4’ ê I‰@BrL,œéõºZèµWAsCçÆ¨ô{7–0†SÁáYæE ¢íB‰¶Þ”í¡5%fo³rd¨¦Ï1ò»Ožp†ò0¢Zc ùȇv´'9^¦ºE°óØ`D¤ŠS·É¹×ôïv-eÜo†µ¥N$¿ÔóòŠŸu¼÷òÿ¯¥¤ƒË 0 ÿ­§Že‚šôM¿çËØ7>–Í[¶@ÓŠþã.J Òdå5ƒNeSùàýö¬é¼$(ó¬Á¯À’”yUz+‡r #$%«. ¬hìuÕ˜ ëÚP£í„Y›ù€Ij¶Ê4ùÉ.^½ ÄÁuò“"oªóESzÉL©b7Ÿáeÿ¯f5Ý롪{¡vûELÛ/®Î©I{7œ4;3ªV:%N»(@ýªl–ÌÏ%˜F-[Oþ®fófõÞùÏÏO|ZFSLê3!äÿ<ÄÕúqøîëxÛWErØ5e»v­Zéõ¾†R̰ɡhܯ®á}áZ· –òÁAµƒ-Hvj• ÅóóÿŸ½ïoë8†Š«[î–멈`H¹È¨nÉ–dQ’+MÛ ’Ñ €¢ä’æôäÒsé=Nï=¹\Œ´ëqz¿Ë¥\.É•ü¹ÄI.—âg¶ÍîÛ÷PDÙÊðññïíζÙÙ™ÙÙ•È—ò汹ÚÐ~½°sJûó•Yª©î¯ùZtiðZDHÐ>Òn¨XWøš5r,ä÷Œy:“u¶ ¾Aºù:%™#ì]ìToýzéL) ¹l7ˆàSO.¢<Âf™¼]œ^àÿœZÎpv… “3óS¥h–ÕoV’â”{€7 0¨á‚!o#7ia.ÁÖdWÌF¹.‰jÉcרób+¥åéý…V&M´éx^pªÉ=ã ååA…wþ:x¼®™,õÝ5›©Ösæì.²}‚'‡µ9¯¸l9CBü'üÒ)‚6?ŸÓ\2à2ZñA¸7W@þ‡e£t—“nëøerZš˜×‹0õ"Ž‘äã¤ù'±-½£Vˆ' vvæˆ“Õ µŒ#Ç{X>$Ì™‚ƒ¾"¹ûAT[>z ŽJÙDÝ÷ ½5òER¿ [¤[,PIjPçDPêÍ~3¤a%(,Ü‹åÕIñ:²ìX€È¸Vg¼Ä‘1)3JoLý4‘QØ äèë¨5š]RvN !qŒM>V9Øæ+ÌÍyœ>Æ„ Ä«­§ÖtéÚ£Ñ;i²ô.Oàÿ$þÄÿCqÜJ|ç7¹$j¢À§:r‡ê‡Xç¯6˜sâ²à9ÓÙ¬¸Ô˜ž1-<5/ÎóÂÓÃ3ö]Z›2)œ˜d=‚‡ÄV…·jtîËÝ ÙaÆ©{2› ­ìÉ„/’Æ 2™ú[®á=G[0ü‹òG9…× ëg=ì⢸xhÒ}­ÖÃèŽ=T£…^ñáÇ t†ZÀI"f 9d¼ ÁÀ„âGxìž=1‚ƒ¾qqu„³vqƒ¢¸Aýáàz„âGKÕh¡WTmÄŠâµ´v]hçò-\Êe‹^´h jÑBýˆó´Zk+·â+4×tÓe‹»>*+Æ¢+—§â?¬ñügjs•7g¸2®Î­õû[Uç± /L/˜\QeÕ˜§·Fu`³V(œJìbx—BÜSmÄz1¶e£0Ìg_7¥ íÍÕºMI«MIÙ&Ö\\Ñä”{ Û“l֞ͺ=k­ö¬ÕíIŠöèÑÀV»žô(µ NŠc›ÄÜÇFQÅ£A«MƒºMkqÕ‘ñ1£Á6pnÈjÏnϠƹ!_{žö(¶ghÌ1>Fƒ”ƒ3E +Ìš„2°Ó$yšdXšAžf0,ÍO3–f-O³–¦QdO,xÓþ¹”#5¤ˆHåUqùJ”ô‡±~E9—©ÀŸf-7|T«Ú :ˆÂ·‰¥…pÊtVQiUŽÁ«ðH fÜÇ0(áJ%ko’Ú»3¼š" Ç)°Z£û•§Ü#+IEà@ë»·lE“>jl÷î|ÛŠžÕr¹¾5;•ÓÑ1W¼ ^(=ÜRH a1 ‘Q“'ŽZÈà>æ¤m“‰ì$Wzü¬Æ ßG á¨N0Ö"k&0-¨e9D{8 jŒSµT΂í^P—Sýd{»Á«ijîážòâ >ÒŽ #€Öõ(¾’fŽ#´{¹FV ±{s—ÇC㊠t?%ýhdEyok^oI;Š_TW‹PŠ"5OÅ"GjT‡³AžO¥&× $¨\-pô®K÷Ô!$Ë£ªÎ ²9>ý¢ šá·Ÿ‡~ÅJŽæU°8Er(cȦ«dcV·ëôœDçGëÀM?Šž„Ä~ubc–±±:ˆ¾¬Õ¬â[ô‚-…Ö°1Ôò§Ojå¾!ò“B¥@AdFG9OÕZÆ©¼2}*‹i‘)£@¿ê0¦[åÜPŒpÒ¢ð$)|ÐYxÒ(Éø`Ì.—‡ª´’ Éd“2Y]î0ó# °Š ®‰¯—c¶'[Ù¿2WÐÆ\oÇâqÁ\bÌ7@Êá~=ÇY-z4©ƒ ‰ NŸ{üÔWjN˜7]ÁÓÛœ:P~y-é,^@JãqŒ`:v³\mDfNÓ¼>ÎÇ •;Ö–ä,LÁ¿)-£¯ëÂ&[.diVG ¸Å*H+1~¼†3î‰8ºŠ»Æ£TÆw©X,=À ž’ ¡ OÎf×pçÔ´shZ‚ªFØíÍå«YF7'¦aNClLî_؃B ˆÍå йÈp“¡‡h¾ÁoïæíàSe_ë»ùþÝ{”â:ÞpoEm|„›òתgnÊ·¶'Ïy8ìYZ!ùi}[Ý' [ç>Ã%µ]Þ|·\|³vû® ®¨{·•N¡{i]¹¤Y9÷¶·{‹ø(TŒôÚZ³bíî_Aå‚v¢I¯ š•soDB4ÝGy8‡Ìйw”G!²¯¯b;ç§ÇþOï «þsì {ýz×–F …õbk8hØŒ`,«?ßûÀý•B½þ¬ï%ÁfÐK!¾€p,ÑCÈÓPÇb>æI†pÙÇK¶1®a¶`]AZ›ßû‰x$e_>›sdPkD|ÞwåQO|„D,9‚¥R)oÖü)=”ÒBˆ3$ÕÜÁ¨£¬˜Oßk*°äÓ•Ѽèò|iš1†õ‡Qpùð¸2Ää¡=y­1ŠçxÎËx"ƒð0¤DWTjÐ@„¼‚T±ß¹}ŸÜ¤¥ÐIs!•ŒÙ†JÙ‰@ _/š©ö©U*µÉÕ‰ÒEeVƒi±R‹1aŸÄ 8T¯Âšº«íVa; ÛTØÎ Âü;+¼?“j¦É“ŽÒݸ²þ¹üˆºÇ¨1–˳æ&ë)ÙT¯ŠÔœ¦4l#¨è%lpÙŒ ç å’ŸN h†8ágûôäÑ‚•†*W x=ðÓ³ˆ;g+Oz«EêÕjJ¥½5‹Ö¸ÊŒ0+‰×Ø(çJ³éF”Ù…añB§5g‰W©^×ý#¾é»£ÙH\Üíå‹L¾;˜«¡´[ójùb¾©‚¿W)Ìëø]{A÷oJƒjÜßeü]Τ¦a3|¤w>2ò-öN}Þ› î¬X*¸£tmŸN=õ”÷½È!n&nkeZ…t©§ –µGyÐtS@¾Õ øhî³="5 pÙ¶SÒÔíu\ö9*R{sû’â ÑÅP΄Z}Äd©ôݨ\*®‹Ä€\%bØN‚^PBkœ T(쉜>ãTÃP‡®,û…Y^Ò£!Üo&¥lq›ã–÷q¿ÐBŪÍL©Rç±<€Ñº‡š·ï¨Óä¥r¬÷˜w¼”x1Œ Õ÷R!†®ƒ6Ú|E¹"?’q(ª’ Ç [M …2Á1qxKŽðâÕEÙëNÏàÕã¯$”TÐ ¡àø¹ËÔd‰9UÏ?C´‚'kiý\·@†OzÝG~Îìæ¦XŒ¼ïe¿86(šJëº&lݳаo (yÕÐU—_‘¼êråÿ_lÓÆÒD™<•XWↃץûn¹È1`6o"Š‘‡ÁC–£“pzV6n¼0;>H Æs‚jÛi:’ý“&žÍ|Yú\>ºAÞõsÑŒëW±&èž²˜/Å̾¿Ä¬.£(øÜÜíŠxG©Áº]¤WIÕáb6WtÛÙr½Õl³0â2žq“ ÅM8—bjÈ6&w.'Ûº³Õ%¬oRñ§%X5)ŒÉV†d yŸ'#+–:Ü{Q¶É®&ÛŽ½j¤l‚ÂÒ2eFôyÕ@ŠîδǗkÌUÊÍñÐXa÷tºÄJÃ.Ùb%¥ˆÍROí–ò‚aÇ¿‰ôêà/€<ëXkÓ”S ÉìÉdJöPíŒlhgÓ‰ºtçàòzÓ ÉÃZ±ŸàÈ]¶æøGѵUÜ@ªàÂŽm8Ž|’:УÕÕq8[§Ìc€yðˆ¯Ïêãq^·:®ñ«Ùˆ€‹Ÿu:УHb¥‡4`ǦC€cô”è[¯ù!~ƒÓàçÈ`Ø7Êq©äšçÆç* ¹~Žò2.Cðb܈I|ü¨ýŸÈQûŒ@ ÑÖÎÖw~®~¡ûüLùè]=ÊO5rÄÊ‹¢2´ÆµîÑ8‹±èçY| ±ý[¥Æ&.B6³"À@vOaj£}/œž©Lɦ¹ˆã¨l…ë¿ãè©lœ¥xZ;„Á7‰]èá%t{u({:s0çMfÐY"))–Ç[sè “ /oB-bÄ!Pˆ#àHS~÷Ôy€acÄú€!Óí3@†+±`d%áyÝ0lØjBl⎀:#p¸"pûxœ|€n ÅÃ}­öŠÏ‘ýáÈ>C«óT' d‚ÌÃŒyfŸy^“¦|ù‰¼øfÏŠ¬xùasw¥péT¾Z1'ëq ™ÇƒPá*€5@&Xmó)i§¶tZ–÷Ö{ÑĘ—¥®P. þ®Ì|—àÇòdu1±ñ_ÜJŸ\Òíe²Y%ÌfJYá} '£$*JPð[®…†¶Gš*,ÉŠ3ŠOO pû«é¦i'rðȯ˾Ãz[¾ågU”}ŠÑ+9Ó¢K;Êu°âqbáChs'8×21[¹|‚Ó̃1ƒ‹TGðe )Mµ\ Âzå³u÷Ƹ'S ¼ÓQe}4ÊjUÇ5¿Ã×±¶Pö>N‹«zr•B[ÂQ>Oÿ{DAk†¤Âšf.LHx«¼™õk]îáò“Q4•JÄ Ì”«þ2Í€g}  RP®EhÓ #Ûí|Œ2 „AO$†œŠ”¨¿pÐ&ë”æ>ãšù%YGÛþI€í¦úà¢DÇfOäzrœÓ§µ"c½jHB%ÇÖïúaìIÓl=¯Õ3ãùBž=§ƒI[¡Üâ$Ý›êQ>gY]:¬‘±ãÙ$PQ'‡Tf¿Íñc%Á«1rd³±'ã€ç=Zbb!¡¡0¤ “cm@!<ü™ ÊGN¸²äðÀFŒpi¼‰AfΔà 9æm„A“SL|é' “þ˜Ss9}å+[æÖ½¡«ì~¥zá2e½v­ùòÀ¢j(E¢³ti¢Ÿìy3“šQçÚüg ø4[(¯(ffr¸{MYT˜ÀžzNxI=]¾÷LåJ¹šúœQ"uFrvqÿv]Vd^ø »n–ÆF†¬ð^«÷ ÑC†Õ¬(b9¯OL-¼»¯f‹Æú£º\&™­L3$•Âɼô *#‡ÀöEù.ÅD5˜œâ¨Ç!¤ŠÇNÀÞ§©I:’h*¥êSXê|¥¶>ÄHŠÌÊEÒ”…ÙZŒ=¯ý3E jêX>mÙÑXV'9¦Ö¨(Uúÿëk¸mUš• šc“'ÄB¡^C×o.\ÇÜܧÀˆñƒ<éNSæ5wýy94&×!'¥y‡Åcst”^T€O4¨K 9Œ,4Ñ1…úDÏjtn7Å4áàІl‰1U¬]F¾“eÒf}Û%ú3‰}¼”˜]3•jÎ(|÷¶Ý°;Erp'F‡ðɈQ¢Yö.]X—HÕªBÙ“V ÒÐÅIi£þ²*XØ=d󢂊h½xÈñùüÓ'ð婨·AG)¾èÇ^Ÿ”ƒ:‘)Hv}bº~©cÌ1Am]þcd½=T&sq/,]¥R¾‹‘ˆñIø?Ò…tî Üp¾ïw8d:°eP6’Š$Ǻ¬G†v‘½’=j§­R/{¸”1 »wèÍ!åµâ¥"ß{7S%Íø¬ìш?Ñà˜]¢Ø·4“ ˜=R»YfµcÆg¤4k¦»Ü}²›ÇÑéà!i«'ÚÅtI³!ʶÍJ6è/××`L¨[Ü-:šŒIu›»dR£1ååþ”{69R^á÷%¾ZÐ_Å݈ù×E–Â娭]–E c\Å€H‰}™Ï¤‰q¶ oÀrru•Qš?¤ì’;Ö&¥®ÓZ²n„ä˜^†vµŒ„M(U–àà 0w”ÕX¹‡Ô@P°üÕ ² õåF¸/kUnê"§»>{H¨À EZP§U¬âPبUåc®@ctð¬A}6­¯Ä„¯*n¦$\E)¹Ñ5 e–"JPÉ%5"ê%Wb+G%_z4ó¢å·„´5@ç“¡ã}¶ NyÖÑ¥ý…Õ½£T¿¬0BBT³¸ VqIeø—‘¸&&qE,âŠÄbÍõ']­ë=ë£y×q•¢žÆá!«]JÕ’ýÞ4™’u`o²ÁŠÅk$%ÚÀ¾³&¥TÓØolRŠ4BãRº•üUà¡R²'è^s.J·»¸OáJ$Œ{ÆÜ+ãÒoŽâF¸++mçT ù½(™´°ÎêṈBá{¸Üpd…´´‹Ò$`°‡ ‰uQe†Š5T2ÐÕ4})7‡ËœÏN6ÊYÓ‘Ô±$t*Ï,Ä }jÄ2 ¥6«>Ã9VlšÔ]r)-\ml‹NQÛÛ½4+/úÄØP4Ï‚8·ÚkÖË l”R»ˆF1¼×­2õq»(Ý*ö[$KÐd¬8Á|P«1Ñ0–'Å.Y›khÆöšÆkà lœ>;ƇSØÇ‘T˜øèâÊX“&*¶É´„ÍÄœ)ü£U†ÓöÚ+«'ËnK¤h¯aþ®ÖeÙp…õ—ü”«ÖÒ©“Fí‚úD¶µM²¹ÄHŒ^.r 0i¤Š‘Ý(ÍpGÒ¾ï!t]¡Ò’H#=ì #ÑE$.ûØF’ I`w°ŒËHŠ‘o®‘ ›$@B¬ÇÒô&( BJˆ ŠÂ†]1A„X6–k Ü´^åw-ösG©¦ôçK§òq®nKá-Ϊ’Ê*Þ¹®Ô†¨×”R°¬e[?ò~ÞxÞ²——†>u`Šw•e½Š$ýÆ«Æcb»jÄ'sÙ¯*Ö\8‚”æ« ßz•”LÞØãñ³bàC“š‘rÚ°‚úÒÁ˜¨ZV òi˜V ͵P2ˆv0¸‹Q %ÛíxÞ`!x&+gRœP¼0LpÜf7qï±5»IòZ&p_§»›ËDΤÌI ozÍCÁhmâKfZÞ ˆ„CVMš™ÞH‹µÍò™bî™"Ûå2›¬ÇYr µÑ-óþ2L_Φ¹„äÈ–´²I³¡tæÈ4heZJ34îÈ3då9ƒæqfYke1:‚3Íö”RýÇrÙCjÜyÖxøMï­ Í~Uë’}Æ={Ôž~ÊãäFêžñ޾çÀM,:ÀòñMSÉdexáÐ.Ìî ë!Z§äÙI$cqQI4^ 6F]V'&Ñ@‘ONuÈF$^+ßëý¾Åd™‘¬U%U­,O©Í¼K=zÖ©ÞQ¸ëg5¢.%)ñœ?œz›Q.ŠdI°nmÚ±ÙØÂQEô$8ÚѹÁ3ú DcãŽÍ¼/Ä,–bt5Diˆ¸¶ „z>&@E$aÒ"uÝ‚Œ›¬V3‡ÁÕ]j"ꃷö9UÎà#À›º£$œ@ù™<–ç›llQ×ÔÏàˆÎýži è =œ)²Y(G™úÀ†6Êl4bçãM;Š R:ÀÉ@Š1i6!îq2é†ÎžÑ™x>.Ä­Š:DlΙx^Ž'Êþñ$`¨D1VD¨ jT†«øzÞónÓ~ŽŒÌáR·hzËÛå¨~Èx2Pj<]âÊÉÖo™†º:/¬ð-Œ!µ"ðÆGÈk¹BW„!8'R¨FvV¼b|ò­!`K&Yôuœd —êwˆaôÈ€¹¤¥ÄŠ&0H«½¾âµº¼¥[Ç®¸zûiçºÁ1Xw+bmÆ…¼‹õT!To!?“+ä§ËeðÈÝ¥» +æwQ›.Ïqë»JTߤz xÏu È$‚Ó%Ò‹jx‰‘"3YeXU9׊œ€Â2+Š<bV„eFdTõÁ*ì¥èêK×LƒðÛm%XPI8Ëvh…øÉ6TrÌñ5s¥Ti‚/Ø›# .õ՜ڌ<$}iÂSþ8csÙÀøSòç¦çMáÜH~¿‰ˆ$|S¢ü³¸Ø9¾ë¥©ÈéÖOlùf"q¾”Ëú»„Á2{c£»CRÿ…{·]{ªåJ¹Š, [_Ø«L5Ÿ)Õq3 Æaò8t†4㥵ÓJ¥BF°[òµ &âå¼)ÜOGÔ$0Ö‰w«õ —+ö,Çdó¼(†—.sXr1‡€jG6Æ1:Œùx ZsßvÛ•¢)0´©Tׯ]â˜$°r®a‰©¥*Bé¶Î¿e7àÛoãEAZ`”õÖÈ.Ó q‚_Œ“«,×!~Åù͈>Ø­!Ñ…lzÙ>´b„$=×(tdWOÒÑ©®…×/ÔNhÕ&Ø<š¬æîšÍ•&`Ä<ÏžbÕ„ò•uާ¡–Ä”œNvý $ -t$ ÷ùæ(l¾~Ëõ»»\Æ Xçl©?Ë+[ÊÖL°+̤õZý &­×ê­ £FÌ*ܰoëÞ.o•T@Ãcël®(øÇ‘äè# îĪSèÍV¡ áte8fò¤¤ÛZ´]láüb®é‚šš~ :ZÞ§ƒOã[¡éEw„z,›¯8"]3È.KæÇÉgIû¡Œ8elfuÓc`†oVŒ-ÌŸ…Ås¬Ý(áj·½”×&ÊUéW–²G¦ué«<úf À|s¿-^·Û±š×¥Ü\˜?Xe}îXBñm÷êcȆó_§ß_¥âžnAö‘áÇ7ŠÁýù‚?¸ÓµG{Rzô5}eºúï”ÅQ‰üÞïIíî ‘*¼›Ä¨ù¶‡H«¡9nûŽ´¬Íø¥Ç° tëà b`¸&Æö(á†Ça{š,QÐM ØpѪ/E‚ d^*5Ã¥Zz{ðºâ¬7 V(Ø1ñ¥þ1þM÷e—£±¼Ð ÁÝíÓ‡ %$îà(üîúÍ¡À~J…î˜åZ&)Å0ZÁTY×êùÒ”ZT®âÕ(„s)`äœI;LP›å6^†`‡¤NnD‰y?M~E]ÂM<Õbk½V/W¢]¥cï3%Ùkhƒ°'ÊÅJ¹Äeú²È‚ Ö£E™R¶/[Æ}FT8ÆV°6P´ƒɘNƒ¸èVF÷¹Cyì,rº‹ùãk´ÈK6o˜¬ž22Gã¶ ¨öŒ\£øX [8:šáƲü=þ´ T6è–˼¤ÒƱ 9¨°A +—À—ëÂEöå®ì íÉÈ! ¢Ê«íl‰-þ(_(ðso¿Ü"4’´O"èä›gˆyÀØ[W) i´Äi?‹Ò1NáI6VVF(ö`V£F«[¥3t¿”~B”| Š¡RoWþêÿ â +[³çhÊo nû²úŒVœ‹¯zå¶ûSˆÎS(rÌçã³g^g/zá»ëxŸÁÅÍ>0´­Ý·æ1 5Ùº@¿Ý‹^o¬÷ý²køÉ’Ay áÖ׫É)Ó༖ÝOÀGéžàÓ¼èÖ½;¸;´ìÛá…Âö³ïØ.¬ºéäÔªb[v쾑¤`¿‚ùTÙYêÀîÕv1îÞK†ôž:=U(ô!W£tô* ™oЪö..T ù¨þÁÐ+`%blk$þhÆ<‘×Püê ¯A@M¾5!ú^IѪ§ÕÌVNDyw?†ô³ncŠ‘=J£wbu‚:*4¯1Oï®ñPHõn¼¯Ê&³OéÎ…()½¨%þ–K*$0´Å¦Èm¨ŒÏPÐÖ÷ó Å "ðãƒjHŸö "X=x„&»GÕ÷å*mЦ‚¯Ï®rõY–ë›6^kêµû÷Ãm'þû&¸%›&¸ö ÿ²ütíªßZÎð',MrHãòÞùªŸoSDEÄÓ;1z÷vŒ}Ó…\t d«8îwgÛ­¥i@Þ0Ä1&‰#mÕk-L•¼8±Ç¡é“}§(R*(åºÈáîÚµ!Óå"³ñj• šâQwµ/‡jÏJÏUYä™ ®ðåóXáw…¯€ óƒxºÒô´ ¯âëeÁ*—»òWÌcåï„rc?? Õ±r嘊ìŽ'¯âÕºÒU-Y¯q(¸ìàr¤ HTKRRÂ= 丿'ã¿©³M¥ (?ŒëBe†µ™çÞÊÔ––Õ­^•3Y‘XŽ“\vTÕŒø€¾ˆÐH,»yEè˜ÈŠ“#6fÐḑ¸eߣëÃ=:}ÆPaBĵ5ì;+ºØIäɦú£ŒœÆ¥_2cŒÙ»Àné°º^fž•@‹%óâ½Ç£C/6q…g—þRó3}õ“+ºì.Ôê¨ÚB9[ZG¼§yWyñ5Ëæù>ty@;þR½•.Ë 4Š¢`«šDªyÐfâ;æ3òC­±ä¦áÈ®NøZ’•Ö;B»ª\êc3¨íÛebö“ «±B1I¼É—ò°öcðeî‡ ¶¤HgT6ô@/lŽ`,H¹|Âë³Bž…–(ɾΈ¹—5圧Òtù9ü :ìaÓã˜q >Gš‹‹xã¸3ÿãëRx‹ “â÷8 ŠL¦|¢àX¸µ:HÒp$ãp3þâ¼'u»Z‡Ô2’ß,(·y6½€µßšˆÓù)¦¹5ùŬW+¦€£ì cVÃÌÓeˆ_qÒV§Î~Z{E>S‚4ÉØ,B²¢ÆÙp Ë •Aj/‘[ ´–«`Ÿó1¨‰Ax¨­v8 ©Ý0aVøO–#û=ÎòÞˆÐ¶ÃÆ0C"Á ©éNû<Â3bXËI5ôH ¬Ò=ã˜Ìbn*cØ„á2Oö“…jrÄpdIÅoxX»«Z×i¹«´µ<Ñjx]¨êWmvá#·ÃADŸ‰æiÐhà M1#F¸h(Ð'Ð0BæÑ¥ØÐÌ|çâÕZHOxÄtñ­‡n­ºbË¢m*ôÅŠòLX×QH Yåá.ÊS} ¥ˆw ä“L=áÊ Î7CU&K©É›ËU ­žÓålªkgï¦m×ìëÝ„^íçrÕÔ€š×†ó¨ÙJ…½ÜQšÔ‡SNM–äætoB:óL®ÕþÇŒh ¼‡R¤4Úˆ,—‰&pŸ1€7ò‡>­z4Ý(g÷jä›Bã“lõ%ׯÉåœB>ϼÊì·ûK¹R Í=ýã“£j*!æ"Ã"Ï“¸HÁrêYØãŸn ê!Žûž˜~À<Ô.4—ÔM8æ&bfž&"Ú‡?&SqØ5qƒ&ãî\!›«öîÊe²zWOùÙrÍ»”žukbnøçÖ9ÈÕp4œUIí@ú" wä¬k çßZ9ÿ„-ßZ} לsLdB¦@s mgá™ïe¥ctV¾Æ\±p9w.:‰HŒ†#3Ș1©¸\HÀv'Η /%¼b䋳E!ëÅí×ÑV°o`!‹Ïua±qPân3äÜ%‘Szá%‡¶ñ€9°š’æõñm@‘§Ñ c~{dªq¨-ä)Ö€TöVÁ¼ÞªâŸë{Õ àì{@ýb¾y€pÕ@í"Jýè„Mp¼áº,Žc¬n±X?ÿ^U4ÃÜhx]%¡Ö÷ú}0™®ž$¨¾P…÷æ´žzÈ*´ç²Æs<P(0lçâ¶B^ ?fó)´P¬ö& îcZ«è3¥WµŸ¡sÞ˜ôyÞk@„!ÂW‰÷Íq9i ž?¸×tX` ÈdÅ"Àê2›gÜU>5ÁnÅYn#;0DMi-Ò¯48JµÆW7̵¤< ÁÖ,#Oš®…å*+l-G«”Ä­”F¯”e)ƒ žC‘ÈšzWÓ騒µÊéÅØd¾ÉœÄþéë4ÜÁ‰Jb'­CÍáîxõ†7@Ä÷nO˜ºÖY;Uîþ.â³®¸ÅÜi@@n‰Ý«²2¬ˆÞá"-ȔʖŠt²B¬ñøÜÁ¥¢¢gÎ’Ã5™^?ò“Ñ™T*³— ­](Ø„ŒB¹R°ßj©ô-rmØ•™˜Î—r+²åÙñBÐöö`Ø=T èSº Uÿ)ì5ÐåP~ ;š÷})N¦ŽO&ê]+ª—ZwOF!ÿˆâ”9‘‡¦ m|¦V×Âç éhÂhËi¤Fr©LQÁVìFœ,碢Œù„tq,ëüZì_ŽNK'½Üûx:±T “~ƒ¥CÊiZùü8¢¢Á2æw{:pOTu'=qª 8nÙ"7 Ì#§A ãù¼›ƒ@Ì|ymØ£óóªÁÀÚÇnëæEJøoð‚D¦q³~¨]Êþ}P¯J|ã¬RSv×êXd•öÖÈ"jW|Š0;P+ÕØ““ ê`Bšñt GXŸp˜J™û:•ø]Ú0a tñôìûg{¸‰àïšsÌ’²…~Ö´Ûx[¤ÎÁû‘2½SöOÛ ]µ\«Uªål”\£V–ºù‰»ðÄÃåvùã…Ùqk³ZÙ–+{9ÊÉïNÌË{1I»Qù_ =¥QQÇ4¶ÅÙ㌤œÁgŒÓÆIßàáð­óAR‘" F8d’lwÔêDñ£ƒößWH4-jÓXú€<½ü¤„§XuQº¯[ï €é!nÑ—pèUÜ8ÿ!Gí¨ôË“Æ1 ód‘é ×5蔩¡mŶÐjàž8ÞA)|BOt˜'ITƒWÛº®°gøñéÀ < ¥œEßßGÇà<ó©üØoÇ.‚xœF!ÒôM–àAåé‘Î ì:_XR‚´0ðµqöãp¥( @‚|”ï•˸2(B°Öc:%Çt²|ý/Ö„éò4‹Õt™H×$TÓ¥"Yx¤&Yh³@M]"]ó8MËEʦašd¦Qš.ås6†§ÙBT¯¡Ó4H RŠ®K7ë:ß’·ËNlE*úím¨î¤h¹Ñ×E9|žªK5Í&›ÜoІR*i³x,W³Þ:eä…« È E:ùQÒ6=L>©Ú“ߥ J¹tAÚÉfFÙ¥Šáñ*’Ô3€½ù¸å_¡’P|ƒxÑ$:Ü„®€[ ±=-y§M|„v%£÷ßbD§ÚFÕ3†ÑR¡P«‹X\‚¼PƒòH¡\ÈòöcnºªEÐñfÐÿ†Ÿ³ªÔ¨œp:¶„­±”¥më ½‹è¸Nö¡f Òw¨ÙóºÍlÀ~“ôÉÍ€Q×ÎÈ&h+eÕ´êv€¨Ð5†Gt#Î :_Æ£! F”êÀð¼¹óAl)=ñ›Ç¡i+žÌU´\3Z |,Æh"1G17ûÚè›nm7Ï_¦½01ÆÎ·ÿ…/C:ü‹ÑHÜži«•×tÞÊ4bL«í4œ%¯7 §?ÄÒ(šihsdŒ)£3µ½±¹1{e·ø3 š6Á›·ÏØW´M‘L™`‡ÝûŠ–ÒŸðMc¶íò Úòpß5[>EaÐð^t†O¸(œì_µöþŠùšèlŽr|ÒKóØ®[BÛåŒǹá8çvñ6Üj\q£Š,ÜærOq¢q(ð2%Ü\¶.¨à#çmkcá T„Šöv¥‘QiÛoòïÄø›ñ–9k+*T ——ÞÁAV{ÖGjßä¦Ó·Q€ª»ä½àÞÏs‹´«ì´Rí Jä —îÀÿt ”(@Ühƒhg»U©‚v^/o=œnd½Ï9ªn2d,?øi¾:Èò‘"w“ òd]0’i n®sk+×(ÕÊœQê,çlÑŠ¿ãÓ⦅/î¥ìR+ì ²å¤¼íͧ3íÜ÷ùž{:¾:˜J&Ë4ÓÈÇŒFì)R($›Ïß$”ÛRB†…&&íJ|ã_t”˜³uÉ9E2«5Ô½ÁØ2pÍiû# 4ª—…¿([ìTvÂÕ¢Ù¢Ò"5`~ÄĤN…C1Dz€äÊR”òRø#ŽÀ÷‘¸P2¦ø-®”‰)ùE…?L‰»äˆR’1…Ž‹Š"Ÿ”"ÜRвL)›sJiJ°I)Å. â–’DN”DÏV¸CúxñÇ6¤O‚×j4o3¢ÏŠn‘3wFôñHÓ/ Iš6#Ø„Çþ‘1|†âm…þéÙÖ6ÉfžŽ9Käº\äPºHàºÀïE Š#‡]¬“ˆ(?Ø Fš uý±ŒËt Ð~`Ëè#1ÞDã}—~ϵy²=)°£…V®¡±xckà¦ç«9Ö–æªSÂv¦{ ç|÷÷êÈä‡oƒâêqS;aEÙ1ÞÈBSòK\S’”útRY¥Á= _¸.¾%ÏÅ´aâ)7ÈÖF–å ™úáî„M·éX˜ú& J­߈Ù>·Æ¾Ö©hD1õØãt"ÖêBÁK…Ý.^ì)µÛ±ˆ€¼ãXEÖÈÂGhÙa«Iû 1],q Âè²®%$|…j²þð×ù»ùô½¾ˆ¬oú%_š®\F`\ÇêaÌsuðè©·Ï>Æš-yk|™FbÍê§ViÖYޤšPZìt‘CS¬ÈZ&é2{ePX­tpr¶x]qb“æßÑîJ möÆÈŠKð'©>J+çiafH¥Öà옔×8Ÿ¦õÊ0(-Êj$C.C@ñù6ê0H€Í\f `–šùGœ- >…£9{ÕüÓe |ì´.W2XÙ¶B¦8žÍ˜aìvH¢%ÃDbŽ/æ‰(Ÿâ ƒnC€†Ý@@© xìApÚ+w¤-hOg0PûxŽÇScçÉa-W=Y” =NòŒEƒ¸íËè†v_Gf¦´ÏqÞ*«ŽðÓ±à"e)ZŠ8CWwœðáÑ šªê “Üë ‚èuTâ kg´Ç¯ãªxˆvø¿Îà寃x"×éP˜Q7HÅ,^·+~ ×É•iP÷ëvR‰%§|+š-Ó §¸ÊG͵’‡¯.^ÊŒÒMêYTC£SHspŸ ®Wࢠ Š_z¼NÃÀË35]ãù$Ü|‘ƒ]õ^o o-(öÙ—º0¬_¹fåu»Ø?jè}µ«.­AØç;‘ƒíÛnƒ,8q3 Õ~-[Øá^/?Qâ©:~»õ¦áÉ3jÍÁs4ä…Úªt"‚aÓ>2ôÒìÄO%΄lWQ÷b]f&,°6—ÙWèã1ÆŽÚöQÆæb=…5Ñ<šQ?Çd©aXŠ}=F±ì_¯FÄ ÿ)em‡OKþó=â\Ïvð7…°Ö°éOÎø\ï/¸séé Vžh6¶rMA­¥;›€eP´}ß¾«Yº„©wçp%-Yç.N'”ßÉÀ2ôÞ@ìyK¯wÒ(¥P&oËÌjèÒEeeÜ=Ùæïù-${@Åføð3D^T(Ù&؈ðý¦5]“íSG˜|§yJ:|¶<äQŒ74pŠÙ×ÌÉQp“BõÌ×3ê{€ûÛµ*š.òÈh¾0Á·b”¶æ<û5næ$oÉޛ͠A²Ï$o€$Ôíµk«Çàb×8yØK}Eõq,ãʼnT׺Kƒ¤­—ÈGˆ®5­/ª(–ÓK9xÉà•+õëÑ—?ä=ÇŠšp~G‡ÛCá"ÔâQÁì]G'(µçˆÑýaÌós…^8[Ø Ê` =Ê¢†Œò†dv)âGÄ"Åä:u="ø›&;„‚$©T <…‚²:…Æ.QÇQ£>ÖÑðÇZ <{Rlrö)ú/IJ {Êw(Šê8uªª7ì(ÝfŽBp f¨…%«ÉðntZæ ÿŒÌ2htŒ4!úL£ ¦9‚ɯÁÓªÓèdõsËÁÖ[3fH¼_L¼Àã#´lû¼í9Æ*6`E!ŒøCñ?+O…à[ëð4i ï=tèå' ‡ì¬p¬—X˜Ñ¨CÌ| .Ka#?Öhgz¶.“ïW¨–¯È›l¬çäc• k»v~Þf÷‚¸^{å÷øÒ¯Ù^eÍt¨¢5¾—`s}ðˆ«VæfC»‘hµpWAë( ÖnÏ whˆ@¡t͇(J‡Nì”™©fc›R<øprÊêúH–fw/ó—ªåM»ŒHŽ)”ƒ5mªZbu-À/Z¨„>EHäñ2ûüc%›¤df#ú¢¶ Ÿã kµ¯šðqž±(Îë‹£qv$ÐjÖ°åVŽý[r[ÁL4¸Ö®Ù.á•BA,¶aòÝÑÃèÒÔ.•Æâ±ìR¿àóŒ ãTêÃöqoË<â\ˆxê”N=Ÿxz6"WÊꇵ]&NI1éºd’”’_ØÌæý˜2 â å°eÅïQÌõL1Ø'%{ó+_L’È–§d´/k&é3$M7 ;ßowÚ–ï7N¾=C®ÕÐÀ%˜×‘8Z¹¹8ºn6s·”Ïwp“ŸJyIÕ×Ìâ¨k8ÏçC|Á ÆLßpŽqXöüÅ p\S¶¸`IÈ:Š4¤corФµ~'Û²9kƒü=zÄÅ6ûNl«ç-8™Ãö¤Hk.¢ƒ(õ(»™[¨Ve{rw³žÝ½{‡±MˆîivìÞ²õfˆææsð#˜]–Šj^äÄ‘!rà5|·3irƒ¯©îXî{È3íÚ"E2j<,¼Ò‡–Šw3âÍŒõ|N<Ÿ³žKHŽäBªårlÞµ}öx¯ao”*DŠr}BŸB47RíÊC; ¡ÅQX,Í<#C)ó)çi8yøSD‚˜ÊÕ7— è e…LGÖõ ýÌU!‚K͈qÃVº©88Ö^fyÝ^)?Á°;W`”·TÇð“x¤%3;1íU3³53ƒäJ¸nÍH$•þȆƒôþ‹Aߎæã‰u ÐXŠ-ÇÉr!ÛW™>¼%ÃãYµ¶Ã¥0œã]¨µ›ßQ>°æ.²äk×›/­Ô¤"ìk •ìï(0 8ºÊð=¡Ãß5›©Ösõ(“QŒFÂVä$k ŒýXÜǨ1žâñ«D5hΘU¤.éFMóJ2ö{ÃÈPص™ 6¤C²&m7@ä<* XC2ñ©9Š32§`a\p±u ¢™C¤NÒÔõ¤¦e€¥,E{ƈ‡æSy’4=Ðoœ–‡“´lG¸Àjiø²Wl͉ÍC áƒÁ‘ÅIè )y~™G§ŒÐŠÏZ$%H‰ð˜f)›;ÄJäñÉ<Ë´—HL6æ =RTýÖYtŠÙ;Ïð9êQªäýöÅA•ÀÕcÿ®=)‹Æ)úfÛõ”jJÙc°ìR)Éy83(_D&ŸŠ‘ì=¤ëiî>œbœª@Rõ‡@—Y:Å8‰È·Ôæ2Ènȇ+JÙ|V‹_Ú_%䑤޿t8ª3WŸJËİðiÆ«ôÁoŠìjés”¥†ŽëÝQ²¹Lá`.»r¥®T!²a}0Ip™I‚$e¯ˆÜÊÏN§–#åU ‰äø]Ì¡; ΗñåêúžØÊþ• €‚¨)¦á(Ê™ 6.Ô3JMgO}-ã²PžðìÅиÑòšbCKGH®6R²íµ7mW.´Íy«ÍŠá÷Š78=üÒãrJüɘ)¸„ºÔQš@ŒÆK’è³9füh,—HŠë›ÍLixi ï«tÃONÈ¿i¢¡°–ä›iKÏX*«‰„i—yr¯*S©Ka eèúÄ´?ÀN³a+•1#àa 7ùغ”ÁßIÅ«¯¤€Ìîâ¦ÿ´ÃŒRõäç ÉôØ„>NLŸ°Ûrô°}“]TX×…büJsW¹&ÎSEýH„?Ÿ>ô/¯[èë#\f ¯oègtøÓj4yÖIŽ›0Æ–ü*ð2dì Q†˜üÄ»`и¡ûBÕ/­©Vw‹ˆ³I“k2ãÏzÒ9°`%Äù+„UüŽ…û¿Rq,<²e‚»(än/-P° n=Òþ¤.cÔYFx,\áËo@yƒIðÈ—\›6§¾M4üp-OÈ#^Je†¼”?øv‚€Ì  všåäÞ¿ü\(rW$ v­k6£®ÐÚÆ–8ЧC Ó`E£ £§’Ohà˜£.›‚Â.ÓåzÆÊ3cÌŽ¢½é€¬øy/˜¤;¥u™½3ü\Î\Ì¡\wÇÉ6)Ú±²Y/û< Â3{¤‹Yѳ]DÃ×¶)Ò6¥:jÊ<´¡Æq@ ó Í÷¬î8£HÅÍ ëKyˆßÒAîßFœ-Bözj}ßÔVp£Ýã~õÜTÌcB€šbäZ@òñè*?ýÈn=sÚ`ÆÉHùÈ8Á!ôÍ0•ÆÂÆì×¼gì×g)^k† dÆÆœbµ¨6k <ðÍF‡ô\Q;§@(.KG …<‰vC5jµÆ%bcc‘¢ÆºÚÊà#•ìF~¸‘“ÏÁƒÄz>­—\mCeCè¡ °KÅcjZN )[`L9[­'aã½Gh*A#Žƒ®ÚÐÂR%:¦È ÷âN :n¢΢ƒvTŒ1|Aç‘ÃÌÌ ÈðJUÏ”]›´œr³ÕsgÌCÜ]0iHBN$ùñ æsôp¨TªW3µºµÜÊÇ]†R«4Q6áƒÎZ&µ5Å™+º½,h$Rd hÚŒ—™­ÕrÕéLaÜËæ&ó¥|®š+iI±[aËåKã¹»ó¹iöZ¼};Ž DŸF5ìfFеg×ÎÁ®¸Q*œØÔ½?£¿¦bºV3bçB¿Ÿ„×§>‡>¬p∧W}÷v§ük*ä"Á#tÞw{µrµ3cC>Ö“Ø©ZÇ~ˆ'/Xdt³îªƒ\“Ÿ" sj*W«äXšœrñ-Ë@9º6[;¢kªå¹]™C]qÞgq+>RÜ\ÞcÜ䉕ɸ‘ZáEH<¥ ü|(z±Pª )ð‚-Kö5æz/yPTrx'%Wõµ‡ƒÁmï¾|ëeòoópcMFMGrQ¯–Û¯à 4ÿ)bðÐEu@.—Å£•\£‚£€œP±Ñ± B=Ô5As’dɦâ\Ö–;Æö¾ÌOtá¹:3jê§Îד‚ïãwÕéÛøkžÑ¡»%¦T„yÌžâ@4ÉnUšWqD…öæW&¹3¸ yL¦ƒË9.—NŽK'æû¦Ò .)Ç%«óæCRYƒ@úòÀ–@a¹z´ uÅ…Jß$øãˆª å9„ìÂ3°éÏïFyÂWÈ@ûüÓ=êÒMŸ 5\º1f K•7Ð ®/ÞqÁæ˜l$£ƒ+8áü´24¿Rˆ(ÏòÀ“};O"Ê–n‚¬¢a£8ÓǸf2¶âgj;.RådÄë=rj,·fý»£ Ø Hàðcõ1Öfë¼<ënƒŸWèÓŒ›—÷]‚«?¾Çp|á8/_çâ5°ã\ü1ÍÅßoPâø~Ãÿ*¶üj>SŽdÏáB¢ƒ}‡cvßÁgOz”öh9Ç÷Žï? 2wˆõr¾4¥J£@Ñ-6/]QtÔ.Ì ñùI°>ŽòÚ ÐÛ8SÌDöÑQòìý,Ÿ§µ^7óyZB2´„¤»¡*i‹ÄUåt1 «2}¸PFƒûNEÓÄâ,[‹ ¿©<‘„Õ­tx‚»ñû•’c~bÓæ2Õ«°(œ³–Ê|µäyâÞl-—õJ¥B­˃Î ÏO•àyQ­‚ZS(­ju‰Ö¬súŠ~˜MÞÄ|÷‘é2Ì›¡¹4\}9ˆ®r5›CìÞ{=Çs8$l ]¬·²¹¹|-×å—Zde«9„ ÁAì’ ÁÒûÃÊ¡ù®Ï¥nÔ•íQ¹Þ+é↬L®VËLå¢]¥Ü[ÑæÄ™‘—ÓÙ, ÈÀr·ËÜí²+¹‡bìx†ýÞò”×ÅOvIÃó•.ÃD”.†b˜a§3¢Þ‚µ©éA#]ÊgŸúRüŽ|’6ò1]H¾â¡„^óØDcˆ[‡5’wé¹ÌÃbAãpÙ¯åêDN R¾XÂrY*Ÿ[ÁÜ0%Qp8ÔÏ]µS§ch@oxùçb‡áØ¥è8íÜ[å)="R|=וPƒÏ5 ÏT§¢ÂQx_&ƒßjÏ Ÿ©\}¼Ù¸Q¦ŸLÉ‚ÿQ?G4'w’˜ÓTLÐõÝ|ý–ëw³!€”²új‡KT¸ñé0˜-ò(-ió(KEá’š«¢# jëšÆéÕ£}›£Œ›½c’å±Jo˜ÔÇQ„æ²1HÒ¦I%ð!Àª%60,i@3ûrÚ±¯3‚„(ö_E/nißâaÐXµ|ó`ŠïÌ) {%P¡«=ß(`ÿÕ>)CUú^ˆ`”qßú¥?¡°²d,öëýYqI ÏTSU£œì û¶îí jPû]ã²Z‰p~†ìýŠËÚuVOÀ:±›È ¬ŠFE•¼¹õ’›|ª% ¿ŸàQZôù5.J@_q¦oåQ |ÌKí! HbXlÚcAƒ[c©òá¥(‰Ï‹2àc’"Bz„/NÓ¸‚Cp§„(Q!é!%Rä¬_œ;샪 Ÿ›cŽr2–âD [ ÿê=?ÞØÌïûÙR¶F¹Cû}½V?Hß‹8`5Þ¦0êi!OoÃÃ{Ëåz.KõPÆÂÃz<…½>—¿9)tQ‘’ƒœâC ½šâ]Ë:? ÑÚOUøG»¤r¸ç݈ÄÔ9•ôÑ=3áPR‚î¼Z»º½=éõ§ ÿ•»%9·jeŸØÜ°!àæ\tÙênỬÚ¯* ¶ØU ¹zͰì`É`¤ÌŠ{t¬¦âb¦p~ÈŒ?DqÔ´í¢N°úz3±.Zá)‚ßõxuÝе° N(ìi¯W·Hù’VÛ„8‰ø‰˜ªðV"$EÒ™Ô [D §›%ˆ§è™î>þ‚ÊÝbÀ”.&“…‘«—A†è´ä Ú¦ Îsôœèöî‰h®è©ÃæN²WmBL½žTïB»Ô¿ËÛíqGtsÓeöŸ¸>AGøn«ðÓ¢»/•P¤ÀìIJ”Þô†hö=Í`8Ñi¡¯×Ô)VȳG¡˜ éïù@»0LQ†©‰(zŒoJN)è>…¶À«Æý°OÂ)$rß}¡ÎÜx̳0On”Ê¡ ‹ Ð6–&r X•îØëÀu‰ÁýxÑ]jøt<_Ëã¹/?^`“.Š—ÇB/®ËóuwB»HcO7CCX™QêÍšo¢°™»›oJŽ®˜-t€•a¹¬“ÕGy:Èû^îX£´yÈ—óMǰUÖ²9øLÅ—:–¡)ÐÒIf»Pèâžq© dŸ1rÚ€xƒ}r/ë GKÛºÓK)9¢KÒÖ£&Étq@ŽRNõb2 „®q¤@óQ¡AÒ+'_ñ‹¥’Õ°‡IÇAKu­¤Â¡ý‰…².eu@§,fÇ.ÅêqI‹zÑJHœjºÞZ“iŸÉÁÝ×vïç8™l)]l‘FJÇH'FŠH¡ä-M‰Z"[½UOÅqÖ»Iѧùm-´J·’à‹÷Ò‰žRòÈßb½5ÈŒÌì÷¶ e+’ 6’2(W1_ÚŠÑwò¥(Ïãwg&`¥ä—^ž+ ÆŠàñ‘Z!›!¹Ó«·¬”Ï_ͧñZ”PèUfh2á ¥$'Œ!ưÇÖ¢$ƒ-Ä!u0ñbÈÉÐ ÞÑPôß,ë!Ër÷„GV–Þ–]Où;©‰(è ¥&¤¯ÔŠV( Â4¢ž'UkTï÷x¼9´ëí¡P̓è *žÝs-Ì»v舄¯„xÿ&–d”ÂÒØÊÊf€_çiôÒOÝf̶üÞÚØ`10i®aåt{3™R ½"‹¼ÔA(°)ä4X¦1úB–ÔGŸq:‡ôdy ˜ˆ{<ë#rEíç 'ޤ$k?: Pü¬ I¿•Nf£\@‘S`— F²X>˜‹ŠìqDžiÌ!ÍÏ(ÎÞ/[~ ètÖØXÛäç>GÜf_¡Ãǰ‚”=ŧM«ªKq!‡1ÀNbŽ¥ØØ Ÿ&´Üè—zn`5#^˜ŽA„rE#ÑÖ-×lË,é†&ƒdQFgW2M'&DÝ㼞±°Ž5½4‚®ZªüÀ÷µAv•F¡#÷b£/åX^ ÅC/Bpq¬/Æ@s¯--5Hð\뫾ëlÒc¯<è<ô¸½JØ$\À=¥L)ÊÓÆ¼U"8•, *ÖÉçÁA DØ"Øjù· r®V=uÊ/¯räAòšâ8Ök¤î·SÓµÒ~§+æ´\ØLâFUûêjRü®OîÚN* ¤4ªZ\¼eQJg®ÞÍïPÉÔVÇñ aQ´gaD¥‚ô@jó!*Ä“o$Ä Û8ë<)Óz½iþ=©9'Ÿv¶Òå†F×5äxÔçãþ!ÑHò­Än °’ÊÁr‚¡Ä1¯2¥hv~³»›I4•ÃüÌG!?“+ä§ËålÍ›¬–‹ÞfPµï•ŒÀT™ðrSéyùH±Eý@*±SMl\VŸ–ùO0a'˜è2ÄžRïé*`ˆ“¬r;wvöyóÁ^V9ãI©jýž°~CÑÍûr¥èCÉa{¢’A#Š\ÕÕ‹—°ŠîÛìï½™¶º®YÏl3{fßæ]]–) £†a=ÑZËÑMz_©”7-ëÁ;¯R½V¨Öo‚Eb©UT| IP‘ù˜I€ŽW1›ìí™°ü˜è MQÑù\õvfp”Ý—OnhQQ ‡¼C‚ÍÝ™A1 {*®#çi°]ìª$à¢â‘:íÆZ Á¦Þc¿Çò†HK+¦šß¬j÷f”coE†i…Äw¬ Õ©ÝçÙeKݪHO¬ÃÛ-ë®s\Ë~­§D­»cJñMë"ÓÕFÙÅåùþ$ñ¾YÕ6ñÝ[õìÍt~Fî Ëµ‘ì™ó­„ùÚGœb==à;-E­žv»Âµ¨¶°ÃNµ}󺣾S¢y‡Ç\ÇÔ^ u<À8Î@ ú:Áhrtà8sœãàïUÇRµŸv¼l×—†^¢vçdÔ<¿Ýù*M¼&’ž4©4RO„¥&•¾z3â¾ugÂÞñ.MÇ|GÖQy+•抪(ºÃú±4 ÇÒ,÷(Ù¨òè'WÅp‚GE~"ýˆL?oÛNðõÝä­*lñX” ëë°C‰8úŽ`{“–½CÓ™§âi)e:°ï@¶ÕQ$]ŽÒn—¦ɾb¾ÄåNœ© UÁ8‘å¶oxÐHÍ3Ç%îÒ\ªˆB‚ϵcˆÇD¯G«ÙÆs-‚M@¨[>Ëu²KŒš°˜ÍWpS@Ê^ÝÐ^”Û|²;¼É1Yd_ƒÓÃIeù`y{=J>hš¤™FÍ·KHšÁ1£®zòR@CcVƒ'®éä‚b˜kƒôÑ™ÅIs¥ÉvÔˆC =<⎫۲F'jÁBg/?.ªÖùUaì÷ž·>:“îÕÁ£ž¡ú  IÜn‰>•ûòíïÆGyBª ÝŽó±3—¸àFexEáÀÐh‡˜ÉtÈTgåjËDŠ …Òª)å7j"%a+Zµ£r k—ÂÐ@+'G.±øöŽØ³N¢èrÚ ­Ûüâl„Nø”¦S \ÚŽL²a÷eëÞY²w¹=ëCe->?Yjš˜ª°•@ ’†&ŠëdÂZJbùê!ŠRA›•j{Z“[’òË üB1>!›ˆv¯ñ‘GƒkÑØä5®°/š˜&*f»‡°M“¬¸´)¶/ èÚ!ûys7¦/à·§XKR)½Ï¯F3.w4‰xzS·W›.Ï2Â9XÎg½ÙR)7ç·«‡=Øš+¢~¤ý¿Ö~nî•BŸ¯Z…Hê°¼ërf][)Ügµù5û#v9µáÝBÛ’k«pä´ï“®rö=#sç•üI­ìj¶üõ¹¶›ëסh®7eøQ/cwK[„ö :‡>zD¤¼Ê•ê>×À¢ì  øAy¶IÆ›»ƒèÎÀêÎV09lw±Šƒ_¡L×'tŸ Ú£é.®¤›rΊÁG"YÐ6þå!›oçß”ûˆ¶õ»âôcîï‹ÔçºRÞg/ô#ÞåË$ßœêK{VLyPz)Zƨ´å)¬§ßà‚€s¶°[DRž7l¤¼õdWêùYÕ]CêíFgÊÙò\ [ß2ë]jø©,׌Úü`½EN0‡ ¸o‡>>j<•E3”›tä1i±^ج‰âôzd“$¨uküo°ï§œíMŒùsøLà#Cq’?K'ÔÚ7àJßBú"8Úý(i Ëñ­ùª†?ÆâöºæÛ×íÕ ³Í•­!2»µBt±ë%Ò3½L]âËL4a¿vÚÏoNp/ bÏÜ´ËÀÙyÅÜø*Ö¤¬>2 È¡ƒaJ8IÁ¾íÆñ6ÿ”C¶ ŒæÔCÊb²/ꔃ0õ+”+FOäXß$‡a÷0ÁËV¨%`Œ;a úŒ’¯Ä+Xú‚©±8õˆ6 Vp˳|¹îk2ÜNܵҴ+]`¬a¹YŠl[ÂÓêÉŒ×@ozsb4¶¨¨¾ƒIQÞÈ8Žÿó‚lV»¨NT=W£Á]³™j]£L4¾|Xnçô1ÆMÐ#èù û97x¥,“‰3Ü î êÇÔüª*ø7ÂîÍÔ±%îîÕœÏhÚ=DñÁx2®vìœË8KŒ&QHš`‰i]¼›øÍIM%çrs¦&‡–IrððJgúA#ý P§º:.¬S}¸B~ i‘i“*m²YÒA•t0,)$JpúCŒœ‚&&å{zÿ‘+e5WKx)´+Ý&Žc_"Þ—ˆÅÕæCÚªp,©ÌÀ†E$èÙEkÑ@RÑ n*š«O—qéÚÙ»iÛ5ûz7!—>Ç•¾pü üµ6NL&Ð8m²„'’R½ µ¼þ6 ±ÉN›t56y 4ÖÕHÞ çzÇ:`°“4:@öÀà1Ú¢Ä#®4ÄÍpž¹¿ al ¨£¿r³â˜¯—¥m°A³ ÏÍ 2Å0Ú¤Ms*r¿­H¶?ÜUUÉŸ”\âM´žây2ÆúQ ² RAµ–y§6 5ò³\Nö ðãz:ÔýNm´ä7΋òE% ŸûZ”d{ƒ’¤ƒòôÖ%iÊü4Åìµ1*I2*IcTÕwÒDK‹‰hÎÇ%Ç ÂŽyò±óÁ&â =惮1w0ÉCž”À!Oˆ!?¡lwhÏ záËE­Ê¶Ù/á|""è†46ÛW?AÉ Æ]'w–<\»;½ƒk?ºœ¸sËÅâÄ] ËrR™zóSƒñ¾µ¶gÉxü³+£Ÿ¯×ãÊè&„û~4ï!͉%zùïæÜ75 jr²½&'­&Eö»£&‡1eßè‚Áöº`Ðꂣȷ×Íw=}]²Ý~Þ)÷-àù|z6;EˆÛ3ëÚá¾Ii¾U¶k±ÞMTS¾ Ö8B}l(Ö®ŒÞzïµßµ²Cïsëå”äGÓ/Å9 ”4'"¿ÍŸèæ^|)·˜ Û|:a €³Z5æTmBBn?ÌÒ®+KJ'Î9(‹o d ýŽÄ Q µ¡L¶5”ARß<|í e°¬:”ÉN‡Ò¹Qßšôøè ƒo™”È0¨ 3Z‡Á¶ð!H"œ?a°E|CñaðQćģŠKíî'ß¡%úÐ 0ÁkàMÖÆÚgØrµ$µZ’ÏyôÇwb½ÑÝíUªùcÏàÄgm.Sñݱ:ÄÀV~íQRáf;uçÆ×=6¨Cì Ž£Mƒì`+°3ͧº{\þ5|'Ðn$ÑÞ›1}íoX¶ã©¶Ï6‰nÍÛ‚2– ò®àLAdl–½ ° ‰„*ë‘za@, ñ \/Äqæ¤TDþÀƒÌ—t3‘åðx\Á”qæïÊ”ò•ÙBNøÈù–Éf7 2’†uÚ¹˜©T"«‰ŒxiX¤ÓAšå'¦…Óz‘w”ZÌ®LÕY:#j††Í¦\6 UJîg¿£‚»‘ àT*Ï‚¸‚sŠ‚Ñ¬sä½—–ä:Œ^Gó¬¹é\U› àüRÑGÜgž©Ð ÔNŠ8ô(H±;ú\92sDCÛÈ©\ÃRΤdGy•õ§~ÖÈjÂ?qÞKùõ”êtl‹BLF2'^\¤@±‚*Ú‡Q@GÒË(åæLS+ÈŸíŠbÙìIlø gv í¦4æ©bnŽwˆá‚V‰ [ !î¯5äê]#}ñß)(Ãò€iŽo ,¨€ORµ<'+“‘OÎÚÏ‘è+•YÔôà!S$:ñ=^Bž&«t e°*æ#Ž×†73×9uÖä ú* º¥H{'ËÔ’èÑuÌž†;QSÖç ¤Y?ÀVaTœí.W‚á)ñ÷¦Iãçˆþ%`Îx–zÆÆÐ¹¯8XÆaŠn¸qó…‡ÂÐ ¸£ž м)¨È¼@'‰á¾ƒgþuAàyL8\´šËT«°FùÙBq†÷!+Æ„uÅ»JåR"A0=ÈG®ÞÇU–¸*É£y;iáW¥Z®ÀþÁX@PÒóDwïå`eÿQy€M+«¾)Ï•3ÀP ÄÛ É[wAÆz.:&¦Ê€¡§k´;C{¶ ×êù 6_Œü”Àuˆרà@¬"ž —QUùôY1§£s¡–KÅDïiø®KESuluáR¤.ì"žÊÓ$QwUá3•\fcf´ÂW*ãe_)sVuŒ©­°²JÊTÕ3Ê*,¦3HöX‘f[)/IÊÛ@ËSCÐFàY6sÄ\V£Ih.¾qpÄ[øE—l1ãSt¾ˆÑRtæø¬¦ä%ºÕQM 9¿Ÿ=wSdV\`½’ø^Ö“¼÷ >§³yÈ0=Ttü¤ë.0‚™C˜‚ö³T7˜5E£ºªdvÝvýgbC.køÎ"¨‚‘ Y²z_]µ »g÷»w±gªù©>YyRkãD'©=é!Cã"b¬²|ÞКú…‚hÏ0Ê~É™¤Ép?ZÍH#&+4Œ‹‚²CÞWD–­ }Œ\ìôùèb:’N®Ã84#$ÍF’Åeó c± ”RÊ<Áþ10™êᾺ”Kôô^î«0ã…g õ|2›7ÔjÜL.Ã#ˆæÅ)²á‹H¡_©£=jáÔJ3ø2G}gKUu®]$3vašóˆ½¨MYEC³¨BYïÕHJÓ<ªLêÕ§–G[gFyL£Óº µÜšŸXÔ«EbQ£¿-2ÌWÓŽÀm|º½t®—¥+ö (â òáEH•‘OóURÅ¥‹ñ¦èãJÑ•d¬u#+>4¸¥<˽´º.#lÉøÙŒWBÏkì[1¤ÆÈ“kЬ·Ë¥Âa™¬šS9³Ëƒ0H-U«ïjÆYö\ó/xzjS( Ï]®ÅD4lÔC˜¾ÅtTðÍ_TM'’* Àø…­@âZI`Žeí|Dð¾ÐPÜŽ¼È^úc{fdì(o£‡‘øÐ»[xplEz¦v*Ì$ѵÊ×ïÏðB_¹2ȵ,IH’Ñÿ$7?m/#JÆŒý´ÁP­BP£D:!ä«»r¶\àòƈ…cë€þÁdª0Îé4Ý&·3¢9Çñ|HÔGVPË‘QÇUJ#ÏÜgäf?ékDý~Ò¹‡"+Ÿ24tœ¦ž!zÏRN1xáû1t›ÖÑ5¯¡Á·‡T²ö#p#žõ‰¡ê˃ZÜdQG‹—óƒz«t‡5¬u(ÕOáZ’ —”GÈ¿þJ=¨×yä!Äw{îO‡ÅÔ g`”ߌ ðà}ñÇÅòø¤þÈÇÖ^ôq9:ˆ’A‰IáçA:>QèG²øv7ñ²q:<áÛfI’ ý[`ð05+m½ÁhØjaÅâFè{ÅŸQwž"–ÔEHkÏúc¨œ ÙZ–XFÖxQw©1©“/¸¡[¡ÖÛhLgýò”dzàìÆ_q¯I÷™qØ´ÿ‚P¿‡Ædj-ûnÃɈŠÞAψŽeÆBªÂd÷W‡UÂW!I;}æTíapÕu|±ÝCêtuwKõ ÷.‰a¢BÛ§åN£\4@A%1į”õ[mü[›ý.ABéN¥.RªÛ|ÃJ “ 1¾MÐ:¸ÔBñ\¹Q^ëqï}«¥€™·Ëⱈª¸ŠÆ"(¢ÞK~’ÿŠ;¼wçݪÀëÜ®œBÄæàäÞ› Zs‰‚†½9(šQÍÕ ¤Ïßÿˆ]¸Å%öÇÍeÙXÑ}ÁRBg¼¡Œ¤ÌÌ|Í]¹’I!;Œ½R¸ŒR›Ð €ö.†²]tT™\ŠÍ:ˆe–¯"Þ)äÈBPÎÂ5‚=±Ñ‰(’N¾_ûÐzÿYí3«0²Ë¢¨­o£ÍðÛG·ÊÄf”s£ÿ„ÑÔ–ÆÈO–«^4v:FNµE5C\Íðè±r +£LV …84ôœËe~—bÓÀ5Üäd>v8V4. Y®+!@ø,F%÷Vl Ʋq&&€Æg”IŸ«=ìj®>[-I”œ¥ü(zZ-Fûp£#Óq·Î†¨£ˆ®ˆöBQ*z%‡Aè&uÿÛÑ•™˜ÎMÌ@®R¹Ô[ÊMeêyp˜ËÔê½5pñÂØÒ|ÍÏÕÁJp†»ý-OJ+56SÛG@€„„S*jF<†,Ú¾boOÉ–[9}êoë×€+¸ÔïQ`бvXB{Aå,±€ùmRkWÅv‚Oû²¡¢†”XTU6ÍpX­ß¢¶c¨\ÀɤÄZÅ1I‚•å&¬”ŽkbYmÚ…ø>­D=¹BÛ“¨ '\ L¤âÔÄžÀ×Èb¹h–Ž¢•¿›ïˆ•¹¦ãiõö¦»ð¼–ÔEpe" +¶û¶®>œÌȤ"…á¶JïÕhH·ðÝëà=†7¹Fv¯ÞI8Ò±mw쨱ÞɱÉð±3œóuñQ¸@f·Â–*Ñœ ÖÄQcŒæêý¦b_0@ˆérLòÀ>žÁœ2¬n™j>Sª£¾E±°ý©AeVe5¤&‡qh€LLfL÷½´7/J›Y®i# FÖЃ㠔> >²öGRùÐL r²Ï}~‚¦žoiuÏçz7¯Ó¶éœla6ø–=s6ðRÁ PŸq–GEˆRyƒU¢œ(ʘ'ÆšM0_ÀÙájü´6;Ì©èŽ>Ö¤\ ™9Î-U¿²P6Êœ=íNfÛñÙãž=¾`V~öëh- ŠÕ47[t$ q>Õó-‰umÆ#ÓÌ·0 ¾Ù{¤j^ߦb®×ç\Ë©ïõuO€Î·µ-C‹u°÷o ÷cTyoÍéÿÅ£k8b1´úÍ'ã á |ux:(¤ñN©v5FìˆøšCŽ“f ºÈ4»|-ö SRÆCÑl£ P2¬/Œ=Íí !š‡·n þНwåðS:–éHp¾MJ6()Ù@,xQ‚rÀÅ1/HÖÁ®uãS +¨óìÜM x[ =~È7€Ó‰#à4`IÒŽpˆÛ"kŽUËAÕBÇQÖ7,-Gap¦´ãеR:ý[›ô´^®”Y™‡mZªÝ¹”]¼ÎȾ&«¤/‘ æcÍ&€×@u"`‡šu‘sum»ðµú *gv‡9ÅúS@Ú€|{·¾Ú>Z“œÞ*‚W†Í{-{ê–Š-†âs16pVÀ>yõØÔpòHߌ A˜MC;_ïÃuÐ_,Wçá³ù$~‹#m¸%Œ ÁáÚ,Ño×`}&`ÉV Àܰ`•ñÏÁÓXù`®–BÀLqñSu18¾Ê”²Á꟞ÏW\'¥ù"ƒv+Fdßž½ØNáA#»Oâë6›`‘Ó‡h‰_Q ŧÚwC‘<(κ—ï¡é%]| \½+’pQ6ø8¼&Û=,—D–qD‡¦îh}žO9=´’ë•q ~©#hiã¤&= èÂ^W™é#ÙDüH!CC9TçR#Ðâÿ€ìáö‡+ik«ÂÇRû…xîÚ,†z¤Ñ×fò%z%v;ñ%6©I×R¢ÛÇ·‡d"ãc¡ v’êó³Œs 3LpvSþ6ow´p“Ü7m%Sc´®KòD°ä¢í20Ûù8û7ž«Õ½Jm¢\Íyµ²7™©®ëŠô9W_|˜|*¯ªà“±àh:T5ë}ÌËs[&½v+ô}j´ }¤ËW™‘ÀåÝÉB}Œ®?µ-‹H Dî´âo8£À)[Ž”vë|^4ÅÓÍ€ wäê±[BO¯Èß*øIö»â¬Ê\Nõ¬«XŸ«–Š/ZÎY*“È×âùIfÏ7õ%jß7tò¥œ—ðºú§ËÅ\ÿL!3[ëßRž˜÷qµþâὕÌÄLf*W므–rµÔ¿·¿–)Í”''ûöJÛ·h¥šW`[©ÚÇ_îÎÍ\;ËQn±/J[K–|¬„##ñ¨ÎŘ1pø™èÈõ \N§œ3q9­u扊»`åb„ý¢8FŽ•võ¦š³ýž¡™(c³¹GC±Ì­æwµßGa—ÄÉåùÒt®š¯sÏXñ®ÊôaÖãä´¼ ÝÁ}¬àñ,éc¥<ÉÏy2—ȳZ¶ A×8~¸°2â4™å E'³zsîÄÊ!ÙÊW¡"€K>üµ¶}Ðt¸•$l3¡?]®$°Ÿ¹&X$Ø Éþ|¿d2¼÷zÙ|f*ªRÙ~d%Îå•Õrí%\5„—˵] Ïïl@`åq`¥ò6 ß —ÄÇ€ï<¸¼oÄÌxb ='ÖÑJÇL/³ðlt4?6†çϲåÙñB®Ëx‹ ¯ #½»ð˜ ¤8CĸÝ>=!|s .ÒmÁs„0L-˜¿”ÉöˆRäxž"Sï·LPÙÉÝ<(ßaüp•®Æ¬¢¶µL¥R8,jiVݬµQÓS$‚4%Ã7›0ÃéƒÙ7`3Ì ØCùp‡Ôdú/0l@èéÌ™˜âæÇ›XTwõAo´i´~nê¼Ð{°`ÜD OÙb ­ž¤P–rå>üJ™Á(+VB2iéi5½Ò4[À|Þ¥îÒ$έÜá•@»2&µ$¦™Ü9´fzag)x 4þ†) »¤S ö hØ™³,£‰uwñàÍŒ˜U4ŒD…ŸgBð 9ú™!#>!É5¸j!â·EÍ9\¼‹Üé„‘|{C°#”® ÛU÷A*2¨ èU¹östÅE«o3Ñ””w¢•±¾AÚ[b¼x7Ã5Ƞƥj,NNh[i¸‚û÷È¡óoÞ å@†ååÄ—;ü·—çÄsöbÏÆÍ×m¼fkªKriäÄNPn¡B7}9 4„ÿ\uŠ´tó þ®|In„B~Ø µšçÙí,ÓU¡œß3•s=•Z ´lµZ0X- ÔÒ `˜-FÅD^ã‘dg‹ab L^LO§‘]  šjOKù0`A‡½¢d 2.¦RUÇ5ð "§j0Í–‚X¾ÖtøS¡íóA«/P$‘›³! çEKå‚ÿ}‹$iy’¤&εœáÂùPÁ©Ù%‡¦ÝyOÉœoÚ;&o3ô9U’•îP”Ë÷åîÒ’œ,`A·¦™l–µàGšjqâ’“ p¦º^÷×xvö‹y&’2ugè}ì†Zn…dT³øäyuF^“¡1ÁÁl ÀÑ.[OŠ/@¿j¹»dHKôòÀ}ÒI׋]àû¦+Ng™ùQ Våˆ>—bECùT3yš&'«Ï­z¥n²=ܧcîxUÀ ûU1Õ60ã+uåIσPKX ZO‘Á¿)ø§y‘s,X ¨mÁ ªð¯„,§‚|üË©2¦á_^vnõŸ®¤šEø7 ÿ*ÈÒòzcÿÿƒªÚçYÕæ$‹RúvêžËŽ1. ‹M —²L®Í2^?ŸËTD‡|ÍãPCÇS´Ü4ESGÚ˜¬jÏ JZ½_Ö^é[COr4õºnÚx ܮݿn;ñÇ–ÌáiÆŸàUön½û¹^Ìù—Uìà]õ[Ëþ„¥IiL»¢ôe2œ¨ìÛÉ8à«åbVÅÛ± lÜ(á°™);d|23Vþqû‘÷9$ƒŽŠÄ‰]°?eC/èÃ0=Vrp_¤@²„k¢ìãüú“ƒÉ³åfJŒb”Ú>öˆ=£3”žÉ‰“£8´â¸}hDRÐÔ×ZõD,_`Ç(S¬0‘ÃAõkTù|«R-§t]Y:äiׇÔ$B­¼XÑ @8÷J’×¶ƒçà¢[¯°£voÄzð†dÁ£X®Ÿ`h˜& œ™;¥ö…Žè’³% y9£ËE$üç ÁÓëYP|±hÀ(_$Ƽ”\,ô@ðÕ3fl:TઠQZ¦ žr•x²Z†á5Ìùر:,iXUöÖ¦ñ{<Œc¸‡ÁfoÅÆ÷ÜCöW”úêt€×©¨ªb¸Kç!™°õP³±TŠcÒè Ì8ò !FR½<æÇ=`ÐÁŒ÷ŒÆû°7&:vÅŒž#‡P0/«˜Aø™/Æ’T3uêfz±uý Þ‘qÜU0ñ)…ÂWÇj9q¤æ˜!Êh|™—ÝsÈW©3É‚/ÌB’áœQ{>‚€ma2 p©Üa(›Íâæ2²ª;(È~ˆÛ˜¡ÅÊi‚Ìæ&3LhqÂUlçà‚N‘þ™m]©},œM 8¸Pvj ÀžÂi8EÍá#Ã'1kï!pÂLv•ÃÝ9;¸>çÛ›ò¸ó^ÆGN9—"$•%¡ ÄEš •‹Ôµ”d<uXÏžŸ8¬ö(ÛºgÏœAFÍþC+ÜÊt$Ì‚Ñ5ŽÌϲˆWIu—ê˜jPÇ锊cW¡$tÅæ$÷Þ‹ú¡¸²;lU£×ÎòòÚ¦R7=…DMc€ž‹n'&¸nÂj†´º&úÄÖFÜ»k¶\ÏEå¾³BЬÀŒœ4Æà6Œ×rÑzîPˆ2î¯28^‘·+Ο°§øŒ=H®c£Ö…ïI)d*µ\ª Œ,ºbš—ÂÝQŒsˆ®ïJ¤ÛÑ™À}K£$jÑMÉ\gws¹½è¦¸°Ûžšçtó5i¢œ)äj¹Ò®Í»6Klck͘æ2Ô¾Ô²Ȫtw{«åœˆ­Æ­'‹€ìöx­ž¯ÏB¬ŒñÃÞ꫽ܡ‰ã篼zË {Äñêu"Fg‚íV‰;jùÒT!wÒœ;d컸‹9Ø9¦¤m߉¤‚•laDwh¬$¹lïÞxýu¢~l¥Ü©–ZÙ‹+iO%®Ò’¾ÁeË–ÕçÊ-4+Ašuµ¿Y¨ñÔíJÎ[»–u{¥2÷±VÃí#¥ù‘O(ýZ¬@Í•'àÔ\­ZÕDsE­¯¨&J£¾‰5NëšP­¤~Æ(ÓéÛĹN“ráôÔÔjIîÒ|·4[Èn:2â'ÖWÜ™V]u¶Uu¢lÄãbh?"âg`$N’©pn²pØcÈÄùaX„ôÃåÙ*LÓT§Ä(ü‡z3©3«æ$ŸíSVru»=Ø|{Ýì˜Ïˆ.F³» ¹„ìü²ŒòÕ5†«H€@z‚¦ Ik]bUe7Ú-Ã-R©A ùÕ34D鄘º¬.£½…±˜=¶2#ºqÒ¯€?†,IÌh-ß$¢Ä [(ìÚ¤öWVšPÕ7@)§ HëÜÕ!‰¡R¨iöÀNH ™$ÁH@.—etæ¿xÄ2ÕÈ|é’0ùF:_û8Ý6·\[Œåy)ŸMôÎØ,0Ö¤Åa Ãmà ØÓTÊØ‰y<™7Ä~lî"Ò­{ª³Áˆ“kÍc…ÅAÝ¢ãÍÝ«¤ühƒÐ"p=©qžù‰Å¥A(‘¢UWŠçîøð"R? ÌdÆßÿ2ømˆ¤ÌÎRÌ Ó„å€öWEzüìѨ*<(}ÒL¯vD–Éõ@‡¨Äð» 5•µ¾ª¬Élø=&C› ƒK>‰t¹ðríaÏ©ØÅ*Ö€=Äig;8âóìd@®»f‡ì ¬õ@·w}´ìëíɘ·¯’Ë3^¨XÖ»†q»ÓslŠä§frʦq¨˜ÏVÊùR=€nô‰…Œ« r¹Z׌ÇÅÝè¤ÎSãZT/SÒ» ž%«ÇÄDÃvÉÐÐ9‡Ëã쀅ç\;#syΠBÿo_îcVòM)¾ƒ_ГÅP™, ¡eúÔ„àP×QcŠ«J-¬KÄ”kB“ˆ9ˆdR[†(S ?½|/ª´›Ôvº'KP6V!õ.²Ôz˜v¬2,ÒA =S±(ml;º³~Ø’‹nRCeÂ8jnð¸`ÌM3DîƒÄÌ\\P6ÁPØë®]¼;ô‰ænÒ¾hÊÀò¡{1C𨝬kª€ÀC±ÇT!º\t­rVs„ƒ¸`þ 2­îf÷LÐ\¾AÍzdf,e“$ÏàŨl‘£ë<‰>½nšL§Rx4ȽéP›…-Á+)2®ÐH2Å·qÅSÄy%m"¿÷ð*BkѾ_÷3®VÕ’ØÐý« Èy|4¾ô«×43’Ý&:Ypæ2ä4˜˜¸¢DÂt²®8&¨%]2£¹r#à˜£ —\Ú*‘^ô&€%¶—x½‹W&eB §Üv-„ùI”!Ôz,ò¢ØËýI½3 O䉮«bX¾$ND«%^e mÁ‹ŒŒXB™ 6F´ÄüàUà¨Ì¿öêÚÐ ëù4…:™Æ©;EÎU_ á1[Í!+ûk̶$/©Y”åHëþÑlÒ@Ó‚¡Êû:è2š—úEÙG¾šä c ê°3ãNªºG6 œ^$F‘Zt¿N”â‰\ݹÌ5ë1ƒHp–‘ EfØ¥ê †ŒòäÂ_j޶({]"qÛB«%5„Â,]s¯Xžf’4Ž«cÚú¥¬ž~b£µàâÕ{q?8öÒL\-õrŠJ+kåQi<<£%R®q¤äºÒ4ÈÒÕe7Ïj‘Q#×p·8«ÌÑhÂÈv»’ÛƒèÌÊÏžÒ!¼1ªt&›Ý\.Mæ³9 ±F„‘Íàrš•È¢œ€Ë¬Ú0àhˆ 9pØü€§hŸ’+äêÄl^ÓNŸãîµß”¤œ,Ñ7üæ(úé&–ÞL‰W˜žÛÏ!K éëë‹{Ûn€ a]é”D’²†¾™©Âï–Ê\:á½Ùe0ÎPÞV—rþ^ÑÇ‹J>˜oYׄQßúRfÉ{ÅÛQ?îaLÌ:¯È÷ ÑdŸØã{Á¤áØSq´;ÓkD¯ž·”ÏZÎÊ2ùDdåD¦Ežiì£&™qfÜ=ŵ¯wÍæAF²•ì—t{så*hàaÇh.ÏÖ8I0 ½UU :ب–2o¶)=LÔW«T5cÛ ÉX„˜¯†aƒ›õ°½)›ó=\^nÍòg€fàv\¥¤©§iKÒ-_%0$ÐÞúÞ&õ[Åþ!ŽØvÌf'Öìg'dnPjªmKÜÓ¬dô‰iVºaƒ!˜ |ÛË^ D¨NZ@ ¨dL>ž<,×Å+Ù/jm54Ÿ`0‘J%Ü1<º/?æJuˆ¯ñ)q×>|få'µƒBF<›/rµ”^c­¥Üœ6ùKorg<0%m´'©úÞp‡ÚXž˜šJ‰"b¢€DOò‰"Ño‚Ý—z4¹.a(6œ]]Šé9ÑZ_¯²¡zNÕÝRÀgB9:Š„AC‡=ÙíÕËÙ²7)e 9Ÿ*¾%þ\¹ )9p9©pY~¨Ž¶«EFY8ð&25Ÿ»Ã`ÄöwPI`€c#g¬1â4™Nsäð÷"ÏÕµî.Ãr+}µ1œéJfÌ“õU Jø8Á“¦P¥§aß"pA·7ãQž„~.W(°Á.‹÷]N!a^@–Ï !¬·@VÏ&ªg“ÔËZ#¨g‘ÓóÃ1îÇ̦ÈsA“)m`…³,M6…É]ÁD5”Tê4ÁD2©&Y»äQøgh0.stœA›õåadPlw» Ñù­¿E:ÓI&áC±n^‰^ôk•ÔÑÞv¹Um‘7Ë%éEš¬­ên‡ª-  i‹B(š¼¯îFo^h9 'ð<6|bWµ†æ 8~:@·0ÏgÜkÖ`_å4éFr”ò2…ÂuùlM踂Y¤‰fsµ‰èQÎ8sÂwWÅẠÇÕR‚ö‡_ŠÁ²¤€£#.zùÚÉp3á¦<•ŸÈ¢Jpé2“Œ*ñe /Ä'?…ÏêM¥<^a_ï *vGlªp·_í[£äC×&øp£"™*.MxöÍ·É OÍ?Ç4³%þrZmH}F‰`΂Ê:CÓ/?âàêòt{ØÏ`?ÆKH.ºq¡ìTOJ¾/p£{ ìn1ãÚ_s〡LÅGG}¾ˆM j‚F ôdûRS ÛÇÜ!²‡CˆIȺ~:Wˆ­åØ%¸™<‹» ³™R½&:Îк÷ ªÌÁ°Ãb1Ùsì¶Y¨Ôц’Êì²1ÕÈë³³–© ÔŸ«ìB\m7SyÞ@kåjÛµÁ$©t`Òî 6PiS$ü$Ó¶ì²»#Þ-h­†C¸~P,qó Ò¨ã ÔŸ"e.é)3¸ºEÓ^å8;¥;áˆØ©A£ï ôu¿o²?мÕÉpHV =‡é’•‡5%i ÒRngÔø0¶7UKúVCÛ¯“MxÛG¹e’X÷øÈ*š§G´5ÍÞ9õõbEù7ìŒa{|gs»½\¾4™™à–µzññnäQ}r^rMmbºÄdsÓÙ©àE ~“ò¥†žA6^9–§â’Ë¥‹#ûâ"ꜚL#ΩoÔÕ6 ÉÕætÜRÎ|¦Nø5qçx:“;qðà¢O4îî™åºÝጾâÝ\¸j‡H÷'5&=؃[|¹b´[çÍû=òi?7ÞÙ<º¡>kʧû&†òê>‡‰Aüz°9Ïîtœm8Ô¼»¿Wª×PÞgºOqq)£ªP'œ‘4lŸTSR?h‡ì¢™BYI_k¹_0vRnÔ7g(©MŽãÛó±}q´7&üÇlsâb]ƒGoƒ"f§¶˜MýÒÖU´²í°†7§ >©;'`H|Zâðvн…c•±û_²e{œš§fÇ,5ó¥vS³NHY›;¨'ËäÍÈVw·6“aãÆ´[Zij֠:°íì`\ë Ä4¯Gõ›ü­tÞ·pޱ‡û"…s !®NjL£†>ÖcœQÕÓFŸ·YžBøvl"ljߔ<|c'î K…Å4YIׄdáGŠy“=—ötEæÍ1WCUv‡yê‰mƒæáØPÏ…æiwrÌŽŒ+9qÓíu{¸"§ïdZî‡ ÈÇUÍtrUó{¹êî ¼ò¬+Ÿ¼aüVyŒsþÜ?y «Â=³RΪ©ÍÅål9ë«[V¼•éÃlõ℟㕾0óp^£üáòÓ ËÊò*Kht)`œê ‚µN– Ya=Ïþ+t0øJA¥‰É¶„‹ƒc×”:oÃ7´f0S¾d¸ã¯„‹BÓ#Ý•²Rj¿„¯ò ˜a¢ˆjg…-5qóü…³ñ"#ϨbµY:ÓT\&‘è ŽðéQÑìÀ:Wî”ÓzHGu´WÓݵ»¯ó«GˆVŒ@1¤l8“lXÉB¤’4QŒ’lƒ©‡ÔÍ0÷¢Ãx Vò“ÜÀÃ3|­5À"!ÖpûyÒ|¾J¡ªrh¨–²8:f/’†Ò>pçBMçzûæ|Žà)ÄoÁgbÊï’¿|‡‘ê™ØhÉP£() Ê]*¡T ¤ïA}ž'S:BœÖ¯.5H¨*ÈÖ2@¦—w‘ n£ø}9þÓ-%]À’FMq¸TmF匚&‰çCþzÐ|­£-_¬pAMÓ„àsFäQ3MϘòd TÒjЕ$ ’>P¾CWöq}6j\—u%!Áƒ« Ü,€úšž@ŒDðÚ‹CjåÄ€› †› ‡›´áúô+kôl´˜½„E:<;GÒΑ È¡À%LºÇgNü)C8©BWF$bÌY/Ò1–VÒäÚî¸ÄP)?ÇJ;1‰»ÈU›ÈóŠ—6Æe %ŸáªÒµö¢Se%Õ|,9˜¥Ïº(,StT8‡!n¾k9OºLéÈlØL¾ÕÒZ¯|øÜÍ_Ÿµ”bÚ]  qÚn)аáÀŒ?œº<Ç%³yP8W Œ)xuÓ {!D/ª6aùWâþíQd-õY)O±›£OHEçÉ!Çø›§ï„CAÂÝífÆ4tˆúÛĺÝ0¦»c<0íHÄÕôçäO…× ~Mò^W«Ù„rm-wWTDõ`¤o\û'elžò,ˆÌ¼iı§:‹wQ“mTLx˜U§Ä` ×ožÍÕfš¤+M’¤9@Ò(J胰ÒDϪd1ZWÚ-çšFè%xª>#f3 33Ian”9°ÏCŸC±1¦Ãq¤†g>¬~³nTâœacÄ’ôèCjlh`–£‹n9v†Ïc›„ìÞF\ý\Ã:jà¢Ï?¶ð¡Á…A­k÷‡Ä\ÞfVµš}·úE·’5;h,„”p—ð•h¥„ð0< i¾¨ƒµ€T8¦V'˜Ä"éI¢ŠÍHé²nWƒûÏG­8+eγLKHìúî ÛŒ¢jÞŒt0ÉÑzY€®&‘ %{±#™PäŸñüa¡[ ~‚8VÚŠ,)Ø–‡ä½ƒ¶´‹+‚SIçÕEtGøcYÝæg´$Ë`q ÈNTâÚÉ7ÉfbFïpCσšIै·èÐ`â ´“ÕÂ= E³…« aåcéeàTn¬È_¤R*ì3®Ýã@ßÇóc$Qi"´íš4ä$sÔÏä¢*Q4mB3Ú^´¨ÎEèOdJÙ|6SÇ1\.}o̬ŒN3*Ïš vŒVijBïLLsÇÛ˜8$]%ãOw©•Ž$³R]h§ÊØ)”i²¦vÂWå26; Züê•°Q™™‰*?Am÷¨ôˆ¶,»ÓëÕÚæ:ñmTÜ¹× bÂë£8¦H"OSòá"!6c¢æ¬ÁRÙ†N^¿¯…Íbís'h&+;ÿl–qW`FÛµTõ&²q• EÞ/© "çtÝ )Í‘)ûìÏ5aöZ¬Ê©”/ØóDE` Ì›3$øÄä¥ÊrV¹ ¦u€[QíeE)|$Bžd¼Zž«±Aõ9eé^nUÌÚØ¶&ۚDZ¶¬U»— åByˆ¦±ŸÎ Â;\±kùq¾™Ð³è‚Õ>•*p)YÍ¥Ë알Hq‘TSÅK“±rU:V'«ØAÞ(’˜FŸzÈ ¢ÛÌZ03@c™t'å«“‘ÖwŒ1Xào\hHL½‰ª–|4Íç Ì“¸œ/'TÚðCœ†¡žÅÂ+!nݦËA1ë:¶O‚rF§“Úg ç¤Èã ›$´½].õNnë=ë=ò ÙS&ò5¥'A-õ¨T£ xö"fÔÏ4Â'¢?öûkG}?m¯g}Â6ÔøÀ†Z Ý|£ÞHw —t{µr1ÇMóóœÈi]³S_œ)”²"`{¾Å€©GµI„Sd1ª.ÓbGœÓ³®‘8§~¤%Ò/U„’X €á…xŠk8Z¼âsXI ;‰"žúN™8»Ÿ¸SÇ(]P,ªˆ.ÛO|PSWὋvc®Ø·Ý² J§D&É?)±™†0Ç®÷Gƒ'ñçÍNéæúŒGÅž¢,Øð¸ˆëº°ðÒ'´yJKu·LÃ3‚ç—®2A%—©+ÚhÐQ–Q:äGšqözÈdʪk½u™Dz²o`¯XLR ~$X’û¡Žm q6-1@nžkEÈb2Š'{æ®É‚iÊñ»åþ æÝ{¯ß'Ì6¶Besè!fpžâC-FÃÖ#ˆ{͉0¿Îwå )Sî)RÚ9E[ýˆå—ºQÜ"?Wºç (Sô‹îÂT W­ì‚`úñomn$±讼±î¤Øª`ºâ]ªßù6¥Ÿá$}€ÆrT`•Ñ5·ˆÌjšk¡ò€ºV6”$—îŒiPƒnðËÇëÓ9¯P.Kî®;Ä©±5É×¥x¯Ç$æ±IRºœ2±Üó¸ë”îð½+Ë“1ud¬ÓŸ®‰ájqêñ`Ÿ;.¦^¨·âó) ôû(^NÖžPÏÄÆZc­CÄ7ÑÕ>üOë%¨À£Oò΃.5ºH1¡Œ'Áоüx!_š2=‹«)/Mf³¹¾Z®0é)~›ëR®éh¨Í£;ë—Kjz& Ų”ªMCÅîÙü+·‰!Uô³Hªƒ£ÁÊšR¥×]}Ðiõ‰ Àå…`«¥Ÿ à5Mïên~S‰T„çtQj7ÏI2úùNIçT3;uñd³qNÞ à1’X§G0jŽŸ 6#MNÒ3M5àƒ¦6S¨Øc‰1ÎDA™€ †rÚw¶*§FuM˜€4fóIêƒ ÍŒ”  w™þtšV IçÒ§3©™ê¾ìtœ< #*MùxÅêD†ûÚ ]“Qµ.8zÇ”™±¿Bb˲7—€Ý)F…j¬ï8¯uåͪ}~·UÑ©\}×ÞÍZub·—¸J·‰ƒ*¯%û ݩášéí,µjí4˜¶Íˆ$«bFDtrÔîÆR y6·ª;6LvÐ×A&HåX nìÿ®=ÒÆî„pNx]ýÓåb®¦™­õo)O0©žÑöþâὕÌÄLf*Wë—ü~ÿÞ~€;öJæ_©È bŒ¼fó8D™¦vLd¸’õ¦{836‚´Ýð{¨ÎÃÔŠÏ·½+)<²¢\¹Ñ—¥Ýœƒ—ôà-ð¼ûmä52…&êu.ð&a½áAÔ‰¯›%2P3S¡BÜ?01ø)ˆ›Ùeë‚Ýþœ;Q®LÛÊ™x§Dó$+õm Òo_øÐÒœ„r¢jS2S)—ÃJ2(Mšááp)“¦Œá Å„jÕ`n$@wSv“Í$AÊWT¹g˳pBÅk¼˜¿A“Û1ÏrÝ(ÒÜi²E.öƒcJé\)WÏO0üÅ ÚC%«ˆ(#G< Œ<•G}lP\V®á7pLÙŸÜ ôóJE5/Qd-Ë`tíËßãôŒúº^i&BªWãÉùhžqK>3Å“ú it¢à,Š?Õùštf‹œnE’äêDÞiM§ÍrÝ™}µJ!_Õúc[¸¿U9W ¢ÁZú÷¼›!‡–d‚X~Š0»=z4ÙX‰åóæ•kV*ˆs¹üÔ4Õg¯ ¼¼ †y¹{@xÂÇx,—ª.2ìÿ\¹z(`,pÖ°þ5‚÷·©vó n”ÝšJÁýû¶_¿w?Ð<ÿŸHÙ\!WÏ¥à¥P4Š™¦[x¬VºÆÅøCòض=0©˜,”ËbuéOjñKGäYÚÕC1â—ƒîý˜˜’.ts^<àcØÒ’wn¦ârïaŸœ¬ûq,6•’ÕW5k§tX®ƒ)!? mKá• ?î+k FoQÍx²âãê·Q:”:4ZXÎ:Õ9­ùÉ]Q.ån D«€C®}¢²réæµùªŽŽ&vêí· ¼ØD ¤@"2îñqTÝ?:- OÝv…äFýÒQ¢Œ Ã)œ8g÷¤²GI ²OYØ'bv‚¤™@¢¾Î—Ý@KÖ¨”ZF/,Îð„[5\DÊ‚T@¾?v˜úZõî¥öÍ HwyJä÷é#HZœÓU·yæºiËæ''s¸{a­v*›W =äõñª òÑ5«êEÍ0þudJý“ÇÌ2¥Ù~½ 0Xœ%î Ã*¢ÙÌXå`eUò¤•<éLNKBªU;\,æêU¶ÉþœÈyþ¸ØãU&UM÷Õ&ÊÕ\`J±³]ŸLLú]³™l5Ë_hÚ›‰qI¾¹^$c±¹LOquíG\a<¨W*×}HhOàÚ4Žn¥¹š~â]’¼S3/.ó±VËs”=ˆû&CÌÊ“´ó$ã¾é`ž¼åˆU A/=quÜÔ]wtY™’F¦d“L>ü *s{b[ñZI ¾†{^¶œyÆ[ÃÉ.r ©€ÚôÏD?ÈŒorFž I¨RÇÆÂp®vWµ…ÓÑQ(§€ÅnOªÎ·í>™»H?ßÏ÷nó¸Yi°Îp*è—Ÿ¤v‚ïÎFÏÐÉ’,áOfõñ@È”eEw£ƒÐ kÀ®ê£o[æcl¨lŸ9ûTiÂ2uâ¤#qÒLܧ!jX ,ËóP ‡$ªs%G)uÖ¹’Ž\ö¨*eÜÁDHY:U2ö °:tƈ?¸äA ËZÊ¡=tv“Áô€o×Fåg1xgÔÒÄÏĞϡkòÁ1†(¬Ó ˜1Àx+£Ú ª%EF–¯3Þnž¸ÆDƒ2Q ‘Dj/%xá“0Ó" ÿ›.”8|%L(a*"Î’*_²I> ;•N NÝM‘Îç/-j¤êŒ¸JêHꢭFЦ¼PODˆë±ÒnòÌOð¨¼Q’$Ó¬'*§í@2Œ@¾3 dE§ŸfLü`qï6×±Q¡1§L´°ñ7ÕÃbwwšQµºÐ–Ç©¦\«KÔ'åckÓè y<çeJ^yü@n PiáÝFÝÖežŠ÷—Þu‰ë;(±b¶RÎnß3Q.VX7×äF‚Ø0XQñJiAü›­‰*Ь›¢Š€·¶/$PµI.¢( ›ø²9BD¹5Áú÷]¨B‡K ~$jئüDÜ–ÝU'‰D¸yf{ÿQƒl2cAˆmfÁD …Elª…âöªÅ©[Åd2MU+‚ì_Ñ.’x!8bPyFgƒìR%Qì›íº+x–>ïÊ!JV¦PàïûnÓ⼇¹Lï˜Tp•‰Ò' ŠÑvìjÖ-õy{9-fãã9p#¸<ëåU­ðï¾J¶.üØ‹½;úBdvæCÊwè?“Ë2Õº^eWù:×–Ô<íJMzW«E-É)r“±FݯŽô"B9Gþ^K}‡[u‰éT¢XHâ*—NJCõJM6ª³{·e p“œ¶âú°¸‡U±ehÜG /á ¨˜ TêIÇïÍ–Æ„á®ù¬ŽÅø¯½Ûøöy%² û;´Öa©š1ç2f`}¯Á Ôóåþh®Àó@ö»üd?ZàÞ¨Áûw¬?y|ø?²cd}øÈȺ¡ŽíT¤†‡ŠqÎNgª™ pýÄ7KåNš*ͨà?Ëlò,ç…/7ÔQ>´éóQô–r/m6¢0:=DïùE¥<í„dRü` ÉÇ*}@y†\´0/T ‹û<·ú û‰ÂÞmæ&4¾Á+ˆÎJw¤KÉ%fAÍö¥1Qó}i±tûÒm.Z×îÝÖ¾ %\:dY#)e8éU;S׈¾ÓT4Á†Í0[µÊ3T†*æ[JE5“&Üà* ’~‘´Ê!P“!;ljð• *Ên’¯¨$/*Pb`#þn³L5†Š6$ ì‡H*°šô[ +’].qŠ >2¥'¤¸ö‰4^®O+²jM.•A,q¾Ø&XnÒ™XßëÚˆ4’&yÒ¤‘4é\ŽïOÎËþäu2[·‘E}ÞOèDÝÞ ”C‹ @#[žg)ÜLÀ¶™ʨbgÀ>¹‘V¢gÀ–¹Q•£¼Ñˆ(¯6¥d˜°^'Íת¦Aóv@¶¶ÍíG­Šoq ’Œ“ÑkGs»ëD;hí[ß™ùðÝwß­-‡OéîöðmƒwaŸÈ»›q¸:Û'eÊ·öe2ÅrVØÞMD»nÚx ý¾vÿ~¸íÄ[2‡§Ë““ðu¢²wëð¥X/fŠüËÆ*¨wíªßZÎð',Mr¾ÞÈ tí­‹<ÛwÜ8'îãpß¶óözS¡Ìºõò$û* ºcËæ]³ &ÔB|·70Ôfb7Ê)èÙzR+2¹…ñ³}S[™<˜/„‡ùÒD5—©±µenTáI€¦äz ¯éöúÊ¥åLÖ3ì…ü8ðWŒíž™‚/šøpSØüxfZö0{Õ¯2Ä=B™wßÇþÿ‘¼°E<]´µ4ó‡<:i¶4S*Ï•xj_ŽóµmùBŽ};ŸòËNuJ=ϸÃz¦Xaeœ/6~í¥/x÷ =oà ?"J](KÝsý¾7OH'E'âϺ®½ÀêG¬jo¤X¾·ÿЕ—ßqùPoe¢—Í‚ÙC½S¥Ù^Ñiýƒ}IŠñò«»°V.£é›ÌÊewçæ`úÕüý$3øº`I­:1ɺv¢\9,{E<òçË}šHš)ä35gv#›N–¤š›ä)=ŽÝO†%†PÜ'¾³û©¿ä@ZÉ ­z¤-¨— Hp¿T|g÷SæW‡P¯àî‰ïì~ê¯øÕ!Ô+$¸oßÙýÔ_ó«C¨W Hpß"¾³û©¿áW‡P× Hp_.¾³û©ÿͯ¡^- ]mAý-¿:„º^@‚ûFñÝOý~u5% Á}™øÎî§þŽ_BM Hp¿D|g÷Sϯ¡ HÃV¿þ_BÝ Áý2ñÝOý#¿:„JFȘ[ð«C¨›$¸÷‰ïì¾$¯¡n6›u]²€_BÝ* mµ .âW‡P· Hp?S|g÷%‹ùÕ!Ôk¤ýâ.®%'°ë¬Ž¡Þ MXPÏf×òŽ¡f¤ªµ‹]C­ HO´ &Ø•îꓤçYPÙ ^²«c¨Ï^cAÝÍ®Û:†úZé]Ô1vÍt õÝÜ uYRàW{PíÔ*Õ’¹ér!·O$U…ߟ÷°ëñýþ|I±ÝÂÕ!)ÜFŠ¿8Ñ• E/ŠÖ äu‡¡Ÿ?º¡' º¨Š|£|õ°xíªØ‰<œ¡9Î'òïÎZ—\µÞp¯ÖmÔ~ˆþ~8‡ÍUåÇÁ9·L=Ó7Yeâ‰H»…» 9y¢\@u|ZÙ…pLX=µ”¼-ÒÙ Z ëâ‘Õ~‡;Õj×^Oïpm3Ê==@D{B2F"Á«…«qg²0o±R]´”ŸsÙhP.<™É…×dŠÅŒ¨ÇŸ’d¸"òhâÍÑç”ÆúZ»2ʱí·~“’áªöÚpLJ†«Í2l‰eÿcSçpÉ0j–aK†QÃ%ÃX¤y?/$’á3ý1'öDÚÂýÇL2Œ·WÏ?)ɰ×,˧Ê×ô«ÌJ,·*ÕåêÌŸ‡ˆ–`d{¹‹ l»:fTs¼¼¯ßÙ}I7¿:„:) Á}µøÎîKVð«C¨SÒt„Ü?Žß—°enÉªŽ¡æ$¸_.¾³û’Õüêê îžøÎîK¢üêꌀ÷â;ôiŒ_B-Hp§"Ð~uµ( ÁŠÁ=üêjI@‚{B|ƒð8¿:„ZÊV]{ùÕ!ÔŠ€T± öñ«C¨w Hp§¢e?¿Ž‚hYøEËy-û#žh9`Âô‰– ó}["ÂâžkÚÞ>²ëØŠpy—ö~_ÒÌ|ƒ•ÙЋG:—'o¶;lÐLoË“2½-OÞ(Ë·äÇ}Ïi¹r(òè"ÍÑç´æúÚ»6ÊñÝlý>&%ËËÛkÃ1)Y^a–aK<7?6u—,¯4˰%ËǨÎá’åU‘æý¼H–ëÌôÇœdyu¤-ÜÌ$ËõíÕóOJ²L™eÙ{ŽÝô÷Ï-Áš|ÖÄ3yž“LtÌf‚mÔãÄî9&ùÕ!ÔYé`ÄÜd<Ä’¡Ž¡Î Hp§»ƒkùÕ!ÔCÜ/‹èÝÁËùÕ!ÔÃÜ©Pp¿:„z·€wº;x%¿:„z€÷®ˆ ¯âW‡Pïà>Ñ»ƒëøÕ!Ôû¤û¬º^ͯ¡>^@z¼u=¿:„ú îT„Kñë(ˆpOŒøE¸ô¼ŠpéÈ£' ›0}"Üó}›»<Û"G_€ƒÝÁmV­7šyÛ¶×<¡\©ošý) O›"æp=Ö¢ÓæH(KsËŸ‚è´¥½6“¢ÓV³ ›¥¿åX¶™eØ¢ÓcTçpÑéšHó~¦¢Óv3ý1':툴…û™ètm{õü“®3ËòmÊí4ßß&ZE:Ø‹'2ç“»¸Ð‰ÌpÇlá“y)x§{qøÕ!Ôû$¸Ó“üêêS¤§FL&ž­åK6w õiÜé^Ü~uõéܽˆÞ‹Ûʯ¡>C@‚;Ý‹ÛÆ¯¡>S@‚;8®áW‡PŸ% Á ÛùÕ!Ôg H϶0k¿:„úé9V]¯åW‡PÿL@ú3 êuüêês$¸SAn'¿Ž‚ ÷¼ˆ_Û5¯‚ܮȣ'Èí6aú¹ëÍ÷mn«ì˜OQNKë{­Ré®Ü[ªÛc‚±wåä2|¶dF"¡Ë¶}Êâì#a‡Øç6»Ë÷šém)T¦·¥Ð[e=þ7ìæí‹<ºhwôYt£¹¾öî„âÜmÖïcR$½¡½6“"éf¶¨tÛcSçp‘ô&³ [$}Œê.’ÞiÞÏ ‰Hz‹™þ˜Io´…û™H:Ú^=ÿ¤DÒÛ̲|"é˜ù¾™HºÜÕ‡?IŸáb¨¼K‘t7¿:dp_ÀKÁ;I¯çW‡P_( ÁýJñvªöð«C¨/^1ERÆQ-ÙÛ1Ô—Hp§"é>~uõÏ$¸{-’îçW‡P_* ÁФ7ð«C¨/àÞÑ"éüêêË$¸Sì&~uõÜ©Hz3¿:„úJé•V]oáW‡P_% ½Ê‚z+¿:„új îT$å×QI_ñ‹¤mû‘ôNó}Û–~ó(’ŽÚeæ¡¶ š13 ¢†y(û}®d‚Æ#¡‹·}ÈãÜ#aŠØgÌîø 3½-˜Êô­ ¦Aæ§Ç´`š<ºÈwôu£¹¾öæ"¡87fý>&ÓÉöÚpL ¦Sf¶À4öØÔ9\06˰ÓǨÎá‚i>Ò¼ŸÁô€™þ˜Lg"máþc&˜ګ矔`Z4Ëò ¦%óýMuìH`t°·úÚwÙ$ïâ c³Å¯ã¥à=-¾³û’ÛùÕ!Ô× Hp§.tîàW‡Pß ½1b 1w²+Ó1Ô7 Hp§B÷8¿:„ú€€wjx:Á¯¡¾Y@‚ûJñNyfùÕ!Ô·Hp§WŽ_B}«€w*tOò«C¨oàžßÙ}É¿:„úvéíV]§ùÕ!ÔwHï° æùÕ!Ôw Hp§‚ì~Aö]¿ Ûv˜uE‚l9òè ²¦O½Ë|ß–,q"Y{TDÙñ¤£-ËVÍܶ,k(ð#u¼Ý™Þ–Aeú#Ýý“”Më‘GŸŽ>·n4Ø×âY³ ›k¼Ýú}LJ§ÛkÃ1)ΙeØRÓíMÃ¥ÓCf¶túÕ9\:=iÞÏ ‰tz·™þ˜“N…û™tzo{õü“’Nï3ËÒÚJØ*‡íþ»ÚÕîÓõ[ ÚÀîká~jÄŒ²'¹ÍÅΞ£óÉ Ch)ØdÞüR§e\ñHk01ý/Åï¥éE_¨ôyô5a‚–” §ˆm$œÌCÜ ÑƒG<æ‘Ñî=U†ÔCc62w1b'¬©+kÄKõð`¦0›Õ^Hºý—*ad«ùK#cƒéfèE¼¨õ"lL“£J:㈫-¹@`êÁ/¶€ ^‹é.{„Ü[H¿ár‡~‘7ÓV»UÚÆŽ™v‰{7NÙaÙ=¿E.Œ)~‚ÙZ™T‘ªLY†,ótGZHs¯Ç–ù©‡f¸h=NrÖC§] Ô†1-až]¾ÀÆÿ²'}«T_ñvܳùï=íà¥sià1Dì§"çˆlíY­•n§& „R¡ÕÅà—…á{yÔZnÅgél~8Ö ;Ñ8vÞ|”µAe”užU–Åd^×óIY-ŒÎ^™ï‚y©ÓRg$…j·NËæ¥Nîu`Yuj‡æ_Ñ4~[ÑHæ•Ö_HÚ¿­H!mÓß‹-x—!¼K¼b ž_*î—Eæ—6/Ì…ºÆñTäTÊã¿oh‡Ãi!âºøïý-æk5\nlw è>â(+"G®¯Ï$îZ¾Íç•®¯´ÊZ5/e¹éºÄóéÕ~™Ïò)>¯t}u‡uŠÎKÜt=ÚAÚ¡ëk"&]ÍK[Üt=FÚ¿-?ßmÓá ^üáÅ-x}âÞ+îý‘ù¥ë‰È‘ÓuéEÓ~.ò*Ê>ÐZ{[¬‹¢èIþûæ󵚮-ÕÔcpúà EŽ-Ï$~YÞDç•–¯µÊº|^ÊrÓòËIY­âä³¼xÎ+-¿¢Ã:]9/urÓò+;¨S;´|]ĤåWÍK[Ü´ü*ÒømyÖl›ö^mÁ[„ðÖx „Ùxômާ"§¢äí•ЮþäÖv)îFþû–#o1@Û9ztw“x&qkó|”µAe”µÙ*k˼”妻[HY-ŒÀ-2Ÿål^éîÖë´m^ê䦻Û:¨S;tw{Ĥ»–ë¯y¥»×¶ÀoË-WÛtr‡ïÚ#„w­o§¸_'î»"óKw¯Ì½£%Ê»»µ2 ü9)bâìï…â÷"{$¢ù￉¼Ãû=ü÷m-¶³ÕtmóÙ{硟ξÈÑ£÷ûÄ3‰ƒû磬 ª(£¬ýVY–?Žy¥÷7²ZÅÈwã¼Ôi©³N7vX'ËƼÒû›:¨S;ôþ–ˆIïož—¶¸éýͤ-ðÛòyÑ6}¾Õ‚7z„ðF-xcâ~›¸ß™_zgd>èý5-Ñû;Z+£UøœNÖ…qþ{¿XÎ¥wxŸá¿ÇZ¬C«éÚ^&æa<N6rôÖ…¬x&qÕ:f;¯ëBÎ*kr^Êr¯ “¤¬VqòYÇ[çu]˜ê°NÓóR'÷º0ÝAÚYDÌuÁ:Ö:¯ëBž´~[GNÛ¦ã3¼ÂÂ+XðJâ^÷rd~×…»"G¾.èãö‘[­ •ÖJi• WÚô*ÿ}{‹ùZM×65¯ÍK/¤zäèÑs9%ŽYS敞ÏZeYH敞$eµŠÏ:2¯ô|®Ã:Y>敞ê NíÐó»#&=·‚Ì+=?LÚ¿­CmÓß{,x÷!¼{ <Ö'wÈç÷ñáØGÂ^2òþìrúl1¦¨Ä‚yy" öߋΎp3ì¬Æ[þûk/{ÁeòwDlÂàú}¢üÝê]ä[<üEñ<àî/o!üþVãÜWTßø©W}¥qÉyÏ8ó¤k?×XÕøÙ¯/ùNcà†Sîù½ÿÙè9ð«3žsjE½OÔ“7õŽ£Ñ÷ÙêS®9pmchcö«/ü›3=þóâ¯>ujcíððkÿûÒ'7âýô·g~âcÞÏ~ë›Î~bc;ëó¯W£÷·c/øü׳ž¿ÿ毺Ny|#¹ým3_øæ±¥õçïù«Fük½ç>û’6ú.¹`ü×OltmzÉ…:¡±æY[^ߨÛèþãk_¿ê/h¬œ¼õœ³î­6–?pî=oxz¥±¢ð·Ïûͽ_m¬Îþx¬ð‘ËË÷œ{Ó›JOi¬ùгßõ§÷6¶o~áIŸh¬ã ?}¸Ûõ½—Ü×3ÚˆM~ýÁ™Îhô¿÷–vàóø'~ÿéËf¿8¸ýgêm ½ôŸïæ_ÐXU:û‰_ýãÞª?þóÚûecÅ×þåÌ+o¬ZÿÃ_vþ%èSoÚö¡·}§ÑýÚ[7ÿKù½¾æ{K#Û«ç¾}Âo^´^ŒË_5z_xÃ;^|ûwñ?|ì»?=í¥¿?û—×~éìÆÀ­ËÇÎ;ïFbÏ_}Ñ þØX3ûÖ'?½ëZö|ý»Ÿuõù¡ËžÓ{ÕŽ/7–Ÿ³û®í{[cå©÷L=ûþFüö÷ýÃ=Øiwÿìó—±ûK?Wû/èÏï>|Ŧ©¸Ïw6nÙõïŇ64úîÈŸ÷‹¯^ÚèÙ¾äêMÏøncÍ+ßøƒûwnkô^úËøÞƒ÷4bg|ÑøçÞÓˆ-ì¹½ë³ßh$žóÄKñ‹òßøÐݯh¬¸çå—sËÙS\ÑóÛF"uß½çlþ/ÖOüâ­þµÆÊòˆ=û Þ'>xî7^ÓXþúíxäGƒ™ÏÞ»ðK?i žðÀ‹n_ÎðìÕ·Ÿðíß7úþå5×Nÿy©¿ü‡;ûžþöÆÀ[æž;²ñ}•µâ‚­K>ÙXyúÖ7ýà§åÆ%w¾²·¸æE¯¸ø½ÿòž3½çŽ<ë‚o¾·á=ýß¾wé†74bØÕxòûOiÄV¯üô²>>í—?}Ëë¾ßèúà~ó£‹ÿ­‘üvä­ïyݪÆÀòÿúû³—6âË^sÞN¹¨Ñý«îýûä‰'ù²~üq·>åÏw4¯¼ãYoý~¤ÑóÃÓŸýÙ‡þ§±âŠ…Ï½-þõFâ’ØÕûö›ý÷½oæÓCؾÿÝzN¶±ê»o]±ûŠ¿kÄwà ?òŠFôcïúXÏUïè_þåoëkô|áÓOøÚ¹÷7Víÿ͇¶¼þ¼ÆÐôâÁ‡þñKÕ/zhåâ_³yùw=—¼©üg®»v_|ì’Fÿ?|ñŒ]7Ôèù˧~êþ·¼Ñýúk¼â¯w5âg<£ü¼yu£ý ÎíýûJ£oíÝïýMú”Fÿ‰—½òÿùñFâE±ç~`×+‰ghYüÞW5~Üóó“ß°±1ø‰ûuO©7¢‡^úÉáÿ<­qÑß¾ê;ç}|¤Ï]öÿøÅÞÆŠôÖ=¸êcDü¼ŸÜù'4¢?¾,ó££KmøïÏn¬xÂí×®ý«ÆÐǬ¸ûÆè{þõ³ÿµccõ†žyGþ3ß9ñ­ÿü7Á/t/ýÚÂ]žÿ÷šÅWË¿õñ_Ÿðܯ5zzç_Î]ÞxFòkùÏþ¿Fÿ#?˜{û?6â™Ä¢wþscè@ä#O¼ïùÄÉ¿Žœ»ZOß_ŠlÿþÓ½»ž“ùì›–4V|ù–‹_3Tk$w¾öîígÜÓˆ¿ûâ¯m¼g¢¿î3ß½åŸÿ£Ûú‘—|ôK?nt?ü7§?|ð¡Æš“_Z~ð…øHô‹/{_c öÆ—®›ù§Æª·}è…÷£C¿~æ¢o°ùñ†ï¼áÉïþlcÍç~=õðÂx#úôwÝÿ—OùD#þÑ'¯{Éë¿ÒˆÞÐõ‡Ÿùb£û·+Þ5ð£B£çõO¸çç>К|åçž³þ]5—\<÷.jôüdÏKþcá]Ÿ]øýgmìiô¿eë÷^tógÝûÇM7¾ð¿Ë÷ÛzÕkFòØÀWžô8í…aã´ô¯þ¡viBOìo¯¸-l¬ùÕs_´é´ÕþMÏÞ÷ím§7Vê²â¿>ñídß{î_z…¢¿±Ñ¯ýþg¿¤±:rø{?ù›§7b½?ù—s?±1xà®—}ãÍßh,Íïþ郟˜eï¿vù¶¿}¨ßpß—wžØHœþÀöÿ÷ÄÕoØ™ûê³V5Vå²ï¼êíþð‡<åá§¼oø{¼´ »ƒ¾,×­:¾ý‰"‡¼kXkª·}7þ±á/Æß8ò“µ?þÑæ?þcâû¯ï ÿõgž÷ðð¿>øó“î¾â[þËáož¹å=¿ýü_Zï:üãÿ~Ã_=¸÷þüÍ{^q~v½|^Gx·Hª?IÕž ®‰_'ÌMÔËUùsQ¾tçEçôˆ¦£r4› òýâ€ô ­;…KÓ/²ž-&0Yù[éiùM»€À£Ï|wµ‘Â_à€i§[ìxôŽÖÁÕ¯vßÚýLûÌ5®1kŸÝg6\»Ÿhý9àRØaø°8âï »Nax„O.\táYP?µ2n6þºêlãJ³¹Fë¸(¤­v™v9a8Cßáã"ë}P};Þáv+}´(⯛ í6õwP?Q¼uÕ×.ׯJ§hÝ…À ·°yâ¢'Ayšåwk޹Ú†´Ÿ\s-ˆfå ªw«¸/¯VæškÞ¸hžÝV{®ºæZí¤¸nãý®>lV¦Ýß #î¶…õ †|îZÃí>±ñ7lÍ¥ilzî¢[vA¸b¯u­âÒ"ë}Ð<±y‘ qâCìqÃM×ú6W]t4lλÚê¢gWé\sµ•â¶Æn· ×\ó. §ƒæDmtõ?}¶¨´6ÿj÷›LãÛ 96¾aãÔ/v™¾«½®µÂE7]ãæÛVæZÐ-Ç5ï\øn£=\å»xYfÐû ñlÃèM]4!h´ûОûa8F¯hž ™ÖnwÐÜ]ñ×ÅEÎj³~ÏÂúÜ…ëö\wÑqW=Âh‘ýÎEcšÑ*î»æš‹FÈç.ši·ÁUvOÆ_¸æOP¿ØøBi~X]Ãè—«OÃh§ÏA´%ˆŸtõW_—ÌnÓWØt* _%~Û4Ï…û®¹6öözíê+Þ»ø ›æµÅ…®±§ãGÓ»x! qÍ5×8Ê> z4æÚ"<{~¸ÚØê\ êgú}‘#¿Ms‚æG+sÍ5/ì6µ3×ì1kg®ÙùÂð“Î5»..Û5FŠsÍ.ÓU^Ðïf.Œ×³ÛæÂÏfs-è ëg{<íydw„kaôÜ5~Ay\kk+<¤«Ï:™kax4ÞasÍ^s[™kaóŒÖË~æZó\8´·²6-°`É+l ráKX9a!sÍ8+pzD…øš­åÄ7•æKò× ;sÅÙªøqÒþLµ–ÏÉŸ§î»k6_õv•K2 Ø)×VJÞ®ÌDæ.™dït®6[ƒgòÉæjf¼wkŸ~rʦLuœf:ñšüøx¹$kp}5Sš’5¸¦\Í ùnót¾X‘?¶Ï3¥H@€àÊôá-™zÄ<ù}â\.?5Íž?Föøšïq8>®¡—1–ªí|á[¾·Ÿ/#Å ùR6wH€ø IÛÁI8›NÎEøD?-¢þœáãÌ·…:;Âr,pÔ~ À)¸ÌÑ@@pti„;ò"®²ëcìú8»þ‚]Ÿ`×_²ë“ìz] v}Š]Ÿf×gØõYv}NôÕ_±ë¯#ÿþ†]Ë®¿c×ß³ëØõyv=$Þ]_d×—Øõev}…]_e×רõuv}ƒ]ߌø§÷‰…ÜÁ\Ftif«pÇ"W÷’CX —ÿö~J¦PØIœÕñeV~)Ê/’µY0'¿È#“ Ë/’ÙYpP~™–_²ò˸ü"¹˜ÃòK¯Õ„ÅõÕ\ÄäVmÙ½ÑJvòD¹T¯f Þ)žIÝnEû ü„ø—é(}«ï›ÁoVn»Ï›µ¯ÝzÍW=ÚíïVëÕi=t>ß™bX÷Ûx—Í1Lq„¯‰ðü.,´ÿôsÖ¶øŒ—ÜóІ?úÇUŸ}ò²¿~ïÆEß9åÞÃ>õ݃ÞvÓðûJ™÷}ÿÊ]Ã³àœ¾™³Î~wôŸ|ûïþÒ'Öüò—/{âðG.zþ~äü_ÿÕ§V'æÖøY×\ö³3WóÖÓ¾ÿνiøûO¯>gýg¯þðÍãsÛÄCÃo}ÒÛ†^zÅd䳯Yé¯N³ì’A^œËNÉö-ï}…\iª.åÆSêùJ_!3ž+HÀ»Kål.@•}Beúp¡Ì_ž`¿<¥R®1®4˺ \üHDúiúêÕŸûÔÿúm„p•ÃÕ{Ï8ûù'þÓð¶Ï|ìÊá— ¥rÒÁ±Ÿî8;=ûŽW¾dÓënL¿ÿí«^ØøÄ¤zÛÕßýê+/}FúÙ¿-o|ëOÒŸ±ÿ¯]ž~Ÿ÷µ‹þpîÖôâ[^Û¯:!ý†×]yÆâ?O¿ôÔ_®øÊ‹¾žn,ûøÆÓœ“~ñßÿxú‚»ªéwÿË{‹û 7§·¿ö¯ÿ}ðÜ}釶~u⦯þwú “÷?ü7W¥_ôÄ3Þý†¿›¾xê¿ÿ•O-Iâ•.øè‚á“þéû'n|yú7o*þ>öíw¼äŒüáGˆ—¸¨øµô÷ïú˯ø©_^õÐGOyÍ[^—þøËÿùÔ/œ¸8}ð¯~åM÷•Ó¿kÜðÇo=îéÿúík¾uÃgÿ6ýâüÙ¨ß[HÿìÓOú`yÁô oýïÊ·#oJÚó’òç?ü¦ôÓî¿ë¬^v_ú¿6¼æÛ?öþ˜.?üò·½å#é«®~ßåsO]—^ñ”7¾rï+¾™þÝ7Ëçýbô§é¿ûÖçVnèIÿí _÷½W¿¿’~ÒOzðùËÞ~ãµý·á9OLO•¾ÿÆSž¼ }öóßõü5¿þPú?6œüwýÍ%ÃCwL|üöW^—~ä–‰þì—¤ÿß²ëþüî½é¯üãÛ^zÙžþáÓ,¯zê'þ2ý¬‹Ï{ü–ÆÞô÷¾ðø‡ËߊqéK¿¼ôÀ¿¾èõw¤_÷ÈË~òþ÷mLÏìÎOß•øxz6½ï?¿³þ“é;×|ûÄ]·¦?Ùõ£o½ý=éÙõg|ä•KÞ˜¾l÷I3»_ðëáØëÿög¹o}.ýûÍ;Ÿ°óÊ[Óo¸ï¦{.yQú¡'¯ýÁoþøºô_§þsüÜûÓé>ãógí{Ã'Åx^œž½þ_ÿ'OL¿à”úã ¿öÚô~wã¯ï¿ýÖô_üîÚ?¼ö¦×¥_ûwžü¶ÆoÒíÿú·¤ é/,?ïKW=ã/Ò·þE¤ÿ§ ·¤ßòªOÏ~äM;Ó™Á⯪[þ!=¶ûWîÇÏKÿâñÿö¬ìIÏJ0;q qÆ‹Ò×n½è'=w>œ~{5÷—_þ«Éá…ïñÖ‹³Ï^ô¾ÚY_>ùÕéÌÝ¿9ó¦ËÓ//<éŽå©¦3øw§Þò± Óc×ý×ÿûî.î>X(>øäÓÒ…Ïø+ožN_ñÌÿútîÁBú™/<ëü|âÒÏÚzÝ;þý¿~’~ÛÒ·¿÷SûŸ›.O7NxÅ÷LÿfÉ×÷}ô.Hÿþœç-ºðÞÚ{ê ßëýÃð‚W?Ð}Á¿”~ÝÕ¯xø§Û†¾ó³ûÿrÅÅéÏœñæÜmŸ¸)ý¿úê·7ß“þÞÞ™7ýzhéðyùôŽW_¿0}õ¿æ½ýÞžôô/~÷üµ×nO¿ýYý?{õ‹?|òŽÓßùäGþ-}ë·Š7üú—._ó…ëθ(ž¾y]º÷«_I¿ëiý_û›ÞçŸpçÇïüÒû^žžøÚ®Ío}Æéûï¹á_¿æ›éÏ~uïoÇžº>ý¯ï|ÊÞï8'ýú³·þ ·ñÍô—~VxÞ‡>õ,YïôW—<¼ïÎ5ç§ßýÖ{òŽþ6ýŸïxÆ#ïýé{Óçÿùú¯L¼â3éþÚ;?øÕ÷”N½?róÇ?sêð²ÿüäCwdv¦Ÿø¾õ}WoíJ¿çsç\ööMç½ñU[¿}æïÓï8ó†/=/~Vúi—}ýŽâÏߟ~áã½=O˜{sú¯Üþ«O/šLß²8÷”wü®7}Ë§ÞøÉ;¿õ…ôô}wlÛÙý±ôê…»ßü­Ü¤¿zÛ·Ÿá½vÏðõO~Ï ß¼ì#é7ÿë˯ûñŽŸpÆ7ÞøœSŸ™ÿÐ{¿yö¡mé/N¿÷]?Øqzöÿó¼Ó·Þ2¼ðy7ö¿"•>3öÊÿó®÷¦¿|͹_¹éK'¥¿³çü“÷¤¾qÇÞáËþ<½²øg}ÿ?ÏH¿ó '–ìùÛá好¿øvß«Ó/»ÿ´~PX˜¾ë“ï~þ’eoL?íÖÞCw>øÒô[Î~èÐîg¾$}þÔóÿgç]Mç®™ú÷‹>¦ÆçÏÞÿ‹kòÊkÒ¯>ïËËËO{Cú‘\râÓ/ÚÞžþÃןuÛõé7~ç}ååKÓo]ºý¡}ñÌôßoïšý·§Ÿ¼ÿàÏ{xYúÓ —îùØÓÒoùÂG7x(}øw_´ê§§ºâßîÝuòK¡_Oïúç±ôMOÆYüÒxúcŸþÝà/ÝœþÊçž|ò <=ýÆÙ'¿þ‚ñRúk_~coÏò? Ÿ|Ùë~PúÂ%é÷þõþüñc_JŸÿ‘g¾kßmëÓŸúé_\ô£7}2ý®+³æÎo==õµoÿůÞýé'ýzä—ç-O¿øÀ¹S¯x滇W|õGoýõòÉôƒ™˜X©ðä•÷¿â„7|äÉéËŸù¢›žvPÏç.|¸÷)+Ó9üÜÍî¾&ýÔï^ððN¸5ýOÝ7ýùÃ/zkúºMç \{Öóýý;ïë_ý·glHÿèª'Ôwåúô?¼ø¹¯¹ç­ßN÷êö‰çïŸî~Îwæ^YüPúGk?üô‰këé·¾¼tÃõ÷¼%ýÓ~ê½å½éïþâŠéE§^7¼°çÌ3Þuï)é ,ù]aâÂáeOØþЫVÉõ+˜«DNŠqn{„§9ý~Á÷¥ðKq[ 6\¥ØT§oýÓXæÏSúìòÔμdMÐÉž¥3>¡6©HN`ÁˆÜ柔ŒB5S—¯Oªåë9 NîUÛ 6©©^Ä^K(ÙL]1,EÆIH¾bÑŽÝ7Ê4…B߀RAWs²Ô…YéÅ™‚̸0«j8·+HÂ.vI½–MYT)"J¿¶[ó!?§}x2{~Š‚q¾,õÚÍض+òëuWÊz/Ú~Ý-²Zû«»e±ïêñž]$£üz<ž%i’äE’¾$/gÕ»9•jÇ®y‘¤/’äÅ }1¨¾ß¸K×ûÆ]òë¾[Ô×köïÕøzÜ_#ùîj£ËvÉeŸeÛÇÙ¶^®wA¶–´ ÛÇÕŸ‹­rì¾K»}vŸÙpí~²í£l¸A¶M®ú»l%8Êtá]>¹pÑ…gAýÔʸÙA»úIæ9î¯1¼\çã\xh·9¨¿ƒú‰â­«¾v¹6îÙ . „oaóÄEO‚ò4Ëï×kf¿è—}¢×N”7¨Þ­â¾¼Žûkô÷÷ˆ»ma}ã‚!Ÿ»Öp»Olü [siš ³­¦]F®Øk]«¸äò?ãš'6/4A|ˆ=Îa¸éZŸÃæª‹Ž†ÍyW[]ôŒâêqf\>ŠìvеÎîÏfxD‚p¦Ù\³á»ÚëZ+\tÓ5n®±me®ÍsNØu Z;ƒà»èn³ùd·7ˆ^„•CñÖ;è|ÔqÁøl×;ŒÙô×E‚ÖI»í¹†ÃaôŠæ ’iívÍÝ…]\tá¬6ëGñ,¬Ï]¸nÏuwÕ#ŒÙï\4¦­rá¾k®¹h„|vþ5Œÿâ Âø ×ü ê_(Í«kýrõií´ñ9ˆ¶ñ“®þ £Aãä' ˆ–Ðò‚ø×µ(Òž_« |váŽM'ƒÒ…ÑqÍ j‹ \cOǦwñB.rÜ_cø\sÕ³iNÐühe®¹æ…ݦvæš=fíÌ5;_~Ò¹f×Å%c»ÆèOq®ÙeºÊ ú}Ü_cë}ê¢!¦¤ ®sÂ.·a¸t­AsÍ#»œNæš½®µ:×ì²\ôÄ.ß5Z™6¸ú#\xáÊ6ר^w¾æZ³þ·çž §]:2¾Í{l‚žÍ5{N-v¼§s#¬ŸƒÖ’ |²áºè¦M\8¦s­6ÌVçšÝ_.¼·y ׺fçsÕÍî{Œì9á×Z4×\ðì¶Í¡ zr$sÍE7‚æˆß²6¬ < ¢_´ü vغæêSûMׂÆÌE£]¾!ìüAòºk¾Ø¼‘k®ÕÓîcpáz/ëk{ ·éVXŸÙø°(.Œ×³ÛæÂÏfs-è ëg{<íydw„kaôÜ5~Ay\këqnûYû™kÍsá@ÐzÜÊÚ´À‚%¯°5È…/aå„ñatÕUfLáÒÃÍG×Xýn¶®Ñ²\8»8¤Lw]2¹«ÿìú„̵ãþÙÛIy°ˆÎqÿ÷®ù‡ããzÁœ›’sž}‹?›V‡¸LoŒy™ö¸ÆãGŽ;`<Æ0°ýS´àrqFæù“ñ°XðHU^‹à¥í¸Åz÷¢Øj}¼(úü-´<éœÞ O,ÈMÀ[¶¬? L¾»Úè’‹]²¿­{±õ®wAzrÙ^¸ðÐnsPõÅÛ }¢ ×(>H´n‹Bàá[ØÛõ£C6ýuÑ„ uÒîC{î‡áp½¢y‚dZ»ÝAswaÄ_]8«ÍúQ< ës®ÛsÝEÇ]õ£Eö;iF«\¸ïšk.!Ÿ‡ÙV…ñA £6>Ñ– ~ÒÕ_at h|ƒlPƒh -/ˆ¯q]íž™ ÂgîØt2(]wѼ ¶¸pÀ5ötühz/ä¢!ÇχÏ5—ÈÿoïKà©Ü¾þ1¡ QI3M¤y´Ž«9*EšE)S.E Ê-IÒtK”1!SæÌc†"eˆ MJ“4’z÷‰ÃiÛÏãtßûþÿý~ÜÏçû¹gØ{íµÖw­µŸÎÞs¨øÁ ×H¼ÀÇô+\Ãmö+\ߣóON®á²æØ$ý'r ï“ÔÕß]k¹×))†p¶ÉŽ ¤ß ‘|oƒô®•Šk¸ð~þ ×ð¼Æ-×ð¾HñïŸÄ#nxûITþCò Ò3t\ã|¯ûoq­#ýãÜ#ù4ÕÚ*}SéŠÊo:âÎ)~ÂuNnÐé™*—PùÞ.)nâqä3TíqÞGÊx›Ür ×ÉïñÚ‚”×ðçH²á:Àm„s‚dR.¢â©=|,T¢Š'ÿ®‘âGpÿfË€·EåGTñ‹³ªwÚty¤SüרlFµÞ‚Äkº8C².+oè| ×1)F|®–%ÙÏáxÜ¢Óîøš¼m:[qÊŽë÷ o¹‰S¸ñx@g߸/RqNßT¿ÛÇÛ¥â</HÀëN’žð{Iö#Õ¦¤~Hú!ÉOW_‘øÑèüçI—¤þIþ‰ÇnÚêÈ>Tœ"Õ–¤ØG•3Iü#õCŠTñ™Š·Tº¦ò*;rò·7·\£ªÃ8¯ã²ÒÅÙŽ¸†û‰_œçÙ²áq¨#ß!é™”‹¸•ŸTà}pòŸëâú¥Ò'7\ÃmCŇ_åî«T¿S¢{_ËGâIu1Éž¸Rq–¤;܆õMòwª¼Ðµ¸gT1ŠŠk¤ÜI’…ÔUmÊ ×è|”·ð{:Ê‘Tu]­‡äŸq tzÆí‰óœêwGT¾FÏIö£z†”[»Ö“?‹Ÿ#å<’PåcnrÖt9ˆä/týÐÕtq•Ô'Õœ‚ô–Š$[QýÝQ^ãì‹ä³ü4}â¾Kš““ô‡ËCõ®µÀ¼]k;=þm;tÙ•]k]k»Öw­f´äவÀÄÿÿÓû»Öÿšw-p«û ™[™l°4ø“ÑúUë«Q_¼¬¾'´ô-ÙÒ ýZ Ó‚>Œ¶$ÊBïH·@ª½Z Ñ1°»d˸ØÉÕPK?Ým‰ÕhK?"-ý·ôÓ§¥Fs “h–»Ne8tÈjSr–Ÿ w¶Nú4FN.š£¿„*!wn¶Ðݲ`ðaÆ-Ý$’þjû­½2{÷IFîö÷6ño©ò=à?À¸âòýHBWûUƒø¢MWLv,‚˜¿n”Œ¼°.ËiX$Oú ±Åó.=9d—ÿ¸¿qV#¤kxï³ã(xœ¼vÔ„ž¥àþóƒ³*KÂ¥‡CÈsQ½<çtpGO½Þ¹Y¯uæ]z ÚývŸ‘ð…³šåÝÍjvë`ÆóÌ®µ~Å&²l ðlÚÌŸëxœ±éfKv´ïnid>ÎxÃÆÖo™ ¨›šm2 ˜2  )£±YóEübws³?-Í,6X0ZWØbß$ØrÓ/|{¼ÝǺåQƒC¾·¸²0£-ws³îÚÁ=,Áä¾sœc4?'Å~«¿Iõ8“•ÞzµPõÇuå¹6NÕãg´Þ/ÿóó­ýl'>¶± Ìÿ42ns“ ÖFì/`i±Aß Y«ò¼œ*7±2¶4Ò7³0ÀFÌh?º¶ g¢?Žõ+È¡g„Y’|e´CN°F8’Ñ~ÃQÖ§í×!³ž?za§’w¬|Z €j¦Æ%› õ¯Ú·»†RãÅÜâÀcð’7'­³ ä­¢¼óû³ªš£œW 7÷¾º”ÍaÅöcx6@Zl¿)>êÊYî—:Rbd_yz®Bþúº*oÀFH¸P{/¢ø"„„–†DÙ2¢*7ÖÕA¨¤»—ãþípwžßCï¢sõþAr_á·—§.´W&D ˜=rŠW>´©êj+Õ”o§ï‚T¯FóQ‚¥Ü/aÖ²9Œ® ùÿ¡›[’ ¯^7}p BÂÞǧƒ¬r9ÓÕg7Cˆh½ÄŠ5 @ãa~Ê2Fƒºû‰œƒ#µ¹ÖpãÑýnúðÀæÊÈ]º à™ƒÏ4=¹&H2?‘ÿYKnX,Yh|ž=é «¿cXmæª2;9×ÊÌÜ–ÌU¿•—OÔ.†hÉÅj'ãÝ èœÂU!wp›o>>Ô@µÏ_SªzA [TâfB´Dü+Oþ -Î6çÍ©‚¤ÕÇ_Ý;’DÅßË쇈¼(ç [sÀÿÐDi÷m sÐxÛ§œé ÷RÕÛÞ Òj?m¿é³ã·¬0€‚‰3]û6Cœ6Ê+4> YüêOô»ß‚]…<£µ ,Óöþ‘ÃeðÔæ1spš:ÄÍœ“ö­,•@9=·Ô4tqí7æÚyu¦úAÅ÷Ðäþ’Çe#%öCQy¨†ëtð1î·QãÚH¯(³²deù3³´6ÓìaU»ò;Ï o×<ùì@ô÷Ј^œ’ùâEh"û2S/Œ4/“ŒÚúSû ³ç.ïO›ÒÚ‰^é´"CHäsªÞ±Lû9ÆP’—'ëT´ô|dŧöÁ”¯7´­‹ªm/:ŽŸ†Ò½µ éÔ¯dåc¡´‹PÚS·‡áÕw¨:æ˜ë>C(r5¨vˆ÷¦ Øø#–r}­î’â)QÛozÄÍéÙ»{fÜPZveê~H]X¶ôæX/H=í»,öp8DXù|ÈåÒZ›xH»xt¸èU±±œ1F2·2çH׃  Ÿìû­ƒ‚þÎ×®¼ ‘Ç{ |[ê»x0"¶{ÏÑß{JÆ4j™õ ªWW¹Ô„[A$SØ‘/åOðËÙ6·çaFWÀû­‘rÝPd O3Äs7Î`g¨C# XÅÿ…Ûý}àåh±áA„dWìõäû[¥œëí˜ñR†Ú~~±1„'LœaïëÍè 4¿U !çôÎMµõý‚ JRÍóB4·BBâÊšAÖ$&º6` .xô”ûUvÊå5‹«ROCÈMg»f¾'÷Ͳ¿T"„ç :¿BR—l¹³Ê齚œ/@´l;OãV—Ñ—^ý"ïÌ3Ñ0†Û%2«Ü} sVMºôÌ…4ù¤M…þ&ÈoÒ.ÝÝp "§Û|™¥2æ~ž[µéD4I\¾µŠëÁõbè¨Vz½ãjŠ&Dh¾>Çù!øê æËímÛEµß˜jÝZsžËо‡eÎl|KN×1'žÓÿYÆh¦œdÃéªÊg VpmíÒ}L=+ÆB‘Œ—”¹yehƒÿòØW\çæAŠ²Ã·÷dP—%¬‡£žÓtk‰)?ŠÝȱï:Ò:ŸtÛè Å[÷ éË@‚Ó,fv1ÜoÐ\¹Ñe/xˆ>ä› !®†Ãc†:BÈ5éU¢½@lS€ˆ¥€9„§VVáw‚T©ë¹G¤&Cª‰ÃéãÞbõmxœ“X«ðÝíób$ØÍߥS!¦6žýÛ 2y¤&zM«‡ ‘•“b¯Î€ü8…ú—Zá)랺ÿ¤?Ûoaîÿ\–m:dºÒÏKXåà ꙑ£7§@AŸˆÅÓ…ÿDŒöŠÕMi„Ì ýÉ<áFuúªKÝ*¡lϾƒ¢áI£rþÌ Ë!ŽgàÂwkºA¨ö-ÿ'g}»÷À8aöë¼ÎýŽŒ)y";wŠL$³Ïàø¢<šðÖ|j¯Íë™ÝòΤšôWWÉ/ö{‡N†¨‡Þ«e®¿øo Sä”!É¡žçAýö¯a úËëgbw¼!¤·â©¿‚ ¾×‚Kû3'BvÐh÷Ì2ÈÐrµØUxne 7~U—;kvœ‚r¥ :*1ðQJpU€Ÿ6Ô9Ùàè” ÉÊ›„FÃ;/…‘GÝ•™B#,‡Ë÷þÈj'|I]m>“a}]ìë©Røì; ßxtç~/Îýü£€‹uY4ëàG-wѼ++½ŸP“pjMÿ².š/|¬µŒý5vC:Ó¦×cåÙ”ÿ0°0â‹eÊ«íþa;ÏuÝÍ3z²˜Ò±(ÂPù›_ºã#µ'̸ègä6™?KçúiûE§_P̯%îiïIgVCêäÄkÊC« DŠç¼éÙùà&|rk ‡„ñŒ»R ÌøkŠŸ¡3Äi*|!d1æë¬È/„4ٗٳ\ë ]b CÿaÄZ¯÷÷ß a3V<íü8$nÑžv~‡ „[Ë©¿Õ²Ã­Å'¦KÁ[Á1’# °wP#ﲕc7EûŽþÈ=×;|´“ $jä—Ÿr‡ÒÚ5-Ó੉(w†xsÿ= j!Ønø(›ä¿]áë· _œ%ƒX§ž3¥eÊ*…«™ýVõ´Û;oÔ‹¸Ü¶+ú›)"z©ð“K<¸Žüæ?$€¢yÓtÐ"xå蛳ÿ4<8%h›Ì>Šõ|9®[2¼ °Mw¶X Ÿl(39Su¢_N§n;ÂäSšvHxâf¿AVÖ¦S|á}Þ²Ø]J娈Ì,Wdvqí7æÚb|!ƒ›b|!m1^ò†1ew¢•Eä®q;>E†úëe–BzhÔ:«Ù÷(‹ñ9n²eR¯CÛãØùv/LJ/õœ¶˜ô£ãn?ê`ÚA‰¶ÕË +ÿ£ÿ£UöÛ ø¼Sl˜çrÑš(ñ‡ÀÈ—µ¹xY»´XžQ!É>S|¹®éÇí {¡7Q—0 þæÜÃÇà@˜;pö¯>šO;áD[{{:u½^ÜY1?Êçö²5†ä{“”Ïv…â¿_o ì½Ü®šÞSaÂZìTÊ!Ì+!X›qb/Ü;ì Q¦°KÓ=ÒF* _V¿ÒJÝçNPƒ˜çNzfK!TIjõ¼&HÜÓÃzîS϶ÈÜ]p n] ýnYèá¶ Gλ4ewÄ@ôŸOúÍ“‡œ Á»'‹;Bü»ºÍwy䡤ºÇ…{{àqabX‚ß&ˆÍ´“ŸZ ×Nïtì"ï`;V_W¢ q|¡Óܵþ‚h5uÁ“¥å6©æùzùI.|Me—çHˆUñ²,ÛX ¡7êTÅåã!Ñ.þ@Ô³ùžq`½¸¬dÏîŸYzgÜèsÏù™´ÜÍøúV²Þ¢¿… ©k@Îç'Ö;ƒ„o±aî PºGÇPÿ– <¹™½èï%~—Ï[y|`&Ÿ’ÐrÍ_f +>µMaN<ÿÆÚå±*S®w\þéo;A­Q‰G·›SÏaÅô¾øÿòËöcoë_!‰þc½d‡¢·ÜE-zÛ:É …Ëì\$Ú¯Ÿüù<×¢÷ÔÒ™{¥?…æ,‡ïhÁÁ{¸½çô½’7n”µ;O焹‡aîÁaòñrãûE3G=Ì?°Ùì1sÀâþÉ* Ý@}r™ÙØo÷˜j‹ï<±øJ9¥;'PùòXæ_T¦%dK+Pë¨Å¬ O; *¶Óv¾@ÞVGå·É? ‹µAGÆúqÍܲ ¸ÐUY\Šâ&õ÷ñ%„앬}äù"¡ç} ¬­[qv.d=×Ñwœq°¯“ö¦ä¼Î‹ãÅîÇ÷£¥Ú‡‘ݾç"?Öç½<íqžã¥8&‘³}B›ø}ü„ëT×8e é×-®gN‘lA²Ýøpáíâz┟´¿*gÛtþÀÏh¯ \&:¿£ò'’/’üŒJOÜØ ÷_’̸¯póÍtv¿œ{¨âýà}âýÐù çu*äîSÉËO¸FåÛÜèß—•dÒ˜©ôM¥'N¿%É‹÷‹ûgœâ”¦=*£ã )žP=ÓÑó$û8F3ÿqê‰Ä5ª˜Mõ,•ÜÜú>ÜpÄRÌÃÇŠs•Ä5ªØÉéëxt±Ÿ¤ÃŽúÄõÍË N7¤6ØçI9× î¿t9—óÂËídÃû ò<×qëK|Øu*žàµ•¨êÜÎt¾IÊÏt\%ÅQ:ΓÆJŠgœ¾ÊÉ5ÒX9}¿7É×H¼£ói*NPÅF’þ9Ïñqѧ xýŠë}ɶTœ¦³/ݨô‚÷ÉÙ>i¼¤\AŠ›$»‘lË ×¨xNò \VªÜIÕ>)îvÄ'|¼Tñ‚®Nà”¯«Ùÿï蛸ïávålŸ³ïHþŽÛç©R-‹·IuÊžÜø"]Âã/)&PåI\‡8÷é|˜.^q>C5§ÅÇMÅ]^F{YHqAòåãô3:“|ç:)ޓ䠋Eø5RŒé(V‘|ŸÄ5RŒ`Ÿ'ÅL| ¤¾©jºú‚Ä*½àþÂóéd¥‹_$ÒÅNÜŸ©b U=IÒ] ²/iÎŽÇ’>ð8Eç¯lÿÆcÉ÷I\£³=ž¯Iº"ù=©®ÀcÕXH>@²=§ý8ï'ÕB¤BâÉŽlR]ÿ¿à¡=œ¤1rË5*=sóžÇc?¸á‰ø˜~…k¸Í~…køstþÉÉ5\Ò›d£ÿD®á}’ú£ú›ÛoË’ìAÒ)vLâçy'¨tEŠ%$?ã†kx}ÇNI1„³MvlÀÇGåãx¤w­T\Ãm„÷óO¸†ç5n¹†÷EŠ'xÿ$qà ÜHú ò’_ž¡ãç{Ý‹kéçɧIïÈHþFÅÜ6T穸†sŠŸp“tz¦Ê%Tþ„·KŠ›x\ ù U{œ÷‘rÞ&·\ÃõEò{¼¶ å5ü9’l¸pᜠن”‹¨¸Fj ‡¨âÉÿ†k¤¸AÅÜ¿Ù2àmQùUüâìŸê6]^#鿆Ç5*›‘b4>F~ÂóTóu_ðÚˆÄ5*9q“bÉ×éjY’­ñŽÇ-:áþÀÇ ¶i|¤úä÷¸oxËMœÂmŒÇÒ˜8ûÆ}‘Šktú&½'#ñˆŠóT¼ ¯;IzÂï%ÙT›’ú!é‡$?]}EâGG óœ$]’ú'ù'¸i«#ûPqŠT[’bUÎ$ñÔ)PÅg*ÞRéšÊg¨ìÈÉOÜÞÜrª㼎ËJg;âî{$~qžgˆǡŽ|‡¤gR.âV~Rý÷ÁÉ|®‹ë—JŸÜp · ~•k¸¯RýN‰î}5.‰_T$ÕÅ${â>JÅY’îpvÔ7Éß©ò7\£Ò?)ÞÒq”Ÿpàý‘žÃõ@òªXHUûà\¥ú÷H\.’O‘bÞUmÊ ×è|”·ð{:Ê‘Tu]­‡äŸq tzÆí‰óœêwGT¾FÏIö£z†”[¹©!I:û'\£ó{*{Óq ϹÜpŽgœráçH9äTù˜›ÜăµÅ]"ù ]?t5$]\%õI5§ ½‡¥â#ÉVTw”×8û"ù,?MŸ¸ï’æä$ýáòÐpí§Eÿ마˜Í·ØÌÙ`Ù|Õ½HŽtD(”'šÿWíváÿ¯ºìJ ç6³9Ç:WÒ|n Åâ6#ö½5úekÖ¢WöâYÖÂÙA…ÑÌcQFÛZÖ¢[V«Œæ7±:Iµ´ÅZLËZXË^ÔËZ(ËZˆ+Ëhþæü„ƒ# AÚ"‹‚<Â0„á#Í_5e]… €ÀÚ)r ÂØ–óã9t2A‰Ñ¼øx"Â$„ÉS¦"LC˜ŽÀúþëL„Y³”‰ ‚ð‚*„¹óXK °Öµ-BXŒ †°AAAA a)Â2„åÚ+V"è è"¬BÐCX°a-Â:„õ6"è#lB`}5Öa3Â#„­ÛŒLX«[Í̶#X ü‰€â2ƒµÅŽÛîlÑ“5‚ Â.„Ý{ö"ìC°E°CØpá Â!{Ö×lŽ 8 °þE8†àˆpÁ µ™‰3ÂI„S®¬)žA`mæuá<kë¼ Ü.!¸3š}Åá2ÂO/ÖG.|X»ôú!\EðG¸Ö2®„@„ „ëÁ!¡a-ò„#Ü@ˆ@ˆD`mƒ‹‡p!!!! !!!!­EWéŒ6ÿËDÈB¸…ÀÚü1!¯åúm„;ùw î!ÜG(B(f´òx+¾B¹ƒO¥³žÙÆ~F’«gZ¬Ø&ìv1³“}ð'ûÀ†}À.Oxv°Øk¥y6±6²Øu°Æ6KlŒ×|sÔUš/™ K¼¬ ³ £ïÞ³ÿ£þ>ý?»ŸÛëµßQ¿¿z¾£ñýª\ÿ–¿ªonåú§rü¼Xø§]XÉ‹¿ù¼)ë|¯–ó¬%Öâ ®Iǹ$û@'ßcñÀß%[™‚½ß“æo„G¥J™êРtœO*ÏN¯~›šÿˆnÜõÛ´Ôæ+Ä=ögÛÑÃÎ\ΰjÝ£x팽gª@ÖHý­â AMÁoÌ_« y£‚æÁ#E¨”›«0Z 3)ü *Ãz… »í ·Ók5…繃*<ãÌ¡ÊýKÎpÁÃðJ‰wÓ—ïðØQÂP;Ú ¾ôz7ÄÕº”)~¡n¸*>¼H¨eŒZó^òˆ$¸-²dü7Ïâþ vÁøyiÿï.àKûé·>³G[.÷«!sØåÕC7n2ûnP3´y¨ï¶É3ùr—¹P°ÆÏf}ùÃ?ouв =.Àq‚œÛÚoýVÅÓ$ïÎ’˜ ^vCLÞ@,dœZT?Eì.0|¿=1ÊuoÓ Û¾ïZ¿ÓИ²ÎbøâÕ°êãÈØA{15ËKÇ~[ñË{\ð«ÚMò\¯Ô6°;‚I¦Ü-©›Ó“Ù'èI]´¦=¼âÓ»ÛOŒ)5\M#\s I…?D¾ KXå7Ã/>3«Y É®s¿Àä’¶ õS;§øÉÂ[=†ê]ƒÄugæïj9çy·ÄûòAúÂ5jFO!{SqÃ$]{x©5˜i`¯¥Ñ!Š}%]áƒWýÜ Ûeàín•°ärøìctÛ¬ N–ÿê<›?˜Ý‡¬­{êч)gßä¸oÅ%&Ï"± &£_À§±~—Ç$1º"ØoÁX×Ý:5»àÁ¥ùήjvP^\‘&ç ITôö “ƒ¢í㟗𺞤{ BÎΛÜX£¡Ó.r>ìq« {…Bh‚Xïèí!µâÐH[÷`H]‘zþxž&D/‹½g×TÁªœ»¦{æ§ -Pœ !>¯_Jk„,Ã+•=‚“!8‚G˵¢ò?gtŒ‡È}¢åã–@öba]é7Òp#íð“%vPªuPîän x²ý¡šô©è3÷ |¾„¯Ú¯R¢ñ©‹]¿'»~NÊ í’² }R.>:¥L÷Ý(~8êc÷´ ð*—›5 d|úüÚÈ¡ý矫^­e:ÈcÎuа[mÍ›ï 9«¤²b|Æ2•æÅéOPL¹_Ñ©ýj}ù‹Ò mû¤F'ßT[JKdnÖâL™ÈÒ¿ŒÓƒ7;{ ÚþÅŽ)pÀ?åîJpMU=럶"?UøÌÔ‡x±¤!Ý€äkÉŸSbN¶m`o,¹z|_Èï&2uļyh«¢yð&äÖ/;ëþý¤«Ð|vr—]-ð^ë-ýjæe×V‹†þ >9 ïw»¥uÕó ¬úö„†Û£5$ë,àCíØàb}¦È€1‘߇Ķm`ùdöõ>:Ð ¯?bØsé®ñ{…ŒŸw n%0¼éFéóck­Îç@ѸXµAYàccµlÿBHW’>$’Ò.`´¦¯s¬øsí68Ãη †â¡5šƒ¹®îMÚóC´ y_ç®?J–*ûÏ~vJn5Åm(†„´s²ŠÓÒ¡è¢ÜqÁèàÑ£0/¢ßWñº¡!¹BnN­ŠN=qÃ{äòyv‡ð»å‰FÛM!U=Úg¬ ªCθ•L”“‚èþßLLj]!X£ÖæÜÅÑÝ3çõšubkà[(ª™p.„ßö2M½f³ûaäOŸ6ÝôDÎJu?n´2LÐÿ°Î"è¸5®p‡âÏ&cóCõ”p!³%±¢ç‡Zð]t(ž2º‚ÉoL\;5³˜Âf¶¦Ü1aŠó¦ V™ÔÀË…‰Bc?Þeò>Ù1žK/p ìU"="ø‡Ý}îöâ§(®úÃ0¢Î9‹óMjMÓ¥Ú“†”ýa YÑîÏ?n߉k7.vÈ ËOgÜZ1%+¦ÕLØ™os–©î™5¦móá½ Å}µúæõ·¦)ßq_ÏßWZÜ/uƒùãg*‚WŠÓÍ.¯¼Ãäx^{‹\ ³ïÔg»Ë^¥@ýпG®µ°‚÷Zk‡I'uíÛþ2ër§f”~X88Õõ<¸–þeøkMHvœ÷êñ¡(øê¤l´ܶ[¥|¨üB›"¿ÚŠÇA˜£ù®ñžw!vµÛ2‰oï ò뻉ûUÎAê§W*ÇBš«çhu[Uˆqº-ï‚'„¼^ÕèQ¢‰ëDłǸA¸ý`•÷ÝáÖÐÉùG@¸¤]´r£äùg©}.€èQæ ½·ž…쥵ïÕn›%Òcí&@É–[žÕ¼†G•ÎïX͆Xókåƒý¯CÀâKÇ=»˜õ{1‹»Ý¥[>Qˆ—Å'éËâ^ÕîÓÎΆâÃ1“S®BÈ|±¦±?L™wËÓÑ\—¯ÒcêWÊ5hìB畚‘ByM—Ñ\v×äS£ -qèù=ôàA¿u§¶S÷Úê›Q*§!äkBºg”5„J?ù“g;ܼµOCXl„‡óÖ´i~k—¦ÚCjà¨h=-{ˆ™ñjZŽî-eØ}²Ü ¦jK_KÝÇéÝæ˜ A¶cÿ¢IzÈȼbr/¸ë~¶‹ÿ>ˆö;Êw9Ü–v=6"3š–¿0 *æ?»¹÷†/¼|=ò…s£¤™ÜØ'kˆÖ¼Wj u¿+ü^¡€uí|çfVUz泿ÜáIÑŽÓ¾ãzAŒœ‹ ãžAP6zò—×àÒ¾®zš 0Ó»ÒåÌU2ëß[aÃ}ˆµ} ,²gDNó=[¬«IiÇŸ]Š€$_ß÷W:CÔŠØóë5/B`ÒË5—f?„˜Ý‚ÆY„ ÆÕwø ‹'Ì!_J»{O5”} ÷2¶5ñÁ ¾«…~»!GR34*~D¥^2ù®Ûª¾îS}S^Îï‘U4 R‚劕ž|×z¥ðô.fý^Ìúÿþ/³•n phangorn/vignettes/exdna.txt0000644000176200001440000000024213201424001015717 0ustar liggesusers3 40 No305 NTTCGAAAAACACACCCACTACTAAAANTTATCAGTCACT No304 ATTCGAAAAACACACCCACTACTAAAAATTATCAACCACT No306 ATTCGAAAAACACACCCACTACTAAAAATTATCAATCACT phangorn/vignettes/IntertwiningTreesAndNetworks.Rmd0000644000176200001440000003345313201424001022401 0ustar liggesusers--- title: 'Intertwining phylogenetic trees and networks: R Example Script' author: "Klaus Schliep, Alastair Potts, David Morrison and Guido Grimm" date: "`r format(Sys.time(), '%B %d, %Y')`" bibliography: phangorn.bib output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{IntertwiningTreesAndNetworks} %\VignetteEngine{knitr::rmarkdown} %\usepackage[utf8]{inputenc} --- [comment]: # (output: html_document) --- nocite: | @Schliep2017 ... ```{r setup, echo=FALSE} # set global chunk options: images will be bigger knitr::opts_chunk$set(fig.width=6, fig.height=6) #, global.par=TRUE options(digits = 4) knitr::knit_hooks$set(small.mar=function(before, options, envir){ if (before && options$fig.show!='none') par(mar=c(.5,.5,.5,.5)) }) ``` *Description:* This script provides examples of the new functions available in the phangorn library to 'intertwine' trees and networks, i.e. compare trees and networks and data transferrance. It also provides a step-by-step guide for users new to R. *Methodological advancement:* The major advancement in this phangorn update is the introduction of a generic network object with a wide range of related transfer and analysis functions. These new functions provide the first means to directly transfer information amongst a wide range of phylogenetic trees and networks, as well as means to visualise and further analyse this information. This should provide a platform for individuals to easily conduct tree-network comparisons and stimulate further function development by the community. *What next?:* By implementing full network handling compatibility in R, and providing exemplar scripts (such as this) and [support](https://github.com/KlausVigo/phangorn), the scientific community now has an easy means to analyse and compare the results of phylogenetic trees vs. network approaches. We hope this will open a largely unexplored world to the general phylogenetic audience. ### Installing R 1. Download R Select the nearest mirror to your location at https://cran.r-project.org/mirrors.html 2. Select your operating system and download the relevant installation file. 3. Install R following the instructions. ### Installing the phangorn library Open R and run the two lines of code below in the command line. (You will need to select a region from which to download the library) ```{r, eval=FALSE} install.packages("phangorn", dependencies=TRUE) # install latest development version needs devtools install.packages("devtools", dependencies=TRUE) library(devtools) install_github("KlausVigo/phangorn") ``` ### Getting started ```{r} library(phangorn) # load the phangorn library library(magrittr) ``` ### Set the working directory This is often a major stumbling block for new R users. You need to specify where in your folder structure you wish to work. i.e, where are the files stored that you wish to input? This is done using the `setwd()` function, e.g. `setwd("C:/TreesNetworks/Example Files")`. We now set it to the folder of the phangorn package, which contains the files we want to load for this example. ### Read in the example file datasets: This example files are based on the woodmouse dataset available in the ape library. Ultimately, this dataset is from this study: Michaux, J. R., Magnanou, E., Paradis, E., Nieberding, C. and Libois, R. (2003) Mitochondrial phylogeography of the Woodmouse (*Apodemus sylvaticus*) in the Western Palearctic region. Molecular Ecology, 12, 685-697.) ```{r} ## automatically set the correct working directory for the examples below # setwd(system.file("extdata/trees", package = "phangorn")) # for this vignette we create a path to the files we want to load fdir <- system.file("extdata/trees", package = "phangorn") ## in your case it may look something like this... # setwd("C:/TreesNetworks/Example Files") ##DNA Matrix, maybe not needed woodmouse <- read.phyDat(file.path(fdir, "woodmouse.fasta"),format="fasta") ## RAxML best-known tree with bipartition support (from previous analysis) raxml.tree <- read.tree(file.path(fdir,"RAxML_bipartitions.woodmouse")) ## RAxML bootstrap trees (from previous analysis) raxml.bootstrap <- read.tree(file.path(fdir,"RAxML_bootstrap.woodmouse")) ## MrBayes consensus tree (50% majority rule) (from previous analysis) mrbayes.tree <- read.nexus(file.path(fdir,"woodmouse.mrbayes.nex.con")) ## MrBayes sample runs 1 and 2 (from previous analysis) run1 <- read.nexus(file.path(fdir,"woodmouse.mrbayes.nex.run1.t")) run2 <- read.nexus(file.path(fdir,"woodmouse.mrbayes.nex.run2.t")) ## How many trees are in the MrBayes tree sample? run1 run2 ## Combining the two runs and removing 25% burn-in mrbayes.trees <- c(run1[251:1001],run2[251:1001]) ## NeigbourNet Nexus file generated by SplitsTree (from previous analysis) Nnet <- read.nexus.networx(file.path(fdir,"woodmouse.nxs")) ``` All example files read into R. ### Viewing the data ```{r} par(mfrow=c(1,2), mar=c(1,1,1,1)) # Setting plot parameters ### Plotting trees with support values: ## RAxML plot(raxml.tree) nodelabels(raxml.tree$node.label, adj = c(1, 0), frame = "none") ## MrBayes plot(mrbayes.tree) nodelabels(mrbayes.tree$node.label, adj = c(1, 0), frame = "none") par(mfrow=c(1,1)) # Setting plot parameters # NeighbourNet plot(Nnet,"2D") ## alternatively, # plot(Nnet,"2D") ``` ### Interwining trees and network functions ### 1A: Identification of edge bundles (in black) in a neighbour-net (NN) network that correspond to branches (labelled 1-12) in a tree (a maximum likelihood tree, in this case). ```{r, fig.width=7, fig.height=4, small.mar=TRUE} # create a vector of labels for the network corresponding to edges in the tree edge.lab <- createLabel(Nnet, raxml.tree, raxml.tree$edge[,2], "edge") # could be also 1:27 instead of raxml.tree$edge[,2] # Show the correspondingly labelled tree and network in R par(mfrow=c(1,2)) plot(raxml.tree, "u", rotate.tree = 180, cex=.7) edgelabels(raxml.tree$edge[,2],col="blue", frame="none", cex=.7) # find edges that are in the network but not in the tree edge.col <- rep("black", nrow(Nnet$edge)) edge.col[ is.na(edge.lab) ] <- "red" # or a simpler alternative... edge.col <- createLabel(Nnet, raxml.tree, "black", nomatch="red") x <- plot(Nnet, edge.label = edge.lab, show.edge.label = T, "2D", edge.color = edge.col, col.edge.label = "blue", cex=.7) # the above plot function returns an invisible networx object and this object also # contains the colors for the edges. ``` ### 1B: Bootstrap support for all branches (branch labels) in the ML tree mapped on the corresponding edge bundles of the NN network. The edges in the network which are not found as ML tree branches are highlighted in red. ```{r, small.mar=TRUE} # the scaler argument multiplies the confidence values. This is useful to switch # confidences values between total, percentage or ratios. x <- addConfidences(Nnet,raxml.tree, scaler = .01) # find splits that are in the network but not in the tree split.col <- rep("black", length(x$splits)) split.col[ !matchSplits(as.splits(x), as.splits(raxml.tree)) ] <- "red" # simpler alternative... split.col2 <- createLabel(x, raxml.tree, label="black", "split", nomatch="red") # Plotting in R out.x <- plot(x,"2D",show.edge.label=TRUE, split.color=split.col, col.edge.label = "blue") ``` Again we can write to SplitsTree for viewing... ```{r} # write.nexus.networx(out.x,"woodmouse.tree.support.nxs") ## or we can also export the splits alone (for usage in software other than SplitsTree) # write.nexus.splits(as.splits(out.x),"woodmouse.splits.support.nxs") ``` ### 1C: Frequencies of bipartitions found in the bootstrap pseudoreplicates mapped on the corresponding edge bundles of the NN network using a threshold of 10% (i.e. any edge is labelled that occurs in at least 100 of the 1000 ML-BS pseudoreplicates). Edge bundles not found in the ML tree are labelled using grey edges. ```{r, small.mar=TRUE} y <- addConfidences(Nnet, as.splits(raxml.bootstrap)) edge.col <- createLabel(y, raxml.tree, label="black", "edge", nomatch="grey") y <- plot(y,"2D",show.edge.label=TRUE, edge.color=edge.col) ## Write to SplitsTree for viewing # write.nexus.networx(y,"NN.with.bs.support.nxs") ``` ### Extras... We can also compare the neighborNet with a consensusNet (Holland BR, Huber KT, Moulton V, Lockhart PJ,2004, Using consensus networks to visualize contradictory evidence for species phylogeny. Molecular Biology and Evolution, 21, 1459-1461). Furthermore, we can extract the support values from the consensus network, and place these on to the NeighbourNet (this is similar to the process explained in 1C above). ```{r, small.mar=TRUE} cnet <- consensusNet(raxml.bootstrap,prob=0.10) edge.col <- createLabel(cnet, Nnet, label="black", "edge", nomatch="grey") cnet <- plot(cnet, "2D", show.edge.label = TRUE, edge.color=edge.col) edge.col <- createLabel(Nnet, cnet, label="black", "edge", nomatch="grey") z <- plot(Nnet, "2D", show.edge.label = TRUE, edge.color=edge.col) obj <- addConfidences(Nnet,cnet) plot(obj,"2D",show.edge.label=T, edge.color=edge.col, col.edge.label = "blue") ## Write to SplitsTree for viewing # write.nexus.networx(obj,"Nnet.with.ML.Cnet.Bootstrap.nxs") ``` ### There are four possible data patterns in phylogenetic reconstruction: (1) patterns that are well supported in the network and appear in the bootstapped trees; (2) patterns that are well supported by (part of) the data/network but do not appear in the optimised trees, i.e. they are incompatible with the tree; (3) patterns that are weakly supported by the network but appear in the optimised trees anyway, i.e. they are compatible with the tree. Here we demonstrate these patterns by showing the relationships between splits weights, from a NeighborNet splits graph, bootstrap bipartitions support and bootstrap percentages plotted on the optimised tree for a dataset of @Wang2012. (An advanced user figure...) ```{r, fig.width=7, fig.height=6} Nnet <- read.nexus.networx(file.path(fdir,"RAxML_distances.Wang.nxs")) raxml.tree <- read.tree(file.path(fdir,"RAxML_bestTree.Wang.out")) %>% unroot raxml.bootstrap <- read.tree(file.path(fdir,"RAxML_bootstrap.Wang.out")) bs_splits <- as.splits(raxml.bootstrap) tree_splits <- as.splits(raxml.tree) %>% unique %>% removeTrivialSplits # we overwrite bootstrap values and set the weights # to 1e-6 (almost zero), as we plot them on a log scale later on attr(bs_splits, "weights")[] <- 1e-6 # combine the splits from the bootstrap and neighbor net # and delete duplicates and add the confidence values # we get rid of trivial splits all_splits <- c(Nnet$splits, bs_splits) %>% unique %>% removeTrivialSplits %>% addConfidences(bs_splits, scaler=100) # For easier plotting we create a matrix with the confidences and # weights as columns tab <- data.frame(SplitWeight = attr(all_splits, "weights"), Bootstrap=attr(all_splits, "confidences"), Tree=FALSE) # we add a logical variable pto indicate which splits are in the RAxML tree tab$Tree[matchSplits(tree_splits, all_splits, FALSE)] = TRUE tab[is.na(tab[,"Bootstrap"]),"Bootstrap"] <- 0 tab[,"Bootstrap"] <- round(tab[,"Bootstrap"]) rownames(tab) <- apply(as.matrix(all_splits, zero.print = ".", one.print = "|"), 1, paste0, collapse="") tab[1:10,] col <- rep("blue", nrow(tab)) col[tab[,"Bootstrap"]==0] <- "green" col[tab[,"SplitWeight"]==1e-6] <- "red" pch = rep(19, nrow(tab)) pch[tab$Tree] <- 17 par(mar=c(5.1, 4.1, 4.1, 8.1), xpd=TRUE) plot(tab[,"SplitWeight"], tab[,"Bootstrap"], log="x", col=col, pch=pch, xlab="Split weight (log scale)", ylab="Bootstrap (%)") legend("topright", inset=c(-0.35,0), c("Pattern 1", "Pattern 2", "Pattern 3", "Pattern in the\nbest tree"), pch=c(19,19,19,17), col=c("blue", "green", "red", "black"), bty="n") ``` ### Figure 4 ```{r} YCh <- read.tree(file.path(fdir, "RAxML_bestTree.YCh")) mtG <- read.tree(file.path(fdir, "RAxML_bestTree.mtG")) ncAI <- read.tree(file.path(fdir, "RAxML_bestTree.AIs")) all_data <- read.tree(file.path(fdir, "RAxML_bestTree.3moles")) YCh_boot <- read.tree(file.path(fdir, "RAxML_bootstrap.YCh")) mtG_boot <- read.tree(file.path(fdir, "RAxML_bootstrap.mtG")) ncAI_boot <- read.tree(file.path(fdir, "RAxML_bootstrap.AIs")) all_data_boot <- read.tree(file.path(fdir, "RAxML_bootstrap.3moles")) ``` There are several option plotting a co-phylogeny. In the following we use the `cophylo` function of the `phytools` package. [comment]: # ({r cophylo, fig.width=7, fig.height=7}) ``` library(phytools) par(mfrow=c(2,1)) obj <- cophylo(YCh, mtG) plot(obj, mar=c(.1,.1,2,.1),scale.bar=c(.005,.05), ylim=c(-.2,1)) title("A. YCh B. mtG") obj <- cophylo(ncAI, all_data) plot(obj, mar=c(.1,.1,2,.1),scale.bar=c(.005,.05), ylim=c(-.2,1)) title("C. ncAI D. All data") ``` ![](cophylo.png) Unfortunately this function does not (yet) offer to add confidences to some splits, but we can do this easily with more basic plot functions. ```{r} par(mfrow=c(2,2), mar = c(2,2,4,2)) YCh <- plotBS(midpoint(YCh), YCh_boot, "phylogram", p=0, main = "YCh") mtG <- plotBS(midpoint(mtG), mtG_boot, "phylogram", p=0, main = "mtG") ncAI <- plotBS(midpoint(ncAI), ncAI_boot, "phylogram", p=0, main = "ncAI") all_data <- plotBS(midpoint(all_data), all_data_boot, "phylogram", p=0, main = "All data") ``` We can compare this with consensus network with the different bootstrap values for the different genes. ```{r, small.mar=TRUE} par(mfrow=c(1,1)) cn <- consensusNet(c(YCh, mtG, ncAI)) cn <- addConfidences(cn, YCh_boot) %>% addConfidences(mtG_boot, add=TRUE) %>% addConfidences(ncAI_boot, add=TRUE) %>% addConfidences(all_data_boot, add=TRUE) plot(cn, "2D", show.edge.label=TRUE) ``` phangorn/vignettes/Ancestral.Rnw0000644000176200001440000001440413227471203016506 0ustar liggesusers%\VignetteIndexEntry{Ancestral Sequence Reconstruction} %\VignetteKeywords{Documentation} %\VignettePackage{phangorn} %\VignetteEngine{Sweave} \documentclass[12pt]{article} \usepackage{times} \usepackage{hyperref} \newcommand{\Rfunction}[1]{{\texttt{#1}}} \newcommand{\Robject}[1]{{\texttt{#1}}} \newcommand{\Rpackage}[1]{{\textit{#1}}} \newcommand{\Rmethod}[1]{{\texttt{#1}}} \newcommand{\Rfunarg}[1]{{\texttt{#1}}} \newcommand{\Rclass}[1]{{\textit{#1}}} \textwidth=6.2in \textheight=8.5in %\parskip=.3cm \oddsidemargin=.1in \evensidemargin=.1in \headheight=-.3in \newcommand{\R}{\textsf{R}} \newcommand{\pml}{\Robject{pml}} \newcommand{\phangorn}{\Rpackage{phangorn}} \newcommand{\ape}{\Rpackage{ape}} \newcommand{\multicore}{\Rpackage{multicore}} \newcommand{\term}[1]{\emph{#1}} \newcommand{\mref}[2]{\htmladdnormallinkfoot{#2}{#1}} \begin{document} % Ross Ihakas extenstion for nicer representation \DefineVerbatimEnvironment{Sinput}{Verbatim} {xleftmargin=2em} \DefineVerbatimEnvironment{Soutput}{Verbatim}{xleftmargin=2em} \DefineVerbatimEnvironment{Scode}{Verbatim}{xleftmargin=2em} \fvset{listparameters={\setlength{\topsep}{0pt}}} \renewenvironment{Schunk}{\vspace{\topsep}}{\vspace{\topsep}} <>= options(width=70) options("show.signif.stars" = FALSE) foo <- packageDescription("phangorn") @ \title{Ancestral sequence reconstruction with phangorn (Version \Sexpr{foo$Version})} %$ \author{\mref{mailto:klaus.schliep@gmail.com}{Klaus P. Schliep}} \maketitle \nocite{Paradis2006} \section{Introduction} These notes describe the ancestral sequence reconstruction using the \phangorn{} package \cite{Schliep2011}. \phangorn{} provides several methods to estimatea ancestral character states with either Maximum Parsimony (MP) or Maximum Likelihood (ML). %For more background on all the methods see e.g. \cite{Felsenstein2004, Yang2006}. \section{Parsimony reconstructions} To reconstruct ancestral sequences we first load some data and reconstruct a tree: <>= library(phangorn) library(magrittr) fdir <- system.file("extdata/trees", package = "phangorn") primates <- read.phyDat(file.path(fdir, "primates.dna"), format = "phylip", type = "DNA") tree <- pratchet(primates, trace=0) %>% acctran(primates) parsimony(tree, primates) @ For parsimony analysis of the edge length represent the observed number of changes. Reconstructing ancestral states therefore defines also the edge lengths of a tree. However there can exist several equally parsimonious reconstructions or states can be ambiguous and therefore edge length can differ. %\phangorn{} brakes them equally down. "MPR" reconstructs the ancestral states for each (internal) node as if the tree would be rooted in that node. However the nodes are not independent of each other. If one chooses one state for a specific node, this can restrict the choice of neighbouring nodes (figure \ref{fig:Pars}). The function acctran (accelerated transformation) assigns edge length and internal nodes to the tree \cite{Swofford1987}. <>= anc.acctran <- ancestral.pars(tree, primates, "ACCTRAN") anc.mpr <- ancestral.pars(tree, primates, "MPR") @ All the ancestral reconstructions for parsimony are based on the fitch algorithm and so far only bifurcating trees are allowed. However trees can get pruned afterwards using the function \Rfunction{multi2di} from \ape{}. The \Rfunction{seqLogo} function from the \Rpackage{seqLogo} package from Bioconductor provides a neat way to show proportions of a nucleotides of ancestral states (see figure \ref{fig:seqLogo}). <>= library(seqLogo) seqLogo( t(subset(anc.mpr, getRoot(tree), 1:20)[[1]]), ic.scale=FALSE) @ \begin{figure} \begin{center} %<>= %<> %@ \includegraphics{seqLogo.pdf} \caption{Representation for the reconstruction of the first 20 characters for the root node.} \end{center} \label{fig:seqLogo} \end{figure} You may need to install \Rpackage{seqLogo} before <>= source("https://bioconductor.org/biocLite.R") biocLite("seqLogo") @ <>= options(SweaveHooks=list(fig=function() par(mar=c(2.1, 4.1, 2.1, 2.1)))) @ <>= par(mfrow=c(2,1)) plotAnc(tree, anc.mpr, 17) title("MPR") plotAnc(tree, anc.acctran, 17) title("ACCTRAN") @ \begin{figure} \begin{center} <>= <> @ \caption{Ancestral reconstruction for one character for the "MPR" and "ACCTRAN" reconstruction. When nodes contain several colours reconstruction is not unique!}\label{fig:Pars} \end{center} \end{figure} \section{Likelihood reconstructions} \phangorn{} also offers the possibility to estimate ancestral states using a ML. The advantages of ML over parsimony is that the reconstruction accounts for different edge lengths. So far only a marginal construction is implemented (see \cite{Yang2006}). <>= fit = pml(tree, primates) fit = optim.pml(fit, model="F81", control = pml.control(trace=0)) @ We can assign the ancestral states according to the highest likelihood ("ml"): \[ P(x_r = A) = \frac{L(x_r=A)}{\sum_{k \in \{A,C,G,T\}}L(x_r=k)} \] and the highest posterior probability ("bayes") criterion: \[ P(x_r=A) = \frac{\pi_A L(x_r=A)}{\sum_{k \in \{A,C,G,T\}}\pi_k L(x_r=k)}, \] where $L(x_r)$ is the joint probability of states at the tips and the state at the root $x_r$ and $\pi_i$ are the estimated base frequencies of state $i$. Both methods agree if all states (base frequencies) have equal probabilities. <>= anc.ml = ancestral.pml(fit, "ml") anc.bayes = ancestral.pml(fit, "bayes") @ The differences of the two approaches for a specific site (17) are represented in figure\ref{fig:MLB}. <>= par(mfrow=c(2,1)) plotAnc(tree, anc.ml, 17) title("ML") plotAnc(tree, anc.bayes, 17) title("Bayes") @ \begin{figure} \begin{center} <>= <> @ \caption{Ancestral reconstruction for fig.\ref{fig:Pars} the using the maximum likelihood and (empirical) Bayesian reconstruction.}\label{fig:MLB} \end{center} \end{figure} \bibliographystyle{plain} \bibliography{phangorn} \section{Session Information} The version number of \R{} and packages loaded for generating the vignette were: <>= toLatex(sessionInfo()) @ \end{document} phangorn/vignettes/phangorn-specials.Rnw0000644000176200001440000003527513232243707020222 0ustar liggesusers%\VignetteIndexEntry{Advanced features} %\VignetteKeywords{Documentation} %\VignettePackage{phangorn} %\VignetteEngine{Sweave} \documentclass[12pt]{article} % setwd("/home/kschliep/Desktop/phangorn/vignettes") % Sweave("phangorn-specials.Rnw") % tools::texi2dvi("phangorn-specials.tex", pdf=TRUE) \usepackage{times} \usepackage{hyperref} \usepackage{amsmath} \newcommand{\Rfunction}[1]{{\texttt{#1}}} \newcommand{\Robject}[1]{{\texttt{#1}}} \newcommand{\Rpackage}[1]{{\textit{#1}}} \newcommand{\Rmethod}[1]{{\texttt{#1}}} \newcommand{\Rfunarg}[1]{{\texttt{#1}}} \newcommand{\Rclass}[1]{{\textit{#1}}} \textwidth=6.2in \textheight=8.5in %\parskip=.3cm \oddsidemargin=.1in \evensidemargin=.1in \headheight=-.3in \newcommand{\R}{\textsf{R}} \newcommand{\pml}{\Robject{pml}} \newcommand{\phangorn}{\Rpackage{phangorn}} \newcommand{\ape}{\Rpackage{ape}} \newcommand{\multicore}{\Rpackage{multicore}} \newcommand{\term}[1]{\emph{#1}} \newcommand{\mref}[2]{\htmladdnormallinkfoot{#2}{#1}} \begin{document} \SweaveOpts{concordance=TRUE} % Ross Ihakas extenstion for nicer representation \DefineVerbatimEnvironment{Sinput}{Verbatim} {xleftmargin=2em} \DefineVerbatimEnvironment{Soutput}{Verbatim}{xleftmargin=2em} \DefineVerbatimEnvironment{Scode}{Verbatim}{xleftmargin=2em} \fvset{listparameters={\setlength{\topsep}{0pt}}} \renewenvironment{Schunk}{\vspace{\topsep}}{\vspace{\topsep}} <>= options(width=70) options("show.signif.stars" = FALSE) foo <- packageDescription("phangorn") @ \title{Special features of phangorn (Version \Sexpr{foo$Version})} %$ \author{\mref{mailto:klaus.schliep@gmail.com}{Klaus P. Schliep}} \maketitle \nocite{Paradis2012} \section*{Introduction} This document illustrates some of the \phangorn{} \cite{Schliep2011} specialised features which are useful but maybe not as well-known or just not (yet) described elsewhere. This is mainly interesting for someone who wants to explore different models or set up some simulation studies. We show how to construct data objects for different character states other than nucleotides or amino acids or how to set up different models to estimate transition rate. The vignette \emph{Trees} describes in detail how to estimate phylogenies from nucleotide or amino acids. \section{User defined data formats}\label{sec:USER} To better understand how to define our own data type it is useful to know a bit more about the internal representation of \Robject{phyDat} objects. The internal representation of \Robject{phyDat} object is very similar to \Robject{factor} objects. As an example we will show here several possibilities to define nucleotide data with gaps defined as a fifth state. Ignoring gaps or coding them as ambiguous sites - as it is done in most programs, also in phangorn as default - may be misleading (see Warnow(2012)\cite{Warnow2012}). When the number of gaps is low and the gaps are missing at random coding gaps as separate state may be not important. Let assume we have given a matrix where each row contains a character vector of a taxonomical unit: <>= library(phangorn) data = matrix(c("r","a","y","g","g","a","c","-","c","t","c","g", "a","a","t","g","g","a","t","-","c","t","c","a", "a","a","t","-","g","a","c","c","c","t","?","g"), dimnames = list(c("t1", "t2", "t3"),NULL), nrow=3, byrow=TRUE) data @ Normally we would transform this matrix into an phyDat object and gaps are handled as ambiguous character like "?". <<>>= gapsdata1 = phyDat(data) gapsdata1 @ Now we will define a "USER" defined object and have to supply a vector levels of the character states for the new data, in our case the for nucleotide states and the gap. Additional we can define ambiguous states which can be any of the states. <>= gapsdata2 = phyDat(data, type="USER", levels=c("a","c","g","t","-"), ambiguity = c("?", "n")) gapsdata2 @ This is not yet what we wanted as two sites of our alignment, which contain the ambiguous characters "r" and "y", got deleted. To define ambiguous characters like "r" and "y" explicitly we have to supply a contrast matrix similar to contrasts for factors. <>= contrast = matrix(data = c(1,0,0,0,0, 0,1,0,0,0, 0,0,1,0,0, 0,0,0,1,0, 1,0,1,0,0, 0,1,0,1,0, 0,0,0,0,1, 1,1,1,1,0, 1,1,1,1,1), ncol = 5, byrow = TRUE) dimnames(contrast) = list(c("a","c","g","t","r","y","-","n","?"), c("a", "c", "g", "t", "-")) contrast gapsdata3 = phyDat(data, type="USER", contrast=contrast) gapsdata3 @ Here we defined "n" as a state which can be any nucleotide but not a gap "-" and "?" can be any state including a gap. These data can be used in all functions available in \phangorn{} to compute distance matrices or perform parsimony and maximum likelihood analysis. \section{Markov models of character evolution} To model nucleotide substitutions across the edges of a tree T we can assign a transition matrix. In the case of nucleotides, with four character states, each 4 $\times$ 4 transition matrix has, at most, 12 free parameters. Time-reversible Markov models are used to describe how characters change over time, and use fewer parameters. Time-reversible means that these models need not be directed in time, and the Markov property states that these models depend only on the current state. These models are used in analysis of phylogenies using maximum likelihood and MCMC, computing pairwise distances, as well in simulating sequence evolution. We will now describe the General Time-Reversible (GTR) model \cite{Tavare1986}. The parameters of the GTR model are the equilibrium frequencies $\pi = (\pi_A ,\pi_C ,\pi_G ,\pi_T)$ and a rate matrix $Q$ which has the form \begin{equation}\label{eq:GTR} Q = \begin{pmatrix} \ast & \alpha\pi_C & \beta\pi_G & \gamma\pi_T \\ \alpha\pi_A & \ast & \delta\pi_G & \epsilon\pi_T \\ \beta\pi_A & \delta\pi_C & \ast & \eta\pi_T \\ \gamma\pi_A & \epsilon\pi_C & \eta\pi_G & \ast \\ \end{pmatrix} \end{equation} where we need to assign 6 paramters $\alpha, \dots, \eta$. The elements on the diagonal are chosen so that the rows sum to zero. The Jukes-Cantor (JC) \cite{Jukes1969} model can be derived as special case from the GTR model, for equal equilibrium frequencies $\pi_A = \pi_C = \pi_G = \pi_T = 0.25$ and equal rates set to $\alpha = \beta = \gamma = \delta = \eta$. Table \ref{models} lists all built-in nucleotide models in \phangorn. The transition probabilities which describe the probabilities of change from character $i$ to $j$ in time $t$, are given by the corresponding entries of the matrix exponential \[ P(t) = (p_{ij}(t)) = e^{Qt}, \qquad \sum_j p_{ij}=1 \] where $P(t)$ is the transition matrix spanning a period of time $t$. \section{Estimation of non-standard transition rate matrices} In the last section \ref{sec:USER} we described how to set up user defined data formats. Now we describe how to estimate transition matrices with pml. Again for nucleotide data the most common models can be called directly in the \Rfunction{optim.pml} function (e.g. "JC69", "HKY", "GTR" to name a few). Table \ref{models} lists all the available nucleotide models, which can estimated directly in \Rfunction{optim.pml}. For amino acids several transition matrices are available ("WAG", "JTT", "LG", "Dayhoff", "cpREV", "mtmam", "mtArt", "MtZoa", "mtREV24", "VT","RtREV", "HIVw", "HIVb", "FLU", "Blossum62", "Dayhoff\_DCMut" and "JTT-DCMut") or can be estimated with \Rfunction{optim.pml}. For example Mathews et al. (2010) \cite{Mathews2010} used this function to estimate a phytochrome amino acid transition matrix. We will now show how to estimate a rate matrix with different transition ($\alpha$) and transversion ratio ($\beta$) and a fixed rate to the gap state ($\gamma$) - a kind of Kimura two-parameter model (K81) for nucleotide data with gaps as fifth state (see table \ref{gaps}). \begin{table}[htbp] \centering \begin{tabular}{l|lllll} & a & c & g & t & - \\ \hline a & & & & & \\ c & $\beta$ & & & & \\ g & $\alpha$ & $\beta$ & & & \\ t & $\beta$ & $\alpha$ & $\beta$ & & \\ - & $\gamma$ & $\gamma$ & $\gamma$ & $\gamma$ & \\ \end{tabular} \caption{Rate matrix K to optimise. }\label{gaps} \end{table} If we want to fit a non-standard transition rate matrices, we have to tell \Rfunction{optim.pml}, which transitions in Q get the same rate. The parameter vector subs accepts a vector of consecutive integers and at least one element has to be zero (these gets the reference rate of 1). Negative values indicate that there is no direct transition is possible and the rate is set to zero. <<>>= tree = unroot(rtree(3)) fit = pml(tree, gapsdata3) fit = optim.pml(fit, optQ=TRUE, subs=c(1,0,1,2,1,0,2,1,2,2), control=pml.control(trace=0)) fit @ Here are some conventions how the models are estimated: \\ If a model is supplied the base frequencies bf and rate matrix Q are optimised according to the model (nucleotides) or the adequate rate matrix and frequencies are chosen (for amino acids). If optQ=TRUE and neither a model or subs are supplied than a symmetric (optBf=FALSE) or reversible model (optBf=TRUE, i.e. the GTR for nucleotides) is estimated. This can be slow if the there are many character states, e.g. for amino acids. \begin{table}[htbp] \centering \begin{tabular}{|llllr|} \hline model & optQ & optBf & subs & df \\ \hline JC & FALSE & FALSE & $c(0, 0, 0, 0, 0, 0)$ & 0 \\ F81 & FALSE & TRUE & $c(0, 0, 0, 0, 0, 0)$ & 3 \\ K80 & TRUE & FALSE & $c(0, 1, 0, 0, 1, 0)$ & 1 \\ HKY & TRUE & TRUE & $c(0, 1, 0, 0, 1, 0)$ & 4 \\ TrNe & TRUE & FALSE & $c(0, 1, 0, 0, 2, 0)$ & 2 \\ TrN & TRUE & TRUE & $c(0, 1, 0, 0, 2, 0)$ & 5 \\ TPM1 & TRUE & FALSE & $c(0, 1, 2, 2, 1, 0)$ & 2 \\ K81 & TRUE & FALSE & $c(0, 1, 2, 2, 1, 0)$ & 2 \\ TPM1u & TRUE & TRUE & $c(0, 1, 2, 2, 1, 0)$ & 5 \\ TPM2 & TRUE & FALSE & $c(1, 2, 1, 0, 2, 0)$ & 2 \\ TPM2u & TRUE & TRUE & $c(1, 2, 1, 0, 2, 0)$ & 5 \\ TPM3 & TRUE & FALSE & $c(1, 2, 0, 1, 2, 0)$ & 2 \\ TPM3u & TRUE & TRUE & $c(1, 2, 0, 1, 2, 0)$ & 5 \\ TIM1e & TRUE & FALSE & $c(0, 1, 2, 2, 3, 0)$ & 3 \\ TIM1 & TRUE & TRUE & $c(0, 1, 2, 2, 3, 0)$ & 6 \\ TIM2e & TRUE & FALSE & $c(1, 2, 1, 0, 3, 0)$ & 3 \\ TIM2 & TRUE & TRUE & $c(1, 2, 1, 0, 3, 0)$ & 6 \\ TIM3e & TRUE & FALSE & $c(1, 2, 0, 1, 3, 0)$ & 3 \\ TIM3 & TRUE & TRUE & $c(1, 2, 0, 1, 3, 0)$ & 6 \\ TVMe & TRUE & FALSE & $c(1, 2, 3, 4, 2, 0)$ & 4 \\ TVM & TRUE & TRUE & $c(1, 2, 3, 4, 2, 0)$ & 7 \\ SYM & TRUE & FALSE & $c(1, 2, 3, 4, 5, 0)$ & 5 \\ GTR & TRUE & TRUE & $c(1, 2, 3, 4, 5, 0)$ & 8 \\ \hline \end{tabular} \caption{DNA models available in phangorn, how they are defined and number of parameters to estimate. The elements of the vector subs correspond to $\alpha, \dots, \eta$ in equation (\ref{eq:GTR})}\label{models} \end{table} \section{Codon substitution models} A special case of the transition rates are codon models. \phangorn{} now offers the possibility to estimate the $d_N/d_S$ ratio (sometimes called ka/ks), for an overview see \cite{Yang2014}. These functions extend the option to estimates the $d_N/d_S$ ratio for pairwise sequence comparison as it is available through the function \Rfunction{kaks} in \Rpackage{seqinr}. The transition rate between between codon $i$ and $j$ is defined as follows: \begin{eqnarray} q_{ij}=\left\{ \begin{array}{l@{\quad}l} 0 & \textrm{if i and j differ in more than one position} \\ \pi_j & \textrm{for synonymous transversion} \\ \pi_j\kappa & \textrm{for synonymous transition} \\ \pi_j\omega & \textrm{for non-synonymous transversion} \\ \pi_j\omega\kappa & \textrm{for non synonymous transition} \end{array} \right. \nonumber \end{eqnarray} where $\omega$ is the $d_N/d_S$ ratio, $\kappa$ the transition transversion ratio and $\pi_j$ is the the equilibrium frequencies of codon $j$. For $\omega\sim1$ the an amino acid change is neutral, for $\omega < 1$ purifying selection and $\omega > 1$ positive selection. There are four models available: "codon0", where both parameter $\kappa$ and $\omega$ are fixed to 1, "codon1" where both parameters are estimated and "codon2" or "codon3" where $\kappa$ or $\omega$ is fixed to 1. We compute the $d_N/d_S$ for some sequences given a tree using the ML functions \Rfunction{pml} and \Rfunction{optim.pml}. First we have to transform the the nucleotide sequences into codons (so far the algorithms always takes triplets). <>= library(phangorn) fdir <- system.file("extdata/trees", package = "phangorn") primates <- read.phyDat(file.path(fdir, "primates.dna"), format = "phylip", type = "DNA") tree <- NJ(dist.ml(primates)) dat <- phyDat(as.character(primates), "CODON") fit <- pml(tree, dat) fit0 <- optim.pml(fit, control = pml.control(trace = 0)) fit1 <- optim.pml(fit, model="codon1", control=pml.control(trace=0)) fit2 <- optim.pml(fit, model="codon2", control=pml.control(trace=0)) fit3 <- optim.pml(fit, model="codon3", control=pml.control(trace=0)) anova(fit0, fit2, fit3, fit1) @ The models described here all assume equal frequencies for each codon (=1/61). One can optimise the codon frequencies setting the option to optBf=TRUE. As the convergence of the 61 parameters the convergence is likely slow set the maximal iterations to a higher value than the default (e.g. control = pml.control(maxit=50)). The "YN98" model \cite{Yang98} is similar to the "codon1", but addional optimises the codon frequencies. \section{Generating trees} \phangorn{} has several functions to generate tree topologies, which may are interesting for simulation studies. \Rfunction{allTrees} computes all possible bifurcating tree topologies either rooted or unrooted for up to 10 taxa. One has to keep in mind that the number of trees is growing exponentially, use \Rfunction(howmanytrees) from \ape{} as a reminder. %<>= %trees = allTrees(5) %@ <>= trees <- allTrees(5) par(mfrow=c(3,5), mar=rep(0,4)) for(i in 1:15)plot(trees[[i]], cex=1, type="u") @ \begin{figure} \begin{center} <>= <> @ \end{center} \caption{all (15) unrooted trees with 5 taxa} \label{fig:NJ} \end{figure} \Rfunction{nni} returns a list of all trees which are one nearest neighbor interchange away. <>= trees = nni(trees[[1]]) @ \Rfunction{rNNI} and \Rfunction{rSPR} generate trees which are a defined number of NNI (nearest neighbor interchange) or SPR (subtree pruning and regrafting) away. \bibliographystyle{plain} \bibliography{phangorn} \section{Session Information} The version number of \R{} and packages loaded for generating the vignette were: <>= toLatex(sessionInfo()) @ \end{document} phangorn/vignettes/Networx.Rmd0000644000176200001440000001237213201424001016200 0ustar liggesusers--- title: "Splits and Networx" author: "Klaus Schliep" date: "`r format(Sys.time(), '%B %d, %Y')`" output: rmarkdown::html_vignette bibliography: phangorn.bib vignette: > %\VignetteIndexEntry{Splits and Networx} %\VignetteEngine{knitr::rmarkdown} %\usepackage[utf8]{inputenc} --- This tutorial gives a basic introduction for constructing phylogenetic networks and adding parameters to trees or networx objects using [phangorn](https://cran.r-project.org/package=phangorn) [@Schliep2011] in R. Splits graphs or phylogenetic networks are a useful way to display conflicting data or to summarize different trees. Here, we present two popular networks, consensus networks [@Holland2004] and Neighbor-Net [@Bryant2004]. Trees or networks are often missing either edge weights or edge support values. We show how to improve a tree/networx object by adding support values or estimating edge weights using non-negative Least-Squares (nnls). We first load the phangorn package and a few data sets we use in this vignette. ```{r, eval=TRUE} library(phangorn) data(Laurasiatherian) data(yeast) ``` ## consensusNet A consensusNet [@Holland2004] is a generalization of a consensus tree. Instead of only representing splits (taxon bipartitions) occurring in at least 50% of the trees in a bootstrap or MCMC sample one can use a lower threshold and explore competing splits. Note that, in its basic implementation used here, the consensusNet edge lengths are proportional to the frequence of the corresponding splits in the provided list of trees. The input for `consensusNet` is a list of trees i.e. an object of class `multiPhylo`. ```{r, eval=TRUE} set.seed(1) bs <- bootstrap.phyDat(yeast, FUN = function(x)nj(dist.hamming(x)), bs=100) tree <- nj(dist.hamming(yeast)) par("mar" = rep(1, 4)) tree <- plotBS(tree, bs, "phylogram") cnet <- consensusNet(bs, .3) plot(cnet, "2D", show.edge.label=TRUE) ``` In many cases, `consensusNet` will return more than two incompatible (competing) splits. This cannot be plotted as a planar (2-dimensional) graph. Such as situation requires a n-dimensional graph, where the maximum number of dimensions equals the maximum number of incompatible splits. For example, if we have three alternative incompatible splits: (A,B)|(C,D) vs. (A,C)|(B,D) vs. (A,D)|(B,C), we need a 3-dimensional graph to show all three alternatives. A nice way to get still a good impression of the network is to plot it in 3D. ```{r, eval=FALSE} plot(cnet) # rotate 3d plot play3d(spin3d(axis=c(0,1,0), rpm=6), duration=10) # create animated gif file movie3d(spin3d(axis=c(0,1,0), rpm=6), duration=10) ``` which will result in a spinning graph similar to this ![rotatingNetworx](movie.gif) ## neighborNet The function `neighborNet` implements the popular method of @Bryant2004. The Neighbor-Net algorithm is essentially a 2D-version of the Neighbor joining algorithm. The Neighbour-net is computed in two steps: the first computes a circular ordering of the taxa in the data set; the second step involves the estimation of edge weights using non-negative Least-Squares (nnls). ```{r, eval=TRUE} dm <- dist.hamming(yeast) nnet <- neighborNet(dm) par("mar" = rep(1, 4)) plot(nnet, "2D") ``` The advantage of Neighbor-Net is that it returns a circular split system which can be always displayed in a planar (2D) graph. The plots displayed in `phangorn` may (however) not be planar, but re-plotting can give you a planar graph. This unwanted behavior will be improved in future version. The rendering of the `networx` is done using the the fantastic igraph package [@Csardi2006]. ## Adding support values We can use the generic function `addConfidences` to add (branch) support values from a tree, i.e. an object of class `phylo` to a `networx`, `splits` or `phylo` object. The Neighbor-Net object we computed above provides no support values. We can add the support values from the tree we computed to the splits (edges) shared by both objects. ```{r, eval=TRUE} nnet <- addConfidences(nnet, tree) par("mar" = rep(1, 4)) plot(nnet, "2D", show.edge.label=TRUE) ``` Analogously, we can also add support values to a tree: ```{r, eval=TRUE} tree2 <- rNNI(tree, 2) tree2 <- addConfidences(tree2, tree) # several support values are missing par("mar" = rep(1, 4)) plot(tree2, show.node.label=TRUE) ``` ## Estimating edge weights (nnls) Consensus networks, on the other hand, provide primarily information about support values corresponding to a split, but no information about the actual difference between the taxon bipartitions defined by that split. For example, one may be interested how the alternative support values correspond with the actual genetic distance between the involved taxa. Given a distance matrix, we can estimate edge weights using non-negative Least-Squares, and plot them onto the consensusNet splits graph. ```{r, eval=TRUE} cnet <- nnls.networx(cnet, dm) par("mar" = rep(1, 4)) plot(cnet, "2D", show.edge.label=TRUE) ``` ### Import and export networks, advanced functions for networx objects The functions `read.nexus.networx` and `write.nexus.networx` can read and write nexus files for or from SplitsTree [@Huson2006]. Check-out the new vignette IntertwiningTreesAndNetworks for additional functions, examples, and advanced applications. ## References phangorn/vignettes/cophylo.png0000644000176200001440000003157013201424001016252 0ustar liggesusers‰PNG  IHDR  sâ?÷ýPLTE  !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{}}}~~~€€€‚‚‚ƒƒƒ„„„………†††‡‡‡ˆˆˆ‰‰‰ŠŠŠ‹‹‹ŒŒŒŽŽŽ‘‘‘’’’“““”””•••–––———˜˜˜™™™ššš›››œœœžžžŸŸŸ   ¡¡¡¢¢¢£££¤¤¤¥¥¥¦¦¦§§§¨¨¨©©©ªªª«««¬¬¬­­­®®®¯¯¯°°°±±±²²²³³³´´´µµµ¶¶¶···¸¸¸¹¹¹ººº»»»¼¼¼½½½¾¾¾¿¿¿ÀÀÀÁÁÁÂÂÂÃÃÃÄÄÄÅÅÅÆÆÆÇÇÇÈÈÈÉÉÉÊÊÊËËËÌÌÌÍÍÍÎÎÎÏÏÏÐÐÐÑÑÑÒÒÒÓÓÓÔÔÔÕÕÕÖÖÖ×××ØØØÙÙÙÚÚÚÛÛÛÜÜÜÝÝÝÞÞÞßßßàààáááâââãããäääåååæææçççèèèéééêêêëëëìììíííîîîïïïðððñññòòòóóóôôôõõõööö÷÷÷øøøùùùúúúûûûüüüýýýþþþÿÿÿ^«þ pHYsÃÃÇo¨d IDATxœí xEúÿß Á0!rÉ5u‘Ó„UT5"¸ ,,(È•@Ý•Að¢(»\ÆÁƒcEA„ã}þÕ«gÒ3ÓÓ×T7ßÏóôTuõL½U=ºf&Ì;ÄH Åz„‚© @j ( ¤‚© @j ( ¤‚© @j<-h¢vAMïÕ;%Ê“u‰Þf.øGVêÙ— Û«ºh«R¾E4ÄåÚÄÓ¤Ò¸×{PòúÍZ]·¬ØÑa9Š—=š ž­¯‚¯$zVÏu*თ–>¥5³ÌÇOrs•óròÖ²»w<êÊøœÀË‚.QÎý´ ÆD—–0g­æ¢®D ݆^& ýÔ'‚^›;éÆ8Jü_Ø;Î!z]\?o'ªÖá7Ö$ºÖ³×P/ Ú—ª'RÇ Æ’,¢÷xÑEÅÊeôÜÍ¢i*Ñ­>ôq¥A´&ìK]G”º^ìýpчnŒÏ <,è/ tµxú]P³ð¯&«ú5D󔦢Ftn±}Šè]m{ÊØuUËf–¬èštá¼þ½²´tâÞDsÕãoׯÿh †k T\gÍ#z*¨¹¤3UËO¡¦§™›QÍ“jÛÞíÛ }#hѶ‹¨A¶½ ¥¦*NæÄ)·+x`Qƒ~§Ï¦ä‚P]y *„ûn?QvpûëDbMû;ó©8º ðþåxWÐRÎû" ½ ÑÅ3®í—ÎèIt}Ùÿ-Ñ%1¨xWÐc5èwÌ(î`Ð’Žâ©ªû+ó¢nšv Úü³€ö6Tý ÿV‹~䵨m™ Û‰z*G“”Gܓۀw}è!æGˆž >²V’›› A]çxbùzWýHð± ¢ãJ)^-S. D? zšè m»¾ Ê„Pƒ+¨û¼XùŠòÙàcå‚.&jñ%«ŸègûésЈn×¶ë ú󢄢éÛK ¨ûÜD´I)óÔ·­½êÖÝWy¬\ÐBñv)9gôUT~Añ¾ Wçæ>8¼ÑB휫:Ÿèñâæ.1ñŒ;ûÔ êÔmÄ ß@ýó]Q=ªqŒ/'ú¾ò`¹ ¼?³ô[í1ö‰ e\'æ^9ç*‚¾§~PϧÊþß|6u›eDÃKkCˆ^ %(Ÿz²S¤‹íRê¾´ÞóŠ8¬ %ÒA¹ä•Þig5ýó‘Ï!(ŽAÔ@P 5H RAÔ@P 5H RAÔ@P 5H RAÔ@ÐJþGûýÒc@ÐJz&Óþé1 hëh¡’/Çç!½-§¨mߢø\Q)HX9°þùkö椦ç1ŸžÒ©Öåù&¤ç€ å,¨žÏÍŠÊVj5{U‹´ÌËëvãc=R§¿pI}‚–ñkÃÑÌÙ]Em’šybüNæYüh­Ï™¿.M’çƒÞã TùΙþ‘)µ¿;~üÖ¢6²­¸ ä+Éq*í>å`­YN ÆDÈÐã÷+a¦ûqþnß¡>Á…»UÙ$•~còsgåë¢é“ÅKĤ…Ÿ–}Í÷•}âÁJ:ÛÊ}CÛ]ÈÁ›r VçÎ9ò?6%h­Æ-}‡úÔØroÚ¿÷þûïO í\Xs>óQZ˼“¶-¦-[ŽwÎ'Ŷ²CÄ3Z~ÈA›:üX;çh\Ë” ;Bó*¡–ÈÕÔO{ÖÑ+¼ƒ>S²Æd^\³p‰÷*¿ wb…7ÒŸKüŽŒÐÇÎ0A9ÄóÛûB%ï¢'yIæéMÄÞ¨®|´Q§žî˜²Ó‘˜ éG?!hD6пÔò8ÝË£;ˆJÿqÓe”ðçêäw|öÁž )-H RAÔ@P 5H RAÔ@P 5H RAÔ@P 5H RAÔ@P 5H RAÔ@P 5H ŠýTÎO¾ˆ#?4*.Z´èFš»hÑ þˆ#?4jniå¯8rA£¦ÅíâæäØÆIÙ[˜OT[?¨Î!OÇ‘-‡h&ó‘®Í§?ß.í0çQFöTOÇ‘Z†á¼F¯+?m0¦Ù>qîh%Ï¢Ügd9Ž?25AP2žnJü þ1q¾¨¢çypã"‡†d5ŽO’ÝI*芾ã]¥TÐGá°›Jß‹™_#åå`>}ÂíF0OLcË©úq˜Ÿ½ÿ¨ÑM‘»'±*]NZ6ARAg¶›æ*¥‚Î׫p›BIƒ¡Ì«¥¬·OÔ>~2~ ó\ÑÁ¶±œ«‡ùß=atSgäîI¬Jõã–MTЗnu¶ÿ*^¿W~Áàqâʶ§ÞÞLŸ;4 ËqdXâ}{u]PüL[™¿N¼â¥Gö8γk{<Ž£@P÷¹?ñ´¸}ó’¤NSDehw¯Çq ¤‚© @j ( ¤‚© @j ( ¤‚© @j ( ¤‚© @j ( ¤‚© @j ( ¤‚ºÂAš£–ƒš¸óŠ/T+ÒîEµê ÿ¦ÿ¨eúMîÅ|’h¯RL¢±îEµê &©³Ÿè1÷bÞÑšÞQÊ‘­éE÷¢Ú u…ë®T‹×h=$¬Xÿü5{sRÓó˜ÜÝ4¡ÅLGÒ/¦ßò¬(¾ª~?}}ˆÞÕîC½—Å‚ºAIÚ½‡þ~æ­Ôjöªi™ –×íÆ§3[?¾¨³’¢Æv~¦—Låm}&§–¬£ÃÌŵçx/‹-µ•Ù¶ö”ÿàF:óz›ybüNæY¼¥Ó6Ò8q*6ж3¿­wO~¸¥hù’>Ž˜ÅV‚ta@P; •n9½ô–àͤ;ÄK¶¢a@Oq“¥&ì<¶é¦$'2ØN;»ptwæ«ï,©7‰o¼E´,­~2RÛ(²ðº5@§³SŒ¡>¿ï¦Lá m\ªzÙúžžbî<\ÔÒÅâ[”´7÷kÚ}\‡lÎþ™m£-£_?Õ‚ßJØû-­æÆ3DË_.f5‹m›v!7u'[ÉYÏØ=øJ ¨î™vĥן£ÅÁÛ•W«ý¬¦¹°æ|ÑBk™wÒ¶¼sægâ>Þ7µY‡×mí¯ÿü‹R4몶Ëÿ¢}h£x!Üæ¬f±ýídÈMÔàd+éºÑ¦¡ëA 0êïFï©¿@'OPËâOðúLy}xyqÍ»q_¡eÊ}^}Õ–±î‘zýQþHKÅû±ÇkÿÄãñkJòÚiVä,¶¦VøìwM ÕÔÆÕg­PË^b]R£€yºò¥Q]ù¶Ä™Ï N¦I…ewœÑeÑ k¡øþÉ?¨å«ô•x#Ÿøsx-å¼ñp]ÚäP[j‰]Lߨ¥’3~tQéŸ#nºŒâüŽ5šÝÓ´eùë¢5}êþù´Ù0Ûÿ¬¹?”":­ÓàW.®ý0Ÿ¾#©Éþ]í„CYl!¨$4¾›eNТ%—Ÿ÷à6Æ Ô TáÇóFïŠö1ûú¯*Œ|/g€ fð° ¼gRÃì͆ï}êù[bæ¦ 5ƒ—e>½r‹Á{î{nÏÕŽŽ%"Ô ÞTåÎî/D¼Ó3v»0”°8)hµKÛ[å¢Ú¡»‡ V(Xöûú…9þÕ¸Ù®%N š·Å*® Ý=µÈ—φ<ôòUõÆ}ëâPB#ùj›è­âE·¿xÊý±èAÍàA9_¼úJ³ze¿b6 ¨|$(óÉ¿«¨ÿoRÃì¤úÝMj_ ªÒåºÕÊçoŒúS|‡ fðŸ '_–|M¬¡5ƒÿ}«OÝÿŒõ ô€ fðŸ ãJÿ/ÞsM&Kõ ‚šÃO‚¿šóaåÞG¤Þp8vƒ©Š?­×˜£ü¾ƒm³ˆ± Ç§6ëøÏ€Ï<}éWæÈu  :æÉ¹Žò§+m›EŒÝ5JïuE sÖIòa“?u_,ñíòØñ¹í[®tq,¡ fð Ýœò§°IG>ùX¬ôŽä͉ jÛýãŸÚ±©«(yjÎ/‘ï”{þôÿ9?”°@P3Ø&襃»Ž³©+Ã);K6ÜöœÑN?œ2@/]ˆ{9I!¨lôº×l[â ¦ì,ükzÛYÇw{t…Xæ«<‘îå$… fQPƒ);þó‡aŽêó]Ê€w[ÜËI AÍ £ ‘Sv~²›ÉÔ GþvÑïkÜËI AÍ ¡ SvîxÎ>0ßÞnæßÊw\ÌI AÍ ¡ Sv®žù“Õ2þö³Zq1')5ƒ+‚F—k+\Êμ»r­T¥äÛÏQ?3•“Ô\zPj[þˆîŸSKó½®ZΆ¶0);çµký¸å‹g9‡ÞVn#æ$Ý:ÿHð¦ÎÇø_“Ÿ]‚šÁVA/»J÷?¤” :at‰¡-LÊÎñlÿ{PÄœ¤/ û"xSçcüÿãÜR·45ƒ­‚Þ²L÷Pt³M¦ì4‡‘œ¤U‰n‰ÏoSZBP3¸!htt3e§ñœ¤Dõ‚ZÁA£ÁÍ”Æs’Z‚ZA>A}µujê8Ô Ôq ¨ ¨ã@P+@PÇ V€ ŽA­A‚Z‚:µujê8Ô 6 zÏ´_°©3_A­`£ ÎN¸Ï¦Î|µ‚‚2c‰×£\ÐË×qŒ¿…ƒE ¨Ÿ)459Å1ªÈþcêgÜXâ‚újê8Ô Ôq ¨ ¨ã@P+@PÇy3^}£Ð‚š@NAÐLµÒˆùëܼ:î˜M=Ç ÔÎóÕ*Ÿ AM § ë¨4õgfóÓ©%<)æŽcªl‰¿‚šANAª®þeäXÜcÌJŽžƒmê8¡ ¨ä´W{µØH‹“‰j¦ÎÛ*yˆ#¹EœA­ ¥ %ijúCž÷KÑ®¸9?|MõX×ÖÙÓ»Û¡ ¨\4ú\š»éYµÌ¯7Ñ7ü"-aþ&D&/kXet^Ô Î j"ÛëÒ²TvÄëÁ§SJx¬’"é3Ê·Þa›ñ­ï˜:êkÀïéæ;¯b¾â^±7?¹¸§è¯¯¨ÚVöä¡úÌàíÂoêĪÎ7Æ÷@PkØ*è;·T¡TÐ[ Œoù½:«]ΣÝÌ™¸(i±ØÞw‰þ”k›må.*ÿl ¿©«:ß@î˜ A­a« º˜X⯫§ü÷ÆýÍ{3ÿZmo§b·}¸õ2ùP†æ5ö¯ÔÎ j‚táŒãR/:¤d˜ýÇž…ÊOœJXj_×BAP«H)(¯ÉJ©sÙLå·ºŠ¯Iü×=Ê/vn¡/l àV(j9õ Ô*ÔQ ¨U ¨£@P«<ÚÊøþ„¥ÉœØMB^ ¨U6Ž1þ“iaÉ\»IÈ •,ñz@Pi€ z@Pi€ z@Pi€ z@Pi€ z@Pi€ z@Pi€ zÜÜ{Ú´¿4P«4¶@P=nì1~ü¨¾j‚ƪ‡²Ä—Ac Õ‚JÕ‚JÕ‚JÕ‚JÕ‚JÕ‚Jƒ‚jsuº…³1!¨4Ø!¨6W§[8‚Jƒ‚jsuº…³1!¨4Ø!he®Næw7Mh1³„ V¬þš½9©éyÖ#¸‚Jƒ ‚jruòéÌÖ/êL[y+µš½ªEZæ‚åu»YŽàzL* 6ªÍÕ¹¥Ó6æ<ÚÁ èmæ‰ñ;™dYŽàzL* œkK›«SplÓMIE<²­¨è)n²FX£M1£H‡A¥¡ª ß®š†qÛ·rÛ«ÍÕ¹¹_Óîã:d3w.šÒ'3%-Ìý|)vm+ó9RÌ¿o9Í?mFò.jÒ/–AcKUA[·ª’Èöh§!r»^“«3ïœùG™3îãšó™ÒZæ´­‡è§—¸‡meŽs|ûMüTàf(s­&m4¶T4çeíE^5¹:•„áWhï Ï˜7ÐAæÅ5 í¯…˜&2ž25‘5ðT“«ó¶Ä™Ï N¦I…Kj0Oo"ŽŽêjãh­Å4ã'15@e®ÎüŽ5šÝÓ´eÉèb¯¿òWž.£le cvoó–}¹ =8¯æÂXÁ4ô àÚ×c=ó@Ð3[ h hl € ±‚F‚Æ[ h hl € ±‚F‚Æ[ h hl € ±‚F‚Æ[ h hl € ±‚F‚Æ[ h hliuéUAÔ{4Öc’ [–®|+ˆËEÛ‡ÿØj€ ²ýï¿¶ ¨lD/¨ÿØj€ ²½ šd²9dË3Ë:€k1!¨lD-¨6™l@ي̲öã^L*U0Om2Ù€²™eíÇBÌ(34APÙ4bR8m2Ùಥ™eíÇ|ÌhsÜAPÙPíqǰ ÔŒ?Þ=ŸCmÚd²Ú¼µ™eï½Lí¶•÷EŽÉï Û¤»)³Qç•ù³¡ÓAeC´ùs+P=1ïµi’Éä­­È,»Tô²\Üöri䘜?w·î¦ÌFWâ!C§‚ʆ"èÅÿ©Ü¸&j’Éä­È,ëæcVL§ö/†"APÙ4"šd²9d+2Ë:0HbBPµ šd²9d+2Ë:1Jë1!¨G‰^PoA=  ‚Ê ‚Ê ‚Ê ‚Ê ‚Ê ‚Ê ‚Ê ‚Ê ‚Ê ‚ÊFÉo½Õ2/Ö£pž³_ þµ.ùßXîàOA»]vÕUÉkc= ç©~epÊ ]š?ëšÇŸ‚*`‰÷ÔË@PA}õ2ÔÃ@P_A½ õ0Ô@P/A=Œ9AÝLdk=õ0æu3‘­õXÔØÔÍD¶ÖcAPcNPMRÙŠ<²'ª­TÇX$—cAPcJPmRÙŠ<²y”‘=ÕÞÁÙ ‚z ÆÓij“ÊVä‘E¹N¤¾1«b>ÔÃT Jƾj“ÊryÙÁÈ_k>AP?P“ø)±GÜÚj“ÊVä‘m'–âóD­ÙÆò<k=vÓÌê÷Ï«ËøWÐJ¢¸‚j’ÊVä‘=¿Ä‘a™ŽmpOsFÌÔøªI*[‘GvsÙRl7æcAÐ3MRÙŠ<²³k{>–w T&•­È#;´»by ¤‚© @j ( ¤‚© #èÍw 3ǵ+Ü?ŸÙ„¹ëæÐ#h³Ü¹æèö¨ý“Þe[ÃÂä6 ýà0‚f˜ý‘ô{f›| ð%».Œp‡¡…tÊaSÃa^¶Éä/9òP„;žúÞ$© @j ( ¤ÆA~_á zgFÄ1&è_jÅ¥,©²S^§~§"ÝÂHßÑ5Ȉ8†Í¥æƒêÄ­Ú©¨ô‰Ÿ Xj~ôÀïèdDC‚¦¤óþjƒv**©–ü¾AFÄ1"è—4PÜ^xVàNekÚ|ÒäÀÁ¾A†Ä1"è å›ÛœCÅ;•­g“@Õû˜>ð;úLj ÓHùM¬á¥Y*v**×?7ƒzXšð3úǘ ¯ŠÛaôeÀNEå—QE%p !Ð7È8F]NóÄíM¥芀Væñô¦éñŸ£oPé±â{“4Dܶ=+p§¢òÑÔBQ¹Ÿ¶›>ð;úÇÐÇLçÔgþ¥zÇ òÊrzP4§WGN  ]ƒ ‰cðƒúö¹ ãÄ †¾©+wÊ+Åiq}îmM÷Yžð-ºÇØŸ:G'Å¥<ÇÊ Ú½•;•½ñ”æÿœ kq𿙀Ô@P 5H RAÔ@P 5H RAÔ@P 5H RAÔ@P 5H RAÔ@P 5H RAÔ@P 5H RAÔ@P 5H RAÔ@P 5H RAÔ@P 5H RAÔ@P 5Hw-øGVêÙ— Ûkø}ˆÚ•ÖÚphTV™D çfü¦ê±Ê \C5Ên4l"zÌ…ºŒg=x©úTRÅp4AÜû+µ*½ ‚:[‚i&`LÐOrs¿rp¨îàUA‹º%tz™0ôScX¢<íÓԪ܂æä>xWC¢ ƒ¥Z3c‚Î!zÝɱº‚W}^¬ƒ›™K¦Ýjì}©z"•þœ©Ü‚*?øc[¢—‚i&A¥çRuœ‹ѹÚ_ËmOç¹³iZÎeçðˆ‹Ïn3ò'õÀ/ tµx÷]éd”Wõ<¢@° ßÞÚ°åÿ{O´dEV½š­G~Ïü{åŠÛIÓàI¼*h3ªyR­ìݾ½PÓÞžRÛ+OLºX ÷4R_Í5>¬—ÜYóˆž*½“ô‚ÄÓ%G´ôózÊ¿„ô´Œ_ŽfÎî*j èmæ‰ñ;™dñ£µ>gþº4“žBz3LPåiúG¦Ôþîøñ[ˆÚȶâf€’À#kÄ©´û”ƒµf91!C߯„™îÇù»}‡úî>Ve;TúmßÌ•ïO¦O/“~Zö%àWö‰+ßµ­Ü1ä±Ý…¼)buîœ#ÿcS‚ÖjÜÒw¨Oý‡-gpð6¬ù{ï¿ÿþÚÎ…5ç3¥µÌ;iÛbÚ²UáxñàlqRl+;D 9£å‡´©ÃÕ¹sŽÆµL š±#ô1¯j‰ÜYMý´g½Â;è3æ tyqÍÂ$Þ«ü6܉ÞTH.ñ;2B;ÃåÏoï ‹”b=ÉKj0Oo"öFuå£:½ðtÇ”ŒÄ\H?ú A#²þ¥–Çé^ÝATú爛.£„?W'7¸ã „” ¤‚© @j ( ¤‚© @j ( ¤‚© @j ( ¤‚© @j ( ¤‚© @j ( ¤‚FÅ~*ç'_Ä‘-Zt#Í]´èÄ‘5·´òW¹ QÓâvqsrlã¤ì-Ì'ª­Tç§ãÈ –C4“ùH×æÓŸo—v˜ó(#{ª§ãHUˆ&©ÑëÊOŒi¶Oœ;Zɳ(·Ä™1Y‰ã£$M´4-œñ§tJü þ1q¾¨¢çypã"‡Fe!ŽŸòÜÉ.衬ñŽ£ Z2e:GÚTú^Ìü)/óén7‚yªècÛXNÕÃÏM8ldSçãüi«Ê¨ëí@vA÷Ÿ=ÍqJ¯ Ï,䈛 ¤ÁPæ¿ÕRÖÛ'j?¿„y®ècÛXÎÕï>qܤž5´IDATȦÎÇùÓV•±ì@vA§:#ªñ{å þ'®l{êMáÍô¹Cƒ²'VKü΋ìï‚FÉË´•ùëÄ+^z´aã<»v±ÇãØ •€ûO‹Û7/Iê4ET†v÷z; @j ( ¤‚© @j ( ¤‚© @j ( ¤‚© @j ( ¤‚© @j ( ¤‚© @j hl8¢¤ñ q /L1-AcÃ:úP-3süÓ246þM<ø¤¸‡måo9¦¸£Î¦ ªL¦ËÛ¶ž7c@PËtÉ s0Äêx]½_Äíþ潕Ÿ3øŒyd^\³ð®«Eó+´ÌÖZY>‡+ÞsbX€ – +hVÐ…3ŒK½èó’ÌÓ›ˆÆQ]ù¶Ä™Ï N¦I…¶ŽÐ¦˜Ôþ¡è" ¼&+¥Îe3OˆÚè⦿òÇ.£8¿cfc÷4méÈg’VcBPû‡¢‹ ‚zjÿPt æ€ öEjjÿPt æ€ öEjjÿPt æ€ öEjjÿPt æ€ öEjjÿPt æ€ öEjjÿPt± hö5ý«P÷%Ç&3M»W|0­±9(Šv-¯Búë6ŽMfÚêL>˜‹VÛ‚FEö»UÛ°ÄkèöŽÍA!hT@Ð@P€ æ€ öEjjÿPt æ€ öEjjÿPt æˆ‰ ï§·! Bǃ ¸™³Ój¬˜úA½i¶óÀ¡ãAÐ@ÜÌÙi5–o–øp@Ð@ÜÌÙi5Ö™.h£1ö_ÌuyðlÓ÷]PMÎΊ4'ª­Tç…NŠu¦ zýö¿ÖåÏ5MßnAµ9;+ÒtæQFöTó}:ëLÔ5$Zâµ9;+Òt΢\'2‹XŽA] AMæÐÔæìäò4ƒ;‘Ôt,Š&yµ›m3~îÜ¹ê³øÕÜ¢ÛVisv–§åvb)^!ú\Å6–+8T¬ÂÅÂnjúEÑÍÜÖþ+µ›½î¶aÆ©‚¾9lStÛxMÎΊ4'ã—0}ŽgË1*Ö±{ž»©‚Šn†uZùAP°YP“K¼&ggEšÎÍeK±Ý˜ÕÔ ¨ 8!(›Kã®ÉÙY‘¦svíbÓãs$V4Sƒ 6àˆ &©ÌÙY‘¦shw›c¸ ‚Ú€L‚ú jÔ9 ¨ @P瀠6 [ÞØRÉïÖ95(ŸÐqÞ–7?¶³C‰žçµ¯¤Ö?”Oh˜Þ¾q7;;„ ‘¸ÿQÍ–øˆ%þ¯cíì‚F‚FµêÔ ¨s@P€ ÎAm‚:µêÔ ¨s@P€ ÎAm‚:µêÔ ¨s@P€ ÎAm‚:µêÔ ¨s@PAP7׺‚Ú€ ‚º™¸Ö͘ÔdÔÍĵnÆ„ 6 ƒ zÉd V¬þš½9©éŽü.ƒ1!¨ H ¨n2Ù­Ôjöªi™ –×µõ{gnÆ„ 6`· &ò†é&“]@o3OŒßÉ< +Ú݈idšÔl”Ld¶ÓM&;²­¨è)n²FDÙŸ1 M‚Ú€A´i_…RAïíò“ñ­¯n2ÙÎÃESúd梤…=EÇ}Å®meOý¶š˜7tüš'‡ÞÔiV}Éó ¨e,úú{[ªP*èž­%Æ·|½d²…5ç3¥µâI¡m»DÇùâ¶•»tØjc®ÿ´½©Ó¬:û ^ÞA-cAP]L¼ÕK&»ƒ>cÞ@™×,Œ¶Cb}%A­b· &ÐK&»¤Fóô&â訮„t-&µŠ‚ê%“ÝAìõWþÊÓe”!ÝŠ A­"ƒ >‚Z‚: µ ujê(Ô*ÔQ ¨U ¨£@P«@PG V ŽA­A‚Z‚: µ ujê(£¯˜f#c]ü^¶õ=#;Œ·‘Q×»;zê{ì]âÝ‚újê(Ô*ÔQ ¨U ¨£@P«@PG V9Pky䌉õx=µÊÁæý£à‚?8:mÒίsOðê¸cAÝÅá%^›´óéÔž”áõPÔ]T›´SɧÐs°×CAPwqXÐʤÅÉDµ SgŽm•<¤ØÃ¡ ¨»8+¨&igÑ®¸9?|MõX×Öy8ugÕ&íÜDßð‹´„ùZæáPÔ] j"ƒ˜‚6içÓ)%<¶e óg”o¦/wBEœ(u—‚~ôf•ŒÿýޣܴI;*ùŠ{ÅÞüäâ|Ñç—¢j[™Ï!Bíù/ó·Æ·ˆY?A]%¤ ]›g±ý©ãÝå¦IÚÉ™¸(i±ØÞ{ˆ>{‰ªmeêOŽp[Ä<¶%BPW )è½OkvÌäWÐ$íüµÚ ÞN;Ån{Gžb{BEœè¶†ÔUŒ jö5¨&iç.úÇž…IȨ–šéÊ¥P‘& A]Æ  f©LÚY|Mâ¿î¹BT¶Ðvô£PÔeÔw@P— ÑA]‚FuÔe ht@P— ÑA]‚FuÔe ht@P— ÑA]‚FuÔe‚­Ù¼eµÆhDrA]&HÐäÿì.cÐã1‘Ü@P— ´ÎÑò–x] ¨Ë@Ð耠.A£‚º ê24: ¨Ë@Ð耠.A£ãõWÅzV€ |@ñ…jåAºÂzoRû¨ÉÎuî<4€'‰ö*åÁ$r~at'ض¶Îõí4€;ZÓ;J9²5½h½7)‚AP—qTÐô»S”œˆ_U¿Ÿ¾>DÊÚØ}(Ÿ¨¶~PCÖ;M0ê2N ú3-¸d²(oë39µdf.®=‡ó(#{ªå¾c ‚ºŒ5AÃ'2Ú@ÛnÌüiü¶Þ=ùá–¢åKú˜gQn‰©¡†ÇT°è3NAP—±$h„TpÓÎ.Ýùê;KêMâo-K«ŸäÁ‹LŽ5,f‚™ÈÙA]&¤ ×\>,"j²Â­Ã^gÝmb¿,~ª¿•°÷[ZÍgˆNÿr1s»Ì÷‰OdËû8d°‰ù¼j˜î¦?ò,5d† .RÐ9¹s#¢^¾Ÿ»][Þl ¯ª^Ø~,ÿ‹ö Ì%mþÈ'ã—ˆ‹›xðr¶±\Ê!ƒ-?ÈŸÎÕÝTA#ÏRCÍ!¨Ë„Ôá—Èi)o¥ÇkÿÄãñkJ ùio.Ë%o3¦‚E½Ä×9 A]Æ’ áy•¾ï­aîq¯¥œ7®K›xvmG~%É`Ôuô¡ñºNƒ_¹¸öÃ|úޤ&øwµ<´»}\A]ÇAA}u Ôu h4@P×¹ãšiZÿëI u©·×Rã`¬$54Ö`‰ 54,4Ö@а@ÐXAÃAc  54,4Ö@а$­ž×*Öc°õ7g]yù±ƒ% ¨¿ñüé þÆó§‚úÏŸêo<z ¨¿ñüé þÆó§‚úÏŸêo<z h)iŽZjbKwÒÄ„ ±Æ¦gàßôµL¿É– AcMÏÀƒIj6îŸè1[º“&&56=×]©¯Ñz.HX9°þùkö椦ç1¸»iB‹™N¤_t%&5ö<%i÷Rø?ú™·R«Ù«Z¤e.X^·ŸÎlýø¢Î´ÕŽ ±ˆ Ac‘g rÆ­=TF:óz›ybüNæY¼¥Ó6æ<ÚaÇPmŒi8‡5žŠœn9½ô–àͤ;˜G*ÿÃw@Oq“5B9vlÓMINd°µÓÀŒÊ€ ±&ŽŒÁ#ⶇÜx\ªúŠï{zйópQKŸÌ\”´7÷kÚ}\‡l>OtÑZ´ÛVž1f›†%b38g…ïÜJlÅó‚ÀÀõæÊ«Õb5}È…5ç3¥µÌ;i[Þ9óÅ%(ã>'†e!¦ñ+¨ç9#¦ñÙ,Nž –ÄŸàô™ò™×,¼K‘èZæÀ ,Åh§¢Ò'~‚`iaßÑW&zSŒ š’RÌû«uÚ©¨d¤F7xàô•‰ÞC‚~IÅí…gîT¶¦]À'£ |¾2&L1$è zFÜæPqÀNeëYç$Põ>ÑE~F_¦tšòmN?ìTT (®nõˆn ÀÏè+cƒ‚¾*n‡Ñ—;•_Fm•tÂ%”£¯Œ S ºœæ‰Û›J¯×;­ÌãéMãaÏÑW¦ôXT¦|“4Dܶ=+p§¢òÑT%ÇÀý´ÝxXàsô•1aб™Î©ÏüKõŽA;å•åô hN¯^Í €¿ÑUÆ„)F?¨oŸÛ0N¼~è›z°r§¼Rœ×çÞÖäH†-àQt•1aŠÁ?uŽNŠKyޕ׷{+w**{3â)9Ì:g ºÊDo þ7 ¤‚© @j ( ¤‚© @j ( ¤‚© @j ( ¤‚© @j ( ¤‚© @j ( ¤‚© @j ( ¤‚©ùÿ{çê6J÷îIEND®B`‚phangorn/vignettes/movie.gif0000644000176200001440000055210413201424001015676 0ustar liggesusersGIF89aôÿ÷//ï__ÞwwÖGGç¾¾¾ŽŽÎ¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿ!ù !ÿ NETSCAPE2.0,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžB¡¡Ÿ›%¦¤—¨§©–«$¯#¢¯¦£­}º( ¨¸¶¯»¼Æ" À ð¶Çƒ½¦À ʬÚÒÓÃ×Å·«ÉÝvåÃÌ Ñ'åæuèÊ×ÎÜöïðtÆ«¿ÀäÐöò9g„àuN‰(°É>'ôn‘WâA­!à€IœèN›¨u..ŒF †:vþ³”„e €k þ)Ã×"bJ-+«‰p à¥¿u Ȥ‘ÑÀÍ.Ôö-Hpíe¨KpÔ‹®‡Œ{© ML 0¨j…"VSs rFQ²e;êl7W™¦>×1¸èb*ܸ { õÀYS` B¶;öoƒsGŠ«ûtéá{U¼uŒÔFƒ°Mó%á—3—¯-X>¼`4ƦOïh à0ÐZ›_@†14vÕ a.FU÷6¨} ái»™qÉQDW$mp®U˜©@hRºu©+á6Avéør¹ ’noñK0>Þ©ÚËÜ·›?ˆ|ç¼=Ô€?‘Ô_ÿ‰þ%ƒ`¯¨ßLáÈ„ZJ'W5SsOT.¡v)˜U”†”1Ôá„×Ð!9'þ0•л奕‹áÁ£婈Bmëì8FX­½P”Bb‘`c‹U˜$K¶ðá“d|æ$ 6Q)ƇP¥Pš–c|H_QL‚¹%qç}iæ@šWÑ5]®IFXÝ‘$Jr’±äE¤˜§Q6¨àŸf8À˜š„’ña–‰–±hqžña™‘–V6•JŠX¦gÉ©°}Z%š¢Î Lœ¥‚1œ ¤*FŸÀ 骗ΠÆI¶~ái®]„Êë#ë¯P„…*±W¬Ú*²YÀ "³XÔ í¸þNk…³ÃZ›„¯ÚJ,¤ÝJal¸S(K®Øž…´ê:Qm»EÈ›¨é‡Ï}Ê-ÍÕ¦ùrú­½r±g/²”‹«ãú pT$’££–æÚ»J«²F1ŽòfZ/pœcTkÉnVÚV@+oh¢¨ïêPGÞ{-Sé¬h7pÜÜ^%\óÒ ¦Š¹ZhA•¸_1î­%϶=5 ´À-&Z¼ðdZSIäÉ×t5šÑ¶-pl».„Áä5·ŽSä2Ý0ä6BZwéÝTÕ€Eœ „_'wâ7À ® «â ¹ ê,Ë‚:”^>çþ.¬Ú¹ç1ˆîs“§Ð°ê3¼¾‚ݰÏ@Ï×(^»‘]C}^F“ï.¥áz}-¹ðÓS¸Þ^çŒü •ÎÀò†þ¼ »–ÐøÑ׳ý äíg÷¹ïB‚u’oÂ÷ï«~ö&™¯>ìËÐf¶žÃC ê×ÿ¹üÏÓß Vå¦îÝ)üCži ¦ëÉz $•ðh÷‘î>Ö³`GĄ́v‚×A8+ut a>x¹ê`„çRárd×.H2Ê`!Ý`¸ ã脇ÓrÖúÕ’°àW@œt<€X® ò¡¨4غ< Š?»ÚÍ>Õ1Äq9©þ@î%*ž§ŠV$ã;ã*žA…B^äWoÌ&™g”ên\p2ÓÃ%*D>£×5078®ã‹!³£Í–¶9+x#ÀcSø0ʰBúÔÐX³` 0Dd#IIBÆJ}艔kJ‘–ÐÈñ ‚(0Ôá”ÐÊþäq€ I®('Ižê†£å57Áò|òBÜ0¤.a÷Ècúq¾dÕî6ƒ~Aq£Ä!³N9^¶äF‹$±:¦¹nZS‘V×­x†ÆjŠÓBêäU4éNunEaÌš§ ¶óÌù³Tͼ?¹!FðÌŠš8¸×%±¨4[i•û ådð‰ m¦Š›óËÁþ+3ªQ8qÔ3S£çGOÀ±àr¤0€›mÚ‰R„Ípl©Jª7¤9O¦4=ZœdˆR•²†˜#ðhO¹¦J ’@wíŠW2¼Â6V±TˆR—G@Ó¼ÀD¤P½Ò¹ˆ±Ãøiˆ*Ýø9 Ÿ¬ï,ŸFwEr8uŽ.Øå¨ ¾ÀuxƒòÜ(W”Åðt®[Ú{R€Ô­^ˆuÁñØZ°1öusZ•êq44˜èü5©­YE϶ÊT­1ý,dƒ$ZûE¶´³û%jyŒÕÆ´®õëick±Ò–°´»­—§[€î¶ñ‚€m;¿½F2·éäè©Ê”É—|˵…^P ‹>/9 "tYPP¦]F ýgíPsÏEŠvÑä]·ûÌî¦õº> ì=ž{ÝÌ΄³ÿ°no÷Ëßþú÷¿°€LàøÀN°‚Ìà;øÁް„'LáF…!ù ,ƒÿ÷//ï__ÞwwÖGGç¾¾¾ŽŽÎÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþðÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹Œ2”’‰–•—ˆ™™žž‘›o¨–™«©p´® ±¦µq´ ®¸š¿Áv¨ ®¸¥ÉÊmÀÔ® Ç×Õ>Òß.ß–­¯§Ôêãà:Àì,ﻳ¾éí?å +â&3 Ò4uùxìKI›‚ÂÛà ]B&·HIPM±uþ9è2°à¢“Œø~옠=MB¦©Am®4@8¢bI™3{Ý—-ƒrŠd¡<| 8zì÷¯ç3¦Iœõ¤@WG’UAÜ$‰5+²S/S¢’Šóá‡aË ˆíV©Y FjK7CEhrg–È‹Ó@Ë Ú~>yÂfá–}%¼˜1 Ç8öõYyMT½¯üIÖ¶³ó] ?ükúÍÐ8·nC¸ðº!ÒÎþÑtä OI Ým£÷³ßRp€ü,q FÊî­.߈º‡?}—”ÉÜ\•V÷v 4·€òQÅëºi?/ãïzöïÊêÆ¾‘Üþ‡.c%°H)ù×Cwde ÜW¨O îÀàt÷øò/[!4_…/¤×\p,%X^† î`ŸƒÒLÀ‹+uhbŠ?Œä–aHc~PàŽTÔ¦£"IE‘I%fd+fðã’UH‡kPVÑ£9ViÅk®,EÁ“Z2©M\T†iÅXŽæ™WH'˜lZ)]™qnYXƒu^‘žayjfŸZ40& YŒä%¡U(àŠˆ^!(ŒZ1Ri‘N¡¨ŒV:Wi:ÅHzjÄXCŠš§|šúÄ£ê©ú„¡®:QQ±6Áj¨µÖØe®K\š)¯H Ú*°H€J,—–z¬¨þÒº¬ƒ>K¬Ò1kµCÜŠí»n „¯Þ¡m¸>LJ®àžËª”‘Ó"Š |X¥±ä8'/•’Z/{¸0Е³Ü»d³ûjÂ=8ňï]¦Ž 0 ŒuçNÎ"0”Ô¶@©ÝŠh3z¨jzš©à/lÚà’½<]<ð%à¯ÇCDIÅø&¨éžÌAÄ4+àÏKÙå첑¾r s¿ô¡Ba#£ÎšŽUZJ?ÆôN{¬ÀÊSGM^4®F;Ö(ÓŒ©Ïha7T$²À­jL|¦¶Ð¸ªkÁ£íÖÝñÚzŸPѯˆ¹Bià%$Û݈›`õâ6^‚Ù,9 þŒS´æå"°šÀ÷é˹ïµÀá˜;:¬züùÖh³zÒa]zfLO6ût:qÚîùæØ”6áÂc@§ß œü¡®ÚÝ>oÁ¥Î{ФõQþ›ÜO¾HrŸž ã[¯d '¿üØ[Ÿå :ûû$l¿zô+¤?:œ((çÚ—ÿI΀—ñâð—‚YåíYósÁ•Ç@èO]ü“Ãu©¾…HÞ‚K l8Ñ¥7¿`Ðk%,€°ì‚ÕJO?NXdL[·Ë ´òˆV@mlÎi”$–µ4•êÓ÷‚KUïˆEûn¢ÖÄØLO/\üN C&!|MA2”–Jg?ÕgJ¼£$ÇdíFÔy,f AngŒ‹ƒ^¡Gü¸-"mÓ™#ŸãÄ@q…;$TGP ‡P„¼Í»`Æm˜2`›œñ¯³Ì²ë¤”ÃJ†‹•ä/!!L®²VL•pàa‰-R‰µj]U9G;R1V£|¼æË%¥òÌH 1é©d*«–üúb·Ù(]Ò0d•MʨêµÀ½ØÍçRìêï ò7÷À¼ J»VÝ µ:ÁÓ—p ·TôÀ+@°Ý¼‚MŽ¡<ö cwp‰þHͪˆñÉÃ` zyLÐà0ðĵ -•ƒdð:²”Ñ€ÚN2Þ 6ô¤@É@uÕÒÏâµR  iã]¯}S³ThÍ&P güS–K:Q7­urÎc¯š1¼hÐÖ­Ig+áŽ*åÀ.5¼.þUë;橊Ÿ8p‘“qã €ö’¼B±åË6h6Ð4EÔÏ|²~LKB/ê>Tç áß‚×~Ä„GSž^Ú¸÷@ÚÀsp@™?V>(9oæ„d'ÝσÓ2È͈[=Êõp1ÞÖpÜ=É¿x/ª¶vA¾<’ÝÓÙ¼ËfOlíÝ ùn@ê íØUAÜéÇDQ½LþÆÞ=œEO\ù8„bÔ©` ð‘eÕ`F åPcÓƒpYÕ!üùgBU…%h"wèÄy^ÔŽMàiX`„2_&ZÔiøHOJ¤há_15XŒG"i<@špž‚R†Aa Ó¸˜å¦ —Š_~¡¤ »±U&4¦ßšfüx•p–q& ]€ec´9‚^·ñiÆ–m&(ØСh¤ˆ žŒ¢q<|EŠÆn½jéü-¶)Šjú©yŽšPUšÚP•ªJF¨®– š±ŽAe­`Þ…«°î Ƭ¾‚‘gªÁRÔžÅj¡(™É^l³[ í¨þN«Ån­Zk…mÚbQj·WT n¬Ž[E¯æJñlºRÜÊ®‡º¾ ºò6±n½LH‹oÇîÛIJþhhÀJèK0ý®ó×Péùªh¶:ˆg£|»®ÅÉ|Ì4°Ä,ð(¨Á9ôÓšýò¢,™Ķ0ŒÆ£}T¤\ ªq-³PÉÊ)·ñÌ'ûšgÏœ%[ϽÐ@,GÆÈ°ª¶Ñ³ˆ¥àÌH÷r€ÒN¥,K5ó¹›TέÜÕG½±SW= ¶Ê^Ž ÛÔ hœu¦J¯8³ŽQÆê•§%< ÚÝ«1ЪÄdD`Øug5¦…#+Ø}4{ÝP±þì öv° þðH>çÀŸÓàZ c—^C—€«ºê4ØFìé°Ë0ZÑ(t^» “Å@…šïƒ^ ÄLË$¤.¼ iŠ0wÏ¿‹ðúò,€ AÙ¾Eý c¢ 5Ò­oo¥öAn€¨â>}õƒ”sí»¡ßB¹é—à8 „ÖA÷3Яÿ›±#]ú¬ÿ‰/Lj õîg: O/¢“¢hµ¼æå€?ï«×yx0ÁåñO¿ž¢Â‡z•.O´ †À˜` äÁ ñA!´p_  ßõ¨ Òà†<\Îzè/óql; cÁ5´Doc÷¥¾IQž8-\Õ„X¯B²Bcó$\¦ W!Öùk”ûax³±ª¥`<Å*@"j1 !OŸ" ÒÌS$>Ý¢öwŒt¢%èâ».„G·±€v¥+‡åèÙðC6À¸ ÞOjÝ.´r?N.È©çÔùÔ'cg÷¶Ù£D÷ ãkÆá“XÇnBb ö$Ó?‘îbª<)ã‘C/Èx´ðÏ44`À.*ÁþÔßhÁ×J:8PWaµÅß‚DЧ“QVDÕCb8D‡×Å€àiÅ€—ˆO4˜‚D)³€L Å"ú¢cŒÜ¥XN|7"±Þ‹©Ð6PC>V^Jl× ÞÕÀ“IÂ"“>ü7 Û¥…eCrÛ—bä˜B—’)ÆžÎkjŠáâ Ö¥çfŽ``0vÞ)‰€‘اŸr67‰mŠ'y¸¥¢c¬×ÓŒžñ&4”VjÆ iš†uOzzÆIƒŠJÆv‰š:F8™ªJÆž¡ºú'4²šƒµfAj®«öÆ«¬þ¬Â‚Ab±`œ„+²RìÊ,á¤ú¬ÁþN«±Öfql¶ºâÃ-'Iû-ÑŽkÅž­šE‡±ªûDO˺k„²ò6ëk½äʈ/èîû»þ:oÀMÐKð¨¼Dµ #mÃGtè%ÄFÜJñÎ^LÄv·éàÝ’&"ŽŒñ"ÄR6âYìp$Û  \É2åÚS_-ÏÀJ ,€Ë|Òøà:È:5r‘Ñ Á ЇX%X¿n7ÒŸóÓPsÀ H³¤•ÅLÖfùÆu× 0Ñ$Õr­£€´8C­Ø`$–Ð?)«S–€4Ð €’ŽÕÍÏ•ŠB“ò¡8'Ðvf‚ËÒÔsËÚ“ þ’¯ô¡…`ý-ìo*Ü31=l= ÜðÀΫÕ-­ñ =)Pª ´ßƒu í.‚Ù¾»@âp `~ö˜Å³°™xC–|]„7ïB—‡®yžÖŸ°'€ï­½À¶Ýk–›÷y3_>ïê£?\áë‹& П?Oö×nèý#89C¸ü“_û\Žvuo34ÿüWî5u3€`óz"<dÌz'I öÀÎ@ÍÔH1ÒÀvÅ“  ¦1ö€ƒC @H1ì€sáPØ0G xÛŽ·„л€}3BøžÒŠU?L 57¼W½F&Ž4 ?4øØ4x¨.ÄŽÌyþÊÍ3 ~‹6¶qo&ׯ…Ä„Eƒ œNÀ)øA‰që@’öº¹A.Hȱ£ FE„èA£#c¥Ð€*^ÿà\ãN)àÍñ^L@ÉŽ‘¤“)ÈOMÔW ÖXǹ%(š#u‡ƒ::Ç=>êd*ãtD°1W }·Ÿš©)”‘ÙáI4ÙFªÔµøczVYÁR…7¥Òbß";_bÉ‹ŒÂëȉ81%s#„xË,ÆÉ’ÍüN1cª ÄîJQ }Ï4à˜€SÕ7«„HRC’Ö¥Ú†“NuReý¥Ú>Q¡P’f=å3˜¤¡,ceþ7‹éž€*s­ëÜ(*º¶®Äb¼Àã?Gg#k(²)R ANåé Ð*/ ά'Èß¾v¹9×ÍÕƒø"c,UĽ¦u©ƒí#zè@ f³± ¤dmÇÉ:F²–A3  r–€ýlbP*Z0¶´H j±ººÕ¢@1®UÁic+CÔj6YURcÕZ‚ó}r}ó`ê~[¾à¶¢˜ŽAÜÙ½ á‘À/Zñê»?â3¡ã>®ûѽÞ¬lµž]§+¸æ½´tèåßmÝ¢ÛiÆö½ð¯|çKßúÚ÷¾øÍ¯~÷Ëßþú÷¿°€LàøÀN°‚Ìà;øÁŽ0&B!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™šG›užŸD%¥ q§#ª@¬«¨o®"² :²¬$¢¾¹¸°P¸§¥ž «£³Á*Í' ί³ÂÃÄÛŸ  ˪æÛ¦ÅàãÆÀØÜXÑÙ âÕËïèÒ¬¥Ô Þ郷%š«iÕ (ÈgnÆ(ë0Õ`ÁvÀ„£8/E1èÎ┹þLÍúŽa ”ªIÄ8ÐäIiÍ=Pp\Ê—*!ǘ脇8áOâhöâ4ɨÄtöy$ ޾å¤aG>"ñÖИòÁí¸^‰Iò `…õ¶#QYå.†Ú—c(Hš õÁEæa¢fvkŠA# @&gu††â™w‚ñ“jÕ§ÊÝõ–Á JÆ:‚š¨¢eRæ(¤h (Ó£”’ÁR‘™Vš[§iÔ'¨iœGêÿTxjÿ`º*ou÷*kÉ:«kzk@êºë@Âùk¢ F^Æ‚aj²\¤Êlo¹úlµþN»ÅZ|Z;E¯Úfl·XÔ',¸R K®Ëž+…³êNÑj»SÄ ¯ÕÎ Å:¾ÚË·ú:!n¿þ~ 0 Ì»'ñnÂIÈË0õ>lD®ÁoÅD™€­÷`ijÿÀ’mª2Xà†ï ›×#7P²Xy‰Õ­œñ†š´+ó@-°¼1zÆz¨\5·©·s , ÀÈË `äDîj. ÄUã2 8€´ÒL/ç5ÑOó(óŒžð€k 8 uÒKí¶× °@<àÒ‘(¯*››]¿ýu P€Ë.)•áR¬]~³À n¡6QG8ó«e³€âã‘Ûmãçþ\u‰äØkî½a,莔—¯J–O+äõ2â/žÃédªÇ#¬f²A#~Òð¿ZjΨ‡üBšU+šìÊ»0š,/W4nãDïÂ[£ŠV=Qù$¯½ mêwè8 ¤ù²òiâ<ô8o¶é)0¾\¶òßÿ Uã<~ù-Pï´×>d.#˜ž Ô‡Àp¯Üi =ÀSŠ!°€5` ühƒÊï8° öXƒ9@XÇ8˜ñu „;øVÈHˆèa …<ð ÄXȃ2 3Ýó f¼A‡ýªSqª¿ˆÐ^ö;Þ™¸> ±]8§¦òí`aêÊþ¢×l¥/æà‰Ý²ýÐôØ}èd)‘a]“Œ’)È9ƒÏOTø,:^ 2b“@·"&ZËxi›fµÃ£g‰*,p'ž(*Ä,ÀLåáÑaqw²äm°',å‡KŽl]’ĸFÆ€8fÄ(…a¹5±r:(cÉš!¥­ô¨Jj[”ƒÇüÔ.fyã«8–6ÞEux«\#ed¼`2>¿MbF·”£’¬±d"ÊENä›ò¸ (”5q^³§DãÀ)ˆôLóž$h'ÒØ–€¾¡o§„£@á8ÈKÌRúL×üÙ8W怓#ÂÛ–PQI“ Gþã6êµ ¢ÇŒ&=MÝCË Ë8À¹ZüÆn!ZðR‡¤¬Tô',BiXÔR|”lINxEÓCP›€t.}À”Z&$@S´tL:¹TÌ  5 ©FZ ^ÆH¢-ð'àSK^ªr•¦ZUÀC#Øs _ÕÆMÑšÕÕy’|ûíì £ØÅôaDå«\ñé@ãH0W<, ®ªØWæµ±1À%d_ ÖÉ ­– ëc3ëײp6o×gUØÑª€±¦=AeS‹5ɲV5›}m%۬ţŸµgl~5šˆ 8p©1ç|ëÅþ‡' 5dàã}æA?ÝLT!˜C€ìe‚^R¡„9Ô׈#½2UrÂ!꤉fGОhƒ‡þñâ‹GÁhžŒ4¤˜Ó… å¤cŒ<Î@#(‰D„îX¤zÝe ÙfOF±|80%–U:áã´ÕÖåWZ°×ˆcNAá”.¦IE™¼lé¦Ð…ÉÖœV,4%šxV±]}bÁ—Nq¡…Jqh¢X …(£O ¥¤U0ÐΤ”Nai˜fŦzúĦmŠúD˜¥šÚªªB¦o­2±¬±*1X­N„kºîº@Ñù:ÄBÁ ±Æ"l²Fþh6³C8 mš57-gY{­Ùn+D·Þáh¸âFî’žë¨êöÀn»; ï¬Î›C½öÞðj¾8ÌÊï þþkC¯Ï0XkC Ÿ ·ÀÔV ³ S˜EŒÂ¢fÚ,…ÇO«ƒEƒdà1I‚|c¾FÆÈ|lA 0À ( À³åy g#Gç@13°À(¤ô/"I$£·bà€ÆF#´ÒXgõ¤V…r—gà“Öd—tE+ yuݵ§!s`§Ö$`³ ÈÌvïpƒÑ.‹ª²‹±í@±«dävJ_?©'âì,Ò}øåȸ©þS^¦-QopP†‹{œè™‘¬ ìézF5.£@?¬í`›—òÛŠ“;ÜQM`Ù3\ n±Ô¹ñœùG‘›;¼Áað;4/f´f™ùOÒ;/¦c+]ûò°{0õÂÙ[€Z›êWþZ¢²ëSOBµëeg…:|ú8ƒ€/øùž€%½ƒ¡àHkÞÅ.µ<ù¥@^ÛKÿH`'ȵ+|+€ŸÀÎÇúì/©JAºv˜ê¥`_ùŸÒç«™[¡E€Ài1 † `Û•f‚üë†XKÀd<ÃB@p[ÝËMÿ@ÈÃTðZ¿»T±˜˜Á;%KcRäþSàA_5‹MùÀ_*& þÌb„¸‚!Ö À ŒrCˆpD¥ Ñoœ\MàáBS%ñRÁO‚õ¹nà“1c-\÷›?r*%$1‰ý…,Œ´ÍŸ²øIN’rUH¤BÎà0ÅK4ä¤í|1kmd*d9LtL ‹èØŽ2):–.–.˜eŒR¹Zòò q¬äÏ€½Élh5»›Ñ@M«]­t\.÷‹B6‰DOóC{6‚5g”íœY»Y âÈÍ CGÌg¼É‘9HiæDgéšx‚öØ-ºE3v·Ê@0 ÀÙZd7Ølhq&Ûþ€v¸Š:ÐþLD§Ìh˃‚Ò Â%+[éží­SXÒHߦGK¨2p,LïtRQ^Rt¬ÃÅ9LÔ¤™/ñLIç1ΦsÄŠH_ÂQŽªÄ›E1ª$‡ÑûdÔW©M[·Ÿ®Óª[©»E´Òþ2 XµÖº‰-Eaº­Ý~kE¸âRAn¹à^Šîç®û„lÞº»„lÊ˽ö¾›d¾÷îËï”þþ‹\õ l\ƒ|pa Ìpà kñO\Df¦YD›¹iÄpS¥çñ |á6éÈ9°‡×@"£ÜÂnìr yFÊÖÌ0Pˆ‚É-Oôà“1xI(\ñаòg$íÀÒL7-€ DÝ@RO]uÂbí¦ 1ƒìõ×`W°¾ÂËB¤a§6U[–$ô™amÆ $ ÀÝxã}Àw/à÷ß ð·à8½¸£ÖužŒÂúÓ¶™·Ö9Ü"d6vã¡HDÒ~°Â•@×þ7“Àx€;þÒÛRÊöy@«).ÂTUíçQ—§ÏúÕ ÇánjÖEh:‡î‰u«±•ç…²÷>‰¨ËHáå‘“¢­äÐ¹Ûø™)…E€[Ýêâ|BfΪ@<È⯲*Øœ¾ ¢Å@ðû$xNòµô¿µ{ Éæ¯:å,ÐÙûngô¤Ox7°HÏ ö<ÌofÜ˾\F>Pkdža_ ú‡²øé@€;_ªz`@ˆ5@rëv4eLä× ½¦€¨n.˜ ½°…,`3–Á! .ˆ®‚¬†'¢{µ-zí‡*P"@ˆ-#Jêr&@ŒSPÂg=À‰ þ 2¸Å$>ŒXV\£ÅÄpWãpÄhÏ„NfÛU³ÆØ1<ô±»H rŠ–òaÏ–—¤D‰ƒiÑÜ!›w‚=º©7°#6ù*E@š Þ´ô7˜Ò”WkZÒV9‚8~ŽCˆ¦ç4@0ê%ý@KØb"Ñ-ÔFÌ`²²dæh§ÎEb‘†¦IMb¾r‘9H¦29É¥f¢é™Žk¤†‹SàoyS@ÝÖFáhÞšË7»¹KYHD’[ ì’PHxÒâ,>Ëå!=¡¡‘xðÛŸ$I‹ À‘¾kÊì0Jfæsq,ã§þ#¥"³‰v3&íD/½ Ò:J£Ü¬„à³€jhyÖ¨' ð©<=Ä5K€&@ð ì9ħ?å‘LQȈ¶ô!Ì©€@ò»:³<£SB>b祡¦…Bîä§Gññ³Ÿ)ɪ]Á)F*Q+Ý)©R]PMÏ„ÐE 4e«C '%¬F¡AÍ^2¼Ú#±æÏhý« Þ*Øص°3ð+båÇÄžL¡Ž5ìI#ëÅR–½,› ëX¼ ã¤öŸ<´Ï¾O¥ ’Ž‹ZàX-_Q6N ƒymMšzÑ‘Uõ ¹…Øn PÑšõqÌÄYE[ÒÓrîp0 -mH­§×ƒÎV³ØÍ®v·ËÝîz÷»à ¯xÇKÞòš÷¼èM¯z×ËÞöº÷½ð¯|çKßúÚ÷¾øÍ¯~÷Ëßþú÷¿°€Làþ†!ù ,ƒÿ÷//ï__ÞwwÖ¾¾¾ŽŽÎ¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþðÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ#‚‚€…)ˆ†‹"Љ Œ“Šˆƒ’ƒ˜Ž”v„¤š’Ž«¡¢x¤•š¡«®~°­³ œº­·z¤»½ƒžÊÃÄ^Ï—¨ ÕÂͱÐ_ÒÌÚ½×¶ßÝ`»ÂåºÈ°Ï–¡ŸË̹èFÎáù½[nþ f*, ¿)ñ(4GÄÁf`0-\ÇþQ"RX@±Q­q <  Ë $gU AŠ€B|þ¶ì²@#ƒó0ÐØàS©bzÎÔ’;®DšT#SyFøšêñ%U+J \M¤ìÒSûʪüêåìX ˆ²£@áÛ OeÎ¥£5Õ†¾ öÖ·)ÃYÁv¿;«(b:î ü õ±È ˜öE`ùNdlÂÞíüæóƒ¼×Hãù<.°j<5jz­‡Á¸Žiãq«[ϸܽíÔ-2øÆbß÷Sy¥®Ï‰â})DgOPšl©ñYv±i”™ Vp蜈bq›”f1q‘j]¥Zô5%¦Vôµ'§RüêVj…F¦V‘g©N±j«S0F¬Np7+­L(Å&®¹êÅ«—þÚ„¦ÂÛX±LˆŠ¬¨þ.›jÎ>{S´G0Æ*µEÈŠ­Üíº-º~K„RÙ‰ûC°æAlºêËîʾÛC³òòm½öN‹¯Ö¶þæÐmÀ úJ° ä|º Ë€n Ϥ¿€Ú¤›V¬ÂxfU¦± -þiðÇ&ôÅfL’Lš0Qä¢Ê¼ §Ë0ƒV…NVs2ãÕZ (°ÀÐ 0ÐÀÑ$ÝÞ~ÛàzØ‘*5  € ­ÀDGb®ç÷èÔd—]ê|°>,Yug5PôÐ (uU`¶Ôªl© !eš‰Ýve౤$}´Û p7®¹NÚV¨‘;êë`SþYªÔ÷O5¨•{¹QêüC¦WpÛ¦O›ô¸ã:mþa•[]0iE¡÷×TCd®%û‚´K¦AXØ´>`%@Âδ ÁßjÊyfLx,É?¾Òïö5ïš]ÛŒZb®c£ø 6ªý…B¼³ç€‰€Üú´?½ëoVÂÙ;Û_~õ[>ÿ5Ó_ÉÜ¥20Lô_ †#½†ð ü÷d´‚„5Œ{ i` F0 Jt&à ¾ùD<°×Ì…Á˜ ÙA0 EP ÖÀaÂÏa³xc Áþ ¨j·­@J"»e,™å-ȤlØm$M:öRňô åRîØýŒ³™ ƒ Ôé31s)š¦Â ÎZ õ1‚VáØ4Ð…¼/}Ò«öÌØ•T­9HÙ€¢+ŠlÛš±)tEÑ`Gõ²§î‰¨6„•ç ®¨jŒm0’Å\b.Ç̈ޒøk 0èCûB@¬øt"{ >!NàZQã͵mÛK›[ÑØ¬½ñ ÎȳJâ‹ì•E:Xk懌†>H9uÍί’®}ðçîƒl>ˆ;ù@ÖÏ‚lZ}óîû¤Ï‡=Nk3”Òo_ÔÔüûA1ßS³˜à€cZþè„},!k¼OˆGo½ÐÞËD¯úî{Y¿L¤T(ÀAÀKðó|„½ / XÃF\ª+Ä; FÅAð%Æ=ÖÌÆë0œFê ò Æ©›šÉ'³À A±Ü2 #ÃìœÌ3Fé X ™³ ³©Ð³à|rÊ~í©Ž 0Àѭ喇 ô ƒ&pÀ @ÑfÖP§Žc½œ‚q $p5Öl' À 0ЀºíÜ Y˜}‚ÞÝ ¤½6Ûã4«Åœå/ 5?å7ài#Àö\"eÊáÖ*.ªB;‹òŽþü½Àe=9O«ˆ¨÷j]ÅHUåkiÙé³Ñ=‚æ aÈ'ò8Óû¨´«c;ã/¯>Ô<¦ƒ5v|X›ÂF¨´Þ`^É9¤‘†’® Ð/îßëiÂ~§hǽóÓÏé{‘#-^ùwNûBœâ³2Ñå•Â?¦?‹`œ­0@ÌrrÆ£ª­ ]ýËg€ÀœÝmx1h`ËR‡ b¬W‚  ,¨°,@iÜà¿æÁÁñ/t×ß,†µÜMj*Ha¸JH8,`9|! d¨ú]ï‡D !ánè&ÂèÐ< Ëï~ñ€¹…­Bd“潤J2IÆo8ô´¢ýÀƒ„+þÍBhÊØ M qÉ:$TØ`£A[Ø€#BdV G5´$À)%)jÒÒâÇÊ|0ŒSÄc€ÆÓ$J·äH¬¹ÍiÀ 7;ưdlÒcm,‚¿Ømi £*²@0äˆÌ >J‰¦Qd’L3!`ê1ã¹ –‚ÉbL†)´LZ,‘IH”m֣ŨñÖSÈH„EºL”XœÊ>”‘iF!‡±Ë%€éLüXï~Ø T»œ³ÝH`‘òæ#L ËPò¤V(>S`N³XÒ |Va,( );í - c‘õ ɆRÇ8­d‚þ!°2RZ´–ï»X–h5>Ý%šIa(x0*ab¥tçÔRL®ÃÒ–NT.á¼2¾â>«Ô´¥ !J)†º¢Ž£§?ù)9TsÞÅ©OuçJEŠ…Ö ˆ½(UµðŠw¤4œJ¢iç–J½,¦ÓH-ÉÿªZÖõÅn äYk–È¢“ŠO=rå*T£*PÒ'¯ý{Ê^og4v$õ_a X¯’ ¯úi¬YHÉ™¦viYU*ñ€a®›IòîªÙ¡¼«-ýú3ÇŽ¢iÕV=O{¦œ‘ôt2‰¬mk¿Øeö°À ®p‡KÜâ÷¸ÈM®r—ËÜæ:÷¹Ð®t6§KÝêZ÷ºØÍ®v·ËÝîz÷»à ¯xÇKÞòš÷¼èM¯z×ËÞöº÷½ð¯|çKßúÚ÷¾O!ù ,ƒÿ÷//ï__ÞGGç¾¾¾ŽŽÎ¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþðÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼ è÷÷€3ƒ†,…„ ‡Ž‰…ƒ~~’ ™‰ ž†ª¨ ¤°›§«žª‘œ»˜µœ¶¶¹»~š¾Ày¹µÃ£¥¾ÌÊvÓ“´ ±©Ô€Ã¨Ü™»£áÝzÇáÈàÙ®æ·Ï»¦ÇïqÓ »½ß÷Üä£`œ? Ö* øF^´¡( ( @’º_­zaPLÖ¿þð»æŽH[öYZh!ãü”†ÒLG,[F ÀÞ/Z?kŽqè“ÃüXDWR¨•ý"¶tP°@ER’Qy©e¨ªÜE*§uLÇ¢M9U=PrlÚ²`ˆ†:¦`¬VöÞÂý5§üì½6gƒÀƒïȵpx^bG5qîo¦ƒ—Ãûø2ÛÏ»ñ®ÞÍñönvÃgSx½‹ôο¡’:D #œþ´Ÿ ×u (]Vê°œRÀ@}ôsY6ÈÂsæ£)±€RYÒ ž LhL,•N‰8XÏl‚SPAq“!Œ,¤ÇªUh•[mƒ#3°§„4Ö¨€`DÒÔ ’6ÜV@ ÆÂO2%%†TÖ _*S”M}™f˜4øè€MÖ˜——.®É¦ ý=P¦kOÞIÅqqÞègÚ7¨UUfÞ¡MôĨ”]ùh·…5)*-xiUiºéˆ}Je–Š:Ež¦žêXªRTÅ«MD k•:k¨ÞÚD§º:j¯JÈ ì•»D¦Æ*Ák²HþüÊ,¤>{WÒlµDÔ‡íÂnD´Þ‘k¸>pHîΞ«C·êîPk»= /ËΛCºöÒÀn¾5PËï ¡-ú/ P=4p ‘Ætp ¡õµ° þöð ‘ÂöÙÄ)Ü4ÙÅ—à¯>åuLÂq¯JÀ•À"kƱu•²¦e@Ê'*( Ì–@ 0ò²B‰®šj®m© ÏºÀÊWôÓ»$p4ÍÒÇ™ÃDÚs $€@œO#À3 PÂŽaBEÝÉ|Œ ×^C6Ï%ÿ÷i¢ÐIü ¾-57ØüØ á¦T)|ÁY˜h=8‚t}€klá8ÖhÃèmþ,³Qà×اf&•khÝp4É ¸4“äv>j¥,tëß4%€ƒM» ‚ˆ”ԙ̑wâ-B¢¨3XdŽÆëÇcá¯p"ŠÒ2úña:Ýüò¶Žì9ŽXºz§{|;Šs’oRñë Ï£Ú'˜+²ï(h‹1];šõ£a ï¸)NßÁƒ:£»Ÿ M~î: ÜB–~0+ƒˆÏ<× N°2ªq™ ö5˜â0!;|v¾ðN,€‚Ð ¦\—qI-`Ñ-i‰B=£ Ã*@4ÄÀbJð®Ó¸n‡Ùè¡k~D4Àƒ”Zþ;€5\ω¹Ã ,âV#¹Ñm!Àâ‘(D“e†á« ñÜW°ƒŒrÛŽ¸¤,`‹'°á®õ˜ý„HQò[×ú(·#’b‚äâúöbBíÅ®i‹4#iÐE¨ÆP…"Û" ›=Òl «Àx!KÆï$ÌóÁM¨¶ÀAQsEcÒ»†+Cu4Ÿô& íEId¥Së`VØkj4eyußY%JX Fï°=h*ËUŒaõ}gÕ©_FÚÒšö´¨M­jWËÚÖºöµ°­lgKÛÚÚö¶¸Í­nwËÛÞúö·À ®p‡KÜâ÷¸ÈM®r—ËÜæ:÷¹Ð®t§KÝêZ÷ºØÍ®v·ËÝîz÷»:ˆ!ù ,ƒÿ÷//ï__Þ¾¾¾ŽŽÎ¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþÐÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø`¿Ïûo„0ƒ‚ …‹#‡ƒ| }‘ŽŒ„–} Ї¥™š‹œ ¡¤«§¨ŒªŽ ¡”±°´¾²‚Ã||—¿…³Á »½ÐÈ~ʲ« ¡ ÕÛÒ™¦Ç ¡¸¥ÝÉÅáÆØ}çè¾³ âñèó ÃåøÒú\öìŸA ìâP,àA9Í$èðí¡Ÿ´i 6ÁB‹þp𗣃OT²EÊ!È+ ZPU¡½qÜ Ñ|éåÓ°NÙöj7—<±ˆ$¹ñÐP¯ÂIEš&A{žF½Ô^Õ0"ï!²ÀÞV©c¿ŠA@t¦…†ˆåÈ«Z0eFƒKÔk]´w¿„Ú@€¸P}c—3ð—˜Ø&v\‡AD$ |g)PÍœñ@ž:tg…J›¾Ãj͘WßÁñ@lÙ§íÙÆí§ömÞwêMŽç)aâs.#ÇÓZãò:ÂÏ>—ã“Àt;_oÑùv8­'~}|œêÚͣɮþdïíՄߦ<}6¨ï«Q®?Mk½ýþa_€fTBCF  ìQ”V‚ æÐƒnU°é)á ó1Ô‰,î‘c:ñ²a 6uAˆ ã×T'Ò€Vƒ\hˆÄ,ôb41ÆÀ_ àx£DŠüu=Âð6Þ˜K+&úI’3ˆ$ÞŠäbOŽ9Y"’T²àÓfJÖ¢= Ù%/vQæù5¹%(iˆ֎½¹BD ´6'‘…±t§yꙂŸÖi¨Âm©è¢S„•ÀoNa¥•JñT¦W,Å©’øiÆ:ئFzUªQÜÄ*›¾ú„§²:j­N\Š+C‘¹«VþºÄhÂk±GЊ¬"þ‰ºìº>KD¯Ò!’tÕþpk¶A”Ê-Âùú­ÍŽ D´æòplº;(ˮ۾›ÃS˜Ê+c?öêPn¾8Ë/ ëþ[%¾¬[†§`¦. ÇV~ ‹y©g¯ðÔ.þVl‚d[ ¦ñ ­‰+N?œA£˜flr_àñÊ`„íüAuba ²Í<ÌpaMâϘyÀ„ J”C¯l™«/[€óŸP1]2»pŸ<•€DD5,pu¶fbHA^pL`‹=¶Õì¾f–Ë;r 0€Ü"0@Ó!¸!ÎõîC2=ènwØT/}v¡a†µ›þµìáÛ ø0…WšvOkÑ̺ÅÀ`Àš\M¹hé?wà³È*b0Äæ%8†fxr¯;G^~Iù‰iO>æ"Ð$û <΂&j˜„Ýmpôàü˜õZTtL„“ßâ% úIF‰Ÿ}ð;Ùê·«›ñ\{`êF’ßòÄ€<„œ BKž°€Œîûz_ZÈ•©äï ; G–†DŒI¨I X€þ9g`I…Sõ  c\  Æã´¤%Pî áß>9çe q¦‘^õ¶æBh>\QI¹? OšIbMìN¼ƒMq«¡þYÌæއMì?Â6¸3õka—F$>ãØ¾ÆÅ Dmþ M×A½¶.prt¢oøšáqUzœ ],(5°5qŽcÜ"E€Â ªvu¹"ßæ¨³I±‹? ÃÄ=¨’†üÀ÷¨„3Î`g7#˜ž,Ç¿”±Ã¸R˜øƒ;öo’=*¥+qÅT²GìÂ-90ÊÑ’YyËÀ* TJÔ!•8ã†Z9,`âM"1zX-P:Ñ€µ[Póœ0€Åyé˜ý)¥.—ˆÑx¥™ñI¦Á¶`H¢±SÐ -òL(ô!jVdScú^*{-)¦þ1ù ÙÐn˜A0Ÿ`€U)P ý‡ðš`’‘n¢J(˜B³N’Î$“ð] ªqÉ^„Ô5][Úìr„snãŠjišŸvdK˜á)åÏ– ÕŒ™žEæ‘ ßiŸ¦ &¦çŠ>„ªhçVÎA¢‡Ee¡W ‚”ÝII{>ØãƒÀ W|¸D€‚\mªÐuÜt¡»ê{ Q<©t°¹+DÛ´Ôœ–µ«±ûk*t;Á®4ail^+¦Q¼±K«b”·U¢™ö´¨M­jWËÚÖºöµ°­lgKÛÚÚö¶¸Í­nwËÛÞúö·À ®p‡KÜâ÷¸ÈM®r—'ËÜæ:÷¹Ð®t§KÝêZ÷ºØÍ®v·ËÝîz÷»à ¯xÇKÞò^ !ù ,ƒÿ÷//ï__Þ¾¾¾ŽŽÎ¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþÐÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø`¿Ïûo„0ƒ‚ …‹#‡ƒ{ }‘ŽŒ„—} Ї¦š›‹ ¢ ¥¬¨©Œ«Ž ¢£ˆ³µ¾˜‚||˜¿…´Á¡ ȽɜžÒ½ ¡¤¦Óʼ¥Ü¢•´ÝvÆáÇØÇáèµçâÕñèóØÃ¤÷Éóôìõ8Ô>‚ +á@ÎvmPçðO‚a&~«h§ADhþ–UàÇñ>m!«M(` €¥[àJ†‰(Pп™Y[%ÓËI’6-4ÀI౬õCsâ¡¡ÃP*MJué}5ìi°°¨MŠS­vi*«B€aÄ,œû'Ë´$Q$P@–#xm¿&an1¾wùæõ2(h3‚Ód¬ì`/ÓZ˜Ûð±Ã@D[Ù²œŸÞÖó\3X5“žó32«ïDŒø:ö¬Ã`Û–V÷n;¢;ÿ¦cPñðÒhóΪ\ÎÇæt"«†þ&8u9¢_w3w{œˆ@½«‰è[üéæÛDžþLöökºÃWw~òöÑ Ïof=3ïýþG†|ŽQß`…€W2àçc&°Å  ]M—H,PÞ…Òà_À8".VV`º <-0b(0†ÏŒ)¾@ ˆ(@Û0{0„"UHÕÈÂ,à"º %âŠüÈ„B’àà.î¨ä’¹86c$QºPa†/*‰ 0‰—“Ñ@Ù%þU9æ˜XÚ¥%`Ž­y‚ho¾™@°A¨šÚ©Â\y–iXc‚Z•š‚n€™L6*ÅzáIêD½YJÅIšRÑUM^Jd¨NpJ*Ÿžú¦©Ú„©®2±W¬I°J­LÀŠ+³îZ„­¾&¡vÁ¨ÅÁêÉþ¡²Íþ€–…Ñö`³Õ ñl¶ÊfÊíº~ËCdЊ{ƒ­•škC¸êâj»:  ¯ìÎKC¯öÎl¾7ÔË/ øþû¾ÏàoÁ+Ì%Â.Ã.ØJ[º`ZFW]»ÙÎÙFo¦§xó ˆRY¤Ó<­¬B L3YÀó8´Tè%þ 0¹¤Ë6«€kÐPÁ1Áéh&à8í™C- éßdüÃM1|H&BBˆñ‘ÁÑ£Ý€Ò 0G¨þ u‹éÓ"£ÇަÔv%T¤` .I;dFP…úFZ—È"ZcaÖ^c­luJÏôѳîäIt 2ðꇡ:•¯M€i``ºH•V…'âး‘¡¾•†]*ÊzÕ­H•IFMD£®Nö©¡, Ñ÷¯Œš–´/!¬ÏfKÛÚÚö¶¸Í­nwËÛÞúö·À ®p‡KÜâ÷¸ÈM®r—=ËÜæ:÷¹Ð®t§KÝêZ÷ºØÍ®v·ËÝîz÷»à ¯xÇKÞòš÷¼èM¯z×ËÞöº÷½ð¯|çKßúæ !ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆE‹‹‰ŽG%‘”@“’•™<—$“‘Œ #Ÿœš”¤'"—³§¨™ª# ¯¢œ³¶À¥¾$ ¯ ±¹²Áˤ§¯ ŒŒ¥Ì©«Ê®ÉÍÖ×&ž ® ÕÙߎÏÂÕ ® ²¿êÓóÔä®óô¶µ"ÞXà@­¶!+Èì „rD1œ("!,Š!JÄX°Á¶‹ j YÁ¶c*þì‘|ñ v+™4[¸˜‡ôE³‰i„Fá2…ŽÀš’B(°MAPoèš)-zFç¤'|T .êTªgLëÀÇ0¡‚}cñê*|t tZÔµnFÞ¢ºÝzâeûqa-‹C–npÞmÕBðØ´cÉŽÙP)€Ö¦“Í G/ ¹Iš‰RDܹª µtíWqì@3ãYL`û6 iú6ôðB:#?„:òòA?ǽmìôA”‘^”Pûö?>~Tx| ˆnÍïØ[½Ô.Ýó‰.¿ÏLëõódÏ¿§;=ámóŸå xzþ¸M{ µM| ÊA_„sP†…oì‡aþmG€xG.¨$C?"þ€`‰‚•O)úÀ‹7!ÔÀå\øRŒ@aJ%8 M9Ð,>é\Æ#²°È~}ôJ‘–yµäªÐ”Û,òÑ—‹,ÐÀ—Ýs%–ÆÐ8~馗 ˆIf`U~uæ Ý­Ù¦›|.ÀÀ˜ª(iÙ'wæ"Ÿnú W’•‰Ž…®ph¢[f“ Vîi 3€˜c’%¦I¶i g½`bc޲zê %ðêMÎêˆ/Úškº~â½îzR°^˜Fl ËE­ÊZk³Âz m©þNk¯ÖZal¶Q<ËíØ~ÛíGÀŠËD¸æ>±mºK$Ëî̾›„·ò.n½IT‹o÷îkĺþánÀGÜGðôÐð ÑÒè8BèT||1Ñò,iç|*@½&}ž ¥wyVíE8}ü „/¨ª ÀçzÏð;á36OåÒçýÄÜʉArþ¢ª @y `ÞŽøýy²ûúx@¸²Ñ S lQ)¸÷¥‰°Ts 0pW>7¡îa{€V¸¥†‚MqZ€f˜€F jì£z"€= ÀU#Ä =’ç&ÄP†4´!¢–ÈDD±î°Q•C&ဠ£URáô”×Ä.zQ—ÃþÓ°N”?:Ýå~¶pÚ?bÃ1†/üS W¨·dn3Áa n‡ZmˆÖ“ã–è˜Â ² h-ˆb …»RU •(Îú F¢Ä*á[Ì÷IG¨QC€ÈõXGL^j|ݘœ5*÷¥’:É ùÁL‰Oô-ø„;¶à’ö³Ë&Cã ~У}aT"OPJ ±2kUèÔÉE¡]Êr Ë$A€<˜ df!xISA3 ÎêpÁ—³”Ú¬Ù€Ò5cüOû® ®J2S‡õ)!>¿°LjÖç™þÍP°ÍüH’žY8J Æ©ª‘@Ÿøaê|•3’†AûþëP$t´¡ ¬÷Ç-LC~¼DÉ@ #ÏP-¦èä8á3µ- ÅšfŠFèÐQ¨8*BæSMÌm­Îx«SBöU5FPÙX*½€ ( Îä«ÁkRËÚןn1•3¥,cÐĦjUÝŒ^ãEÍz¶5–e«f7ËÙÎzö³  ­hGKÚÒšö´¨M­jWËÚÖºöµ°­lgKÛÚÚö¶¸Í­nwËÛÞúö·À ®p‡KÜâ÷¸ÈM®r—ËÜæ:÷¹Ð®t§KÝêZ÷ºØÍ®v·ËÝîz× !!ù ,ƒÿ÷//ï__ÞwwÖ¾¾¾ŽŽÎ¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþðÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïï«€€~ƒ-†„‰&ˆ‡ŠŽ"Œˆ† ’‚”‘w›‚ —œ§¡Ÿ{ª¨‘Œž«¬µ ± ¶¸‰›‘ ± ´¡·ÁsË“‡¥’®ÌvΩ’ѺØÕxž¶¶ ÛœÀÞßɨ Ñ¥‚æç~ËÚ ò¸Ë Ñ™øŸËí¢Íòw®Þ=‚Þöè‡) «Õk‘™B_q=<–W½þ%ˆ†1¤£q8þJgÒN@Y¿µ¬cP¦ÍÎdƒRe7›hRÕi'—— ‘e ÖOZåŒz©yÈSƒz)ý,öï_ɯ¿J@Çýuþ[¸Å€˜‚ ØTƒZ0!~LeL6¡ vÎ"¦ÐáÎ4Ð ,°€­e" #Nà€'¢¸ $õÄRÊ6¦¬ÃÕY/‚0àB äÈcl›¤;±ø¨ÌyéÁ‘Of dl$‹Åœe†Vb°Z–]&¤Š(@R‰Qv ™eZpd ´ÙÀŒLIM<ðÔ ‚B ’è×S‰)è•îì¦Á5Š%ú碈‡ˆŠ9)¥5Â…DJš)§¸Ó"©F T(ªE©«F +G²5«õœz+ªîÚª©¾Ñk°Bé(±<0µ²<þ Å,¹>ûðÒòp¤®ÕÚ@m¶9ËíÊ~«ƒ³ââm¹7l‹î ×®«íƒîÒàm¼3„K¯ äÞû‚ç¦*‘ÔˆÙ±-aZ¥baìU–WB›Ñù\Ñ,[𡈌sI˜£fQØùîÔŠY¼@1ÀT8P˜\xù )WmÚV(KñR\\´X+”L°,MÅ9Å^8O°hÊô,VP&0‹ÄH0€Õ²!›ÔðV©\å£=PÁ@a·YÐòL/›e V0GA“? ³Q#ÆÉÚNBÜÄÚ›‘e«^3LW¤ˆt4 ì-ÞîØMUUc§ÀÔ†û€8? vÁØþâÅœxäÝ*´9ãkÙ‰•ÝèI ׫;8à9?cÎΓ¤‹§úfxæi"Ÿ5¬¾Á¼-ÁÍ`Ï\º–p鍦зsîî¦qpôXîp4¹=Êãö5ñØs©#‹¶ïù™ÍwPë¥1n…?w}l). ã’ÙÇOàö*‚Ï;}Œæ§ÜϱIê*@£©(G;²üØv¿ è® 4]ôh”b©³Ì™²õ$DÓÙ§¡‚p3:ÂAN¤wxÂ&bã€rÚpù‚Jæ§* ª£úÍ×1Eƒ’x°ÑƒodáÆ=k†äS]˜>²S Þ@ºg.ö5áà€=oƒò› x ÌÄ£ô¶ …ÙÆaÒjrp \ªïæbcWW[v( ýyt”8ÛC @±b֮ɴep:fî>’Ù%ü{Iv‰‹û±ÇW9 {Î=€ÝÏt ª[®½ÏõìÝs¯GbMòx̣ϓv½†@ÝÓ/ßÎÇäõåÜÏOg?ýÈý'L- øÂþÑV ²Ñq ªñ`„mLHá°]¨F†¢¡T‡²bÔXÆu%™xâx*Žñ]‹d¼Ãb0£ 'ÊQ4\vã 92 ä ,`ä‘FÚ‚d’ (àä“ ÜÅÔ1wØ•WZƒ¥–\Zó@VdáF¥ ai&;’œ¹L—Ŭ6f %@$‘ Ôiç’Üi§$ôÉZ?o²€"„/ø‚››>*ÂEñÍË¡mš¢h qÆÎ6æ’蘃ZZYk™Æµém7#†¹Ô¤#TÚ£P˜®úר-vÊ*¥ÞŠ…«ºV"~½J‘k°TðJl¿;ŰÊB¡—”Í&‘l´Oþ0K-Ï^ÛÄ´Ú.am·H„-¸BpKîméx®âBE#c´ªa®Nó¬j/éºû)\E¦/$*Ó¥p]6±¶1/½—åU r³º‘/][É@g¨vïlÙ#0R†Ê“5 ‰Yו¹=*ilƒô×Áa¤ï”c}‰f£Ññ^RüihkùÖ¿X÷‚\Õ+*UÙS1’õõQ£C½ ª¨iãiQŽÐž| tÆÀ¸W8S€$ôßuÍ…½]s‡ü1ЃV4÷D'f lì,@6a_¹€ßqdàg7øvÞÌ‚'xÕ`ÌN2€Êã<0Ž¥àþ#X^Â×ü5p¶š{) ¹S?˜%Þ.Biù™nf™¨§¾:ç)è}¥°ÏN÷§%¼v‘¿NQŸB*î¨gÎë,~XsdòÝônkçûç¯å@óÏç~½êÓçd½= „Oå"H¶>b¼#eûçÇ»ðÀø¼•o¾p{ ,Ç5©µÍ}H1ôЀúÁ` èôÎ4¶ÐdgI[oH—ù¹Å9€ ¯¬XÉ3'˜_þTò=Ã! ûë™ Ê4œŽ9 ŒÆý ·B'|ÄT1hŽÊTA‘(KÀË! 9ô@·Ä yØy!:`Õ» rp ¢ƒA[¨ÖÏáð!3þA ³€Ú€v/0– ‡%æÁ,®€ZB´(\¤„*XØ htý䰎f€#)ÀœPf`âB»\ F( ndt É0*L(ƒ9+‹®pGýyìTS*ÀÝ@Y‡M…êj^ˆç:IÊ¥`ÂsX>Vf¢¹i“œTœ éȆ@™ü =ð`ÊwEì ?\[P±± ò™¥´Œ,U…K+°M{(àåŒê¥4Ðð(š4“UÂÀÅØê*{æË&Y†n s5/ëKÀJO…S˜âܬ†Zš#‘`¨' ´éÈŸ¹2Ÿ¢Ñ"G°Lf¢ê x‰• ˜¨ËQTT'þ%°BK©²)Ÿ\zFQ‘ò ™ ¨IqpMf4t¥ÌÌè7~bQ˜ÖÀÃ’m:%q‘§Ž2( ` ì$ÖF©¸ VJŸ6EY*´oµÿ$Úñ”[S’ªÖÊÂT™FU“m²XX#êͤk˜‹k+ð¡•„®+t¥&YëúÕÛÌ•Ÿüàh_á•P19óªÕ”¬âÉÓnzu&»ªL*U7•õ{šggÁ©G0¥*ç'VR ðÊ™@®d†ÆúáU Æ%tŠÌÑN³d„7aV¶u½,å©AGx­ú <¦#/a÷*x¼ VÆ]¬$A^íFa&ãU”Þ½ ²"œçwôµ 6@€æbÖª]{iiÀÁ[@—ÅkVw˜½{M·3îr=o?¯ÊsºÇÖõ ÎŽ'#w<2‘~·sw|–DÍÇI©žÎéÔíå¼ßµ:ý7V)ßoƒ}¿›íþ±á]€l„G åþ˜z ªÁ^ƒhÌáNXFIš‘_†eôÇ¡~Æ€"‚a`‰vy†bŠ.­øb.zQaŒZœ¦@äøÀŽ*X&Ãb4®Ðr{%€H.° 0€£츕 €9oDf™Yr™‘‘HN)š•)Èä’’HÙÜ^^"çå›\ „ndŠ`Uz%옣 ìÃäH* ¦9pRs[$œ&ÞâD™ãœ¾Té"oú1Ú‰Tõ"éŠfÂwƒ-tÞ¶ ¢vN4ƒ8ô@ºÌ¦"*Jªª©k”ÖpOªRɪ…~Ú ¦²Òã¤Váj±SÔŠl½.±ÎBql´Nþ(K-Í^Ë´'ùøÓŽtë·zXû¬5€Ó®f䩸íˆR›ùÅîÜv ˜( xÙ—½q´hMt­vš.¶aÊFC½%åÔ¨0 ¸"¬Ù:̼ p™€<—¡‘ïJèÊ%<»„l†ÀAÁÊZ”_•[ W Ó¸³"´$_›Áð»=y›3)q tïn}ŸÄ‰)Ã0Æç@G›‘4rxŽ÷Àaʵ6î·µ»a\Í Þ×N[ñõc'úwpÅ[0M6 $ÊM5Ø´½D¿¹dsˆñ5°Àšñí÷v#g3Q>¤–X+^„áD"i r×@ãþÈ-€#‚R>Ñ ôíƒaD.À A@—Úpv†#îº&<àé¶g¤êª×€9ÖÊÔšM¸– ¸þ‚î¼›îRê<ºÀzè6ÃV†®Õ®¥è‹³}é¦+.æð’uMƒ&Xuõ\¿—ó*¤ÝÖot£ÊòäÇ6$Ô|ÒóúR7¨}éqŸ ‡€ïáî ìÿ^³õ¦q,ÅÃ&8¹ý-P |²_cà,plM[fa;Ñ‘å á‚Uf£¾!Ð"(HG÷BÜÉâhMèÜ &7L-#Ò™«Š(PýÊ0U@@IÓP< ÈÈ ÝТ”{ä?çèÔDêê~ò‘*4ZUŠNõ,¡Œ%XšÒ{À⊫I+ĨZT³Ê¢„+Y»ê-Õ±ìYW)—rnt¯í«`ÑÔ½âLŽ?-¬a5œátT¯€¬d'KÙÊZö²˜Í¬f7ËÙÎzö³  ­hGKÚÒšö´¨M­jWËÚÖºöµ°­lgKÛÚÚö¶¸Í­nwËÛÞúö·À ®p‡KÜâ÷¸ÈM®r—ËÜæ:÷¹Ð®t §KÝêZ÷º !ù ,ƒÿ÷//ïwwÖGGç¾¾¾ŽŽÎ¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþðÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆK‹‹‰Ž‘”“’”–“‘Œ ’š˜n¡ 𖮤¥p§›ª¬¢´°±q³–«»®¼x¡–¬ºŒ§ÁÄh»œÈÊ­¸ÏoѺ Ÿ×ÜÙÚ—Ë ßá¢ÃäÚÌØŒ« ËØîuš « øú«ø¤É–Àƒ¬*€ÐBe !+1⟉ ,J°ê“F?þ :~ÉodŸ}ú™ÜƒòàÊ<¶¼Ô£pÕL=oâ™XQ'Œ›àùdÃܽqCÓ„4* ô’ŠYP²©…I ŠêK˜3©HPªœ5!ëÂÞZõ VŠÁ e‹.Tà@Ú½¯m‘ļ*@.¿ž¤Úå}R“!³gô¬'tí`'<#9𛲮ÓËŸð °t®µv‘âÍ\¤(e  ^;šôÎ  ËTW×M`'ȈÛÌÒݽÑõÜÌBÞÅÉNn¦¦LædZB'C5åô1K£^3|{˜ãÞ¿,ïÅ9y/(ŸŸßR]åz-Õµ¿ÇÒ}~ðö¯ŒÏoÅ<+éýþgE{V_TÔ‡`ø-HØBFá_„NìE¡^ØÄ2¡`‡I4"Ç-6â…-„@ ,°@ ˜x"”ec+*°©5Âj3R WLtã‘߬²";Æ(£­]¸9£‹,¹P’6rP‹D!J §• ¸‘]Ìš^‰ã˜˜ÿÙRæ¡ ‰¥7¬¼yן3&Ÿd-c%r¶C'…¹dm¹ˆ†Ë¢ü™ÆB3‘²ÆŽc¥ž˜É©é8”¾WÝ%l3g¤«•J™f’ØQ‰ÒÚ¡ÄÀŒ¨µ‚ÖÅ®æËFaî¹3ëQȦ1Y@þ©j•¹ª…§©:‰BÕŒªVS6T(6|Ce«Ô‰Ø¬µ…k«vÆêí¬“L”íªaØ9¨FÍØó5 X“,ÄZä¬]„‹–¨^X*ðeâ o´aPûѱôVï5Ò.1å“çÖ¶®dÔ4’q°Wp@[Ñ.s'£•ò‚N×r¿[4ºÝÌ/?¡ðÍÑ  ŠçáLb"ÝsÎE,k£»<#†6òt^ ( %Z/"½CZö#õuPY}ä-j]ƒÒNKðuqU_5›G®ø4 P–ëÚ¤µ=6? 0PQšp“µ ußX¬Ú«˜=zïÝw΀»Ðà.~ä½þû&VãŽûMBš’O®xUÉâ<ä¤çG*ðø VþöÜ ”Þº2b¥nÓ3À’κá<ÒùØ-ÒŽÁï=UUòi–w>ú ÛN¹ ˆm8Ó¹[Ð|)ÁÛB ô½Õ ïÝ¢ö6¢¦A÷Ìï>­0×Lúm±‡Þ~®¤[Þ:3=>´f 8k€$„ê¥oµ ™@DŒ¦WôJBöÌÕî - Y@‹Õd* © rd¤3>³ ve¡:Žò@z´$Ÿ¤k„ù Ÿ¯µ-$ftvš‹‰¸¦$ Îa`¬ZW&‚9 $Ñ…hþS A±Þ…IÀaäRŠщ½ðQ=´5Š‘éoð”ÙNà Åu¨AàÃ&Úq…JêÀÊDÀÄU0íÊ™BX-–‘K9\v‚Έ‘ Çvv:¢±@)Ä@·å£À?ŠP$3ÉÁ KFRaÜ;-f©¼Š(ZöH]F(”ˆ¡6@ q´,Ž»Á,<9£†’:…l)‰¥ÊZ™"×…B©ÇO²…] M„C\¦ _R2‹“D<Ê*TÑŒç8Ô5]3Q´!9ÉwÎ`5lS¢YçPzwª€ éW8åpNàTè%&èOtœåS½ÔUàQM$˜VFÃÄ«vd‡T"© ÎqhÒ*]TéàÅ yÐ%Nùò˜L? ÓVLb6áÂvzBiþSœB-*QÇ9Š|úJ_KÝÅ<¦ÂtQeÌ5|DP¨ê3«LâV3V!:µªH-«TÕ¨S­rE j«\çJ׺Úõ®xÍ«^÷Ê×¾úõ¯€ ¬`KØÂö°ˆM¬bËØÆ:ö±¬d'KÙÊZö²˜Í¬f7ËÙÎzö³  ­hGKÚÒšö´¨M­jWËÚÖºöµ°­lgKÛÚÚö¶¸m!ù ,ƒÿ÷//ï__ÞwwÖGGç¾¾¾ŽŽÎÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþðÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽk‘‘‹–”‡˜—™†›˜–’ “¢Ÿi§“¥›µª«·˜° ´ ¨¸r­» ±¿µÃs§›È¾´’­ºÍdº¡Ç± ÆÂÀ×jÙà ÝŸÌáâœÓæèÞ»ëì¬Ôß’òô¢ßöp>)Ø· ŸO ܃PáB? (xè‡Á¾‰ùX”˜QãÅŽþ{ìKRH$Kâ9™R¥“\Þq°/¦Ì:4 ؼ9'§žuöý:G(Ñ¢ûf}Ë€RjÖ–‚i:KUT©]¨Î &A‚–X·4ý5Î«Ð¦Š¥ Ë™²·4º@Û¿bl“¸UFžP¡ JÙ%w5ï·Ý&4 ð— Rr„ 3ÈÏì_ ²A­' eæŽùŸ»ÎI(‹–Hòày…Qÿ ü7päÛ¸e‰H0¾´—$qÕmÄ-Fâb„>Fî%çNæ_">‡Þ%bAê_Ü^ÇÞE(_îZ|‚ï²qúø+ÖÏoÑ®^‹÷öXÄÿs>úö«°ÏOå=)òýþE}FÑq:AÙv 6á_ƒLáÎMØDD`YˆDz*±W‡J"Žx†&žèPŠD¸…R 4°‹:lÔ˜P (ãŒ4Æ`ãj7Ž´ÀŽ=¾`ã/4°@y#06 c‘'œôR.é$T/îÈãi±5heb4À€–çü•æ__-ðåp_@uœoŒI‚%fjKWn&VÑYZV2Â-°€9½œÓÏpêp1Π[ ˜ xãK]õtÚŤ˜4€À`‘ža%‚%dÚ—kwQz…ªÀˆ)° †O¨ž€W©¸ù†ª–$ªgƇã ÕÀÙ©¯¿þ*KSu™V¬>ex§+ÒBš6¶ì›§dT«¨Ê¶j“zcID²l5-¸e-¦`–›Û»K+L]:%j+ñŽä‚œÙšëî§õæSS·bÈûÁ¬î­pøBá–yG9mK¶@Sd‚Ñqg¼½‰ÅȨIg²~5}×YS´rq±Ëi¼b´ÑŒšÍZEÎØ}|3@sW²Grg¦s%0%­ÛÒLó‰ãÓKÐÖ§ayVmõ× 0°rZë–gzýõE ˆ¤ÚlŠ=ol…ö¢N©@ÛX[ÐÜ8ÊÝÝ/íÄ0Àyߘ£âcû-´ã‚ß ›þ¿pøÈ®  ¸ÕWŽ‚’N†¹ – …Ù6üŽ*p€Ž¢Ã@z¦³ÀÀç«Sðáæ¯ƒrÀe, v*—p;å§c°»Õ?ÈH˜–œY@U¨pfÃòåîÁîyë(°"ºî§¶ïÀ}Üo>ÏgÛ¥ld­„Ójp¥êOÞ½àg†oò[M(›ÍÜ/y/XŽÂW» hnò#`ðv@#(ðF ÐY(o«Õ¹Š°>ø}`A@¡íµ*ØhoCãb(p¹š4Oˆ›³˜!œ&X醸] /Ä",ci€‹öQØQ©üŽsž9ñ‰ø!þ‚ä3˜‘EGô€O.ò%/bq”ÉU\ô¿5ÚðŒ‰SNfæÚ|qDcáÊê(G8¦Ðp¸Xi2?> ‚nÔ‰9À›BúQ+ÚiHÖùì¼YäxsÉ'¢¨IK'+©EJý ÆXI“Ô°1 9Ÿ´“Ò¥¨Zzà–Èù¡.w‰-o­5Òš0™ÓÚ¨ñ—QÙ„”Á+†M¨lÏ´¥¾ÒÇ+Y %+àœ,Á1N‰«Õ`–+µLâ ¶,¦ºBXNìäpïŒáµ@HÁjþ 9å„FM ™ª„‘3{wiçMx)›Åd?˜ú 7ê• …Ê„\’ˆW÷q€ZTCÀúÍ&~øüUÒ¥ÒF-@VÒšˆ¢„iHÏÀuRT.+{ðM(`Ú— H3c˜?žñO,ŽC-ïx‡JCXÓqöp¨Æ kŠS¤>U‡Æ0 N©ªm²pN\µÕkHE¬°NÐ`<ì!ͺ ‰bµ¢iñ)[çJ׺Úõ®xÍ«^÷Ê×¾úõ¯€ ¬`KØÂö°ˆM¬bËØÆ:ö±¬d'KÙÊZö²˜Í¬f7ËÙÎzö³  ­hGKÚÒšö´¨M­jWËÚÖºöµ°­lgKÛÚÚö¶¸Í­n—!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢~¥¥£—%ª¨“¬«­’¯$¬ª¦«§#¶³±uº'§  »Ç"À¾yÊÈ ÄÉ´ÈË|ʯÏÑ&¯½ÕzºØÐɦÀÞßqçµ#ÙѳÝèwêÒ" îÓôñ¿°äõ÷puƒÇÏN9‚¦ ÀÁTCj÷ÌJ aDC³.¼x(£BŽŒ4‚\$r$¢%þMBi ÊC,]¾,s&M…2m r€Sç žøÜ©PèP@@õÓ èÒ?M ,xÊTáTª|¢^Ū‡U®{¼`°«X9bÉ>ÔGÂâY3i×úkðLí[¸ ɪ[@Q!‚´kv7ʰ± gÑÕ¨QÁƒuÔ6¬ÐX²|[Ýyß¹ÉP[^¬YA`þ䂞rxÁaÍ;Hpõ”gš­ëÌ6µm)¸/°È»8ÄßP„Ÿf[ûÝqäMXnL,¸l/³Ï¡/›Sûš¸ÞÙhÜ>ôòß{¢O~ý™ñîÏœ·%ýúv_ÌüþaDÕ€^´G }åþwàÿ-È…€˜W„]ঠ…V4ˆá@ ¸a~X……"^¡a‰Rtˆ¢!®‰.J![1:¡b(ù– Ü1à™\×ÛŽ~Uš@º‚=–íCTn¥)ðc%ó<ä@6ž y‡‘R2 @_P…$$’ICŽÉåœQIU‚W‚ ¥c6"™*MX›jv¼Öä 8ड़GN¹H3¶ˆµÐžŸÅá' ‚~©ÐA8Ñi¨ {ÒaŽ-‡ÙYÁ‘'ƒh‚yO¡IêÈF•k©Ò—qw„jÃ+2`O˜¢¢Ð(U¾ÓT@ªíÊÆ¸%« ê À™÷PÇœ–¼¦æ÷þ$ðXYu‹Ó±È6š¨æ|êäªØ9Y‹ž§k^_Öîp'£âªkÇ}ýI—? Ú[s|þ¡hªnàD¸5g ! Ö!°¬®™%=òÞAï„r,Ìð’«Y0!ÿÆÑæV<iî³#R,Àf< DŽ‹,M ·¡òd¯!«mÜ¡ ÆÍ ú±Î\hÛ·CùÌ€k ʘ”@›X,Ñ =Ð@Gó¥t˜¹ÑÙô·´5™å® ÍÔ, )Öh·ä¶f}ik¢o S}vÚa&°v?&é@fK3ðµq©k W£­ÀÞoÃЀÒLSAZPŸ|öÎP&  P€þƒ¿ð7¡ZCñøÒ•· ÊÑLý`ÿŒÛÃé¥A=ÄkŒÙN% Ã;Äè¥5z c JÄ.g<íKë~Ãäñ­ž'êÒær¿¿Þ˜ð;4 ýö"ˆ¥T'–—ü°ìF0ߘó)xŸø¢¶(÷’/Ÿ=À/Í= ¸Ÿ¶½À û(!2ÏŒHIP_Q¸5µïåfŠ2Á‰È6r,KÕI‘ <ïgN ØßÚ2½©@hs ! …Ï)&lAœÂBµH~1LAÛ‚²¿à€?Ì! s¡ð‡)b ¢2>hˆvíR¢ 5òµîP#E”â êõñAw8¡þ˜UК.†Q3ÆØaÇ(&¾àƒ8ù“¢VÈFP±ÒYà jVGÄUƉ±û(‚2ª€KMË!G`¤C6'[d=*‚‚±€]ÃCQM`I'öe8‹ô"Ý4âBtmB4’[fFƒS.²/äá™ ³:Q²¼ûèÆ\â@QD—¶U–`w„òÖ#'cÓ7Pä –‰ž×xH™ôSÅ-§‰!#]›ÜØG`>gQ3Åžš;‚sÄþÿ^žk˜ÇVáµä{<6ÃR hÒDàÝ'e‡]¹Ä=<ÐgÖ¥7Qõª›Ô 5åGìYïG˜†ÍÌ%†È9 Á€«\Çn<­¢xLы۸»DÔÃ.®¯yJ!øÓŠÏ‚òºQ|¡t;NÉ)½@02¾?7˜av¾_DÓ|x¤¿ýÉàËõ¬f¾"­{Ջƶ@eˆ| 'X´îJúÔò4Øݹ¬‚rCA¦L@"² I°sà®åÂæ ¤GWjئܩ„#,yˆ‚µ¼`…$¨šùˆH—(¹ Hì›W€ b#\âGÀ½A°hÀXþÖ‹¦G7,)IÔWÀ6±@UQo‰.4°2¢³brqI÷&Z³<¯À¾‹<ÈÒ ½ÃÑDmõ+ÈŠÖp´{<¶×7 Ýu ð(­š‘ ÍÇÄñ4Î3¬hs*E§\{„€]ò'W“² 4ór,BèˆÞòú°3þ BùfŠ$nÛ#Ì›ÓJk7 >cŒÃÔ÷ ¹¿ KÞÈÐEÇ`-²b÷_èžÈÞ¹÷¼tÞ:¬Èû‡é2Â5èÀZÕ˜ÏxüàÉ3¢v˪ëµÃ‡¦cñc¾9á‘PÞõö{¡ ìÂ¥ªÿex—½-©˜M&ü"¤¾í©~! ¨šøûÀdš…ªJõ)P™BX@ ©1šèMqN` E°‘àQ Kàß$”tIƒ#Áv‡ Õ¢)Ôj8€$x%†ƒáÞs»Å@‡x @Ó½û±‚gÒû•æÅ°ƒ›âö…Â#nà;bšþh¢'Žp…ÕÚ”¨@+n€P!D £(D3f@„pÛ/ðB¹QöZŒÕå—=ºqaµAN¼ØÀ¹Í±U¼c\Tó½tQ‘i\ÌIÈ#jq†5kãõG8¦ ’…ys$à¹ÊQ#‰’± j>6Ê©ñmª’Â@4 ÌA„rÄÈAv$<“[Å¡X‹Tš îèp,Z 8Ðå8-ø†‘Z’‰ œ%À r&L7×ß™×A-8qÙvª–fKøÆ;M޹Á- 0àX§g.š˜aF#¤  Pƒ¦¥vfª)7‰‚æ€OAºWRœ“J)‘ ,`&ª®Êé‹k(¥œíXÞTЦ«þ†˜g)\tÅ’èA²w¥Ê£šÁ!Ö]gPƒ' ©+d @Ñ®Z±—Ø~%8YêvÑ@¡„¹»Êí†á¿ðH–ï(  {pӽȮÁª ÌêÂQhM^VÞ’U9Ó ú’Fi.0DÍ€/g°J´ÓF¬¦¾¼ÙÊÆÜÓÔ@Ö ÙÜËÑßGáÁÙ ÞæéêÌ äìѽáñô9ñÌÜX¯ žÕA`MÕç›ÌÕ±~¿)P\ç´Š>Þ¬gâºz6pp^™wls¸0~ô€ïѹÝ`ºgÍA|COÀ#Š=D9Ñ/ÿÉ\ ú®XåŽÂ[~·[Ñ'Ouo½¸š}õ,2sfë$ÊIúÌE}|“ëÝAò;ž:? ¸¯S©K²ÃD!ÄLxŠ-À¿õ¯ç›ž  ÂL ´ ¨ÐÀ¾dŠC˜ðà¦w<ÍÉ®!ï;“Zî$%ÜtB…¸Y£b(Êi€äи҉¯Qúa #£ NV¸œ}Ò?”)2†abþ&\U2ßðGlUëÊ "Ç1~¹JŒ/(bÕxxQŒOõ8À£*¢ñycóÓS*Õ=Þ‘dtœP ‚ri…T¯Q#]¢G¡PQŒ—2FÚê¦5A`.lÊ¡À—±š™o„áãP|Ô‹Ò4–)~ØmÓÑ?ðÈ®0ÐFCHàG4ˆJKÜå iKûi5¸¦#³ÁÆ•l2"JLf­H€É¨øH€ê1•”)‚PZ%‰Y” ” 2å´R:H%±ÊX%‹Lø€Zz€ƒþXˆü£kìS›ù ðI[.qœÛÀMNêÍwúÒ9@:ÌË%²¢;9çŽõEâ‡Ezþq£(L“uÐIÙ’£3 h‚H‚®¥Ð<@G’K‹fКçËâFgêÏá’y£4^©„áÐv–0¦ ÅÔGÇ'T–:TL(\ªT§JÕªZõªXͪV·ÊÕ®zõ«` «XÇJÖ²šõ¬hM«Z×ÊÖ¶ºõ­p«\çJ׺Úõ®xÍ«^÷Ê×¾úõ¯€ ¬`KØÂö°ˆM¬bËØÆ:ö±¬d'KÙÊZö²˜Í¬f7ËÙÎzö³  ­hGk×!ù ,ƒÿ÷//ï__ÞwwÖ¾¾¾ŽŽÎ¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþðÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁFÄÄÂXÉÇTËÊÌMÎËÉÄÑÕÆ×ÔÒ6ÜÄåÔÎèßà8âÕ åèÕÝë?íå êòõö¬½+€àAºbÿ†çO߃þæETx£Ÿ5x'jìG1Æ·eþÈ1ÈHRÇŽ0¢3×Π±„(w„,× fÚd’/gÍJ”KTI¾rÚŠIPîa#•Ï,œŒÓ@_RE%FŃ éS†µÚ©ZΑň ðÛ(¶M×}fO&c `dɶk„Ô2bŸlé½yë4RËkH‡Í‹±’Éœ9ß}ãðÑY= >÷F/¨`r¸œì¨5É$×…[æphÔ¯µ&#{zãT2ž[cP· ARÑ¡Îc`.l±ÔiVÃñ¹ È;žb ‚<¹ÉÜŽø.§¹¾MV÷zgµ]í£%4ø«Ï{ºÚ¶wÊÚNvô 4P¯ýPòqþÀTçѱšÔ‰±Jèð÷ž>ï%°ÀU" øSôí£Ölè!Í'‘to=8To#XeÇj¶!ˆ`¥–Ð2 ðãb DG¡úÜ1à7:wKLd%™xþ Sc%BÞŽÐôXÇ@tèá•VfÄY’O€¶Í5GºôÍzMêó$Gí5Çj5õ%£ˆ‹½Aæ 0@!YjÊ1 QÝl¹•btìWæ‰Ú‡#÷õ§˜Â-:Gƒâ¸}×ÉÁ&i1þ©¤@ÖÇžÈM´¥Ÿ>ºÀúT GvFNö¦£|8À“úÈ›_¦ë‡ T”h€ŠŠ¯À–‘¨)ô!P¬¸þ®ò–²j¼¥ª³C-ëű©8@˜µ[4늶ä‘!­,àz ¶­0@³ú\(‹¯¶r1®-Ä~n,õráí-zq żº m÷Öò¬¿Kì«K¹ œÀ½”»‚6ŒÄ;Øb¼¼4°.êv Ãï~|Ĭ7*`ç¸Û ¼E ì¢ÊW-Pâ„ÀäûƒÌ-ÒŒÇf’ K¿=0¡“vÎ!ǹ$+4 FÙp@—3µ/×`t¤WàË.ëò–„¾½°uÊa“`³CO¯R®“j•]BÅ3§}BÕ8¶­ Y"@¶Ü¬=3Ó+Mø,|Gê¢ß 4®@# 9ׇ·€w×þ·ÊgiÑ*òçVWÃ×ú´œ‹¡ÓRÀù©Š§œ´‚ï£÷(¨s`( äÞÀî?Ú½Þ ÌJíܶ¯¾÷`x-Äÿ\«Æ#q¹ð4oßñFŸéð$ŠõªWVöCx;λÁÖ‰u¬–ú|{¯C«Às[ê$MüÀj|†_Žè9¸ŒŽ–žPäÂò†k䄼z'8ž5.r’{Þ0ä‘Ì(Lž8`Ô@®#¸ IŠ©MI$äO¤¢Çýq¶”©%w Øo(åJ0¡ªÄѶÍ™0F~r• )‘–ÖaN|;¢Tà”B¼4¢†3þ %ðê¥d+Iü úìà%X ±nüÞ²Å6ŠŠJ´"Z…,öìu Oé£?”Ðo»cô#SÇi’õ%ƒˆâ!åÒ è0 ‘¢Š $? "¥œ°ñ‘ˆ‘6é6*EQb ‘b´>žr¨9H‚–h¡Ò&e*ÃRKà (˜¡ˆ¾ÑKt—`#‘dXb~à-òG½ñ‘—GÎô)_ùjZ ›7 ËfÒD¿g7a)$µÄÇš šÈ1ÉéÉ©(s:Y4×9ÎOn•Z‚È2èMX3‰»ù‡ €É0¾DÊXb®ÂîÁ e*q†Ò& —ÉL º*ˆÈœâ«H…O:J££0ÅóЇ®TSõLP’ª)ÓF©0†r„(=ÿÉS@¡T§‹ÉMgôS 2*Œ}SRAjÔ¦:õ©PªT§JÕªZõªXͪV·ÊÕ®zõ«` «XÇJÖ²šõ¬hM«Z×ÊÖ¶ºõ­p«\çJ׺Úõ®xÍ«^÷Ê×¾úõ¯€ ¬`KØÂö°ˆM¬bËØÆ:ö±¬d'KÙÊZö²˜Í¬f7ËÙΞ !ù ,ƒÿ÷//ï__ÞwwÖGGç¾¾¾¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþðÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈVËËÉQÐÎMÒÑ ÓFÕÒÐÌÑÍßÜÚ/ãËìÜÕïæç1éÝ ì ïÝäò8ô ì<ˆ'!¿~ÞØX0³tª ˜Ð€À† âþØe3¨±äž‡æ<ÊI)Á2†ámÔÃr¦¾9(%,é’ÞÀf$ñ¨Ìx!a*R ­A&ÝÉQ€ôâ"Ÿú ͳ¨›í¸6Â:ðhÈ™Ráh](É'Ñze0‚–€@¹&Ûe§ô‹Û¼6= ý‡T©·¹kìÙ1^ᢊ`ú@òãÀÏ€e—™2wë $`ˆše~ŽÚÌÚÂ^jï²]‚‘z7à-8Ø%h nêZ5-|Bk{'x›¸DÝ¿yËü€ \ÊVýT÷‡º¸ëHÆ.Æ<Êw ´önWÚ„dyF¨ßÝÑ´¬)þ„”j ð‚BÙ)”žaêØDRSñÍÇÎorP\Êmh½“ÀZ %°@…\g”BÜ‘1œCßÈåÚGá 8áS ‡ÇzŠ4ŸŒ(¢÷ÝQ×~0 ™€«‘ˆ¢Ú-˜ˆŽ †HãÚ‘á$ |(£ˆ™]I‡vÕˆ1nÉUl©âe,À€SO‘x”<VÇuʈ$Fòø£Úå)cݼ¨‘˜{Ði§¬E6 0°À (@hõh!ÒÀmrH&Yi¥E”!CÊyÆbùÓ`Qæý¡œªdh·g¡±øPu†¬…­b¬5Ý«Cù·H£‹ª!ê©%þ• «# €šKžú ƒ¼"’*MjhAn}ë ³ž#,·›šË¹‚lšbP+Ò,¬ŠÑ--Û‚qn-¢ª+…—¶HË…~Êò®“TÜ›K¾Yì«K¹X¼‹¯þ&Að/[¡°/Ÿ&+…ÿ0 …ÄÀ@설Õ“.gF©À1Ѳ #Sïg Ziˆß"ò3׉€”ù«1ý}$ xAÇìÜ:Œ° L)CÐL½Á» õL ×RÈ}æÙ´×hªæõ,Qn™d XËx¶ F¯Kˆm ˆ—Ä-·Ô'@mའøxyë½÷¥—VZiâ=:í×5ÿbxþài)èæ÷þBÚ Ø½ŠvÎyç¢[Gq/UfpäSp:zÁ6îy-­_ðºòªå©—2{8 êi¿<èÁ2üÆôã‘·ûP7.ò*Íêì~„í·dyˆD?oÀ×b£säï+íD0o²½þ&œ½íÄõ² yäu"Þ6v%ðe 8›ðÛé&¤ؤ¯9œP ’ç8Æ­E{Ûx•’ÇqåH‚!ªÚä%@"pæ'Û¶!©´™m-ðcŸï€¨=çZš¡ y ÍíkQéH‘ àЃlØP5e67H!þ‚"³Â® q ‹™@þýôà \ŽAtD¼ò å3ÌÐO €àTã‹€á²XEƒ\1 5„Óìh¬!vMÕóÁ 9•Ã\ÙTÏÚˆò4!ì°1UWy%ž0d¤ÄGÃþ'‘ŸôÃ;´ÃÙdr†}c DèØ,2抄M»Î1ÈIr*œì€IþDñ¨ 9 Eެ¨)Ad°>„‘#(xÏšÙ AÓ¨¹€#AÈkî¥SÌêf#ïáM ¥y2›‘KÄ”ó—t‘-K<ÆÂˆe¢Y¾æž¸ÊV+ÁU’ IÒ5w¤¥)½%.C Žøôf-µTKSIò𽥫,i-€F“|é”E“Ðc¬è'É4#¸^dD’ԜĺÉHúÒËYJIkŠRW‘ò?Êä©P‡JÔ¢õ¨HMªR—ÊÔ¦:õ©PªT§JÕªZõªXͪV·ÊÕ®zõ«` «XÇJÖ²šõ¬hM«Z×ÊÖ¶ºõ­p«\çJ׺Úõ®xÍ«^÷Ê×¾úõ¯€ ¬`KØÂö°ˆM¬bËØÆ:ö±¬d'+!ù ,ƒÿ//ï__ÞwwÖ¾¾¾¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþ°ÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ4ÒÒÐJ×ÕFÙØ ŽÓÔÜäoåÙ×Ó àéãëèwèåó ÷hðÒöÒ½ës[Á8ûÒ%øP C|~âKp@u!ªÙ€Ãþù F—_Æ É1Ï›qü8 É“Öêu`Y"%¾[â#À?BƒÖd²–‘ÐhL—K§r9xñß‚šJµiúÎ(NCOZC©CÃèl`@¡`y.‹ï)À•îÚR½­ëÛ¤XÍÜl’@ݪÔôZãÀMÙ¿(ÝI8ÞQzùŠYð÷«Ñéø» êRÎXÍ&-õgK2›æ•Ž-ÚŽ'n‚ap˾N#s8²›,@P—!@w':检!öÓñ‚MGè¿ßG ø§;ní‰v«M_Au†™K04G&M2‹‘þ\Ó¨fÝL®}@Úvzh‡Ô ZUzhŸïñayÖ¡ÕC èaÀ?w!‡øQHÁ{ ~ƈ}æwvÿݱ .!~ J0"|x¼wa#;å‹xÈôà$ÓýÈZâÑW—œèäCÆ!ä&0¨"þyRä—n8Hæ% ühÀ™jlŠ_@Îæ(ÚÀæÚàS'ë9v'7:vÀ ,ð (?f‰Æ{Æ(£&uþ†LŽ5z rdS#f²!S0°€p¥fâ䜉®Q§f:[rx­êÇ’nq#šš›$šá¦€â•U\±Ž´Zœþž¯’¤I%J.G›CaUl}.9×x©Æ•,{bL‰c¦Õ³–¸Àâ7¾[˶[ k‹²\̉ œŠRQí.‘já`ޏàkÅ®¾ð{…½¼LÅ{%ócRè ŒÂ»8ŒÃO¼jŒ¹°13qc¿Àpl©(R|L·!Ï0*ŠXÆœ œ3ºƒPji¥ðÙŒKøé,ƒ<_i)Q%0±Ð¶˜ÛhEPgôÏO2M¡´~"C#Íàü¸-2 ñN¯ÄåçË¢þçî3ùC\Nú)cÓ?ùQø#ÂëTÑ¿ÿ§g‚ó\£–ÇÝy(ÇWÿü‡e@TSb º„žL°Ð¢CtXD¹2Þ„ ºl¬–à¤Ä˜6Á½Dȳ¢Ó–üÄMƒwgÉ#.1:`RâÄT‡&uªàã¦M[²CHàìÎ|bTùÔ£ÀÆ­›¯œD*SîÅrÕ¯D‚û6q§ø)6Ä^¿Rý€N³NGVkò/]–|•TnüPdĉ ƒ‚Ð*!æ¿ÌU?£Ù&cÖ²—à†kM³7¶ ï•hàurÆ](N;˜‹‚ÓÁIøk[ǿ‡N“zBãˆKTMƒ“¾Ë¥dÓ;ÍÓ•ßÁ(à†±×·aP4ò{§þÆÇ]ÂUdyWxôA [ˆXô' Ó€Ø" xw…0¨`çöÈÞ!@žñíÁà…'¦(œW0ÞA m”<ýɗǃ˜t‡àkyd(Ü%íE6¢%æÅ §­Hƒ:yß’oÜJ€vô(J†X®±€WG‚rZ•q4)å'IæTšr%ZžÂ¥-¢fcš˜Êj¼¸J“o~ѦW  …nÒŽh8$HŠ2*Ê¡kŠñ Þ Yæ's–ä (P@§(áWÑf*F€A €€míÔ!{ŠaäoQÁF&®zѧ†%›~’þ F“Ÿª·F¥e2B^¨™[`Á‚†É¡5bç¶¹.÷–&¡fÁ ¤Ë[³•[E= ©£M5WÝÛX&Ç6ÊD½\Ũ¾`jÁ¿¤EÑö"o¿ÓëÇ6üËÃI@{Œ³Mh‹Ì£þú0.2‡ðßë2ÓŸW*†< ( dBÍHŠàÉ7,°@3#èã24rŠ =.ƒÔÎt:©gË0(”C„Ì2+½tB èŒñ0âý¼•Í -j)0ólõÒ.˜ÁÍ1 â®f#F©ä‹1L¢D¼f&Á…[qß ‘?f O…ƒ££UÑ%-Øá60É?®EˆÙaÑA DŽ’HDÂfÐøBaM‚| P¦<JKæ9}$ ò(/bà“O åg4Ó›Sv«–5Ü@V'BÑ]²Ì¢OÔ˜ñ_Ò &üÉ–¯úÐd_”Ìœñ˜¥ÜN#F ÷p3ŒŽ¬¦»Ä鈒ƒ5±Æ) ¥˜™øyàGBÖÍh,Ò””€GøYOP³œËyIz¹¯†ôÓßdæ#ºã¹ª]’æ¡­ãoDâÐUås‹×,è òÕ.s)K¤*( CÃIK”:$XF„åI]ºšrk!¥)=AS^ê4»aóóÓ¢õ¨HMªR—ÊÔ¦:õ©PªT§JÕªZõªXͪV·ÊÕ®zõ«` «XÇJÖ²šõ¬hM«Z×ÊÖ¶ºõ­p«\çJ׺Úõ®xÍ«^÷Ê×¾úõ¯€ ¬`KØÂö°ˆM¬bËØÆ:ö±¬d'KÙÊZö²Lˆ!ù ,ƒÿ//ï__ÞwwÖGGç¾¾¾ŽŽÎ¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþðÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊJÍÍÑË:ÏÓØØÔ6Û× ßÞ$ÎÖÒåÃëÛÎ âÚîè"ÞïêÈíÑ  $p Þ=}äã—îA çn\ˆuÓ¢!—±aÂ_þ Õ!AE ìõûÐc>Î5s  Ä/G¨$GrK‹½ÚuôØ "ÀCÆÄÅœAæôQâF¥Ð¦ 8¥/|O n•8ñ …i Bä¹³Ï º+ÚL"Ò”úJ49ôäGnŒ´Ú︴œž”»°† È ¤ØA¦6 /¾·ŒåB%Ë#Y °† ¨f‰”á`¬»dÉ jo(ísÎìŠÎàæk¬†Áêxº/4 [‡x=«]ÉaE£šì@ƒ{7ÇH¶(J¹tB“Í¥b<öŒꕎq²1ÕžçYѽe‚·CSòu æÙþÑri×—_Ó½!ž]½V}rp?U؇`ð™àL‘Ę4ûíÑŸuÝÕwNi©\ˆ|,h•¥­e †øñ£_•ˆá5%¶^&ËÁ¦K´¦Ivy0Pb'J iGñ€‚dPî¸I“$׆ƒŠ2e&@ –ZªQš˜¥|鯦Y¦lž¢¦="`d)n²Aä¦Ìi–|¶iÕ›_@iR+~ŠQå+æºE˜Ž’’¨Z7+ŽQ©d7-Ž*ƒ F˜‡[*™~& PYp–^=GÖØ…ƒdЀ#y‡cAœ¤ú¨u´ž%Á¿¶‡I¨\þ¬ "P^±x Khfál?‚øŽš8À,«þö›±ŸP .±Ü~ôRtžxkë×rûá_†b.ñJœ¬ØÎ Š»QJ‘ï/=VûÄÀ¿éSðÂ@4 ÀÈ-!q0œV|ÄÅgœØ¥ £›L“·Ä3p K½½—!Ê,8ÐXœ o¸lÈ-ÈLó ¨fêM€-™³© x ó>3´ÐGm7fÐcÆ$ýée3;4CKíqÖ LJÌkçUpµØ‰…ͶdY½áĶç2÷È©§ ”ývÔq+0wÝä™ Ë¬G^Drøà,°ÆàÌô«þ¬YàæÓP§äµ”¸vÀŒï­Ã`€.‹ƒ:Ðe­/~úMª²-½"DÞ@×NÍùM|Þf] 7|×%¨ýÕôÏO+@Ù`ÿ ¸ÖâOXÆ#/ÕKï½ô¢¡£%âÖ–Þ@vA Nã ø-õëD¼_‰sèð|ÐÀ¿4 áÒEæ°*~Ñ›Lîv¿qÕ«!ÉÓÜ‹0Ð#+Õ,µ „Š e!†,¥!Þ“A ‚§ oQ×'‰ˆŸƒÄ¸Ö”lYÀr”ÈPWB!„]ÉRŠÑh3A' æ?H:3œ T AJŒ×C¥0!ûÒ–þ¼8€¶òH„~MÈÞ*”’7 ° ãKVÎxéIÁ~¦pNpØÆ"Q´b0XÕâvxâÉŒ+J€rýP–  Ž"æPŠGˆàb˜ ò)„{_Ì@“lf>`0`¼¤$茲õ&‹H *;ùCéˆ •'%Cæ… ©%¨üˆF4¶ÒAE&‘”ôÒ~n¹ƒÆ,ñ)Ä„¿*É;:aƒßù 1a ê‘#ypÌhæG—“(߯€Å´aeš)˜a +„N@”o(à,VDœrÎb¶Ò›Ä#”œtèR€_7õEÀn02Y½ôå"¹Êik™ää¦!µ¡BË‚f˜ÁD¦B“N°D0[íähJ€Å.IŠôȩ̂J-zR³0’†biK]š¶<ë›3eÁí¦Ò-†4§@ ªP‡JÔ¢õ¨HMªR—ÊÔ¦:õ©PªT§JÕªZõªXͪV·ÊÕ®zõ«` «XÇJÖ²šõ¬hM«Z×ÊÖ¶ºõ­p«\çJ׺Úõ®xÍ«^÷Ê×¾úõ¯€ ¬`KØÂö°ˆM¬bËØÆ:ö±¬d'‹Ø!ù ,ƒÿ÷//ï__ÞwwÖ¾¾¾ŽŽÎ¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþðÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄœÇÇËÅ@ÉÍÒÒÎ<ÕÑ ÙØÖ9ßÞÑÇ ÜÔÈàáË Ôéì6âÍ òñ˜u# š@ ú~%Ä^¼mêŠÀVMÜÂ^Õà A¼þT$xZ„Öô5)aÁ¿xÜÆ°èmAm+ÊÄXRgDo àÉ£÷sf—÷Š*åEq Áfþþ¹ ô:Lžý(fíþdÏ ÅÝ÷y =&Ho7íQ€ @&à!àñ‘L=µ ¨…8tàu4”cuÒ›á!äÑ:aÕ™¸¹E¥}ÅŒƒ…gÇFl­tß:<’áîÕ6£#""ÉV…K6²¢IÎc—&5ÒQe…¢ø(Ç–¤ g#¸qIŠC‰¹Qæ)Sªù$*Y’Y*^ª‹ªˆi眬 ™Æ®´i ®ÄI¡¯Ô)¢¯è¹¨o´øÕh‡`ÀÖ\ XªŠ¡\@Ø\wæ%ZžæÖy›¦¹ ¥ yJEªº5@€^±¹")Üpà2 $ϧէ‘'½™i…ûþ °PÂåc”Ž€:nü‹Š1vyjkÒ‡Ö•En+².nIÒÒ÷!µì …¦xZØî¸W~’lºG@(\¾?™–b(eŽˆDª®’Û­`>R%@Ö%A+C¹ë.V¡hÚÜoGp—8.ß“üîÀwà°uR¥->URÀ*b.¿‰Ï¹0÷d§=¬Ëlÿ~†ë<-Û ©²ì„lΣ֦Ï8 u 0`5 d­ÀÖ tÀ×M4>*&*HC?ɵ°_§öÛp×›V’Ù2]›f« ÷Þ|÷ PÉÁÀVa°£rzu~w÷u×[oõWSÝ©Ô8jLÅþø² xªwÎùM‘ONù EŒIS:9p5’·îºèRÇ.»Ôo?}øÐ¶×Àì·™¨WÔÉß\î ^i»‹­‰zö¼ðÂ'°Ôh 1à/hŠý" îÈLã Ðuø]‹?>´­þú|'p¶ò?X~I÷2vƒºníöÆCì·=#CÊœŽ8P¶8 X¸¢’7¶Ó5hG˜ XbfœuLQ‘ðÀ|r¯ IfK‚ö(Á¼d0@»€ÒDØÿâ~O™V6 „I €Ið #(Ÿ!¡&sKcË(¨Æb0˜É,¸#º¢3‚»@ › )ƒ‘¢{Xaþ´È„ò‡`‹ ° 1¦‚ˆ×É0h &‚ÐJQpâ*>ôÞ½±Tã)îG.N@OðâãÆ¿ V(#*|§‘¹ükIäá‚cÆj`€ê€ Æœ GSÐÏ~ÑÐ&‰@ÇêÉK<«„±F¤&ð±zb' ±{DˆóɼÞBÈ–H––(á Ç7.d—(æ1N’Ë¢Œ²41-3y ‚¨X”70Y.h¢2†Çj^€§ëš7 ß/„NhF°”D²¥}d„r°[È 0ÆO!€³Ÿʧ>ÅÃÇ ´”È:Ðm† ÃÁ>ªêLkN"¡]XD%ŠJŠfÔ£½‹Ï!ÚNlòc˜,©$`J‡zH:+ £Œ~¸ÍyÂô¦8Í©NwÊÓžúô§@ ªP‡JÔ¢õ¨HMªR—ÊÔ¦:õ©PªT§JÕªZõªXͪV·ÊÕ®zõ«` «XÇJÖ²šõ¬hM«Z×ÊÖ¶ºõ­p«\çJ׺Úõ®xÍ«^÷Ê×¾úõ¯€ ¬`KØÂö°ˆM¬b[Œ!ù ,ƒÿ//ï__ÞwwÖGGç¾¾¾¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþÐÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÂÂÆÀEÄÈÁÇÉDÍÒ  ÌÏÐBÔÚà ßÏÃÛ>ÝÖ ÍËèæ5ôÙ íñøõ9îap ;lóþ¼!ðÛ0a ¶'­áBôU”`mŸ‚þ&RCgQIo ¿%0Â’F*D¹M¦7yÆv€AJ'¿!œYó¡…rþ0hW.dºo)Ž›Jõ"‡u !ï¨Á~7‰ZÕ À ¿­\»é+°óȱtš²Ùv즡„ WBD³ P@diìmÒ¾ ˜uù¤YøÞ"þPÖàµbéXFÞ;YÄ‚‚Q13³ òp×ΰºC;ð¡Ù¥›㋚Âʯ¬30x]Û†\¶¹-4ÜûÆßа"(ŽCõ» ŠÙ2×qûì…Û¦ïø}™Â]ƒ>µë8nÂnäâu8o0SíWÚÙÒ¦+H=¨Áƒ03ö;6…ÙY?XÎíûج“+ /žãnB Ë™çXðñð…èÒsެ{ögðjnãËûø˜.½zÀq“ÿãøùôÌN?ÈÃýþTrÞðQmî°_‚=ü‡ƒ= áN¨Ã‚qäDŠƒdXÔ( HèS0@ %áljÀð@[1ùó–!³‰ÕÆŒ™IŽp˜!5 ð£i-âA'¢Î@‘÷P‘‹¤H/H¡ƒÀ|&¥"–!˜hôÐ!WsEÖ˜k4b˜;¶ É‘Œ8A•‘ÙØ@[F‰äˆ·uY1qäH—nÀœf €Åöá×%p²aÙƒÿˆòQ’^lwè*žq\*ª‚a“Z׊d(vТ°ˆ†¡¡ºÒ)“ÞG˨]¨J)-¨va¨µ¸ªE£¹ÌŠ…®hâ‚«†þ¥K¯V| ”E¹À ¬º@{é`ºÊ§×>ñ«L™—±p‹\µª€¦©Í‚ÕAÛQÛ²äH@\ÙÜÔ⣒€•Ûv¦&áàAè@êlÕŽžX&dÑ.žù’é&)ó‚:AxGhš,Æ™)(Ÿ1æ ÑÄ}ü‘­D|+;%¤!¢+~X³ `…{0^ÐqñÎël´œ †À$ &²Ðä Ä[=ˆ|ôh®mü‹ß”sõÕ @ÀÓQãœÁ¼¹U=6Pê^©ƒÌVmLäÎiÂ?o÷]€(€v’ûy $÷àÞ–€ìÌ6*¹¿S’xþ ÀÒ~wŽWàƒë«î´33`îÛL—í´ @Ý@㌻  •Næ À¹ç¼_}xUÞûØ©7-xë&êE·'{ïx3D à^¶ð†Cî€Û}OOýð}P%+È÷ÉiH “ÿûÁeÉ5Œ±ò’Àå bÙŠ9j‰){I ” Ëfê­Øü†5Iɺ•/0ʬdеKÀè±#ç È3)0I…ó{k‘ݶ¦ƒt:us`>‹V¦Úå@Ð!2>Á¿b>….;àŸ6(BJÝhB¼„ ͱ~1yjó ÙœÝ::Mh3j^6Íg!Мý{gDÚ˃Z´¤·t§ÿ0úQ ”£(…iLiÚR™øS§‘ûæH Ô¢õ¨HMªR—ÊÔ¦:õ©PªT§JÕªZõªXͪV·ÊÕ®zõ«` «XÇJÖ²šõ¬hM«Z×ÊÖ¶ºõ­p«\çJ׺Úõ®xÍ«^÷Ê×¾úõ¯€ ¬`KØÂö°ˆM¬bËØÆ:ö±l!ù ,ƒÿ//ï__ÞwwÖ¾¾¾¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþ°ÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³¶¶º´Q¸¼ÁÁ½MÄÀÃÅOÇ»À¶ κ·ËJÍ ÚÓ»ÊÖGؼÝÑáßâFäéë ïí=÷Ó·¶Üõúðé Ç‹˜.ܼÙC&p6€þÍc`°a‘c÷íò÷k¡E"þüšU†°Åޝ”L—’ËÊh-µ¼Œ)ÓL!Ëe£é¢ä›#02ÔÉ“Ÿ@A<Ü… iÀ¢!Žrût§½š”Æê©¨†@I"·n\3zýŠ4è±Ýæ©U»VX±"~)Hx@hWuÙNMªT^BjCë¶Û6™…¾Ül•Fw1cnMO`€UÞ‚Œ-—›€°^œã.ìqYÑQK–NÆÏÀjÖ“÷!†=Z¶i p§òæAúwƒg ïQüÖÈË}4§ðœ€‚è?¦§æv»tßÁçu÷þsròCÀ G?dAIì‹<¿ȹ¬õ‡ìÅŸ?Hpåýþ± 7ÆxCIXCIô)ÈÃ} :¨Ã~ðI¸Ãî0 î€`‡90"Žx…oätÊ~²áW)áµ±”)®1#5¯UãÌk‰”4<îÙ\àDR¢ŒÍÄs–d\öT!÷UèÆ/îfk‰I¢ýÄ%å0*bÙHŒj¼Y7ãåæ$%g%ø1ÈyIdZ”øhc <À•¹¦Ø#G–ÉO…‘5R“D©ÆvÜ!*Ê–hĹž£¡Y£ü(¦(m–±ß¤®Ø)¦š²2ŸŸ†åæ)Š~i„±@ÚEªxÍœ^Tg5&°Exa•*‹¤¬Ê„®¾¶SR§Uþ{€°³lxKSèº+>q*7Àž¥*!aþuÃ’aflº À蕼ÈÚ œK†›ÉÖ­«é’À²³ù1#kÏp@ñºg²¦¦/äÞY¸úkŽºxkñÀ0Ô“œ«¤™/QÇ@€Ï „cŠïôyÀ²{+p‹pë ³¹é¥{ À§&˜sð˜$ðrÌ10pÁd«3Ó+ / #ÛóokYÖaèP €Ò&S–*Ó  ÀÎV‡ìi•‰û'—¡iÍÏ.ð °´ÙS œ3ànõ°· @mCÖÙ¨ N˜‹ñ/h`ç¶€ÒþnqᬜàŠ57¥Ž‹Ké§ý•÷BïÀ«ôÎUo3ì€;@ÚWWÀ¸é\SÖu/ö™VEO2pyæÜÄ­ûÔT#¯ù<  絛ÖB²k¿¿÷ކââ.ûZ\Úìf·¡ë¯Ónö̉'Ekáê]ŽŽ¼+yYÏËÌyÆ-°úT³®`%‹ûQ NxÓ¢§<¸Î\­ h@ê@§+Ùß Ð÷2ØIÉ2ŠÆÍ²³€ÁM6,{‰Æ^–‚¤r×zað‚Dpa`RB‘1«.öz ‡ðœB…^=<XhXŒÞgˆD@ M? ,)‰HP˜þ5¾—°³4à>-J‚—±5 d ‹JÐ!-¶v‹}­Ý >5ÅPÈqMÛðÌšNÇ5®‘Ç‘GÄV„ÃÕq*³À†ès·!œ±¿hrBb;2GDÔŽvÓ€<^‹ ›òÁcÁIv쓌ؿQÁøÑBA 5„J¨.”¢üá+(iÊ_ Àÿ𘼇„W²BŽáøÌï,Ùƒð’F»%ø0öâkîr\+k¢O¥ÄØŒ0ÊcZ¥w¸AÔ6m`ÌS܈!sª_u©ŠàÁ³H]afÚéÎíIS~•,eœi¢TÑšÖ“gAíVnjf¡ççÁª Q’ÝSkùJä?+ŠÌÖˆs•Åçüš$Îuèk$¥“I$¼”æS \妹Rô¼Ó¥ ­)yì‰SBrÔŸéœfPCJÔ¢õ¨HMªR—ÊÔ¦:õ©PªT§JÕªZõªXͪV·ÊÕ®zõ«` «XÇJÖ²šõ¬hM«Z×ÊÖ¶ºõ­p«\çJ׺Úõ®xÍ«^÷Ê×¾úõ¯€ ¬`KØÂö°ˆM¬bûˆ!ù ,ƒÿ//ï__ÞwwÖ¾¾¾ŽŽÎ¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþÐÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®C±±µ¯V³·¼¼¸R¿» ¾ÀT¶»±ÅDzÈOÊ ξÇÒLÔÆÙ ÅÝÏÞß  çñéKà̲îïòöôAà·¿(—m™Á~G¨ís  sÃ&ÐÖ-ùèš'q"> þÑ|akocÇ-8;é…6+YrqùNæáÙìÒÛ‚<±=Ê¥§Êø(V#ÁȘ!”ŒÈôAPi-}V.\Õ4uFÝšÀ©ü¾z+Âä„ò‘DG·®Ú rŽ0É›»í¦½Û¡'$fÀ@*G»„Iκ6¶¸µ?¹ðÓ¿ø­yÖ æÎ&RRöêÀ©_Ä¢FA°k/œBeŸs;{Û ?¢<‹sï ¿/Àzñq_^è+4Áó “+\êü:ì–_^í}Çv•¢…Š-/„ PÍÙ¡yYþ‘Üí#!H^¿þþþAPw áÚO±‚ ±Ýz úžu‘A†ú@Ýú€6!ú T%Ê`Š: È¢¾˜Ã‚2âð`7ôD!Ž4LÈc þHÆBÎ0"l$ÅŠPk8†ÊŠg(D¶…¥Rƃ™2Ñ,Ã#®XÆ— YæUÜP£|“u²=& Ijãš;8÷ÏT‘l·ãÁùÅàfJB‰QN€›C€y¥™qˆ™¨x¯É'¤‡‰F>#¥Y—§rJòáye#G]Z”Ÿ‘Y®]&&¦šœ8Æv#‰iè(GBÈEzêe@+&† Õ¬ïaµG¡¬þâàÊn+|ºÚáä°+©WÀJÇG–r*€€  ˜‚ŽàUluæÊ‘ef³ÄJ@° H%ù“kGQ!ož€Y’-ï<®½T`”ÉAÑ-ƒ n< ˆk@ÁÉ’«QjÞ2dëëbS%!nV1Ϭ±®R`T»@Pl"=ŠO⦜q¹,ìÀ $àÀJK®0nl ãŒÀÅ_¶rÌéüÞÈC,ŠÍ­ðª Àjõey:´ÐQüì0× 3À©0k5dÒªSšÝ6|W·ÜáMKôFxË¢ Jœê<—Äw³oQyvÁþ ¾šÖÐò¼C©3SÕÀÅÜS‘À…@ZñÙkÀèÉŽëù !C?µÀ)˜E`ËPʾþ¼ÛÇ>u ÓÆ÷ÌÄ¥}êêïSk_.ÊÅ# {Ü<üÞ[銼ŋœùJ œl=´Û‡Pû×Õ4ozª¾O¢íß (@8éç\üíÓ@òfE–ð±¦F¡´ÎÇ=å¨ï”€÷ hšˆ< êÙX8ŠëjäqÌnÄfŠÀg6à`à'¬S-"«ßœD:¨°†³9Òy²ˆ]Çh‡)ÂËž“²? ‹Ì‘˜t„!Ê„Y0ZðÚã“'ð-n+Úþg:2±®¬ZD@âI˜‹¡EÎ…m£@\Ñ©mšÞ8©îÖ!Hkptfâå×QgP Ö ìÙ!;¯ÂX»å>ŒßêУX ¦!šË«GX~T½§€0áÂhÅE è8c3š…Ü"®T†¨ìÝŒœo8Tð9űÅãô\Höqj‡‘A'yœf¼¦o£uØsæÞ "ž^îWxdq­K,Ç5Þi†¾6;gA4ún‡âÚn’[„bäÞÇ3a*ΩåÅÕO‰Ê^²SùT`÷f øñõg…ö ¨ÅVþx`‚ bà@ :È`„U<˜…VXˆa…’mXE‡NbˆQŒHâ&žØDŠ*.Áb‹I¼ã2ÎXD6áPz9 ±cIüäBYD‘Fê]’G.ɤ’“= ’Rú@e•<‡%‹XGuËt‰GfÈi]æ‰G‹™_zµOrÍ•ÓQœŸ°I"ÀÙžc•bç—Êì˜lÊ-GÊŸgV&YH²¡v˜ ZG8]fÚI$1PWOðu§ €×fœòI §9À#Úug¨½%@Û£—žêF*ÐÀªÄw"Š<¨h‹:ÔãùͨC6æP`Ž7ìÈc þhƒBŠM…EÆ@a’3`Ȥ #>ùB”R²`"U¾`âYº "—æi¤Ö.†9ft3ȘY˜1€V†iFã_bÂÁf2«$†€–Y 8Ò9¦p†!’/´@›\ €ÙŸ$\‰Ól:à& Šqèm (0žK 8Ê í‘aÖé(ƒèC›Vqh` $ð)0P ‹Îi¨0ÜIÜbáXó…E©"@,JÀHþž°œJ¦¶Âmé$ \@ ¹úÖmœzª, úeÞbjFhÔ&“>Ùf³m±Œ10À¬o’—)½Æ;ùzÝe!5i>jìC @¯­!k)eâ2ó)°—Á»Eà¨hŒñ«ìázpïþ¨Å´ÀÉy-·,lgÒ»@Ä%Ãué?\Üüê¶c°Ï~ÊQN¬ 7Ð , € ô«l4™Bá±u¨ ¼Ï«Ðµk§n:?íõ×!SQ.e i€¦"1ýõ4MvÄFL›k³ÛnB4mmߤ®rþ FŸÓrÂýè&zM%ÌÝEÄÔ”]7ÒØ5k bàGôJ›µþ11ðiÒL'Ðô³â6«© àj§®à/Äú´®9Išzal·ú?£ÓÐua‰±>N¿m'°tÒ Ø g§·ƒK7 Œƒ*ÁN~Çt%ì!4À/½ 0¼‚å” -²dÔö ¿®} ܛގåËԯ︺µðKPú²dÑ’oL7™Ü‚üO ÜäF›pUÊø1D‚§RLnR3à·ÎGÝ9ð¸F±ÎV Ié«\”%м$¨U®&0V§ÕowûÖ§0g¶×d+h’ØœöÁÄÐ|’Á V4‚CHðY/ŒÁy&®;ÕmP”¨Th +0i ƒ­’Áþä"æÄcXìY„ p€â §e6ˆœÙ ,®° .QÈ]ö‚ꀩÃâªlˆ Ê'ELã‘4³ 2rW¼"C½‘ˆ 0ñIG³Xl±&Ì_h"ÄŒ5†ƒ*ð‡â–Q!`'€Çgƒý­Ä,”•U¬a5Eâà’' c*ÛˆÁ"¨1—]làJLzE‡dåœÔb­òŒŽå ã¿qTª“s¤# †‘`ÊÑÊ‚(ÉF/BhH`$09š¬mL›-âf—X0Îyâ%ŽöTAI’˜Ï 줚ýùP ,© &P'BK€Ë…Ž žA1º# ‚†Rô¿¼hì¨Ñ=6ƒ™•„'th?9•Åž|´‰Òwa0U›£4%¤Ë{Ôc—Ь ±å³p2éU£JåLaô3aª2K× */‡ê o~q˜BØkp*R¢æqª¼ôiG·ÊÕ®zõ«` «XÇJÖ²šõ¬hM«Z×ÊÖ¶ºõ­p«\çJ׺Úõ®xÍ«^÷Ê×¾úõ¯€ ¬`KØÂö°ˆM¬bËØÆ:ö±¬d'KÙÊZö²ˆ!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²Œµµ.#¹³r·$»+ÀÀ¼nÿ&%ÂÄpƺ¿µÉ"˶ÌkÎ' ËÓÞÖgØÊ ÜÒàãá`ì&Û ÓÏõíeïß¶Éêù÷¶ŒÛ5ŒŸëì% HÛ¿mÝd¨ÅXA]òÎ¥SGQÌ>gÕrÅ›—°ZG;æþ¸I;¹"I–zpësÏn jêy±Î<)¬üYÇ%Ñ;)i-ÊíåR9¥tèT7Q 8½ê&©U®lŒ‚}#SêX77 ä¤ñ‘œ‰‰gsdõ)Ãâ±·qTáP—«póâû¢ïƒóJÜÃ+ _#(8Ç-¸‹Œy.œ«Dʇï.¤—yGY¥/6ˆ3—]Ò°KçHû×…ä™Ý,p°Îµh޲odÝz‚ë™ ¼aÆ\ÇÞ Ò²ÞMzùâæ;6‹ðŒ»Û‚•ÿ` ŒEƒ™Ò¤Å­ÀgÛëo‘/¿bòÁÛݩӿ’µ»_íGERÜ,@—€Zœþö‚]¤„ƒ 6aö7¡ñv¡3m¨ÅzˆEY ˆˆEJk™XEJªøD….VaŸ†1J^R€È ŽRÈcç©õ#,ùDZ-iÄŒJ61M"¡£Q.¡c‰U&dŠYêU`—H æ’Ü8æOžYDˆj q%‚ï)…û½‘_Ò×Wl@©„˜åíéÚ-æ´÷€I£É‰Œz²YÝ1àÏóµ!œ{ŠÀŸá$¥>°‰©[ô<À@§jSns€@w 0©Žš |#8pª àÔø)› ¿ý¢ª 8 ëýW'©¯þÚY³² «ù gIé“(؇ۂ5Ø–½ìJ.Ëv×ì §Mù¬v’po#Æp§í¾ðHØS™Bà™™„K‚æÎ$i I‰Öƒoô•\n …;è#ñ²gl bmIp¿Ò±+F”œ*¯,·ÌrŸÁ ó#—Ó)?††w§$ ûçóÏË!Y-¸é «ò¬ª@ÿü0ÑuWËnv~”4%ë5ë€AjõÀ×`ûû4§—ªbwÜÉz$…‚ÕV~ÝÌ„.Úâ%ëIR œö±pãðQû”ãY‹òΚ¨lÀg D.ùä ¬—€³^8®­>Õöf‘|þŠnxÓ¤'0¶tŸ;x¥£0MúÏÍ~Dáùý½ë, S®»îœúwúšÏÔ^]¸ã–¤ ©ã„9´«¾T´TÖбóDøëñTПZÃ8mëCó•U&{@>ÎÃôvß‚õvó¦]M]íCÏòz?øP ¹êtšºBp@ð d;°€±y1¾u¾a̲Ÿ¡—?„¦^íxÍià¶#ió2Á À€†Æz“ ‡(—Rë— ü ï*@Ç­`Å:L8Än¶ F>§° ðqþÑ2 †·ÑôЇƘ’.£¸Ðé`†þ¹a™#š¼µÂY™þbÚôƸX/„¸hâÝUFTÔÂ>bdÁÕ„0° /·{å4Eäd ßBT”ÃÛY§ŠŸÈ×0ì£ÆêŒËŠ?À ©…H'¾+Àœebƒ6ßp u´ãÅ¥B.rYaXâÀå›Îµñ;Jëa5:tkL‚$‰2Ë&ªí•KˆáRæI^u1 HâÊ«ŠiIPQAd:ÉÞ~ Ì`š&wtd%Ÿ(FÕ¤jcÄ¡x¸ñr” 顯š€‘#þhJ§¹Ž0i¯8Âl ééãà‹mþ*yl¤Àp6©ª lhÖ´ÔVûìf6äb·Þ^Ë ¤ëÀº¸7­¸äv`­vž!Pf ´ºc¼ÌKï¿gÉ+(œéc¯½§ºä?iv’ìU¢ÛÀ¹ P´0B`ÙUñÅ“<<{ãNà€Å\¨ÅÖg Õ#+5òKÎÀ²V^z6ª9lèÞž œ«.» 46…(;ë“Û™n&ÉHÑ {¦ÇN8 \dÓôúŽŸŠìÚ4tOO13t¢ˆdB¥)â]~ ,ol#ü/¶M|]y]Cúi9§ Xµ¤´gp±ØàùÛᎴʫЎ1í©Îi§ÛØ|á¬ô!þ;7P% Qš µ rÇ4Ã')e’ù…ˆðaå}ÎBèN«rdþ¦})ø+™ì&|=évU2¤î! ¨-Tì4ð Ð.Ù”$à^HVÈ“W ã$§p ¯KnQ.®ñþÀæ1ük zN¯T3³H#‹£SѬæ4ëºã @ïýj½âÞ'"‚ú"T•ÃÚþ<§È ‡àR6=O„-UÊ Q>òPOtZ¢ 2bebH)Nn.·)ö®} Ó¾ƒ4GI U­³’•¬U¼…¢±^œ÷6êiJ(@<ð‡ ý∣QœXìf¹Z¹p6ãTþmœXª rñ‰WÇ!pt ux»¢ Ô—¨é6itm±€\LJ¦«bld€ÃRìÑ ©[ÄÍXº Zç:Ëøâìòƒ*&²“ÀS­àØ0¼OSG¤%ÎØÂ.V’±«c¸86ŠžL% yÐG Œíf°”cKËQúÀ,!‹ÊÀI:•Eâ•´ͨ„Hƒ÷iˆ‡Ccþléƒò‹ßyf p)M³š&p&6[Ð*nmó/{ú& ®)Îh³œ(è&:gÃÈuž€œîäÀ9ã9uÒ³{í¼§à©On Äýä€=Š™|Ô{;hæ©P ´¡ 4(D¤3P‚‘ U%6w8‡fl£¡DmRG™Ž5Lô ¿æˆœ&†˜'z£o^ƒNI&í¥Ì¬&©¼ˆ3˜v•7¥©NgÉÓ >˜Eí¤Nw¹G—æt¢PªT§JÕªZõªXͪV·ÊÕ®zõ«` «XÇJÖ²šõ¬hM«Z×ÊÖ¶ºõ­p«\çJ׺Úõ®xÍ«^÷Ê×¾úõ¯€ ¬`KØÂö°kˆ!ù ,ƒÿ÷//ïwwÖGGç¾¾¾ŽŽÎ¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþðÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œY  ¤žg¢¦««§c®ª­¯e±¥ª ¸¤¡µ`·´½ÈÀ\¤ ÆÊ®ÍËUÔ Ñ»ÊÜÕ̳¡  ½¼åßZͦ« Æ»Ý×èPÂñÆíæÞóéÎ²ÉÆ ZuÛwEÜ­_Ä¢áúEPc ÊÉöNbœbÈY|ÃÀXmþÛ`dÒ ´ J¶q€¤Ê4 D|©†âGšj0jÄyæ$—<ÉŒ z&fJ¢elE F'S2+>3tj˜“G­~a)U«—˜3½vQ*Ö‹ÓûYWv…Ï¥³Ôž“ÛvFÕõJ)ʶn ¬!ê)@à®ÉuùúúýàÀ#Ü © öx ¢4‹U$0¶³ƒdP”=P°`ZâÌ+¢ÞÔÀ`ÁfÊ Q*À+êg±IZA*n¾0¼mðÉC»› ™i}s‰£Ð9™7D|k£#Ö.]ELë2¸¬}ºÀî)lzT  dq˜õM¥½†“áÛ7òºóþ%þãÞMP„Nœä‚HxDƒJX„KøD¡ý]ˆ„„úi胅Ó‚!áÑ€% à)qRX-‘[Œ>HHc ÞèC†:ö !Š=ê``=((]Zñá qäåC„·åxB䘙”¾èÂ<¿¨ý¶Ö*x„¼4ù‡Ý‰™¯Otй`å‘jzÃ@r2`N}#ù_—˜ peTnÉLS)|WØ*ŠG:Z§2 ê‘X*‚q wY2{R6@‡Óq†’å0T }Tw«$@I$ ĉ*ܹ+7 𙮌yDb¿þ¥º²Ĺ찵òIe ªeD­½R–°É"ºíÅz -¾î¸8»å6a´.»Dš¥¸J¸@KôvÐmh$@Ú 4àÀ6:Ö¯å‚GYÀëÙ´0û:l±1Sìà (|ZwnÆoÕ«¬kóSƼ¶ò¯e%F/³ÌF{I ,WÚÚÌÏyôíÁð<­Ï8®u'Àqœ#/k5 _ì0¥ŸÐUK¼ í1ÈVk…”Hö &ßû€ËÜÚ×!«=E=Ÿ€ŸÎˆ™e"J -YØ*SÔA¤Òr¢vŒp³*Rõƒú†`/e îþí(›L³ÙFg!\O ,Ãé^‹æ’Ú½@ªã$!iƒdÓ¼ {¶¨[웢s4œùMÁŒ%Týë­-L§©ÖsubJ¹îÜþÀèØk¹ ÉëŽÝóŒÿ9ÈôfÞ"¯ ‚ç,C÷3—äy½7þy¤Ä>ÏZ›¬L®ìö¬‰IÈ®£X­ÃMyý'³ø9pS"ø—ƒxÁõÆt"Õ¦=êÀzæáç"è+¬`7;^‘'WpMoIŸ Œ'6ÏXÐLíK 4²±#rw’ý©À](Ñ ­ã¾¿y¤XREi ‹gˆÙñþŸÔ÷ÄY瀛À¯MŒQ†0ÜpDXø"©£Ìlðæ¤»˜1Љ9  …ˆÅH‰í™Ÿ+tx FÏwç("7Å¿ü1?Z‹N@Ç5šæŒŒèÒ˜'¹ ˜t ôBY>Ð<‘ô!ߣ©D†¯xt壄¨4”Ð{Ÿ¡¦çÀ/„EØ(x§?Eòpü%­ŒxÌ”1•Äœ-‡eG²‚Ò$Ò*µv*lNsW¶|O#Ç™Ì~ i,x&:SPÍuš`Dî<"@♞'Ò »§ ΧÏÄ„ýü@T`P © #È'BAÀÏ…~àŸÕ˜LÅ" ¯yRÔ ½¨ªÑ ¼ ¥À6CÚ.‹’ôl:éÔ©R˜ÝC£¬D@¹Ë‰u²‹&…Ì:ɿĮÐx…xÊÙÇ……òŠ„â$Pë1BçÄÓm¤E3‰”T,žgª%2eTg³Xzs„ëe|ºùMzM-—dÅjK×ÊÖ¶ºõ­p«\çJ׺Úõ®xÍ«^÷Ê×¾úõ¯€ ¬`KØÂö°ˆM¬bËØÆ:ö±¬d'KÙÊZö²˜Í¬f7ËÙÎzö³è‰!ù ,ƒÿ÷__ÞGGç¾¾¾ŽŽÎ¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþÐÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›yžž¢œi ¤©©¥e¬¨«­g¯£¨§²Ÿ³bµ²¹Ä¼^¾¢ÁƬÉÇWÐ Ͷ¹°Ñ]ÓÅŸ ØáâÚZɤ©Ã âÏä\¾Æ À ÆõîÛÊÙõÀ «öðeñVkW¿ºp LS½…sóq3uå4D1ŽÄ`þà:¾¹¸N¤Á8šló‘âJ6$_²AI@¥Ì4-CÞDsQÁÎ44mþ,Ó`¢Î¡dz"5³ åR3>ƒ ˜Ï©bš Ã:&*×0 ¯~õ¢ÕåØ.œõÒðáÚ-e¥†ò¦Ï··+b†xÕÎ.Þm÷þ’À@‚’×þÊÈ âÕ„ÌúÑ;—øžâ¼Áwð¤ Áʼnú KÜ÷rŠÀt¾è ôDÃòö•6}‚1 <»vÝ:‚ÿ,“ÞGûÉǺw»>p8.P¥/AS¹k‡á]ë;{z‰–»>ª]¸e{w½s¨îp¼¾•)³K¯^ƒÒ‰Ëïf¾~ˆ¢ÁøþMøÄDb¨€*ÈDX. jE˜*q_†FLÈ!~h‚"Á`‰E@ˆ¢V¸"!¾Ć2öàáeùb0 þ_eȉ>6ÎhĉЕ'Ê'&ðÏs~Í ¢ÐàÀg”´ß80´H›Bñ9\MÁõGŸ 1Žùc8 |FÀÃÑ@cqT’&€!Η1ÜØ¤‘æÉ'h & mâå¤lðYiÒ@$ŽuñS'? T5ÑB¶ðQ¦åˆÍ.·<)’}†ºÂ•5RÐ)h ¸z„¶¾«)åJB£±jdCVùÂÁZÀ«0.þ¢PV²K@­(LH*´Êc³#xê¶H+寴‚ë¶Â(ÙÁ„Ápk®gŽûœ¼ º5) ¶²·•½ (@oŸ¾ñ;AKž&pøZW“· $¼ðŸ ìp»‡P8 0ñ•±Æ<ÊUÈåŽ ²žªÔÀÆ*ÐÀE ì@£³™»y«.²;[à¯r ð¿0}Þòr 3Àì¹…ðÓ­*-Á¬ÛN0¡X¸}lpA—USž^[Çb÷ª2×S4LÓ:õŠàùYÁ×!,{€»L˜ª A™]Ðò ˆ{÷obº_ì½r’½Dyþ¸‰§p#†•[KK€‡p¦ÞJ8Yh¡‘ÉO;ªëQXÔ>ãI5W¡:ŠíÙÊI-œùZ?¡AZ ‚÷wsêÓbpJä¡×À°‘9ÊÈïvΕ¹¨³÷0ÚÉŽÀíÐâ+ ‡uo¿5.|å —÷íÙL#ÝøªûBªùnöÎ@è²=4ƒ€Ð¥¦‚×­Þ”§æÝ~ðIb8tÑ<úcM0Ÿ¼40½‹‰¬1\ þ_ ¤8|T©4¥ŠS­ÐRH U†K0Q„Jk]Á™Mšvï}¡tçRéøÉ˜Åo6HEç‡hX¨mj•CD$á7u8±Nj©de©Z×ÊÖ¶ºõ­p«\çJ׺Úõ®xÍ«^÷Ê×¾úõ¯€ ¬`KØÂö°ˆM¬bËØÆ:ö±¬d'KÙÊZö²˜Í¬f7ËÙ‰F!ù ,ƒÿ÷//ï__ÞwwÖGGç¾¾¾¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþðÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›žž¢œi ¤©©¥e¬¨«­g¯£¨ž ¶¢Ÿ³bµ ²»Æ¾^À¢ Ä»ºÒÉÊÅ Ô¬ËÕVÞ£Ÿž ÛÝß]ˤ©  æ°è[ÀÈî÷ÓÜóéÌòÜðµ·¯_–qµzáS «—Á5Έ=¬ƒ-ßÄ9 ˆåºgØ;Žþq"Zù¦¢6’nS€Ò bðZ¶!6R¦šŠm¦Qi€¥Î4"Þ$M虌Ê5ã1æR2"‹>ƒs*ž>­†yùQ«šR½z©*ö Ö²_¢¢KtmžJÝjáêT.µv³ ðŸ…pySœåëwWƒ“· KxB (Àæ®.?Å1Àvx9AEšøð!¸Œì2æ{%pVà™æ3|®A@Ù¹Ó'š²þ»w1w´,`Ð`ÀÛ¸KˆôÝáÄï½âUyò˜;‡Þ ìßUÔ§•¾.‚g‚áÝUÓuÛ:yÙÛ†Zošô>Àï14m,^žmüùUþ_Môuß6… ¶àæô  N¸MqYhD…"QQ†ÁaˆE|HbžX\r˜XzçÕt1±ßZõì〄DÄèVŽüô’ÑÑ8T‚3ŒˆÖ)Á¤RM À^a4D˜“5 óÙFÆÕ˜$1†e}Í|¦€>ñÜ€!nL"GMHI €+(¹$}dJ³ÀgJuiƒ‰-Ò‡) |–€>tª`'ŽÕÙ6Ê›` pä €^9,Fà Ÿ c )ªh†~ú‹¢^ÀÓl<¾àcªÌÀ)†¦* ¬ e­'¼Š«~[¾°è¯J+ V«Hþ½ÃkÃ*kÁž4µ:‚H J‹±+=»Á€hûÁªx›A³–‰«µà1Ùª›·ï,Þf®…)¯«Bio­à&µo³úFÛ¿4K b3È\lç5Ðïl ‹PQ ´öplñV¬^4°€ÆÌ™ë1<•kÁa%Ÿ _¥ ƒ)rEY¹ÜÁ»Å•'éʳÍ0ëÛyÕRРÉ¿»q½EùÜ1ÐÃ+2ÉC &Òê6 ð¡L¼ñÓ÷‹ÃªÑ¤ÍÔ¼¹fmÃQ <êšÅŽœ6×kíÝ ¥ï‡‘K¶ºbÿ=A´°›ÖråâÊf¿¼«¶vÓSQÀ vþý®}⪌M¥Œ‘@ï™ä-~äÎϬ·.Nešà2B_ÓDÞ혶8š&’Fó‰¸Q@š&R ㎥Ÿ¦¹Wl©J˜ݨTÀq 8™#A»€}àÞ_‘ǽ®Îâ®k5‘EÔÙnhn‡÷ȃ7%ü^¾ˆAì³ý.ƒ¬ °/¹äžÓ-Îá=SÐh{§hH{Âg¿ Î}1XÍd^ó0OÀdP™C›”¼.­®?Ç8Pè…7<†ÏI›o,H“íÈÊàCÐõЃ'Š2³Ÿo ˆpà)B—3’òš#V‹ÚÒ¶ºõ­p«\çJ׺Úõ®xÍ«^÷Ê×¾úõ¯€ ¬`KØÂö°ˆM¬bËØÆ:ö±¬d'KÙÊZö²˜Í¬f7ËÙÎzö³ Ý@!ù ,ƒÿ÷//ï__ÞwwÖ¾¾¾ŽŽÎ¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþðÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›†žž¢œi ¤©©¥e¬¨«­g¯£¨ž¶¢Ÿ³bµ ²»Æ¾^À¢ ÄȬËÉWÒ ϺÑÓʱŸ¸»ÙÚÜ]ˤ© áíîäYÀÈ ê ãïÕðS¯ÛÇ ÷´!Ó§å[­O Ô%ÈëA5Ä äz81vå8+`/cœkþÿ<Æi@ È8'žlcqÝJ7¼lráÌ5$‰Ýd“r§š–}ž‰)MÍ¢gr@z¦¥J¦b€B%³àT1G¯†Qª5*±§]¹H ë¥*Y/YÏnQ Ví§n· ãW‹ÙºXÒâ­Âv„AfÁöÆ€‚, ù—˜42`°€™‡·¸û8òdÊ ( ‡ eDuň-<'.±f $(m:¢íÓ¨o?S -ókt ^ ué¢,¨œ¹ßo ˆ\ô‚Ï ;pÎ0¾çÀ#*h½m‡ œï!úôÂÛõsξCð‹ðgè»þ†¹6åþ—Í|ºæ__~}ãk£¤ç_-aö`î™4¡Ix¡†õWNÜW€†Py÷Îj%8!F„ÑU+ŽÓ  LÔˉá°Q€0Jã%m§‹‰8ˆh^‰1J€iA1È¢ s‘è!‘8`Ú¹ô¦Wx¡wØF€1º!YIη@K¨ä$)zŸz4Ð6æxƒˆRÂØ1JàÀÙÃËqžõawÜ $Š ©ƒˆm8{$ÀYh©k™ƒˆ/~Z„âwÃ\V™z•Ú€ «€‰% gÒª¦5ʨ®„:Ý‘(ð ,vú¯Çþb+1}š@i³ØJ,t%Qû¯×~ T©ÚnÀÀÝr "á"ˤ sI”.ÏŽXîí¢ûn`fº@víÙ6ï½`j[·f’jЮn²ñKR_%,‚R¥ Gpy·E+ñf5°ÀlÃÕæîÆ!ÌZ§"gLòœ=üqÊà®ÜA²ë˜wðº2ƒ@³jש¬{öæŒA ßFðÁV=[©ÐmtÊá9ÁŽL_à´m Lä1ÔúBFXÕu=žÕEÛfZ«B_-^Ì(ÅÊÄýK­ùþÃvÛ±Jà1ÈfË­+Ý·­ˆh? ·‹nÛ¢ô"¼ÁÎÿ]7=Z0—§þX[ãz*Q !V ¦wû¹ß]QIÁä'µÞ¨‚—’û[šx^êìÍu¤å;;/]WŒÑ8cÀ‹¯ÚÚ~9¾oähúhKdt:úd|z^fÖš5*ß‚­½y íÇT#l¯Ý¦úìâ3_ùãŠúzÊ»s?o濼ÁÇ…;jN²¿Á] u/!ÞaÔù5¨~Ž*˜Ð‡¦ÊPö+Ó „%µ!pNŒc {¡Áì¬t9ðNd0™ç¹f–‚©¥èê8¤æ” ˜{f0’tGÆBW9Ì€Wi¿œE³Ží‹ ‘iªkÞ2›æZO®§¿+Þ2a_;‘)ñ(³tZ2–Iœf;#¶¸³ž(h ñ)‚¹ì“Ÿ ð'@U Т`‘=ÁF„—P,´¡&x(DÍIðljbkD{ —Ñ l´£!Iá@*.bŒ”¤3)J= Ò•v@/.šãHúA½Í”õ ¥M3¥ ~2s§¶¤fÕ6é‰é8°“Ù#Ù%»ƒÁN2g—ÅÚ…ä=®_‚õÒrl—§f¹LM»%'Û,Zßfñ* ÊcIëN)«· Ó¾TÖžâVĸ~ijˆkø™»rŠQxM@¹²åË•`N ™²f™#›¸›²´éÓÈP+LM@Ã×°c‹îPµíÒ n¯V@.ôl /.N¼¸qã Ž/0Ü_ìp¿%vm"UCÇÏ£s¨ù…uQÎj¿@4ˆyÜü9?+%õÆõ¥{ ÏaìTë>±ü|þâŸ>R”wÂ}ôÉž!è铽'Tƒ¤„²Ž½8$Û†8èGV“ ƒa2î@šyJY™àÒ|éQO\¹ø!¡;õÅà!ˆ9DJÀwæ°bU fç@€7AÂPÓV-&&å;HcÀŒÞ0$X2‰O•?féÂtc!؆âÔöc[²—MJ¹Ù‚‡ éI ô§ *!Ü!z¢:õ £(á¤0J©–šˆ© ¹é<ã# ŽŠA© }š‚¦ª^懮žpf¬Ìz@­$¤Škºò*B„¿vÀ& ·»X¯þ¦Ä¢²XdÓ ³â-€REB£×~( ð_î‰ò[i¢¯LzjÂ6‘ÑŽ ¿A ŠCúaýÐ0¨‘½DéÏhr]©" fTÕZÁ, r”Lç~Ð7ö´®|,H‘žv÷4€?[€°™Ë à…0|a^ˆº †5Ì`t…Bâ°2C½†HD" à .ªŸL2«":ñ‰PdñæÇ–&:u Lþ•”Szñ‹€ ÇhÂŒÑ~Ó“K¨²˜€j&Ÿ‰ª³ž25,‚ÙEI“‚T¤INK¼I•Ç©¡…à|òóž¡-á9‚@¤"ÑX—A†¯%Š^W‡ûõ†“M2 Z¢§UêK·³šT7@߈òÏò]")ÉQÕ$c›ŒOk¹©[–Òzšä_™2H½ø2”À å0ËuL­•1+šl>9Å‘ñ%˜ÌfvÍ š ›Þ$8Ã)‚­‘³œÇ8§ R¢Î°³#x'¤Ï²ŸÀ'@; Ðn  ÍPª…2tU {(y "*Ñ 8TŸ<Ew¹@j”€ëdÌ逫”2‚ˆôc.Û§±T2¤z¹£¥Ñ|‡?ïSY„ 9nz­úAs~<ÝT÷úGÉ RJ’?eiK/§Ó˜.“^Økê$ZѪZõªXͪV·ÊÕ®zõ«` «XÇJÖ²šõ¬hM«Z×ÊÖ¶ºõ­p«\çJ׺Úõ®xÍ«^÷Ê×¾úõ¯€ ¬`KØ}D!ù ,ƒÿ÷//ï__Þ¾¾¾ŽŽÎÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþ°ÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œ{  ¤žg¢¦««§c®ª­¯e±¥ª©´¡µ`·´»Æ¾\À ß»²ÉÊÎÈ®ËÔTÜ¥¡ºÈ ßÝQ˦¦ÃÛÑÒæYÀÆ îäÓïðÌÓÙõ÷âôm w+½ÉéXæÀ0„ ã ¦ ¢DŠáL$ ã›þÃxt£ äÈ6%‰dsíÀÊ5× ¼TÃ`™jlâL3€½fzþJ¦'D¢c8Š4ÌÆŠMÅ<*uXGª`@‰õKJ®]»¤t¶K˲f‡ÉD»¥æ0¶\tÂÕ"tn–ºv¯Í{E)S¾R¦¦"xp`«†§h›øÉׯQRP° 2ƒ¡\³ÉYíÏ$H@¹2A~Êeî ´³ë×ë8giÔ«Ih5€àó=aÛæš8½·ùNŽeóß —++P0:t1àÁk—™®>A±ØiqË‘„®èÒm'¨ÝN< xÞ\¢”l‰…ÑÜ»ÿ_¨kWõþrw?l´ ø‘žwªÙ_. `“Æ,(DJK± Ž‚ùŒȃßí¢P}g!äÍ7B&N³ß Ê2"TÚ Qß ý‰7Nƒ|͈øÈc ¦p¢Ží 9‹:éâ…6=g^8Éu‡3 -#…%Š6©¸Ó‘56Ð¥4JÊГ}H-‡f‚ øSš1(u`n È¢J™™‘"žôdf<¬Iè†"šƒ‹bÐ(#ú階Ò@^‰‘ZÀ¦8|jR§ˆJL¦0@Jª¦&€j •®ºA«¯ª°§²b@k ä1–k©=‰É‚ª¿rÐê gkM°-þ8§ì 0«B¯Ï‚€´([­×>³@­L¸ÛZÐí3®Ž°‘O劰®MXzÁº¸¶Û† ¹ë koÁfçmë²ùïJu´ë‹èˆìÁX( 01ax§Ä ؄蠯k€¼g€mÃFrÉ(ð®Ã€ÌY½,cà²p[9ºF5gàòÅÄ4ü­›õäkÏ Èì1p.g¤M(Ò¤¼´Ÿ ´ÖÙUx±¬€Ö6!@³JûoOcoûõkb‹°ókCææ€ÜìÌtk°Yh@“k׉!. Û¾©y°wÕ¯<“U/ýêÜùo¯–£*þFC´(€O ù ¬ë7Z &4~à^Ábáª5:é—3˜¤êÇØfŸ€Wwhn1nå1”â6®ã¹ážÂ×®e~b^<`Œß¼‹/bà¡©¼ÞæòH¶Ç\*èÌû®|ù$ð”7òÖC¬öD‰ß!ç¹àÎüý yw,Çæç¯ìˆbøG¥ú1ƒ~¹‹Ùɨ«2p3z ²&$A$«‚¬3ˆ ømPzú` ìäA2êy&4¨RXì1 20Œ¡ gÃËÀr«2Îvˆ×Ç7¡ i¦#Ë\†N†!—ÈÄþÐ7%d ¼|CÅ*Z18Øibþu@v”.*äÁ (€éP§:(@~á0u胋[6ÖÝÜÇ6,â*²#¡%&],]˜pô"tø±,g!Ð-ìh¤ß¥¯€{bËcÖ‹„­ˆ{¨£]XGÉ\`>ôOçÜ¡IéåE+ üF…æ×>VúÏGvÙˆ˜@Ô=ÿ’é€Ó—8¥Ðl!,²å(~å— €ï–n¢/ó²—H’ry´Á2í¢ÁØ=Ó{ ” Ý„WÊš…±~º $sX6Gšæ$A"Ó)бSœ|§µ(ÏȲž ( >9PÌ}ì!þ쀪mTW=¨§Ô¢Ð  ³¡d{DŸ/àN|âPñœGi&z¶²‚Á”À=ƒ·ÁØ8A*å4eõE,Á2y ¤eó·ÒgÅ€Ò«é¶`ɾô9³fÑÛ6uJ*köÔ”ëcYÿ„jK¢5”ûIžS'JÕªZõªXͪV·ÊÕ®zõ«` «XÇJÖ²šõ¬hM«Z×ÊÖ¶ºõ­p«\çJ׺Úõ®xÍ«^÷Ê×¾úõ¯€ ¬`+!ù ,ƒÿ÷__ÞwwÖGGç¾¾¾¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþÐÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡C¤¤¨¢c¦ª¯¯«_²®±³aµ©®¤ ¼¨¥¹\» ¸ÁÌÄXƨÉËÀ²ÑÏQÙÔÎØÚз¥­×ÖæáVѪªÉ¿ÁçÜéLÆÌîðÎèôUµà |ÅkvŽßr»J-ËÇk˜Á1Ôà=dqb›Š×`̘f#Ç3þ?– )¢2‰%ÉL f%K/._r‰)S 55Å(P†3'˜zúôTèP.Eå©´KÒ¦[žBÍ"uꕪV«`Í:e+×(^¿> +¶ Ù²K΢M¢ví‘¶n‹À;dî*„Ò~2èÏÖ—Êð=Vp `e$PÀ€Amöâ C Ôá¾ÂC(ÛÌYÙÅ 8~쩜…V œÜÇ./ÍcË.ð™ò¼~]2}NÀæ~û¡vÀ1ƒ  8p`vgœPÀ˜AdE¼±=@š5æ ‡ 0ÈРqòåÍ7C½~Y”—•Û@Ë­0Ø<>Dy þXzʬ·Þxù]6Ï×)(5ðÏ‚;ì·W å4†\bëy7Ї{\÷¤ -êÐÀf‚¥À[<æ6"Â]óMé €¢ À†@ ÙŧOŠrà&Yv@ø^nDÀv ó #ãwŽU@wDÞठ&ˆÎŒ“l÷X–6XÙ "'&õWDxgº¨Û„Ö¼8Iz t„…KI“^C&"8^ÄŠ†Ò5A¡Ah?*zéÁ·ƒ’f`¥ž:l™©¦žqzq¢~J“¥Î`¦©à™* |ÆÉêŒ5Ÿ–ÎjA­5<Ú¢®Pºš F ,›Ê€é±þˆ ƒ§Ìz€ª ÄÉm«²°êµ0š§ ±rëßšÀ§­âv`%bÖz`ῦûŸÑµ«ŸñÊûAz"¶À«„—¯¾ÒžÄ@ý"ð¯V¢K°ºIpp¿ï•JMŸ‡À' ÜY¹À†qÆ!¤'ê+²½$k°ÀÅ L1,·lÁ˳!P*"ógó/Sœs»ôæús ôüñ¿ºi2“,Z5ÒIPçöÜ®{奺–Ú ›‚ûØŠÁîÙþ¼vöjÖé ¯ö¯ýMCrLÔ?Êe瀢3à¾WÀ8«1aÀ¿ º ‚ÔV¥2èrPü  \%B`°„&8! IàÁ²0T.<cX<5¦8¤!%æ$F1‹ hF3»®kqH¤ hªSD}Y =IŒâܳÑàPm× þsä$G9J“âß@#€^ 6RÃ@¬þC Mеq˜¢Òc½ æ–ôêÌ#Ä 0mö–°g!²ŽMa‚Í·˜Ý,ü⮸4ÊöÝhÌeá&~úÁkZ rÏ6¦yt `‡…[<ÝÜ„¥¼‚êçÍ+¸žý”ïÒô0„oÏÐ÷Dy*=þà÷åçàhéõg‹t  ÀwP¦‚)8ЃøåçØzixÊqÙf`º  ˆÕmcžŒ ÌCbe¦0$×xV´Hƒz48cLÛ¬Ub*ư">ÚÐË‹÷É(ãtG.YI\ H8E“Nfä~Ä9W аaÁ%ÃQY¢{£èhä–1½¹ƒ…㉙c]UœÙH¹¸wQ)q§KÝ¥6ç¬'5¹ùM}4p{oÛʳ°ÇÀ`˜& Ê ×6¥M´l’¡ôb#mpljÊÀ,¥Á¾Ï2Ú‚…r©üh **R³¤/Ø(JOàÑ•Ú 0.UDcª|–” k#Ô>[(Éäež9 ží`*À †Q’&øFÈËíÙ³˜édªBìô»†‚ŒNÀ# UóGUb:P…±ûeUa¨?yVîƒÌ*T£ÊA÷‰ê™¥©\çJ׺Úõ®xÍ«^÷Ê×¾úõ¯€ ¬`KØÂö°ˆM¬bËØÆ:ö±¬d'KÙÊZö²˜Í¬f7ËÙÎzö³  -&B!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸M»».#¿¹l½$Á+ÆÆÂhÉÅ,ÈÊjÌÀÅ»Ó"¿¼ÐeÒ'àÏØâÛaÝ%àäÉçåZï$à íÍð`òã¼÷×ù^ÎûÅ >î~éölAlÿ*Ô‡®™víÈMìÒO/vÿ²Û¨fÉ;êþÀ´CÏ@‚•u€S“NA jÎqˆS§œ‹øŒ“œƒ¡pL"u“ÒÀR7-_>e#ÓÍ©knæÄª†çV®h€ ‹¦¨£dÏ(M[¦)[3Qß–©zU®­vÇx…Ö±"±Ê˜%¤³-.†ã¬=ì ¢6 ¬!é±KJ©¹Fšy\Nq‚½Äå‹xÄ€uð…îBžf‰ÀnF™X Þ|”›™ÐïÚ¾*{37†8­¥kƒS,|3ñç§]>H¨œJáÀ~'‡ÜM=Ìâ̽§i#!`€ì^.K^*{=ì/7ë)`ྦٯէÄ_Ǿƒú9`–¯q” $þ`ëø <í…q a0ƒý1ðŸB÷}ñÀ„(Tx!†3iøà-˜5ÖÆ%`˜ ".ˆ¡ 4pâ,jÑâ 40b8ý$à`i¬t˜EUVáð€ |ß“á˜xÐ*)z†OIêLŒì¬ã$z«Äwc~•ƒ4BæäKE”_&FN"ÆV£?Ï•ReOQ|xÝu¶I[m£ˆ E‹/Újï5jŠYu1a\¤CP–ÍA²§™I I)ÃÁ–Ü”¨ª– QÚ¨y¾Ù ¤cþP&Œ²ú^¦lz„ŸFÑ—›­öâj'¦ÁëYyÝ”±â€h²7èĤÐþæߊ=Ä÷iµ4`Él¨r«’ž5ëÂØŠk¹õ¤+ñ‰ª[CTZeî ,¯¼4Ä% ôÁp¬‹üêpÙ ,Hp ûm[p ‹9Pï·)üÛàÃ<¬SŸÅåžPoPÏÛ 2h£ %×ó"»È†Ü 4°À$ΠÄý-ù1ÅlýJh =.rÍ *ÈßæKt–o1êh$½t ļžÒíž04Àv™ –S+°À6ŽùØ<Àq¯]çØGW]@—¾°vÀ$x{/R¸Þ L,À€Éð: Cp ÃM¯:¥FÃBp¬U8¯Ã)´¯Õ ¬£‘‹°6ƒþ©òki£xæ9Ü@…ž—×Ï Æ¹7á¥ðñ:ª·íé­næ9Çn]»íƒ‡Lá`š.¹¾’c9æ±ãÎéÂÞŽ/̋Š4ï2 }ß:27¥óóö0ªšnì¨Þ9ù踮Â/)~ã.û7#ЯG¿ ŽKßè}ë#_ÿ„‡)$P€ÙÁSnx"¾ýñO{ú{ž;>r9&¡X\Bœ2¨‹íƒÙªÇA¸ƒ ’Д¡Æ‚QÛ×q0Ã%–°A‚Ûo°þÉD:tb‰F#)Mq©ãþÒÔ¬2¸,ªpˆó`€…dT3}ñ`*XÒæ)ñ&Œ;Áž\²47Ò(D¯¤"Æ6z‘„×ñY ©ÇB’Èû;˜ÓDÀ«<ªmŽ\<¤ËðH$àQˆvE;ò ÜÅêÒ<‘4Æ‘ dµ Ó=Ð`êÌ%Ø8€ÍhÆ•\qË8B%*L½ïX¥‹\7¼´È¦}¤2]¦`GLÈ)€¤¦£ø»êü²x­c -ÝFÌhCP!ñÙËá–3xå$àùàÉ•g¾.œ¹3ž9Ñé7zbå6“‰`@Û÷Í÷%PӜʟ ÎçQCsë܆0£ѧؓ¢Û(È*º}Ñ`ßùh ª‚‘Ú@£&¥A6SZƒ‰²”Gõxi nò;™¾`¥6†öFÐ%4ˆ“ô\L :ÅNz5§û·‹¢DКDì[ÝrƒÏm.•!Pí'G·—¹ÇÑf«ì£j>o¥9 †Ê}þ«¼ÜÉLݙ՘ºËjT[éÕªZ5§xÍ«^÷Ê×¾úõ¯€ ¬`KØÂö°ˆM¬bËØÆ:ö±¬d'KÙÊZö²˜Í¬f7ËÙÎzö³  ­hGKÚÒšö´¨Åk!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»…¾¾.#¼iÀ$Ä+ÉÉÅeÌÈ,ËÍgÏÃÈÇ"Ò¿ÓbÕ' ÒÙäÜ^Þ%ÂâãÖÙÐçè-â æÌéñVùÃ¿Øæøé›’Ž˜0âð¹{7p‹7iáÚ1 ¯¡CuÐÞh1‹¿j¿$R|·­ã™õþLÒAh€Ê9]¾ŒÃÎÁL8ôÄÝ„ã åN7,ütsh›šF×ä4tMO šªa©@jšâdZ5ÑæÖ2K¿šÉU,ªº>b´ÃR«­g íDl€ëáB:ìÔýFÒ—zËqÙ…l.l&ŽQÕK.–eÛñAÖ¸Ž¿´-†˜0„y+ÞR´Ù?d Ä PËPष&{ðÔ@`ÌaÂîMð‰#_H(0 €„&x!7öu1 ^•ð‰.°à@ûqa-¢"ŒZxŽ'Fñ„Á¹âˆRà4Y…9Æðb’Àɤ,°á7FIÃŽ…T!c|¹’¢C"èƒàH‚´}çJQøÇŸÉLùfBZ"× Pˆ#Õ°™Úžd×)Ý}ÈDš ±žl*PÕ=™’å–HØYĤ‰–©)g"!¨—’:–Ý¢¨Ði¤À]Ä?Â,:Z)€Ñ!;wZæH¸Ý•Š«BÈâ“++Y&‘²ú°*<þ¹aŸkzÈk½…ÚO­ÖNèì+¢jÖ I˜§5ty®Ý)ÎѪ«“ïîÐ^»Öc. ¿‰óo¾6ì;.ù‚±ƒ ¯8÷õ ÕÀ‹ëð 8Ð@ ,°’›°@ÂA›•TÜ–wBÆwü1TNl‚Äã’`²ÌMeGØ{œÌ1Í+ƒ·ØŠj¢ükžB €3°ñ‚43Hs0SüR²$ôÓ 0@ PoÑ “Pt’ [5éDÂ,ÀÙ b·ÐÛ'TmÖT:*¨ÝŠ*,À²‹ô±wn¦ÞÎßÞglÍÓº¬¢~¾ëº”Ø«ÛþKÃ-¸ã. ÌŽÜž'^¦²˜“þ‚IJû7rÊžVN )Ÿ°¶†§l+0ø‚Î%\{ Öï ›Ú1Ÿ¼Ëÿ’¡K!y—ÞÏÛ€ý2 ØD ›³š½òÑw;¯øã“?êðì8—~ÇôQzÔ½×rR”åmöÿ:µðXÀ›ÔÓ?ÿ®ZÀïÜW@eHçp^uØ@!ŧ‚S(Ÿ@¬ 6AƒdBC¨„\‘P„';!L¨Â$Œ°…EP½`؃ÒPã¹!"â7!‡>,‚ƒ‚H„ý‘CÄ©öähÇ8{>•†¶ ÜEÙ°J¢_Å ;/‡U+NëžTÕª}×Õ¸¦U§xÍ«^÷Ê×¾úõ¯€ ¬`KØÂö°ˆM¬bËØÆ:ö±¬d'KÙÊZö²˜Í¬f7ËÙÎzö³  ­hGKÚÒšö´¨MíB!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀuÃÃ.#ÇÁdÅ$É+ÎÎÊ`ÑÍ,ÐÒbÔÈÍÌ"×ÄØ]Ú'æ×ÞèáYã%æêÑíëRõ$ æ óÕöXøÒë·íß•vÉŽÅ£WЛÁƒäÁ3À¯!ÇýyÓ'ož:ŒUj#Æ 8bþâ9@éfb–n8*€ÙF94×L4ð §û|ªáˆS(›Š-³sé™A–!jK¤»= nÖ¢vOSZã>ÚáølDÇÀ9Pz­‰€X¨‚­×€¹žè¸’Qy«›Fv (¸¨WÌW\~ÝŽÕ@b¿åÕÇV*ƒT©¬° Ñ>hüx³b¸Yøš}«Y3Y¼ÕPc9¼Ú¢:æøM;5jÕ±ýrDð 0™Î{n=FµÁ× û~¨<Ý™(¡§A޲:š=³Ç o(EšÞÍp\@“#Ï3Üa¦C›%Ô»eÌ—Í9? Ò Ç’yï…A`<‚þ(ŸV` …àƒ 8 à?N˜Å®Õ؃ ¬ôÐæ°Ç…ƒI•àÀÆ£*S¡÷™a '¦(£‚á€(Øl$.G£6 &¡4£áWEŒBÊЉñ,à!0:Î4Å=ڠჂ±øK‘<ù’3æP#– ภvOP‰ b)R‚°±ö —¥1¦—>°äB*¾#ç+Ú%¡fƒ¼â7ge‘oõº¹ bR„£zÅ\À²ë)“mÅÖ×÷%0Ì >›v L\«YfÛr€ymKÛÈ|PÀå4²Æ3·¿üxæs x_qÎ 3×+Ó‘55.¥ó>Ü۵˻Y•îÊ…Ä£WQþ] ræTˆ’½¨Í‹äþã]Z=ÁÅ@€Èd'ŸÊÙã Þ2` Ú£€˜Ù“@3ë¸D°áS9(ÎÊ‚„ˆÀ~€˜!\0Þ †“› `hbÞŸ5Q¢… é Š¶(×^ :8¢2þXä+ý¥XC‹¾x‚ Ì(b±Ð÷ƒhÕ¡¥‰ÂÒ_}8(¹œ–#ô(æ†t‚ÒŸOyª°&4„ù#™© )bŸ&pi—6tô R¡4…ˆŽ`(œ3Ó#8öä^¡ôÄ@“VúœmÞ€fœÖ™©=BVö5¤;®ð§ˆWÒi9UPE¯r1WEÍ8 ,ýþÈäÔbJ‚¢õZC[ÃôÈ_¯‘éc&v‰À¸ ”›*°Àº 0ànïMÐ “&\ ¶é#ÔßÂæ‚Jª¦Æp—k«¾‹õ2îb l±=¹’Xj’9òzÄU¥•øK¬²ÐÀÊ à.ì.®æÚƒ)©nÀ@ÇâX«Ã·ù´ï [˜n̻֭SÀ@ˆKÑ/6 DzeÜv‹h 7¯ÓPK™p¦ŸÉ‘ÃYm2Öh[p׈ÖnÅ]ú|ï?´­-RȰBÅö߀€³8Æl±´Ñmv9gpë•{Šh%I± u <þ» -Ó³‰M×ôƒÒô"~¢!7M†öœúo;5â¯_‹·ƒS%víó ½¹˜Œòþ³ßtü¤ð9½w…lcÄȧ½È ì sUGCÉT땽öÛMn#ƒ/ƒ0ét„¹ææk0uCÐ@ûíOõý°Wâ×_‚â!!X.ÚÓ?ÿ‘ V{SG.ÆáŸ½ÑÏ€+0‰  JM˜±ÛspŸ !K ŠB胑РyxS£Ï(`H¢Èí­³2E !qð>{ºt"%UXÙø2Ò,”¥°,È]2—Íh|´áø›² &F£€çr™<¤ÚO1 êß7À³§7„Þfjšµ'–̢Ťãˆ©’°¦€3ß’¨¶¼ЬõkiZÉjÅzòò¥p+,Ç­¼ ò¯€ ¬`KØÂö°ˆM¬bËØÆ:ö±¬d'KÙÊZö²˜Í¬f7ËÙÎzö³  ­hGKÚÒšö´¨M­jWËÚÖºöµ°-#!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊË_ÎÎ.#ÒÌYÐ$Ô+ÙÙÕUÜØ,ÛÝWßÓ# Ïà"ÒéãQå' âëöîNð%òóøÜöå;"pÄ‚y þ™[§n “‚[,÷_8 "+ÍšíÝÅ>'ÀÎæw²ÒÞ?wïÉœß^C}™p뺗!_ƒ^ÙƒÒÜϾ,º\5õ-óÙzf´×Í{g\þ7NyhÈŒzù…aJ7†ƒÕÌG†ùàG†m1(Fþ8΀jAbQE-¢{óP¨bi,²è¢;fÑó¸èÜX „:)¤?Ö¨À‹ÓY8ÅŽ52ð¢%âŤ0Ú]©”,V‡•Jjé‹mKFÁåx.€É¢á£˜•N0¤Œ0¨Y›—¦T XUù’˜?¼¹_Tòˆç$u¥ôVû•¶‚ÆØƒ Úæ#ÄÀ¦ 8àÀ•79×Ñ}MŠC\E%@ç”Zj* Tcª (°Àà€h©˜y"8úê ¨6µª­®ÙÀ°|¤Õ¶Í*-‹ þÔÊ©§½úÇZ‰ÌºPìKÇñ@¥Êv«‡³QÓÔšÓÆË¢ ¨š‹Â¸J†Kĸ†.ËHZ³ í®ë.P+ðÆ!ªúº€ïš—>4µÐòVˆUïµ'5xZ°»<>Z› «ðð?ÄɨÜ™n¤ÔLX‘ú§ $Çà@ßúIPÊSÝËjĪN[’½ ,Îh~É3¼>C+dbi¼§¢]ÕEèªP/ÓNŠ0Õ·{ÓTõt5Ö®Í\UÆ>Áím|#¸®Ÿ³FmöeHc¶Ê×u7%oª)cpH(}IÎ.)ûm5+Œ“På<׬1'Ý7åþƒ¶4è™èm8ßZ'íÊ›sýfgé…sNÒ)¾ ë"ýxzJ4¶GÒ;¸Kë¥JG|i~‰|™Š §’±?¯DôÏÐXÀY?D×{¥ödÞn@À_âåôyî=rÝ>ô2—[M¿?¿ Fó6OxÙŸùP·~$„}üAÖÂWºÑ/9^÷$â ‰$|L‚2ˆqð Dúà<$B+¬¦„VøÌfP8…²P |!<(Ã'¸°†N !pÂ:A…>t ƒ¨ÁÝ1 4<↨Ä"è°‰Fè!Ä)‰VB ³„¸¨Ê^\tþA¤üÆDËF`,#ØTe¤4ª1"¡#]éÜF½voŒÁ„NpG6ÑQ‰"A¡Ê•G“5äº 92æ°àxû"#E7`pEñ’$#ë9Òã¤ÓäÑôžÉHŽ‹ä¢ƒ2˜9 mëhÀZöóÇr! (@Õ¸& 9:M9_ê&‡¶6BÑ@?‰ÞILàËZ"o•õãþÖ$¡1ˆ*àe,¦k¶È™ùpx˜gµÀ›=g…ä²ÀeÊ/À4§Ne¨çÝ‹›4“AÎsMõ¢¹=éOqY!AÈYÎwæC¥3åfßvJŒá• ¦³‚hÆç@`$Š8Už\ŠÏ}ºÓ¨Û$A ©ù=‘ôÏrê‹ðÒ]X4]ê›ÜLªª’ómu,“ÜšÀ4ª®Ö°¨<ݨ[3Ø9·Ym®ìŸê¶ªÆv†”¯}…eHŸú¾´ö°ˆM¬bËØÆ:ö±¬d'KÙÊZö²˜Í¬f7ËÙÎzö³  ­hGKÚÒšö´¨M­jWËÚÖºöµ°­lgKÛÚÚö¶¸Í­n!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑMÔÔ.#ØÒSÖ$Ú+ßßÛOâÞ,áãQåÙ#Õæ"ØïéKë' èñüšÕÝØá±W_>þÄœTNaž…#äc€P`E‹—ìù³Â€7v|¤1Bk þ(öÛh2 Am):lI3ãÂnòxpñbÃ1%=ä™Þ¦€F! È·ÞO G,À§à¤ÅŸö„0 _U£,]‘ÓÀ»¢ó@a!@gGŽa/Áª [$`Ц›²ܽW]_ón]sØ.«§VM:ÐIÔ¡Ü0€¸‚Ë.í^äEuÓØ‚| P\“Øä|‘% (àé§^µùflÿuZWª<,ài¦4à©“Ä.¢•hIà€þ°¹+¯º¦8Âg±ª™®ÖPf˜Í*´4mä@¹&p-”&p[® Êš9¯ |âˆ,#xùU’â<à®ÙÙ- |Ælæ©À¤>TŠ#¦÷ò¨Sœ"y´ã.ŒðggæP/¹GÀ:d¸†@6S8 ­–ðDø½Ü\Å$4äÃLŒì±¹cõ…º'Í‚ÌQ–@4Í߆‰2ã¢F3*D›õÐ)ûiÑRäÛãÓ¦˜Ü] ^ï÷@ÕïÂ1 é„)^®„mBØ |Y¶½WˆãŽÒš›(ãî×4¯Wg¡ÑgTaù —sysàZ”Ä@Lµþ» â%pI¨ŽI½­ñÛ“Hþ­p‰\‰™Cè­Ø|”qMªˆ.BiÓ ÔO*'5ù°Â"f©žhœ«Xº§yj]ê±ÊµýJ>) ÏkÈPé­¼Ï̧¹mžÐ—Q{\WíM ÛÕ›ÖJÞOÓóô?'j$DÚì3]QÓCêÞä³üòò#T9^•¿:þ’Šý„7¾ÿ áb$ ôÎ/M ™ >ü?ö`{1 “ÖÂ: þ@xA»ÞY¼Q@>ÁC&ìRÈõ°° 'za$C, °†WX!­P¡V!†>œwÎD'ܰˆQÐ!£Ð¥%B¡Nµ‚/=¯‘KÔ |"·Oõ •>—4¶;Ôæ’²¥A4§GR+Xʰ+—R„#¦û Æ4!``½ÈïT¯´ciöWÍÏÕ,’D¤b%ûÑÁ oÄä 4¶Ù.T2¤ƒÕ’•­‹„¹CÍÕ®œFg4ŸáBð|ꛥrYÄòd±˜A|ä@ò7yJ:GhˆýÖ˜2ÐbH4%É#xRX¢ŒBÐK€Þ¸É¹d|¤7Á†fî‡iŒS ô£à5…Âpg>aù þT^4¯f]4ܘ®#•ïîC•ùA¶óž¿@ 5¦4¾ê;õ&Oo⓼‰õ¬;Pü"“Ð] Î«üxê9ι’‚X£¨YmMM"WôÕüÝç„6Ñt$zbýk’ kUÄzu’ìc!‹Pü­µ­ Ì¬f7ËÙÎzö³  ­hGKÚÒšö´¨M­jWËÚÖºöµ°­lgKÛÚÚö¶¸Í­nwËÛÞúö·À ®p‡KÜâ÷¸ÈM®r—ËÜæ:÷¹>!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÐ××%Õ_Û$Þ"à{ØÙ-àâ™èá#êvåìæðœíÞÛØ ìïêí]þþ¾ÉÛôÎD¹ 4XÇ]@.G8PðlóèXpÁEAŠyÈ.¡‹áþPt(1¡ƒIj‘ a‚8ÅɜĂ„ÈõÄ9†ä— r$JI#C? rg’ „ªÔ‰É©NŽPµw&bP“DU2mªm;.ݳzõ„·5o*}º¶’P! 4@‘,Õ2,!­©oèEµ§/DAwË_ bÜú¸2'°íÊi—Ü„=‹œ´×`}xØü%ÏÑ„­{Ž=û×é—vnpìµÌC>yÎoØÀd=‡õ°ßt¤ëf\ÒbÌåh7&ºṯ—~3þX÷6‰ ï¹rdåݘ~ )§+€…£¬Ž$––¢[þ©#¬ :>àâ¬ÎJ©+´mÉì% N›R¢õ5Â×N—í¶Aà“*²30@h±Áh«d Iîʃ¼‚Òkƒ§R œ/¼øÙ>.€/¸Úä¯/ýš`i ü0Ýæ8ŒÂ% k h©±ˆ n-“ ¯ ¬¬˜k:1ö¹ñ."¿»ïº47À*ª©Nwó(k0//§'BÄ h9lÑ›R±ºÓ´ÅEwܸVt,3,9Ã\‚pwF}ò)K ö. ‹ ]œÂÖ-¨;:¶+-C(ÑÝ0ïý„PÃ(KÏ ÷F«Ä#is%þª–Q`‚áöÍcZ”]`Õä¡äþš$öò•c:Œ˜h'¡E*°¤8uµ¦‚Wáä7¬îeî¡>&Œ”Y9I³W%Ò¯‡>@ç ,ÄYŠ–Áù$ñ£¿Mç¬W¢·CÖú¯¤%—;èMŒZ=ô§”ãÍi÷ie$øIôÚP©­ûèp·?iÙó U?L8%Àñä›Éïà—–#•BZç0É9ÔÂ>nР\ ÏfÖ×@a7C÷<”A/ ¯ƒbÀÃà’Ø° ƒÙÙ ¯p¡jO.ìÂcÈ…î)ˆ†X!³PÂfE>”B ƒ(°ˆMÈ­†£%Rá4®r"z(Å(±ŠJH!¡`Ä->ƒ^dþB’bF% -9&,# ”Õ&5á9mÑ ݈ƒ‰ [d¤cxG¬ÍQ1È ð˜F@Ž C)ècþhHðè„ld ±¤E2R’á8@BЂš¹di˜ÔÆsüáIAe-”0a:º°t ”˜À€t€¨¸„(’`K… rpÉÆ¼MéRQÐÛ/‘s€ÜÅzÁR&ÇS‘Ü)jeCc#íø¾ìDâHšÛ éBX¡Èp‡‘›2Ýx¹sæox( XË8˜àïš1QÁÕ4çEjð›Ú œºÖÉ* i¤»ä íÄW’3D‚"8Bná/&{–ø[¥–ôÑ—4l'œ’͇ê‚!û>}à^ÀžåJðNj?D”y9˜i7•Ï”ŠÑb *¨éõt¥ÀèÕ5’&P¡šéDê/tjÇ,/æ{8‹!=§â“¨Q]¯ŽÊUieo.,•YµG ǜէ`=ÌóéSoúB|ÜK\)ˆ¦‹­¼pß[ë'„½îc¡«]ŸjÁrAïªíaIÙÊZö²˜Í¬f7ËÙÎzö³  ­hGKÚÒšö´¨M­jWËÚÖºöµ°­lgKÛÚÚö¶¸Í­nwËÛÞúö·À ®p‡KÜâ÷¸ÈM®r—Û‚!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒ:ÕÕ%ÓaÙ$Ü"ÞÚ\à#ÞãáYæÜÙÖ ä×ß&éç?ò'ò  óÿãêÙ‚¯Ûü ¨3¸áÀ#Š@Àï6r*ÁŽ¢ÖÚÔH$]9þø pØP ˜.Æ„dòß·}°d§&âL‰?ŒG¡D1ÝRÜ‹mj‚iPdÂ׆¦i:âH›ì"–JÀÏAŠ¥Z~à—àä7·§ðƒ—¯'‹µá‚C›‰¿ôø¦]ñ ! ¥–2êONL0õ²,U¸¢cÙà5»7±ÄSd ˜SB[‡KœIÁÜ9ZýHð61ÇUr †RDeí$M…³qžÐ»w5õŽ_´}…n^ç÷è^®?âÉn¼WîätžGÿUÜÎïÔ¿–Ûá>l:œÌÛ¿–sžXnôp²V>Îòëµ_õ“ulˆþ‡Lh®ñ2¹ÑÕFhøóxj(˜ c&Ô`%TMZ²Á^&Z)6" ®¡!&¥}Æ€ 8€`]/d'áˆã^Ùñ£@t“U ß©q"Š•ó[BB*à@‘µÁä‡b<'bµ$‚ ”BÖè ðAw#=vâÓg ©€Gdpkž0&[yv¡ß(ñd,@gRö)Þ’±\Ÿ“ĸŽgå8Ѐ{BI£$Ô×@£a´‰â u&•3fšÐ¦¼¨%¤Wä6àTQ}6i•@y¦ªu¨¬Q4°Àž;rÙ¥ñú–²]9€iý”À(?þNñNuKŒœc&€à´¨Q!,¯º¹°éJ«OŒ í_ Xô@ `I ¸Õ.ª„¥Ø’¹@¼'00&žÊ°[‚ºD¸ mÿ²àÀ˜  Û‹¾"ìƒÂÐþ+ñ¹Íµ±.C`0¾«À5<¼êǸàkÅ7`\gÃ;t¬Ý1#@!Ë#Èì/Ê›Ës-0û¦îS8 ô; 0àôP÷ å1oBõ²–&w=³¶ElØÐ²¸\‚Í^¿«ñ* Iv,9?‰u ( Ú -`o6ƒí ÌE‹P2™CfÑv?o¿ªu%|:óÞS<Ð÷0.g—Üàšú…ã%n UþZÊ*¸ªz“.tÃ2×ºá€æ`ˆM­ç ÔÔ­iS§ÆáÛRÓ´ÖÈõºW> ÇTH6ǨJ—"œf£Iæ:Ø´ @ï"¦Òåf^:ý&ItµºRÐõeõ=S?’Ø­¶®"yì²^0¯Î¼ªÅèõ[ f¾°=P¥¡µà×?8‰c()2Õÿdò½ÀÅ]”ÿ¨û- <Á±k6‚£îd}ªèX*dÁ‚Cnˆ` Á2ÂNÀ0†4Õ^Ž‹ÊÌŠ$[ø Ã!‚Á=F쓸…1q ÙÑÝŸÀ)b¡ŠV´Â}²ˆ… qñ 8ÁþЃ%¤1Vá†fŒÓø²Q B|cŠ(G(,±ŽL¸#“°œ›í rC íþ˜#¶t {„|,";Ñ$2=:\µ™ƒ%ù&Hˆ¤$^T-yK“8` 8çGPÎ9„Ø ÿÈIr•r€<Ä‚¦¡ v¦$ÇyÌña=ËdUËe]þ'¼‘ b°ä"à½n€L @Ð —” €aêâ,ÄK‚ S0… ì „&ÊÕÜFN‘±EœŒ[‰Í:Šž*‚gˆ$r¸s™•3,Ÿˆ:öIJ¶2 ¼àèùÈå VÒ x—LmÔgŸøaþö8†5)N‘˜F å8ÍÈÌ$œ.“_ÕêQ’XR "­¨.0ú²wÊÄ'•é-R$-Z ÇâZ=¡<ýE5\V$©SY°žrΓ*ЬsKÏП ªÑL‰æ³, ˜Îèo¦&™ª÷¨˜³dfƒå`ë+ÞäBÄÈ5ÊSëW…q›ºÆƒÔˆ'`ê Iíd­C˜D÷yWí‘ʯuÅÁS3"ÁÆ.¢‡õê^e0ÙgDKƒF´¯íÄëWÖQ7Ìóè²ä’ùy–p1Ó¿¢¬Zp ÇÅ ?Ÿßâåmþpߎ™GzT´˜@ 0 H0õ˜ì¢ c~‘T@ƒm5SÌ€dçE|…ü£ºiHRƒkÅôb_ìwˆ‰1Ó7*®c€ƒdq@^ç)‚hÇ4°€K*rÂtvA\# is¢‘HjÈbˆ­ƒ L>ØßX5.ÆŒGæ¸!<‡¤—R<Çß š$˜2F`æ•È›O¤HÝŒþa(^Qy'š2ú¹åO •˜àH)`†æ˜“vYEx±Tš£|Ûñ©D´xŠOŠ2ÚP.F ¦PÈ‹K‹>Ÿ¨EpÊ bÒªD (Pe­¹ÜZ¯¹ kfC¸þÒâkž5; (»lFÑúÒÀ{<‹ÁVi¦ ð¸-IÈéb,XÜÆ¬µ×&P®—~B'­{ZZ°n á^KÒ¼µá½®œ»\·ù¦@-¼Ë*°šK"™î-ûJ h‡åÀƳ .Ã㌂Áöîâm@þ¦,®¥"·àÀOëâgºÏ¥lsF-ÏÀ$¯²¯Ÿ$ 4DM´¿åBü­ÄºxÛèÁÚs õ.0õ)3‡HÒ›!‚<ÐÕ4œØ Ôb[6àµQ\Qf´­ <.Y7+³íÉÄ¢R’Å)§a¹m"©Ù™TÄ$1YÂ)ˆ<ìŒø%4ÂÖR¹þ©ý‡Þè¶òdp‡¢ ží¤Õž«Å™€š?!ö䘳ÜãÐç!äA¼Í³) Î.Ÿeõ=AòÄŸô¾z˜¾µŽDMõލ&<ù®˜‡6±RQŒý<ô8<.ã¸5 ™!¸Oš|\ÄÙCû”ÞÉútÅs A™÷ˆ‰whÅybð™ÍUVÂÒqB€fˆ’k³•U}áBÈ{è@/øï ŸIß"øÀ@ɉ6Ÿàà»G:}„Ï"TJR¨Â#°°…Ex! ‡ á†6üs؃òp>üa‚(ıˆ58"g Ä%º«‚NìAÅ¢8DÉŠ2PSþç°xƒ ¬o\lÁvP–°0Â@WÀ”_€˜‰½ ukTÁs&DÎÅ,Ž(xÚ ¦=<–`Šì°H l­‚ô£T,v È€«Z ¨Ò)öPcm9"%Ýñ$ÚÉ_HÀ 8 &½I0;¹€³ `E£ä¡ŒTÓ€V.Pw±œás<²XÄ`»Û$~ŽŠÔd*õÒ¤_I; BLÃÔR.g2K :3y`ÒáðHªAaszy²Î4ûá§Íð7Æ9€9Îrè‘jLâ)»ØÈ(VÓÛ&»‰ƒ·õq"¶»@…þ'vt{öøK4ødö‚(Ê$åÚÐÓÉã‚ÅX€:«§ú|±¼³_òÇ@ðÄŸ ©S8:Š"´#-ÇX*Ä©v2@ílâÒ²e ³é©‹j÷²õ´Læ„*¾g‚ó©°¸ üžÊÔ¦þ'-Êóœë“?ÐØ4~´é^U¹·QšNõRµ¦7…éÔk®õ­lÝÞ4HZÒ¸þ/ãCg]íÚV¾ÚÔ¯0+`KØÂö°ˆM¬bËØÆ:ö±¬d'KÙÊZö²˜Í¬f7ËÙÎzö³  ­hGKÚÒšö´¨M­jWËÚÖºöµ°­lgKÛÚÚ¶!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌͱÐÐ%ÎfÔ$×"ÙÕaÛ#ÙÞÜ^á×ÔÑßÒÚ&äâDí'í îúÞðñEóØFØ»W.`Aƒþ˜<(âžÓ¾ILødÞ6÷D‹6±E äÀ‘Àh ƒþ?ú©O[‚{NžS™„»o î¸)1%Í•r\p¯G›?¯5Ð@…ϤKÜcâ)T% î- gõj’¬¶zõâàž‚±dÍ¢í20ßÚ- ¼åââÜ,/âÙhU䪼vé,|êWUÞu‚Qlkx"ÃT9™Ö—Í4“ŽÏ-$µ´éŸ§¶ˆªsb¡ œ}’”TT?¯ˆì–µãR`ÅÊñH”¯í–¸µž~—€ÄÛ ?&UVõplÍ f¨¼«¦ægŸ—‹ n´òRmíð}wµ4Ö÷m ÃzÜ=´!Ã:„ºy–ºMÄøÆ.د'=ÀþðÚv%wž ÚÑœòõN\f5€uöAp˜qÅÖÈf(Aðy9Ö:ÉÉ™gs§V$ƒ-'€)Þs€ôµ`ñQbÑLH’Š °(Ãrè÷H%&èŽ*ªV@c> 'GÓ1Ò_‹e3@Žfu©XÅ1¡™^F”`K¤Myd†X–€!>u¦â$|ÉÄ‘ÚH3f•ª9P§Œªå%âqe7‹ ©ÅW`žfDæ¨- Yè‰÷$`—¢l© ¤d¦8¢Áå/º(¯‰ŠÆšÂ ê›¤š±g1µbyi"Ó+ ÇŠ¡i2Ã’€(›]˜jìT&þÆ«Êé -–¨¤Æ–•œäL` Éd©@ò (€ºð1ˆˆ‰$¸Ôä1ƒ'ÓQŠ˜árˆ\H‘ÄîšØäd z´¾ä$vÝ#¦©ÉÃm@m’k!×>Øùwj2.p…ø:´Áó*¼\ò°ÑDrø3‘üÁAñ˜Ð ä%~W1§ÏHICEÎñ'óiýES „”ý3pÐ+ÁkˆGΤŒ¤â(áúhUÐú @(­‰Üañ‘/K ‰ÆWÑ(!§:Í(îD’D5¨.íiûv`Nk&$‡~ªhQ[C;IÆC¥ü¬Ž «,r£…QÝgIePB -)/$ª=×Mu¥ÅLjw°ÊŠõ®tå UsÓ¼ò¤…æ|k±:ÏÌøUŸô”ëaË!ÃŽs¬t ¬ç¦±TÁÒ²‹åafo€ÙÍzö³  ­hGKÚÒšö´¨M­jWËÚÖºöµ°­lgKÛÚÚö¶¸Í­nwËÛÞúö·À ®p‡KÜâ÷¸ÈM®r—ËÜæ:÷¹¦!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌbÏÏ%ÍgÓ$Ö"ØÔÎ'ØÚÛ`ßÙãÏ #Ðê&âàFÑ(ñ  ãøßîïGñÒ#ôìAÐfM¿'þðAxïŸÂ}“øÃÆp ´‰ #öëÆNC‚×2j,â® ‰õþ€dqdƒÙ°¡4 ÀÈ–.\¼ùÌA=§ÁÌiÅ'Í8‰21 4ER¥K˜Ê{ U‰Ôª_®bí¢uë–®^³€ {e,Ù*ê%8«%­µl±¸…×ÊܺWîâE«v/ß·zvºð¦J¯„[Ne˜Î>m 8Š,åÖÀÇ#j&$¼®Žà4¨Ž¨gÙ3 •õ,¶ØQÎÐÄ¡c>¼µt«WÆ)Ù‚‚tƒe×£"à퇽E“á [Ä€z<ȸN¹ˆÙ¦QÜ™ônˆÞ~+=·uØË«xóæº]3Ÿæ`A‚ñL>ýœ’¤é¶Ú{Žô ÷þ·@ÁàßÒÖ€M­a”ÇDB…Ô@‚¤ýÖ› þwi Ä”!r¹&l ÀáO¸ÉbF tÈ| ä€xãE·ß þhGe !2ÔJŠ €/& • IGeM)òuêDCâÇ€”&Tfc$X%*؇ß`Šð¤µéÆ›?½²!~ €É£ ÔIÇž²Ü9ž‡"ð¸V™õD&‡¡µìˆg†îÇ€Zr¦Áè-;¾¨–{$Xâ—æRß‹ŠŽ0é[•–a(§¹¤™`©#xÚFŸo±ºË© Hyª©†AëqÁÈZ‚°hìjk/¸Ji\¯]w¬/ÄÆZϧeþ8kÌ®RÖȬX"m¡)‘Q#¬Å,[‚¶bÔH­·Óš@ë™\‘Vd2è’€¨ä¶%/5ßBpjž]P¹M½#Ü›o8p¿ÂË ­óа+Ÿ  ³- ŸÓÃöiŠ'?÷J)&~oQìÀÛ«ðÆ ,À¤Ç$Ç'?ïÚ+óÍ?)PñÉ+sü2Î@ã—Ÿ 0<38»Ù¡0ÀÀÏAGôÐ-Wl±œ¿¦,Ì¿|BÆOÃ)õxT}ÎÉ5ìzp2÷N¼‚ÂjÊ\¶Õ'kƒÚÔìÔ! pÜÏ÷2ØÜÀQçÆsÑ'182ÚÐêÌŒ_±ëºÅDÎÞ5ÏüªbþIq9äØðèž7€Ã—œèý iÀ!é]|O0к뇗öÔ€UØÞ.2>ÅóØ•AY~û.mN –+Rဧvâͩ&u$ wUš6§53–Ð~rL¿ì*— 6 6©R;D^7¸£Ž¶U“-3‹ššT~Ó#Ê\'ØH;’ÒZ_Ü!=!`¾*r\Ä+žûhç»ó‘r\Bx\Xj„î ÅÊkÎÕ-vB“JaþEíYÅøQ¢0ŒI™Ì8 _š Y‹¾|šô´R!TÞÇ.æ¥( à93÷šë‘#:]hIg—¥åí€.Ñh|ćÓÜË›#¢MÉ÷s&õˆØß wàNo©ù4jhBç&G¾CéçYo Qß9l­h é ’Ö®ã› U“„WihTŸ€í«_Iˆ™­ 6¯GºRSý"Õ|õ°+¤!`y'ØÄº”²•%+‹Øw"±B¶£ŸµÁbC›MÒšö´¨M­jWËÚÖºöµ°­lgKÛÚÚö¶¸Í­nwËÛÞúö·À ®p‡KÜâ÷¸ÈM®r—ËÜæ:÷¹Ð®t §KÝêZ7!!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉʽÍÍ%ËiÑ$Ô"ÖÒdØ#ÖÛÙaÞÔÑÍ ÜÏ×&áßGë'ë  ìøÛîïHñÕ#ô 4÷`A~Oü„  Þ@hÜ""”ÏZCÄ9«ˆo¢’pÝF\t€­dGýþäDPäA‚ûPѧnKº™Œ)SÈÆÍêáÔHbÏ,BYð<ê$©Š¥L™DLåâbÄ?ΰJb$ã…')·“a²Ê“ ¤k¡YD‚–ŒAž tÁè’ÏJ›®7š°ÂƒœnS¢ÆBk߉LÚ7Û©9¸(´Àë—/¨ÚQ5$ê˜!`®µAÉ0¤G±ÔzžŠE#:Ø]ï@ƒÚ²³¸N~I!ÅQÏxöke”] bMÇI´™þÇÑü™„Y4º µ–3XO €—‚бASfÅC€¢Å ÖWªðV=€qhœÄxMl$@ÀMs ·‚Zl¥ˆÂ^?¹xÒ", k-ÔãxòÔ€€'ÛËI(Ž%D›íåàB_FR¥P ¼wwÐÅ%7B¹4£o R²ž„e ÇÜ^CM·Q›3¦&Q™D(”2—‘az\””¬j–¢ª•g@*‹‘V.JÂn‡ÍQi=(ÊR${A°â¤qÈ·$-pj‚«rHºj-{% #žX®!+/»• ¬nìÊË^³ÖšëÂòÒªC¯2ËÆ©júB¬ Æþ®qj§½,‹êl©¡¥¯½íÓ¢¡%£ÀHª£¶Ç~a¨1ÀWï£n òµ»E½ÇÄ+‚¸]YšÌ©:ÞûŧZ¡Û/‹Í‚ªèhp¨ÊTkŸ•V> ±¾I¨ÊO¯c,ò£+ñÀɧκL­"àÉ–¡) È <ŒÎÉ8 ³Î ôÜ3@3°ÀÐC+`´Ñ $ôȃzÔ«–*C sh33mõÕX‹Ì12x …m h™õØdk¥´Y[óF*<ЦW+]óÑD4>÷¼óÍ8£ m‰ïDPጊµ ˜Ù1§iCÍE÷„SµY‰7.„¶_#C Ÿ°ÀžþúU:Vþj€…pš)ä€GÌÉW6A­êà—a*!hæÆÜ…_qC>Á@鯴¹Ž;AŠ>åx‚ë8òõ·Ù‹Ð3§ÂËŸèüõF/}pǰ]Bê$%¸v¿4ÔѨr¾ƒjù-|Æ1øû¬‚JÇn¶Ãòýî 3X»Ü/vC½7h I¾hÞ0G¿VX˜“^òA^@n®Ã-⧇ß1, äƒ_w‹ýõ!y¸øßpÎ aéxœ¸àpŒ¢»mÁP!ô 5„ªfuL2 èq–qŒÏåÒS ¢98u(2¼NƒpóDPpð<4ùP”J‘Ã= g‹Ù+þ… uHÅ-Ö.]k`¦(ó°ÎbÓŠµ!™ÙÁɇ0ðöÃBuî›xWù.³~)iŽ„¤ÁÄUÁDa‘Ôâž#/‡¿p’AðX ‰ÉD&Y)d''S4­{å ¶ÊmhAÓÛ© ¨Ê%’Zê8ÀØðZº`x:ÌãȦA_ʃBYŒ5 4`@Ú†€T³üâœPxMjxU‰%ÙMhÔˈÏKçüÊI‚è2am,í6•#v2O`at£9iLù®}BßîÚiM°Äè tc DY-–”à±Åâ¢Mz®å);Pþ"¥ÁÆf´jtaä GÑ}¤'N««?Ç‚œ8å³w5¸]_°sÄ?á± -iMóé'L4*Ú “‹nZüm´l”QH‰:‚•öD‹Bu¢ölàT™4ª!ªâ ¦gO"ä´«žè:Áj‡îd•6«šÖU~&` º@J¦†}¿yÏ<ßÔVô}&«Rík;jG¼© œ¸§`aŠÎxö°o-#`›ñMÖ¥‹U, ŒRÊþÕ³:°+hE ÚÒšö´¨M­jWËÚÖºöµ°­lgKÛÚÚö¶¸Í­nwËÛÞúö·À ®p‡KÜâ÷¸ÈM®r—ËÜæ:÷¹Ð®t§KÝê‚!!ù ,ƒÿ÷//ï__Þ¾¾¾ŽŽÎ¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþÐÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹[¼¼ºZÀÃÅÁUÇÅÊÈRÍÃÀ½ ¿¾ÆÐÎ8×× ØäÊÚÛ9ÝÄà Ñëðñè@êòáÕ¿ËýôCÝŠå3Ö+ ¹; 1“Ð Ü{¥!ä¡ð ‡×›HÃܲaþ Â!¸§nÇM0 \‚&ç<¢ œgþH`sCN>Ú½Ã`(‘á†2pi”†áœ>Å(õÉE#«:©Ià¥Ö&\o~e“€Ø±JÚC›6)[%ùö½=ÒtîÇ^üHü´õ¡Ýƒ€÷qկ݊€$ëSDH¬!ú;& œµ} ®ÀÕëásÌ¸Š¬¶àˆ°‘Mg#Çi>üþPölj{1' pMà²äÍ„¦¶ö1bƒv"cËüàZé[ÄòJ;`` ŸY¹À'Ô‹Xe༼ËÎp;÷¼Ic€œ@å!úO)“™æ ªç[À¸Ãլéþ^>8ÇAg²Àžu‹y€Úôu ] ð&N|¹f›¸I(Û Šd ­˜†6Å4°áAäÕQb> Vp•uŠ¢€wØàUH…Öñ7h´³b9ÕdÒTHeær#=¦‡€³dVM.7È‹½6k˜¡Íqb²øa‹w(`¡;p ™€™R—å~4àZ^4“#ð¨fžˆiAme(£$“óLȦVö7# ]£%dêÉæd#dZj£™EÌ}jú舜°ZÆŒp–riŸ’1£x¨h¸¨Kc©J¥2Æ•¬ŒJ®^ Ù+®þÆ)’°ŽˆÊ¬ԺŭҦ‚,ey†…¯±K¢°X;‹±c.[…²âÔÒì5€éÑÚBíP¨ó-.ÛNgÝÀXíÛïN&æ"®h ð¦u\rÞæN§€ÃëËïì–™ W©1Çüqõ:+¡ÙʸñÃ`sÃE" ˜b ô¬À@3 4¿òü/:rÐÐ ´—òÓPG}sÎ(sŠt;/©ÍQwíõצÒ@¾ˆ µÎ?ËUôÐ ´Ï ìLõÍ6mr.¼¦/Öõ’6iª¾PtlGy0-¼¨i 0€çl5|ø,ð2"þ†ŠƒkLK_%yùzîʃנ˜t4Eáà§â¸°­D«•-Ëß²dT“Å“¹—9ˆs, ,iØãö­ „h¦§¢eAÖ˜ƒ*L“¶PVç·äÛü®!°=)–lîÄÃÞÅëaSî–n^< Ùd0/Ë»ìÇ‹¢fpþ='ðŸQúéT9úîV F¥HéSE>†ù©B>lp *Ćëí¯äKC÷.(‰þµa€§Ð@X üÁA4"û„öØ!®Œ­vš ó¢$ìʪ–jW(B1¦z„€• ÑФ܄véyÄËÈ!ÐŽ$Ê{‘$HÄîDꆇ ˜þ2ØD~x$0¼ÂÁA,$7P!Z–.&ÚȽ‹£ƒ˜\U@\d°¢5wp]€‹_øbzšÄ9h1÷Ê#ô¢¨’éý>bÜ ôeTf !ZÈEÉ(ãhSªc‘ð3~a­“zqÖ³¢¯Á••Æ!åpm`s‚åP>Ñh[Ü P5óéRl„ÎA@Åc"²ŽŽCâ©’ É9S-YetàÈMLò˜³Ü¦Óèþeuˆ¤Ir#©5-‚´@´"$ ÜN< )/;î“æ„'7ëéÍ{Fñ4œKëzD± ïÖ|ŽBõÚy¨BzÓ˜_éÐAbÑr~S*ŸJbò:úN£@Gsxêh(}¨=þ’œ·èG'"H”z ‹„iNFùRrò¢ö»ææx%Ô´¨3()R_Ñ¥Î`¦NõÀêŽUO¢ÇJ­ªè®Š.­‚Àм@6B·Ð¥–5¤„ôª7”IјªU5³¹Ñßʺ¸ÞEU*=ç@óò;ºŽNšmÍkdjм ù•š0‰Lý:ƶ@°Ž…¬c'KÙÊZö²˜Í¬f7ËÙÎzö³  ­hGKÚÒšö´¨M­jWËÚÖºöµ°­lgKÛÚÚö¶¸Í­nwËÛÞúö·À ®p3!ù ,ƒÿ÷//ï__ÞGGç¾¾¾ŽŽÎÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþÐÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹_¼¼ºZÀÃÅÁUÇÅÊÈRÍÃÀ¼ ˾ÆÐÎ8ÚÚã ÛæÊÝÞ9àÄ ãæç¿êBìÑîãáËýõCà†-‡ÀX¯€òþ逯L‚‚q ðù›§pCy JL8­btþÙ$À+ÇìXG<šŒ^¶“QyW`‡t2 ,PpΜ>ˆ˜áÐ!‡2rišñœB¡iSª“=­6JT+“¤]½*9@N,—f¹¤Gâ'ªiÙÆt[tÄΪq/&T [º¸ÆéqünŒæ °°ƒ Ö5–^òJ’ [ \dÉÜÌ-à̳ACÂÐ~ÙîX– $\üîê_šM* À´\w?ë•xºé~YïÊÅxûu\²p¹ÏK28ÎÀ¨Ξ…¯ûRânx P}Åvx×ÖמEeôò9¯¿â=Áüþ•-Ü7fÜ)Œ€Wƒ,4Ôì„!…-œ7No^H‡.XÏ:À€e¤AHâ Лˆåp–â‹ý‘fž •Ž,ĨÔ+Žã¢*ypZ#þ-è€hÜC×’Ü7`>žÑM1+H%#E_˜Gv±¥Àsøôâ”pæä.0&Oi6"Yb9"éìÀK²©™ÂS¦0\x@x…¶ÓœÈ ¨þñ¤R¤¨ñù'}"égƒv'if§.‚hœFŽQŒ‰¤>º§{*BéÖ‰&WæYè—‹„:Ve¨žA05ä&$«þVÚj°––Ê­(F˜C¦"¬ûyA#+ÍNÀÙ¢RDûã*Ô:pä^eÙœÚ~ꎈ<]c…£Ç¶Ò¬P–íØW™žûŠ¥v¾‹€ŽðYÓîüvV‹J+ Ÿ½3ák T–åK¤ô&¼p Øöj‹Ž&×yp¿)TǺ¤9ž³  ðµÀ5#“`nϪ¼3¨bÝ0°€ Tl±ÍL€Î:ó|¶ðÒ¢À xÑÆ-Ó\wíµÓP[#µß"sÀ  šÄ‹†¤òRÎ Ô ð•ÀÓ,íu¿`ç,vÁòê"4NÌ$}5ÏTâD÷ÑHã½÷ãUÛ" wÙj(þsm÷Áz³è±.ð ÈΔ¶9ãwç­‘7Be­Í–I–—¿@·RNJÃOéÔ©ÐzíA€—o|–Ó:H¨f–øf‹‹¥±Ë^žÚÞÙ@{.P}ñ;.ÛnÁY|·„Fô‘³Ò­÷MÑb­ÛËðQpvýž´^ú²$O†ƒÒcE÷οVè I¹Ÿ+Уÿ¯&kàß*Þ§†ž*Ÿ3Ã÷PqÀ68°TƒK1?8XP|ÃEq¡ô¡!„œˆžä0ÂN`k\s8a&ðEÁ8¬暘¢ØP=²ð*?½ÛÂ’®b±Å8hSN#4ªÀ914¸Úþ„j•ÀÍ0B8ŒÒîp‡'ÝlË º>”†ìá#"´ÒªGE „Ë ”;Þåæø / ì0,H˜7+>4#hâIÎ06ðE)7–+]”¡1·ÙÌP<ÔsEìowÐFÀ¶Á±½¥, ΑÔóü€Àl1¨›TÇ5üE•sÞ¨8œ¹ uïÒÒÌ 9«Æô!`¯ Ǧ&ÿÜHpeûÌ(EsüP<Ë"Û‰HÒ¦\6ïI«[ !1EšI#ŽKºcZ†C4VoRÊæb®i–T2Š£#Oj¸Îtœ„W¢U2Dñ(SŸyââw¬˜—q²IY'ˆÞ3ð›³ÊoÓô”Êp Å©²*€V±§JujÔ“­h 2ê”êÓ¢©*A ¡ Ò4IùãM_ÀÏÖ´ >•ÁLƒª‚è©‘¨)`)RS0Ô¥þe˜6uê_~³.[µ—à‘jR9p’ùtãM݈‰èI« ùME=Š£|ÆÔ¬hÅ@2-÷Î¸Š”"ßÔê]××ÙœõW’Dj]ƒŽ‹Ê±¯E¬تX,6ö±¬d'KÙÊZö²˜Í¬f7ËÙÎzö³  ­hGKÚÒšö´¨M­jWËÚÖºöµ°­lgKÛÚÚö¶¸Í­nwËÛÞúö!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉsÌÌ%ÊjÐ$Ó"ÕÑe×#ÕÚØbÝÓÐÌ ÛÎÖ&àÞHê'ÎôÛöáÏîQðÔ"ó ÖÝÓÖNŸ~ø 0 § Þ½„¥À›¦€kÍ& Œ¸7ô 8€HRG&þþ3°±$É“I¦SH/ D~ã`6ÉxmÜ‹éröÓ‰%½- u²2éÒ+j®@øTÊB ªŽ©hà¢Ö0!G~ýòÏæX/WÍžårÕëZvóÑPº"ì[vr[Æ ›¢éÝ¡y¯9@ê‚/ŠRÿ>z-½èZ6{ £­â™(¸!fù#Æ\Ý^—2!£Go–2òhÌö#É €^Ã'ʾŽÇM¨ˆ\ (@'sÆÕ†£K'ô|ºæƒâ2B¿.Ýs£ƒÙWǰ;=0ãmPc%ŽÛ„ßÝðȤ$¢–"”< ˆäÇaéÃfj‰Ð ‹^ö€Z‹ fc™7pu¥þÈ&]–päœû=Y‚žw¤ç”^œ¨i‚•}B§‚gŸÄiBt´#˜C€nrg c¢ù†£þ(0ÙCãP• Ÿ#ºÌ  Üsœ"º ¡%(:* 3`êªIæ …&L*G;+êˆhuTj¨—škH<ýª&¢’ÀjÚ hª¦êþ-ß#Š&®»Ž¡¬ º´°žèê-±n@?ö–êbœ»'= XºF<Ù8™²›‚ò,ÇæèRJ˜‹«3™cö†±CkÖR逴5 À’7¼EÁ@õ‚1½®=À@ƒÑkĸô¸ÊÉäÊ\$ü&/SÙ‚ |lŽÆNôʳ-+á 8ë«'c0ò2ÆþÚ€¿côï Ƙäð-Ìñ‚Cp( 0°7‡þBKu€Qê€AA:|(¯ Pã·\¼ï\.DX‡öâxàŠŽrÁB;¤pă qa = ( ,űTˆ‡ÖbE3ÓÃc‘°&B‚!œºöÃT,\ÍòCU±¢¹ê‰ÎQþÅI¦ATQ]<Á™Ñ@SŒü1<šøHŒ Ä%!“7ÂnŠ|0¢%Àñ“;ž¦l–ú€W*2uOÚ#3Âv€@&2 ö˜J[öë<Ò•ŒÍ…tdŸ õœûDŠ€xÂu Œ ;s`±ðŽ…\Ä$¶RÄÖ"UÊ–)—L""´ ‘(ëuƒH›€9¿Œ fOÏÀ¹`Š«uDA&ïè»¶ eË tZ×­Gl– ¢¦öÌ·Åó¥¢í—¸zâ ‘’!­ãW æ¨Tô|Ùs:¿¢œ˜št¦€ B½YRìT+묖F¡é‚‡m3"uôéR_©ÓŽá)õ¼jªÕhP—]ªpÂêUE’54=+ŽªVŽÒã©m”Uãz§Ò5l½ký"T½–_ô+/ó²#£ˆO°Ð4 ¸TGpl‚¬M§ Ù«vs£¥+NûQÁ–ÓŸÀsé†*ÏÅ•´EÍ©V×™Ïɶ5´Á›_f+ZÏ"öµ½­nwËÛÞúö·À ®p‡KÜâ÷¸ÈM®r—ËÜæ:÷¹Ð®t"§KÝêZ÷ºØÍ®v·ËÝîz÷»à ¯xÇKÞòš÷¼èÝC!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉwÌÌ%ÊjÐ$Ó"ÕÑe×#ÕÚØbÝÓÐÌ ÛÎÖ&àÞHê'ÎôÛöáÏîQðÔ" ô ÖÝÓÖNŸ~ø ( Ç Þ½„¥À›FÏ€kÍ& Œ¸7è!Ø1aAŽCþ< üg aÉkãP6!˜B†ùÅ”É$#L*RsF“ç–[œ4ÚdaK¥L­Ì£wQ¨QBHŠ5 K—]ÁT–]Æ|4–®˜j ,Š¢$c¨UÔ-;‡q«B­á”¬Ý’©500 _º4Ø¢û[óí6¶ ÄhC+WÆÑNcpÓ€t“ãÆøŠ9Ík| -ŠzK?ㆂ€Î$»–ÁV6àœÀt6Ðð\ue«|¹ÑiËŸ|qú† Š$?¡Ø7Æf†sei€@€Ú£z×Á™Þç¤×çpÐ9Áâ×Tåë;±Pýû Wœ ,)  Œþ%C_ò@^d/ôÖ ƒ½×Brî@ßjJ—¡†õÝ—BòÀ=žÐ€S—•¸C‚ްbEõ¸èŒ--æ€s4Šh#{™Ã£ t–â;´G#=  ãHú°aEMÊè^”RVäcwXò ¥ ÅÖ%Fš£_cÚ𤠃y–¦mX‚Vøøæ tÚÙ™wʦ NÙç šÉä 6°åœê!J'|éè ’’Pæ¤~¢h(‘˜Ê°f qâá“ ¡}*£ôðéBs•êIž`æ7G;לs—hüYŒ‚¾A«;‚÷Ð8WiR(¨WʱT‚ šFž(jy¶þÂQKÍrúlxœ@*ãpAŠ)ŠàV Q©ÛEò¥’KYí¸$ìH£>mûP®îµÛdà2©ê7#<à\³ @ܽœàH£ ;ökο^lF#.Œn(ämÕkÀìŽ1€ À}´ ë*'Š‹‚¼K*àÀÇVÈ;êlˆ}$ì'μr‘K&!Ó˜€Ê²@—Z,ÏK´ ?¥KrËíªÀÔS÷ë/SÑ&•0¿bôo/1#23Kfä™Xw DÒž-MKÎ'qSQ¶ÐMwÝ-§}ÛCû–˜ÅÂä€8ÐÀáÎÅ (ÀÝí¢5Moœ Œ-fö­%=à@ãþV -¹Ú,dÌ)0\¾ÕšigfÂà ·;ïçN¿óÚ.‹Srâºún¿¦ð¹ã²Ï«7 l»< ¬ T]x#{ñ[nÂ•ÓšÔ ›Yô/ÀN<õS§m:šÀ§úÍßÑv±2îxè²›«}Œa O¿òÇ`x†çÓ«2¾Ö†í!Ãl˜’îjA@7 e³@  8Œ¿Í<„Œz'‡Î, u•’É,— §|üóì@Á^´Ð[Ë`*$X‡ ºv8úh¹>`IÛ! q‹ -Ì+Œ…éå‡ÂwT:Utè5)/‰{ø!+Ö·ì /<þqx,?œÈm¯²"Ÿ>õ'jBg"àâÒ¤ø‡0Z¢([c¢ðþ-^àÑd½|1¼ËD7x”àK:À@²Kb„˜€‡é &úyk¸ÎéáÆ;’FMÜTS¼ ÂŽ’0¢{.¢ýQX‘³¤ˆ£õ@SEˆ ÊpU»™+™øKÎ=ãs$µÛ)m “±°B(ªÖAàÍòQºÖ°œf>N'&#Ihδ¸<ÎiÍ«üðñˆÔë0:a_5r9+¼®Fñ´Cà.v°qÚ„ˆÊ ÅÞó;ð) .ÌŽA!Ãn¦À^]þAô¸–³*'ô¸…LÎEÏ^-¥Fóѽ€ÂK3ÜÂèæV`I=L¤62µ–kNê=—Ò…CtˆÚïLBRky3£çº×DJy*Ô0=EºS¨¦3':&àø<×-õ6ì”ø)Ö°±¬•á&ZgÒµ¾ ¢n­A[ãZ:µÒõ£½ë Tª×Ô´¯øÔÆTKÒkœ‘°¾#AX +Ò pèœg—æ)Œ–L¬iOъ΢rt­ê ŽÎ¾:!‘Zu³“2ígO†(ÑnZ˜õæ/ BŸb±rÁ- H«ÛÞúö·À ®p‡KÜâ÷¸ÈM®r—ËÜæ:÷¹Ð®t&§KÝêZ÷ºØÍ®v·ËÝîz÷»à ¯xÇKÞòš÷¼èM¯z×;ƒ!ù ,ƒÿ÷//ï__ÞwwÖ¾¾¾ŽŽÎ¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþðÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹k¼¼ºZÀÃÅÁUÇÅÊÈRÍÃÀ¼ ľÆÐÎ8Ù¾ã×ÑËÚÄÝAßé ãèèÊÜê:ìæã àçòöÖ1{ nܲ^ߤìmà»S¸pGCtã ôË'‘cÅ{þ¿Œ(Ý´ ¦ÀÛÉv(ddà¡^Ì àÕ¼iDAË øì!¤WÂf‡‚ðÔ@ôߣÆ[Šá"ÀP7$øIu›?,˜èÒã¤åºþªÇŒÁ¸0™eÕ Um† ù€-اÑ)Y|7Ú­J´ØÞŸžÍ8˜C—à@±Ùu[.Y²ßåš’¬ysÞvÀ<ó»ö—ÒÒ09ÿ&yµ\Àvi2./“ (pÐë2ˆŒ‚w›pÀ7AÚå:•§`>Î9Їɥ/oþ|DF¥Ú§s/‘9¼xxÝ?øìk^õÒs@ ¾ýyøòéF·¿‚o|[±þÇ_èy€Ö€-ø—_å!¸Âzÿm@šƒ-@¸ànD¡ ë _‡ðmøB‡i1`Fè&¢ yÈ_(2¶"‹1f”M|]8# -Ž£@}|Ñ´c‚«U°žC® ’d¨@’,¬÷d9¥å ªHÁW¢PåTäØe ¥·ä˜(ðUßR¢y™8é¦ mR¹ßœ"dyA™xŽðåbö)ŸÀ)(jZPç¡ÚduŒ‚°èFêžj镆9Κ›f éކŠA¢¼¨¦:Ž €h£5c µÓUŽH©j("@«ød5$ò:\¬0¾ªcÜþÓ²ER%Š @û€É ·¬ÍJðbq~EƒW"-úzá® w…M‡ðê°âšvÈ´¬f€nuõr‹A‹î@¼­-2! œˆïÍôøj¸1Ò ¸àfPpŒ7n;Ä1 û:À±!B_ÇÜ8À@"c‹bÅú^cX`ÅÕñ!ji4Hñ:“Å> +ðrÔó\~«FèLrînã˜q4ÐL9´Ó VÉç7÷‰ÒÁ‘î¤ÝíôY:‰Ù“ PT€»þPIÐZ©D1RÃhþ ,…‡Œ µÄÁ0´~1)ŽˆcZ¶¸Á“š´è]¾°I  uYÕÑO4˜S45D6Óð˜eîôª„(>T˜šñ 9ÕåK-AÏZ)ô/ÆÛDOÅE¬–¥ä‚T«üôбŽQ@fý@†"”Ölµ­ÖSFLÓ Ë²†Ê–eTNYBP]3kIŠ&0X£ÓxéÕ–Ç éœ‡º£.61%±XU©F«O•õYaT†¾óP’½Ú4KW¸Š`²¥5­jWËÚÖºöµ°­lgKÛÚÚö¶¸Í­nwËÛÞúö·À ®p‡KÜâ÷¸ÈM®r—ËÜæ:÷¹Ð®t§KÝêZ÷ºØÍî"!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊË*ÎÎ%ÌhÒ$Õ"×ÓcÙ#×ÕÚbÜØä àØÐäÑáMí'Ð  ÝùÜãðIòÖD$°ÇÀ;~þ ÜÁ=(¼éK¨Pâ{º=“W­E"ý¼=°g €A†úþ<~’\=Of“¦r%ËwØÎÙ+0 M›K6Î|SãÏ€þ„âœQóÅ@]45†p¢Œ©,FÚ{•X˓ֵèªâ"Ô±d‡}Í&êLkÐÒ¢Ðj@,Ðy*½=ÍØS#Ž—øî®Xx°áÓ¨(+¦A±àf¯18\i À¹z; á¥-Ó œÙÄW”Þ<›+·]»¥ÁV.ìyÝ[/Äž·ôv5Àà6Û Û`7Þg¢70› x\Üößñ´9u‚Ó{T‡MÃá½ì=öÄëûh }ý=Lv ý¸ƒgŹþG’@ÔöÂy 6HR{®M¡„÷P8ÂúÀœ†4ÖaÛ¡À_t# 1ž] (@’= ¤Äz,ð@‹/¾£Œ@И#ŒféÆcO‘”8ÞI7¤žÙH]KÑ€=B–ðˆQÎä O9ex šàâg_ö`a f%X¦WšðÒŽkæ0¦—%L‰Nœ:¤i‚wUâiƒYpŽ¥Ÿ7ØègJƒ}ŽÐ¦¢Ý¡hB—Ò0(šö¨Yi ‰Žá¦2ÐÚãà´“9‹FɘšvÚ>0@ÇC =´‘ ½ËjÚ´¾’p™Ó³:ßücÑTHSó±^ 5öÊl«òÙ‹ùë“3Í.ÀuWÿ¸@GÉYu´ <7ƒñÔ7løàJ0ü²»ÅU|wß@=ØãþHÝÆ²¶’ÓÝõ¢¿^.¸L>'¦3%À±P•ë=iî*Ö“Ÿî‰9Z-s4ÏDÓ¿Žè-ÕïFÏÙ>&ï‰{¸ ì]ÃܘËBWÂT8ð¼‘Ñš:ŒÒ³rqÚ3‹N÷ó2{­-(‡Eùo£¯õܺßJãdÀŸ£ ”§´Ã¹ðôç®þ‰À,ÕÓ…Ù¸½èLŽÆ{C‹ÌÇž^àOŒªv!À:ÐHw«XàÕ‹ÿÙÏ Ûa)x7 <ð|QÏêBZÐÏgÙCZñ?gu¦…x¨¡+zˆ5½d†vØá)X¾±(S!"ð…©c•ç‰}P¢%fwC`¥‹|ˆþâ&BBD{P`äƒ'‘´äÈ/"€|Qò„<˜h8\ûcÀj˜÷)?¬QTür´“TC¥«—Ñ Ð*?ÄnŠKÙS Ùƒ¸n$~¬¤!ïˆHŒÕ)G (@'gòŒ @ZdÄ% ±v ÏHÐsXéªHfJOÙ` ˆÇŽ,§nì(f2E'€çao³¤eH„Seuî¡™‚_Æü’+A䆯æ떷‚1!Q‡Ü,eÆÔI»ÙØŠJƒ8ç j©¸¾MYå „هى®ž£sA0$i6ï ›#‹>*ªX1 ¥ÅþB×)X¼‰/”ÅE1RXlT!EJIÚQW”Ô‰Äeÿy Jå‹n³Ëâ4±R:œÆmŽÙi&ìÄ.Ÿ>nJ6êdBKQQŸæ%,=è(Ü©‡)¡œE¯ª™Þ M-½G–·9¦Æs?ŦTI1Q´‚.%ýDÅKá`ÐÐÕN'uêCíš<¡*"‘?¼S¶"’ɹfkjyìÊ·H?*ï›~51ÓÕÈ^Ȫ–eG4NšV¬Ví0(7 ~ÂÕŸ 2-V?[)Ñ¢–²©E^8ËÚd‘´Š­ÁmsËÛÞúö·À ®p‡KÜâ÷¸ÈM®r—ËÜæ:÷¹Ð®t'§KÝêZ÷ºØÍ®v·ËÝîz÷»à ¯xÇKÞòš÷¼èM¯z×Ë^…!ù ,ƒÿ÷//ï__ÞwwÖGGç¾¾¾ŽŽÎÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþðÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼r¿¿½WÃÆÈÄRÊÈÆ ËPÍÉÖ ÇÁÖÂÓ<ÞÁÚ ÎéÍÕá8ãÇ Úêßìî?ðë ÚžÙËçcô8fðÁwäœù3°À˜²‹y1ÄG¢]D þjS˜£Ç[3†8 \²ç&3I¬L ¤y` ’!… …K©ñ£²I–ªb"ºܾ¹ cmY«uu7'6°Š“}BŒboC›Ò%îÒK8Ðù㮇0uË¡k˜ä‡åQœÝG¬žøâ„êM"Ƕ¯£¶Ñx´¼ê»óÚ;¤t×Mz5ñö]ú€_¡üºÌg ⬟wRyM{îíúžž ³¡zö‹­oJn°éËDÞP†¼ÑÍFÎ Þö"á¸Á,p ûÓU°øˆß‘hKd0 ç®w‰î HiP—“BA?E#Rk(‘@ïI 1á*ÃUìwˆËaHtŠX”Ö›Fe€Ä@Ø€­âÁ1%¤ % )5ÔGÕ`$¨8«åì@цþÚfD4ذ'8ZÙ[b÷0ÓDQn˜!(SLñE€XÀ:àEhlƒ`ÞE“mê€)³GXaäÉ ×é"2cÌ (€B¼qlÀDEУԒ١b¶‘^Æ JJ'-Üd›x²PÒ‘é°M^4g `‰gx¢fæ·WÖ¦vâvø†hkûž@|ÒÈ+FГmPã'½v:ÉqåpØc+áLÓùmZ¬dC"·9¸è ¯Ò„C'1Ï®›€¡ŠX lÂA—¡ gTXŠ!Ê!¢§z8 {¾AŸ¢@è=UÙ Æ‹¤þ mÎÁ¢ gÆ9ŠR©óR¡èú Á@ó øô¶êÀOQxt¡·…HÕðÅŠŒpr–X'Mõr±Þà´+MƒÉX9O¼t Œ Ñ=¢7 Š.ò$Ä;$t*TF–³x„øâªòÇ^¦Dª…`£FÏ`P¾“-aõšœ†¡¬Yí GxÅ£bO°jÜàiPž351SÂW©2=F¸òªÞäÂKSI³VªBû)¦L)7vGzÝkjP•ÙÄn–³¤‰*õeÙ_bγǒljA¶Z\¶µ°­lgKÛÚÚö¶¸Í­nwËÛÞúö·À ®p‡KÜâ÷¸ÈM®r—#ËÜæ:÷¹Ð®t§KÝêZ÷ºØÍ®v·ËÝîz÷»à ¯x9!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎ*ÑÑ%ÏeÕ$Ø"ÚÖ`Ü#ÚÚ Ý]ßÛèÑ àÓèÔåJð'ÓùîáñàóLêe± _ü&d&MàÂçZ8¬†/Ÿ{ÿ"ûÆ-¢ û)ÈGà]ÃŒ þ‰Eì7¹0M„k϶Ž*[‰€rn›–RžLt5dDX­è0‡B$ȧti8§BýXÇŽ%?œXŸòLÈ æË‡8a4ä )5¢F»M|X–ÝË›qoÔ=ø"ì±zpEL5ÀmÞ \ŒÙlìBmRó1ðªqÆÈŸý›@]A™æp` Ä¸!ÔEp÷]ŽÁ…M‡”–õ*É&uÒØ+[ÈØ>Çî äóY¼‰ ¹œàøÄ‹•®ã²éC Þwƒt>çØ}ÇA=¼Á ÀÃHnÞwyÂÛù={ùBöª_‘Á ÈP;þñn/$þ¶_=ŒçÂ{ ægЂ$Üá¢PÓpq a+XØ¡„ߥ@“>#ÁÜY 4°À`¥ˆ€/Öd#Š2¡Ý³q¾×ðÖú2 ,ÆÑÓÀ«›Ö÷¶qˆˆ ‡û‰ÕX@ºALmMÁmÔ€60PHI+N—«è4`„ÄÿHpAægJvà`ªx‡Áô‚'%ôZîDùmX®«Ä9@šå @[¤‡ùqÏ…y¨ ÚÔǺí) kšÓJ5ꢪ< ‰I(qdÅ2G`R< udÔ ß"Ô•Þ!—Ú$¦&„nic䄿»MòK‹,%3¥Ø†°Ï™˜˜\äšùµ s¬™X™¯ÙÖÿ-3xq}¤¨Ô/&‚¦¼D0½ÇV6äR˜xëÀÖ ? .6'ï,jΪ5lšá®µJ_qÉW¶½°ñ£ S“›Í*´Çújjk€ÚÕºöµ°­lgKÛÚÚö¶¸Í­nwËÛÞúö·À ®p‡KÜâ÷¸ÈM®r—ËÜæ:÷¹Ð®t§KÝêZ÷ºØÍ®v·ËÝîz÷»à ¯x‘!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÒÒ%ÐdÖ$Ù"Û×_Ý#ÛÙÞ,ÓÔÚ5à+ìÙÖÒ åÜéï&îÃàÝû-ÿNàÓg̓öÄq«¦ÌBöʃƒôV̧.™C" H ã½xëþúA`pЇ=þ—àà“âgð €pèêä÷1K„c*='0\MzðLrJŒ"J &H²+S}ÜŽ&€©ôê5|ÔÆ=eS% ·`ts YM5n€ñÙ¥;§‘˜gà@¿´ ™õÇMÁA%»Ru!6Æd`p¿{ðô&HŠ5.dûâr° RÅñEz0 Ç”6mNÄSÙ@ލ=„óè¢3ò¢;âØ †YÛ£A_彟6Øœ4tâZÛÈ:òzæ8zpàˆƒ§ämT/_D¬ö•ÙÿMC|zùCÄ¿w?÷2Äçß|½Ü}þQ °á–`ÜmE™Vá[*¬W¡ ®Ðà†Hp§À~#tbZWÂÎÑw"‡}±ØÀ <…Qr/"a#F<òˆ`ŽD\Øã¬il±-À@ä@ðœ‘F wFPñÔ~TVYÄ“e©å^vÙÝ—`t‚h8’ š'ô”¦š>°iBOÂÙƒ›m>fçtžÐâ{úЧ ÚÜA€špT¢†êP¨¢.6ŠÃ¢'¥¢¤6XZi¤˜Ö © ÜM×é Ü]ŠÕA¢ŽZC¨'À–ªª3¸ÚêA?ÂÊ ­³Žgëk¸–`ß®3HÇ;ö , C&;‰Ç‚ª,F5BËl³"þ ©À 4ЀÆq‡*µ( Yëœ6.0-¬ˆëBº7žÛ)»#«6ÖÓlpoÂpž´ÀŠWç Þðj§þæÐ@½î~Yð[謈¤„’¶h£.ÀU¢Ãé­©íäE¾%|"’•ØI ¦Ê ª;Q@】ÌP%å~.ÓZL~ÕDóApe³ð& ¯ešùФ2×CÛpE=C:ûõs,(^¾åU7;*0ÝÓÏ,lÃb1vÞÏ ÝŒÙ7d–TNNÍ<¢|pã€Úʇ݅Fæz§ÅV<°ÀŽöçmÉV8°´À"£íÒR76ãÅÌX¬®b€üXåþCìm²Ûmhþì¿aÌãÝIXå«Ç¤W!ú ¦+»1‡ó¸U×þÞ_؜״ÐC+þâL¦€ðÁC(XZ™•Pßã‘¶†…BÀu1ˆ¼ÇÜÒ'ÆFe#MäHý *î¡~û«à9È·¶T$kXp]>èvD=¤—£b‰(E&"GLNâ·7òˆkzË ñµ¤9R/(ØañœæéÁˆ’£WF`EB:‹[_¹K° GA+)D]ºÒY „~lñ(@³-Ræ¸C¸XàIšš„i¬Y„“Ü´Å•Ñ"T¾BJ‚X'-d%CÒâ˜Èf-(%ˆZÒ¢šäôå,%ˆdÒ⛂˜¦9ÍDˆkÊBž‚Hç,à™Ðs²‚žƒ (þ,ðQDÍB¢ƒhç,Ï"½BŸ…°',R=Åbœƒðg,,ꇎbv#€è JŠ Ê¯œ5é'`ˆÑ†~Kh­F>Ò…`)(ªWÉ\~ªaP(R¯÷ÅbÖA£[%bÕÂÈœÒLEXýä÷ÈÈ´ZÁb4«“[KXêÒ ­„è\£áµ!Þµ h»]>CDHd¦. ôj¨ŠX«R‚…­i$×°³µóf–Ø«\'LÅVB³”¥ÛôÈŠ ÐŽ¡•V}æ®êºVÕ®ödšA¸Nb—´Iv¶¸Í­nwËÛÞúö·À ®p‡KÜâ÷¸ÈM®r—ËÜæ:÷¹Ð®t&§KÝêZ÷ºØÍ®v·ËÝîz÷»à ¯xÇKÞòš÷¼èM¯z×[‹!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏПÓÓ%5×2ÔÕ$ÙÑ-Þ"áá1äàÖÝßç&Þæ/î*îíê,òâÝ é#ÔðñNd»6í@kÜþ±C–p¡8 à§PÀ B`QA¿A&ËxOaƒˆþˆGƒ¤Â(†¬Hîâ°ŒG@4°dM8!$ˆxż’ÎVËö`¨!ÞPº b‚vÛŽÚüe¯¤·Vé¢+„( ¤HSYW–ÿœ2;³¬@PÎ%Ër+0©3rŒ¸©ËzèDèµ_ßfYÙ¶Cq¢ãœ3"‹ŒçÒÄôVœŒ¨Rˆƒ´åB·Øé1̈ R«fÑ4¢Ì¬ažmbp‚Ò=|çÝC®Ó¡ÿ18%×<—1¾cgéA;ÏÑ\9öU ´¾=öw µ Ü®átüyæam„¿þ^õڽׇOzFùýCÜCnš†Òp-øþV á¹ÇB~ ‘Þz*üá­fÕ…EˆBsrÈßv(@§ŸˆÓÁVbNõ„"Ú1°À $àJÐ÷"ƒ8öØã‰;¡=Yr 0Ð@< Òk:ÄhŠ€¤”Fäb Tb)Ä`敦—A„& c’‰[r'„G¡š:8$;Í ç (¡ çÏåy‚Ÿ|êå кÕ& jh£mI¢‹Þ&—ŒEzƒ™' 樥3ìôæF*rZCm†*ê ž@ꩨF¤'›¬Æ ¨ ©Æ ¤$j+ ]Žà¤£E¹+ ÍÝèãoöðÀNDö¨@ˆÉ>Ú¬U þ(Pc|Ñö†R 8 ­7~:,³Uz#вº¬^0„'^ºœi§ ùX5ï¢ÅÞ«¸ì²J.yÌ.¯šëš*)JÏF*/,Ædh¾-mS¿“ùoK é„’ÀdlÀ™²e¼Ù¶G¸06w]æ®þtÓr}uQ;(ð±X|Õwq.‘ÍÑåW4ƒÌ3\ @iCÓsòÜÀ“•Í¿,]Ì<§lÖ@çx[ÓÍì¬Ã[üŒžÍ ƒ­LÌ5Eca¸]7 614°€±O¡Ùea¶Ñ6 è[ŒÞ|okx0ËSÉ©üÝB2&X4læ‘‹Ì%âþÓjIã†b¬œ°+fÍ zè ,ÐíýŠA1l_"y]"°z×]kù:AÙ{F½-N `ÿdãÀÞ¡³Œ€ë*É=‚‡cxü¸'©'?‘4R†¶rtAW{š{Ý ÙÉ Àò4 Эò½/M—‚l˜>þ·cD–»a6MûˆZ? ཈€i¾rXfw³"1HÉBÏ´’<ÃäF… ýÞ@<ñe)ƒÀ’BD-<Ð+Tð®Ñ88±{ƒõ8s,‰×" ÒVØ¥Ìc @´HE `,t åSÔT7#ËÙ¦1BŒ`̲B¥$ï‡-cµ*&-¾+Àšþeš—£@%nl™¢Ö$³¶´°G÷KÑ%+Êy±y3zÜrVÀ Š1Aù„e‡&à^y«E×-M­û“‚äþˆÆHŠ`'n«Ã ³¤;†.€ÖZøÈ?LjIt¢Z7Â4f¼ÛO®rJ*ò¤•ò–€``p©GÝH,p€äa € ˆ^Ñ™ÐNKœrñÁ)œ[E5žMÁb›‚€f,põñÑbVÀæ9I'ˆnÖPˬÔ,àˆZÉ‚ž€Pç,œ2Í9¸sŸý„8_ÁÏBØ{"„>c±*nji §‹ñ…ñG{)4à›€ýþ·ÂfA` ËaÖàþ™€Ý„æ—Â~Á˜ „(âHv˜!‰(’hœ‰CŒ—"ŠÞ±HD\  óÀ7ŽgŸŒB”XÂxïñÄH(Ĥ>˜c ô°"’=( DB '(i%8)‚”Kn¹C\OŠ0ž„bîP¥ey™¦ Ë9ÐKoêT˜#øXç gf¹æž|¶¹a€æ?ÖW(zŽ€å¢5Äy‚‘Öp' M–Y© :R9Ц4< !¡ ê'¨ —–CT´êªªŠc/’覬'àTkŠ¢áŠj\(°€Ä[l“.ùz‚‹Ì± ë­¥>lšþ.U¯¥Òºc 4©¶•ëä x .  û­¥MX)³ÐÎ×è›L[í È"ú&¼><û¦´#Q{åµ[jë˜>$t[ß¹Š{/JM¥KÃJ¼pf2Ó.Åðñ»ÃUI3g¨¥v\½?üV?Ø0ÀHm5Õ³höàVZ½ÌÀRˆ)0a*çðP8厴€a<5ô@R*:Nb$FZÈÁ‰2µ¥ ,°²* qÕQ ¿Ü@¯UrÒ 4ÀÀÖ\¿¸®×)MfQº/ë•+ G½tÖ îZ+ž@œÝÕE"çŒhÙ•L}UÚ€@Ý@^«ÖL3¯ÍÃTÍ=EGn²)þg?”uˆ~K.,”è”_<€¬»¥€¼®¥ôT",´ ·É±&_‡là4 P@ØÁòŒ;Ý‘aqò¤Ü¬Ò;Œ]Si@€ê”éníú†‚ÚJÜPô½¼n8šÑù<¿gr½=!Ÿo‰ p/B…cü,×îò3ᘠ`$M“.†Þ1'~ÝÕ X>iøïž÷6àÅínƒ›Š5Þ÷­¨À|œcvÐŽTpà 1A½®)ïk–\°ð킇¬£ƒwö‹TÕÁu#é`à2ÇÉü(Û"²ˆèƒñ51i~€¢dh3 mYþVÆ–×-î…£ÖH÷¢»ýEzxRïð¾£ÉŒkë›ßxÕ,æAJ5˃ÿ`W<«m{$Q@0-„rë áÀ¨í‰üÛé˜v#²ÜÐqÔЙÉERnlú#‹âzæ‡> â…(–%mçÉÚP„U ¼U¹’Q2,$ct ˆXµ@p]é£0ñ@Ì?ÈñW£$߈¸643‹‚E— Ñ$_Ž'>üC“ÂÉ p˜©0'!ž)‹C‚1³ “!ºÙNòpsNõ×9Eù y‚°È”!à zÎs Þ…A€"ôè4…‚Öé´QDSÙþA­Œ~  5[ÜòôÑCŒ“£c¤¦L†F>üþ™ã6­š|ðc¨0Š¿hÕàc€^ÂnÐ(VLaµþ%Ö“6CdÇ‘&J¶ƒ€`£Ç™ÝN¬„à@"̃ gÀ—àb¶p,dn `@Ï~FY" ‰ÓcM Òal‰t€}éñ§‚ ~øs÷@£ÑI5+â!¾§=ÖB Ÿ¤;ËÒ…Ð×Ç þ½Iuâà(ïê(Y8I ðºþt{GÀÊ«6|l‚Q¼6(Dà ôÑ}šÍºm°£1AÞ¹ÛŠ™ôÓMDÆÝÒ· °’{ o-#ö`‚uØ%Ò8Šé¨mL§mgé£wÏTyœ‚\î—ä ô…ÉrF–f“™:”yBa²iƒ—%¤'§ÅY˜wÖ`'™!ö©Ÿ$Ð)è X¢ç¡5:ŸŒÎ°¨ v¥) h¢—º0å›kvúB¢'L*ª …åH¤§²À* ‘YÚj‹„þê¬*”Wã 0Ð@“ âŠÂ}D«§°"LXìYâê@aø,Ф þôºÀ5Îx«°Ð6ul ;ëpø¨ºB¸A(è³=rÚ‚œ©+çmÞÒoº‘6À#V7ÜÛ”¼GÀ.˜èÔÊ^x¦[‡éï¶:˜hž•ûE°ŸnMdÂß.|ڋ솧VH$d|±o×ëƒK˜!¹Ô­¬ ·üSÈÑ QT$§ÛQz©ÒXÄÔV{m t<™fÕ,Ð3VUÊЂuµÒE3p­ûk®Î;oƒ9&Ø'íŒu×n]Ô²p«·ÄZÞLÈÙ¤œãMt=äÓqÓx›»HÌ;T{å\&zN¶Ðô8àسÀ4°$ Ÿ¡TLþ~5ó(A D>9sx+ijŸ_K=uã iÀM…Ñþ@T%¸Eø.E-BVOçÖéÅ˵ҕC^@ë'‘¸âÒ<“[x$ møA£ ¤Î3×Néë_@»€Í—èý’óP‰cä\èðeLØ0é3ÓýšWñƒ¢g€à¥zcÐú@ѼîñŒ1ÏøD6¥yáaÍêDâD3–lЋ6â:ƒúØW‹‡e¬ ú#!-R³5(ܺ  Nr!1ÜÃ3¤p[šÃ [Ø‹WÅÁ†¿ÈÔtØ‹JåᇼˆL~ì0ľbS{@b.Hµ&Þ:~€þb^¸‚Öu±\¨"ô¢%eÇŒzÀá´ˆž&5 °–Ûp•Â1AÄ™T´jim~‹Û¦”†”îc„²IIJ*,jœƒÓ˜ÈJΨF¸V¯îø+7–ÅxÁƒ 1¡OÞH”¾úUO67 ’,wpb!ì2Åœ”‘jf[ܤhˆM¾0ïkäòì€EC¸E…©tMOÙ.‚‡©©e=0Í;€ÑùH~f:ã‘3Ž0<‹`MC$„.]aÌ@Äs«tfX1OC¤Šyç<^ Ô‰Æ©Õ2Y9CDd†Ç¸ÑÙŠ† ¨'”€ I»iÇþ#å0Û‘$˜Aæî©Á°—xh§(ü·Ì›øáŸ¥ø^#é‡ujpt"Á‰Há°P´áT™Óä/8àm³›ªŒäDˆ6òælzx&*v:•Ætáœ*VŠ,¼³«3è'X1EÒ±¶@ªfÁ†ÒZ¡‚²Õ6}+ ¾*×t´®´WO (° 8à@‰'¢Øj娣‰6ÑÞH:bTWC¼öŒ 0À€„(@é$¨¡ÐÙSþð–%¼¦]–=x‡‚˜`ú e U–yãŠ(§fš`ä›Ú$¡ëæ˜g ¼ûf¼}iž½YÒªã«ÈñKd¯(ð‡É¶T- Œ` ,ìCÃäÓwìM±ùµ+ËÅ?‘•˜ Ú )ñ »†‘ǯ$D•ˆ(£é “¤’ ä¼@‹L&೯ °<qä.*/À´ÅPìÓì~t‚5FV(‹‹þVEØ—Œ7³5ïüôG™3Ý«QOÈ“…ÔŒ9íP¤YŽS°GÓ>:4aLIÊùÃ{æÏ‚ÙHT·:ÊPDm…+ƒ‘Ÿò”è ù‘Ÿ0Jf ¼ /Ϊ1P ]ä…ëØðA„P’BC½x ÌK çB[1¼‡žÐ†‚„Ö ÃðP ÿù¡.:Ȇ#…oˆ`0\x‡¦Ë©¢C oØŠÚa…ö â*bEò‚ˆrðþb.XzoLôCqÅ=±VìƒkÁÅ=8Q‹¡c¦ˆ–à°v{ #°hÂØ0E€Ô© Eºøì‘,â™$')ÉP²E–”¤Ç¹ÇU‚ƒb ¥(ëQÐ($xsˆã f3ÊV>M0õã$êÔøí–3Ë¥.u)€]î²—ªŸ_ê G?èJú]ùî H@XGKá “‰†E"b$gø@£ÌÄÉa.,„¡I4S.s ü#* Á!.…hÖs‹,ÍpHÐ24ìØMã¡’ Iæ"æ¢/á=Ïx@»öyÊ=€¨”]?ÿ9‡4BÔlˤ&þš™ ÖÁÓ8&õrg=j” ÏdÛAgbÎ?T¥Û)çú0NOÐO˜në\ÚyQ?‚Nmý”c= *Š“þ H›ÄCOaT?X4XXÁTs Ò©Ê ¥V¥ÁK³:ƒšrµ@úùj â#Ö µ¬0X*Z]€™p®uVR}« ª*×`µ®)Ø*^ÇT±½¦€§xMg6åM¨Òk_j*†çIž‰+V¡Ý0;QÎqSVmËÝ4³ú9Öl–«9Ášj&GÙƒ¯ —WP{NVÑï!±œj:ñ<Ñúõ¶¸Í­nwËÛÞúö·À ®p‡KÜâ÷¸ÈM®r—ËÜæ:÷¹Ð®t§KÝêZ÷ºØÍ®v9!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊ¿ÍÍ%5ÑËRÓ#ÖØ1ÚÔLÜÙ×$ /ßÝIßÓÖ  ØðÏæçHÏ(Ö ðá"öôž$¡Î>úû°š¶hÓè+ \ņQʃ°@…1.Iç/šA}äþ,ªd(Ý u %pÀrå¼–BBÖ×уlÖ‚ÞÄÄÙÀ~ ô€Hp#Q-2Sò0ªó©™?§B»h} ´šÚUÇIRq×l@‚´ÎÊí*³ÁŽÐ¢)ЗU%L®e{.è÷߃½úhÚܹ²ìÙ´:ði@À=eMÔbïlB–ÌlBp’IÁ²ì7š´8} N¿ì¹¯&k†C­F•M±˜ÿõËýqßFø¶·)SÀ®E¤ËãeÅ2ˆ?}p² ÏØ·EG±9GêÚ3 ñý ÚÔ×óx|Ã÷qù;ÊÏ8|0<þ¦ÍpÖLÿý@_ àþ„Lþ±p^| úÐÓ}+ÀaÓ½`ß…B춉qØ!_Þ‘0`ƒ"òÐl ,À€R%˜b+dã>¾A8ã¾Ýè£{;þÀJ8Ð $@™ƒI#l(œç¤Æ¡Ð^lS Ùy|eùÕ( i€—¨ ?©„ÈèÜPXŒ!u° ,F{tĆÄn°á/b‡¥Ìbªƒ…ñ©7 !¼Ã}ÁC!ªPAÌÃu‘š*ñ‰·Hâ¦x â‹´ˆþbÀ( ‚[?LE{šô4Ú‹|p#-šØF¡ÉÂ……#,fh=ºbU‚ð#+è8A¦BŒ‡à–Z´³[É­c–¨àŠ8ˆf}Mf-r‘­€NÎŽ!KƒÃ8G6Eˆék¨ü™I±.”gXËú†1Ig `%²RÉËWjÐ ÌÆÚ‘—áü’ aAÇäf¤-€fI²¤`vå3 ³ˆe‚”?$“ßXæÜÀ€ÁÏ|hPö¸Ùe‡ë\LÄþÁâAñê)ÊÐù~×l>õ O€B0÷ÓI<ýÀ p^FžöÜß‚ÉNtò1 äŸþ_ªyPQ‚òl¶±è3Á8L( i ”¿môŒÅ²$[úR¶|r …©ãL‘Ó:–²=õƒ«eƒ5õ©aãQgÔ¥FL5NT£Š ©Rõf¼* ð¨ÕL}³«.ø*XY€Å±ž` f=+‘Ò:®±5}+\Ý*W´®›Š)^U¥×½Žxª_…å¯ÁŽ ©i•dÓ”T:ÔªM“,›¡È’I€ëà¬'ªlr“³§R§ä:Z-¼<§¢QÕÈikjYMv´eEWCZÙ~´"ç$jYÕö·À ®p‡KÜâ÷¸ÈM®r—ËÜæ:÷¹Ð®t§KÝêZ÷ºØÍ®v·ËÝîz¬!!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉlÌÌ%5ÐÊSÒ#Õ×1ÙÓMÛØÖÑÜQÞÒ× $×ÍßâPÎ(Õ ëà"ñïðäûØ ¾~ã²A“ÖÀÞ‚ Ráç š{twPb’¥Õ3à`cDJþ@² h¯É‚(S>ë=ØæYó³H3~¿]´§Ž]Åž\FjDZFAK¦elX•ÌPUÉ(íñódVN ¸Üá5è×R©êé΃³4®’=QÛ{K÷Q4ÁéÖ@Ÿ;õ`]˜gGŽ]ëMÀHhnœüU`a®×btÀS'å¯CqþpF8AÉy]õõ­Š1o8‹v·R5ÜŠql»JÒ0â…·KXV{ãZiž9|„æÙÅ8€çÂÀíÊ6‡ÐZï·¯·‹ÈCªÓ6VŸ~ãìôêÏ>·ñ]üî3Ì£·ïƒ< ÷Õñ{0Ô'àó½þ`^oþp•k*Èaƒ<ŒTÒ <…b”€ 80á‚rØ!F(‚("²•h¢ (ãŒö÷âR%[ <&£‹7ögφ"8àÖc@ÉCŒö¤ ‘Jöð$ LŠåU.VBŽWâhŽ(Œe—9ˆI%~dêP¥“_¦É—(`4¦›4d‰‚f`ÒY^›(X6§ž2˜yB•¡(Ài(Z|ž è¢4Èyf“Ò ¨ SV:CXÚ©é¡hnÙè§ ŽŠÛ¤¾Ða¨è¢©ªÐ€e4Þâ—Æ*œ7ñJ㟤®JãKñèëyº:G+Š $9‚±(k(:3þ. % ÐZ¨žÂV»- 9~[KW©µÜ³ël #Ë‹Qˆ™û¦¯ÖîðÀ£¸ÔVÛŽ 4à@L_ ÝÊèn àk‹¾µÃ@3(pÀЯÈ0°²ê až¸¯P´R9`T²='rÊ*°‹˜¾*pmáê"²^Ö4À€ ¬l2ʵÖzìÁG´ 2,"£¶ÎHøÛ †À±EcÔ,÷¢ú®Ó9­ó*# qEÒ<`¤Ï ,t>Ú EÂ^ÏÂ0Ïaƒ@%'ðÀa*\µ_Ór7súÒƒòR•ptRäl÷:`+G2K%kÔøæA>…Òþ†“ÛÎNGé@ÅxmÎRYtm€´ÅÐz³„ÍÞÍO"Ðýz?æ]  =ë2qRááï J’äKcüŽ/<]#ðÍŒSjNúƱ˜G«ç © ¸Ê­*'™/4§¨ÅæÐÐ}ò¾ûöâ}ËqŽ¢–ç“ëñ\c¹”ãÞ,2u•œŠŒ“G06“ZÃ=%Ϲ &å ^ñÌ߆´—Žð"-\(éH05f<,€„…¤Ú`éùbMo ^1ö·ÉƒSr‰ßˆ«8ŒDͳ Ûà:Øá‡t(b0ªäÂ5èΈ´ÊéÐÂ_Ð2ÜFl'æ†zÐþa[!ðÙá‡c\…Âð D\€‘m¢©öðÄ[ ñU¤Eñ*X ‘^|Å!FY0°h$…I`ÁCÄÚÀ ñÈN°E+DK™ “zfœù!E˜õˆ—EûÐ0 yù3ƒUIÎ?„ÆkkÛ5•I#föK`·d4Ð ©’8-Ó’ÝÔ2.s^sSÜÖ0™~ ³TêØ/PMòÚñìª/w´E¨ÕmŒ›uo„üæ@»2n6ͱ€¬û,šèù±¬Ž %piÀ«Pt4Ϧ]»åv11O[5zÂâGngM»ˆOø¬µЃŒ}vÅ‘-5eÝ,bé`× –Ôóõ·Ü>ó†àÛeSůƒ"%asŽÙ.ÔÖÙñâhÀpóΨŽïx4î#ðÚPÎNý èNú‡ÁÞÀ_½ø9%] p±c|ú±Ódv¶SP“$ädY‰Â §9}€c'\™Q⎓ØàB1âR©ôÞ3'VÒ S€‡.¹UöáVìx™Æ2áL>Ok-»Ñ4i…¡ š/Š7Q–©mZ‹¦8ÇÙ48`Xè$ ÍcõDòqÁ„D$p†Ç/ö¹ç†Àƒ€Kkmh…€ôž +h¿Ù$yVÄÐû¬`ŸPËþÜ ˜0 '•d…¤t¦li–ÕœIª‚¢tCM¤AkDZ˘À§*™û¨é÷Ò )È¢£áåe8 ¨fåä¸ç-]C'ûvK ïAÅ€/.ÉHŽ£þŠÙì£5òØ£8s%Æe*,Wb:Ÿ6·0· (š~=ƒÐ@‚¥fH„jƤGªcL¢Ä*¦™\Ãì4À l¤EÍ~AªT­—¦OwàdèÖ†Tyr[º¬;ÃjŽŒ·ò…¡õï‰qÖ0pu&M‹n½‚½Ï„²±IS†ÜlvlY•G0)ïóB½nÑöÀçÀ«¿ï4óeûã²D§(ïÍ­È-,\ÙJü¼.'gµw 'Ñú6ÆA<Â/e®q?L‰®·ÙÂ8 Üþ*PÝÏé©C|£¹Äixï\ºÆƒì S/BõŒ¡·MöÌ|jу¤ÍþÃß¿½pßmù-„D Ä—€é'!ÉùS! $˜Ö†?`8žŠð D’øCr $È¢˜áæbcÅå@ŒãGÜ>$gáŽ2*`!Zõh¦¥âdMèÌk( ¬¼|Q ó k® H,Bl-*l/–…4À¼U± M‘@™k/¾%ˆkñÅÕe¬q O®ç&©ã €@„­jp> ¬ò½ûò[î Ì<±Ð ƒèPþa£,P? å@Ð0g]ñ‹^Æ€òO]ó€µ-Äx±¿I‡ &ÙûŒ¢ f3”±Ú+¢–u7{Hb™J°½uIÆýÝC Q¥Æ0B^ ™¢ñ6¸nãHRå›—\ÞRîþVîÈ9~ÿ]î•]8›K²%0:_^áToN%žt£ãV”®Ìp|ƒ¡:Tûh˜FìâøŽUíʨkFîÊ ü)/Œóa ”U2A؃=äÙ êR#Ä_,£–AÚw¨>`k_îý×Êøb¼Ÿ²XhÕO­h_Ú…a¥æS¨•Øžèü……áÈ2ª €©q…õ¨W°o¸…WÁQTA¡¥5¬F)[Ë{j‹ f¯UýÙ^P 8ÂOà/ÈÓE÷îàBXÜPлÅñÐÃûaª•{](žö&&ý!‡¦ˆÔ>ˆ"jBSØ] ‚8Š1£  þSúàSÃåY®ﳆXÆ1$iü_ÎìE4ð7¬ƒ9Á®Ã<0tà¢'B†9‘yŸ dL䨇ámI'¬ßÏÚˆ†:†ª!Í ÉCDF‚$%ù°Ç+F‘¼,©J!”²•6%,ðÊYΕ¶$+sÙ'Oò’²üej)̲­®˜uÛ‘)ƒù‹e̤Ìx”Êhf±:üZ™5sį•ë™ÕÌå]Jp5£Qs›…ò%®Æ4äh"@Ï ¼y:hs8Ë$è.vNdÚmbÊæ½<ÅIÉÜh4x™è"¤¨ Æ€0¸F9ÍU¦†ªÈ-bÔÆþ° À4Èq}"š 0ä\ ðFÊF†°FÛ“”Fi¿¼PF¦+ø#MSŠ–Å@ôx|ék—‡†Ã3”¤«ã–@á4©jDéRó"Ò t(B¹ÈUxâÀ‰^­ÁAÃ*Ö#’uã<ë ªªÖȳ­0À'\cðϹ²`¬v-›YóºŒòµlýk¬Ô)ØÄ´°(¸)bMàSÁ2FªW#µ³¦IŽ©ìGÙJBrªY,fwšU¢ŠV‘¥åéi1rBÓFS"QKmp˜™Y Õš¨­kyÙZç,’³fb¢Cú3ÛÅ÷¸ÈM®r—ËÜæ:÷¹Ð®t§KÝêZ÷ºØÍ®v·ËÝî¦!!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉ|ÌÌ%5ÐÊSÒ#Õ×1ÙÓMÛØÖÑÜQÞÒÕ  ×ëÎÞâJÎ(Õê$Õùîïðä" êÝ÷?jÙ A ho]AƒZSÈpà·‡#Â;‘ïÃ/fԈğHôþ €Ìèä’„#S®ÄÖñß>—CšÅÈR`³“?oâ|Rq¨†Œ–QP/©Ò1L 8}&êTª_¬b­Út+­^½€ Ëe,Y-fÏb‰Ú@í–õÚºÍ׀ܹWêÞÅ[Eï0ùÂð›#0OÁ,ß0yñÁÄ+Û0 M žíÜ&Ô¥ähû ¨'åáΞãþÍÖ€!éž>û‡³º¤1;pWó¤×º z8ÀM:FÀ5QãdP/øb ¢ænвåCå.™p>¹unÚZ·þ {öæ7ˆ×[ `¢i›Í“ÔÎ=Æðïpø_»gxi—@l/D‡ß^¶áþåš \•‚w¹)€`‚si÷]ƒ)0° n=줖¤E· „Þ÷qñÀsÃØ€ß1@`Š:XB‹ø‘&!>€Ø• ,°áò¨ÃŠ*øˆÙŒFî`£ H6Ù#iE’ð$-€É% PY‹B:ÍÐ[W¢°¥, ŽJV9B™hr¦ÏÁ5ÀÀ~‚yÅ™@zù%e(ÀÌ 4ÓÀ=`’çœ&0”Ù-ýi†M=ÌxÔ•7’mªÀèŸü@¨ ÀÐ¥”* À@ò Ág ]þ¸KiBà@¡ À¨’jénS|JBT àBNšæ úhØk¥ÌBÑi†õþ$‹‡ðÕªPµê”C@@¨^ª€ŒG<ð" HW_Ÿª]  žå=²å I©ŽäîàÀ‹ ¹á…nB@,/YêS Ð@{šJ〠øËä æÚ™î¿9fŒa ÂÚ’åHÒ0wé² ?ü/‰$<°/ºþfìrµý2ÐŽ:Nëv14` 0^¨Æ/W«À2šB#&5ðA£âìB³Òa¿/:6Ò¹¹617l‚‰9&óÌ[߀unëò#`Ù$ô\Ü¡lÿp¶=81¤Û’–À„I46?~Ÿ ‡Q(÷4Nõ0~(NÕ£ç0 Ûí²YTÝóME]ÅâÔtqþ^OÑ´æâܼ$k»•µc¼*δb¤‘ë_ОLÇ^Xx817‡Þ…íÆ,}†áâàðÂÜü7Ä+³zœ+Óü£#£ü²c¼€¡WLïl\ÃÀ¥;ãhø^ºñ™œ¢”‚PÉQþ`z¦LB)SÉT²ÒuÜ+àÊY!z¶4‚s Ë%ò²Nü¥Œ(Ì!³˜?˜#2UT¹eö@™ÎÌÁ*£éhRÓ®AÙ5qµ%:@”Û<ÁˈÎôNCËW9Wà#ÖÙÊ^2Ú:Q YŠÀdûæ“QÓNÇJTµ4ô«TÁ‘V¼0uŸ/˜*\eÕ¹Ò¬v•ÁYóú‚·òõh¤ù+ ê*Øjz²°)Ø+bSà×ÅŽ@®Ž=a#KÏÃRvŠý«G(¥®3‰½z#\¹­rò•|t°ÖêÙb†q¬ä2ÃXGØ–•š‘ôÍU÷¹™ZÁö´4âê£:[öÑ…á”áqÉšÜG·ƒ·½¬t §KÝêZ÷ºØÍ®v·ËÝîz÷»à ¯xÇKÞòš÷¼€!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊË*ÎÎ%5ÒÌQÔ#×Ù1ÛÕKÝÚØÓÞOàÔ× ÙíÐàäHÐ(×ê íâ"óñNü$çÒÀPß¾~Ö¶I“Ö@Ý‚|á "LˆmaC *œ¨Äœ> ÔÑ G#þKB nIˆ'åE3ÉÒ€Ë}×r‹)äÙ¿l5õ@‚×-Ø“!Öá`$8àyéçÃnœãÓ Ýe1áAÖˆžàƒ$ D Oð, Xq“±ªX妃õ™àNø!€—T =dØ#¸ÃC êSì]TË >21Â|ª$¾Ö EâAi©y‚d@I$¤±’L€#&“`ÇM‘ž$B!CùÉ>’²ŒJ›[éY¿¤Ô9gâ3î•ÎIˆ*Î!- þAcð¼?ùâÒû’ÐiPCŸøá'SóP&™@H &/ãOÀCŠÛ“ÅX—º@=Õ1ÀJ±$Á¸”Ô¥+Æv VT·´TÆjãRS¤6ãóÑ(ÃlJÍÑ‘ý8ªU¿ÊT°öã©c%Ê!xBªnU7]£TgcÖxLÒž2+^]€Ö½6ì­~eÁ]Û½6}=¬ ö¢X9 ¤±¦’)dGØÉ‚/‡¥ 6ÛTjGQ}¬«'IS.áUŽ Z¤‚(LD u¦£*æ½JÛk†¨YW'mf5Wg’–¶Sý¥?’Õhâñ9zôl\ÕÆYYö¹Ð®t§KÝêZ÷ºØÍ®v·ËÝîz÷»à ¯xÇë‡!ù ,ƒÿ÷//ï__ÞwwÖ¾¾¾ŽŽÎ¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþðÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¾¾%¼AÄÇÉ!ËÅ;ÍÊÈÃÎ?ÐÄÇÉÝÀÐÔ8ÀÇ ÝÒãá>í× ç êìñîÆËÂÂó ööåÒî۹ǨÃÚ:íEÃÇPÜ…kD¤8ñ^Åþ=>ÐXAB…ìÀ}”ñ Þ±ç(ûæÊ" Î)¸I%':žSœ[TŠ?E£økÊAMŸŒê„$ªM`–ÄÊ„AL®K|î›Ä'Q²H„þD{ä(Û#Î1}[ä)ݺçwˆÖ«}ƒx- 30±†]Ñ2dâ jÏ¢pÜñq·“/"c TËâþKáÑk‘´ ò£ÝÉË8œm€#FŽII`áKöìƒ Xç‘òšÆk¬~FÁÀßïŠ\(²uãeÔ–œ;¢ÁÔ¿0•Ø¥u2ûZŽ@Ùõ¹‚å8ƒŸ-žýD‰÷ß¼çkÀrõÒŒþs^Z¡ð] ßs÷ßtö©3à^Ô@\@%Ì p£nHèvVgu¨ vá GÝLĄτèÁ“’&¡L¿|¶q{ùS˜ζÀgÍ1Ø ‚ªýò¢ŒJb§ŸDéà8œ/u¸ceDøXß„À|ÀIÇÒªVÀ¾`À9Ag^Zçli(†ÇÝ 0Ša’ȈV ´‰ã{Ñä‰Ã`£iàSLCÞ c±ÈŽO&ñçO› ØDDw^ ¡žÜæ"‹¢a$ŒFôž¡4ˆ¸Á§¢ WÓ89A?)50 ™AãWøhŠcÇdJXu@ :h‚<þhÉZr’"«HÜ,ƺ²©³8@ËÁ¢Æ²(·dK¹3€»§¸ˆ&™æ‡î ìjà*.A0o¹ó:ý8 ¬.”îËox $¬ð 3ÌÀÃG,1¢ý˜³¼¸BFvìñÇÑ^Pp1ãrÐ@‘§¬rÇþZ€h¸¹ |"˜:5lóÍ ä¬óÎ<“x˜åþί©=À@—F:xƒÏ„Á«;/È Ò;äKÏ2»C3}@û€tÓT ×ëïl0;ãâ1ñu¢A[¶¯ÎÍm‹ºRø)öAi» ìн›·\CW|…Zc©'ÚýŠ·YhÌËËZ êø*þõj!9.k1ò-ÿÍ…Þ·„Ý…ZÏ"7º]N åaDFK]{Ѹ,O±ù+Y‹ñ¹+¦“Az+¿—áSê©À~Ñ®32­´¯x'Næ~Fcún)½_7A\nI¤üpÀVI.¹E2ƒ`ó<ú¡pw-«K,¾˜9Î Ÿƒylãx—ÒQ‹@?ü`i_ó”udñˆejÑ´ð÷`¨EPH›}A>ê 0FÚ:Ö¬8êG3•‰Ð³` ð-†äàŠ®4ªbÁ^€gŠCÀúaƒ)I®¦³>êÔ)÷ã‘ É4‡i ……-Œ!þ1Å2Ü.T|hrpÀ1ê ufÔ?Ä—Æ fˆm¼húGL¯Ž5ø"g Æ= Œ~ŒƒÝ²o„ß!90ÇE¾àŽŽd#©‚>Rò€¼$ &©I²“$x#(SÐÈQš’¦ìÎkR9K²Ò™|å8)Ë|²–%.APÊ]v•¾„×*ƒ©ŠÑ‘˜pa޹KÝÌ&Ì”%¥˜¶LdN@vt4­É·ŒPs›¾ü ô¾MJš ø¦"ë(´ ¤S›ë4£n:Îߘh”±„—2›Ê[ê3<ñìË<»³Ï–’R&8[ƒÊ–5š Mk:Wù™x—AŠ ˆ¨¼XcÄ· t=@Õoº6»œ¤š1׸E´tó¢ˆEŠ‚…/(ÕÀ qHÄä´´)WüÉó”'¨>ÄÊ@JüÈУ‹#Áövê@²8t¸é¡VébQ©È×ÊbO£jM È®¬x)Z+ εZà¤n¥@;ã*¥Òõùt+Q­i×]>OM*()€« V“S̓dYÂx§‚U]¤ü,Ø‘È:R€’b*™„¥§nÖETíäT3ËÓK6–ˆ¤E웪ÁQ>o?éëâ]gKÛÚÚö¶¸Í­nwËÛÞúö·À ®p‡KÜ⎠!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊË̆ÏÏ%5ÓÍPÕ#ØÚ1ÜÖJÞÛÙÔßNáÕØâãÙÑáåGÑ(Ø÷í"Øûñòóç"ÜK/Ÿ¶~þþIÛÖ``At ^ãaÀ½Ýi”h >î18¸± G"þ±)¸ç€äÇ’'QFÌwÏÀŠ/·!Œù½—jêƒGšIžO8D*†ÁE¦MEB ³Ò@ƒ©`j:Àê%(>®]” –‹S Êš•ªVKUmµh‹Å«ºu—â­Òí^+gáþ¥òv0a–†§MÅ+YÆIõBnrãd' ØÞò¹sNÕ«›gê™›ƒ³hGç|ÎØ÷Å®n.!yû¹MÀìtÒž¶û‹ØÇ6<¶kšQï¢Û¤bc@ 7íœkýâðX`‚ÅïXŸÆCÏ%€{n> ífÎØX*—æÖ`A‚šðsg4Ù™Žê‚ï @÷¼€ó0U!Ö= È\uïÁþ§`sÐA„\ ¦ÐÐ3@#Àu|·€y/ÕçÄ€5%Pœ í%¨`M 4ÀN<ÚeGJÚ$ð`Õ0 cMá}äa.`cM ¸B‰'—"‡çEØÎŽn¤¤Ó6-ݳb57á¨ÀVDåõ˜ˆ› Dy‘Š-.ù`‡~¤]w>©ù]ä v¥EÂ"¦˜G>z¼¢äPèt N$øŠ.>ñ@Uv–gM ìYdŸ°½£N:’éGgå {ý]Éd¶™Bfb¢È¨4÷éøœQŸzk;ù 6_”8 ùDUÀ¡Ð—‚}v4ÉY6 i¢AFl UP,§þ’ ®*¸âVN<Ë‚·àTKÈ€¾žà@´h•[« p›í@î Ãj¤,4°l³H°j@¼( Ëo0†Zƒ¶8„¿õ’fÌY_¾p.| $ € øÈq8ð€º0 û¯ ~<̵-4ÀÁ­¦ñÄ3pqÆ—2 ¼pMå‡rÊ<÷|¢Ä,×d3È@6C2XZdG>³É'/0qÄËú,&¶(Øe3ÃV})q«°qÆÄ¹\ñÔ^+8ôu–“6ЇíÃØIÛKi¹©JgMÞ(N…¾íši9yW*÷x2+¸Ö ÞEÀéBÀx3“s¡/Zð–SyXU‹Œ °þ‡×íÚŸgnÆÑÍèëù}5¼Œêj$Hú0¯ÁêÖÈÔ¾¹ÉÌÜêÅÔüÆYô#< †ŽË€X·q;1ZÏ1¬ò´DO‡ìSjñÀ\¼¼÷RxÀëâ8­SÿÉ %l^G‚«R+ î×ñü*‰`h°y„ŸŠ“ºRQzóœ5`OÔTƒ6%®/p üәؚä¹â8šXÕ<Î)I±¢`8“¬S8ÉO”6ò3;Oœ@›Šƒ6BU‚GµÐµúI‹t(CˆETºqQ˜ÀE(‰?°ÉR£Ò@’5 ?âÖÏ„CgÔh €bÈÅKˆP…ÓPþ”éNP&M|qÏÀ`u«!^æç¯ÐCÅ7®àùq×ËtÆ¿d*3 7ÒG?Þ§/n$ÔCiÇX°‘J($‹ðÀIÁ–,Â3¹®-q’˜üd6)Ê Ü¯”A*‡ðÈUþ€ƒ®B_¾Kଖ> %.sPÉ]æ ”¾´.ƒYƒSÓÀ<¦ à§Ì³™$’ 4—)¥iÒ 0ÖŒ¦Þ²ù»¨›&8UÐËq® ™æ<8Ói‚g²Ó\·|§ T yfXß„&²àó*{†ó"— =½‰´eÕó #Ý€”ÏZJe"2§kÌ…®ƒf³œ%XèþEúI¡±`gý<¦c\À7´Äo•Á¤PÄÑ7Úå¤&HœUZ ™„Îà…é$±Iƒ•ˆ¦!è 4ª8”JS>!€—ÖVÆÁHŽÜ@Eç˜AºLt5õð)ÿšº›b•Œ"ø‘$ÈHºí«+€ ¸\©,`颜jŠUåŠGí×#r/¿ N=æÊǽÀ’&(, Ûª–—Þ`~œŠlWºš[)rŠeU OýI¡röN”åìSýùÖφ5´þ<«9Ù½’M)c•)œDÝ£8¯µã 0’Å.•EÔ b‰Á.Ò1˜³¢Ï_§©Ã@Åp¶®¬-/Ëši®»Ì! “DÛ6n÷²¦ ¯xÇKÞòš÷¼èM¯z×ËÞöº÷½ð¯|!ù ,ƒÿ÷//ï__ÞwwÖGGç¾¾¾ŽŽÎÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþðÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿oÂÂ%ÆÀ=ÈËÍ!ÏÉ7ÑÎÌÐÒ;ÔÈË  ÍãÄÔÚ4ÄË ãÖéç:óÝí ðò÷ôÊÏŒp¯Z¼€ÿ|Ì#V ƒ&¬Á-Þ€vïüõÓ8qFEˆþ 0òƒH²£ ‰óíc¶¬¥9“.†ÙCFÐÀCgåîå„ ä8žP|.úD%Ñ&5 mÒÀáR&><]ÒÝT%F¯Iª‰Ï›]‹ k¤*²D¸¢ÒÔæÚ!>¼Ru¨)™/Ïd%…rZ¾ðc€íCK( œ–ú(A€Ÿò†ù³WrÉØÅ}"xŒ­Y€7©‹ja<”3v@f<’y…ä+\Z ÀkÚÝÆ™oàÆˆLj‚Uµš‚OÁr óÁ&qïŽL37€³,o'ÎZì!Ú­.žnpØ7æ¯ <Ö]xç’½'ð„ò°ƒÍ°»¬úøl·à³¥þÙ ‚é”Îz­ñóNo´}çCRÜÅGÞ, @n´RŸrݽ€r6ð›måƒQ†ÙPÐ(g¢>¾&c0®1×HÆ,€Ÿ;8¸C‰r…ІÀÀ…/&™Ÿ‡#V†Ç}jЀ‹Íä::Dd X袒í$ a‡=Ç_mY<q¥Š.bgG" f> ŒÙ㙕ù‡L™O•A”(Õœ.‚öÀŠvÞÙŽ égDòmä#izÀ¦œ=ª_‚‰À˜9é2¢ 0@¥š5”h—Y‚)&a|ZÚç™» ’©Te§7$å%>ª§õþùéÒd…°úA­(Ь.»$Ú*jXýHc_¾jh—lšˆ€˜‘^‹íÚ‹A¼?\Їr³N°¢—¡:šäº2à. >ÁÈ-|Û òºôëh ûûo ´ëÀ»BŠxp;ó@Y´›È.®8Ð@ ,±ÃŽ®[ñ?qÚv| ”¶ün&£¬rÄ!«‹ð¼CÓì :ÓprÊ+‡,ïÛlKRÃù°´Ê¿ˆÆEÏòf'Ç™Á̹|½Îâ­Ùµ,f7!¤’‹§RL¨Ü·t[…«Zâm‹OC!è‹R×â7G¯‹°…[QÕ¡¸0ÞE‰;³"¹þÒÎ’8gä²lÞy”kžOÕ_dîJÛ`| ë`”¾ú h¨ž Ýg¸îI¥h º²oB®N†í–ˆ&òfè®ÉG¶…£wö><&³”ª‡ÕGÁ|%Ù㸫Îs2Ó|vÅõæ«ú[M¦~lòäI$>åƒ_ÿøï—Á>%ÍbRdf†ïE‚wÝ Œd&E¾G‰B}À ( XÞíÆøç‚dPîtâ :&À¡eìCK²' ¤Cw PMo›Š@²²Î Üw*Ž@&Zµ2À@Ž5ëÜ,?êÑÏhJDcŽ ¢%øÙ“þ™úGÀ'NHÜq–öFdŵàÅu*t"9XèEd…©9 k`À9² v„±ä’Gȱ0¨# O€ÇA®`†„Áÿ™匎‘%O¾ ™DRr‹¼$ ©IH²“•|#(OÉQ~@9•3eÌ¢ÊD¥•$(,7ÙŽTÎ’‚¼¥Úª¥K´u½ÔÀƒ©\³Ä´€%“¹a2ÓÆ &2Ÿ)=ÚR—@ºæ, v"j–LI„òfšØä­g⫚¯zæ_à€Mi’¯¬ßÂôNC&¥q‰ãN=ûø ÌsH·<§ò¹-U §Ué4å'%¬‚j2)Ú¤V8þ)ÙOÔx}ÌÇ$A Ñ}Î¥¢%¸(#z‚Žr?F¾¸"’%:$P IÑ礮$£ÌRÇàÚÁÄ.v¤7Tñr3ñ¥±+$MÑÀGg¹t)(ÁwîWð,ô‡Jí¡Mi4Q«ZjP÷·=2†E£&` UGr±b•Wc¤”O‰’Ôc€k…À QoBM1~ýæüû·ÎÒ‚ÕhÛ˜™¿,ö‰j½êc=™Y‡‹ñK$ÅhVP†¯³U¥KVS.¤Wy­é ÕÚY¶B²²[tíkiʧŠö®µawËÛÞúö·À ®p‡KÜâ÷¸ÈM®r—Ë\;D!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑ"ÔÔ%5ØÒKÚ#Ýß1áÛEãàÞÙäIæÚÝ çèÞÖæêBÖ(ÚýòÓóÀÙ»‡ˆýüû÷m Á‚×À)èÇ`a»ˆ¹u£Æ¯_¼fb ƒ~ þ,†\8òGIm (ªI³ep !ô3PqcN6‰T˰£zØÖ ê$¦”L»LäµËNU·t„š5‹Ó]µ$öŠÑ²XœrEKÅiE¶U®ÒêÏÙY89U(«¤Ÿ©oc½x(‰¤?ëV1¯¯½¤ úøx˜^ ÅTN>µE ¶±’VvðÀ!æ)nq%êt©@~Õ*×<ídgà[õº=€nµ~¯4»sî‰vùô;tèÐ/rQkÜ„tjv–ö €ä”¹K%‹#Cj/& À€‚íÓDs‘[‹®ÈØàvâÝ ýÓœ´5±•/ìŒ@a‡9þ` U mñÕ/yEÖ^c B € T˜h·ñbŸ ´÷–†þ…ÖK‹‡ŒZ'¢Àh ´èJÊ€Ö îtãS•Ì^-ìf›ŒS<0EDÊðápŸi@’'(—”Nh¶’6äÅä'RòÕ‹(Q¹„•1‚鞘*ø€ 4^(V¢IBŽýì…Sî@gŒ3|ó@›,W>yØjÖA"e‡+8É“œCH™' Nòù› Às…ŠMÒm™Hœ1Hú^G2 £Ÿ–À¦›‚v*k¡ ,0…²i ‡/<à€G&Àiê`$}(<Ǭ p:+­ ,Ðf²þ% ê$‘y$‚¯m2í¦Î>[ë°ÅÎÀ* ’>[hÑ.ûÀG?gØ}•À¨î½ê& ¹;Ùª FÉ:n¤Õ]®ÕÊ`!áâ«o» x»)¾ûò;ƒ•^®`¥Ѷ)æKÕjx΃»®µ.°,Áïâèß‹²Å,à™± ‹c¢ 6Hr ìÃËàR<¬Ð%¤êB¶“Š3¯g $Ÿ¨Šøkį07Lë¾Äù¯ ’úøÄÏØ, ÑÍÞûÜ×)i§dÿµÓÍO°™õ¬ °‚×PD͈ɼm…¯wÙ(߆™ Piµ0xæ=§š@&1GÒ å2æ, àþª†Qé‰f'~¥ÞcŒn¡mÃ<®†£nc*é€ú.™Ë!¥äÁ.øÚ£86y¹gùÊ’'ä~©­èJ©Òy€v;)~‰0|RŠ­ È@(ïRWæ7ÙjnÊùñ‰Às·GðÑgo¼n¿¼È(^ǃ‚ UÏž·.@ CXüä`½ïg6!Áßµ ]ñ쥰ï‘&¨!&…`¥M‡žôÁ Cù)ýŽ”:è* ÉUöKE®ähKì°–70%.u-ïí²šQß/aÀ˜aÞ`–Æ´ÁTN™L¨²™3h%4/Ëi”ִ%p² ]rÓ™’üæÒ"Ît²œÚ4:UpËu–À›îw"üKNˆz½Ó@Á? jQÉ>qüÌ80[G!þ52X˜‘¤É“úN¼aÑFˆsÂü1QHH–|XpgŽkÓ­4€Ü=O.©‰Qª–ŸA­fYÊPk–c!-ºç§Ø—‚¸ÂJYÂÁ°6×Ê„zhRŠ=uv1»¶¨6¸î:]AÖŠZYI.ø· åP…«À­:ë.7ÿ ˜yíºsákkh¸ƾÔeÎÈP¿J¹ziS¢à27x<³Ëä³&zýç$¸Åÿx·¼š¹2Ú’ ¬56®2yU‚˱È‹”îe¬7ã\Éú¦CØO~ó*— <·™g¯Bz}¶…ïÅ1 `žh-Û­×\ùi³_y…þ†Ef” ƒÜt*8—YíÕœ1˜´‚„ÿPèÅR £Þ LX¡ "ÓÀB'¦P"‹[Ôg \ ¸ð¢ ´XˆÊ â p嘅nÊdØ™éWJ3¢ ÈPãÔtQ“¬ˆ#–(D9%Fâx¥24ʰ””±ef€7ú‡ W 0°ÀœtΩÀx& §š 0ÀæT™yA›\ÖG§h©æ¢Œ6ÊhŸQeŠ$Ü((9hÍÊ™Žvêé¢ZC˜Å•`©¨/=à€ 40€œ °gWŸLºPœq¶ªk««öºêÀ»ªp5êQ&Pª §šºj«°.@,Ÿþ.šÍGå çG˜?ê0l±*é ¶Э‹ nµì€hCy-båšA¨ºÀº|Š‹êa6¨ÂOí2šÀs2Ð@ °™àñ"―—a/¾™ Ü@¡g*k㼋L§Á +ŒÛ»š*§§þ"áÀ~Z¬#Ä/„™0°3`û®jç)R®ÆQ¬¼§£}ªZlÊ)d¼, láT ^„p‹ÅÊÄV{´ 0cœNòA¤móN}ÔøòÌB¹D·¯Í¯i}ÈÃîKØI¶@ª cqšSe:Êhœ‰qÅ^7±5;.†ß)T=Åàs8Íâ¦ZY6‰ÒõL’0w.lwè¶þÈ Ñºð=Gèåž‹JÝ(nG””ªÒ0¿|æ»á£°%Âíoýó¥ìs¥@Ô^z·ðŒoÜä¤T>ØèÜü¼Zª.»îY+؆‘Ÿƒ"ÉÒÇW÷¡˜ö뚪QÓï§ÐöÒ{ɱ„«øqÉÊÙ&S—þãÛß¡à•˜ºÈerŽ!D‹øÉ¡z DDܼ‚…RÐ ¼  ¨AúL°ƒS° £°¼Nƒ&ÓSèÀ° %|¡P(Ã%p¯†‚ Û±¾ÿí°b Ó.öC B@ i@t¬±¬ãÄyE¼£DÅ'4Ù‹¢¡Åš Ç5LÓþ¢ –¨&̉ˆüОW %k 8ÃÛÓ(‚ )à‹ ‚ã¯&‚Ÿ|ñyÜ#!œ¬ômaÜãXŽôÄkå o”aMp'H ‡}•äA3é-Ñ“; !(½Å’Qò@F¦ÄAS©²2=|¥%}'ËYà“µ”'si;òrT¥üå .$L¬²˜0p%2_ËeB‰–ÎtÁü¢é‚]R“¾¼æ†ˆ©Í¬°›&8&8ÃIœq¢ ™æ$A ÓI‚i²“¢dg6ßÙGnÒó›éü‰èÞ9¯}šÓHŤ6#9sÊ&JnhXFp¦o”‰¨ù¢qhKÑŒèþnÄHaVô_E¦FÇ»\þD '8SBe9R°Ì\ýáO(i‚—FÌ”>šÁEý J¬Ð€£4Õ"UlÀQ”®ñ†7@((Ÿd•Æ´ƒ-MŸzA¦Ê n ’’Õ`Ö¬';ÕW/øQè‘£ƒŒ$5¢Š4:BÀ"¸ŸµRÖš™­8¼«QØJ˜¶b1<)ݬFF„¯}5Ô³H×Ì2t\Ö(˜Ó$ ù‘ŠOqÐ0ì¤MÒ@ŸF†jX¤éÐ.`Ä‹Z«‘) uµ?LÚˆ`»C÷eµ=¯(¡˜ZÀ¾Òy€œl. ¸Æ;÷Kd%/Ë0ÝrÒ}9.+'φ¨¼ÖR´J£KiéÉÝîz÷»à ¯xÇKÞòš÷¼èM¯z×Ë^4„!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ¤ÙÙ%5Ý×Fß#âä1æà@èåã"çéDëßâ  äûÛëò=ÛP|{` `ƒ}íDü7d!‰o &`—¢B†áÌu  ‹5b<²0Á‚þS‚\9R½v÷ LD¨²f&mï¼dwÒ@âhn©‡(»˜T–çÒÎ<8v40€éƇý8=- <…ÚruÓÓUNn1«e 'æXgÙŒ*Öf]–\zþŒå°ÞÔ}+ªhš%æDZ¯.ðµä×Áb¦~lµójƒ‚„ëÀ@ØŠBµ”5{¢ÞXˆí ›AA{‰9™ôÝ  À Vr씄©ôtÀ'·múr·þÌ5¦gÙÁ©Öq)Ì‚¾âÆ{E2/r‹Ÿ×üv/7¼ßÑ£ŒÞE®³çówËIüm× m_ääþ@øìãmÑÓcßáTkµþS]ð vÅtøg)L¥…\xGŒ†+< †Y¬7LL¶à¡G_„WÛ0'NèB‹+†ˆˆÀ(€¢ pX˜DÈ\& èxf1nX(8·×'†Lxo9#**㣋RiÅ€ËLÕ’IJæ*f%€l.à&p6 çT N!a‘ÅØˆæž|ö¹§_>¡§˜=Ÿˆ"ªcþ#Ÿ 4šËƒåï<àÀ¦È 'n.À¦‡ò¹¨’âP)£Bþâ>Äåà@~擪 +ŒÁäzc³’Ú' ·¶ðjŒ¹â‰K¥ူ¦2z¥˜þ%k ´¾ÆË•2]k„ Lõ'¨Êðê¥'8ç­ tŇɳh¢«Ä¬âî¹@¹,P‹ÙºéΘé¿ïp*°œÊY€œ#Ü¿¼šÁÖ‹™­)p[¢±‰f¬ñ¯‘øêÏJ|` $TÊp ¯n¬2š+2‡Nzt0[,àŠŒ¹âs«¾iªé³Ï£²yÀA‡ê&„JÀ’èq·Ö†AoÆÊ¢À­¼-Ä%MFí/fXƒ¬©'£`²7]ûCÌm¡ùpB[g ¾^lƒuJµ»/ÉŒ¾ê÷ OqŸilèmÏ:ÇÁk _ÃJCe·Î]]uÙk$&‘þ7…÷ví°ÝÅVp[µÙÎsÔ8(¾QNaeŽåÙ ö6WÅE†sål7¦ŸÞT@P9X¬OyöÅ¡õòJÁޚϜѹ+¯nJbNƒe\}j´;*”×µõP®Ò~õßÇáã𧈾6[èwŽeç í²Ò¿5ü1‡ð ¿YD¯÷kI$$Á.L©‚ZP ³žÁm > Û£à'° M0Ì}žà˜þ$A3*‚šÁ4 Aiš){è2{".‰s:ÀÛçþpOsêÉn}ç•(RsöO%g™LÒkne]æGY .mŽc¡æI_ ¤h®§CæK³Ô`Ît=õ¥„,šT\‚ÎM}åOiUNõU­ãQuU+.õnçë*}jØ*ÂÅ9E« §J8p”cšÌ¡^¼áÖ·ª:lÉVe+®Ìû£<¾:9¼/@#,k[aðIÁ‚ƒ­Œ5¬ÞÆ*JgÌõnuíO(ÁAʆbñr†-ÍfýZg¤°¢Lÿ4©ViŽC•­¢)÷‡J׊V.jêã&eÙÈ4¶´©œ^‚†‹LÚ­„²×,ÉUæXÌÂ!v·¯œ_$*¡]I”Å `‚ø±\†z÷»à ¯xÇKÞòš÷¼èM¯z×ËÞöº× !!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÜÜ%5àÚCâ#åç1éã=ëèæ"ê›ÝÞ|îâå  ç½¹£”n {'Ä=0À@x"^Ê×G"Ä ¼ƒ¸1¢&Šæ ˜± pþÇXDÉЃŽ ~4ˆNÃ9¦4ƒ?;–“YâÏ9“Òäò]‚†0‡~ó$Qœö&MÈ‘ Hp?l•ÚµÓ½¡ díébi¢NPJ[G_#.`¸@ßTH¦¸Ë$ëÉ… ‡ <¹8S^t Zðx?“:O~±é²\}ž˜l¥é~ÿ2o݂؀àU†Ÿvhrqè†uý~ÙÛ™Wä•'ˆÎ “Kë׺†×}÷IÅŵü š«œhµ]ÅÙ =,a(­ìÚÇP³w™ÞËjâçšÍ WϺe_Y Üz²¹xþ[° o ¸0r]´þöR0W1„ ¢%ð ts ˆ¶à-m8 _/d•C0üäš#Ú„(ÈE‰Äðæa ¢ù³E‹Æœ¨@ "ö†Ekȃp#^ÁÙ–· ã*NÙ„‘ǨØÒ–@) À“QÊ3oZaã1'r©æš-%àe‡V&¥‰¢•×@ 0àelöÉ@œFÐLœeôß 8àž ìÙgK 4há ã@¡iÕè¢ 4Êgy)qi…À<€©<\ú©K“æÀ[F­Âò*ˆB8ÀÀª‘Æ*’\2y‹–¨áÀ¸†Êƒ©[.ฤ *ªr™ÀŸ:þh™À*J ¯Ï>a+®’Ö°ì–7V¹-¦×V1l±±" éƒdê ʨ[[N ¨³hk‚†òrân‡^|«f®(àÛ Aújʬ ‹±îÁÆŠ0«þ¦pkCQ**Ï”±•¥GÈ'«£ —÷'¿öºñš Äìå—ä exüiøüUBƒf\†Á}žüÂË& sx4EeÐpLœ¯Ð*ŒÛÒ*óªJ¯ù£l"wE^Üó¡˜Q&ö„"¦L§ ¢‹0@žXÏ3["¥\dìTÒÄ'ÔÚ:肳éΰ“B;Óx®UtgÈX5¦ÜÈþJNùå«©ÆF„0j‰ñléòylœåóZ¢›Ñð VgWcõâV<ö»åQ3+Üß夣”†ðB‡¹0Nµ Ÿ78<À=»övÕžÆt wNɦÔ˜øb¼^’úΗÞF±[t†ýq©»øÑÿô°ªßÿ¼0@74èkìð‘ø…1E ¹Þ©À™–M ºà|¤A-°ƒYX ¯àÀZA44!xcAB!ƒ.œc(…Q‡†PhIòp؃òÐ ú¡X(Ä!ÒªˆK˜!EEª%*A‡NT‚£h„ R D¼¢N7-á7öðþb­€¢Õ$*\b´#x'‡‹O;L#:VµÆÄpC[i{_GÈG‘ÑMà#!`2~ LpÎðL‡91r¦*-XÎ KÀñÈ.!èœÁQÉœ8m {ì '#èÉåIO~b@'YúLRðûÆúì¢IG’ò•>è$.{ Ë]î —¾Ì0ƒyƒa³S<&2§Ì$³™2x&4a Íiº šÖd6³©‚mrBÌüæ ¼)γœ#8':!Åu² %îl<㹂yÒ3ö¼ç ò©Ïð³Ÿ#ø'@ÙYÆ’@ Eh?ªO†Þ³…€ŠÌçÎÖ$  2Þþ=ÙC½{VJ¢gŽH 9w ¨«hK„&Ä1œA` öR-ž”·ûæGS`5Šú2¦-تšyÓ…ô˜; êQƒ Ô”4˜EÕfƒ™Ô´´¦1l* hºË¨†H£i¬* zúJ­â@¨-¼¢WgÐQ-Šõ¬Ku¢YÏF<5t4\+ >‡Ò©2Ò„o}(Ó äHr„sÅ Êñ€€y´4¡^Wp—@– º[ ë»jl#@ÅßÚÀ×Hg,¤í^Ý×Yi4Å9£¼fö$~x-­_ë;æNzº­î.©»ÈÃY·®Ý[(#ÊÞöº÷½ð¯|çKßúÚ÷¾øÍ¯~÷Ë_2„!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ׎ÚÚØb%ßÝ^áàâ]ä$è#ÛêÜfðèò5ö“ó( DĘÏ[¹wø4íK¡Á¿FïÞËz$Nªc‘ •ÇóÆŸMíg‚¯‚­³Vúí³Jë%åpf[dÎô*wofÿÁ…:r§!Ucð@Ø®¾“ÔK'›ÐÚ,W‡ '»d‰Ÿ(¸l3yâ¦æ çwÑ•!ÿ9ìýÉG»¾åž:ÝGá^À‹/l^u¦W•Ÿ/Õ¹þ›zeè xæ¹HchÝ/óÁ`Úvb8Œlþ±° aèN0¦](!p`l8 x€i¸UˆZH£/óݨˆraZ€Ä:V‘a1~ÆENÑ\1˜&• 0à@“"𨅇Â4 åG`~¤€V>@#‘Y¼×¥lb²æ›cZy%“Wpé n"u"8À€ äù¦TjVQ »øæXòé瘂¹çwRõ•…Êð€ŸFúWaâ.^†™€Š:8ÐÀŸ¦‚ê„¶” ¦“þpižŒ.1ê- àZ«,'­I¸hË„åºD¯a*à*ІŠJ°oþ*ëD”­JK² hKÊ¥o¢Å­aZ«³a"ºÉr*È*¦¸T;ì¯3¸^´ž¼V‚½Ñ{ºïz[¶`^¨ŸÀŒL6—zŠAðG§ üÈ>¹.ViÕ?¹*–q{I»¨´˜"u‚– ¹´J^Gò6ëïIå6‰æº ã7oõ¬­‰9óÂR!œ°UÒ¹ì0Ã÷Ll (wÓmì&í…ȃ&0ô è’)§™‘vfhÄ&¼-uœ_m‡Ø´á²ýð xKuÀ PÀ•Çõñ_´©¦†l*Èp«.¨§yOy@• lýFÕŒ‰ÄáiD½BÉþêŽÐgãGþæ~ÌýÆÍ)¨”Ѹ©Ê€ã 0hŒqq®ú»»aZ·(8m9?9 @³+PÜzõ®…ólx.ÂÝZãðÔì-}/¬O|6eáu›`ÓL3˜¡ç@xá…× â5ë0Ù@V‰†ÍˆBƒ1öfl΄ÕóÁàB†lO¹AÛ·˜²l.3Ý(Ð8 q‚ÃÒó08 Ó ÏTð Ú@˜…$‘ð :¡Zƒ;j!7-t!(C.|¤†[Ð ¯ ›îP )úáD(D+˜°ˆThMâ2q 0|¢$(Å(X°ŠNÐ!™ÐÃ-:!ˆ^dþø„òqY;£R55ÁGÁ݈•ž0Î9³[€Ç´D:Ú 1a¤k€:±dŽ2ÔFäIÀþùѮѣ@I0®rö ù™¥û ›äd *#ž©a¥†¥@h8‘œR•ïˆb+Õ"7ñÁ²1j$o²Ë8‡sÑt‚‰H‚'}½ÄÁ“Ùƒ12“|f¢)Íh±š7¸"6³ùm怊޴)ÃyV’“² ùYkäð«ZMÛ…âþcdGV/t)]ò‘þÞq¾Ãd†Y/Šô‚a†á/îŰšaçÜ/«ƒo¨}!à„¾(ƒˆr± ˆÀ È€1²°!æ¸K þÓœ7úXB|FV! €º4°šP ©À8¢°c"¨˜ 4à l¥DV)BZ¬ØdB6àã— ˆ¥eΦł&ÚâÀr@e ÀÙç˜IB‘¥-@ÎùÞ ‚ŽÙœ›JÚ9‹“c.P(£ Ä©è¥I,8",TEÙå8)¦‹:!!¨lÎÆ©¡þ£‹K\©Ê|ŠJk¹Êº«‡nòÝ ‰B‰ê«Fô Ò¯B¨)¬_%ìY)³Nþàz*²:ÌÈ q#ÄWQªWX+%¶6 ù¬ ?Q€b–Â5ÐcMì)f»@ØØ ¼øŒ0À„œ]á@«ôîP,ƒŸÀ;ÙÁZü eÀåö î¶“ ÷ ·I® ±ÊÚÜÅ’HíEÊeလÂàmEÙj‰ZE! ÆÈB&Pò OJª’h¸]žËad|ÜÌÑÖüó 0jRTfn9ò>KBŲ>L‚Ê•(ÕbúIÌô©A ¼, HšÆ˜1/L­ Ú†rÛÊþóç‰T H¯ÓÑEšD*Î: ÒyëÍCÑ.àê·ßS.x q—`¸”8 :(”0@f.·ø‘|Ÿð¸¯þ(8ÐèáC2 ÀÄnèBÏ ƒè 0¹±ynîx‡O·ê: Û”šéäLbäÚÚÅõ×'ñ(ÈNÏæÙ¦ÏÇûyöKjÚSwoŒafÿð™QÑk Ðo±^jV›a ë@Ü=ïUÐ?@°\~wÞ+Ó9G[ß}Þ¥· ©OïÂZgf¢v¡ÊXÐõb²8 n_úXÔlW rp üù ŒÃ$R.µ3á w£B+¸¨…UX `(Ò ÙùÔ Ÿ  N>ŒÂÿ‚X+z¤Žˆ=p ™p™%6Á‚N\‚6Å!x°Š¼J@Â-"Á8)ôþ¢P(F#ÐeXeäÁ<¸1: ˆcE'º4ÚÀ;‰RfÇàqL{¬ËW|ÒáõQÑaã°€F6òóùÊ}ª@šþ\Á:ª‚l4Ü<(Úâ©Ðˆ³¡$(§B{QÇÙ§¢$p'þFà©#Ž“M%<¨ˆ‡O …m¢’");”'Ñ3 ië–DÓ¹kB@13”'‚~åÒŽÓ0T<éJݶ‚y´Œ1MAOÙé)øÌ4™ña¦jzÔ(®êKÕæ’^ôT;º4§/ \3›Ê8†Buc6ª)wбöq«9PiYJÍ®:1©ÛDkkú¹‘­>€™¤JëÞ@)nMZ+mVƒñÝÔ¬²ÔȰ¶¡-VŽR.¥Õ'¯q4Õ²0ñ „’óƒY)—[ ³:­z˜¬ð,bÒÀ kiÜ2“ϰäÎx«ÊÚ¶/—îøL‰‹®ÞÖ<’UÚpHÝ7ËçüÖ²ÀH-wp«‚ÎJ7i›m†þ`‰\¡ðÒ—­9-j?K\^ó;ôC/FçKßúÚ÷¾øÍ¯~÷Ëßþú÷¿°€LàH„!ù ,ƒÿ÷//ï__ÞwwÖ¾¾¾ŽŽÎ¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþðÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼)¿¿½]ÄÂYÆÅÇXÉÍ¿ÀÏÁË?× ÕáÍØÙäá ÞàÖÎÓåEÚí Þ óïèðñÆÆÞP–osó’!ð&p›AûMHàÁÀdê{ˆ‚Æ þ¼)x&QDFŽ&©û¥®1•íNj‰’E=—Jþr0RÞÇ‚5]üsyò%½_ñýÄôÅ€ò¦aô¶@i>šMOP,À`œ²in4š5†‘ΖZ{º`i0¬9~W‘Å÷Üm´Ö͛۽@<ê¥{©€¾Š[ «U sBQW‘ˤcõv€@šÚÊ3"n¬×UÜ8²—ÃÜ«ðpi  eD| ¢iŒ±muì¡oÞ&³ç ð–øö`Kg (áà©´'Q‰ Ø€iÉÉ“Zþö|ym¬ú˜©yJ7ƒ¸‰‰èp[Õ?n)l¶JÞ7€5ìMOUþBKí!˜âQuxRm²›øå·ÚØ£Ô[i¡†Iw"ôÕ™¶Â€Oáµ@ÏuðoN U€€¨ŒX"@4&À@ŠøÅSÛ‘2"4ÎXã‰8V°â!–ÂÀV@*çXK P'Z\I°#(K6)‹4°@RÚƒ¢Í1Ä„‹äyÒ‰^*·%o–ib[y§D|žÈ§E† &™qÚ—%u›øÙ¤7¶ ¦€"Áæ!rq𣗌ê(žR6ZŸ†xÁ¥‹zŠÃ 5ÎùC_ òÉ•D3F Ĥ¡JÒ¨€>Y“› Ìh*[aéjQÆþ´©[òÀSª=$™HpÍôç`=Ðꫦ3¸¨*¥¦q›ÙÅÒx, OéÙÈ5¢^„<•˜À¸/XK©®Îg„·Ùƒ–Šè7˜¿G¤ к+àZð\ Ž¥pšù¨ŒTšPtšûïŒ €+›4âëH´N(\‘Èt $Ë“Q1^&g@rœmN‚2xÖó.û ¥¡e¹ 2W"×Ûä)æY´Y%" jЫšf«O¯Ðó”ÏͰȾýœ5 GKÉ(Wƒ96 ^ý‡b¯=ÂÖx©­"Ur›eá¬ÆwWלxÙè÷ß„= ö‰x iwps¡MRyæãþ À­Õ"=7(ã–þw„, $vKðy¡ Ü+zÖ}S0yÕ¬'TðzSr®Üîª @(ëŽcN`Û6v4ƒÖæ¥àO—©ôD$¦3®4ñyå°×9 Á3¨¶3- Ç€mùWÍÅÑ0DG_AÛä\ K¼Úu5Ýß«â(ÿPâ?ðñ‹}þ9Ÿ- hÀƒýÅ+ïP`-¾ ½„câG(螢qÐ\ š’>ŽsBØ õPh²0…ÞXá gàÂþ †6ìs¸ƒò0>üá $D$'uE”Á“˜ƒ%2ñN|b ¢(ÅP±Šzã þipÅ-º ‹^dA_rÆŒQceDA_Ð:, - @ðÒø€Íxé0Aº?@<ÉDŽ’¡ÊÍ/€Ò €Ö!~| uÂè"aI†y†ÙÖ$½ØõXr^Ûcñ–ÉK*†\[ɘ]™²Œ~Qÿfù/º(^ôk&±ØIa•Ú³Î/·8FQ²`+¬4f ¥LT²™(H4Õˆ–iš™Ö43³)‚grsdÄù&ߪ)N$'™åÔÀ6Ó‰6€°³vá|gt$Oœ³ž">)àÍ}^`(žôgéö&ÐÕgAÝYP ´¡UVAþ‹ Q ±¢€D 4ÇizÏ]eO€ Ê&Í ÔEÞ!>¬ ÄnŸ-¥€J߉± °§£^Œ¦®$OVá+ré$PÍLúM‚m`¦M_â4ÚL”~ ]Ùt‘D1Ô¦Æ4sÄÁ© k ¤¦‘«X=!“#5x•˜ëœSy™V\I«ycwÖ$²¡ãD \³æÔÔ•‡R}GQˆF|$+•%èßD5>)PcUÍePøPíL~ ê¹jb°Q&²<tß`fZ¿}”#úL2’Œn@[™æCÖ·ÉÚf.Ÿ-OþP"?\‚ò·šTmVÀ£!IÎ$ÆEl*(S»ÉrÝ–§­rQÑY}w¬ÝåuMÊöIlµ®ô—sMkA½$ƒÏ=nèWÚ0Ö—º…/FçKßúÚ÷¾øÍ¯~÷Ëßþú÷¿°€Làó !ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇŽÊÊÈr%ÏÍnÑÐÒmÔ$Ø #ËØÏÌÖTã( "áߨäåðí êôßúñYæÑö (øW-¿~Ñ¢9P—à8só6‰˜p„:"”(…¢Áê2fÛÇ1 DZA©Ã¬dR¢TÇFQíE×:qg%çj&o„k@­IìU¨¹ÒfØëKR4`-¶=PšInN”&ÀR<`NHˆJž'ÓbÁÀÀE”JÅX8ì ¾>¼+ ÇY\Ü%Á3*› ë24ñÚ®ŒƒÉi¡ÜB/ËLCËdå §§z»æ‚½CpÃfæs7(ûØ8@@  ü½õEpÛ@Ñ \ =w\3•úÛ¨4qT “< ü=Üj–ˆÍc–þÍäR¤`q ˜!d…?ÔMRNTˆaœ Žú'¿Å¨hGœAŽÒp/^FÅáºå¯ÿ™Ê4¾‚žZ¢°ðô¨0cÙW“`è¬ì¬,‡öAá1h¼$,¥ˆFTpÄ%a9Ärâ–ã>)ŠV$³(„-rA©þâwó1q÷:ãʨF˜'}m¤Áãȃ9ÒQv¼#ã<=– A Ýú¨ÆÀC‡dæ€çÇ«©rJ$’y‚åDãhí y‘e àâÐöâ?–0`“ÈR )è 0\ŒÙ¿2(­6zñô–\D©³NÊçX¥/MðJAp‰ÚêV*gyL$nQO©áb@iEôQ²¬¼æ d©Íø§›3°&8a Âq€Pæ,¸Òùq²³s|ç Ð)Ï|³ž)8!)C|¦à–þ,Á=Z‚lôuñ<èªÐÒÔ  …7#ÊЃº3¢UèþD5ºÎˆÆíB…€m˜Ñ‘Bì ¶Y=šR.þÖB{XÏíë¥fÔ¦MM°ÒtîÔ8eçO+ISpõA5*»XÐSJ5ŸurêR]ÐÔ;>µsQµêTÏYÔ8zŒ¤1HªWU¶Í®Žñ«: kV¿ˆÖ™™ÕŠmÅX³×Tu‰uÍÁ\ñJV˜½ukÐ|F[yéÒµ–8˜Qa%úW9‡1d‘à öº4í\*ó"Œžªú-·øï’-\`_b³×ÎæÅXƼ!1ƒ)‚¦š¶0\Ñ;¨˜ €ˆ 59Ê )`ÁÌo_+‘Ǩ™ª]í2=–>¹’MAhI» eîcJGé g›”¢k—¢•l1—^)w¹ÐÍb´Ì„,âršÑ4! CJßúÚ÷¾øÍ¯~÷Ëßþú÷¿°€Là3!!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁlÄÄÂx%ÉÇtËÊÌsÎ$Ò#ÅÔÆÐZÝ( "ÛçÒÞßêçãîÙôë_àÜ"ä ùÓõöî-[¶Ï@nÚÀµ 8eá@Èðgb!C)çAH‘¢Å‹QÔ9s†€ÜtþAVI¨ŒX“ñ}TÉå¥léŠÍIÓ‰r 4 •1³ç@S%3EQ£A` Ôß@ èˆ*‘¬ tj€ <5>õºžØt'’›Ö*Û#ðúM9cÝdkïê(¨·%@n6Or,¸HÁ…øyöïÒÆ>"’‹¼ ¬åØHTüO2„‚¨-Hâ˜2K¿€³nÕÖ:l6}!•*î%”w»Èû{‰Ô 1 P]Éñ6‘77Ò{†Ô·Ó‡4`@YsÄ·°dM”ƒ Ø”(Qƒï-F{FàF ЯgÏŸ}ð©]‘ùs^ ÷þòÀvêõ×_ 0eì¹  ××<šQÕ•N r^ƒò§À \x‰ý§¢ðL„>Ï<Ð]G…˜Æx+0¸_‰aIøâ PØÞ{'¼F`F”„ãa:žÁ— , ÀžØ’5Tù£‹% (žHMB9T”e8BŒ¦—âEög¡`a7æHÔÔgõÉÁBø·@ð9xÉŸ‹Ê ÙDd1 `æ™È|oz” š/Äi¢|+m¨6qEÞˆ>iÚe?(ÚŸo¡þ£œo¥Ž¥§hÄvª©H8`¤AŽ>ª š…µc›"ÛG7S¦Ð®’#œ6þòãÈŸ¥¡„k¢ë˜E™×n¨ê¸ÛæP-?Á2î#Í>{kŸK€lòNËW‰dŒmO4°žtPÄh/%å>ñ@·é¡À˜ …TxçD±°jâ0 üËD±vfw‚'qna«@¡ÄG¬[ò ““@Â9¨¼ò KT1õÎüÂÁ-ó ëÄ/·*ÃB·ÐrRʼnÁÎþp莭$+%P †n¸E`¤nFÓþߌºŒfOp ÀÂ9ö€‡väÁó3¦ñ±7ùcn¤%È|±4#"§ÈEºÍeެÇÀH²Œ= ¡äð7Gˆ™“íy_%Y,¬\ ”²$\&ú1ë)cÒ’TOj¶t€&3^Ëxz‚KE²Ã]©Ž{1æ0ƒh;<æ6 ¡†-U§§"’Ç"d ­Y+MÁësxl—/m¨ÁË-Y.L§²`“½4ªÎ|§ Î)OÎ5²ž*À>çyÁ}þîžþ4>* ~ôf<è §P¼®¡$H(DGÀЉ’à¡•¨þE+jQ`t¢(G;:ºŽBä©EKjÒΙ*…¨rئPåÀd¢l2¨BåÅÄq2CŽìüI¡¦ 4 Ee Jߙ԰´žç‘–JJ›HÕ¡~´¤rf¹Ð7FR9¹3ð´ÚdÈ‘`}Aô )/šm… ª×\öSÀ55vYã]e •°žq¯2X«£6Óé´´ËëÛ" Õj<šXuxÔ®0iÕáX-ëô–Ó:s)ÛŸxV«Â@°B›&AøôÙ|4i©ê¦mpåS»¹‹“ZAdµwú´64 Y'kÃ1¾ú6›»(lWE–"Ó—¸á¦_?‹M@Ú¢etKÌw5W·ãŒá]"ûC –ó)Ùe.CÄZä6½øÊízáÞÙæQ¹ÅTï/»©Å|󌻥¥e¬øÒøÀN°‚Ìà;øÁް„'Lá '!!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼Š¿¿½}%ÄÂyÆÅÇxÉ$Í #ÀÏÁË_Ø(ÄÞ"ÖàÍÙÚãà"Þ×ÎÔäeÛì" ÞãÉæï`ØÉôêÕÀÜéë’ÏX¿zùä äRðÜüéÑG`óY¦”NÖ_/ŸôE/üð²‹~‚¦gr6¤>Požú Ë9ÆVO¿ÂIöŒîò&ŒCæÛßrÆ’¸`fy¬£xP¢ @W‚ªM½²‘÷yÉQÄ0¶‚²ÁlôŽ‚‚@Lb. ~A¨U¶¾"*Ä4ç~?(°fÕ¥ÞØÏ˜¡’¤®Õ¯R0ˆ¡¢R ÉÁ@Ò‰6WqdzA9ÊDе¢— ½ÓA†H,eÉþX:´0¤åÀðzª±Aƒ·5þÀˆnŒ  â(4œÐ‘]¼ãN¨Gœ±7¸! sðÃAÞŽ†¤\hÈ­…J$ 5Ÿ(’Œ¼ÃüWaR’&ðÇ4"²<µœi€‰„a3ܤS–ǃh4bAXé”,Þã5£ƒLÊŽm…†BDÝXî%C°‡Še`fÄ ´îtia`®èšÝ “IÒtaB¦¸ÙaSˆIt¦â®™-(âƒY­S&HpÉN-΋—oƒT&INPʃöÄ™ó Äñs’|ü§ ê)Ðü̱ ¼sB[PÅ…¦@žè>#z|RÔмèþªÑ@´£š(H! Î‘B £m¢IO Æ•t¤%©–VêÈyÞÑ{§Óè¾ÓÆ‹fÏé±éõÒsµ‡ØÑ¡=ÊÍX&Pï½)¨ÝiÏŠ÷ÏŸN¬§ù$*Ö šÏ¤º,§’tj – J©º€«ƒ´ê ¨ÚG­ê“_€ôjѺF±ç n4k ÈGµÖà£ht+bšµ%%¥Gä+Øbe §n°Lc“YKHXŸŠ±! 2Y ØÈ:ªW™Õ¬8cD×›sˆžAe=« R1óqXE[©äu©gYβÍÌæR^»Îºøó˜Þ±ÔnƒÉXõSÁ¥“1É…nà¶¢í—aZa•Ažl“ À iˆË5¾Åœ·ºX’˜Zñ˜›¥ÝxyH\ï:wˆ¢å&ÈØtÌò¢‘±ó*W wgØjž¦»+ °€LàøÀN°‚Ìà;øÁްB!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·ºº¸‚%¿½~ÁÀÂ}Ä$È #»È¿¼ÆdÓ( "ÑÏÈÔÕàÝÙÛäÏéáiÖÁæ îÅèëìÁïÚñлêõaãò h ?.ï‰èÞA0àˆá3 /Y¿‡¡P _7~1ª(òÉ’uþxÜ2†D”ST`0/¤K˜RdÒ´IP†AœItZ,ˆNWƒ- 6ªDè·Ò> ÷Ò!S$N“%”¨íRu?¯ɺ±¦»®_É…+„lÁªÝ´9Hë.*Û ÚvöìM›3¸ ïbÍË3p·~\„lÄ‹ÏTÌ“ñ·û»ƒGÙªe n_˜Sð9'á´‘. %´‹Ô°ÎÜãG0`°` ¬”ñ@ÛÔÏWØÆ}twïßÁKŸN]õ\ƽ2Nh‚ðêàË—®@û‹ïæïr—§‹Àøñ ~÷^À ·ƒø|W~Å÷낵S’‡€|Ðþ×@܆qúI·@((àWiÒó@Ú-µÖkæCa ’93ÛRžQµƒJ×Àˆ"H¦×‰VIDÛ^8°8Ý‹'ÈO€'VÔbÒàÀ~±ñHÂIl­ç!‘B4€¤&.¤šeÉÕÅ×S)ö %y×Á¶Úv% ?p5å}ÚÈÆšYWDh\‹Ç]qc—-9‡žN< §t0>‘%Ž/ð‡¡N8ð§6±^@÷ÝäŽm6º„“V"àŠhŠtd¥Td˜ŽLüåG(}—€¥Jˆ™q&>YY=ª²Ú*8`CƒŠT«ÁÐ)À©{!ŠË¯N$ô@‹ 8fš„b„,þÀìuB>+Ö´—–€CÙÈ—±ÆH¶j²»0§‡¼DÓî]æÚ:lŒùæ ñ&:ç½3仄9ñKƒ¿H8£À1\U"Ü/¨ ëêð A'€×P ¼3,Û&ÆkœÝÇrÈ"£ÅCqm¢Ì©³@¯½.çs3×ìÃÍ6ä¬óÎ#ËpT?þ ´Ê* uýrÐ# x4;Ý©¼!91[©â%  yß5ìõÕÔ‰]_ ’}vô2À1½]¿íBÙ1üg·m'<ÜÞ:˜ã¦hWÎzy#m8-šÍB‹M/NƒLU¯@¹ä8C‚Ô.Öy þx—ð€n‹¦­äç2ôÍù{H&p:ê.üE (ùåœ'î‚ÖäÕþz ·[§{ Óð”žïÍò¹#?ü ‚ëà'’>O‚LÁQí–E‰` 24Ðiaw¨"n:õ¥”}L6—Ù‚Ñ ®…véldU0Y¯¶‡Ô\'a+ÀØB¶Š`¥m.UKÎT‚ô Ùx¥•ÔiP$…¬‹I®B0ŽÌƒP%T¢±HÚ|î?$+ÛºQYíð¸{£j~÷—Þ½-_+KÒŠñ¯\RŠvËx×ÒE½-©~÷Ëßþú÷¿°€LàøÀN°‚á!ù ,ƒÿ÷//ï__ÞGGç¾¾¾ŽŽÎ¦¦ÆÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþðÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢m¥¥£wª¨s¬«­r¯³¦³ª§±Y¾ ¼º³¿ÀËÈÄÆÏºÔÌ^Á¬ Å Ù°ÓÖ׬ÚÜÙ»ÁÎáRéã Å ÞéêQìÓïñÉàõU˯X!€'=Pέp X.sØ"ÔR¬ÀÉk*bl£q£þÅxüRØ®GY@¤€&$ªÌÑ X‚—óJÈœy£f›ß¾ )ZÕúñÌÁ ˜‚—{A+µÀ`ÒKc4-ðt;V ¨Z0eÁ¬:¢‘54ìX«Ï°¢…¡–º nÉš5wvîºHq‚Ë Wž\¿,¶½ ,”V±ª{ù!¶¡¸[ÐÂÙ—MÚ¡ÂùâA=ÊYìÛÈŒ'ÂÔºàÉ;7@@»¶íÛ¸‹êÞÍ»¢è¯'ßóVJ@ÅãÈ“+_Ž<ÁïÁc[(Á'óëØ—'¸ø!ºðá8/~¼ƒòçÍ›oÀ¾½û÷  ¬È€;ï°#^f|8ƒ‚ù?=þ·~°ñÕW@ŸÅ&BùØd.5Üj’õÇ|ÇÕ7 fùåtÖ^›µð_EÎi¡„AÝeˆ+0xÜvrX`‚Ct ‹,`XÑž8£#†$ á"‰)\:>–‹’&dK @%G†$ã•T4¹%—TLÙ˜Vd¹™UDS€eC$¨¶¢æƒ=¬öæqÊ:€÷ ›äÙŠbð‰Ã„8ðd©%h,óúÃtHͦQ…Êø5Œ“²cûð—ÚRÌw¦Ó @biJ=úK©_¢ÊJƒˆÚêd–.–;Šî"‹®2³À|€ÚŽq¾Mƒ)gˆþÍÙgªsÀoí Y°á8»«)Xá´€{e4’êÐk¬h‚O¹=(`º"lj¨ Ÿ¾ o°Ž5ï juï ùžúBƒþþ °©1œ««Á( ‹. ÖéÃ0 j‹ÂVTNÜ‚¶)¬ñ — °À«@è¾ä*qÉ0DŠ2õ²,ƒ¼8 (€?½,³È¦ÚÌÎ üdzv?ÓovÌYœ4½G+‡@ ,0tŠùt ŠýT´Õ ºUÁ[ƒlÖù\öÖ…0Ÿ½k«0ŸÚ(FrÜ) ÂØx¿5ÚÑÝw|ƒðöà-®n9ˆ¯ ·G’ݸ v__Îþ;+ÇãäÛDtæLÛ7ç‡~ÜÔ:§€à¤Op_3v^:ÝzÍÅ>ÞSrzû}%• ²¾¿o¸0  Y|ùØŽo×=/_K°0¼†Ò?À’K‰è{ñÑHžÂð«/o¥M"àüàÉ& ý÷SïÂg׳®±OÜ«`ç ‰>y4ZCxРüõ-w#¢@€†œ‰4Á–JÚ§¿¨¼âW¹Ãä7?ð„HYûþb0ɤˆY÷:J~¥Œ“€PcdŸcÂjMŒ‚)@TY%Á™pP†)BµÒC•lÅ€„ qJ(.þK…;(¢Jb¨)N H ”þÁ¶—½«‹4€"Cм1&¬#f|Óh6*Ù8šsÞG D¬9Ø«c¼œ2¥åQÀkɰvý ÞP¥˜ÆtüÝ™U¥Gª‘Pä¨ÑȘâLÔ"ç&™© Ñ;üPñ¨g/-¾¢6ü ‚G( èÇ.NlõPæ zœƒ¢l\>$§ÃËøòwiLcª±¬;!aJåµXÕ:5ÙÒ…-\ˆTZhÅtA“& %8I Éqº&xæõÖ—N¡³ `%%bĬŒeËXži„u˜õNبÖ}E% ¬à2æÍLZ÷™Õ‚Ñe•~ü+Æwc]#OÞºù»FP~·{®Ã ÆjükÚñcÈX° {£TÇÁuξ½6xѶ•&·7fåÌF@½ûŒ3‰þ’aò±ÔNov¥fäUæßž`R„žÖh‡ywþ% ºUxXRô•˜VÇzŠ8˜9rT ¾ã¡:‰XR¹EÊŒ( øœŠ—ŽhøB¶XSH&)„9Wø¥PC0ùŽN: [[:Ae–Dªµ]™OxY؇ñ±ùę짜m¶f3ïá’­ä§!5gå Lœ)L˜ˆ6Q(YNAåŒFºDêh©™™n*Åq•zŠF”Š …z7aWV (I ¦…©ú™…¸JM'ù^*¸Õ*"¨=¤&ÁDÐÐgN`"†TêÄþycRå˜X”›Žþ‘–áˆÂ*ÒÖm}r[áq‡â JÏ À¶YÙŠ°7\ÛšF3)/B&-[Ã2âîVnp¬"Y­ ¬°ûÖ>ûFä­¦2ˆÂЗÝ9ÔÝ~ÒkC»éšŠ©¡®hW"‹ ž¿0ˆKqÊL,È0“ ³ X¢\3 «ðÎ'¬‚Â… ´¨–ÜAÎßÂÍ%<;®Ó),pp'¯¥4Õô\d ’§V¬\³@ê~üù÷_e» öíiÙ¶Ép?t&‘97 _Ú¦Y¥Xʽw ê]Lƒ³Ð…'¾BHkv0¡ã*Œ äþ”Ÿ˜c–gŽ‹äìùç}"½èè&,þz¢‚šE†]Ùlï´îºŸ×_Ý­Ù~ûFòÞ^ª¿w¼sýI7›e—Ñ\<¤’—ÙÖà*õ®›ô2g"€ýèÔ¥ÞûóE6t™ē_½Î&å÷ƒk¿‚õ{’¾ÉÙÂÏ5”.<ê;åÑ ¬f#ýM~0pË(g$‚€~4Uà\Ð’îEÐS‰\ ^ä?Ê!Pà!€þw´²@X0ÀZP¡—Y5j‚'ŒJ*~¯Y*ƒ/h–´.d.D}‚6¤Gi"æ#Ñ …»=ÃìÊaä*¢î´Á¡ÀK8DdÊþAˆ =ŒYĉs¨D0úYRDT•FœPñmÄÉՌЬHQ}i1_ðÆ=ª i~lÁñÒH¼" ¸` ÏvHd¦!0’G$ó¶Ô’èWd¬·°Db29sÒ9œãHE2c., )IˆGRñf àäöðh$"G4ëÚ ë?ö}‘'4$˜±çJñd‰Ü¡ÕÜ$™¤arI™ŽSV­¶K&ŽƒÊÙ¡„õJ)bOsì!5ÇEêñ™ÂŒQ¾N)(¯”ñš»Ü/¹–·O¦Àkö3ó ŸsòSŸ÷ûçÂ)P³ ‘D%B%äË…rqõÀ>þ#ÚƒRx½¨L¢AnÈŸµÀDCš’tX­1%$³vº“NàQ=)¿Ô8’ºOk|ÊUHÅÅ6 È£Š"ì(zSïY s[;#cÒ|²´£¸£@åȵ”ŸJÕ©U§fϧ2T«˜¤ªá* º•ªm–À\!‹êÀ¡RnUò8N_Æ Ê†Î-ˆPTÄDç¸])Õ‘DŒéÞ¸9D«œ«»ê`£"Ñx±>¨i_¹I0hb ¬o­É‹œ¹Ÿ¢h¢Üz×c’3c!@ji_)ub­©TÛ, ¢!©.Öš¨ÍÇT¦X—R@²¾¥ÀäB WÌ&ó“n¡¯`ˆÜgªö¸â@4Ì‹¸õãRD;­4ï&;ä,ù¼Ã]ïþ¼ B¬v¹d,×ò‰Emtg%#uBö½ï„§h³Üþú÷¿°€LàøÀN°‚Ìà;!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ƒ¬¬ª%±¯Œ³²´‹¶$º#­º±®¸rÅ("ÃÁºÆÇÒÏ ÌÖÁÜÓwÈ³Ø á·ÛÞß³³ Ìå­ÝéoÕæö Ìö&õójõëD03€n_?i¤ÙŠõ``Á…ãÀ“%€Y‚hàF”3NÁFCãÊ}$ÔŽÜH’ùþNL% †Ì\Zfà¢Ì?WL”ñ¦•*ÚÐè“II‘'Ö úqç’’ú’%ÝÆŠƒxò Éº„e p·4DÖÓàM¥%XuвL‚:Æj`€M³T}¢%Æj ÅVØšÛ‚æÝ¸ç°X•S„£‰`Àoef—ë.^Û–EÎdE´€´¬«ÇÑB¸ª A‚Ìu¨@Î'€Jå× Ÿ²Æy‹>Ó*ïƒ ØÅì·¹óÚ·Ùâ3¹ûܬ±pñîÛ^´×p;@¾ µóóΣVGw½î]Ó»¶NåxÚã jOGo@Ag~ÂÄ]xÄž<Ü5þ5q ¾`rúù•À0è& ß…Æ^Y44°R1u¡ N­V<ÒðÀ~þÉ0z#òÔÄMÃ[1.儇¸‚a9Ò€Z+ÒFanÌä4Ztd .)î¬ ¢”d™ä“¼ˆ¥MÖt$Ž_šA%u$Y¦Zö×Ù8Œ­yF˜6NV¥œgœ)RI à‰F›þyå't:4hgÖt¨mƹharùhMÖ9)›Óùxéã é¦]Œc)¨cdJjL×穜:Éj©w¾ †–šÊºE§Ÿ áTA1 YTI-*ñÝ>¹ž#'­ÂÎgζõ:(®IìuWÄþGÌ¢¢»Cd"PRJ ÷¨©ÑVÓ©›!èëˆ4ãŤêŒZ û¬«K@€_lŸ€ãƪk òZ$Àöñ:(²Cèò­Ê ®Â‡BÛð€êS¯d’:’DàWi£¸Ëi¤2 ]´½k« »õp­/ËPÒ¨9œ«€Ë5Ï 2<¼jÏ9 zƒÎÚíB¶6=¯Ò>;C˜ýAýCÁl%½Ú~ ðluÑüÕèÚØ®ùåè×?ì6]£-Õk;w˜Û?°|vZä7ËÙÑ]w’0íwjº0ÖƒÓ Óyø ‡¿ÐäÐïиäÌÜ]9|¾`÷æþ¿š1î+ ­¤7ú‰ wØÓS ¶¿Á}o[Æz„g:JPYâàæ¢„i`U;YŠ*ùIð Åh@¸ì•2Õù 2³ A§ œ`ÆZ¡ÇØ× m(@Á‘Õs š©‹b<´!yã¯':¦fü`Éþžø¬ëX‚Ûþ­ŒÐ§fÔÂåÔ¤äMarrá¸Uê/{ß}À7¿ìl:x‹yüØÞX"pZsôH˜I1‘ P[×H´Ëk¤M!+¹‚éhn8­p#9Y‚J­'‘lÎI™H9"ˆ‰r#ùÞB3Õ\…)#(áˆEÀ%C#±peìS­ÊÅì—ÊÒaÉ€ø8Z’¨˜ÕáeÏ ïürŒÖZ]“Ù Õ°ð›n»¤N$±e¾ÒoÎÄP‰É!i’êf Áf6Uè/]Žo”d¥ƒz¤ÏP³Ÿ6Ø&@eð–|´“¨;hö©Pˆ³¡1H'DaωV(ŒUþD3Ê‚rtýè ÂdPŽžK–MšDš¦‡ñ“¥#P¤E“P–2«9"iHáv6fô\ûËJ×ÐD­2w)„¨L'™Ò)Õ¥LCõyÓ‘oª¤äé>§O ŽÒ†"¥QKj‚°šnWûPdeŽê"f’Tà æÃÆ9·ž„}$‡;!9ÐI‹¯uaL;ap9¿Âp2bAQÙá0]uAçp÷à 1s¢#Y®EÌd¶rM„,41ËŒ¨ºí¯I­ H˜8Ëv3+ëbmk±éDP‚>…é r«Ûð¶·1õ%p-)\‘¢µpŠíçGp¿u´¶h®9W•»žøb™öäc¸hÄF2ebª%ߺ¸x[ë}·DV¬$t#«ò*/´=§veÓQ»òÌ&|²;Üþú÷¿°€LàøÀN°‚Ìà;øÁ !ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦¨¨¦”%­«¯®°²$¶·©·ª´vÀ(Æ"¶²ÃÁwÌ#ƯÊÐÍ|Ì­Æ É³ßØÙÕ Æ É©½áâs¶×¿ Æ ìàíî'äÓÈñðþøòùJ&ÍØ?€ïÂQ÷.@7^Úú1g@DEë]D¤ÀXƒˆ¦9i¨ 7’…þà èÛ(=kòųWm}Zöz9¯`r>j÷´¸1-R­¬²6kh­ª‚4ž¼;  :7w~w¬‰ÊæÌ¬Œ¼ø½aìá·Ø,þvºçÉL<áAíÛ©O_édWT ³Õþç‘y×A\ƒ‚8”„?Ä$~ET5PÅ7kDAQEºàˆ6PÍÝ'ƒc(Šá@‹%ªPZŒd<0ÞG&®„#2P£ 1Íôã#*0$ 0‰$6úè$3v³$EÒMY†ŽÓðH$=Z¢$†=-æv°~NAu¦,£ä'¾yF•OU¤ipéÑ|¦aa‹®‘&˜…ª炉ª§‘ž1¢™‘‚ÑœX•žá§—™–A‘‹šÑ¤¡†1i©eD‡jŽÍqºêŸRúê£Î†JÆÈj+ve¹+~’ú+±*Ô¾5Z+R}T£N «Æþù#d *Ùë´8pA¶`2ªd{d°F&‚ð‘wédzjºï<ÐnýÁk²ˆ̈ýF¸¯¹NFËí  èÛl§Å¡Y» ôÞÎVº,ÀÝëÀ_úWé¼\ÈØÅ¶êÆ>€»0]Ý• ‘È•âÙP|ó°4Dœƒ½ZáËs,Û`²°CÏ@2 .O³fÒ;\ZCΡí 5~êÖÀffQ ô4B_݃Éöŵ€n l}´Ø@ç6hO³ýƒÓ…1÷¶œVËÍCs%ζYx„Y¨·|¿0ÍàA4—w ÓŒø 1-ŽBá÷“«*(^yvažBäþ›óÐ9䌆žC,Œnúéç¼ úê7àªÀfK†ê°3ývH™]Xë¹}7y˜?Ãsqñ>ÞÛH¿Bo¤ù à Œê¸ñ¸Ïg½ó†—Ã£×¯ÞæÔÍÍɽ v5`ùáWÞ“ä/øiþù%|ú3”ô“°çýVæ/B™;ð¨èg¿àï|û³\ãÎÀ¤©}I+ Òä¹ÐÍ#ªàã%„ æN‚Ô¦¡>¹]0E; MÇÁnég0­ –xà- Åû…|Bªî@]:ÁÇ>›}• z=8 ò°Weï‡M¤Ƥة. a‡~9VW5>¾eÿ1þb©Ò—Dý„ÌãÓû|ÐD,.»! Eè•ßÈ,c«J Òh§hU~Qàã›zR5+±SÑi×ý—»œÄÕ M è?\`g\ž&ÉÈDËsˆ$Ø8ÙIô$‡%åòÜEIØ©j-©XeÜJYGâÅMsZ+gIøå%—å¡å'o™!H‡R9&âN¹‚Cn£Wè^ù“jµBT¼š-§ƒÇ/®—3FUB.A¾ª'%ã¥ùB½1Ó4fdâ‘uµ˜¸ -óœ"³É39š†Žz°sHž“–ô!Bæ´…îÀžÕ?#:ƒƒR´輨þ ä§Q@´£=ëHe-@Žô; =é|,ä+•ª Št) `Š™¦˜‘’ME€Ó5!q§=åNUº¨”:h¨ %›°~ ÒCy¯]l*h A!Ê©£¡œjUGà”–"’ ™Ý ºQªò{W…ݱØaV·ˆU²SëN¶Ñ.,À¤/^èªKžÃœ#À*ç-ØÆ®Cdg »: ¾šg¹˜¹«ÖÂGŒ·ÓkegÑÆnf6˜ÁƒÏ@/K°'ê¯ìLXö8Ë^S`/0íiß#Ï,Â@¶§(J02î´¯û-úž*Ü·¸Æ%.rõ§\•®Õ(ÆØÙÅm"ú›€›'s/™Oêƒ@n&e2REÑ "féG!‡y–½ØÂ&`[[M:Jv¡Ú…íeùé<ÔBHµ´ŒâU¶^ÿ=™úDðrÌà;øÁް„'Lá [øÂΰ†7Ìá{øÃW !ù ,ƒÿ÷//ï__ÞwwÖGGç¾¾¾ŽŽÎÆÆÆÎÎÎÖÖÖÞÞÞçççïïï÷÷÷ÿÿÿþðÉI«½8ëÍ»ÿ`(Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’&••“‡š˜ƒœ›‚Ÿ£¤–¤—¡i­ £Ÿ°®jºš³·«Ã»nºœ´ ¬ ÅÆÇœš´·–ªÏÐe£¾Ã ´ÚÄÛfÝÅ¿´ÂÍÞãåcݹ ´ ÚòïgØñÕ¾Ùîò­¡f@œ@>ÀäCÏ€½…zª5€˜‡ 5Šx€Ä8dŸ`þ9‰‡?E޼pŽ`‚ N²°¨r¥i¬*U«fI¦¦^„« è? (£€g‚IÏ}ÙÁ£|D7IÅõ Á‚¦ÖÓ¶õ}4`×Ùµ 740ñC/NÔ”¶S]™¨ÕÇÏ/aÍà•¶ç¡WñÍ’5=×ϾhgtO~–¥ûbL™G‡>ÖîÕÚ;sÆI¨ôù”þg ,µ@bnQ÷€s…´Z‚õõP`=þ#Ù4L5§`€ ÑÀR TÈFRñág"j€[‰S8°)^`QŒ,*áb84R@bTÜXPŽÈ£å˜×U0H‹†ìˆd’ÕȇA~O^Lo2VS%Wê÷U[ZIeQ†É¥2-¶‘™VLèÐIJzɦ'Öå€ELÎYE (¹¦žVø8& Xj„6!(¢‰6±””Šùc¤YI©¤0^z…¥šRq%£Ái¨Q|J꣞ê„P´€ªj©¾ºÄb‡ÊúÄR©ÙÊ­®êʃ’¹úš„½ ›ƒ’ ;ì£7þ\g\U”&dƒpÕ9G©ÂàØdy6v©FÅ‚àÚ ÐãOfל§)³2uK¹ÕŒ†®y‚KP `˜¼°= h¬Úö·- œ”µÑâxCúî¤*åMçï¿õhK¼;p®ÄÛUÛ¨©.¼/ÄôE,q§§PÀÀÌ¡j« («µ²€q5sla€Ú½šò7®²]õƒBÐ-Mt—€´ËKŸ@k]O1pO+5J~GõcÉ”õÖ+\éµg¼´¯Öd‡F°W ЖÜÙP·]vÓlÆ@Ü$W·Ýwc¹¬þ ¸ `r@ᇣøàZ6ÎÂãD.9âþxs`ùåŽg^9-œc.¸æ ‡ÞùèŸ_dº =ÕÕl¾úf£ÝçVß)ûì Xtö3 Ü/ÍýÛœ¼ñÞU“iðé~"¸h#¼h}ÛeûˆÛoí¤>½?ã•~ðÒ“PþùŒ_BròÞ=âë‡.ÿ WzÏ{þ!ôÚ'ºšo¢{Þì(ÐtdöfÀ€Ït|AùÂ÷-ð¨ÀY@ÅÀP ï“\G°-M0@´Û½u“aTbÉÚ™;d¨ ª¥4°˜×8x¨þð=zÌ~HUÂ<B"¢žŒhÂí˜í¢þžfHÃýÌ-QÕŒX0®$rE‹s˜IV œ –猲bYAÖXÅ å$=ƒ¢¦üä¦Ït«(¯ºRs^x˜?òa¢Yžúh§¸‹R´2$aÃÁÆÑÊ ^mþ? X$XÜéšÐ:éÉjä0ؘaèHʼ5ä”HüËXÙJêå=uZF+%`Ë[ÖÐBk’Ì©*?2èσîq½”äf[J4ÙÄ|¥ÈðèÑ‹—‹ä=˜T³S´ªß/ù˵|óZñ×{¾(MùÊ"°„V¿b¦³¨9à•$¡0U a*«—»d@ªc4pÌ9¨ ª©P\²¡DþݗΉ–žu_×â™Q¬ ŒqÍ! #Î"E”áðœI/&Ç‚5“!eä'ÐcNt0žQ@ž–bS…"-i±k•I'y˜ú ?Õ)ä3Ñ‘îÄ|PSC©g˜^€Uœ>'€1¹(5€ Ý ÉU›¦Ð”Ó*5±És.H¥v— fŲèòr\æË:PSÓ醙€í€ÑV÷Ä6^Ó»+½„8ÍL&¶m-,ºçÁÆ•1š{je-‹Í,¾ñXõ+ëÙOuu{++êRË8±/}í÷–$[ ¶¶©Ã-e™Š[.®³}bl>܆š“«aí—qíZ38÷5þ$¥ÌôêF‚ ˆ±™m¥õêNè]÷:uµ.s'Þ€FVš“5ïé囎™w´ÞÜÐO©ÛúÚ÷¾øÍ¯~÷Ëßþú÷¿°€LàøÀN°‚3!ù ,þ $Ždižhª®lë¾p,Ïtmßx®ï|ïÿÀ pH,ȤrÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ >££¡™%¨¦•ª©«”­$±#¤±¨¥¯{¼(Â"º¸±½¾ÈŪÆÅÉ¿¨  Ҳ¸Ó‚¼¨  Ź¿ËÞtèÐÍÂÛ&èésëÅÙÐÜðówÈ­Ø èFÐ?=æJ '‹”¾ƒ€Ú€ø( 6ŠY:g€Æ+þœ8{÷±J= þn iw±$•“»F SÀÀÁ‡ÝªÁ¸À¥IyÖT1æ À›ÿ€¶HÀÐçÏ­`úÌÙ3›kHtŠ¥ZH ¨ #ª€Ê¹fÌ÷ÐѪ RÊèQ혮²[ÀôíL¹.FÚ…‚·`4©b­Ò<‹‚åà(!Ë>Ö̓ÄΣ¨à…Æÿ§ÊEç±]!XÆ<³f ŽuWD¦¡Tô>–9Z5@Ó¦DÆ)N’x˜mÙ=r³6@µ%òxÛd–õšº¶]ë5„ÝÝ”…NnfŸ™…úöñ#`3(|ݵg-ËgÅ~^HúqìÛ»j ÁdiôÕ7ÄTÅæÂ9þ^¥(`vÕ„ÒÕViBá@ÁQøÞ3îã`†?l(a^“Qµ |z‘È„‰µgš5 àb‹#ºèŒ.u¢Ž]4Àá [)Æe?¦°@’FrdŒ,üÖäOöhBZSR9dcÎø—%•]¦€å—` 㥠ÎXI¦pæc®Y¦›%l)çœ$©–Íg´©’|ÎIœ3ùúE›°ŠF›Âªè¡Î8÷hõ4é÷4zé€nFšzJF§¢²™£¥fAÕ›©šÊ[«aDhª°V±¤–ÖÚE¦³êꩾZÁ+­ÁBl±SXD,²M¬Êlœ=«ª™Òþ^qkgÕV1l¶¶2Éí‹„~;ű<|fžg›‚Ú«³µš§äâ *Ú©Ùá¦Ê“ pË‚A¡&ª³@|Á·ZõΊ”‰-»­hÇÝ*1œÚ¥².k°FÌCó¡èé­¹‘pfLÞÅ9N¹m8p²0G…,"Ë­Æ+CpÇ@7ãX¬êj¼Â“™ùÇ"[AÖò—Tet 2sG€3®Ø`C*§Ê(o Ô´¬Ä»Q,î qÇ›Øìñ««gà ÑrЉÝÀ̸æ÷ ™jã€rjŽëÔ{›)¶$üÍÀvj'wá3€Š8 Šs”€ÞÛjÉ*ž¹þ<¹àùç8Ðå‚䤗îm ›§~ƒé-„îz ·>~ì³ÏP» ¸çƒn`‹½Ùê¾s)x½'ÂîÅï©à™1n{ó'HDNåt[5=õ%Ä™8‹³f/÷$è|0àP’?>-\a¢Ó×·/[³É§Ó\WÀ>R³§9ç þšÓ¶´,X,j9ˆÖÕÆî²®A¢bËÒÒÖ§½-ÕFªÛÛÍä¶RM„XÑÀ’`¶v¨'ôn‘WâA­!à€IœèN›¨u..ŒF †:vþ³”„e €k þ)Ã×"bJ-+«‰p à¥¿u Ȥ‘ÑÀÍ.Ôö-Hpíe¨KpÔ‹®‡Œ{© ML 0¨j…"VSs rFQ²e;êl7W™¦>×1¸èb*ܸ { õÀYS` B¶;öoƒsGŠ«ûtéá{U¼uŒÔFƒ°Mó%á—3—¯-X>¼`4ƦOïh à0ÐZ›_@†14vÕ a.FU÷6¨} ái»™qÉQDW$mp®U˜©@hRºu©+á6Avéør¹ ’noñK0>Þ©ÚËÜ·›?ˆ|ç¼=Ô€?‘Ô_ÿ‰þ%ƒ`¯¨ßLáÈ„ZJ'W5SsOT.¡v)˜U”†”1Ôá„×Ð!9'þ0•л奕‹áÁ£婈Bmëì8FX­½P”Bb‘`c‹U˜$K¶ðá“d|æ$ 6Q)ƇP¥Pš–c|H_QL‚¹%qç}iæ@šWÑ5]®IFXÝ‘$Jr’±äE¤˜§Q6¨àŸf8À˜š„’ña–‰–±hqžña™‘–V6•JŠX¦gÉ©°}Z%š¢Î Lœ¥‚1œ ¤*FŸÀ 骗ΠÆI¶~ái®]„Êë#ë¯P„…*±W¬Ú*²YÀ "³XÔ í¸þNk…³ÃZ›„¯ÚJ,¤ÝJal¸S(K®Øž…´ê:Qm»EÈ›¨é‡Ï}Ê-ÍÕ¦ùrú­½r±g/²”‹«ãú pT$’££–æÚ»J«²F1ŽòfZ/pœcTkÉnVÚV@+oh¢¨ïêPGÞ{-Sé¬h7pÜÜ^%\óÒ ¦Š¹ZhA•¸_1î­%϶=5 ´À-&Z¼ðdZSIäÉ×t5šÑ¶-pl».„Áä5·ŽSä2Ý0ä6BZwéÝTÕ€Eœ „_'wâ7À ® «â ¹ ê,Ë‚:”^>çþ.¬Ú¹ç1ˆîs“§Ð°ê3¼¾‚ݰÏ@Ï×(^»‘]C}^F“ï.¥áz}-¹ðÓS¸Þ^çŒü •ÎÀò†þ¼ »–ÐøÑ׳ý äíg÷¹ïB‚u’oÂ÷ï«~ö&™¯>ìËÐf¶žÃC ê×ÿ¹üÏÓß Vå¦îÝ)üCži ¦ëÉz $•ðh÷‘î>Ö³`GĄ́v‚×A8+ut a>x¹ê`„çRárd×.H2Ê`!Ý`¸ ã脇ÓrÖúÕ’°àW@œt<€X® ò¡¨4غ< Š?»ÚÍ>Õ1Äq9©þ@î%*ž§ŠV$ã;ã*žA…B^äWoÌ&™g”ên\p2ÓÃ%*D>£×5078®ã‹!³£Í–¶9+x#ÀcSø0ʰBúÔÐX³` 0Dd#IIBÆJ}艔kJ‘–ÐÈñ ‚(0Ôá”ÐÊþäq€ I®('Ižê†£å57Áò|òBÜ0¤.a÷Ècúq¾dÕî6ƒ~Aq£Ä!³N9^¶äF‹$±:¦¹nZS‘V×­x†ÆjŠÓBêäU4éNunEaÌš§ ¶óÌù³Tͼ?¹!FðÌŠš8¸×%±¨4[i•û ådð‰ m¦Š›óËÁþ+3ªQ8qÔ3S£çGOÀ±àr¤0€›mÚ‰R„Ípl©Jª7¤9O¦4=ZœdˆR•²†˜#ðhO¹¦J ’@wíŠW2¼Â6V±TˆR—G@Ó¼ÀD¤P½Ò¹ˆ±Ãøiˆ*Ýø9 Ÿ¬ï,ŸFwEr8uŽ.Øå¨ ¾ÀuxƒòÜ(W”Åðt®[Ú{R€Ô­^ˆuÁñØZ°1öusZ•êq44˜èü5©­YE϶ÊT­1ý,dƒ$ZûE¶´³û%jyŒÕÆ´®õëick±Ò–°´»­—§[€î¶ñ‚€m;¿½F2·éäè©Ê”É—|˵…^P ‹>/9 "tYPP¦]F ýgíPsÏEŠvÑä]·ûÌî¦õº> ì=ž{ÝÌ΄³ÿ°no÷Ëßþú÷¿°€LàøÀN°‚Ìà;øÁް„'LáF…;phangorn/vignettes/primates.dna0000644000176200001440000001010013201424001016361 0ustar liggesusers 14 232 Mouse ACCAAAAAAA CATCCAAACA CCAACCCCAG CCCTTACGCA ATAGCCATAC AAAGAATATT Bovine ACCAAACCTG TCCCCACCAT CTAACACCAA CCCACATATA CAAGCTAAAC CAAAAATACC Lemur ACCAAACTAA CATCTAACAA CTACCTCCAA CTCTAAAAAA GCACTCTTAC CAAACCCATC Tarsier ATCTACCTTA TCTCCCCCAA TCAATACCAA CCTAAAAACT CTACAATTAA AAACCCCACC Squir MonkACCCCAGCAA CTCGTTGTGA CCAACATCAA TCCAAAATTA GCAAACGTAC CAACAATCTC Jpn Macaq ACTCCACCTG CTCACCTCAT CCACTACTAC TCCTCAAGCA ATACATAAAC TAAAAACTTC Rhesus MacACTTCACCCG TTCACCTCAT CCACTACTAC TCCTCAAGCG ATACATAAAT CAAAAACTTC Crab-E.MacACCCCACCTA CCCGCCTCGT CCGCTACTGC TTCTCAAACA ATATATAGAC CAACAACTTC BarbMacaq ACCCTATCTA TCTACCTCAC CCGCCACCAC CCCCCAAACA ACACACAAAC CAACAACTTT Gibbon ACTATACCCA CCCAACTCGA CCTACACCAA TCCCCACATA GCACACAGAC CAACAACCTC Orang ACCCCACCCG TCTACACCAG CCAACACCAA CCCCCACCTA CTATACCAAC CAATAACCTC Gorilla ACCCCATTTA TCCATAAAAA CCAACACCAA CCCCCATCTA ACACACAAAC TAATGACCCC Chimp ACCCCATCCA CCCATACAAA CCAACATTAC CCTCCATCCA ATATACAAAC TAACAACCTC Human ACCCCACTCA CCCATACAAA CCAACACCAC TCTCCACCTA ATATACAAAT TAATAACCTC ATACTACTAA AAACTCAAAT TAACTCTTTA ATCTTTATAC AACATTCCAC CAACCTATCC ATACAACCAT AAATAAGACT AATCTATTAA AATAACCCAT TACGATACAA AATCCCTTTC ACAACTCTAT CAACCTAACC AAACTATCAA CATGCCCTCT CCTAATTAAA AACATTGCCA GCTCAATTAC TAGCAAAAAT AGACATTCAA CTCCTCCCAT CATAACATAA AACATTCCTC CCAAATTTAA AAACACATCC TACCTTTACA ATTAATAACC ATTGTCTAGA TATACCCCTA TCACCTCTAA TACTACACAC CACTCCTGAA ATCAATGCCC TCCACTAAAA AACATCACCA TCACCTCCAA TACTACGCAC CGCTCCTAAA ATCAATGCCC CCCACCAAAA AACATCACCA TCACCTTTAA CACTACATAT CACTCCTGAG CTTAACACCC TCCGCTAAAA AACACCACTA TTATCTTTAG CACCACACAT CACCCCCAAA AGCAATACCC TTCACCAAAA AGCACCATCA CCACCTTCCA TACCAAGCCC CGACTTTACC GCCAACGCAC CTCATCAAAA CATACCTACA TCAACCCCTA AACCAAACAC TATCCCCAAA ACCAACACAC TCTACCAAAA TACACCCCCA CCACCCTCAA AGCCAAACAC CAACCCTATA ATCAATACGC CTTATCAAAA CACACCCCCA CCACTCTTCA GACCGAACAC CAATCTCACA ACCAACACGC CCCGTCAAAA CACCCCTTCA CCACCTTCAG AACTGAACGC CAATCTCATA ACCAACACAC CCCATCAAAG CACCCCTCCA ACACAAAAAA ACTCATATTT ATCTAAATAC GAACTTCACA CAACCTTAAC ACATAAACAT GTCTAGATAC AAACCACAAC ACACAATTAA TACACACCAC AATTACAATA CTAAACTCCC CACTAAACCT ACACACCTCA TCACCATTAA CGCATAACTC CTCAGTCATA TCTACTACAC GCTCCAATAA ACACATCACA ATCCCAATAA CGCATATACC TAAATACATC ATTTAATAAT AAATAAATGA ATATAAACCC TCGCCGATAA CATA-ACCCC TAAAATCAAG ACATCCTCTC GCCCAAACAA ACACCTATCT ACCCCCCCGG TCCACGCCCC TAACTCCATC ATTCCCCCTC ACCCAAACAA ACACCTACCC ATCCCCCCGG TTCACGCCTC AAACTCCATC ATTCCCCCTC ACCCAAACAA ACACCTATCT ATCCCCCCGG TCCACGCCCC AAACCCCGCT ATTCCCCCCT AATCAAACAA ACACCTATTT ATTCCCCTAA TTCACGTCCC AAATCCCATT ATCTCTCCCC ACACAAACAA ATGCCCCCCC ACCCTCCTTC TTCAAGCCCA CTAGACCATC CTACCTTCCT ATTCACATCC GCACACCCCC ACCCCCCCTG CCCACGTCCA TCCCATCACC CTCTCCTCCC ACATAAACCC ACGCACCCCC ACCCCTTCCG CCCATGCTCA CCACATCATC TCTCCCCTTC GCACAAATTC ATACACCCCT ACCTTTCCTA CCCACGTTCA CCACATCATC CCCCCCTCTC ACACAAACCC GCACACCTCC ACCCCCCTCG TCTACGCTTA CCACGTCATC CCTCCCTCTC ACCCCAGCCC AACACCCTTC CACAAATCCT TAATATACGC ACCATAAATA AC ATCCCACCAA ATCACCCTCC ATCAAATCCA CAAATTACAC AACCATTAAC CC ACCCTAACAA TTTATCCCTC CCATAATCCA AAAACTCCAT AAACACAAAT TC AATACTCCAA CTCCCATAAC ACAGCATACA TAAACTCCAT AAGTTTGAAC AC ACAACGCCAA ACCCCCCTCT CATAACTCTA CAAAATACAC AATCACCAAC AC AATACATCAA ACAATTCCCC CCAATACCCA CAAACTGCAT AAGCAAACAG AC AATACATCAA ACAATTCCCC CCAATACCCA CAAACTACAT AAACAAACAA AC AATACACCAA ACAATTTTCT CCAACACCCA CAAACTGTAT AAACAAACAA AC AACATACCAA ACAATTCTCC CTAATATACA CAAACCACGC AAACAAACAA AC AGCACGCCAA GCTCTCTACC ATCAAACGCA CAACTTACAC ATACAGAACC AC AACACCCTAA GCCACCTTCC TCAAAATCCA AAACCCACAC AACCGAAACA AC AACACCTCAA TCCACCTCCC CCCAAATACA CAATTCACAC AAACAATACC AC AACATCTTGA CTCGCCTCTC TCCAAACACA CAATTCACGC AAACAACGCC AC AACACCTTAA CTCACCTTCT CCCAAACGCA CAATTCGCAC ACACAACGCC AC phangorn/README.md0000644000176200001440000000407713201424001013340 0ustar liggesusers[![Build Status](https://travis-ci.org/KlausVigo/phangorn.svg?branch=master)](https://travis-ci.org/KlausVigo/phangorn) [![CRAN Status Badge](http://www.r-pkg.org/badges/version/phangorn)](https://cran.r-project.org/package=phangorn) [![CRAN Downloads](http://cranlogs.r-pkg.org/badges/phangorn)](https://cran.r-project.org/package=phangorn) [![Research software impact](http://depsy.org/api/package/cran/phangorn/badge.svg)](http://depsy.org/package/r/phangorn) [![codecov.io](https://codecov.io/github/KlausVigo/phangorn/coverage.svg?branch=master)](https://codecov.io/github/KlausVigo/phangorn?branch=master) [![Coverage Status](https://coveralls.io/repos/github/KlausVigo/phangorn/badge.svg?branch=master)](https://coveralls.io/github/KlausVigo/phangorn?branch=master) phangorn ======================================================== phangorn is a package for phylogenetic reconstruction and analysis in the R language. phangorn offers the possibility of reconstructing phylogenies with distance based methods, maximum parsimony or maximum likelihood (ML) and performing Hadamard conjugation. Extending the general ML framework, this package provides the possibility of estimating mixture and partition models. Furthermore, phangorn offers several functions for comparing trees, phylogenetic models or splits, simulating character data and performing congruence analyses. You can install - the latest released version `install.packages("phangorn")` - the latest development version `devtools::install_github("KlausVigo/phangorn")` To install the development version you may need to install the Biostrings and seqLogo package from bioconductor first: ``` source("https://bioconductor.org/biocLite.R") biocLite("Biostrings", "seqLogo") ``` Also the development version usually depends on tha latest ape development version and information to download can be found [here](http://ape-package.ird.fr/ape_installation.html) If you use phangorn please cite: Schliep K.P. 2011. phangorn: phylogenetic analysis in R. Bioinformatics, 27(4) 592-593 License ------- phangorn is licensed under the GPLv2. phangorn/MD50000644000176200001440000002674413241412170012406 0ustar liggesusers52ce02eec7bc820a8f4dc97c2700a31d *DESCRIPTION 3bf56683044101f3e4625ca55b76c9fa *NAMESPACE d56f14d49ac706a05ad6b06258e5f41d *NEWS d7b9167a44c0c14cc6104ea7f74be14b *R/Coalescent.R e76f3370cafac2753dfa5f79667bd04a *R/Densi.R d43bdd3cc3336a781999a7f46ff4a3fc *R/RcppExports.R 04b4a4fc7937c76c0a48266307a2b024 *R/SH.R c363ea0a2b0cae2ec1f63a7be961e494 *R/SOWH.R 5db1718b3bc2039069f8b6bba26ac284 *R/ancestral_pml.R 9f7a45638f260dfe8579461360c5eedc *R/bootstrap.R 6e3f20cb5134bdeb02aa5e2cab1f7d0a *R/cladePar.R ea597b32f1b56e968bc874f5848f149f *R/clanistic.R 75cccb4b5c2e1ddbd352bb06136d2a9e *R/delta.score.R aac86ed24a8df8a07328c56da318a650 *R/dist.p.R 2733f4109cb52a01f61fea61f59df699 *R/distSeq.R d3d258fa301b9df83cb7f9bb7550f325 *R/distTree.R 6027433f81d44c2024e72b6d87d23e18 *R/fitch.R f16fe6177e8788ea7441864f1c8d7d95 *R/hadamard.R 9cb13486f4d1462f616eef17534f8542 *R/lento.R dbc14dac98ca76259553bd0e6d919dce *R/mast.R 4f1fdcee2f31f4b28ddd2c1c1d9e44f2 *R/modelTest.R ea0a22a1b346fd632e5a821bea0a1cb6 *R/neighborNet.R 5fbea8b00f4ac0db2f24b90c5d9a2038 *R/networx.R ac7625ce57fb2e6efb9468e73a913bef *R/parsimony.R 88ba447ccac28112890bf14e9b765192 *R/phangorn-package.R 55b1543c1fa21b6cab1a84d09c9def09 *R/phyDat.R 082037ac98d6402b8b695e73fefeffa4 *R/phylo.R c003c4a1adc717f33073c524d323890e *R/pmlMix.R 5bfa8729e4378a297bc02a81f16fa0d9 *R/pmlPart.R 4ba8d7cbcbdf3709a4abac8c632f2423 *R/pmlPen.R 02c5900d114ba171b1f6f38ac26e96bd *R/read.nexus.splits.R b40dd723d69162814604bc69d3a33498 *R/sankoff.R 17fd2af83625e2c28afd0c139a5f3251 *R/simSeq.R dacb378e351c47fa54e5cf823e4c490e *R/splits.R bb8983ed84c6c24558d94749ae998697 *R/superTree.R 2b4d6884b4ee2b92e617cea76f79d3da *R/sysdata.rda 6af1b88caecf6b9acff7200502221280 *R/treeManipulation.R d378a9a6531103746ba35aa8f950b061 *R/treeRearrangement.R d244ed11ac24adad557d1d68e9dabf28 *R/treedist.R 24cdf26101ab6fa62e1855938b15758b *R/zzz.R 760d34b11afe20df61ece6753e1081c7 *README.md a1c247453f9e4f7f845a093ab9169071 *build/vignette.rds 4a92b07bcd170e85bd237e460acafa93 *data/Laurasiatherian.RData 4b269c2e640293341b9b1c04d4dd7f4e *data/chloroplast.RData 19f84425e8caaf9f605490cdff17dd81 *data/yeast.RData 82c44d6919bfb89935a2aaf44893f750 *inst/CITATION 61b3722df2ead748e0db8595428412a1 *inst/README 2f9becfff2337233d977aa9f2d37c348 *inst/doc/Ancestral.R 2ce1c90c2f25d7089399bd155e193ae9 *inst/doc/Ancestral.Rnw e16ec8c628c1aa1addb687152ae7c7bc *inst/doc/Ancestral.pdf ded9d871b4e54387c14340167f196a93 *inst/doc/IntertwiningTreesAndNetworks.R 9364f4bdf1689f43b2c202c9511515f9 *inst/doc/IntertwiningTreesAndNetworks.Rmd 95ea0dc339a0f431eae6d41c10a54bbe *inst/doc/IntertwiningTreesAndNetworks.html d24a83a2803108ede87eff4de3c13ae8 *inst/doc/Networx.R fe641c0b4c7aac7aabf24c47ed6cde40 *inst/doc/Networx.Rmd 478d8f6fe4f456908f34df30862a2c17 *inst/doc/Networx.html ac8f706a3e88747ec2e80ee0d554124c *inst/doc/Trees.R 7abb7dc2804d22b902f361f18478713d *inst/doc/Trees.Rnw 7bd2a6a68c1bd8ce7ce7299100f3b3b8 *inst/doc/Trees.pdf 40605abf3f276cd1741639e9f9de2a0f *inst/doc/phangorn-specials.R af421d22d56280bbb5c767901552aa23 *inst/doc/phangorn-specials.Rnw 6a5192331ec125ad3f79b5037c26ad77 *inst/doc/phangorn-specials.pdf 3009f9da02a198cb557d435cc5ad8c7f *inst/extdata/Blosum62.dat 72f496d4c6e937ffe744d25bd8891313 *inst/extdata/Dayhoff.dat 5aa357dab0e72b27023e4302bc37dbad *inst/extdata/FLU.dat 7f63f617d5d29421b0bd90ab8511feb7 *inst/extdata/HIVb.dat 29e1aa10906a86bb9bca6d9c7f98a6cb *inst/extdata/HIVw.dat ca86e539345fa57de5c77a60308bed09 *inst/extdata/JTT.dat fdc1176d0c0f2db3de1c9dfd83d3c070 *inst/extdata/MtZoa.dat 106715eba35efc2743ccad7923ac13ce *inst/extdata/RtREV.dat e05f5a0ca507e4e15e7b95d1ce93b9fa *inst/extdata/VT.dat fc090d051ce4f18b937448a254e2764e *inst/extdata/cpREV.dat 50c707c26bf9015b37670f15d5e1c14b *inst/extdata/dayhoff-dcmut.dat 6da24109959f0c7a7db50c8db78d5d42 *inst/extdata/jtt-dcmut.dat ddc4bd45521cd72848aaf2f79b90ac6e *inst/extdata/lg.dat 917303a3df098f9137c651de0afa78fa *inst/extdata/mtArt.dat 1cd5e39670b86d32b5fe5c27dcc79648 *inst/extdata/mtREV24.dat 0ca0d0e987fcebf847a876779eddd934 *inst/extdata/mtmam.dat 20be734137b889e34006f8b8bd969054 *inst/extdata/trees/RAxML_bestTree.3moles 384aa1b8d633aa8c9f533396bd6798cb *inst/extdata/trees/RAxML_bestTree.AIs 757e4718b72d7829b5ceb34f765dc626 *inst/extdata/trees/RAxML_bestTree.Wang.out 5c7b80221c2dc93d4e6a6b857ccb62e8 *inst/extdata/trees/RAxML_bestTree.YCh 0e77d8f9386ddaee1de2f6678530c823 *inst/extdata/trees/RAxML_bestTree.mtG 2f7670326d5ff9235ecd0943944b6d59 *inst/extdata/trees/RAxML_bipartitions.3moles 959bc9ea585c21ab89b3f32a5bb49d25 *inst/extdata/trees/RAxML_bipartitions.AIs 46c172becde7e1d90ab68820b0c48822 *inst/extdata/trees/RAxML_bipartitions.YCh 75061d3e313e19632dcbce0ef48e9cdc *inst/extdata/trees/RAxML_bipartitions.mtG 2212d49c7269978890887be3686c12f9 *inst/extdata/trees/RAxML_bipartitions.woodmouse b1b3ceb83427c63fed23790fd563ef6e *inst/extdata/trees/RAxML_bipartitionsBranchLabels.3moles 41fd855853c4ceb7e28d5212b1c72d9b *inst/extdata/trees/RAxML_bipartitionsBranchLabels.AIs 0d8694f8ea078f981819be215fb724ba *inst/extdata/trees/RAxML_bipartitionsBranchLabels.YCh abcfbaf31212288e26a67c5b6c30ae70 *inst/extdata/trees/RAxML_bipartitionsBranchLabels.mtG 25077ff0b9f822583f5ae13d8bbc181a *inst/extdata/trees/RAxML_bootstrap.3moles bd830645e73afa0ee2cb121c22c4d2f2 *inst/extdata/trees/RAxML_bootstrap.AIs 086fb65b6bd2d40f09fff513b86d55cc *inst/extdata/trees/RAxML_bootstrap.Wang.out 49ade6ade3f8f08033b887a001243c86 *inst/extdata/trees/RAxML_bootstrap.YCh d2016de5a6926dd0b62c49502ec2d6b9 *inst/extdata/trees/RAxML_bootstrap.mtG 000df141b844795d38e5a755aa360f97 *inst/extdata/trees/RAxML_bootstrap.woodmouse 6cd945acf5464dce8e10c350097e2c20 *inst/extdata/trees/RAxML_distances.Wang.nxs 02888c45178001387b7a5397a3a17d3c *inst/extdata/trees/Splits.txt d3069d1eff9e70bed655b8962bf4ee2b *inst/extdata/trees/primates.dna 129e8c41182f3557b1b9911625e100b9 *inst/extdata/trees/woodmouse.fasta 421488c1ce8687879f64a350fca6d055 *inst/extdata/trees/woodmouse.mrbayes.nex.con d83fc4958acba1f1d0ca4092393c5b3d *inst/extdata/trees/woodmouse.mrbayes.nex.run1.t e185a8c9c7aed17a3e216cb78d517fd4 *inst/extdata/trees/woodmouse.mrbayes.nex.run2.t 01399608c5cc2927ebed0659ac78863d *inst/extdata/trees/woodmouse.nxs 87fa1533c4dfe7074237cfa2196bcbeb *inst/extdata/wag.dat 445c74e7b7848796e5aeea71f63dd05b *man/Ancestors.Rd 1410e082b610abc1facbc76c5d8b1196 *man/CI.Rd e72793e4e3e08c49156b1357a9291a01 *man/Laurasiatherian.Rd 35fb7d5dc48d2c99dd92124deba2faa4 *man/NJ.Rd 36b252cb1badf32e34120a0e961cee22 *man/SH.test.Rd 4e98f950b33245fe670bf81f28ba30bf *man/SOWH.test.Rd ecfb06d1c905326690a0a3c195e662cf *man/add.tips.Rd 34b81236a6be8bb94e6e97935b52b342 *man/addConfidences.Rd c04c9432a573eb46abf88a4168eaa19e *man/allTrees.Rd ff47ac92f032f93d017e2598e66f6145 *man/ancestral.pml.Rd 75b09768c070a02d045b711106c96b8d *man/as.networx.Rd df2f4d5bfa1cf071228330cf78aca468 *man/as.splits.Rd 51a2297dc7795006f77bca7df316a091 *man/bab.Rd 0e1e8402e4c969c589b9fbb909262d67 *man/bootstrap.pml.Rd 84449bdbd0b2adefb75bd71de6be5d8d *man/chloroplast.Rd 3cd568b4891d8b8668e6c32baa89ddb8 *man/cladePar.Rd 7f22c4b1e1385b67ce4f53b86461bd5e *man/coalSpeciesTree.Rd 4653649ccf95b56ca3b094f91942701a *man/consensusNet.Rd 9a6059134efdbcae3f438ef949806bfd *man/cophenetic.networx.Rd 5173eb8e2f87b21391e5c49c0927e905 *man/delta.score.Rd 2687236e8873f955ddff323144125c3c *man/densiTree.Rd 8ac20c262a5ea83d81305952d3af6e49 *man/designTree.Rd dfbc54435ddc425192da2b8de37a90fe *man/dfactorial.Rd 889f328b203bc81a651586a0a0ea25ae *man/dist.hamming.Rd 27fb9ec7e7066fa3a6eea9857b897896 *man/dist.p.Rd 13e311418f4e1eaf9c0f23f83a708324 *man/distanceHadamard.Rd 4dfff8bd8238927ec85c6b445070fd1d *man/getClans.Rd f87e9235742f659511655e25a9911b3e *man/hadamard.Rd fc2bfa9f63121c560ec7865718e23b9f *man/identify.networx.Rd b47d3bfc70731d1c875770f81017e6d8 *man/lento.Rd 4e8f642a425842e2435a67cd7392b73c *man/mast.Rd b6d7bd97131891a68728784b13631202 *man/maxCladeCred.Rd 000c919c408707ba11503fcd974b197f *man/midpoint.Rd 729c4cb3cc699fa6191ff19407efae03 *man/modelTest.Rd cc7c4671f631780dfdf621343998d6d0 *man/neighborNet.Rd af7916387c5593571df86318c9b1fe6d *man/nni.Rd f9d731081249509e62a1b9c3fa079a1b *man/parsimony.Rd 7e71075721797efb89a3da785b6eefc6 *man/phangorn-internal.Rd 868acc3c4940b61304ddc3907a9e6448 *man/phangorn-package.Rd c9dac7b08b5334dfa7c403b8c7e8f983 *man/phyDat.Rd 5f096f044b245f1724ddad252bd86e0e *man/pml.Rd f60d00714d4ed8e74769c63b6f3bc5a0 *man/pml.fit.Rd d0db98616ba12dfe7b0dda1a6d741241 *man/pmlCluster.Rd 1e4201e89b1d2733ba12d659d8738dcd *man/pmlMix.Rd 5b805e13703fbf5a15a8002f96016755 *man/pmlPart.Rd 331cc7b9328ef3de64da631bacb4dcf7 *man/read.aa.Rd c8facd34929f45daa6098f8aa69d6418 *man/read.nexus.splits.Rd 89780ded123d5b90d4eea840df00d5d9 *man/simSeq.Rd 6a68d926220ad4de76de5d41bc551dbc *man/splitsNetwork.Rd 2d98853d1f4c082cfc9b334aa877784c *man/superTree.Rd f14689fb238dcd8de4f5db427a52174b *man/treedist.Rd 67067f0938439b3fc79270500c10f16f *man/upgma.Rd 107d1fd52dfe30f8c31080f057754cef *man/writeDist.Rd 7b4fdcfc85bc945a86723f094057dbcb *man/yeast.Rd 492db09920ede56553573117f9396e34 *src/Makevars 20ce14a965b3c15a0f301a10a91d0327 *src/RcppExports.cpp b68dfb512bb42b538eb692279ae808cb *src/ancThresh.cpp 90aaf317a0778e08b0d399f4537a02cf *src/dist.c 85df9ae840adeb65266ccb672790fe40 *src/fitch.c 15e09d99ce7ac72466c731780829fea4 *src/init.c bd6ae6f875512838c97e86c12088d5aa *src/ml.c 149345b01395fa29dd8439273c651846 *src/phangorn.c 3f7aae730ca7ee52f2879b7e3fd23e1b *src/phangorn_help.cpp d8e5c864aa0b122ce426a67479d3a610 *src/read_aa.c 9e42fb2407f9e6980bda9e651c8407dc *src/sankoff.c 144b2b620cce6bf849f725be5f5e2cdc *src/sprdist.c 7d1eaef831fb2372b367f5be1b0a5790 *tests/testthat.R 434965cace2a3bbd36811d3d6e75cba0 *tests/testthat/test_Clanistics.R 1c58551e18ec17091d9e4eb07dc866ea *tests/testthat/test_SH.R cb58c4c67f246b5ac1a70426fc311550 *tests/testthat/test_ancestral.R 97d94788752f552d019cdaafcf7a66bc *tests/testthat/test_dist_tree.R 92512e2f264d4a11382ddd89e2a515d1 *tests/testthat/test_distances.R 7f6d10a2be16a7c04c1591ed79d7e02e *tests/testthat/test_hadamard.R d0e85a4256891fa63558b5708e83c69b *tests/testthat/test_mast.R 0de6763f787e9f1a5e9111dece7c098e *tests/testthat/test_modelTest.R 7e59fbd7932e225a462fdcde3edb5ee6 *tests/testthat/test_parsimony.R 5dcfc54dcf6eb14874e2c779d9361077 *tests/testthat/test_phyDat.R df92c7b30444a1286798bfdaa6dc48b8 *tests/testthat/test_pml.R a7d7ef1e293ee5ea5e9ac116e81b829c *tests/testthat/test_pmlCluster.R 05ceb5befd7acf2b32441d1c13a2630d *tests/testthat/test_pmlMix.R 66c5b2c4ed9b1b0b74fcf5170b5a72ed *tests/testthat/test_pmlPart.R 794162c401f7bc7c87850ce54c387c3c *tests/testthat/test_pmlPen.R 26bd54252efbc97a9a252ee11469eff7 *tests/testthat/test_speciesTree.R 2a03d769fb48c0bd1683632c05b253dc *tests/testthat/test_splits.R 20ec41bfea311dd762e984f834a26948 *tests/testthat/test_superTree.R 99fb437694ce8b4f88524228a22ddbce *tests/testthat/test_treeManipulation.R 56babe6f5ee0fada632f4ac5f57798e2 *tests/testthat/test_treeRearrangement.R 98d3d4091f9bacf2771d037df005daaf *tests/testthat/test_treedist.R 2ce1c90c2f25d7089399bd155e193ae9 *vignettes/Ancestral.Rnw 9364f4bdf1689f43b2c202c9511515f9 *vignettes/IntertwiningTreesAndNetworks.Rmd fe641c0b4c7aac7aabf24c47ed6cde40 *vignettes/Networx.Rmd a8250afd3b341e6c3f889e9454d5bc5f *vignettes/Trees.RData 7abb7dc2804d22b902f361f18478713d *vignettes/Trees.Rnw 3b1285249eed24e70427c0b56450533a *vignettes/cophylo.png 6af5f4d4c2e93469cc19d46a97ab5d0f *vignettes/exdna.txt 1ca8b1d97a011a9d0ecd9630d548dfb3 *vignettes/movie.gif af421d22d56280bbb5c767901552aa23 *vignettes/phangorn-specials.Rnw dd340cebb466c383e74f80a5675e7f5a *vignettes/phangorn.bib d3069d1eff9e70bed655b8962bf4ee2b *vignettes/primates.dna 8f16a94fb418c2e580b92d2d63a05a44 *vignettes/seqLogo.pdf phangorn/build/0000755000176200001440000000000013241142073013162 5ustar liggesusersphangorn/build/vignette.rds0000644000176200001440000000057013241142073015523 0ustar liggesusers‹¥S]OÂ0-l¨€$*ñÍhùòˆ„Ę<øÚ´—ѸÝÍ®sòæÿ6ËhÇf˜øÐ{îiïÙ¹Ýs‡Ò$žï‘¦g¶^ßLGfœ™Ñ">i›µ7B©V,N1·`{®Ò p™,±ÂÛ4.YXMÒ{Ô t.QbPœ¡xÇêÅð"ayÝ-ö^@uƒRÁk&¢Sà1,ãZÆh‰7w%†M–«0AKNõ¦²¥Ä3—º¦3U&®iµœ‹YJR†‚ZÉ¿›–ˆEÝ´°Ç´]rpд¥ŽBK Description: Package contains methods for estimation of phylogenetic trees and networks using Maximum Likelihood, Maximum Parsimony, distance methods and Hadamard conjugation. Allows to compare trees, models selection and offers visualizations for trees and split networks. Depends: R (>= 3.2.0), ape (>= 5.0) Imports: quadprog, igraph (>= 1.0), Matrix, parallel, methods, utils, stats, graphics, grDevices, fastmatch, magrittr, Rcpp (>= 0.12.0) LinkingTo: Rcpp Suggests: testthat, seqinr, xtable, rgl, knitr, rmarkdown, Biostrings ByteCompile: TRUE License: GPL (>= 2) VignetteBuilder: utils, knitr URL: https://github.com/KlausVigo/phangorn BugReports: https://github.com/KlausVigo/phangorn/issues Repository: CRAN RoxygenNote: 6.0.1 NeedsCompilation: yes Packaged: 2018-02-14 23:20:28 UTC; klaus Author: Klaus Schliep [aut, cre], Emmanuel Paradis [aut], Leonardo de Oliveira Martins [aut], Alastair Potts [aut], Tim W. White [aut], Cyrill Stachniss [ctb], Michelle Kendall [ctb] Date/Publication: 2018-02-15 23:15:04 UTC phangorn/man/0000755000176200001440000000000013231522124012634 5ustar liggesusersphangorn/man/Laurasiatherian.Rd0000644000176200001440000000072613201424001016234 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/phangorn-package.R \docType{data} \name{Laurasiatherian} \alias{Laurasiatherian} \title{Laurasiatherian data (AWCMEE)} \source{ Data have been taken from \url{http://www.allanwilsoncentre.ac.nz/} and were converted to R format by \email{klaus.schliep@gmail.com}. } \description{ Laurasiatherian RNA sequence data } \examples{ data(Laurasiatherian) str(Laurasiatherian) } \keyword{datasets} phangorn/man/cophenetic.networx.Rd0000644000176200001440000000144713201424001016747 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/treedist.R \name{cophenetic.networx} \alias{cophenetic.networx} \alias{cophenetic.splits} \title{Pairwise Distances from a Phylogenetic Network} \usage{ \method{cophenetic}{networx}(x) } \arguments{ \item{x}{an object of class \code{networx}.} } \value{ an object of class \code{dist}, names are set according to the tip labels (as given by the element \code{tip.label} of the argument \code{x}). } \description{ \code{cophenetic.networx} computes the pairwise distances between the pairs of tips from a phylogenetic network using its branch lengths. } \seealso{ \code{\link[stats]{cophenetic}} for the generic function, \code{neighborNet} to construct a network from a distance matrix } \author{ Klaus Schliep } \keyword{manip} phangorn/man/addConfidences.Rd0000644000176200001440000000342013201424001016003 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/networx.R \name{createLabel} \alias{createLabel} \alias{addConfidences} \alias{presenceAbsence} \title{Compare splits and add support values to an object} \usage{ createLabel(x, y, label_y, type = "edge", nomatch = NA) addConfidences(x, y, ...) presenceAbsence(x, y) } \arguments{ \item{x}{an object of class \code{splits}, \code{phylo} or \code{networx}} \item{y}{an object of class \code{splits}, \code{phylo}, \code{multiPhylo} or \code{networx}} \item{label_y}{label of y matched on x. Will be usually of length(as.splits(x)).} \item{type}{should labels returned for edges (in \code{networx}) or splits.} \item{nomatch}{default value if no match between x and y is found.} \item{...}{Further arguments passed to or from other methods.} } \value{ The object \code{x} with added bootstrap / MCMC support values. } \description{ Add support values to a \code{splits}, \code{phylo} or \code{networx} object. } \examples{ data(woodmouse) woodmouse <- phyDat(woodmouse) tmpfile <- normalizePath(system.file("extdata/trees/RAxML_bootstrap.woodmouse", package="phangorn")) boot_trees <- read.tree(tmpfile) dm <- dist.ml(woodmouse) tree <- upgma(dm) nnet <- neighborNet(dm) tree <- addConfidences(tree, boot_trees) nnet <- addConfidences(nnet, boot_trees) plot(tree, show.node.label=TRUE) plot(nnet, "2D", show.edge.label=TRUE) } \references{ Schliep, K., Potts, A. J., Morrison, D. A. and Grimm, G. W. (2017), Intertwining phylogenetic trees and networks. \emph{Methods Ecol Evol}. \bold{8}, 1212--1220. doi:10.1111/2041-210X.12760 } \seealso{ \code{\link{as.splits}}, \code{\link{as.networx}}, \code{\link{RF.dist}}, \code{\link{plot.phylo}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/writeDist.Rd0000644000176200001440000000351413201424001015074 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/distSeq.R \name{writeDist} \alias{writeDist} \alias{write.nexus.dist} \alias{readDist} \alias{unique.dist} \title{Writing and reading distances in phylip and nexus format} \usage{ writeDist(x, file = "", format = "phylip", ...) write.nexus.dist(x, file = "", append = FALSE, upper = FALSE, diag = TRUE, digits = getOption("digits"), taxa = !append) readDist(file) \method{unique}{dist}(x, incomparables, ...) } \arguments{ \item{x}{A \code{dist} object.} \item{file}{A file name.} \item{format}{file format, default is "phylip", only other option so far is "nexus".} \item{\dots}{Further arguments passed to or from other methods.} \item{append}{logical. If TRUE the nexus blocks will be added to a file.} \item{upper}{logical value indicating whether the upper triangle of the distance matrix should be printed.} \item{diag}{logical value indicating whether the diagonal of the distance matrix should be printed.} \item{digits}{passed to format inside of \code{write.nexus.dist}.} \item{taxa}{logical. If TRUE a taxa block is added.} \item{incomparables}{Not used so far.} } \value{ an object of class \code{dist} } \description{ \code{readDist}, \code{writeDist} and \code{write.nexus.dist} are useful to exchange distance matrices with other phylogenetic programs. } \examples{ data(yeast) dm <- dist.ml(yeast) writeDist(dm) write.nexus.dist(dm) } \references{ Maddison, D. R., Swofford, D. L. and Maddison, W. P. (1997) NEXUS: an extensible file format for systematic information. \emph{Systematic Biology}, \bold{46}, 590--621. } \seealso{ To compute distance matrices see \code{\link{dist.ml}} \code{\link[ape]{dist.dna}} and \code{\link{dist.p}} for pairwise polymorphism p-distances } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/dist.p.Rd0000644000176200001440000000620513201424001014317 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/dist.p.R \name{dist.p} \alias{dist.p} \title{Pairwise Polymorphism P-Distances from DNA Sequences} \usage{ dist.p(x, cost = "polymorphism", ignore.indels = TRUE) } \arguments{ \item{x}{a matrix containing DNA sequences; this must be of class "phyDat" (use as.phyDat to convert from DNAbin objects).} \item{cost}{A cost matrix or "polymorphism" for a predefined one.} \item{ignore.indels}{a logical indicating whether gaps are treated as fifth state or not. Warning, each gap site is treated as a characters, so an an indel that spans a number of base positions would be treated as multiple character states.} } \value{ an object of class \code{dist}. } \description{ This function computes a matrix of pairwise uncorrected polymorphism p-distances. Polymorphism p-distances include intra-individual site polymorphisms (2ISPs; e.g. "R") when calculating genetic distances. } \details{ The polymorphism p-distances (Potts et al. 2014) have been developed to analyse intra-individual variant polymorphism. For example, the widely used ribosomal internal transcribed spacer (ITS) region (e.g. Alvarez and Wendel, 2003) consists of 100's to 1000's of units within array across potentially multiple nucleolus organising regions (Bailey et al., 2003; Goeker and Grimm, 2008). This can give rise to intra-individual site polymorphisms (2ISPs) that can be detected from direct-PCR sequencing or cloning . Clone consensus sequences (see Goeker and Grimm, 2008) can be analysed with this function. } \examples{ data(Laurasiatherian) laura <- as.DNAbin(Laurasiatherian) dm <- dist.p(Laurasiatherian, "polymorphism") ######################################################## # Dealing with indel 2ISPs # These can be coded using an "x" in the alignment. Note # that as.character usage in the read.dna() function. ######################################################### cat("3 5", "No305 ATRA-", "No304 ATAYX", "No306 ATAGA", file = "exdna.txt", sep = "\\n") (ex.dna <- read.dna("exdna.txt", format = "sequential", as.character=TRUE)) dat <- phyDat(ex.dna, "USER", levels=unique(as.vector(ex.dna))) dist.p(dat) } \references{ Alvarez, I., and J. F. Wendel. (2003) Ribosomal ITS sequences and plant phylogenetic inference. \emph{ Molecular Phylogenetics and Evolution}, \bold{29}, 417--434. Bailey, C. D., T. G. Carr, S. A. Harris, and C. E. Hughes. (2003) Characterization of angiosperm nrDNA polymorphism, paralogy, and pseudogenes. \emph{Molecular Phylogenetics and Evolution} \bold{29}, 435--455. Goeker, M., and G. Grimm. (2008) General functions to transform associate data to host data, and their use in phylogenetic inference from sequences with intra-individual variability. \emph{BMC Evolutionary Biology}, \bold{8}:86. Potts, A.J., T.A. Hedderson, and G.W. Grimm. (2014) Constructing phylogenies in the presence of intra-individual site polymorphisms (2ISPs) with a focus on the nuclear ribosomal cistron. \emph{Systematic Biology}, \bold{63}, 1--16 } \seealso{ \code{\link[ape]{dist.dna}}, \code{\link[phangorn]{dist.hamming}} } \author{ Klaus Schliep and Alastair Potts } \keyword{cluster} phangorn/man/mast.Rd0000644000176200001440000000233313201424001014060 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/mast.R \name{mast} \alias{mast} \title{Maximum agreement subtree} \usage{ mast(x, y, tree = TRUE, rooted = TRUE) } \arguments{ \item{x}{a tree, i.e. an object of class \code{phylo}.} \item{y}{a tree, i.e. an object of class \code{phylo}.} \item{tree}{a logicical, if TRUE returns a tree other wise the tip labels of the the maximum agreement subtree.} \item{rooted}{logical if TRUE treats trees as rooted otherwise unrooted.} } \value{ \code{mast} returns a vector of the tip labels in the MAST. } \description{ \code{mast} computes the maximum agreement subtree (MAST). } \details{ The code is derived from the code example in Valiente (2009), for the original code see \url{http://www.cs.upc.edu/~valiente/comput-biol/}. The version for the unrooted trees is much slower. } \examples{ tree1 <- rtree(100) tree2 <- rSPR(tree1, 5) tips <- mast(tree1, tree2) } \references{ G. Valiente (2009). \emph{Combinatorial Pattern Matching Algorithms in Computational Biology using Perl and R}. Taylor & Francis/CRC Press } \seealso{ \code{\link{SPR.dist}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} based on code of Gabriel Valiente } \keyword{cluster} phangorn/man/phangorn-package.Rd0000644000176200001440000000270413201424001016323 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/phangorn-package.R \docType{package} \name{phangorn-package} \alias{phangorn-package} \alias{phangorn} \title{Phylogenetic analysis in R} \description{ Phylogenetic analysis in R (Estimation of phylogenetic trees and networks using Maximum Likelihood, Maximum Parsimony, Distance methods & Hadamard conjugation) } \details{ The complete list of functions can be displayed with \code{library(help = phangorn)}. Further information is available in several vignettes. To show the available vignettes in an HTML browser type \code{browseVignettes("phangorn")}. \tabular{ll}{ \code{Trees} \tab Constructing phylogenetic trees (source, pdf) \cr \code{phangorn-specials} \tab Advanced features (source, pdf) \cr \code{Ancestral} \tab Ancestral sequence reconstruction (source, pdf) \cr \code{Networx} \tab Splits and Networx (source, html) \cr } The first vignette (to display type \code{vignette('Trees')}) gives an introduction in phylogenetic analysis with phangorn. The second vignette (phangorn-special) covers more advanced feature like defining special character spaces and things which fit nowhere else. More information on \bold{phangorn} can be found on \url{http://www.phangorn.org}. } \references{ Schliep K.P. (2011) phangorn: Phylogenetic analysis in R. \emph{Bioinformatics}, 27(4) 592-593 } \author{ Klaus Schliep Maintainer: Klaus Schliep } \keyword{package} phangorn/man/SOWH.test.Rd0000644000176200001440000000414713201424001014657 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/SOWH.R \name{SOWH.test} \alias{SOWH.test} \title{Swofford-Olsen-Waddell-Hillis Test} \usage{ SOWH.test(x, n = 100, restricted = list(optNni = FALSE), optNni = TRUE, trace = 1, ...) } \arguments{ \item{x}{an object of class \code{"pml"}.} \item{n}{the number of bootstrap replicates.} \item{restricted}{list of restricted parameter settings.} \item{optNni}{Logical value indicating whether topology gets optimized (NNI).} \item{trace}{Show output during computations.} \item{\dots}{Further arguments passed to \code{"optim.pml"}.} } \value{ an object of class SOWH. That is a list with three elements, one is a matrix containing for each bootstrap replicate the (log-) likelihood of the restricted and unrestricted estimate and two pml objects of the restricted and unrestricted model. } \description{ This function computes the Swofford--Olsen--Waddell--Hillis (SOWH) test, a parametric bootstrap test. The function is computational very demanding and likely to be very slow. } \details{ \code{SOWH.test} performs a parametric bootstrap test to compare two trees. It makes extensive use \code{simSeq} and \code{optim.pml} and can take quite long. } \examples{ # in real analysis use larger n, e.g. 500 preferably more \dontrun{ data(Laurasiatherian) dm <- dist.logDet(Laurasiatherian) tree <- NJ(dm) fit <- pml(tree, Laurasiatherian) fit <- optim.pml(fit, TRUE) set.seed(6) tree <- rNNI(fit$tree, 1) fit <- update(fit, tree = tree) (res <- SOWH.test(fit, n=100)) summary(res) } } \references{ Goldman, N., Anderson, J. P., and Rodrigo, A. G. (2000) Likelihood -based tests of topologies in phylogenetics. \emph{Systematic Biology} \bold{49} 652-670. Swofford, D.L., Olsen, G.J., Waddell, P.J. and Hillis, D.M. (1996) Phylogenetic Inference in Hillis, D.M., Moritz, C. and Mable, B.K. (Eds.) \emph{Molecular Systematics} (2nd ed.) 407-514, Sunderland, MA: Sinauer } \seealso{ \code{\link{pml}}, \code{\link{pmlPart}}, \code{\link{pmlCluster}}, \code{\link{simSeq}}, \code{\link{SH.test}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{models} phangorn/man/pml.Rd0000644000176200001440000002111513201424001013703 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/phylo.R \name{pml.control} \alias{pml.control} \alias{pml} \alias{optim.pml} \title{Likelihood of a tree.} \usage{ pml.control(epsilon = 1e-08, maxit = 10, trace = 1) pml(tree, data, bf = NULL, Q = NULL, inv = 0, k = 1, shape = 1, rate = 1, model = NULL, ...) optim.pml(object, optNni = FALSE, optBf = FALSE, optQ = FALSE, optInv = FALSE, optGamma = FALSE, optEdge = TRUE, optRate = FALSE, optRooted = FALSE, control = pml.control(epsilon = 1e-08, maxit = 10, trace = 1L), model = NULL, rearrangement = ifelse(optNni, "NNI", "none"), subs = NULL, ratchet.par = list(iter = 20L, maxit = 100L, prop = 1/3), ...) } \arguments{ \item{epsilon}{Stop criterion for optimisation (see details).} \item{maxit}{Maximum number of iterations (see details).} \item{trace}{Show output during optimization (see details).} \item{tree}{A phylogenetic \code{tree}, object of class \code{phylo}.} \item{data}{An alignment, object of class \code{phyDat}.} \item{bf}{Base frequencies.} \item{Q}{A vector containing the lower triangular part of the rate matrix.} \item{inv}{Proportion of invariable sites.} \item{k}{Number of intervals of the discrete gamma distribution.} \item{shape}{Shape parameter of the gamma distribution.} \item{rate}{Rate.} \item{model}{allows to choose an amino acid models or nucleotide model, see details.} \item{\dots}{Further arguments passed to or from other methods.} \item{object}{An object of class \code{pml}.} \item{optNni}{Logical value indicating whether toplogy gets optimized (NNI).} \item{optBf}{Logical value indicating whether base frequencies gets optimized.} \item{optQ}{Logical value indicating whether rate matrix gets optimized.} \item{optInv}{Logical value indicating whether proportion of variable size gets optimized.} \item{optGamma}{Logical value indicating whether gamma rate parameter gets optimized.} \item{optEdge}{Logical value indicating the edge lengths gets optimized.} \item{optRate}{Logical value indicating the overall rate gets optimized.} \item{optRooted}{Logical value indicating if the edge lengths of a rooted tree get optimized.} \item{control}{A list of parameters for controlling the fitting process.} \item{rearrangement}{type of tree tree rearrangements to perform, one of "none", "NNI", "stochastic" or "ratchet"} \item{subs}{A (integer) vector same length as Q to specify the optimization of Q} \item{ratchet.par}{search parameter for stochastic search} } \value{ \code{pml} or \code{optim.pml} return a list of class \code{pml}, some are useful for further computations like \item{tree}{the phylogenetic tree.} \item{data}{the alignment.} \item{logLik}{Log-likelihood of the tree.} \item{siteLik}{Site log-likelihoods.} \item{weight}{Weight of the site patterns.} } \description{ \code{pml} computes the likelihood of a phylogenetic tree given a sequence alignment and a model. \code{optim.pml} optimizes the different model parameters. } \details{ The topology search uses a nearest neighbor interchange (NNI) and the implementation is similar to phyML. The option model in pml is only used for amino acid models. The option model defines the nucleotide model which is getting optimised, all models which are included in modeltest can be chosen. Setting this option (e.g. "K81" or "GTR") overrules options optBf and optQ. Here is a overview how to estimate different phylogenetic models with \code{pml}: \tabular{lll}{ model \tab optBf \tab optQ \cr Jukes-Cantor \tab FALSE \tab FALSE \cr F81 \tab TRUE \tab FALSE \cr symmetric \tab FALSE \tab TRUE \cr GTR \tab TRUE \tab TRUE } Via model in optim.pml the following nucleotide models can be specified: JC, F81, K80, HKY, TrNe, TrN, TPM1, K81, TPM1u, TPM2, TPM2u, TPM3, TPM3u, TIM1e, TIM1, TIM2e, TIM2, TIM3e, TIM3, TVMe, TVM, SYM and GTR. These models are specified as in Posada (2008). So far 17 amino acid models are supported ("WAG", "JTT", "LG", "Dayhoff", "cpREV", "mtmam", "mtArt", "MtZoa", "mtREV24", "VT","RtREV", "HIVw", "HIVb", "FLU", "Blossum62", "Dayhoff_DCMut" and "JTT_DCMut") and additionally rate matrices and amino acid frequencies can be supplied. It is also possible to estimate codon models (e.g. YN98), for details see also the chapter in vignette("phangorn-specials"). If the option 'optRooted' is set to TRUE than the edge lengths of rooted tree are optimized. The tree has to be rooted and by now ultrametric! Optimising rooted trees is generally much slower. \code{pml.control} controls the fitting process. \code{epsilon} and \code{maxit} are only defined for the most outer loop, this affects \code{pmlCluster}, \code{pmlPart} and \code{pmlMix}. \code{epsilon} is defined as (logLik(k)-logLik(k+1))/logLik(k+1), this seems to be a good heuristics which works reasonably for small and large trees or alignments. If \code{trace} is set to zero than no out put is shown, if functions are called internally than the trace is decreased by one, so a higher of trace produces more feedback. If \code{rearrangement} is set to \code{stochastic} a stochastic search algorithm similar to Nguyen et al. (2015). and for \code{ratchet} the likelihood ratchet as in Vos (2003). This should helps often to find better tree topologies, especially for larger trees. } \examples{ example(NJ) # Jukes-Cantor (starting tree from NJ) fitJC <- pml(tree, Laurasiatherian) # optimize edge length parameter fitJC <- optim.pml(fitJC) fitJC \dontrun{ # search for a better tree using NNI rearrangements fitJC <- optim.pml(fitJC, optNni=TRUE) fitJC plot(fitJC$tree) # JC + Gamma + I - model fitJC_GI <- update(fitJC, k=4, inv=.2) # optimize shape parameter + proportion of invariant sites fitJC_GI <- optim.pml(fitJC_GI, optGamma=TRUE, optInv=TRUE) # GTR + Gamma + I - model fitGTR <- optim.pml(fitJC_GI, rearrangement = "stochastic", optGamma=TRUE, optInv=TRUE, model="GTR") } # 2-state data (RY-coded) dat <- acgt2ry(Laurasiatherian) fit2ST <- pml(tree, dat) fit2ST <- optim.pml(fit2ST,optNni=TRUE) fit2ST # show some of the methods available for class pml methods(class="pml") } \references{ Felsenstein, J. (1981) Evolutionary trees from DNA sequences: a maximum likelihood approach. \emph{Journal of Molecular Evolution}, \bold{17}, 368--376. Felsenstein, J. (2004). \emph{Inferring Phylogenies}. Sinauer Associates, Sunderland. Yang, Z. (2006). \emph{Computational Molecular evolution}. Oxford University Press, Oxford. Adachi, J., P. J. Waddell, W. Martin, and M. Hasegawa (2000) Plastid genome phylogeny and a model of amino acid substitution for proteins encoded by chloroplast DNA. \emph{Journal of Molecular Evolution}, \bold{50}, 348--358 Rota-Stabelli, O., Z. Yang, and M. Telford. (2009) MtZoa: a general mitochondrial amino acid substitutions model for animal evolutionary studies. \emph{Mol. Phyl. Evol}, \bold{52(1)}, 268--72 Whelan, S. and Goldman, N. (2001) A general empirical model of protein evolution derived from multiple protein families using a maximum-likelihood approach. \emph{Molecular Biology and Evolution}, \bold{18}, 691--699 Le, S.Q. and Gascuel, O. (2008) LG: An Improved, General Amino-Acid Replacement Matrix \emph{Molecular Biology and Evolution}, \bold{25(7)}, 1307--1320 Yang, Z., R. Nielsen, and M. Hasegawa (1998) Models of amino acid substitution and applications to Mitochondrial protein evolution. \emph{Molecular Biology and Evolution}, \bold{15}, 1600--1611 Abascal, F., D. Posada, and R. Zardoya (2007) MtArt: A new Model of amino acid replacement for Arthropoda. \emph{Molecular Biology and Evolution}, \bold{24}, 1--5 Kosiol, C, and Goldman, N (2005) Different versions of the Dayhoff rate matrix - \emph{Molecular Biology and Evolution}, \bold{22}, 193--199 L.-T. Nguyen, H.A. Schmidt, A. von Haeseler, and B.Q. Minh (2015) IQ-TREE: A fast and effective stochastic algorithm for estimating maximum likelihood phylogenies. \emph{Molecular Biology and Evolution}, \bold{32}, 268--274. Vos, R. A. (2003) Accelerated Likelihood Surface Exploration: The Likelihood Ratchet. \emph{Systematic Biology}, \bold{52(3)}, 368--373 Yang, Z., and R. Nielsen (1998) Synonymous and nonsynonymous rate variation in nuclear genes of mammals. \emph{Journal of Molecular Evolution}, \bold{46}, 409-418. Lewis, P.O. (2001) A likelihood approach to estimating phylogeny from discrete morphological character data. \emph{Systematic Biology} \bold{50}, 913--925. } \seealso{ \code{\link{bootstrap.pml}}, \code{\link{modelTest}}, \code{\link{pmlPart}}, \code{\link{pmlMix}}, \code{\link{plot.phylo}}, \code{\link{SH.test}}, \code{\link{ancestral.pml}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/neighborNet.Rd0000644000176200001440000000227413201424001015364 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/neighborNet.R \name{neighborNet} \alias{neighborNet} \title{Computes a neighborNet from a distance matrix} \usage{ neighborNet(x, ord = NULL) } \arguments{ \item{x}{a distance matrix.} \item{ord}{a circular ordering.} } \value{ \code{neighborNet} returns an object of class networx. } \description{ Computes a neighborNet, i.e. an object of class \code{networx} from a distance matrix. } \details{ \code{neighborNet} is still experimental. The cyclic ordering sometimes differ from the SplitsTree implementation, the \emph{ord} argument can be used to enforce a certain circular ordering. } \examples{ data(yeast) dm <- dist.ml(yeast) nnet <- neighborNet(dm) plot(nnet, "2D") } \references{ Bryant, D. & Moulton, V. (2004) Neighbor-Net: An Agglomerative Method for the Construction of Phylogenetic Networks. \emph{Molecular Biology and Evolution}, 2004, \bold{21}, 255-265 } \seealso{ \code{\link{splitsNetwork}}, \code{\link{consensusNet}}, \code{\link{plot.networx}}, \code{\link{lento}}, \code{\link{cophenetic.networx}}, \code{\link{distanceHadamard}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{hplot} phangorn/man/midpoint.Rd0000644000176200001440000000332613201424001014742 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/treeManipulation.R \name{getRoot} \alias{getRoot} \alias{midpoint} \alias{midpoint.phylo} \alias{midpoint.multiPhylo} \alias{pruneTree} \title{Tree manipulation} \usage{ getRoot(tree) midpoint(tree, node.labels = "support", ...) \method{midpoint}{phylo}(tree, node.labels = "support", ...) \method{midpoint}{multiPhylo}(tree, node.labels = "support", ...) pruneTree(tree, ..., FUN = ">=") } \arguments{ \item{tree}{an object of class \code{phylo}} \item{node.labels}{are nodel labels 'support' values, 'label' or should be 'deleted'} \item{\dots}{further arguments, passed to other methods.} \item{FUN}{a function evaluated on the nodelabels, result must be logical.} } \value{ \code{pruneTree} and \code{midpoint} a tree. \code{getRoot} returns the root node. } \description{ \code{midpoint} performs midpoint rooting of a tree. \code{pruneTree} produces a consensus tree. } \details{ \code{pruneTree} prunes back a tree and produces a consensus tree, for trees already containing nodelabels. It assumes that nodelabels are numerical or character that allows conversion to numerical, it uses as.numeric(as.character(tree$node.labels)) to convert them. \code{midpoint} so far does not transform node.labels properly. } \examples{ tree <- unroot(rtree(10)) tree$node.label <- c("", round(runif(tree$Nnode-1), 3)) tree2 <- midpoint(tree) tree3 <- pruneTree(tree, .5) par(mfrow = c(3,1)) plot(tree, show.node.label=TRUE) plot(tree2, show.node.label=TRUE) plot(tree3, show.node.label=TRUE) } \seealso{ \code{\link[ape]{consensus}}, \code{\link[ape]{root}}, \code{\link[ape]{di2multi}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/coalSpeciesTree.Rd0000644000176200001440000000222513201424001016166 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Coalescent.R \name{coalSpeciesTree} \alias{coalSpeciesTree} \title{Species Tree} \usage{ coalSpeciesTree(tree, X = NULL, sTree = NULL) } \arguments{ \item{tree}{an object of class \code{multiPhylo}} \item{X}{A \code{phyDat} object to define which individual belongs to which species.} \item{sTree}{A species tree which fixes the topology.} } \value{ The function returns an object of class \code{phylo}. } \description{ \code{coalSpeciesTree} estimates species trees and can handle multiple individuals per species. } \details{ \code{coalSpeciesTree} estimates a single linkage tree as suggested by Liu et al. (2010) from the element wise minima of the cophenetic matrices of the gene trees. It extends \code{speciesTree} in ape as it allows that have several individuals per gene tree. } \references{ Liu, L., Yu, L. and Pearl, D. K. (2010) Maximum tree: a consistent estimator of the species tree. \emph{Journal of Mathematical Biology}, \bold{60}, 95--106. } \seealso{ \code{\link{speciesTree}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} Emmanuel Paradies } \keyword{cluster} phangorn/man/splitsNetwork.Rd0000644000176200001440000000372713201424001016014 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/networx.R \name{splitsNetwork} \alias{splitsNetwork} \title{Phylogenetic Network} \usage{ splitsNetwork(dm, splits = NULL, gamma = 0.1, lambda = 1e-06, weight = NULL) } \arguments{ \item{dm}{A distance matrix.} \item{splits}{a splits object, containing all splits to consider, otherwise all possible splits are used} \item{gamma}{penalty value for the L1 constraint.} \item{lambda}{penalty value for the L2 constraint.} \item{weight}{a vector of weights.} } \value{ \code{splitsNetwork} returns a splits object with a matrix added. The first column contains the indices of the splits, the second column an unconstrained fit without penalty terms and the third column the constrained fit. } \description{ \code{splitsNetwork} estimates weights for a splits graph from a distance matrix. } \details{ \code{splitsNetwork} fits non-negative least-squares phylogenetic networks using L1 (LASSO), L2(ridge regression) constraints. The function minimizes the penalized least squares \deqn{\beta = min \sum(dm - X\beta)^2 + \lambda \|\beta \|^2_2 }{ beta = sum(dm - X*beta)^2 + lambda |beta|^2_2 } with respect to \deqn{\|\beta \|_1 <= \gamma, \beta >= 0}{ |beta|_1 = gamma, beta >= 0} where \eqn{X} is a design matrix constructed with \code{designSplits}. External edges are fitted without L1 or L2 constraints. } \examples{ data(yeast) dm <- dist.ml(yeast) fit <- splitsNetwork(dm) net <- as.networx(fit) plot(net, "2D") write.nexus.splits(fit) } \references{ Efron, Hastie, Johnstone and Tibshirani (2004) Least Angle Regression (with discussion) \emph{Annals of Statistics} \bold{32(2)}, 407--499 K. P. Schliep (2009). Some Applications of statistical phylogenetics (PhD Thesis) } \seealso{ \code{\link[phangorn]{distanceHadamard}}, \code{\link[phangorn]{designTree}} \code{\link[phangorn]{consensusNet}}, \code{\link[phangorn]{plot.networx}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/phyDat.Rd0000644000176200001440000001272013201424001014346 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/phyDat.R \name{phyDat} \alias{phyDat} \alias{as.phyDat.character} \alias{as.phyDat.data.frame} \alias{as.phyDat.matrix} \alias{as.MultipleAlignment} \alias{as.MultipleAlignment.phyDat} \alias{cbind.phyDat} \alias{c.phyDat} \alias{acgt2ry} \alias{removeUndeterminedSites} \alias{phyDat2MultipleAlignment} \alias{dna2codon} \alias{codon2dna} \alias{as.phyDat} \alias{as.phyDat.factor} \alias{as.phyDat.DNAbin} \alias{as.phyDat.alignment} \alias{phyDat2alignment} \alias{as.phyDat.MultipleAlignment} \alias{as.character.phyDat} \alias{as.data.frame.phyDat} \alias{as.DNAbin.phyDat} \alias{as.AAbin.phyDat} \alias{write.phyDat} \alias{read.phyDat} \alias{baseFreq} \alias{subset.phyDat} \alias{unique.phyDat} \alias{allSitePattern} \alias{genlight2phyDat} \alias{image.phyDat} \title{Conversion among Sequence Formats} \usage{ phyDat(data, type = "DNA", levels = NULL, return.index = TRUE, ...) dna2codon(x) codon2dna(x) as.phyDat(x, ...) \method{as.phyDat}{factor}(x, ...) \method{as.phyDat}{DNAbin}(x, ...) \method{as.phyDat}{alignment}(x, type = "DNA", ...) phyDat2alignment(x) \method{as.phyDat}{MultipleAlignment}(x, ...) \method{as.character}{phyDat}(x, allLevels = TRUE, ...) \method{as.data.frame}{phyDat}(x, ...) \method{as.DNAbin}{phyDat}(x, ...) \method{as.AAbin}{phyDat}(x, ...) write.phyDat(x, file, format = "phylip", colsep = "", nbcol = -1, ...) read.phyDat(file, format = "phylip", type = "DNA", ...) baseFreq(obj, freq = FALSE, all = FALSE, drop.unused.levels = FALSE) \method{subset}{phyDat}(x, subset, select, site.pattern = TRUE, ...) \method{unique}{phyDat}(x, incomparables = FALSE, identical = TRUE, ...) allSitePattern(n, levels = c("a", "c", "g", "t"), names = NULL) genlight2phyDat(x, ambiguity = NA) \method{image}{phyDat}(x, ...) } \arguments{ \item{data}{An object containing sequences.} \item{type}{Type of sequences ("DNA", "AA", "CODON" or "USER").} \item{levels}{Level attributes.} \item{return.index}{If TRUE returns a index of the site patterns.} \item{...}{further arguments passed to or from other methods.} \item{x}{An object containing sequences.} \item{allLevels}{return original data.} \item{file}{A file name.} \item{format}{File format of the sequence alignment (see details). Several popular formats are supported: "phylip", "interleaved", "sequential", "clustal", "fasta" or "nexus", or any unambiguous abbreviation of these.} \item{colsep}{a character used to separate the columns (a single space by default).} \item{nbcol}{a numeric specifying the number of columns per row (-1 by default); may be negative implying that the nucleotides are printed on a single line.} \item{obj}{as object of class phyDat} \item{freq}{logical, if 'TRUE', frequencies or counts are returned otherwise proportions} \item{all}{all a logical; if all = TRUE, all counts of bases, ambiguous codes, missing data, and alignment gaps are returned as defined in the contrast.} \item{drop.unused.levels}{logical, drop unused levels} \item{subset}{a subset of taxa.} \item{select}{a subset of characters.} \item{site.pattern}{select site pattern or sites.} \item{incomparables}{for compatibility with unique.} \item{identical}{if TRUE (default) sequences have to be identical, if FALSE sequences are considered duplicates if distance between sequences is zero (happens frequently with ambiguous sites).} \item{n}{Number of sequences.} \item{names}{Names of sequences.} \item{ambiguity}{character for ambiguous character and no contrast is provided.} } \value{ The functions return an object of class \code{phyDat}. } \description{ These functions transform several DNA formats into the \code{phyDat} format. \code{allSitePattern} generates an alignment of all possible site patterns. } \details{ If \code{type} "USER" a vector has to be give to \code{levels}. For example c("a", "c", "g", "t", "-") would create a data object that can be used in phylogenetic analysis with gaps as fifth state. There is a more detailed example for specifying "USER" defined data formats in the vignette "phangorn-specials". \code{allSitePattern} returns all possible site patterns and can be useful in simulation studies. For further details see the vignette phangorn-specials. \code{write.phyDat} calls the function write.dna or write.nexus.data and \code{read.phyDat} calls the function \code{read.dna}, \code{read.aa} or \code{read.nexus.data} see for more details over there. You may import data directly with \code{\link[ape]{read.dna}} or \code{\link[ape]{read.nexus.data}} and convert the data to class phyDat. The generic function \code{c} can be used to to combine sequences and \code{unique} to get all unique sequences or unique haplotypes. \code{acgt2ry} converts a \code{phyDat} object of nucleotides into an binary ry-coded dataset. } \examples{ data(Laurasiatherian) class(Laurasiatherian) Laurasiatherian baseFreq(Laurasiatherian) baseFreq(Laurasiatherian, all=TRUE) subset(Laurasiatherian, subset=1:5) # transform into old ape format LauraChar <- as.character(Laurasiatherian) # and back Laura <- phyDat(LauraChar) all.equal(Laurasiatherian, Laura) allSitePattern(5) } \seealso{ \code{\link{DNAbin}}, \code{\link{as.DNAbin}}, \code{\link{read.dna}}, \code{\link{read.aa}}, \code{\link{read.nexus.data}} and the chapter 1 in the \code{vignette("phangorn-specials", package="phangorn")} and the example of \code{\link{pmlMix}} for the use of \code{allSitePattern} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/bab.Rd0000644000176200001440000000402413201424001013637 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/fitch.R \name{bab} \alias{bab} \alias{BranchAndBound} \title{Branch and bound for finding all most parsimonious trees} \usage{ bab(data, tree = NULL, trace = 1, ...) } \arguments{ \item{data}{an object of class phyDat.} \item{tree}{a phylogenetic tree an object of class phylo, otherwise a pratchet search is performed.} \item{trace}{defines how much information is printed during optimisation.} \item{\dots}{Further arguments passed to or from other methods} } \value{ \code{bab} returns all most parsimonious trees in an object of class \code{multiPhylo}. } \description{ \code{bab} finds all most parsimonious trees. } \details{ This implementation is very slow and depending on the data may take very long time. In the worst case all (2n-5)!! possible trees have to be examined. For 10 species there are already 2027025 tip-labelled unrooted trees. It only uses some basic strategies to find a lower and upper bounds similar to penny from phylip. It uses a very basic heuristic approach of MinMax Squeeze (Holland et al. 2005) to improve the lower bound. On the positive side \code{bab} is not like many other implementations restricted to binary or nucleotide data. } \examples{ data(yeast) dfactorial(11) # choose only the first two genes gene12 <- subset(yeast, , 1:3158, site.pattern=FALSE) trees <- bab(gene12) } \references{ Hendy, M.D. and Penny D. (1982) Branch and bound algorithms to determine minimal evolutionary trees. \emph{Math. Biosc.} \bold{59}, 277-290 Holland, B.R., Huber, K.T. Penny, D. and Moulton, V. (2005) The MinMax Squeeze: Guaranteeing a Minimal Tree for Population Data, \emph{Molecular Biology and Evolution}, \bold{22}, 235--242 White, W.T. and Holland, B.R. (2011) Faster exact maximum parsimony search with XMP. \emph{Bioinformatics}, \bold{27(10)},1359--1367 } \seealso{ \code{\link{pratchet}}, \code{\link{dfactorial}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} based on work on Liam Revell } \keyword{cluster} \keyword{~kwd2} phangorn/man/phangorn-internal.Rd0000644000176200001440000000047113236456355016574 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/phangorn-package.R \name{phangorn-internal} \alias{phangorn-internal} \alias{threshStateC} \alias{coords} \alias{map_duplicates} \title{Internal phangorn Functions} \description{ Internal \pkg{phangorn} functions. } \keyword{internal} phangorn/man/designTree.Rd0000644000176200001440000000364613201424001015215 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/distTree.R \name{designTree} \alias{designTree} \alias{nnls.tree} \alias{nnls.phylo} \alias{nnls.splits} \alias{nnls.networx} \alias{designSplits} \title{Compute a design matrix or non-negative LS} \usage{ designTree(tree, method = "unrooted", sparse = FALSE, ...) nnls.tree(dm, tree, rooted = FALSE, trace = 1) nnls.phylo(x, dm, rooted = FALSE, trace = 0) nnls.splits(x, dm, trace = 0) nnls.networx(x, dm) designSplits(x, splits = "all", ...) } \arguments{ \item{tree}{an object of class \code{phylo}} \item{method}{design matrix for an "unrooted" or "rooted" ultrametric tree.} \item{sparse}{return a sparse design matrix.} \item{\dots}{further arguments, passed to other methods.} \item{dm}{a distance matrix.} \item{rooted}{compute a "rooted" or "unrooted" tree.} \item{trace}{defines how much information is printed during optimisation.} \item{x}{number of taxa.} \item{splits}{one of "all", "star".} } \value{ \code{nnls.tree} return a tree, i.e. an object of class \code{phylo}. \code{designTree} and \code{designSplits} a matrix, possibly sparse. } \description{ \code{nnls.tree} estimates the branch length using non-negative least squares given a tree and a distance matrix. \code{designTree} and \code{designSplits} compute design matrices for the estimation of edge length of (phylogenetic) trees using linear models. For larger trees a sparse design matrix can save a lot of memory. %\code{designTree} also computes a contrast matrix if the method is "rooted". } \examples{ example(NJ) dm <- as.matrix(dm) y <- dm[lower.tri(dm)] X <- designTree(tree) lm(y~X-1) # avoids negative edge weights tree2 = nnls.tree(dm, tree) } \seealso{ \code{\link[ape]{fastme}}, \code{\link[phangorn]{distanceHadamard}}, \code{\link[phangorn]{splitsNetwork}}, \code{\link[phangorn]{upgma}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/densiTree.Rd0000644000176200001440000001023413201424001015035 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/Densi.R \name{densiTree} \alias{densiTree} \title{Plots a densiTree.} \usage{ densiTree(x, type = "cladogram", alpha = 1/length(x), consensus = NULL, direction = "rightwards", optim = FALSE, scaleX = FALSE, col = 1, width = 1, lty = 1, cex = 0.8, font = 3, tip.color = 1, adj = 0, srt = 0, underscore = FALSE, label.offset = 0, scale.bar = TRUE, jitter = list(amount = 0, random = TRUE), ...) } \arguments{ \item{x}{an object of class \code{multiPhylo}.} \item{type}{a character string specifying the type of phylogeny, so far "cladogram" (default) or "phylogram" are supported.} \item{alpha}{parameter for semi-transparent colors.} \item{consensus}{A tree or character vector which is used to define the order of the tip labels.} \item{direction}{a character string specifying the direction of the tree. Four values are possible: "rightwards" (the default), "leftwards", "upwards", and "downwards".} \item{optim}{not yet used.} \item{scaleX}{scale trees to have identical heights.} \item{col}{a skalar or vector giving the colours used to draw the edges for each plotted phylogeny. These are taken to be in the same order than input trees x. If fewer colours are given than the number of trees, then the colours are recycled.} \item{width}{edge width.} \item{lty}{line type.} \item{cex}{a numeric value giving the factor scaling of the tip labels.} \item{font}{an integer specifying the type of font for the labels: 1 (plain text), 2 (bold), 3 (italic, the default), or 4 (bold italic).} \item{tip.color}{color of the tip labels.} \item{adj}{a numeric specifying the justification of the text strings of the labels: 0 (left-justification), 0.5 (centering), or 1 (right-justification).} \item{srt}{a numeric giving how much the labels are rotated in degrees.} \item{underscore}{a logical specifying whether the underscores in tip labels should be written as spaces (the default) or left as are (if TRUE).} \item{label.offset}{a numeric giving the space between the nodes and the tips of the phylogeny and their corresponding labels.} \item{scale.bar}{a logical specifying whether add scale.bar to the plot.} \item{jitter}{allows to shift treees. a list with two arguments: the amount of jitter and random or equally spaced (see details below)} \item{\dots}{further arguments to be passed to plot.} } \description{ An R function to plot trees similar to those produced by DensiTree. } \details{ If no consensus tree is provided \code{densiTree} computes a consensus tree, and if the input trees have different labels a mrp.supertree as a backbone. This should avoid too many unnecessary crossings of edges. Trees should be rooted, other wise the output may not be visually pleasing. \code{jitter} shifts trees a bit so that they are not exactly on top of each other. If \code{amount == 0}, it is ignored. If \code{random=TRUE} the result of the perputation is \code{runif(n, -amount, amount)}, otherwise \code{seq(-amount, amount, length=n)}, where \code{n <- length(x)}. } \examples{ data(Laurasiatherian) set.seed(1) bs <- bootstrap.phyDat(Laurasiatherian, FUN = function(x) upgma(dist.hamming(x)), bs=25) # cladogram nice to show topological differences densiTree(bs, type="cladogram", col="blue") densiTree(bs, type="phylogram", col="green", direction="downwards", width=2) # plot five trees slightly shifted, no transparent color densiTree(bs[1:5], type="phylogram", col=1:5, width=2, jitter= list(amount=.3, random=FALSE), alpha=1) \dontrun{ # phylograms are nice to show different age estimates require(PhyloOrchard) data(BinindaEmondsEtAl2007) BinindaEmondsEtAl2007 <- .compressTipLabel(BinindaEmondsEtAl2007) densiTree(BinindaEmondsEtAl2007, type="phylogram", col="red") } } \references{ densiTree is inspired from the great \href{https://www.cs.auckland.ac.nz/~remco/DensiTree}{DensiTree} program of Remco Bouckaert. Remco R. Bouckaert (2010) DensiTree: making sense of sets of phylogenetic trees \emph{Bioinformatics}, \bold{26 (10)}, 1372-1373. } \seealso{ \code{\link{plot.phylo}}, \code{\link{plot.networx}}, \code{\link{jitter}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{plot} phangorn/man/nni.Rd0000644000176200001440000000224613201424001013703 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/treeRearrangement.R \name{nni} \alias{nni} \alias{rNNI} \alias{rSPR} \title{Tree rearrangements.} \usage{ nni(tree) rNNI(tree, moves = 1, n = length(moves)) rSPR(tree, moves = 1, n = length(moves), k = NULL) } \arguments{ \item{tree}{A phylogenetic \code{tree}, object of class \code{phylo}.} \item{moves}{Number of tree rearrangements to be transformed on a tree. Can be a vector} \item{n}{Number of trees to be simulated.} \item{k}{If defined just SPR of distance k are performed.} } \value{ an object of class multiPhylo. } \description{ \code{nni} returns a list of all trees which are one nearest neighbor interchange away. \code{rNNI} and \code{rSPR} are two methods which simulate random trees which are a specified number of rearrangement apart from the input tree. Both methods assume that the input tree is bifurcating. These methods may be useful in simulation studies. } \examples{ tree <- unroot(rtree(20)) trees1 <- nni(tree) trees2 <- rSPR(tree, 2, 10) } \seealso{ \code{\link{allTrees}}, \code{\link{SPR.dist}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/hadamard.Rd0000644000176200001440000000472713201424001014666 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/hadamard.R \name{hadamard} \alias{hadamard} \alias{fhm} \alias{h4st} \alias{h2st} \title{Hadamard Matrices and Fast Hadamard Multiplication} \usage{ hadamard(x) fhm(v) h4st(obj, levels = c("a", "c", "g", "t")) h2st(obj, eps = 0.001) } \arguments{ \item{x}{a vector of length \eqn{2^n}, where n is an integer.} \item{v}{a vector of length \eqn{2^n}, where n is an integer.} \item{obj}{a data.frame or character matrix, typical a sequence alignment.} \item{levels}{levels of the sequences.} \item{eps}{Threshold value for splits.} } \value{ \code{hadamard} returns a Hadamard matrix. \code{fhm} returns the fast Hadamard multiplication. } \description{ A collection of functions to perform Hadamard conjugation. %Hv of a Hadamard matrix H with a vector v using fast Hadamard multiplication. } \details{ \code{h2st} and \code{h4st} perform Hadamard conjugation for 2-state (binary, RY-coded) or 4-state (DNA/RNA) data. \code{write.nexus.splits} writes splits returned from \code{h2st} or \code{\link[phangorn]{distanceHadamard}} to a nexus file, which can be processed by Spectronet or Splitstree. } \examples{ H <- hadamard(3) v <- 1:8 H \%*\% v fhm(v) data(yeast) # RY-coding dat_ry <- acgt2ry(yeast) fit2 <- h2st(dat_ry) lento(fit2) # write.nexus.splits(fit2, file = "test.nxs") # read this file into Spectronet or Splitstree to show the network \dontrun{ dat <- as.character(yeast) dat4 <- phyDat(dat, type="USER", levels=c("a","c", "g", "t"), ambiguity=NULL) fit4 <- h4st(dat4) par(mfrow=c(3,1)) lento(fit4[[1]], main="Transversion") lento(fit4[[2]], main="Transition 1") lento(fit4[[3]], main="Transition 2") } } \references{ Hendy, M.D. (1989). The relationship between simple evolutionary tree models and observable sequence data. \emph{Systematic Zoology}, \bold{38} 310--321. Hendy, M. D. and Penny, D. (1993). Spectral Analysis of Phylogenetic Data. \emph{Journal of Classification}, \bold{10}, 5--24. Hendy, M. D. (2005). Hadamard conjugation: an analytical tool for phylogenetics. In O. Gascuel, editor, \emph{Mathematics of evolution and phylogeny}, Oxford University Press, Oxford Waddell P. J. (1995). Statistical methods of phylogenetic analysis: Including hadamard conjugation, LogDet transforms, and maximum likelihood. \emph{PhD thesis}. } \seealso{ \code{\link{distanceHadamard}}, \code{\link{lento}}, \code{\link{plot.networx}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/dist.hamming.Rd0000644000176200001440000000532013201424001015475 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/distSeq.R \name{dist.hamming} \alias{dist.hamming} \alias{dist.ml} \alias{dist.logDet} \title{Pairwise Distances from Sequences} \usage{ dist.hamming(x, ratio = TRUE, exclude = "none") dist.ml(x, model = "JC69", exclude = "none", bf = NULL, Q = NULL, k = 1L, shape = 1, ...) dist.logDet(x) } \arguments{ \item{x}{An object of class \code{phyDat}} \item{ratio}{Compute uncorrected ('p') distance or character difference.} \item{exclude}{One of "none", "all", "pairwise" indicating whether to delete the sites with missing data (or ambiguous states). The default is handle missing data as in pml.} \item{model}{One of "JC69", "F81" or one of 17 amino acid models see details.} \item{bf}{A vector of base frequencies.} \item{Q}{A vector containing the lower triangular part of the rate matrix.} \item{k}{Number of intervals of the discrete gamma distribution.} \item{shape}{Shape parameter of the gamma distribution.} \item{\dots}{Further arguments passed to or from other methods.} } \value{ an object of class \code{dist} } \description{ \code{dist.hamming}, \code{dist.ml} and \code{dist.logDet} compute pairwise distances for an object of class \code{phyDat}. \code{dist.ml} uses DNA / AA sequences to compute distances under different substitution models. } \details{ So far 17 amino acid models are supported ("WAG", "JTT", "LG", "Dayhoff", "cpREV", "mtmam", "mtArt", "MtZoa", "mtREV24", "VT","RtREV", "HIVw", "HIVb", "FLU", "Blossum62", "Dayhoff_DCMut" and "JTT_DCMut") and additional rate matrices and frequencies can be supplied. The "F81" model uses empirical base frequencies, the "JC69" equal base frequencies. This is even the case if the data are not nucleotides. } \examples{ data(Laurasiatherian) dm1 <- dist.hamming(Laurasiatherian) tree1 <- NJ(dm1) dm2 <- dist.logDet(Laurasiatherian) tree2 <- NJ(dm2) treedist(tree1,tree2) # JC model dm3 <- dist.ml(Laurasiatherian) tree3 <- NJ(dm3) treedist(tree1,tree3) # F81 + Gamma dm4 <- dist.ml(Laurasiatherian, model="F81", k=4, shape=.4) tree4 <- NJ(dm4) treedist(tree1,tree4) treedist(tree3,tree4) } \references{ Lockhart, P. J., Steel, M. A., Hendy, M. D. and Penny, D. (1994) Recovering evolutionary trees under a more realistic model of sequence evolution. \emph{Molecular Biology and Evolution}, \bold{11}, 605--602. Jukes TH and Cantor CR (1969). \emph{Evolution of Protein Molecules}. New York: Academic Press. 21--132. } \seealso{ For more distance methods for nucleotide data see \code{\link[ape]{dist.dna}} and \code{\link{dist.p}} for pairwise polymorphism p-distances. \code{\link{writeDist}} for export and import distances. } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/allTrees.Rd0000644000176200001440000000141513201424001014667 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/treeManipulation.R \name{allTrees} \alias{allTrees} \title{Compute all trees topologies.} \usage{ allTrees(n, rooted = FALSE, tip.label = NULL) } \arguments{ \item{n}{Number of tips (<=10).} \item{rooted}{Rooted or unrooted trees (default: rooted).} \item{tip.label}{Tip labels.} } \value{ an object of class \code{multiPhylo}. } \description{ \code{allTrees} computes all tree topologies for rooted or unrooted trees with up to 10 tips. \code{allTrees} returns bifurcating trees. } \examples{ trees <- allTrees(5) par(mfrow = c(3,5)) for(i in 1:15)plot(trees[[i]]) } \seealso{ \code{\link[ape]{rtree}}, \code{\link{nni}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/parsimony.Rd0000644000176200001440000000700113201424001015132 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/fitch.R, R/parsimony.R \name{fitch} \alias{fitch} \alias{random.addition} \alias{parsimony} \alias{sankoff} \alias{optim.parsimony} \alias{pratchet} \alias{acctran} \title{Parsimony tree.} \usage{ fitch(tree, data, site = "pscore") random.addition(data, method = "fitch") parsimony(tree, data, method = "fitch", ...) sankoff(tree, data, cost = NULL, site = "pscore") optim.parsimony(tree, data, method = "fitch", cost = NULL, trace = 1, rearrangements = "SPR", ...) pratchet(data, start = NULL, method = "fitch", maxit = 1000, k = 10, trace = 1, all = FALSE, rearrangements = "SPR", perturbation = "ratchet", ...) acctran(tree, data) } \arguments{ \item{tree}{tree to start the nni search from.} \item{data}{A object of class phyDat containing sequences.} \item{site}{return either 'pscore' or 'site' wise parsimony scores.} \item{method}{one of 'fitch' or 'sankoff'.} \item{...}{Further arguments passed to or from other methods (e.g. model="sankoff" and cost matrix).} \item{cost}{A cost matrix for the transitions between two states.} \item{trace}{defines how much information is printed during optimisation.} \item{rearrangements}{SPR or NNI rearrangements.} \item{start}{a starting tree can be supplied.} \item{maxit}{maximum number of iterations in the ratchet.} \item{k}{number of rounds ratchet is stopped, when there is no improvement.} \item{all}{return all equally good trees or just one of them.} \item{perturbation}{whether using a ratchet or stochastic (nni) for shuffling the tree.} } \value{ \code{parsimony} returns the maximum parsimony score (pscore). \code{optim.parsimony} returns a tree after NNI rearrangements. \code{pratchet} returns a tree or list of trees containing the best tree(s) found during the search. \code{acctran} returns a tree with edge length according to the ACCTRAN criterion. } \description{ \code{parsimony} returns the parsimony score of a tree using either the sankoff or the fitch algorithm. \code{optim.parsimony} tries to find the maximum parsimony tree using either Nearest Neighbor Interchange (NNI) rearrangements or sub tree pruning and regrafting (SPR). \code{pratchet} implements the parsimony ratchet (Nixon, 1999) and is the preferred way to search for the best tree. \code{random.addition} can be used to produce starting trees. } \details{ The "SPR" rearrangements are so far only available for the "fitch" method, "sankoff" only uses "NNI". The "fitch" algorithm only works correct for binary trees. } \examples{ set.seed(3) data(Laurasiatherian) dm <- dist.hamming(Laurasiatherian) tree <- NJ(dm) parsimony(tree, Laurasiatherian) treeRA <- random.addition(Laurasiatherian) treeNNI <- optim.parsimony(tree, Laurasiatherian) treeRatchet <- pratchet(Laurasiatherian, start=tree, maxit=100, k=5) # assign edge length treeRatchet <- acctran(treeRatchet, Laurasiatherian) plot(midpoint(treeRatchet)) add.scale.bar(0,0, length=100) parsimony(c(tree,treeNNI, treeRatchet), Laurasiatherian) } \references{ Felsenstein, J. (2004). \emph{Inferring Phylogenies}. Sinauer Associates, Sunderland. Nixon, K. (1999) The Parsimony Ratchet, a New Method for Rapid Parsimony Analysis. \emph{Cladistics} \bold{15}, 407-414 } \seealso{ \code{\link{bab}}, \code{\link{CI}}, \code{\link{RI}}, \code{\link{ancestral.pml}}, \code{\link{nni}}, \code{\link{NJ}}, \code{\link{pml}}, \code{\link{getClans}} ,\code{\link{ancestral.pars}}, \code{\link{bootstrap.pml}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/delta.score.Rd0000644000176200001440000000216413201424001015321 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/delta.score.R \name{delta.score} \alias{delta.score} \title{Computes the \eqn{\delta} score} \usage{ delta.score(x, arg = "mean", ...) } \arguments{ \item{x}{an object of class \code{phyDat}} \item{arg}{Specifies the return value, one of "all", "mean" or "sd"} \item{...}{further arguments passed through \code{dist.hamming}} } \value{ A vector containing the \eqn{\delta} scores. } \description{ Computes the treelikeness } \examples{ data(yeast) hist(delta.score(yeast, "all")) } \references{ BR Holland, KT Huber, A Dress, V Moulton (2002) \eqn{\delta} Plots: a tool for analyzing phylogenetic distance data Russell D. Gray, David Bryant, Simon J. Greenhill (2010) On the shape and fabric of human history \emph{Molecular Biology and Evolution}, \bold{19(12)} 2051--2059 Russell D. Gray, David Bryant, Simon J. Greenhill (2010) On the shape and fabric of human history \emph{Phil. Trans. R. Soc. B}, \bold{365} 3923--3933; DOI: 10.1098/rstb.2010.0162 } \seealso{ \code{\link{dist.hamming}} } \author{ Alastair Potts and Klaus Schliep } \keyword{cluster} phangorn/man/distanceHadamard.Rd0000644000176200001440000000204613201424001016331 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/hadamard.R \name{distanceHadamard} \alias{distanceHadamard} \title{Distance Hadamard} \usage{ distanceHadamard(dm, eps = 0.001) } \arguments{ \item{dm}{A distance matrix.} \item{eps}{Threshold value for splits.} } \value{ \code{distanceHadamard} returns a matrix. The first column contains the distance spectra, the second one the edge-spectra. If eps is positive an object of with all splits greater eps is returned. } \description{ Distance Hadamard produces spectra of splits from a distance matrix. } \examples{ data(yeast) dm <- dist.hamming(yeast) dm <- as.matrix(dm) fit <- distanceHadamard(dm) lento(fit) plot(as.networx(fit), "2D") } \references{ Hendy, M. D. and Penny, D. (1993). Spectral Analysis of Phylogenetic Data. \emph{Journal of Classification}, \bold{10}, 5-24. } \seealso{ \code{\link{hadamard}}, \code{\link{lento}}, \code{\link{plot.networx}}, \code{\link{neighborNet}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com}, Tim White } \keyword{cluster} phangorn/man/consensusNet.Rd0000644000176200001440000000352513201424001015607 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/networx.R \name{consensusNet} \alias{consensusNet} \title{Computes a consensusNetwork from a list of trees Computes a \code{networx} object from a collection of splits.} \usage{ consensusNet(obj, prob = 0.3, ...) } \arguments{ \item{obj}{An object of class multiPhylo.} \item{prob}{the proportion a split has to be present in all trees to be represented in the network.} \item{\dots}{Further arguments passed to or from other methods.} } \value{ \code{consensusNet} returns an object of class networx. This is just an intermediate to plot phylogenetic networks with igraph. } \description{ Computes a consensusNetwork, i.e. an object of class \code{networx} from a list of trees, i.e. an class of class \code{multiPhylo}. Computes a \code{networx} object from a collection of splits. } \examples{ data(Laurasiatherian) set.seed(1) bs <- bootstrap.phyDat(Laurasiatherian, FUN = function(x)nj(dist.hamming(x)), bs=50) cnet <- consensusNet(bs, .3) plot(cnet, "2D") \dontrun{ library(rgl) open3d() plot(cnet, show.tip.label=FALSE, show.nodes=TRUE) plot(cnet, type = "2D", show.edge.label=TRUE) tmpfile <- normalizePath(system.file("extdata/trees/RAxML_bootstrap.woodmouse", package="phangorn")) trees <- read.tree(tmpfile) cnet_woodmouse <- consensusNet(trees, .3) plot(cnet_woodmouse, type = "2D", show.edge.label=TRUE) } } \references{ Holland B.R., Huber K.T., Moulton V., Lockhart P.J. (2004) Using consensus networks to visualize contradictory evidence for species phylogeny. \emph{Molecular Biology and Evolution}, \bold{21}, 1459--61 } \seealso{ \code{\link{splitsNetwork}}, \code{\link{neighborNet}}, \code{\link{lento}}, \code{\link{distanceHadamard}}, \code{\link{plot.networx}}, \code{\link{maxCladeCred}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{hplot} phangorn/man/superTree.Rd0000644000176200001440000000444713201424001015102 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/superTree.R \name{superTree} \alias{superTree} \title{Super Tree methods} \usage{ superTree(tree, method = "MRP", rooted = FALSE, trace = 0, start = NULL, multicore = FALSE, mc.cores = NULL, ...) } \arguments{ \item{tree}{an object of class \code{multiPhylo}} \item{method}{An argument defining which algorithm is used to optimize the tree. Possible are "MRP", "NNI", and "SPR".} \item{rooted}{should the resulting supertrees be rooted.} \item{trace}{defines how much information is printed during optimization.} \item{start}{a starting tree can be supplied.} \item{multicore}{logical, whether models should estimated in parallel.} \item{mc.cores}{The number of cores to use, i.e. at most how many child processes will be run simultaneously.} \item{\dots}{further arguments passed to or from other methods.} } \value{ The function returns an object of class \code{phylo}. } \description{ These function \code{superTree} allows the estimation of a supertree from a set of trees using either Matrix representation parsimony, Robinson-Foulds or SPR as criterion. } \details{ The function \code{superTree} extends the function mrp.supertree from Liam Revells, with artificial adding an outgroup on the root of the trees. This allows to root the supertree afterwards. The functions is internally used in DensiTree. The implementation for the RF- and SPR-supertree are very basic so far and assume that all trees share the same set of taxa. } \examples{ data(Laurasiatherian) set.seed(1) bs <- bootstrap.phyDat(Laurasiatherian, FUN = function(x)upgma(dist.hamming(x)), bs=50) mrp_st <- superTree(bs, rooted=TRUE) plot(superTree(mrp_st)) \dontrun{ rf_st <- superTree(bs, method = "RF") spr_st <- superTree(bs, method = "SPR") } } \references{ Baum, B. R., (1992) Combining trees as a way of combining data sets for phylogenetic inference, and the desirability of combining gene trees. \emph{Taxon}, \bold{41}, 3-10. Ragan, M. A. (1992) Phylogenetic inference based on matrix representation of trees. \emph{Molecular Phylogenetics and Evolution}, \bold{1}, 53-58. } \seealso{ \code{mrp.supertree}, \code{\link{densiTree}}, \code{\link{RF.dist}}, \code{\link{SPR.dist}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} Liam Revell } \keyword{cluster} phangorn/man/upgma.Rd0000644000176200001440000000200713201424001014223 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/distTree.R \name{upgma} \alias{upgma} \alias{wpgma} \title{UPGMA and WPGMA} \usage{ upgma(D, method = "average", ...) wpgma(D, method = "mcquitty", ...) } \arguments{ \item{D}{A distance matrix.} \item{method}{The agglomeration method to be used. This should be (an unambiguous abbreviation of) one of "ward", "single", "complete", "average", "mcquitty", "median" or "centroid". The default is "average".} \item{\dots}{Further arguments passed to or from other methods.} } \value{ A phylogenetic tree of class \code{phylo}. } \description{ UPGMA and WPGMA clustering. Just a wrapper function around \code{\link[stats]{hclust}}. } \examples{ data(Laurasiatherian) dm = dist.ml(Laurasiatherian) tree = upgma(dm) plot(tree) } \seealso{ \code{\link{hclust}}, \code{\link{dist.hamming}}, \code{\link{NJ}}, \code{\link{as.phylo}}, \code{\link{fastme}}, \code{\link{nnls.tree}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/SH.test.Rd0000644000176200001440000000336713212303074014424 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/SH.R \name{SH.test} \alias{SH.test} \title{Shimodaira-Hasegawa Test} \usage{ SH.test(..., B = 10000, data = NULL, weight = NULL) } \arguments{ \item{...}{either a series of objects of class \code{"pml"} separated by commas, a list containing such objects or an object of class \code{"pmlPart"} or a matrix containing the site-wise likelihoods in columns.} \item{B}{the number of bootstrap replicates.} \item{data}{an object of class \code{"phyDat"}.} \item{weight}{if a matrix with site (log-)likelihoods is is supplied an optional vector containing the number of occurances of each site pattern.} } \value{ a numeric vector with the P-value associated with each tree given in \code{...}. } \description{ This function computes the Shimodaira--Hasegawa test for a set of trees. } \examples{ data(Laurasiatherian) dm <- dist.logDet(Laurasiatherian) tree1 <- NJ(dm) tree2 <- unroot(upgma(dm)) fit1 <- pml(tree1, Laurasiatherian) fit2 <- pml(tree2, Laurasiatherian) fit1 <- optim.pml(fit1) # optimize edge weights fit2 <- optim.pml(fit2) # with pml objects as input SH.test(fit1, fit2, B=1000) # in real analysis use larger B, e.g. 10000 # with matrix as input X <- matrix(c(fit1$siteLik, fit2$siteLik), ncol=2) SH.test(X, weight=attr(Laurasiatherian, "weight"), B=1000) \dontrun{ example(pmlPart) SH.test(sp, B=1000) } } \references{ Shimodaira, H. and Hasegawa, M. (1999) Multiple comparisons of log-likelihoods with applications to phylogenetic inference. \emph{Molecular Biology and Evolution}, \bold{16}, 1114--1116. } \seealso{ \code{\link{pml}}, \code{\link{pmlPart}}, \code{\link{pmlCluster}}, \code{\link{SOWH.test}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{models} phangorn/man/lento.Rd0000644000176200001440000000257513201424001014245 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/lento.R \name{lento} \alias{lento} \title{Lento plot} \usage{ lento(obj, xlim = NULL, ylim = NULL, main = "Lento plot", sub = NULL, xlab = NULL, ylab = NULL, bipart = TRUE, trivial = FALSE, col = rgb(0, 0, 0, 0.5), ...) } \arguments{ \item{obj}{an object of class phylo, multiPhylo or splits} \item{xlim}{graphical parameter} \item{ylim}{graphical parameter} \item{main}{graphical parameter} \item{sub}{graphical parameter} \item{xlab}{graphical parameter} \item{ylab}{graphical parameter} \item{bipart}{plot bipartition information.} \item{trivial}{logical, whether to present trivial splits (default is FALSE).} \item{col}{color for the splits / bipartition.} \item{\dots}{Further arguments passed to or from other methods.} } \value{ lento returns a plot. } \description{ The lento plot represents support and conflict of splits/bipartitions. } \examples{ data(yeast) yeast.ry <- acgt2ry(yeast) splits.h <- h2st(yeast.ry) lento(splits.h, trivial=TRUE) } \references{ Lento, G.M., Hickson, R.E., Chambers G.K., and Penny, D. (1995) Use of spectral analysis to test hypotheses on the origin of pinninpeds. \emph{Molecular Biology and Evolution}, \bold{12}, 28-52. } \seealso{ \code{\link{as.splits}, \link{hadamard}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} \keyword{plot} phangorn/man/pmlMix.Rd0000644000176200001440000000562413201424001014370 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/pmlMix.R \name{pmlMix} \alias{pmlMix} \alias{pmlPen} \title{Phylogenetic mixture model} \usage{ pmlMix(formula, fit, m = 2, omega = rep(1/m, m), control = pml.control(epsilon = 1e-08, maxit = 20, trace = 1), ...) } \arguments{ \item{formula}{a formula object (see details).} \item{fit}{an object of class \code{pml}.} \item{m}{number of mixtures.} \item{omega}{mixing weights.} \item{control}{A list of parameters for controlling the fitting process.} \item{\dots}{Further arguments passed to or from other methods.} } \value{ \code{pmlMix} returns a list with elements \item{logLik}{log-likelihood of the fit} \item{omega}{mixing weights.} \item{fits}{fits for the final mixtures.} } \description{ Phylogenetic mixture model. } \details{ The \code{formula} object allows to specify which parameter get optimized. The formula is generally of the form \code{edge + bf + Q ~ rate + shape + \dots{}}, on the left side are the parameters which get optimized over all mixtures, on the right the parameter which are optimized specific to each mixture. The parameters available are \code{"nni", "bf", "Q", "inv", "shape", "edge", "rate"}. Each parameters can be used only once in the formula. \code{"rate"} and \code{"nni"} are only available for the right side of the formula. On the other hand parameters for invariable sites are only allowed on the left-hand side. The convergence of the algorithm is very slow and is likely that the algorithm can get stuck in local optima. } \examples{ \dontrun{ X <- allSitePattern(5) tree <- read.tree(text = "((t1:0.3,t2:0.3):0.1,(t3:0.3,t4:0.3):0.1,t5:0.5);") fit <- pml(tree,X, k=4) weights <- 1000*exp(fit$site) attr(X, "weight") <- weights fit1 <- update(fit, data=X, k=1) fit2 <- update(fit, data=X) (fitMixture <- pmlMix(edge~rate, fit1 , m=4)) (fit2 <- optim.pml(fit2, optGamma=TRUE)) data(Laurasiatherian) dm <- dist.logDet(Laurasiatherian) tree <- NJ(dm) fit <- pml(tree, Laurasiatherian) fit <- optim.pml(fit) fit2 <- update(fit, k=4) fit2 <- optim.pml(fit2, optGamma=TRUE) fitMix <- pmlMix(edge ~ rate, fit, m=4) fitMix # # simulation of mixture models # \dontrun{ X <- allSitePattern(5) tree1 <- read.tree(text = "((t1:0.1,t2:0.5):0.1,(t3:0.1,t4:0.5):0.1,t5:0.5);") tree2 <- read.tree(text = "((t1:0.5,t2:0.1):0.1,(t3:0.5,t4:0.1):0.1,t5:0.5);") tree1 <- unroot(tree1) tree2 <- unroot(tree2) fit1 <- pml(tree1,X) fit2 <- pml(tree2,X) weights <- 2000*exp(fit1$site) + 1000*exp(fit2$site) attr(X, "weight") <- weights fit1 <- pml(tree1, X) fit2 <- optim.pml(fit1) logLik(fit2) AIC(fit2, k=log(3000)) fitMixEdge <- pmlMix( ~ edge, fit1, m=2) logLik(fitMixEdge) AIC(fitMixEdge, k=log(3000)) fit.p <- pmlPen(fitMixEdge, .25) logLik(fit.p) AIC(fit.p, k=log(3000)) } } } \seealso{ \code{\link{pml}},\code{\link{pmlPart}},\code{\link{pmlCluster}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/ancestral.pml.Rd0000644000176200001440000000546113201424001015664 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/ancestral_pml.R \name{ancestral.pml} \alias{ancestral.pml} \alias{ancestral.pars} \alias{pace} \alias{plotAnc} \title{Ancestral character reconstruction.} \usage{ ancestral.pml(object, type = "marginal", return = "prob") ancestral.pars(tree, data, type = c("MPR", "ACCTRAN"), cost = NULL, return = "prob") pace(tree, data, type = c("MPR", "ACCTRAN"), cost = NULL, return = "prob") plotAnc(tree, data, i = 1, site.pattern = TRUE, col = NULL, cex.pie = par("cex"), pos = "bottomright", ...) } \arguments{ \item{object}{an object of class pml} \item{type}{method used to assign characters to internal nodes, see details.} \item{return}{return a \code{phyDat} object or matrix of probabilities.} \item{tree}{a tree, i.e. an object of class pml} \item{data}{an object of class phyDat} \item{cost}{A cost matrix for the transitions between two states.} \item{i}{plots the i-th site pattern of the \code{data}.} \item{site.pattern}{logical, plot i-th site pattern or i-th site} \item{col}{a vector containing the colors for all possible states.} \item{cex.pie}{a numeric defining the size of the pie graphs} \item{pos}{a character string defining the position of the legend} \item{\dots}{Further arguments passed to or from other methods.} } \value{ %A matrix containing the the estimates character states. An object of class "phyDat", containing the ancestral states of all nodes. } \description{ Marginal reconstruction of the ancestral character states. } \details{ The argument "type" defines the criterion to assign the internal nodes. For \code{ancestral.pml} so far "ml" and (empirical) "bayes" and for \code{ancestral.pars} "MPR" and "ACCTRAN" are possible. With parsimony reconstruction one has to keep in mind that there will be often no unique solution. For further details see vignette("Ancestral"). } \examples{ example(NJ) fit <- pml(tree, Laurasiatherian) anc.ml <- ancestral.pml(fit, type = "ml") anc.p <- ancestral.pars(tree, Laurasiatherian) \dontrun{ require(seqLogo) seqLogo( t(subset(anc.ml, 48, 1:20)[[1]]), ic.scale=FALSE) seqLogo( t(subset(anc.p, 48, 1:20)[[1]]), ic.scale=FALSE) } # plot the first site pattern plotAnc(tree, anc.ml, 1) # plot the third character plotAnc(tree, anc.ml, attr(anc.ml, "index")[3]) } \references{ Felsenstein, J. (2004). \emph{Inferring Phylogenies}. Sinauer Associates, Sunderland. Swofford, D.L., Maddison, W.P. (1987) Reconstructing ancestral character states under Wagner parsimony. \emph{Math. Biosci.} \bold{87}: 199--229 Yang, Z. (2006). \emph{Computational Molecular evolution}. Oxford University Press, Oxford. } \seealso{ \code{\link{pml}}, \code{\link{parsimony}}, \code{\link[ape]{ace}}, \code{\link[ape]{root}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{~kwd1} \keyword{~kwd2} phangorn/man/as.networx.Rd0000644000176200001440000001132113201424001015221 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/networx.R \name{as.networx} \alias{as.networx} \alias{networx} \alias{as.networx.splits} \alias{as.networx.phylo} \alias{plot.networx} \title{Phylogenetic networks} \usage{ as.networx(x, ...) \method{as.networx}{splits}(x, planar = FALSE, coord = c("none", "2D", "3D"), ...) \method{as.networx}{phylo}(x, ...) \method{plot}{networx}(x, type = "3D", use.edge.length = TRUE, show.tip.label = TRUE, show.edge.label = FALSE, edge.label = NULL, show.node.label = FALSE, node.label = NULL, show.nodes = FALSE, tip.color = "black", edge.color = "black", edge.width = 3, edge.lty = 1, split.color = NULL, split.width = NULL, split.lty = NULL, font = 3, cex = par("cex"), cex.node.label = cex, cex.edge.label = cex, col.node.label = tip.color, col.edge.label = tip.color, font.node.label = font, font.edge.label = font, ...) } \arguments{ \item{x}{an object of class \code{"splits"} (as.networx) or \code{"networx"} (plot)} \item{\dots}{Further arguments passed to or from other methods.} \item{planar}{logical whether to produce a planar graph from only cyclic splits (may excludes splits).} \item{coord}{add coordinates of the nodes, allows to reproduce the plot.} \item{type}{"3D" to plot using rgl or "2D" in the normal device.} \item{use.edge.length}{a logical indicating whether to use the edge weights of the network to draw the branches (the default) or not.} \item{show.tip.label}{a logical indicating whether to show the tip labels on the graph (defaults to \code{TRUE}, i.e. the labels are shown).} \item{show.edge.label}{a logical indicating whether to show the tip labels on the graph.} \item{edge.label}{an additional vector of edge labels (normally not needed).} \item{show.node.label}{a logical indicating whether to show the node labels (see example).} \item{node.label}{an additional vector of node labels (normally not needed).} \item{show.nodes}{a logical indicating whether to show the nodes (see example).} \item{tip.color}{the colors used for the tip labels.} \item{edge.color}{the colors used to draw edges.} \item{edge.width}{the width used to draw edges.} \item{edge.lty}{a vector of line types.} \item{split.color}{the colors used to draw edges.} \item{split.width}{the width used to draw edges.} \item{split.lty}{a vector of line types.} \item{font}{an integer specifying the type of font for the labels: 1 (plain text), 2 (bold), 3 (italic, the default), or 4 (bold italic).} \item{cex}{a numeric value giving the factor scaling of the labels.} \item{cex.node.label}{a numeric value giving the factor scaling of the node labels.} \item{cex.edge.label}{a numeric value giving the factor scaling of the edge labels.} \item{col.node.label}{the colors used for the node labels.} \item{col.edge.label}{the colors used for the edge labels.} \item{font.node.label}{the font used for the node labels.} \item{font.edge.label}{the font used for the edge labels.} } \description{ \code{as.networx} convert \code{splits} objects into a \code{networx} object. And most important there exists a generic \code{plot} function to plot phylogenetic network or split graphs. } \details{ A \code{networx} object hold the information for a phylogenetic network and extends the \code{phylo} object. Therefore some generic function for \code{phylo} objects will also work for \code{networx} objects. The argument \code{planar = TRUE} will create a planar split graph based on a cyclic ordering. These objects can be nicely plotted in \code{"2D"}. So far not all parameters behave the same on the the \code{rgl} \code{"3D"} and basic graphic \code{"2D"} device. Often it is easier and safer to supply vectors of graphical parameters for splits (e.g. splits.color) than for edges. These overwrite values edge.color. } \note{ The internal representation is likely to change. } \examples{ set.seed(1) tree1 <- rtree(20, rooted=FALSE) sp <- as.splits(rNNI(tree1, n=10)) net <- as.networx(sp) plot(net, "2D") \dontrun{ # also see example in consensusNet example(consensusNet) } } \references{ Dress, A.W.M. and Huson, D.H. (2004) Constructing Splits Graphs \emph{IEEE/ACM Transactions on Computational Biology and Bioinformatics (TCBB)}, \bold{1(3)}, 109--115 Schliep, K., Potts, A. J., Morrison, D. A. and Grimm, G. W. (2017), Intertwining phylogenetic trees and networks. \emph{Methods Ecol Evol}. \bold{8}, 1212--1220. doi:10.1111/2041-210X.12760 } \seealso{ \code{\link{consensusNet}}, \code{\link{neighborNet}}, \code{\link{splitsNetwork}}, \code{\link{hadamard}}, \code{\link{distanceHadamard}}, \code{\link{layout_with_kk}}, \code{\link[ape]{evonet}}, \code{\link[ape]{as.igraph}}, \code{\link{densiTree}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{plot} phangorn/man/dfactorial.Rd0000644000176200001440000000123013201424001015217 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/hadamard.R \name{ldfactorial} \alias{ldfactorial} \alias{dfactorial} \title{Arithmetic Operators} \usage{ ldfactorial(x) dfactorial(x) } \arguments{ \item{x}{a numeric scalar or vector} } \value{ \code{dfactorial(x)} returns the double factorial, that is \eqn{x\!\! = 1 * 3 * 5 * \ldots * x } and \code{ldfactorial(x)} is the natural logarithm of it. } \description{ double factorial function } \examples{ dfactorial(1:10) } \seealso{ \code{\link[base:Special]{factorial}}, \code{\link[ape]{howmanytrees}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{classif} phangorn/man/CI.Rd0000644000176200001440000000220213210056534013416 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/parsimony.R \name{CI} \alias{CI} \alias{RI} \title{Consistency Index and Retention Index} \usage{ CI(tree, data, cost = NULL, sitewise = FALSE) RI(tree, data, cost = NULL, sitewise = FALSE) } \arguments{ \item{tree}{tree to start the nni search from.} \item{data}{A object of class phyDat containing sequences.} \item{cost}{A cost matrix for the transitions between two states.} \item{sitewise}{return CI/RI for alignment or sitewise} } \description{ \code{CI} and \code{RI} compute the Consistency Index (CI) and Retention Index (RI). } \details{ The Consistency Index is defined as minimum number of changes divided by the number of changes required on the tree (parsimony score). The Consistency Index is equal to one if there is no homoplasy. And the Retention Index is defined as \deqn{RI = \frac{MaxChanges - ObsChanges}{MaxChanges - MinChanges}}{RI = (MaxChanges - ObsChanges) / (MaxChanges - MinChanges)} } \seealso{ \code{\link{parsimony}}, \code{\link{pratchet}}, \code{\link{fitch}}, \code{\link{sankoff}}, \code{\link{bab}}, \code{\link{ancestral.pars}} } phangorn/man/treedist.Rd0000644000176200001440000001061213201424001014736 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/treedist.R \name{treedist} \alias{treedist} \alias{sprdist} \alias{SPR.dist} \alias{RF.dist} \alias{wRF.dist} \alias{KF.dist} \alias{path.dist} \title{Distances between trees} \usage{ treedist(tree1, tree2, check.labels = TRUE) sprdist(tree1, tree2) SPR.dist(tree1, tree2 = NULL) RF.dist(tree1, tree2 = NULL, normalize = FALSE, check.labels = TRUE, rooted = FALSE) wRF.dist(tree1, tree2 = NULL, normalize = FALSE, check.labels = TRUE, rooted = FALSE) KF.dist(tree1, tree2 = NULL, check.labels = TRUE, rooted = FALSE) path.dist(tree1, tree2 = NULL, check.labels = TRUE, use.weight = FALSE) } \arguments{ \item{tree1}{A phylogenetic tree (class \code{phylo}) or vector of trees (an object of class \code{multiPhylo}). See details} \item{tree2}{A phylogenetic tree.} \item{check.labels}{compares labels of the trees.} \item{normalize}{compute normalized RF-distance, see details.} \item{rooted}{take bipartitions for rooted trees into account, default is unrooting the trees.} \item{use.weight}{use edge.length argument or just count number of edges on the path (default)} } \value{ \code{treedist} returns a vector containing the following tree distance methods \item{symmetric.difference}{symmetric.difference or Robinson-Foulds distance} \item{branch.score.difference}{branch.score.difference} \item{path.difference}{path.difference} \item{weighted.path.difference}{weighted.path.difference} } \description{ \code{treedist} computes different tree distance methods and \code{RF.dist} the Robinson-Foulds or symmetric distance. The Robinson-Foulds distance only depends on the toplogy of the trees. If edge weights should be considered \code{wRF.dist} calculates the weighted RF distance (Robinson & Foulds 1981). and \code{KF.dist} calculates the branch score distance (Kuhner & Felsenstein 1994). \code{path.dist} computes the path difference metric as described in Steel and Penny 1993). \code{sprdist} computes the approximate SPR distance (Oliveira Martins et al. 2008, de Oliveira Martins 2016). } \details{ The Robinson-Foulds distance between two trees \eqn{T_1} and \eqn{T_2} with \eqn{n} tips is defined as (following the notation Steel and Penny 1993): \deqn{d(T_1, T_2) = i(T_1) + i(T_2) - 2v_s(T_1, T_2)} where \eqn{i(T_1)} denotes the number of internal edges and \eqn{v_s(T_1, T_2)} denotes the number of internal splits shared by the two trees. The normalized Robinson-Foulds distance is derived by dividing \eqn{d(T_1, T_2)} by the maximal possible distance \eqn{i(T_1) + i(T_2)}. If both trees are unrooted and binary this value is \eqn{2n-6}. Functions like \code{RF.dist} returns the Robinson-Foulds distance (Robinson and Foulds 1981) between either 2 trees or computes a matrix of all pairwise distances if a \code{multiPhylo} object is given. For large number of trees the distance functions can use a lot of memory! } \examples{ tree1 <- rtree(100, rooted=FALSE) tree2 <- rSPR(tree1, 3) RF.dist(tree1, tree2) treedist(tree1, tree2) sprdist(tree1, tree2) trees <- rSPR(tree1, 1:5) SPR.dist(tree1, trees) } \references{ de Oliveira Martins L., Leal E., Kishino H. (2008) \emph{Phylogenetic Detection of Recombination with a Bayesian Prior on the Distance between Trees}. PLoS ONE \bold{3(7)}. e2651. doi: 10.1371/journal.pone.0002651 de Oliveira Martins L., Mallo D., Posada D. (2016) \emph{A Bayesian Supertree Model for Genome-Wide Species Tree Reconstruction}. Syst. Biol. \bold{65(3)}: 397-416, doi:10.1093/sysbio/syu082 Steel M. A. and Penny P. (1993) \emph{Distributions of tree comparison metrics - some new results}, Syst. Biol., \bold{42(2)}, 126--141 Kuhner, M. K. and Felsenstein, J. (1994) \emph{A simulation comparison of phylogeny algorithms under equal and unequal evolutionary rates}, Molecular Biology and Evolution, \bold{11(3)}, 459--468 D.F. Robinson and L.R. Foulds (1981) \emph{Comparison of phylogenetic trees}, Mathematical Biosciences, \bold{53(1)}, 131--147 D.F. Robinson and L.R. Foulds (1979) Comparison of weighted labelled trees. In Horadam, A. F. and Wallis, W. D. (Eds.), \emph{Combinatorial Mathematics VI: Proceedings of the Sixth Australian Conference on Combinatorial Mathematics, Armidale, Australia}, 119--126 } \seealso{ \code{\link[ape]{dist.topo}}, \code{\link{nni}}, \code{\link{superTree}}, \code{\link{mast}} } \author{ Klaus P. Schliep \email{klaus.schliep@gmail.com}, Leonardo de Oliveira Martins } \keyword{classif} phangorn/man/modelTest.Rd0000644000176200001440000000577713201424001015073 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/modelTest.R \name{modelTest} \alias{modelTest} \alias{AICc} \title{ModelTest} \usage{ modelTest(object, tree = NULL, model = c("JC", "F81", "K80", "HKY", "SYM", "GTR"), G = TRUE, I = TRUE, FREQ = FALSE, k = 4, control = pml.control(epsilon = 1e-08, maxit = 10, trace = 1), multicore = FALSE, mc.cores = NULL) } \arguments{ \item{object}{an object of class phyDat or pml} \item{tree}{a phylogenetic tree.} \item{model}{a vector containing the substitution models to compare with each other or "all" to test all available models} \item{G}{logical, TRUE (default) if (discrete) Gamma model should be tested} \item{I}{logical, TRUE (default) if invariant sites should be tested} \item{FREQ}{logical, FALSE (default) if TRUE amino acid frequencies will be estimated.} \item{k}{number of rate classes} \item{control}{A list of parameters for controlling the fitting process.} \item{multicore}{logical, whether models should estimated in parallel.} \item{mc.cores}{The number of cores to use, i.e. at most how many child processes will be run simultaneously. Must be at least one, and parallelization requires at least two cores.} } \value{ A data.frame containing the log-likelihood, number of estimated parameters, AIC, AICc and BIC all tested models. The data.frame has an attributes "env" which is an environment which contains all the trees, the data and the calls to allow get the estimated models, e.g. as a starting point for further analysis (see example). } \description{ Comparison of different nucleotide or amino acid substitution models } \details{ \code{modelTest} estimates all the specified models for a given tree and data. When the mclapply is available, the computations are done in parallel. \code{modelTest} runs each model in one thread. This is may not work within a GUI interface and will not work under Windows. } \examples{ \dontrun{ example(NJ) (mT <- modelTest(Laurasiatherian, tree)) # some R magic env <- attr(mT, "env") ls(env=env) (F81 <- get("F81+G", env)) # a call eval(F81, env=env) data(chloroplast) (mTAA <- modelTest(chloroplast, model=c("JTT", "WAG", "LG"))) # test all available amino acid models (mTAA_all <- modelTest(chloroplast, model="all", multicore=TRUE, mc.cores=2)) } } \references{ Burnham, K. P. and Anderson, D. R (2002) \emph{Model selection and multimodel inference: a practical information-theoretic approach}. 2nd ed. Springer, New York Posada, D. and Crandall, K.A. (1998) MODELTEST: testing the model of DNA substitution. \emph{Bioinformatics} \bold{14(9)}: 817-818 Posada, D. (2008) jModelTest: Phylogenetic Model Averaging. \emph{Molecular Biology and Evolution} \bold{25}: 1253-1256 Darriba D., Taboada G.L., Doallo R and Posada D. (2011) ProtTest 3: fast selection of best-fit models of protein evolution. . \emph{Bioinformatics} \bold{27}: 1164-1165 } \seealso{ \code{\link{pml}}, \code{\link{anova}}, \code{\link[stats]{AIC}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/simSeq.Rd0000644000176200001440000000547413203173404014400 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/simSeq.R \name{simSeq} \alias{simSeq} \alias{simSeq.phylo} \alias{simSeq.pml} \title{Simulate sequences.} \usage{ simSeq(x, ...) \method{simSeq}{phylo}(x, l = 1000, Q = NULL, bf = NULL, rootseq = NULL, type = "DNA", model = NULL, levels = NULL, rate = 1, ancestral = FALSE, ...) \method{simSeq}{pml}(x, ancestral = FALSE, ...) } \arguments{ \item{x}{a phylogenetic tree \code{tree}, i.e. an object of class \code{phylo} or and object of class \code{pml}.} \item{\dots}{Further arguments passed to or from other methods.} \item{l}{length of the sequence to simulate.} \item{Q}{the rate matrix.} \item{bf}{base frequencies.} \item{rootseq}{a vector of length l containing the root sequence, other root sequence is randomly generated.} \item{type}{Type of sequences ("DNA", "AA" or "USER").} \item{model}{Amino acid models: e.g. "WAG", "JTT", "Dayhoff" or "LG"} \item{levels}{\code{levels} takes a character vector of the different bases, default is for nucleotide sequences, only used when type = "USER".} \item{rate}{mutation rate or scaler for the edge length, a numerical value greater than zero.} \item{ancestral}{Return ancestral sequences?} } \value{ \code{simSeq} returns an object of class phyDat. } \description{ Simulate sequences for a given evolutionary tree. } \details{ \code{simSeq} is now a generic function to simulate sequence alignments. It is quite flexible and allows to generate DNA, RNA, amino acids or binary sequences. It is possible to give a \code{pml} object as input simSeq return a \code{phyDat} from these model. There is also a more low level version, which lacks rate variation, but one can combine different alignments having their own rate (see example). The rate parameter acts like a scaler for the edge lengths. } \examples{ \dontrun{ data(Laurasiatherian) tree <- nj(dist.ml(Laurasiatherian)) fit <- pml(tree, Laurasiatherian, k=4) fit <- optim.pml(fit, optNni=TRUE, model="GTR", optGamma=TRUE) data <- simSeq(fit) } tree <- rtree(5) plot(tree) nodelabels() # Example for simple DNA alignment data <- simSeq(tree, l = 10, type="DNA", bf=c(.1,.2,.3,.4), Q=1:6) as.character(data) # Example to simulate discrete Gamma rate variation rates <- discrete.gamma(1,4) data1 <- simSeq(tree, l = 100, type="AA", model="WAG", rate=rates[1]) data2 <- simSeq(tree, l = 100, type="AA", model="WAG", rate=rates[2]) data3 <- simSeq(tree, l = 100, type="AA", model="WAG", rate=rates[3]) data4 <- simSeq(tree, l = 100, type="AA", model="WAG", rate=rates[4]) data <- c(data1,data2, data3, data4) write.phyDat(data, file="temp.dat", format="sequential", nbcol = -1, colsep = "") unlink("temp.dat") } \seealso{ \code{\link{phyDat}}, \code{\link{pml}}, \code{\link{SOWH.test}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/bootstrap.pml.Rd0000644000176200001440000000771013201424001015724 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/bootstrap.R \name{bootstrap.pml} \alias{bootstrap.pml} \alias{bootstrap.phyDat} \alias{plotBS} \title{Bootstrap} \usage{ bootstrap.pml(x, bs = 100, trees = TRUE, multicore = FALSE, mc.cores = NULL, ...) bootstrap.phyDat(x, FUN, bs = 100, multicore = FALSE, mc.cores = NULL, jumble = TRUE, ...) plotBS(tree, BStrees, type = "unrooted", bs.col = "black", bs.adj = NULL, p = 50, frame = "none", ...) } \arguments{ \item{x}{an object of class \code{pml} or \code{phyDat}.} \item{bs}{number of bootstrap samples.} \item{trees}{return trees only (default) or whole \code{pml} objects.} \item{multicore}{logical, whether models should estimated in parallel.} \item{mc.cores}{The number of cores to use during bootstrap. Only supported on UNIX-alike systems.} \item{\dots}{further parameters used by \code{optim.pml} or \code{plot.phylo}.} \item{FUN}{the function to estimate the trees.} \item{jumble}{logical, jumble the order of the sequences.} \item{tree}{The tree on which edges the bootstrap values are plotted.} \item{BStrees}{a list of trees (object of class "multiPhylo").} \item{type}{the type of tree to plot, so far "cladogram", "phylogram" and "unrooted" are supported.} \item{bs.col}{color of bootstrap support labels.} \item{bs.adj}{one or two numeric values specifying the horizontal and vertical justification of the bootstrap labels.} \item{p}{only plot support values higher than this percentage number (default is 80).} \item{frame}{a character string specifying the kind of frame to be printed around the bootstrap values. This must be one of "none" (the default), "rect" or "circle".} } \value{ \code{bootstrap.pml} returns an object of class \code{multi.phylo} or a list where each element is an object of class \code{pml}. \code{plotBS} returns silently a tree, i.e. an object of class \code{phylo} with the bootstrap values as node labels. The argument \code{BStrees} is optional and if not supplied the tree with labels supplied in the \code{node.label} slot. } \description{ \code{bootstrap.pml} performs (non-parametric) bootstrap analysis and \code{bootstrap.phyDat} produces a list of bootstrapped data sets. \code{plotBS} plots a phylogenetic tree with the with the bootstrap values assigned to the (internal) edges. } \details{ It is possible that the bootstrap is performed in parallel, with help of the multicore package. Unfortunately the multicore package does not work under windows or with GUI interfaces ("aqua" on a mac). However it will speed up nicely from the command line ("X11"). } \examples{ \dontrun{ data(Laurasiatherian) dm <- dist.logDet(Laurasiatherian) tree <- NJ(dm) # NJ set.seed(123) NJtrees <- bootstrap.phyDat(Laurasiatherian, FUN=function(x)NJ(dist.logDet(x)), bs=100) treeNJ <- plotBS(tree, NJtrees, "phylogram") # Maximum likelihood fit <- pml(tree, Laurasiatherian) fit <- optim.pml(fit, rearrangements="NNI") set.seed(123) bs <- bootstrap.pml(fit, bs=100, optNni=TRUE) treeBS <- plotBS(fit$tree,bs) # Maximum parsimony treeMP <- pratchet(Laurasiatherian) treeMP <- acctran(treeMP, Laurasiatherian) set.seed(123) BStrees <- bootstrap.phyDat(Laurasiatherian, pratchet, bs = 100) treeMP <- plotBS(treeMP, BStrees, "phylogram") add.scale.bar() # export tree with bootstrap values as node labels # write.tree(treeBS) } } \references{ Felsenstein J. (1985) Confidence limits on phylogenies. An approach using the bootstrap. \emph{Evolution} \bold{39}, 783--791 Penny D. and Hendy M.D. (1985) Testing methods evolutionary tree construction. \emph{Cladistics} \bold{1}, 266--278 Penny D. and Hendy M.D. (1986) Estimating the reliability of evolutionary trees. \emph{Molecular Biology and Evolution} \bold{3}, 403--417 } \seealso{ \code{\link{optim.pml}}, \code{\link{pml}}, \code{\link{plot.phylo}}, \code{\link{nodelabels}},\code{\link{consensusNet}} and \code{\link{SOWH.test}} for parametric bootstrap } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/yeast.Rd0000644000176200001440000000077013201424001014244 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/phangorn-package.R \docType{data} \name{yeast} \alias{yeast} \title{Yeast alignment (Rokas et al.)} \description{ Alignment of 106 genes of 8 different species of yeast. } \examples{ data(yeast) str(yeast) } \references{ Rokas, A., Williams, B. L., King, N., and Carroll, S. B. (2003) Genome-scale approaches to resolving incongruence in molecular phylogenies. \emph{Nature}, \bold{425}(6960): 798--804 } \keyword{datasets} phangorn/man/NJ.Rd0000644000176200001440000000235013201424001013422 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/distTree.R \name{NJ} \alias{NJ} \alias{PNJ} \alias{UNJ} \title{Neighbor-Joining} \usage{ NJ(x) UNJ(x) } \arguments{ \item{x}{A distance matrix.} } \value{ an object of class \code{"phylo"}. } \description{ This function performs the neighbor-joining tree estimation of Saitou and Nei (1987). UNJ is the unweighted version from Gascuel (1997). } \examples{ data(Laurasiatherian) dm <- dist.ml(Laurasiatherian) tree <- NJ(dm) plot(tree) } \references{ Saitou, N. and Nei, M. (1987) The neighbor-joining method: a new method for reconstructing phylogenetic trees. \emph{Molecular Biology and Evolution}, \bold{4}, 406--425. Studier, J. A and Keppler, K. J. (1988) A Note on the Neighbor-Joining Algorithm of Saitou and Nei. \emph{Molecular Biology and Evolution}, \bold{6}, 729--731. Gascuel, O. (1997) Concerning the NJ algorithm and its unweighted version, UNJ. in Birkin et. al. \emph{Mathematical Hierarchies and Biology}, 149--170. } \seealso{ \code{\link[ape]{nj}}, \code{\link[ape]{dist.dna}}, \code{\link[phangorn]{dist.hamming}}, \code{\link[phangorn]{upgma}}, \code{\link[ape]{fastme}} } \author{ Klaus P. Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/as.splits.Rd0000644000176200001440000000543413201424001015041 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/networx.R, R/splits.R \name{allSplits} \alias{allSplits} \alias{allCircularSplits} \alias{as.splits} \alias{splits} \alias{as.Matrix} \alias{distinct.splits} \alias{as.phylo.splits} \alias{addTrivialSplits} \alias{removeTrivialSplits} \alias{matchSplits} \alias{as.matrix.splits} \alias{as.Matrix.splits} \alias{print.splits} \alias{c.splits} \alias{unique.splits} \alias{as.splits.phylo} \alias{as.splits.multiPhylo} \alias{as.splits.networx} \alias{as.prop.part.splits} \alias{as.bitsplits.splits} \alias{compatible} \title{Splits representation of graphs and trees.} \usage{ allSplits(k, labels = NULL) allCircularSplits(k, labels = NULL) as.splits(x, ...) \method{as.matrix}{splits}(x, zero.print = 0L, one.print = 1L, ...) \method{as.Matrix}{splits}(x, ...) \method{print}{splits}(x, maxp = getOption("max.print"), zero.print = ".", one.print = "|", ...) \method{c}{splits}(..., recursive = FALSE) \method{unique}{splits}(x, incomparables = FALSE, unrooted = TRUE, ...) \method{as.splits}{phylo}(x, ...) \method{as.splits}{multiPhylo}(x, ...) \method{as.splits}{networx}(x, ...) \method{as.prop.part}{splits}(x, ...) \method{as.bitsplits}{splits}(x) compatible(obj) } \arguments{ \item{k}{number of taxa.} \item{labels}{names of taxa.} \item{x}{An object of class phylo or multiPhylo.} \item{\dots}{Further arguments passed to or from other methods.} \item{zero.print}{character which should be printed for zeros.} \item{one.print}{character which should be printed for ones.} \item{maxp}{integer, default from \code{options(max.print)}, influences how many entries of large matrices are printed at all.} \item{recursive}{logical. If recursive = TRUE, the function recursively descends through lists (and pairlists) combining all their elements into a vector.} \item{incomparables}{only for compatibility so far.} \item{unrooted}{todo.} \item{obj}{an object of class splits.} } \value{ \code{as.splits} returns an object of class splits, which is mainly a list of splits and some attributes. Often a \code{splits} object will contain attributes \code{confidences} for bootstrap or Bayesian support values and \code{weight} storing edge weights. \code{compatible} return a lower triangular matrix where an 1 indicates that two splits are incompatible. } \description{ \code{as.splits} produces a list of splits or bipartitions. } \note{ The internal representation is likely to change. } \examples{ (sp <- as.splits(rtree(5))) write.nexus.splits(sp) spl <- allCircularSplits(5) plot(as.networx(spl), "2D") } \seealso{ \code{\link{prop.part}}, \code{\link{lento}}, \code{\link{as.networx}}, \code{\link{distanceHadamard}}, \code{\link{read.nexus.splits}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/pml.fit.Rd0000644000176200001440000000463213201424001014471 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/phylo.R \name{discrete.gamma} \alias{discrete.gamma} \alias{lli} \alias{edQt} \alias{pml.free} \alias{pml.init} \alias{pml.fit} \title{Internal maximum likelihood functions.} \usage{ discrete.gamma(alpha, k) lli(data, tree = NULL, ...) edQt(Q = c(1, 1, 1, 1, 1, 1), bf = c(0.25, 0.25, 0.25, 0.25)) pml.free() pml.init(data, k = 1L) pml.fit(tree, data, bf = rep(1/length(levels), length(levels)), shape = 1, k = 1, Q = rep(1, length(levels) * (length(levels) - 1)/2), levels = attr(data, "levels"), inv = 0, rate = 1, g = NULL, w = NULL, eig = NULL, INV = NULL, ll.0 = NULL, llMix = NULL, wMix = 0, ..., site = FALSE) } \arguments{ \item{alpha}{Shape parameter of the gamma distribution.} \item{k}{Number of intervals of the discrete gamma distribution.} \item{data}{An alignment, object of class \code{phyDat}.} \item{tree}{A phylogenetic \code{tree}, object of class \code{phylo}.} \item{\dots}{Further arguments passed to or from other methods.} \item{Q}{A vector containing the lower triangular part of the rate matrix.} \item{bf}{Base frequencies.} \item{shape}{Shape parameter of the gamma distribution.} \item{levels}{The alphabet used e.g. c("a", "c", "g", "t") for DNA} \item{inv}{Proportion of invariable sites.} \item{rate}{Rate.} \item{g}{vector of quantiles (default is NULL)} \item{w}{vector of probabilities (default is NULL)} \item{eig}{Eigenvalue decomposition of Q} \item{INV}{Sparse representation of invariant sites} \item{ll.0}{default is NULL} \item{llMix}{default is NULL} \item{wMix}{default is NULL} \item{site}{return the log-likelihood or vector of sitewise likelihood values} } \value{ \code{pml.fit} returns the log-likelihood. } \description{ These functions are internally used for the likelihood computations in \code{pml} or \code{optim.pml}. } \details{ These functions are exported to be used in different packages so far only in the package coalescentMCMC, but are not intended for end user. Most of the functions call C code and are far less forgiving if the import is not what they expect than \code{pml}. } \references{ Felsenstein, J. (1981) Evolutionary trees from DNA sequences: a maximum likelihood approach. \emph{Journal of Molecular Evolution}, \bold{17}, 368--376. } \seealso{ \code{\link{pml}, \link{pmlPart}, \link{pmlMix}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/chloroplast.Rd0000644000176200001440000000050313201424001015443 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/phangorn-package.R \docType{data} \name{chloroplast} \alias{chloroplast} \title{Chloroplast alignment} \description{ Amino acid alignment of 15 genes of 19 different chloroplast. } \examples{ data(chloroplast) chloroplast } \keyword{datasets} phangorn/man/maxCladeCred.Rd0000644000176200001440000000357113201424001015435 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/bootstrap.R \name{maxCladeCred} \alias{maxCladeCred} \title{Maximum clade credibility tree} \usage{ maxCladeCred(x, tree = TRUE, part = NULL, rooted = TRUE) } \arguments{ \item{x}{\code{x} is an object of class \code{multiPhylo} or \code{phylo}} \item{tree}{logical indicating whether return the tree with the clade credibility (default) or the clade credibility score for all trees.} \item{part}{a list of partitions as returned by \code{prop.part}} \item{rooted}{logical, if FALSE the tree with highest maximum bipartition credibility is returned.} } \value{ a tree (an object of class \code{phylo}) with the highest clade credibility or a numeric vector of clade credibilities for each tree. } \description{ \code{maxCladeCred} computes the maximum clade credibility tree from a sample of trees. } \details{ So far just the best tree is returned. No annotations or transformations of edge length are performed. If a list of partition is provided then the clade credibility is computed for the trees in x. } \examples{ data(Laurasiatherian) set.seed(42) bs <- bootstrap.phyDat(Laurasiatherian, FUN = function(x)upgma(dist.hamming(x)), bs=100) strict_consensus <- consensus(bs) majority_consensus <- consensus(bs, p=.5) max_clade_cred <- maxCladeCred(bs) par(mfrow = c(1,3), mar = c(1,4,1,1)) plot(strict_consensus, main="Strict consensus tree") plot(majority_consensus, main="Majority consensus tree") plot(max_clade_cred, main="Maximum clade credibility tree") # compute clade credibility for trees given a prop.part object pp <- prop.part(bs) tree <- rNNI(bs[[1]], 20) maxCladeCred(c(tree, bs[[1]]), tree=FALSE, part = pp) # first value likely be -Inf } \seealso{ \code{\link{consensus}}, \code{\link{consensusNet}}, \code{\link{prop.part}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/Ancestors.Rd0000644000176200001440000000426613201424001015064 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/treeManipulation.R \name{Ancestors} \alias{Ancestors} \alias{allDescendants} \alias{Children} \alias{Descendants} \alias{Siblings} \alias{mrca.phylo} \title{tree utility function} \usage{ Ancestors(x, node, type = c("all", "parent")) allDescendants(x) Children(x, node) Descendants(x, node, type = c("tips", "children", "all")) Siblings(x, node, include.self = FALSE) mrca.phylo(x, node = NULL, full = FALSE) } \arguments{ \item{x}{a tree (a phylo object).} \item{node}{an integer or a vector of integers corresponding to a node ID} \item{type}{specify whether to return just direct children / parents or all} \item{include.self}{whether to include self in list of siblings} \item{full}{a logical indicating whether to return the MRCAs among all tips and nodes (if TRUE); the default is to return only the MRCAs among tips.} } \value{ a vector or a list containing the indices of the nodes. } \description{ Functions for describing relationships among phylogenetic nodes. } \details{ These functions are inspired by \code{treewalk} in phylobase package, but work on the S3 \code{phylo} objects. The nodes are the indices as given in edge matrix of an phylo object. From taxon labels these indices can be easily derived matching against the \code{tip.label} argument of an phylo object, see example below. All the functions allow \code{node} to be either a scalar or vector. \code{mrca} is a faster version of the mrca in ape, in phangorn only because of dependencies. If the argument node is missing the function is evaluated for all nodes. } \section{Functions}{ \itemize{ \item \code{allDescendants}: list all the descendant nodes of each node }} \examples{ tree <- rtree(10) plot(tree, show.tip.label = FALSE) nodelabels() tiplabels() Ancestors(tree, 1:3, "all") Children(tree, 11) Descendants(tree, 11, "tips") Siblings(tree, 3) # Siblings of all nodes Siblings(tree) mrca.phylo(tree, 1:3) mrca.phylo(tree, match(c("t1", "t2", "t3"), tree$tip)) mrca.phylo(tree) # same as mrca(tree), but faster for large trees } \seealso{ \code{treewalk}, \code{\link[ape]{phylo}}, \code{\link[ape]{nodelabels}} } \keyword{internal} \keyword{misc} phangorn/man/read.nexus.splits.Rd0000644000176200001440000000461513201424001016512 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/read.nexus.splits.R \name{read.nexus.splits} \alias{read.nexus.splits} \alias{write.nexus.splits} \alias{write.nexus.networx} \alias{read.nexus.networx} \alias{write.splits} \title{Function to import and export splits and networks} \usage{ read.nexus.splits(file) write.nexus.splits(obj, file = "", weights = NULL, taxa = TRUE, append = FALSE) write.nexus.networx(obj, file = "", taxa = TRUE, splits = TRUE, append = FALSE) read.nexus.networx(file, splits = TRUE) write.splits(x, file = "", zero.print = ".", one.print = "|", print.labels = TRUE, ...) } \arguments{ \item{file}{a file name.} \item{obj}{An object of class splits.} \item{weights}{Edge weights.} \item{taxa}{logical. If TRUE a taxa block is added} \item{append}{logical. If TRUE the nexus blocks will be added to a file.} \item{splits}{logical. If TRUE the nexus blocks will be added to a file.} \item{x}{An object of class splits.} \item{zero.print}{character which should be printed for zeros.} \item{one.print}{character which should be printed for ones.} \item{print.labels}{logical. If TRUE labels are printed.} \item{\dots}{Further arguments passed to or from other methods.} \item{labels}{names of taxa.} } \value{ \code{write.nexus.splits} and \code{write.nexus.networx} write out the \code{splits} and \code{networx} object to read with other software like Splitstree. \code{read.nexus.splits} and \code{read.nexus.networx} return an \code{splits} and \code{networx} object. } \description{ \code{read.nexus.splits}, \code{write.nexus.splits}, \code{read.nexus.networx}, \code{write.nexus.networx} can be used to import and export splits and networks with nexus format and allow to exchange these object with other software like Splitstree. \code{write.splits} returns a human readable output. } \note{ \code{read.nexus.splits} reads in the splits block of a nexus file. It assumes that different co-variables are tab delimited and the bipartition are separated with white-space. Comments in square brackets are ignored. } \examples{ (sp <- as.splits(rtree(5))) write.nexus.splits(sp) spl <- allCircularSplits(5) plot(as.networx(spl), "2D") write.splits(spl, print.labels = FALSE) } \seealso{ \code{\link{prop.part}}, \code{\link{lento}}, \code{\link{as.splits}}, \code{\link{as.networx}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/cladePar.Rd0000644000176200001440000000214613201424001014631 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/cladePar.R \name{cladePar} \alias{cladePar} \title{Utility function to plot.phylo} \usage{ cladePar(tree, node, edge.color = "red", tip.color = edge.color, edge.width = 1, edge.lty = 1, x = NULL, plot = FALSE, ...) } \arguments{ \item{tree}{an object of class phylo.} \item{node}{the node which is the common ancestor of the clade.} \item{edge.color}{see plot.phylo.} \item{tip.color}{see plot.phylo.} \item{edge.width}{see plot.phylo.} \item{edge.lty}{see plot.phylo.} \item{x}{the result of a previous call to cladeInfo.} \item{plot}{logical, if TRUE the tree is plotted.} \item{\dots}{Further arguments passed to or from other methods.} } \value{ A list containing the information about the edges and tips. } \description{ cladePar can help you coloring (choosing edge width/type) of clades. } \examples{ tree <- rtree(10) plot(tree) nodelabels() x <- cladePar(tree, 12) cladePar(tree, 18, "blue", "blue", x=x, plot=TRUE) } \seealso{ \code{\link{plot.phylo}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{plot} phangorn/man/add.tips.Rd0000644000176200001440000000161413236441733014646 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/treeManipulation.R \name{add.tips} \alias{add.tips} \title{Add tips to a tree} \usage{ add.tips(tree, tips, where, edge.length = NULL) } \arguments{ \item{tree}{an object of class "phylo".} \item{tips}{a character vector containing the names of the tips.} \item{where}{an integer or character vector of the same length as tips giving the number of the node or tip of the tree x where the tree y is binded.} \item{edge.length}{optional numeric vector with edge length} } \value{ an object of class phylo } \description{ This function binds tips to nodes of a phylogenetic trees. } \examples{ tree <- rcoal(10) plot(tree) nodelabels() tiplabels() tree1 <- add.tips(tree, c("A", "B", "C"), c(1,2,15)) plot(tree1) } \seealso{ \code{\link{bind.tree}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/getClans.Rd0000644000176200001440000001427013201424001014657 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/clanistic.R \name{getClans} \alias{getClans} \alias{getSlices} \alias{getClips} \alias{getDiversity} \alias{diversity} \title{Clans, slices and clips} \usage{ getClans(tree) getSlices(tree) getClips(tree, all = TRUE) getDiversity(tree, x, norm = TRUE, var.names = NULL, labels = "new") diversity(tree, X) } \arguments{ \item{tree}{An object of class phylo or multiPhylo (getDiversity).} \item{all}{A logical, return all or just the largest clip.} \item{x}{An object of class phyDat.} \item{norm}{A logical, return Equitability Index (default) or Shannon Diversity.} \item{var.names}{A vector of variable names.} \item{labels}{see details.} \item{X}{a data.frame} } \value{ getClans, getSlices and getClips return a matrix of partitions, a matrix of ones and zeros where rows correspond to a clan, slice or clip and columns to tips. A one indicates that a tip belongs to a certain partition. \cr getDiversity returns a list with tree object, the first is a data.frame of the equitability index or Shannon divergence and parsimony scores (p-score) for all trees and variables. The data.frame has two attributes, the first is a splits object to identify the taxa of each tree and the second is a splits object containing all partitions that perfectly fit. } \description{ Functions for clanistics to compute clans, slices, clips for unrooted trees and functions to quantify the fragmentation of trees. } \details{ Every split in an unrooted tree defines two complementary clans. Thus for an unrooted binary tree with \eqn{n} leaves there are \eqn{2n - 3} edges, and therefore \eqn{4n - 6} clans (including \eqn{n} trivial clans containing only one leave). Slices are defined by a pair of splits or tripartitions, which are not clans. The number of distinguishable slices for a binary tree with \eqn{n} tips is \eqn{2n^2 - 10n + 12}. %A clip is a different type of partition as it is defined by evolutionary or cophenetic distance and not by the topology. Namely clips are groups of leaves for which the maximum pairwise distance is smaller than threshold. %For a better separation we additionally demand that the maximum pairwise distance within a clip is lower than the distance between any member of the clip and any other tip. A clip is a different type of partition, defining groups of leaves that are related in terms of evolutionary distances and not only topology. Namely, clips are groups of leaves for which all pairwise path-length distances are smaller than a given threshold value (Lapointe et al. 2010). There exists different numbers of clips for different thresholds, the largest (and trivial) one being the whole tree. There is always a clip containing only the two leaves with the smallest pairwise distance. Clans, slices and clips can be used to characterize how well a vector of categorial characters (natives/intruders) fit on a tree. We will follow the definitions of Lapointe et al.(2010). A complete clan is a clan that contains all leaves of a given state/color, but can also contain leaves of another state/color. A clan is homogeneous if it only contains leaves of one state/color. \code{getDiversity} computes either the \cr Shannon Diversity: \eqn{H = -\sum_{i=1}^{k}(N_i/N) log(N_i/N), N=\sum_{i=1}^{k} N_i}{H = -sum(N_i/N) * log(N_i/N), N=sum(N_i)} \cr or the \cr Equitability Index: \eqn{E = H / log(N)} \cr where \eqn{N_i} are the sizes of the \eqn{k} largest homogeneous clans of intruders. If the categories of the data can be separated by an edge of the tree then the E-value will be zero, and maximum equitability (E=1) is reached if all intruders are in separate clans. getDiversity computes these Intruder indices for the whole tree, complete clans and complete slices. Additionally the parsimony scores (p-scores) are reported. The p-score indicates if the leaves contain only one color (p-score=0), if the the leaves can be separated by a single split (perfect clan, p-score=1) or by a pair of splits (perfect slice, p-score=2). So far only 2 states are supported (native, intruder), however it is also possible to recode several states into the native or intruder state using contrasts, for details see section 2 in vignette("phangorn-specials"). Furthermore unknown character states are coded as ambiguous character, which can act either as native or intruder minimizing the number of clans or changes (in parsimony analysis) needed to describe a tree for given data. Set attribute labels to "old" for analysis as in Schliep et al. (2010) or to "new" for names which are more intuitive. \code{diversity} returns a data.frame with the parsimony score for each tree and each levels of the variables in \code{X}. \code{X} has to be a \code{data.frame} where each column is a factor and the rownames of \code{X} correspond to the tips of the trees. %TODO See also vignette("Clanistic"). } \examples{ set.seed(111) tree <- rtree(10) getClans(tree) getClips(tree, all=TRUE) getSlices(tree) set.seed(123) trees <- rmtree(10, 20) X <- matrix(sample(c("red", "blue", "violet"), 100, TRUE, c(.5,.4, .1)), ncol=5, dimnames=list(paste('t',1:20, sep=""), paste('Var',1:5, sep="_"))) x <- phyDat(X, type = "USER", levels = c("red", "blue"), ambiguity="violet") plot(trees[[1]], "u", tip.color = X[trees[[1]]$tip,1]) # intruders are blue (divTab <- getDiversity(trees, x, var.names=colnames(X))) summary(divTab) } \references{ Lapointe, F.-J., Lopez, P., Boucher, Y., Koenig, J., Bapteste, E. (2010) Clanistics: a multi-level perspective for harvesting unrooted gene trees. \emph{Trends in Microbiology} 18: 341-347 Wilkinson, M., McInerney, J.O., Hirt, R.P., Foster, P.G., Embley, T.M. (2007) Of clades and clans: terms for phylogenetic relationships in unrooted trees. \emph{Trends in Ecology and Evolution} 22: 114-115 Schliep, K., Lopez, P., Lapointe F.-J., Bapteste E. (2011) Harvesting Evolutionary Signals in a Forest of Prokaryotic Gene Trees, \emph{Molecular Biology and Evolution} 28(4): 1393-1405 } \seealso{ \code{\link{parsimony}}, Consistency index \code{\link{CI}}, Retention index \code{\link{RI}}, \code{\link{phyDat}} } \author{ Klaus Schliep \email{klaus.schliep@snv.jussieu.fr} Francois-Joseph Lapointe \email{francois-joseph.lapointe@umontreal.ca} } \keyword{cluster} phangorn/man/pmlCluster.Rd0000644000176200001440000000506013212303074015256 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/pmlPart.R \name{pmlCluster} \alias{pmlCluster} \title{Stochastic Partitioning} \usage{ pmlCluster(formula, fit, weight, p = 1:5, part = NULL, nrep = 10, control = pml.control(epsilon = 1e-08, maxit = 10, trace = 1), ...) } \arguments{ \item{formula}{a formula object (see details).} \item{fit}{an object of class \code{pml}.} \item{weight}{\code{weight} is matrix of frequency of site patterns for all genes.} \item{p}{number of clusters.} \item{part}{starting partition, otherwise a random partition is generated.} \item{nrep}{number of replicates for each p.} \item{control}{A list of parameters for controlling the fitting process.} \item{\dots}{Further arguments passed to or from other methods.} } \value{ \code{pmlCluster} returns a list with elements \item{logLik}{log-likelihood of the fit} \item{trees}{a list of all trees during the optimization.} \item{fits}{fits for the final partitions} } \description{ Stochastic Partitioning of genes into p cluster. } \details{ The \code{formula} object allows to specify which parameter get optimized. The formula is generally of the form \code{edge + bf + Q ~ rate + shape + \dots{}}, on the left side are the parameters which get optimized over all cluster, on the right the parameter which are optimized specific to each cluster. The parameters available are \code{"nni", "bf", "Q", "inv", "shape", "edge", "rate"}. Each parameter can be used only once in the formula. There are also some restriction on the combinations how parameters can get used. \code{"rate"} is only available for the right side. When \code{"rate"} is specified on the left hand side \code{"edge"} has to be specified (on either side), if \code{"rate"} is specified on the right hand side it follows directly that \code{edge} is too. } \examples{ \dontrun{ data(yeast) dm <- dist.logDet(yeast) tree <- NJ(dm) fit <- pml(tree,yeast) fit <- optim.pml(fit) weight <- xtabs(~ index+genes,attr(yeast, "index")) set.seed(1) sp <- pmlCluster(edge~rate, fit, weight, p=1:4) sp SH.test(sp) } } \references{ K. P. Schliep (2009). Some Applications of statistical phylogenetics (PhD Thesis) Lanfear, R., Calcott, B., Ho, S.Y.W. and Guindon, S. (2012) PartitionFinder: Combined Selection of Partitioning Schemes and Substitution Models for Phylogenetic Analyses. \emph{Molecular Biology and Evolution}, \bold{29(6)}, 1695-1701 } \seealso{ \code{\link{pml}},\code{\link{pmlPart}},\code{\link{pmlMix}},\code{\link{SH.test}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster} phangorn/man/read.aa.Rd0000644000176200001440000000325713201424001014415 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/phyDat.R \name{read.aa} \alias{read.aa} \title{Read Amino Acid Sequences in a File} \usage{ read.aa(file, format = "interleaved", skip = 0, nlines = 0, comment.char = "#", seq.names = NULL) } \arguments{ \item{file}{a file name specified by either a variable of mode character, or a double-quoted string.} \item{format}{a character string specifying the format of the DNA sequences. Three choices are possible: \code{"interleaved"}, \code{"sequential"}, or \code{"fasta"}, or any unambiguous abbreviation of these.} \item{skip}{the number of lines of the input file to skip before beginning to read data.} \item{nlines}{the number of lines to be read (by default the file is read until its end).} \item{comment.char}{a single character, the remaining of the line after this character is ignored.} \item{seq.names}{the names to give to each sequence; by default the names read in the file are used.} } \value{ a matrix of amino acid sequences. } \description{ This function reads amino acid sequences in a file, and returns a matrix list of DNA sequences with the names of the taxa read in the file as row names. } \references{ % Anonymous. FASTA format description. % \url{https://www.ncbi.nlm.nih.gov/blast/fasta.shtml} Felsenstein, J. (1993) Phylip (Phylogeny Inference Package) version 3.5c. Department of Genetics, University of Washington. \url{http://evolution.genetics.washington.edu/phylip/phylip.html} } \seealso{ \code{\link[ape]{read.dna}}, \code{\link[ape]{read.GenBank}}, \code{\link[phangorn]{phyDat}}, \code{\link[seqinr]{read.alignment}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{IO} phangorn/man/identify.networx.Rd0000644000176200001440000000175413201424001016442 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/networx.R \name{identify.networx} \alias{identify.networx} \title{Identify splits in a network} \usage{ \method{identify}{networx}(x, quiet = FALSE, ...) } \arguments{ \item{x}{an object of class \code{networx}} \item{quiet}{a logical controlling whether to print a message inviting the user to click on the tree.} \item{\dots}{further arguments to be passed to or from other methods.} } \value{ \code{identify.networx} returns a splits object. } \description{ \code{identify.networx} reads the position of the graphics pointer when the mouse button is pressed. It then returns the split belonging to the edge closest to the pointer. The network must be plotted beforehand. } \examples{ \dontrun{ data(yeast) dm <- dist.ml(yeast) nnet <- neighborNet(dm) plot(nnet, "2D") identify(nnet) # click close to an edge } } \seealso{ \code{\link[phangorn]{plot.networx}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } phangorn/man/pmlPart.Rd0000644000176200001440000000471013201424001014534 0ustar liggesusers% Generated by roxygen2: do not edit by hand % Please edit documentation in R/pmlPart.R \name{multiphyDat2pmlPart} \alias{multiphyDat2pmlPart} \alias{pmlPart2multiPhylo} \alias{pmlPart} \title{Partition model.} \usage{ multiphyDat2pmlPart(x, rooted = FALSE, ...) pmlPart2multiPhylo(x) pmlPart(formula, object, control = pml.control(epsilon = 1e-08, maxit = 10, trace = 1), model = NULL, rooted = FALSE, ...) } \arguments{ \item{x}{an object of class \code{pmlPart}} \item{rooted}{Are the gene trees rooted (ultrametric) or unrooted.} \item{\dots}{Further arguments passed to or from other methods.} \item{formula}{a formula object (see details).} \item{object}{an object of class \code{pml} or a list of objects of class \code{pml} .} \item{control}{A list of parameters for controlling the fitting process.} \item{model}{A vector containing the models containing a model for each partition.} } \value{ \code{kcluster} returns a list with elements \item{logLik}{log-likelihood of the fit} \item{trees}{a list of all trees during the optimization.} \item{object}{an object of class \code{"pml"} or \code{"pmlPart"}} } \description{ Model to estimate phylogenies for partitioned data. } \details{ The \code{formula} object allows to specify which parameter get optimized. The formula is generally of the form \code{edge + bf + Q ~ rate + shape + \dots{}}, on the left side are the parameters which get optimized over all partitions, on the right the parameter which are optimized specific to each partition. The parameters available are \code{"nni", "bf", "Q", "inv", "shape", "edge", "rate"}. Each parameters can be used only once in the formula. \code{"rate"} and \code{"nni"} are only available for the right side of the formula. For partitions with different edge weights, but same topology, \code{pmlPen} can try to find more parsimonious models (see example). \code{pmlPart2multiPhylo} is a convenience function to extract the trees out of a \code{pmlPart} object. } \examples{ data(yeast) dm <- dist.logDet(yeast) tree <- NJ(dm) fit <- pml(tree,yeast) fits <- optim.pml(fit) weight=xtabs(~ index+genes,attr(yeast, "index"))[,1:10] sp <- pmlPart(edge ~ rate + inv, fits, weight=weight) sp \dontrun{ sp2 <- pmlPart(~ edge + inv, fits, weight=weight) sp2 AIC(sp2) sp3 <- pmlPen(sp2, lambda = 2) AIC(sp3) } } \seealso{ \code{\link{pml}},\code{\link{pmlCluster}},\code{\link{pmlMix}},\code{\link{SH.test}} } \author{ Klaus Schliep \email{klaus.schliep@gmail.com} } \keyword{cluster}