From c966cbf86668a92db53601fc65b154fec5bcd102 Mon Sep 17 00:00:00 2001 From: edugonper Date: Sat, 16 May 2020 17:27:20 +0200 Subject: [PATCH] primer commit --- create_picture.php | 147 +++++++ css/style.css | 294 +++++++++++++ edittags.php | 85 ++++ following.php | 141 ++++++ footer.php | 15 + generalprofile.php | 79 ++++ header.php | 25 ++ images/body-bg.png | Bin 0 -> 192 bytes images/dislike.png | Bin 0 -> 6451 bytes images/favicon.ico | Bin 0 -> 260866 bytes images/iconaside.png | Bin 0 -> 2099 bytes images/issibg.png | Bin 0 -> 2819 bytes images/like.png | Bin 0 -> 5581 bytes images/lsi.png | Bin 0 -> 1874 bytes imports.php | 13 + index.php | 63 +++ js/auth.js | 52 +++ js/editphoto.js | 447 +++++++++++++++++++ js/edittags.js | 327 ++++++++++++++ js/generalprofile.js | 732 ++++++++++++++++++++++++++++++ js/header.js | 92 ++++ js/indexgallery.js | 1002 ++++++++++++++++++++++++++++++++++++++++++ js/login.js | 41 ++ js/mypictures.js | 683 ++++++++++++++++++++++++++++ js/photoDetail.js | 735 +++++++++++++++++++++++++++++++ js/register.js | 156 +++++++ js/scripts.js | 24 + js/token_decode.js | 128 ++++++ js/uploadphoto.js | 453 +++++++++++++++++++ login.php | 58 +++ mypictures.php | 49 +++ myprofile.php | 367 ++++++++++++++++ photo_detail.php | 89 ++++ photo_edit.php | 119 +++++ register.php | 133 ++++++ search.php | 52 +++ trending.php | 230 ++++++++++ 37 files changed, 6831 insertions(+) create mode 100644 create_picture.php create mode 100644 css/style.css create mode 100644 edittags.php create mode 100644 following.php create mode 100644 footer.php create mode 100644 generalprofile.php create mode 100644 header.php create mode 100644 images/body-bg.png create mode 100644 images/dislike.png create mode 100644 images/favicon.ico create mode 100644 images/iconaside.png create mode 100644 images/issibg.png create mode 100644 images/like.png create mode 100644 images/lsi.png create mode 100644 imports.php create mode 100644 index.php create mode 100644 js/auth.js create mode 100644 js/editphoto.js create mode 100644 js/edittags.js create mode 100644 js/generalprofile.js create mode 100644 js/header.js create mode 100644 js/indexgallery.js create mode 100644 js/login.js create mode 100644 js/mypictures.js create mode 100644 js/photoDetail.js create mode 100644 js/register.js create mode 100644 js/scripts.js create mode 100644 js/token_decode.js create mode 100644 js/uploadphoto.js create mode 100644 login.php create mode 100644 mypictures.php create mode 100644 myprofile.php create mode 100644 photo_detail.php create mode 100644 photo_edit.php create mode 100644 register.php create mode 100644 search.php create mode 100644 trending.php diff --git a/create_picture.php b/create_picture.php new file mode 100644 index 0000000..62266c7 --- /dev/null +++ b/create_picture.php @@ -0,0 +1,147 @@ + + + + + + + + + +
+
+
+
+ +

Upload a photo!

+ + +
+ + + + + +
+ +
+
+
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+
+
+ +
+
    + +
  • +
    + +
    + + + +
    + +
    + +
    +
    +
  • + + + +
+ +
+

+
+ +
+ +
+ + + +
    +
  • +
    + +
    + +
    +
    + +
    + +
    + + +
  • + + +
+ +
+

+
+ + + + + + + +


+
+
+ + + +
+
+

+
+
+ + + + + + \ No newline at end of file diff --git a/css/style.css b/css/style.css new file mode 100644 index 0000000..c31a36a --- /dev/null +++ b/css/style.css @@ -0,0 +1,294 @@ +html { + min-height: 100%; + max-width: 100%; + position: relative; + } +h1 { + text-decoration: underline; +} + +.content { + border: 1px solid #444444; + color: #222222; +} + +p.footer { + font-style: italic; + color:white; + + +} + + +footer{ + + background-image: url(../images/issibg.png); + position:absolute; + bottom: 0px; + + width:100%; +} +#logo-lsi { + width: 100px; + height: auto; +} + +#logo-lsi:hover { + cursor: pointer; + filter: blur(4px); +} + +div.title-block{ + text-align: center; + padding-top: 1%; + padding-bottom: 1%; + background-color: #eeeeee; + background-image: url(../images/issibg.png); +} + +body{ + + background-image: url(../images/body-bg.png); + padding-bottom: 70px; + + + +} + + +#title{ + font-size: 300%; + text-decoration: none; + color :white; + font-family: sans-serif; + margin-bottom: 0; +} + +#subtitle{ + font-size:120%; + font-style:italic; + color: white; + font-family:monospace; +} + +.photo-block{ + + text-align:center; + border: 1px solid gray; + border-radius: 5%; +} + +.photo-title { + font-size: 140%; + font-family: Arial; + text-decoration: underline; +} + +.photo-score { + font-size:130%; + font-family: monospace; + +} + +img.photo-image{ + + max-height: 200px; + width:auto; + +} + +.photo-vote-block >img{ + max-height: 40px; + padding-right:.5em; + padding-left:.5em; + cursor:pointer; +} + +div.gallery-container{ + + display:grid; + grid-template-columns: 33% 33% 33%; + +} + + + +#nopadding{ + + padding:2px; +} + +.commontext{ + + color:white; + +} + +.commtextright{ + + text-align:center; +} + +.commtextend{ + + text-align:right; +} + +.userlist{ + + margin-top:20px; + font-size:20px; + +} +.listcenter { + text-align: center; + list-style-position: inside; + margin-right:16px; + padding-left: 0%; + padding-right:0%; + } + + .buttonsize{ + + width:50%; + height: auto; + + } + + #ratebutton{ + + + width:40%; + margin:auto; +} + +.specialcard{ + + + width:75%; + + + +} +.mobileShow {display: none;} +.usernolink{ + + + cursor: default; + text-decoration: none; + color: white; + + +} +.usernolink:hover{ + + + text-decoration:none; + color:white; + +} + +/*.navbar >a{ + color: white; + font-size: 120%; + background-color: #555555; + text-decoration:none; + font-family:monospace; + display: inline-block; + min-width:100px; + + + +}*/ +/* +.form-group>label{ + display:inline-block; + width:200px; + text-align:right; + +} + +.form-group{ + margin-bottom:.5em; +}*/ + +.avatar{ + + max-width: 50%; + border-radius: 50%; + + +} + + +#commoncard{ + + + width:85%; + margin:auto; + margin-bottom:50px; +} + +.usercard{ + background-color: #343a40; + border-style: solid; + border-radius: 1px; + border-color:#343a40; +} +.trendingcard{ + width:50%; + margin:auto; + margin-bottom:50px; + + +} + +.asideul{ + + background-color:#343a40; + border:solid 2px; +} + +.centeritem{ + + + display:flex;align-items: center;justify-content: center +} + +.comment{ + padding-top:15px +} + +@media only screen and (max-width: 1200px) { + + .mobileShow {display: inline;position:fixed;top:45%;z-index: 1;margin-left:10px} + + .trendingcard{ + width:85%; + margin:auto; + margin-bottom:50px; + + + } + + #commoncard{ + + + width:85%; + margin:auto; + margin-bottom:50px; + } + + .specialcard{ + + + + width:85%; + margin:auto; + margin-bottom:50px; + + + + } + +} \ No newline at end of file diff --git a/edittags.php b/edittags.php new file mode 100644 index 0000000..b900ed8 --- /dev/null +++ b/edittags.php @@ -0,0 +1,85 @@ + + + + + + Subir foto + + + + + +
+
+
+
+ +
+
+
+

EditPhoto

+
+
+ +
+ +
+
+
+
+
+ +
+ +
+ +

Existentes:

+
    + +
  • +
    + +
    + + + +
    + + +
  • + + + +
+

Nuevo nombre de la etiqueta

+
+ +
+

O bien borra la seleccionada

+ +

+ + + +
+
+
+ + +
+ +
+ + +
+
+ + + + + + + \ No newline at end of file diff --git a/following.php b/following.php new file mode 100644 index 0000000..f8cb26b --- /dev/null +++ b/following.php @@ -0,0 +1,141 @@ + + + + + + + + + +
+

Hi @loremIpsum

+

Following!



+ + +
+
+ +

+

1.Title

+
+ + + + + +
+ +
@user
+
+
Date: 02/03/2020
+ Description: Lorem Ipsum Dolor Sit Amet + +
+

Score: +30

+ + +
+ + +

Tags:

+
+ + + + +
+
+
+
+ +

2.Title

+
+ + + + + +
+
@user
+
+
Date: 02/03/2020
+ Description: Lorem Ipsum Dolor Sit Amet + +
+

Score: +30

+ + +
+ +

Tags:

+
+ + + + +
+
+
+
+ +

3.Title

+
+ + + + + +
+
@user
+
+ +
Date: 02/03/2020
+ Description: Lorem Ipsum Dolor Sit Amet + +
+

Score: +30

+ + +
+ +

Tags:

+
+ +
+
+
+
+
+
+ + + + + + +
+ + + + + + + + + + + + + + + +
+ + + + + + + + + \ No newline at end of file diff --git a/footer.php b/footer.php new file mode 100644 index 0000000..3ffc8c2 --- /dev/null +++ b/footer.php @@ -0,0 +1,15 @@ + \ No newline at end of file diff --git a/generalprofile.php b/generalprofile.php new file mode 100644 index 0000000..ba6e5a1 --- /dev/null +++ b/generalprofile.php @@ -0,0 +1,79 @@ + + + + + + Profile + + + + + +
+
+
+ +
+
+
+

Profile

+
+
+ +
+ +
+ +
+ +
+ +
+ +
User:
+
+
Name:
+
+
Surname:
+
+
Email:
+
+
Phone:
+
+ + +
+ + +
+ +
+ + + + +
+
+ +

+
+ + + + +
+
+ + + + + + + + + \ No newline at end of file diff --git a/header.php b/header.php new file mode 100644 index 0000000..5396028 --- /dev/null +++ b/header.php @@ -0,0 +1,25 @@ +
+ +

PixiArts

+

Lets share Art!

+ +
+ + + + + +
\ No newline at end of file diff --git a/images/body-bg.png b/images/body-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..a49d724d7b3cb28b367f8ea2314694057524271d GIT binary patch literal 192 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

XR5a%E?!p@%5mqUPD$ba71= z0|3;De?p{+YG8yv9V{;n1X!xY>n=xMXam@KoRVaEO8CAH$f^RazLrk>aHMkaWF1mE zS-$1sTyIDih``AsA!AAbrj~-i?PKDo@`r{ z%}|7kdjI|S5Zgf`n4<|U<#=g0!IrMz zE~YOn;_n)gh{nDF&(@SeozMyA=f>cBY(j{VmmUng{Hs0^-6@9G1#w9-Ric63pw67oF2c{#3Ws>5;#7e8q}Ar6N`h2xX-8P0 z9O1bF*PU2D6UPw|<`@3juJBTEdJRS#IA@Sv#z>0sUeIS^ZV9oOTjD$SFS5Pwu_#Cs z!SbXqVbw@gb=WS}&S_8F%p||Lj_UW_!dI$J^T~H=96b?D5oupewA7TSEavG(?Vh~C zaTWHteTt>trGi6k^!km7^_}XHnm5)0_K^@I4V*s7V4GQ@J2frR381P(z1~7Gw)&0< z6agpDgg4+tEmajSi8K5&=7kv?LQ-Hxp@O?TUPUp}KvV1<485G$Py#heWfpiHyDon}rFSMPiA4&&gLb z8+!m*9o7tsCBsP45UAx7Xbp?g2yceU-l8#kypWW!OS-H<8aPtto!xYe%&OBoGZwlJ4v(C5o*RLI|mfC+LU&D_V`yKPVtZlrW;!b38^IlyGz9S1e z>hydm+W=0+;O=;~yB&~pc*7G+HWKP3(lG0&&UsY$Q}2v0 zG0)6L$3=-0gluP|3WT5i61@XxFR;1A$Nl*5v4M{kLZo1v!#uFpc|?f(QH}zCorxvh z8YBUM(RKHYY4NwvAPch*o(j!)_`|CSM3#nKGUb_&9n(?S6j4YO$y%P9*F7lI6Zzlt zPpu}`i@{)O%{nwAWoU&iF6mN>#osKW=>zd#OES!v05ACB(OApUNxAUKZP4F=c~^N& z!DN*Hr$3!dM1CqH%zQiD#Z}8j3&Z-}@H5y4W{zAhCv3Pw-if5AuNb=%a9;|9Kv6s9 zogF2;f}X!Il3+{`FqjZ{)U1nt9MTj&$4sXyV@WbztWx@hdcNOMnu|f#5=rquWdwK2 z4kC)by>Mqg_iY#*{i7zBjMk~FHu9+9gfCLGnr(I~ZM`i6oqnz9Qr~{2p6r|DvA_}S z1vFWo^?ob$C_&Efr4Ra<>)p|76?J{$TK21CS7N#I@JD$6w}vrXT84{2A!f(5l^4 z6zEL5vgqy{Ek{c}+GgO+>C_}m(` z;Cu*_Ca;_GB=KdCG~)MuNN^lN;vKRfk{2B~*p48U0dYb`Vi4Kh`#G&o z;AqsDS5KkV_?HT5G$r>#(j=?f$+J58o>*5cW4D}@W4>Us`BH?B;|<@X&fAurS8Qpv zGL_o=Q;|AzB25S+>DRmw%07H=xT0T;OP5N(v|G62FshE{E6p)WN4^i8lOKx>Y`e1g>M1S1$w<4L zzx5-i&IW3le0;on<@q+-+E&zCxkew6la{-yH#khf z;EZ#tmV3>Soc7?fR6R3WQnz@YDUlitCNIq; zO1vge)hRZ5TWyCqH} z(jOVaGilI;;waRU5`;Vs0VC#IoMvT6XS7@HcgltmV(~-& z2l+q-zgToY{??(j@U+1zz;$;-SHsLfA%93$_7V4Dx2bkCwEbK z@eJKvT`cVGX4}z#egF|^_R3_DAYUZka}o9J!=zeV+SV_keftV>tGW?VMjto@W1?>mXhSHo zcI@M>NedeRpYL&OW?X5FpMNI&_ z^Ih-EKlALf-@9e!t!tAKCuWY=0pz+K+qZRcuKxlxLwA;xlsY7jUPR1fNob$Q*(b3* z!EsjmC!u(v6ju!6lj^GG{EMy~JMR*r2BGTb)dZ7FgaPC0Cw^KoFYWb^7A21UMP$YtvBT@m%%icZ1%9&F{VYcss{w@xrs3dv?&3Z(#~ zz*vbxAuk!xnQ&|6gqzQ0!k+tJLpg7b|RIUO?)nR}9!6s7;ZB;N=brrZEPPeZ{Ey2Z_nfB z@w4a6nPVHj!DfuvjWO6@vq~TYNUa@7tyW9wz16MWYwg-{&$~s;A8~JHR(DI_IHxMN zoA=&~h~NJEeSdgG7dz)-XB;fgHW~sN;uuwHVwDXMotu~Gz~ zCYLo3;m6Oln4S+fc(MaB;tgAi6!VZcntO{S3{h?vv-yKxT*1fxZH7*$lG=UA@7_Cn z*#+(&DslQn8ak2r%Uo3K?TFs&J0z*>0xB6;KL+y+C>LO+rf9o@N?zb5UuY{>3}Lov z`~#7K;Q@HZ^&TfC2YCKyEkQXlcdDgrq$Ea#28D2Jo;ecGYPKjE2&q@99|%U#QclpT+lEyyvzz^IL!PXJovTd8DRjIy5~`hdKGeoX0=@!>4%knFF-i z9jes@+I|O1*nH%zZ=!JiyixBhgT`b+duEx7!&%ncu$7S=o5-#m!7b#Go)wG8Tyz@^2=5%%Q9SXId-OrAD9y8;j)Vqg0UeFrC{@#JdJjQ=SZ>{n@Z6pj9|m6 zELUwT@QH6uF;{J|adi&Qv9V=>7A2PERRkIa%Pv=~EAYyAn^M8$e|_H=yROQ1?eW(d zF(xOV9YM8Wy!=!GkZEu%j06%6ZMiTwqk)bjfrg1rrn;g$2q6OL1o2;nndb*On_i?JN0C82G%j z??nbH6~6w&VXCbLwQ3D1%)AG+Do;NAFe9VODU?b$j*IKq6b5n>iaGjE7KVZ^ec@Z& zfB!>tqL}&lIXbOYqB5J@l;g7jyGp}^&ABB~-xdPP2EW?j^ke&(+;f!tP@ckQiNS3v zDQ;L!Zp|=OHp$11!bCcXUS5$hL~p1u5hQ40WtxVF(iZHCG`Wiz{K10p)1`_JbmX8EG*2Q{r7+S_wU~Fwzs_|iqH}UFt&Vb`uw>wFANTi?CMFAT-fTQgL&IXfG2<5fle@co0V z8?n0%<;xWar4Bz^Kuej_T|Wur)I;O+%T|`A3x~om0*Bt5x&lUWCY9H=B&VkXPEQAX z>uJr|*$TrYo4c-+T(unDwjHuA%=u8v8SoD!Bvv1@*QBVqW~Qa3QMMxX9iBPZVdu8k zB(-Shv|D`df$#I(2OgkSt)qd(g+-KBrn9lIu^or6J^B(~`SBh+$HlU2Y)cZw5vx{= z^56d3|H063g;t}Ev;+g?3V-+ieFochX}8-%aSR$7%|(jE0Ww~Wmrh=wv3v)&Z+CFV zpM!R_7w${!f1yG70nJID_QWjnFP^}%AXCgRux5zz&b1V`t-`Am`pn04pCxmlMK>Uz zm5B&hmCaba)=cI?y2k`;+h*Us%R2zy^Paoeuwla`(!YPWp3CRI@Y#P_zI=J@kN@j` zy{!5V7cqdl-*Zp!r7!*CNjv<$%OPA za$H30X|Dd#<3vA!b{Rx~&6L1`K+wl!o933J$gfeyH(03GVE9D^Tm^l5#j3B-5ROMegVw{Yg?3MBM52XyV z7)VlwyPHP9h6=12k*pYYIXN9-TawTHpvJZ}9{0Yn$bt_;Ig^MqwE!Dd2(I6jaGJNu^vOlO3Sb>5$14Xf|8KamdP5tIhqyF|k%0 zJ~PWpCwy+W;(Fe(z5%D7Mn@1!jh)fB*$mlok<36Ax8UFvJ=~m!owc!CiE0Nl51&D< z8OB|?th=8`1fABgQ4F+E|CQ1xk;N^oHtYBr65O&RFTcE>i-+sF{PHjVGPd1Ex)+_p zBoK9GwdS9L;Ps&aE`bD7D*m45xqlqB+P%B!yFZaE@Rp53WZYAx%o*K-NAGS<+54XC zC)~bxZ9lPJ#68pNETQ^t(Lm4pua}&srwycLLBD!$cvC;)=`oHa_ot0bnDtDp{_l;6KEgg}Nfrk|06U$!9EfZnO;CmN4&GeemPyy+{5ZIhPrR0 zotya1I)2QPhgyil!)zfqcqZU0Pezpm={mkOpH(Roo{}ZpX}L7tYQ?B$PW@}sro{Nh6$wk7fP8jVS(r(b%DTk zJU}Ius-V_rA#ICnHb<;t%B3<&$HZ}L3e}Q+fLg~$OR(q2X%3yV`J?y$0@v-xQd&2P zS1DrW9qf#Sqc+NbMo;J9n5 z#Y(Y%|D_Dzh8u2R`}Qj?mHvHbORnSagNMHVz>y?4 zq_6uzCq2n767WuX3}VUVPYaAv?Ew10J5zJQY&k)x;4qLkg*(N(aq3AS2tv*DLP#8I zlkp`5lk)+Ug6St`Tau~8n8k*sR1h>fno?eLyYQq_B>+Du=8?kK>LW$N2mp$SpKGXS zB(uOcs4~`N{YBl;(T2d&&2-T=L17SnT7k(RTx`KJ$6%}i!zGxRi}>shn+V%lf{f&O z7XR>IgYP_J@xGgK>|Ad%U)TK2w_9Af#-UPhn5)O82?nxHBTSgNWg(P9xd89pa)Q76 z5;{3n=$>lDlVhpDw3F%@0&^TFKBqW-Mxxe&J zcT<3MZY^#mYlPBkEavpgG!qjOm%RV6kNtWV7VL6ED~*)0)oyh@7X*R0`|i76Z@XN| z0Is>_n&zH8&p)wa=d~YL`bj@wgKfK9xvk8}b5mI8KK9i+CJdEv)JcJ*B+`O%(dE7G z-pHPpW;l7K&QcY8>0eix_j%xZjIT%R={37;xB69mSaQCl<_Epwl5-pQaDn4UYK@4> zfI|?Pcyz3w){2>}2FA{pP{=w)rS>(J1)W+H;0Mi z&&JsB{aIn@&rFH`;+42~TwL9rf?oFzO%f%DVX6uzr{T;D96oE}VB1z%eEx@RCKqBX z%S2)f5vJLFg7fp5Z$IPH3M3~dV*OwClnN8g zA|i}b65Y{AEpaT%Faj-Uw?qERpM8`6{gw*LrXD3z%u!r5#NZVhDP6gV?21wBl52=u z^v$|Zpd?5IDsdhpTBlYRgt6G5STnQ{$9fI?zvSO5M~~58v;%PEl~;1hEw{YJ4lu*E zB`>|S?wY3ktDtt_B4WIYSlvpMq0;zd~mOLu%XS|AcF zLiZih%@pjLxh1DcK9Idro8Qul=Zo(5dJfO5C#kn$j-PL{b&a4CD6*b~#-iC#)LSu; z@hK5TA$C&dzt9joyst{B;E-`7exxa6ZRTr=mBZ42$ZGQ^Fb=ygP7-roW2E=gPI?A- z_T|fcQxfrnVJZS+K1dAXiju;)NJ6u1>id6kB*)zK?p1i z99ysNi$LiZp*5WdKE8XFKY7RPmg%E65TcKF6Y5Rst3$4%yHg6o{ zmR+lO$4x7f8-sc?;LK!;j4L@m-J<2k%+7ZbloLT0`A7Dt=Auic-Tx^gSQ4KQJyXD_ z{{2yeZM`Euv+KQ&HS!~9Hv8GgXST^8L%-d93G4;0UR*AI(MImd` z2{e0-)sU9t+=T$!5=06%F1K(UK@^+#dBZnEKae$8{Eqc{{M?LCLo+l^z}Gr_|VJtG0>Bj!BlC_Do zPAbw8R3C)tg+bEyAX$LnyyCrMKVs_WGfYfQ(rC0$T6WjSk`gJbE_|Cv^Kgj~$fOmg zKuQx1jA8@ZtrNUGts%Bd>a9{5;*c;*KoU@0NG%;JVy$s)fo-K;lJpmw_S@!IK_o2x z^3gdy{PVxU?YD1X(>4b;R|grPV;@x8_yYQ&$aJcyrVg=0#aG&-3PhS%XK+fZdl-P1 z5VA=F-?wkyl6P0HUc-Ce``$}!|NeCslCx*e92g%T-@W~cD}E~R!)q{r!NH-4>FMd0 z@`ZsnCTn=vQ7Yxwur|+uqfK1b;XnQ6bqrRrY+OA+#_Ne)tu?M=v3e}WLM`Or@hS(7 zFHoKLd(u7GG$PeDQU=f;4eT=)ASLvrQrvuGq?S<-da6A#NdWF1nmQBBMU;ZoqaLvq z1d*a0C}tKzUY+QW&sq$Z9I~E8qpj$K%HS4S0(8vY<1G%I^(kZx(oZpKV@ZMM2CN)* zQQDOBx)%6J=2?P?g2u$~6~<|IvDeKqR57ZVT{){AIEbX%#+}1f90jPSkH<{5Pqf z9>~Id%O7U`)h9W9?i`I~+oX>rqSvG}Tc!iElnBQ**V7s)TtJ#~TnUbCp%r-25Ow6o z2wR|Z5@nCgz58L?ychV12i_##2mu+}>H30W=iWCi z?L?d?&j~>ZX>;`z6<$7O+CZ;bUSxPMW8jeJDb-4AqFB@RV_KbvBPSM_o#|lNqI*8l z<5P{lPfhRH`N?AGe$xQDBC3D#W%^y{HuOw2iS)3pAHZaRUAwiw6>IaHoaj)@+ssu% zT7lxk`3^y>nOca*WfYwxAtz{ZwVw_4M6ZIB6$gk>Q`iYXz{v579Z(new>T8F~IK@sD) z0*DYmlwkEoQA89;0u*s7`L!}tt4bLrBMsH1PT#IcXu=j~Er?MD(#y6PC=c@LsY(9e z5C4T*Z`r~B^?$#SVt#?N5U#g3W$!O_1Ztgx{{$+GQQiuiY~gj+b8&Hz6DMBnzRqMa z-1ols_2vDGOH2o?HP!0k*<3FFt?k>lzy5~l8?V_JXv4;h4`n>>58Is%J@uPD!Zt6i z+`fz}Pr}VNtip8?dr|i$GmJI!)ehBq#9Yni(D4N(r&?H6Z}Kiz1hl-PSRr(z0b{iI=PnTNOoOSWVq~dp&D>%ssjSnjb_Or$Ym{*(sV*iy`{R> zjg;c(c)+vAT2z}c)uyK2Hny;^ES6_1mX&OZS&J|NVZ&fC!P!$_S(Hxp;D>HoY^Y5gTpSwgj^&H`89fT2BN@-LWA<7$ZZKqF_zm%Ad9b4)Eyz5=>`l*RO zp6Bwf|N7OhojG%M_TGE%`I)3Yybc3+^wCH6TyxDebHGqncwTG^2tlQk<88ZEvSQgl zH>{zwfl!KL&CGn8=MK!#?!+88zQEjtPExL$aL(R->z=bmys~>u(S0v@m8hAbAEI0I z7*&^nbU*Ex3hDLI!yH>MQt@c}F;N6LPcm1JnOX=4leF$onKDqVdRoeSUGa^l7wLp1 zv>7XbuQYQ_#n_NwwBoXU%wu@KBIiP`FY6}KU1{HvO|YRuT6#mT9N z*_uV}3gfg}Khz_-ns3aBOajk6JRoo#*nP<79oOWzW}}0UaL=18N_mTKKNoZ0e8hCs zs1;pvHQBJKdY{gX?t8DNq8X{J>3uK#ue;uPfz+C}uACxs`ky&S?N|g$Q zLJ7~!kuMbST#sBnORkV*pfG^z78xk!$z~l~*D?Bt)F3V5D5TQ~2*QA7vrfHP=fZrA z#f1gt=I3cF%;U!)oiHR;K5-lo#}PUy7P5rZ)daQHNx_lS8GS^Z{qau?AEC)968UX;nXk;(F z^wN^oAN$o`!}Gi)$0e9S=DF6yal8;k(U*h37Z=z3zutIF2Jn%O{8H=Sfdfx&+qV7Q zereNVLgro1^C)LKra_7V-;dE~f*@vUuFa8CHFiHeiH!i23XznqpS+8@JkIZJ29nj$aV09_}eLQ;TrJ7MGoCU0g>nS~ju$ zG1>Gm>2bTitF1J$UvlK%b)=5O@uwC0gtlJh*7;)_6X}LOoaG|F7@&170lL0qx&$9Pq!1rHhvj1#It*u#T#JqV+mR;L2jFtp@&uH3#;DwWl zwIhHkda776w7vS4_6)&F-h>UxGNhBxTg}QG-dMr70pr-Gp z>yT#q^)cvV6g=2A|7l)5evoV?hvRsJVMx8vM${FdiqXnws8ZNimT4X;rDc+H(!0?T z$Mq1HbYCx%A)n1LP%2RxC^NWhm^CZLShsE+TQ;xZnk%=kcI67b^v?yp_uX%Hp~$)s zg~VRBgfvM+I_@U>i@49E5((Udyaf{KjvR&1SoG6-$P|G$L}G z;Hjsc`pmX%+qmbaB>r4HUbj2&{QUfG$9Cc{jF+Ge^wA>%!9c;`3tvA>5D8X{q%ZZ*+xo%V@bl;sE)_ReRl6}F4a_o$wSF_64$ZFxRRj(o7F?MX(*e7 z&jdzOT4-v%{*xA;e5i_L3BJ9zi6tdF)_RPTZAy9AvCiYx?H(%zVY;e$`K+dxg>@s6 zm4kxWI-I-!?LZU6P|6xj!}u4BX>lrsjH{`3z$DJ-r3?{Bv-LEIzF7q`37+u6UPdzOyQce zY}$=Fu`)4yMTF4CNvVXwwLOHCD1Y}m@Kx7@^)S6#(hu749}PM+rZ=byx+BWn|4 zv}97El4>?d$PtZ6=t+q%nG0=9Aj>gHLORr>c?zy=(`vWK=d%3yUp&FDEM&wtqTamjS%_#$B&2E-oDLyzEu|reOaN zK%tPO;6zOOHoKo4=cYHVppdf}9m)`IDs$}B8i~u8UYW00nmW9MP(@d}?_IMm9@sD8 z`#I7@l0KDS-Hj~M??7tr7PA(9s1pb+O{M5??dAfGWi)|SsJeCbLI|oY#SdR>CS1Iy zVTgn%Mk_9@P;tZ799OJz7#R><1hVv}SP~kYn9o02BjZ_#Ng%j(oyUi7Dq>kMQnbjp zn!zGuY{8zBih4&;%vzN4g1iS8>af@}7HB>|PPz{@eMJd^og+0mFMO7rJFmm{Lng+@i9%B zDCQ|w2AQ4lL7QyUw6wrz1)`S$prH#glOzct1VU-BEOMDVxk8bdsd0obE#foT42?#e zY&OH$$p!YU*umE38G=TO)?AgzLmCw+V`12mOr=16C`;unZ^m^T`idBq(vlFII(3pp zqXEE&KJ*I|3KvBT`j~*$kjc9Gi(mM{XMEoe|MXA)^k<6w_Ye7cA8uH`UO)BJQxD6F zjTUpe=^Y`Z&Gv02{2->$447T$pfyyAF2#aFsqEmmR?k7&-FQ8sPg#LZd#tC&T&i-I zs|thH*Q+sD8Zk(@_0r}eJq*Cq1ZjuLqIbDkH~nEpB!#dZ!6Nm7A@ch`|30U zWzJ^_3Rx4zLQ1q0T(cp=nq?l#D>kbJWw+?2f4v2;?^Hz2GpVzd6j+X6^O%DrA@50S z8?v5YzAiX;UbAJnWT+_dBY0&>^YS^EsKSbhVEu?-mrgmiqvFFfKR&^ic(N;Va?R%xq8Rd ztY5R1+G33`2n^9UMhkL17sqw5ZOhd1TQ<^`CW8=#5V0wdRWUk_%{5b2q_^+JPJo|~i@uEa@j z2rn1P7gBT`fP;gB+;h*p-O%5X(N{b)JvDv!^qDh{l*=Xk=}&+9GHm7b$LlfxfGu0L zJmk2pTC#;Nx_OOY7R}|U0!2ms6SnRM^5AYm|o39(=t#2O1^PJ?~dm*@#z_mz2 zf^-Q~ceBOPy! zj4LT-lZrS?@ZzZsuTBRh%qJ7oPzowV2c;!%-&y2WZ>#VJ_f#04kLU!KuCmr}p|1GW z^G(7ul{_J)Jtsq6I33anjdY)@!)(L+xY;`7GbX*b89*tgdCO+lu?FTE2Gee=1RF=; z{JiFehcy4TCt}r*A^vSEEGBCriGxeDkOl+KN}65@6AIKx3|^$5sfo`(cQMRFcN$Yn zSS{iD(g6mTW9QDDEX>c*Y&VdW#+EjYZRX0dY^0R9j)z1dEyp}2%*e6~gsGI$_>6?W zvTbueR+1hp60~6fmb4OKY8Y9o)8gE@6P$eY7254qa=io=Rayvg?*l4qs2J6r2 zI!KMZqw#|lo@=9Zh%l{w5eQt@B@82!RzxxEZ7#=;99q7nI4{_gMmhnT?Y zng9U1ckh07MMsx=Nd&uAA5O--m^_hFyE_;!_gCsiC$?LrVJXh(uGb1|(zQ_e{?j#}hh z7|6k5%Xsi_+akDnB}~;dQ&l)P5tGl@I1W5=RPo?TF~y8zd{J|L5f(d&Lz5;g_`Pqm zI6k9US&>XtHQQGT%2}AK!h!RGGjnu*U#jaHqDkit^hH~2O(|w@>V9sy{dS_T!?-6cCk(}AB|cr6IgSldl7?IUO7sflqhQv8OLDa zf9Uu=g@VPNV-sAlVLR1VU+k-*)TRx%2JJ0lV01NU2kPGa^kQsUDGnb#OeT}zqaXd~ z<)wf6Ev*UsVETm@_I+c`nzg!Kuj^W^#=^p)*s)^=`}gnvnVf+?l>z+T@BM!D_SlA*H8n|9i0rJ0&*^WBFh zxG>x4(*IItT?+f1N^5g1-Piad#-xYd{)P&rfb?end(h# z>h+^ov(Qv1oz@tcYt&kbLuY-a7ej(5iSKK8=%p5sO3FtiT>ul2`Z5F@I3ICnJVMbS zR`Bwp6xyKwD5DY?pNS^MMk{4B0Ihm*!Lrd>C6#~? z(uxtWQAw1BTB891a#r5tEhycqBkTUU#1z0z-ZvS8h$Pn|^^ypI-)UpYj7_?+k|D0` zkjdo87fM*RpdAOC$ZTbFQ-Q&}O;o)=ZTdWZqlWKC46Il|ZlKZ=Zv7*%>pOmjBS((% zjyvyU%a$!mx&bd`8YcAjzysg??u82%Cf@z-cSjQw6Vz%o<`?Eg5Cn{ljWRto{ZpC1 zPh|iAGZ!xWaNW8McgAttr~fV00i@+HRJJ*M%IEQC&a+qzu`HXJnHJTK@$ileXYl<9 z&$ZaNs>q#h9b?bIc}|>a_AvoS9dyRT?^A(N2Ug;YdCS!Uj84BiyQTTCW2wWN!`N=~a&dkNwmcUNBy$ly^ zY#YWGl1-ax7eZhQfg=P@9}jr?M95d4ZDUEn*@Xavz_n!0*U{$#QAifsCP!Zg$xK}_ zQ;%4-s5v<+xoV}&XxUW3brek3H7m+CnWScTM|6(n1ZV)Ix#`3O5C1D`gQyuz=|7$ofbAemWU0& zrHUys#XElKgG`N2aDHME$Ce0fA#6bu$5@t&iWNwS5DKL=QVB#9BP>%VZ`5^#lt#+O zafGD|^VO*`lGOXBrXETq*b=6ETPX|IwrO`-gh52?#n>|G-lG*uL9(wsGQpTV%MQaOoALRGi=n_hM^MgN%r}e^YH~5=*%KXHN04zXmRD>xj@guQ7R8Lk zxArz^_`2sb>zXmLhxy)hsF}yOtA;N9Jaww44N+n(m~9E>+6r%8(+mYGDw4HBrVoIY zCgEr6sKxTKV8b$4I|x}4x4UOdOq`2~K|u5t3*JW;z&cdd95EMbYPN;vd1P}ryiA^AHcuv(!?7$>tO)!z$Bw^(5H7d=*WYJZrOcC$ zK1vYyNRhOP(+WFI2v)^}QH)laFb;{e#^LT20KR-J8 zKX~)?Z{!WvUBlSe7^%b)!ra^b{rlOub0=?l)0>R+Pm_r*x=YIv?A^O}_tB%rj^20Q zeNm&)pxtg01OagzO(K>@=L9-p>IuV(y&276@aCWl8{G#8p%@eQt#o!)B^21wqmf5i(&+Fwz z_Ycnz3=P<{I;M`_wPF96HhYhEdQP823WqVwCQd=6;fbRywy*Lif{ZI^hXOzDOy70z+m(%O^->41nWYX%(OTN z>C88|b#R)%p5cXq^R(NObmq_U*xV$oW`kzEO3-eD5JZ6Ec;pLtGG2~CF;6y^C!cX~ ziv`M+6)YPbBAdxmt+$Ay4$GI1QOM>QpBQI$Zk|pUF+ab^`1m-DW*f^A6wAZx*twIp z+;{_LPn=|Yd9kUrJ>^JLk|M7KNh_oftqqWf<3Jo+*tU%ybZ9jjWE>0WxLu|yjH=aj1a^G@35~=$ z?micQ(lOG4DDqJ%rqgUN8~T*W6&`uyA%5p~f19C^K|b}FFEUujaNqmx7-)S%OD(P_6hb!LKZedh<{GY)sW{Z?+eX&05j3YI0=vu6)K|Ni%r$z0mhAc{khM5?hBPlCEBuO3o|n_B90^NI1ZaOZR$r7PNj_DWS1E~69c&Co_nGPAN>9! zyLR2Q(V(=@Q~tYqRO2`fS8ghD_=Jy*#`SC*&%w3?cilKjspwE`#DtN;4Rk8a>CkaK;I}ZjXY}*Ql>6&7`X)^N&1b)Go&VIO`pJyX3>oa!ow5%%Qt8EQsC2UH&Jn9?$ymu z$QKzX4U)}dDGv@avV0AeWl)%0+r_pFVR;#k)vH#sX3Z)bM{@4;8ET6QMC~^7wK}ua zDwgG7NsE1F_Hlknohd~D#WqOh8Ka=4AtxO4TtjzYe zEQcrx5H?A4NFm}7DI6oIrAEbyjBCI_0zW43+k`;|+i?<~rtb4K*?=-dd#QntAhjx` zlNTDH(pGU021d$;QN*jq4f4{v99w@GtVd_q~tl>1lrJw|;wx?SJtQLU88H znSJ~Az4+Yix8EMOS}lCv7fNaJ`Mh4edNtK*_2RE3^~#qrfuD&10IXTN_94rXA5%KA zQX4&W6eV|tMzDQr1^eL(Xbpv;!^(9-96B`1XTEWokKVhUmBTI?L9H2b_*8>^$Lfqv zwvbj5!|xJE>KyAi*$}2J)7y3q;5i8h$z`;FE}*0~N}N)rI4S2D`}xRugHR;9n;|tb z%yTIO6N?d#AL$^ZO|7F@>}b{vyEv}q=tRV0$Na>BDEe>*diQ>8GD4Ar(-Q2%p`v8I zsTnK?vaU(vRS0h05OH1U1cx8oO|bttIfn1Fh6UAg;bL^E@sWs}{^p;&5K74{ZZo8Gg|A$W^Eyd{a<;>1av+FIp z*t%sity+y{C%|zs1aXWAJKT21E!=nCy$B&VdhjJ4`rh}r>)!kLAAj*@{P7?CG0Rr2 zV%xTDWL=kUe&gQ>sy=JhuA@>cvG@7sS+;y7wS@&benc4iR4Nswr=|^*xY7hc2dy+2 zH$$yfMcNjg?GOe&mgOLAhtLmcv^!Xii<>qR(MIJ4`kD$wXeA6nkwNeK$Blygt=$oRrwjc5L|L|$P@Wp@Rop;{J@bHkKtJhH4J#P5^(rY^x;|KWoj0&S%ExdoFUcE0K- zHhPj6V~HgUaB2SmnSf&$M4M#;g1WC6En8f_-r=6BCFhSH!SgVp-Sj2N( z!q8{-!UeW%+Qd_jKgq}c=U;KixExdWxjku1*x4(NocfIp29^1W} zFMjTG21!{(NNJ%}2j36ygAm7cO^B~QBq(&ZwRcww=x!tfZKoo$j}TxxjzLn@ri-u@ zMzo^_&pi7St5>dOYWzI!x${om{;oS28Xjb5V30d*xf$2C*m%Wue*M=!%JElD^S}J| zZxcl^aTuYr#&u191G#h6hdg!4C*RS88^7*_7!%zas zbzPCq8-K_8_3K~D=1-}s`}yk>CN3TK-+zDW7eDk1?r&E5?dE=@UE8rZJHE*2 zi2#M5P|4vpBW%}Z{kjs>w&u+F8dGyV2TwFi_GOZIl0tbceKf?Tv|#m!$A|A&hU-Wy z%h>kaUzRWx3p2r9admK3~rI^cy1BcIQc&1Uhu3^~uG+Gw+|P~+bFex8BC01y4(dtA6MOS9EveqoVz+h<{Z zkwb?L@z$Gfrq!tPz<0jQ%!Mg3*#frZ(rUE{{g93y5JWMK<8tKaVHOvw%q>(2qnLcY zfNj~v%WTo#m)>(ka1SXSm_|8@c_qo3N!|?!p3%YLjZMiXZso z@;Pq3^=$|tIDh6Gd-lG_@X#`T{KE%%@~LN8ziA_5D_0P7I%IP>T-)aV`SZWv?RVV; zfZwT+&kvwNpF7|APKJku_?IvL6W8BxBe&mnJBu@u+;GF28LA9&;|!{d)W%5AsZhU=wBFlL`Sj?H(z^X<>?eSYu5S6_W~=(?_U97jZvDW>u~ z4&gFqmJ#kNfYJi4dG zvPuS&!p%7h4`;bhi+JL>8Q#3J!jGQ0Kpd%FPJNd-LASCmd7Wba`;q3@`3_rGWhkWh z*vVIP62j?+T268Mg3vGl1=KsbR}Gh5qEGv%`MJiY8>plhMpGWF5QfHk8>yIPqiLX{qKF_0**`tQO>f!7 z;6Rp7e&R357mAdJhKZEs!u$e43M}a$EsJ#@oY)G zR!z`(EV8bLB_#EFjhPEGjE;;lwt5A{fjs+Od=b}mxcBGpBVnr3pJLFK)F)E%j5y*_?_!G zW06oPbe!n!Nf=Hi`%LQy633rT!29D^5h)`?RANS&6kmr-HjCrfwAyWKX#i1GtcX=i z%Wp9=57kDKbK~Rees&LG6tQykS{7&L7+y98z?#*ox$)Yo7#>+pCYvKvntG#7ZLz`0 zS6|_|Jx}wQ&wPg8`~BY|Mb|MJD)sMv=eu9qvSo`d6bf`Y9bs9P_PmUUqDUvc0|96$ zC7U;IX7}#hDS=)>{O})O0H;o$665F3KPsdMi1GS-bM#2nJX^o2$QyPHbH`iPkj*$W zI*R9BsZ%L=WV1Fe9j_Axst-cCj|jW=elJ9$G?eldZ`xAehAT{QL<+~&-(16t-fs+J zQz_RDHPx1BwizV(x1vkOsw5@9BfD8ISxS((dl&P1Z^6%Chbm}C^U8S zLFnTL7TK&vr`cd`W}1bC1y-$D!+YNSPS&njLA&J}q#mV_mW^c#uxwl_!`Hw1H9q#6 zA0wY1;6MFu|C#;!53^(E)wJuWgG$n0y0&@q=I--2GG=OhaS?YUgOCX_@V#&4$q`U1v$!tRyW8(o!VMAx0(ALMh`=6>&0uB(2RbejX(SmKG?> z#OLz`hbZu|Tn80JNn?`^uA8CWYGMn^z;x9cs5quptJ7%KaU73x=g+YJ&;e#=XUJx9 zw3-dF*&H3;$8{aNjK|FMY%gqy!3lWksiz)nG#ZoJw{MS)Pft z+_>@bgwZ$tLmGf(*)Mk5?J3)K*Dn2}UloU;N{+j4UqwEjC7-p)wjzXr-H%U@&lv!Y zUXF9W33zbClI0HlNy(-B7}BP_>6B~pzsWe};f@5TGgX6nZ9lY*n1E4XRsH1g=zdH(3j zM(qxR(DREQ`fjjj72=PM$i$=~Jheo1Z6& zB7(rDRtu;tE|AIO$mVifb@dKzecR1!-Mj|ZbqIqX$%hwM(n8ucmIhyIW~OKPpMUjn zZoKi$3|9upNWqss_eG8zJ<8qp{v0>$+Qs0&ATRHGfh(`Pl5)9B;CG1Qn8liDId}H# z1V7&WI3N1OU*xWzdk<1tJaGR5%vBrRJsl+>ub|_jlT6Skj?u9~*rpIjYS1c1DMQRs z3W!aFUlAwffQ8Tzv7p%Q;&oN({$?$`Zt zn(!t9#0)aP93YY+C6XfLUCWfIRn>ZfWVtrhy2{=yOKYzzOC>qf2HBLXl3jA`s#aXn zbKKGZ03ZNKL_t)_6cxY>W)K8Gf*7R9IlkPvZ#rTBIJbKS5J`dRsmc9rzwUd^@BG3y z3`aO)IeOQTkdY8-|2T@wpM2_1{-6E(_uE#h<;UNn_g+$+_^)mLjlb_|lZ=~yf4vgm z@S(&0+O=!u^y$-Ieej`&|4Z-O_kErR;v_+d4tZH8i5-oaqSMWI?9o}?a_=lpztZIk zPwk+jtPpo{0*f8fYLyTe=lSS6=6L6Qq3FQ5#zuRz&T=))=wnJguu(&^xA3y$lA2w-u8dw z)F(fM^AN=eNv%#4*QwQO2qdd}Ru~S36h+3=)HJQBDZ1S*t;JPt-n@>Oo<<5qnhpRY zLEF9%LegkVF*7?$tJ$I`@`_&{oO@iQTj#x-n0YuK#I%uudacg{aHT!$A5vtW1K?^kHPb~KmRC=;TD(ikEYfz+gU z$z+CehQ-Atj4>5LQgH6v*>7LFcJ0hV4?X0x*1}pVl~S%OOQ*G#Qc4$|ul#sVyk&`X0&Q=_5y@BY?7;zTjmj7Va| zsY@en?BsWd9gLB_udcTXd%Lc;&QV%lMRJIva4LoaG3eA=3t0jE%&|MLtamM2U5jy0 z+Hk$Q_e5OYHW(MqPo)IkKAW>U8uuiEa0Wu$vH5Q|KAj95e#PxFK}gR7^Bv-+evNZG zH<+1U#9B+1rsPGz>gpa^%_hzoM*SYv2AS&NpbH*mW@m8Lvw!U{yX`G5T|7f;dXDK< zi{YThC>_F{{oH@=eGJn+mo8o=(vl>JL3rfYe}24lrJ}SB;Vl#ebHZ+?nYnt1Bz4tSmA=KRXc=2__fS#Krkw{wX7b z)M1F`1=biODwGDoVXOmJ;0f$LUm0~6AIgZ-*-FRHvvc|kwhWZtuRr}PUw!ha@Xn-W zFdXuSpZ+t1bqG99Kl5C;rhuZf2!alms7y;j*>A8$RrfKV3`6FpiKV8b2%F!A_in96 zNg0Ca9aQqLHYHLAC8;P*&^o3x25TL?ZV&6sq{|S;5u?$FxL(6!iQ)+1JXxBelw>#> zvZ5qfY05l6#kG$3_{TraO4s_5)O*2&wjkP3}Y;;O86HtM(b1_LAj5NoHEia&1SKNQ7!Rma(cF)ir zIC>+;t=*FCzGb~*Xx1ghz_73s2C~xA9$9YeTCQ#zdZ}Z*Yw70>t-@Guqvyhn6@ZlV zGkE;PET{sFQ~XJ)FDIOY@l0QcG5SwVHvc2@yXdF>HzbSz^l)XDy~IF|I%WwOFIHq8>-YNkSY))Dn#po_v(DwbQ24?IIl1 z;+Wa#XKo z?efmfPH(KTWv%sq_uh-D0`PaTX20~MFTHjE)M%_nt=|ee_1V zy?bhIe&KC@32$)6rE9eqB}N!i3td$!u{P8*?SWyVQ*v{=Kp_|m?Id`3pf#mvHbQLb zXW^tQt!KMuxV%}Co1m+|(J@@zHr&`Tyz6+KwZ(|E@N9G}r*0Gs^Pu!oI*7C+E16^z zvU)9r=kqUTWQJEw^ls; z?05G+`Q+1o|L&tl{_|h>d%yHgFJHO%M`c;Maig$0`6s9U9lP@THUGx{?_YNbP*y|( ztu-&a@WN-`_rCYPZQOvF9R7D)Uh9~8JRmo|irk*kc;XnMNN`{!;nsG6)RJNDFl7}0 z9K7e@X}*1GKw$)}hC)f0ZUiEal#)mbE^QWA2j9Jr@zZZ=a_?FaRC}#wkU2V4*B`>h zE-M?U+ckVR)h}*aE^OJbz$YF5N;tFXON?!t!lDVyNh%)uV$-v9`ga(4i&71a9NEWU zIASmy(rUJN^PAqn&dx4bo|ET+x{L6nqXGSXm$D4N5-B5UNsXjdLq{=D6lTD-EGfzo zQ)HxB#?HxHP-6zUaTV00_QBbDJEnbYb|A-lja#_Wa$rv zj0PF$AS26iobz}QCJavc;MSy6)pPJDrKq=BoIQ1lFMs|CE?>FK^!z-_tNU5ncYx+F zWzgAWm}VH0k(Gv`$S`(%qC2cDDT*+v^Ty!=9v6Yec|!o`1bsl`E29qYa8=nfW&%>p z;hlF_Q&5bv4eOCwP1J529$T5YBK){{hV-}9fEWiPJgRB{qXb@iyf1<9JqYI!Ro+}0 zR~;Iv3XYY4No7&yg}|02)?{R5PGJlt&FBvY*rKG<*{zz(9_fSTfw3jE+7zwk48uW+ z77}YJs_zum8r}*>h)pTPY>Rsei3j6J=R?_XGNKuX%X*5qbc5 zUSNzNiXyqTcHkRAh#XHsbwlp#HwZu|Nwc9Dc1ny@81IQ(kddBkXny)_3oOqiymBSw z`7;9+=VIoYntKn`IkvyfM%%D|F=D={gWP!O>5LrHjWAwWn$|4OXy#jrLrXf`P!Z^( zY3WHT(ukBnH{i95LPYrYmu{G#dLwUdcz;KbxRbbZdwM|Ck(WG@eU59FUu1rM8E*|2 zFJ7W3ipmVq((d(e))VQNdIO9JbXeztPkk+Ek<@C`r&`o&5mU_;)6;WA3VMS+?VVkA zcD5MwyL9^<`n?X;lt`sWYAw9=)Z!7wLM=|H#W60Ds7NDh!2cJep){5<%NX_tbn7*A z1yUOJQ_{|m(Qp(3MO79FJUWS(@G+&LJ~hRl+vj)x^}nV$Gsm0X^%(DZ_fK%``c*F9 zxPg)yXB~qqXOxaY`j4w76XB$m0)&o2GtI{c7n*a0HFzQM-eSuVA~43Hy~C7cP*t`D z=K`GDSc^49C;^Ni&kBZliYrU3wJ5ErO-&J1r@QlEwjZ*ZF;pCcry8v)tPj8(Z(X&P zY^6n@!3XI(FUJzXo=D3IT?j%(2rp5QMClm3L&*f^4MI-i@L&l%g(An4hBWI_6eUGj zU`^0YtV>OjL?QEYp28Vy1$o!9%Eojg|JA?zm%scg|LZS5b>f8=o;4;6R4ZtF$W30| z0Q`QN|3?b|qtTF7t3{F|!dm<6Xf)i6G%Zx7;(uk(HQU>NtNZr!+w;uNDbLIV`pmGfl}{Bisbz zJiXK~NCW&gs)#;IGn##~ii_KZ&d}4U3x;_({V!}=wuZMyL*rAQaosnGXyXY$#Z{`F zb8L3Vwa@(DM9CCFYodCcnfXQHNaKVg(NPr$JX+tDxLR18=iq_8*wXOqcfQMoOIKJ} zSSE_dfgtQJi}R2HD|}8)S$K_MKr-V2q6$kBD_aPiHxr~R$*4MQEm2g%SNI5H9nKg`ZfFm;iQ<^X)D#WX097$U zRmk$Jw+J8n36zxRs5apQn6gqNuBHm!J4E%By z>2$1=QaI>u_a`Q#hadcST>;>I@B4AlZntSRTf}k9($Z3X_3G89?z!jK$EYZtOb+F`}RjXbFm;dp3l8l zFsO_&CJn&w!QEjd65fnZzUl&pGC&H!(&pz_R}pjb3l-o*RGe&sQc-o1gbc|VL!=zB zs*`rRTs@z&urSAe^Gkn+mrtGJ)1Ur4hY!7hyYD_kBd)W)xxwWt=h@o0&i3vG!+tlY z;HXebE2$>f_R<(s5s-3YqYh;?M4r6RWO+`SNA!j5Y$TFl1 zW*dd~sK|vGyHY5f@QMHT|Kq_&AL4@_{%QLC4&VIxxA?nuf)Q{*|L(SUAyhfy{H z1c?rkXj1Ddz z9t#UY8dD9F)?zpuepV{^x1DoUV(lltj?Ye|6tzUK*)35z2x=faQ8lkN79KiOr(Tn! zl|{AlK{7k706Y5^0-d-wvUIIu@2qB_rO3)q(~SzpAotWNUO*BB!3{42aU|)bo|88% zGY!Gtc%;V7cBtE)y=2(Gs5rghLi#W6Z2XNU1Y(l%Pf&r?adv!uME4tCVXDz0%Q6HW zW1>l?H;Up4FD`M`acli1MUmrt%L$_X`wWL;SkklK*aY8Gphb+k&)^BYvH#f)h^z>xBEL<383Ms=#6;L_~ zQ=Ll5r!+-1sc=<~A_P3|Jjw@{wL>7Bse(lT1t2tIc{JlJx=<7I71cy6{WgWPjz%P?D) z{M1ABzycgOT6IZ178nOF-ZXSm&r=r-rfL>XNI@`}^^Q;eaksyELm&jJEyvvV{yDug zot(x(E3^$HBO^l^>OHv9a{b12bQEypN+=>B5h##~+0`}v?6Y6w?xTk|bo4lj3kzJk zc7yY0Ug6r+EA;#QkTwccjUU6w@4dsil3G#^WD@Bxg(0+NZj)L{S(3|w0Ry}b3)GjM z!Ei`v41+WyP4fT|){?2ICb15utcns|_}=%p|DgvtcF$cr^VBo^%CG(!7cXAGnljYZ z!XuPGim2+MiGZQ-0i5J~<+%VDYjCL}vKFO7njBs?oZ8`p4+~st1xXmYS!WTRkS-S) zX*wiNGfedwz5-s`va*U666Zt7 zqJ_lz5IFI!G8It>Jhj?X*!UIT!h4VL1;GKxR%1>}Sq8BaYYL2a;EO7tL0M+O95t$8 zj3-VKoR4W}$y9xcT3lm&Ga*T8IA_BlA_Z!aHHETFAV`v!?>zm?kFT!n`_-MD9T!DG zM?q^%S(ZP575t-T0OGE@?xHLWya~PO z4X`dqSF19d@{O7z)?zaH(<%TfW~%XDEgIKW&`TZjt+4rx^Asj%`_*H~cHhxRBugzx zBk>F}#q3lt@W>79nGM?e!_0Ge*V4;8PhGG<$wx7fBM)`|_>is4Gslbhj=8Fkf(QGL zbLHAe5FsTq!Xk{oNCil=R;W@TRYbeJi&UCgtq~e?VTuf1BBO+QBjG3C{T}|}3!h>C z!DDzl8#gvMdGaN8cDBQe7+-M&LNxMJq?gL>+Eu)DX+c_r6a`iY%A(T#&qIppgbU-T z+|Z9i&<7}TvOK5JXwsVqtC;kleg=lf}gaT6#8&3cUlN#<7fQFceW|_oFpWd$Alp?$IclUBjS_}~K6#pl z=jIt&MK}opiIN(js_~_i$V!n_NzJ9J*ABhu?QdD#-QB&GrI}BX#E%2&U$yyPPXG{r zc;EZphjUI01_OHCo*0cr^m{$kYPFtt=R4o|h%uHscmJKQ9mNq-HBWbF&`Kagkj$2% zn!8uel|m3#A|FYG@T-Pz?3)j6Dx=)f9yv~2$x%|UcTN*)!E8g28!%3AU=b26*z9>u z-ZC_j;Lda6x}iOC-0XN>S+}>PsbPW(fPn3n2)rbiRE$?a7Z7d)cG$j^74j@&L>2WbFFI?hrlU2?wx;>UlV2gy3Hw%8*xqV$>g;K5+`2)L z2S7^@tPH)8G3P-dCyGEaczg$)J!5fF1!GH5l9!?PVXeb^OHmq%GBDuq9$OT6rHG;$ zsmMY{T-4A)a`xOQKK#>vgIl+5@teQ-TWs!j&^ii4EUhcw`!b*b%^1r89*t5}iY$Xj zsxhX@3aEMlVJ(g|`n(@+scP_?&bCuzF<7jcmvi6f-MF>)a!0o)HKj@LB zBj)B8SYBEpsZFtW-#)gtHZjIAzqnkr8iAlWjbID}3!Z`kz=b9@Uf{F}!OaE>GFj;i zdNt0qHP+<8pQ0%6K2V2+hoVRkLXu<&saE7!j`aqUm(?k+C)ueKD%@uu_#YMzPH^e+ z<=J|zepm=`t=sMSrR61(IPs}UUpo$bRq8)}{ICEpNrDd_K8z4y6gV6Xsn_f5?ChvL zd-gmbr2L-{HX48Cuf2qjlIf=A#%>v0V6QGvp^P7!0DC35!?%l#^(5 zhiln5I}m6Ei&y@b^P^D!qB>+~&y@^Uk&wGSYNErq2jQ7-|m|>n0 zRjfJZ4B!LXPAJfU!){DTtcu{Ci$O?*HDZnhqwI0*p6I%`ULKI?w<4zyBMy z+PgHS8dak&(1?vScoMv;(0M+MZFY9H zSzKO0U_*AN!vr8wveFuL)iqTW3qdkQxbPn7K&leuBu-i!f!pG=gwlk5QN^P4 z&Qss2&l7G{~}y<)x)#7cXAETT`wEO#EN4IRC85kV%?fz4jOlct`qwWIE;6SHB#DBfSSNkfOv` z8Nf0Y93d@lBn`g%>~p;HvG;J{!X>U;zC_QIp%hRG;b3QXgKJmMa@QN~=aDzQnbBat zD<@xOWBn#YnT7Z>R>!4MwpA*0pM^l7Df5ha5{Jg1hum14fH+bpA+WX#vvwJv$)(a{ zMHt0N6@qO7NUhQNh`gTQ5DW$>$B!Rp`_?umUU(6S!sRK=>E;ADW2^=1DlC6Rn(-dv z3}s;{%OV(K*r5ODOj&_>Dv_1y9+$>c+Wi$>m$0eiM6b_-2;`n|jV~vwgh|;j{@1lK!ZS|Ehrn-}ts;tRo8-rQFw|75|4+wXUR{U`JU z_M5Yu>h2)bShL;ZM3~7F_Ch#)tRu@(o_gx*{N#r|$Upnlf5bE2d7dwS<(u5NeuZAQ z$E_O|>2$U@`iA>?=;24%x4M@vf90!OymEnVzZ*_CB@q?3KYTyc$tML=SbCclWLc15 zuO&64QUNNhEZ$biNK)fOrL3zXM4qB_gm;!m$3bb|T4Ei6u|yKQDOg+E!-;3V!)Q2Q z|LQ84x12qFl0!%D4kDe_5_q+~s>=f*#yW>BOUfcAFAQaA$gQEokRExO(L>)6=s!V^KPon0PNi-!ZZz1mXydCybfB^Jp2y$x3>Bu91;Ldmn0fYY{?& zC{Z3tD&mpz6}Q3QWtjCVA&8TNT0LMA@}e4p`f&ZQ2tr1nqL^DZZywmQx+;dlk&{CB zIEp#2w#NM299OSgq1kLQU&*b#_VFX>0RSS;^J;^7I-QO>efsnl4 z80xWLx-PlV3BjQr3tqTha;xhnimo?1mP0<=JT)8Y001BW zNkl&%r9{H$~mSQv#j5^!YCWj@Ac{JYz0n3SxnrT zrBsvN!Fa_9HE!EYx(1WS7(+0=hu%AGUcW{yiJ6~UW_iyZ+Pj;~FRoy$3CO`HWT_qz z1V_YJFJf}FV6Z9$!nu%n35gOaG>EIIj}V~@RZ^p^rxX%|#rrY@5*>0Btt0AFQ%p4) z6r~L%rKc)8!UV`ys##GKF-p_9ef#%D&wb~6xl)4KrOOmW4&KvjHaUFw;9na5z1{%u z+8teuT7!|{a5#*WQr~pm^?}x3{vtowWDBzid*&>o%#qY2%d?6`EYM1jXsWqxzy=h? z(@Q;5N!Y0U%oA&ouroX2O z1mm8AklY4Ny(%5R1Jj8|_OBB~aiH?Tr1a@EfUNWn!%sz( z<2egj1!yZlpFTAK*(OC$@X=D>oF=%)NOGN0&a@chBj#(1Y;WG;*7g=rt-(uY&ai*& zFvb=vEUr+N^pofS=Q&``LpahaD+ID*xlLY{MnZ| zaPTOlQ`~jzA&M8DBaUi(_;3Fl-~8qm(OU4}{F{0C#0geb_AwmxSzKIZ@y%~WMG3FG z_&gWSpQ}>;a5y+oiIN25)vKC|cN%hvkhz9liFF|(^o|=hZ!*=KA+FWvcG@f{UG))s zHSh>0u+)LPNEH&<{c!v~{_HKJ_?cj8jWmz^DXtuYvDNExkwjfz>3HrV> z!5=jP7&DK;VpEE(t?l#OPUm{7HGTY5QQ|eRqft*-nH}M!V5T0X0Arc93G-``>%z>G zB$6=5g9m`Io^}}kKVLglu-Uh)cO7@FXg2$feWe$H0(T@l7emvwF%VgdSajYe!qcW-geJ@g!a}>@u|S!}_$A*7O{W))X7JZjz=Mwk&Dy z?yzU?8nq}6;Hg?8d`a*MBXpz37zvGVpmZ2s>uWl~CW`SRs&JpAw@$H$H&cW(W0@*e4kM&ihvM+jdn>M{JY zO0YyQ@K9B!b69wWx#!xB;YP=CdCQQNo_-#%{z3>|x^4ncLJ=bI9ieAzy!qq>SEcyl zl%J5+%W;bD?-&N$ArUT^G@D}OF=fuaeXG3n?QdssVV>bIrQ7Y&>-FjO+KfgS{a&zX zO0zW7z1afnjmWaFdGb84#FP|7Dw>F+lx0qyrp1J;x2Ganq|_ zZ!kSKH(?Jd9R*~QvBZ%=D2Xi%O2$Z02F||o*uqn~5+N-0dJSU=N~17%3KOKYmX??K z(?9*QVB2QkzWeT{-RmG_L|($uo;7qF)9LMU|08dw5k<87o7}y22vou#8}i7T-boTS zY0OMhmN|!x9HZ5oqtR;c^f$gtqfz6n@BRSR=4{@)%B2fum}<`O;G5n-uiv44;%Q>7 zSz27-zy5`Pz$>pj%M(vL&T!DH(*Nq%sA@%Hf}NYk6Dc*x&;q8QIuMk?Nr}*~vA&Lw zim6r;Efu{%pJi)kw3-ZhU263PV`lLLfmi(wOd!j_yF#I=;NV?gmr9|L1mz%GHHvX& zqA*>KTb#aHhxkfJrDDAXkq;sjk^2#XK&4Kz5k;9X>~?Wpk`MYz2M!(lY$WOaS-~WeCCP{))%D?{uANcD9fS>u9pYec5l7yltCjV}XK}sp4lw7}lJ(-`M z`?8es?;2yryF@B+pyVj6qSs# z_kz_~i3O(XlDqe4+C#_kwBkD#iwPTW96_akn?28sPJo!+{@$vSKis{)44M$*ez6F3 zm+(w8U^MKZBgNA49QVE9Zj{m#WkHtZjD{(_{(!CRHrpFp+}zk?eRG}8&Q3_%30-kh z1hI(0XoM+7p~)Eqzr7%XW-xhPamj;I4wZI2HZ15`V~XXKy_7{sue}xe4N4Kk3AL#y z>T!)xYKU|kGB#()ijqdXK}|#~%r0WRC(kmnY{X!c;_x(TO%Q@cy+PJVS--UoUeK6s zFw8Rc?K@1j(_yyW#P`}<-?+iil_i$1zQSpraV&1JQ(oZm)-Lb*@Q1m4`68eF(vvtN zaV958>cmNt)xG;Ua`b+d@41JA2ah48;2YogA}f0i;iaV4-l4m-&iM-`N$L#_9KM^= zXI~(yHF?`Rew?kFR~QUOoImq2MK$UYg!N-9!4P9?5cv?klJZhvl293gw0CxhlUhJ= zB8VduI1|~3*||kJo$IV9iSn`nVvZT24kfBd44|Y84opJeD!q$RfK-+!(G;Z&T8Y+S ziUMT73J57HO#xqZ_W>K~eGhnN(NPdGiDLz6*muqucH2Ajx?Nh+EpUSEURQqn_x|m} zON*;$sd)6kV;|gi=*TAp_`m!2e(48p{=YH+eC%T%17K@wi?S@Mve!?1%PV~Vb^ZGF z=ZYfV5<;%r{_0m30zwFyjhOD0g0vLumkAALDZQjS3N`=k(DBL*!(vO47M@ljxaK@# zW}fq&m1)J9b<1=^5=U_VTEsU_1rLHinHIPAFoLHqnaQa?5&D?4jBh`8{N3K>|5xc^ zbsgWnM7Pr=A7w;R(`+^nLQ*H8(Wp^NBE0ZqdCJzNCrgKvc}`Ij6vm)rU;-kl@lTmz zO#w)}@mOK7ga)Xs6lyC8gGmY}4=UQg1g{U0C9U7oMj!)udIQVsUX!TVtTM0mQ|52L=!h&GaL}Y!FHrqDhgVj(a^WmHogVkT;W)$5h+)4=Z`h~X z-(vH`Ri66x6SSH$%+4%w?7l}hcJKYnFRf5-EHUa2_>)il9&1OA(rnIv6J(>DtJhv3 z9rl@DTIRhU`dhsG{C9co>94Z6aSI_;z$H|`0O#Fg4z9Eg?^y@Vz0yJb$5?|x(43i} z+i3$Z9QK)8SVk&Mo@GoW&7dhr5SsOs>1)tG99xIU3b6>F5XRuFz?6n4(wJ&fOC=|~ ze#B&j;cOYEIx=VuSZncCpoJ!?HBiwO!iRN}=LP*vm(@M1%+Ai^9ig$SB(-{tIF9+i zM?U=3lPAyou&q6L{LnF=b8gb`lTtGNyZ2sqorif>yxJ$-Q70BQJO9DB^NqKGJ?BF6z!{4mfP{h)Y`~@q0#`!# zu=#Zq@#vf1$+J&=CE))nT|MVKNi7M;MBTvQN%JDO;V4CCFd)$pqv42HYqC*Fb6R0+ zNm*nxr)M~NLjeW$t>zeRR?`MyA}@I7L#A*&FYpn>)^L+#<6jd76^t zC51CcXK`MkBS|CC3csyp`+Cd(9 zmh#fgZ~**Q!TR5kSCt_6qnDRq|uyVW#1u^TFmp`c?xSiNA9|pqsJcLr5B!M z*y{ypF&xqbP?WD!kOTp_siekvhak-BjW5{TTCY-eMYr8%-`@*xFz88W9~;W19!Chd(+ zdLa-BzI58LJ@k`WUyNt|h)UI^`o5}wF!A`4vYHHp(!@)_KDog`wLy^^o_p?ly!670 z4EtSdSrREto@d;=c9Sz_&a=6(!5|$_#QAe) zSy(whJk?@nyN#|-qoW%2)*SN-t1K+<=is5^+;{&YJn+W1F-(Wtx^jtbw@stbAc|v} zaU5!GXSlh3jh9~d4lkbgHk%vQ0?b-S_U${!%N{x)imO7`1@Nq}`8C1e#i!sj?WJx6PLhOOOomKIjRXQ>nt z8ED2bpgkiUR|F;<0t8U8gsPFP!x~Fg6c|%t%dn4vq`1M1u@0uh+H&GJlq3=LD5)gl z92YKLpxy4EBTch4L%-Xh+v`#o!=e2Lc+(?~_;hgz->h=bf0(MjQ_fLn}^hDqjCYpa^P{-JteNrNbimxb{Y)m2HE%F7X zPyPXmON*>5E#q8Ckrxa{Lq>xU{eF)$O{*@h2+-ToV67o9(y;l9k~B@}c01(h2xCix z5@?+e=?JMc<4L5DfjV0ngUvJ2Yy=KWX%I5hg9t%cR8r<%1PiPPki+=JoC-3QjCTqNgXXcyMqBcyX{cN7X@*x&Ruuk&%wiY(P}Ml_@4Xe_PTua zOMi?n3~{|dtvQXPVnX8R^}1X&;RMCChcTum^(UC&RvDu0U0wR${s-WIe=4IIE){u`filU_3ZCCC~q3Q>5vCL>s3V08LlDPP#8HHfG~PS1Y#0udBKQpiIk}QnW7_@3Z~n$l{M+CA z{jarJEoNtC{BQo&ufMJU@WV0y`O%MlG&D8JQq*cSnWm{2+kz2}Dl~{F6Sw_!@H3xd=5~NG}d>6}|pk zfF*~5Jh15M;S@zmbdsQSgjSloG-wqurtavtMr(SGC`wpf*~{F*BF&ju7UmaOUfDww zCqz+1yrj>jMV41mW0riZ8k1L+Ue-=dsd}?XmZsF=h-RZknWjW4 z0F_K(sMo{mAHVNm_8vG)(rALv;bgRev`FzNoD-C`BuVO&MM+j<%q=dmzJ3#94NFUV zxpMIw&cWJ&qg*)qazHj7y^nL}UgXl5lN@{Cjg+S3+SNb!*XP28b9B0G9)9Q@ zeDvpjo&$&P;pI~&xqS5!{mvkq&c@<}#~Q=d#&yo0ImPV492d^K04R>U;W*w&8qH~J z=_!kXY%pNZ@1m9F$A0o7Y;SKd8uU<=P|Fy*KV}YAV1Y_Rbewxt+5jR zXOs@f@{A%)>5T>fR&5H3A}6WWiDFH?UZYV@DqVzPlFg-~0ckd(R;$zL^~7V3y;Gh& zcmB_sQ&Y^%&GO~1Jn?$={|^lS;-eq^C;&xKh|y?7tJP9@o_k}Akh0>wg7V(0vMkEg z)s+WUS63gnvkx#)(47Q;kZ!(s4bHDy23b&6@d%ErXg>C~I%^9-npssKA%wuX;I7-r z0v%YWJ8=4p8+;+)q@~~sXY6fS=s5MSGLta_SXQtZQQ3XHDlk;3|M=fm%F8r5XUHqG zT({RHFH1U|4tZhN?d+1K8KZQ7wT^T+s5lIc!Jvm$5#9DKI*Pfqex0(+*=@HO4f||u zZZaJ8NrwZvy>OMwk!L`d*IDg?R)<^ur`+u5a#~;F z;0}!I@u2oJUbog57Ut(!TwI|wGtGsI=jnBK@h04h5YvNon*^p>Ga&#=LA^eO7lNo3 zSIt3PHOoT-urviqDV#9@TqHu1vb2t}EYK?Lbw1)<$23p8V%Qi67FrS~B_DYtVPz)7q_Lodae_z+ zW*UNb+@-m)zb#7@sIA^;_|pX9URQ*kEIP zaUneI-QAFi3&``7NJos)(WJ9$Oo>*SQ97X6Xi=0UgMODduF>oFaHga;=;55D*B(%m z`J_fSc^PKIW#En5BEWaY%F7eEYd>ZojDHts84Nf=b;B4L??AxtvL=Hu5*0l z2p_z6p60$e76nW@%S zyN`46+zC4EE^j#g5RtBP`o(XvZ~tLR6SK2*nhR%NK`O}ye(Gm=;GsA3h0lD7VZTpp zdYW3JLA_q5)9q3e8KcpV-R*7q-4093s~kRj52gs4GOpJti#*tX8OzGbURL+6@$w7L zQszM;!B{)-{2L32KqWdtIH1b1WM_AmrPcjRHKsUz{63z2`bp;J7O2${qzFC>qjW?~ z$6>-F1yY91Tb4zT?ur$8HUbQTewVTgr?_`xbeuKn`Q!Z}G9}y~%^}XIlTu~m7g3Slz3;uxeeUz1 zMMo{uA_x_h!CJe)EDdp%hrT~LER$jUne48K)n5vpg)(om;lZWS0>RqKl znf&BcnN|+! zk9IJ`aLtsw?23XOy?&P@PS|d2YFcL!qp}ofSfpt}x7WjQ9JcHA+%765Z8Z@JQl;gr zk~r4AplJ|?f!>tMvb+RMbBV2d?>if8e?2>?>km{2aBLgf(OYDhZ8BOabAwUfme;+E z8}Ggg|M2)Qk;O`J{=y}`_LZ-2{mnOW&%+N>v?OB(4s%)>Jk)CP6YqK#AGz;Kd~tn| zcDuptx4n?Jz4}#zi_7fo1iUm;tUh&)#IRVg4ZeH%JST3xl^agp&ZVcHL?sE+2M(|> zcY*l}7udURKZlOq!t%8_&OZ4Fdk-9@Ix)@a;$>Q`Cbfx4+KnwPoIgXW+2+vU<0MH$ zuiGV6icY_eQVPqmNK!4Gy}GVNQa3l(IdJ?Gm12o&%kv~*kAAO5nnq-4#_awh+;aOJ zJo?>-ka3J5B(V_rCf;i)Gd(+W_QgX`^7m zyTW7?iUl^-SMWW5cseJE{(iR?P^nbt^}3jbMI7rLd;}zMh+&$fX@coE#Qgx3=y8+= zh{QA8Xb0?5J$B7E;s)(2K)z#d8rp2s^?Z(3M!945FmHU-8%Xy~bKtcvWwY03@mr^v zUzq3Va~D|N+#pFZq-F5v;}@COvky$@v_ro5z}Jw5#h-oXV@yx)<4521uMts?8*ek8-6CM=_T! zUSN89mSU;G!6V1X(wOC|S9#T4uf;M99(w2@x}64Zdh=T;mVC}Vb&l1=1v0d?S(ar) zNl2E)2t!NZ50;J;;8&{pe#wP3(k!#!88`TIdi>8Y009WYFgSkvIBA-SBuPZS-=|nC znn4gKrIa)bLuOfK7=~derHm}gC=~q3g9i`3bRZP@Y(Q`jh@D=*{D$O*Z}GTp#$uvk zFj+D3m0wMIOLBSdexw*H3BEUU_Dg9^%)Ej_=a#ugUvj;Hv zmx^7_7eoH!ozgC9Zb{4vK&NSdaESG%unDb2ytDPZm)~$I5{0zpX|bv zhz!jkx6C0bZAb&9QlyYtxktC9L*vighyS3U8Q>X?V{zl`A#NC-Mwtfg(G#3*uk!Ha z^L*~ppW&X*-OJY={1#80f12g>H9E~E-HxU%H|rbJw>M~SZPIDg3HyBtewAXmgo;CY zy%rlA%ba`qNvQIfaN*i2Pi}4U??3ZNmTEp`mT_u+m7^P*Ja+L6 z+X`m)?MJ0>;OI%Dw7Br}8n9pTWSL)14nSzlYm^$JL7 z=xxJfV6T;b06A?Ok^4o)F=5!JzO})gnfTY*!Uz;NIb{k+SPgdVv%C8K$>PaGb?gh001BWNklG zj$;u=37+q=ytK?nrObWzeTEU=qgJl)mbd%}`}a?hMFIc*fBS7F$H$qOnPl~vW;UKb zcNW+4kd}q#mvJ2jVOV%>fv6v7x$|6siM%D0QjdCXy5YKoJ=4=4|E+)f8_&rVWbpVW zD*zbuO8Q972|ywjAW%XGrHw9yuq?~De0lEMuYBdJ5~VQ3t`Br~H-HpOk6Ij^f*{UV z+DNgV3aDN~vur_#LKO^ARjO;I#iTVBkGJ5Z^NGC4ELsZ*yY zRf=ph>U{E(pQgFB!Tv*sc=u1ei`!oOLLPtY39hcUDP4aZ-kq=Dk^R(b%S-4x4u=jL#&jJv)>c?wU8FoR%JrvSOsBieqo==zX_>t7?LWa+?)x-B zzemY0&`R6-GtCCr&;ZPp+Ji9D-h+lv%wImskz>~rMlmu?=>=VqMC(tKtQrRoo#67N zb9#IV!*%f}cW4@Pu1aOpH`hTWScao3yM7PH_XzquJjW*!ibAmfeL;f0Os~~J3WIJh zL>gM{3XyU2z&_SDw)pPjXJ~HLdFxx>%1{36yIEYA=S^>VGo!UpO0_aUl<@eu^O&}+ z*Sj%E;*d=F+Da@4i1J+!B@9%W3=?6NX@Q$4Nr>Wz=ll3a6@mW#@Bd!B{q1ijU-D5Z zSLv{ATT5YUB#``@LI@$Zx3{mfTFphz^A9{Dqq1}V3baa)ZFKq0rHFc%a%#WBLL;H# zNvghUJM09#j`6|VM+|2_2~7wc%Dm|Bp613Fio2EIwQ4F+RX;iFzNN%xSmh1*THsOY$=I45lDe)nZ$97 z>A1wHPOzqB#JyWwrJJs9KP;GEMahM{yd#llj(g2sg9JHJO32b(NPW@Il?2S zzk}^MBymC*hQsYYl@oX>qht79ktB|Y6D`Df_Uz;Mu7@G?gvl>fFf2QFl zCndh;lL3xx;t&(|JLDWwjpWA>fAPWpO4;|>zkh~5{DVK>mYYvev|J2R4ynHbJ2Trh ziNX+-yA`3xg-8G;2!jY|be~()?|S@WEdT(=j~|!ia+xg4ME*xwmSu)vD6%XQN-0AK zA%zg85JE;#6wk~|-!e8naZC-RnRZ%$L53AVQg8KG*fIz+*z5`}uIq73KY_)1ru+F& zu-?vibTOk9KJ(oTH@t+P6Tz3yXU{7A8J6&RV@t5(3_I8Wl)Kh{2V|l_QqdQZQnvuf z{KJ&WWxbc5rc`S+k~pDUsuBb}O64j+w@ay1#zO~Kr+7c_vD>Pdz!Z^mV zZ9Lz@^L#AFMi>%_HnxZpJ<99{J^I}iL9as)^%25g?}6hSIdX!R-}y#P-gq;kV^cVO z5!18@dTlOWILia~f1ZVf%bYlVJtwZeiKXQwK6l?eJp9nZoH%}rn{IzG-+S;oeE2Uv z%)z(3o@DfmSW9J!8uug~KA6}r6^Gy4uv zuGDaBo9)dFQWawxmi|mK&FepK;4q$7APhonKq`!!>6y_F0=oUars7%-reR{3dNo=| ziDhfUlr)M!rQ`}%JEOszKr}VEhuYXUSO!^|vc9@Rv0S8586{0(3Z*jbZkseq&?~*# zWMpY^5km@o?0yKmy!q{KJZCux*SSpca36^aV1wpPLlxmzp<;f(~CaI^cKe^EA^gjBPuiXEfM}Y7g#(-ze zoKZ6~GsBa<-|uImqoYD8l^GhG7`&j$7lq6V7cP9`#C0d%kfqOVN7N9Fmr^o0VluJ@ zzK|?;6hWd`tY@sYpb@BHi9XoL-@)tD&VT1Y``A)Ol!{zHbk`CRyUO`NMIaQrA{}kB zH2@8F%KpJu?Z_h;866{vV;t9`RIU(40W&kRT)i?+b#$Dt-=|U=#dAEG%_g6s`PqY!k~v~IwYai$}=qs700=wZ~nef*pAJeul^xk{>r;?Jewr! zvAJDmacPBKua6uSism$c;KJI?qYnYfl!N%HE9{T!MxpeLcx}64}`0KyKKybq?FXX0MUdqza zJRkqWCuukSf|tJRF5d8C?`CcJ8sGfdm#Md!?5}U|@5cAC+-~uwpZhqo$8X~H7rlyZ zufxLJMfyRT$%$!Pzeu;;VtMfjmNa0=Cnbq?_P4E=oZ^=nwClG)~xDTjS8t z6PT%DYI24%k3Gr(!z2p(c&<+r^{^}h&-Dm`ShM(qX0F!T9p3+ozsk|02U%HP=R+U< zFfV<z(Sv`Edu`>jM#7>x}nc&>2UJ@FgQ_P>D^m^!)xRkiqi53!hqW71gT2!ToE*jZUwNRDwdOOtn&_GBQiCP{cA#EXPJlGyhCfE?|OQKFJhu znvx}nUf}7s3Hp6j*H>6yU*pVU-^Z~n_8vUK>)-H3e)ugv&eGfyeBq0qW$D@iPnWA2_y(1YebdWAAUZGen^1k=KpJK7V zU;Nph@I$Zt7yR$1uA|fL^1fgECHnm?re%|5`F)Uk6H3d391KQjGLy;#sn8bXL%f2F za;4lnf8oOO0s!GTB!Gbw)nFW$Wtj|uK-sn}q9_`S0AaA-Bm~`VcYS?*ZEk#g;--Ii z#hvk>=Q*TVpXGX%Yvm8FvMT~b&UO<(E*32jxha+&4bE+4Z1uI$3St+%7mb$d{y#tY z8H^?Mb7T%8BE$}MKpulaEA$`~Ns{6j25}luDU~n`iy-V%85yD1>!LD6tJPp^w2J53 zShmgD+A30jDJ`sKoo>IQN1#bUxm0F#eFGtFq>-VrM3<i*6WzI!}#bpM~)q!P^sdX7PevQ*2l_Kh4bH^RDv{1 z$Rt|8LK!GS;208NIrx?jqvIr*w(Smk0iAA(?M8!(=g%^C@hp~UbK?4&c-K$9hgQ4K z=RWmUT)lFUOLG@^>df~!c;q{`{c_xbFHFp)lCoTBlejQ5%~f>UY>!ULuM@CZ}fDQ!LZ#wpdxd#{Ku-$9?yF ziWAq}#7ka!CpVrv#0zeDIX50Tz<>PR-$F=G$xlk9>qf`wsBQPyP)*{qCQo-q_YV1#yJL z(BiH^K)G1biJnX^on;9!Gr-74fI{1?-*(&0U;eq-Dlysbuy0 zeM~)0QEG=)1&~~spFce{wdbbY)x++GW)m6A)Zi;mr2EiKY+HJO~8px+N!UtdR>CKD6WH0s;9j>r1?8oq1M?rKJuVVR^+jO9A~ z`mg?5UiXSuvT*Gxt$vRzF<4t$(F`_nDZS=C+sJ#f$H_oB#2Jzhn8@JacmwxpeVq4jwv6sXBs? zf(vIKLkP)F|LnWzwwgSA`Vs#41OJi2XTHP-Yy0^5GY?T4pXK1ulSnC9TVEvz+7t>U zYGaf1dL8QZbtWgKn3$U7$ur->D-?O;^g}%O^)KVN4zBA{s#ftV4^wD+?^nO_^(d8a z|ChhO!NW(WR%%?HyG#;?#BqY>l^C0tW_@jmk_o@O=OBM_{t321Jr(GMdUOYu-l`Kv@euXSl7vdR%$={kli7Xy`K4d}C3>AM zu3zROANv@uzWa4dPE4^~-_9#COB(Jq<`hq(W~ks%&VF8Uzs^`iuYa z-oO3ZPk-ng@Awz3=MvL{#}8EV-~G69<%%A&_<*`k&*+GHlCqi;5M}@vUf;2gTNhd^~JFF@5HdMt@j4Rz*uAe;th~| zo~aYB2Ei|cwz(p&GM=GjumcnVgi%Nk_A#Vje6&WXTwtPBrCP0W^G!D}IXc4FSdB1_ zc)=~VQYw`wmq$<;)T*Ntie-cn^!oaA@jMU9wh(~jx~L>&-;u+7{)-Rr$``+wmHIZ` z$T*E=hp&F^%iMSGXSn|>_p!FIN@Z-ElQ*2=_{mf3nchdaP{l3!IJPrn1e&hJ?YF;( zJyVk$+&9bX?tBeXduBLw!!7*C8{W+EW7lzT-yskXry;L>&1>1e{{T1Ka3go$^%`vg zk{JkTA`GoqW10rzqhrkOJ;3zT43=ZFzPiX4KK)mG{^|!s07ry*8)M{hcj?3Jo zr&+vm5yvfHng*6Mn47zdVcWdpEpK6TbefT0{WpB62!Azkn9|lNkAMH6+z&BhdUija zSESwArqixt8Ybo1C_+kR_Ut9g6cba^7^Y1e#YADi=E^c_8!Jf5L<)=f`3vkja0tt? zxZ{pj@b-877;zF3CtBDwQz^wl0o!rd z!X(0!CPmk$+w0;N3Ur$-9LvCUJx%#Vd;k5x2mXjVU-3%9UW@m<``tuwNSeZ)nf*ku zmWCtKa`I+Q`Vodf5+#s=$P`JMniEFF7}aX)6l*Y!!#+6Q|v!Z@b{O=0QYT0GBmgd1XNG7`i zRXd6fgMZk&3(dd2umSyKCn@N_l^`WbYUE#M2KfwPkDjUKUnRrm4OWU2yPRl*$fcjG zA>cGpt+4OFeoo$S0)TR*%FNU(hxZ?0YkQl+2M&{_39jejcn-y4k!HKW!TkqGqL45Q zNHXopW0?l8fAgET_cQmgzOsTpGDdA=iZ6Wr9zOb!4|4w(KgYtt9HXP796xrFLx+ws zHau)tc;fMg@d_Ss5YldL6NM4A+7zZ=qQ2QA=(U;Ndx-t}50R;i>6sZ& zdNmpWaTKz)wt{1sT%BLwuRr#eyz;KQk(R}mzjPm2s<3SrzfeI4f$RFr&hBF=iTQHU z=G2KBkY+x1%@i9OtC}y6##BZ|v=D5fCBD0zF2zC#!?I8U?Y`u?`2rIJ{XTDc>pS@2 zx4fCX`w#Ne*{4WV%7KHk{LD|ji*G#mO_o-c^kD->1YwM}mWzqw zkVd`EcD>H{#5h5insF36&o=@5lVd+C}kj8sP`mP*V_PgC$* ziY1?JH$ob^eA(LGCe0La5-~Y3&31i@px*2x~W`Rdp5`@i>p za{1yMx4+;eoc{iI`QtzS1HSdm2e@{14&N)X|L}2UXAe*v8KYR#C)Pj)dt_{a<42Bh zVeUM$)3dlaxK4<1{I z*=ixALAhAQbZiQ~hvPX&w0n}ae9MTVkj?dVvMgm{Vvn{D7g8QMeBi&`bMHMX&nE%= zAPnFij1qR0`by-~xg<$4(=m%n@L*zr3Di!RT8Xo8F6z=Q!$ z4PID1i;6oa=LZ436Qo-`#Y&g_`8!hvH2@Ct;2-?6#I7EH@D2tPVkO9zgLjx_!-=qh zIEnCF&D`@mhbRs(-7>!GFj6g0DBH9*+icnm#wI4Yc;P(P7O#<}8T$_$;PJ;EVPa~Q zPPvag{rU!GqgkSNBc^5!Vwg7dPMz(oE$({zt5KRX#6L62sAi>av@>UD?h%?;utpug3nI#MGR63=zn*xV!)k`Mf+|IC5g?%>mFOT6u& zGuQ=#Pd)t@*Ppxb>I#NoVF=0A z<~oH^5y$cP-uEBj&C|2=gC3UQu(EPZ>pGfduF)u&9G_-=eUbGjV5Blar`bgB?f2=n zx>UJrvq-ly}SR`pgb!3cot3{F}SeA|L`Yc?zh-F#)&hP#XQ5@rWTH5PB z|H+>Wtpb0AOxc%ElQQM9`Pkoh$&DW%ox^`cvEz4Z-Q zmYL+I^0Qw?2yl#q({l-l(iMQrXVpRo?O!+S1a_2sECarGO|VcWU#HBggMpp5d}hhN zTlr^L3FKS=y?mqcYGCJG?luseNw4A6pI~xw3a?OL@9Z>=WfP|v%ZsaIO44X|xw^E3 z@7P>hx=Nwo(`atfYPCqxgm$ZeU-Sw4J-XdC@A~PV;PzW?BaBm~XZP?czxHd~bKgBI zFJ8m6Z1(Oy%=GL&sv{#5N=0nTz;benakW#;bo*UM5~lV{@x&94)9Q3cl7KKy5Gq3u zlSF;pZ}!?mNk|aovgL6|mc>H@5i;#_CqxEmMytKe#S2f-X*6(sZ9ciVvBgX7co}mS z&vW-{U(e#oI?ZMS(Eg5va+NfSkU|plI!Gb$eV=Ztg&?Ef>*2aCK@?CZ7HQQR)VH_r z{Svk6DBmhr{8Xb)VoJWTe3gP z3sgr&@%$o=>*M%7mD&iNU%)REunY^^wkZ}0Shj`h73lW^;v`{xW1Z2l34Gtznh8pg zr5T3~?q5cTzkKk)uRkw7@bgLlgDjAysZdG{MM07z5&5+YVAuxq`~C3Pv7;~X{leHF z*ndz0Fb%<#wSdi@cA60~FaM=hToq!sgqQxwRKZs+L6n<-oPJ@qT31ae3#2}3xq*Tk}1~LR@mCw#`X(z zbC9N78Kqv|!W1@*W`kF~_BFiZ*4wx|KgSDhxru-M3%|fOzwuSt?H0D{ap>qVCMKt- zma2HZk7Za0q19}a%6HasEK>rTjV6mL3%QU;pGI?wYpe4ttY6{s%4JsTo3vWnL^2^# zeZnZ97qn@%x7luOQEzP0Y;V#D8uWTSf_@ii+xaL|(GB`sU6`ZU*kW;Mk@4{{F3-(V zt5v!1^f`hkLJIBWD5T02Z8R6cl!9)rN4Z+19|YP-N$735ZnsOZQl_!36XgqEcsu{< z=YN?$J^u**suQy+6=&C1@bl!8#1Z8}1!>vzf-YnkreQO^e?J?m%ebCPtJ%u$1xXx* z7`8=aq{eq2{x(5yz1Rh_j4#yNM8jiOETh zo;Z%>2;54M?|kz?%C#D{r5D5cVTkK^n3heu-C<&455;1cv9SpXg`!q_a$Ws=+tNxp zmZ|w9S%zVl2&GU-ieD%J0^9W{_ysK_k|jiON~69>ZFFqt#;kHO*TUT8saL$> z-g~b8vnK$6Lx&Cx;$H|M2DD(|d7cr5p%6kCN-1NPQjnP>38SN9hh}DGP7an?o?QhD zkp7?_a&FZ`n%W0_pxw7a2ol2}6;iU=5q#%b?y|CLO0aXf4}y5$613~*cO?>pz!?pyB8p( zq|<7VrYSFY;jO&$t#9KS-+GXDy!Ea8%zNI$6OTPg7)BH-6%HOa!r1sErD7G&^R@C! z-tP}KtPMlz*)}=}s5GY0*x;$lXF0!giS^bNnS?^Yr&b=JQY|42Nw43h(b%ThsuRXN z3`^oUHeSJ};M=&ijWjb1OOeR{(*VN~IIadj<2c0-@brbV*sg<+iiK+nx_!u}CQ9kH zLYgLy?~x@bu4U2b_9&G~S}QS0Knfhkq1$RPIzGnQ+A7ypmiWp8_jC2?0uLlT{*TfW zkExKk)m4fkqm)V`1YrbeOqwV>w~(8a1V}09ce)fx1-7>9*tUTb24T?0GE547fw{|< z_>JHEbw2TlPg1Q^xwdeHsp%O&kGl;iau*&jOi5$A4oXodl{j_tEySUwejht_0~@QW z%wM^}{QR7j9y3iurm#$tPPaw1Ql`;t;vOVsSO5SZ07*naR5%tvw})X_xstZtZd7SX zl%!auLBAhjN})wY4T8&6D48xQcFJAoK3vR#tZF={eXJmlE=_-Wa=pF;> zNo`=svp~b)S9AcF0?w@s)b{i>hruxb_t?3HddACUJE#2c?{_kjevgAy=AEh`%}=&0 z)j(gdSfbHvF)>=B(dbbbDRJ@QCED#Kj_uOvwMo+y&oAP(dwO}rvY6U4#XH~ePQL!N zuko&TzLTH%+4u1DxwFJkM4?<^|GtCNM#m|at6C7!G_(+e)brngc3q-Crh-f*TwPh< z^4dHxDWy_@@#+LZC@cX|Wz<_6wEImI86~I8!Zd-lw*aOEnt?SeGu3Bm95H~HO>Y2KGzW9{l3#=b+Ew@*f~R3_;6 zb6RY|z5~Yz`h8lh2DNI9R;z*IYImfq?M>wPB#)hWia-3opX$@v)Na{P(8rVpQ5+Gc z7Pjl6REBLj6pCe9tp>ejnh(H>a*0l>qv!X7dr}xkGU7C$Tqip8dy*uXp*5J*;E@A`$}pr@TU)yn^!r<;X^uYo{2v6S z5Q34C!&EU~rI(vA4rmdB;MX`K00{@M3(>Ee0fD8?(6*}L~3Beii##R|4zYjijFw$te>&2Jo#DrJ7< zDi_u+6Pt>$u?mi36U70UkzpffblUWKeQZN8K2pPXe5_o{Kw=<83POuknx-TjsE}kS zMs9{7q&6Fo(!i7^LS!fvYZ6qHfoUO82&L!JrjR6nk+V0I(yf+XEFw*dn#yRkT9nHb zY}=vR?IH|=px0q@bCZdQNv>SJ$kAihfyyWxKgQ>`8~mZ%%X^pSSzldb_P`;8lJxss zKoKP=exXdWvCT+roUkA0?aYqm#0XQ;YBU(F)R2zL<@4t;a$5A*)D$X92$KZMaWHKg zm1YQOf>KngC0gwU?Oq$lG|7^LrPUSIS5`Q4?hJco_cMP%V{bRyavO7VbEq`qva&)pjI2BUfTFSJOnGFfHo`VeS9u<2khehYlSYwgBX903gydm4LKu+enf`4nRPmSrZ0e zMNyRQ-Mjauk&)W$;OfH{5IX@YrC_@iFkd$j=3rq(K10P<=H>cQTk*)UcEZue)-(48 zK;@&qL9Z{KQElw@0wf0(cPEZ#R0sJr$NQHtS0BT%T};y<=yWk1pRM%`dU3>svuB8+ zn2pVK`u%`Tr-d*DwsZ*keKt1N_^sdk4NiaiyS(WwZ{`<%{(YQ(`Yd4(VtF3>_aCG- zKB*z<9Mv zZKQ(l6?D0rw^*hPj%#BYrnX@>1f&CHoD?v~Qb=NL1navF+KV954opaFH^VZe-fqlS znX_C~7X%p$iDIC+6sBb(fo>4sIWDD270BqcTSQTa5Q1{0%EtN{wc02@@y;K|JUGkp zqi1+&rNWmsS22Zwr^n)%ENu$}oG)+{J@rh4-ln1~0H7;GbNT=22%B82N zjcNYPmAOmI9yo|?nJmm-p;WG7+cw*qTez-ArnHNX5F%$=YIomMrMa!THC)@aZI@!H zfaBOCQEn0&C%CSs<-mm|1P$(AQwnv%^(Q}c@8|D*USq)L!~-~d`0yYB41z>vStbm_ z5J{4VVzFokL7>{-Rm$-nz0r3!g;F`wfbc|Rlvc!2&n zOA5YoO|jb9G4~t*eFMBe?p6%WUt%B^J^%oRARoKGpC^x9g@VkBfyrc^T5t*5wg|(J zPOn4Q>odP}m5t3!9M@rKc?rw3Xm=VE3PrLs;o8*&EYslT+ioF?L+-r$F8`Y+ojWPadmN#M!Uh{>Q(An+pMjv zv$noTxmu$i^m*M~cXHyyb^P7me3C~V{XTIV5(EKLd!`w!jZvzU@jV+;>a9j;Kx*VT zhk&RT@Qv?2z*2vM(eZI+#wSR_n10x&RwxoBA)BpDq?s`_K1!)n!mw>j$3~bE$0^_# zx~xr-1k12+ERTZg;+jPq=}@o)MMvTqQ1mQ3&&4a)_^yR%2rSRkio0owNK-9oEhWm( zSVS6kh%#+8ZYZV6PbwRJ#vPK>@34D_D+8x7j94Vt(c) zf0Ez$_21&7<1W8a9A~`bvAwlHw;v#tB91~V*T=TCM3-$_jE{|L+VgH13j~2C0VPSCCs&Cj z4f_26Aq;J2W*Dd>AxQ#A6`o%}WeGy046Mm*Lx!$xKW_}+IVFH$z~<6m18Q)Zrpho3 z!Y~|wfkPmGJV^*4RHM;c-Q3(<*tt-?eDf@tuqLTty^ zrVn96*zYq^uHoCo+#p2ang)&S4Swpq?`7f26&f4s{P(~A6unNHeh^Zdm|}EvoN}Rr zZ+j?HVhAIbh1B>)s-V?u^Oe&N(04N`<5i}{sx&*>#44s-@M(0rG}=vk$6>rWisu(F zOt4J@$271k8x?jb`X*K1!nP7@OEEFxabmi_4YM9M?sYgYWim4&nW~tK`We-tpz0Zv zJd;|rM8USPEej#Rb}TJ#9d>mRK$~ZZq)QOiwL_9pq$)*ZnNH4t%zx*mW8-)}<74A& zZEfJ#HU|zJ!Oh2Fi`T9&Ix)%o{2c9Gk5B#gzr{a#j0a4?`$i`Sqb~hU3#6h@s-V&g zQwWk!I|8}IYFV7bg)KF{&%uV;B>k$Pj3Lb-^_QY^>O zBR?VObXr)p*77VAe9|Z)PUE5Dl@c0@>Ge9gb(03V&dP={qydD zi&&PWKMh>#igqgu$_?!4yCv-UDKe zK;K|buB+kFULO5}FS?9npbDgq_kqZV7~pzhVEn0nM&_ryP0M5QrBOHwWs$y7|G>T&Dg5ng+;#2tqXuA45iXQY5{TR4V=Aze(v!jvwC zu#lF8<2x7MPilXP@TP6k>MaRX+ZLKjirrb7784Vbgh8NXwz7of<|29;r1CdEpLLa~65V7fL!2r88k z#>e(xS}u-h5B2utpnp{$gru>xMX%T7(9z>;Zmc6r1H-ZKU6;o829;8kpc@i)0#qjG zwzOMOroeV=2I8J^l4|-pfHE}gH_J%ERGW=tdMj`cFqz1u;s^JpWhGL|=Pe5OTq*zs z&u9Y_z#!O#5Gn|Q%yAsh0Y97q48EGCsV-i;czUpto~JL=vy*_3%+?Gnk?pF!2kJkH zC{wR9-0zHWk^C_tN`68W%8juz);24KV=)xxT$90enSi;oa z3NoNtDUpec@zD`(-RJVQQw3gga-4~hg@|KR9O2t0qXnO_vQNdgDS0-S_2s4H4I%JWyY0ff<@3^S6OA?2gdOY|&iM$fau@*01;~lA1 z+1T1(e0&cx(=$i}?N*b1UuzStEHComzx;prz#so#d|1T1w=#ia8*Fda=>-9%6F%9JZ3xNb404;vgkcpQNw>_@o85~gX< z?RDsfL4J?wYE=6-q-1Hr()<-BC#I;Bt1K@sGFltQHY^%j+Z;K5g4K;B5>kX|P$(3L zk`Tj?MEQwtTc$QA&D5|e&61Qb3=vXl3;Z zCzv5$LgC;}2rgN)$>3O1@94*+OPI@$`BDaTHTcK!BJA}@Ql0b+Xpp;0|9~n zfdN}WVg(3nATZ!SL6U!DA&HYXF(NslWI2{Zk&-Bq%k8t%``d1R+G+XYJonD*vWTSR zXYpd*oq6ZZEzddU_xt|7g{oXYs7REH%0C;!OO%pPrkbX)WK{v7b+qyp0-+Q_)HrY0 z1Rb0PTuL_y^nr?=Pokd-XRcp_~;>{;h6jP?r`tMP5#k8`tSMSzxvm? zZ4Ey%*kU<3CQb6zXVFuaD^#ZG4*EzT*xK0!EL+M=c%g(tu;xK6V;xY&wS?3 z^Ot`5uQ2KlIG!9boljATqVX2{jN|S)!aHu(l2x&ysT(d_zQVzi$BeeekrX5%kX@EF z#d3~L6Uws0S|3%MSss&#Ax3;DO`2rXbw#%~AovjdB~}Z3@K|pM-bZ85&7z6VNJZfL z>o2Zva(&Afz_ZM{r;9cskV+}avUF*h0)%Lby=etJ5bC;KJb3Wny{C_{_T+i`oCDE) z_v)@~ea}J*@I_L~ttr^HypHZmQOes(;ZHvw_;arW{>-(&-~Qgf^IM@UKg9-sS_5hu zLr~&zv|$Jm`+eH#fEGNI3X~Sqb%O|C8pCLN#9-XVIz!g$u(yAfZm+-D!L?3#@%b0{ z=u0p0kALZZ;P~VOV=PiD#ydLVwqQ`O{Y7S(vT=#OtKy>5@XuE~1| zm8oNUhD3x0A5426fe3=lf9=MfBq`g&5!2%XlvX@<_4#%h;duD)F8lkZdHDDtckkWd z?)BTed-V!`c`zo)HOEJfAOx00O@BB<_~@#;oKNX>`*;sqqpfIf7e7`6fz_%+E4X_3 zIsVJP^9%F`UCN?tUw;-iXPs>5=<9plyReypv?votM~}I5<+*67?j1>%M3a}`kRg!j zglah_2v2V~q%2FCrXf#yE&8tzB2by=`{#U29@07?sAz5y+mFac34lkO;KlG(|WAfeyuvs_M@PL8onL!uJ4 zw|02(g=_rY?|zQAZoWqlP%KxB##;WC=g>BP0IfA3BZl4V^5fE{@sT z>v7@Y1%|^eGBjXU_+mz}m@=PFI5|0Fc5uRSI>VKQ;h@j<*>jw`aGBB84hj_kv~oeY zDoI2PI7zgQ&b?`56lx{FIf8CKJYVBOLu6vw_QPIRkph_}qMkN&*( zA%w6Q0|LH1`91AsAf@Ey%^P3+#=F#0!pPYzO;7s`fFuLVOPG~`pL|iW(-mA83x4*y z1poevFz!HU1ho@XF4h*EMDWUfTc)+gzi7+;rwhCF4{Rp^YjAK~DYSotL{OXfAtb#e%C>UqrSP+g`8B<@0Cx<$wCWuqp~%Yt=m-Zqd#AWZe!z#6(#Y z;%gK^a{K-FI4mcKG+}ppkJ)01BxVE(C0UgX-Um9J9$ILm(lINpDcRl08TT`sne(6j z^f|uonnd=x$m)d7Xu#PkuhLUpd{Hw$e8S^L4>){yFM16Y1=f{>rpDO{=L=TFgxS$U z4j;eIll!+QR}1z}?Q`M$RT7`FnwOMyMPo|RETgd^wiPx+%CHWIU=c|GEKniVW8F0# zK-l0cGEM08dw^p#pL71=CHlSSD|_$WEw*=exO?Xo@4WLiyW6L^apgQe*&TwGtmZR9 zuoTq_F9JI|J4hw4cm{(JLP@rFcW9a#LM-`%_uRj8i=*Qce(PWTOaA`f{{`N8@2!~m zXd2QqV>}$i%|FE3HnjYE@7w1eLQI1$3r2$hX_~Q^%t+G?A%IRawlN?D^=d(qDvH&L zR7n`(UfzT>CMSD;1v;;W60jj;TY>fuu_~77MT+UCg zZ)*(r;nlkK2#D-25sWcjYrQ`8*FfNA!Oy0%$CJtAK|4+4>%jp6=yg)gjZ6#jff9kc zQ%^4qJX(4h7w@6Q!w+4NT-$zToe%}>G%4Kw{|%>IYG;Wx~h2X)lc%TfBSd2clRzrLRAzD zM`QZ^9$BZe83je>y|}+uRmmIgy-s&)L^n&xmBN@hnv)QLA!i$sBqLKPN@%24SZ5dy z`|OUp7*q3i{_00~@w9?;ABqLpl^4*%K6d(qgNN6dKE8`BmnaWfX%flCWc6v2ClNA1 zwnP-E5=>*593L{DpRm2Z!}Bj*!nLREbhbbXfp?Z9&G0~?a-5HeNM1<1w*<%cMzsPZ!H2!Nc8$cld?>>c3`{bh&OlKen^SWIAQF zDCl*14D%eEWi~mcUY7I*LjZ=OEo|$!gdisM5hNd-?`R~TavLeLy7htI zXeR;f!jaT5ex9d3Sd?Xj?2KKCA@VI7qcSz-pkfuNVQ*)xBSdWzh3AvK8iNgiyxLQR&&2bK_Wu_ zmDm3Oxii2D$NugXC$kAkwkkCtsOti)CEYwD2{I<%Xh%QQ?DQ1E3;x^Hr#!j|p+P4BDLl>cggY;r3Gk3 znrIR&DHbyp^CcIrT;|NFGfbx^EaofXbj_oM#92$4sAzZ*93C*XLePK!-HryM$g3r8 z2~C!F>2$hGj*r;eKSO^Q7x2SJ_t@Uu<-y(ijJC#n{JTEMqZcppna&VYz`2G*r&LwV z@pMXmxWjn7OO|({C@b%h=p+)wR9sZc)rz7j`0xJPf5`dEmkHMK@=G6~Tooi~j!ZSt zDsEjtidHKo+i;F}^Jt}M>V~?m>1G{FQxTk{sh`Gp=~UxPL*C0M%N4;3ave9;EYA=@ z(lmxdr^M)DK?pMXT}T<3oI2TfSHuywr>ZJs@XI_+zrF+SH@Uv83gE*Vze z%_QL2MNiuTgbXVV(AzY@VAc)C%naRhvbBpn-VnNk%A zKo>4vLMYF3$*x%aX(=UwqzSk7!9{38*ejLgL z+uH)ft~;fF)wA1=G09z#6&4vuq0BWg(hOdg2omRTt&p$e9PtV zN)T{Jr5KII%;r;&f^%mtqLT#MSXRq9j==jjuCrJ!d9Q3}yyw;ah{=4yayh5*mf`jY zr2@<42?viKl6QwVYZ;73;9b1&rDVBU(M`L&dHoI_`{-+Y=Fk3le(;C>H2q$WPM&k- z%=rjci&(Kb=OgFCyUpe$5agXMM~4SAbw!$|RK*IZB##dsGv3-pCkaj6kfa@|vLeqr zG_FDEG>)U4$An1y@mPX@{-8%$F5?K?T7nHRfha_H+FR2?~hYugU@13o_-UB{;R)Xz8%5KLY0~{|st0vAnmkoU3 zLExXi8`$eW;R5$(fjS*N0RR9X07*naR9ln4t&_n01^oKW!0ic`@U*vIzZlsPdl0n# zabdIArHJmrNxC5y!jYb;7A zBx(D`OA@7HAc+fjS404ofWSp-5=;L(Ho>}>CHa(KvR z|KHDY=k^^w+m!soDCRR{X~tkMAQ6(;bc*+i=bn3s@hDaid%Jryra=mY6w&RuHVt3? zqtEjPfABkKo$Qm!dXDw?1R+6NP z8#izLiH!lj?&AOKXFt2P19+AX5TumBITwTw)OEeV0eFTCL<xC$2?4JsS|P%913{V(*{kq-oZYm?Dbn9V|~~9L;AaAsKWAn6h{ZLVAz$78e{UjRYgD zRZ9#}jJpzN96$A^&d?d3g4JW#dj*yUaBw}o?bczdPTEZAgn|Cgd}9( z1eJA^&60j9dGUpdy!O&-y!^t)x$@j|oZCOoc4t6O)_8H7CfveH8{Ku2j4aVqRn66_ zFH)`+%oa0Ts8Kq!RPDG}f^1JxYho-naT6fKajO)fZT+C%A2M4kVt&Ngizub2>KbDj z>Y~J$nB4oi@LWW)o#&C)ZyhJcCkzH-`hy-P#|Knp#2&_j=szH2TuLegLgRS%y|?+v z&-?|RJbcKPzw|{wvMQH+>5IR=p*ll+ei4Kdn`$z6&(6*+?_YnH@p#N?Ij1r;O<6MN z_vvI^s-mDO7L3LN>Hy+E9lx@OS%xao%6pv-)>d(<5CU3fC?HRBbkd=z>!|z-(TBtO zSQ+XpkLZzyJj;Xk?%y5{V10c(F2FiQ9KaaklOz!#1i$`T3xn31#jV>n-(2g>S#}BZfIh$#^tkzM7-ZvDZ`*Z#|lXM5ibuG6Z6? z?Kr)+#i?!0Cte=F>@jS=3{3&Y??oC`?ZF?RuWgYhDb0KerXh8L)Fgz)uqbBCmkS1Y z&XsGI@H<`Jd~%1+-}(Zt-~J-;l&%iRX08zWA^%ert=xcM+fZfpXJfx zhnziojyJygRW4k*f(wo`&FBrr%uY_|bUM^^Num?9R1}LPS)Kv$^?TnS5=GV2_+UtK z9R);kEwT0pA>-?4Nl9DV+spTF{K-`S-|+f6I6wf_EkFn%`1SYgkN6fW^esa$+`Mt? z4Y8SQw%4;yy~PIhhZ1icCv%Gkj@{gIyb4qXj*3{`Ker9%NATjV;8W+oy11aF2ywjD z0(ttGQ$3dcaWjx=tqF)#K?Dusb9iaj^JlNY>Av9hBEgsjAtL*&SjCzCXf#4ejdKlk zRdQ-~k2k*hI(5~62iI7#Zih6_Q0UD+;Dx~8X^M)&lLL}eBc#Nc2JaP#Oz|$Bp2kO_ zNFpO}wN{J`@&xBRKluC@+3A7kfF8rqdr{41D)5it$_Oy{Vumsv8DbLdd|6PNhHf_C z)mN@DJk#Z1dJD5Sq$@mwET!K`$Z|^~PIz>5gNMhr5qU;$dz+nZg5xHIIUz~9BuP#$ z@6g!5i&tM@ayX?d%E)sFtrAcOybgFg-dU_$;@8FCn%U;pBRA;v2P_v;(oW9a{ystq z=Cc_pQOqY3gn(2Ce&3dSx;rGehVk|o?*oq>J-~;+>2v3iK&KO9(Yu{q^qLTBxpKT` ze&tvGC$3+Am&=#0Fq@pPx3f=g7?Yr~PIq&g%9ckEL}ZI@ZS8RL#(Q+T9T1*wx6AeS z-sAk`%XE8#SZOFpv05@1jj5}OB*`$Q!3R&8XOv|VGaR*~YHCD)UZ;y7ZlFpkoHLt< zzKy_53cPdl`hD|t$7+Af^=)qeAJzn{zmMsx%C7;zHZtsKQ};|8FqupqFIUUMuX&j8 z^allkQ7;8*iqaumpszfa$AOo2;f0;Rr7`SuVZR3#hG4wF5x^O@%HX}nxHzVqPNy7C59kbgbo-IAd;8uUoV6HZ zkXn-EIe8W}0!qXQh#-38KfZSxvJ`}3H0V>*1wvVzvX~I#pk1)A_D3ML1$f0yw@0oM zUVdQ+lP55^2*>Y3Igg9Kya&(qAUIf6U;@e~G>xYy3o@ND>g{m))D{n`2Q24D4E2~y z4at%oiO!KCB@rpP?$POY$rH)(?11CN33|BA_EwiByiL&@qqBs(o0F%CywhiAZ1VafeRX9!rM1VZ$K!B#IId}dNX_ga!$;ojXAbJN9 z-tmreN|GtTVsgaclgI4r?XkVP%WQVS-McqQvl!Vv8ji6cwt71|`#e5;#5?c2$=h$g z$)hKaID6qDGD+~k^YTj{L#Tv2%{RBHl4}!MPp?1V(c_1hx@NewgV2JeGUR#6*)tcS zO?Z}Jtp_P%l(~>3NfsG}ZCe>PPD^7f-A;$HSW#6CKG0g8Ih53~dh%=Jp`Az|NYnK2 zmw)+x{u5&Ye#7hL&6`ixXuE8cQb7n2oQue4(==|q0X(A%@FBw5!8upozIE%}XKBHk z>zQv=k}}dI!8v4b4AQ`Br{MA^aA62rIrI|f=;#yh?y=|cD9}mT5?{3oo2R2b(K7#} zU~~E>3VJ%Q*Yyl@&tLz9;OD;|&JF~F4F1~31>;=eDoY5EWhr@8b*1gEt8a(@@%F#3Cf9j^#KxCbgb{ z>Z80SNfMeyU>Z$TJ1QHZC!Lqbpy}obU^trIhosN;XhdV*!nhKZNQR?6*3_K8a1PTn z6su*s!LF5@0;$sWl}Kz;L|Qpf5gEs3?dueQLBGfB_=w?fi><9K5O8?-B>Lp|qkiiW31T0xx~!tpml+L5VBxJdzd}xbFM!B63%-P z85NnqyA7{j2tipaBmY4P8s~5#Iy&X8Ja`>|qqU|iYY?K$hHl)<-^pk|LU0C`e@>Re@Z4e&~v) zm%^vc1b+BR6c(NB3%>snRl$XG7rA-sCQVhNTT@4^ zbxi9`0+CR#=9+`a_G>(dswU*jwcI>azRt!k>q;k`hM6s;8p)5oZE%xKtUzIqF#6QH_pkH!e*WkA8-L^H*xudY^y$-W zIS-5Foa2MTxED!*HI`LTP*fGu=`@zHfl+YR$6%guTB3XjADPaZU> zR3tKR>2wdXYEVreOy<#!YkrJ;ZU~Kqs=_zWIKj!PBm{}^g4wcU{M;#?%qOHKqpkz< z!ciI1erBSzop#_OZB@yDHPAG+{rn|5@f^+`us1kGFFRpAf57(W65US1YEiJez0Z?} zk12~KS+?Dt@*+m5Ve!Ecq{q}HI_*8Z4?OKY5Ri#NYC&06?4LSCC(l_G1Sc_ z*KZM8ftbotWT7dWij&C+pZc!v!MMQg{wZF#_9Fl6|M(~113&uXpW*hcTP!9gT)y%O zI?IrWqNqx!!G(ZqaSdk-p4dVZ#gaVDSgw|6tIXF1D zv%9xHh`q==VE(^7H|}dbiKH5Et_c+krFAWsBaS&CB$epOMIfz$_<)Qr*|VO0@~z%+uQYG|wj)!}41 zC-3%Igo@O5sS86{Dpr+^Zn&+qR)s)Uq_|YIymv5(N9mffG8pG0*WFm=%aVR)o0G`{ zgt!6%cDJ{A_~Z#YJ3CC~GkSwQiB51pkS+>ZTr0A26-smnqIKhvKxqAM0u1{Dip7jG z7o&4>QQqZva>TXmYjk@ff_uP82y~=GGTPbUOJDj! z@@}8nS-jJXdPBSklvP0|%~>pGq-jFa)a?X7BN8IPr|t2*3v7+YlvNptPazH=cD^1)WX171qWjT`U3 zy+$=Z@Q<~-f%kzx!ly2j2ya?ajM~Dx$MD;C1^?rh z;h%gJuAfAYfHVC-M+fr6ldHf>+kw+P*zdr+fzw^VojKe%3H-Bn9KU@Re(8&Wc`b0( zw>)ysYEdwqEHF(;Q&x1lkzrO8#b(Ye1n4A*1P>XIZQ15y>&D^n5h_#IVB_iP43T&Y z1lLOERqTt2F=;Zy@>qJ!C?f_~CK<)i5ltO9TF$6PDNSRk3P-i{R8})B91hKL(a@BE zblAhpDs1VnMpD#G)Ud0Bpd;X!rJ7EjG90ArZ;d#=x69>I1NO%~QkkKG!ka*|B*8kYb1@522%L2! zBH1`Fhjl9;0$I1a{MMHI2e0o`4D^BPLtcOYIOn{SYtC={E#m1P4*)5{jT<-KkWy~8 zk2SJM`N8x+ho}Fg~&aKlcEB>vrJQ zG;n1raB&R7ERe`Rrs4T*`1dZsxq;-zt_toi0%ZfYW}ayo0l*iw1rO$)qg7z1+Y*I+ zG;_?ePMh*;G2T+w1&h_PUHCfMW6PNGqLhjzrm{8241(Y+t73uB5*r*Sg$*so%Y$?R zVLSwj4iOL(Z8p3ls=)@GgjG@CU5CZou(U8OX4FZ>d}Ucyj#-nitO8Z-@Ln-38mxm_ zHh32!r)v{%($gLG37rHb;A|)5)vb)HyE*4Zea`Oo`1pk$S9ZI6@?#e{y`7__##xU; zA~Z~w6MDlj%f&sU)JPo|je01lBZIQ2H*s%~1t?pOK#5Q?3U!{nWxOCD@e*{JQCB5W z3-(W+L28XP2IpemeQNI%0napecGHwRNqF@Wp8^6muD?y1_qqDwM@dvdA~ezkys;pl zF*SK_$S?fjFEW`Pa_8m^6oOS#a_}U!)=3g0x)l+}sOxAcrV@n+0oybvrE$*CANG+1 zvNWe$&Ld}kV=e<_QEpOc+&y98}9TvzwnG z2!ge(OgL&3L|A+B$5G|5n=&_^g|*BZLtz4ox}rg{SXh>or>Z>jqNc6`%gRzV0q-Ss z6|gok8q3Dg-R+ZYE7FcymDciGabwKery~; zR^&@4>ckd22-+!O&{nLmLH5vd?X?p!Wm96kiR53amu+~%9 znyRSCvJ6wz%uXg$)hcE?q#0FN(9L^Pt1@nITB23lz!s}TRGQl8qNHWycGxDi22x78 zc^4mCD_C1IC0lnTpx5i+Vd1^wZ~mu$>)YA{zM~D`H-6(czUKE@iEZR2w7vjM)3_w2 zm4r1J=$Wrzt*!6fyZ8RH-p7fI{@cwb&!94cSj~9UlbI+ZbXI4d*p{|Pa=UE+?SAlnr0;@WH z9j!d2RVX27OhcY`IGG+YTTPiyC*(R~xhkle8s{up%4pjpL_4;Vxc2qXY7cB(wOyzSv8JT9Vl&}Xd23( znAaX-9Zi73dTQfoTmU5*oavJG11b-E*ZG|OOP4sapE8!3EY&pPH`6RvN2F;+mUQT*g5Ds4iy6zJWbf1|f|ndR%jqHqT1rJ@4R62kC6_}N<@qIrlhm=HB5wlR_0Pase7m=#c!(K1{{mm|>% zte#r(i584aeA6_dEWf>J;2*aEd^2QGJnIS+LI~dbAf?<8f1GnpDTVj`!$6=DLIka~ zc<=i4H^0^;C=w*Bi#&LQ;-hCg18wNYfU)swUdMQ3C1QVnQnG0aQW-h?59jb;4tqW5 zr%^#T${^Q~LAITHPIUvfXK=8JqrqwEIaxV^4|J7BcuSTwfJf}+h5gqHRi0jD5jG}a_gnhI#;&O+cDOSI6BBh^3v10pEACo<+ki1S}Bz$vVk zG&R&FMq8C-Ln#e~sVN)7%6L{zGB06eJVj|)*@VJHws2zt)=PAjqLhw3xr+TR)r87; zjPO`zxpy?>$$UjfEuA4GQevIhAUx4tEl@WN-87|crtvW)WStIqni7J=c@I*cR2t>2 zQX&;ZU?iTZ@$hdSyTwGj^K?3W7AJ@Fw?~Y(cR`4_Km}}#b_gMGXbmH&2~u$O>^Yu1 zy35hyM_hXD8pH7@GAoUXwq#OK)X~i3;luk_TQiwXsH>84Ip@KhJMsAf-MrJ{5>XoL zoa0~q&TsM$|G_Wt4}S6Q;;dz7XP+B4u2a_)X_Am8DM2ZEgC6tcf^NS@U6u5@eME4S zb#!V9J_5dJo?+VYXk!}^71gKFf2?%xxXG2y7u{p_GkRPyZ5ep?=8eIoDBvLJf>;dd8gp= zp62SX;(^Q9&pm@Au$4h31DT3rm0kjq5;_UIc^Jr5oD4i#c<#?4)px%Kr+boz3r{zR zkKIcG=LgVHaAV?`mC==Wx(e)c;L;$_G;KxNhJ1P}sOlAIo?&f6cQ9mfd<+DPkDG^R zImS|g4AId=h$!mtwcQYc1Zv}I973G4%k?m%HCFQN!imFyNQ16wL*)|6#!)m9S3sRB zmX$!(0^fMFuoT|ntfDlQ$}2*YA>t9(;E_SFoI9*^n3dw4#Lzd;3Vi^~@6bw2Yj&;o9v);xsmdHbhax4YHA%r71 zgHWB#`+@g__Vi4$4zrU(hNCh2`=`)Kvnnc(lGS{Hl8VANbhJb`xOwY3Qm0&c?i@!? z9lrXZFvKr5TNBxO?|@fp>>uKs0-CmdFeBSEN1GO=vX@++W0+_~< zBxy_+PNVUvwT|KTfaPM<9t@ULs(4Sdc3}cYbQ0>iHdR>)V;bq4@t^+mr^V+#|M@?5 zH281A1NiV5P(0h`uT_KXG(cNx{WE`Wy&3rBay2oH>$8m>?L7ZzL$)MNa ze1FNobilOmoF0dk$OH2_wgR05hG``EbhPKFjFRD8McU`{JCbulSXQ3KI#L0{JaBCs z)n4}|mb!MN?W+*RQxPaC&)GDZGH5Ny^Ni)PAW1ZJWi}_4wPs`O91q0S>LWz3OSG?U zlc6UyKFIhXwD!&+#P~Bud`(tFP*I8mP#_}k;~GO*L0MaBBd8l_94wt9u>o8_*obtO z2AmUA1gvvd12ljP7!yDTib;bNma?{7pIZ_eryjGaqLB`tIYQ>Rb=&an`%ie|c7?YN z=`~nSbg6MP&LDJ#Fcmt9bl<#}$CFbgv1C;eY(RNPrE06FD2w(qD4BwzH4<)P#Uf*f zsxfqugz<2UQX13LF}0~FP>H6gYqEAy^76|c@4x#NooAE1smzt-g_2{S*+fqWH202HWeZ`zVhWS@<(6zJh5^WBx%NIINcf5`6c9$VdR)Q;3pl_gpyBx#8A|0H8o6i6Y-bwXpKk#M1xmg#{wrVka{c(pW4SdR`=&0%(b3Vj#0&V2 zH-Hb@d&@ZD5Un8yN~z$z$6D*MEL$rE*Hyv#`yi#@#*G{A?CtGcY)6Q(|Md|73@rer zl8jeR&v|p|7;4X|wse(ZS_$4gjx+m9<0$%BtpZP$9wh|FMWCnQR6lY9=4If?B7!$N zIh^WAjP)$az^ZUDVTQKc3Z7*ZU0@GvoYU&AW;%~EUF!pbQ6GF@dU6u2$U{u1k)frv zI|sgDAVf5qlnQACSOuv-3vfPyVm82JSyK8A#tLe0 zu_A5=9qYjaXbeg~>q#aPc*3eQ$5vB6+`z}11q z1Rggljt*8>6Z_DhERr~~LPo1_FTqO}Z&)H%Km~YyfKvTBS4;Ee%}q=)pbSe)|p1U%5)2b+~==I$FpW z$0a~{`0TI$-<&&tf!$`G#XKej2`vf6Z^T~$7>|aSrolPG=RWuUZCV}#Tz&p|e(cBp z9KZUj|NDmF7?XdNNR^_Jl*SrNUB`e>s*j_Z2+Li3??bB3o zbV`867`n29GZvvV3Wf8QEYEGRTGn6r${*>MUV7OM`u#AQ&Az1#;9CI!|F{QQ&;Qrp z-v<itsq)zarfM$iO4Ym%1Mo`s~gLzY0 zI23?-=bg9JYPFJ8RkdP@Z+`t7QGuVm+EE}p-7rFYgT%VuUk`ZQIy7YM6>xBH@USe) zRg$Iyh#NrDo-m?)mqUQvQO>z;!NTNm6Ud{ib(l)5^StrM^U+g^aSnqdqTFfADYrG; zD;-@Ofj;Rhi=}5)c*;7ykvbFHeB?NuSQ_ha#?nqlrlfw0`sv5EMZn+Z=jqK&XIk;-(PSxZKc1eG4)s))A8UdV^GG z7nrX+D;HQc4aQ1B&@?N>qJlI;RJ}ofN?2AaGNo`X`U^C+CQ%&{?FmkzgF}QAYhAl( z85}X?M@c~f7~`m_lG@c6npnzt4MhJx5fpivVyh)mq~s!}Q8wx*XxW7=;H$MD*oYwn zqBXiVF6Ivez(%&D3qI-xd<0ollCr8xx_O3bXNblago3p7@DD_q_n<%E?YG{*nZUJc zFVnb4u3D~&c+!ekRWz=lte03kK6t8C!{L+1@ty{h(u{^%n8x6Zr`sKnWEm2P^Nt`S zzy7a&2dO0w9^K>AnRAiN=`E}I0;ynja)M4$jt&p$5BkjKbCN7$RjgWFf<#LdgI1Ch zV+@^c2k!&c)baVYMj$?fr@nwLkoWSUx>o`uKzQ)*fp41T-);-=p({W{Mq#57SfBD3 zV_cf1x@j7}HVb{`?*->vegFQwo6kLW_2cV)&ouR>|BvXaAk8{l+n(|IY|Nr`cq!Q% zNfI5EeH|rG!Ev$(lvV8IZS7Ea7Awew$JcRcFk3}XZdG_P6`gtRJTy34vz1f~Mh&O8 zB)j7--EKcRu!a~4B80%W8t)*_at6Z=CzIot@FOI4J)-d*?;OsXI5&22s4petNmP9W zAHlfBME`&mD2Q4(7vBKyEW$@1PzurV`5k3dv#1>NRgENuXy6j+!nHd0|DU)w{gEs? z)BAqsoV&)Bdu3Kt@6B#D$zeCy!&MxKGuF_O0ND`q!7|2zJ{Si4Z}^i9=z|OxkO4zB z48t&Bd4VlpY>6|R(LnTwLut5^y;OHqbyZhZR<4n;-1Th!aPEzas%}oRNsfJhKxW3h zd6$TL-t#Wc`#b`nJt|5urbH-xMSV23lh{q9Gl+v~hv63hQwGNO<@52PK-Xpxl zw-x2Gpm8mDg`@-OIE(RyG>u7PN3pEPhWo^k47rD<1{YS>&gnr485o0|KzIvXCuu-h zs?d1lLkq2Pfji&In@NLm4mZ3BKngsPD60#w91Z@xvMGB)5^MC!PZ0&3_ znQU|a-P`=;m%c{Z)+AAc$}{S!01>Fd@?p-hT%x@t>GB@nu{x+q;ViLIcni`gnyP_r zA+R04g{Nzn^kIRCA~iohzkpx>Y*kg(uLvdo;_*uZfxh*vZ>^Jp(rE+q)qx%y)bj&a zrIc6$3Ayz!AdX{k>()DOcO}FCgji!43b-JTP%$s=SrV^Fy+op znrcj=5xT)^O=L8i%HSH!Y~FA=Yq*@&9G_Mcvx0IqW#EqZZ&2nbBem)(djW;yL&hsUI7HPB;#z*fj17US@pO}2T76w z9X7zZ5Z8GS)`B)D6dr~00%r`?6LJH><1s-B%{eZXhGkh2M@iRyI-$I5X}!nTV2q40 zL?WSF8i*sb3y>q-8e9WKS>dA;Yijb?k;NXb4PJ-1wOSS|FP2=+7A)%;TuLlcK%!)5 z4vM`Zj}synQP(Y#@pkB$m!T=hI15q`rEyp32Ge;&A(ZYt){Zh9+pz>WdeK+!eQ1v@ zN>Y&$s~9N+BQ3b5(!c|O!w?MM)6YCjI!t+R_Z@cjcDZ(Km-%uLo~@31&v!lg0?+02 zGKhR!oP}%Y4ALmi0-nPM#pSR3wZG2x_7;P$+D-5Bh#9K?N+pfMZ$kG&{BCI2Lm`S`!Kzi3Lu6-LYefpuN))({lAG{Bc z08!hv(mD5$?mztM9>A&+&{2c?e)9KXA!}tq*02B`R&2oz@b~WByY0O<;A3M9#;zN% zt9v=vj2X#-XU8$4)Y9UKq+%yi>?E*QwzQSOX^ZO+WN{Q)IbCBZ=MC7JL0t3HhUQ>P zvAvm*<=ZHgh84CuW1oNo5K>a>nj{ZGl7r!xx~`ByF&<4gKRv^H$YjjY*+3!XJz8I7 zm8}mht`(Lf%aKB1jU&n;>P{BgdlwjIBY|mJgj86kg9oB4DvEH%A(Q~GI6Q9I%L^u> z9V%ZCWt%K6j_{KKaSypN4RMlT<|QZNlSX-VP);SGuKM8llA))*Hw z=_FviLq$O>v~?EmMNrKZFdh!DTH)H3#tIJho<&+qDieyjp{#1+B=F!_;c+&wD|UXl5(^4cw-ROB3(ce9v&T1luMp|{w1d8 zr!;j<+q7I!dP9~Esq31f(-Z2lSoP&g(Nk~2U^EWc4r9^4jT=w#d;j1+r6}i&MibtA z<0t&+`+v?SKlLj4Xh74{n6?R;4k8WYu-1~LDQBk_jK?FINFjxwZ8ePv-G0M7=oIGp zFob@_GZ_!LoJ~|;Q534)@G z1Y|53jfO1h8s&o;?QocdM4xR*vmDa|5(!f`IISVcksVjOF&>HKY}!y>OR1U)Cqm*& zwJB|Bu(1rTI~MC()F7dlH)MkmPM1NR%2}4WCdmg_tx>5bi50@MEKyXQ z@vz$9v3-#}JevYyrTpQ;2mcR{5+;90%KQQeK=|cC00Ap%u+>R=U=Rc-aBmE{d;nT& zA4QSyS9$@xhtPQg(%-#%=N&{Sk@fK4z8uusj5vE7`bC!*m%UVTW5UcImfFnkNM<_2kh+bkz_-JPyuJtS=4Z{z8>Gd0`9^&M;dp) zRRKy!isdr!5flZ}vkM{-u>ZkxP$Bu)wzRs%G#Y0NbSsbWlI_hMY}*2%F-7>UTTolD zAWyT9JT<9oDD3?ppJW#gH=ksvh zUKLshwzl>kXSbI~c36CU^$g zI+X3|XKw*6_aAni7C^T&oy3MNAQZ_ZSx}m5lv~9576A>|tGKS-nM`ssABdyP;I5ecMFDB&?igNQm$AjHSsbqGiV zNQsb&s-p*o&~oivgElQAAy~S=@H;)f;Kt3TI6XdMRxFqoxjV8;tXuaXGUJ?(7WJ!h<1}81rI*QsbD=OwyL)lnNYq8o= zmxi*c@gf2-;PBxB=OxeGIAA_I<+9Q29lXTuXrD&cXj5~1e#zO{3FFBINfOhv4X&$v zSkH^2G9*2Z!OLSOhMgL#F0c>&FRT$0AGddCCE^k8w^L(b&a+bU2C*%X|-lK zpP{RYI8j({SvO!pr?eiHEK9(cVEKx^$o{ItRVcoD=y ztx_u1TCco-&Tu%uHceYSc<}zc!C>_1-ZF@O;tK+dRCw}yz}H?A)OEvPFd#`f7Yo)x zhu|yrxr4`6cd@o#e_JbCd1W-ad~0WR1bG%ST`Ysn-*~(_ekRiFRb)yr7)(M8t0K1Y=QuvO%V0MpiegMvhByr!E_W zh`D?F9jc;6H=6COUD70@ST4GHc8KpS0%-AGcHWJ`b@h4>K}jg23PA`O+XgnH#j+D; zQ3xS%gvPPmDB+wD0cR)Y6w7I+4D7pNgCLF~+Pa}^8Xi473`trgR!@Kw zj&zVCi7=fMIFZMzJB-0Z|gLR+owh(Dchp-dD< z7-NDrQ3dfy;|0!uH_%oN-Fl1_oGmR69vvg&1m^_9@g^gGjpapwu^yj9G~Qvfp(;xT z`38e*9F%k}3(8gpveVH9lZ{PwcQ)DB-eJ74LzWJxE6vHtF=bV;ySc@)*S48YPq|o> z#K{)VKm9pI*#@an5MG5vZ}-s$*jIVKsChoe15H&eN7vmm>(QyLcDc zo_&C2r)f;vwnUMlZI(e*H;(Z_a`fmC9?y=9xC92n0UMJ|F3!$4xVFoDei;B+&S9OW zZ7PbQq^etv9y|!W8HCoXpjjvY$!N40SbI$fv0{3 zsjMngn$k3F!1fD?R0=6Vk}*w^4$toy3{vV=yG-`cK>19{bT>TG6auJbpHV(b9Ia`oOitTxmT&GfXa$g%yPNp;Kp@4 zj;*aNhQl1A4Ote-IYLD!rD&U)s;JOL^P``BA6=Df?`&g@;rh)Rc->-5i-!(lAG*S| zsZm1VaUp*pVydRb)m*M%$)d5Go==e?MgaSpPcvNZF+2CPZ3Iz@25RS7 zmIXM$c(~1IFhB?>>w=5Ll(X46r)M*!XBW&a&Z%Zgq;qVIw|VYhpON%T&(649)I{SA zb`M_S`5P}$H9_|A$8WzwRh4L?84N~bv7&8TjJ5$E&`E=b#ZBVy6lDdm1VjK|Doml)IHtnN?>7L?@pktNniSN9coPo(KiLHV*L&j6s_e5 z`W^u%gs{uya$Xe6Go{iS{^wkN|ABV6A)fSj`t5=K&9B!gK9F1Jue;ALJh6$DSK&Q4 zM^!F})P#AlBu)}ej+@}B`-bIWPLyP!#;+7uLzZX3188cD*67xejWT8r7bHMK7U3;jH20^zsp59`~#N$MOJvWhk)k(Hi{>>PA-uaJ^_~_n~@YjE$m* z-Y9e)LEj(Xgplsx;o*DFJ^zUtS_k#h?w>z!Zs(xyKn~~lpdnZxdit&F#^3{S|BBzB z`~PrT-UoZ^%VL#VkV27XDf4+tJ{(dkm(*2BRaGn& zv#!qU$kQRSV$KWCKgW-M_ET)6Lt~0@s5mGAHBCjHjc8m;5=BS?4OWz9SS3iL!a9%E zElNg+IO6EM#+oT|f0yAP!Fb31wdY6|6Yibfq8t=iW6(HiZLq{7=_VG%i_d(Pmk&P8qG@pm-hcldhlht8pB!>*|a6TBRs%b(u zATi#xU;|%*vks%feOL#R?Op!n-}?9YAODB{j=^w9QwJz*BqNM9IBz(9bcFYzj^8#7 zRax-7hn-95$~cSBoMC>44Kl!QPN)ITzgd@!LZ zi$KOgl+lim%hfWcW#kK348kos7Rr;rmhNf(^6CwWx2$4s6SoT)GEfv zmZoV5O;7|>Vg%#SfNR$dc<~c2v%h!1e7WH8=su_CCv0tPUp>6SgBR3Isn5>Oj_9eT zJCB;b1OxD)iG@3N?)2MM%|1#g(T4&`DSEY_z9P^e1=k_L{e|~=0CE5RgWI2Y>6I^Q zZPY3S*Uwh*!ATy7H2f2r#bevUNx}!$C-?e03j6f?uiLS!Fv5FB6vxC;qIJu1xu9tp zvO&)F&MsEB)UBbcmMrE=^1+z-q73|ZQc+bEMNu#sZ}5X3evjY&?SF?w`2*ZSb8zDs z-g@&5oDDVLw$$X~kO1@|umvY^9F$|mBg*-LWica(_wdqpopX-1F<2J}HcnJ@fb!Z zPE(RJDEz1p$WoVeh(~+IA0>#Q!1fv|h4+%-U_@0H6y=h-ESOH`yz%3oG0sw!`H-Tn zcAcrMz(c^ORM=>Fhq2)d^nINF_leq)~*7gJ6pE4(&p3 zMr{nvTDC^}eCo!h+1t1gx&w8MmvHOWT^<~saB_OaV6?#?&&aa0Q}7Wu8^}9^@Hj#T z9nNEPO_nCq7jq`pZ_+lF_wL`}g=e4P?#VIlKe&$&g7J97tSZQpl*N2bu`Ezg%y2xW zX=?D6O$SpIktYL+s$@JEa&-6}2iI?Mc6P${))uFyk62t@t~3E~-FM#+lX&NX!A(<4 z)8LGuZ4FssXqu3etDA&8x;fKRytIHJ7=d4V2=L(ncmHOX zasBEqq?8zAJaDCGx|RosqR89OKDZ7F^4@!=wXV<4&mK-TwqLT=JwBQH3s_GO2=SN^ zc+$NO9s+Cb{naYJ9tAvpjK?k+?>%Xj@rh47&zo=EMhZnDC2_3Kh83?{+iIM5s5oIT z7%*SX84L$u@>exQRUoBgb8Cz9={a$dV2XmLpL&jacW-yKZ%<lIGNP zO_~odS_ksUBq36YB$7diC=PLK+ge)bnYtS1&Z*{ecJ>cQB83!&!EnIy!%v~zCz%%u zmhBmpDX5wvP?ZUXA|Z(qCgTmBo9weSJYbxTFy2!&EmA;LFL?9q`kH%Zq<(I(epaIZUHM7|T9?N36q^awxnBRLYr&FfW(~FCXi=P-{YM=s2 zpy+;Y`4|S^NjA=p8c&7-LI}YpKJf{BSbA660uP9kN-62Rms~*P&WZYctE3|HCbwk_gknFJmCaR=jS>S~DDvNa7f!Bu!HzBY`tLwAx)&TWp{=pD!+W>c+Di-Fv`rdyl^V z>+XAZsp^nFIePdIf#=mve~Lf<{`c6}+~(o?_nBQ@u(`d>=GHda?7e4HR7=+`+TT1&*>EPTpoF z$kWW@6hNALQuLM9XNgFs62=pkiq0+9k~j|wx70fDH5EEMEwPl{x;Z1%0;a^*mK;dq{O<);DP?*g{&x+p`nDUv$Nif?(S}y z@hLG^{A@^12Zt*LS5So6H|XUQRCfI0^1{EvH~M8=kZ&2@o8jw8)aBVrk2S;t&hYblQX)d!N0yWs>dV^&jNuA8Nwsrpy)7cLKy zYie*5tG+yu&n6Dhv-r3t{%Ifz;@2IXT(~{u+q#GGqt=+2?6=F#-Z&|uZ&X60xa8X{ zJ~(mX(fBatYG_AeI&0`F!ayG}MQAT015DwuP?qlgtOE1YO(x0F*oS>9$&&q|5>kch zk9-u1}@s=dgl!QHl+l{k#+1eOP;QcbODe3*%Z($n;AQiMBDp zpGuyB6WKh0)NgUOQm(t$j)$8+&0V1?uNV?fa2T2@$|f1TgKZkW>seT83Y41 ztAqJ^5}jAQ7fHdr4aP1(&6lS)L+Z=zjntFxe9?{g-9~)%hcP-#!I4-_mrF>FW3$Lc zhmxx_GyfR}jiydLFe2f)@@^Ns!DONpTR{E z*RENB?J5IqQE3TfXwSvTZhn4LtK)@&>cC;nyHlOy1x*#{cEqk!%U-smufo`?bN}JN zb(3}iMqe9pGERupH?FvH&V`Lr`es%)dv>UxJ<`&NMie#mE%95ekZEMtTcNl3T;5WF z_jY!Zee+qKC1Jb>(*2ZsG|{!PB6bUSfj1l2y_ep9(UD#GodGK`C=#2;Jm6>-=ccs# zB|q*0pFTo7Cr0KpR0cMGiWDh-4wEBb3aiue-L(B(J2^mTBO|jc2WXvGMzC-R?;D#xK4T z`h_~DFMkOve(pcO&@@R}WBG{na4cgScALYEwJRoKcY*NcjUG6~S56~4Ec*84)Y7ep zm3-T_Y`#36Pc0dIJnBX1gn*Z~Mu9Vt{HI;&=Ua(4IuZSJ#-&-{vyxH)j7N;pO8djb@0er=nq7C^Ivw2& zjATt{6qT_N&*7&}1iloJcR%arXY3Nj){&WZw)(vglaN|HxFl-TmDqVVtN1ku+sOpD zX=55>dq)ISAj6gqdndo`v4nL>uh>71SKvqy= zN=k=!_G#;H%5&5u6M78!6h1P;Uq9IoP+aJJz!<~qwmWxqlIwRJK9M#4=eLF@YC2~Z zD}C?hY2{|eD}7k9W1=!U!}E`o+7L00e0H{euyu$mMX!SKom#|i|1_H)1(_vWhFobH zTVQIEc=J3%v=>Y^ml(VI_^75?ON#n_1;#uQ6B75d%wH`$%nOXKK^!TYOKM?9WT+HE zH(pkC2xkgERjI-70-sByA1HtH#}K}Vn4YwKX``Ua_~@(IDH6sJzU4|$hFA9aNi-~1 z#fO;#tTHzw6cG>Jkz-#H+@OEY&7o>AYeeBnE!&b$`bu2d<;J_xvKPTy+W39GLyHCS zZI@>iN$;r;eqKmP^LVaU2b~VbgmGuG_6AIgy3> z5p#ZtjuW`ooq%1)g(?CF>y2B)Qm-fYdwR^kJ#Vtg3MyVsm)? z^xb3*nS8YIO$rZGAM2$)?zXR0Aoy&l^U_w#W^4s>Xox*6eLxv&r_C>R!;`?oVZ>ME zAa1zrm{aER^9hD*DrXTwW8WB`&x-jA!jZ%M+f6JuIq?T*$)Ch2$=c+u0h_4M-~l2I#p*C%v@mCJS7 z?VZyutj>*)K0*D7w; z;d9<^EQ1u1L&wtgTfv+I_0C2bV3wk5ar{tC!rT$7Kzb(rm*5X^#g*hhfYr@j{B>@cUpE>K5^&xe9sV zK+!F5v^8vQ(xyd-SsPo|mzI1ZbTv4NRf{@|c&JRxs0=5J0Z?_itczVB<}cH5pB`7&qB9 zp#rY1js%Wn^jV*U;hT^fU#NGgAv7{h--odRp;JdNI39FWR1vsd96Ou(?{|;QOA%DQ zxCm{&?SE_7Xt%Xt99SpvpRV7!i+Tcob9u4bj+z4&-VR%e2d#K#14ZYH?;TN`^il?j z1P)Czh?T#L$PYauNKU9yERGV?{CY@RrVLzdwNm$0TQ(Z&ay5MDixHXkja_v8;xA?= z`TARK_*^inmP&F|)guMNaR);2+C#~UOLZ`3NRmjetAATHO*id!sKs1ka!iR+<;{o` zopi;Uv@+jO{$;>VF|rA+eSGQ# zhhSjbI9-b6DaUknEZZUvZpFJlamyV4b>Nz@{n^1>)=ohGjpW|&oeuDQ5U_LDbdg6& zH)K|}aJM^cY^)6Nv$bb$5qIh7Nl!ucSxwbpyE`uClSB^h6iBN_UV{Fb8k?&%LZY4x!m#@Ttx8=|;< znTx!ns&Y&tn!T6R#C)|v19s}qpVt?cgmgO%_4bN|E<#;2qmEd@6>vyo7ax3oG0?@- zMb{JT#D7|9f{2ERj@%i75_OM6AP6ja3gzC5m7v$u~E; zpJih#9I>&&;gg%ZCPqU;^LuBfy1BV)eEeqU;!Dv4`SQ-j$J}p*zn(M^YfD4*7v<9X zE1$1m1g*u3loSYR?qbDz3_Wqo@fdo3#y#y}CQXKW(qo!abr^HeQ)+f))Y)eWW4iz& z{sDXn#Ow+xTs@FMIFJgf(iG>k(jU@Mf_Go7m--kHerr7?Fy|=Fe}T`e?7CGpV|eYB z=EK3lM-q!Lgxkm6JkP~EUR*>HnSspE*mfCREH}kuG{2ghvL&VB7q^LqSsTP*OLt?! zV2`2c#f;vZIhFn9J8O^u zwt`x4vH{JGW}kHT`vC!lg|4kqP7tznbRLG{v-+-4~L>gvxhH{jw*|``^ zSM+P?=|l(F{jmZOIpewIgl*TCgqL4@v=S4khy>VD@PWJ9-@kuXx7PHJj|m*wlmb+$mp z=5=X^Tlj`aQt%VUcwNr1Cl^9I=5+9P40KXWh{II@iL#ykEC!avlP@HeM{|)cVA6rv zJ&8xZdKj^TWsCYbBT>Y?`I7y5M>F-#-izV48a*zAm6dyl4&xMCt@){df5e!x5cU|% zdkx9f9~jG=LuaUTzN{e*2`|?pWq$qs9X93noz<4lj6a)5$MpG=2;Mx?WFmJY4UI{G z=4aQ86jrKO#a?$qUg|X>_wXpW#HKw04oNjt7=feb1U1bk@pq8Ba`I`EnEpK_TU_zw z#ib!Wh6{Cz=hwu6hhxJjY-B#UhX;2|e_bH1S+37S+Pg=20+RPvNl1Zh`@RVOjZ!mP z!`u`_v7YyLO0f%*L)wqWD)#cOx=eB15n-0PUMyr!X{XBCNSIFU)GB6-h&`fyg}qDDe`&bN4}8s{SdWdAPj2y?rr0^~BM+Zd}RHd8)o{{K@;edL(=zcImmr zjulhT$=r+I23H2d7=M)BFnv0|r_Y#YHnoCq_ou~T%srhXCH)gPkh%Zo%CBvL_;>Pc zJ+;P7uuEuCG-0ASLrU*3;b+)xa zmX3}ZqoOf3s<~{x&R#Y-WS9=Ybor@>qf;{QcITDVlyixrmLRH+IX9oKF51c)4nL@) zwiD-nXr8gs^5;_BczT+J?5)gFah8b6a<mQx>=>9IPUZ5zH*=pTgM%)cEaKp~d&X)W$m-f*M@0wHT&3tEM7}gxB zJ8wHB`b(R_r{|B}z5L=9R)eu8KphW!X#INP6F-4C^a|W-WvFa#7+&mU(xDW{jx!uu z13LgZ`|eVz$kKKzMBn!f77BXgzbcStB?|XA8QKm~zZE>yJaSKBdK!wcQr#ieb$J=` zw8~m=(%i#?VidRDIMPZGPH~5C+#s!ne8aNOQj4!5G&f`qN|jW^rxreLk|?K0=95`j z*V;9=%GR}?@kkLIn#7aOotjt1_rBORy8QLt<#4rm_n>b6{N9rFmyuBAUxq`-aa^8& zgNLj>1Eh#ktdCxdnCok=-{;yQUL>M6^DZftL|2wBB(-uR`%$eUyT7* z*63*7kNJza6L3_l|4?#%c6w6$=X|@*;p(8>F&Jz6io%_8^77`v3WqY_tNL!hXvMXc zN!A=B)n=o1yxiFc;p_YKLegMu1M^flk^V^Zbx#SlXAeK)5CpHg_ExzsxH6Ck5Z@@!>&#-mlBw*6fV0L?VM@jDFA}NZ~2{lb-_Gw zFh^>tdf|9>y5+?MeZzcnf3N4z{J9Y#RMEoQ+n@HwtErd?>62Y%=3WL=tV~C^xEOsf zo_k}lfR5VVG4^1 zgGsR(;I3Du8|D&|l9bCZgxxxS_|a@?xY2%pU~;)>b)ZJ@OSHH5|S0;l+n{KJWN z4xNjOOx_ckG1OFwDr8e;;do4#d2iMki=i(~!?>C$h$7@kNRF$Ha76((`{qtE;k zVl2x|nw3~XFDZwBJ%XCa+lq$d#ZmkAp}p2}smNKDi96kxw}Kw!swjTZVWiSgOD4s2 z(qj9)yIb?(iaOK+**n75@T|3;#-(jgd)_}Qul0yKrHt+xIe$4lBO&?Lfa|q}@O_oI zk(t1?dpq;Z+B*04u)mm;5~F%|ujmm6?@=+kR||MSZ@AOmg=QCVQ`HmO@-tBp0~7FI zNj{<%aTOFAx@9aQYQ8&V`t_1j>77H2?uc5QxEAwVpA{{GC#>4$2vDbmef`n3kgHtP7|<`fR&j$zJXjee!u zR8YVok~OG@f8VjpENg-5CZS#2M*L@G-&};@@&pnO^0E06Q*Q<$W%P306`}`Sw5}j= zyG`*d9Hw*9yrGBC)+dql-`l&kLo7dDZcRLgUiZN+^9`@s7gnV$+sy>;d|Pe|Xo#tI zUU>OpD5(fNO8cQXxMk)&i`XJ<@3t50$k5{|iE-ln;%6|hh8^uXVF7br`pL8eKQDJ& z)8SlunCBbcIvcPv698-ksLs}Y6@K|>h=->+x;nH6oI~<@tn*mN%h283UxPoYHyNW~ zKV!rd_TagjMl!1cSo*zDMU-Num|Nr^CLysnlrtUtYZN=WvgVNEPEVpMH1OgDB0av$ zB=EdOB>Iu-XT^7?)AOe%r>i0;s#r@^lXORzao4W@ilgAv9?$ij5fp50w6*q$I3aob z>X+ZdS7ZU~(8US20fER1-I@^l2|9R}#KFPA8+oS6>g~SVqpa?zKH!B{^JoV(Pa$v4twXn3Y)bPi76Yv+KE|TD{bp zs{37#Sey0w8bR02MR_WJWxkfZUWGD#jM=h{z2eJi9{I-zQPG3_XGI2Uot}ZQur@ut zX0+bfRxT=M3}1ie;@sw{#d=nGs=};T!CMI1#?W%&KASFX#2dl*oH`{2`s?=XfUOE^ z{a5oY+pWW;b6$D%)1=QDhz}vS@k%inD$xoBtPDzI1-&XsN?j^R_x2fra2R^38FdeU z5tVvXW(8AB2j<%pz3{9md}lZ=e6+r*dADmjaIURk?(te3!&&8twAapdJ#i?XvuFCF zriRTQ#o}JarjA$R7vHTB2t-?3{oKstH28%#&S&YD zJ~qmAY)o&q&-(XXfL3>$OheI*wwq_ zDi|?N&Tze_yq}a9i0zkNzIc8#(b20{FO=#0wfc*|@RiW@S^Fu=?ea@_YK5I;GruFlBuBGB_T&URK7k;rZ=pL-t^M0`TWNQ|FKqxYd(k2Gwzt zlV8YoT{&3kkBkhZ$fSnpAj-$s71qgfk4(DQ9(A7e*Aunp8qDt(8M)zjKFkcbkMW_|`kwN{I zu^@%I1Q!<~+!Zb}t(+?(wF?CrJ{SF$-2s>lsN&r)%9iL(xI86p1oV7w&%C;|HDGUQ z>((>VMt>XW94&_`18nounHQ)4(%()lCleDQ;omcD93nm?1top<7jLK`lwD^J#U-l6 zXX=E6U}*5$%bI_O#8p=Lh>VMj^HGzyT}?fnkrch(^fifsF@*fkCkE&S72ZEn&I)c= zgP(%gqhuw+7>RM_jixdg;wJaf`*eRPCTw^IEt*I9m@*El3sU1tUydX$gpx{!Em{X3 zRv1J0a0@A~d+(sAcA6b2)&hZ1++NBv%V1yxqz!jzpvc@Yez5MwWvTWR-}Qkyio`>o zdr&Mgiuqk=mi>voXU%+pZK-0bDe0Eu)=$s4_NuDjx;n2v7d@}rr(QsUL=y&Mc>+;A z7VsglwcO9G$s9SW=|c<)IPx2FYbdqdch56TF}}rB_2sRM28*pBZ_rRd)}J?nFElgM z`GiY@4x;Q&EJ0Ai!vZgTQL>~}ZqcEch`q)8KVf;8jC3<=Y8+IGNol(0Rf}E01%Oo1T^c zLoc5*M$J*2H95l1o)r@hRg*j7Jra7B-2&&YP7r(NV~$s2WAWyKpHvS86=&>&@q>H4 zoh+(TUsm5Q9mCv!D`A_{GAe%iV%%VY$r60shkIUHdfMTikacnKbAGEmW6&MN@auE+L77If17&ETSwHyOXRkh>*u-}N^0qR^o)qK=acI`e-y0v)POZ^=(*NSgHe z>FwtPrTeWlla43Vt3-dIh38Zae9K7RXGk7SE9kEb8s;INZDw`(o#uHjMW5rgTCLBP z;7V>Xdu+t_`5tv-Fnq(4VXY0Uk^Hq*nVe>RfdzdrstyU^V>>=^X~X~S!90q+8Gw4$ z`eizuV0x3sZ+)8%%jNyXy(SD%yQqBFle=P~lC;~vlnI!3*dYZ*ZOB$E;7^Ade;@gN zcOYNErhS*%!qv|^eCU(AcD8vw<+8oY;N&UZ8nho|OE^8=)I()k01n+?77pl?U=G^S zsQw6ocG-AkW{DO=2Rq((z@=|+o7W?JzjFnt_DtY1TUgc1%FkMRZg2D2=sm-CB2n9G zUd$-b%t5wfQCUP`#$H&JB&pIWd=Ei_~5;`+TK`Os)9|8GDm7e(=HY0Ok z9XFNLyHs*+>V>r&JV>9QX5{F`pP<7}J~Ij8)YTH_m!bkRkYBcV^cNUoyOqfoAH?n} zK)WE!<|=D7lXG)fkrLAqBIU-7!dx-T#3A=_Wgh?`N#IdKM**HQKAY@AQ z%!!!1MNIJ+aC5P8jxf|*g7_dNB5Ej%o4_enQ>-X;#4CbwkNQ~83D*8_+ftMS3 z{sd-cnt0p@%&*p|%h_>#Xho>udy*)ea zL5;{Wpt@u(TeaSg@~CfclBJg|UtYf~$!_z%USYVS%5p?RV)Xg_Lgx$D&JGp~RFjd6 z*~)vk75R|EAbhlZNRejx>rE%IVx)@zSkei7pX*z4Jw>O8`j%#%oA4%R^u4x~*Vy@b zHX|c*2rLBR%FHZ6^Rjk)&T1_Z&)td$N48^@PiEsw1DTbY!{}2XKQMdxUcGpZ{7d`8 zuRH5ZPnbhWHhUh4Ey_U!srka*xC4t)uGfX>&+`zA;fFkJr=fYRRWCN&Gi@W~q6`a0 zG9oQ9aAjZeBXxhaIM3G!-N`2kI=OGBkVJhE0Mp@`+y@C7i<#rMd7MAT61fwiTezCgG`GtkZSr2=BuXULA znq&4SlwbmEAHq?61c{qQy0lbg+?(ey}&cX%MlC9}`_9cnB!eN%5 z;p%h`FW5+O&jd~+!*4(wG$HSh89!E1ZYk=dj&6A77Hxc(RGF&gq55l@DK74Kha-H-?(4*PBa+>+coQb`Wff!Y~xhS1F^Sq z#1O=o;fl4ZEe-hQdhhdB$dsNvwUyP3PbS9H!o2_aC~w@}SjCl{al3D~)|A7GB%9aK zOYGW*PV;bq8*&4*honYj<8MYcXpencWh*9Vj(l6u4X18;TQFhSQ!>~1x;GJZjpygr zTyf%?V{heQH3)Yt6G|3kM{QPIPaxv+?P1umxIJGndGAnv`Ym$EUxQ=Rz!Yg@ydc50Yw(y17jy<#*;!7m-j%5D z>O3ai*Jo>}YZuh@q(K%0u@0hqhvCQ7PDNUB`vPw>&5d z6^e!8vSdgP;<*+~C7KMTw7Nd54o(Mpo3h)#toqOiC)U+_#{Sdi`Qv*5kCjUA=0)w+ z7MRT5&t1!iQ$GE=d&zzMD-lIGjM()%-9lX;cqJuWx9e{A@lPqX z_iutV3Ay1`tcAb~TV;oP5k!?EHZ-(Lz4dx3lNhh9RT&ZeJN?^Bz64Q{&teZ#_U%30 zc9#Zoa%M{>Dt1Xzb*a|!iMsCBKe^Wp>`D-{lX1FK8m95~XXflC`dye!h@|+L5Hbmp z6|={9CbNDV-599m$|`gaA3pTgNwaxwg+S!8_PTo6tTe>t|E{PgGZ!~w&SI7BY~9~699M`Qk9qKheN^G2)86a2B3&51KFYI5vN_c@L-G8ap00Z6AN7Ee zDp`~xZX{AMDUr&GaOey)c{fVM0^1rf`?@Dx&l)5)j(kV8-lu?ml{vv`dFk?T2$fab zl4ucojDcZV%^GSI)#|q6$8+scDCk)C1Z2y+E~jU2_Rwq|XJ+6HkcmM?rNcnPcQA6{Xw3 z0>fu8?if=~pKFoM8nlb6;)jOtCs_50oea@y_P=|lM)-q%?&c%cd#|5T%hO9dtE8lT zMcfO22&TeV@niDM%k&(Z47hB4a))E`Gt@c2NW+OQN6Tf-Z*y)wCytaMD*ySnO(8yY zy9c^VTIAqkrCPGvnjh)yO5p%!bgG9%zP(pKY=zBSD}{&uZGc}oDwqmKsq?9)t@$5v zWY^DU_v=x4VZqy2UyZ}xxTIOU`AlRXoyV-{G2^$}dYX>-!|~Cx>2#-YcS%|18XvhF zeDAg%HG!H?GE#83MxHs-V`xn-$^jk$_LN1aCKF{2u2xQL#e=r>aeBKbN9(;t@)vAb zbI~>Ipt!pOjLfSCT3_vWISXyoI0!;I=KUUe$f-BqsAJ6v_B9^$t9AWywg&7Qdc*UM zdc@kh+YrZ-cDwe-lRy0gLCZ49kZ(gnB;2MgQOoQd>Z*~r{^a5AqoJvxm$^O)_gK5k zHSyWPfZ?bKQB}SQ3$L~(%3aK6d=3{DT;J4z?<;;H z`PmIm*0q+Qy+9UkiD4IVlSG^@@#ssx(qzpSgGh<^mYWzQucM~IlPHaKRpAj$BlbY6 z?{W3p8m0}_aAm!+5qqVp6`P;2{d*^_d3NVjVB(cl+Ti$f4mT0}I~O=|KBz=d_MEW# zQO0ml#-MFRf>P8nROiQi$~(`a!Wq+Z?=r$eLxLBnXF6`v`RF{I(IB0kyj5?B$4gzP z2XPvCkPEyatf}O~Nu6?#$}*QaVXAQxrYI`Y>kaKH#4`0k3xp-qSd}7TQBK_}!)7Ba z>SkP(*qT2j_GjLhe2an+cf;!99uP zi3luJC!Nu2{E1re)_~as$ug{iZt$|B;sZ6T zlHJ_Vv0r_iQ=+F3*O4jgcyC_S(q+x@7Djd~bX?yG&rd38$-#dtFk9w|#b!e!G*~ATkagL`T z_3TfB`JV)$C}+zbaa|doqP9Q!JeGsXA-r%(9ZO%@L{B;epZSBor_-5un9M|Edyo*q zyOg3Hdw#o? z9N*%>$5-P`>@l4x9EZSkL>>YhXcD)|(R#{9O>2rcdX@hC1=yfVN*aj;X@qrtaf>sp zu!CFWM%RVLj-^@-FMJqd7Iik8Jo$9v{KCLJochB}5u|Rxk3%}a?C}>;6s1JfyhNG> zBfM9E3_iKJ#y3O15Z$b_PQIOB`cTP~A==I7${8%<5q2p3V*EM%nD6$k_xy8Wap5nkTJOzXLm)x3vnG-kziWVjte(KX~YWGv}F8_>`0!JdIT-C2(ouZMM z$MUKR{xAbMS5!O75Bqw|0x_6Yk?j5SwYl~YpaO4ak2YY&0&Ib)-D0GqxlC-TcWTFub_>#ZUB9rLe$PV0GcdceAO}n&~SbqALnTNpI5X`4AnsL2(gkLP!R}H~f z$i4w7OxdtzEu@t|4oBJJns3%guld8UKQj__SpXf|ADGVscMBC&7I{ zTMjz>O}Vq%KpZ35aO}5-^5&52d`^kwgZJH1n13)kl<_!gk?<7mwhI3e9BNEfLLQ6A3vt*;JO9q_K&@emL0R9(;t&2brd zkztjYG7#8jTU z-c-f4ZXPH#6~p^C$jPad9IO@b3ka~8`Jdcsge7UzcqZF!JmL@v9rV}0;G%V>5=7^4|7q2Vah(4hpIvuq{l zt$5+)yzq<>dj+4|QBQFjwPG+e`-!Vx!ErWO_xZb2Ix7tZJ;)ynPYh2;t+^k2eF&p{ zkK4@ChN&`MsIOu!p2pr!dxAdx1{NMEIpIfM8&$?V82nICJgS12>H$UA)50Ss;XFGV z!=fi!l=p4p_Bn<Vnezo@(=&v_M?=p`9XJL-y!YBTKLiZPhC9B!7QgQP1AvMaeJIZfi2$RA}J1=rQpM7DI1dh`kMtCe$54o?QgEdQ>ko`XSf72&Ar`gACzH(_9GkbMkVT5n800Jdna_=qaA#6cErlGc%J4 z5>99LbdBa4NikJ= z4_!Sfb9yq-vJk6zd_2^Z*BIg? ziMX&%DYFQ8#foV3+#r88^C@`4b8}kdEth(=^C#B+!|c0-ErzKbPyJB#41V5%FFz?0 zZJF)AN^9GDI;mvmlcPMq{$pwR192r|KF;sG7<{rpxD^F+=1cWm;t+E%IK2s$qjsM+ zuM|Ig|Lgp`Y3IndXvDswZb(j36?RYR3hCg&KQz7juy63Y%tGrPC3dijz~i@=75h1p z514AEo={m`K_jAS&8)1P=3>m$+gDBPom^Zlo}f;0j`8Mbuorqka`gCEnBITy^LhNi z8AhLvM}R3rjD6MQV?J(a9pU0BD{S>es(&`>9i52u3&7i-zcpBKqaB>(AXFQlWx=V(@nxmwlm zT^*ambmf%HtILy$i7=d3$!$E0y)0voq1!dIBuMy+%4tW-6Frkx_!4k^KKeAKJn;e_JX0I#bt{&> zSwBwgHr+mK*$1-i`RqW=tqcg%%`PLR`65nwTw3vaO#g)JY`o7CekT7o&jy2Y#vE7{zUO8amC7;J>Kg67%|7Y&VR_446^T~(oVgmw<1$N92?(oWi)Vr0Q$B%C$ zYQe4Jsx+WUV530(*wa_fd=uINubLc$w`)&KE0onZKu?_&_mpZRxXjk=MKG+oUZG zZ1=AuHU#p{h(Lds6l(HHNM z!jh78sndzqZ#D7b#Kn$Y3?JgNYx%W|$xR5IB`qUQZo1}GH8(qgDS*o6=B*qhx)cGpdi4?7HLA#ZZIjb1vwC1$jXTNxPpAwnIm3w@i(lM$nWX#_QKE*k9GbCN{|5^5|of=p#hbZgHJF+R&?d1m3QM511 z`PD2hb;s^8FG$lYIU>C`i$psY2<;)R6!1kj30n{^sJu|{9aoBxDyW!kI z?ZAVSSEG2!4<(|bqWF;hTp7khKkWj=985U~mXjTylF)9Ob@4AE;Z{UzGhqLhR9BD4 zl-qO*2~KJJsz~(cDkR7**Jo9$AEzwRL`vMe=eqrN@9IyxAEWk(P|RHc)ntWq8wa=* z($3-A+&Kh-F{G*>`^dt#=$70gvIO=RSOinITO2PDF+`A>m>;R3%jBKK6?1sP3&C%C4G+e14 zRnFyTc;UXEmfYMeMWvmC{dsB1h7DJPK#bruUf33JW+-OulY76LwYnP$fDNN;>3}BR zz~kSBetf&%z8nd+?>i5d;)fYMu#Z1mOq4ks5b$1oZ5MRXLyem8RE9#d6Qzy~W-G8n zMW6U-^<4XwsBf^4d_Ldblz+Onb1LM2T$3kccDZz`7alqsu;bCrM;LJD0c}sJ%_NWi z+{Wm8H=rB*w~XeSY@~*ArPPg#j6^+F2e!4OmYf15m~`de9<4!w?&NxR{#d$f*YR6Q zAcyp9?DsIpFcZ&3CrB(vN}aD4AOrM{rtm%TzTsa*d|OVG2~;MmrVxMo-}!rycP;aD z&NYdfZRG?4E>%S>g>pIb5Oxp`LT6y0{}|CR2m}fe|6Ko2;2#S7LxF!N@DBz4p};>B z_=f`jP~iU}1)`#&F#ZNOhK=zz{xANEe_r(;MuG6~aEyqE2u#3hYyh0-=x97315h+T z`Y(Vu9*E-tV1qasSpNbh2+{aUZvH>68v26>69DU9!2U0BObl>=^#AsP!C>fn{{|Hm z6$TR%6Nb9FI)<&SEryMa&0hf1H2-b`pzi-}8-PX_0Dss0-{G@o&oIcy$o`N2_kUZM z|DQ4y6&2BS!veg=0WyFGLVUnSA^=hV3V@s7J{;8Z7CH`a1Ek48h`x`0jsV<4{{}5D zU@KS@4!Dn&AuIs2JYgab2uwgvOa%o63{FnY|1Mq7yv6|_03ZXn1waeH2*CVbzyRVj z05>r)F-h^kMLW7+iGxzW{yj?{wmYt;1&PxT>Sj}m_b27=r)Y5ADZ_B zAPxgS^OzRYkr~AA0B``XgY+GM+aS&YzyLrE(rEcW%gJBz0OEhi0|=oY4^5lDY4W#B z{F}z0U14fyXkY+3VSuvyKhX(&56yET05rdE0|)@f0cZgj0GI(-{tFf$1SW1F`k?u1 zVqsxPV`F1;gKfJ6jEsypfdAOw|6@BiINMBn0;e(fJ_#cRN7W`>*y*I5h~-Isz>ZFz`DP5dNhj zK#1-`{?-wH_aA?U=yG7{>+53*2?=2U-eBIiaRUS0Rsrwu03XrqoEbnEKoh_Qz!xA6 zAQPYf-~&J@z(;@*fcF4z0n!1YfE>63Jz$7~gCh&x%SlU1OC>BUOroc!hwtIx0R_B= zf-<1_hvp@^%*3ERBmktK+-TWG*M|(G(I7_yB0bV|G)4alpW1`w2nvf9^KygK^~glvLLPkpbnr3(&_-{wBo<+Nr4b8AN&AZ z0Bj(QmIw5EXh0nOPRf7L2~9^dT?qluw1xtpWdb)eG!zH)o7k$Vs@Pz!H#RjjH6GB@ z6o6mowk`u;3g8Ej26$Np)Oi;P3F!nG8Tl`Aa*8c-a`Ig=7}+lDe_|Wl+rTFvTmWbD zN5S*m0CfOwfeb`~cRCOf5~|(0b&HpWhlkeC(2(5E&ktQTG!M~qK=YOo#BTtg%TM($ zp!FRMh@*8Qx^Cz+6#)7f^t0rE_h^|x%g|r44$@fQ-I(b12Fm`QaH0EPbia(|KUzl7 z94IDwdeqGu zH?JwkDb9(BiMN3)`~>go1o#Nvod{&W`R2`=>OcngfF5A-@$sPs55dJ0WAdZ#;wCoUrIuZP&o=Bk?NFR#+m-h%!j6u=kM#|PBW3%~=w z6~GDn))s_lxiADk%Yz00T1UtLh=Du-5OM=>g7|F!CIB>z(S61(AZL_MpFX9Ol9Hka z<8VRHzV!jm0|C#9si~-^@3M28a&vN`g!uUW;7+8^v>%6UEKRj^YOV<^lHw zxw(NX2%_X9B~aSR$|(H@+9-J$DHM$Bpr;gZ*H&#y`TldHr#D=vw7CR}3U;y;oR@$d1&4<{dd zc;v%hcD(%ZkwuFazgSmSw~V+g;B(F4|Czy6%~i%#z?H-2NavCm5yPw4Lm-zoKX>DD zC{ z=7E#dCy01p>uc)Gg4%Y{p>&aUv}V^1e%xDj(#2Ya|MFF4uR&>k#dJ!TBz zV(}pXa>7mIpVj1{sl+OpHXyGtk}H}khPFPD@h^p6 zkKyO?J>f+DT$1y|o-Mf~f9h~aT_k*>H~md&D-{DoU-%y;0SbGG`$bE(lDse2 zi;WKFRbsIP@fUj*KTYK-+JE4{JO2yzVh6%- z@W6q@eYlG4ZVnFcadU;QhZ}r7J-FP}8tdT>KR)(zcZZK_=MtOnaCV~aJHUl@;H>Px zmVCh)jy874P0NNIANT3?EC%-L|A2Ym0^`o-y1KfrySTVC(H_gn%gb|!btYe9_R5tj z=O2Fm{m)OIIdi?Xwl<%yUHFj1w((qI2NENkxPDS@N#p5o3k@KT;0^; zv0h&AUPIj zuf0Pa@;v=z$?}yeU;gy7&(8mR{#?h|pU&Xi*`KiG`R8}?Z<)rwVKSF+o;a>>-ZzPz zj$C87#HU7Z4dlI)7@%}h=FD!4Z~s#^ps<(N@9XQUu;=R$-AZ^#e?At@uglkJF22ue z7(W-^FK%jDwwU?8?Qz`i!k%~w=AF2c6VUhn^ZN1R33RPf%oAtMobLGii_dSpzWeo4 zD_5<0pRr-*%$YN{vMzcqEiG*aU)vGOG3L#}=`}TmgT4q&%@MF=9`|u~Rd@%F^~5-T zU--7?`z zTgl7FfU_O*0{KEr#ra--G%=* z$G*ADzhM^dmE^Vp-mfe!i3JinrEZe?NooYi1EQr#eI-0V#Q??+!T*1P4?f19@m25_ z&i4#oo7AUL=L+u=&SFRW#rGwaP3EV>Cz^gw^+1s(E&QAS2EBrh~(9biJ9XklpuD;rywTiL?c)Ervcx)`CM z1s5k5KG#@;`1>*c$MNcqh@fCNGZrK#B*D+iN7;bJ&|%Qf7}?=OdzmyT0rMN@Vc*_2 z@by<;;tXH^ImUorem>u^YW3<@d9UX3Ue)j_`Aq7cIDS5kSK*Gr1q`?}xl|0`-}?-6 z$y1^Sh&D_;TJZV*>*F!@`~{-D3;v>S3h(R7B{hoZ7^YlK#9uhS*s#R48SfoFe7p<$ zE?<9)JMsU|J};kl`TXPS6WEIloIiIC7cX4EPp41eqa#PKZtYqG1qOGR7#npAA3lWG zKg&8zpPbGaL1Vp@zXu2S!GxT>$1~5MN6%+4Ok)Ie4Gf{9uMZ6!9T<`0+d7jAGT!?K z1tB;*0ud7@A|^2j@oDL5g~i0e+}a-c2BQ%a5J0Zzilhk>6mJxcAhqPQDbrX>n$rdb zW6*%X(A3a_J?qFg)(rFJ&cWU{_TU)f0PR=hfFnmgI!`QD@m|g6s^z_#&T9s*!kztj zpPk5m#_%dNp^5=~{4C>L4~fOBbGlJ`_@BgIeE(^_ww}BS{-VK%Zeh;6-xd4Q_%*5D z=6}z+PjS31Uw`uYFZ}*7=HmavT2`0eOAa_i-x1t@z3_{01MJzo8>~fP#XPJ*zwgEP zt*<{)VIRymA4=SPiRqvrgVDXm)962F5VZC6FicAunv4%-7Ur;J4Pfu;1bbp=NlrJ0 zHK3`L1uV$*?8z70{d^G^9)-lr92AsRAw8!ErWW>ab0=?b_dr}!Bx*~F;7(pC{IIO3 z9D3U19*ivm`VYq_ef|!{2W~Y(Pd!3-%DxHOv#-Jl`;b zalMGXJ!M{FW67GeYZs6wtfr=6K}|uI+UD@dlP3=xKYn~)b93`vIyyQ%iT^XKJ9%_=j7x(MQooY);)=@YohUrW+Qy2di{nCTZv!C zzw&$G`v2tnPsIBt@jgw=|MQaXpQa6b@WK0--OvCBTYG3}Y2aCMa2;(;@;4{t^I<{E z*TnDH-p`^J*PvlTF;q(nLp3#FU^*J6mgX>*Wor#9XL~q!xx>`n7B-9<4y*&5sQ1Wn zaCd4dVA`9O zHH=4_!H)4EAwC`p7cNk_;OLPLarC1jcy7yOCWLwTV5o0OGGbN)P6CRg%fdgB`0+C^@96YAGk4gc+l^?_*`C$ zA)ay#^i#3GoVH-==8m-7d_>2k!^z1N-fk|aDk{XJnDMI4$j_MylhFp~-?uMqUO<2~{gr=oSv3SuU@`gstn>V+E z@nb9b{tVU?Rn(bE$y1Bii=0Lcx_~R6+IBv1p2{_aD}!r1mm8NpS6?oP3I97E!ZW** zZ!7$T`xA5NVF@o04cm$M2lJZ9HJ!0+4!QaziT(eP?*)5e&h=!R|0nDv#y{cn^7#1o z-{XtVKEu0jAHuHJUc;8>p2OmW3z5#eY(+g!gMR(&v%O$xF^1gC80NRHi%vn!H(4T`sqTu1?ftc_xR8F6csIU-f#oibnH6A0G2L=xu z07C=z6de2*2gC;K5EK*$)~kr4Eyy)GIto$Lm?I;|J0ijn&gTjZ2?6_9;A{a#8H_qj zKYx!p<3EV|n~e1bi2FX`zE>8pdE?RIyFIGDM_dkH`K`+`Ih$ zSw0>_thI^1DS4l8)le>}W6PE-S+auIwRQ3P&UpXNxGNjz@^`rk?!xUKEs6V*BR;3U zzp-aGR;^rt>gp=wP;@xPMMrRj zBQPQqetce^;7(icq#d}i4lpOb4~&R}y`#hcH{_(Hq9lJR^MC_V5|d$09fBG$OsO9` zJI2G49CH-;hlzXhv}BW2BBYw3wq9<1u{LFpS`J=#U`~1`Zf- zXVAbwTm$b69yIta`;}aS?y`4zm%77U_AKRkr%#{0S7|553G|y>tGRNyT)9SYNj~_i z9}0i=Q$_m`{Cf~%sr^Lv5neim_=|QK$?s+ITD5)0jy)2yALsce^7}vG{)DeTiT#;V zrxe!{-SFLa-p1OsYfxA?4dG$oU><}$>u%}Iji7H2VC?r{eO^+Khpf~@n6i%R)2}xM zQ|leBqXA7lZH2vto))xd2UaeO--5k2V?J>gEPaUgxcE3krzB${b9sE$WQ0LMRZB&Yl`M8eGIAlbGYi>eed0G|26iH`22suy%YOWsxFe+h+2<| z1K+V{wDtKH6rXZq?d?W?bEihI`4+Z0Zoca3q)1Wp3!l*UCN;`mkmdyn9fC>cYP_zc!$Me~cJ51fz6yFvi4) zwIzE|j2)v{-%4&7&iKY2x4I94|8T}V(IkbBIIxZ})YorekNQ($zKJV~%Yv&n*Ps39 ziv8V)ud4ltyJ$Z$e=&?}6!X6HHAS;j+>f=)tm7w+-%h;na&l`SXIO~(@F&jF?-l%|=VM6Ump-=iuj2Xnw6*Kjts|}-ogD9< z>vvVlJ(1(Z*Z&E3>SCge$r7FPt1rJouwMXD$+OZD5@-ieynlh@QRLQ)`w~}E65>!_ zUWUk!am@MssO=1erXgd#kuLO%Mq>C#O&D7n!PlZ;fZ6qu&QBB(G2b<0+vZqX8ikgvJ1HVBU5OhDK;a>f9- zGw#^44z#qkMHuG=rcas7t3UCIRGf4Wv5_8Q;MfF&1tk%qAoh(c6vo!(W~x8MnF1Bd z`_l%74jBY<`nm`E4iji+iLo(=;{QpFpNNT!KY_kJ)Eewz&RK;~w2=|yz=Oy$N0C2F zAa^V;n991;UG=U+n_|EEE;-{8;vUH*bFSUF{>+EMpBk3JpS~^q2dVw~F%C#y!ie}g z@fye_+`pJ}9*6#k)Bg)@*NOXo_`1@>1$XvE&dWM?R;@2T{{rIkiOj=U$&-+oG>P%k z4|?Q%YCy|S3!}_Nk?WK9jb_ewwr0)79-f~U0#nkE zR5KeB%4WfCN+v8zb6`@G1B;@mFfYu5$<%C^=BB|cCmrTFS+LB@fiZcVLsl|smo7tX z<3jj^1gm;5kiPCkTwGZ*IMF6d?Cjx5O~{)ZMf_iEG9n~M%@~L_6h3YoR|%r|_0Rx+ z3?)Yy#+WU=D)D>HD=?PR4*K;|y{ZJpo2-;X+Km^S>}|;}_}r{nT=>|A^^O_ihv?k8 z+RSg{Li*&kjy6_|5k4ya$YbeoJ5tLYK5Y2&1YGbR$@OPBfWn{i-Ch3w4E5(;#96c- zP1=A7%NjNzxwk0f8gJ#-$?&Q>UhQN#pfB{CC2|N+<&IN%RZS}dv@)n z&BtMKaw4)HEguhe@?#C&r{0QRtzNuD*@g6aG_-~&yhoYnLEls#BlI+2V#}ExSL!=H zd1uOmU=cVC%tJg7X8u(ANA|gx16U*J%WP{9mk!s{Tz}@{N&JQT zKSTfTs{OU-`_iLyCH~U4%wXL&Vt`||E!i^eqJN83RV=XTg9Rz$lk-U`jg1q$VgENS;xL*(=u}fHk`-{mefq9G;8;F1+7P-eciL zZOD%{>dR|@rzhf~qgDS=X2)`fW!Sh%#vv41@uR1!-%{^W{*bc>38x!+JPgr zto-Z@luXSLbGS4hCu%ZqA**Z}0|2yXz#s5Y7m;R&Fe$w~RS-g0$%qhscM-;EwufF=~)*Cmj z|5Gjh)!{dBZuKYs_mzPS}Yys{GC9oUKQK01sO-+qI$jQO3o|BMU2bS}~O zcWm8;bmsjW)?#_-X~;-Qpw@3j&f6ab`ns&O0+Gyo>_@$2*oZ+Y-|Ly`!pPD9I!5g4 zSdC_VW(#}zzHdSzlIN{NWbGo@&#i&QyqU0`JsYNFRWP1jf>C+XU{*LCW|ieIudIS) zRRt_c3m6l!V8}RNmYE0};$fAZig{}{A-$-We3ChRyu^SI+5%$$>pu@qZ^mxo@9qYF z#)t`=84IUwpsQnm!kj702h~WJ7>xM|UEbv3?w>opwz;$!B9GwknNz@=Y* z#S5FZAU8D?Q;EIA|MaAI>Ly02XK&7VP2oDJ?5)YY(b67@(PIoSn!ayrZU`+SO_({E zz{ z6Jw&t1A;M1+nl_t4v}FsoEeGXYY#;{xs3(?4%M$@&M;vgT9di$sqWp$>4);?^HECw z4-mY`=d3Nv*>4U&F#SKk$CLcdfpLR5fHm-F`hy9zO^FFn{FyjagE}C<%TwV`J>on$ zpb@bj!1Y)1|KEwN)PGMi-z)A%yoWOHkK*UneC*2=%eauww-&tB+}y0=*W@xUgW*|i4W@7{#t zA0EQG6)Q1?eU-fQbWF?6Mk={J`@GaTdc)4fg7+^1Y4Nf2fidjk4~Lnx3CwIpW3&bR z-$V=ME@NQpMcxZYDJ8nq9!Cfpe#R+ zb1UBJ?-ji(g4(v&eIW6dJRlsSGY3!;puTNL8xUmwNZrSD_UCG*%xZ@>NaZobnU?%%(M z>({QToc`^eb-1=H5cmHv18o;RMf>Hi(SG#@Jp5!S9vqpE2OrGE!xOvEdUP3DzubZc zKODrpk5=RE2di=ClNYgR@oZ`tnV8BRe_lqK;=(43b>janj&?{OpU+5)hXr$>p|Lis z99R?Ckq;ApeJkScVFd?27X(k9jLhfXL+q-z;I(}ZTz9+$$IS;|wd^HW&RP$r<t5vucqXH<4>RYxyvYXTNBSi5YD> z7NP~n?6L5{?%lc}oqt=^^l8*~`a|?#sTD0uO%Os2Ncg?v1erULubFYKN#Y}% zFN-GsBo}?;|Fo_4l%yo>aX~?U$@c|+;x5{c?DG)rFSGty#NU)xnN^iprBt2-d8!lt z`w$Lrj&le`a=~`@PtYmLJ75S61RQ%7Qu4Tr)iQw#8xcyjDBzlnK7r|fb#+bR^n00`?l_jFsH%uHK zg&=YSnQ4|>5qWe17S}7hSx{w?5oW9X8*tk$1 zcV=(R)&K@}da(AkhI61Bg7fo{|JFIAzkUvW`+tDX`@h0#-#IwGcnnre2jTqUTd-Y5 zZm{_|IImj)w^u$v@b=e{dh{E_96AC=<^$v0L>Onr!HzY+luFic8LSJ5h2(z^YLbqu zK^*D-QuBB5KM%gHY`(sp)b>LH1K1OcM^tD%{dy8(e<)JpVwApRWN3_utS9HzR|Kduy^+R# zXfW~jXFigj^PxSiTeH?ofc=vn3V+#aPu!*UlbOFh#CtGvzaAf(^Rd)^(XZ^>xkBQ8 z=i+<)(GGq(dJwoZ7RwO3zX*9pZb{C{3P0VHZ{Re@*O?qe;a2ray}!B zaUKOjdmY&LSd#lYBOo&s(>}O?y!V?C`sPgpeg6=iAKru0?sKr){0W?2J`AT#`(VF# z9UM4!VLf*SoEq!lwWI-#jkPeHo(Yq@WH?eU9GjhmoZ=D$kh@zluaBj^=gwH{Ai1A8 zoPO4cKYd>`-!N(vqU*%*wT3fRga_BqugBB>qsRdwiFX)`iEDgJ3{HIY73S1bu%GF! z>cRl>ho;6kShZ+AHV}U+{>{-Low;2!WQpyr)b~UiGBY+L|0n*`dj$Vf=9qB4uCa_! zLF5ab&d%7lcAf2C!Ja?+cR6o?7%TjVx0?AQ{%YonpZoB86F&d^^Y^;2Z@GUT*8i;$m{feOa&GS

THI#jWy}Nc{Mn##b?~VEYWUrF+ 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 CH4oVU literal 0 HcmV?d00001 diff --git a/images/iconaside.png b/images/iconaside.png new file mode 100644 index 0000000000000000000000000000000000000000..b5f02261e5c58b252a4ae9574d522198a9fbfd9f GIT binary patch literal 2099 zcmV-32+a41P)(_`g8%^e{{R4h=>PzAFaQARU;qF*m;eA5Z<1fd zMgRZ@xk*GpRCwC#-FuMNRT&2G&n^pcRg;vYOq0q~q9JQ6CY(|cO;gCoZa9_}QCXVi zWOk9#$eR!cZLK+;4v+)M>M@MEmZ%x9hl^wq`_`@2R@521$>Sr=?eR9`m;Jh8XSfXr?_QE0jK3R_(5{| zOIneTu5I90|Bl5eUdj11?!?>iS`16k{Uf!VkOqVCA$$V+2?-`ARwY8FrFdm!ZG?1S z01n3IaYO;1Z8`psUWLD|jgSU?F-nM&Q_-gYzp@ZBFiQ*MSGF}F4feqYlEZ&>0iW|x zT#Fy#!5Rr^a7sEUqqe~VVr#J)-^Vo~DYv{vLJ0k98b)L10;2o*xEQx2Qo3s+q;I;y zPQwQai0=QFp2OGRaxANjkOq6FSY?Vx7w5(k_?1X}{kcX$q$}%PLYzFJfa_~DelDc^ zdF>FXZ!Z3W>qYkOpBRrlGJgI(I1YOW>F17QS2ZW3Cw9S^_;iZ&a~D)Rhx2e9o|Z|< z&q+uJ2I2VhAMuLJgmfnd|07(8hiW6F!C;I`er2-!s_|0XC8Yehz5OgMfsh8T!Z^G$ z-RrsWdm-h|5sG$ogfw_vy21`GAZGcu$VOh-TartOgf#x;J1LONT@$uilpcKzf3lsc zCp(piZhS?kw7JnIoz|;yOsyxRr(Zcy$S%7UV9!J8`ue8rB)ODM2)sm8_a z+d^@&OY7o!(Wv^MsOdetfLGW!?2Fw+0r-133ki5HOo8o_HlzHgQ~O{I z{w8XAOQ^s4q$s8sS?dWICTe>J3JvVA0&H5Ig2!3uCH8zf`;ZMq&^HS0X_3eP=9cjX zrkH6ryiyeE{k0ZCq?gTV+$PF>28bfPVVQ%-192Ai6e{)u$-cI}verjGQN}t6@4;(C zyLWCsH(wME-em(l_w7uGbShq&{K;gIjm(Xe>E-oxktVK+kOqB|%<^7qdsuSgG10?v zc~8lu7D5^fNWYmU$)6r3RN|X(h17Fj8zDqf(HBHtWGR@Joc%qWm66dQ8h9Qk%&sGG z0p8bD86g8jKIN1`e_1+eyRvS^+ftxb5^ia(tXfXUXpzu5TK>Mr4LS8$ViuSh2sv1c za~e~aU5}?{@AR6Uy)PFn1|tfxsR;}(NY~UlXy+3$1iuvRbfsX8XgEDrNGEC`q(jtl zjVjDvTr1>~g*GBCwksi{@bQA|Stz9U*(#IY8;ny%HA<79x>7U(z34>Mb|IugsJWN* z2mo_qnUF-z!@ZmOm)eDpp`sLMko=Q~8qBb^$U#kn^bu0Xn+pm09ueiGb8SHxP^%Nt zKSj9{L^d!tA-9P^&vR{I*1BIYXYnc0q>#nzYM zsjdA7TaA#uV%Wf$q8*`x_~K$A5N?x>s#YRoUyVSZOVSn9Yoj$vB4mshEBkI`6d^1S{pdI7#o;q05HdvQ zP-lrQsN87AGhLA+kTt#e!*deSA!cPAkFTZ|RZcVm%x;u%fLTsLcDC+_zuZ`c^F^BV z>0CzSBIHepi1CS-+_*=+YU2qC2nQeGq$(iAmFxi<(Yan$&uV$}F_ zg^e2T4MN^(-C_K>(X1<naK%WFI>gx)edkj+IA+5K`(=uzT@EEwmJD zTM;tIx@+@tW0lBTG;8zJM96;WdYYh&o$F8GTUvCnFAv=k&bZ4aaB6o|} zO0jBhX8LMdY>bfcI9m)RE}^jb4v|Q@Q=4ObLi*uUAr2lO|6JdtxGDvE_u0XS1whDBKE~Jq{kD6G3O)n%eE)`pBszR5j8k{Ponw5YBIHw(- dw3~we4*)yHD<)z|nFjy>002ovPDHLkV1k?i)QbQB literal 0 HcmV?d00001 diff --git a/images/issibg.png b/images/issibg.png new file mode 100644 index 0000000000000000000000000000000000000000..62f38439b2eb0b231ae97e46547a2ac42369819c GIT binary patch literal 2819 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 + + + + + + + + + + + diff --git a/index.php b/index.php new file mode 100644 index 0000000..086fc94 --- /dev/null +++ b/index.php @@ -0,0 +1,63 @@ + + + + + + + + + + + + + +

+
+
+
+

+
+ + + + +
+
+ + + + + + + + + + + + + + +
+ + + + + + + + + \ No newline at end of file diff --git a/js/auth.js b/js/auth.js new file mode 100644 index 0000000..cc7c1d4 --- /dev/null +++ b/js/auth.js @@ -0,0 +1,52 @@ +function saveToken(token) { + + return new Promise((resolve, reject) => { + localStorage.setItem("token", token); + localStorage.setItem("tokenTime", new Date().getTime()); + + let userId = getTokenID(token); + localStorage.setItem("userId", userId); + + $.ajax({ + url: "http://localhost:3000/users/" + userId, + success: function(data) { + let name = data.name; + localStorage.setItem("userName", name); + resolve(); + }, + error: reject, + }); + }); + +} + +function isLogged() { + return getToken() !== null; +} + +function logout() { + localStorage.removeItem("token"); + localStorage.removeItem("tokenTime"); + localStorage.removeItem("userId"); + localStorage.removeItem("userName"); +} + +function getToken() { + let token = localStorage.getItem("token"); + // Si no hay token, da un null + + if(token !== null) { + let currentDate = new Date().getTime(); + let tokenDate = localStorage.getItem("tokenTime"); + let diff = currentDate - tokenDate; // en ms + + if(diff > 60*60*1000) { + console.log("The token has expired."); + logout(); + token = null; + } + + } + + return token; +} \ No newline at end of file diff --git a/js/editphoto.js b/js/editphoto.js new file mode 100644 index 0000000..dc576ff --- /dev/null +++ b/js/editphoto.js @@ -0,0 +1,447 @@ +/*const queryString = window.location.search; +const urlParams = new URLSearchParams(queryString); +const id2 = urlParams.get('id');*/ + +const id = window.location.search.split('=')[1]; +let tagsAux = []; +let exTags = []; +let tagsServidor = []; +let cntTag = 0; +let cntNewTag = 0; +let oldTags = []; +let tagsId = []; +let newTags = []; +let removedTags = []; +errorCounter = 0; +let bw = []; + +loadServerTags(); + +loadBadWords(); + + + +function loadBadWords(){ + + $.ajax({ + url: "http://localhost:3000/badwords", + success: function(data){ + + for(i of data){ + bw.push(i.word); + } + }, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function(){console.log(bw)}); + + +} + +function loadServerTags(){ + + $.ajax({ + url: "http://localhost:3000/tags", + success: processServerTags, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }); +} + +function processServerTags(data){ + + + for (tag of data){ + + + tagsServidor.push(tag.tag); + tagsId.push(tag.id); + } + +} +// Función auxiliar para convertir un mensaje de error a un elemento HTML +// Si se usa mucho, sería aconsejable ponerla en un archivo común. +function getError(message) { + return ""; +} + +// Obtenemos los datos de la foto que queremos modificar y los mostramos en el formulario +function loadPhoto() { + axios.get('http://localhost:3000/photos/' + id) + .then(function (response) { + if (response.status === 200) { + showPhoto(response.data); + } + }) + .catch(console.log); +} + +// Función para mostrar los datos de la foto en el formulario cuando se haga la petición +function showPhoto(photo) { + let date = new Date(photo.date); + + let year = date.getFullYear(); + let month = date.getMonth() + 1; + let day = date.getDate(); + let date_string = `${day}/${month}/${year}`; + $("#date").text(date_string); + + $("#image").attr("src", photo.url); + $("#description-input").val(photo.description); + + let cnt = 0; + for(tag of photo.tags){ + console.log(tag); + oldTags.push(tag); + let aux = -1; + + for (var z= 0; z ${tagsServidor[aux]}`); + cnt++; + + + } + else{ + + $("li").last().append(`${tagsServidor[aux]}`); + cnt++; + } + $("span.badge").after(" "); + + tagsAux.push(tagsServidor[aux]);} + + } + $("#tags-input").val(photo.tags.join(", ")); + console.log(oldTags); +} + +// Ejecutaremos loadPhoto cuando la página esté lista +$(loadPhoto); + + + + + +$("#photo-form").submit(function (event) { + event.preventDefault(); + $("#errors-container").empty(); + + let description = $("#description-input").val(); + let tags = tagsAux; + + let tags_ = []; + + for( n = 0 ; naux){ + aux = l; + } + } + + aux++; + tagsId.push(aux); + newTags.push(aux); + + let tag = { + tag: w.val(), + + }; + let blbw = true; + for (zk of bw){ + + if (w.val().includes(zk)){ + + blbw = false; + } + } + if(blbw){ + $.ajax({ + + url: "http://localhost:3000/tags", + method: "POST", + data: JSON.stringify(tag), + contentType: "application/json", + success: true, + error: function(){ + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + });} + } + else if (tagsServidor.includes(w.val())&& !(tags.includes(w.val()))){ + tags.push(w.val()); + tags_.push(w.val()); + + } + } + + let aux2 = tags_; + tags = []; + + + for (p of newTags){ + + tags.push(p); + } + + + /*for(var numero = 0; numero +
+ +
+ +
+ +
+ +
+ `; + + $("#new-tags-list").append(html); + + + + + + + + + +} +function createTagBox(){ + cntTag++; + + let html = `
  • + +
    + + + +
    +
    + +
    +
  • `; + + $("#tags-list").append(html); + + for(numero = 0; numero${exTags[numero]}`); + } +} + + + +function processTags(){ + + + $.ajax({ + url: "http://localhost:3000/tags", + success: setTags, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }); +} + +function setTags(data){ + + for (tag of data) { + + + + let html =``; + + $("#input-tags-0").append(html); + + exTags.push(tag.tag); + + } + + + + +} + + +function del(s){ + + $(s).parent().parent().parent().remove(); + + + +} +processTags(); diff --git a/js/edittags.js b/js/edittags.js new file mode 100644 index 0000000..4132e14 --- /dev/null +++ b/js/edittags.js @@ -0,0 +1,327 @@ +/*const queryString = window.location.search; +const urlParams = new URLSearchParams(queryString); +const id2 = urlParams.get('id');*/ + +const id = window.location.search.split('=')[1]; +let tagsAux = []; +let exTags = []; +let tagsServidor = []; +let cntTag = 0; +let cntNewTag = 0; +let oldTags = []; +let tagsId = []; +let newTags = []; +let removedTags = []; +errorCounter = 0; +let bw = []; + +loadServerTags(); + +loadBadWords(); + + +function patchFotos(id2) { + + + $.ajax({ + url: "http://localhost:3000/photos", + success: function(data){processPatch(data,id2)}, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }); + + + +} + +function processPatch(data,id2) { + + for (var photo of data) { + console.log(photo.tags); + + if (photo.tags.includes(id2)) { + + + let n_tags = []; + + for (p of photo.tags) { + + if (p != id2) { + + n_tags.push(p); + } + } + + let tags = n_tags; + let t = { + tags + }; + + fetch('http://localhost:3000/photos/' + photo.id, { + method: "PATCH", + body: JSON.stringify(t), + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer ' + getToken(), + } + }).then(function (response) { + if (response.ok) { + console.log(photo.id); + } else { + $("#errors-container").append(getError(response.statusText)); + } + }).catch(console.log); + + } + } + + window.location.href = "index.php"; +} +function apply() { + + + let new_tag = $("#input-new-name-tag").val(); + console.log(new_tag); + let p = "#input-tags-0"; + + let w = $(p)[0]; + let id2 = -1; + let cnt = 0; + let accept = $("#input-accept")[0].checked; + for (tag2 of tagsServidor) { + + if (tag2 == w[w.selectedIndex].text) { + + id2 = tagsId[cnt]; + } + cnt++; + } + + let tag = new_tag; + let t = { + tag + }; + + if (accept) { + + fetch('http://localhost:3000/tags/' + id2, { + method: "DELETE", + headers: { + 'Authorization': 'Bearer ' + getToken(), + } + }).then(function (response) { + if (response.ok) { + patchFotos(id2); + } else { + console.log("Error al borrar la foto: " + response.statusText); + } + }).catch(function (error) { + console.log("Error al borrar la foto: " + error); + }); + + + + + } + + else { + + if (new_tag != null && $.trim(new_tag).length !== 0 && new_tag != undefined && !(tagsServidor.includes(new_tag))) { + + let palabrota = false; + for (z of bw) { + + + if (new_tag.includes(z)) { + + palabrota = true; + + } + } + + if (palabrota) { + + removeError($("#errors-container")); + + $("#errors-container").append( + getError("¡Cuidado con ese vocabulario!") + ); + } + + else { + + + + fetch('http://localhost:3000/tags/' + id2, { + method: "PATCH", + body: JSON.stringify(t), + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer ' + getToken(), + } + }).then(function (response) { + if (response.ok) { + window.location.href = "index.php"; + } else { + $("#errors-container").append(getError(response.statusText)); + } + }).catch(console.log); + + + } + + } + + + else { + + removeError($("#errors-container")); + + $("#errors-container").append( + getError("¡El contenido a modificar no es correcto!") + ); + + + + } + + + + } + + + + + + +} + +function getError(message) { + return ( + "" + ); +} + + +function removeError(error) { + $(error).empty(); +} + + +function loadBadWords() { + + $.ajax({ + url: "http://localhost:3000/badwords", + success: function (data) { + + for (i of data) { + bw.push(i.word); + } + }, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function () { console.log(bw) }); + + +} + +function loadServerTags() { + + $.ajax({ + url: "http://localhost:3000/tags", + success: processServerTags, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }); +} + +function processServerTags(data) { + + + for (tag of data) { + + + tagsServidor.push(tag.tag); + tagsId.push(tag.id); + } + +} +// Función auxiliar para convertir un mensaje de error a un elemento HTML +// Si se usa mucho, sería aconsejable ponerla en un archivo común. +function getError(message) { + return ""; +} + +// Obtenemos los datos de la foto que queremos modificar y los mostramos en el formulario + +// Función para mostrar los datos de la foto en el formulario cuando se haga la petición + + + +function processTags() { + + + $.ajax({ + url: "http://localhost:3000/tags", + success: setTags, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }); +} + +function setTags(data) { + + for (tag of data) { + + + + let html = ``; + + $("#input-tags-0").append(html); + + exTags.push(tag.tag); + + } + + + + +} + + + +function createNewTagBox() { + cntNewTag++; + let html = `
  • +
    + +
    + +
    + +
    + +
    +
  • `; + + $("#new-tags-list").append(html); + + + +} + + + +function del(s) { + + $(s).parent().parent().parent().remove(); + +} +processTags(); diff --git a/js/generalprofile.js b/js/generalprofile.js new file mode 100644 index 0000000..6b2bd91 --- /dev/null +++ b/js/generalprofile.js @@ -0,0 +1,732 @@ +const queryString = window.location.search; +const urlParams = new URLSearchParams(queryString); +const id = urlParams.get('userId'); +const PHOTOS_PER_ROW = 3; +let photoUsId = 0; +let likes = []; +let dislikes = []; +let list_img_id = []; +let list_us = []; +let tags = []; +let tagsId = []; + + +requestUser(); +requestTags(); +//requestLikes(); + +function requestTags(){ + + $.ajax({ + url: "http://localhost:3000/tags", + success: function (data) { + + for (var tag of data) { + + tags.push(tag.tag); + tagsId.push(tag.id); + } + + + + }, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(requestLikes); + +} + +function requestLikes(){ + + $.ajax({ + url: "http://localhost:3000/likes?userId="+localStorage.userId, + success: function(data){ + + for(w of data){ + + + likes.push(w.photoId); + } + }, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function(){ + + $.ajax({ + url: "http://localhost:3000/dislikes?userId="+localStorage.userId, + success: function(data2){ + + for (w2 of data2){ + + dislikes.push(w2.photoId); + } + }, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(requestPhotos); + }); + + + + +} + +function requestUser(){ + + $.ajax({ + url: "http://localhost:3000/users/"+id, + success: loadUser, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }); +} + + +function loadUser(data){ + + $("#user-user").append(data.user); + $("#user-name").append(data.name); + $("#user-surname").append(data.surname); + $("#user-phone").append(data.phone); + $("#user-mail").append(data.email); + + +} + +function requestPhotos(){ + + $.ajax({ + url: "http://localhost:3000/photos?userId="+id, + success: loadPhotos, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(processScore); + + +} + +function loadPhotos(data){ + + + let row = $("div.container-fluid > div.row").last(); + let counter = 0; + + //cambiamos photo Id por photo edit para el test + for (var photo of data) { + + if (photo.public) { + + let but_like = ``; + if (likes.includes(photo.id)) { + but_like = ``; + } + let but_dislike = ``; + + if (dislikes.includes(photo.id)) { + + but_dislike = ``; + } + let punt = 0; + + let html; + let tok = localStorage.userId; + + if (tok != photo.userId) { + html = `
    + +
    +
    ${photo.title}
    + + + +
    + + +
    +
    + +
    +
    +

    + ${photo.description} + +
    +

    +
    + ${but_like} + ${but_dislike} +
    +
    +

    Tags:

    +

    + +

    +
    + +
    Actions:

    + + + + + + + + +
    +
    `; + + + } + + else { + + html = `
    + +
    +
    ${photo.title}
    + + + +
    +

    + +
    + +

    + ${photo.description} + +
    +

    +
    + ${but_like} + ${but_dislike} +
    +
    +

    Tags:

    +

    + +

    +
    + +
    Actions:

    + + + + + + + + +
    +
    `; + + + } + + + let col = $.parseHTML(html); + row.append(col); + + let photo_date = photo.date; + let date = new Date(photo_date); + + let year = date.getFullYear(); + let month = date.getMonth() + 1; + let day = date.getDate(); + + + //let date_string = "Fecha: " + day + "/" + month + "/" + year; + let date_string = `Fecha: ${day}/${month}/${year}`; + $("p.date").last().append(date_string); + + + + let p_tags = $("p.card-text").last(); + + for (var tag of photo.tags) { + let aux = 0; + + for (var z = 0; z < tagsId.length; z++) { + console.log(tag); + if (tagsId[z] == tag) { + + aux = z; + console.log(aux); + } + } + if (aux != 0) { + + let tag_span = $("", { + "class": "badge badge-primary", + text: tags[aux], + }); + p_tags.append(tag_span); + } + } + $("span.badge").after(" "); + /* + for (var tag of photo.tags) { + let tag_span = $("", { + "class": "badge badge-primary", + text: tag, + }); + p_tags.append(tag_span); + } + $("span.badge").after(" ");*/ + + counter++; + photoUsId++; + list_img_id.push(photo.id); + list_us.push(photo.userId); + if (counter % PHOTOS_PER_ROW == 0) { + let new_row = $("
    ", { "class": "row" }); + $("div.container-fluid").append(new_row); + row = new_row; + } + + } + + } + + +} + +function storageLikesFromUser(data) { + + + for (var w of data) { + console.log(w); + + likes.push(w.photoId); + } + +} + + +function storageDislikesFromUser(data) { + + + for (var w of data) { + + + dislikes.push(w.photoId); + } + +} + +function like(photoId, zId, but) { + + let exist; + let likeId; + let existDistict; + + var promise = $.ajax({ + + url: "http://localhost:3000/likes?userId=" + localStorage.userId + "&photoId=" + photoId, + method: "GET", + + success: function (data) { + + + for (var element of data) { + + exist = true; + + likeId = element.id; + } + + }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + + + + promise.done( + + function () { + if (!(exist)) { + + var promise = $.ajax({ + + url: "http://localhost:3000/dislikes?userId=" + localStorage.userId + "&photoId=" + photoId, + method: "GET", + + success: function (data) { + + + + for (var element of data) { + + existDistict = true; + + likeId = element.id; + } + + }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + + promise.done(function () { + + if (existDistict) { + + $.ajax({ + + url: "http://localhost:3000/dislikes/" + likeId, + method: "DELETE", + + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + + but.parentNode.children[1].classList.add('btn-danger'); + but.parentNode.children[1].classList.remove('btn-success'); + + + + } + + let vote = { + + photoId: photoId, + userId: localStorage.userId + }; + but.classList.add('btn-success'); + but.classList.remove('btn-primary'); + + $.ajax({ + + url: "http://localhost:3000/likes", + method: "POST", + data: JSON.stringify(vote), + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }).then(function () { + + if (existDistict) { + ProcessOneScore(photoId, zId, +2); + } + else { + + ProcessOneScore(photoId, zId, +1); + } + + + }); + + + }); + + } + + else { + + $.ajax({ + + url: "http://localhost:3000/likes/" + likeId, + method: "DELETE", + + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }).then(ProcessOneScore(photoId, zId, -1)); + but.classList.remove('btn-success'); + but.classList.add('btn-primary'); + + } + + } + ); +} +function ProcessOneScore(spId, zId, val) { + + let v = "#image-score-" + zId; + let cnt = $(v).text(); + let a = cnt.split(":"); + let va = parseInt(a[1].trim(), 10); + $(v).empty(); + $(v).append("Score : " + (va + val)); + + + + + +} +function dislike(photoId, zId, but) { + + + let exist; + let likeId; + let existDistict; + + var promise = $.ajax({ + + url: "http://localhost:3000/dislikes?userId=" + localStorage.userId + "&photoId=" + photoId, + method: "GET", + + success: function (data) { + + + + for (var element of data) { + + exist = true; + + likeId = element.id; + } + + }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + + + promise.done( + + function () { + if (!(exist)) { + + + var promise = $.ajax({ + + url: "http://localhost:3000/likes?userId=" + localStorage.userId + "&photoId=" + photoId, + method: "GET", + + success: function (data) { + + + + for (var element of data) { + + existDistict = true; + + likeId = element.id; + } + + }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + + + promise.done(function () { + + if (existDistict) { + $.ajax({ + + url: "http://localhost:3000/likes/" + likeId, + method: "DELETE", + + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + but.parentNode.children[0].classList.add('btn-primary'); + but.parentNode.children[0].classList.remove('btn-success'); + } + but.classList.remove('btn-danger'); + but.classList.add('btn-success'); + let vote = { + + photoId: photoId, + userId: localStorage.userId + }; + + $.ajax({ + + url: "http://localhost:3000/dislikes", + method: "POST", + data: JSON.stringify(vote), + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }).done( + + function () { + if (existDistict) { + ProcessOneScore(photoId, zId, -2); + } + else { + + ProcessOneScore(photoId, zId, -1); + } + }); + + + }); + + } + + + else { + + $.ajax({ + + url: "http://localhost:3000/dislikes/" + likeId, + method: "DELETE", + + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }).done(ProcessOneScore(photoId, zId, +1)); + but.classList.remove('btn-success'); + but.classList.add('btn-danger'); + } + + } + ); + +} + + + +function processScore() { + let cnt = 0; + + var a = $.ajax({ + url: "http://localhost:3000/likes", + success: true, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function () { + + + for (var numero = 0; numero < photoUsId; numero++) { + + let cntL = 0; + + + + for (var w of a.responseJSON) { + + if (w.photoId == list_img_id[numero]) { + cntL++; + + } + } + cntL = cntL++; + let v = "#image-score-" + numero; + $(v).empty(); + $(v).append(cntL); + + + + } + + var z = $.ajax({ + url: "http://localhost:3000/dislikes", + success: true, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function () { + + for (var numero = 0; numero < photoUsId; numero++) { + + let cntD = 0; + + for (var w of z.responseJSON) { + + if (w.photoId == list_img_id[numero]) { + cntD = cntD - 1; + + } + } + + + let v = "#image-score-" + numero; + cnt = $(v).text(); + let va = parseInt(cnt, 10); + $(v).empty(); + $(v).append("Score : " + (cntD + va)); + + cnt = 0; + + + } + + + + }); + + + }); + + + + var b = $.ajax({ + url: "http://localhost:3000/dislikes", + success: true, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function () { + + + + }); +} + + +function deletePhoto(id) { + fetch('http://localhost:3000/photos/' + id, { + method: "DELETE", + headers: { + 'Authorization': 'Bearer ' + getToken(), + } + }).then(function (response) { + if (response.ok) { + window.location.href = "index.php"; + } else { + console.log("Error al borrar la foto: " + response.statusText); + } + }).catch(function (error) { + console.log("Error al borrar la foto: " + error); + }); +} diff --git a/js/header.js b/js/header.js new file mode 100644 index 0000000..5497bab --- /dev/null +++ b/js/header.js @@ -0,0 +1,92 @@ +let nav = $("#navbarNav"); +let tok = localStorage.token; + +let username; + +if(tok!=null){ +$.ajax({ + url: "http://localhost:3000/users/" + localStorage.userId, + success: function(data){ + processHeaderUser(data); + username = data.user; + console.log(username); + console.log(data); + + }, + error: console.log, +}); + +} + +if (tok==null){ + + let html = ` + `; + + nav.append(html); +} + +function processHeaderUser(data){ + let html2 = ` + + + `; + +nav.append(html2); + + + +} \ No newline at end of file diff --git a/js/indexgallery.js b/js/indexgallery.js new file mode 100644 index 0000000..53bcb1a --- /dev/null +++ b/js/indexgallery.js @@ -0,0 +1,1002 @@ +"use strict"; +const PHOTOS_PER_ROW = 3; +let photoUsId = 0; +let list_us = []; +let list = []; +let tags = []; +let tagsId = []; +let list_img_id = []; +let likes = []; +let dislikes = []; + + + +function processUsername(data) { + + + + username = data.user; + + +} + +function processPhotos(data) { + let row = $("div.container-fluid > div.row").last(); + let counter = 0; + + //cambiamos photo Id por photo edit para el test + for (var photo of data) { + + + if (photo.public) { + + let html = `
    + +
    +
    ${photo.title}
    + + + +
    +

    + +
    +

    + ${photo.description} + +
    +

    + +
    +

    Tags:

    +

    + +

    + + + + + +
    +
    `; + + let col = $.parseHTML(html); + row.append(col); + + let p_tags = $("p.card-text").last(); + for (var tag of photo.tags) { + let aux = -1; + + for (var z = 0; z < tagsId.length; z++) { + console.log(tag); + if (tagsId[z] == tag) { + + aux = z; + console.log(aux); + } + } + if (aux != -1) { + + let tag_span = $("", { + "class": "badge badge-primary", + text: tags[aux], + }); + p_tags.append(tag_span); + } + } + $("span.badge").after(" "); + + /*for (var tag of photo.tags) { + let tag_span = $("", { + "class": "badge badge-primary", + text: tag, + }); + p_tags.append(tag_span); + } + $("span.badge").after(" ");*/ + + let photo_date = photo.date; + let date = new Date(photo_date); + + let year = date.getFullYear(); + let month = date.getMonth() + 1; + let day = date.getDate(); + + + //let date_string = "Fecha: " + day + "/" + month + "/" + year; + let date_string = `Fecha: ${day}/${month}/${year}`; + $("p.date").last().append(date_string); + list_us.push(photo.userId); + + list_img_id.push(photo.id); + + counter++; + photoUsId++; + //list.push(photo.userId); + if (counter % PHOTOS_PER_ROW == 0) { + let new_row = $("
    ", { "class": "row" }); + $("div.container-fluid").append(new_row); + row = new_row; + } + + } + } +} + + + + +function processPhotosLogged(data) { + let row = $("div.container-fluid > div.row").last(); + let counter = 0; + + //cambiamos photo Id por photo edit para el test + for (var photo of data) { + + + if (photo.public) { + + let but_like = ``; + if (likes.includes(photo.id)) { + but_like = ``; + } + let but_dislike = ``; + + if (dislikes.includes(photo.id)) { + + but_dislike = ``; + } + let punt = 0; + + let html; + let tok = localStorage.userId; + + if (tok != photo.userId) { + html = `
    + +
    +
    ${photo.title}
    + + + +
    +

    + +
    +
    + +
    +
    +

    + ${photo.description} + +
    +

    +
    + ${but_like} + ${but_dislike} +
    +
    +

    Tags:

    +

    + +

    +
    + +
    Actions:

    + + + + + + + + +
    +
    `; + + + } + + else { + + html = `
    + +
    +
    ${photo.title}
    + + + +
    +

    + +
    + +

    + ${photo.description} + +
    +

    +
    + ${but_like} + ${but_dislike} +
    +
    +

    Tags:

    +

    + +

    +
    + +
    Actions:

    + + + + + + + + +
    +
    `; + + + + + } + + + + + + + + + + + let col = $.parseHTML(html); + row.append(col); + + let photo_date = photo.date; + let date = new Date(photo_date); + + let year = date.getFullYear(); + let month = date.getMonth() + 1; + let day = date.getDate(); + + + //let date_string = "Fecha: " + day + "/" + month + "/" + year; + let date_string = `Fecha: ${day}/${month}/${year}`; + $("p.date").last().append(date_string); + + + + let p_tags = $("p.card-text").last(); + + for (var tag of photo.tags) { + let aux = -1; + + for (var z = 0; z < tagsId.length; z++) { + console.log(tag); + if (tagsId[z] == tag) { + + aux = z; + console.log(aux); + } + } + if (aux != -1) { + + let tag_span = $("", { + "class": "badge badge-primary", + text: tags[aux], + }); + p_tags.append(tag_span); + } + } + $("span.badge").after(" "); + /* + for (var tag of photo.tags) { + let tag_span = $("", { + "class": "badge badge-primary", + text: tag, + }); + p_tags.append(tag_span); + } + $("span.badge").after(" ");*/ + + counter++; + photoUsId++; + list_img_id.push(photo.id); + list_us.push(photo.userId); + if (counter % PHOTOS_PER_ROW == 0) { + let new_row = $("
    ", { "class": "row" }); + $("div.container-fluid").append(new_row); + row = new_row; + } + + } + + + } +} + + + + +function deletePhoto(id) { + + let cnnnt =0; + + $.ajax({ + url: "http://localhost:3000/comments?photoId=" + id, + success: function(data){ + for(var element of data) + cnnnt++; + + }, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function(){ + + if(cnnnt == 0){ + fetch('http://localhost:3000/photos/' + id, { + method: "DELETE", + headers: { + 'Authorization': 'Bearer ' + getToken(), + } + }).then(function (response) { + if (response.ok) { + window.location.href = "index.php"; + } else { + console.log("Error al borrar la foto: " + response.statusText); + } + }).catch(function (error) { + console.log("Error al borrar la foto: " + error); + }); + + + + } + + else{ + + $("#errors-container").append( + getError("No se puede borrar una foto con comentarios.") + ); + + } + + + + }); + + +} + +function removeError(error) { + $(error).empty(); +} + +function getError(message) { + removeError( $("#errors-container")); + return ( + "" + ); +} +function loadPhotos() { + console.log("Cargando fotos..."); + let tok = localStorage.token + if (tok == null) { + + var a = $.ajax({ + url: "http://localhost:3000/tags", + success: function (data) { + + for (var tag of data) { + + tags.push(tag.tag); + tagsId.push(tag.id); + } + + + + }, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function () { + $.ajax({ + url: "http://localhost:3000/likes?userId=" + localStorage.userId, + success: storageLikesFromUser, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function () { + + $.ajax({ + url: "http://localhost:3000/dislikes?userId=" + localStorage.userId, + success: storageDislikesFromUser, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }) + + + }).done(function () { + + + var promise = $.ajax({ + url: "http://localhost:3000/photos?_sort=id&_order=desc", + success: processPhotos, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }); + + promise.then(function () { + // enviar(0); + + $.ajax({ + url: "http://localhost:3000/users", + success: processUssers, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function () { + + fillUsers(); + + }); + + + }).done(processScore);; + + + }); + + + + }); + + + + + + } + + else { + + var a = $.ajax({ + url: "http://localhost:3000/tags", + success: function (data) { + + for (var tag of data) { + + tags.push(tag.tag); + tagsId.push(tag.id); + } + + + + }, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function () { + $.ajax({ + url: "http://localhost:3000/likes?userId=" + localStorage.userId, + success: storageLikesFromUser, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function () { + + $.ajax({ + url: "http://localhost:3000/dislikes?userId=" + localStorage.userId, + success: storageDislikesFromUser, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }) + + + }).done(function () { + + + var promise = $.ajax({ + url: "http://localhost:3000/photos?_sort=id&_order=desc", + success: processPhotosLogged, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }); + + promise.then(function () { + // enviar(0); + + $.ajax({ + url: "http://localhost:3000/users", + success: processUssers, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function () { + + fillUsers(); + + }); + + + }).done(processScore); + + + + }); + + }); + + + + + } + +} + +function storageLikesFromUser(data) { + + + for (var w of data) { + console.log(w); + + likes.push(w.photoId); + } + +} + + +function storageDislikesFromUser(data) { + + + for (var w of data) { + + + dislikes.push(w.photoId); + } + +} + +function processScore() { + let cnt = 0; + + var a = $.ajax({ + url: "http://localhost:3000/likes", + success: true, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function () { + + + for (var numero = 0; numero < photoUsId; numero++) { + + let cntL = 0; + + + + for (var w of a.responseJSON) { + + if (w.photoId == list_img_id[numero]) { + cntL++; + + } + } + cntL = cntL++; + let v = "#image-score-" + numero; + $(v).empty(); + $(v).append(cntL); + + + + } + + var z = $.ajax({ + url: "http://localhost:3000/dislikes", + success: true, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function () { + + for (var numero = 0; numero < photoUsId; numero++) { + + let cntD = 0; + + for (var w of z.responseJSON) { + + if (w.photoId == list_img_id[numero]) { + cntD = cntD - 1; + + } + } + + + let v = "#image-score-" + numero; + cnt = $(v).text(); + let va = parseInt(cnt, 10); + $(v).empty(); + $(v).append("Score : " + (cntD + va)); + + cnt = 0; + + + } + + + + }); + + + }); + + + + var b = $.ajax({ + url: "http://localhost:3000/dislikes", + success: true, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function () { + + + + }); +} + +function processUssers(data) { + + for (var user of data) { + + list.push(user.user); + + } + + + +} + +function fillUsers() { + + for (var numero = 0; numero < photoUsId; numero++) { + let as = "#userlabel" + numero; + + + let p_user = $(as); + + p_user.append(list[list_us[numero] - 1]); + + + } + + +} + +// Llamar a loadPhotos cuando la página esté lista +$(loadPhotos); +function like(photoId, zId, but) { + + let exist; + let likeId; + let existDistict; + + var promise = $.ajax({ + + url: "http://localhost:3000/likes?userId=" + localStorage.userId + "&photoId=" + photoId, + method: "GET", + + success: function (data) { + + + for (var element of data) { + + exist = true; + + likeId = element.id; + } + + }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + + + + promise.done( + + function () { + if (!(exist)) { + + var promise = $.ajax({ + + url: "http://localhost:3000/dislikes?userId=" + localStorage.userId + "&photoId=" + photoId, + method: "GET", + + success: function (data) { + + + + for (var element of data) { + + existDistict = true; + + likeId = element.id; + } + + }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + + promise.done(function () { + + if (existDistict) { + + $.ajax({ + + url: "http://localhost:3000/dislikes/" + likeId, + method: "DELETE", + + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + + but.parentNode.children[1].classList.add('btn-danger'); + but.parentNode.children[1].classList.remove('btn-success'); + + + + } + + let vote = { + + photoId: photoId, + userId: localStorage.userId + }; + but.classList.add('btn-success'); + but.classList.remove('btn-primary'); + + $.ajax({ + + url: "http://localhost:3000/likes", + method: "POST", + data: JSON.stringify(vote), + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }).then(function () { + + if (existDistict) { + ProcessOneScore(photoId, zId, +2); + } + else { + + ProcessOneScore(photoId, zId, +1); + } + + + }); + + + }); + + } + + else { + + $.ajax({ + + url: "http://localhost:3000/likes/" + likeId, + method: "DELETE", + + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }).then(ProcessOneScore(photoId, zId, -1)); + but.classList.remove('btn-success'); + but.classList.add('btn-primary'); + + } + + } + ); +} +function ProcessOneScore(spId, zId, val) { + + let v = "#image-score-" + zId; + let cnt = $(v).text(); + let a = cnt.split(":"); + let va = parseInt(a[1].trim(), 10); + $(v).empty(); + $(v).append("Score : " + (va + val)); + + + + + +} +function dislike(photoId, zId, but) { + + + let exist; + let likeId; + let existDistict; + + var promise = $.ajax({ + + url: "http://localhost:3000/dislikes?userId=" + localStorage.userId + "&photoId=" + photoId, + method: "GET", + + success: function (data) { + + + + for (var element of data) { + + exist = true; + + likeId = element.id; + } + + }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + + + promise.done( + + function () { + if (!(exist)) { + + + var promise = $.ajax({ + + url: "http://localhost:3000/likes?userId=" + localStorage.userId + "&photoId=" + photoId, + method: "GET", + + success: function (data) { + + + + for (var element of data) { + + existDistict = true; + + likeId = element.id; + } + + }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + + + promise.done(function () { + + if (existDistict) { + $.ajax({ + + url: "http://localhost:3000/likes/" + likeId, + method: "DELETE", + + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + but.parentNode.children[0].classList.add('btn-primary'); + but.parentNode.children[0].classList.remove('btn-success'); + } + but.classList.remove('btn-danger'); + but.classList.add('btn-success'); + let vote = { + + photoId: photoId, + userId: localStorage.userId + }; + + $.ajax({ + + url: "http://localhost:3000/dislikes", + method: "POST", + data: JSON.stringify(vote), + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }).done( + + function () { + if (existDistict) { + ProcessOneScore(photoId, zId, -2); + } + else { + + ProcessOneScore(photoId, zId, -1); + } + }); + + + }); + + } + + + else { + + $.ajax({ + + url: "http://localhost:3000/dislikes/" + likeId, + method: "DELETE", + + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }).done(ProcessOneScore(photoId, zId, +1)); + but.classList.remove('btn-success'); + but.classList.add('btn-danger'); + } + + } + ); + +} + + + + + + + + + + + diff --git a/js/login.js b/js/login.js new file mode 100644 index 0000000..1afd01c --- /dev/null +++ b/js/login.js @@ -0,0 +1,41 @@ +function validateForm() { + let email = $("#input-email").val(); + let password = $("#input-password").val(); + + // Hay que validar este formulario como cualquier otro!!! + + let login_data = { + email, + password, + }; + + $.ajax({ + url: "http://localhost:3000/login", + method: "POST", + contentType: "application/json", + data: JSON.stringify(login_data), + + success: handleLogin, + error: function(){ + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el login y mostrárselo al usuario + }); + + return false; +} + +function getError(message) { + return ( + "" + ); +} +function handleLogin(data) { + let token = data.accessToken; + saveToken(token).then(function () { + window.location.href = "index.php"; + }); +} diff --git a/js/mypictures.js b/js/mypictures.js new file mode 100644 index 0000000..70d591a --- /dev/null +++ b/js/mypictures.js @@ -0,0 +1,683 @@ +const PHOTOS_PER_ROW = 3; +let photoUsId = 0; +let list_img_id = []; +let likes = []; +let dislikes = []; +let tags = []; +let tagsId = []; +const maxImg = 5; + + +function addNewPictures(){ + + if(maxImg>photoUsId){ + + window.location.href = "create_picture.php"; + + + } + + else{ + + $("#errors-container").append( + getError("Se ha superado el número máximo de fotos, borra 1 para poder añadir nuevas imágenes.") + ); + + } + + + +} + + +function getError(message) { + return ( + "" + ); +} +function deletePhoto(id) { + let cnnnt =0; + + $.ajax({ + url: "http://localhost:3000/comments?photoId=" + id, + success: function(data){ + for(var element of data) + cnnnt++; + + }, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function(){ + + if(cnnnt == 0){ + fetch('http://localhost:3000/photos/' + id, { + method: "DELETE", + headers: { + 'Authorization': 'Bearer ' + getToken(), + } + }).then(function (response) { + if (response.ok) { + window.location.href = "index.php"; + } else { + console.log("Error al borrar la foto: " + response.statusText); + } + }).catch(function (error) { + console.log("Error al borrar la foto: " + error); + }); + + + + } + + else{ + + $("#errors-container").append( + getError("No se puede borrar una foto con comentarios.") + ); + + } + + + + }); +} + + + +function processPhotos(data) { + let row = $("div.container-fluid > div.row").last(); + let counter = 0; + + //cambiamos photo Id por photo edit para el test + for (photo of data) { + console.log(likes); + let but_like = ``; + if (likes.includes(photo.id)) { + but_like = ``; + } + let but_dislike = ``; + + if (dislikes.includes(photo.id)) { + + but_dislike = ``; + } + + + let html = `
    +

    ${photo.title}

    +
    + + + + + +
    + +

    + ${photo.description} + +
    +

    +
    + ${but_like} + ${but_dislike} +
    +
    +

    Tags:

    +

    + +

    +
    + +
    Actions:

    + + + +
    +
    +
    `; + + photoUsId++; + list_img_id.push(photo.id); + + let col = $.parseHTML(html); + row.append(col); + let photo_date = photo.date; + let date = new Date(photo_date); + + let year = date.getFullYear(); + let month = date.getMonth() + 1; + let day = date.getDate(); + + + //let date_string = "Fecha: " + day + "/" + month + "/" + year; + let date_string = `Fecha: ${day}/${month}/${year}`; + $("p.date").last().append(date_string); + + let p_tags = $("p.card-text").last(); + + for (tag of photo.tags) { + let aux = -1; + + for (var z = 0; z < tagsId.length; z++) { + console.log(tag); + if (tagsId[z] == tag) { + + aux = z; + console.log(aux); + } + } + if (aux != -1) { + + let tag_span = $("", { + "class": "badge badge-primary", + text: tags[aux], + }); + p_tags.append(tag_span); + } + } + $("span.badge").after(" "); + + counter++; + if (counter % PHOTOS_PER_ROW == 0) { + let new_row = $("
    ", { "class": "row" }); + $("div.container-fluid").append(new_row); + row = new_row; + } + } +} + + + +function loadPhotos() { + console.log("Cargando fotos..."); + //let tok = localStorage.token + // if(tok == null){ + let tok = localStorage.userId; + $.ajax({ + url: "http://localhost:3000/photos?_sort=id&_order=desc&userId=" + tok, + success: processPhotos, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(processScore()); + + + +} + +function processScore() { + let cnt = 0; + + var a = $.ajax({ + url: "http://localhost:3000/likes", + success: true, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function () { + + + for (var numero = 0; numero < photoUsId; numero++) { + + let cntL = 0; + + + + for (var w of a.responseJSON) { + + if (w.photoId == list_img_id[numero]) { + cntL++; + + } + } + cntL = cntL++; + let v = "#image-score-" + numero; + $(v).empty(); + $(v).append(cntL); + + + + } + + var z = $.ajax({ + url: "http://localhost:3000/dislikes", + success: true, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function () { + + for (var numero = 0; numero < photoUsId; numero++) { + + let cntD = 0; + + for (var w of z.responseJSON) { + + if (w.photoId == list_img_id[numero]) { + cntD = cntD - 1; + + } + } + + + let v = "#image-score-" + numero; + cnt = $(v).text(); + let va = parseInt(cnt.trim(), 10); + $(v).empty(); + $(v).append("Score : " + (cntD + va)); + + cnt = 0; + + + } + + + + }); + + + }); + + + + var b = $.ajax({ + url: "http://localhost:3000/dislikes", + success: true, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function () { + + + + }); +} + +// Llamar a loadPhotos cuando la página esté lista + + + +function storageLikesFromUser(data) { + + + for (var w of data) { + console.log(w); + + likes.push(w.photoId); + } + +} + + +function storageDislikesFromUser(data) { + + + for (var w of data) { + + + dislikes.push(w.photoId); + } + +} + +function loadPage() { + + var a = $.ajax({ + url: "http://localhost:3000/tags", + success: function (data) { + + for (var tag of data) { + + tags.push(tag.tag); + tagsId.push(tag.id); + } + + + + }, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }); + + a.done(function () { + $.ajax({ + url: "http://localhost:3000/likes?userId=" + localStorage.userId, + success: storageLikesFromUser, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function () { + + $.ajax({ + url: "http://localhost:3000/dislikes?userId=" + localStorage.userId, + success: storageDislikesFromUser, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }) + + + }).done(loadPhotos); + }); + + +} + +function ProcessOneScore(spId, zId, val) { + + let v = "#image-score-" + zId; + cnt = $(v).text(); + let a = cnt.split(":"); + let va = parseInt(a[1].trim(), 10); + $(v).empty(); + $(v).append("Score : " + (va + val)); + + + + + +} +function like(photoId, zId, but) { + + let exist; + let likeId; + let existDistict; + + var promise = $.ajax({ + + url: "http://localhost:3000/likes?userId=" + localStorage.userId + "&photoId=" + photoId, + method: "GET", + + success: function (data) { + + + for (var element of data) { + + exist = true; + + likeId = element.id; + } + + }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + + + + promise.done( + + function () { + if (!(exist)) { + + var promise = $.ajax({ + + url: "http://localhost:3000/dislikes?userId=" + localStorage.userId + "&photoId=" + photoId, + method: "GET", + + success: function (data) { + + + + for (var element of data) { + + existDistict = true; + + likeId = element.id; + } + + }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + + promise.done(function () { + + if (existDistict) { + + $.ajax({ + + url: "http://localhost:3000/dislikes/" + likeId, + method: "DELETE", + + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + + but.parentNode.children[1].classList.add('btn-danger'); + but.parentNode.children[1].classList.remove('btn-success'); + + + + } + + let vote = { + + photoId: photoId, + userId: localStorage.userId + }; + but.classList.add('btn-success'); + but.classList.remove('btn-primary'); + + $.ajax({ + + url: "http://localhost:3000/likes", + method: "POST", + data: JSON.stringify(vote), + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }).then(function () { + + if (existDistict) { + ProcessOneScore(photoId, zId, +2); + } + else { + + ProcessOneScore(photoId, zId, +1); + } + + + }); + + + }); + + } + + else { + + $.ajax({ + + url: "http://localhost:3000/likes/" + likeId, + method: "DELETE", + + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }).then(ProcessOneScore(photoId, zId, -1)); + but.classList.remove('btn-success'); + but.classList.add('btn-primary'); + + } + + } + ); +} + + +function dislike(photoId, zId, but) { + + + let exist; + let likeId; + let existDistict; + + var promise = $.ajax({ + + url: "http://localhost:3000/dislikes?userId=" + localStorage.userId + "&photoId=" + photoId, + method: "GET", + + success: function (data) { + + + + for (var element of data) { + + exist = true; + + likeId = element.id; + } + + }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + + + promise.done( + + function () { + if (!(exist)) { + + + var promise = $.ajax({ + + url: "http://localhost:3000/likes?userId=" + localStorage.userId + "&photoId=" + photoId, + method: "GET", + + success: function (data) { + + + + for (var element of data) { + + existDistict = true; + + likeId = element.id; + } + + }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + + + promise.done(function () { + + if (existDistict) { + $.ajax({ + + url: "http://localhost:3000/likes/" + likeId, + method: "DELETE", + + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + but.parentNode.children[0].classList.add('btn-primary'); + but.parentNode.children[0].classList.remove('btn-success'); + } + but.classList.remove('btn-danger'); + but.classList.add('btn-success'); + let vote = { + + photoId: photoId, + userId: localStorage.userId + }; + + $.ajax({ + + url: "http://localhost:3000/dislikes", + method: "POST", + data: JSON.stringify(vote), + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }).done( + + function () { + if (existDistict) { + ProcessOneScore(photoId, zId, -2); + } + else { + + ProcessOneScore(photoId, zId, -1); + } + }); + + + }); + + } + + + else { + + $.ajax({ + + url: "http://localhost:3000/dislikes/" + likeId, + method: "DELETE", + + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }).done(ProcessOneScore(photoId, zId, +1)); + but.classList.remove('btn-success'); + but.classList.add('btn-danger'); + } + + } + ); + +} + + + + + + + +$(loadPage); diff --git a/js/photoDetail.js b/js/photoDetail.js new file mode 100644 index 0000000..2e89d82 --- /dev/null +++ b/js/photoDetail.js @@ -0,0 +1,735 @@ +/*const queryString = window.location.search; +const urlParams = new URLSearchParams(queryString); +const id = urlParams.get('photoId');*/ +const id = window.location.search.split('=')[1]; +const photoId = id; +let photoUsId = 0; +let list_img_id = []; +let likes = []; +let dislikes = []; +let list = []; +let tags = []; +let tagsId = []; +let photId; + +list_img_id.push(window.location.search.split('=')[1]); +/* +function editPhoto() { + window.location.href = "photo_edit.php?id=" + id; +} + +function deletePhoto() { + fetch('http://localhost:3000/photos/' + id, { + method: "DELETE", + headers: { + 'Authorization': 'Bearer ' + getToken(), + } + }).then(function(response) { + if(response.ok) { + window.location.href = "index.php"; + } else { + console.log("Error al borrar la foto: " + response.statusText); + } + }).catch(function(error){ + console.log("Error al borrar la foto: " + error); + }); + } +*/ +function processPhotoLoad(data) { + $("#image").attr("src", data.url); + $("#image-title").text(data.title); + $("#image-desc").text(data.description); + + loadComments(data.id); + photId = data.id; + let photo_date = data.date; + let date = new Date(photo_date); + + let year = date.getFullYear(); + let month = date.getMonth() + 1; + let day = date.getDate(); + let tok = localStorage.userId; + list_img_id.push(data.id); + let but_like = ``; + if (likes.includes(data.id)) { + but_like = ``; + } + let but_dislike = ``; + console.log( " aaaaaa "+ dislikes ); + if (dislikes.includes(data.id)) { + + but_dislike = ``; + } + + //let date_string = "Fecha: " + day + "/" + month + "/" + year; + let date_string = `Fecha: ${day}/${month}/${year}`; + $("#image-date").text(date_string); + let p_tags = $("p.card-text").last(); + for (tag of data.tags) { + let aux = -1; + + for (var z = 0; z < tagsId.length; z++) { + console.log(tag); + if (tagsId[z] == tag) { + + aux = z; + console.log(aux); + } + } + if (aux != -1) { + + let tag_span = $("", { + "class": "badge badge-primary", + text: tags[aux], + }); + p_tags.append(tag_span); + } + } + $("span.badge").after(" "); + $("#votebutton").append(but_like); + $("#votebutton").append(but_dislike); + let score = data.upvotes - data.downvotes; + let score_text = "Puntuación: " + score; + $("#image-score").text(score_text); + + if (tok == data.userId) { + + $('#follow').remove(); + } +} + +function processUssers(data) { + + for (var user of data) { + + list.push(user.user); + + } + + + +} + +let bw = []; +loadBadWords(); + +function loadBadWords(){ + + $.ajax({ + url: "http://localhost:3000/badwords", + success: function(data){ + + for(i of data){ + bw.push(i.word); + } + }, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function(){console.log(bw)}); + + +} + +function addComment(){ + + let comm = $("#input-comment").val(); + + let palabrota = false; + for(z of bw){ + + + if(comm.includes(z)){ + + palabrota = true; + } + } + + if(palabrota){ + + $("#errors-container").append( + getError("Esa boca.") + ); + } + + else{ + + let comment ={ + + userId: localStorage.userId, + comment: comm, + photoId : photId + } + + $.ajax({ + + url: "http://localhost:3000/comments", + method: "POST", + data: JSON.stringify(comment), + contentType: "application/json", + success: function(){ + + location.reload(); + }, + error: function(){ + $("#errors-container").append( + getError("Vaya ha habido un fallo subiendo ese comentario.") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + + + + } + +} + +function getError(message) { + removeError( $("#errors-container")); + return ( + "" + ); +} + + +function removeError(error) { + $(error).empty(); +} + + +function loadComments(pid){ + + $.ajax({ + url: "http://localhost:3000/users", + success: processUssers, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function(){ + + + $.ajax({ + url: "http://localhost:3000/comments?photoId=" + pid, + success: function(data){ + + + for(com of data){ + + $("#image-comments").append( + + `
    +
    +
    +
    + +
    ${list[com.userId-1]}
    + + +
    +
    +

    ${com.comment}

    +
    + + + +
    + +

    ` + + + ) + + + } + + + }, + error: console.log, + }); + + + + + }); + + + + + +} + + + +function loadPhoto() { + if (id === null) { + alert("Please provide a photo ID"); + } else { + $.ajax({ + url: "http://localhost:3000/photos/" + id, + success: processPhotoLoad, + error: console.log, + }).done(processScore()); + } +} +function storageLikesFromUser(data) { + + + for (var w of data) { + console.log(w); + + likes.push(w.photoId); + } + +} + + +var a = $.ajax({ + url: "http://localhost:3000/tags", + success: function (data) { + + for (var tag of data) { + + tags.push(tag.tag); + tagsId.push(tag.id); + } + + + + }, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } +}); + +a.done(function(){$.ajax({ + url: "http://localhost:3000/likes?userId=" + localStorage.userId, + success: storageLikesFromUser, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } +}).done(function () { + + $.ajax({ + url: "http://localhost:3000/dislikes?userId=" + localStorage.userId, + success: storageDislikesFromUser, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }) + + +}).done(loadPhoto);}); +function storageDislikesFromUser(data) { + + + for (var w of data) { + + + dislikes.push(w.photoId); + + } + console.log(dislikes); +} + + // Cargar la foto cuando la página esté lista + +function processScore() { + let cnt = 0; + + var a = $.ajax({ + url: "http://localhost:3000/likes?photoId=" + id, + success: true, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function () { + + + + + let cntL = 0; + + + + for (var w of a.responseJSON) { + + + cntL++; + + + } + cntL = cntL++; + let v = "#image-score-0"; + $(v).empty(); + $(v).append(cntL); + + + + + + + var z = $.ajax({ + url: "http://localhost:3000/dislikes?photoId=" + id, + success: true, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function () { + + + + let cntD = 0; + + for (var w of z.responseJSON) { + + + cntD = cntD - 1; + + + } + + + let v = "#image-score-0"; + cnt = $(v).text(); + let va = parseInt(cnt, 10); + $(v).empty(); + $(v).append("Score : " + (cntD + va)); + + cnt = 0; + + + + + + + }); + + + }); + + + + var b = $.ajax({ + url: "http://localhost:3000/dislikes", + success: true, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function () { + + + + }); +} + +// Llamar a loadPhotos cuando la página esté lista + +function like(photoId, zId, but) { + + let exist; + let likeId; + let existDistict; + + var promise = $.ajax({ + + url: "http://localhost:3000/likes?userId=" + localStorage.userId + "&photoId=" + photoId, + method: "GET", + + success: function (data) { + + + for (var element of data) { + + exist = true; + + likeId = element.id; + } + + }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + + + + promise.done( + + function () { + if (!(exist)) { + + var promise = $.ajax({ + + url: "http://localhost:3000/dislikes?userId=" + localStorage.userId + "&photoId=" + photoId, + method: "GET", + + success: function (data) { + + + + for (var element of data) { + + existDistict = true; + + likeId = element.id; + } + + }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + + promise.done(function () { + + if (existDistict) { + + $.ajax({ + + url: "http://localhost:3000/dislikes/" + likeId, + method: "DELETE", + + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + + but.parentNode.children[1].classList.add('btn-danger'); + but.parentNode.children[1].classList.remove('btn-success'); + + + + } + + let vote = { + + photoId: photoId, + userId: localStorage.userId + }; + but.classList.add('btn-success'); + but.classList.remove('btn-primary'); + + $.ajax({ + + url: "http://localhost:3000/likes", + method: "POST", + data: JSON.stringify(vote), + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }).then(function () { + + if (existDistict) { + ProcessOneScore(photoId, zId, +2); + } + else { + + ProcessOneScore(photoId, zId, +1); + } + + + }); + + + }); + + } + + else { + + $.ajax({ + + url: "http://localhost:3000/likes/" + likeId, + method: "DELETE", + + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }).then(ProcessOneScore(photoId, zId, -1)); + but.classList.remove('btn-success'); + but.classList.add('btn-primary'); + + } + + } + ); +} + + +function dislike(photoId, zId, but) { + + + let exist; + let likeId; + let existDistict; + + var promise = $.ajax({ + + url: "http://localhost:3000/dislikes?userId=" + localStorage.userId + "&photoId=" + photoId, + method: "GET", + + success: function (data) { + + + + for (var element of data) { + + exist = true; + + likeId = element.id; + } + + }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + + + promise.done( + + function () { + if (!(exist)) { + + + var promise = $.ajax({ + + url: "http://localhost:3000/likes?userId=" + localStorage.userId + "&photoId=" + photoId, + method: "GET", + + success: function (data) { + + + + for (var element of data) { + + existDistict = true; + + likeId = element.id; + } + + }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + + + promise.done(function () { + + if (existDistict) { + $.ajax({ + + url: "http://localhost:3000/likes/" + likeId, + method: "DELETE", + + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + but.parentNode.children[0].classList.add('btn-primary'); + but.parentNode.children[0].classList.remove('btn-success'); + } + but.classList.remove('btn-danger'); + but.classList.add('btn-success'); + let vote = { + + photoId: photoId, + userId: localStorage.userId + }; + + $.ajax({ + + url: "http://localhost:3000/dislikes", + method: "POST", + data: JSON.stringify(vote), + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }).done( + + function () { + if (existDistict) { + ProcessOneScore(photoId, zId, -2); + } + else { + + ProcessOneScore(photoId, zId, -1); + } + }); + + + }); + + } + + + else { + + $.ajax({ + + url: "http://localhost:3000/dislikes/" + likeId, + method: "DELETE", + + contentType: "application/json", + success: function () { }, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }).done(ProcessOneScore(photoId, zId, +1)); + but.classList.remove('btn-success'); + but.classList.add('btn-danger'); + } + + } + ); + +} + + +function ProcessOneScore(spId, zId, val) { + + let v = "#image-score-" + zId; + cnt = $(v).text(); + let a = cnt.split(":"); + let va = parseInt(a[1].trim(), 10); + $(v).empty(); + $(v).append("Score : " + (va + val)); + + + + + +} \ No newline at end of file diff --git a/js/register.js b/js/register.js new file mode 100644 index 0000000..a6f3820 --- /dev/null +++ b/js/register.js @@ -0,0 +1,156 @@ +let errorCounterBw = 0; +let bw = []; +loadBadWords(); + +function loadBadWords(){ + + $.ajax({ + url: "http://localhost:3000/badwords", + success: function(data){ + + for(i of data){ + bw.push(i.word); + } + }, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function(){console.log(bw)}); + + +} + + +function validateForm() { + $("#errors-container").empty(); + + let errorCounter = 0; + + console.log("Asacatun"); + let nombre = $("#input-name").val(); + let apellidos = $("#input-surname").val(); + let telefono = $("#input-telephone").val(); + let email = $("#input-email").val(); + let usuario = $("#input-username").val(); + let password1 = $("#input-password1").val(); + let password2 = $("#input-password2").val(); + let accept = $("#input-accept")[0].checked; + console.log(accept); + console.log("Inicio variables"); + if (nombre.trim().length < 3) { + $("#errors-container").append( + getError("El nombre debe tener al menos 3 caracteres de longitud") + ); + errorCounter++; + } + + if (apellidos.trim().length < 6) { + $("#errors-container").append( + getError("Los apellidos deben tener al menos 6 caracteres de longitud") + ); + errorCounter++; + } + + if ( + !new RegExp("^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-s./0-9]*$").test(telefono) + ) { + $("#errors-container").append(getError("El telefono esta mal formateado")); + errorCounter++; + } + + if (password1 != password2) { + $("#errors-container").append( + getError("Las contraseñas deben ser iguales") + ); + errorCounter++; + } + + if (accept){ + + + } + else{ + + errorCounter++; + } + console.log("Trato variables"); + console.log(errorCounter); + + if (errorCounter === 0) { + let user = { + name: nombre, + surname: apellidos, + phone: telefono, + email: email, + password: password1, + user: usuario, + }; + for(z of bw){ + + if(nombre.includes(z)||apellidos.includes(z)||telefono.includes(z)||email.includes(z)||usuario.includes(z)){ + errorCounterBw++; + console.log("palabramala");} + } + if(errorCounterBw==0){ + $.ajax({ + + url: "http://localhost:3000/register", + method: "POST", + data: JSON.stringify(user), + contentType: "application/json", + success: handleRegister, + error: function(data){ + $("#errors-container").append( + getError(data.responseJSON) + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }); + } + else{ + + $("#errors-container").append( + getError("¡Cuidado con ese vocabulario!") + ); + errorCounterBw = 0; + } + + + } + + return false; +} + +function handleRegister(data) { + let token = data.accessToken; + saveToken(token).then(() => { + window.location.href = "index.php"; + }); +} + +/////////////////////////////////////////////////////////////////////////////// + +function getError(message) { + return ( + "" + ); +} + + +function removeError(error) { + $(error).remove(); +} + +$(document).ready(function () { + $("#name").change(function () { + input = $(this); + if (input.val().length < 3) { + input.removeClass("is-valid"); + input.addClass("is-invalid"); + } else { + input.removeClass("is-invalid"); + input.addClass("is-valid"); + } + }); +}); diff --git a/js/scripts.js b/js/scripts.js new file mode 100644 index 0000000..7577ba6 --- /dev/null +++ b/js/scripts.js @@ -0,0 +1,24 @@ +/*let date = new Date(); + +let day = date.getDate(); +let month = date.getMonth() + 1; // Months are 0-based for some reason... +let year = date.getFullYear(); + +let hour = date.getHours(); +let minutes = date.getMinutes(); +let seconds = date.getSeconds(); + +// Add a leading 0 if they're only one digit +hour = hour.toString().padStart(2, "0"); +minutes = minutes.toString().padStart(2, "0"); +seconds = seconds.toString().padStart(2, "0"); +*/ +/* + Print the current date + and a message to report that we're finished +*/ +/* +console.log("Loading finished.") +console.log(`The current time is: ${day}/${month}/${year} ${hour}:${minutes}:${seconds}`);*/ + +// Alternatively, we can use alert() to emit a popup message diff --git a/js/token_decode.js b/js/token_decode.js new file mode 100644 index 0000000..31e7c2a --- /dev/null +++ b/js/token_decode.js @@ -0,0 +1,128 @@ +(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o> (-2 * bc & 6)) : 0 + ) { + // try to find character in table (0-63, not found => -1) + buffer = chars.indexOf(buffer); + } + return output; +} + + +module.exports = typeof window !== 'undefined' && window.atob && window.atob.bind(window) || polyfill; + +},{}],2:[function(require,module,exports){ +var atob = require('./atob'); + +function b64DecodeUnicode(str) { + return decodeURIComponent(atob(str).replace(/(.)/g, function (m, p) { + var code = p.charCodeAt(0).toString(16).toUpperCase(); + if (code.length < 2) { + code = '0' + code; + } + return '%' + code; + })); +} + +module.exports = function(str) { + var output = str.replace(/-/g, "+").replace(/_/g, "/"); + switch (output.length % 4) { + case 0: + break; + case 2: + output += "=="; + break; + case 3: + output += "="; + break; + default: + throw "Illegal base64url string!"; + } + + try{ + return b64DecodeUnicode(output); + } catch (err) { + return atob(output); + } +}; + +},{"./atob":1}],3:[function(require,module,exports){ +'use strict'; + +var base64_url_decode = require('./base64_url_decode'); + +function InvalidTokenError(message) { + this.message = message; +} + +InvalidTokenError.prototype = new Error(); +InvalidTokenError.prototype.name = 'InvalidTokenError'; + +module.exports = function (token,options) { + if (typeof token !== 'string') { + throw new InvalidTokenError('Invalid token specified'); + } + + options = options || {}; + var pos = options.header === true ? 0 : 1; + try { + return JSON.parse(base64_url_decode(token.split('.')[pos])); + } catch (e) { + throw new InvalidTokenError('Invalid token specified: ' + e.message); + } +}; + +module.exports.InvalidTokenError = InvalidTokenError; + +},{"./base64_url_decode":2}],4:[function(require,module,exports){ +(function (global){ +/* + * + * This is used to build the bundle with browserify. + * + * The bundle is used by people who doesn't use browserify. + * Those who use browserify will install with npm and require the module, + * the package.json file points to index.js. + */ +var jwt_decode = require('./lib/index'); +let getTokenID = token => jwt_decode(token).sub; + +//use amd or just throught to window object. +if (typeof global.window.define == 'function' && global.window.define.amd) { + global.window.define('jwt_decode', function () { return jwt_decode; }); + global.window.define('getTokenID', function () { return getTokenID; }); +} else if (global.window) { + global.window.jwt_decode = jwt_decode; + global.window.getTokenID = getTokenID; +} +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) + +},{"./lib/index":3}]},{},[4]) + diff --git a/js/uploadphoto.js b/js/uploadphoto.js new file mode 100644 index 0000000..686448f --- /dev/null +++ b/js/uploadphoto.js @@ -0,0 +1,453 @@ +function getError(message) { + return ""; +} + +let cntTag = 0; +let cntNewTag = 0; +let photoNumber = 0; +let errorCounter = 0; + +let tagsId = []; +let tagsServidor = []; +let tags = []; +let newTags = []; +loadServerTags(); +const maxImg = 5; +let bw = []; + +loadPhotosNumber(); +loadBadWords(); + +function loadBadWords() { + + $.ajax({ + url: "http://localhost:3000/badwords", + success: function (data) { + + for (i of data) { + bw.push(i.word); + } + }, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function () { console.log(bw) }); + + +} + +function loadPhotosNumber() { + + + $.ajax({ + url: "http://localhost:3000/photos?userId=" + localStorage.userId, + success: function (data) { + + for (i of data) { + photoNumber++; + console.log(photoNumber); + } + }, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function () { + + + if (maxImg <= photoNumber) { + $("#errors-container").append( + getError("Se ha superado el número máximo de fotos, borra 1 para poder añadir nuevas imágenes.") + ); + } + + }); + + +} +function loadServerTags() { + + $.ajax({ + url: "http://localhost:3000/tags", + success: processServerTags, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }); +} + +function processServerTags(data) { + + + for (tag of data) { + + + tagsServidor.push(tag.tag); + tagsId.push(tag.id); + } + +} + +function getError(message) { + return ( + "" + ); +} + +$("form").submit(function (event) { + + photoNumber = 0; + + $.ajax({ + url: "http://localhost:3000/photos?userId=" + localStorage.userId, + success: function (data) { + + for (i of data) { + photoNumber++; + console.log(photoNumber); + } + }, + error: function (error) { + console.log("Ha ocurrido un error: " + error.toString()); + } + }).done(function () { + + + if (maxImg <= photoNumber) { + $("#errors-container").append( + getError("Se ha superado el número máximo de fotos, borra 1 para poder añadir nuevas imágenes.") + ); + } + + else { + + let tags = []; + + if (maxImg > photoNumber) { + + event.preventDefault(); + $("#errors-container").empty(); + + let url = $("#input-url").val(); + let title = $("#input-title").val(); + + + let description = $("#input-description").val(); + //let tags = $("#input-tags").val().split(",").map(tag => tag.trim()); + + + + for (n = 0; n < cntTag + 1; n++) { + + let p = "#input-tags-" + n; + + let w = $(p)[0]; + console.log(w); + + if (w != undefined && w[w.selectedIndex].text != null && w[w.selectedIndex].text != undefined && !(tags.includes(w[w.selectedIndex].text))) { + + tags.push(w[w.selectedIndex].text); + } + } + + for (n = 0; n < cntNewTag + 1; n++) { + + let p = "#input-new-tags-" + n; + + let w = $(p); + + if (w.val() != null && $.trim(w.val()).length !== 0 && w != undefined && !(tags.includes(w.val())) && !(tagsServidor.includes(w.val()))) { + + tags.push(w.val()); + tagsServidor.push(w.val()); + let aux = 0; + for (l of tagsId) { + + if (l > aux) { + aux = l; + } + } + + aux++; + tagsId.push(aux); + newTags.push(aux); + + + let tag = { + tag: w.val(), + + }; + + if (errorCounter == 0) { + let blbw = true; + for (zk of bw) { + + if (w.val().includes(zk)) { + + blbw = false; + } + } + if (maxImg > photoNumber) { + if (blbw) { + $.ajax({ + + url: "http://localhost:3000/tags", + method: "POST", + data: JSON.stringify(tag), + contentType: "application/json", + success: true, + error: function () { + $("#errors-container").append( + getError("Ha habido un error") + ); + }, // Hay que gestionar este posible error en el registro y mostrárselo al usuario + }).done(function () { + + window.location.href = "mypictures.php"; + }); + } + + } + + else { + + $("#errors-container").append( + getError("Se ha superado el número máximo de fotos, borra 1 para poder añadir nuevas imágenes.") + ); + } + + + } + } + else if (tagsServidor.includes(w.val()) && !(tags.includes(w.val()))) { + tags.push(w.val()); + + } + } + + /*let tagsString =""+tags[0]; + + for(numero = 1; numero${tag.tag}`; + + $("#input-tags-0").append(html); + + tags.push(tag.tag); + + } + + + + +} + +function createNewTagBox() { + cntNewTag++; + let html = `
  • +
    + +
    + +
    + +
    + +
    +
  • `; + + $("#new-tags-list").append(html); + + + + + + + + + +} +function createTagBox() { + cntTag++; + + let html = `
  • + +
    + + + +
    +
    + +
    +
  • `; + + $("#tags-list").append(html); + + for (numero = 0; numero < tags.length; numero++) { + + let input = "#input-tags-" + cntTag; + $(input).append(``); + } +} + +processTags(); + +function del(s) { + + $(s).parent().parent().parent().remove(); + + + +} \ No newline at end of file diff --git a/login.php b/login.php new file mode 100644 index 0000000..9f7d1f7 --- /dev/null +++ b/login.php @@ -0,0 +1,58 @@ + + + + + + + + + +

    Log in!

    +
    +

    Welcome to PixiArts!

    + +
    + + + + + +
    +
    +
    +
    + +
    +
    +


    +
    + +
    + +
    +
    + +


    +
    + +
    + +
    +
    +


    + +


    +
    +
    + +
    +
    +

    + +
    +
    + + + + + \ No newline at end of file diff --git a/mypictures.php b/mypictures.php new file mode 100644 index 0000000..4073b69 --- /dev/null +++ b/mypictures.php @@ -0,0 +1,49 @@ + + + + + + + + + + +
    +
    +
    +
    +
    +

    Hi @loremIpsum

    +

    +

    My pictures!



    + +
    + +
    + + + + + + + + +
    + + + +
    + + + + +
    + + + + + + + + + \ No newline at end of file diff --git a/myprofile.php b/myprofile.php new file mode 100644 index 0000000..44f2daf --- /dev/null +++ b/myprofile.php @@ -0,0 +1,367 @@ + + + + + + + + + + + + + +
    + +
    + +
    +
    +
    +
    + +
    @user4
    + + +
    +
    +

    Likes: 1000
    + Dislikes:1000
    + Pictures: 120 +

    +
    + + + +
    + + +

    My profile!



    + +
    + + +
    + +
    +

    Last updates

    +
    +

    1.Title

    +
    + + + + + +
    + +
    Date: 02/03/2020
    + Description: Lorem Ipsum Dolor Sit Amet + +
    +

    Score: +30

    + + +
    +

    Tags:

    +
    + +
    +
    +
    + +
    + +
    +

    2.Title

    +
    + + + + + +
    + +
    Date: 02/03/2020
    + Description: Lorem Ipsum Dolor Sit Amet + +
    +

    Score: +30

    + + +
    +

    Tags:

    +
    + +
    +
    +
    +


    + +
    +
    +

    Top

    +
    +

    1.Title

    +
    + + + + + +
    + +
    Date: 02/03/2020
    + Description: Lorem Ipsum Dolor Sit Amet + +
    +

    Score: +30

    + + +
    + +

    Tags:

    +
    + + + + +
    +
    +
    +
    + +
    +
    +

    Following

    + +
    + +
    + + +
    @user1
    + +
    Likes: 2000
    +
    Dislikes: 1234
    + + + +

    +
    + + +
    @user1
    + +
    Likes: 2000
    +
    Dislikes: 1234
    + + + +

    +
    + + +
    @user2
    + +
    Likes: 2000
    +
    Dislikes: 1234
    + + + +

    +
    + + +
    @user3
    + +
    Likes: 2000
    +
    Dislikes: 1234
    + + + +

    +
    + + +
    @user4
    + +
    Likes: 2000
    +
    Dislikes: 1234
    + + + +

    +
    + + +
    @user5
    + +
    Likes: 2000
    +
    Dislikes: 1234
    + + + +

    +
    + + +
    @user6
    + +
    Likes: 2000
    +
    Dislikes: 1234
    + + + +

    + + + +
    +
    + +
    +
    +

    Followers

    +
    + + +
    + + +
    @user1
    + +
    Likes: 2000
    +
    Dislikes: 1234
    + + + +

    +
    + + +
    @user1
    + +
    Likes: 2000
    +
    Dislikes: 1234
    + + + +

    +
    + + +
    @user2
    + +
    Likes: 2000
    +
    Dislikes: 1234
    + + + +

    +
    + + +
    @user3
    + +
    Likes: 2000
    +
    Dislikes: 1234
    + + + +

    +
    + + +
    @user4
    + +
    Likes: 2000
    +
    Dislikes: 1234
    + + + +

    +
    + +
    @user5
    + +
    Likes: 2000
    +
    Dislikes: 1234
    + + + +

    +
    + + +
    @user6
    + +
    Likes: 2000
    +
    Dislikes: 1234
    + + + +

    + +
    +
    +
    + + + +
    + +
    + + + + + + + + + + + + + + +
    + + + + + + + + + \ No newline at end of file diff --git a/photo_detail.php b/photo_detail.php new file mode 100644 index 0000000..7ff03fa --- /dev/null +++ b/photo_detail.php @@ -0,0 +1,89 @@ + + + + + + Detalles foto + + + + + +
    + +
    +
    +
    + +
    +
    +
    +

    Photo detail

    +
    +
    + +
    + +
    + +
    + +
    + +
    +

    +
    @user
    +
    + +
    +
    Date: 02/03/2020
    + Description: Lorem Ipsum Dolor Sit Amet + +
    +

    +
    +
    +

    Tags:

    +

    + +

    +
    + +
    + + +
    +
    +
    +

    Comments:

    +
    +
    +
    + + +
    +
    + +
    + +
    + + +
    + + + + +
    + + + + + + \ No newline at end of file diff --git a/photo_edit.php b/photo_edit.php new file mode 100644 index 0000000..bd279b2 --- /dev/null +++ b/photo_edit.php @@ -0,0 +1,119 @@ + + + + + + Subir foto + + + + + +
    +
    +
    +

    EditPhoto

    +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    +
    + + +
    +
    + +
    +
    +
    +
    +
    Fecha:
    + Descripción de la imagen: + +
    +

    Foto privada

    + +

    Etiquetas:

    +

    Añade etiquetas existentes, nuevas, o borra las antiguas clickeando en ellas.

    +

    Existentes:

    +
      + +
    • +
      + +
      + + + +
      + +
      + +
      +
      +
    • + + + +
    +
    +

    +
    +

    Nuevas:

    + +
      +
    • +
      + +
      + +
      +
      + +
      + +
      + + +
    • + + +
    +
    +

    +
    +

    Borra las asignadas:

    +
      +
    + +
    +
    +
    + + + + + +
    +
    + + + + + + + \ No newline at end of file diff --git a/register.php b/register.php new file mode 100644 index 0000000..4d8b132 --- /dev/null +++ b/register.php @@ -0,0 +1,133 @@ + + + + + + + + + + +

    Sign up!

    +

    Welcome to PixiArts!

    + +
    + + +
    +
    +
    +
    + + +
    +
    + +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    +
    + +
    + +
    + +
    +
    + +
    + +
    + +
    +
    + +
    + +
    + +
    +
    + + +
    + +
    + + + + +
    + +
    +


    +
    +
    + + + +
    +
    +

    +
    +
    + + + + + \ No newline at end of file diff --git a/search.php b/search.php new file mode 100644 index 0000000..4ae2783 --- /dev/null +++ b/search.php @@ -0,0 +1,52 @@ + + + + + + + + + +

    Search!

    + + +
    + + + + +
    + +
    +


    +
    + +
    + +
    +
    + +


    +
    + +
    + +
    +
    +


    + +


    +
    +
    + +
    +
    +

    + +
    +
    + + +
    + + \ No newline at end of file diff --git a/trending.php b/trending.php new file mode 100644 index 0000000..f20600a --- /dev/null +++ b/trending.php @@ -0,0 +1,230 @@ + + + + + + + + + + + +
    + +
    +
    +

    Top users

    + +
    + +
    + + +
    @user1
    + + +
    Likes: 2000
    +
    Dislikes: 1234
    + + + +

    +
    + + +
    @user1
    + +
    Likes: 2000
    +
    Dislikes: 1234
    + + + +

    +
    + + +
    @user2
    + +
    Likes: 2000
    +
    Dislikes: 1234
    + + + +

    +
    + + +
    @user3
    + +
    Likes: 2000
    +
    Dislikes: 1234
    + + + +

    +
    + + +
    @user4
    + +
    Likes: 2000
    +
    Dislikes: 1234
    + + + +

    +
    + + +
    @user5
    + +
    Likes: 2000
    +
    Dislikes: 1234
    + + + +

    +
    + + +
    @user6
    + +
    Likes: 2000
    +
    Dislikes: 1234
    + + + +

    +
    +
    +

    Top pictures

    + +
    + +
    + +
    Titulo de la tarjeta
    + + + +
    +
    @user
    + +
    +
    Date: 02/03/2020
    + Description: Lorem Ipsum Dolor Sit Amet + +
    +

    Score: +30

    + +
    +

    Tags:

    +
    + + + + +
    +
    +
    +
    Titulo de la tarjeta
    + + + +
    +
    @user
    +
    + +
    Date: 02/03/2020
    + Description: Lorem Ipsum Dolor Sit Amet + +
    +

    Score: +30

    + +
    +

    Tags:

    +
    + + + + +
    +
    +
    +
    Titulo de la tarjeta
    + + + +
    +
    @user
    + +
    +
    Date: 02/03/2020
    + Description: Lorem Ipsum Dolor Sit Amet + +
    +

    Score: +30

    + +
    +

    Tags:

    +
    + + + + +
    +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + +
    + + + + + + + + + \ No newline at end of file