@framers/agentos 0.1.234 → 0.1.236
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.
|
@@ -23,6 +23,19 @@ interface UsageBucket extends UsageDimensions {
|
|
|
23
23
|
totalTokens: number;
|
|
24
24
|
costUSD: number;
|
|
25
25
|
calls: number;
|
|
26
|
+
/**
|
|
27
|
+
* Tokens served from the provider's prompt-prefix cache (Anthropic
|
|
28
|
+
* cache_read_input_tokens). Only set when the provider reports it;
|
|
29
|
+
* undefined otherwise so consumers can distinguish "not reported"
|
|
30
|
+
* from "zero hits".
|
|
31
|
+
*/
|
|
32
|
+
cacheReadTokens?: number;
|
|
33
|
+
/**
|
|
34
|
+
* Tokens written to the provider's prompt-prefix cache as a new
|
|
35
|
+
* entry (Anthropic cache_creation_input_tokens). Same not-reported
|
|
36
|
+
* vs zero convention as cacheReadTokens.
|
|
37
|
+
*/
|
|
38
|
+
cacheCreationTokens?: number;
|
|
26
39
|
}
|
|
27
40
|
/** Result returned by summary queries. */
|
|
28
41
|
export type UsageSummary = UsageBucket;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UsageLedger.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/usage/UsageLedger.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AACH,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEpF,8DAA8D;AAC9D,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,2CAA2C;AAC3C,UAAU,WAAY,SAAQ,eAAe;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"UsageLedger.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/usage/UsageLedger.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AACH,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEpF,8DAA8D;AAC9D,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,2CAA2C;AAC3C,UAAU,WAAY,SAAQ,eAAe;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,0CAA0C;AAC1C,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC;AAEvC,6DAA6D;AAC7D,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;CACnC;AAED,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IACjC,8FAA8F;IAC9F,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtG,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,uBAAuB,CAAC;CAC9C;AAED;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,OAAO,CAAqB;gBAExB,OAAO,GAAE,kBAAuB;IAI5C,mDAAmD;IACnD,OAAO,CAAC,SAAS;IAIjB,4BAA4B;IAC5B,OAAO,CAAC,iBAAiB;IAUzB;;;OAGG;IACH,qBAAqB,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,uBAAuB,GAAG,IAAI;IA0CjF,mEAAmE;IACnE,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IA6BpG,4BAA4B;IAC5B,gBAAgB,IAAI,YAAY,EAAE;IAIlC,2BAA2B;IAC3B,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE;IAIxD,yDAAyD;IACzD,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAsBhE,2DAA2D;IACrD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,iEAAiE;IAC3D,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;CAkBhD;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -36,6 +36,18 @@ export class UsageLedger {
|
|
|
36
36
|
b.promptTokens += usage.promptTokens || 0;
|
|
37
37
|
b.completionTokens += usage.completionTokens || 0;
|
|
38
38
|
b.totalTokens += usage.totalTokens || 0;
|
|
39
|
+
// Prompt-cache metrics. Anthropic surfaces these on ModelUsage via
|
|
40
|
+
// cacheReadInputTokens / cacheCreationInputTokens. Forward into the
|
|
41
|
+
// bucket only when the provider actually reported a value so the
|
|
42
|
+
// undefined sentinel stays meaningful.
|
|
43
|
+
const cacheRead = usage
|
|
44
|
+
.cacheReadInputTokens ?? usage.cacheReadTokens;
|
|
45
|
+
const cacheCreate = usage
|
|
46
|
+
.cacheCreationInputTokens ?? usage.cacheCreationTokens;
|
|
47
|
+
if (typeof cacheRead === 'number')
|
|
48
|
+
b.cacheReadTokens = (b.cacheReadTokens ?? 0) + cacheRead;
|
|
49
|
+
if (typeof cacheCreate === 'number')
|
|
50
|
+
b.cacheCreationTokens = (b.cacheCreationTokens ?? 0) + cacheCreate;
|
|
39
51
|
// Cost: prefer provided costUSD else derive from fallback pricing.
|
|
40
52
|
let cost = usage.costUSD || 0;
|
|
41
53
|
if (!usage.costUSD && this.options.pricingFallbacks) {
|
|
@@ -63,6 +75,15 @@ export class UsageLedger {
|
|
|
63
75
|
b.promptTokens += usage.promptTokens || 0;
|
|
64
76
|
b.completionTokens += usage.completionTokens || 0;
|
|
65
77
|
b.totalTokens += usage.totalTokens || 0;
|
|
78
|
+
// Same cache-token forwarding as ingestCompletionChunk.
|
|
79
|
+
const cacheRead = usage
|
|
80
|
+
.cacheReadInputTokens ?? usage.cacheReadTokens;
|
|
81
|
+
const cacheCreate = usage
|
|
82
|
+
.cacheCreationInputTokens ?? usage.cacheCreationTokens;
|
|
83
|
+
if (typeof cacheRead === 'number')
|
|
84
|
+
b.cacheReadTokens = (b.cacheReadTokens ?? 0) + cacheRead;
|
|
85
|
+
if (typeof cacheCreate === 'number')
|
|
86
|
+
b.cacheCreationTokens = (b.cacheCreationTokens ?? 0) + cacheCreate;
|
|
66
87
|
let cost = usage.costUSD || 0;
|
|
67
88
|
if (!usage.costUSD && this.options.pricingFallbacks) {
|
|
68
89
|
const p = this.options.pricingFallbacks[b.modelId || ''];
|
|
@@ -104,6 +125,12 @@ export class UsageLedger {
|
|
|
104
125
|
acc.totalTokens += b.totalTokens;
|
|
105
126
|
acc.costUSD += b.costUSD;
|
|
106
127
|
acc.calls += b.calls;
|
|
128
|
+
if (typeof b.cacheReadTokens === 'number') {
|
|
129
|
+
acc.cacheReadTokens = (acc.cacheReadTokens ?? 0) + b.cacheReadTokens;
|
|
130
|
+
}
|
|
131
|
+
if (typeof b.cacheCreationTokens === 'number') {
|
|
132
|
+
acc.cacheCreationTokens = (acc.cacheCreationTokens ?? 0) + b.cacheCreationTokens;
|
|
133
|
+
}
|
|
107
134
|
}
|
|
108
135
|
return acc;
|
|
109
136
|
}, buckets[0]);
|
|
@@ -128,6 +155,12 @@ export class UsageLedger {
|
|
|
128
155
|
existing.totalTokens += b.totalTokens;
|
|
129
156
|
existing.costUSD += b.costUSD;
|
|
130
157
|
existing.calls += b.calls;
|
|
158
|
+
if (typeof b.cacheReadTokens === 'number') {
|
|
159
|
+
existing.cacheReadTokens = (existing.cacheReadTokens ?? 0) + b.cacheReadTokens;
|
|
160
|
+
}
|
|
161
|
+
if (typeof b.cacheCreationTokens === 'number') {
|
|
162
|
+
existing.cacheCreationTokens = (existing.cacheCreationTokens ?? 0) + b.cacheCreationTokens;
|
|
163
|
+
}
|
|
131
164
|
}
|
|
132
165
|
}
|
|
133
166
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UsageLedger.js","sourceRoot":"","sources":["../../../../src/core/utils/usage/UsageLedger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"UsageLedger.js","sourceRoot":"","sources":["../../../../src/core/utils/usage/UsageLedger.ts"],"names":[],"mappings":"AA8DA;;;GAGG;AACH,MAAM,OAAO,WAAW;IAItB,YAAY,UAA8B,EAAE;QAHpC,YAAO,GAA6B,IAAI,GAAG,EAAE,CAAC;QAIpD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,mDAAmD;IAC3C,SAAS,CAAC,GAAoB;QACpC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,GAAG,EAAE,GAAG,CAAC,UAAU,IAAI,GAAG,EAAE,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpG,CAAC;IAED,4BAA4B;IACpB,iBAAiB,CAAC,GAAoB;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YAC3F,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED;;;OAGG;IACH,qBAAqB,CAAC,GAAoB,EAAE,KAA8B;QACxE,IAAI,CAAC,KAAK,CAAC,KAAK;YAAE,OAAO,CAAC,oBAAoB;QAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,4BAA4B;YAAE,OAAO;QAEzE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAErE,0DAA0D;QAC1D,CAAC,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC,gBAAgB,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAClD,CAAC,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;QAExC,mEAAmE;QACnE,oEAAoE;QACpE,iEAAiE;QACjE,uCAAuC;QACvC,MAAM,SAAS,GAAI,KAAqE;aACrF,oBAAoB,IAAK,KAAsC,CAAC,eAAe,CAAC;QACnF,MAAM,WAAW,GAAI,KAA6E;aAC/F,wBAAwB,IAAK,KAA0C,CAAC,mBAAmB,CAAC;QAC/F,IAAI,OAAO,SAAS,KAAK,QAAQ;YAAE,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;QAC5F,IAAI,OAAO,WAAW,KAAK,QAAQ;YAAE,CAAC,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC;QAExG,mEAAmE;QACnE,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YACpD,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACzD,IAAI,CAAC,EAAE,CAAC;gBACN,wFAAwF;gBACxF,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;oBACjB,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,OAAS,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;gBACzD,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,YAAY;wBAAE,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,OAAS,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;oBAChG,IAAI,CAAC,CAAC,WAAW,IAAI,KAAK,CAAC,gBAAgB;wBAAE,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,OAAS,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;gBAC5G,CAAC;YACH,CAAC;QACH,CAAC;QACD,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;QAElB,IAAI,KAAK,CAAC,OAAO;YAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,mEAAmE;IACnE,WAAW,CAAC,GAAoB,EAAE,KAA2D;QAC3F,MAAM,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACrE,CAAC,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC,gBAAgB,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAClD,CAAC,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;QACxC,wDAAwD;QACxD,MAAM,SAAS,GAAI,KAAqE;aACrF,oBAAoB,IAAK,KAAsC,CAAC,eAAe,CAAC;QACnF,MAAM,WAAW,GAAI,KAA6E;aAC/F,wBAAwB,IAAK,KAA0C,CAAC,mBAAmB,CAAC;QAC/F,IAAI,OAAO,SAAS,KAAK,QAAQ;YAAE,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;QAC5F,IAAI,OAAO,WAAW,KAAK,QAAQ;YAAE,CAAC,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC,mBAAmB,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC;QAExG,IAAI,IAAI,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YACpD,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACzD,IAAI,CAAC,EAAE,CAAC;gBACN,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;oBACjB,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,OAAS,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;gBACzD,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,YAAY;wBAAE,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,OAAS,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;oBAChG,IAAI,CAAC,CAAC,WAAW,IAAI,KAAK,CAAC,gBAAgB;wBAAE,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,OAAS,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;gBAC5G,CAAC;YACH,CAAC;QACH,CAAC;QACD,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC;QAClB,IAAI,KAAK,CAAC,OAAO;YAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,4BAA4B;IAC5B,gBAAgB;QACd,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,2BAA2B;IAC3B,qBAAqB,CAAC,SAAiB;QACrC,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IACxE,CAAC;IAED,yDAAyD;IACzD,mBAAmB,CAAC,SAAiB;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QACtC,OAAO,OAAO,CAAC,MAAM,CAAe,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;YAChD,IAAI,CAAC,KAAK,CAAC;gBAAE,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;iBACvB,CAAC;gBACJ,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,CAAC;gBACnC,GAAG,CAAC,gBAAgB,IAAI,CAAC,CAAC,gBAAgB,CAAC;gBAC3C,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC;gBACjC,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC;gBACzB,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;gBACrB,IAAI,OAAO,CAAC,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;oBAC1C,GAAG,CAAC,eAAe,GAAG,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC;gBACvE,CAAC;gBACD,IAAI,OAAO,CAAC,CAAC,mBAAmB,KAAK,QAAQ,EAAE,CAAC;oBAC9C,GAAG,CAAC,mBAAmB,GAAG,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,mBAAmB,CAAC;gBACnF,CAAC;YACH,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,2DAA2D;IAC3D,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB;YAAE,OAAO;QAC7C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,KAAK,CAAC,wBAAwB;QAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB;YAAE,OAAO;QAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;QAC/D,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAC3C,QAAQ,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,CAAC;YACxC,QAAQ,CAAC,gBAAgB,IAAI,CAAC,CAAC,gBAAgB,CAAC;YAChD,QAAQ,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC;YACtC,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC;YAC9B,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC;YAC1B,IAAI,OAAO,CAAC,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;gBAC1C,QAAQ,CAAC,eAAe,GAAG,CAAC,QAAQ,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC;YACjF,CAAC;YACD,IAAI,OAAO,CAAC,CAAC,mBAAmB,KAAK,QAAQ,EAAE,CAAC;gBAC9C,QAAQ,CAAC,mBAAmB,GAAG,CAAC,QAAQ,CAAC,mBAAmB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,mBAAmB,CAAC;YAC7F,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,eAAe,WAAW,CAAC"}
|