From 971c2e0e8a203ab61df5d128bffceddd0c502581 Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 16 Aug 2021 22:17:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.gitignore | 8 + .idea/codeStyles/Project.xml | 7 + .idea/codeStyles/codeStyleConfig.xml | 5 + .idea/compiler.xml | 13 + .idea/dataSources.xml | 14 + .../bef36bc3-d0c8-41db-903b-eb43602f7eaa.xml | 946 ++++++++++++++++++ .../schema/information_schema.FNRwLQ.meta | 2 + .idea/encodings.xml | 6 + .idea/jarRepositories.xml | 20 + .idea/misc.xml | 14 + connect1.iml | 2 + pom.xml | 41 + .../java/Interface/addVersionInterface.java | 6 + src/main/java/Interface/refreshInterFace.java | 7 + src/main/java/Service/add.java | 12 + src/main/java/Service/refresh.java | 42 + src/main/java/dao/dataDao.java | 51 + src/main/java/util/APKVersionCodeUtils.java | 28 + src/main/java/util/MysqlDriver.java | 46 + .../Interface/addVersionInterface.class | Bin 0 -> 205 bytes .../classes/Interface/refreshInterFace.class | Bin 0 -> 199 bytes target/classes/Service/add.class | Bin 0 -> 889 bytes target/classes/Service/refresh.class | Bin 0 -> 1776 bytes target/classes/dao/dataDao.class | Bin 0 -> 2160 bytes target/classes/util/APKVersionCodeUtils.class | Bin 0 -> 1173 bytes target/classes/util/MysqlDriver.class | Bin 0 -> 1715 bytes 26 files changed, 1270 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/codeStyles/Project.xml create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 .idea/compiler.xml create mode 100644 .idea/dataSources.xml create mode 100644 .idea/dataSources/bef36bc3-d0c8-41db-903b-eb43602f7eaa.xml create mode 100644 .idea/dataSources/bef36bc3-d0c8-41db-903b-eb43602f7eaa/storage_v2/_src_/schema/information_schema.FNRwLQ.meta create mode 100644 .idea/encodings.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 connect1.iml create mode 100644 pom.xml create mode 100644 src/main/java/Interface/addVersionInterface.java create mode 100644 src/main/java/Interface/refreshInterFace.java create mode 100644 src/main/java/Service/add.java create mode 100644 src/main/java/Service/refresh.java create mode 100644 src/main/java/dao/dataDao.java create mode 100644 src/main/java/util/APKVersionCodeUtils.java create mode 100644 src/main/java/util/MysqlDriver.java create mode 100644 target/classes/Interface/addVersionInterface.class create mode 100644 target/classes/Interface/refreshInterFace.class create mode 100644 target/classes/Service/add.class create mode 100644 target/classes/Service/refresh.class create mode 100644 target/classes/dao/dataDao.class create mode 100644 target/classes/util/APKVersionCodeUtils.class create mode 100644 target/classes/util/MysqlDriver.class diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..5161fd6 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/../../../:\connect1\.idea/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..919ce1f --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..a55e7a1 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..50bab57 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml new file mode 100644 index 0000000..22d6c08 --- /dev/null +++ b/.idea/dataSources.xml @@ -0,0 +1,14 @@ + + + + + mysql.8 + true + com.mysql.cj.jdbc.Driver + jdbc:mysql://localhost:3306 + + + + + + \ No newline at end of file diff --git a/.idea/dataSources/bef36bc3-d0c8-41db-903b-eb43602f7eaa.xml b/.idea/dataSources/bef36bc3-d0c8-41db-903b-eb43602f7eaa.xml new file mode 100644 index 0000000..534ace8 --- /dev/null +++ b/.idea/dataSources/bef36bc3-d0c8-41db-903b-eb43602f7eaa.xml @@ -0,0 +1,946 @@ + + + + + 8.0.23 + InnoDB + InnoDB + lower/lower + + + 1 + utf8_bin + + + utf8_general_ci + + + utf8_general_ci + + + utf8mb4_0900_ai_ci + + + utf8mb4_0900_ai_ci + + + utf8mb4_0900_ai_ci + + + utf8mb4_0900_ai_ci + + + armscii8 + + + armscii8 + 1 + + + ascii + + + ascii + 1 + + + big5 + + + big5 + 1 + + + binary + 1 + + + cp1250 + + + cp1250 + + + cp1250 + + + cp1250 + 1 + + + cp1250 + + + cp1251 + + + cp1251 + + + cp1251 + 1 + + + cp1251 + + + cp1251 + + + cp1256 + + + cp1256 + 1 + + + cp1257 + + + cp1257 + 1 + + + cp1257 + + + cp850 + + + cp850 + 1 + + + cp852 + + + cp852 + 1 + + + cp866 + + + cp866 + 1 + + + cp932 + + + cp932 + 1 + + + dec8 + + + dec8 + 1 + + + eucjpms + + + eucjpms + 1 + + + euckr + + + euckr + 1 + + + gb18030 + + + gb18030 + 1 + + + gb18030 + + + gb2312 + + + gb2312 + 1 + + + gbk + + + gbk + 1 + + + geostd8 + + + geostd8 + 1 + + + greek + + + greek + 1 + + + hebrew + + + hebrew + 1 + + + hp8 + + + hp8 + 1 + + + keybcs2 + + + keybcs2 + 1 + + + koi8r + + + koi8r + 1 + + + koi8u + + + koi8u + 1 + + + latin1 + + + latin1 + + + latin1 + + + latin1 + + + latin1 + + + latin1 + + + latin1 + + + latin1 + 1 + + + latin2 + + + latin2 + + + latin2 + + + latin2 + 1 + + + latin2 + + + latin5 + + + latin5 + 1 + + + latin7 + + + latin7 + + + latin7 + 1 + + + latin7 + + + macce + + + macce + 1 + + + macroman + + + macroman + 1 + + + sjis + + + sjis + 1 + + + swe7 + + + swe7 + 1 + + + tis620 + + + tis620 + 1 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + 1 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ucs2 + + + ujis + + + ujis + 1 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + 1 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16 + + + utf16le + + + utf16le + 1 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + 1 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf32 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + 1 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8 + + + utf8mb4 + 1 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + utf8mb4 + + + localhost + SELECT +SYSTEM_USER + + + + localhost + SHUTDOWN,SUPER +BACKUP_ADMIN,CLONE_ADMIN,CONNECTION_ADMIN,PERSIST_RO_VARIABLES_ADMIN,SESSION_VARIABLES_ADMIN,SYSTEM_USER,SYSTEM_VARIABLES_ADMIN +SELECT|performance_schema:null +SELECT|mysql.user:null + + + + localhost + SYSTEM_USER +TRIGGER|sys:null +SELECT|sys.sys_config:null + + + + localhost + SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,RELOAD,SHUTDOWN,PROCESS,FILE,REFERENCES,INDEX,ALTER,SHOW DATABASES,SUPER,CREATE TEMPORARY TABLES,LOCK TABLES,EXECUTE,REPLICATION SLAVE,REPLICATION CLIENT,CREATE VIEW,SHOW VIEW,CREATE ROUTINE,ALTER ROUTINE,CREATE USER,EVENT,TRIGGER,CREATE TABLESPACE,CREATE ROLE,DROP ROLE! + + + + 版本号 + utf8_general_ci +
+ + 1 + int|0s + 1 + null + + + 2 + varchar(20)|0s + 1 + + + 3 + varchar(45)|0s + 1 + + + 4 + varchar(45)|0s + 1 + + + 1 + id + 1 + +
+
\ No newline at end of file diff --git a/.idea/dataSources/bef36bc3-d0c8-41db-903b-eb43602f7eaa/storage_v2/_src_/schema/information_schema.FNRwLQ.meta b/.idea/dataSources/bef36bc3-d0c8-41db-903b-eb43602f7eaa/storage_v2/_src_/schema/information_schema.FNRwLQ.meta new file mode 100644 index 0000000..1ff3db2 --- /dev/null +++ b/.idea/dataSources/bef36bc3-d0c8-41db-903b-eb43602f7eaa/storage_v2/_src_/schema/information_schema.FNRwLQ.meta @@ -0,0 +1,2 @@ +#n:information_schema +! [null, 0, null, null, -2147483648, -2147483648] diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..4987eca --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..712ab9d --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..4b661a5 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/connect1.iml b/connect1.iml new file mode 100644 index 0000000..78b2cc5 --- /dev/null +++ b/connect1.iml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..ec16d73 --- /dev/null +++ b/pom.xml @@ -0,0 +1,41 @@ + + + 4.0.0 + + org.example + connect1 + 1.0-SNAPSHOT + + + + org.apache.maven.plugins + maven-compiler-plugin + + 7 + 7 + + + + + + + + mysql + mysql-connector-java + 8.0.20 + + + + com.google.android + android + 4.1.1.4 + provided + + + + + + + \ No newline at end of file diff --git a/src/main/java/Interface/addVersionInterface.java b/src/main/java/Interface/addVersionInterface.java new file mode 100644 index 0000000..263f8b1 --- /dev/null +++ b/src/main/java/Interface/addVersionInterface.java @@ -0,0 +1,6 @@ +package Interface; + +public interface addVersionInterface { + //更新接口 + public void fresh(String VersionId, String apkUrl, String updateDescription); +} diff --git a/src/main/java/Interface/refreshInterFace.java b/src/main/java/Interface/refreshInterFace.java new file mode 100644 index 0000000..2dc635a --- /dev/null +++ b/src/main/java/Interface/refreshInterFace.java @@ -0,0 +1,7 @@ +package Interface; + +public interface refreshInterFace { + + //判断是否需要更新,比对是否有新的版本 + public boolean new_version() throws Exception; +} diff --git a/src/main/java/Service/add.java b/src/main/java/Service/add.java new file mode 100644 index 0000000..d9c0ded --- /dev/null +++ b/src/main/java/Service/add.java @@ -0,0 +1,12 @@ +package Service; + +import Interface.addVersionInterface; +import dao.dataDao; + +public class add implements addVersionInterface { + @Override + public void fresh(String VersionId, String apkUrl, String updateDescription) { + dataDao.add(VersionId, apkUrl, updateDescription); + } + +} diff --git a/src/main/java/Service/refresh.java b/src/main/java/Service/refresh.java new file mode 100644 index 0000000..6326c53 --- /dev/null +++ b/src/main/java/Service/refresh.java @@ -0,0 +1,42 @@ +package Service; + +import Interface.refreshInterFace; +import android.app.Application; +import android.content.Context; +import dao.dataDao; +import util.APKVersionCodeUtils; + +public class refresh implements refreshInterFace { + //version1大返回一个正数,小返回一个负数,相等返回0 + public static int compareVersion(String version1, String version2) throws Exception { + if (version1 == null || version2 == null) { + throw new Exception("compareVersion error:illegal params."); + } + String[] versionArray1 = version1.split("\\."); + String[] versionArray2 = version2.split("\\."); + int idx = 0; + int minLength = Math.min(versionArray1.length, versionArray2.length); + int diff = 0; + while (idx < minLength + && (diff = versionArray1[idx].length() - versionArray2[idx].length()) == 0 + && (diff = versionArray1[idx].compareTo(versionArray2[idx])) == 0) { + ++idx; + } + //如果已经分出大小,则直接返回,如果未分出大小,则再比较位数,有子版本的为大; + diff = (diff != 0) ? diff : versionArray1.length - versionArray2.length; + return diff; + } + + Application application = new Application(); + Context ass = application.getApplicationContext(); + String oldVersion = APKVersionCodeUtils.getVerName(ass); + String newVersion = dataDao.getNewVersion(); + + @Override + public boolean new_version() throws Exception { + if (compareVersion(oldVersion, newVersion) < 0){ + return true; + } + return false; + } +} diff --git a/src/main/java/dao/dataDao.java b/src/main/java/dao/dataDao.java new file mode 100644 index 0000000..60c9eb9 --- /dev/null +++ b/src/main/java/dao/dataDao.java @@ -0,0 +1,51 @@ +package dao; + +import util.MysqlDriver; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; + +public class dataDao { + public static void add(String VersionId, String apkUrl, String updateDescription) { + Connection connection = MysqlDriver.getConnection(); + String sql = "INSERT INTO `fresh` (`VersionId`,`apkUrl`,`updateDescription` ) VALUES(?,?,?)"; + PreparedStatement preparedStatement = null; + try { + preparedStatement = connection.prepareStatement(sql); + preparedStatement.setString(1, VersionId); + preparedStatement.setString(2, apkUrl); + preparedStatement.setString(3, updateDescription); + preparedStatement.execute(); + } catch (SQLException e) { + e.printStackTrace(); + } finally { + MysqlDriver.close(preparedStatement); + MysqlDriver.close(connection); + } + } + public static String getNewVersion(){ + Connection connection = MysqlDriver.getConnection(); + String sql = "SELECT VersionId FROM fresh ORDER BY id DESC LIMIT 1"; + PreparedStatement preparedStatement = null; + ResultSet resultSet = null; + String version = null; + try { + preparedStatement = connection.prepareStatement(sql); + resultSet = preparedStatement.executeQuery(); + + if (resultSet.next()) { + version = resultSet.getString("VersionId"); + } + } catch (SQLException e) { + e.printStackTrace(); + } finally { + MysqlDriver.close(resultSet); + MysqlDriver.close(preparedStatement); + MysqlDriver.close(connection); + } + return version; + } +} + diff --git a/src/main/java/util/APKVersionCodeUtils.java b/src/main/java/util/APKVersionCodeUtils.java new file mode 100644 index 0000000..54515ff --- /dev/null +++ b/src/main/java/util/APKVersionCodeUtils.java @@ -0,0 +1,28 @@ +package util; + +import android.content.Context; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; + + +public class APKVersionCodeUtils { + + /** + * 获取版本号名称 + * + * @param context 上下文 + * @return + */ + public static String getVerName(Context context) { + String verName = ""; + try { + verName = context.getPackageManager(). + getPackageInfo(context.getPackageName(), 0).versionName; + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + } + return verName; + } + +} + diff --git a/src/main/java/util/MysqlDriver.java b/src/main/java/util/MysqlDriver.java new file mode 100644 index 0000000..0c4476c --- /dev/null +++ b/src/main/java/util/MysqlDriver.java @@ -0,0 +1,46 @@ +package util; + +import java.sql.*; + +public class MysqlDriver { + public static Connection getConnection() { + Connection connection = null; + try { + Class.forName("com.mysql.cj.jdbc.Driver"); + connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/" + "emoji" + "?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false", "root", "root"); + } catch (ClassNotFoundException | SQLException e) { + e.printStackTrace(); + } + return connection; + } + + public static void close(Connection connection) { + if (connection != null) { + try { + connection.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + } + + public static void close(PreparedStatement preparedStatement) { + if (preparedStatement != null) { + try { + preparedStatement.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + } + + public static void close(ResultSet resultSet) { + if (resultSet != null) { + try { + resultSet.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + } +} diff --git a/target/classes/Interface/addVersionInterface.class b/target/classes/Interface/addVersionInterface.class new file mode 100644 index 0000000000000000000000000000000000000000..d4568c38fe7b0142e02bf291352b5a86eb3ae25e GIT binary patch literal 205 zcmX^0Z`VEs1_omWPId-%b_Nbc2G+Eq)Zz?A21^Z}ti-ZJ{hY+Sbp7CxqRhN>Yhpw+ z!x$O3g7Zs@l2hF>b5a=@Bob3n!cvQhGxPI2^GZ^S(h`$X^*}~5GRVRO^sy*nWDr2O lz&|M~HMxY1k%5tc3Fu%321XV}24)5p5Q~8oNHQ_70RWyKIjaBw literal 0 HcmV?d00001 diff --git a/target/classes/Interface/refreshInterFace.class b/target/classes/Interface/refreshInterFace.class new file mode 100644 index 0000000000000000000000000000000000000000..db9c33cfaa3dc33b48b55a623ce7a8fa1a5d5c06 GIT binary patch literal 199 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 literal 0 HcmV?d00001 diff --git a/target/classes/util/APKVersionCodeUtils.class b/target/classes/util/APKVersionCodeUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..f0977297f2b3f8d0d0b2b4be47340ed1d87a664c GIT binary patch literal 1173 zcma)6YflqF6g|@|OuH>eKyJps7 zy;}AT)RA&)Dyq6WItimHlLd2zOzKvw*W+eXd3EdubX|V6+Y8j31+p&aP3oifi|dX0=UKPsNdNCGJygDzFnb z6F*oFjgBK%sI+Kq?w|{f0DI#)cz}lvJNZ~*$-xsWOFVV3f^mW6%liH2Egd{F@FUlC zN}%st|2O*wfloDxmy4Z>aUrFP zs157_)<*O$7Fa5^Lv8$vmq{b3o7Wd>0e5jA%(%BG_trVIIvs-DMEL=xkmnE4d@>NG zyR_Zhxm?+3bj*H(_>vy?&~~QI9D4a~LK%QQ^mEOlfB||;@<&*FfQdrJn>~TWZ`L|N z$5(WEpOD*}KS6HpGlMOr40D<+81S2X1Hp_phe6sRPlr-Fj*+zJBu|UT^0Y|CEJ6P$ rR|{i&#))}@y8&c=Gc_YIAqguaZe({UX)MsX9XI@0R2hSgE5V^zZ~4I2W(w`|uAZwm|-7oQ5GD&D>n7_Zu{+-W!W zq`zzKIh5q9o@F{uP2X0}9bqawv;(DUhqhzXUIu?T_k8=g^w$Nl2QsX9t}Ct3_FRFP z;$pR7J~s^-8Hs|Hg5jrPonyKO#?}itAR}Pw7aYto52KfEZ6dy<)#`%*=m#<`+HV7 zo{5G#8QjIM0=AN_MK)`O;i$nLdO^6hvU26RA)8*q-fRc*iECS2hK~1gLECkZ$xOeTQeC4^4!b*Xz^?G&VndzwRr+m)~HB>T~!99V6Xa%A% zR~$14cD!)gYrFg1-g6bYThcodjx>WUWnY)sfRurvEEthq$aNIbe9+RzGk}Sf%FAxCj^Lx z-5c__q~E(U-eL}6wEw#t5L2A(qL1w#-_)+MyL>p0F@8eSZwPE2a=hmGWbiJOwDb?e zJ01ow$?I?|#3`OLo%0l?`82{2pQc1Pzs4Z#fjRLoKky!df8bam-( zjFjHeVu03D&^q@ty%ggdC5WUW{A%g6$u3}HqXBsJ-p+xXJiytsY`C0xa zFz}fULSrOe=2OgVfrZAowIX|9vh)GD(!bCJIysHLqbfyUme@FzSr!Z?kRnuPfhv(P zg7X9)r7;$z@gsd1v?mRgRnu@GreEws&wQUg$N1++KTrBR=?kP^=tIARLZ=B|(J%L* hXTMJ`kX|HxiS$L%OQbLNp%-ZpkDyBzbWppq^aVF~cGmy^ literal 0 HcmV?d00001