tutos-commits Mailing List for TUTOS
Projects / CRM / PLM / Calendar / Tasks / SCRUM / Test / Inventory
Brought to you by:
gokohnert
You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(13) |
Aug
(214) |
Sep
(144) |
Oct
(22) |
Nov
(22) |
Dec
(93) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(25) |
Feb
(31) |
Mar
(92) |
Apr
(70) |
May
(103) |
Jun
(130) |
Jul
(265) |
Aug
(325) |
Sep
(233) |
Oct
(244) |
Nov
(261) |
Dec
(157) |
2003 |
Jan
(101) |
Feb
(135) |
Mar
(148) |
Apr
(164) |
May
(53) |
Jun
(116) |
Jul
(149) |
Aug
(126) |
Sep
(45) |
Oct
(109) |
Nov
(36) |
Dec
(61) |
2004 |
Jan
(131) |
Feb
(236) |
Mar
(278) |
Apr
(259) |
May
(92) |
Jun
(110) |
Jul
(150) |
Aug
(64) |
Sep
(141) |
Oct
(141) |
Nov
(146) |
Dec
(65) |
2005 |
Jan
(70) |
Feb
(77) |
Mar
(129) |
Apr
(153) |
May
(161) |
Jun
(63) |
Jul
(42) |
Aug
(16) |
Sep
(30) |
Oct
(3) |
Nov
(8) |
Dec
(40) |
2006 |
Jan
(114) |
Feb
(16) |
Mar
(12) |
Apr
(15) |
May
(4) |
Jun
(9) |
Jul
(69) |
Aug
(27) |
Sep
(12) |
Oct
(80) |
Nov
(62) |
Dec
(41) |
2007 |
Jan
(34) |
Feb
(2) |
Mar
(38) |
Apr
(82) |
May
(61) |
Jun
(37) |
Jul
(16) |
Aug
(64) |
Sep
(7) |
Oct
(52) |
Nov
(18) |
Dec
(28) |
2008 |
Jan
(168) |
Feb
(26) |
Mar
(27) |
Apr
(19) |
May
(10) |
Jun
(58) |
Jul
(58) |
Aug
(91) |
Sep
(14) |
Oct
(23) |
Nov
(56) |
Dec
(38) |
2009 |
Jan
(58) |
Feb
(90) |
Mar
(204) |
Apr
(90) |
May
(27) |
Jun
(177) |
Jul
(116) |
Aug
(53) |
Sep
(42) |
Oct
(120) |
Nov
(51) |
Dec
(58) |
2010 |
Jan
(117) |
Feb
(231) |
Mar
(163) |
Apr
(90) |
May
(40) |
Jun
(139) |
Jul
(49) |
Aug
(118) |
Sep
(25) |
Oct
(80) |
Nov
(102) |
Dec
(99) |
2011 |
Jan
(176) |
Feb
(42) |
Mar
(60) |
Apr
(52) |
May
(30) |
Jun
(29) |
Jul
(27) |
Aug
(16) |
Sep
(51) |
Oct
(70) |
Nov
(63) |
Dec
(58) |
2012 |
Jan
(28) |
Feb
(26) |
Mar
(7) |
Apr
(12) |
May
(41) |
Jun
(61) |
Jul
(59) |
Aug
(38) |
Sep
(30) |
Oct
(28) |
Nov
(14) |
Dec
(31) |
2013 |
Jan
(24) |
Feb
(54) |
Mar
(45) |
Apr
(22) |
May
(35) |
Jun
(8) |
Jul
(18) |
Aug
(38) |
Sep
(11) |
Oct
(8) |
Nov
(19) |
Dec
(20) |
2014 |
Jan
(20) |
Feb
(22) |
Mar
(4) |
Apr
(6) |
May
(13) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
(6) |
2015 |
Jan
|
Feb
(1) |
Mar
(4) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(1) |
2016 |
Jan
(4) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
(2) |
Aug
(4) |
Sep
(1) |
Oct
(1) |
Nov
(1) |
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(3) |
Jul
(8) |
Aug
(13) |
Sep
(12) |
Oct
|
Nov
|
Dec
|
2018 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(2) |
2021 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
|
|
|
1
|
2
|
3
(9) |
4
(3) |
5
(3) |
6
|
7
(2) |
8
|
9
|
10
|
11
|
12
(5) |
13
(3) |
14
|
15
(4) |
16
|
17
(3) |
18
(2) |
19
(2) |
20
(11) |
21
(8) |
22
(17) |
23
(2) |
24
(7) |
25
(8) |
26
(8) |
27
(15) |
28
(3) |
29
(10) |
30
(5) |
|
|
|
|
|
|
From: Jeroen B. <kw...@us...> - 2002-06-30 21:28:09
|
Update of /cvsroot/tutos/tutos/documentation/user_manual In directory usw-pr-cvs1:/tmp/cvs-serv3375 Modified Files: appointments_pic2.png Added Files: projects_pic1.png projects_pic10.png projects_pic2.png projects_pic3.png projects_pic4.png projects_pic5.png projects_pic6.png projects_pic7.png projects_pic8.png projects_pic9.png Log Message: again sorry for the bindump --- NEW FILE: projects_pic1.png --- PNG P§'æÈ^xÁRxëÖ¾Syo=¹ðØC?õÔ}»wï{æï¥ ¼Ö3ï·;pÔ)¯¾úêéo¼øØc«i6mmm]¹R=\só2cý«W^)"/»YM¯n|æbSÍPä ä-ãa_óM]Ƹ%_ùq¦ÚÚ×1Ë¥KÓº$xã§êâe7«µ'| :Ø·o_Üò3gÎ4>õÜsßk¨úgÎé}Ö÷Ð'ôxäâ·5=tÚmííÞù¿}ã)S¦´M²è·?.u ¶fsÍÍËÔ_³ÙÖ¿ú@ws¥zxѲ"²zåê)ß^Dÿyç'|úc;¸F½vc°ÍVÞqË"c¯Ð¥áú¡ãÖÓu%Æ ìÒë +£CRíMª=á¹¼î+lqS½'ß{ÖEL0Qß _BÚkL`ƧöîÝ«rêÌ3UÞÆzäÈàaÏ£ßÿþØOº÷µ×¼ó÷·µM:uêÔ©û~ýë5+ùþDDAtÿý÷7Í7úêÎÔsDDdÍÊe]ÙPÒlª/º²á©Kz'üeì+µ,loEØL£[§x ½ö18l==SÛJÆÅÕ´ú"2T{$iÂóþ m|÷º·Å÷{}üÞ½¿xöÇL0QÓ hßAÝz¦èO{øò×Tåzñ°.ìTã\ùÙ³Ïî}á C~ºùÚkòÎwèùÓÚÛ;ÚÛÛ¦L½{cPÞe^xÍÍý ª»ÎûU[&ìëÃ髾íà}Ö¸F{`x0tJÈ#Ô¼ÃÛøqWl¯¼ûûóY§0ÁDM'|ìÐòT°¥ª§zêSÞà©§²¬â@lz¾³¿ÿ]3:;üÕ¾)££Íýû=âȳßÓýðOü^dÆo;ì°}¯¿>å7>ô¡+øÐ>tÿý÷«}õkÁz÷)=íÝ¡èþ̧*ÝwËUöúuùûn¹jÍÍýÞeKkpoEØç|ø37©ö5ÄÇXÆ7ÓØöd3Õz·¼oÕ¾0Òj|«$ÏLpãWö´´ÅÞ@K+x@5Xƽ*Kýk=åm¯íÛûÝíC¿ÝóÛ={öìÙ³G¶ßë§Nþ»»~þ{ÞuÊ)ï5ëØã;tÚ´¾¥7øþTe*wzÿõ ùV:a÷©3?üéõ_°µ?:ðl°þ°cpo }3E%÷ÝrÕ}·\¥¦C[§=0×Â6Óºj³nEÄöªD½Uâ çùÝø¦ß¶D¾M ç2ÁD'&2«ºµîóð=¬jÞ¼yÞóæÍ«_|çì¼ûíÇzÈ!û÷ï÷ñǽå×_ýõ7Þh;ì°ïúÅá¶í=¯OíÑyÊ)'tuM=ôÐÀ.§)ââ¥+Ô·~ý×÷éD侯^Þ÷Õ«E¤ïÓ74 ÒËz+¹ï«WûÕ«Ö+ +`¬ÐX¥Â°9Þzé¸Hp)K«uC"ãtÜzzBÅà2Ó·°¯è$ÃP#_ÙXá9Fâþvryùm'¾ûÏ¿üíL0QÓ HóË9;<|OùÊëªr½xXoòÀï#xøn9áÈ·v½õð6ivÖþê÷V¸ãßÛDNìéù»w3£ó¨YG¾ü«%Ç÷ηopðÇvnj?ÞWݺÛþ»,¾âï|3}sµ·.×Ó}³©Ù·t +ì+à-\ÜeaÂ`YiسÁuY" «Ð^UäzÝ_ËÌ`Àö2ÆW9A¨$/ȾñÃfêm½-aox îxØûûÈ~ØRøµ×^óýÞñá>çs zè!cy9çszè!]R?Ôå ×ø÷ïV¥ßyä'qøþæþ}¿øÙ±Ý}ô{ßvÜqÏqÁcõwìaÏ.×áo;ç§þÄ3ÚJ¬»u¹,®Ã F¡¶¼ÉðZL6b²#xàKáýû÷ûr^Nå½9Ò<ò?~3ú±×^mêñ³^ìêÙ3eêË¿ùÍEo¼0çõÑWùÑñ¿úéW_ûÙÏ6íµC¦øO¥ÿjjËÿM×ÂÔÆßý½1ÁD'<ö[ùRZÞåýÈ}Ë÷Ä©3ß3úòÔ]ݽg¤ûï8þð·üppðíoûÌ9ï}ýcþâWlÆwnûü+þ6§ú3¤BDÛÂjôIÌòf{ñ¹gùn&¨ãÄÎý«îG:|DDt¿0¿ò±ÖþcØïùùcwí|ËÞ=··}Ì1wôï¸& ÀSôî&²ýLú² ¯rKÿ,s±v©§AÕm/r 7ýkmÙÛÇe¼×=6¡-ز¼ Ó¼m¿·É@a4û±ÏéÓ®÷\½UæÙ7lw ¶ "¿+xW÷î8ÁF÷Gó¨8· ã¨@Ed9Ö*µÚsYrgN#º¥×S÷çÒ®`mîÃÞe³zMÃdø¶Z}Ö×ï#³=«"X{êà"ÉöwÃ.W?Zd;HîøÍ¹Æ\3±å´ oF£¿¿¿Ñh4~¤å(QÊ rªÙ~ bY]{Àü^ëâ¹QÁïR Þ@¸ï Îî ʳ'JVCæQ¥7P| T -˪é`¢uqÙeùÒdúi|Y°/kù2¡¸«p#óMTz»ÂÞ]ÆÀJ6c¶6«l^qªñ»+ÿxd]ï7ñé;´ÝGß°búñUo̤ö:&xYK îWUJ[²ßÛ9Î ¬J +aù¯¬xrÒz-ªµÚç1xISêúú¾qÚ4©4ù«oKÆÝ¤ùÚºïÜk=8Vö±î:nüÚì¢üsvìá1 ä=¬¨N½Ïº87çq2L&¯W}³f#¯cÌÕg?yÇ[FíÊMÁh§Xo¥·PùÇ#ïûh-¾ayO¨ñwô½ú ¹ÔÊýÕ Ë+è{ÖþN(æxd¸còág(,°Ïq¬µú:£J |ëéò åûÐù¾Iªß¢dÚD¤Ùl7nºIßN¹§§gxxxùòåk×®U+V¬h6¥F[EDå=%ÕX8ììVß²Æ3tTgî þi6PGô# EµÅýÆÜßÂ;îzu±²ât|!DdÇ¿øw{Å_/ ¦ ʾp?ÏÆÈ+ÞµÁcmö·HçkTÂn¥w;0É3ÖêÛ(Þ9aÓ¾Õ¡£RÁ8«¹oêà%Ð"ãte§ÈPÑþnðwûÌ`|i:*¨©:1øïݡؿn»,]p¸Ï;Qb<¾®dpÚ½¯YÇCÊÕeÂ}¦ï»KEÚ´âGz?Ìús[Çðì¨CMFéï USÇ¢vìÙþ^\¶ï+ î¾ïñKq°ÌlÓñ³ìêNÒlº¿.ªjØ»]ÞWî¨N{º+çãüÈvSé[>«ñ·½ 5ìÝîr". ý}¤ýÀX}¿&W6r{`-órjpØÓ¾Ò4ÏF«ÑKTSÑçìèÁùö±¯dÁfÏ;VÝVØ&uéhÖèå(>ÔXïöàX«1àÈe}ÏúLÑçìØçÛèV |d+"Sp+ìÑò¬åasJ§½yõnwܶöeËm/Ъ*:Ö Á+8xÝ£*>ZDà(FÆ×0v²]EPé᪫Ç~ap)û×Âï,f)°tVJlE7B¾`Çce»l/èàòdo¥\ÎÙñÊ/{Uä¿ØS/ [ÄYãJö)\ʽf7¹¯ Îw_]ØÜU+wé¾¢ÈÓyâ>¦Âd%µ¡¡!_¨Tw°"o¥â~iÌÁué9ªHs*F\¾YT§ñ&Û >å=@v©3¸ cmÆg}ã"«¬Ä±½a"KÚ¸ÇiéÒ¨°zÂ*qи^ïÚ3ÜFÞݽã®ß3òîDÆÚâù®l%ØJù9;úap¾ãLxÉö}q[äÒO¬æä',{¿?ØÆ"% Ûí'ì=4¢?äa5Ïä<¸ØÁ:Ör¥öEì͸¸K65Çñå¹M¶%Ý©wÕ{$2l:A0úL·È-Lñ9;óí3a3ó¸9öVä!X¿c<a§ÌØ+Ì6TãüÅÜ_VÖù+>ÊT(A>ëZµðhmܦÕû¾u?ð¤Ñªûú±R¯×Jòã]jN*nɸ2ÿIUµU½]5îG¶êUðx@ûÞOß¯oéÒ¥)×[£GJ¢Tã dhhh¨íþûï/;ÀföìÙË/µÈºuë/_nÉqkÓ«ùÁI¼óÉÀÁ_P-@íú×[am¾9-ðÁ ; ¼© OçÃ$ë{» ?85>g v|;ú`?)VbÈ©ç·Qa¤/×ì#_x´··?ºiÓ¶íÛO?_ÆÌÎÏÈîݻڶý³ýËÖÿ³,¢>|¨éäzÊÉswÿíÝ:8í}'Ùyùc¹T=ܰñÁ <¥ÿÍ3}FF^öÖ¿aãC"2¼sgGGû?ÿy9ØûìììTkïéî¶(©_2Î?¡wI+Íu-.T$'ô.É{;T§É>ÆW!ÈÊn1/cz°ö¼Áb®+¶Ä,¨øSöóè Gµ~ð¼sO;Wÿ.b×®ÝccãÞLùÔ¶íj¢³óho ÒçìÜvû×ï¾ç®éÓÅÔó¦C_ß1ÌáKîÝð]ùoÙm;ªµpá£6©³jåàð¯Jxzì·û@gqg×ô®°/=ÝÝjÜÕ1ÔúÒÉ£ä8Üä·?ìvȤÉaß~1´ªM®&oÜ_[ ètëROÜØrMiRxÕ¤pÎÂx÷z×9 ÷g;x¤n]k79?g#o·2øTEzZXâ×* År-º6>¨zH]]Ó»¦w6ÞióçuuMßðàÞbnúþYg.<ëÌ g-\8¼sçÈÈêoÛ¾}||\ýØÑëc¹DwGFFyt~jdddÝú÷ý8RÅôöS½ÞºìSyËÞ¿_¹÷ïWÛ2òÒK#/½´nýú±ñC»êl#y|ËÖÇ·l=yîÜv5^-¾ÓÓ÷]·þ_ml1dçÖÒ2Ü'ô.QYU!oTÕ°²"3Aâj;Oüõ§gz;y¾]:~c&«lK?Rª£íjòä¹s×_¯Nd>}ú¶íÛO;W3uæÂ+ED N<w®:¡æñ-[;:ÚÕôØØxgg§þ9ÿùçûøÖoÝ*"íG/¾ðG6}_<Ã"222¢.e C®[¿^·³³sÊQo9ê/¿~û_|û˾kÑýælüJ·hñ uæÂÏ>«rí[?zé¥êÚëÖ¯dÓ¦ö5ôÚÙÙyòÜ9¶C{ à¶Û¿®ë÷ë(ì﫺zh?>düîùTzÞ½àðcäªíÃaö®F·, òîìÒïVZfÇdÙå½òèÙlär^«=ÔjvòZIØ h)Á´°I#î951cæLylóf)}lóææÌ#<RÏ/~þ¹ )ãîÜ[&)*a£s[¦¾Û!nÇ ôò}+MV"1rä98['È+ûûEäVUs>ñÉO~éÚ/룣£ý¿Í7Ï1ã'"rÒ9_ºöÚÁÁíÞìxù^¦§¯ìï¯Èí±*u"CuVg'ù«æ8ì²f/ûù>@½L¢ùп~÷ÿÂê{ïXµêôîûκç^Dþê+_¹ãß8iÎI"rñ%þÑeqÄj)Q©ô.»ì.»ì¾ï¬{zxHD.ÿÃËÛ¼ùÎü¦qÎNðÒób¬£Á2a¿^\QX%MÕÖK^ä"959lAËi>q#qLÌ ütª`ÿÕwRk¬C¤ÆóQgÉ ^´/,4&Q¬>ߨ˱±°òq«ÊË1Av[&x86ÁÁ¹4ò8{6§&ûa_Ê1Äçd¡xÆyÁU_tØ«õ=t¹Ô¾´%°ô&Wì1CM¾`Á-·Ý*J^Ùßÿ+>¸a£\|É%w|cÕàöAÕATÔHUìUwxGeÓ°éòT½¢X?K±¯,¹¢È:ÃbËËv»HMËg)#ÑìC 62géÅå½HسÁU»+æl+æÈ§7ÈÎæ+¯ïï½àyQPu¦R >6¹fõjYyS÷Ô+¯ÈàöíÒº÷J)Ïs<ÔñtÓX_²*ì^,gäÑd¸Gëäa÷×Z._çRMä}µôbn]âÕr9òßnW,ÇHÛËÏì¿ë{w^Õqé¢Xu¨S{TGSË dµ¢¼µN?²ùâ"Ò6:.»,¿}ADä׿Úÿê×ÿîOD¤ýì«3wÎàöÁ6 ýHd¼v¶ª¯å¼Öêh¹ÿ#EäõL;ìõKûvÙÿ¿}¦sßsLu*óÊ+¯¸T¥Î_]sï½"rÑÅÏûæ >£££77VªóZÕ¡Ju J¥Ï?÷:Q k ´¼'}ã%ÚóäêþþþF£Ñh4¸ в? d« W7äwzl@ÔýHÔLäÕ #¯JÖ% ë)F.n¹êaäõëuÖ8'lÚ[8V¨a m*n¨@ar¹ïD}ï6>ËWuyÏdöη_³0Þ 5rk|gy±"Çó,J¥©>}¨âîû¡¹Ò$kÊc Õ,U!o¥!V7:ÛÆfU[õG0Éårß¼?Á8§u¸,ês¼º¡qfØ 8¾¥¹¸Ë%íïI{õÍÀG#åfI¶c£"Cd»÷¼V_;¯Õr[Óö&XËǵèZRíÞJ²°kÚØRp-ºr%¹]úv´Ä£+ºL°°}qË hUÞÎö*Ëê΢q)=eËÈþ·öÛáÆºéG$ã=l]îïê~wÜ÷>U¶ó¦4ï ë5ªõN§ÃZî;S/ÍL\ °°ü,ã8FêøÐr.O°Xd<5ý%¹ 0òöÿì ,ìYã|ïLòbë)óZtU¾ÒMcóñ*Rrt-ÏØã%2s¤}P´\UÍÎ7jkYú hUÁÏàüÈÉ£äkW9ýT96`W2 ~FÉ)ÙAD=¶6îûÑjT¾ÔyNO»/%$H´ßï=tVóÎÌÆ¥Ð2¾ïÇwï°ÈÙ}Öª$î±QAZÊ'nEÞ{ùÒ÷aØtÜ@+Iy&N0MF.}?Ò»ÇO KåFÞbFGGK¹;vBwßc.8Ó7Îi©GOûò½¨ Kêqà°üdúÈ¡¬]»¶ìP¾¾¾¾¥KEf¸ydeeßoóîëÝ+#Ó¤KaOé¾ ½æ r(sïÊeRçË,^¼¸ÅòʺuëîyâÕ²ÁÙß÷£Ü]¼½¨»hºgén¦Ä=Óë52Ö ¸hÉsO5t<²H#a a¬°P=Ö; d5¹Þ«°iì~ õÉóÝ{oqûy9¶¨°x Ë¢óPØÐ¥K';ÃÀaÙ¤L´§û~ÔèæÈññ¸q¿|¹¬XBJ_x=Ãê·¬4l3Ö q# ÷ðÂN*q?ÇxZP¬hÝgU«7i?¼jÆøÒ¸¼^±¶R]|õÆ'¾zcªàÝkH¿.ÂvMód¿ô>ôã£gúNÀq,©çD7±%pMózíïbEÛ2õzªO%O_¼ì^C¬uqMóry¯in;-,g¢f238Ø18Ùx»k*'yóÖžzãÞ§ú21á+)íZtVM}O± ã5ÙèL{>:oùÒapA_ fÙ°Å%Q/¥]gÇû: Q£\âjZä¢ÅS¥t¢Û«+ïüHõUæµèH LräH B!s÷( Ö8Õ?÷^ Ý= @í#ÑâÜIÊþ줺{0ÉÙÆZÝËw ¹à÷gLïö¬}ÙÈEì+RÈ@D<nÙåj"¿Û, °¦7ïû³Æ Êr0»Ta¬Ò7Öê¸Tuâ aøD&àê --- NEW FILE: projects_pic10.png --- PNG Ü}² L0 ÚÆ{ÆêùöاõÝÀ³sçY¸µ¸¸x~~~ ~ÉGZ7m »}kÛãö{µ¹2õÙöÐcHTTâëOâgÞ8611188ØÛÛk}ÄãqjÆ.ÙÓq;oÎÈÚÕàû¾ffvöÓÚ]-aBÈõ=ÑåK,..nºÐ´=Ð×E9pô¸)ä0NÅBv°Ý>Ô!þçXÜzLC¢ò<7nÜÐåYá¶=±8ß~²¾ªaïÞôÕ«é¾Mï¤KáÛSßã÷ÏÏÏ?±ró?þz½GMÓ|>ß®>úràøQCÿÂ>ùÆmÈ©¾.BÈÁ;ýÈ©¾®S±#Mºf²BN§i¢©©e^¾lz*Nó<{QÿMMM|©ðRÀô|»ý¦±Ñòù·WVü~¿Ïïo»}I¿×ª7M8~n¦úϲ'F´S}]lãs±¾H0ÚbÓ¹P¤OÐ4õÆWG·=?=D&!¥R©T*Eå:55555EµGóõÂ3Ì´(bÎOþ¥¶õºKNLÌ}ôÑÂÅ©¥%>?ãó@ ¾uk 侮BèÊÞàà ¦ikç÷ÆÒÖX)Ý÷@Wì@W2Ðw/µe¬iì%ÍY5°tNÖàòyc¦N&|þÁ߯MD¥%!¥Óét:=>>>>>NÓ|¾^x,sC(ìA( BlwC{²6'×qiz:uãFõø¸¶´DîßÁòkÁ»AßOR©¼èaâ2wï¦ ffhÌû¡{ZåP{ëxÌØ¶³ Lðknn& ¿µ+>sllz¦Xø'LÛ×ýäÆººß}üg27§e2õ6>õpè_¯^7kll¼wݺôò²eeß¾}Nãñø¾}ûé_Á¿ZzúD>SH³ 1!dÿ^j0p¼{ÿ^Cfièǰö ?1nii!;wÎÎÄ[ocoáèçäÍ÷Ö-¥Sï}¸¼L&É$YWI/ï½ï¾¶ÿâñhn¾çÎú-[ªkj::_6êjÿËObOè9}¢GfS)îþØþçñ!Ѭy04æ=ge·Q¨Z|É祹í±=D&!¥9FGGGGGù½ðI»07´O§Ó´×`´´´ù'ÂZÚC[ë««ª2ÌC [ÖoX^^^^Yñ[÷ÅkµwUû2$9¿ØÞX×ܼmûö@uµþÜs{ç+tãýóBÚ0SX´°ö`¶£úä§O¾ÓXoÃÒ´m¾÷·ëß| D¥%!¥8Z[[[[[ù½ðXf+P$Ø3³gÏ={ínk-mvaâ#d½ßܶkye%ɬ,-ݺ¾õ?Bü7¯_Û ej"õ;vücÃ.´WÜ~øeÓ~øeæn¯BÞ>ùâÛ'_$tt¾"d²4oOÍôxc>ßÌù+®áY/ ¡6YÆ>ºmݱKdc8üÚ·m¥ÓéBÈÈÈõÉ¿4ôuïÊÕ¹ùjâÛ¶¡vai1óÀ£3cVR?ÌÌ<½{éÝïgUuW/ÞSSKªªæ««?6èÝ=søeæÏrØxn)èíÍ =çô ©ÙØ @"«Ú~÷O/íôEÃÃÃ9U-@íûûû!o Ûö${)<U'¤ R}¦àAïd3 6+÷&ááa6'Ø mq¢3(#ܺ<2ÅÜlͬ»píý Ú@.>+BU:<<ÌÜb¢^ » + ®?Æ[^¿.s)Û%й `΢0Ðö*ÊÜkÚxp}{ÉÉIzÖ]¾`@Û°_Ì.¯¿7à¶³(륲HÚ΢¬¾²HkiYÈúx±ñ k3².Õx?n5Ð0+Éh;ÇM»W£Û¸ÔCY@ÛY¸'3ºÖ%dÊÕC Mt!ÚÓ|kK³L/Ðv^>Òë*Ã0OäÌÀZZ^ [ºÏYÖáHð*q;Ï ýU8¥3ÊØsaÁ_ ÐvkÃð$¼oRü0©và¡DRî`N ¬C%ÞOæåpgØÀBî¼0ng!wÕÚæå_Y£wQ&úÚù|ë¦ ÀÐvÞ\ÒçK©Ôûóm; äoz7+Íé"w --- NEW FILE: projects_pic2.png --- PNG ²qµ{Üp¦µTñãç?ðÒKG>÷\çõ×Å»]Õß?Ðßß7c8p Õ¢öTÔ«já¼c4Ã^rèýQÙi(긬9ú½Ö#º+á9ÂPªPË/îä§=ÙH}ÿçç©sÏb 6Ýйӳã.³£©g}ö¬³Þ>ú³Ï>ë8Ä¡ÌÝÑÞeüö{æ÷óï~UìÞÝ9xð¤wwá{ç=öÃC$3gί}ôo¾9ã·>øÁZݸqã?øÁ 6ÈÿFÚWÌBU¢ß¥¶õ9Uø¡¿½0ï¡;ot·¯ê?tçÞ1ªïkÝËÚ/âJ2ìb|èã·ËþÆu$ÂZ'Rhí{¶B³YýÌG #¨Ö§Jæð¬Á'ß<hÜÒÑw½ þ½pÏTçhä¡;o|èÎåvlOãtæñX¸ V1«^$´¡ !*éÂÓþÅ|ÛAíOHG_¶ÊÿòýËØ`b7ÄtÖqÙò74»Ì¦-Z¤.Z´(®}Y¡öï:éÈ#8xðàorò¾w¼óÍ7ß|ó·ú>ú»~zÌÀ}ÅÞ=ûgÎ3xÖY§Î=óÈ#Â8ª^¿JþÓÛWÿF>v«â¡»n7ºë&!ÄÈÇní^ ïRûê<t×M{Õ¡ÕMëAã*X´¶àh0®Dï©ÞMÏ]̽½VIÓóì© Oa$½²*Ô)0ÔÄG6Uxø?|>ëq'gë7ÿ×Ïþ÷v6Ø`£À 1ZömÏ µÅÈ]úªl\í7ò>ôyîÝ/8õ¸cg{LèÝ¿ç[ëNøÇ>!Nú¯ï¹hÎàñsOØýêϯ=ikÑ¢7vì¸õÉOôinüîÿK±ôºÿ)Hë׬PÛ#s¼,¹~Ú«© ×1w÷9b\ 8q8w¯y,G$q ºJ<®ÿÃá(4v×±>ÊBM$[x&÷É+Tç*. (Ô®×E/ôhÉéûë_ÿº£òÁ#¸¤úzæ^çþß¿ÜýË}¯¿ºÿõ§Ì}yöÐÞ3_ýå/¯xë¥ùoî~íGß?åçÿ4cÏ}?þñ/îvN$çø7=Fÿ(Ô®ÿ× ¿õ¯>Ìl»¡'Î7t$Ú²ëKÆÜ[ýÈç²w÷«3ÿ~ݼ½SóÞýë§óïíØñ®w½ë´ù¿ùæ'þÙÏïòøÛ»?!ø?¯û«Ú/Umè9ãÉöò?:ù´ß` 6ÚØùý¿WcnË_£CWß2[¾åÿ#n÷þóÓ'íÚù{éï?áÄ¿2ôÏ# Ù׺íßx6eÄ xü( yenýÅ«ØWHn4îË.Õ½çî9çÀUß«ÏÿX;Îçùñ±÷M½opìâ¾Ëñ$Ìó´ÉüÜ&[=.ûun«´/F%½©×SÇkháï â^Ä3Äfªò~вD'»QuOfÂ89[.z=udôæäko§þgϧ_fkþÅú¾E=¦q |Ú þ [×]°ª(ség-¬§¯Û¥^)©øÇÎ[V?¯Þkjàcøìj`ÌáþQD"±#]Ð 8õÏX¨îª*4_íé" z5U)l;öÕ+Õ"8Á¸{ %êÇMn«ÿ'p-"ñD×õúÊ5Òã1lZØæ³ËÜ®äôg[ÇýÔþ@ã 5TëvCâ×U7æ¶ÒöY»áÒÞ4Y¢Ør{ãÆjB[«ÿÊÂȶ¬·¯^aãÆ©¢úêW¿j^}õÕºèâxãîuÖûg×¹-cOàZñèÑ:êûT® 5ækÚ$-ë©ãÏDÔÑMýÏÓ|bT}ªËÜú¯êâ(o®Ã|/q=}ê¹YMë)YRW¬eVÛWnéßÇÕW_IÞùÓ¶õaÍÀ½¯càR ´ðW£ðST{¿â]ÖÀj6ç{kµFeTõƯ¿õoÚlõ_ç®q8¥çÌeä:wb*µµ#%qéü3äzò.d´÷8fxXk2_437UK_?n¤R½Ú(J\V®+4¶GÖY³Ed«Êâô׬Ùrwå2¦¿ i3sBãæÈø;2Ó'0+¼$É´§´!oæzÊ©kz³§¸¯VxòpÜ9Lw,·úW¨¹ÚÝ1%¨_®VSßú½>kÐ2¿c(ãÚvB¯psysó¹ªéuä+R½ÉÛ6ÕH4ЧPâúãq¨ÿ:·ù¬uObñnT_>æø¼µõzvd_ó¸ªPïçÁ|ÁȽîgB5׹㤽ªRÈUÅÅ÷wd-oþU£Â6äj»¾ bEþè"AOö(®ÖWÄÒ)©OÑét&''ÇÆÆn¿ýöÉÉIyÇÐÐÐäää+Ö¯_/7VZÕétj¶éS_n·Â<²¯u=¬a ç/Ó_ ±ú@(\çVãoâ <J5û¨â39tÏ âwÿ9YïmÔëzG___ç°bJ¶wüsHûGÑÒd;®ÉÚëIsÊy³¨Ø2¥bV¨ ë×Ò#7Qx]Fó2Î|± |ÝS¹¤3îSÍ¡^\ôYèxq¼ =ã´inë»û¼ [7cpßësÜügÒ¿~hk`9óþôTäÿw©YÔ`æ^-ÛY*e¶<òêl°ÌBë¶Üpÿ×ܽTÝQ ÕDÇ<EÖSçùè×Hû©Ö]÷ÍÃ:0#ï£c7ñ|!Ó_ÍÝèõãbÌ%zz6§³qçÊÑ©¸ÆÝC[Ï1\Üqóɸw*æ¡ÍÀÜ'!ëßÏ^ÔÉâÅÄýÉóy_¶³$sËÑ0Aú Jm[ãD*Ô;¬ôï¾Qe`ç'RÁ°õÑ)û´g{z§z»Õ¶õ²U¹µÿl y}K0î£xfnÊZÍDöÌõJín'ÏLCÜx=ró¥ð*ëQ s#r¥Â>Ï'*ÿÎÄ ûIª÷4ÍTà#åI?÷d ´¯Z3Sx±o>dFwzþYÕTI¶?lÇKs3çeh¤ûXOûýA½ó±æp0U<z¬ÕR£.WE.ÜÔuÆ þ&ë°©ØCj¿¸ÛÜÜ|x¡Í½ÜòËè~±r4¯çéHIfúô²ýt%ó$d7×È1ÏæóôÅúçê]ìËqSÉ|JY¡¦+/§6dAVÅoSÜÄ%Cðq»¸ó}ëw ç̦ÖÝÍ)ñB&Éó¼$¾$Y_î=g])kã þJ\¼öÞ< úÔLl<òÄçjE6æ¤T£Î ù,U÷ynkV3C;zjHwFZ©u¬vÑëñ&/óGÂô5kvPgÌWd4 ¯ZòiÄýXÓ]Á?Nw¡O§âÚkÄ'Bëqõ£ç?æ ÙcÇBèIÈÿÊQdIáQéR=^B{ÃäÿH%ÊpDá+ÔÔM³Ü³ÐçÂp©¯ÈúQÔ¶~¸¸ÈõxRu§<qa¸çHÌ>V)C ¾¯î érÜû¶ïi`{w³£zàÓNÚØJMÞyÞX4-mV¨¡(ú+µzAïÁWðÞ9zÚV½ëî.®ð©ÁÍ»r5ÝÁ¿ªÐÀ´-ß~úõG¾!G³gÏ=kö9g/:çìE³gÏÚôoèÕâ;¿äó\°dÉäÎSSSrмoßþmÛ·ïß¿_~8[÷áß½J ¬§¦¦¾ýøê®©©©ñÿnß¾ýsË«ãú^¯pìòßqâ;ü÷Õþûjk_¦^yeêWÆ~xßþCórmâ©§·<õô3,èÛêcfðr÷Ú<ÁøÃgícë츧Rày8µuüWTÒ£jf=.1?envðôßÿT¡>(/;°üýRñ[ókcÓ¶p¹å<¶¼=0Ð/çÏ\°`üáåbòY³fmÛ¾ýÌÔDñç/¹ulµBN/¹`e[!f ù³&é»ç9ÛA=Ï©ë27³N-ÇóÓAq³ j#òªí¨!6½T-»8U'î+Ò¸£Ä2ºì¨ã×ú<îñ·»Zb{m];Ï7ò sg÷ȦMëx@¹IUøõ«k^.9Ƽi*û<1twÙÊgm¹;Ô^w¸iíZéb=¹òÂrcÎi§ !ܼY$Íu?¹yóóç!;î8U"øô'?Uj¨EQù»Ô,Ò5©Z_M<á´]¶^ÛÎ0#9h¶Ð$éjôPæ¾èýª´}Ãè¨â¯ï¹g÷îÝ²ä£ø¹ù³ªòîÝ»ÿâóÿI±yóæ9sæüpÇ!ÄóçææwìØ®çìkþíÕjûÑÑæüÐg®Ä)\Ü,nsRKá±çÄuÎuîÕm ·b<RDZ¶¼9º's<â8!Ä?<êè7 ú·!¾ôÖ¯~4øÆGÌ{²¬óÚk¯ù4%×?øÀB+®¼rþ·³íÞ½û±Õrm¹¼.¬Éÿ^Õ ,ïek¤DÞ=[zç§ÿèÕOüÍëþPÑ9 ú߯É.wmþîæ+®|û×A6wó¹ïر]1{Îù}¨BÛwÌ?ÿ37ö\"xðuOnÞ,¿¨ü´ÓN»÷«÷©QõW]%g}ù> 9_} n9w ëår;r¡Z¿×§}³Á¸Æ plÄm[7Tã»8BÆ ÍÝZ!çıí0®´gÌ@Ü>Rõ+[Øîcù 4D)³åòIÏS~ùTËîïÇõ69jê*ñóþå>ßÝë)±ýÂwiÎ{å ;óAF©î;ÔDÌËYIüê"Rdz$±já!È9{gwëà¬ØC®QÁ4§] øß S¯na·{Ó¼ìä9ejrÕ1-&p?@eM=ãñi-1¯W©QÁ4 øèÕýVâ3Ùå?eçÓ¸g¨lܱ©(®Zܺ§l²íÛlZx¯ýOxEµÖüY N)¿Vöªy5Ôz}ÔgGÔÅz;®¦Z4XYø}?®£¦µ©¸ qËÍ|ºàîÏîÁ¤?ÿ3æÂEü*<Ï~eÛ³S¡ áúöS}my$mÇ-w,æÌ°~ÕÚ`ÃùìØp|û)Ü-ì@;[¾ý´;dùöÓüËÓÌTªNÚÙNÇ ¤¬UÜ,G*)®s;U^õû©~°È <2*Ý÷qp'ÅuîBWñ¯ÙGýq?Tìn¡¸Ê¥§s9 _¹lá-k·ªòÈvÜ^ ÍÜlÝH¥àß ûæ}Óv¹ð#©×¸ÉFÒîj¤£~æ^¹.\õqÛikr®;3wâ.Cñcn=eNKåQ!¹cËÖ¦u Ãs÷ â+LO½zòpNLÞ>mÆÝ¥ÆÍîsö"QÈQ¬¿|àûuªÉÕaK.í²l7>>Þn·×nÝSw ¨Hñ¿Voâq©ÕpV vCóø¿ÿPGd¶([WþdÚzME×¹«ä9çìHÛafËÈQi÷}Ñv¯ñýÏÊÒ¶u¨7~5ËýGºiÇÄyö¨²x .ÛVk¾DÌ×Ü7ó :=N.!.v!±£)ó.0×H¦m£ÇÜ2m¼üù¯ðHÀÙ¨Ô+ÿ #£$ÃÌB3b+4ëÿ;¨ªÃаpÖÇh¯ß èçF ò÷ÊeÍ)qÔéqj°v[·õ´íGFuÖQ¾ RQW|-ïê)92.÷©D ÌoçI ¤2´mê Æ÷óÜå¹ý±$-ÂLÞquA©Ó¤êW¢É Öek¢<p4\mÛ:1rm]®î2/«ò¸:´´ôÌúRî.47Ì]RUö yþQ~ @uþâ ;'GÕïJ» @ð~ Æ÷ 5 ^ÖÏkn\AíÈÜèQrÌÄ¢z¤Åhµc IÕ«×fËqº¨w Öö] )¿Æ<y±T»T,<.TxТ'lëä¹§oó ¤m ;4%s#-sýWbÒµ¬ó¶ýµ2"éVQ O/·fÁÄ\iÁ¬x´±n;`nså¾¶<±)óÓÛæÚ·ÇL[c-×Kô»" ÂHzÖekÖãæéy Ò¶ä3/ª}¹yÀw²p sw-sÀ¹".oZ<há*KÛU¼E¨e°k}»À°h fË»Sd.ZçÍ»À¥ú´jμpÖkÏ%ËLÒ¤m ÈÜ¡2×%&]ëÀ:ÿhÛY{#ò2è L&r÷éÉÕzUwA=íõò¸C[·4 ;`nósSúFþÙòĦÌEjOpå¥{ûA8{ôi®Þ2ï5â>Þr¶¨Ì h)µ[×tÄÔÅ]C ÈÜ@mdJèÄÐ51uq×.27P=º¦#¦.îFæj`¦@C×tÄÔÅ]CèøTP®ù®é©»Ð¹iôqUä¼Ãz)ïÕÍ»nÛ*øØM3Ü[Ô.èdn`ÈË}I¯þÖy×bÕ#)¯etÍbIÀðDæjF}tMGLºv×m[?vÓB9BD¶ 6D67Äô´ÚQhÝZÄ 5 z:ÛuMGLº&·Ê¾úv\eó^Âõ{ èM¹ÚÈQ]d»®é©Ô®ùUÙPÈÜ@º&ÛuMGLÍéãlHÌ@ 5 äµ÷u£££cccccc¹ÑëªÉþGÈÐ>É¯ì® àSaèuu%ÂÑ G¹ >}$s Ç"²&ø¶ 9s --- NEW FILE: projects_pic3.png --- PNG F+E`ååµqiÍÕ¤ÄÉ1y®7×cÃ@fÄ^?ÖÉJw7Àòµ³×ømcb1tDzAbgð;7Íý£¥r©ªººº»úíïçÑ}ª«««_æß©óën! q»%®¾gÏ"ãnÐgÃåKϽ'_ÊF¬ î f÷Ýb]-¡{qÍFGDvاY'Û²r)µÿ>¿ñÔ³` &`¢qwôìeÖq4õè£uÖ¯:ðè£:Vq °UFÏ{ËÉ}}Çüì[_{öÌîßÂÑÇ\túüû¿wà}'|ò¯yä+¯¾:çµ×/_nmtÓ¦MË/߸qcô_}É,%ê,9FT²ðw>ô«k6ïºõZwû²þ]·^{ç-#ê²Ö¥¬-øoE\IEÌßùÐÇ£íÛµVhÝöl f³ê×Vu#W§JæîYëûw&®?æ*2ÿÖ¥Ï7 rÖ¯õ½ôÊË_ß1ýËùâ/¾øââÈ#ö¿òêâþþ7Þ8ûô·uÖO=õO<ü#oÔþEE·ú_Ù¾Hõú¡ ¿óÁä?³(Ê<0×lßã'òä þ[WaCKîºõÚ»n½6ÝÒÄ~º;æq,\ ÎUË>ËHØ?i»*H:UÒuÏûÐDËÊóPØÇ²±Äo¾{.úUL0ÁL0ÑÈCY³>|RA^Qh³Ì¦,Y¢.Y²$®}¡]¼øëo8áðÃÛ¿ÿ¯tâÞ×ýꫯ¾úÚk#üîîÕ{xk¿xñ }sçÜwÖYo7oîáGK©ÿÄÁHzÅðxôOm_þúàB»>q]ôò®O\'úà³/·fÉeÕFîúÄuÚ\¹jùÒºÒ¸ Ö-8+Q·TÝLÏEÌ¥[-7$±{OND}ð)Ôº¡VåѪìjâMÕ=ÿóVm0ñ mV_VÇ[¸õ¶ûoB¼ñ×Ï{ýQ-1Û{dÏ߸㴩i qÚÀÀß¼å'÷{jßq{ûÙU'ì\²ä;oüö®zNÒüäB¬øÀßh ZIäîu£rzè` ˸ÊZµ¹¸Ïã*Äëc¥qsÍu9z× »©ÄõúG¡ÙawëQÎÐÕÄdë»ÚÝëFÏ:ÇJÛ7ëq±Î d¸ãqìq1V¾Êü¡®´è.à #G¾éQy§ i çºxQ^3 6mJÕ«/~ñfáå_i]G0n®»°Ú¿Õ¸ÍYpp<FÄÿðÍÌì{IÛ´cN%°ö§þÝVÕí$IËúGêø3Ul¦úçií|b¯tG¤÷O¹ví/1íÛµMÑÃ!ªîjâg«ÏGpÜ"îµtòkõȸ÷ûiÃIÊָݪéÎÖÐYæ¨sDfKGAsܲѴû¸üò˵Ø:Tm=¬¸uûvþ§q9ï¢Ê·+îìjÖÏâqµZm?¢òã¾Ôí6ÄwZÇFóþADã$~¶: ëð¹ÜDÕçXWx`ÔÓ"ó_¸céZªµ¸¡èüéjld¬:î8f8¬ÿ1Mæ¦*ÙPýç+_å%.h®ª?©íYßÌ:ò7(íÓª´~:4ño!Ï®«ùáðQ®ÆíÂã¼òßúloåê â®\Äo»AÚÌïF£ÎÚèµF§cVQl<DÛiwiM¾k ÒÄOAUU¿Ýww*Nw~Ý:·Ó~îïY§+î·t5îl÷yç/%ê/^t3³5:ã÷n5UZæu¨s}.OÌÐW'Èñjn¨ÝÄ7±ÏõçxïR7ËL-ÙÛT = Üû¼¡%jÜswÇ:æpÐU묣~¿ßÄ7´®U}µù¡âÎÐhÄXze¡ã>ÓÖ\jmY3[V¨öF{>GPë>ªÍåJ2$Å( ¸þÄýY%¬ÿUºmärººNÅÒþè´N'I ·(n¬ï6-Ôd£üÕäýSöíÈgÙ*¿«©ÎvÏ¿_ÿÏå´³³³ív{bbâãÿx»Ýf´ÛíÑÑÑ»ï¾;´·uänÕzX+ÇÝD[Öz©bT!Ã% JV÷ -EÀ6C5GMº¡ªÕ¡ÅúwgQBGSy¤ÝÛÁëPmjík ¸r:ì¿¢÷¤¶êçI ýwÿ9YçVþ~çØfgggggS½ãÈ¥L»^YîßÏסµêLØS¢éݨUgò¡Ñ[MÚ7AE¶õZ©o%Ê.áÐtܵ.e÷mÖ<£Ü QIô2OTöv,X æqk/Þ`öy{>¬çIÑ[]íw?ÚÞPÒFÏê²fkÁ×ëóöÕIûþ¶Ñ,Y!íûu1§KîàÐÄtÆÛ ú1ïÿ¥Õõæfn²úÒúöâ(T«¶s³BUçuEÙNûà2ú{@ÿíT-x2'ÍBët4áþ¯¹x¡<7GÓ«8æ.²î:Ï£SÜæhí§:=¬$.õK¿Y¨}͵ø}rXcÒÇ ¥)â x¤<©{Cûʤ}Ùaýn ߪ f5YØç»åzÿ¯õîßy[¯É\Ðó{EØnTÞµ~MöIMºQygÈ·©à÷ Ûlb2wø´Ó©Ô¡÷Ak-Wë^¢þò ªû+üë cØU*O,®Cè\>øð6r'±ùaÒrDájíóƧÊðQ3ªYâòÇLæz3´ê·Âò;c\}RnTÕâõ)UXcý æ÷¨Üßmda#ìÞ:äì¹Ñ{2·yorñ¢ª¸·&×êü-ÂݸfÉÐù¸EÜáxó¬ü¿m9¾î«§ý)-ûããÄóm(Û[U¶±à|¡>MkÒ »Á¡)¡VæÏeÕjß+rîºÄÅã¾íûü¶'5É w¶ò\QÜRÄ: XþGWMºqt¦ÌQ´ìt#RC#ex«ü¦¶#Äõöxå¼$1ñ©VçRpi·(ðÅ%kz21ÐåjòQZnDâ:SräQ}RnDjrh:Òì¡ùiÕvÈ£Á5Q5îA´Q[õ94Áï[°µDõÙMTÏp¨½ÊϽ] ¬;õî¾û eØÛ¦Ö@×nµZ7n¬º# ò9ß Ð#(Ùÿ¶ª» zÇÖß@üÛNqø¬B¼å<qÄâØÓÓ¶±{÷Ó½½=}}}á» !î¼ã(° !Î\xµ}ù¥ÂôìÌL 2F÷i'mß óÄýuª/ES£(lýdú¶n®ºj?¨QµÜÀßj ÐÙºõ÷V|3yÏ=<ôPoOoÒ××wæÂ3ìÞ¨üÔßÊöÕ»x²Q6ª6ª¢j ãcÛ1õ¡&yÑ]ÁÌjËsp° #Á<-͵§:ë2ïT[X!ç&ÇÕ´ÖQÿºÝ(n[ÌfV³ÖIuôS ¢"ËR½¨ÑZkÓQËê´d\ÛÖÂûoÏÀ6÷Òq9ÖoúMñ¦ß,mmþg«/]yâíK¶Òùùgy«³Jéd¢cç^ЧNy©fXoAûÁ±õO£ÌMÎ)q[jÞ>8qQ5ÓòwÌCgX<g³Ô³ñ:.°"æ÷tTÂÌc-1#9y@eÐ㨡oj#©Z0ëCAû!n-q»¥MÎLÛoþØÜiq©&*wûv5ó®FÖÙm¾÷Þ;6lF¬kHýlæ¯>:æXÄ%õZ_ÞE*»7¹8E{& «ÓsÝ#.g£Ît°®¬zòÉhâäSNB|{ËÈñí-[ÞzÆBc9F!þüÏVÚÕ dxÍaU:lÏÇ¥ddH8nÌl½."dÏJáW ¬ßñ[ɨúê!Äçn»mÏ=QÉûþðÿâ#÷ìÙóß>öWB-[¶|òÉßÛ¹SñÖ3Îø|dçÎjHýÞÿx¹¾zdäkGßdDÒ(Tܵõº ÊB$¦¼'îkr¹¢¸µû§jÄU0È ¬ïû§¯ÿù¾cÃ!Äçn»ííKÞõɧzJñ×ûØg?ó·ñV!Äe+WîÙ³çÊË/?úèc¢¥Qü}åå_yùåw}eòñö´â½ÿñòooÙòùÿõEQÅÅæ¥Ó#UFµY'YÁgEq8N¶R}Ö¸HAG»WOªe3tµÐöµ iúKÑVÔ±Niæ§B±óÅù¿#ÞxB¼¸î°cÝóÿÜ6°Dw)ÿªD ÞM·]WD³]ë¯/Üô¥¿`¦¿ê4À-çüì£åû÷ï{þ 6hçßöîQíQæÀ@%ÖZÔK\}ó¡çÖ}éó;zï ë«îKÝýøëî{pÛü£úÔÂÃ;ì?ïâògh°A;?ø¶wj2 "ÃkY ÚÚ¥µ¥¹ãk÷^üÚQ/=ÿü{þüGWUݸüÖÍ»~R¾üèkOþhÿKÙjÜθíó cÞêp;p :p õ1ö|L:o¦|ëø{¤Ðgø0[Î{0ÒÝU³qgï3ý¬Ë Ùùc®Tãµy¶½|U½ùeí"ó³·Îut©ªÇsË NK1;;Ûn·'&&þõÙyÚlóÀºç^t®âêecccÓû«îNõ*9¿°æ®ÝÿµÚö"²>jµEhâF}>ñÜ+ªîî²æýE±qbÍ©©©åËLLLLLL$?ÒÜqëXÝÓ eY¹þ§õ´ô¬³9º~Õâ°»ÑÑ eN Y ÍS¯0CÝ®:B !֬ߦF¢´ k;ÚâòÝßòfî{¥=)Ô'n²¬ÅZD?Äoî¹æy}â¦mæ¿zp-Á£Aí©µ«Úñ6mÚTÜz øXGãÓÓÓÓêKá1\ãÊÖUã[«=kæìUØí×u`WOêïæoî¹]B¸i[ÏÌèÀ =|¦ÌYÝyÚ 2==-@"ãããSSSqõ1çõ~îBrö*m#>MÕ© ÙULKñ\*Û¹íNÆ ïá åt\¤ËûóXëÇMûTS'Òn»3þ-[·4í`yâ¾[{q] 9Wv·$vIOþªv v0Cèã^!Ìr³@ Ë±Õ g'''§§§Ó~ bƲZÜWͧNÜ\ÿ¥ ²zå"w V«E6 Uù3Ô¶ß©"rë¸5 A.¸5 )"j OY³~[ôOØBm ±6ÇR ?3V jCÅq0ÉÍ@5 i âV=/O´j%dû,¶ó OY³~Ô×~ðÊ&ºE .^´ûúªX·f}h1±»åÄi ±á¬z¡%Gåþ næ==Ô¨M¥mÙÜ¢´ [Í0×,L»®ÒÒEª ¢òÏ·¸ÒPª J´TØ; ϱÖâQ3rÕ¦ñ«û®v>ÓÙ:à¿^w! Ú]µ§'º³y! # !/_®=ð ̱öÌ®v×/Æ-eåÓ» Vl ²zå"w V«E6 å)ǤÕjÚ"j Lc½¦Ð]bÅ3 k7I5×Q Vl |@zshíÚZDZ P¬èXÐ1öìÓ2 RA`±ÆÙ!í¸ù· r]£ã^×E,gu 1nÙ5ë·i#ÓT RA´9¿´@ "ËÒþi$> XÙÿbĸ¥<ï4 Vl OY³~[ôOð(D ¬wÃ> ¬ÍQj³pð ùRe ·4 r{{tV {ü¾þì³:~ßû2}Z --- NEW FILE: projects_pic4.png --- PNG l¨bz5©À«ØÆÊ%bµRÓÛ^¥frÚ¶¶ëíé·· ^m¯ñ §åD¼¤`UZcIFH²¶l"&áWóÇ$ãdfÖ¬Y¿}Þ¯ýõÌ33kÖó¬½óY3k n//_qbýMïoªúÑSì £ Ù¶Ã{T{wfûXâò¦ñ|8þ C\½üôÔKUó+ûÔ¾ô½ËCËÜ*ÿNÃ[wbèÙBªò´0ñú.g 6Ø` 6:¶aDÛ/zÙѹ´ë0£;ç/¾xÚi§ !N;í4Gé¬üÐ m_½Ýxãv¼öÕ¯>ú¤¾÷Äÿù VéoùÒͳ=vúôé§tÒ¾p§YÝÐÐÝwß-&«ÿ ýÊï1?éN!.d§È }[ßpæÔyü;58÷Ùq)ÄU~qÅmÎO8îKqæÞ1ñÊÖÄÏ'°*Bð½':ùôsØ` 6Ø`Îl<ºù} У>*Byæâ°GyDnìÚµË9èGÑó+rQ¯_Öog»Põ»¦ £FôËËï´åËÿ#®Àÿ¾ùħv½êÅ}Çp§ç¼-pO 9¸:Ûf*ê´ñ·ÍÿÁõ! ºÈµ3°ª²v#Cíüc·E5µð½8Ý®Çù9ÄíN¯3Û&ÖfÔì|)HoybóKâGäLwnø[R¸Ä½äÿB Ë<&Õ^O5Â?½ã²ký¢-ê;Sài#Zõ{ PÈQö®ãöÒ¥yP J5wîÜ÷¨ëê×ÚC üîÏ®¶ÙÐÞ_ £åm<âlyÃG~à©>öjqPMhvÎvT£þ)@g¨Þªªi¡vÉHÔ³©t#ÑØöÕ3u<Eð|qïzKlh»mr[¥Àµ0Úc4^OÔó{2×HoÝȦ5[@η_»2vô ýi«ô¸_Ú¿aõ'Mun7¤ý¶Ào¤yyþ ü:4ð í©²©Î_XKB~ÃËÆåDUwÀI?kÏp]D;£´Nó4-ªr93GNÎÙ¸q£¥#ÓÕe¢±-óÇÕ3lܸ1U«>ûÙÏÚW]uU¦Côñ|qïúëýw8gßñW<c3³Ûã3$í^íi~³uM;IÒrþz~MD©ÿz:ت}Mo¤¿jïÆobÚ?GÎ:E{¾QwSÿm ù'8®/h¸ê: @ ÕÝþºîºëN?ýô(¢(ªy @xoû-#%î ¯Y½ôW^È®ÓVâlg5g¡ºZÔ.ìSÑÿ{j¿qç¹}&èB^FÝ¥¡!OiH3 Ѩs¦(¿¼DOUy¤ý´ë ;F~æe|òÅ*ð<)ûHåªù¸ûg5ü³"ÿ¦cÛòoú¯]ô?IƶQÄ]xê+e7ÃÓH'îpVÿ[l7ÛøKíü<»Ð3Wbç×7»3ãrú«r~°ø]ürhÎã`·3ϧçl°çwÄÉøl3ç,6zðÓ£ð?F΢þÚîÿ»äO´ÿøxØ2ì:ä·ÌY»d8gJ:a þË[±l¿¡¥L2<{¸×NtnË ÿí⥠<XM«âØó£üvÊ;£þT§³HbÙ<v¢Ñwj¤3FT {Ö ¬>Ä«¶qõr¾QeÃ?#³ÁÎo§ì=ÛéQ^;Õ¿^ÆE ëü{Mâ8}¢A¶¿qï&r}¹%ÉöÊmíâþ@ÉP2¾ÙÌGQØs #()ö[ÜÇå?iÃm¿À?F¢}ò4ü{Ï£¤Y7ÙN¤R{ág¤RrþÑÐeû´^¬^Úé!æK ìô½¨m}wq-×ÛêpÊ×ÿû«¡U¶Y¥£Olµ¥wÂ~)ÀøW0nÃóÒYCÅ)-÷´ßSè©Áßl£Â*ñÔÒøBvê/âÿÐÅCÂ%ð3I3¼xÚóÁ_*ÃÇX÷Dvþ´·³µ'ó¹áIL¬'¼¸§ÎÄÓ,U3,í9·ÎÿhÜ 9Í2|õqé~¿~C^îO´7âËùpüGQ»þÀöÄÁõWXlSé² /!<«rÅ<[àî(®Ì9BÜêÅÇGÔRþÅ LÖþ{#îÍöι´7ñÐF K{D/®XÛ'»è¢D|D¨>!ýÔâ ë:¦Øs¦(]=÷âÓ µ/ïÒ®Zl¸ëÎcÚ¢±cÜ$¥ÀÃ<yîrùST QÙp¼ þ ]là¯ÿ;qddX-¢ÖÄ÷Ë.}\:l3¢dy=ÁY8¼þ8¡c9ê÷þ«Büû¿Gï##B1þ3bèàÈñg¾ëWÕYÊxº£QôwÿYõdvvßBA¡ÝõÇÍÎ"öëÜQ2¦¿áúíK[gf)¤^1FåU¤«/öËÎö¶¬YßV¶sE31Cñðñ+ìÏ-¼ÍÎâEéÜþ9ñÓ?WÙÞþ诿üÊ+o^´¨²*ö?Òö5ýJ É£wÉ'ÃôbÙÆûóì=UçobG¡1þ}Wè @3éaÝ 3÷» !®þW}sÓ¦[ÿÇgEMãnZ}KÐy©füÛyâØBväl^ÈQ$ʰ÷Ä"Ù(çVÂyöÕ sÓ76½yÑ¢;¶!ÆO=õý2}ÇöóæÍûãüÉ%o»DqÇí뿹iÓ77mBvÚi·~ö3jÿ+¯;²;±âÚÊ À̯}ͽ×;ßrÏËQ|'9ß¿ø+¯ôÔ i sßÎæLDâ"l=I4:"*ô4¦E1eÜiª1Tç[ÙjNܯ3CÿÞ%cêáõô½¾´»ÈYõ#îÎÎ* _ôeEUXTU"àKo»£ÿlû*°x£ê&· Zè3òíÎF¢±x×_Ä¿À¾SPC.èg;±`àäS̰ßTQ©ÿKOÛ¼fJ¼½ýq9?çÀߨ6UUþV ׯß(Û}¸F:á© ¢ ¬çs®à;'=¸xïzòg> g#[UÀ¯ ýSeBòøË ×Oq¥·]H|fäñÌ&ê0ûãn,Ø%©CZ? È}1!®¸la3Çþ%}ÄT¥oÙ Uz\Q÷økeôË&ÆGg¿ë¼Uý®½cÙ¹Ó&0N'gõËMÆå̸GûÃ/ðÃñ|þöbñF}A PAí)f/Õ´ V-[ ¡jýë/e²zÝVµ3.sx aÇåFgÀHùU);Cà^â Êt{wá Û# ÊÖ> >olËÆ¥õ®î«F)õ/£¸R åõÞh0ÞrÛu:å¿Î"ý¤wôÁêu[ªeT¢¾XO{/ cç2XWa´> ®2èA¶=ân§ùDç~UNOKFó«åZ ä½Z-¤ × =v®?׸A¾ÁN/ýE½{2¨»ÓÁ·sèÝNtéùíø !{`¢§ÂÄwý!ÎJÂÛÜRö¨³±Z@dÄwÚú¨|Qu&lc? Üi] ÁõÕF¢ÿ`Uæ| x ̬·*$gx ÐÆµ+í^3Q½%wˬ':·²5î.®Z ä¤ÏQq³3Ñ ¯¯U¥²íZ¸RsÜ6ZµlbõºÕͳ;Ô«¼ï³ |Ù:e*Å´,7¾e 9U&î7Ks fõ:] ЬWçÙ>olËáè2òËâÎDcïÆF\%©ÚÖ(«-°C|áþW¯ÛêÌÙ 2æVÁº¢' -¦×ûÄü9íl: @Qk Ì^ è©©©º ]Pf¬KMnÚE=[è åû Àýï^÷Ö[ÿnµ3Ý:m=âÛTEÔí}üT5Úr ñòdȨËðE¤-Ò½ï:?Ïgâÿ¸út²ÏÛ2+Çcª WBWý;À=#ú9Ãë,\àekÏêu[õÈC CêãÎDõÒÓxWßÐ3ØÛá»°kvÌ&.¦Ië5¨9C¥ÄâöGm|ªÂõ1zòØÙâök¿W<.§³Î/:[)§Õë¶íQ¿AvÆ}tη<ÁßZû4NHã²ÜN¼¸Ï0çî/p9¹ ×Í:ýk|í²/Ä5#ä3´ÜfG!z#£O¢,.ß5ruªwRúNõBvá¯9¤mieà1¿TÎqÓâúø9ÈOÒίÎF%v¶Äýú÷ÓY§¿xRyÄ»óL<Fç¶:ÉS}¿º¸ëHáâÞÊVsâ~ oq< þã^z"ò¢ÿ²ù'íäkä¯?<[¶éCi?Òð'=çá¯!ÃªÓ 1(°TsÚ ³<ÃíJ±üýí©k8?PÜÜÙÃÿÒ~ Ý£ÁÆò߸f§ýèôÙ2úwáBí 9sKÝlí `¿ ä%Îÿ!Áw~añâ_üá3fÌ1mÆÓ¦M;þøcû·¯Ü°áÓ³¿Ç.xó#>kVVÔ#ºyÍÖûR58« ¬?.êê'3Q¸®8T*UýyJeÛ¸ææyËÓ'7öÿä 2m744ôòË/]zé ÃÃÃ3fÌ>}úÐд¡¡¡¡¡!!Äó_~ùåuë>ñÚ~Ç.«ÇR ò ¾æDÓíÄ*KUÖªl;²Óõáù÷ c¼ß36ÙRozÓFGÇ^õªWuÔiÓäà!õî¿üËÃ7ÜðWï|ç;SÕyóòGOÚEãêAÚüªHªJâ¥âöâç;=ãëqª38Îã&¯,¶?´»&Ü vÀó'÷Ý^¸pþÑGÏ>}Ú+¯¼òÄÿ~÷ÝÿtÑE¿xß¿ { ê£ã!²ÊL{òãáÊGýÍö,ÿ¬ îKý]pÎÄGÎûïÒ/# k 7] úèæ5[åbüWO+e× BaçÎO>÷ÜW]p¢ß B.Û½ûs>ø@¿ 3 {UJíæ¨þî Û¶]ûÈ#ïÚõS§xàûÇ/oÙõ³?tßa§yVë,ñö;Qý Æk¤\.÷{ ˾ð0 --- NEW FILE: projects_pic5.png --- PNG õ±Þ?þûªþÍÿÀM5Æ=»öðERIMì·ÿöGåñ&ÁYÇ(t{¾BOÏCU oJ~éK_Ò× æÙúÁà>pøérÆ÷WM=µâ~ðwüø34X~øþS¾÷úö·ï~| 6)ùßÑýiõ¿ºÚ®gìgá],°À,°ÀB4;vìxÎËU×Z°ëö¿0VLvÊS/øW?µõ+~ú^ø÷{÷¾ìe/;ýÌùÑK^ò_¿7ú«Oþ!Äxïÿ]Qû%]ô¶q§ëû>|òéÿX`XhÕ¾ûÿFM-aÔTêê;æÈîúÊÿLÚàÕÿ|ßKÛ÷Âg:a||åK^ò©·î +ìh»orY¿aôÇè¼^¨×÷TnÞ»më¶üEî\å|Qü˵±êb?Ûª<éǤñBX9»ê\nIÿm¯H=óò| ü8´ð ý©³«ÎXOB~~÷MªYúFdôgkp~Med8î²ßøË/ýwìØ¡¾ýå꿲ÐXõ¶Õ+ìØ±#S¯>ÿùÏÛ ^zi®Côñ¼Iký Í~l%Î#ã "ùۥ߱¹ÙýñuL¥Îþ´¿Ûº¶½I²rþz~LD©ÿx:;Ú«^&Ï+ÒÈç§Ú»ñõãÈÙ¦çåMw5õwkȯà¤Mü{©M}AV?fu©G[ÝP¹=R¯q=MêÓUQUÍCЪ¤f»Ê´\¶ÓpK/½ÔȲÅS¬óeÍÁ¿gX«DYwþ6®GéOQãÇôîëkÖÀßÓÎjýmËÅúoܶýÀfúIë9¨z>?sñ NêïVOa~/h~lOþ2äþ2æÈ¦&Kç@¬Q4ÔZ|:eKMzs¼¬ÿHØ"wSKYýOǪ_ã(KRHmª?ií9ì:ê;ã·Umýôñg¡ÈS×ò#D{ºônï«ð£hðxÛ5µÀ_¹ï Ki3w¾£ªÆè¬1-¡HÇd-}FñLf}J[ò·MYbü£kê»àâÚãß¶'=Yïß³®«î» ^t5éÝò!ËOJó'{ùÙßþwãûS}ª«' ¯ 9+w®b^lR^¯x£m=±ÏíçùìÒ¿JYX3»·Æ"}ùóHJ´¸çþuæå¨¡«ÎXOýR~~S?ÐjÓüYûCÜÿcúXë¼:çÂÛÚ³iU f/¼åò kýïfçâdRÊ%õ'éçÈùSûèZÕmûM®ëT"ãÎè¤ý&iá%óÓ&µ T¸|~²~ lÛBõw5Ó»=ðç7ü÷r³/Íb8.--õûý~ô£KKKrÅÔÔÔÒÒÒW^977'®¹æápXsÿÚÏ&õ8+']»ÀØÖyj¬ã/ 3]%W¯ÜÔåu>H¥·¬ú/e×Yqö³sËÑNãWk®¹:O|LSbe5UD ÝhÕKYûys¾C< ¦Èúld×hÊjÓhßX¨T{©§Ãá;ªù4v]âû¤þûk;ùyW?uíØØØðüÖBȬ=MÑøQÊ*ÇKYÑëht)7çß3Î[¡(ñ9írNöZ³f>×xXÒìùWñÌ«Ä÷IÕG*ÏLºÞG;Éùb5ÊÏõ_¡ E£#DÚ-ë% úÚIÚÊNÒá¬þYlwÛø¤¶ûïéQ!¼»¾¾àÜQTÓßóM=ØÀ×:õw§ÏF;I»³{Uä¹*Bÿ5þbÔ,ëÃÇ~Îý?ÈþBû§Õ³]!Ç®CÞÎöK㥬èu,ñL¶G¾J¦aÅ~³ËrÁÿ_{óJ*¬§WIì§ÈùÔ¾:ÕÑ~¦·sÔmpþmV:ÿ:) gü¬ j"àã̹stÇÿ§y¾u@6Ldò¯<ÙX28QJ#.9w^ØT5j§KIï%>W8?B¶2~ma¨á=ÿ«þÒ§¾L¯lêG¿BY¯ ï¥4¤¾vaȯQì÷Eòy6þÀ(.÷³]Î¬Ö >ä¦ I Í:¾PgÇR£³ÃÎW§ê§=ßÛ£º~ª_*Æ ¬Zvþáh<©rgá!?Mìjã3®½¾|h©[ù<xZ.ñó7u_E1ú~%6å¬ÂÎßáo×"G¨ôá7çH>©ã¦© Eÿ~Ö¦¾jå¾J¾§ZþÖ°7÷ÿ"(¥BmªxÂsEi×Õs[xHÙò/ÊEZUÄo§_©@ú³aüRJûª5;ÑÅÕG§0ðÇÒ®¦JZò 1¨&ù©´a¤fÝ»?q:ûV§°Æ¢ÍZøhÕÔÇHé ×»U&ù^Jϸ]sGGîú®#ëyva,#Zr8-éFVÆ<<ª6ÑëWñ7Oî?¬õùû96ÏJ?B.èóôUIìMTI¦ß%©[%Å#%¤où~O«¯ÆÝ3Ö:¾ <Þ$©5ýÂûé/9¨£|§éíø\eã+`ã·x¹IO£ÿU§¾L!F¡ýnÉ÷ÉSDEßæç{}+MºáoIøãïÙ.ùd/õÐ.,TZi@Ñ÷¢õÝ%õ\ïO¦Ã©NR7ü#èö1Ö)Gêì³þí¿>Í.tn%¼ ìð¡YãSÒ硳 KR{îé¿§»ÐÓ¿!ýqÊÚ§ÍβSÿ&þ'͹¹ÿJÚ6µçÏ@¦Åå¸xóSÅ^Î×ÜO¯§0µðÍ=m¦¾RºCÖ2éd ÿ/¤òê;åxEÊK|Úsüà|²W`¹¿Ð^H*¬NîÃñEìöût®¿Ár»ê,ÏQ-üu á9ûJýä)ô\I'pGI[¡Í#õÅbt¢?¿I#RÔ6ÚNYÿ§p¥þ"hÕ{£tY¨ä½jûdP J~ùp¨SÏv̧¾" × ¦YQØ$'\~Á3·~UüïðW{ðHW ^pÁ]wß-¯ Ìv©TMuXýü°ë¾U§®JJðS«WËi]F̱M10"ôª<T&i'kß*ͲErvÛRDðOï EÙün»õÖ·m#²í¤ç !^ô¢©!Ä~ïvµ,*Î,P)Þ` ©;â? !Æ<üÜçþþ}¹8Sò09d«®T ©×vu^`+de× ÕWyêW§;AöÕ¯BØÿ¿º}iÅñÏ !ùÞ~ðØã^{¦²_ß¹ó¶[o¿¹wï×wî|ýyçíݳWqÓ¶ÅI±·ÝzëëÏ;ï×ã7>óç.äM.¿ü¼óÏB<úè£*Å !Þô7ßvëë_'ûÎwÿý\]÷ µ|ñå×lª`ÕÑSä=ÒèÙÄ^»åv õ¯TÔ, /¾üZÿ&ÎÆ*8÷²UuGûüÏI¥ôô¡ê@eZ`ÚBùjÿpÎãÓ¨ÿç®àOeÈæuüaÎ(w6þõ}ø¦¿MÿÄYg#e}òq `¤Yõo0 H ,÷·ïÜQøø{R°þµº ,÷Ü8·â¬/ !ÈbÔÍÏÏ7Ý nÁ é. ºüVÒ5_Âwör.£¸M3ÓFÉæ»ó5uC{+U»WeõDñÁi!ÄÕG ?83}µVÁX ù¯ì^!'=á !6oÝ'?Ï4 =ÙqQsRõð§ ík$:O®Ê és¹= R,*Ué'Rû¾¬²`âc{ps ºO$~¾Ð=\~ í:övªê´*2:±±1»DJ-:9² ¬þµv´wÚNÆ3PbËz ¯²ñ÷LxMã= jÈ:>m;Ë&Õ©ÿ®IÁÔSh/ØdªÒ¥¦8/¼1ª¦FOãMâyÏä~;Éþ8Gg ýcQ¸¾íRÕDØWlY[¨ü0êm4-2po$W0XøLoáp¨®c .³å,FS:Âÿ¥XjÔªûîÈDã +ÆûÙCÖ ©nÏdRüRv0ZtAv$èÍ9>¬ù¸üÅUî\óÜZõ-{,,,Ô°ðW<ß{¿ü0µ >pö .Ì@¼Ôì½ÄXe¿ÕUyRÁOD-Âê-[JÙ£ñÑ_ecÒ^ÓÞ*ücÓx ëC@²±ògVÔ £f0,//7ÝdxRNÖe¿ÅÅű±±íÛ·gè(¶aÃLõççç·î>T!pv¬§Äs¾WȪvü 6>L²Qò$Ò'0< ÍÍÍ5ÝD#ÇeQDgæ]ÞòdEíÏ×guBZè«·Ýßt9.8"?-áH¦©\|"Ydcéë³À¬k qZFy;Æ~íÛùÿ]$x« 9Þ ¼y ¯_ÈåÏüü|Ó]ÀOzv$Sl, R,,,¬Y³fjj*ÓVëׯïõz\(RòYÔ{uù-²bX®=kÞãÔÔq¶AáOþÂÂB¥=£Ð;{¦XûÊÛ9beà&V ìä:R Fdcµyënc¬TeÓ*FRýWºëVÉêêi'Eí;«fMìrh#ã]îVóÈÞñîMI«RÏó_7À¹K TAæÝM3Óú(iêpì¯Vg8ÊΤ è#[p¿ê¿ú.r´#F;ȪAYç `ø·ÞUÔ Æ ¬L rgá©k£æGO0òhÕ×Ìý\z sú·ðjÛÔ¯æ³îÅh¶ÈVFHÍ×ÿ§ç-ØuÖT öZµ\í´ÏLÒìÉ/áYÖϾ]2ý÷PÈ´a¨ÀªÖÖx¥»®ÿ'#ÿ WÙK`Íâ%r¹Hÿ;OÏOá˶rF´¬çuUÕá 9Þ ¼y öNII.i6jx5Ƚk5 uA £IÙnÊ8 =ô)ªz++¥¶ãì«fSã¢Ký0"-MB0åx§ RêhH²,k y,·® ª ²'o¼LËPîY^ ²áó ùçȵ¹zÛýMw ®.À~Úz0© Fdcµyën=DV×~ém*WzD ZI± r¦UõMQAPO~á s´©µªÎÀê4666Ôè¡ÖS¹¶î ¦V ÐW©å§¤6eï¥ S;ߥHçLý4²¤ õóÌw S î !¶î>ØtG ñTÿjÏôkâoÛÈl4Õ tFC¹JíMô Lýì}93 î""!Iý³`³"¡ !¶î>ZiJø¡ ßK¾Gq ÅU}h íÞ Z%1ö¤²t&uæ@l>4 &Ü1ÿiD"z"pCrD¯~ ©ß×n-6 -M -ASwww7öyzxx{0s,dOOOc¡ÇÇDZ ²ðLþµÛíÆH«««±G'$S(¾§§§ÈÅ"ü« ei½EG¦DÀb^YͦÔâ© Ì'còbþsñÊ,æij±÷9Wû±Odc{ZµÕ¬¡À,Åÿ?·F6yEý ktmcIR;º}÷ß>ßWôéÈ_¥8[¼m ?yôæ)jKXjâ_^;«-¥¢QÛ-¬$0K¥·ÅöÎfdW['gbÖÀux§ñæ-Zsÿ>? ÊÈ׸RÀɪ&×ö)AîÖno9~c;¨é¦RK¸.?{y[>¤N¸|(l¯½U´eiCßRY^$&ËxÌmbƺ©¦¦E#.!Á×põQK7 gì<5Í:Ä·WïÈZ1´Ìsó"Ô2ݽ(JMí\lmÏRãÐ#l®éÙÚ ôg y3#;7óþÿV«ÕÕÕÕØ£uss3öà´¤U"r Ó÷ôôÙ³4w+ÈÂùMiý»»»ívûùþûØK´Dä ¦o·ÛííSýA ¿¾06 nû£I±Dä æJ ò¹äÖfbãH´Dä æJMÉ·o߯ ² --- NEW FILE: projects_pic6.png --- PNG Y:d©OçEñ?uzå¤g@ñø?ï}éOÁ,°À,´jaø·ésdï¼óNìàÁÆ×;ï¼ó.pV¾ã;üõï¸ã!þPÕw\Gv÷íB¼ì '¬<áø-þÄÁ¿»áóÿØâSSüò×:ù¢Ó'W,øîe/9Ü_»ö½{?òµ}wMltkîÿU±þ=l%ÒìÔ+Øp$éÊ ï½Z-$U6*èuìÍCöT!IR<;MZkïËÓ¤ýM¥î7üåðÚvn( Ü ¾(ÎW6|(=iÔÓagk¥KR}³·*ëmãïÿ-ëI Vý°Ûoç[.IÖþ«µöBHã5ywcS:ð¦RËu[×CÖÏ8r,áo§¦Þxû ùjû BÌÏÏ·¤ÿõ¿Û[òzÕdÅÑOkK¾]tQb§ÛJõûý÷¨ëêË:ZøÚ¥¾»ZØgC¼?FÏc<âìyËG>áöêqPmèvÞíY5?µ`õ© jU]]5<Q¨WSåF¡±ìÙV¯PÕñÁó &õVØÑ0vßä²* 7ÂèÑy½P¯ï©Ü ½?v'ÛÖmùܹÊù¢økcÿÔÄ~¶UyÒIã/°þ.rvÕ¹ÜþÛ_zæåù8 ùqháA9ûSgW?°þüüoT³õÈ:éÏþj×àüêÊþÈp>Ýe5.¿ñ_úïØ±C}û/ËÕe¡±,ë'm«WرcG¦^}îs³/¹ä\èãyÖúýØJ:ÕGÆDò·K%¾cs³ûã&1$ëJ ýi·um{dåü!õü&Sÿñtv>µW½LW¤ÏOµwã'1ëdzMÏË!îjêïÖ_ÁIø÷Rú¬~Ìê S¶º¡r{¤$_ãzÔ§«:£ª 'TIÍv!5i[¹l§á\re§XçË[ϰV²î"üm\Ò¢Æ+éÝ×׬¿§ÕZûÛ:/õ߸mûÍ$õÖsPõ|~æãÔßÂ6ü^ÑüÙýeÈýeÌMMÎX£$i¨µøt=Ë2ô:æxYÿ°3Dî¦9²ú4U¿Æ;P¤ÚT*ÒÚ#r/ÙuÔw,Æo«ÚúéãÏB§®å/Göt5éÝ.ÞWáGÑàñ¶kj¿rßÒfî|)GUÑYcZB9É,[úãÌú¶äo²Äø[G×ÔwÁcÅ?µ#Æ'¿mNz³þÞ)¿g]WÝw½-éjÒ»=äC>æOöò³¿ýïÆ÷§úTW5O@_r:Wî Í^xË#ä4Öúß ÍÎÅÉ:¥)+%JêOÒÏó[§öÿÐ9µªÛö\-7שDÆÑIûMÒÂ#J:ç§Mj-9¨p-ùü4dý8 Ù¶ êïj¦w{àÏoøïåf_b4-,,~ô£rÅÔÔÔÂÂÂW\1;;+®¾úêÑhTsÿÚÏ&õ8+']»ÀØÖyj¬ã/ ¤X ²¾ -,-!ÒnY/VèÔÿÔNÒVv7<Tu'ð`õÏb»ÛÆ'µÝO áØõõçî¤þ¦OlêÁ¾Ö©¿ó<}6ÚIÚÝ«"ÏUú¯áðÏ£fY>ösîÿAöÚ?Mì 9vò¶t¶_/eE¯cg²=òýàT2µÀ+öð]è\þÿÚW*ðpTa=½Jb?EΧ.ðÕ©îpö3½=¤n[ól»Ðø³Òù×yHI8ã¯dDhTgÎM£;þ?Íómå¬c²Q äIÌÆÚÁRñtɹ»ðÂÀ¦¬Q3ä <]JzÏ(ñ¹ÊÄùù²ñkÛCUïù_åð>õe |eS?"üÊz|/¥!õu´C~}b¿/ϳñFq¹írFdåX °Éô!7µì,LbThvÐ1üpô :;úüv¾:U?íùÞÕõSýR1eÕ²óGûãI;[_øibWqíåð]äûDKÝÊ?¤äiÄÓr¿©û*ÒÑÏðÃ,±)gµðÄþÌÔtþî»9ê@¥¿9?@òI7MU0,ú÷´6õU+÷Tò=Õò·½¹ÿA)jSÅû(J»¬ÛÂDjÍQ.Òz¨"~;øJÒ ãORÚWÙ¶Ü,®>ª< ?v5UÒ/¤A5ÉÿËL¥ {$5ëÞýÓÙ·:åèý$4~mÖÂ/@«¦>FJÿPãå6ÚføgH7^n}hÃÿ"&uë møí`Ì÷hêã«ä"8ÕÊÝ ñ¡mªmèCÀV{+ÿ$à*¿Ü¯l<©W!|п×ÓKòµ.dÜÔî[ͲvÀ3¼ÔàQ´VÒRú7eq~tdú¡v~ÃÓr9~Ný_´!Ñ|)Cª{1ñ#w;¹íJNöÒU1[rnSÍ©Ýߤ¸äè|Ò&þøÄþ¦¦øw7?¯õÆkøª(鳯3¯ dæ«]îeå|í¤nþK´È¤þü=¤cEr6XXpGÎvô·çmû¹*Èþº¦Ù?M§¨`@R¸¶Ü2É÷Rz>ÀíòÔ;>rÿàÔwYgȳcYÔÃiI7²2æ!äQµ^¿¿yrÿaÏßϱyVúYrA§o¬Jbo¢J2ý.IÝ*))!}Ë÷{Z}5æì±ÖùTÌôÍÔHàñ&Ié¯ÞOaÈA Eà;Mo¿Äç*«_¿ÅËý4Hzý¯røû<õe ü1 íwK¾O"*ú6?ßë[iÒ 3Hª¤Ä|ÏvÉ'{©vy`aȤÒJ¾µ¬ï.©çz2NuºáA·±N9:Pgõoÿõylv¡s+áH`Í¿<-Ô\ÚsOÿ=Ø ü}éSÖF<mt¾ú7ñ?iÎÍýOTÒ¶©=|2Õ,.ÇÅû*ör¾þä~z= ©íoîi3õÊÔ²¾I'Kø$í¨Wß)Ç+T^âÓã§ä½Ëý öBRaurÿ(ª`·Ø¤sü ÛUgyjá¯KÏÙWâè O¡çJ:;JÚ mæq¬gè(ãóåøùMjü£ ¶ÐvÊúü< +õA«Þ¥ËzD%ìU³Ø'èqþe§(Fúý¼h,)Èß@Qùr|ÏÛ1%>W%*ý:%¶ªóïLÚ?ÚÙ«âüÇqíêmº Ïïæ¬©|8äÖøKY(Þ¹m» D)é !n¼ád õÔÇeÕäÔ}û~ó·¾wÜZÇ`ªaùÄÄò ¹¡½àuç¯\yª /{ìÛ÷°läðáÃ>úØÔ¯3" äøËÎú¯ßx¿ÚGº*¸àüóï¼ë.yÍqd¶L¥jªÃªç]÷<eeRZµJN3ì*0>dÖ%h1¡ÇÐÔPå© 2qH;YûVi-³Ûb'^Ä «{ç;Þ®]÷ïßÇw©Uû÷ï»ùo:l\DVάÕG|õ 'lü e/~ÁÓ~íÓ~óXö?ñÄþ'»ùæCÉ OSBÜsï®{îÝuÖg._>!Õ%ºìÎËÍ÷i£Ès7ÿó1GxÐB©q-w³¯ø%ùOêC¶Uw¬øq©þ;ãfkS¬ðÈÊ/ýåLÖåË'äîgyæÜÍ7ËËrÊ)ìÙsÖgªoÕ/xÝù\+ßÅuæòL¬{îݵ|ù\>tèðä䤺7ÁÞø{víºg×.!Äòå+Ö¿åÍwÜu·Ð¾µBìß¿_ÞAM»ùf¹ßÉÉÉe/zÁ>ò{?üä !Ä~ϸEí¡ïçK·þì:¢õoyó¯;ßÃË@|ï®]¿8=-oô0wóÍwÜu×òår¦ÁäääYgñÜó0±\vàü3Õ¾~Õ pÎi /ë_f_ÉIí¦ôàYÔLÿîÞuú^õW°'$Mp¶£Æ5#@¹juÊÔÕ(ÆuAöw?øÛváòåêd)aM]ÿ7ËSÄlFÚã»ÎFÄóÌ2éü±øïBñ/ÿ(ºU,_.+Zô]þ¢W¾óѹq§uè¿ASez*;oê* AÆfößiþëÜ$Ç~;ÐmÆ(©JlúI`þØç¬i/ËõeÅ3n 96?(<Ö~ÞÂûìܼ,#û?#~ògjÛÛ~ço{ûÅB×{nm;Uìljéê«jé D®¬)ߢþ CêäØþ½?)@·%¥(=Ù5Ë©wÌYsl^°ÏùvØxA²8Âù.PÿgÕûVýIæ©£oz#Z !;(ø/t!جuôjö5«ì{ùÚõ£ ã,+s%ÕÏÚЬó·rDجuS Íô©·jÙYXdg¹þ0¼~ê^ ¯ »òÔSåÂkÏ=÷ãØ"Ì}ßÌÌo½ç½_¾åV!ÄÅoû§ÿ⺽{öÊ¡VIÎÕ>}ݧõIùÏéYµ>Ð*ÎaÙu®X!uG9® ²ûÿU!öþâü·ý¬B<¹å=±ø§7d ²¼RA#gq !N;í´Ï|î³jÌõâ·¿] Á2·çþ´ åg¨ýÂ9cO[ ~þ»?!Öñ9£ÜÙxø×÷áCþ6ýgõ1ÈÇ)qdÕz¾Á" ËXl¥qJõÐ !YV¯\O¯ÊíNPdJm¡DíÈØc©(u×I}ÎÑ`ÁÃLÝ\Ϧzå²^Â+ çuï0 åBOöB\ÔT=ü©BûI ΫrgǤfCú\nOS§7%e½BRðDhìN?Ó(¤3²¦³s[aø\ØÔ^éÝK=Ì|-gâo9ü¹²û k:D) K¥¤±UýajM{ÌÕÞ|9Û'õ%âªCþ m¦Ê²D #j8§N>2)©LÕ×kêF:g;1¿Äõ@)^eãïðÆ{@Õw|Ú":vMªS§¤ÕõíBU©ØãÙYèêajô4Þ$÷Lî·ìst@)²Ñ? ëÛ.UM}ŵ ʰ}ÔµlF£:}«Û4N½-¦E°6òDYc¨ñÅê BÉDñõóO'-¦tÿK±Ô:©-ÿî5"ƯýáèÚ; çèa<aÅx?{È:!5KcA¥í@dyÏdRüRöóO''ìXÐ?s|Xç@,âòW¹sÍsÑvZe~~¾½¿âùÞcò?Ð,¦ÄÇs®ósÓ>Áeç vjv^b¬²ßêª<©à'¢á uË-¥ìÑxÃ诲1iJ¯ioþ±i¼Çõ¡ DÙXù3«GêÌÂq³¸¸¸´´Ôt/AàI9YýÃa¯×Û¾}{âh6lÈTnnn8nÝ}0©BàìXOç|¯U!íøm|"d£äHZ¥O*`x@mºF·ZgæKÞòdEíÏ×guBZè«¶Ý×t9.8&?-áH¦©\|"Ydcéë³À¬k 9 ¿»¯¿²é.À4;;{Õ¶ûjØQ¿ßF5ìN!'vúý¾Ì² 8R, 2ïn^£¦ÇÉðjuF£àL þ9²÷«þ«ï"G;b¼¬u ë]EM ¡Aö{×~&0˪ ¬êamWºë:ùOx2ò_x ½Ö,^"ô¿óôü¾i+gDËz®XWU= KÒ¬J®á)ÖΩExR¯}ÿ[çÔÏ1²CdÒªLur4Þ, !e¹þ¯¬î¸ÕX±ß¨Ñ½uú¸ó|îåkÖX Já*Hâ¬=0T§à^R§Û:+t/dïþ]Ë[dÝã|§~Ññé{0 ïÞ< uA ìs¦Ó¶G.õX -xZ}ZÖü5mUß]¶Íìh/Ô÷T)I]öï7°W sdc¥ä¦é5U$ÈLmaMB+g Ø>èrô§m o®b| AàJX@¸Ð ©KÙ#  µ!fí< Fdcµyën=DV×~ém*WzD zH5_åCU(T}qe{øV®òT ÐW©å§¤6eï¥ S;ߥDIçLý4²¤ õóÌw !d²t&E8ÕZYSëʬÓÞ ÞsÐ×ß+"/ A_ö9[I 5u,hùùù¦» Í1&8Uµ\Ö~[EeʤQU)µ°ÄþHU4 ÌßbRÕ2´aɬ ïÖÊÎ)ÍVï+Õh- J ¿l6|ºOH}D¥ûvK·çÐN ~½^OÝXÛíöööv³Ùøe [SDÎDÁü½}ûöíÛ·dáü#êx<NÝ(oÞ¼y||ºpEÒ"r& æïåå%rÏÕjþQ ²´>¢3EÀbÞYûý¾Ôâ© ,Âùýþîæþî¦%ªÜÔrÔùDËÿñÐ|N2(D|³² +bb)/¶4VwÈ[ª¥xï_ÝsìbFºòw`^ÉßùëâYÔi7jqÏ9WûµOdcû48¶ê$P4V[²)þÿçÖÈ&¯Ã9º¶±$©/Ý~øwï«IúzäïÀR-> ¿yôág)æpªoì? vV; &ÚÝ©ô±Ø¾³lòjçßYEÆÅ§Ø¦5p>i|8A³ÖÜçÿÃÌNïqSW«\ÛK<,Ý57¸6Ý>rýÅvPÓM¥p]~ö:ò¶|I5pùPØ^{«hËÒ¸ç~¤ ²ôe¯<æ6QqnªÓNÓSÅ¢ Jàk'põQËn@ÎÙejª:Ä·WïÈZ1´Ô9ºµ[`ÅTS[ݳÔ8v+bcv ì2ZPdÍÒ´ÞÔ^ÚsSW6éÇÀ´6¯Ü9û³0SnÎj§©øÆìÔ48ÚI h¬¶æ ¡r¤§ö;²ê\Y[ÚÛ¯u²ýj4Åа½ö+Âê-4i¸âoxÐTz_·Oµæ ®Ä~¿ïp ¬áÖÚÎÄt¯eð1íUÍÇÖôÏ Ò>µ[³Ü}V --- NEW FILE: projects_pic7.png --- PNG )= D ßP§iræ{ÿXd¹²ÖÚk¯ý{¯ý}¿óÀþ®½öÚýãï'k¯½· #3 ,ÖHø¦-nsîá´â¬)¼»1sV¨E¹òÇÀþñ{!L0ÁLtpâáûîÐ<üðÃB!Ä«^õ*qÌC=$'öîÝkxøáeMUG-ûÐC9ëë«Põ]C,ß{ôÑgxâ¤=ý´xùÏÙ''§&''-Ï<ëq ¹ø3È2Ó²À¨ÄÈÈBÒnUÓØ<Ò¨^ 2QUI[«)` &`¢çÐÏx5Ë®ãiê¸ðÂðÀxVñ|"+ Û^¬0Ycå£r!øgùÛ×§ÓÎ:ÿ¾ iÒð¬4m®½.O$i úÊ\oøáðÚûh¨2Wsÿxñ7euÆÇ´Ó åC-¶º2/RáFe𨪧eÓáwá´©# OÕï ¨¼MßÍ^ªwnZ ,U·={ö%K.m8רËuXKÁºO ÜÆ¶ôà¤RÓ ëÁ&ëwAÛðÓ©/p½! ºÀ>BGy¤#ñ7¶wäx5ÈãwkG6¾«W¯6Jìì¶VK.mxº¾Ö1ÔÁcyvu0fC¼¿Fä1nH6AqFÞñÍ;<×nïø©ðêBØ}:ÛójhÁyÇdªYM jÏñB½*7 iϲz º¶§ #6×SXc aìØä´* ?[aÄc¯êõ=[¤ÇcÙµ°å¹só ø§cêbïmUökÒúÖ¿¡:§;¿-ð´çÏQȯC7ÊO¡:aýüþ/V³ÍõÈ:é{ÿ<Wçüyµý#ù»«j\^ñý·oß®®þËrõ_YhLËúiËê¶oß+ªÏ}îsváW^Yh}<G0m®¿°Ý?[isÞ±þ~u©Â3¶0;7±!yûTà§ûaëºväåü%õü66SÿõtUDÉsDZùû©Önü&æýsälSÄs8DÛ¡f~·|§-â_KcKdõmV¹µõuÛ=%Å׳I}¸ª3UUãôUR£]e¶¬¶³áW^y¥ËÏbµ å]EøiÜÊwQëÛvvÅu5ð{ÚY³ßÖ±\,Ö¿q»öKæ_ZÏF5ó÷³Dt2¿[= ]ø^ÑþÙw~ ÿFcd33KgG¬QÖÕZ~8ËVÒvÖÖ%ì¢pSlKUñ§õc5¯õ ¥Åö{ä¼êÔý_:§N mäjº½ R¿tFöIÒÁ-JÛç_Ì:²Qá:ò÷Ó÷ÏQȲÔ|¨¹ÎöÀßßðïåvÍb4 Ã$I>òC9cÉ%Ãáðk®¹õÖ[åÄu×]7¯û<Ù¤þÀgå´gË:oí Üò hýPV%S¢ðÞ¶ËIdøÈ¿J<øh¼$Ë/¿\~%RÐ5kTk²? µ{(«Ë)Qfoå$²@Ä ü- ×ÒLÀá+jxO«®ð<i ~ÿ¯sn/ÿÞaÌMLLQßXnNËAíÆÕ¬ª¼#y$ÿäý°TSa0ú®ëÚê¾²¦ãhTXøo¢¿PõTøH{»½Î;ï<}®ñ±7Ø3r×±ç«UáyR÷Ê»#Ó÷ÑòïýGDþeIkTPÓª¦=WhY Þ gz ðFìúúsuFaZMSÆNÜX{§é5Ó6ʳ£üæl9- C~7íW¢À¡¬é8V(×obýâÔ2´ÀHVìî7»Ð9-'üÿµ¯Uàæ¨Âf¢Jcï"ç®<:õmÑ~®ÓùHæ²e8ÿmÿ¬tþë<¤ÄÏÓ¿ÒM%ÿ¥ýé×çü»¼F<!9W^ØT5jlT®ðt^f*³÷"¤å&ÉU{bSs=G³Âpþ}YÊøÚ6¡:º÷ü§zøþÉ<3Oæ´vü¿áVìP2£]òõ!ò_TÅøòüeË¥ðÞ®¦GVö «LïrSÓÎÂ4F v;Ã7Gh2°ÌýcTpì<:uïöb§G}qª/£SVM;ÿáhÿyRåÎÂ'üG2Ó¦ÌfÃUÒZZâ_K`aá¦Õ¿,óîÌ Á5Ç·ÌÞdd$eÚLÛOä¥IÀ¿b[Qy÷óH1ý¦J&þõ&ÿ¥b»Z~kØû¿*©Ð:vxá¨ì9²zÞIdÖìø r¡Jñ»©Â#H߯?Q*i_µfg´ÕæâêO§0ð×Ò®¦J2[¨éjZ Ññ=!ì¯ÀôO;!׿ÊlgEzß°QYåô!qîð¶ú3Ry¢ú5«m6³MçOûgIå±5OïÚðÄ´¹Îr½°Ãñmý¾TüBg§Zµ«°µ>0´©jbØÃj/å\ÇæW{ÉÆõêikÈ>~¹²Xóȧg¥Åè;¡òË|%ïÕ§suç:ýõm óOG®´Ãy §ãBþñ ßáþ+']ÈhKJgjàZ"bü(ÜNá½]ËÍ^ºúRÌÜÛÔpÖî $.O[Äþ¦±¯Ô¿vãùçµÞx2ÿÖù³ù·/ðyH`er6X¾¢2ñèÙ'+¼÷ôe.^Ù#íØ5sêß ûrM»gÆYQ2AÌ\Ü3X9×"!Ôý϶bÒóÜ.ÏLsÇGá_æ#ëLòìÂXzuds:F^Æ8|T-¢×¯ãß< ÿaß/°¸Á¸Ç¥ØWº*ä¼cÆkt¨8É\Ef#iãWYÓ_!<NaÈFåÚ´´Ó9YɽxËþÅm¾Q8Ó¹äV \6¾Å«ÍiÒvrÈ.5 Ãe×22î9ï¯@y5]Í/v|kÍtÃOITø»SloW|³úh*5AÑ×¢¦õÕ¥E®Çksê¿ÝÞÆ& Éõ«ÿú86»Ð¹ð$°K2»f?ÎkvFaÚ"ÎÅs=dÒ§Íà+Y©ÿNs.>¦}̵-û$WÍðÅóK ,ïù\mbTàá}ο*öt±x QÂÌvÂ÷´yä £¼2íf ÿAÚ*9úNHZy »½À/NÅ7{ûí´ÂúÞÿVÔÁn?0´{ü Vª³¼@µðãÂs÷8þ§Ðó$À¥-ÕYΰfzMbÁ.ê¬:zø üþ¦õHµþ§ ±ÐnÊ»ÿKÞÂùEЩs£ry·¨â½û`P OÆù{.»¨³ôÙ&ûq"KðïÎ8{¯Â½×c l{åϬ°µLã|nغ~t3ªòüÛq"Û׺õÖ[Ûy¾n¸á9±fÍ÷¾÷½%׫Z3ðÇ¡°¶eUâ:% ìm[Ä,0¶öìÙ311qûí··0îÎ;ï¼k®¹&×"Û¶mÛ³gÏ5×\ãùnÎÛúÈÂZ?Uâ(¼·írY JiOH !L?þÉONMNýÁ`½âÃÉæ}ûó¥oúõKß$ÿÊ_+çV !nÙºU&² «Ì¼øÅBË/»ìÞûv[jÅM_¸Y1Üû¨Ü¨}û_²x±%ëÈÕ½çßüÿ~óÍÏLN-¿ö¢²³vÉâů[¹rýûi1 !¦¦&>òñO~ò/B,^üÊwíRWêgffff¦åôå½õãøÔâůBüú¥oºé7ßðOÉ>N¹¸Ê{÷Þqç]2þÌUݮý{Óâ<åÖOþÃ_ËÜÔ.X¦Y1!¦&' wÜ·SqÁ²óí«$Þ¶ÿÀþ P)`Ëq)Huv3Ü"ÒP azTy*¨8¤¼±ÕËɳ»Å nöº@ObTfó=[zÜôo3û·EÀ¨<eÔ;híYëá_Uè`+<¯¨ýÊ_}³³gÍ5ûV¼æ¢³³gÝñÕ¯êÕ¾yÏß\òú/yýÅ\|ñpïÞÈ.ÕÃ<¸k×#GäCauïüw¨n×|ã÷¨YØvÛ_>|Äx¬Y«÷øê~aý¯/zñù/ù/Ûr`ÿþû÷o»í¶ÃGÉ oSBÜ{ßÎ{ïÛyÁ²eSSrZ=¢Ë^.¾WëEÞvÛ_9·(¬9PÚÅw¥ÂÍ|ÙÒuò§ªÑغ°½@2ÓµÂÍμò·ä*Ô»lë¬üv©øéfg³XáéýåHÖ©©IyÁýe˶Ýv|LÁYgõà®],[¦®ª_òú?lBÈkñ,[&ïĺ÷¾SSrúðá#333êÝo¾ôM÷îÜyïÎB©É©éË/{ë7îù¡]µB8p@¾A ÝvÛmr½333^ô}øOûÄ_!ÄþÔxEíáÿà+w~]F¥¶èòËÞzÉë/Þûè£2!¾oçÎß\»V¾èaÛm·}ã{¦&§äHÿü~|üRíëO]çü£ >´!ª>×ønóÌBDô«ÏöÅëÌ£ì¯`_ÚN»ØílG/´c+|=×fæ 8³üTäv§lÞu¿õÎ]Á/5P¹ÆRÏ&å 5þc]j"û'øC»pjjRÝ,%¬¡_öVyÍÈödÿ®³qì>³\&N=õ¤?øBñO'¾SLM !Äì/£S/zÕ;ó7Ko:PO`hþuùmä©ìL|3g!RFrcÿÇÿ9)°^ç*T`3ý-ׯCÞ6˦E ¬H¿bP¬ÿµÌÚs-âüÕ¨p ã_Ñ;K.T"-ÒS1»¦s:³BùÀ9kÅKÆ\l¥Ô»DÇ8¯Ï¢ü£G%vd_×öÔ)ÞHà"!åå73$`û"¾È³E ;þÎc Xøß LJüÕò> óßNKöÅbhf3,R÷^ÿ/ ` d±uÌÐLHê^ !nùâÖoïØñí;çsÎû¬ês½âïÇ`wçý´ ¯Ý3¾j®øý'LwÈíªä(4Uòg.Þ_«> -æ«7,Zj@§ä»ÙKgg¦¹¨Uø32ùÌ`*o¶ªêrA,¬9=Å Y6#ëvrï¿_@ù,VXÌshÓwëÿ"м¢¶ØÀVÃ6Àwú/ W~ɸ½wUÉì£ò-¹^õ_}ÚYIIwF4 <Ó-¦,¶n!ÿdbP,½ÙK}´ËÓ íTÕ¹êãÂ3A©*éìæèÊuçKÝè\*ïÐÒaV¯ÉßÁ,¶±ÍïÂI ï®^î"gw~/·@ïU0´ ¯ßFã¿4_ll±;uìÀ!âY'L`lµrî®Ì}Xl)á:¦¹Ê<%ìBýA Å6Ä-í£b¯ÈÓ, ¬·~ +Ú´àÛhïµäÎeûÙγ^?pC;*°å@{2ï¾²£ tÝéôj2ÚIÎ\ª;»EWæfÿn¦ÝÜÏ S¦«©iOÌH `P ,¾xµ¤ø O³e¢m Lj;5KfËxüà WmôªÎ̵Âõ¶B]ÁÞîÏf²X=\c ß'i'}Øsg §e þEö´? ¨rûʾ~Å¿0{ñ´ çñútíèä'd ¾Ù@Þ² PpÉv lÁX¯8Úg$µöôMÇo¬=mwߪ O« ßK W¯Ûä_ ªìÁQÐÑ^¤qã|4 ¡Cd¿æö-ì7¨UGòÊ´FôeíÖÒBÒ+i«ñn0¨À·®ûdÿYozÑ"ÕÈ9^vÜôæh@÷å#k¿zÀ(i¢ñÏËÕôF<ÕÒBÊ»9iûܺnR}f (Ï9´åò°ïÙJ;O2ûb{pÅ~4 r-ð\·g^Á/y¡¿Ìâþeû7AOAä·¯³pØ v[½s®³Ðæ"oç<OÂO'U^Ó ÆÑqVj¬Ñ[iìªìB¦3`2:VÿX~4mØ^r_yæ>¦´ËÇ¿»ü òªp4`l½Ù+íñzIæÐÌju³ñÌÀzÖe Îu\)ÆÄH4Hª:FÚä©P²Íb£ kÉ<JÍ´ ½< k'g ýMÓê£Ð?:4ªÓ ûeýëê« ¶C Md·oÙwnxa%ÊDèY¶¾ ä <%yyzpõÆÓJ2 ì áì¯ éÄÕoÿʵ¸gA É[±èÚÆ õtÜ$ï ]Å ¼@ïÉb+£À"- % ¬ tÜ ´#Hd }l ±4Mì iJ¡¤9°yø1 I¾Õó¢ÄüÓ+c#È yÏ¥¡GGgëÙçÐH]I Ù1ïsß+_»´ ¶<ÐêâMY --- NEW FILE: projects_pic8.png --- PNG -?j,¤B"ÌLÐÁ"%q&ðCÎ÷,VÖZ{íµÿz¿<°ÏÚk¯ýÙç9óÏY{o! O'w?¸xÉ[Y`X` ʾû[§¾|Ýôôô-[>ýéO¯[·Ênj¡ þ²òÚï÷ûýþÁäõ\Éëg_ÿloϽ?þñçûãG GÏ<ð¾ÿ¯Z°`áqÇ}qùìMn¹þcB¬ýÑh´H7÷G-_8ñYô¹Ýc¢ôÎNN|VöQC©QÛ=Û¦3ųmHTå¼Ö OR[ÐäÊÇ)Gø³r\öháßëÛæõFÉñm#õs K9 éñØAÖ-lùËÛ¹Êù¢øKcÿæÓÄ~¶U{ÔIå/°þrê\®Iü¶ÀW¤È¼<G!?5<(g<eêüõGòó¾mTÏâWyuÒñ¥®ÂûÒÂþp>Åy .¿Í_èoݺU}³/ÛÕe£±,ûGm«wغuk¢¨¾ò¯Ø_|qªCôñ¼QkýÕ~TEÎÒCuýÍQïØÔìxüåã@ÖNJà§þaëêö&IÊùCêù1U¦þãé>6ª½LW¤ÏOµwã'1éÇsLÑCTjìïÖ_ÁQø÷R¨òWý8ÕÅaqep»"np=Ô§:ÓS5Ç@ÏJ%5{U&¦QÛÊe;qñÅùköÌÕù²¦àßÖS¾ÊQÒ]¿ËûSTùqE½»õjàïfg·ÚþnÊÁúoÙºýÀ&ûIë9¨r>?ShâÑ8±¿[=uø½¥ú9¯¼þÔ§þ)2æ¼ÆfΫÑURÍ>U@Ï_s©¹F½)^ÖÊ?^í¼!õPK^ñGÕ«ÊWy Ù Dò æÆÆÆª@¨ßÍÀgB ò}óÒÖ÷ó¸É+ÐPcccLãªâɱ±±¨_ÆéF3ZøLHªò×1/x?¤~¶ívW yä§fª"ÏIdõêÕò7qöû«Ñd éTû:æ¥)ï,϶ÑNò 4XÏ ¼ {sÿ.JSg[äxW=WÏb{ÖüKp¡Jëë)ÇW*þlä2¾ÍÎbóÍ¿ÕG§1ðÇÒî¦Zþ`«Ã®&GÄeÃ{åKý$T~uVau3Ñ_8Y^;ÏôpêñR¹ç%ª~ï°±c:Ä¢j´¹ÇV2½á£Ö:ÛõÆ:LE0&rTõáóM ų|wa«|¢gÒÓ:Ä"°joåÔ[ÄáçûÕ'ÓÕSÕ¾r)G9Ç̽.i ῳS| Ú29>Wmû¥ ϯ䤣©|&¤SùëF¼R?Ûv;É+ÐHQW6 4UûN8Z¯Ð[>JÓ§ºA¦SÞM !®í_ÿäO½÷ü÷üÒùïãoÊ g¯BÜróÍ2y ÊóRÐ#QËÎÆWþD&¯ç¾ó!ÄM_Û4»{÷ê.ݽ]pXJªæ 8ÏÄ·íßàþ¶.YòÈÎ]âPVjìW%©ÚÂãê)itÉ[䤨§ Ú¯4t(-©ùÐcÚµ+½N;ê £KÞ"Í M»#×Õ¼O144tϽ÷>²sçÛÎ:K:)Ý»B<õÔS?²ók§nû!Äþýû=¨ìPMQUTÖ{æ§?õÿ<øÂö]G½ýT (þ½¼=£ ö]êï`é5 À9ÞØ¬Ù 컣W0 ycK/]qö !ÄO<¡2W!Ä{Þ{þ·ßþþõB¹¹ù'ð!ÄÿW}ä ç|ìM¡§¹ÙJÝGAïþÕ|øQøÇô$Ì é¯ªmý{|ÿylNðÅN~þF#|³Õ¨½B¡@ åp×t|ÂÕº;¥GÏ¢Â÷îÜ]à´¢À?"<\ô¯M l·Ë±ÕÎÜÚÌ5#@ úéN4löþ²?al%(â³RÓþ8VÛôIÿ9¡§vc[UºÙíúÃðþ±{A»÷IhØì1|ôòemúTD+ÅOðÜGǸ¬qóXç2r±nÍ2ùOoZíÇî`7o½ì§ê rás×íÐ+£eg5#9¬½Sý¿QÁDÅã\åßó*G=±r¦ðËØeÌÏb7wvðo.$ûyH:©*tÎ1öÁb|:Ãz:;÷訹ôÊ2nKu¶4Q¤¤ ®õvnâÉA#d¤þè÷ÿõØ-õÞ=Ëá[Ù¡ÆèU¶·9eT!Ce|éc7¯ËªBY¾ÏÕrê8ujLÒVHÆO±ýÓòÁ"å§³üéÖÓ9jÙ³@ñ5¼ÆÞ£ÜÓ¼¶PúïÎ"RjÛ\J}~bFõ×3Å\¾JK½Vïf7Åòü9q:ÿñ|SBöÌUXÏ'æÑï|c:),¨õj9vs»Cº=¦¨Vhå5*1- $äÀkú¿Äÿ?<B©ë%¨j9Ç*ªIصãÿÂÏnÓÉ%s-ZÈßLrEìßËÛ¹|Ôÿ³0dºÃVTIU¦¹Ô\+û5kÈ&©w]Úïò"¦ ¤c|+¸UîñEÕ0s-íðÉVB.?æöF.#õù,B$¸Î«ÿÌ-½ÌYÉ_Kr6Uö1ýs^EÔy %K=!¬&ñ§Ë½Ú±Ù³bJ~W£}ü?Ý©ö'}¦*÷A2%«¼êù«±s\{³ÑhÌôoâójOû-¾&jÄ`7æ²cØ,[©møÓfòÒçµp]ë4ÑPöæ±ã;õ ¤;ã¤ó0=â³<ßï%ØDÓÂ÷È´4NO1fggûýþCÏ.®:¸}ÞÙB VH¨¶Vé Âk¢TÑz$¯È+nRWø¯:L?ºä USé^3Z<}R_Ù§»Ú@^ßõ7nÎpMuÈe"ATYTª¡êc{ÚµU{_ò=æLÈ(뼪hÒkôwöI½Ç¥KÆ:SÙÊdJôÂmxú¤#ó0%6 Sýõú is1?Çõ$RD¼ÊÆß0á==÷"¤<aK¿l^5¾ÄíæÌ>ý[ù÷¤øEãØùkT2Eå^Qù³¿Ý¨ZÓ vÝ:)£\ªÆ¦ÆÄóIývñ8«° vÍÜÜÜüü|ÕQ Àk.ûÍÌÌôz½-[¶$OÔjjjfffÓ}Qg»zZ<çl ¬ Çßhã ¼FÝßÕ]ÕkCnôÊÅ\ j>a2499Yuh&ÞµÑZ3"üóO$ Dí*¯¤§éx¾ì2Bû\½ùÁªC@3Èú_G~.jÂSsmDÓ´øDBä¼_õJª¾ÖØÊS5úÃ"ÑWc-I× ÉkS©ri¢þzÍUp^W+DÏ ÂwÁ@ú H^M~õþu¿³?À´V2¾ê Ù¬ _{ü'ó×Ô{JDz¶2¾ØÊq§ 6Kæê¿^O^ (É+àPD>§i§êa7³ÉòÙYwHF¡ì{Ê7¡z+ïɨþÎe£'Ðn¡'l¢ê rás×íÐ+£eg5{0Î ©¼Ê4d¢Á¨äÏ?ç5ã~Õõ]¤Gt)yJ¤ð hãUÜ_)üý®)ï[âÐmÖn4r_çõ_[9[b»y©Ï×îÆ´ÀêågÃdì)H2 È6Q$êoì# ¼>sýù«J:â«F5íÎÂbש9çÏ.»ªIüò§ÙE¥³$]£O yéÃû'høäõøµÈ ðüÕϾ ¬ÝYÚÝRo.K:Uÿ]mûµ{º9¯Æ.Òme$¦éâï#!ðäΪÑ^«= RƶÎð´$åÜÜNs£Zb7|°¶ÀôôtÕ! Ý<Bj-±±1¿ tQ7)º5@ QH=Zî Ðhd® «7:7 ,1¶ØÅWSÕ3]+ZÏ9Q5cOѱ"«,hÖ #PsùOçÿ~¿Zu-*ª¥ ^è®ÒDåOþåD[9Ó²¤ç{µU×® *WQï¼°¶±ÙcÔªD}R>, @O^U¶Xy6÷òVUQS<=Ú$½ÍAÆ0RØzëÖªC ózüÚK²ìFΫ3~qªcÑÓ^¶·Ð*6ñPÚtRgðFj®9NC䧬¹½v¼Ð pJAÔ*m]ùþU ÀÃÎG£Ê´"¢±®¾y½¤õm"ó c9QäþAc®sí¹¡ô2öUx p¾äuæÀXiq@GæÚ2êÛyáMaËÉ\õxÍgèû×÷Q=£r ¼²²¥Øßæ;¦Ù9× +º9¯@I)£RZæZÄæ ýW¾=úê6{j}rjYfq-ðwºä(VH^XZêIyUòÉιóäJT Ì/Ãû'h*¯\E+ªàPv}Cµ³±Í¡ÓÏãÖ¿ö4Úg9ûçU»üO£²²=£ dr³g #zBÁ`0;;Ûï÷zvqÕñÀíìóÎB,\¸°ê@ @s¼¢¤h©ÌLÕGU¢¦'möZ»1EªçÖ³£rècòW ¥\QCÙ¯7ój+Ë·ö&Yö @פ©¼ÏécÚ)£zH6 ;ûÒ¤(Ó* pÕ* ¸@ @bÎ+ W@¬¹üóU 3=/Ì7SÌ%m ÂϬÒS[g7;=5= R3YEDjLuÍq@A dåIO³L(hX 49+ 5H^[ÅQ ÏP5ZgcéÁ]t«Þ?]ÆI ÅH^Ê(ªvµUïVNlh,exfWH=çµA÷Ò¼63]HC8\t eø:I÷u¿3ë¥ H^»FÝÔ?%Ú3·ndÖk´T ¹8a Á`PuÕ Æ »ìi´ÏJ4`ÔÚÜ# TÙ T/ú T YeÍfÀn?ñÙ@ú;÷Ð *¯éɹ¢ÌYm,Zn®/Û«¡1Ç6íóôÍm¸)ærªIhäÚ^ÞþWy =O~êCg½: `=×ô4©:ºsÌ>1ǶGá¦M´Xðì1¡0 Ry QÅ'W¯^µ'=-f UsZ±Ø+ûxÎkØhͰNÂ+«v8...Þ½{7Îå®®®NÚÿíÛ·ÃáÍíïacíÄbÊ C«.±jyq´±öÌÅkùXáµ47§þ SßLr¬ðʪå³Ù>$¡TÏ;º§/~h YeÍfÀn?ÀÉ@ú;÷Ð `=×ôÔæËÅUñ° cq\g²à/Ùc&C3a ¬ðÊÚ BS©o&¹ ÙýýýÔ] ® § íµK<[¦ ÀzÄO^¬iöêIjÃeQ í>còë¢mUW½]Äߦ½>kßøál¢Ý`ñ"ÿæóêë M§*®Ssm_CÖ²gËuL:¿5ÕÞL&¼½3\cv Âk"¿»¯>gªéN]l OU{nÙ-ë]íÇîýYÉ)±ÀIâoMM7¢Ú;ÞjßøEcµ¥td!gÚ@ªZÖfżÙzRcüníÝèv 5Eϰ½ö«ÀSWÂÚDÞå:4¶´¢ô^nã×6º?@á,KdQ? ¯ [J;--ÿ÷lºtikmº9k$¼ --- NEW FILE: projects_pic9.png --- PNG µO?vWØ?÷Æw°À,°ÀBç4;wî<æe¤u׿î~àÏ+Ï?÷ð¡ÅSÿjûÒÃKú§Î=ó%·wï+^ñ.þÙ_þò?þÞ'S.ã/>òo ÿÓ»þ¯Ú¯UDm?DôñÐy>*Ï<ùÍs.øX`XèÎÂþø+5þ*¨ñÔúê;æìþüMÛà5ÿôÈÙö¿äùÃgNNN¿üå_öÀ PûÞääòïµç89ᱩìÙ³çCXæcSø³MÎ Bü»;üò=}íÌâ`0h;üWÃÆ§ e϶z ºö§ w0m§°Æ@ÃØ±ÉeUþn ¼^¨×÷Tnd×ÂßßÎUÎ7Å¿ÜûËOßûh«ò´_ÖßaýsȪs¹#ñÛß"óòü9 ùuèàN9ãi2Tç/¬?ßßðmÓjÖª¹ñW'ý _俨¶R8rUËÓúòÌþÎ;Õ)~Y®þ+eY?m[½ÂÎ;sEõÉO~Ò.¼îºë í¢çL[ë/l÷¯UÚî\tbtA¤Bªð[PÄØ¼#( pÆÓý°u]ûäåü%õü6vSÿõtUDoçiåï§êÝøMÌûçÈÙ¦çímùÝò¶¿º5¿ê»ªö-s'ë·ÇE5®'úTTgª&詤f²ÊÜ4m[¹l'Á!®»î:# -¼:ßÖüÛz±*·ðq3*?DïWÚ§+®s©_ÏÎjýå°þEÛµ_Ø\2ÿÒzvª¿ÄøFD'ó»ÕSØ ïeöç¿¶¸ÿúÑ/üdÌÍL(îFIÚÀjù9z [ÉÈkÚûXàmmý/¬:nª}©*þ´Q«æµ@UÒrÓ¶â©Ig÷È9d×QgTo«Æâôñw¡Ì¡ëøÛ¢;¡¦}ÚEÀç*|/ßßnÍðW®ã`%mN+åª1kÌ=(La+6`ɼ´#ÿ¤©J_6º¶Nøÿü~×N;y¿wª¬ïê;ÑÛÑPÓ>í!ä;þÒþõ[~ö)þ~$Õ§±ªÉ çÍuÌyMSÉûoFcä1ÆÜ}¿]úY ´Y ³£Í5éGÈÌ#Ý)ÑáÈýõæíh Tç/¬§~%¿¿ÐêÖþüWûo·ÿ´~#úÅUû³:ç¹ÛÚ3eU vïåòkývçÙägRɼ ¥Åö{ä<µÔý_:§N mÈÕr{A¥2~é íI÷(mm2[èÈN ëÈßOCÞ?G!ÛvPó¡æú´þþ/·òÖL!F£Ñp8LäCúÐp8+-[6o¼ñÆ»ï¾[.Ü|óͣѨ°"âI"õ[8+§Ý ÀØÖyµ¬Pà*. ù+ úªë×o ã/_Þv ÄGþUâÍ@äÅ!¹\}õÕò˸üÝ~Ö[§Z%üY(¦Ý÷±*±|Êm£üX¿ ?' Äïÿur®íåß;Ñ ê»ªÀÍi©§Ý¸ZRSw$ä¼ k*F?t];PWà}¬éM4B*,ü×Ð_¨F@*¼¹A£]Íõ[]t>ÇÖxYÊìyÌë8òÕªðsR÷ÊÓîÜÑYòoüûâüã¢WP˪¦½VhÉÞ §½Bx#v}}ÁÙQVÓßqwÖ>hzÍ´ò(ÿ®9[NÀ³ÌÑslìoæ×qlýôH±ßÓÌwSÿJÖ¿Ãÿz5«ú³cïçYv|2ÿaùaN+ùÝt¶_^÷±¦7±B¹~ Tì·¦ùFb¶Ù Îe¹àÿ¯½ywG6Uû9]à»Sßîíçúx87Éܶç¿íBã_Îø9ÿ JÉ?diñõµ!ÿ¯¤OHÎîÂ*³³FÍʵ¡ÊLeI´Ü$Ùµ'6µÖónV¸Î¿![_ØFTÇxÿ£~|2?æ´vü¿áSì}4d¾vaÈ·Èÿ5QãÊóg-ÂG»ñW9ò'¬!1}M-;ÓÚbß}¡ÉÀ2QÁ°óÝ©û°ûxÔ§úF1`Õ²óßö'Uîl!|!ó/Hf¶¹ûá*i--ùð÷XX¸)gµðïȼG&3Hg0FMçû[æè22m¦í'7r®R¤àï¥Ø^T>ÞæüÓQLæ(i¦9¢¿ßð·IäÿeÉ«Øq_öæþ¿ÿThLw¶¨ðþ¯zº@dÖìøÙp¡Ê컩Âw*~4TÒ¾jÍNd«MÁÕ*Oa௥]Mtíô2:y|1ýÍW þâ äúgOñt¤U*gàoëíP@*ÿÝW£Õ6Ù¦ó§ýk¤òئdøßÁ´µÎr½°_ ƶ~Y*~~sÚ.lOúìBÚ B§Ú[ù'øÖ±ûÕ ñ$»z¶òOWùxj8ý¤^xýôRÉPùé¼Ê¿ê˹Æs}ýõí óF®Ãy&§ãBþÍ N>àþó$'²%ßGç =½£Ì Ã+{¤½wÍ|tËï }Z¦ÝÑ2ãSQ2/ÌÜÜ39×&!Ôú¯µbï£çï¶]Ý¿5ÍÝÿÕÛÙ ±#êÈît$¼É!i¨ÚD¯_Ç?u ÿ{Z_`sCÉo&uöÇy±Ö>qnÙEf#is»Ë¬é¯§¿0d§ríZZËiT¬äÑK?¼eÿæÅvß(iÇ\r/NõßßÕf3i9ä á¿2Î ½L¤ÌiÎû+PRM§ì½¹µ&¸áITøSìhW|ýziL5/Ñ{QËzwiëñäÚú¤ á/·÷±Ih2fý¿>SÍ.tn%¼³ìðXç9£Ðø+ã©¶6mǫ́ñ´|%ú7ñ4çæ!YcÚË\ûxLrÕß<ïç!s«2åý<W¸ïóï½\,Â(Oaf;á{ÚÌüä #¯¼ïcÚõþ¿ÿiUòÖ;x;ÒÊ+<æ~k*¾~+°Ü_h/¤Ö§ðîø÷¢vûñ¤]>åo°ÚPåª ¿/!<Tÿ =7Ä ì(m«r{50FQgÕ1Wà77mªõ?ÍwvSÞ_òª¬Ì¿ÿú`T.ïU|ýVÃbè ôÃØ~½ ãu~¶·ÉÆñA7E¿¼ã ü+³ÀyÌÞ«ðèõXû^ù-+l-Ó86ÝÌ:ºUyþý8íëºûî»ÛwáßD·Ýv\X·nÝ»ßýîýªÖüY(¦÷±*q} m[Äù+0¶öíÛ711qï½÷¶0¾.ºè¢o¼1×&;vìØ·oß7ÞèùVÎÛzÉ bZ«Åç¡ðѶËÉ_(¥Ýë !|÷U833sþìyZué%+dÉ#GwÜsâ±={fff¦&§.,!Î=O!xÊîý-W¾YñÇûÊ®]¯Xqå[®B¼~õêªv 8)+U׿Û9úð#»-]úؽâDbjô«òTmá uÉ´lé«åÙ§ êW<Ëì|rÒ1¡Vu-§ÆJ/×özffzÙÒWsg L^ çù±»ÿórdqvö¼Ùóf_wÙª×]¶jvö¼û>ÿy½Úú+Þpùo¸üË/îß¿°° P9úØ=G7sÕ½ãWÞ®Y¾ø¥Ôª ÷üå#G¿ÊY³úø®^á'6þÒ¿äùÿ¼õùÿ¼Õ¹/.<¸ã{=>]A^y&xøÝ?²û+¦¦&岺ǼÜ|¿6f¼ã¿tî#PL?R´3ìJ »ùÊåäOU £±º°¿@\2³´ÂÍμú×ä*Ôhë¬ü~©øYfgWágöå,Õ©©IyVý+vÜs¼áÀyç÷Ø=¬X¡N_ñË?lBÈî¬X!/®zøÝSSrùÈ£333êQo¹òÍïÞýðîÝB©É©é«¯zÛú¡B,,,ÈÇ(¨i¯;î¹Gö;33³äe/yÙÿèÅþB|úçÇùþw>wÿ_˨Ô]}ÕÛ®xÃåûxBæÁìÞý«ë×Ëç2ì¸ç/>ôÐÔäN033sÉÉ)ÀG>ú§ª}ýþ á_ðr² 1¨6PUÓ×ßjU ~Ù>Cùû+Øç¯ÓÎh;ÛÑíØ Iϵ¹Î¬àß#?¹=·/ãWÞy(ø*ÔXÆÙ¤\¡F1Z¬KÍ_ÿð}¿gNMMªë5éóê«Þ&¯ú²IÍu6"N\:ËÄgö»ÿA!þéïÅ7ïSSB1û³bâØÔË^ó_ýUçVÆ Ô½ Qe~y*;óÝÌUÓØÿªñ§}ÎM ôëì¨BvÓßpý.äm³°Ì`*Ù1&ª5ýº.¶ç¬i/ËõeÅ :gÓ:l¾S"}v¬}ÜÂcvn^ÞÍý©?õsõö¿ÿ¾kÞ~âõ«W7Ö©b«Ù#¸úªFB)RLã:ôÂu t¤(6ÚZ¦÷\8/*Ü£Áøû2ÆbIaÒ'=³k:3+̪ؼdÌÅ: l¼¤Þå¯8Áyäâ,±óûäµ§NØôF7 )/¿!ÛgêE=*¬Ø[à*Ð}¯(üµ¸ûï»oûg>#Ç_»IÏcÈbcÑw*|VLM:ùþgè¤èo%»üõÛO>)οà!ÄWvíYgÿ¿²k×k/¾XqÖYg©!Äüþûj µ**íGbÔ?cò¾Én6@HU1Fùë~qJ^ß3!þ˶m%¿ù[¿õïÿ#UùСCÿñßÿ!Ä®]»Î?ÿü¯ïÝ+xíÅÿáûß¿wï=s½þ_]§ß3l|ï þ] BÂæu'ÙjþÃ2µL# @qªeg¡.3©ÍìËxòõXO`åWþ:{þùráõ«Wø#·³`ß3üλÞýùûîB\ûö·ü϶íݳW¬Jr櫬öñm×gëTcÞc³öóÞOvÿdÊÌ Õ` ìfÞMjÚ#ϯgx_Þ9»³À[V¶ë±·y{ifpó×oÜ'öÿbô-Û)«göåõXLOÕ\Ø»¶oBlýPblõBìݳ§ 1vsµ¼ùgþ{És^¾XÍìfMêÞ£Â}ùßÀ÷@_93Ób3OP ý õõbè]þú·Ï~UÌ-Xüæ±OüÝóûß;µ~m®6äe^rVÝs `¬$¯uy^W3!-©» !Þü+ï¿ï¾[BC~pàÛßBüÇÿãozÏ [ß'¶Ì/N¹x®À &0T; þ äù×T ²U ?à@µ«e渨~×¹XxÓnâIY-ÄË9U¸ZáÞ=Ëá[Ù¡æßÿé¹_¼!M|Ç37U/ ó VÌÈEµIæ ò]¿¥³Ë3³[ÔDO&üE´C&.7ÛAUE9çVÉ8ÙlË;ëßvNï?e_@ùäUXo'æÑ¦MÝÖÿ D ]<?¶Ø¤U¦º6ÀnúÏüV~^¸cuUÉòÏ-Ù¯ú¯ÞEvDV.Ò© Op©$y[È¿ð ]¡×o©vyZ¡¡:·B}ü÷ pæ%UåÝ<Ë\¹î|Cn[å?P:Ìê5yð;¼6¶û]ø=þZòª,; ÍÜyefRI{ù¯½ç?Ú<{ð5PGâo^áÃÕËCä¼ïåè« æ úlTgîè¬`×]ù7ñÏUuÂnæµyg¦ê§Úõ+cüçßÍ-vñ1]²@ü"ë[+óÛJ¸ÞÓ\Me~$ìBýÅvÄ íbwäi k,W²¨§Ò+n¹*É»¡½*)UUnb;Æq/=%»ð×Ô_ví¼þ) T;úËð¦ ôËC: \FKx§ ¤AÊ´BÙçþÒN¢Jäú õçè%ö¶Î j L`æ L¨µ íü8Ívª1r@ôM+ý¹]`µÂ½-ûiÓ¶òZSü ´#È_ X\\l; ÔÓ }þºL=\@ ¿Që?^ëÖ-Þ°É<zÎÂJúRËu´¯zÛ ¹&ô~B`2ªò¿ªNÖ{Ú)Ó ¿YRX [póú×±Szº¢y*;óÝÌUþúí:³[ í´Ò'¾fËDÛ ËaL7ñø 8F¦c?&þrµv%Y ñ lÁè×N+ëH%ídÝèHßqòÎÚËö`Úñ´ #?.Ð~®ÔªZ<e6i7.û?zð*ÈFz¹§ óöUlsgåÉì"-ÍÜ0-ñé3Ô <M_òl~ÍýÛF1ÍÀÁ©ê«Ô²]ßÙH±®=xZh1nª_aæ'3UµwШ٠v¡|éßÄèÝSAPm§±Ø¼~¥Qb?TÖá¥6uôǹ6pEV3ÞýeÈ;Øz¨ylàCÈ» ÏìÁ» ¼^doãün@Çe¿ªküÕKUÁ(4.¢rnâi30ÝLk6°Ó1Ô<£äØy¦p¨ æß<ËY-<³t^+¸mM =½8C±0{Ègµ{ú|mËtפ[·<zæúK}±J¾TuôµJÆ¢¾÷=¤å¼ïfá·{LÞM ùkÄïu5|UàJÀmÓ2~$¯2s^¦;~Ì vV/ßM ýÉ«§a=ÀÓWÍBLOO· Ê_wnÛ´vÃgrk7li; !䬪TËFòg*zΦÙÛ´ì¬Ö²Ý, ~%7 Î8gãõ!ÕìlÕÈeåOÚ¶ÆZ¹loâlijyHä o É[±½èÚÎ ½~«¾ñ×ð˰¸` Index: appointments_pic2.png =================================================================== RCS file: /cvsroot/tutos/tutos/documentation/user_manual/appointments_pic2.png,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 Binary files /tmp/cvs3CTFtp and /tmp/cvs8Zcz0G differ ... [truncated message content] |
From: Jeroen B. <kw...@us...> - 2002-06-30 21:26:45
|
Update of /cvsroot/tutos/tutos/documentation In directory usw-pr-cvs1:/tmp/cvs-serv3029 Modified Files: tutos_user_projects.sgml Log Message: Spell checked and gift wrapped. Index: tutos_user_projects.sgml =================================================================== RCS file: /cvsroot/tutos/tutos/documentation/tutos_user_projects.sgml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- tutos_user_projects.sgml 26 Jun 2002 20:35:25 -0000 1.1 +++ tutos_user_projects.sgml 30 Jun 2002 21:26:42 -0000 1.2 @@ -5,37 +5,382 @@ <chapter id=prod> <title>Projects and Products</title> -<sect1 id=prod-new><title>Create</title> +<sect1 id=prod-intro><title>Introduction</title> +<para> +The TUTOS system has a lot of functionality dealing with products and projects. +Well, to make one thing clear from the start, both 'product' and 'project' refer +to the same thing. During this chapter we will refer to this thing as a project +since that is what TUTOS is most used for. But if your business requires you to +do otherwise, simply replace 'project' with 'product' and you'll be fine. +</para> <para> +There are many things you can do with projects. Below is a small list of the +possible things you could do: +<itemizedlist> +<listitem><para>Make a relation between a customer and a related project.</para></listitem> +<listitem><para>Enter time spent to a project.</para></listitem> +<listitem><para>Define subtasks of a project.</para></listitem> +<listitem><para>Make an invoice related to this project.</para></listitem> +<listitem><para>Define an installation of the results of a project (or a product).</para></listitem> +<listitem><para>Allocate human resources to a project.</para></listitem> +<listitem><para>Make some nice graphs about the current state of the project. </para></listitem> +</itemizedlist> +</para> +<para> +As you can see, there is a lot to talk about. So without further ado lets +start! </para> </sect1> -<sect1 id=prod-show><title>Display</title> +<sect1 id=prod-list><title>List</title> +<para> +The first thing we will do is show you how to get a list of available projects +in the system to start playing around with. To display a list of available +projects click on the "Products & Projects" link in the menu on the left. Next +you will see a search screen to narrow the display of the available projects. +</para> +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/projects_pic1.png" format="png"> + </imageobject> + <textobject> + <phrase> +The search project screen +</phrase> + </textobject> + <caption> + <para> +The search project screen + <para> + </caption> + </mediaobject> + <para> +In this screen you can enter part or all of the projects name. The system will +It is even possible to do an extended search where we can specify more criteria +than just part of the name. +</para> +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/projects_pic2.png" format="png"> + </imageobject> + <textobject> + <phrase> +The extended search project screen +</phrase> + </textobject> + <caption> + <para> +The extended search project screen + <para> + </caption> + </mediaobject> + +<para> +If we simply click on "Search" we will get a list of all available projects. +</para> <mediaobject> -<imageobject> -<imagedata fileref="../product.png" format="png"> -</imageobject> -<textobject> -<phrase>A TUTOS product/project entry</phrase> -</textobject> -<caption> + <imageobject> + <imagedata fileref="../user_manual/projects_pic3.png" format="png"> + </imageobject> + <textobject> + <phrase> +The project list screen +</phrase> + </textobject> + <caption> + <para> +The project list screen + <para> + </caption> + </mediaobject> + +<para> +As you can see, there are currently not a lot of projects stored in the system, +only one project called "TUTOS" version "20020327" and two projects called +"Linux", one for version 2.2 and one for version 2.4. On the left side of the +screen, in the upper part of the menu, you can check all the fields that you +would like shown in this list. For our exercise we will +click on the name 'Tutos' and this will give us the screen as shown in the next +picture. +</para> +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/projects_pic4.png" format="png"> + </imageobject> + <textobject> + <phrase> +The project details screen +</phrase> + </textobject> + <caption> + <para> +The project details screen + <para> + </caption> + </mediaobject> + +<para> +There are a lot of things to take not off so we will stop here while I try to +explain all the different options available. Since a lot of things will also be +talked about later, we will be done sooner then you might think. +</para> + +<para> +The upper left part of the menu contains a number of options but only the first +three are relevant to this chapter. The "Search" options is used to start a new +search for a project, the "New" option is obviously for entering a new project +in the system, and the "Printable" options will present a screen similar to this +one but without the menu to ease the proces of making a printout of this page. +</para> +<para> +The detail screen itself contains a lot of information. Let's try to explain +some of it here. +</para> +<itemizedlist> +<listitem><para>Created by: This will bring you to a detailsscreen about the person +who created this project (in this case its Gero). The date and time mentioned will bring you to +that specific date in the calendar.</para></listitem> +<listitem><para>Product/Project TUTOS: This obviously tells you something about the name +of the project.</para></listitem> +<listitem><para>Version 20020327L Every project can have a version number attached to +it. Projects with the same name and a different version number are not +automatically related. </para></listitem> +<listitem><para>State Acquisition: Every project can be in one of several states. The +standard definition includes the following states: + <itemizedlist> + <listitem><para>"Acquisition": The project has been acquired but work has not yet + started.</para></listitem> + <listitem><para>"Ongoing": Work is under way on this project.</para></listitem> + <listitem><para>"Finished": The project is finished.</para></listitem> + <listitem><para>"Cancelled": The project is cancelled.</para></listitem> + <listitem><para>"Quote ongoing": The project is being quoted to the customer.</para></listitem> + <listitem><para>"Quote Cancelled": The customer was not interested in the bid/quote.</para></listitem> + </itemizedlist> +</para></listitem> +<listitem><para>Probability 100%: To make a reliable sales forecast report one must +estimate the chance this project will be sold.</para></listitem> +<listitem><para>Manager Gero Kohnert: Every project has a project manager. It is +possible to change the manager later but one manager is mandatory.</para></listitem> +<listitem><para>Partner Linux Consulting: A partner role in this project has been +reserved for the company "Linux Consulting". There are several roles possible +within a project. And they are not restricted to peoples roles either! + The standard definition includes the following roles: + <itemizedlist> + <listitem><para>Manager: The mandatory project manager</para></listitem> + <listitem><para>Commercial Manager: The commercial manager involved in this project.</para></listitem> + <listitem><para>2. Manager: A second manager (backup or otherwise)</para></listitem> + <listitem><para>Sales: Contact person from the sales department. </para></listitem> + <listitem><para>Development: Contact person from the development department. </para></listitem> + <listitem><para>Customer: The way to link a project to a customer.</para></listitem> + <listitem><para>Supplier: involved suppliers.</para></listitem> + <listitem><para>Reseller: involved resellers.</para></listitem> + <listitem><para>Partner: involved partners like subcontractors.</para></listitem> + </itemizedlist> +</para></listitem> +<listitem><para>Description: Here you can enter the project description. </para></listitem> +<listitem><para>Classification 1 Software: Every project can be classified into two +separate classes. The entries in these classes come from a language file and can +be easely adjusted to fit your company's needs.</para></listitem> +<listitem><para>Classification 2 North Region: See the first classification.</para></listitem> +<listitem><para>Price 0.00 Cost 0.00: Both project price and cost can be entered.</para></listitem> +<listitem><para>est. start ------ est. end ------: here you can enter the estimated +start and end date for this project.</para></listitem> +<listitem><para>Bugs OPEN 1 0.00 hours (too fast): This will present an overview of +bugreports related to this project (more about bug reports in a separate +chapter). As you can see, the current state is 'OPEN' and there has been 0.00 +hours spent on solving this particular bug.</para></listitem> +<listitem><para>Links homepage: Links related to this project will be displayed here.</para></listitem> +<listitem><para> Appointments 24/6/2002 invitation to the ball. Visit from: Gero Kohnert +22/6/2002 Meeting Visit at: Linus B Torvalds: Both entries show appointments +related to this project. When you make a new appointment and you enter a unique +part of the projects name in the 'project' field this link will be established.</para></listitem> +<listitem><para>Notes Remember this ! 22/06/2002 20:00 CEST L. Torvalds: A note related +to this project (more on notes in a separate chapter).</para></listitem> +<listitem><para>Tasks Tasks Overview: Clicking on this link will bring up all related +tasks in a new screen.</para></listitem> +<listitem><para>Demo Task 1: A customizable maximum number of tasks will be shown here.</para></listitem> +<listitem><para>Demo Task 2: see last note.</para></listitem> +<listitem><para>Effort 2.10 hours (Tasks): how much time has been spent in total on this +project.</para></listitem> +<listitem><para>see history: Show the history of database mutations related to this +project.</para></listitem> +</itemizedlist> +<para> +As you can see, there is a lot to tell about projects. And it is understandable +if you feel just a little overwhelmed. So let's continue with simply creating a +new project in the TUTOS system. +</para> +</sect1> + + +<sect1 id=prod-new><title>Create</title> <para> -A product entry +Making a new project is actually quiet simple. We'll start by clicking on the +"Products & Projects" link in the menu on the left. This will bring us to the +project search screen but also shows a little option in the upper left part of +the menu called 'New'. When we click that one we'll be presented with a screen +very similar to the one you see in the next picture. </para> -</caption> -</mediaobject> + +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/projects_pic5.png" format="png"> + </imageobject> + <textobject> + <phrase> +The new project screen +</phrase> + </textobject> + <caption> + <para> +The new project screen + <para> + </caption> + </mediaobject> +<para> +Personally I think that with all the information I already supplied before +filling this form can't be too difficult. However, there is one thing you should be +aware off. Linking a project to a customer or a partner or something else involves entering all the data, +clicking on the 'Enter' button and after that clicking on the 'modify' menu +option to enter the second role related to this project. Ah, wait, let me show +you. We start by entering some data as shown in the next picture: </para> + +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/projects_pic6.png" format="png"> + </imageobject> + <textobject> + <phrase> +The filled new project form +</phrase> + </textobject> + <caption> + <para> +The filled new project form + <para> + </caption> + </mediaobject> +<para> +There is something on this form that we have not yet discussed. That is the +'new relation'. This field is used to define a relation between this project and +another. You simply enter the name of the other project and the type of relation +you want. You can choose from the following list: +<itemizedlist> + <listitem><para>Project Base: to make a link to a base project of which this is a +subproject.</para></listitem> + <listitem><para>Ancestor Project: to make a link to an ancester project.</para></listitem> + <listitem><para>Succesor Project: to make a link to a succesor project.</para></listitem> + <listitem><para>Sub Project: to make a linkt to a subproject.</para></listitem> +</itemizedlist> +As you can see, this all looks very easy. Now we click on the 'Enter' button to +submit and store our data. Next we will see a screen with the project details we +entered. But since we are still not completely satisfied we will continue with +the next section about modifying this project. </sect1> -<sect1 id=prod-mod><title>Modify</title> +<sect1 id=prod-modify><title>Modify</title> <para> +In our menu there now is a new menu option visible called 'Modify'. Obviously +since you created the project you should have the rights to change it as you see +fit. Since the project we saw earlier ('TUTOS') wasn't created by us we weren't +allowed to change it. Anyway, the screen displayed should look similar to the +one in the next picture. +</para> + +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/projects_pic7.png" format="png"> + </imageobject> + <textobject> + <phrase> +The project details screen +</phrase> + </textobject> + <caption> + <para> +The project details screen + <para> + </caption> + </mediaobject> + +<para> +Since we would like to define an extra relation in this project we click in the +'modify' link in the menu on the left. This will bring us a screen similar to +the one we saw earlier. +</para> + +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/projects_pic8.png" format="png"> + </imageobject> + <textobject> + <phrase> +The modify project screen +</phrase> + </textobject> + <caption> + <para> +The modify project screen + <para> + </caption> + </mediaobject> +<para> +As you can see there is now a second role entry field visible called "New Role". +Since we would like to partner with the Linux Consulting company that is what we +will enter before clicking on the 'Enter' button again. +</para> +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/projects_pic9.png" format="png"> + </imageobject> + <textobject> + <phrase> +The new project details screen +</phrase> + </textobject> + <caption> + <para> +The new project details screen + <para> + </caption> + </mediaobject> +<para> +As you can see, all the data is there and it's all very 'clickable'. The one +this we now need to learn is how to undo all our hard work. So the next section +will tell you something about deleting a project. </para> </sect1> <sect1 id=prod-del><title>Delete</title> <para> +It probably is never a good idea to delete a project. For one thing, all +associated data will also be erased like tasks, invoices, time recorded working +on the project, etc. But since you are allowed to make a project you should also +have the possibility to delete it. Deleting a project is the same as with other +TUTOS entities. Just click on the 'Delete' link in the upper left part of the +menu. A confirmation message box will pop up asking you if this is what you +really want to do (see next picture). Just click on "OK" and you're ready. </para> +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/projects_pic10.png" format="png"> + </imageobject> + <textobject> + <phrase> +The deletion confirmation message box +</phrase> + </textobject> + <caption> + <para> +The deletion confirmation message box + <para> + </caption> + </mediaobject> + + + </sect1> -</chapter> +</chapter> \ No newline at end of file |
From: Jeroen B. <kw...@us...> - 2002-06-30 21:26:15
|
Update of /cvsroot/tutos/tutos/documentation In directory usw-pr-cvs1:/tmp/cvs-serv2844 Modified Files: tutos_user_address.sgml tutos_user_appointments.sgml tutos_user_resource.sgml Log Message: Changed the simpelist to itemizedlist Index: tutos_user_address.sgml =================================================================== RCS file: /cvsroot/tutos/tutos/documentation/tutos_user_address.sgml,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- tutos_user_address.sgml 29 Jun 2002 13:26:44 -0000 1.5 +++ tutos_user_address.sgml 30 Jun 2002 21:26:12 -0000 1.6 @@ -171,18 +171,18 @@ more locations which are sometimes also called addresses. Easy, isn't it? The other menu options are: </para> -<simplelist> -<member>Search: To start searching for another address.</member> -<Member>New Entry: To add someone else to the system </member> -<Member>Change Base: To change the basic data of some person (e.g. the screen -you saw before with first and lastname, etc.) </member> -<Member>Delete Base: To delete someone from the system (if you have the proper -authority) </member> -<Member>Show entry: Simply show what we know about this person. </member> -<Member>Company create: Add the basic data of a company tot the system (will be -discussed later) </member> -<Member>Department create: Add a department to an already existing company. </member> -</simplelist> +<itemizedlist> +<listitem><para>Search: To start searching for another address.</para></listitem> +<listitem><para>New Entry: To add someone else to the system </para></listitem> +<listitem><para>Change Base: To change the basic data of some person (e.g. the screen +you saw before with first and lastname, etc.) </para></listitem> +<listitem><para>Delete Base: To delete someone from the system (if you have the proper +authority) </para></listitem> +<listitem><para>Show entry: Simply show what we know about this person. </para></listitem> +<listitem><para>Company create: Add the basic data of a company tot the system (will be +discussed later) </para></listitem> +<listitem><para>Department create: Add a department to an already existing company. </para></listitem> +</itemizedlist> <para> When we click on the 'New Address' (as mentioned before, 'add location' would be @@ -218,28 +218,28 @@ <para> Let's look at the different fields and their use. </para> -<simplelist> -<Member>Category: See earlier explanation </member> -<Member>Name of address: Your description of this particular address/location. (eg. +<itemizedlist> +<listitem><para>Category: See earlier explanation </para></listitem> +<listitem><para>Name of address: Your description of this particular address/location. (eg. Amsterdam to tell that the address details mentioned here are for the person -when he is in the Amsterdam office. </member> -<Member>Description: Here you can say what position someone has. Is he sales -manager or does he scrub the floor?</member> -<Member>Company: Here you can enter the name of the company he is working. One +when he is in the Amsterdam office. </para></listitem> +<listitem><para>Description: Here you can say what position someone has. Is he sales +manager or does he scrub the floor?</para></listitem> +<listitem><para>Company: Here you can enter the name of the company he is working. One of the good things of TUTOS is that it will automagically try to connect a company that is stored in the system with this person. This is also the way to -tell TUTOS that someone is an employee of a firm. </member> -<Member>Copy Company's Address: Put a marker here if you'd like TUTOS to copy +tell TUTOS that someone is an employee of a firm. </para></listitem> +<listitem><para>Copy Company's Address: Put a marker here if you'd like TUTOS to copy the (first!) company's address/location data to the fields below. (Not to the fields on the right -side!). </member> -<Member>Department: If the company you entered has more one or more departments +side!). </para></listitem> +<listitem><para>Department: If the company you entered has more one or more departments you must supply the name of the relevant department here so TUTOS can make a -link between these data. </member> -<Member>Email (1 and 2): here you can put the email addresses of this person. -Both will be mentioned in the detail screen later. </member> -<Member>Phone (1 and 2): same as with email. </member> +link between these data. </para></listitem> +<listitem><para>Email (1 and 2): here you can put the email addresses of this person. +Both will be mentioned in the detail screen later. </para></listitem> +<listitem><para>Phone (1 and 2): same as with email. </para></listitem> -</simplelist> +</itemizedlist> <para> In our particular example we will fill in some fields and click on the 'Enter' button when we are done. As the company name we use a dummy company called @@ -364,24 +364,24 @@ <para> From here you can select one of the available options as described in the following list. -<simplelist> -<Member>Search: Start searching for an address again.</member> -<Member>New: Start to enter a new base address with optional multiple locations.</member> -<Member>Modify: Start to modify the current address.</member> -<Member>Get Vcard: Let TUTOS generate a Vcard file (could be used for inclusion -in your email program).</member> -<Member>Create a note: Add a note here with information about this address. </member> -<Member>Add Document: Here you can upload a document to be stored with this +<itemizedlist> +<listitem><para>Search: Start searching for an address again.</para></listitem> +<listitem><para>New: Start to enter a new base address with optional multiple locations.</para></listitem> +<listitem><para>Modify: Start to modify the current address.</para></listitem> +<listitem><para>Get Vcard: Let TUTOS generate a Vcard file (could be used for inclusion +in your email program).</para></listitem> +<listitem><para>Create a note: Add a note here with information about this address. </para></listitem> +<listitem><para>Add Document: Here you can upload a document to be stored with this address. This could for instance be a resume of someone applying for a job -within your company. </member> -<Member>Company Create: Start making a company.</member> -<Member>Department Create: Start adding a department to a company. </member> -<Member>Add to watchlist: Add this address to your personal watchlist. If +within your company. </para></listitem> +<listitem><para>Company Create: Start making a company.</para></listitem> +<listitem><para>Department Create: Start adding a department to a company. </para></listitem> +<listitem><para>Add to watchlist: Add this address to your personal watchlist. If someone later changes information regarding this address you will be notified -automagically.</member> -<Member>Merge with document: Here you will be able to merge the address data with a -template document (not implemented yet).</member> -</simplelist> +automagically.</para></listitem> +<listitem><para>Merge with document: Here you will be able to merge the address data with a +template document (not implemented yet).</para></listitem> +</itemizedlist> <para> In the next section we will discuss adding and deleting a company and a department. But first we will tell you something about modification and deletion @@ -434,7 +434,7 @@ <mediaobject> <imageobject> -<!-- imagedata fileref="../user_manual/address_pic12.png" format="png" --> +<imagedata fileref="../user_manual/address_pic12.png" format="png"> </imageobject> <textobject> <phrase> @@ -459,7 +459,7 @@ <mediaobject> <imageobject> -<!-- imagedata fileref="../user_manual/address_pic13.png" format="png" --> +<imagedata fileref="../user_manual/address_pic13.png" format="png" > </imageobject> <textobject> <phrase> @@ -484,7 +484,7 @@ <mediaobject> <imageobject> -<!-- imagedata fileref="../user_manual/address_pic14.png" format="png" --> +<imagedata fileref="../user_manual/address_pic14.png" format="png" > </imageobject> <textobject> <phrase> @@ -508,7 +508,7 @@ <mediaobject> <imageobject> -<!-- imagedata fileref="../user_manual/address_pic15.png" format="png" --> +<imagedata fileref="../user_manual/address_pic15.png" format="png" > </imageobject> <textobject> <phrase> @@ -530,7 +530,7 @@ <mediaobject> <imageobject> - <!-- imagedata fileref="../user_manual/address_pic16.png" format="png" --> + <imagedata fileref="../user_manual/address_pic16.png" format="png" > </imageobject> <textobject> <phrase> @@ -554,7 +554,7 @@ <mediaobject> <imageobject> - <!-- imagedata fileref="../user_manual/address_pic17.png" format="png" --> + <imagedata fileref="../user_manual/address_pic17.png" format="png" > </imageobject> <textobject> <phrase> @@ -581,7 +581,7 @@ <mediaobject> <imageobject> - <!-- imagedata fileref="../user_manual/address_pic18.png" format="png" --> + <imagedata fileref="../user_manual/address_pic18.png" format="png" > </imageobject> <textobject> <phrase> @@ -606,7 +606,7 @@ </para> <mediaobject> <imageobject> - <!-- imagedata fileref="../user_manual/address_pic19.png" format="png" --> + <imagedata fileref="../user_manual/address_pic19.png" format="png" > </imageobject> <textobject> <phrase> @@ -639,7 +639,7 @@ <mediaobject> <imageobject> - <!-- imagedata fileref="../user_manual/address_pic20.png" format="png" --> + <imagedata fileref="../user_manual/address_pic20.png" format="png" > </imageobject> <textobject> <phrase> @@ -666,7 +666,7 @@ <mediaobject> <imageobject> - <!-- imagedata fileref="../user_manual/address_pic21.png" format="png" --> + <imagedata fileref="../user_manual/address_pic21.png" format="png" > </imageobject> <textobject> <phrase> @@ -691,7 +691,7 @@ <mediaobject> <imageobject> - <!-- imagedata fileref="../user_manual/address_pic22.png" format="png" --> + <imagedata fileref="../user_manual/address_pic22.png" format="png" > </imageobject> <textobject> <phrase> @@ -724,7 +724,7 @@ <mediaobject> <imageobject> - <!-- imagedata fileref="../user_manual/address_pic23.png" format="png" --> + <imagedata fileref="../user_manual/address_pic23.png" format="png" > </imageobject> <textobject> <phrase> @@ -750,4 +750,4 @@ </para> </sect1> -</chapter> \ No newline at end of file +</chapter> Index: tutos_user_appointments.sgml =================================================================== RCS file: /cvsroot/tutos/tutos/documentation/tutos_user_appointments.sgml,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- tutos_user_appointments.sgml 29 Jun 2002 21:19:23 -0000 1.2 +++ tutos_user_appointments.sgml 30 Jun 2002 21:26:12 -0000 1.3 @@ -44,7 +44,6 @@ </caption> </mediaobject> </para> -</sect1> <para> The days all have their separate box and all have a certain color. The current @@ -108,7 +107,7 @@ <para> Returning to the 4-week view with which we started earlier is very easy. Just click on 'Calendar' in the menu of the left. Now it is getting time to start -creating appointments of our own. Read all about it in the next section!</para> +creating appointments of our own. Read all about it in the next section! </para> </sect1> @@ -370,4 +369,4 @@ </para> </sect1> -</chapter> \ No newline at end of file +</chapter> Index: tutos_user_resource.sgml =================================================================== RCS file: /cvsroot/tutos/tutos/documentation/tutos_user_resource.sgml,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- tutos_user_resource.sgml 27 Jun 2002 20:58:11 -0000 1.2 +++ tutos_user_resource.sgml 30 Jun 2002 21:26:12 -0000 1.3 @@ -56,15 +56,15 @@ Clicking on the 'Meeting room' link will bring you to the Resource Detail screen. Here you can select a number of options from the menu. </para> -<simplelist> -<Member>New: Create a new resource item. </member> -<Member>Modify: Modify the current resource </member> -<Member>Resources: Return to the list with resources. </member> -<Member>Calendar: Go to the calendar </member> -<Member>Note: Add a note to a resource. Notes are discussed in a separate +<itemizedlist> +<listitem><para>New: Create a new resource item. </para></listitem> +<listitem><para>Modify: Modify the current resource </para></listitem> +<listitem><para>Resources: Return to the list with resources. </para></listitem> +<listitem><para>Calendar: Go to the calendar </para></listitem> +<listitem><para>Note: Add a note to a resource. Notes are discussed in a separate chapter but you could as an example make a note about a resouce telling people -where ethey can pick up the key to gain access. </member> -</simplelist> +where ethey can pick up the key to gain access. </para></listitem> +</itemizedlist> </sect1> |
From: Jeroen B. <kw...@us...> - 2002-06-30 19:23:44
|
Update of /cvsroot/tutos/tutos/php In directory usw-pr-cvs1:/tmp/cvs-serv25514 Modified Files: calendar_week.php calendar_day.php Log Message: That little 'nowrap' thing really saves my day :-) Index: calendar_week.php =================================================================== RCS file: /cvsroot/tutos/tutos/php/calendar_week.php,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- calendar_week.php 30 Jun 2002 18:36:29 -0000 1.12 +++ calendar_week.php 30 Jun 2002 19:23:39 -0000 1.13 @@ -46,7 +46,7 @@ echo "<TABLE CLASS=single BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=\"100%\">\n"; echo " <TR>\n"; - echo " <TH ALIGN=left COLSPAN=2> ". $lang['forphrase'] ."\n"; + echo " <TH ALIGN=left nowrap COLSPAN=2> ". $lang['forphrase'] ."\n"; cal_options($team); echo " </TH>\n"; echo " </TR>\n"; @@ -179,4 +179,4 @@ <!-- CVS Info: $Id$ $Author$ ---> \ No newline at end of file +--> Index: calendar_day.php =================================================================== RCS file: /cvsroot/tutos/tutos/php/calendar_day.php,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- calendar_day.php 30 Jun 2002 18:36:29 -0000 1.8 +++ calendar_day.php 30 Jun 2002 19:23:39 -0000 1.9 @@ -117,7 +117,7 @@ echo "<TABLE CLASS=single BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=\"90%\">\n"; echo " <TR>\n"; - echo " <TH ALIGN=left COLSPAN=". ($maxcol +1) ."> ". $lang['forphrase'] ."\n"; + echo " <TH ALIGN=left nowrap COLSPAN=". ($maxcol +1) ."> ". $lang['forphrase'] ."\n"; cal_options($team); echo " </TH>\n"; echo " </TR>\n"; |
From: Gero K. <gok...@us...> - 2002-06-30 18:36:33
|
Update of /cvsroot/tutos/tutos/php In directory usw-pr-cvs1:/tmp/cvs-serv9432/php Modified Files: appointment.pinc calendar.php calendar_day.php calendar_week.php mytutos.php Log Message: some calendar fixes Index: appointment.pinc =================================================================== RCS file: /cvsroot/tutos/tutos/php/appointment.pinc,v retrieving revision 1.85 retrieving revision 1.86 diff -u -r1.85 -r1.86 --- appointment.pinc 24 Jun 2002 11:37:06 -0000 1.85 +++ appointment.pinc 30 Jun 2002 18:36:29 -0000 1.86 @@ -9,6 +9,215 @@ /* -------------------------------------------------------------------------- + * options for calendar selection + */ +function cal_options($team) { + global $lang,$current_user,$teamname; + + echo "<SELECT name=\"team\">\n"; + $showed = 0; + echo " <OPTGROUP LABEL=\"". $lang['Teams'] ."\">\n"; + @reset($current_user->t_parties); + while ( list ($i,$f) = @each ($current_user->t_parties) ) { + echo " <OPTION value=". $i ." ". ($team == $i ? "SELECTED" : "") .">". $f ."</OPTION>\n"; + if ( $team == $i ) { + $showed = 1; + } + } + echo " </OPTGROUP>\n"; + + echo " <OPTION value=1 ". ($team == 1 ? "SELECTED" : "") .">". $lang['User'] ." ". $current_user->getFullname() ."</OPTION>\n"; + if ( $team == 1 ) { + $showed = 1; + } + echo " <OPTION value=2 ". ($team == 2 ? "SELECTED" : "") .">". $lang['AppAllTeams'] ."</OPTION>\n"; + if ( $team == 2 ) { + $showed = 1; + } + echo " <OPTION value=3 ". ($team == 3 ? "SELECTED" : "") .">". $lang['AppAllSee'] ."</OPTION>\n"; + if ( $team == 3 ) { + $showed = 1; + } + if ( $current_user->admin == 1 ) { + echo " <OPTION value=0 ". ($team == 0 ? "SELECTED" : "") .">". $lang['AppEverything'] ."</OPTION>\n"; + if ( $team == 0 ) { + $showed = 1; + } + } + if ( $showed != 1 ) { + echo " <OPTION value=". $team ." SELECTED>". $teamname ."</OPTION>\n"; + } + echo " </SELECT>\n"; + echo " <INPUT type=submit value=\"GO\">"; +} + +/** + * check a date against a list of objects + * returns boolean + */ +function cal_check_against_list(&$obj,&$uids) { + + if ( isset($uids[0]) ) { + return true; + } + if ( ! $obj->see_ok() ){ + return false; + } + /* if user is not interessted in - show nothing */ + if ( $obj->gettype() == "appointment" ) { + # Check Participants + @reset($obj->participant); + while ( list ($i,$f) = @each ($obj->participant) ) { + if ( array_key_exists($f->id,$uids)) { + return true; + } + unset($f); + } + # Check Resources + $obj->readRes(); + @reset($obj->resuselist); + while ( list ($i,$f) = @each ($obj->resuselist) ) { + if ( array_key_exists($f->id,$uids)) { + return true; + } + unset($f); + } + return false; + } + if ( $obj->gettype() == "note" ) { + return true; + } + if ( $obj->gettype() == "task" ) { + return true; + } + return false; +} + +/** + * set some defaults for calendar display + */ +function cal_setDefault(&$user,&$uids) { + /* show apps for current user */ + $uids[$user->id] = 1; + @reset($user->teamids); + while ( list ($i,$f) = @each ($user->teamids) ) { + $uids[$i] = 1; + } +} +/** + * parse the calendar options + */ +function cal_parse_options(&$user) { + global $teamname,$lang,$HTTP_GET_VARS; + + $uids = array(); + if ( isset($HTTP_GET_VARS['team']) ) { + $team = $HTTP_GET_VARS['team']; + $user->set_prefteam($team); + } else { + /* Get the last used team */ + $team = $user->get_prefteam(); + } + $user->readKnownParties(); + + /* Get group or user whose calendar should be displayed */ + /* default to current checked in user */ + if ( ($team == 0) && ($user->admin != 1) ) { + $team = 1; + } + if ( $team == 0 ) { + $uids[0] = 1; + } elseif ( $team == 1) { + cal_setDefault($user,$uids); + } elseif ( $team == 2) { + /* show apps for all teams members of current users teams */ + $uids[$user->id] = 1; + @reset($user->teamids); + while ( list ($i,$f) = @each ($user->teamids) ) { + $uids[$i] = 1; + $tt = new team($user->dbconn); + $tt->read($i); + $tt->read_member(); + @reset($tt->member); + while ( list ($i1,$f1) = @each ($tt->member) ) { + $uids[$i1] = 1; + # Add all teams where this member is also a member + # so you can see if this one is occupied by a team event + # of one of his/her teams + @reset($f1->teamids); + while ( list ($i2,$f2) = @each ($f1->teamids) ) { + $uids[$i2] = 1; + } + } + unset($tt); + } + } elseif ( $team == 3) { + /* show apps for all teams members of current users teams */ + /* and all users and teams we are allowed to see (ACL) */ + $uids[$user->id] = 1; + @reset ($user->a_parties); + while ( list ($ip,$fn) = @each ($user->a_parties) ) { + $uids[$ip] = 1; + } + $xx = $user->t_parties; + @reset ($xx); + while ( list ($ip,$fn) = @each ($xx) ) { + $uids[$ip] = 1; + $tt = new team($user->dbconn); + $tt->read($ip); + while ( list ($i1,$f1) = @each ($tt->ids) ) { + $uids[$i1] = 1; + } + unset($tt); + } + } else { + $tt = getObject($user->dbconn,$team); + if ( $tt == -1 ) { + } else if ( $tt->getType() == "team" ) { + if ( $tt->see_ok() ) { + # Team + $uids[$team] = 1; + $teamname = $tt->name; + $tt->read_member(); + @reset($tt->member); + while ( list ($i1,$f1) = @each ($tt->member) ) { + $uids[$i1] = 1; + # Check the teams where this user is also a member + if ( isset($f1->teamids) && (count($f1->teamids) > 0) ) { + @reset($f1->teamids); + while ( list ($i2,$f2) = @each ($f1->teamids) ) { + $uids[$i2] = 1; + } + } + } + } else { + $msg .= sprintf($lang['Err0022'],$lang['Calendar']."(". $lang['Team']." ".$tt->getFullName().")"); + cal_setDefault($user,$uids); + } + } else if ( $tt->getType() == "user" ) { + if ( $tt->see_ok() ) { + $uids[$team] = 1; + $teamname = $lang['User'] ." ". $tt->getFullname(); + # All Teams where the user is a member + @reset($tt->teamids); + while ( list ($i,$f) = @each ($tt->teamids) ) { + $uids[$i] = 1; + } + } else { + $msg .= sprintf($lang['Err0022'],$lang['Calendar']."(". $lang['User']." ".$tt->getFullName().")"); + cal_setDefault($user,$uids); + } + } else if ( $tt->getType() == "resource" ) { + # Resource + if ( $tt->see_ok() ) { + $teamname = $lang['Resource'] ." ". $tt->getFullname(); + $uids[$team] = 1; + } + } + } + return $uids; +} +/* -------------------------------------------------------------------------- * support function for readAppsCal */ function addAppsCal(&$obj, &$r,&$from,&$to) { @@ -24,8 +233,6 @@ } /* Get all participants */ $o->read_participants(); - - $obj->callist[] = &$o; unset($o); Index: calendar.php =================================================================== RCS file: /cvsroot/tutos/tutos/php/calendar.php,v retrieving revision 1.45 retrieving revision 1.46 diff -u -r1.45 -r1.46 --- calendar.php 12 Jun 2002 21:04:21 -0000 1.45 +++ calendar.php 30 Jun 2002 18:36:29 -0000 1.46 @@ -44,43 +44,7 @@ } echo " ". $lang['forphrase'] ."\n"; - echo " <SELECT name=team>\n"; - - $showed = 0; - echo " <OPTGROUP LABEL=\"". $lang['Teams'] ."\">\n"; - @reset($current_user->t_parties); - while ( list ($i,$f) = @each ($current_user->t_parties) ) { - echo " <OPTION value=". $i ." ". ($team == $i ? "SELECTED" : "") .">". $f ."</OPTION>\n"; - if ( $team == $i ) { - $showed = 1; - } - } - echo " </OPTGROUP>\n"; - - echo " <OPTION value=1 ". ($team == 1 ? "SELECTED" : "") .">". $lang['User'] ." ". $current_user->getFullname() ."</OPTION>\n"; - if ( $team == 1 ) { - $showed = 1; - } - echo " <OPTION value=2 ". ($team == 2 ? "SELECTED" : "") .">". $lang['AppAllTeams'] ."</OPTION>\n"; - if ( $team == 2 ) { - $showed = 1; - } - echo " <OPTION value=3 ". ($team == 3 ? "SELECTED" : "") .">". $lang['AppAllSee'] ."</OPTION>\n"; - if ( $team == 3 ) { - $showed = 1; - } - if ( $current_user->admin == 1 ) { - echo " <OPTION value=0 ". ($team == 0 ? "SELECTED" : "") .">". $lang['AppEverything'] ."</OPTION>\n"; - if ( $team == 0 ) { - $showed = 1; - } - } - if ( $showed != 1 ) { - echo " <OPTION value=". $team ." SELECTED>". $teamname ."</OPTION>\n"; - } - - echo " </SELECT>\n"; - echo " <INPUT type=submit value=\"GO\">"; + cal_options($team); echo " </TD>\n"; @@ -125,7 +89,7 @@ $w0 = (( 1 + Date("w",mktime(12,0,0,1,1, Date("Y",$ts) ) )) % 7) > 3; $wn = sprintf("%02d", Round( (Date("z",$ts)+7 ) / 7) ); $yy = Date("y",$ts); - echo " <TD CLASS=week WIDTH=\"5%\">". menulink("calendar_week.php?t=".Date("Ymd",$ts), $wn ."/". $yy, $wn ."/". $yy ) ."</TD>\n"; + echo " <TD CLASS=week WIDTH=\"5%\">". menulink("calendar_week.php?t=".Date("Ymd",$ts)."&team=". $team, $wn ."/". $yy, $wn ."/". $yy ) ."</TD>\n"; /* Select appointments for this day */ $from = new DateTime(); @@ -180,38 +144,9 @@ if ( ! $current_user->callist[$a]->inside($dd) ) { continue; } - /* if user is not interessted in - show nothing */ - $found = 0; - if ( $current_user->callist[$a]->gettype() == "appointment" ) { - if ( ! isset($uids[0]) ) { - # Check Participants - @reset($current_user->callist[$a]->participant); - while ( ($found == 0) && (list ($i,$f) = @each ($current_user->callist[$a]->participant)) ) { - if ( array_key_exists($f->id,$uids)) { - $found = $f->id; - break; - } - unset($f); - } - # Check Resources - $current_user->callist[$a]->readRes(); - @reset($current_user->callist[$a]->resuselist); - while ( ($found == 0) && (list ($i,$f) = @each ($current_user->callist[$a]->resuselist)) ) { - if ( array_key_exists($f->id,$uids)) { - $found = $f->id; - break; - } - unset($f); - } - } else { - $found = 1; - } - if ( $found == 0 ) { - /* Show nothing */ - $a++; - continue; - } - } + if (!cal_check_against_list($current_user->callist[$a],$uids)) { + continue; + } if ( $hastable == 0 ) { if ( $tutos[caltable] == 2 ) { @@ -331,20 +266,6 @@ } /* --------------------------------------------------------------------------- */ - function setDefault() { - global $uids , $current_user, $team; - - $team = 1; - /* show apps for current user */ - $uids[$current_user->id] = $team; - @reset($current_user->teamids); - while ( list ($i,$f) = @each ($current_user->teamids) ) { - $uids[$i] = 1; - } - } - -/* --------------------------------------------------------------------------- */ - $start_ts = time(); HTML_Header($lang['Appointments']); @@ -355,20 +276,15 @@ } else { $t = Date("Ymd"); } + + $uids = cal_parse_options($current_user); + $team = $current_user->get_prefteam(); - if ( isset($HTTP_GET_VARS['team']) ) { - $team = $HTTP_GET_VARS['team']; - $current_user->set_prefteam($team); - } else { - /* Get the last used team */ - $team = $current_user->get_prefteam(); - } - $current_user->readKnownParties(); - $uids = array(); /* Show a calendar containing Appointment id */ if ( isset($HTTP_GET_VARS['id']) ) { - $query = "SELECT a_start FROM calendar where id =". $HTTP_GET_VARS['id']; + $id = $HTTP_GET_VARS['id']; + $query = "SELECT a_start FROM calendar where id =". $id; $result = $dbconn->Exec($query); if ( 1 != $result->numrows()) { echo "<SPAN class=warn>". sprintf($lang['Err0040'],$lang['Appointment']) ."</SPAN>"; @@ -379,112 +295,7 @@ $d = new DateTime($result->get(0, "a_start")); $t = $d->getYYYYMMDD(); $result->free(); - } - - /* Get group or user whose calendar should be displayed */ - /* default to current checked in user */ - if ( ($team == 0) && ($current_user->admin != 1) ) { - $team = 1; - } - if ( $team == 1 ) { - setDefault(); - } elseif ( $team == 2 ) { - /* show apps for all teams members of current users teams */ - $uids[$current_user->id] = 1; - @reset($current_user->teamids); - while ( list ($i,$f) = @each ($current_user->teamids) ) { - $uids[$i] = 1; - $tt = new team($dbconn); - $tt->read($i); - $tt->read_member(); - @reset($tt->member); - while ( list ($i1,$f1) = @each ($tt->member) ) { - $uids[$i1] = 1; - # Add all teams where this member is also a member - # so you can see if this one is occupied by a team event - # of one of his/her teams - @reset($f1->teamids); - while ( list ($i2,$f2) = @each ($f1->teamids) ) { - $uids[$i2] = 1; - } - } - unset($tt); - } - } elseif ( $team == 3 ) { - /* show apps for all teams members of current users teams */ - /* and all users and teams we are allowed to see (ACL) */ - $uids[$current_user->id] = 1; - @reset ($current_user->a_parties); - while ( list ($ip,$fn) = @each ($current_user->a_parties) ) { - $uids[$ip] = 1; - } - $xx = $current_user->t_parties; - @reset ($xx); - while ( list ($ip,$fn) = @each ($xx) ) { - $uids[$ip] = 1; - $tt = new team($current_user->dbconn); - $tt->read($ip); - while ( list ($i1,$f1) = @each ($tt->ids) ) { - $uids[$i1] = 1; - } - unset($tt); - } } else { - # select a specific team / user - # team 0 == virtual team - $tt = new team($dbconn); - $tt->read($team); - if ( $tt->id != -1 ) { - if ( $tt->see_ok() ) { - # Team - $uids[$team] = 1; - $teamname = $tt->name; - $tt->read_member(); - @reset($tt->member); - while ( list ($i1,$f1) = @each ($tt->member) ) { - $uids[$i1] = 1; - # Check the teams where this user is also a member - if ( isset($f1->teamids) && (count($f1->teamids) > 0) ) { - @reset($f1->teamids); - while ( list ($i2,$f2) = @each ($f1->teamids) ) { - $uids[$i2] = 1; - } - } - } - } else { - $msg .= sprintf($lang['Err0022'],$lang['Calendar']."(". $lang['Team']." ".$tt->getFullName().")"); - setDefault(); - } - } else { - # User - $tt = new tutos_user($dbconn); - $tt->read($team); - if ( $tt->id != -1 ) { - if ( $tt->see_ok() ) { - $uids[$team] = 1; - $teamname = $lang['User'] ." ". $tt->getFullname(); - # All Teams where the user is a member - @reset($tt->teamids); - while ( list ($i,$f) = @each ($tt->teamids) ) { - $uids[$i] = 1; - } - } else { - $msg .= sprintf($lang['Err0022'],$lang['Calendar']."(". $lang['User']." ".$tt->getFullName().")"); - setDefault(); - } - } else { - # Resource - $tt = new resource($dbconn); - $tt->read($team); - if ( $tt->see_ok() ) { - $teamname = $lang['Resource'] ." ". $tt->getFullname(); - $uids[$team] = 1; - } - } - } - } - # Show messages from previous actions - if ( !isset($id) ) { $id = -1; } Index: calendar_day.php =================================================================== RCS file: /cvsroot/tutos/tutos/php/calendar_day.php,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- calendar_day.php 29 Jun 2002 19:56:26 -0000 1.7 +++ calendar_day.php 30 Jun 2002 18:36:29 -0000 1.8 @@ -20,7 +20,7 @@ /* --------------------------------------------------------------------------- * A one day calendar sheet */ - Function info($t) { + Function info($t,$team,&$uids) { global $lang,$current_user,$tutos; $ts = mktime(12,0,0,substr($t,4,2),substr($t,6,2),substr($t,0,4)); @@ -41,9 +41,12 @@ # echo $from->getDateTime() ."<BR>"; readAppsCal($current_user,$from,$next_day); + if ( $current_user->feature_ok(usenotes,PERM_SEE) ) { + readNotesCal($current_user,$from,$next_day); + } for ($i = -1 ; $i < 24 ; $i++ ) { - $table[] = array(); + $table[$i] = array(); } $xxx = $current_user->callist; @reset($current_user->callist); @@ -51,13 +54,23 @@ if ( ! $current_user->callist[$a]->inside($from)) { continue; } + if (!cal_check_against_list($current_user->callist[$a],$uids)) { + continue; + } + if ( $current_user->callist[$a]->gettype() == "note" ) { + $table[-1][] = &$current_user->callist[$a]; + $rowspan[-1][] = 1; + continue; + } if ( $current_user->callist[$a]->t_ignore == 1) { $table[-1][] = &$current_user->callist[$a]; + $rowspan[-1][] = 1; continue; } # echo $current_user->callist[$a]->s_out ."<BR>"; if ( ($current_user->callist[$a]->s_out == 1) && ($current_user->callist[$a]->e_out == 1) ) { $table[-1][] = &$current_user->callist[$a]; + $rowspan[-1][] = 1; continue; } $x1 = Date("G",$current_user->callist[$a]->start->getTimeStamp()); @@ -93,13 +106,22 @@ } } - $maxcol = 0; + $maxcol = 1; for ($i = -1 ; $i < 24 ; $i++ ) { $maxcol = max($maxcol,count($table[$i])); } + echo "<FORM ACTION=\"calendar_day.php\" method=\"GET\">\n"; + hiddenFormElements(); + echo " <INPUT type=hidden name=t value=". $t .">\n"; + echo "<TABLE CLASS=single BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=\"90%\">\n"; echo " <TR>\n"; + echo " <TH ALIGN=left COLSPAN=". ($maxcol +1) ."> ". $lang['forphrase'] ."\n"; + cal_options($team); + echo " </TH>\n"; + echo " </TR>\n"; + echo " <TR>\n"; echo " <TH nowrap COLSPAN=". ($maxcol +1) ." WIDTH=\"100%\">"; echo menulink("calendar_day.php?t=".$last_day->getYYYYMMDD(),$tutos[image][left],$last_day->getDate()); echo " ". strftime($lang['DateFormatTitle'],$from->ts) ." (". $lang['week']." ". menulink("calendar_week.php?t=".Date("Ymd",$from->ts), $wn ."/". $yy, $wn ."/". $yy ) .") "; @@ -122,14 +144,9 @@ for ($c = 0 ; $c < $maxcol ; $c++ ) { if ( isset ( $table[$i][$c] ) ) { if ( is_object ( $table[$i][$c] ) ) { - if ( $table[$i][$c]->mod_allow == 3 ) { - $class = "privapp"; - } else { - $class = "app"; - } echo " <TD CLASS=\"line". (1+($i % 2)) ."\" VALIGN=top ROWSPAN=\"". $rowspan[$i][$c]."\">"; echo "<IMG HEIGHT=1 WIDTH=100% SRC=\"". $tutos['base'] ."/html/black.png\"><BR>"; - echo " <CENTER><TABLE WIDTH=\"80%\" CLASS=". $class ." BORDER=0 CELLPADDING=0 CELLSPACING=0>\n"; + echo " <CENTER><TABLE WIDTH=\"80%\" BORDER=0 CELLPADDING=0 CELLSPACING=0>\n"; echo $table[$i][$c]->formatted(); echo " </TABLE></CENTER></TD>\n"; } else if ( $table[$i][$c] = -1 ) { @@ -142,6 +159,7 @@ echo " </TR>\n"; } echo "</TABLE>\n"; + echo "</FORM>\n"; } /* --------------------------------------------------------------------------- * @@ -164,11 +182,14 @@ $t = Date("Ymd"); } else { $t = $HTTP_GET_VARS['t']; - } + } + + $uids = cal_parse_options($current_user); + HTML_Base1(); navigate(); HTML_Base2($msg); - info($t); + info($t,$current_user->get_prefteam(),$uids); HTML_Base3(); $dbconn->Close(); ?> Index: calendar_week.php =================================================================== RCS file: /cvsroot/tutos/tutos/php/calendar_week.php,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- calendar_week.php 21 Jun 2002 14:24:19 -0000 1.11 +++ calendar_week.php 30 Jun 2002 18:36:29 -0000 1.12 @@ -24,9 +24,10 @@ /* --------------------------------------------------------------------------- * A one week calendar sheet */ - Function info($t) { + Function info($t,$team,&$uids) { global $lang,$current_user,$tutos; + $adr = $current_user; $ts = mktime(12,0,0,substr($t,4,2),substr($t,6,2),substr($t,0,4)); @@ -39,9 +40,17 @@ $wn = sprintf("%02d", Round( (Date("z",$ts)+7 ) / 7) ); $yy = Date("y",$ts); + echo "<FORM ACTION=\"calendar_week.php\" method=\"GET\">\n"; + hiddenFormElements(); + echo " <INPUT type=hidden name=t value=". $t .">\n"; echo "<TABLE CLASS=single BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=\"100%\">\n"; echo " <TR>\n"; + echo " <TH ALIGN=left COLSPAN=2> ". $lang['forphrase'] ."\n"; + cal_options($team); + echo " </TH>\n"; + echo " </TR>\n"; + echo " <TR>\n"; echo " <TH COLSPAN=2 WIDTH=\"100%\">". $lang['week'] ." " . $wn . "/". $yy ."</TH>\n"; echo " </TR>\n"; @@ -97,27 +106,9 @@ if ( ! $current_user->callist[$a]->inside($dd) ) { continue; } - # Check if appointment is displayed - if ( $current_user->callist[$a]->gettype() == "appointment" ) { - $found = 0; - @reset($current_user->callist[$a]->participant); - while ( ($found == 0) && (list ($i,$f) = @each ($current_user->callist[$a]->participant)) ) { - if ( $f->id == $adr->id ) { - $found = 1; - } else { - $xx = $adr->teamids; - @reset($xx); - while ( list ($i2,$f2) = @each ($xx) ) { - if ( $f->id == $i2 ) { - $found = 1; - } - } - } - } - if ( $found == 0 ) { - continue; - } - } + if (!cal_check_against_list($current_user->callist[$a],$uids)) { + continue; + } // Do not show finished tasks if ( ($current_user->callist[$a]->gettype() == "task") && ($current_user->callist[$a]->state == 2) ) { continue; @@ -152,6 +143,7 @@ } echo "</TABLE>\n"; + echo "</FORM>\n"; } /* --------------------------------------------------------------------------- * @@ -174,10 +166,13 @@ HTML_Header($lang['Appointments']); + $uids = cal_parse_options($current_user); + $team = $current_user->get_prefteam(); + HTML_Base1(); navigate(); HTML_Base2($msg); - info($HTTP_GET_VARS['t']); + info($HTTP_GET_VARS['t'],$current_user->get_prefteam(),$uids); HTML_Base3(); $dbconn->Close(); ?> Index: mytutos.php =================================================================== RCS file: /cvsroot/tutos/tutos/php/mytutos.php,v retrieving revision 1.52 retrieving revision 1.53 diff -u -r1.52 -r1.53 --- mytutos.php 20 Jun 2002 10:48:20 -0000 1.52 +++ mytutos.php 30 Jun 2002 18:36:29 -0000 1.53 @@ -46,49 +46,73 @@ $wn = sprintf("%02d", Round( (Date("z",$ts)+7 ) / 7) ); $yy = Date("y",$ts); + $day = 0; + $dd = new DateTime(); + + $from = new DateTime(); + $from->setDateTimeTS($ts - 12 * 3600); + $to = $from; + $to->addDays(7); + readAppsCal($adr,$from,$to); + info_table_start(); echo " <TR>\n"; echo " <TH>". $lang['week'] ."</TH>\n"; + $wd = $ts; if ( $adr->weekstart == 0 ) { if ($adr->isWorkDay(0)) { - echo " <TH>". $lang['Day0'] ."</TH>\n"; + $tref = Date("Ymd",$wd); + echo " <TH>". menulink("calendar_day.php?t=". $tref,Date("l",$wd)) ."</TH>\n"; } + $wd = NextDay($wd); } if ($adr->isWorkDay(1)) { - echo " <TH>". $lang['Day1'] ."</TH>\n"; + $tref = Date("Ymd",$wd); + echo " <TH>". menulink("calendar_day.php?t=". $tref,Date("l",$wd)) ."</TH>\n"; } + $wd = NextDay($wd); + if ($adr->isWorkDay(2)) { - echo " <TH>". $lang['Day2'] ."</TH>\n"; + $tref = Date("Ymd",$wd); + echo " <TH>". menulink("calendar_day.php?t=". $tref,Date("l",$wd)) ."</TH>\n"; } + $wd = NextDay($wd); + if ($adr->isWorkDay(3)) { - echo " <TH>". $lang['Day3'] ."</TH>\n"; + $tref = Date("Ymd",$wd); + echo " <TH>". menulink("calendar_day.php?t=". $tref,Date("l",$wd)) ."</TH>\n"; } + $wd = NextDay($wd); + if ($adr->isWorkDay(4)) { - echo " <TH>". $lang['Day4'] ."</TH>\n"; + $tref = Date("Ymd",$wd); + echo " <TH>". menulink("calendar_day.php?t=". $tref,Date("l",$wd)) ."</TH>\n"; } + $wd = NextDay($wd); + if ($adr->isWorkDay(5)) { - echo " <TH>". $lang['Day5'] ."</TH>\n"; + $tref = Date("Ymd",$wd); + echo " <TH>". menulink("calendar_day.php?t=". $tref,Date("l",$wd)) ."</TH>\n"; } + $wd = NextDay($wd); + if ($adr->isWorkDay(6)) { - echo " <TH>". $lang['Day6'] ."</TH>\n"; + $tref = Date("Ymd",$wd); + echo " <TH>". menulink("calendar_day.php?t=". $tref,Date("l",$wd)) ."</TH>\n"; } + $wd = NextDay($wd); + if ( $adr->weekstart != 0 ) { if ($adr->isWorkDay(0)) { - echo " <TH>". $lang['Day0'] ."</TH>\n"; + $tref = Date("Ymd",$wd); + echo " <TH>". menulink("calendar_day.php?t=". $tref,Date("l",$wd)) ."</TH>\n"; } + $wd = NextDay($wd); } echo " </TR>\n"; echo " <TR>\n"; echo " <TD CLASS=week WIDTH=\"5%\">". menulink("calendar_week.php?t=".Date("Ymd",$ts), $wn ."/". $yy, $wn ."/". $yy ) ."</TD>\n"; - $day = 0; - $dd = new DateTime(); - - $from = new DateTime(); - $from->setDateTimeTS($ts - 12 * 3600); - $to = $from; - $to->addDays(7); - readAppsCal($adr,$from,$to); if ( $current_user->feature_ok(usetaskmanagement,PERM_SEE) ) { readTaskCal($adr,$from,$to); } |
From: Jeroen B. <kw...@us...> - 2002-06-29 21:21:07
|
Update of /cvsroot/tutos/tutos/documentation/user_manual In directory usw-pr-cvs1:/tmp/cvs-serv14603 Added Files: appointments_pic1.png appointments_pic10.png appointments_pic11.png appointments_pic2.png appointments_pic3.png appointments_pic4.png appointments_pic5.png appointments_pic6.png appointments_pic7.png appointments_pic8.png appointments_pic9.png Log Message: Sorry about the binary dumps. Really! --- NEW FILE: appointments_pic1.png --- PNG ìÙ4cðwCCCÞ}wù ¬´¯]ÞyÜqCSÎxää³Í»@ìÜòë©Ìl°Ál°ÜÆæ_ô¬øþ]½½½=öØ·¾õ-¡ÕÓÓcE³7o]¨ÕjµZíPà?U{NØÝ00ðöïï¾c3±]qDߺ¿xõãÆ9îØc¿3ë29Éò%× !.Z|·+ÐbYVû{ûâî{ô¥ ïÉYéâî{¬8vVö^i]1%q¥5<t®Dä[¼»±ëö \pÍöWdWg9¹É½"xñ*f§^¯ÊûÒÄ+CÍÞGIH*ÄÁW&wíÚ+þÈäìu ¼* ¬Ì-ºxPY69U\§¾lú×A Éô®½öR¦yP À |ãÈ43³CäBÎú¶DÉ9ÝeؼKî½NɼtJ¢òY ô¶F|>äüóyÊy Z~ûUyÃ$ó]uÌJ N*{»@Åv*AôYëb~:euâî×ä[(ä7BÑÛÛò§¶çüý^J WÉXTÁ¦,yΫcð@=ç5²çªT]¦³éÈ~ дÃ|íÒ*©¾Ñ\Îhv¸+еIëT}â y½^Õ&XP3rÙ¬m;ÄüΫ<®Â;ñ53ä,\ȼÛj ã\ý°«"AÇðR ,Oþí·$(åTó1YTÓùñTÞ·Tz4ïH&ßöÞ]Ä _GÊ<EqÞuQ}[M~½è÷K¯à<WìÃ÷,Iî<2.sg+Ü9_ÙÄ·ç9[ö{6¿Õ¸÷Jkm˽W\q «½õ¯|[CЧգÆ(è.ÌOãtÄ~2¯×ÙU¬éíe´ÜþeR³¥·l ¾ß´J¥óýBßÂñýmÕæáwÉÉ~ @'óô ýMäZàÛ"Wü»B¼ö£Oûqöbû÷zC¼Èm¯ÐYeR¸Êï5n¾Ì¯Æ}VåIHnk¤ÎãØ×ô\¿V©S£ (.çoüÕëlçy-òS_Ê× }ä$®éÇgèv¹5ïºà>¥`JV ö?®#ôæ¤O"þZ;e5g£RôS°xðóV`¯côw'þ]rײ ôv䤨^g»É<rË~°<K§óSùíù<ÎWMùîx$1ïßK,ïWq»E,yËï.çuH¯Ó)Kh ¶ §þ´R"Ç%׬4oG EU~`5ñcùüú~¡!ç²_ ÿøégæbl̹BWs~å\WZyµ!Ûj¼®WõgB¶s NejY¼Êãõ9R^ÎÿN)WÅOr{;»Byr}è\ OÖÈ« ÊoßrR)s9ùþt úud6Ò/j ³Ýðókþ»\ ·¶!D½^ïïï¯ÕjßúÖ·úûûÚÛÛûûûo¸áG}ÔÚ¸ã;êõz¦¥Í#M+Üyed¯{¹Ò*üZB,(rÕP Y¡ºn¸á¶¶¶îîîZV«Õ2^PÆ·ü+Äë iÇñªaeßÅr±]ßÔrù5pE0ÏDïÜPîÎèSÿ^xj^ÕìÈ«Êär!£Tñr¶*Ì¿]1ãú.M¾'°þ§lé?BuîZùõ%ï¨ègus&¡&F®·,?Â}BäjäÉýr rÛÚÐÿWN(ÃêØéÊ|ÎðÝI®:®üÊ$¾i£PNÈ®î¸rTÃ$ÄktÁn@»ZÒ®hÂàëLD9ü¦ÒJÇÕ&öÔ¿jÑô4\¯êÄoçGy qµíå5?«C|:÷âuΦ%Ü9ãâ{ÂÈ&?»"ÚïlÖªõ"ôÑç 5ö,¤AY篽ôâí ·yuiÌ÷ø¸"(¬|w>ìáNäÊiÿz¹.ØÛÊ·üõd+s0ß0aøm"G«îÈÛæ»÷æJ?æ§ÉDsß¿¾û«æÕôÍJûÛçlÁxER#ýÞØGaßáø]¾"6²õû }Îý¬÷Z¿¶rrýh,RÄ;º±=ÀÙÞ5oùÆÌùáWB»kO1¾SGÃÕµ%;7¹'oÆþªÒ~,åhvHN.ÖGL[ô¿ö<rtïúº²li Q ) ÷J¢ï6x¯F¿V¨pfÂ¥I¯ïÍüýr¸~c\-Ýpùø¦2ÿµRß w´c^lÿ)LO´açܽíÜWÉå TäxCÅF®cB Í2;gé8'¶ÊÊTB;áG1¿àúôÚÐü©Ì!åßkʯÉDÔä /Iyf¢ÉÓ¤ð&;õ-FÐCf®HH{"+¿$åípåñ=ñ¼"k}ó1O®ÉÓ÷ì T<zÎx-¢Óÿzí(ÓL)Ä[ïãûâó"`Ãp} ¼áÐÕÑ×" rþåñZ«Ï0Þ¢*ÃCD3_LhVåÑ_@@Í-ðwä y&òÿ_G^³oÄ=¾Ñöúþæê$]Ðż8eEì dhU Íüí+ô]j@ì·o17_<Èg³-¥N_¯w Ü ñ¶¢á¤÷ 0 ÀëÖ¯X¹rppH~éê/\5uÒ¤wÝ$ðG¹ÝâèIö«;·mzhùcB¯¿e677·¶L>{Ö¬3Ïi X¹RñÒÆÍÍÍMM»- Ööλä½â!^~饯];cæÌ>qâÃqU aÝú6nBL<y``àCgÏ:¾¹YñÐÃ?BÌ>÷£B3Ï900` !ZZ&;ÇΧNrÎÙ³¬öCÏ=ÿüÐТ±±q``@aýéì?簾F¹:ûì×oþáÈî½þÚÝô·5¼bþ¼y/¬[8Õ¬~DÑ¿e«U©;wµOj½dűvwõý¯ÿúÈ#B\9sö,ëâ@ûÔ©îì\|]·W !zøþ-[æÏ׿e½84±gT³Þó£¼Clppè uëÛ§N}iã&q¸eïÚ¯ÝÐwllµ×ÝZÚ§N± ìÚe´_Kãá® Õ½ilT,*°wm-°ï¨usóqíS§Ãë #ýʺ?µóôÉ>~æÌö-2wîÜ588äì¼øÒFk£¹ù8gZf/¾ïÛ÷?ôÈ#-'Õ º³ïõ÷rä¢s÷?±Jü飽t¸¨BóÎ=wõóÏ[÷ g%Yy{JÒÔCÃü[Z&·xõ|Ú§Nµ¦@ä¤Ãb 3ÂQ?9æøìÿ§%ûÿi².»wìÞ½båÊÁ¡C3¬åËBÖaÝú3fÎljj´¶í[ Ê ·oq\µX±ò§Ê:p:¹cQÚýV1òP 59Ç©ßÔÔhM9cæÌ+WZ·ý<yòK71s¦=ûå¼ÙçÞY["°æÌ1s¦µB÷ uëíÁÁ¡ææfû\¸àã/¬_ÿÂúõB¦Æ¦ææãæÏ»ð¹çÿ]8f×!¬çÙSÿW¬\ií·¹¹y̱8öοýBñðMbn·8z]Áßÿöñ'fÊ®Ñüy7ûÜ-[·Zuë×ÿÕ%X8[±råsÏ?ßÔØdÍjnn>cæCÇ¡±É*À}ß¾ßÎßy#s®aQËÉ\ã£Ö^å¬\-ü̽¼8ç·x±&qäÈr×\}¶ÎkÛÍ7\¶pµSCÎÐk§ @>9Gi efw5'¤%ÑwåYÁ£ dôwõA\*ר±}»µÑzÊ)B¯]+ü&ðü|íÚé3f!9æ;Dñå¿»1Ñ¢ÆÅîÐ8@&¸;¯¹F|ÌmýtT¨ð±óçØÿk»» ß[ºtÏ=VÈç>ÿù¯Ü|yÏ=ÿøµ¯!Ö®]ÛÚÚºyÓ&!Äô3¾róÍ6mt6ý~æ {ûÚîîÅ×u'_#4\ýóh¸ u Äë=!îÌ#GÓ<Lùó®J^ñ£«P Lnsn?hV@æL±ãH\i"L.k !FÞ8øÞ+Ͷ×6ÑóÎ;ïdeÝígù~$¸èâgÌ|Åð={î®-±îd-°Ö[ýÛ·[· !ZZ[¯íî¶Â7mÜ4cƯÜ|Ó¸@±üGË~¾víÏ×®BrÊ)üàûöÿÅþ´8Üy°º¯ëN¦ uà¬ÙgeUèuÍéʺ Ò¹ë²Ïãõg¢% TT !.>æO'4ß"¶oëíÝÖû÷mÓ¦]üñO<70YÞoÐøÈÑm@ÓüöA¢¬¡Ó9W~#ë GäõÜ'ýGñ§w-BL|ʸ¡ýÍÍ'#?ðûøâójyýjøÆWf®ÏÙpw¹ñGÖN"ÿÄ7߸bºväj¤?ÖF[¥ü)0,2~ËÞ÷ÉB5c·½ò»Gúÿéµ}§9âó_»åß~="ç4>2~ !ú_BÕª3¯ÿÚW¶ÏÂýRx¥òÊÊp>¤Wþ6vã:ævÐ|äW sÎÛb)ЧÀ>a×HS×HÓçZN:~ÕÖÍÛ¾üÍó®¹\3º4>ÒdÔHùÛ ÷)acûiB×ÞCï̼ôÂ"tÙ4^HâÛ ²ï¨yÕ$ ¿8Ê¿\ñí?½ò#è_µ·½æ¨ÉÐÙúÏçà P¹1ê w^Å^Ô|¾ãiò:»²}#còeRñ§aÓ;& ;1þô®î!Ë)@¨t ÎÐ1ñâìª »W§Sr}ø\p@W $þ» =êñ ðq®S} ¿FÒ?áR¥ùX`m¢ßÈ0IuúJúÂã0Keq6ñ]Í}û«Á0&« ©Âåý³íÚÖÿú*Sye"U¸ü3)jæôJ¨lT· ±æbt3]L3U¸üeIÿ8KæO*²ÿm@>óO9\î'¸^5É_ÎÐ+óRò y7ÌðXy}æ¯WÀü;ÂÕ°þøýÐ×SСtÃøÊñæ?çáû¦R5P¶ÙVÐ7¡«R#B+ýg¼XÌÒ q³[HÃöÖö¥ÏÓP ß©Rþ¤"[ºþi_&KrmýB^¯W ÃÌKLyK%ªú§¸ LÙdwÝ#ÆÖ¿!ó¯³pÒiýGaÞz'®Ö¿HlBQ®Zÿáä¶Ó#WMjçl{ó¬Ì{áÄu"þ¤"C¦OFÞĸÎ!ÊÌÏ<;Éú'´KÊçW×°qòÓúOH ZÿIï« Í»¼áôÈ4Ôé·þcüÅ4ÙWR-® PÐù? 4W{ ø&¹Ù_¿ÑÞ^}ÓíÑ«~D Ê?5. ´CäTv&Uô@$*®9ϹôÖÆÃÇëp+D`(sóJ=P/®o¾Bf tJ_A1ºïjî»~D}Sù¦U¦DyWú¬X±æbt3]ôM¥l©ÛW¸RÉbüVá»!d6é»O®v¼~ÁtØmW©x\Ñ¿áJ¯}æ¾å¯áOÜCàW6çJö("å@¾+²±$±ðúV ï"Ȳ¼XÄx7¤ÞX)âÈVc í+'GÀÂ,qqÌ!·Ì%:Ù¦ ØY£ø±7» qG"¡äIã»6] £±/µrÀéÖ[o½òKß7©l²þÍDı ùD,F,|ë.U~kÖAÉ*ÄðÐ| iò¾_¦@±Èo"ÿkBÂ,¢xÿæc?N×èêHpÒú±ÿ(Ê=öT0Ñ_5~q¡@á$4ÄÖBø.k äá ãåë+}SpÞÔ¾5yääz|![ Bz½Þßß_«Õ6ìnɺ<PëÓem¬Yµ&åýN·-Í=æÍæá¶rÒWP±y¸mÞÖµY9µrJgé?²y¸í¢;².ERmå»ÈÐÊ)Y¡önXÖÝÝ]«Õjµk ¡ ÀÜEwÙS };Ý !6·ÍÛº6Þ<«3|Ë ÆnåÎÒ dópÛEwd]¤,ÛûwQYÒuJhïeÝÝݵZV«ù? 8´þ oòÓL ¡ .¥8ÜtÎÃ× ÃT9)×®÷¸y¸-å=æMé@é+(X9¥3ë" ¿ªð(åc[³.Bø.BN$ØPΡO<üo('åwY³jM»ëÓ5}ܶ4÷7ÛÊ}J_AQ:"4N\Ù<ÜvÑÁY")ËǶÎÛº6ëR=¥¤ùw ¡AQ¯×ûûûkµÚÝ-YjöÌ® ·Bäv27¯TÑ£«Â°àUA+(Tuô ,\Z>ré^8ÞbmÈáVÁjREôõg'=xþë&ávÈgd ØìW¸>Uô@¢R>ÏØ÷qÈáRY?Î09Ð7ò7,ܾÂ*ÒóøFÈg5 ñMU :"´*| ÄÕj·Íz¹µ l©û¦¨çjµ¿äl÷[Ûʺoª(:¦ @á9÷áîªÌÊÐmW%{:âÈV ÆJJ_AQ:VABo§GÖ(~ÄV»WÎQ²<iÇïþ/: ¡ á.@ ¡ è ¡ apõ,½ÞÚ»è.} n J%»å~qÛU£þtr½dýiDZ_ *z`,\G@³¯Ï<;éÁó_wþé|Õõõ§Ç~5\ªèJÿ&" ×G@xlÅýÅ¥°6^8^h [!r;DWªèz¾ç2 ± PTv^nÜËÑSY\;iâliÙÛ.&UÄÀèÌê!GÀõ+bÑtì@çïµ.UÄ@¥ ù¹ê!·±æbt3]ôM¥l©ÛW¸RɼÞÖ©8ÙSÊw¨ÞIÓ¬7Ïê¶«4AÛ+òõ¹iBBM%ß# ¬^®Àç¿®ùf¯üx¥ø:9§14ô~ Ä|(]7»]Ñ=B$W¾^g 'bÇÂÓ7îSÈ*ÑY >S7µB@hÇbºí*Ncd&3lÜça_!§ùr²ÁF Ø\Mö¹î²gó{Å1ÌÊ×¼ç(ã¦@Òlý»*^¾#ïðÐ|óÍwaZeªü¼çÁó_§Uì#g&MêÃÿAóX'w I P`Ê&»s6Ĭ²U fSB;*Ч ¿F¥+ÂkµeDUøDÄØ\8Ùà¢Ê|æÅkepD4JªðkTú7QTá#ÿ¸p²AF TBÏÿQ\'«|G ¡ù?yV¾7¡%7ÿ±kþO>q²!!L*0gsßjå;× dåÎîȺIY>¶ÍÐÊ)Y¡önXÖÝÝ]«ÕjµS à6+Ü@`Îr×ïºóO»éoþÃO³Îak>OWÍÇ3«bÈÈW ¨Ì ÏÖ? ¡ ¡ ¡ 5(ýé% ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ I£K V¤´*¦ãªäRÀN[L< ù3rø#é{Æä9C²øÞ9ç@ (_ÿf¾Ë¶68Ü:g Ð2ÙñeÇãò]6¾ìUe¯§SýÖ:ôÌ+§ßâÁìëèÕÊfË[ --- NEW FILE: appointments_pic10.png --- PNG ikÿwÕöå3öG_Ô3 ¤Wvº|æÓ²jJ}t¬QÓqlà©3")(µµr»ËѵT0ð¾ê¹ ¿óïxº8©Ë5*Ò/½î¬åË_þ£oþ X\9rÚ©/¿dõÊ{¿{ôÉguÖ«N>ù _\òÓ^vÙeÎF·mÛvÙeÝyçò¿Fû]¨Jô]j[ϱT¡>[ÿåOÔß¾ªÿåOôöOÍ3ý®=<£H*Éq]òk¿ûI9Þ¤gÏ9Ø I'-ÓvxÂûÒx^wÅîËsñèÛÎ ýñ Î-xL*ÑGª3ðû(ϨÕ@BôgÏÉ·NÚñûëdz9ôS¯+£÷"}%jûÅpç×þÛÿÇn6Ø` 6Ø`#æ q<uóè×5!w^¤1võUÙ¸:<åÒ÷Þ&xÍËOYqÊËÆÄpéÉãÏþíÖ×Ïÿý¯øÏ¯{ûYË_qÎòeûtÕi{kÖ¼°gÏ'¾µ÷¾ñ3ææ>ûïSüÏF¡Q"ÍÞ´Am¯;ÓËÂuº^m$U6*èuìÃCzLª$) ì ÅCÍ×]FÂ)qP©/GxTeÅSʱÎíðÆc¸lª ¶\äðr¥·V|\1ëðÐ VÌ6Ydâ<'Î Ñ®y½þ+¡Ùf}5K_bTPR<IßGÎ?ÆÿMçUØöE®¶*ñMçy²ëG2¢¤!¤¾Ç:[dPá"yÿ4d}; 96Bõéjüþ ÿ¹Ü¢¦ÆÃáp0ôûýO~òÁ@î6l×_ýp8l4Z ùZ3JxËjVãWEYZquå>Ûv9:Ð>ò]@ Å·nÝ:Õ,á-+Í^eiËÕUälådê@åx/ Þö¡}è¦nrîâ-«qM]ei×ÕãlÛ|w ë*}§.ðÕ©n8Fû.ç!©ÇáE°ßÓ!%ái ίNÕ§=ßåQ]êç1®¶¿ÛoOªÜÙBøFÀw»Úðø$ÞÞï"ß;ZêQþé7O#K|ÿMí«H#FáÃô7mÖÓ£¦ó_êËQdàu[é³Î·µ|Rg¾SÌs\{Iå©ßQÉ÷ªÉöáþt¥T¨M¯]îQö<u=1 ORkF¾C¤E¨~S¯T ýl¿Ò¾jÍNÙËýeC½Uy ¿-íjª$?)ëü?U6fÏ gíÝÃ9c«S YÎ|T¸òW#Aw²§õ¥5%Î×0wîK`ü.eõ˯¾ówzáO<yèÐa=_ÿÎûåÆòåËôLצî(ýìçþì¶ÍWy¦pMKëI¹1äeW]üü]_ÿÛ{ýÕ>ªâm_üûîOÇäÈ´[ÆYytâ|ï3W$ý2±r¥\ *pdöa9º^Xuü( ¦éB%I;¾r÷Wålñg®8sÅ.\ó¦×¬Xqæ]_ýª^í÷Ýÿ¶·^ü¶·^ü¶/ìÝ»oß>9)~èÐáwï>|ø°|8ºî}¿~ 8ß·oß׿qÚµoß¾¹;þæÐ¡ÃÆÃÔåêv}Î^¯pÊú_]òÊ>ÿ_n|þ¿Üè˾gÙ÷Ì3swÜqèðÑÅ6ò^X!ÄîxàÁçwÞÒ¥ãr[=ÉÑ^¾Wû;ÀÜã#×ô®!AaÄIuôѲ¨NRê©V¼ûØ»ÍL3âÅóàÜÇJ*~gѦéÂ3§.×¥ÈÕäKË5!çwÞÜwȽyæïÞ}þyç© o{ëÅèß(ËEÎ?ï<y»çîXºt\n:txùòåêCÞõÎw<°cÇ;v!/]¾|ÙÔ{ÞýõûîÚÂ!ľ}ûä0©åéswÜ!û]¾|ùW¼ôø£?÷§Bñ¥?ÎSÏP9ôã|åî¿Q©M½çÝo{ëÅ{{LfüîØñ/§§å':ÍÝqÇ×ï»oéøR¹fùòåçwîÑó0¾TðÙÏýj_vM8çOî×ô®2¦<åIí¦(ʾp"é ©cW¶+4üÍê%j Iø!vlùFçÃÓ²Ý3^ï N¿±]47l¬Qq87<åIÛ%µ¦HKxÌù: l¼ Äuêh;ùó²P?E³«y¦í:v²¾J;GîdÛ<#7}É~HúúþoêðQ@nê(¢ssê5ºû®»¶nÙ"çÔã¤çü5|n4'VãÿÕa¾øã5ò?Ëe¹Lýû?.7Î:ûl!Ä·¶oikW¾µ}ûÎ=Wñò¿\!þà÷¯©4Ô²¨|}3rµ9ï$¿ûä !¶oß~ÖYg}wÏ!ÄÎ=÷?ö±={vë9úÿújû#33ë?:SýPºê¾ÊJÃðo #©ßóß¿ö¿ÍÖ-[·Ü|ó[.ºèË=÷ýï_ñ§ò'_øó?ùoB\~Å¿ùzêËåQBÐÿæ>ðøÀÿzN>çÊýomß~ëýÑÐ¥IOu¬?ÄÆÛ%ÝY¨JüÇzV-GòÁ5f<)¤£¬üVíË Î':竵) ÓëdRÖ½ó¡»é%d©ºg ß!Ke ©H;¢@`a8Ø?Bjn<¨1°M !nüdß8êÀE!ÄÝ»+(S¾ßßB2¹¿óî ù5µø!9Ê3ýþ©fî½9ÎCH !<ñýï!þÓÿq]Ý# Ï?Õ©Ø L¨@÷¤Ì©3ÌÓ <*5°¤maj׫Béf:'ÎÖ 6p\v¡ Õ?õÓÅ>Jós(1½ª¾¿r|£%Ò3ktæz)qÆÞÀó½_¥Uiï óuúkC¦fà Ij6p\Iç5 ÀoaaA±y糩5HSÂÖ¸ÏÜpÜ7Ú¯ÔËÕáMÙ]2u ªzh 2rëÏܰó37ì,=u.ý R\ÕCW»>/®|øêIcÊ<<××[ÐÛ1¶DC¹þý·\[n³³³×my¨u1 ÉîÂÓ`jÀÃkE:#¡±ú¥ê±å±ÅC` sägYÍÏϯZµjbb"ÓQSSS½^/d]/)®ê¡ ÜÔå9\îRR»(I¹&&&êÉÃ{ÏÑ>)®ê¡5â37ßh¾zÒYÓ>ʨi7µY EÏ *ÎI4å¬Ó¸Þ1Î]åvTbkÎöôWbGe5Ô¾pÁÂð®sÕ 2±Ç²g#}/Ò¦jVßֻРgÛsäL¥KI9L×ÊÍnõKi6S ¶ûðÆ_£EµÎ_ 6õáîåö%ª_ õ©e»¦±7© ½ÄY-Ç: Url'ñUÄ`wWs ×;»#AàG¦Äâ+Þè¯066Ö èLÎî(P§dúi ÔÃɶmÛ9\tñè{oø.½s;µI? ?º6NOÚº1îÌÔKéºÛçâªËá+Þèÿä£Ë.»³ºÿþ¦C lAET²>55¥ÏÍÍ !HÓÑváëLd~~¾é }ê@ì.R£Í1ÆL<¼Áé?°À!è'Pd¹~R;ò·ïz3^qU~û[³ÏIà÷u+Ù_!Çôt «|zêÇÙü·x:×¥Ø F#E,YK Ñ ÎIt¬?¿'Ü¥lMUó¤ht¶ ²Û|øÊº7u¤©ÁNäx¦Ó^bûÆÞ¬ß{Ïô}ãÊLm|d/Q g@qéºMLÖõÔ6p IÒz궸ÇÓNÖØÐ,ãGcS9: ï¥ÒÏA&õ¯Ãfåw*Ïçþò´QùQª»¢/})²±ÆYjA6"³j£ÐyHxË<Ì1~2MW_¦+]JÖëGnÔ,ùÇ"ã4;åRåÆ.ãðÜG5í0±·Czq)¬_V~wõ:dv}çxS;Íú$Åãôz E|ëÔ>ÞÈÃk¦]'pÕJà;Míj©ñ£·£§²?ùO2¶5õÿÚGééÕ:ÆU¡Ê2é6rãÌtdÍß }ö<g#üõç#TÃ_²|G%]½¥-éð¤!Yø¨s0é{ÜßiWÄþ.9Ê_Smx. ÏBU¤#ch%FÞ®¤Ü)SÌùhÔN`û« BÕ,ëÍÑuEõÅñU °W> @[4©Åe]®+ëïÝ£¼ ?ÿ²²ÎLuç°Á¤° ÆbÀ0épãú·;Õ Î»2$üIuî%RRÏ@ÖØìó£oo ¸CÕ/@7?§^ógf¥BòÇo± vlÚ¼³×ë-,,Ø»ô}nnÎþ¼ÒðØáOÕ·¢y _§^¼#U¨ß]ªWKM"ÏßÄÆHErºÒEH§Î þ¨RñÍßNx0Î=Á¤Æé¨±åxMkÛþãF[.{ B3õ§o¼µd]$äßvúÚÚ6²gÿ¹þI¥ÂdñÈÄV·stçzé:ðS³C1"ÃD·ùùò( üÑÔ6véfêQp©rD¬!¦¦¦ôò¹¹9!iz |KYÚ¥¯TY8íå_©>¥gê*5So6ÑôO«éj5íz/IøïªGV¿±éØvz¡ÌÑ«NÓE~ vf I:?@ ë±*êM0¥m{;)1æ©dZ3UÉ`0×kX§®]O O+w´ióN}áuç~EdeÙTØuäU¯ HâP×éÉ¢?É«({n$)Oê´¬3PÝ r´ÜÆÄ½1 `ñT¡~;¦^ÍÿçOäIMåVÏ4Xi Ëb7ØùÏr ̲£DIY¯Û5GU@Û ÊÔKê:naaallìÎ;ïl:lÖ[©þÜÜÜÂÂÂæÏV .Ǽ4%êÛzzê/t~Þ§¦þßL!9Û·ä¨4ÝhÊ3L Õ_Áx ó(ÿ3UkÜE dêí³qzÒ( ÿÜPy¬¬¯oûkÞÔ5ÓBëÕ¼fzò:í(c/ ¯ZÓ(÷4ÒÌæý5ÕÔÖN~ÛÕô/¼_~©OÒ'¼; SϤq G¦.öäwÁÛLe¥ßâYÅý¯èhT+·_»MgöÞQÙÙ ³fjy9z:±ú£¥¬Yj}i{Y ÕP¢ðyô»È×BÖ\ÜßKH5L &)g¨Ån¨ô9*YÓÖ¤úzZ\<ö·Øþ¯´'ÑIÓTL#ÇÈÚVËÝ»g;ü(;ÔªãGüê6l(½Çª? Te½I®zÁ~Õõ.r´#ÈÔTL#'kÚT_O§ÂþÛW.Èq,"umz6ï¬:GWâY=b¬~ <*øtwn2ëõÜ 9Ôx§jÍÏz[jjüè*&Ô+t7gÍì õ@Ä`D0§$gõsÁzªxâGA6ïO`´wé9úÜÜýF9A®¶Ã{ôO«g]A®/QǦ®É·NÝè"ßQF/~ *« Æ2½BÈ*óÔîr4ØÔ²ãú×i: idô´ê6ÏãÏoØx\=ï<o?ÀIê «_ À|©©sâ4/CGª:wî:ѧÝ-1±[ý²Hð°TB>|Øl6«ÕêÍÏO=º=~ò8ððáé'ÿýÇ_ÖëõÍþ{ê0'ÿë?û쳿ýó_SO2òîÝ»©§ ë»ÁË,î§ ±«_ --- NEW FILE: appointments_pic11.png --- PNG ø".'C}sn¿îS·_÷)©öOß-jçüþ+÷ÎÍÛi©ÒBD;éÙ¾ûAíënùãwM $H ñûľv¿!1S=)ãeWÅ,X g.X° ®}¡Ö©ÿü¾ÿ%8ò°©L(ĸ²_Ï-WÍzù ñññ¹GõóÞ{ôiã{÷ì·ÿw½öä±¾yצMO?ñÄçûÓHs«®¿X&N¿àJ=G=TîøB,û¯WYÓò¡Ê·Ö3 zn1n+Ö½f6ãè°O³@Që9¹qûÊs¯úñ<©ZûzöÉ q4 $H AijOn¬SàD¼_|1²îü8åS¬ ï¿ÿ~wùûï¿_¡?Tå-÷Sÿù½7 !¦ôæo>`ïÝ¿çÅÞ:gèß'1gÞ¼¯¾íݳúÞ2»ï;ÿÍòCÆú,ؽaÃUmz°gZ¤[«¾þ!Äéüj$3#ÝñFX/XöF(/3]p¥JÄÐËÕ}¶W N\{ÖÜ£'q :¶nÝKÂØQv¾µzdÓqeÜ{ާ帷W ïÝ»7yT^Ô£ëÔüÝÎßízåù±W&O½cæ¼'N~þw¿;óµgÞ³ó '~1í7[&¾øâ®_ýêÁm;UÿíÛ ÿ5¨«oôò'~ $H AÄïÁÁÁ½NÀºìòÒësêëîù§Èo5íåÏOþÉs_{ÄL;àM?Û°á°Ã;üè?ÚsðÁÿ¦×ñ ~ý¿ !þ÷Oþß%µ_ ÙUÑÞFX÷sv¾ã¸ìxê©ÿ! $H AħÐש?j¼¼òÕ/ë~ü½¸ GþúC¶nzÓ«/ÐÓóÖþÖ¼÷zn !ÆÇÇëî ; Xû~·u¡$iY_¤¨cúËÓÚùÄ^5è09H-ïjëWbÚ·#k¢9CÔÝÕÄÏVà¸*î (ÕEêúAUG1ñp÷×s®+[ãz¸¬/·Æâj©KjŹÂãêÊ´îû8÷Üs#Ázþ0ÝzX3p×uLL(í&üOãj¾jWÜÙÕ¬ ùï·lÙ2ÕÌá-+õEiÊÙgoGòÔËð^ gEÔ |[ï)Ùbù^£þ+´h8ÒB$J6[ÖsUëÿk'®Ù G'U¸áxV/6»y§6ûïè@¤#fy=aÝ\$3®¤ûXÄe:ul(®Öêf'óVzpàÿÎ)YÔ[¢ý$î5rÏÂv¢znÚú.dn(ü3ÃYQÒ)Q ÈA G¶×`)«_"Ñ9jfZÓ2áþ¯Y½TÃQÕô*¹¬»Îóè7Hû©NkĺyXgÌÌÈ÷fëôO¿È4t#!o¤ðx;³V±Î¹ç²Õ²¯qrîg%ÇWȳ>³/ 4ø-ź}2Íg}«ûYÇéa-æsô&ë»OH0 ÑÊUõ?93äÖ[;uý_¡ÉvVD$f¦Ïç£È÷<dÖy<2ïíbæÔål®0¦9õIS¶fƨwÚØ8z¢Ê%îHkG§ìÝíô(¯êó)2®ÒÖoÆæÛÊ·¶àðáùnbß77ÓþÈöXË=ýæhÄÑrï¿ÛÊÓH¤þÃLlÊ,YøáÓc¸byFäÞ:t ÏzZßÖ²I<IåÝÛÍ|êrf;jòcѬîþ¤+¤@eÊ8vGQØýÔõÀÔ?TJ,øZÔCõ&L)OúÞ|+¤}Õ²ûeC½U92=_f1ÈÇ÷ëÜj*ÂO»uwHmí[2tÀÜ µBq SÁÎ,Âzs+ü}IÍLÛlbþïlºúäû|{Ö¯gðñYÝT×ûsÁ¿|d-v¦ÚgÐsäf-÷Bü2_ìÝa½û¼ñÕBÿ#¯>3ßfß*¶©¸G!?ªòô-±qÊúêÆúÃÀex÷pÿ1ªËNÝg uRÜs+ Yæ¹Ì{»+JuåÅÐ\@Yñ×wâr%Cç㪸ãû8æßÚòÿõÍ1 7^ÁûâÞkK_|Vùî~E ¤ÙÚI¬åÿyg Ç'Ç·Gæ×`u÷S·F±ffSæ=2@ºVd©OÀªèåËøRyæ@¿&Cõ´ô¢dB¿V&òT³ÊIõ±X+îïÎOß²}ä«?nZ»yÖº+|VÛ§jÄs¼qÜ%ÝÝ ÝSÅ]ÅÓîÆ#ã-jÐeXZ-};£|NÎH¦ÿIn-๸S7Ûûa JZpíT)5÷?¯$SàL¶½]ð¥ê¡ïé³°»ÔLßJëë¹ÞTÃ)O\7Ü1ÇX¥¨²Ïú}Õ¦i%k]ÌÿÉõÈç\\ÂñÐÚBÅ9=wôßÑéhÁÝþX¥mÄѦOç}6Ø´'{7¦m<Û0ááγÖ÷:3?çO\aGfb;þÕm&©ºQ¯´gEÜYîOº¸ r"Ye8¸qùÁ¯Á¯(õÌwg¸Ìòd{e0Û÷ìOÜîíª5?C1ÿãâÃq§Ø÷ È鸵çâj!dæ|þsá]%n"°ö7¨&Îa)í¡Ìyhâ']P§YáÒ¨à+J+ÖôÙ /=t«Gêé@Z|5ÿákônÉ0ÃQøMrl-ç@I¯ÂìU~îq58RïÖxºã;êîpùJ^ýõ2±lÙ².¸ çvUk¼e ®³¢(Í:»2ìmS#u µ'LpçwÖÝ è4Ïî=¡î. !ÄUk¶nÝöÞSßó¾Sß#ÿÑÝ? !n»õV© |×®±û|pllLÑÓÓ3::*#Óç§öþÞÞ³ï8þøg¾ðý½Ï½¼ß_Fct¥ïà §vÚì{£Ön¾E1²i³ÔÖÛæÍ+eäæ>ù_þËÿºå×szz#-pü9Ý>oîÜ.\ñ© ¥··ç½ïyq?åä"Câîrøã<üȺyD=TOÍ;wë1ÛÌU.rÞZYWÄ7mÚüþ_íØoe:<¢·§§·§GVë§|ÒÌ3T=í°iÓfÙÈØØØÖÛæ}9u 3®`îÜ:Ïþ8ºÕ/ï;õ=ÇsºáÖÛvíÓãõG[/}}oÕ#]º¢ôë߸á¦[n9c°MKëAyd=ÎËOzõ®ûÄÿq¦»ØcotUqÊI'=ðàòÎ3â92ìV«qæ¾>q¾iæq_QæÍ+WÂõ@Þ¢ (ÏÄpQeR)ê*3»Á:u QEâjÍúm·Þ*¸ækH^Ø)ذ~} !Û7CXÓç/HOù|Î_%C~ !Äo³÷Å{Ú5vßF!DÏâ£<:ú£7¬ßp÷]wæÔ¬ Y £â´MjÙ²efW uýÞm9B7¹d÷æ±~.8¢ç@ñobæË¯ !ÆF~%xó¬Ö*îOdzÖð=ÛGp ˳?O õ<Ú½á¼ôíí]´·÷c½³&vð}7nùÜWO¹àC÷ÚßOºLºuê¨Ý'S «_ºê"Â?®½þúëãZ¶lÙ\PP àè*®Ô[§m<ggt;v³«Åv¾ð]án0ðÎ$¨×N!\vàί|ýN;á/Q¾qRßO½)çn¸/Ƶ¦ááá &ÜyçåöµZ¶lYªò«V>ÿ²[T¼úóôÓO-86»z]{Ò¬_ß÷ÿoXËv3ÙV)ï3=îGæó üèÊ×ÎÄ¿zÔíÞù ߿êîI/=¹÷Ùóçºà£Eoä9uBó.wD´VÜq<OXpËܹá3+'÷½å¹© ñælåU<gO¼ÿ¬õo?0?Ïç õiÙssÁrÓ¡r;`ýpGZðÙá{ëUÔO¨Yodìh6®5Ï¡U/À×NÜ¡LìU¤üî×^B|hÏA¶_ߥâ©-CC[þvöüùg½ç½÷Î0·¶|³xÝ¥±Ê1J%'#äº;SÔÁ'̦×îïO_½R1wÆáÇ^íë;Lð¦ßWÞ_\ü÷ÑXÞÚ¸»eÏÍ5QÎqUÅ!<wib"%#þ??bmËTüÚñìµüÌ_»AÌB¬¸kË¿½eäÜûÊ÷ÿø.ý_ì5[K[¾²¯S'6¸d÷æ±~.8¢ç@ñobæË¯ !ÆF~%xó,Ë|y÷g5ZÊöqW+®)Ïõqõèu8R´íÏz¶Ü ã%5èµãÉ]qÑÞÞE{{?Ö;kÂaß·yãÏ}õ>ä/O[>d^zÅ/c ºFJzâóË`;±äÐÐÐÒ¥K:N§ÓIS·~%r<ëS þ·Aq(ËýP½L X«¿OÚÍ5îw+ qÅùe°XrhhhéÒ¥N§Óé¤XýÒÝG ø °ÕÛ*ß=¥QJ ev2U·»f?#ñKõÂÁaò¸ºr7úª+Wv9=òV¡53R¥_UÝã²T±~_oîIä³ÌþuëÝqtÍ~Jâþg7TÛSäûxUÃÔ®.5«Í6q7&îÿwÝ&¿<ããã###NçÏͬ»?°[´xL¬¹oM-[¯e»áíí G$ó>lâ`÷C·z¡½ZSiÏÑð05qçgÛM©U©g» qÅùe°XrhhhéÒ¥N§Óé°úHà'Jã°%öCÙØÃÀa*DËwc{O¤¸´ç½ <ìCýP6öp#p ÑòÝØªá©.íy/(ûPb?=ܦB´|7¶jø®+JïýÐgãúóï_á¨h½¤ ®dÝݪ/UR±§Âß.â´ê´j°¢}ã £_£öìüö´ïHôÜÂ`ºTu]QzÚæµÕoqVÏYxÔä-u÷¢"÷ÌnÏ`EûÆG¿F÷ÌÞÿóº{Q íÃoç3=Ñê9ëîÂë|W¿L]qO13.Díñ¿1k>+Ófk#ê>= Ó=ù¿ì³iÉKºÀHÿÏûlÊÓEÖ?¾?Ø¢1^è8ú5²Æ¾úpÿ¦üCùløÏÏô2øþF)BSàZüü^>üiòp^W/iq®m«²ê ´PÙ¶BÓËÞV÷jµãè×¨ÊØ·Þ0½Àlmñsê]®kóëÙ^Q}V ÛGiC?»~°¯%u4âèW¦¨%+áLûã3½F®HýÞ}6î©ÄMÝbâ áüÇNâ-tâ Xo×Gÿ î¸yTkfâ¶R5¡«M¤Ï «;9¸/;³ð¹XÍs[qMÕÓjÕ`³5ÒèñB×¶³=(úúu÷Ëkùo+®)³º¿lÎ|¦Wib|||dd¤Óéüò¹ús#us;"o"õ´-^$kî[SËÖOÛ¼¶úí"Îê9¼¥î^TdãÙí¬hßx¡ãè×hãÙÓû^w/ª°}øí|¦'Z=ga]qþbl'ZºtéÀÀÀÀÀ@§Óét:¾ëÔ§®8/_' bpåEæÏò¡ÊÌ29Å õXÙÙÚåWG2U|¸çì[·aºÐâT¬gêÖ&Ë¥ î³uCßòáöÛ§O.¯IU!»ã¡Ü«¦óô Û½ÝkH̺'°ãºá3Æ=oýôssCs²\MÏËzÆU]5·i Û;Feªs ×zÏpeýî²Ë.ûÈg¿Sw/J¡O±Ç¥ýkEr"½ÊdR §ÿáHµ¨CÁÍ> GÚKUÜ[+imÓ]=O- ¤í»ºOÍ ¦ Ù̼þQ; »ã¢ðct ¸²8s !6î}Úæµu÷õX=ga«Îö lÜ3ûÌ×®»U¸mÒ,Þd óeÕ/ ̦âÚ7«wlcoèIµ-w-µ~ß{×3îØw^Ý«Ál*®}³:òhÛÙÏbÞ¤ÜXË~÷FuCÿÕýñ&¾ BñññN§óËçfÖÝØ-Z¼H&ÖÜ·¦5yKõÛE{f·ç´j°B{f¶ymݽ@=VÏYت³=(÷Ì>óµ§ëîEn47D«ç,,°µ+Î_,íÄCCCK.èt:Nuê ^qªfs¶ç¡Û¤ ë3t#|ëçjú<î¡£þé-h!9Ñ{ò/Ì49*SÏwW÷/Yàâ2ãÈp9qÓf:¢s ¡9ÐpE)ÒÜE]]ê+Ç]²YÞ¥©dëFäÞ9ïîb½~Já7Áì¥çô¶Ï2´àS@;1§ÔÌIazdIºìÍÌüµ² ¡ÀnÈ@#÷M÷g³Mt=ýòÇÈÔ²J[»KæÜ£zÚ·6·ÖUA¼ÿ´zdÁ½µWã LBt:_>7³îþÀnÑâE2±æ¾5µlý¨É[KNëÚE&M1¸zP±qÏlyDÚ UBlÜ3û´Íkm³=ÒîfÞíÀÕs¶êlÊÆ=³Ï|íéº{Q Û&Í*üM¦û¬³°ÀÖ®8±¶K -]ºt````` Óét:V¿ 3}êt5EÒÖLëô¡³L8¶efêU¬ý·&2ô ò·K¯+Rw?õe©~ tåãÃé¿B¯rcyæ]ëÅC&¡ÜXÙ·n2 ¯m> 39?>]z Ôw̳ÏÍ¿Ó;wï¼}ãù÷Kç¯ÖsD¿:zðõKÏb>çǧë9¸¬ílÊùñé{?|»ô,æðÙ·fâùeFõ ? R ©=kÌÿ,I÷ë5°±«U\ ÂOËÖ vâlJ¡×ót¹±µWe¤î·¯~³jVw@{ôrMDõË® \üN5çïNC}ü¸ÃÏàÀØåúr¶èa%Y¡õT~mE{Dþüîßþï\^kù_y]¯?Fù)âÛmÍÏö=8Û£Ò)ïæãÂfQ¾Ý+]ݹç4[5õ׺ >ÏPþá{àÝjWøÒâ4pñfôµûvc*±íë±J½Ô¾vóØ9Í:Ôw[![ß{ô¬â¼nÀ¡:©«y²Â×ÐÒÉjsCù@ì÷wA½ë8㢵ø$°oe¯8.?¿û÷r]ÁíË É¾Ô»3puBÓl)ú«ÌÖùóCÅ@nèm¢7¾ª#²¶(«:¸»«î¾Öv¶·²>§YêÔwU$E/©ºËLb³ª#²¶(«:¸¬ílo%¦OÁiÖ¤¾Wz¾n¬¿Å3ý>"¾ìý>¸äMWúBc¾ÄÏi¶ Õ/;,ËÓ8¯S¯èuê¤õ·Þ×ÀåWë³;Tª¿Ü}%¼|io§ùTÝ» <TÝøåî£pp׬õdÞ³³}Aù;*f7ii¾syë÷U7~¹{'=ÓlNI\___]]m·Û/¿séùPíÎÝ;ég?[dïoßøfþýRçù«£õç¯|ýÅÒ³Ïùñéz.k;Û£r~|úÞß.=9|öÆ-§Y«óãÓGûäñÝ4l·nyyyyÿþýÍf³Ùl¶Ûív»UýìÿîÃì¿ ù=¶î«Ð¡ÜXÙ·n2 ×v jI --- NEW FILE: appointments_pic2.png --- PNG UUg¬|¥÷ȯivhÁÿùSÿÝÊO<ñ%ñ¡CwçÞ·rðº×ÿúýîßïÝ5²wü)SßܱgÜø]¿ÿýUß~`÷~ýo§üî7ãÞ}wøµ×ß¹ÛËñ¿Ñõ)õ¿ UÕ±òÞ£¨ùï?Å,¸.øôõõ² ¼Ó+Û^ëùqàvÊݻƯ^>mÏд~ÊqÇþrË|àS¦øÀI'Ýñ»6KLã±oýùÄMÿWNågHUU*RÛ ¬76%-Ë[Ôw$V;ÀKYÛÈdþ4)?ã'ëÞhkñX*l,-} «¡±nz®¬¾6öºÙlV°èêêJÅËxi{ÔÆ\ðÄOôõõ;" ÄÄ¿m½¼úß§é5gUÕÌ·bÜw½ãqÛ¿Ìd{YZ dãKµGþGV8;D"ãzã½&ÜJúc%~ØFq[`ýýýzIJ;z]qÅ]tÑ®]»O©Þr¶-ø(ÜÒ¦É\¬cöýÞ¾Ù-þ³¶ÇããÒ{é^7/vZ²Øß²| Ó|m·XË*úúȼã&âE¯¶´´L0áN8úè£#ÓÇ:SĪINÞ9ÅrÉ<.ÈÔMWd÷o4ïe/×˧Fű|UèDæô \á7æJ)(««Jö¡Ñ%»K9z£$ýN¯{K¶oÎeÝ÷na=.DÞÛJ3u¢x¡+YSÍ;/oà¥Ñág+¿°êÛgµï2>ßëÏþìÏÎ8ã£>úСCª×ëõz}ß¾};vìxé¥ÔycDt|+ய¯ïÓþ´ã,}}}j¦(÷ô7ÜpCÜpà µZ§§gÔ³-6nÜFg¹ ´J¶KSr1kà¹)¿Ïºx.Ý}ÅÔĨào)Pf±GÌ;ʵ{¤BŶ¹bú¦Â6]äærUò})yõÐdâÞÔì&àÄ·ç½P<Nm°àëXô9ݳM&Bô ^]£%+!óZ¥7 )¾oÑ/ÖÇòÌû _ί\¸õ÷ÞÕ\ /Ë·Ëq¥ ¾TiNÚy+îÙÊýýýÞrWWÿe¥é-8¢tvv605ëÇ:ð³üv°ÎÕý£Ô¼;ÒøCcl·üþ 06¿ôÖZ6®,[òúäµ?YüÉìø¡äw^7µÖp)Û/Ö@}÷¯ô§·$n }ôJÚýýýú·K_.«ü;¢mo}ØI{Q\ÛËȼeãJãËÖWfUøÀÀ@ggggg§ôõõ©o½÷_µ2°¬Òåõ'èëëU«þðúÊ믿>Ñ.ÚX>Á°wí+{ Ûµ¬ê¦"¿À ¡×Ç_[KzÄ a¬Où«íW¶/I\Æ?RËä°ÅE/ÿ ÈÛÈɯéªÿ&JV¸?xF´¤½nFXRTpR-yÕ²]\ýõ üÑ*©Iߣ©×ëµZíî»ïöDÙÑÑ188¸hÑ¢+V¨ld !þáÆÄa#yc4Tc7 K@è0ýº ÑO¯öÅýa£zT¹ãv½d¥z¤ºNÿ äȳÉËPÿâ¿í%ÿ¼Ì½ZþK3ּ代x¬Ã^ò=òªØ©2T»¾í@i5¦ç0ð·ø×-RW+µ ׳5R¯ò¢íq¹;e¬OUÕcýÛ.áß÷zJøÑ µÐÛÛ[¯×«P F$Õb»ßËkÑ sÌïéììlt0Hvß:UZ@|¥û%D/ÀÓÙÙIß8KÐGÕÙÙ900vvNVZ`MÙ¾Ò¾èù;çG$¦Ä2oÞ<ujN?Þ»»»Û+M)çW:ÍQ ¬'z£$øë<îmokºR/X°`ÁÒ¥Koð+à(é¥ ±dÛ\ e`9î.è «¿¾z.˹/å91Yv/WXvÿÞ¹óÃF~sùSºg´|%Ê#ÙQÊ¥ç0pÒhë+ËjÁþ_={®wÇ[YLÂèÈxè?üv'P~¬¯1Kd^q[Þ üh5®Ìî^óÄ»`;e\©Tÿ]êkd·t¦£zKÂ¥m¡¾,Û;õ±ÚN%ì(IVm/õ«_´Ãþ×Þ²qe@Æ6/ÜwÇ¿PdÅ"O ±ÂÆO'ïÃìëG=?Ìé½eo̹d7¶âV2ncÈ}¥}£aÙ]^IJõdÉê6dOàv®ÌËaW¡'ñ^dv¿ÿdí~úLYò~0ª¡×Ë)ÃOÊÿh~dR¾WƲ ÀöÝ2÷êd8ô e5bE»bBWX2 ]ðZ!Å*@¿t£NÆw+>g» ]Ã/ö!>¡.ÛRz.û ½ÂvßxUÌ/«snÜ t3º!/?}² OÀeYdtX5ÖÖ}¿Ä¤#;`= ö%óìùOÄ'åÀÙ<ïWÜ/IËèJ.ßH d>jÃ{©¯w\ér¡(åYɾG.»£êkwòV {[YßÇ"%¨@~ulFèÃçñÀ¾lOàrj°TÀ±%¹]ËË[íîëíûavwT4Ûaè¿â¶·&ã.»ÆÎ RÆ£6×ÛWêa+óxwì{½|Çú °mUë$sÿ\ªËبDÏD°æH÷=ÆÝµjÏ1_õ<;àWáy ]@Ü£&ñÕ]æ·dXZyØ÷«Âm¯fýÀÐ@%|ªÅý¼ä=«»»{Á)·[¡{I¢£¤«pô2400ÐÒÒòøã7º"¨ª®®®EÅʲråÊEYÎÑqKó^ó+ø(éë^Àaú}'@®ÔIyåÊXÓ_é°ÑD/à=M< ¥ë·®¿Òµ "ÒÖÚ*"O®[/"gÏn,ßܺwTÌ rsýõsýõ>¶R ËüÌ__ÿµkð£J#Fm°/¸y°w³à±ç Kãnp)§HyT¬$»ÂÆFGär+Ä8nSo|KRKOÞ^åçrCcú¸E5DVibÉêÒcÊéÕàºWµÍ½kÏe£ï2 ?0Þ>á1}V3@[Ñkòi§© ógϾ÷[KåÈÕ¯{z>Ó§|JD®¾æïï¾-·¨F¢®x©dß¿ïûþ>Æ4ÜÇ ½7}³rÖö4.·§©Rr$EÅôjXîCY©g{µlâÆb®ü5côzåIÙºFDê8p¨ó£fúôÔ( NÞ5°G/%w×¹þðÝ"²eófA dó¯KsÖñ-_é³$Xf+¨÷yñ%ÏCúµÌ뫦^k¾-ïþJÚO]¿>tÿ/÷m½¥íÚ¹±ÊP;TãÌg ,W¦Ï B^È×ÄñÇ ãJï-}ed nIO¸Itôòw³äñ÷ϯà*{ã]úÖ¸qiýD~ DßI¾r@^qO1kÔW"å#Yè DDÇ:ðC¼ÃÈ. }eàìÖqøw4JË88"Ù°=îE¨¢è¥{¿P²(9ÿcóËøQûè3üJðíIôù¹7Þ¥N.¿ÃN g1Î)ÍÍ¥æýNJ¼ ¾EÀâÚshl<éɸ?yßãÊ@ãXDÈr, ò 0ñFmøEÞd¾r(9{Ú±ç0A!úz+ d0×F²@Ex ó·´Üê·^WFn+VQ ªà¿»ËhµaLË}[aEéÙd®EDêõúàà`VÛøÎäF×fs.#"W¾º¶Ñ)Î{BÊÔFW¨=÷ôôÔjµZÆÓ) ô(¥ @Å7×}nøÀÌôz.±öZÖØ ¿þÝÃw|.b¥Z¯Öä+Vùîô¼5ÆÍUzgDrí9,çóFýoyO` äX=Þ©VFvõEæJV~²5dÕN+§à"ƳsÇØd kÇèëÝ[< pÜ£¸õ<-Û"±5ÆÒÁí%ö®ê;ÀEîVv`ËÃ)¼býã $¤é£çMÜü²O%eßÇ5·ÐOÖª!÷4ê+ec"}[$«ÖL%v -z Ýlvæ ¬·_j2°pX«& òÆ-9åcè ta¹F]r5ülÙÑç¸Jì, ¾O«ÈSdÃÏæcjg¸ ze¦÷i¥ãWfÇkX P Ì1_aþaâÞx9ûÍFƹܷV=®%TwgDjz½>88X«Õ6¾3Ùÿ^²9æiµéÔãÏÿFW¹xùÀÔFW¨=÷ôôÔjµZFÏ! «ün¿ýö¾tN ]² +qÒfRMÕsUâ T#Ì8Ù<7^~j£«P]Sw5º Åyim19;>¹ ØS Ķdõ/¹¸õ×G©Ø³í9 WwÞy§·.ò¼ gÅÈòé «gÊo'á (Xg0ÿJÿ¹1ì¿þav9£&SSM.Ï÷26Sôô. ;V2?¬@ù÷E¬3Xà¡_uQÆÞ1VN`jÙß×E¿e¬¾A»\¢{µ\Ú#²nñóËü¸4BÐ4\Xä'ñ¶üÁ8ì"}C}±åÙÊîÝò=p<=¹G~ ]@˪ïN¬ìúV\α^óËR²¥Wð§,ÑK¬ÅhØzµ©Hò¸ðUv l&0NF_Ö/ÃR-'«ËÖ]ÖÛ÷νÎÉ6êX8¼ÙOzõgk9Äúë¬KúÈ'¨ãî»h¢Ü^ --- NEW FILE: appointments_pic3.png --- PNG n¦V«555]rý"çÏîZþÒE×È¥óïpV¿riX4cPìÓUÉÆ[Â0¾Ý¯ÕÜ4¡Y5ñ¥×¬§KDLgÝBï»1Ñ%_:ÿýûßÖ AíÝ»7iúI& ¾´ukÈÅNù&Mò¾êûÓ'rÊÜÔÆ;qbS¥â]ÿÁ¾}£Fj5jίsí/V{èùοZ,éþ¦EÎÌ_$"K]ï¼ä[p³¸ÿ¼k¾þºØ¢»õÐQ%*½æ,£.0jÇdÎ.«iÒïÝï{ê-Ä·¬¿`ÉQozèÛ÷ɳ/aX`Á·àö(ÃÐöìÙãD6&MrÊôþZÎþHEj5ß¿]==;þó×^Û³{·wýPSÓèÑ£G½÷·Z4ß÷ODñ½=öXVûh\¯üàJw<´hþ%×W©Õ/¹¾ê]é¦ô.øÓ¨7ªHX½QkRd¾ÆÝ;g÷ﯲÎûÑ4¾£zH5~TgÙÉånÔ[¯4õû«(9òM;/ýìÁß½ú+X`¼2ÜÞ¦x¸+%À]ùï%_z7S¸=ª9gtèZyýÕW÷¼ùæW^©íÞ-'ï®[©4W*M£FÉ=n:JĽ OüÐ)rYeÿUùNg_]¼S¥³2E9FèüÐn°¢vÜäSY`Xð.ø¨ÃÅKÁ4¢^~ùåSOý¨/¿ü²bû#û3Tä3'Nli9ìÏÿXvî¬ uèaç~bÊÓ¿ÞgóÄ>øà½~8jß¾Ï~ö³¡ vwwö³}ì±ÇÿúÊwWºk¼/¹Ëná]ù_ùh ñÃwÞ .ßMÿð7<tG§7oh®Ðô÷"jM,Á5ñÛýÚУº³)VF´DËú5t½ï¦ÿ0ÞÛ M/"çwÞSO=å¦tÿtÓ<ùmýÓ÷9©O8ìÐã=d¨6´÷w¯õÔ}GìÛsô¸q¯ÎºèñÛÆuðxÈÑç×ÿÊ+_Zû¡£4ÌòÅDdn=\cꨪA¡¯ë=òj¼õ TüqEâ¡¡!_äSzo¤â§òÛww¾;°ûÁÝ£¼cBë®Q£ßy÷ÝKö½9õÃïýæÇþáµQï¿?ðúë«¶ïTvdø7¼>Vÿ«£ªjV¾®÷(nG¦ÿ§Ï³À,°à_ðèîîRòy§wìoSY÷ÔO|/|jâ±»v¾3zåÒ)»ú§pü±|ì6sÌ1¦~òÃ#üî1QÜõßDäs×þ?9oSU©Úúç::ø ÷eÇÖßôG,°À,¸¹ÒmS=nI~éCzÖ=ù¿¢2|bËÚ£¶mþØ]T*GyäZ/ÔÜ ê¤-+===ÁèD]BâHå¢.:묳ÞyçÍ˧»löÌèE| +Ú*KtaÓ̱OÇÝ÷"»²¿×ã y|tz ôëæÆI,êÂ,Ôm¢ þ ߥ¬)×&î:*¶°ÍÓ¿µé"7+Ë÷Åòê¨SIîj©ÃW¤âq Þ¢W¢·5ã;÷ X¾¹(Iëï¾\Ð)¼ _ÍëqG`\¡5¯ßÝIªüÞöbWº/U5]½ÃùVz¹ë}+}˼Þyí w0êUÅÊ+ª'X7gÙ]£ÿ. ¯>¾Ê{WzÓ+È[`%m«vOOæ· øé .&xQ÷îHðh»ë£¾&¥¿|C«ºlIý4ßjfZqm*¡¼ßö°VèöÜâÐ÷ÏTáN§Ó/ÓÝÝívÐ8ëÝÿ:+}ËNú¨¼ÞÝÝÝjõãÿ8¸òª«®Jµ*w0êUõÊr¿lQ»ã,;usb?À¥ÖÇ[[EzÄ¥ýÕö²íCTèTñ52vÓûõ|lêèmR¼# ¬©xû~ǾñùµÝë¤+Ü.xÆ"nW7q¸#N($*¯³wt\uÕU¾`%{ú¶¦ ΫøajPÒMèaü¾_Q®új ×BY{uÔ¯U¹õ÷^ªmûÂ&{¦UìT1çÏ\?N¥Ä#è}ÿRv}ãTbCЦߨÆì=>Þ`ÅHkJÔûâm-ý»¼H¤.ª}1Uÿ¨_¢Å+½¦DE!eÕ''ÖîQh«O0ÛJê»ZVO ù.¤cWï:q͹FÊL@8í"¾ö_ÏQ rã>¾#ôZ¼Rï§²ëGuï[=|Û*u^wÌ× ?¢V-ØAÓMÜÞá&nW÷U1³©#¤<ƦD1ò~ÕoìR5¯Ç:ÛO=´ÖÆ9#¬k¨¥¡N?B±ã· ®)õ[sWùãTßRu§L]üÚðwU<ï$t</opD ÜûtÞAß«êOB¹ý¬I{ ô*U¨ïQhïý_ºPVU;ø!wË«T$ßÎWÉàÄÂ=Ú Ð³Ml ì>KÎF4HVëëë«V«·ß~{__óBkkk__ß-[æ,tuuÕjµRkk#E¸à½m'4qÔ@¾¼¡ãg)ÆÕ@VÅ(FSSS[°`ÁäÉ;;;«ÕjµZ-yJPD Á|k¢¬úRT >È¡¯º+Sä gøf"sçÎu.ÃÙï±íèèpKsÖØyBÈr|ëT:â\ Ð0UZðOuáF6´ÐzæQ²ñôf³çTTÃØì¡ÝrWjÖ<U7àw!éQEÒ£d,Ri÷0U¦¯|ßB®n¥ ëo¨à#éÛ´ÁÏIõWB_-å<ÕÔÔT;GØ¡,)>¡YÊ]é¾â8_ÿ¤'6 ~¥82î¯7¥8JfFÔ¶··{ÇÂøþ4Âx Æ9æyy³~NòÞSgzÔ]sV =8'÷ãq)Ýd±åË}U<gyoMxèLï]ÝoeTJßFUCqÄ|¯*6UÉÐì±GO³¨à²ºÁòc?6Þ\g¼þ¥ËîæÊîÝ;}ÞK¯þyÃÒÔ Ç÷%²Gº£Kïïjü\ºì,¨ÿÌ+ÍÝqWS«(ÁCzè4ßüvÇW~¢GhؼYþô ®ôýnýͤ³&ß%Áwñ:ùª_u8娯7¾m)~¢)DQ¥ÐÍ鯾ûT%tCêú®:tRËrè1úcÜ®f%SgmiȾu k!Ðù"/Õ¾¨ÅlC>çmÕ IwÄTók^?s½?ÝåÐQ| Êm6ÐßïB=>¾¡}wò>ìé>ùÕÓ=øUÜåÐ_Á°Ã]Zþà %x~ =ãÄ^5+ ÃHiÁB|õÔßÍØ¢)Óí"WèÅ^?{Ò¢bKȲRÁ"x³¦xãà¨ìé*c¼å5ô¤Q$³_|Gê½0ö<ï YÿRÒò¾«¡ÃÙÉà;¥É{4|1¨òÝÒ!Ù`Ë`Ô+5¿Ádî,aWM£¡>W)*üí[ú^¸ÔMÜ ¶Ø+2Ƶ¹b¨ SpOVu7ûzcË:8üú³Øì&JaC,bCth¶s©âä±ûf]a7.ñѤsz ý5Y¤¤P\íJÜßÖCCS×ÝìO°(³ùIëãýÓÈ[GvýN7¯ÐÓE¢/²ÙÌjJ*õQÊeDW~1%HËÔZS_RT>*:¾:§FÆ:¡Ù]<):}t¤;¿ÄæJ:ú!i|y£ ¢b)vA¿W"Q±¹úй2v`+uûJ°Õª¦K¤>JÅ=O%ô*\Y/m,ÙKª¯«H'àp³xÓçÔ¦¾EÙ;Æ6Eö(MÁW½ããÜôé¶ZZè«ÞQYb7[æþFQ§TW£)ìÐ,úVn¤¨`³w+Ù]°Îê½~tu{~ÙSó^tõ{~}#Þ2ÖA-Ñá#£5?±R%1>¢Öý3¸^s¥ÎÀ\¯@Þ¸ËÞÍEÕÜ[D»¨j¨ÛÀûX¤(²ÎÞo¿rpeh.Qöõ×h6®èü´úÓwmó.(Jf}5¶4)vJ3¥þK:Õ+u!êÃ[xÍ¢ÔycÿÔ9þúïâUÍPNÙu^ ⹡gàrÒ8R|£ÖlKq¨Õ\¯^\ZÔ»£Þ<Ë׬OÔVuf«º>E2ý÷Eb«,+7jn(*WýýZ½å2rÜü2FßÙ¨fFýúKò]«ï¹ë}@02q¥L'ûq#LA=ªãyS §òJ_ÃÞéT°O´ÖýÝí d``ðÙU«E¤R©ô÷÷ó§¯ùdîÅ57Wõ<ý´Ó~ó¿ ½½kìñÇ(®#¹_üâÚur͸oÉ"Ò·ùUg§¶mÛÞ:eóÆÙܵÿõ¿ÞÿÀû×T}%ú´NsKë)gÌ9ÿΨ: ¢ØIÒæ±z¹ÆXÊÜ/J¥òܪU6n<ý´ÓäÀ Ót6o~UD¶oßþò7vÎ_þèOEd``@Å Üa%.7Ä9õiÛÿÇ/÷¬Û4öÓ'«+008ØßÿÎççO ÃÄÓÄfñµ hfQo× ô³§Y Å@!ªmÀ×Gº&tA±>jÙ`U¦¸}ѯsºjQä8Ô;çzÀé>îÕTÿ)z7ioý«xÀ4*ÈRT,{5¼yûi6¨ kS)Ð+V,}ðA§MÅNÞ³ñ³SÄ#³s-8ØWæ<ª¨#ê{y`ÊTÞØºÕY8i¼°fÄõݼ°fÍÉS§Èaæ®o~ý¦\«j¯pÒ7 *㢺øÜÂf%ÅAÊyçë)×wvÈ¿Þ}÷Î;5_úò¿uó·ÝÄ;wîü¿û{Y³fÍĽi<uê·n¾yÓ¦Þåÿù*wùúÎÎù7tæ¿+Z8Å#oÆ?`(#(Ryjå3ßüúMK|PDþõî»Ï9óáG¿ñÆ"rëßýÝ~øÃ§,"^vÙÎ;¿xÕUzKDæW]õÅ«®zøåÎíQ_øÏW½°fÍ=ÿëÇRÒÚ¨»¯ÉH 5Ô]£ÎÆyªSNò¨%»X"ê>ØÛ¼¹bïÇ æU<.ô¥Ð ©7ÂTêÎÓ54Ó'- yÐi0&S£2V,X Æ© £,ªÓè<~-K²#*¬â9+ÀH£9Ì>.X$3©ÓÊ++dój©½÷áPÛEÍéqFȺ@ijòÐÒ¥"²èöª/×{ïíM7 Ft¡ÎµV§åLó%À7{ë³l±ôçíG´eÔ1u®.RYý=yÿWÒr4½ó¡{±gó ÍÏIT3ðÖitqï÷ (¶Ud¼Ò@JÿïED6ý»Ìþ9î3""»tøÛ;ÿߥI#s¿O)Ce 0Â%ëýIq"öv§¿àJݲýÅÿ¶qh̹'\{óíÁ7^O=xåð¶NqI¶¡¡Õ˸R±b¤«ªf._È«Òz¢üvð=|oÚ¼sôgÚ; DuX(è9qwéì~°z:Q{Ò½Óh»ÞWÕVÝzhQ òeð¾ ¶ª¾ÈHùâBT#±FÚ ¹8E Æ;Ca¦q*Ä h "ðèg Qd'T ôËÀ¥©ìXtf°E=WjÔ«Á©V½úÙ&ů-(ñ#jÇÍÿóÏ VRo)Ý©G+ö¦ÇÔß; SK¾øHÅmMÑV¼§'ýê}BSòô§('iÝ º@K tS1ÛõcsîsþÅ&æPÐ 0@:EÏ¥z"e#K¬Ü ¨$ºPÜ\Êú(úÏÕì¾ñUOg÷"V } «¼SPïK)ôþ "ÐÊ " ¬tæFf.e "Ð " Æê5Ì¥@½? ôBò¦¹$BïôbçR&æ \02 ¬K@~èý ú*Ë\Ê + ôBgóQOÌ\Ê D* IDAT¥¤ðJhD* ¬Bûkæ\sO LV WD* ?Ù Úbm*nâüY«ÕÎ=÷Üì5ó5®x[ÜõQªïóµZ`p»Yö ¬ --- NEW FILE: appointments_pic4.png --- PNG */{ûÁ`08öý+íûÔ±ÏôvíûÙÏnØ÷7.8jøà¿ûþw_´hé+^ñ¹3ÞkïrëuB¼ûÒëÆiÓàÕò òGØ ¤vºpòS²ªJýµ¯QÒ±oà©3"É(¶¶|KÑ´1ð¶Êy q"þ|+KᨩAT¶a$)ȹK^õä"Çõ,¸VùÀ,°ÀBwÎA^ÏȯÚdñTõÈ#~úK<òÈ#&¤}r(VúÕ×°lÙ1?ùÖÄüühÿþcsîÉ+ïùÞ¾p ¯:ê¨ç_xaÑ/wÞyÎJ7oÞ|ÞyçÝ~ûíò¿Fý½RÑ7©eý[Ôû¿ò©úëWå¿ò©Þzý¤ÑéiÚÃsQkRìb¯ùÍ?ü¤<Þ¨18Ïó`S¬:iÃ#ÞÆóº+v[7¾ìÒ EÔ»ºæ+úèW>õQ¹y¤Ú?ý´¨óR|ò#WF´DËBAÖûD¼F[okÙ2¢Ñ7ýÚzX`:·p¨ç]©6e<ýªØg¡¯<ã3¢êÆ_|õ±GvØþýûñøãö¼lÉ/¼ðÂ/ö:ê_vþèåèí»Ý{ø~úkV¬8ü#ä^ú?q0ÏøÐ5ò^¿ú·îÃB|åÓÉ¿òéËë>üÑÁäå&µ¯^ÉW>}±U5~t6UÀY¡³O Qkô#Õ3p{/ÏQ« Òs='ß^uÒÔ²ß_&ÑË¡×û¾2ZÏÒVÔ©¶ÏðH¶|ýïü¿¶±À,°Ð©q(5{ã)giMFyU@V®vÒ±å ¯9æèG¿¼'F{ö6½~æ»=!^?>þß_÷ö½â¤eKçç~rɱ{ûgñüöíøö{Ç7ªþÌBL|ð¿+5ÒÔ «åuD¹rÝ®QQ z{÷£ D ÀÓhÔV»-O$QzZw%a¨'ß¹»ÑtTÿ©Y¸x0êpDô'öíá 50øFQÎä/ÿú{Y`XèÜfóæÍû½,èòÒÞ¾îþ[cÃêß=?wø?nZ¹{×Ê×þÂñ/Ùw¶oõ«_}â)o|á¯üó,ö$YüÃgþ³âûàÿSPý9¡Dkpçüð¼~úäãÇø,°À,tgaÇÃÿ¨zûDÕ{W\yÇ ïC_ûQ;üݹãeÏí~ùØØÒW¾òóãï l Uóc©yx éñØAÖ-lùµçÜä|QüË¥±¿ªõ±Ï¶ZõkRù!¬¿"¡:k¿-ð© 2/ÏÇQȯC ÊO=Ceöö9é.«\ݤ« ûsÍùbäU¹{ï7oVã°r½ú¯\i,ËòQûê6oÞ(ª/}éKöÊ/¾8Õ!úx^Á¨þÕþæDΪËè~þß±©Ùñøÿ7$éßë%pÆSÿ°uu{$åü%õü*SÿõtU^&Ï+Rí_ÆobÒ#g¢9/¨_¨å¥}ú;OØsQ\½ýWxºÊõÜK¿ÌÎØ©a=ÔUz2¥ÚW.Û¹c/¾ØÈü²ç|Î5ÿ¾.%m"üm\ÜOQåÇõîjÖWà·³Xݾ0¦ÛéyOÝ~aý¤õT9)4ñ hê¯í«ðí¨ÿ2¤~ÿ×öÅæaÎN>cMT7^ö]=óË¥/êuLñ²VþÁd㦮ªcÉ+þ¨>òU@^¢Rºªâ)HmÈÙiQý÷Æ·Uiqz4ñw!Ë©«ùË¢¶¡Ök×_¸Q\êLÉ;£çÏ ÎÌürÛ5ÎdÒSZ¿òÒÄÏh]U£râdoâɯ[ÀQç0é÷Nþµ]qýÖ z9jjõS:üìqØvdéè©[}kȤÔéf×óEÉåõjn"ØÄÈsýy>»ô1¨+¢JfG¨Ó¥¡o¡Øk^K'/µÜXk^º Zýµ}öGìµëó-<÷Õs^Ãgìk_¨ T{ëWÐØê'T{mJÒr¹x GQñDý9yëÿKçT«°í7¹Z®.¨HÆ/¤ý&©áEóÓ&¶T¸|~~ ì[Cuµ'F³³³Áàüäìì¬Ü0>>>;;{ùåOMMÉ k®¹f4Umyr/}®³pÔ|^c_çY ÅÄ ßÝÞ¥ò;ÕjfOcyU ?Z½ y±9éûÜSUIÏvniß*M^uõ ʱro¨ä3i4ãû¤øý¿NÎü¼C#ôz½ÑAß+Î]ª]©6¥8ò·/éï`_¢Ñ(úÑ ¿"-âU(è%0BJ͸§x«?¹s&âlç3¥cÕªUúõƹȽÂç¼3¯ß'E©5¾äüpq~²èÔ²*ioÚ°^¡§ ½@x%vy}ÁÙ±2ª¤qFνbO£ó|Ú¦Q¹½ËÁÚáÙè2~ý¤Û]íµ»~táôo¾ð_[£d^¿ïö9÷¼=bW¿§þ]ì)6>bRR¼ ½92NB}¤{Ï2Èk|µÛ];öJç²\ðÿ×Þ½P£VUû9O]à«SÜáõ'z{8wÝ7ç¤öJã0çß²!k2þ²tbþT@ÏWü¼æR'$gsá+íÙ«ò¢×-µ³Iÿm·(Ô»;{M²·.\½!¿Gö7¥Ñÿº(¤gt}®Æ^!ïçt¯!ö%°W|Ø<>]ÓçÍþ3;£Ôg;Þ>ÙÏ$¬½;G-;WF1 TÛ¡~8úBÅ£3`ç«SôiO÷ö(.Nõ}`tø©eçYöÇZï¬!|!ç3%ßÁ[Y*1ât¶¸R¯**ÚðúÃw·ËØ'ßùrd9X?ã[ß½´OO#¢vOLîýCÎßÙt»ʢ¤øûÁØ=ÅÖïºtgI~ÆÚ»û?6s)P|?x¥ÔGÛ}ûô,'ü{7¶dÍ,E\*!®§_©@úÙ0ú\êWµÙù_¾«ú¨ò¬üµ´©5uìFÃûK+E%Ù6LSáxPTÚuËÉù¢È%çË úÍÍýN%»ùV[§óW,ª_0÷ØÑÿlöÿ¨ÎõúÊ:|æU½Õs¾]³³Ã&ß&l_ÐVÄ®1ì½³÷ò_¼XÄáç;àÉõ$/ä¯Ý6±å3VqQ]¡mùs¬Jgo_i9_øîÎqÆXÎßÖD¿Gõ|\¬_ìɱ_exÆß¯³».°êöN*õÙ.dJ®¸¬&3JÎqýDiÁGíâO£Ø£ Ú=d«S;.9íå¤HÙßoáïáØ ùê\¢XøëÂ3ÇBúäYé¹1D`CQ{Õ³&Çϵ:èÂ1¶C_¨.ÊûréªDÒSq¢FìÇf^ÖÜ%=¢§t¬é±-ÐÐo¦Dºp¨ãRjAk48í#çZ/üÛ.Ý÷bêáÝ"}°ÝûÍ¡r¬-Vk^èz~Y×3ªìüÇÕà´¯/hjjªêÊÜpà raݺuúÐ2¶«j3tó÷±ªW!/Íz5Sm[Ó> ³Ãa¯×»ýöÛ«¨ÀªU«.¿üòD»LOOÃË/¿Üóu´6õc7+òÒW3õÙ¶×ö5kM~ÿMOOçX±ßÇXù¾ yië«5Õ´hªöMI U诿q¢d:åÝ® !þhòÒÅ_êc»ùË÷îÝû[ë×!/Û³gïg>÷¹·}¶båÊ×?ºm3]¶lÙ²eKåòÄçæ³µråë ¿ñÎwÜüå7|ö¯dÿÜ]eZ³;vÜy×Ý2wüü¾¨ºôfwìsñâ±£¦=ò¿üZì¡vÚ©*íù¥bñØâÎBvê)ÎúUÊk{f×., èË;v<!+Ù»wïÎOÿ>½} !öìÙãÙEåUêR<Eå§vêSÿÇÃÏ=´ýÈ·¼ÁÀ½{wí{ï{ÖËï¼ëkwÞõµÓ'_²k×^ÿwÝ-ݱcñâ±?ùã?û-[&[_¹ÒsÑ! øÑðFµüþ%Å¡ERm Ò϶hõ¹s&7ÂÙÝq¥ çØUB¯óXã¯áÑÅòþÆ;ßqú©§ªìÜùÔ={õäïG·É eËêiMMéøÌgÿêæW,_.\fzgôðEyù%g?wç׿Û_ìÑ¡ !ÞvöÙß¼÷^9Xw9t^y KoÇå+¢òÝñ+åo`¨@SÔ$MÃHøôEÇ_dçìKvØ{©´2u6#+ÒÈQêhkó ¦t µæSm=!Äh47M?ýêEßylvXuTüà»âémbñb!XñFÑÛ/^qrU±<ÞB<½ÿ-Qy^àþ±û¢h4Ë.cé¬ ©Ê®ÇΨì]ìQÄÆþwK`ÆðKë¢jóGè/ºN ¢îÛ§_gÏlUËÎÎÎ:ÕzÏg¨Â5¶;åÂs·¼¨cßSylxQ1;wW>ø±ÚzìÞºirrr0Ö]Û÷¿,~áKkíOþøw_t¡âgUZ£ÉÙý ú¦RBz±ÙXebw1úöwñ·«p¾QS/Fª*$:Qüõ êµ2bkõQË9´¤;ðÓ5XyF×ö¡Ñä·W5UN}Íû¿ïíb.»y_Ù"ÊØlÀ²~cHú5!¿SáG @ØÕ,Z×ÛW¢»î¼sÓ-·ÈÞ¾Ò¿ÕøÖ)'9èfOýÿñG.þú5Pþ¹ÈKçÒ¾>ù¤\8áÄ ß¾ÿ~7DûíûïÃ)§!9æµFñ'|E¡¡æB%L5ê/þÒ8/~ßüQãÎ !þâ¿þ×ÏÿÍß¼á7!.¼è¢ùùùß¹øâ%K{ !dvø;_ü;_ü?ðÛûþû¿ð?¿$ªÒuÃÃÍ(D]Ú¯Öø÷õ\fÔ\GG1=¤¡¤¤µ}9n ?ëß%vv]Ìsïhç&û)v±Í¥Ð¡´¯þ·.KW>iU¨\¢¹Ë$×å¡ó¡¿Û³´ry§sÑ!#Â@µw` ¿eZv¦¶Cîê¬îbX.ºö8á¹ðÖ³ÎúÔgn¯ðûÈää~ðC_»ó.!Ä ]ôù¿¹qû¶í²OWõÉb¿ñóúppá3"£6%-z IÓýe¢î¨WHYêÃyûÀüúó<ã.u(Mà=SÂynuç@å\ÝØÆ´ï±;ÅB^Øß?ÿ°3ïr"³:uß6 !®ûäÀØkaa^±}Û¶F{¤ËÅCÒàÀM!rdß%ÅúD%*zkóÒ"2EÝö¹èÞ5ãÆ×åh]Ú÷ÏÏþXv¬¢7÷øþ/~ç¹]¼~m¢:äÌÙ¨fï !Äî{Å3ó¹)iÚ'ÉÙ»åÏÕ !n½eÓ·ï¿_>÷ÄOü¾¨úó.¼è"q0eIdMÌ Eo jkýê£ ý~¿ê@ÜábãgcKr U ?4Ôܧ¯Ý¢ÿøáËVëëÕáUÙ»M5&~Jy¤ßïF£MºK¿ßYE`a$£¢ µe$j¾v˧¯Ý{%ªt¨Ìϸ ñç2Pa¤ø²OjfffÕªUãããöè÷ûWmôõHHvEHõÏ©,Pï±Ó×|ø²ÕFg^xâ¨× ×c,!ªÇûnº2ß §¦¦®¾åáÆÅÐzéoàBbÚ/'Õoeff&EýHvEjH&X*ýRéJ¼OX=v®.'ÓóK{Ù@%¦§§óªj~~¾¹1´[PÚøpqg12B¯ª#wK¤ÍcusÐ6¯K2C ööE¥t Ùû9~åW=8G?Ó)9U--çU¿F ú=Sªºg^bhø´Ïý¨þ0¹U/µì¬Do¨S/ MÝìÎMx*¬m¶§óÏÕ]¬-c+Mü¤ËED[£&F'ê¬Vbhô×öÉÜHþK1~jä[zBfשÖë#¶vI{¥z^HTðö¾z») ½KTJ{@áu:K±¡Lá¹Â 7ÜPh$µæ@lu84}Ò~m¾t°8+óüíéÅd^T?blF_XX(§¨³TfÝé¾}Q}fƵt¹ÔRÒ¸ 0iÓhºápØëõn¿ýör[·n]¢òÓÓÓÃápãgõÎÏ>$/¹= ó»ÒY³Z&óCU¦¦¦ª¡1´^´Ï3ú©ò-=ÛË87"é¤t8kË«*ONÒ¬: ·¤ã@ÊW©¨¡Ø¼¦wõ]}ËÃUPZ/Yoù˹DU§=ñÖYÒÏbÛ4×ö5줩íÇ®Ñ[)_ø¡¡ÝÀ=!Äh4[YQZÃá]tåßN%Q¾X5ç®B,]º´ê@ 733µ©YÓÙZs 6Ï¡åKf{å´É^Dmjî;ð#íÒÏn¸áB#ɨ5b«Ã¡é6ôkûô¤Åñ\ç¿hO/¦.ºÌÆ_ æççÊi+ê,C7ö¡=Ãa¯×»ýöÛËinݺuÊOOOÃ[ÕW:?û8¼ärhö$ÏBìJgÍjÌUª:ZÄÐz¤}h9I³ê(Ü>F)_M¦z b{òÞÕwõ-WB-bh=Ò>´ì¤©íÇ®Ñ[)_ø¡¡ÝÀ=!Äh4[YQu<p[sî!ÄÒ¥K« Øí:·¿³Q¹ÉÒþÑ¡:"&í3Ò)ýÇÀþbQCÆáÓ;Hø ¨ÎE*¼Q¤ÎY¼]ÖBF£ÙÙÙÁ`°õUÇ·5ç®B,]º´ê@ iZh||¼AÉHÒçÇý´ í%Ïé¿ÐÞ¾^÷ ã.ýÀO¯ûBêôÐΣ¶ªeçBøî×Ê?ì3ä Z©Ê;ûÿ í´SÒÜ 8Ûõ·r¤Ýö©~¾_ºô˳×ÚK®U_T±îä|F{¢ú_cW¹æóÛ 3^¥Q+zgçXFþgË=-³{øÈüXF¥Vêì]õø÷M4½ pÜ3p³¶ ØüsAüG®'{qÆhaOûT±·OÄ·fmß`n8#QsfoQ9³°Ú$÷êÔùrr/2< WÏZol2vO½V9ÒN oÝ´Å^ßÙZç éí iJ6{½Þí·ß^u ɬ[·.Qùéééáp¸q˳Å4T%tå4Z\+59iÎE¥Í?(ì¹Oöé²?¥C¼Á²Ú+¬Ñy??ç^Î5±ÅÐ&öMïکͳkS£ ¶RI¢ãn¨lØç*dÄ6j̺}<¥#0óSéÑág§qQ+õÎÂb·¢5dXëiéç*{Nà¼ò/Çú3Sf£á×á9·æFħ}Ç]ú¹ùùñp®ÌÉüwxN´# SÇ sv©F1QäßÎv«åI¶<ztéÚléd½¶Ov¿½äZJX,uëFÍþNÁ¨½<¡jþKôÿòNúM_ xFïêów69?XR¬ô|×çô£ræ$1¥U)é.ª,*mò_Û±]õ_½õ:¥}Τ͹É_8¤> #}°¤[鬯-\Èpþ«÷"Cwß>0ÕaNCxþWø ï³#ÈQÕêOa7ó=. FÚ×TþsÉ\¤û%W½5ý:\=#T=Î!ãDÊ µ5°9»Ñ òÚ¹ ¢§ÆJ2? n²4y>Cº¾BÿàM÷Qô$¤h%jkê¯ gð8pùììì`0Øú̪ãÛs×!.]Z~Óäg!wc¶ËÜwÓÓÓÓÆ çá×ÛWé mGàÕ{\ÛWsK,á¼(T yIÓÿÆ®§¹¹¹ªCH`÷ÖMÁ`0pmZ.ãµ}Æm_<ËzJç¼YZIÎtJùã¤z /ê(ö|gJ_µà©Ä(f¯×[q{ ´R%Xk.§AîèíCª>/ü)ÏdÂèi·<[f ys{ðMOOÛ7p]wj9¼E_Ò«îôñPµoì iºkû&Òíe$ éâG9<~vvv0l}fEÕñÀm͹kK.:Z»ï¦+§§§£tUYHîåYÖ+×+j4isYrP¤°°°°dÉ«oyXþXÚ]%üG~ìW\ô&Ï@êÌÌÌyçWáiܰ~µö|δ/K-~ÛÀ677Wu ìÞºirrr0zûÐ*Rk²ÔýÆ. Ñágêó¡³HûÐ]yåj£Ñ(ßÌ쪨óªa;ým²þ¾ÒnŹÑbº T~8öõ|º©©©¨MQ3"i+þ{ô 4?çK!õmwJh A^$BÚÎ)"Òë´-õ#yÐA±éË·fÀûö¡sTß\øò'þ@ïó,;;í²ã@ÿoT0Qñ87?P7WmÜ¢.és^Ã'sÓëõÃaxêf~Q7Ù1V»xê4îÈãoÅhή𣷦ºßüýpÅR·îYß˵èø[̾Gí¸^¼«sºà-QØúÄÿ³ =ÕÞïÆØòäÒ àAÚNKE×s¬ìy¿ÀúßóGiwïó PYE _¨Üõ×#6#TWêÉ®>Ï"íâ©**mò_Û±]õ_½õÒ¾¢.ÉþÜ+Ýýx «£±wýuuH+ÎÓâ\Ö«rÆæ ϦÂ0r¾^¯'x&/:´RARc7p¯úÄ_sᣫ±C©ïǨÅîújà±Ä(lúrȼÜ*ó<E&|ç|ï¯E Hû rÔþ®¾Ë/¿<jcEÝt&0+"Isâ#í ´êêó'|ý~ßî½S÷ÆÓoxÃ<{ýYj)*rGo ¢÷Õ-òwIF[·B¨ëêô2áÊùEëö¡S++k%õX³}hª;-j¶8õ?Ïh#£GÚ.²Ó&çõm5}¸3|÷zÝèØªpß>tZM2<ûÞ.S½¨ÝÁxZ ?3©ÏaMN> );a%pM`=þóØ 8wÉÒÝPà°cÑ]q^#ÿÂÞ> ¨þMÎÌ/¯å¨zëwË·zÈó² í si%¶ÆÞ>tóù`öJeéc³Zæ4Ý @Ü>¨¦VÒ/ÂËÞígÌ0m.°KÌ9 ©ÇX{¤éZ1äuðWô5Jw!ø[YQu<p[sî!ÄÒ¥K«¤Öî»éÊééi;§1r)#s²S:;IÒ<ĵ30£rg+J¢¯<¶$,Yrõ-WH]\qÑüz½ß²9*'k©<7ª<|ÍÍÍUB»·nÁÞ>@§Í¦È MÂ+Oô°`¤ørÊxÇD kÒ}Æ<;;µïÌÌLÑq-Ëù´]ä¼`®«è mÅ_¹ÞmY\Tæ÷Y.mµïxýê£ ý~¿ê@Rªç¤ÝÃáP±q˳þvÛ÷k.¦t ô9r>¢ä¦Ë¬i"áO5p.ë0dûÃü¡:÷íÈóúýþÙIµÉùj Þ>tZ W¹9Y¦0üÂAx$½MúCñ¡vöy2çóM#ÖÌÌ̪U«ÆÇÇí511Ñï÷Ûú¾j%Ò>tÎHëîiîé+ÊM{ÊØÅ<ÅV>b7¡B¿ÌR_ç¬çHããã$ @.ôl"Ò>´³SÍ_ltð>|Æ&OÂdl²k!¶3å¨êHí9ËëV½v ÌIJêgN=È-DnY5`>ÔÏø} Y4Ö[* TÖ,˾}û¶ßï7ÍÇ¿~z<4{ððAe÷îÝ;ØsY÷OçÅãû»ÝîòòrA¿SòÓ§O777···þú -±~æÎVE?þ<êöõÏÇ?®®®6Íf³1Û --- NEW FILE: appointments_pic5.png --- PNG ËUUTÔÖÕ¥Vn$ è288¼r{{{:´¾xL.ÇäÛ4øúm·ß>Q]ýB?üÎw´ßøÍÅ?_þõàôôõõ¬ÙÞÞNP£á¸~²µ~ÎͪÄÉÜ#ßÍe³'÷®N$2ƨýÇËK¾p (ìÛ·O]!N¾º¾á$<¶¼1qµzøÚµwëW.je]úÂ7'ϼsóæÍùçOådëíÙÁÛбßUè*q8ÚÎ7vPGo [XYÊÆÎN.Å?úµuÕFâj«óòåËêë3Å÷ÈÂÆU«2.d>üðãÌ=N ñÖ¶§ßL<4õéß½¹\.HlØÑã|ìÝß!Õ?ܳ1¶±c¿³|8µ}£Ì)¸E½Ä:¢B®îçr¼´"W}uL¦`ü®úÍÍÍÒUçÎI¾Êpôŵ®.|¯áÖÞ6«ªªnjJ=ËÜZ{cjª¡¦&L¶ß8s¼~TÔñ¸ìÒïíé`mè6åÞÃ=;^"Öq>òú¢kA¬#åk]»ÂïÒÖ¯~ÀuÅÎQööt<øå£bùÄÄDÁøÖ®hiia577>}1æúèÅw¼><\ÓØ81>.®Í&+Wzu¸Z%öw¦Óéööö¾¾¾¼Ûé]°·p¦¤·§cÃTïþN¾ÀÛ°#Åã ¼¦¸ S`£ ++{á[¢Ñd¦ïgYÞÇø·bÅ ^800P°¾XÇi+,3ÌÀÀSÁ±oî7¸VJKcg>úhâòåªÜø8»û.^^][;§¶6L²P·Ç¡PïGÊwö·N*á<d²ù¹ÄO¯òÖQHõ÷÷¯\¹ö÷÷+613¥ çÓW554ÜþÉÛ¿fׯç²Ù õ·?¶¢åLÒÔÔtGMMfr295µfÍ©h:^³fM__ó_>Ç[ÈKÄU|{E,\¿ýÖ½Ò;Õú¼þ;{÷wm¥¤ Á{áW¢ÑÄ[²~û>§¿~aþó ´²¸Ê['¸zwO©+/ÏL¼ñþ©Õ£7ê*+sÙìÂE²ÉUwÞ9gN¢¡¡~ÙÜówg2ÃÃÃãW¯®ÛºÇ%÷Êf9FÿvJÎkë·íU9ØÅë8Ë 7ªWAQ?`Á*vsý¶½ªRp«W¯ÛÚÚ?î·¤ó¿ËåXîþÅ«**²ÙìýÆæÖONNNNM%jjþsþbݪDܬ\ÚÔ°rå¥K+«ªVâqØÚ»?QÿÛ¶1vä`óÑÙkë¶íá×ÂÎ*ÞV9r°ËµonÔ¯TPª ô+{*v3`o+E¯§Í'01Ãx¡× ¼pµk«>¯àóæ~ãÜ´áø¯1ÆÍM&G,Êf³SããWn~tå3Æ^ºXËVß{ïÜ»îz~¹ä(0Æ[»åy^²vËó\_ü[·u7cìO¿rðiÆØº»E u[wåòÊBä®:|9øUüþòÌ:~kîüUòdHëK]â·*É;v1vìØ1GSü(ÕÉûâ÷Âõ*XR_76~3»ìÁá¡þùSûñׯ^«¨¬¹ðßyÕu¬¢b¤ªêÚF¯Üã[çjb¡tÄçãg·²ºD*^°P"T\«h¼Æ÷pGõ[åWxôèQqë£÷5ÜÙk×çTVN±ì¼Æ{>]ÚZý¿Áák×6L]þxrÞg»{ô|rá²±3gþráz ëm"·K\C ûBÔõ$_ü~på clUSãXÛ7Î|>Ü2zõýÁSOÖÍ}çäÉŽsr`è§ÌÑØXp¼_ÆWòÇ·ü¨ØQHþ|¦¾Ãtæ¿þð_ÿsáùÓs'Fëjkç/XðÖoklÐpúÄ^ýÕÞÖÖÖbJ¥n%`N<Ð0,¹¯ñâ}·.×ZÒãKËC-©T¿ÐîìþµRZ EÄs ©¨uòF¸Í?|¹XqâáÇÖnÃR`8@ H'`¦uµ?%Ë aóHN¦pÅÆ£V0,5Ø:¦¾¿³qI÷´a!ð¢RÓºøY+)䫬Di×°ä|4´HI8Ì9 t·\ßÎ{î=³cx¢;»LÕ¬¼à9¬íOíUW3Á×p^õÛ¿Û îÄÙí6x$v<¼~pÂ]ÃÅsHÁ}7ëÝæåa a8ר«®,Ë%AÙºÉNEë3)Ç÷¦AÃõ®&|X'%mà7|ÏX?ªk8×,.n`®B©H«:NqÏò[Wo+?)oó Èq°r(§3~ß~í O|¶ÔPa³EFOîììt2~ñhÃR`8@ H6Üë¿ì.n LH2ƺ¿×|êÔ©bGÊ$ö4 H)ððÞïiÉSé³9=5¿l¼(ÂÓÓôªi÷ÔP!jÁÎ&l2æ©ØÖÃ3±ÙZÄTYSª"Å<¬tÙ\ÖJx¢¦ÛMWÌCfEéSØp®éÉáJ!CºQiδð¼ 2æjAj:[ôë©FH~Ì_m9»>ê©ÁîåW(5Éò¥4âQÈpüXÆóªKMÑ@-î1éÏ^ì FMÉpâi =%Jîñä»PÎ+âÀô¦rxhL*úPWBD·¯LG¸à ÊÁ¥,ÞX¯¸v:éß`t· ÆX.J¥RH1A@9(`8@ Há HÑ´µëÅé îÍîWyX¿BÃðôd#ÕqÊÃöñàÞw m]«\å®Plzsúß|éÑKêB4 'î&¾,=$:ÒBóð4d£ÖÑ@t_æÔfÓÜR|YZhæªÞËÁ]¢=ÑÈFªÓ½Ùþ¶®U&c¶F5Ól½HÓ½ÙÂê51Ä¢=¶7fh8éáÔ8Æ®&æSª´èãPxgR=lécÑmÌð¦ÁúØf©¬ßý ðîÛö5\)ºMOÇ %êoëncÖ¿ó|Q¢G}aá{8fv!ìÕ±rÓ`EVÚÄÛºVù}gÂK^RÇ,ݴ楷µµ+CJ [dùêPõbHá Há h»ÎâÄbÞÁ(~Ó i8éUªÆ¥kDW»WÜnÚ É 4ÅÜ/ïܼó¥_û¾QbÊÃR`8@ Há em g±òàR<¨D¼)!Þltþ´5]è§K5r¯Æ*<+:W ªoøVj©¥Ûzm¶TÇ\ÜO6V:L+[$º«ýJ(¶lY21£K1w?N[)h±Ê¤.Pú.Êë.5> ñDMÜ_*glãfÒPö|ÙM©1¡¬2éEl.þ¿GícØMâWóÙRÌA¹ÃR`8@ Há Hã]jS»èb!á ÊÏW¬ I¤Z´05p¦ßÃE1f+[Äï[?²ÞMä½LÝlr)&¨}½%6´¢)m+Î4tôSì®°j.·=óÜ0¿3Án6¹£(Üf©¬Þ/ãô+ÛÄk8+[Ík8¿>ìk¹ýtô¢RËÎÍLÊ¢É&bíYªy°$[#raXø¿Á¥c%Å<n©á»)NÏÄk8=çI³Éb^XÌùÒïÇmI Å0 ¤Àp¼»Ô%#¦_XûæöÔ}¶òÔoÃR`8@ HÑ´µëÅé îÍîrW8½¬¢I¨zux¢ØcÚ*Ð4¸¯ù²+>oaQdMBuÖO§]"«Ý_6§ÔîÍvN+"ÊêT¢Ìbcýª(«s¦ÆÄ.æó W-&]ó#¾hñÎAa±kÂ2ÔN¯V°+Ó»ÔØÎY± ,Qy£á":¨¶.{w½8ýg¨i+Ò"¾Sj<±;Æë}Ô4\÷f;¼~:âÙ¯¡/Õ9Ònê[*(y)æmmmn Ì>¼'T}¤¢ÃR`8@ HÉ»K {1@X0ÂR`8@ Há Há Há Há Há Há --- NEW FILE: appointments_pic6.png --- PNG ͯG¢KäÿFbäü÷ïfÿ¿^üb1>þùÇûô#ìùñÏßþ×?rWT~þñ#1:ëÜI6Ø` 6º¶¡¢«Û_9|mß÷¾õ;Bܸ°çÿzðàÁ=O=uë¿2:thbûë/;øê³¶¼âð`èÇö>°rÕkÙ` 6ØèÎÆ÷¿»mæË×ÎÎÎÞ~ûíüä' ×¶mÛd6µQP~9Ú7Áá°ï\aß§O|²·oßüÏ~výÓ/ù&ÇÏÝÿo~ðÝc,Yþ|aí{ìCn½î#Bw]ò)#ÑH¶þ@m_8õiës[c¢&é.ú´Ì£R/£5r:[bxêd[Z¾Õ¥¨ZÊØðºÊù !&?ø_D#E¾~ÚÞp$@>tµÚÊldÐóØÔ!JT<Fíµëò´$ª@Oíγ$¬âä;7ªÊã?ó!%O£º#¢xb<ü ÷¢å.QxxÆ©[Õ÷2g³¿×óx~B&ÃÛ¦NÏ!þ]Â,?6©¶ õ ûÄÑ¿r85ZÓtÚú¶vP ߻خ¶ÙÐÜ_ £åMìHº 8[^óîÈè´×¼GªyF§jÞlCõ¼«MT»ÊjZ&vä¶3ÑØö«g(²ùYyÞÁ¨½Ä&äñç¯Ñ£ñz¢ß¹Bz{ìFÖÙòkϹËù¦ø·KcUëq~ ï¯Iåo°þù(væ¬Àw¤yy>B~jØ)g{êÙTQæhþá²Ú5Lºº°?×oF ;»°úÈ_?©56¶ÊN,âÏÏ;µ7ßæ+äÝçÏñ'65»=þ?Á$ý{½ÎöÔ¿Ùººý$åü% üà*þëél|l«ô6yÞJ>?UíÆobÒ#g¢9o¨_SËûô<u bÏEqCôvø®pg¿< ë×@£öz5Rý>çÕe]¢î{øMÚÓtVþc\ÜOQåýúéjÖWà·ÿc¡n2m§Ç=uû M$öÖÓ©r>?ShâÑÕ_ÛWá£þËúç¯ Ñ²ÜËré²Q ܰ'Uùýº¨JúWû£ÆHÊWyòÒUÕÔ¶GÎñH;¿7¾Jk§G²º¿!jÛÔzMòú31kSíLPÔu¡1qA]6MZ~MþÈK?£uUÍÊu½'¿n :I¿wòoYÛ7nÝ ·£¶M~I=)Ù,ýc=õG|át¦ËûÕÜ@°-obëÏóÙ¥ÀgÿXÈ ÝÚD. ýòóvJÔ¸åþµæí¨[S«¿¶ÏþÈóOD6âïà,s©ÎsâÌPç+6bßAc¯ÿ'¡Ú&}7sIÏ(ª=Q¿GÎIÞúÿÒ9ÕªÙö¹Ú®®Q_:ϧ¿&=êBìg¬³t*\M>? I?B¡:7µ'FÃáp0|òrÇÄÄÄp8Ü´iÓôô´Ü¸úê«G£Q¥ û#| û&&&Jo ±aÃÓN;M½4¯í¥6 c-å48¼¢Ï¤Qu?'%´ßÿëäÜÛÊÏ;4B¯×ø½â<¤ÚDµ+Å¿}IûFÑ{þ´@w¡ ·ÀhRjÎÀ=ÅϹú;ÇeÂ)Îv>K:V¯^_?h¼ÌEî¶<çEù|åøsRtO娨5ðõ$?PäóEÏ ¶UN{¯Ð¾õ=Uè±óëÎêĨFf8=ÎóiwMïQ¸½KgíæÙµè2~ý¤;\u¸Þ»pú7_ø¯3¯ßwû{~<bßSÿ!vU±))Þ Þ'¡>ÒýÌ2Ék|µÛC;v¢s[nøÿk^¨Àî¨ÄrZÅ>EÎSøî×£üD?ÎCbÍÂù'©hüæü[6$%)ã/K'ù)æôxÅÿÇk. xä¬.<ÑÞ½(óRºåÒY;ô¿Ñv½âpç¨IöÚ k´#ä÷Èþ¦4â"ÆR ãÌnÌÕøÓ+äç9Ý»`}ìÄ[ǧk:ò¼Ùfgúlç3Ú'Ç5 ¸þúëåÆ >ô¡e¬WfèæïcUïB^õn¦8Û¶}@gÍÍÍõz½Ûo¿½ê !dùÙ/|aéØÒM]"¸fpÝc=þö·½õ7ÞöVYø×îüºÜX·~âÖ[eØ äÎÜW0dD{NöÀ>ãhV £zξ¶¿½äý·½õì3ÏT77yì±Ç8¨ß{p·Ü_®M6µ¤ã³ÿó¶lY¹b p é1ÂåEûÌßx?ÛG*xÓ¹ç~ë{ä:bqdÞYÆpjÒyÕá!½½+W¬Q9< +Si3¢"½¥nm c>Á 8F,ò£¹àRu )Ê.ǨìCì½QĶ-üïÀf)áÖEæo¡?Cê2ºo~M½²Um;W<838ËTé5%Φ ×ÜnìÏÝò¢úÕ~Oá±Íj³ópåÿ ]©Çþ][§¦¦Á`0hݵ}¿ô«â~µ´Úþè/{×E !Þ°n]iJv$gê»JiÒÆrÌ{1¶x¿^=ó5E3òåo¡ªÊN}¡æ¢F©XgsõcSæq} osºJÏ(òÚ>4ü6⪦ʩ¯yÿ÷½Í3Ðeç±#ð+ÛR"QÍÓ°ìÍHM¿Ì1¤ ú5!¿Sá½ êCí+Ñwܱõ[äh_ éßj|ëÌtsȧþø[®ýõï5Pþ¹ÈKç¾>ú¨Ü8åÔS ßÙ¾]ÄMÑ~gûö×qâÅ/~±JBüÑ^VhSs¡¿uÀi¿Ê?üQóÎ ûîú»oüÑ^¶õ[7ÞpÃÖûÊWg~øÃ !þìOÿôù¯9ã5B/ºhaaáwÞ÷¾eË^,BÈèðwÞ÷¾ßyßû¾òÕ¹Øùýï}ßw¶oÿÒÿ+QŨ¾ÜØ<BÔ¥ý*Ŭçr4£ä<:¢äÙC*JÚ³¶oÐMëg3bäÑ+s£vÙO±³ógס°¯þ·.K?iQ¨\¢µó$×塿iþÓ¥Ëû<Î2#TËyð[Æ$z¯}çÿ3îùózZqn }+O9En¼aݺOözqä ¿LMýÁ?ôõ;îB\xÑE_üËöìÞ#ñ$yUÌöž¨Og¾"2jWÒü¨§0Ý'ê*y5)K9"CÃá¼}L`Eþúã<ã.e(Mà=S2"\QZÒ «Ûö=tØûBÑâsúï8fcúU.ÑPdT§®ó»uëV!ÄuG-..!öìÞ]@£Ñébñ° d !zóúòwÙûÑ¥ÏOT\ù!Õê] ûöýX!öü¿âÜ߯ø5!Øý1/yrás[}\½[þZ ]ü um_Tfão×tC\YJ05"EaÍéªAËu8@Óåpß¾t|| ]É C¢*ÒÄ/é ÎCôûýÑhTBEÃá0é!ý~_FéHFEw µej¹vçg®Ý{%ªt¨Èϸ ñç6Pa¤ø²OjvvvõêÕì÷ûWnñHt$»¢»&Rãs* ÔGìô_ºÆÌõôrm£I¢êÀñÞ/Ï·Àééé«ny qmh½ô7p!°CmMLLj×2;;¢|:]Ñ]C É ×_}¡-ɨ5±Õ¡kú¢ ýÚ>=p°8+óüíéÙä^Ô8blFXXXX\\,§®¨³Tfº)Ó}û¢ÆÌkér)3$§qAaÒªÑtsss½^ïöÛo/§º 6$Ê?33377·eçSz¢ó³ä%®Ù0<±ÎÕ6ª2==]ujÑÖKöyf?U¼¥G{×F$]®giy òÉEU·Â-écÄèHùj²Ô5;×ô¡¾«ny ê&Ô¢ l´Oüí\ZU¦½ðÖÓn½Ä8¶j®ík.9HSÛ]c)6')_x×Ðnà tyÓ(-¶¨¨rjNÿ7¾òó½½,¸¨ÂÙOï²TciÎò;{î¨Ñ¸Æ-îõzúk¯×Ó÷°H_ÕXÕ Ú°¯©ò ¼di7®Ù¼qMãBºQ_ðò»?¯ÈO/§ª¨"ÇOmÑe¦>¼ïʲ~Ö^Þ;U ¿%ucDxJát(R#ìk 5gÆ%«ÈO4R<yj®Ðá«Òêò4 {%w$cáIo"oí¨'gh¥':·ý±×yTÈvSÈ+*øCsöµÆTèfÄIÖ( V:óäÚ¡ÙÓ»9~åW=8g?Ó)9T--æU¿G@0ëÚt<·©d%ÿ©Ä¨¨+E4&¼ôí«Bc¾Ê5±/%Ç|EðO¦4d½'êl¤a °¡íkªb²À1ÂCåsù^æå¼@°ò¸$ r:RIÌ{×MPº:°íúýµy7:8§y5v MùD:bK×59§Æáô9#Q¿rßÎiìJj¾ ìëDãvÑQ¦1Ý\C}MAUè1DA¡\w,©*kqnçË~Gõ.Ý®kÎ'z9ó8÷ª]ú^g"r$?ìÏ%}iZÔ.OJl!þÚ!5n¤ 5ämªÀKúå±¥©¢Ô±F9öj_ûØòÁç»°£èkÎ ç^cÑ*9°wY¢k!=§t×"£WÙEÙôFeuþlLD¿¤¯%%W×}ÍãüÑÛ)V{Äé?¼³Z<%Ú5é|¨9;Ø*9ü"Ú˼ àìYÔØ¢Â+IFé¥1ÉÛe=!Äh4Á`×+«nÜÖ·^±|ùòª ]ôZÿí/¸àÎêüü|ÕMH`ÿ®SSSÁ`00É ONo£ù¾þØ\iíî+®øíÍ_®º Ì ´CÒÜ« uÝ^ë«4Dªæä~á±ÊXó kݾ³FÓïÛg¤GmèG9*®©È¦ò¿cÃïZç9¶´óR~RWÔÁþå?É¢ _&b)¾'CÈ^ähò?-ù|µ ×?;J4Ò%oÄîEkȰÖÿÒ2ÎT"÷Àyå_åglL_çÜW3º >ì;é÷ËðÈÏÏx310&óßá9Ñ '¢÷çÑ£bDgEÆzÀ®E bb{ú²9ObÏ@Ò¶ÙçGßY¢Ñ©IÞb4 ÃÁ`°ëÉú>cIóyt!=ä&Çäü¥ ïìmø°þ¼õBåËWÝ Q{Sû LÝ6 ¥èZ?5Ò$=¶;g =éá~ö:\}±^TÒë#ÅXTöU½¹+ç5ÌÒ@¾~h8]O®¬º=ÍVܬñúóÖ!/_^Dá~ ºó½7^>33ã\C \«4%F(㼫±Ë¹~¸ήÑ.Ó¿ò#äNx©t8ÛïÜ,Ó³Å>Kv¨(5˵¸¸¸lÙ2É8ÍÏÏWÝöïÚ:555gCkÙ!g)FìËð£¶=e¦nI`¢ývgN»äØlIk ¼ô£DùRlûÉ]ö±zÎ[ÕðZRc´¯MÒLò éeÚÁzÙÜ8,GQS!úK9lïõý»@D 9gÒ}Ú ø~41~é±¶£b8û}#¤µvQþؽH_¦Ãµ}mfW½Ém7\ªÆy¶vÉbíJõÿF5&ª=Î]µ?5õQëä¼,&¶@¡M¦ ü×öe¬WýW¯"E9¢Naó>ç.æBð#ÁÐÂ8=1j;*Ð>XÒ%zî^ST`ù¯ÞKªY#y!íkòîÛWIRc7ð¨ú´IɼØ<å4@Ajúòý¹¨Eµ±%+-¨%`´¯M ûׯÏêTö#w±! &Òã¤ÛD{E¢£öæÞâ0Ú×&ña_Ò«îôùPulì$iºkû*ÒetéÚa`h¥j¯kеzI1Ú×&/xÁ`×+«nÜÖ·^±|ùòªRkêqìò¥qmçÒ½ØþoG9äïþÆK?[m3ê3-»¿øÄ{ù]ÖÍÏÏWÝöïÚ:555Ïämû!·¶w>ÓÓ¡AÔ%}úµ}ƶ稨 õêó#áZTЦïÁ¤â?¨R hüdÊ0ÑþÉs¬?ð=Míýd§¶CN Òëõôjþ·×ëÉm{Ã_ÙSrD ÙÃB±iF±úg©±U³ gáQU§ûàJýø /ßÓ£Ø3é¬BMØ_méÆ>º¸´ú5°gìϦ¨ß[ûX=¾×_óóÎHôÔåÀµ>c,0ÊH£¸ðàLFrv 1ìA©ÜgzcB®BóÒ¦øàµg{Ró×W-(a_SùGÎý9sî\ýõÖôëpõP:§M(h®BìUdùèΫ6G°¯%¢®Þ¨guêOÃ.È¿2/°YH¢ùöñ\B׺¹|ÎóÇvö%ͨ9®í먨õñ?i¥åóåue,AOéáÌoï àê@ hÆåw [úÎR` ¥«Å¹×¾0°"ìk }òÔó· þiè<Vx¯PQ{«³+mÙ$¯*z¸i$ùuý£Éó©2ôRuøoºú¤'!E-Q{SM8Û ã¦ÿ]OóóóU7!ý»¶NMM Á`Àµ}h¹×ö·}ñlë!óf1*èòç õ I^ÔQì=ùÎ6:µá)ÄÈf§ëµ8§= ü×öe¬WýW¯"E9°¯j}h¹DÁY^µ Oãækì°Ïäs}Yjlñ lóóóU7!ý»¶NMM Á`ÀhºBÅO*%ûTiAÃoÌáY~ö¬.1:°ÝW¬6òüÌ«º1¯¶ÓoØ&óè_ðáv-ΣÓ5À®K/!ª@ÿÞÆbrrRO¹>ÍBØ63²¨Q´ìA[îÄ|nÉ´7éM¨óe<æ!¯ºäSêÙü{É:pRðåøL¶taZNd±Û±V4¢^ÂÁr¨oôدöDÿû÷êaJ^! ]Nw£§U=¨ Â>´!Em;Sü¡çpÉÎlá #à«DøãVcs{¿(D:<ÿ±éYCÎѾªT° êÑ> 2àӿá¼ààÅíÑr#.¬¨+*§è Ôb«KW,D6o\cü~ÉGwÌÍÍÍÍÍõûýkNHWl 4a 5\ÄIn%&y¤ÇT,êC¿WznBÁßàÆu'µîô4#Fû ·»U5ÐJúExÙý±ÕÙ3§!å±=MWQ]ì$¯3¿ð¤ïQºéðwÀp8»\Yu{à¶þ¼õBåËWÝZ»÷ÆËgffìÆ¥ÈÉéì Ißð<×Àµx jdxá±9±¸¸¸lÙ²«ny êÔÅe½Ö¡×ëñ-£r¢Êc£Ê¯ùùùªÀþ][§¦¦Á`0`´"ài³)â¤BC«ðÂ=,)¾2Þ±"QEFJºïÑØÃ¨cgggSÔkYÌ×h}è"çså\EWh-þÂõaËâÚÐAe~åRWû¾7®9AÑï÷«nHJõ\´bnnN±eçSþzÛ÷#×\,é@ék&d¾¢äªË,e"áO5pnë0dûÃüMuÛçôûý²K.$Ô&æ«FûÐi^忬zd]>® áÂ#ÑìmÒ§¤mjgg c>ÏÜ4bÍÎή^½zbb"ÑQý~¿?WDØÎiÃ]#íÒ==± ÉYµ'ÍÓ°ØÂGLò&TèYêËò ð<ibbà/£ðÈ MDØösªù³ÜÏØå ]vi±%Äæq6Ã_¸§UHA ¤Ååu«^»)JKÝÆ!æüû çùyËó&ö Ù¸>a¥ú Ûe"Y0 ãÉ|3ûb>bJ"Ñ'·±`Fù~ÿã¯,ûo¤ÃHÆy¢ê<V±n[в9û M|£FÓ~ÕK!óMÙ> JÓã¦þí[æ-o«IE^ syÿjϾ?>D^¿òϲy!Ëuø[¹â% ÐÚÅñß·j ,«-YC¥îí¼âg8ü9¯m, #Ýѧ¿üåÕÜ9Qyé) ¿¢6m9T+ +E jûÆÓþÑj+d©¢ÖvË,]1Û7yµ?ã XÓÊ|M·§QzT+à8ÝÎC ëg˨NØÇñV~'í¸4Ñ_^ SÓrM©%¼s:û9 FzúÞå¶×î,òÒ±´I~s M|`:W-°MË;ÅòÒ͵2¼I&Òn¹·o>çµo¯ÞE#,O¢)ðiè[QTkçùj{ûaðN¾6ÝèØ7O¥¼E2+¦öÒ³m¶nd-¶·söãsmΧU µ¹}c¶¯à÷§¶BÕR!»ueÙ·oßv»Ýz½þø÷/Cz÷ÜϲìîÝ»{{NkÿD?º·ÝnÅ~§ä§OnnnnooýóbýÌ~þü¹×ãwëß^]]×ëõzm¶ --- NEW FILE: appointments_pic7.png --- PNG SºÅxMòçñ×pe÷GGecKKüíôJ !Ò:ήhï{jk¾èªÛîov[ Rü{êßMÇ"z)Ë^Ëqi¤å8[¾tÐä²×~{Ho¿fÙ;hö·ï«þ×K/¬gX` ÄáäìÇ|\¦tôú(«ü2W¹,2¥ãÜ-tìÛºÞvtí8²ýõ-ºé?Ú:}ú×ßùÞ)oïî|ÇîW»ðøáÙ³÷mØpËh¨T·üBÌ¿âëJ¢â¹ÿkäòC¢¸àÊåBPf%?^ÜeA5À²Ñ µú¶,- ªÐ²uãQÚqðÅMå±yTÐQ };Ü[V{R)k\v¯¼§Mm ûüW¾t/3J`§TnéEK]¤(Á±x¡[¹ïy '¯-ÇÁñø¸4»·M"öU0ÉiûÜ&Ô ¸ ûÄá¹JGsçÎURôX0S===9oѯ®okð½=»JØfEu?JË«¸#5ØÉØòïwÀ#öïl²S%o¶¢øAÞ&ÊUy5ÍÕÀáD6®$*˲þYíO,ï`ÐZKb u£·Í[)î'p!ö(÷'úó[2Èß½ek¶wÙ3®2¾)öåÜèjÿèG[¦}L #öW±©Æå´_çøÐ2+Ë×ËÇ¡;elO9*òìí3ò¹Ì0uÎÈìÏ5ãVåÞØ«7üºråJ9ë¥Ëÿzʲ?¨¬?ÃÊ+#µêûßÿ¾xÙeÅÚEË;´ÖXì''hwfú[V÷ó§xÆÆ¦·Çþ'¸²#Qÿ^ϱ=åo¶_ÙN¨RËÇD±þ§±ñ¡ªÐÛdyGýËAù$Fý:2Ö)ªóvò55¿°ÏæÉCz,²ë¢×ÿ W¹?öòßfgìä°?óÈ»ô¼.¨¬·¬Ç..»ì2%òKóßÖìe-]&)º ÷Ó8©¢Â÷+èìªÖãUÍl©*Ãvþ¸§lØHB¿i-;Ï÷gU|#j ø{û <ýØçro_hfìäSRºñìú#¿TúùÞÇoká_Lú7vU ìKZíê#É_á HKPHWT{2RÚ=2öGêydÿ½rµÊUü,$9t%;\¶©åäµgÎbÔ&:cGc^Òó§'iù¥>¶«É¨´$ ¤¥ßÑ~EÊ5}½¿l :Q¯;é·¬î²ë·®ÐÛQÚ¦?¥ÃNÇHÿ=9bë_ë2i#v¸Åý|ARy¿ªV±åUlsùY¾»ücAwDåLom¤NB¡÷¼æÜ´¶åöÕæí([S¿·Oÿʳ½Vâï`ÿ|Ësõ÷ð)eõ» ¤|èFê'I ÷(hß6¡5d§ÜäûSõëÈ¥l ¹©mBÑÑÑÁÁÁV«õo|cppÐ[1}úôÁÁÁk®¹æþûï÷n¾ùæÑÑÑB[[FØË? ×9h>¯RÖ8ÃËcb ¾·¯,!¾JI zqUPb> SyaÔJíÌ¢æÔó§[<^=m¸×èØr£RMÀlóI±Î´ªJÂÞR½iÑw9êyn©*¨G;µ°oOZu*õ+Jq+ù4Ø}C9IeÓ)'9´ßþq2®å÷*¡môÇë±H±rU#à}ú¢~{|bl4ïÜßñ.dô(M͸Ç8ÏÛý±â4áG;)3fÌðß?¨¼LEêÖw̳8òéJñ<ÉzO½9PAsàKÂø â%z_1Æï¹,sêk ï2ì¯Ð² ÷JôüþãæÄ Ê5Ãrĵ 5ÒX\odÝ46ÛrIxùW\ *îß;wþ+ûÇVÉÖç]?æ¡'ýÓôI×èblZ9?C7$Åx2zR¤òwÎg2È«\Úõ®=Ѹì-Øÿ«ÏãîÈÄ|ZD?DÆCçøîd·;JýNcвIÿ$Õ?Â˺¤Ø]¿/ÊàïqÿZ?aS©ÄÒ$ãæÜõµ¡£Û7do1=ÅÝT®ÙöãiÜnh¶Å½&É·.L½.#ýJ©ÄYô?Åî%r©Ç!^«òGeCR¼wAúè._¶"ú·kZ¼ãfüK/ØG;Þ>¯Ih0þî¹lL¢d(¶CË}wüy6,ôø( 6¾;Yöx§Gví×¥ÃO.ÿÌÒ¿dº±÷ãå%Ý!û¶T¢´Ó}7C«ÒsÆÛK)c4æR<a¢ rÁöÏ-æóAÅã5&õþ!ãg6÷®² ¡ñVhñkcuñ÷«·m¦!7é~åzbïEjÏíóG9î×ÝÐ%²a-q9¥øN9ò % O¥~Yÿ¥¹Ê¯*K¢ãÇRÏ&SBkH=s7zxýÒ£Ø/« Çwò qó'ÜcRùR!?¹©Ç2ØM·ÚÐ:® ~ÁÔÛÿÏfûñZkL÷'aàX4/êTOùqÍÆt7¡+ü¶2vehÇÞ;½ýæÅ,v?Ýá }u}à ã~ ¸ã;¼ \yå ·+kS4óóXÔ»j½1¶®ÂaÐXmmm<ð@Ñ 0cÆk®¹&RåË\sÍ5ËaÔÚäËf~ÒRw3öÑÖÓ ûJ 5@ç]ÿ/_bmJ ÇPé¾i©ë»4Õ°¨ªúMI2éGÏ££J¨J42ü× Bo !-]ê } ÏôiS½ÿvìpÚ®§ýP@éµíí妽Ûþ<Çùöº³óÓ§Mî !Î;çÇxÂG,;{1tv°Kos×ä® xwú´iÞ¯cSÆ*IXf ¼·æ]Þ¸zÕM졼Í2©çÑ#!÷(ÆßAÎÒ°äÍðå¶E ]}H¢v½}9zèÁþèG^o_ ù»:¸U%Øjæ~Ò(u6ð¨²ÏÌEZöm{ñEoaÊI' !\³F Ñ>¹fÍÌSOB{ì±2Eñ ¿¹6Ó¦¦B\ÃêÜÔ&ó©òD }ï=ù>Óß/øî%»wïöR>ù©O}ñúëdæÝ»wÿý¿"X³fÍ)S6nØ yê©_¼þú Öû¾Ë?v\þLÿUíÏ~WÂqÅB½¥~z;ÎJkPØ÷𣫾ð7×.ýÑß]²äìÞÞû~¼|Û¶mB¿ûò¿óOÿ4óÔB>òÝ»wâ²Ë9æX¯Â?qÙe¸ì²û~¼Üì|ùÇ.{rÍ»~ð}QÄ ¾äÜäÀ2"hBL± Ê#§>¸Ô§,V]Çù³ (yDðÌÜ Uú¯ØéùkPØW~.ÏQs̵*ÔKUZy"Ië~Ó ÓÁ½}@ýÀâþÈH¿Ã«?¹ÆþwÆüiýZqf }]S¦xg÷öÞþÍ;Ä¡;ü>ÓßÿWW\ùÓB\ô|çlX¿ÁëÆóxwõyÙ¾³ä;þáà$Ü'0 á÷Ûó¸<39IÔ#4Loåy~ !Fßíçϰì*oÕÕk.¼è"sÍê5g÷önذ^Ñ5e÷smB ë7zê©_¼þºÞbÙ>¹f÷#¼'tÒ]ßÿìÏ»è#BF/,É/³ depp0j/ M,\9[ ÷ÐÃÊwDç,[Ô$Ǧg5`Rt£`ó¯¿<0ñëϺôKú/~×ñ7}éã·.:rÇö£ÆFÊ1tð_Ò,¡K×HC"£Jåp` oÎ<Eí§\vçöæ7zyhþ¹ûn¿háí-,Ì'ÜyÝuz6NÊ¥;8ûǸ²ë¶Ñ$ã°±þøXm4g 5 ªÊñÎ ^VC´^¤ãµ}cÍ9\µ+tr:²ì;ÐÑw ãSÚN<nÕ[¿ðõó®ü¨¥'/jþT8 }9B ¡*|ÛÉ#íGlÞñ¢bÊ¥|ñ z¢æO]¢çöywxÿüé[8 iþõ&^rýY~éâOÿÅÃï:þ±/}`üÖEGîØ~ÔØù/áÐ+¢%vqéYñ±~ÃǸX6Kýþ;×]]ì^«Ôå¹ÑªJ̪gØüÆÐóC/Í?÷srÁí-¼ý¢ ö.jþD¸·Ïþ Ñß¶²Ý C μqÞü»ú$«LUUè~oòdyqä7 }x×å>?K=Æn÷zÜZ9Ê%$è^1»ÐÌù_1_V¹*6æÑÕWª*Ëñ¬îSrJÌwÍ_wéå±×cùÍGÐÅů,¾ 3ÆsõqºÄ|Ü?fñÔ,æK¢ðKq_âµÊýêOþý|¢L;U6äü#3ÿ]zîUØÉºú]°\¥eçýA{Þ?aØÊ¶r+^¸ n¤*ÊórXÅ/ëmU7á 篹Iñzä²Ê]°èí«¹¢CcÏ_¼3¸êZ!â]lÊyªÇ¾ÄÌa©vä¬é±`¼è°1ec/X¶°ï~>hUèl{´a\Ûé·éÒgL»OÊÿ÷û¼'ýDÆÄÐmEª*FSKÅß·''Úof7fHr|ZòÜÇmU¥âÓä;U6µ<sJÎ?ëEiþ{ûq1Ch©¬Å»ô4çÕ&lµZëvuù×Åû¼ ûq6Fl+*vL0Ê"W§^8 øV.¹Úûg\%3¤²-¤Kv¶u°y 3ÙCf"ETzÝ5»oP Êï±ÇUöë1Ê¢ôHÎò»#Ä| ¯Ç®[UèCJØWmÆ/®¾ iõ?ñ¬×iWª®>I «úiEW_Ôz"µnË«ôS~ú/]}Uÿ2È[aôóeQ¼j¹Sé*UÌj]N*/2Äj%W¹)a_UóeQ¼ê´SM.)ö´ùØ£½Â:±#FµÕºdªgª®Ryë¦#¼U§C]õ} z¦C*G°¨úSEðÖàCJØWaþG´dÛÝ´(ÎÍÔñJÃÿ¬³íôªê×WH¼}¨3é]³rÏióó_ñx¥Äá}ræ ^UPýzñJ¨åSr÷\>^11´TáøÚµ !FGG[Öº]]9l1ôÍéóV¯ZÛgÛ϶nãHwmuöEÚ8Ò=oË¢[Qs+¦öÖïÌ)¹#ÝîßVt+Ò±lì&|HWLíWpϺ¥ýýýV«Õjqo GØ ï|æ '!ïáSìêêEW_Ôz"µ-;}çÐmø Öù#lÕò´©åNÅF?âÉ4®ªVÌ'¸·¯ºù²(ªåiSË/ LÈÈÈÇèýÖ1ªVÌ'èí«½ Mæ@ØcR8ÔuÚ©;U6äüUt7èÁ+©ðVa_ ÉÙâЦtgoNé=çÃ?)gÛ¹7@/^!9êü5ó´©åNåϾ;äÔÝsùø çö9f¨ÿR¼Gèùûåô^½ª úõâYkB¶Zu»ºrØ$bèÓç-¬^µ:·-η5m5ÜÆîÚê:íTË*rþ6t_¸[ÑHDz±SæmYSt+2·bjo¼{Ö-íïïoµZV{û =Ô1:íuÖ~pþKo1½Ðå+/¨T¯K÷â|r`?sU9sJ.R'c§-·®>ãtR5ðü¡·¯òRìÕ*Ó!¤ÑIµº7\xG»f;º1Ç+~Ó">WÈSB¹g9ÈóM©ÐùCØWmJÌ7wáòÞ¾ <i º)þ'®s ý¼«Ï.Ý®¾¨õ8Öï.tÕ±¬±ÏÎIe«úS6.1_É»ú$7¥ça_ ã9ÿ½}¹·(\çtõÛ£ÔUë׿ íªåý| l+ÿó{ûªªÀ±]OF³¸Î!Ê}óºà³Z91ó²BξZÉmרÒÃÕRéCÑo©Tú *§ìFxá®*#¼.{þ0È[aþ Ïíü÷öeí ÞÆû>w?¢Ò¨WT¿^¼ê²;Ô%ä¿ +Ò׫?,ìôªê×»ã³Ð£gN©ø¶"ÅôÜ>hÏPoJsÎ6!Äèèèàà`«ÕZ·«+M"¾9}ÞÂêU«sÛâÌq[óÙVÃmé®Í¡Þ8Ò=oË¢[²S{kóV-Ï[1µ÷ÂýÛnE:ÒógÅÔÞx÷¬[ÚßßßjµZ¼ ±E5CéÂý×{kó ½} DoX~·Ãx_?Ýñ2O_Í(ç@ìþ')'UhÐM;"òCQÚ£££VkÝ®®¢Û³¾9}ÞÂêU«sÛâÌq[óÙVÃmé®Í¡Þ8Ò=oËTªJ%bK¥S{kóVgN©D:sþ+eÅÔÞ÷oËmsZ6vJ-ÏÅ©½ñ îY·´¿¿¿ÕjµZ-yñü ÄRfÞ¼D:ö"% ´IJk¾DI| ÿ9 aS$ïíâ/©ÙÆúõ{7ÛXÁméWýóó¥§0¾-ýVkÿ9+÷ãã§¥§0ÿ?¹Ú --- NEW FILE: appointments_pic8.png --- PNG Y£RÔö6ßÐÏczláÀ+{ ƪ=/Ùi<E=÷ÜsçwZùÜsÏy6q$w»¿ê7øí·/>ùgßù²8p {øði'|é;}ýGîN[°`Á¯üëo¼1çÍ7ßó÷8ݸqã{ÞóÇ\þ×(_±Wª5úKjY`}å{?ô«A}Þs«¿|þÑ{n}äî =¯3³ð½HZ#½æ½ºKîoÒGϹ³9V&´LËá5Þ·&éh;Ë×>?©Ð'rwÛiÂò/ìõó~}øµ×}cû®_üåÁ<(?îðëo?þÿ¶hä^ð·wÞÛ.<íôÓ=î¸ñ?mü Éè®ÿW/R;õf¯|ïïTÿìBä)øÈ«vù¢é Â÷"7÷Gï¹õÑ{nË{ªýÓ:8¿ WÁ?qeÒAË´,YÉÀüï¿|ëÀ ûóºGÿýãw]Ï,ôàÂlÎÎóõ×5ÆKvQË-ÓW.[¶,©|anû·vì1Ç>|ø7Î8}úÞxã7Þ|sàøã¿¿ç'';pX|ufîÈáóÎ;sddî±ÇÚçQq4l_}óùO/_ýÿà§ Þ{üóÑ{oBðÓÝ£C äK*¯^È£÷Þf¼ª6þtn4)³@g Öè{ªïf`;g¯ÕTÒs=ß^tÐÔ²¬¿?M¦·C/Ù³³öÊ>J©LÝMõïÙoü·þ¯í,°ÀB-ÙÔ@¶ojBF·-×/éUY¸Ê4ºíçÓÓB!N3çàg¿ñæ~óµ×^ùåÁ^Ù'Äúº;áo}줳¡M!ÄÕ7ýGµæêþ£*_ÿ7~ó!Äú{?¼þÞ!Æo^£0~ó}½;±Vs#Zߢ/AÒ¿Ùp¯9ºRôjèÁýRÒUÒuó|½|mYå?úKÎQÿ)9áPG&éxêE¹??i»©ÿ{Ë[Ïazma¶×½%ä¹±òÉ'B<ùä²LýOg9Gúò?¿þ üûm'tæI'î~ý'?:íÉç½yè×O?ý W~uúø±ÓO;þÇ;V¿ýÄ_ÿßzþù<³?©rEløÌj!jÄ·YDUµ9+õÕ£ôÉg¿®?õå«_ýª'ñáç¸T^êy]üýüÀϧ_Û?óÚÜ3¾<2zpÎÜý?ÿù5o¾´ä¿øáßñ³¿óê«Ó?úÑS{¨,%ÿ]Vÿ¨ªz=t¿õOÞÇ,ôàfãÆ½ [uzéH[|Ëi¼pþ3Ø?÷¬[tpjÑÛÞzÆ'|oÇ·¼å-g-ùÍ7N=õO6äù½PÄ_}öß!þ÷þCEåHVUDR[ó8GtðâyÓ_~ñ§õ,°ÀB/-èÏQaTÛººôç¨oùÚIÊðxæ´=»O8tðÄÁÁy§ú¥Ñwn !ÆÇÇe}|||Í5 ÷nSírè cM͵58=|¯¾}¨ ï]ê§« u6Äû¥0jãôÀ.h¾G}ñQ©+ÕKuU-Ô®Ùz2µÞXi,{òê ªÚ2xÞÁ¤W=++¬h»nrY ÿ Uu.·¤þIêk;éÅ®½Åýr¾+e.;ºe_÷ÆU§·\¯þ+WË2}R^=ÁÆ3ÕêË_þ²½ònȵ>w0éUÿÊf¿BI»#eÝäBê¸v}ôÚzÒ$n³>í¯¶®m¬_RÏ×D4±ú×ÓYùÔZEñ6ÕÅõ±:©¥ºþû7r¾ÂõPª_¢vÆiÕý®gI]á:)¯\¶ ¸á@^<;ßÖüy= eÝDøÇ¸¥¢Æ÷+éÓå¬XãµMø{¬µ#¼VÍÖ_o´í[æ¯7ØÌÒcCî÷Õ¸.VMpcMR#»x/ºÈKi '½9ÞÖÆû¬ìhî¢Ù²êÔ©_ã(KRnª>ií9{ì4ªwÍVµÕ3võ¨ûWÑEVJ¹«lOír£7¾HÅd /½#Ý8YiK~Ø%öðÓTh_ñ_Ññà·ÂIÇ0kÜ)¿f¥j~tÝéÝÝúåmÕ=®¿2~-÷¯*® ')åý7®ÇXóëÜ~þanzyFj6ÛµÍÔBô#:^¤æújþº¸ý öwtGñ+Uzæ¹ÛyýÛÈk_AW ½ÇÌ#ä4^õê¹.$ëR®Ô(©>Iß#gzû¿tNª¶ý!WËÍU*ñ¥3*iHZ¸GI»à<ۤв !ºÝîääd§Ó¹ë®»&''壣£«W¯^¿~½\X³fM·Ûm´¶mä ¥úðrgâ¤êF^çX6 Ç7 Ü®JÖT=ÙobçÎ-©¿^½zªÑò÷ ɹ\óÕÞÿîê¤zúËiPR=½<õs"¼ÔgØyÛvÓ< ÒÃRøwÊHYÖ1ÓA¨S¾£TIºq¦¶^öJç²\ðÿ×Î^©ÀÝQ+ë©Uû9]à»SÝîågúx8³¤æ-ÂÙ,°W¿©í5~ò|tîÖ_ iUR§JÎÍ ¯´_-^TÖ¼fkª"»ôã Ó>"GwºóûËcFD/·Ngû§sAù(«-.[Âjé-µì\ÄHÐls3|wô :+z|Î ;ߪ{¾GuõTg£9®¿í¬Ö;K_¨Z)g¢¤èâßJàJ½(ÿ¯©¶ÓÛ§rçɽÈî2~p)3uÂXéaçªNeEn]î½(í~q=h FSS¶¼X¤ÕPý¾i§ß©@úÑ0~R¾*ÍçåþÑÝ¿2ðki'Skª>=öÜêJ³R\éÎFö"«L-¿";RîµÞâÔתU·ËLM±úâlN» [ãÛ§ÛPmk;ÿ»_ng'äë1ÛXS½«<<}ÁB r^ /®à^ÞÅZPñ¶¸¾\äà8¿J>äå>h½\û(U2ºMW]|mÉ`®²ø+´&.9*Åû8Ã\0²:³ÛÝæ¥t¤¶"çÔW`?sHÅ3z®çËHÞ@{÷õ ¥fOì¯ç<ÝqÕª&uKä>JõÝ/îpöÊXÚZ²;-©FVF÷{H0VYôôUüàË}>Þ-Gv'Õ¡§Ýx^5.0;³¤n"µç/ðÍùSÕÐÙ¹75Yø¬ð¤Lú}^²?{黯è)üJ1ú$|s9ø?Û¤¾.ÇQ¥nSÚëW\H®ôì¬oE-ëKª¹^L»S¤jøûNì}¬S ÔYg½Ó[¿Vg¯tæÞþs{MH£Ü9Ë9,÷@ª¬ xÊô¤ÉójÁbHÝDàNeJ=ë+üÍõËqߦó[f/ç«OàAHÚßÔD>9RÉ£Û×ûWÚI+«{wü{Q»üÀú$ .óXnUës$_BxÙA׳ÒsLàrU'©]gªÖûØZ9>ÏIÍÓîϺkqÏiû` Uú!õÃ>¢¯DüuB8ªo*Ò^ªw?R¥ßbZbiíá߯Ûâ½úZ8_2 Õtàããã7ß|sÁíF4¹¸ÈulGq oíÚµk``àñÇoº"iñâÅ«W¯Îeà »víZ½zµ'Ve-MýÙÎ/Kî£d¯'QJDG§ 6X±¦¾,I£Þâ@¬zx.úP¥çþ²D<º ®,EbÕmÛ·_xÁ²«¯ºR¶~fË'>ú'ªg{hhðÝ]&[ê\¼ÒèpNºSëÂ=ý̧yFý©^]´hÏÒ½vϹlïê-ruAz÷î®üÑËÇ-s4£ CC2£l_rñÊù*¾ì±{÷²={öþ1mq ]µ=û"²´V¯ÒßQüê«®B~ë©§¶mß~᣾òÙ½û!ÄÞ½{Û¶ýë6<ö×BééiO&ÕelE ÿóÎ]º÷ÿü»C[v÷ÎsüÚÿ¾ß»^þ¹é¯mzâkçMüjLÜÔÔ~½üMO<)ܽ{hhðãù8Ú[]´ÈsÁ%úÉ®ûÔòc76V&ÍV£túÖÕ³ÆQíÕ\3g¬®Øfo'»Y©wר֬¡ÍíÜÀú·pïRzÔ÷òËÎ[ºTÝ µgÏÞéé=?·m»\§GAÝöÙÏ}áÁ?_¸³zÀ6ÚßIN¼qå¡MßÿÇ5þdÛVUqÉÊßzê)9B^íä!Yõð/:ÒàÞ=2$éçËè¢E²w=°ªè7- H¹«!3fÊÕ]ÝÔVÁ#_±s©_ ¹Ë´ANßDr×¶ !\0º íg4²ë>ÂCuôc«<Ç<jÎæfé[ñ½É*³±õÔ-áÂóÖ¯>ñ5ÙÊ?2äÂ]xÁ²ù¾ö5=Ù·úö%¯¼äâ¬\9¹{÷ÔÔlLOOÏlÛ¾}ffFÞü{ßï]§ÜSSSßüÖSꥩ©© ýõôôq³¸¼®·õõ¿¶êwçz¡ÿ´öÐZëÜ©}û¦öíÛðØcÓ3G:ðå¸<!ÄÓÏlyú-ç.]:44(ÕÝhvåeöÝZÿÁÇþÚ¹(Ýc7¶!Èj´¡&5¨m7ûê¨Ö&),©^ôrÛefjI¹óJªþÎj´6O[\öuË«×CC²ùÜ¥K7<ö>þümÛ·»t©êL¾äâî¬BÈ.ès.CÏ~fËÐÐ \V`y÷å=½eËÓ[¶}fù 8KÓ¯ ÓÏhê§B±ãÿ+ß+Îüm!8øcNÙwàÿY5Kr\zýÃÖ 9p íV+SùEry^õ~ôOµJfÔ/GÃ-!û¹ÉoyÕ³^¾8ÚBU&¦± ýDÆIªUôwDµþ·¬ê\µÕÊóª3Ä:3&ýV°Óó½B¶§¾ØÉêúÙ1[ý)èªþ±ëÏÿìúÊð,©µÒÓ$-û©Ó\¸÷ÎgõgÙ^ËGkoTÿoReêã|©¢ú·ÿ¨d áÁÆá ªÔìÎþ\6½¿ô;51;"é3zÖ8wjÔ@Åx=Ø{VÞñгY<ÁØYBAÎ&Kîd¹·îYÏeWµêú·ÿèTÖÝ_TÁm¥fo©«?EÅõ·_ÃVP B×ÅÑZþ Z$ÄʳméÅ&)« á¼F[¾öÌs²·eý¨QÍyèBB¯ýkÉßCñ.¬Aj³ÖÐ.\̾Þ'ÃÞ@ï}Î ëïßïý¯C¥×ìS[þëâ·«þ«o"G9¢Î®°ØÅ3\Ë#<ÌçSJ/¸T!¿Aû¤O¨7Å{<¹ódZVÄMí&-Q{Î>F×h`®öÔ¿©@¥ÎÒÂ%|£úä×Ó,VvÏvÈг¬[±³ø¯g-¿¤e5³âZRÿåëNw]èCÇÕ ÔC8+ úxOgµg}¾,?é!<Î=B{4öV:Ìô*»\õýÅ˹dCû» ÓL-7U =»MFtw®4¢¾ÅYxRç¶ n óùp¨Gi×ÅÑô.tæ]µÔab%ÎFB8È(ÞG2µªÏ§ö ªð¼(ÈÙ.'6«¢Õ½AÎÑ«¯äÓÒ*Dñ¸ 2ô1çþ@nßz«òåØãعm·9"þ¦o«¿{[*«ªúò|;R§/yÔC¯¡³ªÎ=½å»Ö?Ýnwrr²ÓélÝ7Òt}à¶âÒByóæ5] ÏnÏnÿ¹`!gÕè Ô/ºg·¥ô¨}é@Ï#q¸ÃÌ 9Íhxnûá6! ?Åøo=*ë% k3#˳Æ,^òÙæê_¥[ LPiMãØêoMñdá+«boh¿úæ4S¿=³g**wÆHÉ)LDe')U~éUc5oJæ4+·¥k¦?5iM`ÆÞ ÏE&¬ÎäBàJ}¢3£|cAÌnè$½T2#+ýýµ£>K©3¥ýñÐÿT)íÏQlÒÛçß'¥Ð>Fgv#MÖ\@)yN3{yñç¶»^xÒÔ=Æ¥ÎøêY©â,ÜÉTX'MÉÆoä`Äib=<Ûï ¼òí,þ$¥téÏ^$Ð{JÓ,³¥Ò|×/ogÊîÉØWTpuÎ4jjýæÃ¹µ¹cÁã_ÅÛ¯Ì*>@ÊÓ,.²¤gιÎBzÔ3ö*£17EÀùbtT7µÅ8¯ªG½=ÃÅSíbó7söuÛ+CFº kÌØçqû)úMÈu6Èñùe×rñÖ^àp¤Â¶¿x' çÍÆ 4Ä£ã¢QsMvª¯GU°åª±cúúð~öp6}¨^TÖQ5c@¢H&´7Zd|û[ñ¤t¾=é£hïZøv !ºÝîääd§ÓÙºo¤éúÀmÅ¥+óæÍkªÜ ìß¿¿é*¤;¸uÝÄÄD§Óét:ô¨ ·ðLèKªiN3c}ÙÁ,°¨Ïü1<³õù³b ½ª>ëFi ×̸®ÜT5ìx Ôh¡úæ4,5ÙÙõ¹¤6µõǹ¾J¯yÙºÕG;ã®zI¸n¤wÆWcäyàæìÙ?å²^±Ö;õ¡àþé|×ÅMäËeÄø|õúJ}sU1¿Y`¸Q½MÜT9jn2úÌ>uM¦ìu3h©FðO²ÀÅ×Èå"õúMµsÕÏßÔVÍ\Õö4ÙÖ$kßxÁN íQoçfNýÒT/XYZ8$ := DTnÀu¦ §<ö¥eg²RåU4 iUðµÅíâáU^ÊJ{Nj»ú3)A¦6zj±¨_=Ë©7dJËѪÉÎu Æf& ¼©3@ ¢´±g·©·Ö yïé]éñ & ¿i(°ÑúÆØÙínêñl«¬ "é½s*XÃÀìIõ!`ñrNÆ©Ò>=f:a¦Æ¤öQU>ÓÓ_7U`rDñëâúÛS¼6úÛl¼s ÿ - V&GjøÞÕÂõúdêê ós¹ßki¹·zæ4vÓßå^ülV4KΦ¬æ·° r´ÿgim!¼ì --- NEW FILE: appointments_pic9.png --- PNG ú{ªgb,ÇÂÎ9õ¼zÏÖë#Ïgc9wt*?þæ÷°À,°À-_0Ââì0Ú¹2°é ^ ÓO?]æ©ÿȩ̂·þL Àââbäʬâ3©ùpLOO̹ÈîåVJÏx½Úl« @`dvzñÈ9|Ã"9×s¸Ã»êÞëúÅÛ©§$N5¥ i$-¬¯ ÎoÔZR©x-ùþ4dý:Ù· ê/j¦³=òóÿw¹CoÍ3æþÊÙÀòÖ@rÁptÆÀÒÒR¿ßÿèG?º´´$·MMM---mÛ¶mnnN.\{íµ©sÇP ×oàãLì»±¯sʯLc*0 cÎw3жO ÚÉ9å¬ _IãÐ%'5?ü)unɯÑúé=êÛª[P_PY¿¦¦5%FÿtóoP³¢¢SÂ(RnÎ&¥ó¯Ixeéßy?ªF¾Ö²þ8°È<Ë´qãF}úñk)JÏpÄÈ×¼W¾\%'U×TNÆÏt[®ÆéC Ï×þMg,»Ø÷6ÈÇ·]@!U_u"+«ÅÛÅ6þ ´41}E¥d(ópñ+íų Ïw ¬|á]éUUÎo½ÅüªèFâ?}©ç^äéúÅéÓÔ*ùÎ Cê)a¯ùû(ýA,b¸òP¡§aOîW[u ÙCíýÐþÕéçTÎ `¿Ô¢¶^ÉÖv"õåVú÷êG/7ÛÔ<ã¿Ù8 zWø|ðmu®×W¶áÏ~G4ýWƸÜ$VÿÆçp87 µ|Pg'n¹°5>ð½ !~Ê#²GßÞ+<É¡ê{å1ÐZÐÃýïÓFè_=ú|ùÄé§·ËV³¬tÖVãjO¥ÇòÕ¨ô+ìp~¡eúªq^çl¹ßáKg#Ö(xV8»ð#Ò!Fð;ܯ¶qPù vþåñÍÁ gXnQës$_bfåÕßk{çEÈ·ÚÌ×m_IªS]ÇáÕk\o_·eã_P]ìqo§¬oeÁ©½©éZu®`Ê:çK\³®v0bÆ!©®ãðê¡DÆèµfÔ)±æþfÕá ÷ ÀæÍ !Äþ¤8î8ñÊ3³æñÄO®Y3¹nݺò T^:ç³U@¶4k&' wÜw¿â³Ïræ¯?¶göïÍ §'(q¯@nrAÏÓ¹²ÎR KRpey Ë¢O-;W¶¼xõWD=â·×ëéöÒø%üÏð¥÷6 ® !ÄK{Üñ/ýÜ#<uäû®{ññcÎ8Y¦9xð`LVòn?·Þrâ=\rÖÙ?1¼¼¼ü±þõò.@rz,Û ßyüqy[! qtVÀêGõÄMÛô#¯¾ó*ç&g÷¼ìÅwÃúÃ/¹ôÒ@ V³:+ÈWXeßM (8<½=ýß5\ F fõ¡å½A`Zßä[ÏÍÞj46r´îçæ´)æ¶ïÐ áAím ¥Ùè_ícOE I fõ¡åJ«Z# jÆmÅw¹÷úoÜɧ\êá4h~~¾¬¬»[ ¾í²ál ±ú ô¨ÚXxÅ o ¿à=@ î +Ãy}[õFEdæ£JØ£ÖÄï«ÿj*µÕÊ:î?Ì9jÙæ´ @S ú(²?© çï|3Þqµ2þ4çf¿&ëgr8AW2p Vgä¨x¦½ÄüY?ésãÌLÍ|lOQ ;·ÒPP§ßr¡bíÚµM¤T@ÒÛ Ps ÃHo @Ys Ú{ùòÌ¿`²øZ¨e½³9]Qz±zÄNÁ vñÌ ½/|B°|üÚ±Ð]ª£Æi[´Ý没=òÅg¥ReE{¾dGä®cñ賬°©%ÂQÏA«;JK^4çu°|eìåkܦ^ 0Jz=÷¨~Ù0°5Ù d-ýúèËWGLêeò¯ ÙlÉÇPdÇjÀiMÌ"ãp¼ äqR÷Iï@ñqa|¹#ÐQô ë;jZðtÀÛûæîn÷#¦9JT2ZÒ?KKKrb@ s !Ö®][Eæ#`ûMFóW<°¼Gm°zbÍ»À%Ö4ë¹rçÔàÀMB<÷ÐÎÙÙÙ~¿ßï÷ïSóú&Ù÷¯Ç<9ºÿEü µèiiIþ ÓÓÓ #Ðl¡ø'² !@ÝmF_)Cÿª£F·-m[yJ7ò W . = ع ÆÂÂBÓE °cw}Mx«3&;ÅGþÄôý ã+sSEå ® ÂtÀKw¦M#Iro«£ÅadN2N+ñë>Ïcïõª?ê¬ß]ëqÖÞgïsöãûÑÑÑÞkתªUÏßïW¿ªµ``QibGoàÐÎõ¤eúìöshl ihª/³¿:êùj/)TÝU øF n®Ôouäææ¤Ò0äѯÏGÉ? ÀÑB _·¿zKñÞæ©*F (ý\\+¨º¥ 4T{òú{ X V' vBÌî±R© ì\±¿ÖüTyÃÌ ¦Þüÿè£VýT´¸ óÿUN]E £¶]|ÞÄâúe¹·g{òsÄgñ'[ô¿téRñP#èóçúT Yª6ð|½4*;XsU ÙÍ#/ô¿4÷ûw¤sûkÍOUkn Xû À²1çþ6ÇÀý÷ßÿÎw¾ó¤sÑ'x⤳ À"qýúõÎ À2[ïT ãµR³íܳ'+ûÞ©d 1`ËâèQ=? ?ûB}¦á9|| @1ßö#QÂäÜn_lrKÍíÅ_©L,M´þsÃì5LñÐg/^,½·4cåyk²TÌyiÙ6ÌUýs =Ú\kyGDäÉ$I²,ët»á@k¡RÊ8 Yuo¿ö÷Áîn$´¹vz½$þÆíïïíî¶Z$IøÓiµûh8Üß¶Ûa$I¢×Ö:Á Óéí¶JÓ"j·ÛÁðÊzù+C!t§ôT/ó×þ»8¸û-ýÛ;îyí«þî½üÕÃ`-"H%¥ìùaÇZkß÷=ÏKÓ4MSõÚÚÚ`0ZëV«åû¾R*MÓ J+LJ©RJ¬Ô!¥RFQäû¾ïûYÅyBas]kmRô</8¥BSef/ͬiQYq¢çÙ+MJ)!ïû¦=¯çyæ§8$1_ÍíY ¹n.§¶¨X¤a³iÛ¥/½Îµï\!Q¾IëÐx²6{ñcòÓ5Ò³[ã¡)¸Ò¶o,ÆàÔýÁéwiÆSUï¦'ÒhÁÖ´q©8µ¤¾c7W;ªøëk;¢A}ºá+7CÊ; ÂZk?ƪG3£QÁw¹24ÒØ8¼]¿#OQQå¬òT|°Çrö=;ÿü¹²'ªÃÛO6PÙñGÓ2IÒZëL+3MgZÅQj¥íîî¾ðüõWÕC)åz×ëÞu×]ßõÝß±Öë·;AYè´<]§¸ø«¨j@¸½±êi«6ïJ*Æ7Bí6ðÈ#AD¾çµD µÒ,"d'S vw ìl:%¼a h÷Ú@JmÄÒÊF¶ó|Èo~fÑÞ^+HLkK¾ïïï¥I'I"h ^§ãuºÝVkÿÆÕx?¤a¶HÓL+ Peqïïï÷z½,MÑp0... [truncated message content] |
From: Jeroen B. <kw...@us...> - 2002-06-29 21:19:26
|
Update of /cvsroot/tutos/tutos/documentation In directory usw-pr-cvs1:/tmp/cvs-serv14254 Modified Files: tutos_user_appointments.sgml Log Message: Initial version, spell-checked and all ready to go. Index: tutos_user_appointments.sgml =================================================================== RCS file: /cvsroot/tutos/tutos/documentation/tutos_user_appointments.sgml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- tutos_user_appointments.sgml 26 Jun 2002 20:35:25 -0000 1.1 +++ tutos_user_appointments.sgml 29 Jun 2002 21:19:23 -0000 1.2 @@ -5,36 +5,369 @@ <chapter id=app> <title>Appointments</title> -<sect1 id=app-new><title>Create</title> +<sect1 id=app-intro><title>Introduction</title> +<para> +One of the parts of TUTOS you will probably use the most is the calendar part. +Here you can define appointments you have, see an overview of the appointments +of members of the teams you are yourself a member of or see all the appointments +there are in stored within the TUTOS system. +</para> <para> +In the next sections you will learn how to make effective use of the calendar +system. It may not look like something like Evolution, Notes or even MS-Outlook to you but don't be fooled +by its sober looks. There is a lot more under the hood than you might think at +first glance. </para> </sect1> -<sect1 id=app-show><title>Display</title> +<sect1 id=app-show><title>The multiple views</title> <para> -<mediaobject><imageobject> -<imagedata fileref="../calendar.png" format="png"> +The first thing we will do is get you familiar with some of the views that you +can have of your calendar. The view that you will probably see the most is the +one you see when you click on the 'Calendar' link in the menu on the left. It +will give you an overview of appointments for the next 4 weeks and it looks like +the screen you see in the next picture. + +<mediaobject> +<imageobject> +<imagedata fileref="../user_manual/appointments_pic1.png" format="png"> </imageobject> <textobject> -<phrase>A TUTOS calendar</phrase> +<phrase> +The TUTOS main calendar +</phrase> </textobject> <caption> <para> -A calendar +The TUTOS main calendar </para> </caption> </mediaobject> </para> </sect1> -<sect1 id=app-mod><title>Modify</title> <para> +The days all have their separate box and all have a certain color. The current +day is marked in green, national holidays are shown in dark red. It depends on +your personal user settings which nations holidays are shown. +The screen shown also has a number of options that we will discuss here to ease your +navigation through the system. At the top of the screen is says "For" and next +to it is a pulldown list (where it currently says 'User Linus B Torvalds') with +in this case the options 'Team The Others', 'Team TUTOS Development', 'User +Linus B Torvalds', 'Members of all your teams' and 'All you can see'. With this +selection list you can select what you would like to see in your calendar. On +the right of this selection list are a number of links for easy navigation. The +texts should be self-explanatory but it you don't mind looking like a fool I +suggest you ask your nearest colleague about their respective meaning. +</para> + +<para> +In the calendar itself there are also some things to take note of. On the left +there are the weeknumbers displayed and they are clickable as well to give you +a week-view of your appointments. Such a week-view looks like the one in +the next picture. Please note that now you can not select what you do or do not +like to see displayed. +</para> +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/appointments_pic2.png" format="png"> + </imageobject> + <textobject> + <phrase> +The week-view. +</phrase> + </textobject> + <caption> + <para> +The week-view. + <para> + </caption> + </mediaobject> + +<para> +We are not there yet. It is also possible to get a day-view of all your +appointments. Simply click on the day itself (here we clicked on 'Monday') and +you are there as you can see in the next picture. +</para> +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/appointments_pic3.png" format="png"> + </imageobject> + <textobject> + <phrase> +The day-view. +</phrase> + </textobject> + <caption> + <para> +The day-view. + <para> + </caption> + </mediaobject> + +<para> +Returning to the 4-week view with which we started earlier is very easy. Just +click on 'Calendar' in the menu of the left. Now it is getting time to start +creating appointments of our own. Read all about it in the next section!</para> </para> </sect1> -<sect1 id=app-del><title>Delete</title> +<sect1 id=app-new><title>Create</title> <para> +When you see the 4-week calendar in front of us, you will note that the +individual dates are links. These links are used to make a new appointment for +that specific day. If you don't want that there is always the 'New Appointment' +link at the top of the screen. Now lets start making an appointment by clicking +on the 'New' option in the upper left part of the menu, or +click on a random date. The screen that is shown next is the same as the one you +see in the next picture. </para> + +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/appointments_pic3.png" format="png"> + </imageobject> + <textobject> + <phrase> +The main appointment screen +</phrase> + </textobject> + <caption> + <para> +The main appointment screen + <para> + </caption> + </mediaobject> + +<para> +On this screen are a number of items and links that might just be worth +explaining. So let's do that right here, right now! As you can see, there are a +number of pulldown lists to enter a 'Start date' and an 'End date'. Start and +end date can be on entirely different dates to indicate for instance a business +trip (or a holiday). On the right +side of these pulldown lists is the link 'Minical'. When you click on this link +a separate window will pop up (as shown in the next picture) in which you can easily select the date you like. +To book an appointment for, say, next Thursday is much easier with Minical then +calculating the correct date from the top of your head. +</para> +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/appointments_pic4.png" format="png"> + </imageobject> + <textobject> + <phrase> +The Minical pop up window. +</phrase> + </textobject> + <caption> + <para> +The Minical pop up window. + <para> + </caption> + </mediaobject> + +<para> +The texts "Start time" and "End time" are considered self-explanatory. Again, +when in doubt, consult with your nearest colleague. The checkbox +"ignore above times" (i.e. the appointment takes place +at no particular time on these day(s) ) means exactly that. The "Location" +pulldown list is used to enter where this appointment will take place. So +"Out" will mean that you have an appointment at a specific location, +"Office" means that people will meet you at the office, and the two options +"Sick" and "Vacation" can be used to make clear to others that you are either +way unavailable for any business related activity. Obviously the "Description" +field is for er... adding a description to the appointment. +</para> +<para> +The "Visit at/Visit from" field can very easily be used to enter the name of the +customer you are planning to visit. Just enter part of the name and of that part +makes the name unique TUTOS will fill in the blanks when you submit the entered +information, or it will present you with a list of contacts that all have the +specified text whole or partly in their name. Easy, isn't it? +</para> + +<para> +The same is true for the "Product" field as it is for the "Visit at/Visit from" +field. Just enter whole or part of a product (or project as you might remember) +and TUTOS will automagically select the right product/project. +</para> + +<para> +The "Resource" section is used to allocate certain resources that are involved +in this appointment like beamers, meeting rooms and the like. It is also +possible to select multiple participants to this meeting, like for instance +other employees of your company or whole teams. You can even 'trace the agree +status' to see if all invited participants agree to be at the scheduled +appointment. And to do that it would be nice if you could invite them by email, +which is coincidentally also an option you can select. The last thing you maybe +would like to do is to remind people a little before the meeting that they +shouldn't forget to attend and funny enough that option is also available. +</para> + +<para> +Let's just for the sake of argument enter "Invitation to the ball" in the +description field, enter "gero" in the "visit to" field and enter "TUTOS" in the +product field. We click on the meeting room resource because that is where we +shall meet and set the time at 14:00 until 15:00. This is also shown in the +next picture. +</para> +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/appointments_pic6.png" format="png"> + </imageobject> + <textobject> + <phrase> +The filled-in appointment screen. +</phrase> + </textobject> + <caption> + <para> +The filled-in appointment screen. + <para> + </caption> + </mediaobject> +<para> +Now when we click on the "Enter" button we will immediately see the results in +our calendar. As you can see in the next picture we made an appointment on what +is a national holiday in Spain (something to do with San Juan) and all data is +clickable so we can easily jump to the data about contact 'Gero' or product +'TUTOS'. When you think it looks difficult think again! After making 2 or 3 +appointments yourself you will find that this TUTOS thing works pretty good. +</para> +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/appointments_pic7.png" format="png"> + </imageobject> + <textobject> + <phrase> +The main calendar screen with our new appointment +</phrase> + </textobject> + <caption> + <para> +The main calendar screen with our new appointment + <para> + </caption> + </mediaobject> + + + +</sect1> + +<sect1 id=app-mod><title>Modification, repeated appointments and other fun +stuff.</title> +<para> +It could even happen to you. You have made an appointment and someone calls to +reschedule. What do you do? This is actually very simple. Just click on the +start-end time link of the specific appointment. With our previous example this +should be the "13:00 - 15:00" text on top of the white block. This will bring +you to the 'display appointment' screen. Here you can see the details of the +appointment and even click on the same links as you could in the calendar +screen. But now you also have some menu options in the upper left part of the +menu. The options you see there are very easy. Click on "new" to make a new +appointment, "New (repeating) to make a repetitive appointment (we talk about +that one in a minute), "Change" to change the current appointment (clicking on +that one will bring you to the appointment screen we saw earlier), "Create +a note" to make a note (see the chapter about notes on that one) and "Get Ical +File" to have TUTOS generate and send your browser an Ical file. Since Ical +files are files with appointment information formatted according to the Ical +standard you can use that file to, say, email it to someone else who can then +import it into his or her calendar system. +</para> +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/appointments_pic8.png" format="png"> + </imageobject> + <textobject> + <phrase> +The appointment detail screen +</phrase> + </textobject> + <caption> + <para> +The appointment detail screen + <para> + </caption> + </mediaobject> + + +<para> +Let's go back to the "New (repeating)" option we saw earlier. Clicking on that +one will give us the same screen we saw before but with some difference. Well, +before saying anything more I want you to look at the next picture (and I'll +call my lawyer :-). +</para> +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/appointments_pic9.png" format="png"> + </imageobject> + <textobject> + <phrase> +The main repetitive appointment screen +</phrase> + </textobject> + <caption> + <para> +The main repetitive appointment screen + <para> + </caption> + </mediaobject> +<para> +As you can see it looks a lot like the appointment screen we saw earlier. But +this time we can enter a repetitive appointment. Let's say we would like to +schedule a meeting for the next 4 weeks with our team every Monday from 9:00 +till 10:00 to talk about this weeks activities. If this appointment should +occur every week indefinitely we would check the "no end date' checkbox. +When we are done with entering +the data it should like something like the next picture. +</para> +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/appointments_pic10.png" format="png"> + </imageobject> + <textobject> + <phrase> +The filled-in repetitive appointment screen +</phrase> + </textobject> + <caption> + <para> +The filled-in repetitive appointment screen + <para> + </caption> + </mediaobject> +<para> +When done we click on the "Enter" button and see the result in the next picture. +As you can see repetitive appointments are marked with a small circled "R" for +clarity. +</para> +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/appointments_pic11.png" format="png"> + </imageobject> + <textobject> + <phrase> +The main calendar screen with the repeated appointment +</phrase> + </textobject> + <caption> + <para> +The main calendar screen with the repeated appointment + <para> + </caption> + </mediaobject> + + </sect1> -</chapter> +<sect1 id=app-del><title>Delete</title> +<para> +Deleting an appointment is very simple. First click on the start time of the +appointment so the 'appointment details' screen will be shown. Next click on +the 'change' option in the upper left part of the menu. And last but not least +click on the 'Delete' option, a confirmation box will pop up, confirm by +clicking 'OK' and your done. +</para> + +</sect1> +</chapter> \ No newline at end of file |
From: Jeroen B. <kw...@us...> - 2002-06-29 19:56:30
|
Update of /cvsroot/tutos/tutos/php In directory usw-pr-cvs1:/tmp/cvs-serv22515 Modified Files: calendar_day.php Log Message: small fix Index: calendar_day.php =================================================================== RCS file: /cvsroot/tutos/tutos/php/calendar_day.php,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- calendar_day.php 29 Jun 2002 13:26:12 -0000 1.6 +++ calendar_day.php 29 Jun 2002 19:56:26 -0000 1.7 @@ -100,7 +100,7 @@ echo "<TABLE CLASS=single BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=\"90%\">\n"; echo " <TR>\n"; - echo " <TH COLSPAN=". ($maxcol +1) ." WIDTH=\"100%\">"; + echo " <TH nowrap COLSPAN=". ($maxcol +1) ." WIDTH=\"100%\">"; echo menulink("calendar_day.php?t=".$last_day->getYYYYMMDD(),$tutos[image][left],$last_day->getDate()); echo " ". strftime($lang['DateFormatTitle'],$from->ts) ." (". $lang['week']." ". menulink("calendar_week.php?t=".Date("Ymd",$from->ts), $wn ."/". $yy, $wn ."/". $yy ) .") "; echo menulink("calendar_day.php?t=".$next_day->getYYYYMMDD(),$tutos[image][right],$next_day->getDate()); @@ -175,4 +175,4 @@ <!-- CVS Info: $Id$ $Author$ ---> \ No newline at end of file +--> |
From: Gero K. <gok...@us...> - 2002-06-29 13:27:20
|
Update of /cvsroot/tutos/tutos In directory usw-pr-cvs1:/tmp/cvs-serv25396 Modified Files: Makefile Log Message: new book1pdf target for testing Index: Makefile =================================================================== RCS file: /cvsroot/tutos/tutos/Makefile,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- Makefile 27 Jun 2002 17:33:38 -0000 1.15 +++ Makefile 29 Jun 2002 13:27:17 -0000 1.16 @@ -10,6 +10,9 @@ # # # $Log$ +# Revision 1.16 2002/06/29 13:27:17 gokohnert +# new book1pdf target for testing +# # Revision 1.15 2002/06/27 17:33:38 gokohnert # new (moved) invoice module # @@ -299,7 +302,9 @@ documentation/calendar.png \ documentation/installations.png \ documentation/product.png \ - documentation/task.png + documentation/task.png \ + $(wildcard documentation/user_manual/*.png) \ + $(wildcard documentation/tutos_user_*.sgml) # @@ -369,6 +374,7 @@ # Creating the books SGMLBASE=/usr/share/sgml JADE=/usr/bin/jade +JADEARGS3=-t tex -o xx.tex JADEARGS2=-V html-backend -ihtml -t sgml JADEARGS=-V html-index -ihtml -t sgml CATALOGS=-c ${SGMLBASE}/CATALOG.jade_dsl -c ${SGMLBASE}/CATALOG.docbook_4 -c ${SGMLBASE}/CATALOG.docbook-dsssl-stylesheets @@ -390,6 +396,13 @@ @rm -rf documentation/$@ @mkdir -p documentation/$@ (cd documentation/$@; ${JADE} ${JADEARGS} ${CATALOGS} -D ${SGMLBASE}/docbook/${STYLEVERSION}/html -d ${DSLFILE} ../book-decl.sgml ../tutos_user.sgml) + /bin/chmod 755 documentation/$@ + +book1pdf: documentation/tutos_user.sgml + @rm -rf documentation/$@ + @mkdir -p documentation/$@ + (cd documentation/$@; ${JADE} ${JADEARGS3} ${CATALOGS} -D ${SGMLBASE}/docbook/${STYLEVERSION}/print -d ../tutos.dsl\#print ../book-decl.sgml ../tutos_user.sgml;pdfjadetex xx.tex > xx.out;pdfjadetex xx.tex > xx.out;pdfjadetex xx.tex > xx.out) + /bin/chmod 755 documentation/$@ book2: documentation/tutos_admin.sgml |
From: Gero K. <gok...@us...> - 2002-06-29 13:26:47
|
Update of /cvsroot/tutos/tutos/documentation In directory usw-pr-cvs1:/tmp/cvs-serv25189/documentation Modified Files: book-decl.sgml tutos.sgml tutos_user.sgml tutos_user_address.sgml tutos_user_the_end.sgml Log Message: chapterized Index: book-decl.sgml =================================================================== RCS file: /cvsroot/tutos/tutos/documentation/book-decl.sgml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- book-decl.sgml 19 Aug 2001 18:01:13 -0000 1.1 +++ book-decl.sgml 29 Jun 2002 13:26:44 -0000 1.2 @@ -4,6 +4,20 @@ <!entity % set-of-books "IGNORE"> <!entity % single-book "INCLUDE"> +<!ENTITY book1-intro SYSTEM "tutos_user_intro.sgml"> +<!ENTITY book1-login SYSTEM "tutos_user_login.sgml"> +<!ENTITY book1-address SYSTEM "tutos_user_address.sgml"> +<!ENTITY book1-appointments SYSTEM "tutos_user_appointments.sgml"> +<!ENTITY book1-resource SYSTEM "tutos_user_resource.sgml"> +<!ENTITY book1-projects SYSTEM "tutos_user_projects.sgml"> +<!ENTITY book1-tasks SYSTEM "tutos_user_tasks.sgml"> +<!ENTITY book1-timetrack SYSTEM "tutos_user_timetrack.sgml"> +<!ENTITY book1-installations SYSTEM "tutos_user_installations.sgml"> +<!ENTITY book1-bugs SYSTEM "tutos_user_bugs.sgml"> +<!ENTITY book1-files SYSTEM "tutos_user_files.sgml"> +<!ENTITY book1-notes SYSTEM "tutos_user_notes.sgml"> +<!ENTITY book1-the-end SYSTEM "tutos_user_the_end.sgml"> + ]> <!-- Index: tutos.sgml =================================================================== RCS file: /cvsroot/tutos/tutos/documentation/tutos.sgml,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- tutos.sgml 27 Jun 2002 20:57:44 -0000 1.6 +++ tutos.sgml 29 Jun 2002 13:26:44 -0000 1.7 @@ -17,9 +17,9 @@ <!ENTITY book2 SYSTEM "tutos_admin.sgml"> <!ENTITY book3 SYSTEM "tutos_prog.sgml"> <!ENTITY index SYSTEM "index.sgml"> -<!ENTITY % single-book "IGNORE"> +<!ENTITY % single-book "IGNORE"> ]> -<!-- $Header: --> +<!-- $Header$ --> <set> <title>TUTOS</title> @@ -43,19 +43,6 @@ </setinfo> &book1; -&book1-intro; -&book1-login; -&book1-address; -&book1-appointments; -&book1-resource; -&book1-projects; -&book1-tasks; -&book1-timetrack; -&book1-installations; -&book1-bugs; -&book1-files; -&book1-notes; -&book1-the-end; &book2; &book3; &index; Index: tutos_user.sgml =================================================================== RCS file: /cvsroot/tutos/tutos/documentation/tutos_user.sgml,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- tutos_user.sgml 26 Jun 2002 20:36:26 -0000 1.7 +++ tutos_user.sgml 29 Jun 2002 13:26:44 -0000 1.8 @@ -2,6 +2,7 @@ $Header: /cvsroot/tutos/tutos/documentation/tutos_user.sgml,v 1.4 2001/12/18 06:36:08 gokohnert Exp $ --> + <book id="user"> <title>TUTOS Users Guide</title> @@ -18,7 +19,7 @@ </copyright> <mediaobject> <imageobject> -<imagedata fileref="../../html/tutos.gif" format="gif"> +<imagedata fileref="../../html/tutos.png" format="png"> </imageobject> <textobject> <phrase>TUTOS</phrase> @@ -26,735 +27,18 @@ </mediaobject> </bookinfo> -<chapter id=user-intro> -<title>Intro</title> - -<para> -This book will show you how to work with the <productname>TUTOS</productname> -system. The name <productname>TUTOS</productname> is an abbreviation of "The -Ultimate Team Organisation Software". Allthough that is quiet a strong statement -we hope that with the contents of this manual we can prove that we are right. -</para> -<para> -TUTOS is an Open Source software project. That meens that it is being build and -maintained by a group of skilled developers who work together using the Internet -and exchange information and discuss about features using E-mail. Since there is -no marketing department involved, all features originate from the developers. -Some because there is an idea for a feature, some because they are requested by -you, the user. You can find the website with all the information about this -project at http://www.tutos.org and http://www.sourceforge.net/projects/tutos/. -</para> -<para> -The project has been started by a German guy called Gero Kohnert but has since -then received numerous contributions from all over the world. If you like to -contribute as well with programs, enhancements, graphics, documentation or -translations you are most welcom. Just visit the sourceforge site and send the -current maintainer (as of this writing it is Gero) an email. You'll find that it -is very rewarding and a lot of fun! -</para> - -</chapter> - -<!-- ***************************************************** --> -<chapter id=login> -<title>Gaining access to the TUTOS system.</title> - -<para> -This book assumes you are familiar with the following things: -<simplelist> -<member>Starting your computer</member> -<member>Using a browser (like Opera, Netscape, Konqueror and -Mozilla)</member> -<member>Pointing your browser to the location where TUTOS is -located</member> -</simplelist> -When you have completed these aforementioned steps correctly you are -presented -with a screen similar to the one shown in picture 1. -</para> - -<mediaobject> -<imageobject> -<imagedata fileref="../user_manual/login_pic1.png" format="png"> -</imageobject> -<textobject> -<phrase>The login screen</phrase> -</textobject> -<caption> -<para> -The login screen -<para> -</caption> -</mediaobject> - -<para> -Here you can enter your username (here we use the username 'linus' since -that is -part of the sampledata we are using) and the associated password (which in -this -particular case happens to be 'guest'). It is also possible to select the -database you would like to use. The database selection list will not appear -in case you only have a single TUTOS database configured. -</para> -<para> -If you have forgotton your password it is possible to only enter your -username and click on the 'Lost password ?' button. In that case your password (or a -new one) will be sent to your email address. Which of these two options it will -be depends on the security settings the TUTOS administrator has set. Most likely -you will receive a new password that you can use to gain entrance again. -Probably this new password will not be very userfriendly so you will most likely -go straight to your user settings page to enter a new password for you to use. -</para> -<para> -If all goes well with the login screen you can click on the 'login' button and TUTOS will check -your cridentials and, if succesfull, present you with an application screen. -</para> -<para> -One last word about the so called 'user interface' of the program. On the next -picture you see the main addressbook screen. We will use it here as an example -of a regular application screen. - -<mediaobject> -<imageobject> -<imagedata fileref="../user_manual/login_pic1.png" format="png"> -</imageobject> -<textobject> -<phrase> -An example of an application screen -</phrase> -</textobject> -<caption> -<para> -An example of an application screen -<para> -</caption> -</mediaobject> - -<para> -On the left side you will see the following text: -</para> -<programlisting> -New -Company Create -Department Create -Note Search -Merge with document -------------------- -Calendar -Addresses -Bug Tracking -Products & Projects -Logout -------------------- -Help -------------------- -Linus B Torvalds -</programlisting> -<para> -The first part (that is the part where it says "New" up to "Merge with -document") is the menu that is applicable for the current application screen. -The next part (that is from "Calendar" to "Logout") is the main menu. This menu -is vissible on almost every application screen in TUTOS. Then there is the -"Help" menu (but don't expect salvation) and the last option point to your -personal page (more on that in another chapter). -</para> -<para>The menu that you see when you log in can be different from the one shown here. -It is possible that the options are shown in a different language (since every -user can customize TUTOS to display the information in his or her language). but -is is also possible that you are not allowed to use an option. In that case it -won't be shown to you (so you'll not miss it). Working with TUTOS is simply a -matter of clicking on the relevant links (text with an underscore) and filling -in the forms as they appear. After you are done filling in information don't -forget to press the 'Submit' button (the button can have another text on it) -that is usually on the bottom of the page. This makes your data being stored in -the system. -</para> -<para> -In the next chapters we will describe a lot of TUTOS functionality. -So pick the relevant chapter and start reading there. - -<para> -And don't forget.... have fun using TUTOS! -</para> -</chapter> - -<!-- ***************************************************** --> -<chapter id=adr> -<title>The Addressbook(s)</title> -<para> -The addressbooks are the main part of TUTOS. A lot of functionality in TUTOS -revolves around the addresses in the system. In the next picture you will see -the main address screen. - -</para> - -<mediaobject> -<imageobject> -<imagedata fileref="../user_manual/address_pic1.png" format="png"> -</imageobject> -<textobject> -<phrase>The main address screen</phrase> -</textobject> -<caption> -<para> -The main address screen -<para> -</caption> -</mediaobject> -<para> -From here you can make your selection what to do. You can search the system for -a particular person you try to find. You can enter the name in the second text -field and see if someone ny that name is known on the Internet (or a corporate -addressbook made in LDAP). But you can also search for the name of a particular -company. - -</para> -<para> -First we will have a look at -which persons are currently stored in the system. We do this by clicking on the -'Search' button where it says 'Search in the Addressbook'. -</para> - -<mediaobject> - <imageobject> - <imagedata fileref="../user_manual/address_pic2.png" format="png"> - </imageobject> - <textobject> - <phrase> -The list with contacts -</phrase> - </textobject> - <caption> - <para> -The list with contacts - <para> - </caption> - </mediaobject> - -<para> -As you can see in the list it is possible to click on the first name of a -person. When we do that we get to see the details of this particular person (as -shown in the following picture). -</para> - -<mediaobject> - <imageobject> - <imagedata fileref="../user_manual/address_pic3.png" format="png"> - </imageobject> - <textobject> - <phrase> -The contact details screen -</phrase> - </textobject> - <caption> - <para> -The contact details screen - <para> - </caption> - </mediaobject> - -<para> -Here we see the name of the person ("Gero Kohnert") and also one address entry -named 'Home'. This is the moment to make an important statement about TUTOS. A -person (or a company) can have more than 1 address! As you search the menu of -the left you will see there is not a 'change' option in there. That's because -you don't have the correct rights to do that. For now let's leave Gero's address -for what it's worth and start making a whole new person off our own. -</para> - -<sect1 id=adr-new><title>Create</title> -<para> -If you click on the 'Addresses' link in the menu on your left, you will be -presented with the main address applications screen. -</para> - -<mediaobject> -<imageobject> -<imagedata fileref="../user_manual/address_pic1.png" format="png"> -</imageobject> -<textobject> -<phrase>The main address screen</phrase> -</textobject> -<caption> -<para> -The main address screen -<para> -</caption> -</mediaobject> -<para> -The first option in the upper left part of the menu is 'create'. Obviously it is -used to create a new person. A Addressbook entry needs at least the name of a person. Additonally you -may add locations where the person lives or work. -When you click on the 'create' link you will get to -the next screen where you get to enter the name of this new person. -</para> - -<mediaobject> - <imageobject> - <imagedata fileref="../user_manual/address_pic4.png" format="png"> - </imageobject> - <textobject> - <phrase> -The address creation screen -</phrase> - </textobject> - <caption> - <para> -The address creation screen - <para> - </caption> - </mediaobject> - -<para> -As you can see, only the first and lastname of a person are mandatory (they are -marked with a red "(*)". But it is also possible to add a title, middle initial, -birthday, filename to a file with a picture of the person and, last but not -least, a list with the names of possible groups you would like to add this -person to. These groups are for things like Customer Relationship Management. It -makes it possible to easaly find people who have something in common. Since -there are currently no groups defined, this list is empty. -</para> -<para> -For now, we will add a new person to the system. In our example we will use the -name of your truly so we enter 'Jeroen' as the firstname and 'Baten' as the last -and click on the 'Enter' button. The result is shown in the next picture. -</para> - -<mediaobject> - <imageobject> - <imagedata fileref="../user_manual/address_pic5.png" format="png"> - </imageobject> - <textobject> - <phrase> -The address creation screen after clicking on the 'Enter' button. -</phrase> - </textobject> - <caption> - <para> -The address creation screen after clicking on the 'Enter' button. - <para> - </caption> - </mediaobject> - -<para> -As you can see, there are not many changes to the screen we saw before. But a -good observer will see that the upper part of the menu has changed. For one -thing, it now also contains the option 'Add Address'. The other options are: -</para> -<simplelist> -<member>Search: To start searching for another address.</member> -<Member>New Entry: To add someone else to the system </member> -<Member>Change Base: To change the basic data of some person (e.g. the screen -you saw before with first and lastname, etc.) </member> -<Member>Delete Base: To delete someone from the system (if you have the proper -authority) </member> -<Member>Show entry: Simply show what we know about this person. </member> -<Member>Company create: Add the basic data of a company tot the system (will be -discussed later) </member> -<Member>Department create: Add a department to an already existing company. </member> -</simplelist> - -<para> -When we click on the 'New Address' link we are presented with the screen as -shown in the next picture. -</para> - -<mediaobject> - <imageobject> - <imagedata fileref="../user_manual/address_pic6.png" format="png"> - </imageobject> - <textobject> - <phrase> -The address details screen -</phrase> - </textobject> - <caption> - <para> -The address details screen - <para> - </caption> - </mediaobject> - -<para> -There are some fields we must fill in, and that is the category (is het a 'home' -address or an 'office' address?) and what is the name of the address. The name -of an address can sound a little weird the first time. Most people have only one -home-address so why must it have it's own name? Well, you could use it for -multiple locations. One's private home, or the place he goes out to during -weekends. For office locations it is simply a way of coping with mulptiple -locations and branch offices for the same organisation. -</para> -<para> -Let's look at the different fields and their use. -</para> -<simplelist> -<Member>Category: See earlier explanation </member> -<Member>Name of address: Your description of this particular address. (eg. -Amsterdam to tell that the address details mentioned here are for the person -when he is in the Amsterdam office. </member> -<Member>Description: Here you can say what position someone has. Is he sales -manager or does he scrub the floor?</member> -<Member>Company: Here you can enter the name of the company he is working. One -of the good things of TUTOS is that it will automagically try to connect a -company that is stored in the system with this person. This is also the way to -tell TUTOS that someone is an employee of a firm. </member> -<Member>Copy Company's Address: Put a marker here if you'd like TUTOS to copy -the company's address data to the fields below. (Not to the fields on the right -side!). </member> -<Member>Department: If the company you entered has more one or more departments -you must supply the name of the relevant department here so TUTOS can make a -link between these data. </member> -<Member>Email (1 and 2): here you can put the email addresses of this person. -Both will be mentioned in the detail screen later. </member> -<Member>Phone (1 and 2): same as with email. </member> - -</simplelist> - - - - - - -</sect1> - -<sect1 id=adr-show><title>Display</title> -<para> -<mediaobject> -<imageobject> -<imagedata fileref="../address.png" format="png"> -</imageobject> -<textobject> -<phrase>A TUTOS addressbook entry</phrase> -</textobject> -<caption> -<para> -A addressbook entry -</para> -</caption> -</mediaobject> -</para> -</sect1> - -<sect1 id=adr-mod><title>Modify</title> -<para> -</para> -</sect1> - -<sect1 id=adr-del><title>Delete</title> -<para> -</para> -</sect1> - -</chapter> -<!-- ***************************************************** --> -<chapter id=app> -<title>Appointments</title> - -<sect1 id=app-new><title>Create</title> -<para> -</para> -</sect1> - -<sect1 id=app-show><title>Display</title> -<para> -<mediaobject><imageobject> -<imagedata fileref="../calendar.png" format="png"> -</imageobject> -<textobject> -<phrase>A TUTOS calendar</phrase> -</textobject> -<caption> -<para> -A calendar -</para> -</caption> -</mediaobject> -</para> -</sect1> - -<sect1 id=app-mod><title>Modify</title> -<para> -</para> -</sect1> - -<sect1 id=app-del><title>Delete</title> -<para> -</para> -</sect1> - -</chapter> -<!-- ***************************************************** --> -<chapter id=prod> -<title>Projects and Products</title> - -<sect1 id=prod-new><title>Create</title> -<para> -</para> -</sect1> - -<sect1 id=prod-show><title>Display</title> -<para> -<mediaobject> -<imageobject> -<imagedata fileref="../product.png" format="png"> -</imageobject> -<textobject> -<phrase>A TUTOS product/project entry</phrase> -</textobject> -<caption> -<para> -A product entry -</para> -</caption> -</mediaobject> -</para> -</sect1> - -<sect1 id=prod-mod><title>Modify</title> -<para> -</para> -</sect1> - -<sect1 id=prod-del><title>Delete</title> -<para> -</para> -</sect1> - -</chapter> -<!-- ***************************************************** --> -<chapter id=task> -<title>Tasks</title> - -<sect1 id=task-new><title>Create</title> -<para> -</para> -</sect1> - -<sect1 id=task-show><title>Display</title> -<para> -<mediaobject> -<imageobject> -<imagedata fileref="../task.png" format="png"> -</imageobject> -<textobject> -<phrase>A TUTOS task overview</phrase> -</textobject> -<caption> -<para> -A task overview -</para> -</caption> -</mediaobject> -</para> -</sect1> - -<sect1 id=task-mod><title>Modify</title> -<para> -</para> -</sect1> - -<sect1 id=task-del><title>Delete</title> -<para> -</para> -</sect1> - -</chapter> -<!-- ***************************************************** --> -<chapter id=bug> -<title>Bugs</title> - -<sect1 id=bug-new><title>Create</title> -<para> -</para> -</sect1> - -<sect1 id=bug-show><title>Display</title> -<para> -<mediaobject> -<imageobject> -<imagedata fileref="../bugtrack.png" format="png"> -</imageobject> -<textobject> -<phrase>A TUTOS bug overview</phrase> -</textobject> -<caption> -<para> -A bug entry -</para> -</caption> -</mediaobject> -</para> -</sect1> - -<sect1 id=bug-mod><title>Modify</title> -<para> -</para> -</sect1> - -<sect1 id=bug-del><title>Delete</title> -<para> -<note><para> -TUTOS will only allow the deletion of bugs if the administrator has enabled -this feature. -</para></note> -</para> -</sect1> - -</chapter> -<!-- ***************************************************** --> -<chapter id=inst> -<title>Installations</title> - -<sect1 id=inst-new><title>Create</title> -<para> -</para> -</sect1> - -<sect1 id=inst-show><title>Display</title> -<para> -<mediaobject> -<imageobject> -<imagedata fileref="../installations.png" format="png"> -</imageobject> -<textobject> -<phrase>A TUTOS installation entry</phrase> -</textobject> -<caption> -<para> -A installation entry -</para> -</caption> -</mediaobject> -</para> -</sect1> - -<sect1 id=inst-mod><title>Modify</title> -<para> -</para> -</sect1> - -<sect1 id=inst-del><title>Delete</title> -<para> -</para> -</sect1> - -</chapter> -<!-- ***************************************************** --> -<chapter id=file> -<title>Files</title> - -<sect1 id=file-new><title>Create</title> -<para> -</para> -</sect1> - -<sect1 id=file-show><title>Display</title> -<para> -</para> -</sect1> - -<sect1 id=file-mod><title>Modify</title> -<para> -</para> -</sect1> - -<sect1 id=file-del><title>Delete</title> -<para> -</para> -</sect1> - -</chapter> -<!-- ***************************************************** --> -<chapter id=note> -<title>Notes</title> - -<sect1 id=note-new><title>Create</title> -<para> -</para> -</sect1> - -<sect1 id=note-show><title>Display</title> -<para> -</para> -</sect1> - -<sect1 id=note-mod><title>Modify</title> -<para> -</para> -</sect1> - -<sect1 id=note-del><title>Delete</title> -<para> -</para> -</sect1> - -</chapter> -<!-- ***************************************************** --> -<chapter id=timetrack> -<title>Timetrack</title> - -<sect1 id=timetrack-new><title>Create</title> -<para> -</para> -</sect1> - -<sect1 id=timetrack-show><title>Display</title> -<para> -</para> -</sect1> - -<sect1 id=timetrack-mod><title>Modify</title> -<para> -</para> -</sect1> - -<sect1 id=timetrack-del><title>Delete</title> -<para> -</para> -</sect1> - -</chapter> -<!-- ***************************************************** --> -<chapter id=resource> -<title>Resources</title> - -<sect1 id=resource-new><title>Create</title> -<para> -</para> -</sect1> - -<sect1 id=resource-show><title>Display</title> -<para> -</para> -</sect1> - -<sect1 id=resource-mod><title>Modify</title> -<para> -</para> -</sect1> - -<sect1 id=resource-del><title>Delete</title> -<para> -</para> -</sect1> - -</chapter> - - - - - - - - - - - - - - - - - +&book1-intro; +&book1-login; +&book1-address; +&book1-appointments; +&book1-projects; +&book1-tasks; +&book1-bugs; +&book1-installations; +&book1-files; +&book1-notes; +&book1-timetrack; +&book1-resource; +&book1-the-end; </book> Index: tutos_user_address.sgml =================================================================== RCS file: /cvsroot/tutos/tutos/documentation/tutos_user_address.sgml,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- tutos_user_address.sgml 27 Jun 2002 10:30:14 -0000 1.4 +++ tutos_user_address.sgml 29 Jun 2002 13:26:44 -0000 1.5 @@ -424,7 +424,7 @@ address and one is about deleting a location associated with an address. </para> -<sect2 id=adr-del-base><title>Deleting a base-address</title> +<sect1 id=adr-del-base><title>Deleting a base-address</title> <para> Deleting a base address starts with modifying the base address and next click on the 'Delete base' link in the upper left corner. Next thing a confirmation @@ -434,7 +434,7 @@ <mediaobject> <imageobject> - <imagedata fileref="../user_manual/address_pic12.png" format="png"> +<!-- imagedata fileref="../user_manual/address_pic12.png" format="png" --> </imageobject> <textobject> <phrase> @@ -447,9 +447,9 @@ <para> </caption> </mediaobject> -</sect2> +</sect1> -<sect2 id=adr-del-loc><title>Deleting a location</title> +<sect1 id=adr-del-loc><title>Deleting a location</title> <para> Deleting a location starts with modifying the base address and next click on the 'Delete' link in appropriate address as shown in the upper left corner. Next thing a confirmation @@ -459,7 +459,7 @@ <mediaobject> <imageobject> - <imagedata fileref="../user_manual/address_pic13.png" format="png"> +<!-- imagedata fileref="../user_manual/address_pic13.png" format="png" --> </imageobject> <textobject> <phrase> @@ -473,8 +473,6 @@ </caption> </mediaobject> -</sect2> - </sect1> <sect1 id=adr-comp-add><title>Adding a company</title> @@ -486,7 +484,7 @@ <mediaobject> <imageobject> - <imagedata fileref="../user_manual/address_pic14.png" format="png"> +<!-- imagedata fileref="../user_manual/address_pic14.png" format="png" --> </imageobject> <textobject> <phrase> @@ -510,7 +508,7 @@ <mediaobject> <imageobject> - <imagedata fileref="../user_manual/address_pic15.png" format="png"> +<!-- imagedata fileref="../user_manual/address_pic15.png" format="png" --> </imageobject> <textobject> <phrase> @@ -532,7 +530,7 @@ <mediaobject> <imageobject> - <imagedata fileref="../user_manual/address_pic16.png" format="png"> + <!-- imagedata fileref="../user_manual/address_pic16.png" format="png" --> </imageobject> <textobject> <phrase> @@ -556,7 +554,7 @@ <mediaobject> <imageobject> - <imagedata fileref="../user_manual/address_pic17.png" format="png"> + <!-- imagedata fileref="../user_manual/address_pic17.png" format="png" --> </imageobject> <textobject> <phrase> @@ -572,7 +570,7 @@ </sect1> -<sect2 id=adr-comp-add-adr><title>Adding an address to a company</title> +<sect1 id=adr-comp-add-adr><title>Adding an address to a company</title> <para> As you can seen in the upper left part of the menu, there is an option called 'New Address'. The same speech I gave about addresses and locations is relevant @@ -583,7 +581,7 @@ <mediaobject> <imageobject> - <imagedata fileref="../user_manual/address_pic18.png" format="png"> + <!-- imagedata fileref="../user_manual/address_pic18.png" format="png" --> </imageobject> <textobject> <phrase> @@ -608,7 +606,7 @@ </para> <mediaobject> <imageobject> - <imagedata fileref="../user_manual/address_pic19.png" format="png"> + <!-- imagedata fileref="../user_manual/address_pic19.png" format="png" --> </imageobject> <textobject> <phrase> @@ -628,9 +626,9 @@ of the menu the name of the address/location appears with a 'Change' and 'Delete' link below. </para> -</sect2> +</sect1> -<sect2 id=adr-comp-dell><title>Deleting a company</title> +<sect1 id=adr-comp-dell><title>Deleting a company</title> <para> Deleting a company starts with modifying the company by clicking on the 'Change' link in the upper left part of the menu and next click on @@ -641,7 +639,7 @@ <mediaobject> <imageobject> - <imagedata fileref="../user_manual/address_pic20.png" format="png"> + <!-- imagedata fileref="../user_manual/address_pic20.png" format="png" --> </imageobject> <textobject> <phrase> @@ -654,10 +652,10 @@ <para> </caption> </mediaobject> -</sect2> +</sect1> -<sect2 id=adr-comp-adr-dell><title>Deleting a company address/location</title> +<sect1 id=adr-comp-adr-dell><title>Deleting a company address/location</title> <para> Deleting a company address/location starts with modifying the company by clicking on the 'Change' link in the upper left part of the menu and next click on @@ -668,7 +666,7 @@ <mediaobject> <imageobject> - <imagedata fileref="../user_manual/address_pic21.png" format="png"> + <!-- imagedata fileref="../user_manual/address_pic21.png" format="png" --> </imageobject> <textobject> <phrase> @@ -681,11 +679,8 @@ <para> </caption> </mediaobject> -</sect2> - </sect1> - <sect1 id=adr-dept-add><title>Adding a department</title> <para> Adding a department starts with clicking on the 'Add Department' link in the @@ -696,7 +691,7 @@ <mediaobject> <imageobject> - <imagedata fileref="../user_manual/address_pic22.png" format="png"> + <!-- imagedata fileref="../user_manual/address_pic22.png" format="png" --> </imageobject> <textobject> <phrase> @@ -709,7 +704,6 @@ <para> </caption> </mediaobject> -</sect1> <para> We enter the 'Sales' department and click on the 'Enter' button. We are now able to clink on the 'Change' link to return to the screen we saw earlier but with @@ -717,6 +711,7 @@ this department (off course you are free to enter a completely irrelevant URL here but that is beyond the scope of this manual). </para> +</sect1> <sect1 id=adr-dept-del><title>Deleting a department</title> <para> @@ -729,7 +724,7 @@ <mediaobject> <imageobject> - <imagedata fileref="../user_manual/address_pic23.png" format="png"> + <!-- imagedata fileref="../user_manual/address_pic23.png" format="png" --> </imageobject> <textobject> <phrase> @@ -742,7 +737,6 @@ <para> </caption> </mediaobject> -</sect2> </sect1> Index: tutos_user_the_end.sgml =================================================================== RCS file: /cvsroot/tutos/tutos/documentation/tutos_user_the_end.sgml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- tutos_user_the_end.sgml 26 Jun 2002 20:35:25 -0000 1.1 +++ tutos_user_the_end.sgml 29 Jun 2002 13:26:44 -0000 1.2 @@ -2,5 +2,3 @@ $Header: /cvsroot/tutos/tutos/documentation/tutos_user.sgml,v 1.4 2001/12/18 06:36:08 gokohnert Exp $ --> - -</book> |
From: Gero K. <gok...@us...> - 2002-06-29 13:26:15
|
Update of /cvsroot/tutos/tutos/php In directory usw-pr-cvs1:/tmp/cvs-serv24998/php Modified Files: calendar_day.php Log Message: beautify Index: calendar_day.php =================================================================== RCS file: /cvsroot/tutos/tutos/php/calendar_day.php,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- calendar_day.php 21 Jun 2002 14:19:47 -0000 1.5 +++ calendar_day.php 29 Jun 2002 13:26:12 -0000 1.6 @@ -12,6 +12,7 @@ include("appointment.pinc"); include("product.pinc"); include("resource.pinc"); + include 'note.pinc'; /* Check if user is allowed to use it */ check_user(); @@ -97,7 +98,7 @@ $maxcol = max($maxcol,count($table[$i])); } - echo "<TABLE CLASS=single BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=\"100%\">\n"; + echo "<TABLE CLASS=single BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=\"90%\">\n"; echo " <TR>\n"; echo " <TH COLSPAN=". ($maxcol +1) ." WIDTH=\"100%\">"; echo menulink("calendar_day.php?t=".$last_day->getYYYYMMDD(),$tutos[image][left],$last_day->getDate()); @@ -109,7 +110,14 @@ # echo " <TH WIDTH=\"100%\" COLSPAN=". $maxcol .">". $lang['Appointment']. "</TH></TR>\n"; for ($i = -1 ; $i <24 ; $i++ ) { echo " <TR>\n"; - echo " <TH WIDTH=\"10%\" ALIGN=right VALIGN=top>". ($i == -1 ? "NOTIME" : $i .":00") ." </TH>\n"; + + echo " <TH WIDTH=\"10%\" ALIGN=right VALIGN=top>\n"; + if ( $i == -1 ) { + echo menulink("app_new.php?t=".$t, "NOTIME"); + } else { + echo menulink("app_new.php?start=". $t.$i."00&end=".$t.$i."59" , $i .":00"); + } + echo " </TH>\n"; for ($c = 0 ; $c < $maxcol ; $c++ ) { if ( isset ( $table[$i][$c] ) ) { @@ -119,11 +127,11 @@ } else { $class = "app"; } - echo " <TD CLASS=". $class ." VALIGN=top ROWSPAN=\"". $rowspan[$i][$c]."\">"; + echo " <TD CLASS=\"line". (1+($i % 2)) ."\" VALIGN=top ROWSPAN=\"". $rowspan[$i][$c]."\">"; echo "<IMG HEIGHT=1 WIDTH=100% SRC=\"". $tutos['base'] ."/html/black.png\"><BR>"; - echo " <TABLE WIDTH=\"100%\" BORDER=0 CELLPADDING=0 CELLSPACING=0>\n"; + echo " <CENTER><TABLE WIDTH=\"80%\" CLASS=". $class ." BORDER=0 CELLPADDING=0 CELLSPACING=0>\n"; echo $table[$i][$c]->formatted(); - echo " </TABLE></TD>\n"; + echo " </TABLE></CENTER></TD>\n"; } else if ( $table[$i][$c] = -1 ) { # SKIP occupied by rowspan } |
From: Gero K. <gok...@us...> - 2002-06-29 13:25:32
|
Update of /cvsroot/tutos/tutos/php In directory usw-pr-cvs1:/tmp/cvs-serv24648/php Modified Files: module_base.pinc timetrack.pinc timetrack_overview.php Log Message: more modularization of invoice module Index: module_base.pinc =================================================================== RCS file: /cvsroot/tutos/tutos/php/module_base.pinc,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- module_base.pinc 27 Jun 2002 17:28:16 -0000 1.6 +++ module_base.pinc 29 Jun 2002 13:25:29 -0000 1.7 @@ -66,6 +66,34 @@ } /** + * show the overview data of attached modules within the given object + */ +Function show_module_overviewdata(&$user,&$obj) { + global $tutos; + + @reset($tutos[activemodules]); + while( list ($i,$f) = @each ($tutos[activemodules])) { + $x = new $f($obj->dbconn); + echo $x->getoverviewdata($user,$obj); + } +} + +/** + * show the overview data of attached modules within the given object + */ +Function show_module_overviewheader(&$user,$objtype) { + global $tutos; + + $cols = 0; + @reset($tutos[activemodules]); + while( list ($i,$f) = @each ($tutos[activemodules])) { + $x = new $f($obj->dbconn); + $cols += $x->getoverviewheader($user,$objtype); + } + return $cols; +} + +/** * call parseform for all modules */ Function module_parseforms(&$user,&$obj,&$gotourl) { @@ -184,6 +212,19 @@ * (module)_new.php pages */ function getAddLink (&$user, &$obj , $text = "") { + return; + } + /** + * get an header for overview tables that shows objects of type objtype + * returns numeber of columns used + */ + function getOverviewHeader (&$user,$objtype) { + return 0; + } + /** + * get an data for overview tables that shows a line with obj info + */ + function getOverviewData (&$user,&$obj) { return; } /** Index: timetrack.pinc =================================================================== RCS file: /cvsroot/tutos/tutos/php/timetrack.pinc,v retrieving revision 1.36 retrieving revision 1.37 diff -u -r1.36 -r1.37 --- timetrack.pinc 20 Jun 2002 10:48:21 -0000 1.36 +++ timetrack.pinc 29 Jun 2002 13:25:29 -0000 1.37 @@ -317,19 +317,6 @@ return $msg; } /* --------------------------------------------------------------------------- - * Read the invoice - */ - function readInv() { - if ( $this->inv_id < 0 ) { - return; - } - if ( ! class_exists ("invoice") ) { - require("invoice.pinc"); - } - $this->invoice = new invoice($this->dbconn); - $this->invoice->read($this->inv_id); - } - /* --------------------------------------------------------------------------- * Checks if the current user is allowed to delete this timetrack */ function del_ok () { Index: timetrack_overview.php =================================================================== RCS file: /cvsroot/tutos/tutos/php/timetrack_overview.php,v retrieving revision 1.34 retrieving revision 1.35 diff -u -r1.34 -r1.35 --- timetrack_overview.php 27 Jun 2002 17:28:16 -0000 1.34 +++ timetrack_overview.php 29 Jun 2002 13:25:30 -0000 1.35 @@ -69,12 +69,7 @@ echo order_header("description",$lang['Description'],$link2); echo order_header("state",$lang['TTState'],$link2); echo order_header("",$lang['ProdCost'],$link2); - if ( moduleloaded("invoice") ) { - if ( $current_user->feature_ok(useinvoice,PERM_SEE) ) { - echo order_header("",$lang['Invoice'],$link2); - $cols++; - } - } + $cols += show_module_overviewheader($current_user,"timetrack"); if ( $tutos[massupdate] == 1 ) { $cols++; echo " <TH NOWRAP><INPUT TYPE=checkbox name=checkit "CheckAll2();\"></TH>\n"; @@ -140,16 +135,7 @@ echo " <TD>". $lang['TTStates'][$tt->state] ."</TD>\n"; echo " <TD ALIGN=right>". number_format($tt->cph * $tt->volume,2,$lang['DecPoint'],$lang['ThousandPoint']) ." ". myentities($tt->currency) ."</TD>\n"; - if ( moduleloaded("invoice") ) { - if ( $current_user->feature_ok(useinvoice,PERM_SEE) ) { - if ( $tt->inv_id != -1 ) { - $tt->readInv(); - echo " <TD>". $tt->invoice->getLink() ."</TD>\n"; - } else { - echo " <TD> </TD>\n"; - } - } - } + show_module_overviewdata($current_user,$tt); if ( $tutos[massupdate] == 1 ) { if ( $tt->mod_ok() ) { echo " <TD><INPUT NAME=\"mark[]\" TYPE=checkbox value=\"". $tt->id ."\"></TD>\n"; |
From: Gero K. <gok...@us...> - 2002-06-29 13:25:32
|
Update of /cvsroot/tutos/tutos/php/invoice In directory usw-pr-cvs1:/tmp/cvs-serv24648/php/invoice Modified Files: invoice.pinc invoice_new.php invoice_show.php mconfig.pinc Log Message: more modularization of invoice module Index: invoice.pinc =================================================================== RCS file: /cvsroot/tutos/tutos/php/invoice/invoice.pinc,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- invoice.pinc 27 Jun 2002 17:28:17 -0000 1.1 +++ invoice.pinc 29 Jun 2002 13:25:30 -0000 1.2 @@ -905,6 +905,42 @@ } } } + + /** + * get an header for overview tables that shows objects of type objtype + */ + function getOverviewHeader (&$user,$objtype) { + global $lang; + + if ( ! $user->feature_ok(useinvoice,PERM_SEE) ) { + return 0; + } + if ($objtype == "timetrack") { + echo order_header("",$lang['Invoice'],""); + return 1; + } + return 0; + } + /** + * get an data for overview tables that shows a line with obj info + */ + function getOverviewData (&$user,&$obj) { + if ( ! $user->feature_ok(useinvoice,PERM_SEE) ) { + return; + } + if ($obj->gettype() == "timetrack") { + if ( $obj->inv_id != -1 ) { + $obj->invoice = new invoice($obj->dbconn); + $obj->invoice->read($obj->inv_id); + echo " <TD>". $obj->invoice->getLink() ."</TD>\n"; + } else { + echo " <TD> </TD>\n"; + } + } + return; + } + + } $includes['invoice.pinc'] = 1; ?> Index: invoice_new.php =================================================================== RCS file: /cvsroot/tutos/tutos/php/invoice/invoice_new.php,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- invoice_new.php 28 Jun 2002 07:45:02 -0000 1.2 +++ invoice_new.php 29 Jun 2002 13:25:30 -0000 1.3 @@ -28,9 +28,9 @@ echo "<TR>\n"; if ( $f->id != -1 ) { if ( $f->ref != -1 ) { - echo " <TD VALIGN=top><LABEL FOR=\"del[]\">". $f->ref->getLink($f->pos) ."</LABEL></TD>"; + echo " <TD VALIGN=top><LABEL FOR=\"del[]\">". $f->ref->getLink(sprintf("%04d",$f->pos)) ."</LABEL></TD>"; } else { - echo " <TD VALIGN=top><LABEL FOR=\"del[]\">". $f->pos ."</LABEL></TD>"; + echo " <TD VALIGN=top><LABEL FOR=\"del[]\">". sprintf("%04d",$f->pos) ."</LABEL></TD>"; } if ( $obj->change_ok() ) { echo " <TD VALIGN=top><INPUT NAME=\"I-". $f->id ."\" SIZE=4 VALUE=\"". $f->items ."\"></TD>"; Index: invoice_show.php =================================================================== RCS file: /cvsroot/tutos/tutos/php/invoice/invoice_show.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- invoice_show.php 27 Jun 2002 17:28:17 -0000 1.1 +++ invoice_show.php 29 Jun 2002 13:25:30 -0000 1.2 @@ -30,9 +30,9 @@ $f->read_ref(); echo "<TR>\n"; if ( $f->ref != -1 ) { - echo " <TD ALIGN=right VALIGN=top>". $f->ref->getLink($f->pos) ."</TD>"; + echo " <TD ALIGN=right VALIGN=top>". $f->ref->getLink(sprintf("%04d",$f->pos)) ."</TD>"; } else { - echo " <TD ALIGN=right VALIGN=top>". $f->pos ."</TD>"; + echo " <TD ALIGN=right VALIGN=top>". sprintf("%04d",$f->pos) ."</TD>"; } echo " <TD ALIGN=right VALIGN=top>". number_format($f->items,2,$lang['DecPoint'],$lang['ThousandPoint']) ." </TD>"; echo " <TD ALIGN=right VALIGN=top>". $f->itype ." </TD>"; Index: mconfig.pinc =================================================================== RCS file: /cvsroot/tutos/tutos/php/invoice/mconfig.pinc,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- mconfig.pinc 27 Jun 2002 17:28:17 -0000 1.1 +++ mconfig.pinc 29 Jun 2002 13:25:30 -0000 1.2 @@ -30,6 +30,7 @@ # $tutos[modulesinc]['invoice'] = array( "product", + "timetrack", "installation", "company", "department", |
From: Gero K. <gok...@us...> - 2002-06-29 13:24:45
|
Update of /cvsroot/tutos/tutos/html/help In directory usw-pr-cvs1:/tmp/cvs-serv24244/html/help Modified Files: admin_show.html Added Files: admin_show_de.html Log Message: help now supports language specific files --- NEW FILE: admin_show_de.html --- <!--$Id: admin_show_de.html,v 1.1 2002/06/29 13:24:42 gokohnert Exp $ --> <H1><? echo $lang['AdminShow'] ?></H1> Die Seite zeigt eine Zusammenfassung aller für einen Administrator wichtigen Systemdaten. <P> <B>Was sehen Sie hier</B> <P> <UL> <LI><B><? echo $lang['AdminDBInfo'] ?></B><BR> Einige Informationen zur Datenbankverbindung. <LI><B>Table Info</B><BR> Daten zu allen bekannten Systemtabellen der Datenbank. <LI><B><? echo $lang["AdminLoginInfo"] ?></B><BR> Eine Liste der letzten angemeldeten Benutzer. </UL> <P> <B>What you can do here</B> <P> <UL> <LI>see a summary of all accessrights<BR> you can select <? echo makelink("help.php?p=acl_overview",$lang["ACLOverview"],$lang["ACLOverviewI"]) ?> to see all objects in the database and there corresponding accessrights.<BR> <LI><? echo $lang["AdminDBSync"] ?><BR> in order to make a synchronisation between two TUTOS databases you can select <? echo makelink("help.php?p=admin_sync",$lang["AdminDBSync"],$lang["AdminDBSync"]) ?> </UL> Index: admin_show.html =================================================================== RCS file: /cvsroot/tutos/tutos/html/help/admin_show.html,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- admin_show.html 11 Feb 2002 08:35:33 -0000 1.1 +++ admin_show.html 29 Jun 2002 13:24:42 -0000 1.2 @@ -8,8 +8,8 @@ <B>What do you see here</B> <P> <UL> -<LI><B>Database Info</B><BR> -Some information about type and name of the curreent database. +<LI><B><? echo $lang['AdminDBInfo'] ?></B><BR> +Some information about type and name of the current database. <LI><B>Table Info</B><BR> Information about all TUTOS tables that store base objects. <LI><B><? echo $lang["AdminLoginInfo"] ?></B><BR> |
From: Gero K. <gok...@us...> - 2002-06-29 13:24:45
|
Update of /cvsroot/tutos/tutos/php In directory usw-pr-cvs1:/tmp/cvs-serv24244/php Modified Files: help.php webelements.p3 Log Message: help now supports language specific files Index: help.php =================================================================== RCS file: /cvsroot/tutos/tutos/php/help.php,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- help.php 12 Jun 2002 21:04:22 -0000 1.4 +++ help.php 29 Jun 2002 13:24:42 -0000 1.5 @@ -10,17 +10,62 @@ /* Check if user is allowed to use it */ check_user(); + Function load_lang_file($dir,$p) { + global $tutos,$lang,$current_user, $HTTP_GET_VARS; + + # try direct with language preset + if ( isset($HTTP_GET_VARS['lg']) ) { + echo "<!-- try: ". $dir."/".$p ."_". $HTTP_GET_VARS['lg'] .".html -->\n"; + if ( file_exists($dir ."/". $p ."_". $HTTP_GET_VARS['lg'] .".html") ) { + include $dir."/".$p ."_". $HTTP_GET_VARS['lg'] .".html"; + return true; + } + } + # try direct with language of current_user + if ( isset($current_user->lang) && ($current_user->lang != "auto") ) { + echo "<!-- try: ". $dir."/".$p ."_". $current_user->lang .".html -->\n"; + if ( file_exists($dir ."/". $p ."_". $current_user->lang .".html") ) { + include $dir."/".$p ."_". $current_user->lang .".html"; + return true; + } + } + + # next try with preferred language of browser + $langs = getenv("HTTP_ACCEPT_LANGUAGE"); + + $tok = trim(strtok($langs,",")); + while($tok) { + if ( strpos($tok,";") > 0) { + $tok = substr($tok,0,strpos($tok,";")); + } + $tok = strtolower($tok); + echo "<!-- try: ". $dir."/".$p ."_". $tok .".html -->\n"; + if ( file_exists($dir ."/". $p ."_". $tok .".html") ) { + include $dir."/".$p ."_". $tok .".html"; + return true; + } + $tok = trim(strtok(",")); + } + + # try direct + echo "<!-- try: ". $dir."/".$p .".html -->\n"; + if ( file_exists($dir ."/". $p .".html") ) { + include $dir."/".$p .".html"; + return true; + } + + return false; + } /* --------------------------------------------------------------------------- * */ Function info($p) { - global $lang, $tutos; - if ( file_exists($p) ) { - include $p; - } else if ( file_exists($tutos['base'] ."/html/help/". $p .".html") ) { - include $tutos['base'] ."/html/help/". $p .".html"; - } else if ( file_exists($tutos['base'] ."/html/help/index.html") ) { - include $tutos['base'] ."/html/help/index.html"; + global $tutos; + if ( load_lang_file(".",$p) ) { + } else + if ( load_lang_file($tutos['base'] ."/html/help",$p) ) { + } else + if ( load_lang_file($tutos['base'] ."/html/help","index") ) { } else { echo "File ". $p ." not found"; } Index: webelements.p3 =================================================================== RCS file: /cvsroot/tutos/tutos/php/webelements.p3,v retrieving revision 1.122 retrieving revision 1.123 diff -u -r1.122 -r1.123 --- webelements.p3 27 Jun 2002 17:28:16 -0000 1.122 +++ webelements.p3 29 Jun 2002 13:24:42 -0000 1.123 @@ -89,10 +89,14 @@ * Language is determined by looking at HTTP_ACCEPT_LANGUAGE in automatic mode */ Function ReadLang1(&$lang,$path) { - global $lg, $tutos , $current_user; + global $HTTP_GET_VARS,$HTTP_POST_VARS, $tutos , $current_user; - if ( isset($lg) ) { - $lg = strtolower($lg); + if ( isset($HTTP_GET_VARS['lg']) || isset($HTTP_POST_VARS['lg']) ) { + if ( isset($HTTP_GET_VARS['lg']) ) { + $lg = strtolower($HTTP_GET_VARS['lg']); + } else { + $lg = strtolower($HTTP_POST_VARS['lg']); + } if ( file_exists($path ."/". $lg .".p3") && is_readable($path ."/". $lg .".p3") ) { if ( "en-us" == $lg ) { include($path ."/en.p3"); @@ -121,6 +125,9 @@ $l = 0; while($tok && ($l == 0)) { + if ( strpos($tok,";") > 0) { + $tok = substr($tok,0,strpos($tok,";")); + } $tok = strtolower($tok); if ( file_exists($path ."/". $tok .".p3") && is_readable($path ."/". $tok .".p3") ) { if ( "en-us" == $tok ) { @@ -901,7 +908,7 @@ * */ Function addSessionKey($href) { - global $lg, $tutos, $HTTP_COOKIE_VARS; + global $HTTP_GET_VARS,$HTTP_POST_VARS, $tutos, $HTTP_COOKIE_VARS; if ( strstr($href,"mailto:") ) { return $href; @@ -918,8 +925,17 @@ } else { $pre = "&"; } - if ( isset($lg) && ($lg != "") ) { - $href = $href . $pre . "lg=".$lg; + if ( strpos($href,"#") ) { + $add = substr($href,strpos($href,"#")); + $href = substr($href,0,strpos($href,"#")); + } else { + $add = ""; + } + if ( isset($HTTP_GET_VARS['lg']) && ($HTTP_GET_VARS['lg'] != "") ) { + $href = $href . $pre . "lg=".$HTTP_GET_VARS['lg']; + $pre = "&"; + } else if ( isset($HTTP_POST_VARS['lg']) && ($HTTP_POST_VARS['lg'] != "") ) { + $href = $href . $pre . "lg=".$HTTP_POST_VARS['lg']; $pre = "&"; } @@ -927,20 +943,21 @@ if ( session_id() != "" && (ini_get("session.use_trans_sid") != 1) ) { $href = $href . $pre . "PHPSESSID=". session_id(); $pre = "&"; - echo $href. " XXXX<BR>"; } } - return $href; + return $href . $add; } /** * print the hidden Form Elements * */ Function hiddenFormElements() { - global $lg, $tutos, $HTTP_COOKIE_VARS; + global $HTTP_GET_VARS,$HTTP_POST_VARS, $tutos, $HTTP_COOKIE_VARS; - if ( isset($lg) && ($lg != "") ) { - echo " <INPUT type=hidden name=\"lg\" value=\"". $lg ."\">\n"; + if ( isset($HTTP_GET_VARS['lg']) && ($HTTP_GET_VARS['lg'] != "") ) { + echo " <INPUT type=hidden name=\"lg\" value=\"". $HTTP_GET_VARS['lg'] ."\">\n"; + } else if ( isset($HTTP_POST_VARS['lg']) && ($HTTP_POST_VARS['lg'] != "") ) { + echo " <INPUT type=hidden name=\"lg\" value=\"". $HTTP_POST_VARS['lg'] ."\">\n"; } if ( (isset($tutos['PHPSESSID'])) && (!isset($HTTP_COOKIE_VARS["PHPSESSID"])) ) { |
From: Gero K. <gok...@us...> - 2002-06-28 07:45:06
|
Update of /cvsroot/tutos/tutos/php/invoice In directory usw-pr-cvs1:/tmp/cvs-serv10855/php/invoice Modified Files: invoice_new.php Log Message: fixed urls Index: invoice_new.php =================================================================== RCS file: /cvsroot/tutos/tutos/php/invoice/invoice_new.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- invoice_new.php 27 Jun 2002 17:28:17 -0000 1.1 +++ invoice_new.php 28 Jun 2002 07:45:02 -0000 1.2 @@ -300,13 +300,13 @@ echo "<TABLE>"; echo "<TR><TD>"; if ( $current_user->feature_ok(useinvoice,PERM_SEL) ) { - echo menulink("invoice_select.php",$lang['Search'],$lang['Search']) ."<BR>\n"; + echo menulink("invoice/invoice_select.php",$lang['Search'],$lang['Search']) ."<BR>\n"; } if ( $obj->id > 0 ) { - echo menulink("invoice_show.php?id=". $obj->id ,$lang['AppSeeEntry'],$lang['AppSeeEntryI']) . "<BR>"; + echo menulink("invoice/invoice_show.php?id=". $obj->id ,$lang['AppSeeEntry'],$lang['AppSeeEntryI']) . "<BR>"; } if ( ($obj->id > 0) && $obj->del_ok() ) { - echo confirmlink("invoice_del.php?id=". $obj->id ,$lang['Delete'],sprintf($lang['InvDelInfo'],$obj->getFullname())) ." <BR>"; + echo confirmlink("invoice/invoice_del.php?id=". $obj->id ,$lang['Delete'],sprintf($lang['InvDelInfo'],$obj->getFullname())) ." <BR>"; } else { echo "<BR>\n"; } |
From: Gero K. <gok...@us...> - 2002-06-28 05:34:31
|
Update of /cvsroot/tutos/tutos/php In directory usw-pr-cvs1:/tmp/cvs-serv15293/php Modified Files: note_ins.php Log Message: removed invoice include Index: note_ins.php =================================================================== RCS file: /cvsroot/tutos/tutos/php/note_ins.php,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- note_ins.php 24 Jun 2002 11:35:02 -0000 1.17 +++ note_ins.php 28 Jun 2002 05:34:28 -0000 1.18 @@ -17,9 +17,7 @@ include("bug.pinc"); include("task.pinc"); include("product.pinc"); -# include("resource.pinc"); include("timetrack.pinc"); - include("invoice.pinc"); /* Check if user is allowed to use it */ check_user(); |
From: Gero K. <gok...@us...> - 2002-06-28 05:31:30
|
Update of /cvsroot/tutos/tutos/php In directory usw-pr-cvs1:/tmp/cvs-serv14602/php Modified Files: company.pinc department.pinc installation.pinc product.pinc scheme.php note_del.php Log Message: removed invoice include Index: company.pinc =================================================================== RCS file: /cvsroot/tutos/tutos/php/company.pinc,v retrieving revision 1.39 retrieving revision 1.40 diff -u -r1.39 -r1.40 --- company.pinc 20 Jun 2002 10:48:20 -0000 1.39 +++ company.pinc 28 Jun 2002 05:31:26 -0000 1.40 @@ -76,16 +76,6 @@ $g_com[$this->id] = $this; } /* --------------------------------------------------------------------------- - * Return Info about invoices for this object - */ - function readInvoice() { - if ( ! class_exists ("invoice") ) { - require("invoice.pinc"); - } - readInvoice($this); - return; - } - /* --------------------------------------------------------------------------- * Read all locations references */ function read_locs () { Index: department.pinc =================================================================== RCS file: /cvsroot/tutos/tutos/php/department.pinc,v retrieving revision 1.39 retrieving revision 1.40 diff -u -r1.39 -r1.40 --- department.pinc 20 Jun 2002 10:48:20 -0000 1.39 +++ department.pinc 28 Jun 2002 05:31:27 -0000 1.40 @@ -74,16 +74,6 @@ $g_dep[$this->id] = &$this; } /* --------------------------------------------------------------------------- - * Return Info about invoices for this object - */ - function readInvoice() { - if ( ! class_exists ("invoice") ) { - require("invoice.pinc"); - } - readInvoice($this); - return; - } - /* --------------------------------------------------------------------------- * Read all locations references */ function read_locs () { Index: installation.pinc =================================================================== RCS file: /cvsroot/tutos/tutos/php/installation.pinc,v retrieving revision 1.49 retrieving revision 1.50 diff -u -r1.49 -r1.50 --- installation.pinc 24 Jun 2002 11:35:02 -0000 1.49 +++ installation.pinc 28 Jun 2002 05:31:27 -0000 1.50 @@ -426,16 +426,6 @@ return $msg; } - /** - * Return Info about invoices for this product/project - */ - function readInvoice() { - if ( ! class_exists ("invoice") ) { - require("invoice.pinc"); - } - readInvoice($this); - return; - } /* --------------------------------------------------------------------------- * Read all bugs of this installation */ Index: product.pinc =================================================================== RCS file: /cvsroot/tutos/tutos/php/product.pinc,v retrieving revision 1.69 retrieving revision 1.70 diff -u -r1.69 -r1.70 --- product.pinc 20 Jun 2002 10:48:21 -0000 1.69 +++ product.pinc 28 Jun 2002 05:31:27 -0000 1.70 @@ -486,16 +486,6 @@ return bugSummary($this); } /** - * Return Info about invoices for this product/project - */ - function readInvoice() { - if ( ! class_exists ("invoice") ) { - require("invoice.pinc"); - } - readInvoice($this); - return; - } - /** * Return Info about customers of this product */ function readInstallations() { Index: scheme.php =================================================================== RCS file: /cvsroot/tutos/tutos/php/scheme.php,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- scheme.php 25 Jun 2002 19:58:12 -0000 1.18 +++ scheme.php 28 Jun 2002 05:31:27 -0000 1.19 @@ -25,7 +25,6 @@ include("bug.pinc"); include("mail.pinc"); include("history.pinc"); - include("invoice.pinc"); include("url.pinc"); include("table.pinc"); Index: note_del.php =================================================================== RCS file: /cvsroot/tutos/tutos/php/note_del.php,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- note_del.php 12 Jun 2002 21:04:22 -0000 1.11 +++ note_del.php 28 Jun 2002 05:31:27 -0000 1.12 @@ -15,7 +15,6 @@ include("task.pinc"); include("product.pinc"); include("timetrack.pinc"); - include("invoice.pinc"); /* Check if user is allowed to use it */ check_user(); |
From: Jeroen B. <kw...@us...> - 2002-06-27 21:01:24
|
Update of /cvsroot/tutos/tutos/documentation/user_manual In directory usw-pr-cvs1:/tmp/cvs-serv15452 Added Files: resource_pic1.png resource_pic2.png resource_pic3.png resource_pic4.png resource_pic5.png Log Message: I know about the bindump but don't seem to be able to prevent it (even with cvs add -kb). sorry. --- NEW FILE: resource_pic1.png --- PNG þþúÑ]ùå^øáîËáìGÛ"¼wgñg3-}dæê§/ÄW¹ùÚ"rî¿YY¢ÜxõN1¥õ¥H1SÌÌVç_¼ªòè¢ôIëFrZ[Y×sÓEZRPjiåV£j¥`üëªæ ã̯կ^ºñê¥a}¦Ö¯Ifÿ'z¶$Mú´SÇ(emçÆÆ:¿¯q< ׫§\ð±qûº{d¶ýÈH3{·¯-ülKýöoÿFûéc3³33{{{_y4lúüxkù·nÇ"ÅýÅeÄ|kqÙ_:¸Ñ±N$ègvñÕ}jLÊ$©J^×åhIRÚëÈʱñ«GªNÊãÞò>%£IÝä7OêÛÃ?: w¨.S¬à¹zÁ¹ºïUS.¾¯ÛÁsûøzöo=«¸_r¼ ¼mr¿· ø o~çPîùz³´ê7KjC 1×| Jv_Y¤äjª«ñ«}xûºz>çj«iUÅïR Yð ¦Ëíjß rAOHº!Í ËtaäÒ i]hB3èBAÐ"i)O¶à¯ aoÅé4.Ó K7¤t¡ Í Mh]hB3¤¥<Gþ¤1!p5é4.Ó K7¤t¡ Í Mh]hB3 ¦ËyäOWnH3è2]¹tCAкÐfÐ &4£`º,ÌùKI7¤t.\º!Í Mh]hB3èBQ$-åaÎ_Jº!Í ËtaäÒ i]hB3èBAÐ"i)sþRÒ i]¦#nH3èBAкÐfL¥¢9Ngþ±ùùÎüücóN'G9óùZÂmw¶{ïÞÛ¼¿yïÝ{÷îßSéwïþ½»l¦ÕÞÔ{v¨{0µü|]p4/ßµú½ ÒóÍgÚb:¿î¦#¾MQpèà zåxSßÅ»PûªÈêÚtaHýQõ?¨ÖõYð<nû jßûÊSi³Ù*eI|ÂUÐ ÂA´dLl¿¿Ïwæ»Ýn¦rTíë->Øî ÙDäì3g#[©×ëUÙ¼v»½ÓÛ©¬Ëîow·õÍÇç7÷r¹{0Ó;п®æyÃW¸TZD~úm±ùól¿¿íøüVÐ øêªIê Öét¶»Û<)Â{°x¢Í®üM»s6]ÒgÁ÷ý_÷gAm÷÷B¤y®£PÝ{A7OZ¢:¥÷nvJ¦Í¡9"¥Í<ñßjúÿ¡þ2§ÝÙT_z½ÞNoGÿ¯òÄÇUZ-×åXÓuU½j¬Ñ|TÖåx÷y{04FÍuïw]Eº`mOwTZw!õ <¼½ÿLÅ÷N|À@D"Í3»`îÈOÛ¡îÇÑÝ1·|dÀ fÛ n·ë¶4ß$fSÒuaþ±ùíî¶¹¼Ûí:¶¶^ùë½Påg!)ÝívSôY¨ýd]î¹Goº|]p4;é£?#O;NTóFwM7Ûü¿HSõ%óÈ_î;ºê_PºÓéè4«Í_<|ît:ñZ~H8JÚ,÷7?y\=yõíÕãOWE©å÷7çÚs;?ßQ"VùÖm·Û«o¯üÍs[}{U5 2ä¾þíëñ._øÒ L]t߬Zo Çp"Ã9îwÂÁG˯ºÿééßµ\½ôÜÄüÙÛãç uUZ5[íÝÍx~ÇìÚP»àÞ#ß ºà¨ÎljôìÄÑ7z>/OX· {!þÞ.ØTw]¥ÈvÚW¡Yÿ5ëE1çüéå*%èX0éåÃþ_D6ÏS¯ª¨.ò£G{p÷h:²®ÍuUà¨^Uñ_]t?²¢ÞG©{0Ó;a»»=ßF¬¿±2uG¿Üù·ÞºÈ¶Õ¯êëò#RË?´Ü{$¾<¾"{$G³×=þáxDU~#ÿoóÍ[FÞ$Io³âÝ)½Ö£õsdíTío$Ï÷¿¹ô¯.¸§ñã¿þ¨JÂwcÝÊö£aºdw7K©·,S"²¿¿ßëõ¯,_}õªº@c^|aõUøÖ«ß ZA8ÖÃyEc>ØgÉÙæ>ypn<Ï\{NmÌÞZ~0Ï϶n¤sݹö\¯×¯+"ñåt¹ùiºÐ4]hBz]0'ÏhÆ`/Ð ìBX þ{áÅo?¾ôÒÒòå×Vx¶oÑYz_<¨éȺrÌuÕ`|]ëò ºÜütCAкPz±ç¹.Á^ Ø)Ïömм¥¤ÒºÐfÐ &4£i]QïÂìºOÏwæ;NäÿÑêBjº,ÝçotÓ i]¦#nH3èBéżõ`º0{.ÄÓjÖ É©Y{óJI%óÈ_íaoÅé4.Ó K7¤t¡ Í MhÆ$tA]¬l¿¿=]p¤¥<ÌùKI7¤t.\º!Í Mh]hB3&¤jü/òpêÑêBRZÊÿtCAéÂÈ¥ÒºÐfÐ &4crºóÅ.$¥Ë¿tCAéÂÈ¥ÒºÐfÐ &4.4¡ÓeaÎ_Jº!Í ËtaäÒ i]hB3èBAÐ"i)Oæ<×~Ãércg ÂÃgfDÒóÍo¿¿¥Ñét¶»Ûü¥¤Eä`</˺CÙ 69f¨w:n·ôu¯´ÈIûTÖ¾Ê2{3÷Ö/Ï<òWûðL´H#A³øO¸1'&ÉÏQß ÅomqöÙ³º4µd2?õî ²ÊÞ,²µ#Ëùkîÿ4¿T9À8ñÙ¼¿©*æ(xkç~eeÅúÒ~*ëÚe½ckǹ.øZA(£;#nH3hvÓ> Ö.¶o>OSüFæCrü?h©o3Ïw¦ûsáSo/D¤îøBC®d?ÆEm·©ÃÞßêZî]Î}þ¶ßßVñÁÁøÜáòN§³ÝÝVOUé Ì?6¿ýþ¶z¬êô 2ÓKsüOi¶ÇѶAì7«ÔtyÆ ¿P ÞÈ..T¥®ã=ïî^+ß^pôâËSCÃÉû=_Î}þô«åÃK;ÍÿõÕ©r8<£p</Õ «æÎsñª#ÝÑÿûwgÍölFîµÙÖKuz»» ¥G¶TùzºX¹#ºr8åÓ5iíÎFþâûE/IÚªñS¶îLÐ9é-d.·6ÀÚx7õrmúü9gfÍJãkñáô9í:ù:I]9иW·¾´z¦: qéÓxJ^-½©zv!SNÿ<©¯zn!îóªUä"-ÿURÓY[¢¿ù¿SàYKêá"µê¬{!rðã²ã¬rl̤åÅÃ>-Ç{¾´9]} éÑé\Öå§mÅæP_UÚ5®ÖéȺâ¾Î7ï¿ÜÝÑéxw²¶Á³ÙÝ£WXU»·ªµÙÖ½©fÇj]noµIù}º`~âxÚ½ÐçâwEIk5u̦ģ[LBÇCNÒðIíÁRjuÓ¼#õàÙ¨ÝZº¬=ígûê¹îüMhjtC1!ÍÎôA@ܾMÝ*Ù$ôMé|+àií{pç¹jg¡UnH3&¤Ù>¨ÿw^¾oÇÜ'|aØL÷7[Zª±ù¥QñvóÔÌVçîW9sþjù?2!Ìñ¿dó×ÿivÅÍ9«oÖÝ fþßÜ+++*qöÙ³Ï?ÿ|Ázuiù©¬k/e´öfWò}þìsþ¦Ù§3}êÕív§¦¦nݪ»!@m?yü _È´ÊÚµn·ûÂ/8¾³¦ÿÌOeí{¡,#±7soíøòù±¨&4cr=Z®,D}®ÝZ+±´È>©ÊÝe×½t!H9ÏömzZ²?Û· i]azD㿺 d}öìëùzûpñéÅß»ñú_m,ýá%5®öôgÖñÖÎÏwÖÞ^[üÌb_ä;ß~ýåÿø²^®æá "AK<õ×eæ\~:µ«'óøÆÆJ÷wûªGfB 766BS:-[áËÿV F¿Ük·/(ôù kCÂGþÎ>³("ÓLßùá¯o½¼øéÓýÁîì#ó«jÞá|¸£¯3äz?ßA¸³³³ñîÆ×^úêÍ7o üp7^`pxvëg[êZÚÝûrtÎiw|áøîØèÿhsúDÚÍÿYö>Ïá´ê÷ú÷××¾¿öµ¾*2û{ý]éÏÉ´Ûíõï¯K+ØúéÖL0óõËKÒm`vfVÕ>×ëõv\52çoâ¿;ëý==¼ÓÍït d¨ FÖ dµG'9TÓZ"¿Ò»Æâ||à$`äoô£}ONü¼p ð,Y_ÒÀOx× e7ñF1ò1êH\¾®éÅFÒ:õU9zñ{! ºÝ®î ®Âº°`-Öt¹â{$SïòíÐ|]Óã<5Çúª~É|Õº%Ò'F¬ËÝ/9¤â®J3&GúÈßb êoµ:Ç} ëeÎöÄdú¥È¤@ǽZÌU¬Õ9jT»4`l¿{TüÕ+*·@kñ^$uH-2Ì$íÏÞ¹whjÕ±kÖë7ò/ ÅxYjDèÈ¿µÂ¨PwWQêºÇ^Ú0®Òçü9îÕ¬c#õª-)m-Ĭ"R¦ApñÖ&Y«p8÷¦v_Éö,`-µ|uã¤c£!]cÀMÖx« mKùçü©IýËqF5uaY¼L½Ü<Ï_¨5Ôøøºf½ü0êÌÓ¾u·eÜöܦÔü3^¸;Ãèþ ôë3 Ä5¡kæ%æ?s!AáðD"9Çñ ÏKSLÍ0>úÕGýúÕÔ´ªlÃ$+t¿¤ñ³È»RÊôÉhµjºn·;55ukíV5Õ}öl¦ük·ÖºÝîw׬G@:RRº¿DÃH]h-Y§ÿPÕ·VënB#Ú0!2ó¡:ê2c¾WNd½d$_-ÖÒÊ* ÕS·©»v.2 #µhÈ h ÔQ½Qö[~³¢ oÃÈ6ògÆt)I*3~q®5g¼yñËS«fÎßèR6=øFÆRsÒêùw ãm¤Ã8 Õìïï÷z½å+Ë[{íÊ*ö®«þÆ+¢Æjþìi©»! »)#¸0QGâòuMÆé19sp.²Ð×Ïy5i! %Ëø÷߬üOM:rFNÇ©Ôr2¸KÈQ¾JXl>ÝÎ]¬»´ø6q4Ï¿ãIÛß!ÇtTá¥Ñü .ì èÃ÷´ïÜ}²ÅC½H ¨þ%yU¥ã«Xq¬îÓòrùÜS¥SÌ2Q~¨XJ3Aý§Æ¦Êa0:ö·ªWñ#s-GÚ!Uj>RÙZÝPGL³yG ïÈßΫ×f¿¸»r-wMf\^ÕikÂuøËMñQ4êEÂ,½Pç·u0^0 Ì¿8®¢MZ+ÎZ#C¼á±ÈÂÔòÝÝL©XÇ &I½,±VzÚ×ÁZ¯»N²ôàoîÅá ZÁîʵ¹/î¼3þË9ÖZüò²ÿ²MNäÏ´ÐüeöíÊÿxæ³7ÅõâV$ g+=8öÿ©"^hf¯b-ǽn¦<Ïz.±æHÈ}¥»Gùʱ_h\°µHüéhoîù;Fþ$ílÁó³ãwz×_$\³Æp I5³~I5Q×ÒWç 4oìE®á\鬫>!/r%²ù þÜwrvèqù JǸóGÒîÄÿÅcF*ÏÊzç¿aß°Q· O*G½{HÒÝG#·<ÌË¡YµpëÞH$ç.9¾ ¼¬Cnñ Öøp~ w¡û³Ü¾vyíÖOø gÓÿ"Ùd¿õÖËr9^2äÚôZÄ|(¢è?5·øåew`ä-wíÝIk9:¤öçæºçù+<ëqA pÅÙÿ(°9í Fþ âU9tUO&àoL$Íêhfuúgb5ügìy£ )R0~SëÊú¹[Êq¾ÜÅ/(Ý¡À¿ tàÐ)ÏüY+~̯¬{ªsÉÔ!kþø«ªÌ-2-oÎ3$n,ºS 3!øæéTÇïBóh]W3Wô«ÕÅ+³Ó¾ñP3ÎÈBâ? iGEa0ªý¼ùõY7BZ^Íý5amRL?ïõzËW·öÚu·v§?{ZDffgª¯º(ÍçÎñ<·¯]^»µ¹ÀÂú§ÿ<¼Èì=1.ïðÕÇ¿ëÐþØ4ÏöÅPÕú/ífÚÛÝ«» í¾s}饥å+Ë+¯0çc®à¿È bi3°³ÞVF/$ò&Jõg$ øàÆi_4Qê=ü<ï¶¹<)á($-¾Ü¬ÅzRØqÀXª% 6Fþ¢®£;°ã©n Á [é:°«¹ZÉHÇj=cØo&]7[YsØ/ÑJúO?2&¶Öí®zN©¹·ÝÖ°'¿¸/pqq±à-Êe\/ ±ïæùMs©r¯ÚNo1>ø7ôj¼p´:¶wÚtÜ5µ&ÆUãúÏ9}÷ùÛÛÛëO®ÿúêréþÐîÁÏEñÆOÞXº#«öÇß=½y~Ó5É[¥$°ÈvXyXaW£C;%2Â뿽¾÷ã{×_¾,¿<ÛÞ"âï.ý½?ùÅýÈÔêËo^>ºz´àÇøôñ[ÍðWðk §´¸ã64½úöÕÒ]ìÛ¯ÿäÃ'×\?ûô?rQ¥¨jÏé§3 ÅÕ SÔÿó¼þÈ×TíîînÚüg`o)Õr¾ÕD^¸À[Y&ü1¾³ÙJëQµÇu ÙVXCW ñW7§ÌEQ\=º ÷ß<¿)&}¶¯äÇ ìY-u¨Ý&Ï%3¼gV»x«uiß;Cñ£jªr£,ÃbñW~kÐú±o§ºmôÃ!sÂ;WƲÞíÞº»»zàv Âó¨~®÷þts@üÕ0¬L,õäYjït©ùªì_º¶[÷ÄVäðxÍÅÒ;&ö-"ý±½%Ó«ê=*^U%[£^üØq\¡Ö¿¥:+!üô¨MÆÇÕUÕ[mâdsê¶·;,ß×÷fµçþOïdÎ"Ï O~#^ çöeáìÌÂ:«úRõ>èoÚ¡uþÈN5Wn|ññ{áÈ\d»u Ïö%{Â$YÏ´imÚ7ñ¨õôåÒç[{'G¯â;¨Å3¬ÜÛÕÄ÷ÒûAÅûn§Lʯi¯RƾÅ_æc·,Nøv×Ì_sØ/ÑJú³iWñí*væµ[/;ÚÊ9Õú³xì5þع¡Wã 3¤Õ±½Ó¦ã®ù«51î¨Z°×Ò¸ÌÛÖ ñ^ª»A7mò¡Õ5á ðǾµfjg-3¥Hi%±äé{ÊíSúÏ §líiàó¼Ò¸Ï¼yÍßíííáp(D@²g?1zÏä(ey¹ k>±dSÖÐÔÏ»»»Zò+âx<ÇÃáðîÛ÷FtàDã>½ó# [EBL^ã"Ú ;P ûÅcßÕ£«ÃáÐÉ«ÖÒÕK\`¯yHø4¶ÂLüÀwâOZq,¬? CÕ|1bP+Âa±÷¥ÖÊ;YI¿Î¯ÌÂ/#/uKþÈQë£Õ;«áºrÏ|ªYssì0|©·ÂÚá]ou;ÒJä#jÝÙú¹¥TRn°Sükƾ®a?ÈðGvZsO$Õ|þ8ÒLWDD;[b%K}ÔìFÿ¢¸ztî¿y~Sx¶/Ùþ (ºsUµÙ -Å'{»¶7ÅT×Û ;ËØ×üLË áµÞxѺsUFÏ>7ßZ5´Ö5';õÎìI-ÏðBø#OÍðÔzÝÛJ>~øFàò,Ë:dm%9¯¹ ̯ëðÚ1VÒ?ÑáJ>|Üù#;aÒ /MwN2ØÖ»8_bùĪRw#^²ëÕA÷£¤w¦p·/À<?ö¯5ÇÄÛÍ»"Y$±Ä¤¿R ÷vÄ=õÄ?·Ä&Ä>ö ´rJ+Í?fîa¹Aߣø;% ? á}*íÛÜ$¸ßVÅmôüYrM!ümÉ«o_-Ý ¿øõÿ~°T? öÙo?¼g --- NEW FILE: resource_pic2.png --- PNG (P `Oaóå_¸yëæÊ+»,FËo,«Ù¼ÂæW=/]\z~ÉüýÓ=]ù´çÞî>ãNoßÓçýµù7¦*2}pêòg\þq9ùÝ|}SkÏ÷ʧ.ÄD_Ø5¦ I9Ô©Õ<^UÞ¿QËúæÄ·l8G³µóÙâÛMÙÏS F_ð¸F:Ñðëî$õz]Õ©ÿZÏnò7ðÿõ?h÷ß^·]×Õ§W+"qG~·Lzêò×W^¿sçÎë+¯×èMkÏ?un÷ó~° »¬OôæÔþyÌ+5Ì;³¹QS2,²w×:ÕÀöc!t%¾¹ìø=àIØ_<»#A%1IØÆß|ëzçýu (P `UA|v?ñ}ùæÖÿlyþ¬½ó{3ìT¾»xøü[½´ßßÓîNß{ÚÕiÇéWD\Iuq*ê£w3_[Úf©RÙÉKΫ¶x 1·Èkxìjf/Êdò&¯Yµ]ÖìÍmYo)obÂÅk#(P @ÁªOÐO8Ñ÷TpCUÿ~óßÿÃáÿàMü÷ÿnXÅNò§wøÃCÎÁjïÛîuªâ:§N|iöú{êÙC_©;WÜoøFh¥Ëo,ãÄ7^_y]=úê÷'ºaOye=ð&.h¾ËK{:xBWªæ_^:méüBØ'wèª aà sU{£"ùewéUù¶ª¾}dïæ Ý2¡}ñnÆÐ½écÞ¡1Ä$eÍGZèR±{ (ØWØ+ôoÓ¾2§¨ê+G¾¢OûʯDÖï»àcn¦áV\GÙ{fdjʸ8Rq6¶{#"N÷v_ÍNi¶ñÅÙjÄcíùÒAÝàEõ¯*h©Ìݧ ÏfPx :½¥ÁfÆ.|)É×oY¯dzÙÂ9óF0W^ÊÆ³ñÖÕn{ (XU½¼k;þí¿ÿ÷ä¯ü/_ñþ|Oùæ÷fP{GõÿíÜçOÅ:spºqpJÄu©Þ[Wf?ÜA¿ñmêõzÝã6w7/þfó-gÆWÝÊO_ηòÓ§B³@ýãYëjÚùXõ}¾g6¤QÏæ5FÍ%* (XWÐ,¿±Üô ¾\mØó+»=oúOQ=Ôè}ºí¼}q»7{¨1åÈÆí©{¦_>"§úÔ « Öü§¾lQû4JLÔë <rI É4aâÊ% &!P0hBÂÈY.Jê?)M <rI É4aâÊ% &!P0hBÂÈY. cþbÊ% &Ó+$P0hB e#OYÿrI É4aâÊ% &!P0hBÂÈSâ0æ/¦\0h2M¸rI e&!P0r2¢1Íf³~_½Þ¬×ï«7ÍõÔõ±¤ÛæÙÖß[¿yëæú{ëë·ÖUyÄáßZqõ²ÚÞê?[áe;PG¿T¹~_=Õóæ÷i?ۦȹ¼·ue8¨òïÁüMûAgñoÚ4aH¯ï¥üMu\¯ ïÛIÞ Æ¾$ð§ÊzØ#HTù¡ã\§âÈ eYdë£-oz½YoµZ©êQkO½ÞÜåí1,<¼àÛJív{á5N»3²&û¿ÕÚòn>^¿¯®ïåb÷`ª#0yLáå9àG¸TYDv¾&Ûbwçßgë£-ÃëwM.®BRX³ÙÜjmùæyɽó7ÁöȪÌMð½3¼iÓ!½ÿã~-¨íoþ\ð gz÷^ð¨Fy{Ä{JªÍ`<cþD$Jëó¿«yCýf,gSmi·ÛvÇ{TóûUYM÷ê -UëU}úq0²&:aºZO°¾¬áH0¯+OBÃKÒUö{ ny_ØúÉjìk3¿1ùS¯ÆÖþí6t]b=¹¬ÖÚç§ÊæÅU¨ú¿`¼²¾UaýÖº×èmõ÷Ö<pdáá/]6XNØdÕÿÚç¤ÉÁæ{[Rï·PûTß³zÀTÍÌp0èI¾Ã 6ÇÐü´ñd~MB [ߪ¿$Ïë+çË3jÄ6'Ø´24Á×ÃkD½Æ8TËð&lÞÚ^s½Pyú?2oßç ßm¢ö¯Qc?RíëÍÜ}«Gïx6<`|MÓëñ^0ì/l}ä Õ°Þ¢è>¾e}µùEö|Ôëñú$2ÄUÞ3x(å¢6>ÝWVóyà7¶ïÈG¼s¾èëÔ7*ß¼uÓ7=awúü25Ù×ÌнlØúÞO~$¨¯P#¾aËfsóÔ}«F 0ìz³nØ;弫VìA5ö©>óA¢÷sìéóy¶>ÚR7ýî¸%qEÄ|xË_;ÃÞ¾ 4TýqÏè´@^KøZ0ÿ¾ )%uÏߨÓÞKM¦ W.I4¡aÐ2aCÔÕÁÊÖG[ØCYÿrI É4aâÊ% &!P0,iêÿóý8õd5!ª,ÅaÌ_L¹$aÐd0qåAÊM(Cö4Á×ç7M* 11åAiÂÄKM(C4¡aÐ2³\ÆüÅKM¦ W.I4¡aÐ2AÊF²'õMÇ~Ãåbsg w¿I)}£ *çÈyksçÎ--- >eá«r\{¡(µ73lí ÓANÅqe§wgÊ% °Ë\NõB ¬³¨ªò0Qª½P`Cw®a¢¡ª<ÒníÔ=Ñ}RoÖë÷ÕÍfý¾zÔ<yÊõf]3ÔguùP¿¯mÙ´$Ü2y¶dΰõ$ÿn6Åöÿ_N¡ÏþýλíÀwvä³ûIÙ®|¢^i_MMÁè¯J«^öÂv/¤ÌBÓ÷Ðw]óDï[t/¨[»1êZ¶¶Z[[mÕõ»gZ×=3QhúcÎ&7]Qa×õ[Þ{̰%s-"ÞAÒjµÔyu[Ãíê¨.ÿWïÍ%ôÄ×]ÕýàÍõá¤ÞªôÚ_aC×eþî0`C%ÁùÕv0´(ôûwèZ|U¥jWp¶ÐròÊä Wj3jçO²F)b§ÄÒ_°É_¼ÞÍG¢^õðú¿É÷µ7%tkÄ©ÖuH$Y'Ã^Ò.(JÝÆElÇ|1cþDD¾ÕÚÒ»gÝ<Á>ÂвêÚQËzeÕ<_ç¹)CoþèëmJÒ¯ËǼévp«êj¯%ß; »0çmßU!é«-û B¿'ú¾ ~£M2%ßGÎ-1t?UT=Qïú³|÷-¤CH¡«K>1XUòv Î%aå±Uå3¬ä\aÙü;%(ô d)ß0ôÔ|_'|ÙÆÎp-QDòm/øÄîàÄ$o¹RÐ{lj»Øýä Dæ]Ì}þ¶>ÚRùÁNÿÜîôf³¹ÕÚR?ªÊNÅ©ßWßúhKý¬êݲץw_zÿW§!¶Nô7«NOÞ/ìJ¯7SØÞê¶m¸¼¾ Ùq¡2l̨éùÓ>Oc¾°1-ï ӽùB§ß¶/è\ïªÒví°Wö-+æë|³ùËܯlNÚÝÚ{ µ¾jóV ;tï¤j!ì`¨¡ÓCÇÃmfÔüI ¿/`Ù<1ÉÅæE-µo{d8ãÛö¶[¬/¨î±¿é´.çe±o¥Ú KÛ¢Éþm_o¬¡yþ2¡\0, ;Õ ¸fÜAM 7ÆróÖÍÒÖkߤø#Þn 3ªüÌí*fÌßX}Â~Ì_ {ÄaOå×Ç0fÉ?¹Taá sçÎå\¯W¯Êqí ¢LÖÞ̰µ ¾Ï_9Ë~Ì_Ê=ârª×ÂxµZ¼¾òú¸Ææð¿ðxªEV^_iµZ_xÜð¡¶6ï_;_cßE½yk§OpÏ }Qeð'KÔÅ ¬Í7 We¬b÷BQöëÞº¤ßö-{YÒÿ¶oÊ=Âòæã<C}áðªLh"6ÔDMa¿í[ærI ì MD|þ¯åa¾&´ß.yÆc~6[Âdn¤éË® 5ìù[xx^Dª«ko¯=½ùÌüÇúîôÁó«jÞîx¸½Ïh#äÚwdàv:÷6~øÄ×qÝ©8îín°Bg÷<ìæêZÚîí¾ìóç´;<{¸û7ýwnVçânæü{é}æúÖ1ÕîÕ7WWÞ\ùáOÊ`§Î~¯ß~Mj"Òh4Vß\³ùÁæ3õôSRw63=5Ö^kÔÚíiù³RÔwÍ ú>=lÙÎËÉðN¬ Í O2×VÂÌOL÷ùìüÊ ³{¨qx=É_Uª;¿1ÀÕwÇùùÊÕÝùCFØ TÏ_°Ñëùsüç+âÄÞÐÕû&âÓw÷ªÇÝmc þ=íR}¨"F 2æÏn¡g&kHM±ôÌ/8:Ûæ-ì'¡gHCÆä%|CïûFìÂrf~üy7¯§jåW«+ÿmED¦¿0]iÌÍÍÎ=xtjfzùW«úü+o¯hþèѹù?ß¼µÙÿ¬ßívE¤ßïo¾»Ù½ÝíïæE^ÙéGOw>í¨LËíõÖÞ^»ÛÎn÷ú+j)ýÚ~_nnÜì|Úqvûÿúý»=jÕïÎ;S\¹,W.6²ßíw»Ý×Vº·wû&«2ü#rãÆÙS£Êëë;K¹Ò½Ýu´k]×uÒ~ÿnoåò«zýó]¤5:}k}ËL7Ψ¿ñì'ê5eÎTfã{õÅ.¬!sù/ñâ £´zþ6ßßt¤ºüƲHÕqv®É=ò¥Ã×þ뵫/_[»·±ùîÆÜçíñ<q|þ'~""µspjö˳NW½7Çéü®+W~¬úùêéGNÞxçTù¯Ïo¼»¹±±!Ç©ÈÔfN>|âÆ¯oô¥?ûÀ¬÷ûÝ^ßq¤×u*k\ùo«'¾6/©~¾*¯VÿßÊ?þD®üâù_ÏËçµ±uWþeU*Nm¦&gùåªTç?öбv»íDîÆÆæÉoܼջòÚÊ·o8§6?ØtD©©£_ÛÝÎì³2p_¼rÕ»äèG£{þ"Çü%¼®^d9XUÔXÚàS(ó £NBû)SMö¥¨µ!kÍå· ¤M©B¸cþþþbÈìSß:åýçè6ÿðüüÃóeDôÍØý×2¸=sT%&Õª\xZDäãuù`Uqdæ°TD>ßÐcÖiwo9<à~1©DùK5ÊÕ0sh²ûFÏð.{«ß3Ûen±±IÄÐàCe3j½?f²µ°þ-ÑÐ!Ú=t`yz÷^-±vút}½Q1.úÝ/¶uæÅcÃ3¯ÔWÕðzp&æ·}º÷Ü{$~¶<ýý§Oë¤+räÁ°yÌ_ðh}ÍxO +D0wÙNW¯3ä[¡5+¶æÐàG`ØëW»q ~¦ËÁBè¿Qsæb~;Í6§Äµ.yÌÙV°ò"Çü!!Ó]¡Ç:æO%£écGB±'dtéãK5dØõzå¡5'\uN¾UNR×;Z¡¹þØÍË9_ §äÝ~ÈlßõüÐÚ[k×_½zò['#ç÷}þôK^9£ì½Oræ"TÔØµ2×a¯7á E½\ªýL¢¨ó³c f³®ç¯Ûét>ît;;7^g}ýuó"ëï¬÷?ë÷?ëëSÖßYü{9W.Ç}þ¦\u aËÖ!7}Y1aCÔPÂÉÅ'P^M£aQÏßüCóÛÛÛ2èK¥zþ»çq.ÿì²{ÛUSÎþåéÅ¿~Ú¹ßï?û7ÏJEÖÞ^k4ïn8â4fÏüí3ëïÿèû?RKÉ ÿç§ÿÜ+?ùÄÓ]Ð~êw¬÷ù£b$8RÂ<)áaäHpø³á,jªÃ;I ëVåá/yµïþ³úöêÓß_¼þþ õg/Î=xô+¿lÒgÿ¯]ùÙËÙYG o.ô?ëÿÙé?ùü+²úöª¨n¿??ýç§þã©_®,zÿ¦9}fãµÿòò¨><æ/xy ßdÑÓÐm±ÉDl A ÓÇØ3¬Z!óØÄ<ëFý¾ ÌÓ&»o}¶à[DèSì ü|·¨çODýG¿Z©º"Õ¸âîþö°#¾#wØ_ÑWMßGýNAú1¾$Qó§ ãeNùK;p0¹¢jÖIÃû`pælò ÖoNõxeãûÂé%XÁy ®ÿ|þصädQÏÔfjjÞñ£Ç/.]Z&"ç/üÜc+o¬HE¾yêÊÏ®¬¿·~í¯yV?_óß{ò±³]ýÙÕÅ¿^õ˹Çü¥:eèxH>?Æ.ø^0Î[C°ä}TIj6ϤÎ$K¥ ,§a×`ÄÒ~zÆ>%«e{¶ýØó÷þª|¸.W\C'dîî YG5ïð{îç<35%õëm®\{õZµRýÉ¥x¿2¬{Ýíj¥ºñÞÆNmÕ_}·~Û×JS´i1?|6óQÎwÀoUÃhT¥R} Øw=7^wSNIEäý ùùþOV¿µó!®¸¡ãð\©TÕ¯ÈöövÐÿ§ÿïd·Ï/;p¥RÞûü [ -cæ§¶kq¶{%ùáÙ¿<íVĪ+}i;òVÅwP£à½Rô×Ká«Hò,/F ùÚ Y# «/-ê=srh^NªÚàJõǨ`¢â }jHñ :ìø Âñv«O --- NEW FILE: resource_pic3.png --- PNG (P à^Õ×Wÿ g~mwÌ_âeßÇwníït? 7o?øì¼Ì߸zlzJ øÜË÷/Lªí÷Ög8J (Øo®üàÅïÞ\}}õÒóÄjåõ5.h~Õó·ôÜÒò˶äïîíÊÇ;áíî³áÌ{"¼w}áéÌÜ3}éá³ñE®½ð¤þÓ##S«Ï_Ðå33¢¯Dæs dÎèÌÅKj]þoÚ²9#,[ Îálí2"ÛÍ2Ѿxâö·T9 2½~Ïqb䥸<ª~yó~HOüåÍ_ZV±üÝ'ëPpÏÔΰ³³=%apÏôÉÏÏ_{gS½zèsóö%ðË'¿XéÊë+_>ùå×V_S#õkñaÒKºl~¢ë§Ïìýù+Uó¯,_¸º|áTÒç}âª-,HR`øSç/©ö¦5DbóËÞ&2«lUsûÈþ͸e'FâIÜ{3óÊò Ð(g®Ú}¢eKH (P @Á°_â^˾ÒO8_¾xôæ´/ýbjý>l0`þÞ2=öÃ@i·v@Dîíùü|ósóS)WU¶I#ö>wÕUÁHeî¾·²¼hyµÊ+4-73s÷¥¤\Cô²ºà²F3ÂbáeƬÂpÆ=\6Þ¸ÒílR @ ÙOßÛñÓÿñSýÏå/þ/_Ôÿ"/Eæ×3¨Êõâiý»ÏùS±¼g¦yÏ´HÓ;o\ÿ`Sú½æoþvóÄÁéùéé'î ·7~¾ùFp0RÝêß>#"oõoIÌÍi£«i7ó¤ ñ-)c|q5¦Í&- (Pp*V^_éõ{\mÐó+{=?^¢>v¨¹óñàÍ«ÍÛ;óÓl¼ß¾wºù £rÏô3IµU`åïEäÔA¿ UÆ$ZD$i}Úýhsæ¾y (P @Á^è¼}·çOÜè¼ÁÍtÙ7üiG>ºüª3Û%NO/?pÒqM µòµ$¶=^OâvH[Yg±fÖ©9ñ¿ªEfäiKæ&JX°GR¹Ìµß¡ ¼«Û>ÌkÊå÷µe;8nKÏî±éÔÓ²ý%ËAXæ°)|lðÀ ©Ñx;ýöi[íø¿þêùSæZsív[õäé¿ñ1j©°FÖ¥ÞíKùjLIC¦§§]ÍõA+}édËÇpåieZP ¶¸a&ÁæJg8`tâ`"Ë¡Â%] I`Vk«½'ãm¤ô,ßhØC?¨ 7!r:xÓ¦ :\ÿQjûÛ?"áÙÞ F½txÒÕ(½GtØCHTrål£ó'"ñTÚ'þ]Mÿè7xÙ>jK§ÓÙîlë¿jx_ *«éºÄ²eYµ^Õ×hCkr¼ùóXö`hôËZûºÊ4!1<樲nBæ<¸½?§â{'Þa "ðÌ&{'òÕv {Á²GtsÌ-é0¨$ìjÐn·-ÝæAbVZæîÛjoÓÛí¶ekëéSXï aiåv»jÚ¹0ò)qºã)¿é5ÁvÚ©¿"/[.ç@7Mmþ-ªe½UÉÝóW8ã§®úA$nµZúÍÝïjûç/>·Zx¾HXªJÛ,7ß½yøÁÃê÷W^_9üàaU~óݳÍÙí¶Õ¦ÕüiË6Í×W~þèì}³+¯¯¨ »ê&oÊÜiå¡5!ùtKßÚi§°sç.§§9=-TÝd˹3ÂÉ2ݾGÔ½"ë-Ñý£ßm"ÓOUó473ñ³cx{ÁíÝ©PSÊauù߯üy\½Ó ýP}¹ý)³}ïjæü%Siýn«ëÒóÛ«×Wô?sz³ÙT}ª¬¦zôT³Ù<üàá×WT=zêÜNDT¶¬úåÙûf·;Ûj~uù¤Ï~ýl¤Ég¿~6o#Í7@è½cO7Ù,Ûö{3s5Á,GÆs$ñSD"ÁÛ? &Hd`}ÕzË'm#ý2è½¶GÌÓ3~ªê½Ø´Â1o:zãñÄì#ÔM0ß-ÙÌǾµÍf&¾-m/´ÛmµýÍÞ£ÌÏ¡ç\È»G"'òÐÞ2ËñwÌ/±<´½à~¾Õ¾®J~ÌÙg&¶z*!ý{¡$öùí×RÄÆüé>¼xsvgèl«²«g¾ªr» è.½´e#ÓÝ7ËÙ¯Õý }~M4ßürc6Y%P£_öíGB®fº7Á\$2ªfîþ9K ͱ6¿@<¹1áÈÑ¡fÊ ý%5óoBöAU1ª|·o#ï92¢&$·[»ÂS¸Â½î ɲîè}dvÇ5ªÉ~.dÿC?"Gxâ{~<¼È»ÐV{Ëì#O«shR|ËGÂ6÷HP3ÏÍòF<æO[í-óÛmâºÄ:z¦pY7±ÏOí«PÍ1ñ&è²¹UaýÝuݨ7Ëú;ëG<zêÑS:L\6^vl²êÿKìósir¼ùzKýj{Ö¸À«ó¯Ëw¸ÄæX7Âç%Ô̰ͽ©úKÊ_%OÏ´=ÙxÓêÐHs,ç:F8TËò&lßÚº9ñ^¨2ý ·@äóB¬ï6iû+Ò¨H¹öHÉõn¹ Õ_}<ÛÃ0¦uy/XöÛÜ#eBµ¬·*CzÎ_dÙHm¿"û¾Jõè>1¤÷ Êùd ´ÍbNÕ<G<ªÇö}ð¨¾æ«¨Q~As³¨òÍwoF¦;6y·Ï¯P#ÍLÜË=hî}÷#A} òó,[Þ~0Û? &[5-TǰçZs½SϧjeT#0êð$f?Ǿ>¡7aëÃ-uèéwÇ-I("öD/k?w½"@b¨æß}£Óbuê&×ð\°ÿ ¬zôôAÿËiEõç©WUVùңݽλ¿YVåæ²*qT¯ªüoM4?² ÞG{0×°ÕÞkÍ ¢ ß±r5Göù·ÒE]CdÛêWõ}ió=RÛ?´ì{$>=¾"{¤@Økîÿ°$·aοæacÁ^·eä I;ÌÊ7§ò&$¾Û$GùäxüûHxÃiýí4þþ¯OUIùL±,;´½` L×lof%ëʹsçN§ÓYznéÒóÔý²<yñÉWWTáÅç_AØÆÝqE_ÞÝgé³ÍÞ·{¯n|Ùæ¬ÚÛm5}w_Ò²zÌeg³N'¾¬Ä§¡Éõ/Ó:iBÊh9xnL0{&xذDþ÷äÅ'5->µ¸ôÜÒòËü¶oÙQz_|=PO7Ëe#õ˪Áø²ÓÐäúkM¨C4¡òj%ÖÏ1vM½@<lTßöѸ¥kM¨C4¡aÔ "2îM½@âå¹Ö\«Õü¯&d«2¤çüo¹&aÐd0våA*¯¶ä£ëÐ Ø4!^V£MæHÍWI¹*¹{þFö¹\0h2M»rM u&Ô! îV¶>ÜÇ&XÊRÆüekM¦ cW®I4¡aÐ:áITÿ_äǩǫ ie©cþ2Ê5 &Ó±+×$P0hBÂð§ >¿qlBZ¹*ùË(×$LÆ®\0hB u&Ô!åª0æ/£\0h2M»rM u&Ô!P0Ê¥:¹ò<ò',W; , ì íHH UuHëoãÞJ\`kW3æOÝK²õáÖV{këùÖ\åÝ3ív[wÏaù·d쮪°çZs[^ÿ-°%K-"ú i·ÛêH-¼ºöV aÇvuT×<Óï#i*ê-ÆìüõLwùÎjıøüêÐÒ¢ÄïÍkT«]ñÙËîg~Þ[ßbö²¥¶øÄÌ'muóúËM eæ ë~òê(Uõñxó¿îǸå3³\kI<BW¤ØÚr?¤¬Ø1_Í?1§oµ·Ìîx7O¼0±¬ºvÔ²º¬é³w#è 2ÿFz\£{¹ ìn aÇ·ªùWí5÷½ãØ éÞ2ªB2WX ßb2×U¦HkqèRcåŪ°ªø<ñ¸Ël@G¼¡|«?78ñÌ-&^çU2綯7íÕM±¤{ûâOZ¶¼yV2ÃÐTûn¬nEecþ¶Ú»òÌ#½Y6ÿê>B1úÍr»Ý¬+±{l¹:Ï,åÄæÝbô!éÍ"û»E1æ/më¥uTð[UÏY>ls̹sã;:sËÇ·¶.·ÛmÝ/¨ç×g»e3ºK<å,ý¹ªÒSjò|ýÕ}ø¢Tkø!¹_&ÄâeäJÅîì7èÕ Ôúùd íÇIâA¸È7E_ðÍÜþiooËuxG5;SG¸µ+þm_Õ1é1ÒïnµY³~]¤¾½x=f\bl"©/YO¿»êýeóHÍÕÛã"íl#aK&mU³« °EDw+¦mmèö¾èK³_Ð/Þ|ËcÙ¦j? 4g a'Þ¬Ë[íÈ ï_ËÄÌzÜ·Ôy¨döÿåºÚk¾yÆß-ã+ªdÇ%*°1Ó¦Oû´Ç|ecþÚúÓýù§ß¶/öC}WiÛ¸wX#Ëý>ߢcþ 7GãÍÉcØíýwX«¶oÕİ÷N®&XÂ8=q\`<Äf¦ÍïÒóDZñ²}¢ËÍö¥-5rÝB¾M*¶ÛÐ8qÒºOF~VÒ94y7]ÉÛ82ß<kµ[+·EãýÛ¾z¬¡}þ:Z \0< ;×à¹;IFÔ`»¡\×[GcüÛ¾»Oî(´ak'aç:08îo|&b&ºùîÍÚÖib¾*y»9ªgTåÙÛUÍ¿ü³üücþêð°öØYyueÔ! §;uþüùëÕµEøyVj/Te¼öfWñsþêYücþêP&ì!s£Õn·8ðÚêk£Ã~òâ¹Y}mµÝn?yñIËbÞÚôý<+G¾ª2{³ðÖOã?ú¢ê?a´;¤Q«¯VX[d ge¦j÷BU&uo¦ÝRÍoûÖ½,ùÛ·eÂbyLó¿Q A(áÒÿõ¬~ýÆõíw·þ/Mý»£"¡|5zçólóð¹¯7¥!ß~î»ók>qo¬_ûÑêÆ»OÿÉ °6?×¼ô·¶om"ç¾úøá#EDz" ¹ô·{¦/\¼ "¿´}k{áN,¨Ê×ÞX$%<v쬾rU%»ú2ÕÚá )ìÓ`G«/Áþ¨Ã~èx_n¨#¼;n/F`j¸;OÆÜù ±wè&NWÄï³ä[5T+³æÄà@±y8eà¡øg½/$þ7mδr±h]Öî2ÝÞ:÷Ô±òRÇüÁí©Ð#ó§Aº:ÆHæYNbsô¥YybÍ«Î\¹xZ?¥KÓ ÇùkÚ ufÏZ\Æüå8èn5Ï$=S°LýåÓ¾Ç: E°ó«4äÙÿúìÝó #Tü²ïÚËê_|¢}¶Ä²*ÿu©*q>xæôCê9E¾øñî¸$^¶ÓýpªðÝ¿Ù0{æ,åļTµñÓI'ñ%{ü½¶asK¿cÌo2ZþßyWMª7.ß^Äí¼G%«µÌ¸F{%@% >êÅìÿfâ¯jföÚr\£Òz2òv´|çÚ/±äp5¤¿ÚÚ¿ã:ÎVxí²ûRñPãϵ㪺L¯v½}©»>sñò3TN;BÚ7"çWü¼s9åUY¿Ýoj-3§-:ÿPâ¿ðaQ,+óÓIþd~ægýs¨Ì§þ¨«¶Ú4yß×Òæ73J.¸~Õ-þ%>Wl.Ü%ósI¿X®´PIb7Ð,räG.÷ÓÍS3ÏPl +\äó¿Þ3òêÕþÇWb®f¿ë~Ö=~(_ÄÓfÐå ¿+ëoÞñ õHÕoëÞãSÃ.½8ïTue¿®?+9Áô.ä¸ì«2´<7'è"ìð×8¾2Ï»,RxÕCû,Äeßb"×nª<þ 3¿bëªpñ:gTu TrÆOçJNðú¼ËaTð¿ÈMÌ;Oá5N»1Ê×ió·þ2ÒFOYáa75¿Xî2©O|TÃjý¼+|V&ÞÎU¬ªÊ+â ÞðøËëñ°³%foö¥ìkôùYvwg|ÈÄÈ(.û"ö1ñaOyGãEZÇ'V²Hµe¤âÏÜËiÌ=Ø×¯Íåq\W®ªìQ¹×oÞ\¬!#<-ÈÄ0,Õ¢,×g¥D`®Ë¾îkä²/äܹs§Óé,=·´¹Óu<HvüKÇEdzfzÔ¸Ô^" ib6о4óî{ ¦# Ó*éË©ÈòV^]á ÊØ}l§ÓYznis§9êxìøÈôÌô¨A¶7.?³úÚꨣ äIZU¥l6*ÞÀÄJÊÇ $[°ÄfOg]jpYoÞÅãó49#óPÙ=³ÏÍ|öâ¹îòåJúÿ³®ÈDÇÌ,>[á'º ¬ÿkv¹t¹¢Ö=[ ÎÃÒ®ÆhTºl»Ç0èÍ iסûÜÓLÅ0¥õÙ»é#dld0§'Þe¹ì@ìÉßÚ×I{)í^ø£U ÄTàJk®Eâ?ã8«æFWÚè½\3ÝAX&{sÉÿH s¡«âgû>Ú³225ñ7BXf¼Uý?ýÔåz>$%þ8DÅZ1+ÅñAÖ~O«J¯Å¥ÏÏ~eNËzý(ÆýLO<7Gx¶#ü\f|ã>ʬFåO:Ò÷RDæOI+3'V^&Ú4°Ymä×^ãÏII{kÖ¯U%®¥Àª-³IéÉIÕÚ/sfÙëQèç;÷3=í¼N|Äc^OO$ðë¿íç/Ï?×-ñoúú¦y¡3>13û/n>·9q-&óéÍ·ÂdùÈ#,÷v¸]^Í5Ñ}6{ÅÖ5aÒR7szâõ¬ødÐß4 L´L¯Dä0¶ó95 ¬hC*9Æi~òË'ÇëcõµÕv»}õ½QI3¦gÂy1<Cîtºc^ô4_µLý½kg¸ØïöÒÝlia¸´±@ä_[ Çàã¡p^`b;wît:¥ç6w£g¼ ®÷îøÈôÌô * ¬Â²È³Oüî·^úiüoºFRx£éÙ_îa KÌ y u÷XÞ` $ õìÄ*³¤¢FÕsË ñÞ>Õ¨f / k//=srb^IªÚøJÍ¿iÁ¤ÅøÒâ Ô#$ glY~Èvòÿ¾"è¹NõÖ óûùÝìnóçËÎîÕjuÉÑ Ë øZ° --- NEW FILE: resource_pic4.png --- PNG jT¥ù21¦æFCFÕ¸ãñx¼{ç±Çc'3"vŦæ};7Y¤t8ÖÓUß^GÂKÂçsßÝn·ÛíÑÂÂÈ·µ·õãTd87|ª»¶~adÞ?ö÷éYs®æÏ Ä£_új¡#¦ó{í½ñx¼×Þsò/·ç¥²Qol½×Ø"sJ©'ã»"G¸:7·¯´pbºÎ½Ý¾EbbÂÌhDÝï»Ýﻦÿ¯±ò¯ÈÏì J¥R©TÃíí]I½:t¡Äì°!§W4åÙcç©c¹cD)s§¹±ÓÜ ÃÌÖXõ#²µtÊöîõqb^[AÂKBe8ª»¯ýö5"z|üØoµ·Ø"2?.þÉÚmÔ^]dfõ¼§Ìgµ×«»ßuDéâÅj¹@|DøÕÚU[§ýÖÕÚÕ½öøkòoE¶Î#·K c"ª7¶ÁNs£þ<¬mëP?ôÖ¹¤AÔ±ÊêÊ*=úö±ÕÆû°ÊÅ?)s¡Ø.Í\o?éêóSÎØì.Ëï¼Z^ÿ]U«jóKZéeÆ ¬öçOLð%D¢þ5ü [ÍVsãù®<»Ýzc³ÞØT«$vRñêùlÑk4Ú²«æ;¥_lËï¬#á%a=e¨ùèG¾yd3~6Ù[4Yü¬®¬:ú7M Ë/pF¬:W¦b8#FvÔ×#"68ÒbµôzU»Xuaè7É#=´7[Í^Ì<ÝûbÐë 11a+¬¾¹ºúæªck/ÂXl¦"½aðàë¾~`>iMDD'§:#ÆG¼X`úÜ<ñѸ~:èè:¸ÞïÏ8-UéâüNI³õHDª¬zxÞØË »j¦VíÞÑXÍwrnråD½±i26X/iU$¼$TøSÉÞéRÄGüàðOu×ÖÏæ½:`DZ±È¹Î.éO;E¢>¨1jëc¬ß+³"2vîl»'=¸d¬öNÆNîîÁsàe¬rðÕ)ÇÖ^¹º2e|u`>óYÌVêþ©®sâsórU'ÒOõk£~óÁÑÑü/:íÓ³ÞáOºãÓÒ¬ogoÈÄmù?"á%¡ÒÚo GCͦQÛäÚ¤£»_ .-jú¯}vG;Õ«ZÑѽâ\Q{c .ÿú+³óZÝ$¢úûStgÒ+U$ܽÿÞ3Ö&y¼±ÆZ£èìÕµIb0X~öýÔqb¬\,6jϦ9N5Áf¡ÞëÕ¢ý¦ÁRÊ'Ïw)ÕÏ iû_öhÕÇèÈ z°moÜÛ!S©H¨»îÇN4vÊQ3mÓÞ )/nÕX3®wÚZy¼@ÛjE8èJÏôî]ø½Ði¡J¥"1Ý;Ãv*ÍáÇåXëIÆ. Ó:wq¥^a¦F·&'.Õ³ýxaªT¯Â©nþï¥ÛxübóÓÛukB<¿*9Å·WQàR¢BÀÛú¡gk¤":ÏÿñyðçKîTÒÆjæÝO3Z1ÚN§ÖÝ[ߨ |tgñGo m§Ë!MÚ'ãAJ½[{ü e: [§è¶ø&a÷¡%§&'þ.ÂÇÐÙû^Â.Ü." ¾âèâÁ4©2e]çTªNõâÊ:LhfFîGy©:Ý=ñèpÚǦ]à´ÌÑx<îõz·6ý}%½Ç9i°4±¯sÂ2l¶!"ìÅ` 7ò3LÿÀ&\BèÖ.¯±ÃÂ#la,µHº"~À0 'Ì t·ÛµÕ÷7n&%LÕ-Lµ ÃÀ4I@ --- NEW FILE: resource_pic5.png --- PNG (P ¦°þÎÒâ+/®Ý^[zséòóÅjñÍE5.h~ù¿4¿ðÂ-øûÇûÚòiÇ¿Û~Öºs_]D¼nÎ|´:Y©ý9^äúOÈÉï¿¢\{þ¼.ºÐúB$®1SÌ#ºpYÍ£«Òÿ[60gdKËæhçp¶vÿ <B;²®qÙ8 íi[f¾ùë`n@óÁ_ì¿û¼©ÃeóNûöú^]Mô<&ú"]ß?ÚkߪL ÜÚÚÚ·oöT8f~_{þüµçÏúC7qùdÎa\ÄÒp4µÃÙÚýòbÈ ¾UäüõĽäûÛÁbVSuÿ¬gç²ïàeßÿCÖêS_ªo~¸þ¤_×ÓgnÌð¦<Ï«ß7uèõà&ûöí{cé uþ»oß¾±ë²ïµ ó"rêÜåðU0Ëf!rNS`ûJ"×7³½qSr,WIúƵÁ²UûfA{ÏQyÖ²i³µR¡@ ÒÖWw]öm}°,küO ÙÑüMUXûp-p·õAKÍ©çÑË6ÿG3rþ@åæ*ôü©.û¶>XýSþë^×ûïRò¼nEÄL·gbºú9.r#:R +iBÕ4sªO»ÜÏ&2é+í§òA¬ES§4 (P ²`êöº)'^ Ïc©êýµ÷>ô°øþÚûUlfZðÄôöOtnùÎæøÞþÉ_¾þÞºzõà¦TÄï/þ7O|3²ÒÅ7¿yâo,½¡þê×Âý¨tÙü°×gûÅÝÑ@äJÕüç¯- "WmaéEܧ̻¬ú× Í/;Ȭ*°UÍí#»7oähOäfÜ=h©ÇrX:Ø (¤/H@oç_âDýR`^è¥PU_=òUsÚW|5¶þÀ Ôýï7}ßô{¾'T¼Õ;ϯ}·+§§¾<]ÿÒôDÌcíÂÁdNýWOë{/ -.ÌY^Í¡ð MfOÃÝL\$ýRÒ_Gô²ºffó5/®Íá`_Kú¾fK\põÆÕvk (PHYÐ÷vüò¿ÿRÿKsÃÇWÿÍWõ¿ÀKùõªr½x «7®ÈýSõý"¾çMvn\þh]zÝúúQýøÉ©éÉÉN§óÄ}~ýÃòîúü¯×oxÕ-ýÝE Ä|Kw12 4?tTÓväAÂ3[BÆðâiÖ7C¸XV÷jx]ÄUh¯*}³N4·¶=·×-kåERv<}Ô (¤/ß\ìöºXmÐó+;¿·®^8z°Þùô÷öµúÝÎôÁú¤'«¶&ï¬åì¼ø©U[ÿ~NDfÿ|²/ª©2& eo¶?Yº (PHSh½{/ó'éèLÞàæºì þ´ÃÜò~Ûªö|ñ¼H¹& ÁÌùÆFsÃ>äZjÔ6>ÞÐsªOáðRZö»}{róÿ»9ußTÊü_X\¢.wÒ(\Oxuæß8Íf3éÑóéLK9åÃÉ Òó'¶6q6s>wJäM²Ë·YY[!}kadÛÂKuØØÛfß°Em t`´ÌÑx:'§#óÂcþÌ9Ãù?Ë¿@·1øû½tïvýïû~òÌYÑG²%(ÐÅå×3é·^~ kKÅÓ\¶¨}§ÀÃFÆê<=)0æÏÌÉé_ ó'Æ?S ÿ7æOÝ)²kÁjüb@>_Tuý+vH~Bð"ù>ÈS^§NSyù<b¯×µ ³$®q !¦å ïpÂ@DÍ3»`îÀWÛîËÑÝ1·| aPH³íB³Ù´¤-ÍÄlj\yh]¨=PÛhnÓͦekëéSXï aqåf³ØÔ¸saäRäô{¤ÿM¯fǪá+á²åRÀp¤p×t³Í¿ý4Õ²Þ¢dÎüå¸Ã¡«þf¥þBsï»ÚîùûF¸_¤D,UÅmµÛk:¤~yñÍÅCRU©ék·×ªõêæ'jSÊjþ¸eëõúâG¾|¤zuñÍEÕ@Ê'®|õ§WÃ]>óÝ3ºè¾¹j½),{ÐßIáÒ9ö#aûÔJ×ÍL]õLß5]HúnìüÙÛãë`äÞ1¿y«²j¶ÚºáùÕ<f×Úû¹w 5äç9Y¶¼ý`¶w@]0·j\SS6»Ö¨YöN9ªxPüÁ`*a?HÌ<Ç®Çл°ññ:ôô{ãÄûA¢µ;Þ ²©æß]£ÓBuê.ð\°ÿ í²¯B³þ5êE1Çüé骬¿%è9!°Ê0ééþ+"â6Êç©WUTøÒ£Ý¾Î»»XVÅæ²*pT¯ªøo]t?° ÞG{0Ó°Ñܨ5jèBäw¬LÝÑÇ}þÁí ¸CQר¶úU}AÜüfF*pûçö}§÷B`ähöຠó$ð1ÌÓ9ð×<lÌÁÛI[¸Ã¬ÿîÞ ÈwÈó(²S#?Rÿæ>ÒÞpº`; ¿ÿëSUb>S,Ëm/X¦k¶w³õelmmµZùKó¿¬î'XäÉO.¾¾¨ />ÿ¢WñüïUî+Úóåí}?[õþí{uÃóTëUµ17[júö8¿¨eõËVëÕV«^VDÂÓÐåòéBÊt¡åAtÁ<7¦]Ø{.8Ø¿øïÉO¬{jnþÒüÂü¶o¿£ô8¿ð<z, nËê1UÁð²ÓÐåòKÒºPfР«Pc캰ö]p°R~Û·DãJR.I3èBAÊвuADƽ{`/Ð p¹Ö¨5ÀßñêBb¹(CzÎßøKÒºLÆ®\fР«íóÑeèÂØt!\V£MæHÍ7¯rQ2gþFö¹\fÐeº0vå4.¡t¡Íp¡êî`eããqì¥,ÅaÌ_B¹$Í ËtaìÊ%i](C3èBáHTþ/ðãÔãÕ ¸²1 å4.Ó ±+¤t¡Í eh;]äüƱqå¢0æ/¡\fÐeº0vå4.¡t¡Í ehFå¢0æ/¡\fÐeº0vå4.¡t¡Í ehF?e)Næ<ü } ô¿q)|£ þ"³} ?>rb`zd é)å{CI\ÊÀ°Tb©¹À·¿ÄuõSI 黯ªç[j@ì|°æÜÅýlÀD ?78òÌÍGL¹Ô¡v`ñ¯æØ5ù¶Îö ´lyó,d¡)öOÉÝÂÆüm4·/ä#½Y6ÿ꡹C³Ül6ë¬ÇÞ¶LÉ3K9²;fSÞ,²;-:1q[/®¬» ¸Uõý7ÛógîÜðNÜòáËÍfSçõüúl·lÆô"O9Kþ SUzJb qús"±KyáÆ\Äò¥¿Î¦¯°X9Þ#ïÅðãH(pñÒPOyÑо/"¤ÈEF¾OõßÄí÷Æø¶\1©#ÜÚÿ¶¯J2Fzñ]Ãv/kÖ¯ËÛ×c&ä"Û&ûeðô{«Þ]6ÔLÙ¦Ä6¤\$°íÍØQ[Õ,gê¥Ù"¢Óq[[$¸=¥':aiæÍæ »o9`,ÑTì@¸¶ð7ݸï¾Y?N²Î&?g^ÊTyQ²6ÀÌU/ߤ>ë[¼ð«ZD³>ïËù³³v9ÎP{ZºÏ¤Ï½ºK¹1¸»Ü[»_ø¨=PÓ9¤ÜøxÛw§[ô_³~]$Nª©õÚÛ¦{ɲHd#Ãåíkâù²=v-®;9Úf6³ê¯NªÙ·jdwâ¶yú.XWI`¥»º³{¸æ9gcç¦@Î/² Zø@ÿ×,_IÍÊs\{ï°õñ¯Ä¥ÒüôÓÄ÷ß2Ó4,å¹?Òl±È:û<ôâæñf9öroÀ4Â7 6ÓØ}UçØ¿8óíË^xzbhèÜÇ|1ÏùÓ¯Z¦7vní4ÿê»Se'=£R8)oÕ Îç«tGÿMßA4;e3rtg ͼ Y7 Ík4áùÃËöÿ¿Ü_FÍñÈ9ÈôÞ/ Ùqrl̸éý}Zc¾°1M}éîá\Óï Û ô{¾¾«´iÜ;¬ËeÅ~oÞ1¹»£ËáîdmCÊf7wßam®Ú¾U#¹w2uÁÒìpS#§G7#²qó§éy" OpÙ>1ÍÍöÅ-pÆBsݳǶ['.}2òs°äÐHdÝt}ÞÆøæYªÝZ¸¬=ïßöÕc íó¡©9Ê%i#ÍÎt" ´¶¢ºQcíVZ®·)ñoûn?yn¸£ÐY.I3iv¦nJÿÑËt¤nÀµÛk¥-Ñ Ç¼ÝR*g«úgïW1cþFò70 ÌòW²ù+Ã_=äfÅ×GÝ`ÄÒr/,,¨Âìã³çÎës½º¶ ~Î_9Ë}Ì_Ê4{ÈåLçÂh5Í}ûö½±ôƨ̡=yáÉL,½±Ôl6¼ð¤åC1kmú¿n#ßE½{k§qæÏ \TáN³ÇKÜÅ ¬-0 ³2Q±{¡({uoÆÝRÌoû½,ÙÛ·e=ÄòÆ£n0~zâpV¦4j,Oa¿í[ærIA³K^ þn¾79ªv ¥ÍT9|hʸüÓ¼ç?ÿ=«¦ß¼usóöæÿó¥{DÄoï|®Öýn]*ò£K?þRý³gDdeuåú«K«·×þó~ϯ©~ùï.oÞÙôEÎ~ûô¡ÃDDº"¹üw½ýç/ËÏ_Þ¼³9óã3ªòåËx¾øG¥×®©ào[O&* ¬ 81áÌßÌ£3wîÜ^W*ç¿ÞïòO.ûw}5åì¿?=÷×Ïè»ÝîþÓ¤"7ß¾Y¯×Wß]õÄ«O×ýÛgWÞ[ùüZJzÝ?;ýgºüôSÏ<qÁø©ß>ç<ù^~dI þÇaQ_QG^8´ 8^Q5m?YÀ4ÛÊh&[Â*ß'uhí§ÿM?âZúäPæODªªjÞñ£Çç.HµZóÎ?yî¥7¤"³ß:uå'WVÞ[¹öO×ô_óùôg¸ú«s='ê?úóidkÊûÃÓ¼2¿Y¤ñÃ3$Ö®$ýå×45ÛgHSg¥Ò¬ÎíÅ ÍÑ ß7VÎì¥1T<yO¤·.u©Üév?¨ú¿9x@z¾lv6Óù{ú/>sö¥W¯û"§¾uª>]×sv?ë^~ᲺÛ×ó<©È껫RñÔÕáÍO6«÷WïÕË? ? ³\ðHÉÁßX|/Õ0PEE{t{á[Nðµ· xÎß¿ÇóÁMc$ïI9Smq¯fjFÙâ¾|ró û~÷¯¿ë~Ö-ª6 ã* pÄi3Ï_:w¶î·}SÒ)½¬Ñ¹`8A91ò¿ s· ¶Ï eªy -W"¯U ?¢"ã<Ëtûº§ö²o\èfN¼^^(pXæô7B¥?È8ÌìÇdäD] Ç-঴}«RE~eòâ©%ò+°9)á]2äcwñܳÆôU8n7eó7Ðvh ³¸,}°] Bdòµ¼ÓîÜ8 Cä üÓÓíK¥X¬«°,òìùw@Ýhqû+} CØ_ 'ô@У'F&¨Ôtµ*ç·¬7q¶ÈVÌôÎùéÿÆ%ÿâ)ÐËüͶlóÄUL¿e g7@'ö³.KÎL¿Ù¼ÈV NúÙ£ðömµU5¯òà cþ0"ìLÚ álJªÈ 7uÐí |
From: Jeroen B. <kw...@us...> - 2002-06-27 20:58:13
|
Update of /cvsroot/tutos/tutos/documentation In directory usw-pr-cvs1:/tmp/cvs-serv14483 Modified Files: tutos_user_resource.sgml Log Message: somewhat finished for now. Index: tutos_user_resource.sgml =================================================================== RCS file: /cvsroot/tutos/tutos/documentation/tutos_user_resource.sgml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- tutos_user_resource.sgml 26 Jun 2002 20:35:25 -0000 1.1 +++ tutos_user_resource.sgml 27 Jun 2002 20:58:11 -0000 1.2 @@ -5,24 +5,146 @@ <chapter id=resource> <title>Resources</title> -<sect1 id=resource-new><title>Create</title> +<sect1 id=resource-intro><title>Intro</title> <para> +One of the nice things about TUTOS is that it is possible to allocate resources +to things. You could as an example allocate the resource 'meeting room' to an +appointment you are planning. This way it is clear to others that the meeting +room is occupied during a specific period of time. </para> +<para> +To create a resource you first click on the 'Resources link in the upper left +part of the menu in the main appointment screen (as shown in the next picture). +</para> +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/resource_pic1.png" format="png"> + </imageobject> + <textobject> + <phrase> +The main appointment screen +</phrase> + </textobject> + <caption> + <para> +The main appointment screen + <para> + </caption> + </mediaobject> +<para> +This action will bring you to the resources page where you can see a list of the +all available resources (meeting rooms, beamers, laptops, company cars, etc.). +You can see this in the next picture. +</para> +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/resource_pic2.png" format="png"> + </imageobject> + <textobject> + <phrase> +The main resource screen +</phrase> + </textobject> + <caption> + <para> +The main resource screen + <para> + </caption> + </mediaobject> + +<para> +Clicking on the 'Meeting room' link will bring you to the Resource Detail +screen. Here you can select a number of options from the menu. +</para> +<simplelist> +<Member>New: Create a new resource item. </member> +<Member>Modify: Modify the current resource </member> +<Member>Resources: Return to the list with resources. </member> +<Member>Calendar: Go to the calendar </member> +<Member>Note: Add a note to a resource. Notes are discussed in a separate +chapter but you could as an example make a note about a resouce telling people +where ethey can pick up the key to gain access. </member> +</simplelist> + + </sect1> -<sect1 id=resource-show><title>Display</title> +<sect1 id=resource-new><title>New</title> <para> +When the list with resources is displayed there is also the 'New' link in the +upper left part of the menu. Clicking on this link will bring us to the next +screen: </para> + +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/resource_pic5.png" format="png"> + </imageobject> + <textobject> + <phrase> +The new resource screen +</phrase> + </textobject> + <caption> + <para> +The new resource screen + <para> + </caption> + </mediaobject> +<para> +As you can see, two fields are displayed and of them the 'Name' field is +mandatory. But you are free to add a descriptive text as well. +</para> + + </sect1> <sect1 id=resource-mod><title>Modify</title> <para> +When clicking on the 'Modify' link in the upper left aprt of the menu we are +presented with the following screen: +</para> + +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/resource_pic3.png" format="png"> + </imageobject> + <textobject> + <phrase> +The modify resource screen +</phrase> + </textobject> + <caption> + <para> +The modify resource screen + <para> + </caption> + </mediaobject> +<para> +Here we can enter the name of the resource and a longer descriptive text. </para> </sect1> <sect1 id=resource-del><title>Delete</title> -<para> +<para>In the upper left part of the menu, when we have the Resource Modify screen +in front of us, we see the 'Delete' link as part of the menu. Clicking on this +link will give us a variation of the by now familiar message box. </para> +<mediaobject> + <imageobject> + <imagedata fileref="../user_manual/resource_pic4.png" format="png"> + </imageobject> + <textobject> + <phrase> +The confirmation message box +</phrase> + </textobject> + <caption> + <para> +The confirmation message box + <para> + </caption> + </mediaobject> </sect1> </chapter> |
From: Jeroen B. <kw...@us...> - 2002-06-27 20:57:48
|
Update of /cvsroot/tutos/tutos/documentation In directory usw-pr-cvs1:/tmp/cvs-serv14345 Modified Files: tutos.sgml Log Message: Changes order of chapters. Index: tutos.sgml =================================================================== RCS file: /cvsroot/tutos/tutos/documentation/tutos.sgml,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- tutos.sgml 27 Jun 2002 17:34:26 -0000 1.5 +++ tutos.sgml 27 Jun 2002 20:57:44 -0000 1.6 @@ -5,14 +5,14 @@ <!ENTITY book1-login SYSTEM "tutos_user_login.sgml"> <!ENTITY book1-address SYSTEM "tutos_user_address.sgml"> <!ENTITY book1-appointments SYSTEM "tutos_user_appointments.sgml"> +<!ENTITY book1-resource SYSTEM "tutos_user_resource.sgml"> <!ENTITY book1-projects SYSTEM "tutos_user_projects.sgml"> <!ENTITY book1-tasks SYSTEM "tutos_user_tasks.sgml"> -<!ENTITY book1-bugs SYSTEM "tutos_user_bugs.sgml"> +<!ENTITY book1-timetrack SYSTEM "tutos_user_timetrack.sgml"> <!ENTITY book1-installations SYSTEM "tutos_user_installations.sgml"> +<!ENTITY book1-bugs SYSTEM "tutos_user_bugs.sgml"> <!ENTITY book1-files SYSTEM "tutos_user_files.sgml"> <!ENTITY book1-notes SYSTEM "tutos_user_notes.sgml"> -<!ENTITY book1-timetrack SYSTEM "tutos_user_timetrack.sgml"> -<!ENTITY book1-resource SYSTEM "tutos_user_resource.sgml"> <!ENTITY book1-the-end SYSTEM "tutos_user_the_end.sgml"> <!ENTITY book2 SYSTEM "tutos_admin.sgml"> <!ENTITY book3 SYSTEM "tutos_prog.sgml"> @@ -47,14 +47,15 @@ &book1-login; &book1-address; &book1-appointments; +&book1-resource; &book1-projects; &book1-tasks; -&book1-bugs; +&book1-timetrack; &book1-installations; +&book1-bugs; &book1-files; &book1-notes; -&book1-timetrack; -&book1-resource; +&book1-the-end; &book2; &book3; &index; |
From: Gero K. <gok...@us...> - 2002-06-27 17:34:34
|
Update of /cvsroot/tutos/tutos/documentation In directory usw-pr-cvs1:/tmp/cvs-serv14649/documentation Modified Files: tutos.sgml Log Message: removed some warnings Index: tutos.sgml =================================================================== RCS file: /cvsroot/tutos/tutos/documentation/tutos.sgml,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- tutos.sgml 26 Jun 2002 20:35:49 -0000 1.4 +++ tutos.sgml 27 Jun 2002 17:34:26 -0000 1.5 @@ -1,19 +1,19 @@ <!DOCTYPE set PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [ <!ENTITY gokohnert "Gero Kohnert"> <!ENTITY book1 SYSTEM "tutos_user.sgml"> -<!ENTITY book1_intro SYSTEM "tutos_user_intro.sgml"> -<!ENTITY book1_login SYSTEM "tutos_user_login.sgml"> -<!ENTITY book1_address SYSTEM "tutos_user_address.sgml"> -<!ENTITY book1_appointments SYSTEM "tutos_user_appointments.sgml"> -<!ENTITY book1_projects SYSTEM "tutos_user_projects.sgml"> -<!ENTITY book1_tasks SYSTEM "tutos_user_tasks.sgml"> -<!ENTITY book1_bugs SYSTEM "tutos_user_bugs.sgml"> -<!ENTITY book1_installations SYSTEM "tutos_user_installations.sgml"> -<!ENTITY book1_files SYSTEM "tutos_user_files.sgml"> -<!ENTITY book1_notes SYSTEM "tutos_user_notes.sgml"> -<!ENTITY book1_timetrack SYSTEM "tutos_user_timetrack.sgml"> -<!ENTITY book1_resource SYSTEM "tutos_user_resource.sgml"> -<!ENTITY book1_the_end SYSTEM "tutos_user_the_end.sgml"> +<!ENTITY book1-intro SYSTEM "tutos_user_intro.sgml"> +<!ENTITY book1-login SYSTEM "tutos_user_login.sgml"> +<!ENTITY book1-address SYSTEM "tutos_user_address.sgml"> +<!ENTITY book1-appointments SYSTEM "tutos_user_appointments.sgml"> +<!ENTITY book1-projects SYSTEM "tutos_user_projects.sgml"> +<!ENTITY book1-tasks SYSTEM "tutos_user_tasks.sgml"> +<!ENTITY book1-bugs SYSTEM "tutos_user_bugs.sgml"> +<!ENTITY book1-installations SYSTEM "tutos_user_installations.sgml"> +<!ENTITY book1-files SYSTEM "tutos_user_files.sgml"> +<!ENTITY book1-notes SYSTEM "tutos_user_notes.sgml"> +<!ENTITY book1-timetrack SYSTEM "tutos_user_timetrack.sgml"> +<!ENTITY book1-resource SYSTEM "tutos_user_resource.sgml"> +<!ENTITY book1-the-end SYSTEM "tutos_user_the_end.sgml"> <!ENTITY book2 SYSTEM "tutos_admin.sgml"> <!ENTITY book3 SYSTEM "tutos_prog.sgml"> <!ENTITY index SYSTEM "index.sgml"> @@ -43,18 +43,18 @@ </setinfo> &book1; -&book1_intro; -&book1_login; -&book1_address; -&book1_appointments; -&book1_projects; -&book1_tasks; -&book1_bugs; -&book1_installations; -&book1_files; -&book1_notes; -&book1_timetrack; -&book1_resource; +&book1-intro; +&book1-login; +&book1-address; +&book1-appointments; +&book1-projects; +&book1-tasks; +&book1-bugs; +&book1-installations; +&book1-files; +&book1-notes; +&book1-timetrack; +&book1-resource; &book2; &book3; &index; |
From: Gero K. <gok...@us...> - 2002-06-27 17:33:41
|
Update of /cvsroot/tutos/tutos In directory usw-pr-cvs1:/tmp/cvs-serv14373 Modified Files: Makefile Log Message: new (moved) invoice module Index: Makefile =================================================================== RCS file: /cvsroot/tutos/tutos/Makefile,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- Makefile 25 Jun 2002 19:57:42 -0000 1.14 +++ Makefile 27 Jun 2002 17:33:38 -0000 1.15 @@ -10,6 +10,9 @@ # # # $Log$ +# Revision 1.15 2002/06/27 17:33:38 gokohnert +# new (moved) invoice module +# # Revision 1.14 2002/06/25 19:57:42 gokohnert # fixed docbook pathes # @@ -64,16 +67,23 @@ # PHP = $(PHP_TOP) \ - $(PHP_GRP) + $(PHP_GRP) \ + $(PHP_INV) PHP_TOP = $(wildcard php/*.php) \ $(wildcard php/*.p3) \ $(wildcard php/*.pinc) +# CRM Groups Module PHP_GRP = $(wildcard php/group/*.php) \ $(wildcard php/group/*.p3) \ $(wildcard php/group/*.pinc) + +# Invoice Module +PHP_INV = $(wildcard php/invoice/*.php) \ + $(wildcard php/invoice/*.p3) \ + $(wildcard php/invoice/*.pinc) LANGFILES = \ |
From: Gero K. <gok...@us...> - 2002-06-27 17:29:43
|
Update of /cvsroot/tutos/tutos/php In directory usw-pr-cvs1:/tmp/cvs-serv13075/php Modified Files: company_show.php department_show.php el.p3 en.p3 es-mx.p3 es-ni.p3 es.p3 fr.p3 history_show.php installation_show.php it.p3 ko.p3 product_show.php Log Message: new (moved) invoice module Index: company_show.php =================================================================== RCS file: /cvsroot/tutos/tutos/php/company_show.php,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- company_show.php 24 Jun 2002 11:35:01 -0000 1.33 +++ company_show.php 27 Jun 2002 17:29:39 -0000 1.34 @@ -13,7 +13,6 @@ include("appointment.pinc"); include("bug.pinc"); include("timetrack.pinc"); - include 'invoice.pinc'; include 'note.pinc'; include 'file.pinc'; include 'installation.pinc'; @@ -48,9 +47,6 @@ echo "</TR>\n"; - # References to modules - show_module_infolists($current_user,$c,$cols); - $c->read_departments(); $cnt = 0; @reset($c->departments); @@ -104,12 +100,12 @@ appointment::infolist($current_user,$c,$cols); # Notes note::infolist($current_user,$c,$cols); - # Invoices - invoice::infolist($current_user,$c,$cols); # Files tutos_file::infolist($current_user,$c,$cols); # Installations installation::infolist($current_user,$c,$cols); + # References to modules + show_module_infolists($current_user,$c,$cols); # Project Roles if ( $current_user->feature_ok(useprojects,PERM_SEE) ) { @@ -153,6 +149,7 @@ } echo note::getaddlink($current_user,$obj); echo tutos_file::getaddlink($current_user,$obj); + show_module_addlinks($current_user,$obj); echo "<BR>\n"; @@ -160,7 +157,6 @@ echo menulink("note_select.php",$lang['NoteSearch'],$lang['SearchForNote']) ."<BR>\n"; } - show_module_addlinks($current_user,$obj); echo "</TD></TR>"; Index: department_show.php =================================================================== RCS file: /cvsroot/tutos/tutos/php/department_show.php,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- department_show.php 24 Jun 2002 11:35:02 -0000 1.28 +++ department_show.php 27 Jun 2002 17:29:39 -0000 1.29 @@ -15,7 +15,6 @@ include("product.pinc"); include("bug.pinc"); include("timetrack.pinc"); - include 'invoice.pinc'; include 'note.pinc'; include 'file.pinc'; @@ -67,9 +66,6 @@ Show_LocFields($lang['Country'],$d,"country",1); } - # References to modules - show_module_infolists($current_user,$d,$cols); - # Project Roles if ( $current_user->feature_ok(useprojects,PERM_SEE) ) { $d->readRoles(); @@ -104,10 +100,10 @@ appointment::infolist($current_user,$d,$cols); # Notes note::infolist($current_user,$d,$cols); - # Invoices - invoice::infolist($current_user,$d,$cols); # Files tutos_file::infolist($current_user,$d,$cols); + # References to modules + show_module_infolists($current_user,$d,$cols); echo $d->getHistoryLink($cols); echo "</TABLE>\n"; @@ -139,6 +135,7 @@ echo note::getaddlink($current_user,$obj); echo tutos_file::getaddlink($current_user,$obj); + show_module_addlinks($current_user,$obj); echo "<BR>\n"; @@ -146,7 +143,6 @@ echo menulink("note_select.php",$lang['NoteSearch'],$lang['SearchForNote']) ."<BR>\n"; } - show_module_addlinks($current_user,$obj); echo "</TD></TR>"; Index: el.p3 =================================================================== RCS file: /cvsroot/tutos/tutos/php/el.p3,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- el.p3 20 Jun 2002 10:48:20 -0000 1.12 +++ el.p3 27 Jun 2002 17:29:39 -0000 1.13 @@ -760,55 +760,6 @@ $lang['TTRecord'] = "Time recording"; $lang['TTfinish'] = "Finish"; -# Invoice -$lang['Invoice'] = "Ôéìïëüãéï"; -$lang['Invoices'] = "Ôéìïëüãéá"; -$lang['InvoiceCreate'] = "Äçìéïõñãßá ôéìïëïãßïõ"; -$lang['InvoiceCreateI'] = "Äçìéïýñãçóå Ýíá ôéìïëüãéá ãéá %s"; -$lang['InvoiceCreation'] = "äçìéïõñãÞèçêå áðü %s óôéò %s"; -$lang['InvoiceName'] = "ID Ôéìïëïãßïõ"; -$lang['InvoiceCustomer'] = "ÐåëÜôçò"; -$lang['InvAnyUnpaid'] = "all unpaid"; -$lang['InvoiceState'] = "ÊáôÜóôáóç"; -$lang['InvoiceStates'][1] = "íÝï"; -$lang['InvoiceStates'][2] = "Ýôïéìï ãéá áðïóôïëÞ"; -$lang['InvoiceStates'][3] = "ðñïò ðëçñùìÞ"; -$lang['InvoiceStates'][4] = "Ý÷åé ãßíåé õðåíèýìéóç"; -$lang['InvoiceStates'][5] = "1. Õðåíèýìéóç"; -$lang['InvoiceStates'][6] = "2. Õðåíèýìéóç"; -$lang['InvoiceStates'][7] = "ðëçñùìÝíï"; -$lang['InvoiceStates'][8] = "Üêõñï"; -$lang['InvPosPos'] = "ÈÝóç"; -$lang['InvPosItems'] = "ìÝôñá"; -$lang['InvPosIType'] = "-"; -$lang['InvPosDesc'] = "ÐåñéãñáöÞ"; -$lang['InvPosSingle'] = "a"; -$lang['InvPosTax'] = "% Tax"; -$lang['InvPosSum'] = "Sum"; -$lang['InvPossiblePos'] = "ÐéèáíÝò èÝóåéò"; -$lang['InvExistingPos'] = "ÈÝóåéò"; -$lang['InvAddPos'] = "åíåñãïðïßçóç èÝóçò"; -$lang['InvDelPos'] = "áðáëïéöÞ èÝóçò"; -$lang['InvModInfo'] = "ôñïðïðïßçóç ôéìïëïãßïõ %s"; -$lang['InvDelInfo'] = "äéáãñáöÞ ôéìïëïãßïõ %s"; -$lang['InvOverview'] = "Åðéóêüðçóç Ôéìïëïãßïõ"; -$lang['InvDateSent'][0] = "áðïóôïëÞ óå"; -$lang['InvDateDue'][0] = "Ýùò"; -$lang['InvDateSent'][1] = "1.Õðåíèýìéóç óôÜëèçêå"; -$lang['InvDateDue'][1] = "1.Õðåíèýìéóç Ýùò"; -$lang['InvDateSent'][2] = "2.Õðåíèýìéóç óôÜëèçêå"; -$lang['InvDateDue'][2] = "2.Õðåíèýìéóç Ýùò"; -$lang['InvDatePayed'] = "ðëçñþèçêå óôéò"; -$lang['InvDateCancel'] = "áêõñþèçêå óôéò"; -$lang['InvLinkInfo'] = "Ðáñïõóßáóóç ôéìïëïãßïõ %s"; -$lang['InvoiceSearch'] = "ÁíáæÞôçóç Õðïëïãéóìþí"; -$lang['SearchForInv'] = "áíáæÞôçóç ôéìïëïãßïõ"; -$lang['SearchForInvExt'] = "åêôåôáìÝíç áíáæÞôçóç ôéìïëïãßïõ"; -$lang['InvSelInfo'] = "(Üäåéï èá äåß÷íåé üëá ôá ôéìïëüãéá)"; -$lang['Accountant'] = "Accountant"; -$lang['InvDocument'] = "Show Document"; -$lang['InvDocumentI'] = "Show Invoice as a PDF Document"; - # Fax $lang['FaxCreate'] = "ÍÝï FAX"; $lang['FaxSendTo'] = "Óôåßëå Ýíá fax óå %s"; @@ -931,7 +882,6 @@ $lang['perm'][usemail] = "÷ñÞóç mail"; $lang['perm'][useldap] = "÷ñÞóç LDAP"; $lang['perm'][useurl] = "÷ñÞóç URL âÜóçò äåäïìÝíùí"; -$lang['perm'][useinvoice] = "÷ñÞóç ôéìïëïãßùí"; $lang['FeatureOff'] = "×áñáêôçñéóôéêü êáèïëéêÜ áðåíåñãïðïéçìÝíï"; # Error Messages Index: en.p3 =================================================================== RCS file: /cvsroot/tutos/tutos/php/en.p3,v retrieving revision 1.94 retrieving revision 1.95 diff -u -r1.94 -r1.95 --- en.p3 20 Jun 2002 10:48:20 -0000 1.94 +++ en.p3 27 Jun 2002 17:29:39 -0000 1.95 @@ -756,55 +756,6 @@ $lang['TTRecord'] = "Time recording"; $lang['TTfinish'] = "Finish"; -# Invoice -$lang['Invoice'] = "Invoice"; -$lang['Invoices'] = "Invoices"; -$lang['InvoiceCreate'] = "Invoice create"; -$lang['InvoiceCreateI'] = "Create an invoice for %s"; -$lang['InvoiceCreation'] = "created by %s on %s"; -$lang['InvoiceName'] = "Invoice ID"; -$lang['InvoiceCustomer'] = "Customer"; -$lang['InvAnyUnpaid'] = "all unpaid"; -$lang['InvoiceState'] = "State"; -$lang['InvoiceStates'][1] = "new"; -$lang['InvoiceStates'][2] = "ready to send"; -$lang['InvoiceStates'][3] = "to be payed"; -$lang['InvoiceStates'][4] = "reminded"; -$lang['InvoiceStates'][5] = "1. Reminder"; -$lang['InvoiceStates'][6] = "2. Reminder"; -$lang['InvoiceStates'][7] = "payed"; -$lang['InvoiceStates'][8] = "cancelled"; -$lang['InvPosPos'] = "Position"; -$lang['InvPosItems'] = "count"; -$lang['InvPosIType'] = "-"; -$lang['InvPosDesc'] = "Description"; -$lang['InvPosSingle'] = "a"; -$lang['InvPosTax'] = "% Tax"; -$lang['InvPosSum'] = "Sum"; -$lang['InvPossiblePos'] = "Possible positions"; -$lang['InvExistingPos'] = "Positions"; -$lang['InvAddPos'] = "acitvate position"; -$lang['InvDelPos'] = "remove position"; -$lang['InvModInfo'] = "modify invoice %s"; -$lang['InvDelInfo'] = "delete invoice %s"; -$lang['InvOverview'] = "Invoice Overview"; -$lang['InvDateSent'][0] = "sent at"; -$lang['InvDateDue'][0] = "due"; -$lang['InvDateSent'][1] = "1.Reminder sent"; -$lang['InvDateDue'][1] = "1.Reminder due"; -$lang['InvDateSent'][2] = "2.Reminder sent"; -$lang['InvDateDue'][2] = "2.Reminder due"; -$lang['InvDatePayed'] = "payed at"; -$lang['InvDateCancel'] = "cancelled at"; -$lang['InvLinkInfo'] = "Show invoice %s"; -$lang['InvoiceSearch'] = "Rechnungen suchen"; -$lang['SearchForInv'] = "search for an invoice"; -$lang['SearchForInvExt'] = "extended search for an invoice"; -$lang['InvSelInfo'] = "(empty will show all invoices)"; -$lang['Accountant'] = "Accountant"; -$lang['InvDocument'] = "Show Document"; -$lang['InvDocumentI'] = "Show Invoice as a PDF Document"; - # Fax $lang['FaxCreate'] = "FAX New"; $lang['FaxSendTo'] = "Send a fax to %s"; @@ -927,7 +878,6 @@ $lang['perm'][usemail] = "use mail"; $lang['perm'][useldap] = "use LDAP"; $lang['perm'][useurl] = "use URL database"; -$lang['perm'][useinvoice] = "use invoices"; $lang['FeatureOff'] = "Feature globally disabled"; # Error Messages Index: es-mx.p3 =================================================================== RCS file: /cvsroot/tutos/tutos/php/es-mx.p3,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- es-mx.p3 20 Jun 2002 10:48:20 -0000 1.25 +++ es-mx.p3 27 Jun 2002 17:29:39 -0000 1.26 @@ -758,55 +758,6 @@ $lang['TTRecord'] = "Time recording"; $lang['TTfinish'] = "Finish"; -# Invoice -$lang['Invoice'] = "Invoice"; -$lang['Invoices'] = "Invoices"; -$lang['InvoiceCreate'] = "Invoice create"; -$lang['InvoiceCreateI'] = "Create an invoice for %s"; -$lang['InvoiceCreation'] = "created by %s on %s"; -$lang['InvoiceName'] = "Invoice ID"; -$lang['InvoiceCustomer'] = "Customer"; -$lang['InvAnyUnpaid'] = "all unpaid"; -$lang['InvoiceState'] = "State"; -$lang['InvoiceStates'][1] = "new"; -$lang['InvoiceStates'][2] = "ready to send"; -$lang['InvoiceStates'][3] = "to be payed"; -$lang['InvoiceStates'][4] = "reminded"; -$lang['InvoiceStates'][5] = "1. Reminder"; -$lang['InvoiceStates'][6] = "2. Reminder"; -$lang['InvoiceStates'][7] = "payed"; -$lang['InvoiceStates'][8] = "cancelled"; -$lang['InvPosPos'] = "Position"; -$lang['InvPosItems'] = "count"; -$lang['InvPosIType'] = "-"; -$lang['InvPosDesc'] = "Description"; -$lang['InvPosSingle'] = "a"; -$lang['InvPosTax'] = "% Tax"; -$lang['InvPosSum'] = "Sum"; -$lang['InvPossiblePos'] = "Possible positions"; -$lang['InvExistingPos'] = "Positions"; -$lang['InvAddPos'] = "acitvate position"; -$lang['InvDelPos'] = "remove position"; -$lang['InvModInfo'] = "modify invoice %s"; -$lang['InvDelInfo'] = "delete invoice %s"; -$lang['InvOverview'] = "Invoice Overview"; -$lang['InvDateSent'][0] = "sent at"; -$lang['InvDateDue'][0] = "due"; -$lang['InvDateSent'][1] = "1.Reminder sent"; -$lang['InvDateDue'][1] = "1.Reminder due"; -$lang['InvDateSent'][2] = "2.Reminder sent"; -$lang['InvDateDue'][2] = "2.Reminder due"; -$lang['InvDatePayed'] = "payed at"; -$lang['InvDateCancel'] = "cancelled at"; -$lang['InvLinkInfo'] = "Show invoice %s"; -$lang['InvoiceSearch'] = "Rechnungen suchen"; -$lang['SearchForInv'] = "search for an invoice"; -$lang['SearchForInvExt'] = "extended search for an invoice"; -$lang['InvSelInfo'] = "(empty will show al invoices)"; -$lang['Accountant'] = "Accountant"; -$lang['InvDocument'] = "Show Document"; -$lang['InvDocumentI'] = "Show Invoice as a PDF Document"; - # Fax $lang['FaxCreate'] = "Nuevo FAX"; $lang['FaxSendTo'] = "Enviar un fax a %s"; @@ -929,7 +880,6 @@ $lang['perm'][usemail] = "usar correo"; $lang['perm'][useldap] = "usar LDAP"; $lang['perm'][useurl] = "use URL database"; -$lang['perm'][useinvoice] = "use invoices"; $lang['FeatureOff'] = "Caraterística globalmente desabilitada"; # Error Messages Index: es-ni.p3 =================================================================== RCS file: /cvsroot/tutos/tutos/php/es-ni.p3,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- es-ni.p3 20 Jun 2002 10:48:20 -0000 1.4 +++ es-ni.p3 27 Jun 2002 17:29:39 -0000 1.5 @@ -759,55 +759,6 @@ $lang['TTRecord'] = "Time recording"; $lang['TTfinish'] = "Finish"; -# Invoice -$lang['Invoice'] = "Factura"; -$lang['Invoices'] = "Fcaturas"; -$lang['InvoiceCreate'] = "Crear Factura"; -$lang['InvoiceCreateI'] = "Crear factura para %s"; -$lang['InvoiceCreation'] = "creado por %s el %s"; -$lang['InvoiceName'] = "ID Factura"; -$lang['InvoiceCustomer'] = "Cliente"; -$lang['InvAnyUnpaid'] = "all unpaid"; -$lang['InvoiceState'] = "Estado"; -$lang['InvoiceStates'][1] = "Nueva"; -$lang['InvoiceStates'][2] = "Lista para entregar"; -$lang['InvoiceStates'][3] = "Pendiente de Pago"; -$lang['InvoiceStates'][4] = "Recordada"; -$lang['InvoiceStates'][5] = "1. Aviso de Cobro"; -$lang['InvoiceStates'][6] = "2. Aviso de Cobro"; -$lang['InvoiceStates'][7] = "Pagada"; -$lang['InvoiceStates'][8] = "Cancelada"; -$lang['InvPosPos'] = "Posición"; -$lang['InvPosItems'] = "Cuenta"; -$lang['InvPosIType'] = "-"; -$lang['InvPosDesc'] = "Descripción"; -$lang['InvPosSingle'] = "a"; -$lang['InvPosTax'] = "% de Impuesto"; -$lang['InvPosSum'] = "Suma"; -$lang['InvPossiblePos'] = "Posiciones posibles"; -$lang['InvExistingPos'] = "Posiciones"; -$lang['InvAddPos'] = "Posiciones Activas"; -$lang['InvDelPos'] = "Eliminar Posiciones"; -$lang['InvModInfo'] = "Modificar facturas %s"; -$lang['InvDelInfo'] = "Borrar factura %s"; -$lang['InvOverview'] = "Vista General de Facturas"; -$lang['InvDateSent'][0] = "enviada el"; -$lang['InvDateDue'][0] = "vencimiento"; -$lang['InvDateSent'][1] = "1. Aviso de cobro enviado"; -$lang['InvDateDue'][1] = "1. Vencimiento de aviso de cobro"; -$lang['InvDateSent'][2] = "2. Aviso de cobro enviado"; -$lang['InvDateDue'][2] = "2. Vencimiento de aviso de cobro"; -$lang['InvDatePayed'] = "pagado el"; -$lang['InvDateCancel'] = "cancelado el"; -$lang['InvLinkInfo'] = "Ver factura %s"; -$lang['InvoiceSearch'] = "Buscar Factura"; -$lang['SearchForInv'] = "Búsqueda de Factura"; -$lang['SearchForInvExt'] = "Búsqueda avanzada de Factura"; -$lang['InvSelInfo'] = "(deje en blanco para ver todas las facturas)"; -$lang['Accountant'] = "Accountant"; -$lang['InvDocument'] = "Ver documento"; -$lang['InvDocumentI'] = "Ver Factura en formato PDF"; - # Fax $lang['FaxCreate'] = "Nuevo FAX"; $lang['FaxSendTo'] = "Enviar FAX a %s"; @@ -930,7 +881,6 @@ $lang['perm'][usemail] = "use Correo"; $lang['perm'][useldap] = "use LDAP"; $lang['perm'][useurl] = "use Base de Datos de URL"; -$lang['perm'][useinvoice] = "use Facturas"; $lang['FeatureOff'] = "Función globalmente deshabilitada"; # Error Messages Index: es.p3 =================================================================== RCS file: /cvsroot/tutos/tutos/php/es.p3,v retrieving revision 1.76 retrieving revision 1.77 diff -u -r1.76 -r1.77 --- es.p3 20 Jun 2002 10:48:20 -0000 1.76 +++ es.p3 27 Jun 2002 17:29:39 -0000 1.77 @@ -758,55 +758,6 @@ $lang['TTRecord'] = "Time recording"; $lang['TTfinish'] = "Finish"; -# Invoice -$lang['Invoice'] = "Factura"; -$lang['Invoices'] = "Facturas"; -$lang['InvoiceCreate'] = "Crear Factura"; -$lang['InvoiceCreateI'] = "Crear factura para %s"; -$lang['InvoiceCreation'] = "creado por %s el %s"; -$lang['InvoiceName'] = "ID Factura"; -$lang['InvoiceCustomer'] = "Cliente"; -$lang['InvAnyUnpaid'] = "all unpaid"; -$lang['InvoiceState'] = "Estado"; -$lang['InvoiceStates'][1] = "nuevo"; -$lang['InvoiceStates'][2] = "lista para enviar"; -$lang['InvoiceStates'][3] = "para pagar"; -$lang['InvoiceStates'][4] = "recordada"; -$lang['InvoiceStates'][5] = "1. Recordada"; -$lang['InvoiceStates'][6] = "2. Recordada"; -$lang['InvoiceStates'][7] = "pagada"; -$lang['InvoiceStates'][8] = "cancelada"; -$lang['InvPosPos'] = "Posicion"; -$lang['InvPosItems'] = "contador"; -$lang['InvPosIType'] = "-"; -$lang['InvPosDesc'] = "Descripcion"; -$lang['InvPosSingle'] = "a"; -$lang['InvPosTax'] = "% IVA"; -$lang['InvPosSum'] = "Suma"; -$lang['InvPossiblePos'] = "Posiciones posibles"; -$lang['InvExistingPos'] = "Posiciones"; -$lang['InvAddPos'] = "activar posición"; -$lang['InvDelPos'] = "eliminar posición"; -$lang['InvModInfo'] = "modificar factura %s"; -$lang['InvDelInfo'] = "borrar factura %s"; -$lang['InvOverview'] = "Facturas"; -$lang['InvDateSent'][0] = "enviada el"; -$lang['InvDateDue'][0] = "fecha pago"; -$lang['InvDateSent'][1] = "1.Recordatorio enviado"; -$lang['InvDateDue'][1] = "1.Fecha cumplida"; -$lang['InvDateSent'][2] = "2.Recordatorio enviado"; -$lang['InvDateDue'][2] = "2.Fecha cumplida"; -$lang['InvDatePayed'] = "pagado el"; -$lang['InvDateCancel'] = "cancelado el"; -$lang['InvLinkInfo'] = "Mostrar factura %s"; -$lang['InvoiceSearch'] = "Buscar Facturas"; -$lang['SearchForInv'] = "Buscar una factura"; -$lang['SearchForInvExt'] = "Búsqueda avanzada de facturas"; -$lang['InvSelInfo'] = "(Vacio para mostrar todas las facturas)"; -$lang['Accountant'] = "Contable"; -$lang['InvDocument'] = "Mostrar documento"; -$lang['InvDocumentI'] = "Mostrar factura como documento PDF"; - # Fax $lang['FaxCreate'] = "Nuevo FAX"; $lang['FaxSendTo'] = "Enviar fax a %s"; @@ -929,7 +880,6 @@ $lang['perm'][usemail] = "Usar correo"; $lang['perm'][useldap] = "Usar LDAP"; $lang['perm'][useurl] = "Usar base de datos de URL"; -$lang['perm'][useinvoice] = "Usar facturas"; $lang['FeatureOff'] = "Característica desactivada globalmente"; # Error Messages Index: fr.p3 =================================================================== RCS file: /cvsroot/tutos/tutos/php/fr.p3,v retrieving revision 1.80 retrieving revision 1.81 diff -u -r1.80 -r1.81 --- fr.p3 20 Jun 2002 10:48:20 -0000 1.80 +++ fr.p3 27 Jun 2002 17:29:39 -0000 1.81 @@ -758,55 +758,6 @@ $lang['TTRecord'] = "Time recording"; $lang['TTfinish'] = "Finish"; -# Invoice -$lang['Invoice'] = "Facturation"; -$lang['Invoices'] = "Factures"; -$lang['InvoiceCreate'] = "Créer une facture"; -$lang['InvoiceCreateI'] = "Créer une facture pour %s"; -$lang['InvoiceCreation'] = "Créé par %s sur %s"; -$lang['InvoiceName'] = "Identifiant de facture"; -$lang['InvoiceCustomer'] = "Client"; -$lang['InvAnyUnpaid'] = "Tout impayé"; -$lang['InvoiceState'] = "État"; -$lang['InvoiceStates'][1] = "nouveau"; -$lang['InvoiceStates'][2] = "près à l'envoi"; -$lang['InvoiceStates'][3] = "à payer"; -$lang['InvoiceStates'][4] = "rappel"; -$lang['InvoiceStates'][5] = "1. Rappel"; -$lang['InvoiceStates'][6] = "2. Rappel"; -$lang['InvoiceStates'][7] = "payé"; -$lang['InvoiceStates'][8] = "annulé"; -$lang['InvPosPos'] = "Position"; -$lang['InvPosItems'] = "compte"; -$lang['InvPosIType'] = "-"; -$lang['InvPosDesc'] = "Description"; -$lang['InvPosSingle'] = "une"; -$lang['InvPosTax'] = "% Tax"; -$lang['InvPosSum'] = "Somme"; -$lang['InvPossiblePos'] = "Positions possibles"; -$lang['InvExistingPos'] = "Positions"; -$lang['InvAddPos'] = "avtiver la position"; -$lang['InvDelPos'] = "supprimer la position"; -$lang['InvModInfo'] = "Modifier la facture %s"; -$lang['InvDelInfo'] = "Effecer la facture %s"; -$lang['InvOverview'] = "Invoice Overview"; -$lang['InvDateSent'][0] = "envoyé à"; -$lang['InvDateDue'][0] = "dû"; -$lang['InvDateSent'][1] = "1.Rappel envoyé"; -$lang['InvDateDue'][1] = "1.Rappel dû"; -$lang['InvDateSent'][2] = "2.Rappel envoyé"; -$lang['InvDateDue'][2] = "2.Rappel dû"; -$lang['InvDatePayed'] = "Payé le"; -$lang['InvDateCancel'] = "Annulé le"; -$lang['InvLinkInfo'] = "Afficher la facture %s"; -$lang['InvoiceSearch'] = "Rechercher une facture"; -$lang['SearchForInv'] = "Rechercher une facture"; -$lang['SearchForInvExt'] = "Recherche étendue de facture"; -$lang['InvSelInfo'] = "(laisser vide pour toutes les factures)"; -$lang['Accountant'] = "Accountant"; -$lang['InvDocument'] = "Show Document"; -$lang['InvDocumentI'] = "Afficher la facture en PDF"; - # Fax $lang['FaxCreate'] = "Nouveau FAX"; $lang['FaxSendTo'] = "Envoyer un fax à %s"; @@ -929,7 +880,6 @@ $lang['perm'][usemail] = "Utiliser le Mail"; $lang['perm'][useldap] = "Utiliser LDAP"; $lang['perm'][useurl] = "Utiliser URL"; -$lang['perm'][useinvoice] = "Utiliser la Facturation"; $lang['FeatureOff'] = "Toutes fonctionnalités désactivées"; # Error Messages Index: history_show.php =================================================================== RCS file: /cvsroot/tutos/tutos/php/history_show.php,v retrieving revision 1.36 retrieving revision 1.37 diff -u -r1.36 -r1.37 --- history_show.php 26 Jun 2002 20:23:58 -0000 1.36 +++ history_show.php 27 Jun 2002 17:29:39 -0000 1.37 @@ -16,7 +16,6 @@ include("resource.pinc"); include("appointment.pinc"); include("mailbox.pinc"); - include("invoice.pinc"); /* Check if user is allowed to use it */ check_user(); Index: installation_show.php =================================================================== RCS file: /cvsroot/tutos/tutos/php/installation_show.php,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- installation_show.php 24 Jun 2002 11:35:02 -0000 1.27 +++ installation_show.php 27 Jun 2002 17:29:39 -0000 1.28 @@ -13,7 +13,6 @@ include 'file.pinc'; include 'bug.pinc'; include 'timetrack.pinc'; - include 'invoice.pinc'; include 'resource.pinc'; /* Check if user is allowed to use it */ @@ -77,7 +76,6 @@ url::infolist($current_user,$obj,4); note::infolist($current_user,$obj,4); tutos_file::infolist($current_user,$obj,4); - invoice::infolist($current_user,$obj,4); if ( $current_user->feature_ok(usetimetrack,PERM_SEE) ) { $obj->readTimetrackSum(); @@ -151,7 +149,6 @@ echo note::getaddlink($current_user,$obj); echo tutos_file::getaddlink($current_user,$obj); echo timetrack::getaddlink($current_user,$obj); - echo invoice::getaddlink($current_user,$obj); echo "<BR>\n"; show_module_addlinks($current_user,$obj); echo "<BR>\n"; Index: it.p3 =================================================================== RCS file: /cvsroot/tutos/tutos/php/it.p3,v retrieving revision 1.83 retrieving revision 1.84 diff -u -r1.83 -r1.84 --- it.p3 20 Jun 2002 10:48:20 -0000 1.83 +++ it.p3 27 Jun 2002 17:29:39 -0000 1.84 @@ -757,55 +757,6 @@ $lang['TTRecord'] = "Time recording"; $lang['TTfinish'] = "Finish"; -# Invoice -$lang['Invoice'] = "Invoice"; -$lang['Invoices'] = "Invoices"; -$lang['InvoiceCreate'] = "Invoice create"; -$lang['InvoiceCreateI'] = "Create an invoice for %s"; -$lang['InvoiceCreation'] = "created by %s on %s"; -$lang['InvoiceName'] = "Invoice ID"; -$lang['InvoiceCustomer'] = "Customer"; -$lang['InvAnyUnpaid'] = "all unpaid"; -$lang['InvoiceState'] = "State"; -$lang['InvoiceStates'][1] = "new"; -$lang['InvoiceStates'][2] = "ready to send"; -$lang['InvoiceStates'][3] = "to be payed"; -$lang['InvoiceStates'][4] = "reminded"; -$lang['InvoiceStates'][5] = "1. Reminder"; -$lang['InvoiceStates'][6] = "2. Reminder"; -$lang['InvoiceStates'][7] = "payed"; -$lang['InvoiceStates'][8] = "cancelled"; -$lang['InvPosPos'] = "Position"; -$lang['InvPosItems'] = "count"; -$lang['InvPosIType'] = "-"; -$lang['InvPosDesc'] = "Description"; -$lang['InvPosSingle'] = "a"; -$lang['InvPosTax'] = "% Tax"; -$lang['InvPosSum'] = "Sum"; -$lang['InvPossiblePos'] = "Possible positions"; -$lang['InvExistingPos'] = "Positions"; -$lang['InvAddPos'] = "acitvate position"; -$lang['InvDelPos'] = "remove position"; -$lang['InvModInfo'] = "modify invoice %s"; -$lang['InvDelInfo'] = "delete invoice %s"; -$lang['InvOverview'] = "Invoice Overview"; -$lang['InvDateSent'][0] = "sent at"; -$lang['InvDateDue'][0] = "due"; -$lang['InvDateSent'][1] = "1.Reminder sent"; -$lang['InvDateDue'][1] = "1.Reminder due"; -$lang['InvDateSent'][2] = "2.Reminder sent"; -$lang['InvDateDue'][2] = "2.Reminder due"; -$lang['InvDatePayed'] = "payed at"; -$lang['InvDateCancel'] = "cancelled at"; -$lang['InvLinkInfo'] = "Show invoice %s"; -$lang['InvoiceSearch'] = "Rechnungen suchen"; -$lang['SearchForInv'] = "search for an invoice"; -$lang['SearchForInvExt'] = "extended search for an invoice"; -$lang['InvSelInfo'] = "(empty will show al invoices)"; -$lang['Accountant'] = "Accountant"; -$lang['InvDocument'] = "Show Document"; -$lang['InvDocumentI'] = "Show Invoice as a PDF Document"; - # Fax $lang['FaxCreate'] = "Nuovo FAX"; $lang['FaxSendTo'] = "Invia fax a %s"; @@ -928,7 +879,6 @@ $lang['perm'][usemail] = "use mail"; $lang['perm'][useldap] = "use LDAP"; $lang['perm'][useurl] = "use URL database"; -$lang['perm'][useinvoice] = "use invoices"; $lang['FeatureOff'] = "Funzione disabilitata globalmente"; # Error Messages Index: ko.p3 =================================================================== RCS file: /cvsroot/tutos/tutos/php/ko.p3,v retrieving revision 1.51 retrieving revision 1.52 diff -u -r1.51 -r1.52 --- ko.p3 20 Jun 2002 10:48:20 -0000 1.51 +++ ko.p3 27 Jun 2002 17:29:40 -0000 1.52 @@ -759,55 +759,6 @@ $lang['TTRecord'] = "Time recording"; $lang['TTfinish'] = "Finish"; -# Invoice -$lang['Invoice'] = "±¸¸Å¼"; -$lang['Invoices'] = "±¸¸Å¼"; -$lang['InvoiceCreate'] = "±¸¸Å¼ »ý¼º"; -$lang['InvoiceCreateI'] = "±¸¸Å¼ »ý¼º: %s"; -$lang['InvoiceCreation'] = "ÀÛ¼ºÀÚ:%s ÀÛ¼ºÀÏ:%s"; -$lang['InvoiceName'] = "±¸¸Å¼ ID"; -$lang['InvoiceCustomer'] = "°í°´"; -$lang['InvAnyUnpaid'] = "all unpaid"; -$lang['InvoiceState'] = "»óÅÂ"; -$lang['InvoiceStates'][1] = "»õÁÖ¹®"; -$lang['InvoiceStates'][2] = "º¸³¾Áغñ ¿Ï·á"; -$lang['InvoiceStates'][3] = "´ë±Ý¹Ì³³"; -$lang['InvoiceStates'][4] = "µ¶Ã˹ÞÀ½"; -$lang['InvoiceStates'][5] = "1. µ¶ÃËÀå"; -$lang['InvoiceStates'][6] = "2. µ¶ÃËÀå"; -$lang['InvoiceStates'][7] = "´ë±Ý¿Ï³³"; -$lang['InvoiceStates'][8] = "Ãë¼ÒµÊ"; -$lang['InvPosPos'] = "Position"; -$lang['InvPosItems'] = "count"; -$lang['InvPosIType'] = "-"; -$lang['InvPosDesc'] = "³»¿ë"; -$lang['InvPosSingle'] = "a"; -$lang['InvPosTax'] = "% Tax"; -$lang['InvPosSum'] = "Sum"; -$lang['InvPossiblePos'] = "Possible positions"; -$lang['InvExistingPos'] = "Positions"; -$lang['InvAddPos'] = "acitvate position"; -$lang['InvDelPos'] = "remove position"; -$lang['InvModInfo'] = "modify invoice %s"; -$lang['InvDelInfo'] = "delete invoice %s"; -$lang['InvOverview'] = "Invoice Overview"; -$lang['InvDateSent'][0] = "sent at"; -$lang['InvDateDue'][0] = "due"; -$lang['InvDateSent'][1] = "1.Reminder sent"; -$lang['InvDateDue'][1] = "1.Reminder due"; -$lang['InvDateSent'][2] = "2.Reminder sent"; -$lang['InvDateDue'][2] = "2.Reminder due"; -$lang['InvDatePayed'] = "payed at"; -$lang['InvDateCancel'] = "cancelled at"; -$lang['InvLinkInfo'] = "Show invoice %s"; -$lang['InvoiceSearch'] = "Rechnungen suchen"; -$lang['SearchForInv'] = "search for an invoice"; -$lang['SearchForInvExt'] = "extended search for an invoice"; -$lang['InvSelInfo'] = "(empty will show al invoices)"; -$lang['Accountant'] = "Accountant"; -$lang['InvDocument'] = "Show Document"; -$lang['InvDocumentI'] = "Show Invoice as a PDF Document"; - # Fax $lang['FaxCreate'] = "FAX New"; $lang['FaxSendTo'] = "Send a fax to %s"; @@ -930,7 +881,6 @@ $lang['perm'][usemail] = "use mail"; $lang['perm'][useldap] = "use LDAP"; $lang['perm'][useurl] = "use URL database"; -$lang['perm'][useinvoice] = "use invoices"; $lang['FeatureOff'] = "Feature globally disabled"; # Error Messages Index: product_show.php =================================================================== RCS file: /cvsroot/tutos/tutos/php/product_show.php,v retrieving revision 1.39 retrieving revision 1.40 diff -u -r1.39 -r1.40 --- product_show.php 24 Jun 2002 11:35:01 -0000 1.39 +++ product_show.php 27 Jun 2002 17:29:40 -0000 1.40 @@ -338,8 +338,6 @@ echo note::getaddlink($current_user,$obj); echo tutos_file::getaddlink($current_user,$obj); echo timetrack::getaddlink($current_user,$obj); - - echo "<BR>\n"; } show_module_addlinks($current_user,$obj); echo "<BR>\n"; |
From: Gero K. <gok...@us...> - 2002-06-27 17:28:21
|
Update of /cvsroot/tutos/tutos/php/invoice In directory usw-pr-cvs1:/tmp/cvs-serv12293/php/invoice Added Files: de.p3 el.p3 en.p3 es-ni.p3 es.p3 fr.p3 invoice.pinc invoice_del.php invoice_ins.php invoice_new.php invoice_overview.php invoice_select.php invoice_show.php ko.p3 mconfig.pinc mtable.pinc nl.p3 pl.p3 ru.p3 sv.p3 Log Message: new (moved) invoice module --- NEW FILE: de.p3 --- <? # $Id: de.p3,v 1.1 2002/06/27 17:28:17 gokohnert Exp $ # # ========================= NOTE ======================== # Please put site specific extensions and changes # to TUTOS language files in a file called "de_custom.p3" # or "lang_custom.p3" (for all languages) # using the same format like here # ======================================================= # # # German Texts for this module # # Invoice $lang['InvoiceStates'] = array(); $lang['InvDateSent'] = array(); $lang['InvDateDue'] = array(); $lang['invoice'] = &$lang['Invoice']; $lang['perm'][useinvoice] = "Rechnungsverwaltung"; $lang['Invoice'] = "Rechnung"; $lang['Invoices'] = "Rechnungen"; $lang['InvoiceCreate'] = "Rechnung anlegen"; $lang['InvoiceCreateI'] = "Rechnung für %s anlegen"; $lang['InvoiceCreation'] = "Erzeugt von %s am %s"; $lang['InvoiceName'] = "Rechnungs-ID"; $lang['InvoiceCustomer'] = "Kunde"; $lang['InvAnyUnpaid'] = "alle unbezahlten"; $lang['InvoiceState'] = "Status"; $lang['InvoiceStates'][1] = "Neu"; $lang['InvoiceStates'][2] = "Versandfertig"; $lang['InvoiceStates'][3] = "Zu zahlen"; $lang['InvoiceStates'][4] = "Erinnert"; $lang['InvoiceStates'][5] = "1. Mahnung"; $lang['InvoiceStates'][6] = "2. Mahnung"; $lang['InvoiceStates'][7] = "Bezahlt"; $lang['InvoiceStates'][8] = "Storniert"; $lang['InvPosPos'] = "Position"; $lang['InvPosItems'] = "Anzahl"; $lang['InvPosIType'] = "-"; $lang['InvPosDesc'] = "Beschreibung"; $lang['InvPosSingle'] = "je"; $lang['InvPosTax'] = "% Steuer"; $lang['InvPosSum'] = "Summe"; $lang['InvPossiblePos'] = "Mögliche Positionen"; $lang['InvExistingPos'] = "Positionen"; $lang['InvAddPos'] = "Position aktivieren"; $lang['InvDelPos'] = "Position entfernen"; $lang['InvModInfo'] = "Rechnung %s ändern"; $lang['InvDelInfo'] = "Rechnung %s löschen"; $lang['InvOverview'] = "Rechnungsübersicht"; $lang['InvDateSent'][0] = "Versandt am"; $lang['InvDateDue'][0] = "Zu zahlen bis"; $lang['InvDateSent'][1] = "1.Mahnung versandt am"; $lang['InvDateDue'][1] = "1.Mahnung zu zahlen bis"; $lang['InvDateSent'][2] = "2.Mahnung versandt am"; $lang['InvDateDue'][2] = "2.Mahnung zu zahlen bis"; $lang['InvDatePayed'] = "Bezahlt am"; $lang['InvDateCancel'] = "Storniert am"; $lang['InvLinkInfo'] = "Rechnung %s anzeigen"; $lang['InvoiceSearch'] = "Rechnungen suchen"; $lang['SearchForInv'] = "Nach einer Rechnung suchen"; $lang['SearchForInvExt'] = "Erweiterte Suche nach einer Rechnung"; $lang['InvSelInfo'] = "(Leer zeigt alle Rechnungen)"; $lang['Accountant'] = "Rechnungssteller"; $lang['InvDocument'] = "Rechnung anzeigen"; $lang['InvDocumentI'] = "Rechnung als PDF anzeigen"; ### Local Variables: *** ### mode:iso-accents *** ### End: *** ?> --- NEW FILE: el.p3 --- <? # $Id: el.p3,v 1.1 2002/06/27 17:28:17 gokohnert Exp $ # # ========================= NOTE ======================== # Please put site specific extensions and changes # to TUTOS language files in a file called "el_custom.p3" # or "lang_custom.p3" (for all languages) # using the same format like here # ======================================================= # # # Greek Texts for this module # # Invoice $lang['InvoiceStates'] = array(); $lang['InvDateSent'] = array(); $lang['InvDateDue'] = array(); $lang['invoice'] = &$lang['Invoice']; $lang['perm'][useinvoice] = "÷ñÞóç ôéìïëïãßùí"; # Invoice $lang['Invoice'] = "Ôéìïëüãéï"; $lang['Invoices'] = "Ôéìïëüãéá"; $lang['InvoiceCreate'] = "Äçìéïõñãßá ôéìïëïãßïõ"; $lang['InvoiceCreateI'] = "Äçìéïýñãçóå Ýíá ôéìïëüãéá ãéá %s"; $lang['InvoiceCreation'] = "äçìéïõñãÞèçêå áðü %s óôéò %s"; $lang['InvoiceName'] = "ID Ôéìïëïãßïõ"; $lang['InvoiceCustomer'] = "ÐåëÜôçò"; $lang['InvAnyUnpaid'] = "all unpaid"; $lang['InvoiceState'] = "ÊáôÜóôáóç"; $lang['InvoiceStates'][1] = "íÝï"; $lang['InvoiceStates'][2] = "Ýôïéìï ãéá áðïóôïëÞ"; $lang['InvoiceStates'][3] = "ðñïò ðëçñùìÞ"; $lang['InvoiceStates'][4] = "Ý÷åé ãßíåé õðåíèýìéóç"; $lang['InvoiceStates'][5] = "1. Õðåíèýìéóç"; $lang['InvoiceStates'][6] = "2. Õðåíèýìéóç"; $lang['InvoiceStates'][7] = "ðëçñùìÝíï"; $lang['InvoiceStates'][8] = "Üêõñï"; $lang['InvPosPos'] = "ÈÝóç"; $lang['InvPosItems'] = "ìÝôñá"; $lang['InvPosIType'] = "-"; $lang['InvPosDesc'] = "ÐåñéãñáöÞ"; $lang['InvPosSingle'] = "a"; $lang['InvPosTax'] = "% Tax"; $lang['InvPosSum'] = "Sum"; $lang['InvPossiblePos'] = "ÐéèáíÝò èÝóåéò"; $lang['InvExistingPos'] = "ÈÝóåéò"; $lang['InvAddPos'] = "åíåñãïðïßçóç èÝóçò"; $lang['InvDelPos'] = "áðáëïéöÞ èÝóçò"; $lang['InvModInfo'] = "ôñïðïðïßçóç ôéìïëïãßïõ %s"; $lang['InvDelInfo'] = "äéáãñáöÞ ôéìïëïãßïõ %s"; $lang['InvOverview'] = "Åðéóêüðçóç Ôéìïëïãßïõ"; $lang['InvDateSent'][0] = "áðïóôïëÞ óå"; $lang['InvDateDue'][0] = "Ýùò"; $lang['InvDateSent'][1] = "1.Õðåíèýìéóç óôÜëèçêå"; $lang['InvDateDue'][1] = "1.Õðåíèýìéóç Ýùò"; $lang['InvDateSent'][2] = "2.Õðåíèýìéóç óôÜëèçêå"; $lang['InvDateDue'][2] = "2.Õðåíèýìéóç Ýùò"; $lang['InvDatePayed'] = "ðëçñþèçêå óôéò"; $lang['InvDateCancel'] = "áêõñþèçêå óôéò"; $lang['InvLinkInfo'] = "Ðáñïõóßáóóç ôéìïëïãßïõ %s"; $lang['InvoiceSearch'] = "ÁíáæÞôçóç Õðïëïãéóìþí"; $lang['SearchForInv'] = "áíáæÞôçóç ôéìïëïãßïõ"; $lang['SearchForInvExt'] = "åêôåôáìÝíç áíáæÞôçóç ôéìïëïãßïõ"; $lang['InvSelInfo'] = "(Üäåéï èá äåß÷íåé üëá ôá ôéìïëüãéá)"; $lang['Accountant'] = "Accountant"; $lang['InvDocument'] = "Show Document"; $lang['InvDocumentI'] = "Show Invoice as a PDF Document"; ?> --- NEW FILE: en.p3 --- <? # $Id: en.p3,v 1.1 2002/06/27 17:28:17 gokohnert Exp $ # # ========================= NOTE ======================== # Please put site specific extensions and changes # to TUTOS language files in a file called "en_custom.p3" # or "lang_custom.p3" (for all languages) # using the same format like here # ======================================================= # # # English Texts for this module # # Invoice $lang['InvoiceStates'] = array(); $lang['InvDateSent'] = array(); $lang['InvDateDue'] = array(); $lang['invoice'] = &$lang['Invoice']; $lang['perm'][useinvoice] = "use invoices"; $lang['Invoice'] = "Invoice"; $lang['Invoices'] = "Invoices"; $lang['InvoiceCreate'] = "Invoice create"; $lang['InvoiceCreateI'] = "Create an invoice for %s"; $lang['InvoiceCreation'] = "created by %s on %s"; $lang['InvoiceName'] = "Invoice ID"; $lang['InvoiceCustomer'] = "Customer"; $lang['InvAnyUnpaid'] = "all unpaid"; $lang['InvoiceState'] = "State"; $lang['InvoiceStates'][1] = "new"; $lang['InvoiceStates'][2] = "ready to send"; $lang['InvoiceStates'][3] = "to be payed"; $lang['InvoiceStates'][4] = "reminded"; $lang['InvoiceStates'][5] = "1. Reminder"; $lang['InvoiceStates'][6] = "2. Reminder"; $lang['InvoiceStates'][7] = "payed"; $lang['InvoiceStates'][8] = "cancelled"; $lang['InvPosPos'] = "Position"; $lang['InvPosItems'] = "count"; $lang['InvPosIType'] = "-"; $lang['InvPosDesc'] = "Description"; $lang['InvPosSingle'] = "a"; $lang['InvPosTax'] = "% Tax"; $lang['InvPosSum'] = "Sum"; $lang['InvPossiblePos'] = "Possible positions"; $lang['InvExistingPos'] = "Positions"; $lang['InvAddPos'] = "acitvate position"; $lang['InvDelPos'] = "remove position"; $lang['InvModInfo'] = "modify invoice %s"; $lang['InvDelInfo'] = "delete invoice %s"; $lang['InvOverview'] = "Invoice Overview"; $lang['InvDateSent'][0] = "sent at"; $lang['InvDateDue'][0] = "due"; $lang['InvDateSent'][1] = "1.Reminder sent"; $lang['InvDateDue'][1] = "1.Reminder due"; $lang['InvDateSent'][2] = "2.Reminder sent"; $lang['InvDateDue'][2] = "2.Reminder due"; $lang['InvDatePayed'] = "payed at"; $lang['InvDateCancel'] = "cancelled at"; $lang['InvLinkInfo'] = "Show invoice %s"; $lang['InvoiceSearch'] = "Rechnungen suchen"; $lang['SearchForInv'] = "search for an invoice"; $lang['SearchForInvExt'] = "extended search for an invoice"; $lang['InvSelInfo'] = "(empty will show all invoices)"; $lang['Accountant'] = "Accountant"; $lang['InvDocument'] = "Show Document"; $lang['InvDocumentI'] = "Show Invoice as a PDF Document"; ?> --- NEW FILE: es-ni.p3 --- <? # $Id: es-ni.p3,v 1.1 2002/06/27 17:28:17 gokohnert Exp $ # # ========================= NOTE ======================== # Please put site specific extensions and changes # to TUTOS language files in a file called "es-ni_custom.p3" # or "lang_custom.p3" (for all languages) # using the same format like here # ======================================================= # # # Spanish/Nicaragu Texts for this module # # Invoice $lang['InvoiceStates'] = array(); $lang['InvDateSent'] = array(); $lang['InvDateDue'] = array(); $lang['invoice'] = &$lang['Invoice']; $lang['perm'][useinvoice] = "use Facturas"; # Invoice $lang['Invoice'] = "Factura"; $lang['Invoices'] = "Fcaturas"; $lang['InvoiceCreate'] = "Crear Factura"; $lang['InvoiceCreateI'] = "Crear factura para %s"; $lang['InvoiceCreation'] = "creado por %s el %s"; $lang['InvoiceName'] = "ID Factura"; $lang['InvoiceCustomer'] = "Cliente"; $lang['InvAnyUnpaid'] = "all unpaid"; $lang['InvoiceState'] = "Estado"; $lang['InvoiceStates'][1] = "Nueva"; $lang['InvoiceStates'][2] = "Lista para entregar"; $lang['InvoiceStates'][3] = "Pendiente de Pago"; $lang['InvoiceStates'][4] = "Recordada"; $lang['InvoiceStates'][5] = "1. Aviso de Cobro"; $lang['InvoiceStates'][6] = "2. Aviso de Cobro"; $lang['InvoiceStates'][7] = "Pagada"; $lang['InvoiceStates'][8] = "Cancelada"; $lang['InvPosPos'] = "Posición"; $lang['InvPosItems'] = "Cuenta"; $lang['InvPosIType'] = "-"; $lang['InvPosDesc'] = "Descripción"; $lang['InvPosSingle'] = "a"; $lang['InvPosTax'] = "% de Impuesto"; $lang['InvPosSum'] = "Suma"; $lang['InvPossiblePos'] = "Posiciones posibles"; $lang['InvExistingPos'] = "Posiciones"; $lang['InvAddPos'] = "Posiciones Activas"; $lang['InvDelPos'] = "Eliminar Posiciones"; $lang['InvModInfo'] = "Modificar facturas %s"; $lang['InvDelInfo'] = "Borrar factura %s"; $lang['InvOverview'] = "Vista General de Facturas"; $lang['InvDateSent'][0] = "enviada el"; $lang['InvDateDue'][0] = "vencimiento"; $lang['InvDateSent'][1] = "1. Aviso de cobro enviado"; $lang['InvDateDue'][1] = "1. Vencimiento de aviso de cobro"; $lang['InvDateSent'][2] = "2. Aviso de cobro enviado"; $lang['InvDateDue'][2] = "2. Vencimiento de aviso de cobro"; $lang['InvDatePayed'] = "pagado el"; $lang['InvDateCancel'] = "cancelado el"; $lang['InvLinkInfo'] = "Ver factura %s"; $lang['InvoiceSearch'] = "Buscar Factura"; $lang['SearchForInv'] = "Búsqueda de Factura"; $lang['SearchForInvExt'] = "Búsqueda avanzada de Factura"; $lang['InvSelInfo'] = "(deje en blanco para ver todas las facturas)"; $lang['Accountant'] = "Accountant"; $lang['InvDocument'] = "Ver documento"; $lang['InvDocumentI'] = "Ver Factura en formato PDF"; ?> --- NEW FILE: es.p3 --- <? # $Id: es.p3,v 1.1 2002/06/27 17:28:17 gokohnert Exp $ # # ========================= NOTE ======================== # Please put site specific extensions and changes # to TUTOS language files in a file called "es_custom.p3" # or "lang_custom.p3" (for all languages) # using the same format like here # ======================================================= # # # Spanish Texts for this module # # Invoice $lang['InvoiceStates'] = array(); $lang['InvDateSent'] = array(); $lang['InvDateDue'] = array(); $lang['invoice'] = &$lang['Invoice']; $lang['perm'][useinvoice] = "Usar facturas"; $lang['Invoice'] = "Factura"; $lang['Invoices'] = "Facturas"; $lang['InvoiceCreate'] = "Crear Factura"; $lang['InvoiceCreateI'] = "Crear factura para %s"; $lang['InvoiceCreation'] = "creado por %s el %s"; $lang['InvoiceName'] = "ID Factura"; $lang['InvoiceCustomer'] = "Cliente"; $lang['InvAnyUnpaid'] = "all unpaid"; $lang['InvoiceState'] = "Estado"; $lang['InvoiceStates'][1] = "nuevo"; $lang['InvoiceStates'][2] = "lista para enviar"; $lang['InvoiceStates'][3] = "para pagar"; $lang['InvoiceStates'][4] = "recordada"; $lang['InvoiceStates'][5] = "1. Recordada"; $lang['InvoiceStates'][6] = "2. Recordada"; $lang['InvoiceStates'][7] = "pagada"; $lang['InvoiceStates'][8] = "cancelada"; $lang['InvPosPos'] = "Posicion"; $lang['InvPosItems'] = "contador"; $lang['InvPosIType'] = "-"; $lang['InvPosDesc'] = "Descripcion"; $lang['InvPosSingle'] = "a"; $lang['InvPosTax'] = "% IVA"; $lang['InvPosSum'] = "Suma"; $lang['InvPossiblePos'] = "Posiciones posibles"; $lang['InvExistingPos'] = "Posiciones"; $lang['InvAddPos'] = "activar posición"; $lang['InvDelPos'] = "eliminar posición"; $lang['InvModInfo'] = "modificar factura %s"; $lang['InvDelInfo'] = "borrar factura %s"; $lang['InvOverview'] = "Facturas"; $lang['InvDateSent'][0] = "enviada el"; $lang['InvDateDue'][0] = "fecha pago"; $lang['InvDateSent'][1] = "1.Recordatorio enviado"; $lang['InvDateDue'][1] = "1.Fecha cumplida"; $lang['InvDateSent'][2] = "2.Recordatorio enviado"; $lang['InvDateDue'][2] = "2.Fecha cumplida"; $lang['InvDatePayed'] = "pagado el"; $lang['InvDateCancel'] = "cancelado el"; $lang['InvLinkInfo'] = "Mostrar factura %s"; $lang['InvoiceSearch'] = "Buscar Facturas"; $lang['SearchForInv'] = "Buscar una factura"; $lang['SearchForInvExt'] = "Búsqueda avanzada de facturas"; $lang['InvSelInfo'] = "(Vacio para mostrar todas las facturas)"; $lang['Accountant'] = "Contable"; $lang['InvDocument'] = "Mostrar documento"; $lang['InvDocumentI'] = "Mostrar factura como documento PDF"; ?> --- NEW FILE: fr.p3 --- <? # $Id: fr.p3,v 1.1 2002/06/27 17:28:17 gokohnert Exp $ # # ========================= NOTE ======================== # Please put site specific extensions and changes # to TUTOS language files in a file called "fr_custom.p3" # or "lang_custom.p3" (for all languages) # using the same format like here # ======================================================= # # # French Texts for this module # # Invoice $lang['InvoiceStates'] = array(); $lang['InvDateSent'] = array(); $lang['InvDateDue'] = array(); $lang['invoice'] = &$lang['Invoice']; $lang['perm'][useinvoice] = "Utiliser la Facturation"; # Invoice $lang['Invoice'] = "Facturation"; $lang['Invoices'] = "Factures"; $lang['InvoiceCreate'] = "Créer une facture"; $lang['InvoiceCreateI'] = "Créer une facture pour %s"; $lang['InvoiceCreation'] = "Créé par %s sur %s"; $lang['InvoiceName'] = "Identifiant de facture"; $lang['InvoiceCustomer'] = "Client"; $lang['InvAnyUnpaid'] = "Tout impayé"; $lang['InvoiceState'] = "État"; $lang['InvoiceStates'][1] = "nouveau"; $lang['InvoiceStates'][2] = "près à l'envoi"; $lang['InvoiceStates'][3] = "à payer"; $lang['InvoiceStates'][4] = "rappel"; $lang['InvoiceStates'][5] = "1. Rappel"; $lang['InvoiceStates'][6] = "2. Rappel"; $lang['InvoiceStates'][7] = "payé"; $lang['InvoiceStates'][8] = "annulé"; $lang['InvPosPos'] = "Position"; $lang['InvPosItems'] = "compte"; $lang['InvPosIType'] = "-"; $lang['InvPosDesc'] = "Description"; $lang['InvPosSingle'] = "une"; $lang['InvPosTax'] = "% Tax"; $lang['InvPosSum'] = "Somme"; $lang['InvPossiblePos'] = "Positions possibles"; $lang['InvExistingPos'] = "Positions"; $lang['InvAddPos'] = "avtiver la position"; $lang['InvDelPos'] = "supprimer la position"; $lang['InvModInfo'] = "Modifier la facture %s"; $lang['InvDelInfo'] = "Effecer la facture %s"; $lang['InvOverview'] = "Invoice Overview"; $lang['InvDateSent'][0] = "envoyé à"; $lang['InvDateDue'][0] = "dû"; $lang['InvDateSent'][1] = "1.Rappel envoyé"; $lang['InvDateDue'][1] = "1.Rappel dû"; $lang['InvDateSent'][2] = "2.Rappel envoyé"; $lang['InvDateDue'][2] = "2.Rappel dû"; $lang['InvDatePayed'] = "Payé le"; $lang['InvDateCancel'] = "Annulé le"; $lang['InvLinkInfo'] = "Afficher la facture %s"; $lang['InvoiceSearch'] = "Rechercher une facture"; $lang['SearchForInv'] = "Rechercher une facture"; $lang['SearchForInvExt'] = "Recherche étendue de facture"; $lang['InvSelInfo'] = "(laisser vide pour toutes les factures)"; $lang['Accountant'] = "Accountant"; $lang['InvDocument'] = "Show Document"; $lang['InvDocumentI'] = "Afficher la facture en PDF"; ?> --- NEW FILE: invoice.pinc --- <? if ( isset ($includes['invoice.pinc']) ) {$includes['invoice.pinc']++;return;} /* * Copyright 2002 by Gero Kohnert * * CVS Info: $Id: invoice.pinc,v 1.1 2002/06/27 17:28:17 gokohnert Exp $ * $Author: gokohnert $ */ /** --------------------------------------------------------------------------- */ function InvAskState ($default,$any) { global $lang; $r = "<SELECT name=\"state\">"; @reset($lang['InvoiceStates']); while ( list ($i,$f) = @each ($lang['InvoiceStates']) ) { $r .= "<OPTION value=". $i ." "; if ( $i == $default ) { $r .= " SELECTED "; } $r .= ">". $f ."</OPTION>\n"; } if ( $any > 0 ) { $r .= "<OPTION value=-1"; if ( -1 == $default ) { $r .= " SELECTED "; } $r .= ">". $lang['any'] ."</OPTION>"; } # Any but not closed if ( $any == 2 ) { $r .= "<OPTION value=-2"; if ( -2 == $default ) { $r .= " SELECTED "; } $r .= ">". $lang['InvAnyUnpaid'] ."</OPTION>"; } $r .= "\n</SELECT>"; return $r; } /* --------------------------------------------------------------------------- * Read a list of all invoices */ function readInvoice (&$obj) { if ( ! isset($obj->id) ) { return; } if ( ($obj->getType() == "product") || ($obj->getType() == "installation") ) { $q = "SELECT * from invoice where link_id = ". $obj->id ." order by creation desc"; } else if ( ($obj->getType() == "company") || ($obj->getType() == "department") ) { $q = "SELECT * from invoice where customer = ". $obj->id ." order by creation desc"; } else { $q = "SELECT * from invoice where creator = ". $obj->id ." order by creation desc"; } $r = $obj->dbconn->Exec($q); $n = $r->numrows(); $a = 0; while ($a < $n) { $i = new invoice($obj->dbconn); $i->read_result($r,$a); if ( $i->see_ok() ) { $obj->invlist[$i->id] = &$i; } $a++; unset($i); } $r->free(); return; } /* --------------------------------------------------------------------------- * List all notes * cols > 0 make sperate rows with cols columns for each note */ function showInvoice(&$obj,$cols,$rows = 0) { global $tutos,$lang; $n = 1; $x = count($obj->invlist); if ( $rows == 0 ) { $rows = $tutos[maxshort]; } if ( $rows == -1 ) { $rows = count($obj->invlist); } @reset ($obj->invlist); $pre = ""; while ( list ($i,$f) = @each ($obj->invlist) ) { if ( $cols > 0 ) { echo "<TR><TD VALIGN=top COLSPAN=\"". $cols ."\">\n"; } if ( ($n >= $rows) && ( $x != $rows ) ) { echo $pre . $tutos[image][folder] ." ". makelink("invoice_overview.php?link_id=". $obj->id,sprintf($lang['AllEntries'], count($obj->invlist))); if ( $cols > 0 ) { echo "</TD></TR>\n"; } break; } echo $pre . $tutos[image][paper] ." ". $f->getLink() ." ". $f->creation->getDateTime() ." ".$f->creator->getLink($f->creator->getShortname())." ". $lang['InvoiceStates'][$f->state] ; $pre = "<BR>\n"; if ( $cols > 0 ) { echo "</TD></TR>\n"; } $n++; } } /** --------------------------------------------------------------------------- * A invoice position * * @package invoice */ class invpos extends tutos_base { /** * */ function invpos(&$dbconn) { global $tutos; $this->init($dbconn); $this->tablename = "invoice_pos"; $this->description = "??"; $this->currency = $tutos[currencies][0]; $this->items = 0; $this->itype = "*"; $this->inv_id = -1; $this->ref_id = -1; $this->ref = -1; $this->tax = 0; } /** * */ function read_result (&$r, $pos ) { global $g_invpos; $this->id = $r->get($pos, "id"); $this->ref_id = $r->get($pos, "ref_id"); $this->inv_id = $r->get($pos, "inv_id"); $this->items = $r->get($pos, "items"); $this->itype = $r->get($pos, "ityp"); $this->pos = $r->get($pos, "pos"); $this->description = $r->get($pos, "description"); $this->sum_single = $r->get($pos, "sum_single"); $this->currency = $r->get($pos, "currency"); $this->tax = $r->get($pos, "tax"); $this->ref = -1; $this->inv = -1; } /* * preset the object with data from $obj */ function read_ref() { if ( ($this->ref == -1) && ($this->ref_id > -1) ) { $this->ref = getObject($this->dbconn,$this->ref_id); } if ( ($this->inv == -1) && ($this->inv_id > -1) ) { $this->inv = new invoice($this->dbconn); $this->inv->read($this->inv_id); } } /* * preset the object with data from $obj */ function set(&$inv,&$obj) { global $lang; $this->inv_id = $inv->id; $this->inv = &$inv; $this->ref_id = $obj->id; $this->ref = $obj; if ( $obj->gettype() == "product" ) { $this->items = 1; $this->itype = $lang['pcs']; $this->sum_single = $obj->price; $this->description = $lang[$obj->getType()] ."\n". $obj->getFullName(); $this->currency = $obj->currency; $this->itype = $lang['pcs']; } else if ( $obj->gettype() == "installation" ) { $this->items = 1; $this->itype = $lang['pcs']; $this->sum_single = $obj->money; $this->currency = $obj->currency; $this->description = $lang[$obj->getType()] ."\n". $obj->getFullName(); $p->itype = $lang['pcs']; } else if ( $obj->gettype() == "timetrack" ) { $this->items = $obj->volume; $this->itype = $lang['hours']; $this->sum_single = $obj->cph; $this->description = $lang[$obj->getType()] ."\n". $obj->desc; $this->currency = $obj->currency; } else if ( $obj->gettype() == "task" ) { $this->items = 1; $this->itype = $lang['pcs']; $this->description = $lang[$obj->getType()] ."\n". $obj->desc; $this->sum_single = 0; $obj->readtimetrack(); @reset($obj->ttlist) ; while ( list ($i2,$f2) = @each ($obj->ttlist) ) { if ( $f2->state != 1 ) { # Show only checked entries continue; } $this->sum_single += $f2->volume * $f2->cph; $this->currency = $f2->currency; $this->description .= "\n". $f2->wday->getDate() ." ". $f2->volume ." ". $lang['hours'] ." ". $lang['InvPosSingle'] ." ". $f2->cph ." ". $f2->currency; } } else { } } /** * */ function getTotal() { if ( $this->tax != 0 ) { return $this->sum_single * $this->items * (1 + ($this->tax/100.0)); } else { return $this->sum_single * $this->items; } } /** * */ function save() { $msg = ""; $q = new query($this->dbconn); $q->setTable($this->tablename); $q->addFV("pos",$this->pos,"INT"); $q->addFV("ref_id",$this->ref_id,"INT"); $q->addFV("inv_id",$this->inv_id,"INT"); $q->addFV("items",$this->items,"FLOAT"); $q->addFV("ityp",$this->itype,"STRING",30); $q->addFV("description",$this->description,"STRING",60); $q->addFV("sum_single",$this->sum_single,"FLOAT"); $q->addFV("tax",$this->tax,"FLOAT"); $q->addFV("currency",$this->currency,"STRING"); if ( $this->id < 0 ) { if ( isset($this->newid) ) { $this->id = $this->newid; $q->addFV("id",$this->id,""); } else { $this->id = $q->addFV("id",-1,"NEXTID"); } $query = $q->getInsert(); } else { $q->addWC("id",$this->id,""); $query = $q->getUpdate(); } $this->dbconn->Exec($query); if ( ($this->ref != -1) && ($this->ref->getType() == "timetrack") ) { $this->ref->SetInvoice($this->inv_id); if ($this->inv->state == 7) { $this->ref->SetState(3); } $msg .= $this->ref->save(); } if ( ($this->ref != -1) && ($this->ref->getType() == "task") ) { $this->ref->readtimetrack(); @reset($this->ref->ttlist) ; while ( list ($i2,$f2) = @each ($this->ref->ttlist) ) { if ( $f2->state != 1 ) { # change only checked entries continue; } $f2->SetInvoice($this->inv_id); # if the state is paided then mark the timetracks as paid if ($this->inv->state == 7) { $f2->SetState(3); } $msg .= $f2->save(); } } return $msg; } /** * */ function delete() { $msg = ""; $q = "DELETE FROM ". $this->tablename ." WHERE id = ". $this->id; $r = $this->dbconn->Exec($q); $q = "UPDATE timetrack set invoice = -1 WHERE id = ". $this->ref_id; $r = $this->dbconn->Exec($q); return $msg; } /* --------------------------------------------------------------------------- * Transfer reference ids according to given table */ function transfer_ids (&$trans) { parent::transfer_ids ($trans); if (isset($trans[$this->ref_id])) { $this->ref_id = $trans[$this->ref_id]; } if (isset($trans[$this->inv_id])) { $this->inv_id = $trans[$this->inv_id]; } return; } /* --------------------------------------------------------------------------- * get the type of object */ function gettype () { return "invpos"; } } /** --------------------------------------------------------------------------- * A invoice * * @package invoice */ class invoice extends tutos_module { /* --------------------------------------------------------------------------- */ function invoice(&$dbconn) { global $current_user,$tutos; $this->init($dbconn); $this->name = "# 0"; $this->state = 1; $this->pos = array(); $this->customer_id = -1; $this->accountant = $current_user->id; $this->datesent[0] = new DateTime(0); $this->datedue[0] = new DateTime(0); $this->datesent[1] = new DateTime(0); $this->datedue[1] = new DateTime(0); $this->datesent[2] = new DateTime(0); $this->datedue[2] = new DateTime(0); $this->datefinish = new DateTime(0); $this->tablename = "invoice"; $this->tablename2 = "invoice_pos"; } /* --------------------------------------------------------------------------- */ function read_result (&$r, $pos ) { global $g_inv; $this->id = $r->get($pos, "id"); $this->name = StripSlashes($r->get($pos, "name")); $this->state = $r->get($pos, "state"); $this->link_id = $r->get($pos, "link_id"); $this->accountant = $r->get($pos, "accountant"); $this->customer_id = $r->get($pos, "customer"); $this->customer = getObject($this->dbconn,$this->customer_id); $this->datesent[0] = new DateTime($r->get($pos, "d_sent0")); $this->datesent[1] = new DateTime($r->get($pos, "d_sent1")); $this->datesent[2] = new DateTime($r->get($pos, "d_sent2")); $this->datedue[0] = new DateTime($r->get($pos, "d_due0")); $this->datedue[1] = new DateTime($r->get($pos, "d_due1")); $this->datedue[2] = new DateTime($r->get($pos, "d_due2")); $this->datefinish = new DateTime($r->get($pos, "d_finish")); $this->creator = new tutos_address($this->dbconn); $this->creator->read($r->get($pos, "creator")); $this->creation = new DateTime($r->get($pos, "creation")); $this->pos = array(); acl_read($this); $g_inv[$this->id] = &$this; } /* --------------------------------------------------------------------------- */ function read ($id ) { global $g_inv; if ( empty($id) ) return; if ( -1 == $id ) return; if ( isset($g_inv[$id]) ) { # Hashed $this = $g_inv[$id]; # echo "HASHED ". $this->getType() ." ". $this->getFullName() ."<BR>"; return; } $q = "SELECT * FROM ". $this->tablename ." WHERE id =". $id; $r = $this->dbconn->Exec($q); $n = $r->numrows(); if ( 0 == $n) { return; } $this->read_result($r,0); $r->free(); } /* --------------------------------------------------------------------------- * read the positions of this invoice */ function read_pos () { if ( empty($this->id) ) return; if ( -1 == $this->id ) return; $q = "SELECT * FROM ". $this->tablename2 ." WHERE inv_id =". $this->id ." ORDER BY pos"; $r = $this->dbconn->Exec($q); $n = $r->numrows(); if ( 0 == $n) { return; } $a = 0; while ($a < $n) { $i = new invpos($this->dbconn); $i->read_result($r,$a); $i->invoice = &$this; $this->pos[$i->id] = &$i; unset ($i); $a++; } $r->free(); } /* --------------------------------------------------------------------------- * read the positions of this invoice */ function add_pos ($x) { $obj = getObject($this->dbconn,$x); $p = new invpos($this->dbconn); $p->set($this,$obj); $p->pos = count($this->pos) + 1; $this->pos[$obj->id] = &$p; unset($p); } /* --------------------------------------------------------------------------- * save the positions of this invoice */ function save_pos () { if ( empty($this->id) ) return; if ( -1 == $this->id ) return; @reset($this->pos); while ( list ($i,$f) = @each ($this->pos) ) { if ( isset($f->DELETE) && ($f->DELETE == 1) ) { $f->delete(); $f->id = -1; unset($f); } } $pos = 1; @reset($this->pos); while ( list ($i,$f) = @each ($this->pos) ) { $f->pos = $pos++; $f->inv_id = $this->id; $f->inv = &$this; $f->read_ref(); $f->save(); unset($f); } } /* --------------------------------------------------------------------------- */ function read_ref () { $this->ref = getObject($this->dbconn,$this->link_id,0); $this->acc = getObject($this->dbconn,$this->accountant,0); } /* --------------------------------------------------------------------------- * who may see this resource */ function see_ok ( ) { global $current_user; if ( ! $current_user->feature_ok(useinvoice,PERM_SEE) ) { return 0; } return acl_see_ok($this); } /* --------------------------------------------------------------------------- * is the invoice in a state where chenges are possible */ function change_ok() { if ( ($this->state == 3) || ( $this->state == 7) ) { # to be payed return 0; } # default yes we can change return 1; } /* --------------------------------------------------------------------------- * Return a fullname i.e name */ function getFullname() { return sprintf("%s",$this->name); } /* --------------------------------------------------------------------------- * Return a url that displays this invoice */ function getURL() { return "invoice/invoice_show.php?id=". $this->id; } /* --------------------------------------------------------------------------- * Return the sum of all positions */ function getSum() { $sum[0] = 0; $sum[1] = 0; @reset($this->pos) ; while ( list ($i,$f) = @each ($this->pos) ) { } return $sum; } /* --------------------------------------------------------------------------- * Return a link to this appointment */ function getLink($text = "") { global $lang; if ( empty($text) ) { $text = $this->getFullname(); } if ( $this->see_ok() ) { return makelink($this->getURL(),myentities($text),sprintf($lang['InvLinkInfo'],$this->getFullName()) ); } else { return myentities($text); } } /* --------------------------------------------------------------------------- * Set the state */ function setState($value) { if ( $this->setIntField("state",$value,"InvoiceState") ){ if ( ($value == 7) || ($value == 8) ) { $this->setDateFinish(new DateTime()); } } } /* --------------------------------------------------------------------------- * Set the Accountant */ function setAccountant($value) { $this->setIntField("accountant",$value,"Accountant"); } /* --------------------------------------------------------------------------- * Set the name */ function setName($value) { $this->setStrField("name",$value,"InvoiceName"); } /* --------------------------------------------------------------------------- * set the Customer */ function setCustomer($obj) { if ( ($this->customer_id != $obj->id) ) { $this->modified[] = array ( "field" => "Customer", "old" => $this->customer_id , "new" => $obj->id ); $this->customer = $obj; $this->customer_id = $obj->id; } unset($c); return; } /* --------------------------------------------------------------------------- * set the Due Date */ function setDateDue($idx,&$name) { $a = $this->datedue[$idx]->getYYYYMMDD(); $b = $name->getYYYYMMDD(); if ( $a != $b ) { $this->modified[] = array ( "field" => "InvDateDue_".$idx, "old" => $a , "new" => $b ); $this->datedue[$idx] = $name; } return; } /* --------------------------------------------------------------------------- * set the Due Date */ function setDateSent($idx,&$name) { $a = $this->datesent[$idx]->getYYYYMMDD(); $b = $name->getYYYYMMDD(); if ( $a != $b ) { $this->modified[] = array ( "field" => "InvDateSent_".$idx, "old" => $a , "new" => $b ); $this->datesent[$idx] = $name; } return; } /* --------------------------------------------------------------------------- * set the Finish Date */ function setDateFinish(&$name) { $a = $this->datefinish->getYYYYMMDD(); $b = $name->getYYYYMMDD(); if ( $a != $b ) { if ($this->state == 7 ) { $this->modified[] = array ( "field" => "InvDatePayed", "old" => $a , "new" => $b ); } else { $this->modified[] = array ( "field" => "InvDateCancel", "old" => $a , "new" => $b ); } $this->datefinish = $name; } return; } /* --------------------------------------------------------------------------- * Save Resource to DB */ function save() { global $tutos,$current_user; $msg = ""; $q = new query($this->dbconn); $q->setTable($this->tablename); $q->addFV("name",$this->name,"STRING"); $q->addFV("state",$this->state,"INT"); $q->addFV("link_id",$this->link_id,"INT"); $q->addFV("accountant",$this->accountant,"INT"); $q->addFV("customer",$this->customer,"OBJ"); $q->addFV("d_sent0",$this->datesent[0],"DATETIME"); $q->addFV("d_sent1",$this->datesent[1],"DATETIME"); $q->addFV("d_sent2",$this->datesent[2],"DATETIME"); $q->addFV("d_due0",$this->datedue[0],"DATETIME"); $q->addFV("d_due1",$this->datedue[1],"DATETIME"); $q->addFV("d_due2",$this->datedue[2],"DATETIME"); $q->addFV("d_finish",$this->datefinish,"DATETIME"); if ( $this->id < 0 ) { unset ($this->modified); if ( isset($this->newid) ) { $this->id = $this->newid; $q->addFV("id",$this->id,""); } else { $this->id = $q->addFV("id",-1,"NEXTID"); $this->acl[$this->creator->id] = $tutos[delok]; acl_default($this,$current_user); unset ($this->modified); $this->modified[] = array ( "field" => "created" , "old" => $this->getType() , "new" => $this->id, "obj_id" => $this->id ); } $q->addFV("creator",$this->creator,"OBJ"); $q->addFV("creation",$this->creation,"DATETIME"); $query = $q->getInsert(); } else { $q->addWC("id",$this->id,""); $query = $q->getUpdate(); } $this->dbconn->Exec($query); $this->save_pos(); $msg .= parent::save(); return $msg; } /* --------------------------------------------------------------------------- * delete this invoice an set the positions references to unaccounted */ function delete() { global $lang, $tutos; $msg = ""; $msg .= tutos_file::obj_delete($current_user,$this); $this->read_Pos(); @reset($this->pos); while ( list ($i,$f) = @each ($this->pos) ) { $msg .= $f->delete(); } $q = "DELETE FROM ". $this->tablename ." WHERE id = ". $this->id; $r = $this->dbconn->Exec($q); $msg .= parent::delete(); return $msg; } /* --------------------------------------------------------------------------- * get the invoice as a PDF file */ function getPDF () { global $tutos,$lang; $pdf = pdf_new(); pdf_open_file($pdf, ""); pdf_set_value($pdf, "compress", 9); pdf_set_info($pdf, "Author", $this->creator->getFullName()); pdf_set_info($pdf, "Title", $this->getFullName()); pdf_set_info($pdf, "Creator",$this->creator->getFullName()); pdf_set_info($pdf, "Subject",$this->getFullName()); # $font = pdf_find_font($pdf,"Times","host",1); pdf_begin_page($pdf, 595, 842); pdf_add_outline($pdf, "Page 1"); if ( isset($tutos[logo]) ) { $pdfimage = pdf_open_image_file($pdf, "png",$tutos[logo]); if ( $pdfimage ) { pdf_place_image($pdf, $pdfimage, 30, 750, 1); pdf_close_image($pdf,$pdfimage); } } pdf_moveto($pdf, 30, 750); pdf_lineto($pdf, 530, 750); pdf_stroke($pdf); $y = 760; pdf_set_font($pdf, "Times-Roman", 16, "host"); pdf_add_weblink($pdf,0,0,10,10,$this->getUrl()); pdf_show_xy($pdf, $lang['Invoice']." ". $this->getFullName(), 150, $y); $y -= 40; # Customer # Accountant $x = 50; pdf_show_xy($pdf,$this->customer->getFullName(), $x, $y); $x = 450; if ( $this->acc->getType() == "location" ) { pdf_show_xy($pdf,$this->acc->company->getFullName(), $x, $y); } else { pdf_show_xy($pdf,$this->acc->getFullName(), $x, $y); } $y -= 40; # Product $x = 50; pdf_show_xy($pdf,$lang[$this->ref->getType()], $x, $y); $x += 200; pdf_show_xy($pdf,$this->ref->getFullName(), $x, $y); $y -= 40; # Dates if ( ($this->datesent[0]->notime != 1) or ($this->datedue[0]->notime != 1) ) { $x = 50; pdf_show_xy($pdf,$lang['InvDateSent'][0], $x, $y); $x += 200; pdf_show_xy($pdf,$this->datesent[0]->getDate(), $x, $y); $y -= 20; $x = 50; pdf_show_xy($pdf,$lang['InvDateDue'][0], $x, $y); $x += 200; pdf_show_xy($pdf,$this->datedue[0]->getDate(), $x, $y); $y -= 20; } # Positions $y -= 20; @reset($tutos[currencies]); while( list ($i,$c) = @each ($tutos[currencies])) { $sum[$c] = 0.0; } pdf_set_font($pdf, "Times-Roman", 12, "host"); @reset($this->pos) ; while ( list ($i,$f) = @each ($this->pos) ) { # Default line height $h = 20; $sum[$f->currency] += $f->getTotal(); $x = 40; pdf_show_xy($pdf, $f->pos, $x, $y); $x += 30; pdf_show_xy($pdf, number_format($f->items,2,$lang['DecPoint'],$lang['ThousandPoint']), $x, $y); $x += 30; pdf_show_xy($pdf, $f->itype, $x, $y); $x += 50; $l = explode("\n",$f->description); while ( list ($i,$line) = @each ($l) ) { pdf_show_xy($pdf, $line, $x, $y - ($i * 20)); if ( $i > 0 ) $h += 20; } $x += 200; pdf_show_xy($pdf, number_format($f->sum_single ,2,$lang['DecPoint'],$lang['ThousandPoint']), $x, $y); $x += 40; pdf_show_xy($pdf, number_format($f->getTotal(),2,$lang['DecPoint'],$lang['ThousandPoint']), $x, $y); $x += 90; pdf_show_xy($pdf, $f->currency , $x, $y); $x += 60; # BOX pdf_moveto($pdf, 30, $y +17); pdf_lineto($pdf, $x, $y +17); # pdf_lineto($pdf, $x, $y+ $h +3); # pdf_moveto($pdf, 30, $y); # pdf_lineto($pdf, 30, $y+ $h +3); # pdf_lineto($pdf, $x, $y+ $h +3); pdf_stroke($pdf); $y -= 3; $y -= $h; } # Summary @reset($tutos[currencies]); $pre = ""; while( list ($i,$c) = @each ($tutos[currencies])) { if ( $sum[$c] != 0 ) { $x = 390; pdf_show_xy($pdf,number_format($sum[$c],2,$lang['DecPoint'],$lang['ThousandPoint']),$x,$y); $x += 90; pdf_show_xy($pdf, $c,$x,$y); $y -= 20; } } pdf_end_page($pdf); pdf_close($pdf); $r = pdf_get_buffer($pdf); pdf_delete($pdf); return $r; } /* --------------------------------------------------------------------------- * Transfer reference ids according to given table */ function transfer_ids (&$trans) { parent::transfer_ids ($trans); if (isset($trans[$this->link_id])) { $this->link_id = $trans[$this->link_id]; } if (isset($trans[$this->lcustomer_id])) { $this->customer_id = $trans[$this->customer_id]; } return; } /* --------------------------------------------------------------------------- * get the type of object */ function gettype () { return "invoice"; } /* --------------------------------------------------------------------------- * The following methods are abstract factory functions for groups * which handle the membership list of an object * --------------------------------------------------------------------------- */ /** * create a list of invoices for the given object */ function infolist (&$user,&$obj,$cols,$format = "html") { global $lang; if ( ! $user->feature_ok(useinvoice,PERM_SEE) ) { return; } readInvoice($obj); if ( count($obj->invlist) > 0 ) { @reset($obj->invlist); echo "<TR>\n"; showfield($lang['Invoices']); echo " <TD VALIGN=top COLSPAN=".($cols-1).">\n"; if ( $format == "paper" ) { showInvoice($obj,0,-1); } else { showInvoice($obj,0); } echo " </TD>\n"; echo "</TR>\n"; } } /** * create a link where a invoice for the given object could be added */ function getaddlink (&$user,&$obj,$text = "") { global $lang,$HTTP_SERVER_VARS; if ( $obj == -1 ) return; if (! is_object($obj) ) return; if ( $obj->id == -1 ) return; if ( "company_show.php" == basename($HTTP_SERVER_VARS['PHP_SELF']) ) { return; } if ( "department_show.php" == basename($HTTP_SERVER_VARS['PHP_SELF']) ) { return; } if ( $user->feature_ok(useinvoice,PERM_NEW) ) { if ( $obj->see_ok() ) { return menulink("invoice/invoice_new.php?link_id=".$obj->id, $lang['InvoiceCreate'], sprintf($lang['InvoiceCreateI'], $obj->getFullName())) ." <BR>\n"; } } } } $includes['invoice.pinc'] = 1; ?> --- NEW FILE: invoice_del.php --- <? /** * Copyright 2002 by Gero Kohnert * * delete an invoice * * @modulegroup invoice * @module invoice_del * @package invoice */ $tutos['base'] = "../.."; ini_set("include_path",".."); include("webelements.p3"); include("permission.p3"); include("note.pinc"); include("bug.pinc"); include 'file.pinc'; include("product.pinc"); include("installation.pinc"); include("timetrack.pinc"); /* Check if user is allowed to use it */ check_user(); loadmodules("invoice"); loadmodule("invoice"); $msg = ""; $gotourl = $HTTP_SERVER_VARS['HTTP_REFERER']; $obj = new invoice($dbconn); if ( empty($HTTP_GET_VARS['id']) ) { $msg .= sprintf($lang['Err0040'],$lang[$obj->getType()]) ."<BR>"; } else { $obj->read($HTTP_GET_VARS['id']); $obj->read_pos(); if ( $obj->id < 1 ) { $msg .= sprintf($lang['Err0040'],$lang[$obj->getType()]) . "<BR>"; } else { $gotourl = $obj->getUrl(); } } if ( ! $obj->del_ok() ) { $msg .= sprintf($lang['Err0023'],$lang[$obj->getType()]) ."<BR>"; } if ( $msg == "" ) { $dbconn->Begin("WORK"); $msg .= $obj->delete(); $dbconn->Commit("WORK"); $gotourl = "invoice_overview.php"; } $gotourl= addUrlParameter($gotourl,"msg=". UrlEncode($msg)); $gotourl = addSessionKey($gotourl); Header("Status: 302 Moved Temporarily"); Header("Location: $gotourl"); $dbconn->Close(); /* * CVS Info: $Id: invoice_del.php,v 1.1 2002/06/27 17:28:17 gokohnert Exp $ * $Author: gokohnert $ */ ?> --- NEW FILE: invoice_ins.php --- <? /** * Copyright 1999/2000 by Gero Kohnert * * insert an invoice to the database * * @modulegroup invoice * @module invoice_ins * @package invoice */ $tutos['base'] = "../.."; ini_set("include_path",".."); include("webelements.p3"); include("permission.p3"); include("product.pinc"); include("installation.pinc"); include("timetrack.pinc"); /* Check if user is allowed to use it */ check_user(); loadmodules("invoice"); loadmodule("invoice"); $gotourl = "invoice_new.php"; $msg = ""; $i = new invoice($dbconn); if ( isset($HTTP_POST_VARS['id']) ) { $i->read($HTTP_POST_VARS['id']); $gotourl= addUrlParameter($gotourl,"id=". $i->id); $i->read_pos(); } else { $i->creator = $current_user; } if ( isset($HTTP_POST_VARS['link_id']) ) { $i->link_id = $HTTP_POST_VARS['link_id']; $gotourl= addUrlParameter($gotourl,"link_id=". $i->link_id); } if ( isset($HTTP_POST_VARS['accountant']) ) { $i->setAccountant($HTTP_POST_VARS['accountant']); $gotourl= addUrlParameter($gotourl,"accountant=". $i->accountant); } if ( isset($HTTP_POST_VARS['name']) && ($HTTP_POST_VARS['name'] != "") ) { $i->setName(Stripslashes($HTTP_POST_VARS['name'])); $gotourl= addUrlParameter($gotourl,"name=". UrlEncode($i->name)); } else { $msg .= sprintf($lang['Err0009'],$lang['InvoiceName']) ."<BR>"; } if ( isset($HTTP_POST_VARS['state']) ) { $i->setState($HTTP_POST_VARS['state']); $gotourl= addUrlParameter($gotourl,"state=". $i->state); } for ( $x = 0 ; $x < 3 ; $x++ ) { $d = new DateTime(0); $d->setDateTimeF("d". $x); $gotourl= addUrlParameter($gotourl,"d".$x."=". $d->getYYYYMMDD() ); if ( 1 != $d->checkDMY() ) { $msg .= sprintf($lang['Err0038'],$lang['InvDateDue'][$i]) ."<BR>"; } else { $i->setDateDue($x,$d); } $d = new DateTime(0); $d->setDateTimeF("s". $x); $gotourl= addUrlParameter($gotourl,"s".$x."=". $d->getYYYYMMDD() ); if ( 1 != $d->checkDMY() ) { $msg .= sprintf($lang['Err0038'],$lang['InvDateSent'][$i]) ."<BR>"; } else { $i->setDateSent($x,$d); } } if ( isset($HTTP_POST_VARS['cfn']) ) { if ( empty($HTTP_POST_VARS['cfn']) ) { $msg .= sprintf($lang['Err0009'],$lang['InvoiceCustomer']) ."<BR>"; } else { $customer = check_field($HTTP_POST_VARS['cfn'],"cfn","cl","acd"); $i->setCustomer($customer); } } if ( isset($HTTP_POST_VARS['cid']) ) { $m = getObject($dbconn,$HTTP_POST_VARS['cid']); $i->setCustomer($m); } # Add Positions if ( isset($HTTP_POST_VARS['add']) ) { @reset($HTTP_POST_VARS['add']); while (list ($key,$val) = @each ($HTTP_POST_VARS['add'])) { $i->add_Pos($val); } } # Actions in fields @reset($HTTP_POST_VARS); while (list ($key,$val) = @each ($HTTP_POST_VARS)) { if ( ereg("^([CIDST])-(.*)",$key,$a) ) { if ( !isset($i->pos[$a[2]]) ) { echo "missing $a[2]<BR>"; } if ( $a[1] == "T" ) { $i->pos[$a[2]]->tax = $val; } else if ( $a[1] == "D" ) { $i->pos[$a[2]]->description = StripSlashes($val); } else if ( $a[1] == "I" ) { $i->pos[$a[2]]->items = $val; } else if ( $a[1] == "S" ) { $i->pos[$a[2]]->sum_single = $val; } if ( $a[1] == "C" ) { $i->pos[$a[2]]->currency = $val; } } } # Delete Positions if ( isset($HTTP_POST_VARS['del']) ) { @reset($HTTP_POST_VARS['del']); while (list ($key,$val) = @each ($HTTP_POST_VARS['del'])) { $i->pos[$val]->DELETE = 1; } } # other modules $msg .= module_parseforms($current_user,$i,$gotourl); if ( $msg == "" ) { $dbconn->Begin("WORK"); $msg .= $i->save(); $dbconn->Commit("WORK"); $gotourl = "invoice_new.php?id=". $i->id; } $gotourl = addSessionKey($gotourl); $gotourl= addUrlParameter($gotourl,"msg=". UrlEncode($msg)); Header("Status: 302 Moved Temporarily"); Header("Location: ". $gotourl); $dbconn->Close(); /* * CVS Info: $Id: invoice_ins.php,v 1.1 2002/06/27 17:28:17 gokohnert Exp $ * $Author: gokohnert $ */ ?> --- NEW FILE: invoice_new.php --- <? /** * Copyright 2002 by Gero Kohnert * * create a new invoice or modify an existing one * * @modulegroup invoice * @module invoice_new * @package invoice */ $tutos['base'] = "../.."; ini_set("include_path",".."); include("webelements.p3"); include("permission.p3"); /* Check if user is allowed to use it */ check_user(); loadmodules("invoice"); loadmodule("invoice"); /* --------------------------------------------------------------------------- * */ Function show_invpos(&$f,&$obj) { global $lang; echo "<TR>\n"; if ( $f->id != -1 ) { if ( $f->ref != -1 ) { echo " <TD VALIGN=top><LABEL FOR=\"del[]\">". $f->ref->getLink($f->pos) ."</LABEL></TD>"; } else { echo " <TD VALIGN=top><LABEL FOR=\"del[]\">". $f->pos ."</LABEL></TD>"; } if ( $obj->change_ok() ) { echo " <TD VALIGN=top><INPUT NAME=\"I-". $f->id ."\" SIZE=4 VALUE=\"". $f->items ."\"></TD>"; } else { echo " <TD ALIGN=right VALIGN=top>". number_format($f->items,2,$lang['DecPoint'],$lang['ThousandPoint']) ." </TD>"; } echo " <TD VALIGN=top>". $f->itype ."</TD>"; if ( $obj->change_ok() ) { echo " <TD VALIGN=top><TEXTAREA NAME=\"D-". $f->id ."\" ROWS=3 COLS=20>". $f->description ."</TEXTAREA></TD>"; echo " <TD VALIGN=top><INPUT NAME=\"S-". $f->id ."\" TYPE=text SIZE=6 VALUE=\"". $f->sum_single ."\"></TD>"; echo " <TD VALIGN=top>"; TAX_select("T-".$f->id,$f->tax); echo " </TD>"; } else { echo " <TD VALIGN=top><PRE>". $f->description ."</PRE></TD>"; echo " <TD ALIGN=right VALIGN=top>". number_format($f->sum_single ,2,$lang['DecPoint'],$lang['ThousandPoint']) ."</TD>"; echo " <TD ALIGN=right VALIGN=top>". number_format($f->tax ,2,$lang['DecPoint'],$lang['ThousandPoint']) ."</TD>"; } echo " <TD ALIGN=right VALIGN=top>". number_format($f->getTotal(),2,$lang['DecPoint'],$lang['ThousandPoint']) ."</TD>"; if ( $obj->change_ok() ) { echo " <TD ALIGN=left VALIGN=top>\n"; Currency_Select("C-".$f->id ,$f->currency); echo "</TD>"; echo " <TD ALIGN=center VALIGN=top><INPUT TYPE=checkbox NAME=\"del[]\" VALUE=\"". $f->id ."\"></TD>"; } else { echo " <TD ALIGN=left VALIGN=top>". $f->currency ."</TD>"; echo " <TD ALIGN=center VALIGN=top> </TD>"; } } else { echo " <TD VALIGN=top><LABEL FOR=\"add[]\">". $f->ref->getLink() ."</LABEL></TD>"; echo " <TD ALIGN=right VALIGN=top>". number_format($f->items,2,$lang['DecPoint'],$lang['ThousandPoint']) ." </TD>"; echo " <TD ALIGN=right VALIGN=top>". $f->itype ." </TD>"; echo " <TD VALIGN=top><PRE>". $f->description ."</PRE></TD>"; echo " <TD ALIGN=right VALIGN=top>". number_format($f->sum_single ,2,$lang['DecPoint'],$lang['ThousandPoint']) ."</TD>"; echo " <TD VALIGN=top> </TD>"; echo " <TD ALIGN=right VALIGN=top>". number_format($f->getTotal(),2,$lang['DecPoint'],$lang['ThousandPoint']) ."</TD>"; echo " <TD ALIGN=left VALIGN=top>". $f->currency ." </TD>"; if ( is_object($f->ref) && ($f->ref->getType() == "timetrack") ) { echo " <TD ALIGN=left VALIGN=top>\n"; if ( $f->ref->state != 1 ) { echo $f->ref->getLink( $lang['TTState']." ".$lang['TTStates'][$f->ref->state]); } else { echo "<CENTER><INPUT TYPE=checkbox NAME=\"add[]\" VALUE=\"". $f->ref_id ."\"></CENTER>"; } if ( isset($f->ref->inv_id) && ($f->ref->inv_id != $obj->id) && ($f->ref->inv_id > 0) ) { $f->ref->inv = new invoice($f->dbconn); $f->ref->inv->read($f->ref->inv_id); echo " ". $f->ref->inv->getLink(); } } else { echo "<TD ALIGN=center VALIGN=top><INPUT TYPE=checkbox NAME=add[] VALUE=". $f->ref_id .">"; } echo "</TD>"; } echo "</TR>\n"; } /* --------------------------------------------------------------------------- * */ Function info(&$obj) { global $tutos,$lang,$current_user; echo "<FORM name=\"invadd\" ACTION=\"invoice_ins.php\" method=\"POST\">\n"; hiddenFormElements(); if ($obj->id > 0 ) { echo " <INPUT type=\"hidden\" value=\"". $obj->id ."\" name=\"id\">\n"; } echo "<TABLE CLASS=single BORDER=0 CELLSPACING=0>\n"; echo "<TR>\n"; echo " <TH COLSPAN=9>". sprintf($lang['Showing'],$lang[$obj->getType()])."</TH>\n"; echo "</TR>\n"; if ($obj->id > 0 ) { echo "<TR>\n"; echo " <TD COLSPAN=5>". sprintf ($lang['InvoiceCreation'],$obj->creator->getLink(),$obj->creation->getDateTime()) ."</TD>\n"; echo " <TD COLSPAN=4 ALIGN=right>". acl_link($obj) ."</TD>\n"; echo "</TR>\n"; } echo "<TR>\n"; showfieldc($lang['Accountant'],1,"accountant"); echo " <TD COLSPAN=8>\n"; if ( $obj->change_ok() ) { echo " <SELECT NAME=\"accountant\">\n"; $obj->creator->read_locs_data(); echo " <OPTION VALUE=\"". $obj->creator->id ."\">". $obj->creator->getFullName() ."</OPTION>\n"; @reset($obj->creator->location); while ( list ($j,$l) = @each ($obj->creator->location) ) { if ( is_object($l->company) ) { echo " <OPTION VALUE=\"". $l->id ."\">". $l->company->getFullName() ."</OPTION>\n"; } } echo " </SELECT>\n"; } else { echo $obj->acc->getLink(); echo " <INPUT type=\"hidden\" value=\"". $obj->accountant ."\" name=\"accountant\">\n"; } echo " </TD>\n"; echo "</TR>\n"; echo "<TR>\n"; showfieldc($lang['InvoiceName'],1,"name"); echo "<TD COLSPAN=4 VALIGN=top>\n"; if ( $obj->change_ok() ) { echo " <INPUT SIZE=30 MAXLENGTH=30 name=\"name\" value=\"". $obj->name ."\">"; } else { echo $obj->getLink(); echo " <INPUT type=\"hidden\" value=\"". $obj->name ."\" name=\"name\">\n"; } echo "</TD>\n"; showfieldc($lang['InvoiceState'],1,"state"); echo " <TD COLSPAN=3>\n"; echo " <SELECT NAME=\"state\">\n"; @reset($lang['InvoiceStates']); while ( list ($i,$f) = @each ($lang['InvoiceStates']) ) { echo " <OPTION VALUE=\"". $i ."\" ". ($i == $obj->state ? "SELECTED":"") .">". $f ."</OPTION>\n"; } echo " </SELECT>\n"; echo "</TD></TR>\n"; echo "<TR>\n"; if ( $obj->link_id > 0 ) { showfieldc($lang[$obj->ref->getType()],0,"link_id"); echo " <TD COLSPAN=8 VALIGN=top>". $obj->ref->getLink() ."</TD>"; echo "<INPUT TYPE=hidden NAME=\"link_id\" VALUE=\"". $obj->link_id ."\">"; } echo "</TR>\n"; echo "<TR>\n"; showfieldc($lang['InvoiceCustomer'],1,"cfn"); echo " <TD COLSPAN=8>\n"; if ( $obj->change_ok() ) { select_from_array_or_input($obj,"c",$obj->customer,0); } else { echo $obj->customer->getLink(); } echo "</TD></TR>\n"; echo "<TR>\n"; if ( ($obj->state == 1) or ($obj->state == 2) ) { showfieldc($lang['InvDateSent'][0]); echo " <TD COLSPAN=4>\n"; $obj->datesent[0]->EnterDate("s0",1); echo "</TD>"; showfieldc($lang['InvDateDue'][0]); echo " <TD COLSPAN=3>\n"; $obj->datedue[0]->EnterDate("d0",1); echo "</TD>"; } else { showfieldc($lang['InvDateSent'][0]); echo " <TD COLSPAN=4>\n"; $obj->datesent[0]->getDate(); echo "</TD>"; showfieldc($lang['InvDateDue'][0]); echo " <TD COLSPAN=3>\n"; $obj->datedue[0]->getDate(); echo "</TD>"; } echo "</TR>\n"; # The existing positions in the invoice echo "<TR>\n"; echo "<TH COLSPAN=9>". $lang['InvExistingPos'] ."</TH>\n"; echo "</TR>\n"; echo "<TR>\n"; echo "<TH>". $lang['InvPosPos'] ."</TH>\n"; echo "<TH>". $lang['InvPosItems'] ."</TH>\n"; echo "<TH>". $lang['InvPosIType'] ."</TH>\n"; echo "<TH>". $lang['InvPosDesc'] ."</TH>\n"; echo "<TH>". $lang['InvPosSingle'] ."</TH>\n"; echo "<TH>". $lang['InvPosTax'] ."</TH>\n"; echo "<TH>". $lang['InvPosSum'] ."</TH>\n"; echo "<TH>". $lang['Currency'] ."</TH>\n"; echo "<TH>". $lang['InvDelPos'] ."</TH>\n"; echo "</TR>\n"; $showed = array(); $obj->read_pos(); if ( count($obj->pos) == 0 ) { echo "<TR>\n"; echo "<TD COLSPAN=9 CLASS=warn>".$lang['Err0048']."</TD>\n"; echo "</TR>\n"; } @reset($obj->pos) ; while ( list ($i,$f) = @each ($obj->pos) ) { $f->read_ref(); $showed[$f->ref->id] = 1; show_invpos($f,$obj); unset($f); } if ( $obj->change_ok() ) { # The possible positions in the invoice echo "<TR>\n"; echo "<TH COLSPAN=9>". $lang['InvPossiblePos'] ."</TH>\n"; echo "</TR>\n"; echo "<TR>\n"; echo "<TH> </TH>\n"; echo "<TH>". $lang['InvPosItems'] ."</TH>\n"; echo "<TH>". $lang['InvPosIType'] ."</TH>\n"; echo "<TH>". $lang['InvPosDesc'] ."</TH>\n"; echo "<TH>". $lang['InvPosSingle'] ."</TH>\n"; echo "<TH>". $lang['InvPosTax'] ."</TH>\n"; echo "<TH>". $lang['InvPosSum'] ."</TH>\n"; echo "<TH>". $lang['Currency'] ."</TH>\n"; echo "<TH>". $lang['InvAddPos'] ."</TH>\n"; echo "</TR>\n"; $p = new invpos($obj->dbconn); $p->set($obj,$obj->ref); $p->read_ref(); if ( ! isset($showed[$p->ref->id]) ) { show_invpos($p,$obj); } # Time directly booked on the parent object $obj->ref->readtimetrack(); @reset($obj->ref->ttlist) ; while ( list ($i,$f) = @each ($obj->ref->ttlist) ) { if ( ($f->inv_id == $obj->id) && ($obj->id != -1) ) { continue; } $p = new invpos($obj->dbconn); $p->set($obj,$f); $p->read_ref(); if ( ! isset($showed[$p->ref->id]) ) { show_invpos($p,$obj); } unset($p); unset($f); } # Time booked on tasks $obj->ref->readtasks(); @reset($obj->ref->tasklist) ; while ( list ($i,$f) = @each ($obj->ref->tasklist) ) { $p = new invpos($obj->dbconn); $p->set($obj,$f); show_invpos($p,$obj); unset($p); } } # References to modules module_addforms($current_user,$obj,9); if ( $obj->mod_ok() != 0 ) { echo "<TR>\n"; if ($obj->id > 0 ) { submit_reset(0,1,4,1,3,0); } else { submit_reset(0,-1,4,1,3,0); } echo "</TR>\n"; } echo "</TABLE>\n"; echo "</FORM>\n"; echo $lang['FldsRequired'] ."\n"; } /* --------------------------------------------------------------------------- * */ Function navigate(&$obj) { global $lang, $tutos,$current_user; echo "<TABLE>"; echo "<TR><TD>"; if ( $current_user->feature_ok(useinvoice,PERM_SEL) ) { echo menulink("invoice_select.php",$lang['Search'],$lang['Search']) ."<BR>\n"; } if ( $obj->id > 0 ) { echo menulink("invoice_show.php?id=". $obj->id ,$lang['AppSeeEntry'],$lang['AppSeeEntryI']) . "<BR>"; } if ( ($obj->id > 0) && $obj->del_ok() ) { echo confirmlink("invoice_del.php?id=". $obj->id ,$lang['Delete'],sprintf($lang['InvDelInfo'],$obj->getFullname())) ." <BR>"; } else { echo "<BR>\n"; } echo "<BR>\n"; watchlist_infolink($current_user,$obj); echo "</TD></TR>"; HTML_Select(); } HTML_Header($lang['Invoice']); $stop = 0; $i = new invoice($dbconn); if ( isset($HTTP_GET_VARS['id']) ) { $i->read($HTTP_GET_VARS['id']); } if ( isset($HTTP_GET_VARS['link_id']) ) { $i->link_id = $HTTP_GET_VARS['link_id']; } if ( isset($HTTP_GET_VARS['state']) ) { $i->state = $HTTP_GET_VARS['state... [truncated message content] |