geotechcli 0.4.1 → 0.4.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../src/commands/classify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+H9D"}
1
+ {"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../src/commands/classify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0J9D"}
@@ -1,7 +1,8 @@
1
1
  import { Command } from 'commander';
2
2
  import { classifyRMR89, classifyUSCS, classifyQSystem } from '@geotechcli/core';
3
- import { heading, keyValue, renderSteps, renderJSON, success } from '../ui/terminal.js';
3
+ import { heading, keyValue, renderSteps, renderJSON, renderXYPlot, success } from '../ui/terminal.js';
4
4
  import { addGlobalFlags, getGlobalFlags } from '../util/flags.js';
5
+ import { buildAtterbergChart } from '../util/viz.js';
5
6
  import { writeFileSync } from 'node:fs';
6
7
  export function registerClassifyCommand(program) {
7
8
  const classify = new Command('classify')
@@ -56,18 +57,22 @@ export function registerClassifyCommand(program) {
56
57
  .requiredOption('--sand <percent>', 'Sand fraction (%)', parseFloat)
57
58
  .requiredOption('--fines <percent>', 'Fines fraction (%)', parseFloat)
58
59
  .option('--ll <percent>', 'Liquid Limit (%)', parseFloat)
60
+ .option('--pl <percent>', 'Plastic Limit (%)', parseFloat)
59
61
  .option('--pi <percent>', 'Plasticity Index (%)', parseFloat)
60
62
  .option('--d10 <mm>', 'D10 particle size (mm)', parseFloat)
61
63
  .option('--d30 <mm>', 'D30 particle size (mm)', parseFloat)
62
64
  .option('--d60 <mm>', 'D60 particle size (mm)', parseFloat)
63
65
  .action((opts) => {
64
66
  const flags = getGlobalFlags(opts);
67
+ const plasticityIndex = opts.pi ?? (opts.ll !== undefined && opts.pl !== undefined
68
+ ? opts.ll - opts.pl
69
+ : undefined);
65
70
  const result = classifyUSCS({
66
71
  gravelPercent: opts.gravel,
67
72
  sandPercent: opts.sand,
68
73
  finesPercent: opts.fines,
69
74
  liquidLimit: opts.ll,
70
- plasticityIndex: opts.pi,
75
+ plasticityIndex,
71
76
  d10: opts.d10,
72
77
  d30: opts.d30,
73
78
  d60: opts.d60,
@@ -80,7 +85,28 @@ export function registerClassifyCommand(program) {
80
85
  keyValue('Symbol', result.symbol);
81
86
  keyValue('Name', result.name);
82
87
  keyValue('Group', result.group);
88
+ if (opts.ll !== undefined) {
89
+ keyValue('Liquid limit', `${opts.ll}%`);
90
+ }
91
+ if (plasticityIndex !== undefined) {
92
+ keyValue('Plasticity index', `${plasticityIndex}%`);
93
+ }
83
94
  renderSteps(result.steps, flags.verbose);
95
+ if (flags.plot && opts.ll !== undefined && plasticityIndex !== undefined) {
96
+ const chart = buildAtterbergChart({
97
+ liquidLimit: opts.ll,
98
+ plasticityIndex,
99
+ });
100
+ renderXYPlot(chart.xySeries ?? [], {
101
+ height: 14,
102
+ title: chart.title,
103
+ xLabel: chart.xLabel,
104
+ yLabel: chart.yLabel,
105
+ xScale: chart.xScale,
106
+ xDomain: chart.xDomain,
107
+ yDomain: chart.yDomain,
108
+ });
109
+ }
84
110
  console.log('');
85
111
  });
86
112
  addGlobalFlags(uscsCmd);
@@ -1 +1 @@
1
- {"version":3,"file":"classify.js","sourceRoot":"","sources":["../../src/commands/classify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"classify.js","sourceRoot":"","sources":["../../src/commands/classify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACtG,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;SACrC,WAAW,CAAC,oDAAoD,CAAC,CAAC;IAErE,gBAAgB;IAChB,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC;SAC9B,WAAW,CAAC,oCAAoC,CAAC;SACjD,cAAc,CAAC,aAAa,EAAE,qCAAqC,EAAE,UAAU,CAAC;SAChF,cAAc,CAAC,iBAAiB,EAAE,8BAA8B,EAAE,UAAU,CAAC;SAC7E,MAAM,CAAC,eAAe,EAAE,2BAA2B,EAAE,UAAU,EAAE,GAAG,CAAC;SACrE,MAAM,CAAC,oBAAoB,EAAE,qDAAqD,EAAE,MAAM,CAAC;SAC3F,MAAM,CAAC,aAAa,EAAE,4CAA4C,EAAE,KAAK,CAAC;SAC1E,MAAM,CAAC,qBAAqB,EAAE,mCAAmC,EAAE,UAAU,EAAE,CAAC,CAAC;SACjF,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACf,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QAEnC,MAAM,MAAM,GAAG,aAAa,CAAC;YAC3B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,WAAW,EAAE,IAAI,CAAC,EAAE;YACpB,qBAAqB,EAAE,IAAI,CAAC,WAAW;SACxC,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAE/C,OAAO,CAAC,4CAA4C,CAAC,CAAC;QAEtD,QAAQ,CAAC,YAAY,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;QACnD,QAAQ,CAAC,YAAY,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;QACnD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,KAAK,CAAC,CAAC;QAC3D,QAAQ,CAAC,kBAAkB,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,KAAK,CAAC,CAAC;QAC/D,QAAQ,CAAC,oBAAoB,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,KAAK,CAAC,CAAC;QACnE,QAAQ,CAAC,wBAAwB,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,QAAQ,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,WAAW,MAAM,CAAC,CAAC;QACnD,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3E,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAEjE,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAEzC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,oBAAoB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEL,cAAc,CAAC,MAAM,CAAC,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAE5B,eAAe;IACf,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;SAChC,WAAW,CAAC,iDAAiD,CAAC;SAC9D,cAAc,CAAC,oBAAoB,EAAE,qBAAqB,EAAE,UAAU,CAAC;SACvE,cAAc,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,UAAU,CAAC;SACnE,cAAc,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,UAAU,CAAC;SACrE,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,UAAU,CAAC;SACxD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,UAAU,CAAC;SACzD,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,EAAE,UAAU,CAAC;SAC5D,MAAM,CAAC,YAAY,EAAE,wBAAwB,EAAE,UAAU,CAAC;SAC1D,MAAM,CAAC,YAAY,EAAE,wBAAwB,EAAE,UAAU,CAAC;SAC1D,MAAM,CAAC,YAAY,EAAE,wBAAwB,EAAE,UAAU,CAAC;SAC1D,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACf,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,eAAe,GAAG,IAAI,CAAC,EAAE,IAAI,CACjC,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS;YAC5C,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE;YACnB,CAAC,CAAC,SAAS,CACd,CAAC;QAEF,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,aAAa,EAAE,IAAI,CAAC,MAAM;YAC1B,WAAW,EAAE,IAAI,CAAC,IAAI;YACtB,YAAY,EAAE,IAAI,CAAC,KAAK;YACxB,WAAW,EAAE,IAAI,CAAC,EAAE;YACpB,eAAe;YACf,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAE/C,OAAO,CAAC,kCAAkC,CAAC,CAAC;QAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC1B,QAAQ,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,eAAe,GAAG,CAAC,CAAC;QACtD,CAAC;QAED,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YACzE,MAAM,KAAK,GAAG,mBAAmB,CAAC;gBAChC,WAAW,EAAE,IAAI,CAAC,EAAE;gBACpB,eAAe;aAChB,CAAC,CAAC;YACH,YAAY,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE;gBACjC,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEL,cAAc,CAAC,OAAO,CAAC,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE7B,mBAAmB;IACnB,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;SACjC,WAAW,CAAC,mDAAmD,CAAC;SAChE,cAAc,CAAC,iBAAiB,EAAE,SAAS,EAAE,UAAU,CAAC;SACxD,cAAc,CAAC,eAAe,EAAE,qBAAqB,EAAE,UAAU,CAAC;SAClE,cAAc,CAAC,eAAe,EAAE,2BAA2B,EAAE,UAAU,CAAC;SACxE,cAAc,CAAC,eAAe,EAAE,4BAA4B,EAAE,UAAU,CAAC;SACzE,MAAM,CAAC,eAAe,EAAE,0BAA0B,EAAE,UAAU,EAAE,GAAG,CAAC;SACpE,MAAM,CAAC,gBAAgB,EAAE,6BAA6B,EAAE,UAAU,EAAE,GAAG,CAAC;SACxE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACf,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QAEnC,MAAM,MAAM,GAAG,eAAe,CAAC;YAC7B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAE/C,OAAO,CAAC,uCAAuC,CAAC,CAAC;QACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAElD,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEL,cAAc,CAAC,IAAI,CAAC,CAAC;IACrB,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAE1B,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"liquefaction.d.ts","sourceRoot":"","sources":["../../src/commands/liquefaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmHlE"}
1
+ {"version":3,"file":"liquefaction.d.ts","sourceRoot":"","sources":["../../src/commands/liquefaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgJlE"}
@@ -1,6 +1,6 @@
1
1
  import { Command } from 'commander';
2
2
  import { calculateLiquefaction } from '@geotechcli/core';
3
- import { heading, keyValue, renderTable, renderSteps, renderJSON, warn, success, error, } from '../ui/terminal.js';
3
+ import { heading, keyValue, renderTable, renderSteps, renderJSON, renderXYPlot, warn, success, error, } from '../ui/terminal.js';
4
4
  import { addGlobalFlags, getGlobalFlags } from '../util/flags.js';
5
5
  import { readFileSync, writeFileSync } from 'node:fs';
6
6
  export function registerLiquefactionCommand(program) {
@@ -88,6 +88,34 @@ export function registerLiquefactionCommand(program) {
88
88
  layer.depth, layer.N160, layer.N160cs, layer.CSR, layer.CRR, layer.factorOfSafety, layer.potential,
89
89
  ]));
90
90
  keyValue('Estimated settlement', `${result.estimatedSettlement} mm`);
91
+ if (flags.plot && result.layers.length > 0) {
92
+ const depthRows = [...result.layers].sort((left, right) => left.depth - right.depth);
93
+ renderXYPlot([
94
+ {
95
+ label: 'Factor of safety',
96
+ points: depthRows.map((layer) => ({ x: layer.depth, y: layer.factorOfSafety })),
97
+ style: 'line',
98
+ symbol: '*',
99
+ },
100
+ {
101
+ label: 'CSR',
102
+ points: depthRows.map((layer) => ({ x: layer.depth, y: layer.CSR })),
103
+ style: 'line',
104
+ symbol: 'o',
105
+ },
106
+ {
107
+ label: 'CRR',
108
+ points: depthRows.map((layer) => ({ x: layer.depth, y: layer.CRR })),
109
+ style: 'line',
110
+ symbol: '+',
111
+ },
112
+ ], {
113
+ height: 14,
114
+ title: 'Liquefaction depth profile',
115
+ xLabel: 'Depth (m)',
116
+ yLabel: 'Value',
117
+ });
118
+ }
91
119
  renderSteps(result.steps, flags.verbose);
92
120
  if (flags.output) {
93
121
  writeFileSync(flags.output, JSON.stringify(outputResult, null, 2));
@@ -1 +1 @@
1
- {"version":3,"file":"liquefaction.js","sourceRoot":"","sources":["../../src/commands/liquefaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"liquefaction.js","sourceRoot":"","sources":["../../src/commands/liquefaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EACL,OAAO,EACP,QAAQ,EACR,WAAW,EACX,WAAW,EACX,UAAU,EACV,YAAY,EACZ,IAAI,EACJ,OAAO,EACP,KAAK,GACN,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEtD,MAAM,UAAU,2BAA2B,CAAC,OAAgB;IAC1D,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC;SACpC,WAAW,CAAC,0CAA0C,CAAC;SACvD,cAAc,CAAC,WAAW,EAAE,mCAAmC,EAAE,UAAU,CAAC;SAC5E,cAAc,CAAC,kBAAkB,EAAE,6BAA6B,EAAE,UAAU,CAAC;SAC7E,MAAM,CAAC,cAAc,EAAE,qCAAqC,EAAE,uBAAuB,CAAC;SACtF,MAAM,CAAC,sBAAsB,EAAE,2EAA2E,CAAC;SAC3G,MAAM,CAAC,aAAa,EAAE,wBAAwB,EAAE,UAAU,CAAC;SAC3D,MAAM,CAAC,WAAW,EAAE,0BAA0B,EAAE,UAAU,CAAC;SAC3D,MAAM,CAAC,mBAAmB,EAAE,gCAAgC,EAAE,UAAU,EAAE,CAAC,CAAC;SAC5E,MAAM,CAAC,QAAQ,EAAE,mCAAmC,CAAC;SACrD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACf,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,MAAM,GAAoB,MAAM,CAAC;QAErC,IAAI,MAMF,CAAC;QAEH,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAE3C,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACzD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC9D,OAAO;oBACL,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;oBACd,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;oBACb,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC1B,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;oBACzB,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;iBAC9B,CAAC;YACJ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAChD,MAAM,GAAG,CAAC;oBACR,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,IAAI,EAAE,IAAI,CAAC,GAAG;oBACd,YAAY,EAAE,IAAI,CAAC,KAAK;oBACxB,UAAU,EAAE,EAAE;oBACd,eAAe,EAAE,CAAC;iBACnB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACrB,MAAM,GAAG,MAAM,CAAC;YAChB,MAAM,GAAG;gBACP,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE;gBAC/E,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE;gBAChF,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE;gBACjF,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE;aACjF,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBAChB,IAAI,CAAC,0FAA0F,CAAC,CAAC;YACnG,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,2FAA2F,CAAC,CAAC;YACnG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,6CAA6C,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,SAAS,SAAS,IAAI,CAAC,GAAG,MAAM,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC;YACrF,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,qBAAqB,CAAC;YACnC,MAAM;YACN,mBAAmB,EAAE,IAAI,CAAC,SAAS;YACnC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QAExE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,UAAU,CAAC,YAAY,CAAC,CAAC;YACzB,OAAO;QACT,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;YAClH,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,OAAO,CAAC,2BAA2B,MAAM,CAAC,MAAM,KAAK,uBAAuB,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAEnI,QAAQ,CAAC,2BAA2B,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACtD,QAAQ,CAAC,0BAA0B,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QAErD,WAAW,CACT,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,EAClE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YAC3B,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS;SACnG,CAAC,CACH,CAAC;QAEF,QAAQ,CAAC,sBAAsB,EAAE,GAAG,MAAM,CAAC,mBAAmB,KAAK,CAAC,CAAC;QAErE,IAAI,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YACrF,YAAY,CAAC;gBACX;oBACE,KAAK,EAAE,kBAAkB;oBACzB,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;oBAC/E,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,GAAG;iBACZ;gBACD;oBACE,KAAK,EAAE,KAAK;oBACZ,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;oBACpE,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,GAAG;iBACZ;gBACD;oBACE,KAAK,EAAE,KAAK;oBACZ,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;oBACpE,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,GAAG;iBACZ;aACF,EAAE;gBACD,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,4BAA4B;gBACnC,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,OAAO;aAChB,CAAC,CAAC;QACL,CAAC;QAED,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAEzC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACnE,OAAO,CAAC,oBAAoB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEL,cAAc,CAAC,GAAG,CAAC,CAAC;IACpB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pile.d.ts","sourceRoot":"","sources":["../../src/commands/pile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuF1D"}
1
+ {"version":3,"file":"pile.d.ts","sourceRoot":"","sources":["../../src/commands/pile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwH1D"}
@@ -1,7 +1,7 @@
1
1
  import { Command } from 'commander';
2
2
  import chalk from 'chalk';
3
3
  import { calculatePileCapacity } from '@geotechcli/core';
4
- import { heading, keyValue, renderJSON, renderTable, renderSteps, success } from '../ui/terminal.js';
4
+ import { heading, keyValue, renderJSON, renderTable, renderSteps, renderXYPlot, success } from '../ui/terminal.js';
5
5
  import { addGlobalFlags, getGlobalFlags } from '../util/flags.js';
6
6
  import { readFileSync, writeFileSync } from 'node:fs';
7
7
  export function registerPileCommand(program) {
@@ -71,6 +71,38 @@ export function registerPileCommand(program) {
71
71
  if (result.shaftFrictionPerLayer.length > 1) {
72
72
  renderTable(['Depth (m)', 'Thick (m)', 'Soil', 'fs (kPa)', 'Qs (kN)'], result.shaftFrictionPerLayer.map((l) => [l.depth.toFixed(1), l.thickness.toFixed(1), l.soilType, l.unitShaftFriction, l.shaftResistance]));
73
73
  }
74
+ if (flags.plot && result.shaftFrictionPerLayer.length > 0) {
75
+ let cumulative = 0;
76
+ const orderedLayers = [...result.shaftFrictionPerLayer].sort((left, right) => left.depth - right.depth);
77
+ renderXYPlot([
78
+ {
79
+ label: 'Unit shaft friction',
80
+ points: orderedLayers.map((layer) => ({ x: layer.depth, y: layer.unitShaftFriction })),
81
+ style: 'line',
82
+ symbol: '*',
83
+ },
84
+ {
85
+ label: 'Shaft resistance',
86
+ points: orderedLayers.map((layer) => ({ x: layer.depth, y: layer.shaftResistance })),
87
+ style: 'line',
88
+ symbol: 'o',
89
+ },
90
+ {
91
+ label: 'Cumulative shaft resistance',
92
+ points: orderedLayers.map((layer) => {
93
+ cumulative += layer.shaftResistance;
94
+ return { x: layer.depth, y: cumulative };
95
+ }),
96
+ style: 'line',
97
+ symbol: '+',
98
+ },
99
+ ], {
100
+ height: 14,
101
+ title: 'Pile shaft resistance profile',
102
+ xLabel: 'Depth (m)',
103
+ yLabel: 'Value',
104
+ });
105
+ }
74
106
  renderSteps(result.steps, flags.verbose);
75
107
  if (flags.output) {
76
108
  writeFileSync(flags.output, JSON.stringify(result, null, 2));
@@ -1 +1 @@
1
- {"version":3,"file":"pile.js","sourceRoot":"","sources":["../../src/commands/pile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pile.js","sourceRoot":"","sources":["../../src/commands/pile.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"viz.d.ts","sourceRoot":"","sources":["../../src/commands/viz.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgFpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoEzD"}
1
+ {"version":3,"file":"viz.d.ts","sourceRoot":"","sources":["../../src/commands/viz.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuJpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6FzD"}
@@ -2,8 +2,8 @@ import { Command } from 'commander';
2
2
  import chalk from 'chalk';
3
3
  import { createInterface } from 'node:readline/promises';
4
4
  import { stdin as input, stdout as output } from 'node:process';
5
- import { banner, heading, renderChart, renderMultiChart, warn } from '../ui/terminal.js';
6
- import { loadVisualizationSource } from '../util/viz.js';
5
+ import { banner, heading, renderChart, renderMultiChart, renderXYPlot, warn, } from '../ui/terminal.js';
6
+ import { buildAtterbergChart, buildMohrCircleChart, loadVisualizationSource, } from '../util/viz.js';
7
7
  function summarizeDomain(values) {
8
8
  if (values.length === 0) {
9
9
  return 'No samples';
@@ -14,21 +14,42 @@ function summarizeDomain(values) {
14
14
  }
15
15
  function renderVisualization(chart, height) {
16
16
  heading(chart.title);
17
- console.log(chalk.gray(` X-axis: ${chart.xLabel} | Domain: ${summarizeDomain(chart.xValues)}`));
17
+ if (chart.kind === 'xy') {
18
+ console.log(chalk.gray(` X-axis: ${chart.xLabel}${chart.xScale === 'log10' ? ' (log scale)' : ''}`));
19
+ console.log(chalk.gray(` Y-axis: ${chart.yLabel}`));
20
+ if (chart.note) {
21
+ console.log(chalk.gray(` ${chart.note}`));
22
+ }
23
+ renderXYPlot(chart.xySeries ?? [], {
24
+ height,
25
+ title: chart.title,
26
+ xLabel: chart.xLabel,
27
+ yLabel: chart.yLabel,
28
+ xScale: chart.xScale,
29
+ xDomain: chart.xDomain,
30
+ yDomain: chart.yDomain,
31
+ invertY: chart.invertY,
32
+ });
33
+ return;
34
+ }
35
+ const xValues = chart.xValues ?? [];
36
+ const series = chart.series ?? [];
37
+ const labels = chart.labels ?? [];
38
+ console.log(chalk.gray(` X-axis: ${chart.xLabel} | Domain: ${summarizeDomain(xValues)}`));
18
39
  console.log(chalk.gray(` Y-axis: ${chart.yLabel}`));
19
40
  if (chart.note) {
20
41
  console.log(chalk.gray(` ${chart.note}`));
21
42
  }
22
- if (chart.series.length > 1) {
23
- renderMultiChart(chart.series, chart.labels, {
43
+ if (series.length > 1) {
44
+ renderMultiChart(series, labels, {
24
45
  height,
25
46
  title: `${chart.title} (${chart.xLabel})`,
26
47
  });
27
48
  }
28
- else {
29
- renderChart(chart.series[0], {
49
+ else if (series[0]) {
50
+ renderChart(series[0], {
30
51
  height,
31
- label: `${chart.labels[0]} (${chart.xLabel})`,
52
+ label: `${labels[0] ?? chart.yLabel} (${chart.xLabel})`,
32
53
  });
33
54
  }
34
55
  }
@@ -36,7 +57,7 @@ function printChartCatalog(charts) {
36
57
  console.log('');
37
58
  console.log(chalk.cyan(' Available charts:'));
38
59
  charts.forEach((chart, index) => {
39
- console.log(chalk.gray(` ${String(index + 1).padStart(2, ' ')}. `) + chalk.white(chart.id) + chalk.gray(` ${chart.title}`));
60
+ console.log(chalk.gray(` ${String(index + 1).padStart(2, ' ')}. `) + chalk.white(chart.id) + chalk.gray(` - ${chart.title}`));
40
61
  });
41
62
  console.log('');
42
63
  }
@@ -68,10 +89,43 @@ async function browseChartsInteractively(charts, height) {
68
89
  rl.close();
69
90
  }
70
91
  }
92
+ function loadPresetSource(preset, opts) {
93
+ switch (preset) {
94
+ case 'mohr':
95
+ case 'mohr-circle':
96
+ return {
97
+ sourceType: 'preset',
98
+ sourceName: 'mohr-circle',
99
+ charts: [
100
+ buildMohrCircleChart({
101
+ sigma1: Number(opts.sigma1),
102
+ sigma3: Number(opts.sigma3),
103
+ cohesion: opts.cohesion !== undefined ? Number(opts.cohesion) : undefined,
104
+ frictionAngle: opts.phi !== undefined ? Number(opts.phi) : undefined,
105
+ }),
106
+ ],
107
+ };
108
+ case 'atterberg':
109
+ case 'plasticity':
110
+ return {
111
+ sourceType: 'preset',
112
+ sourceName: 'atterberg',
113
+ charts: [
114
+ buildAtterbergChart({
115
+ liquidLimit: Number(opts.ll),
116
+ plasticityIndex: opts.pi !== undefined ? Number(opts.pi) : undefined,
117
+ plasticLimit: opts.pl !== undefined ? Number(opts.pl) : undefined,
118
+ }),
119
+ ],
120
+ };
121
+ default:
122
+ throw new Error(`Unsupported preset "${preset}". Use mohr-circle or atterberg.`);
123
+ }
124
+ }
71
125
  export function registerVizCommand(program) {
72
126
  const cmd = new Command('viz')
73
- .description('Interactive terminal visualization for saved JSON, CSV, and Excel analysis data')
74
- .argument('<file>', 'Visualization source file (.json, .csv, .xlsx)')
127
+ .description('Interactive terminal visualization for saved data, engineering presets, and geotechnical chart templates')
128
+ .argument('[file]', 'Visualization source file (.json, .csv, .xlsx)')
75
129
  .option('--chart <id>', 'Render a specific chart id directly')
76
130
  .option('--list', 'List available charts without rendering')
77
131
  .option('--all', 'Render all detected charts')
@@ -79,27 +133,51 @@ export function registerVizCommand(program) {
79
133
  .option('--x <column>', 'Override the X-axis column for tabular inputs')
80
134
  .option('--y <columns>', 'Comma-separated Y columns for tabular inputs')
81
135
  .option('--height <rows>', 'Chart height in terminal rows', (value) => parseInt(value, 10), 12)
136
+ .option('--template <name>', 'File template: compaction | gradation | cpt')
137
+ .option('--preset <name>', 'Preset chart: mohr-circle | atterberg')
138
+ .option('--sigma1 <kPa>', 'Major principal stress for Mohr circle preset', (value) => parseFloat(value))
139
+ .option('--sigma3 <kPa>', 'Minor principal stress for Mohr circle preset', (value) => parseFloat(value))
140
+ .option('--cohesion <kPa>', 'Cohesion intercept for Mohr-Coulomb envelope', (value) => parseFloat(value))
141
+ .option('--phi <deg>', 'Friction angle for Mohr-Coulomb envelope', (value) => parseFloat(value))
142
+ .option('--ll <percent>', 'Liquid limit for Atterberg plasticity chart', (value) => parseFloat(value))
143
+ .option('--pl <percent>', 'Plastic limit for Atterberg plasticity chart', (value) => parseFloat(value))
144
+ .option('--pi <percent>', 'Plasticity index for Atterberg plasticity chart', (value) => parseFloat(value))
82
145
  .addHelpText('after', `
83
146
  Examples:
84
147
  geotech viz samples/visualization/geotech-viz-showcase.csv
85
148
  geotech viz samples/visualization/geotech-viz-showcase.xlsx --sheet settlement_profile
149
+ geotech viz samples/visualization/geotech-viz-compaction.csv --template compaction
150
+ geotech viz samples/visualization/geotech-viz-gradation.csv --template gradation
86
151
  geotech viz output/liquefaction.json --list
87
- geotech viz output/liquefaction.json --chart output-liquefaction-fs-by-depth
152
+ geotech viz --preset mohr-circle --sigma1 250 --sigma3 90 --cohesion 15 --phi 28
153
+ geotech viz --preset atterberg --ll 55 --pl 25
88
154
  `)
89
155
  .action(async (filePath, opts) => {
156
+ if (opts.preset && filePath) {
157
+ throw new Error('Use either a <file> input or --preset, not both at the same time.');
158
+ }
159
+ if (!opts.preset && !filePath) {
160
+ throw new Error('Provide a visualization file or use --preset for a built-in engineering chart.');
161
+ }
90
162
  const yColumns = typeof opts.y === 'string'
91
163
  ? opts.y.split(',').map((value) => value.trim()).filter((value) => value.length > 0)
92
164
  : undefined;
93
- const source = await loadVisualizationSource(filePath, {
94
- sheetName: opts.sheet,
95
- xColumn: opts.x,
96
- yColumns,
97
- });
165
+ const source = opts.preset
166
+ ? loadPresetSource(String(opts.preset).toLowerCase(), opts)
167
+ : await loadVisualizationSource(filePath, {
168
+ sheetName: opts.sheet,
169
+ xColumn: opts.x,
170
+ yColumns,
171
+ template: opts.template,
172
+ });
98
173
  if (source.charts.length === 0) {
174
+ if (opts.template) {
175
+ throw new Error(`No chartable data found in ${filePath} for template "${opts.template}".`);
176
+ }
99
177
  throw new Error(`No chartable data found in ${filePath}. Save JSON output from a supported command, or provide numeric CSV/XLSX columns.`);
100
178
  }
101
179
  banner();
102
- console.log(chalk.gray(` Source: ${filePath} (${source.sourceType.toUpperCase()})`));
180
+ console.log(chalk.gray(` Source: ${opts.preset ? `preset:${opts.preset}` : filePath} (${source.sourceType.toUpperCase()})`));
103
181
  console.log(chalk.gray(` Charts detected: ${source.charts.length}`));
104
182
  if (opts.list) {
105
183
  printChartCatalog(source.charts);
@@ -108,7 +186,7 @@ export function registerVizCommand(program) {
108
186
  if (typeof opts.chart === 'string') {
109
187
  const match = source.charts.find((chart) => chart.id === opts.chart);
110
188
  if (!match) {
111
- throw new Error(`Chart "${opts.chart}" not found. Run "geotech viz ${filePath} --list" to inspect available chart ids.`);
189
+ throw new Error(`Chart "${opts.chart}" not found. Run "geotech viz ${filePath ?? `--preset ${opts.preset}`} --list" to inspect available chart ids.`);
112
190
  }
113
191
  renderVisualization(match, opts.height);
114
192
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"viz.js","sourceRoot":"","sources":["../../src/commands/viz.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"viz.js","sourceRoot":"","sources":["../../src/commands/viz.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,13 @@
1
+ export interface XYPoint {
2
+ x: number;
3
+ y: number;
4
+ }
5
+ export interface XYSeriesSpec {
6
+ label: string;
7
+ points: XYPoint[];
8
+ style?: 'line' | 'scatter';
9
+ symbol?: string;
10
+ }
1
11
  export declare function banner(): void;
2
12
  export declare function heading(text: string): void;
3
13
  export declare function success(text: string): void;
@@ -15,6 +25,17 @@ export declare function renderMultiChart(series: number[][], labels: string[], o
15
25
  height?: number;
16
26
  title?: string;
17
27
  }): void;
28
+ export declare function renderXYPlot(series: XYSeriesSpec[], options?: {
29
+ height?: number;
30
+ width?: number;
31
+ title?: string;
32
+ xLabel?: string;
33
+ yLabel?: string;
34
+ xScale?: 'linear' | 'log10';
35
+ xDomain?: [number, number];
36
+ yDomain?: [number, number];
37
+ invertY?: boolean;
38
+ }): void;
18
39
  export declare function renderSteps(steps: string[], verbose: boolean): void;
19
40
  export declare function renderJSON(data: unknown): void;
20
41
  //# sourceMappingURL=terminal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../src/ui/terminal.ts"],"names":[],"mappings":"AAaA,wBAAgB,MAAM,IAAI,IAAI,CAU7B;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAI1C;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEvC;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAExC;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEvC;AAED,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEtC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMlE;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI,CA8BhF;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5C,IAAI,CAgBN;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EAAE,EAAE,EAClB,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5C,IAAI,CA0BN;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAQnE;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAW9C"}
1
+ {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../src/ui/terminal.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,OAAO;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAWD,wBAAgB,MAAM,IAAI,IAAI,CAU7B;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAI1C;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEvC;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAExC;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEvC;AAED,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEtC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMlE;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI,CA8BhF;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5C,IAAI,CAgBN;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EAAE,EAAE,EAClB,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5C,IAAI,CA0BN;AAoCD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,YAAY,EAAE,EACtB,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACA,IAAI,CA4GN;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAQnE;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAW9C"}
@@ -103,6 +103,111 @@ export function renderMultiChart(series, labels, options) {
103
103
  console.log(` ${legend}`);
104
104
  console.log('');
105
105
  }
106
+ function clamp(value, min, max) {
107
+ return Math.min(Math.max(value, min), max);
108
+ }
109
+ function expandDomain(min, max) {
110
+ if (min === max) {
111
+ const delta = Math.abs(min) > 1 ? Math.abs(min) * 0.1 : 1;
112
+ return [min - delta, max + delta];
113
+ }
114
+ return [min, max];
115
+ }
116
+ function interpolateLine(startCol, startRow, endCol, endRow, symbol, grid) {
117
+ const steps = Math.max(Math.abs(endCol - startCol), Math.abs(endRow - startRow));
118
+ if (steps === 0) {
119
+ grid[startRow][startCol] = symbol;
120
+ return;
121
+ }
122
+ for (let index = 0; index <= steps; index += 1) {
123
+ const t = index / steps;
124
+ const col = Math.round(startCol + (endCol - startCol) * t);
125
+ const row = Math.round(startRow + (endRow - startRow) * t);
126
+ grid[row][col] = symbol;
127
+ }
128
+ }
129
+ export function renderXYPlot(series, options) {
130
+ const height = Math.max(8, options?.height ?? 14);
131
+ const width = Math.max(28, options?.width ?? 60);
132
+ const xScale = options?.xScale ?? 'linear';
133
+ const symbols = ['*', 'o', 'x', '+', '#'];
134
+ const transformedSeries = series
135
+ .map((entry, index) => {
136
+ const points = entry.points
137
+ .filter((point) => Number.isFinite(point.x) && Number.isFinite(point.y))
138
+ .filter((point) => xScale === 'linear' || point.x > 0)
139
+ .map((point) => ({
140
+ x: xScale === 'log10' ? Math.log10(point.x) : point.x,
141
+ y: point.y,
142
+ rawX: point.x,
143
+ rawY: point.y,
144
+ }));
145
+ return {
146
+ ...entry,
147
+ symbol: entry.symbol ?? symbols[index % symbols.length],
148
+ points,
149
+ };
150
+ })
151
+ .filter((entry) => entry.points.length > 0);
152
+ if (transformedSeries.length === 0) {
153
+ warn('No plottable XY data found for this chart.');
154
+ return;
155
+ }
156
+ const allX = transformedSeries.flatMap((entry) => entry.points.map((point) => point.x));
157
+ const allY = transformedSeries.flatMap((entry) => entry.points.map((point) => point.y));
158
+ const rawX = transformedSeries.flatMap((entry) => entry.points.map((point) => point.rawX));
159
+ const transformedDomain = options?.xDomain && xScale === 'log10'
160
+ ? [Math.log10(options.xDomain[0]), Math.log10(options.xDomain[1])]
161
+ : options?.xDomain;
162
+ const [xMin, xMax] = expandDomain(transformedDomain?.[0] ?? Math.min(...allX), transformedDomain?.[1] ?? Math.max(...allX));
163
+ const [yMin, yMax] = expandDomain(options?.yDomain?.[0] ?? Math.min(...allY), options?.yDomain?.[1] ?? Math.max(...allY));
164
+ const grid = Array.from({ length: height }, () => Array.from({ length: width }, () => ' '));
165
+ const xToColumn = (value) => clamp(Math.round(((value - xMin) / (xMax - xMin)) * (width - 1)), 0, width - 1);
166
+ const yToRow = (value) => {
167
+ const normalized = (value - yMin) / (yMax - yMin);
168
+ const row = options?.invertY
169
+ ? Math.round(normalized * (height - 1))
170
+ : Math.round((1 - normalized) * (height - 1));
171
+ return clamp(row, 0, height - 1);
172
+ };
173
+ if (xScale === 'linear' && xMin <= 0 && xMax >= 0) {
174
+ const axisCol = xToColumn(0);
175
+ for (let row = 0; row < height; row += 1) {
176
+ grid[row][axisCol] = '|';
177
+ }
178
+ }
179
+ if (yMin <= 0 && yMax >= 0) {
180
+ const axisRow = yToRow(0);
181
+ for (let col = 0; col < width; col += 1) {
182
+ grid[axisRow][col] = '-';
183
+ }
184
+ }
185
+ if (xScale === 'linear' && xMin <= 0 && xMax >= 0 && yMin <= 0 && yMax >= 0) {
186
+ grid[yToRow(0)][xToColumn(0)] = '+';
187
+ }
188
+ for (const entry of transformedSeries) {
189
+ const symbol = entry.symbol ?? '*';
190
+ for (let index = 0; index < entry.points.length; index += 1) {
191
+ const point = entry.points[index];
192
+ const col = xToColumn(point.x);
193
+ const row = yToRow(point.y);
194
+ grid[row][col] = symbol;
195
+ if (entry.style !== 'scatter' && index > 0) {
196
+ const previous = entry.points[index - 1];
197
+ interpolateLine(xToColumn(previous.x), yToRow(previous.y), col, row, symbol, grid);
198
+ }
199
+ }
200
+ }
201
+ console.log('');
202
+ if (options?.title) {
203
+ console.log(chalk.gray(` ${options.title}`));
204
+ }
205
+ console.log(grid.map((row) => ` ${row.join('')}`).join('\n'));
206
+ console.log(chalk.gray(` x: ${Math.min(...rawX).toFixed(2)} to ${Math.max(...rawX).toFixed(2)}${xScale === 'log10' ? ' (log scale)' : ''}${options?.xLabel ? ` | ${options.xLabel}` : ''}`));
207
+ console.log(chalk.gray(` y: ${yMin.toFixed(2)} to ${yMax.toFixed(2)}${options?.yLabel ? ` | ${options.yLabel}` : ''}`));
208
+ console.log(` ${transformedSeries.map((entry) => `${entry.symbol}=${entry.label}`).join(' ')}`);
209
+ console.log('');
210
+ }
106
211
  export function renderSteps(steps, verbose) {
107
212
  if (!verbose)
108
213
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../src/ui/terminal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../src/ui/terminal.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,22 @@
1
+ import type { XYSeriesSpec } from '../ui/terminal.js';
1
2
  export interface ChartSpec {
2
3
  id: string;
3
4
  title: string;
4
5
  xLabel: string;
5
6
  yLabel: string;
6
- xValues: number[];
7
- series: number[][];
8
- labels: string[];
7
+ kind: 'series' | 'xy';
8
+ xValues?: number[];
9
+ series?: number[][];
10
+ labels?: string[];
11
+ xySeries?: XYSeriesSpec[];
12
+ xScale?: 'linear' | 'log10';
13
+ invertY?: boolean;
14
+ xDomain?: [number, number];
15
+ yDomain?: [number, number];
9
16
  note?: string;
10
17
  }
11
18
  export interface VisualizationSource {
12
- sourceType: 'json' | 'csv' | 'xlsx';
19
+ sourceType: 'json' | 'csv' | 'xlsx' | 'preset';
13
20
  sourceName: string;
14
21
  charts: ChartSpec[];
15
22
  }
@@ -19,13 +26,28 @@ interface TableChartOptions {
19
26
  xColumn?: string;
20
27
  yColumns?: string[];
21
28
  }
29
+ export interface MohrCircleOptions {
30
+ sigma1: number;
31
+ sigma3: number;
32
+ cohesion?: number;
33
+ frictionAngle?: number;
34
+ }
35
+ export interface AtterbergChartOptions {
36
+ liquidLimit: number;
37
+ plasticityIndex?: number;
38
+ plasticLimit?: number;
39
+ }
22
40
  type TableRow = Record<string, string | number | boolean | null>;
41
+ type TableTemplate = 'compaction' | 'gradation' | 'cpt';
23
42
  export declare function buildChartsFromTable(rows: TableRow[], options: TableChartOptions): ChartSpec[];
43
+ export declare function buildAtterbergChart(options: AtterbergChartOptions): ChartSpec;
44
+ export declare function buildMohrCircleChart(options: MohrCircleOptions): ChartSpec;
24
45
  export declare function buildChartsFromJson(data: unknown, sourceName: string): ChartSpec[];
25
46
  export declare function loadVisualizationSource(filePath: string, options?: {
26
47
  sheetName?: string;
27
48
  xColumn?: string;
28
49
  yColumns?: string[];
50
+ template?: TableTemplate;
29
51
  }): Promise<VisualizationSource>;
30
52
  export {};
31
53
  //# sourceMappingURL=viz.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"viz.d.ts","sourceRoot":"","sources":["../../src/util/viz.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,UAAU,iBAAiB;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,KAAK,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;AAmJjE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,iBAAiB,GAAG,SAAS,EAAE,CA0E9F;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,CAuGlF;AAED,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GACtE,OAAO,CAAC,mBAAmB,CAAC,CAqD9B"}
1
+ {"version":3,"file":"viz.d.ts","sourceRoot":"","sources":["../../src/util/viz.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,UAAU,iBAAiB;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,KAAK,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;AACjE,KAAK,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,KAAK,CAAC;AA+LxD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,iBAAiB,GAAG,SAAS,EAAE,CAqE9F;AAuKD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,GAAG,SAAS,CAwC7E;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAkD1E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,CAuGlF;AAED,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,aAAa,CAAA;CAAE,GAChG,OAAO,CAAC,mBAAmB,CAAC,CAkF9B"}
package/dist/util/viz.js CHANGED
@@ -126,6 +126,35 @@ function inferNumericColumns(rows) {
126
126
  return nonEmptyCount > 0 && numericCount === nonEmptyCount;
127
127
  });
128
128
  }
129
+ function normalizeHeader(value) {
130
+ return value.toLowerCase().replace(/[^a-z0-9]+/g, '');
131
+ }
132
+ function findColumn(headers, aliases) {
133
+ const aliasSet = new Set(aliases.map((alias) => normalizeHeader(alias)));
134
+ return headers.find((header) => aliasSet.has(normalizeHeader(header)));
135
+ }
136
+ function expandDomain(min, max) {
137
+ if (min === max) {
138
+ const delta = Math.abs(min) > 1 ? Math.abs(min) * 0.1 : 1;
139
+ return [min - delta, max + delta];
140
+ }
141
+ return [min, max];
142
+ }
143
+ function buildXYChart(options) {
144
+ return {
145
+ id: options.id,
146
+ title: options.title,
147
+ xLabel: options.xLabel,
148
+ yLabel: options.yLabel,
149
+ kind: 'xy',
150
+ xySeries: options.series,
151
+ xScale: options.xScale ?? 'linear',
152
+ invertY: options.invertY,
153
+ xDomain: options.xDomain,
154
+ yDomain: options.yDomain,
155
+ note: options.note,
156
+ };
157
+ }
129
158
  export function buildChartsFromTable(rows, options) {
130
159
  if (rows.length === 0) {
131
160
  return [];
@@ -137,26 +166,21 @@ export function buildChartsFromTable(rows, options) {
137
166
  const xColumn = options.xColumn && numericColumns.includes(options.xColumn)
138
167
  ? options.xColumn
139
168
  : numericColumns[0];
140
- const yColumns = (options.yColumns?.length
169
+ const yColumns = options.yColumns?.length
141
170
  ? options.yColumns.filter((column) => numericColumns.includes(column) && column !== xColumn)
142
- : numericColumns.filter((column) => column !== xColumn));
171
+ : numericColumns.filter((column) => column !== xColumn);
143
172
  if (yColumns.length === 0) {
144
173
  return [];
145
174
  }
146
175
  const normalizedRows = rows
147
176
  .map((row, index) => {
148
- const xValue = xColumn ? toFiniteNumber(row[xColumn]) : index + 1;
149
- if (xValue === null) {
150
- return null;
151
- }
152
- const mapped = { __rowIndex: index + 1 };
177
+ const xValue = toFiniteNumber(row[xColumn]) ?? index + 1;
178
+ const mapped = { __rowIndex: index + 1, __x: xValue };
153
179
  for (const key of Object.keys(row)) {
154
180
  mapped[key] = row[key];
155
181
  }
156
- mapped.__x = xValue;
157
182
  return mapped;
158
183
  })
159
- .filter((row) => row !== null)
160
184
  .sort((left, right) => Number(left.__x) - Number(right.__x));
161
185
  const xValues = normalizedRows.map((row) => Number(row.__x));
162
186
  const charts = [];
@@ -170,6 +194,7 @@ export function buildChartsFromTable(rows, options) {
170
194
  title: `${titlePrefix}: ${yColumns.slice(0, 4).map(humanizeKey).join(', ')} vs ${humanizeKey(xColumn)}`,
171
195
  xLabel: humanizeKey(xColumn),
172
196
  yLabel: 'Value',
197
+ kind: 'series',
173
198
  xValues,
174
199
  series: combinedSeries,
175
200
  labels: yColumns.slice(0, 4).map(humanizeKey),
@@ -177,20 +202,249 @@ export function buildChartsFromTable(rows, options) {
177
202
  });
178
203
  }
179
204
  for (const column of yColumns) {
180
- const series = normalizedRows.map((row) => toFiniteNumber(row[column]) ?? 0);
181
205
  charts.push({
182
206
  id: slugify(`${options.sourceName}-${xColumn}-${column}`),
183
207
  title: `${titlePrefix}: ${humanizeKey(column)} vs ${humanizeKey(xColumn)}`,
184
208
  xLabel: humanizeKey(xColumn),
185
209
  yLabel: humanizeKey(column),
210
+ kind: 'series',
186
211
  xValues,
187
- series: [series],
212
+ series: [normalizedRows.map((row) => toFiniteNumber(row[column]) ?? 0)],
188
213
  labels: [humanizeKey(column)],
189
214
  note: `Samples: ${normalizedRows.length}`,
190
215
  });
191
216
  }
192
217
  return charts;
193
218
  }
219
+ function buildCompactionChart(rows, sourceName) {
220
+ if (rows.length === 0) {
221
+ return [];
222
+ }
223
+ const headers = Object.keys(rows[0]);
224
+ const moistureColumn = findColumn(headers, [
225
+ 'moisture_content',
226
+ 'moisture_percent',
227
+ 'water_content',
228
+ 'water_content_percent',
229
+ 'w',
230
+ 'wc',
231
+ ]);
232
+ const densityColumn = findColumn(headers, [
233
+ 'dry_density',
234
+ 'dry_density_g_cm3',
235
+ 'dry_density_kn_m3',
236
+ 'dry_unit_weight',
237
+ 'gamma_d',
238
+ 'gd',
239
+ ]);
240
+ if (!moistureColumn || !densityColumn) {
241
+ return [];
242
+ }
243
+ const points = rows
244
+ .map((row) => ({
245
+ x: toFiniteNumber(row[moistureColumn]) ?? Number.NaN,
246
+ y: toFiniteNumber(row[densityColumn]) ?? Number.NaN,
247
+ }))
248
+ .filter((point) => Number.isFinite(point.x) && Number.isFinite(point.y))
249
+ .sort((left, right) => left.x - right.x);
250
+ if (points.length === 0) {
251
+ return [];
252
+ }
253
+ const optimumPoint = points.reduce((best, point) => (point.y > best.y ? point : best), points[0]);
254
+ return [
255
+ buildXYChart({
256
+ id: slugify(`${sourceName}-compaction-curve`),
257
+ title: `${sourceName}: Moisture-density compaction curve`,
258
+ xLabel: 'Moisture content (%)',
259
+ yLabel: humanizeKey(densityColumn),
260
+ series: [
261
+ { label: 'Compaction curve', points, style: 'line', symbol: '*' },
262
+ { label: 'Optimum point', points: [optimumPoint], style: 'scatter', symbol: 'o' },
263
+ ],
264
+ note: `Peak dry density ${optimumPoint.y.toFixed(2)} at moisture content ${optimumPoint.x.toFixed(2)}%`,
265
+ }),
266
+ ];
267
+ }
268
+ function buildGradationChart(rows, sourceName) {
269
+ if (rows.length === 0) {
270
+ return [];
271
+ }
272
+ const headers = Object.keys(rows[0]);
273
+ const sizeColumn = findColumn(headers, [
274
+ 'particle_size_mm',
275
+ 'grain_size_mm',
276
+ 'diameter_mm',
277
+ 'sieve_mm',
278
+ 'opening_mm',
279
+ 'size_mm',
280
+ ]);
281
+ const passingColumn = findColumn(headers, [
282
+ 'percent_passing',
283
+ 'passing_percent',
284
+ 'percent_finer',
285
+ 'finer_percent',
286
+ 'passing',
287
+ 'finer',
288
+ ]);
289
+ if (!sizeColumn || !passingColumn) {
290
+ return [];
291
+ }
292
+ const points = rows
293
+ .map((row) => ({
294
+ x: toFiniteNumber(row[sizeColumn]) ?? Number.NaN,
295
+ y: toFiniteNumber(row[passingColumn]) ?? Number.NaN,
296
+ }))
297
+ .filter((point) => Number.isFinite(point.x) && Number.isFinite(point.y) && point.x > 0)
298
+ .sort((left, right) => left.x - right.x);
299
+ if (points.length === 0) {
300
+ return [];
301
+ }
302
+ const [xMin, xMax] = expandDomain(Math.min(...points.map((point) => point.x)), Math.max(...points.map((point) => point.x)));
303
+ return [
304
+ buildXYChart({
305
+ id: slugify(`${sourceName}-gradation-curve`),
306
+ title: `${sourceName}: Grain-size distribution curve`,
307
+ xLabel: 'Particle size (mm)',
308
+ yLabel: 'Percent passing (%)',
309
+ xScale: 'log10',
310
+ xDomain: [xMin, xMax],
311
+ yDomain: [0, 100],
312
+ series: [{ label: 'Percent passing', points, style: 'line', symbol: '*' }],
313
+ note: 'Semilog gradation plot with logarithmic particle-size axis',
314
+ }),
315
+ ];
316
+ }
317
+ function buildCptCharts(rows, sourceName) {
318
+ if (rows.length === 0) {
319
+ return [];
320
+ }
321
+ const headers = Object.keys(rows[0]);
322
+ const depthColumn = findColumn(headers, ['depth', 'depth_m', 'z', 'elevation_depth']);
323
+ if (!depthColumn) {
324
+ return [];
325
+ }
326
+ const yColumns = [
327
+ findColumn(headers, ['qc', 'qc_mpa', 'tip_resistance', 'cone_resistance']),
328
+ findColumn(headers, ['fs', 'fs_kpa', 'friction_sleeve', 'sleeve_friction']),
329
+ findColumn(headers, ['rf', 'friction_ratio', 'rf_percent']),
330
+ findColumn(headers, ['u2', 'pore_pressure', 'pore_pressure_kpa']),
331
+ findColumn(headers, ['ic', 'soil_behavior_index']),
332
+ ].filter((value) => Boolean(value));
333
+ if (yColumns.length === 0) {
334
+ return [];
335
+ }
336
+ return buildChartsFromTable(rows, {
337
+ sourceName: `${sourceName}-cpt`,
338
+ titlePrefix: 'CPT depth plots',
339
+ xColumn: depthColumn,
340
+ yColumns,
341
+ });
342
+ }
343
+ function buildChartsFromTemplate(rows, template, sourceName) {
344
+ switch (template) {
345
+ case 'compaction':
346
+ return buildCompactionChart(rows, sourceName);
347
+ case 'gradation':
348
+ return buildGradationChart(rows, sourceName);
349
+ case 'cpt':
350
+ return buildCptCharts(rows, sourceName);
351
+ default:
352
+ return [];
353
+ }
354
+ }
355
+ function classifyPlasticityPoint(liquidLimit, plasticityIndex) {
356
+ const aLine = 0.73 * (liquidLimit - 20);
357
+ if (liquidLimit < 50) {
358
+ if (plasticityIndex > aLine && plasticityIndex > 7)
359
+ return 'CL region';
360
+ if (plasticityIndex < 4 || plasticityIndex < aLine)
361
+ return 'ML region';
362
+ return 'CL-ML border';
363
+ }
364
+ return plasticityIndex > aLine ? 'CH region' : 'MH region';
365
+ }
366
+ export function buildAtterbergChart(options) {
367
+ const liquidLimit = options.liquidLimit;
368
+ const plasticityIndex = options.plasticityIndex ?? (options.plasticLimit !== undefined ? liquidLimit - options.plasticLimit : undefined);
369
+ if (!Number.isFinite(liquidLimit)) {
370
+ throw new Error('Atterberg chart requires --ll / liquid limit.');
371
+ }
372
+ if (!Number.isFinite(plasticityIndex)) {
373
+ throw new Error('Atterberg chart requires either --pi or both --ll and --pl.');
374
+ }
375
+ const pi = Number(plasticityIndex);
376
+ const maxX = Math.max(100, liquidLimit + 10);
377
+ const maxY = Math.max(60, pi + 10);
378
+ const aLine = Array.from({ length: Math.max(2, Math.ceil(maxX - 20)) }, (_, index) => {
379
+ const ll = 20 + index;
380
+ return { x: ll, y: 0.73 * (ll - 20) };
381
+ });
382
+ const uLine = Array.from({ length: Math.max(2, Math.ceil(maxX - 8)) }, (_, index) => {
383
+ const ll = 8 + index;
384
+ return { x: ll, y: 0.9 * (ll - 8) };
385
+ });
386
+ return buildXYChart({
387
+ id: slugify(`atterberg-${liquidLimit}-${pi}`),
388
+ title: 'Atterberg plasticity chart',
389
+ xLabel: 'Liquid limit (%)',
390
+ yLabel: 'Plasticity index (%)',
391
+ xDomain: [0, maxX],
392
+ yDomain: [0, maxY],
393
+ series: [
394
+ { label: 'A-line', points: aLine, style: 'line', symbol: '*' },
395
+ { label: 'U-line', points: uLine, style: 'line', symbol: '+' },
396
+ { label: 'LL = 50', points: [{ x: 50, y: 0 }, { x: 50, y: maxY }], style: 'line', symbol: '|' },
397
+ { label: 'Sample point', points: [{ x: liquidLimit, y: pi }], style: 'scatter', symbol: 'o' },
398
+ ],
399
+ note: `${classifyPlasticityPoint(liquidLimit, pi)} | A-line PI = 0.73(LL - 20), U-line PI = 0.9(LL - 8)`,
400
+ });
401
+ }
402
+ export function buildMohrCircleChart(options) {
403
+ if (!Number.isFinite(options.sigma1) || !Number.isFinite(options.sigma3)) {
404
+ throw new Error('Mohr circle requires both --sigma1 and --sigma3.');
405
+ }
406
+ const sigma1 = Math.max(options.sigma1, options.sigma3);
407
+ const sigma3 = Math.min(options.sigma1, options.sigma3);
408
+ const center = (sigma1 + sigma3) / 2;
409
+ const radius = (sigma1 - sigma3) / 2;
410
+ const thetaSteps = 72;
411
+ const circle = Array.from({ length: thetaSteps + 1 }, (_, index) => {
412
+ const theta = (index / thetaSteps) * Math.PI * 2;
413
+ return {
414
+ x: center + radius * Math.cos(theta),
415
+ y: radius * Math.sin(theta),
416
+ };
417
+ });
418
+ const series = [
419
+ { label: 'Mohr circle', points: circle, style: 'line', symbol: '*' },
420
+ { label: 'Principal stresses', points: [{ x: sigma3, y: 0 }, { x: sigma1, y: 0 }], style: 'scatter', symbol: 'o' },
421
+ { label: 'Max shear', points: [{ x: center, y: radius }, { x: center, y: -radius }], style: 'scatter', symbol: 'x' },
422
+ ];
423
+ let maxEnvelope = radius;
424
+ if (Number.isFinite(options.cohesion) || Number.isFinite(options.frictionAngle)) {
425
+ const cohesion = options.cohesion ?? 0;
426
+ const frictionAngle = (options.frictionAngle ?? 0) * Math.PI / 180;
427
+ const maxX = Math.max(sigma1 * 1.1, sigma3 + radius * 2);
428
+ const envelope = Array.from({ length: 30 }, (_, index) => {
429
+ const x = (index / 29) * maxX;
430
+ return { x, y: cohesion + x * Math.tan(frictionAngle) };
431
+ });
432
+ maxEnvelope = Math.max(maxEnvelope, ...envelope.map((point) => point.y));
433
+ series.push({ label: 'Failure envelope', points: envelope, style: 'line', symbol: '+' });
434
+ }
435
+ const [xMin, xMax] = expandDomain(Math.min(0, sigma3 - radius * 0.2), Math.max(sigma1 + radius * 0.2, sigma1 * 1.1));
436
+ const yLimit = Math.max(radius, maxEnvelope) * 1.15 || 1;
437
+ return buildXYChart({
438
+ id: slugify(`mohr-circle-${sigma1}-${sigma3}`),
439
+ title: 'Mohr circle',
440
+ xLabel: 'Normal stress',
441
+ yLabel: 'Shear stress',
442
+ xDomain: [xMin, xMax],
443
+ yDomain: [-yLimit, yLimit],
444
+ series,
445
+ note: `Center = ${center.toFixed(2)}, radius = ${radius.toFixed(2)}, tau_max = ${radius.toFixed(2)}`,
446
+ });
447
+ }
194
448
  export function buildChartsFromJson(data, sourceName) {
195
449
  const charts = [];
196
450
  if (!isRecord(data)) {
@@ -277,6 +531,17 @@ export async function loadVisualizationSource(filePath, options) {
277
531
  const sourceName = basename(filePath, extension);
278
532
  if (extension === '.json') {
279
533
  const parsed = JSON.parse(readFileSync(filePath, 'utf-8'));
534
+ if (options?.template && Array.isArray(parsed) && parsed.every((item) => isRecord(item))) {
535
+ const charts = buildChartsFromTemplate(parsed, options.template, sourceName);
536
+ if (charts.length === 0) {
537
+ throw new Error(`Template "${options.template}" could not find the expected columns in ${filePath}.`);
538
+ }
539
+ return {
540
+ sourceType: 'json',
541
+ sourceName,
542
+ charts,
543
+ };
544
+ }
280
545
  return {
281
546
  sourceType: 'json',
282
547
  sourceName,
@@ -284,14 +549,21 @@ export async function loadVisualizationSource(filePath, options) {
284
549
  };
285
550
  }
286
551
  if (extension === '.csv') {
287
- return {
288
- sourceType: 'csv',
289
- sourceName,
290
- charts: buildChartsFromTable(rowsFromCsv(readFileSync(filePath, 'utf-8')), {
552
+ const rows = rowsFromCsv(readFileSync(filePath, 'utf-8'));
553
+ const charts = options?.template
554
+ ? buildChartsFromTemplate(rows, options.template, sourceName)
555
+ : buildChartsFromTable(rows, {
291
556
  sourceName,
292
557
  xColumn: options?.xColumn,
293
558
  yColumns: options?.yColumns,
294
- }),
559
+ });
560
+ if (options?.template && charts.length === 0) {
561
+ throw new Error(`Template "${options.template}" could not find the expected columns in ${filePath}.`);
562
+ }
563
+ return {
564
+ sourceType: 'csv',
565
+ sourceName,
566
+ charts,
295
567
  };
296
568
  }
297
569
  if (extension === '.xlsx') {
@@ -303,12 +575,20 @@ export async function loadVisualizationSource(filePath, options) {
303
575
  if (worksheets.length === 0) {
304
576
  throw new Error(`Sheet "${options?.sheetName}" not found in ${filePath}.`);
305
577
  }
306
- const charts = worksheets.flatMap((worksheet) => buildChartsFromTable(rowsFromWorksheet(worksheet), {
307
- sourceName: `${sourceName}-${worksheet.name}`,
308
- titlePrefix: `${worksheet.name} sheet`,
309
- xColumn: options?.xColumn,
310
- yColumns: options?.yColumns,
311
- }));
578
+ const charts = worksheets.flatMap((worksheet) => {
579
+ const rows = rowsFromWorksheet(worksheet);
580
+ return options?.template
581
+ ? buildChartsFromTemplate(rows, options.template, `${sourceName}-${worksheet.name}`)
582
+ : buildChartsFromTable(rows, {
583
+ sourceName: `${sourceName}-${worksheet.name}`,
584
+ titlePrefix: `${worksheet.name} sheet`,
585
+ xColumn: options?.xColumn,
586
+ yColumns: options?.yColumns,
587
+ });
588
+ });
589
+ if (options?.template && charts.length === 0) {
590
+ throw new Error(`Template "${options.template}" could not find the expected columns in ${filePath}.`);
591
+ }
312
592
  return {
313
593
  sourceType: 'xlsx',
314
594
  sourceName,
@@ -1 +1 @@
1
- {"version":3,"file":"viz.js","sourceRoot":"","sources":["../../src/util/viz.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,OAAO,MAAM,SAAS,CAAC;AA4B9B,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,KAAK;SACT,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK;SACT,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;SACnC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE;SACN,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACxC,OAAO,IAAI,GAAG,CAAC;gBACf,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,CAAC,QAAQ,CAAC;YACvB,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,OAAO,GAAG,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QAED,OAAO,IAAI,IAAI,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,WAAW,CAAC,OAAe;IAClC,MAAM,KAAK,GAAG,OAAO;SAClB,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAErC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACjC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,SAA4B;IACrD,MAAM,IAAI,GAAe,EAAE,CAAC;IAC5B,IAAI,OAAO,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE;QACnC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEpE,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACtF,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;gBAC1B,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACvC,CAAC;iBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;gBACjE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAE,KAA4B,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAqC,CAAC;YACrE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;YACjF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAgB;IAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;QAC/B,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;YACxB,IAAI,GAAG,IAAI,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC7C,SAAS;YACX,CAAC;YACD,aAAa,IAAI,CAAC,CAAC;YACnB,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;gBACjC,YAAY,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,aAAa,GAAG,CAAC,IAAI,YAAY,KAAK,aAAa,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAgB,EAAE,OAA0B;IAC/E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;QACzE,CAAC,CAAC,OAAO,CAAC,OAAO;QACjB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAEtB,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM;QACxC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,OAAO,CAAC;QAC5F,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC;IAE3D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,cAAc,GAAG,IAAI;SACxB,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAClB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAClE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAa,EAAE,UAAU,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC;QACnD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC;QACpB,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,GAAG,EAAmB,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC;SAC9C,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAE/D,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC;IAC9D,MAAM,cAAc,GAAG,QAAQ;SAC5B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAElF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,WAAW,CAAC;YACxD,KAAK,EAAE,GAAG,WAAW,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,OAAO,CAAC,EAAE;YACvG,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,OAAO;YACf,OAAO;YACP,MAAM,EAAE,cAAc;YACtB,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;YAC7C,IAAI,EAAE,uBAAuB,cAAc,CAAC,MAAM,UAAU;SAC7D,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACzD,KAAK,EAAE,GAAG,WAAW,KAAK,WAAW,CAAC,MAAM,CAAC,OAAO,WAAW,CAAC,OAAO,CAAC,EAAE;YAC1E,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;YAC3B,OAAO;YACP,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,MAAM,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7B,IAAI,EAAE,YAAY,cAAc,CAAC,MAAM,EAAE;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAa,EAAE,UAAkB;IACnE,MAAM,MAAM,GAAgB,EAAE,CAAC;IAE/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAChE,OAAO,oBAAoB,CAAC,IAAkB,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC9F,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACzD,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC9C,UAAU,EAAE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAChD,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;SACxF,CAAC,CAAC,CAAC;QACJ,MAAM,CAAC,IAAI,CACT,GAAG,oBAAoB,CAAC,eAAe,EAAE;YACvC,UAAU,EAAE,GAAG,UAAU,kBAAkB;YAC3C,WAAW,EAAE,0BAA0B;YACvC,OAAO,EAAE,WAAW;YACpB,QAAQ,EAAE,CAAC,YAAY,EAAE,sBAAsB,CAAC;SACjD,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAChF,MAAM,CAAC,IAAI,CACT,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAqB,EAAE;YAClD,UAAU,EAAE,GAAG,UAAU,UAAU;YACnC,WAAW,EAAE,oBAAoB;YACjC,OAAO,EAAE,GAAG;YACZ,QAAQ,EAAE,CAAC,YAAY,CAAC;SACzB,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,MAAoB,CAAC;QAC5C,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,IAAI,UAAU,IAAI,gBAAgB,IAAI,UAAU,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;YAC1G,MAAM,CAAC,IAAI,CACT,GAAG,oBAAoB,CAAC,SAAS,EAAE;gBACjC,UAAU,EAAE,GAAG,UAAU,eAAe;gBACxC,WAAW,EAAE,0BAA0B;gBACvC,OAAO,EAAE,OAAO;gBAChB,QAAQ,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC;aACrD,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC5G,MAAM,IAAI,GAAI,IAAI,CAAC,qBAAoC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACjF,MAAM,UAAU,GAAG,KAAK;iBACrB,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;iBACnB,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAErF,OAAO;gBACL,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACtC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;gBAC9D,eAAe,EAAE,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC1D,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,GAAG;aAC9D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CACT,GAAG,oBAAoB,CAAC,IAAI,EAAE;YAC5B,UAAU,EAAE,GAAG,UAAU,OAAO;YAChC,WAAW,EAAE,uBAAuB;YACpC,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,2BAA2B,CAAC;SAChF,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC1F,MAAM,CAAC,IAAI,CACT,GAAG,oBAAoB,CAAC,IAAI,CAAC,YAA0B,EAAE;YACvD,UAAU,EAAE,GAAG,UAAU,QAAQ;YACjC,WAAW,EAAE,mBAAmB;YAChC,OAAO,EAAE,aAAa;YACtB,QAAQ,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,CAAC;SAClE,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAClE,MAAM,CAAC,IAAI,CACT,GAAG,oBAAoB,CAAC,KAAmB,EAAE;gBAC3C,UAAU,EAAE,GAAG,UAAU,IAAI,GAAG,EAAE;gBAClC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC;aAC9B,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,QAAgB,EAChB,OAAuE;IAEvE,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEjD,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAY,CAAC;QACtE,OAAO;YACL,UAAU,EAAE,MAAM;YAClB,UAAU;YACV,MAAM,EAAE,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC;SAChD,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,UAAU;YACV,MAAM,EAAE,oBAAoB,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE;gBACzE,UAAU;gBACV,OAAO,EAAE,OAAO,EAAE,OAAO;gBACzB,QAAQ,EAAE,OAAO,EAAE,QAAQ;aAC5B,CAAC;SACH,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,OAAO,EAAE,SAAS;YACnC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,SAAS,CAAC;YACzE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAExB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,UAAU,OAAO,EAAE,SAAS,kBAAkB,QAAQ,GAAG,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAC9C,oBAAoB,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE;YACjD,UAAU,EAAE,GAAG,UAAU,IAAI,SAAS,CAAC,IAAI,EAAE;YAC7C,WAAW,EAAE,GAAG,SAAS,CAAC,IAAI,QAAQ;YACtC,OAAO,EAAE,OAAO,EAAE,OAAO;YACzB,QAAQ,EAAE,OAAO,EAAE,QAAQ;SAC5B,CAAC,CACH,CAAC;QAEF,OAAO;YACL,UAAU,EAAE,MAAM;YAClB,UAAU;YACV,MAAM;SACP,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,qCAAqC,QAAQ,8BAA8B,CAAC,CAAC;AAC/F,CAAC"}
1
+ {"version":3,"file":"viz.js","sourceRoot":"","sources":["../../src/util/viz.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,OAAO,MAAM,SAAS,CAAC;AAiD9B,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,KAAK;SACT,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK;SACT,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;SACnC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE;SACN,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACxC,OAAO,IAAI,GAAG,CAAC;gBACf,KAAK,IAAI,CAAC,CAAC;YACb,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,CAAC,QAAQ,CAAC;YACvB,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,OAAO,GAAG,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QAED,OAAO,IAAI,IAAI,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,WAAW,CAAC,OAAe;IAClC,MAAM,KAAK,GAAG,OAAO;SAClB,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAErC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACjC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,SAA4B;IACrD,MAAM,IAAI,GAAe,EAAE,CAAC;IAC5B,IAAI,OAAO,GAAa,EAAE,CAAC;IAE3B,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE;QACnC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEpE,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACtF,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;gBAC1B,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACvC,CAAC;iBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;gBACjE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAE,KAA4B,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAqC,CAAC;YACrE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;YACjF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAgB;IAC3C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;QAC/B,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;YACxB,IAAI,GAAG,IAAI,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC7C,SAAS;YACX,CAAC;YACD,aAAa,IAAI,CAAC,CAAC;YACnB,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;gBACjC,YAAY,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,aAAa,GAAG,CAAC,IAAI,YAAY,KAAK,aAAa,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,UAAU,CAAC,OAAiB,EAAE,OAAiB;IACtD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,YAAY,CAAC,GAAW,EAAE,GAAW;IAC5C,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,GAAG,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,YAAY,CAAC,OAWrB;IACC,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,OAAO,CAAC,MAAM;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,QAAQ;QAClC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAgB,EAAE,OAA0B;IAC/E,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,cAAc,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;QACzE,CAAC,CAAC,OAAO,CAAC,OAAO;QACjB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAEtB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,MAAM;QACvC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,OAAO,CAAC;QAC5F,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;IAE1D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,cAAc,GAAG,IAAI;SACxB,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAClB,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;QACzD,MAAM,MAAM,GAAa,EAAE,UAAU,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QAChE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAE/D,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC;IAC9D,MAAM,cAAc,GAAG,QAAQ;SAC5B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAElF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,WAAW,CAAC;YACxD,KAAK,EAAE,GAAG,WAAW,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,OAAO,CAAC,EAAE;YACvG,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,QAAQ;YACd,OAAO;YACP,MAAM,EAAE,cAAc;YACtB,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;YAC7C,IAAI,EAAE,uBAAuB,cAAc,CAAC,MAAM,UAAU;SAC7D,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACzD,KAAK,EAAE,GAAG,WAAW,KAAK,WAAW,CAAC,MAAM,CAAC,OAAO,WAAW,CAAC,OAAO,CAAC,EAAE;YAC1E,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;YAC3B,IAAI,EAAE,QAAQ;YACd,OAAO;YACP,MAAM,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACvE,MAAM,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7B,IAAI,EAAE,YAAY,cAAc,CAAC,MAAM,EAAE;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAgB,EAAE,UAAkB;IAChE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,EAAE;QACzC,kBAAkB;QAClB,kBAAkB;QAClB,eAAe;QACf,uBAAuB;QACvB,GAAG;QACH,IAAI;KACL,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,EAAE;QACxC,aAAa;QACb,mBAAmB;QACnB,mBAAmB;QACnB,iBAAiB;QACjB,SAAS;QACT,IAAI;KACL,CAAC,CAAC;IAEH,IAAI,CAAC,cAAc,IAAI,CAAC,aAAa,EAAE,CAAC;QACtC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,IAAI;SAChB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACb,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG;QACpD,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG;KACpD,CAAC,CAAC;SACF,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACvE,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE3C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAClG,OAAO;QACL,YAAY,CAAC;YACX,EAAE,EAAE,OAAO,CAAC,GAAG,UAAU,mBAAmB,CAAC;YAC7C,KAAK,EAAE,GAAG,UAAU,qCAAqC;YACzD,MAAM,EAAE,sBAAsB;YAC9B,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC;YAClC,MAAM,EAAE;gBACN,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;gBACjE,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE;aAClF;YACD,IAAI,EAAE,oBAAoB,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;SACxG,CAAC;KACH,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAgB,EAAE,UAAkB;IAC/D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,EAAE;QACrC,kBAAkB;QAClB,eAAe;QACf,aAAa;QACb,UAAU;QACV,YAAY;QACZ,SAAS;KACV,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,EAAE;QACxC,iBAAiB;QACjB,iBAAiB;QACjB,eAAe;QACf,eAAe;QACf,SAAS;QACT,OAAO;KACR,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,IAAI,CAAC,aAAa,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,IAAI;SAChB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACb,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG;QAChD,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG;KACpD,CAAC,CAAC;SACF,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;SACtF,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE3C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5H,OAAO;QACL,YAAY,CAAC;YACX,EAAE,EAAE,OAAO,CAAC,GAAG,UAAU,kBAAkB,CAAC;YAC5C,KAAK,EAAE,GAAG,UAAU,iCAAiC;YACrD,MAAM,EAAE,oBAAoB;YAC5B,MAAM,EAAE,qBAAqB;YAC7B,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;YACrB,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC;YACjB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;YAC1E,IAAI,EAAE,4DAA4D;SACnE,CAAC;KACH,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,IAAgB,EAAE,UAAkB;IAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACtF,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAAG;QACf,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;QAC1E,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;QAC3E,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAC3D,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,mBAAmB,CAAC,CAAC;QACjE,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;KACnD,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAErD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,oBAAoB,CAAC,IAAI,EAAE;QAChC,UAAU,EAAE,GAAG,UAAU,MAAM;QAC/B,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE,WAAW;QACpB,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAgB,EAAE,QAAuB,EAAE,UAAkB;IAC5F,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,YAAY;YACf,OAAO,oBAAoB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAChD,KAAK,WAAW;YACd,OAAO,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC/C,KAAK,KAAK;YACR,OAAO,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC1C;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,WAAmB,EAAE,eAAuB;IAC3E,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;IACxC,IAAI,WAAW,GAAG,EAAE,EAAE,CAAC;QACrB,IAAI,eAAe,GAAG,KAAK,IAAI,eAAe,GAAG,CAAC;YAAE,OAAO,WAAW,CAAC;QACvE,IAAI,eAAe,GAAG,CAAC,IAAI,eAAe,GAAG,KAAK;YAAE,OAAO,WAAW,CAAC;QACvE,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,OAAO,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAA8B;IAChE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACxC,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,CACjD,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CACpF,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,EAAE,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QACnF,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;QACtB,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QAClF,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;QACrB,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC;QAClB,EAAE,EAAE,OAAO,CAAC,aAAa,WAAW,IAAI,EAAE,EAAE,CAAC;QAC7C,KAAK,EAAE,4BAA4B;QACnC,MAAM,EAAE,kBAAkB;QAC1B,MAAM,EAAE,sBAAsB;QAC9B,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC;QAClB,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC;QAClB,MAAM,EAAE;YACN,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;YAC9D,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;YAC9D,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;YAC/F,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE;SAC9F;QACD,IAAI,EAAE,GAAG,uBAAuB,CAAC,WAAW,EAAE,EAAE,CAAC,uDAAuD;KACzG,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAA0B;IAC7D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QACjE,MAAM,KAAK,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACjD,OAAO;YACL,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YACpC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;SAC5B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAmB;QAC7B,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE;QACpE,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE;QAClH,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE;KACrH,CAAC;IAEF,IAAI,WAAW,GAAG,MAAM,CAAC;IACzB,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QAChF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;QACvC,MAAM,aAAa,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;QACnE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;YACvD,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;YAC9B,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;IACrH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;IAEzD,OAAO,YAAY,CAAC;QAClB,EAAE,EAAE,OAAO,CAAC,eAAe,MAAM,IAAI,MAAM,EAAE,CAAC;QAC9C,KAAK,EAAE,aAAa;QACpB,MAAM,EAAE,eAAe;QACvB,MAAM,EAAE,cAAc;QACtB,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC;QAC1B,MAAM;QACN,IAAI,EAAE,YAAY,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;KACrG,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAa,EAAE,UAAkB;IACnE,MAAM,MAAM,GAAgB,EAAE,CAAC;IAE/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAChE,OAAO,oBAAoB,CAAC,IAAkB,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC9F,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACzD,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC9C,UAAU,EAAE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAChD,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;SACxF,CAAC,CAAC,CAAC;QACJ,MAAM,CAAC,IAAI,CACT,GAAG,oBAAoB,CAAC,eAAe,EAAE;YACvC,UAAU,EAAE,GAAG,UAAU,kBAAkB;YAC3C,WAAW,EAAE,0BAA0B;YACvC,OAAO,EAAE,WAAW;YACpB,QAAQ,EAAE,CAAC,YAAY,EAAE,sBAAsB,CAAC;SACjD,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAChF,MAAM,CAAC,IAAI,CACT,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAqB,EAAE;YAClD,UAAU,EAAE,GAAG,UAAU,UAAU;YACnC,WAAW,EAAE,oBAAoB;YACjC,OAAO,EAAE,GAAG;YACZ,QAAQ,EAAE,CAAC,YAAY,CAAC;SACzB,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,MAAoB,CAAC;QAC5C,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,IAAI,UAAU,IAAI,gBAAgB,IAAI,UAAU,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;YAC1G,MAAM,CAAC,IAAI,CACT,GAAG,oBAAoB,CAAC,SAAS,EAAE;gBACjC,UAAU,EAAE,GAAG,UAAU,eAAe;gBACxC,WAAW,EAAE,0BAA0B;gBACvC,OAAO,EAAE,OAAO;gBAChB,QAAQ,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC;aACrD,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC5G,MAAM,IAAI,GAAI,IAAI,CAAC,qBAAoC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACjF,MAAM,UAAU,GAAG,KAAK;iBACrB,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;iBACnB,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAErF,OAAO;gBACL,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACtC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;gBAC9D,eAAe,EAAE,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;gBAC1D,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,GAAG;aAC9D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CACT,GAAG,oBAAoB,CAAC,IAAI,EAAE;YAC5B,UAAU,EAAE,GAAG,UAAU,OAAO;YAChC,WAAW,EAAE,uBAAuB;YACpC,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,2BAA2B,CAAC;SAChF,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC1F,MAAM,CAAC,IAAI,CACT,GAAG,oBAAoB,CAAC,IAAI,CAAC,YAA0B,EAAE;YACvD,UAAU,EAAE,GAAG,UAAU,QAAQ;YACjC,WAAW,EAAE,mBAAmB;YAChC,OAAO,EAAE,aAAa;YACtB,QAAQ,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,CAAC;SAClE,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAClE,MAAM,CAAC,IAAI,CACT,GAAG,oBAAoB,CAAC,KAAmB,EAAE;gBAC3C,UAAU,EAAE,GAAG,UAAU,IAAI,GAAG,EAAE;gBAClC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC;aAC9B,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,QAAgB,EAChB,OAAiG;IAEjG,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAClD,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEjD,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAY,CAAC;QAEtE,IAAI,OAAO,EAAE,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACzF,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAoB,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC3F,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,aAAa,OAAO,CAAC,QAAQ,4CAA4C,QAAQ,GAAG,CAAC,CAAC;YACxG,CAAC;YACD,OAAO;gBACL,UAAU,EAAE,MAAM;gBAClB,UAAU;gBACV,MAAM;aACP,CAAC;QACJ,CAAC;QAED,OAAO;YACL,UAAU,EAAE,MAAM;YAClB,UAAU;YACV,MAAM,EAAE,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC;SAChD,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,WAAW,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,OAAO,EAAE,QAAQ;YAC9B,CAAC,CAAC,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC;YAC7D,CAAC,CAAC,oBAAoB,CAAC,IAAI,EAAE;gBAC3B,UAAU;gBACV,OAAO,EAAE,OAAO,EAAE,OAAO;gBACzB,QAAQ,EAAE,OAAO,EAAE,QAAQ;aAC5B,CAAC,CAAC;QAEL,IAAI,OAAO,EAAE,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,aAAa,OAAO,CAAC,QAAQ,4CAA4C,QAAQ,GAAG,CAAC,CAAC;QACxG,CAAC;QAED,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,UAAU;YACV,MAAM;SACP,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,OAAO,EAAE,SAAS;YACnC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,SAAS,CAAC;YACzE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAExB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,UAAU,OAAO,EAAE,SAAS,kBAAkB,QAAQ,GAAG,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YAC9C,MAAM,IAAI,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC1C,OAAO,OAAO,EAAE,QAAQ;gBACtB,CAAC,CAAC,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,GAAG,UAAU,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;gBACpF,CAAC,CAAC,oBAAoB,CAAC,IAAI,EAAE;oBAC3B,UAAU,EAAE,GAAG,UAAU,IAAI,SAAS,CAAC,IAAI,EAAE;oBAC7C,WAAW,EAAE,GAAG,SAAS,CAAC,IAAI,QAAQ;oBACtC,OAAO,EAAE,OAAO,EAAE,OAAO;oBACzB,QAAQ,EAAE,OAAO,EAAE,QAAQ;iBAC5B,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,aAAa,OAAO,CAAC,QAAQ,4CAA4C,QAAQ,GAAG,CAAC,CAAC;QACxG,CAAC;QAED,OAAO;YACL,UAAU,EAAE,MAAM;YAClB,UAAU;YACV,MAAM;SACP,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,qCAAqC,QAAQ,8BAA8B,CAAC,CAAC;AAC/F,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "geotechcli",
3
- "version": "0.4.1",
3
+ "version": "0.4.3",
4
4
  "description": "AI-native CLI for geotechnical engineering",
5
5
  "type": "module",
6
6
  "bin": {