@descryy/adapter-csharp 0.2.0 → 0.3.1

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":"efcore.d.ts","sourceRoot":"","sources":["../src/efcore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAsB,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE/E,8EAA8E;AAC9E,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,YAAY,EACjB,QAAQ,GACR,YAAY,GACZ,YAAY,GACZ,qBAAqB,GACrB,gBAAgB,GAChB,YAAY,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,gFAAgF;IAChF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,OAAO,GAAG,eAAe,GAAG,iBAAiB,GAAG,eAAe,CAAC;IACrF,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,2FAA2F;AAC3F,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IACpC,iFAAiF;IACjF,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,8EAA8E;IAC9E,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAC;IACjD;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACvF;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACrE;;;;;;;;;OASG;IACH,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;CACvE;AAgCD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAGrG;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAKjE;AAoND,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChF,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,eAAe,CAAC;CACvD;AAuDD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAqPjD"}
1
+ {"version":3,"file":"efcore.d.ts","sourceRoot":"","sources":["../src/efcore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAsB,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE/E,8EAA8E;AAC9E,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,YAAY,EACjB,QAAQ,GACR,YAAY,GACZ,YAAY,GACZ,qBAAqB,GACrB,gBAAgB,GAChB,YAAY,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,gFAAgF;IAChF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,OAAO,GAAG,eAAe,GAAG,iBAAiB,GAAG,eAAe,CAAC;IACrF,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,2FAA2F;AAC3F,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IACpC,iFAAiF;IACjF,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,8EAA8E;IAC9E,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC;;;;;;;;OAQG;IACH,QAAQ,CAAC,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAC;IACjD;;;;;OAKG;IACH,QAAQ,CAAC,iBAAiB,EAAE;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACvF;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACrE;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;CACvE;AA4BD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAGrG;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAKjE;AA6LD,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChF,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,eAAe,CAAC;CACvD;AAuCD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAyOjD"}
package/dist/efcore.js CHANGED
@@ -1,14 +1,12 @@
1
1
  /**
2
2
  * The ORM framework extractor for C# — Entity Framework Core.
3
3
  *
4
- * **A `MODEL` is a framework claim, and this file is where it is earned.**
5
- * DEC-128 fixed the rules before extraction and **DEC-180 amended them after
6
- * counting the corpus**, which is the part worth reading first: four of
7
- * DEC-128's ORM rules were wrong, and every one of them was wrong in the same
8
- * way — written from how EF Core is documented rather than from how the corpus
9
- * is spelled. That is how a rule acquires zero witnesses.
4
+ * A `MODEL` is a framework claim, earned here. DEC-128 set the rules before
5
+ * extraction; DEC-180 amended four of them after counting the corpus — all
6
+ * four were written from EF Core's docs rather than from how the corpus is
7
+ * actually spelled, hence zero witnesses.
10
8
  *
11
- * ## Admission — what the corpus actually contains
9
+ * Admission evidence:
12
10
  *
13
11
  * | evidence | jellyfin | Ocelot | eShopOnWeb | CleanArchitecture |
14
12
  * | --- | --- | --- | --- | --- |
@@ -17,58 +15,38 @@
17
15
  * | `modelBuilder.Entity<` | **0** | **0** | **0** | **0** |
18
16
  * | `[Table(` | **0** | **0** | **0** | **0** |
19
17
  *
20
- * So the admission grounds are:
21
- *
22
- * 1. **`DbSet<T>` on a `DbContext`.** Primary, and the only rule with witnesses
23
- * in three of four corpora.
24
- * 2. **`IEntityTypeConfiguration<T>`.** This *replaces* DEC-128's
25
- * `modelBuilder.Entity<T>()` rule, which is the same fact written in a form
26
- * the corpus does not contain.
27
- * 3. `[Table]` and `modelBuilder.Entity<T>()` are still **read** where they
28
- * appear, and are reported as **unwitnessed** — `0 of 0`, undefined, never as
29
- * passing. A rule with zero witnesses cannot be shown to work or to fail, and
30
- * its green is the green of a branch never taken.
31
- *
32
- * **Refused:** a type in a `Models` or `Entities` namespace with no mapping
33
- * evidence — the `IFoo` guess this project forbids — and an owned type reached
34
- * through `OwnsOne`, which shares its owner's table and has none of its own.
35
- *
36
- * ## Generated migrations are excluded, and the exclusion is counted
37
- *
38
- * DEC-128 read the table name from `ToTable(…)`. Measured: **1,338 of
39
- * `jellyfin`'s 1,339 `ToTable` calls are inside `Migrations/`**, under a
40
- * `// <auto-generated />` header, and 50 of `eShopOnWeb`'s 51. Those files are
41
- * EF Core's serialised model from whenever someone last scaffolded a migration —
42
- * an artefact of an operation, read as evidence about the world.
43
- *
44
- * An extractor reading them without excluding them is, to three significant
45
- * figures, reading **only** generated code. So they are excluded — and the count
46
- * is **reported**, because a silent exclusion of 1,338 of 1,339 is a correct
47
- * decision that looks identical to a reader that never found them.
48
- *
49
- * ## No corpus can exercise the provenance rule
50
- *
51
- * `Dapper`, `NHibernate` and `linq2db` occur **zero** times across all four
52
- * corpora. There is no C# repository here in which a rival ORM's types are
53
- * present for these rules to correctly refuse — the identical hole the Java
54
- * control set has. Stated before extraction rather than discovered after a green
55
- * run, and every report carries the EF negative control as `0 of 0 — undefined`.
18
+ * Admission grounds:
19
+ * 1. `DbSet<T>` on a `DbContext` — primary, witnessed in 3 of 4 corpora.
20
+ * 2. `IEntityTypeConfiguration<T>` — replaces DEC-128's `modelBuilder.Entity<T>()`,
21
+ * the same fact in a form the corpus doesn't contain.
22
+ * 3. `[Table]` and `modelBuilder.Entity<T>()` are still read where they
23
+ * appear but reported unwitnessed (`0 of 0`) — a rule with zero witnesses
24
+ * can't be shown to work or fail.
25
+ *
26
+ * Refused: a type in a `Models`/`Entities` namespace with no mapping evidence
27
+ * (the `IFoo` guess this project forbids), and an owned type via `OwnsOne`
28
+ * (shares its owner's table, has none of its own).
29
+ *
30
+ * Generated migrations are excluded and the exclusion counted: 1,338 of
31
+ * jellyfin's 1,339 `ToTable` calls, and 50 of eShopOnWeb's 51, are inside
32
+ * `Migrations/` under `<auto-generated />` — reading them unexcluded is
33
+ * reading almost only generated code.
34
+ *
35
+ * No corpus exercises the provenance rule: `Dapper`, `NHibernate`, `linq2db`
36
+ * occur zero times across all four corpora (same hole as the Java control
37
+ * set) — every report carries the EF negative control as `0 of 0 — undefined`.
56
38
  */
57
39
  import { referenceTypeNullable } from "./nullability.js";
58
40
  const EF_NAMESPACES = ["Microsoft.EntityFrameworkCore"];
59
41
  /**
60
- * The built-in value types, which can never be null without a `?`.
61
- *
62
- * **Counted from the corpora, not copied from the language reference** — that is
63
- * countermeasure 0, and the ORM half of DEC-128 is what happens without it. The
64
- * declared property types across `jellyfin`, `eShopOnWeb` and `CleanArchitecture`
65
- * are dominated by exactly this set: `string` 786, `bool` 539, `string?` 508,
66
- * `int?` 332, `int` 218, `bool?` 156, `Guid` 111, `DateTime?` 69, `DateTime` 68,
67
- * `long` 59, `Guid?` 51, `decimal`, `DateTimeOffset`.
68
- *
69
- * A user-declared `struct` or `enum` is also a value type — `CleanArchitecture`'s
70
- * `PriorityLevel` is the witnessed case — and is resolved from the repository's
71
- * own declarations rather than guessed from its name.
42
+ * Built-in value types, never null without a `?`. Counted from the corpora,
43
+ * not copied from the language reference (DEC-128's ORM half is what happens
44
+ * without that). Declared property types across jellyfin/eShopOnWeb/CleanArchitecture:
45
+ * `string` 786, `bool` 539, `string?` 508, `int?` 332, `int` 218, `bool?` 156,
46
+ * `Guid` 111, `DateTime?` 69, `DateTime` 68, `long` 59, `Guid?` 51, `decimal`, `DateTimeOffset`.
47
+ *
48
+ * A user-declared `struct`/`enum` is also a value type (`CleanArchitecture`'s
49
+ * `PriorityLevel`), resolved from the repo's own declarations, not by name.
72
50
  */
73
51
  const VALUE_TYPES = new Set([
74
52
  "int", "uint", "long", "ulong", "short", "ushort", "byte", "sbyte",
@@ -79,23 +57,13 @@ const VALUE_TYPES = new Set([
79
57
  const importsIn = (file, namespaces, onlyGlobal = false) => file.usings.some((using) => (!onlyGlobal || using.isGlobal) &&
80
58
  namespaces.some((ns) => using.target === ns || using.target.startsWith(`${ns}.`)));
81
59
  /**
82
- * Does this file import EF Core at all? Provenance, not spelling.
83
- *
84
- * **A `global using` counts, and it is in force across the whole assembly.**
85
- * That is not an edge case: `eShop`'s `OrderingContext` declares nine
86
- * `DbSet<T>` and its only file-local `using` is `eShop.IntegrationEventLogEF` —
87
- * `Microsoft.EntityFrameworkCore` arrives from `GlobalUsings.cs` three files
88
- * away. Checking file-local usings alone read **zero** models from a corpus with
89
- * nine, silently.
90
- *
91
- * `parse.ts` already says a `global using` is *"in force for every file in the
92
- * project, not just this one"* and models the flag. This is the first consumer
93
- * to act on it. Modern C# leans on it heavily — .NET 6 onward emits an implicit
94
- * global-usings file per project — so a reader that ignores it fails on new
95
- * codebases specifically.
96
- *
97
- * Scoped by **assembly**, because that is what a project is. A global using in
98
- * one project does not reach another.
60
+ * Does this file import EF Core at all? A `global using` counts, in force
61
+ * across the whole assembly — not an edge case: `eShop`'s `OrderingContext`
62
+ * declares nine `DbSet<T>` with `Microsoft.EntityFrameworkCore` arriving via
63
+ * `GlobalUsings.cs` three files away; file-local-only usings read zero models
64
+ * from a corpus with nine. Modern C# (.NET 6+ implicit global usings) leans
65
+ * on this heavily. Scoped by assembly — a global using in one project doesn't
66
+ * reach another.
99
67
  */
100
68
  export function importsEfCore(file, globalsByAssembly) {
101
69
  if (importsIn(file, EF_NAMESPACES))
@@ -103,18 +71,16 @@ export function importsEfCore(file, globalsByAssembly) {
103
71
  return globalsByAssembly?.get(file.assembly) === true;
104
72
  }
105
73
  /**
106
- * Is this file generated?
107
- *
108
- * Two signals, and both are needed. The `// <auto-generated />` header is the
109
- * language's own convention and is what EF Core's scaffolder emits. The
110
- * `Migrations/` path catches the migration classes beside the snapshot, which
111
- * carry no header of their own in every version.
74
+ * Is this file generated? Two signals needed: `// <auto-generated />` (the
75
+ * language convention, EF Core's scaffolder emits it) and the `Migrations/`
76
+ * path (catches migration classes beside the snapshot, which lack the header
77
+ * in every version).
112
78
  */
113
79
  export function isGenerated(path, source) {
114
80
  if (/(^|\/)Migrations\//.test(path))
115
81
  return true;
116
- // Only the opening of the file: the marker is a header, and a mention of it
117
- // deeper in a file is a comment about generated code, not a claim to be one.
82
+ // Opening of the file only — a mention deeper in is a comment about
83
+ // generated code, not a claim to be one.
118
84
  return /<auto-generated/i.test(source.slice(0, 400));
119
85
  }
120
86
  /** `Foo<Bar>` -> `Bar`, for the single-argument generic forms read here. */
@@ -123,12 +89,10 @@ function typeArgument(written, generic) {
123
89
  return match?.[1]?.split(".").pop();
124
90
  }
125
91
  /**
126
- * Every type named inside a written type, the outer one and its arguments.
127
- *
128
- * `IReadOnlyCollection<OrderItem>` names both `IReadOnlyCollection` and
129
- * `OrderItem`, and only the second decides whether the property is a navigation.
130
- * Reading the outer name alone published `OrderItems` and `Items` as columns —
131
- * a column per collection navigation, on a table that has no such column.
92
+ * Every type named inside a written type, outer and arguments both.
93
+ * `IReadOnlyCollection<OrderItem>` names both, and only `OrderItem` decides
94
+ * whether the property is a navigation — outer-name-only published collection
95
+ * navigations as columns on tables with no such column.
132
96
  */
133
97
  function namesIn(written) {
134
98
  return (written.match(/[A-Za-z_][A-Za-z0-9_.]*/g) ?? []).map((each) => each.split(".").pop());
@@ -138,13 +102,10 @@ function baseOf(written) {
138
102
  return written.replace(/\?+\s*$/, "").replace(/<.*$/, "").replace(/\[\]\s*$/, "").split(".").pop() ?? "";
139
103
  }
140
104
  /**
141
- * Is a written type a value type, a reference type, or not decidable here?
142
- *
143
- * `undefined` is the third answer and is the one that matters: an unknown type
144
- * may be a `struct` this run did not analyse, and guessing "reference" would
145
- * hand the question to the NRT context, which answers confidently. The lane's
146
- * standing rule — a stated answer read as its opposite is worse than an unread
147
- * one — applies to the type just as it does to the annotation.
105
+ * Is a written type value, reference, or not decidable here? `undefined` is
106
+ * the one that matters: an unread `struct` guessed as reference would hand
107
+ * the question to the NRT context, which answers confidently and wrongly —
108
+ * a stated answer read as its opposite is worse than an unread one.
148
109
  */
149
110
  function isValueType(written, declaredForms) {
150
111
  const base = baseOf(written);
@@ -169,19 +130,15 @@ const EMPTY_FACTS = {
169
130
  keys: new Set(),
170
131
  };
171
132
  /**
172
- * Read `builder.Property(x => x.Name).IsRequired()` and friends from source text.
173
- *
174
- * Deliberately textual and deliberately narrow. The Fluent API is a chained
175
- * builder whose shape a syntax walk would have to model in full to read
176
- * faithfully, and a partial walk that silently drops a link in the chain is the
177
- * recall hole this lane has already paid for once. A regex over the configuring
178
- * method's text answers the four questions DEC-128 §3 asks and **refuses
179
- * everything else**, which is a smaller claim honestly made.
180
- *
181
- * `.IsRequired(false)` is read as *optional*, not skipped — it is the one form
182
- * where the same call means the opposite thing, and dropping it would let the
183
- * `[Required]` rule below answer for a member the Fluent API has explicitly made
184
- * optional.
133
+ * Read `builder.Property(x => x.Name).IsRequired()` and friends from source
134
+ * text. Deliberately textual and narrow — a syntax walk would need to model
135
+ * the whole chained builder, and a partial walk silently dropping a link is a
136
+ * recall hole already paid for once. A regex answers DEC-128 §3's four
137
+ * questions and refuses everything else.
138
+ *
139
+ * `.IsRequired(false)` reads as optional, not skipped — the one form where
140
+ * the same call means the opposite; dropping it would let `[Required]` below
141
+ * answer for a member Fluent has explicitly made optional.
185
142
  */
186
143
  function fluentFacts(source) {
187
144
  const required = new Set();
@@ -209,34 +166,24 @@ function fluentFacts(source) {
209
166
  /**
210
167
  * The properties an entity inherits from non-entity ancestors.
211
168
  *
212
- * **The fourth instance of one construct class: the evidence is on an ancestor
213
- * and the subject is the descendant.** JPA's `@MappedSuperclass` cost a third of
214
- * an entity population; ASP.NET's base controller cost 98% of a corpus; this is
215
- * the same shape in the C# ORM half, and it was checked for by name rather than
216
- * met by surprise.
217
- *
218
- * `eShopOnWeb` declares every entity as `class BasketItem : BaseEntity` with
219
- *
220
- * public abstract class BaseEntity { public virtual int Id { get; protected set; } }
221
- *
222
- * so **every one of its models was missing its primary key column**.
223
- *
224
- * ## An entity ancestor stops the walk
225
- *
226
- * A base that is itself an admitted entity is an EF inheritance strategy —
227
- * table-per-hierarchy, table-per-type, table-per-concrete — and which one applies
228
- * decides whether the parent's properties are columns on this table, on a joined
229
- * table, or on neither. That is a `HasDiscriminator`/`UseTptMappingStrategy` fact
230
- * this does not read, so the walk stops rather than guessing. The identical rule
231
- * `jpa.ts` applies to an `@Entity` parent, for the identical reason.
169
+ * Same construct class as JPA's `@MappedSuperclass` (cost a third of an
170
+ * entity population) and ASP.NET's base controller (cost 98% of a corpus):
171
+ * evidence on an ancestor, subject the descendant. `eShopOnWeb` declares
172
+ * every entity as `class BasketItem : BaseEntity` where `BaseEntity` alone
173
+ * declares `Id` — so every model was missing its primary key column without this.
174
+ *
175
+ * An entity ancestor stops the walk: which EF inheritance strategy applies
176
+ * (table-per-hierarchy/type/concrete) decides whether the parent's properties
177
+ * land on this table, a joined table, or neither — a `HasDiscriminator`/
178
+ * `UseTptMappingStrategy` fact not read here, so the walk stops rather than
179
+ * guesses. Same rule `jpa.ts` applies to an `@Entity` parent.
232
180
  */
233
181
  function inheritedProperties(type, file, byName, isEntity) {
234
182
  const chain = [];
235
183
  const seen = new Set([`${file.file}::${type.path.join(".")}`]);
236
184
  let current = { type, file };
237
- // C# has single class inheritance, so this is a chain and not a search. The
238
- // base class is the FIRST entry by DEC-084 — position is the evidence, and the
239
- // `IFoo` convention is never read.
185
+ // Single class inheritance, so this is a chain, not a search — base class
186
+ // is the FIRST entry by DEC-084, `IFoo` is never read.
240
187
  for (;;) {
241
188
  const base = current.type.baseList[0];
242
189
  if (base === undefined)
@@ -254,9 +201,8 @@ function inheritedProperties(type, file, byName, isEntity) {
254
201
  seen.add(key);
255
202
  if (isEntity(parent.type.name))
256
203
  break;
257
- // Nearest ancestor last, so the deepest base's `Id` sits at the far end and
258
- // the entity's own properties still come first overall. Deterministic, which
259
- // is what a node's `attrs` has to be across runs.
204
+ // Nearest ancestor last, so the deepest base's `Id` sits at the far end —
205
+ // deterministic across runs, which `attrs` must be.
260
206
  chain.unshift(...parent.type.properties);
261
207
  current = parent;
262
208
  }
@@ -274,13 +220,10 @@ function isPersistent(property, facts) {
274
220
  return !facts.ignored.has(property.name);
275
221
  }
276
222
  /**
277
- * Nullability, in DEC-128 §3's precedence order.
278
- *
279
- * Rule 5 is the one DEC-180 rewrote and the one that decides most of a real
280
- * corpus. A bare reference type answers **only** under an enabled NRT context;
281
- * under `off`, `absent` or `unreadable` it is `unresolved` and counted, because
282
- * unknown is not false and publishing `false` there is a definite claim against
283
- * a source that has said the compiler is not tracking.
223
+ * Nullability, in DEC-128 §3's precedence order. Rule 5, rewritten by
224
+ * DEC-180, decides most of a real corpus: a bare reference type answers only
225
+ * under an enabled NRT context; under `off`/`absent`/`unreadable` it's
226
+ * `unresolved` and counted — unknown is not false.
284
227
  */
285
228
  function nullabilityOf(property, facts, context, declaredForms) {
286
229
  if (facts.required.has(property.name))
@@ -296,9 +239,9 @@ function nullabilityOf(property, facts, context, declaredForms) {
296
239
  const value = isValueType(written, declaredForms);
297
240
  const optionalMark = written.endsWith("?");
298
241
  if (value === true) {
299
- // `int?` is `Nullable<int>` and is nullable **regardless of the NRT context**
300
- // — it is a type, not an annotation. This is the case a reader that routes
301
- // every `?` through the NRT context gets wrong in a file with NRT disabled.
242
+ // `int?` is `Nullable<int>`, nullable regardless of NRT context — a type,
243
+ // not an annotation. A reader routing every `?` through NRT gets this
244
+ // wrong when NRT is disabled.
302
245
  return optionalMark
303
246
  ? { nullable: true, from: "nullable-value-type" }
304
247
  : { nullable: false, from: "value-type" };
@@ -315,38 +258,22 @@ function nullabilityOf(property, facts, context, declaredForms) {
315
258
  }
316
259
  /**
317
260
  * Every EF Core model the batch declares, with the exclusions counted.
318
- *
319
- * Cross-file by necessity: a `DbSet<Order>` names `Order`, and `Order` is
320
- * declared somewhere else. Same shape as JPA's mapped-superclass walk.
261
+ * Cross-file by necessity: a `DbSet<Order>` names `Order`, declared
262
+ * elsewhere. Same shape as JPA's mapped-superclass walk.
321
263
  */
322
264
  /**
323
- * Which of several same-named declarations a bare name can mean, from one file.
324
- *
325
- * C# does not resolve on the simple name. `parse.ts`'s own header states the
326
- * rule — *"a bare name is resolved by searching the enclosing namespaces
327
- * outward and then each import, which means a name may be found in two places,
328
- * and that is an ambiguity to disclose rather than a tie to break"* — and this
329
- * file did not implement it. It refused whenever a simple name was declared
330
- * twice **anywhere in the repository**, which is strictly more conservative
331
- * than the documented rule and is not the same rule.
332
- *
333
- * That cost eight entities across two corpora, every one of them resolvable:
334
- * `eShopOnWeb`'s four are an entity beside a Blazor DTO in `BlazorShared.Models`,
335
- * which the `DbContext` does not import; `jellyfin`'s four are an entity beside a
336
- * transfer object in a namespace the context does not import either.
337
- *
338
- * **A rule stated in a comment and not implemented in code** — found by Lane E
339
- * in a review of my classification, having just found three of the same in their
340
- * own instrument. The countermeasure I wrote for theirs did not catch mine,
341
- * which is the argument for a second reader rather than a better checklist.
342
- *
343
- * Visible namespaces are the file's own and each ancestor of it, plus every
344
- * plain `using`, plus the assembly's `global using`s. A nested namespace is
345
- * **not** visible from its parent by a bare name, which is why the enclosing
346
- * walk alone does not admit `…Entities.Chapter` from `…Implementations`.
347
- *
348
- * Returns every reachable candidate. One is resolved; zero or several is an
349
- * ambiguity, and the caller refuses exactly as before.
265
+ * Which of several same-named declarations a bare name can mean, from one
266
+ * file. C# doesn't resolve on the simple name; `parse.ts`'s documented rule
267
+ * (ambiguity is disclosed, not tie-broken) wasn't implemented here — this
268
+ * refused on any repo-wide simple-name collision instead, strictly more
269
+ * conservative and not the same rule. Cost eight resolvable entities across
270
+ * two corpora (an entity beside a same-named Blazor DTO / transfer object in
271
+ * a namespace the `DbContext` doesn't import).
272
+ *
273
+ * Visible namespaces: the file's own and each ancestor, every plain `using`,
274
+ * the assembly's `global using`s. A nested namespace is not visible from its
275
+ * parent by bare name. Returns every reachable candidate — one resolves,
276
+ * zero or several is an ambiguity the caller refuses as before.
350
277
  */
351
278
  function reachableFrom(candidates, from, globalUsings) {
352
279
  if (from === undefined)
@@ -480,12 +407,10 @@ export function efModels(input) {
480
407
  owned.add(match[1].split(".").pop());
481
408
  }
482
409
  }
483
- // Precedence is settled HERE, after all evidence is in, and not by whichever
484
- // file happened to be read first. `admit` records every rule that saw an
485
- // entity; this picks the winner by DEC-180's order. The first version let file
486
- // order decide, which made `eShopOnWeb` report its models as admitted by
487
- // configuration and `jellyfin` by DbSet for no reason in the source — a
488
- // difference between two corpora produced entirely by the reader.
410
+ // Precedence settled here, after all evidence is in, not by file read order.
411
+ // The first version let file order decide, so `eShopOnWeb` reported models
412
+ // admitted by configuration and `jellyfin` by DbSet for no reason in the
413
+ // source — a difference produced entirely by the reader.
489
414
  const PRECEDENCE = ["dbset", "configuration", "table-attribute", "model-builder"];
490
415
  for (const name of admitted.keys()) {
491
416
  for (const rule of PRECEDENCE) {
@@ -509,9 +434,8 @@ export function efModels(input) {
509
434
  continue; // Named, not analysed.
510
435
  const candidates = all.length === 1 ? all : reachableFrom(all, admittedIn.get(name), globalUsingsByAssembly);
511
436
  if (candidates.length !== 1) {
512
- // Ambiguous *after* resolution, or reachable from nowhere. Either way this
513
- // reader cannot say which declaration was meant, and picking one publishes
514
- // another type's columns under this entity's name.
437
+ // Ambiguous after resolution, or reachable from nowhere — either way,
438
+ // picking one would publish another type's columns under this name.
515
439
  ambiguousEntityNames.push(name);
516
440
  if (all.length > 1)
517
441
  resolvedByNamespace.unresolved += 1;
@@ -530,31 +454,22 @@ export function efModels(input) {
530
454
  for (const property of [...found.type.properties, ...inherited]) {
531
455
  if (!isPersistent(property, facts))
532
456
  continue;
533
- // A navigation is a relationship, not a scalar column, and refusing it is
534
- // precision rather than caution: `IReadOnlyCollection<OrderItem> Items`
535
- // published a column named `Items` on a table that has no such column.
536
- //
537
- // Both shapes count — a reference to an entity, and a collection OF one —
538
- // so every name inside the written type is checked, not just the outer.
539
- // An owned type is refused for the same reason by a different mechanism:
540
- // EF spreads it across several columns of the owner's table, so it is not
541
- // one column and this reader cannot say what the several are.
542
- // See `navigationsRefused`. A scalar column's type is a primitive, a
543
- // string, an enum, a struct or a byte array. Anything whose declared type
544
- // resolves to a class, record or interface DECLARED IN THIS REPOSITORY is
545
- // a navigation or an owned type, and is not one column.
457
+ // A navigation is a relationship, not a scalar column: refusing it is
458
+ // precision, not caution — `IReadOnlyCollection<OrderItem> Items`
459
+ // otherwise published a column `Items` on a table with no such column.
460
+ // Both a reference and a collection-of count, so every name inside the
461
+ // written type is checked, not just the outer. Owned types are refused
462
+ // by a different mechanism, same reason (EF spreads them across several
463
+ // columns this reader can't name — see `navigationsRefused`). A scalar
464
+ // column's type is a primitive, string, enum, struct or byte array;
465
+ // anything resolving to a repo-declared class/record/interface is a
466
+ // navigation or owned type.
546
467
  const referenced = namesIn(property.written);
547
468
  const isNavigation = referenced.some((each) => {
548
- // A type referring to itself is still a navigation. `BaseItemEntity`
549
- // declares `ICollection<BaseItemEntity>? Extras`, a self-referencing
550
- // collection, and this guard published it as a column named `Extras` on
551
- // a table that has no such column — the exact failure the rule above
552
- // describes, exempted by the one case the rule did not think of.
553
- //
554
- // The guard was there so a property whose type is the entity itself did
555
- // not refuse the entity; but that is the navigation case, not an
556
- // exception to it. Kept only for the *name* the model is keyed by when
557
- // the property type is not a reference at all.
469
+ // Self-reference is still a navigation: `BaseItemEntity` declares
470
+ // `ICollection<BaseItemEntity>? Extras`, and this guard once
471
+ // published it as a column named `Extras`. Kept only for the case
472
+ // where the property type isn't a reference at all.
558
473
  if (each === name)
559
474
  return property.written.includes("<") || property.written.replace(/[?\s]/g, "") === name;
560
475
  if (admitted.has(each) || owned.has(each))
@@ -1 +1 @@
1
- {"version":3,"file":"efcore.js","sourceRoot":"","sources":["../src/efcore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"efcore.js","sourceRoot":"","sources":["../src/efcore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,OAAO,EAAE,qBAAqB,EAAwB,MAAM,kBAAkB,CAAC;AAqF/E,MAAM,aAAa,GAAG,CAAC,+BAA+B,CAAC,CAAC;AAExD;;;;;;;;;GASG;AACH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO;IAClE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAC7D,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ;IAC1D,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;CACzE,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,UAA6B,EAAE,UAAU,GAAG,KAAK,EAAW,EAAE,CAC7F,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,CAAC,KAAK,EAAE,EAAE,CACR,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC;IAC/B,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CACpF,CAAC;AAEJ;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,iBAAgD;IAC1F,IAAI,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,OAAO,iBAAiB,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,MAAc;IACtD,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,oEAAoE;IACpE,yCAAyC;IACzC,OAAO,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,4EAA4E;AAC5E,SAAS,YAAY,CAAC,OAAe,EAAE,OAAe;IACpD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,OAAO,oCAAoC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1F,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,SAAS,OAAO,CAAC,OAAe;IAC9B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC,CAAC;AACjG,CAAC;AAED,iEAAiE;AACjE,SAAS,MAAM,CAAC,OAAe;IAC7B,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;AAC3G,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAAC,OAAe,EAAE,aAAkD;IACtF,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,gCAAgC;IACpF,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9E,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAChF,OAAO,SAAS,CAAC;AACnB,CAAC;AAWD,MAAM,WAAW,GAAgB;IAC/B,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,IAAI,GAAG,EAAE;IACnB,QAAQ,EAAE,IAAI,GAAG,EAAE;IACnB,OAAO,EAAE,IAAI,GAAG,EAAE;IAClB,IAAI,EAAE,IAAI,GAAG,EAAE;CAChB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,SAAS,WAAW,CAAC,MAAc;IACjC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,MAAM,MAAM,GAAG,6GAA6G,CAAC;IAC7H,KAAK,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAClF,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACvB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,gCAAgC,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aAChE,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,MAAM,GAAG,oGAAoG,CAAC;IACpH,KAAK,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;IAC1G,MAAM,GAAG,GAAG,oGAAoG,CAAC;IACjH,KAAK,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;IAEjG,MAAM,KAAK,GAAG,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC1E,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,mBAAmB,CAC1B,IAAY,EACZ,IAAY,EACZ,MAA6D,EAC7D,QAAmC;IAEnC,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACvE,IAAI,OAAO,GAAmC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAE7D,0EAA0E;IAC1E,uDAAuD;IACvD,SAAS,CAAC;QACR,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM;QAC9B,0DAA0D;QAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM;QAC/D,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW;YAAE,MAAM;QAC5C,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,MAAM;QACzB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM;QACtC,0EAA0E;QAC1E,oDAAoD;QACpD,KAAK,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzC,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,QAAoB,EAAE,KAAkB;IAC5D,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAC5D,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5D,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CACpB,QAAoB,EACpB,KAAkB,EAClB,OAAwB,EACxB,aAAkD;IAElD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAClF,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjF,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IAC7F,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACzE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IACjD,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE3C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,0EAA0E;QAC1E,sEAAsE;QACtE,8BAA8B;QAC9B,OAAO,YAAY;YACjB,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACjD,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IAC9C,CAAC;IACD,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACvD,OAAO,MAAM,KAAK,SAAS;YACzB,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE;YAC7C,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;IACnD,CAAC;IACD,4EAA4E;IAC5E,4CAA4C;IAC5C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;AACrD,CAAC;AAQD;;;;GAIG;AACH;;;;;;;;;;;;;GAaG;AACH,SAAS,aAAa,CACpB,UAAqD,EACrD,IAAwB,EACxB,YAAsD;IAEtD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC;IAE1C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,CAAC,EAAE,CAAC,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxE,KAAK,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACzG,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9E,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;QAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEhF,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,MAAM,aAAa,GAAG,IAAI,GAAG,EAA0B,CAAC;IACxD,8EAA8E;IAC9E,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4C,CAAC;IACxE,IAAI,qBAAqB,GAAG,CAAC,CAAC;IAC9B,IAAI,uBAAuB,GAAG,CAAC,CAAC;IAEhC,MAAM,IAAI,GAAyC,EAAE,CAAC;IACtD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/C,qBAAqB,IAAI,CAAC,CAAC;YAC3B,uBAAuB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YAC/E,SAAS;QACX,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACrC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,MAAM,KAAK,SAAS;gBAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;;gBAC/E,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,gFAAgF;IAChF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAiC,CAAC;IAC1D,6DAA6D;IAC7D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAChD,kFAAkF;IAClF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,yEAAyE;IACzE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhC,uEAAuE;IACvE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAqC;QAC5D,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,CAAC;QACpB,CAAC,eAAe,EAAE,IAAI,GAAG,EAAE,CAAC;QAC5B,CAAC,iBAAiB,EAAE,IAAI,GAAG,EAAE,CAAC;QAC9B,CAAC,eAAe,EAAE,IAAI,GAAG,EAAE,CAAC;KAC7B,CAAC,CAAC;IAEH;;;;;OAKG;IACH,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,IAAI,aAAiC,CAAC;IAEtC,MAAM,KAAK,GAAG,CAAC,IAAwB,EAAE,EAAyB,EAAQ,EAAE;QAC1E,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO;QAC9C,SAAS,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7B,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACvB,IAAI,aAAa,KAAK,SAAS;YAAE,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACvE,CAAC,CAAC;IAEF,kEAAkE;IAClE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC7C,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QAC9B,IAAI,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC;YAAE,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACnF,CAAC;IAED,kEAAkE;IAClE,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC9D,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QAC9B,IAAI,GAAG,GAAG,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;YACxB,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACnD,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;gBAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IAED,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;YAAE,SAAS;QAChD,aAAa,GAAG,MAAM,CAAC;QAEvB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,0EAA0E;YAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;YACnF,IAAI,SAAS,EAAE,CAAC;gBACd,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACvC,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBACvD,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBACvB,mEAAmE;oBACnE,6DAA6D;oBAC7D,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;wBAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACzF,CAAC;YACH,CAAC;YAED,+DAA+D;YAC/D,oEAAoE;YACpE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACxC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;gBAC9D,IAAI,MAAM,KAAK,SAAS;oBAAE,SAAS;gBACnC,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;gBAC/B,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;gBAClC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC5B,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI;oBAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9D,CAAC;YAED,2DAA2D;YAC3D,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAC7E,CAAC;QAED,0EAA0E;QAC1E,MAAM,OAAO,GAAG,2EAA2E,CAAC;QAC5F,KAAK,IAAI,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACpF,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC;QACrD,CAAC;QACD,oEAAoE;QACpE,MAAM,IAAI,GAAG,mFAAmF,CAAC;QACjG,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9E,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,2EAA2E;IAC3E,yEAAyE;IACzE,yDAAyD;IACzD,MAAM,UAAU,GAA4B,CAAC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,CAAC,CAAC;IAC3G,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACzB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,MAAM,UAAU,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC;IAE5F,MAAM,oBAAoB,GAAa,EAAE,CAAC;IAC1C,gFAAgF;IAChF,MAAM,mBAAmB,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IAC3D,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QAC9B,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS,CAAC,uBAAuB;QAC5E,MAAM,UAAU,GACd,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,sBAAsB,CAAC,CAAC;QAC5F,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,sEAAsE;YACtE,oEAAoE;YACpE,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;gBAAE,mBAAmB,CAAC,UAAU,IAAI,CAAC,CAAC;YACxD,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,mBAAmB,CAAC,QAAQ,IAAI,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAE,CAAC;QAE7B,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC;QAChD,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;QACvG,0EAA0E;QAC1E,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAC9B,CAAC;QACF,MAAM,OAAO,GAAe,EAAE,CAAC;QAC/B,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC;gBAAE,SAAS;YAC7C,sEAAsE;YACtE,kEAAkE;YAClE,uEAAuE;YACvE,uEAAuE;YACvE,uEAAuE;YACvE,wEAAwE;YACxE,uEAAuE;YACvE,oEAAoE;YACpE,oEAAoE;YACpE,4BAA4B;YAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5C,kEAAkE;gBAClE,6DAA6D;gBAC7D,kEAAkE;gBAClE,oDAAoD;gBACpD,IAAI,IAAI,KAAK,IAAI;oBAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC;gBAC5G,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACvD,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrC,OAAO,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,WAAW,CAAC;YACvE,CAAC,CAAC,CAAC;YACH,IAAI,YAAY,EAAE,CAAC;gBACjB,kBAAkB,IAAI,CAAC,CAAC;gBACxB,SAAS;YACX,CAAC;YACD,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;YAClF,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAEnC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC;YACV,QAAQ,EAAE,IAAI;YACd,GAAG,EACD,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,EAAE;gBACzB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC3B,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC5D,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;YACrB,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI;YACjC,UAAU,EAAE,EAAE;YACd,OAAO;YACP,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;SACtB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG;QAClB,KAAK,EAAE,CAAC;QACR,aAAa,EAAE,CAAC;QAChB,iBAAiB,EAAE,CAAC;QACpB,eAAe,EAAE,CAAC;KACnB,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO;QACL,MAAM;QACN,qBAAqB;QACrB,uBAAuB;QACvB,oBAAoB,EAAE,oBAAoB,CAAC,IAAI,EAAE;QACjD,iBAAiB,EAAE,EAAE,GAAG,mBAAmB,EAAE;QAC7C,kBAAkB;QAClB,UAAU;QACV,WAAW;KACZ,CAAC;AACJ,CAAC"}