From 6d98a594130a56a3dc8ee4586bf27eec7be87520 Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 22 May 2013 17:19:35 -0700 Subject: [PATCH 01/18] update buglink - shutting down bugs.friendica.com --- buglink.tgz | Bin 1807 -> 1825 bytes buglink/buglink.php | 2 +- retriever.tgz | Bin 11615 -> 11532 bytes statusnet.tgz | Bin 34814 -> 34767 bytes webrtc.tgz | Bin 1822 -> 1833 bytes 5 files changed, 1 insertion(+), 1 deletion(-) diff --git a/buglink.tgz b/buglink.tgz index a6426b8caf057a50d0df097f12b419235ef1bc89..6ba4e37d869dc79cbca021eb883a0ac566af7400 100755 GIT binary patch delta 1808 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 gH@M&D;Nalk;Nalk;Nalk;5az=AAqoc@BnxK04' . t('Report Bug') . ''; } +function buglink_active(&$a,&$b) { $b .= '
' . t('Report Bug') . '
'; } diff --git a/retriever.tgz b/retriever.tgz index cd87d58a4aba4b873e11b06d2f89d29d39fa4e6a..8e5a03f0f6c1f243e9e8db3ced49cfbcf8ae43b6 100644 GIT binary patch literal 11532 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 literal 11615 zcmV-lEuhjLiwFS1@O@DL1MEF(ciXm-`MUWPh>lZ|iEPPE>|~uPjS?%Vw|?Z^-b9S&5bSC|Mu5K!~FRd-~V?7op`rWsCJ+k|r931vZ@3-CK{xLbt zcw-o)K0PJ&L&86&-uRSwL1M43J0uNa?;@aMHuT`r-X7_G>K_hw4*>Lj@1WnzMy2X7 z**k9@g+bzulGXZN$fl=cO2=M0P3TQh?(*?ycfWh|JNc#eJFyW}Cu_n-91WZOPis*z zu+?AALx=PZKI|U!I{UY~$K8Fh(|h0jwAUx^e(oL}_xhbQIe$ss9q#P`HQA5hnHRiz z_;4}$dI_E0pS}oXHI2Mea^*&&i5uB3+ii!T*nQXU9T7m3xbevIB&PfqqH3Tt2bZDJ zHlZTPV70B9ja+8w0)5MJAk%AM1hPxV3SfZ`Os8z-v?u56+1K{{PU^2cQcHId>j;_Plr z^Ux^&bN!!vTboU0UscD{>i_lj`io~++y<%jYp9;OS~}HChtSv53flwp=3s*sq1^eB?-^T(eZJsn}kzx zj-yc|#>5TAB%(9l9Z@zQPN!3l73A7WChWm^>icBGXIjIlex*^&rfIKj;O}mlOu}fJ z?7Io{zb3t#Fd#opl4Q2sYE9i_jlzSq0Puee-CGYIo~OYG5haR}4PdK%-*(9Vva=P@ z3olNfVG@Rywl(w93ojVPGy$b?5nD}Sx#Mvdv?`7WcF2M2qn%d^%rTsWadN+jIEaeb zpb1pKG)(BSljI{AtcnSQk{iw@VG<6fG)R}6#{i&WrYH=Sg^fc18Uwcyk0x~Lk`6id zd^)_K$xyIcY>&MN8OI(DS=-QAvkK0TL}|s1A^<>dW_~!Pw)G0;6L3Y3^AOb0XhLk( z)s10@WHtr>hyMYMqWc$t8-Lt5?(Oy7^|^w6e{{GHmJZ-}?p>UcfBf7#>VfKV!R*=F z{iUa_^YLS=Apm;k#2$qysGXI_A%FcvY_U)PV&_AUPUEvHe#9(?bUI)Ht*u*55n0(i z2J~P(?yW7RF(7^X>FsgN>m-N$#WYJ!0i5oVbY7E{tMZ)M{-yZ_%GJw7VoQfS9ygk3 z99+4+y>jU&D`fCsyg;#iGO*y6iYM!FHL$#?dqHCh7h}OD7CQhky9dX;qdwU^=pPy! zxzn(nkE^afu6Ac8Hd4;1|vKw zKs0rgIjsTF9iSQ*d3R!pFB#V_!RH&6x`Tj0cMt7OZb=($=bfX&k7!PP+CNY_oZbtI zXA5G%J;VLOo!$4pXE-e3=t*-@Jx7bIS(|Y&i(Q}WPLz4R6lJONUR=;f!AW{f+qpAEEV9O}C^S#tyG25OO!#v0 zM#RZFX_CFe4nG*;zdWq| zrL2>Is92>JjQn&=>sFaV&s1@|+tn2n!rm~QoI zqhOaK?<@uXx-f2I-Z-$8Q*F$%lL|t9xgU9%VuJ$=j$r`iv~3Zq8H6lg^Cw-6XYPpF zZ$_Z8W2Xsi_y=fDtdpk>{Q5Wb=bTu!Tz-zkqWPH@KgvMC9;JzXtY0lA1u!CWMJvPr zy}6$l$btWzT4cT5CSFWj5_ls@VmF{9NT+8oJt6z@24vyCmM284Q5qiXvB_|B&S`KwPz78S&SEgW$g5U*&2p{P4{6i4m+! z2IXy-zCnUz`icKtZ(36?K#k(m>k#~iA?-ViX<9(hXsH2X_jd9A8%y>F_}7$PE;V2Z z+&;0KLZ%H#Is{`Pjmrii7@=U$dTfiqP9{GRnX)SFih~`VJ}tyPfG=5gq||w^;++iI zii^DhqCctWtGeS1!{IEACw6H8Mp{_5TItc@3eaPkuY0gV`n&tR<9>JlV|QoA#x|~a z8A=XWGeT@KATpBz&>aNVRKlqa5Q{~Fl@Mi-qxo6jK?iX#$ZFMLz>(vyI114|<%EsNAqQ&Gi?X$N>xw`b45WxAY`C#(phWz$NsVPs2>f0?%C=~L5$ zci&_V<9gzOpwp>AUX!*wyR9c=57ZJnqP#JgxCtB%O0HcGRVRUQ0Xz-U3tqV)mqsRT z%rSjJGNu6S(MP?J#wi$Jx6o%cqd^P`WQ1EsuBmlJ;TM2(<4ZawNho0;l3_ffApfr@ z426;SSDKWgi5px{fWMod_yDEk`f(^GkTAw6=&cY3fzl)Y4A02;7S{l)i^C}el@?sA zVYP^X_scxL#_VX=Y5AZ@iWJW};17Ou%24z{>TfjT#lg}c=cz4VQFg@i9{JJiR3cv- zm$zxBII9ITOrzFzb~N0Jt)|g=Nojd3du)~h_2(GR@S~Ne6d^BYoi9@N)STIsjF}Bm zuuL~YQlGg%vc2F*X{WQWeoO=un|TNvzZHOpl@_|rkKPxlwhbCYaoiX(tPaZ?D_)#F zGk$P$!N8$L*<@UlSV|FJeK~ht1e=nhT$q8QkBP43mXH&rLke4BuW+zAce7Lgf0$}6 zv$jX~+#V^3ah)ckp=RmK7BP}1&75>@wUidO1l4lbOhOMcQIZ{#A^1QVBM9O(^AiV# zTd_c)9OU3>O%~)(rQy0bhOB5t6CAqS$cTh%ROVCMqX`{dO8qHT!nZ$@BWAyfdo*IR zwX&8<(UDD261#cJj|2%ZJpT07=7r2y)6+ZpwY!H)@AZChWOnavvt~2$N`$)ko{{~- zgZ|HK!g`&_q&@72h6v;2z25siIsAml(*HW#Juu;UctC6om?D}D8q6CzCB>;UqHi0d zzTe1QkQz1chi#eZ$j~ovo0V5SWzn-*Mo~>c@l8&xONOlLHan*IfPs~H9&n7Gl6B3Y zum~m}r!z3zlH5KMl0bqeih%ri8u@C%w)ghahn&3(k;lyHUIX)+{a8XIkO{5D6#Y1CBAvYebUz>8IRO?fYa|E!UO!u=G1SMjSvj^-T77iDE8 z;1x-kF}3LsXi8Ov$-Hrs6+L2tfe9hpTQKLdlQG{dW%2LKB~>ld$73elPSe~BQ157U-a>q+FAVyO^iA`32ai%rW zAlDNbkeFi88%8%Wmth6y!K=wvMjkTj@*FacFLXm$Yhf~do}HsZ+0H#t9U3!OKoc)! zw3tr$e7{?tvlwKkbiKjgx6WWLe+b?3Wh-YYCluIe&7mzJ}Yk zh|9O2yJu$kTC1m$#ml2qHZK|F3-dT(h z2DjoAIKZR0;>A^yhSQ*d=5+(iY|6|eG{QTi5eAKVp~$Rk0~BLH@d}>D4qojs=ua#3ZbrTa_%nGtu*erO>|9~}6#0@glv`1%W2$Bw&pRm$@_-i=n`GmZ1{)9!JEa#+QTCrwC+;u_38oV*(zKz5Ld^*;m zm|JDM`QKIxtBS5=sp}aUrY_Zl(O)6Z{z$!uf+vDL zkhta4nj}+yv} z@3OGd$%T#-&80Y+L1w=y?97`tZ@7j*VW*pcBHxG`kj=ol$Y0XN5nP6q1{64pXUTAW zV8qLGmOZsCg&$3o<=NY8#^DIliu9W79PaOgqZE&vZLP1haTu5Fik1OcJ`3Y=(h&OM z?pr9pHUA4gZ*ZQ~*M8`Zf9~(^+2y^g^F_0!_n}lgHOFS)(y>ew1bD^}S*e$G zVvfxXS^)dRDwWnKL1F}=RC>^{CrUw-T94CGrnKN;icOQT4_qR?kp&O!6^4GTPyKf& z?eTw3$>)?VrLmBSzktdv28^Y@u&!I?xsNi$t9Xsp=Yco9_}sAv{C?_<{POt(JeQxG z&x6k`>~PZZ;%P(1NE^7GhT_7kOZFDOHx`_CsYy1pN#q>EDUB{@<|C~So~eTd>nEBa zppkAH+?6!ov0LG*OK*#x3)bsfJE*zKBv*%C6G}+UWs>@z#Y?s7D11{Ms!7LT{>=OC z-f_?HYPLn9#+5JpP_4i$*<`*7zgTox9Z|e!Yj9nJjFH8jQeetcurPS(XH>Y%rgWq@ zVGj$5FiQlxIO9BVYDyIg0WNkeSo5c>B?DfCy9m}D!&~a8nn;&Cdh+^7M}|`5!lmFX z>mm~|x0g6dDu%4xc&J#D#4Zcv$_Lmec_KCk;#Wd{JQVrBJnteNXlf;UiXG(~Kan=s zChNK4R>e2F-9vu(0nWEN&!h50b2Ph|n(P`5A|U~v`|gG2VdhA)^aMyeFSrUXaa0f{ z-nj?Hf!#pu#;)ZynkHkwsm@}Um8X(n#i;b6+Oy1#If2Ucl=JjyB~ZPnat0RQFiHd4 z;@5o}(y^8lLa!Prlaa}oC9aYyOI2qq9crkCtGyvWJyFV(z`-TMaGO{Gcs^FCw7IID zInSpsBWuxc#vIRG|Mgb}u5RFsHqN}V+Mra8)~iadXRj@- zyep|v(C}6WGlRzom@)jmy`=pQ_T1d+pw z+pPcV1HDlsneCWb znFcU5lngoJ@Wp!NtYT^`-?=Gw%EMDkm4Lo9lcapA=JgYY)!404#LiiV=#}-6x>TmV zk>*u7uae-p^Z1@rCn<8g;8bqi&i zgr!nz;OJ%-(;s}GNqsD`>inh&n~z&c-*44ulJR6nReXt6R5Gl1^(E)6MVH5;{8@_4 zWOA^Z@S3ZV;l-kIK`De#=U-@1dN^ZQ0ja{H0GtIJ#YD|w7+Kxl0=P~`>sVi{ujc?% zV0CfmqU+o&2BxJa&4_TfyFE+!(#G(%sZHkU^os$eC{%p_smNj~|X) zf0)L=i$znxU44y7E)HH4H*`qj$Jy(TJ_Y_p4hBSiY|UObs*Xv<1^~>BF0KaaqJU&V z{aNu9(fF_L6fb0n*F8apMA-VAh;%E`qhnx3c&NR92p^AP+Ee zl-R$d(Rpq7cQjc0VCC{e9>@-(T3G-n$!t7@SF*55LQ?G1dCBq?Qf^+Vyk`IO#9^K; zT;O$==8v_)-*Ln9l|}-{_t>=<#+EtpId2w5ZaxY7S}uyMVLS7`6jQ$Fl#gf@7^L}s z?Hy}#+s4sfi(hfUcudLWLn39#aYVL?tt86$HImXa<90F-0g{M7f(1ay9EJbA`?wcK zkP<0XOf#hE8;pE0a4`j3NJ-+@p(Xnxyj*s4;mJrkH|E)$$X7?h>#%WQ8(%Y{ zoNhNHkU46sx&LVPgw#%`>Nkc$kj&I7g|{Ijuk>@B7TpA~8Bnk2!WOy52k1!as*r~ckDKwqr!RE$nZRxrPW^Nnuy%u_29Ur0I-JFP(o%3~bE8S(r(kX~m1?oVX3cdxwAO`A_Tp`@a(CV^wXUGIQL}{ysAglKD!bw;O0s%t;_i@(4*(( z{m;|@yN249f~W}N`?4e*K1y&m_v<_+cL_+Fe_>?n8I!|~C0{(znQ!&_-*s<(m7lQ) zh725^pa?XcO+8o3LcP|_=7Rsu#U`tFB;~`&TX{_KZ{~PW#0;2L7B={W;a62knpzNq zmB)XBBuaDdvC#BCd#d^VsX`{dSQW=-*7+PJ;d zdSwU7!NJQX&6j%z&F0>dotOK~{k>iKF3XeM=5FidertcP*?h9IyLWJ~_e8vWXhe$2 zB+X#YE1tk|?1#x!I9gI~+<&>h`|8!J$H3_kOVRvWH;5mk51ior{k>)L-)!yd&dvY9 z?tbfu*m;oNZz=!h^M7;m+!4?JboA5t$M;9)CvT44z57LcfBfP2^yvKftvEk^{|TS5 z#yW35QjYrLw@!iS0!U>+$K&rzhv<#~+{-{5P99 zhkyPujKmc`+1GY=>pQN#o!xfnuDSc?j&t}Wjb5kv#;brvqx3a=Y`cRj8^3NeuCK4_ z*R6V-^c%ZhfBkjiZ)fis=PHcF&G*njV~#*-4Njgf(DA_GTib49d5xPJwRf4#01(Pk zs@ILj(~cC*^nu(EHNAE~DMUdxYr7*n=-K}LFV9^ugdf{3Z`80)YTK}(@ox&qa;%mC zeS8FOZa_n-{nBiucet=8d|8 zIH_e`Kdr^R8eXlaO;TXd8eJ2|u9gk-dE+l>(*2CGBui_E=T^O1sbg}KrBkI{6ar&% z+AaWab5qBN#XUV|DuWA~ol^flMtLOtKWKK$p7Rs!z{C&0W`_;c zIP_2)@6D9-PszQXf=tc?sF5HUXQ`OR6Pdj#n&N&OBXUpA&IHA{F^4-7r20}G(CZjBYWp@qpI+#|8enjgohQac%z5`Yn`C-?i zVDxS>xuB6^3L$!^*6GJFP~Hzbo;3|zV9HMM?&t$QU3dZ1xQy`XmH__2JZK7?wC7H_im{TBK!~kJ zA_D|aOD>6+)^Co`RL{tls_4gj&=?5!4ZDC-m*oNs!=d*%fC>rK=2b8f-3Tv5#yl85 ziN`fu^#Wb->Z^1o*PSymm4vHNb+JDbbFy2D3DgtJXxiqNws7USjhn9p17vR)%eW9| zi1IDX3AikFjHe3aRKpr40h_7yI$sZY7G>W+ML`(0U62=}niS6N zvwo)B=2&ge#1HR*mA*yMBi_b+{M_L0R>g4G7hp&Ov%52 zGzx<86z61!FAY!e`-k`%g?)Mj3k(-i5*QEWAV#ORn4%&}e31MXe59U|G=;|9gaDG~ z5!!|csDvNGp@#6j`_cD@9=_k2dXtDmRX7^OUDQzA%8&cvY&7ZhqTn(d$xR%{91Vlc zOGF07{Ge_PwPBCdrg;O1uK$F8fce3>!MR3NkkNZ6Qj6ngkO3v@84i<-#qx(Z$;nS4 zvbzy5Es{>+^eg<*o4&(>}qQB_TK__Ti3SBWW7 z-K1j&n9G64g-W_gA5r^d$9*DHlBz69TG`gs9^d#R1 z^m0QKTc{rVu-AhH2$&M!AhkJI2lhK^J^3gsDSK|p%L;i@Ee+3BW=I{0EAT9K>?rDJ z;)Fe-Rg4z~QjLJh$(5fJn%%ndU5v4M9;&tl9W|$$l%k`@%+aBRCM)X}OL(4)IE0Gy zq*`fuM3Sj+FcKV0II875(7Kaj6xDnQ3RM9V;win3F`)qyChR$ub(SC@V!YlUYTjVq|;E9);pSE!;2A_5j8 zzGNN_iAgXwF)jhx9D&Hywj&N?5J$%1ArlC%rZ{>pokFJ|it$i7HH$)y*4mhik!&*b z4#QrR{l#M^?LY$N&@|ip9=VT0iEmFz(Am9=DDJa2{wo zgYI70u=Z-dwO>akuFd0MFYs28FYM%J4A$(Od!dG_`+^+>Gpwc+@SM+@RK^n;b7GS6 zZ>|;XP4^%i*9tCn1@J}Wt1Y<<;AVm^#_wt^?<|kRM%iVpdseYbB1Fm4eZ)P-RpaFg z8lHC3b9xh!4SB+l@+5l{u#u3^!XX|9sqoaTYNB|)FSj^3ppx}r30niO^y9a%!|x}Q zN>L_Kg;qvY8l54DP9_3W9_z~XULa*LfZJcPDsX9m%#ZmVmycGJ)Cw26Um_ul(KbG` zjfdePsN_=ERjDj#WJVy6DZ7&7`r%YAFvyDlK`GymG7mi*xYI+oM9zmqJzavGj?#;8 zpu8}BVgfR6&_-eVCrChwrw*=J*ytkB!Pp#S1MpFkd}xky%0-66{RinUy|9Ju|XURC9xddS{N@87_ON& zB5wW>@7hr~53i@Wuy3;Rq^nQ&Ki?^)bw}G@zI=hsII`>Hc+t=a&{}5^YIz7yA%fZg z_}?2(fr_!QJOylF9(n>#py-^8jYK?cbfte(MX0!k4X>k}31(nNU`KGc3tO(r5MK=L zF*bRDb*tvAseL6J=A6Ek&RMV{@T^W<@U!l5<4?009tKJS6H}kGRV<(mk;1bCSNS;F zrd30NL^B-$3qQqM5 z0)+S_9T^{{-6R}m0`{x@35dwH`y1?p`6E;)%4mrxe&g${&{v6Z!Ne39CIk^}o$S93 z#_ut2u)dw1_*?olSFDV0)k9rsQwLb-XZ{fkrpTAA-e8tlQ4_oWFzqPwEHr$90P3M% zR|#E0U%U{N8b;%(7(A-`;)Q99zEcZ7zAGU++p1)VYKXoXdMQrGHNXpFn{<<+6WB-0N*Q0=-*Z6=XHJk)h;IXpz6j*ioj{|3pn#SN`N*ngzz+xZbR z*BJrWk86woY8Q;aycc7}(3~FwR9Z2H=G+)s>x=>HuQkR1wF}0;uh z=J4OUGyXuggx(Uq6aHMA`Pjl9zEyG+$T8Fw75FuaNBO_SBQ{ssLP>$G?Hl`c8(n{4 zQBdV2vOUW|V7CQ;$FLK5TV^)1sJE9R5Vu-Ey*>FimKOG3q4tVrgL8`=*O!63Gpbd*#631Zn0kJ4zd^Te%5WbE(w!Ml$B519CA7t_*-|LVi2{kbo zPYl6Aj{UYvNu6bY53vV10^9B&M5m4`qlZG@Wd{?--uV=EH*Z+d-k0wipb<}IC4Fnl zJMIO>D7T@Ga}DHXbd45L&M$3Ih!<}t*6PJ_P0u(c95+-ZA`#j5HE*Zrk7POXG07ph zThwp(`ylXq^E-Y?I`Ea|7q8mk{KBvDlXYt@{|9;XO?_+t6w^s#u9rjR<8O~;T?2EzH0LM!ms%fhG9m#XdWy{(ry=L>^ur5C$SQw+f zDQr#DJaql}zVHcX9ya}aD_onB^FTpLxN@PgSayXJ#cj7xs#O;714D>`ZQIBh5xj_< z;;Y=&@a6{3-tNc-JL_}6j-LF@W?{#g;7uX$6mBqEI}bEbJ8RC73f;B7;+ofTsF4#y zIk~?AOJ&s;pqRstF3+04?1q+rQc&u9p${M^&%M4DghwXCKz^Y+z#Gd%iKmu{c09Eu z6Xj&s6VVsR4Cq2CfXhG$Zf+; z>6rZ=FGc=e`#$qS^l{7mznz2qm-GJL7JMrGzmHJ<82(>2+l<4ZB^?edz;5w6khEgQ zgC$`P^TIc0oPqR4iD_LSCqpsw^L3=;lz6M{z0xe^ch+GBoGWtBXS1Bbunom|v_v$kEM+N6S^n3`zW{C^)Vl!i000fi&5!^9 diff --git a/statusnet.tgz b/statusnet.tgz index 0dc3e0c85a2b4b8cc5923a389df3c47f2ad8014c..e92174ac8b09b54d250a04f5fb5c46ff19d2c334 100755 GIT binary patch literal 34767 zcmV(#K;*w4iwFQNft67J1MEEqU=&5yh@fzaB2q@AeIrS_6AAEnkam$ zQm0TIIWX^t16s^^ACJKINB%WtXq9KKnOj?Gg zw2Xx@aAqUC^P!>>s1#135@`!V(WVp%uvZ%xBPBmFxMWsLq*&35G8-6LU?>e|5^0S{ ziHQsqE{Ta8??XM+L%==L&Z@c~Zla^VB1g55S)rjx&os1&(y`Dx_=Be;0SJJ2n>j&X z)vSRPQ?L&FDXQQ-%Ts1aZD2K&kr4!1#|Zcp3FD9#)&%Nf(lC^Vfz>kbNMuYA1DTL1oXx5}tAgC1VsAQ0L zGs6S^MrfF(46I3S#~A3UU;}NMIFZ#L^;qaL0Fqy;IGzO+q7AnGQqVr3H;~)H@IERe z2G5{0(v$$5Fo69r%X$YOpy6bi*A_BQlaX{F?}SKXRwrjYOhi?ml#_QwJflRRZAjt+5`j!tP9W^ z)Ha#p^W! zhhK~WW3VuS7qo_QW2E&6(;@uGIZ-q)lp3VO$N}mEH_0ShC$IowB5guB&qq#Rj1Lvd z0Vu*#M1|2~X-?85)*;*j+0qy!8>wkonk3#pDY#K~89-e^H~>}y<^p6tkui}X3LR7^ zZwAh!Bf3Z{-{`)q5o*&01DA}nmnF@>m~=o4US^p<%n;NO?N&?GzE%6+4~gz*5S{#z z*M$fk3K?tCs#MW(YYrQs15)t};LM5~pF;T(O8PoN1TRIbpmhx?L98EW9Ac_c@X}I% z1%+l`pgahnw1kpQgqE3VVAVY6Bh}r%Ck4JH9R5nAjZ_!VHI_CCUaFYrj!;O$m;}^B zlU9~IRLB%Zjqp7#wOZ3k7r|fz?So zO^gM$1dIR<=m@dmS)BlYpp#uR!`ID`%t&UPL?LZA$~E2I0v65%}rkzieG1lmnG8 zLI)HT^RoK_dm)*xiV;fSIU~^vxt5tWF$N#11Z!sLfCgv)1kxEdhXW)it%?=h1+dsg zyCpY(B`3B@DX*2SqyQbD>eJp$qTRseGa0$tMa06oK1n=$RC!;xagUoi#%`?R8nsfp>7mml_ z2!u;OJ_uDso8lG>kbsPuL=N1WkBa($lu_eAq*Gj5yU}!13U43nMP551b7JaQ!8VX9 zDEkODAE!YAC^t%$ABceRhi5M3%rwgv=(Pv!NzsBH#lP_fUJD2MpN|18|B~X$sm8f~&kbOB6MF6AI>PImrU*9QY{-WDjy zeN`k(@ux0;F=98W6=EcC7$-vAFhwHd(S?bF{uvBvTBE1HWZ*a6fq<3~^de_g0OCgy z-yj2k)yX_qBBTT;u1(D1K`S+~ph3VZ8MH_`{D5z4zA8UsRB`~I^hya33o-aEOrv=m z9CBEcHOVf*Md$2Mjz~P9L_EJuaq^*IQyc7^L+6R})N+)-Db$mDSZJh2!2n3)AO@lB z1r@@OK$|nCkawURz(5fZ(c%a}QD7xFa_NAN6MiJ%fPyd-;Zx)e*(?NuaeCoK(k81! zzd?ZniC~l<5m+jFM5ahEX+%aJX$P&q=t;3MI7E?&R>%kq->VAPARpDgGgk(C zRwrZMhY`azl(D?@_)*iomHOWaoZj{Jpf}B@kN?=aT+a>5`P$Uc4|i|8@l|%O(w{x5 zvSe)U3l$?gGCEf3TWVG9-znuV|EK=?9UcGhsZu6y?zlE-{it&{G9T5O zG41NTbD8wx+`;9RsW-%_cC4h@=Pl^p|KYq*YX+`3nD_Og0|z$t`63~0ivP;WVG)TQ z9aEOnum1Ib{$CC1vGMxct;-wNm|Jmi>~yA9wFoL`=K9`-@OL&#eDB&D%KMCM-}?QV zC%cqg-lp`KfUpCR$9`&ZeP{I@Tc;0e*{xiS73C_=-`rzo?EOZ`+{@+TuV1pxd3a?> zbdz-+UyjVq&Y0?Hu2?#F$GS?ntM3H5dCZ)jU_SF%r=?paeG)q~^iZ}w!`k-dqfSRJ zJ^E%>Tdq%V>bmattL<9VGwXEYI%VceII=eN?uTv9`b=)t=k(#R=-(CN-RJn|+pO=cyD?hPrxxu}+Y9<|TU8h{B zp5@*>)^fu2E>*?X>Xe%pG5wYJUg5t#q^P+U?p6_}SIAoQOLBIEr)QeJ%Dic}*Vi8L zP5s#!$#*_471O%MG2e~tRi5w1m3wzrAAhp z$vTVf`VAi2wJl?>JzCeV)ZGW|nhdLWa>TX;^{0MT(Y$KI*w;>-D%1Mfk7IUzu(?{q zuu6O9v>93L=;P!DM;l}(+}PE*X^RFEOP3jRJ>|12x;lAVK05N}gw^LOEYA9&LCDEH zm43Zd-aT&AM=7%!r+#tc)EuuRi!}A8cwgDt zuU4;$v-Jm=gxF5o_b$Ho>$LB?MlYYTxp|XzUX|1Kyxyfxzl6P?2KJv*IptW(tbq;3 zZx8Tm_+#?1!{wW4g0_vnpBm&@V<)pvY;p94-v_s2H%utKbL{AAqr0peC-s~h8ghNm zX1D8~ZQMU$OT#7&n(e$%aU)cHsad~(-0|6|o4)j4{!!4S%U$!%tl=)_TUDtLKzlh&TsXKh*D za_n~(E_N*y^8NRfLSFy=o9i80cSyKDDsbcRyT1&!OuIvMSTv~Fy|U*kg-!4LxXP}} zj~l!3{k1d052`(D8OB~89<^e2&AUrRCRD#Wt?jMPJ%*fnaPiV5?|Q4!nI@x`dMv5^ z-Kr&nhOw1P>*|9fl-gZ+WR-IBDu1-|rupWc_p8p^>$PyvsV%R*QR?dP5tDMfM_##< z`gWZ%=gm{AjE=e3_}It=?BTt?ME@M*tLf%h=EHZU53BB0r>A=}|MLwV9>4U%R}oh? zE@Q+B75V_M$@_j4Zmg~P#kUEcWmNW^8J4>>J-q#hU5CZMQ?au)9J>>;z&!QU$wxL0 zAN117J7T>d$0vN)`MYK88!IM{&bRfIV|4ui-Eb4H0q47YJKnhX{8=bc>B`< zS89DRu-&m$lhX}f?il(;di3x*@1Jk=1xQf+i+-h!9a-^q*6)1S`YosWCC_Oyx}8_= z@HfV@0_`1#5^~*>nWBQ=hHcL>6e0X)Qi*NXAiybDznzB z=egfAK6@pw#^H^=yZWsk`$6`)UbFkISTpj5MpHd*&$QU(3)wfy{dnijU8jUf3_;34h{YbIO@HrDtp3G^`J$6>9Py8l$TJIhhXZ`fEN3WQ;?gM-E zi9LE}n)&*}W2d&1S~X|g%vs~!S~;Up_@ezTr)|;7$>qD!=@WUJa`S6VKZur2`sV%;|mlv9~<=ei~BVO-#b!?UI z&Ybp7I~BU8`sfb&1J%2YA9d=xbq~Zz(xIb!N1sYLyg{syb?4@HxAsMk`i7B4L|mWw z;Ig|q&2Z(i&y`z~PTrbTYjCrrOIJ)v_UYlV_rwof7B_zha4NGgM11F)4v+5+8KCz1 zy5-xYd$ul}Vg7tz?MJsGJ1rQyvt!!J{i`($3>cg>ctq%jIZ@R%Z@IUpY2%hVZ}VapK}oW+y*u%j%^aR?ccvcB9c~ zTx^=Peax&`3x*2s1uTg_p(@v8MQZSxowJxL_j=vFc{||zX@BoEtp`4$sBitoHq6s( z+S;zlk)Y8{d;Bo#%0;hLrFYe8xat1n{mX`Xbsf2~`NFm5S`BF0xSo|c>^o-c-r%5e z8xQxbFy>sBX{Re>-eAY%UCrs<@1?uHEvxx^+l=TTmljH;?_P`vU4G_t`PkRr_%3tN z$d;Y6!b2lFtqRKd#)~s(|I8gJzB%^lq)cD+g;%zIw*%bQa%$Si?a4=X?VnUYs6XGkr?C!sF#G%6%&;G_AAi)kY`OZ>?zvmfulGKE_^lvz{21@_ zUt7B2%+A_>zT9f-N5>vkO*2mE?;W{!YWH}nby42cje8ic zR&EPccx`@f=-Z#a{P5Q8JahjI3#p5*zBI+nZF`xX-HtWW$9T8-dn%8evSH}*uJ0bpx?VfDPOIOl8ix<&8#FNw zpYv$S$9oUA-7lS=UVZ-j>fa^L+w;Zi>r@GQ-iWU~dh&*vb2@-=56V6HaTUGZYvjDX zqafnj|3}xnMXjU$h>NQ|`uftElW%~{_sYz2rw^U}bnMZk{_EGBs_>AS-6W*!u6@B_ zacsA@%d68XYF2wqf3x=4?pf=)CG;IQ;q%C;adYZa_3qx?v&^Nfm0uh0ndDV7Jmb)- zRaDvE_Ne@e`n|+{?LzzQoT&+#!gR=fW4qtN+e4+9)6cE=ZvLGflOp0hmMyUk8aZU~ z$@3@Z_3Lg_0Pd_=d-nH?HuW$0O>R;}|GitK@8`$Qt$TuxYo3*Jd*_*B$E!VfJnY2q z_(nh63G~vZ4Ew6qsl+RRH^*LVNtHj}r{ehZ$f3KvM-JKWpxouV4O)Aiy!2XP_9;v1 z<354C+~N~H^(<5Vqo2R|zJ;d#wh{9h-W)x4>6z2fu@x%p32u}#_d-XuciB~gx`Z5f z%Q|=S%I{XFCeDwVkv6gH*Q?brvj^As{M!RzJ}2vpJh*Lt`3@B)ZlgM>!hZ|u+Of+P zK>xm*+o}fsJF_QOeZ|dvd)h0Xd{%c*`uQm*7LHtSyyKL2<}FEot!r+XFXw?#o0_)R z?CY~3KIiqN)VTW0(5~H%ZOr(&{)3%gpZoRl-nI?in6uie&-NwDMtte!KX-F0%it@Q zjz;ag@$rG*T6M3x^=!SN^FMhh`&-LfF+J7M>-!9F)d+)WC@7;a-ev8|a z7A<|hTB|BAzqVnMcg47RdB?`SHMYaISF3)ox>v=kj~cH@x%?BomYUso+T6yIT8vom zea5MKQ<$(h3FVd#yEyBpuxi$>oq}%3j5mENt!{ne=ViBBN4C!VW7PHNg<;)4IUfe1 z6jv_w%h#5~KzAXuI{Lfk-Hq>Ut-PRBnf~4UdTx@o)ooZkZq4hx2YD=6!-oZzD~%2; z=V;?mXZi2(DYuJG}e6f zz`5!N2MlbOe57k`pI#OH(zajwv|VV^hT?bKPLe1UD45h=grp_H0!uy>$IuwbjXb?{ney?IcFAh>9DfluifT)R^75Y==!Xd zLZetAX2y(jC#rpZvgWy+xdE@A4zf&+sOTR#_oCnD2VNh0>EKq)8q4+5TbgzlJ>BCd zTXoQ_kv_k*={djef(!eYJ4bdOY<*aj-e&9O{rA=$?4Ksgne*^+y8%Bpes8AXkKbo| zRz0=pZi8L5KWbqOn&->z?0#<7xpP~_jK9;U$?|*i!3y5n8&g}`Cws}-+rGW~4Viv! z$D&G82mM@sz>WL2w}0_?|GgU{r`7E6P1O0k31J zmwsIsSo`Db*F)Q*qd9kAF#qt*u0P)$sQc{PIKFd-4QoF>9^kufT#EFA-?R($+Si&q zZeu`Fdk>${wNCFoFyQ#vGrhIBQy#zk;Lq)$DJPD;N$=bDRqg7{mU~Zr_~W^9J*suR z8JSV>)5KrYVS7AZaSzlshOzz9_QUoc>~=8T^JIF(F;|2wgUj9>^iAL-H+ty3%$-B_ zwVX4fcFj2rYv~$H_YRoRqE+6w2>!~ZA*0T{clOtPpR|f@`N59N8;5q!Z8oLbq}3mm zn|OM%nyTUdTEoM`YMi{iGNkfX-`7iwxOyULWR0z75=XTdck+7OX+CA8U&`IF_-Oqm z&|M>64xYT@Ve`TL!oq&)S8Mw_?<|!n__jw84XjtMdCc2ATmMm)Zn7ew!q5i~wl;WU z@{+(44HDzb?OMLtFmF!a%*|hopA-}Gds@!EprAU7F4rG8IjvihH5Ttjr{2~!deisn z@ak^D$v$Cw+3}WD?H8ZFIM=5V?KdG@wRO+^)Fdx(?U`q1j;!V%9Noq^*!t+v>Bdtw zL+H7AU;Q6eu6V1$kZomG-dj_S3oTea1DgT%3A6 zphm_}YhK4*@vZ5^kaeGPd%o(Cd*aGN@19M)%6ym2^f@>7vsNCHye57XS?6}s`|p<< z@>90YgfWpv?_3>uKDg(E=C4l}#(onWz5hn_o!YB|2fnktuA%zFbJcz@M@GIp+&uL} z+b_Sa>Ye+In6~T4+FAD#Cob(VX7RbVf@44;YUD9NQzEB~*ESfHdEuvT7Wl62Uhja{ zsi+oZKKvqgv(F*paZcZ>_hi6n$vO&>52#CHMat1|%~s011H_t1^}k z9@y=WTT)utsjJ_8d(7vV7wQ{o#EPjxGQs6}27pS!MWUR3(9X?2n=MXY2G_xY)E+0IkOFYex| zX5PnjysY&vglT(L%X{;yh)-&Sfhv48Z^Dg6UyiuaOW!poq7Hu8ixk^wWiHmj85f&$4ZkqJux5=9Bwc__d`SfAQX$Qp-1a zrdppD9s4GX;iBUk?Hr#SW=cD>X_J^Xtl=5mHdSb*HYlpY@^-#cJ1rSk<o zf$O?v{&6|#UERTt9<9%~Gj+^{w3o8Z2TfhyYsb|wd#`-3@X+fE6JyG*8@ZvvA6;UY z9_iorb{lo>7yekw>S5-A_bXhu=H|BWNU7kcpoH_r4!LK)+19XU>&`pagkDBtotXKR zv)vXf_4=c3hr08+uK!tlc-m`S?f2cj>cY-QTc6PF&6dA*-AngmO<}zzCC_^0_p~cP zkFFS6|Iu2vHDYT@w~Io`wl=L(4m@0ZXVtbVfsZU1wx@uifKR1Xvn-2*Sb!Hnd_@9IofW(`)=bRKAG;eVsgv}@6Pji zC!T55}gPwp-%e?BW+_aN=Wp8O<&igd%sNGy1afr-+s_9J+I%8E)T11 zIyQy-^Pz6dj30lTlGCZaZe{wRkXsk>(&tq%5ALx(%=@}e?FAjnEE8u=?RquFXkC@G z<;1N%{d@d4y>E26rENaDIBmz{h5atCb~n$MGBNItM|&ED`(Nq4?fAohb0fx|pE>V9 zR^a1X{vUn4XuN*@7ZrUQU%eTB$0Os@l)W$C5fYCzd1Jt>3$?|TEkf7#u9&f;x9;Z) zr~Y)`^4cfm`nK>~(ZTc9kKhB|s@3gRZQQGt(M92$>JSR@GD0 z^P&=@)YKG}QP8nks%~BU0gd3Vy6xqK(caNo@6Ph}hA^s!2|mOzW{wxVW3Y~QgrpO^ zJ95gW_U$@)NAe6=YvbLV7MU0R zrk!{5aH>_iu$br%yS0mrB4yjsg6Q3mr%i%^7CAnQYSF1}TPij@CW>kl6%!uawi!?} zE-F60iBjC8lc1m89U0mfMzsx(ZP_WjC6sO3wwZzT;dq^EIR*Wg=$I%+XZ?L-JR@;u zj0u`gF+)MzB;#u~(5&ervL{Ah#KxUEw(xG?S{6}FV0iB+lZL}}mtj-`H7jBnRlP9E zX`x4=Im|z>fsF(0aZL~|eYdUrab`&&H5>RlcvrW*>&_^7xinc$hRglrb!{B)(@4!z zzD;m9g|dEFi>sN)VluLLO{4&pg*LESpQ2k2@b|N|-UXY*m1$Vrd25!-ib#2V7rt&! z!w*~$g-h~zrr4H(>@7JjD6}mTG;49iXK^q>{R_fquWS>ES6~$bqCv0?L`&Pc_i+1q zbq7?kZmbQHQY^R-C+^9clW+x|>vC>+5t?m*r@U@Yzy-?rmsSeMH~aE=`>r}#-ho55 zUYKnAh>Z4qbjr$klpDu7H&Pj(AvY5k#y};IMY9~`v`7~BqbX~o3)z(>KzTJ|;F3Ly zV@tz;d~X8%8s>i!7@Yr2P(VRYfuZ>;hK4wJE~$-dG3pf1FvzZm%F=qGMD~@=RHTDO z#eoWT;%zLUT)w5c$Vdn25;(BwK8}^D`Bqbg+ZII2TsGxfMrz-2RA9-Vmt&!1K@^C{ z5qMfz6K!i7<)zI$$BBx$h+qVq&w1+wMJr}4fwpkCQntWu2iqQv;? zM1181?dlY;$_cb&fcPER=!qLC02p2C`ihHv`yq zCIEf-l;T7+IM9hAw%*5bB4h7+7=_!60Q{Krs zptc%tI|PEn0Rs9CvTIolV`aU(Pmy>AGy^sQ*$d*vT*qDkyBV`}2Y0oo8K5rD;CMAyY*)B&vXtM(tfvpu1B2}f6A!MxngX9Is49?6_6qB}7c&1x4gzRT!Uftp z(dFotx*z4Q{j4ScmDxYic05Z-ctiy)d7(FFByS6cySr`80Cc08GPpb1(Bg3qFeZRl zN#jGwtx;{E0MA(G)1)1UF%9n6C}3dbcnvrsT1#VSVqG9m7VB(ipY|!x!M{JvNV*iu zQFzjUnbW~A6Z%B+-ljtPgut8z0QiokcuA!3gd-A3!kCrkw30PTEQoDUQD06}~=p-2L zVV77?9Kop#t(|y)Bd8&aSFE!s#%Sj8{13?lj76AUlqBLAVyP^iaR7xNRF=D^k-G;~ z6~&_2zSd0qLo2C82FPXWCTIYrk3g)U24mrH(=uo>>85oy0&>F3!@}TUDli-ac%Fqw zr##h4h(RQeFKDTXpI(&>pWQqFws^1+*dCF0?H~#tsa~L!XFBcrOy^vm*@Wveoo)S# zQ>}zkAXI`o$UT@tHB{BmW<}KND9}C>N)2Z;i_S?*4ViSX zQ5}R{(D1Aoy2zr*hFXH7mK`qP0Sh1CyMhSFNda6yV?ZNVGQGm$*=6oD4~2)W28+Aa2F>juv8LFB@%lfnF`ca38*?`O zU{H*@GlhT*hC)in^i&w=JmHyNQ3{y^cNlor_r+9IMzDp|RzBqi@U-*b1Z0828jjcE znHp?g;DRs6xqNhkXF+%KEGD*}>8$p%oYHok&z4Q6e7>4&-H|YbYe@pW#knXbq2@$c zvIGtU4#kgC;|vc^)Q{7$beXHa%n zVq*YI5rI(&rtg&)%w~Rypqy-f3byscd3_l)`HYHA2njK?2FXW=4>kIN_7?>Cq=|kx z5_JzJ0cXC?0QE_@6*}Qx06PQiK#9c9MbP(2NdSdYh#rY4Z9)yigRl9)Ji9!=GfVng!cGVusx#nd z{T65V5luWk73$+M7Z{kD$*H~x$T-RaAjy6UO#qO9eAVC(&!*qxjY0+Dzi>L*tRY<| zf(%H|@ z9D%WbD_>;tv8a87aN$N;M-#b2f*Htv<*)9P=!)6vMa>k;$@Z^k=+<>6wcpMYBPVGE#km^V;DRWas`{Y?cfl?AnvP)F{ zC>W>|5{nlXg%^zd^GE&v?sVyY-IIU*U-%En{{#lS$p1W#ry&2IfBwfmIH*AWCouFy z{^xl-CCmSCxbB@Y=T5U`3g(>Y7Df*)<9TO-+NpUuH$%jMEVk|fil&kowWI(9boD8s zNfNE=C{C-VQ?WP#HZdk^CgzevlXcxcmfne{AQl!m$&1qCG4K+V1j9NCGbskviy+Ua zQw$ts6 z!J26RFi1wbH0X1)T*RT^sJJ9q9V}~2H<)s!!;n@GB{R|}UujBjux93r{vXQfv=+!= z^EP?_@foej#+U`Rl#VqW#`rRAfG40-6p#_65XFr2FU48HfZ=)xLV8ZhU2n|<@xV|} zsj!X$wP7`hUh-!)2@jj+@Z8wkX>20MKyEsUgbjv?@q&KOe_W<9SX5RH_|0KH=TpQCA_s} zYw4td!u2Ab^ZfETv5bi}FsU#=2GLB{g1tsNDT3Imp|U~H!wVF5$yMB)@;cpUB|jn& zfny! zoa~7tc`rR>uS9v6m{i&fZXZDTf5Dg#jH+0zc+N z8Ak||0u0mwCsLJSIn%+vI|oID#B)VthT1DmR=~gz)cF}EhPpZ1F1&E17{Zn`JJgMr zz$}P1As|s_VL7HE6GGt-vtkhF9LbUbg}CKnGeS0uoMs$l+?XN|dqN_pGlY#&&S+Y| zfJV!yAxgCaqx50_qxqoLvf6VNP%IPYMOi>`G>M=AB~u|Imk8ZZTi1y=(!g;B(IKF? zg%y}2Yo^9U9%NVUL&fA~fhNmd&yoV8MA7cwNW==7$xvXWfi|hQ{>U+&@krI;Rben7 zlS=^%BiIgkXoh29J4EPQ?s{4a#snD;kSz955OiFiiR#d~>$TPeiJWt<3eo!)Iiix~ zh&q|MRE|fJYRz<_S2s$Vn`PnPU$U41-JMv=X%cxHV}bDKfj-D=q#_ls=TW|7!IW{} za7Z8%GesU*fkdR5tm#JUIwMPg-vWr>7g!rnRr0KYk}FaMtEqG%FV8tBks~^1o5X|c zISB=bG5(FSD)J}PRggP?;$ov1!I(20<3Dg#>7Y|kzyf{K6Rj{qESIXqu#1FsCcUIE zKvEPXUmY(B-JOgCctR)FEK@-O+e$%f12OksNF|}_v*J@u5Ilp-5_~afXA)JKmYtsaA078{7*pOi~P^?cuJK2 ziC~=PY+>MFU73)8VtB|jjT*A^C$6`Krl6o|svIL2U*ped6r9V7q^i`+C+crwV*7Z3^{yAJar4(NX? z^V6B(6Rc}>YRtFD(NVl6(O_LG2$({#uH}n}ss3vdKP|A|fC8&?##xqf&?<;jEgX+1 zGK33aLDHFN?1#lpTpuc)!-Aj#S_wgeP-t03uwOR|2*5xF#sOZGmNuENYBB`LD}QemjV>oD%dFQ@}ryqmdT z|By-^AgOq(D4uLqOpXXc`NHhcQ>KWbfX1dmM32E;c64FV{URgu{4zpqfDQHues5Rt z&SxDc9g~1Z6q@Y2dlZL3WZjOAx1IPPz0GCPdq)z|dx4oY%awpLPii$0N}z~BTa=Df zqh{D$476n@v;}>WMB0b6OLL>>izECP2iG6D)n$+rBshSIdj2>2G_SW24IX=9^F zvE)RX1^+6f$)eLb4)-lUxSonLxwKjhu~uOtfTEK-%^5xwuycuMylr;VKuhA2lTJ@g z^0s;VHaX4T-?1XiW02NE(I@Yw0hN$KerH9ZILs-y#4-{%o;>K70_Kb6T+`FwlbY zt{*8u$D?T{62yby!A)g?Ing>7G}GI4{7R_Tp0wuOTp<|-SdvN2piGE_eZW05*}SZ` z430KzG)!iBEr|iz0wKM~FHjMaDBs;&CY(9Mc;cY_k;7oNO%QOyT9VodvQe=~!a53B@CX;PMvVlovVO+^4a>V*LM-Mn! z|GPVo+CT`OicT2E^Ryx`wBT&Cl)4};e?QknM${7Fh6ZyNibeH#wbeHRsZ~mX*{zLLVfiKQ~doE8w{y+Ep zkAGkR{)YtP{XZ}AKmYtwqWn*I0-HONrE-QBwJh+T$@*|63ulm&yblXeD2vy(UMrxH?_AQ~O6ugyfPo!P z8|WnEKru#*zw>YC$(?E71lCYUWB;|8o#u9OU=$|OxtWBOz`i6KIbf)+@I=oT^e$v0 zC$<5-e1MUt7L=5V=Krk(FWp&Jk=DHkD|8l8G$3;_-)E+NCQm zvNQkcejVBH3Ci{v;9d_m4PAN3g% zk$StWB2|4ToCuZB&=!hD&TtlV09R^*F3Hwck`G!-mE8tUYgs*~@F1KhB^qiaDZ>ec zi=m?hFZr}JEou$|c5zYAyhJ6@MvBp=!aEQudqqMZz|I>q)J6|lc61!B%e1(tq5Qt2 zxtQD;a${%++7Rk+B~Qu3GkSPaB#aVfWl|NVC=-liV@xD<0mE^^96V9Y^kRn%S$WDk z+h?LYipsdeW|(oI^@MnejmBwa3CeM@D$?lrao?IAT&adY!Ry(yt}v7+Max*w{uy)z ziB(Rlu|WkrGMYJ}O_&QIVGnj1%mNh)9Y$?&?KKp2^jnE9@GL1jMTh();+dq*Jug9W zCCVhw2Cx<+*eU`N*}UuUun2P+zgnSfD&iS#%(6W0cLDAMXl(Go_5oSCt? z9>CCshaS-fOawj8szEc+WWUIJ{N21qI7pbtIZ>*u99@8kB%~6-5+~V*bA(uJXdHLj zV-9Etf03ikFq{E#0A1ruG!7XAGujalf+U4#UMMT5*5L9Pg+gelZCo}RBsAJ|K8s7~ zEI3xCFzOajsN{yg4NRZv zkTSuh14+f0rjn;4n%i|l_Fy(LnM%@PNvG6V!WR;qlJmcyGB$+VAt!(pYk`ZNRByq- zFbyR~E}@82vGeJ%(6D^2Fou^;wS`2PV|lu%b*I=-|Ag4FVC?D~wK~=Mm#5GE-#_{1 zfB$37{|b6B|NlImg8YB}`#<~w3*7(x;{31Y^!%0kUwD_3uAff=0EfI}3d+j{m>lVh zhpXnl@r4p4-23Rr187+o+~Vn%Cei{p7F&68)eBzdU`_w0Z+gLlj*SpQ6Cfs0KA6*a zWreB0r7q;SS~dYFt}XJot|z1h*E+uHZoTzcyJAg)6Wb`H}{55;7OJjl9C0+2OHvN#ogpNlo~nOx`s5`=eL@OWK-YfoR?=JM}n z6F5BeCJ|4{mc>mA(gtj>W)lri?kK^t!R;g=;$AStfNTbN#JPUgJ4-Y;*s)*hLatdM z=ey&*E@ZsyQqO5xlw2^OTWCCIg=|BV}6qD?HiIe`&~WEB}N|CJkEh~d## zmup!aXTQ@0B3P{}6aL1vF7{hf$fYTy3uaQPkja`N^Ak}95=DUJmM;@@QZpA^nZJC; ziyUnzc)CQ@fBAM7#wO#4_Wx@30s=(PpG5ik6B_3*aXz>Zee!*>Lcy?yXp++nF9<{) z?I?DGfg|Cmd`ARFc@Xg?*SZj^gdpsgp)9cA%W#E? zji;nl+dU$(vvukT8Wt1KS5CJ;2%u&PS&{W3+woT}cA*@EV$>`u6_FzsPRLifpbaA= z+q9vb1_T`K5NEsAMJ_2i-Rk0Wrwe1d)CHso20lPUick^nU$JJI02t?btqUX5649~c zMeH(d7iHpq1V*{$g(bWHoQO-VdC{;S2lYLLyw=?Wh&0_QHkwWs=)6Q zIiaHF3v)9?XHg>LdsGUYK6%=^RMccorUB={3JF+UGAe}yq)(ey(I|NpgE9=kq5jkC zTp-bT!D|2R)Z~ljIXwC1{}cEZ`Jcj{|I+#Yg8YB}`#(ZM3g&-;{a)mMp2t(t`(JRz zP>_l`f$1Mf|HLr7hE;ABMX-Q{^DV|ABaxF;upL|8$DJJUfj1`Od@OHbF;>J`Mgq5x zy|K?M*8_pA$(^>~_{vPqDxatJj z$O_)p+1^Re`I0Ah900YFeXLw0-%FC&i8SCfhRRA}dm+ihV&(<+=>HF8bRzLmV!TkC zOw6)MT1VqVAv14XVC%7U0Tx4@g7GknAWd>k2UsJxj7lV2X)XX+K&HPZc`PW9xOScu zm{brz+yX)_E(L{<`g&1Dn{JVUBts-m7UOI-qTxdU8aRuJNeEI15U>C&^4lgHJY}5? za?cvgxRII1!3=Jjrm?D{|M?O>95kh2z43f7fK`0bhf87pdeWx_F$01?Fqd;ayfPbZ zw08IA|i@iE+23b1Zn@D=L}|Lt9g_+_^&a z!ihkzXQ|#qr)UXu{#!wYna|Djk=$7WC>k;W-HX<`APF>2GUX?lVkJb;RsEbOlW3<} zf=xAC#1IWnf^`A>yCj(&a)>$+SfIR&bKz=LY_bQ)C)=%}pp@(`7un6?8HQNR#xu&p zP~CxTw$Mn>yND7Kyh2k5dkwH_?PV(FT}vgM!`}VTU>( zx1&P{wHUetTowQ%F1>r-=KUIjhH=r!!*&MGDnN}Q^r403Yvd+SjIE09W5tmJ14n$U z#6r@bj_E6nRzi+QB*4leo>D>snIA?CJ0#Lik)vtBqu>TusX)~f1)%A{qQL88@O&q) zfinh*5bhc>15{Z0kmj_`SHZ)+OTeqDQDIG_@ASEAr%x15I8#3FF+9Yy+FN3y?D|3N zj+5p)3^U`z|)icALX_orkCD#y?RS5 zy|>X`fG3UVrSl+Ljm8wN7jxFqc`=It5}xOuT>8{CB)sFzX3d1{J0JI`FMSH-aF_LI z&8k=Lnc;tIcGkkn)|SrWwIYcdD;p;CLUsm|t1n$&x-4qOG?Z;Mn|GD^3D)j9nmK@w z0Tj;9(s^SIMt{wmDd#wZyv`>%5I?YOKW`x!&6rlhn_K$GOWs%ZPiyvH`lUfs*}|?9 znpFy{`ob*gaZ8`Mh$L9fBWbLct^=jptwu?Rv1ukE(}nF40JAYQ0A7JN>*JoNNH36K zpwxTt4{WoH*3$V|)3&V=);5u1=_7K-^`#GC!|0w|dav#=K+v9RCk^;9GY3CGQ~hk| zyqnS+7#`FT(+e)_%xs`@qnjH#&`!MeOFEt~NfrRT<5dclDi;i}Z^Zu!jrcugB(iaz z2J`@w4}8#jGNPcqxq!KX8$iK#XC{8aZP}64qtL)`K64sF=!TIku|3=FTZePwxQEqc zMc7jmKZquf7)#fDpEL&Fn8oDW5m`}W83bz%uA85^3pF5dNenQ0UC)p!r{PXhqsBBI zLm@FaxAZ=&Ch$&&ESwspb0ASu5~EA!F$;V!W~XV{Km&#w4qGmKu7C*#(OgHUhFF*e zka|CQJPcravp5V=0oKpZJ1R#X!B`w&Gq`#$o$uAo`{dI5KENgw3#ZnCbJKlDPG);#$CNjVJYgIT}x^X?Jc{|Gd%hSm8+DWYU%v_8s!gqz?|jI z`pkqNfbg^^o~ej&NlUZf`lt!C1YTM~%AswL{_qk07y5=XG-bKCu|k$dB)d8VcuOBa z^^#cnC91%tk23&jJ~A}?zlP^Um#&*Q*{E04r@4QH8BkCL1v0i|@|ihI?B87al=W>7 z@1%f=s0YuWkil4`S=X9IB`8H5?pt-cv+DM2kUVHEOdFg>2RKv8RAe`6eRK94BkI7d z9_^`6&Ickrl;myqsXdz_d$lG$iAG(|kOkW8r{Z=*W7?LC(m4YUYbo7X5f62tEF~4S zLkSh_tF~P9pY?d+_CNpYV*lONxBqU$lbrvrApScg|9{{9yD?8s_TK||&Z=#CmwRIN z-G|Un8?5Jzh6W}$QbmcHgOG0uJLRx%*M^S*v)wLzz#vo3&aGSAH#(d>&oUZh1MsQO zF2yO(VP{=*%~beiF-g!`Yk6go<<_O^}ud53$_`p5R2(H zIIttDH{ZwP=28w5QRQ21T}2Dam4%m^BfuvFB1qUn$94Ty3V52BBK|_202IYnG7lpj zDO*p?qG;|EAWc410m6b7Jq;6hj=^(O>rtN6!@13Av$woGU%T6z55Rz3YjKf863t4J zqft3+k40&F5D~*<#lj$Nvu~xx^Z$VWH{%=?4c@K*J$Wt4*yAJpAb#Ob%++JcaBU2u zMA2?lFd%yoXw--RfdN#VIhZ<`xW^=(#KF>P;Bkrs>@VvSl5=>_l(fgf4q7rmuV(4v zM+8`!Ez)oe8`e95Lu=F8jPxMUOK$>0QfEz(*mVLgBeCT&4aGqV zg{kW`6q}hyS5m1suHkk{)}O9|vFk<!)eQW(%67K|f8U;$ljGnB-pq`vD4}`Wu z1}4(MEg#~`H*mL5m3oy*>2FvvcMV1#3rf5L3RBCs6c#};g-BeCCf)IHP0%P+QD~YR z7kr`=)S^g>GR2NT8Fr>D5J#L67~fJT3Ja#t(xb{`+xl?G(73G^jpv;d>?gpJU4Fn%3ih~ zzBs%l#L9T6dYpB&YGgOP_J6Gd*&8+if*BUg@ziF{f_~`?lery-3nU}!-jvW zE$Xx}cQXB_J-mB{+gQ8m;Z4{0YGq>%Z&&c}%zVIa_?6!x+Jbv_y_0yeBY{A&E(#C$&!iMg)2>An0WW~sTuMIy zz@aNsmJKQtA`KH-+B1~(-?k&&L)-SO(}0!>v_k;2!mAGMgM&uRO&UA8bsro?;Q(U< ziBL0TsUdx!efPmXP9*u)$Wk3EJktVf4%0&A)mvy!?VF|1b%%mt*1=@~Sum6YbdM!o zU<(39%-Tk?Y2wztDiptZjtD=8Y#)?w`Z}z0wFwhN!0vOtyGRWEm%RmqoJ3Wo2N?4)7am#>MlNK2PIN?>& zjA>0h8K&V=jr!EkdF8Hc)Bi^3h+)r;p>M{@Ou~_AmY$n(7kpjbd!XWZXlLv-H^>tw z0i7@-ag}Q=!Q--9k(EYuFtcA7c4(s7OA97m5IM_pOB76h-LKZ@(ODm}_u;47$)!tp zw=@p73#I|uhUFF%8^h-Ddc-YAjfh!$!AGS&E*eZwK=!w&(wtcbH4#{x8YT;`&-#i- z2T?~1gd2S0%tA?U6C!|%iNH@{ zCh(@ybdC9xFqw6-{Pu3SJr1-uZ<)5G@4*&fjChahA`CR8vz_d=X)y1~NPGX-UfUWS zk2pS{)vf;Z@|rD=eZ%5Ef?=^2GveJ@4Ey%LQP_vI78kr(6zNUpuh0JFY-Q0ziM>d! zGZ5?ZC^Y6_!>P*=+o)K7{e=xnQ`22ss8}9uf^F-sSIv{cm_nw9*9`r|l&i%nR* z7R|r@!1Lz~;b^2%6tn))r|yDiv^>jO#8swg@e)(T>%%ZJkAiH8`33K<&*C?A>*Qid zj4#w@0eSPzNi&9zMca&`WI;^*<*n*p&hp-LmIOSEWsQcy|6|mhTI(dQj(`VqaUIQt z<1ODf$=HA<(y-XJwN9a|t$ORE3}Y3+tS66zw6_ZR>g}+dPovGi%DW<`5WwAy0F3hTfJ3Tj8*xnH>Uk(L!P+(#~+$n_bUL` z692iYpZ{S)p49o@*!a)w+jhq9|9fQHu7~^fzm0f$i~r=@@)%UM;if-F?(B;~UR~DU z7HG@b5RL}DiuXn1k)+6lfTIMuY6PhvOuTGb*h{~5#L|aiZs|Q}E#+wJdZmZJcBUPR zPF^j2G{=|iA~3qSm@-7@8Wx^xaWUN_ysd!#X3seCBAm+7@1<(#wAK(FI_ib`%F^$a zE}CAnVE}A2guymPysW+VSkZmKJ;{Ijo%6TnqBpJo?RUoCo^#rh(Av^SM21ndJlLos zqAitRf{q{EKjzD^Q)q>2ARWm&1<}S6Tq+1#I8e`PEqQ~W#W$#@BakvnFy&!N35-|oTIh6fCLQ-r$D;3J&AyY!xGIYr=CV2L5X z3tf`|f74ZPE}h!JYu;V_W&k4?bzlZpI4zZgV(C{1G)e=7IrAh8a>}qybxJ|OSBT$L z4hnPWcX)CdZ~SzZK7~zdbhQ0k6koZ`_mFANv>JS0P{0mEUST!UCVGTLBuGJF;;gc? zj%J^51VCd%(>+_Tbu>gl&cGn^}F z0&+^C9NEJ)f-`(2y$EllU&}3mHQ+y|D=@uXBPbVSZEi%N4i#K;h~M!H`r?8@MXmyaQRn?p`WfBUc z(h9)DBhbP(Px(O`CgGdaTG={NJ*^4Ck=A`$qA))NA7f@o&q|HdqXJYdU8dL3OV1E4 zfvg&mt=e)%yId75vRzhqIc%#*ttDjz%BIekCV|zfrJp|&Qp2Pb#GU3Tz)!CRfBHqL zYP4%hANFqV54vUq-H|(swOaj0v13dulK!g%(z$PM4?KqEZO&Oyb@1LmWCg?Pk(Zi4 z!42dnRRy7>FSZIBu(1ZiSUy z&TawQO0y2TN5>{YM!ALT{hs7*%tceRKy3_WzhFZLou=Atnc7f)4QQy!D=(uw0e$54 z(*V7~Mq_v*MThPCPI}9VF$$m@9Z@FkSYTO_M3~qbn-Yaq755^9y~7n?6P$XF&<2DQ z*c+O78&RF5dlP4pZnMVR7&ByU2yp3Wn5;xoV=R3H!0ZG=1dMx0!3@059ul4T&1m_*PjIfhi~Od@8?48=JzB7;(w6sD%9>?S#eh2{(+Lj3I) zuipJoyp0oWke9$0Zd98_)lFM|?zx-jpw(!qB`2UeKuZr%wB1y&B(G=%y zg1K31kJtK2Eu8(Q-4nC_yREND{P(UMegDr!Jjwar==g7#`G=GFzjy8G`+qj#>B;}I z{L359E`NFB%<}o=PnIv;c=pCCV)@!~yDN?Ei7#mRo#pGxpFt*s+;~phcm_UyfdGO)@#S}*#6_rc zg<81?^{(A`dHDtUZbL;%i#| zF;T^ziS}N>@d%)V>(r^|mcJxIxp;pkELnadiVs24gADTt(x74%i9MJuAVVnk1DL8$ zfjF_i86uPOlJPD|oB%ka;g^wcuiSX;#tX=Si2f@;^u&`ILEkuwpf3WbPv~C&sM*@Y z@=xF^@()uz$OV9YoqF{-bo?Ur5lQv}iVgU_{J9|UakeO^U{d(RL3}|VZoG=pNWi#W zAfP-R02>TW@5?nTQ&e2eG7L(cV_+=LzNB6$3|tDh9t9n|1JVTM2En#`0eKyy1pmD8 zD%ANLaC8+Q0K!Q4X^t`!DkT~tio6cKGLpX+Nc16YFK{>3>^ocjHL^0adx>!dA`Re6 zR{pb;u@?hsU^J5~0XaxWIM?^BedWHjf80bZu;4$(x(v$o&p{xNJBR4(DzQCF13`Rx z@y3hrYq;;&$u0kmREa;6jL#NJnhtOtN&u^aT)Kt}1c^Fi{HqGbxKcw2qt1-^IGp@BQfO|RyAk?1u)3gU&+LY4TPyVIlACZD}A(Y71*U`na{9cITV5RJB3I&w8z)NDU z9w^$wTqTsAXWiubjpqr}GxQ=t$P)2Ax}{*MFCz8A%w1Z(8Y=|LIn5KU^*B$xJE|fh z&`{D-*E3vJ%ReHzA*5diVnW(Ok|!1JD(xg!|=$5MeMRsiZy24ME-4h$z2^$>NA^{38T$l{deN z|1Z$4kcA;BwbzN>K(nQiS76-dslTtm!Wr=9Aga!U9;v0Xo_B$^uh&xs%j3DAZ4hX1 zmw2K0lC*4U2VZ?2yh_=v_Wfe_=uFY_yQCzYAw}p?k_hFh-EPO-yIUt>c#?~p=xWUr zDN-_pYB%2V14DX&4N|%iqi=-I!@7hF)s-&@Z6m-DpGfw&s9Co9>3#Z7<`c93dvjkG z|IepF!5^c$OD$ZQtVHZx>pq2d#C}lxCkihB|%U82D8N+V^q25xD+`HMw?M_`bKX z-cJMWF()>1%{u4A9<^bI?eVe`%Ze>mAX~4;1ykbU+DC=knE#!V8`o1TXC3y9*`L?6 zyNc<5i!(zN`|EK2f9KA={=X4V>ilo)`TuQOABpS#k8Io3&;Pk0Pfz;)%DErjIrGfQ zi|02u;Oq9EKEM6U8@E2avij@?w|@SETi1Sg>kn_;e(#mlH@>`i`SQvSfA&9To@I!u z=U%^g{TEP1LR(0;5-Ms$g?Js}1`r2=AUb%Af+D}$q{Da=a-><%S>urGW^53t%lu9z% z{u!C*@^980&%->3WdFkNS3du<8vpG-J#+KQXZ>yYSGX--ed#(#Dv;m*bLJI&(EoGh zRiw*HmxJ0sBCDT%u=4yXFpWXmw=cZE`r_v+*M1Duqi99|B)mJWZmZ4sq^0Qm%733Jz_hOZ;2aM3_19pmf4_RJzs=4O zZJ_K-CE;7oezEex6_A~)uK+oHymI}gz(PP9D`!988M=ApwNRFW++SbGSb6m)D7?@8o?Bcw`^S~5XI9^Q;npACz5S~{#I&q53T(4GhUFo6 z!<=*1JL8q#fY|sfYs}2Wy++~yCEj`C4CDRwmoMD<;N_IfaN9teTd$o5{6@a5{_Ib^ zN7QgnwBcZvdfe7?U$`pF-QTbN{639|Vb$g4wJ!s0@XmABfXdZKnbhHRFjyx0n^%7h zlpky{P>VYIX_6UnWqS4lD17J4ORFz`c<0K`Zh!n6kZnMNtM7ik^32ac(_wl9O=tDR zH<9%S{>qEbL%S#ipMPuRqo1z+^s|*SZ!r*D0+{tk6Ha5demqHU=d5{|(J*!EjX$H} zOVaMn&tJdwJGt#3Ji&|GKRqXRcORd*dFADm=g+Qu`~}G6TW`DriYqLJf4}+;52 zwP@SS`exzfMPT)%GpJlK&t7>g0CwlC-@tZsj}G?Q)k|k@z5e{l3zvBll)lxD1@qjx_Cp{{Z1|&}u4D8LFWiOLx1{=) zRBKt0E$ANx`_VlA3{PnP4gM-sJa1jw=wScfzIE%4nEiLxuATk(j}3V?Z+=G5p=2K1}<2HgB4@s{YJwvGbeFQ}AoXv}!Yc@Uv-D@y^@bVmtmkt;0j* zVrZ)Fz&`Qmu-+~zxCt-dgiUyT$f#R2d$(v<)oR_0L8w}uRJMoe25bd0`?h`8R)X3v z+?r(%O*yb7ZQ$!fr$UekV5cM4kjpPOT#VqU*~DZbDCALSr60!c0xv*yCudiTx5 zhj%=@b33j7Tem&Z_y2FilQ#e4qA2;z`Z~4IA^vyU)*U-y^Z)R}+xz)nHspEwX>?&3 zl^HRBZhFebIN+T=y?N8qPfL@NK$Fi%ZrU>I)iN38kv4LIUW^QQC9H^gP;a$hg=)F= z9$TU%wzoQXD`_t9YhxVNtt+z(IM{(t>We(=+F{YSyS zb?3j(EigM^`@dr=?f-Y}?92a+cqsmB^YB9tZ59uSLm(e^C;eoOiy!w>LR#_w?G{JT z+HZ&t-dt}dK{b1xyzRCne}N}RV-gQ5z*$$ z2I~`fZvn3g$xoihLm9`;Pbz@YpH&j0(;Nw7c}4aGwJ-rQxfxaL7DBaLF+OkkSXKoJ zD3_Q5Nj`|2ibxYfdlh1XAhl93N&%Gi{g#Cx4z};@7Dt{uva2X6pg4#V$I!a60En4# z4R>KutFzy!@I`h^teuF+HBsR;hv%(XE2Jn!-Ec7dW$q=B1~Lq__FXdwU@+<`R7fH~ zx&&}t2DYffySgc+82|H*JIlU%3@!`WK#?ypwJ1&xeH~NSwPtfcA#;2NoqiZ{QEM%DGPEe@EaoK#7#7wBcn|O}tL8Ky zrjS22K01E<*rBoU^8T^MM~@#IFCRI4@L>7Cq4BY!PmLbT7sal@Jz{uR)T}wvroep5 zZh<~pIQhP&W;lONo(c{8IbKnCN_JcX%>y(m(j-b{qlvN^1v z2D8&JPSs7j=Fb!ch%;0*z1pfJIQjvqW2eJM-IZ#r4vl}NU~dv~PeUfN4-NFy1Y#DMnX zph8Na1y=x9eg~Ntgy@sw<3|)$=?j1UmP9JDxNCZ?y69U3@M=O$4r3f&MwUlrq zfq)!dCqW8zrr;gya~726AC|yVTJ(Z5EvCaIPSA1~P8bT*!T<h z5Uy|mmCEQ5fX{~O8Vd!9uYrmMuTZALXUkWwVe#FEaz5x2^#O`E-BVB=d7c@vpjNM9 zo<^Zq*P1TC)PhhbV3k3A{;4ql>@;!St)kcmM11(jcp0bR$kD_9`#;8yA38J!^t4Tz z)XZ8`qewl|X#jqnQ-XnN~N`TTp z)5p3~SsPTYm;&~s zXU?Q8ds_sRL8PrS^2uOvkLWW7d|ik$W4%zbRoF6M6t@ga5krEe{D5G@p}JZCMS0UE zUWITP2BKJ!N_bOh;d;Gd*dx@+6`ufn%l7AtdLagCP>hVgwgCH}w^B8ydv2&awNRE( zM${(2!;8gme>NftDecQfR2Lo-c|jg0vpSNKf8^lZZjqPprbKB(;vQio6i zMmX}?afUcQh~?S2l!xABsRt3V z03E|94)CBeW<69t_7MA_{nBT=Xra!*HWKtd?Jb`vk|&tt(PKKftDUN%%v^QLjx04IH6StgU<4kF;$a{0S`r9pcQbMkLRR?tpyQU7GAkbmuF%K za-@7zZ;C-5j{L5g^>lg_I>Cy(7JH@Z(`y02_L8+iQ9QcVx-qs}3mCGlusQ2)Alw}u zWSrMsp+W^It`!If72m3^wKhjO5~HuV2OuTQdfh^EMLCSCB>8t*pqD+yZSB}po;YTsh2kcvOJ zNvoIz(yP`t!%BXzGe1Gi^rFe#-q z`IbPV;-nN|w?0Cyd*Oy7c4nh~Zwv43bwQc~V(TU@Qyw|x>3q8iK1g}iC?GSbjD%$d z+pJwib|&h(Yf%@Ia_;UDVwzw~jG`+c*;Y6rDa7f3vpGpxXc!Aqrf7h0AX{;e8bdsm z3NNz6hg3YAPshgkE$_W8?HL?kJM(Mf0(>@-6V}q+-E%`Pt#;259T#t$EDtk15@oVO zgXSnmD5NF}Fa36KmNH>!O2A!bFXLrDb66X@l5bLP+wRRQJ7fJOACjf*zPuL77SMQF zo(!@QM-Ci{Wj7(bQ=NuUvnsg8b8rzxO__G4grGm#SoyLy>6`EwsNmVPo96g@!0*SA?v*f43@9urF0JLs5EW1MF9fW0)OS?yjG%;IxQ(UYB#i|Q98!o2 z8ycaOqakM$gMh`1bR11|>BzoDjvBQ}Xl7+9t}%rtft(JhRBoycqPPvJ0off&m4B*bzT z(meij*|v04Y`Zs*LxWm&6Rfn?9hsVC6g?(E@GGTdiS7?zWw3C|VTy0JYU072+f$+T zE{}1-0y!K|mxaj?iPzD*tR$%*%Gpo87(Bz9lapJ(9Xz9|@ z4j}`U%N$BxF6(Jk5YD^-yPobzOU|zHoFtfuy%@NTtn=(A49nSlP$lkFCqfF$?1Fwg zo%_)q#qG?tMUmMIms>*v88+QEO=+dV<|v{C)g^u79?PyuUMWz8w7J-H8lKIk+xe!X zE7H@|krdxld={0rNc~1;MSee#pYa>@8PlkOs3(sd<$nSpfiAcOV6_?3^m9Ub=`i$o zxZ-&^G2@!kBkYum^F3`{vc0iT9joPYm_yw%MsmPt=)%L7xe0f|&Y?FAP2HQsL+ET& zW@By5F*qY8Dn%G2gzK>p&8E3UF3<#I`ygjpWj%`*L@405rl(QXG+kKZF)^poFO*wO zrWC~Jpb(=E;XejtVhV&1rV->^Z!&U7E%QyzJ0~cs6^b?AY*LqY$Z?@J4MkEUF%#?C z9%fkdFi22%)*@!+YFIvPThaHZ*}LyjIlNoNkYTKgPB`F5ZKZoKnvNhOjGnuqYXuBL zrOWFcM&Q36kp6J;q$@z3UFHKIox5nYlPf=<33wOjNC>`TUji5;rq|S|H18gRi*!nF zpkucHM=aNS?NQv>r{F}o5&_-CbcJ%i*Y33O8){G^ol7*<4YIsM2!>ijI5kd=f+19~ znH_ucrRb6s&*2SQ_xz*7SP+mbwvYHDc4la@icE~9GrBX%5zqs3sotrkq`*V^6fdW&7Wpp zXCn?yS_A4Q93u1_qg3nu?83$$6Y=_Rnp%I>rOrqh%g7thM z=8}!!n<7qhtiuMiRj;R6Jpzi^NozKcOm_*}RTvJ|OEKq5s7)rrf0ium6Q{O+Gf319 zKmN6p12p9EV0{}TAkSJ=Eea}d8PB_DByw|UwF8fJ*A8pdo*s$i8db|lgki;e*1-w> zd@1hZEah{1gSRR}1HEU@U`of6HolM=5L3DgqmZMVOcfBsbhSfdT=;PeRe(v+E@eSH z@+y}BEyM?N#4#DC#ft85dPk$fPO??!y!Y8G6=SD-KimCAWV_F2@OCy|E2LyHwyMfG zy3#8LdCqb;l#CKNNeRge^0Ljl@?ZAzT7c@~gy9>^1;g=rS$@z-2GDM$D-; z+oCKe)HSZwvaYm4Txw#*1Oj8F5RnmuTl-F9WQDtDoW+}Ii@QYO4Z-2pZe7;x(c!km znbk~A$@L3;A$11|1=mNg)F8_eK^TUA)kcYJ8)~cMM7K(+QEWA0+eXcEfy1g*>VHm; zPKz-#8=ykg=1VXzshUG4u!9A1SlUH+orG1lYI#k}reY|27j8r(l+gJWq}vGnTxg@$ zb>L`+3<*NLg4HwDN5sk+y)zSnM@{Thl-3|jmg$RV0Q)y3ZLOA0E z?J{iKfT3eiA4yEtx{q!#(G?yI6Na)6ml8flJqrZSM)7gbWK9rtAgBx%%8ca70m0xg zkw#5;Ze=8wuqnfC*RqjlL+f(WuH`Tz3hhi_E>dqRp_oXL^ab2r>z4) zqTGb+hc8OC=>86rxW1vao+kLQjkdy`3JiAvi6%zDVn2Hlnk*FT1bI43`5v0s-c=jh z^+vK8H}Ku2b%EEUHab#_48C5gQ`k4$>Y>(+U&8&qVA?_CgUC)Y-P8A z=>Q>}CIM2lac(d}3#X3(i)7!NqxQVrGKB=(>71E%&M6l;TJ}#xM!MHsU*G~QN8eBn z3teMS=i*TxP}Mv~#*kt9B~+1S$moR^|5zT`0kvCvycBJv2Tgz#fgmbIs#C>4kz&-V zYi^P%K_M@f-eJy~QLgBAln%Ut4qcioSc_uHHl?o5@d^d}AUiO$SDtq)TMbNm*>dYF zl^$)TfDR1uO#B)5J@IOwt*t>@p`Tc_D%(q2P$Lxq2`0zNA{QG{)bRFa?UbbKa`%l;KmovwiDW;RZ@=WuzM zK@Yl~e*HmmIaBM5oWty^n|jpo!Ue3;f+i16Yl|6$YbeJeMrmX(SZ$WIG+acktVke3 z-6y3yj6K{z)gyLPOPyDHRWODf&28Qrf;wSHzgr`LApR)rLF;vQR?K?T0duko9TBI> zX?O#)MIGwvi@ErnB?;_>1(Zdt+snOrLy^`_M>OeWqo_){_Tj4Zr^so{7ZOKZ`#}Xm%gFE)rrwDsmKm5jkvFRrhUi9;%D|^c zKoJ{}^*40T9BQ|$Dk_*{W2P6R9Qvj_!4gd!v$g~^It11+WROx6E_4Ain5c|+`FJHv zV)9rRS1Ze%NS1@)>=s)orU?VOL91pH1m!v?25P?CF2F_rM1y`B1o0YzhplAU1AVfB zF$vH|*?~0%+)?tMRD^5`B{jw8Cdx#Ebc4AL>!^cyIEm0MtX>o{tyhbFBiby6oS*VF z9E{4)2{g*FKZ;Px<|zxbjsg_Mm8y)wG%tvHLRt>KP&QVzp-E4<>`}UGm28>Wh%;!* z%|87oaOy)<0#*LHSLPgmdH@)IfMLRawuKp2VW$;ViEpriPcWq@DKbII@7v-rWePwO zn0?-Hs~G@9UKPlM;CWdC0(^V*ta=etm0{EC9z0e^FAAG_(}&qpgTZqy@$t8>sRp6d z3#hXgd8T0^$i?n-M zoZge3hl>%|@M<9ZFw?Vfs$7{dTv{a~GA1W26T?$e=t4mmlj9_gX@&5p!}ey~uxwS3 z(smtm9Lg%A44l)J3(FUo?KW>3p#K8<<@21It?8Pza>MW|Glksn#0jfWn;0pa*gEvD zlMfA^Qh!WL7D^92HaKx&Vi*fd4qINXh~jw4sV?Lvivt9}^l14Anow^~?3h#mw(1+U zKgerYN(XvrEv30_lN?+PE1K1;oAeze4z573eiSrNB8Ls;2E_v-Fkx=iXNB7DqVWum z16D)dBxVqz2rn5EhGr&CD2DFi8P{pmW&}m*b^z41%<%9R8V`+#}}zUig+@$2*c?*tr}{npRqVEafKb z2|HJ!Pig`K6v8`1&lC__!*FK_g(G5`T%R0u0K%k+F~G_ohAuo}_jw2N#{1rGE;YsB zaCGQpTE)#NxY#vlP|);bw7f_4e;XESO+iUjY%6C;4vTD06p`P#FGn%QBz71v|NWLj z7kQ<13WeT`xj=S{2IwU91-?r{CxT?flHLs>d^C6%$kagk)E;u*e@;wBnU238BQ$cw ze7?vqqNB@O%r&24$`)b@uT*}g|W562FTm;e3v;qkF!pfw#Ie|+ehe0oCSE;6&2Mx&%)m+})Q zKr#T$Ow50S=6N#s3uYWY!F=ZlN4aq5dQZ2D!no=AgI#ra*S>vUNr&Te<;@`9nS2RD zM!U!YRIVV~QH{_`#Rnwg2DX!=D@K|d_2tS5?2K0|hcXQ0Ga?Au#s5INyjm-PLNZYP zM*$nhg+l@2n`>y{CV*IC0JH;ugo+O>KqQ0nAcF-9;c%@lP^%=`e79u|@&TZ*c2^}+ zCK$gIwTTVqb#p{As%1402Aem{&!8hCSQ`+KAjBfaY3l+?8g5?~2dbp3gVPR$vfK5V zMkTXVA-ZW%AQ9(;-qe8OS~V_;@8Ye4D(D5+i_lqqxIhVt8WsgfX-@I`n@) zZ=&Br6OT=7nb7bF(igf=Zovcm7#_$LukVXwFT?KF{N0x@ye+Xm&*iv%E{<#I}Ui_}*Ht|kGr zwl?>8z~yqn!AM0YH4Z%^hs%th42fN1Z7eZ=>(TCfkHf?KU z5a=JMbJNz-v`ObCD&WKq4X0{N|Zrw{oM0_J=es3o&0~OM~L@Q4t@#mT6n*L{K0%vNzfi@BkqZKI9}1=y|S!7WRtm zTVpuW?OLi_tbQPAV5tFJUzLi^1ha`0q*8mP@om+%vtlUODb64;fXQvCNUZwMHvXOt zS$z%k|LF3P3%HX?AWstiWpq<*12nEsy+Xo8cx|c=?HDZON~KbcSTkc8ODrmF)-S-8 zQG-Q#z1Oj9dP>Z(Mp$y+IJhSxm3WXKU$^j6S_3-$uTqq2(NJ{lo$>+jwY`{=;lKVX zYQ@JFRHWjPw>LjYqgIXsd@-2t9XxS!TKv&i)d67ogUC!uY*>ldUS!IN;4t|Iwxw;F07=hGvRkh@EcN+IZ;wt#@Bh1BfH3Q z6W%1+YLfG99{z7NWORjuC-c{~0f@nSbps7QBqJiH3t$@vO3J*kpbF-21<1t`vgo#P z3@GFCQ`MGB7Wi1{dvVH!ADmuy=~1tR6g0L=j(jCXa73Uq>;Yia(G6lC+QbaOC;^aHl*nqSSfpZKKH=W4MprE!dW+b{4#o zN_k{ur2xP$QUG>76skj7h9mVyX8y`e8ceNqnh#}%40k)w(2ht$iGiO^w#{o6+EqrT z>c%9RtS6`HttmV_aso~0lPA!!GD-d!^�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 literal 34814 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 Xp@tf2sG)`$`UlYOiMn+504M+ecax^F literal 1822 zcmV+(2jTc1iwFQsYm!j_1MOJ(wY}nh1u5a&$ zqA+NQvN%hmMpAZ+ApiUBNXfAix7`m-A0DcM0ZHVM_w94Mqc?n^Z9IJPm^4BHgEbpN>x_lgabxbcB4Tr=#iU2}~bVtC}ifnFe^Gm9n4W``rBhDQ$fGEicNPS#BN! z3I86hcO}%)gur3h?vEM5E)xdu$KbC@ z#4BJjfkbG#1(qaAf>rc_(;iIppmYa@OC+$ejNqlICj*wOnT)vsqd>D#B>5I>#x*Ai zBqPpf9>?&zbZWsy*McZD9fil5b!w60V$LtV)D}SjiOkl(CRY)KBHO zAG0K4q1DE4O-k3VL9B|Rk|JhSC^-PBa7&&LN1`?|S1bWj@>rxIMy*r3VW@4YH2jI+ zIS>`0ugDZ)D45)$n^HGv8{Y_tcysoXvI`!w%AjE>`2Z}BGpTa5+=3uw1I<~E{$WsZ zZP3%>=H;Hsm2r0B7HH4fTc;$hG-4@P4x3B`8z!xx3Cr>oJ#ld0*09)C$YeE>2DNRp z@t!0#y?4=h7bsd-Eb})U&*u;u_$T(Cg_>9%bYW` zd*@#zcTPxEo~sSo6L3MmfFClg3O;lXQ57(r0{T7^OPa*DA5p1PUBmeFZae}E1ggg| zKF&`xot6aj(!pq(ES89%@% zA$~BEV(*2x@d64o4ulJ2L@Q`%@K=QfBO>}f4jxm+;oej+qRylhr2@L9)G8*FZ_vpI zr*hjM=)PZ2yWlXGgjg~PJ4T!*q%!!YzB{EA;2l1W>slCpu|RhG2Y zdx0=;OgI@x?(tHiwnzBVRM&t1h{~*d1R0;H{}bx@5AXkY|9jrn|F1!pFEHl8@L2%Q z;8#4aE~vD=efI;rEX%yEFEsaxn^=pIJ}(Zd{Xwp}N-=bmgI4{4)yl0njYjnSva*@d z7ho(e=|CtL9(xH~Hm7c?1(%6AICzJ6QqkRHSTKDpj9v33lUMt@y;BQ;C*&)^S12!2 zY3g^x4U@aED8us;Yvy$%xveFkfxGRk+l4kB20>cMm~5?$oI4})yw``D0BX{FiRy4Y zM;lhX5YMxD!DST=Aas4v@Ih|TRK4MjyZ>Eq`%oV0c|>9*znIKpLYw(smkpkF7bN+l zyLf*m<-_|AFoSUa{)cn_vcl#ZuYe3PtZcK6->!2NLIk!K)`0qhpn=Vu4f{AAUJhA( z@e7Z7z&8qW_jd&Jo}x$l@h4q{ zOEq@|43}eVHa*;LfQ_4G+g@-&`-k-JOUf-JRHR_@&|9;9$@A@2T7Q z&)Z*cwNu%b%7!}}>@9=7TlfZV&AyGm!l#X|lT8cKBq_NQs2#!TAHk29fc%=F7u-s$ z$5gecT7R^wfhg>gL460qPsLzfDr_Vu5C<_pjnS38-gU1#fAib#?{;V-Q~G^)f$g+q zOVhJj6gAKLJ(ds1a{(bi(s|V!aSj|fl|(k&LZ+(cV#6&pcLu65K@TNpRs^qq`{j6c z6)LH6?o#VSb6aV7lnwQ;*sMITnZOewYIh^UXOLsNg9^}p9n`GUfui_OcnlpXyY)M3 zYW#iz4E;kXyjbwWcS^NDa1t>^@TMhFjVJhlC7KfGUUlwKL%QZ`+AZ|!RUwdZdALalkAH7^ zd)H;+N$!0jq`TP|+?G0NcMrj9iHnHS4>gOt=_OfyB2wt>$AbdvU~$ABZ~UEwP=Pll zpPRcf0{)=dsl)Ji!GXlz#e9S-&7GRHW8JxQpv^7t93|WnUx(G`c-9G{J8h$|g9arw zn{}R#M&)$}yK21r*ya Date: Fri, 31 May 2013 13:23:18 +0200 Subject: [PATCH 02/18] markdownify the README --- statusnet/README | 102 ------------------------------- statusnet/README.md | 144 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 144 insertions(+), 102 deletions(-) delete mode 100755 statusnet/README create mode 100644 statusnet/README.md diff --git a/statusnet/README b/statusnet/README deleted file mode 100755 index df0412d0..00000000 --- a/statusnet/README +++ /dev/null @@ -1,102 +0,0 @@ -____ StatusNet Plugin ____ -by Tobias Diekershoff - http://diekershoff.homeunix.net/friendika/profile/tobias - tobias.diekershoff(at)gmx.net - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! This addon is currently under development. If you have any problem !! -!! with it, please contact the Author. !! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -With this addon to Friendica you can give your user the possibility to post -their public messages to any StatusNet instance (like identi.ca for example). -The messages will be strapped their rich context and shortened to to the character -limit of the StatusNet instance in question if necessary. If shortening of the -message was performed a link will be added to the notice pointing to the -original message on your server. - -There is a similar plugin to forward public messages to Twitter: Twitter Plugin. - -Online version of this document: http://ur1.ca/35mpb - -___ Requirements ___ - -Due to the distributed nature of the StatusNet network, each user who wishes to -forward public messages to a StatusNet account has to get the OAuth credentials -for themselves, which makes this addon a little bit more user unfriendly than -the Twitter Plugin is. Nothing too geeky though! - -The inclusion of a shorturl for the original posting in cases when the message -was longer than the maximal allowed notice length requires it, that you have -PHP5+ and curl on your server. -Where to find - -In the Friendica git repository /addon/statusnet/, this directory contains all -required PHP files (including the Twitter OAuth library [1] by Abraham Williams, -MIT licensed and the Slinky library [2] by Beau Lebens, BSD license), a CSS file -for styling of the user configuration and an image to Sign in with StatusNet. - -[1] https://github.com/abraham/twitteroauth -[2] http://dentedreality.com.au/projects/slinky - -___ Configuration ___ - -__ Global Configuration __ - -If you have configured an admin account, you can configure this plugin from -the admin panel. First activate it from the plugin section of the panel. -Afterwards you will have a separate configuration page for the plugin, where -you can provide a set of globally available OAuth credentials for different -StatusNet pages which will be available for all users of your server. - -If you don't use the admin panel, you can configure the relay using the -.htconfig.php file of your friendica installation. To activate the relay add -it's name to the list of activated addons. - - $a->config['system']['addon'] = "statusnet, ..." - -If you want to provide preconfigured StatusNet instances for your user add the -credentials for them by adding - -$a->config['statusnet']['sites'] = array ( - array ('sitename' => 'identi.ca', 'apiurl' => 'https://identi.ca/api/', - 'consumersecret' => 'OAuth Consumer Secret here', 'consumerkey' => 'OAuth - Consumer Key here'), - array ('sitename' => 'Some other Server', 'apiurl' => - 'http://status.example.com/api/', 'consumersecret' => 'OAuth - Consumer Secret here', 'consumerkey' => 'OAuth Consumer Key here') -); - -to the config file. - -Regardless of providing global OAuth credentials for your users or not, they -can always add their own OAuth-Key and -Secret thus enable the relay for any -StatusNet instance they may have an account at. - -__ User Configuration __ - -When the addon is activated the user has to aquire three things in order to -connect to the StatusNet account of choice. - * the base URL for the StatusNet API, for identi.ca this is - https://identi.ca/api/ - * OAuth Consumer key & secret - -To get the OAuth Consumer key pair the user has to (a) ask her Friendica admin -if a pair already exists or (b) has to register the Friendica server as a -client application on the StatusNet server. This can be done from the account -settings under "Connect -> Connections -> Register an OAuth client application --> Register a new application". - -During the registration of the OAuth client remember the following: - * there is no callback url - * register a desktop client - * with read & write access - * the Source URL should be the URL of your Friendica server - -After the required credentials for the application are stored in the -configuration you have to actually connect your Friendica account with -StatusNet. To do so follow the Sign in with StatusNet button, allow the access -and copy the security code into the plugin configuration. Friendica will then -try to acquire the final OAuth credentials from the API, if successful the -plugin settings will allow you to select to post your public messages to your -StatusNet account. diff --git a/statusnet/README.md b/statusnet/README.md new file mode 100644 index 00000000..a76091dd --- /dev/null +++ b/statusnet/README.md @@ -0,0 +1,144 @@ +StatusNet Connector +=================== +Main authors Tobias Diekershoff and Michael Vogel. + +With this addon to Friendica you can give your user the possibility to post +their public messages to any StatusNet instance. The messages will be strapped +their rich context and shortened to to the character limit of the StatusNet +instance in question if necessary. If shortening of the message was performed a +link will be added to the notice pointing to the original message on your +server. + +Requirements +------------ + +Due to the distributed nature of the StatusNet network, each user who wishes to +forward public messages to a StatusNet account has to get the OAuth credentials +for themselves, which makes this addon a little bit more user unfriendly than +the Twitter Plugin is. Nothing too geeky though! + +The inclusion of a shorturl for the original posting in cases when the message +was longer than the maximal allowed notice length requires it, that you have +PHP5+ and curl on your server. +Where to find + +In the Friendica git repository /addon/statusnet/, this directory contains all +required PHP files (including the [Twitter OAuth library] [1] by Abraham Williams, +MIT licensed and the [Slinky library] [2] by Beau Lebens, BSD license), a CSS file +for styling of the user configuration and an image to Sign in with StatusNet. + +[1]:https://github.com/abraham/twitteroauth +[2]:http://dentedreality.com.au/projects/slinky + +Configuration +============= + +Global Configuration +-------------------- + +**If you have configured an admin account, you can configure this plugin from +the admin panel.** First activate it from the plugin section of the panel. +Afterwards you will have a separate configuration page for the plugin, where +you can provide a set of globally available OAuth credentials for different +StatusNet pages which will be available for all users of your server. + +If you don't use the admin panel, you can configure the relay using the +.htconfig.php file of your friendica installation. To activate the relay add +it's name to the list of activated addons. + + $a->config['system']['addon'] = "statusnet, ..." + +If you want to provide preconfigured StatusNet instances for your user add the +credentials for them by adding + + $a->config['statusnet']['sites'] = array ( + array ('sitename' => 'identi.ca', 'apiurl' => 'https://identi.ca/api/', + 'consumersecret' => 'OAuth Consumer Secret here', 'consumerkey' => 'OAuth + Consumer Key here'), + array ('sitename' => 'Some other Server', 'apiurl' => + 'http://status.example.com/api/', 'consumersecret' => 'OAuth + Consumer Secret here', 'consumerkey' => 'OAuth Consumer Key here') + ); + +to the config file. + +Regardless of providing global OAuth credentials for your users or not, they +can always add their own OAuth-Key and -Secret thus enable the relay for any +StatusNet instance they may have an account at. + +User Configuration +------------------ + +When the addon is activated the user has to aquire three things in order to +connect to the StatusNet account of choice. + +* the base URL for the StatusNet API, for identi.ca this is https://identi.ca/api/ +* OAuth Consumer key & secret + +To get the OAuth Consumer key pair the user has to (a) ask her Friendica admin +if a pair already exists or (b) has to register the Friendica server as a +client application on the StatusNet server. This can be done from the account +settings under "Connect -> Connections -> Register an OAuth client application +-> Register a new application". + +During the registration of the OAuth client remember the following: + +* there is no callback url +* register a desktop client +* with read & write access +* the Source URL should be the URL of your Friendica server + +After the required credentials for the application are stored in the +configuration you have to actually connect your Friendica account with +StatusNet. To do so follow the Sign in with StatusNet button, allow the access +and copy the security code into the plugin configuration. Friendica will then +try to acquire the final OAuth credentials from the API, if successful the +plugin settings will allow you to select to post your public messages to your +StatusNet account. + +Mirroring of Public Postings +---------------------------- + +To avoid endless loops of public postings that are send to StatusNet and then +mirrored back into your friendica stream you have to set the _name of the +application you registered there_ of your friendica node is using to post to +StatusNet in the .htconfig.php file. + + $a->config['statusnet']['application_name'] = "yourname here"; + +Connector Options for the User +============================== + +* **Allow posting to StatusNet** If you want your _public postings_ being + optionally posted to your associated StatusNet accout as well, you need to + check this box. +* **Send public postings to StatusNet by default** if you want to have _all_ + your public postings beeing send to your StatusNet account you need to check + this button as well. Otherwise you have to enable the relay of your postings + in the ACL dialog (click the lock button) before posting an entry. +* **Mirror all posts from statusnet that are no replies or repeated messages** + _TODO add info about the mirroring_ +* **Shortening method that optimizes the post** by default friendica checks how + many characters your StatusNet instance allows you to use for a posting and + if a posting is longer then this amount of characters it will shorten the + message posted on StatusNet and add a short link back to the original + posting. Optionally you can check this box to have the shortening of the + message use an optimization algorithm. _TODO add infos how this is + optimized_ +* **Send linked #-tags and @-names to StatusNet** if you want your #-tags and + @-mentions linked to the friendica network, check this box. If you want to + have StatusNet handle these things for the relayed end of the posting chain, + uncheck it. +* **Clear OAuth configuration** if you want to remove the currently associated + StatusNet account from your friendica account you have to check this box and + then hit the submit button. The saved settings will be deleted and you have + to reconfigure the StatusNet connector to be able to relay your public + postings to a StatusNet account. + +License +======= + +The _StatusNet Connector_ is licensed unter the [3-clause BSD license][3] see the +LICENSE file in the addons directory. + +[3]: http://opensource.org/licenses/BSD-3-Clause From 2e22106238756aea3e34e71f3664925f8e2604f1 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Fri, 31 May 2013 13:27:31 +0200 Subject: [PATCH 03/18] license stuff --- statusnet/statusnet.php | 42 +++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/statusnet/statusnet.php b/statusnet/statusnet.php index ca0b17da..3a5ceb8a 100755 --- a/statusnet/statusnet.php +++ b/statusnet/statusnet.php @@ -5,24 +5,34 @@ * Version: 1.0.5 * Author: Tobias Diekershoff * Author: Michael Vogel + * + * Copyright (c) 2011-2013 Tobias Diekershoff, Michael Vogel + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * * copyright notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the distribution. + * * Neither the name of the nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * */ -/* StatusNet Plugin for Friendica - * - * Author: Tobias Diekershoff - * tobias.diekershoff@gmx.net - * - * License:3-clause BSD license - * - * Configuration: - * To activate the plugin itself add it to the $a->config['system']['addon'] - * setting. After this, your user can configure their Twitter account settings - * from "Settings -> Plugin Settings". - * - * Requirements: PHP5, curl [Slinky library] - * - * Documentation: http://diekershoff.homeunix.net/redmine/wiki/friendikaplugin/StatusNet_Plugin - */ /*** * We have to alter the TwitterOAuth class a little bit to work with any StatusNet From 5b1db103c3a18e94427dcbf554b0d02640427f6c Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Fri, 31 May 2013 15:51:53 +0200 Subject: [PATCH 04/18] some fixes for the README --- statusnet/README.md | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/statusnet/README.md b/statusnet/README.md index a76091dd..3e7540f0 100644 --- a/statusnet/README.md +++ b/statusnet/README.md @@ -2,7 +2,7 @@ StatusNet Connector =================== Main authors Tobias Diekershoff and Michael Vogel. -With this addon to Friendica you can give your user the possibility to post +With this addon to friendica you can give your user the possibility to post their public messages to any StatusNet instance. The messages will be strapped their rich context and shortened to to the character limit of the StatusNet instance in question if necessary. If shortening of the message was performed a @@ -22,7 +22,7 @@ was longer than the maximal allowed notice length requires it, that you have PHP5+ and curl on your server. Where to find -In the Friendica git repository /addon/statusnet/, this directory contains all +In the friendica addon git repository /statusnet/, this directory contains all required PHP files (including the [Twitter OAuth library] [1] by Abraham Williams, MIT licensed and the [Slinky library] [2] by Beau Lebens, BSD license), a CSS file for styling of the user configuration and an image to Sign in with StatusNet. @@ -69,10 +69,10 @@ StatusNet instance they may have an account at. User Configuration ------------------ -When the addon is activated the user has to aquire three things in order to +When the addon is activated the user has to acquire three things in order to connect to the StatusNet account of choice. -* the base URL for the StatusNet API, for identi.ca this is https://identi.ca/api/ +* the base URL for the StatusNet API, for identi.ca this was https://identi.ca/api/ * OAuth Consumer key & secret To get the OAuth Consumer key pair the user has to (a) ask her Friendica admin @@ -83,13 +83,13 @@ settings under "Connect -> Connections -> Register an OAuth client application During the registration of the OAuth client remember the following: -* there is no callback url +* there is no callback URL * register a desktop client * with read & write access -* the Source URL should be the URL of your Friendica server +* the Source URL should be the URL of your friendica server After the required credentials for the application are stored in the -configuration you have to actually connect your Friendica account with +configuration you have to actually connect your friendica account with StatusNet. To do so follow the Sign in with StatusNet button, allow the access and copy the security code into the plugin configuration. Friendica will then try to acquire the final OAuth credentials from the API, if successful the @@ -113,11 +113,14 @@ Connector Options for the User optionally posted to your associated StatusNet accout as well, you need to check this box. * **Send public postings to StatusNet by default** if you want to have _all_ - your public postings beeing send to your StatusNet account you need to check + your public postings being send to your StatusNet account you need to check this button as well. Otherwise you have to enable the relay of your postings in the ACL dialog (click the lock button) before posting an entry. * **Mirror all posts from statusnet that are no replies or repeated messages** - _TODO add info about the mirroring_ + if you want your postings from StatusNet also appear in your friendica + postings, check this box. Replies to other people postings, repostings and your own + postings that were send from friendica wont be mirrored into your friendica + stream. * **Shortening method that optimizes the post** by default friendica checks how many characters your StatusNet instance allows you to use for a posting and if a posting is longer then this amount of characters it will shorten the @@ -138,7 +141,7 @@ Connector Options for the User License ======= -The _StatusNet Connector_ is licensed unter the [3-clause BSD license][3] see the +The _StatusNet Connector_ is licensed under the [3-clause BSD license][3] see the LICENSE file in the addons directory. [3]: http://opensource.org/licenses/BSD-3-Clause From 08f59f89dff5a043d7dcf4d34e5d0399e93144a6 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Fri, 31 May 2013 15:55:37 +0200 Subject: [PATCH 05/18] SN license stuff --- statusnet/LICENSE | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 statusnet/LICENSE diff --git a/statusnet/LICENSE b/statusnet/LICENSE new file mode 100644 index 00000000..062cc888 --- /dev/null +++ b/statusnet/LICENSE @@ -0,0 +1,24 @@ +Copyright (c) 2011-2013 Tobias Diekershoff, Michael Vogel +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the distribution. + * Neither the name of the nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. From 3f259134d8b890213a14ce4107d10ca0625ce100 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Fri, 31 May 2013 16:22:04 +0200 Subject: [PATCH 06/18] Typo --- statusnet/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/statusnet/README.md b/statusnet/README.md index 3e7540f0..99f3a73a 100644 --- a/statusnet/README.md +++ b/statusnet/README.md @@ -110,7 +110,7 @@ Connector Options for the User ============================== * **Allow posting to StatusNet** If you want your _public postings_ being - optionally posted to your associated StatusNet accout as well, you need to + optionally posted to your associated StatusNet account as well, you need to check this box. * **Send public postings to StatusNet by default** if you want to have _all_ your public postings being send to your StatusNet account you need to check From d18eb959db9e40b1d7405e9f062332137c66a8c5 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Fri, 31 May 2013 16:26:10 +0200 Subject: [PATCH 07/18] markdownification of the Twitter README file --- twitter/LICENSE | 24 ++++++++ twitter/README | 92 ------------------------------ twitter/README.md | 140 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 164 insertions(+), 92 deletions(-) create mode 100644 twitter/LICENSE delete mode 100755 twitter/README create mode 100644 twitter/README.md diff --git a/twitter/LICENSE b/twitter/LICENSE new file mode 100644 index 00000000..062cc888 --- /dev/null +++ b/twitter/LICENSE @@ -0,0 +1,24 @@ +Copyright (c) 2011-2013 Tobias Diekershoff, Michael Vogel +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the distribution. + * Neither the name of the nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/twitter/README b/twitter/README deleted file mode 100755 index 8041f317..00000000 --- a/twitter/README +++ /dev/null @@ -1,92 +0,0 @@ -____ Twitter Plugin ____ -By Tobias Diekershoff - http://diekershoff.homeunix.net/friendika/profile/tobias - tobias.diekershoff(at)gmx.net - -With this addon to Friendica you can give your user the possibility to post -their *public* messages to Twitter. The messages will be strapped their rich -context and shortened to 140 characters length if necessary. If shortening of -the message was performed a link will be added to the Tweet pointing to the -original message on your server. - -The addon can also mirror a users Tweets into the ~friendica wall. - -There is a similar addon for forwarding public messages to -"StatusNet":http://status.net [[StatusNet Plugin]]. - -Online version of this document: http://ur1.ca/35mml - -___ Requirements ___ - -To use this plugin you have to register an application for your friendica -instance on Twitter with - * read and write access - * don't set a callback URL - * we do not intend to use Twitter for login -The registration can be done at twitter.com/apps and you need a Twitter -account for doing so. - -After you registered the application you get an OAuth consumer key / secret -pair that identifies your app, you will need them for configuration. - -The inclusion of a shorturl for the original posting in cases when the -message was longer than 140 characters requires it, that you have *PHP5+* and -*curl* on your server. - -___ Where to find ___ - -In the Friendica git repository /addon/twitter/, this directory contains -all required PHP files (including the Twitter OAuth library [1] by Abraham -Williams, MIT licensed and the Slinky library [2] by Beau Lebens, BSD license), -a CSS file for styling of the user configuration and an image to _Sign in with -Twitter_. - -[1] https://github.com/abraham/twitteroauth -[2] http://dentedreality.com.au/projects/slinky/ - -___ Configuration ___ - -__ Global Configuration __ - -If you enabled an administrator account, please use the admin panel to configure -the Twitter relay. If you for any reason prefer to use a configuration file instead -of the admin panels, please refer to the Alternative Configuration below. - -Activate the plugin from the plugins section of your admin panel. When you have -done so, add your consumer key and consumer secret in the settings section of the -plugin page. - -When this is done your user can now configure their Twitter connection at -"Settings -> Connector Settings" and enable the forwarding of their *public* -messages to Twitter. - -__ Alternative Configuration __ - -To activate this addon add @twitter@ to the list of active addons in your -.htconfig.php file - -$a->config['system']['addon'] = "twitter, ..." - -Afterwards you need to add your OAuth consumer key / secret pair to it by -adding the following two lines - -$a->config['twitter']['consumerkey'] = 'your consumer KEY here'; -$a->config['twitter']['consumersecret'] = 'your consumer SECRET here'; - - -__ User Configuration __ - -When the OAuth consumer informations are correctly placed into the -configuration file and a user visits the "Plugin Settings" page they can now -connect to Twitter. To do so one has to follow the _Sign in with Twitter_ -button (the page will be opened in a new browser window/tab) and get a PIN from -Twitter. This PIN has to be entered on the settings page. After submitting the -PIN the plugin will get OAuth credentials identifying this user from the -Friendica account. - -If this first step was successful the Twitter configuration will be changed -on the "Plugin Settings" page displaying two check boxes. One to enable/disable -the forwarding of *all public* postings to Twitter and one to clear the -personal configuration from the Twitter credentials. - - diff --git a/twitter/README.md b/twitter/README.md new file mode 100644 index 00000000..13f0152f --- /dev/null +++ b/twitter/README.md @@ -0,0 +1,140 @@ +Twitter Plugin +============== + +Main authors Tobias Diekershoff and Michael Vogel. + +With this addon to friendica you can give your user the possibility to post +their *public* messages to Twitter. The messages will be strapped their rich +context and shortened to 140 characters length if necessary. If shortening of +the message was performed a link will be added to the Tweet pointing to the +original message on your server. + +The addon can also mirror a users Tweets into the ~friendica wall. + +There is a similar addon for forwarding public messages to +[StatusNet](http://status.net). + +Requirements +------------ + +To use this plugin you have to register an application for your friendica +instance on Twitter with +* read and write access +* don't set a callback URL +* we do not intend to use Twitter for login +The registration can be done at twitter.com/apps and you need a Twitter +account for doing so. + +After you registered the application you get an OAuth consumer key / secret +pair that identifies your app, you will need them for configuration. + +The inclusion of a shorturl for the original posting in cases when the +message was longer than 140 characters requires it, that you have *PHP5+* and +*curl* on your server. + +Where to find +------------- + +In the friendica addon git repository /twitter/, this directory contains +all required PHP files (including the [Twitter OAuth library][1] by Abraham +Williams, MIT licensed and the [Slinky library][2] by Beau Lebens, BSD license), +a CSS file for styling of the user configuration and an image to _Sign in with +Twitter_. + +[1]: https://github.com/abraham/twitteroauth +[2]: http://dentedreality.com.au/projects/slinky/ + +Configuration +============= + +Global Configuration +-------------------- + +If you enabled an administrator account, please use the admin panel to configure +the Twitter relay. If you for any reason prefer to use a configuration file instead +of the admin panels, please refer to the Alternative Configuration below. + +Activate the plugin from the plugins section of your admin panel. When you have +done so, add your consumer key and consumer secret in the settings section of the +plugin page. + +When this is done your user can now configure their Twitter connection at +"Settings -> Connector Settings" and enable the forwarding of their *public* +messages to Twitter. + +Alternative Configuration +------------------------- + +To activate this addon add twitter to the list of active addons in your +.htconfig.php file + + $a->config['system']['addon'] = "twitter, ..." + +Afterwards you need to add your OAuth consumer key / secret pair to it by +adding the following two lines + + $a->config['twitter']['consumerkey'] = 'your consumer KEY here'; + $a->config['twitter']['consumersecret'] = 'your consumer SECRET here'; + + +Mirroring of Public Postings +---------------------------- + +To avoid endless loops of public postings that are send to Twitter and then +mirrored back into your friendica stream you have to set the _name of the +application you registered there_ of your friendica node is using to post to +Twitter in the .htconfig.php file. + + $a->config['twitter']['application_name'] = "yourname here"; + +Connector Options for the User +============================== + +When the OAuth consumer informations are correctly placed into the +configuration file and a user visits the "Connector Settings" page they can now +connect to Twitter. To do so one has to follow the _Sign in with Twitter_ +button (the page will be opened in a new browser window/tab) and get a PIN from +Twitter. This PIN has to be entered on the settings page. After submitting the +PIN the plugin will get OAuth credentials identifying this user from the +friendica account. + +After this step was successful the user now has the following config options. + +* **Allow posting to StatusNet** If you want your _public postings_ being + optionally posted to your associated Twitter account as well, you need to + check this box. +* **Send public postings to StatusNet by default** if you want to have _all_ + your public postings being send to your Twitter account you need to check + this button as well. Otherwise you have to enable the relay of your postings + in the ACL dialog (click the lock button) before posting an entry. +* **Mirror all posts from statusnet that are no replies or repeated messages** + if you want your postings from Twitter also appear in your friendica + postings, check this box. Replies to other people postings, repostings and your own + postings that were send from friendica wont be mirrored into your friendica + stream. +* **Shortening method that optimizes the post** by default friendica checks how + many characters your Twitter instance allows you to use for a posting and + if a posting is longer then this amount of characters it will shorten the + message posted on Twitter and add a short link back to the original + posting. Optionally you can check this box to have the shortening of the + message use an optimization algorithm. _TODO add infos how this is + optimized_ +* **Send linked #-tags and @-names to StatusNet** if you want your #-tags and + @-mentions linked to the friendica network, check this box. If you want to + have Twitter handle these things for the relayed end of the posting chain, + uncheck it. +* **Clear OAuth configuration** if you want to remove the currently associated + Twitter account from your friendica account you have to check this box and + then hit the submit button. The saved settings will be deleted and you have + to reconfigure the Twitter connector to be able to relay your public + postings to a Twitter account. + +License +======= + +The _StatusNet Connector_ is licensed under the [3-clause BSD license][3] see the +LICENSE file in the addons directory. + +[3]: http://opensource.org/licenses/BSD-3-Clause + + From 106c2566f21c52e033ef9fe829850ec552755f82 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Fri, 31 May 2013 16:26:51 +0200 Subject: [PATCH 08/18] clarification --- twitter/twitter.php | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/twitter/twitter.php b/twitter/twitter.php index 21dbc0ba..bde494e1 100755 --- a/twitter/twitter.php +++ b/twitter/twitter.php @@ -5,9 +5,34 @@ * Version: 1.0.4 * Author: Tobias Diekershoff * Author: Michael Vogel + * + * Copyright (c) 2011-2013 Tobias Diekershoff, Michael Vogel + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * * copyright notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the distribution. + * * Neither the name of the nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * */ - - + /* Twitter Plugin for Friendica * * Author: Tobias Diekershoff From 3af1c4826daea3acc43669fa4fb26c77139aac3f Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sat, 1 Jun 2013 08:34:05 +0200 Subject: [PATCH 09/18] LICENSE fole --- impressum/LICENSE | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 impressum/LICENSE diff --git a/impressum/LICENSE b/impressum/LICENSE new file mode 100644 index 00000000..6e29fda4 --- /dev/null +++ b/impressum/LICENSE @@ -0,0 +1,24 @@ +Copyright (c) 2011-2013 Tobias Diekershoff +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the distribution. + * Neither the name of the nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. From ea25e0a6127dcb38f44ba6d57989c8b0466e3f0c Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sat, 1 Jun 2013 08:45:37 +0200 Subject: [PATCH 10/18] markdownification of the README --- impressum/README | 34 ---------------------------------- impressum/README.md | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 34 deletions(-) delete mode 100755 impressum/README create mode 100755 impressum/README.md diff --git a/impressum/README b/impressum/README deleted file mode 100755 index fcf29aaf..00000000 --- a/impressum/README +++ /dev/null @@ -1,34 +0,0 @@ -Impressum Plugin for Friendica - -Author: Tobias Diekershoff - http://diekershoff.homeunix.net/friendika/profile/tobias - tobias.diekershoff@gmx.net - -License: 3-clause BSD license - -About - This plugin adds an Impressum block to the /friendica page with informations - about the page operator/owner and how to contact you in case of any questions. - - In the notes and postal fields you can use HTML tags for formatting. - -Configuration: - Simply fill in the fields in the impressium settings page in the plugins area - of your admin panel. - -If you for any reason prefer to use a configuration file instead, you can set the -following variables in the .htconfig file - - * $a->config['impressum']['owner'] this is the Name of the Operator - * $a->config['impressum']['ownerprofile'] this is an optional Friendica account - where the above owner name will link to - * $a->config['impressum']['email'] a contact email address (optional) - will be displayed slightly obfuscated - as name(at)example(dot)com - - * $a->config['impressum']['postal'] should contain a postal address where - you can be reached at (optional) - * $a->config['impressum']['notes'] additional informations that should - be displayed in the Impressum block - * $a->config['impressum']['footer_text'] Text that will be displayed at - the bottom of the pages. diff --git a/impressum/README.md b/impressum/README.md new file mode 100755 index 00000000..cf420ba1 --- /dev/null +++ b/impressum/README.md @@ -0,0 +1,38 @@ +Impressum Plugin for Friendica +============================== + +* Author: Tobias Diekershoff +* License: [3-clause BSD](http://opensource.org/licenses/BSD-3-Clause) license + (see the LICENSE file in the addon directory) + +About +----- +This plugin adds an Impressum (contact) block to the /friendica page with +informations about the page operator/owner and how to contact you in case of +any questions. + +In the notes and postal fields you can use bbcode tags for formatting, like in +normal friendica postings.. + +Configuration +------------- +Simply fill in the fields in the impressium settings page in the plugins +area of your admin panel. For email adresses the "@" symbol will be obfuscated +in the source of the page to make in harder for harvesting tools. + +Manual Configuration +-------------------- +If you for any reason prefer to use a configuration file instead, you can set the following variables in the .htconfig file + + $a->config['impressum']['owner'] this is the Name of the Operator + $a->config['impressum']['ownerprofile'] this is an optional Friendica account + where the above owner name will link to + $a->config['impressum']['email'] a contact email address (optional) + will be displayed slightly obfuscated + as name(at)example(dot)com + $a->config['impressum']['postal'] should contain a postal address where + you can be reached at (optional) + $a->config['impressum']['notes'] additional informations that should + be displayed in the Impressum block + $a->config['impressum']['footer_text'] Text that will be displayed at + the bottom of the pages. From fa0390bdd1921d3bdd9a0512986ed493ee432a83 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sat, 1 Jun 2013 08:53:15 +0200 Subject: [PATCH 11/18] fix the submit button --- mathjax/mathjax.php | 1 + 1 file changed, 1 insertion(+) diff --git a/mathjax/mathjax.php b/mathjax/mathjax.php index e57d69bf..ccc6ca0c 100644 --- a/mathjax/mathjax.php +++ b/mathjax/mathjax.php @@ -72,6 +72,7 @@ function mathjax_plugin_admin (&$a, &$o) { } $o = replace_macros( $t, array( + '$submit' => t('Submit'), '$baseurl' => array('baseurl', t('MathJax Base URL'), get_config('mathjax','baseurl' ), t('The URL for the javascript file that should be included to use MathJax. Can be either the MathJax CDN or another installation of MathJax.')), )); } From 7f1228e193a1745b43c47759688d73641620fc58 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sat, 1 Jun 2013 09:17:25 +0200 Subject: [PATCH 12/18] markdownification of the README --- mathjax/README | 31 ------------------------------- mathjax/README.md | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 31 deletions(-) delete mode 100644 mathjax/README create mode 100644 mathjax/README.md diff --git a/mathjax/README b/mathjax/README deleted file mode 100644 index 023e1c89..00000000 --- a/mathjax/README +++ /dev/null @@ -1,31 +0,0 @@ -Addon for Friendika to include MathJax (LaTeX math syntax) - -This addon lets your users use LaTeX to type mathematical formulas -within their posts. MathJax takes care about the best method for the -browser to display the formula and provides compatibility to 99% -of the modern browsers. - -You can either use the MathJax CDN online, thus loading the required javascript -libraries from the MathJax cloud, or use a local installation of MathJax. -Please see the plugin settings in the admin panel for configuration possibles. -If you don't set up a local MathJax instance, leave the configuration untouched -it will fall back to the MathJax cloud as default value. - -If you don't use the admin panel add mathjax to the list of active addons - -$a->config['system']['addon'] = [..., mathjax, ...] - -To select the source of the included javascript libraries add a line - -$a->config['mathjax']['baseurl'] = 'the URL to your MathJax installation'; - -to your .htconfig.php file. If this line is not there, the addon assumes that -you want to use the MathJax cloud (CDN). - -Please note that your usage of the CDN is governed by the "MathJax CDN Terms of -Service" see http://www.mathjax.org/download/mathjax-cdn-terms-of-service/ - -Author: Tobias Diekershoff - http://diekershoff.homeunix.net/friendika/profile/tobias - email: tobias.diekershoff@gmx.net - diff --git a/mathjax/README.md b/mathjax/README.md new file mode 100644 index 00000000..9647a986 --- /dev/null +++ b/mathjax/README.md @@ -0,0 +1,43 @@ +MathJax Addon +============= + +* Author: Tobias Diekershoff +* License: [3-clause BSD](http://opensource.org/licenses/BSD-3-Clause) license + (see the LICENSE file in the addon directory) + +About +----- + +This addon for friendica includes the [MathJax][1] CDN to enable rendering of +[LaTeX][2] formulae in your friendica postings. + +Configuration +------------- +All you need to do is provide friendica with the base URL of MathJax. This can +be either the URL of the CDN of MathJax or your own installation. + +In case you want to use the CDN you can try the following URL as a quick start + + http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML + +In case you don't want or can use the admin panel of firneidca you can activate +the addon by adding _mathjax_ to the + + $a->config['system']['addon'] + +list in your .htconfig.php file and then providing the base URL after that + + $a->config['mathjax']['baseurl'] = 'the URL to your MathJax installation'; + +Usage +===== + +Once the addon is configured you can use LaTeX syntax in your postings to share +formulae with your contacts. But remember that the formulae are rendered in the +browser of the user thus your contacts need to activate this addon as well. If +they don't they will only see the LaTeX syntax in your texts. + +Just enclose your equations in $$...$$ pairs like e.g. $$f_c(x)=ax+b$$. + +[1]: http://www.mathjax.org/ +[2]: https://en.wikipedia.org/wiki/LaTeX From 207ac94509c684e525904baec1038367e5cc4c14 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sat, 1 Jun 2013 09:17:58 +0200 Subject: [PATCH 13/18] license file --- mathjax/LICENSE | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 mathjax/LICENSE diff --git a/mathjax/LICENSE b/mathjax/LICENSE new file mode 100644 index 00000000..6e29fda4 --- /dev/null +++ b/mathjax/LICENSE @@ -0,0 +1,24 @@ +Copyright (c) 2011-2013 Tobias Diekershoff +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the distribution. + * Neither the name of the nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. From 273a53149af56e5ef6794206cacbcd1a240492df Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sat, 1 Jun 2013 11:25:38 +0200 Subject: [PATCH 14/18] markdownification of the WebRTC README --- webrtc/{README => README.md} | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) rename webrtc/{README => README.md} (80%) diff --git a/webrtc/README b/webrtc/README.md similarity index 80% rename from webrtc/README rename to webrtc/README.md index 75797f18..d29500a6 100644 --- a/webrtc/README +++ b/webrtc/README.md @@ -1,7 +1,7 @@ -Webrtc Plugin -==================== +WebRTC Plugin +============= -This is a quick and dirty addon to add a webrtc website as an app. As webrtc +This is a quick and dirty addon to add a [webrtc][1] website as an app. As webrtc advances so rapidly there is s a chance this plugin will be obsolete. Webrtc is a new video and audio conferencing tool that is browser to browser communication, no need to download specific software for just conferencing. @@ -12,7 +12,7 @@ between the participants. If you would like to try this plugin please download one of the following either Chrome/Chromium 25 or higher or Firefox 21 or higher. Then test it by -visiting a known webrtc instance (i.e. https://live.mayfirst.org) create a +visiting a known webrtc instance (i.e. [live.mayfirst.org](https://live.mayfirst.org)) create a room, you should be asked to share your camera and microphone (firefox will let you choose one or the other, whereas chrome/chromium asks for both in one question). @@ -20,3 +20,5 @@ question). If the test is successful then proceed with copying the webrtc instance you would like to use and place it in the config window and save. Now when you opent he app it will load the webrtc instance for you to use. + +[1]: https://en.wikipedia.org/wiki/WebRTC From 0d9a7de631c711ff327aaa20faa527303f672db5 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sat, 1 Jun 2013 17:19:02 +0200 Subject: [PATCH 15/18] markdownification of the README --- blackout/{README => README.md} | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) rename blackout/{README => README.md} (85%) diff --git a/blackout/README b/blackout/README.md similarity index 85% rename from blackout/README rename to blackout/README.md index 0580d527..1974ef7b 100644 --- a/blackout/README +++ b/blackout/README.md @@ -1,11 +1,12 @@ -Name: blackout -Description: Blackout your ~friendica node during a given period -License: MIT -Version: 1.0 -Author: Tobias Diekershoff +blackout addon +============== +* Description: Blackout your ~friendica node during a given period +* License: [MIT](http://opensource.org/licenses/MIT) +* Version: 1.0 +* Author: Tobias Diekershoff About -===== +----- This plugin will allow you to enter a date/time period during which all your ~friendica visitors from the web will be redirected to a page @@ -21,12 +22,12 @@ the entered time periode and fix typos without having to hack the database directly. Requirements -============ +------------- -THIS ADDON REQUIRES PHP VERSION 5.3 OR HIGHER. +**THIS ADDON REQUIRES PHP VERSION 5.3 OR HIGHER.** License -======= +------- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From 1c8b38179b1607893970ccc8fa2cbb3414b754fa Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sat, 1 Jun 2013 17:22:00 +0200 Subject: [PATCH 16/18] added LICENSE file to blackout --- blackout/LICENSE | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 blackout/LICENSE diff --git a/blackout/LICENSE b/blackout/LICENSE new file mode 100644 index 00000000..8a66fbdf --- /dev/null +++ b/blackout/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2012 Tobias Diekershoff + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. From 62949af91e2423e0494613917f1710dc7300c927 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sat, 1 Jun 2013 17:30:44 +0200 Subject: [PATCH 17/18] mardownification of the README --- piwik/{README => README.md} | 38 ++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) rename piwik/{README => README.md} (63%) diff --git a/piwik/README b/piwik/README.md similarity index 63% rename from piwik/README rename to piwik/README.md index c648a4d1..1005970b 100755 --- a/piwik/README +++ b/piwik/README.md @@ -1,24 +1,24 @@ -## Piwik Plugin ## +Piwik Plugin +============ by Tobias Diekershoff - http://diekershoff.homeunix.net/friendika/profile/tobias - tobias.diekershoff(at)gmx.net This addon allows you to embed the code necessary for the FLOSS webanalytics tool Piwik into the Friendica pages. -[Online version of this Document](http://ur1.ca/35m2x) - -### Requirements ### +Requirements +------------ To use this plugin you need a [piwik](http://piwik.org/) installation. -### Where to find ### +Where to find +------------- -In the Friendica git repository `/addon/piwik/piwik.php` and a CSS file for +In the Friendica addon git repository `/piwik/piwik.php` and a CSS file for styling the opt-out notice. -### Configuration ### +Configuration +------------- The easiest way to configure this addon is by activating the admin panels of your ~friendica server and then enter the needed details on the config page @@ -38,20 +38,24 @@ You have to add 4 more configuration variables for the addon: $a->config['piwik']['optout'] = true; $a->config['piwik']['async'] = false; -The *baseurl* points to your Piwik installation. Use the absolute path, +Configuration fields +--------------------- + +* The *baseurl* points to your Piwik installation. Use the absolute path, remember trailing slashes but ignore the protocol (http/s) part of the URL. -Change the *sideid* parameter to whatever ID you want to use for tracking your -Friendica installation. The *optout* parameter (true|false) defines whether or +* Change the *sideid* parameter to whatever ID you want to use for tracking your +Friendica installation. +* The *optout* parameter (true|false) defines whether or not a short notice about the utilization of Piwik will be displayed on every page of your Friendica site (at the bottom of the page with some spacing to the other content). Part of the note is a link that allows the visitor to set an _opt-out_ cookie which will prevent visits from that user be tracked by piwik. +* The *async* parameter (true|false) defines whether or not to use asynchronous +tracking so pages load (or appear to load) faster. Currently the optional notice states the following: - This website is tracked using the Piwik analytics tool. If you do not want - that your visits are logged this way you can set a cookie to prevent Piwik - from tracking further visits of the site (opt-out). +> This website is tracked using the Piwik analytics tool. If you do not want +> that your visits are logged this way you can set a cookie to prevent Piwik +> from tracking further visits of the site (opt-out). -The *async* parameter (true|false) defines whether or not to use asynchronous -tracking so pages load (or appear to load) faster. From 693ae2fe44b5d3e69e86dca95121328b88d173c7 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sat, 1 Jun 2013 17:35:06 +0200 Subject: [PATCH 18/18] added LICENSE file --- piwik/LICENSE | 24 ++++++++++++++++++++++++ piwik/README.md | 9 ++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 piwik/LICENSE diff --git a/piwik/LICENSE b/piwik/LICENSE new file mode 100644 index 00000000..5e752877 --- /dev/null +++ b/piwik/LICENSE @@ -0,0 +1,24 @@ +Copyright (c) 2011-2013 Tobias Diekershoff, Klaus Weidenbach +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the distribution. + * Neither the name of the nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/piwik/README.md b/piwik/README.md index 1005970b..0ac2ff72 100755 --- a/piwik/README.md +++ b/piwik/README.md @@ -1,7 +1,7 @@ Piwik Plugin ============ -by Tobias Diekershoff +by Tobias Diekershoff and Klaus Weidenbach This addon allows you to embed the code necessary for the FLOSS webanalytics tool Piwik into the Friendica pages. @@ -59,3 +59,10 @@ Currently the optional notice states the following: > that your visits are logged this way you can set a cookie to prevent Piwik > from tracking further visits of the site (opt-out). +License +======= + +The _Piwik addon_ is licensed under the [3-clause BSD license][3] see the +LICENSE file in the addons directory. + +[3]: http://opensource.org/licenses/BSD-3-Clause