hatchkit 0.1.5 → 0.1.7

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,35 @@
1
+ export interface WireUpInput {
2
+ projectName: string;
3
+ domain: string;
4
+ /** GitHub repo URL — `https://github.com/owner/repo`. */
5
+ gitRepository: string;
6
+ /** Default `main`. */
7
+ gitBranch?: string;
8
+ /** Container port the app listens on. Default `3000`. */
9
+ portsExposes?: string;
10
+ /** Treat the repo as private. When true, hatchkit picks (or asks
11
+ * for) a Coolify GitHub App uuid. */
12
+ isPrivate?: boolean;
13
+ /** When the user has already chosen one previously, skip the picker. */
14
+ githubAppUuid?: string;
15
+ }
16
+ export interface WireUpResult {
17
+ /** Coolify application uuid. */
18
+ appUuid: string;
19
+ /** Coolify project uuid (existing or freshly created). */
20
+ projectUuid: string;
21
+ /** Coolify server uuid the app runs on. */
22
+ serverUuid: string;
23
+ /** Server IP — used by the DNS step + reported back. */
24
+ serverIp: string;
25
+ /** Cloudflare DNS record id for the apex/sub A record, if we
26
+ * managed it. */
27
+ dnsRecordId?: string;
28
+ /** True when DNS provider is Cloudflare and we wrote the A record. */
29
+ dnsManaged: boolean;
30
+ }
31
+ /** Top-level wire-up. Throws on the first hard failure (no project,
32
+ * no server, app create rejected). The DNS step is best-effort —
33
+ * failures there log a hint and return without setting `dnsManaged`. */
34
+ export declare function wireProjectIntoCoolify(input: WireUpInput): Promise<WireUpResult>;
35
+ //# sourceMappingURL=coolify-app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coolify-app.d.ts","sourceRoot":"","sources":["../../src/deploy/coolify-app.ts"],"names":[],"mappings":"AAmCA,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;0CACsC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB;sBACkB;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;yEAEyE;AACzE,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CA6JtF"}
@@ -0,0 +1,243 @@
1
+ /*
2
+ * Wire an existing project into the user's already-configured
3
+ * Coolify + DNS setup, without scaffolding new infra.
4
+ *
5
+ * Used by `hatchkit adopt` (and reusable from elsewhere). The
6
+ * difference from the create-flow `runCoolifySetup`:
7
+ * · `runCoolifySetup` runs a shell script that lives in the
8
+ * hatchkit monorepo's infra/ submodule. It generates Terraform
9
+ * tfvars, runs `terraform apply` for new servers + DNS, then
10
+ * calls a stack script. None of that is reachable when hatchkit
11
+ * is installed globally and run from a foreign project repo.
12
+ * · This module talks directly to the Coolify + Cloudflare REST
13
+ * APIs. No submodule, no shell scripts, no Terraform — just
14
+ * idempotent API calls against credentials hatchkit already has
15
+ * in keychain.
16
+ *
17
+ * Scope:
18
+ * · Coolify: find/create the project, find the server, create the
19
+ * application from a public or private GitHub repo, set the
20
+ * baseline env (DOTENV_PRIVATE_KEY_PRODUCTION, GITHUB_REPO_URL),
21
+ * trigger a deploy.
22
+ * · DNS: upsert a single A record for the bare domain pointing at
23
+ * the Coolify server's IP. Cloudflare-only for now (the only DNS
24
+ * provider whose record CRUD is wired up today). INWX users get
25
+ * a clear "add an A record yourself" hint.
26
+ */
27
+ import chalk from "chalk";
28
+ import ora from "ora";
29
+ import { getCoolifyConfig, getDnsConfig } from "../config.js";
30
+ import { CloudflareApi } from "../utils/cloudflare-api.js";
31
+ import { CoolifyApi } from "../utils/coolify-api.js";
32
+ import { SECRET_KEYS, getSecret } from "../utils/secrets.js";
33
+ /** Top-level wire-up. Throws on the first hard failure (no project,
34
+ * no server, app create rejected). The DNS step is best-effort —
35
+ * failures there log a hint and return without setting `dnsManaged`. */
36
+ export async function wireProjectIntoCoolify(input) {
37
+ const cfg = await getCoolifyConfig();
38
+ if (!cfg)
39
+ throw new Error("Coolify is not configured. Run `hatchkit config add coolify` first.");
40
+ const api = new CoolifyApi({ url: cfg.url, token: cfg.token });
41
+ // ── 1. Resolve / create the Coolify project ─────────────────────────
42
+ const findOrCreateProject = ora(`Coolify: locating project "${input.projectName}"`).start();
43
+ let projectUuid;
44
+ try {
45
+ const existing = await api.findProjectByName(input.projectName);
46
+ if (existing) {
47
+ projectUuid = existing.uuid;
48
+ findOrCreateProject.succeed(`Coolify project: ${input.projectName} (existing)`);
49
+ }
50
+ else {
51
+ // Coolify's `description` field is validated against a narrow
52
+ // character class (letters/numbers/spaces and a small set of
53
+ // punctuation — see /api/v1 OpenAPI). Notably no `:`, so a
54
+ // URL won't pass. Keep the description plain prose; the GitHub
55
+ // repo URL ends up on the application itself anyway.
56
+ const created = await api.createProject(input.projectName, "Adopted by hatchkit");
57
+ projectUuid = created.uuid;
58
+ findOrCreateProject.succeed(`Coolify project: ${input.projectName} (created)`);
59
+ }
60
+ }
61
+ catch (err) {
62
+ findOrCreateProject.fail();
63
+ throw err;
64
+ }
65
+ // ── 2. Resolve the server (single = pick automatically; many = error
66
+ // and ask the user to install a single-server hatchkit config). ─
67
+ const servers = await api.listServers();
68
+ if (servers.length === 0) {
69
+ throw new Error("No Coolify servers configured. Add one in the Coolify dashboard before adopting.");
70
+ }
71
+ const server = servers[0];
72
+ if (servers.length > 1) {
73
+ console.log(chalk.yellow(` Multiple Coolify servers found — defaulting to "${server.name}" (${server.ip}).` +
74
+ " Edit the app's server in the dashboard if that's wrong."));
75
+ }
76
+ const resolveServer = await api.findServer({ ip: server.ip });
77
+ if (!resolveServer) {
78
+ throw new Error(`Couldn't resolve uuid for server "${server.name}" (${server.ip}).`);
79
+ }
80
+ // ── 3. Resolve a GitHub source for private repos ───────────────────
81
+ let githubAppUuid = input.githubAppUuid;
82
+ if (input.isPrivate && !githubAppUuid) {
83
+ const sources = await api.listGithubSources();
84
+ if (sources.length === 1) {
85
+ githubAppUuid = sources[0].uuid;
86
+ console.log(chalk.dim(` Using Coolify GitHub source "${sources[0].name}".`));
87
+ }
88
+ else if (sources.length === 0) {
89
+ throw new Error("Repo is private but no Coolify GitHub source is configured. Add one in the Coolify dashboard\n" +
90
+ " (Settings → Sources → GitHub Apps), then re-run.");
91
+ }
92
+ else {
93
+ const { select } = await import("@inquirer/prompts");
94
+ githubAppUuid = await select({
95
+ message: "Pick the Coolify GitHub source for this repo:",
96
+ choices: sources.map((s) => ({
97
+ name: `${s.name}${s.html_url ? ` ${chalk.dim(s.html_url)}` : ""}`,
98
+ value: s.uuid,
99
+ })),
100
+ });
101
+ }
102
+ }
103
+ // ── 4. Create the app. ─────────────────────────────────────────────
104
+ const baseInput = {
105
+ projectUuid,
106
+ serverUuid: resolveServer.uuid,
107
+ gitRepository: input.gitRepository,
108
+ gitBranch: input.gitBranch ?? "main",
109
+ portsExposes: input.portsExposes ?? "3000",
110
+ name: input.projectName,
111
+ description: "Adopted by hatchkit",
112
+ domains: [`https://${input.domain}`],
113
+ instantDeploy: false,
114
+ };
115
+ const createApp = ora(`Coolify: creating app for ${input.gitRepository}`).start();
116
+ let appUuid;
117
+ try {
118
+ const res = input.isPrivate
119
+ ? await api.createApplicationFromPrivateGithubApp({
120
+ ...baseInput,
121
+ githubAppUuid: githubAppUuid,
122
+ })
123
+ : await api.createApplicationFromPublicRepo(baseInput);
124
+ appUuid = res.uuid;
125
+ createApp.succeed(`Coolify app created (uuid: ${appUuid})`);
126
+ }
127
+ catch (err) {
128
+ createApp.fail();
129
+ throw err;
130
+ }
131
+ // ── 5. Set the bare-minimum env vars on the app: the dotenvx
132
+ // private key (so prod can decrypt .env.production) and
133
+ // GITHUB_REPO_URL (used by the starter for self-reference). ─
134
+ const dotenvKey = await getSecret(SECRET_KEYS.dotenvxPrivateKey(input.projectName));
135
+ if (dotenvKey) {
136
+ const setEnv = ora("Coolify: pushing baseline env (dotenvx key + repo URL)").start();
137
+ try {
138
+ await api.setAppEnv(appUuid, {
139
+ DOTENV_PRIVATE_KEY_PRODUCTION: dotenvKey,
140
+ GITHUB_REPO_URL: input.gitRepository,
141
+ });
142
+ setEnv.succeed("Coolify: baseline env set");
143
+ }
144
+ catch (err) {
145
+ setEnv.fail("Coolify: couldn't set baseline env");
146
+ console.log(chalk.yellow(` ${err.message} — set DOTENV_PRIVATE_KEY_PRODUCTION manually in the dashboard.`));
147
+ }
148
+ }
149
+ else {
150
+ console.log(chalk.yellow(" No dotenvx private key in the keychain — skipping env push.\n" +
151
+ " Run `hatchkit keys push <project>` once one's available."));
152
+ }
153
+ // ── 6. DNS (Cloudflare only for now). ──────────────────────────────
154
+ const dnsResult = await wireDns(input.domain, server.ip);
155
+ // ── 7. Trigger first deploy. ───────────────────────────────────────
156
+ const deploy = ora("Coolify: triggering first deploy").start();
157
+ try {
158
+ await api.deployApplication(appUuid);
159
+ deploy.succeed("Coolify: deploy triggered");
160
+ }
161
+ catch (err) {
162
+ deploy.fail("Coolify: couldn't auto-trigger the deploy");
163
+ console.log(chalk.dim(` Click "Deploy" in the Coolify dashboard — the app exists, just isn't running yet.`));
164
+ }
165
+ return {
166
+ appUuid,
167
+ projectUuid,
168
+ serverUuid: resolveServer.uuid,
169
+ serverIp: server.ip,
170
+ dnsRecordId: dnsResult.recordId,
171
+ dnsManaged: dnsResult.managed,
172
+ };
173
+ }
174
+ async function wireDns(domain, serverIp) {
175
+ const dns = await getDnsConfig();
176
+ if (!dns) {
177
+ console.log(chalk.yellow(" No DNS provider configured. Add an A record yourself for\n" +
178
+ ` ${domain} → ${serverIp}\n` +
179
+ " Or run `hatchkit config add dns` and re-run."));
180
+ return { managed: false };
181
+ }
182
+ if (dns.provider !== "cloudflare") {
183
+ console.log(chalk.yellow(` DNS provider is ${dns.provider} — automatic A-record management isn't wired\n` +
184
+ " up for that provider yet. Add the A record manually:\n" +
185
+ ` ${domain} → ${serverIp}`));
186
+ return { managed: false };
187
+ }
188
+ if (!dns.apiToken) {
189
+ console.log(chalk.yellow(" Cloudflare token missing from keychain — re-run `hatchkit config add dns` to refresh."));
190
+ return { managed: false };
191
+ }
192
+ const cf = new CloudflareApi({ token: dns.apiToken, accountId: dns.accountId });
193
+ // Find the zone that owns this domain. The zone name is the eTLD+1
194
+ // — e.g. for `protocol.trebeljahr.com` the zone is `trebeljahr.com`.
195
+ const zoneName = inferZone(domain);
196
+ const spinner = ora(`Cloudflare: locating zone "${zoneName}"`).start();
197
+ let zone;
198
+ try {
199
+ zone = await cf.getZoneByName(zoneName);
200
+ if (!zone) {
201
+ spinner.fail();
202
+ console.log(chalk.yellow(` No Cloudflare zone matches "${zoneName}". Add one (or change the\n` +
203
+ " domain) and re-run, or set the A record manually."));
204
+ return { managed: false };
205
+ }
206
+ spinner.succeed(`Cloudflare zone: ${zone.name}`);
207
+ }
208
+ catch (err) {
209
+ spinner.fail(`Cloudflare zone lookup failed: ${err.message}`);
210
+ return { managed: false };
211
+ }
212
+ const upsert = ora(`Cloudflare: upserting A record ${domain} → ${serverIp}`).start();
213
+ try {
214
+ const res = await cf.upsertRecord(zone.id, {
215
+ type: "A",
216
+ name: domain,
217
+ content: serverIp,
218
+ proxied: true,
219
+ });
220
+ if (res.created)
221
+ upsert.succeed(`Cloudflare: created A ${domain} → ${serverIp}`);
222
+ else if (res.updated)
223
+ upsert.succeed(`Cloudflare: updated A ${domain} → ${serverIp}`);
224
+ else
225
+ upsert.succeed(`Cloudflare: A ${domain} → ${serverIp} already correct`);
226
+ return { managed: true, recordId: res.id };
227
+ }
228
+ catch (err) {
229
+ upsert.fail(`Cloudflare: A-record upsert failed: ${err.message}`);
230
+ return { managed: false };
231
+ }
232
+ }
233
+ /** Best-effort eTLD+1 inference. Works for the common case
234
+ * (sub.domain.tld → domain.tld). For multi-segment public suffixes
235
+ * (foo.co.uk) the user may need to override; rare enough that
236
+ * shipping a PSL parser is overkill. */
237
+ function inferZone(domain) {
238
+ const parts = domain.split(".");
239
+ if (parts.length <= 2)
240
+ return domain;
241
+ return parts.slice(-2).join(".");
242
+ }
243
+ //# sourceMappingURL=coolify-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coolify-app.js","sourceRoot":"","sources":["../../src/deploy/coolify-app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAkC7D;;yEAEyE;AACzE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,KAAkB;IAC7D,MAAM,GAAG,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACrC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACjG,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IAE/D,uEAAuE;IACvE,MAAM,mBAAmB,GAAG,GAAG,CAAC,8BAA8B,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;IAC5F,IAAI,WAAmB,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChE,IAAI,QAAQ,EAAE,CAAC;YACb,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC5B,mBAAmB,CAAC,OAAO,CAAC,oBAAoB,KAAK,CAAC,WAAW,aAAa,CAAC,CAAC;QAClF,CAAC;aAAM,CAAC;YACN,8DAA8D;YAC9D,6DAA6D;YAC7D,2DAA2D;YAC3D,+DAA+D;YAC/D,qDAAqD;YACrD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;YAClF,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;YAC3B,mBAAmB,CAAC,OAAO,CAAC,oBAAoB,KAAK,CAAC,WAAW,YAAY,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,mBAAmB,CAAC,IAAI,EAAE,CAAC;QAC3B,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,sEAAsE;IACtE,wEAAwE;IACxE,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;IACxC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,qDAAqD,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,EAAE,IAAI;YACjF,0DAA0D,CAC7D,CACF,CAAC;IACJ,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IACvF,CAAC;IAED,sEAAsE;IACtE,IAAI,aAAa,GAAuB,KAAK,CAAC,aAAa,CAAC;IAC5D,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,aAAa,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAC9C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAkC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QAChF,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CACb,gGAAgG;gBAC9F,oDAAoD,CACvD,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACrD,aAAa,GAAG,MAAM,MAAM,CAAC;gBAC3B,OAAO,EAAE,+CAA+C;gBACxD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC3B,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;oBAClE,KAAK,EAAE,CAAC,CAAC,IAAI;iBACd,CAAC,CAAC;aACJ,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,MAAM,SAAS,GAA2B;QACxC,WAAW;QACX,UAAU,EAAE,aAAa,CAAC,IAAI;QAC9B,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,MAAM;QACpC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,MAAM;QAC1C,IAAI,EAAE,KAAK,CAAC,WAAW;QACvB,WAAW,EAAE,qBAAqB;QAClC,OAAO,EAAE,CAAC,WAAW,KAAK,CAAC,MAAM,EAAE,CAAC;QACpC,aAAa,EAAE,KAAK;KACrB,CAAC;IAEF,MAAM,SAAS,GAAG,GAAG,CAAC,6BAA6B,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAClF,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS;YACzB,CAAC,CAAC,MAAM,GAAG,CAAC,qCAAqC,CAAC;gBAC9C,GAAG,SAAS;gBACZ,aAAa,EAAE,aAAuB;aACvC,CAAC;YACJ,CAAC,CAAC,MAAM,GAAG,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;QACzD,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;QACnB,SAAS,CAAC,OAAO,CAAC,8BAA8B,OAAO,GAAG,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,SAAS,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,8DAA8D;IAC9D,8DAA8D;IAC9D,oEAAoE;IACpE,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IACpF,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,GAAG,CAAC,wDAAwD,CAAC,CAAC,KAAK,EAAE,CAAC;QACrF,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE;gBAC3B,6BAA6B,EAAE,SAAS;gBACxC,eAAe,EAAE,KAAK,CAAC,aAAa;aACrC,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,KAAM,GAAa,CAAC,OAAO,iEAAiE,CAC7F,CACF,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,iEAAiE;YAC/D,4DAA4D,CAC/D,CACF,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAEzD,sEAAsE;IACtE,MAAM,MAAM,GAAG,GAAG,CAAC,kCAAkC,CAAC,CAAC,KAAK,EAAE,CAAC;IAC/D,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,qFAAqF,CACtF,CACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO;QACP,WAAW;QACX,UAAU,EAAE,aAAa,CAAC,IAAI;QAC9B,QAAQ,EAAE,MAAM,CAAC,EAAE;QACnB,WAAW,EAAE,SAAS,CAAC,QAAQ;QAC/B,UAAU,EAAE,SAAS,CAAC,OAAO;KAC9B,CAAC;AACJ,CAAC;AAOD,KAAK,UAAU,OAAO,CAAC,MAAc,EAAE,QAAgB;IACrD,MAAM,GAAG,GAAG,MAAM,YAAY,EAAE,CAAC;IACjC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,8DAA8D;YAC5D,OAAO,MAAM,QAAQ,QAAQ,IAAI;YACjC,gDAAgD,CACnD,CACF,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,qBAAqB,GAAG,CAAC,QAAQ,gDAAgD;YAC/E,0DAA0D;YAC1D,OAAO,MAAM,QAAQ,QAAQ,EAAE,CAClC,CACF,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,yFAAyF,CAC1F,CACF,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,aAAa,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;IAEhF,mEAAmE;IACnE,qEAAqE;IACrE,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,GAAG,CAAC,8BAA8B,QAAQ,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;IACvE,IAAI,IAAyC,CAAC;IAC9C,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,iCAAiC,QAAQ,6BAA6B;gBACpE,qDAAqD,CACxD,CACF,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,oBAAoB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,kCAAmC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACzE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,CAAC,kCAAkC,MAAM,MAAM,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IACrF,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE;YACzC,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,OAAO;YAAE,MAAM,CAAC,OAAO,CAAC,yBAAyB,MAAM,MAAM,QAAQ,EAAE,CAAC,CAAC;aAC5E,IAAI,GAAG,CAAC,OAAO;YAAE,MAAM,CAAC,OAAO,CAAC,yBAAyB,MAAM,MAAM,QAAQ,EAAE,CAAC,CAAC;;YACjF,MAAM,CAAC,OAAO,CAAC,iBAAiB,MAAM,MAAM,QAAQ,kBAAkB,CAAC,CAAC;QAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,uCAAwC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7E,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;AACH,CAAC;AAED;;;yCAGyC;AACzC,SAAS,SAAS,CAAC,MAAc;IAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IACrC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC"}
package/dist/index.js CHANGED
@@ -125,7 +125,7 @@ async function main() {
125
125
  if (args.includes("--help"))
126
126
  return printHelp("adopt");
127
127
  const { runAdopt } = await import("./adopt.js");
128
- await runAdopt(resolve("."));
128
+ await runAdopt(resolve("."), { resume: args.includes("--resume") });
129
129
  break;
130
130
  }
131
131
  case "destroy":
@@ -1062,27 +1062,52 @@ function printHelp(topic) {
1062
1062
  ${chalk.bold("What it does:")}
1063
1063
  Inverse of \`hatchkit create\`. Inspects the current directory,
1064
1064
  detects what's already there (package.json name, repo layout,
1065
- .env state, dotenvx encryption, Coolify app match, feature flags
1066
- inferable from deps), then runs a stepper-style review where you
1067
- confirm or change each detected value. On confirm:
1065
+ .env state, dotenvx encryption, Coolify app match, git origin,
1066
+ feature flags inferable from deps), then runs a stepper-style
1067
+ review. On confirm:
1068
1068
 
1069
- · If \`.env.production\` isn't dotenvx-encrypted yet, encrypts it
1070
- (generates \`.env.keys\` with the private key).
1069
+ · ${chalk.cyan("Initialize dotenvx")} generates an encrypted
1070
+ \`.env.production\` + \`.env.keys\` if missing, or re-encrypts
1071
+ an existing plain file. The keypair is what every other
1072
+ hatchkit step depends on, so this defaults to ON.
1071
1073
  · Imports DOTENV_PRIVATE_KEY_PRODUCTION into the OS keychain.
1072
1074
  · Writes \`.hatchkit.json\` so \`update\`, \`add\`, \`keys\` recognise
1073
1075
  the project.
1076
+ · ${chalk.cyan("GitHub remote")} — \`git init\` (if needed),
1077
+ commit, \`gh repo create --private --source=. --push\`. Skipped
1078
+ when an \`origin\` is already set.
1079
+ · ${chalk.cyan("Coolify + DNS")} — direct REST-API calls into the
1080
+ Coolify and Cloudflare you already configured (no Terraform,
1081
+ no submodule). Finds or creates the Coolify project, picks
1082
+ the server (single-server setups auto-resolve), creates the
1083
+ application from the GitHub repo (private repos use a
1084
+ Coolify GitHub App source), pushes the baseline env
1085
+ (DOTENV_PRIVATE_KEY_PRODUCTION + GITHUB_REPO_URL), upserts an
1086
+ A record \`<domain> → <server-ip>\` on Cloudflare, and triggers
1087
+ the first deploy. Defaults ON when no matching app exists.
1074
1088
  · Optionally provisions GlitchTip / OpenPanel / Resend clients
1075
1089
  (same machinery as \`hatchkit add\`).
1076
- · Optionally pushes the dotenvx private key to Coolify.
1090
+ · Optionally pushes the dotenvx private key to Coolify
1091
+ (redundant when the Coolify+DNS step ran — it already does).
1092
+
1093
+ ${chalk.bold("Limitations:")}
1094
+ · Cloudflare only for DNS automation. INWX / manual users get a
1095
+ "create the A record yourself" hint with the exact target IP.
1096
+ · Doesn't provision new Hetzner servers — the Coolify wiring
1097
+ assumes the server is already in your Coolify dashboard.
1077
1098
 
1078
1099
  ${chalk.bold("When to use:")}
1079
- The project wasn't created by hatchkit but you want it to be
1080
- managed going forward.
1100
+ The project wasn't created by hatchkit but you want it managed
1101
+ going forward.
1081
1102
 
1082
- ${chalk.bold("Refuses to run twice:")}
1083
- If \`.hatchkit.json\` already exists, exits with a hint to use
1084
- \`hatchkit update\` (add features) or \`hatchkit add\` (re-provision
1085
- clients) instead.
1103
+ ${chalk.bold("Refuses to run twice — unless you ask:")}
1104
+ If \`.hatchkit.json\` already exists, adopt exits with a hint
1105
+ pointing at \`hatchkit update\` / \`hatchkit add\`. When a previous
1106
+ adopt run failed mid-way (e.g. Coolify rejected something) and
1107
+ you want to retry, pass \`--resume\` to re-run over the existing
1108
+ manifest. Already-finished steps (encrypted .env, configured
1109
+ git origin, existing Coolify app) auto-skip; only the unfinished
1110
+ bits actually run.
1086
1111
  `);
1087
1112
  return;
1088
1113
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,SAAS,EACT,aAAa,EACb,aAAa,EACb,UAAU,EACV,mBAAmB,EACnB,WAAW,EACX,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAoB,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAyB,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,8EAA8E;AAC9E,MAAM;AACN,8EAA8E;AAE9E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAExB,oEAAoE;AACpE,wEAAwE;AACxE,oEAAoE;AACpE,gCAAgC;AAChC,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACrE,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAChD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AAEtD,KAAK,UAAU,IAAI;IACjB,sEAAsE;IACtE,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEvC,0EAA0E;IAC1E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,yDAAyD;IACzD,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACnE,MAAM,KAAK,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC,CAA2B,CAAC,CAAC,CAAC,SAAS,CAAC;QAClF,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,OAAO;IACT,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO;YACV,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;YACvD,MAAM,aAAa,EAAE,CAAC;YACtB,MAAM;QACR,KAAK,QAAQ;YACX,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;YAC7E,MAAM,YAAY,EAAE,CAAC;YACrB,MAAM;QACR,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YACzE,MAAM,CAAC,GAAG,aAAa,EAAE,CAAC;YAC1B,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC;YACzD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAC7C,MAAM;QACR,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO,SAAS,CAAC,YAAY,CAAC,CAAC;YAC5D,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAC7D,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5C,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;gBAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,MAAM;QACR,CAAC;QACD,KAAK,QAAQ;YACX,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,YAAY,EAAE,CAAC;YACrB,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,YAAY,EAAE,CAAC;YACrB,MAAM;QACR,KAAK,QAAQ;YACX,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,YAAY,EAAE,CAAC;YACrB,MAAM;QACR,KAAK,MAAM;YACT,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;YAC3E,MAAM,UAAU,EAAE,CAAC;YACnB,MAAM;QACR,KAAK,KAAK;YACR,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,SAAS,EAAE,CAAC;YAClB,MAAM;QACR,KAAK,QAAQ;YACX,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,YAAY,EAAE,CAAC;YACrB,MAAM;QACR,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;YACvD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;YAChD,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACpE,MAAM;QACR,CAAC;QACD,KAAK,SAAS;YACZ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC;YACzD,MAAM,aAAa,EAAE,CAAC;YACtB,MAAM;QACR,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO,SAAS,CAAC,eAAe,CAAC,CAAC;YAC/D,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;YACzE,MAAM,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;YACvD,MAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YAClD,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAClC,MAAM;QACR,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,SAAS,EAAE,CAAC;YAClB,MAAM;QACR,CAAC;QACD,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO,SAAS,CAAC,UAAU,CAAC,CAAC;YAC1D,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,mEAAmE,CAAC,CAClF,CAAC;YACJ,CAAC;YACD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAC5D,MAAM,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAClC,MAAM;QACR,CAAC;QACD;YACE,SAAS,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;4DAE4D;AAC5D,KAAK,UAAU,YAAY;IACzB,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IAClE,MAAM,CAAC,GAAG,aAAa,EAAE,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO;IAEjC,MAAM,OAAO,GACX,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,EAAE,UAAU;QACxD,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,EAAE,UAAU;QACxD,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,EAAE,UAAU;QACpD,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,EAAE,UAAU,CAAC;IAE1D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,2BAA2B,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAClF,IAAI,EAAE;YAAE,MAAM,aAAa,EAAE,CAAC;QAC9B,OAAO;IACT,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;QACvB,OAAO,EAAE,iDAAiD;QAC1D,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IACH,IAAI,EAAE;QAAE,MAAM,YAAY,EAAE,CAAC;AAC/B,CAAC;AAED,KAAK,UAAU,UAAU;IACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACvC,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,MAAM;YACT,MAAM,cAAc,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YACpD,MAAM;QACR,KAAK,MAAM;YACT,MAAM,uBAAuB,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM;QACR;YACE,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,mEAAmE;IACnE,iEAAiE;IACjE,oEAAoE;IACpE,mCAAmC;IACnC,gDAAgD;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,IAAI,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAEjC,MAAM,WAAW,GAAuB,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAE7E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACpD,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACpE,QAAQ,GAAG,MAAM,KAAK,CAAC;YACrB,OAAO,EAAE,oCAAoC;YAC7C,QAAQ,EAAE,mBAAmB;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,IAAI,QAA4B,CAAC;IACjC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACvD,QAAQ,GAAG,MAAM,QAAQ,CAAmB;YAC1C,OAAO,EAAE,mDAAmD;YAC5D,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE;gBACzE,EAAE,IAAI,EAAE,+BAA+B,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE;gBAC5E,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;aACzE;YACD,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QAChC,QAAQ,GAAG,WAAW,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE,WAAiC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACtE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,QAAQ,GAAG,SAA+B,CAAC;IAC7C,CAAC;IAED,gBAAgB;IAChB,8EAA8E;IAC9E,oGAAoG;IACpG,yDAAyD;IACzD,0FAA0F;IAC1F,0DAA0D;IAC1D,2DAA2D;IAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/F,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,MAAM,aAAa,GAAG,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7E,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,CAAU,CAAC;IACxF,IAAI,QAAQ,GAAmD,SAAS,CAAC;IACzE,IAAI,OAAO,EAAE,CAAC;QACZ,QAAQ,GAAG,KAAK,CAAC;IACnB,CAAC;SAAM,IAAI,WAAW,IAAI,aAAa,IAAI,aAAa,EAAE,CAAC;QACzD,+DAA+D;QAC/D,IAAI,CAAC,WAAW,IAAI,CAAE,iBAAuC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACpF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,uFAAuF,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACtH,CACF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,IAAI,GAAG,WAAiD,CAAC;QAC/D,MAAM,WAAW,GAAG,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,aAAa,CAAC;QACvF,MAAM,WAAW,GAAG,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,aAAa,CAAC;QACvF,IAAI,WAAW,IAAI,CAAC,aAAa,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC,CAAC;YACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,WAAW,IAAI,CAAC,aAAa,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC,CAAC;YACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,QAAQ,GAAG;YACT,IAAI;YACJ,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,aAAuB,CAAC,CAAC,CAAC,CAAC,SAAS;YAC5E,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,aAAuB,CAAC,CAAC,CAAC,CAAC,SAAS;SAC7E,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,KAAK,UAAU,aAAa;IAC1B,kDAAkD;IAClD,kEAAkE;IAClE,kEAAkE;IAClE,4DAA4D;IAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAE7C,IAAI,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACpD,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACpE,IAAI,GAAG,MAAM,KAAK,CAAC;YACjB,OAAO,EAAE,0BAA0B;YACnC,QAAQ,EAAE,mBAAmB;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,8BAA8B,IAAI,8FAA8F,CACjI,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAC7D,WAAW,CAAC,MAAM,CAAC,CAAC;IAEpB,IAAI,UAAU;QAAE,OAAO;IAEvB,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;YACvB,OAAO,EAAE,aAAa,MAAM,CAAC,KAAK,CAAC,MAAM,gBAAgB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAC5E,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,WAAW,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,YAAY;IACzB,iFAAiF;IACjF,oEAAoE;IACpE,uEAAuE;IACvE,sCAAsC;IACtC,mDAAmD;IACnD,oEAAoE;IACpE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClE,IAAI,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAEjC,MAAM,WAAW,GAAuB,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAE7E,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACpD,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QACpE,QAAQ,GAAG,MAAM,KAAK,CAAC;YACrB,OAAO,EAAE,8CAA8C;YACvD,QAAQ,EAAE,mBAAmB;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,IAAI,QAA4B,CAAC;IACjC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACvD,QAAQ,GAAG,MAAM,QAAQ,CAAmB;YAC1C,OAAO,EAAE,yDAAyD;YAClE,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,iCAAiC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE;gBAC9E,EAAE,IAAI,EAAE,iCAAiC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE;gBAC9E,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;aACzE;YACD,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QAChC,QAAQ,GAAG,WAAW,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE,WAAiC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACtE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,QAAQ,GAAG,SAA+B,CAAC;IAC7C,CAAC;IAED,6EAA6E;IAC7E,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACtD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;YACvB,OAAO,EAAE,qCAAqC,QAAQ,UAAU,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB;YAC5G,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,oBAAoB,CAAC,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YACxD,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5D,MAAM,sBAAsB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAClD,MAAM;QACR,CAAC;QACD;YACE,SAAS,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E,KAAK,UAAU,YAAY;IACzB,mEAAmE;IACnE,mEAAmE;IACnE,wCAAwC;IACxC,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAErF,iEAAiE;IACjE,8CAA8C;IAC9C,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,UAAU,EAAE,CAAC,EAAE,CAAC;QAC5C,MAAM,aAAa,EAAE,CAAC;IACxB,CAAC;IAED,+DAA+D;IAC/D,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;IAC/E,IAAI,aAAa;QAAE,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC;IACnD,IAAI,aAAa;QAAE,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC;IAEhD,2DAA2D;IAC3D,8DAA8D;IAC9D,6DAA6D;IAC7D,IAAI,MAAM,CAAC,YAAY,KAAK,UAAU,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QAC/D,MAAM,aAAa,EAAE,CAAC;IACxB,CAAC;IACD,kEAAkE;IAClE,2DAA2D;IAC3D,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,MAAM,YAAY,EAAE,CAAC;IACvB,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,KAAK,KAAK,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1D,MAAM,aAAa,EAAE,CAAC;IACxB,CAAC;IACD,IACE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC9B,MAAM,CAAC,UAAU,KAAK,UAAU;QAChC,MAAM,CAAC,UAAU,KAAK,MAAM,EAC5B,CAAC;QACD,IACE,MAAM,CAAC,UAAU,KAAK,SAAS;YAC/B,MAAM,CAAC,UAAU,KAAK,KAAK;YAC3B,MAAM,CAAC,UAAU,KAAK,IAAI,EAC1B,CAAC;YACD,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IACD,wEAAwE;IACxE,sEAAsE;IACtE,qEAAqE;IACrE,uDAAuD;IACvD,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1C,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACxD,MAAM,eAAe,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,YAAY,EAAE,CAAC;IACvB,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEpC,wCAAwC;IACxC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1D,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,2BAA2B;IAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC,CAAC;IAC5F,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CACT,iBAAiB,MAAM,CAAC,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,oBAAoB,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,eAAe,MAAM,CAAC,UAAU,EAAE,EAAE,CACpI,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACjG,OAAO,CAAC,GAAG,CACT,iBAAiB,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CACxF,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAEpE,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,qEAAqE;IACrE,qEAAqE;IACrE,uEAAuE;IACvE,0DAA0D;IAC1D,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE/D,qEAAqE;IACrE,qEAAqE;IACrE,IAAI,cAAmE,CAAC;IACxE,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,IAAI,CAAC;QACH,4BAA4B;QAC5B,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,cAAc,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACnD,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YACnD,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC3B,MAAM,EAAE,MAAM,CAAC;oBACb,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC;iBACpD,CAAC,CAAC;YACL,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC;YACjC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,mBAAmB,KAAK,CAAC,MAAM,YAAY,KAAK,CAAC,MAAM,EAAE;gBACvD,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAC7D,CACF,CAAC;YACF,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC3B,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;gBACtE,mBAAmB,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3D,CAAC;YAED,0DAA0D;YAC1D,+DAA+D;YAC/D,8DAA8D;YAC9D,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC1C,IAAI,CAAC;oBACH,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;oBAC9E,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;oBAC7D,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,+BAA+B,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;oBAC1E,MAAM,GAAG,GAAG,MAAM,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACxD,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC5D,OAAO,CAAC,OAAO,CAAC,8DAA8D,CAAC,CAAC;oBAChF,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;oBACpE,UAAU,CAAC,eAAe,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7E,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,wCAAyC,GAAa,CAAC,OAAO,EAAE,CAAC,CAC/E,CAAC;oBACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,wBAAwB,MAAM,CAAC,IAAI,2CAA2C,CAC/E,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,6EAA6E;YAC7E,gEAAgE;YAChE,oEAAoE;YACpE,oEAAoE;YACpE,sDAAsD;YACtD,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACH,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;oBACzE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;oBACxD,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;oBAC7D,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,mCAAmC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;oBAChF,MAAM,SAAS,GAAG,MAAM,eAAe,EAAE,CAAC;oBAC1C,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;oBACzE,OAAO,CAAC,OAAO,CACb,yBAAyB,OAAO,CAAC,IAAI,mBAAmB,MAAM,CAAC,MAAM,sBAAsB,CAC5F,CAAC;oBACF,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;oBACpE,IAAI,SAAS,EAAE,CAAC;wBACd,UAAU,CAAC,mBAAmB,EAAE,SAAS,CAAC,SAAS,EAAE;4BACnD,IAAI,EAAE,WAAW;4BACjB,OAAO,EAAE,IAAI;yBACd,CAAC,CAAC;wBACH,UAAU,CAAC,wBAAwB,EAAE,SAAS,CAAC,cAAc,EAAE;4BAC7D,IAAI,EAAE,WAAW;4BACjB,OAAO,EAAE,IAAI;yBACd,CAAC,CAAC;oBACL,CAAC;oBACD,UAAU,CAAC,uBAAuB,EAAE,OAAO,CAAC,aAAa,EAAE;wBACzD,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE,IAAI;qBACd,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,6CAA8C,GAAa,CAAC,OAAO,EAAE,CAAC,CACpF,CAAC;oBACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,wEAAwE;wBACtE,sBAAsB,MAAM,CAAC,MAAM,6BAA6B;wBAChE,uFAAuF,CAC1F,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE;gBAChC,UAAU,EAAE,cAAc,EAAE,KAAK,CAAC,MAAM;gBACxC,UAAU,EAAE,cAAc,EAAE,KAAK,CAAC,MAAM;aACzC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC,CAAC;YAC5E,OAAO;QACT,CAAC;QAED,mEAAmE;QACnE,iEAAiE;QACjE,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,yGAAyG,CAC1G,CACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,8DAA8D;gBAC9D,yCAAyC;gBACzC,MAAM,aAAa,GAAG,cAAc;oBAClC,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,MAAM,OAAO,CAAC;wBACZ,OAAO,EAAE,0CAA0C;wBACnD,OAAO,EAAE,IAAI;qBACd,CAAC,CAAC;gBACP,IAAI,aAAa,EAAE,CAAC;oBAClB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE;wBAC1C,GAAG,EAAE,MAAM;wBACX,OAAO,EAAE,4BAA4B;qBACtC,CAAC,CAAC;oBACH,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;wBACvB,aAAa,GAAG,IAAI,CAAC;oBACvB,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,4CAA4C,CAAC,CAAC,CAAC;oBAC1E,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,mEAAmE;QACnE,8DAA8D;QAC9D,IAAI,OAAO,GAAkB,IAAI,CAAC;QAClC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC5C,IAAI,OAAO,EAAE,CAAC;gBACZ,gEAAgE;gBAChE,qDAAqD;gBACrD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;gBAC9D,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QAED,mEAAmE;QACnE,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE;YACpD,OAAO,EAAE,OAAO,IAAI,SAAS;YAC7B,UAAU,EAAE,cAAc,EAAE,KAAK,CAAC,MAAM;YACxC,UAAU,EAAE,cAAc,EAAE,KAAK,CAAC,MAAM;SACzC,CAAC,CAAC;QACH,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;YAC3B,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,WAAW,CAAC,cAAc,EAAE,CAAC;YAC/B,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,8CAA8C;QAC9C,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACxD,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrB,MAAM,EAAE,MAAM,CAAC;oBACb,IAAI,EAAE,kBAAkB;oBACxB,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ;oBACnC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU;iBACxC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,MAAM,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAE1C,gEAAgE;YAChE,kEAAkE;YAClE,0DAA0D;YAC1D,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBAChE,IAAI,CAAC;oBACH,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;oBAC5E,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;oBACrD,MAAM,qBAAqB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBACpD,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sCAAuC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBAC1F,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,+DAA+D;wBAC7D,mDAAmD;wBACnD,0EAA0E,CAC7E,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,kEAAkE;YAClE,+DAA+D;YAC/D,iEAAiE;YACjE,8DAA8D;YAC9D,IAAI,cAAc,EAAE,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACH,MAAM,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC7C,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qCAAsC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBACzF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,mEAAmE,MAAM,CAAC,IAAI,EAAE,CACjF,CACF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,6BAA6B;QAC7B,IACE,MAAM,CAAC,aAAa;YACpB,MAAM,CAAC,MAAM,GAAG,CAAC;YACjB,MAAM,CAAC,YAAY;YACnB,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAC9B,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,gBAAgB,CACtC,MAAM,EACN,MAAM,CAAC,YAAY,EACnB,aAAa,EACb,MAAM,CAAC,eAAe,CACvB,CAAC;YAEF,wBAAwB;YACxB,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;gBACrE,MAAM,aAAa,GAAG;oBACpB,eAAe;oBACf,WAAW;oBACX,mBAAmB;oBACnB,oBAAoB;oBACpB,WAAW;iBACH,CAAC;gBAGX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC,CAAC;gBAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnE,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC9D,IAAI,CAAE,aAAmC,CAAC,QAAQ,CAAC,OAAO,CAAC;wBAAE,SAAS;oBACtE,MAAM,GAAG,GAAG,OAAuB,CAAC;oBACpC,uEAAuE;oBACvE,KAAK,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;wBACzD,IAAI,CAAC,GAAG;4BAAE,SAAS;wBACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,gBAAgB,CAAC,GAAG,EAAE,QAAuB,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;oBACzF,CAAC;oBACD,oEAAoE;oBACpE,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;oBACtD,IAAI,UAAU,EAAE,CAAC;wBACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC;oBACnE,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,EAAE,QAAQ,EAAE,CAAC;IACrB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,gBAAgB;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC,CAAC;IAC5F,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,MAAM,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;IAE1D,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,MAAM,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,MAAM,CAAC,IAAI,8BAA8B,CAAC,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,mDAAmD,CAAC,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,uEAAuE,CAAC,CACtF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC,CAAC;IAChG,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9E,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,qFAAqF,CACtF,CACF,CAAC;QACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,mFAAmF,CACpF,CACF,CAAC;QACF,kEAAkE;QAClE,kEAAkE;IACpE,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,YAAY;IACzB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,yBAAyB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sCAAsC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/F,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY;IACzB,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAE3B,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;gBACrD,OAAO,CAAC,GAAG,CACT,kGAAkG,CACnG,CAAC;gBACF,OAAO;YACT,CAAC;YACD,sCAAsC;YACtC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAU,CAAC;YAErE,MAAM,aAAa,GAAG,CAAC,CAAS,EAAwB,EAAE,CACvD,YAAkC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAElD,QAAQ,QAAQ,EAAE,CAAC;gBACjB,KAAK,SAAS,CAAC;gBACf,KAAK,SAAS,CAAC;gBACf,KAAK,KAAK,CAAC;gBACX,KAAK,WAAW,CAAC;gBACjB,KAAK,WAAW,CAAC;gBACjB,KAAK,QAAQ,CAAC;gBACd,KAAK,QAAQ;oBACX,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;oBACpC,MAAM;gBACR,KAAK,IAAI,CAAC,CAAC,CAAC;oBACV,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;oBACrD,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC;wBACrB,OAAO,EAAE,cAAc;wBACvB,OAAO,EAAE;4BACP,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAkB,EAAE;4BAC9C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAc,EAAE;4BACtC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAa,EAAE;yBACrC;qBACF,CAAC,CAAC;oBACH,MAAM,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACrC,MAAM;gBACR,CAAC;gBACD;oBACE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC,CAAC;wBAC1D,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,gGAAgG,CACjG,CACF,CAAC;wBACF,OAAO;oBACT,CAAC;oBACD,MAAM,mBAAmB,CAAC,OAAO,QAAQ,EAAE,CAAC,CAAC;YACjD,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;gBACvB,OAAO,EAAE,wDAAwD;gBACjE,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YACH,IAAI,EAAE,EAAE,CAAC;gBACP,MAAM,WAAW,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;YACzC,CAAC;YACD,MAAM;QACR,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,6BAA6B;YAC7B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CACT,eAAe,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CACrG,CAAC;YACF,OAAO,CAAC,GAAG,CACT,eAAe,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CACvG,CAAC;YACF,OAAO,CAAC,GAAG,CACT,eAAe,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CACvG,CAAC;YACF,OAAO,CAAC,GAAG,CACT,eAAe,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CACtI,CAAC;YAEF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CACT,eAAe,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CACrH,CAAC;YAEF,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CACT,eAAe,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CACvH,CAAC;YAEF,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;YAClD,OAAO,CAAC,GAAG,CACT,oBAAoB,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,YAAY,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CACvG,CAAC;YACF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,KAAK,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YAC/E,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;AACH,CAAC;AAqBD,SAAS,SAAS,CAAC,KAAiB;IAClC,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC;IACZ,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;;IAE7B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;IAGpB,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC;;;;;;;;;IAS3C,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;;;CAGzB,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC;IACZ,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC;;;;;;;;;IAShF,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;;CAE7B,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC;IACZ,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;;IAE3B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;;;;;;;;;;;CAW7B,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC;IACZ,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;;IAE7B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;IAGpB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;;;qCAGM,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;IAE/E,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC;;CAE1C,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC;IACZ,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC;;IAE/B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;IAGpB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;;+BAEA,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC;aACpD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;aACpB,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;aACxB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;+CAGc,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC;gBAC/D,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC;;;;;uBAKrC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;SACjC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;;IAEzB,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;;;IAG5B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;YAGZ,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC;;kDAEe,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;;CAEnE,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC;IACZ,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;;IAE1B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;;;;;;;;UAQpB,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;UACtB,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC;;IAEjC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;UACtB,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC;MACzC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;CACtB,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC;IACZ,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;;;;;;CAMhC,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC;IACZ,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;;IAE1B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;IAGpB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;+BACA,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC;;mBAEjD,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;aACnC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC;yBAChE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;;QAE9D,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC;;QAE9B,KAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC;QACrD,KAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC;;IAEhD,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;;UAEjB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;UACpB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;UACzB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;UACzB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;;;MAG1B,KAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC;;IAE/F,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;;;;;IAKvB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;;;;;IAOpB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;;;;;;;;CAQ1B,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC;IACZ,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;;IAE5B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;IAGpB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;;;;;;;UAOrB,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC;;;;;;;UAOhC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;;;UAG3B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;;;;;;;;;;;;;;IAcjC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;;;;;;IAM1B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;;;;IAI1B,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC;;;;;;;;CAQvD,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC;IACZ,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;;IAE/D,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;;IAIpB,KAAK,CAAC,GAAG,CAAC,qEAAqE,CAAC;;IAEhF,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;;UAErB,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC;UAChC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC;;MAErC,KAAK,CAAC,GAAG,CAAC,wDAAwD,CAAC;;;MAGnE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC;;IAE3B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;;;;;IAKvB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;;;;IAItB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;;;;CAI1B,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC;IACZ,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,0BAA0B,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;;IAErF,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;oCAGY,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;;;oBAG7C,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;;IAElC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC;iDACc,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;iDACnB,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC;iDAC3B,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC;iDACnC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;iDACf,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC;iDAClC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC;;IAE3E,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;;;;IAItB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;;gDAEqB,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC;gDACpC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC;CAC9E,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,eAAe,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC;IACZ,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC;;IAEpC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;;IAIpB,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC;MAC7B,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;MAC5B,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC;MAC1D,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC;;;;;IAKvC,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC;QAC1D,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC;;QAE5B,KAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC;;;IAGhD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;;;;;;IAMtB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;;;;CAIzB,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC;IACZ,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;;IAE7B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;;;;;;CAM7B,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC;IACZ,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;;IAE7B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;IAGpB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;;;CAGxB,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC;IACZ,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC;;IAE9B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;;;;CAMvB,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IACD,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC;IACZ,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC;;IAEjC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;;;;;CAOvB,CAAC,CAAC;QACC,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC;IACV,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;IAEpB,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC;;;;;;IAM9B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;;;;;;2CAMgB,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;;;;;;;IAOpE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;;;;;IAKrB,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC;;;;;IAKnC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;;;;;;;;;;;IAWtB,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;;;IAG1B,KAAK,CAAC,GAAG,CAAC,uDAAuD,CAAC;CACrE,CAAC,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,MAAM;AACN,8EAA8E;AAE9E,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -26,5 +26,28 @@ export declare class CloudflareApi {
26
26
  listZones(): Promise<CloudflareZone[]>;
27
27
  /** Look up a single zone by name. Returns null if not found. */
28
28
  getZoneByName(name: string): Promise<CloudflareZone | null>;
29
+ /** Find an exact name+type DNS record in a zone, or null. */
30
+ findRecord(zoneId: string, name: string, type: "A" | "AAAA" | "CNAME"): Promise<{
31
+ id: string;
32
+ name: string;
33
+ type: string;
34
+ content: string;
35
+ proxied: boolean;
36
+ } | null>;
37
+ /** Upsert a DNS record by name+type. Idempotent — re-runs on the same
38
+ * inputs return without changes if the record already matches.
39
+ * `proxied: true` enables the orange-cloud Cloudflare proxy for the
40
+ * record (TLS termination + DDoS, recommended for a webapp). */
41
+ upsertRecord(zoneId: string, params: {
42
+ type: "A" | "AAAA" | "CNAME";
43
+ name: string;
44
+ content: string;
45
+ proxied?: boolean;
46
+ ttl?: number;
47
+ }): Promise<{
48
+ id: string;
49
+ created: boolean;
50
+ updated: boolean;
51
+ }>;
29
52
  }
30
53
  //# sourceMappingURL=cloudflare-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare-api.d.ts","sourceRoot":"","sources":["../../src/utils/cloudflare-api.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiBD,kCAAkC;AAClC,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAC,CAAS;gBAEf,OAAO,EAAE,oBAAoB;YAK3B,OAAO;IAoBrB,iDAAiD;IAC3C,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAKpC;;;;;OAKG;IACG,SAAS,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IA2B5C,gEAAgE;IAC1D,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAMlE"}
1
+ {"version":3,"file":"cloudflare-api.d.ts","sourceRoot":"","sources":["../../src/utils/cloudflare-api.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiBD,kCAAkC;AAClC,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAC,CAAS;gBAEf,OAAO,EAAE,oBAAoB;YAK3B,OAAO;IAoBrB,iDAAiD;IAC3C,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAKpC;;;;;OAKG;IACG,SAAS,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IA2B5C,gEAAgE;IAC1D,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAOjE,6DAA6D;IACvD,UAAU,CACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GAAG,MAAM,GAAG,OAAO,GAC3B,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAQhG;;;qEAGiE;IAC3D,YAAY,CAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE;QACN,IAAI,EAAE,GAAG,GAAG,MAAM,GAAG,OAAO,CAAC;QAC7B,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,GACA,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CA6B/D"}
@@ -81,5 +81,36 @@ export class CloudflareApi {
81
81
  const data = await this.request("GET", `/zones?${query.toString()}`);
82
82
  return data[0] ?? null;
83
83
  }
84
+ /** Find an exact name+type DNS record in a zone, or null. */
85
+ async findRecord(zoneId, name, type) {
86
+ const query = new URLSearchParams({ name, type });
87
+ const data = await this.request("GET", `/zones/${zoneId}/dns_records?${query.toString()}`);
88
+ return data[0] ?? null;
89
+ }
90
+ /** Upsert a DNS record by name+type. Idempotent — re-runs on the same
91
+ * inputs return without changes if the record already matches.
92
+ * `proxied: true` enables the orange-cloud Cloudflare proxy for the
93
+ * record (TLS termination + DDoS, recommended for a webapp). */
94
+ async upsertRecord(zoneId, params) {
95
+ const existing = await this.findRecord(zoneId, params.name, params.type);
96
+ const body = {
97
+ type: params.type,
98
+ name: params.name,
99
+ content: params.content,
100
+ proxied: params.proxied ?? true,
101
+ ttl: params.ttl ?? 1, // 1 = automatic
102
+ };
103
+ if (!existing) {
104
+ const created = await this.request("POST", `/zones/${zoneId}/dns_records`, body);
105
+ return { id: created.id, created: true, updated: false };
106
+ }
107
+ const same = existing.content === params.content &&
108
+ (existing.proxied ?? false) === (params.proxied ?? true) &&
109
+ existing.type === params.type;
110
+ if (same)
111
+ return { id: existing.id, created: false, updated: false };
112
+ const updated = await this.request("PATCH", `/zones/${zoneId}/dns_records/${existing.id}`, body);
113
+ return { id: updated.id, created: false, updated: true };
114
+ }
84
115
  }
85
116
  //# sourceMappingURL=cloudflare-api.js.map