@simplysm/sd-cli 7.0.61 → 7.0.62
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SdCliBuildResultError.mjs +8 -0
- package/dist/builder/SdCliTsLibBuilder.mjs +24 -1
- package/dist/index.mjs +28 -0
- package/dist/ng-tools/NgModuleGenerator.mjs +278 -0
- package/dist/ng-tools/babel/SdCliBbFileMetadata.mjs +331 -0
- package/dist/ng-tools/babel/SdCliBbRootMetadata.mjs +171 -0
- package/dist/ng-tools/babel/SdCliBbUtil.mjs +14 -0
- package/dist/ng-tools/babel/TSdCliBbNgMetadata.mjs +169 -0
- package/dist/ng-tools/babel/TSdCliBbTypeMetadata.mjs +127 -0
- package/dist/ng-tools/commons.mjs +2 -0
- package/dist/ng-tools/typescript/SdCliTsFileMetadata.mjs +325 -0
- package/dist/ng-tools/typescript/SdCliTsRootMetadata.mjs +28 -0
- package/dist/utils/SdCliNpmConfigUtil.mjs +3 -3
- package/package.json +11 -7
- package/src/SdCliBuildResultError.ts +9 -0
- package/src/builder/SdCliTsLibBuilder.ts +28 -0
- package/src/index.ts +27 -0
- package/src/ng-tools/NgModuleGenerator.ts +361 -0
- package/src/ng-tools/babel/SdCliBbFileMetadata.ts +372 -0
- package/src/ng-tools/babel/SdCliBbRootMetadata.ts +207 -0
- package/src/ng-tools/babel/SdCliBbUtil.ts +15 -0
- package/src/ng-tools/babel/TSdCliBbNgMetadata.ts +220 -0
- package/src/ng-tools/babel/TSdCliBbTypeMetadata.ts +177 -0
- package/src/ng-tools/commons.ts +3 -0
- package/src/ng-tools/typescript/SdCliTsFileMetadata.ts +384 -0
- package/src/ng-tools/typescript/SdCliTsRootMetadata.ts +32 -0
- package/src/utils/SdCliNpmConfigUtil.ts +2 -2
- package/tsconfig-build.json +5 -1
- package/tsconfig.json +5 -1
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { isAssignmentExpression, isCallExpression, isExpressionStatement, isIdentifier, isMemberExpression, isObjectExpression } from "@babel/types";
|
|
2
|
+
import { NeverEntryError } from "@simplysm/sd-core-common";
|
|
3
|
+
import { SdCliBbArrayMetadata, SdCliBbObjectMetadata, SdCliBbVariableMetadata } from "./TSdCliBbTypeMetadata";
|
|
4
|
+
export class SdCliBbNgModuleMetadata {
|
|
5
|
+
constructor(_fileMeta, _className) {
|
|
6
|
+
this._fileMeta = _fileMeta;
|
|
7
|
+
this._className = _className;
|
|
8
|
+
}
|
|
9
|
+
get def() {
|
|
10
|
+
if (this._defCache)
|
|
11
|
+
return this._defCache;
|
|
12
|
+
const result = {
|
|
13
|
+
exports: [],
|
|
14
|
+
providers: []
|
|
15
|
+
};
|
|
16
|
+
for (const meta of this._fileMeta.rawMetas) {
|
|
17
|
+
if (isExpressionStatement(meta) &&
|
|
18
|
+
isAssignmentExpression(meta.expression) &&
|
|
19
|
+
isMemberExpression(meta.expression.left) &&
|
|
20
|
+
isIdentifier(meta.expression.left.object) &&
|
|
21
|
+
meta.expression.left.object.name === this._className &&
|
|
22
|
+
isIdentifier(meta.expression.left.property)) {
|
|
23
|
+
if (meta.expression.left.property.name === "ɵmod") {
|
|
24
|
+
if (isCallExpression(meta.expression.right) &&
|
|
25
|
+
meta.expression.right.arguments.length > 0 &&
|
|
26
|
+
isObjectExpression(meta.expression.right.arguments[0])) {
|
|
27
|
+
const expObjMeta = new SdCliBbObjectMetadata(this._fileMeta, meta.expression.right.arguments[0]);
|
|
28
|
+
const expVal = expObjMeta.getPropValue("exports");
|
|
29
|
+
if (expVal !== undefined) {
|
|
30
|
+
if (expVal instanceof SdCliBbArrayMetadata) {
|
|
31
|
+
for (const expMeta of expVal.value.filterExists()) {
|
|
32
|
+
result.exports.push(expMeta);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
throw new NeverEntryError();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
throw new NeverEntryError();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (meta.expression.left.property.name === "ɵinj") {
|
|
45
|
+
if (isCallExpression(meta.expression.right) &&
|
|
46
|
+
meta.expression.right.arguments.length > 0 &&
|
|
47
|
+
isObjectExpression(meta.expression.right.arguments[0])) {
|
|
48
|
+
const provObjMeta = new SdCliBbObjectMetadata(this._fileMeta, meta.expression.right.arguments[0]);
|
|
49
|
+
const provVal = provObjMeta.getPropValue("providers");
|
|
50
|
+
if (provVal !== undefined) {
|
|
51
|
+
const provMetas = this._getProviderMetas(provVal);
|
|
52
|
+
for (const provMeta of provMetas) {
|
|
53
|
+
result.providers.push(provMeta);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
throw new NeverEntryError();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
this._defCache = result;
|
|
64
|
+
return result;
|
|
65
|
+
}
|
|
66
|
+
_getProviderMetas(meta) {
|
|
67
|
+
const result = [];
|
|
68
|
+
if (meta instanceof SdCliBbArrayMetadata) {
|
|
69
|
+
for (const metaItem of meta.value.filterExists()) {
|
|
70
|
+
result.push(...this._getProviderMetas(metaItem));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else if (meta instanceof SdCliBbVariableMetadata) {
|
|
74
|
+
if (meta.value !== undefined) {
|
|
75
|
+
result.push(...this._getProviderMetas(meta.value));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
result.push(meta);
|
|
80
|
+
}
|
|
81
|
+
return result;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
export class SdCliBbNgInjectableMetadata {
|
|
85
|
+
constructor(_fileMeta, _className) {
|
|
86
|
+
this._fileMeta = _fileMeta;
|
|
87
|
+
this._className = _className;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
export class SdCliBbNgDirectiveMetadata {
|
|
91
|
+
constructor(_fileMeta, _className) {
|
|
92
|
+
this._fileMeta = _fileMeta;
|
|
93
|
+
this._className = _className;
|
|
94
|
+
}
|
|
95
|
+
get selector() {
|
|
96
|
+
if (this._selectorCache !== undefined)
|
|
97
|
+
return this._selectorCache;
|
|
98
|
+
const val = SdCliNgMetadataUtil.getDecoPropValue(this._fileMeta, this._className, "ɵdir", "selector");
|
|
99
|
+
if (typeof val === "string") {
|
|
100
|
+
this._selectorCache = val;
|
|
101
|
+
return val;
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
throw new NeverEntryError();
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
export class SdCliBbNgComponentMetadata {
|
|
109
|
+
constructor(_fileMeta, _className) {
|
|
110
|
+
this._fileMeta = _fileMeta;
|
|
111
|
+
this._className = _className;
|
|
112
|
+
}
|
|
113
|
+
get selector() {
|
|
114
|
+
if (this._selectorCache !== undefined)
|
|
115
|
+
return this._selectorCache;
|
|
116
|
+
const val = SdCliNgMetadataUtil.getDecoPropValue(this._fileMeta, this._className, "ɵcmp", "selector");
|
|
117
|
+
if (typeof val === "string") {
|
|
118
|
+
this._selectorCache = val;
|
|
119
|
+
return val;
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
throw new NeverEntryError();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
export class SdCliBbNgPipeMetadata {
|
|
127
|
+
constructor(_fileMeta, _className) {
|
|
128
|
+
this._fileMeta = _fileMeta;
|
|
129
|
+
this._className = _className;
|
|
130
|
+
}
|
|
131
|
+
get pipeName() {
|
|
132
|
+
if (this._pipeNameCache !== undefined)
|
|
133
|
+
return this._pipeNameCache;
|
|
134
|
+
const val = SdCliNgMetadataUtil.getDecoPropValue(this._fileMeta, this._className, "ɵpipe", "name");
|
|
135
|
+
if (typeof val === "string") {
|
|
136
|
+
this._pipeNameCache = val;
|
|
137
|
+
return val;
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
throw new NeverEntryError();
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
class SdCliNgMetadataUtil {
|
|
145
|
+
static getDecoPropValue(fileMeta, className, decoName, propName) {
|
|
146
|
+
for (const meta of fileMeta.rawMetas) {
|
|
147
|
+
if (isExpressionStatement(meta) &&
|
|
148
|
+
isAssignmentExpression(meta.expression) &&
|
|
149
|
+
isMemberExpression(meta.expression.left) &&
|
|
150
|
+
isIdentifier(meta.expression.left.object) &&
|
|
151
|
+
meta.expression.left.object.name === className &&
|
|
152
|
+
isIdentifier(meta.expression.left.property)) {
|
|
153
|
+
if (meta.expression.left.property.name === decoName) {
|
|
154
|
+
if (isCallExpression(meta.expression.right) &&
|
|
155
|
+
meta.expression.right.arguments.length > 0 &&
|
|
156
|
+
isObjectExpression(meta.expression.right.arguments[0])) {
|
|
157
|
+
const dirObjMeta = new SdCliBbObjectMetadata(fileMeta, meta.expression.right.arguments[0]);
|
|
158
|
+
return dirObjMeta.getPropValue(propName);
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
throw new NeverEntryError();
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
throw new NeverEntryError();
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVFNkQ2xpQmJOZ01ldGFkYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25nLXRvb2xzL2JhYmVsL1RTZENsaUJiTmdNZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLGdCQUFnQixFQUNoQixxQkFBcUIsRUFDckIsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbkIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBVTlHLE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsWUFBb0MsU0FBOEIsRUFDOUIsVUFBa0I7UUFEbEIsY0FBUyxHQUFULFNBQVMsQ0FBcUI7UUFDOUIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtJQUN0RCxDQUFDO0lBSUQsSUFBVyxHQUFHO1FBQ1osSUFBSSxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUUxQyxNQUFNLE1BQU0sR0FBd0I7WUFDbEMsT0FBTyxFQUFFLEVBQUU7WUFDWCxTQUFTLEVBQUUsRUFBRTtTQUNkLENBQUM7UUFFRixLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO1lBQzFDLElBQ0UscUJBQXFCLENBQUMsSUFBSSxDQUFDO2dCQUMzQixzQkFBc0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUN2QyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztnQkFDeEMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxD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
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { isAssignmentExpression, isExpressionStatement, isIdentifier, isMemberExpression, isObjectProperty } from "@babel/types";
|
|
2
|
+
import { NeverEntryError } from "@simplysm/sd-core-common";
|
|
3
|
+
import { SdCliBbNgComponentMetadata, SdCliBbNgDirectiveMetadata, SdCliBbNgInjectableMetadata, SdCliBbNgModuleMetadata, SdCliBbNgPipeMetadata } from "./TSdCliBbNgMetadata";
|
|
4
|
+
export class SdCliBbClassMetadata {
|
|
5
|
+
constructor(_fileMeta, _rawMeta) {
|
|
6
|
+
this._fileMeta = _fileMeta;
|
|
7
|
+
this._rawMeta = _rawMeta;
|
|
8
|
+
}
|
|
9
|
+
get filePath() {
|
|
10
|
+
return this._fileMeta.filePath;
|
|
11
|
+
}
|
|
12
|
+
get name() {
|
|
13
|
+
return this._rawMeta.id.name;
|
|
14
|
+
}
|
|
15
|
+
get ngDecl() {
|
|
16
|
+
if (this._ngDeclCache !== undefined) {
|
|
17
|
+
return this._ngDeclCache === "none" ? undefined : this._ngDeclCache;
|
|
18
|
+
}
|
|
19
|
+
for (const meta of this._fileMeta.rawMetas) {
|
|
20
|
+
if (isExpressionStatement(meta) &&
|
|
21
|
+
isAssignmentExpression(meta.expression) &&
|
|
22
|
+
isMemberExpression(meta.expression.left) &&
|
|
23
|
+
isIdentifier(meta.expression.left.object) &&
|
|
24
|
+
meta.expression.left.object.name === this._rawMeta.id.name &&
|
|
25
|
+
isIdentifier(meta.expression.left.property)) {
|
|
26
|
+
if (meta.expression.left.property.name === "ɵmod") {
|
|
27
|
+
this._ngDeclCache = new SdCliBbNgModuleMetadata(this._fileMeta, this._rawMeta.id.name);
|
|
28
|
+
return this._ngDeclCache;
|
|
29
|
+
}
|
|
30
|
+
else if (meta.expression.left.property.name === "ɵprov") {
|
|
31
|
+
this._ngDeclCache = new SdCliBbNgInjectableMetadata(this._fileMeta, this._rawMeta.id.name);
|
|
32
|
+
return this._ngDeclCache;
|
|
33
|
+
}
|
|
34
|
+
else if (meta.expression.left.property.name === "ɵdir") {
|
|
35
|
+
this._ngDeclCache = new SdCliBbNgDirectiveMetadata(this._fileMeta, this._rawMeta.id.name);
|
|
36
|
+
return this._ngDeclCache;
|
|
37
|
+
}
|
|
38
|
+
else if (meta.expression.left.property.name === "ɵcmp") {
|
|
39
|
+
this._ngDeclCache = new SdCliBbNgComponentMetadata(this._fileMeta, this._rawMeta.id.name);
|
|
40
|
+
return this._ngDeclCache;
|
|
41
|
+
}
|
|
42
|
+
else if (meta.expression.left.property.name === "ɵpipe") {
|
|
43
|
+
this._ngDeclCache = new SdCliBbNgPipeMetadata(this._fileMeta, this._rawMeta.id.name);
|
|
44
|
+
return this._ngDeclCache;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
this._ngDeclCache = "none";
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
export class SdCliBbVariableMetadata {
|
|
53
|
+
constructor(_fileMeta, _rawMeta) {
|
|
54
|
+
this._fileMeta = _fileMeta;
|
|
55
|
+
this._rawMeta = _rawMeta;
|
|
56
|
+
}
|
|
57
|
+
get filePath() {
|
|
58
|
+
return this._fileMeta.filePath;
|
|
59
|
+
}
|
|
60
|
+
get name() {
|
|
61
|
+
if (!isIdentifier(this._rawMeta.id))
|
|
62
|
+
throw new NeverEntryError();
|
|
63
|
+
return this._rawMeta.id.name;
|
|
64
|
+
}
|
|
65
|
+
get value() {
|
|
66
|
+
if (this._valueCache === undefined) {
|
|
67
|
+
this._valueCache = this._rawMeta.init == null ? undefined : this._fileMeta.getMetaFromRaw(this._rawMeta.init);
|
|
68
|
+
}
|
|
69
|
+
return this._valueCache;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
export class SdCliBbFunctionMetadata {
|
|
73
|
+
constructor(_fileMeta, _rawMeta) {
|
|
74
|
+
this._fileMeta = _fileMeta;
|
|
75
|
+
this._rawMeta = _rawMeta;
|
|
76
|
+
}
|
|
77
|
+
get filePath() {
|
|
78
|
+
return this._fileMeta.filePath;
|
|
79
|
+
}
|
|
80
|
+
get name() {
|
|
81
|
+
if (!isIdentifier(this._rawMeta.id))
|
|
82
|
+
throw new NeverEntryError();
|
|
83
|
+
return this._rawMeta.id.name;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
export class SdCliBbObjectMetadata {
|
|
87
|
+
constructor(_fileMeta, _metadata) {
|
|
88
|
+
this._fileMeta = _fileMeta;
|
|
89
|
+
this._metadata = _metadata;
|
|
90
|
+
this._getPropValueCache = new Map();
|
|
91
|
+
}
|
|
92
|
+
getPropValue(propName) {
|
|
93
|
+
if (this._getPropValueCache.has(propName)) {
|
|
94
|
+
return this._getPropValueCache.get(propName);
|
|
95
|
+
}
|
|
96
|
+
const prop = this._metadata.properties
|
|
97
|
+
.single((item) => (isObjectProperty(item) &&
|
|
98
|
+
isIdentifier(item.key) &&
|
|
99
|
+
item.key.name === propName));
|
|
100
|
+
if (prop && !isObjectProperty(prop)) {
|
|
101
|
+
throw new NeverEntryError();
|
|
102
|
+
}
|
|
103
|
+
if (!prop) {
|
|
104
|
+
this._getPropValueCache.set(propName, undefined);
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
const result = this._fileMeta.getMetaFromRaw(prop.value);
|
|
108
|
+
this._getPropValueCache.set(propName, result);
|
|
109
|
+
return result;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
export class SdCliBbArrayMetadata {
|
|
113
|
+
constructor(_fileMeta, _metadata) {
|
|
114
|
+
this._fileMeta = _fileMeta;
|
|
115
|
+
this._metadata = _metadata;
|
|
116
|
+
}
|
|
117
|
+
get value() {
|
|
118
|
+
if (this._valueCache === undefined) {
|
|
119
|
+
this._valueCache = [];
|
|
120
|
+
for (const el of this._metadata.elements) {
|
|
121
|
+
this._valueCache.push(el ? this._fileMeta.getMetaFromRaw(el) : undefined);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return this._valueCache;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVFNkQ2xpQmJUeXBlTWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbmctdG9vbHMvYmFiZWwvVFNkQ2xpQmJUeXBlTWV0YWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFHakIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsMEJBQTBCLEVBQzFCLDJCQUEyQixFQUMzQix1QkFBdUIsRUFDdkIscUJBQXFCLEVBRXRCLE1BQU0sc0JBQXNCLENBQUM7QUFTOUIsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixZQUFvQyxTQUE4QixFQUM5QixRQUEwQjtRQUQxQixjQUFTLEdBQVQsU0FBUyxDQUFxQjtRQUM5QixhQUFRLEdBQVIsUUFBUSxDQUFrQjtJQUM5RCxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFDakMsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFJRCxJQUFXLE1BQU07UUFDZixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFO1lBQ25DLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztTQUNyRTtRQUVELEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7WUFDMUMsSUFDRSxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7Z0JBQzNCLHNCQUFzQixD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
|