From fe4676497a05708fc6d5dd998351d59ff9445742 Mon Sep 17 00:00:00 2001 From: Vetle Ledaal Date: Fri, 19 Jul 2024 07:47:50 +0200 Subject: [PATCH] Add Hachi (#4078) * Add Hachi * PR suggestions Co-authored-by: AwkwardPeak7 <48650614+AwkwardPeak7@users.noreply.github.com> --------- Co-authored-by: AwkwardPeak7 <48650614+AwkwardPeak7@users.noreply.github.com> --- src/en/hachi/AndroidManifest.xml | 22 ++ src/en/hachi/build.gradle | 8 + src/en/hachi/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 8692 bytes src/en/hachi/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 4284 bytes src/en/hachi/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 13909 bytes .../hachi/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 29098 bytes .../hachi/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 48013 bytes .../tachiyomi/extension/en/hachi/Hachi.kt | 295 ++++++++++++++++++ .../tachiyomi/extension/en/hachi/HachiDto.kt | 249 +++++++++++++++ .../extension/en/hachi/HachiUrlActivity.kt | 36 +++ 10 files changed, 610 insertions(+) create mode 100644 src/en/hachi/AndroidManifest.xml create mode 100644 src/en/hachi/build.gradle create mode 100644 src/en/hachi/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/en/hachi/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/en/hachi/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/en/hachi/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/en/hachi/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/en/hachi/src/eu/kanade/tachiyomi/extension/en/hachi/Hachi.kt create mode 100644 src/en/hachi/src/eu/kanade/tachiyomi/extension/en/hachi/HachiDto.kt create mode 100644 src/en/hachi/src/eu/kanade/tachiyomi/extension/en/hachi/HachiUrlActivity.kt diff --git a/src/en/hachi/AndroidManifest.xml b/src/en/hachi/AndroidManifest.xml new file mode 100644 index 000000000..c5fa43e9f --- /dev/null +++ b/src/en/hachi/AndroidManifest.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + diff --git a/src/en/hachi/build.gradle b/src/en/hachi/build.gradle new file mode 100644 index 000000000..5d60461e2 --- /dev/null +++ b/src/en/hachi/build.gradle @@ -0,0 +1,8 @@ +ext { + extName = 'Hachi' + extClass = '.Hachi' + extVersionCode = 1 + isNsfw = true +} + +apply from: "$rootDir/common.gradle" diff --git a/src/en/hachi/res/mipmap-hdpi/ic_launcher.png b/src/en/hachi/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..f21175cbb50b1cc18c7db3510352e7fb9e340170 GIT binary patch literal 8692 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 SiomG=0000sX7FZBpD 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 literal 0 HcmV?d00001 diff --git a/src/en/hachi/res/mipmap-xxhdpi/ic_launcher.png b/src/en/hachi/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..261ec505e93ee579b0f047b9803bf0031d5941b2 GIT binary patch literal 29098 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 literal 0 HcmV?d00001 diff --git a/src/en/hachi/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/hachi/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..b9f36c6692cab9b53ed34f3bd28216c7d3687047 GIT binary patch literal 48013 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

iEOKxfk#94nI*LD|$KFuBCD zK{q(F2-D*5Mbyxl`qJ&xrVTr`(QNPsJetHWe&OYJ=$xw%o6kdzj`hoI2w@7(OIV z4$3AuBdotfflTR2h*8Bl){1cjZOCuvD1?IJHwCM|Yjs5ai_o1T4h?j{<+szz@6D7p zdg2`1=iy}4VDW40)f4E&cX$&v7jV^CV#ML|dedT8s)W*Ljq2IdPsxn@7{O)M`Tyt# zU@9-GlD>TFK4Ux+X!(?y3#x4%eEfO3?(Uax6Kf}FB*w;lVom1wS~zbj7|4v!^+?1! znD!ise0!J~LOJV`a=A5ad~)6u_tJB3OcmzRi}9C!6N8~*`WWzp8Ho^VdYZ?g+#WXo znfT)C+UiPV;T}grcG?~rbAF}4#mL*j3VmZu72S04p|tN_yXmn}N^W}O$yaFXc-<%y z{4)11L@QVniu)xzqv#*AYt0GfQzGT0csRkR4$XzJI7HzAR4422`R$76_uL!q;SDj^ z5hHbhx=L+OWP_qSI-G#Q-n{ntDyRP4n0kyPMHJce0#Iw(VZ0P}!<_Ir;LCJqJkQ99Ngq z_K3d18OQq{t7e+cl_{PC{=>SA$eprvfEawY=!=O+hC^{&tOUyuNq$IPX){)b)*WG4 zS{hN#3HDS7IKeyp&CUrn)<_&bMKIxZ9WoQy2*IBR_V11=&s^{-;FrYt4?X#6TCk*A z9N_VnjG{eo*6-Y(=SldpY?ZbpsGrPuu;HDVOw@yeXp^k!*(RCqjhtv|Sy7W0fDZZV z);K%ts9+X2^M?{1Iwbad}jXl-+xF0NN2QJ>B;4wA7?_NSdcd%)spRY<)Nv9zH_^hyi+~zeLEg~{ zwCQ8Fok9IJ-jKeT@jV@l>cllTi`U`UKwsZ2j1g!jlV;N$Iu`CXZIdRA@$GIpar=!( zcerWn(KsrVH^&F~OdK{dFVN>z6|3lsODE7rU;JWJP$tv)4ll!3Rtw+#6E_D$Nc7hF zs&aby(JQETuZ>hK_>Tx{z;J217U>uR_Bb9J0{A-*Urt?-zWvCPuhF=hpOOtQ>#tovPu_J2b?nH3>jK?GyBv59 z{k&*}l>DC`9RQ08^7-q2n$jde8D@Os0$Ef;d=fVL~`xo%og9{W|gyz^u=UNeOmnxtz-Sf=1&$j zh)*fK1`9u&p1k__RCV}sthJ6FeFM#!zryY{#$}vlI+6Lu~=A z?Q=v4t*X^C30xg|c+u0vqcSjNHOE48nXJE{%OQIWp!3f-O1B)^ zJGEVB$T&Ve)p5rW=j*v&!qoaB#dGabbcUTUj>6GYvJjAV-PI8q3kz08$6OQ_esKJ$ zw9SCcX!hLswAWFWAtwnZZsupv^Y>qbL%cUIaL{*Mg2Kg*PX1@`ue^uqhedJ)W#>R@ zlCWqR7Q(nH1Qx>NkUX3agTf4)&CZz=%_RVw3c=;ki%=B;wLv)*f~!OGI=~KQ0(pon zaU@-ymB$oml6q}bm3$TM{7!&79k3$h#N!^yYGL|%RC162C* z7kF6L03wDaoS0xo%sdoX2_Zgr0EPaBZrqrsGrKjm!MYvjc_iQE;k1-kRl!kTF`3(7 z8~eK-XVLJ#U4=B^*1|kNKpD}c5<+A+#|rO%jJU+`Js`9<*(KBROS!W_f#ds5F>vQIZCk5CPsRYkW<5zCL{)6@Pz4Jglc!%b|5WU zvJ9JKE`f2venuU=`p{VF(PIPK&&{OBqTBC#8e3L%KXD2|$_PdUt)mz|2Q7wvWh{ho zd35#xkP9@4nz1Yjk3=@bJJlRG zZjq5c6o-{ZQ#y$BxnyQ2th}shdiLIns7Lo6mh!C6xvmmMlD1SMj2r(DJ@PE7v+;Ro z_@4@$U)SFz2MH4z8BAzW#&>Ae^(fO;emf58z8V>_!}r=5M=e#*(1R|dmDmX1fL(OY z-gO@J@3)Daw{JV)xJ#r|Wa@78D!V>2#IBj^GBOT|K+)S^0I7f0}JOH58 zr1f21-bH8UHO0`4jEU`uP_ccI0Ie z4dNXCM6L{j;zJ=aXEfI)SJM#q9O`?r;5yUF`%sVRsG)Q`Xj4&LL%S58he{O)g*Me8 zaS)s6ciCRo0%S}?&rE)o&c5PNSKQiprwLQQii0I(mR_pX`@7e*Xt?cqNII-4wyF4Uvw>NEFTOdI#^uId_ZsKthp zgO9(Iewc^y-1t0nn_hGy>eKL{3`2|0qUBZ0Ua7Nfm?GS*%#o%cxMm6tpWLP#=o`I) z@|CZZ2^%4t&rZBZ`lcp|gSBZimol_dzOtN(M_occFGXq?V&MG#P)c0{&CuH>IHm`i zLn>pB8c0kx*kirdE0Dyvwrx1MPW!BktxOWlN&Rr-=>U!|cq)=uQ4lzD#*Mj@=@T?| zve-KmRP3GUkoh?X*ij?4!`jS|D2s?a5C@E*bUozV`xD+ zH_|}EcR`-ec_+xB*W2%X3N_?#m1v(Bb1`L7xm_b*&^pRkf<(?S#>`T?Uiipo*MUiy zb?tTqH07Ba^+_|pS6|t7p_q-`X@{SB11(#Lvkc@wX>D9px^_T%EPSehp4#WZ^a`e< zK3|ZFbA3@9c(eX}6FusjufiT!7>_*r+DCNm6%Q(!2kpy}tMB%X$onkvbp7Uwz|4I%({E zGH(BIr$0n~OxR+S%7})3%z+7nPwE6i02X6IOmQ&|$wMxX-xV7E9es^8hY)qE2w)n-U6sYX~2r= z&;w7Wr7PLdWkL_6i_RV;8eqWg$05-Sr$72kCd?gjT!I7Y3}@<{8B%~%1vHol&KEMX zrdu!>e;u*~U31BC(kVCGBBMseZs3Y_DAj)Sm^<-!9vDKaOsJ`^jHv3~U*t4U#xxNO zXdA(UI}2O;>=CrjupwY5PLH-{-LK-l`9SddH&l$<{;y|a?Szkg4K0Tz-P93M%UDh8 z$Xq#lGu0JHR3;3Y4Y}n;F#Ygdis-6KPLjRuI~{O3l|lH~-x+i4o^;}<11tqv&CJ)P zd`u@^I1z1Wgv>@E;U(?9iI_QPMi!+T?q2u>szYbD#Fj|x3C22roDaZtftvN8Y~~-? z5rz;9JHdQNp6m&3DD1Z@uLDG6k{v|m)d*(zycsJA1LA-6uybE~>@o;ISCcZ{6jD#S z959-Gs}xs`iuc@-E=HkN{(iGvaL#XjJ1qbaW=I7`fmZwA2pFW>2+Vb7^f5&@wR;ul zoaiFBn8+*7IhgiGcsBebuwk+y57uA>_|YdPBL@hZL!=CdGM9^;qo{F{i>@KMi?ZD> z!mExrkAkC1gSK3kuDkR!sm^9xDr4093^g2d@cW9J9;XMNc}F#(FtFUTS}Y=r*!t@l z!jL~`0|N!QUCk2ylg+yWcHNw=x%dQBki&^G!%wH*Dzxy~m}7UN6OTR+K7bYX!ZWYF z^-ntSqI={F2Wi1or(}WafLjFBLbJ? ztH(CTF(~>}Cqy}5NIx2j(+XMDZn@j>K(|(!Yhz6*C9mpu`Gi7k zotw8*sKDwnhj9+lN*a<5jcm|%$Oe_-xUwOpnK#8Vy+>kGyjF(eV^Wa|#HA5Y8LsaR z$A|{7=?jjIaejiXhDwHDjkR!s+0oosqdJ+IUxH^w4D*D5UF?p=qC)RCUH*LbC$m5OFx7Rwz$sY?8Q)G6Hl{&AA zh(zE2IFt583_b^kZU>Xk%o3%DwZYSCf~Md2gvaY?x-d7vMS9t!I^*y`bmHF*k>oQK z>7?BN=7#iO!eh?5i9Vc$Oj;Kb1A@4Z*&Sk~xtnL=7ddhWQCw)aA^VK}uoZdi0Z359 zLftCVDc$wJvuQbkb1bk|o->jTf)mVW?6qIskTrAsbXQ0QLhA zvO)Xqda~38^)y;-HFW~j#x!14BB0w`eeKa(&!jE-Zz7Zz(+Na8=8UW8)9H)lo~?@3 zqKV@#!sO>-r4_Yi7FH;bB#<0fLMB}MVI}BQ7_C36rwq&Y+7$ywo}31na3#`xcN`Gx zc;y9qi$`pDqQGpEo_UEbz4;j_*z2*3K-DNec8$rnn(b{U8*DLW0@0{y1`XI0o6g6b zDmD2PmE9PzH@R^Uf>-gcn73EOh$344sBbT1FKx+ zg>#iJRBBeND5opN-%roK^Sw!u8(0njE?H{wMLSxNHA0s_ba;=jrGc*8SG$THyZtO0 zu=!?I1tZZQ2@*KSaAU`e8Bgzj@?)Zvt^L)6UKv`=k}yWW7t=E?5J_QU-gtDwg-6l| z_(=1Rx3v#aAy(G#K8`wi;r>f-q}7H2Rd~bG!%w_O<8FIF%hm^E@>`4_42?oR49vKH z3y}_;jdbX|a6SO<2?6c+7rvO2*Tj%fn4c*BeSH_!EZgcYrPOBLm z!gP+u+CRTTdMC`RYL~CE6E|d=J~ZK~Gm(U+4{8(fUwc3p=9gdQ(&0ETdhv?L;O+>y z=@YXeO-2+Y%%Vt`ETLWII6x;v%ZBZ^5nVO*Olnogxk2_5%mf`w>TA6H-ZVN6iG$*d zihS8q_DpnX)sqa<=Z>6wWuxHd+1e0r)79-Kael*=oAsgZXU(P&sQ*)iO=*odSY+x8 z=MmnAo|m^d$1=MCJ+Rm3rwI+i@7dP zGoKSI8)9%$Ji!Ox{QwJ47>jT|0O6cqHi06u7~VQ_xoM>MrZcC;u&h{KbjrST$N_tR zV2Ggby}0)7htudJRDJ&IAoSk9!fJBfCy`@=i0E4WBFE#wA68e4)YA4B} ztU#*tQ$9(E+RX73xTG%@7BygCQ_m(&ej%fQCZj}6uMN8)1dKYMr`?Lx*<0m@kRO}vu07$r<=SoCL323iSK{Lj%Fm}=h zy_RV@F_WRJ_g1~=o*T|i5ZX0>3$Lp(qOx*Ce@0(TU(8tnOWQ4J3j`$n3Xu&bj4^2v z4L9a8jgtt5@}-Rh2Uc8h#&G)U-n(JxQMG`hqzd|KeZ;_L{4fWF1+Ebs&n%6i^a|$@ zyAYW)xt}3-Wt33S&KDG*i18!is7vRy=!1_wqodBf19Op!bm*4!&QsS>A=hd(KZTv- z(=WP}rhNL7X%N#!NqkC%>Cjpkj`sv(9RTIg^_0kFOotW<@|H+DBg_k9 zae4Hj?N3o3V0EwF2B{Nd(ypv36UK{D#V7=I!C6Ows2ovMgk^N!3gtAaYdOQP369k$ z+Hsq$Xvxwt+WpW=2qikz4tFN7zm#f*#Db3Q@TqVF4W!&6{dMDjBQ7^xI*Rt(bsH5Z zM<8n_ni1;!e(?pH7q*La1K?zC#-*IN`aO@WQe)eLRbcu@|w3X4z=gG_@rHY$p9=$Rl!aLiv z%BOcquSM;me0t*P$u#y>troq}x*h2yRM6lP<=yn-V`~pO{xX`0)E2McC-Y`=6XwtX zOTP%dBnJ%^eT?eRz99ywSDhdL8UZ-UJ>Uo(Sv@-ELUrq-{cS3P-?4G`F7zZqvU&NKJY#;fvfLanra%+r zaDMNc_!!;$9Ewt*YK7jX44LAv7o+usH=A2!R`UatZYhOKqa|T8W*oM`>#A1LwdWp$ z@`U?p!L=@2j*iZLB^ zDb3}Q(7Y+$naG8TCsMSKO{k;1_e*GP5ugON5x<~^$DfYsZ=0H?(m4qRkQ>@2K;M4* z9qoVgSS$hJBstS;K@GUT*t~`{hg9hV81TtgG6$ukQejMK8`}9Z-alwS7rNqt6KS0; zoIYZLZcG(q#@X4F#wonCq8D_*FUHr%4Ol?bJy5nqRm&s=jMPMZ*fKQ`dnh@o53 z^}D2wu?5T@To?P=om=Tf^4?dgn*Z==^g{1y*dVXOcE z?si7u3ihPEI@Y~W!t(ohS-pTLJRkw=nx$b1zVTbJ`NZ^9!2rj?P!Sz9Y z^WD#43T44G5r4p#-IR~srrD#T}oklHfD5@wDwNs@cD1s)|AdKv?O)`_rzCYjB+3vkh z+TV|AKa+p*ka^zE`+eVcIr};H-gDDVm>^q!N&Uiikr@s%!39W<&iesYA}`Q*%mZ|~ z2H*oSrejn5Kx~R{Aj||KEedoie1H=zGn}f}Ab}Hta86e%!6_1UDwfmU_=}_Hpab>| zXH9V>4?i)3esv41JT8ipNS?zc>>)#j(DO6iq@P`RpKbuRwiMA?X9#l|A&Znt+DpW& zNUD;8TzU}s?T6z?R$~hrgPTz%MnzcRpl+nbJLBS8X~nvj`zC}}Eh;0jTclhFh9(ZW zB3{A3<+OgcnfaNUPFaTvT3ODLx7YT4={HwR!shc{A=1U;a_hnrh`VLd*zNZ`PE+oA zP7W8>k7*h42kaNaQ)bT-O|B>n3{g^&OS7N76~dx`{_^x+>HI4npb;+y}JP!Z{z$uXftNDNotOk|5K$r-F2GHT?00g}5Z$|!w$3{`Emnsh$gyz%3bs)B<#%(=?}eK zp%NQ=5X^xnUH!X(=3+vLMX~Oz!Tc&ay5f+eUU&SvrX(U>=ANjb@DJGGy10Tf$_;2|W;8SKsspy6>rX zMH6kgc`y3=!`CVf3=}oBH8k;zE9k>7*1}+or$&Z)t#tH03`apoDyCQi@LC|kTA=>6 z7D%&0ck(&G90eMInc%tb0eWIB5NCy`M;LU(o@@fy#}FF0%n|F-MR-K*a3e$7YCu=y zlerY}W9<0}R7mtaIdaVb9*(i|GZVAL-VO_ZS$~jB0ckjvB72o!))#Jv!^M-&0is2R)=)y^`o5m%X^yJZnQC-)iO)IaAo|&VLn`zFct7V3F z!VkvKRTrO-Ro{{?mtd0YYN}k@rtnJqRSg7a*99l84b6OWIB_}24hzh&&Dhj`lIXv`N=o?7cmYw%nr3 zRIL`g_O}n=D4sV^Njs9S_N3ddJ4c+qsSiFwQ||h!rU7BVnJN`zT1V8fP%;drLF^>q zaCy4tCOE!0Y){LW?Q9ewJxCno)j;@_*WFIf&su`{365wande15@Ses>}544BQE_XQn(>eV=_7`YLkNpJq;@i;|iuV}u(kN5zS zWQU!8GaAt}_WFr%$nwz?3n~J!ICiJdE<25cv!sqFOMn?~ zyiaHS;!c@D&nFzwbL+WSXEK65`C<_rj>K6x1ssA5Hcm7d0<2Tf%W%~;*}Ry5bc>VE zJ34ZQFjBBay!(QKR>aevdggER^IzXjg{6Fgqo-xphEm#hpCd}vEIA%w6qw7RE0WVh z8N_;RzKgM1mgZ!7ZKr*A8bIY(Dn4j)o)?JHMn|dq7`34i-;(94k=Fc5oV|=tGKW&R zkR6gOp-(C1j&u}S+^as_i)hv}w@7Gu>L310H{SCS?EfOH0cxSwkUwd#ZERwHrV%s1 z*Z=k|y63TXC68+)4eMv@U|Kvt1;GTuN%07Sjz@Or&fO8l)}kzi z!%_%Dfp8iS!k}0TjinGg9b~0_vH1P*J($CL188Z*XSTbEsA1_#`%OVWnu79K8R!ySqbHqna zLm$24x9E@9YM2MdEU;k^&XH++@9jLCQ#@(%t@P>A7L~S9kh}e$65TYMtNJkUBOyH| zDrPXPU%%Am<)seMZi!{2Au&^;SrW$r5r_jTZn$J39sZ+3e3Uv~sXKB0t-~gR=#6(i zp%X5+MQ4#@X|hUP*F-7^G-T=em93-8&-)RbaO6R>X3ZKp;-pJy(JCAyjuP7r?T4ii zzm9~AwpXuNP5b=d3~I>j4soGAM+BTy9JQNkYf%m+Fsw@qw*}Y{hB@Fy9G{HjxHu^u zJHp1##Q_0FNIJ(2x5D8X{U#Oe;I8)cyl1}BRYA~9d6Ekyz;_Wm)(t0a~wxP}EdToMI^^x*bSq zrrRbTL;HVsUq!tE@{@{1H2#!pF#(fDdDy9S{l!0~{r4LyD)#%wUqO{s^$EZCY}5pnsC(NSTT#FT;8(v zL3uIJASQ^}**@$fL})6OOYZ)Zc*AZiG$wIIghqGRW+3KDCd&qxsehbCw?Bv+M2JB3 z>{cw<^Lq5;gkUPc88>(T=~24jo*8nEu~Il-nE!Chy9IXyZy#DG8$1*$I@zWW(A6Kq3E5Un<`b~Bjk zp$96`_$Q|%JoexnG2?p-qN`m3Ava^;&%q~LK}%PxMHy_EAGJAMaq(#q{kZCu`{{wl zIUTu%MBT^KonRg{;meF1)b`LFlW2z#TLd#Cm>7l}r4{d7hCZJA2_1L#WU6V!@?IcP zH3XXm>q%^r)=G1U&F}L7HugY>_^qeZ$NJPfa1+3IC^*e#j-;|K_%q0)QTrvbNnb{L z>^>$jA+q~nyrcACrdP$H4NbUK2 zB4iGY8ZihfXfF?C8G6fCtf13=eiME0MUB>pn=T}DkS=fdA~HunqCrtA1q>Fl6D*tJ z3y>a2qd?=aC31RaCdV~;0s|11Lcj;$IVgRZ;eIQrp%d^hY9c4S=26cV|_?Ce3i52lNLb|MYJLOF+> zDz(VaG1M5x{=%zs=z>)2Qv){8F&9wteNb*Xj84kj}D@Ps_BvD)0n8;bV+pDj-TQ>xd4M=K**>K->|w z64{~0OM3K9oCjc%mYHBXAOm^Z3Skk;2{FTWR}&}=8?HYn-;O9_6A5Iv5rLpUX~s1F z)kv26W1K~sij>uB*3o`g1=@sznKRf#^TTmNf$Wp1XV0Esj)&>qzq}@Z^@xz0BVO~> z7fnC{UWDkRlv2De(NG+#N>=GkREvW+?t5rDW=>zAf)bu>wIv5eiJ>0F&w6;(Iuv*M zFi28ycI|~E#2V{xN7<-J2+Aa;S7J1j_L&o_wKY^x`Po0BiAN!m93RnS#G|s;!5O$c z5F0PDyXCGY>5d1U*I8ieJ7>_~zH(^xRvZ(1@P2#Hg85(2nU^9Mu()2zjofB)dhG6B z#v!5AhK5GE{K{MCu^HHnmPCIP?pkLs8ExPyCj}|SdTO4!DajjR2w~73d`zmH5VHX` z#d8!0l)z4~%>#I5xGkUol>TjiOi0QRMjiU4Hn$HDFw=);IA^>xgD$!5L2AtKxnNpvOpfIwZERrnb!y{g+x`jzISJA~AxI!V z3)&^ynU0du>oeu0z*IF8qDj1*d$aD?s(8hzw978oV(N1PE`#Gh1CdMH3^`PH;jize zN1uC3wwp5XOYLBYZHH}&{p`EJr8`T4>qe|+Qxy6$&>K}k+as8rUqO9B1%%2Q~MU9fr1 zm?DHpT?+_TDpT@%lA8V1*XXiq@1@nvMS2c_wI8IpJ8AZ9>ckYDGi)OL*#z`C5)%h1 z1RTLmAj)Jy9$AvndyuUHcu3;vm@4Hj&L_I(h~9MFuP&g?24ZocLR)n}Fhy0M#O!pc zv6_+Nv;4*f>5=E&lvShr;r={w+XXag4zj(@hvZ3mbZm;}yg&%V zNN&(hj{+eb9ZVpkN5`gk!eTgV(}fdECEJW)1_+}y;2H1*zpnbi2vxNQf>3}nQM4l( zbnsqfSoUxxA`3mWS`!g`0?YHS&J~2^b~Ml}zdVMfRkWMMcBu z;M2Z1TX8K-$j|gD82`TMFCqK(8Vh#i(6>horMquFAM5@b>A^ogPS+!_VSrL?B5*fLtP>@hqWv-;dfTq`DBvp)_~wG!Nxak%JEjFx3$)a) z#)7M#)0kaH2jXWy^2FEyN0%ea)*?}qF~fV(RhOPlLk16~nQy#DXIy%hB)sJ;#l!mN z(Iw|hq}}(}!%}s-EgZ-p5HOo3?_!77O}E`oZ+%vS1!jDpn<2wZpaf4I(hRnin?W`- zMkmibq(r}dBuqIk!M(9mG!e7t!hR?-YCc(ov$_Z-)%hDhv99;soQ6JkbEg0C0jal9J(K0;yIDZj6a;&lMDALXGSUZbk$O zELr}G=N&n%G~s~l=$uoIkpr2Xi8x2jFL2t(6ED0g^wZW-Ll>O5ADwjUPq34#h%Uf7 zmuF{Ubt39&#mw=rP4npT^G~4Bqj$yGz09-PNhcWo&9V5oAALku-gqayS5d2nT$?|j z%p8PVqP7(~(PdL<8?M|pq9K|U>0oel$5L;bm>`# z)5#MKqE$Hg=GrND(_dy_GLroY;OIVV9@=O3k?KzgEoW%);w6~0yq-Q;(um$^Ryg;| z-0XLo--9Ko`KvBU6jEL}-{%c6ycmv`LO|qNVl1RZ$#h~ANH7cr7y&1^x*9XV$PG%R zniy-Fv2cP75sp+1awwt{=%x;p3UsLWUl)LR*ffSui*oAd_t&0@CBM)DPKBte4x!IO zaO~!?l{M&52jK`|y5X0n(8!S^X~oJaB!s%2R#oE}%JN==?aGSil5>v-6ChcW7`H~0 zg0~KuGiMIcc05FHe7Hu|wZtU$i3H0cGR3-wddVO@ffc}KFKuC>9yd1hS zH^qBe6y6hz73G)+gA6RViC>)0Amc;@%xV+ zL|0vQ4)w$$kW@`R@YoFc^>2|F4>o!mvL$?X*8wPZ9`(iK*gxLJ5{V0MQwV~{IQ!i0 z+ipVVo;E?Gp{rUZ{rroV@es^52O2c zHh&0&2x;0oChb!5BoU}K-XJr@?8%~dsm22ha;aSxNrS^>(dUkqS~~s6F?9SfM`DQy zwotNW#O(I#ug?P0KR|DPx)w_nAVDw{EX0Na1&Ff!?V-su7-?ue`FJj!e$kDzxC+4q zEJ);ZC{N#WISn5+M5){G#SZe>2#?NN%F^Fp=)+V>4t`e{qnThz?AE@)Qp(5!9n^A; z0%0kHgh4quF6RdA{2gI3pNP%`>|I03ZNKL_t)N0>@37 z5Z*HGcj8oAR3(;ifHHxVE6g;~9akZ9-0r*Cl)3_?6|=)9P5KSJ{lNkSY+D^oKKl?l z`1=Q97P*wJ#@xXDkG+a2dE+=XleaX{nC*Jeg=d{W+l|;x67atM`fE5{@j?1xWe3b7 zll;On=4P7hAFKu;Tt`f#MLyLsAk~oVCWSYX)T?5+&DV%*om@{{`tTDm9GEY!&F&UirrO+Arwa;IlJ=a?(3J^SOAAhDf!!`5+H_9&i^|O zyBPHa^t6h|9se6ut!b!FQkh|D{vc^oIgTc&;KO)?9GgnE)*I^$FYZd`WPk0>op5BbASAoZ zs>u}|joj?}Q$=eI@Gj~Qwlx9Hj%vC7ENGB?8+-m-zbXF==DMPfhCX9`)@<&jMC|te&PH1+`dmcEx9#7g- z{B)&n*%wEUqd1pLOY^@JA_Xo5V5e-?H9G5_6Y3zyLxev}L}TnD@%o76ej&TA5Tjud&|>v0AfG`MdHnI@Unlkw zuKActD4+!cPAfF)9bSYp>>75B6Exl)(?od&_HXOx#FEO5CM@O7B;@aPThjQ3jd#)(?-P zQU3gvfnkTKB4v(r>2*p-NDC*WSd;JY`M#8sn!IWF)K#z$A)wzB<*9kz2T_&`nePFA z-u>YjRx+3u6bcYZBV$|q)=%a@_Yvj>#&7J%`u73NdM78{|NJ|0>|d|=9TNo8$1^9( zF6-N@XhzC=ugpu3h0&5qyQ*&xfOn70fj=tRGaK6t5tk}F@SOik~??QjjylHmX9ypRj^TAWe{?#KK5E%^1NI3=> z!!{89!5l&-f&t6cbq<~xL6*kOL0XT19k=P zx){g{P*lu_2)2a)SUmI%FMc{$P3xFanCP%c7vt~%w<;H>Bd^&Uhx2q;U)WTYVyhgx z7jkSN;V%-sfDHIZ?oT=FLPj=GS`VEKQCZ&Y^RD#%=%V=Nf$Z1fRoqO7HUsi?l0Z9kh|Uf3CY+uMc@GC#)kd zIfubZmG@~0(3yS|e6-y-UV(&a0xy~&F#m~RAxtF8-?=L|mNACOCLO4-|DrAa8j_8Y zn1*7t&fYl-2%R=Wb0NwXH;P8k$ms33m6SprtfBRZLp-WW;Y~SyUxqljKE}rjVRT%F z!J(J^$52;Hs?Y;rj)-Bkr=facV_k0u)h#?{c&K-Cy;`L;T?A4Pa7hB5pIiZKwtEb|ThF zbW)bS)DZ;WGvl_02oQY7oPQT{<#GMP6a564HTfKZvi>GaRstc~o31f%)X|NRFwrl|r-`yl!8H{5WL3{D_cbGy@n$G5bHkr%&9+hpHP^HCH9! z(zKb+iC))XP>iJKskP~(Snxs zdB&m)iB#mg?7Cxce+oJ8oAMxUq6t->x15{WlA3+5-Hk-1+$AAeg} zHbq_tSz8I)O_LYfQJl|N2PXzdm3{%SOS$H(%KJjfgVjb&J>w8NG>*fFmtnlXGn@SP z^w45fbO&}r1iE5vHyri4yvKa7CBSD+^3el)92ikM2pmzPI}((I2|3K~R0}p_%F*!8 zU2YHQ6k4lzAQyXKEyU3SaH~0?P{kZsAi}7r$nGKCf~4BtO6fA(k$6e*Lf6=f=s#d| zPOCoQ{;qc&l=B)HdxvZKsEhN*q>3|WU=tjMrN6O+us4on7;_I%ktxkj@Eq#KPGryQip zE_DXj{SHML4{6Z#X5NG;EfCq%cafaSzF>oRe%t@De80i8LGJg$3Fj9-2ujP$HIxjP z2}g59^`l_U0(EE0a@&S3ov?sZ3JsrMpH_B+0DJMx%~2Qgn^M|qbwi%PoBs&H|BUUD zn#luoK(I+fx><)d;$=||B7y6SDHHt%zn-Z}l9@F&wDXoRl+Q&JY^uuV5NXS}=FJ%* zEN?xw6re3UcS>3Yvv7G%Bp@gLn?0~4b%0X}Z^-3&Q*&Aft04Y29~c;#Mh}VLYZ8to z@4kMx(~F^?qZb96+`TZ5fHSc56(g@B#zg6eYfdvYkPEXk(F}zU`dF$MG}*v@NbFrB z%JpF+p{lv|W#KljnIa_95}kCr`hJ@dp-YCHg1M%q-ERS`Tw33rUKV?g{qJGc`-N)a zf=h96Xy((huInWJ%K|Q;=E0x%T99yKI^S&WtChvNy4u0m58ep#z88V7%l!*0WjA69 za&F4XK^<3i-maON3MR$S{4>t8&H;LfwRs7^NW8%0{Sy*;83;%- z$|Y`&-usX2Od&jo5#hB)tT@&oBZ`a{Fj5{B7SA@+V@ZqUL;|*4=_;|wk`Uuw;aftW zaV!%}>H-m#QQK8Cl1l>Kw|ZvR%Q;EItN@_|4SREe$3wVI5F0H|;PgueyQ-2cr`1jE zGKKtH(?BhRdjvnBWCvd$+zY4CGHGMV#o-!OGTzuK?E)HwFVIN$jAHl`3@%it=2U30 z1v22Els_#gHsT`%t4pnY+WAP$B86rtDCp+x%ei_82%Dghm)(BY`d)ithl2QWZY@u2 z4=tK!r5l8WQK_rVK_dY<7A=^Khg)7>naz{WIaE{ocgs(Tf?r_L1Eur0E}A9{cocKC z9l=@r>$P3P>n@a&miHCE<`7dnSQo0)F(xrXcyuI)(4%e)sT@Po(BC;b6CzVO6Y6FK z<#0Vje^|zuzff2X8Y1d=jv+aaYNYunSjD+}>s{EK0@#Chl2Un(;o#Jh8hGF{bMn@>2%-bT6AhXqNwAqM2cI%LBKu#6xL1jsU&Byfu8uvHpj0B z%Y~t(G;=Kkxd?kN0wo2v74*&r6ZAjJa8Od-yRN90JF7O7V-3`SDc_i-`-jPlX+1Om z88R!Wz;#VE8oRk6YJGeApEzD$x?GogL?>%m-~sni%D>)W-?zK4&6U7D-d^`GSMZy~ zkn$sgL-?&*B7ql+;pfMUuOjn^7@esyX!H?e#QReHGZ%@tF(7aOy+Q0wU5&-X z7B^|{^jiHr+Wl(<4b%mJzw1KCIzY?KPJ%Jyc5bb-gGj_XSWgUrBXkck0EyL&==+BV zOCAk}ieED!e=S1WE?}TLbDG(}cC$mxGwoB-n$1zgKsF3hj-6VoH z-$az5)_5jYIv)wszi1Zwco0IgH(gFLST$-S92Ca>z3HC;)7l!8BllR8iLZ@n5f*Nw z3)i1%e4^SXz~u?%_>KhqM40&uw)Jwjp#~_)Gwm>3aF`U9vUUsL&Jdr*!OvhBm@kn% z4WsTWJ7e^h5!d&`&`SLe3ZJ(LLUr6IS!|}d7O7k%CM-f{xLX`q-mCm}&i@u!T0bGH z9XPV#w|ST*VkoHv;T6c^Kmv!g*djCzcTy$HjQG2lkS5e(i`vj;V5LkM=bj`hlv%_y zVx&YC7z2^#qQVKA@d#`;$m0(GNec3Q3-LSxZdCjHr992D#``j%XYzb0r@xFd7w6*4 zP`v;UMQt~dlnQ()?xH-2^GPaGsEdH2* zm`9smp}~cjaJGB}dSnLa<3nz(raT7z#p)D$=0esNN?_SPSYt8B2sIo9Q#i5?cn(61 zGUJ#`Ks#6W5|shXxnBYmm0I)I?Q`+K5YGZx zy}wwN-NbHWBJdviG%o=P#=kYBqWkp3U-%wT_#ftVwQR#*K}p#%#OT23jdSliS+%fMjjrKMm z34Ns&2z19Z3?^I&q1mbU3BZdX_Jf(E zP<=5PF;z;1u{5|{(&&p)!1=M``EDm%0ICjn;d1+The#~vy>&wn3?8mtjK^?@uLi%= z%-^USBj}3PitLZ6Q=G>&VauWK^TFo5m+Fy7f_zaQ^eh7x`t&|v1kD^Bh) z?B0#WA-Q5#v^c6sOQdT);Z3X*0IZ_t0P^v5nCFYxDu93`Y`o`Ahx>*{*~a&=3H#Vz z#Hgaqs)9=L??5Aq?Xfv6rtHN*#ET{2f%FVF1rP$X)M3 zHFiYE!FL~HUm}FzIRRo+R@{^$C?pB1o>bg#P&rieo=8pYYbr5V!1LH)>FHQLQ;?Vk z3#79V}f$3V#+l$AouXB`a{36DD zHlgRWC_{NM!qJ`~Ekew307eNiVQa<_Y+=nbS5}OzmK)cHk2f0L?dwr@b(T_uSZJh+ zP*^L4F{Kl$Sm*VT>v6gro>w$tqeOtJnCLH2Bw$NsjUzs25AYIrw*^X9E->{Fbq3RHT@G*#2)-;!zm97E_50 z8e6Mhy~vlgztB_#Cc;@pH^RvWv@lRJ6qsX)b7}sx#%BSWGFGy)f9psI-isBhk|}%L zk?NVX4si4H2|};0LEe?So>{Q&nW*~fr1NFvalEu|-mvddSxaEyiu8S^-@Duzc|5P~ zc!YSy>HgUBwYIfR^=oEmNmYi&fOhFZQ};rb|4Ubzz*NQ$yO^J>lWpkk{un1}H9NO4 zFJRL8i#4<-37IIXSMxOxX6(Di8SK27gM3(4GQc#rkD-c>slYFora#+6MM(7Eu1ktG zv}kwZdU!oM`IhhyxTT}76pOEy6v?2l#Bw&SAu${7g z&f<`{7^LT?(v6qek7Uv!c9tSAxH^Pq9*28jo-dNM7W)hR%tUnz9Kw_;pzhW2ib8B$ zz>iKfdd5J1X&}^_-XIlNt~gs*4TpSznTQ*bgp`J?z`OkYaA^g|rUiSPdzk4C`YAT2C#-19; zSW>+6{u~D}>fny~XYyaqJNjygFBF$2yTu49RUcX#@(W5i>KC&hj04|KVz^Rd)P^8W zE-XaCWlgx!tND@yiFiDTaQtS-s}@>?dbYj!xZhM(YwOe8fSEKkhJf5V1dbOrRil+& zt&zwWj43lf7=QiX!=njeVV=UTMd@>skQwXt_zith6JVmqC*Aga$8G)Zj6PYf*tc20na(mA@_oiSevDP`A#!m1=kIgl#?uu~&* z$@^OzT|uLOi-nq@cK^9v74=Alnrj`(jK~2L!W`!a{l}myx}x|6`2 zBGGZ>w#eQGo#YC;?lY^*=6b5Z2IBV1b}#N&P8}`9sH}0wcXN|pt?$b^_UldQ)#`>r za3inLYe7IR<(bIZq>#;E=({!D~`h9t+(aQJ9yCA9oy!K;Gtv`wHR3BcK_r$UyzN@ zg_%@{Y4?{G7?HrO6(FBeJ+}z`_FUmRgvE`%!wF5!elF?F|ByOKtd5Pt zqBV+|C^FG$y#kd@>JTMfi_|9;6^*wkX=_|i{0ElSy%2?2m|4ukk8Ee1%)yWlbBoSz zwFRvOo_q_7voc>x`fdVpiFC=hjSk(G4aKr3keKKGPt`F^J;J&8wl^8 z@DS{n_W*vDfc{YrJ4+8{o)IO_6AYTnYRnD|}M3@D!OEBIA-cuDuk7o`?bo z;DF|_8sUiqKv)mZbSf9RGakP0Z6KTNDwApKft_y{(^vxYc4ehC9{oFA&*Slj7L78k zK=8>%3VM-amM%`Be@Ramgu{ApSQ>mWJyXSEk)-0fZ%-=dDE*C8o>)Enzef3lL4s2?uGXI{ER zCBYUa`SnEc99Ij`6rYxaJlEqlO2{)p5x7Z(k%Nv_{d(t@0pH04KIh_D-z(fHJ2i}K zklAv=&fsL$Xp*6(THD00tnTs_xh)yuy}ym(T~UrBNJ7R6QD35u+%Uvq{k=@M!F;Kh z&`SV30O*VPX^oODR0xYrK~;yb_x%Fb3aCJ03N)r)cLs61-=<<1V04~9%D_fvewlv*!xvnDe*NZC8eB~w+AGacE0beEwm>7g z+^$MNAm?+_!+8vsAj%3`kqC^<-SQ;=NIgTA?Y-mjcwep99KgbC_&ZNV0UrZimSkm# z*%cc`5KCcET9=xb@3DcF%QUWT9Ii}E61ki_YB*Mco#C;pbP(1E)sXstsI&@Ug@554 zs#txqT!nLfCdCycxbfM&3fru|@UeN%AiR>M9PGW>X~Seg%-|NYAz_BG9jJFX@t0$q z^$flCJ`~s409lCQ>~TzWbf0G9e3eWjOF(cTkaiqwaqQ1IP@coa9+hJpYCM=v?GDnv z%NwCBZIH{8@^&q!l8)2;MSI$cPPzX2LUgdy4lxiW4p;~4Yq3y`x``p+h#r28V$RNH z**sakR>j;#2n8ofM^!9&x-5xo!xRaBMfKz19 z(+ENWp|0y@RQP@stGI;n!>06V7EJ_NP4xvq!Sa0VCc%=G6JH70wAy*)4+SVazxD{uuI{FN=OVj>59Z5PF z#UB*u8}p<^G;B6oK%xvb;VAPcZZ)n>(s|n7 z(e+-)2eOf}4;3+(7)v0xGn}wJA}fBY%Q$NjMkXL^feWww?uy@Itgurc!_b+Pgl1Ch zsmd?r7Edk(yGbCQbNf3aO5NzIP6f$* zwpJgh<6LA1r)UQUi0nSW|Nyj`^!m_{(Y)Al$rFPrL}ehJDX8sXKn> zsT+){A;Ut42O`pRK6Kl2j4_31lsu_h|3K*VNnWY79D$yb!H6{2*1~senSE4{fn;XV z(#d~VO1DA?IIL}uLC+hy9aGpv{`qHVZ`7Fv{lGICu??vz`Y$ua;ebIpj+S@OlbuS1 z^dB^H2K1=^pO9Ep<(D5H{E_t)e{tfO$pXP=mmqFVDmkL5kW}06E0YEsHW`bBEsk5P zGR=tt6pBiFH+U2)J1n;a@xUvP$txAnjDDK1c{#Cvuu%!+>3XEnHkT2d<&7m!d>%?b z!cF2o3~cswxrynnm|T;($gO(?JA91iVS&iGh60r~73n1|05t^YHnrT zRirFEnX@893KX0RFy$@|3!^qC{#B3)1d{of~s(F73fuN zbf!w@a+XZWZ=bx9hqYVoUtA+MaP-+?N`QG0fg zq$6g`NTv^SpF}L+%F8iRMS{YZC6IkHHlejze7?PAQS(3h)sw0Meqq+ zAPae>-Kr|`i^87q*kdH(aeyDnV_GHSl+B?G{v7A2wU{%Pwq4A#RI*YkhbG2olN((| zqtI+Tp`)WSISB;aG(`NWQ1c$Y%V?>}+7Z!7{D}E<*8tb0!3_zjbs%w58nlGLRC@~`2_sxR|! zm(RV;TO7Lm?mH?JgYW%;*P&j22ztB+<8Fe;QO9}DQ;ZTz)MP`J5>w60u_(_6bSt~k$T1GYiz{$`ml#*qL)0^K;%C3Cav)g8#9a)hRqd1 zeHeh`NLDp56d@Qnl$!UKSE=bQkf}OOKFyl*;f#z2*s49~z|ch!%S)FPbIVV_Y|zRD zTg7UJoloz6sZWQN!R8`^6SMGn3wdYK`A7!;qVkWRyCBpK87UKx-0ftqG~bND}4XP<{`FECJ|gv zw;lGmfu`P_85VFZwaW*bBP-8&lsm48nnZ=*xd>> zXVinxsHC`INmg&_F{m@Bp|yD(FMBMfG9sk7iIH)jsl;u>bu~%(|6vkbIgQ>rM{PVU zCNDM+u?Hf7?|T8Qp>AgK4raiN5=OEP{-QzaAV#o_Y5+id$Q)2OL`Y~=&Z0s>QdmWf zkw%gOSrlDvO*`r}m3!lO%7hsmsr{3vLegi|2?k_ALP*f4VQylzxfwkn(Oj<#l~NxU zP--gktF3nw0nz^vbB8h^60H|v@6-VBK4X20GhhvOf-FjoG7uXRHy@*c~yV zbMR&~rj2ta--rV%@FM1zLp!(&73?7xQ%CJ1zAiC8wLZK=R&^OPtXEh3J8zMNtRR>xyUW9m0q^k;=##HbTxgILExCK|}(PQbEI zsz7&QevfHtt0v4Fb(E5;x&S? zh9!;4JL(sML=N*jS?S(_8B`kS7Ihr08W@eW?eGjQK|qLw@}Y^lXiB%=6|$knlu*<5Vq zVh;NTscJ-karZzYHTn=Fq7_s)@`lvhfmB0dBhr;8@L*`Dt16WAY(E4u}bm60g)MkHX_=rURCnP-t3 zJ}Q$YToMJ3G!K=$xN%FtL%M}ZYD&a&ux$DjBzu$6HCeQrFpI#gIX7~_{u1j9Fy9lQ zr1Z1nMtnfr@kmKZ()4B1Cy207>&F}!Q*XhKUbv+c1bG_NF;M37$1tzk0Plja+}1z)yTDR$&ilBr+U|oKKEikC?Zlfm$kNuNb0Q znC7)`KbjH4C0n0PPa*rnIZU|sPPxS?P&G9JmxT+M+hp0LklWavYjnJWTo_H|IAT9m z^>d*P1eSQTKA-|LEASHvO^{olm1=7s;H31qTJf_9u``BJeJ{^Q3c}&q$)Ry^=nU1e zO0d|K-$R1B@orywn3IZK2aH4Q5%jCd6b#XfrA-%Gb1BP1tk zJgikeXw2+N`e4UqTGH8&%pwihao%1FF)S=mAIp4MLz~}s7x|L%VHh+Fu0FMGMBk~i zko9EJu0D709Wx{uP!~_@)#0?nPP^@6L}M=Ccxz*{KvZe3%@eh5*(w*}#7HXDT~qgp z;P;+&B--E%cJj~4)?RyU>N6D9$Aloiq`bJewteNe%U*xeXE@pm>g0}~r5wa-m*NM0 zRAQyUswj$T3Lp9!e3&O?^|RLsGI?KO)Y)1_s9Ta~7)@5koeV~}LrlfC1N1x%c5JPY zqnnZ<9;J?0na9uso)f;pmd8`KBE@B$6_T@agP|hyJjn5d8R80QU0EKfLVhQ@#gk2n zThXiEMmZ>LzSOG;&#aEq3uCJ8X{pRaJqwx)d@_O!ZXJ8^z3hn8qZ6B)bv#l6rNu#SPlZz!B}z^84WnEm&YXGKgu*e86c8po zcsn%>z5)Z&-T%k=iYV4UNu|z;B)K=OPtXInR2&Bvw~PI$VEwq(Y_YT6)>ijz zwE_R==qPs@2n*OE{1;)>7x1(GnM#|@M7*Q3skEuQ>Cg|Tk$Ja$Y5O#`)#s>06p@aQ z14hLXxuI$(mU6K|Gi}XQsijCQ7ZC^`C5Wd8;b`h+XzC#4q%ks!1c~PnpD6#uvT+=# zUbU@{4CV^UMJq^q?T|VBi?g2@xdsEm&eto{O(8QQNr$JHD9XF^4}}SZx-q>Jt{-j~ zgXRyeLs(}kdR`Be<#=^XNaX$+vD`PEhJZX)?xU`DW9ctHxcdB)d4KFC|3tgZYiReB zRDuFr_<7vx7p+6%qt+T%m*0A}a~mQx7L0rr@J#+Sst2@(MXe)HpRZ|RBJ5_vet&Bu zX@HFWvg(^hnDR*At7?GUx*@J^h$0**=12rG)B~KnFI-v8Xceo-rE%jxT`lrQT*3$) zvPi=AjBC?%D>iuT3$})vhDK8C9}y4Ub#`lZmaOp50F8R@g2-NOKi#s@I-}K8^YFXQ zLWocrE8_@g_E-Tf-(upEfCME!*Bu`OcC>Z1DG@NIa4`3HNwxOvceGm0g4+7xq8gyd;$gkTCJ`rh{V`h_V|cFFJNS5!17xpL+LS^v<48RY znj%wn6JRkaWIaRn9SI8=`=~_-GIb=5pG-{QQ@UbU0k5NOehj^g-ZxW>po{;PMa{0cY&P@*L`61oAA~J& zLcyt&gC54{eBRDJk6gV_u8;@8l~h+BzmoGuJd1V&=FYUn87?G$R!{%5_f;$JyO9Tv zmthwK4>gerM?ByotNc_G%RTgj|K51Mzw)-BRGqSj)wqQL(tGhc+#^0WNCFJIc1 zZ`8MR1RtW}FnvzfZ*EFDV;gIM7YPd4t<_l5ptPg5#A)kZ_B?IYtAV@>92>%u)YOU< zrN6maRA#tfvBs|K4&6>_DuG%P^%U3dn-&6Tn_)~Uk04dE)m+|SYcLd?eya;}v3X@z z&FogFv;s>`No&z!ve7;pft$T9|00mvYs9N#b$hJCk*p-Vj@3nYk7j|)_?dxZ1uK%x zZQxYQ+!YxL04|y!;uL!7y&McfHqgUuf4^~M#JR9Yfq2|2E4X6%P0xm6>Q7`{^^2LY z7Ix~cX+{m1&u1-oqK#RSPwOv=`Xs9?Qtynd0kaG3Z@XI`E5k@97B23Dwg;BsF!AB9 zeIh}|wh-T5VYUVJ(_Oy|el)X}ArxolfEAW0x=jt!OPU^#k z-OYNq$I*$ht_aQDk>@CQrf@33=TeG9L{D`&=aF3N7w!i+q46@}ygltq6@a?QC`~Dt<1hb8!;f_z z6o*PZF+X)>E8gm_HzhGBV`tFfNtZ=ZNBve)H(FGxB3;W?q?VY4S>b`4t3>L1fMP-8 zCwNt*Eo;7S+Oetq1*an10`oGww~s@Nktp!*blTPFSc;1erEn=D^+0j}1xwYNt~r+_ zfXq(bz|av*u3SgiHxr_Dec6P+wiy|xuaSSDwYaFkTw?3qi?NNfW+*e7yGH71XVZlp@n5wa!}3o`di=QW!s+Z!3~YtQ8@2uSxIU zyvTEV@D}}b*o2tggeaj;CGbU+j6CY`!xj}<#)3bujN{V|cGFfv3YEUa03*eq1rNg) zsGl@N-0y>r#+6EX!k@N19hiNHou!k{si?;N8y&)q>X@ZbVzU~*v-)o--TK0HNJ67* zce)fa&oix>?|Pf*kHY%>_{Ve`RWzzg+f5#x4;#@Xl7jkvQ37tdOFyd}rL=q+)r6rF z^}PihAl`iRwZwb~LtY{8)}uqTmg7UVHnt-b8_mzEsv?YYMLSVV1iPwynAi_Rj9M6H zW}-L2_SZW0Kds=(LslxsinAjFW*s4<#r-93OIryVy+v$&y+uX&T*(vRDFc1SzK4zD z^tQr01gYWNHEMrSZ?FW?`arQ>A)n|A9RPb3_`+={uMj{GmXLUs>^cIw z9p#9>lXaztvGN|8p04j4 zdaXuY^#gcwfHX0$$xZfT&$18&(WVH3;TijdM(v1Tn9_8YTVsZzZSq<;VL(H( z2d9+LuE`Hn>)$ezqv55E07=A$s8m5-K&0VyyoOiJCn<)~TBI#Qe3p|}+dcGsrKRwa z$Zc~<)`aTJl_rySy6(HKDoit+*{?7W4bea3pyTgEpQ5=YcMewD`NHTOSb7G!x^>;> z&+bgZ@GQ(u9Hk5$TxsNO#b9QM8|=YAjF1Z1T<$tChIPKA56J(GE6DnX;eN{YA))MA ze5OoV?V^((;Zp|%sl=x@zZ462X>K=j)KGK-LSBl?JqG{X%KNEq?9pVk%U95-G2B=o zx+1L$+R#%o)=B&5)TO-q)!w=XoHy+KbLgkqX9k&kH+qtKC}^9|YPmrW4Q+}WAQ}W! z^$c@f55R48pZK7$Ta|*%=Zxwl?# zSZmFtfpiA|%&x%p$Dl`k5!V_tZmi3bRI^N zgL*p4oNb&~T~R#F6(8$*mB39z9oX(u$NjwroF$AUCF6{g;jC#Y{I#+dZ(yjK{U}10 zTtoU@v*NFr{1U=`u@0Wxn|t@)aCP(g@_$7Lixw6f;Sf0;&&LNkIZEv)9n|vcJrb}C? zPp-!`9%A}6tnU0~+Wduv$qdj}G{ORni@vy(G1QN`+a~iTj`CsyyO++|O#7{KGImu3 z`FJ^lo9^ez?#j5p)J0`2jb-IdN24)49N3^6SlIXM5+TLVq4Cq=a##w5~ zUmow#YRwnTC`>sgVn00ux^ZsZJir*UhH?9*m2A@ zjE~B%{TWOBWhRd;o`L_oG5H_%pQjy9LqYEG5Etyrj#~T)X#azHbR|1gVjs0FY9_YC z29M)^U&nVO0~KFYkGNaj9#`H#CBBBHwP2Nfa#gA68I zu+xbmeAM_y=&C%YbWNUnTJ$6cJL2E^zv8df)=+NQbcCc8M>I?U**BQ~KJ7T2sQVz! z!1LBdc0RMVU~cYhf^T=`l{5^*oN6?68)1}ZRs4w6N@q61z9#2_y!Cjk9$@C4k*{L{ z$}dAa>AoI<&_-8-0%Rwn@rd@sYuX%0=-QqWv&@2KrlCh6HWF6r#Z9@kH4|3Wu~{() zLom%rh}-YA99~bNvTnRC&awE}fww`iR4sX!+WbthmLl^)!c~J{ zuU||DWICJfw-$YoV|3o`Hr02P*^#0<^X7qthK9ct{->tR0Oxr8gd%}rtO??`(w)nO>c#hG4{r#-HiG_uE5X9(A zjx_6-E?2UJ`=pmYwQcoho~)l}jqleEtI#@5?Li~01{?s6Me92_{PmdeZ8_TWO58Di zQdYW)GPI-{txdK@^vCP%k-tV#cg|h(*Qm6JzH { + if (!query.startsWith(SEARCH_PREFIX)) { + return super.fetchSearchManga(page, query, filters) + } + + val request = mangaDetailsRequest( + SManga.create().apply { + url = "/article/${query.substringAfter(SEARCH_PREFIX)}" + }, + ) + + return client.newCall(request).asObservableSuccess().map { response -> + val details = mangaDetailsParse(response) + MangasPage(listOf(details), false) + } + } + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val url = "$apiBaseUrl/article".toHttpUrl().newBuilder().apply { + addQueryParameter("page", (page - 1).toString()) + addQueryParameter("size", "28") + addQueryParameter("direction", "desc") + addQueryParameter("query", query) + addQueryParameter("fields", "title") + addQueryParameter("tagMode", "false") + addQueryParameter("type", "") + addQueryParameter("status", "") + addQueryParameter("chapterCount", "4") + addQueryParameter("mature", "true") + }.build() + + return GET(url, headers) + } + + override fun searchMangaParse(response: Response): MangasPage { + val dto = response.parseAs() + val mangas = dto.content.map { manga -> + SManga.create().apply { + setUrlWithoutDomain("/article/${manga.link}") + title = manga.title + artist = manga.artist + author = manga.author + description = manga.summary + genre = manga.tags.joinToString() + status = manga.status.parseStatus() + thumbnail_url = manga.coverImage + initialized = true + } + } + + return MangasPage(mangas, !dto.last) + } + + // Details + override fun mangaDetailsRequest(manga: SManga): Request { + val slug = patternMangaUrl.find(manga.url)?.groups?.get("slug")?.value + ?: throw Exception("Failed to find manga from URL") + + val url = "$baseUrl/_next/data/$buildId/article/$slug.json".toHttpUrl().newBuilder() + .addQueryParameter("url", slug) + .build() + + return GET(url, headers) + } + + override fun getMangaUrl(manga: SManga): String { + return super.mangaDetailsRequest(manga).url.toString() + } + + override fun mangaDetailsParse(response: Response): SManga { + val dto = response.parseAs() + + return SManga.create().apply { + url = "$baseUrl/article/${dto.pageProps.article.link}" + title = dto.pageProps.article.title + artist = dto.pageProps.article.artist + author = dto.pageProps.article.author + description = dto.pageProps.article.summary + genre = dto.pageProps.article.tags.joinToString() + status = dto.pageProps.article.status.parseStatus() + thumbnail_url = dto.pageProps.article.coverImage + initialized = true + } + } + + // Chapters + override fun chapterListRequest(manga: SManga): Request { + return mangaDetailsRequest(manga) + } + + override fun chapterListParse(response: Response): List { + val dto = response.parseAs() + val chapters = dto.pageProps.chapters.map { chapter -> + SChapter.create().apply { + val chapterNumber = chapter.chapterNumber.toString().removeSuffix(".0") + setUrlWithoutDomain("/article/${dto.pageProps.article.link}/chapter/$chapterNumber") + name = "Chapter $chapterNumber" + + date_upload = runCatching { + dateFormat.parse(chapter.createdAt)?.time + }.getOrNull() ?: 0 + chapter_number = chapter.chapterNumber + } + } + + return chapters + } + + // Pages + override fun pageListRequest(chapter: SChapter): Request { + val matchGroups = patternMangaUrl.find(chapter.url)!!.groups + val slug = matchGroups["slug"]!!.value + val number = matchGroups["number"]!!.value + + val url = "$baseUrl/_next/data/$buildId/article/$slug/chapter/$number.json".toHttpUrl() + .newBuilder() + .addQueryParameter("url", slug) + .addQueryParameter("number", number) + .build() + + return GET(url, headers) + } + + override fun getChapterUrl(chapter: SChapter): String { + return super.pageListRequest(chapter).url.toString() + } + + override fun pageListParse(response: Response): List { + val dto = response.parseAs() + + return dto.pageProps.images.mapIndexed { i, img -> + Page(i, response.request.url.toString(), img) + } + } + + override fun imageUrlParse(response: Response) = throw UnsupportedOperationException() + + // Other + private inline fun Response.parseAs(): T = + json.decodeFromString(body.string()) + + private fun String.parseStatus() = when (this.lowercase()) { + "ongoing" -> SManga.ONGOING + "completed" -> SManga.COMPLETED + "dropped" -> SManga.CANCELLED + else -> SManga.UNKNOWN + } + + private fun fetchBuildId(document: Document? = null): String { + val realDocument = document + ?: client.newCall(GET(baseUrl, headers)).execute().use { it.asJsoup() } + + val nextData = realDocument.selectFirst("script#__NEXT_DATA__")?.data() + ?: throw Exception("Failed to find __NEXT_DATA__") + + val dto = json.decodeFromString(nextData) + return dto.buildId + } + + private var buildId = "" + get() { + if (field == "") { + field = fetchBuildId() + } + return field + } + + companion object { + private val dateFormat = + SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS", Locale.ROOT).apply { + timeZone = TimeZone.getTimeZone("UTC") + } + + private val patternMangaUrl = + """/article/(?[^/]+)(?:/chapter/(?[^/?&#]+))?""".toRegex() + const val SEARCH_PREFIX = "slug:" + } +} diff --git a/src/en/hachi/src/eu/kanade/tachiyomi/extension/en/hachi/HachiDto.kt b/src/en/hachi/src/eu/kanade/tachiyomi/extension/en/hachi/HachiDto.kt new file mode 100644 index 000000000..5ec348572 --- /dev/null +++ b/src/en/hachi/src/eu/kanade/tachiyomi/extension/en/hachi/HachiDto.kt @@ -0,0 +1,249 @@ +package eu.kanade.tachiyomi.extension.en.hachi + +import kotlinx.serialization.KSerializer +import kotlinx.serialization.Serializable +import kotlinx.serialization.descriptors.buildClassSerialDescriptor +import kotlinx.serialization.encoding.Decoder +import kotlinx.serialization.encoding.Encoder + +// Responses +// @Serializable +// class TagResponseDto( +// val currentPage: Int, +// val size: Int, +// val tags: List, +// val totalItems: Int, +// val totalPages: Int, +// ) { +// @Serializable +// class TagDto( +// val articleCount: Int, +// val id: Int, +// val name: String, +// ) +// } + +@Serializable +class ArticleResponseDto( + val content: List, +// val empty: Boolean, +// val first: Boolean, + val last: Boolean, +// val number: Int, +// val numberOfElements: Int, +// val pageable: PageableDto, +// val size: Int, +// val sort: SortDto, +// val totalElements: Int, +// val totalPages: Int, +) { +// @Serializable +// class PageableDto( +// val offset: Int, +// val pageNumber: Int, +// val pageSize: Int, +// val paged: Boolean, +// val sort: SortDto, +// val unpaged: Boolean, +// ) +} + +@Serializable +class DetailsResponseDto( +// @SerialName("__N_SSG") +// val nSSG: Boolean, + val pageProps: PagePropsDto, +) { + @Serializable + class PagePropsDto( + val article: ArticleDto, + val chapters: List, +// val comicSeries: ComicSeriesDto, +// val metaTags: List, +// val moreLikeArticles: List, +// val ratings: RatingsDto, +// val stats: StatsDto, +// val title: String, + ) { +// @Serializable +// class ComicSeriesDto( +// val alternativeHeadline: String, +// val artist: ArtistDto, +// val author: AuthorDto, +// @SerialName("@context") +// val context: String, +// val genre: String, +// val name: String, +// @SerialName("@type") +// val type: String, +// val url: String, +// ) { +// @Serializable +// class ArtistDto( +// val name: String, +// @SerialName("@type") +// val type: String, +// ) +// +// @Serializable +// class AuthorDto( +// val name: String, +// @SerialName("@type") +// val type: String, +// ) +// } +// +// @Serializable +// class RatingsDto( +// val averageRating: Float, +// val id: Int, +// val ratingCounts: List, +// val totalRatingCount: Int, +// ) { +// @Serializable +// class RatingCountDto( +// val count: Int, +// val rating: Float, +// ) +// } +// +// @Serializable +// class StatsDto( +// val allTimeViews: Int? = null, +// val id: Int? = null, +// val libraryEntryCounts: List? = null, +// val monthlyViews: Int? = null, +// val rank: Int? = null, +// val totalLibraryEntries: Int? = null, +// val weeklyViews: Int? = null, +// ) { +// @Serializable +// class LibraryEntryCountDto( +// val count: Int, +// val status: String, +// ) +// } + } +} + +@Serializable +class ChapterResponseDto( +// @SerialName("__N_SSG") +// val nSSG: Boolean, + val pageProps: PagePropsDto, +) { + @Serializable + class PagePropsDto( +// val chapter: ChapterFullDto, + val images: List, +// val metaTags: List, + ) { +// @Serializable +// class ChapterFullDto( +// val alternativeTitles: List, +// val articleId: Int, +// val articleType: String, +// val articleUrl: String, +// val chapterNumber: Float, +// val createdAt: String, +// val id: Int, +// val imageLinks: List, +// val mature: Boolean, +// val nextChapterNumber: Float, +// val previousChapterNumber: Float, +// val title: String, +// val totalChapters: Float, +// ) + } +} + +// Common +@Serializable +class ChapterDto( + val chapterNumber: Float, + val createdAt: String, +// val id: Int, +// val views: Int, +) + +// @Serializable +// class MetaTagDto( +// val content: String, +// val `property`: String, +// ) + +// @Serializable +// class AlternativeTitleDto( +// val language: String, +// val title: String, +// ) + +// @Serializable +// class SortDto( +// val empty: Boolean, +// val sorted: Boolean, +// val unsorted: Boolean, +// ) + +// @Serializable +// class ExternalLinkDto( +// val externalApp: ExternalAppDto, +// val externalId: String, +// val id: Int, +// ) { +// @Serializable +// class ExternalAppDto( +// val domain: String, +// val id: Int, +// val name: String, +// val path: String, +// ) +// } + +@Serializable +class ArticleDto( +// val alternativeTitles: List, + @Serializable(with = MissingFieldSerializer::class) + val artist: String?, + @Serializable(with = MissingFieldSerializer::class) + val author: String?, +// val chapters: List, + val coverImage: String, +// val createdAt: String, +// val externalLinks: List, +// val id: Int, +// val imagePath: String? = null, + val link: String, +// val maintainer: String? = null, +// val mature: Boolean, +// val originalLink: String? = null, +// val poster: String? = null, +// val rating: Float, + val status: String, + val summary: String, + val tags: List, + val title: String, +// val totalChapters: Float, +// val type: String, +// val updatedAt: String, +// val views: Int, +) + +// Partial +@Serializable +class NextDataDto( + val buildId: String, +) + +// Serializers +object MissingFieldSerializer : KSerializer { + override val descriptor = buildClassSerialDescriptor("MissingField") + + override fun deserialize(decoder: Decoder): String? { + return decoder.decodeString().takeIf { it != "N/A" } + } + + override fun serialize(encoder: Encoder, value: String?) { + encoder.encodeString(value ?: "N/A") + } +} diff --git a/src/en/hachi/src/eu/kanade/tachiyomi/extension/en/hachi/HachiUrlActivity.kt b/src/en/hachi/src/eu/kanade/tachiyomi/extension/en/hachi/HachiUrlActivity.kt new file mode 100644 index 000000000..77549d451 --- /dev/null +++ b/src/en/hachi/src/eu/kanade/tachiyomi/extension/en/hachi/HachiUrlActivity.kt @@ -0,0 +1,36 @@ +package eu.kanade.tachiyomi.extension.en.hachi + +import android.app.Activity +import android.content.ActivityNotFoundException +import android.content.Intent +import android.os.Bundle +import android.util.Log +import kotlin.system.exitProcess + +class HachiUrlActivity : Activity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + val pathSegments = intent?.data?.pathSegments + + if (pathSegments != null && pathSegments.size > 1) { + val slug = pathSegments[1] + + val mainIntent = Intent().apply { + action = "eu.kanade.tachiyomi.SEARCH" + putExtra("query", "${Hachi.SEARCH_PREFIX}$slug") + putExtra("filter", packageName) + } + + try { + startActivity(mainIntent) + } catch (e: ActivityNotFoundException) { + Log.e("HachiUrlActivity", e.toString()) + } + } else { + Log.e("HachiUrlActivity", "could not parse uri from intent $intent") + } + + finish() + exitProcess(0) + } +}