From 0fe9d746515b9a7e589a7ef31c096da061fc43b6 Mon Sep 17 00:00:00 2001 From: Anthony Callegaro Date: Thu, 4 Apr 2013 09:26:02 +0000 Subject: [PATCH] Imported Upstream version 3.0.2 --- README | 2 +- installer/install.sql | 19 +- installer/installer.php | 10 +- lib/flowplayer.controls.swf | Bin 27007 -> 36843 bytes lib/flowplayer.js | 218 ++++++--- lib/flowplayer.pseudostreaming.swf | Bin 3763 -> 4477 bytes lib/flowplayer.swf | Bin 110762 -> 120221 bytes lib/gallery.dialog.js | 4 +- lib/gallery.panel.js | 2 +- lib/gallery.show_full_size.js | 2 +- lib/images/apple-touch-icon.png | Bin 0 -> 4441 bytes lib/jquery-ui.js | 2 +- modules/akismet/module.info | 4 + .../controllers/admin_manage_comments.php | 39 +- modules/comment/helpers/comment_installer.php | 19 +- modules/comment/models/comment.php | 4 +- modules/comment/module.info | 6 +- .../views/admin_manage_comments.html.php | 211 ++------- .../admin_manage_comments_queue.html.php | 157 +++++++ modules/digibug/controllers/digibug.php | 6 +- modules/digibug/module.info | 4 + modules/exif/helpers/exif.php | 10 +- modules/exif/helpers/exif_event.php | 6 + modules/exif/module.info | 4 + .../g2_import/controllers/admin_g2_import.php | 74 ++- modules/g2_import/controllers/g2.php | 4 +- modules/g2_import/helpers/g2_import.php | 422 ++++++++++-------- modules/g2_import/helpers/g2_import_event.php | 2 +- modules/g2_import/helpers/g2_import_task.php | 8 +- modules/g2_import/module.info | 4 + .../g2_import/views/admin_g2_import.html.php | 181 +++++--- modules/gallery/config/locale.php | 11 +- modules/gallery/controllers/admin_modules.php | 6 +- .../controllers/admin_theme_options.php | 14 +- modules/gallery/controllers/admin_themes.php | 3 + .../controllers/admin_upgrade_checker.php | 2 +- modules/gallery/controllers/login.php | 5 +- modules/gallery/controllers/quick.php | 6 +- modules/gallery/css/gallery.css | 6 +- modules/gallery/helpers/MY_num.php | 14 + .../encoding.php} | 25 +- modules/gallery/helpers/gallery.php | 20 +- modules/gallery/helpers/gallery_block.php | 26 +- modules/gallery/helpers/gallery_event.php | 6 +- modules/gallery/helpers/gallery_graphics.php | 21 +- modules/gallery/helpers/gallery_installer.php | 17 +- modules/gallery/helpers/gallery_theme.php | 2 +- modules/gallery/helpers/graphics.php | 28 +- modules/gallery/helpers/item.php | 12 +- modules/gallery/helpers/module.php | 2 +- modules/gallery/helpers/random.php | 10 +- modules/gallery/helpers/system.php | 21 + modules/gallery/helpers/theme.php | 23 + modules/gallery/helpers/upgrade_checker.php | 3 +- modules/gallery/libraries/Form_Uploadify.php | 14 + modules/gallery/libraries/Gallery_View.php | 55 +++ modules/gallery/libraries/InPlaceEdit.php | 8 +- modules/gallery/libraries/Theme_View.php | 47 +- modules/gallery/models/item.php | 4 +- modules/gallery/module.info | 6 +- .../views/admin_block_welcome.html.php | 2 +- .../gallery/views/admin_languages.html.php | 2 +- .../gallery/views/admin_maintenance.html.php | 2 + modules/gallery/views/admin_modules.html.php | 54 ++- modules/gallery/views/admin_themes.html.php | 12 +- .../views/admin_themes_buttonset.html.php | 48 ++ modules/gallery/views/form_uploadify.html.php | 36 +- modules/gallery/views/movieplayer.html.php | 2 +- .../views/upgrade_checker_block.html.php | 4 +- modules/gallery/views/upgrader.html.php | 2 +- modules/image_block/module.info | 4 + modules/info/module.info | 4 + modules/notification/module.info | 4 + modules/organize/module.info | 4 + modules/recaptcha/module.info | 4 + modules/rest/module.info | 4 + modules/rss/module.info | 4 + modules/search/controllers/search.php | 6 +- modules/search/helpers/search.php | 16 + modules/search/module.info | 4 + modules/server_add/controllers/server_add.php | 2 +- .../server_add/helpers/server_add_theme.php | 16 - modules/server_add/js/admin.js | 8 - modules/server_add/module.info | 4 + .../views/admin_server_add.html.php | 23 +- modules/slideshow/module.info | 4 + modules/tag/controllers/admin_tags.php | 31 +- modules/tag/controllers/tag.php | 4 +- modules/tag/controllers/tags.php | 3 +- modules/tag/helpers/tag.php | 1 + modules/tag/helpers/tag_block.php | 2 +- modules/tag/helpers/tag_event.php | 14 +- modules/tag/helpers/tag_installer.php | 7 +- modules/tag/helpers/tag_item_rest.php | 1 + modules/tag/helpers/tag_items_rest.php | 1 + modules/tag/models/tag.php | 26 +- modules/tag/module.info | 6 +- modules/user/controllers/admin_users.php | 8 + modules/user/controllers/password.php | 5 +- modules/user/helpers/user_installer.php | 12 +- modules/user/models/user.php | 2 +- modules/user/module.info | 6 +- modules/user/views/admin_users.html.php | 2 +- modules/user/views/admin_users_group.html.php | 2 +- modules/watermark/module.info | 4 + themes/admin_wind/css/screen-rtl.css | 318 +++++++++++++ themes/admin_wind/css/screen.css | 357 ++------------- themes/admin_wind/theme.info | 4 + themes/admin_wind/views/admin.html.php | 14 +- themes/admin_wind/views/pager.html.php | 44 -- themes/admin_wind/views/paginator.html.php | 88 ++++ themes/wind/css/screen-rtl.css | 334 ++++++++++++++ themes/wind/css/screen.css | 361 ++------------- themes/wind/js/ui.init.js | 2 +- themes/wind/theme.info | 4 + themes/wind/views/page.html.php | 12 +- 116 files changed, 2312 insertions(+), 1479 deletions(-) create mode 100644 lib/images/apple-touch-icon.png create mode 100644 modules/comment/views/admin_manage_comments_queue.html.php rename modules/gallery/{libraries/MY_Pagination.php => helpers/encoding.php} (64%) create mode 100644 modules/gallery/views/admin_themes_buttonset.html.php delete mode 100644 modules/server_add/js/admin.js create mode 100644 themes/admin_wind/css/screen-rtl.css delete mode 100644 themes/admin_wind/views/pager.html.php create mode 100644 themes/admin_wind/views/paginator.html.php create mode 100644 themes/wind/css/screen-rtl.css diff --git a/README b/README index c3bbb89..007d85e 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -Gallery 3.0.1 +Gallery 3.0.2 ABOUT: Gallery 3 is a web based software product that lets you manage your diff --git a/installer/install.sql b/installer/install.sql index 865cb2a..2b8ec11 100644 --- a/installer/install.sql +++ b/installer/install.sql @@ -67,8 +67,8 @@ CREATE TABLE {comments} ( `server_http_referer` varchar(255) DEFAULT NULL, `server_http_user_agent` varchar(128) DEFAULT NULL, `server_query_string` varchar(64) DEFAULT NULL, - `server_remote_addr` varchar(32) DEFAULT NULL, - `server_remote_host` varchar(64) DEFAULT NULL, + `server_remote_addr` varchar(40) DEFAULT NULL, + `server_remote_host` varchar(255) DEFAULT NULL, `server_remote_port` varchar(16) DEFAULT NULL, `state` varchar(15) DEFAULT 'unpublished', `text` text, @@ -244,15 +244,15 @@ CREATE TABLE {modules} ( KEY `weight` (`weight`) ) AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -INSERT INTO {modules} VALUES (1,1,'gallery',46,1); -INSERT INTO {modules} VALUES (2,1,'user',3,2); -INSERT INTO {modules} VALUES (3,1,'comment',3,3); +INSERT INTO {modules} VALUES (1,1,'gallery',49,1); +INSERT INTO {modules} VALUES (2,1,'user',4,2); +INSERT INTO {modules} VALUES (3,1,'comment',4,3); INSERT INTO {modules} VALUES (4,1,'organize',4,4); INSERT INTO {modules} VALUES (5,1,'info',2,5); INSERT INTO {modules} VALUES (6,1,'rss',1,6); INSERT INTO {modules} VALUES (7,1,'search',1,7); INSERT INTO {modules} VALUES (8,1,'slideshow',2,8); -INSERT INTO {modules} VALUES (9,1,'tag',2,9); +INSERT INTO {modules} VALUES (9,1,'tag',3,9); DROP TABLE IF EXISTS {outgoing_translations}; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; @@ -382,7 +382,7 @@ CREATE TABLE {vars} ( `value` text, PRIMARY KEY (`id`), UNIQUE KEY `module_name` (`module_name`,`name`) -) AUTO_INCREMENT=40 DEFAULT CHARSET=utf8; +) AUTO_INCREMENT=43 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; INSERT INTO {vars} VALUES (NULL,'gallery','active_site_theme','wind'); INSERT INTO {vars} VALUES (NULL,'gallery','active_admin_theme','admin_wind'); @@ -406,15 +406,17 @@ INSERT INTO {vars} VALUES (NULL,'gallery','admin_area_timeout','5400'); INSERT INTO {vars} VALUES (NULL,'gallery','maintenance_mode','0'); INSERT INTO {vars} VALUES (NULL,'gallery','visible_title_length','15'); INSERT INTO {vars} VALUES (NULL,'gallery','favicon_url','lib/images/favicon.ico'); +INSERT INTO {vars} VALUES (NULL,'gallery','apple_touch_icon_url','lib/images/apple-touch-icon.png'); INSERT INTO {vars} VALUES (NULL,'gallery','email_from','unknown@unknown.com'); INSERT INTO {vars} VALUES (NULL,'gallery','email_reply_to','unknown@unknown.com'); INSERT INTO {vars} VALUES (NULL,'gallery','email_line_length','70'); INSERT INTO {vars} VALUES (NULL,'gallery','email_header_separator','s:1:\"\n\";'); INSERT INTO {vars} VALUES (NULL,'gallery','show_user_profiles_to','registered_users'); INSERT INTO {vars} VALUES (NULL,'gallery','extra_binary_paths','/usr/local/bin:/opt/local/bin:/opt/bin'); +INSERT INTO {vars} VALUES (NULL,'gallery','timezone',NULL); INSERT INTO {vars} VALUES (NULL,'gallery','blocks_site_sidebar','a:4:{i:10;a:2:{i:0;s:7:\"gallery\";i:1;s:8:\"language\";}i:11;a:2:{i:0;s:4:\"info\";i:1;s:8:\"metadata\";}i:12;a:2:{i:0;s:3:\"rss\";i:1;s:9:\"rss_feeds\";}i:13;a:2:{i:0;s:3:\"tag\";i:1;s:3:\"tag\";}}'); INSERT INTO {vars} VALUES (NULL,'gallery','identity_provider','user'); -INSERT INTO {vars} VALUES (NULL,'user','mininum_password_length','5'); +INSERT INTO {vars} VALUES (NULL,'user','minimum_password_length','5'); INSERT INTO {vars} VALUES (NULL,'comment','spam_caught','0'); INSERT INTO {vars} VALUES (NULL,'comment','access_permissions','everybody'); INSERT INTO {vars} VALUES (NULL,'info','show_title','1'); @@ -423,3 +425,4 @@ INSERT INTO {vars} VALUES (NULL,'info','show_owner','1'); INSERT INTO {vars} VALUES (NULL,'info','show_name','1'); INSERT INTO {vars} VALUES (NULL,'info','show_captured','1'); INSERT INTO {vars} VALUES (NULL,'slideshow','max_scale','0'); +INSERT INTO {vars} VALUES (NULL,'tag','tag_cloud_size','30'); diff --git a/installer/installer.php b/installer/installer.php index c23d918..0bef57a 100644 --- a/installer/installer.php +++ b/installer/installer.php @@ -191,8 +191,10 @@ class installer { $errors[] = "Gallery 3 requires a MySQL database, but PHP doesn't have either the MySQL or the MySQLi extension."; } - if (!@preg_match("/^.$/u", utf8_encode("\xF1"))) { - $errors[] = "PHP is missing Perl-Compatible Regular Expression support."; + if (!preg_match("/^.$/u", "ñ")) { + $errors[] = "PHP is missing Perl-Compatible Regular Expression with UTF-8 support."; + } else if (!preg_match("/^\pL$/u", "ñ")) { + $errors[] = "PHP is missing Perl-Compatible Regular Expression with Unicode support."; } if (!(function_exists("spl_autoload_register"))) { @@ -211,6 +213,10 @@ class installer { $errors[] = "PHP is missing the iconv extension"; } + if (!(extension_loaded("xml"))) { + $errors[] = "PHP is missing the XML Parser extension"; + } + if (!(extension_loaded("simplexml"))) { $errors[] = "PHP is missing the SimpleXML extension"; } diff --git a/lib/flowplayer.controls.swf b/lib/flowplayer.controls.swf index aacdcd309ca1c02f9196ed518dcf319ead847d38..5507a531ddcc0baccaf1339c852ee1623dfd5b05 100644 GIT binary patch literal 36843 zcmV)qK$^cpS5pdXH~|27+U&h|d{jmEKR$Eo-el85hyis0LBIe3tSCr;P!tGKY>yb0 zWJ6Xq*|@u*JdcImi-@2oy(@w=ktRhz0TBZz7VN!&D2iRa?=$z_Eh*~f_j-N*`2Idm z^qiSFbLLDtGjpcgWdu_`Vk~hbW0!K)CFLT<*n??@Ib$~jii+Fy?b6jXqSRLwY==<$ z%S%F`@^-CS4Ie(dhFb**yRv})6)1vpv+N0x=$BU+RN8(rQ(2yS&`zEp(H(RwG&jOZP(Md=|dBtF#H(25cbf_pB zTIL^aW)YzhPhr604*6p_Y#PP;++{;5+(SGa@_LK7a9EVl9rASOyrG1d;{w&UAS=J&NvwztN|2$qyrOw*K7|y*b*K7VH{e&pxEah zUhZ>`^aKhD{biwm-xnm>E9HYbw%$4; zZs>%^*o}@5<;A)uG)=w+2~dO$%vGo9;u9HXChQ+~d)CO2&kp>w$^@2s8qQmg-Q5NVHb=GoNAuVrfC{yDto0)_l6&J z?AVbVi1QEg1lXJu&QUvRCDeiv6Ex~rW5gx3MRcq!;_liaM%5Ovu(pUjwMD#FTLj~c zsGdd8xSHdoDhXe_S78JPc$J80AInTY)ri{$$c&(W)rgBFZuM__SY|(^VT-Dg*jNC#CfB7l#6Vjxji1c`pm9n()agY zleA5nvG{1=(cFP=UODK=a~FNTzO2KtKFK4FmS;m_XQ2!Ri!(J=W`_zFbVN~SYfU65 z@}Zu^{n~cx=q$}A?VYG;3MwW+0mo}83JcV?JfB=^c?JxyJTKjAd9IsbdDc8-dFsDp zd1idvkx9D3rju9)J5cwN0RtL$e~{X6Eeh0~-_8b&va8d)ZE)9D`6ou)^7*JOr^n>< z|NZ!+>yLRH$NMyD{|?4sycmaZD7iTfKSLWkS(;g^cy`Efrc>Ws_TO<>(>P><6h^S8 z>fm8}Fp&dBRf}*T0?@Hq#3+dgs21@7Is{O?I+)Q3s<+HylortOZ-(1vMgn@>(%yp? z#*p^TAnkRse6>?UbSy|?=u?e|3L zs5vfq{FMt!Fr?F1e)feI+cSF%IOjW8zB20OrpmTnH$V37`qWeW(d=!T*mF(ei#Hzj zx9O9*f|XQaFrcG~v{-7o~J|sD7YZ{n7s&4F8)Jr4Nk^TYpob6=HzYVaanB zMg~ZIM_mknvlw)oWo2d20NB&?>BU?Af~>JH+STxKqsD zGSnh@{_2Qw9y2bju70kt`ZcH?*)Y6`Xk__z$KMNl86%UdTTY*iN2X3Hx%RINv*zQb zeBO9jlgfnsEi39?H(=w;MMGb8pSk1VKNLl_t z?=LU({_>@G$6SZ1YpDH!o3QSCm8J#ZCB~RAZz&w8Vz25u&<%k|1XdJ8k?iaB+x8s5=eXN z#_iT5(3B-EJ{vs=G_N|&j~iEjG|60fk_HLdN|uey!_}-Ptgg+rbl$S?LYaR4{cjRh z7o57a)$mbw(0bHD=xKJ0q14jW(-!RDpTj#|!v983rP@@1*QPwRMJ%i>VpMGrch?rt zv9^dy_cq_<*y4vw1kg{#N5Gxy$4%LAFyV7nkSZWWxm<#gS9QZt)f(_zcf zyGwUI&%QEpqU{`EShbAoJj8t7%2L*Pj@Im2Y1G|FK>0IQ`UjV^+Ym~BefW|=Q0_Li zpw^6OD>#omopvYGIy)7g0G5T!B z54~%zl2e0P+wrR+@iE$M$A5zOj*J$=1HNLp(?iQoq7L z#o)o7K!1O^AR0vMTH*5{!s98+FD~v>5eoUsSOP`#@wrD@;S>tr>i1QYdU|?_O^F#q z>k@De8G>?TQov;H^Gqt0H74Z(|oGob#1L ziQ>3c<bJI-BSBJfna9t;9w}=E)3n~MgN96hhwyUp@6q+h~CNX_j%l9 z=~bjqMSbyod=*2yWxdFMNfieBCY(IQ-XU6N)5#xvkEbw{R)u+(*E2k>YdGu_ZxdR2 zhS7rtHIJOc{wPO(Z+Xy^lTxixiMbUae|K+@$6_$+6THKAf{JV6Jkq|X}+8J&IJa*>llzKg0in$^Xrru>QkNijtxn8hvf28lbPi|Lv*r3Q6- z%RGT3ledef&>x_u3ua)UUZCh4f%j zr2hmV)hb0)52>i~5Klr(@f=+%$_goqIGR8Lq5+a3<5`5`digP+%wDjyrC)i#8}i8B zvXEBlDe_j7)~~JmLy((D!f!<%n{DT+jW=k`c8T`1XYyZK8^6^h&VD}hyTzPFiW2f# z6TL}Gw7R}uxw{ZL9dE{o8pZb!GKF6wou~*pqmw4(mU&A>C*+l(Aw8N|b4&Bh_A$FH zgz;|l2kPqe_=+sz5Rbo9?c+x~#fd2K(#DZDB7|AO?bA^c%n%_Z6sYj1x4L~5p6tKs zD#XnWVb4G?Bx8hmzDUG!o+&I%`&-wmxWQC(z6q>ILTbO}3x5baDrJk%j26 z$D3YY4O+NiUCSsatOx|qIJP*eH4DlyZF-?kW;ouKI@leE>m2qv?ACXRcRtpT*08qv z-9?H1vfQE~Pf>rr(C0c~mYC9c%edXvj_$gRt0L;R{(}%?ic`Jt0eV zg7HJ5{Gi)aCA#g81Km=qxFKP$<`J_CMOyO=MOxl?*e;%8f56i@7?cZx!Hc3q)0hid zYp8Fe?iO0-K|}QQ1ik+@Jw*Zca3{LFC*~^;=>r4`8_I)bPcCtn75O|gd71S}Fe7QX zEcX;${g<*C)}PZ@(Ctp=N1DZ>O67cl@8 z8me&-t5GTn=$3t^mQ(A-N7=9n6(ufW&?`ZxU0lTAmWTO$aS@ADLl7A|qwQE{Fv@68 zu4=(21fwnClxlWyd@!>0NUE|8Nespq`l;3J{*cPijNmDr6QlCDkigG#vzx4 zm_3MdaMV5}x$36H5wc8mXSB_3gzVi^Ld?EO51G4+_^91RTqwL7NsQf?#0?8?p%PauyI6b7QDDxDMM(w4F;iV! zK?#_;c#tl^^un|f7KsRnWlJf=oSq2dnhg7jkYHAWWWX8W#A*>?XS4)Ik>xSMk`iKM zI4}VVvThYFF}7^!Rn}Xv+_(Optk9-`P!MJ?!oIB9TTCq=Q_`%zFw5diV}fSbpeiVl z#t=cRAV_PWA(mpA7@YKulyF_N9M!980JuvBe-9D^-(Fetib9_C3EB6>wPP72LMF%(-2 znF@wC*v~8{77Jlfm@96g5Y*l7f&>y04kdbnJ<1|WwnH=-DyS9tNmv5)pF31oBD&vU zwj@jeWZBhSM8!x!vvs%I#7j-u_Mfc?F}s%*f0HJ5&y-M5>JC6B%psg^u0@uaV~N#m zi#nRK;oq2wSWi+dGa+I)1mn7R#m2%N7+I&lTS~hG6xpsVnmeh$ZL5=LQ@vpDkgi@I zbkmd-%n!h*cl7JrcR;63d3_!BB%Xi;HIh%FZI_tslW19kC0<_<%+Czd`pd1dOedJb z-3rw;nW`?{&vgXvb# zoM5f0>1GcEldMR4%}SwFT9nZ)zr*6VJ=yZy(HTnT33!Uq5KCJgPi`^7Cig`|tGak1 zDpW!v*(`#&of5>xf1_chW~l{1tOYa)VJ>x`AH}3<6u7Mk%~3GSEU{4#vdn5nLD1Zc zsUlHwRZEJ@?%tl^!rV#;n@zSM5guqos#`TxsF56Yn`GB| z!qBez2}85mnX4QtC}`nw3?(sg)dC-uf2|-OY$nm-(YlaS;4LfkRbXi}3z%G$K{H2U zGDe)3$?SPJ%^VLgG-B$CT7&o>ZceHui&)#? z1;Qvs5rhexm(7AlkS%$zz*F z2^8oWE>>o-O7ifGJ{$ryvw- z3dVtA8S-iHR<%!)!!#@Vw5Sq=&2gfIt@}Dr9I=98?8y|Xt`U|*ixR~UYkt>>t+3Ul zlq_oVkrvJQR%wT~+>MZ+Hu3My1)gn?duq-(O~>D=^9RzR2)1EHrVAxau-v{NV`vqWM9he!Dq^C- zxxVrecPf_HPO&Vh)ibIS!(~(B&0Iwy%P(YFeqj?Elu`tp(Pc~ulg)5^RFM;dF@{j~ z-&|<4i@wm%3JR$-M!^uPj7ey=K$Nuff+BM@k2X$Kkw|q@;pvz|)W~6rAnV$$a$>Bs z6wxlxl(ZVeXOJ0Fo!shwGR2X7T`;(!xY%m%Br6cOScvI zW`%UCVk##6Zk;rNb6eEjfHhpUCD?mBAt3^QuviplbZMgU6yYoW>5@wO%J6b(X%BT!KTO4O*u0jz zg_*-!#TA%4QE(*0@P|X9D#HFrSI{ssN|&caeG5?f8NAjFZ+oG=Z#qoW}l%m{df z(5^HPvr7&pBBQb({o;Z(N7(z*R5~pUA8wj^!|<`Kb?B55;i)jUkEvmCbO>u|xHz^7 z2Tc{G9y6E1IMdLj4XJ$$N_$s@>QE=L&5at?t^U5@V)z~QfUbVT-7AovmFBZ04rEO^#-6?&G7LP+d}kgs5oiIN-X(*hf_jYDg8!5g+x! zs-`@mqMgxituC#pJW=rpG0(1CHE_o;#78~Bs;L-J(eY7_v1)9UNOXMEv#gp}qoN&R zHy85y8vpIAPh63=F~WFj`FA#6EW5)t;u2!asyIOw+s!)Rw-dx6W|cnvV7&d%0{-NJ zDyF-2@gr0e(?EEz$Jv1aBWiXxl3&{oMg^m~LI-o5fDF z=9B^D;w~k{3W~cKL4lcNa~Kg{p}UL(^!L}Z-fM&_)ivNRwPeS6Mb$AG!*Gn6yBtLp z75ibEA;rFe2{%@vP01HbC}@``7QNIxf?RbNy~3f5wI?JVlu!ECKdU+ zkV@EHkwgm8C(_u~LJS{NA-0nuJDk3>B~K`dmg6Y&dEDeNZ9LCV@%$&=3Uu+8c^tMO z+V~%ttA;Q^X#z+Ho2(QvA8V1Xr>AU4s6-*QxPZ7FC5toF8u(F3tn0V_mOO*bAH;Jw zXY|d|760fM!&YnS5rR7qZ{N(&w#M`eQ?_C4W`=zOs?g&+^e#1IqILXkMK$}2)Ulii z1+b@~hvv&kxgb>RED%42Wxnc56u10{H-l(PGqo@gb!%j47?0i|Wm=)QqDw%M$b?|t zmysRsEGWUau_j@yK)h@)1dU>K+J|C7iWii8;nzeTLVRdAtOp}}QSTJw?&AI|pcVT` z&t#9k*imlXPbQjm5_2hrfi5mr%ST3CQ;71%TUI0Wr6$y|o9?4Y&QlggR=#-w=b&cp zhAgzfL&!;@{_h`Yq7({uj&3CF1h{lG_j%t6N;iA9jcvs_UL@GLFFu@wX|+`WZ#pDP|%}yzy7(sJLeVj&h3?# z+5_TZNor{i)ajC*$fBT2Ug!M2x&3?O_wHAPiOvRs3Fa@m_46P>QBV#I_s4bVo7=4* z@7BED{WWv3Oca#<-TUVC>z?1UOOlAAs`Txf+q+v{yg2&H1$4P;dTQP->LIh@ z#X7@VBwGBYY8EBhm&3Hkzz`{f8b_X_G_Zc4F7o4ax&7LfeDOsCU|L; z*Hf-Cf5?U2EgI<>=?S?SsGdLoJ6QV)y=gPUdMeVinZvvpY1%9indJ{Jvy~w(^2A6T zE@om{C^3sRuwT?>yGq?;F}UoR!ew3H>-1a~HKCVKSlFF(p=?@5{&EL4l9sxK)R?dbWQV-PUYbWQsga{IJ?o@s89mBJD)hRD zk8ohl5}V@`>`4&o$eak2yu}nv~jm*Lv#OJo+Im zrr=No%=;pj(8X-ma4)76o7-V)lTz$1f?*M^d_R9hpwQD7W6B_ewbJK_7X#2dR?x}3 z8IfPC1?l@RdSw&)1#D{dZ#&a!_;xm>+6Svjc}1|qVLea|BJ)!JFltae*PJTj!tWtn zS`e!1xx;jBkB@pDsftr_z1V!_YCUa4YN|a}U+O)&g)A@e7Sc0e4;`4$Bu+0s=^SS` z)mitH6%oOHC@B_(5iTVgYN7|sr&a)`9`=(@mu=1n-sIfy z$Q9CE&IsXlSF*X72xS%Dk{D1~kBCeP`^*(4QP_3;N<5wr9Wy!tLk62iQRO3CK|eOh zE>PS}rEC{(rj%iTDkZ3Ly!b|7hFU%4w{$&dF)4{ksQEb*VzXbFy95 z|1Ga+rkM{fJSgqUA6NR0i)Uo%hAQ@!?gVSViN1Ex2nqSNch!?~#M zQ1V82VT}X1BGGkf{9%ENnty8{!8ZQQgB)sfpGSPjXMKxd%1n+9P=1ETHj0v>zLBMH z92s|}ZI>JhKMyohYC-W9u8Y{Ix$dp-1gL5*%d9jbt(B0>LX*QKPN}k8W};Fk1y;Lu zF5U9g?Ho3nt+@dLu$H7&|HX;)ntn5(PL03ykXFO*L@2Zei;p@4H^PVNs%Q>9Ta?w6 zL5wZw%-DRLCpIGOTuD_Z&12u|!IZE!5#gHHqdFn-mJe)B64Vz~3~jg)V}EQSx$19k zq*VKXili#P2%-2OhW4>^xNKWF<_6Yb-zqu!Se}HKAB#|EyPFX6>lq4Nk|o6aT7*(s z5%MT>C8t%CkzX4ioP?MkqDZRp(-kNY1+Ysqxs_f6`sbx4@HNE0gnGdF;(IDA^fe?Lw5NCd*PiwH#{FtDR zcZA0mj2Bn%rs04|Nc<@w3=@4Ydei3##+f@5>gGiAK(4>_LLuJ%ycazVtHhN^X9Q$F znLE9U#UY+$K3MJH5~qn|Mp^r(F8R0h&WwC+Om?uf!)xE(WqsF3r)KqIA0A|zV$I`L z7u33Mw@&R`i6XAQ&1r8?2k}Gv zA%AX}xCFBOq+wZh;wW0v)9azvDlZ+VDdCmt6WQ0D1&QL`F^7M7ScZG_L|FLo)kxFw6>Z0>2q*|hyA z$pv#?bdc%|_ICGHb8_0{v;?sEI9sT6Z{bqyER5H(kP zw%NwQe797`C7z`T<1{rU6R~4SH1`Cye5KIi^~KRmVX3&?Q{8l}mrzV;?BieYv37Vj z?hJ3nFlQy$XK&)lEqoG3%T8LgOT(tkR5~DTlNfz@*tD5$>7X-m3)r+-s+<`O_nVVy|09CX=9OQYJOS8lgF!@NgCL>=gD)oawI%`zfe z3;V*2#L2D}F5T7K1=}a5xpfCg1rY+oMxrcgQzEuR<^G^66>Cz7Cq`0Aw!Oa*95h>G zhf962*n*m0%hS1Pn3qcDijN9t*oV>gqv5i+u81m@xC|~ATXH(MFzx?rYuAh7Hi+V- zEX&Q-jN)h&#Sy8PZO&S|t|5E+=hnC z1G`X(^}7d=9}5Y>B*VbL{E!kR=31A5O3%Em{T=qzpwY<(aWtW;J#+8K>uU_Q!ztE* zW#o586k1xOoW`nntH2w_MSg6L>}7`ox{E&yOj&zrUN$KiKVy z&+FYkuWv!uzPY{f;>4kZsE{hYFpKkGfh?lUWKb=qwK0AOtp2WEVKf@0D4Un2499Rx zFSlVLqWgnRRJ5Seo+pS?qpPjlz8WUSfOmw{r-$`zhRxH-Kf>9soOGm@*h|TMa=WC6 z9_DUGr@vpL9Q*re@KezGsh(o54_m09M#mIA%2aW%;V_qJPf=PYZ>ZE=-c|72 zQsJg=K^3~6i=#VDldM}3)Pf+EM1>w>DueyLqD&EX6$Cv2Z?UU@%z)u^M-+&Q{Fd1v zp20KZ3_ZihaAqWCq-11fWM#NA8fLW2$jNAv(LUowN7sz*nK!E}GmtSXb0W{2&NF9n zm1WH0nJ>c4e2dUKM0uZQPLwhyNeE9Tw1&`2QszM^^Q4q{O3M6D%KS*m{6wmYw4Y0v zUr3o>N||3tnO{qp-$fPso`IBQ=vu1L~H=5&&=J-|vF(r%I zJd0X8i&{I2S{wAttbI*t$zVs=HRn zc+tq(tX{%p9?wft()mL?brye^H%yz&AK`QOT>dD3jL+kb^Cvi$jQPCo0?w6%;8;Wy zB`%9EHdEBQXbDkLxo$Mz`U<`hG}kJS;u>GZSDR^`6sb}#=M5j`Pf@a)nyjgoOE4nuZ{0woWf%J1Qh-6Dgk;*%fb4>@X{B-^AexP55_RO=+L>OON!1_ool-6(3Loy$Lnf>t|jS8vaYA< zN}8^u>vA0(BUY}fJ1)|Vdb*>&&M(&aB|5)Uk87aEH`3+Hbfd9uG|~Cxy4FPfkJN;f^V zhpyga^yEe(Nl)*kr}x(Nd_BF7o_>p--d9iWr>FPVQwQk$Rz3YTo!_pf-=U}9si*%- zPrpm&19jd_=XdM8K<9&W?$-HWofqo7Nar4%7wde8&P#Oe)zk0M`A|L0r>B+b>1BGl zUr#UB)9=;m^wR6}(d+cr>jd>WA-zt8o-thKBXmAe=l|CEfAl){>2>bc`2#wCQ0Jq# zUS~953}7r^9AG@)UR{~M^}3S)lK~Za-6?RU0;X|2bq3e79^!hvhvCkK`v}}QaOc8( z6z*ei=fQm(?h|n5!(9M(A>2i97sFiwcPZRuaF@ef0e2)<{EcRkzOr9=RK}B`~dEUfR6wl1A6HV`sfWlf$vkmXMoQEUm)R^fUf{(DE>9z8^CG68N`1J zI1Bg=@IBxh;0M5ufb)Q#06znM0sIR14e&eQ55S**3xH9Q-e5Ff3}7r^9AG?Pf}}T| zEa{g`k#s&4Fip}gpCRcDXTt5JU;YrBS%5zJ(1diXa0Hln1P0B9Ay8Sb;7Z2>$7|5m^@0CH-!9k2uboq*>7y8ycZdjNX@F97xd z_5%(8UX=7J4gn4WUIrWi1obO==~ui0-%)V93aA7e0~`nK1i+_X@fs$i*CjpsK0W&l zIBx>p0_kl@Z*iZ_-vRTxfcFr5AMk;s8y_S5sie35Oww<7yJNhp_wwmCO_cTClL1ozQvuTe(*a=X z4Qah0t@pip?-{b5FjLn1%#!u|`}F+#^?XqB!ITfCd@%KS7_qZu-T8>D-!d0)pMJ~z z`YqtP1v%gHC|q#ef)qDBChL7svc4$AO^?fZKluBRf4;2uhrd7h7s~no_y?f$1CV~e zVuV2-fJV4=sjTzmvVPlr`fc~?w_!@U4IH0p13j z0=xrw7w{h7eZU8R4*?$mJ_dXO_!RIN;B&wifG+`G0lo%&12`?~gTDow1z_k7{toW< zpq~T$0QeDb9`F<3XTUFjUje@XewX#4KLHm2qZGYp3|7&xfN_BFfC+$!fJuPKfGL2f zfN6^En6Bu>GXW1FJWJ6_X2YEW`dmf7=P^Jp{hoPn9tRnt;+{M7dwlvmPk=HXumG?S z0R0`h2<~D4=B;}$f8Dc0(T6TYco|?hU3@6gMh zfddIXNZ{*{Vgtgcst=MK8x_5Lv!eSU!SSr3-}@Y3D_|SI2W?RFz)nRE?E+x@g?1yn z2mTk}?gJbEyaYG|cp2~t;8jI;9#izh6N>)8>u^sh`h#x(-bA>U{vc}p;9CF`@WHnM z{q+Yi#XksreV~v2;3-hv0lW*q?EK(+NQAOKfU-Y;vOj>bKZyD~@IKr-^anqH_d~!( z2!0Is1n?=sp8-CH{|mTZ!u<*^8tB2V;eG@6G~6?QZvkh~B;UdP9&ire(;xf+EI-0~ zo^l8L48S0I0E6fO444NncpkvudEgh&e^vB^-xPf`|AWws6G=>m#eKa3S zzHx-c6PiG1B5bosZ7<1o*5LHN$4R$Uz4<1b2`wg;a}x8F`iyT0y7}fM%1G6j-I|V^D#y98EfwuO`xygq~9MTi2-ic)pep3NntP z{l`%W$MJO(d`8tL@C}4E62cNcf!6p5v=o(YQjK+rtWV;w7bfv%RiG_|o+GrC&^AKb z3GE>CJfU5Lb`#n|XfL4`2<;=ZpAfWj5WdWW1*p)e6jX>w{3SvM2^}JIn9$3F zju3i<&{0CK5~?IL6mX0@#|fPv^ctbp37sVL2B9}qz4R?rpTaQ?)8A3`tO`BrUF7;6 z;C%oVeU3$+e*pi7fR6wl13m$Ks_Iku=Y+l>^c6_osQNU18lE$%KAoS1=Q~xOK~?z? z{`0CnlT7GeR6XN&g#S>D7qLm0#m8%yX%-@ImF}6sb!u^aY^o6D`rRJAUYx*+m29^sG z>N`ZA(~Pq`zFxfXf*fxgR^yGcTDym1`EkQ3%>Ba$`0wqF{Zvkg@iQq4QUv*vn z4esxNKXhZX4Awv4ALTG6!oOW?2_~SECITioK$uJjEZg}UGN?hG=`d!>>8LXNa{zN4 z#v|C9@<$!UV{)qTILVyDjrrs*NBj!FO28_Iv5;uXsJaegDK@iw9q7*hHaP0l)iXB2 zx5;6^N;2AJ8m-ff>ynHslZ;k%>Rn`9g;ZM*{~TZ|U>jhkqh1yi4Zb}NJ$WD8{eT02 zLjdg7_{*ek4r8v8WIP4fs3bwXKsyC^$6*{(Q118P|Hx6V9@MoS6wHBU#;W?ML(ljO zF`omz0DJ>D4LAe%)?u7bGNCi)5cmP`Bj7wW6h@1MCMJFzQ_lV-miDfJ27<55Ru8tMbP={j(UFF8=*Mgd9xb+%Q8X1!;L)9Mh|d(kPlz#+e=m zcRCqz;JW2^S_~#vLWIlakVMWDipnsNP!geJ%NPA8r#Mo>A_-C`kQNcZWD8=1CRIcB zpTzWZA|Z)H$V?Oy8E&jp#Pd3)aEWKoKS7#74OX{mquOQ2pg?s*ae~PVW!OnF#6JKp z8a>LxqRS&^!pV$KRCZCkBdZ?q)(<1BcAjxYBJtf4i5|Z_rAqgp;5(}MCpncT4r_`u}x;` zoF1h((SItdhd;Z*w!WpL*kdO;oyz6DKIKQ)5=Bs5Psq#?~stWTmN&H?C!At0i&tU-PIE zrQ1w$EyNmQ!Wl$js|m7M|Gtnlw@mcpW=8#$fLMDVHaceEZ{FN&0nTGQHLk8Q6N{%5 z7Y8fAuoNO9>59k#8MTmyv)1j^RjC&qJK^=AUWU0;+Gc`jA&3ChNf{=RV)?~FY#~aX zYMT$KRSkp2S45S=T9Be7$Cw$iEhSvlR7x&{h6U2%_SZ|9kXLQ_3-?|1j{pDRpE+O3 zRo8NMnWJ8;9e8P^-K%#>cs9B$DaHVWTs~#EhAHs@R?c z8qdziNY98K_ZhXo6;BUjI3v36HtFN4hRWj@m zgM~@r$r%h*n9MW6Q$-C6Zn)hPAvnXr4w@FY-OM)CY{HmM;XJ#VJbPG2MoB}5)ey2B z9Z~KIeNVks${B<6duVjCVobhJ(5@r6kbnOWHDP={atm_!_5hz z)&$m~9j$j_oVOBNI%~A^mbN0Ay%AQ+mQ@x=C8x@i6E1PhdCN7Fm_^S?awp!oODC4c zZq0--F7ei!@iuLZH0jE#)XT1>y~H*2Z#G`Xn1i(=d;NNvA8(+D_KbC4H*%(R~fTxZVWyKv^r<1C>oXNlc7OX}W4mw-p-lp4$d0f zi4DuYIBO*7Mjh59<1Q-QKq~CrRK)_CM+XsdGd7qNa&~zUXHC0HteFREO|i_b7{Xb0 z31=<55^H&n#99rNSdNdg)}@@aDdViIpR+5=IlJm!&aMvVj=JnREl8P!X#7@?)M1>p z8_wDFBRIRk8E|B>8`((RxQKPH_ix7j!|r43e)a%k53*6{lF^)vfisq~ad5_SHUZ8= z&L+W`%-Iw;Q#qRkXF6vy;LPOgAvm)*dl=4a&K`j?hqJkG9_8#YIP*Ar9L^J*&4;sq zvxRULakd!F63&*wS;pCNI4d|?31<~&tKmG!*;8=VaP~BuwVbVk^9(vrH|n#y>aM5J z6d%9AbT-1tP~=VIsPbkw@)6FTrJyEnfuh~K1>4`A&+$&I7nhy`q4!px{B1yewgcU= z15tgsv;+QrJAwM|1YrP|p68t1x()u@xU>t-?c~Vpj@|Iz$)(-!|7#C7j7wO7w3pKX z!wbl1(6zeZVujiJIQ7AP;Ck!;@Qa+iWI6}oWU)iQiR>_^E$YjhG~)=T{(FV06&H6D z&PD81;QFjm;A1FG(QzQp383QFfQGydRB{r?`v%ZGZvqW{3&{62N>X|XsO%jC{qF*m zzXx>h`#^yYfPxZQ=rs%b+yMS?T~?{tl6o`S)nCDV$5^;7*0xp{>ybO4RTN zF#X8cd0K+lPiBAqY&Oy_qDg)Q&St-H(&^v1#^gB?$H<+@|KOy4e*(|q7dYwQD2YQ0 zi%1VKjOOss66xX?;79pbi4=02MEW>hY5hlq9I-BuR#5PDbn^K1Cw+oC>^z zPebfdJ{|sLe1=4dIum#We@G&2odvv#KP-{T&IW#xYr4@Ceca>`iF$sHL=~7T(d_=H zL_PbM!1E;P@y8{q(i6Z5PUn0$PN#DL988c4;WTkN7a{kj`C>?3%a@>p>-bXmpW(}Z z*YoAT8~6&~jeI3IH}O@#oB3)`p5;#hZ{bgY@*H0Syp=xLPez}*CQuW)5(_hy9lA#^i`V$)DM04$-qQd~xJXs(RrKg?;6 zybLTsqtjB1E1yX`uodj;k-r&2@lW+1pz;AJHL-sb`i;A7%FM#k4--k5s^8J!zWU~*r zTG)Vn$PXaqBmN?|KIShW{u6!>{!jTKX}@H&U|(?#iAIhvy;OjqQ=xgV~PmY+soE zBWj*&!(&{dia!+K|009g!NcBho9tuSl-}AC+DQepNb&-l>${06r$Y z34C073;2ZeHt=iGDU#Hay&)vMNs`_YlHL}QPD$?ozaza1{I2vKTHrnDeWZI|`T+h9 zqz~c$Q2L0}MEY1tGkUR4CH@J5pGluWlX|l+rTEVzF-t*HzLGvis;{LlfWMKx1U@Z& z1$;*O8cDvDz5zZfod*6+Is^Q@^etk~NoOI<$Y|t3&>e=!=4cQ|kVvamcZph}!|3>*?;7#&uSu$>8 zTjY3jz;iO>Y$Z9{;scDMXE@E-XIn7Di8`Lb@@ z!H&sk3uKzJ7s@nSFOq3)UM&1eWHP{)3cO5~*nW9A@Bw)RguE!Pg#RUZ75oR~)$kvZ zp9DTEKLz}wU#0>kcEsdSgwDrJl!vDLsbds1l5x0*5_TyEckaTv`X($9)^FfG8^~>$9Dvtrbq|5_8s5}mQNO=PIureR`Wn}^I5oIAVd_`FVd{kMCavMH&Oo?BDqApd~ zGL-DNvK)*js7$XZD?oT%SqXenSq1VN%4*;@l_!z@Ezw_ZD^DTzl(GiW3_p8Mk)9S! zuol$!m33&Bd)Y@y;xh`FDeDE^pa|_JyW?Yp?2b=pHvClCh$NpWn;`mg%KZz`3SWx) zf29aJLJ@X^sMTp@vw}4?$j&M9vj~5$YytjGc@FrjvX$a0*e{Aq)Sm?Pys{1WXJtFZ z4PzI~bbpF;e+Z7>l^ql}oQ+pS+&Gou#;O!IM%_tqBiK|kZiWd0ZgD)v`*>_N=;UPgeZ1(fZ3hjrEC}cps zLcIZHpnbxt3YpxMf^rNQJ*^%GUaOt}UZ=i>o_R)n9sc#|N#G6Y8^9aYH-R^)Zvk&s z-zIHW(R*7|>b>Vw>bGzDL@wzE9e&egM2n{gAX>{RnuE`Y~y{ z`Uz>f`l*u2_NkwdwyU3$wyR%|wyR%~wyR%}wyR&GXou8qNZZxZ@V~5{0X_np#$Hjs z1^uXc7L-@j@1SIr>i3`=Q_le(SAQUNSARt8YwCI6*VUhZPpUryzoGsD{HFRV>AU(H z@Z0L|z^BwdP^x!SS_I!!|5RR3j8U+B)HWAHGmlcKHAkz|j$;HKD=6bsiXE>C{hy$U zu9|2%lT@bMyoeKPkIt}I~q|)tSIws1E^usm@YiKdBGH|Ft?B z_#5>R;M3|H;4|u6;BVDOfzPRr0so-RQziDJ`Z)aO)hB>|Qs)EztS$ilMO~;iWWTD5 zAoDkMG4Su|643upmjeH(E(5-xE>~qXN?QTW(b`H-#%Qa+IaXT@JWhKOc)a!$=o7Rx zz!SBnfhTEefhTM0kZOts<(R5H1IB6EdNsuugOQ@8Za~EwLYEk830)$*S+v!&Drw{v z6#F3!lf*1a{jf$#HCrPEdqjH<1)8JLImBFTE3$c1+XmT>Y1`qSr|kfKT-yo!g!Vk} zd~KJC&KifIq&aqrPJ!4(+8)F$CE?4oy-2=XdjWWbwhtMv)b<0f(lBmR_Kc<;K!#6g zFCxJj?Iqx+wS&NGwL{=qryW+ajftGUtZvk@kEnD`@rp{r?5L>JtH3$XKf=eTf^qV3 zawPc#92w<&je_y=>!yyJG@Un8v9Wto70c~gqGjF|_>`$V@2E7!-vxe8W$&wG{d}O3 zLG~dEyGi>91>CIBF~_qSopWr_J_hAE?Gxaw+NZ$Vw9kOIYo7z}(7piPseK9jy!I9F zF70dJ-P$+6d$iNQd$lvbFKFKa@6*l#@7KNqKA?RM{GxUa_$BQJ;Dg$az=yQ;uuTtZ z=T+U9OwDs#Q>j$1h*BLDrFvDP(pG{~V#l=ov^Y)S>~)R*guXZ_o@e~5YCOX!H)hwe z4lLL4i^}+5s4SD}LS<9rPQR-uO6Q@eYL`FM6fN&hHAU}wK}~aXyNTT`jnXtOf2i`& znkLD}doUf;P2_YOw}#Vc(yN@kj{%0YgwvtQ&sY$k@lbJzjhEOYY|tb&1J;Vf9+Buo z;&Ip)FeoIp9O@ylr?BmlGCLu&4`l`;YAj@aCBvL}RAI{%wnky=6h4lsgHGF| z$m7Y2E!G688G3D^rpYpT3={dg3j0uD-zw}!h5e?`l!W{gj)(xSuL zD4btI&u66eJfJYSBX=rH>A^>05Dnz<3e((t4_CN8mh)>B=9s{Fg2IexoX06F?kUbY zC@lUUr>8c~qnxKGEa5%Q(-fBY8Rz>UH|aah55Z0Tf%7F0l=2hjv*D)x#`*mUPy3Ve zi3p~TmiQ{Tb;e12EZmHV5?=tf?i7hX0XK8H#Am|2=pl(uhMP58;&b5En=A1(aO=;L z_zJie&zJZzxR)%F_@i(yT_*AWDBQJD;^Pr)@TA1o!fp7p#Am^6v{B;EaD`p=ti-1y z+<2?R7r||^L*i56UcO7>qv1B)EAe@7o9&nQg9>l{lEj}x@QT+Zegc)t{#fFt;I_aH z`D01pEq{>srwF$iBlELxbFi`d6>jUtpd_-w+ANa!1h{RnqnZr&%FQyL2KOp#QD(!v z8vBL$aIg75=9ek#+An0@NMYAaM9vCp2UD`K!meM2YAEc6rxbocR(SihD7C^mY($|I ze&eeOAFn8^BbM^TaC5PAuYud?jKbF`3h#`?bTiy8zbbqy+`LgL-wwCy1eNcA+YQUv zPPpB%WIYeJ2bQH>aBo_u^4)N6Uas;zaC<(f^1YDT>phjf0JryajsFQZe}Tr=s|xG0 zTI0Lm-m+ffOF{4Zvc?Z1-0y_O&%^EihQ{}UKA@7GOvy6uhS^o(T#BpA8F-cJc2<%J ziX!p2`1s14yMIP zrpZ#g^UBH`;`vEER{W5bKTDG;kCn6|%C90-WhK$OcH|{j6Y)1eL|R>vMcRQ6YXh~L zGtkD@MD z7q65`OwT4M6{EH?zY7x##gA$ExAV$@9gqysH+7Io+Ix5*%k^XH>2^7Gi;3$#H$t0fCGlrvsOGv5F% zWWHG{-omq|Yis5rynRI&qZxIyL?y+Ofsd{DVdwD_*7zsyoqrK_&WJZP3W# zp@@+NEl0w3gD#pV2rD!R{QyGt-RKC3XqTfWq{>Rr>|R9~5~vIbRFC$^_E>%qDMunl z!)(V55}4Dd`SVT1d_totA4^STOjPD-Tdhc^%zA{|-~9;u z*U&Q_IQb_yqy8iBYn<{)kIH8=c11+!-YmhBz+MTvObODc9l8Dv)|xd zS7|&og)y^zju)@i+`D;l7GuZ4>YeViqq7%j?k!ZUi%CM7D8>M@7-q&0ehJM(nWn0U zfm_^u(39FARQ@TAbnH?I@u_BuEHzuCiF-Z8xTx(KRpuP4EWRUu4f>_B_+R-?TkcxR zT_YOBIad6PHYj=GsN|EC$Mf$bu7=W;rjz{2te$GRMOP={bWoX*q-HB#c;k0T+PFw zK?q$TBMnU;=$3-6g}h`C5@btU5C=Z1WpCDQdRC*`{uV?e?FOUZY8l1#tj*Pmq$`y< zF38S_V%TCcv?gLaWnWNP>~(t~s11?EbD|Bz)L&U#mcNBYm>qa7Iur)fcEfVnO zZ;u4Z^LIo7_mV0`0&AlKrc$$gi6m(Uov zHqxutDVm~oMT3lg!|vD$bZq4SRua676)MNZ6spPTSUCr)gOy9bR2)2U>_qYNn)`XJ zjjE)4df|dYbtvfh5TvzJpbWzxZItxJW$a|~KqRaz4jl(SC?|@C9)oYtE-ft)s(GT= zYfRwix9l?#0=AwZ+H9AR$!>TGH42pVGbrPO9q4`|a;l(~V7oCMF>vTF}~g z5n_@_@{LK<$rRW#u`QQ247WM2g8 zRY|uS2%;$90thIe^mqQ}zOAZ3_5YP8oF(X_0+mRS*W1RKS< zgT(amAm>gcvC5E#)Kq<&m;HM}cu?HTs%uNjkL0NTJ4e?S$jReAuPh58)=Y|Y~T~(nfbhld;Hh_0DsjR z;A+pz-30#)rnwm4zg1P;xDXN~f1OhIpUMA}>W0{>mE;girmHExM!G}YYR-Q*{Trx} z=qsnRYgC#fv^owtq1V;h8w{En=@Za_uT@l)GkvAIiLZ3I>B6@BwNk38g=EU#sEVpx zO;Y)UZf~R^m^!IL4BMNGVU;9ZYa^N`I?rS}Ymrz88ABZwXxj-lo*F+cOlRTtFe$$d>9Akw+2jUJ+_s8X#Bw z@+y>}Y@{-(Bq~X{P)dOL#5tL-X|rEIA^B@0OF3g5;+Ih+`u;RhiT-Hci$wcw_g1|@ z)Qaho=$Qfj+QBQ+b^hSkb`l7du` znVC5lDSr>rKZIJW_k+$k2-ji#s=GP|y7yh$ax{LQ%OMiyo_LnYo~oEQ$Xi zjL$>-A4=kX49Lv~xj%);^O5|IVSEANHw5SlfPP~M`acE9^N>6+h|WgzpF`}~!2XvY zc@C2QXPC@Q^5>$~uJc=av)9^2&rBDB55nq6^KVd-Veip1O~#<1hW(zN8459blSY%X zD@ayXU#HR{@+t_YWLY=3+*eU<+MA?8af#8tfhNt-RY0u|`?5i$m29FMDky7YSgBi# zyq!0auaT9q#VFXX`@wq6-Vua#yN$zCwQVx7v00|o=?NpViGDL%&WGKQmcosUZ30rHF=|)`o6Q3B-uN%XBXcbHsN-#KRAr% z5O**hr?INBMz-JZ26!&RJv)3KvSif5kd|6b*(p z>c%F)D0%3^o3xLM^o@KQS zOLBKk-zKNp45!_&KQt0=7|MhyHev{OKjTuq?J_T&CeRbxsT%{713n6c4;m$P&N*+3 z23$fv2jt`pTBmwR(!Z5ai!`Fyn5C{BONloP2{dL_T|(3HErZFz?%yUmZyPZD6K~P~ zcMK`@meDf6KEx$DI}Q7Y2<~SJA*|1lu99pQ}pwq0p4T|I6L)A0eNO^RL z*1W1Rvgi`;dW3I~C@Ih(t3n+z4-Im+k>1T35Fo%pE!BQ@QE_ zBARnvlbtAn}9ZTwg>I zigSHnq(3k!zwhCFDe(41k@gwseTGZ5xC4{Ax}*|lnYaZ0W2jEzGg%@wfPN>?e@jcB z^Pz!06v6|Bc4Z$F=g*k#Jn!Lppk5$S3sr9>wDDlL3)8V5O5HC@RWXlF<#!P{vuqF| z>EDs>4os^LJ%m6Ktn@@fG)J*CSy?JgR+b8nm8HT%lzO)>`1)kFVshW($E!vBUW|mx zFtkgH3o9dP-_Esf1pd>$;5;b=(XxmjT1HJKWX>Lz2^-{Y7r}?N-cPPwFUy$?a^-Km zHeV(K$yqFS|FPHUr%I@9;Ca}Y1X5BxosS58kJkW%DjY>aAn7g!o5X;SEFPI&l#>wt z0~PsQX~iLe1F^@VZip|U){%(n7K#P_eO-vv|3qQzPvdDDmuC4wf~PwV!k1_S-Uo~E zd%#=gGgU%NlKvNl$$h|~sxAr|vt1V0MUA;gw8T2O()Jp2kqjg>=652jcEU%B*K+M% z%LNSl@1W&Mne0V53E}?$p_^zqXTOm;V9>CgN!9x=Bz)f+8XcabT`O0oXDc~-sFM6x zM)v>K3G22%n3l-*CbL++4>djEor}u%TvWaf^HCx~{Vlooc#@)@K%i5Ze?ez|SCr}1 z$uH4O9%M&WlZ=MHmT>G5%<35?V6e{W-Z~puW_@j>KThDIA^zIy!&hW`gxLc}fd{b2 zpgLD@oj1yMvk8YCLArPl=VMra)Rx0!Ow<7o`=1y)ikrGK0r;=H>_B&+y12BI3}E1= zP?v|xzTWtmr#D(XGruHmN64WK*DRmOh-;ID5jRryt++#>6&E87v7$e27=&a-6_Xia zpHhiJE_s-nXS57u^iS-(XoC&>*R*1#$O1iV5FnpgtIVU0zJT?-f3r`h1Q(_+&Az(- z$UCE+b}aO(kS-{Q1!NNcR=CZ_fw zxslSx1=TweRTfMGW?~qBg;iug-xu%AAyWL*k??b|gBuRUVWzqf7ZOFlbK6`NZdj9GA2AH0X%d z>v8JNTa!l(HRslA$*-Y@HYrjLqzl5?KVH^}sVmvvdP3$DH!(|*lMQMf5-jH?Ps_6F z4Cd+R9Hro`Zu%IEgNI~OVGpv4wy(N^#!lT{C3T-Y#!Q^jWeSY-1LOR_{T!&>t7vJ5 zNIWcSa+mV|f=%$YQv0?d^{P(xS95ibsI`x%eq@|lJ1&TvRBBHKXor;ALqTM;T01&G z8?M$44+B_HE7hq)VKKwnNbQUTDl-=RMvnf zSvBmhBLo5$h%nlnb9r&MNtR6^1lLoF-nlonC5H+fFbR5CyjjKB+DvTM}-Mh7YUd7c+<0; z^2rg3T-lfAsE6tqQiUN^-w~(}g{Z?7%z->6094ceBUDpj_6ZUWUCOT$?)HaGH`T4h zxiy=72usNc$afc3ii<()lAc%7mfmUPEhW9npr}mIQyl%upcrXx{c(3mk;}_3tozzX zoi>tR8*<%n1tDUAQlFBsQ~5{VTfZ%gNjceJsGK6nrwvK|t~62BsZSkIp(o7L4BrWNQg)imfF0FjEO*-agB4 zQ}dBW5OQ*~!i_n_%#r<&wVyW0zS=2>Qhg@LXWfvQ%t;qvbbX0_jByRWl$~aC2o1I= zvPM#%58KFJ$gWr>Npt9ZREZ2K=;&yr{TUYzbn`8vi8d`m`;(Zg1%R}|>+Igm(>;U3HK z-26o5^`k+*tbr`fE-;5inKb3$A99;|P|0kEQX4i_mSJ%mr^Hnn$&HOX_$#yQcctN8 zuVKI+GeFB@sa|((B?!Dvl|v+nqJvZ2=Rs2u!Im5_5)UbIdO0K8)65>UBm+D+IhJNY z%#Vy$qM8JCAm%{Dd|jKm4`#3#1+8j}wy3PsviYxSCoh3&?Uj=}(3 zv(u@2eggTPc!Y+)WP|G@5u>dfQV_zfoEs$2+@J=V%2K6FNEPQfY#C1D&YR9^{88>3 zG3%*rP2JlI*j=XXdO(pA4=b{WP;IkR-CV&1hk3UZT~s<%sHLgb(ld-o)|7c}6v)P< zo*Zqeg|jf7o@^9SW6TgxAl0Q66T4n(C2ps)82ksZG~&NoJd#Mt!-9)>-Ip(j9<73- z6QbUWQ~d_4RttGFs@u_lovCNI9X2R5iphFT^=fJA)sBhttO<$3+mU90LWjhsQW}QD7pH+LcDmn=HXa7Is|C}T_Wv8+BtgKO2)v^{64#Knadt+N3 zO6oM1X2;aVcDInn@J&spM#1<_j$@L~$%-$RFd}>LOcNtHj$u21BXfD3qAq=&(aUh^ z!A*RvV;P+xdmHkp`x2*hZ1leXRj=#{QuXdPzj2ecOR!1%oBp`R8hSxrlmn;jEA!fDhtj60(~9M;5YAk)Bu%B)7I)$xNbH8DjPt#d*MV zYs-|(WP(*NtW9QEg_4;_us#f1EAaX#nJEzOvzYWx!O)|MJ;!v#NucC3%wT3FFH!nGa9z;Wk1GVM{5cIa!3S&O!gBK{xQ%d1ev3B=29m zyfn`N!&D!`hQS=!Fg5*gR)QL|e3OY~KzE_U-5V%zG>>RGpo&~HucliWswbjqaa5ZJ z(L#bw#M2L$mHjxL7wOb)u+l}UfT8J!Rg#<+z+sdJ>R_`_2O;0*V!vGf8SAdBwmz0BS*FtY)n;Xp4R=rhkplb>p9rdQY*v!^6n8eLOG8;Ah_ar>n;hs;- zP~-t_s>eJwXHz{|2DtVTHl=$}XsOvFhI0memA>+gDgl0scwFkMQuWjUUUo@ZB*XZh zKy|FUr1lc2=@KzB?N>}{0cbcNa-(nfN>FrKxutjlDUF^N^YR zlrZwi<=krPN?L7wajR_zT7zo2gloA4wT#!srKY%7%Z+C&=;5M*fVZin9-GZhRef0( z&0Wrmte>a3w0)Y)nr;<73X^GyG>E;Wq*AXHS88jtQcHPgk#1ktySBH~)Z44mwy;|e z-OkaxAI)*}Ek7!dclpuJx!3pm(c>KbSQPgP&yP4}b)>D1$Y?7LyFfmq@(Imlq%ZQO zg`0XrpIk&>pWs6UZ%Cf_0EJKQrn>d4PF8$ z)jrMumdq~9yB&rM#cFvdkS0MOtq9{25nma`CnLTpj88%Q)i6E*@zrv;fj0pw)|wFE zNg%A{u7LZ4q;(Z9TTdz!Zb>hcT}bR6K1gdxuaG%7A-xg?#X6?lMUZmSivU~C&9Na_leoIaAB!NY1~i$eBf?F6241m_jax7Eq|bp@jRC|Da^Z_3j12-Co$)-DvKb^V6oq)iQJIBcpR7U9q1x``fB;dW?qq+&x6n*W z6?>`bJRU5n?2p|QDCtj}br^S}e*?P)N_ux9`)cKFh8QOVFq09 zC$0@M%Jp`S>jSi?8s?vfw@gW_@Bp|&^!qP#cF)OK*Kwgu_Kv=W3is`$&Ao3DLY zQ@E}NWjs$@&UJlRYjL(<`h85J-Y_eCpqt(T-albfukLU7b^kO9eba}27KOg$Ll1F{ zMePrxov>L`_mtmGYx)1cN_6oilz4>jt(d_7oJDEST1S!H>T}lPxAwqp-e75kcsLfJ zbiA0-7w4o@f z|2ZjL>`{6Ulpcssda#(%_;XVFjz?)UC_SWvW8qOUoYz?Ru0IwY1HDHh^d2jw zH{tx~eb1*i6Z9UB)bxqsnm&2Xn);NUVQ+ne(!^p)lg>%$`yQofpfou`X-YArr_V|0 z2Og!z*&iKgtyZPeyq~I^b>2@?&THQH@|)m)Q=aJ&zMm=P``L5y{X>sXGx&Zk!uRvV zy*%UmdifHcv6n#ag$QRei#dDooSa?iQF;iJUQ$9g+sn#7Q5edUecXsk_7TH=$F#>8 z@$cAK!`^AyyUe&^&rElF>SRIp)yP_;&_;w-ntcs>m1%!u+AGX>IhmREev>R{{GF!6m3TS+->BK^ z;W_JLx69RbPVSw%z|Lc5$)2a!Bg`9!ESdBM)p(j2x9n&2xN(De!)3HG&rSV?k+Igwpb2N-NGu=`xSfP*7SKp|q-)(yQmB zbh$_ANl;oHp|qx$(psj}`x_|Lc$EGEBQ`>4eKDa8=Va+e9-$dvX`>SAVw)&zS^=fa ze$<`}LuZR(QIr&T`-EC;pHl4uG{KZU7{51Yl>SyndAaONs1LB2=&`xeDbOfhka7st#~b&01LWm}cgEU*7BqU%jLAk-(oOt-pv`Sp0AgFD?b?gm?v0=^p2jxCo289$ zxVSOi3ebvIw`Pg!S6E!=-fWO{Lh{o!Zz& zfxOGswP(50Z%BZ`r8LqE5U8H{OTU7i;3At6)^iFLHvt!W+zA{3-o@acoW*A@XQ5Zl zLQW1WaKz7E-k>q2pd_lA75TE6F(z62#hirs$kK2yPBDJw+u`0jpYaI$q$s5jN%@oph|%S@;vNkd#V?uzDt}yZNhX!HJIuk#ZL;%{nZ;G< zy8TLWzajyoid#TNc_l8;NS~1aVOK!Tz5Wh4m;8u*Q->nZI|;gTy8_%J5$L}M zxSuPbGvTP>I}=_Goe6!ZjXyvm98*GP!f~a@nec@lwI72)|D|Hc>{}qY(kGB8Dy5uI zbV|95CQaHNYNh^+yXk{&synTv{+znBB~_OiRC^k3kzAkTm)wdc6?{zkuV~t*>bjG} z8D@D$#fJNV5q_YV1AS_{>#5+b=_v>X^CziUB#gW*p14%b4@c2#jNjZ9!J8X*q+Zo1 zHjVJ6CPuNp?JGr7&Dfi=e}?C>+g1O*)d3}OK#`g*7niMgBXTef?kLV|6DJJ4ptDqN z6ppmUMr2Oilsc`oG@aIN*9b$6OI-&ruEzL_bO5KtZ=Ra|R12VUOonoJt_UZe)s-N9 zx}Kh{A0`nFo z_3_zBg;$>mW2}{T7Mevx#HE@3C7p%l1gtQro17Igmsic@^%3QDL|Fgi|Bv-16{LR0 zWA%Q^dtu=w?(Wo0@B_Po59(EC3`vUUvJvmYg`o<`e96@D^W4>2ik zz%Xx7F+nO*gHpd~;Xlp*ajkn4F>J;z6XJ`e=xm*)=p{5oYiH|9<|eA*Y~2}WT-~C2 zGIF$vnfmi!rjGaLB$E1bi?A zj}N+cSxNW)1l@ZQI1fd-_u=C1eI)4K$1Up2M}ue!w86(zi=q+r?g@+fy*g0uCaAtM z_CEVb%hTi@S7n8V2&qiVS!H@6;BiHX>-0)?s_}8i2#-${^EfeJ>S@rQRLay-#Y|0( zFg4L>2ymJYoXtR-a3_6yyqa7sG;<2A;VCdj?W~!v^)>Ukm`qkzWTvUJ z&YX~52UTw#)9lK57%s5qtG;%={tVjr&spCahh|%#hWg$@wMgGvq?YP?kE%l7TkIp+ z(_sB9Q4OKGb<$FnQjK)u2VmOSV3Kx_wx7oWfQ93x)C#@DrG*x*0#z4h|4BZsfP9P# z6=sDlc6OGLNYsr`B+l>!;0u0WrXP5*vq)U7LOuO9Z;PzZc{zDX6_==}M({7F-tG{( z<4HBSk-K9hGvD3I*5W!38L5j}1jDO14HvNMh+$rBR_Iu5(i_k#ud1Gg=+_czg0x!o zwZcuIR`^%gpg`&xHFT@3RdGe7E1&zxIaAccW)lNwT`71AgV(F!?)wyw+Mouz?@yx} zHbxMh2Ery4w|p*PLiEp`ZPCA+lT~k!6R(*#|F_lj%G`WDsDh6z0qV9hqDnyB&Zw_N zILd;fts%>;V0l{vp%n<*Lxib7$VCvQ0>M>r0H88F05Dk<<2bMS4z--;Q2RyC%p_zf zLo$WXIj#99wY8!X3cSjtg+STB)_8hSHMg(CF5Z(+C<^tiZ2*O+-yd5IU z1HwBIgn2;N86wOF!mbFyd?37AJb!odaHBC==W@L#srWzemo(twF!dus{XLe$el1t{ zmET(m7L|WLSgPI33KaYS%UMxTc-O2LAMFN?sh`#hWod1&)^ z*b(q>vMA36zl2i}PBws(uOfiW0DN7PakHQCbP@P%pNEc+hj%*h(4>X5w}AFgElOmI zPkUGq_+6j&a4n#{yA$mZS|EBhVR$!3%G!joMruVK{1(kWR#fl=&j09{sevh=h4N;! z78NY-`TUJ31&eMOtA%s@Jrp^v2yd^S{r*z0$o@bi`(9*!Pzz+q`>4|R2*Ue7cql~p z00<995Iz9HBO$^*AUqmD*aw8iv?6IVLG!Qgz0QqNL;nW;HBI;4*n*5S%o9abIPBN# z$x^VW*;A2X52M(LAzw$p*Q5x-5g<$s5k3dPlnBD-KzO>Sq@z9q*)ucH8p(bX*{2rQ zdz$7;;T=&ad==IF5^NZ1p`d$4!yZwkIN9Z9n(&&`P-q*^h6At(D(7>N0oVkD=R<^{ zK$sChUl_aF6| zb8F5SuHlZSS`c?U-{GU&F9jXlZU*->e?!&ngZ)CDexw%<8e!P`^vnpHG@6Ce?M6%} zn%9A=*_tLa%DU>*8)oWFGxe5PTaDhDqd}LufKuKz?Z2`YT8Xz!c*^E-sojfSNBJ!k zS`8hUAMpG>720grA1Ik-W6(&$-mhmy8iQI4`=Fj_0UPr*+->`{-~26T{!v=4t}2&H zOwy#p7)?%8$(fN_E;(AmrN9-D7eB{pp7p*!3*FrdwX>c=TcpX}IlSbf8t=Plc*^g` z;%3-V3m4JsSFCJmvVS3Mq((44two{9Mw%bUT%rZX=SFJI4A@*ti$IeBdPT#TK5PrP zshSqlEa$Xn&I*~T;FrHl!!6TW(D~opfvi;n;m@J6T8zXyrc6+`>TktO!Q~d;Ht}B( zBU0@uX?HtKKP*SWN+hgOIQg&!cfoSa(7Kf4PJ@f*EAln%whPpP_h!OlT6O&9YqZNP zwI~U%Cp>!Qq+L|ZN|l_UAN=N$B!mYoR1s#^i*V8ORT?t{1T;xP8FmQ|9dCOx>}>8( zoXyoNvrG8^QS7T$y`HsKTevN>$jlb_Z@u6{+##&njmwNR^*T0WYImDv({8iDaGgD7 zy^($o#>{FS#TA0!dds`XxQ1)j$9vmW_8w-W;nK{*CHa&l;>jnN>9rcJFJ39okINCv zY^SVG`dKG%)^(iqe~PRdJpZAa$|>`zE*Il*qX(?ZDQ+UC$j)9fF5@9hACP?Cq$!jfH_IoqW zjm$hZGV|QX%yWxo-X$;lhbMOajzfCbE7~DWqHNFpzP1os{eroY1M+u!>w9svp%oNe|)u_=WecUvz}_< z1E!<2+ReI>Y1Jyd2Ug$kFplfB$90JkU>MUxFR!?m9j-XbjpB*2O9YbZbuh7mdE*Ca zuYXkYP?FE_veFjt?Oy*F(w=83PHq7x)F!Ay-Yu_2FaVGPay&dJZc zY*F~43Sl&Lt3)qT&Zcfe>my!WdU@rGGt;<902aIx(qeaIKQB(*Jw(1bGF$WR790o{ z$9dl3crcu+bI|-BbM{{dUR-{rxDKx-&C~Ei0$+dlnxp)-fSZ}4@!KF2pTxuE6VC5x zZO>{f+?zG}YG=(fM!OpYJyCZ-S0~86EwZ79I&aq;)#Vc(^m@ zNN3RJnn|GV1qU9b)FLe&OD)vm-BSy+XHduav|f{bUhE}&_LhRZp?b*P zFuha3!#jgUbOtr+=fU2{^JA~S&)zFwuO-6XsLlnC?hG2!88r5M*c*3#><#eQTL$*- zkFfVZ=Yk*X3>x1V^w9aR_wf0#cb(7PaQ7yMXf(1gyQ$IpkoC(e((TA#fY zVDHHYdrx&Pcw%SJq|Ttp=fmEV^JDMteD+p?y{9AWWjhz#+8H#pGiciRus8ku*!z2* zy;WfE89j92Jgcjwsy%~yvi0jPT4?D zFUn!~IqD4`hFhr5>2R%oi_DaGtgFda!TANyUDhx+i`N?TBFE+o-QP+1#B*%^zGvoD z_AlvhvB0l0#;`xrGh@)2Gj%)+a<8w9Y=APdo&GolBePM<6*8}Bd|>QK@$8+JOYVZ= z_@*X>ewDY`uY$NR)7v6(nCCkpahT<>UxKEg|k@C&hY z?-q)$M}%?Uuz{4@oL@cT60^@*{mUyUI#^L zmX6zo{aC@!dWn-$xzuM=$Qt--;>xtv6nr`yYsIOh1eqz=EN1rl71`I-nXN=Rr-`>% z!AIRH#d`#=pm_&m=0r0d7a98$XM97naF9_n$Xp$|5$oieeVu$Bv(I|q>l(kxiP|C3 zhqQ0#f%6%o4i9d=rAbv+36#JD*?cw=B=bc0B-NESDBfL8(FigOZ*>|RdNDdl+RsE=bQ;g!|cY|afE}k9T?a_0S?`ZO% zg{s@xB}7HJ>389wS*!<&E{&sic~4&V@A<+{iNpCk8SmqFTF6Y{cX=AyEB`D>F&CfF zshely3&cQTo*@Ty;&WIRpDmHb8$<0?R^l*8Ivg(Y;%=I%@=#;Dc+O`cJBDA;;kSY? zxe)_=84n!XW3F4PMMuM0P06g`KJAl!mnRCJo@K>*jjwnwXJX$KUFbBM;x*_!=4!SeT$jzJ}<_%5T#9l3UbyE}HzxfE`?0pbB zsPVULk_T8mtkOd_-K!j?;oAq7<+8pDVvX4}BRM`D0l>6awjePlkR>B8bfI zSZa(>8}p6tP5vxLGi{EL*rMYuGWK4=rh*Sg53IROu;#XM1AQCIS#Tf~dvvt2e8y~T zi_qL2EiA`8_Qt{a&++8j8o1cK&*((ui6G}PBV9N@(bdedT76eOj-MY zm93)*c~VQLa@Ia5Vy8GJUYDX0QSTFY{|+zAX~{2571a1a+KNEa0BSD+P3Q9N3ME5dR9UU$C(w^+ea&eDJTT6TgcD*TCd5uXeC=Tiq{=Sc_f3BF z&A!R&1J}c90S&Y2K_Kc(ZtMj|{>Pj>heC+W#1%L`A|@rk1#{IVZ@IKsiB z%t3!i9%@N)SLp*?Q_3qm$Nd*Vkh;z=D>F*Z^-7ZAmUEueyWz3)Uv=dM0a`JIqspN&~LDup1>2T3{^7(`yE69m1az?GvyQO)qbuNo}~_$3>n7-q(|7vdw|K;LO>rT zL5zd>t-8X$Q|Z?ktyk6HD-Z$S9;MMb2;>k5plAR*p}-~IE9!lU>& z0WS~G@Y&PZ#fP=rL2aN~-B@fp*#1*^kiAnxrBhun0^bcnjNYu5|v zrs}B?I@NwE^(5ejbw%&mHCAw^)@#%9Fhh^%mfH1#6EaU+2^UD{k2YAs6qbV4Z@it? zui-Ji1#r+DEZwH0S}fLG`dVFEsaHqxXdNttZQXb~KdU$*mKtSIwX=3}EK8ZP_Q)95 zfN(hh#9DiQWKM0oU8{RUXWFAIbS|>D#0a2f?NPBT1!(acO;lJ*%GzTXrii-N<(Z(6i?n_&JGlhKx>TqKRLaK&VnDQOo;pOac& zalt;8YVCZxM)O2lUNpx8F~}0HYoFAsybnq~$gR|Wuq>Ld>2h4G!TpxFGz+F1f{j=j zaa9J5OZE20nMY!L%zM~I^UGk%cT|z4RKW0X+k9+n?~v4xCKINbm7aMF~n-x>_>Ex zD|z=C*;2elDFqL}nXh9y_Kz+WO=vpD8|&JFX6zjx?=Gt_H+ z&wiq*H=Ncho?<6ikbCCzDOwoID}KyMLNoP3lMc)q6*3XsU>k0zK7_v!m&2hrxQ@PJ z64+p4%T4UMeXW~B>PMtr9MwRG(o&bUIIC1I@TwnJqq_OzQ4M15G)?aEir;y8h9i%& z0C>(q{<~Op!^iyc6s*D)u`rx?4rk*^YokZ3gO`b4!Kh?qceu{VE>#?FxeHj6fHmo! z0-RdIyh8tl^WK0cyG9(HqLygZtA0X*3D0TzUZ&KC!Z60}@Tw3*<}e@W7^-L3Dj#Zq zm)?9ROU%1K>d?^a&>{jK2NMk}2z*8-GeXai{L07W!~>R+>CjlpV-tXR>*rDAZx*;< zo!@<;A6x<*Yh+&%vk}jH`Jf{W2yYcG9bEL{7lMfw;6BN0ljGfc7RxE{*W*P}_W|1|9yT%9s1{NQ!if z*CYAlaviSTpi{lx6mYPN?Ir`y=l?I!B{^rI?%x{}$^%1`X^n6w;nlmjdR+1c*9&T^ zc>Qi3OIX3cTrs=o=V6QFde+Z4?+h8e;qs(mQnjB}0&h$SmBt-hL^rSJcQG}Q;6^z% zhDA80F|lLN1k+9JVtL08=<$SzOQQV+Biy0l<1iGTfjATnT+sJ&5RNhx`PoOr0RDMi z^|G+jq{-~vfzx2ZdBiExRPQG`MW?I&wM|ByY&5n-oK1Pp&5}nY@IT^a!p@!nzvEBX z@3=ruJYq>0sGU2W`d1aF9CXjwI!*^Uvw!YDE@rOWs z&c>veV!&~6L9yckdy2eh1XtLyv<6jFT!!8@GN0w~QjKLadH8j2A zf}cU-ZqWLL+V)_%aJ$OipMdfVz4tdW^WqjeQVtNJwQuW>0$`l}_ik{T;{#??HS_?s@}7#Fc97BLGnzO!Mx}bt z1%_(I$_}&Jcc)&(m+g0wRb)WVdRKQo63gsd!*!+@J$`}YZThhAbBMb0jAhF+CkzWd zXT_lW%n9NndB=3A(sLk8G19N;IXAtPs$8!nKhmihM?L;>$wRbO_02h3g(#(;okne6 zrKxX&PLnn9tR+*>$kiL1{HD&2l~N3^i%vFL<2t`RD!$w2P%#+g1>QvHlYC#7g=1&|DU5Ee01A}-Ys?=Ua8GF>l- z)(q7eP}kQL0ZCd$5;0abOc5hH+=3ALP|n$|CqCEZA?HlM5`I>(HxyC-dNq;ZGUJH#T&M zmeANxj-2%*Twm9-^<~M0mLdT4U9y0+5^PZfR$u1*aE9b!ON%Czi#(+{%Ck{=6bVNOo)NK$G^0${D3a=hM&ieGrhTF9|ig(z;&3?3G=yvj>4hWYbUrTqhJ z{D)46-DyMDVr4_HRa*Hhb@}sd+!DX|bEAs$0arD)vl~KkmRN->!QqY&j)_hXB?{r} zB451n8G#_^M_2s!6d zJ<(yPnVpzOt9f0h5i4Tgg50S)%Pe+QktIfW{Fm1^?5Z2F@>tnF;~mDvw!X2(_Bg&} zg+H`})3~l~FsmD^)N;#NVbM^mTWN`7(e*|>e>bCcrDZj(v>M9lderui@WqWT)C0ID zTHhtT3X1AlBi6+)VMkx9u`RAsDLP8QiLPoc!!N+10=$FQ_~=Hx>C=w|^r@pkf6ywc zzAVEftmA6)!HIsg{iMuxmZbK!So&29p+4!={2MPL1-e)S;7kDL?ib|FQF1QGozts1 zcTSI&bMBn}jIk@gW(Ezwtcy zjHzN;q~FwYfp9gZw(`74zol2s1wKAc7KJl114L%R8{^X@F+Sd>Mq#Ag@eOHzl%&e* zF`5ec4q74H?-*DnE6KX1ML@)4TyUgyK*W?vGPrOaJ+8t)j;ogZ-Dw>iYTu5In>spL zIy$EDftF3&lsDpQy-;0pH%c@Fcm=#zEF}zxE`_}^SV%k%*jytRvvUoK&Ezkl%{6jB z#f2IskCjB5t-#w?Jph-@J!y>()^33|YgN-qvc@{g+mV0r^x(~yFs~WmNyV)OzIH3Z z+YDLv!`qGULTE06<1*ay%H)lrbAbiJKNq;x66XT{v1jHuN_^c24_xdpO766@8U7uO z`|NxS&vsz%Jka#lS?9ihaYLx-uZ1fA+wM28ecW4e?z$q;c-w7%YPfsw;5(9cT-$i> zy?5Rr#Y*6g<0TkUJqPZ&>GnHs9(?y5H#xVZiwGo#48HrOpZ!AW1`0Rcd0XS{ga3Z8 zbMN2Ye9K_zHzDkgx89Nwz@MIp;_n;p9n6$|`b()Fa@}wTKpqo610)i!3F%&YCqZs! z!o5Q1Ki+v4gUZiT)*o(5-^XSB{3p^S$n%f4hB>|uz@P5D^DeKbUn2g8y9W>P;uj(Q zySvl3+%ouXsppxRcqUR_IfB~Hq#yd(B9*?J z`Aaw6^I9*XQF~kg37O?E6#)< zI#KlN&!u01uqY&~_Yb0_Me22Ni0t!lX$T5N*mt7Y1L(Iy%m~RV{pJhsE<0n}pfN?Y v`bm;>=iRql;oNrTf80e)I{5A@8t%N~-n;L-?Vcd{o5}Kib{roH;X@Om;#9!9l`mgs4}&a^1ob0wRNe zf_gETBr_z}B$Jz&uz0tyZ?Y?>xB%{=qJoGEisFKZI+F;93*xRQ?ut9VZ*`wDOMvVB zz0Z4py+EDruCDH`uCA`G>T{AQOn;BDj5`=RfwRHc$1%qKllu~9?ChrM;DFJCOTAO- z>l(rXP&%hqO(fDdpnw0#lPC9^d|JOy)5QL#oORY&{fkfSf9k0xgW}}y)P{(E%E=Ak z?!C^H9SjbHtD0&XBekIhFO~h3q2|ary?R-_R#(M4ZES9;lU-I<^$*kq>H`gtaQ{>K zoq~?4s|Ex^P4)iBx&Fq+y4or~b=QB&$>Ew%)s>U|lL99P>-^!Gv->9qsZFFdQWrS4 zq&id?@RrsErg%^DmL%FsYDGfC)d@z=O`4{kTKB68)%R~~3RO2(fu|t4l8uv_P#2BO zm36h@nn2UJ%?(#JgeI#Y5?G?CY6|!xp;QVRNA-37hKbGoiGg#6jFffpvgFYp37qSz zig-``Q<3-7;^MOu8-zW(e>-Vg7%bqqY;e{m+SzQ7IDGiaX2`75wgFhjKAS&uuzBsH=KUobe?8pb`hBDG zj9c~}Jny{SGaPRn-{sC9y==eBfffrLJvr0CLcMQNpouur!Gq%HF=k?ho0z-8p5d?u z{@iN>3ud-b9P|L+rixp;bGt(IC03nRlGjVPI=iP`kr3XU##|KBL>b=~rB{vitctBaK5Z{%h++ z-rQUNId|XooMKV7eZKcptfEIvQea@4p^UhuWX5w@@m#i*yNTtnVGsUV_n$bc{XhQp z(T2AlX()VT^!b>1?lESb6CWrq-f4$;Ep{>}2Dts5pikIi@d|I>}~2|Mhn2Txrvw?#_(-RCFIv9p}xEJwD+mK9o= z9>c86BlT8h*fJ~g<|ZrC@aFkUm>LQOM;EfMfphH46I*J!M?ih z#=JW{eYS3bPI>K(bAr|Q4%Q87J(|_UH%{Tq<(oeHCG`F7*A^eVw`1q6C*QQ;kQYr) zw3~LbntqViosC+((s1@3wSA#EXD(K#H>)6{!`NZbqvy~CTk0=hU$_eGhF&yW=IE)h z6WMczxBuSSZOK=a{;Dgf(qP@=v*}^Y<|9|nL`%n#kKQM)(S6ydoy!uvb{N*J z@!*{oy!~+fr56|{eZL94zIn;6YaT$aCmo~LzVTj*tX|K{_yx*KJ0RHDZ)|OSV07)o zn#hpqi2;xTHKwYmxw10QG&a;Ikq$zZHrLgmA`ocs1%m^dBau)8OQVWWI8&^$o647j z>YD2VBLYFyqla*VoBR_ef}sp5DB^)3JnJP%W&&#unU%~(yszwJY*Gig5+4aQT72Xs z_^>}2iH}*3=qssdCpmL}b2wlP*`=L~8Z3O*WR??hE+q8D4Hq^? z><)U^%*03TNth&x-g3;Qz$B~OC&6u^H_|Tj&M`@CES#LwwvOBn-Z*@ zm@b{cet}8kK^j9S$!*tSQf**zT4}tT*RHxgR2`^ukE&~)Sle(Re?_-cm}If zF=q@yUDz?QxgIN*Mk~`K#{|>>P{I*xJT$n(83}1#*qWqqH_qSM3Q=~Q!&P=GiWX|eiVjxs+j0#~!X|gBjzdPy!)wRv_&LLAG zfu;t3opFi3t~ube{m@Lwp}(>&poa7wLx2P91`f5D&QOEW5v?j5&MvRVrm?oHlyF{2 zWjNC0uZoNfO`KR~Av^jZ@rH@<{bqM*maD_!TsjEy3pAlu$%JAwJy_cmj*JX7jD(z>7UlRX^fEXQ^f%W<)YPp3Nl`DsHpq&| zxzgH%<=Ujfx}xslMv5yk%l)=;NzHbvHEWL4)`bm;$qqFr#U=|R*Y!9xfNjiFM~b#Q z7*_$svq!at#xz9&)g3HZC#rVDTZhUqXX7ltJCA{ zF;7={*y7-r+bb-E>a;mE%hjqJ2az3Nim@J%8dtf!wqTqN66{_qxjnF2GY3wEkiR-V z9IzywvW4;k4WzdTc`HG<$|Kfvoc6r(%d483pb`;V<5X|Z;n9IGR4T`s_SjIINq2cT ze!6+eCnaf4hNVW@%^E=GVA?K*e2l)B{p{82&=&w`E=UFWjHx_wZ2||sHkR^7&2-wR23{@EVUs7Eis2&@VMkPbB zY0tu4-Vi^*GQpTqL}hoaP9Z7`RP9j>)dGc`v@ge8S=(T$35Bzy^pi9-%Z`0*CCsv? zR$|R87m{uY_)=ykm!`VOKiRDY9~eMoCN_JLc7)SaopcJSbD9G6=w9x4WyS;9@ny9w zj=fm+w4D(sR0LKyD`8)hKyyiR8~s&*k|4~3rH(;=bzm3{O>3VfG|xI3ExhVM;!L&a zp-zo)HzExRug0&=reVh_9;_o5W+;AGX4Uu`s_O!Du&G*WDXhJM0WXZ(T?^-El48rS z?XMa#UQ|Z@-=MrUd78JAw(+!!xpD}sv?7>8mq zUyY#jG2up^{s;UWy_MboKiN&DMS6vSaNj@ZCW%xh+bx2PX^99$R5zJcOr%x%n{tm5 zTsdInQAke?65Nv#j(lc2r#?NL6fI@751n+{@M($QK_|A;5}}(roQU}{+r@urlj0Fw zMrv@U1w)~nBZHoda7u`lb7aJ3MpV@0PKv&q)ykU*r<3d~*CwoC@U(;k(jxH?E+aLX zORJ3U)r`~-&Na!71U)G+p(|pCzMhmI*d=?aC;F72G<{N16qwaMBy_7*YHiv@WjY;a zX^E)J8L{HL^yGlgXr!aVofK7i!pYuB_7T2IdS#OF%4#21_xkVd(Ez)wT$v3Umg+N+DUzp(eW;V^m4eC$lWhwI!6_YY8TLTRV=*R4m%q^t zpUM-aGSjl%GG0Iwvp?ZsT#1WK(PduCm6P1m0wnm4Q0@^gg;VMq6{NT(-< zvnTz*LMPMyS0$ow$x~k4+@vB^x|JXwRo+VIWJJ>|LrvAThS=T-ddQRuNDW2=8YaTa zvHM7hl4W-?K%iWXrCv#6o%}xu9!xmUxCn&<{@#_ebGRwoD7}j8S=v2zy6i&04K;E=)Hfl&ib(Y%t ziDSS2|70o>^e6vs3v0=x_aEKf*fAGb>FPiO6gWK|SEAq{$BF8t`nlwl2<`6-a=H_j z3GSqrE`v;XqAH^{JggxR7ihYQtszrs~OltV@+2 z`(5@#9jT*2cH}9qnVhht8FGX;&yI3=<%s1?kaV3Gh$J{HlQV~hVaMZ$H5JZ~UAbz* zV=!A7DpXJoK^4v$@c2gtJK=4faLg^HteH-e(do`lC&{`guCS`QAFF8+O@`&GS;d~m zYLZIkD6giI)`5*uJF&r0B`>}*!|_Wk>0>yg4iDAJBSEt~6b!=Jy31=qp(}kdpAIt) zGhHROybEoC#?wht8437CwzLj{8GTWoD7C&)0%Wu7iyg9Y_ygn zqtQ?HRoXf%lUYYcM4-W}qT8Q~8`H^zG?mHVxG9ZpBI_IL0ulHHvLZvOC)%q)GG&mR z7*qz`gOVvsYs13uC5ggq1)ya5(&fCYL&#IE*t4$G%OjJaWUlz#v7>S#i9!p6f?2`F z0V$qt4iN2}{d}N~5{(%0g^~-FzE)lUctDmg3)v{8Mh0oXSm#JCvh7{dtT@gZHaCeA zyN?b@xI|MLIicEF@sX{LvaLBL8e~|QB!blVAUEDeYNI4ayhEx~ESJfl-kzxB&v{Ag z#wDByWO4+j)4Rq@izAx>no@#9iZDzI+3~0>URxcg3ejr#~wX&AWd&fiVyCw z9VSVVAHS4H86cxFAw2Ywp+sVLk%(kfpn>8g?WL0uA2?ndn~=IYssD7VN)}9OVwvrx zVnjltCsyVqFM`cY$9BWp_^c$qTrCA1qsj8hO-Mh5XjHO<@)FlJiABt^g=i0!o7Bw4 z75#xLk`hs53?5Qia`A|<08rx7h zWjx~#hv{xMaR^W;Ve{!`HTe#OiV1U?)T?zMbVx!a4uEv4Pjx>;FGu1AnyTVw4z)h= zWJs463fBFfd{dYFzBVJ?f$Tj$wF~>mbz2O^Nv0knuUbQ42glQHBm}c7G(IrF6hg>pbSD)2k zEiyTjDe1~b4=EWvx@6?gA#QqoV!i8ds8i;|qrA8ukosCc-TcDw^(MS!qdHL8Jke1j z_iskY;K4%%myh+8Lv4l*ajGky-hIrb<_3DLWm<7DO+&qiiCFKMte3D}KA@ZRNoeA8 z(2_By^*^<^_>BIQ&9&Gs4H-55uy1mM^}2hiHA=O&`_X35?)7zE%I5_G6tXZCdGt5= zC!`V$Bj*^Bsht#1gq{COC&wp$Cow<<_x7bgpvm3PTpxcYZBJ@oZ3DeZtb)^|9)8Zwt* zzvU&;DPBHBFY-?H@~PeImu^MgdjFNwr)^fe)kypJ~ksZqbsasQ^DgcR9 zd({$oOGXXrCK;o6$9v8>UcI&<7;@Bw{1m<`|9XThAnKxRfkE@_2{na65wE=HBR*YJ zl&fvf-m3NUG=bz(ho(O;cTRdlJUo z9401c$9vNiky`9*iGq%L?dx;1M9DM9{!k;qL~gKliXCT;QS%CSic6_}s#o=FOOl_Q zVda!;suNq%_JbO{neAROdEzwklbU#md?@Q>PPG?P_F5iVZUf0xg}7ez+Scoex6&{4 zM{2Zs{}gx93ss|vo+iEj^fgDEb@u(U{fUKF>V>T?-b#OySGKUb_qycX7(2Bw;7}-I z?63=mjP4kJ?Mg$d6POlThn;J5C*AJ2;x{UK9Ykly?gj^%nnF$9zc&Y(rrOho(y3iU zT8}xC5EO-1#)d^+)uq^a5`K} zDVuP>Q73Ort-T$v*TF1TC$HhJYpn4*!gMKisY=FYwmWFDk2td&<i@FflQWbv~R?Sa^EFGMmtsR;;|XhSsiP?qjtsLR>N2&S7g}7{=lgt5ufLR zOB%I73bc10$jzH>c?hKxz;})lObkUrB@NZIQ+l5w3EfGkZ27*xOCOJT<%nTV19?Do zR>@hV-p6v!b42&KNBMF$?`R*v<{bH{afhRR-`nA+pVsCd{i9@0$|uPgsh{b3 zQog9oZ1)YWC*{*wPs-P}o|G?)vyb>rIOoW3akJWg)tq~jkDoK!ef68w{*&yC)Nhot zkNAu^`-pF@bB_GvH>>>z(YZ(YsyQw3rFPyCuY0j$Op0`CuL|f9*mScJt5g>Vr&akI zU;yQZBPtRYYroE{4UhDXG>VG{6c-y%Se#_V4yn=O(=PN~JZ4Dwh1l4+ww<#bYuF{H zs=j!XMK{9ln40%b^EWnP z_sVxm5w&9?H7?kdfQt65*H8ARwP|6T9aRyUd3GFGVqH$_BZicYb=p_e*_MNs_?T9w zmlURaWzj^3HN7>`8=G;ghbQ|R<6gcxlDS38ap?DeKdp7e9QPyzDdDg)jIY)G>~eVWw4b{>n8iB zh8;@%9pu^d?&BCeWX!P3hIEjxZhH4AN`ygBlN0~w?NjeQo}@Rbz5Db@DGl%@iNjxq zb*Y|eJI?7=ASf?bvt>LqI0=)cjx0Lv)dsvY%WIut@|_qY-zj-B*-oZ<5tXSTh`2YG zK5E3pLx+u2w*eWcw7GUS3aNa8)OT|7=vCBe!+IyflWVlSt0FJ0Gnynte3)^X-KKXR zr#*%fE}(q*?ogkQ9CZ%romoa|amZ0vQZ>hB$&OJ{cv6j$+NUhK^8IP;d*$~kQg0uX z4?ux2DMDUCp~i%oo2mk2m|XOLlU5gS%f(UGl^(fb_O3Q$b7xJYzK#rnr!EBdWo&3@ zU8vGu=f=Ve8C_mFy5zzkX|fAxhIIP4$B-ZUqy_3L1J(4}ENnE^P6^bxCpOi>=a38R zs)w1WC7b1(9BQf_2Q%rC?+suL!|Apmk>S&bVIzl>jCLSOYpR_hMh&yR#2LHsA&CeMzFRHek8mqxzFHZ53G&U z`x{Fo`l4p+pvY96?hw=HHJ3u0RwJW43};XeVw!qohyq74(ghOhEr$WC4SLJzFq=#l zGfgI4gG})S>05p25{{9-bgP|S+{1CzFsjR}jDJv~E^)h`dirUnpEf8bfww2-P+ul! z#f?+U?!~7JE-5WFyQ|-eL0SIj4X{9F_tQ(y{L`6(%F zv#KhqP%nR6=$jm~Ky_yPu886ouwA8cnf6I)-z-l|E$cN{`OKYe07p4Oc^b%S*}t<$S|r>FH!QN2@4@6@VyYSTNtrgzc` zUe%pnfuLgnh-j`I$91|#IJY^R&pMpXIWXO6W+&pi6OGa7D=q&vGlLskWO;b{<$o2f z30IU?_$#Zb1DV<5vp9VH%dIju(>n6MnYEV}tG z>++(^P0^H@gWHLwo;wgd893~eg*G#UP+%Sb{YA#cEn})}9WSTt7 zFj2T6HQll(^Y7u^)wy5 zOh<3i=woVqO?Q!*cCsl>G4)ejf8r)T-Q;JOo-^jvIuE-^F5o1RNe&t<0Pa?|ry(=);3SD2o1(^Fx3{HCZhJym9Uwdo0%o}lTO zXlB-!o>~(^^;~Is>P%0)>1i-|$n-Rtp1+%(Cesr(JrUE>Y3|u4nSfb<*_iemq;moD0P_J009OOQ5a}YoV!#r> zQou66a=6R>9d&mg zy%TU3;BLS@fOWv%3%C#M??-t(@|T*~5i{!n^>O~5^ZbTi;lz+-@F zlY_ae$5HhJH*?T52ju)oz*ER?1)z(ZrvYe^^9*1c0LxPzMoJCVMO^cAG9B8?)AA#Fw4hV(V0yO8cix(Dg&NcSRr1L>Pc-$ME} z(tSwZLAoF5yGY+d`aaSRkba0UKSKI3%AX+p6zKt^pCSDm=|QAlApH{QS4h7``VG== zk$#8td!#=gJ%sc}q(3438R;)be?|Hm(%+FDM%p6GPSXK1u? zNG>(`d|(zJdo|L9!aT0p?6e5kCBi&@Dbi&~mkYDYwMbV0Rswe&((3^?Ab%s$n*cW> ze+ys@U@i7H7(4;8J^^cB-X=^hWbZ}U3&DG#1SSO74drgAcikz>%)5ozeH{SH-u+&r z_X)G`egG7wa6QTo03Jm7A*36SM$E#ER0R3MKy3m%g7Rj-qX0~y`(sESNBRU(=y7-G zaQ7`JKZ){FfUU?s4R{9mZAdRg&lv4lWS_$fo(K8`7{0`7?M^1l%KaDeGRY+ zuv?gYAn`u01NH*m5N2<%+viQBV6is_>J5qXc^fGP@3Rl^4q!jvUEm;& z-e9gb813^O;C5CQUixoMk+AO-%EP}EWK@EzaBt;Nl5frHC z60_d`vmYkj4_d&nRr-A@%zg&|p8-Ax90Ys;_!96H04vn*Yrr>vOU-`YBKZyg(f0cu z=?{QIfFA)r0U+0YKcnkkkp2qz4e&cy#E$F__WDCXil=F2F$_R46t8$X@-sA3%+y>r z(wTxhM?D8#%+}1)<^tvc767gWECeh9ECwtAECnnBEC*ZzfCim*Ez%W$m4NF2*8^?< ztODE!xCwAG;1z^#Bw&C_l}ay#G-z@31*G*iEuhDO)-AYBK*l=ynhbUdJ$ zrCR|{gXL!dJ2ms7myx~#SVhW$auoR(pcMckGm5q-Ha&;o5pBTj*37Yc0DF;t6X{!k zw*mVA`vLC(J^)-|j{OKEun+tb6hB4&0MgF@2a*300HxwzBmD;OE#N!A_kbS&hcxq& zACdk9_?h|v{0jID@H^lzpatjoG~K*pI?@?{nE)u=B{z}HL4G!14qz^5<{_PrloV+J z@>c^E0u})l1C{`mqJA0D<$!Ad*8)}mRsyaATo1Sbuu3<_;d~hfB_9V38HY1z9L}V1 zIFmd#>E`&GL30aWwQhE#@vekrLJ=f+zGe~aGA;P zMsg2&S%>sqzUoP>s3uNyX*#bkM4S1*IaJ`-qKOGAGr4b9{@fE ze5#wl14usud=B^m@TG1}{8~4i-yr`T;CsLi!2PJ3U4GV0;}?{FMfq;-x|!UwX$IB{ zFc&b-FkSPJE^AX1KOfS31mk*oOKWfLjH)(P4JE3F*xa7mia181-<(>Tg9l&2a4?-0i5p6L1&cZooZ& zbq+J_UZnQ{?gy*~Jm7Fug1HBg#eu^ga+sHIKz<|OVZbK9W`_$tgzG~vTVtAC9tUa* z;2DP*f@{?XFW~Qx_1~Wd?ghY$fR_MKhv|qRZF88$Zlrr0=ES{#w;bl*VR$*wzYW-j zGJt>RFx?*^{n+99w{Y!*cxGzg=o6q004TKh9B>fu72q4dw}9^e-(#pBkRC!8KO+4J z@H23~ApI5a8{l`qVL*%7*@cC`Zk}$M;TaIsOr*1r&IZf{%md6f&C9PgU9*XUg{JEx zp4Qn7fg>JCceMf8-L}S;ateS>yyX` zt_doFgbTr(JUw03(L)x5MJPc~10%VbJM0ckJL9w;hTXH>UQ#<;E-g*aSRx%i67Qlv z0fmf)I>FN76|z!uQ%m}rOdgERGpLjqe`L`k+nP~wk!Hkm;<&^kGhUH+IIIVgW8ooO zxq0Bn?au80Y_4JjMYk)S2=0>9gvpZ_ndf=-gSiraG)XWc-@+sTO*|o8_t7Cq#zuT% zc<314E$cg4YtfMk1=b_pt!6Vu4^|-mE}3l9o;jX8rmJ1Y%pO+uU_)vLn$4_TttCjf zi)!UxZWH*I%Y<;dbO;fG!>S&4q;QT2$qcyuFQI^?{Agg@Wi7eEwGMio&YW6W8V4kV zmtjpE%(|18fn*Zb7|uJSbPNPdwv)ZtY&zDNGM$q%apL1Cb9{RiH62Wev@{IvNEK>A z?(N0huBO0V@&Bo@+H#uv7_#bUvz)9RJPGt9`B;04a=E&##~qVe>+a-M9o1f^8XK9i zH@K3bNU5|5a+4L@xNvx~4O5~r{wx3ORzG=pEzXXu??w_MN9wl0oQ8P< zZ6+_(bW0UPd~sQl*>JR1j-(Y%!qfTkKWHbnnS=$@bWQG!Bz0lQq(`Gtd#xQQ&b9pi z+BY$6TVG41og7j-Q68e2HTy2Mj=SAShacx%+DS?8-frsufBYeLf(`*jhk#P#|F3_@ z<}l*JYQy?1G);s?V2TbX1D2w@*d@nb1Y=RN|Ho3JwN z=yH!t6BMbm$H=6Npbp1lWVHW*COIQ=VThf)9~W*xW?9pCuDks@NCTrM8JYIZ0#Ws6 z#q7+&9lbuY|{WMn4pSmj+Z0ISRopdT^$DPKR z_fMRic{*o<&!9GEa`u-$b5?Q|XBh)H>+~1S`k&2N;W><*%g*Dh_xYT4DVu13CUAynq_MVvZY zjPl4OcwD#?j|-OJF>yH_<=5a*ajm3TflkJ)L^*gJ0)m?BksEOX9)VS|`bK0gy$KKB z&3M$_LT5KyjqLa}XgFrAB)S#Pe0CeKSKJQl=sWPZ_)Zl6dKVrO?#83?9y~5uhl)$? z#lbo1J`^vzAH}ijIjLaZ+1!=G>O2qd6Itj%JQ^OtJR%!F5#A^%9!9gjZ$h(4k04jS zSt1`rx%n}aCqIry(-SB*ZsC1hdF(3VNnrl{6uSD)R-pg+G>ZRv2E~7DraM22 zKAz+3c_c4zwjIffob5pJ5@$P+yv*4vNM7YEiX_HaE0Q+OUPH2rv)xGcaP~Tqy_~&) zHKg%`vMLvIp(C+1=0_!==^&b8k z=6)wIf<3^0hY0TChb3hTH1|F}4Tf;KU^4_Q>r9c$9^$iLKi2Wtf{5lIzk$z$-F%SG z72Vj~e4fP9>fMhh*VUOl%k$@>t4HM!Px1wVy!)%s?s2{l`9*?F7VH^bF4!i?*He74 zAiHxlI(>{ULEf!vlQp)Dmuu`1z7#FD@MVG`g5^ZGO7Lqyx|v@qD5O{+`(Fyo6MQ9T zpT<+Ltvtu!>WW1a*MZ9y`So~i=Qju_)d^ThbaEnA@kU@@kz#q7-z56FyjV};W*~R* zTR^afuSWhgz6Q_TlB|udr7pT*ZM9oL@ixB=b#KYKH~H;CxK5;{y+dFrx?^Sg-w9r3 z3!3H^{4POjdpDln@_T@vE7l?ZHNRKTV&8}7EOEae*{>HlSkwmu+0X}pnI|3+qyigA zIBcV!&Gj%a2l*yEr;A5GGe>Mj{t$l@&!72Ya#bD&{&)U_Acff?NMC48zT{5|X&s&d z>NCC-M8EQ-X) z2}ZhcnC}#117C)4W{Ovk@4#Laq~}pQKjow?^F>VDAzVG!65(itD3^;iJg*V2q0LgU z3;AosZakL>67C`~8Y1nISh_(9!b-x?U~bMDtt3Te9|TU~U!r zz}=1F9f{cw=B^j-%6Ytp+MC7ua;_i9+7Cf_llTbuwSrh&B|es8eFDrHF`d}$jkWFi zsgOs-0on93xk|Ln9uS{{aJ@JPuJ00GAiqw0NqaEJ8je zSc7n#%vwd)#Tu>H5)HOeEY+k@Scbwbv0M|ZOyzH;(4tW#dC%h!*h{FlbEixN?Etb9$o`xskRHxWg1QHu-Hwbnc5z?IImN| zsqIDmeC-W2^qX>R-@@~4jqO9tLhT(qmuUO(oTa@hSKw3L)%hnV01R|j=jrT54W_-T z^9)+;_dxKz1`FNQc_v#MFYiJ5&sb?31znwIvAZB>WCpNx8cbhT=U>?UP-kS$W)EsG z;a#2Qu#FmgfUeGS*(32@K1TUG_Lzn z?GufB+htgu-?WeM{6+f|&zbrG)K1s;K@We_J|nf&mI3pt_PIs@%0c9R(8#F%q zciNX|^{qCG&Kiwu)-?Sq+63A`;16kEgXSW_A8pH0?dw#49WJ`3;zeBnR=`y4%krJ~@_3!XptP}g!>EF|~cwOT^ zQ2K_(4}$V~P=0}Q8B${91`IinU4zmgq^pn~K)MF$k4gi7QnrLxU9SI3JwX9~p%gOz zmD2Y${u`xO!QWMz!&LlOLzg&Y^sn)}Stog{&|7qk-Jwsz^ETiIvYRl_bc7n$>N9{_ zt&=R)B0rGbf|{9#y&zyd4dq)=Zb5oG(piN6LgTY_!4~SBgzI9qUq5RON{{Pv@qAF9 zhi97(39>!<0`&igel_wN^@VuGbcl^@&==#mPhSGe1Nu@tx9H38d=;%U_PV|twVU;8 zkl(3a3;c8X3SgesR|4~vejT1~U=)qLre9B2b`Yds_vx$fd`!O)&nNVoB>rZ!+N$3I z%r^9|v8cWp`Ca-NJU8iUQTw(|p5Z+@X2>4WZ_}mW$28f~`W<*a1ttW0Nxu{MR{bvI zAI9*4?bYuFX1#t7I$a001bb6ohv%dEy}-YNVKlZ|zYmxvK_l3``u)H^qpwH)1^of! z@7Ev1bG!Z!p3mwVK>v!q5w$yz#}TGK4E&4wOXS;)WAE$cCcPW`M1KU>5A@B*f22Q( z=K-B;{fGKv$bYIoj_1cZ<4@=g?sjRz_!eZe^%}pDO=Z(~_b2u2w0Zm~JzJl_w}K8+ zeOk|P%;L}J+4pl4?<;oJ4>4%hG(^&Dd+ z-=Sw0tmH50+35@TPCeUmHGf&pK7JK{MbFMz%3sy9opX3p&+fLG$Mo!sg}hZ~;yCC; zwlgfheZtNBO+CB&TK<-v zox6;`t!L*g=lk^Rti}8tJ^REpe7~OE`K8ur0i2V9A@~S?0Kt>90WLA2L=0Hu-^p3X^-O_$N3uU zA-F;syGO$r%pO1pqOnaHdsJgM4{`841BL@`*FKJLL1$_2bIerd?yCjA1LgD; zg2#}0ZWDa8&N7}9d^(DmaJ6S>I?IBOJYHwn@IxDPmII&iK45dd6MO+i&ihsHhf(eT zkLWR^`S622LFnF`_meK8)+eYh!2tWcmY-xX-_x{-y`h> zw_q>Q-mNf(Nc-S$e+T^beM^IW==>zu(r=L#y{GYak)8}28bjLe6ODg~v_DRouaOqR z*u9MOl-b}}XQ#rXeT!+Hb{AOJ*`MCUjC6MTXHYtb?2M1-ty!Ae9WB1%3BB<6nkV$3 zbZ5xj=_f~vqr+Im$9mB-y6+R6M|;&Q6<2(!S3IHDe5z0QomV)52lQyL+V?vbXe2b@ zPVXNrrWVhu7Qu5S_04fI)(5%ZXZoZZgvmprMc0X#&nKe3CWdC3z*xB$t5?n7sP9x3 z^^IlGo;8C}rBjbRQ+h1AnX9(7EE)|K1!sxi=elnc2eqMV?(|taTI_9c?Ji`yvO;i& zCLGjbr3ZBm6!o%0Zw)@fR~Nmcucq!=(Ou~mItQ0olFMO1Y<^HkWKI#2(|<)zR0O|F zv`oSJzl3RvReYs)n0NRvxN&IU<_yJqxoYu>M&0JP8AHn$+W5ZK*@SO&t2F!@5c$5< zX)dOYnRkOwVl{t_WlO0|IJd`lS|J~PuBbT&;`H6Ek@TEGcc=Fv!XdqRi`Y#(T_ajc zaZ0p^J+W+rHEm_lm~R&6ZDo)LNi+xKG^VeG3sr@V(x_%Oq!(M!H#-l)h)su7+>{A^ zrx)$j*G-?4(@hEF4Qq9W0qrl32J3T7np3@R8F-2Xzt;;{W|}q2?{)vxA{P8X&*`Na zzpYbgbkZ(`%v?83y3dY&g)<8=7njb6SL=|HrQVZhx&a-uQ+6NS$Yy{ z-i4W6!K1z@a?p1n45p*Op*d0{LxJ%j-iQXrDa5!q;v$8( z$U+pd-B~@A3b!g1-qThwn{UX;WNgB0-c~xB8cEV;L@Q}ttJJ(~63%gIQXi3WDWQ;f zv1>q(V`6Tnko1NH%V}j-^vyA(`q!_>$p;G)8lu5z)Hilm#m{kA}I_^CGUg z{zUGI^3}dy(0Qz;h)OF(4m^^m?{AED@)f^g@BOB;nqT#(ZvczNuv>jq==Th@2hNC< z{;o6sL!7!hsH-Io-lJCMio*#+4dweN=|CM@474E*ebWq@Pad%~m)M$a6n(4vW*D4I z!%Rc5R65Jx70x*=&RsOlAw4Gh$705UvyF=5=J@yORPmFp))$qcVva%mSIjl$Sjc&X zkUMo6FS?s!#f8H6!n%uSl<>j%MrkRp83u+r5JLl$n0|wb%r_t;Y_%E)HRcP+`Tnld zEgG}i5%REZDQ3QIxYN&p9?jYvogjt_R#Q>P_7Ls#Dm@EpWr0rB zwe0r~A9m_a4V`o(gLsit(+S3KgOQ@fN};F~#+(*oH_)xYr9xs!ePwwem*wCBgHWwX zcUxmcbI8V#!Dxm47YNMHl-B72jB}g|#r;Cfw}qrmGNdKA+Gxq&6(#wU6s-~!HwoGf zr575dr}2uub81Sc!E{3j0z_vN?d26SG>fPrC-@#DK7*H@rV;fSL_H%xeM!*{UU6SL z>JcEWxkT0nix!BA8$@z_(IM)rCMfIwP4#P2>knvD|8H5}rzoaXY~iW>&$PMeBWcDJ zwQ3dPi6mNjp`#)uf@Ep_L^R{))QpofLyLB56=iXnGD-3uA}O0wGn5QNx@8#XIP=dE zaK$Ua#1fBxU3vSPumcwFT$hVnu{<(XKt-54q+6J*In-Pb?Qj1a;o7-)h6|= zGP4VmJ)dQ?$qf}F8v^x?aBo>G2L>}%M%A;e>PkmWHqN3-z0#<34AiK-x+d$Uhk}Om#gnmt^bOt}wOBWfU23eX=rL)!l46k%TIlBm+ zp6;Ho*r-@y_!b+qo4V>+dd84w@wmRbivv7XPv!xqoU(a;okV9p=mWftQv*uNl=f1# z$0z3bU3^OoP2w3}VleJvCkTL?Jt;r9&1B>-i_NbRcJo5u7DWNroK?Lj@%P1 zZwp#&X;)G33$0mN&1FVR8T#P3n13c6klm^KQz}*(g)C1_DOSkR!DAtg-dJIE24$eBtxg$OLEb4n*o^yaH3CSEgq6$ov=`p4PGa; z$I1pj6wO(hofIhbMcDvDRQc$(H{Mt)sz#zFQ40)7xbF zci-(+`3{+eeRs;V#&?%YD}8rc={;7uPM*Bc;6Hr##&h>sx$}JY$8+ng+&_H}$PL=UPg=;kwi{b^V?|6j~uIX%dy&IuodJbS#wqq(#h6raU4s*#h{MT z)ek;`ZM?p3wnG*+8!If=Uqv{<1KOlXa5YL={Rnq*a%qSX>pc7m*^sQvRMeveEm}Wf z@hlo`sI^Q(W9T5JIv8pngozFkDAhrKI*iifap!wXdV0k)fpJN*mRfLz)%_X0Fyq7` z6Vapaj2<^EI@&APSlD=db7-biwL+d+y?gs z6ZsayT7h0l|4vPE0iQJDW4GtHr}Sj4%Kki^0Xiwg)|lz3m^m#e_+7wN?1ks^OwgQ5V}b`~3QMty zQnCIo$iMt^eAgCDn69d)%WB_NxvS42|FbXEUtXv|a}kpTFTteYdcixpL~qI69gSh9 zHJ4tBV-{I3Tv8ZfFCnY0e_=qPclD#Zc1Vjw|f#Kcpub zoF?^A##VHk&`^7#t!>fZ#Wa*0wXO7N14l*anWA(OP+7-Yp;sT-swB~*SvB$bNrZo) z`0k`=aclFQtd8))V{KrFltN~3oR_sNZQj!s3qE6X*njx27jrt>aJbV)D;Em8tQr3M z8EDyBsZ-M)ur)G=wnPxEG<>J?w(1x%rBivOQKG>LHt(v`m!f4QU0)a-wjMrA(mID? zRF{fTpQgCJZEJC-0~vEcKD{{;gPDaHepZ@V01h_3cB zg|X9T>n+sM1Zu5?x;}wg zWucZNP}f?h#R=3RikTMj#4Y7&Ze3GefLXcIq=ZVJ(-|f@A_=oYVlGU=Y?GLgNto9q z#wSFYI|s|CmKh#>tQ5XHYDQ_G{gtNcyN5%ZYdJIpN`*``crAw}W5uZ?7hNK-=8I(N zS17B2%={!X(ctZz+K?JWgR5jJZQd#yO%$tTvsEeMtUBg6i|lb0DUua@jcl>#SfgD* zdlK{23|%X7}6jWVBZj$P84%;y!4X&Z8Ef8b^14@`IrRu1|eyp<1s zOcOQpc~%GOQrRMSSR4MZ#!!I)E+dudEd4{Yp;6WN=sf0oP$QDdbv?~J1>0+<5vu`E z2vIa!P~20r*_gFE+ILTD@MWW|qGRwCtjlsW4e^PG4Bho=pH`NoOIOh8HE#$3;;0xLCsNrmh z8dXLt7&9sje=Du!6&kuZNwwXeoEzWWoP6N*+&532G0=!DdTE=%eJkb2Ootn_`22VXM^c^(cc8{zv>dP{z4+|zE{ zNi}}GUE@OT+a-OSO0Hg_&|3K(kR4Rf4meS%3mrLXhW3I+3GLgckx8ni#yVUCXkNe} z;@?hg%hjfwPZAwDC4MjIjI_+QA$yu=(~%P^$jNV_-34DO}ie~r1rQbwZ}Cn zJx)yGw}$d`V+2YRYe{O|)nIQ)6`!!%n2;kwgW);cx7$$5hF<=L^TmY_X2KrhmeLlp# zk^7#I>atm8P}x8yq}>0TEgKO^#z>3MNX~9=QinS@>{qN}9kBfY4l9cpcW;e<#`f9TKx*?@6D7nOJOu<~uNxl=VQGH=! z$m~X$MPFeOL>~HTGYCuXy3o?QZUyETA?INT&3Xfm$?$i=Vi*H?@4lI?;vAIQh#cLM z(TS((Hpc6S%9409iO^D#NlE$1N%<+{Vw?hIUO%=9%$6`-#J!BZ=zJ=5qSW9jO-uI_ zSZa_s@3-3L{XaNQ_c)@(MKKK{{?h>U7^R>4lzw&{-j%gQD?3V8hLs;1gsSOoU z1AK29I-z}U8LYLJ|7`=aZ>5=DvCn9&*+(n>FM)wFF_{8#5?;|6{1A-z?-cY~Hu^ur zmKTg{;B?PdaUBm%4j$5GWx4FaL2VZ3S~z4xMr^`6|6N9X@qfJ5B`&5dvGs;X*#LGQ+llQDV?{Z?QR{&D2QQf2G@k9pAY`F>O~*H z>Q%Jr6l)cIY)qGj4WF)FqW}%ti6mCK-{2K#bIK;X3s2}>m1k@w#~`kA)qPcfdt1`z zMifI9eZ6aNYh#xrW52VpOOvtR z+t_8v*dJ`{a=9bu&*T89UR)u1Utu zvaxF=HcMe=OKe2}S%6zP$F6e7=nu+u8yPe$8+0E_gC@r7U23+GvAUg8>qGV#~g=!RlN+D zem-Uc)Etrt-G#`OKc}>uCa5nv44Wn-wM4A3Tgk3fm(k!1K_1{deXZ{k!+J9=;#Uzw zmP9QFm`z>E*z~X+zaHiag<0Rj$%Uf>c_$sn>o^5H(sPEq{IlrDzBd*3E6M*poFghE zlX9h3FTma}DYGe1n=6#a>3ay&tWWJ@A>kh2@j!2y2reY8eJ}+zlde!6N^L1$Kx|0G z%^}=IQe;;V6#3Kt>cATIiCl(84`Vz{SDwozxiO^gyqpGp1cT^?Q^tSGX@t!fK{xVc zs47}I_06VtM-w^?@5EXpV&B{a(8 zNuw+wf+rFLD~MoA62S^0crrn-fC!#SB3M8KTN4C}iQwrZg2hDeOoCt;5o}8$SVjcT z!oKQ8f11i75hWj`W+8TO=i!|hc!*B;RvZ2;qT~h09zXnehDOSmJSU9_8Jz=`F>!RM zp}qCI6dm0|y{8vFuGhRrs`modVTfGPS8N+b*J#_Z1q}xoqnwJ*jEc{Vii5`R9Ma1d z!I9x0zwHa7=(wVJj?ym-VtogVNFJ5C7IWbLcoU18Gn9VCEfJmU ztfcpcNbz3bR)|5?=xuqU^r}SB<(>5Zz9u%JG+f%LVB^a_bdjBL-|q$*Fvb&3aw{h< zIf+XjZRr@=~pjhPKJ*TKTIn+h5(4O!0IQ#V(s-Hx@PBL+=-2BX367@i6y2 zECang{Aj-JG(E}JJs^GE*Wq_{#H_?>#CQ1K|_R@bdF8w{k>s!gv-!7&9 zcB=GeP|&w8F8#0nQ2J?cZr0L(?<8&X{aiCO{dP{D;=nil#^7|%TC~VfR>XH#EHq+; zXWv@-t-+i3OvsCs=JCR_ZwpuH6F$%@_0kV?K8tADY?>;{-UiYS^fs!cZy8%x&)QvS zy@_uv12qaZxr6ezp&9jOq_l9@Eh-&0jy~^s7YnKBIO<}Bt_)N9`t7+qk$ zmwKSTZ|_01BgA-jmzvv21RrqwF8E!&=ux2#^A91FH1}opVg7=Mw$^N<6a6vl?Q;uH zrEe5=im2~ym~-E~f+ZrlhXh4*R91Ie(WElnYHb%*#P<;bn>4qKV;>OK-QzQYK9+h$ zWXrb_PYSxD$vQ#hgAZx)y`JwW!Lr;6N3{M8WFkJ6r?k93e?@rJw+_*Y?=avFfwQtu z+`2}dpt7`vzAGqwMSi6CiS!tHrCxH~g=zJwc|c5f)BxMxqnB5O^}6%ZWP1CC3oJ!@ z61|+JMX#oLfXDBg)O?20FTE18#}V!sk&|J~g$g}=8#S8F=aPctU;40M>KgM&5x>TK zQXKOd6H67`DC9Nflj0cHm`@U82f1}W)C*Ghg42!VM(d-&<#ESpr?9?4c~s8l=ogtk z$jiw?pn6`YD@%wuQSl=xo<3SdQj3b8^;G;5R)d&to#02m>_lHN|4uqazD&3WSl^un zCiInb1<16}3x=WeJH@2Y^7Tfn^f|#>a^TAVJl?Kd$RsYuL^UzFgD>uqqPmp zl)h;2_ypt|@Z*kE3FVO3qF0U5pI|wlz;-$2$F%5uqkJp4N`C$M4W}Dg+MJh=5`HU} zyAK_#FNydXz9dA=4ncG3iFry#cZcohekVJiTWG9N@H1V$Aoo2_-qlWFy-EIF%HRs? zxDfL0*ZQ=DUIRzhtx%t$VVjh05qyRHH34Ku@7dO?TC2aP?@`+8n`wltLfw?UC}@}; zBr8y)o@Mk~+BB0c@(NG(({9(*Y$M(KF|lBh`!f2yZeli{UfXRnRz&mSW2?`eewL19 z9p;jwn13@tSSB3;DtP0eT1iQHB`G* z$ZIk=Lu+QgaJn4srUZDML+$lvVeNJs6C4O2hCAd{DJXxnHxtR=x1=KuN`rg`x=6?Y zB!_wYLUtRS>@9Spx}6g?3Ew6;^fckn+#dQ)KK?lz-60fKlc^6NZLa50!a$%TCi)CK zO|G64D2nnkk!bLKv4WPBW^lcnf%+__5Uo^)hnMm?O?#ENUoP(q=dqH`q)E(_CzpgNgrB z*p&cBab(%*%<62lB(RL+dthYToGzo8S?>`O8#^=JnKnV}Oiy^m1iKq})Y4GyiSU2} zBi6ec8zHc{%^~g^N!$i}fsHu@n8V!NEp&jy4d(JOKEQwt+W&uMR%Z!tPYkW9Uq4^| z{P`>M=g*(z2dyfm9j-kL9Inq%lBrB3EYch(@CmFv$IFy(jI~R`Y`YdiIRua|0f4#& zwL85Xu?mSZ7)HIjk^iOWQ*H9YaI~?Pv%Ve`BRWibeWUNK>tzi84d~!`eJNDs~=bnkB9pe*9JPvT0-NSWk0vYN)_v#b!$L(sT+UXPog*0b2~ z1yt?a0436=B5f-13$cb{>dnB(gpa!!$>Ky4qq^H+J)6SRIIrByPM8Ktopl#xlC~!( zQZ;cDib#UXX$L3j*cnEAX=p#lxR7CXL|@E7Bw8MMHT2a1jeapS4j~2@J?>WjgY6PKIh)RbZz%6Ei}vb2whply(ZnM$E3pYyt}S zTrdMZ(86A_Kd6_kQ*n2ksE%X`G#LfZ1h7&S#%lGVLnmeE=_K<4RVRJop1h~H%^IxP z18bJd%{mMPil}BG&}>t{n+>$WCW85Q#DyqK2!V)I!eiqFr>R0eH#y%i97J#ia3&!o z6e*)bIhsfTBPj;&SIS6KXLUsbNhd*P*|imoRGm~gy>V%rjxZbU6vKbUO!UJ3U`nx8 zD{ZM9iyC^bpCXs&D2q-I7TU1iT);A9B(q67c(r$yy1?2QlvnD4F147kpnUaZ>S!9? z?o^NX8zNOYQMi*te6mQnQ$*zxFfG)_t3;~Ij!zL7?`1knHuVQ*u8w*jeGWsxh9|I$ z*>+xjM;*0E#=a#pU(Rs1vJ2%=T?HuxrXYXCV$uEHQsG944hu7KQ^Sf`&_7Nrf#Rq*v-saiDQ$WIGtNrI)) z3kQPOg9%!_y-R{)iU5$vSM{pxn{-ETLkf)hGEDE2e%WP)Cr#3kKy;2^i4kCQH_7PM zl5AZRBD1XSeN)&~^uph!S91+Ots{Sf@`rBH0{#Ye+;XHHg@qn-Wb0cl`U+f9z=P` zGf~Xdc5QU7z~$|xcHZ86^xrnOBaT7hmOEX*wRd#^*CO{;&jp;9)djrIa{))9p6Xa8 z?7EG$3%hP-I_!EB#oxhv$pI&HDD@*heUGN^1a;(h=p(ylgD71q4*>b%s+DG3^$Uut z?qWKwI$vaus}^M9s;{AgvYXv~TW$}-ZMpyTPKj@n=8{T`<;nWQ8(h1k$CO(-&ZC@E zl<^)VsVEaX$`M7G2$U4<%B2`jOyV?BPU31-`k39Z>o$r1@UGilhH-=yj3jMsDLQ9yAHBUUL%)#TZjB?w6}HGPour9 zq&I0V_`ym0er+iOaKnLRLf&b{g&nL4m^(UE94%#`NI9EDY>{AanRd47%X+6yUzXX< zHt#yk5C(G=_YWNK%W`njDa`#WpJXT0Sr1>1oVKpy( z+^vS?$x^Q3ru7WB%`gHwusG>X=5$ba33qD*o)nH22cosYDlHz9m=1u`xw@+?Zb(KK zaf{X>-4nGO)4vxBTs6T63Af4UGH%6}2+TP@!f<~JeR_APpj8nG6Pv{?JoKpK{8&gi zF$U(&<|>^W1j01=**vxk7elisNY%h_e{4ARQ5ARg$u}+fCbwj`Y!-sgXy4oo=%@lg z#*LR}2*ONQ-2rW>jHGMvw_DwN@XkgZVRT&4ITSoQ3Ap769#B$R@l#myqBDxq3>P=&@8-=!=4ZPNs=ZA38JmLaINNpoms zdM~njVjhlnM?FFhNjL_Rz8!pCiF7EV{NZ|8Sj~rbq5~xG{IGluG}*E67XyuV_Jr!% z7KS^O6x*83-CcAL3r(gM-NS%^c7;wwD+_=aKSIW8eX^rnC6;xZ)c3SvdK?e){|hPl z4Td`_)g0+6@;*oD#4CJ)M0wt`TbI2A&_2 z!A9dvNxIW`w~L{qyMo95&(<=7xTi@QKUO{0(jNFGi@ilI_8AiX1kDNU2L$!*!$@#{ zS5#;AF{75_Ad$i%?qY$1#4k~FxO-c;?}+HT!om(tWk@h==$rTMeEyz@uNBmSlkHn@ z%CDN!cc>=SZ3;-V3iX0pb)=7SrH?c1(Qc7G)O&fVSMn6aT_UlkG7FWJ68vHhPCqSnMqI_<;bxPngaRSTE$}WT(!F!MLkuEHE#!cALeQyzuBg^tvuHW3zY%Z5Cf) zzRlvPI4^(d`HUZmY@5Y}o{O~xU#rg;ex{ptUl4@BEF#(BJjfwRdjRNxe zTNViF>+6`7pssHiJU5B1;^^No-_Gs#Os8UPP}+H*bK-pz=oUQ439F3;SQmwJpVd3I zO*jef;V?KJ55ms@{MjgInAxPhPm>0dOLONESVvMCP3#EHPz_`lZP3Z#Tv|ib=~1Q* z9FI*R8QX$vTZyfbBU=YrjzOJ@I)d|1I9KLOwQ?D7Y{jY4O2T3o=g%#$AiilAk?q!T z+`W*4X&rYr2`8{>=19--h?HJ6Q||sAhRKmGj0DLIRI@!)gRX2n z?GSa3?c;$0n$Zv7sGipE(nyXjIDWSWnkQA(BX)ue<~33i=CpKIl-D^23ixg*3{lDb z^DWR7r>HA1M1^Z+k0xjMQ3lKbf*H;2oN(?Y&~zkF(U_trZS)|wD!UfoN?a;{maP$s znqS$q32F6G1HH>_-TsR5V3}<+zXG)5HuJJzbw%&;Q0YzE-6}fbRtsI>BVY*@bil7e zL@YcLi^nE|n69921g;4e`q1UQCt@e5R33(i6KZ2~JljPggU z-XJzE->DrP?=u^PE$Tb4Yf4^N)>v)_!@1uCq|u@-D0E!MDRi84_wwit9vI$~Ox8z_ z@<6Gf;x9T7m3Zh;Ahsoi_}1yi1iC% z#g8#L<2hay%C`Xdl5QjL*4EH^L(A8Q`OBcHGCRkXI)oUcAb7vnjDG2-Vil63CZ*{bZ^m`=@%*MWQgrHF46X)i>W#)u*6;eN39 zbocmn0Y5tgM%gCtP=|2tJQ%5ZmWO+m=k_em>sg+!Be%)uM_^Sj%9rjG?k+K^F%syF zal597)vYanSLOD=-J;)aVO8!H<-y2*luit~dqi!wb%Di{1cN%j*+C1A=F~g(u?Uv# z74AMUsyu{|Q(DZ;u%m}~Aah6XIZ2GOmF37!n1o{c1vKOs@AT^cS!5W0aCcSr$&ZyLok4ZtMU~u}CP(t43N4&<+~3vRw6t3d9Zx+kBKS%d{_%Uv1*SZKhn( z-Ok~`E-v{pCFy~Jgs1HuAg$((61(p}(UoUJ%Sf!6VDfruP+S;?EO-LVl+IkV?hEurcz_6-^Yov)sd?z8dHl!;{gxJ1ESg zP;prQNr*QJzzp7H+)&6C8L%q}3O8K-ZzNoPI|{PUR6%o;$FxU!hf5*tG?WA@8Y4ldC5W|Ps#y=JLsyUk6{uiJSq{_@()eKyA37NEUuY0z zxe2PFikkgTxZHlC-xF41FAa;%m{7b?;8pi{6a9_k#;fQ;zjtrj@n!^=N&r9c0P2CG z-UF!TJqVzlNAd}voS&TR4{zKN?}ga3+MB>eJDqA`oeN8+VGi4V`%j#`J>e zmK9E-=}jTK6SeYd3nb$(1k~^A{;-C5aBt2#}>D> z@shT-Kee@uX=__d$w4znmHlyPi>^kpzXeu6Guk6^q9B4fwG}6DnoyzSEkVz0w*=vC z6=wXv-=zA^(oBLc0(iTMqT@Zl6^9jV0GF?`IQo=5V2U_)clWr6RBhnHBX{jG+SyrUS6jBo%aWIfp_>op-Mf#CK+Ji`M8c3`BNUO6V z>6Ot9O8YmE-tr^8ofWBzLb^i9{|3^#ex&!ZBK=q)9Y&-|U{W<`2jA?-q>4F=LiKhmbGNL>}u1w`6xAZ_s@ZOw}GghD!tNOcC%Hb2t#tVj`s zbR3a(7)T%ak#=T9>ZXv+BhoGdX}2F~PgbPv3h6W2dN7do`jPf!Me3oDt|HQYDy@zU za22y3I8_I+4&F&R#4*L=A*yd+3plc+=XfMkdY;ExC_n8mSK<462ym9;zX3h03mq=b3oL5&mN(a2=L%cLba?FG7lFDkxTz1Cqj$Fjz&ZoWLenQqdW@2#W~(*B`eXo4GGObCm1&Osk5|^zNKEi5fm;^i_+$ zuUfPA)sw2P_9N191L=ex>10+UM>(|)8gS&^PnNT(6$tbugSk90mOQXid< zhe)3oNEiG_7qcRjD5NhC>5_qT*^hK3E7DIC(wB(zse$yFAL;X~NIz9b2NCHD<30Nu zR|lTd_hK)i5A`J;^Oai$7hzd-T$G*=Me2i2k^n~c6_v#OKj&y5`ZrE#;~cjj91Wosac^ zM*W_1r4VOdpa<|`9Ossgcb{(8?F{b(rg_`AcW7-CWm4Pz`w_N@H9?Cw()L80r(5%y zk9D4Aeck5JJf@)F4f()c^6W?1VW{;f zqx-Qpp@pDk=oHW(Xad47ZV?%3!#S3{x`<*O6hG!EhZJrrY}6NxD~gbR?Z; zo?&AUy-?OmUkV$AORHi`sF-OWTt$Rg211)gm~C*iA=ey(>vdak%{91Q$H{x1!F5w( z%{RDiBGv+f>pRW0(BS$GxfU5*-)pXFgX??bsxi23X|7s>>lSh?Hn^^7t|bQ7HRM`q zaE;P!TxM{M!Zt3qeG}aZ&koNjJAArx;zzjdFbw2P+YZv!X7Q*-n2D3_0vkVuUF3ZX z8?z@D*lG8ih@TVqDeUv|Q`op8zltQF-dtikH6fL%G6#iOO(J(v&uZl}cMeX-YizC_ zAvAa(03Mx8ZF(#7PScYVREnz-ANdAXh>UZS_BzW@k#(`9xmBl*rqB1C=^f+ z_;7A%fe!kZ=h%|@kdJweuJo{v`8$Q2^f7;@kyCyNuNlfo`$}BXCF*_fUn%$_KIX49 zbAyk0j1s)j$2>+0-sEHcS|K<4n7`J@M}5pA6!I}2^9YUH;$yB<%&k7=O3i$nJcQq3 z)-~?xq^ZMFrG;y0ue-ExOy3kNY}5z1oyDP|uw|8mO9Ca~{u~H>@IGRds|iUAxsspja~j0+U37stCUwt z)5asc?FpCK6E3$WT(Nalz~!u20sr7-1?)#@e^J!YLE%)U<(TbN|`a}89L4yXz z20v3VY}k;&mS{(JUG*RjAM_vcQpH~f{o5dS*l+&);vmb((4PCtiwQ}LAo2OZzpWTH zNEPjl6yyHkOtEK%0OhY#t|&wO9K+ ze?2t*;){cZT3v{_d}u{k*`T2r`2rd=LwZ1y3~?SM=y=5|TIyUPycGX$b^j#Z|8CH$ z!_+-9tJ4DaLZW2IRCmA0X;gV%hFO1){var swf=arguments[1];var conf=(arguments.length==3)?arguments[2]:{};if(typeof arg=='string'){if(arg.indexOf(".")!=-1){var instances=[];each(select(arg),function(){instances.push(new Player(this,clone(swf),clone(conf)));});return new Iterator(instances);}else{var node=el(arg);return new Player(node!==null?node:arg,swf,conf);}}else if(arg){return new Player(arg,swf,conf);}} -return null;};extend(window.$f,{fireEvent:function(){var a=[].slice.call(arguments);var p=$f(a[0]);return p?p._fireEvent(a.slice(1)):null;},addPlugin:function(name,fn){Player.prototype[name]=fn;return $f;},each:each,extend:extend});if(typeof jQuery=='function'){jQuery.prototype.flowplayer=function(params,conf){if(!arguments.length||typeof arguments[0]=='number'){var arr=[];this.each(function(){var p=$f(this);if(p){arr.push(p);}});return arguments.length?arr[arguments[0]]:new Iterator(arr);} -return this.each(function(){$f(this,clone(params),conf?clone(conf):{});});};}})();(function(){var jQ=typeof jQuery=='function';var options={width:'100%',height:'100%',allowfullscreen:true,allowscriptaccess:'always',quality:'high',version:null,onFail:null,expressInstall:null,w3c:false,cachebusting:false};if(jQ){jQuery.tools=jQuery.tools||{};jQuery.tools.flashembed={version:'1.0.4',conf:options};} -function isDomReady(){if(domReady.done){return false;} -var d=document;if(d&&d.getElementsByTagName&&d.getElementById&&d.body){clearInterval(domReady.timer);domReady.timer=null;for(var i=0;i1){var params=arguments[1],conf=(arguments.length==3)?arguments[2]:{};if(typeof params=='string'){params={src:params};} +params=extend({bgcolor:"#000000",version:[9,0],expressInstall:"http://static.flowplayer.org/swf/expressinstall.swf",cachebusting:false},params);if(typeof arg=='string'){if(arg.indexOf(".")!=-1){var instances=[];each(select(arg),function(){instances.push(new Player(this,clone(params),clone(conf)));});return new Iterator(instances);}else{var node=el(arg);return new Player(node!==null?node:arg,params,conf);}}else if(arg){return new Player(arg,params,conf);}} +return null;};extend(window.$f,{fireEvent:function(){var a=[].slice.call(arguments);var p=$f(a[0]);return p?p._fireEvent(a.slice(1)):null;},addPlugin:function(name,fn){Player.prototype[name]=fn;return $f;},each:each,extend:extend});if(typeof jQuery=='function'){jQuery.fn.flowplayer=function(params,conf){if(!arguments.length||typeof arguments[0]=='number'){var arr=[];this.each(function(){var p=$f(this);if(p){arr.push(p);}});return arguments.length?arr[arguments[0]]:new Iterator(arr);} +return this.each(function(){$f(this,clone(params),conf?clone(conf):{});});};}})();(function(){var IE=document.all,URL='http://www.adobe.com/go/getflashplayer',JQUERY=typeof jQuery=='function',RE=/(\d+)[^\d]+(\d+)[^\d]*(\d*)/,GLOBAL_OPTS={width:'100%',height:'100%',id:"_"+(""+Math.random()).slice(9),allowfullscreen:true,allowscriptaccess:'always',quality:'high',version:[3,0],onFail:null,expressInstall:null,w3c:false,cachebusting:false};if(window.attachEvent){window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};});} +function extend(to,from){if(from){for(var key in from){if(from.hasOwnProperty(key)){to[key]=from[key];}}} return to;} -var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},rep;function string2JsonString(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==='string'?c:'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4);})+'"':'"'+string+'"';} -function asString(obj){switch(typeOf(obj)){case'string':return string2JsonString(obj);case'array':return'['+map(obj,function(el){return asString(el);}).join(',')+']';case'function':return'"function()"';case'object':var str=[];for(var prop in obj){if(obj.hasOwnProperty(prop)){str.push('"'+prop+'":'+asString(obj[prop]));}} -return'{'+str.join(',')+'}';} -return String(obj).replace(/\s/g," ").replace(/\'/g,"\"");} -function typeOf(obj){if(obj===null||obj===undefined){return false;} -var type=typeof obj;return(type=='object'&&obj.push)?'array':type;} -if(window.attachEvent){window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};});} function map(arr,func){var newArr=[];for(var i in arr){if(arr.hasOwnProperty(i)){newArr[i]=func(arr[i]);}} return newArr;} -function getHTML(p,c){var e=extend({},p);var ie=document.all;var html='';} -e.width=e.height=e.id=e.w3c=e.src=null;for(var k in e){if(e[k]!==null){html+='';}} -var vars="";if(c){for(var key in c){if(c[key]!==null){vars+=encodeURIComponent(key)+'=' -+encodeURIComponent(typeof c[key]=='object'?asString(c[key]):c[key]) -+'&';}} -vars=vars.substring(0,vars.length-1);html+='';} -html+="";return html;} -function Flash(root,opts,flashvars){var version=flashembed.getVersion();extend(this,{getContainer:function(){return root;},getConf:function(){return opts;},getVersion:function(){return version;},getFlashvars:function(){return flashvars;},getApi:function(){return root.firstChild;},getHTML:function(){return getHTML(opts,flashvars);}});var required=opts.version;var express=opts.expressInstall;var ok=!required||flashembed.isSupported(required);if(ok){opts.onFail=opts.version=opts.expressInstall=null;root.innerHTML=getHTML(opts,flashvars);}else if(required&&express&&flashembed.isSupported([6,65])){extend(opts,{src:express});flashvars={MMredirectURL:location.href,MMplayerType:'PlugIn',MMdoctitle:document.title};root.innerHTML=getHTML(opts,flashvars);}else{if(root.innerHTML.replace(/\s/g,'')!==''){}else{root.innerHTML="

Flash version "+required+" or greater is required

"+"

"+ -(version[0]>0?"Your version is "+version:"You have no flash plugin installed")+"

"+ -(root.tagName=='A'?"

Click here to download latest version

":"

Download latest version from here

");if(root.tagName=='A'){root.onclick=function(){location.href='http://www.adobe.com/go/getflashplayer';};}}} -if(!ok&&opts.onFail){var ret=opts.onFail.call(this);if(typeof ret=='string'){root.innerHTML=ret;}} -if(document.all){window[opts.id]=document.getElementById(opts.id);}} -window.flashembed=function(root,conf,flashvars){if(typeof root=='string'){var el=document.getElementById(root);if(el){root=el;}else{domReady(function(){flashembed(root,conf,flashvars);});return;}} +window.flashembed=function(root,opts,conf){if(typeof root=='string'){root=document.getElementById(root.replace("#",""));} if(!root){return;} -if(typeof conf=='string'){conf={src:conf};} -var opts=extend({},options);extend(opts,conf);return new Flash(root,opts,flashvars);};extend(window.flashembed,{getVersion:function(){var version=[0,0];if(navigator.plugins&&typeof navigator.plugins["Shockwave Flash"]=="object"){var _d=navigator.plugins["Shockwave Flash"].description;if(typeof _d!="undefined"){_d=_d.replace(/^.*\s+(\S+\s+\S+$)/,"$1");var _m=parseInt(_d.replace(/^(.*)\..*$/,"$1"),10);var _r=/r/.test(_d)?parseInt(_d.replace(/^.*r(.*)$/,"$1"),10):0;version=[_m,_r];}}else if(window.ActiveXObject){try{var _a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{_a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");version=[6,0];_a.AllowScriptAccess="always";}catch(ee){if(version[0]==6){return version;}} -try{_a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(eee){}} -if(typeof _a=="object"){_d=_a.GetVariable("$version");if(typeof _d!="undefined"){_d=_d.replace(/^\S+\s+(.*)$/,"$1").split(",");version=[parseInt(_d[0],10),parseInt(_d[2],10)];}}} -return version;},isSupported:function(version){var now=flashembed.getVersion();var ret=(now[0]>version[0])||(now[0]==version[0]&&now[1]>=version[1]);return ret;},domReady:domReady,asString:asString,getHTML:getHTML});if(jQ){jQuery.fn.flashembed=function(conf,flashvars){var el=null;this.each(function(){el=flashembed(this,conf,flashvars);});return conf.api===false?this:el;};}})(); \ No newline at end of file +if(typeof opts=='string'){opts={src:opts};} +return new Flash(root,extend(extend({},GLOBAL_OPTS),opts),conf);};var f=extend(window.flashembed,{conf:GLOBAL_OPTS,getVersion:function(){var fo,ver;try{ver=navigator.plugins["Shockwave Flash"].description.slice(16);}catch(e){try{fo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");ver=fo&&fo.GetVariable("$version");}catch(err){try{fo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");ver=fo&&fo.GetVariable("$version");}catch(err2){}}} +ver=RE.exec(ver);return ver?[ver[1],ver[3]]:[0,0];},asString:function(obj){if(obj===null||obj===undefined){return null;} +var type=typeof obj;if(type=='object'&&obj.push){type='array';} +switch(type){case'string':return string2JsonString(obj);case'array':return'['+map(obj,function(el){return f.asString(el);}).join(',')+']';case'function':return'"function()"';case'object':var str=[];for(var prop in obj){if(obj.hasOwnProperty(prop)){str.push('"'+prop+'":'+f.asString(obj[prop]));}} +return'{'+str.join(',')+'}';} +return String(obj).replace(/\s/g," ").replace(/\'/g,"\"");},getHTML:function(opts,conf){opts=extend({},opts);var html='';} +opts.width=opts.height=opts.id=opts.w3c=opts.src=null;opts.onFail=opts.version=opts.expressInstall=null;for(var key in opts){if(opts[key]){html+='';}} +var vars="";if(conf){for(var k in conf){if(conf[k]){var val=conf[k];vars+=encodeURIComponent(k)+'=' ++encodeURIComponent(/function|object/.test(typeof val)?f.asString(val):val) ++'&';}} +vars=vars.slice(0,-1);html+='';} +html+="";return html;},isSupported:function(ver){return VERSION[0]>ver[0]||VERSION[0]==ver[0]&&VERSION[1]>=ver[1];}});var VERSION=f.getVersion();function Flash(root,opts,conf){if(f.isSupported(opts.version)){root.innerHTML=f.getHTML(opts,conf);}else if(opts.expressInstall&&f.isSupported([6,65])){root.innerHTML=f.getHTML(extend(opts,{src:opts.expressInstall}),{MMredirectURL:location.href,MMplayerType:'PlugIn',MMdoctitle:document.title});}else{if(!root.innerHTML.replace(/\s/g,'')){root.innerHTML="

Flash version "+opts.version+" or greater is required

"+"

"+ +(VERSION[0]>0?"Your version is "+VERSION:"You have no flash plugin installed")+"

"+ +(root.tagName=='A'?"

Click here to download latest version

":"

Download latest version from here

");if(root.tagName=='A'){root.onclick=function(){location.href=URL;};}} +if(opts.onFail){var ret=opts.onFail.call(this);if(typeof ret=='string'){root.innerHTML=ret;}}} +if(IE){window[opts.id]=document.getElementById(opts.id);} +extend(this,{getRoot:function(){return root;},getOptions:function(){return opts;},getConf:function(){return conf;},getApi:function(){return root.firstChild;}});} +var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},rep;function string2JsonString(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==='string'?c:'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4);})+'"':'"'+string+'"';} +if(JQUERY){jQuery.tools=jQuery.tools||{version:'3.2.6'};jQuery.tools.flashembed={conf:GLOBAL_OPTS};jQuery.fn.flashembed=function(opts,conf){return this.each(function(){jQuery(this).data("flashembed",flashembed(this,opts,conf));});};}})();$f.addPlugin("ipad",function(options){var STATE_UNLOADED=-1;var STATE_LOADED=0;var STATE_UNSTARTED=1;var STATE_BUFFERING=2;var STATE_PLAYING=3;var STATE_PAUSED=4;var STATE_ENDED=5;var self=this;var currentVolume=1;var onStartFired=false;var stopping=false;var playAfterSeek=false;var activeIndex=0;var activePlaylist=[];var clipDefaults={accelerated:false,autoBuffering:false,autoPlay:true,baseUrl:null,bufferLength:3,connectionProvider:null,cuepointMultiplier:1000,cuepoints:[],controls:{},duration:0,extension:'',fadeInSpeed:1000,fadeOutSpeed:1000,image:false,linkUrl:null,linkWindow:'_self',live:false,metaData:{},originalUrl:null,position:0,playlist:[],provider:'http',scaling:'scale',seekableOnBegin:false,start:0,url:null,urlResolvers:[]};var currentState=STATE_UNLOADED;var previousState=STATE_UNLOADED;var isiDevice=/iPad|iPhone|iPod/i.test(navigator.userAgent);var video=null;function extend(to,from,includeFuncs){if(from){for(key in from){if(key){if(from[key]&&typeof from[key]=="function"&&!includeFuncs) +continue;if(from[key]&&typeof from[key]=="object"&&from[key].length==undefined){var cp={};extend(cp,from[key]);to[key]=cp;}else{to[key]=from[key];}}}} +return to;} +var opts={simulateiDevice:false,controlsSizeRatio:1.5,controls:true,debug:false,validExtensions:/mov|m4v|mp4|avi/gi};extend(opts,options);function log(){if(opts.debug){if(isiDevice){var str=[].splice.call(arguments,0).join(', ');console.log.apply(console,[str]);}else{console.log.apply(console,arguments);}}} +function stateDescription(state){switch(state){case-1:return"UNLOADED";case 0:return"LOADED";case 1:return"UNSTARTED";case 2:return"BUFFERING";case 3:return"PLAYING";case 4:return"PAUSED";case 5:return"ENDED";} +return"UNKOWN";} +function actionAllowed(eventName){var ret=$f.fireEvent(self.id(),"onBefore"+eventName,activeIndex);return ret!==false;} +function stopEvent(e){e.stopPropagation();e.preventDefault();return false;} +function setState(state,force){if(currentState==STATE_UNLOADED&&!force) +return;previousState=currentState;currentState=state;stopPlayTimeTracker();if(state==STATE_PLAYING) +startPlayTimeTracker();log(stateDescription(state));} +function resetState(){video.fp_stop();onStartFired=false;stopping=false;playAfterSeek=false;setState(STATE_UNSTARTED);setState(STATE_UNSTARTED);} +var _playTimeTracker=null;function startPlayTimeTracker(){if(_playTimeTracker) +return;console.log("starting tracker");_playTimeTracker=setInterval(onTimeTracked,100);onTimeTracked();} +function stopPlayTimeTracker(){clearInterval(_playTimeTracker);_playTimeTracker=null;} +function onTimeTracked(){var currentTime=Math.floor(video.fp_getTime()*10)*100;var duration=Math.floor(video.duration*10)*100;var fireTime=(new Date()).time;function fireCuePointsIfNeeded(time,cues){time=time>=0?time:duration-Math.abs(time);for(var i=0;ifireTime){cues[i].lastTimeFired=-1;}else if(cues[i].lastTimeFired+500>fireTime){continue;}else{if(time==currentTime||(currentTime-500time)){cues[i].lastTimeFired=fireTime;$f.fireEvent(self.id(),'onCuepoint',activeIndex,cues[i].fnId,cues[i].parameters);}}}} +$f.each(self.getCommonClip()._cuepoints,fireCuePointsIfNeeded);$f.each(activePlaylist[activeIndex]._cuepoints,fireCuePointsIfNeeded);} +function replay(){resetState();playAfterSeek=true;video.fp_seek(0);} +function scaleVideo(clip){} +function addAPI(){function fixClip(clip){var extendedClip={};extend(extendedClip,clipDefaults);extend(extendedClip,self.getCommonClip());extend(extendedClip,clip);if(extendedClip.ipadUrl) +url=decodeURIComponent(extendedClip.ipadUrl);else if(extendedClip.url) +url=extendedClip.url;if(url&&url.indexOf('://')==-1&&extendedClip.baseUrl) +url=extendedClip.baseUrl+'/'+url;extendedClip.originalUrl=extendedClip.url;extendedClip.completeUrl=url;extendedClip.extension=extendedClip.completeUrl.substr(extendedClip.completeUrl.lastIndexOf('.'));extendedClip.type='video';delete extendedClip.index;log("fixed clip",extendedClip);return extendedClip;} +video.fp_play=function(clip,inStream,forcePlay){var url=null;var autoBuffering=true;var autoPlay=true;log("Calling play() "+clip,clip);if(inStream){log("ERROR: inStream clips not yet supported");return;} +if(clip!==undefined){if(typeof clip=="number"){if(activeIndex>=activePlaylist.length) +return;activeIndex=clip;clip=activePlaylist[activeIndex];}else{if(typeof clip=="string"){clip={url:clip};} +video.fp_setPlaylist(clip.length!==undefined?clip:[clip]);} +if(!opts.validExtensions.test(activePlaylist[activeIndex].extension)){if(activePlaylist.length>1&&activeIndex<(activePlaylist.length-1)){log("Not last clip in the playlist, moving to next one");video.fp_play(++activeIndex,false,true);} +return;} +clip=activePlaylist[activeIndex];url=clip.completeUrl;if(clip.autoBuffering!==undefined&&clip.autoBuffering===false) +autoBuffering=false;if(clip.autoPlay===undefined||clip.autoPlay===true||forcePlay===true){autoBuffering=true;autoPlay=true;}else{autoPlay=false;}}else{log("clip was not given, simply calling video.play, if not already buffering");if(currentState!=STATE_BUFFERING) +video.play();return;} +log("about to play "+url,autoBuffering,autoPlay);resetState();if(url){log("Changing SRC attribute"+url);video.setAttribute('src',url);} +if(autoBuffering){if(!actionAllowed('Begin')) +return false;$f.fireEvent(self.id(),'onBegin',activeIndex);log("calling video.load()");video.load();} +if(autoPlay){log("calling video.play()");video.play();}} +video.fp_pause=function(){log("pause called");if(!actionAllowed('Pause')) +return false;video.pause();};video.fp_resume=function(){log("resume called");if(!actionAllowed('Resume')) +return false;video.play();};video.fp_stop=function(){log("stop called");if(!actionAllowed('Stop')) +return false;stopping=true;video.pause();try{video.currentTime=0;}catch(ignored){}};video.fp_seek=function(position){log("seek called "+position);if(!actionAllowed('Seek')) +return false;var seconds=0;var position=position+"";if(position.charAt(position.length-1)=='%'){var percentage=parseInt(position.substr(0,position.length-1))/100;var duration=video.duration;seconds=duration*percentage;}else{seconds=position;} +try{video.currentTime=seconds;}catch(e){log("Wrong seek time");}};video.fp_getTime=function(){return video.currentTime;};video.fp_mute=function(){log("mute called");if(!actionAllowed('Mute')) +return false;currentVolume=video.volume;video.volume=0;};video.fp_unmute=function(){if(!actionAllowed('Unmute')) +return false;video.volume=currentVolume;};video.fp_getVolume=function(){return video.volume*100;};video.fp_setVolume=function(volume){if(!actionAllowed('Volume')) +return false;video.volume=volume/100;};video.fp_toggle=function(){log('toggle called');if(self.getState()==STATE_ENDED){replay();return;} +if(video.paused) +video.fp_play();else +video.fp_pause();};video.fp_isPaused=function(){return video.paused;};video.fp_isPlaying=function(){return!video.paused;};video.fp_getPlugin=function(name){if(name=='canvas'||name=='controls'){var config=self.getConfig();return config['plugins']&&config['plugins'][name]?config['plugins'][name]:null;} +log("ERROR: no support for "+name+" plugin on iDevices");return null;};video.fp_close=function(){setState(STATE_UNLOADED);video.parentNode.removeChild(video);video=null;};video.fp_getStatus=function(){var bufferStart=0;var bufferEnd=0;try{bufferStart=video.buffered.start();bufferEnd=video.buffered.end();}catch(ignored){} +return{bufferStart:bufferStart,bufferEnd:bufferEnd,state:currentState,time:video.fp_getTime(),muted:video.muted,volume:video.fp_getVolume()};};video.fp_getState=function(){return currentState;};video.fp_startBuffering=function(){if(currentState==STATE_UNSTARTED) +video.load();};video.fp_setPlaylist=function(playlist){log("Setting playlist");activeIndex=0;for(var i=0;i1&&activeIndex<(activePlaylist.length-1)){log("Not last clip in the playlist, moving to next one");video.fp_play(++activeIndex,false,true);}};video.addEventListener('ended',onFinish,false);var onError=function(e){setState(STATE_LOADED,true);$f.fireEvent(self.id(),'onError',activeIndex,201);if(opts.onFail&&opts.onFail instanceof Function) +opts.onFail.apply(self,[]);};video.addEventListener('error',onError,false);var onPause=function(e){log("got pause event from player"+self.id());if(stopping) +return;if(currentState==STATE_BUFFERING&&previousState==STATE_UNSTARTED){log("forcing play");setTimeout(function(){video.play();},0);return;} +if(!actionAllowed('Pause')){video.fp_resume();return stopEvent(e);} +setState(STATE_PAUSED);$f.fireEvent(self.id(),'onPause',activeIndex);} +video.addEventListener('pause',onPause,false);var onSeek=function(e){$f.fireEvent(self.id(),'onBeforeSeek',activeIndex);};video.addEventListener('seeking',onSeek,false);var onSeekDone=function(e){if(stopping){stopping=false;$f.fireEvent(self.id(),'onStop',activeIndex);} +else +$f.fireEvent(self.id(),'onSeek',activeIndex);log("seek done, currentState",stateDescription(currentState));if(playAfterSeek){playAfterSeek=false;video.fp_play();}else if(currentState!=STATE_PLAYING) +video.fp_pause();};video.addEventListener('seeked',onSeekDone,false);var onVolumeChange=function(e){$f.fireEvent(self.id(),'onVolume',video.fp_getVolume());};video.addEventListener('volumechange',onVolumeChange,false);} +function onPlayerLoaded(){video.fp_play(0);} +function installControlbar(){} +if(isiDevice||opts.simulateiDevice){if(!window.flashembed.__replaced){var realFlashembed=window.flashembed;window.flashembed=function(root,opts,conf){if(typeof root=='string'){root=document.getElementById(root.replace("#",""));} +if(!root){return;} +var style=window.getComputedStyle(root,null);var width=parseInt(style.width);var height=parseInt(style.height);while(root.firstChild) +root.removeChild(root.firstChild);var container=document.createElement('div');var api=document.createElement('video');container.appendChild(api);root.appendChild(container);container.style.height=height+'px';container.style.width=width+'px';container.style.display='block';container.style.position='relative';container.style.background='-webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.7)))';container.style.cursor='default';container.style.webkitUserDrag='none';api.style.height='100%';api.style.width='100%';api.style.display='block';api.id=opts.id;api.name=opts.id;api.style.cursor='pointer';api.style.webkitUserDrag='none';api.type="video/mp4";api.playerConfig=conf.config;$f.fireEvent(conf.config.playerId,'onLoad','player');};flashembed.getVersion=realFlashembed.getVersion;flashembed.asString=realFlashembed.asString;flashembed.isSupported=function(){return true;} +flashembed.__replaced=true;} +var __fireEvent=self._fireEvent;self._fireEvent=function(a){if(a[0]=='onLoad'&&a[1]=='player'){video=self.getParent().querySelector('video');if(opts.controls) +video.controls="controls";addAPI();addListeners();setState(STATE_LOADED,true);video.fp_setPlaylist(video.playerConfig.playlist);onPlayerLoaded();__fireEvent.apply(self,[a]);} +var shouldFireEvent=currentState!=STATE_UNLOADED;if(currentState==STATE_UNLOADED&&typeof a=='string') +shouldFireEvent=true;if(shouldFireEvent) +return __fireEvent.apply(self,[a]);} +self._swfHeight=function(){return parseInt(video.style.height);} +self.hasiPadSupport=function(){return true;}} +return self;}); \ No newline at end of file diff --git a/lib/flowplayer.pseudostreaming.swf b/lib/flowplayer.pseudostreaming.swf index 91b3fdd6f802f00e8cff6c0df7cb217f6b7a37f8..28f5d72ae5ac5bf1ebef1e0024707637f783af88 100644 GIT binary patch literal 4477 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 P_kYG+K#~6g8SPR)=)l=O literal 3763 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ξ#;yc#l6vh5kmqoh@rc^uVmP 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%0Do(@fzzp3rJJ6&T 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 literal 110762 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

)$9L18{$ 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 YU7QgwQ8*X1n@L1Q`sR8V9jDj-1H1lZfdBvi literal 0 HcmV?d00001 diff --git a/lib/jquery-ui.js b/lib/jquery-ui.js index 3398b9e..74515a5 100644 --- a/lib/jquery-ui.js +++ b/lib/jquery-ui.js @@ -18,7 +18,7 @@ this.started=false;},_mouseDestroy:function(){this.element.unbind('.'+this.widge (this._mouseStarted&&this._mouseUp(event));this._mouseDownEvent=event;var self=this,btnIsLeft=(event.which==1),elIsCancel=(typeof this.options.cancel=="string"?$(event.target).parents().add(event.target).filter(this.options.cancel).length:false);if(!btnIsLeft||elIsCancel||!this._mouseCapture(event)){return true;} this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){self.mouseDelayMet=true;},this.options.delay);} if(this._mouseDistanceMet(event)&&this._mouseDelayMet(event)){this._mouseStarted=(this._mouseStart(event)!==false);if(!this._mouseStarted){event.preventDefault();return true;}} -this._mouseMoveDelegate=function(event){return self._mouseMove(event);};this._mouseUpDelegate=function(event){return self._mouseUp(event);};$(document).bind('mousemove.'+this.widgetName,this._mouseMoveDelegate).bind('mouseup.'+this.widgetName,this._mouseUpDelegate);($.browser.safari||event.preventDefault());event.originalEvent.mouseHandled=true;return true;},_mouseMove:function(event){if($.browser.msie&&!event.button){return this._mouseUp(event);} +this._mouseMoveDelegate=function(event){return self._mouseMove(event);};this._mouseUpDelegate=function(event){return self._mouseUp(event);};$(document).bind('mousemove.'+this.widgetName,this._mouseMoveDelegate).bind('mouseup.'+this.widgetName,this._mouseUpDelegate);($.browser.safari||event.preventDefault());event.originalEvent.mouseHandled=true;return true;},_mouseMove:function(event){if($.browser.msie&&!(document.documentMode>=9)&&!event.button){return this._mouseUp(event);} if(this._mouseStarted){this._mouseDrag(event);return event.preventDefault();} if(this._mouseDistanceMet(event)&&this._mouseDelayMet(event)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,event)!==false);(this._mouseStarted?this._mouseDrag(event):this._mouseUp(event));} return!this._mouseStarted;},_mouseUp:function(event){$(document).unbind('mousemove.'+this.widgetName,this._mouseMoveDelegate).unbind('mouseup.'+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(event.target==this._mouseDownEvent.target);this._mouseStop(event);} diff --git a/modules/akismet/module.info b/modules/akismet/module.info index b61ed10..6347346 100644 --- a/modules/akismet/module.info +++ b/modules/akismet/module.info @@ -1,3 +1,7 @@ name = "Akismet" description = "Filter comments through the Akismet web service to detect and eliminate spam (http://akismet.com). You'll need a WordPress.com API key to use it." version = 1 +author_name = "Gallery Team" +author_url = "http://codex.gallery2.org/Gallery:Team" +info_url = "http://codex.gallery2.org/Gallery3:Modules:akismet" +discuss_url = "http://gallery.menalto.com/forum_module_akismet" diff --git a/modules/comment/controllers/admin_manage_comments.php b/modules/comment/controllers/admin_manage_comments.php index 9bd1d7f..72684e7 100644 --- a/modules/comment/controllers/admin_manage_comments.php +++ b/modules/comment/controllers/admin_manage_comments.php @@ -28,8 +28,10 @@ class Admin_Manage_Comments_Controller extends Admin_Controller { ->where("updated", "<", db::expr("UNIX_TIMESTAMP() - 86400 * 7")) ->execute(); - // Redirect to the appropriate queue - url::redirect("admin/manage_comments/queue/unpublished"); + $view = new Admin_View("admin.html"); + $view->content = new View("admin_manage_comments.html"); + $view->content->menu = $this->_menu($this->_counts()); + print $view; } public function menu_labels() { @@ -43,25 +45,32 @@ class Admin_Manage_Comments_Controller extends Admin_Controller { public function queue($state) { $page = max(Input::instance()->get("page"), 1); - $view = new Admin_View("admin.html"); - $view->page_title = t("Manage comments"); - $view->content = new View("admin_manage_comments.html"); - $view->content->counts = $this->_counts(); - $view->content->menu = $this->_menu($view->content->counts); - $view->content->state = $state; - $view->content->comments = ORM::factory("comment") + $view = new Gallery_View("admin_manage_comments_queue.html"); + $view->counts = $this->_counts(); + $view->menu = $this->_menu($view->counts); + $view->state = $state; + $view->comments = ORM::factory("comment") ->order_by("created", "DESC") ->order_by("id", "DESC") ->where("state", "=", $state) ->limit(self::$items_per_page) ->offset(($page - 1) * self::$items_per_page) ->find_all(); - $view->content->pager = new Pagination(); - $view->content->pager->initialize( - array("query_string" => "page", - "total_items" => $view->content->counts->$state, - "items_per_page" => self::$items_per_page, - "style" => "classic")); + + // This view is not themed so we can't use $theme->url() in the view and have to + // reproduce Gallery_View::url() logic here. + $atn = theme::$admin_theme_name; + $view->fallback_avatar_url = url::abs_file("themes/$atn/images/avatar.jpg"); + + $view->page = $page; + $view->page_type = "collection"; + $view->page_subtype = "admin_comments"; + $view->page_size = self::$items_per_page; + $view->children_count = $this->_counts()->$state; + $view->max_pages = ceil($view->children_count / $view->page_size); + + // Also we want to use $theme->paginator() so we need a dummy theme + $view->theme = $view; print $view; } diff --git a/modules/comment/helpers/comment_installer.php b/modules/comment/helpers/comment_installer.php index 48b6ee2..5c6bd58 100644 --- a/modules/comment/helpers/comment_installer.php +++ b/modules/comment/helpers/comment_installer.php @@ -37,8 +37,8 @@ class comment_installer { `server_http_referer` varchar(255) default NULL, `server_http_user_agent` varchar(128) default NULL, `server_query_string` varchar(64) default NULL, - `server_remote_addr` varchar(32) default NULL, - `server_remote_host` varchar(64) default NULL, + `server_remote_addr` varchar(40) default NULL, + `server_remote_host` varchar(255) default NULL, `server_remote_port` varchar(16) default NULL, `state` varchar(15) default 'unpublished', `text` text, @@ -48,7 +48,7 @@ class comment_installer { module::set_var("comment", "spam_caught", 0); module::set_var("comment", "access_permissions", "everybody"); - module::set_version("comment", 3); + module::set_version("comment", 4); } static function upgrade($version) { @@ -62,6 +62,19 @@ class comment_installer { module::set_var("comment", "access_permissions", "everybody"); module::set_version("comment", $version = 3); } + + if ($version == 3) { + // 40 bytes for server_remote_addr is enough to swallow the longest + // representation of an IPv6 addy. + // + // 255 bytes for server_remote_host is enough to swallow the longest + // legit DNS entry, with a few bytes to spare. + $db->query( + "ALTER TABLE {comments} CHANGE `server_remote_addr` `server_remote_addr` varchar(40)"); + $db->query( + "ALTER TABLE {comments} CHANGE `server_remote_host` `server_remote_host` varchar(255)"); + module::set_version("comment", $version = 4); + } } static function uninstall() { diff --git a/modules/comment/models/comment.php b/modules/comment/models/comment.php index d5e952e..7c189a0 100644 --- a/modules/comment/models/comment.php +++ b/modules/comment/models/comment.php @@ -98,8 +98,8 @@ class Comment_Model_Core extends ORM { $this->server_http_referer = substr($input->server("HTTP_REFERER"), 0, 255); $this->server_http_user_agent = substr($input->server("HTTP_USER_AGENT"), 0, 128); $this->server_query_string = substr($input->server("QUERY_STRING"), 0, 64); - $this->server_remote_addr = substr($input->server("REMOTE_ADDR"), 0, 32); - $this->server_remote_host = substr($input->server("REMOTE_HOST"), 0, 64); + $this->server_remote_addr = substr($input->server("REMOTE_ADDR"), 0, 40); + $this->server_remote_host = substr($input->server("REMOTE_HOST"), 0, 255); $this->server_remote_port = substr($input->server("REMOTE_PORT"), 0, 16); } diff --git a/modules/comment/module.info b/modules/comment/module.info index cd34f14..4e7df6f 100644 --- a/modules/comment/module.info +++ b/modules/comment/module.info @@ -1,3 +1,7 @@ name = "Comments" description = "Allows users and guests to leave comments on photos and albums." -version = 3 +version = 4 +author_name = "Gallery Team" +author_url = "http://codex.gallery2.org/Gallery:Team" +info_url = "http://codex.gallery2.org/Gallery3:Modules:comment" +discuss_url = "http://gallery.menalto.com/forum_module_comment" diff --git a/modules/comment/views/admin_manage_comments.html.php b/modules/comment/views/admin_manage_comments.html.php index 34a2898..e3c8546 100644 --- a/modules/comment/views/admin_manage_comments.html.php +++ b/modules/comment/views/admin_manage_comments.html.php @@ -2,200 +2,45 @@

-

- -
- -
- render() ?> -
- - -

- - - - - - - - - -

- - -
- - - -
-

- -

-
- - - - - - - - - - "> - - - - - -
- - - - - -
- - " - class="g-avatar" - alt="author_name()) ?>" - width="40" - height="40" /> - -

author_name()) ?>

-
- -

created) ?>

- text)) ?> -
-
    - state != "unpublished"): ?> -
  • - - - - -
  • - - state != "published"): ?> -
  • - - - - -
  • - - state != "spam"): ?> -
  • - - - - -
  • - - -
  • - - - - -
  • -
-
- -
- -
- -
+ render() ?>
diff --git a/modules/comment/views/admin_manage_comments_queue.html.php b/modules/comment/views/admin_manage_comments_queue.html.php new file mode 100644 index 0000000..d847d72 --- /dev/null +++ b/modules/comment/views/admin_manage_comments_queue.html.php @@ -0,0 +1,157 @@ + +
+ +
+ + 0): ?> +

+ +

+ +

+ spam): ?> + spam) ?> +

+

+ "> + + + + + +

+
+ + + +
+

+ +

+
+ + +
+ paginator() ?> +
+ + + + + + + + "> + + + + + +
+ + + + + +
+ + <?= html::clean_attribute($comment->author_name()) ?> + +

+ + author_name()) ?> + +

+
+ +

created) ?>

+ text)) ?> +
+
    + state != "unpublished" && $comment->state != "deleted"): ?> +
  • + + + + +
  • + + state != "published"): ?> +
  • + + + + + + + + +
  • + + state != "spam"): ?> +
  • + + + + +
  • + + + state != "deleted"): ?> +
  • + + + + +
  • + +
+
+ +
+ paginator() ?> +
+
diff --git a/modules/digibug/controllers/digibug.php b/modules/digibug/controllers/digibug.php index 4acb651..672afe5 100644 --- a/modules/digibug/controllers/digibug.php +++ b/modules/digibug/controllers/digibug.php @@ -33,8 +33,8 @@ class Digibug_Controller extends Controller { $proxy->uuid = random::hash(); $proxy->item_id = $item->id; $proxy->save(); - $full_url = url::abs_site("digibug/print_proxy/full/$proxy->uuid"); - $thumb_url = url::abs_site("digibug/print_proxy/thumb/$proxy->uuid"); + $full_url = url::abs_site("digibug/print_proxy/full/$proxy->uuid/$item->id"); + $thumb_url = url::abs_site("digibug/print_proxy/thumb/$proxy->uuid/$item->id"); } $v = new View("digibug_form.html"); @@ -114,7 +114,7 @@ class Digibug_Controller extends Controller { private function _clean_expired() { db::build() ->delete("digibug_proxies") - ->where("request_date", "<=", db::expr("(CURDATE() - INTERVAL 10 DAY)")) + ->where("request_date", "<=", db::expr("(CURDATE() - INTERVAL 90 DAY)")) ->limit(20) ->execute(); } diff --git a/modules/digibug/module.info b/modules/digibug/module.info index be4e880..781d5f0 100644 --- a/modules/digibug/module.info +++ b/modules/digibug/module.info @@ -1,3 +1,7 @@ name = "Digibug" description = "Digibug Photo Printing Module" version = 2 +author_name = "Gallery Team" +author_url = "http://codex.gallery2.org/Gallery:Team" +info_url = "http://codex.gallery2.org/Gallery3:Modules:digibug" +discuss_url = "http://gallery.menalto.com/forum_module_digibug" diff --git a/modules/exif/helpers/exif.php b/modules/exif/helpers/exif.php index 1cdf7d3..a35a214 100644 --- a/modules/exif/helpers/exif.php +++ b/modules/exif/helpers/exif.php @@ -36,10 +36,7 @@ class exif_Core { foreach(self::_keys() as $field => $exifvar) { if (isset($exif_raw[$exifvar[0]][$exifvar[1]])) { $value = $exif_raw[$exifvar[0]][$exifvar[1]]; - if (function_exists("mb_detect_encoding") && - mb_detect_encoding($value, "ISO-8859-1, UTF-8") != "UTF-8") { - $value = utf8_encode($value); - } + $value = encoding::convert_to_utf8($value); $keys[$field] = Input::clean($value); if ($field == "DateTime") { @@ -60,10 +57,7 @@ class exif_Core { foreach (array("Keywords" => "2#025", "Caption" => "2#120") as $keyword => $iptc_key) { if (!empty($iptc[$iptc_key])) { $value = implode(" ", $iptc[$iptc_key]); - if (function_exists("mb_detect_encoding") && - mb_detect_encoding($value, "ISO-8859-1, UTF-8") != "UTF-8") { - $value = utf8_encode($value); - } + $value = encoding::convert_to_utf8($value); $keys[$keyword] = Input::clean($value); if ($keyword == "Caption" && !$item->description) { diff --git a/modules/exif/helpers/exif_event.php b/modules/exif/helpers/exif_event.php index e594c76..72e8804 100644 --- a/modules/exif/helpers/exif_event.php +++ b/modules/exif/helpers/exif_event.php @@ -24,6 +24,12 @@ class exif_event_Core { } } + static function item_updated_data_file($item) { + if (!$item->is_album()) { + exif::extract($item); + } + } + static function item_deleted($item) { db::build() ->delete("exif_records") diff --git a/modules/exif/module.info b/modules/exif/module.info index c8ae688..e266e20 100644 --- a/modules/exif/module.info +++ b/modules/exif/module.info @@ -1,3 +1,7 @@ name = "Exif Data" description = "Extract Exif data and display it on photo pages." version = 1 +author_name = "Gallery Team" +author_url = "http://codex.gallery2.org/Gallery:Team" +info_url = "http://codex.gallery2.org/Gallery3:Modules:exif" +discuss_url = "http://gallery.menalto.com/forum_module_exif" diff --git a/modules/g2_import/controllers/admin_g2_import.php b/modules/g2_import/controllers/admin_g2_import.php index 33186fb..4c8af85 100644 --- a/modules/g2_import/controllers/admin_g2_import.php +++ b/modules/g2_import/controllers/admin_g2_import.php @@ -24,23 +24,47 @@ class Admin_g2_import_Controller extends Admin_Controller { g2_import::init(); } - if (class_exists("GalleryCoreApi")) { - $g2_stats = g2_import::stats(); - $g2_sizes = g2_import::common_sizes(); - } - $view = new Admin_View("admin.html"); $view->page_title = t("Gallery 2 import"); $view->content = new View("admin_g2_import.html"); + + if (class_exists("GalleryCoreApi")) { + $view->content->g2_stats = $g2_stats = g2_import::g2_stats(); + $view->content->g3_stats = $g3_stats = g2_import::g3_stats(); + $view->content->g2_sizes = g2_import::common_sizes(); + $view->content->g2_version = g2_import::version(); + + // Don't count tags because we don't track them in g2_map + $view->content->g2_resource_count = + $g2_stats["users"] + $g2_stats["groups"] + $g2_stats["albums"] + + $g2_stats["photos"] + $g2_stats["movies"] + $g2_stats["comments"]; + $view->content->g3_resource_count = + $g3_stats["user"] + $g3_stats["group"] + $g3_stats["album"] + + $g3_stats["item"] + $g3_stats["comment"] + $g3_stats["tag"]; + } + $view->content->form = $this->_get_import_form(); $view->content->version = ""; + $view->content->thumb_size = module::get_var("gallery", "thumb_size"); + $view->content->resize_size = module::get_var("gallery", "resize_size"); if (g2_import::is_initialized()) { - $view->content->g2_stats = $g2_stats; - $view->content->g2_sizes = $g2_sizes; - $view->content->thumb_size = module::get_var("gallery", "thumb_size"); - $view->content->resize_size = module::get_var("gallery", "resize_size"); - $view->content->version = g2_import::version(); + if ((bool)ini_get("eaccelerator.enable") || (bool)ini_get("xcache.cacher")) { + message::warning(t("The eAccelerator and XCache PHP performance extensions are known to cause issues. If you're using either of those and are having problems, please disable them while you do your import. Add the following lines:
%lines
to gallery3/.htaccess and remove them when the import is done.", array("lines" => "\n\n php_value eaccelerator.enable 0\n php_value xcache.cacher off\n php_value xcache.optimizer off\n\n"))); + } + + foreach (array("notification", "search", "exif") as $module_id) { + if (module::is_active($module_id)) { + message::warning( + t("Deactivating the %module_id module during your import will make it faster", + array("url" => url::site("admin/modules"), "module_id" => $module_id))); + } + } + if (module::is_active("akismet")) { + message::warning( + t("The Akismet module may mark some or all of your imported comments as spam. Deactivate it to avoid that outcome.", + array("url" => url::site("admin/modules")))); + } } else if (g2_import::is_configured()) { $view->content->form->configure_g2_import->embed_path->add_error("invalid", 1); } @@ -59,12 +83,12 @@ class Admin_g2_import_Controller extends Admin_Controller { $embed_path = "$embed_path/embed.php"; } - if (g2_import::is_valid_embed_path($embed_path)) { + if (($g2_init_error = g2_import::is_valid_embed_path($embed_path)) == "ok") { message::success(t("Gallery 2 path saved")); module::set_var("g2_import", "embed_path", $embed_path); url::redirect("admin/g2_import"); } else { - $form->configure_g2_import->embed_path->add_error("invalid", 1); + $form->configure_g2_import->embed_path->add_error($g2_init_error, 1); } } @@ -75,15 +99,37 @@ class Admin_g2_import_Controller extends Admin_Controller { print $view; } + public function autocomplete() { + $directories = array(); + $path_prefix = Input::instance()->get("q"); + foreach (glob("{$path_prefix}*") as $file) { + if (is_dir($file) && !is_link($file)) { + $directories[] = $file; + + // If we find an embed.php, include it as well + if (file_exists("$file/embed.php")) { + $directories[] = "$file/embed.php"; + } + } + } + + print implode("\n", $directories); + } + private function _get_import_form() { + $embed_path = module::get_var("g2_import", "embed_path", ""); $form = new Forge( "admin/g2_import/save", "", "post", array("id" => "g-admin-configure-g2-import-form")); $group = $form->group("configure_g2_import")->label(t("Configure Gallery 2 Import")); $group->input("embed_path")->label(t("Filesystem path to your Gallery 2 embed.php file")) - ->value(module::get_var("g2_import", "embed_path", "")); + ->value($embed_path); $group->embed_path->error_messages( "invalid", t("The path you entered is not a Gallery 2 installation.")); - $group->submit("")->value(t("Save")); + $group->embed_path->error_messages( + "broken", t("Your Gallery 2 install isn't working properly. Please verify it!")); + $group->embed_path->error_messages( + "missing", t("The path you entered does not exist.")); + $group->submit("")->value($embed_path ? t("Change") : t("Continue")); return $form; } } \ No newline at end of file diff --git a/modules/g2_import/controllers/g2.php b/modules/g2_import/controllers/g2.php index 6e60bed..90984e8 100644 --- a/modules/g2_import/controllers/g2.php +++ b/modules/g2_import/controllers/g2.php @@ -41,7 +41,9 @@ class G2_Controller extends Controller { // (bbcode, embedding) people are using the id style URLs although URL rewriting is enabled. $where = array(array("g2_id", "=", $id)); $view = $input->get("g2_view"); - if ($view) { + if ($view == "core.DownloadItem") { + $where[] = array("resource_type", "IN", array("file", "resize", "thumbnail", "full")); + } else if ($view) { $where[] = array("g2_url", "like", "%g2_view=$view%"); } // else: Assuming that the first search hit is sufficiently good. } else if ($path) { diff --git a/modules/g2_import/helpers/g2_import.php b/modules/g2_import/helpers/g2_import.php index 5fd9297..8a5d2c5 100644 --- a/modules/g2_import/helpers/g2_import.php +++ b/modules/g2_import/helpers/g2_import.php @@ -31,7 +31,7 @@ class g2_import_Core { } static function is_initialized() { - return g2_import::$init; + return g2_import::$init == "ok"; } static function init() { @@ -52,146 +52,163 @@ class g2_import_Core { if (file_exists($mod_path)) { dir::unlink($mod_path); } - return file_exists($embed_path) && g2_import::init_embed($embed_path); + return g2_import::init_embed($embed_path); } /** * Initialize the embedded Gallery 2 instance. Call this before any other Gallery 2 calls. + * + * Return values: + * "ok" - the Gallery 2 install is fine + * "missing" - the embed path does not exist + * "invalid" - the install path is not a valid Gallery 2 code base + * "broken" - the embed path is correct, but the Gallery 2 install is broken */ static function init_embed($embed_path) { if (!is_file($embed_path)) { - return false; + return "missing"; } - // Gallery 2 defines a class called Gallery. So does Gallery 3. They don't get along. So do - // a total hack here and copy over a few critical files (embed.php, main.php, bootstrap.inc - // and Gallery.class) and munge them so that we can rename the Gallery class to be - // G2_Gallery. Is this retarded? Why yes it is. - // - // Store the munged files in a directory that's the md5 hash of the embed path so that - // multiple import sources don't interfere with each other. + try { + // Gallery 2 defines a class called Gallery. So does Gallery 3. They don't get along. So do + // a total hack here and copy over a few critical files (embed.php, main.php, bootstrap.inc + // and Gallery.class) and munge them so that we can rename the Gallery class to be + // G2_Gallery. Is this retarded? Why yes it is. + // + // Store the munged files in a directory that's the md5 hash of the embed path so that + // multiple import sources don't interfere with each other. - $mod_path = VARPATH . "modules/g2_import/" . md5($embed_path); - if (!file_exists($mod_path) || !file_exists("$mod_path/embed.php")) { - @dir::unlink($mod_path); - mkdir($mod_path); + $mod_path = VARPATH . "modules/g2_import/" . md5($embed_path); + if (!file_exists($mod_path) || !file_exists("$mod_path/embed.php")) { + @dir::unlink($mod_path); + mkdir($mod_path); - $config_dir = dirname($embed_path); - if (filesize($embed_path) > 200) { - // Regular install - $base_dir = $config_dir; - } else { - // Multisite install. Line 2 of embed.php will be something like: - // require('/usr/home/bharat/public_html/gallery2/embed.php'); - $lines = file($embed_path); - preg_match("#require\('(.*)/embed.php'\);#", $lines[2], $matches); - $base_dir = $matches[1]; + $config_dir = dirname($embed_path); + if (filesize($embed_path) > 200) { + // Regular install + $base_dir = $config_dir; + } else { + // Multisite install. Line 2 of embed.php will be something like: + // require('/usr/home/bharat/public_html/gallery2/embed.php'); + $lines = file($embed_path); + preg_match("#require\('(.*)/embed.php'\);#", $lines[2], $matches); + $base_dir = $matches[1]; + } + + file_put_contents( + "$mod_path/embed.php", + str_replace( + array( + "require_once(dirname(__FILE__) . '/modules/core/classes/GalleryDataCache.class');", + "require(dirname(__FILE__) . '/modules/core/classes/GalleryEmbed.class');"), + array( + "require_once('$base_dir/modules/core/classes/GalleryDataCache.class');", + "require('$base_dir/modules/core/classes/GalleryEmbed.class');"), + array_merge( + array("\n"), + file("$base_dir/embed.php")))); + + file_put_contents( + "$mod_path/main.php", + str_replace( + array( + "include(dirname(__FILE__) . '/bootstrap.inc');", + "require_once(dirname(__FILE__) . '/init.inc');"), + array( + "include(dirname(__FILE__) . '/bootstrap.inc');", + "require_once('$base_dir/init.inc');"), + array_merge( + array("\n"), + file("$base_dir/main.php")))); + + file_put_contents( + "$mod_path/bootstrap.inc", + str_replace( + array( + "require_once(dirname(__FILE__) . '/modules/core/classes/Gallery.class');", + "require_once(dirname(__FILE__) . '/modules/core/classes/GalleryDataCache.class');", + "define('GALLERY_CONFIG_DIR', dirname(__FILE__));", + "\$gallery =& new Gallery();", + "\$GLOBALS['gallery'] =& new Gallery();", + "\$gallery = new Gallery();"), + array( + "require_once(dirname(__FILE__) . '/Gallery.class');", + "require_once('$base_dir/modules/core/classes/GalleryDataCache.class');", + "define('GALLERY_CONFIG_DIR', '$config_dir');", + "\$gallery =& new G2_Gallery();", + "\$GLOBALS['gallery'] =& new G2_Gallery();", + "\$gallery = new G2_Gallery();"), + array_merge( + array("\n"), + file("$base_dir/bootstrap.inc")))); + + file_put_contents( + "$mod_path/Gallery.class", + str_replace( + array("class Gallery", + "function Gallery"), + array("class G2_Gallery", + "function G2_Gallery"), + array_merge( + array("\n"), + file("$base_dir/modules/core/classes/Gallery.class")))); + } else { + // Ok, this is a good one. If you're running a bytecode accelerator and you move your + // Gallery install, these files sometimes get cached with the wrong path and then fail to + // load properly. + // Documented in https://sourceforge.net/apps/trac/gallery/ticket/1253 + touch("$mod_path/embed.php"); + touch("$mod_path/main.php"); + touch("$mod_path/bootstrap.inc"); + touch("$mod_path/Gallery.class.inc"); + } + + require("$mod_path/embed.php"); + if (!class_exists("GalleryEmbed")) { + return "invalid"; } - file_put_contents( - "$mod_path/embed.php", - str_replace( - array( - "require_once(dirname(__FILE__) . '/modules/core/classes/GalleryDataCache.class');", - "require(dirname(__FILE__) . '/modules/core/classes/GalleryEmbed.class');"), - array( - "require_once('$base_dir/modules/core/classes/GalleryDataCache.class');", - "require('$base_dir/modules/core/classes/GalleryEmbed.class');"), - array_merge(array("\n"), - file("$base_dir/embed.php")))); + $ret = GalleryEmbed::init(); + if ($ret) { + Kohana_Log::add("error", "Gallery 2 call failed with: " . $ret->getAsText()); + return "broken"; + } - file_put_contents( - "$mod_path/main.php", - str_replace( - array( - "include(dirname(__FILE__) . '/bootstrap.inc');", - "require_once(dirname(__FILE__) . '/init.inc');"), - array( - "include(dirname(__FILE__) . '/bootstrap.inc');", - "require_once('$base_dir/init.inc');"), - array_merge(array("\n"), - file("$base_dir/main.php")))); + $admin_group_id = g2(GalleryCoreApi::getPluginParameter("module", "core", "id.adminGroup")); + $admins = g2(GalleryCoreApi::fetchUsersForGroup($admin_group_id, 1)); + $admin_id = current(array_flip($admins)); + $admin = g2(GalleryCoreApi::loadEntitiesById($admin_id)); + $GLOBALS["gallery"]->setActiveUser($admin); - file_put_contents( - "$mod_path/bootstrap.inc", - str_replace( - array("require_once(dirname(__FILE__) . '/modules/core/classes/Gallery.class');", - "require_once(dirname(__FILE__) . '/modules/core/classes/GalleryDataCache.class');", - "define('GALLERY_CONFIG_DIR', dirname(__FILE__));", - "\$gallery =& new Gallery();", - "\$GLOBALS['gallery'] =& new Gallery();", - "\$gallery = new Gallery();"), - array("require_once(dirname(__FILE__) . '/Gallery.class');", - "require_once('$base_dir/modules/core/classes/GalleryDataCache.class');", - "define('GALLERY_CONFIG_DIR', '$config_dir');", - "\$gallery =& new G2_Gallery();", - "\$GLOBALS['gallery'] =& new G2_Gallery();", - "\$gallery = new G2_Gallery();"), - array_merge(array("\n"), - file("$base_dir/bootstrap.inc")))); - - file_put_contents( - "$mod_path/Gallery.class", - str_replace( - array("class Gallery", - "function Gallery"), - array("class G2_Gallery", - "function G2_Gallery"), - array_merge(array("\n"), - file("$base_dir/modules/core/classes/Gallery.class")))); - } else { - // Ok, this is a good one. If you're running a bytecode accelerator and you move your - // Gallery install, these files sometimes get cached with the wrong path and then fail to - // load properly. - // Documented in https://sourceforge.net/apps/trac/gallery/ticket/1253 - touch("$mod_path/embed.php"); - touch("$mod_path/main.php"); - touch("$mod_path/bootstrap.inc"); - touch("$mod_path/Gallery.class.inc"); - } - - require("$mod_path/embed.php"); - if (!class_exists("GalleryEmbed")) { - return false; - } - - $ret = GalleryEmbed::init(); - if ($ret) { - Kohana_Log::add("error", "Gallery 2 call failed with: " . $ret->getAsText()); - return false; - } - - $admin_group_id = g2(GalleryCoreApi::getPluginParameter("module", "core", "id.adminGroup")); - $admins = g2(GalleryCoreApi::fetchUsersForGroup($admin_group_id, 1)); - $admin_id = current(array_flip($admins)); - $admin = g2(GalleryCoreApi::loadEntitiesById($admin_id)); - $GLOBALS["gallery"]->setActiveUser($admin); - - // Make sure we have an embed location so that embedded url generation comes out ok. Without - // this, the Gallery2 ModRewrite code won't try to do url generation. - $g2_embed_location = - g2(GalleryCoreApi::getPluginParameter("module", "rewrite", "modrewrite.embeddedLocation")); - - if (empty($g2_embed_location)) { + // Make sure we have an embed location so that embedded url generation comes out ok. Without + // this, the Gallery2 ModRewrite code won't try to do url generation. $g2_embed_location = - g2(GalleryCoreApi::getPluginParameter("module", "rewrite", "modrewrite.galleryLocation")); - g2(GalleryCoreApi::setPluginParameter( - "module", "rewrite", "modrewrite.embeddedLocation", $g2_embed_location)); - g2($gallery->getStorage()->checkPoint()); + g2(GalleryCoreApi::getPluginParameter("module", "rewrite", "modrewrite.embeddedLocation")); + + if (empty($g2_embed_location)) { + $g2_embed_location = + g2(GalleryCoreApi::getPluginParameter("module", "rewrite", "modrewrite.galleryLocation")); + g2(GalleryCoreApi::setPluginParameter("module", "rewrite", "modrewrite.embeddedLocation", + $g2_embed_location)); + g2($gallery->getStorage()->checkPoint()); + } + + if ($g2_embed_location) { + self::$g2_base_url = $g2_embed_location; + } else { + self::$g2_base_url = $GLOBALS["gallery"]->getUrlGenerator()->generateUrl( + array(), + array("forceSessionId" => false, + "htmlEntities" => false, + "urlEncode" => false, + "useAuthToken" => false)); + } + } catch (ErrorException $e) { + Kohana_Log::add("error", $e->getMessage() . "\n" . $e->getTraceAsString()); + return "broken"; } - if ($g2_embed_location) { - self::$g2_base_url = $g2_embed_location; - } else { - self::$g2_base_url = $GLOBALS["gallery"]->getUrlGenerator()->generateUrl( - array(), - array("forceSessionId" => false, - "htmlEntities" => false, - "urlEncode" => false, - "useAuthToken" => false)); - } - - return true; + return "ok"; } /** @@ -219,7 +236,7 @@ class g2_import_Core { * Return a set of statistics about the number of users, groups, albums, photos, movies and * comments available for import from the Gallery 2 instance. */ - static function stats() { + static function g2_stats() { global $gallery; $root_album_id = g2(GalleryCoreApi::getDefaultAlbumId()); $stats["users"] = g2(GalleryCoreApi::fetchUserCount()); @@ -247,6 +264,25 @@ class g2_import_Core { return $stats; } + /** + * Return a set of statistics about the number of users, groups, albums, photos, movies and + * comments already imported into the Gallery 3 instance. + */ + static function g3_stats() { + $g3_stats = array( + "album" => 0, "comment" => 0, "item" => 0, "user" => 0, "group" => 0, "tag" => 0); + foreach (db::build() + ->select("resource_type") + ->select(array("C" => 'COUNT("*")')) + ->from("g2_maps") + ->where("resource_type", "IN", array("album", "comment", "item", "user", "group")) + ->group_by("resource_type") + ->execute() as $row) { + $g3_stats[$row->resource_type] = $row->C; + } + return $g3_stats; + } + /** * Import a single group. */ @@ -429,49 +465,8 @@ class g2_import_Core { $album = ORM::factory("item"); $album->type = "album"; $album->parent_id = self::map($g2_album->getParentId()); - $album->name = $g2_album->getPathComponent(); - $album->title = self::_decode_html_special_chars($g2_album->getTitle()); - $album->title or $album->title = $album->name; - $album->description = self::_decode_html_special_chars(self::extract_description($g2_album)); - $album->owner_id = self::map($g2_album->getOwnerId()); - try { - $album->view_count = (int) g2(GalleryCoreApi::fetchItemViewCount($g2_album_id)); - } catch (Exception $e) { - // @todo log - $album->view_count = 0; - } - $album->created = $g2_album->getCreationTimestamp(); - $order_map = array( - "originationTimestamp" => "captured", - "creationTimestamp" => "created", - "description" => "description", - "modificationTimestamp" => "updated", - "orderWeight" => "weight", - "pathComponent" => "name", - "summary" => "description", - "title" => "title", - "viewCount" => "view_count"); - $direction_map = array( - 1 => "ASC", - ORDER_ASCENDING => "ASC", - ORDER_DESCENDING => "DESC"); - // Only consider G2's first sort order - $g2_order = explode("|", $g2_album->getOrderBy() . ""); - $g2_order = $g2_order[0]; - if (empty($g2_order)) { - $g2_order = g2(GalleryCoreApi::getPluginParameter('module', 'core', 'default.orderBy')); - } - $g2_order_direction = explode("|", $g2_album->getOrderDirection() . ""); - $g2_order_direction = $g2_order_direction[0]; - if (empty($g2_order_direction)) { - $g2_order_direction = - g2(GalleryCoreApi::getPluginParameter('module', 'core', 'default.orderDirection')); - } - if (array_key_exists($g2_order, $order_map)) { - $album->sort_column = $order_map[$g2_order]; - $album->sort_order = $direction_map[$g2_order_direction]; - } + g2_import::set_album_values($album, $g2_album); try { $album->save(); @@ -493,18 +488,67 @@ class g2_import_Core { self::_import_permissions($g2_album, $album); } + /** + * Transfer over all the values from a G2 album to a G3 album. + */ + static function set_album_values($album, $g2_album) { + $album->name = $g2_album->getPathComponent(); + $album->title = self::_decode_html_special_chars($g2_album->getTitle()); + $album->title or $album->title = $album->name; + $album->description = self::_decode_html_special_chars(self::extract_description($g2_album)); + $album->owner_id = self::map($g2_album->getOwnerId()); + try { + $album->view_count = (int) g2(GalleryCoreApi::fetchItemViewCount($g2_album_id)); + } catch (Exception $e) { + // @todo log + $album->view_count = 0; + } + $album->created = $g2_album->getCreationTimestamp(); + + $order_map = array( + "originationTimestamp" => "captured", + "creationTimestamp" => "created", + "description" => "description", + "modificationTimestamp" => "updated", + "orderWeight" => "weight", + "pathComponent" => "name", + "summary" => "description", + "title" => "title", + "viewCount" => "view_count"); + $direction_map = array( + 1 => "ASC", + ORDER_ASCENDING => "ASC", + ORDER_DESCENDING => "DESC"); + // G2 sorts can either be or |. Right now we can't + // map presorts so ignore them. + $g2_order = explode("|", $g2_album->getOrderBy() . ""); + $g2_order = end($g2_order); + if (empty($g2_order)) { + $g2_order = g2(GalleryCoreApi::getPluginParameter('module', 'core', 'default.orderBy')); + } + $g2_order_direction = explode("|", $g2_album->getOrderDirection() . ""); + $g2_order_direction = $g2_order_direction[0]; + if (empty($g2_order_direction)) { + $g2_order_direction = + g2(GalleryCoreApi::getPluginParameter('module', 'core', 'default.orderDirection')); + } + if (array_key_exists($g2_order, $order_map)) { + $album->sort_column = $order_map[$g2_order]; + $album->sort_order = $direction_map[$g2_order_direction]; + } + } + /** * Set the highlight properly for a single album */ static function set_album_highlight(&$queue) { // Dequeue the current album and enqueue its children list($g2_album_id, $children) = each($queue); - if (empty($children)) { - return; - } unset($queue[$g2_album_id]); - foreach ($children as $key => $value) { - $queue[$key] = $value; + if (!empty($children)) { + foreach ($children as $key => $value) { + $queue[$key] = $value; + } } $messages = array(); @@ -516,7 +560,7 @@ class g2_import_Core { $table = g2(GalleryCoreApi::fetchThumbnailsByItemIds(array($g2_album_id))); if (isset($table[$g2_album_id])) { // Backtrack the source id to an item - $g2_source = $table[$g2_album_id]; + $orig_g2_source = $g2_source = $table[$g2_album_id]; while (GalleryUtilities::isA($g2_source, "GalleryDerivative")) { $g2_source = g2(GalleryCoreApi::loadEntitiesById($g2_source->getDerivativeSourceId())); } @@ -540,6 +584,11 @@ class g2_import_Core { array("name" => $g3_album->name)), $e); } + + self::set_map( + $orig_g2_source->getId(), $g3_album->id, + "thumbnail", + self::g2_url(array("view" => "core.DownloadItem", "itemId" => $orig_g2_source->getId()))); } } } @@ -610,7 +659,7 @@ class g2_import_Core { if ($g2_preferred && $g2_preferred instanceof GalleryDerivative) { if (preg_match("/rotate\|(-?\d+)/", $g2_preferred->getDerivativeOperations(), $matches)) { $tmpfile = tempnam(TMPPATH, "rotate"); - gallery_graphics::rotate($item->file_path(), $tmpfile, array("degrees" => $matches[1])); + gallery_graphics::rotate($item->file_path(), $tmpfile, array("degrees" => $matches[1]), $item); $item->set_data_file($tmpfile); $item->save(); unlink($tmpfile); @@ -859,9 +908,13 @@ class g2_import_Core { array("id" => $g2_comment_id, "exception" => (string)$e)); } - if (self::map($g2_comment->getId())) { - // Already imported - return; + if ($id = self::map($g2_comment->getId())) { + if (ORM::factory("comment", $id)->loaded()) { + // Already imported and still exists + return; + } + // This comment was already imported, but now it no longer exists. Import it again, per + // ticket #1736. } $item_id = self::map($g2_comment->getParentId()); @@ -899,10 +952,11 @@ class g2_import_Core { self::set_map($g2_comment->getId(), $comment->id, "comment"); // Backdate the creation date. We can't do this at creation time because - // Comment_Model::save() will override it. + // Comment_Model::save() will override it. Leave the updated date alone + // so that if the comments get marked as spam, they don't immediately get + // flushed (see ticket #1736) db::update("comments") ->set("created", $g2_comment->getDate()) - ->set("updated", $g2_comment->getDate()) ->where("id", "=", $comment->id) ->execute(); } @@ -1243,6 +1297,7 @@ class g2_import_Core { * Associate a Gallery 2 id with a Gallery 3 item id. */ static function set_map($g2_id, $g3_id, $resource_type, $g2_url=null) { + self::clear_map($g2_id, $resource_type); $g2_map = ORM::factory("g2_map"); $g2_map->g3_id = $g3_id; $g2_map->g2_id = $g2_id; @@ -1257,6 +1312,17 @@ class g2_import_Core { self::$map[$g2_id] = $g3_id; } + /** + * Remove all map entries associated with the given Gallery 2 id. + */ + static function clear_map($g2_id, $resource_type) { + db::build() + ->delete("g2_maps") + ->where("g2_id", "=", $g2_id) + ->where("resource_type", "=", $resource_type) + ->execute(); + } + static function log($msg) { message::warning($msg); Kohana_Log::add("alert", $msg); diff --git a/modules/g2_import/helpers/g2_import_event.php b/modules/g2_import/helpers/g2_import_event.php index 0e078d0..0afa62d 100644 --- a/modules/g2_import/helpers/g2_import_event.php +++ b/modules/g2_import/helpers/g2_import_event.php @@ -34,7 +34,7 @@ class g2_import_event_Core { ->get("settings_menu") ->append(Menu::factory("link") ->id("g2_import") - ->label(t("Gallery 2 Import")) + ->label(t("Gallery 2 import")) ->url(url::site("admin/g2_import"))); } } diff --git a/modules/g2_import/helpers/g2_import_task.php b/modules/g2_import/helpers/g2_import_task.php index 6bda8f1..31615a5 100644 --- a/modules/g2_import/helpers/g2_import_task.php +++ b/modules/g2_import/helpers/g2_import_task.php @@ -56,7 +56,7 @@ class g2_import_task_Core { $mode = $task->get("mode"); $queue = $task->get("queue"); if (!isset($mode)) { - $stats = g2_import::stats(); + $stats = g2_import::g2_stats(); $stats["items"] = $stats["photos"] + $stats["movies"]; unset($stats["photos"]); unset($stats["movies"]); @@ -127,6 +127,12 @@ class g2_import_task_Core { $g2_root_id = g2(GalleryCoreApi::getDefaultAlbumId()); $tree = g2(GalleryCoreApi::fetchAlbumTree()); $task->set("queue", $queue = array($g2_root_id => $tree)); + + // Update the root album to reflect the Gallery2 root album. + $root_album = item::root(); + g2_import::set_album_values( + $root_album, g2(GalleryCoreApi::loadEntitiesById($g2_root_id))); + $root_album->save(); } $log_message = g2_import::import_album($queue); if ($log_message) { diff --git a/modules/g2_import/module.info b/modules/g2_import/module.info index 977af25..30fb46d 100644 --- a/modules/g2_import/module.info +++ b/modules/g2_import/module.info @@ -1,3 +1,7 @@ name = "Gallery2 Import" description = "Import your Gallery 2 content into Gallery 3" version = 2 +author_name = "Gallery Team" +author_url = "http://codex.gallery2.org/Gallery:Team" +info_url = "http://codex.gallery2.org/Gallery3:Modules:g2_import" +discuss_url = "http://gallery.menalto.com/forum_module_g2_import" diff --git a/modules/g2_import/views/admin_g2_import.html.php b/modules/g2_import/views/admin_g2_import.html.php index cb13363..9c4eb84 100644 --- a/modules/g2_import/views/admin_g2_import.html.php +++ b/modules/g2_import/views/admin_g2_import.html.php @@ -1,24 +1,64 @@ +css("jquery.autocomplete.css") ?> +script("jquery.autocomplete.js") ?> + + diff --git a/modules/gallery/config/locale.php b/modules/gallery/config/locale.php index 0509e45..bce7fb4 100644 --- a/modules/gallery/config/locale.php +++ b/modules/gallery/config/locale.php @@ -29,13 +29,14 @@ $config['language'] = array('en_US', 'English_United States'); /** - * Locale timezone. Defaults to use the server timezone. + * Locale timezone. Set in 'Advanced' settings, falling back to the server's zone. * @see http://php.net/timezones */ -$config['timezone'] = ini_get('date.timezone'); -if (empty($config['timezone'])) { - // This is a required field. Pick something as a default. - $config['timezone'] = "America/Los_Angeles"; +if (file_exists(VARPATH . "database.php")) { + $config['timezone'] = module::get_var("gallery", "timezone", date_default_timezone_get()); +} else { + // Gallery3 is not installed yet -- don't make module::get_var() calls. + $config['timezone'] = date_default_timezone_get(); } // i18n settings diff --git a/modules/gallery/controllers/admin_modules.php b/modules/gallery/controllers/admin_modules.php index 787785e..b712d14 100644 --- a/modules/gallery/controllers/admin_modules.php +++ b/modules/gallery/controllers/admin_modules.php @@ -19,6 +19,9 @@ */ class Admin_Modules_Controller extends Admin_Controller { public function index() { + // If modules need upgrading, this will get recreated in module::available() + site_status::clear("upgrade_now"); + $view = new Admin_View("admin.html"); $view->page_title = t("Modules"); $view->content = new View("admin_modules.html"); @@ -103,9 +106,6 @@ class Admin_Modules_Controller extends Admin_Controller { module::event("module_change", $changes); - // If modules need upgrading, this will get recreated - site_status::clear("upgrade_now"); - // @todo this type of collation is questionable from an i18n perspective if ($activated_names) { message::success(t("Activated: %names", array("names" => join(", ", $activated_names)))); diff --git a/modules/gallery/controllers/admin_theme_options.php b/modules/gallery/controllers/admin_theme_options.php index 055e063..d9323ea 100644 --- a/modules/gallery/controllers/admin_theme_options.php +++ b/modules/gallery/controllers/admin_theme_options.php @@ -59,6 +59,7 @@ class Admin_Theme_Options_Controller extends Admin_Controller { module::set_var("gallery", "footer_text", $form->edit_theme->footer_text->value); module::set_var("gallery", "show_credits", $form->edit_theme->show_credits->value); module::set_var("gallery", "favicon_url", $form->edit_theme->favicon_url->value); + module::set_var("gallery", "apple_touch_icon_url", $form->edit_theme->apple_touch_icon_url->value); module::event("theme_edit_form_completed", $form); @@ -77,8 +78,10 @@ class Admin_Theme_Options_Controller extends Admin_Controller { $group = $form->group("edit_theme")->label(t("Theme layout")); $group->input("page_size")->label(t("Items per page"))->id("g-page-size") ->rules("required|valid_digit") + ->callback(array($this, "_valididate_page_size")) ->error_messages("required", t("You must enter a number")) ->error_messages("valid_digit", t("You must enter a number")) + ->error_messages("valid_min_value", t("The value must be greater than zero")) ->value(module::get_var("gallery", "page_size")); $group->input("thumb_size")->label(t("Thumbnail size (in pixels)"))->id("g-thumb-size") ->rules("required|valid_digit") @@ -93,6 +96,9 @@ class Admin_Theme_Options_Controller extends Admin_Controller { $group->input("favicon_url")->label(t("URL (or relative path) to your favicon.ico")) ->id("g-favicon") ->value(module::get_var("gallery", "favicon_url")); + $group->input("apple_touch_icon_url")->label(t("URL (or relative path) to your Apple Touch icon")) + ->id("g-apple-touch") + ->value(module::get_var("gallery", "apple_touch_icon_url")); $group->textarea("header_text")->label(t("Header text"))->id("g-header-text") ->value(module::get_var("gallery", "header_text")); $group->textarea("footer_text")->label(t("Footer text"))->id("g-footer-text") @@ -102,9 +108,15 @@ class Admin_Theme_Options_Controller extends Admin_Controller { module::event("theme_edit_form", $form); - $group = $form->group("buttons"); $group->submit("")->value(t("Save")); return $form; } + + function _valididate_page_size($input) { + if ($input->value < 1) { + $input->add_error("valid_min_value", true); + } + + } } diff --git a/modules/gallery/controllers/admin_themes.php b/modules/gallery/controllers/admin_themes.php index cd8a553..9cdc3db 100644 --- a/modules/gallery/controllers/admin_themes.php +++ b/modules/gallery/controllers/admin_themes.php @@ -25,6 +25,9 @@ class Admin_Themes_Controller extends Admin_Controller { $view->content->admin = module::get_var("gallery", "active_admin_theme"); $view->content->site = module::get_var("gallery", "active_site_theme"); $view->content->themes = $this->_get_themes(); + + site_status::clear("missing_site_theme"); + site_status::clear("missing_admin_theme"); print $view; } diff --git a/modules/gallery/controllers/admin_upgrade_checker.php b/modules/gallery/controllers/admin_upgrade_checker.php index a5cfcfc..29d52a3 100644 --- a/modules/gallery/controllers/admin_upgrade_checker.php +++ b/modules/gallery/controllers/admin_upgrade_checker.php @@ -25,7 +25,7 @@ class Admin_Upgrade_Checker_Controller extends Admin_Controller { if ($message) { $message .= t( " (remind me later)", - array("url" => url::site("admin/upgrade_checker/remind_me_later?csrf=__CSRF__"))); + array("hide-url" => url::site("admin/upgrade_checker/remind_me_later?csrf=__CSRF__"))); site_status::info($message, "upgrade_checker"); } else { site_status::clear("upgrade_checker"); diff --git a/modules/gallery/controllers/login.php b/modules/gallery/controllers/login.php index b203b7d..fdf5d7b 100644 --- a/modules/gallery/controllers/login.php +++ b/modules/gallery/controllers/login.php @@ -42,8 +42,9 @@ class Login_Controller extends Controller { public function html() { $view = new Theme_View("page.html", "other", "login"); - $view->page_title = t("Login"); - $view->content = auth::get_login_form("login/auth_html"); + $view->page_title = t("Log in to Gallery"); + $view->content = new View("login_ajax.html"); + $view->content->form = auth::get_login_form("login/auth_html"); print $view; } diff --git a/modules/gallery/controllers/quick.php b/modules/gallery/controllers/quick.php index 17abc39..b6576ec 100644 --- a/modules/gallery/controllers/quick.php +++ b/modules/gallery/controllers/quick.php @@ -36,9 +36,9 @@ class Quick_Controller extends Controller { } if ($degrees) { - $tmpfile = tempnam(TMPPATH, "rotate") . "." . - pathinfo($item->file_path(), PATHINFO_EXTENSION); - gallery_graphics::rotate($item->file_path(), $tmpfile, array("degrees" => $degrees)); + $tmpfile = system::temp_filename("rotate", + pathinfo($item->file_path(), PATHINFO_EXTENSION)); + gallery_graphics::rotate($item->file_path(), $tmpfile, array("degrees" => $degrees), $item); $item->set_data_file($tmpfile); $item->save(); unlink($tmpfile); diff --git a/modules/gallery/css/gallery.css b/modules/gallery/css/gallery.css index 275a3d7..ecf8956 100644 --- a/modules/gallery/css/gallery.css +++ b/modules/gallery/css/gallery.css @@ -29,12 +29,12 @@ #g-add-photos-canvas object, #g-add-photos-button { - left: 137px; - margin: .5em 0; + left: 90px; + margin: .5em 0; padding: .4em 1em; position: absolute; top: 0; - width: 175px; + width: 300px; } #g-add-photos-canvas object { diff --git a/modules/gallery/helpers/MY_num.php b/modules/gallery/helpers/MY_num.php index 9787044..842a2ee 100644 --- a/modules/gallery/helpers/MY_num.php +++ b/modules/gallery/helpers/MY_num.php @@ -37,4 +37,18 @@ class num extends num_Core { return $val; } + + /** + * Convert a size value as accepted by PHP's shorthand to bytes. + * ref: http://us2.php.net/manual/en/function.ini-get.php + * ref: http://us2.php.net/manual/en/faq.using.php#faq.using.shorthandbytes + */ + static function convert_to_human_readable($num) { + foreach (array("G" => 1e9, "M" => 1e6, "K" => 1e3) as $k => $v) { + if ($num > $v) { + $num = round($num / $v) . $k; + } + } + return $num; + } } diff --git a/modules/gallery/libraries/MY_Pagination.php b/modules/gallery/helpers/encoding.php similarity index 64% rename from modules/gallery/libraries/MY_Pagination.php rename to modules/gallery/helpers/encoding.php index e697c0b..c592863 100644 --- a/modules/gallery/libraries/MY_Pagination.php +++ b/modules/gallery/helpers/encoding.php @@ -17,19 +17,16 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ -class Pagination extends Pagination_Core { - public function render($style=NULL) { - // Hide single page pagination - if ($this->auto_hide === TRUE AND $this->total_pages <= 1) { - return ""; +class encoding_Core { + static function convert_to_utf8($value) { + if (function_exists("mb_detect_encoding") && + function_exists("mb_convert_encoding") && + mb_detect_encoding($value, "ISO-8859-1, UTF-8") != "UTF-8") { + $value = mb_convert_encoding($value, "UTF-8", mb_detect_encoding($value)); + } else if (function_exists("mb_detect_encoding") && + mb_detect_encoding($value, "ISO-8859-1, UTF-8") != "UTF-8") { + $value = utf8_encode($value); } - - if ($style === NULL) { - // Use default style - $style = $this->style; - } - - // Return rendered pagination view - return View::factory("pager.html", get_object_vars($this))->render(); + return $value; } -} +} \ No newline at end of file diff --git a/modules/gallery/helpers/gallery.php b/modules/gallery/helpers/gallery.php index 469a28b..62dd125 100644 --- a/modules/gallery/helpers/gallery.php +++ b/modules/gallery/helpers/gallery.php @@ -18,8 +18,8 @@ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ class gallery_Core { - const VERSION = "3.0.1"; - const CODE_NAME = "Menlo Park"; + const VERSION = "3.0.2"; + const CODE_NAME = "Coollanta"; const RELEASE_CHANNEL = "release"; const RELEASE_BRANCH = "3.0.x"; @@ -193,19 +193,25 @@ class gallery_Core { */ static function version_string() { if (gallery::RELEASE_CHANNEL == "git") { + $build_number = gallery::build_number(); return sprintf( - "%s (branch %s build %s)", gallery::VERSION, gallery::RELEASE_BRANCH, - gallery::build_number()); + "%s (branch %s, %s)", gallery::VERSION, gallery::RELEASE_BRANCH, + $build_number ? " build $build_number" : "unknown build number"); } else { return sprintf("%s (%s)", gallery::VERSION, gallery::CODE_NAME); } } /** - * Return the contents of the .build_number file, which should be a single integer. + * Return the contents of the .build_number file, which should be a single integer + * or return null if the .build_number file is missing. */ static function build_number() { - $result = parse_ini_file(DOCROOT . ".build_number"); - return $result["build_number"]; + $build_file = DOCROOT . ".build_number"; + if (file_exists($build_file)) { + $result = parse_ini_file(DOCROOT . ".build_number"); + return $result["build_number"]; + } + return null; } } \ No newline at end of file diff --git a/modules/gallery/helpers/gallery_block.php b/modules/gallery/helpers/gallery_block.php index b9ccf25..49d1624 100644 --- a/modules/gallery/helpers/gallery_block.php +++ b/modules/gallery/helpers/gallery_block.php @@ -82,9 +82,13 @@ class gallery_block_Core { break; case "block_adder": - $block->css_id = "g-block-adder"; - $block->title = t("Dashboard content"); - $block->content = gallery_block::get_add_block_form(); + if ($form = gallery_block::get_add_block_form()) { + $block->css_id = "g-block-adder"; + $block->title = t("Dashboard content"); + $block->content = $form; + } else { + $block = ""; + } break; case "language": @@ -112,16 +116,28 @@ class gallery_block_Core { $block->content->version_info = upgrade_checker::version_info(); $block->content->auto_check_enabled = upgrade_checker::auto_check_enabled(); $block->content->new_version = upgrade_checker::get_upgrade_message(); + $block->content->build_number = gallery::build_number(); } return $block; } static function get_add_block_form() { + $available_blocks = block_manager::get_available_admin_blocks(); + + $active = array(); + foreach (array_merge(block_manager::get_active("dashboard_sidebar"), + block_manager::get_active("dashboard_center")) as $b) { + unset($available_blocks[implode(":", $b)]); + } + + if (!$available_blocks) { + return; + } + $form = new Forge("admin/dashboard/add_block", "", "post", array("id" => "g-add-dashboard-block-form")); $group = $form->group("add_block")->label(t("Add Block")); - $group->dropdown("id")->label(t("Available Blocks")) - ->options(block_manager::get_available_admin_blocks()); + $group->dropdown("id")->label(t("Available blocks"))->options($available_blocks); $group->submit("center")->value(t("Add to center")); $group->submit("sidebar")->value(t("Add to sidebar")); return $form; diff --git a/modules/gallery/helpers/gallery_event.php b/modules/gallery/helpers/gallery_event.php index 0781718..fbdb4ad 100644 --- a/modules/gallery/helpers/gallery_event.php +++ b/modules/gallery/helpers/gallery_event.php @@ -539,9 +539,9 @@ class gallery_event_Core { $v = new View("user_profile_info.html"); $fields = array("name" => t("Name"), "locale" => t("Language Preference"), - "email" => t("Email"), "full_name" => t("Full name"), "url" => "Web site"); + "email" => t("Email"), "full_name" => t("Full name"), "url" => t("Web site")); if (!$data->user->guest) { - $fields = array("name" => t("Name"), "full_name" => t("Full name"), "url" => "Web site"); + $fields = array("name" => t("Name"), "full_name" => t("Full name"), "url" => t("Web site")); } $v->user_profile_data = array(); foreach ($fields as $field => $label) { @@ -549,6 +549,8 @@ class gallery_event_Core { $value = $data->user->$field; if ($field == "locale") { $value = locales::display_name($value); + } elseif ($field == "url") { + $value = html::mark_clean(html::anchor($data->user->$field)); } $v->user_profile_data[(string) $label] = $value; } diff --git a/modules/gallery/helpers/gallery_graphics.php b/modules/gallery/helpers/gallery_graphics.php index e63b933..716bad1 100644 --- a/modules/gallery/helpers/gallery_graphics.php +++ b/modules/gallery/helpers/gallery_graphics.php @@ -24,18 +24,19 @@ class gallery_graphics_Core { * @param string $input_file * @param string $output_file * @param array $options + * @param Item_Model $item (optional) */ - static function rotate($input_file, $output_file, $options) { + static function rotate($input_file, $output_file, $options, $item=null) { graphics::init_toolkit(); - module::event("graphics_rotate", $input_file, $output_file, $options); + module::event("graphics_rotate", $input_file, $output_file, $options, $item); Image::factory($input_file) ->quality(module::get_var("gallery", "image_quality")) ->rotate($options["degrees"]) ->save($output_file); - module::event("graphics_rotate_completed", $input_file, $output_file, $options); + module::event("graphics_rotate_completed", $input_file, $output_file, $options, $item); } /** @@ -45,11 +46,12 @@ class gallery_graphics_Core { * @param string $input_file * @param string $output_file * @param array $options + * @param Item_Model $item (optional) */ - static function resize($input_file, $output_file, $options) { + static function resize($input_file, $output_file, $options, $item=null) { graphics::init_toolkit(); - module::event("graphics_resize", $input_file, $output_file, $options); + module::event("graphics_resize", $input_file, $output_file, $options, $item); if (@filesize($input_file) == 0) { throw new Exception("@todo EMPTY_INPUT_FILE"); @@ -69,7 +71,7 @@ class gallery_graphics_Core { $image->save($output_file); } - module::event("graphics_resize_completed", $input_file, $output_file, $options); + module::event("graphics_resize_completed", $input_file, $output_file, $options, $item); } /** @@ -86,12 +88,13 @@ class gallery_graphics_Core { * @param string $input_file * @param string $output_file * @param array $options + * @param Item_Model $item (optional) */ - static function composite($input_file, $output_file, $options) { + static function composite($input_file, $output_file, $options, $item=null) { try { graphics::init_toolkit(); - module::event("graphics_composite", $input_file, $output_file, $options); + module::event("graphics_composite", $input_file, $output_file, $options, $item); list ($width, $height) = getimagesize($input_file); list ($w_width, $w_height) = getimagesize($options["file"]); @@ -121,7 +124,7 @@ class gallery_graphics_Core { ->quality(module::get_var("gallery", "image_quality")) ->save($output_file); - module::event("graphics_composite_completed", $input_file, $output_file, $options); + module::event("graphics_composite_completed", $input_file, $output_file, $options, $item); } catch (ErrorException $e) { Kohana_Log::add("error", $e->get_message()); } diff --git a/modules/gallery/helpers/gallery_installer.php b/modules/gallery/helpers/gallery_installer.php index 01c59ea..7a9af40 100644 --- a/modules/gallery/helpers/gallery_installer.php +++ b/modules/gallery/helpers/gallery_installer.php @@ -304,14 +304,16 @@ class gallery_installer { module::set_var("gallery", "maintenance_mode", 0); module::set_var("gallery", "visible_title_length", 15); module::set_var("gallery", "favicon_url", "lib/images/favicon.ico"); + module::set_var("gallery", "apple_touch_icon_url", "lib/images/apple-touch-icon.png"); module::set_var("gallery", "email_from", ""); module::set_var("gallery", "email_reply_to", ""); module::set_var("gallery", "email_line_length", 70); module::set_var("gallery", "email_header_separator", serialize("\n")); module::set_var("gallery", "show_user_profiles_to", "registered_users"); module::set_var("gallery", "extra_binary_paths", "/usr/local/bin:/opt/local/bin:/opt/bin"); + module::set_var("gallery", "timezone", null); - module::set_version("gallery", 46); + module::set_version("gallery", 49); } static function upgrade($version) { @@ -677,6 +679,19 @@ class gallery_installer { module::set_var("gallery", "upgrade_checker_auto_enabled", true); module::set_version("gallery", $version = 46); } + + if ($version == 46) { + module::set_var("gallery", "apple_touch_icon_url", "lib/images/apple-touch-icon.png"); + module::set_version("gallery", $version = 47); + } + + if ($version == 47 || $version == 48) { + // Add configuration variable to set timezone. Defaults to the currently + // used timezone (from PHP configuration). Note that in v48 we werew + // setting this value incorrectly, so we're going to stomp this value for v49. + module::set_var("gallery", "timezone", null); + module::set_version("gallery", $version = 49); + } } static function uninstall() { diff --git a/modules/gallery/helpers/gallery_theme.php b/modules/gallery/helpers/gallery_theme.php index c4a8239..e07839d 100644 --- a/modules/gallery/helpers/gallery_theme.php +++ b/modules/gallery/helpers/gallery_theme.php @@ -64,7 +64,7 @@ class gallery_theme_Core { if ($session->get("l10n_mode", false)) { $buf .= $theme->css("l10n_client.css"); $buf .= $theme->script("jquery.cookie.js"); - $buf .=$theme->script("l10n_client.js"); + $buf .= $theme->script("l10n_client.js"); } return $buf; } diff --git a/modules/gallery/helpers/graphics.php b/modules/gallery/helpers/graphics.php index 72c563b..acb11bf 100644 --- a/modules/gallery/helpers/graphics.php +++ b/modules/gallery/helpers/graphics.php @@ -169,7 +169,7 @@ class graphics_Core { } foreach (self::_get_rules($target) as $rule) { - $args = array($working_file, $output_file, unserialize($rule->args)); + $args = array($working_file, $output_file, unserialize($rule->args), $item); call_user_func_array($rule->operation, $args); $working_file = $output_file; } @@ -316,10 +316,10 @@ class graphics_Core { // ImageMagick & GraphicsMagick $magick_kits = array( "imagemagick" => array( - "name" => "ImageMagick", "binary" => "convert", "version" => "convert -v", + "name" => "ImageMagick", "binary" => "convert", "version_arg" => "-v", "version_regex" => "/Version: \S+ (\S+)/"), "graphicsmagick" => array( - "name" => "GraphicsMagick", "binary" => "gm", "version" => "gm version", + "name" => "GraphicsMagick", "binary" => "gm", "version_arg" => "version", "version_regex" => "/\S+ (\S+)/")); // Loop through the kits foreach ($magick_kits as $index => $settings) { @@ -328,7 +328,8 @@ class graphics_Core { $toolkits->$index->name = $settings["name"]; if ($path) { if (@is_file($path) && - preg_match($settings["version_regex"], shell_exec($settings["version"]), $matches)) { + preg_match( + $settings["version_regex"], shell_exec($path . " " . $settings["version_arg"]), $matches)) { $version = $matches[1]; $toolkits->$index->installed = true; @@ -423,4 +424,23 @@ class graphics_Core { return true; } + + /** + * Return the max file size that this graphics toolkit can handle. + */ + static function max_filesize() { + if (module::get_var("gallery", "graphics_toolkit") == "gd") { + $memory_limit = trim(ini_get("memory_limit")); + $memory_limit_bytes = num::convert_to_bytes($memory_limit); + + // GD expands images in memory and uses 4 bytes of RAM for every byte + // in the file. + $max_filesize = $memory_limit_bytes / 4; + $max_filesize_human_readable = num::convert_to_human_readable($max_filesize); + return array($max_filesize, $max_filesize_human_readable); + } + + // Some arbitrarily large size + return array(1000000000, "1G"); + } } diff --git a/modules/gallery/helpers/item.php b/modules/gallery/helpers/item.php index 1a5c631..7e77954 100644 --- a/modules/gallery/helpers/item.php +++ b/modules/gallery/helpers/item.php @@ -152,8 +152,18 @@ class item_Core { * @param string $filename */ static function convert_filename_to_slug($filename) { - $result = pathinfo($filename, PATHINFO_FILENAME); + $result = str_replace("&", "-and-", $filename); + $result = str_replace(" ", "-", $result); + + // It's not easy to extend the text helper since it's called by the Input class which is + // referenced in hooks/init_gallery, so it's + if (class_exists("transliterate")) { + $result = transliterate::utf8_to_ascii($result); + } else { + $result = text::transliterate_to_ascii($result); + } $result = preg_replace("/[^A-Za-z0-9-_]+/", "-", $result); + $result = preg_replace("/-+/", "-", $result); return trim($result, "-"); } diff --git a/modules/gallery/helpers/module.php b/modules/gallery/helpers/module.php index 37f7f68..4b7d4a5 100644 --- a/modules/gallery/helpers/module.php +++ b/modules/gallery/helpers/module.php @@ -101,7 +101,7 @@ class module_Core { $m->locked = false; if ($m->active && $m->version != $m->code_version) { - site_status::warning(t("Some of your modules are out of date. Upgrade now!", array("upgrader_url" => url::site("upgrader"))), "upgrade_now"); + site_status::warning(t("Some of your modules are out of date. Upgrade now!", array("upgrader_url" => url::abs_site("upgrader"))), "upgrade_now"); } } diff --git a/modules/gallery/helpers/random.php b/modules/gallery/helpers/random.php index 6016df7..06542e8 100644 --- a/modules/gallery/helpers/random.php +++ b/modules/gallery/helpers/random.php @@ -19,21 +19,13 @@ */ class random_Core { /** - * Return a random 32 bit hash value. + * Return a random 32 byte hash value. * @param string extra entropy data */ static function hash($entropy="") { return md5($entropy . uniqid(mt_rand(), true)); } - /** - * Return a random hexadecimal string of the given length. - * @param int the desired length of the string - */ - static function string($length) { - return substr(random::hash(), 0, $length); - } - /** * Return a random floating point number between 0 and 1 */ diff --git a/modules/gallery/helpers/system.php b/modules/gallery/helpers/system.php index c39c722..4110b4e 100644 --- a/modules/gallery/helpers/system.php +++ b/modules/gallery/helpers/system.php @@ -40,4 +40,25 @@ class system_Core { } return null; } + + /** + * Create a file with a unique file name. + * This helper is similar to the built-in tempnam. + * It allows the caller to specify a prefix and an extension. + * It always places the file in TMPPATH. + */ + static function temp_filename($prefix="", $extension="") { + do { + $basename = tempnam(TMPPATH, $prefix); + if (!$basename) { + return false; + } + $filename = "$basename.$extension"; + $success = !file_exists($filename) && @rename($basename, $filename); + if (!$success) { + @unlink($basename); + } + } while (!$success); + return $filename; + } } \ No newline at end of file diff --git a/modules/gallery/helpers/theme.php b/modules/gallery/helpers/theme.php index f285834..37707f2 100644 --- a/modules/gallery/helpers/theme.php +++ b/modules/gallery/helpers/theme.php @@ -41,11 +41,34 @@ class theme_Core { $config = Kohana_Config::instance(); $modules = $config->get("core.modules"); + + // Normally Router::find_uri() strips off the url suffix for us, but we're working off of the + // PATH_INFO here so we need to strip it off manually + if ($suffix = Kohana::config("core.url_suffix")) { + $path = preg_replace("#" . preg_quote($suffix) . "$#u", "", $path); + } + self::$is_admin = $path == "/admin" || !strncmp($path, "/admin/", 7); self::$site_theme_name = module::get_var("gallery", "active_site_theme"); + + // If the site theme doesn't exist, fall back to wind. + if (!file_exists(THEMEPATH . self::$site_theme_name . "/theme.info")) { + site_status::error(t("Theme '%name' is missing. Falling back to the Wind theme.", + array("name" => self::$site_theme_name)), "missing_site_theme"); + module::set_var("gallery", "active_site_theme", self::$site_theme_name = "wind"); + } + if (self::$is_admin) { // Load the admin theme self::$admin_theme_name = module::get_var("gallery", "active_admin_theme"); + + // If the admin theme doesn't exist, fall back to admin_wind. + if (!file_exists(THEMEPATH . self::$admin_theme_name . "/theme.info")) { + site_status::error(t("Admin theme '%name' is missing! Falling back to the Wind theme.", + array("name" => self::$admin_theme_name)), "missing_admin_theme"); + module::set_var("gallery", "active_admin_theme", self::$admin_theme_name = "admin_wind"); + } + array_unshift($modules, THEMEPATH . self::$admin_theme_name); // If the site theme has an admin subdir, load that as a module so that diff --git a/modules/gallery/helpers/upgrade_checker.php b/modules/gallery/helpers/upgrade_checker.php index ff65608..c11a931 100644 --- a/modules/gallery/helpers/upgrade_checker.php +++ b/modules/gallery/helpers/upgrade_checker.php @@ -42,7 +42,8 @@ class upgrade_checker_Core { static function should_auto_check() { if (upgrade_checker::auto_check_enabled() && random::int(1, 100) == 1) { $version_info = upgrade_checker::version_info(); - return (!$version_info || (time() - $version_info->timestamp) > AUTO_CHECK_INTERVAL); + return (!$version_info || + (time() - $version_info->timestamp) > upgrade_checker::AUTO_CHECK_INTERVAL); } return false; } diff --git a/modules/gallery/libraries/Form_Uploadify.php b/modules/gallery/libraries/Form_Uploadify.php index 27ab968..3e35e38 100644 --- a/modules/gallery/libraries/Form_Uploadify.php +++ b/modules/gallery/libraries/Form_Uploadify.php @@ -48,6 +48,20 @@ class Form_Uploadify_Core extends Form_Input { $v->simultaneous_upload_limit = module::get_var("gallery", "simultaneous_upload_limit"); $v->movies_allowed = (bool) movie::find_ffmpeg(); $v->suhosin_session_encrypt = (bool) ini_get("suhosin.session.encrypt"); + + list ($toolkit_max_filesize_bytes, $toolkit_max_filesize) = graphics::max_filesize(); + + $upload_max_filesize = trim(ini_get("upload_max_filesize")); + $upload_max_filesize_bytes = num::convert_to_bytes($upload_max_filesize); + + if ($upload_max_filesize_bytes < $toolkit_max_filesize_bytes) { + $v->size_limit_bytes = $upload_max_filesize_bytes; + $v->size_limit = $upload_max_filesize; + } else { + $v->size_limit_bytes = $toolkit_max_filesize_bytes; + $v->size_limit = $toolkit_max_filesize; + } + return $v; } diff --git a/modules/gallery/libraries/Gallery_View.php b/modules/gallery/libraries/Gallery_View.php index 562f792..e04b916 100644 --- a/modules/gallery/libraries/Gallery_View.php +++ b/modules/gallery/libraries/Gallery_View.php @@ -30,6 +30,52 @@ class Gallery_View_Core extends View { return $absolute_url ? url::abs_file($arg) : url::file($arg); } + /** + * Set up the data and render a pager. + * + * See themes/wind/views/pager.html for documentation on the variables generated here. + */ + public function paginator() { + $v = new View("paginator.html"); + $v->page_type = $this->page_type; + $v->page_subtype = $this->page_subtype; + $v->first_page_url = null; + $v->previous_page_url = null; + $v->next_page_url = null; + $v->last_page_url = null; + + if ($this->page_type == "collection") { + $v->page = $this->page; + $v->max_pages = $this->max_pages; + $v->total = $this->children_count; + + if ($this->page != 1) { + $v->first_page_url = url::site(url::merge(array("page" => 1))); + $v->previous_page_url = url::site(url::merge(array("page" => $this->page - 1))); + } + + if ($this->page != $this->max_pages) { + $v->next_page_url = url::site(url::merge(array("page" => $this->page + 1))); + $v->last_page_url = url::site(url::merge(array("page" => $this->max_pages))); + } + + $v->first_visible_position = ($this->page - 1) * $this->page_size + 1; + $v->last_visible_position = min($this->page * $this->page_size, $v->total); + } else if ($this->page_type == "item") { + $v->position = $this->position; + $v->total = $this->sibling_count; + if ($this->previous_item) { + $v->previous_page_url = $this->previous_item->url(); + } + + if ($this->next_item) { + $v->next_page_url = $this->next_item->url(); + } + } + + return $v; + } + /** * Begin gather up scripts or css files so that they can be combined into a single request. * @@ -111,6 +157,8 @@ class Gallery_View_Core extends View { $contents = $cache->get($key); if (empty($contents)) { + module::event("before_combine", $type, $this->combine_queue[$type][$group]); + $contents = ""; foreach (array_keys($this->combine_queue[$type][$group]) as $path) { if ($type == "css") { @@ -120,6 +168,8 @@ class Gallery_View_Core extends View { } } + module::event("after_combine", $type, $contents); + $cache->set($key, $contents, array($type), 30 * 84600); $use_gzip = function_exists("gzencode") && @@ -128,9 +178,13 @@ class Gallery_View_Core extends View { $cache->set("{$key}_gz", gzencode($contents, 9, FORCE_GZIP), array($type, "gzip"), 30 * 84600); } + } unset($this->combine_queue[$type][$group]); + if (empty($this->combine_queue[$type])) { + unset($this->combine_queue[$type]); + } if ($type == "css") { return html::stylesheet("combined/css/$key", "screen,print,projection", true); @@ -158,6 +212,7 @@ class Gallery_View_Core extends View { $replace[] = "url('" . url::abs_file($relative) . "')"; } else { Kohana_Log::add("error", "Missing URL reference '{$match[1]}' in CSS file '$css_file'"); + } } $replace = str_replace(DIRECTORY_SEPARATOR, "/", $replace); diff --git a/modules/gallery/libraries/InPlaceEdit.php b/modules/gallery/libraries/InPlaceEdit.php index 88c3049..739cbb6 100644 --- a/modules/gallery/libraries/InPlaceEdit.php +++ b/modules/gallery/libraries/InPlaceEdit.php @@ -56,8 +56,12 @@ class InPlaceEdit_Core { } public function validate() { - $post = Validation::factory($_POST) - ->add_callbacks("input", $this->callback); + $post = Validation::factory($_POST); + + if (!empty($this->callback)) { + $post->add_callbacks("input", $this->callback); + } + foreach ($this->rules as $rule) { $post->add_rules("input", $rule); } diff --git a/modules/gallery/libraries/Theme_View.php b/modules/gallery/libraries/Theme_View.php index a507e9c..d683446 100644 --- a/modules/gallery/libraries/Theme_View.php +++ b/modules/gallery/libraries/Theme_View.php @@ -38,6 +38,7 @@ class Theme_View_Core extends Gallery_View { $this->item = null; $this->tag = null; $this->set_global(array("theme" => $this, + "theme_info" => theme::get_info($this->theme_name), "user" => identity::active_user(), "page_type" => $page_type, "page_subtype" => $page_subtype, @@ -137,52 +138,6 @@ class Theme_View_Core extends Gallery_View { return $menu->render(); } - /** - * Set up the data and render a pager. - * - * See themes/wind/views/pager.html for documentation on the variables generated here. - */ - public function paginator() { - $v = new View("paginator.html"); - $v->page_type = $this->page_type; - $v->page_subtype = $this->page_subtype; - $v->first_page_url = null; - $v->previous_page_url = null; - $v->next_page_url = null; - $v->last_page_url = null; - - if ($this->page_type == "collection") { - $v->page = $this->page; - $v->max_pages = $this->max_pages; - $v->total = $this->children_count; - - if ($this->page != 1) { - $v->first_page_url = url::site(url::merge(array("page" => 1))); - $v->previous_page_url = url::site(url::merge(array("page" => $this->page - 1))); - } - - if ($this->page != $this->max_pages) { - $v->next_page_url = url::site(url::merge(array("page" => $this->page + 1))); - $v->last_page_url = url::site(url::merge(array("page" => $this->max_pages))); - } - - $v->first_visible_position = ($this->page - 1) * $this->page_size + 1; - $v->last_visible_position = min($this->page * $this->page_size, $v->total); - } else if ($this->page_type == "item") { - $v->position = $this->position; - $v->total = $this->sibling_count; - if ($this->previous_item) { - $v->previous_page_url = $this->previous_item->url(); - } - - if ($this->next_item) { - $v->next_page_url = $this->next_item->url(); - } - } - - return $v; - } - /** * Print out any site wide status information. */ diff --git a/modules/gallery/models/item.php b/modules/gallery/models/item.php index 8f4bc5e..2a5e689 100644 --- a/modules/gallery/models/item.php +++ b/modules/gallery/models/item.php @@ -336,9 +336,7 @@ class Item_Model_Core extends ORM_MPTT { // Make an url friendly slug from the name, if necessary if (empty($this->slug)) { - $tmp = pathinfo($this->name, PATHINFO_FILENAME); - $tmp = preg_replace("/[^A-Za-z0-9-_]+/", "-", $tmp); - $this->slug = trim($tmp, "-"); + $this->slug = item::convert_filename_to_slug(pathinfo($this->name, PATHINFO_FILENAME)); // If the filename is all invalid characters, then the slug may be empty here. Pick a // random value. diff --git a/modules/gallery/module.info b/modules/gallery/module.info index 4c0c886..4234553 100644 --- a/modules/gallery/module.info +++ b/modules/gallery/module.info @@ -1,3 +1,7 @@ name = "Gallery 3" description = "Gallery core application" -version = 46 +version = 49 +author_name = "Gallery Team" +author_url = "http://codex.gallery2.org/Gallery:Team" +info_url = "http://codex.gallery2.org/Gallery3:Modules:gallery" +discuss_url = "http://gallery.menalto.com/forum_module_gallery" diff --git a/modules/gallery/views/admin_block_welcome.html.php b/modules/gallery/views/admin_block_welcome.html.php index d8c9618..d3765d1 100644 --- a/modules/gallery/views/admin_block_welcome.html.php +++ b/modules/gallery/views/admin_block_welcome.html.php @@ -2,7 +2,7 @@

-
    +
    • graphics and language settings.", array("graphics_url" => html::mark_clean(url::site("admin/graphics")), diff --git a/modules/gallery/views/admin_languages.html.php b/modules/gallery/views/admin_languages.html.php index 01d1ce3..eef087e 100644 --- a/modules/gallery/views/admin_languages.html.php +++ b/modules/gallery/views/admin_languages.html.php @@ -51,7 +51,7 @@ $display_name): ?> - +
      diff --git a/modules/gallery/views/admin_maintenance.html.php b/modules/gallery/views/admin_maintenance.html.php index c28def1..230e935 100644 --- a/modules/gallery/views/admin_maintenance.html.php +++ b/modules/gallery/views/admin_maintenance.html.php @@ -3,7 +3,9 @@

      +

      maintenance mode which prevents any non-admin from accessing your Gallery. Some of the tasks below will automatically put your Gallery in maintenance mode for you.") ?> +

      • diff --git a/modules/gallery/views/admin_modules.html.php b/modules/gallery/views/admin_modules.html.php index f4ae965..03993bb 100644 --- a/modules/gallery/views/admin_modules.html.php +++ b/modules/gallery/views/admin_modules.html.php @@ -6,7 +6,7 @@ dataType: "json", success: function(data) { if (data.reload) { - window.location.reload(); + window.location = ""; } else { $("body").append('
        ' + data.dialog + '
        '); $("#g-dialog").dialog({ @@ -43,7 +43,7 @@

        - + adding more modules! Each module provides new cool features.", array("url" => "http://codex.gallery2.org/Category:Gallery_3:Modules")) ?>

        @@ -55,6 +55,7 @@
      + $module_info): ?> "> @@ -64,6 +65,55 @@ +
      name) ?> version ?> description) ?> + +
      diff --git a/modules/gallery/views/admin_themes.html.php b/modules/gallery/views/admin_themes.html.php index d14e8bd..7d947b2 100644 --- a/modules/gallery/views/admin_themes.html.php +++ b/modules/gallery/views/admin_themes.html.php @@ -10,7 +10,7 @@

      - + with a new theme! There are separate themes for the regular site and for the administration interface. Click a theme below to preview and activate it.", array("url" => "http://codex.gallery2.org/Category:Gallery_3:Themes")) ?>

      @@ -23,6 +23,7 @@

      description ?>

      + info = $themes[$site]; print $v; ?>

      @@ -40,13 +41,14 @@ description ?>

      + info = $info; print $v; ?>

      - + Download one now!", array("url" => "http://codex.gallery2.org/Category:Gallery_3:Modules")) ?>

      @@ -61,6 +63,7 @@

      description ?>

      + info = $themes[$admin]; print $v; ?>

      @@ -78,17 +81,18 @@ description ?>

      + info = $info; print $v; ?>

      - + Download one now!", array("url" => "http://codex.gallery2.org/Category:Gallery_3:Modules")) ?>

      - \ No newline at end of file + diff --git a/modules/gallery/views/admin_themes_buttonset.html.php b/modules/gallery/views/admin_themes_buttonset.html.php new file mode 100644 index 0000000..bf474a2 --- /dev/null +++ b/modules/gallery/views/admin_themes_buttonset.html.php @@ -0,0 +1,48 @@ + + diff --git a/modules/gallery/views/form_uploadify.html.php b/modules/gallery/views/form_uploadify.html.php index 77b6d49..83dfcc6 100644 --- a/modules/gallery/views/form_uploadify.html.php +++ b/modules/gallery/views/form_uploadify.html.php @@ -32,6 +32,7 @@ fileDesc: for_js() ?>, cancelImg: "", simUploadLimit: , + sizeLimit: , wmode: "transparent", hideButton: true, /* should be true */ auto: true, @@ -66,26 +67,30 @@ return true; }, onError: function(event, queueID, fileObj, errorObj) { - var msg = " - "; if (errorObj.type == "HTTP") { if (errorObj.info == "500") { - msg += for_js() ?>; - // Server error - check server logs + error_msg = for_js() ?>; } else if (errorObj.info == "404") { - msg += for_js() ?>; - // Server script not found + error_msg = for_js() ?>; + } else if (errorObj.info == "400") { + error_msg = $size_limit))->for_js() ?>; } else { - // Server Error: status: errorObj.info - msg += (for_js() ?>.replace("__INFO__", errorObj.info)); + msg += (for_js() ?> + .replace("__INFO__", errorObj.info) + .replace("__TYPE__", errorObj.type)); } } else if (errorObj.type == "File Size") { - var sizelimit = $("#g-uploadify").uploadifySettings(sizeLimit); - msg += fileObj.name+' '+errorObj.type+' Limit: '+Math.round(d.sizeLimit/1024)+'KB'; + error_msg = $size_limit))->for_js() ?>; } else { - msg += (for_js() ?> - .replace("__INFO__", errorObj.info) - .replace("__TYPE__", errorObj.type)); + error_msg = for_js() ?> + .replace("__INFO__", errorObj.info) + .replace("__TYPE__", errorObj.type); } + msg = " - " + + error_msg + ""; + $("#g-add-photos-status ul").append( "
    • " + fileObj.name + msg + "
    • "); $("#g-uploadify").uploadifyCancel(queueID); @@ -131,10 +136,7 @@
      -

      - -

      -
        +
          parents() as $i => $parent): ?> > title) ?> @@ -143,7 +145,7 @@
      - +
      diff --git a/modules/gallery/views/movieplayer.html.php b/modules/gallery/views/movieplayer.html.php index 5c280a3..96d6532 100644 --- a/modules/gallery/views/movieplayer.html.php +++ b/modules/gallery/views/movieplayer.html.php @@ -22,5 +22,5 @@ } } } - ) + ).ipad(); diff --git a/modules/gallery/views/upgrade_checker_block.html.php b/modules/gallery/views/upgrade_checker_block.html.php index b04887b..c984d99 100644 --- a/modules/gallery/views/upgrade_checker_block.html.php +++ b/modules/gallery/views/upgrade_checker_block.html.php @@ -6,8 +6,10 @@

      %code_name.", array("version" => gallery::VERSION, "code_name" => gallery::CODE_NAME)) ?> + + gallery::VERSION, "branch" => gallery::RELEASE_BRANCH, "build_number" => $build_number)) ?> - gallery::VERSION, "branch" => gallery::RELEASE_BRANCH, "build_number" => gallery::build_number())) ?> + gallery::VERSION, "branch" => gallery::RELEASE_BRANCH, "build_number" => $build_number)) ?>

      diff --git a/modules/gallery/views/upgrader.html.php b/modules/gallery/views/upgrader.html.php index ad2e342..70d37dd 100644 --- a/modules/gallery/views/upgrader.html.php +++ b/modules/gallery/views/upgrader.html.php @@ -27,7 +27,7 @@ diff --git a/modules/image_block/module.info b/modules/image_block/module.info index 6836fab..6722cc8 100644 --- a/modules/image_block/module.info +++ b/modules/image_block/module.info @@ -1,3 +1,7 @@ name = "Image Block" description = "Display a random image in the sidebar" version = 3 +author_name = "Gallery Team" +author_url = "http://codex.gallery2.org/Gallery:Team" +info_url = "http://codex.gallery2.org/Gallery3:Modules:image_block" +discuss_url = "http://gallery.menalto.com/forum_module_image_block" diff --git a/modules/info/module.info b/modules/info/module.info index 5f84cbb..f8964a7 100644 --- a/modules/info/module.info +++ b/modules/info/module.info @@ -1,3 +1,7 @@ name = "Info" description = "Display extra information about photos and albums" version = 2 +author_name = "Gallery Team" +author_url = "http://codex.gallery2.org/Gallery:Team" +info_url = "http://codex.gallery2.org/Gallery3:Modules:info" +discuss_url = "http://gallery.menalto.com/forum_module_info" diff --git a/modules/notification/module.info b/modules/notification/module.info index 8c5e116..84be8f9 100644 --- a/modules/notification/module.info +++ b/modules/notification/module.info @@ -1,3 +1,7 @@ name = "Notification" description = "Send notifications to users when changes are made to watched albums." version = 2 +author_name = "Gallery Team" +author_url = "http://codex.gallery2.org/Gallery:Team" +info_url = "http://codex.gallery2.org/Gallery3:Modules:notification" +discuss_url = "http://gallery.menalto.com/forum_module_notification" diff --git a/modules/organize/module.info b/modules/organize/module.info index 0d16144..07b9dc3 100644 --- a/modules/organize/module.info +++ b/modules/organize/module.info @@ -1,3 +1,7 @@ name = "Organize" description = "Visually rearrange and move photos in your gallery" version = 4 +author_name = "Gallery Team" +author_url = "http://codex.gallery2.org/Gallery:Team" +info_url = "http://codex.gallery2.org/Gallery3:Modules:organize" +discuss_url = "http://gallery.menalto.com/forum_module_organize" diff --git a/modules/recaptcha/module.info b/modules/recaptcha/module.info index cfa1bf7..ebaff7d 100644 --- a/modules/recaptcha/module.info +++ b/modules/recaptcha/module.info @@ -1,3 +1,7 @@ name = "reCAPTCHA" description = "reCAPTCHA displays a graphical verification that protects the input form from abuse from 'bots,' or automated programs usually written to generate spam (http://recaptcha.net)." version = 1 +author_name = "Gallery Team" +author_url = "http://codex.gallery2.org/Gallery:Team" +info_url = "http://codex.gallery2.org/Gallery3:Modules:recaptcha" +discuss_url = "http://gallery.menalto.com/forum_module_recaptcha" diff --git a/modules/rest/module.info b/modules/rest/module.info index 5aaffc2..33c9f1c 100644 --- a/modules/rest/module.info +++ b/modules/rest/module.info @@ -2,3 +2,7 @@ name = "REST API Module" description = "A REST-based API that allows desktop clients and other apps to interact with Gallery 3" version = 3 +author_name = "Gallery Team" +author_url = "http://codex.gallery2.org/Gallery:Team" +info_url = "http://codex.gallery2.org/Gallery3:Modules:rest" +discuss_url = "http://gallery.menalto.com/forum_module_rest" diff --git a/modules/rss/module.info b/modules/rss/module.info index 48375da..cd13c1b 100644 --- a/modules/rss/module.info +++ b/modules/rss/module.info @@ -1,3 +1,7 @@ name = "RSS" description = "Provides RSS feeds" version = 1 +author_name = "Gallery Team" +author_url = "http://codex.gallery2.org/Gallery:Team" +info_url = "http://codex.gallery2.org/Gallery3:Modules:rss" +discuss_url = "http://gallery.menalto.com/forum_module_rss" diff --git a/modules/search/controllers/search.php b/modules/search/controllers/search.php index eef009a..261d67e 100644 --- a/modules/search/controllers/search.php +++ b/modules/search/controllers/search.php @@ -22,14 +22,16 @@ class Search_Controller extends Controller { $page_size = module::get_var("gallery", "page_size", 9); $q = Input::instance()->get("q"); $page = Input::instance()->get("page", 1); - $offset = ($page - 1) * $page_size; // Make sure that the page references a valid offset if ($page < 1) { $page = 1; } - list ($count, $result) = search::search($q, $page_size, $offset); + $offset = ($page - 1) * $page_size; + + $q_with_more_terms = search::add_query_terms($q); + list ($count, $result) = search::search($q_with_more_terms, $page_size, $offset); $max_pages = max(ceil($count / $page_size), 1); diff --git a/modules/search/helpers/search.php b/modules/search/helpers/search.php index 09e5e83..bbde8fe 100644 --- a/modules/search/helpers/search.php +++ b/modules/search/helpers/search.php @@ -18,6 +18,22 @@ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ class search_Core { + /** + * Add more terms to the query by wildcarding the stem value of the first + * few terms in the query. + */ + static function add_query_terms($q) { + $MAX_TERMS = 5; + $terms = explode(" ", $q, $MAX_TERMS); + for ($i = 0; $i < min(count($terms), $MAX_TERMS - 1); $i++) { + // Don't wildcard quoted or already wildcarded terms + if ((substr($terms[$i], 0, 1) != '"') && (substr($terms[$i], -1, 1) != "*")) { + $terms[] = rtrim($terms[$i], "s") . "*"; + } + } + return implode(" ", $terms); + } + static function search($q, $limit, $offset) { $db = Database::instance(); $q = $db->escape($q); diff --git a/modules/search/module.info b/modules/search/module.info index f417c4f..1389798 100644 --- a/modules/search/module.info +++ b/modules/search/module.info @@ -1,3 +1,7 @@ name = "Search" description = "Allows users to search their Gallery" version = 1 +author_name = "Gallery Team" +author_url = "http://codex.gallery2.org/Gallery:Team" +info_url = "http://codex.gallery2.org/Gallery3:Modules:search" +discuss_url = "http://gallery.menalto.com/forum_module_search" diff --git a/modules/server_add/controllers/server_add.php b/modules/server_add/controllers/server_add.php index 2afa93a..ea8907f 100644 --- a/modules/server_add/controllers/server_add.php +++ b/modules/server_add/controllers/server_add.php @@ -286,7 +286,7 @@ class Server_Add_Controller extends Admin_Controller { } catch (Exception $e) { // This can happen if a photo file is invalid, like a BMP masquerading as a .jpg $entry->item_id = 0; - $task->log("Skipping invalid file: {$entry->file}"); + $task->log("Skipping invalid file: {$entry->path}"); } } diff --git a/modules/server_add/helpers/server_add_theme.php b/modules/server_add/helpers/server_add_theme.php index 50c050a..cfca590 100644 --- a/modules/server_add/helpers/server_add_theme.php +++ b/modules/server_add/helpers/server_add_theme.php @@ -24,20 +24,4 @@ class server_add_theme_Core { . $theme->script("server_add.js"); } } - - static function admin_head($theme) { - $buf = ""; - if (strpos(Router::$current_uri, "admin/server_add") !== false) { - $buf .= $theme->css("server_add.css") - . $theme->css("jquery.autocomplete.css"); - $base = url::site("__ARGS__"); - $csrf = access::csrf_token(); - $buf .= ""; - - $buf .= $theme->script("jquery.autocomplete.js") - . $theme->script("admin.js"); - } - - return $buf; - } } \ No newline at end of file diff --git a/modules/server_add/js/admin.js b/modules/server_add/js/admin.js deleted file mode 100644 index 9d7bd18..0000000 --- a/modules/server_add/js/admin.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Set up autocomplete on the server path list - * - */ -$("document").ready(function() { - $("#g-path").autocomplete( - base_url.replace("__ARGS__", "admin/server_add/autocomplete"), {max: 256}); -}); diff --git a/modules/server_add/module.info b/modules/server_add/module.info index 87b317b..4ce0a97 100644 --- a/modules/server_add/module.info +++ b/modules/server_add/module.info @@ -1,3 +1,7 @@ name = "Server Add" description = "Allows authorized users to load images directly from your web server" version = 4 +author_name = "Gallery Team" +author_url = "http://codex.gallery2.org/Gallery:Team" +info_url = "http://codex.gallery2.org/Gallery3:Modules:server_add" +discuss_url = "http://gallery.menalto.com/forum_module_server_add" diff --git a/modules/server_add/views/admin_server_add.html.php b/modules/server_add/views/admin_server_add.html.php index 933ab7f..474ad42 100644 --- a/modules/server_add/views/admin_server_add.html.php +++ b/modules/server_add/views/admin_server_add.html.php @@ -1,4 +1,18 @@ +css("server_add.css") ?> +css("jquery.autocomplete.css") ?> +script("jquery.autocomplete.js") ?> + +

      @@ -8,12 +22,17 @@
    • + $path): ?>
    • - " + ") ?>" id="icon_" - class="g-remove-dir g-button"> + class="g-remove-dir g-button"> + + + +
    diff --git a/modules/slideshow/module.info b/modules/slideshow/module.info index b56eac8..8c9a317 100644 --- a/modules/slideshow/module.info +++ b/modules/slideshow/module.info @@ -1,3 +1,7 @@ name = "Slideshow" description = "Allows users to view a slideshow of photos" version = 2 +author_name = "Gallery Team" +author_url = "http://codex.gallery2.org/Gallery:Team" +info_url = "http://codex.gallery2.org/Gallery3:Modules:slideshow" +discuss_url = "http://gallery.menalto.com/forum_module_slideshow" diff --git a/modules/tag/controllers/admin_tags.php b/modules/tag/controllers/admin_tags.php index 73042a5..77b5f20 100644 --- a/modules/tag/controllers/admin_tags.php +++ b/modules/tag/controllers/admin_tags.php @@ -81,17 +81,25 @@ class Admin_Tags_Controller extends Admin_Controller { $in_place_edit = InPlaceEdit::factory($tag->name) ->action("admin/tags/rename/$tag->id") - ->rules(array("required", "length[1,64]")) - ->messages(array("in_use" => t("There is already a tag with that name"))) - ->callback(array($this, "check_for_duplicate")); + ->rules(array("required", "length[1,64]")); if ($in_place_edit->validate()) { $old_name = $tag->name; - $tag->name = $in_place_edit->value(); + $new_name_or_list = $in_place_edit->value(); + $tag_list = explode(",", $new_name_or_list); + + $tag->name = array_shift($tag_list); $tag->save(); - $message = t("Renamed tag %old_name to %new_name", - array("old_name" => $old_name, "new_name" => $tag->name)); + if (!empty($tag_list)) { + $this->_copy_items_for_tags($tag, $tag_list); + $message = t("Split tag %old_name into %tag_list", + array("old_name" => $old_name, "tag_list" => $new_name_or_list)); + } else { + $message = t("Renamed tag %old_name to %new_name", + array("old_name" => $old_name, "new_name" => $tag->name)); + } + message::success($message); log::success("tags", $message); @@ -101,12 +109,11 @@ class Admin_Tags_Controller extends Admin_Controller { } } - public function check_for_duplicate(Validation $post_data, $field) { - $tag_exists = ORM::factory("tag")->where("name", "=", $post_data[$field])->count_all(); - if ($tag_exists) { - $post_data->add_error($field, "in_use"); + private function _copy_items_for_tags($tag, $tag_list) { + foreach ($tag->items() as $item) { + foreach ($tag_list as $new_tag_name) { + tag::add($item, trim($new_tag_name)); + } } } - } - diff --git a/modules/tag/controllers/tag.php b/modules/tag/controllers/tag.php index 7aa038c..8f885de 100644 --- a/modules/tag/controllers/tag.php +++ b/modules/tag/controllers/tag.php @@ -19,8 +19,8 @@ */ class Tag_Controller extends Controller { public function __call($function, $args) { - $tag_name = $function; - $tag = ORM::factory("tag")->where("name", "=", $tag_name)->find(); + $tag_id = $function; + $tag = ORM::factory("tag")->where("id", "=", $tag_id)->find(); $page_size = module::get_var("gallery", "page_size", 9); $page = (int) Input::instance()->get("page", "1"); $children_count = $tag->items_count(); diff --git a/modules/tag/controllers/tags.php b/modules/tag/controllers/tags.php index fe6d747..bf41c4d 100644 --- a/modules/tag/controllers/tags.php +++ b/modules/tag/controllers/tags.php @@ -22,7 +22,8 @@ class Tags_Controller extends Controller { // Far from perfection, but at least require view permission for the root album $album = ORM::factory("item", 1); access::required("view", $album); - print tag::cloud(30); + + print tag::cloud(module::get_var("tag", "tag_cloud_size", 30)); } public function create($item_id) { diff --git a/modules/tag/helpers/tag.php b/modules/tag/helpers/tag.php index 733215b..c21104e 100644 --- a/modules/tag/helpers/tag.php +++ b/modules/tag/helpers/tag.php @@ -48,6 +48,7 @@ class tag_Core { * @return ORM_Iterator of Tag_Model in descending tag count order */ static function popular_tags($count) { + $count = max($count, 1); return ORM::factory("tag") ->order_by("count", "DESC") ->limit($count) diff --git a/modules/tag/helpers/tag_block.php b/modules/tag/helpers/tag_block.php index 8df58a6..69a9a1c 100644 --- a/modules/tag/helpers/tag_block.php +++ b/modules/tag/helpers/tag_block.php @@ -30,7 +30,7 @@ class tag_block_Core { $block->css_id = "g-tag"; $block->title = t("Popular tags"); $block->content = new View("tag_block.html"); - $block->content->cloud = tag::cloud(30); + $block->content->cloud = tag::cloud(module::get_var("tag", "tag_cloud_size", 30)); if ($theme->item() && $theme->page_subtype() != "tag" && access::can("edit", $theme->item())) { $controller = new Tags_Controller(); diff --git a/modules/tag/helpers/tag_event.php b/modules/tag/helpers/tag_event.php index cd79f73..b415b42 100644 --- a/modules/tag/helpers/tag_event.php +++ b/modules/tag/helpers/tag_event.php @@ -36,10 +36,7 @@ class tag_event_Core { $tag = str_replace("\0", "", $tag); foreach (explode(",", $tag) as $word) { $word = trim($word); - if (function_exists("mb_detect_encoding") && - mb_detect_encoding($word, "ISO-8859-1, UTF-8") != "UTF-8") { - $word = utf8_encode($word); - } + $word = encoding::convert_to_utf8($word); $tags[$word] = 1; } } @@ -113,11 +110,11 @@ class tag_event_Core { } static function add_photos_form($album, $form) { - if (!isset($group->uploadify)) { + $group = $form->add_photos; + if (!is_object($group->uploadify)) { return; } - $group = $form->add_photos; $group->input("tags") ->label(t("Add tags to all uploaded files")) ->value(""); @@ -136,7 +133,8 @@ class tag_event_Core { } static function add_photos_form_completed($album, $form) { - if (!isset($group->uploadify)) { + $group = $form->add_photos; + if (!is_object($group->uploadify)) { return; } @@ -151,7 +149,7 @@ class tag_event_Core { static function info_block_get_metadata($block, $item) { $tags = array(); foreach (tag::item_tags($item) as $tag) { - $tags[] = "name}") . "\">{$tag->name}"; + $tags[] = "url()}\">{$tag->name}"; } if ($tags) { $info = $block->content->metadata; diff --git a/modules/tag/helpers/tag_installer.php b/modules/tag/helpers/tag_installer.php index 16ad123..66a78b9 100644 --- a/modules/tag/helpers/tag_installer.php +++ b/modules/tag/helpers/tag_installer.php @@ -36,7 +36,8 @@ class tag_installer { KEY(`tag_id`, `id`), KEY(`item_id`, `id`)) DEFAULT CHARSET=utf8;"); - module::set_version("tag", 2); + module::set_var("tag", "tag_cloud_size", 30); + module::set_version("tag", 3); } static function upgrade($version) { @@ -45,6 +46,10 @@ class tag_installer { $db->query("ALTER TABLE {tags} MODIFY COLUMN `name` VARCHAR(128)"); module::set_version("tag", $version = 2); } + if ($version == 2) { + module::set_var("tag", "tag_cloud_size", 30); + module::set_version("tag", $version = 3); + } } static function uninstall() { diff --git a/modules/tag/helpers/tag_item_rest.php b/modules/tag/helpers/tag_item_rest.php index a8d3d0b..be1fa65 100644 --- a/modules/tag/helpers/tag_item_rest.php +++ b/modules/tag/helpers/tag_item_rest.php @@ -29,6 +29,7 @@ class tag_item_rest_Core { static function delete($request) { list ($tag, $item) = rest::resolve($request->url); + access::required("edit", $item); $tag->remove($item); $tag->save(); } diff --git a/modules/tag/helpers/tag_items_rest.php b/modules/tag/helpers/tag_items_rest.php index 535ab51..8ed0727 100644 --- a/modules/tag/helpers/tag_items_rest.php +++ b/modules/tag/helpers/tag_items_rest.php @@ -51,6 +51,7 @@ class tag_items_rest_Core { static function delete($request) { list ($tag, $item) = rest::resolve($request->url); + access::required("edit", $item); $tag->remove($item); $tag->save(); } diff --git a/modules/tag/models/tag.php b/modules/tag/models/tag.php index 53ccc85..bb79e70 100644 --- a/modules/tag/models/tag.php +++ b/modules/tag/models/tag.php @@ -69,13 +69,23 @@ class Tag_Model_Core extends ORM { * to this tag. */ public function save() { - $related_item_ids = array(); - foreach (db::build() - ->select("item_id") - ->from("items_tags") - ->where("tag_id", "=", $this->id) - ->execute() as $row) { - $related_item_ids[$row->item_id] = 1; + // Check to see if another tag exists with the same name + $duplicate_tag = ORM::factory("tag") + ->where("name", "=", $this->name) + ->where("id", "!=", $this->id) + ->find(); + if ($duplicate_tag->loaded()) { + // If so, tag its items with this tag so as to merge it + $duplicate_tag_items = ORM::factory("item") + ->join("items_tags", "items.id", "items_tags.item_id") + ->where("items_tags.tag_id", "=", $duplicate_tag->id) + ->find_all(); + foreach ($duplicate_tag_items as $item) { + $this->add($item); + } + + // ... and remove the duplicate tag + $duplicate_tag->delete(); } if (isset($this->object_relations["items"])) { @@ -132,7 +142,7 @@ class Tag_Model_Core extends ORM { * @param string $query the query string (eg "page=3") */ public function url($query=null) { - $url = url::site("tag/{$this->name}"); + $url = url::site("tag/{$this->id}/" . urlencode($this->name)); if ($query) { $url .= "?$query"; } diff --git a/modules/tag/module.info b/modules/tag/module.info index 8851d11..75d16bf 100644 --- a/modules/tag/module.info +++ b/modules/tag/module.info @@ -1,3 +1,7 @@ name = "Tags" description = "Allows users to tag photos and albums" -version = 2 +version = 3 +author_name = "Gallery Team" +author_url = "http://codex.gallery2.org/Gallery:Team" +info_url = "http://codex.gallery2.org/Gallery3:Modules:tag" +discuss_url = "http://gallery.menalto.com/forum_module_tag" diff --git a/modules/user/controllers/admin_users.php b/modules/user/controllers/admin_users.php index a3633b5..41be6c0 100644 --- a/modules/user/controllers/admin_users.php +++ b/modules/user/controllers/admin_users.php @@ -21,6 +21,8 @@ class Admin_Users_Controller extends Admin_Controller { public function index() { $view = new Admin_View("admin.html"); $view->page_title = t("Users and groups"); + $view->page_type = "collection"; + $view->page_subtype = "admin_users"; $view->content = new View("admin_users.html"); // @todo: add this as a config option @@ -29,6 +31,12 @@ class Admin_Users_Controller extends Admin_Controller { $builder = db::build(); $user_count = $builder->from("users")->count_records(); + // Pagination info + $view->page = $page; + $view->page_size = $page_size; + $view->children_count = $user_count; + $view->max_pages = ceil($view->children_count / $view->page_size); + $view->content->pager = new Pagination(); $view->content->pager->initialize( array("query_string" => "page", diff --git a/modules/user/controllers/password.php b/modules/user/controllers/password.php index 4e93d5c..ab31c6b 100644 --- a/modules/user/controllers/password.php +++ b/modules/user/controllers/password.php @@ -18,6 +18,9 @@ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ class Password_Controller extends Controller { + const ALLOW_MAINTENANCE_MODE = true; + const ALLOW_PRIVATE_GALLERY = true; + public function reset() { $form = self::_reset_form(); if (request::method() == "post") { @@ -105,7 +108,7 @@ class Password_Controller extends Controller { if (!empty($hash)) { $hidden->value($hash); } - $minimum_length = module::get_var("user", "mininum_password_length", 5); + $minimum_length = module::get_var("user", "minimum_password_length", 5); $input_password = $group->password("password")->label(t("Password"))->id("g-password") ->rules($minimum_length ? "required|length[$minimum_length, 40]" : "length[40]"); $group->password("password2")->label(t("Confirm Password"))->id("g-password2") diff --git a/modules/user/helpers/user_installer.php b/modules/user/helpers/user_installer.php index b889af4..9b58277 100644 --- a/modules/user/helpers/user_installer.php +++ b/modules/user/helpers/user_installer.php @@ -24,6 +24,7 @@ class user_installer { static function install() { IdentityProvider::change_provider("user"); + // Set the latest version in initialize() below } static function upgrade($version) { @@ -44,6 +45,13 @@ class user_installer { ->execute(); module::set_version("user", $version = 3); } + + if ($version == 3) { + $password_length = module::get_var("user", "mininum_password_length", 5); + module::set_var("user", "minimum_password_length", $password_length); + module::clear_var("user", "mininum_password_length"); + module::set_version("user", $version = 4); + } } static function uninstall() { @@ -129,7 +137,7 @@ class user_installer { access::allow($registered, "view", $root); access::allow($registered, "view_full", $root); - module::set_var("user", "mininum_password_length", 5); - module::set_version("user", 3); + module::set_var("user", "minimum_password_length", 5); + module::set_version("user", 4); } } \ No newline at end of file diff --git a/modules/user/models/user.php b/modules/user/models/user.php index 145738c..a8a3a0e 100644 --- a/modules/user/models/user.php +++ b/modules/user/models/user.php @@ -147,7 +147,7 @@ class User_Model_Core extends ORM implements User_Definition { } if (!$this->loaded() || isset($this->password_length)) { - $minimum_length = module::get_var("user", "mininum_password_length", 5); + $minimum_length = module::get_var("user", "minimum_password_length", 5); if ($this->password_length < $minimum_length) { $v->add_error("password", "min_length"); } diff --git a/modules/user/module.info b/modules/user/module.info index 185a3e3..503bcd0 100644 --- a/modules/user/module.info +++ b/modules/user/module.info @@ -1,4 +1,8 @@ name = "Users and Groups" description = "Gallery 3 user and group management" -version = 3 +version = 4 +author_name = "Gallery Team" +author_url = "http://codex.gallery2.org/Gallery:Team" +info_url = "http://codex.gallery2.org/Gallery3:Modules:user" +discuss_url = "http://gallery.menalto.com/forum_module_user" diff --git a/modules/user/views/admin_users.html.php b/modules/user/views/admin_users.html.php index a7bd6b2..033c9da 100644 --- a/modules/user/views/admin_users.html.php +++ b/modules/user/views/admin_users.html.php @@ -110,7 +110,7 @@
    - + paginator() ?>
    diff --git a/modules/user/views/admin_users_group.html.php b/modules/user/views/admin_users_group.html.php index 2362e42..31b9135 100644 --- a/modules/user/views/admin_users_group.html.php +++ b/modules/user/views/admin_users_group.html.php @@ -17,7 +17,7 @@ users->count_all() > 0): ?>
      - users->find_all() as $i => $user): ?> + users->order_by("name", "ASC")->find_all() as $i => $user): ?>
    • name) ?> special): ?> diff --git a/modules/watermark/module.info b/modules/watermark/module.info index 41a871b..58efa43 100644 --- a/modules/watermark/module.info +++ b/modules/watermark/module.info @@ -1,3 +1,7 @@ name = "Watermarks" description = "Allows users to watermark their photos" version = 2 +author_name = "Gallery Team" +author_url = "http://codex.gallery2.org/Gallery:Team" +info_url = "http://codex.gallery2.org/Gallery3:Modules:watermark" +discuss_url = "http://gallery.menalto.com/forum_module_watermark" diff --git a/themes/admin_wind/css/screen-rtl.css b/themes/admin_wind/css/screen-rtl.css new file mode 100644 index 0000000..0809c1b --- /dev/null +++ b/themes/admin_wind/css/screen-rtl.css @@ -0,0 +1,318 @@ +/** + * Gallery 3 Admin Wind Theme Right-to-Left Screen Styles + */ + +.rtl { + direction: rtl; +} + +#g-header, +#g-content, +#g-sidebar, +#g-footer, +caption, +th, +#g-dialog, +.g-context-menu li a, +.g-message-box li, +#g-site-status li { + text-align: right; +} + +.g-text-right { + text-align: left; +} + +/* Lists ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +.g-text li, +.g-text li { + margin-left: 0; + margin-right: 1em; +} + +/* Messages ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +.g-error, +.g-info, +.g-success, +.g-warning, +#g-add-photos-status .g-success, +#g-add-photos-status .g-error { + background-position: center right; + padding-right: 30px !important; +} + +form li.g-error, +form li.g-info, +form li.g-success, +form li.g-warning { + padding-right: 0 !important; +} + +.g-left, +.g-inline li, +#g-content #g-album-grid .g-item, +.sf-menu li, +.g-breadcrumbs li, +.g-paginator li, +.g-buttonset li, +.ui-icon-left .ui-icon, +.g-short-form li, +form ul ul li, +input[type="submit"], +input[type="reset"], +input.checkbox, +input[type=checkbox], +input.radio, +input[type=radio] { + float: right; +} + +.g-right, +.ui-icon-right .ui-icon { + float: left; +} + +.g-inline li { + margin-right: 1em; +} + +.g-inline li.g-first { + margin-right: 0; +} + +.g-breadcrumbs li { + background: transparent url('../images/ico-separator-rtl.gif') no-repeat scroll right center; + padding: 1em 18px 1em 8px; +} + +.g-breadcrumbs .g-first { + background: none; + padding-right: 0; +} + +input.checkbox { + margin-left: .4em; +} + +#g-add-comment { + right: inherit; + left: 0; +} + +.ui-icon-left .ui-icon { + margin-left: .2em; +} + +.ui-icon-right .ui-icon { + margin-right: .2em; +} + +/* RTL Corner radius ~~~~~~~~~~~~~~~~~~~~~~ */ + +.g-buttonset .ui-corner-tl { + -moz-border-radius-topleft: 0; + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -moz-border-radius-topright: 5px !important; + -webkit-border-top-right-radius: 5px !important; + border-top-right-radius: 5px !important; +} + +.g-buttonset .ui-corner-tr { + -moz-border-radius-topright: 0; + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; + -moz-border-radius-topleft: 5px !important; + -webkit-border-top-left-radius: 5px !important; + border-top-left-radius: 5px !important; +} + +.g-buttonset .ui-corner-bl { + -moz-border-radius-bottomleft: 0; + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-bottomright: 5px !important; + -webkit-border-bottom-right-radius: 5px !important; + border-bottom-right-radius: 5px !important; +} + +.g-buttonset .ui-corner-br { + -moz-border-radius-bottomright: 0; + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-bottomleft: 5px !important; + -webkit-border-bottom-left-radius: 5px !important; + border-bottom-left-radius: 5px !important; +} + +.g-buttonset .ui-corner-right, +.ui-progressbar .ui-corner-right { + -moz-border-radius-topright: 0; + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; + -moz-border-radius-topleft: 5px !important; + -webkit-border-top-left-radius: 5px !important; + border-top-left-radius: 5px !important; + -moz-border-radius-bottomright: 0; + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-bottomleft: 5px !important; + -webkit-border-bottom-left-radius: 5px !important; + border-bottom-left-radius: 5px !important; +} + +.g-buttonset .ui-corner-left, +.ui-progressbar .ui-corner-left { + -moz-border-radius-topleft: 0; + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -moz-border-radius-topright: 5px !important; + -webkit-border-top-right-radius: 5px !important; + border-top-right-radius: 5px !important; + -moz-border-radius-bottomleft: 0; + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-bottomright: 5px !important; + -webkit-border-bottom-right-radius: 5px !important; + border-bottom-right-radius: 5px !important; +} + +/* RTL Superfish ~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +.sf-menu a { + border-left: none; + border-right:1px solid #fff; +} + +.sf-menu a.sf-with-ul { + padding-left: 2.25em; + padding-right: 1em; +} + +.sf-sub-indicator { + left: .75em !important; + right: auto; + background: url('../../../lib/superfish/images/arrows-ffffff-rtl.png') no-repeat -10px -100px; +} + +a > .sf-sub-indicator { + top: .8em; + background-position: -10px -100px; +} + +a:focus > .sf-sub-indicator, +a:hover > .sf-sub-indicator, +a:active > .sf-sub-indicator, +li:hover > a > .sf-sub-indicator, +li.sfHover > a > .sf-sub-indicator { + background-position: 0 -100px; +} + +.sf-menu ul .sf-sub-indicator { + background-position: 0 0; +} + +.sf-menu ul a > .sf-sub-indicator { + background-position: -10px 0; +} + +.sf-menu ul a:focus > .sf-sub-indicator, +.sf-menu ul a:hover > .sf-sub-indicator, +.sf-menu ul a:active > .sf-sub-indicator, +.sf-menu ul li:hover > a > .sf-sub-indicator, +.sf-menu ul li.sfHover > a > .sf-sub-indicator { + background-position: 0 0; +} + +.sf-menu li:hover ul, +.sf-menu li.sfHover ul { + right: 0; + left: auto; +} + +ul.sf-menu li li:hover ul, +ul.sf-menu li li.sfHover ul { + right: 12em; + left: auto; +} +ul.sf-menu li li li:hover ul, +ul.sf-menu li li li.sfHover ul { + right: 12em; + left: auto; +} + +.sf-shadow ul { + background: url('../../../lib/superfish/images/shadow.png') no-repeat bottom left; + padding: 0 0 9px 8px; + border-top-right-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-topright: 0; + -moz-border-radius-bottomleft: 0; + -webkit-border-top-right-radius: 0; + -webkit-border-bottom-left-radius: 0; + -moz-border-radius-topleft: 17px; + -moz-border-radius-bottomright: 17px; + -webkit-border-top-left-radius: 17px; + -webkit-border-bottom-right-radius: 17px; + border-top-left-radius: 17px; + border-bottom-right-radius: 17px; +} + +/* RTL ThemeRoller ~~~~~~~~~~~~~~~~~~~~~~~~ */ + +.ui-dialog .ui-dialog-titlebar { + padding: 0.5em 1em 0.3em 0.3em; +} + +.ui-dialog .ui-dialog-title { + float: right; +} + +.ui-dialog .ui-dialog-titlebar-close { + left: 0.3em; + right: auto; +} + +#g-content #g-album-grid .g-item, +#g-site-theme, +#g-admin-theme, +.g-selected img, +.g-available .g-block img, +#g-content #g-photo-stream .g-item, +li.g-group, +#g-server-add-admin { + float: right; +} + +#g-admin-graphics .g-available .g-block { + float: right; + margin-left: 1em; + margin-right: 0em; +} + +#g-site-admin-menu { + left: auto; + right: 150px; +} + +#g-header #g-login-menu { + float: left; +} + +#g-header #g-login-menu li { + margin-left: 0; + padding-left: 0; + padding-right: 1.2em; +} + +#g-sidebar .g-block-content { + padding-left: 0em; + padding-right: 1em; +} + +.g-selected img, +.g-available .g-block img { + margin: 0 0 1em 1em; +} diff --git a/themes/admin_wind/css/screen.css b/themes/admin_wind/css/screen.css index a5376ff..5894238 100644 --- a/themes/admin_wind/css/screen.css +++ b/themes/admin_wind/css/screen.css @@ -12,7 +12,6 @@ * 6) Positioning and order * 7) Navigation and menus * 8) jQuery and jQuery UI - * 9) Right-to-left language styles * * @todo Review g-buttonset-vertical */ @@ -26,7 +25,10 @@ body, html { font-family: 'Lucida Grande', 'Lucida Sans', Arial, sans-serif; } -p { +p, +#g-content ul, +#g-content ol, +#g-content dl { margin-bottom: 1em; } @@ -87,7 +89,25 @@ a:hover, text-decoration: none; } +/* Lists ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +ul.g-text li, +.g-text ul li { + list-style-type: disc; +} + +ol.g-text li, +.g-text ol li { + list-style-type: decimal; +} + +.g-text li, +.g-text li { + margin-left: 1em; +} + /* Forms ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + form { margin: 0; } @@ -296,6 +316,7 @@ th { } /* Text ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + .g-text-small { font-size: .8em; } @@ -333,10 +354,6 @@ th { padding: 0; } -#g-sidebar .g-block-content { - padding: 0; -} - #g-content .g-selected, #g-content .g-available .g-block { border: 1px solid #ccc; @@ -399,15 +416,12 @@ th { background-color: #fff; } -ul.enumeration li { - list-style-type: disc; - margin-left: 20px; -} - /*** ****************************************************************** * 3) Page layout containers *********************************************************************/ + /* Dimension and scale ~~~~~~~~~~~~~~~~~~~ */ + .g-one-quarter { width: 25%; } @@ -602,11 +616,13 @@ ul.enumeration li { } /* In-line editing ~~~~~~~~~~~~~~~~~~~~~~ */ + #g-in-place-edit-message { background-color: #FFF; } -/* Language options ~~~~~~~~~~~~~~~~~~~~~~~~ */ +/* Language options ~~~~~~~~~~~~~~~~~~~~~ */ + #g-share-translations-form fieldset { border: 0px; margin: 0px; @@ -703,11 +719,11 @@ tr.g-error td.g-error, } tr.g-success { - background-image: none; + background-image: none; } tr.g-success td.g-success { - background-image: url('../images/ico-success.png'); + background-image: url('../images/ico-success.png'); } .g-warning, @@ -731,8 +747,8 @@ form .g-error { } .g-default { - background-color: #c5dbec; - font-weight: bold; + background-color: #c5dbec; + font-weight: bold; } .g-draggable { @@ -810,6 +826,7 @@ form .g-error { /** ******************************************************************* * 8) jQuery and jQuery UI *********************************************************************/ + /* Generic block container ~~~~~~~~~~~~~~~ */ .g-block { @@ -878,7 +895,7 @@ button { .g-progress-bar { height: 1em; width: 100%; - margin-top: .5em; + margin: .5em 0; display: inline-block; } @@ -993,18 +1010,19 @@ div#g-action-status { } /* Superfish menu overrides ~~~~~~~~~~~~~~ */ + .sf-menu ul { - width: 12em; + width: 12em; } ul.sf-menu li li:hover ul, ul.sf-menu li li.sfHover ul { - left: 12em; + left: 12em; } ul.sf-menu li li li:hover ul, ul.sf-menu li li li.sfHover ul { - left: 12em; + left: 12em; } @@ -1018,6 +1036,7 @@ ul.sf-menu li li li.sfHover ul { } /* jQuery UI Dialog ~~~~~~~~~~~~~~~~~~~~~~ */ + .ui-widget-overlay { background: #000; opacity: .7; @@ -1037,301 +1056,3 @@ ul.sf-menu li li li.sfHover ul { #g-admin-dashboard-sidebar .ui-dialog-titlebar { padding: .2em .4em; } - -/** ******************************************************************* - * 9) Right to left styles - *********************************************************************/ -.rtl { - direction: rtl; -} - -.rtl #g-header, -.rtl #g-content, -.rtl #g-sidebar, -.rtl #g-footer, -.rtl caption, -.rtl th, -.rtl #g-dialog, -.rtl .g-context-menu li a, -.rtl .g-message-box li, -.rtl #g-site-status li { - text-align: right; -} - -.rtl .g-text-right { - text-align: left; -} - -.rtl .g-error, -.rtl .g-info, -.rtl .g-success, -.rtl .g-warning, -.rtl #g-add-photos-status .g-success, -.rtl #g-add-photos-status .g-error { - background-position: center right; - padding-right: 30px !important; -} - -.rtl form li.g-error, -.rtl form li.g-info, -.rtl form li.g-success, -.rtl form li.g-warning { - padding-right: 0 !important; -} - -.rtl .g-left, -.rtl .g-inline li, -.rtl #g-content #g-album-grid .g-item, -.rtl .sf-menu li, -.rtl .g-breadcrumbs li, -.rtl .g-paginator li, -.rtl .g-buttonset li, -.rtl .ui-icon-left .ui-icon, -.rtl .g-short-form li, -.rtl form ul ul li, -.rtl input[type="submit"], -.rtl input[type="reset"], -.rtl input.checkbox, -.rtl input[type=checkbox], -.rtl input.radio, -.rtl input[type=radio] { - float: right; -} - -.rtl .g-right, -.rtl .ui-icon-right .ui-icon { - float: left; -} - -.rtl .g-inline li { - margin-right: 1em; -} - -.rtl .g-inline li.g-first { - margin-right: 0; -} - -.rtl .g-breadcrumbs li { - background: transparent url('..images/ico-separator-rtl.gif') no-repeat scroll right center; - padding: 1em 18px 1em 8px; -} - -.rtl .g-breadcrumbs .g-first { - background: none; - padding-right: 0; -} - -.rtl input.checkbox { - margin-left: .4em; -} - -.rtl #g-add-comment { - right: inherit; - left: 0; -} - -.rtl .ui-icon-left .ui-icon { - margin-left: .2em; -} - -.rtl .ui-icon-right .ui-icon { - margin-right: .2em; -} - -/* RTL Corner radius ~~~~~~~~~~~~~~~~~~~~~~ */ -.rtl .g-buttonset .ui-corner-tl { - -moz-border-radius-topleft: 0; - -webkit-border-top-left-radius: 0; - border-top-left-radius: 0; - -moz-border-radius-topright: 5px !important; - -webkit-border-top-right-radius: 5px !important; - border-top-right-radius: 5px !important; -} - -.rtl .g-buttonset .ui-corner-tr { - -moz-border-radius-topright: 0; - -webkit-border-top-right-radius: 0; - border-top-right-radius: 0; - -moz-border-radius-topleft: 5px !important; - -webkit-border-top-left-radius: 5px !important; - border-top-left-radius: 5px !important; -} - -.rtl .g-buttonset .ui-corner-bl { - -moz-border-radius-bottomleft: 0; - -webkit-border-bottom-left-radius: 0; - border-bottom-left-radius: 0; - -moz-border-radius-bottomright: 5px !important; - -webkit-border-bottom-right-radius: 5px !important; - border-bottom-right-radius: 5px !important; -} - -.rtl .g-buttonset .ui-corner-br { - -moz-border-radius-bottomright: 0; - -webkit-border-bottom-right-radius: 0; - border-bottom-right-radius: 0; - -moz-border-radius-bottomleft: 5px !important; - -webkit-border-bottom-left-radius: 5px !important; - border-bottom-left-radius: 5px !important; -} - -.rtl .g-buttonset .ui-corner-right, -.rtl .ui-progressbar .ui-corner-right { - -moz-border-radius-topright: 0; - -webkit-border-top-right-radius: 0; - border-top-right-radius: 0; - -moz-border-radius-topleft: 5px !important; - -webkit-border-top-left-radius: 5px !important; - border-top-left-radius: 5px !important; - -moz-border-radius-bottomright: 0; - -webkit-border-bottom-right-radius: 0; - border-bottom-right-radius: 0; - -moz-border-radius-bottomleft: 5px !important; - -webkit-border-bottom-left-radius: 5px !important; - border-bottom-left-radius: 5px !important; -} - -.rtl .g-buttonset .ui-corner-left, -.rtl .ui-progressbar .ui-corner-left { - -moz-border-radius-topleft: 0; - -webkit-border-top-left-radius: 0; - border-top-left-radius: 0; - -moz-border-radius-topright: 5px !important; - -webkit-border-top-right-radius: 5px !important; - border-top-right-radius: 5px !important; - -moz-border-radius-bottomleft: 0; - -webkit-border-bottom-left-radius: 0; - border-bottom-left-radius: 0; - -moz-border-radius-bottomright: 5px !important; - -webkit-border-bottom-right-radius: 5px !important; - border-bottom-right-radius: 5px !important; -} - -/* RTL Superfish ~~~~~~~~~~~~~~~~~~~~~~~~~ */ - -.rtl .sf-menu a { - border-left: none; - border-right:1px solid #fff; -} - -.rtl .sf-menu a.sf-with-ul { - padding-left: 2.25em; - padding-right: 1em; -} - -.rtl .sf-sub-indicator { - left: .75em !important; - right: auto; - background: url('../../../lib/superfish/images/arrows-ffffff-rtl.png') no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */ -} -.rtl a > .sf-sub-indicator { /* give all except IE6 the correct values */ - top: .8em; - background-position: -10px -100px; /* use translucent arrow for modern browsers*/ -} -/* apply hovers to modern browsers */ -.rtl a:focus > .sf-sub-indicator, -.rtl a:hover > .sf-sub-indicator, -.rtl a:active > .sf-sub-indicator, -.rtl li:hover > a > .sf-sub-indicator, -.rtl li.sfHover > a > .sf-sub-indicator { - background-position: 0 -100px; /* arrow hovers for modern browsers*/ -} - -/* point right for anchors in subs */ -.rtl .sf-menu ul .sf-sub-indicator { background-position: 0 0; } -.rtl .sf-menu ul a > .sf-sub-indicator { background-position: -10px 0; } -/* apply hovers to modern browsers */ -.rtl .sf-menu ul a:focus > .sf-sub-indicator, -.rtl .sf-menu ul a:hover > .sf-sub-indicator, -.rtl .sf-menu ul a:active > .sf-sub-indicator, -.rtl .sf-menu ul li:hover > a > .sf-sub-indicator, -.rtl .sf-menu ul li.sfHover > a > .sf-sub-indicator { - background-position: 0 0; /* arrow hovers for modern browsers*/ -} - -.rtl .sf-menu li:hover ul, -.rtl .sf-menu li.sfHover ul { - right: 0; - left: auto; -} - -.rtl ul.sf-menu li li:hover ul, -.rtl ul.sf-menu li li.sfHover ul { - right: 12em; /* match ul width */ - left: auto; -} -.rtl ul.sf-menu li li li:hover ul, -.rtl ul.sf-menu li li li.sfHover ul { - right: 12em; /* match ul width */ - left: auto; -} - -/*** shadows for all but IE6 ***/ -.rtl .sf-shadow ul { - background: url('../../../lib/superfish/images/shadow.png') no-repeat bottom left; - padding: 0 0 9px 8px; - border-top-right-radius: 0; - border-bottom-left-radius: 0; - -moz-border-radius-topright: 0; - -moz-border-radius-bottomleft: 0; - -webkit-border-top-right-radius: 0; - -webkit-border-bottom-left-radius: 0; - -moz-border-radius-topleft: 17px; - -moz-border-radius-bottomright: 17px; - -webkit-border-top-left-radius: 17px; - -webkit-border-bottom-right-radius: 17px; - border-top-left-radius: 17px; - border-bottom-right-radius: 17px; -} - -/* RTL ThemeRoller ~~~~~~~~~~~~~~~~~~~~~~~~ */ - -.rtl .ui-dialog .ui-dialog-titlebar { - padding: 0.5em 1em 0.3em 0.3em; -} - -.rtl .ui-dialog .ui-dialog-title { - float: right; -} - -.rtl .ui-dialog .ui-dialog-titlebar-close { - left: 0.3em; - right: auto; -} - -.rtl #g-content #g-album-grid .g-item, -.rtl #g-site-theme, -.rtl #g-admin-theme, -.rtl .g-selected img, -.rtl .g-available .g-block img, -.rtl #g-content #g-photo-stream .g-item, -.rtl li.g-group, -.rtl #g-server-add-admin { - float: right; -} - -.rtl #g-admin-graphics .g-available .g-block { - float: right; - margin-left: 1em; - margin-right: 0em; -} - -.rtl #g-site-admin-menu { - left: auto; - right: 150px; -} - -.rtl #g-header #g-login-menu { - float: left; -} - -.rtl #g-header #g-login-menu li { - margin-left: 0; - padding-left: 0; - padding-right: 1.2em; -} - -.rtl .g-selected img, -.rtl .g-available .g-block img { - margin: 0 0 1em 1em; -} diff --git a/themes/admin_wind/theme.info b/themes/admin_wind/theme.info index 4034b64..466d8e4 100644 --- a/themes/admin_wind/theme.info +++ b/themes/admin_wind/theme.info @@ -4,3 +4,7 @@ version = 1 author = "Gallery Team" admin = 1 site = 0 +author_name = "Gallery Team" +author_url = "http://codex.gallery2.org/Gallery:Team" +info_url = "http://codex.gallery2.org/Gallery3:Themes:admin_wind" +discuss_url = "http://gallery.menalto.com/forum_theme_admin_wind" diff --git a/themes/admin_wind/views/admin.html.php b/themes/admin_wind/views/admin.html.php index 9e011c6..9a14914 100644 --- a/themes/admin_wind/views/admin.html.php +++ b/themes/admin_wind/views/admin.html.php @@ -15,6 +15,8 @@ " type="image/x-icon" /> + " /> script("jquery.js") ?> script("jquery.form.js") ?> @@ -27,6 +29,7 @@ script("gallery.ajax.js") ?> script("gallery.dialog.js") ?> script("superfish/js/superfish.js") ?> + script("jquery.scrollTo.js") ?> admin_head() ?> @@ -36,16 +39,19 @@ css("themeroller/ui.base.css") ?> css("superfish/css/superfish.css") ?> css("screen.css") ?> + + css("screen-rtl.css") ?> + - - get_combined("script") ?> - get_combined("css") ?> + + + get_combined("script") ?> body_attributes() ?>> diff --git a/themes/admin_wind/views/pager.html.php b/themes/admin_wind/views/pager.html.php deleted file mode 100644 index 5fff584..0000000 --- a/themes/admin_wind/views/pager.html.php +++ /dev/null @@ -1,44 +0,0 @@ - - -
        - $current_first_item, - "to_number" => $current_last_item, - "count" => $total_items)) ?> -
      • - - - - - - - - - - - - - - -
      • -
      • -
      • - - - - - - - - - - - - - - -
      • -
      diff --git a/themes/admin_wind/views/paginator.html.php b/themes/admin_wind/views/paginator.html.php new file mode 100644 index 0000000..b46d974 --- /dev/null +++ b/themes/admin_wind/views/paginator.html.php @@ -0,0 +1,88 @@ + + + + +
        +
      • + + + + + + + + + + + + + + + + + +
      • + +
      • + + + $first_visible_position, + "to_number" => $last_visible_position, + "count" => $total)) ?> + + $position, "total" => $total)) ?> + + +
      • + +
      • + + + + + + + + + + + + + + + + + +
      • +
      + \ No newline at end of file diff --git a/themes/wind/css/screen-rtl.css b/themes/wind/css/screen-rtl.css new file mode 100644 index 0000000..914a19d --- /dev/null +++ b/themes/wind/css/screen-rtl.css @@ -0,0 +1,334 @@ +/** + * Gallery 3 Wind Theme Right-to-Left Screen Styles + */ + +.rtl { + direction: rtl; +} + +#g-header, +#g-content, +#g-sidebar, +#g-footer, +caption, +th, +#g-dialog, +.g-context-menu li a, +.g-message-box li, +#g-site-status li { + text-align: right; +} + +.g-text-right { + text-align: left; +} + +/* Lists ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +.g-text li, +.g-text li { + margin-left: 0; + margin-right: 1em; +} + +/* Messages ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +.g-error, +.g-info, +.g-success, +.g-warning, +#g-add-photos-status .g-success, +#g-add-photos-status .g-error { + background-position: center right; + padding-right: 30px !important; +} + +form li.g-error, +form li.g-info, +form li.g-success, +form li.g-warning { + padding-right: 0 !important; +} + +.g-left, +.g-inline li, +#g-content #g-album-grid .g-item, +.sf-menu li, +.g-breadcrumbs li, +.g-paginator li, +.g-buttonset li, +.ui-icon-left .ui-icon, +.g-short-form li, +form ul ul li, +input[type="submit"], +input[type="reset"], +input.checkbox, +input[type=checkbox], +input.radio, +input[type=radio] { + float: right; +} + +.g-right, +.ui-icon-right .ui-icon { + float: left; +} + +.g-inline li { + margin-right: 1em; +} + +.g-inline li.g-first { + margin-right: 0; +} + +.g-breadcrumbs li { + background: transparent url('../images/ico-separator-rtl.gif') no-repeat scroll right center; + padding: 1em 18px 1em 8px; +} + +.g-breadcrumbs .g-first { + background: none; + padding-right: 0; +} + +input.checkbox { + margin-left: .4em; +} + +#g-add-comment { + right: inherit; + left: 0; +} + +.ui-icon-left .ui-icon { + margin-left: .2em; +} + +.ui-icon-right .ui-icon { + margin-right: .2em; +} + +/* RTL Corner radius ~~~~~~~~~~~~~~~~~~~~~~ */ + +.g-buttonset .ui-corner-tl { + -moz-border-radius-topleft: 0; + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -moz-border-radius-topright: 5px !important; + -webkit-border-top-right-radius: 5px !important; + border-top-right-radius: 5px !important; +} + +.g-buttonset .ui-corner-tr { + -moz-border-radius-topright: 0; + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; + -moz-border-radius-topleft: 5px !important; + -webkit-border-top-left-radius: 5px !important; + border-top-left-radius: 5px !important; +} + +.g-buttonset .ui-corner-bl { + -moz-border-radius-bottomleft: 0; + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-bottomright: 5px !important; + -webkit-border-bottom-right-radius: 5px !important; + border-bottom-right-radius: 5px !important; +} + +.g-buttonset .ui-corner-br { + -moz-border-radius-bottomright: 0; + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-bottomleft: 5px !important; + -webkit-border-bottom-left-radius: 5px !important; + border-bottom-left-radius: 5px !important; +} + +.g-buttonset .ui-corner-right, +.ui-progressbar .ui-corner-right { + -moz-border-radius-topright: 0; + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; + -moz-border-radius-topleft: 5px !important; + -webkit-border-top-left-radius: 5px !important; + border-top-left-radius: 5px !important; + -moz-border-radius-bottomright: 0; + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-bottomleft: 5px !important; + -webkit-border-bottom-left-radius: 5px !important; + border-bottom-left-radius: 5px !important; +} + +.g-buttonset .ui-corner-left, +.ui-progressbar .ui-corner-left { + -moz-border-radius-topleft: 0; + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -moz-border-radius-topright: 5px !important; + -webkit-border-top-right-radius: 5px !important; + border-top-right-radius: 5px !important; + -moz-border-radius-bottomleft: 0; + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-bottomright: 5px !important; + -webkit-border-bottom-right-radius: 5px !important; + border-bottom-right-radius: 5px !important; +} + +/* RTL Superfish ~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +.sf-menu a { + border-left: none; + border-right:1px solid #fff; +} + +.sf-menu a.sf-with-ul { + padding-left: 2.25em; + padding-right: 1em; +} + +.sf-sub-indicator { + left: .75em !important; + right: auto; + background: url('../../../lib/superfish/images/arrows-ffffff-rtl.png') no-repeat -10px -100px; +} + +a > .sf-sub-indicator { + top: .8em; + background-position: -10px -100px; +} + +a:focus > .sf-sub-indicator, +a:hover > .sf-sub-indicator, +a:active > .sf-sub-indicator, +li:hover > a > .sf-sub-indicator, +li.sfHover > a > .sf-sub-indicator { + background-position: 0 -100px; +} + +.sf-menu ul .sf-sub-indicator { + background-position: 0 0; +} + +.sf-menu ul a > .sf-sub-indicator { + background-position: -10px 0; +} + +.sf-menu ul a:focus > .sf-sub-indicator, +.sf-menu ul a:hover > .sf-sub-indicator, +.sf-menu ul a:active > .sf-sub-indicator, +.sf-menu ul li:hover > a > .sf-sub-indicator, +.sf-menu ul li.sfHover > a > .sf-sub-indicator { + background-position: 0 0; +} + +.sf-menu li:hover ul, +.sf-menu li.sfHover ul { + right: 0; + left: auto; +} + +ul.sf-menu li li:hover ul, +ul.sf-menu li li.sfHover ul { + right: 12em; + left: auto; +} +ul.sf-menu li li li:hover ul, +ul.sf-menu li li li.sfHover ul { + right: 12em; + left: auto; +} + +.sf-shadow ul { + background: url('../../../lib/superfish/images/shadow.png') no-repeat bottom left; + padding: 0 0 9px 8px; + border-top-right-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-topright: 0; + -moz-border-radius-bottomleft: 0; + -webkit-border-top-right-radius: 0; + -webkit-border-bottom-left-radius: 0; + -moz-border-radius-topleft: 17px; + -moz-border-radius-bottomright: 17px; + -webkit-border-top-left-radius: 17px; + -webkit-border-bottom-right-radius: 17px; + border-top-left-radius: 17px; + border-bottom-right-radius: 17px; +} + +/* RTL ThemeRoller ~~~~~~~~~~~~~~~~~~~~~~~~ */ + +.ui-dialog .ui-dialog-titlebar { + padding: 0.5em 1em 0.3em 0.3em; +} + +.ui-dialog .ui-dialog-title { + float: right; +} + +.ui-dialog .ui-dialog-titlebar-close { + left: 0.3em; + right: auto; +} + + +/* RTL paginator ~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +.g-paginator .g-info { + width: 35%; +} + +.g-paginator .g-text-right { + margin-left: 0; +} + +.g-paginator .ui-icon-seek-end { + background-position: -80px -160px; +} + +.g-paginator .ui-icon-seek-next { + background-position: -48px -160px; +} + +.g-paginator .ui-icon-seek-prev { + background-position: -32px -160px; +} + +.g-paginator .ui-icon-seek-first { + background-position: -64px -160px; +} + +#g-header #g-login-menu, +#g-header #g-quick-search-form { + clear: left; + float: left; +} + +#g-header #g-login-menu li { + margin-left: 0; + padding-left: 0; + padding-right: 1.2em; +} + +#g-site-menu { + left: auto; + right: 150px; +} + +#g-view-menu #g-slideshow-link { + background-image: url('../images/ico-view-slideshow-rtl.png'); +} + +#g-sidebar .g-block-content { + padding-right: 1em; + padding-left: 0; +} + +#g-footer #g-credits li { + padding-left: 1.2em !important; + padding-right: 0; +} diff --git a/themes/wind/css/screen.css b/themes/wind/css/screen.css index a49b8c2..d3e0f83 100644 --- a/themes/wind/css/screen.css +++ b/themes/wind/css/screen.css @@ -12,7 +12,6 @@ * 6) Positioning and order * 7) Navigation and menus * 8) jQuery and jQuery UI - * 9) Right-to-left language styles */ /** ******************************************************************* @@ -106,12 +105,30 @@ a:hover, } #g-dialog #g-action-status li { - width: 400px; + width: 434px; white-space: normal; padding-left: 32px; } +/* Lists ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +ul.g-text li, +.g-text ul li { + list-style-type: disc; +} + +ol.g-text li, +.g-text ol li { + list-style-type: decimal; +} + +.g-text li, +.g-text li { + margin-left: 1em; +} + /* Forms ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + form { margin: 0; } @@ -302,6 +319,7 @@ td { } /* Text ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + .g-text-small { font-size: .8em; } @@ -332,6 +350,7 @@ td { *********************************************************************/ /* Dimension and scale ~~~~~~~~~~~~~~~~~~~ */ + .g-one-quarter { width: 25%; } @@ -523,7 +542,8 @@ td { background-color: #fff; } -/* Permissions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ +/* Permissions ~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + #g-edit-permissions-form td { background-image: none; } @@ -635,11 +655,11 @@ tr.g-error td.g-error, } tr.g-success { - background-image: none; + background-image: none; } tr.g-success td.g-success { - background-image: url('../images/ico-success.png'); + background-image: url('../images/ico-success.png'); } .g-warning, @@ -823,6 +843,7 @@ form .g-error { /** ******************************************************************* * 8) jQuery and jQuery UI *********************************************************************/ + /* Generic block container ~~~~~~~~~~~~~~~ */ .g-block { @@ -834,18 +855,19 @@ form .g-error { } /* Superfish menu overrides ~~~~~~~~~~~~~~ */ + .sf-menu ul { - width: 12em; + width: 12em; } ul.sf-menu li li:hover ul, ul.sf-menu li li.sfHover ul { - left: 12em; + left: 12em; } ul.sf-menu li li li:hover ul, ul.sf-menu li li li.sfHover ul { - left: 12em; + left: 12em; } .sf-menu li li, @@ -922,7 +944,7 @@ button { .g-progress-bar { height: 1em; width: 100%; - margin-top: .5em; + margin: .5em 0; display: inline-block; } @@ -1037,326 +1059,7 @@ div#g-action-status { } /* Autocomplete ~~~~~~~~~~ */ + .ac_loading { background: white url('../images/loading-small.gif') right center no-repeat !important; } - -/** ******************************************************************* - * 9) Right to left language styles - *********************************************************************/ - -.rtl { - direction: rtl; -} - -.rtl #g-header, -.rtl #g-content, -.rtl #g-sidebar, -.rtl #g-footer, -.rtl caption, -.rtl th, -.rtl #g-dialog, -.rtl .g-context-menu li a, -.rtl .g-message-box li, -.rtl #g-site-status li { - text-align: right; -} - -.rtl .g-text-right { - text-align: left; -} - -.rtl .g-error, -.rtl .g-info, -.rtl .g-success, -.rtl .g-warning, -.rtl #g-add-photos-status .g-success, -.rtl #g-add-photos-status .g-error { - background-position: center right; - padding-right: 30px !important; -} - -.rtl form li.g-error, -.rtl form li.g-info, -.rtl form li.g-success, -.rtl form li.g-warning { - padding-right: 0 !important; -} - -.rtl .g-left, -.rtl .g-inline li, -.rtl #g-content #g-album-grid .g-item, -.rtl .sf-menu li, -.rtl .g-breadcrumbs li, -.rtl .g-paginator li, -.rtl .g-buttonset li, -.rtl .ui-icon-left .ui-icon, -.rtl .g-short-form li, -.rtl form ul ul li, -.rtl input[type="submit"], -.rtl input[type="reset"], -.rtl input.checkbox, -.rtl input[type=checkbox], -.rtl input.radio, -.rtl input[type=radio] { - float: right; -} - -.rtl .g-right, -.rtl .ui-icon-right .ui-icon { - float: left; -} - -.rtl .g-inline li { - margin-right: 1em; -} - -.rtl .g-inline li.g-first { - margin-right: 0; -} - -.rtl .g-breadcrumbs li { - background: transparent url('../images/ico-separator-rtl.gif') no-repeat scroll right center; - padding: 1em 18px 1em 8px; -} - -.rtl .g-breadcrumbs .g-first { - background: none; - padding-right: 0; -} - -.rtl input.checkbox { - margin-left: .4em; -} - -.rtl #g-add-comment { - right: inherit; - left: 0; -} - -.rtl .ui-icon-left .ui-icon { - margin-left: .2em; -} - -.rtl .ui-icon-right .ui-icon { - margin-right: .2em; -} - -/* RTL Corner radius ~~~~~~~~~~~~~~~~~~~~~~ */ -.rtl .g-buttonset .ui-corner-tl { - -moz-border-radius-topleft: 0; - -webkit-border-top-left-radius: 0; - border-top-left-radius: 0; - -moz-border-radius-topright: 5px !important; - -webkit-border-top-right-radius: 5px !important; - border-top-right-radius: 5px !important; -} - -.rtl .g-buttonset .ui-corner-tr { - -moz-border-radius-topright: 0; - -webkit-border-top-right-radius: 0; - border-top-right-radius: 0; - -moz-border-radius-topleft: 5px !important; - -webkit-border-top-left-radius: 5px !important; - border-top-left-radius: 5px !important; -} - -.rtl .g-buttonset .ui-corner-bl { - -moz-border-radius-bottomleft: 0; - -webkit-border-bottom-left-radius: 0; - border-bottom-left-radius: 0; - -moz-border-radius-bottomright: 5px !important; - -webkit-border-bottom-right-radius: 5px !important; - border-bottom-right-radius: 5px !important; -} - -.rtl .g-buttonset .ui-corner-br { - -moz-border-radius-bottomright: 0; - -webkit-border-bottom-right-radius: 0; - border-bottom-right-radius: 0; - -moz-border-radius-bottomleft: 5px !important; - -webkit-border-bottom-left-radius: 5px !important; - border-bottom-left-radius: 5px !important; -} - -.rtl .g-buttonset .ui-corner-right, -.rtl .ui-progressbar .ui-corner-right { - -moz-border-radius-topright: 0; - -webkit-border-top-right-radius: 0; - border-top-right-radius: 0; - -moz-border-radius-topleft: 5px !important; - -webkit-border-top-left-radius: 5px !important; - border-top-left-radius: 5px !important; - -moz-border-radius-bottomright: 0; - -webkit-border-bottom-right-radius: 0; - border-bottom-right-radius: 0; - -moz-border-radius-bottomleft: 5px !important; - -webkit-border-bottom-left-radius: 5px !important; - border-bottom-left-radius: 5px !important; -} - -.rtl .g-buttonset .ui-corner-left, -.rtl .ui-progressbar .ui-corner-left { - -moz-border-radius-topleft: 0; - -webkit-border-top-left-radius: 0; - border-top-left-radius: 0; - -moz-border-radius-topright: 5px !important; - -webkit-border-top-right-radius: 5px !important; - border-top-right-radius: 5px !important; - -moz-border-radius-bottomleft: 0; - -webkit-border-bottom-left-radius: 0; - border-bottom-left-radius: 0; - -moz-border-radius-bottomright: 5px !important; - -webkit-border-bottom-right-radius: 5px !important; - border-bottom-right-radius: 5px !important; -} - -/* RTL Superfish ~~~~~~~~~~~~~~~~~~~~~~~~~ */ - -.rtl .sf-menu a { - border-left: none; - border-right:1px solid #fff; -} - -.rtl .sf-menu a.sf-with-ul { - padding-left: 2.25em; - padding-right: 1em; -} - -.rtl .sf-sub-indicator { - left: .75em !important; - right: auto; - background: url('../../../lib/superfish/images/arrows-ffffff-rtl.png') no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */ -} -.rtl a > .sf-sub-indicator { /* give all except IE6 the correct values */ - top: .8em; - background-position: -10px -100px; /* use translucent arrow for modern browsers*/ -} -/* apply hovers to modern browsers */ -.rtl a:focus > .sf-sub-indicator, -.rtl a:hover > .sf-sub-indicator, -.rtl a:active > .sf-sub-indicator, -.rtl li:hover > a > .sf-sub-indicator, -.rtl li.sfHover > a > .sf-sub-indicator { - background-position: 0 -100px; /* arrow hovers for modern browsers*/ -} - -/* point right for anchors in subs */ -.rtl .sf-menu ul .sf-sub-indicator { background-position: 0 0; } -.rtl .sf-menu ul a > .sf-sub-indicator { background-position: -10px 0; } -/* apply hovers to modern browsers */ -.rtl .sf-menu ul a:focus > .sf-sub-indicator, -.rtl .sf-menu ul a:hover > .sf-sub-indicator, -.rtl .sf-menu ul a:active > .sf-sub-indicator, -.rtl .sf-menu ul li:hover > a > .sf-sub-indicator, -.rtl .sf-menu ul li.sfHover > a > .sf-sub-indicator { - background-position: 0 0; /* arrow hovers for modern browsers*/ -} - -.rtl .sf-menu li:hover ul, -.rtl .sf-menu li.sfHover ul { - right: 0; - left: auto; -} - -.rtl ul.sf-menu li li:hover ul, -.rtl ul.sf-menu li li.sfHover ul { - right: 12em; /* match ul width */ - left: auto; -} -.rtl ul.sf-menu li li li:hover ul, -.rtl ul.sf-menu li li li.sfHover ul { - right: 12em; /* match ul width */ - left: auto; -} - -/*** shadows for all but IE6 ***/ -.rtl .sf-shadow ul { - background: url('../../../lib/superfish/images/shadow.png') no-repeat bottom left; - padding: 0 0 9px 8px; - border-top-right-radius: 0; - border-bottom-left-radius: 0; - -moz-border-radius-topright: 0; - -moz-border-radius-bottomleft: 0; - -webkit-border-top-right-radius: 0; - -webkit-border-bottom-left-radius: 0; - -moz-border-radius-topleft: 17px; - -moz-border-radius-bottomright: 17px; - -webkit-border-top-left-radius: 17px; - -webkit-border-bottom-right-radius: 17px; - border-top-left-radius: 17px; - border-bottom-right-radius: 17px; -} - -/* RTL ThemeRoller ~~~~~~~~~~~~~~~~~~~~~~~~ */ - -.rtl .ui-dialog .ui-dialog-titlebar { - padding: 0.5em 1em 0.3em 0.3em; -} - -.rtl .ui-dialog .ui-dialog-title { - float: right; -} - -.rtl .ui-dialog .ui-dialog-titlebar-close { - left: 0.3em; - right: auto; -} - - -/* RTL paginator ~~~~~~~~~~~~~~~~~~~~~~~~~~ */ - -.rtl .g-paginator .g-info { - width: 35%; -} - -.rtl .g-paginator .g-text-right { - margin-left: 0; -} - -.rtl .g-paginator .ui-icon-seek-end { - background-position: -80px -160px; -} - -.rtl .g-paginator .ui-icon-seek-next { - background-position: -48px -160px; -} - -.rtl .g-paginator .ui-icon-seek-prev { - background-position: -32px -160px; -} - -.rtl .g-paginator .ui-icon-seek-first { - background-position: -64px -160px; -} - -.rtl #g-header #g-login-menu, -.rtl #g-header #g-quick-search-form { - clear: left; - float: left; -} - -.rtl #g-header #g-login-menu li { - margin-left: 0; - padding-left: 0; - padding-right: 1.2em; -} - -.rtl #g-site-menu { - left: auto; - right: 150px; -} - -.rtl #g-view-menu #g-slideshow-link { - background-image: url('../images/ico-view-slideshow-rtl.png'); -} - -.rtl #g-sidebar .g-block-content { - padding-right: 1em; - padding-left: 0; -} - -.rtl #g-footer #g-credits li { - padding-left: 1.2em !important; - padding-right: 0; -} diff --git a/themes/wind/js/ui.init.js b/themes/wind/js/ui.init.js index 2c67bf3..3ee3e32 100644 --- a/themes/wind/js/ui.init.js +++ b/themes/wind/js/ui.init.js @@ -82,7 +82,7 @@ $(document).ready(function() { } else { var sib_height = $(this).prev().height(); } - if ($.browser.msie && $.browser.version >= 8) { + if ($.browser.msie && $.browser.version <= 8) { sib_height = sib_height + 1; } $(this).css("height", sib_height); diff --git a/themes/wind/theme.info b/themes/wind/theme.info index 17ea7c2..e0be78b 100644 --- a/themes/wind/theme.info +++ b/themes/wind/theme.info @@ -4,3 +4,7 @@ version = 1 author = "Gallery Team" site = 1 admin = 0 +author_name = "Gallery Team" +author_url = "http://codex.gallery2.org/Gallery:Team" +info_url = "http://codex.gallery2.org/Gallery3:Themes:wind" +discuss_url = "http://gallery.menalto.com/forum_theme_wind" diff --git a/themes/wind/views/page.html.php b/themes/wind/views/page.html.php index 0e5bdf6..045e3c4 100644 --- a/themes/wind/views/page.html.php +++ b/themes/wind/views/page.html.php @@ -21,7 +21,8 @@ " type="image/x-icon" /> - + " /> page_type == "collection"): ?> @@ -66,16 +67,19 @@ css("superfish/css/superfish.css") ?> css("themeroller/ui.base.css") ?> css("screen.css") ?> + + css("screen-rtl.css") ?> + - - get_combined("script") ?> - get_combined("css") ?> + + + get_combined("script") ?> body_attributes() ?>>

-
- -
+ +