+使用Flutter编写的动漫之家跨平台第三方客户端,动漫之家的复活项目 +
+ +## 支持平台 + +- [x] Android +- [x] Windows `Beta` +- [x] Linux `Beta` diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..61b6c4d --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,29 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at + # https://dart-lang.github.io/linter/lints/index.html. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..6f56801 --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,13 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/android/app/build.gradle b/android/app/build.gradle new file mode 100644 index 0000000..60f33c1 --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,91 @@ +plugins { + id "com.android.application" + id "kotlin-android" + id "dev.flutter.flutter-gradle-plugin" +} + +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +def keystoreProperties = new Properties() +def keystorePropertiesFile = rootProject.file('zai_key.properties') +if (keystorePropertiesFile.exists()) { + keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) +} + +android { + namespace "com.akasei.zmhf" + compileSdk 36 + ndkVersion flutter.ndkVersion + + compileOptions { + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = '17' + } + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "com.akasei.zmhf" + // You can update the following values to match your application needs. + // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. + minSdkVersion flutter.minSdkVersion + targetSdkVersion flutter.targetSdkVersion + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + signingConfigs { + release { + keyAlias keystoreProperties['keyAlias'] + keyPassword keystoreProperties['keyPassword'] + storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null + storePassword keystoreProperties['storePassword'] + } + } + buildTypes { + debug { + if (keystorePropertiesFile.exists()) { + signingConfig signingConfigs.release + } + } + profile { + if (keystorePropertiesFile.exists()) { + signingConfig signingConfigs.release + } + } + release { + if (keystorePropertiesFile.exists()) { + signingConfig signingConfigs.release + } + } + } +} + +flutter { + source '../..' +} + +dependencies { +} diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..f69fdde --- /dev/null +++ b/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,8 @@ +7Zpl8e(9xrz5kTnKd3S&-5 z;8sY(KuC{U`BdO30&mK9qtFw53ym>sZ3*DIPmf>uA@KBF)q$&hItp`=d%2VZD65Q% zw5h<~^Cs`jaA3LD8a0>U4E_${_y0l(=Zl>8)*wS+PI7!H3HWtpDz}LoOLOfgpW%p` z>+p32-*hMm)h2dP{BkOEW{h|wn~XV50KRyl6*W&g<6P^>E)`9ef=SgTc0S|(@e-h7 zgmm7_%Fnh7*z$}kE=-Y*esz(V$mya0=x(g z`Q8i=Aa$TJ@MOPo- {4|Tema%V94x{ TsO)u_>3AB8u0n$0Jbi0!ZOCfhEj`ze`pBE;owLLSNoa(m(BcqY1PDePQlnc z*x2efYS=T~DpvOmBG)EF>;Z+ LHe77W7-#bVTuKfi`_;69_#1L zfggPuxlZ0tn{-!xTm(pFy9Io?)P?Ul6dby&;;zO_2Pwl<@*Gwa@`k~tqw^UfKtfv| ztMhFr&9fRcER}&&NvTQF1B$Q|q{z>kb(N_Iu<^E+X!n5XSNc#HNR<>7BSt>Y!dWFH zW|Z5QNe|Kyk@~RI%FNV+RKrpkn5vS>kf Fn&hBvJ?baV2p4`0*b_ zYTr`_oSMkl29&0#d-v}BLZo*OsC`cz@N6SWN1B?Nb~HCPw;OJh-aVl9J$1md4a|(3 zJ$v^1s;a7wF&qcz#R+=%fZF%e0jDN%wm~Kkl~$g>D~duX2b`M7 s)Q6>Q{H#I-RPr`tu%z>(Hj#h+4|2ogv~~&CDgXcg07*qoM6N<$f&iX)YybcN literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..a5a4b457aa0106007ad47283472a9bdcb1183066 GIT binary patch literal 4088 zcmV G8%abVi4hP`@DWCQfwlsg!8$MqI>PAGs>nD_bwnOIl@tSF#Rsj? zf{(T`j-^bC3e~CN3{BOD%DW^{5sN^0EF>Yx-o3kfAN9Z4P43>kclRc_`!M92*~y;0 zo4aTK??3 q?*m1(@4LB=rnlx$B=<4d~MC+=4jnqQb>+&HE7z@CR~zpJF$t)ss5o!+>eWx*aKjCA0kF1Kz5jwO zEiJui?b@}|7B61>QB_q{)%x}8>&)J4N o;dZ-+PoF;h zdXBW60eK-cm^yXp%^V49sjkS`itDbsZURTDW~wW4wxYbed<++oln0O+6muaxe*mcg z!~GN{Q~Zj8{{=-H4vIJ`N;oA-;AKEjItBSmFmN&q@>mB3vksJGuqe;skj*+$UG=!I zG$E4;92Z4= I) zq@T)?Rs=|jf`1DF-tqFN6a0`&jjbzd5WY^W O%bPTX4Pf{RTb zBGQ6@Hd)4dycZk1UK|zWkb&cPy7oGvuj~K!upr@uBVN4P 3(CCb3j#x^M<`np-G=@1pX;}P&rj~}-eJ8}0=7qYq3^%W^2;J75B z`b;Z6_4{Lcw;354#PWQza!>)@Y7+3FCxEIE*| (YYc=eP$u- z#4AfOu>P=s?ad;dy*L}^WF{{pC5-^e om|?fAp^9ONg7grpE)Wc*m2YBUkyuoF#GkBqG&p3&ShT>joG 5b#&YPmkD`06ZY27|1+9vilTooYKT&AFL%FAU5+e69bfoF z1*iQX2DIeJz)@btLpwY0>VzDe>q=}(NGJi+;jU_LH8uVqhQZRpJX8*H!I9)qD%I_P zSHhZuKJ0E4L&ooRidMgZ>is;{RJg$=ux<$@fO7o5(`qmS 9 W_l HE z32Vk*h93WD<8fJ5Mp|g}b*Dslg9c*+jpI-n`=`bLs;{)S71&Au<@_7H-q^}zsQf{j zfMG0)`wFv@o`Py|+ArhfuYIP@qJ949F%b>T62=tT*9vSU;A6puCQ*(vD(xoXwbNeg zPtU&ViOX_zLa)aWIH_jS0OT@fy?lmtz GE{5kQx3S zZ+{!W@`?7f0$T~7nJhD%$4vJj0(N$^c8zk4$g(;sw)6rweo^eSR98t>@Z=sI2is*` z9St6uCF6BX650X^ax?8|wYCv(Oce2@5HOAT(aqXeSnI8}Gw(bXZYi>s+ESYQ`>zFj zc}g_Amr)-Ot}DqHpC1!3t<;_|jBNyb>=RV2#k%*x#Ovc5TVI}BkckIMtdCazb|`>N zKLp}B3PPF_5LuTmj!Ef9z;?lSX3Nl^8d*8|iV8z7&nJyBdvGjwI_mj`5Pf_ zi0m@H!DrW>mep2dM+RpL0YOE scfMv;Nu$9!%1p5ZP`8)7}(e6hiYU8g18eGEF>7-7e# zKWp~cVL6)!@T=NSjIe{g$9yVZou7fbhFKeE5jGzQ;Qb@PxFcLEF< wSzqJE|q1`+BS}r7bJ=Gyr=D;J|cyM+os0QLALoBvjQX zw`JqE1Z1q(+iCn*`o8vVR${*XyKpusxV8|G#YB3N@fe`zeE=DM)#x0Ia9gWpYe2@r zuXvpF$vOk}J?87nE}Jw2TW*u #UzMMMWuvUGM*HAs5H$^v3w{$3^Y!J?L(-@PxEu^dWpQZmiI$D8_cr=EB`yb+ zUu50*4Xq-c+po{{BefmG&~|zncEV+MCQzE6Mg$P9$<9P0uNUR4w}d>7!OGD&a9i9i zbW&9}eF#c1S{0%_y)R)WoM? %d> zuWIs)i7|Vs?U)(g=(}8go_#CiY$IT#lSOGJiys8Zy75B+;>nTO7@K3QDzufgYB!HV z?MAyP(UnE1=wr<9mQ|RD`&JCMZyAkk1km){tieuoE2yQIABxfQOI*0&9P8<(M^JEm zaRw$Ab&e0hl7JGrw_4Qh6F~R=0E8yhNyp)X3ih9r(cn=`$%t^I(0#`iIWR0Q4GAF7 zCg^odK6Sl~l`u5DC=2s?pl%Xq!^EvNu2lZy2MJIACjgpLG7UTEF3%e8uyr+`tpt!> zGc7+$-G>`1><~t}IXpIEP|BAkURT0m?l=yA-YG?UJ|c}jJP)|K%-$8!wyzDnqu7Zp z9zR5b2@tJReQ${q88&4SeZ{S#IlR3`f o%eZ828*Y%U=x@uB$NOr%iy_-bMVN%c6A3jbkl_OtrF&b+JWnbaL9Bp z-9~^WY-vZgT6sbD9!8_}Ly2=O^mliYf*+a{! O7B4jj@C6Y~guyE1-mYHgD(l0JF3+b_Gm+Vj8B+3_ zag |VE>)9+HPUuct;VLs?}lEO$701q7wVfO{Po)a zK0hWwlx>Ll(0D#NCsSsPXK{5IW4o%^Tcia6VT>(g)lJZ}54WyK#8)RIbt}+`4x{Z) z)>bdj1Uk*((ljE?WTo2U^++oM!k|siH #2nIZM&Z(MiyB7;&m=ayFu=sp%j`$8gh0(5bG>*@%7n_I<(88R&Ej_rOVd z$;bQezrU5E1L)}tbUKDR)fGC+z;D^IWve<4pabaX4D^AcY?Fu0n>W`SJb18OC1BmU zb+vQ=J)MD`>WZBu@GM%is2bXla8*@R6&*l7& (|#!nKES= z9YCMb+VykP)zxjNuC9JFT#nF!7A#osR9RVBFjklG^oics!oHvu4e@PY{Hz*CGhu zc^;LOl@Ha{))vtL^r@(1e?`dnQ;!`x)~Ov Oq1 zBtRC#T}?=G)ZNHLmyPD=!tOc~5ZEXRGCd+F5>W`#^JHfFT~&K-b@xnlbyaosW2&l$ z`p)#}n%lRlZ&!W&-|znafA6&*k8r!))7@_Ok~wqc%y+q5a{ycgpaOsc0F}?rGN1?% z09^ol9UUE~TU%R?d%fO6&CSgR+uPgee0+c 2%I>yWPv(ZZ|w0PmkB@Z9Q<{z$^Rq?R%-UwY4YP56GH8n>KA)?(ujY z2QVw!a~RMJ<6JJ+GV)lze*JE**Zb7kwQD^`j~?yK^h6mGXw#-mcYWtO-}#Z#>8#E4 zy#{m%o6F^T;K-39UvFt?+1c3GxTU?ly-(?z6%**T+in~C?6c4Qva+&rdDcxepl6gW zTC`}R*Xv#9@p$gtym|BMO5UW1K$|vgx@G mP5 z?eh72vX#>kXxFY?_ck^*{u=;OK3i!(*RVG
hZv+0Ru` IO2wx^?ST4iSjt^Jv{51BHc}nwsTRRaN&} z;{V*Cb%P8P97>liU3#;Hq@fy_ga)!fU0vM*LZBsDH^e|;qOPv4) auv;+MYJ!Qn z;x1)wGgAu<=Oa=4Zy MkKYXppp%Z@ zQ6V8>N5f^v6L}=+MghFo8N`2dhOn^AhI=ZCFu&9~YV^{mAP~c{cy4e2PYv`V$iy{^ z7$G31d1R~ 0wvn =w>!cf!Qv%D7 zY?0(GgYZ3~mIpHAVN*4a5>k;zZ-m7orv|WY+8Eq-brGln7^xKmfewX&oaG_mhjf-l zR0JcP<&hH1Sy?&k`X|tfoLqkv|Ggp9|u=pFz{CV%T)<(bheIT0;T+ptl Fd6BDU6E&23zNqV2oM6B+@m3UJ3Z&x!l7AHkEZ-kS0|| zmM0T&jm#`h5~))yCcpedZxlZ~If$Rmb--cKCy8`Rpx1+e6!N6+w$g_u)Yd%8K39Th zEQPnaqj=z*0qnY|1VuWuM7kuwF^N6y1sVK$@OWP%M8%-q^E6t_N&DV~x+ z@tlXTV~Te?eD1_?;#N^{UBa>njRNkN<^GA44?W`NXZiJ5;wg_k$Z?bbA`FY}FpI$` zD@&e4+54AiJnHr1$McGH7Xr~8fzC&x*x1*jNb`{6o9s3;jVs4YtEC`DEeS+f7XQ@| z#*=3Q=!?X^6puVYE7jT&LG#C9+*@VWve_xn6@iF%`P)667~qYzq%;p{`2FRj_-a`R ztOZ1z1S}MVrIYMfINl1+sX@Hi9Zj)3!Y=Tc4}zHPFrjXuRl}AiLpKB>zev(;U7+ct zi^k>ei0Fw2#+G4KS&4=%&JW71COkH$1nZ9V -5nI z051gwaa`bGmKv&8TP*lW>F7!2Cd2eKRYmZ4{jmZ8dH5D7!T?XS1@Nm|N?_K3<<$j& zF49r#?(a`4m=njO+tS0u%O@62v|_xCLU)LjBu}FJY(I-%c!SvB(%xIGIe|zn&&J*! z^f3woqw(_VteQ7F@35OG%pYgL{)>@Vfsj0LP;s}xe|{Xnt&^>oKT+Fjq4}NoW6&S# zx*)H4Vu+R7N163WU?>u=Ao5QhPoE0n## P^?omdm;VyMvTE(3_nH#uR|EaSqpl3Rw `G` zkuWt^+VTkFZ+|!!fqRBclUSK11PU+=UKkuyW_glgUc+Tib`2oJ0BgoO3eppu0GSx@ z^Y;Sypr1*#JSkd8d|2P PfDbknS&ZcA$37SYkqbPwQ7e;6B` zWw^$!`G7KG5c2H#Foah>jfi(!5Q_(j59^!HMDUfFHWaCx_M!S!kB~WB1B0=D6bNRq zV?NQ2`y=?uxh~AGS-3A_;ziU={Qu+6ro^HN@iG%H8lPN7@#+mflhPYYEx2n^?z1TV z_-O>cJsVPBdBn94KUc{g0S;e`;`T~)<7BE6i1>Ui(jwE1V@DFdIH~D0u_qFH{U8_} zE@Q Qv#_Zs zrd21 qcC BuSPhFBhwiu%I2up}YG+aNej>BdvZL*5^VP&m=Spl*sf-I!_w zB8yo@8CHf6={1k2qcN@K$&hIA^2#C;9-5vTc?ka86~*&s1>{N5aB`YQWIZF1wT<|7 zPx|Q5N1(Huc+P|7ffUiCtcl?L3V!uvW(q% PkVEtQz=nk^+He_OX zlxrTb>-a%8!*!i%q`Rs{po`Jr(Sa0sr1g;qA@XW@hJ8ZcpI(f4Wx08CgEWiHC;YMe zX4%-5l;si8JV@=fq^#6H7`Pk;%2kN1sz#vBD3hJ$kt#!aYm$lOA!Q9$7vatvV_YQ5 za`U@>9Pdu7C!Gh)BVxhQ{RsPlEXwVp$N~*8jPy_)yz)4tZhm^pBNd+D-ISEi1-@8e z!`jN+hU=u;_~n@p-sngS*QwOc%f` zld0vo&SAz6X5>ENdi6pimKY}K=gHLaP$||~(((wdS0ItyIKohkK#`#p2jT^SU(8UM zoRyLzgrp#sw>&e7&Db`l6!sh!ayr}*!4uwqa`Gg#N6PXj(>y}*kmra>4r$d0L?n>p zg@Krb;MIjP@?=_fs@;Sqt}o%H7w3YvyQ0|qZh%{PRZ(~%>E=uMdE_%PlfPT)kC0Yr zB(EBQSpGpe9g~UXkzAigj6B1yms=?8oLh=XIj+%swx7mBZx13wD pK0jWqJ?lz5t=24o@!z&~H!A-LqIWO?tA7S7*;pfPcwdMh@jPK`>uu{p_ zA(cFd?o6$eAk_$D9a>N_lf+b zh9@8>Q($@cT1c(srd1=*&~#+suTH8A`L{d-^%HIQT8`0mE eGuIGb1$GW1}eJZGYs4iwTcq36^U{u!6 zlcw9^pQB6#FErF7&?Jjl(%g!YO0l0uK0TFSEE#dR%21Kx{Bdr?b Bq{ zyOgB!%IP2}@(=+%Hn(0{F;pYa)mF1)!jvM*BNUpFmIuQg+<0_-^X!tG$ q~HBd2Z45 zO92M!|2&9K{erC)AVMB7!K}n0$!NDswa^WdRT{&qNuU{IcfNf4dBCrWB+Emv;hN%{ z$wTs)A3GVq1wX4eFe>S;5OESxytXUSO_FtoucOPU-cm2B5oo;GgsZG3d>Up_elfA< zTt{2U7xf#JWAH_1ZoVFpg8TT%0N&}M(|21kdW~Ym%ca^br{~gjXC$O|!<11-ATs({ zP-4gLy8^?7`LaBM*$iX~&YH^H7oa3V^#d28$^6L#6qx83 zg 54zJw^sWxV-d5}to>@-pGIb4%W zP;<2#RS8sEVneZsf)v z4bcd6nY F|3ht4xBG(H1R@JT)jDiAcsZQ8<$?S!uf$AY>zooyE6&Y_Psp?3 zO+R` c+9;-Z#8X$2Z@j$aQ9gtxkI#%|0ud}Mwc%i2ICIM*Adj%__wtYoPhwnK z+5-4^Kq&OZorH2Z%)ECbzR6JA)9Dz+o_fJGs~%6mS*l|Hr3rz`Y@Bm%Xg8i5M_c6G z-<&oE^%c2|xX5sQM|%+e=c7}|ldg?o<>DhLnK)LKnup)U1=Z@W)T%mxCR)w7b6gQ# z>I_QEo`9@i7Iq2WARE-?m<*5jB31Xzuw(U%*jyNv?=xh1&EOp)Y5y>h|9Qtue4j9) zt4O|bho8ma^EBSNIGj4DNb?A-SDZX#`2P9X>aEI=fF=tIu67n x+uW1B&tX=X93I^PmoDO^r7?!4B5m%NF|h~h$8YSdacjlwk(uCSHr=a*V> zgTsP%`=jYC55J5BzBJi}sYTlS;zkNzzRrw&?KG#AGMd^1VA&1YT?@?!L_!-6Rh3|M zTOTK2Wi=0*Tz<=VtE%2sH87>rgjwS$obF7h^z@d8id&!0Ox5mUXu3N0^f4Cv?F1WM z^`&YdDF+-WpQO>oA|s9Ju_m16+z9C{54f~dpz&61HyhS`dG~KzRgC}c40BsK#*nIc zV$Z{lxzVD1gcwR5OF%GGA1aGqle^}bF-c{|p%9uAXsX?e?^iqUv$KP#9%g~%NtF9S z461SrS?CSK3x1|6IbltXJX6Xj-2EBtEwSbVBDl+0gtp63ywVYt?6!u=SfKfQ2(@Di zYoGXZAlm0_SL} QXwOo7hKu-iJvzYMU^kV$z)ZkE9Kx_z~5Z6CH z6~Oiz&6qq!do!LZUO&s=&__(#Zi^h>KAXZ9uG7zV)(wFOZl7q!N0kird>j Osd~*O#)D+{|GF^QQ#h@7$FP^0Fo4061 l^53qCv1ilIC*R&aq?Nd8ZWy)JeR;Y5Hm=ao87;v8fh!`I%Y zW4cEHdCH0?JamTzW*w0SdL$5WFgDF9#>D`G6TQ)75sl%SlvwsH%7R+~zU5*xshnRI z5()6qdvK*@31l)?eV7pGCr>IN4{>1p;0`mUj@1`=php4`*i00*&MUzWPY&W(w{UZo z*o9`3F8px$5TwW>@_I6PBxZt&l!;CA$v1h(4upg}^QY-Y_wb=h0uhWcQ+RBy0~?MH zpuLYyu{<0yuqG+xX=b}7ke3;wBIHRoROefs1=ICO9_X1s1jQB#zqqjkkG1>p`lU$9 zO-!*oGQ;2@NDv}%!=$WDDtVMysZ83)Cr^11g{IG&aZ{y!$pgI;h=6Q2;F((tS6P_b zv?NTYw>;9C2NISieZI43Ir!%lu{@9|mmv=sZ4tq&N6jOI?g@mru)ep-j+rGUJp7Iy zp|~uP3OY*87?qf3FRpo%3ue)_$dO8-Yb9mG&qIdldK+y?p&$s9K Ltr!;6eNKNNF=^yf(5%iXU41NBly?$5Vu2(GR-44SAAqG zkEmcqER&EVgK3@5lPe0AKnW0Qv~-#c3np3c^0^52=nSxunn!$n9%XA1X5!}&BM+H9 zL5M?gm`NJyXh=sXcmgFb&Thhe*V?gSrVamoI*b=TjBxv?bCA?W$jtJjvq%sp4 @F%p#v>2Y6--L-AtjzY33dTWM6f%H8$DZm~2o>_81-Dx;y2X$7}+omYTQ) zEy y{WOJalw)d}#4{y@%Xxx7KYjP=IJ} zZ$D{iZf-v4@pyVjG(hVH87M5Yw6wHZ+S}V{uh-k^a=Dgi-5>)61*WB?rG;}O9yoB| z6@x$qGC^-|@8Q xLO93_Sn*^Lvp9We_HLz22u>F4qHE zH_SjmV4%6V`FG&Q!q%=`>p61d$kzdsYT7gdy2p_tN4B=Mwh{;QFoBL9J=)vS(z0{W zqD31uZJhzV dOV(2Ng9nNEi|B8baZsQ^2j5PJjX9f$p_lJdGqVl)zuF+G&Jl~wRHw`jo#kg zBXj4@y{E6QkLH()CX_WbHSJomWXTPcm6hvMYoP%>qi5N&Wh;F?Ur6|ZD1m%FA8KoB zzrBC|{-T `I!3p`ZaBBZBv|1=N%*3L<4$7 z4 D0rlnfG8CxOvKY%5b_J+Y9OxZS&V zA0Usas;c{!E?s(aU0vORy1Kerm&-MqObs_kr5lj$=o6B|Owv$ECLu`%BUu=^p7{R( XskZ6rQ7;X800000NkvXXu0mjfgvLc; literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d06170ba53016fe23221f43e28af2ce2ccc8eca3 GIT binary patch literal 10087 zcmXAvbzBtR*T;8Z>Fy5clukiHx}|eLLb|(`mQLwLI`)fzv@|O%t@MI`bV$3vv;Lkx zX6BC@=X1`SdCj@^zT k-8o~nw1F7ny`@4`e!-gVbpFaQAdm#PYK`T>O} zp;%coi+QI;PO81Nt2m?GJ&=KpMM9bW?=x z1Ip;O1lU wD7pCkA|}4?JU}3T z0N@Sa2KZxfbMskCoHh)<-?FQ_dp`3mR=WinpLs_bCZe{esA%8U$EV@u?_&wTqrqYm zrsKH<5C$6aJT>BjP#D7ja~2jB?rs}B_np V z2-z(?fEJJcJ+26lDW}@k&o85|4LR;&U|@j#;o)IWT3TBB=K5N3{9e&+Kw`g8=y3pp z0U^go*imI}C&>T7;T&oIMfiY~hov~}S3y#2X|t3_b`3~MO3DFp?B?n5F@gdxwOd1q z8ih{|iW;y7$pw6=uHHXwb6$Qels>4&CabKhJfAP({3Jq&8-~_j7_T20F~Ia;;8&*e zQp3G1KP9gFTF1qg)6>(UN>Y7d;L6HMzL@(4LYS%}E2AW$%p56UpsA@T92 p8l`!TG_D*J98BTk>$@(-&u=AJ;fO-m@?Kke#wcoF zs|awY*2szM$H;Q`j-RrJhZH;XH7!0t{+Mk(pg`31!5ryxu)Kk-)qf23w>LMhsW3r? zc(}MMNp7Mn0LObpczBJ=zg7x%_m$RzbexwRTP>)lsGPktcv!Lv^h=jQ`qYT9XS>J8 zM`*Nsnfeg?JkIp?fEa=spjd=-gV^(-%lGIMCvGUmdA(E>V0}p1DDBceq0@{BLMhwW z*!V9yK1&TCIL5kipI4h%woQbK9{$;Fz3XIsechdVz6Qi7)Z>zoSeC&5&+m8-@tzPX zE5?_aIz*7Wn-8Z*t&7o$G@>pYcGriCp9LBd0K?76_c#3d%#yEO_5GZky=eLR^(*SV zvmgp#&imQ=%!o4T*`9Ypu}3SbtKEMnY(b1qh{?*lvV6Iv`qs9#^^XiVq?odXUd dHz74^U;TxVDK9Ibnqe zA!cj0>aeJQ0~zWY%@>ro#V2fVY?EQpSW^Wvv(+&-;(G5o?!kV3GGy4;J4R&NaB IH_Bt$bkD7*1wCPfy{yXAOn#3MohbEg7 zLy3M&ejs7lX0aMP&w-W?MiRisiT;9QINOYKje3jJp2aKyBQ}tJh?D+|(Sj%OiX1R~ zxwvzj9Td_tl4z(Dn=ycCMMP8# 9gZlf%t(;SK2V^fY9gGX1#X|uL;bPaJ#HP-v=;fc4jX; zqbrDL$4Fzqp`VVfKKpPqP3SOrma1U `IzWn}<1s`ln86D!GKLg=hP8FPfs3U)Zx?w&ZZ#g^a+Ka<77 zgQR<2DuFmDfeM5JoB3*RWt)oM>TLZvb@SXYmN%@z@O?G+d)7dM!>muoC$qR+{>eM9 z{Xr%9i;$Ta$LN_U^l2;5H@F8|R4`2GyxN$DT?~D2CXe4PpYD4;S=hDsK=eu_BW$)6 zQo`^7egJ22vsg $~2~RwB1#G(VN~cmLu$Wy}q3aF~+$; z%e0K>30MNwE>9^X&7|+<%Gr1v8!QBBep)_lUQp80GE8Y1+sV n#-z z`l70*vlOX`TePWwZ}uuUdqgE8aZ+nx1~}9L)n9Lz;LEhY4^4dng0UDdnC-H}*z;QQ zNJXGtwPc^^06+APbDgGsE=vl^aMHuw00=CVF&O3AXuM`@#!|zH(o>+ez0v&EMU~CA zv01~Iw6T>HZuAAAgYAih3eE@MBmkRZz)|`5_;HyiO`DPld@o&wWu|NCoZo5^LRueE zVHF+DJ|Isy9W049U*R&nqdZC8gDW ^wmTylLtRKn9u+j+q^r3gz< R;xs{{FHONwhxzGkFso9$WMRdh ztyiG}^hSLGv1U0U@IsrqWpmRu(2oMGou%|4N|jw{Vb*vB9OCs9UtXb1DT30RY0e|g z?`CJ)>AHRLV8u|8LxF7K^Amrj4o^qsmzF;uP6`IZR{oMP+yn&gG<3w`6y*f-D;K>T zMQu(v<@T$ypj<{}OU85etiucR${wE|GSmr @v2xP58U3`rJ`d1`jMvv zpHPky$Q`R8(ZuSDU6Gy8R*zDmQreU|`l#R1$NzoR7kxe eyvhEG6nZeJgScb8OT9Ai)ZiyU@>zsn|Sz%Qf{qX;sIm%<{mW@FHL89LvpN% zUa`+sNvKK`{vx=K_;S^C{MEYXvsab)UK0)>NXx6ZV3}hrr+3s&<`?v0y998-QJiU) z%?a*zFztU5cbC7DsC&5no+4fqC~n?W`qdojF|Km~Qo%y`T850Rv5PFl(} %FpM&&9?BS{JefyC@~>~)>j%* cu?|UmQ2N=vG4>eaJzh0IeFAiq(H< zCE_z1KN*H*ULEmInRU)U%dyUlc`|%GzkkkfsFhY=z4P%V`6}RTI>pC$E4B!)uKu!J zZw702<}tz|i-qA4?VPFg6=>; vsj+OBoq(C)}o0p$;baBU}3xhs1QXu)1o zHHu|+QSQ7>ocjLK&Mbj~udbceuGdWJoX{0s POr!Q;SStJcxq#pnC*=u1?>}j;En`9Su+Df>1V>0{BGvl^DYng zlt}I@c{N4gmsVuTnNr|ag`%|Q<4qO0#U;!twvgg>;@_`(2QIu(Q`iBHj|{{ZUlm^o zhtf5HaXyCELKQLt*wf|BqWpCaEmiO4pKJ{Srf>s3D(`}RCSuG5><$S}=kFhP0%0Up z_L4;>Kx|a-dSz@D+Hr=h)>_CmOqt18rafr6GaJSF-QRVqxw}r?eYD?azX-bZk^m%V z%?QlwasfSk=8@~13M?1u)Sba>rN7~_F 6+iIV!i9hWaMmyg2be2k< z@F&;_|028<0Hv`t-pXjW^HMc*CzE;80}Y_d2#()<( ?OoH--e%xx&d_TV6j}yo$Y5(HAylY0w@e^YN7%cs9 zT))(Go;O^e5Bw_*`LFE{6gqiJHP-`q^<|V}&|PY)O<1lfK-BEDHHbgiX#3(A++mV? zTwKj$Ue>_6a38jQg|NRsM4D{4eDHd;$MIog|Euf8F$#Imqvllu`gL{A0DPpE$~-(_ zt0V87GVvBPe%qSDxv_ $MiBIaW*49O@ z>Q9l{5hd2E%WnO&-6_ioDI+hKj($Hz1xmJt4d^?XW96qqZBJs2#|)74BKlmms(rc` zD|F9T&ai6q*7U?+_%i-{lfhxkH0-#)>T#^Fb6)q6?P;|V4}}VYCvUGoRRBh0r7f9U zwEfkhvP RI=%>8w$V8^cj`@A=F$`E@SPt^%G-Rd|5D_QlvI_-I#db!5EGiJMBQQghA zKg4aYrgh^Fd4FyiXI=C=tRH=%EhSWP7R`bqH6FBD_2*CG?p+AZSQvPei6Byi6xOY7 zrk<0LZcW^aD|!vlpF%2va%-!nrEO;y@>w HjtWSO; z_X9PM#~l>%R(=#6&)ofHk@SUydpq7fL+($L>SRi&UcV-C>ZGX;wFIz!%p215{ij#!C2xAk_u%w*aN)X*oLZwxNSk(HQ=22nS zP@~bPgJ%uu6si{JeW6xk*ov!#@^9|qi=H!n-ZW~gb}*-$Fk{23msAnFtynKr!t0;J z6G?tIc6}BI-eG(J@g4=HFhjuNZ=7b*o;7BB7kTs27v(E7gaUCFORb?^8Bl!Z>=m0+ z7N=h}3@jJj(yBPuV&}JF?@ov`rpa6w_F9PQr13pdyh(u@np{j$G$%vq&b?*d%*4ec zhU(kf(q $Yg@4$dvV3`p+u#lIKm2+BZtL2yA>pt_x)nV>`m;95 zUl@qT?^_6@0y7OSu$&da0X7;qgcynFRP^9h^q3yh1(CD&=O2lO`~{V`4nChcpwn#V zMT-h^BZQ5~!ie<$=6p&*-H8Smh8IbDkOJ|4**sC=1+Xu+E3-rMK99`U{_tPD(9E^d z``tf;Mc>{>r>Mm7T5L$9N0KWe+onM6?&E#gpN--DV1D^gwrS&VI3>z?BqYjlL+5UH zqj(Raa=|Aa+$828!c`zCn{&lA^>XWmBvjm{OFF7gdMD2%_wo(afGAw7@}|EAHdaXh z8~@Wi0fZ4Ua$%|@kkiV!wUkyAzWR@1Jd6H%iRSl$X4z*Vxt_4MB-5>9ZF$19CTG*2 zDQHRd8)?G~`sB4T1KvI+&7;4SzbMrmzGkV$* dO>i@dncIvCo=*RPN_j2z4^^`=<4$A zlweZ3@yDEMUc|55a+e(`0}ou_T;v1LtmT`|r5cp`%4@wRs4i=}Fxx-BAoo>)D@mC3 zX;znL!REekx|Z*yo{axgwj~y`fvQv$9ck$g0g#R;_92GxwiCDUgmWl{U*Luk#d+`U z>pPkgfj=koGh0VcWkPkFs|U^)9eezkJx^!V6M>2*UFr|G%n<6H(f~QhL01L*z tgbdcxAlh(hO<&&;%&{P+BashPpNGk zp7X@PH?)j{&*y)!5X)b)j4h+a*ov?e@^vff{}gcKko@we!jg&5 u?fAyh z=#ZzpkgZ7M9zNqUanF(8#pjjDw%yOcMuXg6zg!E DA0`ZS4o>WJ4WE~vl0rtj^9yAx|p-6Wzjuub`4{WXT`^bRFTfCa6o1#OBg$OagD zSw>?Loa7Uh>`Wavw&A{Mx|EdKw({o=e>AY+-kIfS+ok44rK}D*N{g;3Yj9}osLbp| z*t*n04@p2PmZVkX9=tI*wr-U8LiOw84Q@v8hw~Dd33`ln71MrKsN#j30>6$0i=+Mk zuja{%We{B(?At=^?fSjF_$mxjc0|gb?jcge;zsNMCm3P2#loNX`9kM=!#(ajb zK|!TM!1qrp6;5a$ol<{EUK~B2s=n@U{e1mwt&Bpmsr~+_o)r O z^ xR#t)OLHhzimY8f(w4rkHmQbA&BD6;P)l CBJs`@s1}oSgbC&L3&t^G@-k#4kD(Xvaay^O@#o z-wkkxzn+`1i&l&vKNwGszZ ?3Vt-`NGz})@OTD|^oZov>Ix;$P9G+|~{?cK=Y{y^jZ~Lr1 zf$K-?!)8+6smK*(Xm!u2CjAz!3^U~Av|}xdM0qEn{?NoYKkYjYO;?y)MpH=@acH1p zrt4sd#pIKrTRqd1i81epa`kS`Grnui`(6o9-TD5XgBocy=hRCv-lBoBfgRdw3@w)a zy7vUs;`kSX_~}ZSA|n`$j?%M}^`Vc0HobR$ZB7b4hlqFQT2OcEX*x;gyl-4GqL$aa zHF2Po=-scmmeR~#7loNL$`q MFYQ!WeflJ! 9}aWwAvnl-@nn-(HFE zJky^fz{f~eS){Cn_4B4~{)(P(YTblb(z%PQl+fw-YF=9qf6RP-?{6B-SrSfym3*6m zx{B;wY40u!OUw7E=Oj`Rxq}t25`#-QQ}e5|P)mY^B>Sq`MjN!;6{OUP5#28mtycEL z)gL4DusniV6wXAAe>9$PD5;ZR^XcaKe_4)Mbs>E!vY|q#*xUOZo_(^Ice!ty>^8Mw z@1@tBtiE2a^UMT8QFuyD LtF&}llajq9p3asw5xO>88c)!|e zFdN~3ZW+#-pkk_w$w^}JT|ilPu^1szxuO?Yo7p8#Ks`h85I7^T5qL;Ys0R3)b9|T` zbj4;pih}FdH7c@BfwSOEyMz&9eA=?_nN<1B`i294lmm|AEh1Rcr`o1$(De0OZ{A=N z4;A*xW;<=Ip7#CI WhEO=*J0ak6l5tK6#4a FbdnM85=7(q3K<{ja zwxmR@nu#EXjcZ-(p|=rrH^1+1`b(F^-SfO-7_`^{MAO{+!q)3e7i(zaQB{f1r+|0h zP`a)hG5gR|C%RAm#uDxL7W-ZuyV|OONroJYDiuH|BEUt+<0&4wh8+x?KWg5f8<>^n z(HPfcYm~kxPx}4XsD-Vy1K=sy9h6Wvzx$)rd0?`qYG-xww(9xOi=syh8&x@C2TOMQ z#5_m?HSGRfm?a%v(MJDDrgq5z{9KhLG=z&PhX*=T;(zW17jrz+ulr={2$N~>&;c;w zi5CMvB?a>zWboKMI8+lU(`B4AB00Oxa8j @o|I)Tvc+HaPv}-s-xN zHv)HZ$D?Toqc2cDNw`pKDAAzNtw*vPvmhf}bv%OR7q9-)?xaVqOxL{5haXnrW0j$Z z Mp8abSgGGF~zVp17wW&~ks%3RD_&?s!78Y(yi)S`VQMp1}M`R;8zC|A!i4#Ti@ z>!HzRWNFRnvr_(3T&QZudpYU7)z&y8)}38xsaU4HMf!t_3_pt3zG}PD^9js=fjKs@ zCet4uF#MFsII~p7<~TzmCQ=xJFi7q$<25tiE+zmybN@arCE2yb6}E{2jEYPG2UFEp z0mHoU#Z+oms{u+kULaoQn0_+y;AhWpVv6Z&>rTztB5tCY)2-$ctJ4T7?7r=L@a=`9 z@GFk(7Bc+?P@2bKJKrsQv>kT-PToC|haEAOlRpWt3>Jz!y?NhI__jH sHrV9^%MoUphiH7THr1*Z{zvX%9 Pw0#*}>-jU5Jxpyq|@!ro75)+mPhL5!9p91;vg|LX0{n?HBZ z6R8_oQNv&d*oaUBpP%8E^9pKAS&t1Kg4k@)?TDfb)+{zZ<*`hg2@h&B{93WS? r@Ua_{Tam6uaR5Cbearf~F0?iXHb@a{&7H&}N#i*o%KFYp_uWuXitF@JvL0!`HEf zummSa94_4}s>z}iZ8+b-Uq7JSWJJr982P4*Qd6vT$(7&r7@4j&cj$Yx*GvB}VQB zOErPl(&)CHoV3F-@l?xYi2` zQ5ZIj#KqPz0S>U9b~|E^AC@hTb<_GM(Mh^!<{Yb?6;=5w{2WXzCPScF;6s0kL&siw zMqU}Br%IT9Y)-X_J{gcPV{4@n&%w9*d@EQWUW1aSl+QB?%PIe(bZ6_K;h|d&SKAZ< z#gBLHr8IiS{=A#;D~Iq+ud+i-KsxA!jL99!l}jQsb62|qPG&J!dsBE?W#0&^kLg(f zqbEaGI7ld}M~No(!@=;%eCS(WY?-=`076xdgUFysw(ibb*k`|Io+R|1ai3)2I?2j5 ztTsg;ugQtP_k%`-CB{ti;c0D+qD8BdS@}g`##ABu!1Kgu$%atr$P?zE;uNRf_{MF~ z90bXD`?iiGWMOul{M?8Yn=%9xc|QB`^_U&Hfi@u05Q=kKyp+`4K6*Z=ED_vSOZQ`{ zPQ%oRK=B(7OiZx0>-RNRl|??9EwA)&dv(S-O+zUgrmXB>X^6cY$wTbi-L0!9u98C& z$x59jef}yjRoa^gT^7Ef@|6k=F(32!_CF*!@3$9CG~a76FW>^xQYEEVqcZIm;M`{A zoxBMe_2{F6?oPL)vK6?Qh8&rL?pa2r?w97@th3dw_DeXN5&(g%0p@q`yr}>${&>qX z4Qmdzns%m`&)0^N|K;lk>vwnQEWS7zo}+a~mMs|~J+@Rfm5sl+D4a3?pkz1v5);$Z zL 07qm=O<>R=$86|Gw5sx*i@3cy8%-uPpIw%I{>b9) zv`(q#>K%3XkB@@|ae`ZcHj4_5ikzk9Rnvkd!78Pu#Pylc+zrtmTr<&>09fCw&W{6& zk2g0w=~GWswmU Qm-f?e(*8#T$YKNwc4n2+?Pji|4ez nY|W(TA_PB7r40(XOIPk@w+F>7np zW_lW`aS2ww?8EIW$*M1HwHs0a)EEZ~dz0!%x(l^jKd z+{h6qZsp&qtkE3jR!BGDPaZ;6@C}9ggH&M@)W)ToSW!f!xQun9gXH)|t(_i<1sKSa zoF@Sw#wZ$X(m7=c&;|>b&O)e(rDEr0mP0J&N?gy;9YF_+a53F!L^bW94FQ+76%V;E z