hyperframes 0.6.72 → 0.6.74
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/cli.js +1237 -322
- package/dist/hyperframe-runtime.js +11 -11
- package/dist/hyperframe.manifest.json +1 -1
- package/dist/hyperframe.runtime.iife.js +11 -11
- package/dist/studio/assets/index-BcJO6Ej5.js +140 -0
- package/dist/studio/assets/index-C2gBZ2km.css +1 -0
- package/dist/studio/index.html +2 -2
- package/package.json +1 -1
- package/dist/studio/assets/index-CrxThtSJ.css +0 -1
- package/dist/studio/assets/index-CveQve6o.js +0 -140
package/dist/cli.js
CHANGED
|
@@ -50,7 +50,7 @@ var VERSION;
|
|
|
50
50
|
var init_version = __esm({
|
|
51
51
|
"src/version.ts"() {
|
|
52
52
|
"use strict";
|
|
53
|
-
VERSION = true ? "0.6.
|
|
53
|
+
VERSION = true ? "0.6.74" : "0.0.0-dev";
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
56
|
|
|
@@ -2978,17 +2978,41 @@ var init_gsapConstants = __esm({
|
|
|
2978
2978
|
"../core/src/parsers/gsapConstants.ts"() {
|
|
2979
2979
|
"use strict";
|
|
2980
2980
|
SUPPORTED_PROPS = [
|
|
2981
|
-
|
|
2982
|
-
"visibility",
|
|
2981
|
+
// 2D Transforms
|
|
2983
2982
|
"x",
|
|
2984
2983
|
"y",
|
|
2985
2984
|
"scale",
|
|
2986
2985
|
"scaleX",
|
|
2987
2986
|
"scaleY",
|
|
2988
2987
|
"rotation",
|
|
2988
|
+
"skewX",
|
|
2989
|
+
"skewY",
|
|
2990
|
+
// 3D Transforms
|
|
2991
|
+
"z",
|
|
2992
|
+
"rotationX",
|
|
2993
|
+
"rotationY",
|
|
2994
|
+
"rotationZ",
|
|
2995
|
+
"perspective",
|
|
2996
|
+
"transformOrigin",
|
|
2997
|
+
// Visibility
|
|
2998
|
+
"opacity",
|
|
2999
|
+
"visibility",
|
|
2989
3000
|
"autoAlpha",
|
|
3001
|
+
// Dimensions
|
|
2990
3002
|
"width",
|
|
2991
|
-
"height"
|
|
3003
|
+
"height",
|
|
3004
|
+
// Colors
|
|
3005
|
+
"color",
|
|
3006
|
+
"backgroundColor",
|
|
3007
|
+
"borderColor",
|
|
3008
|
+
// Box model
|
|
3009
|
+
"borderRadius",
|
|
3010
|
+
// Typography
|
|
3011
|
+
"fontSize",
|
|
3012
|
+
"letterSpacing",
|
|
3013
|
+
// Filter & Clipping
|
|
3014
|
+
"filter",
|
|
3015
|
+
"clipPath"
|
|
2992
3016
|
];
|
|
2993
3017
|
SUPPORTED_EASES = [
|
|
2994
3018
|
"none",
|
|
@@ -3015,7 +3039,12 @@ var init_gsapConstants = __esm({
|
|
|
3015
3039
|
"bounce.inOut",
|
|
3016
3040
|
"expo.in",
|
|
3017
3041
|
"expo.out",
|
|
3018
|
-
"expo.inOut"
|
|
3042
|
+
"expo.inOut",
|
|
3043
|
+
"spring-gentle",
|
|
3044
|
+
"spring-bouncy",
|
|
3045
|
+
"spring-stiff",
|
|
3046
|
+
"spring-wobbly",
|
|
3047
|
+
"spring-heavy"
|
|
3019
3048
|
];
|
|
3020
3049
|
}
|
|
3021
3050
|
});
|
|
@@ -3938,11 +3967,11 @@ function __metadata(metadataKey, metadataValue) {
|
|
|
3938
3967
|
}
|
|
3939
3968
|
function __awaiter(thisArg, _arguments, P2, generator) {
|
|
3940
3969
|
function adopt(value) {
|
|
3941
|
-
return value instanceof P2 ? value : new P2(function(
|
|
3942
|
-
|
|
3970
|
+
return value instanceof P2 ? value : new P2(function(resolve49) {
|
|
3971
|
+
resolve49(value);
|
|
3943
3972
|
});
|
|
3944
3973
|
}
|
|
3945
|
-
return new (P2 || (P2 = Promise))(function(
|
|
3974
|
+
return new (P2 || (P2 = Promise))(function(resolve49, reject) {
|
|
3946
3975
|
function fulfilled(value) {
|
|
3947
3976
|
try {
|
|
3948
3977
|
step(generator.next(value));
|
|
@@ -3958,7 +3987,7 @@ function __awaiter(thisArg, _arguments, P2, generator) {
|
|
|
3958
3987
|
}
|
|
3959
3988
|
}
|
|
3960
3989
|
function step(result) {
|
|
3961
|
-
result.done ?
|
|
3990
|
+
result.done ? resolve49(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
3962
3991
|
}
|
|
3963
3992
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
3964
3993
|
});
|
|
@@ -4149,14 +4178,14 @@ function __asyncValues(o) {
|
|
|
4149
4178
|
}, i2);
|
|
4150
4179
|
function verb(n) {
|
|
4151
4180
|
i2[n] = o[n] && function(v2) {
|
|
4152
|
-
return new Promise(function(
|
|
4153
|
-
v2 = o[n](v2), settle(
|
|
4181
|
+
return new Promise(function(resolve49, reject) {
|
|
4182
|
+
v2 = o[n](v2), settle(resolve49, reject, v2.done, v2.value);
|
|
4154
4183
|
});
|
|
4155
4184
|
};
|
|
4156
4185
|
}
|
|
4157
|
-
function settle(
|
|
4186
|
+
function settle(resolve49, reject, d2, v2) {
|
|
4158
4187
|
Promise.resolve(v2).then(function(v3) {
|
|
4159
|
-
|
|
4188
|
+
resolve49({ value: v3, done: d2 });
|
|
4160
4189
|
}, reject);
|
|
4161
4190
|
}
|
|
4162
4191
|
}
|
|
@@ -18947,9 +18976,9 @@ var require_printer = __commonJS({
|
|
|
18947
18976
|
}
|
|
18948
18977
|
case "ForStatement": {
|
|
18949
18978
|
var init = path2.call(print2, "init");
|
|
18950
|
-
var
|
|
18979
|
+
var sep8 = init.length > 1 ? ";\n" : "; ";
|
|
18951
18980
|
var forParen = "for (";
|
|
18952
|
-
var indented = (0, lines_1.fromString)(
|
|
18981
|
+
var indented = (0, lines_1.fromString)(sep8).join([init, path2.call(print2, "test"), path2.call(print2, "update")]).indentTail(forParen.length);
|
|
18953
18982
|
var head = (0, lines_1.concat)([forParen, indented, ")"]);
|
|
18954
18983
|
var clause = adjustClause(path2.call(print2, "body"), options);
|
|
18955
18984
|
parts.push(head);
|
|
@@ -35076,19 +35105,74 @@ var require_lib = __commonJS({
|
|
|
35076
35105
|
}
|
|
35077
35106
|
});
|
|
35078
35107
|
|
|
35108
|
+
// ../core/src/parsers/springEase.ts
|
|
35109
|
+
function generateSpringEaseData(mass, stiffness, damping, steps = 120) {
|
|
35110
|
+
const w0 = Math.sqrt(stiffness / mass);
|
|
35111
|
+
const zeta = damping / (2 * Math.sqrt(stiffness * mass));
|
|
35112
|
+
let settleDuration;
|
|
35113
|
+
if (zeta < 1) {
|
|
35114
|
+
settleDuration = Math.min(5 / (zeta * w0), 10);
|
|
35115
|
+
} else {
|
|
35116
|
+
const decayRate = zeta * w0 - w0 * Math.sqrt(zeta * zeta - 1);
|
|
35117
|
+
settleDuration = Math.min(4 / Math.max(decayRate, 0.01), 10);
|
|
35118
|
+
}
|
|
35119
|
+
const simDuration = Math.max(settleDuration, 1);
|
|
35120
|
+
const segments = ["M0,0"];
|
|
35121
|
+
for (let i2 = 1; i2 <= steps; i2++) {
|
|
35122
|
+
const t2 = i2 / steps;
|
|
35123
|
+
const simT = t2 * simDuration;
|
|
35124
|
+
let value;
|
|
35125
|
+
if (zeta < 1) {
|
|
35126
|
+
const wd = w0 * Math.sqrt(1 - zeta * zeta);
|
|
35127
|
+
value = 1 - Math.exp(-zeta * w0 * simT) * (Math.cos(wd * simT) + zeta * w0 / wd * Math.sin(wd * simT));
|
|
35128
|
+
} else if (zeta === 1) {
|
|
35129
|
+
value = 1 - (1 + w0 * simT) * Math.exp(-w0 * simT);
|
|
35130
|
+
} else {
|
|
35131
|
+
const s1 = -w0 * (zeta - Math.sqrt(zeta * zeta - 1));
|
|
35132
|
+
const s2 = -w0 * (zeta + Math.sqrt(zeta * zeta - 1));
|
|
35133
|
+
value = 1 + (s1 * Math.exp(s2 * simT) - s2 * Math.exp(s1 * simT)) / (s2 - s1);
|
|
35134
|
+
}
|
|
35135
|
+
segments.push(`${t2.toFixed(4)},${value.toFixed(4)}`);
|
|
35136
|
+
}
|
|
35137
|
+
segments[segments.length - 1] = "1,1";
|
|
35138
|
+
return `${segments[0]} L${segments.slice(1).join(" ")}`;
|
|
35139
|
+
}
|
|
35140
|
+
var SPRING_PRESETS;
|
|
35141
|
+
var init_springEase = __esm({
|
|
35142
|
+
"../core/src/parsers/springEase.ts"() {
|
|
35143
|
+
"use strict";
|
|
35144
|
+
SPRING_PRESETS = [
|
|
35145
|
+
{ name: "spring-gentle", label: "Gentle", mass: 1, stiffness: 100, damping: 15 },
|
|
35146
|
+
{ name: "spring-bouncy", label: "Bouncy", mass: 1, stiffness: 180, damping: 12 },
|
|
35147
|
+
{ name: "spring-stiff", label: "Stiff", mass: 1, stiffness: 300, damping: 20 },
|
|
35148
|
+
{ name: "spring-wobbly", label: "Wobbly", mass: 1, stiffness: 120, damping: 8 },
|
|
35149
|
+
{ name: "spring-heavy", label: "Heavy", mass: 3, stiffness: 200, damping: 20 }
|
|
35150
|
+
];
|
|
35151
|
+
}
|
|
35152
|
+
});
|
|
35153
|
+
|
|
35079
35154
|
// ../core/src/parsers/gsapParser.ts
|
|
35080
35155
|
var gsapParser_exports = {};
|
|
35081
35156
|
__export(gsapParser_exports, {
|
|
35157
|
+
SPRING_PRESETS: () => SPRING_PRESETS,
|
|
35082
35158
|
SUPPORTED_EASES: () => SUPPORTED_EASES,
|
|
35083
35159
|
SUPPORTED_PROPS: () => SUPPORTED_PROPS,
|
|
35084
35160
|
addAnimationToScript: () => addAnimationToScript,
|
|
35161
|
+
addKeyframeToScript: () => addKeyframeToScript,
|
|
35162
|
+
convertToKeyframesInScript: () => convertToKeyframesInScript,
|
|
35163
|
+
generateSpringEaseData: () => generateSpringEaseData,
|
|
35085
35164
|
getAnimationsForElementId: () => getAnimationsForElementId,
|
|
35086
35165
|
gsapAnimationsToKeyframes: () => gsapAnimationsToKeyframes,
|
|
35087
35166
|
keyframesToGsapAnimations: () => keyframesToGsapAnimations,
|
|
35167
|
+
materializeKeyframesInScript: () => materializeKeyframesInScript,
|
|
35088
35168
|
parseGsapScript: () => parseGsapScript,
|
|
35169
|
+
removeAllKeyframesFromScript: () => removeAllKeyframesFromScript,
|
|
35089
35170
|
removeAnimationFromScript: () => removeAnimationFromScript,
|
|
35171
|
+
removeKeyframeFromScript: () => removeKeyframeFromScript,
|
|
35090
35172
|
serializeGsapAnimations: () => serializeGsapAnimations,
|
|
35173
|
+
unrollDynamicAnimations: () => unrollDynamicAnimations,
|
|
35091
35174
|
updateAnimationInScript: () => updateAnimationInScript,
|
|
35175
|
+
updateKeyframeInScript: () => updateKeyframeInScript,
|
|
35092
35176
|
validateCompositionGsap: () => validateCompositionGsap
|
|
35093
35177
|
});
|
|
35094
35178
|
function parseScript(script) {
|
|
@@ -35329,11 +35413,7 @@ function findAllTweenCalls(ast, timelineVar, scope, targetBindings) {
|
|
|
35329
35413
|
this.traverse(path2);
|
|
35330
35414
|
return;
|
|
35331
35415
|
}
|
|
35332
|
-
const selectorValue = resolveTargetSelector(args[0], path2, scope, targetBindings);
|
|
35333
|
-
if (!selectorValue) {
|
|
35334
|
-
this.traverse(path2);
|
|
35335
|
-
return;
|
|
35336
|
-
}
|
|
35416
|
+
const selectorValue = resolveTargetSelector(args[0], path2, scope, targetBindings) ?? "__unresolved__";
|
|
35337
35417
|
if (method === "fromTo") {
|
|
35338
35418
|
results.push({
|
|
35339
35419
|
path: path2,
|
|
@@ -35361,23 +35441,187 @@ function findAllTweenCalls(ast, timelineVar, scope, targetBindings) {
|
|
|
35361
35441
|
return results;
|
|
35362
35442
|
}
|
|
35363
35443
|
function extractRawPropertySource(varsArgNode, key2) {
|
|
35444
|
+
const node = findPropertyNode(varsArgNode, key2);
|
|
35445
|
+
return node ? recast.print(node).code : void 0;
|
|
35446
|
+
}
|
|
35447
|
+
function findPropertyNode(varsArgNode, key2) {
|
|
35364
35448
|
if (varsArgNode?.type !== "ObjectExpression") return void 0;
|
|
35365
35449
|
for (const prop2 of varsArgNode.properties ?? []) {
|
|
35450
|
+
if (!isObjectProperty(prop2)) continue;
|
|
35451
|
+
if (propKeyName(prop2) === key2) return prop2.value;
|
|
35452
|
+
}
|
|
35453
|
+
return void 0;
|
|
35454
|
+
}
|
|
35455
|
+
function tryResolveStringProp(propValue, scope) {
|
|
35456
|
+
const val = resolveNode(propValue, scope);
|
|
35457
|
+
return typeof val === "string" ? val : void 0;
|
|
35458
|
+
}
|
|
35459
|
+
function parseKeyframesNode(node, scope) {
|
|
35460
|
+
if (!node) return void 0;
|
|
35461
|
+
if (node.type === "ArrayExpression") {
|
|
35462
|
+
return parseObjectArrayKeyframes(node, scope);
|
|
35463
|
+
}
|
|
35464
|
+
if (node.type !== "ObjectExpression") return void 0;
|
|
35465
|
+
const props = node.properties ?? [];
|
|
35466
|
+
let hasPercentageKey = false;
|
|
35467
|
+
let hasArrayValue = false;
|
|
35468
|
+
for (const prop2 of props) {
|
|
35366
35469
|
if (prop2.type !== "ObjectProperty" && prop2.type !== "Property") continue;
|
|
35367
|
-
const
|
|
35368
|
-
if (
|
|
35369
|
-
|
|
35470
|
+
const key2 = prop2.key?.value ?? prop2.key?.name;
|
|
35471
|
+
if (typeof key2 === "string" && PERCENTAGE_KEY_RE.test(key2)) {
|
|
35472
|
+
hasPercentageKey = true;
|
|
35473
|
+
break;
|
|
35474
|
+
}
|
|
35475
|
+
if (prop2.value?.type === "ArrayExpression") {
|
|
35476
|
+
hasArrayValue = true;
|
|
35370
35477
|
}
|
|
35371
35478
|
}
|
|
35479
|
+
if (hasPercentageKey) return parsePercentageKeyframes(node, scope);
|
|
35480
|
+
if (hasArrayValue) return parseSimpleArrayKeyframes(node, scope);
|
|
35372
35481
|
return void 0;
|
|
35373
35482
|
}
|
|
35483
|
+
function parsePercentageKeyframes(node, scope) {
|
|
35484
|
+
const keyframes = [];
|
|
35485
|
+
let ease;
|
|
35486
|
+
let easeEach;
|
|
35487
|
+
for (const prop2 of node.properties ?? []) {
|
|
35488
|
+
if (prop2.type !== "ObjectProperty" && prop2.type !== "Property") continue;
|
|
35489
|
+
const key2 = prop2.key?.value ?? prop2.key?.name;
|
|
35490
|
+
if (typeof key2 !== "string") continue;
|
|
35491
|
+
const pctMatch = PERCENTAGE_KEY_RE.exec(key2);
|
|
35492
|
+
if (pctMatch) {
|
|
35493
|
+
const percentage = Number.parseFloat(pctMatch[1]);
|
|
35494
|
+
const record = objectExpressionToRecord(prop2.value, scope);
|
|
35495
|
+
const properties = {};
|
|
35496
|
+
let kfEase;
|
|
35497
|
+
for (const [k2, v2] of Object.entries(record)) {
|
|
35498
|
+
if (k2 === "ease" && typeof v2 === "string") {
|
|
35499
|
+
kfEase = v2;
|
|
35500
|
+
} else if (typeof v2 === "number" || typeof v2 === "string") {
|
|
35501
|
+
properties[k2] = v2;
|
|
35502
|
+
}
|
|
35503
|
+
}
|
|
35504
|
+
keyframes.push({ percentage, properties, ...kfEase ? { ease: kfEase } : {} });
|
|
35505
|
+
} else if (key2 === "ease") {
|
|
35506
|
+
ease = tryResolveStringProp(prop2.value, scope) ?? ease;
|
|
35507
|
+
} else if (key2 === "easeEach") {
|
|
35508
|
+
easeEach = tryResolveStringProp(prop2.value, scope) ?? easeEach;
|
|
35509
|
+
}
|
|
35510
|
+
}
|
|
35511
|
+
keyframes.sort((a, b2) => a.percentage - b2.percentage);
|
|
35512
|
+
return {
|
|
35513
|
+
format: "percentage",
|
|
35514
|
+
keyframes,
|
|
35515
|
+
...ease ? { ease } : {},
|
|
35516
|
+
...easeEach ? { easeEach } : {}
|
|
35517
|
+
};
|
|
35518
|
+
}
|
|
35519
|
+
function parseObjectArrayKeyframes(node, scope) {
|
|
35520
|
+
const elements = node.elements ?? [];
|
|
35521
|
+
const raw = [];
|
|
35522
|
+
for (const el of elements) {
|
|
35523
|
+
if (!el || el.type !== "ObjectExpression" && el.type !== "ObjectProperty") {
|
|
35524
|
+
if (el?.type !== "ObjectExpression") continue;
|
|
35525
|
+
}
|
|
35526
|
+
const record = objectExpressionToRecord(el, scope);
|
|
35527
|
+
const properties = {};
|
|
35528
|
+
let duration;
|
|
35529
|
+
let ease;
|
|
35530
|
+
for (const [k2, v2] of Object.entries(record)) {
|
|
35531
|
+
if (k2 === "duration" && typeof v2 === "number") {
|
|
35532
|
+
duration = v2;
|
|
35533
|
+
} else if (k2 === "ease" && typeof v2 === "string") {
|
|
35534
|
+
ease = v2;
|
|
35535
|
+
} else if (typeof v2 === "number" || typeof v2 === "string") {
|
|
35536
|
+
properties[k2] = v2;
|
|
35537
|
+
}
|
|
35538
|
+
}
|
|
35539
|
+
raw.push({ properties, duration, ease });
|
|
35540
|
+
}
|
|
35541
|
+
const totalDuration = raw.reduce((sum, r2) => sum + (r2.duration ?? 0), 0);
|
|
35542
|
+
const keyframes = [];
|
|
35543
|
+
if (totalDuration > 0) {
|
|
35544
|
+
let cumulative = 0;
|
|
35545
|
+
for (const entry of raw) {
|
|
35546
|
+
const percentage = Math.round(cumulative / totalDuration * 100);
|
|
35547
|
+
keyframes.push({
|
|
35548
|
+
percentage,
|
|
35549
|
+
properties: entry.properties,
|
|
35550
|
+
...entry.ease ? { ease: entry.ease } : {}
|
|
35551
|
+
});
|
|
35552
|
+
cumulative += entry.duration ?? 0;
|
|
35553
|
+
}
|
|
35554
|
+
} else {
|
|
35555
|
+
for (let i2 = 0; i2 < raw.length; i2++) {
|
|
35556
|
+
const entry = raw[i2];
|
|
35557
|
+
const percentage = raw.length > 1 ? Math.round(i2 / (raw.length - 1) * 100) : 0;
|
|
35558
|
+
keyframes.push({
|
|
35559
|
+
percentage,
|
|
35560
|
+
properties: entry.properties,
|
|
35561
|
+
...entry.ease ? { ease: entry.ease } : {}
|
|
35562
|
+
});
|
|
35563
|
+
}
|
|
35564
|
+
}
|
|
35565
|
+
return { format: "object-array", keyframes };
|
|
35566
|
+
}
|
|
35567
|
+
function parseSimpleArrayKeyframes(node, scope) {
|
|
35568
|
+
const arrayProps = /* @__PURE__ */ new Map();
|
|
35569
|
+
let ease;
|
|
35570
|
+
let easeEach;
|
|
35571
|
+
for (const prop2 of node.properties ?? []) {
|
|
35572
|
+
if (prop2.type !== "ObjectProperty" && prop2.type !== "Property") continue;
|
|
35573
|
+
const key2 = prop2.key?.name ?? prop2.key?.value;
|
|
35574
|
+
if (typeof key2 !== "string") continue;
|
|
35575
|
+
if (prop2.value?.type === "ArrayExpression") {
|
|
35576
|
+
const values = [];
|
|
35577
|
+
for (const el of prop2.value.elements ?? []) {
|
|
35578
|
+
const val = resolveNode(el, scope);
|
|
35579
|
+
if (typeof val === "number" || typeof val === "string") {
|
|
35580
|
+
values.push(val);
|
|
35581
|
+
}
|
|
35582
|
+
}
|
|
35583
|
+
if (values.length > 0) arrayProps.set(key2, values);
|
|
35584
|
+
} else if (key2 === "ease") {
|
|
35585
|
+
ease = tryResolveStringProp(prop2.value, scope) ?? ease;
|
|
35586
|
+
} else if (key2 === "easeEach") {
|
|
35587
|
+
easeEach = tryResolveStringProp(prop2.value, scope) ?? easeEach;
|
|
35588
|
+
}
|
|
35589
|
+
}
|
|
35590
|
+
const maxLen = Math.max(...[...arrayProps.values()].map((a) => a.length), 0);
|
|
35591
|
+
const keyframes = [];
|
|
35592
|
+
for (let i2 = 0; i2 < maxLen; i2++) {
|
|
35593
|
+
const percentage = maxLen > 1 ? Math.round(i2 / (maxLen - 1) * 100) : 0;
|
|
35594
|
+
const properties = {};
|
|
35595
|
+
for (const [key2, values] of arrayProps) {
|
|
35596
|
+
if (i2 < values.length) properties[key2] = values[i2];
|
|
35597
|
+
}
|
|
35598
|
+
keyframes.push({ percentage, properties });
|
|
35599
|
+
}
|
|
35600
|
+
return {
|
|
35601
|
+
format: "simple-array",
|
|
35602
|
+
keyframes,
|
|
35603
|
+
...ease ? { ease } : {},
|
|
35604
|
+
...easeEach ? { easeEach } : {}
|
|
35605
|
+
};
|
|
35606
|
+
}
|
|
35374
35607
|
function tweenCallToAnimation(call, scope) {
|
|
35375
35608
|
const vars = objectExpressionToRecord(call.varsArg, scope);
|
|
35376
35609
|
const properties = {};
|
|
35377
35610
|
const extras = {};
|
|
35611
|
+
let keyframesData;
|
|
35612
|
+
let hasUnresolvedKeyframes = false;
|
|
35378
35613
|
for (const [key2, val] of Object.entries(vars)) {
|
|
35379
35614
|
if (BUILTIN_VAR_KEYS.has(key2)) continue;
|
|
35380
35615
|
if (DROPPED_VAR_KEYS.has(key2)) continue;
|
|
35616
|
+
if (key2 === "keyframes") {
|
|
35617
|
+
const kfNode = findPropertyNode(call.varsArg, "keyframes");
|
|
35618
|
+
keyframesData = parseKeyframesNode(kfNode, scope);
|
|
35619
|
+
if (!keyframesData && kfNode) hasUnresolvedKeyframes = true;
|
|
35620
|
+
continue;
|
|
35621
|
+
}
|
|
35622
|
+
if (key2 === "easeEach") {
|
|
35623
|
+
continue;
|
|
35624
|
+
}
|
|
35381
35625
|
if (EXTRAS_KEYS.has(key2)) {
|
|
35382
35626
|
const rawSource = extractRawPropertySource(call.varsArg, key2);
|
|
35383
35627
|
if (rawSource !== void 0) {
|
|
@@ -35391,6 +35635,9 @@ function tweenCallToAnimation(call, scope) {
|
|
|
35391
35635
|
properties[key2] = val;
|
|
35392
35636
|
}
|
|
35393
35637
|
}
|
|
35638
|
+
if (keyframesData && typeof vars.easeEach === "string") {
|
|
35639
|
+
keyframesData.easeEach = vars.easeEach;
|
|
35640
|
+
}
|
|
35394
35641
|
let fromProperties;
|
|
35395
35642
|
if (call.method === "fromTo" && call.fromArg) {
|
|
35396
35643
|
fromProperties = {};
|
|
@@ -35415,6 +35662,9 @@ function tweenCallToAnimation(call, scope) {
|
|
|
35415
35662
|
ease
|
|
35416
35663
|
};
|
|
35417
35664
|
if (Object.keys(extras).length > 0) anim.extras = extras;
|
|
35665
|
+
if (keyframesData) anim.keyframes = keyframesData;
|
|
35666
|
+
if (hasUnresolvedKeyframes) anim.hasUnresolvedKeyframes = true;
|
|
35667
|
+
if (call.selector === "__unresolved__") anim.hasUnresolvedSelector = true;
|
|
35418
35668
|
return anim;
|
|
35419
35669
|
}
|
|
35420
35670
|
function assignStableIds(anims) {
|
|
@@ -35652,13 +35902,306 @@ function removeAnimationFromScript(script, animationId) {
|
|
|
35652
35902
|
}
|
|
35653
35903
|
return recast.print(parsed.ast).code;
|
|
35654
35904
|
}
|
|
35655
|
-
|
|
35905
|
+
function removeVarsKey(varsArg, key2) {
|
|
35906
|
+
if (varsArg?.type !== "ObjectExpression") return;
|
|
35907
|
+
varsArg.properties = varsArg.properties.filter(
|
|
35908
|
+
(p2) => !(isObjectProperty(p2) && propKeyName(p2) === key2)
|
|
35909
|
+
);
|
|
35910
|
+
}
|
|
35911
|
+
function percentageFromKey(key2) {
|
|
35912
|
+
const m2 = PERCENTAGE_KEY_RE.exec(key2);
|
|
35913
|
+
return m2 ? Number.parseFloat(m2[1]) : Number.NaN;
|
|
35914
|
+
}
|
|
35915
|
+
function buildKeyframeValueNode(properties, ease) {
|
|
35916
|
+
const entries2 = Object.entries(properties).map(([k2, v2]) => `${safeKey(k2)}: ${valueToCode(v2)}`);
|
|
35917
|
+
if (ease) entries2.push(`ease: ${JSON.stringify(ease)}`);
|
|
35918
|
+
return parseExpr(`{ ${entries2.join(", ")} }`);
|
|
35919
|
+
}
|
|
35920
|
+
function locateAnimation(script, animationId) {
|
|
35921
|
+
let parsed;
|
|
35922
|
+
try {
|
|
35923
|
+
parsed = parseGsapAst(script);
|
|
35924
|
+
} catch {
|
|
35925
|
+
return null;
|
|
35926
|
+
}
|
|
35927
|
+
const target = parsed.located.find((l) => l.id === animationId);
|
|
35928
|
+
return target ? { parsed, target } : null;
|
|
35929
|
+
}
|
|
35930
|
+
function findKeyframesObjectNode(varsArg) {
|
|
35931
|
+
const node = findPropertyNode(varsArg, "keyframes");
|
|
35932
|
+
return node?.type === "ObjectExpression" ? node : null;
|
|
35933
|
+
}
|
|
35934
|
+
function filterPercentageProps(kfNode) {
|
|
35935
|
+
return kfNode.properties.filter((p2) => {
|
|
35936
|
+
if (!isObjectProperty(p2)) return false;
|
|
35937
|
+
const key2 = propKeyName(p2);
|
|
35938
|
+
return typeof key2 === "string" && PERCENTAGE_KEY_RE.test(key2);
|
|
35939
|
+
});
|
|
35940
|
+
}
|
|
35941
|
+
function collapseKeyframesToFlat(varsArg, record) {
|
|
35942
|
+
for (const [k2, v2] of Object.entries(record)) {
|
|
35943
|
+
if (k2 === "ease") continue;
|
|
35944
|
+
if (typeof v2 === "number" || typeof v2 === "string") setVarsKey(varsArg, k2, v2);
|
|
35945
|
+
}
|
|
35946
|
+
removeVarsKey(varsArg, "keyframes");
|
|
35947
|
+
removeVarsKey(varsArg, "easeEach");
|
|
35948
|
+
}
|
|
35949
|
+
function addKeyframeToScript(script, animationId, percentage, properties, ease, backfillDefaults) {
|
|
35950
|
+
const loc = locateAnimation(script, animationId);
|
|
35951
|
+
if (!loc) return script;
|
|
35952
|
+
const kfNode = findKeyframesObjectNode(loc.target.call.varsArg);
|
|
35953
|
+
if (!kfNode) return script;
|
|
35954
|
+
const pctKey = `${percentage}%`;
|
|
35955
|
+
const newValueNode = buildKeyframeValueNode(properties, ease);
|
|
35956
|
+
const existingIdx = kfNode.properties.findIndex(
|
|
35957
|
+
(p2) => isObjectProperty(p2) && propKeyName(p2) === pctKey
|
|
35958
|
+
);
|
|
35959
|
+
if (existingIdx !== -1) {
|
|
35960
|
+
kfNode.properties[existingIdx].value = newValueNode;
|
|
35961
|
+
} else {
|
|
35962
|
+
const newProp = parseExpr(`{ ${JSON.stringify(pctKey)}: {} }`).properties[0];
|
|
35963
|
+
newProp.value = newValueNode;
|
|
35964
|
+
let insertIdx = kfNode.properties.length;
|
|
35965
|
+
for (let i2 = 0; i2 < kfNode.properties.length; i2++) {
|
|
35966
|
+
const key2 = isObjectProperty(kfNode.properties[i2]) ? propKeyName(kfNode.properties[i2]) : void 0;
|
|
35967
|
+
if (typeof key2 === "string" && percentageFromKey(key2) > percentage) {
|
|
35968
|
+
insertIdx = i2;
|
|
35969
|
+
break;
|
|
35970
|
+
}
|
|
35971
|
+
}
|
|
35972
|
+
kfNode.properties.splice(insertIdx, 0, newProp);
|
|
35973
|
+
}
|
|
35974
|
+
if (backfillDefaults) {
|
|
35975
|
+
const newPropKeys = Object.keys(properties);
|
|
35976
|
+
const pctProps = filterPercentageProps(kfNode);
|
|
35977
|
+
for (const prop2 of pctProps) {
|
|
35978
|
+
const key2 = propKeyName(prop2);
|
|
35979
|
+
if (key2 === pctKey) continue;
|
|
35980
|
+
const valObj = prop2.value;
|
|
35981
|
+
if (!valObj || valObj.type !== "ObjectExpression") continue;
|
|
35982
|
+
const existingKeys = new Set(
|
|
35983
|
+
valObj.properties.filter((p2) => isObjectProperty(p2)).map((p2) => propKeyName(p2))
|
|
35984
|
+
);
|
|
35985
|
+
for (const pk of newPropKeys) {
|
|
35986
|
+
if (existingKeys.has(pk)) continue;
|
|
35987
|
+
const defaultVal = backfillDefaults[pk];
|
|
35988
|
+
if (defaultVal == null) continue;
|
|
35989
|
+
const fillProp = parseExpr(`{ ${safeKey(pk)}: ${valueToCode(defaultVal)} }`).properties[0];
|
|
35990
|
+
valObj.properties.push(fillProp);
|
|
35991
|
+
}
|
|
35992
|
+
}
|
|
35993
|
+
}
|
|
35994
|
+
return recast.print(loc.parsed.ast).code;
|
|
35995
|
+
}
|
|
35996
|
+
function removeKeyframeFromScript(script, animationId, percentage) {
|
|
35997
|
+
const loc = locateAnimation(script, animationId);
|
|
35998
|
+
if (!loc) return script;
|
|
35999
|
+
const kfNode = findKeyframesObjectNode(loc.target.call.varsArg);
|
|
36000
|
+
if (!kfNode) return script;
|
|
36001
|
+
const pctKey = `${percentage}%`;
|
|
36002
|
+
const removeIdx = kfNode.properties.findIndex(
|
|
36003
|
+
(p2) => isObjectProperty(p2) && propKeyName(p2) === pctKey
|
|
36004
|
+
);
|
|
36005
|
+
if (removeIdx === -1) return script;
|
|
36006
|
+
kfNode.properties.splice(removeIdx, 1);
|
|
36007
|
+
const remainingKfs = filterPercentageProps(kfNode);
|
|
36008
|
+
if (remainingKfs.length < 2) {
|
|
36009
|
+
const record = remainingKfs.length === 1 ? objectExpressionToRecord(remainingKfs[0].value, loc.parsed.scope) : {};
|
|
36010
|
+
collapseKeyframesToFlat(loc.target.call.varsArg, record);
|
|
36011
|
+
}
|
|
36012
|
+
return recast.print(loc.parsed.ast).code;
|
|
36013
|
+
}
|
|
36014
|
+
function updateKeyframeInScript(script, animationId, percentage, properties, ease) {
|
|
36015
|
+
const loc = locateAnimation(script, animationId);
|
|
36016
|
+
if (!loc) return script;
|
|
36017
|
+
const kfNode = findKeyframesObjectNode(loc.target.call.varsArg);
|
|
36018
|
+
if (!kfNode) return script;
|
|
36019
|
+
const pctKey = `${percentage}%`;
|
|
36020
|
+
const existing = kfNode.properties.find(
|
|
36021
|
+
(p2) => isObjectProperty(p2) && propKeyName(p2) === pctKey
|
|
36022
|
+
);
|
|
36023
|
+
if (!existing) return script;
|
|
36024
|
+
existing.value = buildKeyframeValueNode(properties, ease);
|
|
36025
|
+
return recast.print(loc.parsed.ast).code;
|
|
36026
|
+
}
|
|
36027
|
+
function cssIdentityValue(prop2) {
|
|
36028
|
+
return CSS_IDENTITY[prop2] ?? 0;
|
|
36029
|
+
}
|
|
36030
|
+
function resolveConversionProps(anim, resolvedFromValues) {
|
|
36031
|
+
if (anim.method === "to") {
|
|
36032
|
+
if (resolvedFromValues) {
|
|
36033
|
+
return { fromProps: resolvedFromValues, toProps: { ...anim.properties } };
|
|
36034
|
+
}
|
|
36035
|
+
const identityFrom = {};
|
|
36036
|
+
for (const [key2, val] of Object.entries(anim.properties)) {
|
|
36037
|
+
if (val != null) identityFrom[key2] = typeof val === "number" ? cssIdentityValue(key2) : val;
|
|
36038
|
+
}
|
|
36039
|
+
return { fromProps: identityFrom, toProps: { ...anim.properties } };
|
|
36040
|
+
}
|
|
36041
|
+
if (anim.method === "from") {
|
|
36042
|
+
if (resolvedFromValues) {
|
|
36043
|
+
return { fromProps: { ...anim.properties }, toProps: resolvedFromValues };
|
|
36044
|
+
}
|
|
36045
|
+
const identityTo = {};
|
|
36046
|
+
for (const [key2, val] of Object.entries(anim.properties)) {
|
|
36047
|
+
if (val != null) identityTo[key2] = typeof val === "number" ? cssIdentityValue(key2) : val;
|
|
36048
|
+
}
|
|
36049
|
+
return { fromProps: { ...anim.properties }, toProps: identityTo };
|
|
36050
|
+
}
|
|
36051
|
+
return { fromProps: { ...anim.fromProperties ?? {} }, toProps: { ...anim.properties } };
|
|
36052
|
+
}
|
|
36053
|
+
function stripEditableAndEase(varsArg) {
|
|
36054
|
+
if (varsArg?.type !== "ObjectExpression") return;
|
|
36055
|
+
varsArg.properties = varsArg.properties.filter((p2) => {
|
|
36056
|
+
if (!isObjectProperty(p2)) return true;
|
|
36057
|
+
const key2 = propKeyName(p2);
|
|
36058
|
+
if (typeof key2 !== "string") return true;
|
|
36059
|
+
if (key2 === "ease" || key2 === "keyframes") return false;
|
|
36060
|
+
return !isEditablePropertyKey(key2);
|
|
36061
|
+
});
|
|
36062
|
+
}
|
|
36063
|
+
function insertKeyframesProp(varsArg, fromProps, toProps, easeEach) {
|
|
36064
|
+
const fromEntries = Object.entries(fromProps).map(([k2, v2]) => `${safeKey(k2)}: ${valueToCode(v2)}`);
|
|
36065
|
+
const toEntries = Object.entries(toProps).map(([k2, v2]) => `${safeKey(k2)}: ${valueToCode(v2)}`);
|
|
36066
|
+
const easeEntry = easeEach ? `, easeEach: ${JSON.stringify(easeEach)}` : "";
|
|
36067
|
+
const kfCode = `{ "0%": { ${fromEntries.join(", ")} }, "100%": { ${toEntries.join(", ")} }${easeEntry} }`;
|
|
36068
|
+
const kfProp = parseExpr(`{ keyframes: {} }`).properties[0];
|
|
36069
|
+
kfProp.value = parseExpr(kfCode);
|
|
36070
|
+
if (varsArg?.type === "ObjectExpression") varsArg.properties.unshift(kfProp);
|
|
36071
|
+
}
|
|
36072
|
+
function convertToKeyframesInScript(script, animationId, resolvedFromValues) {
|
|
36073
|
+
const loc = locateAnimation(script, animationId);
|
|
36074
|
+
if (!loc) return script;
|
|
36075
|
+
const anim = loc.target.animation;
|
|
36076
|
+
if (anim.keyframes || anim.method === "set") return script;
|
|
36077
|
+
const { fromProps, toProps } = resolveConversionProps(anim, resolvedFromValues);
|
|
36078
|
+
const varsArg = loc.target.call.varsArg;
|
|
36079
|
+
const originalEase = anim.ease;
|
|
36080
|
+
stripEditableAndEase(varsArg);
|
|
36081
|
+
insertKeyframesProp(varsArg, fromProps, toProps, originalEase || void 0);
|
|
36082
|
+
if (originalEase) {
|
|
36083
|
+
setVarsKey(varsArg, "ease", "none");
|
|
36084
|
+
}
|
|
36085
|
+
if (anim.method === "from" || anim.method === "fromTo") {
|
|
36086
|
+
loc.target.call.node.callee.property.name = "to";
|
|
36087
|
+
if (anim.method === "fromTo") loc.target.call.node.arguments.splice(1, 1);
|
|
36088
|
+
}
|
|
36089
|
+
return recast.print(loc.parsed.ast).code;
|
|
36090
|
+
}
|
|
36091
|
+
function removeAllKeyframesFromScript(script, animationId) {
|
|
36092
|
+
const loc = locateAnimation(script, animationId);
|
|
36093
|
+
if (!loc) return script;
|
|
36094
|
+
const kfNode = findKeyframesObjectNode(loc.target.call.varsArg);
|
|
36095
|
+
if (!kfNode) return script;
|
|
36096
|
+
const kfEntries = filterPercentageProps(kfNode).map((p2) => ({ pct: percentageFromKey(propKeyName(p2)), prop: p2 })).filter((e3) => !Number.isNaN(e3.pct)).sort((a, b2) => a.pct - b2.pct);
|
|
36097
|
+
if (kfEntries.length === 0) return script;
|
|
36098
|
+
const lastRecord = objectExpressionToRecord(
|
|
36099
|
+
kfEntries[kfEntries.length - 1].prop.value,
|
|
36100
|
+
loc.parsed.scope
|
|
36101
|
+
);
|
|
36102
|
+
collapseKeyframesToFlat(loc.target.call.varsArg, lastRecord);
|
|
36103
|
+
return recast.print(loc.parsed.ast).code;
|
|
36104
|
+
}
|
|
36105
|
+
function materializeKeyframesInScript(script, animationId, keyframes, easeEach, resolvedSelector) {
|
|
36106
|
+
const loc = locateAnimation(script, animationId);
|
|
36107
|
+
if (!loc) return script;
|
|
36108
|
+
const varsArg = loc.target.call.varsArg;
|
|
36109
|
+
if (resolvedSelector && loc.target.call.node.arguments[0]) {
|
|
36110
|
+
loc.target.call.node.arguments[0] = parseExpr(JSON.stringify(resolvedSelector));
|
|
36111
|
+
}
|
|
36112
|
+
const entries2 = [];
|
|
36113
|
+
const sorted = keyframes.slice().sort((a, b2) => a.percentage - b2.percentage);
|
|
36114
|
+
for (const kf of sorted) {
|
|
36115
|
+
const propEntries = Object.entries(kf.properties).map(
|
|
36116
|
+
([k2, v2]) => `${safeKey(k2)}: ${valueToCode(v2)}`
|
|
36117
|
+
);
|
|
36118
|
+
if (kf.ease) propEntries.push(`ease: ${JSON.stringify(kf.ease)}`);
|
|
36119
|
+
entries2.push(`${JSON.stringify(kf.percentage + "%")}: { ${propEntries.join(", ")} }`);
|
|
36120
|
+
}
|
|
36121
|
+
if (easeEach) {
|
|
36122
|
+
entries2.push(`easeEach: ${JSON.stringify(easeEach)}`);
|
|
36123
|
+
}
|
|
36124
|
+
const kfObjCode = `{ ${entries2.join(", ")} }`;
|
|
36125
|
+
const kfParent = varsArg.properties.find(
|
|
36126
|
+
(p2) => isObjectProperty(p2) && propKeyName(p2) === "keyframes"
|
|
36127
|
+
);
|
|
36128
|
+
if (kfParent) {
|
|
36129
|
+
kfParent.value = parseExpr(kfObjCode);
|
|
36130
|
+
} else {
|
|
36131
|
+
const kfProp = parseExpr(`{ keyframes: ${kfObjCode} }`).properties[0];
|
|
36132
|
+
varsArg.properties.unshift(kfProp);
|
|
36133
|
+
}
|
|
36134
|
+
removeVarsKey(varsArg, "easeEach");
|
|
36135
|
+
return recast.print(loc.parsed.ast).code;
|
|
36136
|
+
}
|
|
36137
|
+
function unrollDynamicAnimations(script, animationId, elements) {
|
|
36138
|
+
const loc = locateAnimation(script, animationId);
|
|
36139
|
+
if (!loc) return script;
|
|
36140
|
+
const varsArg = loc.target.call.varsArg;
|
|
36141
|
+
const durationVal = extractLiteralValue(findPropertyNode(varsArg, "duration"), loc.parsed.scope);
|
|
36142
|
+
const easeVal = extractLiteralValue(findPropertyNode(varsArg, "ease"), loc.parsed.scope);
|
|
36143
|
+
const duration = typeof durationVal === "number" ? durationVal : 8;
|
|
36144
|
+
const ease = typeof easeVal === "string" ? easeVal : "none";
|
|
36145
|
+
const posArg = loc.target.call.positionArg;
|
|
36146
|
+
const position = posArg ? extractLiteralValue(posArg, loc.parsed.scope) : 0;
|
|
36147
|
+
const posCode = typeof position === "number" ? String(position) : typeof position === "string" ? JSON.stringify(position) : "0";
|
|
36148
|
+
let loopNode = null;
|
|
36149
|
+
let current = loc.target.call.path;
|
|
36150
|
+
while (current) {
|
|
36151
|
+
const node = current.node ?? current.value;
|
|
36152
|
+
if (node?.type === "ForStatement" || node?.type === "ForInStatement" || node?.type === "ForOfStatement" || node?.type === "WhileStatement") {
|
|
36153
|
+
loopNode = node;
|
|
36154
|
+
break;
|
|
36155
|
+
}
|
|
36156
|
+
if (node?.type === "ExpressionStatement" && node.expression?.type === "CallExpression" && node.expression.callee?.property?.name === "forEach") {
|
|
36157
|
+
loopNode = node;
|
|
36158
|
+
break;
|
|
36159
|
+
}
|
|
36160
|
+
current = current.parent ?? current.parentPath;
|
|
36161
|
+
}
|
|
36162
|
+
const calls = [];
|
|
36163
|
+
for (const el of elements) {
|
|
36164
|
+
const kfEntries = [];
|
|
36165
|
+
const sorted = el.keyframes.slice().sort((a, b2) => a.percentage - b2.percentage);
|
|
36166
|
+
for (const kf of sorted) {
|
|
36167
|
+
const propEntries = Object.entries(kf.properties).map(
|
|
36168
|
+
([k2, v2]) => `${safeKey(k2)}: ${valueToCode(v2)}`
|
|
36169
|
+
);
|
|
36170
|
+
kfEntries.push(`${JSON.stringify(kf.percentage + "%")}: { ${propEntries.join(", ")} }`);
|
|
36171
|
+
}
|
|
36172
|
+
if (el.easeEach) {
|
|
36173
|
+
kfEntries.push(`easeEach: ${JSON.stringify(el.easeEach)}`);
|
|
36174
|
+
}
|
|
36175
|
+
calls.push(
|
|
36176
|
+
`tl.to(${JSON.stringify(el.selector)}, { keyframes: { ${kfEntries.join(", ")} }, duration: ${duration}, ease: ${JSON.stringify(ease)} }, ${posCode});`
|
|
36177
|
+
);
|
|
36178
|
+
}
|
|
36179
|
+
const replacement = calls.join("\n ");
|
|
36180
|
+
if (loopNode) {
|
|
36181
|
+
const start = loopNode.start ?? loopNode.range?.[0];
|
|
36182
|
+
const end = loopNode.end ?? loopNode.range?.[1];
|
|
36183
|
+
if (typeof start === "number" && typeof end === "number") {
|
|
36184
|
+
return script.slice(0, start) + replacement + script.slice(end);
|
|
36185
|
+
}
|
|
36186
|
+
}
|
|
36187
|
+
const stmtNode = loc.target.call.path?.parent?.node ?? loc.target.call.path?.parentPath?.node;
|
|
36188
|
+
if (stmtNode?.type === "ExpressionStatement") {
|
|
36189
|
+
const start = stmtNode.start ?? stmtNode.range?.[0];
|
|
36190
|
+
const end = stmtNode.end ?? stmtNode.range?.[1];
|
|
36191
|
+
if (typeof start === "number" && typeof end === "number") {
|
|
36192
|
+
return script.slice(0, start) + replacement + script.slice(end);
|
|
36193
|
+
}
|
|
36194
|
+
}
|
|
36195
|
+
return script;
|
|
36196
|
+
}
|
|
36197
|
+
var recast, import_parser, GSAP_METHODS, QUERY_METHODS, ITERATION_METHODS, SCOPE_NODE_TYPES, BUILTIN_VAR_KEYS, DROPPED_VAR_KEYS, EXTRAS_KEYS, PERCENTAGE_KEY_RE, CSS_IDENTITY;
|
|
35656
36198
|
var init_gsapParser = __esm({
|
|
35657
36199
|
"../core/src/parsers/gsapParser.ts"() {
|
|
35658
36200
|
"use strict";
|
|
35659
36201
|
recast = __toESM(require_main2(), 1);
|
|
35660
36202
|
import_parser = __toESM(require_lib(), 1);
|
|
35661
36203
|
init_gsapSerialize();
|
|
36204
|
+
init_springEase();
|
|
35662
36205
|
GSAP_METHODS = /* @__PURE__ */ new Set(["set", "to", "from", "fromTo"]);
|
|
35663
36206
|
QUERY_METHODS = /* @__PURE__ */ new Set(["querySelector", "querySelectorAll"]);
|
|
35664
36207
|
ITERATION_METHODS = /* @__PURE__ */ new Set(["forEach", "map"]);
|
|
@@ -35669,7 +36212,7 @@ var init_gsapParser = __esm({
|
|
|
35669
36212
|
"ArrowFunctionExpression"
|
|
35670
36213
|
]);
|
|
35671
36214
|
BUILTIN_VAR_KEYS = /* @__PURE__ */ new Set(["duration", "ease", "delay"]);
|
|
35672
|
-
DROPPED_VAR_KEYS = /* @__PURE__ */ new Set(["
|
|
36215
|
+
DROPPED_VAR_KEYS = /* @__PURE__ */ new Set(["onComplete", "onStart", "onUpdate", "onRepeat"]);
|
|
35673
36216
|
EXTRAS_KEYS = /* @__PURE__ */ new Set([
|
|
35674
36217
|
"stagger",
|
|
35675
36218
|
"yoyo",
|
|
@@ -35679,6 +36222,14 @@ var init_gsapParser = __esm({
|
|
|
35679
36222
|
"overwrite",
|
|
35680
36223
|
"immediateRender"
|
|
35681
36224
|
]);
|
|
36225
|
+
PERCENTAGE_KEY_RE = /^(\d+(?:\.\d+)?)%$/;
|
|
36226
|
+
CSS_IDENTITY = {
|
|
36227
|
+
opacity: 1,
|
|
36228
|
+
autoAlpha: 1,
|
|
36229
|
+
scale: 1,
|
|
36230
|
+
scaleX: 1,
|
|
36231
|
+
scaleY: 1
|
|
36232
|
+
};
|
|
35682
36233
|
}
|
|
35683
36234
|
});
|
|
35684
36235
|
|
|
@@ -39264,7 +39815,7 @@ var RUNTIME_IIFE;
|
|
|
39264
39815
|
var init_runtime_inline = __esm({
|
|
39265
39816
|
"../core/src/generated/runtime-inline.ts"() {
|
|
39266
39817
|
"use strict";
|
|
39267
|
-
RUNTIME_IIFE = '"use strict";(()=>{var ns=Object.create;var xn=Object.defineProperty;var is=Object.getOwnPropertyDescriptor;var rs=Object.getOwnPropertyNames;var os=Object.getPrototypeOf,ss=Object.prototype.hasOwnProperty;var as=(t,e,n)=>e in t?xn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Z=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var ls=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of rs(e))!ss.call(t,r)&&r!==n&&xn(t,r,{get:()=>e[r],enumerable:!(i=is(e,r))||i.enumerable});return t};var us=(t,e,n)=>(n=t!=null?ns(os(t)):{},ls(e||!t||!t.__esModule?xn(n,"default",{value:t,enumerable:!0}):n,t));var ye=(t,e,n)=>as(t,typeof e!="symbol"?e+"":e,n);var qi=Z((fc,Fn)=>{var K=String,Hi=function(){return{isColorSupported:!1,reset:K,bold:K,dim:K,italic:K,underline:K,inverse:K,hidden:K,strikethrough:K,black:K,red:K,green:K,yellow:K,blue:K,magenta:K,cyan:K,white:K,gray:K,bgBlack:K,bgRed:K,bgGreen:K,bgYellow:K,bgBlue:K,bgMagenta:K,bgCyan:K,bgWhite:K,blackBright:K,redBright:K,greenBright:K,yellowBright:K,blueBright:K,magentaBright:K,cyanBright:K,whiteBright:K,bgBlackBright:K,bgRedBright:K,bgGreenBright:K,bgYellowBright:K,bgBlueBright:K,bgMagentaBright:K,bgCyanBright:K,bgWhiteBright:K}};Fn.exports=Hi();Fn.exports.createColors=Hi});var wn=Z(()=>{});var qt=Z((hc,zi)=>{"use strict";var Vi=qi(),Ui=wn(),yt=class t extends Error{constructor(e,n,i,r,o,s){super(e),this.name="CssSyntaxError",this.reason=e,o&&(this.file=o),r&&(this.source=r),s&&(this.plugin=s),typeof n<"u"&&typeof i<"u"&&(typeof n=="number"?(this.line=n,this.column=i):(this.line=n.line,this.column=n.column,this.endLine=i.line,this.endColumn=i.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,t)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let n=this.source;e==null&&(e=Vi.isColorSupported);let i=u=>u,r=u=>u,o=u=>u;if(e){let{bold:u,gray:m,red:f}=Vi.createColors(!0);r=x=>u(f(x)),i=x=>m(x),Ui&&(o=x=>Ui(x))}let s=n.split(/\\r?\\n/),l=Math.max(this.line-3,0),a=Math.min(this.line+2,s.length),c=String(a).length;return s.slice(l,a).map((u,m)=>{let f=l+1+m,x=" "+(" "+f).slice(-c)+" | ";if(f===this.line){if(u.length>160){let E=20,S=Math.max(0,this.column-E),B=Math.max(this.column+E,this.endColumn+E),D=u.slice(S,B),v=i(x.replace(/\\d/g," "))+u.slice(0,Math.min(this.column-1,E-1)).replace(/[^\\t]/g," ");return r(">")+i(x)+o(D)+`\n `+v+r("^")}let F=i(x.replace(/\\d/g," "))+u.slice(0,this.column-1).replace(/[^\\t]/g," ");return r(">")+i(x)+o(u)+`\n `+F+r("^")}return" "+i(x)+o(u)}).join(`\n`)}toString(){let e=this.showSourceCode();return e&&(e=`\n\n`+e+`\n`),this.name+": "+this.message+e}};zi.exports=yt;yt.default=yt});var Nn=Z((xc,$i)=>{"use strict";var _s=/(<)(\\/?style\\b)/gi,Rs=/(<)(!--)/g;function He(t){return typeof t!="string"||!t.includes("<")?t:t.replace(_s,"\\\\3c $2").replace(Rs,"\\\\3c $2")}var ji={after:`\n`,beforeClose:`\n`,beforeComment:`\n`,beforeDecl:`\n`,beforeOpen:" ",beforeRule:`\n`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function Ls(t){return t[0].toUpperCase()+t.slice(1)}var St=class{constructor(e){this.builder=e}atrule(e,n){let i=e.raws,r="@"+e.name,o=e.params?this.rawValue(e,"params"):"";if(typeof i.afterName<"u"?r+=i.afterName:o&&(r+=" "),e.nodes)this.block(e,r+o);else{let s=(i.between||"")+(n?";":"");this.builder(He(r+o+s),e)}}beforeAfter(e,n){let i;e.type==="decl"?i=this.raw(e,null,"beforeDecl"):e.type==="comment"?i=this.raw(e,null,"beforeComment"):n==="before"?i=this.raw(e,null,"beforeRule"):i=this.raw(e,null,"beforeClose");let r=e.parent,o=0;for(;r&&r.type!=="root";)o+=1,r=r.parent;if(i.includes(`\n`)){let s=this.raw(e,null,"indent");if(s.length)for(let l=0;l<o;l++)i+=s}return i}block(e,n){let i=this.raw(e,"between","beforeOpen");this.builder(He(n+i)+"{",e,"start");let r;e.nodes&&e.nodes.length?(this.body(e),r=this.raw(e,"after")):r=this.raw(e,"after","emptyBody"),r&&this.builder(He(r)),this.builder("}",e,"end")}body(e){let n=e.nodes,i=n.length-1;for(;i>0&&n[i].type==="comment";)i-=1;let r=this.raw(e,"semicolon"),o=e.type==="document";for(let s=0;s<n.length;s++){let l=n[s],a=this.raw(l,"before");a&&this.builder(o?a:He(a)),this.stringify(l,i!==s||r)}}comment(e){let n=this.raw(e,"left","commentLeft"),i=this.raw(e,"right","commentRight");this.builder(He("/*"+n+e.text+i+"*/"),e)}decl(e,n){let i=e.raws,r=this.raw(e,"between","colon"),o=e.prop+r+this.rawValue(e,"value");e.important&&(o+=i.important||" !important"),n&&(o+=";"),this.builder(He(o),e)}document(e){this.body(e)}raw(e,n,i){let r;if(i||(i=n),n&&(r=e.raws[n],typeof r<"u"))return r;let o=e.parent;if(i==="before"&&(!o||o.type==="root"&&o.first===e||o&&o.type==="document"))return"";if(!o)return ji[i];let s=e.root(),l=s.rawCache||(s.rawCache={});if(typeof l[i]<"u")return l[i];if(i==="before"||i==="after")return this.beforeAfter(e,i);{let a="raw"+Ls(i);this[a]?r=this[a](s,e):s.walk(c=>{if(r=c.raws[n],typeof r<"u")return!1})}return typeof r>"u"&&(r=ji[i]),l[i]=r,r}rawBeforeClose(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length>0&&typeof i.raws.after<"u")return n=i.raws.after,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawBeforeComment(e,n){let i;return e.walkComments(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`\n`)&&(i=i.replace(/[^\\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(n,null,"beforeDecl"):i&&(i=i.replace(/\\S/g,"")),i}rawBeforeDecl(e,n){let i;return e.walkDecls(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`\n`)&&(i=i.replace(/[^\\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(n,null,"beforeRule"):i&&(i=i.replace(/\\S/g,"")),i}rawBeforeOpen(e){let n;return e.walk(i=>{if(i.type!=="decl"&&(n=i.raws.between,typeof n<"u"))return!1}),n}rawBeforeRule(e){let n;return e.walk(i=>{if(i.nodes&&(i.parent!==e||e.first!==i)&&typeof i.raws.before<"u")return n=i.raws.before,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawColon(e){let n;return e.walkDecls(i=>{if(typeof i.raws.between<"u")return n=i.raws.between.replace(/[^\\s:]/g,""),!1}),n}rawEmptyBody(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length===0&&(n=i.raws.after,typeof n<"u"))return!1}),n}rawIndent(e){if(e.raws.indent)return e.raws.indent;let n;return e.walk(i=>{let r=i.parent;if(r&&r!==e&&r.parent&&r.parent===e&&typeof i.raws.before<"u"){let o=i.raws.before.split(`\n`);return n=o[o.length-1],n=n.replace(/\\S/g,""),!1}}),n}rawSemicolon(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(n=i.raws.semicolon,typeof n<"u"))return!1}),n}rawValue(e,n){let i=e[n],r=e.raws[n];return r&&r.value===i?r.raw:i}root(e){if(this.body(e),e.raws.after){let n=e.raws.after,i=e.parent&&e.parent.type==="document";this.builder(i?n:He(n))}}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(He(e.raws.ownSemicolon),e,"end")}stringify(e,n){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,n)}};$i.exports=St;St.default=St});var bt=Z((gc,Gi)=>{"use strict";var Ds=Nn();function Cn(t,e){new Ds(e).stringify(t)}Gi.exports=Cn;Cn.default=Cn});var Vt=Z((yc,Mn)=>{"use strict";Mn.exports.isClean=Symbol("isClean");Mn.exports.my=Symbol("my")});var Ft=Z((Sc,Ki)=>{"use strict";var Bs=qt(),Is=Nn(),Os=bt(),{isClean:At,my:Ps}=Vt();function Tn(t,e){let n=new t.constructor;for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i)||i==="proxyCache")continue;let r=t[i],o=typeof r;i==="parent"&&o==="object"?e&&(n[i]=e):i==="source"?n[i]=r:Array.isArray(r)?n[i]=r.map(s=>Tn(s,n)):(o==="object"&&r!==null&&(r=Tn(r)),n[i]=r)}return n}function Oe(t,e){if(e&&typeof e.offset<"u")return e.offset;let n=1,i=1,r=0;for(let o=0;o<t.length;o++){if(i===e.line&&n===e.column){r=o;break}t[o]===`\n`?(n=1,i+=1):n+=1}return r}var Et=class{get proxyOf(){return this}constructor(e={}){this.raws={},this[At]=!1,this[Ps]=!0;for(let n in e)if(n==="nodes"){this.nodes=[];for(let i of e[n])typeof i.clone=="function"?this.append(i.clone()):this.append(i)}else this[n]=e[n]}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\\n\\s{4}at /.test(e.stack)){let n=this.source;e.stack=e.stack.replace(/\\n\\s{4}at /,`$&${n.input.from}:${n.start.line}:${n.start.column}$&`)}return e}after(e){return this.parent.insertAfter(this,e),this}assign(e={}){for(let n in e)this[n]=e[n];return this}before(e){return this.parent.insertBefore(this,e),this}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}clone(e={}){let n=Tn(this);for(let i in e)n[i]=e[i];return n}cloneAfter(e={}){let n=this.clone(e);return this.parent.insertAfter(this,n),n}cloneBefore(e={}){let n=this.clone(e);return this.parent.insertBefore(this,n),n}error(e,n={}){if(this.source){let{end:i,start:r}=this.rangeBy(n);return this.source.input.error(e,{column:r.column,line:r.line},{column:i.column,line:i.line},n)}return new Bs(e)}getProxyProcessor(){return{get(e,n){return n==="proxyOf"?e:n==="root"?()=>e.root().toProxy():e[n]},set(e,n,i){return e[n]===i||(e[n]=i,(n==="prop"||n==="value"||n==="name"||n==="params"||n==="important"||n==="text")&&e.markDirty()),!0}}}markClean(){this[At]=!0}markDirty(){if(this[At]){this[At]=!1;let e=this;for(;e=e.parent;)e[At]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e={}){let n=this.source.start;if(e.index)n=this.positionInside(e.index);else if(e.word){let i="document"in this.source.input?this.source.input.document:this.source.input.css,o=i.slice(Oe(i,this.source.start),Oe(i,this.source.end)).indexOf(e.word);o!==-1&&(n=this.positionInside(o))}return n}positionInside(e){let n=this.source.start.column,i=this.source.start.line,r="document"in this.source.input?this.source.input.document:this.source.input.css,o=Oe(r,this.source.start),s=o+e;for(let l=o;l<s;l++)r[l]===`\n`?(n=1,i+=1):n+=1;return{column:n,line:i,offset:s}}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}rangeBy(e={}){let n="document"in this.source.input?this.source.input.document:this.source.input.css,i={column:this.source.start.column,line:this.source.start.line,offset:Oe(n,this.source.start)},r=this.source.end?{column:this.source.end.column+1,line:this.source.end.line,offset:typeof this.source.end.offset=="number"?this.source.end.offset:Oe(n,this.source.end)+1}:{column:i.column+1,line:i.line,offset:i.offset+1};if(e.word){let s=n.slice(Oe(n,this.source.start),Oe(n,this.source.end)).indexOf(e.word);s!==-1&&(i=this.positionInside(s),r=this.positionInside(s+e.word.length))}else e.start?i={column:e.start.column,line:e.start.line,offset:Oe(n,e.start)}:e.index&&(i=this.positionInside(e.index)),e.end?r={column:e.end.column,line:e.end.line,offset:Oe(n,e.end)}:typeof e.endIndex=="number"?r=this.positionInside(e.endIndex):e.index&&(r=this.positionInside(e.index+1));return(r.line<i.line||r.line===i.line&&r.column<=i.column)&&(r={column:i.column+1,line:i.line,offset:i.offset+1}),{end:r,start:i}}raw(e,n){return new Is().raw(this,e,n)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...e){if(this.parent){let n=this,i=!1;for(let r of e)r===this?i=!0:i?(this.parent.insertAfter(n,r),n=r):this.parent.insertBefore(n,r);i||this.remove()}return this}root(){let e=this;for(;e.parent&&e.parent.type!=="document";)e=e.parent;return e}toJSON(e,n){let i={},r=n==null;n=n||new Map;let o=0;for(let s in this){if(!Object.prototype.hasOwnProperty.call(this,s)||s==="parent"||s==="proxyCache")continue;let l=this[s];if(Array.isArray(l))i[s]=l.map(a=>typeof a=="object"&&a.toJSON?a.toJSON(null,n):a);else if(typeof l=="object"&&l.toJSON)i[s]=l.toJSON(null,n);else if(s==="source"){if(l==null)continue;let a=n.get(l.input);a==null&&(a=o,n.set(l.input,o),o++),i[s]={end:l.end,inputId:a,start:l.start}}else i[s]=l}return r&&(i.inputs=[...n.keys()].map(s=>s.toJSON())),i}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=Os){e.stringify&&(e=e.stringify);let n="";return e(this,i=>{n+=i}),n}warn(e,n,i={}){let r={node:this};for(let o in i)r[o]=i[o];return e.warn(n,r)}};Ki.exports=Et;Et.default=Et});var Nt=Z((bc,Ji)=>{"use strict";var Ws=Ft(),wt=class extends Ws{constructor(e){super(e),this.type="comment"}};Ji.exports=wt;wt.default=wt});var Mt=Z((Ac,Qi)=>{"use strict";var Hs=Ft(),Ct=class extends Hs{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(e){e&&typeof e.value<"u"&&typeof e.value!="string"&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}};Qi.exports=Ct;Ct.default=Ct});var qe=Z((Ec,or)=>{"use strict";var Yi=Nt(),Zi=Mt(),qs=Ft(),{isClean:Xi,my:er}=Vt(),kn,tr,nr,vn;function ir(t){return t.map(e=>(e.nodes&&(e.nodes=ir(e.nodes)),delete e.source,e))}function rr(t){if(t[Xi]=!1,t.proxyOf.nodes)for(let e of t.proxyOf.nodes)rr(e)}var _e=class t extends qs{get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}append(...e){for(let n of e){let i=this.normalize(n,this.last);for(let r of i)this.proxyOf.nodes.push(r)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let n of this.nodes)n.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let n=this.getIterator(),i,r;for(;this.indexes[n]<this.proxyOf.nodes.length&&(i=this.indexes[n],r=e(this.proxyOf.nodes[i],i),r!==!1);)this.indexes[n]+=1;return delete this.indexes[n],r}every(e){return this.nodes.every(e)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}getProxyProcessor(){return{get(e,n){return n==="proxyOf"?e:e[n]?n==="each"||typeof n=="string"&&n.startsWith("walk")?(...i)=>e[n](...i.map(r=>typeof r=="function"?(o,s)=>r(o.toProxy(),s):r)):n==="every"||n==="some"?i=>e[n]((r,...o)=>i(r.toProxy(),...o)):n==="root"?()=>e.root().toProxy():n==="nodes"?e.nodes.map(i=>i.toProxy()):n==="first"||n==="last"?e[n].toProxy():e[n]:e[n]},set(e,n,i){return e[n]===i||(e[n]=i,(n==="name"||n==="params"||n==="selector")&&e.markDirty()),!0}}}index(e){return typeof e=="number"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,n){let i=this.index(e),r=this.normalize(n,this.proxyOf.nodes[i]).reverse();i=this.index(e);for(let s of r)this.proxyOf.nodes.splice(i+1,0,s);let o;for(let s in this.indexes)o=this.indexes[s],i<o&&(this.indexes[s]=o+r.length);return this.markDirty(),this}insertBefore(e,n){let i=this.index(e),r=i===0?"prepend":!1,o=this.normalize(n,this.proxyOf.nodes[i],r).reverse();i=this.index(e);for(let l of o)this.proxyOf.nodes.splice(i,0,l);let s;for(let l in this.indexes)s=this.indexes[l],i<=s&&(this.indexes[l]=s+o.length);return this.markDirty(),this}normalize(e,n){if(typeof e=="string")e=ir(tr(e).nodes);else if(typeof e>"u")e=[];else if(Array.isArray(e)){e=e.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type==="root"&&this.type!=="document"){e=e.nodes.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type)e=[e];else if(e.prop){if(typeof e.value>"u")throw new Error("Value field is missed in node creation");typeof e.value!="string"&&(e.value=String(e.value)),e=[new Zi(e)]}else if(e.selector||e.selectors)e=[new vn(e)];else if(e.name)e=[new kn(e)];else if(e.text)e=[new Yi(e)];else throw new Error("Unknown node type in node creation");return e.map(r=>(r[er]||t.rebuild(r),r=r.proxyOf,r.parent&&r.parent.removeChild(r),r[Xi]&&rr(r),r.raws||(r.raws={}),typeof r.raws.before>"u"&&n&&typeof n.raws.before<"u"&&(r.raws.before=n.raws.before.replace(/\\S/g,"")),r.parent=this.proxyOf,r))}prepend(...e){e=e.reverse();for(let n of e){let i=this.normalize(n,this.first,"prepend").reverse();for(let r of i)this.proxyOf.nodes.unshift(r);for(let r in this.indexes)this.indexes[r]=this.indexes[r]+i.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);let n;for(let i in this.indexes)n=this.indexes[i],n>=e&&(this.indexes[i]=n-1);return this.markDirty(),this}replaceValues(e,n,i){return i||(i=n,n={}),this.walkDecls(r=>{n.props&&!n.props.includes(r.prop)||n.fast&&!r.value.includes(n.fast)||(r.value=r.value.replace(e,i))}),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each((n,i)=>{let r;try{r=e(n,i)}catch(o){throw n.addToError(o)}return r!==!1&&n.walk&&(r=n.walk(e)),r})}walkAtRules(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="atrule"&&e.test(i.name))return n(i,r)}):this.walk((i,r)=>{if(i.type==="atrule"&&i.name===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="atrule")return n(i,r)}))}walkComments(e){return this.walk((n,i)=>{if(n.type==="comment")return e(n,i)})}walkDecls(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="decl"&&e.test(i.prop))return n(i,r)}):this.walk((i,r)=>{if(i.type==="decl"&&i.prop===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="decl")return n(i,r)}))}walkRules(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="rule"&&e.test(i.selector))return n(i,r)}):this.walk((i,r)=>{if(i.type==="rule"&&i.selector===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="rule")return n(i,r)}))}};_e.registerParse=t=>{tr=t};_e.registerRule=t=>{vn=t};_e.registerAtRule=t=>{kn=t};_e.registerRoot=t=>{nr=t};or.exports=_e;_e.default=_e;_e.rebuild=t=>{t.type==="atrule"?Object.setPrototypeOf(t,kn.prototype):t.type==="rule"?Object.setPrototypeOf(t,vn.prototype):t.type==="decl"?Object.setPrototypeOf(t,Zi.prototype):t.type==="comment"?Object.setPrototypeOf(t,Yi.prototype):t.type==="root"&&Object.setPrototypeOf(t,nr.prototype),t[er]=!0,t.nodes&&t.nodes.forEach(e=>{_e.rebuild(e)})}});var Ut=Z((Fc,ar)=>{"use strict";var sr=qe(),nt=class extends sr{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};ar.exports=nt;nt.default=nt;sr.registerAtRule(nt)});var zt=Z((wc,cr)=>{"use strict";var Vs=qe(),lr,ur,Ze=class extends Vs{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new lr(new ur,this,e).stringify()}};Ze.registerLazyResult=t=>{lr=t};Ze.registerProcessor=t=>{ur=t};cr.exports=Ze;Ze.default=Ze});var fr=Z((Nc,dr)=>{var Us="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",zs=(t,e=21)=>(n=e)=>{let i="",r=n|0;for(;r--;)i+=t[Math.random()*t.length|0];return i},js=(t=21)=>{let e="",n=t|0;for(;n--;)e+=Us[Math.random()*64|0];return e};dr.exports={nanoid:js,customAlphabet:zs}});var jt=Z(()=>{});var $t=Z(()=>{});var _n=Z(()=>{});var mr=Z(()=>{});var Ln=Z((Dc,xr)=>{"use strict";var{existsSync:$s,readFileSync:Gs}=mr(),{dirname:Rn,join:Ks}=jt(),{SourceMapConsumer:pr,SourceMapGenerator:hr}=$t();function Js(t){return Buffer?Buffer.from(t,"base64").toString():window.atob(t)}var Tt=class{constructor(e,n){if(n.map===!1)return;n.unsafeMap&&(this.unsafeMap=!0),this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let i=n.map?n.map.prev:void 0,r=this.loadMap(n.from,i);!this.mapFile&&n.from&&(this.mapFile=n.from),this.mapFile&&(this.root=Rn(this.mapFile)),r&&(this.text=r)}consumer(){return this.consumerCache||(this.consumerCache=new pr(this.json||this.text)),this.consumerCache}decodeInline(e){let n=/^data:application\\/json;charset=utf-?8;base64,/,i=/^data:application\\/json;base64,/,r=/^data:application\\/json;charset=utf-?8,/,o=/^data:application\\/json,/,s=e.match(r)||e.match(o);if(s)return decodeURIComponent(e.substr(s[0].length));let l=e.match(n)||e.match(i);if(l)return Js(e.substr(l[0].length));let a=e.slice(22);throw a=a.slice(0,a.indexOf(",")),new Error("Unsupported source map encoding "+a)}getAnnotationURL(e){return e.replace(/^\\/\\*\\s*# sourceMappingURL=/,"").trim()}isMap(e){return typeof e!="object"?!1:typeof e.mappings=="string"||typeof e._mappings=="string"||Array.isArray(e.sections)}loadAnnotation(e){let n=e.match(/\\/\\*\\s*# sourceMappingURL=/g);if(!n)return;let i=e.lastIndexOf(n.pop()),r=e.indexOf("*/",i);i>-1&&r>-1&&(this.annotation=this.getAnnotationURL(e.substring(i,r)))}loadFile(e,n,i){if(!(!i&&!this.unsafeMap&&!/\\.map$/i.test(e))&&(this.root=Rn(e),$s(e)))return this.mapFile=e,Gs(e,"utf-8").toString().trim()}loadMap(e,n){if(n===!1)return!1;if(n){if(typeof n=="string")return n;if(typeof n=="function"){let i=n(e);if(i){let r=this.loadFile(i,e,!0);if(!r)throw new Error("Unable to load previous source map: "+i.toString());return r}}else{if(n instanceof pr)return hr.fromSourceMap(n).toString();if(n instanceof hr)return n.toString();if(this.isMap(n))return JSON.stringify(n);throw new Error("Unsupported previous source map format: "+n.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let i=this.annotation;e&&(i=Ks(Rn(e),i));let r=this.loadFile(i,e,!1);if(r)try{this.json=JSON.parse(r.replace(/^\\)]}\'[^\\n]*\\n/,""))}catch{return}return r}}}startWith(e,n){return e?e.substr(0,n.length)===n:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};xr.exports=Tt;Tt.default=Tt});var kt=Z((Bc,Ar)=>{"use strict";var{nanoid:Qs}=fr(),{isAbsolute:In,resolve:On}=jt(),{SourceMapConsumer:Ys,SourceMapGenerator:Zs}=$t(),{fileURLToPath:gr,pathToFileURL:Gt}=_n(),yr=qt(),Xs=Ln(),Dn=wn(),Bn=Symbol("lineToIndexCache"),ea=!!(Ys&&Zs),Sr=!!(On&&In);function br(t){if(t[Bn])return t[Bn];let e=t.css.split(`\n`),n=new Array(e.length),i=0;for(let r=0,o=e.length;r<o;r++)n[r]=i,i+=e[r].length+1;return t[Bn]=n,n}var it=class{get from(){return this.file||this.id}constructor(e,n={}){if(e===null||typeof e>"u"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\\uFEFF"||this.css[0]==="\\uFFFE"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,this.document=this.css,n.document&&(this.document=n.document.toString()),n.from&&(!Sr||/^\\w+:\\/\\//.test(n.from)||In(n.from)?this.file=n.from:this.file=On(n.from)),Sr&&ea){let i=new Xs(this.css,n);if(i.text){this.map=i;let r=i.consumer().file;!this.file&&r&&(this.file=this.mapResolve(r))}}this.file||(this.id="<input css "+Qs(6)+">"),this.map&&(this.map.file=this.from)}error(e,n,i,r={}){let o,s,l,a,c;if(n&&typeof n=="object"){let m=n,f=i;if(typeof m.offset=="number"){a=m.offset;let x=this.fromOffset(a);n=x.line,i=x.col}else n=m.line,i=m.column,a=this.fromLineAndColumn(n,i);if(typeof f.offset=="number"){l=f.offset;let x=this.fromOffset(l);s=x.line,o=x.col}else s=f.line,o=f.column,l=this.fromLineAndColumn(f.line,f.column)}else if(i)a=this.fromLineAndColumn(n,i);else{a=n;let m=this.fromOffset(a);n=m.line,i=m.col}let u=this.origin(n,i,s,o);return u?c=new yr(e,u.endLine===void 0?u.line:{column:u.column,line:u.line},u.endLine===void 0?u.column:{column:u.endColumn,line:u.endLine},u.source,u.file,r.plugin):c=new yr(e,s===void 0?n:{column:i,line:n},s===void 0?i:{column:o,line:s},this.css,this.file,r.plugin),c.input={column:i,endColumn:o,endLine:s,endOffset:l,line:n,offset:a,source:this.css},this.file&&(Gt&&(c.input.url=Gt(this.file).toString()),c.input.file=this.file),c}fromLineAndColumn(e,n){return br(this)[e-1]+n-1}fromOffset(e){let n=br(this),i=n[n.length-1],r=0;if(e>=i)r=n.length-1;else{let o=n.length-2,s;for(;r<o;)if(s=r+(o-r>>1),e<n[s])o=s-1;else if(e>=n[s+1])r=s+1;else{r=s;break}}return{col:e-n[r]+1,line:r+1}}mapResolve(e){return/^\\w+:\\/\\//.test(e)?e:On(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,n,i,r){if(!this.map)return!1;let o=this.map.consumer(),s=o.originalPositionFor({column:n,line:e});if(!s.source)return!1;let l;typeof i=="number"&&(l=o.originalPositionFor({column:r,line:i}));let a;In(s.source)?a=Gt(s.source):a=new URL(s.source,this.map.consumer().sourceRoot||Gt(this.map.mapFile));let c={column:s.column,endColumn:l&&l.column,endLine:l&&l.line,line:s.line,url:a.toString()};if(a.protocol==="file:")if(gr)c.file=gr(a);else throw new Error("file: protocol is not available in this PostCSS build");let u=o.sourceContentFor(s.source);return u&&(c.source=u),c}toJSON(){let e={};for(let n of["hasBOM","css","file","id"])this[n]!=null&&(e[n]=this[n]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}};Ar.exports=it;it.default=it;Dn&&Dn.registerInput&&Dn.registerInput(it)});var rt=Z((Ic,Nr)=>{"use strict";var Er=qe(),Fr,wr,Ve=class extends Er{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}normalize(e,n,i){let r=super.normalize(e);if(n){if(i==="prepend")this.nodes.length>1?n.raws.before=this.nodes[1].raws.before:delete n.raws.before;else if(this.first!==n)for(let o of r)o.raws.before=n.raws.before}return r}removeChild(e,n){let i=this.index(e);return!n&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(e)}toResult(e={}){return new Fr(new wr,this,e).stringify()}};Ve.registerLazyResult=t=>{Fr=t};Ve.registerProcessor=t=>{wr=t};Nr.exports=Ve;Ve.default=Ve;Er.registerRoot(Ve)});var Pn=Z((Oc,Cr)=>{"use strict";var vt={comma(t){return vt.split(t,[","],!0)},space(t){let e=[" ",`\n`," "];return vt.split(t,e)},split(t,e,n){let i=[],r="",o=!1,s=0,l=!1,a="",c=!1;for(let u of t)c?c=!1:u==="\\\\"?c=!0:l?u===a&&(l=!1):u===\'"\'||u==="\'"?(l=!0,a=u):u==="("?s+=1:u===")"?s>0&&(s-=1):s===0&&e.includes(u)&&(o=!0),o?(r!==""&&i.push(r.trim()),r="",o=!1):r+=u;return(n||r!=="")&&i.push(r.trim()),i}};Cr.exports=vt;vt.default=vt});var Kt=Z((Pc,Tr)=>{"use strict";var Mr=qe(),ta=Pn(),ot=class extends Mr{get selectors(){return ta.comma(this.selector)}set selectors(e){let n=this.selector?this.selector.match(/,\\s*/):null,i=n?n[0]:","+this.raw("between","beforeOpen");this.selector=e.join(i)}constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}};Tr.exports=ot;ot.default=ot;Mr.registerRule(ot)});var vr=Z((Wc,kr)=>{"use strict";var na=Ut(),ia=Nt(),ra=Mt(),oa=kt(),sa=Ln(),aa=rt(),la=Kt();function _t(t,e){if(Array.isArray(t))return t.map(r=>_t(r));let{inputs:n,...i}=t;if(n){e=[];for(let r of n){let o={...r,__proto__:oa.prototype};o.map&&(o.map={...o.map,__proto__:sa.prototype}),e.push(o)}}if(i.nodes&&(i.nodes=t.nodes.map(r=>_t(r,e))),i.source){let{inputId:r,...o}=i.source;i.source=o,r!=null&&(i.source.input=e[r])}if(i.type==="root")return new aa(i);if(i.type==="decl")return new ra(i);if(i.type==="rule")return new la(i);if(i.type==="comment")return new ia(i);if(i.type==="atrule")return new na(i);throw new Error("Unknown node type: "+t.type)}kr.exports=_t;_t.default=_t});var Hn=Z((Hc,Ir)=>{"use strict";var{dirname:Jt,relative:Rr,resolve:Lr,sep:Dr}=jt(),{SourceMapConsumer:Br,SourceMapGenerator:Qt}=$t(),{pathToFileURL:_r}=_n(),ua=kt(),ca=!!(Br&&Qt),da=!!(Jt&&Lr&&Rr&&Dr),Wn=class{constructor(e,n,i,r){this.stringify=e,this.mapOpts=i.map||{},this.root=n,this.opts=i,this.css=r,this.originalCSS=r,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let e;this.isInline()?e="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?e=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?e=this.mapOpts.annotation(this.opts.to,this.root):e=this.outputFile()+".map";let n=`\n`;this.css.includes(`\\r\n`)&&(n=`\\r\n`),this.css+=n+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let n=this.toUrl(this.path(e.file)),i=e.root||Jt(e.file),r;this.mapOpts.sourcesContent===!1?(r=new Br(e.text),r.sourcesContent&&(r.sourcesContent=null)):r=e.consumer(),this.map.applySourceMap(r,n,this.toUrl(this.path(i)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1){if(this.root){let e;for(let n=this.root.nodes.length-1;n>=0;n--)e=this.root.nodes[n],e.type==="comment"&&e.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(n)}else if(this.css){let e;for(;(e=this.css.lastIndexOf("/*#"))!==-1;){let n=this.css.indexOf("*/",e+3);if(n===-1)break;for(;e>0&&this.css[e-1]===`\n`;)e--;this.css=this.css.slice(0,e)+this.css.slice(n+2)}}}}generate(){if(this.clearAnnotation(),da&&ca&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,n=>{e+=n}),[e]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=Qt.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new Qt({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>"});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new Qt({file:this.outputFile(),ignoreInvalidMapping:!0});let e=1,n=1,i="<no source>",r={generated:{column:0,line:0},original:{column:0,line:0},source:""},o,s;this.stringify(this.root,(l,a,c)=>{if(this.css+=l,a&&c!=="end"&&(r.generated.line=e,r.generated.column=n-1,a.source&&a.source.start?(r.source=this.sourcePath(a),r.original.line=a.source.start.line,r.original.column=a.source.start.column-1,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,this.map.addMapping(r))),s=l.match(/\\n/g),s?(e+=s.length,o=l.lastIndexOf(`\n`),n=l.length-o):n+=l.length,a&&c!=="start"){let u=a.parent||{raws:{}};(!(a.type==="decl"||a.type==="atrule"&&!a.nodes)||a!==u.last||u.raws.semicolon)&&(a.source&&a.source.end?(r.source=this.sourcePath(a),r.original.line=a.source.end.line,r.original.column=a.source.end.column-1,r.generated.line=e,r.generated.column=n-2,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,r.generated.line=e,r.generated.column=n-1,this.map.addMapping(r)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(e=>e.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let e=this.mapOpts.annotation;return typeof e<"u"&&e!==!0?!1:this.previous().length?this.previous().some(n=>n.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(e=>e.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute||e.charCodeAt(0)===60||/^\\w+:\\/\\//.test(e))return e;let n=this.memoizedPaths.get(e);if(n)return n;let i=this.opts.to?Jt(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(i=Jt(Lr(i,this.mapOpts.annotation)));let r=Rr(i,e);return this.memoizedPaths.set(e,r),r}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(e=>{if(e.source&&e.source.input.map){let n=e.source.input.map;this.previousMaps.includes(n)||this.previousMaps.push(n)}});else{let e=new ua(this.originalCSS,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk(n=>{if(n.source){let i=n.source.input.from;if(i&&!e[i]){e[i]=!0;let r=this.usesFileUrls?this.toFileUrl(i):this.toUrl(this.path(i));this.map.setSourceContent(r,n.source.input.css)}}});else if(this.css){let n=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(n,this.css)}}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let n=this.memoizedFileURLs.get(e);if(n)return n;if(_r){let i=_r(e).toString();return this.memoizedFileURLs.set(e,i),i}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let n=this.memoizedURLs.get(e);if(n)return n;Dr==="\\\\"&&(e=e.replace(/\\\\/g,"/"));let i=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,i),i}};Ir.exports=Wn});var Wr=Z((qc,Pr)=>{"use strict";var Yt=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/g,Zt=/[\\t\\n\\f\\r !"#\'():;@[\\\\\\]{}]|\\/(?=\\*)/g,fa=/.[\\r\\n"\'(/\\\\]/,Or=/[\\da-f]/i;Pr.exports=function(e,n={}){let i=e.css.valueOf(),r=n.ignoreErrors,o,s,l,a,c,u,m,f,x,F,E=i.length,S=0,B=[],D=[],v=-1;function X(){return S}function q(C){throw e.error("Unclosed "+C,S)}function N(){return D.length===0&&S>=E}function g(C){if(D.length)return D.pop();if(S>=E)return;let w=C?C.ignoreUnclosed:!1;switch(o=i.charCodeAt(S),o){case 10:case 32:case 9:case 13:case 12:{a=S;do a+=1,o=i.charCodeAt(a);while(o===32||o===10||o===9||o===13||o===12);u=["space",i.slice(S,a)],S=a-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let T=String.fromCharCode(o);u=[T,T,S];break}case 40:{if(F=B.length?B.pop()[1]:"",x=i.charCodeAt(S+1),F==="url"&&x!==39&&x!==34&&x!==32&&x!==10&&x!==9&&x!==12&&x!==13){a=S;do{if(m=!1,a=i.indexOf(")",a+1),a===-1)if(r||w){a=S;break}else q("bracket");for(f=a;i.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);u=["brackets",i.slice(S,a+1),S,a],S=a}else S<=v?u=["(","(",S]:(a=i.indexOf(")",S+1),s=i.slice(S,a+1),a===-1||fa.test(s)?(v=a===-1?E:a,u=["(","(",S]):(u=["brackets",s,S,a],S=a));break}case 39:case 34:{c=o===39?"\'":\'"\',a=S;do{if(m=!1,a=i.indexOf(c,a+1),a===-1)if(r||w){a=S+1;break}else q("string");for(f=a;i.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);u=["string",i.slice(S,a+1),S,a],S=a;break}case 64:{Yt.lastIndex=S+1,Yt.test(i),Yt.lastIndex===0?a=i.length-1:a=Yt.lastIndex-2,u=["at-word",i.slice(S,a+1),S,a],S=a;break}case 92:{for(a=S,l=!0;i.charCodeAt(a+1)===92;)a+=1,l=!l;if(o=i.charCodeAt(a+1),l&&o!==47&&o!==32&&o!==10&&o!==9&&o!==13&&o!==12&&(a+=1,Or.test(i.charAt(a)))){for(;Or.test(i.charAt(a+1));)a+=1;i.charCodeAt(a+1)===32&&(a+=1)}u=["word",i.slice(S,a+1),S,a],S=a;break}default:{o===47&&i.charCodeAt(S+1)===42?(a=i.indexOf("*/",S+2)+1,a===0&&(r||w?a=i.length:q("comment")),u=["comment",i.slice(S,a+1),S,a],S=a):(Zt.lastIndex=S+1,Zt.test(i),Zt.lastIndex===0?a=i.length-1:a=Zt.lastIndex-2,u=["word",i.slice(S,a+1),S,a],B.push(u),S=a);break}}return S++,u}function A(C){D.push(C)}return{back:A,endOfFile:N,nextToken:g,position:X}}});var Ur=Z((Vc,Vr)=>{"use strict";var ma=Ut(),pa=Nt(),ha=Mt(),xa=rt(),Hr=Kt(),ga=Wr(),qr={empty:!0,space:!0};function ya(t){for(let e=t.length-1;e>=0;e--){let n=t[e],i=n[3]||n[2];if(i)return i}}var qn=class{constructor(e){this.input=e,this.root=new xa,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let n=new ma;n.name=e[1].slice(1),n.name===""&&this.unnamedAtrule(n,e),this.init(n,e[2]);let i,r,o,s=!1,l=!1,a=[],c=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),i=e[0],i==="("||i==="["?c.push(i==="("?")":"]"):i==="{"&&c.length>0?c.push("}"):i===c[c.length-1]&&c.pop(),c.length===0)if(i===";"){n.source.end=this.getPosition(e[2]),n.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){l=!0;break}else if(i==="}"){if(a.length>0){for(o=a.length-1,r=a[o];r&&r[0]==="space";)r=a[--o];r&&(n.source.end=this.getPosition(r[3]||r[2]),n.source.end.offset++)}this.end(e);break}else a.push(e);else a.push(e);if(this.tokenizer.endOfFile()){s=!0;break}}n.raws.between=this.spacesAndCommentsFromEnd(a),a.length?(n.raws.afterName=this.spacesAndCommentsFromStart(a),this.raw(n,"params",a),s&&(e=a[a.length-1],n.source.end=this.getPosition(e[3]||e[2]),n.source.end.offset++,this.spaces=n.raws.between,n.raws.between="")):(n.raws.afterName="",n.params=""),l&&(n.nodes=[],this.current=n)}checkMissedSemicolon(e){let n=this.colon(e);if(n===!1)return;let i=0,r;for(let o=n-1;o>=0&&(r=e[o],!(r[0]!=="space"&&(i+=1,i===2)));o--);throw this.input.error("Missed semicolon",r[0]==="word"?r[3]+1:r[2])}colon(e){let n=0,i,r,o;for(let[s,l]of e.entries()){if(r=l,o=r[0],o==="("&&(n+=1),o===")"&&(n-=1),n===0&&o===":")if(!i)this.doubleColon(r);else{if(i[0]==="word"&&i[1]==="progid")continue;return s}i=r}return!1}comment(e){let n=new pa;this.init(n,e[2]),n.source.end=this.getPosition(e[3]||e[2]),n.source.end.offset++;let i=e[1].slice(2,-2);if(!i.trim())n.text="",n.raws.left=i,n.raws.right="";else{let r=i.match(/^(\\s*)([^]*\\S)(\\s*)$/);n.text=r[2],n.raws.left=r[1],n.raws.right=r[3]}}createTokenizer(){this.tokenizer=ga(this.input)}decl(e,n){let i=new ha;this.init(i,e[0][2]);let r=e[e.length-1];for(r[0]===";"&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(r[3]||r[2]||ya(e)),i.source.end.offset++;e[0][0]!=="word";)e.length===1&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let c=e[0][0];if(c===":"||c==="space"||c==="comment")break;i.prop+=e.shift()[1]}i.raws.between="";let o;for(;e.length;)if(o=e.shift(),o[0]===":"){i.raws.between+=o[1];break}else o[0]==="word"&&/\\w/.test(o[1])&&this.unknownWord([o]),i.raws.between+=o[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let s=[],l;for(;e.length&&(l=e[0][0],!(l!=="space"&&l!=="comment"));)s.push(e.shift());this.precheckMissedSemicolon(e);for(let c=e.length-1;c>=0;c--){if(o=e[c],o[1].toLowerCase()==="!important"){i.important=!0;let u=this.stringFrom(e,c);u=this.spacesFromEnd(e)+u,u!==" !important"&&(i.raws.important=u);break}else if(o[1].toLowerCase()==="important"){let u=e.slice(0),m="";for(let f=c;f>0;f--){let x=u[f][0];if(m.trim().startsWith("!")&&x!=="space")break;m=u.pop()[1]+m}m.trim().startsWith("!")&&(i.important=!0,i.raws.important=m,e=u)}if(o[0]!=="space"&&o[0]!=="comment")break}e.some(c=>c[0]!=="space"&&c[0]!=="comment")&&(i.raws.between+=s.map(c=>c[1]).join(""),s=[]),this.raw(i,"value",s.concat(e),n),i.value.includes(":")&&!n&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let n=new Hr;this.init(n,e[2]),n.selector="",n.raws.between="",this.current=n}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let n=this.current.nodes[this.current.nodes.length-1];n&&n.type==="rule"&&!n.raws.ownSemicolon&&(n.raws.ownSemicolon=this.spaces,this.spaces="",n.source.end=this.getPosition(e[2]),n.source.end.offset+=n.raws.ownSemicolon.length)}}getPosition(e){let n=this.input.fromOffset(e);return{column:n.col,line:n.line,offset:e}}init(e,n){this.current.push(e),e.source={input:this.input,start:this.getPosition(n)},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}other(e){let n=!1,i=null,r=!1,o=null,s=[],l=e[1].startsWith("--"),a=[],c=e;for(;c;){if(i=c[0],a.push(c),i==="("||i==="[")o||(o=c),s.push(i==="("?")":"]");else if(l&&r&&i==="{")o||(o=c),s.push("}");else if(s.length===0)if(i===";")if(r){this.decl(a,l);return}else break;else if(i==="{"){this.rule(a);return}else if(i==="}"){this.tokenizer.back(a.pop()),n=!0;break}else i===":"&&(r=!0);else i===s[s.length-1]&&(s.pop(),s.length===0&&(o=null));c=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(n=!0),s.length>0&&this.unclosedBracket(o),n&&r){if(!l)for(;a.length&&(c=a[a.length-1][0],!(c!=="space"&&c!=="comment"));)this.tokenizer.back(a.pop());this.decl(a,l)}else this.unknownWord(a)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,n,i,r){let o,s,l=i.length,a="",c=!0,u,m;for(let f=0;f<l;f+=1)o=i[f],s=o[0],s==="space"&&f===l-1&&!r?c=!1:s==="comment"?(m=i[f-1]?i[f-1][0]:"empty",u=i[f+1]?i[f+1][0]:"empty",!qr[m]&&!qr[u]?a.slice(-1)===","?c=!1:a+=o[1]:c=!1):a+=o[1];if(!c){let f=i.reduce((x,F)=>x+F[1],"");e.raws[n]={raw:f,value:a}}e[n]=a}rule(e){e.pop();let n=new Hr;this.init(n,e[0][2]),n.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(n,"selector",e),this.current=n}spacesAndCommentsFromEnd(e){let n,i="";for(;e.length&&(n=e[e.length-1][0],!(n!=="space"&&n!=="comment"));)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let n,i="";for(;e.length&&(n=e[0][0],!(n!=="space"&&n!=="comment"));)i+=e.shift()[1];return i}spacesFromEnd(e){let n,i="";for(;e.length&&(n=e[e.length-1][0],n==="space");)i=e.pop()[1]+i;return i}stringFrom(e,n){let i="";for(let r=n;r<e.length;r++)i+=e[r][1];return e.splice(n,e.length-n),i}unclosedBlock(){let e=this.current.source.start;throw this.input.error("Unclosed block",e.line,e.column)}unclosedBracket(e){throw this.input.error("Unclosed bracket",{offset:e[2]},{offset:e[2]+1})}unexpectedClose(e){throw this.input.error("Unexpected }",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error("Unknown word "+e[0][1],{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unnamedAtrule(e,n){throw this.input.error("At-rule without name",{offset:n[2]},{offset:n[2]+n[1].length})}};Vr.exports=qn});var en=Z((Uc,zr)=>{"use strict";var Sa=qe(),ba=kt(),Aa=Ur();function Xt(t,e){let n=new ba(t,e),i=new Aa(n);try{i.parse()}catch(r){throw r}return i.root}zr.exports=Xt;Xt.default=Xt;Sa.registerParse(Xt)});var Vn=Z((zc,jr)=>{"use strict";var Rt=class{constructor(e,n={}){if(this.type="warning",this.text=e,n.node&&n.node.source){let i=n.node.rangeBy(n);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in n)this[i]=n[i]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};jr.exports=Rt;Rt.default=Rt});var tn=Z((jc,$r)=>{"use strict";var Ea=Vn(),Lt=class{get content(){return this.css}constructor(e,n,i){this.processor=e,this.messages=[],this.root=n,this.opts=i,this.css="",this.map=void 0}toString(){return this.css}warn(e,n={}){n.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(n.plugin=this.lastPlugin.postcssPlugin);let i=new Ea(e,n);return this.messages.push(i),i}warnings(){return this.messages.filter(e=>e.type==="warning")}};$r.exports=Lt;Lt.default=Lt});var Un=Z(($c,Kr)=>{"use strict";var Gr={};Kr.exports=function(e){Gr[e]||(Gr[e]=!0,typeof console<"u"&&console.warn&&console.warn(e))}});var $n=Z((Kc,Zr)=>{"use strict";var Fa=qe(),wa=zt(),Na=Hn(),Ca=en(),Jr=tn(),Ma=rt(),Ta=bt(),{isClean:Be,my:ka}=Vt(),Gc=Un(),va={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},_a={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},Ra={Once:!0,postcssPlugin:!0,prepare:!0},st=0;function Dt(t){return typeof t=="object"&&typeof t.then=="function"}function Yr(t){let e=!1,n=va[t.type];return t.type==="decl"?e=t.prop.toLowerCase():t.type==="atrule"&&(e=t.name.toLowerCase()),e&&t.append?[n,n+"-"+e,st,n+"Exit",n+"Exit-"+e]:e?[n,n+"-"+e,n+"Exit",n+"Exit-"+e]:t.append?[n,st,n+"Exit"]:[n,n+"Exit"]}function Qr(t){let e;return t.type==="document"?e=["Document",st,"DocumentExit"]:t.type==="root"?e=["Root",st,"RootExit"]:e=Yr(t),{eventIndex:0,events:e,iterator:0,node:t,visitorIndex:0,visitors:[]}}function zn(t){return t[Be]=!1,t.nodes&&t.nodes.forEach(e=>zn(e)),t}var jn={},Ue=class t{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(e,n,i){this.stringified=!1,this.processed=!1;let r;if(typeof n=="object"&&n!==null&&(n.type==="root"||n.type==="document"))r=zn(n);else if(n instanceof t||n instanceof Jr)r=zn(n.root),n.map&&(typeof i.map>"u"&&(i.map={}),i.map.inline||(i.map.inline=!1),i.map.prev=n.map);else{let o=Ca;i.syntax&&(o=i.syntax.parse),i.parser&&(o=i.parser),o.parse&&(o=o.parse);try{r=o(n,i)}catch(s){this.processed=!0,this.error=s}r&&!r[ka]&&Fa.rebuild(r)}this.result=new Jr(e,r,i),this.helpers={...jn,postcss:jn,result:this.result},this.plugins=this.processor.plugins.map(o=>typeof o=="object"&&o.prepare?{...o,...o.prepare(this.result)}:o)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,n){let i=this.result.lastPlugin;try{n&&n.addToError(e),this.error=e,e.name==="CssSyntaxError"&&!e.plugin?(e.plugin=i.postcssPlugin,e.setMessage()):i.postcssVersion}catch(r){console&&console.error&&console.error(r)}return e}prepareVisitors(){this.listeners={};let e=(n,i,r)=>{this.listeners[i]||(this.listeners[i]=[]),this.listeners[i].push([n,r])};for(let n of this.plugins)if(typeof n=="object")for(let i in n){if(!_a[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!Ra[i])if(typeof n[i]=="object")for(let r in n[i])r==="*"?e(n,i,n[i][r]):e(n,i+"-"+r.toLowerCase(),n[i][r]);else typeof n[i]=="function"&&e(n,i,n[i])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let e=0;e<this.plugins.length;e++){let n=this.plugins[e],i=this.runOnRoot(n);if(Dt(i))try{await i}catch(r){throw this.handleError(r)}}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Be];){e[Be]=!0;let n=[Qr(e)];for(;n.length>0;){let i=this.visitTick(n);if(Dt(i))try{await i}catch(r){let o=n[n.length-1].node;throw this.handleError(r,o)}}}if(this.listeners.OnceExit)for(let[n,i]of this.listeners.OnceExit){this.result.lastPlugin=n;try{if(e.type==="document"){let r=e.nodes.map(o=>i(o,this.helpers));await Promise.all(r)}else await i(e,this.helpers)}catch(r){throw this.handleError(r)}}}return this.processed=!0,this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e=="object"&&e.Once){if(this.result.root.type==="document"){let n=this.result.root.nodes.map(i=>e.Once(i,this.helpers));return Dt(n[0])?Promise.all(n):n}return e.Once(this.result.root,this.helpers)}else if(typeof e=="function")return e(this.result.root,this.result)}catch(n){throw this.handleError(n)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,n=Ta;e.syntax&&(n=e.syntax.stringify),e.stringifier&&(n=e.stringifier),n.stringify&&(n=n.stringify);let i=this.result.root.source;if(e.map===void 0&&!(i&&i.input&&i.input.map)){let s="";return n(this.result.root,l=>{s+=l}),this.result.css=s,this.result}let o=new Na(n,this.result.root,this.result.opts).generate();return this.result.css=o[0],this.result.map=o[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){let n=this.runOnRoot(e);if(Dt(n))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Be];)e[Be]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type==="document")for(let n of e.nodes)this.visitSync(this.listeners.OnceExit,n);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,n){return this.async().then(e,n)}toString(){return this.css}visitSync(e,n){for(let[i,r]of e){this.result.lastPlugin=i;let o;try{o=r(n,this.helpers)}catch(s){throw this.handleError(s,n.proxyOf)}if(n.type!=="root"&&n.type!=="document"&&!n.parent)return!0;if(Dt(o))throw this.getAsyncError()}}visitTick(e){let n=e[e.length-1],{node:i,visitors:r}=n;if(i.type!=="root"&&i.type!=="document"&&!i.parent){e.pop();return}if(r.length>0&&n.visitorIndex<r.length){let[s,l]=r[n.visitorIndex];n.visitorIndex+=1,n.visitorIndex===r.length&&(n.visitors=[],n.visitorIndex=0),this.result.lastPlugin=s;try{return l(i.toProxy(),this.helpers)}catch(a){throw this.handleError(a,i)}}if(n.iterator!==0){let s=n.iterator,l;for(;l=i.nodes[i.indexes[s]];)if(i.indexes[s]+=1,!l[Be]){l[Be]=!0,e.push(Qr(l));return}n.iterator=0,delete i.indexes[s]}let o=n.events;for(;n.eventIndex<o.length;){let s=o[n.eventIndex];if(n.eventIndex+=1,s===st){i.nodes&&i.nodes.length&&(i[Be]=!0,n.iterator=i.getIterator());return}else if(this.listeners[s]){n.visitors=this.listeners[s];return}}e.pop()}walkSync(e){e[Be]=!0;let n=Yr(e);for(let i of n)if(i===st)e.nodes&&e.each(r=>{r[Be]||this.walkSync(r)});else{let r=this.listeners[i];if(r&&this.visitSync(r,e.toProxy()))return}}warnings(){return this.sync().warnings()}};Ue.registerPostcss=t=>{jn=t};Zr.exports=Ue;Ue.default=Ue;Ma.registerLazyResult(Ue);wa.registerLazyResult(Ue)});var eo=Z((Qc,Xr)=>{"use strict";var La=Hn(),Da=en(),Ba=tn(),Ia=bt(),Jc=Un(),Bt=class{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,n=Da;try{e=n(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(e,n,i){n=n.toString(),this.stringified=!1,this._processor=e,this._css=n,this._opts=i,this._map=void 0;let r=Ia;this.result=new Ba(this._processor,void 0,this._opts),this.result.css=n;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let s=new La(r,void 0,this._opts,n);if(s.isMap()){let[l,a]=s.generate();l&&(this.result.css=l),a&&(this.result.map=a)}else s.clearAnnotation(),this.result.css=s.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,n){return this.async().then(e,n)}toString(){return this._css}warnings(){return[]}};Xr.exports=Bt;Bt.default=Bt});var no=Z((Yc,to)=>{"use strict";var Oa=zt(),Pa=$n(),Wa=eo(),Ha=rt(),Xe=class{constructor(e=[]){this.version="8.5.14",this.plugins=this.normalize(e)}normalize(e){let n=[];for(let i of e)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))n=n.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)n.push(i);else if(typeof i=="function")n.push(i);else if(!(typeof i=="object"&&(i.parse||i.stringify)))throw new Error(i+" is not a PostCSS plugin");return n}process(e,n={}){return!this.plugins.length&&!n.parser&&!n.stringifier&&!n.syntax?new Wa(this,e,n):new Pa(this,e,n)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};to.exports=Xe;Xe.default=Xe;Ha.registerProcessor(Xe);Oa.registerProcessor(Xe)});var co=Z((Zc,uo)=>{"use strict";var io=Ut(),ro=Nt(),qa=qe(),Va=qt(),oo=Mt(),so=zt(),Ua=vr(),za=kt(),ja=$n(),$a=Pn(),Ga=Ft(),Ka=en(),Gn=no(),Ja=tn(),ao=rt(),lo=Kt(),Qa=bt(),Ya=Vn();function re(...t){return t.length===1&&Array.isArray(t[0])&&(t=t[0]),new Gn(t)}re.plugin=function(e,n){let i=!1;function r(...s){console&&console.warn&&!i&&(i=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration`),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(e+`: \\u91CC\\u9762 postcss.plugin \\u88AB\\u5F03\\u7528. \\u8FC1\\u79FB\\u6307\\u5357:\nhttps://www.w3ctech.com/topic/2226`));let l=n(...s);return l.postcssPlugin=e,l.postcssVersion=new Gn().version,l}let o;return Object.defineProperty(r,"postcss",{get(){return o||(o=r()),o}}),r.process=function(s,l,a){return re([r(a)]).process(s,l)},r};re.stringify=Qa;re.parse=Ka;re.fromJSON=Ua;re.list=$a;re.comment=t=>new ro(t);re.atRule=t=>new io(t);re.decl=t=>new oo(t);re.rule=t=>new lo(t);re.root=t=>new ao(t);re.document=t=>new so(t);re.CssSyntaxError=Va;re.Declaration=oo;re.Container=qa;re.Processor=Gn;re.Document=so;re.Comment=ro;re.Warning=Ya;re.AtRule=io;re.Result=Ja;re.Input=za;re.Rule=lo;re.Root=ao;re.Node=Ga;ja.registerPostcss(re);uo.exports=re;re.default=re});function _(t,e){if(typeof window>"u")return;let n=window,i=n.__hf?.onSwallowed;if(i)try{i({label:t,error:e})}catch(r){}(n.__hfDebug||n.__HYPERFRAMES_DEBUG)&&console.debug(`[hyperframes] ${t} swallowed:`,e)}function Ae(t){try{window.parent.postMessage(t,"*")}catch(e){_("bridge.postMessage",e)}}function hi(t){let e=n=>{let i=n.data;if(!i||i.source!=="hf-parent"||i.type!=="control")return;let r=i.action;if(r==="play"){t.onPlay();return}if(r==="pause"){t.onPause();return}if(r==="seek"){t.onSeek(Number(i.frame??0),i.seekMode??"commit");return}if(r==="tick"){t.onTick();return}if(r==="set-muted"){t.onSetMuted(!!i.muted);return}if(r==="set-volume"){t.onSetVolume(Math.max(0,Math.min(1,Number(i.volume??1))));return}if(r==="set-media-output-muted"){t.onSetMediaOutputMuted(!!i.muted);return}if(r==="set-playback-rate"){t.onSetPlaybackRate(Number(i.playbackRate??1));return}if(r==="enable-pick-mode"){t.onEnablePickMode();return}if(r==="disable-pick-mode"){t.onDisablePickMode();return}if(r==="flash-elements"){let o=i.selectors,s=i.duration||800;o&&cs(o,s)}};return window.addEventListener("message",e),e}function cs(t,e){if(!document.getElementById("__hf-flash-styles")){let n=document.createElement("style");n.id="__hf-flash-styles",n.textContent=`\n .__hf-flash {\n outline: 2px solid rgba(59, 130, 246, 0.6) !important;\n outline-offset: 2px !important;\n animation: __hf-flash-pulse ${e}ms ease-out forwards !important;\n }\n @keyframes __hf-flash-pulse {\n 0% { outline-color: rgba(59, 130, 246, 0.8); }\n 100% { outline-color: transparent; }\n }\n `,document.head.appendChild(n)}for(let n of t)try{document.querySelectorAll(n).forEach(r=>{r.classList.add("__hf-flash"),setTimeout(()=>r.classList.remove("__hf-flash"),e)})}catch(i){_("bridge.flashElements.querySelector",i)}}var gn=null;function xi(t){gn=t}function dt(t,e){if(gn)try{gn({source:"hf-preview",type:"analytics",event:t,properties:e??{}})}catch(n){_("runtime.analytics.site1",n)}}function gi(t){let e=[],n=l=>{if(typeof l.getAnimations!="function")return[];try{return l.getAnimations()}catch{return[]}},i=(l,a)=>{for(let c of l){try{c.currentTime=a}catch(u){_("runtime.adapters.css.site1",u)}try{c.pause()}catch(u){_("runtime.adapters.css.site2",u)}}},r=l=>{for(let a of l)try{a.play()}catch(c){_("runtime.adapters.css.site3",c)}},o=l=>{for(let a of l)try{a.pause()}catch(c){_("runtime.adapters.css.site4",c)}},s=l=>{l.baseDelay?l.el.style.animationDelay=l.baseDelay:l.el.style.removeProperty("animation-delay"),l.basePlayState?l.el.style.animationPlayState=l.basePlayState:l.el.style.removeProperty("animation-play-state")};return{name:"css",discover:()=>{e=[];let l=document.querySelectorAll("*");for(let a of l){if(!(a instanceof HTMLElement))continue;let c=window.getComputedStyle(a);!c.animationName||c.animationName==="none"||e.push({el:a,baseDelay:a.style.animationDelay||"",basePlayState:a.style.animationPlayState||""})}},seek:l=>{let a=Number(l.time)||0;for(let c of e){if(!c.el.isConnected)continue;let u=t?.resolveStartSeconds?t.resolveStartSeconds(c.el):Number.parseFloat(c.el.getAttribute("data-start")??"0")||0,m=Math.max(0,a-u)*1e3,f=n(c.el);if(f.length>0){i(f,m);continue}c.el.style.animationPlayState="paused",c.el.style.animationDelay=`-${(m/1e3).toFixed(3)}s`}},pause:()=>{for(let l of e){if(!l.el.isConnected)continue;let a=n(l.el);a.length>0&&o(a),s(l)}},play:()=>{for(let l of e)l.el.isConnected&&(s(l),r(n(l.el)))},revert:()=>{e=[]}}}function yi(t){return{name:"gsap",discover:()=>{},seek:e=>{let n=t.getTimeline();if(!n)return;n.pause();let i=Math.max(0,Number(e.time)||0);typeof n.totalTime=="function"?n.totalTime(i,!1):n.seek(i,!1)},pause:()=>{let e=t.getTimeline();e&&e.pause()}}}function Si(){return{name:"animejs",discover:()=>{try{let t=window.anime;if(!t||typeof t.running>"u")return;let e=t.running;if(!Array.isArray(e)||e.length===0)return;let n=window.__hfAnime??[],i=new Set(n);for(let r of e)i.has(r)||n.push(r);window.__hfAnime=n}catch(t){_("runtime.adapters.animejs.site1",t)}},seek:t=>{let e=Math.max(0,(Number(t.time)||0)*1e3),n=window.__hfAnime;if(!(!n||n.length===0))for(let i of n)try{typeof i.seek=="function"&&i.seek(e)}catch(r){_("runtime.adapters.animejs.site2",r)}},pause:()=>{let t=window.__hfAnime;if(!(!t||t.length===0))for(let e of t)try{typeof e.pause=="function"&&e.pause()}catch(n){_("runtime.adapters.animejs.site3",n)}},play:()=>{let t=window.__hfAnime;if(!(!t||t.length===0))for(let e of t)try{typeof e.play=="function"&&e.play()}catch(n){_("runtime.adapters.animejs.site4",n)}},revert:()=>{}}}function Ei(){return{name:"lottie",discover:()=>{try{let t=window.lottie;if(t&&typeof t.getRegisteredAnimations=="function"){let e=t.getRegisteredAnimations();if(Array.isArray(e)&&e.length>0){let n=window.__hfLottie??[],i=new Set(n);for(let r of e)i.has(r)||n.push(r);window.__hfLottie=n}}}catch(t){_("runtime.adapters.lottie.site1",t)}},seek:t=>{let e=Math.max(0,Number(t.time)||0),n=window.__hfLottie;if(!(!n||n.length===0))for(let i of n)try{if(bi(i))i.goToAndStop(e*1e3,!1);else if(Ai(i)){if(typeof i.setCurrentRawFrameValue=="function"){let r=i.totalFrames??0,o=i.frameRate??30,s=e*o;r>0&&i.setCurrentRawFrameValue(Math.min(s,r-1))}else if(typeof i.seek=="function"){let r=i.duration??1,o=Math.min(100,e/r*100);i.seek(o)}}}catch(r){_("runtime.adapters.lottie.site2",r)}},pause:()=>{let t=window.__hfLottie;if(!(!t||t.length===0))for(let e of t)try{(bi(e)||Ai(e))&&e.pause()}catch(n){_("runtime.adapters.lottie.site3",n)}},revert:()=>{}}}function bi(t){return typeof t=="object"&&t!==null&&typeof t.goToAndStop=="function"}function Ai(t){return typeof t=="object"&&t!==null&&typeof t.pause=="function"&&("totalFrames"in t||"duration"in t)}var Fi=-1;function Ht(t){if(t!==Fi){Fi=t;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:t}}))}catch(e){_("runtime.adapters.seek-dispatch.site1",e)}}}function wi(){let t=null,e=0;return{name:"three",discover:()=>{},seek:n=>{t=Math.max(0,Number(n.time)||0),e=t,window.__hfThreeTime=t,Ht(t)},pause:()=>{t==null&&(t=Math.max(0,e))},play:()=>{t=null},revert:()=>{t=null,e=0}}}function Ni(){let t=null,e=0;return{name:"typegpu",discover:()=>{},seek:n=>{t=Math.max(0,Number(n.time)||0),e=t,window.__hfTypegpuTime=t,Ht(t)},pause:()=>{t==null&&(t=Math.max(0,e))},play:()=>{t=null},revert:()=>{t=null,e=0}}}function Ci(){let t=globalThis.GPUQueue;if(!t?.prototype?.copyExternalImageToTexture)return;let e=t.prototype.copyExternalImageToTexture;t.prototype.copyExternalImageToTexture=function(n,i,r){if(n?.source instanceof HTMLVideoElement){let o=n.source.nextElementSibling;if(o instanceof HTMLImageElement&&o.classList.contains("__render_frame__")&&o.complete&&o.naturalWidth>0)return e.call(this,{...n,source:o},i,r)}return e.call(this,n,i,r)}}function Mi(){let t=!1,e=0,n=new WeakMap,i=()=>{if(!document.getAnimations)return[];try{return document.getAnimations()}catch{return[]}},r=l=>{let a=Number(l.currentTime);return Number.isFinite(a)&&a>0?a:0},o=(l,a)=>a<=0?l:l>=a?Math.max(0,l-a):l,s=(l,a)=>{let c=n.get(l);if(c)return c;let u={compositionTimeMs:a,animationTimeMs:t?o(r(l),a):r(l)};return n.set(l,u),u};return{name:"waapi",discover:()=>{t=!0;for(let l of i())s(l,e)},seek:l=>{let a=Math.max(0,(Number(l.time)||0)*1e3);e=a;for(let c of i()){let u=t?s(c,a):s(c,0),m=u.animationTimeMs+Math.max(0,a-u.compositionTimeMs);try{c.currentTime=m}catch(f){_("runtime.adapters.waapi.site1",f)}try{c.pause()}catch(f){_("runtime.adapters.waapi.site2",f)}}},pause:()=>{if(document.getAnimations)for(let l of document.getAnimations())try{l.pause()}catch(a){_("runtime.adapters.waapi.site3",a)}}}}function Ti(t,e){if(t.length===0)return 1;let n=0;for(;n<t.length-2&&e>=t[n+1].time;)n+=1;let i=t[n],r=t[n+1]??i,o=r.time-i.time,s=o<=0?0:Math.min(1,Math.max(0,(e-i.time)/o));return i.volume+(r.volume-i.volume)*s}function ds(t,e,n,i){let r=Number.parseFloat(t.dataset.start??"0")||0,o=Number.parseFloat(t.dataset.end??""),s=Number.parseFloat(t.dataset.duration??""),l=Number.isFinite(o)&&o>r?o:Number.isFinite(s)&&s>0?r+s:n,a=Number.parseFloat(t.dataset.volume??""),c=Number.isFinite(a)?Math.max(0,Math.min(1,a)):1;t.volume=c;let u=1/Math.min(60,Math.max(1,i)),m=Math.max(0,r),f=Math.min(n,l),x=[];for(let E=m;E<=f+1e-6;E+=u){let S=Math.min(f,E);e(S);let B=Number(t.volume);if(!Number.isFinite(B))continue;let D=Math.max(0,Math.min(1,B)),v=x.at(-1);if((!v||Math.abs(v.volume-D)>1e-4||S===f)&&x.push({time:Number(S.toFixed(6)),volume:Number(D.toFixed(6))}),S===f)break}return x.some(E=>Math.abs(E.volume-c)>1e-4)?x:null}function ki(t,e,n,i){if(!e||!(t instanceof HTMLAudioElement)&&!(t instanceof HTMLVideoElement)||n<=0)return;let o=ds(t,s=>{try{typeof e.totalTime=="function"?e.totalTime(s,!0):typeof e.seek=="function"&&e.seek(s,!0)}catch{}},n,60);o&&i.set(t,o)}function vi(t){let e=Array.from(document.querySelectorAll("video, audio")),n=t?.shouldIncludeElement?e.filter(s=>t.shouldIncludeElement?.(s)):e.filter(s=>s.hasAttribute("data-start")),i=[],r=[],o=0;for(let s of n){let l=t?.resolveStartSeconds?t.resolveStartSeconds(s):Number.parseFloat(s.dataset.start??"0");if(!Number.isFinite(l))continue;let a=Number.parseFloat(s.dataset.playbackStart??s.dataset.mediaStart??"0")||0,c=s.defaultPlaybackRate,u=Number.isFinite(c)&&c>0?Math.max(.1,Math.min(5,c)):1,m=s.loop,f=Number.isFinite(s.duration)&&s.duration>0?s.duration:null,x=t?.resolveDurationSeconds?.(s)??Number.parseFloat(s.dataset.duration??"");(!Number.isFinite(x)||x<=0)&&f!=null&&(x=Math.max(0,(f-a)/u));let F=Number.isFinite(x)&&x>0?l+x:Number.POSITIVE_INFINITY,E=Number.parseFloat(s.dataset.volume??""),S={el:s,start:l,mediaStart:a,duration:Number.isFinite(x)&&x>0?x:Number.POSITIVE_INFINITY,end:F,volume:Number.isFinite(E)?E:null,playbackRate:u,loop:m,sourceDuration:f};i.push(S),s.tagName==="VIDEO"&&r.push(S),Number.isFinite(F)&&(o=Math.max(o,F))}return{timedMediaEls:n,mediaClips:i,videoClips:r,maxMediaEnd:o}}var yn=new WeakMap,ft=new WeakMap,Sn=new WeakSet,et=new WeakSet;function fs(t){if(et.has(t))return;et.add(t);let e=()=>et.delete(t);t.addEventListener("playing",e,{once:!0}),t.addEventListener("pause",e,{once:!0}),t.addEventListener("error",e,{once:!0})}var bn=new WeakMap;function mt(t){return Number.isFinite(t)?Math.max(0,Math.min(1,t)):1}function _i(t){let e=!!(t.outputMuted||t.userMuted);for(let n of t.clips){let{el:i}=n;if(!i.isConnected)continue;let r=(t.timeSeconds-n.start)*n.playbackRate+n.mediaStart;if(t.timeSeconds>=n.start&&t.timeSeconds<n.end&&r>=0){if(n.loop&&n.sourceDuration!=null&&n.sourceDuration>0){let w=n.sourceDuration-n.mediaStart;w>0&&r>=n.sourceDuration&&(r=n.mediaStart+(r-n.mediaStart)%w)}let s=mt(t.userVolume??1),l=mt(n.volume??1),a=bn.get(i),c=mt(i.volume),u;n.volumeKeyframes&&n.volumeKeyframes.length>0?u=mt(Ti(n.volumeKeyframes,r)):a===void 0||Math.abs(c-a)>1e-4?u=c:u=l;let m=mt(u*s);i.volume=m,bn.set(i,m),t.onElementVolume?.(i,m),e&&(i.muted=!0),i.preload!=="auto"&&(i.preload="auto");try{i.playbackRate=n.playbackRate*t.playbackRate}catch(w){_("runtime.media.site1",w)}let f=.04,x=2,F=i.currentTime||0,E=Math.abs(F-r),S=r-F,B=yn.get(i);yn.set(i,S);let D=B===void 0,v=!D&&Math.abs(S-B)>.5,X=E>3,q=E>.5&&(D||v||X),N=i.tagName==="VIDEO"&&!i.paused,g=B!==void 0&&Math.abs(S-B)<.004,A=!1;if(!N&&!q&&!D&&g&&E>f){let w=(ft.get(i)??0)+1;ft.set(i,w),w>=x&&(A=!0,ft.set(i,0))}else E<=f&&ft.set(i,0);let C=!N&&t.forceSync&&E>.02;if(q||A||C){try{i.currentTime=r}catch(w){_("runtime.media.site2",w)}if(Math.abs(i.currentTime-r)>.5&&!Sn.has(i)){Sn.add(i),i.load();try{i.currentTime=r}catch(w){_("runtime.media.site3",w)}}et.delete(i)}t.playing&&i.paused&&!et.has(i)?(fs(i),i.play().catch(w=>{et.delete(i),(w&&typeof w=="object"&&"name"in w?String(w.name??""):"")==="NotAllowedError"&&t.onAutoplayBlocked?.()})):!t.playing&&!i.paused&&i.pause();continue}yn.delete(i),ft.delete(i),Sn.delete(i),bn.delete(i),i.paused||i.pause()}}var ms=["[data-hyperframes-ignore]","[data-hyperframes-picker-ignore]","[data-hf-ignore]","[data-no-inspect]","[data-no-pick]","[data-hyper-shader-loading]"].join(","),ps=["[data-hyperframes-picker-block]","[data-hyper-shader-loading]"].join(",");function Ri(t){let e=!1,n=null,i=null,r=null,o=null;function s(g,A){try{window.dispatchEvent(new CustomEvent(g,{detail:A}))}catch(C){_("runtime.picker.site1",C)}}function l(g){r=g,s("hyperframe:picker:hovered",{elementInfo:r,isPickMode:e,timestamp:Date.now()})}function a(g){o=g,s("hyperframe:picker:selected",{elementInfo:o,isPickMode:e,timestamp:Date.now()})}function c(g){let A=g.ownerDocument.defaultView;if(!A)return!1;let C=g;for(;C&&C!==document.body&&C!==document.documentElement;){let w=A.getComputedStyle(C);if(w.display==="none"||w.visibility==="hidden"||w.pointerEvents==="none")return!0;let T=Number.parseFloat(w.opacity);if(Number.isFinite(T)&&T<=.01)return!0;C=C.parentElement}return!1}function u(g){if(!g||g===document.body||g===document.documentElement)return!1;let A=g.tagName.toLowerCase();return!(A==="script"||A==="style"||A==="link"||A==="meta"||g.classList.contains("__hf-pick-highlight")||g.closest(ms)||c(g))}function m(g){return!!g?.closest(ps)}function f(g){let A=g;if(A.id)return`#${A.id}`;let C=g.getAttribute("data-composition-id");if(C)return`[data-composition-id="${C}"]`;let w=g.getAttribute("data-composition-src");if(w)return`[data-composition-src="${w}"]`;let T=g.getAttribute("data-track-index");if(T)return`[data-track-index="${T}"]`;let L=g.tagName.toLowerCase(),P=g.parentElement;if(!P)return L;let J=P.querySelectorAll(`:scope > ${L}`);if(J.length===1)return L;for(let R=0;R<J.length;R+=1)if(J[R]===g)return`${L}:nth-of-type(${R+1})`;return L}function x(g){let A=g.tagName.toLowerCase(),C=(g.textContent??"").trim().replace(/\\s+/g," "),w=(T,L)=>T.length>L?`${T.slice(0,L-1)}\\u2026`:T;return A==="h1"||A==="h2"||A==="h3"?"Heading":A==="p"||A==="span"||A==="div"?C.length>0?w(C,56):"Text":A==="img"?"Image":A==="video"?"Video":A==="audio"?"Audio":A==="svg"?"Shape":g.getAttribute("data-composition-src")?"Composition":A==="section"?"Section":`${A.charAt(0).toUpperCase()}${A.slice(1)}`}function F(g,A,C){let w=typeof C=="number"&&C>0?C:8,T=[];if(document.elementsFromPoint)T=document.elementsFromPoint(g,A);else if(document.elementFromPoint){let J=document.elementFromPoint(g,A);T=J?[J]:[]}if(m(T[0]??null))return[];let L={},P=[];for(let J=0;J<T.length;J+=1){let R=T[J];if(!u(R))continue;let le=`${R.tagName}::${R.id||""}::${J}`;if(!L[le]&&(L[le]=!0,P.push(R),P.length>=w))break}return P}function E(g){let A=g.getBoundingClientRect(),C={};for(let T=0;T<g.attributes.length;T+=1){let L=g.attributes[T];L.name.startsWith("data-")&&(C[L.name]=L.value)}return{id:g.id||null,tagName:g.tagName.toLowerCase(),selector:f(g),label:x(g),boundingBox:{x:A.left,y:A.top,width:A.width,height:A.height},textContent:g.textContent?g.textContent.trim().slice(0,200):null,src:g.getAttribute("src")||g.getAttribute("data-composition-src")||null,dataAttributes:C}}function S(g,A,C){return F(g,A,C).map(E)}function B(g){if(!e)return;let C=F(g.clientX,g.clientY,1)[0]??(g.target instanceof Element?g.target:null);if(!u(C)||n===C)return;n&&n.classList.remove("__hf-pick-highlight"),n=C,C.classList.add("__hf-pick-highlight");let w=E(C);l(w),t.postMessage({source:"hf-preview",type:"element-hovered",elementInfo:w})}function D(g){if(!e)return;g.preventDefault(),g.stopPropagation(),g.stopImmediatePropagation();let A=S(g.clientX,g.clientY,8);A.length!==0&&(l(A[0]??null),t.postMessage({source:"hf-preview",type:"element-pick-candidates",candidates:A,selectedIndex:0,point:{x:g.clientX,y:g.clientY}}))}function v(g){g.key==="Escape"&&(q(),t.postMessage({source:"hf-preview",type:"pick-mode-cancelled"}))}function X(){e||(e=!0,i=document.createElement("style"),i.textContent=[".__hf-pick-highlight { outline: 2px solid #4f8cf7 !important; outline-offset: 2px; cursor: crosshair !important; }",".__hf-pick-active * { cursor: crosshair !important; }"].join(`\n`),document.head.appendChild(i),document.body.classList.add("__hf-pick-active"),document.addEventListener("mousemove",B,!0),document.addEventListener("click",D,!0),document.addEventListener("keydown",v,!0),s("hyperframe:picker:mode",{isPickMode:!0,timestamp:Date.now()}))}function q(){e&&(e=!1,n&&(n.classList.remove("__hf-pick-highlight"),n=null),i&&(i.remove(),i=null),document.body.classList.remove("__hf-pick-active"),document.removeEventListener("mousemove",B,!0),document.removeEventListener("click",D,!0),document.removeEventListener("keydown",v,!0),s("hyperframe:picker:mode",{isPickMode:!1,timestamp:Date.now()}))}function N(){window.__HF_PICKER_API={enable:X,disable:q,isActive:()=>e,getHovered:()=>r,getSelected:()=>o,getCandidatesAtPoint:(g,A,C)=>Number.isFinite(g)&&Number.isFinite(A)?S(g,A,C):[],pickAtPoint:(g,A,C)=>{if(!Number.isFinite(g)||!Number.isFinite(A))return null;let w=S(g,A,8);if(!w.length)return null;let T=Math.max(0,Math.min(w.length-1,Number(C??0))),L=w[T]??null;return L?(a(L),t.postMessage({source:"hf-preview",type:"element-picked",elementInfo:L}),q(),L):null},pickManyAtPoint:(g,A,C)=>{if(!Number.isFinite(g)||!Number.isFinite(A))return[];let w=S(g,A,8);if(!w.length)return[];let T=[],L=Array.isArray(C)?C:[0];for(let P of L){let J=Math.max(0,Math.min(w.length-1,Math.floor(Number(P)))),R=w[J];if(!R)continue;T.some(Se=>Se.selector===R.selector&&Se.tagName===R.tagName)||T.push(R)}return T.length?(a(T[0]??null),t.postMessage({source:"hf-preview",type:"element-picked-many",elementInfos:T}),q(),T):[]}},s("hyperframe:picker:api-ready",{hasApi:!0,timestamp:Date.now()})}return{enablePickMode:X,disablePickMode:q,installPickerApi:N}}function tt(t,e){let n=Number.isFinite(e)&&e>0?e:30,i=Number.isFinite(t)&&t>0?t:0;return Math.floor(i*n+1e-9)/n}function pt(t,e,n){let i=t?.[e];return typeof i=="function"?Number(i.call(t))||n:typeof i=="number"&&Number.isFinite(i)?i:(i!=null&&_("runtime.player.nonConformantNum",{prop:e,actual:typeof i}),n)}function ve(t,e){let n=t?.[e];if(typeof n=="function"){n.call(t);return}n!==void 0&&_("runtime.player.nonConformantVoid",{method:e,actual:typeof n})}function ht(t,e,n){if(t){for(let i of Object.values(t))if(!(!i||i===e))try{n(i)}catch(r){_("runtime.player.site1",r)}}}function Li(t,e,n){let i=tt(e,n);return ve(t,"pause"),typeof t.totalTime=="function"?t.totalTime(i,!1):typeof t.seek=="function"&&t.seek(i,!1),i}function hs(t,e,n,i){let r=[];ht(t,e,o=>{ve(o,"play"),r.push(o)});try{return Li(e,n,i)}finally{for(let o of r)try{ve(o,"pause")}catch(s){_("runtime.player.site2",s)}}}function xs(t,e){ht(t,e,n=>{ve(n,"play")})}function Di(t){return{_timeline:null,play:()=>{let e=t.getTimeline();if(!e||t.getIsPlaying())return;let n=Math.max(0,Number(t.getSafeDuration?.()??pt(e,"duration",0))||0);n>0&&Math.max(0,pt(e,"time",0))>=n&&(ve(e,"pause"),typeof e.seek=="function"&&e.seek(0,!1),t.onDeterministicSeek(0),t.setIsPlaying(!1),t.onSyncMedia(0,!1),t.onRenderFrameSeek(0)),typeof e.timeScale=="function"&&e.timeScale(t.getPlaybackRate()),ve(e,"play"),ht(t.getTimelineRegistry?.(),e,i=>{typeof i.timeScale=="function"&&i.timeScale(t.getPlaybackRate()),ve(i,"play")}),t.onDeterministicPlay(),t.setIsPlaying(!0),t.onShowNativeVideos(),t.onStatePost(!0)},pause:()=>{let e=t.getTimeline();if(!e)return;ve(e,"pause"),ht(t.getTimelineRegistry?.(),e,i=>{ve(i,"pause")});let n=Math.max(0,pt(e,"time",0));t.onDeterministicSeek(n),t.onDeterministicPause(),t.setIsPlaying(!1),t.onSyncMedia(n,!1),t.onRenderFrameSeek(n),t.onStatePost(!0)},seek:(e,n)=>{let i=t.getTimeline();if(!i)return;let r=Math.max(0,Number(e)||0),o=t.getIsPlaying(),s=hs(t.getTimelineRegistry?.(),i,r,t.getCanonicalFps());t.onDeterministicSeek(s),n?.keepPlaying&&o?(typeof i.timeScale=="function"&&i.timeScale(t.getPlaybackRate()),ve(i,"play"),ht(t.getTimelineRegistry?.(),i,l=>{typeof l.timeScale=="function"&&l.timeScale(t.getPlaybackRate()),ve(l,"play")}),t.onDeterministicPlay(),t.onShowNativeVideos(),t.onSyncMedia(s,!0)):(t.setIsPlaying(!1),t.onSyncMedia(s,!1)),t.onRenderFrameSeek(s),t.onStatePost(!0)},renderSeek:e=>{let n=t.getTimeline(),i=t.getCanonicalFps(),r=n?(xs(t.getTimelineRegistry?.(),n),Li(n,e,i)):tt(Math.max(0,Number(e)||0),i);t.onDeterministicSeek(r),t.setIsPlaying(!1),t.onSyncMedia(r,!1),t.onRenderFrameSeek(r),t.onStatePost(!0)},getTime:()=>pt(t.getTimeline(),"time",0),getDuration:()=>pt(t.getTimeline(),"duration",0),isPlaying:()=>t.getIsPlaying(),setPlaybackRate:e=>t.setPlaybackRate(e),getPlaybackRate:()=>t.getPlaybackRate()}}function Bi(){return{capturedTimeline:null,isPlaying:!1,rafId:null,currentTime:0,deterministicAdapters:[],parityModeEnabled:!0,canonicalFps:30,bridgeMuted:!1,bridgeVolume:1,mediaOutputMuted:!1,mediaAutoplayBlockedPosted:!1,mediaForceSyncNextTick:!1,playbackRate:1,bridgeLastPostedFrame:-1,bridgeLastPostedAt:0,bridgeLastPostedPlaying:!1,bridgeLastPostedMuted:!1,bridgeMaxPostIntervalMs:80,controlBridgeHandler:null,clampDurationLoggedRaw:null,beforeUnloadHandler:null,domReadyHandler:null,injectedCompStyles:[],injectedCompScripts:[],cachedTimedMediaEls:[],cachedMediaClips:[],cachedVideoClips:[],cachedMediaTimelineDurationSeconds:0,tornDown:!1,nativeVisualWatchdogTick:0,transportClock:null,transportRafId:null}}var gs="data-hf-authored-duration",ys="data-hf-authored-end";function Qe(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}function Ss(t){return Qe(t.getAttribute("data-duration"))}function bs(t){return Qe(t.getAttribute("data-end"))}function As(t){return Qe(t.getAttribute(gs))}function Es(t){return Qe(t.getAttribute(ys))}function Fs(t){let e=(t??"").trim();if(!e)return null;let n=Qe(e);if(n!=null)return{kind:"absolute",value:n};let i=e.match(/^([A-Za-z0-9_.:-]+)(?:\\s*([+-])\\s*([0-9]*\\.?[0-9]+))?$/);if(!i)return null;let r=(i[1]??"").trim();if(!r)return null;let o=i[2]??"+",s=i[3]??"0",l=Number.parseFloat(s),a=Number.isFinite(l)?Math.max(0,l):0,c=o==="-"?-a:a;return{kind:"reference",refId:r,offset:c}}function Ye(t){let e=t.timelineRegistry??{},n=t.includeAuthoredTimingAttrs??!1,i=new WeakMap,r=new WeakMap,o=new Set,s=u=>{let m=document.getElementById(u);return m||(document.querySelector(`[data-composition-id="${CSS.escape(u)}"]`)??null)},l=u=>{let m=r.get(u);if(m!==void 0)return m;let f=null,x=Ss(u)??(n?As(u):null);if(x!=null&&x>0&&(f=x),f==null||f<=0){let F=bs(u)??(n?Es(u):null);if(F!=null){let E=c(u,0),S=F-E;Number.isFinite(S)&&S>0&&(f=S)}}if((f==null||f<=0)&&u instanceof HTMLMediaElement){let F=Qe(u.getAttribute("data-playback-start"))??Qe(u.getAttribute("data-media-start"))??0;Number.isFinite(u.duration)&&u.duration>F&&(f=u.duration-F)}if(f==null||f<=0){let F=u.getAttribute("data-composition-id");if(F){let E=e[F]??null;if(E&&typeof E.duration=="function")try{let S=Number(E.duration());Number.isFinite(S)&&S>0&&(f=S)}catch(S){_("runtime.startResolver.site1",S)}}}return f!=null&&Number.isFinite(f)&&f>0?(r.set(u,f),f):(r.set(u,null),null)},a=(u,m)=>{if(u.hasAttribute("data-composition-id")){let x=u.parentElement?.closest("[data-composition-id]");return x?c(x,m):0}let f=u.closest("[data-composition-id]");return f?c(f,m):0},c=(u,m)=>{let f=i.get(u);if(f!==void 0)return f??m;if(o.has(u))return m;o.add(u);try{let x=Fs(u.getAttribute("data-start"));if(!x){if(u.hasAttribute("data-composition-id")){let D=u.parentElement;if(D&&(D.hasAttribute("data-composition-src")||D.hasAttribute("data-composition-id"))){let v=c(D,m);return i.set(u,v),v}}return i.set(u,m),m}if(x.kind==="absolute"){let D=Math.max(0,x.value),v=Math.max(0,a(u,m)+D);return i.set(u,v),v}let F=s(x.refId);if(!F)return i.set(u,m),m;let E=c(F,0),S=l(F);if(S==null||S<=0){let D=Math.max(0,E+x.offset);return i.set(u,D),D}let B=Math.max(0,E+S+x.offset);return i.set(u,B),B}finally{o.delete(u)}};return{resolveStartForElement:(u,m=0)=>c(u,Math.max(0,m)),resolveDurationForElement:u=>l(u)}}var ws="data-hf-authored-duration",Ns="data-hf-authored-end";function Ee(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}function An(t){return Ee(t.getAttribute("data-duration"))??Ee(t.getAttribute(ws))}function Ii(t){return Ee(t.getAttribute("data-end"))??Ee(t.getAttribute(Ns))}function En(...t){let e=t.filter(n=>Number.isFinite(n??null));return e.length===0?null:Math.max(...e)}var Oi={composition:0,video:1,image:2,element:3,audio:4};function Cs(t){if(t.length===0)return;let e=new Map;for(let s of t){let l=e.get(s.track)??new Set;l.add(s.kind),e.set(s.track,l)}if(!Array.from(e.values()).some(s=>s.size>1))return;let i=0,r=new Map,o=[...e.keys()].sort((s,l)=>s-l);for(let s of o){let l=e.get(s);if(l.size===1)r.set(`${s}:${[...l][0]}`,i++);else{let a=[...l].sort((c,u)=>(Oi[c]??99)-(Oi[u]??99));for(let c of a)r.set(`${s}:${c}`,i++)}}for(let s of t){let l=`${s.track}:${s.kind}`,a=r.get(l);a!=null&&(s.track=a)}}function gt(t){let e=String(t??"").trim();if(!e)return null;let n=e.toLowerCase();if(n.startsWith("data:")||n.startsWith("javascript:"))return null;try{return new URL(e,document.baseURI).toString()}catch{return e}}function Pi(t){let e=t.getAttribute("src")??t.getAttribute("data-src");if(e)return gt(e);let n=t.getAttribute("data-composition-src");if(n)return gt(n);let i=t.querySelector("img[src], video[src], audio[src], source[src]");return i?gt(i.getAttribute("src")):null}function Ms(t){let e=t.className;return typeof e!="string"?null:e.split(/\\s+/).map(n=>n.trim()).find(n=>n&&n!=="clip"&&!n.startsWith("__hf-"))??null}function Ts(t){if(!t)return null;try{return new URL(t,document.baseURI).pathname.split("/").filter(Boolean).at(-1)??null}catch{return t.split(/[\\\\/]/).filter(Boolean).at(-1)??null}}function ks(t){let e=t.textContent?.replace(/\\s+/g," ").trim();return e?e.length>32?`${e.slice(0,31)}...`:e:null}function xt(t){let e=t.replace(/\\.[^.]+$/i,"").replace(/[-_]+/g," ").replace(/\\s+/g," ").trim();return e?e.replace(/\\b\\w/g,n=>n.toUpperCase()):t}function vs(t,e,n){let i=t.getAttribute("data-timeline-label")??t.getAttribute("data-label")??t.getAttribute("aria-label")??null;if(i?.trim())return i.trim();let r=t.getAttribute("data-composition-id");if(r)return xt(r);let o=t.id;if(o)return xt(o);let s=Ms(t);if(s)return xt(s);let l=Ts(Pi(t));if(l)return xt(l);let a=ks(t);return a||`${xt(e)} ${n+1}`}function Wi(t){let n=window.__timelines??{},i=Ye({timelineRegistry:n,includeAuthoredTimingAttrs:!0}),r=H=>{if(!H)return null;let k=n[H]??null;if(!k||typeof k.duration!="function")return null;try{let O=Number(k.duration());return Number.isFinite(O)&&O>0?O:null}catch{return null}},o=H=>{let k=Ee(H.getAttribute("data-duration"));if(k!=null&&k>0)return k;let O=Ee(H.getAttribute("data-playback-start"))??Ee(H.getAttribute("data-media-start"))??0;return Number.isFinite(H.duration)&&H.duration>O?Math.max(0,H.duration-O):null},s=()=>{let H=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(H.length===0)return null;let k=0;for(let O of H){let ne=O.hasAttribute("data-hf-auto-start")?i.resolveStartForElement(O,0):Math.max(0,Number(O.getAttribute("data-start")??0)||0);if(!Number.isFinite(ne))continue;let ee=o(O);ee==null||ee<=0||(k=Math.max(k,Math.max(0,ne)+ee))}return k>0?k:null},l=H=>{let k=H.trim().toLowerCase();return!(!k||k==="main"||k.includes("caption")||k.includes("ambient"))},a=(H,k)=>{let O=[],ne=null,ee=null,z=null,V=H.parentElement;for(;V;){let j=V.getAttribute("data-composition-id");j&&(O.push(j),!z&&V!==k&&(z=j),ne==null&&(ne=i.resolveStartForElement(V,0)),ee==null&&(ee=Ee(V.getAttribute("data-duration"))??r(j)??null)),V=V.parentElement}return{parentCompositionId:z,compositionAncestors:O.reverse(),inheritedStart:ne,inheritedDuration:ee}},c=document.querySelector("[data-composition-id]"),u=Array.from(document.querySelectorAll("[data-composition-id]")),m=c?.getAttribute("data-composition-id")??null,f=c?i.resolveStartForElement(c,0):0,x=s(),F=x!=null?Math.max(0,x-Math.max(0,f)):null,E=r(m),S=An(c??document.body),B=En(...u.filter(H=>H!==c).map(H=>{let k=i.resolveStartForElement(H,0),O=i.resolveDurationForElement(H)??r(H.getAttribute("data-composition-id"))??null;return!Number.isFinite(k)||O==null||O<=0?null:Math.max(0,k)+O})),D=B!=null?Math.max(0,B-Math.max(0,f)):null,v=typeof E=="number"&&Number.isFinite(E)&&E>0?E:null,X=typeof S=="number"&&Number.isFinite(S)&&S>0?S:null,q=typeof F=="number"&&Number.isFinite(F)&&F>0?F:null,N=typeof D=="number"&&Number.isFinite(D)&&D>0?D:null,g=En(q,N),A=v!=null&&g!=null&&v>g+1,w=X??(A?g:En(v,q,N))??null,L=(w!=null?f+w:null)??(typeof x=="number"&&Number.isFinite(x)&&x>0?x:null),P=(H,k)=>!Number.isFinite(k)||k<=0?0:L==null||!Number.isFinite(L)?k:!Number.isFinite(H)||H>=L?0:Math.max(0,Math.min(k,L-H)),J=[],R=[],le=Array.from(document.querySelectorAll("[data-start], [data-track-index], [data-composition-id], video, audio, img")),Se=0;for(let H=0;H<le.length;H+=1){let k=le[H];if(k===c||["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"].includes(k.tagName))continue;let O=a(k,c),ne=i.resolveStartForElement(k,O.inheritedStart??0),ee=k.getAttribute("data-composition-id"),z=An(k);if((z==null||z<=0)&&ee&&ee!==m&&(z=r(ee)),(z==null||z<=0)&&k instanceof HTMLMediaElement){let we=Ee(k.getAttribute("data-playback-start"))??Ee(k.getAttribute("data-media-start"))??0;Number.isFinite(k.duration)&&k.duration>0&&(z=Math.max(0,k.duration-we))}if(z==null||z<=0){let we=O.inheritedDuration;if(we!=null&&we>0){let Le=(O.inheritedStart??0)+we;z=Math.max(0,Le-ne)}}if(z==null||z<=0||(z=P(ne,z),z<=0))continue;let V=ne+z;Se=Math.max(Se,V);let j=k.tagName.toLowerCase(),Ce=ee&&ee!==m?"composition":j==="video"?"video":j==="audio"?"audio":j==="img"?"image":"element";J.push({id:k.id||ee||null,label:vs(k,Ce,J.length),start:ne,duration:z,track:Number.parseInt(k.getAttribute("data-track-index")??k.getAttribute("data-track")??String(H),10)||0,kind:Ce,tagName:j,compositionId:k.getAttribute("data-composition-id"),compositionAncestors:O.compositionAncestors,parentCompositionId:O.parentCompositionId,nodePath:null,compositionSrc:gt(k.getAttribute("data-composition-src")),assetUrl:Pi(k),timelineRole:k.getAttribute("data-timeline-role"),timelineLabel:k.getAttribute("data-timeline-label"),timelineGroup:k.getAttribute("data-timeline-group"),timelinePriority:Ee(k.getAttribute("data-timeline-priority"))})}let $=new Set(J.map(H=>H.id)),U=c?.getAttribute("data-composition-id")??null,W=U?n[U]??null:null;if(W&&c){let H=W;if(typeof H.getChildren=="function")try{let k=H.getChildren(!0,!0,!1)??[],O=new Map;for(let z of c.children){let V=z;if(!V.id)continue;let j=V.tagName.toLowerCase();j==="script"||j==="style"||j==="link"||O.set(V,{id:V.id,start:1/0,end:-1/0})}let ne=z=>{let V=z;for(;V;){if(O.has(V))return V;if(V===c)return null;V=V.parentElement}return null};for(let z of k){if(typeof z.targets!="function"||typeof z.startTime!="function"||typeof z.duration!="function")continue;let V=z.startTime(),j=z.parent;for(;j&&j!==W&&typeof j.startTime=="function";)V+=j.startTime(),j=j.parent;let Ce=V+z.duration();if(!(!Number.isFinite(V)||!Number.isFinite(Ce)))for(let we of z.targets()){if(!(we instanceof Element))continue;let $e=ne(we);if(!$e)continue;let Le=O.get($e);Le&&(Le.start=Math.min(Le.start,V),Le.end=Math.max(Le.end,Ce))}}let ee=J.length>0?Math.max(...J.map(z=>z.track))+1:0;for(let[z,V]of O){if(V.start===1/0||V.end===-1/0)continue;let j=z;if($.has(j.id))continue;let Ce=Math.max(0,V.end-V.start);if(Ce<=0)continue;let we=P(V.start,Ce);we<=0||(Se=Math.max(Se,V.start+we),J.push({id:j.id,label:j.getAttribute("data-timeline-label")??j.getAttribute("data-label")??j.getAttribute("aria-label")??j.id,start:V.start,duration:we,track:Number.parseInt(j.getAttribute("data-track-index")??j.getAttribute("data-track")??"",10)||ee,kind:"element",tagName:j.tagName.toLowerCase(),compositionId:j.getAttribute("data-composition-id"),compositionAncestors:U?[U]:[],parentCompositionId:U,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:j.getAttribute("data-timeline-role"),timelineLabel:j.getAttribute("data-timeline-label"),timelineGroup:j.getAttribute("data-timeline-group"),timelinePriority:Ee(j.getAttribute("data-timeline-priority"))}),$.add(j.id))}}catch(k){_("runtime.timeline.site1",k)}}if(c&&w!=null&&w>0){let H=J.length>0?Math.max(...J.map(k=>k.track))+1:0;for(let k of c.children){let O=k;if(!O.id||$.has(O.id))continue;let ne=O.getAttribute("data-timeline-role");if(ne!=="overlay"&&ne!=="persistent-overlay")continue;let ee=O.tagName.toLowerCase();if(ee==="script"||ee==="style"||ee==="link"||ee==="meta"||window.getComputedStyle(O).display==="none")continue;let V=P(0,w);V<=0||(Se=Math.max(Se,V),J.push({id:O.id,label:O.getAttribute("data-timeline-label")??O.getAttribute("data-label")??O.getAttribute("aria-label")??O.id,start:0,duration:V,track:Number.parseInt(O.getAttribute("data-track-index")??O.getAttribute("data-track")??"",10)||H,kind:"element",tagName:ee,compositionId:O.getAttribute("data-composition-id"),compositionAncestors:U?[U]:[],parentCompositionId:U,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:ne,timelineLabel:O.getAttribute("data-timeline-label"),timelineGroup:O.getAttribute("data-timeline-group"),timelinePriority:Ee(O.getAttribute("data-timeline-priority"))}),$.add(O.id))}}Cs(J);for(let H of u){if(H===c)continue;let k=H.getAttribute("data-composition-id");if(!k||!l(k))continue;let O=i.resolveStartForElement(H,0),ne=An(H);if((ne==null||ne<=0)&&Ii(H)!=null){let j=Ii(H);ne=Math.max(0,j-O)}let ee=r(k),z=ne&&ne>0?ne:ee;if(z==null||z<=0)continue;let V=P(O,z);V<=0||R.push({id:k,label:H.getAttribute("data-label")??k,start:O,duration:V,thumbnailUrl:gt(H.getAttribute("data-thumbnail-url")),avatarName:null})}let Y=Math.max(1,Se||1,w??0);return{source:"hf-preview",type:"timeline",durationInFrames:A&&X==null?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(Y*Math.max(1,t.canonicalFps))),clips:J,scenes:R,compositionWidth:Ee(c?.getAttribute("data-width"))??1920,compositionHeight:Ee(c?.getAttribute("data-height"))??1080}}var ae=us(co(),1),fo=ae.default,Xc=ae.default.stringify,ed=ae.default.fromJSON,td=ae.default.plugin,nd=ae.default.parse,id=ae.default.list,rd=ae.default.document,od=ae.default.comment,sd=ae.default.atRule,ad=ae.default.rule,ld=ae.default.decl,ud=ae.default.root,cd=ae.default.CssSyntaxError,dd=ae.default.Declaration,fd=ae.default.Container,md=ae.default.Processor,pd=ae.default.Document,hd=ae.default.Comment,xd=ae.default.Warning,gd=ae.default.AtRule,yd=ae.default.Result,Sd=ae.default.Input,bd=ae.default.Rule,Ad=ae.default.Root,Ed=ae.default.Node;var Kn="data-hf-authored-id";function Jn(t){return t.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&")}function Qn(t){return t.replace(/\\\\/g,"\\\\\\\\").replace(/"/g,\'\\\\"\')}function Za(t){return t&&t.replace(/[^a-zA-Z0-9_-]/g,n=>`\\\\${n}`).replace(/^-?\\d/,n=>`\\\\${n}`)}function mo(t){let e=t.trim();return e?Array.from(new Set([e,Za(e)])).filter(Boolean):[]}function Xa(t){return!!t&&/[\\w-]/.test(t)}function el(t,e,n){let i=mo(e).sort((l,a)=>a.length-l.length);if(i.length===0)return t;let r="",o=0,s=null;for(let l=0;l<t.length;l+=1){let a=t[l],c=l>0?t[l-1]:"";if(s){r+=a,a===s&&c!=="\\\\"&&(s=null);continue}if(a===\'"\'||a==="\'"){s=a,r+=a;continue}if(a==="["){o+=1,r+=a;continue}if(a==="]"){o=Math.max(0,o-1),r+=a;continue}if(a==="#"&&o===0){let u=i.find(m=>t.startsWith(m,l+1));if(u){let m=t[l+1+u.length];if(!Xa(m)){r+=n,l+=u.length;continue}}}r+=a}return r}function tl(t,e){let n=e?.trim();return n?el(t,n,`[${Kn}="${Qn(n)}"]`):t}function nl(t,e,n,i,r){let o=tl(t,i),s=il(o,e,n),l=s.trim();if(!l||/^(html|body|:root|\\*)$/i.test(l))return t;let a=new RegExp(`\\\\[\\\\s*data-composition-id\\\\s*=\\\\s*(["\'])${Jn(n)}\\\\1\\\\s*\\\\]`,"g");if(a.test(l))return s.replace(a,e);let c=s.match(/^\\s*/)?.[0]??"",u=s.match(/\\s*$/)?.[0]??"";if(r){let m=i?`[${Kn}="${Qn(i)}"]`:null;if(m&&l.startsWith(m)){let f=l.slice(m.length);return`${c}${e}${m}${f}${u}`}}return`${c}${e} ${l}${u}`}function il(t,e,n){let i=Jn(n),r=String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${i}"|\'${i}\')\\s*\\]`,o=String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`;return t.replace(new RegExp(`${r}(?:${o})+`,"g"),e).replace(new RegExp(`(?:${o})+${r}`,"g"),e)}var rl=new Set(["keyframes","-webkit-keyframes","font-face"]);function ol(t){return t?.type==="atrule"}function sl(t){let e=t.parent;for(;e;){if(ol(e)&&rl.has(e.name.toLowerCase()))return!0;e=e.parent}return!1}function Yn(t,e,n,i,r){let o=e.trim();if(!t||!o)return t;let s=n||`[data-composition-id="${Qn(o)}"]`,l=fo.parse(t);return l.walkRules(a=>{sl(a)||(a.selectors=a.selectors.map(c=>nl(c,s,o,i,r?.compoundAuthoredRoot)))}),l.toResult({map:!1}).css}function po(t,e,n="[HyperFrames] composition script error:",i,r=e,o){let s=JSON.stringify(e),l=JSON.stringify(r),a=JSON.stringify(n),c=Jn(e),u=JSON.stringify(o?.trim()||null),m=JSON.stringify(i??null),f=JSON.stringify(String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${c}"|\'${c}\')\\s*\\]`),x=JSON.stringify(String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`),F=JSON.stringify(mo(o?.trim()||""));return`(function(){\n var __hfCompId = ${s};\n var __hfTimelineCompId = ${l};\n var __hfErrorLabel = ${a};\n var __hfAuthoredRootId = ${u};\n var __hfAuthoredRootAttr = ${JSON.stringify(Kn)};\n var __hfEscapeAttr = function(value) {\n return (value + "").replace(/\\\\\\\\/g, "\\\\\\\\\\\\\\\\").replace(/"/g, "\\\\\\\\\\\\"");\n };\n var __hfRootSelector = ${m} || (__hfCompId\n ? \'[data-composition-id="\' + __hfEscapeAttr(__hfCompId) + \'"]\'\n : "");\n var __hfRoot = null;\n var __hfRootSelectorPattern = ${f};\n var __hfTimingSelectorPattern = ${x};\n var __hfAuthoredRootIdForms = ${F};\n var __hfAuthoredRootSelector = __hfAuthoredRootId\n ? "[" + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(__hfAuthoredRootId) + \'"]\'\n : "";\n var __hfIsSelectorNameChar = function(char) {\n return !!char && /[\\\\w-]/.test(char);\n };\n var __hfReplaceAuthoredRootIdSelectors = function(selector) {\n if (!__hfAuthoredRootSelector || !__hfAuthoredRootIdForms.length || typeof selector !== "string") {\n return selector;\n }\n var result = "";\n var bracketDepth = 0;\n var quote = null;\n for (var index = 0; index < selector.length; index += 1) {\n var char = selector[index];\n var previousChar = index > 0 ? selector[index - 1] : "";\n if (quote) {\n result += char;\n if (char === quote && previousChar !== "\\\\\\\\") {\n quote = null;\n }\n continue;\n }\n if (char === \'"\' || char === "\'") {\n quote = char;\n result += char;\n continue;\n }\n if (char === "[") {\n bracketDepth += 1;\n result += char;\n continue;\n }\n if (char === "]") {\n bracketDepth = Math.max(0, bracketDepth - 1);\n result += char;\n continue;\n }\n if (char === "#" && bracketDepth === 0) {\n var matchedForm = null;\n for (var formIndex = 0; formIndex < __hfAuthoredRootIdForms.length; formIndex += 1) {\n var form = __hfAuthoredRootIdForms[formIndex];\n if (selector.slice(index + 1, index + 1 + form.length) === form) {\n matchedForm = form;\n break;\n }\n }\n if (matchedForm) {\n var nextChar = selector[index + 1 + matchedForm.length];\n if (!__hfIsSelectorNameChar(nextChar)) {\n result += __hfAuthoredRootSelector;\n index += matchedForm.length;\n continue;\n }\n }\n }\n result += char;\n }\n return result;\n };\n var __hfNormalizeSelector = function(selector) {\n if (!__hfCompId || typeof selector !== "string") return selector;\n var normalized = selector\n .replace(new RegExp(__hfRootSelectorPattern + \'(?:\' + __hfTimingSelectorPattern + \')+\', \'g\'), __hfRootSelector)\n .replace(new RegExp(\'(?:\' + __hfTimingSelectorPattern + \')+\' + __hfRootSelectorPattern, \'g\'), __hfRootSelector);\n if (__hfAuthoredRootSelector) {\n normalized = __hfReplaceAuthoredRootIdSelectors(normalized);\n }\n return normalized;\n };\n var __hfFindRoot = function() {\n if (!__hfRoot && __hfRootSelector) {\n __hfRoot = window.document.querySelector(__hfRootSelector);\n }\n return __hfRoot;\n };\n var __hfContains = function(node) {\n var root = __hfFindRoot();\n return !root || node === root || root.contains(node);\n };\n var __hfQueryAll = function(selector) {\n var root = __hfFindRoot();\n if (!root || typeof selector !== "string") {\n return window.document.querySelectorAll(selector);\n }\n return Array.prototype.filter.call(window.document.querySelectorAll(__hfNormalizeSelector(selector)), function(node) {\n return __hfContains(node);\n });\n };\n var __hfQueryOne = function(selector) {\n var matches = __hfQueryAll(selector);\n return matches[0] || null;\n };\n var __hfGetElementById = function(id) {\n var found = window.document.getElementById(id);\n if (found && __hfContains(found)) return found;\n var root = __hfFindRoot();\n if (!root) return found || null;\n var idValue = id + "";\n if (__hfAuthoredRootId && __hfAuthoredRootId === idValue && root.getAttribute && root.getAttribute(__hfAuthoredRootAttr) === idValue) {\n return root;\n }\n if (root.id === idValue) return root;\n if (typeof root.querySelector !== "function") return null;\n try {\n var authoredRootMatch = root.querySelector(\'[\' + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(idValue) + \'"]\');\n if (authoredRootMatch) return authoredRootMatch;\n } catch {}\n if (typeof CSS !== "undefined" && CSS && typeof CSS.escape === "function") {\n try {\n return root.querySelector("#" + CSS.escape(idValue)) || null;\n } catch {}\n }\n try {\n return root.querySelector(\'[id="\' + __hfEscapeAttr(idValue) + \'"]\') || null;\n } catch {}\n return null;\n };\n var __hfScopedDocument = typeof Proxy === "function"\n ? new Proxy(window.document, {\n get: function(target, prop, receiver) {\n if (prop === "querySelector") return __hfQueryOne;\n if (prop === "querySelectorAll") return __hfQueryAll;\n if (prop === "getElementById") return __hfGetElementById;\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n })\n : window.document;\n var __hfTimelineRegistryProxy = null;\n var __hfGetTimelineRegistry = function() {\n window.__timelines = window.__timelines || {};\n if (!__hfCompId || __hfCompId === __hfTimelineCompId || typeof Proxy !== "function") {\n return window.__timelines;\n }\n if (!__hfTimelineRegistryProxy) {\n __hfTimelineRegistryProxy = new Proxy(window.__timelines, {\n get: function(target, prop, receiver) {\n return Reflect.get(target, prop === __hfCompId ? __hfTimelineCompId : prop, target);\n },\n set: function(target, prop, value, receiver) {\n return Reflect.set(target, prop === __hfCompId ? __hfTimelineCompId : prop, value, target);\n },\n });\n }\n return __hfTimelineRegistryProxy;\n };\n var __hfScopedWindow = typeof Proxy === "function"\n ? new Proxy(window, {\n get: function(target, prop, receiver) {\n if (prop === "__timelines") return __hfGetTimelineRegistry();\n return Reflect.get(target, prop, target);\n },\n set: function(target, prop, value, receiver) {\n if (prop === "__timelines") {\n target.__timelines = value || {};\n __hfTimelineRegistryProxy = null;\n return true;\n }\n return Reflect.set(target, prop, value, target);\n },\n })\n : window;\n var __hfResolveGsapTarget = function(target) {\n if (typeof target !== "string") return target;\n return __hfQueryAll(target);\n };\n var __hfScopeTimeline = function(timeline) {\n if (!timeline || timeline.__hfScopedCompositionRoot === __hfFindRoot()) return timeline;\n ["to", "from", "fromTo", "set"].forEach(function(method) {\n var original = timeline[method];\n if (typeof original !== "function") return;\n timeline[method] = function(target) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(target);\n return original.apply(timeline, args);\n };\n });\n try {\n Object.defineProperty(timeline, "__hfScopedCompositionRoot", {\n value: __hfFindRoot(),\n configurable: true,\n });\n } catch {\n // Best-effort: timelines coming from user code may have a frozen target\n // or a non-extensible defineProperty path. Swallow \\u2014 the scoped root\n // is an enrichment, not a correctness invariant for playback.\n }\n return timeline;\n };\n var __hfBaseGsap = typeof gsap === "undefined" ? window.gsap : gsap;\n var __hfScopedGsap = !__hfBaseGsap || typeof Proxy !== "function"\n ? __hfBaseGsap\n : new Proxy(__hfBaseGsap, {\n get: function(target, prop, receiver) {\n if (prop === "timeline") {\n return function() {\n return __hfScopeTimeline(target.timeline.apply(target, arguments));\n };\n }\n if (prop === "to" || prop === "from" || prop === "fromTo" || prop === "set") {\n return function(firstArg) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(firstArg);\n return target[prop].apply(target, args);\n };\n }\n if (prop === "utils" && target.utils && typeof Proxy === "function") {\n return new Proxy(target.utils, {\n get: function(utilsTarget, utilsProp, utilsReceiver) {\n if (utilsProp === "toArray") {\n return function(firstArg) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(firstArg);\n return utilsTarget.toArray.apply(utilsTarget, args);\n };\n }\n if (utilsProp === "selector") {\n return function(base) {\n var baseEl = typeof base === "string" ? __hfQueryOne(base) : base;\n var root = baseEl || __hfFindRoot();\n return function(selector) {\n if (!root || typeof selector !== "string") return [];\n return Array.prototype.filter.call(\n window.document.querySelectorAll(__hfNormalizeSelector(selector)),\n function(node) {\n return node === root || (typeof root.contains === "function" && root.contains(node));\n },\n );\n };\n };\n }\n var value = Reflect.get(utilsTarget, utilsProp, utilsTarget);\n return typeof value === "function" ? value.bind(utilsTarget) : value;\n },\n });\n }\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n });\n var __hfBaseHyperframes = window.__hyperframes;\n var __hfScopedHyperframes = !__hfBaseHyperframes\n ? __hfBaseHyperframes\n : Object.assign({}, __hfBaseHyperframes, {\n getVariables: function() {\n var byComp = window.__hfVariablesByComp;\n var scoped = byComp && __hfTimelineCompId ? byComp[__hfTimelineCompId] : null;\n return scoped ? Object.assign({}, scoped) : {};\n },\n });\n var __hfRun = function() {\n try {\n (function(document, gsap, window, __hyperframes) {\n${t.replace(/<\\/(script)/gi,"<\\\\/$1")}\n }).call(window, __hfScopedDocument, __hfScopedGsap, __hfScopedWindow, __hfScopedHyperframes);\n } catch (_err) {\n console.error(__hfErrorLabel, __hfCompId, _err);\n }\n };\n __hfFindRoot();\n __hfRun();\n})();`}function ho(){if(typeof document>"u")return{};let t=Zn(document.documentElement),e=al();return{...t,...e}}function Zn(t){if(!t)return{};let e=t.getAttribute("data-composition-variables");if(!e)return{};let n;try{n=JSON.parse(e)}catch{return{}}if(!Array.isArray(n))return{};let i={};for(let r of n){if(!r||typeof r!="object")continue;let o=r;typeof o.id!="string"||!("default"in o)||(i[o.id]=o.default)}return i}function al(){if(typeof window>"u")return{};let t=window.__hfVariables;return!t||typeof t!="object"||Array.isArray(t)?{}:t}var ll=8e3,ul=/^(?![a-zA-Z][a-zA-Z\\d+\\-.]*:)(?!\\/\\/)(?!\\/)(?!\\.\\.?\\/).+/;function cl(t,e){return`${t}__hf${e}`}var dl=t=>new Promise(e=>{let n=!1,i=Date.now(),r=null,o=s=>{n||(n=!0,r!=null&&window.clearTimeout(r),e({status:s,elapsedMs:Math.max(0,Date.now()-i)}))};t.addEventListener("load",()=>o("load"),{once:!0}),t.addEventListener("error",()=>o("error"),{once:!0}),r=window.setTimeout(()=>o("timeout"),ll)});function Xn(t){for(;t.firstChild;)t.removeChild(t.firstChild);t.textContent=""}var fl=["data-composition-id","data-composition-file","data-start","data-duration","data-end","data-track-index","data-track","data-composition-src","data-hf-authored-duration","data-hf-authored-end"];function ml(t){let e=document.importNode(t,!0),n=e.getAttribute("id")?.trim();for(let o of fl)e.removeAttribute(o);n&&(e.removeAttribute("id"),e.setAttribute("data-hf-authored-id",n)),e.setAttribute("data-hf-inner-root","true");let i=e.getAttribute("data-width"),r=e.getAttribute("data-height");return e.style.width=i?`${i}px`:"100%",e.style.height=r?`${r}px`:"100%",e}function xo(t,e){let n=t.trim();if(!n)return t;try{return ul.test(n)?new URL(n,document.baseURI).toString():e?new URL(n,e).toString():new URL(n,document.baseURI).toString()}catch{return t}}function pl(t){let e=t.getAttribute("data-variable-values");if(!e)return{};let n;try{n=JSON.parse(e)}catch{return{}}return!n||typeof n!="object"||Array.isArray(n)?{}:n}function nn(t){let e=(t.getAttribute("data-composition-id")||"").trim()||null;return{authoredCompositionId:(t.getAttribute("data-hf-original-composition-id")||e||"").trim()||null,runtimeCompositionId:e}}function hl(t){let e=new Map;for(let n of t){let i=nn(n).authoredCompositionId||"";i&&e.set(i,(e.get(i)||0)+1)}return e}function go(t){let e=nn(t).authoredCompositionId;return e?!!document.querySelector(`template#${CSS.escape(e)}-template`):!1}function xl(t){return!!t.querySelector(\'[data-hf-inner-root="true"]\')}function gl(t){return t.hasAttribute("data-composition-src")?!0:go(t)?t.children.length===0||t.hasAttribute("data-hf-original-composition-id")?!0:xl(t):!1}function ti(){return Array.from(document.querySelectorAll("[data-composition-src], [data-composition-id]")).filter(e=>e.hasAttribute("data-composition-src")?!0:go(e))}function yo(){let t=window.__hfVariablesByComp;if(!t)return;let e=new Set(ti().map(n=>nn(n).runtimeCompositionId).filter(n=>!!n));for(let n of Object.keys(t))e.has(n)||delete t[n]}function So(t,e=hl(t)){let n=new Map,i=new Map;for(let r of t){let{authoredCompositionId:o,runtimeCompositionId:s}=nn(r),l=gl(r);if(!o){i.set(r,{authoredCompositionId:null,runtimeCompositionId:s});continue}let a=(e.get(o)||0)>1,c=s||o;if(l){let u=a?(n.get(o)||0)+1:0;a&&n.set(o,u),c=a?cl(o,u):o,a?r.setAttribute("data-hf-original-composition-id",o):r.removeAttribute("data-hf-original-composition-id"),r.setAttribute("data-composition-id",c),s&&s!==c&&window.__hfVariablesByComp&&delete window.__hfVariablesByComp[s]}i.set(r,{authoredCompositionId:o,runtimeCompositionId:c})}return i}async function ei(t){let e=null;t.authoredCompositionId&&(e=Array.from(t.sourceNode.querySelectorAll("[data-composition-id]")).find(x=>x.getAttribute("data-composition-id")===t.authoredCompositionId)??null);let n=e??t.sourceNode,i=e?.getAttribute("data-composition-id")?.trim()||t.authoredCompositionId||null,r=t.runtimeCompositionId||i||null,o=e?.getAttribute("id")?.trim()||null,s=r?`[data-composition-id="${CSS.escape(r)}"]`:void 0;if(t.headLinks)for(let f of t.headLinks){let x=f.getAttribute("href")||"";x&&(document.head.querySelector(`link[href="${CSS.escape(x)}"]`)||document.head.appendChild(f.cloneNode(!0)))}if(t.headStyles)for(let f of t.headStyles){let x=f.cloneNode(!0);x instanceof HTMLStyleElement&&(i&&(x.textContent=Yn(x.textContent||"",i,s,o)),document.head.appendChild(x),t.injectedStyles.push(x))}let l=Array.from(n.querySelectorAll("style"));for(let f of l){let x=f.cloneNode(!0);x instanceof HTMLStyleElement&&(i&&(x.textContent=Yn(x.textContent||"",i,s,o)),document.head.appendChild(x),t.injectedStyles.push(x))}let a=[];if(t.headScripts)for(let f of t.headScripts){let x=f.getAttribute("type")?.trim()??"",F=f.getAttribute("src")?.trim()??"";if(F){let E=xo(F,t.compositionUrl);a.push({kind:"external",src:E,type:x})}else{let E=f.textContent?.trim()??"";E&&a.push({kind:"inline",content:E,type:x,scopeCompositionId:i})}}let c=Array.from(n.querySelectorAll("script")),u=[...a];for(let f of c){let x=f.getAttribute("type")?.trim()??"",F=f.getAttribute("src")?.trim()??"";if(F){let E=xo(F,t.compositionUrl);u.push({kind:"external",src:E,type:x})}else{let E=f.textContent?.trim()??"";E&&u.push({kind:"inline",content:E,type:x,scopeCompositionId:i})}f.parentNode?.removeChild(f)}let m=Array.from(n.querySelectorAll("style"));for(let f of m)f.parentNode?.removeChild(f);if(e){let f=e.getAttribute("data-width"),x=e.getAttribute("data-height"),F=t.parseDimensionPx(f),E=t.parseDimensionPx(x);f&&t.host.setAttribute("data-width",f),x&&t.host.setAttribute("data-height",x),F&&t.host instanceof HTMLElement&&(t.host.style.width=F),E&&t.host instanceof HTMLElement&&(t.host.style.height=E),e.hasAttribute("data-timeline-locked")&&t.host.setAttribute("data-timeline-locked",""),t.host.appendChild(ml(e))}else t.hasTemplate?t.host.appendChild(document.importNode(n,!0)):t.host.innerHTML=t.fallbackBodyInnerHtml;if(r){let f={...t.declaredVariableDefaults??{},...pl(t.host)};Object.keys(f).length>0?(window.__hfVariablesByComp||(window.__hfVariablesByComp={}),window.__hfVariablesByComp[r]=f):window.__hfVariablesByComp&&delete window.__hfVariablesByComp[r]}for(let f of u){let x=document.createElement("script");if(f.type&&(x.type=f.type),x.async=!1,f.kind==="external"?x.src=f.src:f.type.toLowerCase()==="module"?x.textContent=f.content:f.scopeCompositionId?x.textContent=po(f.content,f.scopeCompositionId,"[HyperFrames] composition script error:",s,r||f.scopeCompositionId,o):x.textContent=`(function(){${f.content}})();`,document.body.appendChild(x),t.injectedScripts.push(x),f.kind==="external"){let F=await dl(x);F.status!=="load"&&t.onDiagnostic?.({code:"external_composition_script_load_issue",details:{hostCompositionId:t.authoredCompositionId,runtimeCompositionId:t.runtimeCompositionId,hostCompositionSrc:t.hostCompositionSrc,resolvedScriptSrc:f.src,loadStatus:F.status,elapsedMs:F.elapsedMs}})}}}async function bo(t){let e=ti();if(yo(),e.length===0)return;let n=So(e),i=e.filter(r=>{if(r.hasAttribute("data-composition-src")||r.children.length>0)return!1;let o=n.get(r)?.authoredCompositionId;return o?!!document.querySelector(`template#${CSS.escape(o)}-template`):!1});if(i.length!==0)for(let r of i){let o=n.get(r),s=o?.authoredCompositionId;if(!s)continue;let l=document.querySelector(`template#${CSS.escape(s)}-template`);Xn(r),await ei({host:r,authoredCompositionId:s,runtimeCompositionId:o?.runtimeCompositionId||s,hostCompositionSrc:`template#${s}-template`,sourceNode:l.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:null,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,onDiagnostic:t.onDiagnostic})}}async function Ao(t){let e=ti();if(yo(),e.length===0)return;let n=So(e),i=e.filter(r=>r.hasAttribute("data-composition-src"));i.length!==0&&await Promise.all(i.map(async r=>{let o=r.getAttribute("data-composition-src");if(!o)return;let s=n.get(r),l=s?.authoredCompositionId||null,a=s?.runtimeCompositionId||l||null,c=null;try{c=new URL(o,document.baseURI)}catch{c=null}Xn(r);try{let u=l!=null?document.querySelector(`template#${CSS.escape(l)}-template`):null;if(u){await ei({host:r,authoredCompositionId:l,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:u.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:c,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,onDiagnostic:t.onDiagnostic});return}let m=await fetch(o);if(!m.ok)throw new Error(`HTTP ${m.status}`);let f=await m.text(),F=new DOMParser().parseFromString(f,"text/html"),E=(l?F.querySelector(`template#${CSS.escape(l)}-template`):null)??F.querySelector("template"),S=E?E.content:F.body,B=E?void 0:Array.from(F.head.querySelectorAll("style")),D=E?void 0:Array.from(F.head.querySelectorAll("script")),v=E?void 0:Array.from(F.head.querySelectorAll(\'link[rel="stylesheet"], link[rel="preconnect"]\'));await ei({host:r,authoredCompositionId:l,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:S,hasTemplate:!!E,fallbackBodyInnerHtml:F.body.innerHTML,compositionUrl:c,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,headStyles:B,headScripts:D,headLinks:v,declaredVariableDefaults:Zn(F.documentElement),onDiagnostic:t.onDiagnostic})}catch(u){t.onDiagnostic?.({code:"external_composition_load_failed",details:{hostCompositionId:l,runtimeCompositionId:a,hostCompositionSrc:o,errorMessage:u instanceof Error?u.message:"unknown_error"}}),Xn(r)}}))}function yl(t){return t instanceof HTMLElement?t.dataset.captionWrapper!=="true"?t:t.querySelector(":scope > span")??null:null}function Sl(){let t=[],e=document.querySelectorAll(".caption-group");for(let n of e)for(let i of n.children){if(!(i instanceof HTMLElement))continue;let r=i.dataset.captionWrapper==="true"?i.querySelector(":scope > span"):i.tagName==="SPAN"?i:null;r&&t.push(r)}return t}function bl(t){let e=t.parentElement;if(e?.dataset.captionWrapper==="true")return e;let n=document.createElement("span");return n.style.display="inline-block",n.dataset.captionWrapper="true",t.parentNode?.insertBefore(n,t),n.appendChild(t),n}function ni(){let t=window.gsap;t&&document.querySelectorAll(".caption-group").length!==0&&fetch("caption-overrides.json").then(e=>e.ok?e.json():null).then(e=>{if(!e||!Array.isArray(e)||e.length===0)return;let n=Sl();for(let i of e){let r=null;if(i.wordId&&(r=yl(document.getElementById(i.wordId))),!r&&i.wordIndex!==void 0&&(r=n[i.wordIndex]??null),!r)continue;let o={},s={};if(i.x!==void 0&&(o.x=i.x),i.y!==void 0&&(o.y=i.y),i.scale!==void 0&&(o.scale=i.scale),i.rotation!==void 0&&(o.rotation=i.rotation),i.opacity!==void 0&&(s.opacity=i.opacity),i.fontSize!==void 0&&(s.fontSize=`${i.fontSize}px`),i.fontWeight!==void 0&&(s.fontWeight=i.fontWeight),i.fontFamily!==void 0&&(s.fontFamily=i.fontFamily),i.activeColor||i.dimColor){let a=t.getTweensOf(r).filter(u=>u.vars.color!==void 0).sort((u,m)=>u.startTime()-m.startTime()),c=a.length>0?String(a[0].vars.color):"";for(let u of a)String(u.vars.color)===c?i.dimColor&&(u.vars.color=i.dimColor):i.activeColor&&(u.vars.color=i.activeColor);i.dimColor&&t.set(r,{color:i.dimColor})}if(Object.keys(s).length>0&&t.set(r,s),Object.keys(o).length>0){let l=bl(r);t.set(l,o)}}}).catch(()=>{})}var rn=class{constructor(e){ye(this,"_baseTime",0);ye(this,"_playStartMs",null);ye(this,"_rate",1);ye(this,"_duration",1/0);ye(this,"_nowMs");ye(this,"_audioSource",null);this._baseTime=e?.initialTime??0,this._rate=e?.rate??1,this._duration=e?.duration??1/0,this._nowMs=e?.nowMs??(()=>performance.now())}now(){if(this._playStartMs===null)return this._baseTime;if(this._audioSource){let i=null;if("currentTimeSeconds"in this._audioSource)i=this._audioSource.currentTimeSeconds;else{let{el:r,compositionStart:o,mediaStart:s}=this._audioSource;!r.paused&&Number.isFinite(r.currentTime)&&(i=(r.currentTime-s)/(r.playbackRate>0?r.playbackRate:1)*this._rate+o)}if(i!==null)return Number.isFinite(this._duration)&&i>=this._duration?this._duration:Math.max(0,i)}let e=(this._nowMs()-this._playStartMs)/1e3,n=this._baseTime+e*this._rate;return Number.isFinite(this._duration)&&n>=this._duration?this._duration:Math.max(0,n)}play(){return this._playStartMs!==null||Number.isFinite(this._duration)&&this._baseTime>=this._duration?!1:(this._playStartMs=this._nowMs(),!0)}pause(){return this._playStartMs===null?!1:(this._baseTime=this.now(),this._playStartMs=null,!0)}seek(e){let n=Number.isFinite(this._duration)?Math.max(0,Math.min(e,this._duration)):Math.max(0,e);this._baseTime=n,this._playStartMs!==null&&(this._playStartMs=this._nowMs())}isPlaying(){return this._playStartMs!==null}setRate(e){let n=Number.isFinite(e)&&e>0?Math.max(.1,Math.min(5,e)):1;this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._rate=n}getRate(){return this._rate}setDuration(e){this._duration=Number.isFinite(e)&&e>0?e:1/0,this._baseTime>this._duration&&(this._baseTime=this._duration)}getDuration(){return this._duration}attachAudioSource(e){this._audioSource=e}detachAudioSource(){this._audioSource&&this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._audioSource=null}hasAudioSource(){return this._audioSource!==null}getSource(){if(this._audioSource&&this._playStartMs!==null){if("currentTimeSeconds"in this._audioSource)return"audio";let{el:e}=this._audioSource;if(!e.paused&&Number.isFinite(e.currentTime))return"audio"}return"monotonic"}snapshot(){return{time:this.now(),playing:this.isPlaying(),rate:this._rate,duration:this._duration,source:this.getSource()}}reachedEnd(){return Number.isFinite(this._duration)&&this.now()>=this._duration}};function Eo(t){return!Number.isFinite(t)||t<=0?1:t}var on=class{constructor(){ye(this,"_ctx",null);ye(this,"_bufferCache",new Map);ye(this,"_failedSrcs",new Set);ye(this,"_activeSources",[]);ye(this,"_masterGain",null);ye(this,"_rateAnchorCtx",0);ye(this,"_rateAnchorComp",0);ye(this,"_rate",1);ye(this,"_paused",!0);ye(this,"_playGeneration",0)}async init(){try{return this._ctx=new AudioContext,this._masterGain=this._ctx.createGain(),this._masterGain.connect(this._ctx.destination),!0}catch{return!1}}get context(){return this._ctx}getTime(){return!this._ctx||this._paused?-1:this._rateAnchorComp+(this._ctx.currentTime-this._rateAnchorCtx)*this._rate}async decodeAudioElement(e){let n=e.currentSrc||e.getAttribute("src");if(!n)return null;if(this._bufferCache.has(n))return this._bufferCache.get(n);if(this._failedSrcs.has(n)||!this._ctx)return null;try{let i=await fetch(n);if(!i.ok)return this._failedSrcs.add(n),_("webAudioTransport.fetch",new Error(`${i.status} ${n}`)),null;let r=await i.arrayBuffer(),o=await this._ctx.decodeAudioData(r);return this._bufferCache.set(n,o),o}catch(i){return this._failedSrcs.add(n),_("webAudioTransport.decode",i),null}}startGeneration(){return this._playGeneration+=1,this._playGeneration}currentGeneration(){return this._playGeneration}async schedulePlayback(e,n,i,r,o,s,l,a=1){if(!this._ctx||!this._masterGain||l!==this._playGeneration)return null;try{if(this._ctx.state==="suspended"&&await this._ctx.resume(),l!==this._playGeneration)return null;let c=Eo(a),u=this._ctx.createBufferSource();u.buffer=n,u.playbackRate.value=c;let m=this._ctx.createGain();m.gain.value=s,u.connect(m),m.connect(this._masterGain);let f=o-i,x=this._ctx.currentTime;if(this._rate=c,this._rateAnchorCtx=x,this._rateAnchorComp=o,f>=0)u.start(0,f+r);else{let S=-f/c;u.start(x+S,r)}let F=e.muted;e.muted=!0;let E={el:e,sourceNode:u,gainNode:m,compositionStart:i,mediaStart:r,scheduledAt:x,priorMuted:F};return this._activeSources.push(E),this._paused=!1,E}catch(c){return _("webAudioTransport.schedule",c),null}}setRate(e){let n=Eo(e);if(n!==this._rate){this._ctx&&!this._paused&&(this._rateAnchorComp=this.getTime(),this._rateAnchorCtx=this._ctx.currentTime),this._rate=n;for(let i of this._activeSources)try{i.sourceNode.playbackRate.value=n}catch(r){_("webAudioTransport.setRate",r)}}}stopAll(){for(let e of this._activeSources){try{e.sourceNode.stop(),e.sourceNode.disconnect(),e.gainNode.disconnect()}catch{}e.el.muted=e.priorMuted}this._activeSources=[],this._paused=!0}setVolume(e){this._masterGain&&(this._masterGain.gain.value=Math.max(0,Math.min(1,e)))}setElementVolume(e,n){let i=Math.max(0,Math.min(1,n));for(let r of this._activeSources)if(r.el===e)try{r.gainNode.gain.value=i}catch(o){_("webAudioTransport.setElementVolume",o)}}setMuted(e){this._masterGain&&(this._masterGain.gain.value=e?0:1)}isActive(){return this._activeSources.length>0&&!this._paused}destroy(){if(this.stopAll(),this._bufferCache.clear(),this._ctx)try{this._ctx.close()}catch{}this._ctx=null,this._masterGain=null}};var Fo="data-hf-authored-duration",wo="data-hf-authored-end";function No(){let t=Bi(),e=null,n=null,i=[],r=new Set,o=null;if(typeof window.__hfRuntimeTeardown=="function")try{window.__hfRuntimeTeardown()}catch(d){_("runtime.init.site1",d)}document.documentElement&&(document.documentElement.style.margin="0",document.documentElement.style.padding="0",document.documentElement.style.overflow="hidden"),document.body&&(document.body.style.margin="0",document.body.style.padding="0",document.body.style.overflow="hidden"),window.__timelines=window.__timelines||{};let s=d=>{i.push(d)},l=(d,p,h)=>{let b=h??`${d}:${JSON.stringify(p)}`;r.has(b)||(r.add(b),Ae({source:"hf-preview",type:"diagnostic",code:d,details:p}))},a=d=>{let p={scale:1,focusX:960,focusY:540},h=[],b=[],y={time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying(),renderMode:!1,timelineDirty:!1};return{play:d.play,pause:d.pause,seek:d.seek,getTime:d.getTime,getDuration:d.getDuration,isPlaying:d.isPlaying,getMainTimeline:()=>null,getElementBounds:()=>{},getElementsAtPoint:()=>{},setElementPosition:()=>{},previewElementPosition:()=>{},setElementKeyframes:()=>{},setElementScale:()=>{},setElementFontSize:()=>{},setElementTextContent:()=>{},setElementTextColor:()=>{},setElementTextShadow:()=>{},setElementTextFontWeight:()=>{},setElementTextFontFamily:()=>{},setElementTextOutline:()=>{},setElementTextHighlight:()=>{},setElementVolume:()=>{},setStageZoom:()=>{},getStageZoom:()=>p,setStageZoomKeyframes:()=>{},getStageZoomKeyframes:()=>h,addElement:()=>!1,removeElement:()=>!1,updateElementTiming:()=>!1,setElementTiming:()=>{},updateElementSrc:()=>!1,updateElementLayer:()=>!1,updateElementBasePosition:()=>!1,markTimelineDirty:()=>{},isTimelineDirty:()=>!1,rebuildTimeline:()=>{},ensureTimeline:()=>{},enableRenderMode:()=>{},disableRenderMode:()=>{},renderSeek:d.renderSeek,getElementVisibility:()=>({visible:!1}),getVisibleElements:()=>b,getRenderState:()=>({...y,time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying()})}},c=1/60,u=.75,m=2,f=.05,x=100,F=240,E=d=>{if(d instanceof Error)return d.message||String(d);if(typeof d=="string")return d;try{return JSON.stringify(d)}catch{return String(d??"")}},S=d=>{let p=d.toLowerCase();return p.includes("cannot read properties of null")||p.includes("cannot set properties of null")?{code:"runtime_null_dom_access",category:"dom-null-access"}:p.includes("failed to execute \'queryselector\'")?{code:"runtime_invalid_selector",category:"selector-invalid"}:p.includes("is not defined")?{code:"runtime_reference_missing",category:"reference-missing"}:{code:"runtime_script_error",category:"script-error"}},B=d=>{if(d==null||d.trim()==="")return null;let p=Number.parseFloat(d);return!Number.isFinite(p)||p<=0?null:`${p}px`},D=()=>{let d=document.querySelector(\'[data-composition-id][data-root="true"]\');if(d instanceof HTMLElement)return d;let p=Array.from(document.querySelectorAll("[data-composition-id]"));return p.length===0?null:p.find(h=>!h.parentElement?.closest("[data-composition-id]"))??p[0]??null},v=()=>{let d=D();if(!d)return;let p=B(d.getAttribute("data-width")),h=B(d.getAttribute("data-height"));p&&(d.style.width=p),h&&(d.style.height=h),p&&d.style.setProperty("--comp-width",p),h&&d.style.setProperty("--comp-height",h)},X=()=>{let d=D(),p=Array.from(document.querySelectorAll("[data-composition-id]")).filter(h=>h.hasAttribute("data-duration")||h.hasAttribute("data-end"));for(let h of p){if(d&&h===d)continue;let b=h.getAttribute("data-duration"),y=h.getAttribute("data-end");b!=null&&!h.hasAttribute(Fo)&&h.setAttribute(Fo,b),y!=null&&!h.hasAttribute(wo)&&h.setAttribute(wo,y),h.removeAttribute("data-duration"),h.removeAttribute("data-end")}},q=()=>{let d=D();if(!d)return;d.style.position||(d.style.position="relative"),d.style.overflow="hidden";let p=B(d.getAttribute("data-width")),h=B(d.getAttribute("data-height"));p&&(d.style.width=p),h&&(d.style.height=h);let b=Array.from(d.children);for(let y of b){let M=y.tagName.toLowerCase();if(M==="script"||M==="style"||M==="link"||M==="meta"||!y.hasAttribute("data-start"))continue;let te=(y.style.top==="0px"||y.style.top==="0")&&(y.style.left==="0px"||y.style.left==="0")&&y.style.width==="100%"&&y.style.height==="100%",G=/translate\\(\\s*-50%\\s*,\\s*-50%\\s*\\)/.test(y.style.transform);if(te&&G&&!y.hasAttribute("data-width")&&!y.hasAttribute("data-height")){let Je=y.style.top,fe=y.style.left,ct=y.style.width,oe=y.style.height;y.style.top="",y.style.left="",y.style.width="",y.style.height="";let Q=window.getComputedStyle(y);Q.top!=="auto"||Q.bottom!=="auto"||Q.left!=="auto"||Q.right!=="auto"||Q.width!=="0px"||Q.height!=="0px"||(y.style.top=Je,y.style.left=fe,y.style.width=ct,y.style.height=oe)}let ie=window.getComputedStyle(y),xe=ie.position;if(xe!=="absolute"&&xe!=="fixed"&&(y.style.position="absolute"),!!y.style.top||!!y.style.bottom||ie.top!=="auto"||ie.bottom!=="auto"||(y.style.top="0"),!!y.style.left||!!y.style.right||ie.left!=="auto"||ie.right!=="auto"||(y.style.left="0"),M!=="audio"){let Je=B(y.getAttribute("data-width")),fe=B(y.getAttribute("data-height")),ct=ie.width!=="0px"&&ie.width!=="auto",oe=ie.height!=="0px"&&ie.height!=="auto";Je?!y.style.width&&!ct&&(y.style.width=Je):!y.style.width&&ie.width==="0px"&&(y.style.width="100%"),fe?!y.style.height&&!oe&&(y.style.height=fe):!y.style.height&&ie.height==="0px"&&(y.style.height="100%")}}},N=(d,p=0,h)=>Ye({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:h?.includeAuthoredTimingAttrs??!0}).resolveStartForElement(d,p),g=(d,p)=>Ye({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:p?.includeAuthoredTimingAttrs??!0}).resolveDurationForElement(d),A=(d,p=0)=>!d.hasAttribute("data-hf-auto-start")&&d.hasAttribute("data-start")?Math.max(0,Number(d.getAttribute("data-start")??0)||0):N(d,p),C=!!document.querySelector("[data-composition-src]"),w=!1;{let d=document.querySelectorAll("[data-composition-id]:not([data-composition-src])");for(let p of d){let h=p.getAttribute("data-composition-id");if(h&&p.children.length===0&&document.querySelector(`template#${CSS.escape(h)}-template`)){w=!0;break}}}let T=!C&&!w,L=d=>{if(!d||typeof d.duration!="function")return null;try{let p=Number(d.duration());return Number.isFinite(p)?Math.max(0,p):null}catch{return null}},P=d=>typeof d=="number"&&Number.isFinite(d)&&d>c,J=d=>{let p=Number(d.getAttribute("data-duration"));if(Number.isFinite(p)&&p>0)return p;let h=Number(d.getAttribute("data-playback-start")??d.getAttribute("data-media-start")??"0"),b=Number.isFinite(h)?Math.max(0,h):0;return Number.isFinite(d.duration)&&d.duration>b?Math.max(0,d.duration-b):null},R=()=>{let d=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(d.length===0)return null;let p=0;for(let h of d){let b=A(h,0);if(!Number.isFinite(b))continue;let y=J(h);y==null||y<=c||(p=Math.max(p,Math.max(0,b)+y))}return p>c?p:null},le=()=>{let d=D();if(!d)return null;let p=window.__timelines??{},h=Ye({timelineRegistry:p,includeAuthoredTimingAttrs:!0}),b=0,y=Array.from(d.querySelectorAll("[data-composition-id][data-start]"));for(let M of y){if(!(M instanceof Element)||M.parentElement?.closest("[data-composition-id]")!==d)continue;let G=h.resolveStartForElement(M,0),ie=h.resolveDurationForElement(M);!Number.isFinite(G)||ie==null||ie<=0||(b=Math.max(b,Math.max(0,G)+ie))}return b>c?b:null},Se=()=>{let d=R();return typeof d!="number"||!Number.isFinite(d)||d<=c?null:d},$=d=>P(d)?Math.max(c,d*u):c,U=(d,p=0)=>{let h=L(d),b=Se(),y=le(),M=Math.max(b??0,y??0),te=Number.isFinite(p)&&p>c?p:0,G=0;return P(h)?G=Math.max(h,M,te):P(M)?G=Math.max(M,te):G=te,G>0?Math.max(0,G):0},W=()=>{let d=window.__timelines??{},p=Ye({timelineRegistry:d,includeAuthoredTimingAttrs:!0}),h=Se(),b=le(),y=Math.max(h??0,b??0)||null,M=$(y),te=oe=>{let Q=document.querySelector(`[data-composition-id="${CSS.escape(oe)}"]`);return Q?p.resolveStartForElement(Q,0):0},G=oe=>{let Q=window.gsap;if(!Q||typeof Q.timeline!="function")return null;let ue=Q.timeline({paused:!0});for(let he of oe)ue.add(he.timeline,te(he.compositionId));return ue},ie=(oe,Q)=>{if(!P(oe))return null;let ue=window.gsap;if(!ue||typeof ue.timeline!="function")return null;let he=ue.timeline({paused:!0});if(Q)try{he.add(Q,0)}catch(se){_("runtime.init.site2",se)}let be=he;if(typeof be.to=="function")try{be.to({},{duration:oe})}catch(se){_("runtime.init.site3",se)}return he},xe=(oe,Q)=>{let ue=oe;if(typeof ue.getChildren!="function")return[];try{let he=ue.getChildren(!0,!0,!0)??[];if(!Array.isArray(he))return[];let be=[];for(let se of Q)if(!he.some(ke=>ke===se.timeline))try{let ke=te(se.compositionId);oe.add(se.timeline,ke),be.push(se.compositionId)}catch(ke){_("runtime.init.site4",ke)}return be}catch{return[]}},Ie=D(),de=Ie?.getAttribute("data-composition-id")??null;if(!de)return{timeline:null};let ge=d[de]??null,fe=(()=>{if(!Ie)return[];let oe=new Set,Q=Array.from(Ie.querySelectorAll("[data-composition-id]")),ue=[];for(let he of Q){let be=he.getAttribute("data-composition-id");if(!be||be===de||oe.has(be))continue;oe.add(be);let se=d[be]??null;if(!se||typeof se.play!="function"||typeof se.pause!="function")continue;let Ne=L(se);ue.push({compositionId:be,timeline:se,durationSeconds:Ne??0})}return ue})(),ct=oe=>{for(let Q of oe){let ue=Q.timeline;if(typeof ue.paused=="function")try{ue.paused(!1)}catch(he){_("runtime.init.site5",he)}}};if(fe.length>0&&ct(fe),ge){let oe=fe.length>0?xe(ge,fe):[];if((fe.length>0||!document.querySelector("[data-composition-id]:not([data-composition-id=\'"+de+"\'])"))&&(Y=!0),oe.length>0)try{let se=ge.time();ge.seek(se,!1)}catch{}let Q=L(ge);if(!P(Q)&&fe.length>0){let se=fe.map(ts=>ts.compositionId),Ne=G(fe),ke=L(Ne);if(Ne&&P(ke))return{timeline:Ne,selectedTimelineIds:se,selectedDurationSeconds:ke,mediaDurationFloorSeconds:h,diagnostics:{code:"root_timeline_unusable_fallback",details:{rootCompositionId:de,rootDurationSeconds:Q,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:M,selectedDurationSeconds:ke,mediaDurationFloorSeconds:h,authoredCompositionDurationFloorSeconds:b,selectedTimelineIds:se,autoNestedChildren:oe}}};let pn=ie(y??0,ge),hn=L(pn);if(pn&&P(hn))return{timeline:pn,selectedTimelineIds:[de],selectedDurationSeconds:hn,mediaDurationFloorSeconds:h,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:de,rootDurationSeconds:Q,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:h,authoredCompositionDurationFloorSeconds:b,selectedDurationSeconds:hn,selectedTimelineIds:[de],autoNestedChildren:oe}}}}if(!P(Q)&&fe.length===0){let se=ie(y??0,ge),Ne=L(se);if(se&&P(Ne))return{timeline:se,selectedTimelineIds:[de],selectedDurationSeconds:Ne,mediaDurationFloorSeconds:h,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:de,rootDurationSeconds:Q,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:h,authoredCompositionDurationFloorSeconds:b,selectedDurationSeconds:Ne,selectedTimelineIds:[de]}}}}let ue=Ie?.getAttribute("data-duration"),he=ue?parseFloat(ue):null,be=Math.max(P(he)?he:0,b??0);if(be>0&&P(be)&&P(Q)&&be>=Q+.5){let se=ge;if(typeof se.to=="function")try{se.to({},{duration:0},be)}catch(ke){_("runtime.init.site6",ke)}let Ne=L(ge);if(P(Ne))return{timeline:ge,selectedTimelineIds:[de],selectedDurationSeconds:Ne,mediaDurationFloorSeconds:h,diagnostics:{code:"root_timeline_padded_to_declared_duration",details:{rootCompositionId:de,rootDurationSeconds:Q,rootDeclaredDur:he,authoredCompositionDurationFloorSeconds:b,newDur:Ne}}}}return{timeline:ge,selectedTimelineIds:[de],selectedDurationSeconds:Q,mediaDurationFloorSeconds:h,diagnostics:oe.length>0?{code:"root_timeline_auto_nested_children",details:{rootCompositionId:de,selectedDurationSeconds:Q,autoNestedChildren:oe}}:void 0}}if(fe.length>0){let oe=fe.map(he=>he.compositionId),Q=G(fe),ue=L(Q);if(Q)return{timeline:Q,selectedTimelineIds:oe,selectedDurationSeconds:ue,mediaDurationFloorSeconds:h,diagnostics:{code:"root_timeline_missing_fallback",details:{rootCompositionId:de,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:M,selectedDurationSeconds:ue,mediaDurationFloorSeconds:h,selectedTimelineIds:oe}}}}return{timeline:null}},Y=!1,me=()=>{if(!T)return!1;let d=t.capturedTimeline,p=L(d),h=P(p);if(d&&h&&Y)return!1;let b=W();if(!b.timeline)return!1;if(d&&d===b.timeline)return typeof d.timeScale=="function"&&d.timeScale(t.playbackRate),!1;t.capturedTimeline=b.timeline,typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);let y=U(t.capturedTimeline,0);if(y>0){try{I.setDuration(y)}catch{}t.capturedTimeline.pause();let M=Math.max(0,t.currentTime||0);typeof t.capturedTimeline.totalTime=="function"&&t.capturedTimeline.totalTime(M,!1)}b.diagnostics&&Ae({source:"hf-preview",type:"diagnostic",code:b.diagnostics.code,details:b.diagnostics.details}),Ae({source:"hf-preview",type:"diagnostic",code:"timeline_bound",details:{selectedTimelineIds:b.selectedTimelineIds??[],selectedDurationSeconds:b.selectedDurationSeconds??null,mediaDurationFloorSeconds:b.mediaDurationFloorSeconds??null}});for(let M of V)j.delete(M),Le(M);return!0};window.__hfForceTimelineRebind=()=>{Y=!1,me()};let Fe=()=>{let d=D();if(!(d instanceof HTMLElement))return;let p=d.getBoundingClientRect(),h=Number(d.getAttribute("data-width")),b=Number(d.getAttribute("data-height")),y=window.getComputedStyle(d),M=Number.isFinite(h)&&h>0&&Number.isFinite(b)&&b>0,te=p.width<=0||p.height<=0||d.clientWidth<=0||d.clientHeight<=0;!M||!te||l("root_stage_layout_zero",{compositionId:d.getAttribute("data-composition-id")??null,declaredWidth:h,declaredHeight:b,rectWidth:Math.round(p.width),rectHeight:Math.round(p.height),clientWidth:d.clientWidth,clientHeight:d.clientHeight,display:y.display,visibility:y.visibility,overflow:y.overflow},`root-stage-layout-zero:${d.getAttribute("data-composition-id")??"unknown"}`)},H=()=>{t.tornDown||(o!=null&&window.cancelAnimationFrame(o),o=window.requestAnimationFrame(()=>{o=null,Fe()}))},k=()=>{e=d=>{let p=E(d.error??d.message).slice(0,F);if(!p)return;let h=S(p);Ae({source:"hf-preview",type:"diagnostic",code:h.code,details:{category:h.category,message:p,filename:d.filename||null,line:Number.isFinite(d.lineno)?d.lineno:null,column:Number.isFinite(d.colno)?d.colno:null}})},n=d=>{let p=E(d.reason).slice(0,F);if(!p)return;let h=S(p);Ae({source:"hf-preview",type:"diagnostic",code:`${h.code}_unhandled_rejection`,details:{category:`${h.category}-unhandled-rejection`,message:p}})},window.addEventListener("error",e),window.addEventListener("unhandledrejection",n)},O=()=>{let d=Array.from(document.querySelectorAll("img, video, audio, source, link[rel=\'stylesheet\']"));for(let h of d){let b=()=>{if(!(h instanceof Element))return;let y=h.tagName.toLowerCase(),M=h.getAttribute("src")??h.getAttribute("href")??h.getAttribute("poster")??null,te=y==="link"?"runtime_stylesheet_load_failed":"runtime_asset_load_failed";l(te,{tagName:y,assetUrl:M,currentSrc:(h instanceof HTMLImageElement||h instanceof HTMLMediaElement)&&h.currentSrc||null,readyState:h instanceof HTMLMediaElement?h.readyState:null,networkState:h instanceof HTMLMediaElement?h.networkState:null},`${te}:${y}:${M??"unknown"}`)};h.addEventListener("error",b),s(()=>{h.removeEventListener("error",b)})}let p=document.fonts;p&&p.ready.then(()=>{if(t.tornDown)return;let h=Array.from(p).filter(b=>b.status==="error").map(b=>b.family).filter(b=>!!b).slice(0,10);h.length!==0&&l("runtime_font_load_issue",{failedFamilies:h,totalFaces:Array.from(p).length},`runtime-font-load-issue:${h.join("|")}`)}).catch(()=>{})},ne=(d,p)=>{if(!d.timeline)return!1;let h=t.capturedTimeline;if(h&&h===d.timeline)return!1;let b=Math.max(0,t.currentTime||0),y=t.isPlaying;t.capturedTimeline=d.timeline,typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);try{t.capturedTimeline.pause(),t.capturedTimeline.seek(b,!1),y&&t.capturedTimeline.play()}catch(M){_("runtime.init.site7",M)}return Ae({source:"hf-preview",type:"diagnostic",code:"timeline_loop_guard_rebind",details:{reason:p,previousTime:b,selectedTimelineIds:d.selectedTimelineIds??[],selectedDurationSeconds:d.selectedDurationSeconds??null,mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),!0},ee=null,z=!1,V=new Set,j=new WeakMap,Ce=()=>{t.tornDown||(ee!=null&&window.clearTimeout(ee),ee=window.setTimeout(()=>{if(t.tornDown)return;ee=null;let d=W();if(!d.timeline||!P(d.mediaDurationFloorSeconds??null))return;if(!t.capturedTimeline){me()&&(Ge(),Me(!0));return}if(z)return;let h=L(t.capturedTimeline),b=d.selectedDurationSeconds??L(d.timeline);P(b)&&(!P(h)||b>=h+f)&&ne(d,"manual")&&(z=!0,Ae({source:"hf-preview",type:"diagnostic",code:"timeline_rebind_after_media_metadata",details:{previousDurationSeconds:h??null,selectedDurationSeconds:b??null,selectedTimelineIds:d.selectedTimelineIds??[],mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),Ge(),Me(!0))},x))},we=()=>{for(let d of V)d.removeEventListener("loadedmetadata",Ce),d.removeEventListener("durationchange",Ce);V.clear()},$e=()=>{if(t.tornDown)return;let d=Array.from(document.querySelectorAll("video, audio"));for(let p of d){if(V.has(p))continue;V.add(p);let h=Number.parseFloat(p.dataset.volume??"");Number.isFinite(h)&&(p.volume=Math.max(0,Math.min(1,h))),p.addEventListener("loadedmetadata",Ce),p.addEventListener("durationchange",Ce),p.preload!=="auto"&&(p.preload="auto"),p.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&p.load(),Le(p)}},Le=d=>{j.has(d)||ki(d,t.capturedTimeline,U(t.capturedTimeline,0),j)},We=()=>{let d=y=>{let M=y.closest("[data-composition-id]"),te=M?N(M,0):null,G=M?g(M,{includeAuthoredTimingAttrs:!0}):null;return{compositionRoot:M,inheritedStart:te,inheritedDuration:G}},p=vi({shouldIncludeElement:y=>y.hasAttribute("data-start")||!!d(y).compositionRoot,resolveStartSeconds:y=>{let M=d(y);return N(y,M.inheritedStart??0)},resolveDurationSeconds:y=>{let M=d(y),te=N(y,M.inheritedStart??0),G=Number.parseFloat(y.dataset.playbackStart??y.dataset.mediaStart??"0")||0,ie=M.inheritedStart!=null&&M.inheritedDuration!=null&&M.inheritedDuration>0?Math.max(0,M.inheritedStart+M.inheritedDuration-te):null,xe=Number.isFinite(y.duration)&&y.duration>G?Math.max(0,y.duration-G):null;return xe!=null&&ie!=null?Math.min(xe,ie):xe??ie}});for(let y of p.mediaClips){let M=j.get(y.el);M&&(y.volumeKeyframes=M)}let h=t.mediaForceSyncNextTick;h&&(t.mediaForceSyncNextTick=!1),_i({clips:p.mediaClips,timeSeconds:t.currentTime,playing:t.isPlaying,playbackRate:t.playbackRate,outputMuted:t.mediaOutputMuted||pe.isActive(),userMuted:t.bridgeMuted,userVolume:t.bridgeVolume,forceSync:h,onElementVolume:(y,M)=>pe.setElementVolume(y,M),onAutoplayBlocked:()=>{t.mediaAutoplayBlockedPosted||(t.mediaAutoplayBlockedPosted=!0,Ae({source:"hf-preview",type:"media-autoplay-blocked"}))}});let b=Array.from(document.querySelectorAll("[data-start]"));for(let y of b){if(!(y instanceof HTMLElement))continue;let M=y.tagName.toLowerCase();if(M==="script"||M==="style"||M==="link"||M==="meta")continue;let te=M==="video"||M==="audio"?A(y,0):N(y,0),G=g(y),ie=y.getAttribute("data-composition-id");if(ie){let de=(window.__timelines??{})[ie],ge=null;if(de&&typeof de.duration=="function"){let fe=Number(de.duration());Number.isFinite(fe)&&fe>0&&(ge=fe)}let Je=y.hasAttribute("data-composition-src")||y.hasAttribute("data-composition-file");G!=null&&G>0&&ge!=null&&!Je?G=Math.min(G,ge):(G==null||G<=0)&&ge!=null&&(G=ge)}let xe=G!=null&&G>0?te+G:Number.POSITIVE_INFINITY,Ie=t.currentTime>=te&&(Number.isFinite(xe)?t.currentTime<=xe:!0);y.style.visibility=Ie?"visible":"hidden"}},Me=d=>{let p=Math.max(0,Math.round((t.currentTime||0)*t.canonicalFps)),h=Date.now();(d||p!==t.bridgeLastPostedFrame||t.isPlaying!==t.bridgeLastPostedPlaying||t.bridgeMuted!==t.bridgeLastPostedMuted||h-t.bridgeLastPostedAt>=t.bridgeMaxPostIntervalMs)&&(t.bridgeLastPostedFrame=p,t.bridgeLastPostedPlaying=t.isPlaying,t.bridgeLastPostedMuted=t.bridgeMuted,t.bridgeLastPostedAt=h,Ae({source:"hf-preview",type:"state",frame:p,isPlaying:t.isPlaying,muted:t.bridgeMuted,playbackRate:t.playbackRate}))},Ge=()=>{X(),v(),q();let d=D();if(d){let h=B(d.getAttribute("data-width")),b=B(d.getAttribute("data-height")),y=h?parseInt(h,10):0,M=b?parseInt(b,10):0;y>0&&M>0&&Ae({source:"hf-preview",type:"stage-size",width:y,height:M})}me();let p=Wi({canonicalFps:t.canonicalFps});window.__clipManifest=p,Ae(p),H()},De=(d,p=0)=>{for(let h of t.deterministicAdapters){try{d==="discover"&&h.discover(),d==="pause"&&h.pause(),d==="play"&&h.play&&h.play()}catch(b){_("runtime.init.site8",b)}if(d==="discover")try{h.seek({time:p})}catch(b){_("runtime.init.site9",b)}}};if(T)ni();else{let d={injectedStyles:t.injectedCompStyles,injectedScripts:t.injectedCompScripts,parseDimensionPx:B,onDiagnostic:({code:p,details:h})=>{Ae({source:"hf-preview",type:"diagnostic",code:p,details:h})}};Ao(d).then(()=>bo(d)).finally(()=>{T=!0,me(),window.__renderReady=!0,$e(),De("discover",t.currentTime),O(),ni(),Ge(),Me(!0)})}let Pt=Ri({postMessage:d=>Ae(d)});Pt.installPickerApi();let dn=d=>{let p=Number(d);!Number.isFinite(p)||p<=0?t.playbackRate=1:t.playbackRate=Math.max(.1,Math.min(5,p)),t.mediaForceSyncNextTick=!0,t.capturedTimeline&&typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);let h=document.querySelectorAll("video, audio");for(let b of h)if(b instanceof HTMLMediaElement)try{b.playbackRate=t.playbackRate}catch(y){_("runtime.init.site10",y)}},ce=Di({getTimeline:()=>t.capturedTimeline,setTimeline:d=>{t.capturedTimeline=d},getTimelineRegistry:()=>window.__timelines??{},getIsPlaying:()=>t.isPlaying,setIsPlaying:d=>{t.isPlaying!==d&&(t.mediaForceSyncNextTick=!0),t.isPlaying=d},getPlaybackRate:()=>t.playbackRate,setPlaybackRate:dn,getCanonicalFps:()=>t.canonicalFps,onSyncMedia:(d,p)=>{t.currentTime=Math.max(0,Number(d)||0),t.isPlaying!==p&&(t.mediaForceSyncNextTick=!0),t.isPlaying=p,We()},onStatePost:Me,onDeterministicSeek:d=>{for(let p of t.deterministicAdapters)try{p.seek({time:Number(d)||0})}catch(h){_("runtime.init.site11",h)}},onDeterministicPause:()=>De("pause"),onDeterministicPlay:()=>De("play"),onRenderFrameSeek:()=>{},onShowNativeVideos:()=>{},getSafeDuration:()=>U(t.capturedTimeline,0)});window.__player=a(ce),window.__playerReady=!0,xi(Ae),dt("composition_loaded",{duration:ce.getDuration(),compositionId:document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null}),t.controlBridgeHandler=hi({onPlay:()=>{ce.play(),dt("composition_played",{time:ce.getTime()})},onPause:()=>{ce.pause(),dt("composition_paused",{time:ce.getTime()})},onSeek:(d,p)=>{let h=Math.max(0,d)/t.canonicalFps;ce.seek(h),dt("composition_seeked",{time:h})},onSetMuted:d=>{t.bridgeMuted=d;let p=d||t.mediaOutputMuted;pe.setMuted(p);let h=document.querySelectorAll("video, audio");for(let b of h)b instanceof HTMLMediaElement&&(b.muted=p)},onSetVolume:d=>{t.bridgeVolume=d,pe.setVolume(d);let p=document.querySelectorAll("video, audio");for(let h of p){if(!(h instanceof HTMLMediaElement))continue;let b=parseFloat(h.dataset.volume??""),y=Number.isFinite(b)?b:1;h.volume=y*d}},onSetMediaOutputMuted:d=>{t.mediaOutputMuted=d;let p=d||t.bridgeMuted;pe.setMuted(p);let h=document.querySelectorAll("video, audio");for(let b of h)b instanceof HTMLMediaElement&&(b.muted=p)},onSetPlaybackRate:d=>{dn(d),t.transportClock&&t.transportClock.setRate(t.playbackRate),pe.setRate(t.playbackRate)},onTick:()=>{if(t.tornDown||!I.isPlaying())return;let d=I.now();if(t.currentTime=d,Ke(d),I.reachedEnd()){pe.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1;let p=I.getDuration();Number.isFinite(p)&&(I.seek(p),t.currentTime=p,Ke(p)),De("pause"),We(),Me(!0)}},onEnablePickMode:()=>Pt.enablePickMode(),onDisablePickMode:()=>Pt.disablePickMode()}),me(),t.capturedTimeline&&(ce._timeline=t.capturedTimeline),window.__renderReady=!0,T&&setTimeout(()=>{let d=t.capturedTimeline;me()&&t.capturedTimeline!==d&&(ce._timeline=t.capturedTimeline),De("discover",t.currentTime),window.__renderReady=!0,Ge(),Me(!0)},0),t.deterministicAdapters=[Mi(),gi({resolveStartSeconds:d=>N(d,0)}),Si(),Ei(),wi(),Ni(),yi({getTimeline:()=>t.capturedTimeline})],Ci(),k(),$e(),De("discover");let I=new rn;t.transportClock=I;let pe=new on,di=!1;pe.init().then(d=>{di=d});let Wt=0,fn=!1,Zo=(d,p,h)=>{try{d.pause(),typeof d.totalTime=="function"?d.totalTime(p,!1):d.seek(p,!1)}catch(b){_(h,b)}},Xo=d=>{let p=window.__timelines??{},h=D()?.getAttribute("data-composition-id")??null;for(let[b,y]of Object.entries(p)){if(!y||b===h)continue;let M=document.querySelector(`[data-composition-id="${CSS.escape(b)}"]`);if(!M)continue;let te=N(M,0);if(!Number.isFinite(te))continue;let G=g(M,{includeAuthoredTimingAttrs:!0}),ie=L(y),xe=G!=null&&G>0?G:ie,Ie=Math.max(0,xe!=null&&xe>0?Math.min(xe,d-te):d-te);Zo(y,Ie,"runtime.init.transport.childTimeline")}},es=d=>{let p=window.__timelines??{};for(let h of Object.values(p))if(!(!h||h===d))try{h.play()}catch(b){_("runtime.init.activateSiblings",b)}},Ke=(d,p)=>{let h=t.capturedTimeline;if(h){p?.activateChildren&&es(h);try{typeof h.totalTime=="function"?h.totalTime(d,!1):h.seek(d,!1)}catch(b){_("runtime.init.transport.seek",b)}}else Xo(d);for(let b of t.deterministicAdapters)try{b.seek({time:d})}catch(y){_("runtime.init.transport.adapter",y)}},fi=()=>{if(!(t.tornDown||fn)){fn=!0;try{if(t.transportRafId=window.requestAnimationFrame(fi),Wt+=1,Wt%60===0&&!(I.isPlaying()&&t.capturedTimeline!=null&&I.now()<m)){let h=t.capturedTimeline;if(me()){t.capturedTimeline&&!ce._timeline&&(ce._timeline=t.capturedTimeline),t.capturedTimeline&&t.capturedTimeline!==h&&t.capturedTimeline.pause();let b=U(t.capturedTimeline,0);b>0&&I.setDuration(b),Ge()}}if(Wt%20===0&&Ge(),Wt%30===0&&$e(),t.capturedTimeline){let p=U(t.capturedTimeline,0);p>0&&I.setDuration(p)}if(I.isPlaying()&&!t.mediaOutputMuted)if(pe.isActive()&&pe.context){let p=pe.getTime();p>=0&&I.attachAudioSource({currentTimeSeconds:p})}else{let p=document.querySelectorAll("audio[data-start]"),h=!1;for(let b of p){if(!(b instanceof HTMLMediaElement)||!b.isConnected)continue;let y=N(b,0),M=Number.parseFloat(b.dataset.duration??""),te=Number.isFinite(M)&&M>0?y+M:1/0,G=Number.parseFloat(b.dataset.playbackStart??b.dataset.mediaStart??"0")||0;if(Number.isFinite(y)&&t.currentTime>=y&&t.currentTime<te){b.paused?!b.error&&b.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&(I.attachAudioSource({currentTimeSeconds:t.currentTime}),h=!0):(I.attachAudioSource({el:b,compositionStart:y,mediaStart:G}),h=!0);break}}!h&&I.hasAudioSource()&&I.detachAudioSource()}else I.hasAudioSource()&&I.detachAudioSource();let d=I.now();if(t.currentTime=d,Ke(d),I.isPlaying()&&I.reachedEnd()){pe.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1;let p=I.getDuration();Number.isFinite(p)&&(I.seek(p),t.currentTime=p,Ke(p)),De("pause"),We(),Me(!0);return}I.isPlaying()&&We(),Me(!1)}finally{fn=!1}}},mi=d=>{let p=document.querySelectorAll("video, audio");for(let h of p){if(!(h instanceof HTMLMediaElement)||!h.isConnected)continue;let b=N(h,0);if(!Number.isFinite(b))continue;let y=Number.parseFloat(h.dataset.duration??""),M=Number.isFinite(y)&&y>0?b+y:1/0;if(d<b||d>=M)continue;let te=Number.parseFloat(h.dataset.playbackStart??h.dataset.mediaStart??"0")||0,G=d-b+te;if(G>=0)try{h.currentTime=G}catch{}}};if(ce.play=()=>{let d=t.capturedTimeline;if(I.isPlaying())return;let p=U(d,0);if(p>0)I.setDuration(p),I.reachedEnd()&&(I.seek(0),t.currentTime=0,Ke(0));else{let h=D(),b=Number(h?.getAttribute("data-duration")??0);b>0&&I.setDuration(b)}if(d&&d.pause(),!!I.play()){if(t.isPlaying=!0,t.mediaForceSyncNextTick=!0,mi(I.now()),di){let h=pe.startGeneration(),b=document.querySelectorAll("audio[data-start]");for(let y of b){if(!(y instanceof HTMLMediaElement)||!y.isConnected)continue;let M=N(y,0);if(!Number.isFinite(M))continue;let te=Number.parseFloat(y.dataset.playbackStart??y.dataset.mediaStart??"0")||0,G=Number.parseFloat(y.dataset.volume??""),ie=Number.isFinite(G)?G:1;pe.decodeAudioElement(y).then(xe=>{!xe||!I.isPlaying()||pe.schedulePlayback(y,xe,M,te,I.now(),ie*t.bridgeVolume,h,t.playbackRate)})}}De("play"),We(),Me(!0)}},ce.pause=()=>{if(!I.isPlaying())return;pe.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1,t.currentTime=I.now(),t.mediaForceSyncNextTick=!0,mi(t.currentTime);let d=t.capturedTimeline;d&&d.pause(),De("pause"),We(),Me(!0)},ce.seek=d=>{let p=tt(Math.max(0,Number(d)||0),t.canonicalFps);pe.stopAll(),I.detachAudioSource(),I.isPlaying()&&I.pause(),I.seek(p),t.currentTime=I.now(),t.isPlaying=!1,t.mediaForceSyncNextTick=!0;let b=t.capturedTimeline;b&&b.pause(),Ke(t.currentTime),De("pause"),We(),Me(!0)},ce.renderSeek=d=>{let p=tt(Math.max(0,Number(d)||0),t.canonicalFps);I.isPlaying()&&I.pause(),I.seek(p),t.currentTime=I.now(),t.isPlaying=!1,t.mediaForceSyncNextTick=!0,Ke(t.currentTime,{activateChildren:!0}),We(),Me(!0)},ce.getTime=()=>I.now(),ce.getDuration=()=>{let d=I.getDuration();return Number.isFinite(d)?d:0},ce.isPlaying=()=>I.isPlaying(),ce.setPlaybackRate=d=>{dn(d),I.setRate(t.playbackRate),pe.setRate(t.playbackRate)},t.capturedTimeline){let d=U(t.capturedTimeline,0);d>0&&I.setDuration(d),t.capturedTimeline.pause()}let pi=window.__player;if(pi){let d=["play","pause","seek","renderSeek","getTime","getDuration","isPlaying"];for(let p of d)Object.defineProperty(pi,p,{get:()=>ce[p],set:h=>{ce[p]=h},configurable:!0})}t.transportRafId=window.requestAnimationFrame(fi),Ge(),Me(!0);let mn=()=>{if(!t.tornDown){t.tornDown=!0,t.transportRafId!=null&&(window.cancelAnimationFrame(t.transportRafId),t.transportRafId=null),t.transportClock=null,pe.destroy(),ee!=null&&(window.clearTimeout(ee),ee=null),o!=null&&(window.cancelAnimationFrame(o),o=null),we(),t.controlBridgeHandler&&(window.removeEventListener("message",t.controlBridgeHandler),t.controlBridgeHandler=null),e&&(window.removeEventListener("error",e),e=null),n&&(window.removeEventListener("unhandledrejection",n),n=null),t.beforeUnloadHandler&&(window.removeEventListener("beforeunload",t.beforeUnloadHandler),t.beforeUnloadHandler=null),Pt.disablePickMode();for(let d of t.deterministicAdapters)if(!(!d||typeof d.revert!="function"))try{d.revert()}catch(p){_("runtime.init.site12",p)}t.deterministicAdapters=[];for(let d of i.splice(0))try{d()}catch(p){_("runtime.init.site13",p)}for(let d of t.injectedCompStyles)try{d.remove()}catch(p){_("runtime.init.site14",p)}t.injectedCompStyles=[];for(let d of t.injectedCompScripts)try{d.remove()}catch(p){_("runtime.init.site15",p)}t.injectedCompScripts=[],t.capturedTimeline=null,window.__hfRuntimeTeardown===mn&&(window.__hfRuntimeTeardown=null)}};window.__hfRuntimeTeardown=mn,t.beforeUnloadHandler=mn,window.addEventListener("beforeunload",t.beforeUnloadHandler)}var Co=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],ii=[[697,698,"ON"],[706,719,"ON"],[722,735,"ON"],[741,749,"ON"],[751,767,"ON"],[768,879,"NSM"],[884,885,"ON"],[894,894,"ON"],[900,901,"ON"],[903,903,"ON"],[1014,1014,"ON"],[1155,1161,"NSM"],[1418,1418,"ON"],[1421,1422,"ON"],[1423,1423,"ET"],[1424,1424,"R"],[1425,1469,"NSM"],[1470,1470,"R"],[1471,1471,"NSM"],[1472,1472,"R"],[1473,1474,"NSM"],[1475,1475,"R"],[1476,1477,"NSM"],[1478,1478,"R"],[1479,1479,"NSM"],[1480,1535,"R"],[1536,1541,"AN"],[1542,1543,"ON"],[1544,1544,"AL"],[1545,1546,"ET"],[1547,1547,"AL"],[1548,1548,"CS"],[1549,1549,"AL"],[1550,1551,"ON"],[1552,1562,"NSM"],[1563,1610,"AL"],[1611,1631,"NSM"],[1632,1641,"AN"],[1642,1642,"ET"],[1643,1644,"AN"],[1645,1647,"AL"],[1648,1648,"NSM"],[1649,1749,"AL"],[1750,1756,"NSM"],[1757,1757,"AN"],[1758,1758,"ON"],[1759,1764,"NSM"],[1765,1766,"AL"],[1767,1768,"NSM"],[1769,1769,"ON"],[1770,1773,"NSM"],[1774,1775,"AL"],[1776,1785,"EN"],[1786,1808,"AL"],[1809,1809,"NSM"],[1810,1839,"AL"],[1840,1866,"NSM"],[1867,1957,"AL"],[1958,1968,"NSM"],[1969,1983,"AL"],[1984,2026,"R"],[2027,2035,"NSM"],[2036,2037,"R"],[2038,2041,"ON"],[2042,2044,"R"],[2045,2045,"NSM"],[2046,2069,"R"],[2070,2073,"NSM"],[2074,2074,"R"],[2075,2083,"NSM"],[2084,2084,"R"],[2085,2087,"NSM"],[2088,2088,"R"],[2089,2093,"NSM"],[2094,2136,"R"],[2137,2139,"NSM"],[2140,2143,"R"],[2144,2191,"AL"],[2192,2193,"AN"],[2194,2198,"AL"],[2199,2207,"NSM"],[2208,2249,"AL"],[2250,2273,"NSM"],[2274,2274,"AN"],[2275,2306,"NSM"],[2362,2362,"NSM"],[2364,2364,"NSM"],[2369,2376,"NSM"],[2381,2381,"NSM"],[2385,2391,"NSM"],[2402,2403,"NSM"],[2433,2433,"NSM"],[2492,2492,"NSM"],[2497,2500,"NSM"],[2509,2509,"NSM"],[2530,2531,"NSM"],[2546,2547,"ET"],[2555,2555,"ET"],[2558,2558,"NSM"],[2561,2562,"NSM"],[2620,2620,"NSM"],[2625,2626,"NSM"],[2631,2632,"NSM"],[2635,2637,"NSM"],[2641,2641,"NSM"],[2672,2673,"NSM"],[2677,2677,"NSM"],[2689,2690,"NSM"],[2748,2748,"NSM"],[2753,2757,"NSM"],[2759,2760,"NSM"],[2765,2765,"NSM"],[2786,2787,"NSM"],[2801,2801,"ET"],[2810,2815,"NSM"],[2817,2817,"NSM"],[2876,2876,"NSM"],[2879,2879,"NSM"],[2881,2884,"NSM"],[2893,2893,"NSM"],[2901,2902,"NSM"],[2914,2915,"NSM"],[2946,2946,"NSM"],[3008,3008,"NSM"],[3021,3021,"NSM"],[3059,3064,"ON"],[3065,3065,"ET"],[3066,3066,"ON"],[3072,3072,"NSM"],[3076,3076,"NSM"],[3132,3132,"NSM"],[3134,3136,"NSM"],[3142,3144,"NSM"],[3146,3149,"NSM"],[3157,3158,"NSM"],[3170,3171,"NSM"],[3192,3198,"ON"],[3201,3201,"NSM"],[3260,3260,"NSM"],[3276,3277,"NSM"],[3298,3299,"NSM"],[3328,3329,"NSM"],[3387,3388,"NSM"],[3393,3396,"NSM"],[3405,3405,"NSM"],[3426,3427,"NSM"],[3457,3457,"NSM"],[3530,3530,"NSM"],[3538,3540,"NSM"],[3542,3542,"NSM"],[3633,3633,"NSM"],[3636,3642,"NSM"],[3647,3647,"ET"],[3655,3662,"NSM"],[3761,3761,"NSM"],[3764,3772,"NSM"],[3784,3790,"NSM"],[3864,3865,"NSM"],[3893,3893,"NSM"],[3895,3895,"NSM"],[3897,3897,"NSM"],[3898,3901,"ON"],[3953,3966,"NSM"],[3968,3972,"NSM"],[3974,3975,"NSM"],[3981,3991,"NSM"],[3993,4028,"NSM"],[4038,4038,"NSM"],[4141,4144,"NSM"],[4146,4151,"NSM"],[4153,4154,"NSM"],[4157,4158,"NSM"],[4184,4185,"NSM"],[4190,4192,"NSM"],[4209,4212,"NSM"],[4226,4226,"NSM"],[4229,4230,"NSM"],[4237,4237,"NSM"],[4253,4253,"NSM"],[4957,4959,"NSM"],[5008,5017,"ON"],[5120,5120,"ON"],[5760,5760,"WS"],[5787,5788,"ON"],[5906,5908,"NSM"],[5938,5939,"NSM"],[5970,5971,"NSM"],[6002,6003,"NSM"],[6068,6069,"NSM"],[6071,6077,"NSM"],[6086,6086,"NSM"],[6089,6099,"NSM"],[6107,6107,"ET"],[6109,6109,"NSM"],[6128,6137,"ON"],[6144,6154,"ON"],[6155,6157,"NSM"],[6158,6158,"BN"],[6159,6159,"NSM"],[6277,6278,"NSM"],[6313,6313,"NSM"],[6432,6434,"NSM"],[6439,6440,"NSM"],[6450,6450,"NSM"],[6457,6459,"NSM"],[6464,6464,"ON"],[6468,6469,"ON"],[6622,6655,"ON"],[6679,6680,"NSM"],[6683,6683,"NSM"],[6742,6742,"NSM"],[6744,6750,"NSM"],[6752,6752,"NSM"],[6754,6754,"NSM"],[6757,6764,"NSM"],[6771,6780,"NSM"],[6783,6783,"NSM"],[6832,6877,"NSM"],[6880,6891,"NSM"],[6912,6915,"NSM"],[6964,6964,"NSM"],[6966,6970,"NSM"],[6972,6972,"NSM"],[6978,6978,"NSM"],[7019,7027,"NSM"],[7040,7041,"NSM"],[7074,7077,"NSM"],[7080,7081,"NSM"],[7083,7085,"NSM"],[7142,7142,"NSM"],[7144,7145,"NSM"],[7149,7149,"NSM"],[7151,7153,"NSM"],[7212,7219,"NSM"],[7222,7223,"NSM"],[7376,7378,"NSM"],[7380,7392,"NSM"],[7394,7400,"NSM"],[7405,7405,"NSM"],[7412,7412,"NSM"],[7416,7417,"NSM"],[7616,7679,"NSM"],[8125,8125,"ON"],[8127,8129,"ON"],[8141,8143,"ON"],[8157,8159,"ON"],[8173,8175,"ON"],[8189,8190,"ON"],[8192,8202,"WS"],[8203,8205,"BN"],[8207,8207,"R"],[8208,8231,"ON"],[8232,8232,"WS"],[8233,8233,"B"],[8234,8238,"BN"],[8239,8239,"CS"],[8240,8244,"ET"],[8245,8259,"ON"],[8260,8260,"CS"],[8261,8286,"ON"],[8287,8287,"WS"],[8288,8303,"BN"],[8304,8304,"EN"],[8308,8313,"EN"],[8314,8315,"ES"],[8316,8318,"ON"],[8320,8329,"EN"],[8330,8331,"ES"],[8332,8334,"ON"],[8352,8399,"ET"],[8400,8432,"NSM"],[8448,8449,"ON"],[8451,8454,"ON"],[8456,8457,"ON"],[8468,8468,"ON"],[8470,8472,"ON"],[8478,8483,"ON"],[8485,8485,"ON"],[8487,8487,"ON"],[8489,8489,"ON"],[8494,8494,"ET"],[8506,8507,"ON"],[8512,8516,"ON"],[8522,8525,"ON"],[8528,8543,"ON"],[8585,8587,"ON"],[8592,8721,"ON"],[8722,8722,"ES"],[8723,8723,"ET"],[8724,9013,"ON"],[9083,9108,"ON"],[9110,9257,"ON"],[9280,9290,"ON"],[9312,9351,"ON"],[9352,9371,"EN"],[9450,9899,"ON"],[9901,10239,"ON"],[10496,11123,"ON"],[11126,11263,"ON"],[11493,11498,"ON"],[11503,11505,"NSM"],[11513,11519,"ON"],[11647,11647,"NSM"],[11744,11775,"NSM"],[11776,11869,"ON"],[11904,11929,"ON"],[11931,12019,"ON"],[12032,12245,"ON"],[12272,12287,"ON"],[12288,12288,"WS"],[12289,12292,"ON"],[12296,12320,"ON"],[12330,12333,"NSM"],[12336,12336,"ON"],[12342,12343,"ON"],[12349,12351,"ON"],[12441,12442,"NSM"],[12443,12444,"ON"],[12448,12448,"ON"],[12539,12539,"ON"],[12736,12773,"ON"],[12783,12783,"ON"],[12829,12830,"ON"],[12880,12895,"ON"],[12924,12926,"ON"],[12977,12991,"ON"],[13004,13007,"ON"],[13175,13178,"ON"],[13278,13279,"ON"],[13311,13311,"ON"],[19904,19967,"ON"],[42128,42182,"ON"],[42509,42511,"ON"],[42607,42610,"NSM"],[42611,42611,"ON"],[42612,42621,"NSM"],[42622,42623,"ON"],[42654,42655,"NSM"],[42736,42737,"NSM"],[42752,42785,"ON"],[42888,42888,"ON"],[43010,43010,"NSM"],[43014,43014,"NSM"],[43019,43019,"NSM"],[43045,43046,"NSM"],[43048,43051,"ON"],[43052,43052,"NSM"],[43064,43065,"ET"],[43124,43127,"ON"],[43204,43205,"NSM"],[43232,43249,"NSM"],[43263,43263,"NSM"],[43302,43309,"NSM"],[43335,43345,"NSM"],[43392,43394,"NSM"],[43443,43443,"NSM"],[43446,43449,"NSM"],[43452,43453,"NSM"],[43493,43493,"NSM"],[43561,43566,"NSM"],[43569,43570,"NSM"],[43573,43574,"NSM"],[43587,43587,"NSM"],[43596,43596,"NSM"],[43644,43644,"NSM"],[43696,43696,"NSM"],[43698,43700,"NSM"],[43703,43704,"NSM"],[43710,43711,"NSM"],[43713,43713,"NSM"],[43756,43757,"NSM"],[43766,43766,"NSM"],[43882,43883,"ON"],[44005,44005,"NSM"],[44008,44008,"NSM"],[44013,44013,"NSM"],[64285,64285,"R"],[64286,64286,"NSM"],[64287,64296,"R"],[64297,64297,"ES"],[64298,64335,"R"],[64336,64450,"AL"],[64451,64466,"ON"],[64467,64829,"AL"],[64830,64847,"ON"],[64848,64911,"AL"],[64912,64913,"ON"],[64914,64967,"AL"],[64968,64975,"ON"],[64976,65007,"BN"],[65008,65020,"AL"],[65021,65023,"ON"],[65024,65039,"NSM"],[65040,65049,"ON"],[65056,65071,"NSM"],[65072,65103,"ON"],[65104,65104,"CS"],[65105,65105,"ON"],[65106,65106,"CS"],[65108,65108,"ON"],[65109,65109,"CS"],[65110,65118,"ON"],[65119,65119,"ET"],[65120,65121,"ON"],[65122,65123,"ES"],[65124,65126,"ON"],[65128,65128,"ON"],[65129,65130,"ET"],[65131,65131,"ON"],[65136,65278,"AL"],[65279,65279,"BN"],[65281,65282,"ON"],[65283,65285,"ET"],[65286,65290,"ON"],[65291,65291,"ES"],[65292,65292,"CS"],[65293,65293,"ES"],[65294,65295,"CS"],[65296,65305,"EN"],[65306,65306,"CS"],[65307,65312,"ON"],[65339,65344,"ON"],[65371,65381,"ON"],[65504,65505,"ET"],[65506,65508,"ON"],[65509,65510,"ET"],[65512,65518,"ON"],[65520,65528,"BN"],[65529,65533,"ON"],[65534,65535,"BN"],[65793,65793,"ON"],[65856,65932,"ON"],[65936,65948,"ON"],[65952,65952,"ON"],[66045,66045,"NSM"],[66272,66272,"NSM"],[66273,66299,"EN"],[66422,66426,"NSM"],[67584,67870,"R"],[67871,67871,"ON"],[67872,68096,"R"],[68097,68099,"NSM"],[68100,68100,"R"],[68101,68102,"NSM"],[68103,68107,"R"],[68108,68111,"NSM"],[68112,68151,"R"],[68152,68154,"NSM"],[68155,68158,"R"],[68159,68159,"NSM"],[68160,68324,"R"],[68325,68326,"NSM"],[68327,68408,"R"],[68409,68415,"ON"],[68416,68863,"R"],[68864,68899,"AL"],[68900,68903,"NSM"],[68904,68911,"AL"],[68912,68921,"AN"],[68922,68927,"AL"],[68928,68937,"AN"],[68938,68968,"R"],[68969,68973,"NSM"],[68974,68974,"ON"],[68975,69215,"R"],[69216,69246,"AN"],[69247,69290,"R"],[69291,69292,"NSM"],[69293,69311,"R"],[69312,69327,"AL"],[69328,69336,"ON"],[69337,69369,"AL"],[69370,69375,"NSM"],[69376,69423,"R"],[69424,69445,"AL"],[69446,69456,"NSM"],[69457,69487,"AL"],[69488,69505,"R"],[69506,69509,"NSM"],[69510,69631,"R"],[69633,69633,"NSM"],[69688,69702,"NSM"],[69714,69733,"ON"],[69744,69744,"NSM"],[69747,69748,"NSM"],[69759,69761,"NSM"],[69811,69814,"NSM"],[69817,69818,"NSM"],[69826,69826,"NSM"],[69888,69890,"NSM"],[69927,69931,"NSM"],[69933,69940,"NSM"],[70003,70003,"NSM"],[70016,70017,"NSM"],[70070,70078,"NSM"],[70089,70092,"NSM"],[70095,70095,"NSM"],[70191,70193,"NSM"],[70196,70196,"NSM"],[70198,70199,"NSM"],[70206,70206,"NSM"],[70209,70209,"NSM"],[70367,70367,"NSM"],[70371,70378,"NSM"],[70400,70401,"NSM"],[70459,70460,"NSM"],[70464,70464,"NSM"],[70502,70508,"NSM"],[70512,70516,"NSM"],[70587,70592,"NSM"],[70606,70606,"NSM"],[70608,70608,"NSM"],[70610,70610,"NSM"],[70625,70626,"NSM"],[70712,70719,"NSM"],[70722,70724,"NSM"],[70726,70726,"NSM"],[70750,70750,"NSM"],[70835,70840,"NSM"],[70842,70842,"NSM"],[70847,70848,"NSM"],[70850,70851,"NSM"],[71090,71093,"NSM"],[71100,71101,"NSM"],[71103,71104,"NSM"],[71132,71133,"NSM"],[71219,71226,"NSM"],[71229,71229,"NSM"],[71231,71232,"NSM"],[71264,71276,"ON"],[71339,71339,"NSM"],[71341,71341,"NSM"],[71344,71349,"NSM"],[71351,71351,"NSM"],[71453,71453,"NSM"],[71455,71455,"NSM"],[71458,71461,"NSM"],[71463,71467,"NSM"],[71727,71735,"NSM"],[71737,71738,"NSM"],[71995,71996,"NSM"],[71998,71998,"NSM"],[72003,72003,"NSM"],[72148,72151,"NSM"],[72154,72155,"NSM"],[72160,72160,"NSM"],[72193,72198,"NSM"],[72201,72202,"NSM"],[72243,72248,"NSM"],[72251,72254,"NSM"],[72263,72263,"NSM"],[72273,72278,"NSM"],[72281,72283,"NSM"],[72330,72342,"NSM"],[72344,72345,"NSM"],[72544,72544,"NSM"],[72546,72548,"NSM"],[72550,72550,"NSM"],[72752,72758,"NSM"],[72760,72765,"NSM"],[72850,72871,"NSM"],[72874,72880,"NSM"],[72882,72883,"NSM"],[72885,72886,"NSM"],[73009,73014,"NSM"],[73018,73018,"NSM"],[73020,73021,"NSM"],[73023,73029,"NSM"],[73031,73031,"NSM"],[73104,73105,"NSM"],[73109,73109,"NSM"],[73111,73111,"NSM"],[73459,73460,"NSM"],[73472,73473,"NSM"],[73526,73530,"NSM"],[73536,73536,"NSM"],[73538,73538,"NSM"],[73562,73562,"NSM"],[73685,73692,"ON"],[73693,73696,"ET"],[73697,73713,"ON"],[78912,78912,"NSM"],[78919,78933,"NSM"],[90398,90409,"NSM"],[90413,90415,"NSM"],[92912,92916,"NSM"],[92976,92982,"NSM"],[94031,94031,"NSM"],[94095,94098,"NSM"],[94178,94178,"ON"],[94180,94180,"NSM"],[113821,113822,"NSM"],[113824,113827,"BN"],[117760,117973,"ON"],[118e3,118009,"EN"],[118010,118012,"ON"],[118016,118451,"ON"],[118458,118480,"ON"],[118496,118512,"ON"],[118528,118573,"NSM"],[118576,118598,"NSM"],[119143,119145,"NSM"],[119155,119162,"BN"],[119163,119170,"NSM"],[119173,119179,"NSM"],[119210,119213,"NSM"],[119273,119274,"ON"],[119296,119361,"ON"],[119362,119364,"NSM"],[119365,119365,"ON"],[119552,119638,"ON"],[120513,120513,"ON"],[120539,120539,"ON"],[120571,120571,"ON"],[120597,120597,"ON"],[120629,120629,"ON"],[120655,120655,"ON"],[120687,120687,"ON"],[120713,120713,"ON"],[120745,120745,"ON"],[120771,120771,"ON"],[120782,120831,"EN"],[121344,121398,"NSM"],[121403,121452,"NSM"],[121461,121461,"NSM"],[121476,121476,"NSM"],[121499,121503,"NSM"],[121505,121519,"NSM"],[122880,122886,"NSM"],[122888,122904,"NSM"],[122907,122913,"NSM"],[122915,122916,"NSM"],[122918,122922,"NSM"],[123023,123023,"NSM"],[123184,123190,"NSM"],[123566,123566,"NSM"],[123628,123631,"NSM"],[123647,123647,"ET"],[124140,124143,"NSM"],[124398,124399,"NSM"],[124643,124643,"NSM"],[124646,124646,"NSM"],[124654,124655,"NSM"],[124661,124661,"NSM"],[124928,125135,"R"],[125136,125142,"NSM"],[125143,125251,"R"],[125252,125258,"NSM"],[125259,126063,"R"],[126064,126143,"AL"],[126144,126207,"R"],[126208,126287,"AL"],[126288,126463,"R"],[126464,126703,"AL"],[126704,126705,"ON"],[126706,126719,"AL"],[126720,126975,"R"],[126976,127019,"ON"],[127024,127123,"ON"],[127136,127150,"ON"],[127153,127167,"ON"],[127169,127183,"ON"],[127185,127221,"ON"],[127232,127242,"EN"],[127243,127247,"ON"],[127279,127279,"ON"],[127338,127343,"ON"],[127405,127405,"ON"],[127584,127589,"ON"],[127744,128728,"ON"],[128732,128748,"ON"],[128752,128764,"ON"],[128768,128985,"ON"],[128992,129003,"ON"],[129008,129008,"ON"],[129024,129035,"ON"],[129040,129095,"ON"],[129104,129113,"ON"],[129120,129159,"ON"],[129168,129197,"ON"],[129200,129211,"ON"],[129216,129217,"ON"],[129232,129240,"ON"],[129280,129623,"ON"],[129632,129645,"ON"],[129648,129660,"ON"],[129664,129674,"ON"],[129678,129734,"ON"],[129736,129736,"ON"],[129741,129756,"ON"],[129759,129770,"ON"],[129775,129784,"ON"],[129792,129938,"ON"],[129940,130031,"ON"],[130032,130041,"EN"],[130042,130042,"ON"],[131070,131071,"BN"],[196606,196607,"BN"],[262142,262143,"BN"],[327678,327679,"BN"],[393214,393215,"BN"],[458750,458751,"BN"],[524286,524287,"BN"],[589822,589823,"BN"],[655358,655359,"BN"],[720894,720895,"BN"],[786430,786431,"BN"],[851966,851967,"BN"],[917502,917759,"BN"],[917760,917999,"NSM"],[918e3,921599,"BN"],[983038,983039,"BN"],[1048574,1048575,"BN"],[1114110,1114111,"BN"]];function Al(t){if(t<=255)return Co[t];let e=0,n=ii.length-1;for(;e<=n;){let i=e+n>>1,r=ii[i];if(t<r[0]){n=i-1;continue}if(t>r[1]){e=i+1;continue}return r[2]}return"L"}function El(t){let e=t.length;if(e===0)return null;let n=new Array(e),i=!1;for(let c=0;c<e;){let u=t.charCodeAt(c),m=u,f=1;if(u>=55296&&u<=56319&&c+1<e){let F=t.charCodeAt(c+1);F>=56320&&F<=57343&&(m=(u-55296<<10)+(F-56320)+65536,f=2)}let x=Al(m);(x==="R"||x==="AL"||x==="AN")&&(i=!0);for(let F=0;F<f;F++)n[c+F]=x;c+=f}if(!i)return null;let r=0;for(let c=0;c<e;c++){let u=n[c];if(u==="L"){r=0;break}if(u==="R"||u==="AL"){r=1;break}}let o=new Int8Array(e);for(let c=0;c<e;c++)o[c]=r;let s=r&1?"R":"L",l=s,a=l;for(let c=0;c<e;c++)n[c]==="NSM"?n[c]=a:a=n[c];a=l;for(let c=0;c<e;c++){let u=n[c];u==="EN"?n[c]=a==="AL"?"AN":"EN":(u==="R"||u==="L"||u==="AL")&&(a=u)}for(let c=0;c<e;c++)n[c]==="AL"&&(n[c]="R");for(let c=1;c<e-1;c++)n[c]==="ES"&&n[c-1]==="EN"&&n[c+1]==="EN"&&(n[c]="EN"),n[c]==="CS"&&(n[c-1]==="EN"||n[c-1]==="AN")&&n[c+1]===n[c-1]&&(n[c]=n[c-1]);for(let c=0;c<e;c++){if(n[c]!=="EN")continue;let u;for(u=c-1;u>=0&&n[u]==="ET";u--)n[u]="EN";for(u=c+1;u<e&&n[u]==="ET";u++)n[u]="EN"}for(let c=0;c<e;c++){let u=n[c];(u==="WS"||u==="ES"||u==="ET"||u==="CS")&&(n[c]="ON")}a=l;for(let c=0;c<e;c++){let u=n[c];u==="EN"?n[c]=a==="L"?"L":"EN":(u==="R"||u==="L")&&(a=u)}for(let c=0;c<e;c++){if(n[c]!=="ON")continue;let u=c+1;for(;u<e&&n[u]==="ON";)u++;let m=c>0?n[c-1]:l,f=u<e?n[u]:l,x=m!=="L"?"R":"L";if(x===(f!=="L"?"R":"L"))for(let E=c;E<u;E++)n[E]=x;c=u-1}for(let c=0;c<e;c++)n[c]==="ON"&&(n[c]=s);for(let c=0;c<e;c++){let u=n[c];(o[c]&1)===0?u==="R"?o[c]++:(u==="AN"||u==="EN")&&(o[c]+=2):(u==="L"||u==="AN"||u==="EN")&&o[c]++}return o}function Mo(t,e){let n=El(t);if(n===null)return null;let i=new Int8Array(e.length);for(let r=0;r<e.length;r++)i[r]=n[e[r]];return i}var Fl=/[ \\t\\n\\r\\f]+/g,wl=/[\\t\\n\\r\\f]| {2,}|^ | $/;function Nl(t){let e=t??"normal";return e==="pre-wrap"?{mode:e,preserveOrdinarySpaces:!0,preserveHardBreaks:!0}:{mode:e,preserveOrdinarySpaces:!1,preserveHardBreaks:!1}}function Cl(t){if(!wl.test(t))return t;let e=t.replace(Fl," ");return e.charCodeAt(0)===32&&(e=e.slice(1)),e.length>0&&e.charCodeAt(e.length-1)===32&&(e=e.slice(0,-1)),e}function Ml(t){return/[\\r\\f]/.test(t)?t.replace(/\\r\\n/g,`\n`).replace(/[\\r\\f]/g,`\n`):t.replace(/\\r\\n/g,`\n`)}var ri=null,Tl;function kl(){return ri===null&&(ri=new Intl.Segmenter(Tl,{granularity:"word"})),ri}var vl=/\\p{Script=Arabic}/u,sn=/\\p{M}/u,Bo=/\\p{Nd}/u;function To(t){return vl.test(t)}function ko(t){return t>=19968&&t<=40959||t>=13312&&t<=19903||t>=131072&&t<=173791||t>=173824&&t<=177983||t>=177984&&t<=178207||t>=178208&&t<=183983||t>=183984&&t<=191471||t>=191472&&t<=192093||t>=194560&&t<=195103||t>=196608&&t<=201551||t>=201552&&t<=205743||t>=205744&&t<=210041||t>=63744&&t<=64255||t>=12288&&t<=12351||t>=12352&&t<=12447||t>=12448&&t<=12543||t>=44032&&t<=55215||t>=65280&&t<=65519}function Re(t){for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);if(!(n<12288)){if(n>=55296&&n<=56319&&e+1<t.length){let i=t.charCodeAt(e+1);if(i>=56320&&i<=57343){let r=(n-55296<<10)+(i-56320)+65536;if(ko(r))return!0;e++;continue}}if(ko(n))return!0}}return!1}function _l(t){let e=un(t);return e!==null&&(ln.has(e)||ze.has(e))}var Rl=new Set(["\\xA0","\\u202F","\\u2060","\\uFEFF"]);function Ll(t){return Re(t)}function Dl(t){let e=un(t);return e!==null&&Rl.has(e)}function an(t){return!_l(t)&&!Dl(t)}var ln=new Set(["\\uFF0C","\\uFF0E","\\uFF01","\\uFF1A","\\uFF1B","\\uFF1F","\\u3001","\\u3002","\\u30FB","\\uFF09","\\u3015","\\u3009","\\u300B","\\u300D","\\u300F","\\u3011","\\u3017","\\u3019","\\u301B","\\u30FC","\\u3005","\\u303B","\\u309D","\\u309E","\\u30FD","\\u30FE"]),Ot=new Set([\'"\',"(","[","{","\\u201C","\\u2018","\\xAB","\\u2039","\\uFF08","\\u3014","\\u3008","\\u300A","\\u300C","\\u300E","\\u3010","\\u3016","\\u3018","\\u301A"]),si=new Set(["\'","\\u2019"]),ze=new Set([".",",","!","?",":",";","\\u060C","\\u061B","\\u061F","\\u0964","\\u0965","\\u104A","\\u104B","\\u104C","\\u104D","\\u104F",")","]","}","%",\'"\',"\\u201D","\\u2019","\\xBB","\\u203A","\\u2026"]),Bl=new Set([":",".","\\u060C","\\u061B"]),Il=new Set(["\\u104F"]),Ol=new Set(["\\u201D","\\u2019","\\xBB","\\u203A","\\u300D","\\u300F","\\u3011","\\u300B","\\u3009","\\u3015","\\uFF09"]);function Pl(t){if(ai(t))return!0;let e=!1;for(let n of t){if(ze.has(n)){e=!0;continue}if(!(e&&sn.test(n)))return!1}return e}function Wl(t){for(let e of t)if(!ln.has(e)&&!ze.has(e))return!1;return t.length>0}function Hl(t){if(ai(t))return!0;for(let e of t)if(!Ot.has(e)&&!si.has(e)&&!sn.test(e))return!1;return t.length>0}function ai(t){let e=!1;for(let n of t)if(!(n==="\\\\"||sn.test(n))){if(Ot.has(n)||ze.has(n)||si.has(n)){e=!0;continue}return!1}return e}function Io(t,e){let n=e-1;if(n<=0)return Math.max(n,0);let i=t.charCodeAt(n);if(i<56320||i>57343)return n;let r=n-1;if(r<0)return n;let o=t.charCodeAt(r);return o>=55296&&o<=56319?r:n}function un(t){if(t.length===0)return null;let e=Io(t,t.length);return t.slice(e)}function ql(t){let e=Array.from(t),n=e.length;for(;n>0;){let i=e[n-1];if(sn.test(i)){n--;continue}if(Ot.has(i)||si.has(i)){n--;continue}break}return n<=0||n===e.length?null:{head:e.slice(0,n).join(""),tail:e.slice(n).join("")}}function Vl(t,e,n){return n==="text"&&!e&&t.length===1&&t!=="-"&&t!=="\\u2014"?t:null}function vo(t,e,n,i){let r=e[i],o=t[i];if(r==null)return o;let s=n[i];if(o.length===s)return o;let l=r.repeat(s);return t[i]=l,l}function _o(t,e){return t&&e!==null&&Bl.has(e)}function Ul(t){let e=un(t);return e!==null&&Il.has(e)}function zl(t){if(t.length<2||t[0]!==" ")return null;let e=t.slice(1);return/^\\p{M}+$/u.test(e)?{space:" ",marks:e}:null}function cn(t){let e=t.length;for(;e>0;){let n=Io(t,e),i=t.slice(n,e);if(Ol.has(i))return!0;if(!ze.has(i))return!1;e=n}return!1}function jl(t,e){if(e.preserveOrdinarySpaces||e.preserveHardBreaks){if(t===" ")return"preserved-space";if(t===" ")return"tab";if(e.preserveHardBreaks&&t===`\n`)return"hard-break"}return t===" "?"space":t==="\\xA0"||t==="\\u202F"||t==="\\u2060"||t==="\\uFEFF"?"glue":t==="\\u200B"?"zero-width-break":t==="\\xAD"?"soft-hyphen":"text"}var $l=/[\\x20\\t\\n\\xA0\\xAD\\u200B\\u202F\\u2060\\uFEFF]/;function Te(t){return t.length===1?t[0]:t.join("")}function Gl(t,e){let n=[];for(let i=t.length-1;i>=0;i--)n.push(t[i]);return n.push(e),Te(n)}function Kl(t,e,n,i){if(!$l.test(t))return[{text:t,isWordLike:e,kind:"text",start:n}];let r=[],o=null,s=[],l=n,a=!1,c=0;for(let u of t){let m=jl(u,i),f=m==="text"&&e;if(o!==null&&m===o&&f===a){s.push(u),c+=u.length;continue}o!==null&&r.push({text:Te(s),isWordLike:a,kind:o,start:l}),o=m,s=[u],l=n+c,a=f,c+=u.length}return o!==null&&r.push({text:Te(s),isWordLike:a,kind:o,start:l}),r}function oi(t){return t==="space"||t==="preserved-space"||t==="zero-width-break"||t==="hard-break"}var Jl=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function Ql(t,e){let n=t.texts[e];return n.startsWith("www.")?!0:Jl.test(n)&&e+1<t.len&&t.kinds[e+1]==="text"&&t.texts[e+1]==="//"}function Yl(t){return t.includes("?")&&(t.includes("://")||t.startsWith("www."))}function Zl(t){let e=t.texts.slice(),n=t.isWordLike.slice(),i=t.kinds.slice(),r=t.starts.slice();for(let s=0;s<t.len;s++){if(i[s]!=="text"||!Ql(t,s))continue;let l=[e[s]],a=s+1;for(;a<t.len&&!oi(i[a]);){l.push(e[a]),n[s]=!0;let c=e[a].includes("?");if(i[a]="text",e[a]="",a++,c)break}e[s]=Te(l)}let o=0;for(let s=0;s<e.length;s++){let l=e[s];l.length!==0&&(o!==s&&(e[o]=l,n[o]=n[s],i[o]=i[s],r[o]=r[s]),o++)}return e.length=o,n.length=o,i.length=o,r.length=o,{len:o,texts:e,isWordLike:n,kinds:i,starts:r}}function Xl(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o];if(e.push(s),n.push(t.isWordLike[o]),i.push(t.kinds[o]),r.push(t.starts[o]),!Yl(s))continue;let l=o+1;if(l>=t.len||oi(t.kinds[l]))continue;let a=[],c=t.starts[l],u=l;for(;u<t.len&&!oi(t.kinds[u]);)a.push(t.texts[u]),u++;a.length>0&&(e.push(Te(a)),n.push(!0),i.push("text"),r.push(c),o=u-1)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}var eu=new Set([":","-","/","\\xD7",",",".","+","\\u2013","\\u2014"]),Ro=/^[A-Za-z0-9_]+[,:;]*$/,Lo=/[,:;]+$/;function Oo(t){for(let e of t)if(Bo.test(e))return!0;return!1}function It(t){if(t.length===0)return!1;for(let e of t)if(!(Bo.test(e)||eu.has(e)))return!1;return!0}function tu(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o],l=t.kinds[o];if(l==="text"&&It(s)&&Oo(s)){let a=[s],c=o+1;for(;c<t.len&&t.kinds[c]==="text"&&It(t.texts[c]);)a.push(t.texts[c]),c++;e.push(Te(a)),n.push(!0),i.push("text"),r.push(t.starts[o]),o=c-1;continue}e.push(s),n.push(t.isWordLike[o]),i.push(l),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function nu(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o],l=t.kinds[o],a=t.isWordLike[o];if(l==="text"&&a&&Ro.test(s)){let c=[s],u=Lo.test(s),m=o+1;for(;u&&m<t.len&&t.kinds[m]==="text"&&t.isWordLike[m]&&Ro.test(t.texts[m]);){let f=t.texts[m];c.push(f),u=Lo.test(f),m++}e.push(Te(c)),n.push(!0),i.push("text"),r.push(t.starts[o]),o=m-1;continue}e.push(s),n.push(a),i.push(l),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function iu(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o];if(t.kinds[o]==="text"&&s.includes("-")){let l=s.split("-"),a=l.length>1;for(let c=0;c<l.length;c++){let u=l[c];if(!a)break;(u.length===0||!Oo(u)||!It(u))&&(a=!1)}if(a){let c=0;for(let u=0;u<l.length;u++){let m=l[u],f=u<l.length-1?`${m}-`:m;e.push(f),n.push(!0),i.push("text"),r.push(t.starts[o]+c),c+=f.length}continue}}e.push(s),n.push(t.isWordLike[o]),i.push(t.kinds[o]),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function ru(t){let e=[],n=[],i=[],r=[],o=0;for(;o<t.len;){let s=[t.texts[o]],l=t.isWordLike[o],a=t.kinds[o],c=t.starts[o];if(a==="glue"){let u=[s[0]],m=c;for(o++;o<t.len&&t.kinds[o]==="glue";)u.push(t.texts[o]),o++;let f=Te(u);if(o<t.len&&t.kinds[o]==="text")s[0]=f,s.push(t.texts[o]),l=t.isWordLike[o],a="text",c=m,o++;else{e.push(f),n.push(!1),i.push("glue"),r.push(m);continue}}else o++;if(a==="text")for(;o<t.len&&t.kinds[o]==="glue";){let u=[];for(;o<t.len&&t.kinds[o]==="glue";)u.push(t.texts[o]),o++;let m=Te(u);if(o<t.len&&t.kinds[o]==="text"){s.push(m,t.texts[o]),l=l||t.isWordLike[o],o++;continue}s.push(m)}e.push(Te(s)),n.push(l),i.push(a),r.push(c)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function ou(t){let e=t.texts.slice(),n=t.isWordLike.slice(),i=t.kinds.slice(),r=t.starts.slice();for(let o=0;o<e.length-1;o++){if(i[o]!=="text"||i[o+1]!=="text"||!Re(e[o])||!Re(e[o+1]))continue;let s=ql(e[o]);s!==null&&(e[o]=s.head,e[o+1]=s.tail+e[o+1],r[o+1]=r[o]+s.head.length)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Do(t,e,n){let i=kl(),r=0,o=[],s=[],l=[],a=[],c=[],u=[],m=[],f=[],x=[],F=[],E=[],S=[];for(let N of i.segment(t))for(let g of Kl(N.segment,N.isWordLike??!1,N.index,n)){let le=function(){u[R]!==null&&(s[R]=[vo(o,u,m,R)],u[R]=null),s[R].push(g.text),l[R]=l[R]||g.isWordLike,f[R]=f[R]||w,x[R]=x[R]||T,F[R]=P,E[R]=J,S[R]=_o(x[R],L)},A=g.kind==="text",C=Vl(g.text,g.isWordLike,g.kind),w=Re(g.text),T=To(g.text),L=un(g.text),P=cn(g.text),J=Ul(g.text),R=r-1;e.carryCJKAfterClosingQuote&&A&&r>0&&a[R]==="text"&&w&&f[R]&&F[R]||A&&r>0&&a[R]==="text"&&Wl(g.text)&&f[R]||A&&r>0&&a[R]==="text"&&E[R]?le():A&&r>0&&a[R]==="text"&&g.isWordLike&&T&&S[R]?(le(),l[R]=!0):C!==null&&r>0&&a[R]==="text"&&u[R]===C?m[R]=(m[R]??1)+1:A&&!g.isWordLike&&r>0&&a[R]==="text"&&(Pl(g.text)||g.text==="-"&&l[R])?le():(o[r]=g.text,s[r]=[g.text],l[r]=g.isWordLike,a[r]=g.kind,c[r]=g.start,u[r]=C,m[r]=C===null?0:1,f[r]=w,x[r]=T,F[r]=P,E[r]=J,S[r]=_o(T,L),r++)}for(let N=0;N<r;N++){if(u[N]!==null){o[N]=vo(o,u,m,N);continue}o[N]=Te(s[N])}for(let N=1;N<r;N++)a[N]==="text"&&!l[N]&&ai(o[N])&&a[N-1]==="text"&&(o[N-1]+=o[N],l[N-1]=l[N-1]||l[N],o[N]="");let B=Array.from({length:r},()=>null),D=-1;for(let N=r-1;N>=0;N--){let g=o[N];if(g.length!==0){if(a[N]==="text"&&!l[N]&&Hl(g)&&D>=0&&a[D]==="text"){let A=B[D]??[];A.push(g),B[D]=A,c[D]=c[N],o[N]="";continue}D=N}}for(let N=0;N<r;N++){let g=B[N];g!=null&&(o[N]=Gl(g,o[N]))}let v=0;for(let N=0;N<r;N++){let g=o[N];g.length!==0&&(v!==N&&(o[v]=g,l[v]=l[N],a[v]=a[N],c[v]=c[N]),v++)}o.length=v,l.length=v,a.length=v,c.length=v;let X=ru({len:v,texts:o,isWordLike:l,kinds:a,starts:c}),q=ou(nu(iu(tu(Xl(Zl(X))))));for(let N=0;N<q.len-1;N++){let g=zl(q.texts[N]);g!==null&&(q.kinds[N]!=="space"&&q.kinds[N]!=="preserved-space"||q.kinds[N+1]!=="text"||!To(q.texts[N+1])||(q.texts[N]=g.space,q.isWordLike[N]=!1,q.kinds[N]=q.kinds[N]==="preserved-space"?"preserved-space":"space",q.texts[N+1]=g.marks+q.texts[N+1],q.starts[N+1]=q.starts[N]+g.space.length))}return q}function su(t,e){if(t.len===0)return[];if(!e.preserveHardBreaks)return[{startSegmentIndex:0,endSegmentIndex:t.len,consumedEndSegmentIndex:t.len}];let n=[],i=0;for(let r=0;r<t.len;r++)t.kinds[r]==="hard-break"&&(n.push({startSegmentIndex:i,endSegmentIndex:r,consumedEndSegmentIndex:r+1}),i=r+1);return i<t.len&&n.push({startSegmentIndex:i,endSegmentIndex:t.len,consumedEndSegmentIndex:t.len}),n}function au(t){if(t.len<=1)return t;let e=[],n=[],i=[],r=[],o=null,s=!1,l=0,a=!1,c=!1;function u(){o!==null&&(e.push(Te(o)),n.push(s),i.push("text"),r.push(l),o=null)}for(let m=0;m<t.len;m++){let f=t.texts[m],x=t.kinds[m],F=t.isWordLike[m],E=t.starts[m];if(x==="text"){let S=Ll(f),B=an(f);if(o!==null&&a&&c){o.push(f),s=s||F,a=a||S,c=B;continue}u(),o=[f],s=F,l=E,a=S,c=B;continue}u(),e.push(f),n.push(F),i.push(x),r.push(E)}return u(),{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Po(t,e,n="normal",i="normal"){let r=Nl(n),o=r.mode==="pre-wrap"?Ml(t):Cl(t);if(o.length===0)return{normalized:o,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let s=i==="keep-all"?au(Do(o,e,r)):Do(o,e,r);return{normalized:o,chunks:su(s,r),...s}}var at=null,Wo=new Map,lt=null,lu=96,uu=/\\p{Emoji_Presentation}/u,cu=/[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u,li=null,Ho=new Map;function ui(){if(at!==null)return at;if(typeof OffscreenCanvas<"u")return at=new OffscreenCanvas(1,1).getContext("2d"),at;if(typeof document<"u")return at=document.createElement("canvas").getContext("2d"),at;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function du(t){let e=Wo.get(t);return e||(e=new Map,Wo.set(t,e)),e}function Pe(t,e){let n=e.get(t);return n===void 0&&(n={width:ui().measureText(t).width,containsCJK:Re(t)},e.set(t,n)),n}function ut(){if(lt!==null)return lt;if(typeof navigator>"u")return lt={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},lt;let t=navigator.userAgent,n=navigator.vendor==="Apple Computer, Inc."&&t.includes("Safari/")&&!t.includes("Chrome/")&&!t.includes("Chromium/")&&!t.includes("CriOS/")&&!t.includes("FxiOS/")&&!t.includes("EdgiOS/"),i=t.includes("Chrome/")||t.includes("Chromium/")||t.includes("CriOS/")||t.includes("Edg/");return lt={lineFitEpsilon:n?1/64:.005,carryCJKAfterClosingQuote:i,preferPrefixWidthsForBreakableRuns:n,preferEarlySoftHyphenBreak:n},lt}function fu(t){let e=t.match(/(\\d+(?:\\.\\d+)?)\\s*px/);return e?parseFloat(e[1]):16}function qo(){return li===null&&(li=new Intl.Segmenter(void 0,{granularity:"grapheme"})),li}function mu(t){return uu.test(t)||t.includes("\\uFE0F")}function Vo(t){return cu.test(t)}function pu(t,e){let n=Ho.get(t);if(n!==void 0)return n;let i=ui();i.font=t;let r=i.measureText("\\u{1F600}").width;if(n=0,r>e+.5&&typeof document<"u"&&document.body!==null){let o=document.createElement("span");o.style.font=t,o.style.display="inline-block",o.style.visibility="hidden",o.style.position="absolute",o.textContent="\\u{1F600}",document.body.appendChild(o);let s=o.getBoundingClientRect().width;document.body.removeChild(o),r-s>.5&&(n=r-s)}return Ho.set(t,n),n}function hu(t){let e=0,n=qo();for(let i of n.segment(t))mu(i.segment)&&e++;return e}function xu(t,e){return e.emojiCount===void 0&&(e.emojiCount=hu(t)),e.emojiCount}function je(t,e,n){return n===0?e.width:e.width-xu(t,e)*n}function Uo(t,e,n,i,r){if(e.breakableFitAdvances!==void 0)return e.breakableFitAdvances;let o=qo(),s=[];for(let u of o.segment(t))s.push(u.segment);if(s.length<=1)return e.breakableFitAdvances=null,e.breakableFitAdvances;if(r==="sum-graphemes"){let u=[];for(let m of s){let f=Pe(m,n);u.push(je(m,f,i))}return e.breakableFitAdvances=u,e.breakableFitAdvances}if(r==="pair-context"||s.length>lu){let u=[],m=null,f=0;for(let x of s){let F=Pe(x,n),E=je(x,F,i);if(m===null)u.push(E);else{let S=m+x,B=Pe(S,n);u.push(je(S,B,i)-f)}m=x,f=E}return e.breakableFitAdvances=u,e.breakableFitAdvances}let l=[],a="",c=0;for(let u of s){a+=u;let m=Pe(a,n),f=je(a,m,i);l.push(f-c),c=f}return e.breakableFitAdvances=l,e.breakableFitAdvances}function zo(t,e){let n=ui();n.font=t;let i=du(t),r=fu(t),o=e?pu(t,r):0;return{cache:i,fontSize:r,emojiCorrection:o}}function gu(t,e){for(;e<t.widths.length;){let n=t.kinds[e];if(n!=="space"&&n!=="zero-width-break"&&n!=="soft-hyphen")break;e++}return e}function yu(t,e){if(e<=0)return 0;let n=t%e;return Math.abs(n)<=1e-6?e:e-n}function Su(t,e,n,i,r){let o=0,s=e;for(;o<t.length;){let l=s+t[o];if((o+1<t.length?l+r:l)>n+i)break;s=l,o++}return{fitCount:o,fittedWidth:s}}function jo(t,e){return t.simpleLineWalkFastPath?$o(t,e):Go(t,e)}function $o(t,e,n){let{widths:i,kinds:r,breakableFitAdvances:o}=t;if(i.length===0)return 0;let l=ut().lineFitEpsilon,a=e+l,c=0,u=0,m=!1,f=0,x=0,F=0,E=0,S=-1,B=0;function D(){S=-1,B=0}function v(C=F,w=E,T=u){c++,n?.({startSegmentIndex:f,startGraphemeIndex:x,endSegmentIndex:C,endGraphemeIndex:w,width:T}),u=0,m=!1,D()}function X(C,w){m=!0,f=C,x=0,F=C+1,E=0,u=w}function q(C,w,T){m=!0,f=C,x=w,F=C,E=w+1,u=T}function N(C,w){if(!m){X(C,w);return}u+=w,F=C+1,E=0}function g(C,w){let T=o[C];for(let L=w;L<T.length;L++){let P=T[L];m?u+P>a?(v(),q(C,L,P)):(u+=P,F=C,E=L+1):q(C,L,P)}m&&F===C&&E===T.length&&(F=C+1,E=0)}let A=0;for(;A<i.length&&!(!m&&(A=gu(t,A),A>=i.length));){let C=i[A],w=r[A],T=w==="space"||w==="preserved-space"||w==="tab"||w==="zero-width-break"||w==="soft-hyphen";if(!m){C>e&&o[A]!==null?g(A,0):X(A,C),T&&(S=A+1,B=u-C),A++;continue}if(u+C>a){if(T){N(A,C),v(A+1,0,u-C),A++;continue}if(S>=0){if(F>S||F===S&&E>0){v();continue}v(S,0,B);continue}if(C>e&&o[A]!==null){v(),g(A,0),A++;continue}v();continue}N(A,C),T&&(S=A+1,B=u-C),A++}return m&&v(),c}function Go(t,e,n){if(t.simpleLineWalkFastPath)return $o(t,e,n);let{widths:i,lineEndFitAdvances:r,lineEndPaintAdvances:o,kinds:s,breakableFitAdvances:l,discretionaryHyphenWidth:a,tabStopAdvance:c,chunks:u}=t;if(i.length===0||u.length===0)return 0;let m=ut(),f=m.lineFitEpsilon,x=e+f,F=0,E=0,S=!1,B=0,D=0,v=0,X=0,q=-1,N=0,g=0,A=null;function C(){q=-1,N=0,g=0,A=null}function w($=v,U=X,W=E){F++,n?.({startSegmentIndex:B,startGraphemeIndex:D,endSegmentIndex:$,endGraphemeIndex:U,width:W}),E=0,S=!1,C()}function T($,U){S=!0,B=$,D=0,v=$+1,X=0,E=U}function L($,U,W){S=!0,B=$,D=U,v=$,X=U+1,E=W}function P($,U){if(!S){T($,U);return}E+=U,v=$+1,X=0}function J($,U,W,Y){if(!U)return;let me=$==="tab"?0:r[W],Fe=$==="tab"?Y:o[W];q=W+1,N=E-Y+me,g=E-Y+Fe,A=$}function R($,U){let W=l[$];for(let Y=U;Y<W.length;Y++){let me=W[Y];S?E+me>x?(w(),L($,Y,me)):(E+=me,v=$,X=Y+1):L($,Y,me)}S&&v===$&&X===W.length&&(v=$+1,X=0)}function le($){if(A!=="soft-hyphen")return!1;let U=l[$];if(U==null)return!1;let{fitCount:W,fittedWidth:Y}=Su(U,E,e,f,a);return W===0?!1:(E=Y,v=$,X=W,C(),W===U.length?(v=$+1,X=0,!0):(w($,W,Y+a),R($,W),!0))}function Se($){F++,n?.({startSegmentIndex:$.startSegmentIndex,startGraphemeIndex:0,endSegmentIndex:$.consumedEndSegmentIndex,endGraphemeIndex:0,width:0}),C()}for(let $=0;$<u.length;$++){let U=u[$];if(U.startSegmentIndex===U.endSegmentIndex){Se(U);continue}S=!1,E=0,B=U.startSegmentIndex,D=0,v=U.startSegmentIndex,X=0,C();let W=U.startSegmentIndex;for(;W<U.endSegmentIndex;){let Y=s[W],me=Y==="space"||Y==="preserved-space"||Y==="tab"||Y==="zero-width-break"||Y==="soft-hyphen",Fe=Y==="tab"?yu(E,c):i[W];if(Y==="soft-hyphen"){S&&(v=W+1,X=0,q=W+1,N=E+a,g=E+a,A=Y),W++;continue}if(!S){Fe>e&&l[W]!==null?R(W,0):T(W,Fe),J(Y,me,W,Fe),W++;continue}if(E+Fe>x){let k=E+(Y==="tab"?0:r[W]),O=E+(Y==="tab"?Fe:o[W]);if(A==="soft-hyphen"&&m.preferEarlySoftHyphenBreak&&N<=x){w(q,0,g);continue}if(A==="soft-hyphen"&&le(W)){W++;continue}if(me&&k<=x){P(W,Fe),w(W+1,0,O),W++;continue}if(q>=0&&N<=x){if(v>q||v===q&&X>0){w();continue}let ne=q;w(ne,0,g),W=ne;continue}if(Fe>e&&l[W]!==null){w(),R(W,0),W++;continue}w();continue}P(W,Fe),J(Y,me,W,Fe),W++}if(S){let Y=q===U.consumedEndSegmentIndex?g:E;w(U.consumedEndSegmentIndex,0,Y)}}return F}var ci=null;function bu(){return ci===null&&(ci=new Intl.Segmenter(void 0,{granularity:"grapheme"})),ci}function Au(t){return t?{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[],segments:[]}:{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[]}}function Eu(t,e){let n=[],i=[],r=0,o=!1,s=!1,l=!1;function a(){i.length!==0&&(n.push({text:i.length===1?i[0]:i.join(""),start:r}),i=[],o=!1,s=!1,l=!1)}function c(m,f,x){i=[m],r=f,o=x,s=cn(m),l=Ot.has(m)}function u(m,f){i.push(m),o=o||f;let x=cn(m);m.length===1&&ze.has(m)?s=s||x:s=x,l=!1}for(let m of bu().segment(t)){let f=m.segment,x=Re(f);if(i.length===0){c(f,m.index,x);continue}if(l||ln.has(f)||ze.has(f)||e.carryCJKAfterClosingQuote&&x&&s){u(f,x);continue}if(!o&&!x){u(f,x);continue}a(),c(f,m.index,x)}return a(),n}function Fu(t){if(t.length<=1)return t;let e=[],n=[t[0].text],i=t[0].start,r=Re(t[0].text),o=an(t[0].text);function s(){e.push({text:n.length===1?n[0]:n.join(""),start:i})}for(let l=1;l<t.length;l++){let a=t[l],c=Re(a.text),u=an(a.text);if(r&&o){n.push(a.text),r=r||c,o=u;continue}s(),n=[a.text],i=a.start,r=c,o=u}return s(),e}function wu(t,e,n,i){let r=ut(),{cache:o,emojiCorrection:s}=zo(e,Vo(t.normalized)),l=je("-",Pe("-",o),s),c=je(" ",Pe(" ",o),s)*8;if(t.len===0)return Au(n);let u=[],m=[],f=[],x=[],F=t.chunks.length<=1,E=n?[]:null,S=[],B=n?[]:null,D=Array.from({length:t.len});function v(g,A,C,w,T,L,P){T!=="text"&&T!=="space"&&T!=="zero-width-break"&&(F=!1),u.push(A),m.push(C),f.push(w),x.push(T),E?.push(L),S.push(P),B!==null&&B.push(g)}function X(g,A,C,w,T){let L=Pe(g,o),P=je(g,L,s),J=A==="space"||A==="preserved-space"||A==="zero-width-break"?0:P,R=A==="space"||A==="zero-width-break"?0:P;if(T&&w&&g.length>1){let le="sum-graphemes";It(g)?le="pair-context":r.preferPrefixWidthsForBreakableRuns&&(le="segment-prefixes");let Se=Uo(g,L,o,s,le);v(g,P,J,R,A,C,Se);return}v(g,P,J,R,A,C,null)}for(let g=0;g<t.len;g++){D[g]=u.length;let A=t.texts[g],C=t.isWordLike[g],w=t.kinds[g],T=t.starts[g];if(w==="soft-hyphen"){v(A,0,l,l,w,T,null);continue}if(w==="hard-break"){v(A,0,0,0,w,T,null);continue}if(w==="tab"){v(A,0,0,0,w,T,null);continue}let L=Pe(A,o);if(w==="text"&&L.containsCJK){let P=Eu(A,r),J=i==="keep-all"?Fu(P):P;for(let R=0;R<J.length;R++){let le=J[R];X(le.text,"text",T+le.start,C,i==="keep-all"||!Re(le.text))}continue}X(A,w,T,C,!0)}let q=Nu(t.chunks,D,u.length),N=E===null?null:Mo(t.normalized,E);return B!==null?{widths:u,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:x,simpleLineWalkFastPath:F,segLevels:N,breakableFitAdvances:S,discretionaryHyphenWidth:l,tabStopAdvance:c,chunks:q,segments:B}:{widths:u,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:x,simpleLineWalkFastPath:F,segLevels:N,breakableFitAdvances:S,discretionaryHyphenWidth:l,tabStopAdvance:c,chunks:q}}function Nu(t,e,n){let i=[];for(let r=0;r<t.length;r++){let o=t[r],s=o.startSegmentIndex<e.length?e[o.startSegmentIndex]:n,l=o.endSegmentIndex<e.length?e[o.endSegmentIndex]:n,a=o.consumedEndSegmentIndex<e.length?e[o.consumedEndSegmentIndex]:n;i.push({startSegmentIndex:s,endSegmentIndex:l,consumedEndSegmentIndex:a})}return i}function Cu(t,e,n,i){let r=i?.wordBreak??"normal",o=Po(t,ut(),i?.whiteSpace,r);return wu(o,e,n,r)}function Ko(t,e,n){return Cu(t,e,!1,n)}function Jo(t,e,n){let i=jo(t,e);return{lineCount:i,height:i*n}}var Mu={maxWidth:1600,baseFontSize:78,minFontSize:42,fontWeight:900,fontFamily:"Outfit",step:2};function Qo(t,e){let n={...Mu,...e},i=1.2;for(let r=n.baseFontSize;r>=n.minFontSize;r-=n.step){let o=`${n.fontWeight} ${r}px ${n.fontFamily}`,s=Ko(t,o),{lineCount:l}=Jo(s,n.maxWidth,r*i);if(l<=1)return{fontSize:r,fits:!0}}return{fontSize:n.minFontSize,fits:!1}}window.__timelines=window.__timelines||{};window.__hyperframes={fitTextFontSize:Qo,getVariables:ho};function Yo(){let t=window;t.__hyperframeRuntimeBootstrapped||(t.__hyperframeRuntimeBootstrapped=!0,No())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",Yo,{once:!0}):Yo();})();\n';
|
|
39818
|
+
RUNTIME_IIFE = '"use strict";(()=>{var ns=Object.create;var xn=Object.defineProperty;var is=Object.getOwnPropertyDescriptor;var rs=Object.getOwnPropertyNames;var os=Object.getPrototypeOf,ss=Object.prototype.hasOwnProperty;var as=(t,e,n)=>e in t?xn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var ee=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var ls=(t,e,n,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of rs(e))!ss.call(t,r)&&r!==n&&xn(t,r,{get:()=>e[r],enumerable:!(i=is(e,r))||i.enumerable});return t};var us=(t,e,n)=>(n=t!=null?ns(os(t)):{},ls(e||!t||!t.__esModule?xn(n,"default",{value:t,enumerable:!0}):n,t));var ye=(t,e,n)=>as(t,typeof e!="symbol"?e+"":e,n);var qi=ee((fc,Fn)=>{var K=String,Hi=function(){return{isColorSupported:!1,reset:K,bold:K,dim:K,italic:K,underline:K,inverse:K,hidden:K,strikethrough:K,black:K,red:K,green:K,yellow:K,blue:K,magenta:K,cyan:K,white:K,gray:K,bgBlack:K,bgRed:K,bgGreen:K,bgYellow:K,bgBlue:K,bgMagenta:K,bgCyan:K,bgWhite:K,blackBright:K,redBright:K,greenBright:K,yellowBright:K,blueBright:K,magentaBright:K,cyanBright:K,whiteBright:K,bgBlackBright:K,bgRedBright:K,bgGreenBright:K,bgYellowBright:K,bgBlueBright:K,bgMagentaBright:K,bgCyanBright:K,bgWhiteBright:K}};Fn.exports=Hi();Fn.exports.createColors=Hi});var wn=ee(()=>{});var qt=ee((hc,zi)=>{"use strict";var Vi=qi(),Ui=wn(),yt=class t extends Error{constructor(e,n,i,r,o,s){super(e),this.name="CssSyntaxError",this.reason=e,o&&(this.file=o),r&&(this.source=r),s&&(this.plugin=s),typeof n<"u"&&typeof i<"u"&&(typeof n=="number"?(this.line=n,this.column=i):(this.line=n.line,this.column=n.column,this.endLine=i.line,this.endColumn=i.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,t)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let n=this.source;e==null&&(e=Vi.isColorSupported);let i=u=>u,r=u=>u,o=u=>u;if(e){let{bold:u,gray:m,red:f}=Vi.createColors(!0);r=x=>u(f(x)),i=x=>m(x),Ui&&(o=x=>Ui(x))}let s=n.split(/\\r?\\n/),l=Math.max(this.line-3,0),a=Math.min(this.line+2,s.length),c=String(a).length;return s.slice(l,a).map((u,m)=>{let f=l+1+m,x=" "+(" "+f).slice(-c)+" | ";if(f===this.line){if(u.length>160){let E=20,S=Math.max(0,this.column-E),B=Math.max(this.column+E,this.endColumn+E),D=u.slice(S,B),v=i(x.replace(/\\d/g," "))+u.slice(0,Math.min(this.column-1,E-1)).replace(/[^\\t]/g," ");return r(">")+i(x)+o(D)+`\n `+v+r("^")}let F=i(x.replace(/\\d/g," "))+u.slice(0,this.column-1).replace(/[^\\t]/g," ");return r(">")+i(x)+o(u)+`\n `+F+r("^")}return" "+i(x)+o(u)}).join(`\n`)}toString(){let e=this.showSourceCode();return e&&(e=`\n\n`+e+`\n`),this.name+": "+this.message+e}};zi.exports=yt;yt.default=yt});var Nn=ee((xc,$i)=>{"use strict";var _s=/(<)(\\/?style\\b)/gi,Rs=/(<)(!--)/g;function He(t){return typeof t!="string"||!t.includes("<")?t:t.replace(_s,"\\\\3c $2").replace(Rs,"\\\\3c $2")}var ji={after:`\n`,beforeClose:`\n`,beforeComment:`\n`,beforeDecl:`\n`,beforeOpen:" ",beforeRule:`\n`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function Ls(t){return t[0].toUpperCase()+t.slice(1)}var St=class{constructor(e){this.builder=e}atrule(e,n){let i=e.raws,r="@"+e.name,o=e.params?this.rawValue(e,"params"):"";if(typeof i.afterName<"u"?r+=i.afterName:o&&(r+=" "),e.nodes)this.block(e,r+o);else{let s=(i.between||"")+(n?";":"");this.builder(He(r+o+s),e)}}beforeAfter(e,n){let i;e.type==="decl"?i=this.raw(e,null,"beforeDecl"):e.type==="comment"?i=this.raw(e,null,"beforeComment"):n==="before"?i=this.raw(e,null,"beforeRule"):i=this.raw(e,null,"beforeClose");let r=e.parent,o=0;for(;r&&r.type!=="root";)o+=1,r=r.parent;if(i.includes(`\n`)){let s=this.raw(e,null,"indent");if(s.length)for(let l=0;l<o;l++)i+=s}return i}block(e,n){let i=this.raw(e,"between","beforeOpen");this.builder(He(n+i)+"{",e,"start");let r;e.nodes&&e.nodes.length?(this.body(e),r=this.raw(e,"after")):r=this.raw(e,"after","emptyBody"),r&&this.builder(He(r)),this.builder("}",e,"end")}body(e){let n=e.nodes,i=n.length-1;for(;i>0&&n[i].type==="comment";)i-=1;let r=this.raw(e,"semicolon"),o=e.type==="document";for(let s=0;s<n.length;s++){let l=n[s],a=this.raw(l,"before");a&&this.builder(o?a:He(a)),this.stringify(l,i!==s||r)}}comment(e){let n=this.raw(e,"left","commentLeft"),i=this.raw(e,"right","commentRight");this.builder(He("/*"+n+e.text+i+"*/"),e)}decl(e,n){let i=e.raws,r=this.raw(e,"between","colon"),o=e.prop+r+this.rawValue(e,"value");e.important&&(o+=i.important||" !important"),n&&(o+=";"),this.builder(He(o),e)}document(e){this.body(e)}raw(e,n,i){let r;if(i||(i=n),n&&(r=e.raws[n],typeof r<"u"))return r;let o=e.parent;if(i==="before"&&(!o||o.type==="root"&&o.first===e||o&&o.type==="document"))return"";if(!o)return ji[i];let s=e.root(),l=s.rawCache||(s.rawCache={});if(typeof l[i]<"u")return l[i];if(i==="before"||i==="after")return this.beforeAfter(e,i);{let a="raw"+Ls(i);this[a]?r=this[a](s,e):s.walk(c=>{if(r=c.raws[n],typeof r<"u")return!1})}return typeof r>"u"&&(r=ji[i]),l[i]=r,r}rawBeforeClose(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length>0&&typeof i.raws.after<"u")return n=i.raws.after,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawBeforeComment(e,n){let i;return e.walkComments(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`\n`)&&(i=i.replace(/[^\\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(n,null,"beforeDecl"):i&&(i=i.replace(/\\S/g,"")),i}rawBeforeDecl(e,n){let i;return e.walkDecls(r=>{if(typeof r.raws.before<"u")return i=r.raws.before,i.includes(`\n`)&&(i=i.replace(/[^\\n]+$/,"")),!1}),typeof i>"u"?i=this.raw(n,null,"beforeRule"):i&&(i=i.replace(/\\S/g,"")),i}rawBeforeOpen(e){let n;return e.walk(i=>{if(i.type!=="decl"&&(n=i.raws.between,typeof n<"u"))return!1}),n}rawBeforeRule(e){let n;return e.walk(i=>{if(i.nodes&&(i.parent!==e||e.first!==i)&&typeof i.raws.before<"u")return n=i.raws.before,n.includes(`\n`)&&(n=n.replace(/[^\\n]+$/,"")),!1}),n&&(n=n.replace(/\\S/g,"")),n}rawColon(e){let n;return e.walkDecls(i=>{if(typeof i.raws.between<"u")return n=i.raws.between.replace(/[^\\s:]/g,""),!1}),n}rawEmptyBody(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length===0&&(n=i.raws.after,typeof n<"u"))return!1}),n}rawIndent(e){if(e.raws.indent)return e.raws.indent;let n;return e.walk(i=>{let r=i.parent;if(r&&r!==e&&r.parent&&r.parent===e&&typeof i.raws.before<"u"){let o=i.raws.before.split(`\n`);return n=o[o.length-1],n=n.replace(/\\S/g,""),!1}}),n}rawSemicolon(e){let n;return e.walk(i=>{if(i.nodes&&i.nodes.length&&i.last.type==="decl"&&(n=i.raws.semicolon,typeof n<"u"))return!1}),n}rawValue(e,n){let i=e[n],r=e.raws[n];return r&&r.value===i?r.raw:i}root(e){if(this.body(e),e.raws.after){let n=e.raws.after,i=e.parent&&e.parent.type==="document";this.builder(i?n:He(n))}}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(He(e.raws.ownSemicolon),e,"end")}stringify(e,n){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,n)}};$i.exports=St;St.default=St});var bt=ee((gc,Gi)=>{"use strict";var Ds=Nn();function Cn(t,e){new Ds(e).stringify(t)}Gi.exports=Cn;Cn.default=Cn});var Vt=ee((yc,Mn)=>{"use strict";Mn.exports.isClean=Symbol("isClean");Mn.exports.my=Symbol("my")});var Ft=ee((Sc,Ki)=>{"use strict";var Bs=qt(),Is=Nn(),Os=bt(),{isClean:At,my:Ps}=Vt();function Tn(t,e){let n=new t.constructor;for(let i in t){if(!Object.prototype.hasOwnProperty.call(t,i)||i==="proxyCache")continue;let r=t[i],o=typeof r;i==="parent"&&o==="object"?e&&(n[i]=e):i==="source"?n[i]=r:Array.isArray(r)?n[i]=r.map(s=>Tn(s,n)):(o==="object"&&r!==null&&(r=Tn(r)),n[i]=r)}return n}function Oe(t,e){if(e&&typeof e.offset<"u")return e.offset;let n=1,i=1,r=0;for(let o=0;o<t.length;o++){if(i===e.line&&n===e.column){r=o;break}t[o]===`\n`?(n=1,i+=1):n+=1}return r}var Et=class{get proxyOf(){return this}constructor(e={}){this.raws={},this[At]=!1,this[Ps]=!0;for(let n in e)if(n==="nodes"){this.nodes=[];for(let i of e[n])typeof i.clone=="function"?this.append(i.clone()):this.append(i)}else this[n]=e[n]}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\\n\\s{4}at /.test(e.stack)){let n=this.source;e.stack=e.stack.replace(/\\n\\s{4}at /,`$&${n.input.from}:${n.start.line}:${n.start.column}$&`)}return e}after(e){return this.parent.insertAfter(this,e),this}assign(e={}){for(let n in e)this[n]=e[n];return this}before(e){return this.parent.insertBefore(this,e),this}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}clone(e={}){let n=Tn(this);for(let i in e)n[i]=e[i];return n}cloneAfter(e={}){let n=this.clone(e);return this.parent.insertAfter(this,n),n}cloneBefore(e={}){let n=this.clone(e);return this.parent.insertBefore(this,n),n}error(e,n={}){if(this.source){let{end:i,start:r}=this.rangeBy(n);return this.source.input.error(e,{column:r.column,line:r.line},{column:i.column,line:i.line},n)}return new Bs(e)}getProxyProcessor(){return{get(e,n){return n==="proxyOf"?e:n==="root"?()=>e.root().toProxy():e[n]},set(e,n,i){return e[n]===i||(e[n]=i,(n==="prop"||n==="value"||n==="name"||n==="params"||n==="important"||n==="text")&&e.markDirty()),!0}}}markClean(){this[At]=!0}markDirty(){if(this[At]){this[At]=!1;let e=this;for(;e=e.parent;)e[At]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e={}){let n=this.source.start;if(e.index)n=this.positionInside(e.index);else if(e.word){let i="document"in this.source.input?this.source.input.document:this.source.input.css,o=i.slice(Oe(i,this.source.start),Oe(i,this.source.end)).indexOf(e.word);o!==-1&&(n=this.positionInside(o))}return n}positionInside(e){let n=this.source.start.column,i=this.source.start.line,r="document"in this.source.input?this.source.input.document:this.source.input.css,o=Oe(r,this.source.start),s=o+e;for(let l=o;l<s;l++)r[l]===`\n`?(n=1,i+=1):n+=1;return{column:n,line:i,offset:s}}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}rangeBy(e={}){let n="document"in this.source.input?this.source.input.document:this.source.input.css,i={column:this.source.start.column,line:this.source.start.line,offset:Oe(n,this.source.start)},r=this.source.end?{column:this.source.end.column+1,line:this.source.end.line,offset:typeof this.source.end.offset=="number"?this.source.end.offset:Oe(n,this.source.end)+1}:{column:i.column+1,line:i.line,offset:i.offset+1};if(e.word){let s=n.slice(Oe(n,this.source.start),Oe(n,this.source.end)).indexOf(e.word);s!==-1&&(i=this.positionInside(s),r=this.positionInside(s+e.word.length))}else e.start?i={column:e.start.column,line:e.start.line,offset:Oe(n,e.start)}:e.index&&(i=this.positionInside(e.index)),e.end?r={column:e.end.column,line:e.end.line,offset:Oe(n,e.end)}:typeof e.endIndex=="number"?r=this.positionInside(e.endIndex):e.index&&(r=this.positionInside(e.index+1));return(r.line<i.line||r.line===i.line&&r.column<=i.column)&&(r={column:i.column+1,line:i.line,offset:i.offset+1}),{end:r,start:i}}raw(e,n){return new Is().raw(this,e,n)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...e){if(this.parent){let n=this,i=!1;for(let r of e)r===this?i=!0:i?(this.parent.insertAfter(n,r),n=r):this.parent.insertBefore(n,r);i||this.remove()}return this}root(){let e=this;for(;e.parent&&e.parent.type!=="document";)e=e.parent;return e}toJSON(e,n){let i={},r=n==null;n=n||new Map;let o=0;for(let s in this){if(!Object.prototype.hasOwnProperty.call(this,s)||s==="parent"||s==="proxyCache")continue;let l=this[s];if(Array.isArray(l))i[s]=l.map(a=>typeof a=="object"&&a.toJSON?a.toJSON(null,n):a);else if(typeof l=="object"&&l.toJSON)i[s]=l.toJSON(null,n);else if(s==="source"){if(l==null)continue;let a=n.get(l.input);a==null&&(a=o,n.set(l.input,o),o++),i[s]={end:l.end,inputId:a,start:l.start}}else i[s]=l}return r&&(i.inputs=[...n.keys()].map(s=>s.toJSON())),i}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=Os){e.stringify&&(e=e.stringify);let n="";return e(this,i=>{n+=i}),n}warn(e,n,i={}){let r={node:this};for(let o in i)r[o]=i[o];return e.warn(n,r)}};Ki.exports=Et;Et.default=Et});var Nt=ee((bc,Ji)=>{"use strict";var Ws=Ft(),wt=class extends Ws{constructor(e){super(e),this.type="comment"}};Ji.exports=wt;wt.default=wt});var Mt=ee((Ac,Qi)=>{"use strict";var Hs=Ft(),Ct=class extends Hs{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(e){e&&typeof e.value<"u"&&typeof e.value!="string"&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}};Qi.exports=Ct;Ct.default=Ct});var qe=ee((Ec,or)=>{"use strict";var Yi=Nt(),Zi=Mt(),qs=Ft(),{isClean:Xi,my:er}=Vt(),kn,tr,nr,vn;function ir(t){return t.map(e=>(e.nodes&&(e.nodes=ir(e.nodes)),delete e.source,e))}function rr(t){if(t[Xi]=!1,t.proxyOf.nodes)for(let e of t.proxyOf.nodes)rr(e)}var _e=class t extends qs{get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}append(...e){for(let n of e){let i=this.normalize(n,this.last);for(let r of i)this.proxyOf.nodes.push(r)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let n of this.nodes)n.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let n=this.getIterator(),i,r;for(;this.indexes[n]<this.proxyOf.nodes.length&&(i=this.indexes[n],r=e(this.proxyOf.nodes[i],i),r!==!1);)this.indexes[n]+=1;return delete this.indexes[n],r}every(e){return this.nodes.every(e)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}getProxyProcessor(){return{get(e,n){return n==="proxyOf"?e:e[n]?n==="each"||typeof n=="string"&&n.startsWith("walk")?(...i)=>e[n](...i.map(r=>typeof r=="function"?(o,s)=>r(o.toProxy(),s):r)):n==="every"||n==="some"?i=>e[n]((r,...o)=>i(r.toProxy(),...o)):n==="root"?()=>e.root().toProxy():n==="nodes"?e.nodes.map(i=>i.toProxy()):n==="first"||n==="last"?e[n].toProxy():e[n]:e[n]},set(e,n,i){return e[n]===i||(e[n]=i,(n==="name"||n==="params"||n==="selector")&&e.markDirty()),!0}}}index(e){return typeof e=="number"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,n){let i=this.index(e),r=this.normalize(n,this.proxyOf.nodes[i]).reverse();i=this.index(e);for(let s of r)this.proxyOf.nodes.splice(i+1,0,s);let o;for(let s in this.indexes)o=this.indexes[s],i<o&&(this.indexes[s]=o+r.length);return this.markDirty(),this}insertBefore(e,n){let i=this.index(e),r=i===0?"prepend":!1,o=this.normalize(n,this.proxyOf.nodes[i],r).reverse();i=this.index(e);for(let l of o)this.proxyOf.nodes.splice(i,0,l);let s;for(let l in this.indexes)s=this.indexes[l],i<=s&&(this.indexes[l]=s+o.length);return this.markDirty(),this}normalize(e,n){if(typeof e=="string")e=ir(tr(e).nodes);else if(typeof e>"u")e=[];else if(Array.isArray(e)){e=e.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type==="root"&&this.type!=="document"){e=e.nodes.slice(0);for(let r of e)r.parent&&r.parent.removeChild(r,"ignore")}else if(e.type)e=[e];else if(e.prop){if(typeof e.value>"u")throw new Error("Value field is missed in node creation");typeof e.value!="string"&&(e.value=String(e.value)),e=[new Zi(e)]}else if(e.selector||e.selectors)e=[new vn(e)];else if(e.name)e=[new kn(e)];else if(e.text)e=[new Yi(e)];else throw new Error("Unknown node type in node creation");return e.map(r=>(r[er]||t.rebuild(r),r=r.proxyOf,r.parent&&r.parent.removeChild(r),r[Xi]&&rr(r),r.raws||(r.raws={}),typeof r.raws.before>"u"&&n&&typeof n.raws.before<"u"&&(r.raws.before=n.raws.before.replace(/\\S/g,"")),r.parent=this.proxyOf,r))}prepend(...e){e=e.reverse();for(let n of e){let i=this.normalize(n,this.first,"prepend").reverse();for(let r of i)this.proxyOf.nodes.unshift(r);for(let r in this.indexes)this.indexes[r]=this.indexes[r]+i.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);let n;for(let i in this.indexes)n=this.indexes[i],n>=e&&(this.indexes[i]=n-1);return this.markDirty(),this}replaceValues(e,n,i){return i||(i=n,n={}),this.walkDecls(r=>{n.props&&!n.props.includes(r.prop)||n.fast&&!r.value.includes(n.fast)||(r.value=r.value.replace(e,i))}),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each((n,i)=>{let r;try{r=e(n,i)}catch(o){throw n.addToError(o)}return r!==!1&&n.walk&&(r=n.walk(e)),r})}walkAtRules(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="atrule"&&e.test(i.name))return n(i,r)}):this.walk((i,r)=>{if(i.type==="atrule"&&i.name===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="atrule")return n(i,r)}))}walkComments(e){return this.walk((n,i)=>{if(n.type==="comment")return e(n,i)})}walkDecls(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="decl"&&e.test(i.prop))return n(i,r)}):this.walk((i,r)=>{if(i.type==="decl"&&i.prop===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="decl")return n(i,r)}))}walkRules(e,n){return n?e instanceof RegExp?this.walk((i,r)=>{if(i.type==="rule"&&e.test(i.selector))return n(i,r)}):this.walk((i,r)=>{if(i.type==="rule"&&i.selector===e)return n(i,r)}):(n=e,this.walk((i,r)=>{if(i.type==="rule")return n(i,r)}))}};_e.registerParse=t=>{tr=t};_e.registerRule=t=>{vn=t};_e.registerAtRule=t=>{kn=t};_e.registerRoot=t=>{nr=t};or.exports=_e;_e.default=_e;_e.rebuild=t=>{t.type==="atrule"?Object.setPrototypeOf(t,kn.prototype):t.type==="rule"?Object.setPrototypeOf(t,vn.prototype):t.type==="decl"?Object.setPrototypeOf(t,Zi.prototype):t.type==="comment"?Object.setPrototypeOf(t,Yi.prototype):t.type==="root"&&Object.setPrototypeOf(t,nr.prototype),t[er]=!0,t.nodes&&t.nodes.forEach(e=>{_e.rebuild(e)})}});var Ut=ee((Fc,ar)=>{"use strict";var sr=qe(),nt=class extends sr{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};ar.exports=nt;nt.default=nt;sr.registerAtRule(nt)});var zt=ee((wc,cr)=>{"use strict";var Vs=qe(),lr,ur,Ze=class extends Vs{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new lr(new ur,this,e).stringify()}};Ze.registerLazyResult=t=>{lr=t};Ze.registerProcessor=t=>{ur=t};cr.exports=Ze;Ze.default=Ze});var fr=ee((Nc,dr)=>{var Us="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",zs=(t,e=21)=>(n=e)=>{let i="",r=n|0;for(;r--;)i+=t[Math.random()*t.length|0];return i},js=(t=21)=>{let e="",n=t|0;for(;n--;)e+=Us[Math.random()*64|0];return e};dr.exports={nanoid:js,customAlphabet:zs}});var jt=ee(()=>{});var $t=ee(()=>{});var _n=ee(()=>{});var mr=ee(()=>{});var Ln=ee((Dc,xr)=>{"use strict";var{existsSync:$s,readFileSync:Gs}=mr(),{dirname:Rn,join:Ks}=jt(),{SourceMapConsumer:pr,SourceMapGenerator:hr}=$t();function Js(t){return Buffer?Buffer.from(t,"base64").toString():window.atob(t)}var Tt=class{constructor(e,n){if(n.map===!1)return;n.unsafeMap&&(this.unsafeMap=!0),this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let i=n.map?n.map.prev:void 0,r=this.loadMap(n.from,i);!this.mapFile&&n.from&&(this.mapFile=n.from),this.mapFile&&(this.root=Rn(this.mapFile)),r&&(this.text=r)}consumer(){return this.consumerCache||(this.consumerCache=new pr(this.json||this.text)),this.consumerCache}decodeInline(e){let n=/^data:application\\/json;charset=utf-?8;base64,/,i=/^data:application\\/json;base64,/,r=/^data:application\\/json;charset=utf-?8,/,o=/^data:application\\/json,/,s=e.match(r)||e.match(o);if(s)return decodeURIComponent(e.substr(s[0].length));let l=e.match(n)||e.match(i);if(l)return Js(e.substr(l[0].length));let a=e.slice(22);throw a=a.slice(0,a.indexOf(",")),new Error("Unsupported source map encoding "+a)}getAnnotationURL(e){return e.replace(/^\\/\\*\\s*# sourceMappingURL=/,"").trim()}isMap(e){return typeof e!="object"?!1:typeof e.mappings=="string"||typeof e._mappings=="string"||Array.isArray(e.sections)}loadAnnotation(e){let n=e.match(/\\/\\*\\s*# sourceMappingURL=/g);if(!n)return;let i=e.lastIndexOf(n.pop()),r=e.indexOf("*/",i);i>-1&&r>-1&&(this.annotation=this.getAnnotationURL(e.substring(i,r)))}loadFile(e,n,i){if(!(!i&&!this.unsafeMap&&!/\\.map$/i.test(e))&&(this.root=Rn(e),$s(e)))return this.mapFile=e,Gs(e,"utf-8").toString().trim()}loadMap(e,n){if(n===!1)return!1;if(n){if(typeof n=="string")return n;if(typeof n=="function"){let i=n(e);if(i){let r=this.loadFile(i,e,!0);if(!r)throw new Error("Unable to load previous source map: "+i.toString());return r}}else{if(n instanceof pr)return hr.fromSourceMap(n).toString();if(n instanceof hr)return n.toString();if(this.isMap(n))return JSON.stringify(n);throw new Error("Unsupported previous source map format: "+n.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let i=this.annotation;e&&(i=Ks(Rn(e),i));let r=this.loadFile(i,e,!1);if(r)try{this.json=JSON.parse(r.replace(/^\\)]}\'[^\\n]*\\n/,""))}catch{return}return r}}}startWith(e,n){return e?e.substr(0,n.length)===n:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};xr.exports=Tt;Tt.default=Tt});var kt=ee((Bc,Ar)=>{"use strict";var{nanoid:Qs}=fr(),{isAbsolute:In,resolve:On}=jt(),{SourceMapConsumer:Ys,SourceMapGenerator:Zs}=$t(),{fileURLToPath:gr,pathToFileURL:Gt}=_n(),yr=qt(),Xs=Ln(),Dn=wn(),Bn=Symbol("lineToIndexCache"),ea=!!(Ys&&Zs),Sr=!!(On&&In);function br(t){if(t[Bn])return t[Bn];let e=t.css.split(`\n`),n=new Array(e.length),i=0;for(let r=0,o=e.length;r<o;r++)n[r]=i,i+=e[r].length+1;return t[Bn]=n,n}var it=class{get from(){return this.file||this.id}constructor(e,n={}){if(e===null||typeof e>"u"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\\uFEFF"||this.css[0]==="\\uFFFE"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,this.document=this.css,n.document&&(this.document=n.document.toString()),n.from&&(!Sr||/^\\w+:\\/\\//.test(n.from)||In(n.from)?this.file=n.from:this.file=On(n.from)),Sr&&ea){let i=new Xs(this.css,n);if(i.text){this.map=i;let r=i.consumer().file;!this.file&&r&&(this.file=this.mapResolve(r))}}this.file||(this.id="<input css "+Qs(6)+">"),this.map&&(this.map.file=this.from)}error(e,n,i,r={}){let o,s,l,a,c;if(n&&typeof n=="object"){let m=n,f=i;if(typeof m.offset=="number"){a=m.offset;let x=this.fromOffset(a);n=x.line,i=x.col}else n=m.line,i=m.column,a=this.fromLineAndColumn(n,i);if(typeof f.offset=="number"){l=f.offset;let x=this.fromOffset(l);s=x.line,o=x.col}else s=f.line,o=f.column,l=this.fromLineAndColumn(f.line,f.column)}else if(i)a=this.fromLineAndColumn(n,i);else{a=n;let m=this.fromOffset(a);n=m.line,i=m.col}let u=this.origin(n,i,s,o);return u?c=new yr(e,u.endLine===void 0?u.line:{column:u.column,line:u.line},u.endLine===void 0?u.column:{column:u.endColumn,line:u.endLine},u.source,u.file,r.plugin):c=new yr(e,s===void 0?n:{column:i,line:n},s===void 0?i:{column:o,line:s},this.css,this.file,r.plugin),c.input={column:i,endColumn:o,endLine:s,endOffset:l,line:n,offset:a,source:this.css},this.file&&(Gt&&(c.input.url=Gt(this.file).toString()),c.input.file=this.file),c}fromLineAndColumn(e,n){return br(this)[e-1]+n-1}fromOffset(e){let n=br(this),i=n[n.length-1],r=0;if(e>=i)r=n.length-1;else{let o=n.length-2,s;for(;r<o;)if(s=r+(o-r>>1),e<n[s])o=s-1;else if(e>=n[s+1])r=s+1;else{r=s;break}}return{col:e-n[r]+1,line:r+1}}mapResolve(e){return/^\\w+:\\/\\//.test(e)?e:On(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,n,i,r){if(!this.map)return!1;let o=this.map.consumer(),s=o.originalPositionFor({column:n,line:e});if(!s.source)return!1;let l;typeof i=="number"&&(l=o.originalPositionFor({column:r,line:i}));let a;In(s.source)?a=Gt(s.source):a=new URL(s.source,this.map.consumer().sourceRoot||Gt(this.map.mapFile));let c={column:s.column,endColumn:l&&l.column,endLine:l&&l.line,line:s.line,url:a.toString()};if(a.protocol==="file:")if(gr)c.file=gr(a);else throw new Error("file: protocol is not available in this PostCSS build");let u=o.sourceContentFor(s.source);return u&&(c.source=u),c}toJSON(){let e={};for(let n of["hasBOM","css","file","id"])this[n]!=null&&(e[n]=this[n]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}};Ar.exports=it;it.default=it;Dn&&Dn.registerInput&&Dn.registerInput(it)});var rt=ee((Ic,Nr)=>{"use strict";var Er=qe(),Fr,wr,Ve=class extends Er{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}normalize(e,n,i){let r=super.normalize(e);if(n){if(i==="prepend")this.nodes.length>1?n.raws.before=this.nodes[1].raws.before:delete n.raws.before;else if(this.first!==n)for(let o of r)o.raws.before=n.raws.before}return r}removeChild(e,n){let i=this.index(e);return!n&&i===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(e)}toResult(e={}){return new Fr(new wr,this,e).stringify()}};Ve.registerLazyResult=t=>{Fr=t};Ve.registerProcessor=t=>{wr=t};Nr.exports=Ve;Ve.default=Ve;Er.registerRoot(Ve)});var Pn=ee((Oc,Cr)=>{"use strict";var vt={comma(t){return vt.split(t,[","],!0)},space(t){let e=[" ",`\n`," "];return vt.split(t,e)},split(t,e,n){let i=[],r="",o=!1,s=0,l=!1,a="",c=!1;for(let u of t)c?c=!1:u==="\\\\"?c=!0:l?u===a&&(l=!1):u===\'"\'||u==="\'"?(l=!0,a=u):u==="("?s+=1:u===")"?s>0&&(s-=1):s===0&&e.includes(u)&&(o=!0),o?(r!==""&&i.push(r.trim()),r="",o=!1):r+=u;return(n||r!=="")&&i.push(r.trim()),i}};Cr.exports=vt;vt.default=vt});var Kt=ee((Pc,Tr)=>{"use strict";var Mr=qe(),ta=Pn(),ot=class extends Mr{get selectors(){return ta.comma(this.selector)}set selectors(e){let n=this.selector?this.selector.match(/,\\s*/):null,i=n?n[0]:","+this.raw("between","beforeOpen");this.selector=e.join(i)}constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}};Tr.exports=ot;ot.default=ot;Mr.registerRule(ot)});var vr=ee((Wc,kr)=>{"use strict";var na=Ut(),ia=Nt(),ra=Mt(),oa=kt(),sa=Ln(),aa=rt(),la=Kt();function _t(t,e){if(Array.isArray(t))return t.map(r=>_t(r));let{inputs:n,...i}=t;if(n){e=[];for(let r of n){let o={...r,__proto__:oa.prototype};o.map&&(o.map={...o.map,__proto__:sa.prototype}),e.push(o)}}if(i.nodes&&(i.nodes=t.nodes.map(r=>_t(r,e))),i.source){let{inputId:r,...o}=i.source;i.source=o,r!=null&&(i.source.input=e[r])}if(i.type==="root")return new aa(i);if(i.type==="decl")return new ra(i);if(i.type==="rule")return new la(i);if(i.type==="comment")return new ia(i);if(i.type==="atrule")return new na(i);throw new Error("Unknown node type: "+t.type)}kr.exports=_t;_t.default=_t});var Hn=ee((Hc,Ir)=>{"use strict";var{dirname:Jt,relative:Rr,resolve:Lr,sep:Dr}=jt(),{SourceMapConsumer:Br,SourceMapGenerator:Qt}=$t(),{pathToFileURL:_r}=_n(),ua=kt(),ca=!!(Br&&Qt),da=!!(Jt&&Lr&&Rr&&Dr),Wn=class{constructor(e,n,i,r){this.stringify=e,this.mapOpts=i.map||{},this.root=n,this.opts=i,this.css=r,this.originalCSS=r,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let e;this.isInline()?e="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?e=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?e=this.mapOpts.annotation(this.opts.to,this.root):e=this.outputFile()+".map";let n=`\n`;this.css.includes(`\\r\n`)&&(n=`\\r\n`),this.css+=n+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let n=this.toUrl(this.path(e.file)),i=e.root||Jt(e.file),r;this.mapOpts.sourcesContent===!1?(r=new Br(e.text),r.sourcesContent&&(r.sourcesContent=null)):r=e.consumer(),this.map.applySourceMap(r,n,this.toUrl(this.path(i)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1){if(this.root){let e;for(let n=this.root.nodes.length-1;n>=0;n--)e=this.root.nodes[n],e.type==="comment"&&e.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(n)}else if(this.css){let e;for(;(e=this.css.lastIndexOf("/*#"))!==-1;){let n=this.css.indexOf("*/",e+3);if(n===-1)break;for(;e>0&&this.css[e-1]===`\n`;)e--;this.css=this.css.slice(0,e)+this.css.slice(n+2)}}}}generate(){if(this.clearAnnotation(),da&&ca&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,n=>{e+=n}),[e]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=Qt.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new Qt({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>"});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new Qt({file:this.outputFile(),ignoreInvalidMapping:!0});let e=1,n=1,i="<no source>",r={generated:{column:0,line:0},original:{column:0,line:0},source:""},o,s;this.stringify(this.root,(l,a,c)=>{if(this.css+=l,a&&c!=="end"&&(r.generated.line=e,r.generated.column=n-1,a.source&&a.source.start?(r.source=this.sourcePath(a),r.original.line=a.source.start.line,r.original.column=a.source.start.column-1,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,this.map.addMapping(r))),s=l.match(/\\n/g),s?(e+=s.length,o=l.lastIndexOf(`\n`),n=l.length-o):n+=l.length,a&&c!=="start"){let u=a.parent||{raws:{}};(!(a.type==="decl"||a.type==="atrule"&&!a.nodes)||a!==u.last||u.raws.semicolon)&&(a.source&&a.source.end?(r.source=this.sourcePath(a),r.original.line=a.source.end.line,r.original.column=a.source.end.column-1,r.generated.line=e,r.generated.column=n-2,this.map.addMapping(r)):(r.source=i,r.original.line=1,r.original.column=0,r.generated.line=e,r.generated.column=n-1,this.map.addMapping(r)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(e=>e.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let e=this.mapOpts.annotation;return typeof e<"u"&&e!==!0?!1:this.previous().length?this.previous().some(n=>n.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(e=>e.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute||e.charCodeAt(0)===60||/^\\w+:\\/\\//.test(e))return e;let n=this.memoizedPaths.get(e);if(n)return n;let i=this.opts.to?Jt(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(i=Jt(Lr(i,this.mapOpts.annotation)));let r=Rr(i,e);return this.memoizedPaths.set(e,r),r}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(e=>{if(e.source&&e.source.input.map){let n=e.source.input.map;this.previousMaps.includes(n)||this.previousMaps.push(n)}});else{let e=new ua(this.originalCSS,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk(n=>{if(n.source){let i=n.source.input.from;if(i&&!e[i]){e[i]=!0;let r=this.usesFileUrls?this.toFileUrl(i):this.toUrl(this.path(i));this.map.setSourceContent(r,n.source.input.css)}}});else if(this.css){let n=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(n,this.css)}}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let n=this.memoizedFileURLs.get(e);if(n)return n;if(_r){let i=_r(e).toString();return this.memoizedFileURLs.set(e,i),i}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let n=this.memoizedURLs.get(e);if(n)return n;Dr==="\\\\"&&(e=e.replace(/\\\\/g,"/"));let i=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,i),i}};Ir.exports=Wn});var Wr=ee((qc,Pr)=>{"use strict";var Yt=/[\\t\\n\\f\\r "#\'()/;[\\\\\\]{}]/g,Zt=/[\\t\\n\\f\\r !"#\'():;@[\\\\\\]{}]|\\/(?=\\*)/g,fa=/.[\\r\\n"\'(/\\\\]/,Or=/[\\da-f]/i;Pr.exports=function(e,n={}){let i=e.css.valueOf(),r=n.ignoreErrors,o,s,l,a,c,u,m,f,x,F,E=i.length,S=0,B=[],D=[],v=-1;function te(){return S}function q(N){throw e.error("Unclosed "+N,S)}function C(){return D.length===0&&S>=E}function g(N){if(D.length)return D.pop();if(S>=E)return;let w=N?N.ignoreUnclosed:!1;switch(o=i.charCodeAt(S),o){case 10:case 32:case 9:case 13:case 12:{a=S;do a+=1,o=i.charCodeAt(a);while(o===32||o===10||o===9||o===13||o===12);u=["space",i.slice(S,a)],S=a-1;break}case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let T=String.fromCharCode(o);u=[T,T,S];break}case 40:{if(F=B.length?B.pop()[1]:"",x=i.charCodeAt(S+1),F==="url"&&x!==39&&x!==34&&x!==32&&x!==10&&x!==9&&x!==12&&x!==13){a=S;do{if(m=!1,a=i.indexOf(")",a+1),a===-1)if(r||w){a=S;break}else q("bracket");for(f=a;i.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);u=["brackets",i.slice(S,a+1),S,a],S=a}else S<=v?u=["(","(",S]:(a=i.indexOf(")",S+1),s=i.slice(S,a+1),a===-1||fa.test(s)?(v=a===-1?E:a,u=["(","(",S]):(u=["brackets",s,S,a],S=a));break}case 39:case 34:{c=o===39?"\'":\'"\',a=S;do{if(m=!1,a=i.indexOf(c,a+1),a===-1)if(r||w){a=S+1;break}else q("string");for(f=a;i.charCodeAt(f-1)===92;)f-=1,m=!m}while(m);u=["string",i.slice(S,a+1),S,a],S=a;break}case 64:{Yt.lastIndex=S+1,Yt.test(i),Yt.lastIndex===0?a=i.length-1:a=Yt.lastIndex-2,u=["at-word",i.slice(S,a+1),S,a],S=a;break}case 92:{for(a=S,l=!0;i.charCodeAt(a+1)===92;)a+=1,l=!l;if(o=i.charCodeAt(a+1),l&&o!==47&&o!==32&&o!==10&&o!==9&&o!==13&&o!==12&&(a+=1,Or.test(i.charAt(a)))){for(;Or.test(i.charAt(a+1));)a+=1;i.charCodeAt(a+1)===32&&(a+=1)}u=["word",i.slice(S,a+1),S,a],S=a;break}default:{o===47&&i.charCodeAt(S+1)===42?(a=i.indexOf("*/",S+2)+1,a===0&&(r||w?a=i.length:q("comment")),u=["comment",i.slice(S,a+1),S,a],S=a):(Zt.lastIndex=S+1,Zt.test(i),Zt.lastIndex===0?a=i.length-1:a=Zt.lastIndex-2,u=["word",i.slice(S,a+1),S,a],B.push(u),S=a);break}}return S++,u}function A(N){D.push(N)}return{back:A,endOfFile:C,nextToken:g,position:te}}});var Ur=ee((Vc,Vr)=>{"use strict";var ma=Ut(),pa=Nt(),ha=Mt(),xa=rt(),Hr=Kt(),ga=Wr(),qr={empty:!0,space:!0};function ya(t){for(let e=t.length-1;e>=0;e--){let n=t[e],i=n[3]||n[2];if(i)return i}}var qn=class{constructor(e){this.input=e,this.root=new xa,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let n=new ma;n.name=e[1].slice(1),n.name===""&&this.unnamedAtrule(n,e),this.init(n,e[2]);let i,r,o,s=!1,l=!1,a=[],c=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),i=e[0],i==="("||i==="["?c.push(i==="("?")":"]"):i==="{"&&c.length>0?c.push("}"):i===c[c.length-1]&&c.pop(),c.length===0)if(i===";"){n.source.end=this.getPosition(e[2]),n.source.end.offset++,this.semicolon=!0;break}else if(i==="{"){l=!0;break}else if(i==="}"){if(a.length>0){for(o=a.length-1,r=a[o];r&&r[0]==="space";)r=a[--o];r&&(n.source.end=this.getPosition(r[3]||r[2]),n.source.end.offset++)}this.end(e);break}else a.push(e);else a.push(e);if(this.tokenizer.endOfFile()){s=!0;break}}n.raws.between=this.spacesAndCommentsFromEnd(a),a.length?(n.raws.afterName=this.spacesAndCommentsFromStart(a),this.raw(n,"params",a),s&&(e=a[a.length-1],n.source.end=this.getPosition(e[3]||e[2]),n.source.end.offset++,this.spaces=n.raws.between,n.raws.between="")):(n.raws.afterName="",n.params=""),l&&(n.nodes=[],this.current=n)}checkMissedSemicolon(e){let n=this.colon(e);if(n===!1)return;let i=0,r;for(let o=n-1;o>=0&&(r=e[o],!(r[0]!=="space"&&(i+=1,i===2)));o--);throw this.input.error("Missed semicolon",r[0]==="word"?r[3]+1:r[2])}colon(e){let n=0,i,r,o;for(let[s,l]of e.entries()){if(r=l,o=r[0],o==="("&&(n+=1),o===")"&&(n-=1),n===0&&o===":")if(!i)this.doubleColon(r);else{if(i[0]==="word"&&i[1]==="progid")continue;return s}i=r}return!1}comment(e){let n=new pa;this.init(n,e[2]),n.source.end=this.getPosition(e[3]||e[2]),n.source.end.offset++;let i=e[1].slice(2,-2);if(!i.trim())n.text="",n.raws.left=i,n.raws.right="";else{let r=i.match(/^(\\s*)([^]*\\S)(\\s*)$/);n.text=r[2],n.raws.left=r[1],n.raws.right=r[3]}}createTokenizer(){this.tokenizer=ga(this.input)}decl(e,n){let i=new ha;this.init(i,e[0][2]);let r=e[e.length-1];for(r[0]===";"&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(r[3]||r[2]||ya(e)),i.source.end.offset++;e[0][0]!=="word";)e.length===1&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let c=e[0][0];if(c===":"||c==="space"||c==="comment")break;i.prop+=e.shift()[1]}i.raws.between="";let o;for(;e.length;)if(o=e.shift(),o[0]===":"){i.raws.between+=o[1];break}else o[0]==="word"&&/\\w/.test(o[1])&&this.unknownWord([o]),i.raws.between+=o[1];(i.prop[0]==="_"||i.prop[0]==="*")&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let s=[],l;for(;e.length&&(l=e[0][0],!(l!=="space"&&l!=="comment"));)s.push(e.shift());this.precheckMissedSemicolon(e);for(let c=e.length-1;c>=0;c--){if(o=e[c],o[1].toLowerCase()==="!important"){i.important=!0;let u=this.stringFrom(e,c);u=this.spacesFromEnd(e)+u,u!==" !important"&&(i.raws.important=u);break}else if(o[1].toLowerCase()==="important"){let u=e.slice(0),m="";for(let f=c;f>0;f--){let x=u[f][0];if(m.trim().startsWith("!")&&x!=="space")break;m=u.pop()[1]+m}m.trim().startsWith("!")&&(i.important=!0,i.raws.important=m,e=u)}if(o[0]!=="space"&&o[0]!=="comment")break}e.some(c=>c[0]!=="space"&&c[0]!=="comment")&&(i.raws.between+=s.map(c=>c[1]).join(""),s=[]),this.raw(i,"value",s.concat(e),n),i.value.includes(":")&&!n&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let n=new Hr;this.init(n,e[2]),n.selector="",n.raws.between="",this.current=n}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let n=this.current.nodes[this.current.nodes.length-1];n&&n.type==="rule"&&!n.raws.ownSemicolon&&(n.raws.ownSemicolon=this.spaces,this.spaces="",n.source.end=this.getPosition(e[2]),n.source.end.offset+=n.raws.ownSemicolon.length)}}getPosition(e){let n=this.input.fromOffset(e);return{column:n.col,line:n.line,offset:e}}init(e,n){this.current.push(e),e.source={input:this.input,start:this.getPosition(n)},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}other(e){let n=!1,i=null,r=!1,o=null,s=[],l=e[1].startsWith("--"),a=[],c=e;for(;c;){if(i=c[0],a.push(c),i==="("||i==="[")o||(o=c),s.push(i==="("?")":"]");else if(l&&r&&i==="{")o||(o=c),s.push("}");else if(s.length===0)if(i===";")if(r){this.decl(a,l);return}else break;else if(i==="{"){this.rule(a);return}else if(i==="}"){this.tokenizer.back(a.pop()),n=!0;break}else i===":"&&(r=!0);else i===s[s.length-1]&&(s.pop(),s.length===0&&(o=null));c=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(n=!0),s.length>0&&this.unclosedBracket(o),n&&r){if(!l)for(;a.length&&(c=a[a.length-1][0],!(c!=="space"&&c!=="comment"));)this.tokenizer.back(a.pop());this.decl(a,l)}else this.unknownWord(a)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,n,i,r){let o,s,l=i.length,a="",c=!0,u,m;for(let f=0;f<l;f+=1)o=i[f],s=o[0],s==="space"&&f===l-1&&!r?c=!1:s==="comment"?(m=i[f-1]?i[f-1][0]:"empty",u=i[f+1]?i[f+1][0]:"empty",!qr[m]&&!qr[u]?a.slice(-1)===","?c=!1:a+=o[1]:c=!1):a+=o[1];if(!c){let f=i.reduce((x,F)=>x+F[1],"");e.raws[n]={raw:f,value:a}}e[n]=a}rule(e){e.pop();let n=new Hr;this.init(n,e[0][2]),n.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(n,"selector",e),this.current=n}spacesAndCommentsFromEnd(e){let n,i="";for(;e.length&&(n=e[e.length-1][0],!(n!=="space"&&n!=="comment"));)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let n,i="";for(;e.length&&(n=e[0][0],!(n!=="space"&&n!=="comment"));)i+=e.shift()[1];return i}spacesFromEnd(e){let n,i="";for(;e.length&&(n=e[e.length-1][0],n==="space");)i=e.pop()[1]+i;return i}stringFrom(e,n){let i="";for(let r=n;r<e.length;r++)i+=e[r][1];return e.splice(n,e.length-n),i}unclosedBlock(){let e=this.current.source.start;throw this.input.error("Unclosed block",e.line,e.column)}unclosedBracket(e){throw this.input.error("Unclosed bracket",{offset:e[2]},{offset:e[2]+1})}unexpectedClose(e){throw this.input.error("Unexpected }",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error("Unknown word "+e[0][1],{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unnamedAtrule(e,n){throw this.input.error("At-rule without name",{offset:n[2]},{offset:n[2]+n[1].length})}};Vr.exports=qn});var en=ee((Uc,zr)=>{"use strict";var Sa=qe(),ba=kt(),Aa=Ur();function Xt(t,e){let n=new ba(t,e),i=new Aa(n);try{i.parse()}catch(r){throw r}return i.root}zr.exports=Xt;Xt.default=Xt;Sa.registerParse(Xt)});var Vn=ee((zc,jr)=>{"use strict";var Rt=class{constructor(e,n={}){if(this.type="warning",this.text=e,n.node&&n.node.source){let i=n.node.rangeBy(n);this.line=i.start.line,this.column=i.start.column,this.endLine=i.end.line,this.endColumn=i.end.column}for(let i in n)this[i]=n[i]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};jr.exports=Rt;Rt.default=Rt});var tn=ee((jc,$r)=>{"use strict";var Ea=Vn(),Lt=class{get content(){return this.css}constructor(e,n,i){this.processor=e,this.messages=[],this.root=n,this.opts=i,this.css="",this.map=void 0}toString(){return this.css}warn(e,n={}){n.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(n.plugin=this.lastPlugin.postcssPlugin);let i=new Ea(e,n);return this.messages.push(i),i}warnings(){return this.messages.filter(e=>e.type==="warning")}};$r.exports=Lt;Lt.default=Lt});var Un=ee(($c,Kr)=>{"use strict";var Gr={};Kr.exports=function(e){Gr[e]||(Gr[e]=!0,typeof console<"u"&&console.warn&&console.warn(e))}});var $n=ee((Kc,Zr)=>{"use strict";var Fa=qe(),wa=zt(),Na=Hn(),Ca=en(),Jr=tn(),Ma=rt(),Ta=bt(),{isClean:Be,my:ka}=Vt(),Gc=Un(),va={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},_a={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},Ra={Once:!0,postcssPlugin:!0,prepare:!0},st=0;function Dt(t){return typeof t=="object"&&typeof t.then=="function"}function Yr(t){let e=!1,n=va[t.type];return t.type==="decl"?e=t.prop.toLowerCase():t.type==="atrule"&&(e=t.name.toLowerCase()),e&&t.append?[n,n+"-"+e,st,n+"Exit",n+"Exit-"+e]:e?[n,n+"-"+e,n+"Exit",n+"Exit-"+e]:t.append?[n,st,n+"Exit"]:[n,n+"Exit"]}function Qr(t){let e;return t.type==="document"?e=["Document",st,"DocumentExit"]:t.type==="root"?e=["Root",st,"RootExit"]:e=Yr(t),{eventIndex:0,events:e,iterator:0,node:t,visitorIndex:0,visitors:[]}}function zn(t){return t[Be]=!1,t.nodes&&t.nodes.forEach(e=>zn(e)),t}var jn={},Ue=class t{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(e,n,i){this.stringified=!1,this.processed=!1;let r;if(typeof n=="object"&&n!==null&&(n.type==="root"||n.type==="document"))r=zn(n);else if(n instanceof t||n instanceof Jr)r=zn(n.root),n.map&&(typeof i.map>"u"&&(i.map={}),i.map.inline||(i.map.inline=!1),i.map.prev=n.map);else{let o=Ca;i.syntax&&(o=i.syntax.parse),i.parser&&(o=i.parser),o.parse&&(o=o.parse);try{r=o(n,i)}catch(s){this.processed=!0,this.error=s}r&&!r[ka]&&Fa.rebuild(r)}this.result=new Jr(e,r,i),this.helpers={...jn,postcss:jn,result:this.result},this.plugins=this.processor.plugins.map(o=>typeof o=="object"&&o.prepare?{...o,...o.prepare(this.result)}:o)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,n){let i=this.result.lastPlugin;try{n&&n.addToError(e),this.error=e,e.name==="CssSyntaxError"&&!e.plugin?(e.plugin=i.postcssPlugin,e.setMessage()):i.postcssVersion}catch(r){console&&console.error&&console.error(r)}return e}prepareVisitors(){this.listeners={};let e=(n,i,r)=>{this.listeners[i]||(this.listeners[i]=[]),this.listeners[i].push([n,r])};for(let n of this.plugins)if(typeof n=="object")for(let i in n){if(!_a[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${n.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!Ra[i])if(typeof n[i]=="object")for(let r in n[i])r==="*"?e(n,i,n[i][r]):e(n,i+"-"+r.toLowerCase(),n[i][r]);else typeof n[i]=="function"&&e(n,i,n[i])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let e=0;e<this.plugins.length;e++){let n=this.plugins[e],i=this.runOnRoot(n);if(Dt(i))try{await i}catch(r){throw this.handleError(r)}}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Be];){e[Be]=!0;let n=[Qr(e)];for(;n.length>0;){let i=this.visitTick(n);if(Dt(i))try{await i}catch(r){let o=n[n.length-1].node;throw this.handleError(r,o)}}}if(this.listeners.OnceExit)for(let[n,i]of this.listeners.OnceExit){this.result.lastPlugin=n;try{if(e.type==="document"){let r=e.nodes.map(o=>i(o,this.helpers));await Promise.all(r)}else await i(e,this.helpers)}catch(r){throw this.handleError(r)}}}return this.processed=!0,this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e=="object"&&e.Once){if(this.result.root.type==="document"){let n=this.result.root.nodes.map(i=>e.Once(i,this.helpers));return Dt(n[0])?Promise.all(n):n}return e.Once(this.result.root,this.helpers)}else if(typeof e=="function")return e(this.result.root,this.result)}catch(n){throw this.handleError(n)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,n=Ta;e.syntax&&(n=e.syntax.stringify),e.stringifier&&(n=e.stringifier),n.stringify&&(n=n.stringify);let i=this.result.root.source;if(e.map===void 0&&!(i&&i.input&&i.input.map)){let s="";return n(this.result.root,l=>{s+=l}),this.result.css=s,this.result}let o=new Na(n,this.result.root,this.result.opts).generate();return this.result.css=o[0],this.result.map=o[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){let n=this.runOnRoot(e);if(Dt(n))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Be];)e[Be]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type==="document")for(let n of e.nodes)this.visitSync(this.listeners.OnceExit,n);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,n){return this.async().then(e,n)}toString(){return this.css}visitSync(e,n){for(let[i,r]of e){this.result.lastPlugin=i;let o;try{o=r(n,this.helpers)}catch(s){throw this.handleError(s,n.proxyOf)}if(n.type!=="root"&&n.type!=="document"&&!n.parent)return!0;if(Dt(o))throw this.getAsyncError()}}visitTick(e){let n=e[e.length-1],{node:i,visitors:r}=n;if(i.type!=="root"&&i.type!=="document"&&!i.parent){e.pop();return}if(r.length>0&&n.visitorIndex<r.length){let[s,l]=r[n.visitorIndex];n.visitorIndex+=1,n.visitorIndex===r.length&&(n.visitors=[],n.visitorIndex=0),this.result.lastPlugin=s;try{return l(i.toProxy(),this.helpers)}catch(a){throw this.handleError(a,i)}}if(n.iterator!==0){let s=n.iterator,l;for(;l=i.nodes[i.indexes[s]];)if(i.indexes[s]+=1,!l[Be]){l[Be]=!0,e.push(Qr(l));return}n.iterator=0,delete i.indexes[s]}let o=n.events;for(;n.eventIndex<o.length;){let s=o[n.eventIndex];if(n.eventIndex+=1,s===st){i.nodes&&i.nodes.length&&(i[Be]=!0,n.iterator=i.getIterator());return}else if(this.listeners[s]){n.visitors=this.listeners[s];return}}e.pop()}walkSync(e){e[Be]=!0;let n=Yr(e);for(let i of n)if(i===st)e.nodes&&e.each(r=>{r[Be]||this.walkSync(r)});else{let r=this.listeners[i];if(r&&this.visitSync(r,e.toProxy()))return}}warnings(){return this.sync().warnings()}};Ue.registerPostcss=t=>{jn=t};Zr.exports=Ue;Ue.default=Ue;Ma.registerLazyResult(Ue);wa.registerLazyResult(Ue)});var eo=ee((Qc,Xr)=>{"use strict";var La=Hn(),Da=en(),Ba=tn(),Ia=bt(),Jc=Un(),Bt=class{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,n=Da;try{e=n(this._css,this._opts)}catch(i){this.error=i}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(e,n,i){n=n.toString(),this.stringified=!1,this._processor=e,this._css=n,this._opts=i,this._map=void 0;let r=Ia;this.result=new Ba(this._processor,void 0,this._opts),this.result.css=n;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let s=new La(r,void 0,this._opts,n);if(s.isMap()){let[l,a]=s.generate();l&&(this.result.css=l),a&&(this.result.map=a)}else s.clearAnnotation(),this.result.css=s.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,n){return this.async().then(e,n)}toString(){return this._css}warnings(){return[]}};Xr.exports=Bt;Bt.default=Bt});var no=ee((Yc,to)=>{"use strict";var Oa=zt(),Pa=$n(),Wa=eo(),Ha=rt(),Xe=class{constructor(e=[]){this.version="8.5.14",this.plugins=this.normalize(e)}normalize(e){let n=[];for(let i of e)if(i.postcss===!0?i=i():i.postcss&&(i=i.postcss),typeof i=="object"&&Array.isArray(i.plugins))n=n.concat(i.plugins);else if(typeof i=="object"&&i.postcssPlugin)n.push(i);else if(typeof i=="function")n.push(i);else if(!(typeof i=="object"&&(i.parse||i.stringify)))throw new Error(i+" is not a PostCSS plugin");return n}process(e,n={}){return!this.plugins.length&&!n.parser&&!n.stringifier&&!n.syntax?new Wa(this,e,n):new Pa(this,e,n)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};to.exports=Xe;Xe.default=Xe;Ha.registerProcessor(Xe);Oa.registerProcessor(Xe)});var co=ee((Zc,uo)=>{"use strict";var io=Ut(),ro=Nt(),qa=qe(),Va=qt(),oo=Mt(),so=zt(),Ua=vr(),za=kt(),ja=$n(),$a=Pn(),Ga=Ft(),Ka=en(),Gn=no(),Ja=tn(),ao=rt(),lo=Kt(),Qa=bt(),Ya=Vn();function re(...t){return t.length===1&&Array.isArray(t[0])&&(t=t[0]),new Gn(t)}re.plugin=function(e,n){let i=!1;function r(...s){console&&console.warn&&!i&&(i=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration`),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(e+`: \\u91CC\\u9762 postcss.plugin \\u88AB\\u5F03\\u7528. \\u8FC1\\u79FB\\u6307\\u5357:\nhttps://www.w3ctech.com/topic/2226`));let l=n(...s);return l.postcssPlugin=e,l.postcssVersion=new Gn().version,l}let o;return Object.defineProperty(r,"postcss",{get(){return o||(o=r()),o}}),r.process=function(s,l,a){return re([r(a)]).process(s,l)},r};re.stringify=Qa;re.parse=Ka;re.fromJSON=Ua;re.list=$a;re.comment=t=>new ro(t);re.atRule=t=>new io(t);re.decl=t=>new oo(t);re.rule=t=>new lo(t);re.root=t=>new ao(t);re.document=t=>new so(t);re.CssSyntaxError=Va;re.Declaration=oo;re.Container=qa;re.Processor=Gn;re.Document=so;re.Comment=ro;re.Warning=Ya;re.AtRule=io;re.Result=Ja;re.Input=za;re.Rule=lo;re.Root=ao;re.Node=Ga;ja.registerPostcss(re);uo.exports=re;re.default=re});function _(t,e){if(typeof window>"u")return;let n=window,i=n.__hf?.onSwallowed;if(i)try{i({label:t,error:e})}catch(r){}(n.__hfDebug||n.__HYPERFRAMES_DEBUG)&&console.debug(`[hyperframes] ${t} swallowed:`,e)}function Ae(t){try{window.parent.postMessage(t,"*")}catch(e){_("bridge.postMessage",e)}}function hi(t){let e=n=>{let i=n.data;if(!i||i.source!=="hf-parent"||i.type!=="control")return;let r=i.action;if(r==="play"){t.onPlay();return}if(r==="pause"){t.onPause();return}if(r==="seek"){t.onSeek(Number(i.frame??0),i.seekMode??"commit");return}if(r==="tick"){t.onTick();return}if(r==="set-muted"){t.onSetMuted(!!i.muted);return}if(r==="set-volume"){t.onSetVolume(Math.max(0,Math.min(1,Number(i.volume??1))));return}if(r==="set-media-output-muted"){t.onSetMediaOutputMuted(!!i.muted);return}if(r==="set-playback-rate"){t.onSetPlaybackRate(Number(i.playbackRate??1));return}if(r==="enable-pick-mode"){t.onEnablePickMode();return}if(r==="disable-pick-mode"){t.onDisablePickMode();return}if(r==="flash-elements"){let o=i.selectors,s=i.duration||800;o&&cs(o,s)}};return window.addEventListener("message",e),e}function cs(t,e){if(!document.getElementById("__hf-flash-styles")){let n=document.createElement("style");n.id="__hf-flash-styles",n.textContent=`\n .__hf-flash {\n outline: 2px solid rgba(59, 130, 246, 0.6) !important;\n outline-offset: 2px !important;\n animation: __hf-flash-pulse ${e}ms ease-out forwards !important;\n }\n @keyframes __hf-flash-pulse {\n 0% { outline-color: rgba(59, 130, 246, 0.8); }\n 100% { outline-color: transparent; }\n }\n `,document.head.appendChild(n)}for(let n of t)try{document.querySelectorAll(n).forEach(r=>{r.classList.add("__hf-flash"),setTimeout(()=>r.classList.remove("__hf-flash"),e)})}catch(i){_("bridge.flashElements.querySelector",i)}}var gn=null;function xi(t){gn=t}function dt(t,e){if(gn)try{gn({source:"hf-preview",type:"analytics",event:t,properties:e??{}})}catch(n){_("runtime.analytics.site1",n)}}function gi(t){let e=[],n=l=>{if(typeof l.getAnimations!="function")return[];try{return l.getAnimations()}catch{return[]}},i=(l,a)=>{for(let c of l){try{c.currentTime=a}catch(u){_("runtime.adapters.css.site1",u)}try{c.pause()}catch(u){_("runtime.adapters.css.site2",u)}}},r=l=>{for(let a of l)try{a.play()}catch(c){_("runtime.adapters.css.site3",c)}},o=l=>{for(let a of l)try{a.pause()}catch(c){_("runtime.adapters.css.site4",c)}},s=l=>{l.baseDelay?l.el.style.animationDelay=l.baseDelay:l.el.style.removeProperty("animation-delay"),l.basePlayState?l.el.style.animationPlayState=l.basePlayState:l.el.style.removeProperty("animation-play-state")};return{name:"css",discover:()=>{e=[];let l=document.querySelectorAll("*");for(let a of l){if(!(a instanceof HTMLElement))continue;let c=window.getComputedStyle(a);!c.animationName||c.animationName==="none"||e.push({el:a,baseDelay:a.style.animationDelay||"",basePlayState:a.style.animationPlayState||""})}},seek:l=>{let a=Number(l.time)||0;for(let c of e){if(!c.el.isConnected)continue;let u=t?.resolveStartSeconds?t.resolveStartSeconds(c.el):Number.parseFloat(c.el.getAttribute("data-start")??"0")||0,m=Math.max(0,a-u)*1e3,f=n(c.el);if(f.length>0){i(f,m);continue}c.el.style.animationPlayState="paused",c.el.style.animationDelay=`-${(m/1e3).toFixed(3)}s`}},pause:()=>{for(let l of e){if(!l.el.isConnected)continue;let a=n(l.el);a.length>0&&o(a),s(l)}},play:()=>{for(let l of e)l.el.isConnected&&(s(l),r(n(l.el)))},revert:()=>{e=[]}}}function yi(t){return{name:"gsap",discover:()=>{},seek:e=>{let n=t.getTimeline();if(!n)return;n.pause();let i=Math.max(0,Number(e.time)||0);typeof n.totalTime=="function"?(n.totalTime(i+.001,!0),n.totalTime(i,!1)):n.seek(i,!1)},pause:()=>{let e=t.getTimeline();e&&e.pause()}}}function Si(){return{name:"animejs",discover:()=>{try{let t=window.anime;if(!t||typeof t.running>"u")return;let e=t.running;if(!Array.isArray(e)||e.length===0)return;let n=window.__hfAnime??[],i=new Set(n);for(let r of e)i.has(r)||n.push(r);window.__hfAnime=n}catch(t){_("runtime.adapters.animejs.site1",t)}},seek:t=>{let e=Math.max(0,(Number(t.time)||0)*1e3),n=window.__hfAnime;if(!(!n||n.length===0))for(let i of n)try{typeof i.seek=="function"&&i.seek(e)}catch(r){_("runtime.adapters.animejs.site2",r)}},pause:()=>{let t=window.__hfAnime;if(!(!t||t.length===0))for(let e of t)try{typeof e.pause=="function"&&e.pause()}catch(n){_("runtime.adapters.animejs.site3",n)}},play:()=>{let t=window.__hfAnime;if(!(!t||t.length===0))for(let e of t)try{typeof e.play=="function"&&e.play()}catch(n){_("runtime.adapters.animejs.site4",n)}},revert:()=>{}}}function Ei(){return{name:"lottie",discover:()=>{try{let t=window.lottie;if(t&&typeof t.getRegisteredAnimations=="function"){let e=t.getRegisteredAnimations();if(Array.isArray(e)&&e.length>0){let n=window.__hfLottie??[],i=new Set(n);for(let r of e)i.has(r)||n.push(r);window.__hfLottie=n}}}catch(t){_("runtime.adapters.lottie.site1",t)}},seek:t=>{let e=Math.max(0,Number(t.time)||0),n=window.__hfLottie;if(!(!n||n.length===0))for(let i of n)try{if(bi(i))i.goToAndStop(e*1e3,!1);else if(Ai(i)){if(typeof i.setCurrentRawFrameValue=="function"){let r=i.totalFrames??0,o=i.frameRate??30,s=e*o;r>0&&i.setCurrentRawFrameValue(Math.min(s,r-1))}else if(typeof i.seek=="function"){let r=i.duration??1,o=Math.min(100,e/r*100);i.seek(o)}}}catch(r){_("runtime.adapters.lottie.site2",r)}},pause:()=>{let t=window.__hfLottie;if(!(!t||t.length===0))for(let e of t)try{(bi(e)||Ai(e))&&e.pause()}catch(n){_("runtime.adapters.lottie.site3",n)}},revert:()=>{}}}function bi(t){return typeof t=="object"&&t!==null&&typeof t.goToAndStop=="function"}function Ai(t){return typeof t=="object"&&t!==null&&typeof t.pause=="function"&&("totalFrames"in t||"duration"in t)}var Fi=-1;function Ht(t){if(t!==Fi){Fi=t;try{window.dispatchEvent(new CustomEvent("hf-seek",{detail:{time:t}}))}catch(e){_("runtime.adapters.seek-dispatch.site1",e)}}}function wi(){let t=null,e=0;return{name:"three",discover:()=>{},seek:n=>{t=Math.max(0,Number(n.time)||0),e=t,window.__hfThreeTime=t,Ht(t)},pause:()=>{t==null&&(t=Math.max(0,e))},play:()=>{t=null},revert:()=>{t=null,e=0}}}function Ni(){let t=null,e=0;return{name:"typegpu",discover:()=>{},seek:n=>{t=Math.max(0,Number(n.time)||0),e=t,window.__hfTypegpuTime=t,Ht(t)},pause:()=>{t==null&&(t=Math.max(0,e))},play:()=>{t=null},revert:()=>{t=null,e=0}}}function Ci(){let t=globalThis.GPUQueue;if(!t?.prototype?.copyExternalImageToTexture)return;let e=t.prototype.copyExternalImageToTexture;t.prototype.copyExternalImageToTexture=function(n,i,r){if(n?.source instanceof HTMLVideoElement){let o=n.source.nextElementSibling;if(o instanceof HTMLImageElement&&o.classList.contains("__render_frame__")&&o.complete&&o.naturalWidth>0)return e.call(this,{...n,source:o},i,r)}return e.call(this,n,i,r)}}function Mi(){let t=!1,e=0,n=new WeakMap,i=()=>{if(!document.getAnimations)return[];try{return document.getAnimations()}catch{return[]}},r=l=>{let a=Number(l.currentTime);return Number.isFinite(a)&&a>0?a:0},o=(l,a)=>a<=0?l:l>=a?Math.max(0,l-a):l,s=(l,a)=>{let c=n.get(l);if(c)return c;let u={compositionTimeMs:a,animationTimeMs:t?o(r(l),a):r(l)};return n.set(l,u),u};return{name:"waapi",discover:()=>{t=!0;for(let l of i())s(l,e)},seek:l=>{let a=Math.max(0,(Number(l.time)||0)*1e3);e=a;for(let c of i()){let u=t?s(c,a):s(c,0),m=u.animationTimeMs+Math.max(0,a-u.compositionTimeMs);try{c.currentTime=m}catch(f){_("runtime.adapters.waapi.site1",f)}try{c.pause()}catch(f){_("runtime.adapters.waapi.site2",f)}}},pause:()=>{if(document.getAnimations)for(let l of document.getAnimations())try{l.pause()}catch(a){_("runtime.adapters.waapi.site3",a)}}}}function Ti(t,e){if(t.length===0)return 1;let n=0;for(;n<t.length-2&&e>=t[n+1].time;)n+=1;let i=t[n],r=t[n+1]??i,o=r.time-i.time,s=o<=0?0:Math.min(1,Math.max(0,(e-i.time)/o));return i.volume+(r.volume-i.volume)*s}function ds(t,e,n,i){let r=Number.parseFloat(t.dataset.start??"0")||0,o=Number.parseFloat(t.dataset.end??""),s=Number.parseFloat(t.dataset.duration??""),l=Number.isFinite(o)&&o>r?o:Number.isFinite(s)&&s>0?r+s:n,a=Number.parseFloat(t.dataset.volume??""),c=Number.isFinite(a)?Math.max(0,Math.min(1,a)):1;t.volume=c;let u=1/Math.min(60,Math.max(1,i)),m=Math.max(0,r),f=Math.min(n,l),x=[];for(let E=m;E<=f+1e-6;E+=u){let S=Math.min(f,E);e(S);let B=Number(t.volume);if(!Number.isFinite(B))continue;let D=Math.max(0,Math.min(1,B)),v=x.at(-1);if((!v||Math.abs(v.volume-D)>1e-4||S===f)&&x.push({time:Number(S.toFixed(6)),volume:Number(D.toFixed(6))}),S===f)break}return x.some(E=>Math.abs(E.volume-c)>1e-4)?x:null}function ki(t,e,n,i){if(!e||!(t instanceof HTMLAudioElement)&&!(t instanceof HTMLVideoElement)||n<=0)return;let o=ds(t,s=>{try{typeof e.totalTime=="function"?e.totalTime(s,!0):typeof e.seek=="function"&&e.seek(s,!0)}catch{}},n,60);o&&i.set(t,o)}function vi(t){let e=Array.from(document.querySelectorAll("video, audio")),n=t?.shouldIncludeElement?e.filter(s=>t.shouldIncludeElement?.(s)):e.filter(s=>s.hasAttribute("data-start")),i=[],r=[],o=0;for(let s of n){let l=t?.resolveStartSeconds?t.resolveStartSeconds(s):Number.parseFloat(s.dataset.start??"0");if(!Number.isFinite(l))continue;let a=Number.parseFloat(s.dataset.playbackStart??s.dataset.mediaStart??"0")||0,c=s.defaultPlaybackRate,u=Number.isFinite(c)&&c>0?Math.max(.1,Math.min(5,c)):1,m=s.loop,f=Number.isFinite(s.duration)&&s.duration>0?s.duration:null,x=t?.resolveDurationSeconds?.(s)??Number.parseFloat(s.dataset.duration??"");(!Number.isFinite(x)||x<=0)&&f!=null&&(x=Math.max(0,(f-a)/u));let F=Number.isFinite(x)&&x>0?l+x:Number.POSITIVE_INFINITY,E=Number.parseFloat(s.dataset.volume??""),S={el:s,start:l,mediaStart:a,duration:Number.isFinite(x)&&x>0?x:Number.POSITIVE_INFINITY,end:F,volume:Number.isFinite(E)?E:null,playbackRate:u,loop:m,sourceDuration:f};i.push(S),s.tagName==="VIDEO"&&r.push(S),Number.isFinite(F)&&(o=Math.max(o,F))}return{timedMediaEls:n,mediaClips:i,videoClips:r,maxMediaEnd:o}}var yn=new WeakMap,ft=new WeakMap,Sn=new WeakSet,et=new WeakSet;function fs(t){if(et.has(t))return;et.add(t);let e=()=>et.delete(t);t.addEventListener("playing",e,{once:!0}),t.addEventListener("pause",e,{once:!0}),t.addEventListener("error",e,{once:!0})}var bn=new WeakMap;function mt(t){return Number.isFinite(t)?Math.max(0,Math.min(1,t)):1}function _i(t){let e=!!(t.outputMuted||t.userMuted);for(let n of t.clips){let{el:i}=n;if(!i.isConnected)continue;let r=(t.timeSeconds-n.start)*n.playbackRate+n.mediaStart;if(t.timeSeconds>=n.start&&t.timeSeconds<=n.end&&r>=0&&(!i.ended||n.loop)){if(n.loop&&n.sourceDuration!=null&&n.sourceDuration>0){let w=n.sourceDuration-n.mediaStart;w>0&&r>=n.sourceDuration&&(r=n.mediaStart+(r-n.mediaStart)%w)}let s=mt(t.userVolume??1),l=mt(n.volume??1),a=bn.get(i),c=mt(i.volume),u;n.volumeKeyframes&&n.volumeKeyframes.length>0?u=mt(Ti(n.volumeKeyframes,r)):a===void 0||Math.abs(c-a)>1e-4?u=c:u=l;let m=mt(u*s);i.volume=m,bn.set(i,m),t.onElementVolume?.(i,m),e&&(i.muted=!0),i.preload!=="auto"&&(i.preload="auto");try{i.playbackRate=n.playbackRate*t.playbackRate}catch(w){_("runtime.media.site1",w)}let f=.04,x=2,F=i.currentTime||0,E=Math.abs(F-r),S=r-F,B=yn.get(i);yn.set(i,S);let D=B===void 0,v=!D&&Math.abs(S-B)>.5,te=E>3,q=E>.5&&(D||v||te),C=i.tagName==="VIDEO"&&!i.paused,g=B!==void 0&&Math.abs(S-B)<.004,A=!1;if(!C&&!q&&!D&&g&&E>f){let w=(ft.get(i)??0)+1;ft.set(i,w),w>=x&&(A=!0,ft.set(i,0))}else E<=f&&ft.set(i,0);let N=!C&&t.forceSync&&E>.02;if(q||A||N){try{i.currentTime=r}catch(w){_("runtime.media.site2",w)}if(Math.abs(i.currentTime-r)>.5&&!Sn.has(i)){Sn.add(i),i.load();try{i.currentTime=r}catch(w){_("runtime.media.site3",w)}}et.delete(i)}t.playing&&i.paused&&!et.has(i)?(fs(i),i.play().catch(w=>{et.delete(i),(w&&typeof w=="object"&&"name"in w?String(w.name??""):"")==="NotAllowedError"&&t.onAutoplayBlocked?.()})):!t.playing&&!i.paused&&i.pause();continue}yn.delete(i),ft.delete(i),Sn.delete(i),bn.delete(i),i.paused||i.pause()}}var ms=["[data-hyperframes-ignore]","[data-hyperframes-picker-ignore]","[data-hf-ignore]","[data-no-inspect]","[data-no-pick]","[data-hyper-shader-loading]"].join(","),ps=["[data-hyperframes-picker-block]","[data-hyper-shader-loading]"].join(",");function Ri(t){let e=!1,n=null,i=null,r=null,o=null;function s(g,A){try{window.dispatchEvent(new CustomEvent(g,{detail:A}))}catch(N){_("runtime.picker.site1",N)}}function l(g){r=g,s("hyperframe:picker:hovered",{elementInfo:r,isPickMode:e,timestamp:Date.now()})}function a(g){o=g,s("hyperframe:picker:selected",{elementInfo:o,isPickMode:e,timestamp:Date.now()})}function c(g){let A=g.ownerDocument.defaultView;if(!A)return!1;let N=g;for(;N&&N!==document.body&&N!==document.documentElement;){let w=A.getComputedStyle(N);if(w.display==="none"||w.visibility==="hidden"||w.pointerEvents==="none")return!0;let T=Number.parseFloat(w.opacity);if(Number.isFinite(T)&&T<=.01)return!0;N=N.parentElement}return!1}function u(g){if(!g||g===document.body||g===document.documentElement)return!1;let A=g.tagName.toLowerCase();return!(A==="script"||A==="style"||A==="link"||A==="meta"||g.classList.contains("__hf-pick-highlight")||g.closest(ms)||c(g))}function m(g){return!!g?.closest(ps)}function f(g){let A=g;if(A.id)return`#${A.id}`;let N=g.getAttribute("data-composition-id");if(N)return`[data-composition-id="${N}"]`;let w=g.getAttribute("data-composition-src");if(w)return`[data-composition-src="${w}"]`;let T=g.getAttribute("data-track-index");if(T)return`[data-track-index="${T}"]`;let L=g.tagName.toLowerCase(),P=g.parentElement;if(!P)return L;let J=P.querySelectorAll(`:scope > ${L}`);if(J.length===1)return L;for(let R=0;R<J.length;R+=1)if(J[R]===g)return`${L}:nth-of-type(${R+1})`;return L}function x(g){let A=g.tagName.toLowerCase(),N=(g.textContent??"").trim().replace(/\\s+/g," "),w=(T,L)=>T.length>L?`${T.slice(0,L-1)}\\u2026`:T;return A==="h1"||A==="h2"||A==="h3"?"Heading":A==="p"||A==="span"||A==="div"?N.length>0?w(N,56):"Text":A==="img"?"Image":A==="video"?"Video":A==="audio"?"Audio":A==="svg"?"Shape":g.getAttribute("data-composition-src")?"Composition":A==="section"?"Section":`${A.charAt(0).toUpperCase()}${A.slice(1)}`}function F(g,A,N){let w=typeof N=="number"&&N>0?N:8,T=[];if(document.elementsFromPoint)T=document.elementsFromPoint(g,A);else if(document.elementFromPoint){let J=document.elementFromPoint(g,A);T=J?[J]:[]}if(m(T[0]??null))return[];let L={},P=[];for(let J=0;J<T.length;J+=1){let R=T[J];if(!u(R))continue;let ue=`${R.tagName}::${R.id||""}::${J}`;if(!L[ue]&&(L[ue]=!0,P.push(R),P.length>=w))break}return P}function E(g){let A=g.getBoundingClientRect(),N={};for(let T=0;T<g.attributes.length;T+=1){let L=g.attributes[T];L.name.startsWith("data-")&&(N[L.name]=L.value)}return{id:g.id||null,tagName:g.tagName.toLowerCase(),selector:f(g),label:x(g),boundingBox:{x:A.left,y:A.top,width:A.width,height:A.height},textContent:g.textContent?g.textContent.trim().slice(0,200):null,src:g.getAttribute("src")||g.getAttribute("data-composition-src")||null,dataAttributes:N}}function S(g,A,N){return F(g,A,N).map(E)}function B(g){if(!e)return;let N=F(g.clientX,g.clientY,1)[0]??(g.target instanceof Element?g.target:null);if(!u(N)||n===N)return;n&&n.classList.remove("__hf-pick-highlight"),n=N,N.classList.add("__hf-pick-highlight");let w=E(N);l(w),t.postMessage({source:"hf-preview",type:"element-hovered",elementInfo:w})}function D(g){if(!e)return;g.preventDefault(),g.stopPropagation(),g.stopImmediatePropagation();let A=S(g.clientX,g.clientY,8);A.length!==0&&(l(A[0]??null),t.postMessage({source:"hf-preview",type:"element-pick-candidates",candidates:A,selectedIndex:0,point:{x:g.clientX,y:g.clientY}}))}function v(g){g.key==="Escape"&&(q(),t.postMessage({source:"hf-preview",type:"pick-mode-cancelled"}))}function te(){e||(e=!0,i=document.createElement("style"),i.textContent=[".__hf-pick-highlight { outline: 2px solid #4f8cf7 !important; outline-offset: 2px; cursor: crosshair !important; }",".__hf-pick-active * { cursor: crosshair !important; }"].join(`\n`),document.head.appendChild(i),document.body.classList.add("__hf-pick-active"),document.addEventListener("mousemove",B,!0),document.addEventListener("click",D,!0),document.addEventListener("keydown",v,!0),s("hyperframe:picker:mode",{isPickMode:!0,timestamp:Date.now()}))}function q(){e&&(e=!1,n&&(n.classList.remove("__hf-pick-highlight"),n=null),i&&(i.remove(),i=null),document.body.classList.remove("__hf-pick-active"),document.removeEventListener("mousemove",B,!0),document.removeEventListener("click",D,!0),document.removeEventListener("keydown",v,!0),s("hyperframe:picker:mode",{isPickMode:!1,timestamp:Date.now()}))}function C(){window.__HF_PICKER_API={enable:te,disable:q,isActive:()=>e,getHovered:()=>r,getSelected:()=>o,getCandidatesAtPoint:(g,A,N)=>Number.isFinite(g)&&Number.isFinite(A)?S(g,A,N):[],pickAtPoint:(g,A,N)=>{if(!Number.isFinite(g)||!Number.isFinite(A))return null;let w=S(g,A,8);if(!w.length)return null;let T=Math.max(0,Math.min(w.length-1,Number(N??0))),L=w[T]??null;return L?(a(L),t.postMessage({source:"hf-preview",type:"element-picked",elementInfo:L}),q(),L):null},pickManyAtPoint:(g,A,N)=>{if(!Number.isFinite(g)||!Number.isFinite(A))return[];let w=S(g,A,8);if(!w.length)return[];let T=[],L=Array.isArray(N)?N:[0];for(let P of L){let J=Math.max(0,Math.min(w.length-1,Math.floor(Number(P)))),R=w[J];if(!R)continue;T.some(Se=>Se.selector===R.selector&&Se.tagName===R.tagName)||T.push(R)}return T.length?(a(T[0]??null),t.postMessage({source:"hf-preview",type:"element-picked-many",elementInfos:T}),q(),T):[]}},s("hyperframe:picker:api-ready",{hasApi:!0,timestamp:Date.now()})}return{enablePickMode:te,disablePickMode:q,installPickerApi:C}}function tt(t,e){let n=Number.isFinite(e)&&e>0?e:30,i=Number.isFinite(t)&&t>0?t:0;return Math.floor(i*n+1e-9)/n}function pt(t,e,n){let i=t?.[e];return typeof i=="function"?Number(i.call(t))||n:typeof i=="number"&&Number.isFinite(i)?i:(i!=null&&_("runtime.player.nonConformantNum",{prop:e,actual:typeof i}),n)}function ve(t,e){let n=t?.[e];if(typeof n=="function"){n.call(t);return}n!==void 0&&_("runtime.player.nonConformantVoid",{method:e,actual:typeof n})}function ht(t,e,n){if(t){for(let i of Object.values(t))if(!(!i||i===e))try{n(i)}catch(r){_("runtime.player.site1",r)}}}function Li(t,e,n){let i=tt(e,n);return ve(t,"pause"),typeof t.totalTime=="function"?t.totalTime(i,!1):typeof t.seek=="function"&&t.seek(i,!1),i}function hs(t,e,n,i){let r=[];ht(t,e,o=>{ve(o,"play"),r.push(o)});try{return Li(e,n,i)}finally{for(let o of r)try{ve(o,"pause")}catch(s){_("runtime.player.site2",s)}}}function xs(t,e){ht(t,e,n=>{ve(n,"play")})}function Di(t){return{_timeline:null,play:()=>{let e=t.getTimeline();if(!e||t.getIsPlaying())return;let n=Math.max(0,Number(t.getSafeDuration?.()??pt(e,"duration",0))||0);n>0&&Math.max(0,pt(e,"time",0))>=n&&(ve(e,"pause"),typeof e.seek=="function"&&e.seek(0,!1),t.onDeterministicSeek(0),t.setIsPlaying(!1),t.onSyncMedia(0,!1),t.onRenderFrameSeek(0)),typeof e.timeScale=="function"&&e.timeScale(t.getPlaybackRate()),ve(e,"play"),ht(t.getTimelineRegistry?.(),e,i=>{typeof i.timeScale=="function"&&i.timeScale(t.getPlaybackRate()),ve(i,"play")}),t.onDeterministicPlay(),t.setIsPlaying(!0),t.onShowNativeVideos(),t.onStatePost(!0)},pause:()=>{let e=t.getTimeline();if(!e)return;ve(e,"pause"),ht(t.getTimelineRegistry?.(),e,i=>{ve(i,"pause")});let n=Math.max(0,pt(e,"time",0));t.onDeterministicSeek(n),t.onDeterministicPause(),t.setIsPlaying(!1),t.onSyncMedia(n,!1),t.onRenderFrameSeek(n),t.onStatePost(!0)},seek:(e,n)=>{let i=t.getTimeline();if(!i)return;let r=Math.max(0,Number(e)||0),o=t.getIsPlaying(),s=hs(t.getTimelineRegistry?.(),i,r,t.getCanonicalFps());t.onDeterministicSeek(s),n?.keepPlaying&&o?(typeof i.timeScale=="function"&&i.timeScale(t.getPlaybackRate()),ve(i,"play"),ht(t.getTimelineRegistry?.(),i,l=>{typeof l.timeScale=="function"&&l.timeScale(t.getPlaybackRate()),ve(l,"play")}),t.onDeterministicPlay(),t.onShowNativeVideos(),t.onSyncMedia(s,!0)):(t.setIsPlaying(!1),t.onSyncMedia(s,!1)),t.onRenderFrameSeek(s),t.onStatePost(!0)},renderSeek:e=>{let n=t.getTimeline(),i=t.getCanonicalFps(),r=n?(xs(t.getTimelineRegistry?.(),n),Li(n,e,i)):tt(Math.max(0,Number(e)||0),i);t.onDeterministicSeek(r),t.setIsPlaying(!1),t.onSyncMedia(r,!1),t.onRenderFrameSeek(r),t.onStatePost(!0)},getTime:()=>pt(t.getTimeline(),"time",0),getDuration:()=>pt(t.getTimeline(),"duration",0),isPlaying:()=>t.getIsPlaying(),setPlaybackRate:e=>t.setPlaybackRate(e),getPlaybackRate:()=>t.getPlaybackRate()}}function Bi(){return{capturedTimeline:null,isPlaying:!1,rafId:null,currentTime:0,deterministicAdapters:[],parityModeEnabled:!0,canonicalFps:30,bridgeMuted:!1,bridgeVolume:1,mediaOutputMuted:!1,mediaAutoplayBlockedPosted:!1,mediaForceSyncNextTick:!1,playbackRate:1,bridgeLastPostedFrame:-1,bridgeLastPostedAt:0,bridgeLastPostedPlaying:!1,bridgeLastPostedMuted:!1,bridgeMaxPostIntervalMs:80,controlBridgeHandler:null,clampDurationLoggedRaw:null,beforeUnloadHandler:null,domReadyHandler:null,injectedCompStyles:[],injectedCompScripts:[],cachedTimedMediaEls:[],cachedMediaClips:[],cachedVideoClips:[],cachedMediaTimelineDurationSeconds:0,tornDown:!1,nativeVisualWatchdogTick:0,transportClock:null,transportRafId:null}}var gs="data-hf-authored-duration",ys="data-hf-authored-end";function Qe(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}function Ss(t){return Qe(t.getAttribute("data-duration"))}function bs(t){return Qe(t.getAttribute("data-end"))}function As(t){return Qe(t.getAttribute(gs))}function Es(t){return Qe(t.getAttribute(ys))}function Fs(t){let e=(t??"").trim();if(!e)return null;let n=Qe(e);if(n!=null)return{kind:"absolute",value:n};let i=e.match(/^([A-Za-z0-9_.:-]+)(?:\\s*([+-])\\s*([0-9]*\\.?[0-9]+))?$/);if(!i)return null;let r=(i[1]??"").trim();if(!r)return null;let o=i[2]??"+",s=i[3]??"0",l=Number.parseFloat(s),a=Number.isFinite(l)?Math.max(0,l):0,c=o==="-"?-a:a;return{kind:"reference",refId:r,offset:c}}function Ye(t){let e=t.timelineRegistry??{},n=t.includeAuthoredTimingAttrs??!1,i=new WeakMap,r=new WeakMap,o=new Set,s=u=>{let m=document.getElementById(u);return m||(document.querySelector(`[data-composition-id="${CSS.escape(u)}"]`)??null)},l=u=>{let m=r.get(u);if(m!==void 0)return m;let f=null,x=Ss(u)??(n?As(u):null);if(x!=null&&x>0&&(f=x),f==null||f<=0){let F=bs(u)??(n?Es(u):null);if(F!=null){let E=c(u,0),S=F-E;Number.isFinite(S)&&S>0&&(f=S)}}if((f==null||f<=0)&&u instanceof HTMLMediaElement){let F=Qe(u.getAttribute("data-playback-start"))??Qe(u.getAttribute("data-media-start"))??0;Number.isFinite(u.duration)&&u.duration>F&&(f=u.duration-F)}if(f==null||f<=0){let F=u.getAttribute("data-composition-id");if(F){let E=e[F]??null;if(E&&typeof E.duration=="function")try{let S=Number(E.duration());Number.isFinite(S)&&S>0&&(f=S)}catch(S){_("runtime.startResolver.site1",S)}}}return f!=null&&Number.isFinite(f)&&f>0?(r.set(u,f),f):(r.set(u,null),null)},a=(u,m)=>{if(u.hasAttribute("data-composition-id")){let x=u.parentElement?.closest("[data-composition-id]");return x?c(x,m):0}let f=u.closest("[data-composition-id]");return f?c(f,m):0},c=(u,m)=>{let f=i.get(u);if(f!==void 0)return f??m;if(o.has(u))return m;o.add(u);try{let x=Fs(u.getAttribute("data-start"));if(!x){if(u.hasAttribute("data-composition-id")){let D=u.parentElement;if(D&&(D.hasAttribute("data-composition-src")||D.hasAttribute("data-composition-id"))){let v=c(D,m);return i.set(u,v),v}}return i.set(u,m),m}if(x.kind==="absolute"){let D=Math.max(0,x.value),v=Math.max(0,a(u,m)+D);return i.set(u,v),v}let F=s(x.refId);if(!F)return i.set(u,m),m;let E=c(F,0),S=l(F);if(S==null||S<=0){let D=Math.max(0,E+x.offset);return i.set(u,D),D}let B=Math.max(0,E+S+x.offset);return i.set(u,B),B}finally{o.delete(u)}};return{resolveStartForElement:(u,m=0)=>c(u,Math.max(0,m)),resolveDurationForElement:u=>l(u)}}var ws="data-hf-authored-duration",Ns="data-hf-authored-end";function Ee(t){if(t==null||t==="")return null;let e=Number(t);return Number.isFinite(e)?e:null}function An(t){return Ee(t.getAttribute("data-duration"))??Ee(t.getAttribute(ws))}function Ii(t){return Ee(t.getAttribute("data-end"))??Ee(t.getAttribute(Ns))}function En(...t){let e=t.filter(n=>Number.isFinite(n??null));return e.length===0?null:Math.max(...e)}var Oi={composition:0,video:1,image:2,element:3,audio:4};function Cs(t){if(t.length===0)return;let e=new Map;for(let s of t){let l=e.get(s.track)??new Set;l.add(s.kind),e.set(s.track,l)}if(!Array.from(e.values()).some(s=>s.size>1))return;let i=0,r=new Map,o=[...e.keys()].sort((s,l)=>s-l);for(let s of o){let l=e.get(s);if(l.size===1)r.set(`${s}:${[...l][0]}`,i++);else{let a=[...l].sort((c,u)=>(Oi[c]??99)-(Oi[u]??99));for(let c of a)r.set(`${s}:${c}`,i++)}}for(let s of t){let l=`${s.track}:${s.kind}`,a=r.get(l);a!=null&&(s.track=a)}}function gt(t){let e=String(t??"").trim();if(!e)return null;let n=e.toLowerCase();if(n.startsWith("data:")||n.startsWith("javascript:"))return null;try{return new URL(e,document.baseURI).toString()}catch{return e}}function Pi(t){let e=t.getAttribute("src")??t.getAttribute("data-src");if(e)return gt(e);let n=t.getAttribute("data-composition-src");if(n)return gt(n);let i=t.querySelector("img[src], video[src], audio[src], source[src]");return i?gt(i.getAttribute("src")):null}function Ms(t){let e=t.className;return typeof e!="string"?null:e.split(/\\s+/).map(n=>n.trim()).find(n=>n&&n!=="clip"&&!n.startsWith("__hf-"))??null}function Ts(t){if(!t)return null;try{return new URL(t,document.baseURI).pathname.split("/").filter(Boolean).at(-1)??null}catch{return t.split(/[\\\\/]/).filter(Boolean).at(-1)??null}}function ks(t){let e=t.textContent?.replace(/\\s+/g," ").trim();return e?e.length>32?`${e.slice(0,31)}...`:e:null}function xt(t){let e=t.replace(/\\.[^.]+$/i,"").replace(/[-_]+/g," ").replace(/\\s+/g," ").trim();return e?e.replace(/\\b\\w/g,n=>n.toUpperCase()):t}function vs(t,e,n){let i=t.getAttribute("data-timeline-label")??t.getAttribute("data-label")??t.getAttribute("aria-label")??null;if(i?.trim())return i.trim();let r=t.getAttribute("data-composition-id");if(r)return xt(r);let o=t.id;if(o)return xt(o);let s=Ms(t);if(s)return xt(s);let l=Ts(Pi(t));if(l)return xt(l);let a=ks(t);return a||`${xt(e)} ${n+1}`}function Wi(t){let n=window.__timelines??{},i=Ye({timelineRegistry:n,includeAuthoredTimingAttrs:!0}),r=H=>{if(!H)return null;let k=n[H]??null;if(!k||typeof k.duration!="function")return null;try{let O=Number(k.duration());return Number.isFinite(O)&&O>0?O:null}catch{return null}},o=H=>{let k=Ee(H.getAttribute("data-duration"));if(k!=null&&k>0)return k;let O=Ee(H.getAttribute("data-playback-start"))??Ee(H.getAttribute("data-media-start"))??0;return Number.isFinite(H.duration)&&H.duration>O?Math.max(0,H.duration-O):null},s=()=>{let H=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(H.length===0)return null;let k=0;for(let O of H){let ie=O.hasAttribute("data-hf-auto-start")?i.resolveStartForElement(O,0):Math.max(0,Number(O.getAttribute("data-start")??0)||0);if(!Number.isFinite(ie))continue;let ne=o(O);ne==null||ne<=0||(k=Math.max(k,Math.max(0,ie)+ne))}return k>0?k:null},l=H=>{let k=H.trim().toLowerCase();return!(!k||k==="main"||k.includes("caption")||k.includes("ambient"))},a=(H,k)=>{let O=[],ie=null,ne=null,z=null,V=H.parentElement;for(;V;){let $=V.getAttribute("data-composition-id");$&&(O.push($),!z&&V!==k&&(z=$),ie==null&&(ie=i.resolveStartForElement(V,0)),ne==null&&(ne=Ee(V.getAttribute("data-duration"))??r($)??null)),V=V.parentElement}return{parentCompositionId:z,compositionAncestors:O.reverse(),inheritedStart:ie,inheritedDuration:ne}},c=document.querySelector("[data-composition-id]"),u=Array.from(document.querySelectorAll("[data-composition-id]")),m=c?.getAttribute("data-composition-id")??null,f=c?i.resolveStartForElement(c,0):0,x=s(),F=x!=null?Math.max(0,x-Math.max(0,f)):null,E=r(m),S=An(c??document.body),B=En(...u.filter(H=>H!==c).map(H=>{let k=i.resolveStartForElement(H,0),O=i.resolveDurationForElement(H)??r(H.getAttribute("data-composition-id"))??null;return!Number.isFinite(k)||O==null||O<=0?null:Math.max(0,k)+O})),D=B!=null?Math.max(0,B-Math.max(0,f)):null,v=typeof E=="number"&&Number.isFinite(E)&&E>0?E:null,te=typeof S=="number"&&Number.isFinite(S)&&S>0?S:null,q=typeof F=="number"&&Number.isFinite(F)&&F>0?F:null,C=typeof D=="number"&&Number.isFinite(D)&&D>0?D:null,g=En(q,C),A=v!=null&&g!=null&&v>g+1,w=te??(A?g:En(v,q,C))??null,L=(w!=null?f+w:null)??(typeof x=="number"&&Number.isFinite(x)&&x>0?x:null),P=(H,k)=>!Number.isFinite(k)||k<=0?0:L==null||!Number.isFinite(L)?k:!Number.isFinite(H)||H>=L?0:Math.max(0,Math.min(k,L-H)),J=[],R=[],ue=Array.from(document.querySelectorAll("[data-start], [data-track-index], [data-composition-id], video, audio, img")),Se=0;for(let H=0;H<ue.length;H+=1){let k=ue[H];if(k===c||["SCRIPT","STYLE","LINK","META","TEMPLATE","NOSCRIPT"].includes(k.tagName))continue;let O=a(k,c),ie=i.resolveStartForElement(k,O.inheritedStart??0),ne=k.getAttribute("data-composition-id"),z=An(k);if((z==null||z<=0)&&ne&&ne!==m&&(z=r(ne)),(z==null||z<=0)&&k instanceof HTMLMediaElement){let we=Ee(k.getAttribute("data-playback-start"))??Ee(k.getAttribute("data-media-start"))??0;Number.isFinite(k.duration)&&k.duration>0&&(z=Math.max(0,k.duration-we))}if(z==null||z<=0){let we=O.inheritedDuration;if(we!=null&&we>0){let Le=(O.inheritedStart??0)+we;z=Math.max(0,Le-ie)}}if(z==null||z<=0||(z=P(ie,z),z<=0))continue;let V=ie+z;Se=Math.max(Se,V);let $=k.tagName.toLowerCase(),Ce=ne&&ne!==m?"composition":$==="video"?"video":$==="audio"?"audio":$==="img"?"image":"element";J.push({id:k.id||ne||null,label:vs(k,Ce,J.length),start:ie,duration:z,track:Number.parseInt(k.getAttribute("data-track-index")??k.getAttribute("data-track")??String(H),10)||0,kind:Ce,tagName:$,compositionId:k.getAttribute("data-composition-id"),compositionAncestors:O.compositionAncestors,parentCompositionId:O.parentCompositionId,nodePath:null,compositionSrc:gt(k.getAttribute("data-composition-src")),assetUrl:Pi(k),timelineRole:k.getAttribute("data-timeline-role"),timelineLabel:k.getAttribute("data-timeline-label"),timelineGroup:k.getAttribute("data-timeline-group"),timelinePriority:Ee(k.getAttribute("data-timeline-priority"))})}let G=new Set(J.map(H=>H.id)),U=c?.getAttribute("data-composition-id")??null,W=U?n[U]??null:null;if(W&&c){let H=W;if(typeof H.getChildren=="function")try{let k=H.getChildren(!0,!0,!1)??[],O=new Map;for(let z of c.children){let V=z;if(!V.id)continue;let $=V.tagName.toLowerCase();$==="script"||$==="style"||$==="link"||O.set(V,{id:V.id,start:1/0,end:-1/0})}let ie=z=>{let V=z;for(;V;){if(O.has(V))return V;if(V===c)return null;V=V.parentElement}return null};for(let z of k){if(typeof z.targets!="function"||typeof z.startTime!="function"||typeof z.duration!="function")continue;let V=z.startTime(),$=z.parent;for(;$&&$!==W&&typeof $.startTime=="function";)V+=$.startTime(),$=$.parent;let Ce=V+z.duration();if(!(!Number.isFinite(V)||!Number.isFinite(Ce)))for(let we of z.targets()){if(!(we instanceof Element))continue;let $e=ie(we);if(!$e)continue;let Le=O.get($e);Le&&(Le.start=Math.min(Le.start,V),Le.end=Math.max(Le.end,Ce))}}let ne=J.length>0?Math.max(...J.map(z=>z.track))+1:0;for(let[z,V]of O){if(V.start===1/0||V.end===-1/0)continue;let $=z;if(G.has($.id))continue;let Ce=Math.max(0,V.end-V.start);if(Ce<=0)continue;let we=P(V.start,Ce);we<=0||(Se=Math.max(Se,V.start+we),J.push({id:$.id,label:$.getAttribute("data-timeline-label")??$.getAttribute("data-label")??$.getAttribute("aria-label")??$.id,start:V.start,duration:we,track:Number.parseInt($.getAttribute("data-track-index")??$.getAttribute("data-track")??"",10)||ne,kind:"element",tagName:$.tagName.toLowerCase(),compositionId:$.getAttribute("data-composition-id"),compositionAncestors:U?[U]:[],parentCompositionId:U,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:$.getAttribute("data-timeline-role"),timelineLabel:$.getAttribute("data-timeline-label"),timelineGroup:$.getAttribute("data-timeline-group"),timelinePriority:Ee($.getAttribute("data-timeline-priority"))}),G.add($.id))}}catch(k){_("runtime.timeline.site1",k)}}if(c&&w!=null&&w>0){let H=J.length>0?Math.max(...J.map(k=>k.track))+1:0;for(let k of c.children){let O=k;if(!O.id||G.has(O.id))continue;let ie=O.getAttribute("data-timeline-role");if(ie!=="overlay"&&ie!=="persistent-overlay")continue;let ne=O.tagName.toLowerCase();if(ne==="script"||ne==="style"||ne==="link"||ne==="meta"||window.getComputedStyle(O).display==="none")continue;let V=P(0,w);V<=0||(Se=Math.max(Se,V),J.push({id:O.id,label:O.getAttribute("data-timeline-label")??O.getAttribute("data-label")??O.getAttribute("aria-label")??O.id,start:0,duration:V,track:Number.parseInt(O.getAttribute("data-track-index")??O.getAttribute("data-track")??"",10)||H,kind:"element",tagName:ne,compositionId:O.getAttribute("data-composition-id"),compositionAncestors:U?[U]:[],parentCompositionId:U,nodePath:null,compositionSrc:null,assetUrl:null,timelineRole:ie,timelineLabel:O.getAttribute("data-timeline-label"),timelineGroup:O.getAttribute("data-timeline-group"),timelinePriority:Ee(O.getAttribute("data-timeline-priority"))}),G.add(O.id))}}Cs(J);for(let H of u){if(H===c)continue;let k=H.getAttribute("data-composition-id");if(!k||!l(k))continue;let O=i.resolveStartForElement(H,0),ie=An(H);if((ie==null||ie<=0)&&Ii(H)!=null){let $=Ii(H);ie=Math.max(0,$-O)}let ne=r(k),z=ie&&ie>0?ie:ne;if(z==null||z<=0)continue;let V=P(O,z);V<=0||R.push({id:k,label:H.getAttribute("data-label")??k,start:O,duration:V,thumbnailUrl:gt(H.getAttribute("data-thumbnail-url")),avatarName:null})}let Z=Math.max(1,Se||1,w??0);return{source:"hf-preview",type:"timeline",durationInFrames:A&&te==null?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(Z*Math.max(1,t.canonicalFps))),clips:J,scenes:R,compositionWidth:Ee(c?.getAttribute("data-width"))??1920,compositionHeight:Ee(c?.getAttribute("data-height"))??1080}}var le=us(co(),1),fo=le.default,Xc=le.default.stringify,ed=le.default.fromJSON,td=le.default.plugin,nd=le.default.parse,id=le.default.list,rd=le.default.document,od=le.default.comment,sd=le.default.atRule,ad=le.default.rule,ld=le.default.decl,ud=le.default.root,cd=le.default.CssSyntaxError,dd=le.default.Declaration,fd=le.default.Container,md=le.default.Processor,pd=le.default.Document,hd=le.default.Comment,xd=le.default.Warning,gd=le.default.AtRule,yd=le.default.Result,Sd=le.default.Input,bd=le.default.Rule,Ad=le.default.Root,Ed=le.default.Node;var Kn="data-hf-authored-id";function Jn(t){return t.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\\\$&")}function Qn(t){return t.replace(/\\\\/g,"\\\\\\\\").replace(/"/g,\'\\\\"\')}function Za(t){return t&&t.replace(/[^a-zA-Z0-9_-]/g,n=>`\\\\${n}`).replace(/^-?\\d/,n=>`\\\\${n}`)}function mo(t){let e=t.trim();return e?Array.from(new Set([e,Za(e)])).filter(Boolean):[]}function Xa(t){return!!t&&/[\\w-]/.test(t)}function el(t,e,n){let i=mo(e).sort((l,a)=>a.length-l.length);if(i.length===0)return t;let r="",o=0,s=null;for(let l=0;l<t.length;l+=1){let a=t[l],c=l>0?t[l-1]:"";if(s){r+=a,a===s&&c!=="\\\\"&&(s=null);continue}if(a===\'"\'||a==="\'"){s=a,r+=a;continue}if(a==="["){o+=1,r+=a;continue}if(a==="]"){o=Math.max(0,o-1),r+=a;continue}if(a==="#"&&o===0){let u=i.find(m=>t.startsWith(m,l+1));if(u){let m=t[l+1+u.length];if(!Xa(m)){r+=n,l+=u.length;continue}}}r+=a}return r}function tl(t,e){let n=e?.trim();return n?el(t,n,`[${Kn}="${Qn(n)}"]`):t}function nl(t,e,n,i,r){let o=tl(t,i),s=il(o,e,n),l=s.trim();if(!l||/^(html|body|:root|\\*)$/i.test(l))return t;let a=new RegExp(`\\\\[\\\\s*data-composition-id\\\\s*=\\\\s*(["\'])${Jn(n)}\\\\1\\\\s*\\\\]`,"g");if(a.test(l))return s.replace(a,e);let c=s.match(/^\\s*/)?.[0]??"",u=s.match(/\\s*$/)?.[0]??"";if(r){let m=i?`[${Kn}="${Qn(i)}"]`:null;if(m&&l.startsWith(m)){let f=l.slice(m.length);return`${c}${e}${m}${f}${u}`}}return`${c}${e} ${l}${u}`}function il(t,e,n){let i=Jn(n),r=String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${i}"|\'${i}\')\\s*\\]`,o=String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`;return t.replace(new RegExp(`${r}(?:${o})+`,"g"),e).replace(new RegExp(`(?:${o})+${r}`,"g"),e)}var rl=new Set(["keyframes","-webkit-keyframes","font-face"]);function ol(t){return t?.type==="atrule"}function sl(t){let e=t.parent;for(;e;){if(ol(e)&&rl.has(e.name.toLowerCase()))return!0;e=e.parent}return!1}function Yn(t,e,n,i,r){let o=e.trim();if(!t||!o)return t;let s=n||`[data-composition-id="${Qn(o)}"]`,l=fo.parse(t);return l.walkRules(a=>{sl(a)||(a.selectors=a.selectors.map(c=>nl(c,s,o,i,r?.compoundAuthoredRoot)))}),l.toResult({map:!1}).css}function po(t,e,n="[HyperFrames] composition script error:",i,r=e,o){let s=JSON.stringify(e),l=JSON.stringify(r),a=JSON.stringify(n),c=Jn(e),u=JSON.stringify(o?.trim()||null),m=JSON.stringify(i??null),f=JSON.stringify(String.raw`\\[\\s*data-composition-id\\s*=\\s*(?:"${c}"|\'${c}\')\\s*\\]`),x=JSON.stringify(String.raw`\\s*\\[\\s*data-(?:start|duration)\\s*=\\s*(?:"[^"]*"|\'[^\']*\')\\s*\\]`),F=JSON.stringify(mo(o?.trim()||""));return`(function(){\n var __hfCompId = ${s};\n var __hfTimelineCompId = ${l};\n var __hfErrorLabel = ${a};\n var __hfAuthoredRootId = ${u};\n var __hfAuthoredRootAttr = ${JSON.stringify(Kn)};\n var __hfEscapeAttr = function(value) {\n return (value + "").replace(/\\\\\\\\/g, "\\\\\\\\\\\\\\\\").replace(/"/g, "\\\\\\\\\\\\"");\n };\n var __hfRootSelector = ${m} || (__hfCompId\n ? \'[data-composition-id="\' + __hfEscapeAttr(__hfCompId) + \'"]\'\n : "");\n var __hfRoot = null;\n var __hfRootSelectorPattern = ${f};\n var __hfTimingSelectorPattern = ${x};\n var __hfAuthoredRootIdForms = ${F};\n var __hfAuthoredRootSelector = __hfAuthoredRootId\n ? "[" + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(__hfAuthoredRootId) + \'"]\'\n : "";\n var __hfIsSelectorNameChar = function(char) {\n return !!char && /[\\\\w-]/.test(char);\n };\n var __hfReplaceAuthoredRootIdSelectors = function(selector) {\n if (!__hfAuthoredRootSelector || !__hfAuthoredRootIdForms.length || typeof selector !== "string") {\n return selector;\n }\n var result = "";\n var bracketDepth = 0;\n var quote = null;\n for (var index = 0; index < selector.length; index += 1) {\n var char = selector[index];\n var previousChar = index > 0 ? selector[index - 1] : "";\n if (quote) {\n result += char;\n if (char === quote && previousChar !== "\\\\\\\\") {\n quote = null;\n }\n continue;\n }\n if (char === \'"\' || char === "\'") {\n quote = char;\n result += char;\n continue;\n }\n if (char === "[") {\n bracketDepth += 1;\n result += char;\n continue;\n }\n if (char === "]") {\n bracketDepth = Math.max(0, bracketDepth - 1);\n result += char;\n continue;\n }\n if (char === "#" && bracketDepth === 0) {\n var matchedForm = null;\n for (var formIndex = 0; formIndex < __hfAuthoredRootIdForms.length; formIndex += 1) {\n var form = __hfAuthoredRootIdForms[formIndex];\n if (selector.slice(index + 1, index + 1 + form.length) === form) {\n matchedForm = form;\n break;\n }\n }\n if (matchedForm) {\n var nextChar = selector[index + 1 + matchedForm.length];\n if (!__hfIsSelectorNameChar(nextChar)) {\n result += __hfAuthoredRootSelector;\n index += matchedForm.length;\n continue;\n }\n }\n }\n result += char;\n }\n return result;\n };\n var __hfNormalizeSelector = function(selector) {\n if (!__hfCompId || typeof selector !== "string") return selector;\n var normalized = selector\n .replace(new RegExp(__hfRootSelectorPattern + \'(?:\' + __hfTimingSelectorPattern + \')+\', \'g\'), __hfRootSelector)\n .replace(new RegExp(\'(?:\' + __hfTimingSelectorPattern + \')+\' + __hfRootSelectorPattern, \'g\'), __hfRootSelector);\n if (__hfAuthoredRootSelector) {\n normalized = __hfReplaceAuthoredRootIdSelectors(normalized);\n }\n return normalized;\n };\n var __hfFindRoot = function() {\n if (!__hfRoot && __hfRootSelector) {\n __hfRoot = window.document.querySelector(__hfRootSelector);\n }\n return __hfRoot;\n };\n var __hfContains = function(node) {\n var root = __hfFindRoot();\n return !root || node === root || root.contains(node);\n };\n var __hfQueryAll = function(selector) {\n var root = __hfFindRoot();\n if (!root || typeof selector !== "string") {\n return window.document.querySelectorAll(selector);\n }\n return Array.prototype.filter.call(window.document.querySelectorAll(__hfNormalizeSelector(selector)), function(node) {\n return __hfContains(node);\n });\n };\n var __hfQueryOne = function(selector) {\n var matches = __hfQueryAll(selector);\n return matches[0] || null;\n };\n var __hfGetElementById = function(id) {\n var found = window.document.getElementById(id);\n if (found && __hfContains(found)) return found;\n var root = __hfFindRoot();\n if (!root) return found || null;\n var idValue = id + "";\n if (__hfAuthoredRootId && __hfAuthoredRootId === idValue && root.getAttribute && root.getAttribute(__hfAuthoredRootAttr) === idValue) {\n return root;\n }\n if (root.id === idValue) return root;\n if (typeof root.querySelector !== "function") return null;\n try {\n var authoredRootMatch = root.querySelector(\'[\' + __hfAuthoredRootAttr + \'="\' + __hfEscapeAttr(idValue) + \'"]\');\n if (authoredRootMatch) return authoredRootMatch;\n } catch {}\n if (typeof CSS !== "undefined" && CSS && typeof CSS.escape === "function") {\n try {\n return root.querySelector("#" + CSS.escape(idValue)) || null;\n } catch {}\n }\n try {\n return root.querySelector(\'[id="\' + __hfEscapeAttr(idValue) + \'"]\') || null;\n } catch {}\n return null;\n };\n var __hfScopedDocument = typeof Proxy === "function"\n ? new Proxy(window.document, {\n get: function(target, prop, receiver) {\n if (prop === "querySelector") return __hfQueryOne;\n if (prop === "querySelectorAll") return __hfQueryAll;\n if (prop === "getElementById") return __hfGetElementById;\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n })\n : window.document;\n var __hfTimelineRegistryProxy = null;\n var __hfGetTimelineRegistry = function() {\n window.__timelines = window.__timelines || {};\n if (!__hfCompId || __hfCompId === __hfTimelineCompId || typeof Proxy !== "function") {\n return window.__timelines;\n }\n if (!__hfTimelineRegistryProxy) {\n __hfTimelineRegistryProxy = new Proxy(window.__timelines, {\n get: function(target, prop, receiver) {\n return Reflect.get(target, prop === __hfCompId ? __hfTimelineCompId : prop, target);\n },\n set: function(target, prop, value, receiver) {\n return Reflect.set(target, prop === __hfCompId ? __hfTimelineCompId : prop, value, target);\n },\n });\n }\n return __hfTimelineRegistryProxy;\n };\n var __hfScopedWindow = typeof Proxy === "function"\n ? new Proxy(window, {\n get: function(target, prop, receiver) {\n if (prop === "__timelines") return __hfGetTimelineRegistry();\n return Reflect.get(target, prop, target);\n },\n set: function(target, prop, value, receiver) {\n if (prop === "__timelines") {\n target.__timelines = value || {};\n __hfTimelineRegistryProxy = null;\n return true;\n }\n return Reflect.set(target, prop, value, target);\n },\n })\n : window;\n var __hfResolveGsapTarget = function(target) {\n if (typeof target !== "string") return target;\n return __hfQueryAll(target);\n };\n var __hfScopeTimeline = function(timeline) {\n if (!timeline || timeline.__hfScopedCompositionRoot === __hfFindRoot()) return timeline;\n ["to", "from", "fromTo", "set"].forEach(function(method) {\n var original = timeline[method];\n if (typeof original !== "function") return;\n timeline[method] = function(target) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(target);\n return original.apply(timeline, args);\n };\n });\n try {\n Object.defineProperty(timeline, "__hfScopedCompositionRoot", {\n value: __hfFindRoot(),\n configurable: true,\n });\n } catch {\n // Best-effort: timelines coming from user code may have a frozen target\n // or a non-extensible defineProperty path. Swallow \\u2014 the scoped root\n // is an enrichment, not a correctness invariant for playback.\n }\n return timeline;\n };\n var __hfBaseGsap = typeof gsap === "undefined" ? window.gsap : gsap;\n var __hfScopedGsap = !__hfBaseGsap || typeof Proxy !== "function"\n ? __hfBaseGsap\n : new Proxy(__hfBaseGsap, {\n get: function(target, prop, receiver) {\n if (prop === "timeline") {\n return function() {\n return __hfScopeTimeline(target.timeline.apply(target, arguments));\n };\n }\n if (prop === "to" || prop === "from" || prop === "fromTo" || prop === "set") {\n return function(firstArg) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(firstArg);\n return target[prop].apply(target, args);\n };\n }\n if (prop === "utils" && target.utils && typeof Proxy === "function") {\n return new Proxy(target.utils, {\n get: function(utilsTarget, utilsProp, utilsReceiver) {\n if (utilsProp === "toArray") {\n return function(firstArg) {\n var args = Array.prototype.slice.call(arguments);\n args[0] = __hfResolveGsapTarget(firstArg);\n return utilsTarget.toArray.apply(utilsTarget, args);\n };\n }\n if (utilsProp === "selector") {\n return function(base) {\n var baseEl = typeof base === "string" ? __hfQueryOne(base) : base;\n var root = baseEl || __hfFindRoot();\n return function(selector) {\n if (!root || typeof selector !== "string") return [];\n return Array.prototype.filter.call(\n window.document.querySelectorAll(__hfNormalizeSelector(selector)),\n function(node) {\n return node === root || (typeof root.contains === "function" && root.contains(node));\n },\n );\n };\n };\n }\n var value = Reflect.get(utilsTarget, utilsProp, utilsTarget);\n return typeof value === "function" ? value.bind(utilsTarget) : value;\n },\n });\n }\n var value = Reflect.get(target, prop, target);\n return typeof value === "function" ? value.bind(target) : value;\n },\n });\n var __hfBaseHyperframes = window.__hyperframes;\n var __hfScopedHyperframes = !__hfBaseHyperframes\n ? __hfBaseHyperframes\n : Object.assign({}, __hfBaseHyperframes, {\n getVariables: function() {\n var byComp = window.__hfVariablesByComp;\n var scoped = byComp && __hfTimelineCompId ? byComp[__hfTimelineCompId] : null;\n return scoped ? Object.assign({}, scoped) : {};\n },\n });\n var __hfRun = function() {\n try {\n (function(document, gsap, window, __hyperframes) {\n${t.replace(/<\\/(script)/gi,"<\\\\/$1")}\n }).call(window, __hfScopedDocument, __hfScopedGsap, __hfScopedWindow, __hfScopedHyperframes);\n } catch (_err) {\n console.error(__hfErrorLabel, __hfCompId, _err);\n }\n };\n __hfFindRoot();\n __hfRun();\n})();`}function ho(){if(typeof document>"u")return{};let t=Zn(document.documentElement),e=al();return{...t,...e}}function Zn(t){if(!t)return{};let e=t.getAttribute("data-composition-variables");if(!e)return{};let n;try{n=JSON.parse(e)}catch{return{}}if(!Array.isArray(n))return{};let i={};for(let r of n){if(!r||typeof r!="object")continue;let o=r;typeof o.id!="string"||!("default"in o)||(i[o.id]=o.default)}return i}function al(){if(typeof window>"u")return{};let t=window.__hfVariables;return!t||typeof t!="object"||Array.isArray(t)?{}:t}var ll=8e3,ul=/^(?![a-zA-Z][a-zA-Z\\d+\\-.]*:)(?!\\/\\/)(?!\\/)(?!\\.\\.?\\/).+/;function cl(t,e){return`${t}__hf${e}`}var dl=t=>new Promise(e=>{let n=!1,i=Date.now(),r=null,o=s=>{n||(n=!0,r!=null&&window.clearTimeout(r),e({status:s,elapsedMs:Math.max(0,Date.now()-i)}))};t.addEventListener("load",()=>o("load"),{once:!0}),t.addEventListener("error",()=>o("error"),{once:!0}),r=window.setTimeout(()=>o("timeout"),ll)});function Xn(t){for(;t.firstChild;)t.removeChild(t.firstChild);t.textContent=""}var fl=["data-composition-id","data-composition-file","data-start","data-duration","data-end","data-track-index","data-track","data-composition-src","data-hf-authored-duration","data-hf-authored-end"];function ml(t){let e=document.importNode(t,!0),n=e.getAttribute("id")?.trim();for(let o of fl)e.removeAttribute(o);n&&(e.removeAttribute("id"),e.setAttribute("data-hf-authored-id",n)),e.setAttribute("data-hf-inner-root","true");let i=e.getAttribute("data-width"),r=e.getAttribute("data-height");return e.style.width=i?`${i}px`:"100%",e.style.height=r?`${r}px`:"100%",e}function xo(t,e){let n=t.trim();if(!n)return t;try{return ul.test(n)?new URL(n,document.baseURI).toString():e?new URL(n,e).toString():new URL(n,document.baseURI).toString()}catch{return t}}function pl(t){let e=t.getAttribute("data-variable-values");if(!e)return{};let n;try{n=JSON.parse(e)}catch{return{}}return!n||typeof n!="object"||Array.isArray(n)?{}:n}function nn(t){let e=(t.getAttribute("data-composition-id")||"").trim()||null;return{authoredCompositionId:(t.getAttribute("data-hf-original-composition-id")||e||"").trim()||null,runtimeCompositionId:e}}function hl(t){let e=new Map;for(let n of t){let i=nn(n).authoredCompositionId||"";i&&e.set(i,(e.get(i)||0)+1)}return e}function go(t){let e=nn(t).authoredCompositionId;return e?!!document.querySelector(`template#${CSS.escape(e)}-template`):!1}function xl(t){return!!t.querySelector(\'[data-hf-inner-root="true"]\')}function gl(t){return t.hasAttribute("data-composition-src")?!0:go(t)?t.children.length===0||t.hasAttribute("data-hf-original-composition-id")?!0:xl(t):!1}function ti(){return Array.from(document.querySelectorAll("[data-composition-src], [data-composition-id]")).filter(e=>e.hasAttribute("data-composition-src")?!0:go(e))}function yo(){let t=window.__hfVariablesByComp;if(!t)return;let e=new Set(ti().map(n=>nn(n).runtimeCompositionId).filter(n=>!!n));for(let n of Object.keys(t))e.has(n)||delete t[n]}function So(t,e=hl(t)){let n=new Map,i=new Map;for(let r of t){let{authoredCompositionId:o,runtimeCompositionId:s}=nn(r),l=gl(r);if(!o){i.set(r,{authoredCompositionId:null,runtimeCompositionId:s});continue}let a=(e.get(o)||0)>1,c=s||o;if(l){let u=a?(n.get(o)||0)+1:0;a&&n.set(o,u),c=a?cl(o,u):o,a?r.setAttribute("data-hf-original-composition-id",o):r.removeAttribute("data-hf-original-composition-id"),r.setAttribute("data-composition-id",c),s&&s!==c&&window.__hfVariablesByComp&&delete window.__hfVariablesByComp[s]}i.set(r,{authoredCompositionId:o,runtimeCompositionId:c})}return i}async function ei(t){let e=null;t.authoredCompositionId&&(e=Array.from(t.sourceNode.querySelectorAll("[data-composition-id]")).find(x=>x.getAttribute("data-composition-id")===t.authoredCompositionId)??null);let n=e??t.sourceNode,i=e?.getAttribute("data-composition-id")?.trim()||t.authoredCompositionId||null,r=t.runtimeCompositionId||i||null,o=e?.getAttribute("id")?.trim()||null,s=r?`[data-composition-id="${CSS.escape(r)}"]`:void 0;if(t.headLinks)for(let f of t.headLinks){let x=f.getAttribute("href")||"";x&&(document.head.querySelector(`link[href="${CSS.escape(x)}"]`)||document.head.appendChild(f.cloneNode(!0)))}if(t.headStyles)for(let f of t.headStyles){let x=f.cloneNode(!0);x instanceof HTMLStyleElement&&(i&&(x.textContent=Yn(x.textContent||"",i,s,o)),document.head.appendChild(x),t.injectedStyles.push(x))}let l=Array.from(n.querySelectorAll("style"));for(let f of l){let x=f.cloneNode(!0);x instanceof HTMLStyleElement&&(i&&(x.textContent=Yn(x.textContent||"",i,s,o)),document.head.appendChild(x),t.injectedStyles.push(x))}let a=[];if(t.headScripts)for(let f of t.headScripts){let x=f.getAttribute("type")?.trim()??"",F=f.getAttribute("src")?.trim()??"";if(F){let E=xo(F,t.compositionUrl);a.push({kind:"external",src:E,type:x})}else{let E=f.textContent?.trim()??"";E&&a.push({kind:"inline",content:E,type:x,scopeCompositionId:i})}}let c=Array.from(n.querySelectorAll("script")),u=[...a];for(let f of c){let x=f.getAttribute("type")?.trim()??"",F=f.getAttribute("src")?.trim()??"";if(F){let E=xo(F,t.compositionUrl);u.push({kind:"external",src:E,type:x})}else{let E=f.textContent?.trim()??"";E&&u.push({kind:"inline",content:E,type:x,scopeCompositionId:i})}f.parentNode?.removeChild(f)}let m=Array.from(n.querySelectorAll("style"));for(let f of m)f.parentNode?.removeChild(f);if(e){let f=e.getAttribute("data-width"),x=e.getAttribute("data-height"),F=t.parseDimensionPx(f),E=t.parseDimensionPx(x);f&&t.host.setAttribute("data-width",f),x&&t.host.setAttribute("data-height",x),F&&t.host instanceof HTMLElement&&(t.host.style.width=F),E&&t.host instanceof HTMLElement&&(t.host.style.height=E),e.hasAttribute("data-timeline-locked")&&t.host.setAttribute("data-timeline-locked",""),t.host.appendChild(ml(e))}else t.hasTemplate?t.host.appendChild(document.importNode(n,!0)):t.host.innerHTML=t.fallbackBodyInnerHtml;if(r){let f={...t.declaredVariableDefaults??{},...pl(t.host)};Object.keys(f).length>0?(window.__hfVariablesByComp||(window.__hfVariablesByComp={}),window.__hfVariablesByComp[r]=f):window.__hfVariablesByComp&&delete window.__hfVariablesByComp[r]}for(let f of u){let x=document.createElement("script");if(f.type&&(x.type=f.type),x.async=!1,f.kind==="external"?x.src=f.src:f.type.toLowerCase()==="module"?x.textContent=f.content:f.scopeCompositionId?x.textContent=po(f.content,f.scopeCompositionId,"[HyperFrames] composition script error:",s,r||f.scopeCompositionId,o):x.textContent=`(function(){${f.content}})();`,document.body.appendChild(x),t.injectedScripts.push(x),f.kind==="external"){let F=await dl(x);F.status!=="load"&&t.onDiagnostic?.({code:"external_composition_script_load_issue",details:{hostCompositionId:t.authoredCompositionId,runtimeCompositionId:t.runtimeCompositionId,hostCompositionSrc:t.hostCompositionSrc,resolvedScriptSrc:f.src,loadStatus:F.status,elapsedMs:F.elapsedMs}})}}}async function bo(t){let e=ti();if(yo(),e.length===0)return;let n=So(e),i=e.filter(r=>{if(r.hasAttribute("data-composition-src")||r.children.length>0)return!1;let o=n.get(r)?.authoredCompositionId;return o?!!document.querySelector(`template#${CSS.escape(o)}-template`):!1});if(i.length!==0)for(let r of i){let o=n.get(r),s=o?.authoredCompositionId;if(!s)continue;let l=document.querySelector(`template#${CSS.escape(s)}-template`);Xn(r),await ei({host:r,authoredCompositionId:s,runtimeCompositionId:o?.runtimeCompositionId||s,hostCompositionSrc:`template#${s}-template`,sourceNode:l.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:null,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,onDiagnostic:t.onDiagnostic})}}async function Ao(t){let e=ti();if(yo(),e.length===0)return;let n=So(e),i=e.filter(r=>r.hasAttribute("data-composition-src"));i.length!==0&&await Promise.all(i.map(async r=>{let o=r.getAttribute("data-composition-src");if(!o)return;let s=n.get(r),l=s?.authoredCompositionId||null,a=s?.runtimeCompositionId||l||null,c=null;try{c=new URL(o,document.baseURI)}catch{c=null}Xn(r);try{let u=l!=null?document.querySelector(`template#${CSS.escape(l)}-template`):null;if(u){await ei({host:r,authoredCompositionId:l,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:u.content,hasTemplate:!0,fallbackBodyInnerHtml:"",compositionUrl:c,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,onDiagnostic:t.onDiagnostic});return}let m=await fetch(o);if(!m.ok)throw new Error(`HTTP ${m.status}`);let f=await m.text(),F=new DOMParser().parseFromString(f,"text/html"),E=(l?F.querySelector(`template#${CSS.escape(l)}-template`):null)??F.querySelector("template"),S=E?E.content:F.body,B=E?void 0:Array.from(F.head.querySelectorAll("style")),D=E?void 0:Array.from(F.head.querySelectorAll("script")),v=E?void 0:Array.from(F.head.querySelectorAll(\'link[rel="stylesheet"], link[rel="preconnect"]\'));await ei({host:r,authoredCompositionId:l,runtimeCompositionId:a,hostCompositionSrc:o,sourceNode:S,hasTemplate:!!E,fallbackBodyInnerHtml:F.body.innerHTML,compositionUrl:c,injectedStyles:t.injectedStyles,injectedScripts:t.injectedScripts,parseDimensionPx:t.parseDimensionPx,headStyles:B,headScripts:D,headLinks:v,declaredVariableDefaults:Zn(F.documentElement),onDiagnostic:t.onDiagnostic})}catch(u){t.onDiagnostic?.({code:"external_composition_load_failed",details:{hostCompositionId:l,runtimeCompositionId:a,hostCompositionSrc:o,errorMessage:u instanceof Error?u.message:"unknown_error"}}),Xn(r)}}))}function yl(t){return t instanceof HTMLElement?t.dataset.captionWrapper!=="true"?t:t.querySelector(":scope > span")??null:null}function Sl(){let t=[],e=document.querySelectorAll(".caption-group");for(let n of e)for(let i of n.children){if(!(i instanceof HTMLElement))continue;let r=i.dataset.captionWrapper==="true"?i.querySelector(":scope > span"):i.tagName==="SPAN"?i:null;r&&t.push(r)}return t}function bl(t){let e=t.parentElement;if(e?.dataset.captionWrapper==="true")return e;let n=document.createElement("span");return n.style.display="inline-block",n.dataset.captionWrapper="true",t.parentNode?.insertBefore(n,t),n.appendChild(t),n}function ni(){let t=window.gsap;t&&document.querySelectorAll(".caption-group").length!==0&&fetch("caption-overrides.json").then(e=>e.ok?e.json():null).then(e=>{if(!e||!Array.isArray(e)||e.length===0)return;let n=Sl();for(let i of e){let r=null;if(i.wordId&&(r=yl(document.getElementById(i.wordId))),!r&&i.wordIndex!==void 0&&(r=n[i.wordIndex]??null),!r)continue;let o={},s={};if(i.x!==void 0&&(o.x=i.x),i.y!==void 0&&(o.y=i.y),i.scale!==void 0&&(o.scale=i.scale),i.rotation!==void 0&&(o.rotation=i.rotation),i.opacity!==void 0&&(s.opacity=i.opacity),i.fontSize!==void 0&&(s.fontSize=`${i.fontSize}px`),i.fontWeight!==void 0&&(s.fontWeight=i.fontWeight),i.fontFamily!==void 0&&(s.fontFamily=i.fontFamily),i.activeColor||i.dimColor){let a=t.getTweensOf(r).filter(u=>u.vars.color!==void 0).sort((u,m)=>u.startTime()-m.startTime()),c=a.length>0?String(a[0].vars.color):"";for(let u of a)String(u.vars.color)===c?i.dimColor&&(u.vars.color=i.dimColor):i.activeColor&&(u.vars.color=i.activeColor);i.dimColor&&t.set(r,{color:i.dimColor})}if(Object.keys(s).length>0&&t.set(r,s),Object.keys(o).length>0){let l=bl(r);t.set(l,o)}}}).catch(()=>{})}var rn=class{constructor(e){ye(this,"_baseTime",0);ye(this,"_playStartMs",null);ye(this,"_rate",1);ye(this,"_duration",1/0);ye(this,"_nowMs");ye(this,"_audioSource",null);this._baseTime=e?.initialTime??0,this._rate=e?.rate??1,this._duration=e?.duration??1/0,this._nowMs=e?.nowMs??(()=>performance.now())}now(){if(this._playStartMs===null)return this._baseTime;if(this._audioSource){let i=null;if("currentTimeSeconds"in this._audioSource)i=this._audioSource.currentTimeSeconds;else{let{el:r,compositionStart:o,mediaStart:s}=this._audioSource;!r.paused&&Number.isFinite(r.currentTime)&&(i=(r.currentTime-s)/(r.playbackRate>0?r.playbackRate:1)*this._rate+o)}if(i!==null)return Number.isFinite(this._duration)&&i>=this._duration?this._duration:Math.max(0,i)}let e=(this._nowMs()-this._playStartMs)/1e3,n=this._baseTime+e*this._rate;return Number.isFinite(this._duration)&&n>=this._duration?this._duration:Math.max(0,n)}play(){return this._playStartMs!==null||Number.isFinite(this._duration)&&this._baseTime>=this._duration?!1:(this._playStartMs=this._nowMs(),!0)}pause(){return this._playStartMs===null?!1:(this._baseTime=this.now(),this._playStartMs=null,!0)}seek(e){let n=Number.isFinite(this._duration)?Math.max(0,Math.min(e,this._duration)):Math.max(0,e);this._baseTime=n,this._playStartMs!==null&&(this._playStartMs=this._nowMs())}isPlaying(){return this._playStartMs!==null}setRate(e){let n=Number.isFinite(e)&&e>0?Math.max(.1,Math.min(5,e)):1;this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._rate=n}getRate(){return this._rate}setDuration(e){this._duration=Number.isFinite(e)&&e>0?e:1/0,this._baseTime>this._duration&&(this._baseTime=this._duration)}getDuration(){return this._duration}attachAudioSource(e){this._audioSource=e}detachAudioSource(){this._audioSource&&this._playStartMs!==null&&(this._baseTime=this.now(),this._playStartMs=this._nowMs()),this._audioSource=null}hasAudioSource(){return this._audioSource!==null}getSource(){if(this._audioSource&&this._playStartMs!==null){if("currentTimeSeconds"in this._audioSource)return"audio";let{el:e}=this._audioSource;if(!e.paused&&Number.isFinite(e.currentTime))return"audio"}return"monotonic"}snapshot(){return{time:this.now(),playing:this.isPlaying(),rate:this._rate,duration:this._duration,source:this.getSource()}}reachedEnd(){return Number.isFinite(this._duration)&&this.now()>=this._duration}};function Eo(t){return!Number.isFinite(t)||t<=0?1:t}var on=class{constructor(){ye(this,"_ctx",null);ye(this,"_bufferCache",new Map);ye(this,"_failedSrcs",new Set);ye(this,"_activeSources",[]);ye(this,"_masterGain",null);ye(this,"_rateAnchorCtx",0);ye(this,"_rateAnchorComp",0);ye(this,"_rate",1);ye(this,"_paused",!0);ye(this,"_playGeneration",0)}async init(){try{return this._ctx=new AudioContext,this._masterGain=this._ctx.createGain(),this._masterGain.connect(this._ctx.destination),!0}catch{return!1}}get context(){return this._ctx}getTime(){return!this._ctx||this._paused?-1:this._rateAnchorComp+(this._ctx.currentTime-this._rateAnchorCtx)*this._rate}async decodeAudioElement(e){let n=e.currentSrc||e.getAttribute("src");if(!n)return null;if(this._bufferCache.has(n))return this._bufferCache.get(n);if(this._failedSrcs.has(n)||!this._ctx)return null;try{let i=await fetch(n);if(!i.ok)return this._failedSrcs.add(n),_("webAudioTransport.fetch",new Error(`${i.status} ${n}`)),null;let r=await i.arrayBuffer(),o=await this._ctx.decodeAudioData(r);return this._bufferCache.set(n,o),o}catch(i){return this._failedSrcs.add(n),_("webAudioTransport.decode",i),null}}startGeneration(){return this._playGeneration+=1,this._playGeneration}currentGeneration(){return this._playGeneration}async schedulePlayback(e,n,i,r,o,s,l,a=1){if(!this._ctx||!this._masterGain||l!==this._playGeneration)return null;try{if(this._ctx.state==="suspended"&&await this._ctx.resume(),l!==this._playGeneration)return null;let c=Eo(a),u=this._ctx.createBufferSource();u.buffer=n,u.playbackRate.value=c;let m=this._ctx.createGain();m.gain.value=s,u.connect(m),m.connect(this._masterGain);let f=o-i,x=this._ctx.currentTime;if(this._rate=c,this._rateAnchorCtx=x,this._rateAnchorComp=o,f>=0)u.start(0,f+r);else{let S=-f/c;u.start(x+S,r)}let F=e.muted;e.muted=!0;let E={el:e,sourceNode:u,gainNode:m,compositionStart:i,mediaStart:r,scheduledAt:x,priorMuted:F};return this._activeSources.push(E),this._paused=!1,E}catch(c){return _("webAudioTransport.schedule",c),null}}setRate(e){let n=Eo(e);if(n!==this._rate){this._ctx&&!this._paused&&(this._rateAnchorComp=this.getTime(),this._rateAnchorCtx=this._ctx.currentTime),this._rate=n;for(let i of this._activeSources)try{i.sourceNode.playbackRate.value=n}catch(r){_("webAudioTransport.setRate",r)}}}stopAll(){for(let e of this._activeSources){try{e.sourceNode.stop(),e.sourceNode.disconnect(),e.gainNode.disconnect()}catch{}e.el.muted=e.priorMuted}this._activeSources=[],this._paused=!0}setVolume(e){this._masterGain&&(this._masterGain.gain.value=Math.max(0,Math.min(1,e)))}setElementVolume(e,n){let i=Math.max(0,Math.min(1,n));for(let r of this._activeSources)if(r.el===e)try{r.gainNode.gain.value=i}catch(o){_("webAudioTransport.setElementVolume",o)}}setMuted(e){this._masterGain&&(this._masterGain.gain.value=e?0:1)}isActive(){return this._activeSources.length>0&&!this._paused}destroy(){if(this.stopAll(),this._bufferCache.clear(),this._ctx)try{this._ctx.close()}catch{}this._ctx=null,this._masterGain=null}};var Fo="data-hf-authored-duration",wo="data-hf-authored-end";function No(){let t=Bi(),e=null,n=null,i=[],r=new Set,o=null;if(typeof window.__hfRuntimeTeardown=="function")try{window.__hfRuntimeTeardown()}catch(d){_("runtime.init.site1",d)}document.documentElement&&(document.documentElement.style.margin="0",document.documentElement.style.padding="0",document.documentElement.style.overflow="hidden"),document.body&&(document.body.style.margin="0",document.body.style.padding="0",document.body.style.overflow="hidden"),window.__timelines=window.__timelines||{};let s=d=>{i.push(d)},l=(d,p,h)=>{let b=h??`${d}:${JSON.stringify(p)}`;r.has(b)||(r.add(b),Ae({source:"hf-preview",type:"diagnostic",code:d,details:p}))},a=d=>{let p={scale:1,focusX:960,focusY:540},h=[],b=[],y={time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying(),renderMode:!1,timelineDirty:!1};return{play:d.play,pause:d.pause,seek:d.seek,getTime:d.getTime,getDuration:d.getDuration,isPlaying:d.isPlaying,getMainTimeline:()=>null,getElementBounds:()=>{},getElementsAtPoint:()=>{},setElementPosition:()=>{},previewElementPosition:()=>{},setElementKeyframes:()=>{},setElementScale:()=>{},setElementFontSize:()=>{},setElementTextContent:()=>{},setElementTextColor:()=>{},setElementTextShadow:()=>{},setElementTextFontWeight:()=>{},setElementTextFontFamily:()=>{},setElementTextOutline:()=>{},setElementTextHighlight:()=>{},setElementVolume:()=>{},setStageZoom:()=>{},getStageZoom:()=>p,setStageZoomKeyframes:()=>{},getStageZoomKeyframes:()=>h,addElement:()=>!1,removeElement:()=>!1,updateElementTiming:()=>!1,setElementTiming:()=>{},updateElementSrc:()=>!1,updateElementLayer:()=>!1,updateElementBasePosition:()=>!1,markTimelineDirty:()=>{},isTimelineDirty:()=>!1,rebuildTimeline:()=>{},ensureTimeline:()=>{},enableRenderMode:()=>{},disableRenderMode:()=>{},renderSeek:d.renderSeek,getElementVisibility:()=>({visible:!1}),getVisibleElements:()=>b,getRenderState:()=>({...y,time:d.getTime(),duration:d.getDuration(),isPlaying:d.isPlaying()})}},c=1/60,u=.75,m=2,f=.05,x=100,F=240,E=d=>{if(d instanceof Error)return d.message||String(d);if(typeof d=="string")return d;try{return JSON.stringify(d)}catch{return String(d??"")}},S=d=>{let p=d.toLowerCase();return p.includes("cannot read properties of null")||p.includes("cannot set properties of null")?{code:"runtime_null_dom_access",category:"dom-null-access"}:p.includes("failed to execute \'queryselector\'")?{code:"runtime_invalid_selector",category:"selector-invalid"}:p.includes("is not defined")?{code:"runtime_reference_missing",category:"reference-missing"}:{code:"runtime_script_error",category:"script-error"}},B=d=>{if(d==null||d.trim()==="")return null;let p=Number.parseFloat(d);return!Number.isFinite(p)||p<=0?null:`${p}px`},D=()=>{let d=document.querySelector(\'[data-composition-id][data-root="true"]\');if(d instanceof HTMLElement)return d;let p=Array.from(document.querySelectorAll("[data-composition-id]"));return p.length===0?null:p.find(h=>!h.parentElement?.closest("[data-composition-id]"))??p[0]??null},v=()=>{let d=D();if(!d)return;let p=B(d.getAttribute("data-width")),h=B(d.getAttribute("data-height"));p&&(d.style.width=p),h&&(d.style.height=h),p&&d.style.setProperty("--comp-width",p),h&&d.style.setProperty("--comp-height",h)},te=()=>{let d=D(),p=Array.from(document.querySelectorAll("[data-composition-id]")).filter(h=>h.hasAttribute("data-duration")||h.hasAttribute("data-end"));for(let h of p){if(d&&h===d)continue;let b=h.getAttribute("data-duration"),y=h.getAttribute("data-end");b!=null&&!h.hasAttribute(Fo)&&h.setAttribute(Fo,b),y!=null&&!h.hasAttribute(wo)&&h.setAttribute(wo,y),h.removeAttribute("data-duration"),h.removeAttribute("data-end")}},q=()=>{let d=D();if(!d)return;d.style.position||(d.style.position="relative"),d.style.overflow="hidden";let p=B(d.getAttribute("data-width")),h=B(d.getAttribute("data-height"));p&&(d.style.width=p),h&&(d.style.height=h);let b=Array.from(d.children);for(let y of b){let M=y.tagName.toLowerCase();if(M==="script"||M==="style"||M==="link"||M==="meta"||!y.hasAttribute("data-start"))continue;let X=(y.style.top==="0px"||y.style.top==="0")&&(y.style.left==="0px"||y.style.left==="0")&&y.style.width==="100%"&&y.style.height==="100%",j=/translate\\(\\s*-50%\\s*,\\s*-50%\\s*\\)/.test(y.style.transform);if(X&&j&&!y.hasAttribute("data-width")&&!y.hasAttribute("data-height")){let Je=y.style.top,me=y.style.left,ct=y.style.width,se=y.style.height;y.style.top="",y.style.left="",y.style.width="",y.style.height="";let Q=window.getComputedStyle(y);Q.top!=="auto"||Q.bottom!=="auto"||Q.left!=="auto"||Q.right!=="auto"||Q.width!=="0px"||Q.height!=="0px"||(y.style.top=Je,y.style.left=me,y.style.width=ct,y.style.height=se)}let Y=window.getComputedStyle(y),oe=Y.position;if(oe!=="absolute"&&oe!=="fixed"&&(y.style.position="absolute"),!!y.style.top||!!y.style.bottom||Y.top!=="auto"||Y.bottom!=="auto"||(y.style.top="0"),!!y.style.left||!!y.style.right||Y.left!=="auto"||Y.right!=="auto"||(y.style.left="0"),M!=="audio"){let Je=B(y.getAttribute("data-width")),me=B(y.getAttribute("data-height")),ct=Y.width!=="0px"&&Y.width!=="auto",se=Y.height!=="0px"&&Y.height!=="auto";Je?!y.style.width&&!ct&&(y.style.width=Je):!y.style.width&&Y.width==="0px"&&(y.style.width="100%"),me?!y.style.height&&!se&&(y.style.height=me):!y.style.height&&Y.height==="0px"&&(y.style.height="100%")}}},C=(d,p=0,h)=>Ye({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:h?.includeAuthoredTimingAttrs??!0}).resolveStartForElement(d,p),g=(d,p)=>Ye({timelineRegistry:window.__timelines??{},includeAuthoredTimingAttrs:p?.includeAuthoredTimingAttrs??!0}).resolveDurationForElement(d),A=(d,p=0)=>!d.hasAttribute("data-hf-auto-start")&&d.hasAttribute("data-start")?Math.max(0,Number(d.getAttribute("data-start")??0)||0):C(d,p),N=!!document.querySelector("[data-composition-src]"),w=!1;{let d=document.querySelectorAll("[data-composition-id]:not([data-composition-src])");for(let p of d){let h=p.getAttribute("data-composition-id");if(h&&p.children.length===0&&document.querySelector(`template#${CSS.escape(h)}-template`)){w=!0;break}}}let T=!N&&!w,L=d=>{if(!d||typeof d.duration!="function")return null;try{let p=Number(d.duration());return Number.isFinite(p)?Math.max(0,p):null}catch{return null}},P=d=>typeof d=="number"&&Number.isFinite(d)&&d>c,J=d=>{let p=Number(d.getAttribute("data-duration"));if(Number.isFinite(p)&&p>0)return p;let h=Number(d.getAttribute("data-playback-start")??d.getAttribute("data-media-start")??"0"),b=Number.isFinite(h)?Math.max(0,h):0;return Number.isFinite(d.duration)&&d.duration>b?Math.max(0,d.duration-b):null},R=()=>{let d=Array.from(document.querySelectorAll("video[data-start], audio[data-start]"));if(d.length===0)return null;let p=0;for(let h of d){let b=A(h,0);if(!Number.isFinite(b))continue;let y=J(h);y==null||y<=c||(p=Math.max(p,Math.max(0,b)+y))}return p>c?p:null},ue=()=>{let d=D();if(!d)return null;let p=window.__timelines??{},h=Ye({timelineRegistry:p,includeAuthoredTimingAttrs:!0}),b=0,y=Array.from(d.querySelectorAll("[data-composition-id][data-start]"));for(let M of y){if(!(M instanceof Element)||M.parentElement?.closest("[data-composition-id]")!==d)continue;let j=h.resolveStartForElement(M,0),Y=h.resolveDurationForElement(M);!Number.isFinite(j)||Y==null||Y<=0||(b=Math.max(b,Math.max(0,j)+Y))}return b>c?b:null},Se=()=>{let d=R();return typeof d!="number"||!Number.isFinite(d)||d<=c?null:d},G=d=>P(d)?Math.max(c,d*u):c,U=(d,p=0)=>{let h=L(d),b=Se(),y=ue(),M=Math.max(b??0,y??0),X=Number.isFinite(p)&&p>c?p:0,j=0;return P(h)?j=Math.max(h,M,X):P(M)?j=Math.max(M,X):j=X,j>0?Math.max(0,j):0},W=()=>{let d=window.__timelines??{},p=Ye({timelineRegistry:d,includeAuthoredTimingAttrs:!0}),h=Se(),b=ue(),y=Math.max(h??0,b??0)||null,M=G(y),X=se=>{let Q=document.querySelector(`[data-composition-id="${CSS.escape(se)}"]`);return Q?p.resolveStartForElement(Q,0):0},j=se=>{let Q=window.gsap;if(!Q||typeof Q.timeline!="function")return null;let ce=Q.timeline({paused:!0});for(let xe of se)ce.add(xe.timeline,X(xe.compositionId));return ce},Y=(se,Q)=>{if(!P(se))return null;let ce=window.gsap;if(!ce||typeof ce.timeline!="function")return null;let xe=ce.timeline({paused:!0});if(Q)try{xe.add(Q,0)}catch(ae){_("runtime.init.site2",ae)}let be=xe;if(typeof be.to=="function")try{be.to({},{duration:se})}catch(ae){_("runtime.init.site3",ae)}return xe},oe=(se,Q)=>{let ce=se;if(typeof ce.getChildren!="function")return[];try{let xe=ce.getChildren(!0,!0,!0)??[];if(!Array.isArray(xe))return[];let be=[];for(let ae of Q)if(!xe.some(ke=>ke===ae.timeline))try{let ke=X(ae.compositionId);se.add(ae.timeline,ke),be.push(ae.compositionId)}catch(ke){_("runtime.init.site4",ke)}return be}catch{return[]}},Ie=D(),fe=Ie?.getAttribute("data-composition-id")??null;if(!fe)return{timeline:null};let ge=d[fe]??null,me=(()=>{if(!Ie)return[];let se=new Set,Q=Array.from(Ie.querySelectorAll("[data-composition-id]")),ce=[];for(let xe of Q){let be=xe.getAttribute("data-composition-id");if(!be||be===fe||se.has(be))continue;se.add(be);let ae=d[be]??null;if(!ae||typeof ae.play!="function"||typeof ae.pause!="function")continue;let Ne=L(ae);ce.push({compositionId:be,timeline:ae,durationSeconds:Ne??0})}return ce})(),ct=se=>{for(let Q of se){let ce=Q.timeline;if(typeof ce.paused=="function")try{ce.paused(!1)}catch(xe){_("runtime.init.site5",xe)}}};if(me.length>0&&ct(me),ge){let se=me.length>0?oe(ge,me):[];if((me.length>0||!document.querySelector("[data-composition-id]:not([data-composition-id=\'"+fe+"\'])"))&&(Z=!0),se.length>0)try{let ae=ge.time();ge.seek(ae,!1)}catch{}let Q=L(ge);if(!P(Q)&&me.length>0){let ae=me.map(ts=>ts.compositionId),Ne=j(me),ke=L(Ne);if(Ne&&P(ke))return{timeline:Ne,selectedTimelineIds:ae,selectedDurationSeconds:ke,mediaDurationFloorSeconds:h,diagnostics:{code:"root_timeline_unusable_fallback",details:{rootCompositionId:fe,rootDurationSeconds:Q,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:M,selectedDurationSeconds:ke,mediaDurationFloorSeconds:h,authoredCompositionDurationFloorSeconds:b,selectedTimelineIds:ae,autoNestedChildren:se}}};let pn=Y(y??0,ge),hn=L(pn);if(pn&&P(hn))return{timeline:pn,selectedTimelineIds:[fe],selectedDurationSeconds:hn,mediaDurationFloorSeconds:h,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:fe,rootDurationSeconds:Q,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:h,authoredCompositionDurationFloorSeconds:b,selectedDurationSeconds:hn,selectedTimelineIds:[fe],autoNestedChildren:se}}}}if(!P(Q)&&me.length===0){let ae=Y(y??0,ge),Ne=L(ae);if(ae&&P(Ne))return{timeline:ae,selectedTimelineIds:[fe],selectedDurationSeconds:Ne,mediaDurationFloorSeconds:h,diagnostics:{code:"root_timeline_unusable_media_floor_fallback",details:{rootCompositionId:fe,rootDurationSeconds:Q,fallbackKind:"media_duration_floor",mediaDurationFloorSeconds:h,authoredCompositionDurationFloorSeconds:b,selectedDurationSeconds:Ne,selectedTimelineIds:[fe]}}}}let ce=Ie?.getAttribute("data-duration"),xe=ce?parseFloat(ce):null,be=Math.max(P(xe)?xe:0,b??0);if(be>0&&P(be)&&P(Q)&&be>=Q+.5){let ae=ge;if(typeof ae.to=="function")try{ae.to({},{duration:0},be)}catch(ke){_("runtime.init.site6",ke)}let Ne=L(ge);if(P(Ne))return{timeline:ge,selectedTimelineIds:[fe],selectedDurationSeconds:Ne,mediaDurationFloorSeconds:h,diagnostics:{code:"root_timeline_padded_to_declared_duration",details:{rootCompositionId:fe,rootDurationSeconds:Q,rootDeclaredDur:xe,authoredCompositionDurationFloorSeconds:b,newDur:Ne}}}}return{timeline:ge,selectedTimelineIds:[fe],selectedDurationSeconds:Q,mediaDurationFloorSeconds:h,diagnostics:se.length>0?{code:"root_timeline_auto_nested_children",details:{rootCompositionId:fe,selectedDurationSeconds:Q,autoNestedChildren:se}}:void 0}}if(me.length>0){let se=me.map(xe=>xe.compositionId),Q=j(me),ce=L(Q);if(Q)return{timeline:Q,selectedTimelineIds:se,selectedDurationSeconds:ce,mediaDurationFloorSeconds:h,diagnostics:{code:"root_timeline_missing_fallback",details:{rootCompositionId:fe,fallbackKind:"composite_by_root_children",minCandidateDurationSeconds:M,selectedDurationSeconds:ce,mediaDurationFloorSeconds:h,selectedTimelineIds:se}}}}return{timeline:null}},Z=!1,pe=()=>{if(!T)return!1;let d=t.capturedTimeline,p=L(d),h=P(p);if(d&&h&&Z)return!1;let b=W();if(!b.timeline)return!1;if(d&&d===b.timeline)return typeof d.timeScale=="function"&&d.timeScale(t.playbackRate),!1;t.capturedTimeline=b.timeline,typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);let y=U(t.capturedTimeline,0);if(y>0){try{I.setDuration(y)}catch{}t.capturedTimeline.pause();let M=Math.max(0,t.currentTime||0);typeof t.capturedTimeline.totalTime=="function"&&t.capturedTimeline.totalTime(M,!1);let X=document.querySelectorAll("[data-hf-studio-path-offset]");if(X.length>0&&t.capturedTimeline.getChildren){let j=new Set;try{for(let Y of t.capturedTimeline.getChildren(!0))if(typeof Y.targets=="function")for(let oe of Y.targets())j.add(oe)}catch{}for(let Y of X){if(!j.has(Y))continue;let oe=Y;oe.removeAttribute("data-hf-studio-path-offset"),oe.removeAttribute("data-hf-studio-original-translate"),oe.removeAttribute("data-hf-studio-original-inline-translate"),oe.style.removeProperty("--hf-studio-offset-x"),oe.style.removeProperty("--hf-studio-offset-y"),oe.style.removeProperty("translate")}}}b.diagnostics&&Ae({source:"hf-preview",type:"diagnostic",code:b.diagnostics.code,details:b.diagnostics.details}),Ae({source:"hf-preview",type:"diagnostic",code:"timeline_bound",details:{selectedTimelineIds:b.selectedTimelineIds??[],selectedDurationSeconds:b.selectedDurationSeconds??null,mediaDurationFloorSeconds:b.mediaDurationFloorSeconds??null}});for(let M of V)$.delete(M),Le(M);return!0};window.__hfForceTimelineRebind=()=>{Z=!1,pe()};let Fe=()=>{let d=D();if(!(d instanceof HTMLElement))return;let p=d.getBoundingClientRect(),h=Number(d.getAttribute("data-width")),b=Number(d.getAttribute("data-height")),y=window.getComputedStyle(d),M=Number.isFinite(h)&&h>0&&Number.isFinite(b)&&b>0,X=p.width<=0||p.height<=0||d.clientWidth<=0||d.clientHeight<=0;!M||!X||l("root_stage_layout_zero",{compositionId:d.getAttribute("data-composition-id")??null,declaredWidth:h,declaredHeight:b,rectWidth:Math.round(p.width),rectHeight:Math.round(p.height),clientWidth:d.clientWidth,clientHeight:d.clientHeight,display:y.display,visibility:y.visibility,overflow:y.overflow},`root-stage-layout-zero:${d.getAttribute("data-composition-id")??"unknown"}`)},H=()=>{t.tornDown||(o!=null&&window.cancelAnimationFrame(o),o=window.requestAnimationFrame(()=>{o=null,Fe()}))},k=()=>{e=d=>{let p=E(d.error??d.message).slice(0,F);if(!p)return;let h=S(p);Ae({source:"hf-preview",type:"diagnostic",code:h.code,details:{category:h.category,message:p,filename:d.filename||null,line:Number.isFinite(d.lineno)?d.lineno:null,column:Number.isFinite(d.colno)?d.colno:null}})},n=d=>{let p=E(d.reason).slice(0,F);if(!p)return;let h=S(p);Ae({source:"hf-preview",type:"diagnostic",code:`${h.code}_unhandled_rejection`,details:{category:`${h.category}-unhandled-rejection`,message:p}})},window.addEventListener("error",e),window.addEventListener("unhandledrejection",n)},O=()=>{let d=Array.from(document.querySelectorAll("img, video, audio, source, link[rel=\'stylesheet\']"));for(let h of d){let b=()=>{if(!(h instanceof Element))return;let y=h.tagName.toLowerCase(),M=h.getAttribute("src")??h.getAttribute("href")??h.getAttribute("poster")??null,X=y==="link"?"runtime_stylesheet_load_failed":"runtime_asset_load_failed";l(X,{tagName:y,assetUrl:M,currentSrc:(h instanceof HTMLImageElement||h instanceof HTMLMediaElement)&&h.currentSrc||null,readyState:h instanceof HTMLMediaElement?h.readyState:null,networkState:h instanceof HTMLMediaElement?h.networkState:null},`${X}:${y}:${M??"unknown"}`)};h.addEventListener("error",b),s(()=>{h.removeEventListener("error",b)})}let p=document.fonts;p&&p.ready.then(()=>{if(t.tornDown)return;let h=Array.from(p).filter(b=>b.status==="error").map(b=>b.family).filter(b=>!!b).slice(0,10);h.length!==0&&l("runtime_font_load_issue",{failedFamilies:h,totalFaces:Array.from(p).length},`runtime-font-load-issue:${h.join("|")}`)}).catch(()=>{})},ie=(d,p)=>{if(!d.timeline)return!1;let h=t.capturedTimeline;if(h&&h===d.timeline)return!1;let b=Math.max(0,t.currentTime||0),y=t.isPlaying;t.capturedTimeline=d.timeline,typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);try{t.capturedTimeline.pause(),t.capturedTimeline.seek(b,!1),y&&t.capturedTimeline.play()}catch(M){_("runtime.init.site7",M)}return Ae({source:"hf-preview",type:"diagnostic",code:"timeline_loop_guard_rebind",details:{reason:p,previousTime:b,selectedTimelineIds:d.selectedTimelineIds??[],selectedDurationSeconds:d.selectedDurationSeconds??null,mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),!0},ne=null,z=!1,V=new Set,$=new WeakMap,Ce=()=>{t.tornDown||(ne!=null&&window.clearTimeout(ne),ne=window.setTimeout(()=>{if(t.tornDown)return;ne=null;let d=W();if(!d.timeline||!P(d.mediaDurationFloorSeconds??null))return;if(!t.capturedTimeline){pe()&&(Ge(),Me(!0));return}if(z)return;let h=L(t.capturedTimeline),b=d.selectedDurationSeconds??L(d.timeline);P(b)&&(!P(h)||b>=h+f)&&ie(d,"manual")&&(z=!0,Ae({source:"hf-preview",type:"diagnostic",code:"timeline_rebind_after_media_metadata",details:{previousDurationSeconds:h??null,selectedDurationSeconds:b??null,selectedTimelineIds:d.selectedTimelineIds??[],mediaDurationFloorSeconds:d.mediaDurationFloorSeconds??null}}),Ge(),Me(!0))},x))},we=()=>{for(let d of V)d.removeEventListener("loadedmetadata",Ce),d.removeEventListener("durationchange",Ce);V.clear()},$e=()=>{if(t.tornDown)return;let d=Array.from(document.querySelectorAll("video, audio"));for(let p of d){if(V.has(p))continue;V.add(p);let h=Number.parseFloat(p.dataset.volume??"");Number.isFinite(h)&&(p.volume=Math.max(0,Math.min(1,h))),p.addEventListener("loadedmetadata",Ce),p.addEventListener("durationchange",Ce),p.preload!=="auto"&&(p.preload="auto"),p.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&p.load(),Le(p)}},Le=d=>{$.has(d)||ki(d,t.capturedTimeline,U(t.capturedTimeline,0),$)},We=()=>{let d=y=>{let M=y.closest("[data-composition-id]"),X=M?C(M,0):null,j=M?g(M,{includeAuthoredTimingAttrs:!0}):null;return{compositionRoot:M,inheritedStart:X,inheritedDuration:j}},p=vi({shouldIncludeElement:y=>y.hasAttribute("data-start")||!!d(y).compositionRoot,resolveStartSeconds:y=>{let M=d(y);return A(y,M.inheritedStart??0)},resolveDurationSeconds:y=>{let M=d(y),X=A(y,M.inheritedStart??0),j=Number.parseFloat(y.dataset.playbackStart??y.dataset.mediaStart??"0")||0,Y=M.inheritedStart!=null&&M.inheritedDuration!=null&&M.inheritedDuration>0?Math.max(0,M.inheritedStart+M.inheritedDuration-X):null,oe=Number.isFinite(y.duration)&&y.duration>j?Math.max(0,y.duration-j):null;return oe!=null&&Y!=null?Math.min(oe,Y):oe??Y}});for(let y of p.mediaClips){let M=$.get(y.el);M&&(y.volumeKeyframes=M)}let h=t.mediaForceSyncNextTick;h&&(t.mediaForceSyncNextTick=!1),_i({clips:p.mediaClips,timeSeconds:t.currentTime,playing:t.isPlaying,playbackRate:t.playbackRate,outputMuted:t.mediaOutputMuted||he.isActive(),userMuted:t.bridgeMuted,userVolume:t.bridgeVolume,forceSync:h,onElementVolume:(y,M)=>he.setElementVolume(y,M),onAutoplayBlocked:()=>{t.mediaAutoplayBlockedPosted||(t.mediaAutoplayBlockedPosted=!0,Ae({source:"hf-preview",type:"media-autoplay-blocked"}))}});let b=Array.from(document.querySelectorAll("[data-start]"));for(let y of b){if(!(y instanceof HTMLElement))continue;let M=y.tagName.toLowerCase();if(M==="script"||M==="style"||M==="link"||M==="meta")continue;let X=M==="video"||M==="audio"?A(y,0):C(y,0),j=g(y),Y=y.getAttribute("data-composition-id");if(Y){let fe=(window.__timelines??{})[Y],ge=null;if(fe&&typeof fe.duration=="function"){let me=Number(fe.duration());Number.isFinite(me)&&me>0&&(ge=me)}let Je=y.hasAttribute("data-composition-src")||y.hasAttribute("data-composition-file");j!=null&&j>0&&ge!=null&&!Je?j=Math.min(j,ge):(j==null||j<=0)&&ge!=null&&(j=ge)}let oe=j!=null&&j>0?X+j:Number.POSITIVE_INFINITY,Ie=t.currentTime>=X&&(Number.isFinite(oe)?t.currentTime<=oe:!0);y.style.visibility=Ie?"visible":"hidden"}},Me=d=>{let p=Math.max(0,Math.round((t.currentTime||0)*t.canonicalFps)),h=Date.now();(d||p!==t.bridgeLastPostedFrame||t.isPlaying!==t.bridgeLastPostedPlaying||t.bridgeMuted!==t.bridgeLastPostedMuted||h-t.bridgeLastPostedAt>=t.bridgeMaxPostIntervalMs)&&(t.bridgeLastPostedFrame=p,t.bridgeLastPostedPlaying=t.isPlaying,t.bridgeLastPostedMuted=t.bridgeMuted,t.bridgeLastPostedAt=h,Ae({source:"hf-preview",type:"state",frame:p,isPlaying:t.isPlaying,muted:t.bridgeMuted,playbackRate:t.playbackRate}))},Ge=()=>{te(),v(),q();let d=D();if(d){let h=B(d.getAttribute("data-width")),b=B(d.getAttribute("data-height")),y=h?parseInt(h,10):0,M=b?parseInt(b,10):0;y>0&&M>0&&Ae({source:"hf-preview",type:"stage-size",width:y,height:M})}pe();let p=Wi({canonicalFps:t.canonicalFps});window.__clipManifest=p,Ae(p),H()},De=(d,p=0)=>{for(let h of t.deterministicAdapters){try{d==="discover"&&h.discover(),d==="pause"&&h.pause(),d==="play"&&h.play&&h.play()}catch(b){_("runtime.init.site8",b)}if(d==="discover")try{h.seek({time:p})}catch(b){_("runtime.init.site9",b)}}};if(T)ni();else{let d={injectedStyles:t.injectedCompStyles,injectedScripts:t.injectedCompScripts,parseDimensionPx:B,onDiagnostic:({code:p,details:h})=>{Ae({source:"hf-preview",type:"diagnostic",code:p,details:h})}};Ao(d).then(()=>bo(d)).finally(()=>{T=!0,pe(),window.__renderReady=!0,$e(),De("discover",t.currentTime),O(),ni(),Ge(),Me(!0)})}let Pt=Ri({postMessage:d=>Ae(d)});Pt.installPickerApi();let dn=d=>{let p=Number(d);!Number.isFinite(p)||p<=0?t.playbackRate=1:t.playbackRate=Math.max(.1,Math.min(5,p)),t.mediaForceSyncNextTick=!0,t.capturedTimeline&&typeof t.capturedTimeline.timeScale=="function"&&t.capturedTimeline.timeScale(t.playbackRate);let h=document.querySelectorAll("video, audio");for(let b of h)if(b instanceof HTMLMediaElement)try{b.playbackRate=t.playbackRate}catch(y){_("runtime.init.site10",y)}},de=Di({getTimeline:()=>t.capturedTimeline,setTimeline:d=>{t.capturedTimeline=d},getTimelineRegistry:()=>window.__timelines??{},getIsPlaying:()=>t.isPlaying,setIsPlaying:d=>{t.isPlaying!==d&&(t.mediaForceSyncNextTick=!0),t.isPlaying=d},getPlaybackRate:()=>t.playbackRate,setPlaybackRate:dn,getCanonicalFps:()=>t.canonicalFps,onSyncMedia:(d,p)=>{t.currentTime=Math.max(0,Number(d)||0),t.isPlaying!==p&&(t.mediaForceSyncNextTick=!0),t.isPlaying=p,We()},onStatePost:Me,onDeterministicSeek:d=>{for(let p of t.deterministicAdapters)try{p.seek({time:Number(d)||0})}catch(h){_("runtime.init.site11",h)}},onDeterministicPause:()=>De("pause"),onDeterministicPlay:()=>De("play"),onRenderFrameSeek:()=>{},onShowNativeVideos:()=>{},getSafeDuration:()=>U(t.capturedTimeline,0)});window.__player=a(de),window.__playerReady=!0,xi(Ae),dt("composition_loaded",{duration:de.getDuration(),compositionId:document.querySelector("[data-composition-id]")?.getAttribute("data-composition-id")??null}),t.controlBridgeHandler=hi({onPlay:()=>{de.play(),dt("composition_played",{time:de.getTime()})},onPause:()=>{de.pause(),dt("composition_paused",{time:de.getTime()})},onSeek:(d,p)=>{let h=Math.max(0,d)/t.canonicalFps;de.seek(h),dt("composition_seeked",{time:h})},onSetMuted:d=>{t.bridgeMuted=d;let p=d||t.mediaOutputMuted;he.setMuted(p);let h=document.querySelectorAll("video, audio");for(let b of h)b instanceof HTMLMediaElement&&(b.muted=p)},onSetVolume:d=>{t.bridgeVolume=d,he.setVolume(d);let p=document.querySelectorAll("video, audio");for(let h of p){if(!(h instanceof HTMLMediaElement))continue;let b=parseFloat(h.dataset.volume??""),y=Number.isFinite(b)?b:1;h.volume=y*d}},onSetMediaOutputMuted:d=>{t.mediaOutputMuted=d;let p=d||t.bridgeMuted;he.setMuted(p);let h=document.querySelectorAll("video, audio");for(let b of h)b instanceof HTMLMediaElement&&(b.muted=p)},onSetPlaybackRate:d=>{dn(d),t.transportClock&&t.transportClock.setRate(t.playbackRate),he.setRate(t.playbackRate)},onTick:()=>{if(t.tornDown||!I.isPlaying())return;let d=I.now();if(t.currentTime=d,Ke(d),I.reachedEnd()){he.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1;let p=I.getDuration();Number.isFinite(p)&&(I.seek(p),t.currentTime=p,Ke(p)),De("pause"),We(),Me(!0)}},onEnablePickMode:()=>Pt.enablePickMode(),onDisablePickMode:()=>Pt.disablePickMode()}),pe(),t.capturedTimeline&&(de._timeline=t.capturedTimeline),window.__renderReady=!0,T&&setTimeout(()=>{let d=t.capturedTimeline;pe()&&t.capturedTimeline!==d&&(de._timeline=t.capturedTimeline),De("discover",t.currentTime),window.__renderReady=!0,Ge(),Me(!0)},0),t.deterministicAdapters=[Mi(),gi({resolveStartSeconds:d=>C(d,0)}),Si(),Ei(),wi(),Ni(),yi({getTimeline:()=>t.capturedTimeline})],Ci(),k(),$e(),De("discover");let I=new rn;t.transportClock=I;let he=new on,di=!1;he.init().then(d=>{di=d});let Wt=0,fn=!1,Zo=(d,p,h)=>{try{d.pause(),typeof d.totalTime=="function"?d.totalTime(p,!1):d.seek(p,!1)}catch(b){_(h,b)}},Xo=d=>{let p=window.__timelines??{},h=D()?.getAttribute("data-composition-id")??null;for(let[b,y]of Object.entries(p)){if(!y||b===h)continue;let M=document.querySelector(`[data-composition-id="${CSS.escape(b)}"]`);if(!M)continue;let X=C(M,0);if(!Number.isFinite(X))continue;let j=g(M,{includeAuthoredTimingAttrs:!0}),Y=L(y),oe=j!=null&&j>0?j:Y,Ie=Math.max(0,oe!=null&&oe>0?Math.min(oe,d-X):d-X);Zo(y,Ie,"runtime.init.transport.childTimeline")}},es=d=>{let p=window.__timelines??{};for(let h of Object.values(p))if(!(!h||h===d))try{h.play()}catch(b){_("runtime.init.activateSiblings",b)}},Ke=(d,p)=>{let h=t.capturedTimeline;if(h){p?.activateChildren&&es(h);try{typeof h.totalTime=="function"?h.totalTime(d,!1):h.seek(d,!1)}catch(b){_("runtime.init.transport.seek",b)}}else Xo(d);for(let b of t.deterministicAdapters)try{b.seek({time:d})}catch(y){_("runtime.init.transport.adapter",y)}},fi=()=>{if(!(t.tornDown||fn)){fn=!0;try{if(t.transportRafId=window.requestAnimationFrame(fi),Wt+=1,Wt%60===0&&!(I.isPlaying()&&t.capturedTimeline!=null&&I.now()<m)){let h=t.capturedTimeline;if(pe()){t.capturedTimeline&&!de._timeline&&(de._timeline=t.capturedTimeline),t.capturedTimeline&&t.capturedTimeline!==h&&t.capturedTimeline.pause();let b=U(t.capturedTimeline,0);b>0&&I.setDuration(b),Ge()}}if(Wt%20===0&&Ge(),Wt%30===0&&$e(),t.capturedTimeline){let p=U(t.capturedTimeline,0);p>0&&I.setDuration(p)}if(I.isPlaying()&&!t.mediaOutputMuted)if(he.isActive()&&he.context){let p=he.getTime();p>=0&&I.attachAudioSource({currentTimeSeconds:p})}else{let p=document.querySelectorAll("audio[data-start]"),h=!1;for(let b of p){if(!(b instanceof HTMLMediaElement)||!b.isConnected)continue;let y=Number.parseFloat(b.dataset.start??""),M=Number.parseFloat(b.dataset.duration??""),X=Number.isFinite(M)&&M>0?y+M:1/0,j=Number.parseFloat(b.dataset.playbackStart??b.dataset.mediaStart??"0")||0;if(Number.isFinite(y)&&t.currentTime>=y&&t.currentTime<=X){b.paused?!b.error&&b.readyState<HTMLMediaElement.HAVE_FUTURE_DATA&&(I.attachAudioSource({currentTimeSeconds:t.currentTime}),h=!0):(I.attachAudioSource({el:b,compositionStart:y,mediaStart:j}),h=!0);break}}!h&&I.hasAudioSource()&&I.detachAudioSource()}else I.hasAudioSource()&&I.detachAudioSource();let d=I.now();if(t.currentTime=d,Ke(d),I.isPlaying()&&I.reachedEnd()){he.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1;let p=I.getDuration();Number.isFinite(p)&&(I.seek(p),t.currentTime=p,Ke(p)),De("pause"),We(),Me(!0);return}I.isPlaying()&&We(),Me(!1)}finally{fn=!1}}},mi=d=>{let p=document.querySelectorAll("video, audio");for(let h of p){if(!(h instanceof HTMLMediaElement)||!h.isConnected)continue;let b=Number.parseFloat(h.dataset.start??"");if(!Number.isFinite(b))continue;let y=Number.parseFloat(h.dataset.duration??""),M=Number.isFinite(y)&&y>0?b+y:1/0;if(d<b||d>=M)continue;let X=Number.parseFloat(h.dataset.playbackStart??h.dataset.mediaStart??"0")||0,j=d-b+X;if(j>=0)try{h.currentTime=j}catch{}}};if(de.play=()=>{let d=t.capturedTimeline;if(I.isPlaying())return;let p=U(d,0);if(p>0)I.setDuration(p),I.reachedEnd()&&(I.seek(0),t.currentTime=0,Ke(0));else{let h=D(),b=Number(h?.getAttribute("data-duration")??0);b>0&&I.setDuration(b)}if(d&&d.pause(),!!I.play()){if(t.isPlaying=!0,t.mediaForceSyncNextTick=!0,mi(I.now()),di){let h=he.startGeneration(),b=document.querySelectorAll("audio[data-start]");for(let y of b){if(!(y instanceof HTMLMediaElement)||!y.isConnected)continue;let M=Number.parseFloat(y.dataset.start??"");if(!Number.isFinite(M))continue;let X=Number.parseFloat(y.dataset.playbackStart??y.dataset.mediaStart??"0")||0,j=Number.parseFloat(y.dataset.volume??""),Y=Number.isFinite(j)?j:1;he.decodeAudioElement(y).then(oe=>{!oe||!I.isPlaying()||he.schedulePlayback(y,oe,M,X,I.now(),Y*t.bridgeVolume,h,t.playbackRate)})}}De("play"),We(),Me(!0)}},de.pause=()=>{if(!I.isPlaying())return;he.stopAll(),I.detachAudioSource(),I.pause(),t.isPlaying=!1,t.currentTime=I.now(),t.mediaForceSyncNextTick=!0,mi(t.currentTime);let d=t.capturedTimeline;d&&d.pause(),De("pause"),We(),Me(!0)},de.seek=d=>{let p=tt(Math.max(0,Number(d)||0),t.canonicalFps);he.stopAll(),I.detachAudioSource(),I.isPlaying()&&I.pause(),I.seek(p),t.currentTime=I.now(),t.isPlaying=!1,t.mediaForceSyncNextTick=!0;let b=t.capturedTimeline;b&&b.pause(),Ke(t.currentTime),De("pause"),We(),Me(!0)},de.renderSeek=d=>{let p=tt(Math.max(0,Number(d)||0),t.canonicalFps);I.isPlaying()&&I.pause(),I.seek(p),t.currentTime=I.now(),t.isPlaying=!1,t.mediaForceSyncNextTick=!0,Ke(t.currentTime,{activateChildren:!0}),We(),Me(!0)},de.getTime=()=>I.now(),de.getDuration=()=>{let d=I.getDuration();return Number.isFinite(d)?d:0},de.isPlaying=()=>I.isPlaying(),de.setPlaybackRate=d=>{dn(d),I.setRate(t.playbackRate),he.setRate(t.playbackRate)},t.capturedTimeline){let d=U(t.capturedTimeline,0);d>0&&I.setDuration(d),t.capturedTimeline.pause()}let pi=window.__player;if(pi){let d=["play","pause","seek","renderSeek","getTime","getDuration","isPlaying"];for(let p of d)Object.defineProperty(pi,p,{get:()=>de[p],set:h=>{de[p]=h},configurable:!0})}t.transportRafId=window.requestAnimationFrame(fi),Ge(),Me(!0);let mn=()=>{if(!t.tornDown){t.tornDown=!0,t.transportRafId!=null&&(window.cancelAnimationFrame(t.transportRafId),t.transportRafId=null),t.transportClock=null,he.destroy(),ne!=null&&(window.clearTimeout(ne),ne=null),o!=null&&(window.cancelAnimationFrame(o),o=null),we(),t.controlBridgeHandler&&(window.removeEventListener("message",t.controlBridgeHandler),t.controlBridgeHandler=null),e&&(window.removeEventListener("error",e),e=null),n&&(window.removeEventListener("unhandledrejection",n),n=null),t.beforeUnloadHandler&&(window.removeEventListener("beforeunload",t.beforeUnloadHandler),t.beforeUnloadHandler=null),Pt.disablePickMode();for(let d of t.deterministicAdapters)if(!(!d||typeof d.revert!="function"))try{d.revert()}catch(p){_("runtime.init.site12",p)}t.deterministicAdapters=[];for(let d of i.splice(0))try{d()}catch(p){_("runtime.init.site13",p)}for(let d of t.injectedCompStyles)try{d.remove()}catch(p){_("runtime.init.site14",p)}t.injectedCompStyles=[];for(let d of t.injectedCompScripts)try{d.remove()}catch(p){_("runtime.init.site15",p)}t.injectedCompScripts=[],t.capturedTimeline=null,window.__hfRuntimeTeardown===mn&&(window.__hfRuntimeTeardown=null)}};window.__hfRuntimeTeardown=mn,t.beforeUnloadHandler=mn,window.addEventListener("beforeunload",t.beforeUnloadHandler)}var Co=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],ii=[[697,698,"ON"],[706,719,"ON"],[722,735,"ON"],[741,749,"ON"],[751,767,"ON"],[768,879,"NSM"],[884,885,"ON"],[894,894,"ON"],[900,901,"ON"],[903,903,"ON"],[1014,1014,"ON"],[1155,1161,"NSM"],[1418,1418,"ON"],[1421,1422,"ON"],[1423,1423,"ET"],[1424,1424,"R"],[1425,1469,"NSM"],[1470,1470,"R"],[1471,1471,"NSM"],[1472,1472,"R"],[1473,1474,"NSM"],[1475,1475,"R"],[1476,1477,"NSM"],[1478,1478,"R"],[1479,1479,"NSM"],[1480,1535,"R"],[1536,1541,"AN"],[1542,1543,"ON"],[1544,1544,"AL"],[1545,1546,"ET"],[1547,1547,"AL"],[1548,1548,"CS"],[1549,1549,"AL"],[1550,1551,"ON"],[1552,1562,"NSM"],[1563,1610,"AL"],[1611,1631,"NSM"],[1632,1641,"AN"],[1642,1642,"ET"],[1643,1644,"AN"],[1645,1647,"AL"],[1648,1648,"NSM"],[1649,1749,"AL"],[1750,1756,"NSM"],[1757,1757,"AN"],[1758,1758,"ON"],[1759,1764,"NSM"],[1765,1766,"AL"],[1767,1768,"NSM"],[1769,1769,"ON"],[1770,1773,"NSM"],[1774,1775,"AL"],[1776,1785,"EN"],[1786,1808,"AL"],[1809,1809,"NSM"],[1810,1839,"AL"],[1840,1866,"NSM"],[1867,1957,"AL"],[1958,1968,"NSM"],[1969,1983,"AL"],[1984,2026,"R"],[2027,2035,"NSM"],[2036,2037,"R"],[2038,2041,"ON"],[2042,2044,"R"],[2045,2045,"NSM"],[2046,2069,"R"],[2070,2073,"NSM"],[2074,2074,"R"],[2075,2083,"NSM"],[2084,2084,"R"],[2085,2087,"NSM"],[2088,2088,"R"],[2089,2093,"NSM"],[2094,2136,"R"],[2137,2139,"NSM"],[2140,2143,"R"],[2144,2191,"AL"],[2192,2193,"AN"],[2194,2198,"AL"],[2199,2207,"NSM"],[2208,2249,"AL"],[2250,2273,"NSM"],[2274,2274,"AN"],[2275,2306,"NSM"],[2362,2362,"NSM"],[2364,2364,"NSM"],[2369,2376,"NSM"],[2381,2381,"NSM"],[2385,2391,"NSM"],[2402,2403,"NSM"],[2433,2433,"NSM"],[2492,2492,"NSM"],[2497,2500,"NSM"],[2509,2509,"NSM"],[2530,2531,"NSM"],[2546,2547,"ET"],[2555,2555,"ET"],[2558,2558,"NSM"],[2561,2562,"NSM"],[2620,2620,"NSM"],[2625,2626,"NSM"],[2631,2632,"NSM"],[2635,2637,"NSM"],[2641,2641,"NSM"],[2672,2673,"NSM"],[2677,2677,"NSM"],[2689,2690,"NSM"],[2748,2748,"NSM"],[2753,2757,"NSM"],[2759,2760,"NSM"],[2765,2765,"NSM"],[2786,2787,"NSM"],[2801,2801,"ET"],[2810,2815,"NSM"],[2817,2817,"NSM"],[2876,2876,"NSM"],[2879,2879,"NSM"],[2881,2884,"NSM"],[2893,2893,"NSM"],[2901,2902,"NSM"],[2914,2915,"NSM"],[2946,2946,"NSM"],[3008,3008,"NSM"],[3021,3021,"NSM"],[3059,3064,"ON"],[3065,3065,"ET"],[3066,3066,"ON"],[3072,3072,"NSM"],[3076,3076,"NSM"],[3132,3132,"NSM"],[3134,3136,"NSM"],[3142,3144,"NSM"],[3146,3149,"NSM"],[3157,3158,"NSM"],[3170,3171,"NSM"],[3192,3198,"ON"],[3201,3201,"NSM"],[3260,3260,"NSM"],[3276,3277,"NSM"],[3298,3299,"NSM"],[3328,3329,"NSM"],[3387,3388,"NSM"],[3393,3396,"NSM"],[3405,3405,"NSM"],[3426,3427,"NSM"],[3457,3457,"NSM"],[3530,3530,"NSM"],[3538,3540,"NSM"],[3542,3542,"NSM"],[3633,3633,"NSM"],[3636,3642,"NSM"],[3647,3647,"ET"],[3655,3662,"NSM"],[3761,3761,"NSM"],[3764,3772,"NSM"],[3784,3790,"NSM"],[3864,3865,"NSM"],[3893,3893,"NSM"],[3895,3895,"NSM"],[3897,3897,"NSM"],[3898,3901,"ON"],[3953,3966,"NSM"],[3968,3972,"NSM"],[3974,3975,"NSM"],[3981,3991,"NSM"],[3993,4028,"NSM"],[4038,4038,"NSM"],[4141,4144,"NSM"],[4146,4151,"NSM"],[4153,4154,"NSM"],[4157,4158,"NSM"],[4184,4185,"NSM"],[4190,4192,"NSM"],[4209,4212,"NSM"],[4226,4226,"NSM"],[4229,4230,"NSM"],[4237,4237,"NSM"],[4253,4253,"NSM"],[4957,4959,"NSM"],[5008,5017,"ON"],[5120,5120,"ON"],[5760,5760,"WS"],[5787,5788,"ON"],[5906,5908,"NSM"],[5938,5939,"NSM"],[5970,5971,"NSM"],[6002,6003,"NSM"],[6068,6069,"NSM"],[6071,6077,"NSM"],[6086,6086,"NSM"],[6089,6099,"NSM"],[6107,6107,"ET"],[6109,6109,"NSM"],[6128,6137,"ON"],[6144,6154,"ON"],[6155,6157,"NSM"],[6158,6158,"BN"],[6159,6159,"NSM"],[6277,6278,"NSM"],[6313,6313,"NSM"],[6432,6434,"NSM"],[6439,6440,"NSM"],[6450,6450,"NSM"],[6457,6459,"NSM"],[6464,6464,"ON"],[6468,6469,"ON"],[6622,6655,"ON"],[6679,6680,"NSM"],[6683,6683,"NSM"],[6742,6742,"NSM"],[6744,6750,"NSM"],[6752,6752,"NSM"],[6754,6754,"NSM"],[6757,6764,"NSM"],[6771,6780,"NSM"],[6783,6783,"NSM"],[6832,6877,"NSM"],[6880,6891,"NSM"],[6912,6915,"NSM"],[6964,6964,"NSM"],[6966,6970,"NSM"],[6972,6972,"NSM"],[6978,6978,"NSM"],[7019,7027,"NSM"],[7040,7041,"NSM"],[7074,7077,"NSM"],[7080,7081,"NSM"],[7083,7085,"NSM"],[7142,7142,"NSM"],[7144,7145,"NSM"],[7149,7149,"NSM"],[7151,7153,"NSM"],[7212,7219,"NSM"],[7222,7223,"NSM"],[7376,7378,"NSM"],[7380,7392,"NSM"],[7394,7400,"NSM"],[7405,7405,"NSM"],[7412,7412,"NSM"],[7416,7417,"NSM"],[7616,7679,"NSM"],[8125,8125,"ON"],[8127,8129,"ON"],[8141,8143,"ON"],[8157,8159,"ON"],[8173,8175,"ON"],[8189,8190,"ON"],[8192,8202,"WS"],[8203,8205,"BN"],[8207,8207,"R"],[8208,8231,"ON"],[8232,8232,"WS"],[8233,8233,"B"],[8234,8238,"BN"],[8239,8239,"CS"],[8240,8244,"ET"],[8245,8259,"ON"],[8260,8260,"CS"],[8261,8286,"ON"],[8287,8287,"WS"],[8288,8303,"BN"],[8304,8304,"EN"],[8308,8313,"EN"],[8314,8315,"ES"],[8316,8318,"ON"],[8320,8329,"EN"],[8330,8331,"ES"],[8332,8334,"ON"],[8352,8399,"ET"],[8400,8432,"NSM"],[8448,8449,"ON"],[8451,8454,"ON"],[8456,8457,"ON"],[8468,8468,"ON"],[8470,8472,"ON"],[8478,8483,"ON"],[8485,8485,"ON"],[8487,8487,"ON"],[8489,8489,"ON"],[8494,8494,"ET"],[8506,8507,"ON"],[8512,8516,"ON"],[8522,8525,"ON"],[8528,8543,"ON"],[8585,8587,"ON"],[8592,8721,"ON"],[8722,8722,"ES"],[8723,8723,"ET"],[8724,9013,"ON"],[9083,9108,"ON"],[9110,9257,"ON"],[9280,9290,"ON"],[9312,9351,"ON"],[9352,9371,"EN"],[9450,9899,"ON"],[9901,10239,"ON"],[10496,11123,"ON"],[11126,11263,"ON"],[11493,11498,"ON"],[11503,11505,"NSM"],[11513,11519,"ON"],[11647,11647,"NSM"],[11744,11775,"NSM"],[11776,11869,"ON"],[11904,11929,"ON"],[11931,12019,"ON"],[12032,12245,"ON"],[12272,12287,"ON"],[12288,12288,"WS"],[12289,12292,"ON"],[12296,12320,"ON"],[12330,12333,"NSM"],[12336,12336,"ON"],[12342,12343,"ON"],[12349,12351,"ON"],[12441,12442,"NSM"],[12443,12444,"ON"],[12448,12448,"ON"],[12539,12539,"ON"],[12736,12773,"ON"],[12783,12783,"ON"],[12829,12830,"ON"],[12880,12895,"ON"],[12924,12926,"ON"],[12977,12991,"ON"],[13004,13007,"ON"],[13175,13178,"ON"],[13278,13279,"ON"],[13311,13311,"ON"],[19904,19967,"ON"],[42128,42182,"ON"],[42509,42511,"ON"],[42607,42610,"NSM"],[42611,42611,"ON"],[42612,42621,"NSM"],[42622,42623,"ON"],[42654,42655,"NSM"],[42736,42737,"NSM"],[42752,42785,"ON"],[42888,42888,"ON"],[43010,43010,"NSM"],[43014,43014,"NSM"],[43019,43019,"NSM"],[43045,43046,"NSM"],[43048,43051,"ON"],[43052,43052,"NSM"],[43064,43065,"ET"],[43124,43127,"ON"],[43204,43205,"NSM"],[43232,43249,"NSM"],[43263,43263,"NSM"],[43302,43309,"NSM"],[43335,43345,"NSM"],[43392,43394,"NSM"],[43443,43443,"NSM"],[43446,43449,"NSM"],[43452,43453,"NSM"],[43493,43493,"NSM"],[43561,43566,"NSM"],[43569,43570,"NSM"],[43573,43574,"NSM"],[43587,43587,"NSM"],[43596,43596,"NSM"],[43644,43644,"NSM"],[43696,43696,"NSM"],[43698,43700,"NSM"],[43703,43704,"NSM"],[43710,43711,"NSM"],[43713,43713,"NSM"],[43756,43757,"NSM"],[43766,43766,"NSM"],[43882,43883,"ON"],[44005,44005,"NSM"],[44008,44008,"NSM"],[44013,44013,"NSM"],[64285,64285,"R"],[64286,64286,"NSM"],[64287,64296,"R"],[64297,64297,"ES"],[64298,64335,"R"],[64336,64450,"AL"],[64451,64466,"ON"],[64467,64829,"AL"],[64830,64847,"ON"],[64848,64911,"AL"],[64912,64913,"ON"],[64914,64967,"AL"],[64968,64975,"ON"],[64976,65007,"BN"],[65008,65020,"AL"],[65021,65023,"ON"],[65024,65039,"NSM"],[65040,65049,"ON"],[65056,65071,"NSM"],[65072,65103,"ON"],[65104,65104,"CS"],[65105,65105,"ON"],[65106,65106,"CS"],[65108,65108,"ON"],[65109,65109,"CS"],[65110,65118,"ON"],[65119,65119,"ET"],[65120,65121,"ON"],[65122,65123,"ES"],[65124,65126,"ON"],[65128,65128,"ON"],[65129,65130,"ET"],[65131,65131,"ON"],[65136,65278,"AL"],[65279,65279,"BN"],[65281,65282,"ON"],[65283,65285,"ET"],[65286,65290,"ON"],[65291,65291,"ES"],[65292,65292,"CS"],[65293,65293,"ES"],[65294,65295,"CS"],[65296,65305,"EN"],[65306,65306,"CS"],[65307,65312,"ON"],[65339,65344,"ON"],[65371,65381,"ON"],[65504,65505,"ET"],[65506,65508,"ON"],[65509,65510,"ET"],[65512,65518,"ON"],[65520,65528,"BN"],[65529,65533,"ON"],[65534,65535,"BN"],[65793,65793,"ON"],[65856,65932,"ON"],[65936,65948,"ON"],[65952,65952,"ON"],[66045,66045,"NSM"],[66272,66272,"NSM"],[66273,66299,"EN"],[66422,66426,"NSM"],[67584,67870,"R"],[67871,67871,"ON"],[67872,68096,"R"],[68097,68099,"NSM"],[68100,68100,"R"],[68101,68102,"NSM"],[68103,68107,"R"],[68108,68111,"NSM"],[68112,68151,"R"],[68152,68154,"NSM"],[68155,68158,"R"],[68159,68159,"NSM"],[68160,68324,"R"],[68325,68326,"NSM"],[68327,68408,"R"],[68409,68415,"ON"],[68416,68863,"R"],[68864,68899,"AL"],[68900,68903,"NSM"],[68904,68911,"AL"],[68912,68921,"AN"],[68922,68927,"AL"],[68928,68937,"AN"],[68938,68968,"R"],[68969,68973,"NSM"],[68974,68974,"ON"],[68975,69215,"R"],[69216,69246,"AN"],[69247,69290,"R"],[69291,69292,"NSM"],[69293,69311,"R"],[69312,69327,"AL"],[69328,69336,"ON"],[69337,69369,"AL"],[69370,69375,"NSM"],[69376,69423,"R"],[69424,69445,"AL"],[69446,69456,"NSM"],[69457,69487,"AL"],[69488,69505,"R"],[69506,69509,"NSM"],[69510,69631,"R"],[69633,69633,"NSM"],[69688,69702,"NSM"],[69714,69733,"ON"],[69744,69744,"NSM"],[69747,69748,"NSM"],[69759,69761,"NSM"],[69811,69814,"NSM"],[69817,69818,"NSM"],[69826,69826,"NSM"],[69888,69890,"NSM"],[69927,69931,"NSM"],[69933,69940,"NSM"],[70003,70003,"NSM"],[70016,70017,"NSM"],[70070,70078,"NSM"],[70089,70092,"NSM"],[70095,70095,"NSM"],[70191,70193,"NSM"],[70196,70196,"NSM"],[70198,70199,"NSM"],[70206,70206,"NSM"],[70209,70209,"NSM"],[70367,70367,"NSM"],[70371,70378,"NSM"],[70400,70401,"NSM"],[70459,70460,"NSM"],[70464,70464,"NSM"],[70502,70508,"NSM"],[70512,70516,"NSM"],[70587,70592,"NSM"],[70606,70606,"NSM"],[70608,70608,"NSM"],[70610,70610,"NSM"],[70625,70626,"NSM"],[70712,70719,"NSM"],[70722,70724,"NSM"],[70726,70726,"NSM"],[70750,70750,"NSM"],[70835,70840,"NSM"],[70842,70842,"NSM"],[70847,70848,"NSM"],[70850,70851,"NSM"],[71090,71093,"NSM"],[71100,71101,"NSM"],[71103,71104,"NSM"],[71132,71133,"NSM"],[71219,71226,"NSM"],[71229,71229,"NSM"],[71231,71232,"NSM"],[71264,71276,"ON"],[71339,71339,"NSM"],[71341,71341,"NSM"],[71344,71349,"NSM"],[71351,71351,"NSM"],[71453,71453,"NSM"],[71455,71455,"NSM"],[71458,71461,"NSM"],[71463,71467,"NSM"],[71727,71735,"NSM"],[71737,71738,"NSM"],[71995,71996,"NSM"],[71998,71998,"NSM"],[72003,72003,"NSM"],[72148,72151,"NSM"],[72154,72155,"NSM"],[72160,72160,"NSM"],[72193,72198,"NSM"],[72201,72202,"NSM"],[72243,72248,"NSM"],[72251,72254,"NSM"],[72263,72263,"NSM"],[72273,72278,"NSM"],[72281,72283,"NSM"],[72330,72342,"NSM"],[72344,72345,"NSM"],[72544,72544,"NSM"],[72546,72548,"NSM"],[72550,72550,"NSM"],[72752,72758,"NSM"],[72760,72765,"NSM"],[72850,72871,"NSM"],[72874,72880,"NSM"],[72882,72883,"NSM"],[72885,72886,"NSM"],[73009,73014,"NSM"],[73018,73018,"NSM"],[73020,73021,"NSM"],[73023,73029,"NSM"],[73031,73031,"NSM"],[73104,73105,"NSM"],[73109,73109,"NSM"],[73111,73111,"NSM"],[73459,73460,"NSM"],[73472,73473,"NSM"],[73526,73530,"NSM"],[73536,73536,"NSM"],[73538,73538,"NSM"],[73562,73562,"NSM"],[73685,73692,"ON"],[73693,73696,"ET"],[73697,73713,"ON"],[78912,78912,"NSM"],[78919,78933,"NSM"],[90398,90409,"NSM"],[90413,90415,"NSM"],[92912,92916,"NSM"],[92976,92982,"NSM"],[94031,94031,"NSM"],[94095,94098,"NSM"],[94178,94178,"ON"],[94180,94180,"NSM"],[113821,113822,"NSM"],[113824,113827,"BN"],[117760,117973,"ON"],[118e3,118009,"EN"],[118010,118012,"ON"],[118016,118451,"ON"],[118458,118480,"ON"],[118496,118512,"ON"],[118528,118573,"NSM"],[118576,118598,"NSM"],[119143,119145,"NSM"],[119155,119162,"BN"],[119163,119170,"NSM"],[119173,119179,"NSM"],[119210,119213,"NSM"],[119273,119274,"ON"],[119296,119361,"ON"],[119362,119364,"NSM"],[119365,119365,"ON"],[119552,119638,"ON"],[120513,120513,"ON"],[120539,120539,"ON"],[120571,120571,"ON"],[120597,120597,"ON"],[120629,120629,"ON"],[120655,120655,"ON"],[120687,120687,"ON"],[120713,120713,"ON"],[120745,120745,"ON"],[120771,120771,"ON"],[120782,120831,"EN"],[121344,121398,"NSM"],[121403,121452,"NSM"],[121461,121461,"NSM"],[121476,121476,"NSM"],[121499,121503,"NSM"],[121505,121519,"NSM"],[122880,122886,"NSM"],[122888,122904,"NSM"],[122907,122913,"NSM"],[122915,122916,"NSM"],[122918,122922,"NSM"],[123023,123023,"NSM"],[123184,123190,"NSM"],[123566,123566,"NSM"],[123628,123631,"NSM"],[123647,123647,"ET"],[124140,124143,"NSM"],[124398,124399,"NSM"],[124643,124643,"NSM"],[124646,124646,"NSM"],[124654,124655,"NSM"],[124661,124661,"NSM"],[124928,125135,"R"],[125136,125142,"NSM"],[125143,125251,"R"],[125252,125258,"NSM"],[125259,126063,"R"],[126064,126143,"AL"],[126144,126207,"R"],[126208,126287,"AL"],[126288,126463,"R"],[126464,126703,"AL"],[126704,126705,"ON"],[126706,126719,"AL"],[126720,126975,"R"],[126976,127019,"ON"],[127024,127123,"ON"],[127136,127150,"ON"],[127153,127167,"ON"],[127169,127183,"ON"],[127185,127221,"ON"],[127232,127242,"EN"],[127243,127247,"ON"],[127279,127279,"ON"],[127338,127343,"ON"],[127405,127405,"ON"],[127584,127589,"ON"],[127744,128728,"ON"],[128732,128748,"ON"],[128752,128764,"ON"],[128768,128985,"ON"],[128992,129003,"ON"],[129008,129008,"ON"],[129024,129035,"ON"],[129040,129095,"ON"],[129104,129113,"ON"],[129120,129159,"ON"],[129168,129197,"ON"],[129200,129211,"ON"],[129216,129217,"ON"],[129232,129240,"ON"],[129280,129623,"ON"],[129632,129645,"ON"],[129648,129660,"ON"],[129664,129674,"ON"],[129678,129734,"ON"],[129736,129736,"ON"],[129741,129756,"ON"],[129759,129770,"ON"],[129775,129784,"ON"],[129792,129938,"ON"],[129940,130031,"ON"],[130032,130041,"EN"],[130042,130042,"ON"],[131070,131071,"BN"],[196606,196607,"BN"],[262142,262143,"BN"],[327678,327679,"BN"],[393214,393215,"BN"],[458750,458751,"BN"],[524286,524287,"BN"],[589822,589823,"BN"],[655358,655359,"BN"],[720894,720895,"BN"],[786430,786431,"BN"],[851966,851967,"BN"],[917502,917759,"BN"],[917760,917999,"NSM"],[918e3,921599,"BN"],[983038,983039,"BN"],[1048574,1048575,"BN"],[1114110,1114111,"BN"]];function Al(t){if(t<=255)return Co[t];let e=0,n=ii.length-1;for(;e<=n;){let i=e+n>>1,r=ii[i];if(t<r[0]){n=i-1;continue}if(t>r[1]){e=i+1;continue}return r[2]}return"L"}function El(t){let e=t.length;if(e===0)return null;let n=new Array(e),i=!1;for(let c=0;c<e;){let u=t.charCodeAt(c),m=u,f=1;if(u>=55296&&u<=56319&&c+1<e){let F=t.charCodeAt(c+1);F>=56320&&F<=57343&&(m=(u-55296<<10)+(F-56320)+65536,f=2)}let x=Al(m);(x==="R"||x==="AL"||x==="AN")&&(i=!0);for(let F=0;F<f;F++)n[c+F]=x;c+=f}if(!i)return null;let r=0;for(let c=0;c<e;c++){let u=n[c];if(u==="L"){r=0;break}if(u==="R"||u==="AL"){r=1;break}}let o=new Int8Array(e);for(let c=0;c<e;c++)o[c]=r;let s=r&1?"R":"L",l=s,a=l;for(let c=0;c<e;c++)n[c]==="NSM"?n[c]=a:a=n[c];a=l;for(let c=0;c<e;c++){let u=n[c];u==="EN"?n[c]=a==="AL"?"AN":"EN":(u==="R"||u==="L"||u==="AL")&&(a=u)}for(let c=0;c<e;c++)n[c]==="AL"&&(n[c]="R");for(let c=1;c<e-1;c++)n[c]==="ES"&&n[c-1]==="EN"&&n[c+1]==="EN"&&(n[c]="EN"),n[c]==="CS"&&(n[c-1]==="EN"||n[c-1]==="AN")&&n[c+1]===n[c-1]&&(n[c]=n[c-1]);for(let c=0;c<e;c++){if(n[c]!=="EN")continue;let u;for(u=c-1;u>=0&&n[u]==="ET";u--)n[u]="EN";for(u=c+1;u<e&&n[u]==="ET";u++)n[u]="EN"}for(let c=0;c<e;c++){let u=n[c];(u==="WS"||u==="ES"||u==="ET"||u==="CS")&&(n[c]="ON")}a=l;for(let c=0;c<e;c++){let u=n[c];u==="EN"?n[c]=a==="L"?"L":"EN":(u==="R"||u==="L")&&(a=u)}for(let c=0;c<e;c++){if(n[c]!=="ON")continue;let u=c+1;for(;u<e&&n[u]==="ON";)u++;let m=c>0?n[c-1]:l,f=u<e?n[u]:l,x=m!=="L"?"R":"L";if(x===(f!=="L"?"R":"L"))for(let E=c;E<u;E++)n[E]=x;c=u-1}for(let c=0;c<e;c++)n[c]==="ON"&&(n[c]=s);for(let c=0;c<e;c++){let u=n[c];(o[c]&1)===0?u==="R"?o[c]++:(u==="AN"||u==="EN")&&(o[c]+=2):(u==="L"||u==="AN"||u==="EN")&&o[c]++}return o}function Mo(t,e){let n=El(t);if(n===null)return null;let i=new Int8Array(e.length);for(let r=0;r<e.length;r++)i[r]=n[e[r]];return i}var Fl=/[ \\t\\n\\r\\f]+/g,wl=/[\\t\\n\\r\\f]| {2,}|^ | $/;function Nl(t){let e=t??"normal";return e==="pre-wrap"?{mode:e,preserveOrdinarySpaces:!0,preserveHardBreaks:!0}:{mode:e,preserveOrdinarySpaces:!1,preserveHardBreaks:!1}}function Cl(t){if(!wl.test(t))return t;let e=t.replace(Fl," ");return e.charCodeAt(0)===32&&(e=e.slice(1)),e.length>0&&e.charCodeAt(e.length-1)===32&&(e=e.slice(0,-1)),e}function Ml(t){return/[\\r\\f]/.test(t)?t.replace(/\\r\\n/g,`\n`).replace(/[\\r\\f]/g,`\n`):t.replace(/\\r\\n/g,`\n`)}var ri=null,Tl;function kl(){return ri===null&&(ri=new Intl.Segmenter(Tl,{granularity:"word"})),ri}var vl=/\\p{Script=Arabic}/u,sn=/\\p{M}/u,Bo=/\\p{Nd}/u;function To(t){return vl.test(t)}function ko(t){return t>=19968&&t<=40959||t>=13312&&t<=19903||t>=131072&&t<=173791||t>=173824&&t<=177983||t>=177984&&t<=178207||t>=178208&&t<=183983||t>=183984&&t<=191471||t>=191472&&t<=192093||t>=194560&&t<=195103||t>=196608&&t<=201551||t>=201552&&t<=205743||t>=205744&&t<=210041||t>=63744&&t<=64255||t>=12288&&t<=12351||t>=12352&&t<=12447||t>=12448&&t<=12543||t>=44032&&t<=55215||t>=65280&&t<=65519}function Re(t){for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);if(!(n<12288)){if(n>=55296&&n<=56319&&e+1<t.length){let i=t.charCodeAt(e+1);if(i>=56320&&i<=57343){let r=(n-55296<<10)+(i-56320)+65536;if(ko(r))return!0;e++;continue}}if(ko(n))return!0}}return!1}function _l(t){let e=un(t);return e!==null&&(ln.has(e)||ze.has(e))}var Rl=new Set(["\\xA0","\\u202F","\\u2060","\\uFEFF"]);function Ll(t){return Re(t)}function Dl(t){let e=un(t);return e!==null&&Rl.has(e)}function an(t){return!_l(t)&&!Dl(t)}var ln=new Set(["\\uFF0C","\\uFF0E","\\uFF01","\\uFF1A","\\uFF1B","\\uFF1F","\\u3001","\\u3002","\\u30FB","\\uFF09","\\u3015","\\u3009","\\u300B","\\u300D","\\u300F","\\u3011","\\u3017","\\u3019","\\u301B","\\u30FC","\\u3005","\\u303B","\\u309D","\\u309E","\\u30FD","\\u30FE"]),Ot=new Set([\'"\',"(","[","{","\\u201C","\\u2018","\\xAB","\\u2039","\\uFF08","\\u3014","\\u3008","\\u300A","\\u300C","\\u300E","\\u3010","\\u3016","\\u3018","\\u301A"]),si=new Set(["\'","\\u2019"]),ze=new Set([".",",","!","?",":",";","\\u060C","\\u061B","\\u061F","\\u0964","\\u0965","\\u104A","\\u104B","\\u104C","\\u104D","\\u104F",")","]","}","%",\'"\',"\\u201D","\\u2019","\\xBB","\\u203A","\\u2026"]),Bl=new Set([":",".","\\u060C","\\u061B"]),Il=new Set(["\\u104F"]),Ol=new Set(["\\u201D","\\u2019","\\xBB","\\u203A","\\u300D","\\u300F","\\u3011","\\u300B","\\u3009","\\u3015","\\uFF09"]);function Pl(t){if(ai(t))return!0;let e=!1;for(let n of t){if(ze.has(n)){e=!0;continue}if(!(e&&sn.test(n)))return!1}return e}function Wl(t){for(let e of t)if(!ln.has(e)&&!ze.has(e))return!1;return t.length>0}function Hl(t){if(ai(t))return!0;for(let e of t)if(!Ot.has(e)&&!si.has(e)&&!sn.test(e))return!1;return t.length>0}function ai(t){let e=!1;for(let n of t)if(!(n==="\\\\"||sn.test(n))){if(Ot.has(n)||ze.has(n)||si.has(n)){e=!0;continue}return!1}return e}function Io(t,e){let n=e-1;if(n<=0)return Math.max(n,0);let i=t.charCodeAt(n);if(i<56320||i>57343)return n;let r=n-1;if(r<0)return n;let o=t.charCodeAt(r);return o>=55296&&o<=56319?r:n}function un(t){if(t.length===0)return null;let e=Io(t,t.length);return t.slice(e)}function ql(t){let e=Array.from(t),n=e.length;for(;n>0;){let i=e[n-1];if(sn.test(i)){n--;continue}if(Ot.has(i)||si.has(i)){n--;continue}break}return n<=0||n===e.length?null:{head:e.slice(0,n).join(""),tail:e.slice(n).join("")}}function Vl(t,e,n){return n==="text"&&!e&&t.length===1&&t!=="-"&&t!=="\\u2014"?t:null}function vo(t,e,n,i){let r=e[i],o=t[i];if(r==null)return o;let s=n[i];if(o.length===s)return o;let l=r.repeat(s);return t[i]=l,l}function _o(t,e){return t&&e!==null&&Bl.has(e)}function Ul(t){let e=un(t);return e!==null&&Il.has(e)}function zl(t){if(t.length<2||t[0]!==" ")return null;let e=t.slice(1);return/^\\p{M}+$/u.test(e)?{space:" ",marks:e}:null}function cn(t){let e=t.length;for(;e>0;){let n=Io(t,e),i=t.slice(n,e);if(Ol.has(i))return!0;if(!ze.has(i))return!1;e=n}return!1}function jl(t,e){if(e.preserveOrdinarySpaces||e.preserveHardBreaks){if(t===" ")return"preserved-space";if(t===" ")return"tab";if(e.preserveHardBreaks&&t===`\n`)return"hard-break"}return t===" "?"space":t==="\\xA0"||t==="\\u202F"||t==="\\u2060"||t==="\\uFEFF"?"glue":t==="\\u200B"?"zero-width-break":t==="\\xAD"?"soft-hyphen":"text"}var $l=/[\\x20\\t\\n\\xA0\\xAD\\u200B\\u202F\\u2060\\uFEFF]/;function Te(t){return t.length===1?t[0]:t.join("")}function Gl(t,e){let n=[];for(let i=t.length-1;i>=0;i--)n.push(t[i]);return n.push(e),Te(n)}function Kl(t,e,n,i){if(!$l.test(t))return[{text:t,isWordLike:e,kind:"text",start:n}];let r=[],o=null,s=[],l=n,a=!1,c=0;for(let u of t){let m=jl(u,i),f=m==="text"&&e;if(o!==null&&m===o&&f===a){s.push(u),c+=u.length;continue}o!==null&&r.push({text:Te(s),isWordLike:a,kind:o,start:l}),o=m,s=[u],l=n+c,a=f,c+=u.length}return o!==null&&r.push({text:Te(s),isWordLike:a,kind:o,start:l}),r}function oi(t){return t==="space"||t==="preserved-space"||t==="zero-width-break"||t==="hard-break"}var Jl=/^[A-Za-z][A-Za-z0-9+.-]*:$/;function Ql(t,e){let n=t.texts[e];return n.startsWith("www.")?!0:Jl.test(n)&&e+1<t.len&&t.kinds[e+1]==="text"&&t.texts[e+1]==="//"}function Yl(t){return t.includes("?")&&(t.includes("://")||t.startsWith("www."))}function Zl(t){let e=t.texts.slice(),n=t.isWordLike.slice(),i=t.kinds.slice(),r=t.starts.slice();for(let s=0;s<t.len;s++){if(i[s]!=="text"||!Ql(t,s))continue;let l=[e[s]],a=s+1;for(;a<t.len&&!oi(i[a]);){l.push(e[a]),n[s]=!0;let c=e[a].includes("?");if(i[a]="text",e[a]="",a++,c)break}e[s]=Te(l)}let o=0;for(let s=0;s<e.length;s++){let l=e[s];l.length!==0&&(o!==s&&(e[o]=l,n[o]=n[s],i[o]=i[s],r[o]=r[s]),o++)}return e.length=o,n.length=o,i.length=o,r.length=o,{len:o,texts:e,isWordLike:n,kinds:i,starts:r}}function Xl(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o];if(e.push(s),n.push(t.isWordLike[o]),i.push(t.kinds[o]),r.push(t.starts[o]),!Yl(s))continue;let l=o+1;if(l>=t.len||oi(t.kinds[l]))continue;let a=[],c=t.starts[l],u=l;for(;u<t.len&&!oi(t.kinds[u]);)a.push(t.texts[u]),u++;a.length>0&&(e.push(Te(a)),n.push(!0),i.push("text"),r.push(c),o=u-1)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}var eu=new Set([":","-","/","\\xD7",",",".","+","\\u2013","\\u2014"]),Ro=/^[A-Za-z0-9_]+[,:;]*$/,Lo=/[,:;]+$/;function Oo(t){for(let e of t)if(Bo.test(e))return!0;return!1}function It(t){if(t.length===0)return!1;for(let e of t)if(!(Bo.test(e)||eu.has(e)))return!1;return!0}function tu(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o],l=t.kinds[o];if(l==="text"&&It(s)&&Oo(s)){let a=[s],c=o+1;for(;c<t.len&&t.kinds[c]==="text"&&It(t.texts[c]);)a.push(t.texts[c]),c++;e.push(Te(a)),n.push(!0),i.push("text"),r.push(t.starts[o]),o=c-1;continue}e.push(s),n.push(t.isWordLike[o]),i.push(l),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function nu(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o],l=t.kinds[o],a=t.isWordLike[o];if(l==="text"&&a&&Ro.test(s)){let c=[s],u=Lo.test(s),m=o+1;for(;u&&m<t.len&&t.kinds[m]==="text"&&t.isWordLike[m]&&Ro.test(t.texts[m]);){let f=t.texts[m];c.push(f),u=Lo.test(f),m++}e.push(Te(c)),n.push(!0),i.push("text"),r.push(t.starts[o]),o=m-1;continue}e.push(s),n.push(a),i.push(l),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function iu(t){let e=[],n=[],i=[],r=[];for(let o=0;o<t.len;o++){let s=t.texts[o];if(t.kinds[o]==="text"&&s.includes("-")){let l=s.split("-"),a=l.length>1;for(let c=0;c<l.length;c++){let u=l[c];if(!a)break;(u.length===0||!Oo(u)||!It(u))&&(a=!1)}if(a){let c=0;for(let u=0;u<l.length;u++){let m=l[u],f=u<l.length-1?`${m}-`:m;e.push(f),n.push(!0),i.push("text"),r.push(t.starts[o]+c),c+=f.length}continue}}e.push(s),n.push(t.isWordLike[o]),i.push(t.kinds[o]),r.push(t.starts[o])}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function ru(t){let e=[],n=[],i=[],r=[],o=0;for(;o<t.len;){let s=[t.texts[o]],l=t.isWordLike[o],a=t.kinds[o],c=t.starts[o];if(a==="glue"){let u=[s[0]],m=c;for(o++;o<t.len&&t.kinds[o]==="glue";)u.push(t.texts[o]),o++;let f=Te(u);if(o<t.len&&t.kinds[o]==="text")s[0]=f,s.push(t.texts[o]),l=t.isWordLike[o],a="text",c=m,o++;else{e.push(f),n.push(!1),i.push("glue"),r.push(m);continue}}else o++;if(a==="text")for(;o<t.len&&t.kinds[o]==="glue";){let u=[];for(;o<t.len&&t.kinds[o]==="glue";)u.push(t.texts[o]),o++;let m=Te(u);if(o<t.len&&t.kinds[o]==="text"){s.push(m,t.texts[o]),l=l||t.isWordLike[o],o++;continue}s.push(m)}e.push(Te(s)),n.push(l),i.push(a),r.push(c)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function ou(t){let e=t.texts.slice(),n=t.isWordLike.slice(),i=t.kinds.slice(),r=t.starts.slice();for(let o=0;o<e.length-1;o++){if(i[o]!=="text"||i[o+1]!=="text"||!Re(e[o])||!Re(e[o+1]))continue;let s=ql(e[o]);s!==null&&(e[o]=s.head,e[o+1]=s.tail+e[o+1],r[o+1]=r[o]+s.head.length)}return{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Do(t,e,n){let i=kl(),r=0,o=[],s=[],l=[],a=[],c=[],u=[],m=[],f=[],x=[],F=[],E=[],S=[];for(let C of i.segment(t))for(let g of Kl(C.segment,C.isWordLike??!1,C.index,n)){let ue=function(){u[R]!==null&&(s[R]=[vo(o,u,m,R)],u[R]=null),s[R].push(g.text),l[R]=l[R]||g.isWordLike,f[R]=f[R]||w,x[R]=x[R]||T,F[R]=P,E[R]=J,S[R]=_o(x[R],L)},A=g.kind==="text",N=Vl(g.text,g.isWordLike,g.kind),w=Re(g.text),T=To(g.text),L=un(g.text),P=cn(g.text),J=Ul(g.text),R=r-1;e.carryCJKAfterClosingQuote&&A&&r>0&&a[R]==="text"&&w&&f[R]&&F[R]||A&&r>0&&a[R]==="text"&&Wl(g.text)&&f[R]||A&&r>0&&a[R]==="text"&&E[R]?ue():A&&r>0&&a[R]==="text"&&g.isWordLike&&T&&S[R]?(ue(),l[R]=!0):N!==null&&r>0&&a[R]==="text"&&u[R]===N?m[R]=(m[R]??1)+1:A&&!g.isWordLike&&r>0&&a[R]==="text"&&(Pl(g.text)||g.text==="-"&&l[R])?ue():(o[r]=g.text,s[r]=[g.text],l[r]=g.isWordLike,a[r]=g.kind,c[r]=g.start,u[r]=N,m[r]=N===null?0:1,f[r]=w,x[r]=T,F[r]=P,E[r]=J,S[r]=_o(T,L),r++)}for(let C=0;C<r;C++){if(u[C]!==null){o[C]=vo(o,u,m,C);continue}o[C]=Te(s[C])}for(let C=1;C<r;C++)a[C]==="text"&&!l[C]&&ai(o[C])&&a[C-1]==="text"&&(o[C-1]+=o[C],l[C-1]=l[C-1]||l[C],o[C]="");let B=Array.from({length:r},()=>null),D=-1;for(let C=r-1;C>=0;C--){let g=o[C];if(g.length!==0){if(a[C]==="text"&&!l[C]&&Hl(g)&&D>=0&&a[D]==="text"){let A=B[D]??[];A.push(g),B[D]=A,c[D]=c[C],o[C]="";continue}D=C}}for(let C=0;C<r;C++){let g=B[C];g!=null&&(o[C]=Gl(g,o[C]))}let v=0;for(let C=0;C<r;C++){let g=o[C];g.length!==0&&(v!==C&&(o[v]=g,l[v]=l[C],a[v]=a[C],c[v]=c[C]),v++)}o.length=v,l.length=v,a.length=v,c.length=v;let te=ru({len:v,texts:o,isWordLike:l,kinds:a,starts:c}),q=ou(nu(iu(tu(Xl(Zl(te))))));for(let C=0;C<q.len-1;C++){let g=zl(q.texts[C]);g!==null&&(q.kinds[C]!=="space"&&q.kinds[C]!=="preserved-space"||q.kinds[C+1]!=="text"||!To(q.texts[C+1])||(q.texts[C]=g.space,q.isWordLike[C]=!1,q.kinds[C]=q.kinds[C]==="preserved-space"?"preserved-space":"space",q.texts[C+1]=g.marks+q.texts[C+1],q.starts[C+1]=q.starts[C]+g.space.length))}return q}function su(t,e){if(t.len===0)return[];if(!e.preserveHardBreaks)return[{startSegmentIndex:0,endSegmentIndex:t.len,consumedEndSegmentIndex:t.len}];let n=[],i=0;for(let r=0;r<t.len;r++)t.kinds[r]==="hard-break"&&(n.push({startSegmentIndex:i,endSegmentIndex:r,consumedEndSegmentIndex:r+1}),i=r+1);return i<t.len&&n.push({startSegmentIndex:i,endSegmentIndex:t.len,consumedEndSegmentIndex:t.len}),n}function au(t){if(t.len<=1)return t;let e=[],n=[],i=[],r=[],o=null,s=!1,l=0,a=!1,c=!1;function u(){o!==null&&(e.push(Te(o)),n.push(s),i.push("text"),r.push(l),o=null)}for(let m=0;m<t.len;m++){let f=t.texts[m],x=t.kinds[m],F=t.isWordLike[m],E=t.starts[m];if(x==="text"){let S=Ll(f),B=an(f);if(o!==null&&a&&c){o.push(f),s=s||F,a=a||S,c=B;continue}u(),o=[f],s=F,l=E,a=S,c=B;continue}u(),e.push(f),n.push(F),i.push(x),r.push(E)}return u(),{len:e.length,texts:e,isWordLike:n,kinds:i,starts:r}}function Po(t,e,n="normal",i="normal"){let r=Nl(n),o=r.mode==="pre-wrap"?Ml(t):Cl(t);if(o.length===0)return{normalized:o,chunks:[],len:0,texts:[],isWordLike:[],kinds:[],starts:[]};let s=i==="keep-all"?au(Do(o,e,r)):Do(o,e,r);return{normalized:o,chunks:su(s,r),...s}}var at=null,Wo=new Map,lt=null,lu=96,uu=/\\p{Emoji_Presentation}/u,cu=/[\\p{Emoji_Presentation}\\p{Extended_Pictographic}\\p{Regional_Indicator}\\uFE0F\\u20E3]/u,li=null,Ho=new Map;function ui(){if(at!==null)return at;if(typeof OffscreenCanvas<"u")return at=new OffscreenCanvas(1,1).getContext("2d"),at;if(typeof document<"u")return at=document.createElement("canvas").getContext("2d"),at;throw new Error("Text measurement requires OffscreenCanvas or a DOM canvas context.")}function du(t){let e=Wo.get(t);return e||(e=new Map,Wo.set(t,e)),e}function Pe(t,e){let n=e.get(t);return n===void 0&&(n={width:ui().measureText(t).width,containsCJK:Re(t)},e.set(t,n)),n}function ut(){if(lt!==null)return lt;if(typeof navigator>"u")return lt={lineFitEpsilon:.005,carryCJKAfterClosingQuote:!1,preferPrefixWidthsForBreakableRuns:!1,preferEarlySoftHyphenBreak:!1},lt;let t=navigator.userAgent,n=navigator.vendor==="Apple Computer, Inc."&&t.includes("Safari/")&&!t.includes("Chrome/")&&!t.includes("Chromium/")&&!t.includes("CriOS/")&&!t.includes("FxiOS/")&&!t.includes("EdgiOS/"),i=t.includes("Chrome/")||t.includes("Chromium/")||t.includes("CriOS/")||t.includes("Edg/");return lt={lineFitEpsilon:n?1/64:.005,carryCJKAfterClosingQuote:i,preferPrefixWidthsForBreakableRuns:n,preferEarlySoftHyphenBreak:n},lt}function fu(t){let e=t.match(/(\\d+(?:\\.\\d+)?)\\s*px/);return e?parseFloat(e[1]):16}function qo(){return li===null&&(li=new Intl.Segmenter(void 0,{granularity:"grapheme"})),li}function mu(t){return uu.test(t)||t.includes("\\uFE0F")}function Vo(t){return cu.test(t)}function pu(t,e){let n=Ho.get(t);if(n!==void 0)return n;let i=ui();i.font=t;let r=i.measureText("\\u{1F600}").width;if(n=0,r>e+.5&&typeof document<"u"&&document.body!==null){let o=document.createElement("span");o.style.font=t,o.style.display="inline-block",o.style.visibility="hidden",o.style.position="absolute",o.textContent="\\u{1F600}",document.body.appendChild(o);let s=o.getBoundingClientRect().width;document.body.removeChild(o),r-s>.5&&(n=r-s)}return Ho.set(t,n),n}function hu(t){let e=0,n=qo();for(let i of n.segment(t))mu(i.segment)&&e++;return e}function xu(t,e){return e.emojiCount===void 0&&(e.emojiCount=hu(t)),e.emojiCount}function je(t,e,n){return n===0?e.width:e.width-xu(t,e)*n}function Uo(t,e,n,i,r){if(e.breakableFitAdvances!==void 0)return e.breakableFitAdvances;let o=qo(),s=[];for(let u of o.segment(t))s.push(u.segment);if(s.length<=1)return e.breakableFitAdvances=null,e.breakableFitAdvances;if(r==="sum-graphemes"){let u=[];for(let m of s){let f=Pe(m,n);u.push(je(m,f,i))}return e.breakableFitAdvances=u,e.breakableFitAdvances}if(r==="pair-context"||s.length>lu){let u=[],m=null,f=0;for(let x of s){let F=Pe(x,n),E=je(x,F,i);if(m===null)u.push(E);else{let S=m+x,B=Pe(S,n);u.push(je(S,B,i)-f)}m=x,f=E}return e.breakableFitAdvances=u,e.breakableFitAdvances}let l=[],a="",c=0;for(let u of s){a+=u;let m=Pe(a,n),f=je(a,m,i);l.push(f-c),c=f}return e.breakableFitAdvances=l,e.breakableFitAdvances}function zo(t,e){let n=ui();n.font=t;let i=du(t),r=fu(t),o=e?pu(t,r):0;return{cache:i,fontSize:r,emojiCorrection:o}}function gu(t,e){for(;e<t.widths.length;){let n=t.kinds[e];if(n!=="space"&&n!=="zero-width-break"&&n!=="soft-hyphen")break;e++}return e}function yu(t,e){if(e<=0)return 0;let n=t%e;return Math.abs(n)<=1e-6?e:e-n}function Su(t,e,n,i,r){let o=0,s=e;for(;o<t.length;){let l=s+t[o];if((o+1<t.length?l+r:l)>n+i)break;s=l,o++}return{fitCount:o,fittedWidth:s}}function jo(t,e){return t.simpleLineWalkFastPath?$o(t,e):Go(t,e)}function $o(t,e,n){let{widths:i,kinds:r,breakableFitAdvances:o}=t;if(i.length===0)return 0;let l=ut().lineFitEpsilon,a=e+l,c=0,u=0,m=!1,f=0,x=0,F=0,E=0,S=-1,B=0;function D(){S=-1,B=0}function v(N=F,w=E,T=u){c++,n?.({startSegmentIndex:f,startGraphemeIndex:x,endSegmentIndex:N,endGraphemeIndex:w,width:T}),u=0,m=!1,D()}function te(N,w){m=!0,f=N,x=0,F=N+1,E=0,u=w}function q(N,w,T){m=!0,f=N,x=w,F=N,E=w+1,u=T}function C(N,w){if(!m){te(N,w);return}u+=w,F=N+1,E=0}function g(N,w){let T=o[N];for(let L=w;L<T.length;L++){let P=T[L];m?u+P>a?(v(),q(N,L,P)):(u+=P,F=N,E=L+1):q(N,L,P)}m&&F===N&&E===T.length&&(F=N+1,E=0)}let A=0;for(;A<i.length&&!(!m&&(A=gu(t,A),A>=i.length));){let N=i[A],w=r[A],T=w==="space"||w==="preserved-space"||w==="tab"||w==="zero-width-break"||w==="soft-hyphen";if(!m){N>e&&o[A]!==null?g(A,0):te(A,N),T&&(S=A+1,B=u-N),A++;continue}if(u+N>a){if(T){C(A,N),v(A+1,0,u-N),A++;continue}if(S>=0){if(F>S||F===S&&E>0){v();continue}v(S,0,B);continue}if(N>e&&o[A]!==null){v(),g(A,0),A++;continue}v();continue}C(A,N),T&&(S=A+1,B=u-N),A++}return m&&v(),c}function Go(t,e,n){if(t.simpleLineWalkFastPath)return $o(t,e,n);let{widths:i,lineEndFitAdvances:r,lineEndPaintAdvances:o,kinds:s,breakableFitAdvances:l,discretionaryHyphenWidth:a,tabStopAdvance:c,chunks:u}=t;if(i.length===0||u.length===0)return 0;let m=ut(),f=m.lineFitEpsilon,x=e+f,F=0,E=0,S=!1,B=0,D=0,v=0,te=0,q=-1,C=0,g=0,A=null;function N(){q=-1,C=0,g=0,A=null}function w(G=v,U=te,W=E){F++,n?.({startSegmentIndex:B,startGraphemeIndex:D,endSegmentIndex:G,endGraphemeIndex:U,width:W}),E=0,S=!1,N()}function T(G,U){S=!0,B=G,D=0,v=G+1,te=0,E=U}function L(G,U,W){S=!0,B=G,D=U,v=G,te=U+1,E=W}function P(G,U){if(!S){T(G,U);return}E+=U,v=G+1,te=0}function J(G,U,W,Z){if(!U)return;let pe=G==="tab"?0:r[W],Fe=G==="tab"?Z:o[W];q=W+1,C=E-Z+pe,g=E-Z+Fe,A=G}function R(G,U){let W=l[G];for(let Z=U;Z<W.length;Z++){let pe=W[Z];S?E+pe>x?(w(),L(G,Z,pe)):(E+=pe,v=G,te=Z+1):L(G,Z,pe)}S&&v===G&&te===W.length&&(v=G+1,te=0)}function ue(G){if(A!=="soft-hyphen")return!1;let U=l[G];if(U==null)return!1;let{fitCount:W,fittedWidth:Z}=Su(U,E,e,f,a);return W===0?!1:(E=Z,v=G,te=W,N(),W===U.length?(v=G+1,te=0,!0):(w(G,W,Z+a),R(G,W),!0))}function Se(G){F++,n?.({startSegmentIndex:G.startSegmentIndex,startGraphemeIndex:0,endSegmentIndex:G.consumedEndSegmentIndex,endGraphemeIndex:0,width:0}),N()}for(let G=0;G<u.length;G++){let U=u[G];if(U.startSegmentIndex===U.endSegmentIndex){Se(U);continue}S=!1,E=0,B=U.startSegmentIndex,D=0,v=U.startSegmentIndex,te=0,N();let W=U.startSegmentIndex;for(;W<U.endSegmentIndex;){let Z=s[W],pe=Z==="space"||Z==="preserved-space"||Z==="tab"||Z==="zero-width-break"||Z==="soft-hyphen",Fe=Z==="tab"?yu(E,c):i[W];if(Z==="soft-hyphen"){S&&(v=W+1,te=0,q=W+1,C=E+a,g=E+a,A=Z),W++;continue}if(!S){Fe>e&&l[W]!==null?R(W,0):T(W,Fe),J(Z,pe,W,Fe),W++;continue}if(E+Fe>x){let k=E+(Z==="tab"?0:r[W]),O=E+(Z==="tab"?Fe:o[W]);if(A==="soft-hyphen"&&m.preferEarlySoftHyphenBreak&&C<=x){w(q,0,g);continue}if(A==="soft-hyphen"&&ue(W)){W++;continue}if(pe&&k<=x){P(W,Fe),w(W+1,0,O),W++;continue}if(q>=0&&C<=x){if(v>q||v===q&&te>0){w();continue}let ie=q;w(ie,0,g),W=ie;continue}if(Fe>e&&l[W]!==null){w(),R(W,0),W++;continue}w();continue}P(W,Fe),J(Z,pe,W,Fe),W++}if(S){let Z=q===U.consumedEndSegmentIndex?g:E;w(U.consumedEndSegmentIndex,0,Z)}}return F}var ci=null;function bu(){return ci===null&&(ci=new Intl.Segmenter(void 0,{granularity:"grapheme"})),ci}function Au(t){return t?{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[],segments:[]}:{widths:[],lineEndFitAdvances:[],lineEndPaintAdvances:[],kinds:[],simpleLineWalkFastPath:!0,segLevels:null,breakableFitAdvances:[],discretionaryHyphenWidth:0,tabStopAdvance:0,chunks:[]}}function Eu(t,e){let n=[],i=[],r=0,o=!1,s=!1,l=!1;function a(){i.length!==0&&(n.push({text:i.length===1?i[0]:i.join(""),start:r}),i=[],o=!1,s=!1,l=!1)}function c(m,f,x){i=[m],r=f,o=x,s=cn(m),l=Ot.has(m)}function u(m,f){i.push(m),o=o||f;let x=cn(m);m.length===1&&ze.has(m)?s=s||x:s=x,l=!1}for(let m of bu().segment(t)){let f=m.segment,x=Re(f);if(i.length===0){c(f,m.index,x);continue}if(l||ln.has(f)||ze.has(f)||e.carryCJKAfterClosingQuote&&x&&s){u(f,x);continue}if(!o&&!x){u(f,x);continue}a(),c(f,m.index,x)}return a(),n}function Fu(t){if(t.length<=1)return t;let e=[],n=[t[0].text],i=t[0].start,r=Re(t[0].text),o=an(t[0].text);function s(){e.push({text:n.length===1?n[0]:n.join(""),start:i})}for(let l=1;l<t.length;l++){let a=t[l],c=Re(a.text),u=an(a.text);if(r&&o){n.push(a.text),r=r||c,o=u;continue}s(),n=[a.text],i=a.start,r=c,o=u}return s(),e}function wu(t,e,n,i){let r=ut(),{cache:o,emojiCorrection:s}=zo(e,Vo(t.normalized)),l=je("-",Pe("-",o),s),c=je(" ",Pe(" ",o),s)*8;if(t.len===0)return Au(n);let u=[],m=[],f=[],x=[],F=t.chunks.length<=1,E=n?[]:null,S=[],B=n?[]:null,D=Array.from({length:t.len});function v(g,A,N,w,T,L,P){T!=="text"&&T!=="space"&&T!=="zero-width-break"&&(F=!1),u.push(A),m.push(N),f.push(w),x.push(T),E?.push(L),S.push(P),B!==null&&B.push(g)}function te(g,A,N,w,T){let L=Pe(g,o),P=je(g,L,s),J=A==="space"||A==="preserved-space"||A==="zero-width-break"?0:P,R=A==="space"||A==="zero-width-break"?0:P;if(T&&w&&g.length>1){let ue="sum-graphemes";It(g)?ue="pair-context":r.preferPrefixWidthsForBreakableRuns&&(ue="segment-prefixes");let Se=Uo(g,L,o,s,ue);v(g,P,J,R,A,N,Se);return}v(g,P,J,R,A,N,null)}for(let g=0;g<t.len;g++){D[g]=u.length;let A=t.texts[g],N=t.isWordLike[g],w=t.kinds[g],T=t.starts[g];if(w==="soft-hyphen"){v(A,0,l,l,w,T,null);continue}if(w==="hard-break"){v(A,0,0,0,w,T,null);continue}if(w==="tab"){v(A,0,0,0,w,T,null);continue}let L=Pe(A,o);if(w==="text"&&L.containsCJK){let P=Eu(A,r),J=i==="keep-all"?Fu(P):P;for(let R=0;R<J.length;R++){let ue=J[R];te(ue.text,"text",T+ue.start,N,i==="keep-all"||!Re(ue.text))}continue}te(A,w,T,N,!0)}let q=Nu(t.chunks,D,u.length),C=E===null?null:Mo(t.normalized,E);return B!==null?{widths:u,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:x,simpleLineWalkFastPath:F,segLevels:C,breakableFitAdvances:S,discretionaryHyphenWidth:l,tabStopAdvance:c,chunks:q,segments:B}:{widths:u,lineEndFitAdvances:m,lineEndPaintAdvances:f,kinds:x,simpleLineWalkFastPath:F,segLevels:C,breakableFitAdvances:S,discretionaryHyphenWidth:l,tabStopAdvance:c,chunks:q}}function Nu(t,e,n){let i=[];for(let r=0;r<t.length;r++){let o=t[r],s=o.startSegmentIndex<e.length?e[o.startSegmentIndex]:n,l=o.endSegmentIndex<e.length?e[o.endSegmentIndex]:n,a=o.consumedEndSegmentIndex<e.length?e[o.consumedEndSegmentIndex]:n;i.push({startSegmentIndex:s,endSegmentIndex:l,consumedEndSegmentIndex:a})}return i}function Cu(t,e,n,i){let r=i?.wordBreak??"normal",o=Po(t,ut(),i?.whiteSpace,r);return wu(o,e,n,r)}function Ko(t,e,n){return Cu(t,e,!1,n)}function Jo(t,e,n){let i=jo(t,e);return{lineCount:i,height:i*n}}var Mu={maxWidth:1600,baseFontSize:78,minFontSize:42,fontWeight:900,fontFamily:"Outfit",step:2};function Qo(t,e){let n={...Mu,...e},i=1.2;for(let r=n.baseFontSize;r>=n.minFontSize;r-=n.step){let o=`${n.fontWeight} ${r}px ${n.fontFamily}`,s=Ko(t,o),{lineCount:l}=Jo(s,n.maxWidth,r*i);if(l<=1)return{fontSize:r,fits:!0}}return{fontSize:n.minFontSize,fits:!1}}window.__timelines=window.__timelines||{};window.__hyperframes={fitTextFontSize:Qo,getVariables:ho};function Yo(){let t=window;t.__hyperframeRuntimeBootstrapped||(t.__hyperframeRuntimeBootstrapped=!0,No())}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",Yo,{once:!0}):Yo();})();\n';
|
|
39268
39819
|
}
|
|
39269
39820
|
});
|
|
39270
39821
|
|
|
@@ -43188,12 +43739,14 @@ var init_agent_runtime = __esm({
|
|
|
43188
43739
|
var system_exports = {};
|
|
43189
43740
|
__export(system_exports, {
|
|
43190
43741
|
bytesToMb: () => bytesToMb,
|
|
43742
|
+
getAvailableMemoryMb: () => getAvailableMemoryMb,
|
|
43191
43743
|
getFreeDiskMb: () => getFreeDiskMb,
|
|
43192
43744
|
getShmSizeMb: () => getShmSizeMb,
|
|
43193
43745
|
getSystemMeta: () => getSystemMeta
|
|
43194
43746
|
});
|
|
43195
|
-
import { cpus, totalmem, platform as platform3, release as release3 } from "os";
|
|
43747
|
+
import { cpus, totalmem, freemem, platform as platform3, release as release3 } from "os";
|
|
43196
43748
|
import { existsSync as existsSync5, readFileSync as readFileSync6, statfsSync } from "fs";
|
|
43749
|
+
import { execSync } from "child_process";
|
|
43197
43750
|
function bytesToMb(bytes) {
|
|
43198
43751
|
return Math.trunc(bytes / (1024 * 1024));
|
|
43199
43752
|
}
|
|
@@ -43259,6 +43812,34 @@ function getFreeDiskMb(path2 = ".") {
|
|
|
43259
43812
|
return null;
|
|
43260
43813
|
}
|
|
43261
43814
|
}
|
|
43815
|
+
function getAvailableMemoryMb() {
|
|
43816
|
+
const fallback = bytesToMb(freemem());
|
|
43817
|
+
if (platform3() === "darwin") {
|
|
43818
|
+
try {
|
|
43819
|
+
const raw = execSync("vm_stat", { encoding: "utf-8", timeout: 5e3 });
|
|
43820
|
+
const pageSize = parseInt(raw.match(/page size of (\d+)/)?.[1] ?? "0", 10);
|
|
43821
|
+
if (!pageSize) return fallback;
|
|
43822
|
+
const pages = (key2) => parseInt(raw.match(new RegExp(`${key2}:\\s+(\\d+)`))?.[1] ?? "0", 10);
|
|
43823
|
+
const available = (pages("Pages free") + pages("Pages inactive") + pages("Pages purgeable") + pages("Pages speculative")) * pageSize;
|
|
43824
|
+
return available > 0 ? bytesToMb(available) : fallback;
|
|
43825
|
+
} catch {
|
|
43826
|
+
return fallback;
|
|
43827
|
+
}
|
|
43828
|
+
}
|
|
43829
|
+
if (platform3() === "linux") {
|
|
43830
|
+
try {
|
|
43831
|
+
const meminfo = readFileSync6("/proc/meminfo", "utf-8");
|
|
43832
|
+
const match = meminfo.match(/MemAvailable:\s+(\d+)\s+kB/);
|
|
43833
|
+
if (match) {
|
|
43834
|
+
return Math.trunc(parseInt(match[1], 10) / 1024);
|
|
43835
|
+
}
|
|
43836
|
+
return fallback;
|
|
43837
|
+
} catch {
|
|
43838
|
+
return fallback;
|
|
43839
|
+
}
|
|
43840
|
+
}
|
|
43841
|
+
return fallback;
|
|
43842
|
+
}
|
|
43262
43843
|
var cached, CI_PROVIDERS;
|
|
43263
43844
|
var init_system = __esm({
|
|
43264
43845
|
"src/telemetry/system.ts"() {
|
|
@@ -43503,7 +44084,7 @@ import { get as httpsGet } from "https";
|
|
|
43503
44084
|
import { pipeline } from "stream/promises";
|
|
43504
44085
|
function downloadFile(url, dest) {
|
|
43505
44086
|
const tmp = `${dest}.tmp`;
|
|
43506
|
-
return new Promise((
|
|
44087
|
+
return new Promise((resolve49, reject) => {
|
|
43507
44088
|
const follow = (u) => {
|
|
43508
44089
|
httpsGet(u, (res) => {
|
|
43509
44090
|
if (res.statusCode === 301 || res.statusCode === 302) {
|
|
@@ -43520,7 +44101,7 @@ function downloadFile(url, dest) {
|
|
|
43520
44101
|
const file = createWriteStream(tmp);
|
|
43521
44102
|
pipeline(res, file).then(() => {
|
|
43522
44103
|
renameSync(tmp, dest);
|
|
43523
|
-
|
|
44104
|
+
resolve49();
|
|
43524
44105
|
}).catch((err) => {
|
|
43525
44106
|
try {
|
|
43526
44107
|
unlinkSync(tmp);
|
|
@@ -44241,7 +44822,7 @@ function hasNpx() {
|
|
|
44241
44822
|
}
|
|
44242
44823
|
}
|
|
44243
44824
|
function runSkillsAdd(repo) {
|
|
44244
|
-
return new Promise((
|
|
44825
|
+
return new Promise((resolve49, reject) => {
|
|
44245
44826
|
const child = spawn("npx", ["skills", "add", repo, "--all"], {
|
|
44246
44827
|
stdio: "inherit",
|
|
44247
44828
|
timeout: 12e4,
|
|
@@ -44255,7 +44836,7 @@ function runSkillsAdd(repo) {
|
|
|
44255
44836
|
env: { ...process.env, GIT_CLONE_PROTECTION_ACTIVE: "0" }
|
|
44256
44837
|
});
|
|
44257
44838
|
child.on("close", (code, signal) => {
|
|
44258
|
-
if (code === 0)
|
|
44839
|
+
if (code === 0) resolve49();
|
|
44259
44840
|
else if (signal === "SIGINT" || code === 130) process.exit(0);
|
|
44260
44841
|
else reject(new Error(`npx skills add exited with code ${code}`));
|
|
44261
44842
|
});
|
|
@@ -44917,8 +45498,9 @@ async function killActiveServers(startPort = 3002) {
|
|
|
44917
45498
|
}
|
|
44918
45499
|
return killed;
|
|
44919
45500
|
}
|
|
44920
|
-
async function findPortAndServe(fetch4, startPort, projectDir, forceNew, expectedServerBuildSignature = null) {
|
|
45501
|
+
async function findPortAndServe(fetch4, startPort, projectDir, forceNew, expectedServerBuildSignature = null, bindHost) {
|
|
44921
45502
|
const { createAdaptorServer } = await import("@hono/node-server");
|
|
45503
|
+
const host = bindHost ?? (process.env.HYPERFRAMES_PREVIEW_HOST?.trim() || "127.0.0.1");
|
|
44922
45504
|
const normalizedDir = resolve7(projectDir).replace(/\\/g, "/").toLowerCase();
|
|
44923
45505
|
const endPort = startPort + MAX_PORT_SCAN - 1;
|
|
44924
45506
|
let server = null;
|
|
@@ -44938,7 +45520,7 @@ async function findPortAndServe(fetch4, startPort, projectDir, forceNew, expecte
|
|
|
44938
45520
|
};
|
|
44939
45521
|
server.once("error", onError);
|
|
44940
45522
|
server.once("listening", onListening);
|
|
44941
|
-
server.listen(port);
|
|
45523
|
+
server.listen(port, host);
|
|
44942
45524
|
});
|
|
44943
45525
|
return { type: "started", server, port };
|
|
44944
45526
|
} catch (err) {
|
|
@@ -44987,7 +45569,7 @@ var init_portUtils = __esm({
|
|
|
44987
45569
|
});
|
|
44988
45570
|
|
|
44989
45571
|
// src/utils/orphanCleanup.ts
|
|
44990
|
-
import { execSync } from "child_process";
|
|
45572
|
+
import { execSync as execSync2 } from "child_process";
|
|
44991
45573
|
function killOrphanedProcesses() {
|
|
44992
45574
|
if (process.platform === "win32") return 0;
|
|
44993
45575
|
let killed = 0;
|
|
@@ -45021,7 +45603,7 @@ function killProcessTree(pid, signal = "SIGTERM") {
|
|
|
45021
45603
|
function getDescendants(pid) {
|
|
45022
45604
|
let children;
|
|
45023
45605
|
try {
|
|
45024
|
-
const raw =
|
|
45606
|
+
const raw = execSync2(`pgrep -P ${pid}`, { encoding: "utf-8", timeout: 2e3 }).trim();
|
|
45025
45607
|
if (!raw) return [];
|
|
45026
45608
|
children = raw.split("\n").map((s2) => parseInt(s2, 10)).filter((n) => !isNaN(n) && n > 0);
|
|
45027
45609
|
} catch {
|
|
@@ -45039,7 +45621,7 @@ function killOrphansByName(processName) {
|
|
|
45039
45621
|
const userFlag = uid !== null ? `-u ${uid} ` : "";
|
|
45040
45622
|
let pids;
|
|
45041
45623
|
try {
|
|
45042
|
-
const raw =
|
|
45624
|
+
const raw = execSync2(`pgrep ${userFlag}-f ${processName}`, {
|
|
45043
45625
|
encoding: "utf-8",
|
|
45044
45626
|
timeout: 3e3
|
|
45045
45627
|
}).trim();
|
|
@@ -45059,7 +45641,7 @@ function killOrphansByName(processName) {
|
|
|
45059
45641
|
function getUid() {
|
|
45060
45642
|
if (_cachedUid !== void 0) return _cachedUid;
|
|
45061
45643
|
try {
|
|
45062
|
-
_cachedUid =
|
|
45644
|
+
_cachedUid = execSync2("id -u", { encoding: "utf-8", timeout: 1e3 }).trim();
|
|
45063
45645
|
} catch {
|
|
45064
45646
|
_cachedUid = null;
|
|
45065
45647
|
}
|
|
@@ -45067,7 +45649,7 @@ function getUid() {
|
|
|
45067
45649
|
}
|
|
45068
45650
|
function isOrphan(pid) {
|
|
45069
45651
|
try {
|
|
45070
|
-
const ppid =
|
|
45652
|
+
const ppid = execSync2(`ps -p ${pid} -o ppid=`, {
|
|
45071
45653
|
encoding: "utf-8",
|
|
45072
45654
|
timeout: 2e3
|
|
45073
45655
|
}).trim();
|
|
@@ -45222,11 +45804,11 @@ var init_runtimeSource = __esm({
|
|
|
45222
45804
|
});
|
|
45223
45805
|
|
|
45224
45806
|
// src/server/studioRenderTelemetry.ts
|
|
45225
|
-
import { freemem } from "os";
|
|
45807
|
+
import { freemem as freemem2 } from "os";
|
|
45226
45808
|
function memSnapshot() {
|
|
45227
45809
|
return {
|
|
45228
45810
|
peakMemoryMb: bytesToMb(process.memoryUsage.rss()),
|
|
45229
|
-
memoryFreeMb: bytesToMb(
|
|
45811
|
+
memoryFreeMb: bytesToMb(freemem2())
|
|
45230
45812
|
};
|
|
45231
45813
|
}
|
|
45232
45814
|
function stagesPayload(stages) {
|
|
@@ -45450,7 +46032,7 @@ function computePeaks(floats, count) {
|
|
|
45450
46032
|
return peaks.map((p2) => p2 / maxPeak);
|
|
45451
46033
|
}
|
|
45452
46034
|
function decodeAudioPeaks(audioPath) {
|
|
45453
|
-
return new Promise((
|
|
46035
|
+
return new Promise((resolve49, reject) => {
|
|
45454
46036
|
const proc = spawn3(
|
|
45455
46037
|
"ffmpeg",
|
|
45456
46038
|
[
|
|
@@ -45483,7 +46065,7 @@ function decodeAudioPeaks(audioPath) {
|
|
|
45483
46065
|
return;
|
|
45484
46066
|
}
|
|
45485
46067
|
const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + numSamples * 4);
|
|
45486
|
-
|
|
46068
|
+
resolve49(computePeaks(new Float32Array(ab), PEAK_COUNT));
|
|
45487
46069
|
});
|
|
45488
46070
|
proc.on("error", reject);
|
|
45489
46071
|
});
|
|
@@ -49423,8 +50005,8 @@ var init_custom_element_registry = __esm({
|
|
|
49423
50005
|
} : (element) => element.localName === localName;
|
|
49424
50006
|
registry.set(localName, { Class, check });
|
|
49425
50007
|
if (waiting.has(localName)) {
|
|
49426
|
-
for (const
|
|
49427
|
-
|
|
50008
|
+
for (const resolve49 of waiting.get(localName))
|
|
50009
|
+
resolve49(Class);
|
|
49428
50010
|
waiting.delete(localName);
|
|
49429
50011
|
}
|
|
49430
50012
|
ownerDocument.querySelectorAll(
|
|
@@ -49464,13 +50046,13 @@ var init_custom_element_registry = __esm({
|
|
|
49464
50046
|
*/
|
|
49465
50047
|
whenDefined(localName) {
|
|
49466
50048
|
const { registry, waiting } = this;
|
|
49467
|
-
return new Promise((
|
|
50049
|
+
return new Promise((resolve49) => {
|
|
49468
50050
|
if (registry.has(localName))
|
|
49469
|
-
|
|
50051
|
+
resolve49(registry.get(localName).Class);
|
|
49470
50052
|
else {
|
|
49471
50053
|
if (!waiting.has(localName))
|
|
49472
50054
|
waiting.set(localName, []);
|
|
49473
|
-
waiting.get(localName).push(
|
|
50055
|
+
waiting.get(localName).push(resolve49);
|
|
49474
50056
|
}
|
|
49475
50057
|
});
|
|
49476
50058
|
}
|
|
@@ -55176,12 +55758,12 @@ var require_CSSValueExpression = __commonJS({
|
|
|
55176
55758
|
return false;
|
|
55177
55759
|
}
|
|
55178
55760
|
};
|
|
55179
|
-
CSSOM.CSSValueExpression.prototype._parseJSString = function(token, idx,
|
|
55180
|
-
var endIdx = this._findMatchedIdx(token, idx,
|
|
55761
|
+
CSSOM.CSSValueExpression.prototype._parseJSString = function(token, idx, sep8) {
|
|
55762
|
+
var endIdx = this._findMatchedIdx(token, idx, sep8), text;
|
|
55181
55763
|
if (endIdx === -1) {
|
|
55182
55764
|
return false;
|
|
55183
55765
|
} else {
|
|
55184
|
-
text = token.substring(idx, endIdx +
|
|
55766
|
+
text = token.substring(idx, endIdx + sep8.length);
|
|
55185
55767
|
return {
|
|
55186
55768
|
idx: endIdx,
|
|
55187
55769
|
text
|
|
@@ -55221,15 +55803,15 @@ var require_CSSValueExpression = __commonJS({
|
|
|
55221
55803
|
if (!isLegal) {
|
|
55222
55804
|
return false;
|
|
55223
55805
|
} else {
|
|
55224
|
-
var
|
|
55225
|
-
return this._parseJSString(token, idx,
|
|
55806
|
+
var sep8 = "/";
|
|
55807
|
+
return this._parseJSString(token, idx, sep8);
|
|
55226
55808
|
}
|
|
55227
55809
|
};
|
|
55228
|
-
CSSOM.CSSValueExpression.prototype._findMatchedIdx = function(token, idx,
|
|
55810
|
+
CSSOM.CSSValueExpression.prototype._findMatchedIdx = function(token, idx, sep8) {
|
|
55229
55811
|
var startIdx = idx, endIdx;
|
|
55230
55812
|
var NOT_FOUND = -1;
|
|
55231
55813
|
while (true) {
|
|
55232
|
-
endIdx = token.indexOf(
|
|
55814
|
+
endIdx = token.indexOf(sep8, startIdx + 1);
|
|
55233
55815
|
if (endIdx === -1) {
|
|
55234
55816
|
endIdx = NOT_FOUND;
|
|
55235
55817
|
break;
|
|
@@ -58280,6 +58862,42 @@ function probeElementInSource(source, target) {
|
|
|
58280
58862
|
const el = findTargetElement(document2, target);
|
|
58281
58863
|
return el != null && isHTMLElement(el);
|
|
58282
58864
|
}
|
|
58865
|
+
function splitElementInHtml(source, target, splitTime, newId) {
|
|
58866
|
+
const { document: document2, wrappedFragment } = parseSourceDocument(source);
|
|
58867
|
+
const el = findTargetElement(document2, target);
|
|
58868
|
+
if (!el || !isHTMLElement(el)) return { html: source, matched: false, newId: null };
|
|
58869
|
+
const start = parseFloat(el.getAttribute("data-start") ?? "0") || 0;
|
|
58870
|
+
const duration = parseFloat(el.getAttribute("data-duration") ?? "0") || 0;
|
|
58871
|
+
if (duration <= 0 || splitTime <= start || splitTime >= start + duration) {
|
|
58872
|
+
return { html: source, matched: false, newId: null };
|
|
58873
|
+
}
|
|
58874
|
+
const firstDuration = splitTime - start;
|
|
58875
|
+
const secondDuration = duration - firstDuration;
|
|
58876
|
+
const clone2 = el.cloneNode(true);
|
|
58877
|
+
clone2.setAttribute("id", newId);
|
|
58878
|
+
clone2.setAttribute("data-start", String(Math.round(splitTime * 1e3) / 1e3));
|
|
58879
|
+
clone2.setAttribute("data-duration", String(Math.round(secondDuration * 1e3) / 1e3));
|
|
58880
|
+
const playbackStartAttr = el.hasAttribute("data-playback-start") ? "data-playback-start" : el.hasAttribute("data-media-start") ? "data-media-start" : null;
|
|
58881
|
+
if (playbackStartAttr) {
|
|
58882
|
+
const currentTrim = parseFloat(el.getAttribute(playbackStartAttr) ?? "0") || 0;
|
|
58883
|
+
const rate = parseFloat(el.getAttribute("data-playback-rate") ?? "1") || 1;
|
|
58884
|
+
clone2.setAttribute(
|
|
58885
|
+
playbackStartAttr,
|
|
58886
|
+
String(Math.round((currentTrim + firstDuration * rate) * 1e3) / 1e3)
|
|
58887
|
+
);
|
|
58888
|
+
}
|
|
58889
|
+
el.setAttribute("data-duration", String(Math.round(firstDuration * 1e3) / 1e3));
|
|
58890
|
+
if (el.nextSibling) {
|
|
58891
|
+
el.parentElement.insertBefore(clone2, el.nextSibling);
|
|
58892
|
+
} else {
|
|
58893
|
+
el.parentElement.appendChild(clone2);
|
|
58894
|
+
}
|
|
58895
|
+
return {
|
|
58896
|
+
html: wrappedFragment ? document2.body.innerHTML || "" : document2.toString(),
|
|
58897
|
+
matched: true,
|
|
58898
|
+
newId
|
|
58899
|
+
};
|
|
58900
|
+
}
|
|
58283
58901
|
var ALLOWED_HTML_ATTRS, DANGEROUS_URI_SCHEMES, DANGEROUS_DATA_URI, URI_ATTRS;
|
|
58284
58902
|
var init_sourceMutation = __esm({
|
|
58285
58903
|
"../core/src/studio-api/helpers/sourceMutation.ts"() {
|
|
@@ -58542,6 +59160,32 @@ function registerFileRoutes(api, adapter2) {
|
|
|
58542
59160
|
removeElementFromHtml2(originalContent, parsed.target)
|
|
58543
59161
|
);
|
|
58544
59162
|
});
|
|
59163
|
+
api.post("/projects/:id/file-mutations/split-element/*", async (c3) => {
|
|
59164
|
+
const ctx = await resolveFileMutationContext(c3, adapter2, "split-element");
|
|
59165
|
+
if ("error" in ctx) return ctx.error;
|
|
59166
|
+
const parsed = await parseMutationBody(c3);
|
|
59167
|
+
if ("error" in parsed) return parsed.error;
|
|
59168
|
+
if (typeof parsed.body.splitTime !== "number" || !parsed.body.newId) {
|
|
59169
|
+
return c3.json({ error: "target, splitTime, and newId required" }, 400);
|
|
59170
|
+
}
|
|
59171
|
+
let originalContent;
|
|
59172
|
+
try {
|
|
59173
|
+
originalContent = readFileSync12(ctx.absPath, "utf-8");
|
|
59174
|
+
} catch {
|
|
59175
|
+
return c3.json({ error: "not found" }, 404);
|
|
59176
|
+
}
|
|
59177
|
+
const result = splitElementInHtml(
|
|
59178
|
+
originalContent,
|
|
59179
|
+
parsed.target,
|
|
59180
|
+
parsed.body.splitTime,
|
|
59181
|
+
parsed.body.newId
|
|
59182
|
+
);
|
|
59183
|
+
if (!result.matched) {
|
|
59184
|
+
return c3.json({ ok: false, changed: false, content: originalContent });
|
|
59185
|
+
}
|
|
59186
|
+
writeFileSync8(ctx.absPath, result.html, "utf-8");
|
|
59187
|
+
return c3.json({ ok: true, changed: true, content: result.html, newId: result.newId });
|
|
59188
|
+
});
|
|
58545
59189
|
api.post("/projects/:id/file-mutations/patch-element/*", async (c3) => {
|
|
58546
59190
|
const ctx = await resolveFileMutationContext(c3, adapter2, "patch-element");
|
|
58547
59191
|
if ("error" in ctx) return ctx.error;
|
|
@@ -58811,6 +59455,63 @@ function registerFileRoutes(api, adapter2) {
|
|
|
58811
59455
|
});
|
|
58812
59456
|
break;
|
|
58813
59457
|
}
|
|
59458
|
+
case "add-keyframe": {
|
|
59459
|
+
const { addKeyframeToScript: addKeyframeToScript2 } = await loadGsapParser();
|
|
59460
|
+
newScript = addKeyframeToScript2(
|
|
59461
|
+
block.scriptText,
|
|
59462
|
+
body.animationId,
|
|
59463
|
+
body.percentage,
|
|
59464
|
+
body.properties,
|
|
59465
|
+
body.ease,
|
|
59466
|
+
body.backfillDefaults
|
|
59467
|
+
);
|
|
59468
|
+
break;
|
|
59469
|
+
}
|
|
59470
|
+
case "remove-keyframe": {
|
|
59471
|
+
const { removeKeyframeFromScript: removeKeyframeFromScript2 } = await loadGsapParser();
|
|
59472
|
+
newScript = removeKeyframeFromScript2(block.scriptText, body.animationId, body.percentage);
|
|
59473
|
+
break;
|
|
59474
|
+
}
|
|
59475
|
+
case "update-keyframe": {
|
|
59476
|
+
const { updateKeyframeInScript: updateKeyframeInScript2 } = await loadGsapParser();
|
|
59477
|
+
newScript = updateKeyframeInScript2(
|
|
59478
|
+
block.scriptText,
|
|
59479
|
+
body.animationId,
|
|
59480
|
+
body.percentage,
|
|
59481
|
+
body.properties,
|
|
59482
|
+
body.ease
|
|
59483
|
+
);
|
|
59484
|
+
break;
|
|
59485
|
+
}
|
|
59486
|
+
case "convert-to-keyframes": {
|
|
59487
|
+
const { convertToKeyframesInScript: convertToKeyframesInScript2 } = await loadGsapParser();
|
|
59488
|
+
newScript = convertToKeyframesInScript2(
|
|
59489
|
+
block.scriptText,
|
|
59490
|
+
body.animationId,
|
|
59491
|
+
body.resolvedFromValues
|
|
59492
|
+
);
|
|
59493
|
+
break;
|
|
59494
|
+
}
|
|
59495
|
+
case "remove-all-keyframes": {
|
|
59496
|
+
const { removeAllKeyframesFromScript: removeAllKeyframesFromScript2 } = await loadGsapParser();
|
|
59497
|
+
newScript = removeAllKeyframesFromScript2(block.scriptText, body.animationId);
|
|
59498
|
+
break;
|
|
59499
|
+
}
|
|
59500
|
+
case "materialize-keyframes": {
|
|
59501
|
+
const { materializeKeyframesInScript: materializeKeyframesInScript2, unrollDynamicAnimations: unrollDynamicAnimations2 } = await loadGsapParser();
|
|
59502
|
+
if (body.allElements && body.allElements.length > 0) {
|
|
59503
|
+
newScript = unrollDynamicAnimations2(block.scriptText, body.animationId, body.allElements);
|
|
59504
|
+
} else {
|
|
59505
|
+
newScript = materializeKeyframesInScript2(
|
|
59506
|
+
block.scriptText,
|
|
59507
|
+
body.animationId,
|
|
59508
|
+
body.keyframes,
|
|
59509
|
+
body.easeEach,
|
|
59510
|
+
body.resolvedSelector
|
|
59511
|
+
);
|
|
59512
|
+
}
|
|
59513
|
+
break;
|
|
59514
|
+
}
|
|
58814
59515
|
default:
|
|
58815
59516
|
return c3.json({ error: `unknown mutation type: ${body.type}` }, 400);
|
|
58816
59517
|
}
|
|
@@ -61101,7 +61802,7 @@ __export(manager_exports2, {
|
|
|
61101
61802
|
findBrowser: () => findBrowser,
|
|
61102
61803
|
isLinuxArm: () => isLinuxArm
|
|
61103
61804
|
});
|
|
61104
|
-
import { execSync as
|
|
61805
|
+
import { execSync as execSync3, spawnSync as spawnSync2 } from "child_process";
|
|
61105
61806
|
import { existsSync as existsSync18, readdirSync as readdirSync8, rmSync as rmSync4 } from "fs";
|
|
61106
61807
|
import { basename as basename2 } from "path";
|
|
61107
61808
|
import { homedir as homedir5 } from "os";
|
|
@@ -61120,7 +61821,7 @@ Fix: run \`npm install\` or \`bun install\` to restore missing packages, then re
|
|
|
61120
61821
|
function whichBinary2(name) {
|
|
61121
61822
|
try {
|
|
61122
61823
|
const cmd = process.platform === "win32" ? `where ${name}` : `which ${name}`;
|
|
61123
|
-
const output =
|
|
61824
|
+
const output = execSync3(cmd, {
|
|
61124
61825
|
encoding: "utf-8",
|
|
61125
61826
|
stdio: ["pipe", "pipe", "pipe"],
|
|
61126
61827
|
timeout: 5e3
|
|
@@ -61349,13 +62050,13 @@ function getSystemTotalMb() {
|
|
|
61349
62050
|
function memoryAdaptiveCacheLimit() {
|
|
61350
62051
|
const total = getSystemTotalMb();
|
|
61351
62052
|
if (total < 4096) return 32;
|
|
61352
|
-
if (total
|
|
62053
|
+
if (total <= 8192) return 64;
|
|
61353
62054
|
return DEFAULT_CONFIG2.frameDataUriCacheLimit;
|
|
61354
62055
|
}
|
|
61355
62056
|
function memoryAdaptiveCacheBytesMb() {
|
|
61356
62057
|
const total = getSystemTotalMb();
|
|
61357
62058
|
if (total < 4096) return 128;
|
|
61358
|
-
if (total
|
|
62059
|
+
if (total <= 8192) return 256;
|
|
61359
62060
|
return DEFAULT_CONFIG2.frameDataUriCacheBytesLimitMb;
|
|
61360
62061
|
}
|
|
61361
62062
|
function resolveConfig(overrides) {
|
|
@@ -61447,6 +62148,10 @@ function resolveConfig(overrides) {
|
|
|
61447
62148
|
"PRODUCER_RENDER_READY_TIMEOUT_MS",
|
|
61448
62149
|
DEFAULT_CONFIG2.renderReadyTimeout
|
|
61449
62150
|
),
|
|
62151
|
+
pageNavigationTimeout: envNum(
|
|
62152
|
+
"PRODUCER_PAGE_NAVIGATION_TIMEOUT_MS",
|
|
62153
|
+
DEFAULT_CONFIG2.pageNavigationTimeout
|
|
62154
|
+
),
|
|
61450
62155
|
verifyRuntime: env("PRODUCER_VERIFY_HYPERFRAME_RUNTIME") !== "false",
|
|
61451
62156
|
runtimeManifestPath: env("PRODUCER_HYPERFRAME_MANIFEST_PATH"),
|
|
61452
62157
|
extractCacheDir: env("HYPERFRAMES_EXTRACT_CACHE_DIR")
|
|
@@ -61492,6 +62197,7 @@ var init_config2 = __esm({
|
|
|
61492
62197
|
frameDataUriCacheBytesLimitMb: 1500,
|
|
61493
62198
|
playerReadyTimeout: 45e3,
|
|
61494
62199
|
renderReadyTimeout: 15e3,
|
|
62200
|
+
pageNavigationTimeout: 6e4,
|
|
61495
62201
|
verifyRuntime: true,
|
|
61496
62202
|
debug: false
|
|
61497
62203
|
};
|
|
@@ -61499,7 +62205,7 @@ var init_config2 = __esm({
|
|
|
61499
62205
|
});
|
|
61500
62206
|
|
|
61501
62207
|
// ../engine/src/services/browserManager.ts
|
|
61502
|
-
import { execSync as
|
|
62208
|
+
import { execSync as execSync4 } from "child_process";
|
|
61503
62209
|
import { existsSync as existsSync19, readdirSync as readdirSync9 } from "fs";
|
|
61504
62210
|
import { join as join23 } from "path";
|
|
61505
62211
|
import { homedir as homedir6, totalmem as totalmem3 } from "os";
|
|
@@ -61780,7 +62486,7 @@ function getTotalMemMb() {
|
|
|
61780
62486
|
function probeNvidiaVramMb() {
|
|
61781
62487
|
if (_cachedVramMb !== null) return _cachedVramMb;
|
|
61782
62488
|
try {
|
|
61783
|
-
const out =
|
|
62489
|
+
const out = execSync4("nvidia-smi --query-gpu=memory.total --format=csv,noheader,nounits", {
|
|
61784
62490
|
timeout: 3e3,
|
|
61785
62491
|
encoding: "utf-8",
|
|
61786
62492
|
stdio: ["pipe", "pipe", "pipe"]
|
|
@@ -61799,12 +62505,12 @@ function getGpuMemBudgetMb() {
|
|
|
61799
62505
|
if (vram) return Math.min(vram, 16384);
|
|
61800
62506
|
const total = getTotalMemMb();
|
|
61801
62507
|
if (total < 4096) return 512;
|
|
61802
|
-
if (total
|
|
62508
|
+
if (total <= 8192) return 1024;
|
|
61803
62509
|
return Math.min(Math.floor(total / 2), 16384);
|
|
61804
62510
|
}
|
|
61805
62511
|
function getLowMemoryFlags() {
|
|
61806
62512
|
const total = getTotalMemMb();
|
|
61807
|
-
if (total
|
|
62513
|
+
if (total > 8192) return [];
|
|
61808
62514
|
const heapMb = total < 4096 ? 256 : 512;
|
|
61809
62515
|
return [`--js-flags=--max-old-space-size=${heapMb}`];
|
|
61810
62516
|
}
|
|
@@ -62274,10 +62980,10 @@ async function waitForCloseWithTimeout(promise) {
|
|
|
62274
62980
|
() => void 0,
|
|
62275
62981
|
() => void 0
|
|
62276
62982
|
),
|
|
62277
|
-
new Promise((
|
|
62983
|
+
new Promise((resolve49) => {
|
|
62278
62984
|
timer = setTimeout(() => {
|
|
62279
62985
|
timedOut = true;
|
|
62280
|
-
|
|
62986
|
+
resolve49();
|
|
62281
62987
|
}, CAPTURE_SESSION_CLOSE_TIMEOUT_MS);
|
|
62282
62988
|
})
|
|
62283
62989
|
]);
|
|
@@ -62375,7 +63081,7 @@ async function pollPageExpression(page, expression, timeoutMs, intervalMs = 100)
|
|
|
62375
63081
|
while (Date.now() < deadline) {
|
|
62376
63082
|
const ready = Boolean(await page.evaluate(expression));
|
|
62377
63083
|
if (ready) return true;
|
|
62378
|
-
await new Promise((
|
|
63084
|
+
await new Promise((resolve49) => setTimeout(resolve49, intervalMs));
|
|
62379
63085
|
}
|
|
62380
63086
|
return Boolean(await page.evaluate(expression));
|
|
62381
63087
|
}
|
|
@@ -62424,7 +63130,7 @@ async function pollHfReady(page, timeoutMs, intervalMs = 100) {
|
|
|
62424
63130
|
}
|
|
62425
63131
|
}
|
|
62426
63132
|
}
|
|
62427
|
-
await new Promise((
|
|
63133
|
+
await new Promise((resolve49) => setTimeout(resolve49, intervalMs));
|
|
62428
63134
|
}
|
|
62429
63135
|
const diag = await evaluateHfDiagnostic(page);
|
|
62430
63136
|
if (diag.hasSeek && diag.duration === 0) {
|
|
@@ -62490,7 +63196,7 @@ async function pollVideosReady(page, skipIds, timeoutMs, intervalMs = 100) {
|
|
|
62490
63196
|
const deadline = Date.now() + timeoutMs;
|
|
62491
63197
|
while (Date.now() < deadline) {
|
|
62492
63198
|
if (await check()) return true;
|
|
62493
|
-
await new Promise((
|
|
63199
|
+
await new Promise((resolve49) => setTimeout(resolve49, intervalMs));
|
|
62494
63200
|
}
|
|
62495
63201
|
return check();
|
|
62496
63202
|
}
|
|
@@ -62513,7 +63219,7 @@ async function pollImagesReady(page, timeoutMs, intervalMs = 100) {
|
|
|
62513
63219
|
const deadline = Date.now() + timeoutMs;
|
|
62514
63220
|
while (Date.now() < deadline) {
|
|
62515
63221
|
if (await check()) return true;
|
|
62516
|
-
await new Promise((
|
|
63222
|
+
await new Promise((resolve49) => setTimeout(resolve49, intervalMs));
|
|
62517
63223
|
}
|
|
62518
63224
|
return check();
|
|
62519
63225
|
}
|
|
@@ -62560,7 +63266,7 @@ async function waitForOptionalTailwindReady(page, timeoutMs) {
|
|
|
62560
63266
|
page.evaluate(
|
|
62561
63267
|
`Promise.resolve(window.__tailwindReady).then(() => true, () => false)`
|
|
62562
63268
|
),
|
|
62563
|
-
new Promise((
|
|
63269
|
+
new Promise((resolve49) => setTimeout(() => resolve49(false), timeoutMs))
|
|
62564
63270
|
]);
|
|
62565
63271
|
if (!ready) {
|
|
62566
63272
|
throw new Error(
|
|
@@ -62598,8 +63304,9 @@ async function initializeSession(session) {
|
|
|
62598
63304
|
}
|
|
62599
63305
|
});
|
|
62600
63306
|
const url = `${serverUrl}/index.html`;
|
|
63307
|
+
const pageNavigationTimeout = session.config?.pageNavigationTimeout ?? DEFAULT_CONFIG2.pageNavigationTimeout;
|
|
62601
63308
|
if (session.captureMode === "screenshot") {
|
|
62602
|
-
await page.goto(url, { waitUntil: "domcontentloaded", timeout:
|
|
63309
|
+
await page.goto(url, { waitUntil: "domcontentloaded", timeout: pageNavigationTimeout });
|
|
62603
63310
|
const pageReadyTimeout2 = session.config?.playerReadyTimeout ?? DEFAULT_CONFIG2.playerReadyTimeout;
|
|
62604
63311
|
await pollHfReady(page, pageReadyTimeout2);
|
|
62605
63312
|
await pollSubCompositionTimelines(page, pageReadyTimeout2);
|
|
@@ -62677,7 +63384,7 @@ async function initializeSession(session) {
|
|
|
62677
63384
|
})();
|
|
62678
63385
|
warmupLoopPromise.catch(() => {
|
|
62679
63386
|
});
|
|
62680
|
-
await page.goto(url, { waitUntil: "domcontentloaded", timeout:
|
|
63387
|
+
await page.goto(url, { waitUntil: "domcontentloaded", timeout: pageNavigationTimeout });
|
|
62681
63388
|
const pageReadyTimeout = session.config?.playerReadyTimeout ?? DEFAULT_CONFIG2.playerReadyTimeout;
|
|
62682
63389
|
try {
|
|
62683
63390
|
await pollHfReady(page, pageReadyTimeout);
|
|
@@ -62938,7 +63645,7 @@ var init_frameCapture = __esm({
|
|
|
62938
63645
|
BROWSER_CONSOLE_BUFFER_SIZE = 200;
|
|
62939
63646
|
CAPTURE_SESSION_CLOSE_TIMEOUT_MS = 5e3;
|
|
62940
63647
|
LOCKED_WARMUP_TICKS = 60;
|
|
62941
|
-
realSleep = (ms) => new Promise((
|
|
63648
|
+
realSleep = (ms) => new Promise((resolve49) => setTimeout(resolve49, ms));
|
|
62942
63649
|
HF_READY_DIAGNOSTIC_EXPR = `(function() {
|
|
62943
63650
|
var hf = window.__hf;
|
|
62944
63651
|
var player = window.__player;
|
|
@@ -63023,7 +63730,7 @@ async function selectUsableGpuEncoder(candidates, isUsable) {
|
|
|
63023
63730
|
return null;
|
|
63024
63731
|
}
|
|
63025
63732
|
async function detectGpuEncoder() {
|
|
63026
|
-
return new Promise((
|
|
63733
|
+
return new Promise((resolve49) => {
|
|
63027
63734
|
const ffmpeg = spawn4("ffmpeg", ["-encoders"], {
|
|
63028
63735
|
stdio: ["pipe", "pipe", "pipe"]
|
|
63029
63736
|
});
|
|
@@ -63033,9 +63740,9 @@ async function detectGpuEncoder() {
|
|
|
63033
63740
|
});
|
|
63034
63741
|
ffmpeg.on("close", () => {
|
|
63035
63742
|
const candidates = getCompiledGpuEncoders(stdout2);
|
|
63036
|
-
void selectUsableGpuEncoder(candidates, canUseGpuEncoder).then(
|
|
63743
|
+
void selectUsableGpuEncoder(candidates, canUseGpuEncoder).then(resolve49).catch(() => resolve49(null));
|
|
63037
63744
|
});
|
|
63038
|
-
ffmpeg.on("error", () =>
|
|
63745
|
+
ffmpeg.on("error", () => resolve49(null));
|
|
63039
63746
|
});
|
|
63040
63747
|
}
|
|
63041
63748
|
async function getCachedGpuEncoder() {
|
|
@@ -63085,7 +63792,7 @@ function getProbeArgs(encoder) {
|
|
|
63085
63792
|
return args;
|
|
63086
63793
|
}
|
|
63087
63794
|
async function canUseGpuEncoder(encoder) {
|
|
63088
|
-
return new Promise((
|
|
63795
|
+
return new Promise((resolve49) => {
|
|
63089
63796
|
let settled = false;
|
|
63090
63797
|
let timedOut = false;
|
|
63091
63798
|
let killTimer;
|
|
@@ -63095,7 +63802,7 @@ async function canUseGpuEncoder(encoder) {
|
|
|
63095
63802
|
settled = true;
|
|
63096
63803
|
clearTimeout(timer);
|
|
63097
63804
|
if (killTimer) clearTimeout(killTimer);
|
|
63098
|
-
|
|
63805
|
+
resolve49(usable);
|
|
63099
63806
|
};
|
|
63100
63807
|
const ffmpeg = spawn4("ffmpeg", getProbeArgs(encoder), {
|
|
63101
63808
|
stdio: ["ignore", "ignore", "pipe"]
|
|
@@ -63247,7 +63954,7 @@ async function runFfmpeg(args, opts) {
|
|
|
63247
63954
|
const signal = opts?.signal;
|
|
63248
63955
|
const timeout = opts?.timeout ?? DEFAULT_TIMEOUT;
|
|
63249
63956
|
const onStderr = opts?.onStderr;
|
|
63250
|
-
return new Promise((
|
|
63957
|
+
return new Promise((resolve49) => {
|
|
63251
63958
|
const ffmpeg = spawn5("ffmpeg", args);
|
|
63252
63959
|
trackChildProcess(ffmpeg);
|
|
63253
63960
|
let stderr = "";
|
|
@@ -63274,7 +63981,7 @@ async function runFfmpeg(args, opts) {
|
|
|
63274
63981
|
ffmpeg.on("close", (code) => {
|
|
63275
63982
|
clearTimeout(timer);
|
|
63276
63983
|
if (signal) signal.removeEventListener("abort", onAbort);
|
|
63277
|
-
|
|
63984
|
+
resolve49({
|
|
63278
63985
|
success: !signal?.aborted && code === 0,
|
|
63279
63986
|
exitCode: code,
|
|
63280
63987
|
stderr,
|
|
@@ -63284,7 +63991,7 @@ async function runFfmpeg(args, opts) {
|
|
|
63284
63991
|
ffmpeg.on("error", (err) => {
|
|
63285
63992
|
clearTimeout(timer);
|
|
63286
63993
|
if (signal) signal.removeEventListener("abort", onAbort);
|
|
63287
|
-
|
|
63994
|
+
resolve49({
|
|
63288
63995
|
success: false,
|
|
63289
63996
|
exitCode: null,
|
|
63290
63997
|
stderr: err.message,
|
|
@@ -63541,7 +64248,7 @@ async function encodeFramesFromDir(framesDir, framePattern, outputPath, options,
|
|
|
63541
64248
|
const inputPath = join25(framesDir, framePattern);
|
|
63542
64249
|
const inputArgs = ["-framerate", fpsToFfmpegArg(options.fps), "-i", inputPath];
|
|
63543
64250
|
const args = buildEncoderArgs(options, inputArgs, outputPath, gpuEncoder);
|
|
63544
|
-
return new Promise((
|
|
64251
|
+
return new Promise((resolve49) => {
|
|
63545
64252
|
const ffmpeg = spawn6("ffmpeg", args);
|
|
63546
64253
|
trackChildProcess(ffmpeg);
|
|
63547
64254
|
let stderr = "";
|
|
@@ -63567,7 +64274,7 @@ async function encodeFramesFromDir(framesDir, framePattern, outputPath, options,
|
|
|
63567
64274
|
if (signal) signal.removeEventListener("abort", onAbort);
|
|
63568
64275
|
const durationMs = Date.now() - startTime;
|
|
63569
64276
|
if (signal?.aborted) {
|
|
63570
|
-
|
|
64277
|
+
resolve49({
|
|
63571
64278
|
success: false,
|
|
63572
64279
|
outputPath,
|
|
63573
64280
|
durationMs,
|
|
@@ -63578,7 +64285,7 @@ async function encodeFramesFromDir(framesDir, framePattern, outputPath, options,
|
|
|
63578
64285
|
return;
|
|
63579
64286
|
}
|
|
63580
64287
|
if (code !== 0) {
|
|
63581
|
-
|
|
64288
|
+
resolve49({
|
|
63582
64289
|
success: false,
|
|
63583
64290
|
outputPath,
|
|
63584
64291
|
durationMs,
|
|
@@ -63589,12 +64296,12 @@ async function encodeFramesFromDir(framesDir, framePattern, outputPath, options,
|
|
|
63589
64296
|
return;
|
|
63590
64297
|
}
|
|
63591
64298
|
const fileSize = existsSync21(outputPath) ? statSync6(outputPath).size : 0;
|
|
63592
|
-
|
|
64299
|
+
resolve49({ success: true, outputPath, durationMs, framesEncoded: frameCount, fileSize });
|
|
63593
64300
|
});
|
|
63594
64301
|
ffmpeg.on("error", (err) => {
|
|
63595
64302
|
clearTimeout(timer);
|
|
63596
64303
|
if (signal) signal.removeEventListener("abort", onAbort);
|
|
63597
|
-
|
|
64304
|
+
resolve49({
|
|
63598
64305
|
success: false,
|
|
63599
64306
|
outputPath,
|
|
63600
64307
|
durationMs: Date.now() - startTime,
|
|
@@ -63652,7 +64359,7 @@ async function encodeFramesChunkedConcat(framesDir, framePattern, outputPath, op
|
|
|
63652
64359
|
let gpuEncoder = null;
|
|
63653
64360
|
if (options.useGpu) gpuEncoder = await getCachedGpuEncoder();
|
|
63654
64361
|
const args = buildEncoderArgs(options, inputArgs, chunkPath, gpuEncoder);
|
|
63655
|
-
const chunkResult = await new Promise((
|
|
64362
|
+
const chunkResult = await new Promise((resolve49) => {
|
|
63656
64363
|
const ffmpeg = spawn6("ffmpeg", args);
|
|
63657
64364
|
trackChildProcess(ffmpeg);
|
|
63658
64365
|
let stderr = "";
|
|
@@ -63660,11 +64367,11 @@ async function encodeFramesChunkedConcat(framesDir, framePattern, outputPath, op
|
|
|
63660
64367
|
stderr += d2.toString();
|
|
63661
64368
|
});
|
|
63662
64369
|
ffmpeg.on("close", (code) => {
|
|
63663
|
-
if (code === 0)
|
|
63664
|
-
else
|
|
64370
|
+
if (code === 0) resolve49({ success: true });
|
|
64371
|
+
else resolve49({ success: false, error: `Chunk ${i2} encode failed: ${stderr.slice(-400)}` });
|
|
63665
64372
|
});
|
|
63666
64373
|
ffmpeg.on("error", (err) => {
|
|
63667
|
-
|
|
64374
|
+
resolve49({ success: false, error: `Chunk ${i2} encode error: ${err.message}` });
|
|
63668
64375
|
});
|
|
63669
64376
|
});
|
|
63670
64377
|
if (!chunkResult.success) {
|
|
@@ -63694,7 +64401,7 @@ async function encodeFramesChunkedConcat(framesDir, framePattern, outputPath, op
|
|
|
63694
64401
|
"-y",
|
|
63695
64402
|
outputPath
|
|
63696
64403
|
];
|
|
63697
|
-
const concatResult = await new Promise((
|
|
64404
|
+
const concatResult = await new Promise((resolve49) => {
|
|
63698
64405
|
const ffmpeg = spawn6("ffmpeg", concatArgs);
|
|
63699
64406
|
trackChildProcess(ffmpeg);
|
|
63700
64407
|
let stderr = "";
|
|
@@ -63702,11 +64409,11 @@ async function encodeFramesChunkedConcat(framesDir, framePattern, outputPath, op
|
|
|
63702
64409
|
stderr += d2.toString();
|
|
63703
64410
|
});
|
|
63704
64411
|
ffmpeg.on("close", (code) => {
|
|
63705
|
-
if (code === 0)
|
|
63706
|
-
else
|
|
64412
|
+
if (code === 0) resolve49({ success: true });
|
|
64413
|
+
else resolve49({ success: false, error: `Chunk concat failed: ${stderr.slice(-400)}` });
|
|
63707
64414
|
});
|
|
63708
64415
|
ffmpeg.on("error", (err) => {
|
|
63709
|
-
|
|
64416
|
+
resolve49({ success: false, error: `Chunk concat error: ${err.message}` });
|
|
63710
64417
|
});
|
|
63711
64418
|
});
|
|
63712
64419
|
if (!concatResult.success) {
|
|
@@ -63816,37 +64523,37 @@ import { dirname as dirname8 } from "path";
|
|
|
63816
64523
|
function createFrameReorderBuffer(startFrame, endFrame) {
|
|
63817
64524
|
let cursor = startFrame;
|
|
63818
64525
|
const pending = /* @__PURE__ */ new Map();
|
|
63819
|
-
const enqueueAt = (frame,
|
|
64526
|
+
const enqueueAt = (frame, resolve49) => {
|
|
63820
64527
|
const list = pending.get(frame);
|
|
63821
64528
|
if (list === void 0) {
|
|
63822
|
-
pending.set(frame, [
|
|
64529
|
+
pending.set(frame, [resolve49]);
|
|
63823
64530
|
} else {
|
|
63824
|
-
list.push(
|
|
64531
|
+
list.push(resolve49);
|
|
63825
64532
|
}
|
|
63826
64533
|
};
|
|
63827
64534
|
const flushAt = (frame) => {
|
|
63828
64535
|
const list = pending.get(frame);
|
|
63829
64536
|
if (list === void 0) return;
|
|
63830
64537
|
pending.delete(frame);
|
|
63831
|
-
for (const
|
|
64538
|
+
for (const resolve49 of list) resolve49();
|
|
63832
64539
|
};
|
|
63833
|
-
const waitForFrame = (frame) => new Promise((
|
|
64540
|
+
const waitForFrame = (frame) => new Promise((resolve49) => {
|
|
63834
64541
|
if (frame === cursor) {
|
|
63835
|
-
|
|
64542
|
+
resolve49();
|
|
63836
64543
|
return;
|
|
63837
64544
|
}
|
|
63838
|
-
enqueueAt(frame,
|
|
64545
|
+
enqueueAt(frame, resolve49);
|
|
63839
64546
|
});
|
|
63840
64547
|
const advanceTo = (frame) => {
|
|
63841
64548
|
cursor = frame;
|
|
63842
64549
|
flushAt(frame);
|
|
63843
64550
|
};
|
|
63844
|
-
const waitForAllDone = () => new Promise((
|
|
64551
|
+
const waitForAllDone = () => new Promise((resolve49) => {
|
|
63845
64552
|
if (cursor >= endFrame) {
|
|
63846
|
-
|
|
64553
|
+
resolve49();
|
|
63847
64554
|
return;
|
|
63848
64555
|
}
|
|
63849
|
-
enqueueAt(endFrame,
|
|
64556
|
+
enqueueAt(endFrame, resolve49);
|
|
63850
64557
|
});
|
|
63851
64558
|
return { waitForFrame, advanceTo, waitForAllDone };
|
|
63852
64559
|
}
|
|
@@ -64032,7 +64739,7 @@ async function spawnStreamingEncoder(outputPath, options, signal, config) {
|
|
|
64032
64739
|
let stderr = "";
|
|
64033
64740
|
let exitCode = null;
|
|
64034
64741
|
let exitPromiseResolve = null;
|
|
64035
|
-
const exitPromise = new Promise((
|
|
64742
|
+
const exitPromise = new Promise((resolve49) => exitPromiseResolve = resolve49);
|
|
64036
64743
|
ffmpeg.stderr?.on("data", (data) => {
|
|
64037
64744
|
stderr += data.toString();
|
|
64038
64745
|
});
|
|
@@ -64092,8 +64799,8 @@ Process error: ${err.message}`;
|
|
|
64092
64799
|
if (signal) signal.removeEventListener("abort", onAbort);
|
|
64093
64800
|
const stdin = ffmpeg.stdin;
|
|
64094
64801
|
if (stdin && !stdin.destroyed) {
|
|
64095
|
-
await new Promise((
|
|
64096
|
-
stdin.end(() =>
|
|
64802
|
+
await new Promise((resolve49) => {
|
|
64803
|
+
stdin.end(() => resolve49());
|
|
64097
64804
|
});
|
|
64098
64805
|
}
|
|
64099
64806
|
await exitPromise;
|
|
@@ -64138,7 +64845,7 @@ import { spawn as spawn8 } from "child_process";
|
|
|
64138
64845
|
import { readFileSync as readFileSync20 } from "fs";
|
|
64139
64846
|
import { extname as extname5 } from "path";
|
|
64140
64847
|
function runFfprobe(args) {
|
|
64141
|
-
return new Promise((
|
|
64848
|
+
return new Promise((resolve49, reject) => {
|
|
64142
64849
|
const proc = spawn8("ffprobe", args);
|
|
64143
64850
|
let stdout2 = "";
|
|
64144
64851
|
let stderr = "";
|
|
@@ -64152,7 +64859,7 @@ function runFfprobe(args) {
|
|
|
64152
64859
|
if (code !== 0) {
|
|
64153
64860
|
reject(new Error(`[FFmpeg] ffprobe exited with code ${code}: ${stderr}`));
|
|
64154
64861
|
} else {
|
|
64155
|
-
|
|
64862
|
+
resolve49(stdout2);
|
|
64156
64863
|
}
|
|
64157
64864
|
});
|
|
64158
64865
|
proc.on("error", (err) => {
|
|
@@ -64277,6 +64984,7 @@ async function extractMediaMetadata(filePath) {
|
|
|
64277
64984
|
if (stillImageMeta) {
|
|
64278
64985
|
return {
|
|
64279
64986
|
durationSeconds: 0,
|
|
64987
|
+
videoStreamDurationSeconds: 0,
|
|
64280
64988
|
width: stillImageMeta.width,
|
|
64281
64989
|
height: stillImageMeta.height,
|
|
64282
64990
|
fps: 0,
|
|
@@ -64301,8 +65009,11 @@ async function extractMediaMetadata(filePath) {
|
|
|
64301
65009
|
const pixelFormat = videoStream.pix_fmt || "";
|
|
64302
65010
|
const alphaMode = readTagCI(videoStream.tags, "alpha_mode");
|
|
64303
65011
|
const hasAlpha = /(^|[^a-z])yuva|rgba|argb|bgra|gbrap|gray[a-z0-9]*a/i.test(pixelFormat) || alphaMode === "1";
|
|
65012
|
+
const containerDuration = output?.format.duration ? parseFloat(output.format.duration) : 0;
|
|
65013
|
+
const streamDuration = videoStream.duration ? parseFloat(videoStream.duration) : 0;
|
|
64304
65014
|
return {
|
|
64305
|
-
durationSeconds:
|
|
65015
|
+
durationSeconds: containerDuration,
|
|
65016
|
+
videoStreamDurationSeconds: streamDuration > 0 ? streamDuration : containerDuration,
|
|
64306
65017
|
width: videoStream.width || stillImageMeta?.width || 0,
|
|
64307
65018
|
height: videoStream.height || stillImageMeta?.height || 0,
|
|
64308
65019
|
fps,
|
|
@@ -66262,7 +66973,7 @@ async function extractVideoFramesRange(videoPath, videoId, startTime, duration,
|
|
|
66262
66973
|
args.push("-q:v", format === "jpg" ? String(Math.ceil((100 - quality) / 3)) : "0");
|
|
66263
66974
|
if (format === "png") args.push("-compression_level", "6");
|
|
66264
66975
|
args.push("-y", outputPattern);
|
|
66265
|
-
return new Promise((
|
|
66976
|
+
return new Promise((resolve49, reject) => {
|
|
66266
66977
|
const ffmpeg = spawn9("ffmpeg", args);
|
|
66267
66978
|
trackChildProcess(ffmpeg);
|
|
66268
66979
|
let stderr = "";
|
|
@@ -66298,7 +67009,7 @@ async function extractVideoFramesRange(videoPath, videoId, startTime, duration,
|
|
|
66298
67009
|
files.forEach((file, index) => {
|
|
66299
67010
|
framePaths.set(index, join29(videoOutputDir, file));
|
|
66300
67011
|
});
|
|
66301
|
-
|
|
67012
|
+
resolve49({
|
|
66302
67013
|
videoId,
|
|
66303
67014
|
srcPath: videoPath,
|
|
66304
67015
|
outputDir: videoOutputDir,
|
|
@@ -67868,7 +68579,7 @@ var init_readWebGlVendorInfoFromCanvas = __esm({
|
|
|
67868
68579
|
});
|
|
67869
68580
|
|
|
67870
68581
|
// ../engine/src/services/parallelCoordinator.ts
|
|
67871
|
-
import { cpus as cpus2, freemem as
|
|
68582
|
+
import { cpus as cpus2, freemem as freemem3, totalmem as totalmem4 } from "os";
|
|
67872
68583
|
import { existsSync as existsSync28, mkdirSync as mkdirSync17, readdirSync as readdirSync13 } from "fs";
|
|
67873
68584
|
import { copyFile, rename } from "fs/promises";
|
|
67874
68585
|
import { join as join31 } from "path";
|
|
@@ -68072,7 +68783,7 @@ function getSystemResources() {
|
|
|
68072
68783
|
return {
|
|
68073
68784
|
cpuCores: cpus2().length,
|
|
68074
68785
|
totalMemoryMB: Math.round(totalmem4() / (1024 * 1024)),
|
|
68075
|
-
freeMemoryMB: Math.round(
|
|
68786
|
+
freeMemoryMB: Math.round(freemem3() / (1024 * 1024)),
|
|
68076
68787
|
recommendedWorkers: calculateOptimalWorkers(1e3)
|
|
68077
68788
|
};
|
|
68078
68789
|
}
|
|
@@ -68127,11 +68838,11 @@ function createFileServer(options) {
|
|
|
68127
68838
|
headers: { "Content-Type": contentType }
|
|
68128
68839
|
});
|
|
68129
68840
|
});
|
|
68130
|
-
return new Promise((
|
|
68841
|
+
return new Promise((resolve49) => {
|
|
68131
68842
|
const server = serve({ fetch: app.fetch, port }, (info) => {
|
|
68132
68843
|
const actualPort = info.port;
|
|
68133
68844
|
const url = `http://localhost:${actualPort}`;
|
|
68134
|
-
|
|
68845
|
+
resolve49({
|
|
68135
68846
|
url,
|
|
68136
68847
|
port: actualPort,
|
|
68137
68848
|
close: () => server.close()
|
|
@@ -70557,10 +71268,10 @@ function createFileServer2(options) {
|
|
|
70557
71268
|
headers: { "Content-Type": contentType }
|
|
70558
71269
|
});
|
|
70559
71270
|
});
|
|
70560
|
-
return new Promise((
|
|
71271
|
+
return new Promise((resolve49) => {
|
|
70561
71272
|
const connections = /* @__PURE__ */ new Set();
|
|
70562
71273
|
const server = serve2({ fetch: app.fetch, port }, (info) => {
|
|
70563
|
-
|
|
71274
|
+
resolve49({
|
|
70564
71275
|
url: `http://localhost:${info.port}`,
|
|
70565
71276
|
port: info.port,
|
|
70566
71277
|
addPreHeadScript: (script) => {
|
|
@@ -71119,7 +71830,7 @@ var init_errorMessage = __esm({
|
|
|
71119
71830
|
|
|
71120
71831
|
// ../producer/src/services/render/cleanup.ts
|
|
71121
71832
|
import { rmSync as rmSync7 } from "fs";
|
|
71122
|
-
import { freemem as
|
|
71833
|
+
import { freemem as freemem4 } from "os";
|
|
71123
71834
|
async function safeCleanup(label2, fn, log2 = defaultLogger) {
|
|
71124
71835
|
try {
|
|
71125
71836
|
await fn();
|
|
@@ -71160,7 +71871,7 @@ function buildRenderErrorDetails(input2) {
|
|
|
71160
71871
|
message: errorMessage,
|
|
71161
71872
|
stack: errorStack,
|
|
71162
71873
|
elapsedMs: Date.now() - input2.pipelineStartMs,
|
|
71163
|
-
freeMemoryMB: Math.round(
|
|
71874
|
+
freeMemoryMB: Math.round(freemem4() / (1024 * 1024)),
|
|
71164
71875
|
browserConsoleTail: input2.lastBrowserConsole.length > 0 ? input2.lastBrowserConsole.slice(-30) : void 0,
|
|
71165
71876
|
perfStages: Object.keys(input2.perfStages).length > 0 ? { ...input2.perfStages } : void 0,
|
|
71166
71877
|
hdrDiagnostics: input2.hdrDiagnostics.videoExtractionFailures > 0 || input2.hdrDiagnostics.imageDecodeFailures > 0 ? { ...input2.hdrDiagnostics } : void 0
|
|
@@ -71447,7 +72158,7 @@ function resolveRenderWorkerCount(totalFrames, requestedWorkers, cfg, compiled,
|
|
|
71447
72158
|
function createCaptureCalibrationConfig(cfg) {
|
|
71448
72159
|
return {
|
|
71449
72160
|
...cfg,
|
|
71450
|
-
protocolTimeout: Math.
|
|
72161
|
+
protocolTimeout: Math.max(cfg.protocolTimeout, CAPTURE_CALIBRATION_PROTOCOL_TIMEOUT_MS)
|
|
71451
72162
|
};
|
|
71452
72163
|
}
|
|
71453
72164
|
function estimateMeasuredCaptureCostMultiplier(samples) {
|
|
@@ -71485,10 +72196,13 @@ function selectCaptureCalibrationFrames(totalFrames) {
|
|
|
71485
72196
|
new Set(candidates.map((frame) => Math.max(0, Math.min(lastFrame, frame))))
|
|
71486
72197
|
).sort((a, b2) => a - b2);
|
|
71487
72198
|
}
|
|
71488
|
-
async function measureCaptureCostFromSession(session, totalFrames, fps) {
|
|
72199
|
+
async function measureCaptureCostFromSession(session, totalFrames, fps, log2) {
|
|
71489
72200
|
const sampledFrames = selectCaptureCalibrationFrames(totalFrames);
|
|
71490
72201
|
const samples = [];
|
|
71491
|
-
|
|
72202
|
+
const totalSamples = sampledFrames.length;
|
|
72203
|
+
for (let i2 = 0; i2 < sampledFrames.length; i2++) {
|
|
72204
|
+
const frameIndex = sampledFrames[i2];
|
|
72205
|
+
log2?.info(`Calibration: capturing test frame ${i2 + 1}/${totalSamples}...`);
|
|
71492
72206
|
const time = frameIndex / fps;
|
|
71493
72207
|
const startedAt = Date.now();
|
|
71494
72208
|
const result = await captureFrameToBuffer(session, frameIndex, time);
|
|
@@ -71497,8 +72211,12 @@ async function measureCaptureCostFromSession(session, totalFrames, fps) {
|
|
|
71497
72211
|
captureTimeMs: result.captureTimeMs || Date.now() - startedAt
|
|
71498
72212
|
});
|
|
71499
72213
|
}
|
|
72214
|
+
const estimate = estimateMeasuredCaptureCostMultiplier(samples);
|
|
72215
|
+
if (estimate.p95Ms !== void 0) {
|
|
72216
|
+
log2?.info(`Calibration complete, estimated cost: ${estimate.p95Ms}ms/frame (p95)`);
|
|
72217
|
+
}
|
|
71500
72218
|
return {
|
|
71501
|
-
estimate
|
|
72219
|
+
estimate,
|
|
71502
72220
|
samples
|
|
71503
72221
|
};
|
|
71504
72222
|
}
|
|
@@ -71543,6 +72261,7 @@ async function runCaptureCalibration(input2) {
|
|
|
71543
72261
|
const fps = fpsToNumber(job.config.fps);
|
|
71544
72262
|
const sessionRef = { current: null };
|
|
71545
72263
|
const runOneCalibration = async (sessionDir, sessionCfg) => {
|
|
72264
|
+
log2.info("Launching browser for capture calibration...");
|
|
71546
72265
|
const session = await createCaptureSession(
|
|
71547
72266
|
fileServer.url,
|
|
71548
72267
|
sessionDir,
|
|
@@ -71552,10 +72271,21 @@ async function runCaptureCalibration(input2) {
|
|
|
71552
72271
|
);
|
|
71553
72272
|
sessionRef.current = session;
|
|
71554
72273
|
if (!session.isInitialized) {
|
|
71555
|
-
|
|
72274
|
+
log2.info("Initializing calibration session...");
|
|
72275
|
+
const calInitStart = Date.now();
|
|
72276
|
+
const calHeartbeat = setInterval(() => {
|
|
72277
|
+
const elapsed = ((Date.now() - calInitStart) / 1e3).toFixed(1);
|
|
72278
|
+
log2.info(`Still waiting for browser initialization... (${elapsed}s elapsed)`);
|
|
72279
|
+
}, 3e4);
|
|
72280
|
+
try {
|
|
72281
|
+
await initializeSession(session);
|
|
72282
|
+
} finally {
|
|
72283
|
+
clearInterval(calHeartbeat);
|
|
72284
|
+
}
|
|
71556
72285
|
}
|
|
71557
72286
|
assertNotAborted();
|
|
71558
|
-
|
|
72287
|
+
log2.info("Calibration session ready, capturing test frames...");
|
|
72288
|
+
const result = await measureCaptureCostFromSession(session, totalFrames, fps, log2);
|
|
71559
72289
|
logCaptureCalibrationResult(result, log2);
|
|
71560
72290
|
return result;
|
|
71561
72291
|
};
|
|
@@ -72788,6 +73518,9 @@ async function runProbeStage(input2) {
|
|
|
72788
73518
|
if (compiled.unresolvedCompositions.length > 0)
|
|
72789
73519
|
reasons.push(`${compiled.unresolvedCompositions.length} unresolved composition(s)`);
|
|
72790
73520
|
if (hasScriptedAudio) reasons.push("scripted audio volume");
|
|
73521
|
+
log2.info("Launching browser for composition probe...", {
|
|
73522
|
+
reasons
|
|
73523
|
+
});
|
|
72791
73524
|
fileServer = await createFileServer2({
|
|
72792
73525
|
projectDir,
|
|
72793
73526
|
compiledDir: join41(workDir, "compiled"),
|
|
@@ -72803,6 +73536,7 @@ async function runProbeStage(input2) {
|
|
|
72803
73536
|
quality: needsAlpha ? void 0 : 80,
|
|
72804
73537
|
deviceScaleFactor
|
|
72805
73538
|
};
|
|
73539
|
+
log2.info("Browser launched, creating capture session...");
|
|
72806
73540
|
probeSession = await createCaptureSession(
|
|
72807
73541
|
fileServer.url,
|
|
72808
73542
|
join41(workDir, "probe"),
|
|
@@ -72810,10 +73544,24 @@ async function runProbeStage(input2) {
|
|
|
72810
73544
|
null,
|
|
72811
73545
|
cfg
|
|
72812
73546
|
);
|
|
72813
|
-
|
|
73547
|
+
log2.info("Waiting for composition to initialize...");
|
|
73548
|
+
const initStart = Date.now();
|
|
73549
|
+
const heartbeat = setInterval(() => {
|
|
73550
|
+
const elapsed = ((Date.now() - initStart) / 1e3).toFixed(1);
|
|
73551
|
+
log2.info(`Still waiting for browser initialization... (${elapsed}s elapsed)`);
|
|
73552
|
+
}, 3e4);
|
|
73553
|
+
try {
|
|
73554
|
+
await initializeSession(probeSession);
|
|
73555
|
+
} finally {
|
|
73556
|
+
clearInterval(heartbeat);
|
|
73557
|
+
}
|
|
73558
|
+
log2.info("Composition ready", {
|
|
73559
|
+
initMs: Date.now() - initStart
|
|
73560
|
+
});
|
|
72814
73561
|
assertNotAborted();
|
|
72815
73562
|
lastBrowserConsole = probeSession.browserConsoleBuffer;
|
|
72816
73563
|
if (composition.duration <= 0) {
|
|
73564
|
+
log2.info("Discovering composition duration...");
|
|
72817
73565
|
const discoveredDuration = await getCompositionDuration(probeSession);
|
|
72818
73566
|
assertNotAborted();
|
|
72819
73567
|
log2.info("Probed composition duration from browser", {
|
|
@@ -72846,6 +73594,7 @@ async function runProbeStage(input2) {
|
|
|
72846
73594
|
writeCompiledArtifacts(compiled, workDir, Boolean(job.config.debug));
|
|
72847
73595
|
}
|
|
72848
73596
|
}
|
|
73597
|
+
log2.info("Discovering media assets from browser DOM...");
|
|
72849
73598
|
const browserMedia = await discoverMediaFromBrowser(probeSession.page);
|
|
72850
73599
|
assertNotAborted();
|
|
72851
73600
|
if (browserMedia.length > 0) {
|
|
@@ -72933,6 +73682,9 @@ async function runProbeStage(input2) {
|
|
|
72933
73682
|
}
|
|
72934
73683
|
}
|
|
72935
73684
|
if (composition.audios.length > 0) {
|
|
73685
|
+
log2.info("Discovering audio volume automation...", {
|
|
73686
|
+
audioCount: composition.audios.length
|
|
73687
|
+
});
|
|
72936
73688
|
const automation = await discoverAudioVolumeAutomationFromTimeline(
|
|
72937
73689
|
probeSession.page,
|
|
72938
73690
|
composition.audios.map((audio) => audio.id),
|
|
@@ -72953,6 +73705,9 @@ async function runProbeStage(input2) {
|
|
|
72953
73705
|
}
|
|
72954
73706
|
}
|
|
72955
73707
|
if (composition.videos.length > 0) {
|
|
73708
|
+
log2.info("Discovering video visibility windows...", {
|
|
73709
|
+
videoCount: composition.videos.length
|
|
73710
|
+
});
|
|
72956
73711
|
const visibilityWindows = await discoverVideoVisibilityFromTimeline(
|
|
72957
73712
|
probeSession.page,
|
|
72958
73713
|
composition.duration
|
|
@@ -73055,6 +73810,7 @@ async function runExtractVideosStage(input2) {
|
|
|
73055
73810
|
compiledDir,
|
|
73056
73811
|
job,
|
|
73057
73812
|
cfg,
|
|
73813
|
+
log: log2,
|
|
73058
73814
|
composition,
|
|
73059
73815
|
abortSignal,
|
|
73060
73816
|
assertNotAborted,
|
|
@@ -73068,6 +73824,7 @@ async function runExtractVideosStage(input2) {
|
|
|
73068
73824
|
const nativeHdrVideoIds = /* @__PURE__ */ new Set();
|
|
73069
73825
|
const videoTransfers = /* @__PURE__ */ new Map();
|
|
73070
73826
|
if (job.config.hdrMode !== "force-sdr" && composition.videos.length > 0) {
|
|
73827
|
+
log2?.info("Probing video color spaces...", { videoCount: composition.videos.length });
|
|
73071
73828
|
await Promise.all(
|
|
73072
73829
|
composition.videos.map(async (v2) => {
|
|
73073
73830
|
const videoPath = isAbsolute9(v2.src) ? v2.src : resolveProjectRelativeSrc(v2.src, projectDir, compiledDir);
|
|
@@ -73105,6 +73862,11 @@ async function runExtractVideosStage(input2) {
|
|
|
73105
73862
|
imageColorSpaces.push(...probed);
|
|
73106
73863
|
}
|
|
73107
73864
|
if (composition.videos.length > 0) {
|
|
73865
|
+
const totalVideos = composition.videos.length;
|
|
73866
|
+
for (let i2 = 0; i2 < totalVideos; i2++) {
|
|
73867
|
+
const v2 = composition.videos[i2];
|
|
73868
|
+
log2?.info(`Extracting frames from video ${i2 + 1}/${totalVideos}: ${v2.src}`);
|
|
73869
|
+
}
|
|
73108
73870
|
extractionResult = await extractAllVideoFrames(
|
|
73109
73871
|
composition.videos,
|
|
73110
73872
|
projectDir,
|
|
@@ -74308,8 +75070,8 @@ async function createShaderTransitionWorkerPool(opts) {
|
|
|
74308
75070
|
if (terminated) {
|
|
74309
75071
|
throw new Error("shader-blend pool already terminated");
|
|
74310
75072
|
}
|
|
74311
|
-
return new Promise((
|
|
74312
|
-
const task = traceEnabled ? { req, resolve:
|
|
75073
|
+
return new Promise((resolve49, reject) => {
|
|
75074
|
+
const task = traceEnabled ? { req, resolve: resolve49, reject, enqueuedAtMs: Date.now(), traceId: ++nextTaskId } : { req, resolve: resolve49, reject };
|
|
74313
75075
|
const idle = slots.find((s2) => !s2.busy && !s2.dead);
|
|
74314
75076
|
if (idle) {
|
|
74315
75077
|
queue.unshift(task);
|
|
@@ -75853,6 +76615,7 @@ async function executeRenderJob(job, projectDir, outputPath, onProgress, abortSi
|
|
|
75853
76615
|
compiledDir,
|
|
75854
76616
|
job,
|
|
75855
76617
|
cfg,
|
|
76618
|
+
log: log2,
|
|
75856
76619
|
composition,
|
|
75857
76620
|
abortSignal,
|
|
75858
76621
|
assertNotAborted
|
|
@@ -76434,10 +77197,10 @@ var init_semaphore = __esm({
|
|
|
76434
77197
|
this.active++;
|
|
76435
77198
|
return () => this.release();
|
|
76436
77199
|
}
|
|
76437
|
-
return new Promise((
|
|
77200
|
+
return new Promise((resolve49) => {
|
|
76438
77201
|
this.queue.push(() => {
|
|
76439
77202
|
this.active++;
|
|
76440
|
-
|
|
77203
|
+
resolve49(() => this.release());
|
|
76441
77204
|
});
|
|
76442
77205
|
});
|
|
76443
77206
|
}
|
|
@@ -78316,7 +79079,7 @@ async function defaultRunFfmpeg(args) {
|
|
|
78316
79079
|
};
|
|
78317
79080
|
}
|
|
78318
79081
|
function runFfprobeJson(args) {
|
|
78319
|
-
return new Promise((
|
|
79082
|
+
return new Promise((resolve49, reject) => {
|
|
78320
79083
|
const proc = spawn10("ffprobe", args);
|
|
78321
79084
|
let stdout2 = "";
|
|
78322
79085
|
let stderr = "";
|
|
@@ -78339,7 +79102,7 @@ function runFfprobeJson(args) {
|
|
|
78339
79102
|
return;
|
|
78340
79103
|
}
|
|
78341
79104
|
try {
|
|
78342
|
-
|
|
79105
|
+
resolve49(JSON.parse(stdout2));
|
|
78343
79106
|
} catch (err) {
|
|
78344
79107
|
reject(new Error(`Failed to parse ffprobe output: ${err.message}`));
|
|
78345
79108
|
}
|
|
@@ -78672,11 +79435,11 @@ __export(ffmpeg_exports, {
|
|
|
78672
79435
|
findFFmpeg: () => findFFmpeg,
|
|
78673
79436
|
getFFmpegInstallHint: () => getFFmpegInstallHint
|
|
78674
79437
|
});
|
|
78675
|
-
import { execSync as
|
|
79438
|
+
import { execSync as execSync5 } from "child_process";
|
|
78676
79439
|
function findFFmpeg() {
|
|
78677
79440
|
try {
|
|
78678
79441
|
const cmd = process.platform === "win32" ? "where ffmpeg" : "which ffmpeg";
|
|
78679
|
-
const output =
|
|
79442
|
+
const output = execSync5(cmd, {
|
|
78680
79443
|
encoding: "utf-8",
|
|
78681
79444
|
stdio: ["pipe", "pipe", "pipe"],
|
|
78682
79445
|
timeout: 5e3
|
|
@@ -79308,8 +80071,8 @@ async function runDevMode(dir, options) {
|
|
|
79308
80071
|
};
|
|
79309
80072
|
process.once("SIGINT", shutdown);
|
|
79310
80073
|
process.once("SIGTERM", shutdown);
|
|
79311
|
-
return new Promise((
|
|
79312
|
-
child.on("close", () =>
|
|
80074
|
+
return new Promise((resolve49) => {
|
|
80075
|
+
child.on("close", () => resolve49());
|
|
79313
80076
|
});
|
|
79314
80077
|
}
|
|
79315
80078
|
function hasLocalStudio(dir) {
|
|
@@ -79389,8 +80152,8 @@ async function runLocalStudioMode(dir, options) {
|
|
|
79389
80152
|
};
|
|
79390
80153
|
process.once("SIGINT", shutdown);
|
|
79391
80154
|
process.once("SIGTERM", shutdown);
|
|
79392
|
-
return new Promise((
|
|
79393
|
-
child.on("close", () =>
|
|
80155
|
+
return new Promise((resolve49) => {
|
|
80156
|
+
child.on("close", () => resolve49());
|
|
79394
80157
|
});
|
|
79395
80158
|
}
|
|
79396
80159
|
async function runEmbeddedMode(dir, startPort, options) {
|
|
@@ -81841,6 +82604,119 @@ var init_variables = __esm({
|
|
|
81841
82604
|
}
|
|
81842
82605
|
});
|
|
81843
82606
|
|
|
82607
|
+
// src/utils/renderArgs.ts
|
|
82608
|
+
import { resolve as resolve35, sep as sep7 } from "path";
|
|
82609
|
+
function parseBrowserTimeoutMsArg(raw) {
|
|
82610
|
+
if (raw == null) return { ok: true, value: void 0 };
|
|
82611
|
+
const parsed = Number(raw);
|
|
82612
|
+
if (!Number.isFinite(parsed)) {
|
|
82613
|
+
return { ok: false, error: { kind: "not-a-number", raw } };
|
|
82614
|
+
}
|
|
82615
|
+
if (parsed <= 0) {
|
|
82616
|
+
return { ok: false, error: { kind: "not-positive", raw } };
|
|
82617
|
+
}
|
|
82618
|
+
if (parsed > MAX_PAGE_NAVIGATION_TIMEOUT_SECONDS) {
|
|
82619
|
+
return { ok: false, error: { kind: "too-large", raw } };
|
|
82620
|
+
}
|
|
82621
|
+
const ms = Math.round(parsed * 1e3);
|
|
82622
|
+
if (ms < MIN_PAGE_NAVIGATION_TIMEOUT_MS) {
|
|
82623
|
+
return { ok: false, error: { kind: "too-small", raw } };
|
|
82624
|
+
}
|
|
82625
|
+
return { ok: true, value: ms };
|
|
82626
|
+
}
|
|
82627
|
+
function browserTimeoutErrorMessage(error) {
|
|
82628
|
+
const title = "Invalid browser-timeout";
|
|
82629
|
+
switch (error.kind) {
|
|
82630
|
+
case "not-a-number":
|
|
82631
|
+
return {
|
|
82632
|
+
title,
|
|
82633
|
+
message: `Got "${error.raw}", which is not a number. Pass a positive number of seconds (e.g. 180).`
|
|
82634
|
+
};
|
|
82635
|
+
case "not-positive":
|
|
82636
|
+
return {
|
|
82637
|
+
title,
|
|
82638
|
+
message: `Got "${error.raw}" seconds, which is not positive. Pass a positive number of seconds (e.g. 180).`
|
|
82639
|
+
};
|
|
82640
|
+
case "too-small":
|
|
82641
|
+
return {
|
|
82642
|
+
title,
|
|
82643
|
+
message: `Got "${error.raw}" seconds, which rounds to 0 ms. Puppeteer treats 0 as 'no timeout' \u2014 pass a value that rounds to at least 1 ms.`
|
|
82644
|
+
};
|
|
82645
|
+
case "too-large":
|
|
82646
|
+
return {
|
|
82647
|
+
title,
|
|
82648
|
+
message: `Got "${error.raw}" seconds, which exceeds the ${MAX_PAGE_NAVIGATION_TIMEOUT_SECONDS}s (24h) cap. Node's setTimeout overflows for larger values.`
|
|
82649
|
+
};
|
|
82650
|
+
}
|
|
82651
|
+
}
|
|
82652
|
+
function resolveBrowserTimeoutMsArg(raw) {
|
|
82653
|
+
const result = parseBrowserTimeoutMsArg(raw);
|
|
82654
|
+
if (!result.ok) {
|
|
82655
|
+
const { title, message, hint } = browserTimeoutErrorMessage(result.error);
|
|
82656
|
+
errorBox(title, message, hint);
|
|
82657
|
+
process.exit(1);
|
|
82658
|
+
}
|
|
82659
|
+
return result.value;
|
|
82660
|
+
}
|
|
82661
|
+
function parseCompositionEntryArg(raw, projectDir, stat3) {
|
|
82662
|
+
const trimmed = raw?.trim().replace(/^\.\//, "") || void 0;
|
|
82663
|
+
if (!trimmed || trimmed === ".") return { ok: true, value: void 0 };
|
|
82664
|
+
const absProjectDir = resolve35(projectDir);
|
|
82665
|
+
const entryPath = resolve35(absProjectDir, trimmed);
|
|
82666
|
+
if (entryPath !== absProjectDir && !entryPath.startsWith(absProjectDir + sep7)) {
|
|
82667
|
+
return { ok: false, error: { kind: "outside-project", entryFile: trimmed } };
|
|
82668
|
+
}
|
|
82669
|
+
let entryStat;
|
|
82670
|
+
try {
|
|
82671
|
+
entryStat = stat3(entryPath);
|
|
82672
|
+
} catch {
|
|
82673
|
+
return { ok: false, error: { kind: "not-found", entryFile: trimmed } };
|
|
82674
|
+
}
|
|
82675
|
+
if (!entryStat.isFile()) {
|
|
82676
|
+
return { ok: false, error: { kind: "not-a-file", entryFile: trimmed } };
|
|
82677
|
+
}
|
|
82678
|
+
return { ok: true, value: trimmed };
|
|
82679
|
+
}
|
|
82680
|
+
function compositionEntryErrorMessage(error) {
|
|
82681
|
+
switch (error.kind) {
|
|
82682
|
+
case "outside-project":
|
|
82683
|
+
return {
|
|
82684
|
+
title: "Invalid composition path",
|
|
82685
|
+
message: `Entry file must stay inside the project directory: ${error.entryFile}`
|
|
82686
|
+
};
|
|
82687
|
+
case "not-found":
|
|
82688
|
+
return {
|
|
82689
|
+
title: "Composition not found",
|
|
82690
|
+
message: `"${error.entryFile}" does not exist in the project directory.`,
|
|
82691
|
+
hint: "Pass a path to a .html file relative to the project root (e.g. compositions/intro.html)."
|
|
82692
|
+
};
|
|
82693
|
+
case "not-a-file":
|
|
82694
|
+
return {
|
|
82695
|
+
title: "Invalid composition path",
|
|
82696
|
+
message: `"${error.entryFile}" is a directory, not an .html file.`,
|
|
82697
|
+
hint: "Pass a path to a .html file (e.g. compositions/intro.html), or omit --composition to render index.html."
|
|
82698
|
+
};
|
|
82699
|
+
}
|
|
82700
|
+
}
|
|
82701
|
+
function resolveCompositionEntryArg(raw, projectDir, stat3) {
|
|
82702
|
+
const result = parseCompositionEntryArg(raw, projectDir, stat3);
|
|
82703
|
+
if (!result.ok) {
|
|
82704
|
+
const { title, message, hint } = compositionEntryErrorMessage(result.error);
|
|
82705
|
+
errorBox(title, message, hint);
|
|
82706
|
+
process.exit(1);
|
|
82707
|
+
}
|
|
82708
|
+
return result.value;
|
|
82709
|
+
}
|
|
82710
|
+
var MIN_PAGE_NAVIGATION_TIMEOUT_MS, MAX_PAGE_NAVIGATION_TIMEOUT_SECONDS;
|
|
82711
|
+
var init_renderArgs = __esm({
|
|
82712
|
+
"src/utils/renderArgs.ts"() {
|
|
82713
|
+
"use strict";
|
|
82714
|
+
init_format();
|
|
82715
|
+
MIN_PAGE_NAVIGATION_TIMEOUT_MS = 1;
|
|
82716
|
+
MAX_PAGE_NAVIGATION_TIMEOUT_SECONDS = 86400;
|
|
82717
|
+
}
|
|
82718
|
+
});
|
|
82719
|
+
|
|
81844
82720
|
// src/utils/producer.ts
|
|
81845
82721
|
async function loadProducer() {
|
|
81846
82722
|
return await Promise.resolve().then(() => (init_src3(), src_exports3));
|
|
@@ -81951,18 +82827,18 @@ async function getDoctorSummary() {
|
|
|
81951
82827
|
}
|
|
81952
82828
|
}
|
|
81953
82829
|
function askQuestion(prompt) {
|
|
81954
|
-
return new Promise((
|
|
82830
|
+
return new Promise((resolve49) => {
|
|
81955
82831
|
const rl = readline.createInterface({
|
|
81956
82832
|
input: process.stdin,
|
|
81957
82833
|
output: process.stdout
|
|
81958
82834
|
});
|
|
81959
82835
|
rl.question(prompt, (answer) => {
|
|
81960
82836
|
rl.close();
|
|
81961
|
-
|
|
82837
|
+
resolve49(answer);
|
|
81962
82838
|
});
|
|
81963
82839
|
const timeout = setTimeout(() => {
|
|
81964
82840
|
rl.close();
|
|
81965
|
-
|
|
82841
|
+
resolve49("");
|
|
81966
82842
|
}, 1e4);
|
|
81967
82843
|
if (typeof timeout === "object" && timeout !== null && "unref" in timeout) {
|
|
81968
82844
|
timeout.unref();
|
|
@@ -82025,7 +82901,8 @@ function buildDockerRunArgs(input2) {
|
|
|
82025
82901
|
...options.variables && Object.keys(options.variables).length > 0 ? ["--variables", JSON.stringify(options.variables)] : [],
|
|
82026
82902
|
...options.entryFile ? ["--composition", options.entryFile] : [],
|
|
82027
82903
|
...options.outputResolution ? ["--resolution", options.outputResolution] : [],
|
|
82028
|
-
...options.pageSideCompositing === false ? ["--no-page-side-compositing"] : []
|
|
82904
|
+
...options.pageSideCompositing === false ? ["--no-page-side-compositing"] : [],
|
|
82905
|
+
...options.pageNavigationTimeoutMs != null ? ["--browser-timeout", String(options.pageNavigationTimeoutMs / 1e3)] : []
|
|
82029
82906
|
];
|
|
82030
82907
|
}
|
|
82031
82908
|
var init_dockerRunArgs = __esm({
|
|
@@ -82068,8 +82945,8 @@ __export(render_exports, {
|
|
|
82068
82945
|
resolveBrowserGpuForCli: () => resolveBrowserGpuForCli
|
|
82069
82946
|
});
|
|
82070
82947
|
import { mkdirSync as mkdirSync32, readdirSync as readdirSync23, readFileSync as readFileSync40, statSync as statSync20, writeFileSync as writeFileSync27, rmSync as rmSync14 } from "fs";
|
|
82071
|
-
import { cpus as cpus4, freemem as
|
|
82072
|
-
import { resolve as
|
|
82948
|
+
import { cpus as cpus4, freemem as freemem5, tmpdir as tmpdir5 } from "os";
|
|
82949
|
+
import { resolve as resolve36, dirname as dirname23, join as join63, basename as basename12 } from "path";
|
|
82073
82950
|
import { execFileSync as execFileSync6, spawn as spawn13 } from "child_process";
|
|
82074
82951
|
function formatFpsParseError(input2, reason) {
|
|
82075
82952
|
switch (reason) {
|
|
@@ -82098,8 +82975,8 @@ function dockerImageTag(version) {
|
|
|
82098
82975
|
return `${DOCKER_IMAGE_PREFIX}:${version}`;
|
|
82099
82976
|
}
|
|
82100
82977
|
function resolveDockerfilePath() {
|
|
82101
|
-
const builtPath =
|
|
82102
|
-
const devPath =
|
|
82978
|
+
const builtPath = resolve36(__dirname, "docker", "Dockerfile.render");
|
|
82979
|
+
const devPath = resolve36(__dirname, "..", "src", "docker", "Dockerfile.render");
|
|
82103
82980
|
for (const p2 of [builtPath, devPath]) {
|
|
82104
82981
|
try {
|
|
82105
82982
|
statSync20(p2);
|
|
@@ -82203,8 +83080,8 @@ async function renderDocker(projectDir, outputPath, options) {
|
|
|
82203
83080
|
const outputFilename = basename12(outputPath);
|
|
82204
83081
|
const dockerArgs = buildDockerRunArgs({
|
|
82205
83082
|
imageTag,
|
|
82206
|
-
projectDir:
|
|
82207
|
-
outputDir:
|
|
83083
|
+
projectDir: resolve36(projectDir),
|
|
83084
|
+
outputDir: resolve36(outputDir),
|
|
82208
83085
|
outputFilename,
|
|
82209
83086
|
platform: platform9,
|
|
82210
83087
|
options: {
|
|
@@ -82221,7 +83098,8 @@ async function renderDocker(projectDir, outputPath, options) {
|
|
|
82221
83098
|
variables: options.variables,
|
|
82222
83099
|
entryFile: options.entryFile,
|
|
82223
83100
|
outputResolution: options.outputResolution,
|
|
82224
|
-
pageSideCompositing: options.pageSideCompositing
|
|
83101
|
+
pageSideCompositing: options.pageSideCompositing,
|
|
83102
|
+
pageNavigationTimeoutMs: options.pageNavigationTimeoutMs
|
|
82225
83103
|
}
|
|
82226
83104
|
});
|
|
82227
83105
|
if (!options.quiet) {
|
|
@@ -82277,7 +83155,10 @@ async function renderLocal(projectDir, outputPath, options) {
|
|
|
82277
83155
|
workers: options.workers,
|
|
82278
83156
|
useGpu: options.gpu,
|
|
82279
83157
|
producerConfig: producer.resolveConfig({
|
|
82280
|
-
browserGpuMode: options.browserGpuMode ?? "software"
|
|
83158
|
+
browserGpuMode: options.browserGpuMode ?? "software",
|
|
83159
|
+
...options.pageNavigationTimeoutMs != null ? { pageNavigationTimeout: options.pageNavigationTimeoutMs } : {},
|
|
83160
|
+
...options.protocolTimeout != null && { protocolTimeout: options.protocolTimeout },
|
|
83161
|
+
...options.playerReadyTimeout != null && { playerReadyTimeout: options.playerReadyTimeout }
|
|
82281
83162
|
}),
|
|
82282
83163
|
hdrMode: options.hdrMode,
|
|
82283
83164
|
crf: options.crf,
|
|
@@ -82320,7 +83201,7 @@ function scheduleRenderProcessExit() {
|
|
|
82320
83201
|
function getMemorySnapshot() {
|
|
82321
83202
|
return {
|
|
82322
83203
|
peakMemoryMb: bytesToMb(process.memoryUsage.rss()),
|
|
82323
|
-
memoryFreeMb: bytesToMb(
|
|
83204
|
+
memoryFreeMb: bytesToMb(freemem5())
|
|
82324
83205
|
};
|
|
82325
83206
|
}
|
|
82326
83207
|
function handleRenderError(error, options, startTime, docker, hint, failedStage) {
|
|
@@ -82410,6 +83291,7 @@ var init_render2 = __esm({
|
|
|
82410
83291
|
"use strict";
|
|
82411
83292
|
init_dist();
|
|
82412
83293
|
init_variables();
|
|
83294
|
+
init_renderArgs();
|
|
82413
83295
|
init_project();
|
|
82414
83296
|
init_lintProject();
|
|
82415
83297
|
init_lintFormat();
|
|
@@ -82476,7 +83358,7 @@ var init_render2 = __esm({
|
|
|
82476
83358
|
composition: {
|
|
82477
83359
|
type: "string",
|
|
82478
83360
|
alias: "c",
|
|
82479
|
-
description: "Render a specific composition file instead of index.html (e.g. compositions/intro.html). Sub-compositions using <template> wrappers must be referenced from index.html via data-composition-src."
|
|
83361
|
+
description: "Render a specific composition file instead of index.html (e.g. compositions/intro.html). Sub-compositions using <template> wrappers must be referenced from index.html via data-composition-src. Pass `.` (or omit the flag) to render the project's index.html."
|
|
82480
83362
|
},
|
|
82481
83363
|
output: {
|
|
82482
83364
|
type: "string",
|
|
@@ -82573,8 +83455,26 @@ var init_render2 = __esm({
|
|
|
82573
83455
|
type: "boolean",
|
|
82574
83456
|
description: "Run shader transitions on a page-side WebGL canvas inside Chrome instead of the Node-side layered blend. ~6\xD7 faster for SDR shader-transition renders. HDR/alpha/video content auto-disables. Use --no-page-side-compositing to force the layered path.",
|
|
82575
83457
|
default: true
|
|
83458
|
+
},
|
|
83459
|
+
"browser-timeout": {
|
|
83460
|
+
type: "string",
|
|
83461
|
+
description: "Puppeteer page-navigation timeout in SECONDS for the entry HTML. Increase when heavy compositions (many videos / fonts / asset requests) cannot reach domcontentloaded within the 60s default (see issue #1199). Accepts 0.001-86400 (24h cap). Note: this controls page.goto only \u2014 very heavy compositions may also need PRODUCER_PUPPETEER_PROTOCOL_TIMEOUT_MS / PRODUCER_PLAYER_READY_TIMEOUT_MS bumped (the post-goto window.__hf readiness poll has its own 45s budget). Env fallback: PRODUCER_PAGE_NAVIGATION_TIMEOUT_MS (MILLISECONDS)."
|
|
83462
|
+
},
|
|
83463
|
+
"protocol-timeout": {
|
|
83464
|
+
type: "string",
|
|
83465
|
+
description: "CDP protocol timeout in ms. Increase on slow/low-memory machines where Chrome operations time out. Default: 300000 (5 min). Env: PRODUCER_PUPPETEER_PROTOCOL_TIMEOUT_MS."
|
|
83466
|
+
},
|
|
83467
|
+
"player-ready-timeout": {
|
|
83468
|
+
type: "string",
|
|
83469
|
+
description: "Timeout in ms for the composition player to become ready. Increase for complex compositions on slow hardware. Default: 45000 (45 s). Env: PRODUCER_PLAYER_READY_TIMEOUT_MS."
|
|
82576
83470
|
}
|
|
82577
83471
|
},
|
|
83472
|
+
// `run` is the citty handler for `hyperframes render` — sequential flag
|
|
83473
|
+
// validation + render dispatch. Inherited CRITICAL on main (CRAP 1290);
|
|
83474
|
+
// this PR extracted --browser-timeout + --composition validators into
|
|
83475
|
+
// `utils/renderArgs.ts`, reducing cyclomatic 75→65 and CRAP 1290→978.
|
|
83476
|
+
// Full decomposition is tracked separately and out of scope for #1199.
|
|
83477
|
+
// fallow-ignore-next-line complexity
|
|
82578
83478
|
async run({ args }) {
|
|
82579
83479
|
const project = resolveProject(args.dir);
|
|
82580
83480
|
const fpsParse = parseFps(args.fps ?? "30");
|
|
@@ -82623,6 +83523,30 @@ var init_render2 = __esm({
|
|
|
82623
83523
|
}
|
|
82624
83524
|
workers = parsed;
|
|
82625
83525
|
}
|
|
83526
|
+
let protocolTimeout;
|
|
83527
|
+
if (args["protocol-timeout"] != null) {
|
|
83528
|
+
const parsed = parseInt(args["protocol-timeout"], 10);
|
|
83529
|
+
if (isNaN(parsed) || parsed < 1e3) {
|
|
83530
|
+
errorBox(
|
|
83531
|
+
"Invalid protocol-timeout",
|
|
83532
|
+
`Got "${args["protocol-timeout"]}". Must be a number >= 1000 (ms).`
|
|
83533
|
+
);
|
|
83534
|
+
process.exit(1);
|
|
83535
|
+
}
|
|
83536
|
+
protocolTimeout = parsed;
|
|
83537
|
+
}
|
|
83538
|
+
let playerReadyTimeout;
|
|
83539
|
+
if (args["player-ready-timeout"] != null) {
|
|
83540
|
+
const parsed = parseInt(args["player-ready-timeout"], 10);
|
|
83541
|
+
if (isNaN(parsed) || parsed < 1e3) {
|
|
83542
|
+
errorBox(
|
|
83543
|
+
"Invalid player-ready-timeout",
|
|
83544
|
+
`Got "${args["player-ready-timeout"]}". Must be a number >= 1000 (ms).`
|
|
83545
|
+
);
|
|
83546
|
+
process.exit(1);
|
|
83547
|
+
}
|
|
83548
|
+
playerReadyTimeout = parsed;
|
|
83549
|
+
}
|
|
82626
83550
|
if (args["page-side-compositing"] === false) {
|
|
82627
83551
|
process.env.HF_PAGE_SIDE_COMPOSITING = "false";
|
|
82628
83552
|
}
|
|
@@ -82637,12 +83561,12 @@ var init_render2 = __esm({
|
|
|
82637
83561
|
}
|
|
82638
83562
|
process.env.PRODUCER_MAX_CONCURRENT_RENDERS = String(parsed);
|
|
82639
83563
|
}
|
|
82640
|
-
const rendersDir =
|
|
83564
|
+
const rendersDir = resolve36("renders");
|
|
82641
83565
|
const ext = FORMAT_EXT[format] ?? ".mp4";
|
|
82642
83566
|
const now = /* @__PURE__ */ new Date();
|
|
82643
83567
|
const datePart = now.toISOString().slice(0, 10);
|
|
82644
83568
|
const timePart = now.toTimeString().slice(0, 8).replace(/:/g, "-");
|
|
82645
|
-
const outputPath = args.output ?
|
|
83569
|
+
const outputPath = args.output ? resolve36(args.output) : join63(rendersDir, `${project.name}_${datePart}_${timePart}${ext}`);
|
|
82646
83570
|
mkdirSync32(dirname23(outputPath), { recursive: true });
|
|
82647
83571
|
const useDocker = args.docker ?? false;
|
|
82648
83572
|
const useGpu = args.gpu ?? false;
|
|
@@ -82681,28 +83605,8 @@ var init_render2 = __esm({
|
|
|
82681
83605
|
);
|
|
82682
83606
|
process.exit(1);
|
|
82683
83607
|
}
|
|
82684
|
-
const
|
|
82685
|
-
|
|
82686
|
-
const absProjectDir = resolve35(project.dir);
|
|
82687
|
-
const entryPath = resolve35(absProjectDir, entryFile);
|
|
82688
|
-
if (!entryPath.startsWith(absProjectDir)) {
|
|
82689
|
-
errorBox(
|
|
82690
|
-
"Invalid composition path",
|
|
82691
|
-
`Entry file must stay inside the project directory: ${entryFile}`
|
|
82692
|
-
);
|
|
82693
|
-
process.exit(1);
|
|
82694
|
-
}
|
|
82695
|
-
try {
|
|
82696
|
-
statSync20(entryPath);
|
|
82697
|
-
} catch {
|
|
82698
|
-
errorBox(
|
|
82699
|
-
"Composition not found",
|
|
82700
|
-
`"${entryFile}" does not exist in the project directory.`,
|
|
82701
|
-
"Pass a path to a .html file relative to the project root (e.g. compositions/intro.html)."
|
|
82702
|
-
);
|
|
82703
|
-
process.exit(1);
|
|
82704
|
-
}
|
|
82705
|
-
}
|
|
83608
|
+
const pageNavigationTimeoutMs = resolveBrowserTimeoutMsArg(args["browser-timeout"]);
|
|
83609
|
+
const entryFile = resolveCompositionEntryArg(args.composition, project.dir, statSync20);
|
|
82706
83610
|
if (!quiet) {
|
|
82707
83611
|
const workerLabel = workers != null ? `${workers} workers` : `auto workers (${CPU_CORE_COUNT} cores detected)`;
|
|
82708
83612
|
console.log("");
|
|
@@ -82800,6 +83704,9 @@ var init_render2 = __esm({
|
|
|
82800
83704
|
entryFile,
|
|
82801
83705
|
outputResolution,
|
|
82802
83706
|
pageSideCompositing: args["page-side-compositing"] !== false,
|
|
83707
|
+
pageNavigationTimeoutMs,
|
|
83708
|
+
protocolTimeout,
|
|
83709
|
+
playerReadyTimeout,
|
|
82803
83710
|
exitAfterComplete: true
|
|
82804
83711
|
});
|
|
82805
83712
|
} else {
|
|
@@ -82818,6 +83725,9 @@ var init_render2 = __esm({
|
|
|
82818
83725
|
variables,
|
|
82819
83726
|
entryFile,
|
|
82820
83727
|
outputResolution,
|
|
83728
|
+
pageNavigationTimeoutMs,
|
|
83729
|
+
protocolTimeout,
|
|
83730
|
+
playerReadyTimeout,
|
|
82821
83731
|
exitAfterComplete: true
|
|
82822
83732
|
});
|
|
82823
83733
|
}
|
|
@@ -83028,7 +83938,7 @@ var init_lint3 = __esm({
|
|
|
83028
83938
|
// src/utils/staticProjectServer.ts
|
|
83029
83939
|
import { createServer } from "http";
|
|
83030
83940
|
import { existsSync as existsSync56, readFileSync as readFileSync41 } from "fs";
|
|
83031
|
-
import { isAbsolute as isAbsolute10, relative as relative11, resolve as
|
|
83941
|
+
import { isAbsolute as isAbsolute10, relative as relative11, resolve as resolve37 } from "path";
|
|
83032
83942
|
async function serveStaticProjectHtml(projectDir, html, bindErrorMessage = "Failed to bind local HTTP server") {
|
|
83033
83943
|
const server = createServer((req, res) => {
|
|
83034
83944
|
const url = req.url ?? "/";
|
|
@@ -83037,7 +83947,7 @@ async function serveStaticProjectHtml(projectDir, html, bindErrorMessage = "Fail
|
|
|
83037
83947
|
res.end(html);
|
|
83038
83948
|
return;
|
|
83039
83949
|
}
|
|
83040
|
-
const filePath =
|
|
83950
|
+
const filePath = resolve37(projectDir, decodeURIComponent(url).replace(/^\//, ""));
|
|
83041
83951
|
const rel = relative11(projectDir, filePath);
|
|
83042
83952
|
if (rel.startsWith("..") || isAbsolute10(rel)) {
|
|
83043
83953
|
res.writeHead(403);
|
|
@@ -83275,7 +84185,7 @@ async function seekTo(page, time) {
|
|
|
83275
84185
|
if (!fonts?.ready) return Promise.resolve();
|
|
83276
84186
|
return Promise.race([
|
|
83277
84187
|
fonts.ready.then(() => void 0),
|
|
83278
|
-
new Promise((
|
|
84188
|
+
new Promise((resolve49) => setTimeout(resolve49, 500))
|
|
83279
84189
|
]);
|
|
83280
84190
|
}).catch(() => {
|
|
83281
84191
|
});
|
|
@@ -83335,7 +84245,7 @@ async function runLayoutAudit(projectDir, opts) {
|
|
|
83335
84245
|
if (!fonts?.ready) return Promise.resolve();
|
|
83336
84246
|
return Promise.race([
|
|
83337
84247
|
fonts.ready.then(() => void 0),
|
|
83338
|
-
new Promise((
|
|
84248
|
+
new Promise((resolve49) => setTimeout(resolve49, 750))
|
|
83339
84249
|
]);
|
|
83340
84250
|
}).catch(() => {
|
|
83341
84251
|
});
|
|
@@ -83677,7 +84587,7 @@ __export(compositions_exports, {
|
|
|
83677
84587
|
parseSubComposition: () => parseSubComposition
|
|
83678
84588
|
});
|
|
83679
84589
|
import { existsSync as existsSync58, readFileSync as readFileSync44 } from "fs";
|
|
83680
|
-
import { resolve as
|
|
84590
|
+
import { resolve as resolve38, dirname as dirname25 } from "path";
|
|
83681
84591
|
function countRenderableDescendants(root) {
|
|
83682
84592
|
return Array.from(root.querySelectorAll("*")).filter(
|
|
83683
84593
|
(el) => !NON_RENDERED_TAGS.has(el.tagName.toLowerCase())
|
|
@@ -83709,7 +84619,7 @@ function parseCompositions(html, baseDir) {
|
|
|
83709
84619
|
const height = parseInt(div.getAttribute("data-height") ?? "1080", 10);
|
|
83710
84620
|
const compositionSrc = div.getAttribute("data-composition-src");
|
|
83711
84621
|
if (compositionSrc) {
|
|
83712
|
-
const subPath =
|
|
84622
|
+
const subPath = resolve38(baseDir, compositionSrc);
|
|
83713
84623
|
if (existsSync58(subPath)) {
|
|
83714
84624
|
const subHtml = readFileSync44(subPath, "utf-8");
|
|
83715
84625
|
const subInfo = parseSubComposition(subHtml, id, width, height);
|
|
@@ -83853,7 +84763,7 @@ __export(benchmark_exports, {
|
|
|
83853
84763
|
examples: () => examples13
|
|
83854
84764
|
});
|
|
83855
84765
|
import { existsSync as existsSync59, statSync as statSync22 } from "fs";
|
|
83856
|
-
import { resolve as
|
|
84766
|
+
import { resolve as resolve39, join as join66 } from "path";
|
|
83857
84767
|
var examples13, FPS_30, FPS_60, DEFAULT_CONFIGS, benchmark_default;
|
|
83858
84768
|
var init_benchmark = __esm({
|
|
83859
84769
|
"src/commands/benchmark.ts"() {
|
|
@@ -83898,7 +84808,7 @@ var init_benchmark = __esm({
|
|
|
83898
84808
|
process.exit(1);
|
|
83899
84809
|
}
|
|
83900
84810
|
const jsonOutput = args.json ?? false;
|
|
83901
|
-
const benchDir =
|
|
84811
|
+
const benchDir = resolve39("renders", ".benchmark");
|
|
83902
84812
|
let producer = null;
|
|
83903
84813
|
try {
|
|
83904
84814
|
producer = await loadProducer();
|
|
@@ -84653,12 +85563,12 @@ async function runPipeline(options, session, media, format, bgFormat) {
|
|
|
84653
85563
|
const drains = [];
|
|
84654
85564
|
if (!fgWroteFully) {
|
|
84655
85565
|
drains.push(
|
|
84656
|
-
new Promise((
|
|
85566
|
+
new Promise((resolve49) => fg.proc.stdin.once("drain", () => resolve49()))
|
|
84657
85567
|
);
|
|
84658
85568
|
}
|
|
84659
85569
|
if (!bgWroteFully && bg) {
|
|
84660
85570
|
drains.push(
|
|
84661
|
-
new Promise((
|
|
85571
|
+
new Promise((resolve49) => bg.proc.stdin.once("drain", () => resolve49()))
|
|
84662
85572
|
);
|
|
84663
85573
|
}
|
|
84664
85574
|
await Promise.all(drains);
|
|
@@ -84691,11 +85601,11 @@ ${decoder.getStderr().slice(-400)}`
|
|
|
84691
85601
|
return processed;
|
|
84692
85602
|
}
|
|
84693
85603
|
function waitForExit(proc, label2, getStderr) {
|
|
84694
|
-
return new Promise((
|
|
85604
|
+
return new Promise((resolve49, reject) => {
|
|
84695
85605
|
proc.on("error", reject);
|
|
84696
85606
|
proc.on("exit", (code, signal) => {
|
|
84697
85607
|
if (code === 0 && !signal) {
|
|
84698
|
-
|
|
85608
|
+
resolve49();
|
|
84699
85609
|
return;
|
|
84700
85610
|
}
|
|
84701
85611
|
const cause = signal ? `killed by ${signal}` : `exited with code ${code}`;
|
|
@@ -84729,7 +85639,7 @@ __export(remove_background_exports, {
|
|
|
84729
85639
|
default: () => remove_background_default,
|
|
84730
85640
|
examples: () => examples15
|
|
84731
85641
|
});
|
|
84732
|
-
import { resolve as
|
|
85642
|
+
import { resolve as resolve40 } from "path";
|
|
84733
85643
|
import { existsSync as existsSync61 } from "fs";
|
|
84734
85644
|
async function showInfo(json) {
|
|
84735
85645
|
const { selectProviders: selectProviders2, listAvailableProviders: listAvailableProviders2, DEFAULT_MODEL: DEFAULT_MODEL4, MODEL_MEMORY_MB: MODEL_MEMORY_MB2, modelPath: modelPath2 } = await Promise.resolve().then(() => (init_manager3(), manager_exports3));
|
|
@@ -84871,10 +85781,10 @@ var init_remove_background = __esm({
|
|
|
84871
85781
|
);
|
|
84872
85782
|
process.exit(1);
|
|
84873
85783
|
}
|
|
84874
|
-
const inputPath =
|
|
84875
|
-
const outputPath =
|
|
85784
|
+
const inputPath = resolve40(args.input);
|
|
85785
|
+
const outputPath = resolve40(args.output);
|
|
84876
85786
|
const backgroundOutputArg = args["background-output"];
|
|
84877
|
-
const backgroundOutputPath = backgroundOutputArg ?
|
|
85787
|
+
const backgroundOutputPath = backgroundOutputArg ? resolve40(backgroundOutputArg) : void 0;
|
|
84878
85788
|
const { render: render3 } = await Promise.resolve().then(() => (init_pipeline(), pipeline_exports));
|
|
84879
85789
|
const spin = args.json ? null : ft();
|
|
84880
85790
|
spin?.start("Preparing background-removal pipeline...");
|
|
@@ -84943,7 +85853,7 @@ __export(transcribe_exports2, {
|
|
|
84943
85853
|
examples: () => examples16
|
|
84944
85854
|
});
|
|
84945
85855
|
import { existsSync as existsSync62, writeFileSync as writeFileSync28 } from "fs";
|
|
84946
|
-
import { resolve as
|
|
85856
|
+
import { resolve as resolve41, join as join68, extname as extname11, dirname as dirname26 } from "path";
|
|
84947
85857
|
async function importTranscript(inputPath, dir, json) {
|
|
84948
85858
|
const { loadTranscript: loadTranscript2, patchCaptionHtml: patchCaptionHtml2 } = await Promise.resolve().then(() => (init_normalize(), normalize_exports));
|
|
84949
85859
|
const { words, format } = loadTranscript2(inputPath);
|
|
@@ -85067,12 +85977,12 @@ var init_transcribe2 = __esm({
|
|
|
85067
85977
|
}
|
|
85068
85978
|
},
|
|
85069
85979
|
async run({ args }) {
|
|
85070
|
-
const inputPath =
|
|
85980
|
+
const inputPath = resolve41(args.input);
|
|
85071
85981
|
if (!existsSync62(inputPath)) {
|
|
85072
85982
|
console.error(c2.error(`File not found: ${args.input}`));
|
|
85073
85983
|
process.exit(1);
|
|
85074
85984
|
}
|
|
85075
|
-
const dir =
|
|
85985
|
+
const dir = resolve41(args.dir ?? dirname26(inputPath));
|
|
85076
85986
|
const ext = extname11(inputPath).toLowerCase();
|
|
85077
85987
|
const isImport = ext === ".json" || ext === ".srt" || ext === ".vtt";
|
|
85078
85988
|
if (isImport) {
|
|
@@ -85362,7 +86272,7 @@ __export(tts_exports, {
|
|
|
85362
86272
|
examples: () => examples17
|
|
85363
86273
|
});
|
|
85364
86274
|
import { existsSync as existsSync65, readFileSync as readFileSync45 } from "fs";
|
|
85365
|
-
import { resolve as
|
|
86275
|
+
import { resolve as resolve42, extname as extname12 } from "path";
|
|
85366
86276
|
function listVoices(json) {
|
|
85367
86277
|
const rows = BUNDLED_VOICES.map((v2) => ({ ...v2, defaultLang: inferLangFromVoiceId(v2.id) }));
|
|
85368
86278
|
if (json) {
|
|
@@ -85470,7 +86380,7 @@ var init_tts = __esm({
|
|
|
85470
86380
|
process.exit(1);
|
|
85471
86381
|
}
|
|
85472
86382
|
let text;
|
|
85473
|
-
const maybeFile =
|
|
86383
|
+
const maybeFile = resolve42(args.input);
|
|
85474
86384
|
if (existsSync65(maybeFile) && extname12(maybeFile).toLowerCase() === ".txt") {
|
|
85475
86385
|
text = readFileSync45(maybeFile, "utf-8").trim();
|
|
85476
86386
|
if (!text) {
|
|
@@ -85484,7 +86394,7 @@ var init_tts = __esm({
|
|
|
85484
86394
|
console.error(c2.error("No text provided."));
|
|
85485
86395
|
process.exit(1);
|
|
85486
86396
|
}
|
|
85487
|
-
const output =
|
|
86397
|
+
const output = resolve42(args.output ?? "speech.wav");
|
|
85488
86398
|
const voice = args.voice ?? DEFAULT_VOICE;
|
|
85489
86399
|
const speed = args.speed ? parseFloat(args.speed) : 1;
|
|
85490
86400
|
if (isNaN(speed) || speed <= 0 || speed > 3) {
|
|
@@ -85565,13 +86475,13 @@ __export(docs_exports, {
|
|
|
85565
86475
|
examples: () => examples18
|
|
85566
86476
|
});
|
|
85567
86477
|
import { readFileSync as readFileSync46, existsSync as existsSync66 } from "fs";
|
|
85568
|
-
import { resolve as
|
|
86478
|
+
import { resolve as resolve43, dirname as dirname28, join as join71 } from "path";
|
|
85569
86479
|
import { fileURLToPath as fileURLToPath9 } from "url";
|
|
85570
86480
|
function docsDir() {
|
|
85571
86481
|
const thisFile = fileURLToPath9(import.meta.url);
|
|
85572
86482
|
const dir = dirname28(thisFile);
|
|
85573
|
-
const devPath =
|
|
85574
|
-
const builtPath =
|
|
86483
|
+
const devPath = resolve43(dir, "..", "docs");
|
|
86484
|
+
const builtPath = resolve43(dir, "docs");
|
|
85575
86485
|
return existsSync66(devPath) ? devPath : builtPath;
|
|
85576
86486
|
}
|
|
85577
86487
|
function formatInlineCode(line) {
|
|
@@ -85688,16 +86598,21 @@ __export(doctor_exports, {
|
|
|
85688
86598
|
buildDoctorReport: () => buildDoctorReport,
|
|
85689
86599
|
default: () => doctor_default,
|
|
85690
86600
|
examples: () => examples19,
|
|
86601
|
+
parseToolVersion: () => parseToolVersion,
|
|
85691
86602
|
redactHome: () => redactHome
|
|
85692
86603
|
});
|
|
85693
|
-
import { execSync as
|
|
85694
|
-
import {
|
|
86604
|
+
import { execSync as execSync6 } from "child_process";
|
|
86605
|
+
import { platform as platform8 } from "os";
|
|
86606
|
+
function parseToolVersion(raw) {
|
|
86607
|
+
const m2 = raw.match(/(ffmpeg|ffprobe)\s+version\s+([\d][\d.\-\w]*)/i);
|
|
86608
|
+
return m2 ? `${m2[1]} ${m2[2]}` : raw.trim();
|
|
86609
|
+
}
|
|
85695
86610
|
function checkFFmpeg() {
|
|
85696
86611
|
const path2 = findFFmpeg();
|
|
85697
86612
|
if (path2) {
|
|
85698
86613
|
try {
|
|
85699
|
-
const
|
|
85700
|
-
return { ok: true, detail:
|
|
86614
|
+
const raw = execSync6("ffmpeg -version", { encoding: "utf-8", timeout: 5e3 }).split("\n")[0] ?? "";
|
|
86615
|
+
return { ok: true, detail: parseToolVersion(raw) };
|
|
85701
86616
|
} catch {
|
|
85702
86617
|
return { ok: true, detail: path2 };
|
|
85703
86618
|
}
|
|
@@ -85710,8 +86625,8 @@ function checkFFmpeg() {
|
|
|
85710
86625
|
}
|
|
85711
86626
|
function checkFFprobe() {
|
|
85712
86627
|
try {
|
|
85713
|
-
const
|
|
85714
|
-
return { ok: true, detail:
|
|
86628
|
+
const raw = execSync6("ffprobe -version", { encoding: "utf-8", timeout: 5e3 }).split("\n")[0] ?? "";
|
|
86629
|
+
return { ok: true, detail: parseToolVersion(raw) };
|
|
85715
86630
|
} catch {
|
|
85716
86631
|
return {
|
|
85717
86632
|
ok: false,
|
|
@@ -85733,7 +86648,7 @@ async function checkChrome() {
|
|
|
85733
86648
|
}
|
|
85734
86649
|
function checkDocker() {
|
|
85735
86650
|
try {
|
|
85736
|
-
const version =
|
|
86651
|
+
const version = execSync6("docker --version", { encoding: "utf-8", timeout: 5e3 }).trim();
|
|
85737
86652
|
return { ok: true, detail: version };
|
|
85738
86653
|
} catch {
|
|
85739
86654
|
return {
|
|
@@ -85745,7 +86660,7 @@ function checkDocker() {
|
|
|
85745
86660
|
}
|
|
85746
86661
|
function checkDockerRunning() {
|
|
85747
86662
|
try {
|
|
85748
|
-
|
|
86663
|
+
execSync6("docker info", { stdio: "pipe", timeout: 5e3 });
|
|
85749
86664
|
return { ok: true, detail: "Running" };
|
|
85750
86665
|
} catch {
|
|
85751
86666
|
return {
|
|
@@ -85777,17 +86692,17 @@ function checkCPU() {
|
|
|
85777
86692
|
}
|
|
85778
86693
|
function checkMemory() {
|
|
85779
86694
|
const sys = getSystemMeta();
|
|
85780
|
-
const
|
|
86695
|
+
const availMb = getAvailableMemoryMb();
|
|
85781
86696
|
const totalGb = (sys.memory_total_mb / 1024).toFixed(1);
|
|
85782
|
-
const
|
|
85783
|
-
if (
|
|
86697
|
+
const availGb = (availMb / 1024).toFixed(1);
|
|
86698
|
+
if (availMb < 2048) {
|
|
85784
86699
|
return {
|
|
85785
86700
|
ok: false,
|
|
85786
|
-
detail: `${totalGb} GB total \xB7 ${
|
|
86701
|
+
detail: `${totalGb} GB total \xB7 ${availGb} GB available`,
|
|
85787
86702
|
hint: "Low memory \u2014 renders may fail. Close other apps or increase RAM."
|
|
85788
86703
|
};
|
|
85789
86704
|
}
|
|
85790
|
-
return { ok: true, detail: `${totalGb} GB total \xB7 ${
|
|
86705
|
+
return { ok: true, detail: `${totalGb} GB total \xB7 ${availGb} GB available` };
|
|
85791
86706
|
}
|
|
85792
86707
|
function checkShm() {
|
|
85793
86708
|
const shmMb = getShmSizeMb();
|
|
@@ -86965,7 +87880,7 @@ var require_p_retry = __commonJS({
|
|
|
86965
87880
|
return error;
|
|
86966
87881
|
};
|
|
86967
87882
|
var isNetworkError = (errorMessage) => networkErrorMsgs.includes(errorMessage);
|
|
86968
|
-
var pRetry2 = (input2, options) => new Promise((
|
|
87883
|
+
var pRetry2 = (input2, options) => new Promise((resolve49, reject) => {
|
|
86969
87884
|
options = {
|
|
86970
87885
|
onFailedAttempt: () => {
|
|
86971
87886
|
},
|
|
@@ -86975,7 +87890,7 @@ var require_p_retry = __commonJS({
|
|
|
86975
87890
|
const operation = retry.operation(options);
|
|
86976
87891
|
operation.attempt(async (attemptNumber) => {
|
|
86977
87892
|
try {
|
|
86978
|
-
|
|
87893
|
+
resolve49(await input2(attemptNumber));
|
|
86979
87894
|
} catch (error) {
|
|
86980
87895
|
if (!(error instanceof Error)) {
|
|
86981
87896
|
reject(new TypeError(`Non-error was thrown: "${error}". You should only throw errors.`));
|
|
@@ -87511,8 +88426,8 @@ var require_retry3 = __commonJS({
|
|
|
87511
88426
|
}
|
|
87512
88427
|
const delay = getNextRetryDelay(config);
|
|
87513
88428
|
err.config.retryConfig.currentRetryAttempt += 1;
|
|
87514
|
-
const backoff = config.retryBackoff ? config.retryBackoff(err, delay) : new Promise((
|
|
87515
|
-
setTimeout(
|
|
88429
|
+
const backoff = config.retryBackoff ? config.retryBackoff(err, delay) : new Promise((resolve49) => {
|
|
88430
|
+
setTimeout(resolve49, delay);
|
|
87516
88431
|
});
|
|
87517
88432
|
if (config.onRetryAttempt) {
|
|
87518
88433
|
await config.onRetryAttempt(err);
|
|
@@ -87640,8 +88555,8 @@ var require_helpers = __commonJS({
|
|
|
87640
88555
|
function req(url, opts = {}) {
|
|
87641
88556
|
const href = typeof url === "string" ? url : url.href;
|
|
87642
88557
|
const req2 = (href.startsWith("https:") ? https2 : http4).request(url, opts);
|
|
87643
|
-
const promise = new Promise((
|
|
87644
|
-
req2.once("response",
|
|
88558
|
+
const promise = new Promise((resolve49, reject) => {
|
|
88559
|
+
req2.once("response", resolve49).once("error", reject).end();
|
|
87645
88560
|
});
|
|
87646
88561
|
req2.then = promise.then.bind(promise);
|
|
87647
88562
|
return req2;
|
|
@@ -87818,7 +88733,7 @@ var require_parse_proxy_response = __commonJS({
|
|
|
87818
88733
|
var debug_1 = __importDefault2(__require("debug"));
|
|
87819
88734
|
var debug = (0, debug_1.default)("https-proxy-agent:parse-proxy-response");
|
|
87820
88735
|
function parseProxyResponse(socket) {
|
|
87821
|
-
return new Promise((
|
|
88736
|
+
return new Promise((resolve49, reject) => {
|
|
87822
88737
|
let buffersLength = 0;
|
|
87823
88738
|
const buffers = [];
|
|
87824
88739
|
function read() {
|
|
@@ -87884,7 +88799,7 @@ var require_parse_proxy_response = __commonJS({
|
|
|
87884
88799
|
}
|
|
87885
88800
|
debug("got proxy server response: %o %o", firstLine, headers);
|
|
87886
88801
|
cleanup();
|
|
87887
|
-
|
|
88802
|
+
resolve49({
|
|
87888
88803
|
connect: {
|
|
87889
88804
|
statusCode,
|
|
87890
88805
|
statusText,
|
|
@@ -88128,7 +89043,7 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
88128
89043
|
return new originalPromise(executor);
|
|
88129
89044
|
}
|
|
88130
89045
|
function promiseResolvedWith(value) {
|
|
88131
|
-
return newPromise((
|
|
89046
|
+
return newPromise((resolve49) => resolve49(value));
|
|
88132
89047
|
}
|
|
88133
89048
|
function promiseRejectedWith(reason) {
|
|
88134
89049
|
return originalPromiseReject(reason);
|
|
@@ -88298,8 +89213,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
88298
89213
|
return new TypeError("Cannot " + name + " a stream using a released reader");
|
|
88299
89214
|
}
|
|
88300
89215
|
function defaultReaderClosedPromiseInitialize(reader) {
|
|
88301
|
-
reader._closedPromise = newPromise((
|
|
88302
|
-
reader._closedPromise_resolve =
|
|
89216
|
+
reader._closedPromise = newPromise((resolve49, reject) => {
|
|
89217
|
+
reader._closedPromise_resolve = resolve49;
|
|
88303
89218
|
reader._closedPromise_reject = reject;
|
|
88304
89219
|
});
|
|
88305
89220
|
}
|
|
@@ -88473,8 +89388,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
88473
89388
|
}
|
|
88474
89389
|
let resolvePromise;
|
|
88475
89390
|
let rejectPromise;
|
|
88476
|
-
const promise = newPromise((
|
|
88477
|
-
resolvePromise =
|
|
89391
|
+
const promise = newPromise((resolve49, reject) => {
|
|
89392
|
+
resolvePromise = resolve49;
|
|
88478
89393
|
rejectPromise = reject;
|
|
88479
89394
|
});
|
|
88480
89395
|
const readRequest = {
|
|
@@ -88579,8 +89494,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
88579
89494
|
const reader = this._reader;
|
|
88580
89495
|
let resolvePromise;
|
|
88581
89496
|
let rejectPromise;
|
|
88582
|
-
const promise = newPromise((
|
|
88583
|
-
resolvePromise =
|
|
89497
|
+
const promise = newPromise((resolve49, reject) => {
|
|
89498
|
+
resolvePromise = resolve49;
|
|
88584
89499
|
rejectPromise = reject;
|
|
88585
89500
|
});
|
|
88586
89501
|
const readRequest = {
|
|
@@ -89599,8 +90514,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
89599
90514
|
}
|
|
89600
90515
|
let resolvePromise;
|
|
89601
90516
|
let rejectPromise;
|
|
89602
|
-
const promise = newPromise((
|
|
89603
|
-
resolvePromise =
|
|
90517
|
+
const promise = newPromise((resolve49, reject) => {
|
|
90518
|
+
resolvePromise = resolve49;
|
|
89604
90519
|
rejectPromise = reject;
|
|
89605
90520
|
});
|
|
89606
90521
|
const readIntoRequest = {
|
|
@@ -89912,10 +90827,10 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
89912
90827
|
wasAlreadyErroring = true;
|
|
89913
90828
|
reason = void 0;
|
|
89914
90829
|
}
|
|
89915
|
-
const promise = newPromise((
|
|
90830
|
+
const promise = newPromise((resolve49, reject) => {
|
|
89916
90831
|
stream._pendingAbortRequest = {
|
|
89917
90832
|
_promise: void 0,
|
|
89918
|
-
_resolve:
|
|
90833
|
+
_resolve: resolve49,
|
|
89919
90834
|
_reject: reject,
|
|
89920
90835
|
_reason: reason,
|
|
89921
90836
|
_wasAlreadyErroring: wasAlreadyErroring
|
|
@@ -89932,9 +90847,9 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
89932
90847
|
if (state === "closed" || state === "errored") {
|
|
89933
90848
|
return promiseRejectedWith(new TypeError(`The stream (in ${state} state) is not in the writable state and cannot be closed`));
|
|
89934
90849
|
}
|
|
89935
|
-
const promise = newPromise((
|
|
90850
|
+
const promise = newPromise((resolve49, reject) => {
|
|
89936
90851
|
const closeRequest = {
|
|
89937
|
-
_resolve:
|
|
90852
|
+
_resolve: resolve49,
|
|
89938
90853
|
_reject: reject
|
|
89939
90854
|
};
|
|
89940
90855
|
stream._closeRequest = closeRequest;
|
|
@@ -89947,9 +90862,9 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
89947
90862
|
return promise;
|
|
89948
90863
|
}
|
|
89949
90864
|
function WritableStreamAddWriteRequest(stream) {
|
|
89950
|
-
const promise = newPromise((
|
|
90865
|
+
const promise = newPromise((resolve49, reject) => {
|
|
89951
90866
|
const writeRequest = {
|
|
89952
|
-
_resolve:
|
|
90867
|
+
_resolve: resolve49,
|
|
89953
90868
|
_reject: reject
|
|
89954
90869
|
};
|
|
89955
90870
|
stream._writeRequests.push(writeRequest);
|
|
@@ -90565,8 +91480,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
90565
91480
|
return new TypeError("Cannot " + name + " a stream using a released writer");
|
|
90566
91481
|
}
|
|
90567
91482
|
function defaultWriterClosedPromiseInitialize(writer) {
|
|
90568
|
-
writer._closedPromise = newPromise((
|
|
90569
|
-
writer._closedPromise_resolve =
|
|
91483
|
+
writer._closedPromise = newPromise((resolve49, reject) => {
|
|
91484
|
+
writer._closedPromise_resolve = resolve49;
|
|
90570
91485
|
writer._closedPromise_reject = reject;
|
|
90571
91486
|
writer._closedPromiseState = "pending";
|
|
90572
91487
|
});
|
|
@@ -90602,8 +91517,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
90602
91517
|
writer._closedPromiseState = "resolved";
|
|
90603
91518
|
}
|
|
90604
91519
|
function defaultWriterReadyPromiseInitialize(writer) {
|
|
90605
|
-
writer._readyPromise = newPromise((
|
|
90606
|
-
writer._readyPromise_resolve =
|
|
91520
|
+
writer._readyPromise = newPromise((resolve49, reject) => {
|
|
91521
|
+
writer._readyPromise_resolve = resolve49;
|
|
90607
91522
|
writer._readyPromise_reject = reject;
|
|
90608
91523
|
});
|
|
90609
91524
|
writer._readyPromiseState = "pending";
|
|
@@ -90690,7 +91605,7 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
90690
91605
|
source._disturbed = true;
|
|
90691
91606
|
let shuttingDown = false;
|
|
90692
91607
|
let currentWrite = promiseResolvedWith(void 0);
|
|
90693
|
-
return newPromise((
|
|
91608
|
+
return newPromise((resolve49, reject) => {
|
|
90694
91609
|
let abortAlgorithm;
|
|
90695
91610
|
if (signal !== void 0) {
|
|
90696
91611
|
abortAlgorithm = () => {
|
|
@@ -90835,7 +91750,7 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
90835
91750
|
if (isError) {
|
|
90836
91751
|
reject(error);
|
|
90837
91752
|
} else {
|
|
90838
|
-
|
|
91753
|
+
resolve49(void 0);
|
|
90839
91754
|
}
|
|
90840
91755
|
return null;
|
|
90841
91756
|
}
|
|
@@ -91116,8 +92031,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
91116
92031
|
let branch1;
|
|
91117
92032
|
let branch2;
|
|
91118
92033
|
let resolveCancelPromise;
|
|
91119
|
-
const cancelPromise = newPromise((
|
|
91120
|
-
resolveCancelPromise =
|
|
92034
|
+
const cancelPromise = newPromise((resolve49) => {
|
|
92035
|
+
resolveCancelPromise = resolve49;
|
|
91121
92036
|
});
|
|
91122
92037
|
function pullAlgorithm() {
|
|
91123
92038
|
if (reading) {
|
|
@@ -91208,8 +92123,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
91208
92123
|
let branch1;
|
|
91209
92124
|
let branch2;
|
|
91210
92125
|
let resolveCancelPromise;
|
|
91211
|
-
const cancelPromise = newPromise((
|
|
91212
|
-
resolveCancelPromise =
|
|
92126
|
+
const cancelPromise = newPromise((resolve49) => {
|
|
92127
|
+
resolveCancelPromise = resolve49;
|
|
91213
92128
|
});
|
|
91214
92129
|
function forwardReaderError(thisReader) {
|
|
91215
92130
|
uponRejection(thisReader._closedPromise, (r2) => {
|
|
@@ -91989,8 +92904,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
91989
92904
|
const writableHighWaterMark = ExtractHighWaterMark(writableStrategy, 1);
|
|
91990
92905
|
const writableSizeAlgorithm = ExtractSizeAlgorithm(writableStrategy);
|
|
91991
92906
|
let startPromise_resolve;
|
|
91992
|
-
const startPromise = newPromise((
|
|
91993
|
-
startPromise_resolve =
|
|
92907
|
+
const startPromise = newPromise((resolve49) => {
|
|
92908
|
+
startPromise_resolve = resolve49;
|
|
91994
92909
|
});
|
|
91995
92910
|
InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);
|
|
91996
92911
|
SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);
|
|
@@ -92083,8 +92998,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
92083
92998
|
if (stream._backpressureChangePromise !== void 0) {
|
|
92084
92999
|
stream._backpressureChangePromise_resolve();
|
|
92085
93000
|
}
|
|
92086
|
-
stream._backpressureChangePromise = newPromise((
|
|
92087
|
-
stream._backpressureChangePromise_resolve =
|
|
93001
|
+
stream._backpressureChangePromise = newPromise((resolve49) => {
|
|
93002
|
+
stream._backpressureChangePromise_resolve = resolve49;
|
|
92088
93003
|
});
|
|
92089
93004
|
stream._backpressure = backpressure;
|
|
92090
93005
|
}
|
|
@@ -92252,8 +93167,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
92252
93167
|
return controller._finishPromise;
|
|
92253
93168
|
}
|
|
92254
93169
|
const readable = stream._readable;
|
|
92255
|
-
controller._finishPromise = newPromise((
|
|
92256
|
-
controller._finishPromise_resolve =
|
|
93170
|
+
controller._finishPromise = newPromise((resolve49, reject) => {
|
|
93171
|
+
controller._finishPromise_resolve = resolve49;
|
|
92257
93172
|
controller._finishPromise_reject = reject;
|
|
92258
93173
|
});
|
|
92259
93174
|
const cancelPromise = controller._cancelAlgorithm(reason);
|
|
@@ -92279,8 +93194,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
92279
93194
|
return controller._finishPromise;
|
|
92280
93195
|
}
|
|
92281
93196
|
const readable = stream._readable;
|
|
92282
|
-
controller._finishPromise = newPromise((
|
|
92283
|
-
controller._finishPromise_resolve =
|
|
93197
|
+
controller._finishPromise = newPromise((resolve49, reject) => {
|
|
93198
|
+
controller._finishPromise_resolve = resolve49;
|
|
92284
93199
|
controller._finishPromise_reject = reject;
|
|
92285
93200
|
});
|
|
92286
93201
|
const flushPromise = controller._flushAlgorithm();
|
|
@@ -92310,8 +93225,8 @@ var require_ponyfill_es2018 = __commonJS({
|
|
|
92310
93225
|
return controller._finishPromise;
|
|
92311
93226
|
}
|
|
92312
93227
|
const writable = stream._writable;
|
|
92313
|
-
controller._finishPromise = newPromise((
|
|
92314
|
-
controller._finishPromise_resolve =
|
|
93228
|
+
controller._finishPromise = newPromise((resolve49, reject) => {
|
|
93229
|
+
controller._finishPromise_resolve = resolve49;
|
|
92315
93230
|
controller._finishPromise_reject = reject;
|
|
92316
93231
|
});
|
|
92317
93232
|
const cancelPromise = controller._cancelAlgorithm(reason);
|
|
@@ -94280,7 +95195,7 @@ import zlib from "zlib";
|
|
|
94280
95195
|
import Stream2, { PassThrough as PassThrough2, pipeline as pump } from "stream";
|
|
94281
95196
|
import { Buffer as Buffer3 } from "buffer";
|
|
94282
95197
|
async function fetch3(url, options_) {
|
|
94283
|
-
return new Promise((
|
|
95198
|
+
return new Promise((resolve49, reject) => {
|
|
94284
95199
|
const request = new Request2(url, options_);
|
|
94285
95200
|
const { parsedURL, options } = getNodeRequestOptions(request);
|
|
94286
95201
|
if (!supportedSchemas.has(parsedURL.protocol)) {
|
|
@@ -94289,7 +95204,7 @@ async function fetch3(url, options_) {
|
|
|
94289
95204
|
if (parsedURL.protocol === "data:") {
|
|
94290
95205
|
const data = dist_default3(request.url);
|
|
94291
95206
|
const response2 = new Response2(data, { headers: { "Content-Type": data.typeFull } });
|
|
94292
|
-
|
|
95207
|
+
resolve49(response2);
|
|
94293
95208
|
return;
|
|
94294
95209
|
}
|
|
94295
95210
|
const send = (parsedURL.protocol === "https:" ? https : http3).request;
|
|
@@ -94411,7 +95326,7 @@ async function fetch3(url, options_) {
|
|
|
94411
95326
|
if (responseReferrerPolicy) {
|
|
94412
95327
|
requestOptions.referrerPolicy = responseReferrerPolicy;
|
|
94413
95328
|
}
|
|
94414
|
-
|
|
95329
|
+
resolve49(fetch3(new Request2(locationURL, requestOptions)));
|
|
94415
95330
|
finalize();
|
|
94416
95331
|
return;
|
|
94417
95332
|
}
|
|
@@ -94444,7 +95359,7 @@ async function fetch3(url, options_) {
|
|
|
94444
95359
|
const codings = headers.get("Content-Encoding");
|
|
94445
95360
|
if (!request.compress || request.method === "HEAD" || codings === null || response_.statusCode === 204 || response_.statusCode === 304) {
|
|
94446
95361
|
response = new Response2(body, responseOptions);
|
|
94447
|
-
|
|
95362
|
+
resolve49(response);
|
|
94448
95363
|
return;
|
|
94449
95364
|
}
|
|
94450
95365
|
const zlibOptions = {
|
|
@@ -94458,7 +95373,7 @@ async function fetch3(url, options_) {
|
|
|
94458
95373
|
}
|
|
94459
95374
|
});
|
|
94460
95375
|
response = new Response2(body, responseOptions);
|
|
94461
|
-
|
|
95376
|
+
resolve49(response);
|
|
94462
95377
|
return;
|
|
94463
95378
|
}
|
|
94464
95379
|
if (codings === "deflate" || codings === "x-deflate") {
|
|
@@ -94482,12 +95397,12 @@ async function fetch3(url, options_) {
|
|
|
94482
95397
|
});
|
|
94483
95398
|
}
|
|
94484
95399
|
response = new Response2(body, responseOptions);
|
|
94485
|
-
|
|
95400
|
+
resolve49(response);
|
|
94486
95401
|
});
|
|
94487
95402
|
raw.once("end", () => {
|
|
94488
95403
|
if (!response) {
|
|
94489
95404
|
response = new Response2(body, responseOptions);
|
|
94490
|
-
|
|
95405
|
+
resolve49(response);
|
|
94491
95406
|
}
|
|
94492
95407
|
});
|
|
94493
95408
|
return;
|
|
@@ -94499,11 +95414,11 @@ async function fetch3(url, options_) {
|
|
|
94499
95414
|
}
|
|
94500
95415
|
});
|
|
94501
95416
|
response = new Response2(body, responseOptions);
|
|
94502
|
-
|
|
95417
|
+
resolve49(response);
|
|
94503
95418
|
return;
|
|
94504
95419
|
}
|
|
94505
95420
|
response = new Response2(body, responseOptions);
|
|
94506
|
-
|
|
95421
|
+
resolve49(response);
|
|
94507
95422
|
});
|
|
94508
95423
|
writeToStream(request_, request).catch(reject);
|
|
94509
95424
|
});
|
|
@@ -100585,7 +101500,7 @@ var require_jwtaccess = __commonJS({
|
|
|
100585
101500
|
}
|
|
100586
101501
|
}
|
|
100587
101502
|
fromStreamAsync(inputStream) {
|
|
100588
|
-
return new Promise((
|
|
101503
|
+
return new Promise((resolve49, reject) => {
|
|
100589
101504
|
if (!inputStream) {
|
|
100590
101505
|
reject(new Error("Must pass in a stream containing the service account auth settings."));
|
|
100591
101506
|
}
|
|
@@ -100594,7 +101509,7 @@ var require_jwtaccess = __commonJS({
|
|
|
100594
101509
|
try {
|
|
100595
101510
|
const data = JSON.parse(s2);
|
|
100596
101511
|
this.fromJSON(data);
|
|
100597
|
-
|
|
101512
|
+
resolve49();
|
|
100598
101513
|
} catch (err) {
|
|
100599
101514
|
reject(err);
|
|
100600
101515
|
}
|
|
@@ -100833,7 +101748,7 @@ var require_jwtclient = __commonJS({
|
|
|
100833
101748
|
}
|
|
100834
101749
|
}
|
|
100835
101750
|
fromStreamAsync(inputStream) {
|
|
100836
|
-
return new Promise((
|
|
101751
|
+
return new Promise((resolve49, reject) => {
|
|
100837
101752
|
if (!inputStream) {
|
|
100838
101753
|
throw new Error("Must pass in a stream containing the service account auth settings.");
|
|
100839
101754
|
}
|
|
@@ -100842,7 +101757,7 @@ var require_jwtclient = __commonJS({
|
|
|
100842
101757
|
try {
|
|
100843
101758
|
const data = JSON.parse(s2);
|
|
100844
101759
|
this.fromJSON(data);
|
|
100845
|
-
|
|
101760
|
+
resolve49();
|
|
100846
101761
|
} catch (e3) {
|
|
100847
101762
|
reject(e3);
|
|
100848
101763
|
}
|
|
@@ -100975,7 +101890,7 @@ var require_refreshclient = __commonJS({
|
|
|
100975
101890
|
}
|
|
100976
101891
|
}
|
|
100977
101892
|
async fromStreamAsync(inputStream) {
|
|
100978
|
-
return new Promise((
|
|
101893
|
+
return new Promise((resolve49, reject) => {
|
|
100979
101894
|
if (!inputStream) {
|
|
100980
101895
|
return reject(new Error("Must pass in a stream containing the user refresh token."));
|
|
100981
101896
|
}
|
|
@@ -100984,7 +101899,7 @@ var require_refreshclient = __commonJS({
|
|
|
100984
101899
|
try {
|
|
100985
101900
|
const data = JSON.parse(s2);
|
|
100986
101901
|
this.fromJSON(data);
|
|
100987
|
-
return
|
|
101902
|
+
return resolve49();
|
|
100988
101903
|
} catch (err) {
|
|
100989
101904
|
return reject(err);
|
|
100990
101905
|
}
|
|
@@ -102817,7 +103732,7 @@ var require_pluggable_auth_handler = __commonJS({
|
|
|
102817
103732
|
* @return A promise that resolves with the executable response.
|
|
102818
103733
|
*/
|
|
102819
103734
|
retrieveResponseFromExecutable(envMap) {
|
|
102820
|
-
return new Promise((
|
|
103735
|
+
return new Promise((resolve49, reject) => {
|
|
102821
103736
|
const child = childProcess.spawn(this.commandComponents[0], this.commandComponents.slice(1), {
|
|
102822
103737
|
env: { ...process.env, ...Object.fromEntries(envMap) }
|
|
102823
103738
|
});
|
|
@@ -102839,7 +103754,7 @@ var require_pluggable_auth_handler = __commonJS({
|
|
|
102839
103754
|
try {
|
|
102840
103755
|
const responseJson = JSON.parse(output);
|
|
102841
103756
|
const response = new executable_response_1.ExecutableResponse(responseJson);
|
|
102842
|
-
return
|
|
103757
|
+
return resolve49(response);
|
|
102843
103758
|
} catch (error) {
|
|
102844
103759
|
if (error instanceof executable_response_1.ExecutableResponseError) {
|
|
102845
103760
|
return reject(error);
|
|
@@ -103742,7 +104657,7 @@ var require_googleauth = __commonJS({
|
|
|
103742
104657
|
}
|
|
103743
104658
|
}
|
|
103744
104659
|
fromStreamAsync(inputStream, options) {
|
|
103745
|
-
return new Promise((
|
|
104660
|
+
return new Promise((resolve49, reject) => {
|
|
103746
104661
|
if (!inputStream) {
|
|
103747
104662
|
throw new Error("Must pass in a stream containing the Google auth settings.");
|
|
103748
104663
|
}
|
|
@@ -103752,7 +104667,7 @@ var require_googleauth = __commonJS({
|
|
|
103752
104667
|
try {
|
|
103753
104668
|
const data = JSON.parse(chunks.join(""));
|
|
103754
104669
|
const r2 = this._cacheClientFromJSON(data, options);
|
|
103755
|
-
return
|
|
104670
|
+
return resolve49(r2);
|
|
103756
104671
|
} catch (err) {
|
|
103757
104672
|
if (!this.keyFilename)
|
|
103758
104673
|
throw err;
|
|
@@ -103762,7 +104677,7 @@ var require_googleauth = __commonJS({
|
|
|
103762
104677
|
});
|
|
103763
104678
|
this.cachedCredential = client;
|
|
103764
104679
|
this.setGapicJWTValues(client);
|
|
103765
|
-
return
|
|
104680
|
+
return resolve49(client);
|
|
103766
104681
|
}
|
|
103767
104682
|
} catch (err) {
|
|
103768
104683
|
return reject(err);
|
|
@@ -103798,17 +104713,17 @@ var require_googleauth = __commonJS({
|
|
|
103798
104713
|
* Run the Google Cloud SDK command that prints the default project ID
|
|
103799
104714
|
*/
|
|
103800
104715
|
async getDefaultServiceProjectId() {
|
|
103801
|
-
return new Promise((
|
|
104716
|
+
return new Promise((resolve49) => {
|
|
103802
104717
|
(0, child_process_1.exec)("gcloud config config-helper --format json", (err, stdout2) => {
|
|
103803
104718
|
if (!err && stdout2) {
|
|
103804
104719
|
try {
|
|
103805
104720
|
const projectId = JSON.parse(stdout2).configuration.properties.core.project;
|
|
103806
|
-
|
|
104721
|
+
resolve49(projectId);
|
|
103807
104722
|
return;
|
|
103808
104723
|
} catch (e3) {
|
|
103809
104724
|
}
|
|
103810
104725
|
}
|
|
103811
|
-
|
|
104726
|
+
resolve49(null);
|
|
103812
104727
|
});
|
|
103813
104728
|
});
|
|
103814
104729
|
}
|
|
@@ -111651,14 +112566,14 @@ function __asyncValues2(o) {
|
|
|
111651
112566
|
}, i2);
|
|
111652
112567
|
function verb(n) {
|
|
111653
112568
|
i2[n] = o[n] && function(v2) {
|
|
111654
|
-
return new Promise(function(
|
|
111655
|
-
v2 = o[n](v2), settle(
|
|
112569
|
+
return new Promise(function(resolve49, reject) {
|
|
112570
|
+
v2 = o[n](v2), settle(resolve49, reject, v2.done, v2.value);
|
|
111656
112571
|
});
|
|
111657
112572
|
};
|
|
111658
112573
|
}
|
|
111659
|
-
function settle(
|
|
112574
|
+
function settle(resolve49, reject, d2, v2) {
|
|
111660
112575
|
Promise.resolve(v2).then(function(v3) {
|
|
111661
|
-
|
|
112576
|
+
resolve49({ value: v3, done: d2 });
|
|
111662
112577
|
}, reject);
|
|
111663
112578
|
}
|
|
111664
112579
|
}
|
|
@@ -122148,8 +123063,8 @@ var init_node4 = __esm({
|
|
|
122148
123063
|
const url = `${websocketBaseUrl}/ws/google.ai.generativelanguage.${apiVersion}.GenerativeService.BidiGenerateMusic?key=${apiKey}`;
|
|
122149
123064
|
let onopenResolve = () => {
|
|
122150
123065
|
};
|
|
122151
|
-
const onopenPromise = new Promise((
|
|
122152
|
-
onopenResolve =
|
|
123066
|
+
const onopenPromise = new Promise((resolve49) => {
|
|
123067
|
+
onopenResolve = resolve49;
|
|
122153
123068
|
});
|
|
122154
123069
|
const callbacks = params.callbacks;
|
|
122155
123070
|
const onopenAwaitedCallback = function() {
|
|
@@ -122355,8 +123270,8 @@ var init_node4 = __esm({
|
|
|
122355
123270
|
}
|
|
122356
123271
|
let onopenResolve = () => {
|
|
122357
123272
|
};
|
|
122358
|
-
const onopenPromise = new Promise((
|
|
122359
|
-
onopenResolve =
|
|
123273
|
+
const onopenPromise = new Promise((resolve49) => {
|
|
123274
|
+
onopenResolve = resolve49;
|
|
122360
123275
|
});
|
|
122361
123276
|
const callbacks = params.callbacks;
|
|
122362
123277
|
const onopenAwaitedCallback = function() {
|
|
@@ -124704,7 +125619,7 @@ var init_node4 = __esm({
|
|
|
124704
125619
|
return void 0;
|
|
124705
125620
|
}
|
|
124706
125621
|
};
|
|
124707
|
-
sleep$1 = (ms) => new Promise((
|
|
125622
|
+
sleep$1 = (ms) => new Promise((resolve49) => setTimeout(resolve49, ms));
|
|
124708
125623
|
FallbackEncoder = ({ headers, body }) => {
|
|
124709
125624
|
return {
|
|
124710
125625
|
bodyHeaders: {
|
|
@@ -125213,8 +126128,8 @@ ${underline2}`);
|
|
|
125213
126128
|
};
|
|
125214
126129
|
APIPromise = class _APIPromise extends Promise {
|
|
125215
126130
|
constructor(client, responsePromise, parseResponse = defaultParseResponse) {
|
|
125216
|
-
super((
|
|
125217
|
-
|
|
126131
|
+
super((resolve49) => {
|
|
126132
|
+
resolve49(null);
|
|
125218
126133
|
});
|
|
125219
126134
|
this.responsePromise = responsePromise;
|
|
125220
126135
|
this.parseResponse = parseResponse;
|
|
@@ -126437,7 +127352,7 @@ __export(snapshot_exports, {
|
|
|
126437
127352
|
import { spawn as spawn15 } from "child_process";
|
|
126438
127353
|
import { existsSync as existsSync69, mkdtempSync as mkdtempSync3, readFileSync as readFileSync49, mkdirSync as mkdirSync36, rmSync as rmSync15, writeFileSync as writeFileSync31 } from "fs";
|
|
126439
127354
|
import { tmpdir as tmpdir6 } from "os";
|
|
126440
|
-
import { resolve as
|
|
127355
|
+
import { resolve as resolve44, join as join74, relative as relative12, isAbsolute as isAbsolute11 } from "path";
|
|
126441
127356
|
async function extractVideoFrameToBuffer(videoPath, timeSeconds, useVp9AlphaDecoder = false) {
|
|
126442
127357
|
const tmp = mkdtempSync3(join74(tmpdir6(), "hf-snapshot-frame-"));
|
|
126443
127358
|
const outPath = join74(tmp, "frame.png");
|
|
@@ -126664,7 +127579,7 @@ async function captureSnapshots(projectDir, opts) {
|
|
|
126664
127579
|
try {
|
|
126665
127580
|
const url = new URL(v2.src);
|
|
126666
127581
|
const decodedPath = decodeURIComponent(url.pathname).replace(/^\//, "");
|
|
126667
|
-
const candidate =
|
|
127582
|
+
const candidate = resolve44(projectDir, decodedPath);
|
|
126668
127583
|
const rel = relative12(projectDir, candidate);
|
|
126669
127584
|
if (!rel.startsWith("..") && !isAbsolute11(rel) && existsSync69(candidate)) {
|
|
126670
127585
|
filePath = candidate;
|
|
@@ -127297,7 +128212,7 @@ async function extractHtml(page, opts = {}) {
|
|
|
127297
128212
|
(_match, pre, urls, post) => {
|
|
127298
128213
|
const fixed = urls.replace(/&/g, "&").replace(
|
|
127299
128214
|
/(^|,\s*)(\/[^\s,]+)/g,
|
|
127300
|
-
(_m,
|
|
128215
|
+
(_m, sep8, path2) => sep8 + pageOrigin + path2
|
|
127301
128216
|
);
|
|
127302
128217
|
return pre + fixed + post;
|
|
127303
128218
|
}
|
|
@@ -129017,12 +129932,12 @@ var init_agentPromptGenerator = __esm({
|
|
|
129017
129932
|
|
|
129018
129933
|
// src/capture/scaffolding.ts
|
|
129019
129934
|
import { existsSync as existsSync73, writeFileSync as writeFileSync36, readFileSync as readFileSync53 } from "fs";
|
|
129020
|
-
import { join as join80, resolve as
|
|
129935
|
+
import { join as join80, resolve as resolve45 } from "path";
|
|
129021
129936
|
function loadEnvFile(startDir) {
|
|
129022
129937
|
try {
|
|
129023
|
-
let dir =
|
|
129938
|
+
let dir = resolve45(startDir);
|
|
129024
129939
|
for (let i2 = 0; i2 < 5; i2++) {
|
|
129025
|
-
const envPath =
|
|
129940
|
+
const envPath = resolve45(dir, ".env");
|
|
129026
129941
|
try {
|
|
129027
129942
|
const envContent = readFileSync53(envPath, "utf-8");
|
|
129028
129943
|
for (const line of envContent.split("\n")) {
|
|
@@ -129036,7 +129951,7 @@ function loadEnvFile(startDir) {
|
|
|
129036
129951
|
}
|
|
129037
129952
|
break;
|
|
129038
129953
|
} catch {
|
|
129039
|
-
dir =
|
|
129954
|
+
dir = resolve45(dir, "..");
|
|
129040
129955
|
}
|
|
129041
129956
|
}
|
|
129042
129957
|
} catch {
|
|
@@ -129887,7 +130802,7 @@ __export(capture_exports2, {
|
|
|
129887
130802
|
default: () => capture_default,
|
|
129888
130803
|
examples: () => examples24
|
|
129889
130804
|
});
|
|
129890
|
-
import { resolve as
|
|
130805
|
+
import { resolve as resolve46 } from "path";
|
|
129891
130806
|
var examples24, capture_default;
|
|
129892
130807
|
var init_capture2 = __esm({
|
|
129893
130808
|
"src/commands/capture.ts"() {
|
|
@@ -129946,7 +130861,7 @@ var init_capture2 = __esm({
|
|
|
129946
130861
|
const hostname = new URL(url).hostname.replace(/^www\./, "");
|
|
129947
130862
|
outputName = `captures/${hostname.replace(/\./g, "-")}`;
|
|
129948
130863
|
}
|
|
129949
|
-
const outputDir =
|
|
130864
|
+
const outputDir = resolve46(outputName);
|
|
129950
130865
|
const isJson = args.json;
|
|
129951
130866
|
if (!isJson) {
|
|
129952
130867
|
const { c: c3 } = await Promise.resolve().then(() => (init_colors(), colors_exports));
|
|
@@ -130245,16 +131160,16 @@ var init_sam = __esm({
|
|
|
130245
131160
|
|
|
130246
131161
|
// src/commands/lambda/repoRoot.ts
|
|
130247
131162
|
import { existsSync as existsSync77 } from "fs";
|
|
130248
|
-
import { dirname as dirname32, resolve as
|
|
131163
|
+
import { dirname as dirname32, resolve as resolve47 } from "path";
|
|
130249
131164
|
import { fileURLToPath as fileURLToPath11 } from "url";
|
|
130250
131165
|
function repoRoot() {
|
|
130251
131166
|
const override = process.env.HYPERFRAMES_REPO_ROOT;
|
|
130252
|
-
if (override && existsSync77(
|
|
131167
|
+
if (override && existsSync77(resolve47(override, "packages", "aws-lambda", "package.json"))) {
|
|
130253
131168
|
return override;
|
|
130254
131169
|
}
|
|
130255
131170
|
let dir = dirname32(fileURLToPath11(import.meta.url));
|
|
130256
131171
|
for (let depth = 0; depth < 12; depth++) {
|
|
130257
|
-
if (existsSync77(
|
|
131172
|
+
if (existsSync77(resolve47(dir, "packages", "aws-lambda", "package.json"))) {
|
|
130258
131173
|
return dir;
|
|
130259
131174
|
}
|
|
130260
131175
|
const parent = dirname32(dir);
|
|
@@ -130278,7 +131193,7 @@ __export(deploy_exports, {
|
|
|
130278
131193
|
});
|
|
130279
131194
|
import { spawnSync as spawnSync5 } from "child_process";
|
|
130280
131195
|
import { existsSync as existsSync78 } from "fs";
|
|
130281
|
-
import { join as join85, resolve as
|
|
131196
|
+
import { join as join85, resolve as resolve48 } from "path";
|
|
130282
131197
|
async function runDeploy(args = {}) {
|
|
130283
131198
|
const resolved = {
|
|
130284
131199
|
stackName: args.stackName ?? DEFAULT_STACK_NAME,
|
|
@@ -130332,7 +131247,7 @@ async function runDeploy(args = {}) {
|
|
|
130332
131247
|
console.log(` ${c2.dim("Bucket:")} ${outputs.bucketName}`);
|
|
130333
131248
|
console.log(` ${c2.dim("State machine:")} ${outputs.stateMachineArn}`);
|
|
130334
131249
|
console.log(` ${c2.dim("Function:")} ${outputs.functionName}`);
|
|
130335
|
-
console.log(` ${c2.dim("State file:")} ${
|
|
131250
|
+
console.log(` ${c2.dim("State file:")} ${resolve48(statePath)}`);
|
|
130336
131251
|
console.log();
|
|
130337
131252
|
console.log(c2.dim(`Render with: hyperframes lambda render <project-dir>`));
|
|
130338
131253
|
}
|
|
@@ -131698,14 +132613,14 @@ function signalAbortError(signal) {
|
|
|
131698
132613
|
return reason instanceof Error ? reason : new Error("Poll aborted");
|
|
131699
132614
|
}
|
|
131700
132615
|
function defaultAbortableSleep(signal) {
|
|
131701
|
-
return (ms) => new Promise((
|
|
132616
|
+
return (ms) => new Promise((resolve49, reject) => {
|
|
131702
132617
|
const onAbort = () => {
|
|
131703
132618
|
clearTimeout(timer);
|
|
131704
132619
|
reject(signalAbortError(signal));
|
|
131705
132620
|
};
|
|
131706
132621
|
const timer = setTimeout(() => {
|
|
131707
132622
|
signal?.removeEventListener("abort", onAbort);
|
|
131708
|
-
|
|
132623
|
+
resolve49();
|
|
131709
132624
|
}, ms);
|
|
131710
132625
|
signal?.addEventListener("abort", onAbort, { once: true });
|
|
131711
132626
|
});
|
|
@@ -131780,7 +132695,7 @@ async function downloadToFile(url, destPath, options = {}) {
|
|
|
131780
132695
|
return { path: destPath, bytes };
|
|
131781
132696
|
}
|
|
131782
132697
|
function waitForDrain(file, signal) {
|
|
131783
|
-
return new Promise((
|
|
132698
|
+
return new Promise((resolve49, reject) => {
|
|
131784
132699
|
const cleanup = () => {
|
|
131785
132700
|
file.off("drain", onDrain);
|
|
131786
132701
|
file.off("error", onError);
|
|
@@ -131789,7 +132704,7 @@ function waitForDrain(file, signal) {
|
|
|
131789
132704
|
};
|
|
131790
132705
|
const onDrain = () => {
|
|
131791
132706
|
cleanup();
|
|
131792
|
-
|
|
132707
|
+
resolve49();
|
|
131793
132708
|
};
|
|
131794
132709
|
const onError = (err) => {
|
|
131795
132710
|
cleanup();
|
|
@@ -131811,10 +132726,10 @@ function waitForDrain(file, signal) {
|
|
|
131811
132726
|
});
|
|
131812
132727
|
}
|
|
131813
132728
|
function closeFile(file) {
|
|
131814
|
-
return new Promise((
|
|
132729
|
+
return new Promise((resolve49) => {
|
|
131815
132730
|
const done = () => {
|
|
131816
132731
|
file.off("error", done);
|
|
131817
|
-
|
|
132732
|
+
resolve49();
|
|
131818
132733
|
};
|
|
131819
132734
|
file.once("error", done);
|
|
131820
132735
|
file.end(() => done());
|
|
@@ -132224,8 +133139,8 @@ async function startLoopback(opts) {
|
|
|
132224
133139
|
const timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
132225
133140
|
let resolveResult;
|
|
132226
133141
|
let rejectResult;
|
|
132227
|
-
const result = new Promise((
|
|
132228
|
-
resolveResult =
|
|
133142
|
+
const result = new Promise((resolve49, reject) => {
|
|
133143
|
+
resolveResult = resolve49;
|
|
132229
133144
|
rejectResult = reject;
|
|
132230
133145
|
});
|
|
132231
133146
|
let redirectUri = "";
|
|
@@ -132241,7 +133156,7 @@ async function startLoopback(opts) {
|
|
|
132241
133156
|
closed = true;
|
|
132242
133157
|
clearTimeout(timer);
|
|
132243
133158
|
server.closeAllConnections?.();
|
|
132244
|
-
await new Promise((
|
|
133159
|
+
await new Promise((resolve49) => server.close(() => resolve49()));
|
|
132245
133160
|
};
|
|
132246
133161
|
const timer = setTimeout(() => {
|
|
132247
133162
|
rejectResult(new Error(`OAuth callback timed out after ${timeoutMs}ms`));
|
|
@@ -132252,11 +133167,11 @@ async function startLoopback(opts) {
|
|
|
132252
133167
|
return { result, redirectUri, close };
|
|
132253
133168
|
}
|
|
132254
133169
|
async function listen(server, port) {
|
|
132255
|
-
await new Promise((
|
|
133170
|
+
await new Promise((resolve49, reject) => {
|
|
132256
133171
|
server.once("error", reject);
|
|
132257
133172
|
server.listen(port, "127.0.0.1", () => {
|
|
132258
133173
|
server.off("error", reject);
|
|
132259
|
-
|
|
133174
|
+
resolve49();
|
|
132260
133175
|
});
|
|
132261
133176
|
});
|
|
132262
133177
|
}
|
|
@@ -134087,7 +135002,7 @@ async function collectApiKey(inline) {
|
|
|
134087
135002
|
return await promptForKey();
|
|
134088
135003
|
}
|
|
134089
135004
|
async function readAllWithTimeout(stream, timeoutMs) {
|
|
134090
|
-
return await new Promise((
|
|
135005
|
+
return await new Promise((resolve49, reject) => {
|
|
134091
135006
|
const chunks = [];
|
|
134092
135007
|
const timer = setTimeout(() => {
|
|
134093
135008
|
reject(new Error(`Timed out waiting for stdin (${timeoutMs}ms). Pipe the key explicitly.`));
|
|
@@ -134097,7 +135012,7 @@ async function readAllWithTimeout(stream, timeoutMs) {
|
|
|
134097
135012
|
});
|
|
134098
135013
|
stream.on("end", () => {
|
|
134099
135014
|
clearTimeout(timer);
|
|
134100
|
-
|
|
135015
|
+
resolve49(Buffer.concat(chunks).toString("utf8"));
|
|
134101
135016
|
});
|
|
134102
135017
|
stream.on("error", (err) => {
|
|
134103
135018
|
clearTimeout(timer);
|
|
@@ -134360,8 +135275,8 @@ async function confirmInteractive(prompt) {
|
|
|
134360
135275
|
if (!process.stdin.isTTY) return false;
|
|
134361
135276
|
const { createInterface: createInterface3 } = await import("readline");
|
|
134362
135277
|
const rl = createInterface3({ input: process.stdin, output: process.stdout });
|
|
134363
|
-
const answer = await new Promise((
|
|
134364
|
-
rl.question(prompt, (line) =>
|
|
135278
|
+
const answer = await new Promise((resolve49) => {
|
|
135279
|
+
rl.question(prompt, (line) => resolve49(line));
|
|
134365
135280
|
});
|
|
134366
135281
|
rl.close();
|
|
134367
135282
|
return /^y(es)?$/i.test(answer.trim());
|
|
@@ -134983,8 +135898,8 @@ if (rootVersionRequested) {
|
|
|
134983
135898
|
}
|
|
134984
135899
|
try {
|
|
134985
135900
|
const { readFileSync: readFileSync59 } = await import("fs");
|
|
134986
|
-
const { resolve:
|
|
134987
|
-
const envPath =
|
|
135901
|
+
const { resolve: resolve49 } = await import("path");
|
|
135902
|
+
const envPath = resolve49(process.cwd(), ".env");
|
|
134988
135903
|
const envContent = readFileSync59(envPath, "utf-8");
|
|
134989
135904
|
for (const rawLine of envContent.split("\n")) {
|
|
134990
135905
|
let line = rawLine.trim();
|