dep-up-surgeon 2.2.0 → 2.2.2
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 +107 -22
- package/dist/cli/doctor.d.ts +52 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +616 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/doctorCommand.d.ts +2 -0
- package/dist/cli/doctorCommand.d.ts.map +1 -0
- package/dist/cli/doctorCommand.js +71 -0
- package/dist/cli/doctorCommand.js.map +1 -0
- package/dist/cli/doctorRenderer.d.ts +21 -0
- package/dist/cli/doctorRenderer.d.ts.map +1 -0
- package/dist/cli/doctorRenderer.js +79 -0
- package/dist/cli/doctorRenderer.js.map +1 -0
- package/dist/cli/git.d.ts +11 -0
- package/dist/cli/git.d.ts.map +1 -1
- package/dist/cli/git.js +45 -9
- package/dist/cli/git.js.map +1 -1
- package/dist/cli/gitFlow.d.ts.map +1 -1
- package/dist/cli/gitFlow.js +7 -0
- package/dist/cli/gitFlow.js.map +1 -1
- package/dist/cli/lockfileFix.d.ts +91 -0
- package/dist/cli/lockfileFix.d.ts.map +1 -0
- package/dist/cli/lockfileFix.js +509 -0
- package/dist/cli/lockfileFix.js.map +1 -0
- package/dist/cli/report.d.ts +4 -0
- package/dist/cli/report.d.ts.map +1 -1
- package/dist/cli/report.js +5 -0
- package/dist/cli/report.js.map +1 -1
- package/dist/cli/summary.d.ts.map +1 -1
- package/dist/cli/summary.js +221 -2
- package/dist/cli/summary.js.map +1 -1
- package/dist/cli.js +80 -1
- package/dist/cli.js.map +1 -1
- package/dist/core/peerResolver.d.ts +82 -0
- package/dist/core/peerResolver.d.ts.map +1 -0
- package/dist/core/peerResolver.js +213 -0
- package/dist/core/peerResolver.js.map +1 -0
- package/dist/core/upgrader.d.ts +30 -6
- package/dist/core/upgrader.d.ts.map +1 -1
- package/dist/core/upgrader.js +195 -14
- package/dist/core/upgrader.js.map +1 -1
- package/dist/core/workspaces.d.ts +22 -0
- package/dist/core/workspaces.d.ts.map +1 -1
- package/dist/core/workspaces.js +52 -0
- package/dist/core/workspaces.js.map +1 -1
- package/dist/types.d.ts +92 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/concurrency.d.ts +55 -0
- package/dist/utils/concurrency.d.ts.map +1 -1
- package/dist/utils/concurrency.js +46 -1
- package/dist/utils/concurrency.js.map +1 -1
- package/dist/utils/npm.d.ts +14 -0
- package/dist/utils/npm.d.ts.map +1 -1
- package/dist/utils/npm.js +48 -0
- package/dist/utils/npm.js.map +1 -1
- package/package.json +3 -3
package/dist/core/upgrader.js
CHANGED
|
@@ -7,15 +7,16 @@ import { addFailure, addUpgrade, createEmptyReport } from './conflict.js';
|
|
|
7
7
|
import { isRegistryRange, scanProject } from './scanner.js';
|
|
8
8
|
import { validateProject } from './validator.js';
|
|
9
9
|
import { log } from '../utils/logger.js';
|
|
10
|
-
import { detectEsmCommonJsBlockage, fetchAllPublishedVersions, fetchLatestVersion, runInstall, } from '../utils/npm.js';
|
|
10
|
+
import { detectEsmCommonJsBlockage, fetchAllPublishedVersions, fetchLatestVersion, fetchVersionPeers, runInstall, } from '../utils/npm.js';
|
|
11
11
|
import { detectProjectInfo } from './workspaces.js';
|
|
12
12
|
import { tailLines } from '../utils/output.js';
|
|
13
|
-
import {
|
|
13
|
+
import { KeyedMutex, createRegistryCache, runWithConcurrency, } from '../utils/concurrency.js';
|
|
14
14
|
import { extractClassifiedConflicts, shouldRollbackAfterSuccessfulInstall, } from './conflictAnalyzer.js';
|
|
15
15
|
import { promptGroupConflictChoice } from '../cli/interactive.js';
|
|
16
16
|
import { buildLineFallbackOrder } from '../utils/versionFallback.js';
|
|
17
17
|
import { buildSingletonGroups } from './groups.js';
|
|
18
18
|
import { buildDynamicLinkedGroups } from './dynamicGroups.js';
|
|
19
|
+
import { buildDomain, describeResolution, resolvePeerRanges, } from './peerResolver.js';
|
|
19
20
|
const BACKUP_FILENAME = 'package.json.dep-up-surgeon.bak';
|
|
20
21
|
function classifyInstallOutput(output, opts) {
|
|
21
22
|
return extractClassifiedConflicts(output ?? '', { rootPackageName: opts.rootPackageName });
|
|
@@ -130,13 +131,20 @@ function installFilterOptions(opts) {
|
|
|
130
131
|
return {};
|
|
131
132
|
}
|
|
132
133
|
/**
|
|
133
|
-
* Run `fn` under the
|
|
134
|
-
* orchestrator omits the lock entirely → we run inline with zero overhead.
|
|
135
|
-
*
|
|
134
|
+
* Run `fn` under the keyed install mutex if one was provided. At concurrency 1 the
|
|
135
|
+
* orchestrator omits the lock entirely → we run inline with zero overhead.
|
|
136
|
+
*
|
|
137
|
+
* The lock key is the **install directory**: `opts.installCwd ?? opts.cwd`. Two calls with
|
|
138
|
+
* the same key serialize (they'd race on the same lockfile / `node_modules`); calls with
|
|
139
|
+
* different keys run concurrently. For a shared-lockfile monorepo every target passes the
|
|
140
|
+
* same `installCwd = rootCwd`, so this collapses back to strict serialization. For an
|
|
141
|
+
* isolated-lockfile monorepo each target passes its own workspace directory as `installCwd`,
|
|
142
|
+
* so installs parallelize automatically.
|
|
136
143
|
*/
|
|
137
144
|
async function withInstallLock(opts, fn) {
|
|
138
145
|
if (opts.installLock) {
|
|
139
|
-
|
|
146
|
+
const key = opts.installCwd ?? opts.cwd;
|
|
147
|
+
return opts.installLock.runExclusive(key, fn);
|
|
140
148
|
}
|
|
141
149
|
return fn();
|
|
142
150
|
}
|
|
@@ -703,6 +711,78 @@ async function runSinglePackageUpgrade(cwd, scanned, opts, report, ignore) {
|
|
|
703
711
|
}
|
|
704
712
|
}
|
|
705
713
|
}
|
|
714
|
+
/**
|
|
715
|
+
* Build a map of "what version range is this external (non-linked) dependency currently pinned
|
|
716
|
+
* to in the workspace package.json" — used as input to the peer resolver so it can check whether
|
|
717
|
+
* a candidate's peer on an OUT-OF-GROUP package (e.g. `next`, `typescript`) would break.
|
|
718
|
+
*
|
|
719
|
+
* We read from the SAME `package.json` the engine is about to mutate; whatever's pinned there
|
|
720
|
+
* is the closest thing we have to ground truth without running `npm ls`. `peerDependencies`
|
|
721
|
+
* and `optionalDependencies` are included because they can still ship an installed version.
|
|
722
|
+
*/
|
|
723
|
+
async function collectExternalInstalledRanges(cwd, excludeNames) {
|
|
724
|
+
const out = new Map();
|
|
725
|
+
let pkg;
|
|
726
|
+
try {
|
|
727
|
+
pkg = await readPackageJson(cwd);
|
|
728
|
+
}
|
|
729
|
+
catch {
|
|
730
|
+
return out;
|
|
731
|
+
}
|
|
732
|
+
const sections = [
|
|
733
|
+
'dependencies',
|
|
734
|
+
'devDependencies',
|
|
735
|
+
'peerDependencies',
|
|
736
|
+
'optionalDependencies',
|
|
737
|
+
];
|
|
738
|
+
for (const section of sections) {
|
|
739
|
+
const block = pkg[section];
|
|
740
|
+
if (!block)
|
|
741
|
+
continue;
|
|
742
|
+
for (const [name, range] of Object.entries(block)) {
|
|
743
|
+
if (excludeNames.has(name))
|
|
744
|
+
continue;
|
|
745
|
+
if (typeof range !== 'string')
|
|
746
|
+
continue;
|
|
747
|
+
if (!out.has(name))
|
|
748
|
+
out.set(name, range);
|
|
749
|
+
}
|
|
750
|
+
}
|
|
751
|
+
return out;
|
|
752
|
+
}
|
|
753
|
+
/**
|
|
754
|
+
* Try to find a peer-compatible version tuple for a linked batch that just failed with a
|
|
755
|
+
* peer conflict. Returns `undefined` when:
|
|
756
|
+
* - The registry packument couldn't be fetched for any member (we'd be guessing).
|
|
757
|
+
* - Any member's candidate domain is empty after filtering.
|
|
758
|
+
* - The resolver explored its budget without finding a satisfiable tuple.
|
|
759
|
+
*
|
|
760
|
+
* Fetches + resolver calls are scoped to one batch — cheap (packuments are `RegistryCache`-
|
|
761
|
+
* shared so subsequent groups / workspace members reuse them).
|
|
762
|
+
*/
|
|
763
|
+
async function tryResolvePeerIntersection(cwd, bumps, opts) {
|
|
764
|
+
if (bumps.length < 2)
|
|
765
|
+
return undefined;
|
|
766
|
+
const inputs = bumps.map((b) => ({
|
|
767
|
+
name: b.scanned.name,
|
|
768
|
+
currentRange: b.scanned.currentRange,
|
|
769
|
+
requestedTarget: b.targetVersion,
|
|
770
|
+
}));
|
|
771
|
+
const domains = [];
|
|
772
|
+
for (const inp of inputs) {
|
|
773
|
+
const peerMap = await fetchVersionPeers(inp.name, opts.registryCache);
|
|
774
|
+
if (peerMap.size === 0)
|
|
775
|
+
return undefined;
|
|
776
|
+
const domain = buildDomain(inp, peerMap);
|
|
777
|
+
if (domain.versions.length === 0)
|
|
778
|
+
return undefined;
|
|
779
|
+
domains.push(domain);
|
|
780
|
+
}
|
|
781
|
+
const memberNames = new Set(inputs.map((i) => i.name));
|
|
782
|
+
const externalInstalled = await collectExternalInstalledRanges(cwd, memberNames);
|
|
783
|
+
const requested = new Map(inputs.map((i) => [i.name, i.requestedTarget]));
|
|
784
|
+
return resolvePeerRanges(domains, requested, { externalInstalled });
|
|
785
|
+
}
|
|
706
786
|
/**
|
|
707
787
|
* Linked group: bump all to registry `@latest` in one shot (no per-package fallback ladder).
|
|
708
788
|
* TODO: peer-graph / `expo install`-style alignment for Expo SDK
|
|
@@ -819,6 +899,7 @@ async function runLinkedGroupUpgrade(cwd, group, members, opts, report, ignore)
|
|
|
819
899
|
let result = { ok: false, kind: 'install', message: 'not started' };
|
|
820
900
|
let forceAttempt = opts.force;
|
|
821
901
|
let attempt = 0;
|
|
902
|
+
let peerResolverTried = false;
|
|
822
903
|
while (attempt < maxAttempts) {
|
|
823
904
|
attempt++;
|
|
824
905
|
const batchOpts = { ...opts, force: forceAttempt };
|
|
@@ -827,6 +908,54 @@ async function runLinkedGroupUpgrade(cwd, group, members, opts, report, ignore)
|
|
|
827
908
|
break;
|
|
828
909
|
}
|
|
829
910
|
const classified = result.classified ?? classifyInstallOutput(result.installOutput, opts);
|
|
911
|
+
// Peer-range intersection resolver — only on the first peer-kind failure for this batch.
|
|
912
|
+
// We intentionally skip the resolver when `--force` is already active (user asked to barrel
|
|
913
|
+
// through peer conflicts), when the user explicitly opted out with `--no-resolve-peers`,
|
|
914
|
+
// or after we've already tried it once (avoid infinite retry loops).
|
|
915
|
+
if (!peerResolverTried &&
|
|
916
|
+
result.kind === 'peer' &&
|
|
917
|
+
opts.resolvePeers !== false &&
|
|
918
|
+
!forceAttempt) {
|
|
919
|
+
peerResolverTried = true;
|
|
920
|
+
const resolved = await tryResolvePeerIntersection(cwd, bumps, opts);
|
|
921
|
+
if (resolved) {
|
|
922
|
+
let mutated = false;
|
|
923
|
+
const reason = describeResolution(resolved, bumps.map((b) => ({
|
|
924
|
+
name: b.scanned.name,
|
|
925
|
+
currentRange: b.scanned.currentRange,
|
|
926
|
+
requestedTarget: b.targetVersion,
|
|
927
|
+
})));
|
|
928
|
+
for (const b of bumps) {
|
|
929
|
+
const nextVer = resolved.versions.get(b.scanned.name);
|
|
930
|
+
if (!nextVer)
|
|
931
|
+
continue;
|
|
932
|
+
if (nextVer !== b.targetVersion) {
|
|
933
|
+
b.resolvedFrom = b.targetVersion;
|
|
934
|
+
b.targetVersion = nextVer;
|
|
935
|
+
mutated = true;
|
|
936
|
+
}
|
|
937
|
+
b.resolvedReason = reason;
|
|
938
|
+
b.resolvedTuplesExplored = resolved.tuplesExplored;
|
|
939
|
+
}
|
|
940
|
+
if (mutated) {
|
|
941
|
+
if (!jsonOutput) {
|
|
942
|
+
log.info(`Peer-range resolver found a compatible tuple for [${gid}]; retrying with ` +
|
|
943
|
+
bumps.map((b) => `${b.scanned.name}@${b.targetVersion}`).join(', '));
|
|
944
|
+
}
|
|
945
|
+
continue;
|
|
946
|
+
}
|
|
947
|
+
// Resolver returned the SAME tuple we already tried — no point re-running. Clear the
|
|
948
|
+
// reason breadcrumbs so success rows don't claim a resolver intervention that never
|
|
949
|
+
// happened.
|
|
950
|
+
for (const b of bumps) {
|
|
951
|
+
b.resolvedReason = undefined;
|
|
952
|
+
b.resolvedTuplesExplored = undefined;
|
|
953
|
+
}
|
|
954
|
+
}
|
|
955
|
+
else if (!jsonOutput) {
|
|
956
|
+
log.dim(`Peer-range resolver could not find a compatible tuple for [${gid}]`);
|
|
957
|
+
}
|
|
958
|
+
}
|
|
830
959
|
if (!interactive) {
|
|
831
960
|
break;
|
|
832
961
|
}
|
|
@@ -876,20 +1005,34 @@ async function runLinkedGroupUpgrade(cwd, group, members, opts, report, ignore)
|
|
|
876
1005
|
success: true,
|
|
877
1006
|
from: cur?.version,
|
|
878
1007
|
to: b.targetVersion,
|
|
879
|
-
requestedLatest
|
|
1008
|
+
// `requestedLatest` should still reflect what the user ASKED for (registry latest),
|
|
1009
|
+
// even when the peer resolver nudged us to a slightly older version. That way the
|
|
1010
|
+
// summary can render "requested 19.0.0, got 18.3.1 (peer-range intersection)".
|
|
1011
|
+
requestedLatest: b.resolvedFrom ?? b.targetVersion,
|
|
880
1012
|
linkedGroupId: gid,
|
|
881
1013
|
};
|
|
1014
|
+
if (b.resolvedFrom) {
|
|
1015
|
+
row.resolvedPeer = {
|
|
1016
|
+
originalTarget: b.resolvedFrom,
|
|
1017
|
+
reason: b.resolvedReason ?? 'peer-range intersection',
|
|
1018
|
+
tuplesExplored: b.resolvedTuplesExplored ?? 0,
|
|
1019
|
+
};
|
|
1020
|
+
}
|
|
882
1021
|
if (result.message?.includes('--force')) {
|
|
883
1022
|
row.forced = true;
|
|
884
1023
|
row.detail = result.message;
|
|
885
1024
|
}
|
|
1025
|
+
else if (b.resolvedFrom) {
|
|
1026
|
+
row.detail = `upgraded with linked group [${gid}] (peer-range intersection: ${b.resolvedFrom} → ${b.targetVersion})`;
|
|
1027
|
+
}
|
|
886
1028
|
else {
|
|
887
1029
|
row.detail = `upgraded with linked group [${gid}] (single install + validate)`;
|
|
888
1030
|
}
|
|
889
1031
|
addUpgrade(report, row);
|
|
890
1032
|
groupRows.push(row);
|
|
891
1033
|
if (!jsonOutput) {
|
|
892
|
-
|
|
1034
|
+
const suffix = b.resolvedFrom ? ` [peer-resolved from ${b.resolvedFrom}]` : '';
|
|
1035
|
+
log.success(`upgraded: ${b.scanned.name} → ${b.targetVersion} (group ${gid})${suffix}`);
|
|
893
1036
|
}
|
|
894
1037
|
}
|
|
895
1038
|
await fireUpgradeApplied(opts, groupRows, cwd, gid);
|
|
@@ -964,6 +1107,14 @@ export async function runUpgradeEngine(opts) {
|
|
|
964
1107
|
...(projectInfo.yarnSupportsFocus !== undefined
|
|
965
1108
|
? { yarnSupportsFocus: projectInfo.yarnSupportsFocus }
|
|
966
1109
|
: {}),
|
|
1110
|
+
...(projectInfo.isolatedLockfiles
|
|
1111
|
+
? {
|
|
1112
|
+
isolatedLockfiles: true,
|
|
1113
|
+
...(projectInfo.isolatedLockfilesSource
|
|
1114
|
+
? { isolatedLockfilesSource: projectInfo.isolatedLockfilesSource }
|
|
1115
|
+
: {}),
|
|
1116
|
+
}
|
|
1117
|
+
: {}),
|
|
967
1118
|
};
|
|
968
1119
|
if (!jsonOutput && !opts.skipPreflight) {
|
|
969
1120
|
const mgrLabel = `${projectInfo.manager}${projectInfo.managerVersion ? '@' + projectInfo.managerVersion : ''}`;
|
|
@@ -1156,6 +1307,14 @@ export async function runUpgradeFlow(opts) {
|
|
|
1156
1307
|
...(projectInfo.yarnSupportsFocus !== undefined
|
|
1157
1308
|
? { yarnSupportsFocus: projectInfo.yarnSupportsFocus }
|
|
1158
1309
|
: {}),
|
|
1310
|
+
...(projectInfo.isolatedLockfiles
|
|
1311
|
+
? {
|
|
1312
|
+
isolatedLockfiles: true,
|
|
1313
|
+
...(projectInfo.isolatedLockfilesSource
|
|
1314
|
+
? { isolatedLockfilesSource: projectInfo.isolatedLockfilesSource }
|
|
1315
|
+
: {}),
|
|
1316
|
+
}
|
|
1317
|
+
: {}),
|
|
1159
1318
|
};
|
|
1160
1319
|
if (!dryRun) {
|
|
1161
1320
|
const installRootPkg = await readPackageJson(rootCwd);
|
|
@@ -1228,20 +1387,42 @@ export async function runUpgradeFlow(opts) {
|
|
|
1228
1387
|
// benefits from the same serialization guarantees the install path gets). When neither
|
|
1229
1388
|
// applies, `withInstallLock` no-ops at zero overhead.
|
|
1230
1389
|
const registryCache = createRegistryCache();
|
|
1231
|
-
const installLock = effectiveConcurrency > 1 || opts.onUpgradeApplied ? new
|
|
1390
|
+
const installLock = effectiveConcurrency > 1 || opts.onUpgradeApplied ? new KeyedMutex() : undefined;
|
|
1391
|
+
// Isolated-lockfile monorepos (pnpm `shared-workspace-lockfile=false`, or every workspace
|
|
1392
|
+
// member shipping its own lockfile) can install IN PARALLEL — different workspaces touch
|
|
1393
|
+
// different lockfiles. `detectProjectInfo` sets `isolatedLockfiles` when it can prove this
|
|
1394
|
+
// is safe. When true, `installCwd` becomes the target's own dir (not `rootCwd`), the keyed
|
|
1395
|
+
// mutex gives each target its own lock, and the `installFilter` is dropped (running a
|
|
1396
|
+
// manager-scoped install at the workspace dir is the simpler + more correct path).
|
|
1397
|
+
const parallelInstalls = Boolean(projectInfo.isolatedLockfiles) &&
|
|
1398
|
+
effectiveConcurrency > 1 &&
|
|
1399
|
+
!opts.forceSerialInstalls;
|
|
1400
|
+
aggregate.parallelInstalls = parallelInstalls;
|
|
1232
1401
|
if (effectiveConcurrency > 1 && !jsonOutput) {
|
|
1233
|
-
|
|
1402
|
+
if (parallelInstalls) {
|
|
1403
|
+
log.dim(`Parallel traversal: up to ${effectiveConcurrency} targets concurrently — isolated lockfiles detected (${projectInfo.isolatedLockfilesSource}), installs run in parallel per workspace.`);
|
|
1404
|
+
}
|
|
1405
|
+
else {
|
|
1406
|
+
log.dim(`Parallel traversal: scan/plan up to ${effectiveConcurrency} targets concurrently; install + validate stay serialized (shared root lockfile).`);
|
|
1407
|
+
}
|
|
1234
1408
|
}
|
|
1235
1409
|
const buildEngineOpts = (target) => ({
|
|
1236
1410
|
...opts,
|
|
1237
1411
|
cwd: target.cwd,
|
|
1238
|
-
|
|
1412
|
+
// In parallel-install mode each target installs into its OWN directory; otherwise we
|
|
1413
|
+
// install at the root as before. Either way, `withInstallLock` keys off this value, so
|
|
1414
|
+
// serialization lines up with lockfile boundaries.
|
|
1415
|
+
installCwd: parallelInstalls && target.cwd !== rootCwd ? target.cwd : rootCwd,
|
|
1239
1416
|
projectInfo,
|
|
1240
1417
|
targetLabel: namespaceGroups ? target.label : undefined,
|
|
1241
1418
|
skipPreflight: true,
|
|
1242
|
-
// Filter only applies when (a) user opted into filtered mode
|
|
1243
|
-
// workspace child (root targets always need a full install — nothing to filter)
|
|
1244
|
-
|
|
1419
|
+
// Filter only applies when (a) user opted into filtered mode, (b) we're mutating a
|
|
1420
|
+
// workspace child (root targets always need a full install — nothing to filter), and
|
|
1421
|
+
// (c) we're NOT in parallel-install mode (there the install already runs at the
|
|
1422
|
+
// workspace dir, so the filter is redundant and can confuse pnpm/yarn).
|
|
1423
|
+
installFilter: opts.installMode === 'filtered' && target.cwd !== rootCwd && !parallelInstalls
|
|
1424
|
+
? target.label
|
|
1425
|
+
: undefined,
|
|
1245
1426
|
registryCache,
|
|
1246
1427
|
installLock,
|
|
1247
1428
|
onUpgradeApplied: opts.onUpgradeApplied,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/core/upgrader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/core/upgrader.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAY3D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAiD,MAAM,gBAAgB,CAAC;AAChG,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,GAIX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAyC,MAAM,iBAAiB,CAAC;AAC3F,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,kBAAkB,GAEnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,0BAA0B,EAC1B,oCAAoC,GAErC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,iBAAiB,GAIlB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,eAAe,GAAG,iCAAiC,CAAC;AAE1D,SAAS,qBAAqB,CAAC,MAA0B,EAAE,IAA0B;IACnF,OAAO,0BAA0B,CAAC,MAAM,IAAI,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;AAC7F,CAAC;AA4JD,KAAK,UAAU,eAAe,CAAC,GAAW;IACxC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,GAAW,EAAE,GAAgB;IAC3D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AACzE,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,GAAW;IAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAC7C,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,GAAW;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC5C,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CACf,GAAgB,EAChB,OAAmB,EACnB,IAAY,EACZ,KAAa;IAEb,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IACxB,MAAM,UAAU,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;IAChD,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACzB,IAAI,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC;IAC3B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,GAAW,EACX,OAAmB,EACnB,IAAY,EACZ,KAAa;IAEb,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACjD,MAAM,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAmB,EAAE,UAAgC;IAChF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;IACT,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC5B,MAAM,CAAC,eAAe,GAAG,EAAE,CAAC;IAC9B,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC;YAC1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;YACpC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;YACpC,UAAU,EAAE,CAAC,CAAC,UAAU;SACzB,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,UAA4C;IAC/D,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5B,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,aAAa,EAAE,CAAC,CAAC,aAAa;QAC9B,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;QACpC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;QACpC,UAAU,EAAE,CAAC,CAAC,UAAU;KACzB,CAAC,CAAC,CAAC;AACN,CAAC;AAwBD,SAAS,sBAAsB,CAAC,CAAmB;IACjD,OAAO;QACL,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,SAAS,EAAE,CAAC,CAAC,MAAM;QACnB,MAAM,EAAE,CAAC,CAAC,MAAM;KACjB,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAsB;IACjD,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;QACpC,EAAE,EAAE,OAAO,CAAC,EAAE;KACf,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,MAAM,GAAG,MAAM;IAChD,OAAO,IAAI;SACR,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC;SACjC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY,EAAE,IAA0B;IACnE,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;AACpE,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,oBAAoB,CAAC,IAA0B;IACtD,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QAC1D,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,iBAAiB;gBACrC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE;gBAC7B,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;;;;;GAUG;AACH,KAAK,UAAU,eAAe,CAC5B,IAA0B,EAC1B,EAAoB;IAEpB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC;QACxC,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,EAAE,EAAE,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,kBAAkB,CAC/B,IAA0B,EAC1B,OAAwB,EACxB,SAAiB,EACjB,OAA2B;IAE3B,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnD,OAAO;IACT,CAAC;IACD,wFAAwF;IACxF,2FAA2F;IAC3F,0FAA0F;IAC1F,MAAM,eAAe,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;QACrC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,gBAAiB,CAAC;gBAC3B,OAAO;gBACP,SAAS;gBACT,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS;gBACxC,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI,KAAK,CAAmB;gBAC/D,SAAS,EAAE,IAAI,CAAC,WAAW;gBAC3B,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvD,GAAG,CAAC,IAAI,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAmB,EAAE,KAAa;IAC5D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACnB,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;YACnB,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;AACH,CAAC;AAgBD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAW,EACX,OAAoB,EACpB,QAAuC;IAEvC,MAAM,CAAC,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;IAC9D,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC3B,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,SAAS,EAAE,CAAC,CAAC,MAAM;KACpB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,oBAAoB,CACjC,GAAW,EACX,OAAuB,EACvB,aAAqB,EACrB,IAA0B;IAE1B,oFAAoF;IACpF,uFAAuF;IACvF,kFAAkF;IAClF,2DAA2D;IAC3D,OAAO,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,4BAA4B,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;AACtG,CAAC;AAED,KAAK,UAAU,4BAA4B,CACzC,GAAW,EACX,OAAuB,EACvB,aAAqB,EACrB,IAA0B;IAE1B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACvB,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI,KAAK,CAAmB,CAAC;IACvE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;IAC1C,MAAM,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAE3C,IAAI,GAAG,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IACrC,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAClE,MAAM,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEjC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,oCAAoC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAExE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,yBAAyB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QACvE,MAAM,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACnD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,GAAG;gBACV,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,iBAAiB,OAAO,CAAC,QAAQ,iKAAiK;gBACtN,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,iBAAiB,OAAO,CAAC,QAAQ,GAAG;YAC1D,cAAc,EAAE,GAAG;YACnB,aAAa,EAAE,OAAO,CAAC,MAAM;YAC7B,UAAU;YACV,OAAO,EAAE,WAAW;SACrB,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QACvE,MAAM,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACnD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,GAAG,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,2HAA2H;YAC1K,aAAa,EAAE,OAAO,CAAC,MAAM;YAC7B,UAAU;YACV,OAAO,EAAE,WAAW;SACrB,CAAC;IACJ,CAAC;IAED,6FAA6F;IAC7F,6FAA6F;IAC7F,2DAA2D;IAC3D,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,YAAY,EAAE;QACjE,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QACxB,OAAO;KACR,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACjF,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QACvE,MAAM,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACnD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,iBAAiB,UAAU,CAAC,QAAQ,IAAI,GAAG,GAAG;YAC5E,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,WAAW;SACrB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,KAAK,EAAE,CAAC;QAC5B,OAAO;YACL,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,wBAAwB,UAAU,CAAC,OAAO,oBAAoB;YACvE,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,WAAW;SACrB,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAC9D,CAAC;AAiBD;;;GAGG;AACH,KAAK,UAAU,mBAAmB,CAChC,GAAW,EACX,KAAa,EACb,IAA0B;IAE1B,OAAO,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,2BAA2B,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,KAAK,UAAU,2BAA2B,CACxC,GAAW,EACX,KAAa,EACb,IAA0B;IAE1B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACvB,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI,KAAK,CAAmB,CAAC;IACvE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;IAC1C,MAAM,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC/C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkD,CAAC;IAC3E,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,KAAK,EAAE,CAAC;QAChC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,IAAI,GAAG,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IACrC,KAAK,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,KAAK,EAAE,CAAC;QAC/C,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEjC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,oCAAoC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAExE,MAAM,WAAW,GAAG,KAAK,IAAmB,EAAE;QAC5C,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,KAAK,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,SAAS;YACX,CAAC;YACD,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACrD,CAAC,CAAC;IAEF,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,yBAAyB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,WAAW,EAAE,CAAC;QACpB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,GAAG;gBACV,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,iBAAiB,OAAO,CAAC,QAAQ,iKAAiK;gBACtN,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,iBAAiB,OAAO,CAAC,QAAQ,GAAG;YAC1D,cAAc,EAAE,GAAG;YACnB,aAAa,EAAE,OAAO,CAAC,MAAM;YAC7B,UAAU;YACV,OAAO,EAAE,WAAW;SACrB,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,WAAW,EAAE,CAAC;QACpB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,GAAG,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,2HAA2H;YAC1K,aAAa,EAAE,OAAO,CAAC,MAAM;YAC7B,UAAU;YACV,OAAO,EAAE,WAAW;SACrB,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,UAAU,EAAE,YAAY,EAAE;QACjE,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;QACxB,OAAO;KACR,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACjF,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,WAAW,EAAE,CAAC;QACpB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,iBAAiB,UAAU,CAAC,QAAQ,IAAI,GAAG,GAAG;YAC5E,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,WAAW;SACrB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,KAAK,EAAE,CAAC;QAC5B,OAAO;YACL,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,wBAAwB,UAAU,CAAC,OAAO,oBAAoB;YACvE,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,WAAW;SACrB,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,+BAA+B,CAC5C,GAAW,EACX,OAAuB,EACvB,aAAqB,EACrB,cAAsB,EACtB,IAA0B;IAQ1B,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAE9C,IAAI,UAAU,GAAa,CAAC,cAAc,CAAC,CAAC;IAC5C,IAAI,gBAAgB,KAAK,aAAa,IAAI,gBAAgB,KAAK,aAAa,EAAE,CAAC;QAC7E,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC9E,MAAM,IAAI,GAAG,gBAAgB,KAAK,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;YACpE,UAAU,GAAG,sBAAsB,CAAC,aAAa,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAChF,CAAC;QAAC,MAAM,CAAC;YACP,UAAU,GAAG,CAAC,cAAc,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,iFAAiF;IACjF,mFAAmF;IACnF,sFAAsF;IACtF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,GAAG,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,IAAI,uBAAuB,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,IAAI,kBAAkB,EAAE;gBACrF,aAAa,EAAE,IAAI;gBACnB,YAAY,EAAE,KAAK;gBACnB,oBAAoB,EAAE,cAAc;aACrC,CAAC;QACJ,CAAC;QACD,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC;QACtC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC,CAAC,uCAAuC;YAC1E,IAAI,QAAQ,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC/E,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;gBAC/B,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;gBAC3D,IAAI,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;oBAAE,OAAO,KAAK,CAAC;YACjF,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,GAAG,CAAC,IAAI,CACN,4CAA4C,OAAO,CAAC,IAAI,mBAAmB,QAAQ,CAAC,MAAM,IAAI,OAAO,EAAE,CACxG,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,MAAM,EAAE;oBACN,EAAE,EAAE,KAAK;oBACT,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,2BAA2B,WAAW,0BAA0B,QAAQ,CAAC,MAAM,IAAI,4BAA4B,EAAE;iBAC3H;gBACD,aAAa,EAAE,IAAI;gBACnB,YAAY,EAAE,KAAK;gBACnB,oBAAoB,EAAE,cAAc;aACrC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,gCAAgC,EAAE;YACjF,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,KAAK;YACnB,oBAAoB,EAAE,cAAc;SACrC,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,GAAkB,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IACnF,IAAI,oBAAoB,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;QAC9B,oBAAoB,GAAG,MAAM,CAAC;QAC9B,IACE,CAAC,GAAG,CAAC;YACL,CAAC,UAAU;YACX,CAAC,gBAAgB,KAAK,aAAa,IAAI,gBAAgB,KAAK,aAAa,CAAC;YAC1E,UAAU,CAAC,MAAM,GAAG,CAAC,EACrB,CAAC;YACD,GAAG,CAAC,IAAI,CACN,8BAA8B,OAAO,CAAC,IAAI,IAAI,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAC3F,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,YAAY,GAAG,MAAM,KAAK,cAAc,CAAC;YAC/C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC;QAC7F,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,GAAG,CAAC,IAAI,CACN,4GAA4G,CAC7G,CAAC;YACJ,CAAC;YACD,MAAM;QACR,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,KAAK;QACnB,oBAAoB;KACrB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,OAAe,EACf,WAAoB;IAEpB,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC;QACxB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,uBAAuB,OAAO,eAAe;QACtD,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,8BAA8B,EAAE,KAAK,EAAE,UAAU,EAAE;YAC5D,EAAE,KAAK,EAAE,sCAAsC,EAAE,KAAK,EAAE,KAAK,EAAE;YAC/D,EAAE,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,OAAO,EAAE;SACrD;QACD,OAAO,EAAE,CAAC;KACX,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC3C,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,GAAG,CAAC,MAAsC,CAAC;AACpD,CAAC;AAED,SAAS,aAAa,CAAC,IAAiB;IACtC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,YAAY;YACf,OAAO,YAAY,CAAC;QACtB,KAAK,mBAAmB;YACtB,OAAO,mBAAmB,CAAC;QAC7B,KAAK,sBAAsB;YACzB,OAAO,sBAAsB,CAAC;QAChC,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,uBAAuB,CACpC,GAAW,EACX,OAAuB,EACvB,IAA0B,EAC1B,MAAmB,EACnB,MAAmB;IAEnB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAEjD,IAAI,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;QAC5C,UAAU,CAAC,MAAM,EAAE;YACjB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,gEAAgE;SACzE,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,GAAG,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,IAAI,2BAA2B,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3C,UAAU,CAAC,MAAM,EAAE;YACjB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,uDAAuD;SAChE,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,GAAG,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,IAAI,uBAAuB,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACtE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,UAAU,CAAC,MAAM,EAAE;YACjB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,SAAS;YACjB,eAAe,EAAE,OAAO,CAAC,YAAY;YACrC,OAAO,EAAE,yCAAyC,GAAG,EAAE;SACxD,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,GAAG,CAAC,KAAK,CAAC,gCAAgC,OAAO,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAChD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,UAAU,CAAC,MAAM,EAAE;YACjB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,iCAAiC;SAC1C,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;QACnC,UAAU,CAAC,MAAM,EAAE;YACjB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,GAAG,CAAC,OAAO;YACjB,EAAE,EAAE,MAAM;YACV,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,gBAAgB;SACzB,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,uBAAuB,MAAM,GAAG,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,UAAU,CAAC,MAAM,EAAE;YACjB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,GAAG,CAAC,OAAO;YACjB,EAAE,EAAE,MAAM;YACV,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,GAAG,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,MAAM,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,EAAE,GACN,IAAI,CAAC,gBAAgB,KAAK,aAAa,IAAI,IAAI,CAAC,gBAAgB,KAAK,aAAa;YAChF,CAAC,CAAC,gDAAgD;YAClD,CAAC,CAAC,EAAE,CAAC;QACT,GAAG,CAAC,IAAI,CAAC,aAAa,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,aAAa,MAAM,GAAG,EAAE,IAAI,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,EACF,MAAM,EACN,aAAa,EACb,YAAY,EACZ,oBAAoB,GACrB,GAAG,MAAM,+BAA+B,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAEnF,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5D,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;YAAC,MAAM,CAAC;gBACP,4BAA4B;YAC9B,CAAC;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,GAAG,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,IAAI,2CAA2C,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,GAAG,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;YACzC,CAAC;YACD,CAAC;gBACC,MAAM;gBACN,aAAa;gBACb,YAAY;gBACZ,oBAAoB;aACrB,GAAG,MAAM,+BAA+B,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,MAAM,EAAE,GAAG,aAAa,IAAI,MAAM,CAAC;QACnC,MAAM,GAAG,GAAkB;YACzB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,GAAG,CAAC,OAAO;YACjB,EAAE;YACF,eAAe,EAAE,MAAM;YACvB,YAAY;SACb,CAAC;QACF,IAAI,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACxC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;YAClB,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,CAAC;aAAM,IAAI,YAAY,EAAE,CAAC;YACxB,GAAG,CAAC,MAAM,GAAG,WAAW,MAAM,uDAAuD,CAAC;QACxF,CAAC;QACD,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,YAAY,EAAE,CAAC;gBACjB,GAAG,CAAC,OAAO,CACT,aAAa,OAAO,CAAC,IAAI,MAAM,EAAE,YAAY,MAAM,8BAA8B,CAClF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,OAAO,CAAC,aAAa,OAAO,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QACD,MAAM,kBAAkB,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC;QACtC,6FAA6F;QAC7F,kFAAkF;QAClF,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,UAAU,CAAC,MAAM,EAAE;gBACjB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,GAAG,CAAC,OAAO;gBACjB,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,MAAM,CAAC,OAAO;aACvB,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,GAAG,CAAC,GAAG,CAAC,mBAAmB,OAAO,CAAC,IAAI,MAAM,MAAM,CAAC,OAAO,IAAI,mBAAmB,EAAE,CAAC,CAAC;YACxF,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,qBAAqB,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC1F,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACxC,UAAU,CAAC,MAAM,EAAE;YACjB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC;YAC3B,eAAe,EAAE,OAAO,CAAC,YAAY;YACrC,gBAAgB,EAAE,oBAAoB;YACtC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,WAAW,CAAC,UAAU,CAAC;YAClC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,MAAM,MAAM,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC;gBACnE,IAAI,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;oBAC9B,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBACxC,GAAG,CAAC,KAAK,CACP,YAAY,OAAO,CAAC,IAAI,iBAAiB,MAAM,CAAC,UAAU,EAAE,OAAO,IAAI,SAAS,6CAA6C,CAC9H,CAAC;gBACF,IAAI,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC;oBACjC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,IAAI,IAAI,GAAG,CAAC,CAAC;gBAClE,IAAI,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;oBAC9B,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,8BAA8B,CAC3C,GAAW,EACX,YAAyB;IAEzB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,IAAI,GAAgB,CAAC;IACrB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,QAAQ,GAAiB;QAC7B,cAAc;QACd,iBAAiB;QACjB,kBAAkB;QAClB,sBAAsB;KACvB,CAAC;IACF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACrC,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,SAAS;YACxC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,0BAA0B,CACvC,GAAW,EACX,KAAa,EACb,IAA0B;IAE1B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,MAAM,MAAM,GAAoB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI;QACpB,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY;QACpC,eAAe,EAAE,CAAC,CAAC,aAAa;KACjC,CAAC,CAAC,CAAC;IAEJ,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACtE,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACzC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,MAAM,iBAAiB,GAAG,MAAM,8BAA8B,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACjF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAE1E,OAAO,iBAAiB,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,qBAAqB,CAClC,GAAW,EACX,KAAkB,EAClB,OAAyB,EACzB,IAA0B,EAC1B,MAAmB,EACnB,MAAmB;IAEnB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IACjD,MAAM,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC;IAErB,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,MAAM,kBAAkB,GAAqB,EAAE,CAAC;IAEhD,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YAC5C,UAAU,CAAC,MAAM,EAAE;gBACjB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,gEAAgE;gBACxE,aAAa,EAAE,GAAG;aACnB,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,GAAG,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,IAAI,cAAc,GAAG,4BAA4B,CAAC,CAAC;YAChF,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAC3C,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjC,UAAU,CAAC,MAAM,EAAE;gBACjB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,uDAAuD;gBAC/D,aAAa,EAAE,GAAG;aACnB,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,GAAG,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,IAAI,cAAc,GAAG,wBAAwB,CAAC,CAAC;YAC5E,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvD,UAAU,CAAC,MAAM,EAAE;gBACjB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,SAAS;gBACjB,eAAe,EAAE,OAAO,CAAC,YAAY;gBACrC,OAAO,EAAE,yCAAyC,GAAG,EAAE;gBACvD,aAAa,EAAE,GAAG;aACnB,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,GAAG,CAAC,KAAK,CAAC,gCAAgC,OAAO,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;YACpE,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,UAAU,CAAC,MAAM,EAAE;gBACjB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,iCAAiC;gBACzC,aAAa,EAAE,GAAG;aACnB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;YACnC,UAAU,CAAC,MAAM,EAAE;gBACjB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,GAAG,CAAC,OAAO;gBACjB,EAAE,EAAE,MAAM;gBACV,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,gBAAgB;gBACxB,aAAa,EAAE,GAAG;aACnB,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,uBAAuB,MAAM,GAAG,CAAC,CAAC;YAC3D,CAAC;YACD,SAAS;QACX,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAClD,UAAU,CAAC,MAAM,EAAE;gBACjB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI;gBACpB,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,GAAG,EAAE,OAAO;gBAClB,EAAE,EAAE,CAAC,CAAC,aAAa;gBACnB,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,wBAAwB;gBAChC,aAAa,EAAE,GAAG;aACnB,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,GAAG,EAAE,OAAO,IAAI,GAAG,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;YAChG,CAAC;QACH,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,GAAG,CAAC,IAAI,CACN,iBAAiB,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CACpG,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,IAAI,MAAM,GAAkB,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IACnF,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;IAC9B,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAE9B,OAAO,OAAO,GAAG,WAAW,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;QACV,MAAM,SAAS,GAAyB,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QACzE,MAAM,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,MAAM;QACR,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,qBAAqB,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAE1F,yFAAyF;QACzF,4FAA4F;QAC5F,yFAAyF;QACzF,qEAAqE;QACrE,IACE,CAAC,iBAAiB;YAClB,MAAM,CAAC,IAAI,KAAK,MAAM;YACtB,IAAI,CAAC,YAAY,KAAK,KAAK;YAC3B,CAAC,YAAY,EACb,CAAC;YACD,iBAAiB,GAAG,IAAI,CAAC;YACzB,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACpE,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,MAAM,MAAM,GAAG,kBAAkB,CAC/B,QAAQ,EACR,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAChB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI;oBACpB,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY;oBACpC,eAAe,EAAE,CAAC,CAAC,aAAa;iBACjC,CAAC,CAAC,CACJ,CAAC;gBACF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBACtB,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACtD,IAAI,CAAC,OAAO;wBAAE,SAAS;oBACvB,IAAI,OAAO,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;wBAChC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,aAAa,CAAC;wBACjC,CAAC,CAAC,aAAa,GAAG,OAAO,CAAC;wBAC1B,OAAO,GAAG,IAAI,CAAC;oBACjB,CAAC;oBACD,CAAC,CAAC,cAAc,GAAG,MAAM,CAAC;oBAC1B,CAAC,CAAC,sBAAsB,GAAG,QAAQ,CAAC,cAAc,CAAC;gBACrD,CAAC;gBACD,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC,UAAU,EAAE,CAAC;wBAChB,GAAG,CAAC,IAAI,CACN,qDAAqD,GAAG,mBAAmB;4BACzE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACtE,CAAC;oBACJ,CAAC;oBACD,SAAS;gBACX,CAAC;gBACD,qFAAqF;gBACrF,oFAAoF;gBACpF,YAAY;gBACZ,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBACtB,CAAC,CAAC,cAAc,GAAG,SAAS,CAAC;oBAC7B,CAAC,CAAC,sBAAsB,GAAG,SAAS,CAAC;gBACvC,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,UAAU,EAAE,CAAC;gBACvB,GAAG,CAAC,GAAG,CAAC,8DAA8D,GAAG,GAAG,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM;QACR,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC;YAC7C,OAAO,EAAE,GAAG;YACZ,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC3D,UAAU;SACX,CAAC,CAAC;QACH,IAAI,MAAM,KAAK,OAAO,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;YAChD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,GAAG,CAAC,IAAI,CAAC,0BAA0B,GAAG,cAAc,OAAO,GAAG,CAAC,IAAI,WAAW,KAAK,CAAC,CAAC;YACvF,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,YAAY,GAAG,IAAI,CAAC;YACpB,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;YAC5B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAChB,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,gBAAgB,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9C,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,GAAG,CAAC,IAAI,CAAC,wBAAwB,GAAG,4CAA4C,CAAC,CAAC;YACpF,CAAC;YACD,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QACD,MAAM;IACR,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,qBAAqB,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC1F,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,MAAM,SAAS,GAAoB,EAAE,CAAC;QACtC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAClD,MAAM,GAAG,GAAkB;gBACzB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI;gBACpB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,GAAG,EAAE,OAAO;gBAClB,EAAE,EAAE,CAAC,CAAC,aAAa;gBACnB,oFAAoF;gBACpF,kFAAkF;gBAClF,+EAA+E;gBAC/E,eAAe,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,aAAa;gBAClD,aAAa,EAAE,GAAG;aACnB,CAAC;YACF,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;gBACnB,GAAG,CAAC,YAAY,GAAG;oBACjB,cAAc,EAAE,CAAC,CAAC,YAAY;oBAC9B,MAAM,EAAE,CAAC,CAAC,cAAc,IAAI,yBAAyB;oBACrD,cAAc,EAAE,CAAC,CAAC,sBAAsB,IAAI,CAAC;iBAC9C,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;gBAClB,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;YAC9B,CAAC;iBAAM,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;gBAC1B,GAAG,CAAC,MAAM,GAAG,+BAA+B,GAAG,+BAA+B,CAAC,CAAC,YAAY,MAAM,CAAC,CAAC,aAAa,GAAG,CAAC;YACvH,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,MAAM,GAAG,+BAA+B,GAAG,+BAA+B,CAAC;YACjF,CAAC;YACD,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACxB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/E,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,CAAC,aAAa,WAAW,GAAG,IAAI,MAAM,EAAE,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;QACD,MAAM,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxF,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChF,UAAU,CAAC,MAAM,EAAE;YACjB,IAAI,EAAE,UAAU,GAAG,GAAG;YACtB,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC;YAC3B,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,GAAG;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,aAAa,EAAE,GAAG;YAClB,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,UAAU,IAAI,qBAAqB,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YAC9F,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,OAAO,MAAM,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC;gBAClE,IAAI,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;oBAC9B,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBACxC,GAAG,CAAC,KAAK,CACP,yBAAyB,GAAG,kBAAkB,MAAM,CAAC,UAAU,EAAE,OAAO,IAAI,SAAS,6CAA6C,CACnI,CAAC;gBACF,IAAI,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC;oBACjC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,KAAK,CAAC,yBAAyB,GAAG,MAAM,MAAM,CAAC,OAAO,IAAI,IAAI,GAAG,CAAC,CAAC;gBACvE,IAAI,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;oBAC9B,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAA0B;IAC/D,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACxD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;IAC1C,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IAEnC,MAAM,WAAW,GACf,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC,CAAC,CAAC;IAC3F,MAAM,CAAC,OAAO,GAAG;QACf,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,cAAc,EAAE,WAAW,CAAC,cAAc;QAC1C,aAAa,EAAE,WAAW,CAAC,aAAa;QACxC,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,aAAa,EAAE,WAAW,CAAC,aAAa;QACxC,cAAc,EAAE,WAAW,CAAC,cAAc;QAC1C,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACzF,GAAG,CAAC,WAAW,CAAC,gBAAgB,KAAK,SAAS;YAC5C,CAAC,CAAC,EAAE,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,EAAE;YACpD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,WAAW,CAAC,iBAAiB,KAAK,SAAS;YAC7C,CAAC,CAAC,EAAE,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,EAAE;YACtD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,WAAW,CAAC,iBAAiB;YAC/B,CAAC,CAAC;gBACE,iBAAiB,EAAE,IAAI;gBACvB,GAAG,CAAC,WAAW,CAAC,uBAAuB;oBACrC,CAAC,CAAC,EAAE,uBAAuB,EAAE,WAAW,CAAC,uBAAuB,EAAE;oBAClE,CAAC,CAAC,EAAE,CAAC;aACR;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,GAAG,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC/G,MAAM,OAAO,GAAG,WAAW,CAAC,aAAa;YACvC,CAAC,CAAC,iBAAiB,WAAW,CAAC,gBAAgB,CAAC,MAAM,UAAU,WAAW,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;YACvH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,GAAG,CAAC,6BAA6B,QAAQ,QAAQ,WAAW,CAAC,aAAa,GAAG,OAAO,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IAExC,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;IAC7C,MAAM,qBAAqB,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACjG,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,GAAG,CAAC,GAAG,CAAC,6BAA6B,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,SAAS;QACX,CAAC;QACD,uFAAuF;QACvF,sEAAsE;QACtE,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAC7D,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACvF,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrD,GAAG,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,IAAI,aAAa,KAAK,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;gBAC7E,CAAC;gBACD,SAAS;YACX,CAAC;QACH,CAAC;QACD,0FAA0F;QAC1F,uFAAuF;QACvF,qDAAqD;QACrD,IAAI,eAAe,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1D,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAyB;QACvC,GAAG,IAAI;QACP,eAAe,EAAE,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC5E,WAAW;QACX,UAAU;KACX,CAAC;IAEF,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACnC,0FAA0F;QAC1F,sEAAsE;QACtE,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,cAAc,EAAE;YAC9D,GAAG,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC;YAC9B,OAAO,EAAE,WAAW,CAAC,OAAO;SAC7B,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,SAAS,GAAG;gBACjB,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,MAAM,EAAE,GAAG,CAAC,MAAM;aACnB,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,GAAG,CAAC,KAAK,CACP,kCAAkC,GAAG,CAAC,OAAO,aAAa,GAAG,CAAC,QAAQ,IAAI,GAAG,yBAAyB,CACvG,CAAC;oBACF,GAAG,CAAC,IAAI,CACN,2GAA2G,CAC5G,CAAC;oBACF,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;wBAClB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;oBAC9C,CAAC;oBACD,GAAG,CAAC,IAAI,CACN,mGAAmG,CACpG,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;oBAC/B,OAAO,MAAM,CAAC;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,MAAM,GACV,UAAU,CAAC,UAAU,KAAK,MAAM;QAC9B,CAAC,CAAC,MAAM,wBAAwB,CAC5B,OAAO,EACP,QAAQ,EACR,MAAM,EACN,UAAU,CAAC,kBAAkB,EAC7B,UAAU,CACX;QACH,CAAC,CAAC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAE7C,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAqB,CAAC;QAC1F,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,SAAS;QACX,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,uBAAuB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACN,MAAM,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,GAAW;IACxD,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC;AA8E9C,MAAM,eAAe,GAAG,EAAE,CAAC;AAQ3B,SAAS,cAAc,CAAC,OAAe,EAAE,WAAwB,EAAE,IAAmB;IACpF,MAAM,IAAI,GAAmB;QAC3B,KAAK,EAAE,MAAM;QACb,GAAG,EAAE,OAAO;QACZ,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC;KAChD,CAAC;IACF,MAAM,OAAO,GAAqB,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzE,KAAK,EAAE,CAAC,CAAC,IAAI;QACb,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,cAAc,CAAC;KAC9C,CAAC,CAAC,CAAC;IAEJ,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IACD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,yBAAyB;IACzB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACrB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAClB,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,6CAA6C,OAAO,oBAAoB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAC7H,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAwB;IAC3D,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACzD,MAAM,IAAI,GAAkB,IAAI,CAAC,aAAa,IAAI,WAAW,CAAC;IAE9D,MAAM,WAAW,GACf,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC,CAAC,CAAC;IAExF,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IAE3D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAG,GAAG,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC/G,MAAM,OAAO,GAAG,WAAW,CAAC,aAAa;YACvC,CAAC,CAAC,iBAAiB,WAAW,CAAC,gBAAgB,CAAC,MAAM,UAAU,WAAW,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;YACvH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,GAAG,CAAC,6BAA6B,QAAQ,QAAQ,WAAW,CAAC,aAAa,GAAG,OAAO,EAAE,CAAC,CAAC;QAC5F,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACzB,GAAG,CAAC,IAAI,CACN,wBAAwB,OAAO,CAAC,MAAM,gBAAgB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,IAAI,SAAS,GAAgB,iBAAiB,EAAE,CAAC;IACjD,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACrG,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC;IACnD,SAAS,CAAC,OAAO,GAAG;QAClB,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,cAAc,EAAE,WAAW,CAAC,cAAc;QAC1C,aAAa,EAAE,WAAW,CAAC,aAAa;QACxC,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,aAAa,EAAE,WAAW,CAAC,aAAa;QACxC,cAAc,EAAE,WAAW,CAAC,cAAc;QAC1C,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACzF,GAAG,CAAC,WAAW,CAAC,gBAAgB,KAAK,SAAS;YAC5C,CAAC,CAAC,EAAE,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,EAAE;YACpD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,WAAW,CAAC,iBAAiB,KAAK,SAAS;YAC7C,CAAC,CAAC,EAAE,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,EAAE;YACtD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,WAAW,CAAC,iBAAiB;YAC/B,CAAC,CAAC;gBACE,iBAAiB,EAAE,IAAI;gBACvB,GAAG,CAAC,WAAW,CAAC,uBAAuB;oBACrC,CAAC,CAAC,EAAE,uBAAuB,EAAE,WAAW,CAAC,uBAAuB,EAAE;oBAClE,CAAC,CAAC,EAAE,CAAC;aACR;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE;YAC3D,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;YACxB,OAAO,EAAE,WAAW,CAAC,OAAO;SAC7B,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,SAAS,CAAC,SAAS,GAAG;gBACpB,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,MAAM,EAAE,GAAG,CAAC,MAAM;aACnB,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,GAAG,CAAC,KAAK,CACP,kCAAkC,GAAG,CAAC,OAAO,aAAa,GAAG,CAAC,QAAQ,IAAI,GAAG,yBAAyB,CACvG,CAAC;oBACF,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;wBAClB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;oBAC9C,CAAC;oBACD,GAAG,CAAC,IAAI,CACN,mGAAmG,CACpG,CAAC;gBACJ,CAAC;gBACD,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAClC,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,2FAA2F;IAC3F,4FAA4F;IAC5F,qEAAqE;IACrE,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAE3C,6DAA6D;IAC7D,gFAAgF;IAChF,0FAA0F;IAC1F,gGAAgG;IAChG,8FAA8F;IAC9F,wCAAwC;IACxC,IACE,IAAI,CAAC,WAAW,KAAK,UAAU;QAC/B,WAAW,CAAC,OAAO,KAAK,MAAM;QAC9B,CAAC,UAAU;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,EACtC,CAAC;QACD,MAAM,KAAK,GAAG,WAAW,CAAC,gBAAgB,CAAC;QAC3C,IAAI,WAAW,CAAC,iBAAiB,EAAE,CAAC;YAClC,GAAG,CAAC,IAAI,CACN,yEAAyE,KAAK,IAAI,OAAO,sCAAsC,CAChI,CAAC;QACJ,CAAC;aAAM,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,IAAI,CACN,iCAAiC,KAAK,8JAA8J,CACrM,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CACN,+MAA+M,CAChN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,8FAA8F;IAC9F,6FAA6F;IAC7F,+FAA+F;IAC/F,kEAAkE;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC;IACjE,IAAI,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAChF,IAAI,oBAAoB,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5C,GAAG,CAAC,IAAI,CACN,iBAAiB,SAAS,8HAA8H,CACzJ,CAAC;QACF,oBAAoB,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,SAAS,CAAC,WAAW,GAAG,oBAAoB,CAAC;IAE7C,wFAAwF;IACxF,2FAA2F;IAC3F,4FAA4F;IAC5F,0FAA0F;IAC1F,uFAAuF;IACvF,sDAAsD;IACtD,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;IAC5C,MAAM,WAAW,GACf,oBAAoB,GAAG,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAEnF,0FAA0F;IAC1F,yFAAyF;IACzF,2FAA2F;IAC3F,2FAA2F;IAC3F,sFAAsF;IACtF,mFAAmF;IACnF,MAAM,gBAAgB,GACpB,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC;QACtC,oBAAoB,GAAG,CAAC;QACxB,CAAC,IAAI,CAAC,mBAAmB,CAAC;IAC5B,SAAS,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAE9C,IAAI,oBAAoB,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5C,IAAI,gBAAgB,EAAE,CAAC;YACrB,GAAG,CAAC,GAAG,CACL,6BAA6B,oBAAoB,wDAAwD,WAAW,CAAC,uBAAuB,4CAA4C,CACzL,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CACL,uCAAuC,oBAAoB,mFAAmF,CAC/I,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAAG,CAAC,MAA2D,EAAE,EAAE,CAAC,CAAC;QACxF,GAAG,IAAI;QACP,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,qFAAqF;QACrF,uFAAuF;QACvF,mDAAmD;QACnD,UAAU,EAAE,gBAAgB,IAAI,MAAM,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO;QAC7E,WAAW;QACX,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QACvD,aAAa,EAAE,IAAI;QACnB,mFAAmF;QACnF,qFAAqF;QACrF,gFAAgF;QAChF,wEAAwE;QACxE,aAAa,EACX,IAAI,CAAC,WAAW,KAAK,UAAU,IAAI,MAAM,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,gBAAgB;YAC5E,CAAC,CAAC,MAAM,CAAC,KAAK;YACd,CAAC,CAAC,SAAS;QACf,aAAa;QACb,WAAW;QACX,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;KACxC,CAAC,CAAC;IAEH,uFAAuF;IACvF,uFAAuF;IACvF,wDAAwD;IACxD,MAAM,YAAY,GAAG,KAAK,EAAE,MAAsB,EAAwB,EAAE;QAC1E,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,gBAAgB,CAAC;oBAC1B,SAAS,EAAE,MAAM,CAAC,KAAK;oBACvB,SAAS,EAAE,MAAM,CAAC,GAAG;oBACrB,UAAU,EAAE,OAAO;oBACnB,OAAO,EAAE,WAAW,CAAC,OAAO;oBAC5B,MAAM,EAAE,SAAS;iBAClB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACvD,GAAG,CAAC,IAAI,CAAC,mCAAmC,MAAM,CAAC,KAAK,KAAK,GAAG,EAAE,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,IAAI,oBAAoB,KAAK,CAAC,EAAE,CAAC;QAC/B,mFAAmF;QACnF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,IAAI,eAAe,EAAE,CAAC;gBACnC,GAAG,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACvC,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;YAC7C,SAAS,GAAG,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,4FAA4F;IAC5F,8FAA8F;IAC9F,8FAA8F;IAC9F,sCAAsC;IACtC,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC1F,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,SAAS,GAAG,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CACrB,IAAiB,EACjB,GAAgB,EAChB,KAAa,EACb,eAAwB;IAExB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,IAAI,GAAG,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;QAChC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;QACtC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAClB,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBAChD,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;aAC1B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -35,6 +35,28 @@ export interface ProjectInfo {
|
|
|
35
35
|
* focused install instead of falling back to a root install.
|
|
36
36
|
*/
|
|
37
37
|
yarnSupportsFocus?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* True when the project is set up with **per-workspace lockfiles** rather than a single
|
|
40
|
+
* shared one at the root (aka "nohoist" / isolated-lockfile monorepo). Detected for:
|
|
41
|
+
*
|
|
42
|
+
* - **pnpm**: `shared-workspace-lockfile=false` in any `.npmrc` that affects the root
|
|
43
|
+
* (root `.npmrc`, user-level config is ignored — we can only see what's committed).
|
|
44
|
+
* - **any manager**: every workspace member directory contains its own lockfile of the
|
|
45
|
+
* right kind (`package-lock.json` / `pnpm-lock.yaml` / `yarn.lock`). This is the
|
|
46
|
+
* "folder of independent projects" case; rare but it shows up in corporate monorepos.
|
|
47
|
+
*
|
|
48
|
+
* When true, the upgrader's keyed install mutex lets different workspace targets install
|
|
49
|
+
* **concurrently** — since each has its own lockfile, the install steps don't race.
|
|
50
|
+
* When false (or in single-package projects), every install keys off the root `cwd` and
|
|
51
|
+
* behaves exactly as before (fully serialized).
|
|
52
|
+
*/
|
|
53
|
+
isolatedLockfiles?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Reason / source for `isolatedLockfiles === true`. Surfaced in the structured report so
|
|
56
|
+
* users can see why the tool chose parallel installs. Never populated when
|
|
57
|
+
* `isolatedLockfiles` is false / undefined.
|
|
58
|
+
*/
|
|
59
|
+
isolatedLockfilesSource?: 'pnpm-npmrc' | 'per-workspace-lockfiles';
|
|
38
60
|
}
|
|
39
61
|
/**
|
|
40
62
|
* Detect package manager + workspace info for `cwd`. CLI overrides take precedence.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../src/core/workspaces.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAErD,MAAM,MAAM,oBAAoB,GAC5B,KAAK,GACL,6BAA6B,GAC7B,UAAU,GACV,gBAAgB,GAChB,SAAS,CAAC;AAEd,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,oBAAoB,CAAC;IACpC,qDAAqD;IACrD,QAAQ,CAAC,EAAE,mBAAmB,GAAG,gBAAgB,GAAG,WAAW,CAAC;IAChE,0FAA0F;IAC1F,aAAa,EAAE,OAAO,CAAC;IACvB,4FAA4F;IAC5F,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,sFAAsF;IACtF,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,sFAAsF;IACtF,qBAAqB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../src/core/workspaces.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAErD,MAAM,MAAM,oBAAoB,GAC5B,KAAK,GACL,6BAA6B,GAC7B,UAAU,GACV,gBAAgB,GAChB,SAAS,CAAC;AAEd,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,oBAAoB,CAAC;IACpC,qDAAqD;IACrD,QAAQ,CAAC,EAAE,mBAAmB,GAAG,gBAAgB,GAAG,WAAW,CAAC;IAChE,0FAA0F;IAC1F,aAAa,EAAE,OAAO,CAAC;IACvB,4FAA4F;IAC5F,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,sFAAsF;IACtF,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,sFAAsF;IACtF,qBAAqB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnC;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;;;;;;;;;;OAcG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,YAAY,GAAG,yBAAyB,CAAC;CACpE;AAqPD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,WAAW,CAAC,EAAE,cAAc,GAAG,MAAM,GACpC,OAAO,CAAC,WAAW,CAAC,CA0EtB"}
|
package/dist/core/workspaces.js
CHANGED
|
@@ -277,6 +277,7 @@ export async function detectProjectInfo(cwd, cliOverride) {
|
|
|
277
277
|
yarnMajorVersion = probe.major;
|
|
278
278
|
yarnSupportsFocus = probe.supportsFocus;
|
|
279
279
|
}
|
|
280
|
+
const isolated = detectIsolatedLockfiles(cwd, manager, workspaceMembers);
|
|
280
281
|
return {
|
|
281
282
|
cwd,
|
|
282
283
|
manager,
|
|
@@ -289,6 +290,57 @@ export async function detectProjectInfo(cwd, cliOverride) {
|
|
|
289
290
|
workspacePackageNames: new Set(workspaceMembers.map((m) => m.name)),
|
|
290
291
|
...(yarnMajorVersion !== undefined ? { yarnMajorVersion } : {}),
|
|
291
292
|
...(yarnSupportsFocus !== undefined ? { yarnSupportsFocus } : {}),
|
|
293
|
+
...(isolated.isolated ? { isolatedLockfiles: true, isolatedLockfilesSource: isolated.source } : {}),
|
|
292
294
|
};
|
|
293
295
|
}
|
|
296
|
+
/**
|
|
297
|
+
* Decide whether this project has per-workspace lockfiles rather than a single shared one.
|
|
298
|
+
*
|
|
299
|
+
* Two detection paths:
|
|
300
|
+
*
|
|
301
|
+
* 1. **pnpm `.npmrc` opt-out**: if we can read the root `.npmrc` and it contains
|
|
302
|
+
* `shared-workspace-lockfile=false`, pnpm will generate a `pnpm-lock.yaml` in each
|
|
303
|
+
* workspace member. We don't need to verify the lockfiles exist on disk — the setting
|
|
304
|
+
* IS the contract. (This also covers the pre-install case where members don't have
|
|
305
|
+
* their lockfiles yet.)
|
|
306
|
+
* 2. **On-disk evidence**: for any manager, if every workspace member already has its own
|
|
307
|
+
* lockfile of the matching kind, we treat the project as isolated-lockfile. This also
|
|
308
|
+
* catches the "folder of independent projects accidentally treated as workspaces" case.
|
|
309
|
+
*
|
|
310
|
+
* Returns `{ isolated: false }` when neither applies OR when `hasWorkspaces` is false.
|
|
311
|
+
*/
|
|
312
|
+
function detectIsolatedLockfiles(cwd, manager, members) {
|
|
313
|
+
if (members.length === 0) {
|
|
314
|
+
return { isolated: false };
|
|
315
|
+
}
|
|
316
|
+
// pnpm-specific: look for the canonical `.npmrc` opt-out. We parse conservatively — a
|
|
317
|
+
// commented-out line (`# shared-workspace-lockfile=false`) shouldn't trigger detection.
|
|
318
|
+
if (manager === 'pnpm') {
|
|
319
|
+
const npmrc = path.join(cwd, '.npmrc');
|
|
320
|
+
try {
|
|
321
|
+
if (fs.existsSync(npmrc)) {
|
|
322
|
+
const raw = fs.readFileSync(npmrc, 'utf8');
|
|
323
|
+
for (const line of raw.split(/\r?\n/)) {
|
|
324
|
+
const trimmed = line.trim();
|
|
325
|
+
if (!trimmed || trimmed.startsWith('#') || trimmed.startsWith(';'))
|
|
326
|
+
continue;
|
|
327
|
+
const m = trimmed.match(/^shared-workspace-lockfile\s*=\s*(false|no|0)$/i);
|
|
328
|
+
if (m) {
|
|
329
|
+
return { isolated: true, source: 'pnpm-npmrc' };
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
catch {
|
|
335
|
+
// Unreadable .npmrc is effectively absent — fall through.
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
// Generic path: every workspace member has its own lockfile of the matching kind.
|
|
339
|
+
const expected = manager === 'pnpm' ? 'pnpm-lock.yaml' : manager === 'yarn' ? 'yarn.lock' : 'package-lock.json';
|
|
340
|
+
const allPresent = members.every((m) => fs.existsSync(path.join(m.dir, expected)));
|
|
341
|
+
if (allPresent) {
|
|
342
|
+
return { isolated: true, source: 'per-workspace-lockfiles' };
|
|
343
|
+
}
|
|
344
|
+
return { isolated: false };
|
|
345
|
+
}
|
|
294
346
|
//# sourceMappingURL=workspaces.js.map
|