From 79257ee1c647bc37214d420ffefe76959cdb6957 Mon Sep 17 00:00:00 2001 From: Bitmap Date: Tue, 27 Feb 2024 22:52:28 +0530 Subject: [PATCH 1/2] Added New File Option Enable Disable to Unzip and Delete Apks File. --- src/jvmMain/kotlin/Main.kt | 28 ++++++++++++++++++++++---- src/jvmMain/kotlin/utils/FileHelper.kt | 2 +- src/jvmMain/kotlin/utils/Strings.kt | 3 +++ 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/jvmMain/kotlin/Main.kt b/src/jvmMain/kotlin/Main.kt index e2777a1..da558a5 100644 --- a/src/jvmMain/kotlin/Main.kt +++ b/src/jvmMain/kotlin/Main.kt @@ -52,6 +52,7 @@ fun App(fileStorageHelper: FileStorageHelper, savedPath: String?) { var keyStorePassword by remember { mutableStateOf("") } var keyAlias by remember { mutableStateOf("") } var keyPassword by remember { mutableStateOf("") } + var isAutoUnzip by remember { mutableStateOf(true) } savedPath?.let { bundletoolPath = it @@ -96,7 +97,7 @@ fun App(fileStorageHelper: FileStorageHelper, savedPath: String?) { if (savedPath == null) { fileStorageHelper.save("path", bundletoolPath) } else { - if(fileStorageHelper.delete("path")) + if (fileStorageHelper.delete("path")) saveJarPath = false } @@ -117,10 +118,16 @@ fun App(fileStorageHelper: FileStorageHelper, savedPath: String?) { Log.i("Command Executed in ${((endTime - startTime) / 1000)}s") logs += "\nCommand Executed in ${((endTime - startTime) / 1000)}s\n" // Do further file operation after new apks is generated - FileHelper.performFileOperations(aabFilePath.first, aabFilePath.second) { status, message -> + // From Auto Zip you can control further file operations. + if (isAutoUnzip) { + FileHelper.performFileOperations(aabFilePath.first, aabFilePath.second) { status, message -> + isLoading = false + Log.i("STATUS - $status\nMESSAGE - $message") + logs += "\nFiles Operations Starting...\n$message\n" + } + } else { + logs += "\nFile will be saved at ${aabFilePath.first.removeSuffix("\\")}.\n" isLoading = false - Log.i("STATUS - $status\nMESSAGE - $message") - logs += "\nFiles Operations Starting...\n$message\n" } } } catch (e: Exception) { @@ -316,6 +323,19 @@ fun App(fileStorageHelper: FileStorageHelper, savedPath: String?) { ) } } + Text( + text = Strings.FILE_OPTIONS, + style = Styles.TextStyleBold(16.sp), + modifier = Modifier.padding(start = 16.dp, top = 8.dp, end = 16.dp, bottom = 8.dp) + ) + CheckboxWithText( + Strings.AUTO_UNZIP, + isAutoUnzip, + onCheckedChange = { + isAutoUnzip = it + }, + Strings.AUTO_UNZIP + ) Spacer(modifier = Modifier.padding(8.dp)) if (isLoading) { CircularProgressIndicator( diff --git a/src/jvmMain/kotlin/utils/FileHelper.kt b/src/jvmMain/kotlin/utils/FileHelper.kt index 7d4c2a5..182b35f 100644 --- a/src/jvmMain/kotlin/utils/FileHelper.kt +++ b/src/jvmMain/kotlin/utils/FileHelper.kt @@ -12,7 +12,7 @@ object FileHelper { Log.i("CHANGED NAME\n Unzipping...") try { FileUtils.unzip(newFile, directory) - fileStatus.invoke(Constant.SUCCESS, "Rename and Unzip Successful") + fileStatus.invoke(Constant.SUCCESS, "Rename and Unzip Successful\nFile Saved at ${directory.removeSuffix("\\")}.") Log.i("TRYING DELETING FILE") val value = FileUtils.deleteFile(newFile) Log.i("DELETE STATUS : $value") diff --git a/src/jvmMain/kotlin/utils/Strings.kt b/src/jvmMain/kotlin/utils/Strings.kt index cd7378d..8e28531 100644 --- a/src/jvmMain/kotlin/utils/Strings.kt +++ b/src/jvmMain/kotlin/utils/Strings.kt @@ -27,4 +27,7 @@ object Strings { const val KEY_ALIAS = "Key Alias" const val KEY_PASSWORD = "Key Password" const val EXECUTE = "Execute" + const val FILE_OPTIONS = "File Options" + const val AUTO_UNZIP = "Automatically Unzip and Delete Apks File" + const val AUTO_UNZIP_INFO = "Automatically Unzip and Delete Apks File" } \ No newline at end of file From 12e19a92e1ccd18b5f178068dbb9bac1417edad9 Mon Sep 17 00:00:00 2001 From: Bitmap Date: Tue, 27 Feb 2024 23:20:56 +0530 Subject: [PATCH 2/2] Added Clear Logs Button --- screenshots/ata.png | Bin 29240 -> 34714 bytes src/jvmMain/kotlin/Main.kt | 64 ++++++++++++++++++++++------ src/jvmMain/kotlin/utils/Strings.kt | 2 + src/jvmMain/resources/clear.svg | 1 + 4 files changed, 54 insertions(+), 13 deletions(-) create mode 100644 src/jvmMain/resources/clear.svg diff --git a/screenshots/ata.png b/screenshots/ata.png index 15cee1d408905f1cfcc3a0581f2a19107b00d2da..82a07cd72b1fc2985a9356e9b892f02264fbf920 100644 GIT binary patch literal 34714 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%0Aa*&3RV&HQ%S_vBt00 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 LtDnm{r-UW|j>`!& literal 29240 zcmeAS@N?(olHy`uVBq!ia0y~yV7|`4zB8wTnnD@D`yX9>&l@(>XEuj}z zB_qsPrYv>hf`(wyX`d^ehx{FdlxKBcXz4z@UNG2k8S^BAC4!T_=)TOen)`hEdArY< z`+v?$U%U5P-8H-4b87FcUzI<1^Y^INk>_{4xqLo-{nqmL7KM*o7HV`Yf}*T#yB<&5 zK7IO|+RVy}>-X zn=ZHxp(X3yuM^APY1tQDJ-z$z*ZF^M&Yvosw|DiOk0%d5{kH$do5`>I?W)RuURZd3 z>h1r}C(pmWXMg?Y_S2>N|K5ImYcay~(AB@?eDRzGL6N&IvVte#|WTb+Oq0 zO7di@;#V=2WnV6SYP-IF;h&##*-t-yerocv)pC|Uw-((NRAZs4$L#iYJ6Zp%=AWm-Zx_gK`^BU3 z$3pkh{d*(vY>wmpTx3_*7UKh9Y`PMnw{`qTn*nZBt zZDX1{+tk)>dELtTU$Mv6Ka~iAhUnHx?}tDC{eEAs^x8IJt$yuG@5z;)icagbKKGoq zlI6|5%+F!@JNEs1*8KF~`gt1he_x$cZ~FYQ=*^Amr+)u`(fm~U|4)1U_tm#9d;R?P zUjOOuee3tUiT}I$)3fdG^pDS<@o(z-IdfP({Qq}k)6TsyTsiM6&sSSH-<=TU!XPVU zvNi9k{rSs5pIcrVI{mwlTLw>hS=Ce4`Dwd6fBxC#=gzYMTLogP^Lk$KUcdhL;M>Uy z{@DM2bouGo-}i#_{`OCw=3W0t{d9Nz2lmtcHeXjh^`HOmOVNku{aa(cC)Z-$Ex0?UUtUUidCcZB1ed*KZ|85^YrN8H^?PPPwQrMAl8yR0Cx3t6 zL%+*^_Bh4zEzY{WF#Pi4+&i%cEzT{!-_CMY!l2lqw?BIO@@zX>@$I^L;`96SV@iBa z|Lu2$JMV3Dv~A34nN{MVYeM%v{I#n5Pu|WS)%&;ac@k|>y?^hY`2Sz#Pn*8~k?7MeGmTx#-v4{~Y0vXo|H{L!>(}l1T7GZ)y1fyW zceGv{&8(6+JiB>u-LV5J=T3G`-IHt0=C*zI_4&_>9lk$~sJeG>i?+}6HAyu$NYHnUg!SDFZp`n zHHZJl#%=xV`t<+am&b}O`p$}?nQguj+n};(Wmrd z3qyB4Y?D@t-~4YOf9;AtU*rFmT2_C1^RwV@BmbYmpIhUrtAFOd|0(};)%`d8*DWyI}%r=*VTW_eXlA1|HtyvvGTu97oAUkr=7q1ne0>Z z`p@QSjXsROgXdd?^vPHTo%=KY_M!XV_t|U7|37l~>Ah-sjr|2*8%y8r6p>24QF8S5 z^xcP6)E!e;J~xPaah(kF;#(_O^ zijL2f*M491{p-_J=6|ayuda>{j{E=X`qcTqR?eUGXV0rutJVI${MK&&=i#TR>uZ+Y zDf=z^^ntrw=(~Nt^H06L|0nwOtzyj;Pqj~JwYs-%*=Mk-D}1+Uy>8Dg6Weq5uP&?W z&n;v1wUxi!9X|Q-t|W)^uTS;2=lRENpMTvZZu#`ruad8C*;gQYed6?BMA9qu77r7h z_xbsu*jdZKMOy0BeIM3j&QiCx&;NUXf8Pr0nEy}o|5g3$y4K|M#f; zwt4^Vn4**2r;O))?D@3z{;#!9Z|{41`?T@=pJzV33g5r$PTlX^r{(qU+lqeAov%^< zbNcsbr@!wjj;)3ksjh({Tf44GuZ#aP>;E5@h=1LmChoQiefQ_{evS7v&)-kEZYQ`! zfA^cOPkZyP)bIY<_ennP)22^%@Bf{%>9zekt^HrueV@WFZxg~-_eKBo{`#-_YqI;H zF`&`4C~PCBEZYAy`e|tRpX;Ai{VzHz{B_%>`Ri(`E6?h`pZ}-i?-BidTlYL!{?Gg8 z!tlRNKR^DjDXsjf9~)fvL%nX>p3M8v*S4b6sC(fttkJb-#Y=b*1L7U4I@c-=57e$j z8mpFaTt|5HYD7ymqJfd6bI25yy+mA1#gNUF>Mrnw*5M+qfxV`j*I5}r;7o4;FNk(f zK4c1_8G1RcgJ~0`7-kUTLdOVK@T>mcTYjN+jG(~CI5;&ML^DVUt}~zM+|D2YsJC}^78mLG&$F31`^KbS-@@lDtKD+<=yjia@v)zFF8zBe{Z`$4Gg$@( zh8r2&+}D49ds}_!L3rs&)#*=ePRlcHeJv9e^7+KU*Ij8cKaSnXNz5^Bef_8H$ew(+Cl3rm_#B+Q z7^_#uAAEN^zVeom(;b_{(wWa*=G$!tCx{4BZqDn!_7uqcI2P1!$Hy#qhh5Q=6Dn&~ z>5IpfT)dO-0x`oX>|@s|ukEW==NIlfTe17U4#-Q}It0x9BVw0T{+fMW7o5z(&N?01 z%Dl+SQHSr?*9zmCJ`Zm_eto;%CRb1~Z{CJoKA*ps&o_>J zKF#;``^(EfsZu)kOTpUJ>kBWeUOj);Cdv7;zxm$y=(X~e@ZT#9QOwm-*Dc_a4S3ys z$YlTYQ0u(y`Z3w_Ziol}-x~X_{dSkggyj0~Z*Cgj5zG5_1$SL=W7`W8Mt@|^C>ZTFY^vNJF+nB98uFpBxB#fz&C zY}xZ#`|K(O?B3@-;|j6dv7>}F_U*9+6P%Oe4rmu#xz){Fz1FzBKjxPE)(=K14H=ei z_uom&vHo7YLh<$VKQn*T@U*S7KR5Y%t)1Sj^*_r>!tX!d7yUhaUKn>_l>5IuHS7MI zeP0=09{N_|#m;rL3ooUA&Hmf-W!IIO%E;-r-tW3=KmWe-lecSg!%cGc`_JZMU|`7E za`AAf%!cF92Z}Y`?ov`O+_xuYZ5H#_eFoRA*6~$TGTgr^&i|%;-R0b;4i>r%C9S_> zD(5X+wl@AsyUe8}Id>|1=p&HiuD29{etShdp z`|dsOnUvQ0dXKA2G57LgAK6siFVFSA|L@H9Y5g1bf7v`F{EL z>2ixJ=hE%pZ`1ki`m}gscJ(K_msZDOYXhHN&x*S)P`UT#opYbIJwtKes;EDI()Uf> z@qYizuFoq)Ry>-T_jjJNw@l1)h4lv}u-~tm)9eBYu=S_HKW&L!WwZX*oaWwd?s4gF z!s8iEZojs==*2~wt>%1fr(Vww+nS(T8DG-*`AO}3<`}!St+)4zgWUN=c708r$G%Om z*6%-WyLRQ?o|BAQxA`x78-8~F`voU%ulahcvPjzbN$u3%^Pbv0x&D63O9lpp18&l~ zG5nn8D<8~1y!>e8F1B;E&9C>&Tc=-n>DS{L%Z?|dPhJM@lil}v+xLB|f7ddq)N984 z<5~aG;)%Ij+o{*`L0jvd{Jo}nZu0kBzJjd=(|+&n_&asG>b&%iXP3x0EUr28xpMyY zt!n!duWYrQbl>2^&KdU$F4V++3jP1X?bL*SX|=~!Ez94}KNFgq4wcIN(SDG1Kw6vs zMt1lwm2;Ox89pW0@~umbSk?MRgKeVBhffUqUVG*8>Binpjs1K2wg|JwKJ5kCd%W+R zcYgXcyM6`#&Z3Ibj{5Jn>s7`E@)g7$G(EQ&#=ygyN2DsO+S z@x5h5Wvv>{*Ul7^*>%V>-a7X5 zl_zCwr%r#(b${p2Q(d{g6dWD5-(R|Vf8lBGd+#*zy{}iAc|ZMYwPd~XvyFRfCT53g_6)31zPv`07gdE}o( zTQaAfU#wUwYt&yVdwgH+%FfTn9vged>wMR||8~Mt?XN$>enoBv)!`9a0uPn$TU$2m z)cqN{g;g?F+$%T8v0wkFRdxMpVfXfL&q{e^4?I6V`}#J`u6Q5O{Oa?!MGhz3J8qfd zVmX5cwHc(Hi=DZH|O~O+p{y@`Fy_8 z6a9+rPu~TP7}zY?A6eJy^LvNezNdDtt@S_&(Wpmg-Dii0<_g}j-CFgp3;E&;qxfQ{ zH7Cf#Jl}9dRH&HasQ@+ zz3%-EP%Gl}1(|i96D-)D&XU>p>4B}^>4m3@1kNp#tcL$9x0AIT^8kt?Rgu3hi6 zqcZ=xtJ`a&v-DbfBo2Mvl_q6=b>+OTN zCkjEWEVH2C9p{+;DsFFy-uFnn*&X7B4cP^29V>J_R;=feESxa!y6Jm{ec5wY)kx<} z*{;d1z54FI)t_=t?wq^uQ&H^F($^Kf)yk^x?Wcd+>=ee6S$UtIx1eyI>znm^cw?V8 z#BpyeUGe457Hg|5_F0O1x5d1@_BJ9*J$~c4UDuum{f>QTv%Wg)Uxvf|>?PaoUcB%a z)V9l+vaDclXokUhfu)Q)S81E{_%heEvaAh$nEmGKs@nYE@Pv3X)`HyKzgE;5ezTi# z)a{La?)?6pb?1bCZRyF1a=5my_xaZesYYk#e?Ps&-1nGByz=LF`k>@#d_(M^6e!*s zT*0k028I#e<|Zi|GQRzI+&}%eT=kkcmc?n&S8i@jSHI1}z>vVrd42w$=Jiv*|NFD} z=_~O$8oU4Bytt|OxU-0B;FYdxJBy#6x?5kjX3x`~{8PR6=l%T>s-3%dTj=dI<{}(7 z85kVgc(2!2zu#H(biducJO!sf5!bb8e_!;ipSFM3=NH>JuI}7&cK*J{iA-h;3^OEj zWA6X!yZrR{|9^)kGai@T|MwP9)E4QjwoSXS`&oA}%rJUV>$ zkEX9>OxUd$vmS2R%=PwGk`Z(44mL0`Y?D6pHA-+DBSV8pYc{_Q1H)~8nDHFf85(v9 zth?R?>R`4M@G{JR+f0O1*1dw-4-XC&-AtW6HFkHI>C{^R(GkApcM6;<-)6^0$Ne}Y zK8;&%M?%oA*z-P25oAYL-UfJ{T*1;WDBi<%_-tnkQ`&|2T z@jVY%pT1hXUa$OaX}D$Cn;T2M?4Ebo+5Ykm~W%XMDq|LXLNMEm-;jQp{vDagY&t6GAKFvA1 z&Zg!2@;bd!I)9^{d}KA4pW2pvbq%AnzI|Bk*MizlPfmKyxVN+Txk|>WFT3YOFLP~u zeRp@c|Dg?Dw=GXwZCRrwWgKJwI`aIiEz{RW{Qj2zx8`Gayv@&8$KU^czqhyVU!U;W z_y$A6(}=1a>sZ&U(>}s=uWET%_@vJ^u@6`0O9pp*zxr}d4bO=zb$@f)c<#mD?-ZY( zJTF|{B){&l!}*_LMZTAl&%WN5c{ld&^*tNkSI&QSd{Noe?YGQ+o7L(*H|Ng!dv#Nm zvcK`y>$U6e%EiA9pT6$#>$)p_>#x21`Stgf-TVw^(r!Mi+I%I9|2p5sk6p{xos+XH zQaQ8r+njvqa0T(R!t&26eJ}6L$=mL&8&h4owd@Z6`N_+@`3}vpw-3MVcQLuOFf`}> z>Erv(I^XAd#~}NXYn#*er_{#mlWTqm$@8v}!M{>z6^;VWcgep|db+O<9U`l0Jv zQe77Mgr9nB!*!W2v9dC>_uA@A%b4Bq`_AsY=6|u6Z&u#xU$584U*BG_dymuF=KbEe zJ9M_`?z2|VTmJX~!yE0d8$djYaLYUX_rsQ3SD*aZb9n2t*SG!jrBA9@;$ZY~#(6>>ZXJ`+whk z&sY2>_C=qg48w-PX>#k5FI@I#U073k@!+Y;TY8$(d4er#cq5M~UV9kOzju!Fd^zhQ zE7z_oc(%f(e|}Rub+NZY5TnNmt}i#{^F+n*B1WV^Zx7RYwI&V)dlZ;1CXd9(h!Q;@m-+F;GkEk0{&*%R-J zy$g_GuDM?JEq3R%nthjSOMV;0m(DBO=(xS<^|TMmZQo}4@6wIgvgX!>|ING%H!8gO zuP-VPabBbK@3Bzx{LGmW=ZbzvZR%l;-veWWwFJcgv5~?OZEk zbC*AG{?}@r)gOPZD|kEMUg^@Ce~auN&*qFX`+xZTzhAyA?|;|q-tk-hJ=clbH&)jLe|_4FZ)?WR-`V&2 z>|eQ4wO!#WHcPB|EIx1Mv{Gw^hTiR(hf0?uh^%k1(kYvIKd|p$)(fMp3~|QZJI;k~ z6Mge#Pjfn7!?Nc^JI>`EEx0Q>$u+!Z_o1!#172vcKabk+ZPU+lOdqZGynlSP>hx{7 z-=@BCVXr^_JMpyg(LW}GeZ4%_|9vuw-Fxn{@9Jr(?N_u~UjLby$?C(N7Jo4GL`X-; zie5&)%QdA|ZNBW8?Uy1h=kcCbyc)l0*@AZr^2=X;&urYAKTq-YP0@A9vv=Niu8ggH z77KWKFXx2klG-u9 zua$J?9*=(fxi0Xj_M46T|K1eY#VvaNH?s8aJ@Iv=XH>swpAO&qx$bk>kM4V4_RRlm z(~_OA(ab1D{?A+E$@lBazbn6fHakrBG~dd#a_dT;TGnlgkP&!1_1O>B#C^MR=N+G4 z`EAd>qPfj!|27%MPwo4!8y0izZ|A~GuVu7j_-~$bZF{Y_y*0b)jsLUThdxhV#K>TF zEa>o7=aPL}Z#tg(f1u=U+M1V^JXR6Bk!tOR!ORSJgmAUKCAQJ z+jIZx+-nv}GU!|{)~k8<>CjdS6HN}yEtU!|<V}HV{1?6de*Ed zcy)eTcHP?3r;j?ksa;%om4EB{OuINMzgx?8tm&WbykpwcZ%1q8_pi16ez}J4$D9?i zlPjJ^-G1g8c21x#y(U{pEd7 z8}GKPGVAxbnyxq0vcK+$TIq~q~)A4F%**n7ae@b6*bz1Y@quZ8#t4y^$_uJ-QdDOdZwuzND zZ++~_mpZb~b!U9oZN0PN{himu`)AjkFIRfEqnNWK_^@PIn zFT3X{hcF*_=7gk@fnh@w5iMmb?dw^GzWUpLeUXw-_@%M9Qivhps35c*zC<(T|E;6y zYRujK_djj5;bhqGh~s*;>kc*shD##r@@oz+p4@np{a%TdKNG_mi$h;wZTr{#fA7sa zdEim${gN$nY$q>gVhEFjHS}j4`g+~ZHm>elbe}Jq_^vKqh8uQBhCbcr+&@=7q2^sO zq$i^U>q->wm}dX;>*dLe$JQ;k3CX)zzRKp@^mgV0r;2y%`||o4`?^FQowAH5K{?4MS<+AbSKNf)I`PPf9i{JRz`|0EDH7nm#ooar)Y<*Sc zZ2Mo0`qL(>`%gPASFQ7ZG6w_0wwZy4x7vP~dHmGe_cpQXYG0l#`e`l`YpwuV7ZkP- z-04dxdiqWI{r>fPKJL7&oRTfQbuIh-@2w|wA1?QwulM}i$4U(bhHblBTe2Ard|RNs zZMolEE%$yoUH3j2&F^>1<9{9!-?!n?(%hN{jqGX%e_eE!e>$yzfx!TrxO^7|G5$U? z)A;E`cR5XUzd0Jm`{m<*URwKLSCa1rHU znKC4pfJ7J=7>qz+$iP6-)L-(;cRSVXL31$-(cZ;7{!NtEOg-MWe|7%PX+ifsv<2<^ zan$Ddv7a}NU;DLae)pocVOO8jF52~KRZyS&`Qkq9Z<*I>7d$pCxfi*D|9Z^i`LUnx zeP1_MzxH!Z%f4hz&|rvjkI=gPpRKPSn&@>fs?l@n8tqA&*-lq}VcoRHUu2E!2Jw}u zF{|g#s?VuC82S7JcYMUD`Tt&isMB-0zmbK3fuTXsjq|$Yj2Buf4lUKXG&Q3x_s@FXeEaq7`e%Q| zwr?$)?s&cI+BNy*U$=t%kzlH$64RacGqmDTsAu4h54s2RShXz+65eiP?sDn?x#gQl z|Djn;t4`$})qculWEk;n?d{z2Mt5JY%iaE@cG265+x|T9UuXL*^pV7&Pg9e>C*HH; zy~&>Cyv3*HUhb7?owXD09IrXvH1G7oTeaO!>t2<|zx=-GR{h6_)n9HTZhc+zq4Mdg zUBw6TYmVez{n(Xgk)Iy7|MrKHkCxKEr`(qSh4cm~F|l=}NBtTPJv_0UK|AKf#^(NI z)p54!hEpthG-g=kSa)cB_>r~vR(VD5!J=EcT+bgr?_zzY^5334&0)E_UC(DrzL(a2 zzj}l7;jPm?n^nwp{vC3g{g(Z`V>jk$#qV6VR{6d8_sH|vyPg$$e64!)=UMWz*ZhVpEVr|Z{=p+{(9qe=bvXy=k4|1AOBgg(*I-4=Mvj%Hv7)n z=Iy@rx)zk;629hm?C1-htE~I{fXw<`T1zxEGH0zf)0*;Q)yl&@JYE~+4I}s>w`&Nj zjGcOT>$K7fU5*i3a&mVc&E0LweqF|EdF$(nrKWk8C)i#6*7)n8U1jY~f3uYRM^}G* z_Vw4QiWv8>+0(XL@Bf(eZvC?B=h*Ytzx;9S+susFCI4JE=Kt$(zEjTkBq+Mx=GnR* zY@pSN4Ocg9D3HzPK7a7+qtARje8ExY7^4}_pMUyvjdslSXH$RdIlQH5QQdW`WP??@ z_qW~+n*FRSNn(!Jy03G1Z!XLHec*DkCChWO&yR0?-q|lU|NSiYtjnK@3#}L3`sV6< zd*ZE+r*1zm*DLbO{X0wSeO$-X`y0T~_ElFUM%&?6)_jYM=Lw5fx6V7xXmxMj>(#wn zH$Rr$T4(UM?udeE%H6p3%F4Cs`#cl&rCQ~0zxvH{&#joqdq9udciId&bt7oqgwzS}Q2+R}{LxrsI>5?!#T%=GOl9t2uXU_03;< z%c4Qkb`5LurxeW1Zwy-z@RMsUQ|q&j&(lN;WYiwN-M24ECg1d$QI%fX{iqo)xvo23 zTbuc>Nvl<@-f-%*#}}lgf0t&kEQq|P&earUw}0Y-x+5E8x3AQf;d>dJTbCPtkKNAg z-tt%7&m=e9zmuQe{_Jy^mCLiY9a)#N&R5>vvTw)!PwDd(-|@R6e{)O0+izcu^V0AC z+G|(O7yZ;+jpGJrCgPQ(YK*qa4iPJnZI7nfew-eAw6eIPYksL2`>u+q+r-j#9op&> zz5UvAf%TuPZ2PB`e+bXC{b>9s@}9a@>zW<@d-$f_Dr?ws=lCtNuU|87{ke5-$Nbvu zjkiA;)&BOa(TSO5fA3pN^f8cwG<&N4@Az^*+Od zng5HtEkJXevt}Lsx<*7#q+nX%*LC@KtNbp1n$0wEn!K@0X6)7t=G~FMpVS(3@B6EE zuYB{DWVw6swZ}6iw#`vCmEM>Sif^6kZS9c72VuU!JN~)JD~p`aNG(*Sg%s1vFHfG1t0$-JQSBkDrR3_dj6g zm)F<)&S*(t8*g zwEe@^#_xOFef!g@t=_lm{`~lO@@h6ny=nVveR;d`e_dan+ZURF25nc!-~BlC( zeSN;}#ha9bg$-xdK493e7dGY!YU_QR?eEJbCcp2U&pZ}}h{BfFTft-RJAXXte$IbA zzy4z9$peo*#MWGsLK(_^J^$w~P)qQoFpma90`lnZw*yQJ8~(zqKpobtdvO1+HK^rL z2D7K~>+1i)52Y9ktYJ;bn)ly}qAeH__+UyN8WR{N*0G9tzxP8$<&%f+4*Yuf`rMl6 zG)ZuSb(7|yugv^50r!62`#!CF@9Wsf^XLEn^Zc_;aOTY0dAoCsPDGl0e>$)F-O0&p z7tJz$Mt*OezWS=V{m+vpZGKh${d#@=egCR8FBuG0BaOofgT}IL{y!4eGmp`}^Y+%( z>{v@4zNHN-o~H3GakgmS<9!Dj$6TUc{p}6RT<7)ES5LjSW5V9*?{+J5ZPy16N_`ibng&$FJkWwQoMb>6rx>GejZ2P=b@&$B7+cWujN zzo3}A`aj>bUzX>uzP?uQcJ=>_SM&qxP451lR=}GOcbez=sz~OtxVkmqX#BbF{r`PW z+g?|MUfs1$KwIHn>Gjyj+9xaLtt+^@y+jL9{U3*#Z7CgeaeMgM=)`dTpwPv4PT((7a^PZE83BM!CcHGl}1oD^jF~7}HTaVlA zy0z+OlIDph-5CF9H<6gysW+Dzyj7SzJ^bs((DK59vk$K@+N{6)*-}M&#`Aqo|G7IK zD!u1#8MB(d&iLR`yE9d@?HaDaCm5EtXWwUgC$QXM&iV^h0#&o71%9|v%vWn^!WVfg z@yf%C;n`p3tY7we<9&vJ=-PudN&U_iADoa`L5R*Vz{zzq#St&lh2z_RPBm4!6p4 zt>iAnO#2d0ljT4+3cBHCD%**=53aE@U>>&-RP-@OLfmY z(>^cv zyY%m}ELKPM)Ybzs5}|x+w-(su&NMvybxXpl=%aVdW6y?F-ztljl+%v6K5et&!>HQc z->0Yc3pc#YRX+Un;C(yepMT5C?KkD^%e=bj%>;1xL}u+M>o^zgBFj*ly~DZSUy?z+ zUPMub%%-0F$KQ;WZF^MwFKLTS{FU!JQ@*OkC-%n+EKALLX!YHm?X#4=dH#;F-#;r> z)YmMOY{*eQ{B^PW^`_Ua_q}|v>*uo2)0>>Z9oCeU52IwfL_dlAkx3DClMShL4gIY3 zWTgz3tV%J+qQgtBEnU5J*73&Mj^^8zJ~xT~*HgA9DDH9YCDB(kPp#?_Blxaw{Qs&s zU-kX3{hOl?Z>{+KHTd<#s@m+`(-|3Vt^m*OOr9VAcXsjXXEQ;AX5gi16W;&4_gvpR z=JlyH%=5ex_1Gg?5B;!At>0$pcb>7}meHc0kHuG7MjX>VwzJzc-k%d*haYn-?j!m{M8&j-|oNhdE>QF(`2Js zvKbf@y!o#$JJ`t-&v$j^v%sgf_x|RIbbEc(X6x-;u%V6gceiJ}p6~YhQyp`|tX{6` zyI$$+;+p#$$-Tay0xA0RqQhJ5weNbpeX{Mi4k+#gK*g+HH{bPLx9&)7*t+MR_PRUY zW`J`ncnASJCLscv|Kk7^zv8gsS703@189Z}ToREd1)5NNxm<28k4~RmfgbueLHzC? zM^X|#zKq^CO`VY;Oa^I?pf|sw#Aw5h1GD{}qE9w%yl-tR8L{Wx?7nH6(?5kU9MDpR zjS>X!_;+jN@zdw)PH#NcnYrhD?VFr=JPZ+muxcff@A@b8 z{dHAF2X1_w(tb+!x8Ky`KR*>PL{#!!pI&$O*8xxs?gtw8F!I_l&3e6UY~3Gu8ym?S zP}M*E_WiJ6=e^cM@|9QJ~Ve#%O>uuhjetKhLGANo2;&x19 ze{UVW?$^4P-uan_D)>~^0cc7C3_{Pb3R+ep3tZHr&Csenw;y3+h~s&${wx;u4G{(hfo zZdYF2l9Ri5+t&xb_ZjR|{qyDJ<)?Qn?f6+44wP-5P{7M@L$2iLw<{}ypT4-b`00s> z%1`(Gey1J(3(*%f#F^P2L-=btXTv%Z2a@%5^|z6=ZutFxyRtWDTk{QTT! z=EM7LZO@O7tI?}veznf=N7}O58O^1+x5ZZKy9lmZzM6N*?{6=4?i@2>d+EGA@#68- zuS;#uSK0n|n|s<>_p?QE&DQ;#3=9dSy+Z3AKL}I&{or8p^W~Z*&$Kt~I&?SdR>Q8c z-!Ia{4zIr7aN|XE*l#D1hgG|7Iqb@xf9_DOPVxl15^1wX6<6V|oK`uU*4*(Hy_Iw{QY^pVyTV3{?_Mb8slFF95rWN z^rzDD@0@LCE^IqHKeccBmF(S*s~+!hzV+_a_FHRZ<-a>F+_#$FFy^=Mm)hf+r~aP1 zef21F@Lcmnc3*OLZ+D)$ee<`S4{iSI+zzo8&tlH>?SGyrcKc)9*~^djU9X(K{qU!{ zb#E8@eEzaFepzm_?yri@`Q69UqIUG%eo=h>^Xr|J8Grxfv4rOCKa%_5@xH%`@51?# zH?IBhYv%JA?v>WR;$}NvzxwsN`gZy2vDV+SexLt*{oaAApKI6O-m`XV^0f0O7v`S6 z00~Lc_Uu^KPYoOLA1F#Kskm41)ygh>_gzq|HlH@{t1xB9NljB~%X zIZwTRrnC0UZOQY}{?eO#f9}YvH9WKPOH8gpY;=CSb=2~2Gp{~dx%K+i`Pt9gGj^Nk zo?maaMSsz{+!JE8dybqxdcE|Hd*F4mW7|I8Z_m8)|A)DLSl!&?Uytmsjs4uc{AjVq z=N~tY6>oY!<9V5JuKV@!lq+$wYhRx_o_DKq!ROW2=E)tecV70^{{F!L>tmKR{I+S* zAI%vV7}l(NR`9m5h3%a4kw*8rb?ap|L?0^6ZJ4IbHz$jESqz_(RKiil4Zoz>OMdN5 z^Vl$V`~Av<6{naJB`>w_tBi??7x}%`F-In6)v~$9&fn^DlCNzrOPT#C{agDN&3U)C zeti|wnXgp2|Hy<1>uau_dV992?#PB~p@s?9w=G<@e*L;>k5%jPqIUGHKfZ64Y0UAu z%;+x`a;JCH*4D3%u?+ZCIo~<fx|6N-9^3pBg zzPNbk>xF~O>`H|W!t9DtKYpz0WV0%4usOYU!A9GY%@-{a!Y6$AQ}|#?^Mc=^?6c*L z9CM7^^J&HX$B*@56O(%Cs`tN4-=`#6`qlB%0^@xv1=v>^I_$b%c;E9*eeLgM`PPrD z?jBo{nES%a(n90IwO^Ch_xN&O|G0C<-@?6>4Ds2~QRn+57VVD9--Uj-0nP*LLkWA9Y@T>+{yviRkE)MpKl*q1x4Y+MzU}?LW!{c=JNCE9ZQhZe zB!B$RYz78~uNsA3t@mtZyuK`|cI;jG{B?F7G9}M$KYYw^`SjDr)0n%z$LDEx-4;B&^N8dA ze#bY-@9J}J|JtVc?f&QEwR69({x$hL=gPI$KU)?Y?E)>y-1$dp=GQ+R&ol3(ojmTF zbvt153rLiHvpbg`)bY)Et*rfY?f1o<^B-TU>vFvO_w6mVV)^6+U;fMzyZ_<@V6w>r@r!Tot^ysTd%LR$!y+dckR}^ZTi{u!VC-tUR9m+ zj=v|i&X(a!^BgH&GaG@fGCFZa?{2I`{QX`=IFc^8TxL z@Ydajney zglnt5Nv-G%_tV|}^wlrBW}EvH_M2Zm_c-I)XYZ`z&cEXFx7J=Q8Y*??>q{w*zPs=3VrwTvvd`V9`}baG?Q@^&c4q$H_pSYUIP13AYqPV)6V|Q0 z-ftRzPkv)t%+9{I{Fe5Q%C3H^h5Kafaql9qFFxu#tm@dIxA$DFsfk^DHSZN4?(1Bq zK9;?VN|^T?95b`N{+V>^_NeH$X`%I}ecju?U9u zcfaXut-bYiXVyi-HLVicC!XIPdA?s_UU9Tg{?xC9t8<;tF6y8DW9N>wTR-3ZZSjBY z#C?zLdZ(XWxL3?*_rEevoA^hS4}SjLZX(xzYxn-{)0 zpMU=0t=HH3+tHI=7Tji+pBzJg`i{@+IqF8j5%t|B^3 zw!~}Ct7plJlV9XsEqj{V`=~4?4J{>S2v6<5!FztQ$> z?ym)JJJ(;nb50;m@16fv>Hht{rGH;2-*?3B%B}v-Rr9y~+1r_4@?-1F-%B4q{9JVH z^Xf92CGWqAfr6yw-qmZ`Td(Kl-dmS^?fUVk+n@iy8Z)|vZ@z`@Yf`S97xnb%qXox8 zrI#Fgo^|@jr3V^urf;NFj%CW39A(U2`z!DAlzoj)X8e68ynf4$J++(ptW?{+MrF=_ zvbt;Hc2JjGZp*RUe$m@2czfFOf_X$@MSou@jd^@vci7LG{$`Z}cL+N6>buELt;O5(=Q%E4e)U@?+mg%Q zJntO0VlR@miZ7D3I{vBd(kH_g+j*8O6`S?wdE8^mi={DF-$xzj46ji>JD>gI#=Vi} z_%9a!-1_Y6_uTw>V&DeOY_WB&uTR~6v0r^_SzEyD!dk7jn{S!>AOE}T?a9V<-^vyJ zx*zRabbsmVt)bc5-D=O(cD;4qJSRT(_~Q3px1A`kJ#F~y5-sYZGAfHl==ChbFXew-fElnd*l7ha@yU`uWm83iN7vw zwKgd}>RWJ5dPcly{`AQ6{AZ0{|7yRbb6h*`@s>Is(+5EA z{%NQ6cCUGJYwPNjSK4kJ`gFJ8Fz?f?>uYl>A9BY>fchGqFUxJqANQI+yJ_D0y03Pp z&DVSWQ}%zq*>3_`q}z~t^*T%a{O#>)tLm5-Hk^9Kbv>EqPD~c}>EhRGw@*vA|9$g0 zdwT5BN|X0##%>$RR_Z3K-mmuK_nuqZe*NTRIG{CKJEr=<)vPsT2J^Mo?RfOZ;SH;P zh2zd&uU4OqEx#MuCu?n{`FGuOle3>=E1yo?IdkbL#+_R?>|J{(J88}S)yZ3%Kdw0h zHYj=}cr9tsiwg@qb4{i1KDY3=oRA}R_VLfHZ_*|nF3e8crR?74lXZ2?DVWy6HK!n2 zI}6q}{sV37?zgVx%Cy@$+ohis*m(b)d{};dNX@#|^9L(reDnWQ+~2xy;-arB z(w1ItzBa$q_P*C!cq^N!+?#BJC5(OhTGBx)4H;YO^2($tvINBT+j!K@ zPc1O-PPcs>Ir-b?tNi!9R?OG0``E3%Kl?)2|G(eo&p#gS{H1c=Sq1iI3zr7ezW8#| z^Jv4}L(E^i^>(WGTm5J2(&9gqZu)+~UTv3h+xw~i|NTupKhO5(OW(wMwVS=xcN+d% zcPip-$3MQ;`Ck?}#l4mJwx7{TzU!_7MM+)uzlHV9*%(gOm)fGa zAdSyN>denmP3sigqV(G4R%BQ1D|++v?zH-2rPV)ornwf11* zyUo9?^BpdmpQ$nsdzsb2Rxmxj?&r_vHX5&`F05RedU|1{hh@a+Wj`PDZFT&;#cYWfL)Q7RYeRx_xr}-8fN_2H>&%3PlB`#0}p>4mSydipc3{}g-P`MhPBrN{ANr}IY(-W-Stw$2wh z@woWoSA&$ldB*eBe>63`vTE*p28K18bY<6>9=O=B@cpYMwqhxj%6m0Woi5upTv~8~ z@r3C5O%;{?pGEsBRxe&>mmRey>D_9xMWshqTU4!aoX(#1&vqL7Y`FtFx5RGdyJjMA zc~j+w)LmyU*sQ4jzWcuHvmd(|V`Q%Adh?yTyh=Z!UvS;uG=H0aR_km0jy%@eIfxPYV`hKYNYT5g<*6i>7_j~5ymFE^$_&l~;^Z4awyK|5CpPeN)|Gm{eyXDzg z&wHs zA0HFWB)adqM!iqD`SNE@cx8cGb zt7URM)-zs}+b++ndh_`-^N+}L-7<@I&-?!Kb+P__z9fN-cnEu=r$}ZK;#J|AC;?o10Y3%P} zUk6o3wIAMn>spnG#TSQ*&AVC5&};=YC4ep1+>=hU&WXX`dIZ-utKKUHH55Jo|l~qWMd|7Tpuy z_-EJY+?m(bzrFM+>-O_ShquHP|GN8m$Nt#2Uq9~LqqV;C+WysMZq^^W{}lb?TK_-q zmCeP%FQJ+8$JZrG^;g@qpFMc1yuRdRRQu09p}DW^?r*i*ua@dZD|Cp`ITk+4ObB!&}dTb#s1MT<^==v-?o)k^G6*XPa2v z-y5^Gcirbj*XCvXtWY(aU%m7GPnmCDYD9OwKD++L{yWnu<^J}BbAC0xck6ZO_LkS7 z)xJF+%R`T4xIdrjbzD8nrtjw;Vc+kCSNv_)#qRv3du?lhbaUx-(d^gO`89o4|HK4PD#sY1vdb%wso~o3b+LMQO%I(TuH+&tJ6MQO?_wG+XY? z&$16T8moDC6jcb?mc?J$$DaS|Wo}6Q=iH;0eSR0oTy$8IudsdQJ{k4)$1)qzIj<$R zWzYBj_~ZFwnf&_R<5#w?-^Dxi{K=ZQ^F?t#`ncjb``#Y?Y-NA$@4C5%KWY^(`T6MA zr{{jzxhws*=6=h*o9NkJJ9V>a%=%l|Nj>{lU%J)zpY57m@|$Ft`s;tJ*8SW4`tgeS zRcn&p7T*b<^jEDXo;_;%eVb3O{r~G7Nr2?k7Ym3GJHLl``a`yx_<51Kewck zuAcK}U{b42 zk3R1+dJ$xOdEJSWe`YuL>2JGe6T4l!YyFZhXEz5HS)5~xZex3GczEj%o6m-`%I1Xr z{C2g*Z&mGC;p@hyD;IvNS-0y^y0`23vr_A7Lv6M%t+SB1dM!L#`@7*jzOR=Lx;?GE zBeX93t*PO)`&X}()#PL)UVGkM_pEr2*t*b<`Frly7_L2>TVZ*Aw)Vb%Ikzf>X z`oju=$lpma@r;4evmN=4TPBz*2)Z24RR-`BJ4URORW-lN^p@B4RFX>Dxn zoYLs_2w00GeZ{)#4fp2=&UZg;aNg2pTBwyhBSS>0w&*&;p7l~!*^+-flIA^>HUDh) z>D+1B3YId*Kc%nx{JFOEZRXTC;pD%uva9EY8OG#?uPy;M3OTOdz5-f*TX!LJx74Jc zuiCv%=ZRU$Y!}94f~yk#Z-rh7kDP)=KlKnn|rIvZ*ETa-}&`g^n8=QA08f_ zoN0cy$D2d(8}FzbH?*~oX0 zReX(hYi{s^Z=bshF1m{Q-U>T#k0Yvo`|@vXjZEct#FIZ(nZNP{E$(DEU~u-~uSwo| zGg<6dGg|FpBTH9&5e;K4V0|F5kg!6b;EAf;jPRmdu*c; zt?aJ7=W5wyYjf!{*AcG8T#qXE{fT(1)7^PL`yNJ3 zy?u9QaeDrau-)&1;{(EW-!i{9KlWkN?X^EccItzcUNs!e=DYs!RO$8fMo~6X|2?_U z3vX>N-u>or^N%+HtG6~nV;-3}kVjn7i|yxr*A8Vx#MY*p^| zTPGLZ_?;BBzr@^Oj{bMhnIQ}tD$YKNI!=N?8W+SK_)EwpI6BeO1a-&&h< z&mC@wu3N7AJmFPkNMZD{*6j7+r)S*mS$I8Z|DL;iXR;3G`yELYowEDa)34fdvgf~! z*s<4ezX!Pcd11X}Ot;fQrv#pck6NXC*ZEot+I&OSG${gMBlqR-(yF7VQitDZTN2;&&tGh5w$3`IP=h|?edBHHgVk71LOAT$G8{nTvw^m{y}Hk;()dHMd#eD*VW(oSElc5 z?uxq-?~K=npFaL`7wGUuh7E?Z4sG2(L8m?C{HV3rWv&&=+syygpBdL)6#w#k_`juPyLbJ5 zpKmF?b@|tl+MP0B18aOAMm^eI__~~Zp9E9!j&rA<-da)c_V$k5Ss6R}4w|!ly~BR? z`GYlomz4dnX!|7bVe9-o`|hm&@vM!h`p=!}e=(r$KSM&{tixN^PdWBs`2&gd%dQ>T zI=xt;XMW_p6$QEwFU<7wWek(VJ&~Dfa?byL9E%(ApF8cdo1D{(fW2{4MYHm7dw;ZyKK) z4RSq0w|Uf#d9Hglt#Md;{3BNm-`(y<+81^yy(yUW-`W7IVp*iuj%hX8JF}J7M;$-! zaJ(yi3us|0!vPa-?(2)rTWkBg*4kK?cSZE|iT~!?e=WE)wIpvXSjCy7mEge;hK5iF zsugS(i|4^gNlvKgZjfxuK!XY4i!l#>?MjZ<^WXbj`04xFZ_2()&8~=vy?$`8`RS(9 zdfL0o-ezfSUAPS#QvPP)JLHrjc3%+_%LeZt28lMP&(@B4-f$->LWlivSn^hI!M3`s zU@vcvXxH&9aCQzm+t&WNzUar}$zA8S-q>4RzVks7_qpq?;;|v$-rf%Hld+tX{&s09 zzl_C%`Ei`dt&a?Et(09K`EB>Jt3@C?Hq6Y)*b%nEuH@H~B}oVJ7H%jzsXE=qX*y_i zyl?4`4-ajs)en6wN!~KK|N1=J>a<(mAt5&VVq0rAd-l&OCmu$LzFf7HX^xgv<)_Ys z`WF|Le43ieZe#ntQi=8Jtzydq)s^<~(bwIil|@cVyuH$Q{oGvZ>$2MK-|sn}{m@Fz zSoX2bwyDd{Z_)udr{v~@g1h2t#0A$qy%wE6x5eQ9^*}DqU9)8KJ+Ij;JN|Q8YO5W) zo`3fz&73K0m%FzHq)fd~s23%UZKr zjeNs*N3~yDZ}7}c=d#4Yh+`S;{%O^%1$Fj(j#woceN&*$E-ESHyI(u3eA|n-2M1(k-CIob}2u#|jDjj{~ z<9*5g_ceUNPV<8-Cn-O#U#Vq&O(B?Bc{-v~^Q#l_$ztHmkpW0dbzkS{@ul=V%-fZ@- zo6p<*zWDcZH;Bzu#k>&owJcYxibdS$BW=N5juM*4=*f`1)h7+VjU| zzN*?Ib>VUQ^4@;=^wr02v%cE#)2r?GUOvxBDxR}$o2)x8ePg=hwQ$3A*X1+J+P+nl z75#HeF0JQXyR%Sii`3zqyq@)0GS>V@3s>$a{9E|>d-j~0^YypR+rMn_&)-|-?TkBK z`M0XJ{@b6AUvGTgA$R;*_RRlhY+jUlOj7Z@bmv)NZAL$suQfm4Ev)a#-t&Cd zxhdBktesf{>cXsi?J-`w{)D@M+4U;1nR*!7REZ@#$rm(=W^FE? z)>jMhm2PkT?&HrceN%aVI(zN;<1=47$9@9`*sI8rnCTzqz5e>`ccqBbbdCP{bD1%V z_Uu#tVdd5P=*nYope_!piIIOCm>ILl=FI!w`_2U|w)koR^7xk(sWI)+(*@_3&-_?A zMe69v;}capCoOSbyZG4G^MAkZpCftV_^RWVu73NvzW(px#66+5(^Nbssl1#lYr5|L zo3r7{%)8|l%Xx=K|8>}UNhJ2bwP|tcIS40^<*X=+X~X_DQ&z? z6(nt21GtX|)?k=NbG-`Syy8r9eukBmyeV5<%Ul`o5{?}5cLS@bKeqSuN zuY9)S*xT3ocYnY58d{!LTVYl7{J507`FH#O-#$K;tI{={xB6pDyI!(<^PYM6Yy0f; zU&K#?`Z>q^an;|%w9f`|i!0{vuFLXS-yit>`h>NPcE`S1Jhst$y6*Pte^N(G*Q_qJ zIKMt$_WIXd#|ppR|JZ!}SmDY1)IC?1 zpEs{}-N&f^bM-H;yT)jJuA)CMMn1TIV_ckF|BvpT*F~U$dBuABhc!Kaer`*KWZNz0 z%Z%4Omrn`1_FcPQF!rkCtHSEPzv`~Ou+48+zpdxB)cfz*e{1@X?aPlp`#yc$=_AMA zCdXXQeeIxMs`fLn_w^>b{~PSC8$ybSTj}OWG1ndBrk9>i-}QQ*;hg94K4x}l`<_(y z-2b}igVfWG^`GD&iUoU-h+z6Ud-loM|uMbaNajvtQDnR>UjUkB$<8cicIIIKG+U-R$kWb=C!haveGS^ocYjaCr?v6bM^Efy z`fB?3@AZ+4Qm0!26-G9Vj z4XED9+%Idp&b@SIQSTe6`X^UGaO zJ^nYIxz|fB7QPKCU|?YQwr*SYt`|Gv;z3=?H-T1XJBC1GWi^+bGTq` z$uZC=!*7=ugU-{TfBwF8 z%jZ?SI#c^}<8e9b(Ea}|P2X2il~b$tx{!f^;bl+uxf`!{tlNCy>#i(|_1~|~e6{Pn z^!*>lUcR4S`|alC`2RnS+uIfEFfce+J)UK(XT0vX>J!tn^U|A4yI!v;=6ztbtS(;O zT>k%`&*$q)&ivJTy3Tv=>#bKme&7A~Lh+sVm9M^i{qd{x?l!yY7G?W*85nj%UV57s zb3MTNyoB@Py<6LRE(RZ8_x-Hi=bB^(xuEq=jn0=(yk0l)`R*6l`%ipc`)VJ1?`x?U zk1xGmsCRN+eEdr99oLhO3CQ)wr_Xqv?6tS;tL146XWMwGIOQFAv(IP9|B~UeJzp`W z@MPuR^4fLlYo2PS&&%GIyRELb|L?q*FXt~;{mwaGUpM(YI|IXUkL|k)_x8=d`D6Y| z_4zfQ&eR_MA^+K`Y;S(q%;&3*$Gn$*wKeA1PrXmK^gq>z*S;06+;_F&-{)iAyl13N zJ~n){L(1{-w!&rG&!t^|pWSh7{p%f-IoIF6zVYkpkB7-$e_Q?A{b6SB|CjqtEL~Lkrt1D1qx0W4=ojxj@j3R(*7zqs!(RW0?KP~)xO3(0X93y6 zUmg47l~?7-r}w{p%oi(W*JFG!Sz!J9uXZNuUT1IQ+frCxdq(1w>8;nrGRjqU(YEj6 zrJ2j6MHoC&7Wyp|J$Ot_J!@a)H!cur?>VC#%=FUepT8l-(nV*&imx&)*i#^ zd!Ntu+unP=m+#}(Vu|D$+jaA*_pLql_lI}m$I6~S+qVCIY$MjjKfal|PhI@)=Pmc_ zZhxMC|H)@Yh69G6gkAjin88}Z$aKDR)3Pjy-i49OTaFd;K9X9JDi@jj=UU;{9iROr z);F5`zpz>A?NcS?vYMEcr>|W9eZA23T*3MC#^<`u)q5KJKd|+uKI^g9`|hhgWMDXO zcH+4m&w75xUb8-y#ryp0q`Ok{UMsA--@h^DRq{3C%dbDn{!-t|C)r#sckr;)y5qUY zZ~C7{p5NEM`O533Zyx*n{Hw>w&cKk@S8~jBc8_<%^+4M-(-WsV+ZR^v^Qo}4%e6Vb z@H!gEJ@;?Y6 zqsG9%@Fs583-Abz%1XKp%r68FJ#0MxrwcN2d1+(q|KIi&KhNmbUxT>k<&Axx=cfDB f{S&Wy`Q$&NMow^0@H^=(pb0`xS3j3^P6("", "")) } var isLoading by remember { mutableStateOf(false) } @@ -53,8 +56,11 @@ fun App(fileStorageHelper: FileStorageHelper, savedPath: String?) { var keyAlias by remember { mutableStateOf("") } var keyPassword by remember { mutableStateOf("") } var isAutoUnzip by remember { mutableStateOf(true) } + var savedJarPath by remember { mutableStateOf(savedPath) } - savedPath?.let { + + //TODO: KNOWN ISSUE - Can't update file path once saved, For now Delete path.kb file inside storage directory. + savedJarPath?.let { bundletoolPath = it saveJarPath = true } @@ -93,14 +99,6 @@ fun App(fileStorageHelper: FileStorageHelper, savedPath: String?) { Log.i("Command $cmd") logs += "Executing Command : \n$cmd\n" coroutineScope.launch(Dispatchers.IO) { - //Save Path in Storage - if (savedPath == null) { - fileStorageHelper.save("path", bundletoolPath) - } else { - if (fileStorageHelper.delete("path")) - saveJarPath = false - } - val runtime = Runtime.getRuntime() val startTime = System.currentTimeMillis() try { @@ -129,6 +127,19 @@ fun App(fileStorageHelper: FileStorageHelper, savedPath: String?) { logs += "\nFile will be saved at ${aabFilePath.first.removeSuffix("\\")}.\n" isLoading = false } + + //Save Path in Storage + //If We don't have any saved path in file storage and save jar path option is checked.Then,we can save new value in storage. + if (savedJarPath == null && saveJarPath) { + fileStorageHelper.save("path", bundletoolPath) + } + // If we have saved path in file storage, and it is not changed and save jar path is checked. Then, we can update the value in file storage. + else if (savedJarPath != null && savedJarPath != bundletoolPath && saveJarPath) { + fileStorageHelper.save("path", bundletoolPath) + } else { + if (fileStorageHelper.delete("path")) + saveJarPath = false + } } } catch (e: Exception) { isLoading = false @@ -360,9 +371,36 @@ fun App(fileStorageHelper: FileStorageHelper, savedPath: String?) { ) } } - Spacer(modifier = Modifier.padding(8.dp)) + Row( + horizontalArrangement = Arrangement.SpaceBetween, + modifier = Modifier.fillMaxWidth().padding(start = 16.dp, end = 16.dp, bottom = 8.dp), + verticalAlignment = Alignment.Bottom + ) { + Text( + text = Strings.LOGS_VIEW, + style = Styles.TextStyleBold(20.sp), + modifier = Modifier.padding(start = 0.dp, end = 0.dp, bottom = 8.dp) + ) + Button( + modifier = Modifier.padding(end = 0.dp, bottom = 8.dp), + onClick = { + logs = "" + }, + ) { + Text( + text = Strings.CLEAR_LOGS, + style = Styles.TextStyleBold(13.sp), + ) + Spacer(modifier = Modifier.size(ButtonDefaults.IconSpacing)) + Icon( + painter = useResource("clear.svg") { loadSvgPainter(it, density) }, + contentDescription = "Clear", + modifier = Modifier.size(ButtonDefaults.IconSize), + ) + } + } TextField( - modifier = Modifier.fillMaxSize().padding(start = 20.dp, end = 20.dp, bottom = 20.dp), + modifier = Modifier.fillMaxSize().padding(start = 16.dp, end = 16.dp, bottom = 16.dp), value = logs, textStyle = Styles.TextStyleMedium(16.sp), onValueChange = {}, diff --git a/src/jvmMain/kotlin/utils/Strings.kt b/src/jvmMain/kotlin/utils/Strings.kt index 8e28531..f752659 100644 --- a/src/jvmMain/kotlin/utils/Strings.kt +++ b/src/jvmMain/kotlin/utils/Strings.kt @@ -30,4 +30,6 @@ object Strings { const val FILE_OPTIONS = "File Options" const val AUTO_UNZIP = "Automatically Unzip and Delete Apks File" const val AUTO_UNZIP_INFO = "Automatically Unzip and Delete Apks File" + const val CLEAR_LOGS = "Clear Logs" + const val LOGS_VIEW = "Logs View" } \ No newline at end of file diff --git a/src/jvmMain/resources/clear.svg b/src/jvmMain/resources/clear.svg new file mode 100644 index 0000000..4f42f39 --- /dev/null +++ b/src/jvmMain/resources/clear.svg @@ -0,0 +1 @@ + \ No newline at end of file