@mulmoclaude/accounting-plugin 0.1.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.
Files changed (112) hide show
  1. package/dist/server/accountNormalize.d.ts +3 -0
  2. package/dist/server/accountNormalize.d.ts.map +1 -0
  3. package/dist/server/atomic.d.ts +13 -0
  4. package/dist/server/atomic.d.ts.map +1 -0
  5. package/dist/server/context.d.ts +39 -0
  6. package/dist/server/context.d.ts.map +1 -0
  7. package/dist/server/defaultAccounts.d.ts +3 -0
  8. package/dist/server/defaultAccounts.d.ts.map +1 -0
  9. package/dist/server/eventPublisher.d.ts +14 -0
  10. package/dist/server/eventPublisher.d.ts.map +1 -0
  11. package/dist/server/http.d.ts +3 -0
  12. package/dist/server/http.d.ts.map +1 -0
  13. package/dist/server/index.d.ts +6 -0
  14. package/dist/server/index.d.ts.map +1 -0
  15. package/dist/server/io.d.ts +67 -0
  16. package/dist/server/io.d.ts.map +1 -0
  17. package/dist/server/journal.d.ts +74 -0
  18. package/dist/server/journal.d.ts.map +1 -0
  19. package/dist/server/openingBalances.d.ts +30 -0
  20. package/dist/server/openingBalances.d.ts.map +1 -0
  21. package/dist/server/report.d.ts +98 -0
  22. package/dist/server/report.d.ts.map +1 -0
  23. package/dist/server/router.d.ts +7 -0
  24. package/dist/server/router.d.ts.map +1 -0
  25. package/dist/server/service.d.ts +148 -0
  26. package/dist/server/service.d.ts.map +1 -0
  27. package/dist/server/snapshotCache.d.ts +52 -0
  28. package/dist/server/snapshotCache.d.ts.map +1 -0
  29. package/dist/server/timeSeries.d.ts +47 -0
  30. package/dist/server/timeSeries.d.ts.map +1 -0
  31. package/dist/server/types.d.ts +134 -0
  32. package/dist/server/types.d.ts.map +1 -0
  33. package/dist/server.cjs +2101 -0
  34. package/dist/server.cjs.map +1 -0
  35. package/dist/server.js +2074 -0
  36. package/dist/server.js.map +1 -0
  37. package/dist/shared/actions.d.ts +19 -0
  38. package/dist/shared/actions.d.ts.map +1 -0
  39. package/dist/shared/channels.d.ts +46 -0
  40. package/dist/shared/channels.d.ts.map +1 -0
  41. package/dist/shared/countries.d.ts +51 -0
  42. package/dist/shared/countries.d.ts.map +1 -0
  43. package/dist/shared/currencies.d.ts +34 -0
  44. package/dist/shared/currencies.d.ts.map +1 -0
  45. package/dist/shared/dates.d.ts +15 -0
  46. package/dist/shared/dates.d.ts.map +1 -0
  47. package/dist/shared/errors.d.ts +2 -0
  48. package/dist/shared/errors.d.ts.map +1 -0
  49. package/dist/shared/fiscalYear.d.ts +22 -0
  50. package/dist/shared/fiscalYear.d.ts.map +1 -0
  51. package/dist/shared/index.d.ts +9 -0
  52. package/dist/shared/index.d.ts.map +1 -0
  53. package/dist/shared/timeSeriesEnums.d.ts +5 -0
  54. package/dist/shared/timeSeriesEnums.d.ts.map +1 -0
  55. package/dist/shared.cjs +466 -0
  56. package/dist/shared.cjs.map +1 -0
  57. package/dist/shared.js +432 -0
  58. package/dist/shared.js.map +1 -0
  59. package/dist/style.css +1255 -0
  60. package/dist/vue/Preview.vue.d.ts +8 -0
  61. package/dist/vue/Preview.vue.d.ts.map +1 -0
  62. package/dist/vue/View.vue.d.ts +30 -0
  63. package/dist/vue/View.vue.d.ts.map +1 -0
  64. package/dist/vue/api.d.ts +269 -0
  65. package/dist/vue/api.d.ts.map +1 -0
  66. package/dist/vue/components/AccountEditor.vue.d.ts +19 -0
  67. package/dist/vue/components/AccountEditor.vue.d.ts.map +1 -0
  68. package/dist/vue/components/AccountRow.vue.d.ts +14 -0
  69. package/dist/vue/components/AccountRow.vue.d.ts.map +1 -0
  70. package/dist/vue/components/AccountsList.vue.d.ts +15 -0
  71. package/dist/vue/components/AccountsList.vue.d.ts.map +1 -0
  72. package/dist/vue/components/AccountsModal.vue.d.ts +15 -0
  73. package/dist/vue/components/AccountsModal.vue.d.ts.map +1 -0
  74. package/dist/vue/components/BalanceSheet.vue.d.ts +13 -0
  75. package/dist/vue/components/BalanceSheet.vue.d.ts.map +1 -0
  76. package/dist/vue/components/BookSettings.vue.d.ts +18 -0
  77. package/dist/vue/components/BookSettings.vue.d.ts.map +1 -0
  78. package/dist/vue/components/BookSwitcher.vue.d.ts +17 -0
  79. package/dist/vue/components/BookSwitcher.vue.d.ts.map +1 -0
  80. package/dist/vue/components/DateRangePicker.vue.d.ts +19 -0
  81. package/dist/vue/components/DateRangePicker.vue.d.ts.map +1 -0
  82. package/dist/vue/components/JournalEntryForm.vue.d.ts +19 -0
  83. package/dist/vue/components/JournalEntryForm.vue.d.ts.map +1 -0
  84. package/dist/vue/components/JournalList.vue.d.ts +30 -0
  85. package/dist/vue/components/JournalList.vue.d.ts.map +1 -0
  86. package/dist/vue/components/Ledger.vue.d.ts +21 -0
  87. package/dist/vue/components/Ledger.vue.d.ts.map +1 -0
  88. package/dist/vue/components/NewBookForm.vue.d.ts +20 -0
  89. package/dist/vue/components/NewBookForm.vue.d.ts.map +1 -0
  90. package/dist/vue/components/OpeningBalancesForm.vue.d.ts +15 -0
  91. package/dist/vue/components/OpeningBalancesForm.vue.d.ts.map +1 -0
  92. package/dist/vue/components/ProfitLoss.vue.d.ts +19 -0
  93. package/dist/vue/components/ProfitLoss.vue.d.ts.map +1 -0
  94. package/dist/vue/components/accountDraft.d.ts +8 -0
  95. package/dist/vue/components/accountDraft.d.ts.map +1 -0
  96. package/dist/vue/components/accountNumbering.d.ts +20 -0
  97. package/dist/vue/components/accountNumbering.d.ts.map +1 -0
  98. package/dist/vue/components/accountValidation.d.ts +34 -0
  99. package/dist/vue/components/accountValidation.d.ts.map +1 -0
  100. package/dist/vue/components/useLatestRequest.d.ts +10 -0
  101. package/dist/vue/components/useLatestRequest.d.ts.map +1 -0
  102. package/dist/vue/hostContext.d.ts +31 -0
  103. package/dist/vue/hostContext.d.ts.map +1 -0
  104. package/dist/vue/index.d.ts +7 -0
  105. package/dist/vue/index.d.ts.map +1 -0
  106. package/dist/vue/useAccountingChannel.d.ts +13 -0
  107. package/dist/vue/useAccountingChannel.d.ts.map +1 -0
  108. package/dist/vue.cjs +3641 -0
  109. package/dist/vue.cjs.map +1 -0
  110. package/dist/vue.js +3638 -0
  111. package/dist/vue.js.map +1 -0
  112. package/package.json +74 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshotCache.d.ts","sourceRoot":"","sources":["../../src/server/snapshotCache.ts"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAAE,cAAc,EAAgB,aAAa,EAAE,MAAM,YAAY,CAAC;AA2B9E;;;oEAGoE;AACpE,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA8BvH;AAED;;;6BAG6B;AAC7B,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CASvH;AAED;;sDAEsD;AACtD,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAExI;AAED;;eAEe;AACf,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAOhH;AA4HD;;;uEAGuE;AACvE,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAShG;AAED;;;mDAGmD;AACnD,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpE;AAED;;;;2DAI2D;AAC3D,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAOlD;AAED;2DAC2D;AAC3D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG;IACnD,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAWA;AAED;;mEAEmE;AACnE,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC,CAUlE"}
@@ -0,0 +1,47 @@
1
+ import type { Account, JournalEntry } from "./types.js";
2
+ import { type FiscalYearEnd, TIME_SERIES_GRANULARITIES, TIME_SERIES_METRICS, type TimeSeriesGranularity, type TimeSeriesMetric } from "../shared";
3
+ export { TIME_SERIES_GRANULARITIES, TIME_SERIES_METRICS };
4
+ export type { TimeSeriesGranularity, TimeSeriesMetric };
5
+ export interface Bucket {
6
+ /** Inclusive YYYY-MM-DD lower bound. */
7
+ from: string;
8
+ /** Inclusive YYYY-MM-DD upper bound. */
9
+ to: string;
10
+ /** Chart x-axis label. Format depends on granularity:
11
+ * "YYYY-MM" / "FY{endYear}-Q{1..4}" / "FY{endYear}". For fiscal
12
+ * years that don't align with the calendar year (Q1/Q2/Q3 books)
13
+ * the FY is named by its END calendar year — matches Japanese
14
+ * "令和7年度" convention (Apr 2025 - Mar 2026 = FY2026). */
15
+ label: string;
16
+ }
17
+ export interface TimeSeriesPoint {
18
+ label: string;
19
+ from: string;
20
+ to: string;
21
+ /** Single number, natural-sign per metric. Revenue and net income
22
+ * positive when income exceeds expense; expense reported as a
23
+ * positive cost; account balance follows the account's display
24
+ * sign (assets debit-positive, liabilities/equity credit-positive). */
25
+ value: number;
26
+ }
27
+ /** Walk inclusive `[from, to]` and return every bucket that overlaps
28
+ * it, ordered ascending by `from`. The first bucket is the one
29
+ * CONTAINING `from` — it can extend earlier than `from`; the last
30
+ * bucket is the one CONTAINING `to` — it can extend past `to`. The
31
+ * caller's response echoes the input range so the LLM can label the
32
+ * chart truthfully ("Revenue Apr 2025 – Sep 2026" even though the
33
+ * outermost buckets cover Apr-Jun 2025 and Jul-Sep 2026). */
34
+ export declare function bucketize(input: {
35
+ from: string;
36
+ to: string;
37
+ granularity: TimeSeriesGranularity;
38
+ fiscalYearEnd: FiscalYearEnd;
39
+ }): Bucket[];
40
+ export declare function buildTimeSeries(input: {
41
+ buckets: readonly Bucket[];
42
+ entries: readonly JournalEntry[];
43
+ accounts: readonly Account[];
44
+ metric: TimeSeriesMetric;
45
+ accountCode?: string;
46
+ }): TimeSeriesPoint[];
47
+ //# sourceMappingURL=timeSeries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeSeries.d.ts","sourceRoot":"","sources":["../../src/server/timeSeries.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAe,YAAY,EAAE,MAAM,YAAY,CAAC;AAErE,OAAO,EAEL,KAAK,aAAa,EAClB,yBAAyB,EACzB,mBAAmB,EACnB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACtB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,CAAC;AAC1D,YAAY,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,CAAC;AAExD,MAAM,WAAW,MAAM;IACrB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX;;;;6DAIyD;IACzD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX;;;4EAGwE;IACxE,KAAK,EAAE,MAAM,CAAC;CACf;AA8GD;;;;;;8DAM8D;AAC9D,wBAAgB,SAAS,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,qBAAqB,CAAC;IAAC,aAAa,EAAE,aAAa,CAAA;CAAE,GAAG,MAAM,EAAE,CAazI;AAkED,wBAAgB,eAAe,CAAC,KAAK,EAAE;IACrC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IACjC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IAC7B,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,eAAe,EAAE,CAapB"}
@@ -0,0 +1,134 @@
1
+ import type { SupportedCountryCode, FiscalYearEnd } from "../shared";
2
+ export declare const ACCOUNT_TYPES: readonly ["asset", "liability", "equity", "income", "expense"];
3
+ export type AccountType = (typeof ACCOUNT_TYPES)[number];
4
+ /** B/S accounts (assets / liabilities / equity). Used by opening
5
+ * balance validation: opening entries reference balance-sheet
6
+ * accounts only. */
7
+ export declare const BALANCE_SHEET_ACCOUNT_TYPES: readonly AccountType[];
8
+ export interface Account {
9
+ /** Stable identifier the journal lines reference. Typically a
10
+ * numeric string ("1000" / "2000" …) but free-form is allowed
11
+ * so the user can adopt their existing numbering. */
12
+ code: string;
13
+ name: string;
14
+ type: AccountType;
15
+ /** Optional free-form note (tax bucket, parent group, …). Not
16
+ * interpreted by the engine — passes through verbatim. */
17
+ note?: string;
18
+ /** Soft-delete flag. When `false`, the account is hidden from
19
+ * entry/ledger dropdowns but stays visible in Manage Accounts
20
+ * and historical entries — accounting integrity requires that
21
+ * a code referenced by a journal line never disappears. Omitted
22
+ * (treated as active) by default to keep the JSON files clean
23
+ * for books created before this field existed. */
24
+ active?: boolean;
25
+ }
26
+ export interface BookSummary {
27
+ id: string;
28
+ name: string;
29
+ /** ISO 4217 (e.g. "USD" / "JPY"). Single-currency per book — no
30
+ * cross-book aggregation. */
31
+ currency: string;
32
+ /** ISO 3166-1 alpha-2 country code (e.g. "US" / "JP" / "GB").
33
+ * Identifies the tax jurisdiction the book is kept under so the
34
+ * Accounting role can give country-aware advice (Japanese T-number
35
+ * under インボイス制度, EU VAT ID, GSTIN, ABN, etc.). Constrained
36
+ * to `SupportedCountryCode` (the curated list shared with the UI
37
+ * dropdown and the LLM tool's JSON-schema enum) so a typo from any
38
+ * ingress path is rejected at the service layer rather than silently
39
+ * persisted. Optional for backward compatibility with books created
40
+ * before the field was introduced; the UI prompts existing books
41
+ * to set it. */
42
+ country?: SupportedCountryCode;
43
+ /** Which calendar-quarter end is the book's fiscal year end:
44
+ * Q1 → March 31, Q2 → June 30, Q3 → September 30, Q4 → December 31.
45
+ * Drives the UI's "current quarter / current year" date-range
46
+ * shortcuts. Optional in the persisted shape for backward
47
+ * compatibility with books written before this field existed —
48
+ * read-side code treats the absent value as Q4 via
49
+ * `resolveFiscalYearEnd`. New books require it at the create
50
+ * boundary; the default is Q4. */
51
+ fiscalYearEnd?: FiscalYearEnd;
52
+ createdAt: string;
53
+ }
54
+ export interface AccountingConfig {
55
+ books: BookSummary[];
56
+ }
57
+ export type JournalEntryKind = "normal" | "opening" | "void" | "void-marker";
58
+ export interface JournalLine {
59
+ accountCode: string;
60
+ /** Use exactly one of debit / credit per line, both as positive
61
+ * numbers. The engine treats them as separate fields rather than
62
+ * a single signed amount so the input matches a standard
63
+ * bookkeeping form. */
64
+ debit?: number;
65
+ credit?: number;
66
+ /** Per-line memo (the entry-level memo lives on JournalEntry). */
67
+ memo?: string;
68
+ /** Counterparty's tax-authority-issued registration ID for this
69
+ * line — Japanese 適格請求書発行事業者登録番号 (T-number), EU
70
+ * VAT identification number, UK VAT registration number, India
71
+ * GSTIN, Australia ABN, etc. Required for input-tax-credit
72
+ * eligibility under the Japanese インボイス制度 (effective
73
+ * 2023-10-01) and equivalent regimes elsewhere. Free-form string;
74
+ * format validation belongs upstream (per-jurisdiction). */
75
+ taxRegistrationId?: string;
76
+ }
77
+ export interface JournalEntry {
78
+ /** Globally unique within a book — ULID-style; ordering by id
79
+ * reproduces creation order. */
80
+ id: string;
81
+ /** Calendar date the entry is booked for (YYYY-MM-DD). The month
82
+ * part decides which `journal/YYYY-MM.jsonl` file the entry lives
83
+ * in; entries can be for any past / future date. */
84
+ date: string;
85
+ kind: JournalEntryKind;
86
+ lines: JournalLine[];
87
+ /** Entry-level memo. */
88
+ memo?: string;
89
+ /** When `kind === "void-marker"`: id of the entry being voided.
90
+ * When `kind === "void"`: the system-generated reverse entry
91
+ * references the original via this field. */
92
+ voidedEntryId?: string;
93
+ /** Reason supplied by the user when voiding. */
94
+ voidReason?: string;
95
+ /** When this entry was posted via the "edit" flow (void-then-add),
96
+ * this is the id of the entry it replaces. The void + new-entry
97
+ * pair is *not* atomic on the server — the client issues two
98
+ * sequential calls — but recording the link here makes the
99
+ * edit chain queryable later (e.g. "what corrected entry X?"). */
100
+ replacesEntryId?: string;
101
+ /** ISO timestamp the entry was appended to the journal — the
102
+ * authoritative "when did this hit the books" clock. Distinct
103
+ * from `date`, which is the user-visible booking date. */
104
+ createdAt: string;
105
+ }
106
+ /** Aggregated balance per account at a point in time. The signed
107
+ * number is debit − credit; downstream display logic converts to
108
+ * natural sign per account type (assets debit-positive, liabilities
109
+ * credit-positive). */
110
+ export interface AccountBalance {
111
+ accountCode: string;
112
+ /** Σ debit − Σ credit across all entries up to and including the
113
+ * snapshot's period end. */
114
+ netDebit: number;
115
+ }
116
+ export interface MonthSnapshot {
117
+ /** "YYYY-MM" — the closing month covered. */
118
+ period: string;
119
+ /** Closing balances at end of `period`. */
120
+ balances: AccountBalance[];
121
+ /** ISO timestamp the snapshot file was written. */
122
+ builtAt: string;
123
+ }
124
+ /** Period selector for reports. Either a single closing month or a
125
+ * date range. Always inclusive on both ends. */
126
+ export type ReportPeriod = {
127
+ kind: "month";
128
+ period: string;
129
+ } | {
130
+ kind: "range";
131
+ from: string;
132
+ to: string;
133
+ };
134
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAErE,eAAO,MAAM,aAAa,gEAAiE,CAAC;AAC5F,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD;;qBAEqB;AACrB,eAAO,MAAM,2BAA2B,EAAE,SAAS,WAAW,EAAqC,CAAC;AAEpG,MAAM,WAAW,OAAO;IACtB;;0DAEsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB;+DAC2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;uDAKmD;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb;kCAC8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;;;qBASiB;IACjB,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B;;;;;;;uCAOmC;IACnC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,aAAa,CAAC;AAE7E,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB;;;4BAGwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;iEAM6D;IAC7D,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B;qCACiC;IACjC,EAAE,EAAE,MAAM,CAAC;IACX;;yDAEqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;kDAE8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;uEAImE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;+DAE2D;IAC3D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;wBAGwB;AACxB,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB;iCAC6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;iDACiD;AACjD,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC"}