@remotion/media-utils 3.0.1 → 3.0.4
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/dist/fft/fft-freq.d.ts +1 -4
- package/dist/fft/fft-freq.d.ts.map +1 -1
- package/dist/fft/fft.d.ts +1 -4
- package/dist/fft/fft.d.ts.map +1 -1
- package/dist/fft/mag.d.ts +1 -4
- package/dist/fft/mag.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/p-limit/index.d.ts +0 -2
- package/dist/p-limit/index.d.ts.map +0 -1
- package/dist/p-limit/index.js +0 -63
- package/dist/p-limit/index.js.map +0 -1
- package/dist/p-limit/queue.d.ts +0 -10
- package/dist/p-limit/queue.d.ts.map +0 -1
- package/dist/p-limit/queue.js +0 -71
- package/dist/p-limit/queue.js.map +0 -1
- package/dist/use-audio-metadata.d.ts +0 -3
- package/dist/use-audio-metadata.d.ts.map +0 -1
- package/dist/use-audio-metadata.js +0 -34
- package/dist/use-audio-metadata.js.map +0 -1
package/dist/fft/fft-freq.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fft-freq.d.ts","sourceRoot":"","sources":["../../src/fft/fft-freq.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,YACV
|
|
1
|
+
{"version":3,"file":"fft-freq.d.ts","sourceRoot":"","sources":["../../src/fft/fft-freq.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,YACV,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,cACf,MAAM,aAQlB,CAAC"}
|
package/dist/fft/fft.d.ts
CHANGED
package/dist/fft/fft.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fft.d.ts","sourceRoot":"","sources":["../../src/fft/fft.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,GAAG,WAAqB,UAAU,KAAG
|
|
1
|
+
{"version":3,"file":"fft.d.ts","sourceRoot":"","sources":["../../src/fft/fft.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,GAAG,WAAqB,UAAU,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EA8BjE,CAAC"}
|
package/dist/fft/mag.d.ts
CHANGED
package/dist/fft/mag.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mag.d.ts","sourceRoot":"","sources":["../../src/fft/mag.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,MAAM,YAAsB
|
|
1
|
+
{"version":3,"file":"mag.d.ts","sourceRoot":"","sources":["../../src/fft/mag.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,MAAM,YAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,aAG1D,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remotion/media-utils",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.4",
|
|
4
4
|
"description": "Utility functions for audio and video",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"url": "https://github.com/remotion-dev/remotion/issues"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"remotion": "3.0.
|
|
21
|
+
"remotion": "3.0.4"
|
|
22
22
|
},
|
|
23
23
|
"peerDependencies": {
|
|
24
24
|
"react": ">=16.8.0",
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
"publishConfig": {
|
|
45
45
|
"access": "public"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "fe6cd08c090ed8aa6c2a1b610851c0ab97749a2c"
|
|
48
48
|
}
|
package/dist/p-limit/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/p-limit/index.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,WAAW,EAAE,MAAM,iDA4EjD"}
|
package/dist/p-limit/index.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const yocto_queue_1 = __importDefault(require("yocto-queue"));
|
|
7
|
-
function pLimit(concurrency) {
|
|
8
|
-
if (!((Number.isInteger(concurrency) ||
|
|
9
|
-
concurrency === Number.POSITIVE_INFINITY) &&
|
|
10
|
-
concurrency > 0)) {
|
|
11
|
-
throw new TypeError('Expected `concurrency` to be a number from 1 and up');
|
|
12
|
-
}
|
|
13
|
-
const queue = new yocto_queue_1.default();
|
|
14
|
-
let activeCount = 0;
|
|
15
|
-
const next = () => {
|
|
16
|
-
activeCount--;
|
|
17
|
-
if (queue.size > 0) {
|
|
18
|
-
queue.dequeue()();
|
|
19
|
-
}
|
|
20
|
-
};
|
|
21
|
-
const run = async (fn, resolve, args) => {
|
|
22
|
-
activeCount++;
|
|
23
|
-
const result = (async () => fn(...args))();
|
|
24
|
-
resolve(result);
|
|
25
|
-
try {
|
|
26
|
-
await result;
|
|
27
|
-
}
|
|
28
|
-
catch (_a) { }
|
|
29
|
-
next();
|
|
30
|
-
};
|
|
31
|
-
const enqueue = (fn, resolve, args) => {
|
|
32
|
-
queue.enqueue(run.bind(undefined, fn, resolve, args));
|
|
33
|
-
(async () => {
|
|
34
|
-
// This function needs to wait until the next microtask before comparing
|
|
35
|
-
// `activeCount` to `concurrency`, because `activeCount` is updated asynchronously
|
|
36
|
-
// when the run function is dequeued and called. The comparison in the if-statement
|
|
37
|
-
// needs to happen asynchronously as well to get an up-to-date value for `activeCount`.
|
|
38
|
-
await Promise.resolve();
|
|
39
|
-
if (activeCount < concurrency && queue.size > 0) {
|
|
40
|
-
queue.dequeue()();
|
|
41
|
-
}
|
|
42
|
-
})();
|
|
43
|
-
};
|
|
44
|
-
const generator = (fn, ...args) => new Promise((resolve) => {
|
|
45
|
-
enqueue(fn, resolve, args);
|
|
46
|
-
});
|
|
47
|
-
Object.defineProperties(generator, {
|
|
48
|
-
activeCount: {
|
|
49
|
-
get: () => activeCount,
|
|
50
|
-
},
|
|
51
|
-
pendingCount: {
|
|
52
|
-
get: () => queue.size,
|
|
53
|
-
},
|
|
54
|
-
clearQueue: {
|
|
55
|
-
value: () => {
|
|
56
|
-
queue.clear();
|
|
57
|
-
},
|
|
58
|
-
},
|
|
59
|
-
});
|
|
60
|
-
return generator;
|
|
61
|
-
}
|
|
62
|
-
exports.default = pLimit;
|
|
63
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/p-limit/index.ts"],"names":[],"mappings":";;;;;AAAA,8DAAgC;AAEhC,SAAwB,MAAM,CAAC,WAAmB;IACjD,IACC,CAAC,CACA,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;QAC7B,WAAW,KAAK,MAAM,CAAC,iBAAiB,CAAC;QAC1C,WAAW,GAAG,CAAC,CACf,EACA;QACD,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC,CAAC;KAC3E;IAED,MAAM,KAAK,GAAG,IAAI,qBAAK,EAAE,CAAC;IAC1B,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,MAAM,IAAI,GAAG,GAAG,EAAE;QACjB,WAAW,EAAE,CAAC;QAEd,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE;YACnB,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;SAClB;IACF,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACvC,WAAW,EAAE,CAAC;QAEd,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;QAE3C,OAAO,CAAC,MAAM,CAAC,CAAC;QAEhB,IAAI;YACH,MAAM,MAAM,CAAC;SACb;QAAC,WAAM,GAAE;QAEV,IAAI,EAAE,CAAC;IACR,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CACf,EAAqE,EACrE,OAAO,EACP,IAAI,EACH,EAAE;QACH,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAEtD,CAAC,KAAK,IAAI,EAAE;YACX,wEAAwE;YACxE,kFAAkF;YAClF,mFAAmF;YACnF,uFAAuF;YACvF,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YAExB,IAAI,WAAW,GAAG,WAAW,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE;gBAChD,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;aAClB;QACF,CAAC,CAAC,EAAE,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,CACjC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACvB,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE;QAClC,WAAW,EAAE;YACZ,GAAG,EAAE,GAAG,EAAE,CAAC,WAAW;SACtB;QACD,YAAY,EAAE;YACb,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI;SACrB;QACD,UAAU,EAAE;YACX,KAAK,EAAE,GAAG,EAAE;gBACX,KAAK,CAAC,KAAK,EAAE,CAAC;YACf,CAAC;SACD;KACD,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AAClB,CAAC;AA5ED,yBA4EC"}
|
package/dist/p-limit/queue.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export default class Queue<ValueType> implements Iterable<ValueType> {
|
|
2
|
-
#private;
|
|
3
|
-
constructor();
|
|
4
|
-
enqueue(value: ValueType): void;
|
|
5
|
-
dequeue(): any;
|
|
6
|
-
clear(): void;
|
|
7
|
-
get size(): number;
|
|
8
|
-
[Symbol.iterator](): Generator<any, void, unknown>;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=queue.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/p-limit/queue.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,OAAO,OAAO,KAAK,CAAC,SAAS,CAAE,YAAW,QAAQ,CAAC,SAAS,CAAC;;;IASnE,OAAO,CAAC,KAAK,EAAE,SAAS;IAcxB,OAAO;IAWP,KAAK;IAML,IAAI,IAAI,WAEP;IAEA,CAAC,MAAM,CAAC,QAAQ,CAAC;CAQlB"}
|
package/dist/p-limit/queue.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
How it works:
|
|
4
|
-
`this.#head` is an instance of `Node` which keeps track of its current value and nests another instance of `Node` that keeps the value that comes after it. When a value is provided to `.enqueue()`, the code needs to iterate through `this.#head`, going deeper and deeper to find the last value. However, iterating through every single item is slow. This problem is solved by saving a reference to the last value as `this.#tail` so that it can reference it to add a new value.
|
|
5
|
-
*/
|
|
6
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
7
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
8
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
9
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
10
|
-
};
|
|
11
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
12
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
13
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
14
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
15
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
16
|
-
};
|
|
17
|
-
var _Queue_head, _Queue_tail, _Queue_size;
|
|
18
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
class Node {
|
|
20
|
-
constructor(value) {
|
|
21
|
-
this.value = value;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
class Queue {
|
|
25
|
-
constructor() {
|
|
26
|
-
_Queue_head.set(this, void 0);
|
|
27
|
-
_Queue_tail.set(this, void 0);
|
|
28
|
-
_Queue_size.set(this, 0);
|
|
29
|
-
this.clear();
|
|
30
|
-
}
|
|
31
|
-
enqueue(value) {
|
|
32
|
-
var _a;
|
|
33
|
-
const node = new Node(value);
|
|
34
|
-
if (__classPrivateFieldGet(this, _Queue_head, "f")) {
|
|
35
|
-
__classPrivateFieldGet(this, _Queue_tail, "f").next = node;
|
|
36
|
-
__classPrivateFieldSet(this, _Queue_tail, node, "f");
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
__classPrivateFieldSet(this, _Queue_head, node, "f");
|
|
40
|
-
__classPrivateFieldSet(this, _Queue_tail, node, "f");
|
|
41
|
-
}
|
|
42
|
-
__classPrivateFieldSet(this, _Queue_size, (_a = __classPrivateFieldGet(this, _Queue_size, "f"), _a++, _a), "f");
|
|
43
|
-
}
|
|
44
|
-
dequeue() {
|
|
45
|
-
var _a;
|
|
46
|
-
const current = __classPrivateFieldGet(this, _Queue_head, "f");
|
|
47
|
-
if (!current) {
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
__classPrivateFieldSet(this, _Queue_head, __classPrivateFieldGet(this, _Queue_head, "f").next, "f");
|
|
51
|
-
__classPrivateFieldSet(this, _Queue_size, (_a = __classPrivateFieldGet(this, _Queue_size, "f"), _a--, _a), "f");
|
|
52
|
-
return current.value;
|
|
53
|
-
}
|
|
54
|
-
clear() {
|
|
55
|
-
__classPrivateFieldSet(this, _Queue_head, undefined, "f");
|
|
56
|
-
__classPrivateFieldSet(this, _Queue_tail, undefined, "f");
|
|
57
|
-
__classPrivateFieldSet(this, _Queue_size, 0, "f");
|
|
58
|
-
}
|
|
59
|
-
get size() {
|
|
60
|
-
return __classPrivateFieldGet(this, _Queue_size, "f");
|
|
61
|
-
}
|
|
62
|
-
*[(_Queue_head = new WeakMap(), _Queue_tail = new WeakMap(), _Queue_size = new WeakMap(), Symbol.iterator)]() {
|
|
63
|
-
let current = __classPrivateFieldGet(this, _Queue_head, "f");
|
|
64
|
-
while (current) {
|
|
65
|
-
yield current.value;
|
|
66
|
-
current = current.next;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
exports.default = Queue;
|
|
71
|
-
//# sourceMappingURL=queue.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/p-limit/queue.ts"],"names":[],"mappings":";AAAA;;;EAGE;;;;;;;;;;;;;;AAEF,MAAM,IAAI;IAIT,YAAY,KAAK;QAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;CACD;AAED,MAAqB,KAAK;IAKzB;QAJA,8BAAwB;QACxB,8BAAwB;QACxB,sBAAQ,CAAC,EAAC;QAGT,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,CAAC;IAED,OAAO,CAAC,KAAgB;;QACvB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAE7B,IAAI,uBAAA,IAAI,mBAAM,EAAE;YACf,uBAAA,IAAI,mBAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YACvB,uBAAA,IAAI,eAAS,IAAI,MAAA,CAAC;SAClB;aAAM;YACN,uBAAA,IAAI,eAAS,IAAI,MAAA,CAAC;YAClB,uBAAA,IAAI,eAAS,IAAI,MAAA,CAAC;SAClB;QAED,0CAAA,CAAA,mDAAU,EAAV,IAAY,IAAA,CAAA,MAAA,CAAC;IACd,CAAC;IAED,OAAO;;QACN,MAAM,OAAO,GAAG,uBAAA,IAAI,mBAAM,CAAC;QAC3B,IAAI,CAAC,OAAO,EAAE;YACb,OAAO;SACP;QAED,uBAAA,IAAI,eAAS,uBAAA,IAAI,mBAAM,CAAC,IAAI,MAAA,CAAC;QAC7B,0CAAA,CAAA,mDAAU,EAAV,IAAY,IAAA,CAAA,MAAA,CAAC;QACb,OAAO,OAAO,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,KAAK;QACJ,uBAAA,IAAI,eAAS,SAAS,MAAA,CAAC;QACvB,uBAAA,IAAI,eAAS,SAAS,MAAA,CAAC;QACvB,uBAAA,IAAI,eAAS,CAAC,MAAA,CAAC;IAChB,CAAC;IAED,IAAI,IAAI;QACP,OAAO,uBAAA,IAAI,mBAAM,CAAC;IACnB,CAAC;IAED,CAAC,yFAAC,MAAM,CAAC,QAAQ,EAAC;QACjB,IAAI,OAAO,GAAG,uBAAA,IAAI,mBAAM,CAAC;QAEzB,OAAO,OAAO,EAAE;YACf,MAAM,OAAO,CAAC,KAAK,CAAC;YACpB,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;SACvB;IACF,CAAC;CACD;AApDD,wBAoDC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-audio-metadata.d.ts","sourceRoot":"","sources":["../src/use-audio-metadata.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAElC,eAAO,MAAM,YAAY,QAAS,MAAM,KAAG,SAAS,GAAG,IAkCtD,CAAC"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useAudioData = void 0;
|
|
4
|
-
const react_1 = require("react");
|
|
5
|
-
const remotion_1 = require("remotion");
|
|
6
|
-
const get_audio_data_1 = require("./get-audio-data");
|
|
7
|
-
const useAudioData = (src) => {
|
|
8
|
-
if (!src) {
|
|
9
|
-
throw new TypeError("useAudioMetadata requires a 'src' parameter");
|
|
10
|
-
}
|
|
11
|
-
const mountState = (0, react_1.useRef)({ isMounted: true });
|
|
12
|
-
(0, react_1.useEffect)(() => {
|
|
13
|
-
const { current } = mountState;
|
|
14
|
-
current.isMounted = true;
|
|
15
|
-
return () => {
|
|
16
|
-
current.isMounted = false;
|
|
17
|
-
};
|
|
18
|
-
}, []);
|
|
19
|
-
const [metadata, setMetadata] = (0, react_1.useState)(null);
|
|
20
|
-
const fetchMetadata = (0, react_1.useCallback)(async () => {
|
|
21
|
-
const handle = (0, remotion_1.delayRender)(`Waiting for audio metadata with src="${src}" to be loaded`);
|
|
22
|
-
const data = await (0, get_audio_data_1.getAudioData)(src);
|
|
23
|
-
if (mountState.current.isMounted) {
|
|
24
|
-
setMetadata(data);
|
|
25
|
-
}
|
|
26
|
-
(0, remotion_1.continueRender)(handle);
|
|
27
|
-
}, [src]);
|
|
28
|
-
(0, react_1.useEffect)(() => {
|
|
29
|
-
fetchMetadata();
|
|
30
|
-
}, [fetchMetadata]);
|
|
31
|
-
return metadata;
|
|
32
|
-
};
|
|
33
|
-
exports.useAudioData = useAudioData;
|
|
34
|
-
//# sourceMappingURL=use-audio-metadata.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-audio-metadata.js","sourceRoot":"","sources":["../src/use-audio-metadata.ts"],"names":[],"mappings":";;;AAAA,iCAA+D;AAC/D,uCAAqD;AACrD,qDAA8C;AAGvC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAoB,EAAE;IAC7D,IAAI,CAAC,GAAG,EAAE;QACT,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;KACnE;IAED,MAAM,UAAU,GAAG,IAAA,cAAM,EAAC,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;IAE7C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACd,MAAM,EAAC,OAAO,EAAC,GAAG,UAAU,CAAC;QAC7B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QACzB,OAAO,GAAG,EAAE;YACX,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;QAC3B,CAAC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAmB,IAAI,CAAC,CAAC;IAEjE,MAAM,aAAa,GAAG,IAAA,mBAAW,EAAC,KAAK,IAAI,EAAE;QAC5C,MAAM,MAAM,GAAG,IAAA,sBAAW,EACzB,wCAAwC,GAAG,gBAAgB,CAC3D,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,IAAA,6BAAY,EAAC,GAAG,CAAC,CAAC;QACrC,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE;YACjC,WAAW,CAAC,IAAI,CAAC,CAAC;SAClB;QAED,IAAA,yBAAc,EAAC,MAAM,CAAC,CAAC;IACxB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,IAAA,iBAAS,EAAC,GAAG,EAAE;QACd,aAAa,EAAE,CAAC;IACjB,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC;AAlCW,QAAA,YAAY,gBAkCvB"}
|