@bikky/compiler 0.1.18 → 0.2.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.
Files changed (49) hide show
  1. package/.idea/Compiler.iml +1 -0
  2. package/.idea/scopes/All_Typescript_Files.xml +3 -0
  3. package/Execution/generate.mjs +24 -21
  4. package/Execution/generate.mjs.map +1 -1
  5. package/Execution/generate.mts +34 -26
  6. package/Libraries/BiscuitLibraries.d.mts +2 -0
  7. package/Libraries/BiscuitLibraries.d.mts.map +1 -1
  8. package/Libraries/BiscuitLibraries.mjs +4 -0
  9. package/Libraries/BiscuitLibraries.mjs.map +1 -1
  10. package/Libraries/BiscuitLibraries.mts +5 -1
  11. package/Libraries/ClassMigration.d.mts +88 -0
  12. package/Libraries/ClassMigration.d.mts.map +1 -0
  13. package/Libraries/ClassMigration.mjs +368 -0
  14. package/Libraries/ClassMigration.mjs.map +1 -0
  15. package/Libraries/ClassMigration.mts +431 -0
  16. package/Libraries/RBF.d.mts +4 -0
  17. package/Libraries/RBF.d.mts.map +1 -0
  18. package/Libraries/RBF.mjs +36 -0
  19. package/Libraries/RBF.mjs.map +1 -0
  20. package/Libraries/RBF.mts +46 -0
  21. package/Libraries/RBFTypes.d.ts +43 -0
  22. package/Source/ASTInterface/Crawler.d.ts +2 -1
  23. package/Source/ASTInterface/Crawler.d.ts.map +1 -1
  24. package/Source/ASTInterface/Crawler.js +14 -2
  25. package/Transformers/Main.d.ts +1 -1
  26. package/Transformers/Main.d.ts.map +1 -1
  27. package/Transformers/Main.js +3 -2
  28. package/Transformers/RBFHelpers/Constants.d.ts +3 -0
  29. package/Transformers/RBFHelpers/Constants.d.ts.map +1 -0
  30. package/Transformers/RBFHelpers/Constants.js +7 -0
  31. package/Transformers/RBFHelpers/Imports.d.ts +12 -0
  32. package/Transformers/RBFHelpers/Imports.d.ts.map +1 -0
  33. package/Transformers/RBFHelpers/Imports.js +212 -0
  34. package/Transformers/RBFHelpers/Print.d.ts +1 -0
  35. package/Transformers/RBFHelpers/Print.d.ts.map +1 -0
  36. package/Transformers/RBFHelpers/Print.js +2 -0
  37. package/Transformers/RBFHelpers/PropertyConfig.d.ts +65 -0
  38. package/Transformers/RBFHelpers/PropertyConfig.d.ts.map +1 -0
  39. package/Transformers/RBFHelpers/PropertyConfig.js +420 -0
  40. package/Transformers/RBFTransformer.d.ts +2 -0
  41. package/Transformers/RBFTransformer.d.ts.map +1 -0
  42. package/Transformers/RBFTransformer.js +317 -0
  43. package/package.json +1 -1
  44. package/tsconfig.build.libs.tsbuildinfo +1 -1
  45. package/tsconfig.build.src.tsbuildinfo +1 -1
  46. package/tsconfig.tsbuildinfo +1 -1
  47. package/Transformers/ReplicableTransformer.d.ts +0 -2
  48. package/Transformers/ReplicableTransformer.d.ts.map +0 -1
  49. package/Transformers/ReplicableTransformer.js +0 -797
@@ -5,6 +5,7 @@
5
5
  <excludeFolder url="file://$MODULE_DIR$/.tmp" />
6
6
  <excludeFolder url="file://$MODULE_DIR$/temp" />
7
7
  <excludeFolder url="file://$MODULE_DIR$/tmp" />
8
+ <excludeFolder url="file://$MODULE_DIR$/Cache" />
8
9
  </content>
9
10
  <orderEntry type="inheritedJdk" />
10
11
  <orderEntry type="sourceFolder" forTests="false" />
@@ -0,0 +1,3 @@
1
+ <component name="DependencyValidationManager">
2
+ <scope name="All Typescript Files" pattern="(file:*/*.ts||file:*/*.mts)&amp;&amp;!file:*/*.d.ts&amp;&amp;!file:*/*.d.mts" />
3
+ </component>
@@ -15,27 +15,33 @@ if (!fs.existsSync(cache)) {
15
15
  { //Clear the cache.
16
16
  let files = fs.readdirSync(cache);
17
17
  for (let file of files) {
18
- if (file.includes("lib.")) {
18
+ if (file.includes("lib.") && fs.existsSync(Path.join(cache, file))) {
19
19
  fs.rmSync(Path.join(cache, file));
20
20
  }
21
21
  }
22
22
  }
23
23
  { //Copy all of the lib files to the cache since tsc expects them to be local.
24
24
  const libPath = tscPath + "lib" + path.sep;
25
+ function copyFile(name) {
26
+ let cachePath = Path.join(cache, "./" + name);
27
+ if (fs.existsSync(cachePath)) {
28
+ fs.rmSync(cachePath);
29
+ }
30
+ fs.copyFileSync(Path.join(libPath, "./" + name), cachePath);
31
+ }
25
32
  let files = fs.readdirSync(libPath);
26
33
  for (let file of files) {
27
34
  if (file.includes("lib.")) {
28
- fs.copyFileSync(Path.join(libPath, file), Path.join(cache, file));
35
+ copyFile(file);
29
36
  }
30
37
  }
31
- fs.copyFileSync(Path.join(libPath, "./tsserverlibrary.js"), Path.join(cache, "./tsserverlibrary.js"));
32
- fs.copyFileSync(Path.join(libPath, "./tsserverlibrary.d.ts"), Path.join(cache, "./tsserverlibrary.d.ts"));
33
- fs.copyFileSync(Path.join(libPath, "./typescript.d.ts"), Path.join(cache, "./typescript.d.ts"));
34
- fs.copyFileSync(Path.join(libPath, "./typescript.d.ts"), Path.join(cache, "./tsc.d.ts"));
38
+ copyFile("tsserverlibrary.js");
39
+ copyFile("tsserverlibrary.d.ts");
40
+ copyFile("typescript.d.ts");
35
41
  }
36
- { //Create a modified tsc.js file.
42
+ function addDefaultPluginToTSCFile(name) {
37
43
  const tsPackage = tspackage.getTsPackage(tscPath);
38
- const tsModule = tsmodule.getTsModule(tsPackage, "tsc.js");
44
+ const tsModule = tsmodule.getTsModule(tsPackage, name);
39
45
  const tspSource = tspatch.getPatchedSource(tsModule, { log: console.log.bind(console) });
40
46
  //Insert our custom plugins!
41
47
  tspSource.js = tspSource.js.replace(`const projectConfig = getProjectConfig(options, rootNames);`, `
@@ -45,18 +51,15 @@ if (!fs.existsSync(cache)) {
45
51
  `.trim());
46
52
  //Allow our custom plugins to resolve from a different directory location.
47
53
  tspSource.js = tspSource.js.replace(`const entryFilePath = require.resolve(configTransformValue, { paths: [resolveBaseDir] });`, `const entryFilePath = require.resolve(configTransformValue, { paths: [config.baseDir ?? resolveBaseDir] });`);
48
- fs.writeFileSync(Path.join(cache, "./tsc.js"), tspSource.js, "utf8");
49
- }
50
- { //Create a modified typescript.js file.
51
- const tsPackage = tspackage.getTsPackage(tscPath);
52
- const tsModule = tsmodule.getTsModule(tsPackage, "typescript.js");
53
- const tspSource = tspatch.getPatchedSource(tsModule, { log: console.log.bind(console) });
54
- fs.writeFileSync(Path.join(cache, "./typescript.js"), tspSource.js, "utf8");
55
- }
56
- { //Create a modified tsserver.js file.
57
- const tsPackage = tspackage.getTsPackage(tscPath);
58
- const tsModule = tsmodule.getTsModule(tsPackage, "tsserver.js");
59
- const tspSource = tspatch.getPatchedSource(tsModule, { log: console.log.bind(console) });
60
- fs.writeFileSync(Path.join(cache, "../tsserver.js"), tspSource.js, "utf8");
54
+ //Allow our custom plugins to work even when the compiler is being run programmatically.
55
+ tspSource.js = tspSource.js.replace(`if (["tsc", "tsserver", "tsserverlibrary"].includes(tsp.currentLibrary)) {`, `if (["tsc", "tsserver", "tsserverlibrary", "typescript"].includes(tsp.currentLibrary)) {`);
56
+ let destination = Path.join(cache, "./" + name);
57
+ if (fs.existsSync(destination)) {
58
+ fs.rmSync(destination);
59
+ }
60
+ fs.writeFileSync(destination, tspSource.js, "utf8");
61
61
  }
62
+ addDefaultPluginToTSCFile("tsc.js");
63
+ addDefaultPluginToTSCFile("typescript.js");
64
+ addDefaultPluginToTSCFile("tsserver.js");
62
65
  //# sourceMappingURL=generate.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.mjs","sourceRoot":"","sources":["generate.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.mjs","sourceRoot":"","sources":["generate.mts"],"names":[],"mappings":"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"}
@@ -18,31 +18,40 @@ if (!fs.existsSync(cache)) {
18
18
  { //Clear the cache.
19
19
  let files = fs.readdirSync(cache);
20
20
  for (let file of files) {
21
- if (file.includes("lib.")) {
21
+ if (file.includes("lib.") && fs.existsSync(Path.join(cache, file))) {
22
22
  fs.rmSync(Path.join(cache, file));
23
23
  }
24
24
  }
25
25
  }
26
-
27
26
  { //Copy all of the lib files to the cache since tsc expects them to be local.
28
27
  const libPath = tscPath + "lib" + path.sep;
28
+
29
+ function copyFile(name: string) {
30
+ let cachePath = Path.join(cache, "./" + name);
31
+ if (fs.existsSync(cachePath)) {
32
+ fs.rmSync(cachePath);
33
+ }
34
+ fs.copyFileSync(Path.join(libPath, "./" + name), cachePath);
35
+ }
36
+
29
37
  let files = fs.readdirSync(libPath);
30
38
  for (let file of files) {
31
39
  if (file.includes("lib.")) {
32
- fs.copyFileSync(Path.join(libPath, file), Path.join(cache, file));
40
+ copyFile(file);
33
41
  }
34
42
  }
35
- fs.copyFileSync(Path.join(libPath, "./tsserverlibrary.js"), Path.join(cache, "./tsserverlibrary.js"));
36
- fs.copyFileSync(Path.join(libPath, "./tsserverlibrary.d.ts"), Path.join(cache, "./tsserverlibrary.d.ts"));
37
- fs.copyFileSync(Path.join(libPath, "./typescript.d.ts"), Path.join(cache, "./typescript.d.ts"));
38
- fs.copyFileSync(Path.join(libPath, "./typescript.d.ts"), Path.join(cache, "./tsc.d.ts"));
43
+
44
+ copyFile("tsserverlibrary.js");
45
+ copyFile("tsserverlibrary.d.ts");
46
+ copyFile("typescript.d.ts");
39
47
  }
40
48
 
41
- { //Create a modified tsc.js file.
49
+ function addDefaultPluginToTSCFile(name: string) {
42
50
  const tsPackage = tspackage.getTsPackage(tscPath);
43
- const tsModule = tsmodule.getTsModule(tsPackage, "tsc.js");
51
+ const tsModule = tsmodule.getTsModule(tsPackage, name);
44
52
  const tspSource = tspatch.getPatchedSource(tsModule, { log: console.log.bind(console) });
45
-
53
+
54
+
46
55
  //Insert our custom plugins!
47
56
  tspSource.js = tspSource.js.replace(`const projectConfig = getProjectConfig(options, rootNames);`,
48
57
  `
@@ -55,21 +64,20 @@ if (!fs.existsSync(cache)) {
55
64
  tspSource.js = tspSource.js.replace(
56
65
  `const entryFilePath = require.resolve(configTransformValue, { paths: [resolveBaseDir] });`,
57
66
  `const entryFilePath = require.resolve(configTransformValue, { paths: [config.baseDir ?? resolveBaseDir] });`
58
- );
59
-
60
- fs.writeFileSync(Path.join(cache, "./tsc.js"), tspSource.js, "utf8");
61
- }
62
- { //Create a modified typescript.js file.
63
- const tsPackage = tspackage.getTsPackage(tscPath);
64
- const tsModule = tsmodule.getTsModule(tsPackage, "typescript.js");
65
- const tspSource = tspatch.getPatchedSource(tsModule, { log: console.log.bind(console) });
66
-
67
- fs.writeFileSync(Path.join(cache, "./typescript.js"), tspSource.js, "utf8");
68
- }
69
- { //Create a modified tsserver.js file.
70
- const tsPackage = tspackage.getTsPackage(tscPath);
71
- const tsModule = tsmodule.getTsModule(tsPackage, "tsserver.js");
72
- const tspSource = tspatch.getPatchedSource(tsModule, { log: console.log.bind(console) });
67
+ );
73
68
 
74
- fs.writeFileSync(Path.join(cache, "../tsserver.js"), tspSource.js, "utf8");
69
+ //Allow our custom plugins to work even when the compiler is being run programmatically.
70
+ tspSource.js = tspSource.js.replace(
71
+ `if (["tsc", "tsserver", "tsserverlibrary"].includes(tsp.currentLibrary)) {`,
72
+ `if (["tsc", "tsserver", "tsserverlibrary", "typescript"].includes(tsp.currentLibrary)) {`,
73
+ );
74
+ let destination = Path.join(cache, "./" + name);
75
+ if (fs.existsSync(destination)) {
76
+ fs.rmSync(destination);
77
+ }
78
+ fs.writeFileSync(destination, tspSource.js, "utf8");
75
79
  }
80
+
81
+ addDefaultPluginToTSCFile("tsc.js");
82
+ addDefaultPluginToTSCFile("typescript.js");
83
+ addDefaultPluginToTSCFile("tsserver.js");
@@ -1,4 +1,6 @@
1
1
  /// <reference path="GlobalTypes.d.ts" />
2
2
  import "./MixinCode.mjs";
3
3
  import "./DelayLib.mjs";
4
+ import "./ClassMigration.mjs";
5
+ export * from "./RBF.mjs";
4
6
  //# sourceMappingURL=BiscuitLibraries.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BiscuitLibraries.d.mts","sourceRoot":"","sources":["BiscuitLibraries.mts"],"names":[],"mappings":";AAEA,OAAO,iBAAiB,CAAC;AAEzB,OAAO,gBAAgB,CAAC"}
1
+ {"version":3,"file":"BiscuitLibraries.d.mts","sourceRoot":"","sources":["BiscuitLibraries.mts"],"names":[],"mappings":";AAEA,OAAO,iBAAiB,CAAC;AAEzB,OAAO,gBAAgB,CAAC;AAExB,OAAO,sBAAsB,CAAA;AAE7B,cAAc,WAAW,CAAA"}
@@ -3,4 +3,8 @@
3
3
  import "./MixinCode.mjs";
4
4
  // @ts-ignore
5
5
  import "./DelayLib.mjs";
6
+ // @ts-ignore
7
+ import "./ClassMigration.mjs";
8
+ // @ts-ignore
9
+ export * from "./RBF.mjs";
6
10
  //# sourceMappingURL=BiscuitLibraries.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"BiscuitLibraries.mjs","sourceRoot":"","sources":["BiscuitLibraries.mts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,aAAa;AACb,OAAO,iBAAiB,CAAC;AACzB,aAAa;AACb,OAAO,gBAAgB,CAAC"}
1
+ {"version":3,"file":"BiscuitLibraries.mjs","sourceRoot":"","sources":["BiscuitLibraries.mts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,aAAa;AACb,OAAO,iBAAiB,CAAC;AACzB,aAAa;AACb,OAAO,gBAAgB,CAAC;AACxB,aAAa;AACb,OAAO,sBAAsB,CAAA;AAC7B,aAAa;AACb,cAAc,WAAW,CAAA"}
@@ -2,4 +2,8 @@
2
2
  // @ts-ignore
3
3
  import "./MixinCode.mjs";
4
4
  // @ts-ignore
5
- import "./DelayLib.mjs";
5
+ import "./DelayLib.mjs";
6
+ // @ts-ignore
7
+ import "./ClassMigration.mjs"
8
+ // @ts-ignore
9
+ export * from "./RBF.mjs"
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Versions have both a "base" version and a list of mods that apply to the current object.
3
+ * In the form `{base: string, mods: {[name: string]: string}}`.
4
+ */
5
+ interface SerialisedVersions {
6
+ core: Migration.Version;
7
+ mods: {
8
+ [modName: string]: Migration.Version;
9
+ };
10
+ }
11
+ declare class ClassMigrator<F, T = never> {
12
+ fromClassName: string;
13
+ toClassName?: string;
14
+ constructor(fromClassName: string, toClassName?: string);
15
+ /**
16
+ * Migrate instances of this class to become instances of another class.
17
+ */
18
+ toClass<X>(klass: Class<X>): ClassMigrator<F, X>;
19
+ /**
20
+ * Migrate data from an instance or a class that no longer exists into the current class.
21
+ */
22
+ fromInterface<X = never>(name: string): ClassMigrator<X, F>;
23
+ /**
24
+ * Load data of an old class/data name into the current class, expects that both classes have largely the same structure.
25
+ */
26
+ renamedFrom(name: string): ClassMigrator<F, F>;
27
+ /**
28
+ * Migrate from one version to another.
29
+ */
30
+ step(fromVersion: Migration.Version, toVersion: Migration.Version): PublicMigratorAPI;
31
+ }
32
+ interface ValueMigrator {
33
+ prop?: (val: string) => string;
34
+ serValue?: (val: any) => any;
35
+ dataValue?: (val: any) => any;
36
+ dataProp?: (val: string) => string;
37
+ }
38
+ declare class ClassVersionMigrator {
39
+ propOperations: Map<string, ValueMigrator>;
40
+ dataOperations: Map<string, ValueMigrator>;
41
+ newClassName?: string;
42
+ publicAPI: PublicMigratorAPI;
43
+ addOperation(prop: string, operation: ValueMigrator): void;
44
+ addDataOperation(dataName: string, operation: ValueMigrator): void;
45
+ }
46
+ declare class PublicMigratorAPI {
47
+ #private;
48
+ constructor(cvm: ClassVersionMigrator);
49
+ /**
50
+ *
51
+ */
52
+ renameProperty(oldName: string, newName: string): void;
53
+ renameDataProperty(propName: string, dataName: string): void;
54
+ arrayToDict(propName: string, keyProp: string): void;
55
+ dictToArray(propName: string, keyProp: string): void;
56
+ }
57
+ /**
58
+ * Migrates a given serialised or data object up to a new API version.
59
+ * @param obj the data to update.
60
+ */
61
+ export declare function Migrate<T = any>(obj: T): T;
62
+ export declare namespace Migration {
63
+ class Version {
64
+ #private;
65
+ }
66
+ /**
67
+ * Registers a migration pattern for the provided class.
68
+ * @param klass the class to migrate data for.
69
+ */
70
+ function Register<T>(klass: Class<T>): ClassMigrator<unknown, never>;
71
+ function SetBaseVersion(version: string): Version;
72
+ /**
73
+ *
74
+ * @param priorVersion the version that this version is based from.
75
+ * @param version
76
+ * @param coreVersionChange
77
+ * @constructor
78
+ */
79
+ function AddCoreVersion(priorVersion: Version, version: string): Version;
80
+ function AddModVersion(coreVersion: string, modName: string, version: string, opts?: {
81
+ beforeMods: (string | Version)[];
82
+ afterMods: (string | Version)[];
83
+ beforeBaseVersionUpgrade?: boolean;
84
+ }): Version;
85
+ function getLatestVersion(): SerialisedVersions;
86
+ }
87
+ export {};
88
+ //# sourceMappingURL=ClassMigration.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClassMigration.d.mts","sourceRoot":"","sources":["ClassMigration.mts"],"names":[],"mappings":"AAEA;;;GAGG;AAIH,UAAU,kBAAkB;IAC3B,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC;IACxB,IAAI,EAAE;QAAC,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC,OAAO,CAAA;KAAC,CAAC;CAC7C;AA+BD,cAAM,aAAa,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;gBAET,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;IAKvD;;OAEG;IACH,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAI1B;;OAEG;IACH,aAAa,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,EAAE,MAAM;IAIrC;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM;IAIxB;;OAEG;IACH,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,OAAO;CAmBjE;AAED,UAAU,aAAa;IACtB,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAI,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;IAC7B,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CACnC;AAED,cAAM,oBAAoB;IACzB,cAAc,6BAAoC;IAClD,cAAc,6BAAoC;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,oBAA+B;IACxC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa;IAcnD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa;CAc3D;AAED,cAAM,iBAAiB;;gBAEV,GAAG,EAAE,oBAAoB;IAIrC;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAI/C,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAIrD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAW7C,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAO7C;AAqDD;;;GAGG;AACH,wBAAgB,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AAyE5C,yBAAc,SAAS,CAAC;IACvB,MAAqB,OAAO;;KAE3B;IAED;;;OAGG;IACH,SAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,iCAE1C;IAGD,SAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAWvD;IAED;;;;;;OAMG;IACH,SAAgB,cAAc,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAW9E;IAED,SAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAC,UAAU,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;QAAC,wBAAwB,CAAC,EAAE,OAAO,CAAA;KAAC,GAAG,OAAO,CA0E5M;IAED,SAAgB,gBAAgB,IAAI,kBAAkB,CAErD;CACD"}