@openpond/evals 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,573 @@
1
+ export declare const genericToolConformance: {
2
+ snapshot: {
3
+ schemaVersion: "openpond.agentSnapshot.v1";
4
+ id: string;
5
+ profileRelease: {
6
+ id: string;
7
+ contentHash: string;
8
+ } | null;
9
+ instructions: {
10
+ id: string;
11
+ path: string;
12
+ contentHash: string;
13
+ sizeBytes: number;
14
+ mediaType: string;
15
+ visibility: "policy" | "verifier" | "host_private";
16
+ }[];
17
+ skills: {
18
+ id: string;
19
+ path: string;
20
+ contentHash: string;
21
+ sizeBytes: number;
22
+ mediaType: string;
23
+ visibility: "policy" | "verifier" | "host_private";
24
+ }[];
25
+ agents: {
26
+ id: string;
27
+ path: string;
28
+ contentHash: string;
29
+ sizeBytes: number;
30
+ mediaType: string;
31
+ visibility: "policy" | "verifier" | "host_private";
32
+ }[];
33
+ toolDeclarations: {
34
+ name: string;
35
+ description: string;
36
+ inputSchema: Record<string, unknown>;
37
+ inputSchemaHash: string;
38
+ sideEffect: "read" | "write";
39
+ timeoutMs: number;
40
+ }[];
41
+ capabilityRequirements: {
42
+ id: string;
43
+ required: boolean;
44
+ scopes: string[];
45
+ }[];
46
+ dependencyLock: {
47
+ id: string;
48
+ path: string;
49
+ contentHash: string;
50
+ sizeBytes: number;
51
+ mediaType: string;
52
+ visibility: "policy" | "verifier" | "host_private";
53
+ };
54
+ portability: {
55
+ portable: boolean;
56
+ blockers: string[];
57
+ localOnlyAssetRefs: string[];
58
+ hostPrivateAssetRefs: string[];
59
+ };
60
+ metadata: Record<string, unknown>;
61
+ contentHash: string;
62
+ };
63
+ harness: {
64
+ schemaVersion: "openpond.harnessRelease.v1";
65
+ id: string;
66
+ agentSnapshot: {
67
+ id: string;
68
+ contentHash: string;
69
+ };
70
+ program: {
71
+ id: string;
72
+ path: string;
73
+ contentHash: string;
74
+ sizeBytes: number;
75
+ mediaType: string;
76
+ visibility: "policy" | "verifier" | "host_private";
77
+ };
78
+ environment: {
79
+ protocolVersion: "openpond.environment.v1";
80
+ kind: "text" | "agent" | "work" | "custom_program";
81
+ entrypoint: string;
82
+ stateful: boolean;
83
+ deterministicSeeds: boolean;
84
+ lifecycle: ("create" | "reset" | "step" | "collect" | "destroy")[];
85
+ networkPolicy: "none" | "declared_read_only" | "declared_scoped";
86
+ defaultTimeoutMs: number;
87
+ };
88
+ tools: {
89
+ name: string;
90
+ description: string;
91
+ inputSchema: Record<string, unknown>;
92
+ inputSchemaHash: string;
93
+ sideEffect: "read" | "write";
94
+ timeoutMs: number;
95
+ }[];
96
+ lifecycle: {
97
+ create: true;
98
+ reset: true;
99
+ step: true;
100
+ collect: true;
101
+ destroy: true;
102
+ resetScope: "task" | "attempt";
103
+ };
104
+ graderInterface: {
105
+ visibleEvidence: string[];
106
+ privilegedEvidence: string[];
107
+ privateVerifierIsolation: boolean;
108
+ };
109
+ policy: {
110
+ policyVisibleFields: string[];
111
+ privilegedFields: string[];
112
+ hiddenGraderRefs: string[];
113
+ connectedAppScopes: string[];
114
+ };
115
+ files: {
116
+ id: string;
117
+ path: string;
118
+ contentHash: string;
119
+ sizeBytes: number;
120
+ mediaType: string;
121
+ visibility: "policy" | "verifier" | "host_private";
122
+ }[];
123
+ metadata: Record<string, unknown>;
124
+ contentHash: string;
125
+ };
126
+ taskset: {
127
+ schemaVersion: "openpond.tasksetRelease.v1";
128
+ id: string;
129
+ revision: number;
130
+ harnessRelease: {
131
+ id: string;
132
+ contentHash: string;
133
+ };
134
+ policy: {
135
+ policyVisibleFields: string[];
136
+ privilegedFields: string[];
137
+ hiddenGraderRefs: string[];
138
+ connectedAppScopes: string[];
139
+ };
140
+ environment: {
141
+ protocolVersion: "openpond.environment.v1";
142
+ kind: "text" | "agent" | "work" | "custom_program";
143
+ entrypoint: string;
144
+ stateful: boolean;
145
+ deterministicSeeds: boolean;
146
+ lifecycle: ("create" | "reset" | "step" | "collect" | "destroy")[];
147
+ networkPolicy: "none" | "declared_read_only" | "declared_scoped";
148
+ defaultTimeoutMs: number;
149
+ };
150
+ tools: {
151
+ name: string;
152
+ description: string;
153
+ inputSchema: Record<string, unknown>;
154
+ inputSchemaHash: string;
155
+ sideEffect: "read" | "write";
156
+ timeoutMs: number;
157
+ }[];
158
+ capabilities: {
159
+ id: string;
160
+ required: boolean;
161
+ scopes: string[];
162
+ portability: "portable" | "host_adapter" | "local_only" | "hosted_only";
163
+ }[];
164
+ tasks: {
165
+ id: string;
166
+ clusterKey: string;
167
+ split: "train" | "validation" | "test" | "frozen_eval";
168
+ input: Record<string, unknown>;
169
+ expectedOutput: Record<string, unknown> | null;
170
+ policyVisibleContext: Record<string, unknown>;
171
+ privilegedContextRef: string | null;
172
+ artifactRefs: {
173
+ id: string;
174
+ path: string;
175
+ contentHash: string;
176
+ sizeBytes: number;
177
+ mediaType: string;
178
+ visibility: "policy" | "verifier" | "host_private";
179
+ }[];
180
+ tags: string[];
181
+ }[];
182
+ graders: ({
183
+ id: string;
184
+ version: string;
185
+ weight: number;
186
+ hardGate: boolean;
187
+ rewardEligible: boolean;
188
+ privileged: boolean;
189
+ kind: "content" | "schema" | "artifact" | "runtime_event" | "state";
190
+ config: Record<string, unknown>;
191
+ } | {
192
+ id: string;
193
+ version: string;
194
+ weight: number;
195
+ hardGate: boolean;
196
+ rewardEligible: boolean;
197
+ privileged: boolean;
198
+ kind: "model_judge";
199
+ rubricRef: {
200
+ id: string;
201
+ path: string;
202
+ contentHash: string;
203
+ sizeBytes: number;
204
+ mediaType: string;
205
+ visibility: "policy" | "verifier" | "host_private";
206
+ };
207
+ calibrationStatus: "pending" | "passed" | "failed";
208
+ } | {
209
+ id: string;
210
+ version: string;
211
+ weight: number;
212
+ hardGate: boolean;
213
+ rewardEligible: boolean;
214
+ privileged: boolean;
215
+ kind: "custom_verifier";
216
+ verifierRef: {
217
+ id: string;
218
+ path: string;
219
+ contentHash: string;
220
+ sizeBytes: number;
221
+ mediaType: string;
222
+ visibility: "policy" | "verifier" | "host_private";
223
+ };
224
+ timeoutMs: number;
225
+ networkPolicy: "none";
226
+ } | {
227
+ id: string;
228
+ version: string;
229
+ weight: number;
230
+ hardGate: boolean;
231
+ rewardEligible: boolean;
232
+ privileged: boolean;
233
+ kind: "human";
234
+ rubricRef: {
235
+ id: string;
236
+ path: string;
237
+ contentHash: string;
238
+ sizeBytes: number;
239
+ mediaType: string;
240
+ visibility: "policy" | "verifier" | "host_private";
241
+ };
242
+ reviewerRole: string;
243
+ })[];
244
+ metadata: Record<string, unknown>;
245
+ contentHash: string;
246
+ };
247
+ manifest: {
248
+ schemaVersion: "openpond.runManifest.v1";
249
+ id: string;
250
+ harnessRelease: {
251
+ id: string;
252
+ contentHash: string;
253
+ };
254
+ tasksetRelease: {
255
+ id: string;
256
+ contentHash: string;
257
+ };
258
+ model: {
259
+ provider: string;
260
+ model: string;
261
+ revision: string | null;
262
+ artifactHash: string | null;
263
+ tokenizerRevision: string | null;
264
+ chatTemplateHash: string | null;
265
+ };
266
+ runtimeTarget: {
267
+ adapterId: string;
268
+ placement: "local" | "remote" | "colocated" | "provider_native";
269
+ runtimeVersion: string;
270
+ capabilityReceipt: string;
271
+ };
272
+ limits: {
273
+ maxTurns: number;
274
+ timeoutMs: number;
275
+ maxOutputBytes: number;
276
+ maximumSpendUsd: number | null;
277
+ };
278
+ approval: {
279
+ id: string;
280
+ contentHash: string;
281
+ } | null;
282
+ createdAt: string;
283
+ metadata: Record<string, unknown>;
284
+ contentHash: string;
285
+ };
286
+ };
287
+ export declare const marketingPortfolioConformance: {
288
+ snapshot: {
289
+ schemaVersion: "openpond.agentSnapshot.v1";
290
+ id: string;
291
+ profileRelease: {
292
+ id: string;
293
+ contentHash: string;
294
+ } | null;
295
+ instructions: {
296
+ id: string;
297
+ path: string;
298
+ contentHash: string;
299
+ sizeBytes: number;
300
+ mediaType: string;
301
+ visibility: "policy" | "verifier" | "host_private";
302
+ }[];
303
+ skills: {
304
+ id: string;
305
+ path: string;
306
+ contentHash: string;
307
+ sizeBytes: number;
308
+ mediaType: string;
309
+ visibility: "policy" | "verifier" | "host_private";
310
+ }[];
311
+ agents: {
312
+ id: string;
313
+ path: string;
314
+ contentHash: string;
315
+ sizeBytes: number;
316
+ mediaType: string;
317
+ visibility: "policy" | "verifier" | "host_private";
318
+ }[];
319
+ toolDeclarations: {
320
+ name: string;
321
+ description: string;
322
+ inputSchema: Record<string, unknown>;
323
+ inputSchemaHash: string;
324
+ sideEffect: "read" | "write";
325
+ timeoutMs: number;
326
+ }[];
327
+ capabilityRequirements: {
328
+ id: string;
329
+ required: boolean;
330
+ scopes: string[];
331
+ }[];
332
+ dependencyLock: {
333
+ id: string;
334
+ path: string;
335
+ contentHash: string;
336
+ sizeBytes: number;
337
+ mediaType: string;
338
+ visibility: "policy" | "verifier" | "host_private";
339
+ };
340
+ portability: {
341
+ portable: boolean;
342
+ blockers: string[];
343
+ localOnlyAssetRefs: string[];
344
+ hostPrivateAssetRefs: string[];
345
+ };
346
+ metadata: Record<string, unknown>;
347
+ contentHash: string;
348
+ };
349
+ harness: {
350
+ schemaVersion: "openpond.harnessRelease.v1";
351
+ id: string;
352
+ agentSnapshot: {
353
+ id: string;
354
+ contentHash: string;
355
+ };
356
+ program: {
357
+ id: string;
358
+ path: string;
359
+ contentHash: string;
360
+ sizeBytes: number;
361
+ mediaType: string;
362
+ visibility: "policy" | "verifier" | "host_private";
363
+ };
364
+ environment: {
365
+ protocolVersion: "openpond.environment.v1";
366
+ kind: "text" | "agent" | "work" | "custom_program";
367
+ entrypoint: string;
368
+ stateful: boolean;
369
+ deterministicSeeds: boolean;
370
+ lifecycle: ("create" | "reset" | "step" | "collect" | "destroy")[];
371
+ networkPolicy: "none" | "declared_read_only" | "declared_scoped";
372
+ defaultTimeoutMs: number;
373
+ };
374
+ tools: {
375
+ name: string;
376
+ description: string;
377
+ inputSchema: Record<string, unknown>;
378
+ inputSchemaHash: string;
379
+ sideEffect: "read" | "write";
380
+ timeoutMs: number;
381
+ }[];
382
+ lifecycle: {
383
+ create: true;
384
+ reset: true;
385
+ step: true;
386
+ collect: true;
387
+ destroy: true;
388
+ resetScope: "task" | "attempt";
389
+ };
390
+ graderInterface: {
391
+ visibleEvidence: string[];
392
+ privilegedEvidence: string[];
393
+ privateVerifierIsolation: boolean;
394
+ };
395
+ policy: {
396
+ policyVisibleFields: string[];
397
+ privilegedFields: string[];
398
+ hiddenGraderRefs: string[];
399
+ connectedAppScopes: string[];
400
+ };
401
+ files: {
402
+ id: string;
403
+ path: string;
404
+ contentHash: string;
405
+ sizeBytes: number;
406
+ mediaType: string;
407
+ visibility: "policy" | "verifier" | "host_private";
408
+ }[];
409
+ metadata: Record<string, unknown>;
410
+ contentHash: string;
411
+ };
412
+ taskset: {
413
+ schemaVersion: "openpond.tasksetRelease.v1";
414
+ id: string;
415
+ revision: number;
416
+ harnessRelease: {
417
+ id: string;
418
+ contentHash: string;
419
+ };
420
+ policy: {
421
+ policyVisibleFields: string[];
422
+ privilegedFields: string[];
423
+ hiddenGraderRefs: string[];
424
+ connectedAppScopes: string[];
425
+ };
426
+ environment: {
427
+ protocolVersion: "openpond.environment.v1";
428
+ kind: "text" | "agent" | "work" | "custom_program";
429
+ entrypoint: string;
430
+ stateful: boolean;
431
+ deterministicSeeds: boolean;
432
+ lifecycle: ("create" | "reset" | "step" | "collect" | "destroy")[];
433
+ networkPolicy: "none" | "declared_read_only" | "declared_scoped";
434
+ defaultTimeoutMs: number;
435
+ };
436
+ tools: {
437
+ name: string;
438
+ description: string;
439
+ inputSchema: Record<string, unknown>;
440
+ inputSchemaHash: string;
441
+ sideEffect: "read" | "write";
442
+ timeoutMs: number;
443
+ }[];
444
+ capabilities: {
445
+ id: string;
446
+ required: boolean;
447
+ scopes: string[];
448
+ portability: "portable" | "host_adapter" | "local_only" | "hosted_only";
449
+ }[];
450
+ tasks: {
451
+ id: string;
452
+ clusterKey: string;
453
+ split: "train" | "validation" | "test" | "frozen_eval";
454
+ input: Record<string, unknown>;
455
+ expectedOutput: Record<string, unknown> | null;
456
+ policyVisibleContext: Record<string, unknown>;
457
+ privilegedContextRef: string | null;
458
+ artifactRefs: {
459
+ id: string;
460
+ path: string;
461
+ contentHash: string;
462
+ sizeBytes: number;
463
+ mediaType: string;
464
+ visibility: "policy" | "verifier" | "host_private";
465
+ }[];
466
+ tags: string[];
467
+ }[];
468
+ graders: ({
469
+ id: string;
470
+ version: string;
471
+ weight: number;
472
+ hardGate: boolean;
473
+ rewardEligible: boolean;
474
+ privileged: boolean;
475
+ kind: "content" | "schema" | "artifact" | "runtime_event" | "state";
476
+ config: Record<string, unknown>;
477
+ } | {
478
+ id: string;
479
+ version: string;
480
+ weight: number;
481
+ hardGate: boolean;
482
+ rewardEligible: boolean;
483
+ privileged: boolean;
484
+ kind: "model_judge";
485
+ rubricRef: {
486
+ id: string;
487
+ path: string;
488
+ contentHash: string;
489
+ sizeBytes: number;
490
+ mediaType: string;
491
+ visibility: "policy" | "verifier" | "host_private";
492
+ };
493
+ calibrationStatus: "pending" | "passed" | "failed";
494
+ } | {
495
+ id: string;
496
+ version: string;
497
+ weight: number;
498
+ hardGate: boolean;
499
+ rewardEligible: boolean;
500
+ privileged: boolean;
501
+ kind: "custom_verifier";
502
+ verifierRef: {
503
+ id: string;
504
+ path: string;
505
+ contentHash: string;
506
+ sizeBytes: number;
507
+ mediaType: string;
508
+ visibility: "policy" | "verifier" | "host_private";
509
+ };
510
+ timeoutMs: number;
511
+ networkPolicy: "none";
512
+ } | {
513
+ id: string;
514
+ version: string;
515
+ weight: number;
516
+ hardGate: boolean;
517
+ rewardEligible: boolean;
518
+ privileged: boolean;
519
+ kind: "human";
520
+ rubricRef: {
521
+ id: string;
522
+ path: string;
523
+ contentHash: string;
524
+ sizeBytes: number;
525
+ mediaType: string;
526
+ visibility: "policy" | "verifier" | "host_private";
527
+ };
528
+ reviewerRole: string;
529
+ })[];
530
+ metadata: Record<string, unknown>;
531
+ contentHash: string;
532
+ };
533
+ manifest: {
534
+ schemaVersion: "openpond.runManifest.v1";
535
+ id: string;
536
+ harnessRelease: {
537
+ id: string;
538
+ contentHash: string;
539
+ };
540
+ tasksetRelease: {
541
+ id: string;
542
+ contentHash: string;
543
+ };
544
+ model: {
545
+ provider: string;
546
+ model: string;
547
+ revision: string | null;
548
+ artifactHash: string | null;
549
+ tokenizerRevision: string | null;
550
+ chatTemplateHash: string | null;
551
+ };
552
+ runtimeTarget: {
553
+ adapterId: string;
554
+ placement: "local" | "remote" | "colocated" | "provider_native";
555
+ runtimeVersion: string;
556
+ capabilityReceipt: string;
557
+ };
558
+ limits: {
559
+ maxTurns: number;
560
+ timeoutMs: number;
561
+ maxOutputBytes: number;
562
+ maximumSpendUsd: number | null;
563
+ };
564
+ approval: {
565
+ id: string;
566
+ contentHash: string;
567
+ } | null;
568
+ createdAt: string;
569
+ metadata: Record<string, unknown>;
570
+ contentHash: string;
571
+ };
572
+ };
573
+ //# sourceMappingURL=conformance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conformance.d.ts","sourceRoot":"","sources":["../../src/conformance.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEjC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGxC,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { z } from "zod";
2
+ import type { GraderSpec, TaskRecord } from "./tasksets.js";
3
+ export declare const GraderEvidenceContentSchema: z.ZodObject<{
4
+ schemaVersion: z.ZodLiteral<"openpond.graderEvidence.v1">;
5
+ graderId: z.ZodString;
6
+ graderVersion: z.ZodString;
7
+ score: z.ZodNullable<z.ZodNumber>;
8
+ passed: z.ZodBoolean;
9
+ rewardEligible: z.ZodBoolean;
10
+ failureClass: z.ZodNullable<z.ZodEnum<{
11
+ policy_failure: "policy_failure";
12
+ grader_failure: "grader_failure";
13
+ environment_failure: "environment_failure";
14
+ infrastructure_failure: "infrastructure_failure";
15
+ timeout: "timeout";
16
+ cancelled: "cancelled";
17
+ }>>;
18
+ feedback: z.ZodArray<z.ZodString>;
19
+ visibleEvidenceRefs: z.ZodArray<z.ZodString>;
20
+ privilegedEvidenceRefs: z.ZodArray<z.ZodString>;
21
+ }, z.core.$strict>;
22
+ export declare const GraderEvidenceSchema: z.ZodObject<{
23
+ schemaVersion: z.ZodLiteral<"openpond.graderEvidence.v1">;
24
+ graderId: z.ZodString;
25
+ graderVersion: z.ZodString;
26
+ score: z.ZodNullable<z.ZodNumber>;
27
+ passed: z.ZodBoolean;
28
+ rewardEligible: z.ZodBoolean;
29
+ failureClass: z.ZodNullable<z.ZodEnum<{
30
+ policy_failure: "policy_failure";
31
+ grader_failure: "grader_failure";
32
+ environment_failure: "environment_failure";
33
+ infrastructure_failure: "infrastructure_failure";
34
+ timeout: "timeout";
35
+ cancelled: "cancelled";
36
+ }>>;
37
+ feedback: z.ZodArray<z.ZodString>;
38
+ visibleEvidenceRefs: z.ZodArray<z.ZodString>;
39
+ privilegedEvidenceRefs: z.ZodArray<z.ZodString>;
40
+ contentHash: z.ZodString;
41
+ }, z.core.$strict>;
42
+ export type AttemptEvidence = {
43
+ output: Record<string, unknown>;
44
+ runtimeEventRefs: string[];
45
+ artifactRefs: string[];
46
+ infrastructureError?: string | null;
47
+ };
48
+ export type ModelJudgeRunner = (input: {
49
+ grader: Extract<GraderSpec, {
50
+ kind: "model_judge";
51
+ }>;
52
+ task: TaskRecord;
53
+ evidence: AttemptEvidence;
54
+ }) => Promise<Omit<GraderEvidence, "schemaVersion" | "graderId" | "graderVersion" | "contentHash">>;
55
+ export type CustomVerifierRunner = (input: {
56
+ grader: Extract<GraderSpec, {
57
+ kind: "custom_verifier";
58
+ }>;
59
+ task: TaskRecord;
60
+ evidence: AttemptEvidence;
61
+ }) => Promise<Omit<GraderEvidence, "schemaVersion" | "graderId" | "graderVersion" | "contentHash">>;
62
+ export declare function gradeEvidence(input: {
63
+ task: TaskRecord;
64
+ evidence: AttemptEvidence;
65
+ graders: GraderSpec[];
66
+ modelJudge?: ModelJudgeRunner;
67
+ customVerifier?: CustomVerifierRunner;
68
+ }): Promise<GraderEvidence[]>;
69
+ export type GraderEvidence = z.infer<typeof GraderEvidenceSchema>;
70
+ //# sourceMappingURL=graders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graders.d.ts","sourceRoot":"","sources":["../../src/graders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAA2B,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAErF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;kBAW7B,CAAC;AACZ,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;kBAAkF,CAAC;AAEpH,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,aAAa,CAAA;KAAE,CAAC,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,eAAe,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,GAAG,UAAU,GAAG,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC;AAC/O,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,iBAAiB,CAAA;KAAE,CAAC,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,eAAe,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,GAAG,UAAU,GAAG,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC;AAEvP,wBAAsB,aAAa,CAAC,KAAK,EAAE;IACzC,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,oBAAoB,CAAC;CACvC,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAwB5B;AA4CD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}