@mmnto/totem 1.101.0 → 1.101.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/chunkers/chunker-registry.d.ts.map +1 -1
  2. package/dist/chunkers/chunker-registry.js +5 -0
  3. package/dist/chunkers/chunker-registry.js.map +1 -1
  4. package/dist/chunkers/chunker-registry.test.d.ts +1 -1
  5. package/dist/chunkers/chunker-registry.test.js +6 -2
  6. package/dist/chunkers/chunker-registry.test.js.map +1 -1
  7. package/dist/chunkers/generic-chunker.d.ts +8 -0
  8. package/dist/chunkers/generic-chunker.d.ts.map +1 -0
  9. package/dist/chunkers/generic-chunker.js +82 -0
  10. package/dist/chunkers/generic-chunker.js.map +1 -0
  11. package/dist/chunkers/generic-chunker.test.d.ts +15 -0
  12. package/dist/chunkers/generic-chunker.test.d.ts.map +1 -0
  13. package/dist/chunkers/generic-chunker.test.js +129 -0
  14. package/dist/chunkers/generic-chunker.test.js.map +1 -0
  15. package/dist/config-schema.d.ts +1 -1
  16. package/dist/config-schema.d.ts.map +1 -1
  17. package/dist/config-schema.js +4 -0
  18. package/dist/config-schema.js.map +1 -1
  19. package/dist/regex-safety/apply-rules-bounded.d.ts.map +1 -1
  20. package/dist/regex-safety/apply-rules-bounded.js +37 -15
  21. package/dist/regex-safety/apply-rules-bounded.js.map +1 -1
  22. package/dist/rule-engine.d.ts +15 -13
  23. package/dist/rule-engine.d.ts.map +1 -1
  24. package/dist/rule-engine.js +320 -93
  25. package/dist/rule-engine.js.map +1 -1
  26. package/dist/rule-engine.test.js +319 -1
  27. package/dist/rule-engine.test.js.map +1 -1
  28. package/dist/spine/selection-rule.d.ts.map +1 -1
  29. package/dist/spine/selection-rule.js +3 -73
  30. package/dist/spine/selection-rule.js.map +1 -1
  31. package/dist/spine/windtunnel-firing.js +1 -1
  32. package/dist/spine/windtunnel-firing.js.map +1 -1
  33. package/dist/sys/git.js +1 -1
  34. package/dist/sys/git.js.map +1 -1
  35. package/dist/sys/glob.d.ts +10 -0
  36. package/dist/sys/glob.d.ts.map +1 -0
  37. package/dist/sys/glob.js +280 -0
  38. package/dist/sys/glob.js.map +1 -0
  39. package/dist/sys/glob.test.d.ts +2 -0
  40. package/dist/sys/glob.test.d.ts.map +1 -0
  41. package/dist/sys/glob.test.js +280 -0
  42. package/dist/sys/glob.test.js.map +1 -0
  43. package/package.json +1 -1
@@ -4,7 +4,7 @@ import * as path from 'node:path';
4
4
  import { afterEach, beforeEach, describe, expect, it } from 'vitest';
5
5
  import { TotemError, TotemParseError } from './errors.js';
6
6
  import { resolveEngineVersion } from './pack-discovery.js';
7
- import { applyAstRulesToAdditions, applyRulesToAdditions, extractJustification, matchesGlob, parseFailSoftAttestation, } from './rule-engine.js';
7
+ import { applyAstRulesToAdditions, applyRulesToAdditions, extractJustification, getRustTestSpans, isProductionRustRule, matchesGlob, parseFailSoftAttestation, } from './rule-engine.js';
8
8
  import { cleanTmpDir, makeRuleEngineCtx } from './test-utils.js';
9
9
  /**
10
10
  * Seed `.totem/installed-packs.json` at `dir` so the stale-manifest
@@ -971,4 +971,322 @@ describe('applyAstRulesToAdditions fail-loud on unmapped extension (mmnto-ai/tot
971
971
  await expect(applyAstRulesToAdditions(ctx, [rule], additions, tmpDir)).resolves.toEqual([]);
972
972
  });
973
973
  });
974
+ // ─── Rust Inline Test Module Exemption (#2397) ─────────────────────
975
+ describe('Rust Inline Test Module Exemption (#2397)', () => {
976
+ it('isProductionRustRule identifies production-only Rust rules', () => {
977
+ // Production Rust rule with explicit exclusions
978
+ const rule1 = makeRule({
979
+ fileGlobs: ['**/*.rs', '!**/tests/**', '!**/*test*.rs'],
980
+ lessonHash: 'unwrap-rule',
981
+ });
982
+ expect(isProductionRustRule(rule1)).toBe(true);
983
+ // Production Rust rule with implicit exclusions (no test globs matched)
984
+ const rule2 = makeRule({
985
+ fileGlobs: ['src/**/*.rs'],
986
+ lessonHash: 'safe-rule',
987
+ });
988
+ expect(isProductionRustRule(rule2)).toBe(true);
989
+ // Test-specific rule (targets test files)
990
+ const rule3 = makeRule({
991
+ fileGlobs: ['**/*test*.rs'],
992
+ lessonHash: 'test-rule',
993
+ });
994
+ expect(isProductionRustRule(rule3)).toBe(false);
995
+ // Non-Rust rule
996
+ const rule4 = makeRule({
997
+ fileGlobs: ['**/*.ts'],
998
+ lessonHash: 'ts-rule',
999
+ });
1000
+ expect(isProductionRustRule(rule4)).toBe(false);
1001
+ // Non-string fileGlobs (ast-grep compound object rules)
1002
+ const rule5 = makeRule({
1003
+ fileGlobs: [
1004
+ '**/*.rs',
1005
+ // Runtime reality the string-guard defends against: ast-grep compound
1006
+ // rules can carry OBJECT entries in fileGlobs despite the declared
1007
+ // string[] type — modeled with a double-cast, not `any` (ESLint).
1008
+ { pattern: 'src/**/*.rs' },
1009
+ '!**/tests/**',
1010
+ '!**/*test*.rs',
1011
+ ],
1012
+ lessonHash: 'unwrap-rule-obj',
1013
+ });
1014
+ expect(isProductionRustRule(rule5)).toBe(true);
1015
+ });
1016
+ it('getRustTestSpans parses Rust content to find #[cfg(test)] mod spans', () => {
1017
+ const code = `
1018
+ fn prod_code() {
1019
+ let x = 1;
1020
+ let module_name = "test"; // offset test: 'module' starts with 'mod'
1021
+ let mode_active = true; // offset test: 'mode' starts with 'mod'
1022
+ }
1023
+
1024
+ #[cfg(test)]
1025
+ mod tests {
1026
+ #[test]
1027
+ fn test_something() {
1028
+ assert_eq!(1, 1);
1029
+ }
1030
+ }
1031
+
1032
+ fn more_prod_code() {}
1033
+
1034
+ #[cfg(test)]
1035
+ #[allow(non_snake_case)]
1036
+ mod MoreTests {
1037
+ use super::*;
1038
+ }
1039
+
1040
+ mod non_test_mod {
1041
+ // not exempt
1042
+ }
1043
+
1044
+ #[cfg(test)]
1045
+ mod external; // non-inline mod
1046
+ `;
1047
+ const spans = getRustTestSpans(code);
1048
+ // There are 2 inline test modules
1049
+ expect(spans).toHaveLength(2);
1050
+ // First inline module: #[cfg(test)] mod tests
1051
+ // #[cfg(test)] is on line 8 (1-based)
1052
+ // Closing brace is on line 14
1053
+ expect(spans[0]).toEqual({ startLine: 8, endLine: 14 });
1054
+ // Second inline module: #[cfg(test)] mod MoreTests
1055
+ // #[cfg(test)] is on line 18
1056
+ // Closing brace is on line 22
1057
+ expect(spans[1]).toEqual({ startLine: 18, endLine: 22 });
1058
+ });
1059
+ it('getRustTestSpans: lifetimes are not char-literal openers; pub test mods are spanned', () => {
1060
+ // Regression (review round): the char-literal skip must not treat a
1061
+ // lifetime tick (`'a`, `'static`) as a string opener — swallowing braces
1062
+ // between two lifetimes corrupts depth tracking and mis-sizes the span
1063
+ // (over-exemption suppresses REAL violations after the test module).
1064
+ const code = `
1065
+ #[cfg(test)]
1066
+ mod tests {
1067
+ struct Wrap<'a> { inner: &'a str }
1068
+ fn mk<'a>(s: &'a str) -> Wrap<'a> { Wrap { inner: s } }
1069
+ }
1070
+
1071
+ fn prod_after_mod() {
1072
+ let x = Some('x').unwrap();
1073
+ }
1074
+
1075
+ #[cfg(test)]
1076
+ pub mod pub_tests {
1077
+ use super::*;
1078
+ }
1079
+ `;
1080
+ const spans = getRustTestSpans(code);
1081
+ expect(spans).toHaveLength(2);
1082
+ // Lifetime-laden module closes on its real brace (line 6), so line 9's
1083
+ // production unwrap stays OUTSIDE every span.
1084
+ expect(spans[0]).toEqual({ startLine: 2, endLine: 6 });
1085
+ expect(spans[0].endLine).toBeLessThan(9);
1086
+ // `pub mod` after #[cfg(test)] is still a test module.
1087
+ expect(spans[1]).toEqual({ startLine: 12, endLine: 15 });
1088
+ });
1089
+ it('getRustTestSpans: a string ending in an escaped backslash does not over-read the module', () => {
1090
+ // Regression (greptile P1): the plain-string skip's `content[i-1] !== '\\'`
1091
+ // terminator check mis-reads a string ending in an escaped backslash
1092
+ // (`"\\"`) — the closing quote looks escaped, the scan over-reads, braces
1093
+ // get swallowed, and the span over-extends into production code. Counting
1094
+ // the CONSECUTIVE backslashes before the quote (odd = escaped, even =
1095
+ // terminator) fixes it. `"\\\\"` in this template literal is the two-char
1096
+ // Rust source `"\\"` (a string holding a single backslash).
1097
+ const code = `
1098
+ #[cfg(test)]
1099
+ mod tests {
1100
+ #[test]
1101
+ fn escaped_backslash() {
1102
+ let s = "\\\\";
1103
+ }
1104
+ }
1105
+
1106
+ fn prod_after_mod() {
1107
+ let x = Some(1).unwrap();
1108
+ }
1109
+ `;
1110
+ const spans = getRustTestSpans(code);
1111
+ expect(spans).toHaveLength(1);
1112
+ // The module closes at its real brace (line 8), NOT over-extended past it.
1113
+ expect(spans[0]).toEqual({ startLine: 2, endLine: 8 });
1114
+ // The production unwrap on line 11 stays OUTSIDE every span.
1115
+ expect(spans.some((s) => 11 >= s.startLine && 11 <= s.endLine)).toBe(false);
1116
+ });
1117
+ it('getRustTestSpans: nested block comments do not corrupt span depth', () => {
1118
+ // Regression (CodeRabbit Major, concrete half): Rust block comments NEST.
1119
+ // A naive `indexOf('*/')` closes at the first terminator, leaving a tail
1120
+ // whose `}` corrupts brace depth. A nesting-depth consumer keeps the span
1121
+ // ending at the module's real closing brace.
1122
+ const code = `
1123
+ #[cfg(test)]
1124
+ mod tests {
1125
+ /* outer /* inner */ has a } in it */
1126
+ let x = 1;
1127
+ }
1128
+
1129
+ fn prod_after_mod() {
1130
+ let y = Some(1).unwrap();
1131
+ }
1132
+ `;
1133
+ const spans = getRustTestSpans(code);
1134
+ expect(spans).toHaveLength(1);
1135
+ // Span ends at the real closing brace (line 6), not the `}` inside the
1136
+ // nested comment on line 4.
1137
+ expect(spans[0]).toEqual({ startLine: 2, endLine: 6 });
1138
+ // The production unwrap on line 9 stays OUTSIDE every span.
1139
+ expect(spans.some((s) => 9 >= s.startLine && 9 <= s.endLine)).toBe(false);
1140
+ });
1141
+ it('applyRulesToAdditions exempts regex violations inside inline Rust test modules', () => {
1142
+ const rule = makeRule({
1143
+ engine: 'regex',
1144
+ pattern: '\\.unwrap\\(\\)',
1145
+ fileGlobs: ['**/*.rs', '!**/tests/**', '!**/*test*.rs'],
1146
+ lessonHash: 'b2c3d4e5f6a70001',
1147
+ });
1148
+ const rsContent = `
1149
+ fn prod_code() {
1150
+ let val = Some(1).unwrap(); // line 3, violation!
1151
+ }
1152
+
1153
+ #[cfg(test)]
1154
+ mod tests {
1155
+ #[test]
1156
+ fn test_val() {
1157
+ let val = Some(1).unwrap(); // line 10, exempt!
1158
+ }
1159
+ }
1160
+ `;
1161
+ // Write file to temporary directory
1162
+ const filePath = 'src/lib.rs';
1163
+ fs.writeFileSync(path.join(tmpDir, filePath), rsContent, 'utf-8');
1164
+ const additions = [
1165
+ {
1166
+ file: filePath,
1167
+ line: ' let val = Some(1).unwrap(); // line 3, violation!',
1168
+ lineNumber: 3,
1169
+ precedingLine: null,
1170
+ },
1171
+ {
1172
+ file: filePath,
1173
+ line: ' let val = Some(1).unwrap(); // line 10, exempt!',
1174
+ lineNumber: 10,
1175
+ precedingLine: null,
1176
+ },
1177
+ ];
1178
+ const violations = applyRulesToAdditions(ctx, [rule], additions, undefined, tmpDir);
1179
+ expect(violations).toHaveLength(1);
1180
+ expect(violations[0]?.lineNumber).toBe(3);
1181
+ });
1182
+ it('applyRulesToAdditions emits a suppress event for a span-exempted match (#2397)', () => {
1183
+ // greptile P2: an exemption `continue` must still emit `onRuleEvent` so
1184
+ // metrics can distinguish "matched but test-span-exempt" from "never
1185
+ // matched". Assert the suppress event on the sync regex path (any one path
1186
+ // suffices — all four mirror this shape).
1187
+ const rule = makeRule({
1188
+ engine: 'regex',
1189
+ pattern: '\\.unwrap\\(\\)',
1190
+ fileGlobs: ['**/*.rs', '!**/tests/**', '!**/*test*.rs'],
1191
+ lessonHash: 'b2c3d4e5f6a70001',
1192
+ });
1193
+ const rsContent = `
1194
+ fn prod_code() {
1195
+ let val = Some(1).unwrap(); // line 3, violation!
1196
+ }
1197
+
1198
+ #[cfg(test)]
1199
+ mod tests {
1200
+ #[test]
1201
+ fn test_val() {
1202
+ let val = Some(1).unwrap(); // line 10, exempt!
1203
+ }
1204
+ }
1205
+ `;
1206
+ const filePath = 'src/lib.rs';
1207
+ fs.writeFileSync(path.join(tmpDir, filePath), rsContent, 'utf-8');
1208
+ const additions = [
1209
+ {
1210
+ file: filePath,
1211
+ line: ' let val = Some(1).unwrap(); // line 10, exempt!',
1212
+ lineNumber: 10,
1213
+ precedingLine: null,
1214
+ },
1215
+ ];
1216
+ const events = [];
1217
+ const onRuleEvent = (event, lessonHash, context) => {
1218
+ events.push({ event, lessonHash, context });
1219
+ };
1220
+ const violations = applyRulesToAdditions(ctx, [rule], additions, onRuleEvent, tmpDir);
1221
+ // The exempted match yields no violation but DOES emit a suppress event.
1222
+ expect(violations).toHaveLength(0);
1223
+ const suppressEvents = events.filter((e) => e.event === 'suppress');
1224
+ expect(suppressEvents).toHaveLength(1);
1225
+ expect(suppressEvents[0]?.lessonHash).toBe('b2c3d4e5f6a70001');
1226
+ expect(suppressEvents[0]?.context?.line).toBe(10);
1227
+ expect(suppressEvents[0]?.context?.justification).toContain('#2397');
1228
+ });
1229
+ // NOTE (review round): the original AST-path e2e test here asserted exemption
1230
+ // through a fixture no real rule can produce — Rust source in a `.ts` file
1231
+ // under `.ts` fileGlobs, reachable only via a production hardcode
1232
+ // (`lessonHash === 'unwrap-ast-rule'`) that existed to serve the fixture. Both
1233
+ // are removed. The AST-path exemption shares `isProductionRustRule` +
1234
+ // `getRustTestSpans` (unit-tested above) with the regex/bounded paths
1235
+ // (e2e-tested below); an honest AST e2e needs the Rust grammar registered,
1236
+ // which core's test env does not have (the #2308/#2387 language-pack lane).
1237
+ it('applyRulesToAdditionsBounded exempts bounded-regex violations inside Rust test modules', async () => {
1238
+ const { applyRulesToAdditionsBounded } = await import('./regex-safety/apply-rules-bounded.js');
1239
+ const { RegexEvaluator } = await import('./regex-safety/evaluator.js');
1240
+ const evaluator = new RegexEvaluator();
1241
+ try {
1242
+ const rule = makeRule({
1243
+ engine: 'regex',
1244
+ pattern: '\\.unwrap\\(\\)',
1245
+ fileGlobs: ['**/*.rs', '!**/tests/**', '!**/*test*.rs'],
1246
+ lessonHash: 'b2c3d4e5f6a70001',
1247
+ });
1248
+ const rsContent = `
1249
+ fn prod_code() {
1250
+ let val = Some(1).unwrap(); // line 3, violation!
1251
+ }
1252
+
1253
+ #[cfg(test)]
1254
+ mod tests {
1255
+ #[test]
1256
+ fn test_val() {
1257
+ let val = Some(1).unwrap(); // line 10, exempt!
1258
+ }
1259
+ }
1260
+ `;
1261
+ const filePath = 'src/lib.rs';
1262
+ fs.writeFileSync(path.join(tmpDir, filePath), rsContent, 'utf-8');
1263
+ const additions = [
1264
+ {
1265
+ file: filePath,
1266
+ line: ' let val = Some(1).unwrap(); // line 3, violation!',
1267
+ lineNumber: 3,
1268
+ precedingLine: null,
1269
+ },
1270
+ {
1271
+ file: filePath,
1272
+ line: ' let val = Some(1).unwrap(); // line 10, exempt!',
1273
+ lineNumber: 10,
1274
+ precedingLine: null,
1275
+ },
1276
+ ];
1277
+ const result = await applyRulesToAdditionsBounded(ctx, [rule], additions, {
1278
+ evaluator,
1279
+ timeoutMode: 'strict',
1280
+ repoRoot: tmpDir,
1281
+ });
1282
+ expect(result.violations).toHaveLength(1);
1283
+ expect(result.violations[0]?.lineNumber).toBe(3);
1284
+ }
1285
+ finally {
1286
+ // dispose() is async (evaluator.ts) — await it so the worker teardown
1287
+ // completes before the test exits (CodeRabbit minor).
1288
+ await evaluator.dispose();
1289
+ }
1290
+ });
1291
+ });
974
1292
  //# sourceMappingURL=rule-engine.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rule-engine.test.js","sourceRoot":"","sources":["../src/rule-engine.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAQrE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,wBAAwB,GAEzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEjE;;;;;;GAMG;AACH,SAAS,iBAAiB,CAAC,GAAW,EAAE,SAAiB,oBAAoB,EAAE;IAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC1C,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,+EAA+E;IAC/E,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,sBAAsB,CAAC,EAC3C,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EACjD,OAAO,CACR,CAAC;AACJ,CAAC;AAED,uDAAuD;AAEvD,IAAI,MAAc,CAAC;AACnB,IAAI,GAA+C,CAAC;AAEpD,UAAU,CAAC,GAAG,EAAE;IACd,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACtE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,GAAG,GAAG,iBAAiB,EAAE,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,GAAG,EAAE;IACb,WAAW,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC;AAEH,SAAS,QAAQ,CAAC,SAAgC;IAChD,OAAO;QACL,UAAU,EAAE,kBAAkB;QAC9B,aAAa,EAAE,WAAW;QAC1B,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,gBAAgB;QACzB,MAAM,EAAE,OAAO;QACf,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACpC,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,IAAY,EAAE,UAAkB;IAClE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;AACzD,CAAC;AAED,uDAAuD;AAEvD,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAEvE,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,oCAAoC;SAC/C,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;QAElE,oFAAoF;QACpF,sDAAsD;QACtD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAC/C,GAAG,EACH,CAAC,IAAI,CAAC,EACN,SAAS,EACT,MAAM,EACN,SAAS,EACT,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAC5B,CAAC;QACF,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8FAA8F,EAAE,KAAK,IAAI,EAAE;QAC5G,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACpD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAE7C,iEAAiE;QACjE,qEAAqE;QACrE,mEAAmE;QACnE,oEAAoE;QACpE,iEAAiE;QACjE,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE,eAAe;YAC3B,cAAc,EAAE,0BAA0B;SAC3C,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,MAAM,GAA4D,EAAE,CAAC;QAE3E,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAC/C,GAAG,EACH,CAAC,IAAI,CAAC,EACN,SAAS,EACT,MAAM,EACN,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YACnB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;QAC3D,CAAC,CACF,CAAC;QAEF,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QAC/D,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QACnC,MAAM,CAAC,YAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,CAAC,YAAa,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC9F,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAClC,+CAA+C,CAChD,CAAC;QAEF,MAAM,OAAO,GAAG,QAAQ,CAAC;YACvB,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE,UAAU;YACtB,cAAc,EAAE,0BAA0B,EAAE,qBAAqB;SAClE,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,QAAQ,CAAC;YACxB,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE,WAAW;YACvB,cAAc,EAAE,kBAAkB;SACnC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG;YAChB,YAAY,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;YAC1C,YAAY,CAAC,YAAY,EAAE,oBAAoB,EAAE,CAAC,CAAC;YACnD,YAAY,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC;SAC9C,CAAC;QAEF,MAAM,MAAM,GAA2C,EAAE,CAAC;QAC1D,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAC/C,GAAG,EACH,CAAC,OAAO,EAAE,QAAQ,CAAC,EACnB,SAAS,EACT,MAAM,EACN,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAC9C,CAAC;QAEF,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;QACvG,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAClC,0CAA0C,CAC3C,CAAC;QAEF,MAAM,YAAY,GAAG,QAAQ,CAAC;YAC5B,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE,cAAc;YAC1B,oFAAoF;YACpF,cAAc,EAAE,SAAS;YACzB,OAAO,EAAE,EAAE;YACX,eAAe,EAAE;gBACf,IAAI,EAAE;oBACJ,IAAI,EAAE,cAAc;oBACpB,GAAG,EAAE;wBACH,GAAG,EAAE;4BACH,IAAI,EAAE,iBAAiB;4BACvB,GAAG,EAAE;gCACH,GAAG,EAAE;oCACH,EAAE,IAAI,EAAE,sBAAsB,EAAE;oCAChC,EAAE,IAAI,EAAE,sBAAsB,EAAE;oCAChC,EAAE,IAAI,EAAE,cAAc,EAAE;oCACxB,EAAE,IAAI,EAAE,kBAAkB,EAAE;oCAC5B,EAAE,IAAI,EAAE,iBAAiB,EAAE;iCAC5B;gCACD,MAAM,EAAE,KAAK;6BACd;yBACF;qBACF;iBACF;aACF;SACF,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG;YAChB,YAAY,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC;YACtC,YAAY,CAAC,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC;YAC5C,YAAY,CAAC,YAAY,EAAE,iBAAiB,EAAE,CAAC,CAAC;YAChD,YAAY,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;SACnC,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC1F,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACpD,sEAAsE;QACtE,iDAAiD;QACjD,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,wEAAwE;IACxE,yEAAyE;IACzE,wEAAwE;IACxE,yEAAyE;IACzE,MAAM,iBAAiB,GAAG,GAAiB,EAAE,CAC3C,QAAQ,CAAC;QACP,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,qBAAqB;QACjC,cAAc,EAAE,SAAS;QACzB,OAAO,EAAE,EAAE;QACX,eAAe,EAAE;YACf,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;SACzF;KACF,CAAC,CAAC;IAEL,EAAE,CAAC,sHAAsH,EAAE,KAAK,IAAI,EAAE;QACpI,wEAAwE;QACxE,0EAA0E;QAC1E,4EAA4E;QAC5E,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAClC;YACE,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,IAAI;YACnB,oDAAoD,EAAE,IAAI;YAC1D,iBAAiB,EAAE,IAAI;YACvB,cAAc,EAAE,IAAI;YACpB,GAAG,EAAE,IAAI;YACT,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;QAEF,wEAAwE;QACxE,wEAAwE;QACxE,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;QAElE,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAC/C,GAAG,EACH,CAAC,iBAAiB,EAAE,CAAC,EACrB,SAAS,EACT,MAAM,CACP,CAAC;QACF,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gIAAgI,EAAE,KAAK,IAAI,EAAE;QAC9I,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAClC;YACE,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,IAAI;YACnB,kEAAkE,EAAE,IAAI;YACxE,cAAc,EAAE,IAAI;YACpB,GAAG,EAAE,IAAI;YACT,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;QAEF,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;QAElE,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAC/C,GAAG,EACH,CAAC,iBAAiB,EAAE,CAAC,EACrB,SAAS,EACT,MAAM,CACP,CAAC;QACF,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oHAAoH,EAAE,KAAK,IAAI,EAAE;QAClI,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAClC;YACE,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,IAAI;YACnB,iBAAiB,EAAE,IAAI;YACvB,cAAc,EAAE,IAAI;YACpB,GAAG,EAAE,IAAI;YACT,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;QAEF,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;QAElE,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAC/C,GAAG,EACH,CAAC,iBAAiB,EAAE,CAAC,EACrB,SAAS,EACT,MAAM,CACP,CAAC;QACF,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,uEAAuE;IACvE,qEAAqE;IACrE,sEAAsE;IACtE,oEAAoE;IACpE,6DAA6D;IAC7D,MAAM,mBAAmB,GAAG,GAAiB,EAAE,CAC7C,QAAQ,CAAC;QACP,MAAM,EAAE,KAAK;QACb,UAAU,EAAE,oBAAoB;QAChC,QAAQ,EAAE,2BAA2B;KACtC,CAAC,CAAC;IAEL,EAAE,CAAC,kHAAkH,EAAE,KAAK,IAAI,EAAE;QAChI,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAClC;YACE,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,IAAI;YACnB,oDAAoD,EAAE,IAAI;YAC1D,iBAAiB,EAAE,IAAI;YACvB,cAAc,EAAE,IAAI;YACpB,GAAG,EAAE,IAAI;YACT,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;QAEF,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;QAElE,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAC/C,GAAG,EACH,CAAC,mBAAmB,EAAE,CAAC,EACvB,SAAS,EACT,MAAM,CACP,CAAC;QACF,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6HAA6H,EAAE,KAAK,IAAI,EAAE;QAC3I,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAClC;YACE,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,IAAI;YACnB,iBAAiB,EAAE,IAAI;YACvB,cAAc,EAAE,IAAI;YACpB,GAAG,EAAE,IAAI;YACT,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;QAEF,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;QAElE,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAC/C,GAAG,EACH,CAAC,mBAAmB,EAAE,CAAC,EACvB,SAAS,EACT,MAAM,CACP,CAAC;QACF,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,8EAA8E;IAC9E,kFAAkF;IAClF,2EAA2E;IAC3E,8EAA8E;IAC9E,gFAAgF;IAChF,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC/C,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;YAChE,MAAM,CAAC,wBAAwB,CAAC,6CAA6C,CAAC,CAAC,CAAC,OAAO,CAAC;gBACtF,IAAI,EAAE,WAAW;gBACjB,QAAQ,EAAE,0BAA0B;aACrC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mFAAmF,EAAE,GAAG,EAAE;YAC3F,2EAA2E;YAC3E,yEAAyE;YACzE,+DAA+D;YAC/D,KAAK,MAAM,MAAM,IAAI;gBACnB,8CAA8C;gBAC9C,8CAA8C;gBAC9C,+CAA+C;aAChD,EAAE,CAAC;gBACF,MAAM,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC/C,IAAI,EAAE,WAAW;oBACjB,QAAQ,EAAE,0BAA0B;iBACrC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;YAC9E,MAAM,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7F,MAAM,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC9D,IAAI,EAAE,WAAW;gBACjB,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;YACpF,uEAAuE;YACvE,uEAAuE;YACvE,2DAA2D;YAC3D,MAAM,CAAC,wBAAwB,CAAC,gCAAgC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC9E,MAAM,CAAC,wBAAwB,CAAC,sCAAsC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACtF,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,CAAC,aAAqB,EAAQ,EAAE,CACjD,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAClC;YACE,OAAO;YACP,aAAa;YACb,KAAK,aAAa,EAAE;YACpB,iBAAiB;YACjB,cAAc;YACd,GAAG;YACH,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;QAEJ,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC7E,UAAU,CAAC,+DAA+D,CAAC,CAAC;YAC5E,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;YAClE,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAC/C,GAAG,EACH,CAAC,iBAAiB,EAAE,CAAC,EACrB,SAAS,EACT,MAAM,CACP,CAAC;YACF,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;YAC5F,UAAU,CAAC,6BAA6B,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;YAClE,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAC/C,GAAG,EACH,CAAC,iBAAiB,EAAE,CAAC,EACrB,SAAS,EACT,MAAM,CACP,CAAC;YACF,2EAA2E;YAC3E,wEAAwE;YACxE,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrD,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YACzE,UAAU,CAAC,6BAA6B,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;YAClE,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAC/C,GAAG,EACH,CAAC,mBAAmB,EAAE,CAAC,EACvB,SAAS,EACT,MAAM,CACP,CAAC;YACF,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrD,4EAA4E;YAC5E,8EAA8E;YAC9E,oBAAoB;YACpB,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC1E,UAAU,CAAC,uCAAuC,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;YAClE,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAC/C,GAAG,EACH,CAAC,iBAAiB,EAAE,CAAC,EACrB,SAAS,EACT,MAAM,CACP,CAAC;YACF,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;YAC/F,UAAU,CAAC,uDAAuD,CAAC,CAAC;YACpE,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;YAClE,MAAM,MAAM,GAAyD,EAAE,CAAC;YACxE,MAAM,wBAAwB,CAC5B,GAAG,EACH,CAAC,iBAAiB,EAAE,CAAC,EACrB,SAAS,EACT,MAAM,EACN,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAC3D,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC;YAC5D,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC;gBAC7C,IAAI,EAAE,WAAW;gBACjB,QAAQ,EAAE,kBAAkB;aAC7B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAEvE,MAAM,YAAY,GAAG,QAAQ,CAAC;YAC5B,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE,cAAc;YAC1B,cAAc,EAAE,SAAS;YACzB,OAAO,EAAE,EAAE;YACX,eAAe,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE;SAC1D,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,MAAM,GAA4D,EAAE,CAAC;QAE3E,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAC/C,GAAG,EACH,CAAC,YAAY,CAAC,EACd,SAAS,EACT,MAAM,EACN,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAC/E,CAAC;QAEF,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QAC1D,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9B,MAAM,CAAC,OAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,uCAAuC,CAAC,CAAC;QAE9F,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,UAAU;YAClB,cAAc,EAAE,kBAAkB;SACnC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC;QAE3E,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAClF,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,mEAAmE;QACnE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,gCAAgC,CAAC,CAAC;QAEvF,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,UAAU;YAClB,cAAc,EAAE,+BAA+B;SAChD,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,gCAAgC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEpF,oDAAoD;QACpD,MAAM,gBAAgB,GAAG,KAAK,EAAE,QAAgB,EAAE,EAAE;YAClD,IAAI,QAAQ,KAAK,YAAY;gBAAE,OAAO,kCAAkC,CAAC;YACzE,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAC/C,GAAG,EACH,CAAC,IAAI,CAAC,EACN,SAAS,EACT,MAAM,EACN,SAAS,EACT,SAAS,EACT,gBAAgB,CACjB,CAAC;QACF,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,gCAAgC,CAAC,CAAC;QAEvF,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,UAAU;YAClB,cAAc,EAAE,6BAA6B;SAC9C,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC;QAElF,sEAAsE;QACtE,MAAM,6BAA6B,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC;QAEvD,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAC/C,GAAG,EACH,CAAC,IAAI,CAAC,EACN,SAAS,EACT,MAAM,EACN,SAAS,EACT,SAAS,EACT,6BAA6B,CAC9B,CAAC;QACF,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,4EAA4E;IAClH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,gCAAgC,CAAC,CAAC;QAEvF,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,UAAU;YAClB,cAAc,EAAE,6BAA6B;SAC9C,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,8BAA8B,EAAE,CAAC,CAAC,CAAC,CAAC;QAElF,kCAAkC;QAClC,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAClF,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,gGAAgG;QAChG,0EAA0E;QAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAChD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,yBAAyB,CAAC,CAAC;QAElF,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,UAAU;YAClB,cAAc,EAAE,kBAAkB;SACnC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC;QAE3E,2HAA2H;QAC3H,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACpF,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAClC,uDAAuD,CACxD,CAAC;QAEF,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE,wBAAwB;YACpC,cAAc,EAAE,kBAAkB;SACnC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAmB;YAChC;gBACE,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,uCAAuC;gBAC7C,UAAU,EAAE,CAAC;gBACb,aAAa,EAAE,IAAI;aACpB;SACF,CAAC;QAEF,MAAM,MAAM,GAA2C,EAAE,CAAC;QAC1D,MAAM,WAAW,GAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACrD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC/F,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAClC,2CAA2C,CAC5C,CAAC;QAEF,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,KAAK;YACb,UAAU,EAAE,2BAA2B;YACvC,QAAQ,EAAE,kCAAkC;SAC7C,CAAC,CAAC;QAEH,MAAM,SAAS,GAAmB;YAChC;gBACE,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,cAAc;gBACpB,UAAU,EAAE,CAAC;gBACb,aAAa,EAAE,2BAA2B;aAC3C;SACF,CAAC;QAEF,MAAM,MAAM,GAA2C,EAAE,CAAC;QAC1D,MAAM,WAAW,GAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACrD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC/F,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,wDAAwD;AAExD,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACrD,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,eAAe;YACxB,UAAU,EAAE,mBAAmB;SAChC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAmB;YAChC;gBACE,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,uCAAuC;gBAC7C,UAAU,EAAE,EAAE;gBACd,aAAa,EAAE,IAAI;aACpB;SACF,CAAC;QAEF,MAAM,MAAM,GAAuE,EAAE,CAAC;QACtF,MAAM,WAAW,GAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC9E,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;YACjC,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,EAAE;YACR,aAAa,EAAE,EAAE;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE,GAAG,EAAE;QAC3F,qEAAqE;QACrE,sEAAsE;QACtE,qEAAqE;QACrE,8BAA8B;QAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,kBAAkB;YAC3B,UAAU,EAAE,qBAAqB;YACjC,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAmB;YAChC;gBACE,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,mCAAmC;gBACzC,UAAU,EAAE,EAAE;gBACd,aAAa,EAAE,IAAI;aACpB;SACF,CAAC;QAEF,MAAM,MAAM,GAAuE,EAAE,CAAC;QACtF,MAAM,WAAW,GAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC;QAEF,qBAAqB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,eAAe;YACxB,UAAU,EAAE,kBAAkB;SAC/B,CAAC,CAAC;QAEH,MAAM,SAAS,GAAmB;YAChC;gBACE,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,uBAAuB;gBAC7B,UAAU,EAAE,EAAE;gBACd,aAAa,EAAE,IAAI;aACpB;SACF,CAAC;QAEF,MAAM,MAAM,GAAuE,EAAE,CAAC;QACtF,MAAM,WAAW,GAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC9E,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;YACjC,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,eAAe;YACxB,UAAU,EAAE,mBAAmB;SAChC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAmB;YAChC;gBACE,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,kEAAkE;gBACxE,UAAU,EAAE,CAAC;gBACb,aAAa,EAAE,IAAI;aACpB;SACF,CAAC;QAEF,MAAM,MAAM,GAAuE,EAAE,CAAC;QACtF,MAAM,WAAW,GAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC9E,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;YACjC,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,CAAC;YACP,aAAa,EAAE,0BAA0B;SAC1C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,eAAe;YACxB,UAAU,EAAE,oBAAoB;SACjC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAmB;YAChC;gBACE,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,uBAAuB;gBAC7B,UAAU,EAAE,CAAC;gBACb,aAAa,EAAE,sDAAsD;aACtE;SACF,CAAC;QAEF,MAAM,MAAM,GAAuE,EAAE,CAAC;QACtF,MAAM,WAAW,GAAsB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC9E,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;YACjC,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,CAAC;YACP,aAAa,EAAE,oCAAoC;SACpD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,eAAe;YACxB,UAAU,EAAE,iBAAiB;SAC9B,CAAC,CAAC;QAEH,MAAM,SAAS,GAAmB;YAChC;gBACE,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,wDAAwD;gBAC9D,UAAU,EAAE,CAAC;gBACb,aAAa,EAAE,IAAI;aACpB;SACF,CAAC;QAEF,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;QACjE,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,eAAe;YACxB,UAAU,EAAE,kBAAkB;SAC/B,CAAC,CAAC;QAEH,MAAM,SAAS,GAAmB;YAChC;gBACE,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,uBAAuB;gBAC7B,UAAU,EAAE,CAAC;gBACb,aAAa,EAAE,4CAA4C;aAC5D;SACF,CAAC;QAEF,MAAM,UAAU,GAAG,qBAAqB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;QACjE,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qFAAqF,EAAE,GAAG,EAAE;QAC7F,wEAAwE;QACxE,0EAA0E;QAC1E,0EAA0E;QAC1E,8DAA8D;QAC9D,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,eAAe;YACxB,UAAU,EAAE,gBAAgB;SAC7B,CAAC,CAAC;QACH,MAAM,SAAS,GAAmB;YAChC;gBACE,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,8CAA8C;gBACpD,UAAU,EAAE,CAAC;gBACb,aAAa,EAAE,IAAI;aACpB;SACF,CAAC;QAEF,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;QACjC,qBAAqB,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;QAC/C,qBAAqB,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;QAE/C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,eAAe;YACxB,UAAU,EAAE,YAAY;SACzB,CAAC,CAAC;QACH,MAAM,SAAS,GAAmB;YAChC;gBACE,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,0CAA0C;gBAChD,UAAU,EAAE,CAAC;gBACb,aAAa,EAAE,IAAI;aACpB;YACD;gBACE,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,0CAA0C;gBAChD,UAAU,EAAE,CAAC;gBACb,aAAa,EAAE,IAAI;aACpB;SACF,CAAC;QAEF,qBAAqB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,wDAAwD;AAExD,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE,yBAAyB,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE,0CAA0C,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CACtF,gBAAgB,CACjB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,+BAA+B,CAAC,CAAC,CAAC,IAAI,CAChF,aAAa,CACd,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CACJ,oBAAoB,CAClB,GAAG,EACH,4CAA4C,EAC5C,oCAAoC,CACrC,CACF,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE,4CAA4C,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CACxF,cAAc,CACf,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE,uCAAuC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CACnF,YAAY,CACb,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,iCAAiC,CAAC,CAAC,CAAC,IAAI,CAClF,cAAc,CACf,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,kEAAkE;QAClE,MAAM,CACJ,oBAAoB,CAClB,GAAG,EACH,sCAAsC,EACtC,+BAA+B,CAChC,CACF,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACrB,mFAAmF;QACnF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,qDAAqD;AAErD,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,WAAW,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,CAAC,WAAW,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,CAAC,WAAW,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1D,0DAA0D;QAC1D,MAAM,CAAC,WAAW,CAAC,2BAA2B,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,WAAW,CAAC,wCAAwC,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxF,MAAM,CAAC,WAAW,CAAC,mCAAmC,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,WAAW,CAAC,yBAAyB,EAAE,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClF,MAAM,CAAC,WAAW,CAAC,0BAA0B,EAAE,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,CAAC,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,MAAM,CAAC,WAAW,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9D,4CAA4C;QAC5C,MAAM,CAAC,WAAW,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,sEAAsE;IACtE,qEAAqE;IACrE,mEAAmE;IACnE,iFAAiF;IACjF,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,0BAA0B;QAC1B,MAAM,CAAC,WAAW,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,yCAAyC;QACzC,MAAM,CAAC,WAAW,CAAC,mCAAmC,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvF,6DAA6D;QAC7D,MAAM,CAAC,WAAW,CAAC,uCAAuC,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvF,MAAM,CAAC,WAAW,CAAC,4BAA4B,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/E,0EAA0E;QAC1E,MAAM,CAAC,WAAW,CAAC,kCAAkC,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnF,yCAAyC;QACzC,MAAM,CAAC,WAAW,CAAC,0BAA0B,EAAE,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,qEAAqE;IACrE,oEAAoE;IACpE,kEAAkE;IAClE,wEAAwE;IACxE,oEAAoE;IACpE,0BAA0B;IAC1B,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,mBAAmB;QACnB,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,uEAAuE;QACvE,MAAM,CAAC,WAAW,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrE,MAAM,CAAC,WAAW,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qFAAqF,EAAE,GAAG,EAAE;QAC7F,yEAAyE;QACzE,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,CAAC,WAAW,CAAC,yBAAyB,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,4EAA4E;AAE5E,QAAQ,CAAC,gFAAgF,EAAE,GAAG,EAAE;IAC9F,yHAAyH;IACzH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,sKAAsK;QACtK,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC1B,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,8EAA8E;QACrJ,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,mBAAmB;YAC7B,SAAS,EAAE,CAAC,SAAS,CAAC;YACtB,UAAU,EAAE,cAAc;YAC1B,aAAa,EAAE,aAAa;SAC7B,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;QAEjE,+DAA+D;QAC/D,iEAAiE;QACjE,qEAAqE;QACrE,mEAAmE;QACnE,qEAAqE;QACrE,8DAA8D;QAC9D,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,wBAAwB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,CAAC;QACf,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,MAAyB,CAAC,CAAC,6FAA6F;QACpI,iEAAiE;QACjE,qEAAqE;QACrE,mEAAmE;QACnE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CACzB,6FAA6F,CAC9F,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,oEAAoE;IACpE,oEAAoE;IACpE,yDAAyD;IACzD,kEAAkE;IAClE,mEAAmE;IACnE,iEAAiE;IACjE,aAAa;IAEb,sFAAsF;IACtF,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,2DAA2D;QAC3D,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,8EAA8E;QACrJ,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,mBAAmB;YAC7B,SAAS,EAAE,CAAC,SAAS,CAAC;YACtB,UAAU,EAAE,cAAc;SAC3B,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;QAEjE,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,wBAAwB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,CAAC;QACf,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QACnD,6FAA6F;QAC7F,MAAM,EAAE,GAAG,MAAoB,CAAC;QAChC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACvC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,sFAAsF;IACtF,EAAE,CAAC,4EAA4E,EAAE,KAAK,IAAI,EAAE;QAC1F,iEAAiE;QACjE,4CAA4C;QAC5C,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,8EAA8E;QACrJ,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,mBAAmB;YAC7B,SAAS,EAAE,CAAC,SAAS,CAAC;YACtB,UAAU,EAAE,cAAc;SAC3B,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;QAEjE,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,wBAAwB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,CAAC;QACf,CAAC;QACD,6FAA6F;QAC7F,MAAM,GAAG,GAAG,MAAoB,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,sFAAsF;IACtF,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,8DAA8D;QAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7C,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,+EAA+E;QAC/E,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,sBAAsB,CAAC,EAC3C,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,EACzC,OAAO,CACR,CAAC;QACF,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,8EAA8E;QACrJ,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,mBAAmB;YAC7B,SAAS,EAAE,CAAC,SAAS,CAAC;YACtB,UAAU,EAAE,cAAc;SAC3B,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;QAEjE,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,wBAAwB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,CAAC;QACf,CAAC;QACD,6FAA6F;QAC7F,MAAM,GAAG,GAAG,MAAoB,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,yDAAyD;IACzD,EAAE,CAAC,wFAAwF,EAAE,KAAK,IAAI,EAAE;QACtG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,8EAA8E;QACrJ,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,kFAAkF;QAE1J,iEAAiE;QACjE,oEAAoE;QACpE,mEAAmE;QACnE,UAAU;QACV,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,wBAAwB;YAClC,SAAS,EAAE,CAAC,SAAS,CAAC;YACtB,UAAU,EAAE,cAAc;SAC3B,CAAC,CAAC;QACH,MAAM,SAAS,GAAG;YAChB,YAAY,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC;YAC5C,YAAY,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC;SAC9C,CAAC;QAEF,sEAAsE;QACtE,kDAAkD;QAClD,MAAM,MAAM,CAAC,wBAAwB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CACrF,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAClB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,yDAAyD;IACzD,EAAE,CAAC,uFAAuF,EAAE,KAAK,IAAI,EAAE;QACrG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,8EAA8E;QACrJ,MAAM,IAAI,GAAG,QAAQ,CAAC;YACpB,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,wBAAwB;YAClC,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,eAAe;SAC5B,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;QAEjE,kEAAkE;QAClE,iEAAiE;QACjE,gEAAgE;QAChE,MAAM,MAAM,CAAC,wBAAwB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"rule-engine.test.js","sourceRoot":"","sources":["../src/rule-engine.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"selection-rule.d.ts","sourceRoot":"","sources":["../../src/spine/selection-rule.ts"],"names":[],"mappings":"AAYA;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,0EAA0E;AAC1E,MAAM,WAAW,mBAAmB;IAClC,qEAAqE;IACrE,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,gFAAgF;IAChF,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iEAAiE;IACjE,aAAa,EAAE,OAAO,CAAC;IACvB;;;;;;OAMG;IACH,MAAM,EAAE;QAAE,IAAI,EAAE,KAAK,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1D;AAED,kFAAkF;AAClF,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,WAAW,EAAE,OAAO,CAAC;IACrB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,qFAAqF;AACrF,MAAM,WAAW,SAAS;IACxB,wCAAwC;IACxC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,wCAAwC;IACxC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wFAAwF;AACxF,qBAAa,uBAAwB,SAAQ,KAAK;aACpB,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;CAM5C;AAuED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAQ9F;AAID;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAIrD;AAYD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAUzD;AAID,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGrE;AAOD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAY5D;AAID;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAKzF;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAyB3F;AAID,mFAAmF;AACnF,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAM1E;AAED,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAGzE"}
1
+ {"version":3,"file":"selection-rule.d.ts","sourceRoot":"","sources":["../../src/spine/selection-rule.ts"],"names":[],"mappings":"AAcA;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,0EAA0E;AAC1E,MAAM,WAAW,mBAAmB;IAClC,qEAAqE;IACrE,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,gFAAgF;IAChF,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iEAAiE;IACjE,aAAa,EAAE,OAAO,CAAC;IACvB;;;;;;OAMG;IACH,MAAM,EAAE;QAAE,IAAI,EAAE,KAAK,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1D;AAED,kFAAkF;AAClF,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,sDAAsD;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,WAAW,EAAE,OAAO,CAAC;IACrB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,qFAAqF;AACrF,MAAM,WAAW,SAAS;IACxB,wCAAwC;IACxC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,wCAAwC;IACxC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wFAAwF;AACxF,qBAAa,uBAAwB,SAAQ,KAAK;aACpB,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;CAM5C;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAQ9F;AAID;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAIrD;AAYD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAUzD;AAID,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGrE;AAOD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAY5D;AAID;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAKzF;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAyB3F;AAID,mFAAmF;AACnF,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAM1E;AAED,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAGzE"}
@@ -7,6 +7,7 @@
7
7
  // the §6 check `resolvedPrs ≡ selectionRule(asOfCommit)` from a tautology into a
8
8
  // real gate. IO (git enumeration → PrMeta) lives in the cli layer; this module
9
9
  // is the pure mathematical predicate over PrMeta.
10
+ import { matchesPathGlob } from '../sys/glob.js';
10
11
  /** Thrown when a merge subject carries a TRAILING `(#…)` that is not a valid PR ref. */
11
12
  export class SelectionRuleParseError extends Error {
12
13
  subject;
@@ -16,77 +17,6 @@ export class SelectionRuleParseError extends Error {
16
17
  this.name = 'SelectionRuleParseError';
17
18
  }
18
19
  }
19
- // ─── Glob matching (self-contained; frozen narrow classifier) ────────────────
20
- function escapeRegexChar(ch) {
21
- return /[.*+?^${}()|[\]\\]/.test(ch) ? `\\${ch}` : ch;
22
- }
23
- /**
24
- * Translate a path glob to an anchored RegExp. Supports:
25
- * `**​/` → zero or more path segments
26
- * `**` → any characters including `/`
27
- * `*` → any characters except `/`
28
- * `?` → a single character except `/`
29
- * `{a,b,c}` → brace alternation (e.g. `**​/*.{ts,tsx}`)
30
- * Sufficient for the frozen code-path classifier; avoids a glob dependency and
31
- * keeps matching deterministic/offline.
32
- */
33
- function globToRegExp(glob) {
34
- const g = glob.replace(/\\/g, '/');
35
- let re = '';
36
- let i = 0;
37
- while (i < g.length) {
38
- const c = g[i];
39
- if (c === '*') {
40
- if (g[i + 1] === '*') {
41
- if (g[i + 2] === '/') {
42
- re += '(?:[^/]+/)*'; // '**/' → zero or more segments (matches the empty case)
43
- i += 3;
44
- }
45
- else {
46
- re += '.*'; // '**' (e.g. trailing) → any chars incl. '/'
47
- i += 2;
48
- }
49
- }
50
- else {
51
- re += '[^/]*'; // '*' → any chars within a segment
52
- i += 1;
53
- }
54
- }
55
- else if (c === '?') {
56
- re += '[^/]';
57
- i += 1;
58
- }
59
- else if (c === '{') {
60
- const end = g.indexOf('}', i);
61
- if (end > i) {
62
- const alts = g
63
- .slice(i + 1, end)
64
- .split(',')
65
- .map((alt) => alt.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')); // alternatives are literals
66
- re += `(?:${alts.join('|')})`; // '{ts,tsx}' → '(?:ts|tsx)'
67
- i = end + 1;
68
- }
69
- else {
70
- re += escapeRegexChar(c); // unmatched '{' → literal
71
- i += 1;
72
- }
73
- }
74
- else {
75
- re += escapeRegexChar(c);
76
- i += 1;
77
- }
78
- }
79
- return new RegExp(`^${re}$`);
80
- }
81
- const globCache = new Map();
82
- function matchGlob(filePath, glob) {
83
- let re = globCache.get(glob);
84
- if (!re) {
85
- re = globToRegExp(glob);
86
- globCache.set(glob, re);
87
- }
88
- return re.test(filePath);
89
- }
90
20
  /**
91
21
  * A PR is code-touching iff at least one changed file matches ≥1 includeGlob and
92
22
  * no excludeGlob. Exclude wins at the FILE level (not the PR level), so a PR
@@ -96,10 +26,10 @@ function matchGlob(filePath, glob) {
96
26
  export function isCodeTouching(changedFiles, classifier) {
97
27
  return changedFiles.some((raw) => {
98
28
  const file = raw.replace(/\\/g, '/');
99
- const included = classifier.includeGlobs.some((g) => matchGlob(file, g));
29
+ const included = classifier.includeGlobs.some((g) => matchesPathGlob(file, g));
100
30
  if (!included)
101
31
  return false;
102
- const excluded = classifier.excludeGlobs.some((g) => matchGlob(file, g));
32
+ const excluded = classifier.excludeGlobs.some((g) => matchesPathGlob(file, g));
103
33
  return !excluded;
104
34
  });
105
35
  }