~)1ScvOwqxD)}rQR4u{8qZkytZ zp^VA-a)5?0Sdz4DMa9VYz?c3gr}fLt^~UKMl?yjxJ7;y>F2L7*onazDowy=@GTx0a z5iCD?tZ7^8|Jlp_iq7Ak#RNLwd`xvdDNp_t%L?#6w1xcNYqMa!pX} zqM(Mgw$pUfj@=9vqGtGlM$VItcJLF`;HSQeJla<$@@f~tV*G0Hiqce!Spzo5ku83= ziYM^S0glczVYLI(hhf8^ VQN=S+c?+%`TJWh`%T`uMs}M$hu%TRXZbUoQ z-hA`<%l_w1+}I3xr~!kRKO4v&AT37z;C -aAgyB_{_X3NV8`7p^_BV1;c1WQ4r7&W4<^peMv z@CTNa3VX;iP%NJu_LZ_K-#X@&?Z9Z7c;gA1Y;r+DSy4f^}a4%Sax{hu$C>$~1Yv zy@asZ?rHh3HeEPH%3b=V%s#QBqymB%shiIG ivjjh(E6Js-FkAReA^*sQ0&3Ae~=++hO_J;kn(!KQ$RhIihi_J0v_&@|hM zgvaB+U_z<|((qTRho3|Tt{Ix&^Lt322)^4vbUSur#JExB^%A=r@Aj;1PmXgYWJD5? z@6W3!LdDApQ{mO3w7rr4k6v#CSLTejL?{*i=zV^)*SNQ6&W|whk9AmYfgF_nR>=dF zj>(d 3bRcT(%u%h2M>SG^b z6)q_rumR|^J#oWijtJPMBcfTIHY}cU))26sp+9=- 1Na#i&e5n4~Z@>xQor+ZX3*_+JiELwyuAoV&i{N(?4axHqr=Mxix5uAbsIWE^)B=wL+L)#^XQDPx%Xho zWe-2q&4a7(Spi6EJMAJrQU@`{Dz+%C_#RLnfi*CN$@Hc$Lyv@S4_Ji2ga9+gXc=|c zBnl@9W-0}jMI@I-CKnelmKD(Ay1`5?jH_H1;+5|yvsd|@UVkSUSBAD{tMkD9NGBQg z YY@ZyhM}97B62KQ4Q^@M#5PHOHmJl2J#DSdtk>y!fia?%R+wx3gm*R zRMM=U7v}^QhKp;$8B%NwyUQver5|I-o!>uJ>a)oT5>TB2m9we#ymfm!yiX5A+oH zZ^{_G4qW|iS0l*7Lw#DoUtWPaEtfuDp2@l;lyAXe0(o7IByo*8LESqg?LWOUIbjMC z%GcE9iZI=bwjJym62;?Jk^4{mPEF9Kn&qcyn}o(yr4t(Imqm{8|Jtk@Y5a)t9cEOP zA*V1hgSw|bdUAXluJNtZhPOaRAU)bvzf|{qBKKLyJvU;;jSen58JzRnDW8~>vM)!b zTkri=iky<9SmVx5anQ{2<_FdYIEW<|e@#e{53Bd4DO>Rv)KByN;NV-CQBw3I)k0p5 znwoFz1tRyF|DcEFCt5d~<0@9-vPx;>bMo}%1f>5T8)DHE6(7jUx)_M<4UQ1IQW-@V zdNf a_CY)EaSRuc(dtB~hu2*`a&)k^;k_)ADzox)$#KrV6HN8Frs!DR zh-_zqrC7l=`5P4K&Ow~1KTpM>&IW8(-h)D4^Z%k*d^vUNK4f8F@NW5f+Gg4dB8nxe zohg%82rOE}ugDB%*%}DlJQ9>B)cowtI?&5WkO?UKwv9oBPl786OstzsJ-gJZ+4#`= ztk7?n4K^;^)1z8^cRock!0D_+ViiT=kL}Z&Dk)l*MgrK(8Kf1+t5|f4UXpt4NBUqS zdAz1rUK`%-28%jo3H86yeHyuKkxB%lL4&F Z9ttScT| z93g-hHVKl2XaBncdBFQ9Ns~SG??e`XC-y_s^r6 A?D1QTxHG*`=2sl&0fj zV~}=!&eL?QE}G3`DW;qKWY<61{CqR~+W_9(hqh!!q?5)WWkG$fzG>VcCytx-N#A6D znw2UEs>j&;>ZZ_uPt6YMtx^ za)65XFvS)9ZczWEG#T?o@(Rs$jB2+W4%!QvR&C7@Y|eFucOJ7%{=wHr>kf4{loQg+ zV)bH>_s`jAr-nb!c?&E}k 0O zz`e(oU;5S_RGA<#5~U7@%3pX>G4tW8AY)4}+~!ODGLbo#K;~%~Ns-&njQnQD4mv4X zec@^RVm{*3*mdF8`qw00Q#ggNpA}%Dh=h|^cg*VXE`yt}1r{`WGg0=DYnOK`aJxN+ z+hu1qk!-Oyfo>jmi}lYo3Mc3*^`Rjb@x}I3g2Mv+cmI$QD~EmzN-S>AoX!EKeUfLD zDQ|)W6^7I<7|hP>_xPXC#=>;nT9<>Gt`BQ3&HGXE%ylcGUYwnw%bGAKwL ~un@UrXY*CN4dcb>S^hD1Gve^Y3jV>XNS7d@L9zb9#0G1VMvc8ZqBk=5YsS5Z5 zft!Vrz#0%gU#Ufh6MBNm59Lm~EOJ7Jvg0mkmAXGi(=NtjuXN6*wI~odLw_s!U=49f zUEt3iQ1mdPNtL`+MP}UrKhguPBBZl68# Gn=gPOBBX$;us5Gyil?*r}uG-u0-J49S zleY%0)=NG26RFf;I?%{+ndo$xXiX>ns?%4<)KFIa5IWzoyPm9<$OD^vLTLDVnweKy z1wK}L&|d0&xU~_#wJ~tceNO4Gt;Y9HFYceRwGq`@&^=}jN|eK;0x_3H4JEjkABDpc zand??aT|bl)BLGXm#8mDs!%)Gk3A-8gNcPA>4lLn6We(TTR#)$Yn yi(%!a~t&;~fi9 z>di)twmvz+lBMX5u4M1BoS!|#qMr;Anv`~e(Ok-BwAj&WhS{?T2u^+OXh!>a06$OG zkgHy5+N5!3s%q1M!niSIwX*Q{7~63kuE)frKBRhpGCrjvU6I^=+ *phll)o|di9P0a8;}{_UYU oxQ@d$Zj&>bSO$CMtwoiifXY8Y7vkt z(W5cw{q%;sH5EQV^{|5Sc=&Of^6LEOFmXR)tY2{*_Mb-HYPu3d)7*V+1Sg{3SBq)~ zMrD2_BfVFIr?>_SUNSA9!%!}Ft%8JlhA;5zA5c*j{|cQ8rbfNe76+L31@kKt!$mD; zJ6%IbYMI9R2h;0CLJb{ Emv~7E4+#9wv=LTc0iI zs^>%{p+}w+p07S-&`^L`3|;&@3^HM1fB-wVv@(mjoUcx@*Ry0qq2hrS$k&hh>8_b( z&u$Zg^`WbVYl6k|4JB6lDh&FbWNFRAZ{D3jgC33HiIPk&_fUq>QHPL;p0&&Lg?6mZ z;7kGv9 }`@9_Vf~a6xw~cDUXiPv(A3+AoWJw1D zkl|0^d5aISrATWkxvNs^agt8`hfEKKIJrPgLI$s4cgPjf>jO-`713zepu;x+0CLcO zcL6$dF;_DQmV0S)hyT3J|Gdwe5F9afOb;ZTeSf=lSV>__nK;Ggs0~o>Q&>D9VL-&2 zw2So6zsNiR7e6eS-%b^AWj1f2s#ywKTba^(iBKB;gyvm*!0P~Rbp4t0xDzMiPmP+U z_D&J5uLSJ)7?rHd^g3kJR{|{!`7)Nb-W^o|X^IB_;KhXV_EZ}Hv&leT{*Cv`c!~>l zm${gGW*ztBh>qm?hyAW>LcTtur!YF$%{g~eh;oFSC5qgAa;W^yKdqF!IvP2%jIqOt z&yI6SqiD*KXiJi4d%D5Qh~(1bPf@Ge5=s+S6!6iL)(1|RGB`;@v=nP!Nc6G1TxCqQ z?9#y9=@_N)kMRyJG(^N!HbPk&htR}`MQO>IU Bd1YHjCc z-%Zp6nu}Iyh{~b-QS?FU%DkaQ_&>U;DAyN&w`isurYRjNqTIc9?Jk_Y6j8%5HqB5K zsb5?WcP$4Jc7(#;n} U~5K+i>UR5Ma$q{7cgo zePxEv7OyYlyop{zadm!%o(XcbAxOLjfc6`WSWS&Iy@Ja*JuRt$E*QPN_Ha^drvmY> z=EV2QHGX%b0+E1vji^xj=)dk8J=Z_FD~`druH2?7tk-E{Z0E^P^K&YY2`sh`(EF7& zC61|w6=n(3qXY@xN^6t2@$B&LG0m9g?)H(^;z%=ua9z@J><`nM^UJK=d-mI^lcsEv z@)w%v4oJ8Wa-5|yx4C>5%f@%v|IE_xR>Lz)U45jl$dzcF7*Rf6@ylXj5hY5~Nv;pu zxvhWQN`DLEpkabp$i6k6pPLMA_IexI;zg~5eFE?H_uXS_vw7T{BY16khx{rHw(y4q zW`S @K=QRC+I=(lrSz)sMauSDX^do8&u}ZL6dT&zmu*vjnFxs0H zc1{h7M5ho >8IR>D%;pYpXnWo(WUKi?muBSrz|;= z*Q1JK&J~pFXDql=iedLj4$@zv`bSwHcqs5HmT3iyo*NS9|KXQOTrtW#UQe*~^+W2Y zHQ5j|^^zR1ukosJfRc$W-A(j>$!0`J&ZMhV7p5u_)G8{jVL{zcX9Wwj<}Ddn+i7rf zYt6X4YUr0UPjVGbQN3lGN6%_Aro&f~q74f*%bC3K16JMOrk8#-?!0Of+m9g(Zu#EB zjm%h;u~~p5Pz`SJj)sMX)7|r)*$>}Vec@^NzwGVry=!0sl6y=)A7DqkKLyagXQJH* HbBy>O87~9i diff --git a/src/en/purplecress/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/purplecress/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 8919f831836a396b6699af15ba0545b153aeba02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13076 zcmbWehf`DC7cQKH7JBbB6cOnvT?kd0bfriK0g*0EDM=^+q$|BB2nq;Fcts?DkU%KX z1QZ1YBmognN~B1DklgtDzCYm3o!L1#b7r#FK5MV?JZtSdu(vg5XAxlm008Wk7N(B0 zZ|uJhn2~mMTnuFb0HgqxrbgHARc}9biI$zKXs`=-KBYwG^gWR^Lex-8g#C?KJl(eF z+ny8w^VzIAHp_?7W>zK+b!Z+lyP3B}Rb7i&OIclCd%yPd&Oa#6$vXq~a7VXP90PZ~ zZaLp@e%g#51KpSID{Lw>HpJiW+m|S+NZ&A#JekfkIC#pL{Qr2nb%iZqv%^Gu%;Ch^ zQ7&Nix5bUk I)e$v(0`h@KlK;Q&IHcxMEFEVEqea ^c)q(GK!!$&_Hw z95wC^iG@+7aa!=ogExsF<`He4{HVcgf4#D>H+P1*%`Z5=2|?d6(`|7<`#0S|zD&EJ zcw4y16&MX4+N(NgF12g*@_NzfcYp9n_L{)!&pA`ql?2OLZ`x{>s1_8Oz1KyclljsJ z!V~!({afz`*6C(egX<>PZgSuBN_8Y5_lxGHR6n#*!=$78!1uyFgDB1dJ{Y1T1JG)` z|5@RmYb!snpoUCUC2l$CsAsOJrD8fH;W{$* Vzenbg2;`$M)6L9#8!o*)I zLT2KrWg&NPNxAqxxKu7t34h2X%^jfWW0CWL{@aHsZsWmrUYB({4wcLF6z3hvAs=39 z2_sG)siweYz8>jEB(pfkzMrJ;(lD~l{WvcZI3NtK*M+zDz vYD%2d_hB@A3#`T~z+hbTs5A>qtbBJum5SXF2W|BLPAmE9D &%e5QiWif!wIUpA{JiE(Bw{ju?j*z0&tu|KHC?n+vx)uXFYf`tyH^Bk%kOj z)Pfzqy0e5S!AArED@& ;A;wuZ0`lZ+zVl!3BvpbTo<;iWluayAGG%AE z`503ofPD@+U~Hf~;QD9=erU-$0s0nZ_vHNXgn`iG YAAblH^CFz! z mG zQ@>15 khWQ7qOwilW>1NPu^JymvkVuayCC>Go zhIIFKZ~{YA$zLQ$ufAS6kcj39j|PQDi>XAjsYLT}IMH)Bq3?WM;}W|Ij?+2X#YMh< zm@4GRW~;+dR*i7C9Z+t(E?ivEFB3p`n1C-y;0U0oa$~ {mtvAFFp7WV7-=1hetyl3`=$m( z%nSI79_CMwG;Q*a6eSsiFdBr2cv l>R2d#&IS@1|6)J2zd@)DilfK8LWJKam< %oZfXNrO!1=@cnr7jmn^eK|6w%3 z$0i98y@FCZ?`39HZBlSgz~PTjwVxR6RWgOroUUQz8mvsG8E#hsdKfSg#4;9pzIfdP z!tVQlAe;U$OPaa{o7NaVRCwdM*WAh2y#livyE_<&{>Y;P2GAZ>6PUUO{yFFp>6XN4 zxp^JduLt=)Bu9uB5}f1aKZob?YX(QfYFezxMY2}B9i?U(BYF|uaMF0pS^njBUt~e0 zUTkiy_;<$|FRMD!mYe=Jv-l?D(cXk6&~Y!=L*P4(VN-eV+3I~D `Tc6Y!pIoDXe6z-9TLsVN-(R19bESoq+_O!w z(#O3cbMWlN7*I!kC`?#Fag`*1^-7ucx$h>fBIeFl(ijLwXhnm6_C?G|6XI$mC{Y N9Sjowb2(w~{;k32tOriuER(Dpc{S-)pR4zn8`I0wFT5nY zBWmt|3!;jsY?lVc!K|xRVmvD%%wrSuHrde3tB8a&OgxFn8b38K_b_9m(r`fc0c+{p zf8i94BgL4rt8vtxj{>dMk}K&XP{On5EDL|4^%>DZSo=ABwWG(<-(0Lp2CIARo%o|H zH&VI*32F2Ud8z!T_aHmL|0T;ZL4+!QixeHn%&d)EyjG}ETFcM_cL%pgZiuqNp{bSc zSN}UV6QrNBP+IVx?|nyp^3@os#<6>KDJ jG&7HQKlLww znQexduK7p4_g!15;&a+1-Hw0@v>GeAh!ux$EGV`-AqV0GK1DtVj-^7~3XQYY72g;5 zR>GNKFbjUE-g>}fD%GCZK7!cNFWHfgPhDew=W{mltsi3!+!-r~aykK@?SZQA@^R=i zd!^VGFYax9jibWj=bn`CdUuu=8OfL${5`)W@X=!L5|}6x$?ArV0sfN5!mv;<`T2kH zzK;h3#uv~L$=xBOkfk%1=Mj<43G9&j_S+}wXdBBlVEM%(^3mR)%UV@UHk%5hX!pQs z%W`eCz-1$|K=QT-IrApsEENMKWsVKhym^8R7}uK*6(LWx$tGtg+@~|psgFr^0!cVo z?GL)#Cx-l)bs_vRxyo;(nC2*9K*zc4q|T_(e!7tR;4g3O4BjOb8lazlf4pkGE&Q_p z#gnBC0>#;EstP@f7?5ey@PyVIFnNfR(_*Q21eY%&S3Xr^Kxak-&XB*y zXX0)ef5mV*<00sv @bqn(T6fzU zxc=kt|FFli<0f&Lfnsy46K+}KW6{T0P@QU>k9&1hf`RgQ`M@5tv#bl+Vx*X;V*3eG z+oS_*kPXCVd#LzOWyiH|ftTDdc6MYl^`CTdUetYl2^~)mX0N&E=DXjG;@ub(!@Pdg z42<^CsqROjTai$k*Ffc3%Qqax8u(=`Q(LZ=4OKll@}zfwhD=P943)8}HK)8;?gfO> zH5oFtyNCDtw{=P*TKY@^*u`n9!_uk1j8ga%NfMno6Xl0< vSZ#b_hGQ0A9&(7Br9_|r;UhEmePtv?HYL1OeLd-$>f1Bnn&{TET2G-}_b z&W@#BlvRRdig!Ma21#Zb1!29XyP}l0eE3?tOByEWKo}<;ax9M)0scz?)*rnIW$kwk z6n;=j(=d4gm@qj* u?x=O-dqVfs8k#>l-z2}y1LOfP z=u^eUUYcxNY0La&XqX7OYA<@R7^ JC z_igDnEyI25G4S8BvOJ2I+HkS~G@hV1G?|0?e)W*_4?tT2NnuBvF$c87g7bf{n!d(_ z4uW~;k&b50T-H$B#Z2S3s7w9J5;O7)@@1(xHn_<^f=`hM_pgOB&c}enG+5%%k^3d0 z>!U2Ud_w85s$Lw`GY!K@(pp>BmN}EA-i$6#@GL%aXQa@nCPjm85rP 0ROVWT2Gl?o&B=D^NHxnqaAz<*{PJ&eDk|(0HXjkL0#c&6m#J0WzmCnq+*Vj zpzO3|q}gCc8}LCHc>hei&+39~)8R_zHiNd%0g~k=Q*nWVYx} 6QSWcjyy`yUsGqhD7@?K$pGUeQy->FqDV#o{zGxGrU|MFS-o1miTF3lT4r z`i;72LE2ssZ{4q&^!T~mnTRzH#2Ttnu^jID9Yz0dDyNSbdrw(nk46-aF0)at#!?-D zi`N)&6D+SM 7wm%!6)i{3aB)mH%8V$=iaM#^op=Ve1f`83Zl>N&v#v~M3lc|g~xJoT?hhc}&w zZWqfhQEx4{FIEDn8Du`UV>Yon6c>q56xBo}FWp-a@i-4Re065>s@lZM6|pk`;|cYc zOTP2vw};&DwM5A~z&J9cHSo{x4%vrquKCT7cPLmCgggc!={@@qti5*L e`pjo} zKkU}Q*YT1}N8m|$2)aKhRU#1Rd5wPQn(1SPM;g17rR!uOb6b@vDxv^t$>!ebKe-p{ z*}u&Gw7Yal9i0}wO9cO+n2AbE_H%ScP~YGoI~dO}jo7=<&EpDC$f$o98a?xsHF z_UW7!WSuTRh`?#2VWJ$KWwZbPYf0mHik5Yo0SfnijOiI}v%z(MbrZ~NmlTDb@Ag}B z*5)w3Xg7o~ex`x@4!~(j-^U%h*(>?h4V~_we_^fFVpm3qeVu{m%vI}5?92vuhJt+q zc}6xQ@pXUVvt}Bn%`#`*q~3-A;}*^qY!PWj7=0>@VW20O56Y+fz8;u)VwV-kq93C@ zN+?-vmmOmnwb_Ufya;CLforR@(DY?vMCe)Bw2k@nQ2L(wdt3QCU(Obc5jTxcuMp2U zVb%pF{D1kbPIk8Wekc6SjomrXA!$8ZN2{DMa0kDu17tE#?t)}D+^Xy0Y1Ri!<(d>e z4qc?}xvcPWbz6+vQdloqOyHHeEo?Y_5kZ^Kz*<1Ungtfk* S*UGAA>k$o z`2m~OgU=PTpKbRT_8>8VT^I;xaC-9Uw9zSdgM4Ab6a<@Fm+3`gzO_XhwN(#ltMdEf z41sTmlET2dc*V~Ji06U^){Hb7 qS0iWKVy0m+>b^0bW|~1;9jB5B!0i61SSpNk1GxB;-tlL!QUw&n zOzJ>DUGzWd#4=i(M`@NNaNIah02k6M^=S_C(=?9Sg1%Jl1a?>;pZsRo!{@61)>y<* zSCx;wIui2bjPp5QtyWdu&=;80s!i1rCVQ}3YOzSZEp#MWe5FNVXAsTl9_??coy$G? z?<#ayq!+1?z{)!;IBm%^ZNxNPBIt9f)K;?tzfC{SeBuYp7R2IyhA@HtAr_0ND61sq za0T{EA*7 rJD K`1_u@9ht#SaLE#FX4v4EbZ#^JSn|c>{*Sy#u#VCOp76`UIm!qwp zsk6EeDdf~9lDzTEBtUTB6p2x$Z(=7g0LeeS?oA4#CoM@f`e-T4j3fRZOM@8TGDvJP zD?D2?N~Ykf&e)+yw$)_TD>Bro{{a^jH_Lj0C=gca-YvT5m4Pcy`Mja5h&7@aD36rS zjyZOb3Dd>o6)h6(1Ty*rXs!GnVM)>&3_>ftV=61Rp93!V+n)|#^eOi?VFw>w2)8bp zfk>MUq};S-fYA-aJsUjq0Cavjq{S7{77XsRp#e>D+5m>OsBRKiJ&K1zz3ze0S5Mq> z?jojaC&IsO!_Ro**_p*mP*f?5mHUuQYL38^H=ZTb=&PRaHVpX-v?Y@Cocz;(lua+x zU%9#PGtHZk;xWk#bz#U_XRtSL`_{L#{Nel(wDZ)zkyksIEL^%75tR+&S6@{kADqv~ z)rvx%fP+`N-T}H^P2a@Ao9LV9ljVRO4cgKT4vXqxpV`Paai|FpCpQ-pp?D?IQUN`5 zd9jD9_69+9o8tT}6Re*icjEqX#@+R)B%bk5uGOh#Rr8SDIj`WMhF9v)hJr3@69YL+ z85@pRc0;I#RzA^WCnv5rDY1I{-n_>h{D*B|1)RE~# QI0OKP5eJg|}M33+a@N zQ#eQXh6KD~g-0Fj)}C$DrTu$>FB{4)KiRbfE_&$?4@m>N^VH{aKg(&yfVP-OODvIG z#3MSY{-*Gk^xep7Xx6fFgv|j?h0#~g )IXp~N9i?{ z)Z?AnCA$WzN+0lj*)ZoPcwaIwLPbGT4I9 Q1WIV>uJz{X*bQ+yk9&H+&n0k5}v3;B|_JC2iEnpiQY9zYmI< zK?fV4S!Y0j<#Ah#t3-b{x$UVNwUnr{vcfz+Xb6k?{pgWZU)je>tA4rXc)p^@Y)jIh z!C?AoWKP9vo;MfC$VJI<)g-;!k{Nj|dIOliq}1Ff34wYh=X!4$8ia*9f=D*W#EJxh zMgT$mIpNVNcogSaf_VWYT_FEnF=2b4HJin&pcMK%_jOOb0t4}~ho6XwIzw4`s<)W2 zg%Hx|+6$iZ(&+SSHU!jEoy*dpZ|X*Evc<<}+754lsg-}29fzaUoWf&-=x#8~E0Spu zchOvy
)1U*UKHh z&>8cnKp4sjzq_T1;4qzM6cCwaPF%@sIm6KH=2Mh#ja2xR62V$)K_Aq#i-45Wk-q~B zWq>ck!d(^z+U~iJp7Ptqjf+RF$ m zqYrt*{}73Kn>s6`RBX;K<>-t!!_op}6G!q3fIhMOVq^smaa3Ph@$7Xge*KOOnL{Cp zgQMfLXMAy60rTnwztn@QNVe$3mhzwQTmTf5$(81m)zWTcn|kdNVahW`5eXkAu_}qi z3nqWbwQDohPp$gp!~kvv4TgZ=3oLDk_!d@tNqhN2*mXT(i`bndKB(EX>h~j(+uI+0 zW!}^QI!0zQlSr@$B6Ns{%5O`Arq)QNnq=LPwGX80Y)d4DFu@&@=Yj%AWx31SA{32P z-o=JKWSUjK@%@5Uz$p_f@%WlPvGR3f)uYH!h1_w)SO%!e+)x1*_ejZE^5o&q$EeG< z>A6;jd%Z$yE^7S|Qj;}9T=4dH^hqq?21`<;qT|+xpps+?EpprH0u;B+3MGcB|HLYZ zVwPifXui-d(t&K59oeWGXmd1(5i!}gcr}M!8%z#^7%CG~1*8}<`Ajfx>|Kb_9kQ?o z>Gz~n5!TnXe_5G$0U*qcTr^T?T8aTkE_3Qh_N!A=K15@#mP@*<+JkHjfPyvYId=U+ zjW@W*#v|28tm4q4jP>wyk1)#-&y%xeKA~?XaVidHCT76%z74qj3X8E%c?Vb;zD;5K z2lX6)35193k)xK{&%hr)itSjq$0DKe?d|4QP%5db&43DVhDc^%jW6dxrpF3m>r{>? z7-P6W-lxS7*L4Yh #$n(kZFE63%~}RWAuMzB?RnK0&+R@-+o(tRjgn$1 zl{l|DJ6nVU&eK%^J}Qh*!G7@!7Epi?o=``Do2<|u5E3iK^Uq>mX;1adRh>>8;IL*JUS|IsXFk@hl&3d z`4{$Ro5ZHU$-1`imhL($iL)25w%oADimFDs+u{_4xC$8~ZIkL7#Hmk6e7^@wJopW; zxkP_4K?+A1DgM9rR3Nu6t+vP5SpI$rw1CpMMG&}nfgFrZ=c_gb8NdKe Wpr27aCM6y^`6TER*k)q)cy2kSJk7@x)94F5brb|rIYfOu4Qmrk{vwA{+jg^Pi zGWkVz*!~g1+KJkSrJ*aQD*4e+W7R}q-#AdXW?r~vy6u+&7243O&3gJmrNRF3HNfLs zN%36CrE5Ye=kmapQfSOZJ{LM1yBg$LFImO_$1MHxr(6PmjFW>6rJ$}VTRaT-moDi( z@O9)k&701D{HPRuXAXD@@J?JwOrdIo8rvhGY?)l6bF>u)k>(0{esT#6-vB ;o>GbkoY7V1J?CKLq-bXl#*w(UER(7 D~7#eOpb0UXcj~o`;FkMc4RXO1_vSMIO!?+e-w6D?4r!)2N)>Ia%HT(v2*eb z&U`WhVQj3OYATEUI+R$pKU!Qr-AJ8jqoLP-warMLLjF<5LPZ^W>G?OC%5J=^`B| z`^CDfgFdSRS?%qvw ZJpenjKYOuDqaaBB>zur}~cC=cgzJa_5T(uBQ$A$Cx6P`j%m$q%ZL9Z$$3Nvl}4Z zm2*4U?um?WGm^+UQcHaZgRq40ULucck5hSkec#bjgcgk%*Gb-lV&bI(Ru{Da)%wgD z^DIeogrre6G);kGVEYGZk^#+8f=g(1*%cC|1UR}#w`QCJzxE~@u+u_pTEWvQ*8cwC zs7LpOL$>Orncwp7-*UMTL7Hn)uGS(mhBu=k0awjpfOi-%v#bTPbe+W+PF7gR)oFRJ zfv`V0`Y~jAwCuYaFM>3A0P*c{5s_uA_Y55gGV(Q@JdV1DG{|MKrh%VAd=P#uF-JPj z`n}Zqf;w8HyR@jvy>2%!Bp;QLC?0OW$|UJ@^fx-w{j+WSr^vgO^Ev^H8@JAcd?Ho^ z_5<9pn5$vF6Ok@DK+TgGqYNXoC??jbiWpGHLv6 |Ij{Y@T;(gufa<_^6Ao_nJ>z}P!{$< zzE9t^Ii_?E)zB)1`4Nt#ug9ER9BBbFV|9fyKG*0dJqSGnPl5RYH6eg1uCbb(pK-Cp za2qM5Tp78EI+t>DPADhma(&l8wbIu^1+h4tbZrosOP~w7a{2VaR?@9G&=0$auHp-Z z^qwyzjpD>|CQeU5n4iR5DQqy#ooG+jCiHHjHZ?W}nrVyZO){+WU>nN{it;2`o6!JQ zK3v@EsUS^srqE}xJN!@Zj;0pASs0`nMKFt46tJ_~_!-wakm9m4miD;dX@UEo@ZY>g zzu8L|&Ug0}3K~`b2exDdDmZUSP;UI #6r(F^j{VSJ9~s*lVG zuIB%a)&H}pxe*;}elIncvisTdiTzBk#5PW`YoY3l3}PgOL^5w) $&*bs>3t(YqH_}pjF9aZYaqCL!rJ6UF$sw}>0_^asxs@qj@vVvEU_BrQ zN7Av-vk6cXjRj^5R=KWFZwkQ75X#kf?+M9p1< o0s>S~Q3~2<`Yn&^I bu?kpo2k7~#4* zWQRETuh0Jq8VQCNeMW`G*BlTKYC6-J48^w+pS=XcBOA-t;EZL32pe$oQNp8Nmf_v! z$Mul(kH`vxq+pvJ6mg@jJJCt|y<=dCdbl|6;@RtV!#`^pYc(aT;X`_cUT- Wr=Girh`}2Os<^s`)q^`7=zTwO?WD1U2J$A#6hN!;euXXXW zGe$yFRWt#jq61Qiyqz1WH$^D?zaW9{TiQe)vAdBaf`McD_gb$+w@iQxo^s}pPx*sV zG$;^TqUyk8(DWpe&pPfnDEjfS@&~?)WS#1tum=XPr%Ch|+TkdE?C6O4P%lDAE01?E z2Yk2wc>K &stUL zyf2OEGFEX7v_-PEkkj_mv)~#3Yw>6jR!@CbacwP^QcSY?Cxd3jy$575DYWp$NKzci z!N1ni`4+-vMZZUMqroMq{z<=LcautePN-h-E)mIs8%CD6KMCb}{8Dl$l#7-@1UHs_ z^6t;l_S>FQ%^JpB1u5O7JZ9gZ(E1xoeNfCtCA`2#^aLieXW)}Gv7=)mId6Xvr9QlD zR0=J)3>WAn%dzcgsf|YXRZ<@&l$n2JT%tU4zUee1_*E=P%qU#Ua_929P|3wm5ra4` z?l_jHH~|UG77rWeh?uz7u$b2dF)u3M>0U$9XCtMV-kX#fNVqn;Q(6!8DUS~d>yk+F zs9;F7U~Z>D(Fi&W`iT$nRA9Z!TV|-nsJzCo9GW2o&E|rp$U<{yyX>|jeI@Db#;@1b zPT%CwH2JV_F0WQ7+#EW$=^4s`+u~7C+x2;r4AkF}8=No7YQMA*gu=`2^Lo@#5ppLj zr3LylKPzSDRI`C)bEILOex-FiwY7<#gMfOH8IL*rD^F)QKv#xzc5G-+S^M}|pmMEJ zy7--9=DYsj=n?#i({V-Z8?j#>3Ti}6p^5zAD(>_co+!}!*Md 0VoY%eT3JB`0kL(B+5BfuixBs4re)^xYA-s--7Z-htL9g>T`)SFc zib|^$?k`4g|1kGiH~H0K$@42YS$UC#2nz?FE#A0?eiBxoa6#`%lq}jw$bZ+TdI^y^ zDbT+>#5mo5Qh3X5mGSgzA4+43ft=8fxide&azFQ_FZa1L_xn3#&C9RsJP{W-pM)qL zadqF7m(LD2K=8qvmB=lNofdx@XC|3^*Kt bw0@9D@DJqbD@!YFMw43#V=G?n2 z=pk6X|Kd6FmOZ6EMsgw3H;(yi>jrxMa`#s$-Pxh=^2b=YpYgQB@b#fND^+7pxSMU} zks@baj)A!?!V?3 VrqvGTf4nqk_Rw!idf3)KtLuf=?FBs&t&O0(r{S03q$ccP zlVd<*`@KN#Fai6z!aPpMhbg@7k>DcXiBCylmRC4%$-}<4RSfkSgYiTxOt@?W2>Px| z-x Bkl3=xyGrW zV9Cxb(XAlYHHq3XcSN3(v?HPUZr7)!m7ti!uVzYWa70?(y0`VCMDv0o>n0x4{T_qp ziI&)cD|ra`C=nq4e!NY1#b)79hYvJM_cz<&{Bo~<+aF(a7u#@G?Bb6;tXjM~uyYJ| zp{s@cTPv*k403MX=5Xms*G|oRTuoz@lb7eC0F}4; @aeHE0eDQ-hew8t@`V?}mOA 4%_rbpminhxK#BpuTm8y_@E%8MhQFF94OUPZe!@Hv;!joMO)fpxd6_MZW%ti@ zH_z2``x`SiDxb6eF2TGpvp0+Xr{1-;qnT00=}F`s_xYnc#!Q0dTB1hsyoi#h-C)Ms zW~8a2W$9bm969}E-UkA2ufzf?6|vz^DTf#b8*T`ey}qo6UQ(;+$<8nV?^o$w@vu&x z4A4upp4e^s5bB$9-}`?3#otrbJ}%VGF}Q>=(`s7DAHRIqt1tq_5SH0S(0+NJRMoTb znPHypphV!!P40I|lCKxdNMC{cD;CV8F}V(|M7H&cPMY@*=$_KIOvoIxmCf`g?00JQ zd~N%QY&UQf5|p0cE8YBMcXykCJlsze5*$4Ri{$tF5#P#^&CL !G823&Q)`vFf8Ef`j0@S1eQle{BQSCE?HYW+F?J#_ywcm$tE_0@1BT z*IU$=p=HkZMHh72kqZZNLXErqxLf nimO zUNKV%+_gKj`Sy*Qf2a?hf3zh=Lo~j5$?tx5w!OOK?&{k&68n?aBgkNwXWw%Y8^K3b z%ostN^$qdeXLe45Qg68^;+A2c%ix2@Sk)u01Oo9ws#GGIVEM97#j&R3{lAHYpQl?f zcBC?P&Nd4J;{pQ9HO6>Y4W@13Qzfx86QInLEXT}qto2`PyV1R`5;W_G$~(R{XBY69 zg?tr@GJP_Fwxne1>@k8eqU3f(@1icv?(BD-BX L$9(SJqE zwN=bAW7Syt-UlHEBa=*U)Wgh#T=yS})v_4Fu}Gk%iDUba@N~@Cm&sFeM??b1n =8g^n8WTzyy89Mu5_^ ;!cqph=4~K1(;@ zv|Crx&5ZKpdYsV~7~cqh^#q)~6{wx5ons`k{Fn6rH%#kPna&KQ-{2;1)SmqsX-F)5 zu8My{tFg^23yj*UlFDA}Mm;#u&tOv|I^g~l+JxR6=Xwj1|7Or?&$oj%a_D`EUthAE zukhpUt^jwJbLnmZbZ M}5@_uPAI)xG^===H6a3`{?u)k4{?#Mkj*Q@60o6~x4_-Oc^Jw@! z0y+e$I7#|^CrW$}{@$;EQ`8Pb7Z~7fn7$B3zc7e#1eTv?x>n2^IL5%bmV(?9h&>%x z`5Q@-YcG$F2f-8N_Ak!Qx;@Rwug&48FXH&uHN$OWe%=^orHS^{?Do;r^}YCS%)T~h z2)*-lza&kc>0QO$7RlOu1#jQWjAJpUICjcIzS<|)UG|eb>G=)%&=@gI-Hh;m BOY_{#O#eyKaFAMcoM|P!_M;j$8b3i@j{vnKSDmed{*)TUcHgx z-U39W!L`Re3{&JGvb6KC;TpiubS?~z4_43bgJL@90C;Co0idjzsq4VdW`M^f2DK*Y zx){XtTzU+z@w>X)!f)IEWEguzY{U|)ygje;Ie*tN0srAP?w)OE;jbm&48iKn&~#JU zS>1FrGsK}~hFZf(cc4pp<>Z`3#qb)}rE?XGRla;3B+I@-xe0vZ{?yqxtB8w-PssOW zRsI_}Vn?bM6DIDnC6dxx6zeH7CeY**U?ZE}_DULHS9~o{W{i(tOE|1*Ddvqbf~K3L zU(ciqgVz_*3+W+)b}XzuDVG(fA?D%YSe^i@UsCC4FvQo`;+t^~_04icE%*PYo^LKp z{HYapp>pZBt~V^2j#7DoS3s_MR{n)?0$JR~3AdV0ce^*#La!Ynqw4=jIr~*tw^0kC zLY)3C^B5<9AyJMSly7ux4MR1H@0n{o+2Xn68X2-Kh8^A=j2XRiK%JvGnTl@R_X@i= z8nn0Xcq!D~bYAy`nr@Sn65|y0QLgxSdZAaz)7r7?ObSY{s_$pf^)bpm(qos`q{lcV z a{D7$Ah^m=mF1rgcGfY}#px$((Wb{n(LCB< zh*w>x?+_TGP&WbYO)rEQzen6myTiU2dppG5sSA?`b#Q&pgUr)*5O`-$H~7Sn )N;=ETRT=ZGJLV zKc|MClxEZv8uNX$!tw_AhMpT!{bW-t+;3LQtFP(+^MyLpJ@PVdB>!6eZp|mKXzGi* zT3qDCN|PG~#Khf>&v+x9W%}P&<6^g`Mdv@c3pxyL(567m5m1ZEdPhgQvMjs;b!yT) z3`zNX|9%4xFSf#Rt(A>Fkm4Q+FKU=b5P$KJvK>&T2H` @HX%jh472?oIx}XR zzeMNa_|D6`&WgJ8^5#uiAnX(;e{;BCY@1Qdm9Y7o!HYF{0q3o21y_H?mmofQVPx = seriesContainer.select("a").map { - SManga.create().apply { - title = it.selectFirst("div.card__info")!!.selectFirst("h3")!!.html() - url = it.attr("href") - author = it.selectFirst("p.card__author")!!.html().substringAfter("by ") - artist = author - description = it.attr("description") - thumbnail_url = it.selectFirst("img.image")!!.attr("src") - status = when (it.selectFirst("h3.card__status")!!.html()) { - "Ongoing" -> SManga.ONGOING - "Dropped" -> SManga.COMPLETED // Not sure what the best status is for "Dropped" - "Completed" -> SManga.COMPLETED // There aren't any completed series on the site, so I'm just guessing as to the string - else -> SManga.UNKNOWN - } - initialized = true // We have all the fields - } - } - return MangasPage(mangaList, false) - } - - override fun latestUpdatesRequest(page: Int): Request = GET(baseUrl) - - override fun latestUpdatesParse(response: Response): MangasPage { - val seriesContainer = response.asJsoup().selectFirst("div.container-grid--large")!! - val mangaList: List = seriesContainer.select("a").map { - SManga.create().apply { - title = it.selectFirst("h3.chapter__series-name")!!.html() - url = it.attr("href").replaceFirst("chapter", "series").substringBeforeLast("/") - thumbnail_url = it.selectFirst("img.image")!!.attr("src") - initialized = false - } - } - return MangasPage(mangaList, false) - } - - override fun fetchMangaDetails(manga: SManga): Observable { - val oldUrl = manga.url - return client.newCall(mangaDetailsRequest(manga)) - .asObservableSuccess() - .map { response -> - mangaDetailsParse(response).apply { - initialized = true - url = oldUrl // Sets URL in result to original URL - } - } - } - - override fun mangaDetailsRequest(manga: SManga): Request = chapterListRequest(manga) - - override fun mangaDetailsParse(response: Response): SManga { - val responseJ = response.asJsoup() - val infoBox = responseJ.selectFirst("div.series__info")!! - return SManga.create().apply { - title = infoBox.selectFirst("h1.series__name")!!.html() - // url is set by overridden fetchMangaDetails - author = infoBox.selectFirst("p.series__author")!!.html().substringAfter("by ") - artist = author - description = infoBox.selectFirst("p.description-pagagraph")!!.html() - thumbnail_url = responseJ.selectFirst("img.thumbnail")!!.attr("src") - status = when (infoBox.selectFirst("span.series__status")!!.html()) { - "Ongoing" -> SManga.ONGOING - "Dropped" -> SManga.COMPLETED // See comments in popularMangaParse - "Completed" -> SManga.COMPLETED - else -> SManga.UNKNOWN - } - } - } - - override fun chapterListParse(response: Response): List { - return response.asJsoup().select("a.chapter__card") - .map { - SChapter.create().apply { - url = it.attr("href") - name = it.selectFirst("span.chapter__name")!!.html() - date_upload = it.selectFirst("h5.chapter__date")!!.html() - .let { SimpleDateFormat("yyyy-MM-dd", Locale.US).parse(it)?.time ?: 0L } - } - } - } - - override fun pageListParse(response: Response): List { - return response.asJsoup().select("img.page__img").mapIndexed { index, element -> - Page(index, "", element.attr("src")) - } - } - - override fun fetchImageUrl(page: Page): Observable { - return Observable.just(page.imageUrl) - } - - companion object { - const val URL_SEARCH_PREFIX = "purplecress_url:" - } - - override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { - if (query.startsWith(URL_SEARCH_PREFIX)) { - val manga = SManga.create().apply { - url = query.removePrefix(URL_SEARCH_PREFIX) - } - return fetchMangaDetails(manga).map { - MangasPage(listOf(it), false) - } - } - return fetchPopularManga(page).map { - mangasPage -> - MangasPage( - mangasPage.mangas.filter { - it.title.contains(query, true) - }, - mangasPage.hasNextPage, - ) - } - } - - override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request = throw UnsupportedOperationException() - - override fun searchMangaParse(response: Response): MangasPage = throw UnsupportedOperationException() - - override fun imageUrlRequest(page: Page): Request = throw UnsupportedOperationException() - - override fun imageUrlParse(response: Response): String = throw UnsupportedOperationException() -} diff --git a/src/en/purplecress/src/eu/kanade/tachiyomi/extension/en/purplecress/PurpleCressURLActivity.kt b/src/en/purplecress/src/eu/kanade/tachiyomi/extension/en/purplecress/PurpleCressURLActivity.kt deleted file mode 100644 index 438b7eb58..000000000 --- a/src/en/purplecress/src/eu/kanade/tachiyomi/extension/en/purplecress/PurpleCressURLActivity.kt +++ /dev/null @@ -1,35 +0,0 @@ -package eu.kanade.tachiyomi.extension.en.purplecress - -import android.app.Activity -import android.content.ActivityNotFoundException -import android.content.Intent -import android.net.Uri -import android.os.Bundle -import android.util.Log -import kotlin.system.exitProcess - -class PurpleCressURLActivity : Activity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - val pathSegments = intent?.data?.pathSegments - if (pathSegments != null && pathSegments.size >= 2) { - val url = "/series/" + Uri.encode(pathSegments[1]) - val mainIntent = Intent().apply { - action = "eu.kanade.tachiyomi.SEARCH" - putExtra("query", PurpleCress.URL_SEARCH_PREFIX + url) - putExtra("filter", packageName) - } - - try { - startActivity(mainIntent) - } catch (e: ActivityNotFoundException) { - Log.e("PurpleCressUrlActivity", e.toString()) - } - } else { - Log.e("PurpleCressUrlActivity", "could not parse uri from intent $intent") - } - - finish() - exitProcess(0) - } -}