@react-three/drei 9.73.3 → 9.74.0

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/core/Facemesh.js CHANGED
@@ -1,27 +1,68 @@
1
1
  import * as React from 'react';
2
2
  import * as THREE from 'three';
3
+ import { DEG2RAD } from 'three/src/math/MathUtils';
3
4
  import { useThree } from '@react-three/fiber';
4
5
  import { Line } from './Line.js';
5
6
 
6
7
  /* eslint react-hooks/exhaustive-deps: 1 */
7
8
  const defaultLookAt = new THREE.Vector3(0, 0, -1);
9
+
10
+ const normal = function () {
11
+ const a = new THREE.Vector3();
12
+ const b = new THREE.Vector3();
13
+ const c = new THREE.Vector3();
14
+ const ab = new THREE.Vector3();
15
+ const ac = new THREE.Vector3();
16
+ return function (v1, v2, v3, v) {
17
+ a.copy(v1);
18
+ b.copy(v2);
19
+ c.copy(v3);
20
+ ab.copy(b).sub(a);
21
+ ac.copy(c).sub(a);
22
+ return v.crossVectors(ac, ab).normalize();
23
+ };
24
+ }();
25
+
26
+ function mean(v1, v2) {
27
+ return v1.clone().add(v2).multiplyScalar(0.5);
28
+ }
29
+
8
30
  const Facemesh = /*#__PURE__*/React.forwardRef(({
9
- face = FacemeshDatas.SAMPLE_FACE,
31
+ points = FacemeshDatas.SAMPLE_FACELANDMARKER_RESULT.faceLandmarks[0],
32
+ face,
33
+ facialTransformationMatrix,
34
+ faceBlendshapes,
35
+ offset,
36
+ offsetScalar = 80,
10
37
  width,
11
38
  height,
12
39
  depth = 1,
13
- verticalTri = [159, 386, 200],
40
+ verticalTri = [159, 386, 152],
14
41
  origin,
42
+ eyes = true,
43
+ eyesAsOrigin = false,
15
44
  debug = false,
16
45
  children,
17
46
  ...props
18
47
  }, fref) => {
19
- var _meshRef$current3, _meshRef$current3$geo, _meshRef$current4;
48
+ var _meshRef$current3;
49
+
50
+ if (face) {
51
+ points = face.keypoints;
52
+ console.warn('Facemesh `face` prop is deprecated: use `points` instead');
53
+ }
20
54
 
55
+ const offsetRef = React.useRef(null);
56
+ const scaleRef = React.useRef(null);
57
+ const originRef = React.useRef(null);
21
58
  const outerRef = React.useRef(null);
22
59
  const meshRef = React.useRef(null);
60
+ const eyeRightRef = React.useRef(null);
61
+ const eyeLeftRef = React.useRef(null);
23
62
  const [sightDir] = React.useState(() => new THREE.Vector3());
63
+ const [transform] = React.useState(() => new THREE.Object3D());
24
64
  const [sightDirQuaternion] = React.useState(() => new THREE.Quaternion());
65
+ const [_origin] = React.useState(() => new THREE.Vector3());
25
66
  const {
26
67
  invalidate
27
68
  } = useThree();
@@ -30,79 +71,279 @@ const Facemesh = /*#__PURE__*/React.forwardRef(({
30
71
 
31
72
  (_meshRef$current = meshRef.current) == null ? void 0 : _meshRef$current.geometry.setIndex(FacemeshDatas.TRIANGULATION);
32
73
  }, []);
33
- const [a] = React.useState(() => new THREE.Vector3());
34
- const [b] = React.useState(() => new THREE.Vector3());
35
- const [c] = React.useState(() => new THREE.Vector3());
36
- const [ab] = React.useState(() => new THREE.Vector3());
37
- const [ac] = React.useState(() => new THREE.Vector3());
38
74
  const [bboxSize] = React.useState(() => new THREE.Vector3());
39
75
  React.useEffect(() => {
40
- var _meshRef$current2, _outerRef$current, _geometry$boundingBox;
76
+ var _meshRef$current2, _outerRef$current;
41
77
 
42
- const geometry = (_meshRef$current2 = meshRef.current) == null ? void 0 : _meshRef$current2.geometry;
43
- if (!geometry) return;
44
- geometry.setFromPoints(face.keypoints); //
45
- // A. compute sightDir vector (normal to verticalTri)
78
+ const faceGeometry = (_meshRef$current2 = meshRef.current) == null ? void 0 : _meshRef$current2.geometry;
79
+ if (!faceGeometry) return;
80
+ faceGeometry.setFromPoints(points);
81
+ faceGeometry.setDrawRange(0, FacemeshDatas.TRIANGULATION.length); //
82
+ // A. compute sightDir vector
83
+ //
84
+ // - either from `facialTransformationMatrix` if available
85
+ // - or from `verticalTri`
46
86
  //
47
87
 
48
- a.copy(face.keypoints[verticalTri[0]]);
49
- b.copy(face.keypoints[verticalTri[1]]);
50
- c.copy(face.keypoints[verticalTri[2]]);
51
- ab.copy(b).sub(a);
52
- ac.copy(c).sub(a);
53
- sightDir.crossVectors(ac, ab).normalize();
54
- sightDirQuaternion.setFromUnitVectors(defaultLookAt, sightDir);
88
+ if (facialTransformationMatrix) {
89
+ // from facialTransformationMatrix
90
+ transform.matrix.fromArray(facialTransformationMatrix.data);
91
+ transform.matrix.decompose(transform.position, transform.quaternion, transform.scale); // Rotation: y and z axes are inverted
92
+
93
+ transform.rotation.y *= -1;
94
+ transform.rotation.z *= -1;
95
+ sightDirQuaternion.setFromEuler(transform.rotation); // Offset: y and z axes are inverted
96
+
97
+ if (offset) {
98
+ var _offsetRef$current;
99
+
100
+ transform.position.y *= -1;
101
+ transform.position.z *= -1;
102
+ (_offsetRef$current = offsetRef.current) == null ? void 0 : _offsetRef$current.position.copy(transform.position.divideScalar(offsetScalar));
103
+ } else {
104
+ var _offsetRef$current2;
105
+
106
+ (_offsetRef$current2 = offsetRef.current) == null ? void 0 : _offsetRef$current2.position.set(0, 0, 0); // reset
107
+ }
108
+ } else {
109
+ // normal to verticalTri
110
+ normal(points[verticalTri[0]], points[verticalTri[1]], points[verticalTri[2]], sightDir);
111
+ sightDirQuaternion.setFromUnitVectors(defaultLookAt, sightDir);
112
+ }
113
+
55
114
  const sightDirQuaternionInverse = sightDirQuaternion.clone().invert(); //
56
115
  // B. geometry (straightened)
57
116
  //
58
117
  // 1. center (before rotate back)
59
118
 
60
- geometry.computeBoundingBox();
119
+ faceGeometry.computeBoundingBox();
61
120
  if (debug) invalidate(); // invalidate to force re-render for box3Helper (after .computeBoundingBox())
62
121
 
63
- geometry.center(); // 2. rotate back + rotate outerRef (once 1.)
122
+ faceGeometry.center(); // 2. rotate back + rotate outerRef (once 1.)
123
+
124
+ faceGeometry.applyQuaternion(sightDirQuaternionInverse);
125
+ (_outerRef$current = outerRef.current) == null ? void 0 : _outerRef$current.setRotationFromQuaternion(sightDirQuaternion); // 3. 👀 eyes
64
126
 
65
- geometry.applyQuaternion(sightDirQuaternionInverse);
66
- (_outerRef$current = outerRef.current) == null ? void 0 : _outerRef$current.setRotationFromQuaternion(sightDirQuaternion); // 3. origin: substract the geometry to that landmark coords (once 1.)
127
+ if (eyes) {
128
+ if (!faceBlendshapes) {
129
+ console.warn('Facemesh `eyes` option only works if `faceBlendshapes` is provided: skipping.');
130
+ } else {
131
+ if (eyeRightRef.current && eyeLeftRef.current && originRef.current) {
132
+ if (eyesAsOrigin) {
133
+ // compute the middle of the 2 eyes as the `origin`
134
+ const eyeRightSphere = eyeRightRef.current._computeSphere(faceGeometry);
67
135
 
68
- if (origin) {
69
- const position = geometry.getAttribute('position');
70
- geometry.translate(-position.getX(origin), -position.getY(origin), -position.getZ(origin));
136
+ const eyeLeftSphere = eyeLeftRef.current._computeSphere(faceGeometry);
137
+
138
+ const eyesCenter = mean(eyeRightSphere.center, eyeLeftSphere.center);
139
+ origin = eyesCenter.negate(); // eslint-disable-line react-hooks/exhaustive-deps
140
+
141
+ eyeRightRef.current._update(faceGeometry, faceBlendshapes, eyeRightSphere);
142
+
143
+ eyeLeftRef.current._update(faceGeometry, faceBlendshapes, eyeLeftSphere);
144
+ } else {
145
+ eyeRightRef.current._update(faceGeometry, faceBlendshapes);
146
+
147
+ eyeLeftRef.current._update(faceGeometry, faceBlendshapes);
148
+ }
149
+ }
150
+ }
151
+ } // 3. origin
152
+
153
+
154
+ if (originRef.current) {
155
+ if (origin !== undefined) {
156
+ if (typeof origin === 'number') {
157
+ const position = faceGeometry.getAttribute('position');
158
+
159
+ _origin.set(-position.getX(origin), -position.getY(origin), -position.getZ(origin));
160
+ } else if (origin.isVector3) {
161
+ _origin.copy(origin);
162
+ }
163
+ } else {
164
+ _origin.setScalar(0);
165
+ }
166
+
167
+ originRef.current.position.copy(_origin);
71
168
  } // 4. re-scale
72
169
 
73
170
 
74
- (_geometry$boundingBox = geometry.boundingBox) == null ? void 0 : _geometry$boundingBox.getSize(bboxSize);
75
- let scale = 1;
76
- if (width) scale = width / bboxSize.x; // fit in width
171
+ if (scaleRef.current) {
172
+ let scale = 1;
77
173
 
78
- if (height) scale = height / bboxSize.y; // fit in height
174
+ if (width || height || depth) {
175
+ faceGeometry.boundingBox.getSize(bboxSize);
176
+ if (width) scale = width / bboxSize.x; // fit in width
79
177
 
80
- if (depth) scale = depth / bboxSize.z; // fit in depth
178
+ if (height) scale = height / bboxSize.y; // fit in height
81
179
 
82
- if (scale !== 1) geometry.scale(scale, scale, scale);
83
- geometry.computeVertexNormals();
84
- geometry.attributes.position.needsUpdate = true;
85
- }, [face, width, height, depth, verticalTri, origin, debug, invalidate, sightDir, sightDirQuaternion, a, b, c, ab, ac, bboxSize]); //
180
+ if (depth) scale = depth / bboxSize.z; // fit in depth
181
+ }
182
+
183
+ scaleRef.current.scale.setScalar(scale !== 1 ? scale : 1);
184
+ }
185
+
186
+ faceGeometry.computeVertexNormals();
187
+ faceGeometry.attributes.position.needsUpdate = true;
188
+ }, [points, facialTransformationMatrix, faceBlendshapes, transform, offset, offsetScalar, width, height, depth, verticalTri, origin, eyes, debug, invalidate, sightDir, sightDirQuaternion, bboxSize, _origin]); //
86
189
  // API
87
190
  //
88
191
 
89
192
  const api = React.useMemo(() => ({
193
+ outerRef,
90
194
  meshRef,
91
- outerRef
195
+ eyeRightRef,
196
+ eyeLeftRef
92
197
  }), []);
93
198
  React.useImperativeHandle(fref, () => api, [api]);
199
+ const [meshBboxSize] = React.useState(() => new THREE.Vector3());
200
+ const bbox = (_meshRef$current3 = meshRef.current) == null ? void 0 : _meshRef$current3.geometry.boundingBox;
201
+ const one = (bbox == null ? void 0 : bbox.getSize(meshBboxSize).z) || 1;
94
202
  return /*#__PURE__*/React.createElement("group", props, /*#__PURE__*/React.createElement("group", {
203
+ ref: offsetRef
204
+ }, /*#__PURE__*/React.createElement("group", {
95
205
  ref: outerRef
96
- }, /*#__PURE__*/React.createElement("mesh", {
97
- ref: meshRef
98
- }, children, debug ? /*#__PURE__*/React.createElement(React.Fragment, null, ((_meshRef$current3 = meshRef.current) == null ? void 0 : (_meshRef$current3$geo = _meshRef$current3.geometry) == null ? void 0 : _meshRef$current3$geo.boundingBox) && /*#__PURE__*/React.createElement("box3Helper", {
99
- args: [(_meshRef$current4 = meshRef.current) == null ? void 0 : _meshRef$current4.geometry.boundingBox]
206
+ }, /*#__PURE__*/React.createElement("group", {
207
+ ref: scaleRef
208
+ }, debug ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("axesHelper", {
209
+ args: [one]
100
210
  }), /*#__PURE__*/React.createElement(Line, {
101
- points: [[0, 0, 0], defaultLookAt],
211
+ points: [[0, 0, 0], [0, 0, -one]],
102
212
  color: 0x00ffff
103
- })) : null)));
104
- });
213
+ })) : null, /*#__PURE__*/React.createElement("group", {
214
+ ref: originRef
215
+ }, eyes && faceBlendshapes && /*#__PURE__*/React.createElement("group", {
216
+ name: "eyes"
217
+ }, /*#__PURE__*/React.createElement(FacemeshEye, {
218
+ side: "left",
219
+ ref: eyeRightRef,
220
+ debug: debug
221
+ }), /*#__PURE__*/React.createElement(FacemeshEye, {
222
+ side: "right",
223
+ ref: eyeLeftRef,
224
+ debug: debug
225
+ })), /*#__PURE__*/React.createElement("mesh", {
226
+ ref: meshRef,
227
+ name: "face"
228
+ }, children, debug ? /*#__PURE__*/React.createElement(React.Fragment, null, bbox && /*#__PURE__*/React.createElement("box3Helper", {
229
+ args: [bbox]
230
+ })) : null))))));
231
+ }); //
232
+ // 👁️ FacemeshEye
233
+ //
234
+
235
+ const FacemeshEyeDefaults = {
236
+ contourLandmarks: {
237
+ right: [33, 133, 159, 145, 153],
238
+ left: [263, 362, 386, 374, 380]
239
+ },
240
+ blendshapes: {
241
+ right: [14, 16, 18, 12],
242
+ // lookIn,lookOut, lookUp,lookDown
243
+ left: [13, 15, 17, 11] // lookIn,lookOut, lookUp,lookDown
244
+
245
+ },
246
+ color: {
247
+ right: 'red',
248
+ left: '#00ff00'
249
+ },
250
+ fov: {
251
+ horizontal: 100,
252
+ vertical: 90
253
+ }
254
+ };
255
+ const FacemeshEye = /*#__PURE__*/React.forwardRef(({
256
+ side,
257
+ debug = true
258
+ }, fref) => {
259
+ const eyeMeshRef = React.useRef(null);
260
+ const irisDirRef = React.useRef(null); //
261
+ // _computeSphere()
262
+ //
263
+ // Compute eye's sphere .position and .radius
264
+ //
265
+
266
+ const [sphere] = React.useState(() => new THREE.Sphere());
267
+
268
+ const _computeSphere = React.useCallback(faceGeometry => {
269
+ const position = faceGeometry.getAttribute('position'); // get some eye contour landmarks points (from geometry)
270
+
271
+ const eyeContourLandmarks = FacemeshEyeDefaults.contourLandmarks[side];
272
+ const eyeContourPoints = eyeContourLandmarks.map(i => new THREE.Vector3(position.getX(i), position.getY(i), position.getZ(i))); // prettier-ignore
273
+ // compute center (centroid from eyeContourPoints)
274
+
275
+ sphere.center.set(0, 0, 0);
276
+ eyeContourPoints.forEach(v => sphere.center.add(v));
277
+ sphere.center.divideScalar(eyeContourPoints.length); // radius (eye half-width)
278
+
279
+ sphere.radius = eyeContourPoints[0].sub(eyeContourPoints[1]).length() / 2;
280
+ return sphere;
281
+ }, [sphere, side]); //
282
+ // _update()
283
+ //
284
+ // Update:
285
+ // - A. eye's mesh (according to sphere)
286
+ // - B. iris direction (according to "look*" blendshapes)
287
+ //
288
+
289
+
290
+ const [rotation] = React.useState(() => new THREE.Euler());
291
+
292
+ const _update = React.useCallback((faceGeometry, faceBlendshapes, sphere) => {
293
+ // A.
294
+ if (eyeMeshRef.current) {
295
+ var _sphere;
296
+
297
+ (_sphere = sphere) !== null && _sphere !== void 0 ? _sphere : sphere = _computeSphere(faceGeometry); // compute sphere dims (if not passed)
298
+
299
+ eyeMeshRef.current.position.copy(sphere.center);
300
+ eyeMeshRef.current.scale.setScalar(sphere.radius);
301
+ } // B.
302
+
303
+
304
+ if (faceBlendshapes && irisDirRef.current) {
305
+ const blendshapes = FacemeshEyeDefaults.blendshapes[side];
306
+ const lookIn = faceBlendshapes.categories[blendshapes[0]].score;
307
+ const lookOut = faceBlendshapes.categories[blendshapes[1]].score;
308
+ const lookUp = faceBlendshapes.categories[blendshapes[2]].score;
309
+ const lookDown = faceBlendshapes.categories[blendshapes[3]].score;
310
+ const hfov = FacemeshEyeDefaults.fov.horizontal * DEG2RAD;
311
+ const vfov = FacemeshEyeDefaults.fov.vertical * DEG2RAD;
312
+ const rx = hfov * 0.5 * (lookDown - lookUp);
313
+ const ry = vfov * 0.5 * (lookIn - lookOut) * (side === 'left' ? 1 : -1);
314
+ rotation.set(rx, ry, 0);
315
+ irisDirRef.current.setRotationFromEuler(rotation);
316
+ }
317
+ }, [_computeSphere, side, rotation]); //
318
+ // API
319
+ //
320
+
321
+
322
+ const api = React.useMemo(() => ({
323
+ eyeMeshRef: eyeMeshRef,
324
+ irisDirRef: irisDirRef,
325
+ _computeSphere,
326
+ _update
327
+ }), [_computeSphere, _update]);
328
+ React.useImperativeHandle(fref, () => api, [api]);
329
+ const color = FacemeshEyeDefaults.color[side];
330
+ return /*#__PURE__*/React.createElement("group", null, /*#__PURE__*/React.createElement("group", {
331
+ ref: eyeMeshRef
332
+ }, debug && /*#__PURE__*/React.createElement("axesHelper", null), /*#__PURE__*/React.createElement("group", {
333
+ ref: irisDirRef
334
+ }, /*#__PURE__*/React.createElement(React.Fragment, null, debug && /*#__PURE__*/React.createElement(Line, {
335
+ points: [[0, 0, 0], [0, 0, -2]],
336
+ lineWidth: 1,
337
+ color: color
338
+ })))));
339
+ }); //
340
+ // Sample datas
341
+ //
342
+
105
343
  const FacemeshDatas = {
344
+ // Extracted from: https://github.com/tensorflow/tfjs-models/blob/a8f500809f5afe38feea27870c77e7ba03a6ece4/face-landmarks-detection/demos/shared/triangulation.js
345
+ // prettier-ignore
346
+ TRIANGULATION: [127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9, 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56, 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91, 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117, 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211, 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173, 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28, 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49, 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89, 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122, 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110, 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246, 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162, 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13, 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214, 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61, 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59, 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56, 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213, 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228, 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347, 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313, 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320, 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258, 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256, 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467, 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436, 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424, 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432, 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330, 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419, 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445, 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355, 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368, 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461, 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391, 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314, 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309, 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254, 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259, 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453, 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133, 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60, 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155, 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17, 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83, 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196, 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47, 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95, 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43, 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203, 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96, 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22, 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38, 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111, 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145, 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70, 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32, 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212, 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2, 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221, 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245, 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267, 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337, 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260, 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406, 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8, 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283, 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325, 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329, 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345, 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299, 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279, 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310, 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337, 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285, 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387, 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330, 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315, 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264, 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339, 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257, 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357, 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255],
106
347
  // My face as default (captured with a 640x480 webcam)
107
348
  // prettier-ignore
108
349
  SAMPLE_FACE: {
@@ -2113,9 +2354,2193 @@ const FacemeshDatas = {
2113
2354
  "height": 191.0607147216797
2114
2355
  }
2115
2356
  },
2116
- // Extracted from: https://github.com/tensorflow/tfjs-models/blob/a8f500809f5afe38feea27870c77e7ba03a6ece4/face-landmarks-detection/demos/shared/triangulation.js
2357
+ // Tasks-vision: https://developers.google.com/mediapipe/solutions/vision/face_landmarker/web_js
2117
2358
  // prettier-ignore
2118
- TRIANGULATION: [127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9, 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56, 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91, 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117, 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211, 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173, 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28, 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49, 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89, 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122, 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110, 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246, 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162, 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13, 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214, 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61, 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59, 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56, 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213, 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228, 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347, 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313, 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320, 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258, 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256, 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467, 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436, 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424, 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432, 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330, 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419, 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445, 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355, 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368, 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461, 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391, 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314, 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309, 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254, 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259, 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453, 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133, 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60, 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155, 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17, 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83, 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196, 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47, 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95, 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43, 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203, 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96, 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22, 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38, 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111, 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145, 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70, 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32, 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212, 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2, 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221, 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245, 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267, 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337, 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260, 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406, 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8, 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283, 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325, 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329, 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345, 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299, 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279, 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310, 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337, 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285, 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387, 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330, 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315, 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264, 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339, 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257, 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357, 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255]
2359
+ SAMPLE_FACELANDMARKER_RESULT: {
2360
+ "faceLandmarks": [[{
2361
+ "x": 0.5760777592658997,
2362
+ "y": 0.8639070391654968,
2363
+ "z": -0.030997956171631813
2364
+ }, {
2365
+ "x": 0.572094738483429,
2366
+ "y": 0.7886289358139038,
2367
+ "z": -0.07189624011516571
2368
+ }, {
2369
+ "x": 0.5723551511764526,
2370
+ "y": 0.8075382709503174,
2371
+ "z": -0.03578168898820877
2372
+ }, {
2373
+ "x": 0.5548420548439026,
2374
+ "y": 0.7188365459442139,
2375
+ "z": -0.057787876576185226
2376
+ }, {
2377
+ "x": 0.5706077814102173,
2378
+ "y": 0.7674974799156189,
2379
+ "z": -0.07740399986505508
2380
+ }, {
2381
+ "x": 0.5681378245353699,
2382
+ "y": 0.7387768030166626,
2383
+ "z": -0.07356284558773041
2384
+ }, {
2385
+ "x": 0.5621535181999207,
2386
+ "y": 0.6681165099143982,
2387
+ "z": -0.04189874976873398
2388
+ }, {
2389
+ "x": 0.46613582968711853,
2390
+ "y": 0.6679812073707581,
2391
+ "z": 0.011289681307971478
2392
+ }, {
2393
+ "x": 0.5579932928085327,
2394
+ "y": 0.6174106597900391,
2395
+ "z": -0.03502821549773216
2396
+ }, {
2397
+ "x": 0.5563451647758484,
2398
+ "y": 0.5905600190162659,
2399
+ "z": -0.03928658738732338
2400
+ }, {
2401
+ "x": 0.5487832427024841,
2402
+ "y": 0.4900572597980499,
2403
+ "z": -0.029898937791585922
2404
+ }, {
2405
+ "x": 0.5765544176101685,
2406
+ "y": 0.8692144751548767,
2407
+ "z": -0.02831427752971649
2408
+ }, {
2409
+ "x": 0.5771114230155945,
2410
+ "y": 0.873644232749939,
2411
+ "z": -0.02345779910683632
2412
+ }, {
2413
+ "x": 0.5771905779838562,
2414
+ "y": 0.877016007900238,
2415
+ "z": -0.016658689826726913
2416
+ }, {
2417
+ "x": 0.5778058767318726,
2418
+ "y": 0.8770116567611694,
2419
+ "z": -0.014505492523312569
2420
+ }, {
2421
+ "x": 0.5783766508102417,
2422
+ "y": 0.8835000991821289,
2423
+ "z": -0.015996402129530907
2424
+ }, {
2425
+ "x": 0.5792440176010132,
2426
+ "y": 0.8913810849189758,
2427
+ "z": -0.01924579218029976
2428
+ }, {
2429
+ "x": 0.5796768069267273,
2430
+ "y": 0.8996334671974182,
2431
+ "z": -0.018261712044477463
2432
+ }, {
2433
+ "x": 0.5817288160324097,
2434
+ "y": 0.9255813956260681,
2435
+ "z": -0.007126849144697189
2436
+ }, {
2437
+ "x": 0.5726592540740967,
2438
+ "y": 0.7992473244667053,
2439
+ "z": -0.0643521398305893
2440
+ }, {
2441
+ "x": 0.5579419136047363,
2442
+ "y": 0.7996989488601685,
2443
+ "z": -0.04566684365272522
2444
+ }, {
2445
+ "x": 0.4216199815273285,
2446
+ "y": 0.5958762764930725,
2447
+ "z": 0.06776496022939682
2448
+ }, {
2449
+ "x": 0.5052269697189331,
2450
+ "y": 0.6796539425849915,
2451
+ "z": -0.0010737782577052712
2452
+ }, {
2453
+ "x": 0.49243026971817017,
2454
+ "y": 0.6838865876197815,
2455
+ "z": -0.0005227324436418712
2456
+ }, {
2457
+ "x": 0.4796970784664154,
2458
+ "y": 0.6856290102005005,
2459
+ "z": 0.002684245817363262
2460
+ }, {
2461
+ "x": 0.4618356227874756,
2462
+ "y": 0.6764569878578186,
2463
+ "z": 0.013439622707664967
2464
+ }, {
2465
+ "x": 0.5160380601882935,
2466
+ "y": 0.6737282276153564,
2467
+ "z": -0.000017607348127057776
2468
+ }, {
2469
+ "x": 0.48070961236953735,
2470
+ "y": 0.6255870461463928,
2471
+ "z": -0.008339674212038517
2472
+ }, {
2473
+ "x": 0.49719780683517456,
2474
+ "y": 0.6256808042526245,
2475
+ "z": -0.008027955889701843
2476
+ }, {
2477
+ "x": 0.46674346923828125,
2478
+ "y": 0.6317623853683472,
2479
+ "z": -0.004460199736058712
2480
+ }, {
2481
+ "x": 0.4582492709159851,
2482
+ "y": 0.641118049621582,
2483
+ "z": 0.0011905613355338573
2484
+ }, {
2485
+ "x": 0.45408669114112854,
2486
+ "y": 0.6911458969116211,
2487
+ "z": 0.020514748990535736
2488
+ }, {
2489
+ "x": 0.535312294960022,
2490
+ "y": 0.9619986414909363,
2491
+ "z": 0.012499462813138962
2492
+ }, {
2493
+ "x": 0.4608460068702698,
2494
+ "y": 0.6628725528717041,
2495
+ "z": 0.01517564244568348
2496
+ }, {
2497
+ "x": 0.4206731915473938,
2498
+ "y": 0.6828458309173584,
2499
+ "z": 0.07848648726940155
2500
+ }, {
2501
+ "x": 0.4390624463558197,
2502
+ "y": 0.6796106696128845,
2503
+ "z": 0.03283142298460007
2504
+ }, {
2505
+ "x": 0.5029968619346619,
2506
+ "y": 0.7701570391654968,
2507
+ "z": -0.009734481573104858
2508
+ }, {
2509
+ "x": 0.5595027208328247,
2510
+ "y": 0.8607323169708252,
2511
+ "z": -0.030043255537748337
2512
+ }, {
2513
+ "x": 0.5621269941329956,
2514
+ "y": 0.8738374710083008,
2515
+ "z": -0.021709579974412918
2516
+ }, {
2517
+ "x": 0.5451499819755554,
2518
+ "y": 0.865527331829071,
2519
+ "z": -0.022014077752828598
2520
+ }, {
2521
+ "x": 0.5351184010505676,
2522
+ "y": 0.8705098032951355,
2523
+ "z": -0.011602800339460373
2524
+ }, {
2525
+ "x": 0.5495014190673828,
2526
+ "y": 0.8744956254959106,
2527
+ "z": -0.016490943729877472
2528
+ }, {
2529
+ "x": 0.5395170450210571,
2530
+ "y": 0.8759440779685974,
2531
+ "z": -0.007333362940698862
2532
+ }, {
2533
+ "x": 0.5183624029159546,
2534
+ "y": 0.8959754705429077,
2535
+ "z": 0.010520773939788342
2536
+ }, {
2537
+ "x": 0.5604349374771118,
2538
+ "y": 0.7895449995994568,
2539
+ "z": -0.07082037627696991
2540
+ }, {
2541
+ "x": 0.557381272315979,
2542
+ "y": 0.7687489986419678,
2543
+ "z": -0.07590588927268982
2544
+ }, {
2545
+ "x": 0.4432901442050934,
2546
+ "y": 0.6308897733688354,
2547
+ "z": 0.0027153254486620426
2548
+ }, {
2549
+ "x": 0.5258325338363647,
2550
+ "y": 0.7151225805282593,
2551
+ "z": -0.014676518738269806
2552
+ }, {
2553
+ "x": 0.5271827578544617,
2554
+ "y": 0.7833116054534912,
2555
+ "z": -0.037643320858478546
2556
+ }, {
2557
+ "x": 0.5257382988929749,
2558
+ "y": 0.7717816233634949,
2559
+ "z": -0.03401920944452286
2560
+ }, {
2561
+ "x": 0.46516409516334534,
2562
+ "y": 0.7705106735229492,
2563
+ "z": 0.0065747760236263275
2564
+ }, {
2565
+ "x": 0.5558893084526062,
2566
+ "y": 0.7420997619628906,
2567
+ "z": -0.0694495290517807
2568
+ }, {
2569
+ "x": 0.4720408320426941,
2570
+ "y": 0.6066038608551025,
2571
+ "z": -0.021204356104135513
2572
+ }, {
2573
+ "x": 0.45432573556900024,
2574
+ "y": 0.6158540844917297,
2575
+ "z": -0.011054684408009052
2576
+ }, {
2577
+ "x": 0.4305151402950287,
2578
+ "y": 0.5608053803443909,
2579
+ "z": 0.0396830290555954
2580
+ }, {
2581
+ "x": 0.5310865640640259,
2582
+ "y": 0.6157484650611877,
2583
+ "z": -0.03081176057457924
2584
+ }, {
2585
+ "x": 0.5114666223526001,
2586
+ "y": 0.6329749226570129,
2587
+ "z": -0.00335998204536736
2588
+ }, {
2589
+ "x": 0.506435751914978,
2590
+ "y": 0.8786543607711792,
2591
+ "z": 0.012980876490473747
2592
+ }, {
2593
+ "x": 0.4480472207069397,
2594
+ "y": 0.8640613555908203,
2595
+ "z": 0.12569651007652283
2596
+ }, {
2597
+ "x": 0.5372058153152466,
2598
+ "y": 0.7942581176757812,
2599
+ "z": -0.03168361634016037
2600
+ }, {
2601
+ "x": 0.5488379597663879,
2602
+ "y": 0.8001630306243896,
2603
+ "z": -0.03280917927622795
2604
+ }, {
2605
+ "x": 0.5213388204574585,
2606
+ "y": 0.8794381618499756,
2607
+ "z": 0.011892606504261494
2608
+ }, {
2609
+ "x": 0.5242055654525757,
2610
+ "y": 0.8789222240447998,
2611
+ "z": 0.008370225317776203
2612
+ }, {
2613
+ "x": 0.4477175176143646,
2614
+ "y": 0.6039950251579285,
2615
+ "z": -0.0050799972377717495
2616
+ }, {
2617
+ "x": 0.526964008808136,
2618
+ "y": 0.7916748523712158,
2619
+ "z": -0.02968614175915718
2620
+ }, {
2621
+ "x": 0.4971255660057068,
2622
+ "y": 0.6050706505775452,
2623
+ "z": -0.028175678104162216
2624
+ }, {
2625
+ "x": 0.4938119053840637,
2626
+ "y": 0.5882453918457031,
2627
+ "z": -0.03210941329598427
2628
+ }, {
2629
+ "x": 0.4757143557071686,
2630
+ "y": 0.5094879865646362,
2631
+ "z": -0.01300730835646391
2632
+ }, {
2633
+ "x": 0.43947282433509827,
2634
+ "y": 0.5816648006439209,
2635
+ "z": 0.01415177434682846
2636
+ }, {
2637
+ "x": 0.485664039850235,
2638
+ "y": 0.5477864146232605,
2639
+ "z": -0.023685332387685776
2640
+ }, {
2641
+ "x": 0.43635931611061096,
2642
+ "y": 0.6226438283920288,
2643
+ "z": 0.013606148771941662
2644
+ }, {
2645
+ "x": 0.42910251021385193,
2646
+ "y": 0.6102726459503174,
2647
+ "z": 0.03926564007997513
2648
+ }, {
2649
+ "x": 0.5605402588844299,
2650
+ "y": 0.8680099248886108,
2651
+ "z": -0.027318159118294716
2652
+ }, {
2653
+ "x": 0.5474816560745239,
2654
+ "y": 0.8702861070632935,
2655
+ "z": -0.019686367362737656
2656
+ }, {
2657
+ "x": 0.5373021364212036,
2658
+ "y": 0.8728838562965393,
2659
+ "z": -0.010484928265213966
2660
+ }, {
2661
+ "x": 0.540735125541687,
2662
+ "y": 0.7979167103767395,
2663
+ "z": -0.029073253273963928
2664
+ }, {
2665
+ "x": 0.5228585004806519,
2666
+ "y": 0.87913578748703,
2667
+ "z": 0.009915109723806381
2668
+ }, {
2669
+ "x": 0.530497670173645,
2670
+ "y": 0.8815253973007202,
2671
+ "z": 0.0020524784922599792
2672
+ }, {
2673
+ "x": 0.5259912610054016,
2674
+ "y": 0.8790552616119385,
2675
+ "z": 0.007895970717072487
2676
+ }, {
2677
+ "x": 0.5433906316757202,
2678
+ "y": 0.7882310748100281,
2679
+ "z": -0.05121905356645584
2680
+ }, {
2681
+ "x": 0.541388213634491,
2682
+ "y": 0.8777219653129578,
2683
+ "z": -0.00466804439201951
2684
+ }, {
2685
+ "x": 0.5515822172164917,
2686
+ "y": 0.8767023086547852,
2687
+ "z": -0.010475946590304375
2688
+ }, {
2689
+ "x": 0.5637003779411316,
2690
+ "y": 0.877059817314148,
2691
+ "z": -0.015273625031113625
2692
+ }, {
2693
+ "x": 0.5640299320220947,
2694
+ "y": 0.9263423085212708,
2695
+ "z": -0.00658724969252944
2696
+ }, {
2697
+ "x": 0.5642300248146057,
2698
+ "y": 0.8993074893951416,
2699
+ "z": -0.017653480172157288
2700
+ }, {
2701
+ "x": 0.5637336373329163,
2702
+ "y": 0.8910360932350159,
2703
+ "z": -0.01852807030081749
2704
+ }, {
2705
+ "x": 0.5637134313583374,
2706
+ "y": 0.8837276697158813,
2707
+ "z": -0.01482592523097992
2708
+ }, {
2709
+ "x": 0.564205527305603,
2710
+ "y": 0.8768964409828186,
2711
+ "z": -0.01331155002117157
2712
+ }, {
2713
+ "x": 0.5419867634773254,
2714
+ "y": 0.8778373599052429,
2715
+ "z": -0.0037720394320786
2716
+ }, {
2717
+ "x": 0.5404468774795532,
2718
+ "y": 0.880696177482605,
2719
+ "z": -0.005610354244709015
2720
+ }, {
2721
+ "x": 0.5392338633537292,
2722
+ "y": 0.8845721483230591,
2723
+ "z": -0.007352025713771582
2724
+ }, {
2725
+ "x": 0.538469672203064,
2726
+ "y": 0.8891173601150513,
2727
+ "z": -0.005154991988092661
2728
+ }, {
2729
+ "x": 0.5189250111579895,
2730
+ "y": 0.8452741503715515,
2731
+ "z": -0.009755070321261883
2732
+ }, {
2733
+ "x": 0.4258975088596344,
2734
+ "y": 0.7662280797958374,
2735
+ "z": 0.1387351155281067
2736
+ }, {
2737
+ "x": 0.5725725293159485,
2738
+ "y": 0.8041572570800781,
2739
+ "z": -0.04583907872438431
2740
+ }, {
2741
+ "x": 0.5342061519622803,
2742
+ "y": 0.8785833120346069,
2743
+ "z": 0.002659974154084921
2744
+ }, {
2745
+ "x": 0.5324031114578247,
2746
+ "y": 0.8804071545600891,
2747
+ "z": 0.0017832003068178892
2748
+ }, {
2749
+ "x": 0.5538818836212158,
2750
+ "y": 0.8078407645225525,
2751
+ "z": -0.03254539892077446
2752
+ }, {
2753
+ "x": 0.5325431823730469,
2754
+ "y": 0.8026832938194275,
2755
+ "z": -0.019140373915433884
2756
+ }, {
2757
+ "x": 0.5514076948165894,
2758
+ "y": 0.8043903112411499,
2759
+ "z": -0.03313535451889038
2760
+ }, {
2761
+ "x": 0.5131856203079224,
2762
+ "y": 0.7284771800041199,
2763
+ "z": -0.009399853646755219
2764
+ }, {
2765
+ "x": 0.49331504106521606,
2766
+ "y": 0.7443980574607849,
2767
+ "z": -0.005225230939686298
2768
+ }, {
2769
+ "x": 0.5239617824554443,
2770
+ "y": 0.7807451486587524,
2771
+ "z": -0.025881027802824974
2772
+ }, {
2773
+ "x": 0.4473606050014496,
2774
+ "y": 0.5315827131271362,
2775
+ "z": 0.011164786294102669
2776
+ }, {
2777
+ "x": 0.45718759298324585,
2778
+ "y": 0.5604941248893738,
2779
+ "z": -0.005943301599472761
2780
+ }, {
2781
+ "x": 0.4670005738735199,
2782
+ "y": 0.5909327268600464,
2783
+ "z": -0.019681761041283607
2784
+ }, {
2785
+ "x": 0.5311570167541504,
2786
+ "y": 0.9076261520385742,
2787
+ "z": 0.00389476353302598
2788
+ }, {
2789
+ "x": 0.5249923467636108,
2790
+ "y": 0.5893563628196716,
2791
+ "z": -0.037981919944286346
2792
+ }, {
2793
+ "x": 0.5166932344436646,
2794
+ "y": 0.5429551005363464,
2795
+ "z": -0.03319704160094261
2796
+ }, {
2797
+ "x": 0.5085030198097229,
2798
+ "y": 0.49676206707954407,
2799
+ "z": -0.02691275253891945
2800
+ }, {
2801
+ "x": 0.4687720239162445,
2802
+ "y": 0.6834565997123718,
2803
+ "z": 0.008113506250083447
2804
+ }, {
2805
+ "x": 0.4426414966583252,
2806
+ "y": 0.7069531679153442,
2807
+ "z": 0.028577271848917007
2808
+ }, {
2809
+ "x": 0.5230373740196228,
2810
+ "y": 0.6675713658332825,
2811
+ "z": 0.001773772411979735
2812
+ }, {
2813
+ "x": 0.4481240212917328,
2814
+ "y": 0.6527872085571289,
2815
+ "z": 0.012414850294589996
2816
+ }, {
2817
+ "x": 0.5339856743812561,
2818
+ "y": 0.7012367844581604,
2819
+ "z": -0.020220188423991203
2820
+ }, {
2821
+ "x": 0.5347223281860352,
2822
+ "y": 0.7761190533638,
2823
+ "z": -0.05141595005989075
2824
+ }, {
2825
+ "x": 0.4315067231655121,
2826
+ "y": 0.7211957573890686,
2827
+ "z": 0.04381405934691429
2828
+ }, {
2829
+ "x": 0.45203351974487305,
2830
+ "y": 0.7206180095672607,
2831
+ "z": 0.017288070172071457
2832
+ }, {
2833
+ "x": 0.46892452239990234,
2834
+ "y": 0.7265436053276062,
2835
+ "z": 0.005602988880127668
2836
+ }, {
2837
+ "x": 0.49314674735069275,
2838
+ "y": 0.7202282547950745,
2839
+ "z": -0.0006408205372281373
2840
+ }, {
2841
+ "x": 0.5104925632476807,
2842
+ "y": 0.7091827392578125,
2843
+ "z": -0.00362918758764863
2844
+ }, {
2845
+ "x": 0.5232142210006714,
2846
+ "y": 0.698553740978241,
2847
+ "z": -0.00787867046892643
2848
+ }, {
2849
+ "x": 0.5497883558273315,
2850
+ "y": 0.6743605136871338,
2851
+ "z": -0.036349106580019
2852
+ }, {
2853
+ "x": 0.43658503890037537,
2854
+ "y": 0.7627100348472595,
2855
+ "z": 0.042555369436740875
2856
+ }, {
2857
+ "x": 0.4397648870944977,
2858
+ "y": 0.6528646349906921,
2859
+ "z": 0.017956094816327095
2860
+ }, {
2861
+ "x": 0.5653332471847534,
2862
+ "y": 0.7992802858352661,
2863
+ "z": -0.06365057826042175
2864
+ }, {
2865
+ "x": 0.5285563468933105,
2866
+ "y": 0.736810564994812,
2867
+ "z": -0.018836988136172295
2868
+ }, {
2869
+ "x": 0.4180678725242615,
2870
+ "y": 0.6792560815811157,
2871
+ "z": 0.12284679710865021
2872
+ }, {
2873
+ "x": 0.5328429937362671,
2874
+ "y": 0.6865872144699097,
2875
+ "z": -0.010484723374247551
2876
+ }, {
2877
+ "x": 0.5230283141136169,
2878
+ "y": 0.7809416055679321,
2879
+ "z": -0.011922398582100868
2880
+ }, {
2881
+ "x": 0.4551771283149719,
2882
+ "y": 0.6650775074958801,
2883
+ "z": 0.01774493046104908
2884
+ }, {
2885
+ "x": 0.5337203741073608,
2886
+ "y": 0.7618928551673889,
2887
+ "z": -0.04697106033563614
2888
+ }, {
2889
+ "x": 0.43463975191116333,
2890
+ "y": 0.8133478164672852,
2891
+ "z": 0.1354849934577942
2892
+ }, {
2893
+ "x": 0.5225707292556763,
2894
+ "y": 0.6605283617973328,
2895
+ "z": 0.004980515688657761
2896
+ }, {
2897
+ "x": 0.5441933870315552,
2898
+ "y": 0.7497199773788452,
2899
+ "z": -0.06091512367129326
2900
+ }, {
2901
+ "x": 0.4774007797241211,
2902
+ "y": 0.9159183502197266,
2903
+ "z": 0.059622734785079956
2904
+ }, {
2905
+ "x": 0.48068761825561523,
2906
+ "y": 0.9364941716194153,
2907
+ "z": 0.08404944837093353
2908
+ }, {
2909
+ "x": 0.4268292486667633,
2910
+ "y": 0.7657528519630432,
2911
+ "z": 0.09051097184419632
2912
+ }, {
2913
+ "x": 0.46051913499832153,
2914
+ "y": 0.8880485892295837,
2915
+ "z": 0.0738474428653717
2916
+ }, {
2917
+ "x": 0.4243420660495758,
2918
+ "y": 0.6434382200241089,
2919
+ "z": 0.06230505183339119
2920
+ }, {
2921
+ "x": 0.5342157483100891,
2922
+ "y": 0.9835634231567383,
2923
+ "z": 0.021662971004843712
2924
+ }, {
2925
+ "x": 0.5668109655380249,
2926
+ "y": 0.8042187094688416,
2927
+ "z": -0.044937074184417725
2928
+ }, {
2929
+ "x": 0.5176341533660889,
2930
+ "y": 0.7530587315559387,
2931
+ "z": -0.012967454269528389
2932
+ }, {
2933
+ "x": 0.430206298828125,
2934
+ "y": 0.6835605502128601,
2935
+ "z": 0.04612284153699875
2936
+ }, {
2937
+ "x": 0.4794231951236725,
2938
+ "y": 0.6732114553451538,
2939
+ "z": 0.003970044665038586
2940
+ }, {
2941
+ "x": 0.49073347449302673,
2942
+ "y": 0.6722435355186462,
2943
+ "z": 0.0008692514384165406
2944
+ }, {
2945
+ "x": 0.5294116139411926,
2946
+ "y": 0.884677529335022,
2947
+ "z": 0.004413890186697245
2948
+ }, {
2949
+ "x": 0.4430122375488281,
2950
+ "y": 0.80235356092453,
2951
+ "z": 0.04987282305955887
2952
+ }, {
2953
+ "x": 0.5603825449943542,
2954
+ "y": 1.0092442035675049,
2955
+ "z": 0.026417359709739685
2956
+ }, {
2957
+ "x": 0.5186598300933838,
2958
+ "y": 0.9828659892082214,
2959
+ "z": 0.0513598807156086
2960
+ }, {
2961
+ "x": 0.5010536909103394,
2962
+ "y": 0.9640932679176331,
2963
+ "z": 0.06591596454381943
2964
+ }, {
2965
+ "x": 0.5524769425392151,
2966
+ "y": 0.539441704750061,
2967
+ "z": -0.035816047340631485
2968
+ }, {
2969
+ "x": 0.5879997611045837,
2970
+ "y": 1.0091472864151,
2971
+ "z": 0.02285068854689598
2972
+ }, {
2973
+ "x": 0.5016193985939026,
2974
+ "y": 0.6684437990188599,
2975
+ "z": 0.00028415941051207483
2976
+ }, {
2977
+ "x": 0.511952817440033,
2978
+ "y": 0.6642197370529175,
2979
+ "z": 0.0021144719794392586
2980
+ }, {
2981
+ "x": 0.5194343328475952,
2982
+ "y": 0.6623469591140747,
2983
+ "z": 0.004674181342124939
2984
+ }, {
2985
+ "x": 0.4321230351924896,
2986
+ "y": 0.6496355533599854,
2987
+ "z": 0.03124697133898735
2988
+ }, {
2989
+ "x": 0.508686363697052,
2990
+ "y": 0.6479565501213074,
2991
+ "z": -0.00044765998609364033
2992
+ }, {
2993
+ "x": 0.4963986277580261,
2994
+ "y": 0.6431032419204712,
2995
+ "z": -0.0032507688738405704
2996
+ }, {
2997
+ "x": 0.4845542013645172,
2998
+ "y": 0.6430778503417969,
2999
+ "z": -0.002903624437749386
3000
+ }, {
3001
+ "x": 0.4733612537384033,
3002
+ "y": 0.647506833076477,
3003
+ "z": 0.00023347247042693198
3004
+ }, {
3005
+ "x": 0.4668654501438141,
3006
+ "y": 0.653346598148346,
3007
+ "z": 0.004762572236359119
3008
+ }, {
3009
+ "x": 0.41815051436424255,
3010
+ "y": 0.633708119392395,
3011
+ "z": 0.09809435904026031
3012
+ }, {
3013
+ "x": 0.47159942984580994,
3014
+ "y": 0.6711485385894775,
3015
+ "z": 0.007849935442209244
3016
+ }, {
3017
+ "x": 0.5734396576881409,
3018
+ "y": 0.8256140351295471,
3019
+ "z": -0.03155219927430153
3020
+ }, {
3021
+ "x": 0.5306524038314819,
3022
+ "y": 0.8337990641593933,
3023
+ "z": -0.018351426348090172
3024
+ }, {
3025
+ "x": 0.5371729135513306,
3026
+ "y": 0.7910830974578857,
3027
+ "z": -0.037286680191755295
3028
+ }, {
3029
+ "x": 0.5549534559249878,
3030
+ "y": 0.8275275826454163,
3031
+ "z": -0.030664825811982155
3032
+ }, {
3033
+ "x": 0.5597432255744934,
3034
+ "y": 0.6418541669845581,
3035
+ "z": -0.03318847343325615
3036
+ }, {
3037
+ "x": 0.4958484172821045,
3038
+ "y": 0.9429569244384766,
3039
+ "z": 0.048340678215026855
3040
+ }, {
3041
+ "x": 0.5140507817268372,
3042
+ "y": 0.9634028077125549,
3043
+ "z": 0.03589847311377525
3044
+ }, {
3045
+ "x": 0.5587693452835083,
3046
+ "y": 0.9951097369194031,
3047
+ "z": 0.00908728688955307
3048
+ }, {
3049
+ "x": 0.46411189436912537,
3050
+ "y": 0.9051855206489563,
3051
+ "z": 0.10601935535669327
3052
+ }, {
3053
+ "x": 0.5181609392166138,
3054
+ "y": 0.6554316878318787,
3055
+ "z": 0.002546071307733655
3056
+ }, {
3057
+ "x": 0.5436590909957886,
3058
+ "y": 0.7085841298103333,
3059
+ "z": -0.03844436630606651
3060
+ }, {
3061
+ "x": 0.5872187614440918,
3062
+ "y": 0.9960382580757141,
3063
+ "z": 0.0063423276878893375
3064
+ }, {
3065
+ "x": 0.5379653573036194,
3066
+ "y": 0.9989125728607178,
3067
+ "z": 0.03636329993605614
3068
+ }, {
3069
+ "x": 0.4350326955318451,
3070
+ "y": 0.8088565468788147,
3071
+ "z": 0.09147704392671585
3072
+ }, {
3073
+ "x": 0.5523084998130798,
3074
+ "y": 0.8773422837257385,
3075
+ "z": -0.009068487212061882
3076
+ }, {
3077
+ "x": 0.5510149598121643,
3078
+ "y": 0.8816931843757629,
3079
+ "z": -0.011043853126466274
3080
+ }, {
3081
+ "x": 0.5503793954849243,
3082
+ "y": 0.88776695728302,
3083
+ "z": -0.01348799467086792
3084
+ }, {
3085
+ "x": 0.5501549243927002,
3086
+ "y": 0.8954370617866516,
3087
+ "z": -0.012142189778387547
3088
+ }, {
3089
+ "x": 0.546072781085968,
3090
+ "y": 0.9192524552345276,
3091
+ "z": -0.003157563041895628
3092
+ }, {
3093
+ "x": 0.5314661860466003,
3094
+ "y": 0.8771666884422302,
3095
+ "z": 0.0005075141089037061
3096
+ }, {
3097
+ "x": 0.5293324589729309,
3098
+ "y": 0.8762547969818115,
3099
+ "z": 0.00039177737198770046
3100
+ }, {
3101
+ "x": 0.5275698900222778,
3102
+ "y": 0.8750609755516052,
3103
+ "z": 0.000047732755774632096
3104
+ }, {
3105
+ "x": 0.5104271173477173,
3106
+ "y": 0.8607332110404968,
3107
+ "z": 0.0012934643309563398
3108
+ }, {
3109
+ "x": 0.45938700437545776,
3110
+ "y": 0.8134918212890625,
3111
+ "z": 0.023569690063595772
3112
+ }, {
3113
+ "x": 0.5418947339057922,
3114
+ "y": 0.6864100694656372,
3115
+ "z": -0.027333909645676613
3116
+ }, {
3117
+ "x": 0.531914234161377,
3118
+ "y": 0.6456130743026733,
3119
+ "z": -0.005434140563011169
3120
+ }, {
3121
+ "x": 0.523697018623352,
3122
+ "y": 0.647885262966156,
3123
+ "z": -0.0002466466394253075
3124
+ }, {
3125
+ "x": 0.5338191390037537,
3126
+ "y": 0.8783687353134155,
3127
+ "z": 0.002268768846988678
3128
+ }, {
3129
+ "x": 0.46226605772972107,
3130
+ "y": 0.8610277771949768,
3131
+ "z": 0.04718952998518944
3132
+ }, {
3133
+ "x": 0.5434442758560181,
3134
+ "y": 0.6456181406974792,
3135
+ "z": -0.02327350154519081
3136
+ }, {
3137
+ "x": 0.5399754643440247,
3138
+ "y": 0.940219521522522,
3139
+ "z": 0.005075343884527683
3140
+ }, {
3141
+ "x": 0.5661457777023315,
3142
+ "y": 0.71457839012146,
3143
+ "z": -0.06242101639509201
3144
+ }, {
3145
+ "x": 0.5523148775100708,
3146
+ "y": 0.6974870562553406,
3147
+ "z": -0.04863070324063301
3148
+ }, {
3149
+ "x": 0.5639959573745728,
3150
+ "y": 0.6923378109931946,
3151
+ "z": -0.05180761218070984
3152
+ }, {
3153
+ "x": 0.5367592573165894,
3154
+ "y": 0.7423217296600342,
3155
+ "z": -0.03623027727007866
3156
+ }, {
3157
+ "x": 0.5853689908981323,
3158
+ "y": 0.9752064943313599,
3159
+ "z": -0.002361974213272333
3160
+ }, {
3161
+ "x": 0.5835235118865967,
3162
+ "y": 0.9493685960769653,
3163
+ "z": -0.003941743168979883
3164
+ }, {
3165
+ "x": 0.5615018606185913,
3166
+ "y": 0.949194610118866,
3167
+ "z": -0.0015953965485095978
3168
+ }, {
3169
+ "x": 0.5068561434745789,
3170
+ "y": 0.9048219323158264,
3171
+ "z": 0.01862684078514576
3172
+ }, {
3173
+ "x": 0.5134067535400391,
3174
+ "y": 0.7971825003623962,
3175
+ "z": -0.008485661819577217
3176
+ }, {
3177
+ "x": 0.5223897099494934,
3178
+ "y": 0.925589919090271,
3179
+ "z": 0.01249657291918993
3180
+ }, {
3181
+ "x": 0.48500555753707886,
3182
+ "y": 0.7959478497505188,
3183
+ "z": -0.0032065745908766985
3184
+ }, {
3185
+ "x": 0.5037734508514404,
3186
+ "y": 0.8184596300125122,
3187
+ "z": -0.004932103678584099
3188
+ }, {
3189
+ "x": 0.4766361117362976,
3190
+ "y": 0.828806459903717,
3191
+ "z": 0.01027688942849636
3192
+ }, {
3193
+ "x": 0.5589827299118042,
3194
+ "y": 0.974656343460083,
3195
+ "z": 0.0009666886180639267
3196
+ }, {
3197
+ "x": 0.5294582843780518,
3198
+ "y": 0.7541216611862183,
3199
+ "z": -0.025603046640753746
3200
+ }, {
3201
+ "x": 0.4973002076148987,
3202
+ "y": 0.9208990931510925,
3203
+ "z": 0.031931452453136444
3204
+ }, {
3205
+ "x": 0.5163551568984985,
3206
+ "y": 0.9432790875434875,
3207
+ "z": 0.024321340024471283
3208
+ }, {
3209
+ "x": 0.49399662017822266,
3210
+ "y": 0.8814862370491028,
3211
+ "z": 0.018687399104237556
3212
+ }, {
3213
+ "x": 0.44948166608810425,
3214
+ "y": 0.836137592792511,
3215
+ "z": 0.05702034756541252
3216
+ }, {
3217
+ "x": 0.47898444533348083,
3218
+ "y": 0.8836610913276672,
3219
+ "z": 0.03150695189833641
3220
+ }, {
3221
+ "x": 0.4454479217529297,
3222
+ "y": 0.8499438166618347,
3223
+ "z": 0.08868525922298431
3224
+ }, {
3225
+ "x": 0.49572959542274475,
3226
+ "y": 0.8452823758125305,
3227
+ "z": 0.0036111653316766024
3228
+ }, {
3229
+ "x": 0.5362502336502075,
3230
+ "y": 0.7222585678100586,
3231
+ "z": -0.027912352234125137
3232
+ }, {
3233
+ "x": 0.5393770337104797,
3234
+ "y": 0.7850722074508667,
3235
+ "z": -0.05415399745106697
3236
+ }, {
3237
+ "x": 0.531399667263031,
3238
+ "y": 0.7898418307304382,
3239
+ "z": -0.03883346915245056
3240
+ }, {
3241
+ "x": 0.5451627373695374,
3242
+ "y": 0.7717036604881287,
3243
+ "z": -0.06480253487825394
3244
+ }, {
3245
+ "x": 0.5206395983695984,
3246
+ "y": 0.6287745833396912,
3247
+ "z": -0.010521138086915016
3248
+ }, {
3249
+ "x": 0.4974782466888428,
3250
+ "y": 0.6191938519477844,
3251
+ "z": -0.014098240062594414
3252
+ }, {
3253
+ "x": 0.4774145185947418,
3254
+ "y": 0.6193130612373352,
3255
+ "z": -0.013643337413668633
3256
+ }, {
3257
+ "x": 0.4616098403930664,
3258
+ "y": 0.6259890198707581,
3259
+ "z": -0.008448202162981033
3260
+ }, {
3261
+ "x": 0.4516478478908539,
3262
+ "y": 0.6368461847305298,
3263
+ "z": 0.00009050309745362028
3264
+ }, {
3265
+ "x": 0.4485096037387848,
3266
+ "y": 0.6719120740890503,
3267
+ "z": 0.022984720766544342
3268
+ }, {
3269
+ "x": 0.42177659273147583,
3270
+ "y": 0.7240667343139648,
3271
+ "z": 0.08511673659086227
3272
+ }, {
3273
+ "x": 0.4616215229034424,
3274
+ "y": 0.6988231539726257,
3275
+ "z": 0.014238474890589714
3276
+ }, {
3277
+ "x": 0.4755798876285553,
3278
+ "y": 0.7034608721733093,
3279
+ "z": 0.00625590980052948
3280
+ }, {
3281
+ "x": 0.4924992024898529,
3282
+ "y": 0.7005885243415833,
3283
+ "z": 0.0009391739731654525
3284
+ }, {
3285
+ "x": 0.5082254409790039,
3286
+ "y": 0.693384051322937,
3287
+ "z": -0.0009464038303121924
3288
+ }, {
3289
+ "x": 0.5203112959861755,
3290
+ "y": 0.6849707961082458,
3291
+ "z": -0.0022114769089967012
3292
+ }, {
3293
+ "x": 0.52867591381073,
3294
+ "y": 0.6779075860977173,
3295
+ "z": -0.002962538506835699
3296
+ }, {
3297
+ "x": 0.4213953912258148,
3298
+ "y": 0.7219811677932739,
3299
+ "z": 0.1350894570350647
3300
+ }, {
3301
+ "x": 0.5320829749107361,
3302
+ "y": 0.794858992099762,
3303
+ "z": -0.03181503340601921
3304
+ }, {
3305
+ "x": 0.5452795028686523,
3306
+ "y": 0.7286570072174072,
3307
+ "z": -0.04771539941430092
3308
+ }, {
3309
+ "x": 0.5496407747268677,
3310
+ "y": 0.7866933345794678,
3311
+ "z": -0.06452003121376038
3312
+ }, {
3313
+ "x": 0.557040274143219,
3314
+ "y": 0.7962084412574768,
3315
+ "z": -0.05837344378232956
3316
+ }, {
3317
+ "x": 0.549176812171936,
3318
+ "y": 0.7895247936248779,
3319
+ "z": -0.057761140167713165
3320
+ }, {
3321
+ "x": 0.5362890362739563,
3322
+ "y": 0.8005836606025696,
3323
+ "z": -0.026903774589300156
3324
+ }, {
3325
+ "x": 0.560200035572052,
3326
+ "y": 0.7983731031417847,
3327
+ "z": -0.06172555685043335
3328
+ }, {
3329
+ "x": 0.5616944432258606,
3330
+ "y": 0.8022753596305847,
3331
+ "z": -0.045200999826192856
3332
+ }, {
3333
+ "x": 0.5273328423500061,
3334
+ "y": 0.6611284017562866,
3335
+ "z": 0.0029021520167589188
3336
+ }, {
3337
+ "x": 0.534850537776947,
3338
+ "y": 0.6660012006759644,
3339
+ "z": -0.005215510260313749
3340
+ }, {
3341
+ "x": 0.5394860506057739,
3342
+ "y": 0.6701375246047974,
3343
+ "z": -0.014931917190551758
3344
+ }, {
3345
+ "x": 0.4634307324886322,
3346
+ "y": 0.658291757106781,
3347
+ "z": 0.009295716881752014
3348
+ }, {
3349
+ "x": 0.4538393020629883,
3350
+ "y": 0.6519932150840759,
3351
+ "z": 0.00930330716073513
3352
+ }, {
3353
+ "x": 0.5776031613349915,
3354
+ "y": 0.7159298658370972,
3355
+ "z": -0.057365912944078445
3356
+ }, {
3357
+ "x": 0.6504855155944824,
3358
+ "y": 0.6461779475212097,
3359
+ "z": 0.014184834435582161
3360
+ }, {
3361
+ "x": 0.5860154032707214,
3362
+ "y": 0.7962266206741333,
3363
+ "z": -0.04522843658924103
3364
+ }, {
3365
+ "x": 0.6842049360275269,
3366
+ "y": 0.5631637573242188,
3367
+ "z": 0.07207967340946198
3368
+ }, {
3369
+ "x": 0.6152560710906982,
3370
+ "y": 0.6674962639808655,
3371
+ "z": 0.0007529259892180562
3372
+ }, {
3373
+ "x": 0.6280948519706726,
3374
+ "y": 0.6684326529502869,
3375
+ "z": 0.0016892586136236787
3376
+ }, {
3377
+ "x": 0.6408625245094299,
3378
+ "y": 0.6663892269134521,
3379
+ "z": 0.005331226624548435
3380
+ }, {
3381
+ "x": 0.6557814478874207,
3382
+ "y": 0.6534678936004639,
3383
+ "z": 0.01646413467824459
3384
+ }, {
3385
+ "x": 0.6035663485527039,
3386
+ "y": 0.6639701724052429,
3387
+ "z": 0.0013799630105495453
3388
+ }, {
3389
+ "x": 0.6329053044319153,
3390
+ "y": 0.608010470867157,
3391
+ "z": -0.006195899099111557
3392
+ }, {
3393
+ "x": 0.6167260408401489,
3394
+ "y": 0.6117533445358276,
3395
+ "z": -0.006319951266050339
3396
+ }, {
3397
+ "x": 0.6471013426780701,
3398
+ "y": 0.6112449765205383,
3399
+ "z": -0.0017843559617176652
3400
+ }, {
3401
+ "x": 0.6560901999473572,
3402
+ "y": 0.6185776591300964,
3403
+ "z": 0.004047257360070944
3404
+ }, {
3405
+ "x": 0.6666946411132812,
3406
+ "y": 0.6651176810264587,
3407
+ "z": 0.023647578433156013
3408
+ }, {
3409
+ "x": 0.6311345100402832,
3410
+ "y": 0.9495396018028259,
3411
+ "z": 0.014004078693687916
3412
+ }, {
3413
+ "x": 0.6544655561447144,
3414
+ "y": 0.6397901773452759,
3415
+ "z": 0.01809609681367874
3416
+ }, {
3417
+ "x": 0.6965808868408203,
3418
+ "y": 0.6482675075531006,
3419
+ "z": 0.08304904401302338
3420
+ }, {
3421
+ "x": 0.679817259311676,
3422
+ "y": 0.650188148021698,
3423
+ "z": 0.03632688894867897
3424
+ }, {
3425
+ "x": 0.6336516737937927,
3426
+ "y": 0.7541458010673523,
3427
+ "z": -0.007742783520370722
3428
+ }, {
3429
+ "x": 0.5921701192855835,
3430
+ "y": 0.8567668199539185,
3431
+ "z": -0.029399123042821884
3432
+ }, {
3433
+ "x": 0.591663658618927,
3434
+ "y": 0.870215654373169,
3435
+ "z": -0.02103729173541069
3436
+ }, {
3437
+ "x": 0.6068367958068848,
3438
+ "y": 0.8584195375442505,
3439
+ "z": -0.020668085664510727
3440
+ }, {
3441
+ "x": 0.6176617741584778,
3442
+ "y": 0.860965371131897,
3443
+ "z": -0.009790095500648022
3444
+ }, {
3445
+ "x": 0.6040634512901306,
3446
+ "y": 0.8686612844467163,
3447
+ "z": -0.015289564616978168
3448
+ }, {
3449
+ "x": 0.6143736839294434,
3450
+ "y": 0.8671170473098755,
3451
+ "z": -0.005712216719985008
3452
+ }, {
3453
+ "x": 0.6373105049133301,
3454
+ "y": 0.8815656900405884,
3455
+ "z": 0.012672550976276398
3456
+ }, {
3457
+ "x": 0.5832505822181702,
3458
+ "y": 0.7866312861442566,
3459
+ "z": -0.07051534950733185
3460
+ }, {
3461
+ "x": 0.5836675763130188,
3462
+ "y": 0.7658692598342896,
3463
+ "z": -0.07566110789775848
3464
+ }, {
3465
+ "x": 0.6709531545639038,
3466
+ "y": 0.604898989200592,
3467
+ "z": 0.005951565690338612
3468
+ }, {
3469
+ "x": 0.6029891967773438,
3470
+ "y": 0.705652117729187,
3471
+ "z": -0.013388276100158691
3472
+ }, {
3473
+ "x": 0.6131622195243835,
3474
+ "y": 0.7728396058082581,
3475
+ "z": -0.036248479038476944
3476
+ }, {
3477
+ "x": 0.6123163104057312,
3478
+ "y": 0.7612020373344421,
3479
+ "z": -0.03264721855521202
3480
+ }, {
3481
+ "x": 0.6696187853813171,
3482
+ "y": 0.744706928730011,
3483
+ "z": 0.009673702530562878
3484
+ }, {
3485
+ "x": 0.5803102254867554,
3486
+ "y": 0.7385968565940857,
3487
+ "z": -0.0689152330160141
3488
+ }, {
3489
+ "x": 0.6404349207878113,
3490
+ "y": 0.5877999663352966,
3491
+ "z": -0.01929756999015808
3492
+ }, {
3493
+ "x": 0.6588467955589294,
3494
+ "y": 0.5929454565048218,
3495
+ "z": -0.008487257175147533
3496
+ }, {
3497
+ "x": 0.6720337867736816,
3498
+ "y": 0.530631422996521,
3499
+ "z": 0.043437421321868896
3500
+ }, {
3501
+ "x": 0.584305465221405,
3502
+ "y": 0.6099005341529846,
3503
+ "z": -0.030301367864012718
3504
+ }, {
3505
+ "x": 0.6034283638000488,
3506
+ "y": 0.6217452883720398,
3507
+ "z": -0.001970183802768588
3508
+ }, {
3509
+ "x": 0.6460927724838257,
3510
+ "y": 0.8608663082122803,
3511
+ "z": 0.015541625209152699
3512
+ }, {
3513
+ "x": 0.6957815289497375,
3514
+ "y": 0.8326103091239929,
3515
+ "z": 0.13015234470367432
3516
+ }, {
3517
+ "x": 0.6043362617492676,
3518
+ "y": 0.7861682772636414,
3519
+ "z": -0.030476901680231094
3520
+ }, {
3521
+ "x": 0.594293475151062,
3522
+ "y": 0.7942103147506714,
3523
+ "z": -0.032218821346759796
3524
+ }, {
3525
+ "x": 0.6324057579040527,
3526
+ "y": 0.8665139675140381,
3527
+ "z": 0.014255806803703308
3528
+ }, {
3529
+ "x": 0.6296147704124451,
3530
+ "y": 0.8667733669281006,
3531
+ "z": 0.010388285852968693
3532
+ }, {
3533
+ "x": 0.663644552230835,
3534
+ "y": 0.5798642635345459,
3535
+ "z": -0.0022301070857793093
3536
+ }, {
3537
+ "x": 0.6140630841255188,
3538
+ "y": 0.7809288501739502,
3539
+ "z": -0.02835679054260254
3540
+ }, {
3541
+ "x": 0.615908145904541,
3542
+ "y": 0.5921698212623596,
3543
+ "z": -0.026804860681295395
3544
+ }, {
3545
+ "x": 0.617181122303009,
3546
+ "y": 0.5748661756515503,
3547
+ "z": -0.03060605563223362
3548
+ }, {
3549
+ "x": 0.6222207546234131,
3550
+ "y": 0.49137672781944275,
3551
+ "z": -0.011151673272252083
3552
+ }, {
3553
+ "x": 0.6669357419013977,
3554
+ "y": 0.5541607141494751,
3555
+ "z": 0.017466170713305473
3556
+ }, {
3557
+ "x": 0.6182981729507446,
3558
+ "y": 0.5320425629615784,
3559
+ "z": -0.021793590858578682
3560
+ }, {
3561
+ "x": 0.6760554313659668,
3562
+ "y": 0.595052182674408,
3563
+ "z": 0.017115700989961624
3564
+ }, {
3565
+ "x": 0.6801463961601257,
3566
+ "y": 0.5800720453262329,
3567
+ "z": 0.043127160519361496
3568
+ }, {
3569
+ "x": 0.5922210812568665,
3570
+ "y": 0.8644017577171326,
3571
+ "z": -0.02662893570959568
3572
+ }, {
3573
+ "x": 0.6054555177688599,
3574
+ "y": 0.8637874722480774,
3575
+ "z": -0.018363753333687782
3576
+ }, {
3577
+ "x": 0.6161889433860779,
3578
+ "y": 0.8641164898872375,
3579
+ "z": -0.008808949030935764
3580
+ }, {
3581
+ "x": 0.6017249822616577,
3582
+ "y": 0.7901403307914734,
3583
+ "z": -0.028126630932092667
3584
+ }, {
3585
+ "x": 0.631446123123169,
3586
+ "y": 0.8664817810058594,
3587
+ "z": 0.012112865224480629
3588
+ }, {
3589
+ "x": 0.6249198913574219,
3590
+ "y": 0.8716511130332947,
3591
+ "z": 0.003882825840264559
3592
+ }, {
3593
+ "x": 0.6281915903091431,
3594
+ "y": 0.867301881313324,
3595
+ "z": 0.009891441091895103
3596
+ }, {
3597
+ "x": 0.5986843109130859,
3598
+ "y": 0.7813931703567505,
3599
+ "z": -0.050227612257003784
3600
+ }, {
3601
+ "x": 0.6126407384872437,
3602
+ "y": 0.869275689125061,
3603
+ "z": -0.0031255714129656553
3604
+ }, {
3605
+ "x": 0.6027271151542664,
3606
+ "y": 0.8711842894554138,
3607
+ "z": -0.009324162267148495
3608
+ }, {
3609
+ "x": 0.59088134765625,
3610
+ "y": 0.8742044568061829,
3611
+ "z": -0.014608660712838173
3612
+ }, {
3613
+ "x": 0.5984604358673096,
3614
+ "y": 0.9216185212135315,
3615
+ "z": -0.005981989670544863
3616
+ }, {
3617
+ "x": 0.5950398445129395,
3618
+ "y": 0.8964707255363464,
3619
+ "z": -0.01703473925590515
3620
+ }, {
3621
+ "x": 0.5941568613052368,
3622
+ "y": 0.8882410526275635,
3623
+ "z": -0.017784785479307175
3624
+ }, {
3625
+ "x": 0.5928806662559509,
3626
+ "y": 0.8803883194923401,
3627
+ "z": -0.014153128489851952
3628
+ }, {
3629
+ "x": 0.5909661054611206,
3630
+ "y": 0.8748103976249695,
3631
+ "z": -0.012609979137778282
3632
+ }, {
3633
+ "x": 0.6128016710281372,
3634
+ "y": 0.8702545762062073,
3635
+ "z": -0.0022550546564161777
3636
+ }, {
3637
+ "x": 0.6150846481323242,
3638
+ "y": 0.8726804256439209,
3639
+ "z": -0.00414019962772727
3640
+ }, {
3641
+ "x": 0.6173093914985657,
3642
+ "y": 0.8770190477371216,
3643
+ "z": -0.005970994010567665
3644
+ }, {
3645
+ "x": 0.619335412979126,
3646
+ "y": 0.8814800977706909,
3647
+ "z": -0.0036864024586975574
3648
+ }, {
3649
+ "x": 0.6292637586593628,
3650
+ "y": 0.8314558267593384,
3651
+ "z": -0.007714875973761082
3652
+ }, {
3653
+ "x": 0.702275276184082,
3654
+ "y": 0.7320667505264282,
3655
+ "z": 0.1433621346950531
3656
+ }, {
3657
+ "x": 0.6204835176467896,
3658
+ "y": 0.8689177632331848,
3659
+ "z": 0.0044869170524179935
3660
+ }, {
3661
+ "x": 0.6223508715629578,
3662
+ "y": 0.8704851269721985,
3663
+ "z": 0.00352082890458405
3664
+ }, {
3665
+ "x": 0.590448260307312,
3666
+ "y": 0.8029727935791016,
3667
+ "z": -0.03200828656554222
3668
+ }, {
3669
+ "x": 0.6097423434257507,
3670
+ "y": 0.7933741211891174,
3671
+ "z": -0.018042555078864098
3672
+ }, {
3673
+ "x": 0.59229576587677,
3674
+ "y": 0.7993767261505127,
3675
+ "z": -0.032564569264650345
3676
+ }, {
3677
+ "x": 0.6171364188194275,
3678
+ "y": 0.7153720259666443,
3679
+ "z": -0.007672437466681004
3680
+ }, {
3681
+ "x": 0.6389747858047485,
3682
+ "y": 0.726390540599823,
3683
+ "z": -0.002999067772179842
3684
+ }, {
3685
+ "x": 0.6151940226554871,
3686
+ "y": 0.769412100315094,
3687
+ "z": -0.024427521973848343
3688
+ }, {
3689
+ "x": 0.6526776552200317,
3690
+ "y": 0.505868136882782,
3691
+ "z": 0.01412637997418642
3692
+ }, {
3693
+ "x": 0.6475822329521179,
3694
+ "y": 0.5375454425811768,
3695
+ "z": -0.0033899128902703524
3696
+ }, {
3697
+ "x": 0.6433356404304504,
3698
+ "y": 0.5714520215988159,
3699
+ "z": -0.017428796738386154
3700
+ }, {
3701
+ "x": 0.626949667930603,
3702
+ "y": 0.8962116837501526,
3703
+ "z": 0.005602736957371235
3704
+ }, {
3705
+ "x": 0.5868416428565979,
3706
+ "y": 0.5829002261161804,
3707
+ "z": -0.03727729618549347
3708
+ }, {
3709
+ "x": 0.5877229571342468,
3710
+ "y": 0.5345035791397095,
3711
+ "z": -0.032396964728832245
3712
+ }, {
3713
+ "x": 0.5887066125869751,
3714
+ "y": 0.48655083775520325,
3715
+ "z": -0.025856535881757736
3716
+ }, {
3717
+ "x": 0.6507197618484497,
3718
+ "y": 0.6612282991409302,
3719
+ "z": 0.011114613153040409
3720
+ }, {
3721
+ "x": 0.6803066730499268,
3722
+ "y": 0.677992045879364,
3723
+ "z": 0.032125361263751984
3724
+ }, {
3725
+ "x": 0.5963194370269775,
3726
+ "y": 0.6598632335662842,
3727
+ "z": 0.002976928371936083
3728
+ }, {
3729
+ "x": 0.667536199092865,
3730
+ "y": 0.6274255514144897,
3731
+ "z": 0.015618261881172657
3732
+ }, {
3733
+ "x": 0.5930740833282471,
3734
+ "y": 0.6940041780471802,
3735
+ "z": -0.019217798486351967
3736
+ }, {
3737
+ "x": 0.6053346395492554,
3738
+ "y": 0.7676517963409424,
3739
+ "z": -0.050308309495449066
3740
+ }, {
3741
+ "x": 0.6934473514556885,
3742
+ "y": 0.6884298920631409,
3743
+ "z": 0.04794462397694588
3744
+ }, {
3745
+ "x": 0.6738007664680481,
3746
+ "y": 0.6934011578559875,
3747
+ "z": 0.020697161555290222
3748
+ }, {
3749
+ "x": 0.6588084697723389,
3750
+ "y": 0.7033141851425171,
3751
+ "z": 0.008462334051728249
3752
+ }, {
3753
+ "x": 0.6346072554588318,
3754
+ "y": 0.7029502391815186,
3755
+ "z": 0.001542167621664703
3756
+ }, {
3757
+ "x": 0.6157816648483276,
3758
+ "y": 0.6966525912284851,
3759
+ "z": -0.002009218093007803
3760
+ }, {
3761
+ "x": 0.6015574336051941,
3762
+ "y": 0.688928484916687,
3763
+ "z": -0.006588225718587637
3764
+ }, {
3765
+ "x": 0.5746836066246033,
3766
+ "y": 0.6711069345474243,
3767
+ "z": -0.03597589209675789
3768
+ }, {
3769
+ "x": 0.6947521567344666,
3770
+ "y": 0.7309479117393494,
3771
+ "z": 0.046707939356565475
3772
+ }, {
3773
+ "x": 0.6759101152420044,
3774
+ "y": 0.6249120831489563,
3775
+ "z": 0.021654341369867325
3776
+ }, {
3777
+ "x": 0.5794773101806641,
3778
+ "y": 0.7971615195274353,
3779
+ "z": -0.06339326500892639
3780
+ }, {
3781
+ "x": 0.6041849851608276,
3782
+ "y": 0.727514922618866,
3783
+ "z": -0.017512541264295578
3784
+ }, {
3785
+ "x": 0.6968844532966614,
3786
+ "y": 0.6440950036048889,
3787
+ "z": 0.12727996706962585
3788
+ }, {
3789
+ "x": 0.5910853147506714,
3790
+ "y": 0.679325520992279,
3791
+ "z": -0.009497715160250664
3792
+ }, {
3793
+ "x": 0.6157375574111938,
3794
+ "y": 0.7695677280426025,
3795
+ "z": -0.010624290443956852
3796
+ }, {
3797
+ "x": 0.6606494784355164,
3798
+ "y": 0.6410489678382874,
3799
+ "z": 0.0208158977329731
3800
+ }, {
3801
+ "x": 0.6040687561035156,
3802
+ "y": 0.7531470656394958,
3803
+ "z": -0.045887019485235214
3804
+ }, {
3805
+ "x": 0.7012156248092651,
3806
+ "y": 0.780247151851654,
3807
+ "z": 0.14028730988502502
3808
+ }, {
3809
+ "x": 0.595149576663971,
3810
+ "y": 0.6527782678604126,
3811
+ "z": 0.006308757700026035
3812
+ }, {
3813
+ "x": 0.5925500392913818,
3814
+ "y": 0.7436665892601013,
3815
+ "z": -0.060151755809783936
3816
+ }, {
3817
+ "x": 0.6780198812484741,
3818
+ "y": 0.8905693888664246,
3819
+ "z": 0.0626060739159584
3820
+ }, {
3821
+ "x": 0.676746666431427,
3822
+ "y": 0.9113880395889282,
3823
+ "z": 0.08726003766059875
3824
+ }, {
3825
+ "x": 0.7030686140060425,
3826
+ "y": 0.7312687635421753,
3827
+ "z": 0.09529774636030197
3828
+ }, {
3829
+ "x": 0.688987135887146,
3830
+ "y": 0.8588417172431946,
3831
+ "z": 0.07752864807844162
3832
+ }, {
3833
+ "x": 0.6883691549301147,
3834
+ "y": 0.6109960675239563,
3835
+ "z": 0.06669612973928452
3836
+ }, {
3837
+ "x": 0.6358906030654907,
3838
+ "y": 0.9702065587043762,
3839
+ "z": 0.023120900616049767
3840
+ }, {
3841
+ "x": 0.5781539678573608,
3842
+ "y": 0.8023634552955627,
3843
+ "z": -0.044763918966054916
3844
+ }, {
3845
+ "x": 0.6170316934585571,
3846
+ "y": 0.7408350706100464,
3847
+ "z": -0.011375460773706436
3848
+ }, {
3849
+ "x": 0.688542366027832,
3850
+ "y": 0.6516284346580505,
3851
+ "z": 0.050206027925014496
3852
+ }, {
3853
+ "x": 0.6385149359703064,
3854
+ "y": 0.6540714502334595,
3855
+ "z": 0.006462941411882639
3856
+ }, {
3857
+ "x": 0.6279382109642029,
3858
+ "y": 0.6563615798950195,
3859
+ "z": 0.003062846139073372
3860
+ }, {
3861
+ "x": 0.6268895268440247,
3862
+ "y": 0.8736732006072998,
3863
+ "z": 0.00627936702221632
3864
+ }, {
3865
+ "x": 0.6944946050643921,
3866
+ "y": 0.7709181308746338,
3867
+ "z": 0.053824134171009064
3868
+ }, {
3869
+ "x": 0.614617109298706,
3870
+ "y": 1.0022112131118774,
3871
+ "z": 0.02719894051551819
3872
+ }, {
3873
+ "x": 0.6493719220161438,
3874
+ "y": 0.9665167927742004,
3875
+ "z": 0.053563784807920456
3876
+ }, {
3877
+ "x": 0.6624587178230286,
3878
+ "y": 0.943530797958374,
3879
+ "z": 0.068605437874794
3880
+ }, {
3881
+ "x": 0.6162528991699219,
3882
+ "y": 0.6558693051338196,
3883
+ "z": 0.002187855076044798
3884
+ }, {
3885
+ "x": 0.6058168411254883,
3886
+ "y": 0.654328465461731,
3887
+ "z": 0.0036193584091961384
3888
+ }, {
3889
+ "x": 0.5987918972969055,
3890
+ "y": 0.6536934971809387,
3891
+ "z": 0.006134530063718557
3892
+ }, {
3893
+ "x": 0.6831037402153015,
3894
+ "y": 0.6195642948150635,
3895
+ "z": 0.03511790186166763
3896
+ }, {
3897
+ "x": 0.6062582731246948,
3898
+ "y": 0.6356398463249207,
3899
+ "z": 0.001280312892049551
3900
+ }, {
3901
+ "x": 0.6174948811531067,
3902
+ "y": 0.62776118516922,
3903
+ "z": -0.0013642468256875873
3904
+ }, {
3905
+ "x": 0.6297246217727661,
3906
+ "y": 0.6253792643547058,
3907
+ "z": -0.0007034156005829573
3908
+ }, {
3909
+ "x": 0.6407091617584229,
3910
+ "y": 0.627578616142273,
3911
+ "z": 0.0028144705574959517
3912
+ }, {
3913
+ "x": 0.6479622721672058,
3914
+ "y": 0.6322650909423828,
3915
+ "z": 0.00750273372977972
3916
+ }, {
3917
+ "x": 0.6915091276168823,
3918
+ "y": 0.5990704298019409,
3919
+ "z": 0.10270945727825165
3920
+ }, {
3921
+ "x": 0.6457163095474243,
3922
+ "y": 0.6504453420639038,
3923
+ "z": 0.010696077719330788
3924
+ }, {
3925
+ "x": 0.6164222955703735,
3926
+ "y": 0.8231936097145081,
3927
+ "z": -0.016772059723734856
3928
+ }, {
3929
+ "x": 0.6042401194572449,
3930
+ "y": 0.7830976843833923,
3931
+ "z": -0.03630910441279411
3932
+ }, {
3933
+ "x": 0.5922216773033142,
3934
+ "y": 0.8228387236595154,
3935
+ "z": -0.029992375522851944
3936
+ }, {
3937
+ "x": 0.6646111011505127,
3938
+ "y": 0.92097008228302,
3939
+ "z": 0.050967294722795486
3940
+ }, {
3941
+ "x": 0.651232898235321,
3942
+ "y": 0.9460107088088989,
3943
+ "z": 0.038000158965587616
3944
+ }, {
3945
+ "x": 0.6140977144241333,
3946
+ "y": 0.9882472157478333,
3947
+ "z": 0.009882091544568539
3948
+ }, {
3949
+ "x": 0.6870781183242798,
3950
+ "y": 0.8768675327301025,
3951
+ "z": 0.10980932414531708
3952
+ }, {
3953
+ "x": 0.5986856818199158,
3954
+ "y": 0.6456438899040222,
3955
+ "z": 0.003999010659754276
3956
+ }, {
3957
+ "x": 0.585981547832489,
3958
+ "y": 0.7034481763839722,
3959
+ "z": -0.0377722829580307
3960
+ }, {
3961
+ "x": 0.6342031359672546,
3962
+ "y": 0.9867448806762695,
3963
+ "z": 0.03786521404981613
3964
+ }, {
3965
+ "x": 0.7013950943946838,
3966
+ "y": 0.776049017906189,
3967
+ "z": 0.09598205983638763
3968
+ }, {
3969
+ "x": 0.6030206680297852,
3970
+ "y": 0.8719133138656616,
3971
+ "z": -0.007931148633360863
3972
+ }, {
3973
+ "x": 0.6050592064857483,
3974
+ "y": 0.8767156004905701,
3975
+ "z": -0.009791925549507141
3976
+ }, {
3977
+ "x": 0.6073468923568726,
3978
+ "y": 0.8831382393836975,
3979
+ "z": -0.012361008673906326
3980
+ }, {
3981
+ "x": 0.6087977290153503,
3982
+ "y": 0.890143632888794,
3983
+ "z": -0.01098148338496685
3984
+ }, {
3985
+ "x": 0.6147705316543579,
3986
+ "y": 0.9110084772109985,
3987
+ "z": -0.0018823575228452682
3988
+ }, {
3989
+ "x": 0.622577965259552,
3990
+ "y": 0.8670604825019836,
3991
+ "z": 0.002609190298244357
3992
+ }, {
3993
+ "x": 0.6241236329078674,
3994
+ "y": 0.8651344180107117,
3995
+ "z": 0.0025534380692988634
3996
+ }, {
3997
+ "x": 0.6257084608078003,
3998
+ "y": 0.8638408184051514,
3999
+ "z": 0.0023300074972212315
4000
+ }, {
4001
+ "x": 0.639931321144104,
4002
+ "y": 0.8449671268463135,
4003
+ "z": 0.0038123116828501225
4004
+ }, {
4005
+ "x": 0.6810906529426575,
4006
+ "y": 0.7856625318527222,
4007
+ "z": 0.02717764675617218
4008
+ }, {
4009
+ "x": 0.583532452583313,
4010
+ "y": 0.6811994910240173,
4011
+ "z": -0.026588857173919678
4012
+ }, {
4013
+ "x": 0.5855660438537598,
4014
+ "y": 0.6393819451332092,
4015
+ "z": -0.004512844607234001
4016
+ }, {
4017
+ "x": 0.5932201743125916,
4018
+ "y": 0.6398029327392578,
4019
+ "z": 0.0008020466193556786
4020
+ }, {
4021
+ "x": 0.6200879812240601,
4022
+ "y": 0.8683351874351501,
4023
+ "z": 0.00417016725987196
4024
+ }, {
4025
+ "x": 0.6842559576034546,
4026
+ "y": 0.8330534100532532,
4027
+ "z": 0.050836317241191864
4028
+ }, {
4029
+ "x": 0.5754412412643433,
4030
+ "y": 0.6418221592903137,
4031
+ "z": -0.022838059812784195
4032
+ }, {
4033
+ "x": 0.6232790350914001,
4034
+ "y": 0.9295297265052795,
4035
+ "z": 0.006339520215988159
4036
+ }, {
4037
+ "x": 0.5764067769050598,
4038
+ "y": 0.694546639919281,
4039
+ "z": -0.04825803264975548
4040
+ }, {
4041
+ "x": 0.59778892993927,
4042
+ "y": 0.7343927621841431,
4043
+ "z": -0.035004377365112305
4044
+ }, {
4045
+ "x": 0.6042810678482056,
4046
+ "y": 0.9441440105438232,
4047
+ "z": -0.0010970570147037506
4048
+ }, {
4049
+ "x": 0.6496372222900391,
4050
+ "y": 0.8869078159332275,
4051
+ "z": 0.021036235615611076
4052
+ }, {
4053
+ "x": 0.6274012327194214,
4054
+ "y": 0.7830310463905334,
4055
+ "z": -0.006658440921455622
4056
+ }, {
4057
+ "x": 0.637792706489563,
4058
+ "y": 0.9104999899864197,
4059
+ "z": 0.014290250837802887
4060
+ }, {
4061
+ "x": 0.6549934148788452,
4062
+ "y": 0.7748609185218811,
4063
+ "z": -0.0006672973395325243
4064
+ }, {
4065
+ "x": 0.6404005289077759,
4066
+ "y": 0.801220715045929,
4067
+ "z": -0.0026642554439604282
4068
+ }, {
4069
+ "x": 0.6671456694602966,
4070
+ "y": 0.8045546412467957,
4071
+ "z": 0.013180811889469624
4072
+ }, {
4073
+ "x": 0.6107483506202698,
4074
+ "y": 0.9680658578872681,
4075
+ "z": 0.001778992242179811
4076
+ }, {
4077
+ "x": 0.6060343980789185,
4078
+ "y": 0.744587242603302,
4079
+ "z": -0.024382334202528
4080
+ }, {
4081
+ "x": 0.6602751612663269,
4082
+ "y": 0.8998945355415344,
4083
+ "z": 0.0344940721988678
4084
+ }, {
4085
+ "x": 0.6463775038719177,
4086
+ "y": 0.9262562394142151,
4087
+ "z": 0.02617623284459114
4088
+ }, {
4089
+ "x": 0.6579852104187012,
4090
+ "y": 0.8602304458618164,
4091
+ "z": 0.021586716175079346
4092
+ }, {
4093
+ "x": 0.6926165223121643,
4094
+ "y": 0.8053340315818787,
4095
+ "z": 0.061075080186128616
4096
+ }, {
4097
+ "x": 0.6724731922149658,
4098
+ "y": 0.8594399690628052,
4099
+ "z": 0.03457934781908989
4100
+ }, {
4101
+ "x": 0.6975721716880798,
4102
+ "y": 0.8183245062828064,
4103
+ "z": 0.09300774335861206
4104
+ }, {
4105
+ "x": 0.6512877941131592,
4106
+ "y": 0.8258221745491028,
4107
+ "z": 0.006324059329926968
4108
+ }, {
4109
+ "x": 0.594887375831604,
4110
+ "y": 0.7148372530937195,
4111
+ "z": -0.026898479089140892
4112
+ }, {
4113
+ "x": 0.6017440557479858,
4114
+ "y": 0.7773507833480835,
4115
+ "z": -0.05312420800328255
4116
+ }, {
4117
+ "x": 0.6096571683883667,
4118
+ "y": 0.7806998491287231,
4119
+ "z": -0.037646256387233734
4120
+ }, {
4121
+ "x": 0.5952993035316467,
4122
+ "y": 0.7654367685317993,
4123
+ "z": -0.06398405134677887
4124
+ }, {
4125
+ "x": 0.5950021147727966,
4126
+ "y": 0.6201304793357849,
4127
+ "z": -0.009297547861933708
4128
+ }, {
4129
+ "x": 0.6165438890457153,
4130
+ "y": 0.6052900552749634,
4131
+ "z": -0.012455573305487633
4132
+ }, {
4133
+ "x": 0.6362661719322205,
4134
+ "y": 0.6015968918800354,
4135
+ "z": -0.011649220250546932
4136
+ }, {
4137
+ "x": 0.6522727608680725,
4138
+ "y": 0.6046400666236877,
4139
+ "z": -0.005903332494199276
4140
+ }, {
4141
+ "x": 0.6625409722328186,
4142
+ "y": 0.6128141283988953,
4143
+ "z": 0.0030042496509850025
4144
+ }, {
4145
+ "x": 0.6688099503517151,
4146
+ "y": 0.6457712054252625,
4147
+ "z": 0.026322703808546066
4148
+ }, {
4149
+ "x": 0.7013440728187561,
4150
+ "y": 0.6893666386604309,
4151
+ "z": 0.08984331786632538
4152
+ }, {
4153
+ "x": 0.6608623266220093,
4154
+ "y": 0.6749406456947327,
4155
+ "z": 0.0172116681933403
4156
+ }, {
4157
+ "x": 0.6482325196266174,
4158
+ "y": 0.6823726296424866,
4159
+ "z": 0.008881398476660252
4160
+ }, {
4161
+ "x": 0.6313265562057495,
4162
+ "y": 0.6842025518417358,
4163
+ "z": 0.0031308617908507586
4164
+ }, {
4165
+ "x": 0.6147016286849976,
4166
+ "y": 0.6809731721878052,
4167
+ "z": 0.0007630771724507213
4168
+ }, {
4169
+ "x": 0.6018834114074707,
4170
+ "y": 0.6755372285842896,
4171
+ "z": -0.0008834321051836014
4172
+ }, {
4173
+ "x": 0.5925027132034302,
4174
+ "y": 0.670681357383728,
4175
+ "z": -0.001968748401850462
4176
+ }, {
4177
+ "x": 0.700127363204956,
4178
+ "y": 0.6871103644371033,
4179
+ "z": 0.13980500400066376
4180
+ }, {
4181
+ "x": 0.6095665693283081,
4182
+ "y": 0.7853189706802368,
4183
+ "z": -0.03074747882783413
4184
+ }, {
4185
+ "x": 0.5880423784255981,
4186
+ "y": 0.7229287028312683,
4187
+ "z": -0.04691500961780548
4188
+ }, {
4189
+ "x": 0.5930182337760925,
4190
+ "y": 0.7811514139175415,
4191
+ "z": -0.06398335844278336
4192
+ }, {
4193
+ "x": 0.5867722034454346,
4194
+ "y": 0.7922660112380981,
4195
+ "z": -0.05794971063733101
4196
+ }, {
4197
+ "x": 0.5933279991149902,
4198
+ "y": 0.7842848896980286,
4199
+ "z": -0.05714067071676254
4200
+ }, {
4201
+ "x": 0.6063535809516907,
4202
+ "y": 0.7920218706130981,
4203
+ "z": -0.02590685710310936
4204
+ }, {
4205
+ "x": 0.5839452743530273,
4206
+ "y": 0.794978141784668,
4207
+ "z": -0.0615212507545948
4208
+ }, {
4209
+ "x": 0.5828126072883606,
4210
+ "y": 0.8000800013542175,
4211
+ "z": -0.0449722595512867
4212
+ }, {
4213
+ "x": 0.5909603834152222,
4214
+ "y": 0.6541213393211365,
4215
+ "z": 0.003991890233010054
4216
+ }, {
4217
+ "x": 0.5852181911468506,
4218
+ "y": 0.6602938771247864,
4219
+ "z": -0.004428438376635313
4220
+ }, {
4221
+ "x": 0.5825737714767456,
4222
+ "y": 0.6651063561439514,
4223
+ "z": -0.014345290139317513
4224
+ }, {
4225
+ "x": 0.6517343521118164,
4226
+ "y": 0.6362385153770447,
4227
+ "z": 0.012151890434324741
4228
+ }, {
4229
+ "x": 0.6615052819252014,
4230
+ "y": 0.6281577944755554,
4231
+ "z": 0.0123682152479887
4232
+ }, {
4233
+ "x": 0.4856873154640198,
4234
+ "y": 0.6568945646286011,
4235
+ "z": 0.000720038078725338
4236
+ }, {
4237
+ "x": 0.49988406896591187,
4238
+ "y": 0.6547410488128662,
4239
+ "z": 0.0006949726957827806
4240
+ }, {
4241
+ "x": 0.48438939452171326,
4242
+ "y": 0.6392973065376282,
4243
+ "z": 0.000705525919329375
4244
+ }, {
4245
+ "x": 0.47143134474754333,
4246
+ "y": 0.6589511632919312,
4247
+ "z": 0.0006980331381782889
4248
+ }, {
4249
+ "x": 0.48704618215560913,
4250
+ "y": 0.6752797961235046,
4251
+ "z": 0.0006921177846379578
4252
+ }, {
4253
+ "x": 0.6243702173233032,
4254
+ "y": 0.640461802482605,
4255
+ "z": -0.00006592126737814397
4256
+ }, {
4257
+ "x": 0.6390967965126038,
4258
+ "y": 0.6385173797607422,
4259
+ "z": -0.00016105435497593135
4260
+ }, {
4261
+ "x": 0.6230536699295044,
4262
+ "y": 0.6224825382232666,
4263
+ "z": -0.00016136496560648084
4264
+ }, {
4265
+ "x": 0.6095397472381592,
4266
+ "y": 0.641917884349823,
4267
+ "z": -0.0001803556369850412
4268
+ }, {
4269
+ "x": 0.6250996589660645,
4270
+ "y": 0.6586247682571411,
4271
+ "z": -0.0001785515050869435
4272
+ }]],
4273
+ "faceBlendshapes": [{
4274
+ "categories": [{
4275
+ "index": 0,
4276
+ "score": 0.000005187174338061595,
4277
+ "categoryName": "_neutral",
4278
+ "displayName": ""
4279
+ }, {
4280
+ "index": 1,
4281
+ "score": 0.24521504342556,
4282
+ "categoryName": "browDownLeft",
4283
+ "displayName": ""
4284
+ }, {
4285
+ "index": 2,
4286
+ "score": 0.1987743377685547,
4287
+ "categoryName": "browDownRight",
4288
+ "displayName": ""
4289
+ }, {
4290
+ "index": 3,
4291
+ "score": 0.013400448486208916,
4292
+ "categoryName": "browInnerUp",
4293
+ "displayName": ""
4294
+ }, {
4295
+ "index": 4,
4296
+ "score": 0.012361560948193073,
4297
+ "categoryName": "browOuterUpLeft",
4298
+ "displayName": ""
4299
+ }, {
4300
+ "index": 5,
4301
+ "score": 0.019305096939206123,
4302
+ "categoryName": "browOuterUpRight",
4303
+ "displayName": ""
4304
+ }, {
4305
+ "index": 6,
4306
+ "score": 0.000028426356948330067,
4307
+ "categoryName": "cheekPuff",
4308
+ "displayName": ""
4309
+ }, {
4310
+ "index": 7,
4311
+ "score": 3.4500112633395474e-7,
4312
+ "categoryName": "cheekSquintLeft",
4313
+ "displayName": ""
4314
+ }, {
4315
+ "index": 8,
4316
+ "score": 4.83789051486383e-7,
4317
+ "categoryName": "cheekSquintRight",
4318
+ "displayName": ""
4319
+ }, {
4320
+ "index": 9,
4321
+ "score": 0.07650448381900787,
4322
+ "categoryName": "eyeBlinkLeft",
4323
+ "displayName": ""
4324
+ }, {
4325
+ "index": 10,
4326
+ "score": 0.05070012807846069,
4327
+ "categoryName": "eyeBlinkRight",
4328
+ "displayName": ""
4329
+ }, {
4330
+ "index": 11,
4331
+ "score": 0.13978900015354156,
4332
+ "categoryName": "eyeLookDownLeft",
4333
+ "displayName": ""
4334
+ }, {
4335
+ "index": 12,
4336
+ "score": 0.14198613166809082,
4337
+ "categoryName": "eyeLookDownRight",
4338
+ "displayName": ""
4339
+ }, {
4340
+ "index": 13,
4341
+ "score": 0.2177766114473343,
4342
+ "categoryName": "eyeLookInLeft",
4343
+ "displayName": ""
4344
+ }, {
4345
+ "index": 14,
4346
+ "score": 0.014739357866346836,
4347
+ "categoryName": "eyeLookInRight",
4348
+ "displayName": ""
4349
+ }, {
4350
+ "index": 15,
4351
+ "score": 0.02361512929201126,
4352
+ "categoryName": "eyeLookOutLeft",
4353
+ "displayName": ""
4354
+ }, {
4355
+ "index": 16,
4356
+ "score": 0.19679604470729828,
4357
+ "categoryName": "eyeLookOutRight",
4358
+ "displayName": ""
4359
+ }, {
4360
+ "index": 17,
4361
+ "score": 0.04874616861343384,
4362
+ "categoryName": "eyeLookUpLeft",
4363
+ "displayName": ""
4364
+ }, {
4365
+ "index": 18,
4366
+ "score": 0.049392376095056534,
4367
+ "categoryName": "eyeLookUpRight",
4368
+ "displayName": ""
4369
+ }, {
4370
+ "index": 19,
4371
+ "score": 0.34944331645965576,
4372
+ "categoryName": "eyeSquintLeft",
4373
+ "displayName": ""
4374
+ }, {
4375
+ "index": 20,
4376
+ "score": 0.2939716875553131,
4377
+ "categoryName": "eyeSquintRight",
4378
+ "displayName": ""
4379
+ }, {
4380
+ "index": 21,
4381
+ "score": 0.005955042317509651,
4382
+ "categoryName": "eyeWideLeft",
4383
+ "displayName": ""
4384
+ }, {
4385
+ "index": 22,
4386
+ "score": 0.006776117719709873,
4387
+ "categoryName": "eyeWideRight",
4388
+ "displayName": ""
4389
+ }, {
4390
+ "index": 23,
4391
+ "score": 0.000016942436559475027,
4392
+ "categoryName": "jawForward",
4393
+ "displayName": ""
4394
+ }, {
4395
+ "index": 24,
4396
+ "score": 0.0045165494084358215,
4397
+ "categoryName": "jawLeft",
4398
+ "displayName": ""
4399
+ }, {
4400
+ "index": 25,
4401
+ "score": 0.07803940027952194,
4402
+ "categoryName": "jawOpen",
4403
+ "displayName": ""
4404
+ }, {
4405
+ "index": 26,
4406
+ "score": 0.00002090057751047425,
4407
+ "categoryName": "jawRight",
4408
+ "displayName": ""
4409
+ }, {
4410
+ "index": 27,
4411
+ "score": 0.06032035872340202,
4412
+ "categoryName": "mouthClose",
4413
+ "displayName": ""
4414
+ }, {
4415
+ "index": 28,
4416
+ "score": 0.00228882092051208,
4417
+ "categoryName": "mouthDimpleLeft",
4418
+ "displayName": ""
4419
+ }, {
4420
+ "index": 29,
4421
+ "score": 0.00781762320548296,
4422
+ "categoryName": "mouthDimpleRight",
4423
+ "displayName": ""
4424
+ }, {
4425
+ "index": 30,
4426
+ "score": 0.0017093931091949344,
4427
+ "categoryName": "mouthFrownLeft",
4428
+ "displayName": ""
4429
+ }, {
4430
+ "index": 31,
4431
+ "score": 0.0019319106359034777,
4432
+ "categoryName": "mouthFrownRight",
4433
+ "displayName": ""
4434
+ }, {
4435
+ "index": 32,
4436
+ "score": 0.00008485237776767462,
4437
+ "categoryName": "mouthFunnel",
4438
+ "displayName": ""
4439
+ }, {
4440
+ "index": 33,
4441
+ "score": 0.0009051355300471187,
4442
+ "categoryName": "mouthLeft",
4443
+ "displayName": ""
4444
+ }, {
4445
+ "index": 34,
4446
+ "score": 0.0003630454302765429,
4447
+ "categoryName": "mouthLowerDownLeft",
4448
+ "displayName": ""
4449
+ }, {
4450
+ "index": 35,
4451
+ "score": 0.00017601238505449146,
4452
+ "categoryName": "mouthLowerDownRight",
4453
+ "displayName": ""
4454
+ }, {
4455
+ "index": 36,
4456
+ "score": 0.12865161895751953,
4457
+ "categoryName": "mouthPressLeft",
4458
+ "displayName": ""
4459
+ }, {
4460
+ "index": 37,
4461
+ "score": 0.20137207210063934,
4462
+ "categoryName": "mouthPressRight",
4463
+ "displayName": ""
4464
+ }, {
4465
+ "index": 38,
4466
+ "score": 0.0022203284315764904,
4467
+ "categoryName": "mouthPucker",
4468
+ "displayName": ""
4469
+ }, {
4470
+ "index": 39,
4471
+ "score": 0.0009096377179957926,
4472
+ "categoryName": "mouthRight",
4473
+ "displayName": ""
4474
+ }, {
4475
+ "index": 40,
4476
+ "score": 0.34189721941947937,
4477
+ "categoryName": "mouthRollLower",
4478
+ "displayName": ""
4479
+ }, {
4480
+ "index": 41,
4481
+ "score": 0.11409689486026764,
4482
+ "categoryName": "mouthRollUpper",
4483
+ "displayName": ""
4484
+ }, {
4485
+ "index": 42,
4486
+ "score": 0.17172536253929138,
4487
+ "categoryName": "mouthShrugLower",
4488
+ "displayName": ""
4489
+ }, {
4490
+ "index": 43,
4491
+ "score": 0.004038424696773291,
4492
+ "categoryName": "mouthShrugUpper",
4493
+ "displayName": ""
4494
+ }, {
4495
+ "index": 44,
4496
+ "score": 0.00023205230536404997,
4497
+ "categoryName": "mouthSmileLeft",
4498
+ "displayName": ""
4499
+ }, {
4500
+ "index": 45,
4501
+ "score": 0.00019313619122840464,
4502
+ "categoryName": "mouthSmileRight",
4503
+ "displayName": ""
4504
+ }, {
4505
+ "index": 46,
4506
+ "score": 0.0018571305554360151,
4507
+ "categoryName": "mouthStretchLeft",
4508
+ "displayName": ""
4509
+ }, {
4510
+ "index": 47,
4511
+ "score": 0.0023813238367438316,
4512
+ "categoryName": "mouthStretchRight",
4513
+ "displayName": ""
4514
+ }, {
4515
+ "index": 48,
4516
+ "score": 0.000024323100660694763,
4517
+ "categoryName": "mouthUpperUpLeft",
4518
+ "displayName": ""
4519
+ }, {
4520
+ "index": 49,
4521
+ "score": 0.00003161552012898028,
4522
+ "categoryName": "mouthUpperUpRight",
4523
+ "displayName": ""
4524
+ }, {
4525
+ "index": 50,
4526
+ "score": 1.08198406678639e-7,
4527
+ "categoryName": "noseSneerLeft",
4528
+ "displayName": ""
4529
+ }, {
4530
+ "index": 51,
4531
+ "score": 0.0000012652527630052646,
4532
+ "categoryName": "noseSneerRight",
4533
+ "displayName": ""
4534
+ }],
4535
+ "headIndex": -1,
4536
+ "headName": ""
4537
+ }],
4538
+ "facialTransformationMatrixes": [{
4539
+ "rows": 4,
4540
+ "columns": 4,
4541
+ "data": [0.9947517514228821, 0.10230544209480286, 0.0013679931871592999, 0, -0.10230997204780579, 0.9947447776794434, 0.003816320328041911, 0, -0.000970348424743861, -0.0039362297393381596, 0.9999914169311523, 0, 2.8888821601867676, -7.808934211730957, -30.52109146118164, 1]
4542
+ }]
4543
+ }
2119
4544
  };
2120
4545
 
2121
- export { Facemesh, FacemeshDatas };
4546
+ export { Facemesh, FacemeshDatas, FacemeshEye, FacemeshEyeDefaults };