unify-external-plugin-platform 0.0.2-3 → 0.0.2-6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/.idea/misc.xml +6 -0
  2. package/.idea/modules.xml +8 -0
  3. package/.idea/unify-external-plugin-platform.iml +12 -0
  4. package/.idea/vcs.xml +6 -0
  5. package/dist/demo.html +1 -0
  6. package/dist/external-plugin.common.js +3128 -0
  7. package/dist/external-plugin.common.js.map +1 -0
  8. package/dist/external-plugin.css +1 -0
  9. package/dist/external-plugin.umd.js +3147 -0
  10. package/dist/external-plugin.umd.js.map +1 -0
  11. package/dist/external-plugin.umd.min.js +8 -0
  12. package/dist/external-plugin.umd.min.js.map +1 -0
  13. package/{packages/zs-empty/src/assets/images/img_blank_empty.png → dist/img/img_blank_empty.92ddadbb.png} +0 -0
  14. package/package.json +3 -7
  15. package/packages/index.js +3 -3
  16. package/vue.config.js +1 -0
  17. package/docs/.vuepress/public/logo.png +0 -0
  18. package/packages/id-card-reader-demo/src/id-card-reader-demo.vue +0 -142
  19. package/packages/scanner-high-camera-jieyu/src/component/scanner-high-camera-component.vue +0 -292
  20. package/packages/scanner-high-camera-jieyu/src/scanner-high-camera-jieyu.vue +0 -174
  21. package/packages/zs-empty/src/zs-empty.vue +0 -42
  22. package/public/favicon.ico +0 -0
  23. package/public/img/icons/android-chrome-192x192.png +0 -0
  24. package/public/img/icons/android-chrome-512x512.png +0 -0
  25. package/public/img/icons/android-chrome-maskable-192x192.png +0 -0
  26. package/public/img/icons/android-chrome-maskable-512x512.png +0 -0
  27. package/public/img/icons/apple-touch-icon-120x120.png +0 -0
  28. package/public/img/icons/apple-touch-icon-152x152.png +0 -0
  29. package/public/img/icons/apple-touch-icon-180x180.png +0 -0
  30. package/public/img/icons/apple-touch-icon-60x60.png +0 -0
  31. package/public/img/icons/apple-touch-icon-76x76.png +0 -0
  32. package/public/img/icons/apple-touch-icon.png +0 -0
  33. package/public/img/icons/favicon-16x16.png +0 -0
  34. package/public/img/icons/favicon-32x32.png +0 -0
  35. package/public/img/icons/msapplication-icon-144x144.png +0 -0
  36. package/public/img/icons/mstile-150x150.png +0 -0
  37. package/public/img/icons/safari-pinned-tab.svg +0 -3
  38. package/public/index.html +0 -23
  39. package/public/robots.txt +0 -2
  40. package/src/App.vue +0 -15
  41. package/src/assets/images/reg-developing.png +0 -0
  42. package/src/assets/logo.png +0 -0
  43. package/src/components/404.vue +0 -17
  44. package/src/components/HelloWorld.vue +0 -61
  45. package/src/main.ts +0 -22
  46. package/src/registerServiceWorker.ts +0 -32
  47. package/src/router/id-card-reader/id-card-reader.ts +0 -19
  48. package/src/router/index.ts +0 -46
  49. package/src/router/scan/scan.ts +0 -19
  50. package/src/shims-tsx.d.ts +0 -11
  51. package/src/shims-vue.d.ts +0 -4
  52. package/src/store/index.ts +0 -17
  53. package/src/views/AboutView.vue +0 -5
  54. package/src/views/HomeView.vue +0 -109
  55. package/src/views/id-card-reader/id-card-reader-page.vue +0 -139
  56. package/src/views/id-card-reader/model/conatant/id-card-form-attr.ts +0 -31
  57. package/src/views/id-card-reader/model/vo/id-card.ts +0 -44
  58. package/src/views/layout/home-layout.vue +0 -72
  59. package/src/views/layout/model/menu-data.ts +0 -29
  60. package/src/views/scan/scan-page.vue +0 -56
package/package.json CHANGED
@@ -1,22 +1,18 @@
1
1
  {
2
2
  "name": "unify-external-plugin-platform",
3
- "version": "0.0.2-3",
3
+ "version": "0.0.2-6",
4
4
  "description": "统一对外插件平台",
5
- "main": "packages/index.js",
5
+ "main": "./dist/external-plugin.umd.min.js",
6
6
  "author": "Young",
7
7
  "license": "ISC",
8
8
  "scripts": {
9
9
  "serve": "vue-cli-service serve",
10
10
  "build": "vue-cli-service build",
11
+ "lib": "vue-cli-service build --target lib --name external-plugin ./packages/index.js",
11
12
  "docs:dev": "vuepress dev docs",
12
13
  "docs:build": "vuepress build docs"
13
14
  },
14
15
  "dependencies": {
15
- "sass": "^1.32.7",
16
- "sass-loader": "^12.0.0",
17
- "typescript": "~4.5.5",
18
- "vue-template-compiler": "^2.6.14",
19
- "vuepress": "^1.9.7",
20
16
  "core-js": "^3.8.3",
21
17
  "element-ui": "^2.15.12",
22
18
  "register-service-worker": "^1.7.2",
package/packages/index.js CHANGED
@@ -1,6 +1,6 @@
1
- import ZSEmpty from "./zs-empty/index.ts";
2
- import IdCardReaderDemo from "./id-card-reader-demo/index.ts";
3
- import ScannerHighCameraJieyu from "./scanner-high-camera-jieyu/index.ts";
1
+ import ZSEmpty from "./zs-empty";
2
+ import IdCardReaderDemo from "./id-card-reader-demo";
3
+ import ScannerHighCameraJieyu from "./scanner-high-camera-jieyu";
4
4
 
5
5
 
6
6
  // 组件列表
package/vue.config.js CHANGED
@@ -1,4 +1,5 @@
1
1
  const { defineConfig } = require('@vue/cli-service')
2
+
2
3
  module.exports = defineConfig({
3
4
  transpileDependencies: true
4
5
  })
Binary file
@@ -1,142 +0,0 @@
1
- <!--
2
- - @author: lvcy
3
- - @date: 2022-12-30
4
- - @description:index
5
- -->
6
- <template>
7
- <el-tooltip
8
- :content="tip"
9
- class="id-card-reader-demo"
10
- placement="top"
11
- v-if="tip"
12
- >
13
- <el-button
14
- @click="handleClick"
15
- v-bind="{
16
- disabled,
17
- icon,
18
- loading,
19
- plain,
20
- round,
21
- size,
22
- type,
23
- class: _className,
24
- }"
25
- >
26
- <slot>{{ label }}</slot>
27
- </el-button>
28
- </el-tooltip>
29
- <el-button
30
- v-else
31
- @click="handleClick"
32
- v-bind="{
33
- disabled,
34
- icon,
35
- loading,
36
- plain,
37
- round,
38
- size,
39
- type,
40
- class: _className,
41
- }"
42
- >
43
- <slot>{{ label }}</slot>
44
- </el-button>
45
-
46
- </template>
47
-
48
- <script lang="ts">
49
- import {Component, Prop, Vue} from "vue-property-decorator";
50
- import {ButtonType} from "element-ui/types/button";
51
- import {ElementUIComponentSize} from "element-ui/types/component";
52
-
53
- @Component({
54
- name: 'id-card-reader-demo'
55
- })
56
- export default class IdCardReaderDemo extends Vue {
57
- @Prop()
58
- label!: string
59
-
60
- @Prop()
61
- tip!: string
62
-
63
- @Prop()
64
- className!: string | string[]
65
- /** Button size */
66
- @Prop()
67
- size!: ElementUIComponentSize
68
-
69
- /** Button type */
70
- @Prop()
71
- type!: ButtonType
72
-
73
- /** Determine whether it's a plain button */
74
- @Prop()
75
- plain!: boolean
76
-
77
- /** Determine whether it's a round button */
78
- @Prop()
79
- round!: boolean
80
-
81
- /** Determine whether it's loading */
82
- @Prop()
83
- loading!: boolean
84
-
85
- /** Button icon, accepts an icon name of Element icon component */
86
- @Prop({ default: 'el-icon-postcard' })
87
- icon!: string
88
-
89
- @Prop({ default: false })
90
- disabled?: boolean
91
-
92
- get _className() {
93
- const classBase = ['z-button']
94
-
95
- if (this.type === 'text') {
96
- classBase.push('i-font-size')
97
- }
98
-
99
- if (!this.className) {
100
- return classBase
101
- } else if (typeof this.className === 'string') {
102
- classBase.push(this.className)
103
- } else {
104
- classBase.push(...this.className)
105
- }
106
- return classBase
107
- }
108
-
109
- handleClick() {
110
- const readData = {
111
- /** 身份证信息 */
112
- info: {
113
- /** 姓名 */
114
- name: '张三',
115
- /** 性别 */
116
- sex: '男',
117
- /** 民族 */
118
- nation: '汉',
119
- /** 出生日期 */
120
- birthday: '19950710',
121
- /** 地址 */
122
- address: '浙江省杭州市西湖区',
123
- /** 证件号码 */
124
- cardId: '140*************11',
125
- /** 签发机关 */
126
- police: '公安局',
127
- /** 有效期开始 */
128
- validStart: '20220516',
129
- /** 有效期结束 */
130
- validEnd: '20420516',
131
- },
132
- /** 身份证照片 */
133
- headImage: 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/wAALCAKAAoABASIA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APqmiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiio2Y5IBNRDzd3L/LT1diNzEAUxrhEBMsqRj/aIFUrnX9MtgfP1K0QeplX/Gsm4+IHhi3JE2uWakf7WaqD4o+EO2vWf4k1PB8RvC0y5TXLI84+8asReOfDsjALrdhz/t4q9D4l0icfudUs3P8AszL/AI1etr2GdcwzxSg/3XB/lUwl9GyKcrZ709aWiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiikJwOaaJFxkcj2rH8QeJNM0OEy6lexwLjPzGvJvFH7SPhLTEkTTnnvrgcDYg2fnmvG/FX7SviXUvMi0yCOxiJ+VlOW/lXnOp/E7xbqW4XeuXbKewc4/nWDda1qV0P3t9O5/wBpzUEcV1OCSZZCfQE03+zb/vbTn/gJoFpfRceRcKPTBpQLsDHlzZ9yafBcX8ROJ7iMD+6SK6Twz8RPEnhuaN9O1e5UL/DISQfzNe7/AA+/acieVbfxjatEmzH2i3UMS3uOMCvfPCHjbQvE9os+k6lDOpHTOCPwrpfOULnk06ORXB2npTs0tFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFNf7jc4968n+Lvxh0vwTZyQxN5+pHhYlPQ+tfHnj7x3q/jLVpZ9TuXKt92NTgJ6CofD/gLxFrMavp2kXMqtyHMZAYe1eieFv2cfE+qgSX6x2UXozDd+Wa9W8Ofsx6BbhG1i4nnbAyquBz+Vdpp/wL8EWRymjrIV6GVt2f5V1Ok+B9A01QLTRoI8ewrZ/saw/wCfKL/vkVFJoenM3zWNuR7xio38NaM6kNpdsSfWOs+TwJ4dm3eZo1o+evy4rzTx9+zxoGvSTXGlRmwupDkGM4UH3GK+fvHPwL8VeFA06232+1DYEkAzj6jmuC0zVNU0C/M9tPcWt0h9wRX0F8M/2lJoWisvF0JmU4UXKdR9RzX0p4U8R6b4jsTd6TdR3EfG7aeVz6+lbg60+iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiqFxKf3iAH3x2HqK4/xv8S/D/g391rOoKspXKxpyx615HrX7VenxO6aPos8uOA85AB/Jq5a0/aq11Lgefo1k0GefnbdXo3gz9pbw3q8wg1iGbTJD/G4yhP4EmsH4x/tBxW9pPp3g+XfPKpU3JUYUeq//AF6+YLm41DXtVeWaWe7uJG6sSSTX0V8CvgQ1ytvrPiyIBB88UBHv39a+oNL062sYI4ra3jhjQYCKgGKvbRnOBn6U4dKNo64FGB6UtJilpAB6CgADoBVe8hSWHY6qVJ5yMivLPiV8FNA8YRM8Ua2l8fuyxjaM+4FfJvxI+FOv+CbxxcWrTWgORPHyuKofDr4h6x4I1ZbvTrqRov8AlpCx+V/wr7Z+FPxK0zx3pMM0NwqX2MS2x4YGu83HDAcFeealiYOgI70+iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiimsSBkDJpnnDcwA+7972rzX40/Eiz8B6JKwmVtSlGLeIHnd6mviDxHquoeLdbkubqaS7vLh8gZ/QCu58NfATxnrVvFL9k+zW8gzum4/Susuf2WvEKWjSQ6layTAZEZGM/jXjvjXwfq3gzU1stZgEUzrvQqchlyR/Sq/hjw5eeIdWSw05DJcSEAD1NfWXwX+BFnoCQanrWZb7qY3XgV7xb2yxIipgBOAAKmA+bI6U7HvRS0UUUUUUhGRioDb5bcW5HT0FVdU0e11Swezv4o5oHGGVl4NfLXx2+AZ0+B9a8HQtJCoZ7i2Ufd91rwvwZ4l1LwnrEWoaTO0UyMNydN4B5Ffb3wh+Jun+O9DjdH26kBslhzyD616Ja/u4Aoy2Dip1bNOooooooooooooooooooooooooooooooooooooooooooooooooooopkjBUJY4Fcf8Q/Ftv4O8M32qXrqFiBCDPLseg96+CvF/inUvF+s3N9fu80kzHy06hAfSvor9m74Pi3tU1/X4B5sgBhjccqPXFfSUSbQFjjwAMDPQU14nfgquP71fN37amkKdL0LVFjy6yG3LAdBhjz+Jryb9me8WH4paQj4G9jkn8K+8Yum7PXoKlU5HNKtLRRRRRRRRRRRVHUYpJY9qAMGGCCOD9favmL9oP4Hs4n8Q+F4SZsF7m2QcNjqy+/tXgvgbxXqXgzXY7y0meJ42xIhGN3qpFfdXwp8d2Xjnw5b31tKgn+7LFuG5WHXI64ruFxmn0UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVDc48lsgEjkZ9a+LP2pviD/wkmvro2nzZsLBtsgB4eTnJ/DOKZ+y/wDD3/hKPEK6pqMRbS7JtwyOJH9D+VfaNiqJHtRFTZ8mF6CrVFePftTacL34T6pMwybTZKv13gfyNfJHwena1+IvhuQHlrgbvpmv0Qjb92p9Bn9KmT7o96ctLRRRRRRRRRRRRUcqq8Tq4ypBBHqK+SP2l/hI+m3E/ibQIFa0mP8ApEKD7h/vD8q8l+FXj++8CeI4buzfdASFmj/hde9feXgnxJZ+J9FttQsZllWVcnafunuD710dFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFRMzCTaO44rzj47eOI/Bngm+lzi7uEMNvjqWPH6ZBr4TsbS617XYrdFZ7q7m7c8k8k/zr9Bfhd4PtfCHhHT9OijxKkS+cezPjk11kEaoTtzzU1FcR8ZrRL34a+IYJBkG2zj6EH+lfAfgy8ex8WaVOhAMMykZr9JdPkE9hDLn76L/Krkf3BTlpaKKKKKKKKKKKKawyrD2rK1GyhvLWe1uYlkt5VKEMOOa+K/2hPhZL4K1dr7ToidHuDuUjpG3p9Kl/Z1+JsvhDXIdOvZc6ZeOI2Rv4WPRvbtX25BcrNHHJGwdJFDKw9KsryOuaWiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiq85KEtkADua+G/wBpPxw/inxhc21vcbrCxPkxxjoGGcv+IwPwrrf2SfAn9oajN4hv4f3NucRbx95vUfrX1yg+UY5FPQEZyKdRXN/EGLzvCesRkZBtH/ka/OC3LQ6irDhklA/Wv0j8F3IuPDOnyBt26BTmt2I5QfSnrS0UUUUUUUUUUUUh6GoUi+VlY5BrB8Y+GLHxNot3peowiSC5TYM9V9xX57eLdFuPC3iO90+dGjltpNnPbnII/DFfa/7O3jRPF3gO23Efa7ALbyL3IAwD+IGa9VT7o4x7U6iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiivMvj/4yXwj4BvpoZQl/OvlQD3Oef0r4Y0GxuvEniKGyjBkmvJACe+CeTX6D/Drw1b+FPCdjp1ugBijXeQPvE9f511iABQB0paKSvPvjL4wsvCXhPUJryRfMmt2jiiPV2OR/Wvz+hje91NEiQl5ZAVUepPSv0e8E2y2nhjS7fBDCFVbPY10a9KVaWiiiiiiiiiiiij1pKikxkE/w818tftfeBhH5HiewhAUgR3O0d8nB/UVxf7KPixtC8a/YJ5iLTUMRFCeN3Y/pX25FzGuDkYp9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFVXnIV8naFBJb0FfFH7Uvjg+IvGQ021lzYWC7BtPVj1P5itX9kfwa2oeJZddu4SYLZSsTEcFiCD/MV9hQKojCgcrVlPu0tFZuqajFp9pc3Ez7UhUuSa+E/jl8QLrxr4oc+aRYWRKRL2zk8j867X9mL4X/ANu6vD4l1SINp9q25FkH+tk9vYYNfYaRIibVUBR2p6jApy0tFFFFFFFFFFFFFGKaUU5yK5L4qaVb6v8AD7X7W6iWRPsjyYYd1BYH8xX5+eC72TTvEdlcRuVaOUBSO3NfpRpk3n2FvL/fQGrVFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFJTZCRGxHXFcH8ZvE8XhXwHqt8zkSbBGir1LEgYH55r4CDz6xq5wplmupv4uuSelfoB8G/CsfhPwTYWSKvmbdztjnJrtlTFSg8UmfakMgAyeK+cv2pviQum6f/YWlXA+0zDEuP4RXzp8LvB13428V2umwhmgd/MmkH8K9z+PSvv/AML6NZeH9ItNO0yARW1ugjUD0Hr78VsKc04dKVaWiiiiikJwCaa0qqD7U0SgkcHHr6U9G3EjGMU6iiikzSisHxwM+DtdGetlN/6A1fm9ph8rWYg3IWYdP96v0t8OP5mhWL+sSmtKiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiikNNcZRhntXyF+1/40+26vaeHLRv3VsfNnx3fkAfkRXJ/sv+Eh4i8eR3VwoeysR5smRxu4x/WvuKyBSFUxjA5FWKF6U1yQBj1rnfH/ia38KeGr7VLw4jiTj61+ePizWbnxL4gu9QnZnmuX3YJ6DPAr7H/Zn+H/8AwifhZdTu4vL1LUlDvnrGnYfjtz+NexLztKD5Dz/galiqQdKVaWiiiiiqOr30Wm6bc3lwwWKBC7Gvjrxp+0R4hl1q5/sWRY7RXKp7gV7D8BfjAPHEX9naqwj1WJdxA/jx3/Sva4XLNkD5SOfY1PRRR60lN3YzXOfEW48nwPrz+lnKP/HTX5w2beZq0JHeVf51+l/hddvh7Tx6QrWrRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRUUvU/SsDxvrieHPD2p6pcMAkEJYD1wDX54+JdVufEHiK+1Cdy891Nk993YAfhgV9rfs7+Df+EZ8B2clzBtvrtRI3HIU8gH869VhGJCPap6KjkYKOa+Sv2v/ABk9xqdv4ctHJgiUTS4P8XYf+PVw37Nngc+L/GkU1ygaw0/E0oPQn+EfiRX3VaxJHCqIoCqAAPTHFSqBTqWkpaKKKKKwPHWnSat4S1Wxg/1s8BVfr1/pX57eIvCer6RqUllcafcmYMd+xCQa99/ZM8B6pp2qz67qNu9tGV2IJBgkf5NfUsKgdOB6VLQOlLSdjSVC/wB41wvxzvRY/DHX5mOB5Oz8zj+tfBfgy2N34m0yIDO+dRX6WaZH5VhAn91AKtUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU3cBSF8DjmhXz2p1LRRRRRRRRRUUxwpIxkV83/teeNY7HTrTw5bPumuMvOAfur2/PmvC/gP4RbxX48sYZEY21q4mk44wOR+tfoFbxCOGNUARVUAKBTwmG3Z5p+aFqO4x5ZJOAOc1+evxy1Brz4i64+7cPOKD6A4/pX0b+xvpkEPgK5vxHtuZ7h0Zv7yjGP5177Co256E1IBS0UUUUUUUU2RA6Mp6GsyTQtPmO64tLeWXGN7xKSas29kkSFARs7KqhQPyqyq4xzkgYp1A6UtJ2NJiopAd3tXjv7V2om0+FN/b4GbmSNM56YcGvkf4TxeZ480JT0+0A/zr9HYWyqgDjFPU5zS0UUUUUUUUUUUUUUUUUUUUUUUUUUUUUVGVySc01lwOtEZHIzUoI9aCwHekDA9CDS5oyPWjI9aUUmR60ZHrQSAMk8UZHrWN4p1i30TSbm/unCRwRlyzHAFfnn8QPEt14q8T6hqV2xdp3Jjz2XnA/Wvq/8AZY8CLoHhRNXu4yt7fDf8wwQucAfpXukf3eKdRRkDqetZniO6S00W+mdwgjhZsk4xwa/N7xTeHUfEWp3DHd5lxJtPr8xr7e/Zs0wad8K9HJG0zr5pz3zivVU6cU6iiiiiiiiiiikoooHSlo9aSmsNwI9a8W/ax0qfUvhrK8CM32eRZGIGcDIr438HaqdJ8RaZeD/ljKHP51+jHhTWbfWtHgvbaaOWORAwZGyK2Y3DDIIxTsj1paKKKKKKKKKKKKKKKKKKKKKKKKKKKKKYXAJGKaXBGAKZhIyWZgKY95DGcPNEg/2zj+dVZNZ01XIN/agj/puv+NQv4m0ePiTVLNP+2yf40n/CU6H/ANBmx/7/AK/41Uu/Gmg27kSa5p6rjP8ArQT+lVU+JHhQuI/7ctGY/wC1WnaeLtBuv9Tq9m3/AG0FXY9Y09z8l/avnpiVT/WrIlWRcowZT3WhVBGN7fiKHcouOp6A184ftf8AjdbXSLbw3YT/AL+4bfPt7IM8H8xXg/wT8Inxd45060cF7dJN8vptBr790uxi060htoBtjhQIoq/GcpTqKiMhG7I6dDXif7UnjZNB8GPpdnOBfXx2YB5Vep/SvjPTlWfUYIn43ygFj9eTX6KfDu3is/BuiwW5V4YrdQCtdRF9wU6iiiiiiiiiiikoooHSlooorI8V6NBr+gXum3QzFcJsNfAfxT8Aah4K12e1uIH+xCQmKYDI25OK2vg58YNU8EXkcN1K1xphIBhPYe1fZfgPxvpHi/TkudKuUOVy0ZPKmuoHzHDcEelSrS0UUUUUUUUUUUUUUUUUUUUUUUUUU1ztUknGO9RCZuwyPWo5JSpBJQA+p61wvjj4s+GfCKyi91GN7lOPs8fzNn35r528Y/tK+IdSuni0G3hsbYHCFlEjP+BHFeYa98SPFmrysb3Wrnr91ZCB+QrnJ9a1GZsvfTlj1IkPNMWe/kBJmmf6sTTd17/dn/75NIY7x8kpOf8AgJpBb3Z6Rz/98mporm9tOj3MePqKsQ+ItUtnD2+oXUbjvvI/rXX+H/jR420Z18nWJZUUY2THcP1r1jwf+1JdLMkPiTTUaLoZom5/LAr3XRfiRoet6S97pupwSIse7DcMT6Yr4d+JOu3fiTxnql3fNudpnSNQP4QxCgfgK+oP2V/h6fDmhtrl/ERf3yjbk/dT6fjXu7JuIJ7VKnSkkJCEryaiSYlWJbBzxxXJ/EzxzYeCNCuL7UHA+XEafxO3oBXwt8SPGN/4016TVL+XAPCRr0RecY9a5UNKrjgr3BIxmvsL9k3xz/bGhzaHfz7ryyHybjyyf/WxX0HEdy570+iiiiiiiiimSMVjYjqKxPEGv2uh6ab3ULhIbVOGkbue2BWN4O+IWieL57hNEvkuDCPmQgAj+ddhBIzscjjHFTUDpS0UUUyVA8bKSQDXM+NPB+m+LNKlstVtklDDaHPBH418b/GP4P6h4Lvbi4sYGn0Zj+7lHzGP2PtXJeAvHOr+B79JtOkKxkYkU8gjPavr/wCDnxj0/wAbWv2e6dLfUIwMq3G/6V6tFKzZzgD37VNG2Qec+/rTlpaKKKKKKKKKKKKKKKKKKKKKKKKa/wBw1SvbyGytpbi7lSOCNSzMxwAPXNfI/wAavjze6pqN/pPhec2+mqfL+0R8PMMc89ueK8O0/TtU8Q3whsYZ725kO75AWP4/nXt/w5/Zu1nU2jufE0w0+1YZMa4LsPYjpXsWlfs6+BrEKZbS4umA/wCW0gIP6CuitPg34EgII8MWBI6FwSf510eneD9B09AtnpFrEo6BVFX/AOxNO/58Lf8A74FOTR9PUYFjbj/gAobRdOdSrWNuQf8AYFZd94G8N3uftOi2Umf7yVyuv/BDwTq8bBtGit3PRoTtxXnGvfstaVPE7aNqc8EvUCX5h/IV5B46+AvivwtC1xHANQth/Hb8n/vnk151p9zf6ZM/lSS2ksZ75BHqK9D+D+t+H5PGFmfFtukhdxslYdT/ALVfcekT2klrG1jIj2+MR7OgHtWiMUtMl4Q847Vh+ItctfD+mXupahKsVrapuZnOOfb1r4V+LvxCuvHniK4uJZXaxidltoiCoC54OO3vXYfAn4LXPiu5h1TWYmi0lDuw3/LQ+w9K9B/aJ+E9kPC41PQrJbeWxGGVD95fWvAfhJ4rbwf430vUA7JCjhJcfxKThv0r9CNGvIb3T4LiFw6SqHDDvnmr+4frilqJ7iNH2k/N6ChZkYcN3xjvTlkViwB6U4ciloopoYbiKZIVaNxnPHOK+V/2w/FpY6boVu524aSVVOMHjbmuV/ZALt8QJwSzIYuQDxnBr7RiGDg/nUtA6UtFFFIRkUm3gg81lappMepQT211DHLayDBRud1fLXxp+AE2mifV/CqNLaZLyW4PKH1HtXz/AGFzeaLfB7d5rS8hbI6g59MV9SfBf9oO3vki0vxhIIbvhVuSDtb6+lfRlpewXMCzQzJJG43KyHIP0NTR3EbPtDfN6elTUUUUUUUUUUUUUUUUUUUUUUUUVFO4SF2JAAGcnpXyT+0r8XHvZpfDehz4ijO25kQ8Mf7oPpXlHwm8CXfjvxHDZwQuLWM+ZcTL0Vfcnv2wK+2/BXgrRvDFnDbaNpkEaqoBl25cn1JPPPWuujj8sd2+tTjpS0UUUDrS0lNaoZkEqncQF9CoNeUfFH4M6J4vglkgtEtNRAJSaH5UB/2h3r498feDNU8Ga01nqcLowJMc3Zx6g167+z58Z5NGktND8QzB7NjsilPJX2NfW1hfRX0ENxayiSGQZBFXF5Bqtqd5Bp9jNdXcqQwQqXd36ACviT49/FafxjqrWdjK6aPbuVEQOBL1+Y+v0rN+BPw0uvG3iBZp4iNMhbMrN0YZ6CvuHQtPg0iwt7G0QJBGm1VAxin6pp0OoWlxbToHhmjKkGvz/wDjB4Wbwj4yvrDyysIfzIm9iT/hX0r+yj49XXPDJ0K9kJvbE4j3dXTrn9cV74vJGfSpK8K/aT+KNx4It7bT9IVf7Ruhv8w/wDkV8++EPjX4o07Wo7i9v5LiEv8AvFbocntX234S1ZdZ0Oyv412rPGG2+9ba5wM9aWiiopM59qy/EGrWmh6TeXl1MIo4oy5LV+e3xJ8UTeKvF2o6q7FkkcqFPZcnpX0d+yH4Lk0/TJtevEKyXIzFn+70r6Qj7+9PoHSlooooooqG4VXjKOAQ3GCMg14h8X/gRpnifzdR0gC0vurBBwxr5U8YeB9W8K6jNBqNtLC69GI+Vvoa7j4M/GLU/CF1Ba6nM9zozNsKMcmI+q5/r/hX2T4Z1mx12wt72wmjnjlAdZIzwR71v0UUUUUUUUUUUUUUUUUUUUUUVDI5D4GeBk188/tK/F0aFaS+HfD9zm/mXE0sbYMYPv618weEvDt/4s12LTrSF5ry5fBOM7B3Y+wzX3T8J/h/ZeCfD0NpDFH5uA0rgcyP6n19K7tSWVsetOQEVIBS4oxRijFJS0lGKAoHQU3ykznaM1wvxZ8Bab448PSWd5CguFGYZQvzIeehr4L8WaBqHhTX73TtQVormCTBK8d+or6e/ZP8ez6tBLol/KzvCv7vcck19ByTtCxdjiMcEep9vyr5Q/aQ+MB1SS58O+Hbk/Y0IWeVG4kOeg9q8m+FPgq+8c+ILeyt4y0CN++fsq/5Nfd3gPwpYeD9Dh07TUAWNQpIHU+tdJGvy8807AAIAr52/av8BPqui/2/Zx7p7QfPtHLL7185/CrxfP4H8YWWpxEiFDsnH95D1z+dfoD4b1u017S7TULGUSQXEYkRh6HtWvXz7+018LtQ8XS22r6OhluLePY0fqK8E8I/B7xNrOpxWc2nS2+1svIwIAAr7i8J6R/Y2hWFkTl7eIIfc1srnaM9cUMcDjqaill2c8kjggVGs2QwDYdeoznFcN47+Kvh/wAJQSm7v43uVXIgTk5r5O+K3xn1jxrJPaxSmDTG+XyU43j3qh8FvhvdeO/EEET27rpikNczgcBfQe9fdnh/SYNI061srSNUht0CIFGOK11HFLQOlLRRRRRRSYz1pFRRnCgVzHjfwlpfinSpbTVYI3Q8IxXJU+or4g+L/wAN9R8E6/NG0Tf2dK37ubHGOvNbfwC+K9z4J1eOwvJGk0a4YCRCeIz6ivtnTtQhu7eK4hlMkcqB0YHgitFDkA+tOHeloooooooooooooooooopKTd7V5t8d/HieBvB1zcI4F7cL5Vso6ljwfyBzXw/pFjqvjXxMkEG+4v76UlmPOCT/ACr7Z+DfwvsvAehRq8ccuqSqGuLkDnPovoBXpMOGjXI5qZFx06U7FFLRRRRRRRRRVW7O3GQSCMfSvnP9qz4ctqGm/wDCR6dFme2GJvVl9a+ePhT4rn8G+LbHUIyxiDgTKD/CTive/jb8dbGXQJtJ8LyyS3F5GPNnU8RA9h78187+EPDt74r1q3sLdXllmbdnH3R3Jr7p+EXw90/wPocSQRKLuRAZHxyTXdxpgAqABinRpgHmnY61lavYxatYXVnOoZJgY2U+lfBXxs8C3fgvxfPbzLm1nzJAyjAIyeP0r1P9lP4lLp8x8M6vN+4mbNu7HhD3X9a+sILtJow4yEPQ+tSFA3OajFqgbciohPUqOtSBCOM5FPHSmucYx61wHxk8Yv4K8J3mpRQtI/AXHrxivjfxZ8XfFfiiRxeatNDAf+WMRCr+fWuOjj1PW7ny4Irm8kJwAgLk/wA69p+Fv7POr649te+IR/Z9mrbmjcfO49Pavq/wv4T0/wAN6bDaaXDHCsY/hH3j710CJhcU4UuPeilooooooooqLyhhhwQeea5vx34VsfFGi3FlfwpJ5q7AxH3fcV8G/E/wbceB/EtzYuG2K37tyOq19B/snfEcX9jJ4X1aXEtqu+2dzy4z938OtfSELkABhnPOanBpaKKKKKKKKKKKKKKKKKKT1qMPgEse9fEf7UvjB9f8ZNYROGtLBfLCg8BsnJ/Wuw/Y28MebdX3iC5hCpEPIhZh98nkkfTbivqUg5jBBVB1PrUseccjmpl6UtFFFFFFFJQCKKWoJzhlBXKtxVLVtKh1LTLnTrn5re5jaNwfQjFfnx8UfCc3g7xVqmnTqUTdmPPdSciud0TTbnVb+Gyt43lmmICIvf619lfs8fCQeC7X+1dVBOrTAgq3SMY/+vXtUJJy55zwBU69PSlHejtVcJ+9Ljpjk1518bvh5B458NPCVH2+BS1vJjnPPH5V8N6jY3vhnV3gnZ7a8s5NqsOOc9f0r6w/Z1+MMXiGxj0bXZ1TUYhtjJ43ivfYT+7GWBz3FPFFFITisDxf4Z07xZo02n6mpktpOorzbSv2c/BNncCWS0lmA5CySsf0zXoWh+CNB0Iq2maTaRMvAZIlDD8cV0MSheFHGfripqF6Uq0tFFFFFFFFFFFQXGQykDdjqPavHv2j/h6PFfhe5vrKANqNshdCBy2O1fG3hnVbrw34jtbu0Z4ri1l3gdMkfwn64xX6BfDXxjaeMPDdlqNq4YyRgSf7Mg4ZfwINdTbsSWB7VNRRRRRRRRRRRRRRRRRRSdjXn3xi8Xp4R8HX987BLjG2Be5bnH518Fqs+ta8F3GW7upsbR3Ynj+dfoB8KfCsHhTwbpWmRx7XSMTSf9dG5b9WNdlT16UtFFFFFFFFQswDEHj6d6oS6nYwSGOW6hjfuGkGTVyORHiDq42H7rZyKsDpS0yQZjcZxkV83/tkeFUvPD9h4ghjzcWjeVKw/wCeZJx+prwz9n3UItO+JWktcASRTuIW9gf/ANVff9uR5aYHBGfpUtKtLRRUcoJGAcGvDPj/APB1PFlrLqmjxhdTjUt/v+1fH7DUfDmslCGt7y1k+6eNhHevpT4PftDxyNBpnixiGICJP2/Gvo/StRh1G1SayuEnjbkOh6ir6kdhzTx0ooopB3oXrT6KSlooooooooooopKjuEWSCRGXcGGCPWvhz9pjwK/hrxa2o2kZSzvTuGB0bn/Ct/8AZJ8cf2d4hn8P3soS3vBvjLH/AJaD/wDWa+wrUr5Yx1x+lT0UUUUUUUUUUUUUUUUUlITwa+Pf2wPE7XfiC10WKT93agtIoP8AEen5YrD/AGUfCMeveORqNzHug0wGQ56FiMD8iRX2xbrhiM5FT7aBxS0UUUUUUUVwHxq1+fw/4C1O9ssm4jCge2TivhDVvE2q6heSXNxqNx5zsWX94eOfavpX9kPxLq+tLqFrqV3LPBagbN5z1z/hX0wOnFLSMMqRXE/FvQo/EPgPWrCUsFkgLZXqCvzDH121+femXFxo2tRyx/u5YZgcjtzX6NeB9ZTW/D+n3kJVkkhBJHrXQYpRRRRTWQMMGo3jIhYbj0614r8avglZeMS+oaUUtNTUZYLwsvXr/wDWr5J8X+C9Z8J3jQarYSwgNgSAfK3uD2/Gul+Fnxf1jwTcojSPd2C8GJz0HtzX1l4E+MnhjxTZxMNQjtbsjmGQ4Ofxr0K21CC4j3QypKDyPLYGrAkG0E8ZoDN1GCKUOO9RvOA2ACTTkl/vIV/Wn7z2GRTDOBnPGPxp6vntTs0UtFFFFFFFFFFMkJEbEHnFec/G3wXH4v8ACN7B5e64ijMsTAchhzj9K+DreS78Pa7E674bmym5PTkHn+VfoR8K/FcfjHwbp2rxhEeWPEsan7jDqK7KiiiiiiiiiiiiiiiiimkgdaqX91Hb2dzK0gURxs+T2wDX52fFbXG1/wAZ6lfM4cPKwU+oB4NfVP7JvhhdI8ADUJYyLjUXMpJHVBgAfmte4xD0BqaiiiiiiiiiisTxRoVv4h0i60+8TMFwmxvX2NfM+sfsuXjaqzabqMQsSc4c/MBntXtnwh+G1p4D0iW3tyzTSn947dTXoyjAApaQ9DWffgzWt5Ey5RkYfpX5w+P0WHxfrcCDAjunUfgxr7P/AGW5pJvhdZmRiwVigb6Y/wAa9gooooopGztOOtQGEHgoCPU9ax/E/hnTvEenz2eq2cVxDIMEuoyPpXy98Tv2cb7TpJLvwkkl7bE58j+NPp1zXhGpaPqfh6/aK/s7i0mBwN2VIrd8L/E3xT4bkDafq8wVT9xyWB/OvV9B/an1q1jWPVNHt7vGAZBKVP8AKu20v9qbQJkH9pabd279/LG8fzFdFaftJeB5IiZZ7xG9DCP/AIqsbWP2nfDNs5/s+2uroY43LtGfzNcZqv7Vl/IzDTtEiiXsXkyf5VjW37UXilLrdNZ2kkGf9XgA/nivS/B37S/h7UIFj8QQTadcnqY/nXPucivY/DXjHQvEMKSaTqlvcgjojZP41vq6nowPapBRRRRRRRRRRRTW4U8Z9qg8ptjqeQecf0r4n/ai8G/2D4zkvbVNtneDzOBwrd/610/7HnjQ2us3nhm7mAhuQZYATwHH3sfXivrcSKc4YcU+iiiiiiiiiiiiiiiio5fu/pXNfEKf7F4O1ufONlq361+b5LTSs7HJya/SP4f6fFp/hHSLeAYjjgXH5Z/rXSIMDFOooooooooooooooooqpP8A6if/AHD/AFr83fiL/wAj14i/6/Jf/QzX2V+yl/ySaz/67P8AyWvY6KKKKKKKKguv9VyMjI7ZrE17w1pXiCDydS02C6iPUyAV5N4n/Zq8M6l5j6a8thIxJAQ/KPwxXn2pfsqapGzNZa7BIp+6piOR9TmuU1L9m7xras32eGC5Qdw4Gf1rnrn4KeNrfPmaJM3snNJp/wAFPG962F0SaIZxmTiuqsP2ZvGVygeVrWEHs7DP86df/szeLrWB5Eltpyv8KEZ/nXnniH4deJNAlZNQ0uYBRuyqkjH+RWb4d13UfDl3De2E8lvLG/3Q3X2I/Cvun4L+P4PHHhu1uTIovkXZNHnnPrXpIoooooooooooooryP9ozwWvinwXczRR5urRfMUjqQM8V8V+ENcuPCviG01K2yl1ZzB8Hvg/d/Sv0O8F61Br/AId07ULRwyXEIkBz3zhh+YNdCuNoxS0UUUUUUUUUUUUUUUyQZGDXI/FoZ+HfiH/r2P8AMV+cSu8ZIB5r9MfA8nm+FNLcHIMCfyrcpaKKKKKKKKKKKKKKKTsaztVnFrp99Ixxsid8/QE1+bfi64+2+J9WuQd32i6dx9CxNfdH7OulHSfhhpkbcedmZR7HA/pXp1FFFFFFFFIQCMGkCKOgFG0ZzRtFAUDtRsGKb5Keh/OnBAKRY1AIA61n6hpdndwyJcW0cgZDH8654P8A+uvij9of4eXPhbW5by1tgmlTNkMvIUnmsf4B+NLrwp4zsljlY2tzIInj7HJxn9a+/LeTzbeKT++ob8xU1FFFFFFFFFFFFVrqJJY3R1DKylSD3HpXwJ8f/CZ8K+Pr6KOHy7WZ/Oi9CCTwPyr3X9jnxS+o+Hr/AES6m3SWT74VPaM44/NjX0an3R9KdRRRRRRRRRRRRRRRTHOB+Nct8ToHuvAuuQRDMjQEAfr/AEr8472Bo7mRSMEHFfop8INRh1H4e6LLCxYeQFJx3FdnnnHelooooooooooooooopOxrjfitqSaX4D168kcqqWxXI9zt/rX55aVA97q8UYBZpHwB+Nfo74EsW07wrpFqwwYoAuBXR0UUUUUUUUUUUUUUUUUzby3ANeW/tL2Udx8ItckkQMYUEik/wnOP618O+DSV8SaWynB+0IP1r9LNI/5Btr/1xT+VW6KKKKKKKKKKKKhnVmB29R0rwL9rjwh/afhBNbt41M+nkAnuUPX+VeDfs4eJX0D4lacN5SC7JhlA6EYOB+YFffMJJiUt1xzT6KKKKKKKKKKKKKKKZIMrjv1qrfW6XVpcxOMpKhU/lX54fFzQX8P+NdStHXaqykoP9nJr6U/Y78RtqHhW90mVyTZv8mfQ4/xr6DTlz7YqWiiiiiiiiiiiiiiimSsVicjqBmvBf2vfEDad8P4bCEnGozCMkeg+b+a184/APSl1r4iaXbSKCm/J/MV+gtsgSNVUYVVAFTUUUUUUUUUUUUUUUUUUV5v+0Su74OeJva3/APZhXwZ4UbZ4h0o/9PC/zr9LtI/5Bdl/1xT/ANBq7RRRRRRRRRRRRTT1NY3i7SYta8O6hYTqGjnjKEH6V+eVzbyeG/HBhJKNZ3o59gc1+ifhm7/tHw9pt4f+W9ukn5gGtWiiiiiiiiiiiiiiikNNIG08CvkT9sjw79n1vTtXijwk6lJHA43dq5z9k3xPHonjl7C5l2Qainl8ngMOR+eMV9q2Rcn5j06+/p+lXKKKKKKKKKKKKKKKKZIcRuRzgV8qftsXAEnh+0384MoX2+YZrmP2PNL+2ePJ7pl+W2hLA+/FfaMZHCjoBmpKKKKKKKKKKKKKKKKKKK89/aAAPwe8U5/59f8A2YV8EeDgD4m0sHkfaF/mK/SzSv8AkGWf/XFP/Qau0UUUUUUUUUUUUYpjqCmOxr89fj/atYfFnxAuMAzq6/8AfC19p/Be7N78NvD824t/oqjk+gFdvF92n0UUUUUUUUUUUUUUmKMcEV5p8e/CI8W+Ar61RQJoB50TYydwzXwhbvc6FrEbxMYr21l3Z6YIOf6V99/BvxxbeNvCFjfRHE8aCGdWPIkHB/PBNd0sxbO1cke9Sody5FLRRRRRRRRRRRRUckmztk9aa0oZSFGSRxnivgb9ovxM/iP4kantm8y1s3EEPPQY5/Umvdf2Q/DZsPCsmqyJ+8vHJDYxhRkY/HivoK3BVsE54xViiiiiiiiiiiiiiiiiiivPvj8M/CDxQP8Ap1/9mFfA/g7/AJGbSv8Ar4T+dfpbpP8AyDbX/rin8quUUUUUUUUUUUUUVHMCYyAcE8Zr4W/astfs/wAULtv+eiq2fX5QP6V9Pfs3yGX4SaGT/ChWvTU4z9adRRRRRRRRRRRRRRRRVeZVlVkZcqeGBHWvjT9p74ay+H9XOv2EW6wumw+3+A//AF6534AfEQ+DvFCpfzsNNuiI3TtGezfhjFfcGm3cV5bxTwkPEyh0kB4YGtNCCoI6U6iiiiiiiiiiikyM4yM1DcEbecbe9eI/Hz4txeE9NvNK0m5WXWJlIGD/AKkev1r5C0WxufEviG1t4o2muLmUBmHJJLZJNfoR8O/Dg8MeFLDTYiD5UYBPv3rpYBhRnrUtFFFFFFFFFFFFFFFFFFef/Hzj4QeKP+vX/wBmFfA/g/8A5GfScf8APyn/AKFX6WaT/wAg21/64p/KrlFFFFFFFFFFFFFNft9a+M/2zLPyPG2nzhcedb7s+vJH9K99/Zq4+EejfRv516evenUUUUUUUUUUUUUUUUUVznjXw/a+JdHudNvow8M8ZUE/wt2P518B/ErwZf8AgzxRc2F3EdikvGezJng/rXtf7NnxlSxRfDnie5xbjatpM4+6e4J/KvqSylSSJZLdxLE43K2cjFW4WD5IPTg4qWiiiiiiiiiioRjLHHzDivI/j/8AFW38DaM1pYMkutXKkQoeRH6ufpXxjdLqfiTVS0pkvb66cfMeWJJ719Wfs7/B5fDgTWtYXN8y/KhH3a+gE6DjHtTx3paKKKKKKKKKKKKKKKKKK87/AGg/+SO+Kf8Ar1/9mFfB3gf/AJGzSP8Ar6j/APQq/SvS/wDkHW3/AFyX+VWqKKKKKKKKKKKKKRjhSa+Tv224f+Jh4fn7eUU/VjXpH7KWqC++F9nApybaR1b25OP5V7PGcjnrin0UUUUUUUUUUUUUUUUVHIm4dvxrzf4x/Da08b6Dcq0arqCLuhmHXPofavifxr4O1nwdqE9tqEDxxFhtkUfK2Dxg16D8HPjpqnhGZLHVle+0rhcE/NGPXNfXvhPxTp3iPSor/SLiOWBlydrdD6EetbyXBYqCNpIzz3qwKKKKKKKKZK+xc4yKj8xi6YZdp7HrXHfEvxxp/gXQbi+1OVQ7giOMH5nbsAK+EPG3im+8Y+JLi+uPmlmYiJBzsXPAHvX0x+zP8J/7Js4te12DNzKu6GN/4B64r6HiQL0GO3FTKOKUDFLRRRRRRRRRRRRRRRRRRXnf7Qf/ACR3xT/16/8Aswr4O8Df8jfoo7G6j/8AQq/SzTv+PC3/AOuS/wAqs0UUUUUUUUUUUUU1hlSK+YP22IA1joc3OVYj/wBCqT9ifUWbSfEFg5GFljdB36NmvpqPlcnqRT6KKKKKKKKKKKKKKKKKYyknINDBvLYDBPvXMeLfCOm+J9OnstRsonjkXG9gMg+oPb8K+NvjN8Hb/wAD30txZJJc6QzZRxyR9awPhp8QdS8DaxFeWkzG1BzNbE5VvYCvuH4beLrLxr4ei1TT5AVc4dT1jb0rsF6Cloooooopkv3Dnp3rm/F/iOz8MaJc6lduAkAB5/T+VfCPxR8d6h498QS3l7KVt42xBFk4VcnoPX616F+zx8JZ/EGsRa1qtq8OnW7AoG6SHFfZMFskW1YwAijaoHRRU4AFOXpS0UUUUUUUUUUUUUUUUUUV5z+0Kf8Aiz3ib3tv/ZhXwh4JwPFmjN6XMf8A6FX6V6Zzp9sf+mS/yq1RRRRRRRRRRRRRTXr50/bStmfwjpU6qSEuME+nBrg/2Mrt4/GN9ag/JJAzEe4x/jX2OncU6iiiiiiiiiiiiiiiiiiiisPxFo8GuWVxZ3kKSwyDZhh0461+fXxR0iLSfGWsWdsmyG1naIe/J/wr6e/Y0lZ/AV4h6Lctj8hX0FS0UUUUUVHN92vGv2o9Ju734ZXj2LMDbyLLJj+JRnivinQLhLfWrV7oboxKu4H0zX6OeBY7QeGNOewiRLd4EddvfKgmt4gg8dKfSp0paKKKKKKKKKKKKKKKKKKK84/aH/5I94l/69//AGYV8H+Df+Ro0j/r5T/0Kv0s0n/kHWv/AFxT+VW6KKKKKKKKKKKKKa3Tj1rxn9qy0S4+Fl/LIMtAUdPrvA/ka8D/AGSL37P8S44s/wCuiZf5V9xJ606iiiiiiiiiiiiiiiiiiiisvW70WNheXLttWCMyZ/Cvzm+IertrXi7Vr4MSk07sP++jX17+yjok2k/DuC4mBX7c5lVT6cc/pXt46UtFFFFFFRT/AHOOvasbxXpcereHL7TpIw6TREFT3r83tdszp2r38DjDRTMmPxr7j/Zh1xtZ+GNl5sheS3JiJPoCQP5V60vSjFKvelooooooooooooooooooorzj9of/AJI94l/69/8A2YV8H+Dv+Rn0j/r5T+Yr9K9J/wCQba/9cU/lVyiiiiiiiiiiiiikNeR/tRgf8Km1L6r/AOhCvmX9l0Mfi1pgUnABJ/SvvNCQKdn3p1FFFFFFFFFFFFFFFFFFFeQftMeKk8O/D28jSQrc3mIEA+oJ/TNfGPgXRZfEvi3T9NiAYTzYbPpnrX6JeHdKi0rSLOxt0CpbII1HbFbQGBgUtFFFFFFNYZFRrG3y5xkDBr8/f2gdF/sf4n6zCqhUeTzV9CCOte5/sYarG/h3UdNLHzUl3ge3P+NfR4ceZjB571LQO9LRRRRRRRRRRRRRRRRRRRXm/wC0QwX4P+JM97fH/jwr4Q8FjPijSB6XK/zFfpZpf/IMs/8Arin8hVuiiiiiiiiiiiiikY4BPpXkX7UrY+E2p/8AAf8A0IV85/sl25m+KsDDH7uB2/UV9zIQQcduKXFPooooooooooooooooooor43/bH1/7d4ttNIjc+XZRAsvq5z/Rqj/Y98OC78X3WqzoCtpGVXP94kf4V9gwgsTu43dKtAcAUtFFFFFFFFfJP7Z3h0R6npeuouFlX7O5HcjJH864/wDZS8QjSPiAlpK+IrxTHj34/wAK+34WVkXHQjipqB3paKKKKKKKKKKKKKKKKKKK8x/aSbb8HvEPvEB+tfDfgNN/ivSf+vlP5iv0n0wY0+1/65J/KrdFFFFFFFFFFFFFNf7jV5D+1P8A8km1T/gH/oQrwn9jeASfES4k/uWr/wA1r7Sh+5n15p9LRRRRRRRRRRRRRRRRRTX+6aglm8vexICKMkn0r86vi5q7678QvEF+zEq9x8vPoAv9K+qv2RtEOnfDtryVNst3IWyRzgE17ngelLRRRRRRRRRXlH7Q3hoa78OdXCrueBBcLx0IOTj8BXxF4Svzpev6feISrxTA8HnrX6RaJcLe6dZ3CH5WjBrRoHeloooooooooooooooooooryz9phtvwg1z3QD9a+Jfh2u7xfpC+t1H/AOhV+kunjFjbD/pmv8qsUUUUUUUUUUUUUU1uleQ/tRkn4T6sV6goP/HhXif7GA/4rjUD/wBOzfzFfY8R9OlSUtFFFFFFFFFFFFFFFFFNb7p4rnvGouD4b1IWXNyYHEaj+IkHFfnrZ6Je6v4qNiVZbma5KOMcj5uTX6E+ANFXQPCmm6ao/wBRAqlgOpxya6SiiiiiiiiiisfxFbfb9JvrFwoN1E8QOfVSK+DH+GfiKHxnLYrpczeXcnB2/KVDcHNfd/hCym07QdPtJjuaKIKze9bdA70tFFFFFFFFFFFFFFFFFFFeefHjQbrxD8NdVsNPXfcuoKr64r5E+FHw91+68d6Wr6fNGsM6ySM4wAAea++LZPLt4k/uqB+lTUUUUUUUUUUUUUUyT7h5x71zPxC8LQeL/DF5pFzIYkuFAMirkrg5zj8K83+C3wZm+HuvXt8dRF0kqmJQV2kLnr9eK9sgG1MZz71JS0UUUUUUUUUUUUUUUUUjfdNUZ42CqkakyMcgkcAelYdl4J0OyvpL6HTIPtbHcX2859a6O3B44IAHOasUUUUUUUUUUVUeEOGJQsc5we1M8gB1cRJg8H5eRTrZXUKckIecVboHeloooooooooooooooooooqOZNyY7VTgsYoW3Rwop6KVXnHvV9elLRRRRRRRRRRRRRTWGRg01e4xxTMMWOAPxFPjBGcjFPpaKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK/9k=',
134
- }
135
- this.$emit('click', readData)
136
- }
137
- }
138
- </script>
139
-
140
- <style scoped>
141
-
142
- </style>
@@ -1,292 +0,0 @@
1
- <!--
2
- - @author: lvcy
3
- - @date: 2023-02-07
4
- - @description:scanner-high-camera-component
5
- -->
6
- <template>
7
- <div class="scanner-high-camera-component">
8
- <div class="scanner-result-content">
9
- <div class="content-main flex-1">
10
- <div class="load-success" v-if="loadSuccess">
11
- <img id="photo" :src="scannerResultSrc"/>
12
- </div>
13
- <div class="load-error" v-else>
14
- <i class="el-icon-s-cooperation"></i>
15
- <p>请先安装插件</p>
16
- </div>
17
- </div>
18
- <div class="handle-action">
19
- <el-select v-model="camera" @change="selectChange" size="small" class="select">
20
- <el-option v-for="item in cameras" :key="item.value" :label="item.name" :value="item.value">
21
- </el-option>
22
- </el-select>
23
- <template
24
- v-for="item in buttonList"
25
- >
26
- <el-button
27
- :key="item.name"
28
- type="primary"
29
- size="small"
30
- @click="handleAction(item.name)"
31
- >{{ item.label }}</el-button>
32
- </template>
33
- </div>
34
- </div>
35
- </div>
36
- </template>
37
-
38
- <script lang="ts">
39
- import {Component, Vue} from "vue-property-decorator";
40
-
41
-
42
- const BEGIN_DATA = 'data:image/jpeg;base64,';
43
-
44
- @Component({
45
- name: "scanner-high-camera-component"
46
- })
47
- export default class ScannerHighCameraComponent extends Vue {
48
- totalTimeLength: number = 0;
49
- timeLength: string = '';
50
- timer: number = 0;
51
- str1: string = '';
52
- str2: string = '';
53
- webSocket: any;
54
-
55
- scannerResultSrc = '';
56
-
57
- loadSuccess = true;
58
-
59
- camera = 0;
60
-
61
- cameras = [
62
- {name: '文档', value: 0},
63
- {name: '照片', value: 1}
64
- ]
65
-
66
-
67
-
68
- buttonList = [
69
- // {label: '启动主', name: 'start-main'},
70
- // {label: '旋转启动主', name: 'rotation'},
71
- // {label: '启动副', name: 'start-vice'},
72
- // {label: '停止', name: 'stop'},
73
- // {label: '自动对焦', name: 'autofocus'},
74
- // {label: '去黑边', name: 'Black edge'},
75
- // {label: 'Base64', name: 'base64'},
76
- // {label: '开始录屏', name: 'start-record'},
77
- // {label: '停止录屏', name: 'stop-record'},
78
- {label: '拍照', name: 'take-pictures'},
79
- // {label: '设置去灰底', name: ''},
80
- // {label: 'FILTER设置', name: ''},
81
- // {label: 'PIN设置', name: ''},
82
- // {label: '自动寻边', name: ''},
83
- // {label: '身份证自动寻边', name: ''},
84
- // {label: 'vSetExposure', name: ''},
85
- // {label: 'vSetBrightness', name: ''},
86
- // {label: 'vSetContrast', name: ''},
87
- // {label: '设置分辨率', name: ''},
88
- ]
89
-
90
- mounted () {
91
- this.webSocket = new WebSocket('ws://127.0.0.1:1818');
92
-
93
- window.onbeforeunload = () => {
94
- this.webSocket.send("bStopPlay()");
95
- this.webSocket.send("bStopPlay4()");
96
- };
97
-
98
-
99
- this.webSocket.onerror = (event) => {
100
- this.onError(event);
101
- };
102
-
103
- this.webSocket.onopen = (event) => {
104
- this.onOpen(event);
105
- };
106
-
107
- this.webSocket.onclose = (event) => {
108
- this.onClose(event);
109
- this.webSocket.send("bStopPlay()");
110
- };
111
-
112
- this.webSocket.onmessage = (event) => {
113
- this.onMessage(event)
114
- }
115
-
116
- setTimeout(() => {
117
- this.handleAction('start-main')
118
- }, 800)
119
-
120
- }
121
-
122
- destroyed () {
123
- this.handleAction('stop');
124
- this.webSocket.close();
125
- }
126
-
127
- selectChange(val) {
128
- let handleName = val === 1 ? 'start-vice' : 'start-main';
129
- this.handleAction(handleName);
130
- }
131
-
132
- handleAction(name) {
133
- switch (name) {
134
- case 'start-main':
135
- this.StartPlay_onclick()
136
- break;
137
- case 'rotation':
138
- this.start('bStartPlayRotate(90)');
139
- break;
140
- case 'start-vice':
141
- this.start('bStartPlay2');
142
- break;
143
- case 'stop':
144
- this.start('bStopPlay');
145
- break;
146
- case 'autofocus':
147
- this.start('AutoFocus');
148
- break;
149
- case 'Black edge':
150
- this.start('vSetDelHBFlag(true)');
151
- break;
152
- case 'base64':
153
- this.start('sGetBase64');
154
- break;
155
- case 'start-record':
156
- this.start('bStartRec(d:\\test.avi)');
157
- break;
158
- case 'stop-record':
159
- this.start('bStopRec');
160
- break;
161
- case 'take-pictures':
162
- this.start('bSaveJPG(D:\\,Photo)');
163
- this.$emit('send-scanner-result', this.scannerResultSrc);
164
- break;
165
-
166
- }
167
- }
168
-
169
- timeGo() {
170
- this.totalTimeLength++;
171
- let Hour: number = 0,
172
- Minue: number = 0,
173
- Second: number = 0;
174
- Hour = Math.floor(this.totalTimeLength / 3600);
175
- Minue = Math.floor((this.totalTimeLength / 60) % 60);
176
- Second = Math.floor(this.totalTimeLength % 60);
177
- this.timeLength = Hour + "时" + Minue + "分" + Second + "秒";
178
- }
179
-
180
- onMessage(event) {
181
- if (event.data.indexOf('BarCodeTransferBegin') >= 0) {
182
- console.log(event.data.replace('BarCodeTransferBegin', '').replace('BarCodeTransferEnd', ''));
183
- } else if (event.data.indexOf('BeginbSaveJPG') >= 0) {
184
- this.str1 = event.data.replace('BeginbSaveJPG', '').replace('EndbSaveJPG', '');
185
- console.log(this.str1);
186
- } else if (event.data.indexOf('BeginbStopPlay') >= 0) {
187
- console.log(event.data);
188
- console.log(event.data.replace('BeginbStopPlay', '').replace('EndbStopPlay', ''));
189
- } else if (event.data.indexOf('BeginvSetResolution') >= 0) {
190
- console.log(event.data.replace('BeginvSetResolution', '').replace('EndvSetResolution', ''));
191
- } else if (event.data.indexOf('BeginvSetRemoveGBFlag') >= 0) {
192
- console.log(event.data.replace('BeginvSetRemoveGBFlag', '').replace('EndvSetRemoveGBFlag', ''));
193
- } else if (event.data.indexOf('BeginbFileExist') >= 0) {
194
- console.log(event.data.replace('BeginbFileExist', '').replace('EndbFileExist', ''));
195
- } else if (event.data.indexOf('BeginbStartPlay2') >= 0) {
196
- console.log(event.data.replace('BeginbStartPlay2', '').replace('EndbStartPlay2', ''));
197
- } else if (event.data.indexOf('BeginbStartPlay') >= 0) {
198
- console.log(event.data.replace('BeginbStartPlay', '').replace('EndbStartPlay', ''));
199
- } else if (event.data.indexOf('BeginbSetMode') >= 0) {
200
- console.log(event.data.replace('BeginbSetMode', '').replace('EndbSetMode', ''));
201
- } else {
202
- this.scannerResultSrc = `${BEGIN_DATA}${event.data}`;
203
- this.$emit('send-scanner-result', this.scannerResultSrc);
204
- }
205
- }
206
-
207
- onError(event) {
208
- console.log('error', event.data);
209
- this.loadSuccess = false;
210
- }
211
- onClose(event) {
212
- this.webSocket.send("bStopPlay()");
213
- this.webSocket.send("bStopPlay4()");
214
- }
215
- onOpen(event) {
216
-
217
- }
218
-
219
- start(el) {
220
- if (el == 'bStartRec(d:\\test.avi)') {
221
- this.timer = window.setInterval(this.timeGo, 1000);
222
- }
223
- if (el == 'bStopRec') {
224
- window.clearInterval(this.timer);
225
- this.totalTimeLength = 0;
226
- console.log("录屏结束");
227
- }
228
- this.webSocket.send(el);
229
- return false;
230
- }
231
-
232
- vout_OnClick() {
233
-
234
- }
235
-
236
-
237
- Stop_onclick() {
238
- this.webSocket.send("bStopPlay()");
239
- }
240
-
241
- StartPlay_onclick() {
242
- this.webSocket.send("vSetResolution(8)");
243
- this.webSocket.send("bStartPlay()");
244
- // this.loadSuccess = true
245
- }
246
- }
247
- </script>
248
-
249
- <style scoped lang="scss">
250
- .scanner-high-camera-component {
251
- height: 100%;
252
- .scanner-result-content {
253
- height: 100%;
254
- display: flex;
255
- flex-direction: column;
256
- .content-main {
257
- flex: 1;
258
- background-color: #F7F7F7;
259
- }
260
-
261
- .load-success,
262
- .load-error {
263
- height: 100%;
264
- display: flex;
265
- flex-direction: column;
266
- justify-content: center;
267
- align-items: center;
268
- text-align: center;
269
- }
270
-
271
- .load-error {
272
- color: #999999;
273
- i {
274
- font-size: 88px;
275
- }
276
- p {
277
- font-size: 16px;
278
-
279
- line-height: 30px;
280
- }
281
- }
282
-
283
- .handle-action {
284
- margin: 10px 0;
285
- .select {
286
- margin-right: 15px;
287
- }
288
- }
289
-
290
- }
291
- }
292
- </style>