diff --git a/mpres/.gitignore b/mpres/.gitignore
new file mode 100644
index 00000000..42afabfd
--- /dev/null
+++ b/mpres/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/mpres/build.gradle b/mpres/build.gradle
new file mode 100644
index 00000000..44f2b453
--- /dev/null
+++ b/mpres/build.gradle
@@ -0,0 +1,58 @@
+plugins {
+ id 'com.android.application'
+}
+
+
+def AppMajorVersion = 1
+def AppMinorVersion = 0
+def AppBuildNumber = 0
+
+def AppVersionName = AppMajorVersion + "." + AppMinorVersion + "." + AppBuildNumber
+def AppVersionCode = AppMajorVersion * 100000 + AppMinorVersion * 1000 + AppBuildNumber
+
+android {
+ signingConfigs {
+ debug {
+ storeFile file('../sign.jks')
+ storePassword 'XyMpApp'
+ keyAlias 'xymp'
+ keyPassword 'XyMpApp'
+ }
+ }
+
+ namespace 'com.xypower.mpres'
+ compileSdk 33
+
+ defaultConfig {
+ applicationId "com.xypower.mpres"
+ minSdk 28
+ targetSdk 28
+ versionCode AppVersionCode
+ versionName AppVersionName
+
+ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+ }
+ }
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+}
+
+dependencies {
+
+ implementation 'androidx.appcompat:appcompat:1.6.1'
+ implementation 'com.google.android.material:material:1.10.0'
+ implementation 'androidx.activity:activity:1.8.0'
+ implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
+ testImplementation 'junit:junit:4.13.2'
+ androidTestImplementation 'androidx.test.ext:junit:1.1.5'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
+ implementation project(path: ':common')
+}
\ No newline at end of file
diff --git a/mpres/proguard-rules.pro b/mpres/proguard-rules.pro
new file mode 100644
index 00000000..481bb434
--- /dev/null
+++ b/mpres/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/mpres/src/androidTest/java/com/xypower/mpres/ExampleInstrumentedTest.java b/mpres/src/androidTest/java/com/xypower/mpres/ExampleInstrumentedTest.java
new file mode 100644
index 00000000..796029a9
--- /dev/null
+++ b/mpres/src/androidTest/java/com/xypower/mpres/ExampleInstrumentedTest.java
@@ -0,0 +1,26 @@
+package com.xypower.mpres;
+
+import android.content.Context;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * @see Testing documentation
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+ @Test
+ public void useAppContext() {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+ assertEquals("com.xypower.mpres", appContext.getPackageName());
+ }
+}
\ No newline at end of file
diff --git a/mpres/src/main/AndroidManifest.xml b/mpres/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..2c6246be
--- /dev/null
+++ b/mpres/src/main/AndroidManifest.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mpres/src/main/assets/mpapp/data/App.json b/mpres/src/main/assets/mpapp/data/App.json
new file mode 100644
index 00000000..3863a0d3
--- /dev/null
+++ b/mpres/src/main/assets/mpapp/data/App.json
@@ -0,0 +1 @@
+{"bsManufacturer":"\u4e0a\u6d77\u6b23\u5f71\u7535\u529b\u79d1\u6280\u80a1\u4efd\u6709\u9650\u516c\u53f8","channels":4,"encryption":0,"equipName":"\u56fe\u50cf\u5728\u7ebf\u76d1\u6d4b","heartbeat":10,"imgQuality":80,"model":"MSRDT-1-WP","network":0,"networkProtocol":0,"outputDbgInfo":0,"packetBase":1,"packetSize":32768,"port":6891,"postDataPaused":0,"productionDate":1744675200,"protocol":65290,"quality":80,"reportFault":0,"server":"61.169.135.146","timeForKeepingLogs":1296000,"timeForKeepingPhotos":1296000,"upgradePacketBase":1,"workStatusTimes":3}
\ No newline at end of file
diff --git a/mpres/src/main/assets/mpapp/data/bc.json b/mpres/src/main/assets/mpapp/data/bc.json
new file mode 100644
index 00000000..f32667c8
--- /dev/null
+++ b/mpres/src/main/assets/mpapp/data/bc.json
@@ -0,0 +1,100 @@
+[{"v":5312, "c":1},
+{"v":5580, "c":2},
+{"v":5749, "c":3},
+{"v":5870, "c":4},
+{"v":5944, "c":5},
+{"v":5985, "c":6},
+{"v":6019, "c":7},
+{"v":6048, "c":8},
+{"v":6065, "c":9},
+{"v":6076, "c":10},
+{"v":6086, "c":11},
+{"v":6096, "c":12},
+{"v":6105, "c":13},
+{"v":6113, "c":14},
+{"v":6121, "c":15},
+{"v":6131, "c":16},
+{"v":6141, "c":17},
+{"v":6151, "c":18},
+{"v":6160, "c":19},
+{"v":6168, "c":20},
+{"v":6176, "c":21},
+{"v":6183, "c":22},
+{"v":6191, "c":23},
+{"v":6197, "c":24},
+{"v":6204, "c":25},
+{"v":6209, "c":26},
+{"v":6214, "c":27},
+{"v":6219, "c":28},
+{"v":6224, "c":29},
+{"v":6228, "c":30},
+{"v":6232, "c":31},
+{"v":6236, "c":32},
+{"v":6240, "c":33},
+{"v":6245, "c":34},
+{"v":6249, "c":35},
+{"v":6252, "c":36},
+{"v":6255, "c":37},
+{"v":6258, "c":38},
+{"v":6262, "c":39},
+{"v":6264, "c":40},
+{"v":6267, "c":41},
+{"v":6269, "c":42},
+{"v":6272, "c":43},
+{"v":6273, "c":44},
+{"v":6275, "c":45},
+{"v":6278, "c":46},
+{"v":6279, "c":47},
+{"v":6281, "c":48},
+{"v":6283, "c":49},
+{"v":6285, "c":50},
+{"v":6287, "c":51},
+{"v":6289, "c":52},
+{"v":6291, "c":53},
+{"v":6293, "c":54},
+{"v":6295, "c":55},
+{"v":6298, "c":56},
+{"v":6300, "c":57},
+{"v":6303, "c":58},
+{"v":6305, "c":59},
+{"v":6308, "c":60},
+{"v":6310, "c":61},
+{"v":6312, "c":62},
+{"v":6315, "c":63},
+{"v":6317, "c":64},
+{"v":6320, "c":65},
+{"v":6323, "c":66},
+{"v":6325, "c":67},
+{"v":6328, "c":68},
+{"v":6331, "c":69},
+{"v":6335, "c":70},
+{"v":6338, "c":71},
+{"v":6341, "c":72},
+{"v":6343, "c":73},
+{"v":6345, "c":74},
+{"v":6347, "c":75},
+{"v":6349, "c":76},
+{"v":6351, "c":77},
+{"v":6352, "c":78},
+{"v":6354, "c":79},
+{"v":6355, "c":80},
+{"v":6357, "c":81},
+{"v":6358, "c":82},
+{"v":6359, "c":83},
+{"v":6360, "c":84},
+{"v":6361, "c":85},
+{"v":6362, "c":86},
+{"v":6363, "c":87},
+{"v":6364, "c":88},
+{"v":6366, "c":89},
+{"v":6367, "c":90},
+{"v":6368, "c":91},
+{"v":6367, "c":92},
+{"v":6367, "c":93},
+{"v":6368, "c":94},
+{"v":6368, "c":95},
+{"v":6369, "c":96},
+{"v":6369, "c":97},
+{"v":6371, "c":98},
+{"v":6375, "c":99},
+{"v":6390, "c":100}]
\ No newline at end of file
diff --git a/mpres/src/main/assets/mpapp/data/channels/1.json b/mpres/src/main/assets/mpapp/data/channels/1.json
new file mode 100644
index 00000000..00fdd6e9
--- /dev/null
+++ b/mpres/src/main/assets/mpapp/data/channels/1.json
@@ -0,0 +1 @@
+{"autoExposure":1,"autoFocus":1,"awbMode":1,"cameraId":0,"cameraType":0,"compensation":0,"customHdr":0,"exposureTime":0,"hdrStep":0,"ldrEnabled":0,"orientation":0,"osd":{"leftTop":"%%DATETIME%%\r\n\u4fe1\u53f7:%%SL%% \u7535\u6c60\u7535\u538b:%%BV%%V \u5145\u7535\u7535\u538b:%%CV%%"},"recognization":0,"requestTemplate":2,"resolutionCX":5376,"resolutionCY":3024,"sceneMode":0,"sensitivity":0,"usbCamera":0,"usingRawFormat":0,"usingSysCamera":0,"vendor":0,"videoCX":1280,"videoCY":720,"videoDuration":5,"wait3ALocked":0,"zoom":0,"zoomRatio":1}
\ No newline at end of file
diff --git a/mpres/src/main/assets/mpapp/data/channels/2.json b/mpres/src/main/assets/mpapp/data/channels/2.json
new file mode 100644
index 00000000..2b5fac08
--- /dev/null
+++ b/mpres/src/main/assets/mpapp/data/channels/2.json
@@ -0,0 +1 @@
+{"autoExposure":1,"autoFocus":1,"awbMode":1,"burstCaptures":1,"cameraId":1,"cameraType":0,"compensation":2,"customHdr":0,"exposureTime":0,"hdrStep":0,"ldrEnabled":0,"orientation":0,"osd":{"leftTop":"%%DATETIME%% \r\n\u4fe1\u53f7:%%SL%% \u7535\u6c60\u7535\u538b:%%BV%%V \u5145\u7535\u7535\u538b:%%CV%%"},"recognization":0,"requestTemplate":2,"resolutionCX":1920,"resolutionCY":1080,"sceneMode":0,"sensitivity":0,"usbCamera":0,"usingRawFormat":2,"usingSysCamera":0,"vendor":0,"videoCX":1280,"videoCY":720,"videoDuration":5,"wait3ALocked":0,"zoom":0,"zoomRatio":1}
\ No newline at end of file
diff --git a/mpres/src/main/assets/mpapp/data/channels/3.json b/mpres/src/main/assets/mpapp/data/channels/3.json
new file mode 100644
index 00000000..7dc3e153
--- /dev/null
+++ b/mpres/src/main/assets/mpapp/data/channels/3.json
@@ -0,0 +1 @@
+{"autoExposure":1,"autoFocus":1,"awbMode":1,"cameraId":2,"cameraType":0,"compensation":0,"customHdr":0,"hdrStep":0,"ldrEnabled":0,"orientation":4,"osd":{"leftTop":"%%DATETIME%%\r\n\u4fe1\u53f7:%%SL%% \u7535\u6c60\u7535\u538b:%%BV%%V \u5145\u7535\u7535\u538b:%%CV%%"},"recognization":0,"requestTemplate":2,"resolutionCX":1920,"resolutionCY":1080,"sceneMode":0,"usbCamera":0,"usingRawFormat":2,"usingSysCamera":0,"vendor":0,"videoCX":1280,"videoCY":720,"videoDuration":5,"wait3ALocked":0}
\ No newline at end of file
diff --git a/mpres/src/main/assets/mpapp/data/channels/4.json b/mpres/src/main/assets/mpapp/data/channels/4.json
new file mode 100644
index 00000000..9fe1550f
--- /dev/null
+++ b/mpres/src/main/assets/mpapp/data/channels/4.json
@@ -0,0 +1 @@
+{"autoExposure":1,"autoFocus":1,"awbMode":1,"cameraId":1,"cameraType":2,"closeDelayTime":5,"compensation":0,"customHdr":0,"hdrStep":0,"ip":"192.168.68.101","ldrEnabled":0,"orientation":0,"osd":{"leftTop":"%%DATETIME%%\r\n\u4fe1\u53f7:%%SL%% \u7535\u6c60\u7535\u538b:%%BV%%V \u5145\u7535\u7535\u538b:%%CV%%"},"password":"SHxy2024","quality":80,"recognization":0,"requestTemplate":3,"sceneMode":0,"selfTestingTime":60,"userName":"admin","usingRawFormat":0,"vendor":5,"wait3ALocked":0}
\ No newline at end of file
diff --git a/mpres/src/main/assets/mpapp/data/imgparams/0 b/mpres/src/main/assets/mpapp/data/imgparams/0
new file mode 100644
index 00000000..33c855be
--- /dev/null
+++ b/mpres/src/main/assets/mpapp/data/imgparams/0
@@ -0,0 +1 @@
+222
\ No newline at end of file
diff --git a/mpres/src/main/assets/mpapp/data/network.json b/mpres/src/main/assets/mpapp/data/network.json
new file mode 100644
index 00000000..8ffc9767
--- /dev/null
+++ b/mpres/src/main/assets/mpapp/data/network.json
@@ -0,0 +1 @@
+{"gateway":"192.168.68.1","iface":"eth0","ip":"192.168.68.91","netmask":"255.255.255.0"}
\ No newline at end of file
diff --git a/mpres/src/main/assets/mpapp/data/recog.json b/mpres/src/main/assets/mpapp/data/recog.json
new file mode 100644
index 00000000..1f0e4bc8
--- /dev/null
+++ b/mpres/src/main/assets/mpapp/data/recog.json
@@ -0,0 +1 @@
+{"blobName16":"354","blobName32":"366","blobName8":"output","borderColor":16776960,"enabled":1,"items":[{"enabled":1,"iid":0,"name":"\u6316\u6398\u673a","prob":0.5,"subType":5,"type":1},{"enabled":1,"iid":1,"name":"\u540a\u5854","prob":0.5,"subType":2,"type":1},{"enabled":1,"iid":2,"name":"\u540a\u8f66","prob":0.5,"subType":1,"type":1},{"enabled":1,"iid":3,"name":"\u6c34\u6ce5\u6cf5\u8f66","prob":0.5,"subType":4,"type":1},{"enabled":1,"iid":4,"name":"\u5c71\u706b","prob":0.5,"subType":40,"type":4},{"enabled":1,"iid":5,"name":"\u70df\u96fe","prob":0.5,"subType":41,"type":4},{"enabled":1,"iid":6,"name":"\u63a8\u571f\u673a","prob":0.5,"subType":3,"type":1},{"enabled":1,"iid":7,"name":"\u7ffb\u6597\u8f66","prob":0.5,"subType":10,"type":1},{"enabled":1,"iid":8,"name":"\u5bfc\u7ebf\u5f02\u7269","prob":0.5,"subType":1,"type":3},{"enabled":1,"iid":9,"name":"\u9632\u5c18\u7f51","prob":1.0099999904632568,"subType":2,"type":3},{"enabled":1,"iid":10,"name":"\u538b\u8def\u673a","prob":1.0099999904632568,"subType":2,"type":3},{"enabled":1,"iid":11,"name":"\u6405\u62cc\u8f66","prob":1.0099999904632568,"subType":2,"type":3},{"enabled":1,"iid":12,"name":"\u6869\u673a","prob":1.0099999904632568,"subType":2,"type":3},{"enabled":1,"iid":13,"name":"\u56f4\u6321","prob":1.0099999904632568,"subType":2,"type":3},{"enabled":1,"iid":14,"name":"\u6c34\u9a6c","prob":1.0099999904632568,"subType":2,"type":3},{"enabled":1,"iid":15,"name":"\u5b89\u5168\u5e3d","prob":1.0099999904632568,"subType":2,"type":3},{"enabled":1,"iid":16,"name":"\u4e95\u76d6\u7f3a\u5931","prob":1.0099999904632568,"subType":2,"type":3}],"minSize":10,"textColor":16776960,"thickness":4,"version":"2024-12-30"}
\ No newline at end of file
diff --git a/mpres/src/main/assets/mpapp/data/recog/rb.dat b/mpres/src/main/assets/mpapp/data/recog/rb.dat
new file mode 100644
index 00000000..b2e8a070
Binary files /dev/null and b/mpres/src/main/assets/mpapp/data/recog/rb.dat differ
diff --git a/mpres/src/main/assets/mpapp/data/recog/rp.dat b/mpres/src/main/assets/mpapp/data/recog/rp.dat
new file mode 100644
index 00000000..dbc47ac3
--- /dev/null
+++ b/mpres/src/main/assets/mpapp/data/recog/rp.dat
@@ -0,0 +1,175 @@
+7767517
+173 197
+Input images 0 1 images
+Convolution /model.0/conv/Conv 1 1 images /model.0/conv/Conv_output_0 0=32 1=6 11=6 2=1 12=1 3=2 13=2 4=2 14=2 15=2 16=2 5=1 6=3456
+Swish /model.0/act/Mul 1 1 /model.0/conv/Conv_output_0 /model.0/act/Mul_output_0
+Convolution /model.1/conv/Conv 1 1 /model.0/act/Mul_output_0 /model.1/conv/Conv_output_0 0=64 1=3 11=3 2=1 12=1 3=2 13=2 4=1 14=1 15=1 16=1 5=1 6=18432
+Swish /model.1/act/Mul 1 1 /model.1/conv/Conv_output_0 /model.1/act/Mul_output_0
+Split splitncnn_0 1 2 /model.1/act/Mul_output_0 /model.1/act/Mul_output_0_splitncnn_0 /model.1/act/Mul_output_0_splitncnn_1
+Convolution /model.2/cv1/conv/Conv 1 1 /model.1/act/Mul_output_0_splitncnn_1 /model.2/cv1/conv/Conv_output_0 0=32 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=2048
+Swish /model.2/cv1/act/Mul 1 1 /model.2/cv1/conv/Conv_output_0 /model.2/cv1/act/Mul_output_0
+Split splitncnn_1 1 2 /model.2/cv1/act/Mul_output_0 /model.2/cv1/act/Mul_output_0_splitncnn_0 /model.2/cv1/act/Mul_output_0_splitncnn_1
+Convolution /model.2/m/m.0/cv1/conv/Conv 1 1 /model.2/cv1/act/Mul_output_0_splitncnn_1 /model.2/m/m.0/cv1/conv/Conv_output_0 0=32 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=1024
+Swish /model.2/m/m.0/cv1/act/Mul 1 1 /model.2/m/m.0/cv1/conv/Conv_output_0 /model.2/m/m.0/cv1/act/Mul_output_0
+Convolution /model.2/m/m.0/cv2/conv/Conv 1 1 /model.2/m/m.0/cv1/act/Mul_output_0 /model.2/m/m.0/cv2/conv/Conv_output_0 0=32 1=3 11=3 2=1 12=1 3=1 13=1 4=1 14=1 15=1 16=1 5=1 6=9216
+Swish /model.2/m/m.0/cv2/act/Mul 1 1 /model.2/m/m.0/cv2/conv/Conv_output_0 /model.2/m/m.0/cv2/act/Mul_output_0
+BinaryOp /model.2/m/m.0/Add 2 1 /model.2/cv1/act/Mul_output_0_splitncnn_0 /model.2/m/m.0/cv2/act/Mul_output_0 /model.2/m/m.0/Add_output_0 0=0
+Convolution /model.2/cv2/conv/Conv 1 1 /model.1/act/Mul_output_0_splitncnn_0 /model.2/cv2/conv/Conv_output_0 0=32 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=2048
+Swish /model.2/cv2/act/Mul 1 1 /model.2/cv2/conv/Conv_output_0 /model.2/cv2/act/Mul_output_0
+Concat /model.2/Concat 2 1 /model.2/m/m.0/Add_output_0 /model.2/cv2/act/Mul_output_0 /model.2/Concat_output_0 0=0
+Convolution /model.2/cv3/conv/Conv 1 1 /model.2/Concat_output_0 /model.2/cv3/conv/Conv_output_0 0=64 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=4096
+Swish /model.2/cv3/act/Mul 1 1 /model.2/cv3/conv/Conv_output_0 /model.2/cv3/act/Mul_output_0
+Convolution /model.3/conv/Conv 1 1 /model.2/cv3/act/Mul_output_0 /model.3/conv/Conv_output_0 0=128 1=3 11=3 2=1 12=1 3=2 13=2 4=1 14=1 15=1 16=1 5=1 6=73728
+Swish /model.3/act/Mul 1 1 /model.3/conv/Conv_output_0 /model.3/act/Mul_output_0
+Split splitncnn_2 1 2 /model.3/act/Mul_output_0 /model.3/act/Mul_output_0_splitncnn_0 /model.3/act/Mul_output_0_splitncnn_1
+Convolution /model.4/cv1/conv/Conv 1 1 /model.3/act/Mul_output_0_splitncnn_1 /model.4/cv1/conv/Conv_output_0 0=64 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=8192
+Swish /model.4/cv1/act/Mul 1 1 /model.4/cv1/conv/Conv_output_0 /model.4/cv1/act/Mul_output_0
+Split splitncnn_3 1 2 /model.4/cv1/act/Mul_output_0 /model.4/cv1/act/Mul_output_0_splitncnn_0 /model.4/cv1/act/Mul_output_0_splitncnn_1
+Convolution /model.4/m/m.0/cv1/conv/Conv 1 1 /model.4/cv1/act/Mul_output_0_splitncnn_1 /model.4/m/m.0/cv1/conv/Conv_output_0 0=64 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=4096
+Swish /model.4/m/m.0/cv1/act/Mul 1 1 /model.4/m/m.0/cv1/conv/Conv_output_0 /model.4/m/m.0/cv1/act/Mul_output_0
+Convolution /model.4/m/m.0/cv2/conv/Conv 1 1 /model.4/m/m.0/cv1/act/Mul_output_0 /model.4/m/m.0/cv2/conv/Conv_output_0 0=64 1=3 11=3 2=1 12=1 3=1 13=1 4=1 14=1 15=1 16=1 5=1 6=36864
+Swish /model.4/m/m.0/cv2/act/Mul 1 1 /model.4/m/m.0/cv2/conv/Conv_output_0 /model.4/m/m.0/cv2/act/Mul_output_0
+BinaryOp /model.4/m/m.0/Add 2 1 /model.4/cv1/act/Mul_output_0_splitncnn_0 /model.4/m/m.0/cv2/act/Mul_output_0 /model.4/m/m.0/Add_output_0 0=0
+Split splitncnn_4 1 2 /model.4/m/m.0/Add_output_0 /model.4/m/m.0/Add_output_0_splitncnn_0 /model.4/m/m.0/Add_output_0_splitncnn_1
+Convolution /model.4/m/m.1/cv1/conv/Conv 1 1 /model.4/m/m.0/Add_output_0_splitncnn_1 /model.4/m/m.1/cv1/conv/Conv_output_0 0=64 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=4096
+Swish /model.4/m/m.1/cv1/act/Mul 1 1 /model.4/m/m.1/cv1/conv/Conv_output_0 /model.4/m/m.1/cv1/act/Mul_output_0
+Convolution /model.4/m/m.1/cv2/conv/Conv 1 1 /model.4/m/m.1/cv1/act/Mul_output_0 /model.4/m/m.1/cv2/conv/Conv_output_0 0=64 1=3 11=3 2=1 12=1 3=1 13=1 4=1 14=1 15=1 16=1 5=1 6=36864
+Swish /model.4/m/m.1/cv2/act/Mul 1 1 /model.4/m/m.1/cv2/conv/Conv_output_0 /model.4/m/m.1/cv2/act/Mul_output_0
+BinaryOp /model.4/m/m.1/Add 2 1 /model.4/m/m.0/Add_output_0_splitncnn_0 /model.4/m/m.1/cv2/act/Mul_output_0 /model.4/m/m.1/Add_output_0 0=0
+Convolution /model.4/cv2/conv/Conv 1 1 /model.3/act/Mul_output_0_splitncnn_0 /model.4/cv2/conv/Conv_output_0 0=64 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=8192
+Swish /model.4/cv2/act/Mul 1 1 /model.4/cv2/conv/Conv_output_0 /model.4/cv2/act/Mul_output_0
+Concat /model.4/Concat 2 1 /model.4/m/m.1/Add_output_0 /model.4/cv2/act/Mul_output_0 /model.4/Concat_output_0 0=0
+Convolution /model.4/cv3/conv/Conv 1 1 /model.4/Concat_output_0 /model.4/cv3/conv/Conv_output_0 0=128 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=16384
+Swish /model.4/cv3/act/Mul 1 1 /model.4/cv3/conv/Conv_output_0 /model.4/cv3/act/Mul_output_0
+Split splitncnn_5 1 2 /model.4/cv3/act/Mul_output_0 /model.4/cv3/act/Mul_output_0_splitncnn_0 /model.4/cv3/act/Mul_output_0_splitncnn_1
+Convolution /model.5/conv/Conv 1 1 /model.4/cv3/act/Mul_output_0_splitncnn_1 /model.5/conv/Conv_output_0 0=256 1=3 11=3 2=1 12=1 3=2 13=2 4=1 14=1 15=1 16=1 5=1 6=294912
+Swish /model.5/act/Mul 1 1 /model.5/conv/Conv_output_0 /model.5/act/Mul_output_0
+Split splitncnn_6 1 2 /model.5/act/Mul_output_0 /model.5/act/Mul_output_0_splitncnn_0 /model.5/act/Mul_output_0_splitncnn_1
+Convolution /model.6/cv1/conv/Conv 1 1 /model.5/act/Mul_output_0_splitncnn_1 /model.6/cv1/conv/Conv_output_0 0=128 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=32768
+Swish /model.6/cv1/act/Mul 1 1 /model.6/cv1/conv/Conv_output_0 /model.6/cv1/act/Mul_output_0
+Split splitncnn_7 1 2 /model.6/cv1/act/Mul_output_0 /model.6/cv1/act/Mul_output_0_splitncnn_0 /model.6/cv1/act/Mul_output_0_splitncnn_1
+Convolution /model.6/m/m.0/cv1/conv/Conv 1 1 /model.6/cv1/act/Mul_output_0_splitncnn_1 /model.6/m/m.0/cv1/conv/Conv_output_0 0=128 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=16384
+Swish /model.6/m/m.0/cv1/act/Mul 1 1 /model.6/m/m.0/cv1/conv/Conv_output_0 /model.6/m/m.0/cv1/act/Mul_output_0
+Convolution /model.6/m/m.0/cv2/conv/Conv 1 1 /model.6/m/m.0/cv1/act/Mul_output_0 /model.6/m/m.0/cv2/conv/Conv_output_0 0=128 1=3 11=3 2=1 12=1 3=1 13=1 4=1 14=1 15=1 16=1 5=1 6=147456
+Swish /model.6/m/m.0/cv2/act/Mul 1 1 /model.6/m/m.0/cv2/conv/Conv_output_0 /model.6/m/m.0/cv2/act/Mul_output_0
+BinaryOp /model.6/m/m.0/Add 2 1 /model.6/cv1/act/Mul_output_0_splitncnn_0 /model.6/m/m.0/cv2/act/Mul_output_0 /model.6/m/m.0/Add_output_0 0=0
+Split splitncnn_8 1 2 /model.6/m/m.0/Add_output_0 /model.6/m/m.0/Add_output_0_splitncnn_0 /model.6/m/m.0/Add_output_0_splitncnn_1
+Convolution /model.6/m/m.1/cv1/conv/Conv 1 1 /model.6/m/m.0/Add_output_0_splitncnn_1 /model.6/m/m.1/cv1/conv/Conv_output_0 0=128 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=16384
+Swish /model.6/m/m.1/cv1/act/Mul 1 1 /model.6/m/m.1/cv1/conv/Conv_output_0 /model.6/m/m.1/cv1/act/Mul_output_0
+Convolution /model.6/m/m.1/cv2/conv/Conv 1 1 /model.6/m/m.1/cv1/act/Mul_output_0 /model.6/m/m.1/cv2/conv/Conv_output_0 0=128 1=3 11=3 2=1 12=1 3=1 13=1 4=1 14=1 15=1 16=1 5=1 6=147456
+Swish /model.6/m/m.1/cv2/act/Mul 1 1 /model.6/m/m.1/cv2/conv/Conv_output_0 /model.6/m/m.1/cv2/act/Mul_output_0
+BinaryOp /model.6/m/m.1/Add 2 1 /model.6/m/m.0/Add_output_0_splitncnn_0 /model.6/m/m.1/cv2/act/Mul_output_0 /model.6/m/m.1/Add_output_0 0=0
+Split splitncnn_9 1 2 /model.6/m/m.1/Add_output_0 /model.6/m/m.1/Add_output_0_splitncnn_0 /model.6/m/m.1/Add_output_0_splitncnn_1
+Convolution /model.6/m/m.2/cv1/conv/Conv 1 1 /model.6/m/m.1/Add_output_0_splitncnn_1 /model.6/m/m.2/cv1/conv/Conv_output_0 0=128 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=16384
+Swish /model.6/m/m.2/cv1/act/Mul 1 1 /model.6/m/m.2/cv1/conv/Conv_output_0 /model.6/m/m.2/cv1/act/Mul_output_0
+Convolution /model.6/m/m.2/cv2/conv/Conv 1 1 /model.6/m/m.2/cv1/act/Mul_output_0 /model.6/m/m.2/cv2/conv/Conv_output_0 0=128 1=3 11=3 2=1 12=1 3=1 13=1 4=1 14=1 15=1 16=1 5=1 6=147456
+Swish /model.6/m/m.2/cv2/act/Mul 1 1 /model.6/m/m.2/cv2/conv/Conv_output_0 /model.6/m/m.2/cv2/act/Mul_output_0
+BinaryOp /model.6/m/m.2/Add 2 1 /model.6/m/m.1/Add_output_0_splitncnn_0 /model.6/m/m.2/cv2/act/Mul_output_0 /model.6/m/m.2/Add_output_0 0=0
+Convolution /model.6/cv2/conv/Conv 1 1 /model.5/act/Mul_output_0_splitncnn_0 /model.6/cv2/conv/Conv_output_0 0=128 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=32768
+Swish /model.6/cv2/act/Mul 1 1 /model.6/cv2/conv/Conv_output_0 /model.6/cv2/act/Mul_output_0
+Concat /model.6/Concat 2 1 /model.6/m/m.2/Add_output_0 /model.6/cv2/act/Mul_output_0 /model.6/Concat_output_0 0=0
+Convolution /model.6/cv3/conv/Conv 1 1 /model.6/Concat_output_0 /model.6/cv3/conv/Conv_output_0 0=256 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=65536
+Swish /model.6/cv3/act/Mul 1 1 /model.6/cv3/conv/Conv_output_0 /model.6/cv3/act/Mul_output_0
+Split splitncnn_10 1 2 /model.6/cv3/act/Mul_output_0 /model.6/cv3/act/Mul_output_0_splitncnn_0 /model.6/cv3/act/Mul_output_0_splitncnn_1
+Convolution /model.7/conv/Conv 1 1 /model.6/cv3/act/Mul_output_0_splitncnn_1 /model.7/conv/Conv_output_0 0=512 1=3 11=3 2=1 12=1 3=2 13=2 4=1 14=1 15=1 16=1 5=1 6=1179648
+Swish /model.7/act/Mul 1 1 /model.7/conv/Conv_output_0 /model.7/act/Mul_output_0
+Split splitncnn_11 1 2 /model.7/act/Mul_output_0 /model.7/act/Mul_output_0_splitncnn_0 /model.7/act/Mul_output_0_splitncnn_1
+Convolution /model.8/cv1/conv/Conv 1 1 /model.7/act/Mul_output_0_splitncnn_1 /model.8/cv1/conv/Conv_output_0 0=256 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=131072
+Swish /model.8/cv1/act/Mul 1 1 /model.8/cv1/conv/Conv_output_0 /model.8/cv1/act/Mul_output_0
+Split splitncnn_12 1 2 /model.8/cv1/act/Mul_output_0 /model.8/cv1/act/Mul_output_0_splitncnn_0 /model.8/cv1/act/Mul_output_0_splitncnn_1
+Convolution /model.8/m/m.0/cv1/conv/Conv 1 1 /model.8/cv1/act/Mul_output_0_splitncnn_1 /model.8/m/m.0/cv1/conv/Conv_output_0 0=256 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=65536
+Swish /model.8/m/m.0/cv1/act/Mul 1 1 /model.8/m/m.0/cv1/conv/Conv_output_0 /model.8/m/m.0/cv1/act/Mul_output_0
+Convolution /model.8/m/m.0/cv2/conv/Conv 1 1 /model.8/m/m.0/cv1/act/Mul_output_0 /model.8/m/m.0/cv2/conv/Conv_output_0 0=256 1=3 11=3 2=1 12=1 3=1 13=1 4=1 14=1 15=1 16=1 5=1 6=589824
+Swish /model.8/m/m.0/cv2/act/Mul 1 1 /model.8/m/m.0/cv2/conv/Conv_output_0 /model.8/m/m.0/cv2/act/Mul_output_0
+BinaryOp /model.8/m/m.0/Add 2 1 /model.8/cv1/act/Mul_output_0_splitncnn_0 /model.8/m/m.0/cv2/act/Mul_output_0 /model.8/m/m.0/Add_output_0 0=0
+Convolution /model.8/cv2/conv/Conv 1 1 /model.7/act/Mul_output_0_splitncnn_0 /model.8/cv2/conv/Conv_output_0 0=256 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=131072
+Swish /model.8/cv2/act/Mul 1 1 /model.8/cv2/conv/Conv_output_0 /model.8/cv2/act/Mul_output_0
+Concat /model.8/Concat 2 1 /model.8/m/m.0/Add_output_0 /model.8/cv2/act/Mul_output_0 /model.8/Concat_output_0 0=0
+Convolution /model.8/cv3/conv/Conv 1 1 /model.8/Concat_output_0 /model.8/cv3/conv/Conv_output_0 0=512 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=262144
+Swish /model.8/cv3/act/Mul 1 1 /model.8/cv3/conv/Conv_output_0 /model.8/cv3/act/Mul_output_0
+Convolution /model.9/cv1/conv/Conv 1 1 /model.8/cv3/act/Mul_output_0 /model.9/cv1/conv/Conv_output_0 0=256 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=131072
+Swish /model.9/cv1/act/Mul 1 1 /model.9/cv1/conv/Conv_output_0 /model.9/cv1/act/Mul_output_0
+Split splitncnn_13 1 2 /model.9/cv1/act/Mul_output_0 /model.9/cv1/act/Mul_output_0_splitncnn_0 /model.9/cv1/act/Mul_output_0_splitncnn_1
+Pooling /model.9/m/MaxPool 1 1 /model.9/cv1/act/Mul_output_0_splitncnn_1 /model.9/m/MaxPool_output_0 0=0 1=5 11=5 2=1 12=1 3=2 13=2 14=2 15=2 5=1
+Split splitncnn_14 1 2 /model.9/m/MaxPool_output_0 /model.9/m/MaxPool_output_0_splitncnn_0 /model.9/m/MaxPool_output_0_splitncnn_1
+Pooling /model.9/m_1/MaxPool 1 1 /model.9/m/MaxPool_output_0_splitncnn_1 /model.9/m_1/MaxPool_output_0 0=0 1=5 11=5 2=1 12=1 3=2 13=2 14=2 15=2 5=1
+Split splitncnn_15 1 2 /model.9/m_1/MaxPool_output_0 /model.9/m_1/MaxPool_output_0_splitncnn_0 /model.9/m_1/MaxPool_output_0_splitncnn_1
+Pooling /model.9/m_2/MaxPool 1 1 /model.9/m_1/MaxPool_output_0_splitncnn_1 /model.9/m_2/MaxPool_output_0 0=0 1=5 11=5 2=1 12=1 3=2 13=2 14=2 15=2 5=1
+Concat /model.9/Concat 4 1 /model.9/cv1/act/Mul_output_0_splitncnn_0 /model.9/m/MaxPool_output_0_splitncnn_0 /model.9/m_1/MaxPool_output_0_splitncnn_0 /model.9/m_2/MaxPool_output_0 /model.9/Concat_output_0 0=0
+Convolution /model.9/cv2/conv/Conv 1 1 /model.9/Concat_output_0 /model.9/cv2/conv/Conv_output_0 0=512 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=524288
+Swish /model.9/cv2/act/Mul 1 1 /model.9/cv2/conv/Conv_output_0 /model.9/cv2/act/Mul_output_0
+Convolution /model.10/conv/Conv 1 1 /model.9/cv2/act/Mul_output_0 /model.10/conv/Conv_output_0 0=256 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=131072
+Swish /model.10/act/Mul 1 1 /model.10/conv/Conv_output_0 /model.10/act/Mul_output_0
+Split splitncnn_16 1 2 /model.10/act/Mul_output_0 /model.10/act/Mul_output_0_splitncnn_0 /model.10/act/Mul_output_0_splitncnn_1
+Interp /model.11/Resize 1 1 /model.10/act/Mul_output_0_splitncnn_1 /model.11/Resize_output_0 0=1 1=2.000000e+00 2=2.000000e+00 3=0 4=0 6=0
+Concat /model.12/Concat 2 1 /model.11/Resize_output_0 /model.6/cv3/act/Mul_output_0_splitncnn_0 /model.12/Concat_output_0 0=0
+Split splitncnn_17 1 2 /model.12/Concat_output_0 /model.12/Concat_output_0_splitncnn_0 /model.12/Concat_output_0_splitncnn_1
+Convolution /model.13/cv1/conv/Conv 1 1 /model.12/Concat_output_0_splitncnn_1 /model.13/cv1/conv/Conv_output_0 0=128 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=65536
+Swish /model.13/cv1/act/Mul 1 1 /model.13/cv1/conv/Conv_output_0 /model.13/cv1/act/Mul_output_0
+Convolution /model.13/m/m.0/cv1/conv/Conv 1 1 /model.13/cv1/act/Mul_output_0 /model.13/m/m.0/cv1/conv/Conv_output_0 0=128 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=16384
+Swish /model.13/m/m.0/cv1/act/Mul 1 1 /model.13/m/m.0/cv1/conv/Conv_output_0 /model.13/m/m.0/cv1/act/Mul_output_0
+Convolution /model.13/m/m.0/cv2/conv/Conv 1 1 /model.13/m/m.0/cv1/act/Mul_output_0 /model.13/m/m.0/cv2/conv/Conv_output_0 0=128 1=3 11=3 2=1 12=1 3=1 13=1 4=1 14=1 15=1 16=1 5=1 6=147456
+Swish /model.13/m/m.0/cv2/act/Mul 1 1 /model.13/m/m.0/cv2/conv/Conv_output_0 /model.13/m/m.0/cv2/act/Mul_output_0
+Convolution /model.13/cv2/conv/Conv 1 1 /model.12/Concat_output_0_splitncnn_0 /model.13/cv2/conv/Conv_output_0 0=128 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=65536
+Swish /model.13/cv2/act/Mul 1 1 /model.13/cv2/conv/Conv_output_0 /model.13/cv2/act/Mul_output_0
+Concat /model.13/Concat 2 1 /model.13/m/m.0/cv2/act/Mul_output_0 /model.13/cv2/act/Mul_output_0 /model.13/Concat_output_0 0=0
+Convolution /model.13/cv3/conv/Conv 1 1 /model.13/Concat_output_0 /model.13/cv3/conv/Conv_output_0 0=256 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=65536
+Swish /model.13/cv3/act/Mul 1 1 /model.13/cv3/conv/Conv_output_0 /model.13/cv3/act/Mul_output_0
+Convolution /model.14/conv/Conv 1 1 /model.13/cv3/act/Mul_output_0 /model.14/conv/Conv_output_0 0=128 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=32768
+Swish /model.14/act/Mul 1 1 /model.14/conv/Conv_output_0 /model.14/act/Mul_output_0
+Split splitncnn_18 1 2 /model.14/act/Mul_output_0 /model.14/act/Mul_output_0_splitncnn_0 /model.14/act/Mul_output_0_splitncnn_1
+Interp /model.15/Resize 1 1 /model.14/act/Mul_output_0_splitncnn_1 /model.15/Resize_output_0 0=1 1=2.000000e+00 2=2.000000e+00 3=0 4=0 6=0
+Concat /model.16/Concat 2 1 /model.15/Resize_output_0 /model.4/cv3/act/Mul_output_0_splitncnn_0 /model.16/Concat_output_0 0=0
+Split splitncnn_19 1 2 /model.16/Concat_output_0 /model.16/Concat_output_0_splitncnn_0 /model.16/Concat_output_0_splitncnn_1
+Convolution /model.17/cv1/conv/Conv 1 1 /model.16/Concat_output_0_splitncnn_1 /model.17/cv1/conv/Conv_output_0 0=64 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=16384
+Swish /model.17/cv1/act/Mul 1 1 /model.17/cv1/conv/Conv_output_0 /model.17/cv1/act/Mul_output_0
+Convolution /model.17/m/m.0/cv1/conv/Conv 1 1 /model.17/cv1/act/Mul_output_0 /model.17/m/m.0/cv1/conv/Conv_output_0 0=64 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=4096
+Swish /model.17/m/m.0/cv1/act/Mul 1 1 /model.17/m/m.0/cv1/conv/Conv_output_0 /model.17/m/m.0/cv1/act/Mul_output_0
+Convolution /model.17/m/m.0/cv2/conv/Conv 1 1 /model.17/m/m.0/cv1/act/Mul_output_0 /model.17/m/m.0/cv2/conv/Conv_output_0 0=64 1=3 11=3 2=1 12=1 3=1 13=1 4=1 14=1 15=1 16=1 5=1 6=36864
+Swish /model.17/m/m.0/cv2/act/Mul 1 1 /model.17/m/m.0/cv2/conv/Conv_output_0 /model.17/m/m.0/cv2/act/Mul_output_0
+Convolution /model.17/cv2/conv/Conv 1 1 /model.16/Concat_output_0_splitncnn_0 /model.17/cv2/conv/Conv_output_0 0=64 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=16384
+Swish /model.17/cv2/act/Mul 1 1 /model.17/cv2/conv/Conv_output_0 /model.17/cv2/act/Mul_output_0
+Concat /model.17/Concat 2 1 /model.17/m/m.0/cv2/act/Mul_output_0 /model.17/cv2/act/Mul_output_0 /model.17/Concat_output_0 0=0
+Convolution /model.17/cv3/conv/Conv 1 1 /model.17/Concat_output_0 /model.17/cv3/conv/Conv_output_0 0=128 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=16384
+Swish /model.17/cv3/act/Mul 1 1 /model.17/cv3/conv/Conv_output_0 /model.17/cv3/act/Mul_output_0
+Split splitncnn_20 1 2 /model.17/cv3/act/Mul_output_0 /model.17/cv3/act/Mul_output_0_splitncnn_0 /model.17/cv3/act/Mul_output_0_splitncnn_1
+Convolution /model.18/conv/Conv 1 1 /model.17/cv3/act/Mul_output_0_splitncnn_1 /model.18/conv/Conv_output_0 0=128 1=3 11=3 2=1 12=1 3=2 13=2 4=1 14=1 15=1 16=1 5=1 6=147456
+Swish /model.18/act/Mul 1 1 /model.18/conv/Conv_output_0 /model.18/act/Mul_output_0
+Concat /model.19/Concat 2 1 /model.18/act/Mul_output_0 /model.14/act/Mul_output_0_splitncnn_0 /model.19/Concat_output_0 0=0
+Split splitncnn_21 1 2 /model.19/Concat_output_0 /model.19/Concat_output_0_splitncnn_0 /model.19/Concat_output_0_splitncnn_1
+Convolution /model.20/cv1/conv/Conv 1 1 /model.19/Concat_output_0_splitncnn_1 /model.20/cv1/conv/Conv_output_0 0=128 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=32768
+Swish /model.20/cv1/act/Mul 1 1 /model.20/cv1/conv/Conv_output_0 /model.20/cv1/act/Mul_output_0
+Convolution /model.20/m/m.0/cv1/conv/Conv 1 1 /model.20/cv1/act/Mul_output_0 /model.20/m/m.0/cv1/conv/Conv_output_0 0=128 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=16384
+Swish /model.20/m/m.0/cv1/act/Mul 1 1 /model.20/m/m.0/cv1/conv/Conv_output_0 /model.20/m/m.0/cv1/act/Mul_output_0
+Convolution /model.20/m/m.0/cv2/conv/Conv 1 1 /model.20/m/m.0/cv1/act/Mul_output_0 /model.20/m/m.0/cv2/conv/Conv_output_0 0=128 1=3 11=3 2=1 12=1 3=1 13=1 4=1 14=1 15=1 16=1 5=1 6=147456
+Swish /model.20/m/m.0/cv2/act/Mul 1 1 /model.20/m/m.0/cv2/conv/Conv_output_0 /model.20/m/m.0/cv2/act/Mul_output_0
+Convolution /model.20/cv2/conv/Conv 1 1 /model.19/Concat_output_0_splitncnn_0 /model.20/cv2/conv/Conv_output_0 0=128 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=32768
+Swish /model.20/cv2/act/Mul 1 1 /model.20/cv2/conv/Conv_output_0 /model.20/cv2/act/Mul_output_0
+Concat /model.20/Concat 2 1 /model.20/m/m.0/cv2/act/Mul_output_0 /model.20/cv2/act/Mul_output_0 /model.20/Concat_output_0 0=0
+Convolution /model.20/cv3/conv/Conv 1 1 /model.20/Concat_output_0 /model.20/cv3/conv/Conv_output_0 0=256 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=65536
+Swish /model.20/cv3/act/Mul 1 1 /model.20/cv3/conv/Conv_output_0 /model.20/cv3/act/Mul_output_0
+Split splitncnn_22 1 2 /model.20/cv3/act/Mul_output_0 /model.20/cv3/act/Mul_output_0_splitncnn_0 /model.20/cv3/act/Mul_output_0_splitncnn_1
+Convolution /model.21/conv/Conv 1 1 /model.20/cv3/act/Mul_output_0_splitncnn_1 /model.21/conv/Conv_output_0 0=256 1=3 11=3 2=1 12=1 3=2 13=2 4=1 14=1 15=1 16=1 5=1 6=589824
+Swish /model.21/act/Mul 1 1 /model.21/conv/Conv_output_0 /model.21/act/Mul_output_0
+Concat /model.22/Concat 2 1 /model.21/act/Mul_output_0 /model.10/act/Mul_output_0_splitncnn_0 /model.22/Concat_output_0 0=0
+Split splitncnn_23 1 2 /model.22/Concat_output_0 /model.22/Concat_output_0_splitncnn_0 /model.22/Concat_output_0_splitncnn_1
+Convolution /model.23/cv1/conv/Conv 1 1 /model.22/Concat_output_0_splitncnn_1 /model.23/cv1/conv/Conv_output_0 0=256 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=131072
+Swish /model.23/cv1/act/Mul 1 1 /model.23/cv1/conv/Conv_output_0 /model.23/cv1/act/Mul_output_0
+Convolution /model.23/m/m.0/cv1/conv/Conv 1 1 /model.23/cv1/act/Mul_output_0 /model.23/m/m.0/cv1/conv/Conv_output_0 0=256 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=65536
+Swish /model.23/m/m.0/cv1/act/Mul 1 1 /model.23/m/m.0/cv1/conv/Conv_output_0 /model.23/m/m.0/cv1/act/Mul_output_0
+Convolution /model.23/m/m.0/cv2/conv/Conv 1 1 /model.23/m/m.0/cv1/act/Mul_output_0 /model.23/m/m.0/cv2/conv/Conv_output_0 0=256 1=3 11=3 2=1 12=1 3=1 13=1 4=1 14=1 15=1 16=1 5=1 6=589824
+Swish /model.23/m/m.0/cv2/act/Mul 1 1 /model.23/m/m.0/cv2/conv/Conv_output_0 /model.23/m/m.0/cv2/act/Mul_output_0
+Convolution /model.23/cv2/conv/Conv 1 1 /model.22/Concat_output_0_splitncnn_0 /model.23/cv2/conv/Conv_output_0 0=256 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=131072
+Swish /model.23/cv2/act/Mul 1 1 /model.23/cv2/conv/Conv_output_0 /model.23/cv2/act/Mul_output_0
+Concat /model.23/Concat 2 1 /model.23/m/m.0/cv2/act/Mul_output_0 /model.23/cv2/act/Mul_output_0 /model.23/Concat_output_0 0=0
+Convolution /model.23/cv3/conv/Conv 1 1 /model.23/Concat_output_0 /model.23/cv3/conv/Conv_output_0 0=512 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=262144
+Swish /model.23/cv3/act/Mul 1 1 /model.23/cv3/conv/Conv_output_0 /model.23/cv3/act/Mul_output_0
+Convolution /model.24/m.0/Conv 1 1 /model.17/cv3/act/Mul_output_0_splitncnn_0 /model.24/m.0/Conv_output_0 0=66 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=8448
+Reshape /model.24/Reshape 1 1 /model.24/m.0/Conv_output_0 /model.24/Reshape_output_0 0=-1 1=22 2=3
+Permute /model.24/Transpose 1 1 /model.24/Reshape_output_0 output 0=1
+Convolution /model.24/m.1/Conv 1 1 /model.20/cv3/act/Mul_output_0_splitncnn_0 /model.24/m.1/Conv_output_0 0=66 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=16896
+Reshape /model.24/Reshape_1 1 1 /model.24/m.1/Conv_output_0 /model.24/Reshape_1_output_0 0=-1 1=22 2=3
+Permute /model.24/Transpose_1 1 1 /model.24/Reshape_1_output_0 354 0=1
+Convolution /model.24/m.2/Conv 1 1 /model.23/cv3/act/Mul_output_0 /model.24/m.2/Conv_output_0 0=66 1=1 11=1 2=1 12=1 3=1 13=1 4=0 14=0 15=0 16=0 5=1 6=33792
+Reshape /model.24/Reshape_2 1 1 /model.24/m.2/Conv_output_0 /model.24/Reshape_2_output_0 0=-1 1=22 2=3
+Permute /model.24/Transpose_2 1 1 /model.24/Reshape_2_output_0 366 0=1
diff --git a/mpres/src/main/assets/mpapp/data/schedules/1 b/mpres/src/main/assets/mpapp/data/schedules/1
new file mode 100644
index 00000000..c5f93543
Binary files /dev/null and b/mpres/src/main/assets/mpapp/data/schedules/1 differ
diff --git a/mpres/src/main/assets/mpapp/data/schedules/2 b/mpres/src/main/assets/mpapp/data/schedules/2
new file mode 100644
index 00000000..8bbf3661
Binary files /dev/null and b/mpres/src/main/assets/mpapp/data/schedules/2 differ
diff --git a/mpres/src/main/assets/mpapp/data/schedules/3 b/mpres/src/main/assets/mpapp/data/schedules/3
new file mode 100644
index 00000000..dfae32e2
Binary files /dev/null and b/mpres/src/main/assets/mpapp/data/schedules/3 differ
diff --git a/mpres/src/main/assets/mpapp/data/schedules/4 b/mpres/src/main/assets/mpapp/data/schedules/4
new file mode 100644
index 00000000..1f85307f
Binary files /dev/null and b/mpres/src/main/assets/mpapp/data/schedules/4 differ
diff --git a/mpres/src/main/assets/mpapp/data/serials.json b/mpres/src/main/assets/mpapp/data/serials.json
new file mode 100644
index 00000000..03f71fc9
--- /dev/null
+++ b/mpres/src/main/assets/mpapp/data/serials.json
@@ -0,0 +1 @@
+{"sensors":[]}
\ No newline at end of file
diff --git a/mpres/src/main/assets/mpmst/data/Master.json b/mpres/src/main/assets/mpmst/data/Master.json
new file mode 100644
index 00000000..6b8751b1
--- /dev/null
+++ b/mpres/src/main/assets/mpmst/data/Master.json
@@ -0,0 +1 @@
+{"absHeartbeats":[33449,85836],"heartbeat":10,"mntnMode":0,"mpappMonitorTimeout":1800000,"port":40101,"quickHbMode":0,"quickHeartbeat":60,"separateNetwork":1,"server":"61.169.135.150","syncTime":0,"timeForKeepingLogs":15,"usingAbsHbTime":1}
\ No newline at end of file
diff --git a/mpres/src/main/java/com/xypower/mpres/MainActivity.java b/mpres/src/main/java/com/xypower/mpres/MainActivity.java
new file mode 100644
index 00000000..04659197
--- /dev/null
+++ b/mpres/src/main/java/com/xypower/mpres/MainActivity.java
@@ -0,0 +1,190 @@
+package com.xypower.mpres;
+
+import android.content.Context;
+import android.content.res.AssetManager;
+import android.os.Bundle;
+
+import androidx.activity.EdgeToEdge;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+
+public class MainActivity extends AppCompatActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ EdgeToEdge.enable(this);
+ setContentView(R.layout.activity_main);
+ ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
+ Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
+ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
+ return insets;
+ });
+ }
+
+ public static boolean initMpAppConfigurations(final Context context) {
+
+ boolean existed = true;
+ String destPath = MicroPhotoContext.buildMpAppDir(context);
+ File destPathFile = new File(destPath);
+ if (destPathFile.exists()) {
+ File dataPath = new File(destPathFile, "data");
+ if (dataPath.exists()) {
+ File file = new File(dataPath, "App.json");
+ if (file.exists()) {
+ return false;
+ } else {
+ existed = false;
+ }
+ } else {
+ existed = false;
+
+ try {
+ dataPath.mkdirs();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+ } else {
+ existed = false;
+ File dataPath = new File(destPathFile, "data");
+ try {
+ dataPath.mkdirs();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+
+ if (existed) {
+ return false;
+ }
+
+ Runnable runnable = new Runnable() {
+ @Override
+ public void run() {
+
+ sleep(5000);
+
+ File tmpDestPath = new File(MicroPhotoContext.buildMasterAppDir(context));
+ tmpDestPath = new File(tmpDestPath, "mpdata");
+ if (tmpDestPath.exists()) {
+ try {
+ tmpDestPath.delete();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+ copyAssetsDir(context, "mpapp/data", tmpDestPath.getAbsolutePath());
+ MpMasterService.restartMpApp(context.getApplicationContext(), "FIRST Config Init");
+ }
+ };
+
+ Thread th = new Thread(runnable);
+ th.start();
+
+ return true;
+ }
+
+ public static boolean initMpMasterConfigurations(final Context context) {
+ String destPath = MicroPhotoContext.buildMasterAppDir(context);
+ File destPathFile = new File(destPath);
+ File dataPath = new File(destPathFile, "data");
+ File file = new File(dataPath, "Master.json");
+ if (file.exists()) {
+ return false;
+ }
+
+ if (!dataPath.exists()) {
+ try {
+ dataPath.mkdirs();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+
+ copyAssetsDir(context, "mpmst", dataPath.getAbsolutePath());
+ return true;
+ }
+
+ public static void copyAssetsDir(Context context, String directory, String destPath) {
+ try {
+ AssetManager assetManager = context.getAssets();
+ String[] fileList = assetManager.list(directory);
+ if (fileList != null && fileList.length > 0) {
+ File file = new File(destPath);
+ if (!file.exists()) {
+ file.mkdirs();
+ }
+
+ if (!directory.endsWith(File.separator)) {
+ directory += File.separator;
+ }
+ if (!destPath.endsWith(File.separator)) {
+ destPath += File.separator;
+ }
+
+ for (String fileName : fileList) {
+ copyAssetsDir(context, directory + fileName, destPath + fileName);
+ }
+ } else {
+ // Try to file
+ copyAssetsFile(context, directory, destPath);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ // else {//如果是文件
+ // InputStream inputStream=context.getAssets().open(filePath);
+ // File file=new File(context.getFilesDir().getAbsolutePath()+ File.separator+filePath);
+ // Log.i("copyAssets2Phone","file:"+file);
+ // if(!file.exists() || file.length()==0) {
+ // FileOutputStream fos=new FileOutputStream(file);
+ // int len=-1;
+ // byte[] buffer=new byte[1024];
+ // while ((len=inputStream.read(buffer))!=-1){
+ // fos.write(buffer,0,len);
+ // }
+ // fos.flush();
+ // inputStream.close();
+ // fos.close();
+ // showToast(context,"模型文件复制完毕");
+ // } else {
+ // showToast(context,"模型文件已存在,无需复制");
+ // }
+ // }
+ }
+
+
+ public static void copyAssetsFile(Context context, String fileName, String destPath) {
+ InputStream inputStream = null;
+ FileOutputStream fos = null;
+ try {
+ inputStream = context.getAssets().open(fileName);
+ //getFilesDir() 获得当前APP的安装路径 /data/data/包名/files 目录
+ File file = new File(destPath);
+ if (file.exists()) {
+ file.delete();
+ }
+
+ fos = new FileOutputStream(file);
+ int len = -1;
+ byte[] buffer = new byte[1024];
+ while ((len = inputStream.read(buffer)) != -1) {
+ fos.write(buffer, 0, len);
+ }
+ fos.flush();
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ FilesUtils.closeFriendly(inputStream);
+ FilesUtils.closeFriendly(fos);
+ }
+ }
+}
\ No newline at end of file
diff --git a/mpres/src/main/res/drawable-v24/ic_launcher_foreground.xml b/mpres/src/main/res/drawable-v24/ic_launcher_foreground.xml
new file mode 100644
index 00000000..2b068d11
--- /dev/null
+++ b/mpres/src/main/res/drawable-v24/ic_launcher_foreground.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mpres/src/main/res/drawable/ic_launcher_background.xml b/mpres/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 00000000..07d5da9c
--- /dev/null
+++ b/mpres/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mpres/src/main/res/layout/activity_main.xml b/mpres/src/main/res/layout/activity_main.xml
new file mode 100644
index 00000000..86a5d977
--- /dev/null
+++ b/mpres/src/main/res/layout/activity_main.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mpres/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/mpres/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 00000000..6f3b755b
--- /dev/null
+++ b/mpres/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mpres/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/mpres/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 00000000..6f3b755b
--- /dev/null
+++ b/mpres/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mpres/src/main/res/mipmap-hdpi/ic_launcher.webp b/mpres/src/main/res/mipmap-hdpi/ic_launcher.webp
new file mode 100644
index 00000000..c209e78e
Binary files /dev/null and b/mpres/src/main/res/mipmap-hdpi/ic_launcher.webp differ
diff --git a/mpres/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/mpres/src/main/res/mipmap-hdpi/ic_launcher_round.webp
new file mode 100644
index 00000000..b2dfe3d1
Binary files /dev/null and b/mpres/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ
diff --git a/mpres/src/main/res/mipmap-mdpi/ic_launcher.webp b/mpres/src/main/res/mipmap-mdpi/ic_launcher.webp
new file mode 100644
index 00000000..4f0f1d64
Binary files /dev/null and b/mpres/src/main/res/mipmap-mdpi/ic_launcher.webp differ
diff --git a/mpres/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/mpres/src/main/res/mipmap-mdpi/ic_launcher_round.webp
new file mode 100644
index 00000000..62b611da
Binary files /dev/null and b/mpres/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ
diff --git a/mpres/src/main/res/mipmap-xhdpi/ic_launcher.webp b/mpres/src/main/res/mipmap-xhdpi/ic_launcher.webp
new file mode 100644
index 00000000..948a3070
Binary files /dev/null and b/mpres/src/main/res/mipmap-xhdpi/ic_launcher.webp differ
diff --git a/mpres/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/mpres/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
new file mode 100644
index 00000000..1b9a6956
Binary files /dev/null and b/mpres/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ
diff --git a/mpres/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/mpres/src/main/res/mipmap-xxhdpi/ic_launcher.webp
new file mode 100644
index 00000000..28d4b77f
Binary files /dev/null and b/mpres/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ
diff --git a/mpres/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/mpres/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
new file mode 100644
index 00000000..9287f508
Binary files /dev/null and b/mpres/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ
diff --git a/mpres/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/mpres/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
new file mode 100644
index 00000000..aa7d6427
Binary files /dev/null and b/mpres/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ
diff --git a/mpres/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/mpres/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
new file mode 100644
index 00000000..9126ae37
Binary files /dev/null and b/mpres/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ
diff --git a/mpres/src/main/res/values-night/themes.xml b/mpres/src/main/res/values-night/themes.xml
new file mode 100644
index 00000000..1ab943e1
--- /dev/null
+++ b/mpres/src/main/res/values-night/themes.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/mpres/src/main/res/values/colors.xml b/mpres/src/main/res/values/colors.xml
new file mode 100644
index 00000000..c8524cd9
--- /dev/null
+++ b/mpres/src/main/res/values/colors.xml
@@ -0,0 +1,5 @@
+
+
+ #FF000000
+ #FFFFFFFF
+
\ No newline at end of file
diff --git a/mpres/src/main/res/values/strings.xml b/mpres/src/main/res/values/strings.xml
new file mode 100644
index 00000000..c7df5f73
--- /dev/null
+++ b/mpres/src/main/res/values/strings.xml
@@ -0,0 +1,3 @@
+
+ MpRes
+
\ No newline at end of file
diff --git a/mpres/src/main/res/values/themes.xml b/mpres/src/main/res/values/themes.xml
new file mode 100644
index 00000000..5a496713
--- /dev/null
+++ b/mpres/src/main/res/values/themes.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mpres/src/test/java/com/xypower/mpres/ExampleUnitTest.java b/mpres/src/test/java/com/xypower/mpres/ExampleUnitTest.java
new file mode 100644
index 00000000..625a557f
--- /dev/null
+++ b/mpres/src/test/java/com/xypower/mpres/ExampleUnitTest.java
@@ -0,0 +1,17 @@
+package com.xypower.mpres;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see Testing documentation
+ */
+public class ExampleUnitTest {
+ @Test
+ public void addition_isCorrect() {
+ assertEquals(4, 2 + 2);
+ }
+}
\ No newline at end of file
diff --git a/settings.gradle b/settings.gradle
index ac0b2a70..d887b984 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -21,4 +21,5 @@ include ':gpuv'
// project(':opencv').projectDir = new File(opencvsdk + '/sdk')
include ':common'
-include ':stream'
\ No newline at end of file
+include ':stream'
+include ':mpres'