@zappar/zappar-cv 0.4.0-beta.3 → 0.4.0-beta.9
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/CHANGELOG.md +79 -34
- package/README.md +2 -2
- package/lib/camera-source-map.d.ts +10 -0
- package/lib/camera-source-map.js +40 -0
- package/lib/camera-source.d.ts +2 -5
- package/lib/camera-source.js +3 -13
- package/lib/compatibility.js +1 -1
- package/lib/drawcamera.js +2 -1
- package/lib/gen/zappar-client.js +6 -1
- package/lib/gen/zappar-cwrap.js +37 -21
- package/lib/gen/zappar-native.d.ts +11 -0
- package/lib/gen/zappar-native.js +13 -1
- package/lib/gen/zappar-server.js +1 -1
- package/lib/gen/zappar.d.ts +5 -0
- package/lib/gen/zappar.js +5 -3
- package/lib/gfx.d.ts +1 -0
- package/lib/gfx.js +4 -0
- package/lib/gl-state-manager.d.ts +9 -0
- package/lib/gl-state-manager.js +35 -0
- package/lib/html-element-source.d.ts +3 -20
- package/lib/html-element-source.js +19 -263
- package/lib/image-process-gl.d.ts +37 -0
- package/lib/image-process-gl.js +298 -0
- package/lib/imagebitmap-camera-source.d.ts +36 -0
- package/lib/imagebitmap-camera-source.js +277 -0
- package/lib/mstp-camera-source.d.ts +29 -0
- package/lib/mstp-camera-source.js +230 -0
- package/lib/native.js +45 -8
- package/lib/pipeline.d.ts +13 -3
- package/lib/pipeline.js +95 -26
- package/lib/profile.d.ts +2 -0
- package/lib/profile.js +55 -44
- package/lib/sequencerecorder.d.ts +1 -0
- package/lib/sequencerecorder.js +11 -0
- package/lib/sequencesource.d.ts +7 -1
- package/lib/sequencesource.js +89 -47
- package/lib/source.d.ts +6 -4
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/worker-client.js +0 -5
- package/lib/worker-imagebitmap.d.ts +5 -0
- package/lib/worker-imagebitmap.js +63 -0
- package/lib/worker-server.d.ts +0 -5
- package/lib/worker-server.js +120 -24
- package/lib/workerinterface.d.ts +47 -1
- package/lib/zcv.js +117 -135
- package/lib/zcv.wasm +0 -0
- package/package.json +34 -31
- package/umd/a78f5ad0a44def457ee50c8bcd5fd27c.wasm +0 -0
- package/umd/zappar-cv.js +1 -9
- package/umd/zappar-cv.worker.js +1 -1
- package/lib/SLAM_Worker.js +0 -16
- package/lib/SLAM_Worker.wasm +0 -0
- package/lib/bundleworker-mainthread.d.ts +0 -2
- package/lib/bundleworker-mainthread.js +0 -36
- package/lib/bundleworker-worker.d.ts +0 -6
- package/lib/bundleworker-worker.js +0 -34
- package/umd/1ec038c18c27f4adf35917a8175401f0.wasm +0 -0
- package/umd/427496550eba276b65c7.bundleworker.js +0 -1
- package/umd/d115e485cffe500afc4f7c1272ea8f62.wasm +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,130 +1,175 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.3.14] - 2021-10-25
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
|
|
7
|
+
- Pinned dependencies to exact versions
|
|
8
|
+
|
|
9
|
+
## [0.3.13] - 2021-10-11
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- A broken licencing url.
|
|
14
|
+
|
|
15
|
+
## [0.3.12] - 2021-09-28
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- Safari logo not appearing on incompatible browser screen
|
|
20
|
+
- Issues with iPad devices
|
|
21
|
+
|
|
22
|
+
## [0.3.11] - 2021-09-17
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
|
|
26
|
+
- Issues with other browsers on iOS, including social browsers
|
|
27
|
+
|
|
28
|
+
## [0.3.10] - 2021-09-17
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
- loaded() function which returns true once the library is fully loaded and available for use
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
|
|
35
|
+
- Bucket 172.* IP address range into one license check.
|
|
36
|
+
|
|
3
37
|
## [0.3.9] - 2021-04-22
|
|
38
|
+
|
|
4
39
|
### Added
|
|
5
|
-
|
|
40
|
+
|
|
41
|
+
- `projection_matrix_from_camera_model_ext` that exposes near and far clipping planes.
|
|
6
42
|
|
|
7
43
|
## [0.3.8] - 2021-02-18
|
|
8
44
|
|
|
9
45
|
### Added
|
|
10
|
-
|
|
11
|
-
|
|
46
|
+
|
|
47
|
+
- pipeline_gl_context_lost to indicate that the GL context is lost
|
|
48
|
+
- log_level and log_level_set to customize volume of log output
|
|
12
49
|
|
|
13
50
|
### Changed
|
|
14
|
-
|
|
51
|
+
|
|
52
|
+
- License checks now only happen on first pipeline construction
|
|
15
53
|
|
|
16
54
|
### Fixed
|
|
17
|
-
- pipeline_gl_context_set correctly handles multiple invocations
|
|
18
55
|
|
|
56
|
+
- pipeline_gl_context_set correctly handles multiple invocations
|
|
19
57
|
|
|
20
58
|
## [0.3.7] - 2021-02-03
|
|
21
59
|
|
|
22
60
|
### Fixed
|
|
23
|
-
|
|
24
|
-
|
|
61
|
+
|
|
62
|
+
- Issues on Chrome for iOS
|
|
63
|
+
- NPM audit dependency updates
|
|
25
64
|
|
|
26
65
|
## [0.3.6] - 2021-01-18
|
|
27
66
|
|
|
28
67
|
### Fixed
|
|
29
|
-
- Issue where wasm would not load on some webpack versions
|
|
30
68
|
|
|
69
|
+
- Issue where wasm would not load on some webpack versions
|
|
31
70
|
|
|
32
71
|
## [0.3.5] - 2020-11-26
|
|
33
72
|
|
|
34
73
|
### Added
|
|
35
|
-
|
|
36
|
-
|
|
74
|
+
|
|
75
|
+
- This changelog :-)
|
|
76
|
+
- Console log the version when the library is initialized
|
|
37
77
|
|
|
38
78
|
### Fixed
|
|
39
|
-
|
|
40
|
-
|
|
79
|
+
|
|
80
|
+
- Prevent flickering when there are no new camera frames
|
|
81
|
+
- Fixed building with recent versions of `worker-loader`
|
|
41
82
|
|
|
42
83
|
### Changed
|
|
43
|
-
- Dependencies update
|
|
44
|
-
- Remove unnecessary console logging
|
|
45
84
|
|
|
85
|
+
- Dependencies update
|
|
86
|
+
- Remove unnecessary console logging
|
|
46
87
|
|
|
47
88
|
## [0.3.4] - 2020-11-18
|
|
48
89
|
|
|
49
90
|
### Fixed
|
|
50
|
-
- Ensure internal GL usage correctly sets the expected active texture
|
|
51
91
|
|
|
92
|
+
- Ensure internal GL usage correctly sets the expected active texture
|
|
52
93
|
|
|
53
94
|
## [0.3.3] - 2020-11-04
|
|
54
95
|
|
|
55
96
|
### Added
|
|
56
|
-
|
|
97
|
+
|
|
98
|
+
- Browser compatibility API and UI
|
|
57
99
|
|
|
58
100
|
### Changed
|
|
59
|
-
- Modifications to browser compatibility API
|
|
60
101
|
|
|
102
|
+
- Modifications to browser compatibility API
|
|
61
103
|
|
|
62
104
|
## [0.3.2] - 2020-11-04
|
|
63
105
|
|
|
64
106
|
### Added
|
|
65
|
-
|
|
107
|
+
|
|
108
|
+
- Browser compatibility API and UI
|
|
66
109
|
|
|
67
110
|
### Fixed
|
|
68
|
-
- Support for Firefox
|
|
69
111
|
|
|
112
|
+
- Support for Firefox
|
|
70
113
|
|
|
71
114
|
## [0.3.1] - 2020-11-03
|
|
72
115
|
|
|
73
116
|
### Fixed
|
|
74
|
-
- Various enums are now available as objects
|
|
75
|
-
- Removed unnecessary TypeScript files included in deployment
|
|
76
117
|
|
|
118
|
+
- Various enums are now available as objects
|
|
119
|
+
- Removed unnecessary TypeScript files included in deployment
|
|
77
120
|
|
|
78
121
|
## [0.3.0] - 2020-11-02
|
|
79
122
|
|
|
80
123
|
### Added
|
|
81
|
-
|
|
82
|
-
|
|
124
|
+
|
|
125
|
+
- Support for face landmarks
|
|
126
|
+
- Greatly improved face tracking model
|
|
83
127
|
|
|
84
128
|
### Fixed
|
|
85
|
-
|
|
129
|
+
|
|
130
|
+
- Fixes to iPad support
|
|
86
131
|
|
|
87
132
|
### Changed
|
|
88
|
-
- Dependencies update
|
|
89
133
|
|
|
134
|
+
- Dependencies update
|
|
90
135
|
|
|
91
136
|
## [0.2.12] - 2020-10-19
|
|
92
137
|
|
|
93
138
|
### Fixed
|
|
94
|
-
|
|
139
|
+
|
|
140
|
+
- Fixes to iPad support
|
|
95
141
|
|
|
96
142
|
### Changed
|
|
97
|
-
- Dependencies update
|
|
98
143
|
|
|
144
|
+
- Dependencies update
|
|
99
145
|
|
|
100
146
|
## [0.2.11] - 2020-09-15
|
|
101
147
|
|
|
102
148
|
### Fixed
|
|
103
|
-
|
|
149
|
+
|
|
150
|
+
- Fix issues with iOS 14
|
|
104
151
|
|
|
105
152
|
### Changed
|
|
106
|
-
- Dependencies update
|
|
107
153
|
|
|
154
|
+
- Dependencies update
|
|
108
155
|
|
|
109
156
|
## [0.2.9] - 2020-07-08
|
|
110
157
|
|
|
111
158
|
### Fixed
|
|
112
|
-
- Tweaks to computer vision algorithms
|
|
113
159
|
|
|
160
|
+
- Tweaks to computer vision algorithms
|
|
114
161
|
|
|
115
162
|
## [0.2.6] - 2020-06-09
|
|
116
163
|
|
|
117
164
|
### Added
|
|
118
|
-
- Support for full head meshes
|
|
119
|
-
|
|
120
165
|
|
|
166
|
+
- Support for full head meshes
|
|
121
167
|
|
|
122
168
|
## [0.2.4] - 2020-06-02
|
|
123
169
|
|
|
124
170
|
### Added
|
|
125
|
-
- Support for NGROK
|
|
126
|
-
|
|
127
171
|
|
|
172
|
+
- Support for NGROK
|
|
128
173
|
|
|
129
174
|
## [0.2.3] - 2020-05-26
|
|
130
175
|
|
package/README.md
CHANGED
|
@@ -18,8 +18,8 @@ npm i @zappar/zappar-cv
|
|
|
18
18
|
|
|
19
19
|
You can use our CDN from within your HTML:
|
|
20
20
|
```
|
|
21
|
-
<script src="https://libs.zappar.com/zappar-cv/0.4.0-beta.
|
|
21
|
+
<script src="https://libs.zappar.com/zappar-cv/0.4.0-beta.9/zappar-cv.js"></script>
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
Or you can download and host our standalone JavaScript bundle:
|
|
25
|
-
[https://libs.zappar.com/zappar-cv/0.4.0-beta.
|
|
25
|
+
[https://libs.zappar.com/zappar-cv/0.4.0-beta.9/zappar-cv.zip](https://libs.zappar.com/zappar-cv/0.4.0-beta.9/zappar-cv.zip)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CameraSource } from "./camera-source";
|
|
2
|
+
import { zappar_camera_source_t, zappar_pipeline_t } from "./gen/zappar";
|
|
3
|
+
import { ImageBitmapCameraSource } from "./imagebitmap-camera-source";
|
|
4
|
+
import { MSTPCameraSource } from "./mstp-camera-source";
|
|
5
|
+
export declare type CameraSourceType = CameraSource | MSTPCameraSource | ImageBitmapCameraSource;
|
|
6
|
+
export declare function getNextCameraSourceId(): zappar_camera_source_t;
|
|
7
|
+
export declare function setCameraSourceId(id: zappar_camera_source_t, c: CameraSourceType): void;
|
|
8
|
+
export declare function getCameraSource(id: zappar_camera_source_t): CameraSourceType | undefined;
|
|
9
|
+
export declare function deleteCameraSource(id: zappar_camera_source_t): void;
|
|
10
|
+
export declare function createCameraSource(p: zappar_pipeline_t, deviceId: string): zappar_camera_source_t;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createCameraSource = exports.deleteCameraSource = exports.getCameraSource = exports.setCameraSourceId = exports.getNextCameraSourceId = void 0;
|
|
4
|
+
const camera_source_1 = require("./camera-source");
|
|
5
|
+
const imagebitmap_camera_source_1 = require("./imagebitmap-camera-source");
|
|
6
|
+
const loglevel_1 = require("./loglevel");
|
|
7
|
+
const mstp_camera_source_1 = require("./mstp-camera-source");
|
|
8
|
+
const profile_1 = require("./profile");
|
|
9
|
+
let latest = 1;
|
|
10
|
+
let byId = new Map();
|
|
11
|
+
function getNextCameraSourceId() {
|
|
12
|
+
return (latest++);
|
|
13
|
+
}
|
|
14
|
+
exports.getNextCameraSourceId = getNextCameraSourceId;
|
|
15
|
+
function setCameraSourceId(id, c) {
|
|
16
|
+
byId.set(id, c);
|
|
17
|
+
}
|
|
18
|
+
exports.setCameraSourceId = setCameraSourceId;
|
|
19
|
+
function getCameraSource(id) {
|
|
20
|
+
return byId.get(id);
|
|
21
|
+
}
|
|
22
|
+
exports.getCameraSource = getCameraSource;
|
|
23
|
+
function deleteCameraSource(id) {
|
|
24
|
+
byId.delete(id);
|
|
25
|
+
}
|
|
26
|
+
exports.deleteCameraSource = deleteCameraSource;
|
|
27
|
+
function createCameraSource(p, deviceId) {
|
|
28
|
+
let ret = getNextCameraSourceId();
|
|
29
|
+
if (profile_1.profile.preferMediaStreamTrackProcessorCamera &&
|
|
30
|
+
'MediaStreamTrackProcessor' in window &&
|
|
31
|
+
'MediaStreamTrackGenerator' in window)
|
|
32
|
+
setCameraSourceId(ret, new mstp_camera_source_1.MSTPCameraSource(ret, p, deviceId));
|
|
33
|
+
else if (profile_1.profile.preferImageBitmapCamera && typeof OffscreenCanvas !== "undefined")
|
|
34
|
+
setCameraSourceId(ret, new imagebitmap_camera_source_1.ImageBitmapCameraSource(ret, p, deviceId));
|
|
35
|
+
else
|
|
36
|
+
setCameraSourceId(ret, new camera_source_1.CameraSource(ret, p, deviceId));
|
|
37
|
+
loglevel_1.zcout("camera_source_t initialized");
|
|
38
|
+
return ret;
|
|
39
|
+
}
|
|
40
|
+
exports.createCameraSource = createCameraSource;
|
package/lib/camera-source.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { zappar_camera_source_t, zappar_pipeline_t } from "./gen/zappar";
|
|
2
2
|
import { HTMLElementSource } from "./html-element-source";
|
|
3
|
-
import { CameraFrameInfo } from "./source";
|
|
4
3
|
export declare class CameraSource extends HTMLElementSource {
|
|
5
4
|
private _impl;
|
|
6
5
|
private _deviceId;
|
|
@@ -8,15 +7,13 @@ export declare class CameraSource extends HTMLElementSource {
|
|
|
8
7
|
static DEFAULT_DEVICE_ID: string;
|
|
9
8
|
private _currentStream;
|
|
10
9
|
private _activeDeviceId;
|
|
11
|
-
|
|
12
|
-
static get(m: zappar_camera_source_t): CameraSource | undefined;
|
|
13
|
-
private constructor();
|
|
10
|
+
constructor(_impl: zappar_camera_source_t, pipeline: zappar_pipeline_t, _deviceId: string);
|
|
14
11
|
destroy(): void;
|
|
15
12
|
private _stop;
|
|
16
13
|
pause(): void;
|
|
17
14
|
start(): void;
|
|
18
15
|
private _getConstraints;
|
|
19
|
-
getFrame(allowRead: boolean):
|
|
16
|
+
getFrame(allowRead: boolean): void;
|
|
20
17
|
private _getUserMedia;
|
|
21
18
|
private _syncCamera;
|
|
22
19
|
private _hasStartedOrientation;
|
package/lib/camera-source.js
CHANGED
|
@@ -15,8 +15,7 @@ const profile_1 = require("./profile");
|
|
|
15
15
|
const pipeline_1 = require("./pipeline");
|
|
16
16
|
const cameramodel_1 = require("./cameramodel");
|
|
17
17
|
const loglevel_1 = require("./loglevel");
|
|
18
|
-
|
|
19
|
-
let byId = new Map();
|
|
18
|
+
const camera_source_map_1 = require("./camera-source-map");
|
|
20
19
|
let _videoSingleton = document.createElement("video");
|
|
21
20
|
_videoSingleton.setAttribute('playsinline', '');
|
|
22
21
|
_videoSingleton.setAttribute('webkit-playsinline', '');
|
|
@@ -56,17 +55,8 @@ class CameraSource extends html_element_source_1.HTMLElementSource {
|
|
|
56
55
|
}
|
|
57
56
|
};
|
|
58
57
|
}
|
|
59
|
-
static create(p, deviceId) {
|
|
60
|
-
let ret = (latest++);
|
|
61
|
-
byId.set(ret, new CameraSource(ret, p, deviceId));
|
|
62
|
-
loglevel_1.zcout("camera_source_t initialized");
|
|
63
|
-
return ret;
|
|
64
|
-
}
|
|
65
|
-
static get(m) {
|
|
66
|
-
return byId.get(m);
|
|
67
|
-
}
|
|
68
58
|
destroy() {
|
|
69
|
-
|
|
59
|
+
camera_source_map_1.deleteCameraSource(this._impl);
|
|
70
60
|
super.destroy();
|
|
71
61
|
}
|
|
72
62
|
_stop() {
|
|
@@ -140,7 +130,7 @@ class CameraSource extends html_element_source_1.HTMLElementSource {
|
|
|
140
130
|
}
|
|
141
131
|
getFrame(allowRead) {
|
|
142
132
|
this._cameraToScreenRotation = cameramodel_1.cameraRotationForScreenOrientation(false);
|
|
143
|
-
|
|
133
|
+
super.getFrame(allowRead);
|
|
144
134
|
}
|
|
145
135
|
_getUserMedia() {
|
|
146
136
|
return __awaiter(this, void 0, void 0, function* () {
|
package/lib/compatibility.js
CHANGED
|
@@ -39,7 +39,7 @@ function getUnsupportedMessage() {
|
|
|
39
39
|
background-repeat: no-repeat;
|
|
40
40
|
}
|
|
41
41
|
.zee-launcher-browser-safari .zee-launcher-browser-logo {
|
|
42
|
-
background-image: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg version='1.1' viewBox='0 0 211 211' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(-82 -146)' fill-rule='nonzero' stroke='%
|
|
42
|
+
background-image: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg version='1.1' viewBox='0 0 211 211' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(-82 -146)' fill-rule='nonzero' stroke='%23ffffff' stroke-width='2'%3E%3Cpath d='m180 251.86c0-4.0385 2.9377-7.855 7.2552-7.855 3.9614 0 7.7448 2.8402 7.7448 7.145 0 4.0385-2.8487 7.855-7.1662 7.855-4.0059 0-7.8338-2.9734-7.8338-7.145zm112-0.35503c0 57.728-46.772 104.5-104.5 104.5s-104.5-46.772-104.5-104.5 46.772-104.5 104.5-104.5 104.5 46.772 104.5 104.5zm-12-1c0-51.649-41.851-93.5-93.5-93.5s-93.5 41.851-93.5 93.5 41.851 93.5 93.5 93.5 93.5-41.851 93.5-93.5zm-30.624 40.983c0 1.5095 5.4495 4.2768 6.8328 5.1154-11.486 17.401-29.26 29.938-49.423 34.928l-1.8444-7.757c-0.12576-1.0482-0.79646-1.174-1.7606-1.174-0.79646 0-1.2576 1.174-1.1737 1.7611l1.8444 7.8828c-5.5753 1.174-11.234 1.7611-16.935 1.7611-15.217 0-30.182-4.2768-43.177-12.202 0.71263-1.174 5.1141-7.5474 5.1141-8.4698 0-0.79666-0.71263-1.5095-1.5091-1.5095-1.6348 0-5.1141 6.9603-6.1621 8.344-17.522-11.615-30.182-29.602-35.044-50.148l8.0066-1.761c0.92222-0.25158 1.1737-0.92246 1.1737-1.7611 0-0.79667-1.1737-1.2579-1.8444-1.174l-7.8389 1.803c-1.048-5.3251-1.6348-10.692-1.6348-16.143 0-15.556 4.4015-30.86 12.66-43.984 1.1737 0.71281 6.749 4.5284 7.6712 4.5284 0.79646 0 1.5091-0.58702 1.5091-1.3837 0-1.6353-6.1621-4.7381-7.5455-5.7024 11.821-17.275 29.805-29.728 50.219-34.34l1.7606 7.757c0.25152 0.92246 0.92222 1.174 1.7606 1.174 0.83838 0 1.2576-1.174 1.1737-1.8449l-1.7606-7.6732c5.1141-0.92246 10.312-1.5095 15.552-1.5095 15.552 0 30.727 4.4026 43.973 12.663-0.79646 1.174-4.5273 6.6249-4.5273 7.5474 0 0.79667 0.58687 1.5095 1.3833 1.5095 1.6348 0 4.7369-6.0379 5.5753-7.4216 17.187 11.615 29.469 29.351 34.248 49.561l-6.4975 1.3837c-1.048 0.25158-1.1737 0.92246-1.1737 1.8449 0 0.79667 1.1737 1.2579 1.7606 1.174l6.6232-1.5095c1.048 5.3251 1.6348 10.776 1.6348 16.227 0 15.221-4.1919 30.189-12.073 43.062-1.1737-0.58702-6.0364-4.0672-6.9586-4.0672-0.8803 0-1.5929 0.71281-1.5929 1.5095zm-14.876-98.483c-5.2178 4.88-53.863 49.48-55.228 51.8l-38.772 64.2c5.0974-4.76 53.863-49.6 55.108-51.72l38.892-64.28z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
|
|
43
43
|
}
|
|
44
44
|
.zee-launcher-unsupported-message {
|
|
45
45
|
text-align: center;
|
package/lib/drawcamera.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.cameraFrameTextureMatrix = exports.CameraDraw = void 0;
|
|
4
4
|
const shader_1 = require("./shader");
|
|
5
5
|
const gl_matrix_1 = require("gl-matrix");
|
|
6
|
+
let identity = gl_matrix_1.mat4.create();
|
|
6
7
|
class CameraDraw {
|
|
7
8
|
constructor(_gl) {
|
|
8
9
|
this._gl = _gl;
|
|
@@ -47,7 +48,7 @@ class CameraDraw {
|
|
|
47
48
|
let vbo = this._generate(gl, i);
|
|
48
49
|
gl.activeTexture(gl.TEXTURE0);
|
|
49
50
|
gl.useProgram(shader.prog);
|
|
50
|
-
gl.uniformMatrix4fv(shader.unif_skinTexTransform, false, cameraFrameTextureMatrix(i.dataWidth, i.dataHeight, screenWidth, screenHeight, i.uvTransform, mirror));
|
|
51
|
+
gl.uniformMatrix4fv(shader.unif_skinTexTransform, false, cameraFrameTextureMatrix(i.dataWidth, i.dataHeight, screenWidth, screenHeight, i.uvTransform || identity, mirror));
|
|
51
52
|
gl.uniform1i(shader.unif_skinSampler, 0);
|
|
52
53
|
gl.bindTexture(gl.TEXTURE_2D, i.texture);
|
|
53
54
|
gl.bindBuffer(gl.ARRAY_BUFFER, vbo);
|
package/lib/gen/zappar-client.js
CHANGED
|
@@ -100,10 +100,15 @@ class zappar_client {
|
|
|
100
100
|
m.int(height);
|
|
101
101
|
m.int(user_data);
|
|
102
102
|
m.matrix4x4(camera_to_device_transform);
|
|
103
|
-
m.
|
|
103
|
+
m.cameraModel(camera_model);
|
|
104
104
|
m.bool(user_facing);
|
|
105
105
|
});
|
|
106
106
|
},
|
|
107
|
+
pipeline_camera_frame_submit_raw_pointer: (o, data, dataLength, format, width, height, user_data, camera_to_device_transform, rotation, camera_model, user_facing) => {
|
|
108
|
+
let s = this._pipeline_state_by_instance.get(o);
|
|
109
|
+
if (!s)
|
|
110
|
+
throw new Error("This object has been destroyed");
|
|
111
|
+
},
|
|
107
112
|
pipeline_camera_frame_camera_attitude: (o) => {
|
|
108
113
|
let s = this._pipeline_state_by_instance.get(o);
|
|
109
114
|
if (!s)
|
package/lib/gen/zappar-cwrap.js
CHANGED
|
@@ -27,6 +27,10 @@ function getRuntimeObject(mod) {
|
|
|
27
27
|
"number",
|
|
28
28
|
"number", "number", "number", "number", "number", "number", "number", "number"
|
|
29
29
|
]);
|
|
30
|
+
let pipeline_camera_frame_submit_raw_pointer_wrapped = mod.cwrap("zappar_pipeline_camera_frame_submit_raw_pointer", null, [
|
|
31
|
+
"number",
|
|
32
|
+
"number", "number", "number", "number", "number", "number", "number", "number", "number", "number"
|
|
33
|
+
]);
|
|
30
34
|
let pipeline_camera_frame_camera_attitude_wrapped = mod.cwrap("zappar_pipeline_camera_frame_camera_attitude", "number", [
|
|
31
35
|
"number"
|
|
32
36
|
]);
|
|
@@ -176,6 +180,17 @@ function getRuntimeObject(mod) {
|
|
|
176
180
|
let dataArrayArg = mod._malloc(dataArrayArgLength);
|
|
177
181
|
let floatDataArrayArgLength = 16 * 4;
|
|
178
182
|
let floatDataArrayArg = mod._malloc(floatDataArrayArgLength);
|
|
183
|
+
let floatDataArraysByArgIndex = new Map();
|
|
184
|
+
let getFloatDataArrayForArgIndex = (indx, len) => {
|
|
185
|
+
let existing = floatDataArraysByArgIndex.get(indx);
|
|
186
|
+
if (!existing || existing[0] < len) {
|
|
187
|
+
if (existing)
|
|
188
|
+
mod._free(existing[1]);
|
|
189
|
+
existing = [len, mod._malloc(len)];
|
|
190
|
+
floatDataArraysByArgIndex.set(indx, existing);
|
|
191
|
+
}
|
|
192
|
+
return existing[1];
|
|
193
|
+
};
|
|
179
194
|
return {
|
|
180
195
|
log_level: () => {
|
|
181
196
|
let ret = log_level_wrapped();
|
|
@@ -228,24 +243,30 @@ function getRuntimeObject(mod) {
|
|
|
228
243
|
let arg_width = width;
|
|
229
244
|
let arg_height = height;
|
|
230
245
|
let arg_user_data = user_data;
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
}
|
|
236
|
-
let arg_camera_to_device_transform = floatDataArrayArg;
|
|
237
|
-
mod.HEAPF32.set(camera_to_device_transform, floatDataArrayArg / 4);
|
|
238
|
-
if (floatDataArrayArgLength < camera_model.byteLength) {
|
|
239
|
-
mod._free(floatDataArrayArgLength);
|
|
240
|
-
floatDataArrayArgLength = camera_model.byteLength;
|
|
241
|
-
floatDataArrayArg = mod._malloc(floatDataArrayArgLength);
|
|
242
|
-
}
|
|
243
|
-
let arg_camera_model = floatDataArrayArg;
|
|
244
|
-
mod.HEAPF32.set(camera_model, floatDataArrayArg / 4);
|
|
246
|
+
let arg_camera_to_device_transform = getFloatDataArrayForArgIndex(4, camera_to_device_transform.byteLength);
|
|
247
|
+
mod.HEAPF32.set(camera_to_device_transform, arg_camera_to_device_transform / 4);
|
|
248
|
+
let arg_camera_model = getFloatDataArrayForArgIndex(5, camera_model.byteLength);
|
|
249
|
+
mod.HEAPF32.set(camera_model, arg_camera_model / 4);
|
|
245
250
|
let arg_user_facing = user_facing ? 1 : 0;
|
|
246
251
|
let ret = pipeline_camera_frame_submit_wrapped(o, arg_data, arg_len_data, arg_width, arg_height, arg_user_data, arg_camera_to_device_transform, arg_camera_model, arg_user_facing);
|
|
247
252
|
return ret;
|
|
248
253
|
},
|
|
254
|
+
pipeline_camera_frame_submit_raw_pointer: (o, data, dataLength, format, width, height, user_data, camera_to_device_transform, rotation, camera_model, user_facing) => {
|
|
255
|
+
let arg_data = data;
|
|
256
|
+
let arg_dataLength = dataLength;
|
|
257
|
+
let arg_format = format;
|
|
258
|
+
let arg_width = width;
|
|
259
|
+
let arg_height = height;
|
|
260
|
+
let arg_user_data = user_data;
|
|
261
|
+
let arg_camera_to_device_transform = getFloatDataArrayForArgIndex(6, camera_to_device_transform.byteLength);
|
|
262
|
+
mod.HEAPF32.set(camera_to_device_transform, arg_camera_to_device_transform / 4);
|
|
263
|
+
let arg_rotation = rotation;
|
|
264
|
+
let arg_camera_model = getFloatDataArrayForArgIndex(8, camera_model.byteLength);
|
|
265
|
+
mod.HEAPF32.set(camera_model, arg_camera_model / 4);
|
|
266
|
+
let arg_user_facing = user_facing ? 1 : 0;
|
|
267
|
+
let ret = pipeline_camera_frame_submit_raw_pointer_wrapped(o, arg_data, arg_dataLength, arg_format, arg_width, arg_height, arg_user_data, arg_camera_to_device_transform, arg_rotation, arg_camera_model, arg_user_facing);
|
|
268
|
+
return ret;
|
|
269
|
+
},
|
|
249
270
|
pipeline_camera_frame_camera_attitude: (o) => {
|
|
250
271
|
let ret = pipeline_camera_frame_camera_attitude_wrapped(o);
|
|
251
272
|
let ab = new Float32Array(16);
|
|
@@ -285,13 +306,8 @@ function getRuntimeObject(mod) {
|
|
|
285
306
|
return ret;
|
|
286
307
|
},
|
|
287
308
|
pipeline_motion_attitude_matrix_submit: (o, mat) => {
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
floatDataArrayArgLength = mat.byteLength;
|
|
291
|
-
floatDataArrayArg = mod._malloc(floatDataArrayArgLength);
|
|
292
|
-
}
|
|
293
|
-
let arg_mat = floatDataArrayArg;
|
|
294
|
-
mod.HEAPF32.set(mat, floatDataArrayArg / 4);
|
|
309
|
+
let arg_mat = getFloatDataArrayForArgIndex(0, mat.byteLength);
|
|
310
|
+
mod.HEAPF32.set(mat, arg_mat / 4);
|
|
295
311
|
let ret = pipeline_motion_attitude_matrix_submit_wrapped(o, arg_mat);
|
|
296
312
|
return ret;
|
|
297
313
|
},
|
|
@@ -46,6 +46,16 @@ export declare enum log_level_t {
|
|
|
46
46
|
LOG_LEVEL_WARNING = 2,
|
|
47
47
|
LOG_LEVEL_VERBOSE = 3
|
|
48
48
|
}
|
|
49
|
+
export declare enum frame_pixel_format_t {
|
|
50
|
+
FRAME_PIXEL_FORMAT_I420 = 0,
|
|
51
|
+
FRAME_PIXEL_FORMAT_I420A = 1,
|
|
52
|
+
FRAME_PIXEL_FORMAT_I422 = 2,
|
|
53
|
+
FRAME_PIXEL_FORMAT_I444 = 3,
|
|
54
|
+
FRAME_PIXEL_FORMAT_NV12 = 4,
|
|
55
|
+
FRAME_PIXEL_FORMAT_RGBA = 5,
|
|
56
|
+
FRAME_PIXEL_FORMAT_BGRA = 6,
|
|
57
|
+
FRAME_PIXEL_FORMAT_Y = 7
|
|
58
|
+
}
|
|
49
59
|
export declare type zappar_pipeline_t = number & {
|
|
50
60
|
_: 'zappar_pipeline_t';
|
|
51
61
|
};
|
|
@@ -84,6 +94,7 @@ export interface zappar_cwrap {
|
|
|
84
94
|
pipeline_camera_model(o: zappar_pipeline_t): Float32Array;
|
|
85
95
|
pipeline_camera_frame_user_data(o: zappar_pipeline_t): number;
|
|
86
96
|
pipeline_camera_frame_submit(o: zappar_pipeline_t, data: ArrayBuffer, width: number, height: number, user_data: number, camera_to_device_transform: Float32Array, camera_model: Float32Array, user_facing: boolean): void;
|
|
97
|
+
pipeline_camera_frame_submit_raw_pointer(o: zappar_pipeline_t, data: number, dataLength: number, format: frame_pixel_format_t, width: number, height: number, user_data: number, camera_to_device_transform: Float32Array, rotation: number, camera_model: Float32Array, user_facing: boolean): void;
|
|
87
98
|
pipeline_camera_frame_camera_attitude(o: zappar_pipeline_t): Float32Array;
|
|
88
99
|
pipeline_camera_frame_device_attitude(o: zappar_pipeline_t): Float32Array;
|
|
89
100
|
pipeline_motion_accelerometer_submit(o: zappar_pipeline_t, time: number, x: number, y: number, z: number): void;
|
package/lib/gen/zappar-native.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.log_level_t = exports.instant_world_tracker_transform_orientation_t = exports.face_landmark_name_t = exports.barcode_format_t = void 0;
|
|
3
|
+
exports.frame_pixel_format_t = exports.log_level_t = exports.instant_world_tracker_transform_orientation_t = exports.face_landmark_name_t = exports.barcode_format_t = void 0;
|
|
4
4
|
var barcode_format_t;
|
|
5
5
|
(function (barcode_format_t) {
|
|
6
6
|
barcode_format_t[barcode_format_t["UNKNOWN"] = 131072] = "UNKNOWN";
|
|
@@ -57,3 +57,15 @@ var log_level_t;
|
|
|
57
57
|
log_level_t[log_level_t["LOG_LEVEL_VERBOSE"] = 3] = "LOG_LEVEL_VERBOSE";
|
|
58
58
|
})(log_level_t = exports.log_level_t || (exports.log_level_t = {}));
|
|
59
59
|
;
|
|
60
|
+
var frame_pixel_format_t;
|
|
61
|
+
(function (frame_pixel_format_t) {
|
|
62
|
+
frame_pixel_format_t[frame_pixel_format_t["FRAME_PIXEL_FORMAT_I420"] = 0] = "FRAME_PIXEL_FORMAT_I420";
|
|
63
|
+
frame_pixel_format_t[frame_pixel_format_t["FRAME_PIXEL_FORMAT_I420A"] = 1] = "FRAME_PIXEL_FORMAT_I420A";
|
|
64
|
+
frame_pixel_format_t[frame_pixel_format_t["FRAME_PIXEL_FORMAT_I422"] = 2] = "FRAME_PIXEL_FORMAT_I422";
|
|
65
|
+
frame_pixel_format_t[frame_pixel_format_t["FRAME_PIXEL_FORMAT_I444"] = 3] = "FRAME_PIXEL_FORMAT_I444";
|
|
66
|
+
frame_pixel_format_t[frame_pixel_format_t["FRAME_PIXEL_FORMAT_NV12"] = 4] = "FRAME_PIXEL_FORMAT_NV12";
|
|
67
|
+
frame_pixel_format_t[frame_pixel_format_t["FRAME_PIXEL_FORMAT_RGBA"] = 5] = "FRAME_PIXEL_FORMAT_RGBA";
|
|
68
|
+
frame_pixel_format_t[frame_pixel_format_t["FRAME_PIXEL_FORMAT_BGRA"] = 6] = "FRAME_PIXEL_FORMAT_BGRA";
|
|
69
|
+
frame_pixel_format_t[frame_pixel_format_t["FRAME_PIXEL_FORMAT_Y"] = 7] = "FRAME_PIXEL_FORMAT_Y";
|
|
70
|
+
})(frame_pixel_format_t = exports.frame_pixel_format_t || (exports.frame_pixel_format_t = {}));
|
|
71
|
+
;
|
package/lib/gen/zappar-server.js
CHANGED
|
@@ -72,7 +72,7 @@ class zappar_server {
|
|
|
72
72
|
let obj = this._pipeline_by_instance.get(clientId);
|
|
73
73
|
if (obj === undefined)
|
|
74
74
|
return;
|
|
75
|
-
this._impl.pipeline_camera_frame_submit(obj, msg.dataWithLength(), msg.int(), msg.int(), msg.int(), msg.matrix4x4(), msg.
|
|
75
|
+
this._impl.pipeline_camera_frame_submit(obj, msg.dataWithLength(), msg.int(), msg.int(), msg.int(), msg.matrix4x4(), msg.cameraModel(), msg.bool());
|
|
76
76
|
break;
|
|
77
77
|
}
|
|
78
78
|
case 10: {
|
package/lib/gen/zappar.d.ts
CHANGED
|
@@ -2,6 +2,8 @@ import { barcode_format_t } from "./zappar-native";
|
|
|
2
2
|
export { barcode_format_t } from "./zappar-native";
|
|
3
3
|
import { face_landmark_name_t } from "./zappar-native";
|
|
4
4
|
export { face_landmark_name_t } from "./zappar-native";
|
|
5
|
+
import { frame_pixel_format_t } from "./zappar-native";
|
|
6
|
+
export { frame_pixel_format_t } from "./zappar-native";
|
|
5
7
|
import { instant_world_tracker_transform_orientation_t } from "./zappar-native";
|
|
6
8
|
export { instant_world_tracker_transform_orientation_t } from "./zappar-native";
|
|
7
9
|
import { log_level_t } from "./zappar-native";
|
|
@@ -34,6 +36,7 @@ export declare type zappar_instant_world_tracker_t = number & {
|
|
|
34
36
|
_: 'zappar_instant_world_tracker_t';
|
|
35
37
|
};
|
|
36
38
|
export interface zappar {
|
|
39
|
+
loaded(): boolean;
|
|
37
40
|
camera_default_device_id(userFacing: boolean): string;
|
|
38
41
|
projection_matrix_from_camera_model(model: Float32Array, renderWidth: number, renderHeight: number): Float32Array;
|
|
39
42
|
projection_matrix_from_camera_model_ext(model: Float32Array, renderWidth: number, renderHeight: number, zNear: number, zFar: number): Float32Array;
|
|
@@ -65,6 +68,7 @@ export interface zappar {
|
|
|
65
68
|
pipeline_camera_pose_with_origin(o: zappar_pipeline_t, pose: Float32Array): Float32Array;
|
|
66
69
|
pipeline_camera_frame_user_data(o: zappar_pipeline_t): number;
|
|
67
70
|
pipeline_camera_frame_submit(o: zappar_pipeline_t, data: ArrayBuffer, width: number, height: number, user_data: number, camera_to_device_transform: Float32Array, camera_model: Float32Array, user_facing: boolean): void;
|
|
71
|
+
pipeline_camera_frame_submit_raw_pointer(o: zappar_pipeline_t, data: number, dataLength: number, format: frame_pixel_format_t, width: number, height: number, user_data: number, camera_to_device_transform: Float32Array, rotation: number, camera_model: Float32Array, user_facing: boolean): void;
|
|
68
72
|
pipeline_camera_frame_camera_attitude(o: zappar_pipeline_t): Float32Array;
|
|
69
73
|
pipeline_camera_frame_device_attitude(o: zappar_pipeline_t): Float32Array;
|
|
70
74
|
pipeline_camera_frame_user_facing(o: zappar_pipeline_t): boolean;
|
|
@@ -87,6 +91,7 @@ export interface zappar {
|
|
|
87
91
|
sequence_source_start(o: zappar_sequence_source_t): void;
|
|
88
92
|
sequence_source_pause(o: zappar_sequence_source_t): void;
|
|
89
93
|
sequence_source_load_from_memory(o: zappar_sequence_source_t, data: ArrayBuffer): void;
|
|
94
|
+
sequence_source_max_playback_fps_set(o: zappar_sequence_source_t, fps: number): void;
|
|
90
95
|
image_tracker_create(pipeline: zappar_pipeline_t): zappar_image_tracker_t;
|
|
91
96
|
image_tracker_destroy(o: zappar_image_tracker_t): void;
|
|
92
97
|
image_tracker_target_load_from_memory(o: zappar_image_tracker_t, data: ArrayBuffer): void;
|
package/lib/gen/zappar.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.log_level_t = exports.instant_world_tracker_transform_orientation_t = exports.face_landmark_name_t = exports.barcode_format_t = void 0;
|
|
3
|
+
exports.log_level_t = exports.instant_world_tracker_transform_orientation_t = exports.frame_pixel_format_t = exports.face_landmark_name_t = exports.barcode_format_t = void 0;
|
|
4
4
|
var zappar_native_1 = require("./zappar-native");
|
|
5
5
|
Object.defineProperty(exports, "barcode_format_t", { enumerable: true, get: function () { return zappar_native_1.barcode_format_t; } });
|
|
6
6
|
var zappar_native_2 = require("./zappar-native");
|
|
7
7
|
Object.defineProperty(exports, "face_landmark_name_t", { enumerable: true, get: function () { return zappar_native_2.face_landmark_name_t; } });
|
|
8
8
|
var zappar_native_3 = require("./zappar-native");
|
|
9
|
-
Object.defineProperty(exports, "
|
|
9
|
+
Object.defineProperty(exports, "frame_pixel_format_t", { enumerable: true, get: function () { return zappar_native_3.frame_pixel_format_t; } });
|
|
10
10
|
var zappar_native_4 = require("./zappar-native");
|
|
11
|
-
Object.defineProperty(exports, "
|
|
11
|
+
Object.defineProperty(exports, "instant_world_tracker_transform_orientation_t", { enumerable: true, get: function () { return zappar_native_4.instant_world_tracker_transform_orientation_t; } });
|
|
12
|
+
var zappar_native_5 = require("./zappar-native");
|
|
13
|
+
Object.defineProperty(exports, "log_level_t", { enumerable: true, get: function () { return zappar_native_5.log_level_t; } });
|
package/lib/gfx.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const gfx = "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"250\" height=\"80.408\" viewBox=\"0 0 250 80.408\"><defs><filter id=\"a\" x=\"0\" y=\"1.182\" width=\"250\" height=\"79.226\" filterUnits=\"userSpaceOnUse\"><feOffset dy=\"3\" input=\"SourceAlpha\"/><feGaussianBlur stdDeviation=\"3\" result=\"b\"/><feFlood flood-opacity=\"0.161\"/><feComposite operator=\"in\" in2=\"b\"/><feComposite in=\"SourceGraphic\"/></filter><filter id=\"c\" x=\"6.929\" y=\"0\" width=\"111.975\" height=\"40.988\" filterUnits=\"userSpaceOnUse\"><feOffset dy=\"3\" input=\"SourceAlpha\"/><feGaussianBlur stdDeviation=\"3\" result=\"d\"/><feFlood flood-opacity=\"0.161\"/><feComposite operator=\"in\" in2=\"d\"/><feComposite in=\"SourceGraphic\"/></filter></defs><g transform=\"translate(-26.873 -414.029)\"><g transform=\"translate(44 423.332)\"><g transform=\"translate(0 0.635)\" style=\"isolation:isolate\"><g transform=\"translate(0 0)\"><g transform=\"matrix(1, 0, 0, 1, -17.13, -9.94)\" filter=\"url(#a)\"><path d=\"M55.766,44.97V11.8h8.272v2.6h.089a8.258,8.258,0,0,1,7.046-3.357,11.4,11.4,0,0,1,8.5,3.686,12.667,12.667,0,0,1,3.278,8.622,12.509,12.509,0,0,1-3.25,8.57,11.353,11.353,0,0,1-8.429,3.6,9.533,9.533,0,0,1-7.229-2.95V43.378l-8.269,1.594h0Zm8-21.671a4.958,4.958,0,0,0,5.319,5.15A4.957,4.957,0,0,0,74.4,23.3a5.321,5.321,0,0,0-10.638,0ZM16.105,18.412H2.752V11.038H30.9L14.887,37.16H38.22L0,44.534ZM131.469,38.45a.761.761,0,0,1-.484-.166.582.582,0,0,1-.228-.419l-.553-3.586a12.243,12.243,0,0,1-1.782-.721l-2.789,2.084a.718.718,0,0,1-.5.176.688.688,0,0,1-.495-.214,25.864,25.864,0,0,1-3.264-3.274.754.754,0,0,1,.018-.9c.2-.277.543-.713,1.01-1.3.483-.6.832-1.05,1.068-1.374a9.614,9.614,0,0,1-.811-1.929l-3.62-.527a.631.631,0,0,1-.416-.243.728.728,0,0,1-.159-.458V21.283a.743.743,0,0,1,.159-.448.6.6,0,0,1,.376-.253l3.68-.546a9.511,9.511,0,0,1,.772-1.792c-.523-.733-1.235-1.638-2.117-2.69a.731.731,0,0,1-.2-.467.82.82,0,0,1,.178-.449,19.577,19.577,0,0,1,1.949-2.095c.953-.924,1.582-1.393,1.87-1.393a.861.861,0,0,1,.515.195l2.729,2.084a11.551,11.551,0,0,1,1.8-.741,31.446,31.446,0,0,1,.573-3.623.666.666,0,0,1,.712-.546h4.392a.757.757,0,0,1,.485.166.58.58,0,0,1,.228.419l.553,3.584a12.576,12.576,0,0,1,1.782.722l2.809-2.085a.641.641,0,0,1,.475-.176.776.776,0,0,1,.5.195,27.035,27.035,0,0,1,3.264,3.313.625.625,0,0,1,.139.429.742.742,0,0,1-.159.447c-.2.271-.525.7-1.008,1.3-.467.581-.827,1.043-1.069,1.373a11.8,11.8,0,0,1,.812,1.91l3.62.545a.626.626,0,0,1,.416.244.736.736,0,0,1,.158.457v4.325a.755.755,0,0,1-.158.449.6.6,0,0,1-.4.253l-3.66.545a12.692,12.692,0,0,1-.772,1.774c.465.653,1.177,1.559,2.117,2.688a.751.751,0,0,1,.2.488.648.648,0,0,1-.178.448,19.638,19.638,0,0,1-1.958,2.1c-.947.918-1.573,1.384-1.861,1.384a.976.976,0,0,1-.515-.176l-2.731-2.1a11.361,11.361,0,0,1-1.8.741,31.849,31.849,0,0,1-.573,3.625.668.668,0,0,1-.713.546Zm-1.385-18.491a4.935,4.935,0,0,0,0,7.053,5.12,5.12,0,0,0,7.163,0,4.931,4.931,0,0,0,0-7.053,5.117,5.117,0,0,0-7.163,0Zm69.969,14.868a18.523,18.523,0,0,1-4.932-2.073l1.705-6.1A13.441,13.441,0,0,0,200.779,29a12.14,12.14,0,0,0,4.344.818,4.644,4.644,0,0,0,2.351-.482,1.538,1.538,0,0,0,.806-1.4q0-1.5-3.25-2.242-1.061-.246-1.705-.425a12.335,12.335,0,0,1-5.358-2.589,5.5,5.5,0,0,1-1.671-4.157,6.323,6.323,0,0,1,2.547-5.267,10.993,10.993,0,0,1,6.9-1.972,21.351,21.351,0,0,1,4.552.5,25.439,25.439,0,0,1,4.736,1.557l-1.705,5.491a14.244,14.244,0,0,0-3.319-1.636,10.6,10.6,0,0,0-3.364-.561,4.227,4.227,0,0,0-2.121.426,1.357,1.357,0,0,0-.714,1.232q0,1.211,3.227,2.04.737.2,1.106.291,4.264,1.187,5.935,2.79a5.728,5.728,0,0,1,1.67,4.337A6.781,6.781,0,0,1,213,33.37a11.48,11.48,0,0,1-7.259,2.14A22.577,22.577,0,0,1,200.053,34.827ZM30.568,31.834a12.566,12.566,0,0,1-3.292-8.59,12.567,12.567,0,0,1,3.247-8.568,11.3,11.3,0,0,1,8.423-3.638,9.519,9.519,0,0,1,7.217,3V11.8h8.264V34.735H46.163V32.186h-.09c-1.32,2.071-3.951,3.308-7.038,3.308A11.412,11.412,0,0,1,30.568,31.834Zm5.245-8.545a4.95,4.95,0,0,0,5.312,5.141,4.95,4.95,0,0,0,5.312-5.141A5.023,5.023,0,0,0,41.125,18.1,5.023,5.023,0,0,0,35.813,23.289Zm69.2,11.554-3.527-10.452q-.282-.892-.505-1.8t-.412-1.8a30.821,30.821,0,0,1-.917,3.454l-.047.16L96.1,34.842H90.176l-9.925-23.1h8.632l3.552,10.223q.4,1.12.634,1.955t.377,1.635a23.558,23.558,0,0,1,.917-3.179q.093-.274.141-.411l3.528-10.223h5.056l3.5,10.2.07.183a20.724,20.724,0,0,1,.988,3.43q.141-.732.364-1.532t.647-2.058l3.574-10.223h8.678l-9.971,23.1Zm80.154-.092-8.587-9.841v9.841h-7.888V1.5L176.583,0V22.28l8.272-9.665h9.96L184.584,23.266l11.156,11.485Zm-35.09,0V11.782h8.272v3.761h.091a8.131,8.131,0,0,1,7.546-4.074h1.593V19.3a6.8,6.8,0,0,0-3.5-.761c-4.593,0-5.728,3-5.728,6.941v9.268Z\" transform=\"translate(17.13 15.31)\"/></g><g transform=\"matrix(1, 0, 0, 1, -17.13, -9.94)\" filter=\"url(#c)\"><path d=\"M3.576-12.852v-4.3H6.628a2.867,2.867,0,0,1,1.945.55A2.034,2.034,0,0,1,9.188-15a2.06,2.06,0,0,1-.615,1.608,2.784,2.784,0,0,1-1.945.542ZM2.017-18.464V-6.748H3.576v-4.792H7.153a3.569,3.569,0,0,0,2.683-.9A3.478,3.478,0,0,0,10.747-15a3.45,3.45,0,0,0-.911-2.552,3.638,3.638,0,0,0-2.683-.911Zm11.421,7.483a4.221,4.221,0,0,1,.205-1.37,2.957,2.957,0,0,1,.566-1.009,2.411,2.411,0,0,1,.845-.624A2.515,2.515,0,0,1,16.08-14.2a2.515,2.515,0,0,1,1.026.213,2.411,2.411,0,0,1,.845.624,2.957,2.957,0,0,1,.566,1.009,4.221,4.221,0,0,1,.205,1.37,4.221,4.221,0,0,1-.205,1.37,2.867,2.867,0,0,1-.566,1,2.457,2.457,0,0,1-.845.615,2.515,2.515,0,0,1-1.026.213,2.515,2.515,0,0,1-1.026-.213,2.457,2.457,0,0,1-.845-.615,2.867,2.867,0,0,1-.566-1A4.221,4.221,0,0,1,13.438-10.981Zm-1.477,0a5.573,5.573,0,0,0,.263,1.739,3.97,3.97,0,0,0,.788,1.4,3.623,3.623,0,0,0,1.3.935,4.4,4.4,0,0,0,1.772.336A4.381,4.381,0,0,0,17.86-6.9a3.641,3.641,0,0,0,1.288-.935,3.97,3.97,0,0,0,.788-1.4,5.573,5.573,0,0,0,.263-1.739,5.65,5.65,0,0,0-.263-1.748,3.96,3.96,0,0,0-.788-1.411,3.729,3.729,0,0,0-1.288-.944,4.29,4.29,0,0,0-1.78-.345,4.3,4.3,0,0,0-1.772.345,3.71,3.71,0,0,0-1.3.944,3.96,3.96,0,0,0-.788,1.411A5.65,5.65,0,0,0,11.961-10.981Zm18.28,4.234,2.708-8.484H31.5L29.6-8.29h-.033L27.8-15.231H26.27L24.564-8.29h-.033l-1.92-6.941H21.068l2.724,8.484H25.3l1.707-6.744h.033l1.723,6.744ZM40.169-11.8H35.3a2.905,2.905,0,0,1,.213-.927A2.473,2.473,0,0,1,36-13.492a2.255,2.255,0,0,1,.747-.517,2.429,2.429,0,0,1,.976-.189,2.386,2.386,0,0,1,.96.189,2.415,2.415,0,0,1,.755.509,2.391,2.391,0,0,1,.509.763A2.854,2.854,0,0,1,40.169-11.8Zm1.346,2.363H40.136a1.983,1.983,0,0,1-.747,1.247,2.414,2.414,0,0,1-1.452.41,2.889,2.889,0,0,1-1.2-.23,2.348,2.348,0,0,1-.837-.615,2.4,2.4,0,0,1-.476-.886,3.367,3.367,0,0,1-.131-1.058h6.35a6.754,6.754,0,0,0-.139-1.625,4.7,4.7,0,0,0-.624-1.575,3.716,3.716,0,0,0-1.2-1.19,3.48,3.48,0,0,0-1.879-.468,3.858,3.858,0,0,0-1.6.328,3.76,3.76,0,0,0-1.264.919,4.236,4.236,0,0,0-.829,1.395,5.105,5.105,0,0,0-.3,1.772,6.8,6.8,0,0,0,.287,1.789,3.9,3.9,0,0,0,.763,1.411,3.478,3.478,0,0,0,1.255.919,4.358,4.358,0,0,0,1.764.328,3.851,3.851,0,0,0,2.4-.722A3.39,3.39,0,0,0,41.515-9.439Zm1.526-5.793v8.484h1.395v-3.774a5.8,5.8,0,0,1,.164-1.452,2.784,2.784,0,0,1,.525-1.075,2.251,2.251,0,0,1,.952-.673,3.945,3.945,0,0,1,1.428-.23v-1.477a3.135,3.135,0,0,0-1.871.459,3.779,3.779,0,0,0-1.247,1.526h-.033v-1.789ZM54.15-11.8H49.276a2.905,2.905,0,0,1,.213-.927,2.473,2.473,0,0,1,.492-.763,2.255,2.255,0,0,1,.747-.517A2.429,2.429,0,0,1,51.7-14.2a2.386,2.386,0,0,1,.96.189,2.415,2.415,0,0,1,.755.509,2.391,2.391,0,0,1,.509.763A2.854,2.854,0,0,1,54.15-11.8ZM55.5-9.439H54.117a1.983,1.983,0,0,1-.747,1.247,2.414,2.414,0,0,1-1.452.41,2.889,2.889,0,0,1-1.2-.23,2.348,2.348,0,0,1-.837-.615,2.4,2.4,0,0,1-.476-.886,3.367,3.367,0,0,1-.131-1.058h6.35a6.754,6.754,0,0,0-.139-1.625,4.7,4.7,0,0,0-.624-1.575,3.716,3.716,0,0,0-1.2-1.19,3.48,3.48,0,0,0-1.879-.468,3.858,3.858,0,0,0-1.6.328,3.76,3.76,0,0,0-1.264.919,4.236,4.236,0,0,0-.829,1.395,5.1,5.1,0,0,0-.3,1.772,6.8,6.8,0,0,0,.287,1.789,3.9,3.9,0,0,0,.763,1.411,3.478,3.478,0,0,0,1.255.919,4.358,4.358,0,0,0,1.764.328,3.851,3.851,0,0,0,2.4-.722A3.39,3.39,0,0,0,55.5-9.439Zm2.593-1.477a5.581,5.581,0,0,1,.131-1.214,3.212,3.212,0,0,1,.427-1.05,2.221,2.221,0,0,1,.788-.738,2.4,2.4,0,0,1,1.2-.279,2.589,2.589,0,0,1,1.231.271,2.389,2.389,0,0,1,.829.714,2.985,2.985,0,0,1,.468,1.026,4.889,4.889,0,0,1,.148,1.206,4.919,4.919,0,0,1-.139,1.165,3.053,3.053,0,0,1-.451,1.026,2.4,2.4,0,0,1-.8.73,2.4,2.4,0,0,1-1.2.279,2.491,2.491,0,0,1-1.173-.263,2.332,2.332,0,0,1-.82-.706,3.122,3.122,0,0,1-.476-1.009A4.338,4.338,0,0,1,58.088-10.916Zm6.564,4.168V-18.464H63.257V-14.1h-.033a2.247,2.247,0,0,0-.566-.632,3.216,3.216,0,0,0-.714-.41,3.583,3.583,0,0,0-.755-.222,4.132,4.132,0,0,0-.706-.066,3.861,3.861,0,0,0-1.7.353,3.487,3.487,0,0,0-1.214.952,4.018,4.018,0,0,0-.722,1.4,5.985,5.985,0,0,0-.238,1.707,5.8,5.8,0,0,0,.246,1.707,4.218,4.218,0,0,0,.73,1.411,3.529,3.529,0,0,0,1.214.968,3.827,3.827,0,0,0,1.715.361,4.135,4.135,0,0,0,1.625-.312A2.053,2.053,0,0,0,63.224-7.9h.033v1.149Zm6.761-11.716V-6.748h1.395V-7.88h.033a2.247,2.247,0,0,0,.566.632,2.982,2.982,0,0,0,.714.4,3.874,3.874,0,0,0,.763.213,4.193,4.193,0,0,0,.7.066,3.94,3.94,0,0,0,1.7-.345,3.4,3.4,0,0,0,1.214-.944,4.018,4.018,0,0,0,.722-1.4,5.985,5.985,0,0,0,.238-1.707,5.8,5.8,0,0,0-.246-1.707,4.312,4.312,0,0,0-.73-1.419,3.488,3.488,0,0,0-1.214-.976,3.827,3.827,0,0,0-1.715-.361,4.043,4.043,0,0,0-1.625.32,2.088,2.088,0,0,0-1.083,1.026h-.033v-4.381Zm6.564,7.4a5.581,5.581,0,0,1-.131,1.214,3.212,3.212,0,0,1-.427,1.05,2.243,2.243,0,0,1-.779.738,2.385,2.385,0,0,1-1.206.279A2.589,2.589,0,0,1,74.2-8.052a2.389,2.389,0,0,1-.829-.714,2.985,2.985,0,0,1-.468-1.026A4.889,4.889,0,0,1,72.758-11a4.919,4.919,0,0,1,.139-1.165,3.053,3.053,0,0,1,.451-1.026,2.4,2.4,0,0,1,.8-.73,2.4,2.4,0,0,1,1.2-.279,2.491,2.491,0,0,1,1.173.263,2.332,2.332,0,0,1,.82.706,3.122,3.122,0,0,1,.476,1.009A4.338,4.338,0,0,1,77.976-11.063Zm6.449,5.448a8.871,8.871,0,0,1-.484,1.05,2.871,2.871,0,0,1-.525.7,1.782,1.782,0,0,1-.64.394,2.462,2.462,0,0,1-.812.123,3.721,3.721,0,0,1-.492-.033A2.324,2.324,0,0,1,81-3.5v-1.28a2.342,2.342,0,0,0,.418.139,1.765,1.765,0,0,0,.4.057,1.2,1.2,0,0,0,.714-.205,1.255,1.255,0,0,0,.435-.583L83.539-6.8l-3.364-8.434h1.575L84.228-8.29h.033l2.379-6.941h1.477Z\" transform=\"translate(17.85 28.4)\"/></g></g></g><g transform=\"translate(0 0)\"><g transform=\"translate(0 5.371)\"><path d=\"M11.76,24.456A11.41,11.41,0,0,1,3.292,20.8,12.564,12.564,0,0,1,0,12.206,12.569,12.569,0,0,1,3.246,3.638,11.307,11.307,0,0,1,11.67,0a9.519,9.519,0,0,1,7.217,3V.759h8.264V23.7H18.887V21.148H18.8C17.478,23.219,14.846,24.456,11.76,24.456ZM13.849,7.064A5.023,5.023,0,0,0,8.537,12.25a4.95,4.95,0,0,0,5.312,5.141A4.95,4.95,0,0,0,19.16,12.25,5.023,5.023,0,0,0,13.849,7.064Z\" transform=\"translate(27.277 11.038)\" fill=\"#fff\"/><path d=\"M0,33.931V.758H8.271v2.6H8.36A8.258,8.258,0,0,1,15.406,0,11.4,11.4,0,0,1,23.9,3.686a12.665,12.665,0,0,1,3.278,8.622,12.508,12.508,0,0,1-3.25,8.57,11.351,11.351,0,0,1-8.429,3.6,9.535,9.535,0,0,1-7.229-2.95V32.337L0,33.931ZM13.317,7.07A5.028,5.028,0,0,0,8,12.259a4.957,4.957,0,0,0,5.319,5.15,4.957,4.957,0,0,0,5.319-5.15A5.028,5.028,0,0,0,13.317,7.07Z\" transform=\"translate(55.766 11.041)\" fill=\"#fff\"/><path d=\"M22.836,0l3.5,10.2.07.183a20.748,20.748,0,0,1,.988,3.43q.141-.731.364-1.532t.647-2.058L31.985,0h8.678L30.691,23.1H24.764L21.237,12.647q-.282-.891-.505-1.8t-.412-1.8A30.927,30.927,0,0,1,19.4,12.51l-.047.16L15.851,23.1H9.925L0,0H8.631l3.552,10.223q.4,1.121.635,1.955t.377,1.635a23.522,23.522,0,0,1,.917-3.179q.093-.274.141-.411L17.78,0h5.056\" transform=\"translate(80.251 11.743)\" fill=\"#fff\"/><path d=\"M0,34.75V1.5L7.888,0V22.28l8.272-9.665H26.12L15.889,23.266,27.045,34.75H16.475L7.888,24.91v9.84H0\" transform=\"translate(168.695 0)\" fill=\"#fff\"/><path d=\"M0,21.47l1.705-6.1a13.453,13.453,0,0,0,3.952,2.342A12.145,12.145,0,0,0,10,18.534a4.643,4.643,0,0,0,2.351-.482,1.539,1.539,0,0,0,.807-1.4q0-1.5-3.25-2.241-1.06-.246-1.705-.426A12.325,12.325,0,0,1,2.846,11.4,5.5,5.5,0,0,1,1.176,7.239,6.324,6.324,0,0,1,3.722,1.972,11,11,0,0,1,10.624,0a21.365,21.365,0,0,1,4.551.5,25.45,25.45,0,0,1,4.736,1.558l-1.706,5.49a14.24,14.24,0,0,0-3.319-1.636,10.6,10.6,0,0,0-3.364-.56A4.22,4.22,0,0,0,9.4,5.782a1.356,1.356,0,0,0-.714,1.233q0,1.211,3.227,2.04.737.2,1.106.291,4.264,1.188,5.935,2.79a5.728,5.728,0,0,1,1.671,4.337,6.782,6.782,0,0,1-2.743,5.614,11.478,11.478,0,0,1-7.259,2.14,22.565,22.565,0,0,1-5.693-.683A18.517,18.517,0,0,1,0,21.47\" transform=\"translate(195.121 11.284)\" fill=\"#fff\"/><path d=\"M8.273,4.075h.091A8.13,8.13,0,0,1,15.909,0H17.5V7.834A6.8,6.8,0,0,0,14,7.074c-4.593,0-5.728,3-5.728,6.941v9.268H0V.313H8.273V4.075\" transform=\"translate(150.08 11.469)\" fill=\"#fff\"/><path d=\"M17.392,29.929H13a.76.76,0,0,1-.485-.166.579.579,0,0,1-.227-.419l-.553-3.586a12.3,12.3,0,0,1-1.781-.721L7.163,27.123a.719.719,0,0,1-.495.176.687.687,0,0,1-.495-.214A25.873,25.873,0,0,1,2.91,23.81a.753.753,0,0,1,.019-.9c.2-.277.542-.713,1.009-1.3.483-.6.832-1.05,1.068-1.374a9.591,9.591,0,0,1-.811-1.929l-3.62-.526a.63.63,0,0,1-.416-.243A.729.729,0,0,1,0,17.089V12.762a.746.746,0,0,1,.159-.448.6.6,0,0,1,.376-.253l3.68-.546a9.5,9.5,0,0,1,.772-1.792C4.464,8.991,3.752,8.085,2.87,7.034a.732.732,0,0,1-.2-.468.82.82,0,0,1,.179-.449A19.622,19.622,0,0,1,4.8,4.023C5.751,3.1,6.38,2.631,6.668,2.631a.859.859,0,0,1,.515.194L9.913,4.91a11.536,11.536,0,0,1,1.8-.741A31.372,31.372,0,0,1,12.287.546.665.665,0,0,1,13,0h4.392a.755.755,0,0,1,.485.166.581.581,0,0,1,.229.419l.553,3.584a12.543,12.543,0,0,1,1.781.722L23.25,2.807a.641.641,0,0,1,.475-.176.775.775,0,0,1,.495.194,27.092,27.092,0,0,1,3.264,3.313.625.625,0,0,1,.139.429.745.745,0,0,1-.159.448c-.2.271-.525.695-1.008,1.3-.467.581-.827,1.043-1.069,1.373a11.784,11.784,0,0,1,.812,1.91l3.62.545a.625.625,0,0,1,.416.244.736.736,0,0,1,.157.458v4.325a.754.754,0,0,1-.157.449.606.606,0,0,1-.4.253l-3.66.545a12.628,12.628,0,0,1-.772,1.774c.465.654,1.177,1.559,2.117,2.688a.752.752,0,0,1,.2.488.648.648,0,0,1-.177.448,19.641,19.641,0,0,1-1.959,2.1c-.947.918-1.573,1.384-1.86,1.384a.978.978,0,0,1-.515-.176l-2.731-2.1a11.429,11.429,0,0,1-1.8.741,32.016,32.016,0,0,1-.573,3.624A.668.668,0,0,1,17.392,29.929ZM15.2,9.976a4.938,4.938,0,0,0-3.582,1.463,4.935,4.935,0,0,0,0,7.053,5.12,5.12,0,0,0,7.163,0,4.932,4.932,0,0,0,0-7.053A4.938,4.938,0,0,0,15.2,9.976Z\" transform=\"translate(118.47 8.521)\" fill=\"#fff\"/><path d=\"M0,33.5,16.106,7.374H2.752V0H30.9L14.887,26.122H38.22L0,33.5\" transform=\"translate(0 11.038)\" fill=\"#fff\"/></g><path d=\"M3.576-12.852v-4.3H6.628a2.867,2.867,0,0,1,1.945.55A2.034,2.034,0,0,1,9.188-15a2.06,2.06,0,0,1-.615,1.608,2.784,2.784,0,0,1-1.945.542ZM2.017-18.464V-6.748H3.576v-4.792H7.153a3.569,3.569,0,0,0,2.683-.9A3.478,3.478,0,0,0,10.747-15a3.45,3.45,0,0,0-.911-2.552,3.638,3.638,0,0,0-2.683-.911Zm11.421,7.483a4.221,4.221,0,0,1,.205-1.37,2.957,2.957,0,0,1,.566-1.009,2.411,2.411,0,0,1,.845-.624A2.515,2.515,0,0,1,16.08-14.2a2.515,2.515,0,0,1,1.026.213,2.411,2.411,0,0,1,.845.624,2.957,2.957,0,0,1,.566,1.009,4.221,4.221,0,0,1,.205,1.37,4.221,4.221,0,0,1-.205,1.37,2.867,2.867,0,0,1-.566,1,2.457,2.457,0,0,1-.845.615,2.515,2.515,0,0,1-1.026.213,2.515,2.515,0,0,1-1.026-.213,2.457,2.457,0,0,1-.845-.615,2.867,2.867,0,0,1-.566-1A4.221,4.221,0,0,1,13.438-10.981Zm-1.477,0a5.573,5.573,0,0,0,.263,1.739,3.97,3.97,0,0,0,.788,1.4,3.623,3.623,0,0,0,1.3.935,4.4,4.4,0,0,0,1.772.336A4.381,4.381,0,0,0,17.86-6.9a3.641,3.641,0,0,0,1.288-.935,3.97,3.97,0,0,0,.788-1.4,5.573,5.573,0,0,0,.263-1.739,5.65,5.65,0,0,0-.263-1.748,3.96,3.96,0,0,0-.788-1.411,3.729,3.729,0,0,0-1.288-.944,4.29,4.29,0,0,0-1.78-.345,4.3,4.3,0,0,0-1.772.345,3.71,3.71,0,0,0-1.3.944,3.96,3.96,0,0,0-.788,1.411A5.65,5.65,0,0,0,11.961-10.981Zm18.28,4.234,2.708-8.484H31.5L29.6-8.29h-.033L27.8-15.231H26.27L24.564-8.29h-.033l-1.92-6.941H21.068l2.724,8.484H25.3l1.707-6.744h.033l1.723,6.744ZM40.169-11.8H35.3a2.905,2.905,0,0,1,.213-.927A2.473,2.473,0,0,1,36-13.492a2.255,2.255,0,0,1,.747-.517,2.429,2.429,0,0,1,.976-.189,2.386,2.386,0,0,1,.96.189,2.415,2.415,0,0,1,.755.509,2.391,2.391,0,0,1,.509.763A2.854,2.854,0,0,1,40.169-11.8Zm1.346,2.363H40.136a1.983,1.983,0,0,1-.747,1.247,2.414,2.414,0,0,1-1.452.41,2.889,2.889,0,0,1-1.2-.23,2.348,2.348,0,0,1-.837-.615,2.4,2.4,0,0,1-.476-.886,3.367,3.367,0,0,1-.131-1.058h6.35a6.754,6.754,0,0,0-.139-1.625,4.7,4.7,0,0,0-.624-1.575,3.716,3.716,0,0,0-1.2-1.19,3.48,3.48,0,0,0-1.879-.468,3.858,3.858,0,0,0-1.6.328,3.76,3.76,0,0,0-1.264.919,4.236,4.236,0,0,0-.829,1.395,5.105,5.105,0,0,0-.3,1.772,6.8,6.8,0,0,0,.287,1.789,3.9,3.9,0,0,0,.763,1.411,3.478,3.478,0,0,0,1.255.919,4.358,4.358,0,0,0,1.764.328,3.851,3.851,0,0,0,2.4-.722A3.39,3.39,0,0,0,41.515-9.439Zm1.526-5.793v8.484h1.395v-3.774a5.8,5.8,0,0,1,.164-1.452,2.784,2.784,0,0,1,.525-1.075,2.251,2.251,0,0,1,.952-.673,3.945,3.945,0,0,1,1.428-.23v-1.477a3.135,3.135,0,0,0-1.871.459,3.779,3.779,0,0,0-1.247,1.526h-.033v-1.789ZM54.15-11.8H49.276a2.905,2.905,0,0,1,.213-.927,2.473,2.473,0,0,1,.492-.763,2.255,2.255,0,0,1,.747-.517A2.429,2.429,0,0,1,51.7-14.2a2.386,2.386,0,0,1,.96.189,2.415,2.415,0,0,1,.755.509,2.391,2.391,0,0,1,.509.763A2.854,2.854,0,0,1,54.15-11.8ZM55.5-9.439H54.117a1.983,1.983,0,0,1-.747,1.247,2.414,2.414,0,0,1-1.452.41,2.889,2.889,0,0,1-1.2-.23,2.348,2.348,0,0,1-.837-.615,2.4,2.4,0,0,1-.476-.886,3.367,3.367,0,0,1-.131-1.058h6.35a6.754,6.754,0,0,0-.139-1.625,4.7,4.7,0,0,0-.624-1.575,3.716,3.716,0,0,0-1.2-1.19,3.48,3.48,0,0,0-1.879-.468,3.858,3.858,0,0,0-1.6.328,3.76,3.76,0,0,0-1.264.919,4.236,4.236,0,0,0-.829,1.395,5.1,5.1,0,0,0-.3,1.772,6.8,6.8,0,0,0,.287,1.789,3.9,3.9,0,0,0,.763,1.411,3.478,3.478,0,0,0,1.255.919,4.358,4.358,0,0,0,1.764.328,3.851,3.851,0,0,0,2.4-.722A3.39,3.39,0,0,0,55.5-9.439Zm2.593-1.477a5.581,5.581,0,0,1,.131-1.214,3.212,3.212,0,0,1,.427-1.05,2.221,2.221,0,0,1,.788-.738,2.4,2.4,0,0,1,1.2-.279,2.589,2.589,0,0,1,1.231.271,2.389,2.389,0,0,1,.829.714,2.985,2.985,0,0,1,.468,1.026,4.889,4.889,0,0,1,.148,1.206,4.919,4.919,0,0,1-.139,1.165,3.053,3.053,0,0,1-.451,1.026,2.4,2.4,0,0,1-.8.73,2.4,2.4,0,0,1-1.2.279,2.491,2.491,0,0,1-1.173-.263,2.332,2.332,0,0,1-.82-.706,3.122,3.122,0,0,1-.476-1.009A4.338,4.338,0,0,1,58.088-10.916Zm6.564,4.168V-18.464H63.257V-14.1h-.033a2.247,2.247,0,0,0-.566-.632,3.216,3.216,0,0,0-.714-.41,3.583,3.583,0,0,0-.755-.222,4.132,4.132,0,0,0-.706-.066,3.861,3.861,0,0,0-1.7.353,3.487,3.487,0,0,0-1.214.952,4.018,4.018,0,0,0-.722,1.4,5.985,5.985,0,0,0-.238,1.707,5.8,5.8,0,0,0,.246,1.707,4.218,4.218,0,0,0,.73,1.411,3.529,3.529,0,0,0,1.214.968,3.827,3.827,0,0,0,1.715.361,4.135,4.135,0,0,0,1.625-.312A2.053,2.053,0,0,0,63.224-7.9h.033v1.149Zm6.761-11.716V-6.748h1.395V-7.88h.033a2.247,2.247,0,0,0,.566.632,2.982,2.982,0,0,0,.714.4,3.874,3.874,0,0,0,.763.213,4.193,4.193,0,0,0,.7.066,3.94,3.94,0,0,0,1.7-.345,3.4,3.4,0,0,0,1.214-.944,4.018,4.018,0,0,0,.722-1.4,5.985,5.985,0,0,0,.238-1.707,5.8,5.8,0,0,0-.246-1.707,4.312,4.312,0,0,0-.73-1.419,3.488,3.488,0,0,0-1.214-.976,3.827,3.827,0,0,0-1.715-.361,4.043,4.043,0,0,0-1.625.32,2.088,2.088,0,0,0-1.083,1.026h-.033v-4.381Zm6.564,7.4a5.581,5.581,0,0,1-.131,1.214,3.212,3.212,0,0,1-.427,1.05,2.243,2.243,0,0,1-.779.738,2.385,2.385,0,0,1-1.206.279A2.589,2.589,0,0,1,74.2-8.052a2.389,2.389,0,0,1-.829-.714,2.985,2.985,0,0,1-.468-1.026A4.889,4.889,0,0,1,72.758-11a4.919,4.919,0,0,1,.139-1.165,3.053,3.053,0,0,1,.451-1.026,2.4,2.4,0,0,1,.8-.73,2.4,2.4,0,0,1,1.2-.279,2.491,2.491,0,0,1,1.173.263,2.332,2.332,0,0,1,.82.706,3.122,3.122,0,0,1,.476,1.009A4.338,4.338,0,0,1,77.976-11.063Zm6.449,5.448a8.871,8.871,0,0,1-.484,1.05,2.871,2.871,0,0,1-.525.7,1.782,1.782,0,0,1-.64.394,2.462,2.462,0,0,1-.812.123,3.721,3.721,0,0,1-.492-.033A2.324,2.324,0,0,1,81-3.5v-1.28a2.342,2.342,0,0,0,.418.139,1.765,1.765,0,0,0,.4.057,1.2,1.2,0,0,0,.714-.205,1.255,1.255,0,0,0,.435-.583L83.539-6.8l-3.364-8.434h1.575L84.228-8.29h.033l2.379-6.941h1.477Z\" transform=\"translate(0.722 18.464)\" fill=\"#fff\"/></g></g></g></svg>";
|