@idscan/onboarding 2.0.19 → 2.0.20
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.
- package/LICENSE.txt +202 -202
- package/dist/js/wrapper.js +1 -1
- package/dist/networks/{130-bd8e-chunk.js → 130.f9cf8b7f.js} +0 -0
- package/dist/networks/215.d4dcf9f8.js +1 -0
- package/dist/networks/{400-bc2f-chunk.js → 400.c10b35da.js} +0 -0
- package/dist/networks/716.0ae8557d.js +1 -0
- package/dist/networks/{Face-e893-chunk.js → Face.caf8a3ec.js} +0 -0
- package/dist/networks/{MRZ-f8b7-chunk.js → MRZ.4736053a.js} +0 -0
- package/dist/networks/{PDF-a795-chunk.js → PDF.e3b27d00.js} +0 -0
- package/dist/networks/{ZXing-c4dc-chunk.js → ZXing.ccc17251.js} +0 -0
- package/dist/networks/asyncLoader.9bf3066b.js +1 -0
- package/dist/networks/cdnLoader.edab76a1.js +1 -0
- package/package.json +2 -2
- package/readme.md +255 -0
- package/dist/networks/215-741c-chunk.js +0 -1
- package/dist/networks/716-6f4b-chunk.js +0 -1
- package/dist/networks/asyncLoader-87ca-chunk.js +0 -1
- package/dist/networks/cdnLoader-c56e-chunk.js +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@idscan/onboarding",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.20",
|
|
4
4
|
"description": "Wrapper of the IDVC library for DVS Online.",
|
|
5
5
|
"main": "dist/js/wrapper.js",
|
|
6
6
|
"files": [
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"patch": "npm version patch"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@idscan/idvc2": "2.3
|
|
17
|
+
"@idscan/idvc2": "2.2.3",
|
|
18
18
|
"core-js": "^3.19.1",
|
|
19
19
|
"regenerator-runtime": "^0.13.9"
|
|
20
20
|
},
|
package/readme.md
ADDED
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
## Overview
|
|
2
|
+
|
|
3
|
+
Wrapper of the IDVC library for DVS Online.
|
|
4
|
+
|
|
5
|
+
## Use cases
|
|
6
|
+
|
|
7
|
+
- Capture and determination of the document type
|
|
8
|
+
- Capture of pdf417
|
|
9
|
+
- Capture of MRZ
|
|
10
|
+
- Capture of faces
|
|
11
|
+
|
|
12
|
+
## Recommendations
|
|
13
|
+
|
|
14
|
+
Use a modern phone with a good camera having the definition of not less than 8 megapixels.
|
|
15
|
+
The capture must be made in a well-lighted room. A document must be located at the uniform background.
|
|
16
|
+
|
|
17
|
+
## Limitations
|
|
18
|
+
|
|
19
|
+
This component works in phones with the operating system Android in the browser Chrome (minimum version 52) and in phones with the operating system iOS (minimum version 11) in the browser Safari
|
|
20
|
+
|
|
21
|
+
## Installation
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
$ npm install @idscan/onboarding
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
This component contains JS, CSS files which require the mandatory import into your project.
|
|
28
|
+
|
|
29
|
+
1. Before importing it is necessary to set the webpack-configuration.
|
|
30
|
+
|
|
31
|
+
*Note: The project must use the webpack 4 and later versions.*
|
|
32
|
+
|
|
33
|
+
1.1. Add the following rules of loading to the field rules
|
|
34
|
+
```javascript
|
|
35
|
+
{
|
|
36
|
+
test: /\.css$/,
|
|
37
|
+
use: ["style-loader", "css-loader"]
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
1.2. If you prefer to use neural networks from your domain, you should add the 'CopyWebpackPlugin' into the section 'plugins' which will copy the files, which are necessary for the work of the neural network, from the folder to another folder that should be selected by you.
|
|
42
|
+
|
|
43
|
+
*Note: The structure inside the folder of the component 'networks' must be saved on the server with due regard to the nesting.
|
|
44
|
+
There are binary files in the folder which do not have the extension. These files must be provided by the server with the header `Content-Type: application/octet-stream`.*
|
|
45
|
+
```javascript
|
|
46
|
+
new CopyWebpackPlugin ([
|
|
47
|
+
{
|
|
48
|
+
from: 'node_modules/@idscan/onboarding/dist/networks/**/*',
|
|
49
|
+
to: 'networks/[folder]/[name].[ext]',
|
|
50
|
+
toType: 'template'
|
|
51
|
+
}
|
|
52
|
+
])
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
1.3. Import the library and css to your project.
|
|
56
|
+
|
|
57
|
+
```javascript
|
|
58
|
+
import DVSOIDVC from '@idscan/onboarding';
|
|
59
|
+
import '@idscan/onboarding/dist/css/onboarding.css';
|
|
60
|
+
```
|
|
61
|
+
## Initialization
|
|
62
|
+
|
|
63
|
+
Create an instance of the object 'DVS Online IDVC library wrapper'. The object takes one object of the component configuration as a parameter.
|
|
64
|
+
|
|
65
|
+
All configurations of @idscan/IDVC will be fetched from DVS Online by domainId.
|
|
66
|
+
|
|
67
|
+
Available fields:
|
|
68
|
+
|
|
69
|
+
**el** (string) - id of an element on the page where the component will be integrated. Required.
|
|
70
|
+
|
|
71
|
+
**applicantId** (string) - id of applicant. Required
|
|
72
|
+
|
|
73
|
+
**domainId** (string) - domain id where from will get configs and styles. Required
|
|
74
|
+
|
|
75
|
+
**publicKey** (string) - DVS Web API Public Key. Required
|
|
76
|
+
|
|
77
|
+
**callbacks** (object) - object with callback hooks. Available next hooks:
|
|
78
|
+
|
|
79
|
+
- **onChange** - callback-function which will be called after change one step. The returnable value is the object with the type and the image
|
|
80
|
+
|
|
81
|
+
- **onCameraError** - The function that is invoked in case if the camera is not available. The response value is the object with the error code and the message
|
|
82
|
+
|
|
83
|
+
- **onReset** - callback-function which will be called after reset all the steps. The returnable value is the object with the steps
|
|
84
|
+
|
|
85
|
+
- **onRetakeHook** - the function that will be called before reset the current step. The returnable value is the object with the current step
|
|
86
|
+
|
|
87
|
+
- **onValidate** - the function that will be called after validation response received. The returnable value is the object with validation information
|
|
88
|
+
|
|
89
|
+
- **onError** - the function that will be called on error. The response value is the object with the error code and the message
|
|
90
|
+
|
|
91
|
+
- **onMounted** - the function that will be called on the component mounted. This function doesn't return a value.
|
|
92
|
+
|
|
93
|
+
- **submit** - callback-function which will be called after completing all the steps. The returnable value is the object with the following content:
|
|
94
|
+
```javascript
|
|
95
|
+
documentTypes: [
|
|
96
|
+
{
|
|
97
|
+
type: "ID",
|
|
98
|
+
steps:[
|
|
99
|
+
{ type: 'front', name: 'Document Front', mode: { uploader: true, video: true } },
|
|
100
|
+
{ type: 'pdf', name: 'Document PDF417 Barcode' , mode: { uploader: true, video: true } },
|
|
101
|
+
{ type: 'face', name: 'Face', mode: { uploader: false, video: true } }
|
|
102
|
+
]},
|
|
103
|
+
{
|
|
104
|
+
type: "Passport",
|
|
105
|
+
steps:[
|
|
106
|
+
{ type: 'mrz', name: 'Passport Front' , mode: { uploader: true, video: true } },
|
|
107
|
+
{ type: 'face', name: 'Face', mode: { uploader: false, video: true } }
|
|
108
|
+
]},
|
|
109
|
+
]
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
steps – steps with the type and the image in the format 'base64'.
|
|
113
|
+
|
|
114
|
+
Also, if you use automatic capture, in the "back" step **trackstring** will be returned (raw PDF417 data from Barcode encoded in base64)
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
*Note: Request an license key for the library by emailing
|
|
118
|
+
[sales@idscan.net](mailto:sales@idscan.net) or [support@idscan.net](mailto:support@idscan.net)*
|
|
119
|
+
|
|
120
|
+
## Methods
|
|
121
|
+
|
|
122
|
+
**setApplicant** (string) - the method that reinitialize wrapper for new applicant. Parameter is an applicant id of string type.
|
|
123
|
+
```javascript
|
|
124
|
+
import DVSOIDVC from './Wrapper';
|
|
125
|
+
|
|
126
|
+
const lib = new DVSOIDVC({
|
|
127
|
+
applicantId: '...',
|
|
128
|
+
domainId: '...',
|
|
129
|
+
publicKey: '...',
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
const btn = document.getElementById('btn');
|
|
133
|
+
btn.addEventListener('click', () => {
|
|
134
|
+
const applicantId = 'new applicant id';
|
|
135
|
+
lib.setApplicant(applicantId);
|
|
136
|
+
});
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**updateConfig** (string) - the method that reinitialize wrapper with new config. Parameter is an JSON encoded IDVC config. Works only in demo mode.
|
|
140
|
+
|
|
141
|
+
## Version history
|
|
142
|
+
- **2.0.18**
|
|
143
|
+
- Updated IDVC component
|
|
144
|
+
|
|
145
|
+
- **2.0.17**
|
|
146
|
+
- Some improvements
|
|
147
|
+
|
|
148
|
+
- **2.0.16**
|
|
149
|
+
- Some improvements
|
|
150
|
+
|
|
151
|
+
- **2.0.15**
|
|
152
|
+
- Some improvements
|
|
153
|
+
|
|
154
|
+
- **2.0.14**
|
|
155
|
+
- Some improvements
|
|
156
|
+
|
|
157
|
+
- **2.0.13**
|
|
158
|
+
- Updated IDVC component
|
|
159
|
+
|
|
160
|
+
- **2.0.12**
|
|
161
|
+
- Updated IDVC component
|
|
162
|
+
|
|
163
|
+
- **2.0.11**
|
|
164
|
+
- Updated IDVC component
|
|
165
|
+
|
|
166
|
+
- **2.0.10**
|
|
167
|
+
- Updated IDVC component
|
|
168
|
+
|
|
169
|
+
- **2.0.9**
|
|
170
|
+
- Updated IDVC component
|
|
171
|
+
|
|
172
|
+
- **2.0.8**
|
|
173
|
+
- Some improvements
|
|
174
|
+
|
|
175
|
+
- **2.0.7**
|
|
176
|
+
- Fixed background
|
|
177
|
+
|
|
178
|
+
- **2.0.6**
|
|
179
|
+
- Added version 1 config support
|
|
180
|
+
|
|
181
|
+
- **2.0.5**
|
|
182
|
+
- Updated IDVC component
|
|
183
|
+
- Fixed submit method
|
|
184
|
+
|
|
185
|
+
- **2.0.4**
|
|
186
|
+
- Updated IDVC component
|
|
187
|
+
|
|
188
|
+
- **2.0.3**
|
|
189
|
+
- Some improvements
|
|
190
|
+
|
|
191
|
+
- **2.0.2**
|
|
192
|
+
- Updated IDVC component
|
|
193
|
+
|
|
194
|
+
- **2.0.1**
|
|
195
|
+
- Added consent form
|
|
196
|
+
|
|
197
|
+
- **2.0.0**
|
|
198
|
+
- Migrate to the IDVC version 2
|
|
199
|
+
|
|
200
|
+
- **1.0.18**
|
|
201
|
+
- Fixed spinner
|
|
202
|
+
|
|
203
|
+
- **1.0.17**
|
|
204
|
+
- Fixed license key
|
|
205
|
+
|
|
206
|
+
- **1.0.16**
|
|
207
|
+
- Added sign for forced closing of the request
|
|
208
|
+
|
|
209
|
+
- **1.0.15**
|
|
210
|
+
- updated IDVC component
|
|
211
|
+
|
|
212
|
+
- **1.0.14**
|
|
213
|
+
- updated IDVC component
|
|
214
|
+
|
|
215
|
+
- **1.0.13**
|
|
216
|
+
- added ids for style tags
|
|
217
|
+
|
|
218
|
+
- **1.0.12**
|
|
219
|
+
- updated IDVC component
|
|
220
|
+
|
|
221
|
+
- **1.0.11**
|
|
222
|
+
- updated using DVS Online API
|
|
223
|
+
|
|
224
|
+
- **1.0.10**
|
|
225
|
+
- added: onMounted callback
|
|
226
|
+
|
|
227
|
+
- **1.0.9**
|
|
228
|
+
- @idscan/idvc dependency updated
|
|
229
|
+
|
|
230
|
+
- **1.0.8**
|
|
231
|
+
- added: reload component with new configs in demo mode
|
|
232
|
+
|
|
233
|
+
- **1.0.7**
|
|
234
|
+
- updated using DVS Online API
|
|
235
|
+
|
|
236
|
+
- **1.0.6**
|
|
237
|
+
- updated using DVS Online API
|
|
238
|
+
|
|
239
|
+
- **1.0.5**
|
|
240
|
+
- updated IDVC component
|
|
241
|
+
- updated using DVS Online API
|
|
242
|
+
|
|
243
|
+
- **1.0.4**
|
|
244
|
+
- use CDN
|
|
245
|
+
|
|
246
|
+
- **1.0.3**
|
|
247
|
+
- Changed readme
|
|
248
|
+
|
|
249
|
+
- **1.0.2**
|
|
250
|
+
- Some improvements
|
|
251
|
+
|
|
252
|
+
- **1.0.1**
|
|
253
|
+
- Changed readme
|
|
254
|
+
|
|
255
|
+
- **1.0.0**
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const t=(t,e)=>t-e,e=(t,e)=>t+e,r=(t,e)=>t%e>1?t-1:-1,n=(t,e)=>(t+1)%e>=0?t+1:-1,s=(e,n)=>r(t(e,n),n),a=(e,r)=>n(t(e,r),r),o=(t,n)=>r(e(t,n),n),c=(t,r)=>n(e(t,r),r),h=(h,l)=>[s,t,a,n,c,e,o,r].map((t=>t(h,l))),i=(t,e)=>{const r=[],n=[],s=t.length;let a,o=0;const c=()=>{const a=e=>e>0&&0!==t[e]&&e<s;for(;r.length;){const s=r.pop();if(!s)break;t[s]=0,n[o].add(s),h(s,e).forEach((t=>{a(t)&&r.push(t)}))}};for(a=0;a<s;a+=1)0!==t[a]&&(n[o]=new Set,r.push(a),c(),o+=1);return n},l=.3,d=(t,e)=>Math.floor(t/e),u=(t,e)=>{return[(r=t,n=e,r%n),d(t,e)];var r,n},g=t=>null!=t,m=(t,e,r)=>{const n=((t,e=120)=>{const r=t.width*t.height,n=new Array(r).fill(0);let s,a=0,o=0,c=0,h=0;for(s=0;s<r;s+=1){const r=s<<2;a=t.data[r+0],o=t.data[r+1],c=t.data[r+2],h=.299*a+.587*o+.114*c,h<e&&(n[s]=1)}return n})(t);return(({segments:t,width:e,scaleWidth:r,scaleHeight:n})=>t.map((t=>{let s=Number.MAX_VALUE,a=Number.MAX_VALUE,o=Number.MIN_VALUE,c=Number.MIN_VALUE;for(const r of t){const t=u(r,e);t[0]<s&&(s=t[0]),t[1]<a&&(a=t[1]),t[0]>o&&(o=t[0]),t[1]>c&&(c=t[1])}const h=(o-s)*(c-a);return h>5&&h<500?{perimeter:h,x1:Math.trunc(s/l/r),y1:Math.trunc(a/l/n),x2:Math.trunc(o/l/r),y2:Math.trunc(c/l/n)}:null})).filter(g))({segments:i(n,t.width),width:t.width,scaleWidth:e,scaleHeight:r})};onmessage=({data:t})=>{const e=m(t.iData,t.resizedToBorderScaleWidth,t.resizedToBorderScaleHeight);postMessage({segments:e})};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var A;const g=(A="file:///home/vsts/work/1/s/src/core/blurCore.js",function(g){var I,B,C;g=g||{},I||(I=void 0!==g?g:{}),I.ready=new Promise((function(A,g){B=A,C=g}));var Q,E=Object.assign({},I),i="object"==typeof window,n="function"==typeof importScripts,r="";(i||n)&&(n?r=self.location.href:"undefined"!=typeof document&&document.currentScript&&(r=document.currentScript.src),A&&(r=A),r=0!==r.indexOf("blob:")?r.substr(0,r.replace(/[?#].*/,"").lastIndexOf("/")+1):"",n&&(Q=A=>{try{var g=new XMLHttpRequest;return g.open("GET",A,!1),g.responseType="arraybuffer",g.send(null),new Uint8Array(g.response)}catch(g){if(A=yA(A))return A;throw g}}));var o,t=I.printErr||console.warn.bind(console);Object.assign(I,E),E=null,I.wasmBinary&&(o=I.wasmBinary),I.noExitRuntime,"object"!=typeof WebAssembly&&U("no native wasm support detected");var e,a,c,D,s,y,f,h,w,N,u=!1,l="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function F(){var A=e.buffer;a=A,I.HEAP8=c=new Int8Array(A),I.HEAP16=s=new Int16Array(A),I.HEAP32=f=new Int32Array(A),I.HEAPU8=D=new Uint8Array(A),I.HEAPU16=y=new Uint16Array(A),I.HEAPU32=h=new Uint32Array(A),I.HEAPF32=w=new Float32Array(A),I.HEAPF64=N=new Float64Array(A)}var R,d=[],Y=[],G=[];function M(){var A=I.preRun.shift();d.unshift(A)}var H=0,p=null,k=null;function U(A){throw I.onAbort&&I.onAbort(A),t(A="Aborted("+A+")"),u=!0,A=new WebAssembly.RuntimeError(A+". Build with -sASSERTIONS for more info."),C(A),A}var J,S="data:application/octet-stream;base64,";if(!(J="data:application/octet-stream;base64,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cHRlbjo6bWVtb3J5X3ZpZXc8dWludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGNoYXI+AHN0ZDo6YmFzaWNfc3RyaW5nPHVuc2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHNpZ25lZCBjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1bnNpZ25lZCBsb25nPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxkb3VibGU+AC4ATjEyX0dMT0JBTF9fTl8xMjhEZXRlY3RvckltcGxNYW5XaXRob3V0T3BlbkN2RQBONGJsdXI4RGV0ZWN0b3JFAEHQDwviBugNAAAgCAAAoA0AAKANAABOU3QzX18yMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQAABA4AAOAHAABmaWlpaQAAACAIAABpaQBOU3QzX18yMTJiYXNpY19zdHJpbmdJaE5TXzExY2hhcl90cmFpdHNJaEVFTlNfOWFsbG9jYXRvckloRUVFRQAAAAQOAAA3CAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSXdOU18xMWNoYXJfdHJhaXRzSXdFRU5TXzlhbGxvY2F0b3JJd0VFRUUAAAQOAACACAAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURzTlNfMTFjaGFyX3RyYWl0c0lEc0VFTlNfOWFsbG9jYXRvcklEc0VFRUUAAAAEDgAAyAgAAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0lEaU5TXzExY2hhcl90cmFpdHNJRGlFRU5TXzlhbGxvY2F0b3JJRGlFRUVFAAAABA4AABQJAABOMTBlbXNjcmlwdGVuM3ZhbEUAAAQOAABgCQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJY0VFAAAEDgAAfAkAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWFFRQAABA4AAKQJAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0loRUUAAAQOAADMCQAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJc0VFAAAEDgAA9AkAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXRFRQAABA4AABwKAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lpRUUAAAQOAABECgAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJakVFAAAEDgAAbAoAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWxFRQAABA4AAJQKAABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0ltRUUAAAQOAAC8CgAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAAAEDgAA5AoAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWRFRQAABA4AAAwLAEHAFgvIATAwMDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5AEGUGAv+BgoAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFAMqaO04xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAAAAACwOAAA4DAAAjA8AAE4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQAAACwOAABoDAAAXAwAAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQAAACwOAACYDAAAXAwAAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FACwOAADIDAAAvAwAAAAAAAA8DQAADAAAAA0AAAAOAAAADwAAABAAAABOMTBfX2N4eGFiaXYxMjNfX2Z1bmRhbWVudGFsX3R5cGVfaW5mb0UALA4AABQNAABcDAAAdgAAAAANAABIDQAAYgAAAAANAABUDQAAYwAAAAANAABgDQAAaAAAAAANAABsDQAAYQAAAAANAAB4DQAAcwAAAAANAACEDQAAdAAAAAANAACQDQAAaQAAAAANAACcDQAAagAAAAANAACoDQAAbAAAAAANAAC0DQAAbQAAAAANAADADQAAeAAAAAANAADMDQAAeQAAAAANAADYDQAAZgAAAAANAADkDQAAZAAAAAANAADwDQAAAAAAAIwMAAAMAAAAEQAAAA4AAAAPAAAAEgAAABMAAAAUAAAAFQAAAAAAAAB0DgAADAAAABYAAAAOAAAADwAAABIAAAAXAAAAGAAAABkAAABOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0UAAAAALA4AAEwOAACMDAAAAAAAAOQOAAABAAAAGgAAABsAAAAAAAAADA8AAAEAAAAcAAAAHQAAAAAAAADMDgAAAQAAAB4AAAAfAAAAU3Q5ZXhjZXB0aW9uAAAAAAQOAAC8DgAAU3Q5YmFkX2FsbG9jAAAAACwOAADUDgAAzA4AAFN0MjBiYWRfYXJyYXlfbmV3X2xlbmd0aAAAAAAsDgAA8A4AAOQOAAAAAAAAPA8AAAIAAAAgAAAAIQAAAFN0MTFsb2dpY19lcnJvcgAsDgAALA8AAMwOAAAAAAAAcA8AAAIAAAAiAAAAIQAAAFN0MTJsZW5ndGhfZXJyb3IAAAAALA4AAFwPAAA8DwAAU3Q5dHlwZV9pbmZvAAAAAAQOAAB8DwBBmB8LJ7APAAADAAAABAAAAAUAAAAEDgAAswcAACwOAACEBwAAqA8AANARUA==").startsWith(S)){var b=J;J=I.locateFile?I.locateFile(b,r):r+b}function m(){var A=J;try{if(A==J&&o)return new Uint8Array(o);var g=yA(A);if(g)return g;if(Q)return Q(A);throw"both async and sync fetching of the wasm failed"}catch(A){U(A)}}function W(A){for(;0<A.length;)A.shift()(I)}function L(A){this.C=A-24,this.K=function(A){h[this.C+4>>2]=A},this.H=function(A){h[this.C+8>>2]=A},this.I=function(){f[this.C>>2]=0},this.G=function(){c[this.C+12>>0]=0},this.J=function(){c[this.C+13>>0]=0},this.D=function(A,g){this.F(),this.K(A),this.H(g),this.I(),this.G(),this.J()},this.F=function(){h[this.C+16>>2]=0}}function v(A){switch(A){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+A)}}var K=void 0;function X(A){for(var g="";D[A];)g+=K[D[A++]];return g}var T={},x={},j={};function Z(A){if(void 0===A)return"_unknown";var g=(A=A.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=g&&57>=g?"_"+A:A}function V(A,g){return A=Z(A),new Function("body","return function "+A+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(g)}function q(A){var g=Error,I=V(A,(function(g){this.name=A,this.message=g,void 0!==(g=Error(g).stack)&&(this.stack=this.toString()+"\n"+g.replace(/^Error(:[^\n]*)?\n/,""))}));return I.prototype=Object.create(g.prototype),I.prototype.constructor=I,I.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},I}var O=void 0;function z(A){throw new O(A)}var P=void 0;function _(A,g,I={}){if(!("argPackAdvance"in g))throw new TypeError("registerType registeredInstance requires argPackAdvance");var B=g.name;if(A||z('type "'+B+'" must have a positive integer typeid pointer'),x.hasOwnProperty(A)){if(I.M)return;z("Cannot register type '"+B+"' twice")}x[A]=g,delete j[A],T.hasOwnProperty(A)&&(g=T[A],delete T[A],g.forEach((A=>A())))}var $=[],AA=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function gA(A){return this.fromWireType(f[A>>2])}function IA(A,g){switch(g){case 2:return function(A){return this.fromWireType(w[A>>2])};case 3:return function(A){return this.fromWireType(N[A>>3])};default:throw new TypeError("Unknown float type: "+A)}}function BA(A){for(;A.length;){var g=A.pop();A.pop()(g)}}var CA=void 0;function QA(A){var g=X(A=wA(A));return uA(A),g}function EA(A,g,I){switch(g){case 0:return I?function(A){return c[A]}:function(A){return D[A]};case 1:return I?function(A){return s[A>>1]}:function(A){return y[A>>1]};case 2:return I?function(A){return f[A>>2]}:function(A){return h[A>>2]};default:throw new TypeError("Unknown integer type: "+A)}}var iA="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function nA(A,g){for(var I=A>>1,B=I+g/2;!(I>=B)&&y[I];)++I;if(32<(I<<=1)-A&&iA)return iA.decode(D.subarray(A,I));for(I="",B=0;!(B>=g/2);++B){var C=s[A+2*B>>1];if(0==C)break;I+=String.fromCharCode(C)}return I}function rA(A,g,I){if(void 0===I&&(I=2147483647),2>I)return 0;var B=g;I=(I-=2)<2*A.length?I/2:A.length;for(var C=0;C<I;++C)s[g>>1]=A.charCodeAt(C),g+=2;return s[g>>1]=0,g-B}function oA(A){return 2*A.length}function tA(A,g){for(var I=0,B="";!(I>=g/4);){var C=f[A+4*I>>2];if(0==C)break;++I,65536<=C?(C-=65536,B+=String.fromCharCode(55296|C>>10,56320|1023&C)):B+=String.fromCharCode(C)}return B}function eA(A,g,I){if(void 0===I&&(I=2147483647),4>I)return 0;var B=g;I=B+I-4;for(var C=0;C<A.length;++C){var Q=A.charCodeAt(C);if(55296<=Q&&57343>=Q&&(Q=65536+((1023&Q)<<10)|1023&A.charCodeAt(++C)),f[g>>2]=Q,(g+=4)+4>I)break}return f[g>>2]=0,g-B}function aA(A){for(var g=0,I=0;I<A.length;++I){var B=A.charCodeAt(I);55296<=B&&57343>=B&&++I,g+=4}return g}for(var cA=Array(256),DA=0;256>DA;++DA)cA[DA]=String.fromCharCode(DA);K=cA,O=I.BindingError=q("BindingError"),P=I.InternalError=q("InternalError"),I.count_emval_handles=function(){for(var A=0,g=5;g<AA.length;++g)void 0!==AA[g]&&++A;return A},I.get_first_emval=function(){for(var A=5;A<AA.length;++A)if(void 0!==AA[A])return AA[A];return null},CA=I.UnboundTypeError=q("UnboundTypeError");var sA="function"==typeof atob?atob:function(A){var g="",I=0;A=A.replace(/[^A-Za-z0-9\+\/=]/g,"");do{var B="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(A.charAt(I++)),C="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(A.charAt(I++)),Q="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(A.charAt(I++)),E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(A.charAt(I++));B=B<<2|C>>4,C=(15&C)<<4|Q>>2;var i=(3&Q)<<6|E;g+=String.fromCharCode(B),64!==Q&&(g+=String.fromCharCode(C)),64!==E&&(g+=String.fromCharCode(i))}while(I<A.length);return g};function yA(A){if(A.startsWith(S)){try{var g=sA(A.slice(S.length)),I=new Uint8Array(g.length);for(A=0;A<g.length;++A)I[A]=g.charCodeAt(A)}catch(A){throw Error("Converting base64 string to bytes failed.")}return I}}var fA={h:function(A){return hA(A+24)+24},g:function(A,g,I){throw new L(A).D(g,I),A},i:function(){},n:function(A,g,I,B,C){var Q=v(I);_(A,{name:g=X(g),fromWireType:function(A){return!!A},toWireType:function(A,g){return g?B:C},argPackAdvance:8,readValueFromPointer:function(A){if(1===I)var B=c;else if(2===I)B=s;else{if(4!==I)throw new TypeError("Unknown boolean type size: "+g);B=f}return this.fromWireType(B[A>>Q])},B:null})},m:function(A,g){_(A,{name:g=X(g),fromWireType:function(A){A||z("Cannot use deleted val. handle = "+A);var g=AA[A].value;return 4<A&&0==--AA[A].N&&(AA[A]=void 0,$.push(A)),g},toWireType:function(A,g){return(A=>{switch(A){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var g=$.length?$.pop():AA.length;return AA[g]={N:1,value:A},g}})(g)},argPackAdvance:8,readValueFromPointer:gA,B:null})},f:function(A,g,I){I=v(I),_(A,{name:g=X(g),fromWireType:function(A){return A},toWireType:function(A,g){return g},argPackAdvance:8,readValueFromPointer:IA(g,I),B:null})},e:function(A,g,B,C,Q,E){var i=function(A,g){for(var I=[],B=0;B<A;B++)I.push(h[g+4*B>>2]);return I}(g,B);A=X(A),Q=function(A,g){var B=(A=X(A)).includes("j")?function(A,g){var B=[];return function(){if(B.length=0,Object.assign(B,arguments),A.includes("j")){var C=I["dynCall_"+A];C=B&&B.length?C.apply(null,[g].concat(B)):C.call(null,g)}else C=R.get(g).apply(null,B);return C}}(A,g):R.get(g);return"function"!=typeof B&&z("unknown function pointer with signature "+A+": "+g),B}(C,Q),function(A,g,B){I.hasOwnProperty(A)?((void 0===B||void 0!==I[A].A&&void 0!==I[A].A[B])&&z("Cannot register public name '"+A+"' twice"),function(A,g){var B=I;if(void 0===B[A].A){var C=B[A];B[A]=function(){return B[A].A.hasOwnProperty(arguments.length)||z("Function '"+g+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+B[A].A+")!"),B[A].A[arguments.length].apply(this,arguments)},B[A].A=[],B[A].A[C.L]=C}}(A,A),I.hasOwnProperty(B)&&z("Cannot register multiple overloads of a function with the same number of arguments ("+B+")!"),I[A].A[B]=g):(I[A]=g,void 0!==B&&(I[A].P=B))}(A,(function(){!function(A,g){var I=[],B={};throw g.forEach((function A(g){B[g]||x[g]||(j[g]?j[g].forEach(A):(I.push(g),B[g]=!0))})),new CA(A+": "+I.map(QA).join([", "]))}("Cannot call "+A+" due to unbound types",i)}),g-1),function(A,g){function I(A){if((A=g(A)).length!==B.length)throw new P("Mismatched type converter count");for(var I=0;I<B.length;++I)_(B[I],A[I])}var B=[];B.forEach((function(g){j[g]=A}));var C=Array(A.length),Q=[],E=0;A.forEach(((A,g)=>{x.hasOwnProperty(A)?C[g]=x[A]:(Q.push(A),T.hasOwnProperty(A)||(T[A]=[]),T[A].push((()=>{C[g]=x[A],++E===Q.length&&I(C)})))})),0===Q.length&&I(C)}(i,(function(B){var C=A,i=A;B=[B[0],null].concat(B.slice(1));var n=Q,r=B.length;2>r&&z("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var o=null!==B[1]&&!1,t=!1,e=1;e<B.length;++e)if(null!==B[e]&&void 0===B[e].B){t=!0;break}var a="void"!==B[0].name,c="",D="";for(e=0;e<r-2;++e)c+=(0!==e?", ":"")+"arg"+e,D+=(0!==e?", ":"")+"arg"+e+"Wired";i="return function "+Z(i)+"("+c+") {\nif (arguments.length !== "+(r-2)+") {\nthrowBindingError('function "+i+" called with ' + arguments.length + ' arguments, expected "+(r-2)+" args!');\n}\n",t&&(i+="var destructors = [];\n");var s=t?"destructors":"null";for(c="throwBindingError invoker fn runDestructors retType classParam".split(" "),n=[z,n,E,BA,B[0],B[1]],o&&(i+="var thisWired = classParam.toWireType("+s+", this);\n"),e=0;e<r-2;++e)i+="var arg"+e+"Wired = argType"+e+".toWireType("+s+", arg"+e+"); // "+B[e+2].name+"\n",c.push("argType"+e),n.push(B[e+2]);if(o&&(D="thisWired"+(0<D.length?", ":"")+D),i+=(a?"var rv = ":"")+"invoker(fn"+(0<D.length?", ":"")+D+");\n",t)i+="runDestructors(destructors);\n";else for(e=o?1:2;e<B.length;++e)r=1===e?"thisWired":"arg"+(e-2)+"Wired",null!==B[e].B&&(i+=r+"_dtor("+r+"); // "+B[e].name+"\n",c.push(r+"_dtor"),n.push(B[e].B));if(a&&(i+="var ret = retType.fromWireType(rv);\nreturn ret;\n"),c.push(i+"}\n"),B=function(A){var g=Function;if(!(g instanceof Function))throw new TypeError("new_ called with constructor type "+typeof g+" which is not a function");var I=V(g.name||"unknownFunctionName",(function(){}));return I.prototype=g.prototype,I=new I,(A=g.apply(I,A))instanceof Object?A:I}(c).apply(null,n),e=g-1,!I.hasOwnProperty(C))throw new P("Replacing nonexistant public symbol");return void 0!==I[C].A&&void 0!==e?I[C].A[e]=B:(I[C]=B,I[C].L=e),[]}))},b:function(A,g,I,B,C){g=X(g),-1===C&&(C=4294967295),C=v(I);var Q=A=>A;if(0===B){var E=32-8*I;Q=A=>A<<E>>>E}I=g.includes("unsigned")?function(A,g){return g>>>0}:function(A,g){return g},_(A,{name:g,fromWireType:Q,toWireType:I,argPackAdvance:8,readValueFromPointer:EA(g,C,0!==B),B:null})},a:function(A,g,I){function B(A){var g=h;return new C(a,g[1+(A>>=2)],g[A])}var C=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][g];_(A,{name:I=X(I),fromWireType:B,argPackAdvance:8,readValueFromPointer:B},{M:!0})},d:function(A,g){var I="std::string"===(g=X(g));_(A,{name:g,fromWireType:function(A){var g=h[A>>2],B=A+4;if(I)for(var C=B,Q=0;Q<=g;++Q){var E=B+Q;if(Q==g||0==D[E]){if(C){var i=C,n=D,r=i+(E-C);for(C=i;n[C]&&!(C>=r);)++C;if(16<C-i&&n.buffer&&l)i=l.decode(n.subarray(i,C));else{for(r="";i<C;){var o=n[i++];if(128&o){var t=63&n[i++];if(192==(224&o))r+=String.fromCharCode((31&o)<<6|t);else{var e=63&n[i++];65536>(o=224==(240&o)?(15&o)<<12|t<<6|e:(7&o)<<18|t<<12|e<<6|63&n[i++])?r+=String.fromCharCode(o):(o-=65536,r+=String.fromCharCode(55296|o>>10,56320|1023&o))}}else r+=String.fromCharCode(o)}i=r}}else i="";if(void 0===a)var a=i;else a+=String.fromCharCode(0),a+=i;C=E+1}}else{for(a=Array(g),Q=0;Q<g;++Q)a[Q]=String.fromCharCode(D[B+Q]);a=a.join("")}return uA(A),a},toWireType:function(A,g){g instanceof ArrayBuffer&&(g=new Uint8Array(g));var B,C,Q="string"==typeof g;if(Q||g instanceof Uint8Array||g instanceof Uint8ClampedArray||g instanceof Int8Array||z("Cannot pass non-string to std::string"),I&&Q)for(B=C=0;B<g.length;++B){var E=g.charCodeAt(B);127>=E?C++:2047>=E?C+=2:55296<=E&&57343>=E?(C+=4,++B):C+=3}else C=g.length;if(E=(C=hA(4+(B=C)+1))+4,h[C>>2]=B,I&&Q){if(Q=E,E=B+1,B=D,0<E){E=Q+E-1;for(var i=0;i<g.length;++i){var n=g.charCodeAt(i);if(55296<=n&&57343>=n&&(n=65536+((1023&n)<<10)|1023&g.charCodeAt(++i)),127>=n){if(Q>=E)break;B[Q++]=n}else{if(2047>=n){if(Q+1>=E)break;B[Q++]=192|n>>6}else{if(65535>=n){if(Q+2>=E)break;B[Q++]=224|n>>12}else{if(Q+3>=E)break;B[Q++]=240|n>>18,B[Q++]=128|n>>12&63}B[Q++]=128|n>>6&63}B[Q++]=128|63&n}}B[Q]=0}}else if(Q)for(Q=0;Q<B;++Q)255<(i=g.charCodeAt(Q))&&(uA(E),z("String has UTF-16 code units that do not fit in 8 bits")),D[E+Q]=i;else for(Q=0;Q<B;++Q)D[E+Q]=g[Q];return null!==A&&A.push(uA,C),C},argPackAdvance:8,readValueFromPointer:gA,B:function(A){uA(A)}})},c:function(A,g,I){if(I=X(I),2===g)var B=nA,C=rA,Q=oA,E=()=>y,i=1;else 4===g&&(B=tA,C=eA,Q=aA,E=()=>h,i=2);_(A,{name:I,fromWireType:function(A){for(var I,C=h[A>>2],Q=E(),n=A+4,r=0;r<=C;++r){var o=A+4+r*g;r!=C&&0!=Q[o>>i]||(n=B(n,o-n),void 0===I?I=n:(I+=String.fromCharCode(0),I+=n),n=o+g)}return uA(A),I},toWireType:function(A,B){"string"!=typeof B&&z("Cannot pass non-string to C++ string type "+I);var E=Q(B),n=hA(4+E+g);return h[n>>2]=E>>i,C(B,n+4,E+g),null!==A&&A.push(uA,n),n},argPackAdvance:8,readValueFromPointer:gA,B:function(A){uA(A)}})},l:function(A,g){_(A,{O:!0,name:g=X(g),argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},k:function(){U("")},j:function(A){var g=D.length;if(33554432<(A>>>=0))return!1;for(var I=1;4>=I;I*=2){var B=g*(1+.2/I);B=Math.min(B,A+100663296);var C=Math;B=Math.max(A,B),C=C.min.call(C,33554432,B+(65536-B%65536)%65536);A:{try{e.grow(C-a.byteLength+65535>>>16),F();var Q=1;break A}catch(A){}Q=void 0}if(Q)return!0}return!1}};!function(){function A(A){I.asm=A.exports,e=I.asm.o,F(),R=I.asm.q,Y.unshift(I.asm.p),H--,I.monitorRunDependencies&&I.monitorRunDependencies(H),0==H&&(null!==p&&(clearInterval(p),p=null),k&&(A=k,k=null,A()))}function g(g){A(g.instance)}function B(A){return(o||!i&&!n||"function"!=typeof fetch?Promise.resolve().then((function(){return m()})):fetch(J,{credentials:"same-origin"}).then((function(A){if(!A.ok)throw"failed to load wasm binary file at '"+J+"'";return A.arrayBuffer()})).catch((function(){return m()}))).then((function(A){return WebAssembly.instantiate(A,Q)})).then((function(A){return A})).then(A,(function(A){t("failed to asynchronously prepare wasm: "+A),U(A)}))}var Q={a:fA};if(H++,I.monitorRunDependencies&&I.monitorRunDependencies(H),I.instantiateWasm)try{return I.instantiateWasm(Q,A)}catch(A){t("Module.instantiateWasm callback failed with error: "+A),C(A)}(o||"function"!=typeof WebAssembly.instantiateStreaming||J.startsWith(S)||"function"!=typeof fetch?B(g):fetch(J,{credentials:"same-origin"}).then((function(A){return WebAssembly.instantiateStreaming(A,Q).then(g,(function(A){return t("wasm streaming compile failed: "+A),t("falling back to ArrayBuffer instantiation"),B(g)}))}))).catch(C)}(),I.___wasm_call_ctors=function(){return(I.___wasm_call_ctors=I.asm.p).apply(null,arguments)};var hA=I._malloc=function(){return(hA=I._malloc=I.asm.r).apply(null,arguments)},wA=I.___getTypeName=function(){return(wA=I.___getTypeName=I.asm.s).apply(null,arguments)};I.__embind_initialize_bindings=function(){return(I.__embind_initialize_bindings=I.asm.t).apply(null,arguments)};var NA,uA=I._free=function(){return(uA=I._free=I.asm.u).apply(null,arguments)};function lA(){function A(){if(!NA&&(NA=!0,I.calledRun=!0,!u)){if(W(Y),B(I),I.onRuntimeInitialized&&I.onRuntimeInitialized(),I.postRun)for("function"==typeof I.postRun&&(I.postRun=[I.postRun]);I.postRun.length;){var A=I.postRun.shift();G.unshift(A)}W(G)}}if(!(0<H)){if(I.preRun)for("function"==typeof I.preRun&&(I.preRun=[I.preRun]);I.preRun.length;)M();W(d),0<H||(I.setStatus?(I.setStatus("Running..."),setTimeout((function(){setTimeout((function(){I.setStatus("")}),1),A()}),1)):A())}}if(I.___cxa_is_pointer_type=function(){return(I.___cxa_is_pointer_type=I.asm.v).apply(null,arguments)},k=function A(){NA||lA(),NA||(k=A)},I.preInit)for("function"==typeof I.preInit&&(I.preInit=[I.preInit]);0<I.preInit.length;)I.preInit.pop()();return lA(),g.ready});let I=null,B=null,C=!1;onmessage=({data:A})=>{"drop"!==A.fn?I?I.then((A=>postMessage({blurConfidence:A}))):B||!1!==C?C?postMessage({blurConfidence:1}):I=Promise.resolve(B.BlurAnalyticDetectWASM(A.iData.data,A.iData.width,A.iData.height)).then((A=>{postMessage({blurConfidence:A})})):(C=!0,g().then((A=>{B=A,C=!1}))):I=null};
|