agent-conveyor 0.1.7 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -19
- package/dist/cli/typescript-runtime.js +393 -16
- package/dist/cli/typescript-runtime.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/runtime/app-autonomy.d.ts +109 -0
- package/dist/runtime/app-autonomy.js +263 -0
- package/dist/runtime/app-autonomy.js.map +1 -0
- package/dist/runtime/codex-session.d.ts +6 -0
- package/dist/runtime/codex-session.js +27 -5
- package/dist/runtime/codex-session.js.map +1 -1
- package/dist/runtime/notifications.js +102 -1
- package/dist/runtime/notifications.js.map +1 -1
- package/dist/state/database.js +162 -24
- package/dist/state/database.js.map +1 -1
- package/dist/state/schema-v23.js +4 -2
- package/dist/state/schema-v23.js.map +1 -1
- package/dist/state/sqlite-contract.d.ts +1 -1
- package/dist/state/sqlite-contract.js +1 -1
- package/docs/landing-page.html +393 -40
- package/docs/manager-recipes.md +108 -0
- package/docs/typescript-migration/cli-contract.md +11 -14
- package/docs/typescript-migration/package-install-contract.md +1 -1
- package/docs/typescript-migration/qa-gate-matrix.md +7 -13
- package/docs/typescript-migration/sqlite-state-contract.md +2 -3
- package/docs/typescript-migration/t005-runtime-parity.md +12 -12
- package/package.json +1 -1
- package/skills/manage-codex-workers/SKILL.md +89 -17
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
1
2
|
export class RoutedNotificationError extends Error {
|
|
2
3
|
constructor(message) {
|
|
3
4
|
super(message);
|
|
@@ -110,7 +111,61 @@ export function consumeNextSessionInboxItemSync(database, options) {
|
|
|
110
111
|
return null;
|
|
111
112
|
}
|
|
112
113
|
const consumed = database.prepare(sessionInboxQuery("rn.id = ?")).get(row.id);
|
|
113
|
-
|
|
114
|
+
if (!consumed) {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
const record = sessionInboxRecord(consumed);
|
|
118
|
+
advanceRalphLoopIterationOnConsumeSync(database, {
|
|
119
|
+
consumed: record,
|
|
120
|
+
now: options.now ?? new Date().toISOString(),
|
|
121
|
+
});
|
|
122
|
+
return record;
|
|
123
|
+
}
|
|
124
|
+
function advanceRalphLoopIterationOnConsumeSync(database, options) {
|
|
125
|
+
if (options.consumed.signal_type !== "continue_iteration") {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const loopPayload = isRecord(options.consumed.payload.ralph_loop)
|
|
129
|
+
? options.consumed.payload.ralph_loop
|
|
130
|
+
: null;
|
|
131
|
+
const runId = typeof loopPayload?.run_id === "string" ? loopPayload.run_id : null;
|
|
132
|
+
const requestedIteration = integerMetadata(loopPayload?.requested_iteration);
|
|
133
|
+
if (!runId || requestedIteration === null) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
const row = database.prepare(`
|
|
137
|
+
select task_id, metadata_json
|
|
138
|
+
from runs
|
|
139
|
+
where id = ?
|
|
140
|
+
`).get(runId);
|
|
141
|
+
if (!row || row.task_id !== options.consumed.task_id) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
const metadata = parseJsonObject(row.metadata_json);
|
|
145
|
+
const previousIteration = integerMetadata(metadata.current_iteration);
|
|
146
|
+
const maxIterations = integerMetadata(metadata.max_iterations);
|
|
147
|
+
if (previousIteration === null
|
|
148
|
+
|| maxIterations === null
|
|
149
|
+
|| requestedIteration <= previousIteration
|
|
150
|
+
|| requestedIteration > maxIterations) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
metadata.current_iteration = requestedIteration;
|
|
154
|
+
database.prepare("update runs set metadata_json = ? where id = ?")
|
|
155
|
+
.run(stableJson(metadata), runId);
|
|
156
|
+
emitLoopIterationAdvancedTelemetry(database, {
|
|
157
|
+
commandId: options.consumed.command_id,
|
|
158
|
+
consumedBySessionId: options.consumed.consumed_by_session_id,
|
|
159
|
+
correlationId: options.consumed.correlation_id,
|
|
160
|
+
currentIteration: requestedIteration,
|
|
161
|
+
notificationId: options.consumed.id,
|
|
162
|
+
previousIteration,
|
|
163
|
+
requestedIteration,
|
|
164
|
+
runId,
|
|
165
|
+
targetSessionName: options.consumed.target_session_name,
|
|
166
|
+
taskId: options.consumed.task_id,
|
|
167
|
+
timestamp: options.now,
|
|
168
|
+
});
|
|
114
169
|
}
|
|
115
170
|
function routedNotificationSelect() {
|
|
116
171
|
return `
|
|
@@ -191,6 +246,52 @@ function sessionRow(database, sessionName) {
|
|
|
191
246
|
}
|
|
192
247
|
return row;
|
|
193
248
|
}
|
|
249
|
+
function emitLoopIterationAdvancedTelemetry(database, options) {
|
|
250
|
+
const eventId = `telemetry-${randomUUID()}`;
|
|
251
|
+
const attributes = {
|
|
252
|
+
consumed_by_session_id: options.consumedBySessionId,
|
|
253
|
+
current_iteration: options.currentIteration,
|
|
254
|
+
previous_iteration: options.previousIteration,
|
|
255
|
+
requested_iteration: options.requestedIteration,
|
|
256
|
+
target_session_name: options.targetSessionName,
|
|
257
|
+
};
|
|
258
|
+
const correlation = {
|
|
259
|
+
command_id: options.commandId,
|
|
260
|
+
correlation_id: options.correlationId,
|
|
261
|
+
notification_id: options.notificationId,
|
|
262
|
+
run_id: options.runId,
|
|
263
|
+
};
|
|
264
|
+
const attributesJson = stableJson(attributes);
|
|
265
|
+
database.prepare(`
|
|
266
|
+
insert into telemetry_events(
|
|
267
|
+
id, run_id, task_id, timestamp, actor, event_type, severity,
|
|
268
|
+
summary, correlation_json, attributes_json
|
|
269
|
+
)
|
|
270
|
+
values (?, ?, ?, ?, 'dispatch', 'ralph_loop_iteration_advanced', 'info', ?, ?, ?)
|
|
271
|
+
`).run(eventId, options.runId, options.taskId, options.timestamp, `Ralph loop advanced to iteration ${options.currentIteration}.`, stableJson(correlation), attributesJson);
|
|
272
|
+
database.prepare(`
|
|
273
|
+
insert into telemetry_events_fts(
|
|
274
|
+
event_id, task_id, run_id, actor, event_type, summary, attributes
|
|
275
|
+
)
|
|
276
|
+
values (?, ?, ?, 'dispatch', 'ralph_loop_iteration_advanced', ?, ?)
|
|
277
|
+
`).run(eventId, options.taskId, options.runId, `Ralph loop advanced to iteration ${options.currentIteration}.`, attributesJson);
|
|
278
|
+
}
|
|
279
|
+
function parseJsonObject(json) {
|
|
280
|
+
const value = JSON.parse(json);
|
|
281
|
+
return isRecord(value) ? value : {};
|
|
282
|
+
}
|
|
283
|
+
function integerMetadata(value) {
|
|
284
|
+
if (typeof value === "number" && Number.isInteger(value)) {
|
|
285
|
+
return value;
|
|
286
|
+
}
|
|
287
|
+
if (typeof value === "string" && /^-?\d+$/.test(value)) {
|
|
288
|
+
return Number(value);
|
|
289
|
+
}
|
|
290
|
+
return null;
|
|
291
|
+
}
|
|
292
|
+
function isRecord(value) {
|
|
293
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
294
|
+
}
|
|
194
295
|
function stableJson(value) {
|
|
195
296
|
return JSON.stringify(sortJson(value));
|
|
196
297
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/runtime/notifications.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/runtime/notifications.ts"],"names":[],"mappings":"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"}
|
package/dist/state/database.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { mkdirSync } from "node:fs";
|
|
2
|
-
import { spawnSync } from "node:child_process";
|
|
3
2
|
import { dirname } from "node:path";
|
|
4
3
|
import { DatabaseSync } from "node:sqlite";
|
|
5
4
|
import { defaultDbPath } from "./files.js";
|
|
@@ -35,7 +34,7 @@ export function initializeDatabaseSync(database) {
|
|
|
35
34
|
return;
|
|
36
35
|
}
|
|
37
36
|
if (userVersion !== 0 || hasUserTables(database)) {
|
|
38
|
-
|
|
37
|
+
migrateLegacySchemaSync(database, userVersion);
|
|
39
38
|
return;
|
|
40
39
|
}
|
|
41
40
|
database.exec(SCHEMA_V23_SQL);
|
|
@@ -43,32 +42,132 @@ export function initializeDatabaseSync(database) {
|
|
|
43
42
|
database.prepare("insert or ignore into schema_migrations(version, applied_at) values (?, ?)").run(SCHEMA_VERSION, now);
|
|
44
43
|
database.exec(`PRAGMA user_version = ${SCHEMA_VERSION}`);
|
|
45
44
|
}
|
|
46
|
-
function
|
|
47
|
-
|
|
48
|
-
if (!path) {
|
|
45
|
+
function migrateLegacySchemaSync(database, userVersion) {
|
|
46
|
+
if (!databasePath(database)) {
|
|
49
47
|
throw new WorkerctlDatabaseError(`Migrating existing schema version ${userVersion} requires a file-backed database`);
|
|
50
48
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
cwd: process.cwd(),
|
|
62
|
-
encoding: "utf8",
|
|
63
|
-
});
|
|
64
|
-
if (result.status !== 0) {
|
|
65
|
-
const detail = (result.stderr || result.stdout || "unknown migration error").trim();
|
|
66
|
-
throw new WorkerctlDatabaseError(`Python legacy migration failed: ${detail}`);
|
|
49
|
+
database.exec("PRAGMA foreign_keys = OFF");
|
|
50
|
+
try {
|
|
51
|
+
migrateCommandsBlockedStateSync(database);
|
|
52
|
+
migrateCommandAttemptsBlockedStateSync(database);
|
|
53
|
+
database.exec(idempotentSchemaSql());
|
|
54
|
+
addColumnIfMissing(database, "manager_configs", "recipe_name", "text");
|
|
55
|
+
addColumnIfMissing(database, "sessions", "codex_app_thread_id", "text");
|
|
56
|
+
addColumnIfMissing(database, "sessions", "codex_app_thread_title", "text");
|
|
57
|
+
database.prepare("insert or ignore into schema_migrations(version, applied_at) values (?, ?)").run(SCHEMA_VERSION, new Date().toISOString());
|
|
58
|
+
database.exec(`PRAGMA user_version = ${SCHEMA_VERSION}`);
|
|
67
59
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
throw new WorkerctlDatabaseError(`Python legacy migration left schema version ${migratedVersion}; expected ${SCHEMA_VERSION}`);
|
|
60
|
+
finally {
|
|
61
|
+
database.exec("PRAGMA foreign_keys = ON");
|
|
71
62
|
}
|
|
63
|
+
if (pragmaNumber(database, "foreign_keys") !== 1) {
|
|
64
|
+
throw new WorkerctlDatabaseError("SQLite foreign key enforcement is not enabled after legacy migration");
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function migrateCommandsBlockedStateSync(database) {
|
|
68
|
+
if (!hasTable(database, "commands") || tableSql(database, "commands").includes("'blocked'")) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
const columns = tableColumns(database, "commands");
|
|
72
|
+
database.exec(`
|
|
73
|
+
create table commands_v22(
|
|
74
|
+
id text primary key,
|
|
75
|
+
idempotency_key text unique not null,
|
|
76
|
+
created_at text not null,
|
|
77
|
+
updated_at text not null,
|
|
78
|
+
task_id text references tasks(id),
|
|
79
|
+
worker_id text references workers(id),
|
|
80
|
+
manager_id text references managers(id),
|
|
81
|
+
correlation_id text,
|
|
82
|
+
type text not null,
|
|
83
|
+
state text not null check (state in ('pending','attempted','succeeded','failed','blocked')),
|
|
84
|
+
available_at text,
|
|
85
|
+
claimed_by text,
|
|
86
|
+
claimed_at text,
|
|
87
|
+
claim_expires_at text,
|
|
88
|
+
attempts integer not null default 0 check (attempts >= 0),
|
|
89
|
+
max_attempts integer not null default 1 check (max_attempts > 0),
|
|
90
|
+
required_permission text,
|
|
91
|
+
payload_json text not null check (json_valid(payload_json)),
|
|
92
|
+
result_json text check (result_json is null or json_valid(result_json)),
|
|
93
|
+
error text
|
|
94
|
+
);
|
|
95
|
+
|
|
96
|
+
insert into commands_v22(
|
|
97
|
+
id, idempotency_key, created_at, updated_at, task_id, worker_id,
|
|
98
|
+
manager_id, correlation_id, type, state, available_at, claimed_by,
|
|
99
|
+
claimed_at, claim_expires_at, attempts, max_attempts,
|
|
100
|
+
required_permission, payload_json, result_json, error
|
|
101
|
+
)
|
|
102
|
+
select
|
|
103
|
+
${selectColumnOrDefault(columns, "id", "lower(hex(randomblob(16)))")},
|
|
104
|
+
${selectColumnOrDefault(columns, "idempotency_key", "lower(hex(randomblob(16)))")},
|
|
105
|
+
${selectColumnOrDefault(columns, "created_at", "datetime('now')")},
|
|
106
|
+
${selectColumnOrDefault(columns, "updated_at", "datetime('now')")},
|
|
107
|
+
${selectColumnOrDefault(columns, "task_id", "null")},
|
|
108
|
+
${selectColumnOrDefault(columns, "worker_id", "null")},
|
|
109
|
+
${selectColumnOrDefault(columns, "manager_id", "null")},
|
|
110
|
+
${selectColumnOrDefault(columns, "correlation_id", "null")},
|
|
111
|
+
${selectColumnOrDefault(columns, "type", "'notify_manager'")},
|
|
112
|
+
${selectColumnOrDefault(columns, "state", "'pending'")},
|
|
113
|
+
${selectColumnOrDefault(columns, "available_at", "null")},
|
|
114
|
+
${selectColumnOrDefault(columns, "claimed_by", "null")},
|
|
115
|
+
${selectColumnOrDefault(columns, "claimed_at", "null")},
|
|
116
|
+
${selectColumnOrDefault(columns, "claim_expires_at", "null")},
|
|
117
|
+
${selectColumnOrDefault(columns, "attempts", "0")},
|
|
118
|
+
${selectColumnOrDefault(columns, "max_attempts", "1")},
|
|
119
|
+
${selectColumnOrDefault(columns, "required_permission", "null")},
|
|
120
|
+
${selectColumnOrDefault(columns, "payload_json", "'{}'")},
|
|
121
|
+
${selectColumnOrDefault(columns, "result_json", "null")},
|
|
122
|
+
${selectColumnOrDefault(columns, "error", "null")}
|
|
123
|
+
from commands;
|
|
124
|
+
|
|
125
|
+
drop table commands;
|
|
126
|
+
alter table commands_v22 rename to commands;
|
|
127
|
+
`);
|
|
128
|
+
}
|
|
129
|
+
function migrateCommandAttemptsBlockedStateSync(database) {
|
|
130
|
+
if (!hasTable(database, "command_attempts") || tableSql(database, "command_attempts").includes("'blocked'")) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
const columns = tableColumns(database, "command_attempts");
|
|
134
|
+
database.exec(`
|
|
135
|
+
create table command_attempts_v22(
|
|
136
|
+
id integer primary key autoincrement,
|
|
137
|
+
command_id text not null references commands(id),
|
|
138
|
+
correlation_id text not null,
|
|
139
|
+
dispatcher_id text not null,
|
|
140
|
+
started_at text not null,
|
|
141
|
+
finished_at text,
|
|
142
|
+
state text not null check (state in ('running','succeeded','failed','abandoned','blocked')),
|
|
143
|
+
result_json text check (result_json is null or json_valid(result_json)),
|
|
144
|
+
error text,
|
|
145
|
+
side_effect_started integer not null default 0 check (side_effect_started in (0, 1)),
|
|
146
|
+
side_effect_completed integer not null default 0 check (side_effect_completed in (0, 1))
|
|
147
|
+
);
|
|
148
|
+
|
|
149
|
+
insert into command_attempts_v22(
|
|
150
|
+
id, command_id, correlation_id, dispatcher_id, started_at,
|
|
151
|
+
finished_at, state, result_json, error, side_effect_started,
|
|
152
|
+
side_effect_completed
|
|
153
|
+
)
|
|
154
|
+
select
|
|
155
|
+
${selectColumnOrDefault(columns, "id", "null")},
|
|
156
|
+
${selectColumnOrDefault(columns, "command_id", "''")},
|
|
157
|
+
${selectColumnOrDefault(columns, "correlation_id", "lower(hex(randomblob(16)))")},
|
|
158
|
+
${selectColumnOrDefault(columns, "dispatcher_id", "'legacy-migration'")},
|
|
159
|
+
${selectColumnOrDefault(columns, "started_at", "datetime('now')")},
|
|
160
|
+
${selectColumnOrDefault(columns, "finished_at", "null")},
|
|
161
|
+
${selectColumnOrDefault(columns, "state", "'running'")},
|
|
162
|
+
${selectColumnOrDefault(columns, "result_json", "null")},
|
|
163
|
+
${selectColumnOrDefault(columns, "error", "null")},
|
|
164
|
+
${selectColumnOrDefault(columns, "side_effect_started", "0")},
|
|
165
|
+
${selectColumnOrDefault(columns, "side_effect_completed", "0")}
|
|
166
|
+
from command_attempts;
|
|
167
|
+
|
|
168
|
+
drop table command_attempts;
|
|
169
|
+
alter table command_attempts_v22 rename to command_attempts;
|
|
170
|
+
`);
|
|
72
171
|
}
|
|
73
172
|
export function databaseHealthSync(database) {
|
|
74
173
|
const foreignKeys = pragmaNumber(database, "foreign_keys");
|
|
@@ -112,6 +211,45 @@ function hasUserTables(database) {
|
|
|
112
211
|
`).get();
|
|
113
212
|
return row.count > 0;
|
|
114
213
|
}
|
|
214
|
+
function idempotentSchemaSql() {
|
|
215
|
+
return SCHEMA_V23_SQL
|
|
216
|
+
.replaceAll("CREATE TABLE ", "CREATE TABLE IF NOT EXISTS ")
|
|
217
|
+
.replaceAll("CREATE VIRTUAL TABLE ", "CREATE VIRTUAL TABLE IF NOT EXISTS ")
|
|
218
|
+
.replaceAll("CREATE UNIQUE INDEX ", "CREATE UNIQUE INDEX IF NOT EXISTS ")
|
|
219
|
+
.replaceAll("CREATE INDEX ", "CREATE INDEX IF NOT EXISTS ")
|
|
220
|
+
.replaceAll("CREATE TRIGGER ", "CREATE TRIGGER IF NOT EXISTS ");
|
|
221
|
+
}
|
|
222
|
+
function hasTable(database, table) {
|
|
223
|
+
const row = database.prepare(`
|
|
224
|
+
select count(*) as count
|
|
225
|
+
from sqlite_master
|
|
226
|
+
where type = 'table'
|
|
227
|
+
and name = ?
|
|
228
|
+
`).get(table);
|
|
229
|
+
return row.count > 0;
|
|
230
|
+
}
|
|
231
|
+
function tableSql(database, table) {
|
|
232
|
+
const row = database.prepare(`
|
|
233
|
+
select sql
|
|
234
|
+
from sqlite_master
|
|
235
|
+
where type = 'table'
|
|
236
|
+
and name = ?
|
|
237
|
+
`).get(table);
|
|
238
|
+
return row?.sql ?? "";
|
|
239
|
+
}
|
|
240
|
+
function tableColumns(database, table) {
|
|
241
|
+
const rows = database.prepare(`PRAGMA table_info(${table})`).all();
|
|
242
|
+
return new Set(rows.map((row) => row.name));
|
|
243
|
+
}
|
|
244
|
+
function addColumnIfMissing(database, table, column, definition) {
|
|
245
|
+
if (!hasTable(database, table) || tableColumns(database, table).has(column)) {
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
database.exec(`alter table ${table} add column ${column} ${definition}`);
|
|
249
|
+
}
|
|
250
|
+
function selectColumnOrDefault(columns, column, fallbackSql) {
|
|
251
|
+
return columns.has(column) ? column : fallbackSql;
|
|
252
|
+
}
|
|
115
253
|
function schemaNames(database, type) {
|
|
116
254
|
const rows = database.prepare(`
|
|
117
255
|
select name
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/state/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/state/database.ts"],"names":[],"mappings":"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"}
|
package/dist/state/schema-v23.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// Generated from
|
|
2
|
-
// Regenerate deliberately when
|
|
1
|
+
// Generated from the archived Agent Conveyor v24 database schema.
|
|
2
|
+
// Regenerate deliberately when SCHEMA_VERSION changes.
|
|
3
3
|
export const SCHEMA_V23_SQL = String.raw `
|
|
4
4
|
CREATE TABLE acceptance_criteria(
|
|
5
5
|
id integer primary key autoincrement,
|
|
@@ -287,6 +287,8 @@ CREATE TABLE sessions(
|
|
|
287
287
|
tmux_pane_id text,
|
|
288
288
|
codex_session_path text,
|
|
289
289
|
codex_session_id text,
|
|
290
|
+
codex_app_thread_id text,
|
|
291
|
+
codex_app_thread_title text,
|
|
290
292
|
pid integer,
|
|
291
293
|
cwd text not null,
|
|
292
294
|
registered_at text not null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-v23.js","sourceRoot":"","sources":["../../src/state/schema-v23.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"schema-v23.js","sourceRoot":"","sources":["../../src/state/schema-v23.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,uDAAuD;AACvD,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqjBvC,CAAC"}
|