@uwmd/core 1.3.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.d.ts +14 -6
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +8 -4
- package/dist/browser.js.map +1 -1
- package/dist/capital-stack.d.ts +116 -0
- package/dist/capital-stack.d.ts.map +1 -0
- package/dist/capital-stack.js +227 -0
- package/dist/capital-stack.js.map +1 -0
- package/dist/cascade.d.ts +60 -6
- package/dist/cascade.d.ts.map +1 -1
- package/dist/cascade.js +93 -14
- package/dist/cascade.js.map +1 -1
- package/dist/cli.js +269 -11
- package/dist/cli.js.map +1 -1
- package/dist/composition.d.ts +182 -0
- package/dist/composition.d.ts.map +1 -0
- package/dist/composition.js +536 -0
- package/dist/composition.js.map +1 -0
- package/dist/context.js +23 -23
- package/dist/defaults.d.ts +18 -0
- package/dist/defaults.d.ts.map +1 -1
- package/dist/defaults.js +64 -0
- package/dist/defaults.js.map +1 -1
- package/dist/index.d.ts +14 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -4
- package/dist/index.js.map +1 -1
- package/dist/lite-bridge.d.ts +9 -0
- package/dist/lite-bridge.d.ts.map +1 -1
- package/dist/lite-bridge.js +44 -5
- package/dist/lite-bridge.js.map +1 -1
- package/dist/lite.js +37 -1
- package/dist/lite.js.map +1 -1
- package/dist/market-data.d.ts +134 -0
- package/dist/market-data.d.ts.map +1 -0
- package/dist/market-data.js +292 -0
- package/dist/market-data.js.map +1 -0
- package/dist/packs/index.d.ts +1 -0
- package/dist/packs/index.d.ts.map +1 -1
- package/dist/packs/index.js +3 -0
- package/dist/packs/index.js.map +1 -1
- package/dist/packs/mixed-use.d.ts +3 -0
- package/dist/packs/mixed-use.d.ts.map +1 -0
- package/dist/packs/mixed-use.js +204 -0
- package/dist/packs/mixed-use.js.map +1 -0
- package/dist/protocol.d.ts +57 -8
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +153 -4
- package/dist/protocol.js.map +1 -1
- package/dist/receipts.d.ts +189 -9
- package/dist/receipts.d.ts.map +1 -1
- package/dist/receipts.js +373 -14
- package/dist/receipts.js.map +1 -1
- package/dist/report.js +165 -165
- package/dist/types.d.ts +54 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/validator.d.ts.map +1 -1
- package/dist/validator.js +263 -6
- package/dist/validator.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/dist/report.js
CHANGED
|
@@ -55,17 +55,17 @@ export function renderReportHtml(parsed, opts = {}) {
|
|
|
55
55
|
const article = `<article class="uwmd-report" data-tier="${esc(tier)}">\n${body.join('\n')}\n</article>`;
|
|
56
56
|
const html = opts.fragment
|
|
57
57
|
? article
|
|
58
|
-
: `<!doctype html>
|
|
59
|
-
<html lang="en">
|
|
60
|
-
<head>
|
|
61
|
-
<meta charset="utf-8">
|
|
62
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
63
|
-
<title>${esc(title)} — ${tier === 'analyst' ? 'Credit Memo' : 'Lender Package'}</title>
|
|
64
|
-
<style>${REPORT_CSS}</style>
|
|
65
|
-
</head>
|
|
66
|
-
<body>
|
|
67
|
-
${article}
|
|
68
|
-
</body>
|
|
58
|
+
: `<!doctype html>
|
|
59
|
+
<html lang="en">
|
|
60
|
+
<head>
|
|
61
|
+
<meta charset="utf-8">
|
|
62
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
63
|
+
<title>${esc(title)} — ${tier === 'analyst' ? 'Credit Memo' : 'Lender Package'}</title>
|
|
64
|
+
<style>${REPORT_CSS}</style>
|
|
65
|
+
</head>
|
|
66
|
+
<body>
|
|
67
|
+
${article}
|
|
68
|
+
</body>
|
|
69
69
|
</html>`;
|
|
70
70
|
return { html, title, tier, sectionsRendered, sectionsSkipped };
|
|
71
71
|
}
|
|
@@ -87,9 +87,9 @@ function num(obj, path) {
|
|
|
87
87
|
return direct;
|
|
88
88
|
}
|
|
89
89
|
function section(id, heading, inner, subtitle) {
|
|
90
|
-
return `<section class="rpt-section" id="rpt-${esc(id)}">
|
|
91
|
-
<header class="rpt-section-head"><h2>${esc(heading)}</h2>${subtitle ? `<p class="rpt-subtitle">${esc(subtitle)}</p>` : ''}</header>
|
|
92
|
-
${inner}
|
|
90
|
+
return `<section class="rpt-section" id="rpt-${esc(id)}">
|
|
91
|
+
<header class="rpt-section-head"><h2>${esc(heading)}</h2>${subtitle ? `<p class="rpt-subtitle">${esc(subtitle)}</p>` : ''}</header>
|
|
92
|
+
${inner}
|
|
93
93
|
</section>`;
|
|
94
94
|
}
|
|
95
95
|
/** Prose paragraphs from `parsed.prose[id]`. The raw prose carries Markdown
|
|
@@ -182,17 +182,17 @@ function coverPage(ctx) {
|
|
|
182
182
|
.filter(([, v]) => v !== 'n/a')
|
|
183
183
|
.map(([k, v]) => `<div class="rpt-cover-fact"><span>${esc(k)}</span><strong>${esc(v)}</strong></div>`)
|
|
184
184
|
.join('');
|
|
185
|
-
return `<section class="rpt-cover" id="rpt-cover">
|
|
186
|
-
<div class="rpt-cover-rule"></div>
|
|
187
|
-
<p class="rpt-cover-doc">${esc(docName)}</p>
|
|
188
|
-
<h1>${esc(fm.deal_name ?? 'Untitled Deal')}</h1>
|
|
189
|
-
${address ? `<p class="rpt-cover-address">${esc(address)}</p>` : ''}
|
|
190
|
-
<div class="rpt-cover-facts">${facts}</div>
|
|
191
|
-
<div class="rpt-cover-foot">
|
|
192
|
-
${date ? `<p>Prepared ${esc(String(date).slice(0, 10))}</p>` : ''}
|
|
193
|
-
${preparedBy ? `<p>Prepared by ${esc(preparedBy)}</p>` : ''}
|
|
194
|
-
<p>Deal ID ${esc(fm.deal_id ?? 'n/a')} · .uw.md v${esc(fm.uw_version ?? '1.1')}</p>
|
|
195
|
-
</div>
|
|
185
|
+
return `<section class="rpt-cover" id="rpt-cover">
|
|
186
|
+
<div class="rpt-cover-rule"></div>
|
|
187
|
+
<p class="rpt-cover-doc">${esc(docName)}</p>
|
|
188
|
+
<h1>${esc(fm.deal_name ?? 'Untitled Deal')}</h1>
|
|
189
|
+
${address ? `<p class="rpt-cover-address">${esc(address)}</p>` : ''}
|
|
190
|
+
<div class="rpt-cover-facts">${facts}</div>
|
|
191
|
+
<div class="rpt-cover-foot">
|
|
192
|
+
${date ? `<p>Prepared ${esc(String(date).slice(0, 10))}</p>` : ''}
|
|
193
|
+
${preparedBy ? `<p>Prepared by ${esc(preparedBy)}</p>` : ''}
|
|
194
|
+
<p>Deal ID ${esc(fm.deal_id ?? 'n/a')} · .uw.md v${esc(fm.uw_version ?? '1.1')}</p>
|
|
195
|
+
</div>
|
|
196
196
|
</section>`;
|
|
197
197
|
}
|
|
198
198
|
function prettyToken(s) {
|
|
@@ -229,10 +229,10 @@ function executiveSummary(ctx) {
|
|
|
229
229
|
? `<p class="rpt-flags">${blocking.map((f) => badge(prettyToken(f), 'error')).join(' ')} ${flags.map((f) => badge(prettyToken(f), 'warn')).join(' ')}</p>`
|
|
230
230
|
: '';
|
|
231
231
|
const statusLine = `<p class="rpt-status">Stage: <strong>${esc(prettyToken(String(fm.deal_stage ?? 'draft')))}</strong> · Recommendation: <strong>${esc(prettyToken(String(fm.recommendation ?? 'pending')))}</strong> · Validation: <strong>${esc(validation.overall_status.toUpperCase())}</strong></p>`;
|
|
232
|
-
return section('executive_summary', 'Executive Summary', `${summaryTxt ? proseHtml(summaryTxt) : ''}
|
|
233
|
-
<div class="rpt-metric-grid">${grid}</div>
|
|
234
|
-
${thesis ? `<h3>Investment Thesis</h3>${proseHtml(thesis)}` : ''}
|
|
235
|
-
${statusLine}
|
|
232
|
+
return section('executive_summary', 'Executive Summary', `${summaryTxt ? proseHtml(summaryTxt) : ''}
|
|
233
|
+
<div class="rpt-metric-grid">${grid}</div>
|
|
234
|
+
${thesis ? `<h3>Investment Thesis</h3>${proseHtml(thesis)}` : ''}
|
|
235
|
+
${statusLine}
|
|
236
236
|
${flagHtml}`);
|
|
237
237
|
}
|
|
238
238
|
// ─── §7.1 / 3 — Property Overview ────────────────────────────────────────────
|
|
@@ -264,8 +264,8 @@ function propertyOverview(ctx) {
|
|
|
264
264
|
const amenityHtml = amenities?.length
|
|
265
265
|
? `<p class="rpt-amenities">${amenities.map((a) => badge(prettyToken(a))).join(' ')}</p>`
|
|
266
266
|
: '';
|
|
267
|
-
return section('property', 'Property Overview', `${proseHtml(prose)}
|
|
268
|
-
<div class="rpt-cols">${left}${right}</div>
|
|
267
|
+
return section('property', 'Property Overview', `${proseHtml(prose)}
|
|
268
|
+
<div class="rpt-cols">${left}${right}</div>
|
|
269
269
|
${amenityHtml}`);
|
|
270
270
|
}
|
|
271
271
|
// ─── §7.1 / 4 — Proforma / Cash Flow (noi_model) ─────────────────────────────
|
|
@@ -306,10 +306,10 @@ function proforma(ctx) {
|
|
|
306
306
|
}
|
|
307
307
|
const table = dataTable([{ label: 'Line Item' }, { label: 'Underwritten', align: 'right' }], rows);
|
|
308
308
|
// EGI / OpEx / NOI rendered as emphasized total rows
|
|
309
|
-
const totals = `<table class="rpt-table rpt-totals"><tbody>
|
|
310
|
-
<tr class="rpt-total-row"><td>Effective Gross Income</td><td class="al-right">${esc(money(num(c, 'income.effective_gross_income')))}</td></tr>
|
|
311
|
-
<tr class="rpt-total-row"><td>Total Operating Expenses</td><td class="al-right">(${esc(money(num(c, 'expenses.total_operating_expenses')))})</td></tr>
|
|
312
|
-
<tr class="rpt-total-row rpt-noi-row"><td>Net Operating Income</td><td class="al-right">${esc(money(deepGet(c, 'net_operating_income')))}</td></tr>
|
|
309
|
+
const totals = `<table class="rpt-table rpt-totals"><tbody>
|
|
310
|
+
<tr class="rpt-total-row"><td>Effective Gross Income</td><td class="al-right">${esc(money(num(c, 'income.effective_gross_income')))}</td></tr>
|
|
311
|
+
<tr class="rpt-total-row"><td>Total Operating Expenses</td><td class="al-right">(${esc(money(num(c, 'expenses.total_operating_expenses')))})</td></tr>
|
|
312
|
+
<tr class="rpt-total-row rpt-noi-row"><td>Net Operating Income</td><td class="al-right">${esc(money(deepGet(c, 'net_operating_income')))}</td></tr>
|
|
313
313
|
</tbody></table>`;
|
|
314
314
|
const stats = kvTable([
|
|
315
315
|
['NOI per unit', money(deepGet(c, 'noi_per_unit'))],
|
|
@@ -318,10 +318,10 @@ function proforma(ctx) {
|
|
|
318
318
|
['Expense ratio', pct(deepGet(c, 'expenses.expense_ratio') ?? deepGet(c, 'expense_ratio'))],
|
|
319
319
|
['vs. T-12 NOI', has(deepGet(c, 'vs_t12_noi')) ? `${money(deepGet(c, 'vs_t12_noi'))} (${pct(deepGet(c, 'vs_t12_variance_pct'))})` : 'n/a'],
|
|
320
320
|
], 'rpt-kv--compact');
|
|
321
|
-
return section('noi_model', 'Proforma / Underwritten Cash Flow', `${proseHtml(prose)}
|
|
322
|
-
<div class="rpt-cols rpt-cols--proforma">
|
|
323
|
-
<div>${table}${totals}</div>
|
|
324
|
-
<div>${stats}</div>
|
|
321
|
+
return section('noi_model', 'Proforma / Underwritten Cash Flow', `${proseHtml(prose)}
|
|
322
|
+
<div class="rpt-cols rpt-cols--proforma">
|
|
323
|
+
<div>${table}${totals}</div>
|
|
324
|
+
<div>${stats}</div>
|
|
325
325
|
</div>`);
|
|
326
326
|
}
|
|
327
327
|
function nonZero(v) {
|
|
@@ -517,9 +517,9 @@ function borrowerSummary(ctx) {
|
|
|
517
517
|
const verifiedNote = verified === false
|
|
518
518
|
? `<p class="rpt-note">${badge('Figures stated, not yet verified', 'warn')}</p>`
|
|
519
519
|
: '';
|
|
520
|
-
return section('borrower_sponsor', 'Borrower Summary', `${proseHtml(narrative)}
|
|
521
|
-
${principalTable}
|
|
522
|
-
<div class="rpt-cols">${finTable}${trackTable}</div>
|
|
520
|
+
return section('borrower_sponsor', 'Borrower Summary', `${proseHtml(narrative)}
|
|
521
|
+
${principalTable}
|
|
522
|
+
<div class="rpt-cols">${finTable}${trackTable}</div>
|
|
523
523
|
${verifiedNote}`);
|
|
524
524
|
}
|
|
525
525
|
// ─── §7.1 / 9 — Exit Analysis ────────────────────────────────────────────────
|
|
@@ -590,7 +590,7 @@ function assumptionsDisclosures(ctx) {
|
|
|
590
590
|
.join('');
|
|
591
591
|
table = `<table class="rpt-table"><thead><tr>${head.map((c) => `<th class="al-${c.align ?? 'left'}">${esc(c.label)}</th>`).join('')}</tr></thead><tbody>${body}</tbody></table>`;
|
|
592
592
|
}
|
|
593
|
-
return section('assumptions', 'Assumptions & Disclosures', `${table}
|
|
593
|
+
return section('assumptions', 'Assumptions & Disclosures', `${table}
|
|
594
594
|
<div class="rpt-disclaimer"><h3>Disclosures</h3><p>${esc(disclaimer)}</p></div>`);
|
|
595
595
|
}
|
|
596
596
|
// ─── §7.2 — Credit Memo additions ────────────────────────────────────────────
|
|
@@ -798,127 +798,127 @@ function appendix(ctx) {
|
|
|
798
798
|
}
|
|
799
799
|
// ─── Stylesheet ───────────────────────────────────────────────────────────────
|
|
800
800
|
// Exported so fragment-mode hosts (web editor preview) can include it once.
|
|
801
|
-
export const REPORT_CSS = `
|
|
802
|
-
:root {
|
|
803
|
-
--rpt-ink: #1a2332;
|
|
804
|
-
--rpt-muted: #5b6b7f;
|
|
805
|
-
--rpt-accent: #1e3a5f;
|
|
806
|
-
--rpt-accent-soft: #eef2f7;
|
|
807
|
-
--rpt-rule: #d7dee8;
|
|
808
|
-
--rpt-ok: #1d6f42;
|
|
809
|
-
--rpt-warn: #8a6d1a;
|
|
810
|
-
--rpt-error: #9b2226;
|
|
811
|
-
--rpt-paper: #ffffff;
|
|
812
|
-
}
|
|
813
|
-
.uwmd-report {
|
|
814
|
-
font-family: "Source Sans 3", "Segoe UI", system-ui, -apple-system, sans-serif;
|
|
815
|
-
color: var(--rpt-ink);
|
|
816
|
-
background: var(--rpt-paper);
|
|
817
|
-
max-width: 52rem;
|
|
818
|
-
margin: 0 auto;
|
|
819
|
-
padding: 2rem 2.5rem;
|
|
820
|
-
font-size: 0.875rem;
|
|
821
|
-
line-height: 1.55;
|
|
822
|
-
}
|
|
823
|
-
.uwmd-report h1, .uwmd-report h2, .uwmd-report h3 {
|
|
824
|
-
font-family: Georgia, "Times New Roman", serif;
|
|
825
|
-
color: var(--rpt-accent);
|
|
826
|
-
font-weight: 600;
|
|
827
|
-
margin: 0;
|
|
828
|
-
}
|
|
829
|
-
.uwmd-report h3 { font-size: 0.95rem; margin: 1.1rem 0 0.4rem; }
|
|
830
|
-
|
|
831
|
-
/* Cover */
|
|
832
|
-
.rpt-cover { padding: 5rem 0 3rem; }
|
|
833
|
-
.rpt-cover-rule { height: 4px; width: 4.5rem; background: var(--rpt-accent); margin-bottom: 2.25rem; }
|
|
834
|
-
.rpt-cover-doc {
|
|
835
|
-
text-transform: uppercase; letter-spacing: 0.22em; font-size: 0.72rem;
|
|
836
|
-
color: var(--rpt-muted); margin: 0 0 0.6rem;
|
|
837
|
-
}
|
|
838
|
-
.rpt-cover h1 { font-size: 2.1rem; line-height: 1.15; }
|
|
839
|
-
.rpt-cover-address { color: var(--rpt-muted); font-size: 1rem; margin: 0.5rem 0 2.5rem; }
|
|
840
|
-
.rpt-cover-facts {
|
|
841
|
-
display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px;
|
|
842
|
-
background: var(--rpt-rule); border: 1px solid var(--rpt-rule); margin-bottom: 3rem;
|
|
843
|
-
}
|
|
844
|
-
.rpt-cover-fact { background: var(--rpt-paper); padding: 0.7rem 0.9rem; }
|
|
845
|
-
.rpt-cover-fact span { display: block; font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--rpt-muted); }
|
|
846
|
-
.rpt-cover-fact strong { font-size: 1rem; font-variant-numeric: tabular-nums; }
|
|
847
|
-
.rpt-cover-foot { color: var(--rpt-muted); font-size: 0.78rem; }
|
|
848
|
-
.rpt-cover-foot p { margin: 0.15rem 0; }
|
|
849
|
-
|
|
850
|
-
/* Sections */
|
|
851
|
-
.rpt-section { margin: 2.25rem 0; }
|
|
852
|
-
.rpt-section-head { border-bottom: 2px solid var(--rpt-accent); padding-bottom: 0.35rem; margin-bottom: 0.9rem; }
|
|
853
|
-
.rpt-section-head h2 { font-size: 1.25rem; }
|
|
854
|
-
.rpt-subtitle { color: var(--rpt-muted); font-size: 0.78rem; margin: 0.2rem 0 0; }
|
|
855
|
-
.rpt-prose { margin: 0.5rem 0; }
|
|
856
|
-
.rpt-status, .rpt-note { font-size: 0.82rem; color: var(--rpt-muted); margin: 0.6rem 0 0; }
|
|
857
|
-
.rpt-flags { margin: 0.5rem 0 0; }
|
|
858
|
-
.rpt-list { margin: 0.3rem 0 0 1.1rem; padding: 0; }
|
|
859
|
-
.rpt-list li { margin: 0.25rem 0; }
|
|
860
|
-
|
|
861
|
-
/* Metric grid */
|
|
862
|
-
.rpt-metric-grid {
|
|
863
|
-
display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px;
|
|
864
|
-
background: var(--rpt-rule); border: 1px solid var(--rpt-rule); margin: 0.9rem 0;
|
|
865
|
-
}
|
|
866
|
-
.rpt-metric { background: var(--rpt-accent-soft); padding: 0.65rem 0.85rem; }
|
|
867
|
-
.rpt-metric span { display: block; font-size: 0.66rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--rpt-muted); }
|
|
868
|
-
.rpt-metric strong { font-size: 1.05rem; font-variant-numeric: tabular-nums; color: var(--rpt-accent); }
|
|
869
|
-
|
|
870
|
-
/* Tables */
|
|
871
|
-
.uwmd-report table { border-collapse: collapse; width: 100%; margin: 0.6rem 0; font-variant-numeric: tabular-nums; }
|
|
872
|
-
.rpt-table th, .rpt-table td { padding: 0.32rem 0.55rem; border-bottom: 1px solid var(--rpt-rule); }
|
|
873
|
-
.rpt-table thead th {
|
|
874
|
-
background: var(--rpt-accent); color: #fff; font-size: 0.7rem; text-transform: uppercase;
|
|
875
|
-
letter-spacing: 0.06em; text-align: left; font-weight: 600;
|
|
876
|
-
}
|
|
877
|
-
.rpt-table tbody tr:nth-child(even) { background: #f7f9fc; }
|
|
878
|
-
.rpt-table tfoot td { font-weight: 700; border-top: 2px solid var(--rpt-accent); border-bottom: none; }
|
|
879
|
-
.al-right { text-align: right; }
|
|
880
|
-
.al-center { text-align: center; }
|
|
881
|
-
.al-left { text-align: left; }
|
|
882
|
-
.rpt-kv th { text-align: left; font-weight: 600; color: var(--rpt-muted); width: 46%; padding: 0.28rem 0.55rem 0.28rem 0; border-bottom: 1px solid var(--rpt-rule); font-size: 0.8rem; }
|
|
883
|
-
.rpt-kv td { padding: 0.28rem 0; border-bottom: 1px solid var(--rpt-rule); }
|
|
884
|
-
.rpt-kv--compact th, .rpt-kv--compact td { font-size: 0.78rem; padding-top: 0.22rem; padding-bottom: 0.22rem; }
|
|
885
|
-
.rpt-totals { margin-top: -0.4rem; }
|
|
886
|
-
.rpt-total-row td { font-weight: 700; padding: 0.32rem 0.55rem; border-bottom: 1px solid var(--rpt-rule); }
|
|
887
|
-
.rpt-noi-row td { border-top: 2px solid var(--rpt-accent); font-size: 0.95rem; color: var(--rpt-accent); }
|
|
888
|
-
.rpt-basis { font-size: 0.74rem; color: var(--rpt-muted); }
|
|
889
|
-
|
|
890
|
-
/* Layout */
|
|
891
|
-
.rpt-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.6rem; align-items: start; }
|
|
892
|
-
.rpt-cols--proforma { grid-template-columns: 3fr 2fr; }
|
|
893
|
-
@media (max-width: 640px) { .rpt-cols, .rpt-cols--proforma { grid-template-columns: 1fr; } }
|
|
894
|
-
|
|
895
|
-
/* Badges */
|
|
896
|
-
.rpt-badge {
|
|
897
|
-
display: inline-block; font-size: 0.66rem; font-weight: 600; letter-spacing: 0.04em;
|
|
898
|
-
padding: 0.12rem 0.5rem; border-radius: 999px; border: 1px solid var(--rpt-rule);
|
|
899
|
-
background: var(--rpt-accent-soft); color: var(--rpt-muted); margin: 0.1rem 0;
|
|
900
|
-
}
|
|
901
|
-
.rpt-badge--ok { color: var(--rpt-ok); border-color: #bcd9c8; background: #ecf6f0; }
|
|
902
|
-
.rpt-badge--warn { color: var(--rpt-warn); border-color: #e4d5a3; background: #faf5e3; }
|
|
903
|
-
.rpt-badge--error { color: var(--rpt-error); border-color: #e5b4b6; background: #fbeaeb; }
|
|
904
|
-
.rpt-badge--info { color: var(--rpt-accent); border-color: #c3d2e4; background: var(--rpt-accent-soft); }
|
|
905
|
-
|
|
906
|
-
/* Disclaimer */
|
|
907
|
-
.rpt-disclaimer { margin-top: 1.2rem; padding: 0.9rem 1.1rem; background: var(--rpt-accent-soft); border-left: 3px solid var(--rpt-accent); }
|
|
908
|
-
.rpt-disclaimer h3 { margin-top: 0; }
|
|
909
|
-
.rpt-disclaimer p { font-size: 0.76rem; color: var(--rpt-muted); margin: 0.3rem 0 0; }
|
|
910
|
-
.rpt-amenities { margin: 0.6rem 0 0; }
|
|
911
|
-
|
|
912
|
-
/* Print */
|
|
913
|
-
@page { size: letter; margin: 0.75in; }
|
|
914
|
-
@media print {
|
|
915
|
-
.uwmd-report { max-width: none; padding: 0; font-size: 10pt; }
|
|
916
|
-
.rpt-cover { page-break-after: always; padding-top: 2.5in; }
|
|
917
|
-
.rpt-section { break-inside: avoid-page; margin: 1.4rem 0; }
|
|
918
|
-
.rpt-section-head { break-after: avoid-page; }
|
|
919
|
-
.rpt-table thead th { background: var(--rpt-accent) !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
|
|
920
|
-
.rpt-metric, .rpt-disclaimer, .rpt-badge { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
|
|
921
|
-
a { color: inherit; text-decoration: none; }
|
|
922
|
-
}
|
|
801
|
+
export const REPORT_CSS = `
|
|
802
|
+
:root {
|
|
803
|
+
--rpt-ink: #1a2332;
|
|
804
|
+
--rpt-muted: #5b6b7f;
|
|
805
|
+
--rpt-accent: #1e3a5f;
|
|
806
|
+
--rpt-accent-soft: #eef2f7;
|
|
807
|
+
--rpt-rule: #d7dee8;
|
|
808
|
+
--rpt-ok: #1d6f42;
|
|
809
|
+
--rpt-warn: #8a6d1a;
|
|
810
|
+
--rpt-error: #9b2226;
|
|
811
|
+
--rpt-paper: #ffffff;
|
|
812
|
+
}
|
|
813
|
+
.uwmd-report {
|
|
814
|
+
font-family: "Source Sans 3", "Segoe UI", system-ui, -apple-system, sans-serif;
|
|
815
|
+
color: var(--rpt-ink);
|
|
816
|
+
background: var(--rpt-paper);
|
|
817
|
+
max-width: 52rem;
|
|
818
|
+
margin: 0 auto;
|
|
819
|
+
padding: 2rem 2.5rem;
|
|
820
|
+
font-size: 0.875rem;
|
|
821
|
+
line-height: 1.55;
|
|
822
|
+
}
|
|
823
|
+
.uwmd-report h1, .uwmd-report h2, .uwmd-report h3 {
|
|
824
|
+
font-family: Georgia, "Times New Roman", serif;
|
|
825
|
+
color: var(--rpt-accent);
|
|
826
|
+
font-weight: 600;
|
|
827
|
+
margin: 0;
|
|
828
|
+
}
|
|
829
|
+
.uwmd-report h3 { font-size: 0.95rem; margin: 1.1rem 0 0.4rem; }
|
|
830
|
+
|
|
831
|
+
/* Cover */
|
|
832
|
+
.rpt-cover { padding: 5rem 0 3rem; }
|
|
833
|
+
.rpt-cover-rule { height: 4px; width: 4.5rem; background: var(--rpt-accent); margin-bottom: 2.25rem; }
|
|
834
|
+
.rpt-cover-doc {
|
|
835
|
+
text-transform: uppercase; letter-spacing: 0.22em; font-size: 0.72rem;
|
|
836
|
+
color: var(--rpt-muted); margin: 0 0 0.6rem;
|
|
837
|
+
}
|
|
838
|
+
.rpt-cover h1 { font-size: 2.1rem; line-height: 1.15; }
|
|
839
|
+
.rpt-cover-address { color: var(--rpt-muted); font-size: 1rem; margin: 0.5rem 0 2.5rem; }
|
|
840
|
+
.rpt-cover-facts {
|
|
841
|
+
display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px;
|
|
842
|
+
background: var(--rpt-rule); border: 1px solid var(--rpt-rule); margin-bottom: 3rem;
|
|
843
|
+
}
|
|
844
|
+
.rpt-cover-fact { background: var(--rpt-paper); padding: 0.7rem 0.9rem; }
|
|
845
|
+
.rpt-cover-fact span { display: block; font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--rpt-muted); }
|
|
846
|
+
.rpt-cover-fact strong { font-size: 1rem; font-variant-numeric: tabular-nums; }
|
|
847
|
+
.rpt-cover-foot { color: var(--rpt-muted); font-size: 0.78rem; }
|
|
848
|
+
.rpt-cover-foot p { margin: 0.15rem 0; }
|
|
849
|
+
|
|
850
|
+
/* Sections */
|
|
851
|
+
.rpt-section { margin: 2.25rem 0; }
|
|
852
|
+
.rpt-section-head { border-bottom: 2px solid var(--rpt-accent); padding-bottom: 0.35rem; margin-bottom: 0.9rem; }
|
|
853
|
+
.rpt-section-head h2 { font-size: 1.25rem; }
|
|
854
|
+
.rpt-subtitle { color: var(--rpt-muted); font-size: 0.78rem; margin: 0.2rem 0 0; }
|
|
855
|
+
.rpt-prose { margin: 0.5rem 0; }
|
|
856
|
+
.rpt-status, .rpt-note { font-size: 0.82rem; color: var(--rpt-muted); margin: 0.6rem 0 0; }
|
|
857
|
+
.rpt-flags { margin: 0.5rem 0 0; }
|
|
858
|
+
.rpt-list { margin: 0.3rem 0 0 1.1rem; padding: 0; }
|
|
859
|
+
.rpt-list li { margin: 0.25rem 0; }
|
|
860
|
+
|
|
861
|
+
/* Metric grid */
|
|
862
|
+
.rpt-metric-grid {
|
|
863
|
+
display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px;
|
|
864
|
+
background: var(--rpt-rule); border: 1px solid var(--rpt-rule); margin: 0.9rem 0;
|
|
865
|
+
}
|
|
866
|
+
.rpt-metric { background: var(--rpt-accent-soft); padding: 0.65rem 0.85rem; }
|
|
867
|
+
.rpt-metric span { display: block; font-size: 0.66rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--rpt-muted); }
|
|
868
|
+
.rpt-metric strong { font-size: 1.05rem; font-variant-numeric: tabular-nums; color: var(--rpt-accent); }
|
|
869
|
+
|
|
870
|
+
/* Tables */
|
|
871
|
+
.uwmd-report table { border-collapse: collapse; width: 100%; margin: 0.6rem 0; font-variant-numeric: tabular-nums; }
|
|
872
|
+
.rpt-table th, .rpt-table td { padding: 0.32rem 0.55rem; border-bottom: 1px solid var(--rpt-rule); }
|
|
873
|
+
.rpt-table thead th {
|
|
874
|
+
background: var(--rpt-accent); color: #fff; font-size: 0.7rem; text-transform: uppercase;
|
|
875
|
+
letter-spacing: 0.06em; text-align: left; font-weight: 600;
|
|
876
|
+
}
|
|
877
|
+
.rpt-table tbody tr:nth-child(even) { background: #f7f9fc; }
|
|
878
|
+
.rpt-table tfoot td { font-weight: 700; border-top: 2px solid var(--rpt-accent); border-bottom: none; }
|
|
879
|
+
.al-right { text-align: right; }
|
|
880
|
+
.al-center { text-align: center; }
|
|
881
|
+
.al-left { text-align: left; }
|
|
882
|
+
.rpt-kv th { text-align: left; font-weight: 600; color: var(--rpt-muted); width: 46%; padding: 0.28rem 0.55rem 0.28rem 0; border-bottom: 1px solid var(--rpt-rule); font-size: 0.8rem; }
|
|
883
|
+
.rpt-kv td { padding: 0.28rem 0; border-bottom: 1px solid var(--rpt-rule); }
|
|
884
|
+
.rpt-kv--compact th, .rpt-kv--compact td { font-size: 0.78rem; padding-top: 0.22rem; padding-bottom: 0.22rem; }
|
|
885
|
+
.rpt-totals { margin-top: -0.4rem; }
|
|
886
|
+
.rpt-total-row td { font-weight: 700; padding: 0.32rem 0.55rem; border-bottom: 1px solid var(--rpt-rule); }
|
|
887
|
+
.rpt-noi-row td { border-top: 2px solid var(--rpt-accent); font-size: 0.95rem; color: var(--rpt-accent); }
|
|
888
|
+
.rpt-basis { font-size: 0.74rem; color: var(--rpt-muted); }
|
|
889
|
+
|
|
890
|
+
/* Layout */
|
|
891
|
+
.rpt-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.6rem; align-items: start; }
|
|
892
|
+
.rpt-cols--proforma { grid-template-columns: 3fr 2fr; }
|
|
893
|
+
@media (max-width: 640px) { .rpt-cols, .rpt-cols--proforma { grid-template-columns: 1fr; } }
|
|
894
|
+
|
|
895
|
+
/* Badges */
|
|
896
|
+
.rpt-badge {
|
|
897
|
+
display: inline-block; font-size: 0.66rem; font-weight: 600; letter-spacing: 0.04em;
|
|
898
|
+
padding: 0.12rem 0.5rem; border-radius: 999px; border: 1px solid var(--rpt-rule);
|
|
899
|
+
background: var(--rpt-accent-soft); color: var(--rpt-muted); margin: 0.1rem 0;
|
|
900
|
+
}
|
|
901
|
+
.rpt-badge--ok { color: var(--rpt-ok); border-color: #bcd9c8; background: #ecf6f0; }
|
|
902
|
+
.rpt-badge--warn { color: var(--rpt-warn); border-color: #e4d5a3; background: #faf5e3; }
|
|
903
|
+
.rpt-badge--error { color: var(--rpt-error); border-color: #e5b4b6; background: #fbeaeb; }
|
|
904
|
+
.rpt-badge--info { color: var(--rpt-accent); border-color: #c3d2e4; background: var(--rpt-accent-soft); }
|
|
905
|
+
|
|
906
|
+
/* Disclaimer */
|
|
907
|
+
.rpt-disclaimer { margin-top: 1.2rem; padding: 0.9rem 1.1rem; background: var(--rpt-accent-soft); border-left: 3px solid var(--rpt-accent); }
|
|
908
|
+
.rpt-disclaimer h3 { margin-top: 0; }
|
|
909
|
+
.rpt-disclaimer p { font-size: 0.76rem; color: var(--rpt-muted); margin: 0.3rem 0 0; }
|
|
910
|
+
.rpt-amenities { margin: 0.6rem 0 0; }
|
|
911
|
+
|
|
912
|
+
/* Print */
|
|
913
|
+
@page { size: letter; margin: 0.75in; }
|
|
914
|
+
@media print {
|
|
915
|
+
.uwmd-report { max-width: none; padding: 0; font-size: 10pt; }
|
|
916
|
+
.rpt-cover { page-break-after: always; padding-top: 2.5in; }
|
|
917
|
+
.rpt-section { break-inside: avoid-page; margin: 1.4rem 0; }
|
|
918
|
+
.rpt-section-head { break-after: avoid-page; }
|
|
919
|
+
.rpt-table thead th { background: var(--rpt-accent) !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
|
|
920
|
+
.rpt-metric, .rpt-disclaimer, .rpt-badge { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
|
|
921
|
+
a { color: inherit; text-decoration: none; }
|
|
922
|
+
}
|
|
923
923
|
`;
|
|
924
924
|
//# sourceMappingURL=report.js.map
|
package/dist/types.d.ts
CHANGED
|
@@ -10,7 +10,22 @@ export type DealStage = 'scope' | 'screening' | 'term_sheet' | 'full_underwrite'
|
|
|
10
10
|
*
|
|
11
11
|
* Cascade-resolved values use the lower seven tags below; see protocol §IX.
|
|
12
12
|
*/
|
|
13
|
-
export type SourceTag = 'user_input' | 'user_override' | 'manual'
|
|
13
|
+
export type SourceTag = 'user_input' | 'user_override' | 'manual'
|
|
14
|
+
/**
|
|
15
|
+
* A value inherited from an ancestor in the composition DAG (RFC 0021 §5).
|
|
16
|
+
* Always carries `_meta.inherited_from` naming the asserting document, so it
|
|
17
|
+
* is traceable rather than ambient.
|
|
18
|
+
*/
|
|
19
|
+
| 'inherited_assumption' | 'investor_profile' | 'market_data'
|
|
20
|
+
/**
|
|
21
|
+
* A market observation an analyst explicitly accepted as the underwritten
|
|
22
|
+
* value (RFC 0022 §4). Deliberately distinct from `user_input`: a value
|
|
23
|
+
* accepted for lack of better evidence and a value established by diligence
|
|
24
|
+
* are different claims, and a file that renders them identically has
|
|
25
|
+
* destroyed something a credit reviewer needs. Consumers that do not
|
|
26
|
+
* recognize this tag MUST NOT rewrite it to `user_input`.
|
|
27
|
+
*/
|
|
28
|
+
| 'market_data_accepted' | 'ai_extracted' | 'agent_computed' | 'asset_class_default' | 'scenario_default' | 'global_default' | 'system_default' | (string & {});
|
|
14
29
|
export type AssetClass = 'multifamily' | 'office' | 'retail' | 'industrial' | 'self_storage' | 'hospitality' | 'mixed_use' | 'senior_housing' | 'student_housing' | 'land';
|
|
15
30
|
/**
|
|
16
31
|
* Every v1 asset class, as a runtime list. Derived from {@link AssetClass} via
|
|
@@ -72,6 +87,44 @@ export interface UWMeta {
|
|
|
72
87
|
* in that chain MUST.
|
|
73
88
|
*/
|
|
74
89
|
parent_hash?: string | null;
|
|
90
|
+
/**
|
|
91
|
+
* Which observation set a `market_data_accepted` value was promoted from
|
|
92
|
+
* (RFC 0022 §4). REQUIRED whenever `source` is `market_data_accepted`, and
|
|
93
|
+
* meaningless otherwise.
|
|
94
|
+
*
|
|
95
|
+
* Without it, "accepted from market data" is an unfalsifiable claim: a
|
|
96
|
+
* reviewer could see the tag but never recover *which* observations, of which
|
|
97
|
+
* vintage, were accepted — the exact gap RFC 0022 exists to close.
|
|
98
|
+
*/
|
|
99
|
+
market_data_ref?: MarketDataRef;
|
|
100
|
+
/**
|
|
101
|
+
* Which ancestor asserted an `inherited_assumption` value (RFC 0021 §5).
|
|
102
|
+
* REQUIRED whenever `source` is `inherited_assumption`, and meaningless
|
|
103
|
+
* otherwise — an inherited value with no named ancestor is indistinguishable
|
|
104
|
+
* from an ambient default, which is exactly what §5 forbids.
|
|
105
|
+
*/
|
|
106
|
+
inherited_from?: InheritedFrom;
|
|
107
|
+
}
|
|
108
|
+
/** Identity and digest of the ancestor that asserted an inherited value. */
|
|
109
|
+
export interface InheritedFrom {
|
|
110
|
+
document_id: string;
|
|
111
|
+
/** `sha256:<64 lowercase hex>` over the ancestor's canonical form. */
|
|
112
|
+
digest: string;
|
|
113
|
+
/** Hops up the composition DAG; 1 is the immediate parent. */
|
|
114
|
+
distance: number;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Identity, vintage, and digest of the observation set a value was promoted
|
|
118
|
+
* from. The digest is what makes it checkable rather than merely stated.
|
|
119
|
+
*/
|
|
120
|
+
export interface MarketDataRef {
|
|
121
|
+
document_id: string;
|
|
122
|
+
/** ISO `YYYY-MM-DD`, copied from the observation set. */
|
|
123
|
+
as_of: string;
|
|
124
|
+
/** `sha256:<64 lowercase hex>` over the observation set's canonical form. */
|
|
125
|
+
digest: string;
|
|
126
|
+
/** Why this observation was accepted as the underwritten value. */
|
|
127
|
+
rationale?: string;
|
|
75
128
|
}
|
|
76
129
|
export interface UWFenceAnnotation {
|
|
77
130
|
section: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAExD,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE3F,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9D,MAAM,MAAM,SAAS,GACjB,OAAO,GACP,WAAW,GACX,YAAY,GACZ,iBAAiB,GACjB,iBAAiB,GACjB,SAAS,GACT,YAAY,CAAC;AAEjB;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GACjB,YAAY,GACZ,eAAe,GACf,QAAQ,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,kCAAkC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,kCAAkC;AAkElC;;;;;;;;;;;;GAYG;AACH,MAAM,mBAAmB,GAA6B;IACpD,WAAW,EAAE,IAAI;IACjB,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,IAAI;IACf,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,IAAI;IACrB,IAAI,EAAE,IAAI;CACX,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAA0B,MAAM,CAAC,MAAM,CAC/D,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAiB,CACjD,CAAC;AAsQF,MAAM,CAAC,MAAM,kBAAkB,GAAwB;IACrD,IAAI,EAAe,EAAE,WAAW,EAAE,GAAG,EAAG,aAAa,EAAE,GAAG,EAAE;IAC5D,GAAG,EAAgB,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IAC7D,UAAU,EAAS,EAAE,aAAa,EAAE,IAAI,EAAE;IAC1C,QAAQ,EAAW,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAC/D,YAAY,EAAO,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAC/D,UAAU,EAAS,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAC/D,GAAG,EAAgB,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAC/D,eAAe,EAAI,EAAE,aAAa,EAAE,GAAG,EAAG,aAAa,EAAE,GAAG,EAAE;IAC9D,kBAAkB,EAAC,EAAE,aAAa,EAAE,IAAI,EAAE;IAC1C,GAAG,EAAgB,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;CAC9D,CAAC"}
|
package/dist/validator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EAEnB,SAAS,EACV,MAAM,YAAY,CAAC;AAIpB,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAgB5E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAE5E;AA4CD;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;CAC9B;AAED,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAYlE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,MAAM,EAAE,CAEvE;AAqBD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,kBAAkB,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAChD,gBAAgB,
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EAEnB,SAAS,EACV,MAAM,YAAY,CAAC;AAIpB,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAgB5E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAE5E;AA4CD;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;CAC9B;AAED,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAYlE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,MAAM,EAAE,CAEvE;AAqBD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,kBAAkB,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAChD,gBAAgB,CAmClB;AA6oBD,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC3C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,iBAAiB,EAAE,EAC3B,IAAI,GAAE,kBAAuB,GAC5B,IAAI,CAkGN"}
|