@openmrs/ngx-formentry 5.0.1-pre.342 → 5.0.1-pre.345
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/esm2020/form-entry/value-adapters/diagnosis.adapter.mjs +16 -9
- package/fesm2015/openmrs-ngx-formentry.mjs +15 -8
- package/fesm2015/openmrs-ngx-formentry.mjs.map +1 -1
- package/fesm2020/openmrs-ngx-formentry.mjs +15 -8
- package/fesm2020/openmrs-ngx-formentry.mjs.map +1 -1
- package/package.json +9 -7
- package/styles/ngx-formentry.css +0 -1
|
@@ -33,7 +33,7 @@ export class DiagnosisValueAdapter {
|
|
|
33
33
|
// Create Payload
|
|
34
34
|
const payloadDiagnosis = this._createPayloadDiagnosis(value[node.question.key], node.question.extras);
|
|
35
35
|
const isNewDiagnosis = existingDiagnoses.every((d) => d.diagnosis.coded.uuid !== value[node.question.key] ||
|
|
36
|
-
d.certainty !==
|
|
36
|
+
d.certainty !== 'CONFIRMED' ||
|
|
37
37
|
d.rank !== node.question.extras.questionOptions.rank);
|
|
38
38
|
if (isNewDiagnosis) {
|
|
39
39
|
payload.push(payloadDiagnosis);
|
|
@@ -92,18 +92,25 @@ export class DiagnosisValueAdapter {
|
|
|
92
92
|
return diagnosis;
|
|
93
93
|
}
|
|
94
94
|
_getDeletedDiagnoses(diagnosisNodes, existingDiagnoses) {
|
|
95
|
-
return existingDiagnoses
|
|
96
|
-
|
|
95
|
+
return existingDiagnoses
|
|
96
|
+
.filter((existingDiagnosis) => {
|
|
97
|
+
return !diagnosisNodes?.some((node) => {
|
|
97
98
|
if (node instanceof ArrayNode) {
|
|
98
|
-
return node.control.value.some(value => {
|
|
99
|
-
return value[node.question.key] ===
|
|
100
|
-
existingDiagnosis.
|
|
101
|
-
existingDiagnosis.
|
|
99
|
+
return node.control.value.some((value) => {
|
|
100
|
+
return (value[node.question.key] ===
|
|
101
|
+
existingDiagnosis.diagnosis.coded.uuid &&
|
|
102
|
+
existingDiagnosis.rank ===
|
|
103
|
+
node.question.extras.questionOptions.rank &&
|
|
104
|
+
existingDiagnosis.certainty === 'CONFIRMED');
|
|
102
105
|
});
|
|
103
106
|
}
|
|
104
107
|
return false;
|
|
105
108
|
});
|
|
106
|
-
})
|
|
109
|
+
})
|
|
110
|
+
.map((existingDiagnosis) => ({
|
|
111
|
+
uuid: existingDiagnosis.uuid,
|
|
112
|
+
voided: true
|
|
113
|
+
}));
|
|
107
114
|
}
|
|
108
115
|
_updatedOldDiagnoses(payloadDiagnoses, existingDiagnoses) {
|
|
109
116
|
payloadDiagnoses.forEach((p) => {
|
|
@@ -231,4 +238,4 @@ DiagnosisValueAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0"
|
|
|
231
238
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DiagnosisValueAdapter, decorators: [{
|
|
232
239
|
type: Injectable
|
|
233
240
|
}] });
|
|
234
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhZ25vc2lzLmFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9mb3JtLWVudHJ5L3ZhbHVlLWFkYXB0ZXJzL2RpYWdub3Npcy5hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFHNUIsT0FBTyxFQUFFLFNBQVMsRUFBdUIsTUFBTSwyQkFBMkIsQ0FBQzs7QUFHM0UsTUFBTSxPQUFPLHFCQUFxQjtJQURsQztRQUVFLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztLQXlSekI7SUF2UkMsbUJBQW1CLENBQUMsSUFBVTtRQUM1QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQ2pDLElBQUksQ0FBQyxrQkFBa0IsRUFDdkIsSUFBSSxDQUFDLGlCQUFpQixDQUN2QixDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFVLEVBQUUsU0FBMkI7UUFDbEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMvQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsbUJBQW1CLENBQ3RCLElBQUksQ0FBQyxrQkFBa0IsRUFDdkIsSUFBSSxDQUFDLGlCQUFpQixFQUN0QixD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QUFrQixFQUFFO2dCQUM1RSxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7O21IQXpSVSxxQkFBcUI7dUhBQXJCLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBGb3JtIH0gZnJvbSAnLi4vZm9ybS1mYWN0b3J5L2Zvcm0nO1xuaW1wb3J0IHsgVmFsdWVBZGFwdGVyIH0gZnJvbSAnLi92YWx1ZS5hZGFwdGVyJztcbmltcG9ydCB7IEFycmF5Tm9kZSwgR3JvdXBOb2RlLCBMZWFmTm9kZSB9IGZyb20gJy4uL2Zvcm0tZmFjdG9yeS9mb3JtLW5vZGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGlhZ25vc2lzVmFsdWVBZGFwdGVyIGltcGxlbWVudHMgVmFsdWVBZGFwdGVyIHtcbiAgZm9ybURpYWdub3Npc05vZGVzID0gW107XG5cbiAgZ2VuZXJhdGVGb3JtUGF5bG9hZChmb3JtOiBGb3JtKSB7XG4gICAgdGhpcy5mb3JtRGlhZ25vc2lzTm9kZXMgPSBbXTtcbiAgICB0aGlzLl9maW5kRGlhZ25vc2lzUXVlc3Rpb25Ob2Rlcyhmb3JtLnJvb3ROb2RlKTtcbiAgICByZXR1cm4gdGhpcy5fY3JlYXRlRGlhZ25vc2VzUGF5bG9hZChcbiAgICAgIHRoaXMuZm9ybURpYWdub3Npc05vZGVzLFxuICAgICAgZm9ybS5leGlzdGluZ0RpYWdub3Nlc1xuICAgICk7XG4gIH1cblxuICBwb3B1bGF0ZUZvcm0oZm9ybTogRm9ybSwgZGlhZ25vc2VzOiBBcnJheTxEaWFnbm9zaXM+KSB7XG4gICAgZm9ybS5leGlzdGluZ0RpYWdub3NlcyA9IGRpYWdub3Nlcz8uZmlsdGVyKChkKSA9PiB7XG4gICAgICByZXR1cm4gIWQudm9pZGVkO1xuICAgIH0pO1xuICAgIHRoaXMuZm9ybURpYWdub3Npc05vZGVzID0gW107XG4gICAgdGhpcy5fZmluZERpYWdub3Npc1F1ZXN0aW9uTm9kZXMoZm9ybS5yb290Tm9kZSk7XG4gICAgdGhpcy5fc2V0RGlhZ25vc2VzVmFsdWVzKFxuICAgICAgdGhpcy5mb3JtRGlhZ25vc2lzTm9kZXMsXG4gICAgICBmb3JtLmV4aXN0aW5nRGlhZ25vc2VzLFxuICAgICAgMVxuICAgICk7XG4gICAgdGhpcy5fc2V0RGlhZ25vc2VzVmFsdWVzKFxuICAgICAgdGhpcy5mb3JtRGlhZ25vc2lzTm9kZXMsXG4gICAgICBmb3JtLmV4aXN0aW5nRGlhZ25vc2VzLFxuICAgICAgMlxuICAgICk7XG4gICAgdGhpcy5zZXREaWFnbm9zaXNHcm91cFZhbHVlKFxuICAgICAgdGhpcy5mb3JtRGlhZ25vc2lzTm9kZXMsXG4gICAgICBmb3JtLmV4aXN0aW5nRGlhZ25vc2VzXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZURpYWdub3Nlc1BheWxvYWQoZGlhZ25vc2lzTm9kZXMsIGV4aXN0aW5nRGlhZ25vc2VzKSB7XG4gICAgY29uc3QgcGF5bG9hZDogQXJyYXk8RGlhZ25vc2lzUGF5bG9hZD4gPSBbXTtcbiAgICBsZXQgZGVsZXRlZERpYWdub3NlczogQXJyYXk8RGlhZ25vc2lzUGF5bG9hZD4gPSBbXTtcblxuICAgIC8vIEFkZCBuZXcgZGlhZ25vc2lzIHRvIHBheWxvYWRcbiAgICBkaWFnbm9zaXNOb2Rlcz8uZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBBcnJheU5vZGUpIHtcbiAgICAgICAgbm9kZS5jb250cm9sLnZhbHVlXG4gICAgICAgICAgLmZpbHRlcigodikgPT4gdltub2RlLnF1ZXN0aW9uLmtleV0pXG4gICAgICAgICAgLmZvckVhY2goKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAvLyBDcmVhdGUgUGF5bG9hZFxuICAgICAgICAgICAgY29uc3QgcGF5bG9hZERpYWdub3NpcyA9IHRoaXMuX2NyZWF0ZVBheWxvYWREaWFnbm9zaXMoXG4gICAgICAgICAgICAgIHZhbHVlW25vZGUucXVlc3Rpb24ua2V5XSxcbiAgICAgICAgICAgICAgbm9kZS5xdWVzdGlvbi5leHRyYXNcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGNvbnN0IGlzTmV3RGlhZ25vc2lzID0gZXhpc3RpbmdEaWFnbm9zZXMuZXZlcnkoKGQpID0+XG4gICAgICAgICAgICAgICAgZC5kaWFnbm9zaXMuY29kZWQudXVpZCAhPT0gdmFsdWVbbm9kZS5xdWVzdGlvbi5rZXldIHx8XG4gICAgICAgICAgICAgICAgZC5jZXJ0YWludHkgIT09IFwiQ09ORklSTUVEXCIgfHxcbiAgICAgICAgICAgICAgICBkLnJhbmsgIT09IG5vZGUucXVlc3Rpb24uZXh0cmFzLnF1ZXN0aW9uT3B0aW9ucy5yYW5rXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoaXNOZXdEaWFnbm9zaXMpIHtcbiAgICAgICAgICAgICAgcGF5bG9hZC5wdXNoKHBheWxvYWREaWFnbm9zaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAobm9kZSBpbnN0YW5jZW9mIEFycmF5Tm9kZSkge1xuICAgICAgICBjb25zdCBncm91cE5vZGVBcnJheSA9IG5vZGUuY2hpbGRyZW47XG4gICAgICAgIGdyb3VwTm9kZUFycmF5LmZvckVhY2goKGdyb3VwTm9kZSkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmhhc0RpYWdub3Npc05vZGVDaGFuZ2VkKGdyb3VwTm9kZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRpYWdub3Npc1BheWxvYWQ6IFBhcnRpYWw8RGlhZ25vc2lzUGF5bG9hZD4gPSB7fTtcbiAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoZ3JvdXBOb2RlLmNoaWxkcmVuKS5mb3JFYWNoKChjaGlsZE5vZGU6IExlYWZOb2RlKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgICBkaWFnbm9zaXNUeXBlXG4gICAgICAgICAgICAgIH0gPSBjaGlsZE5vZGUucXVlc3Rpb24uZXh0cmFzLnF1ZXN0aW9uT3B0aW9ucztcbiAgICAgICAgICAgICAgc3dpdGNoIChkaWFnbm9zaXNUeXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAncmFuayc6XG4gICAgICAgICAgICAgICAgICBkaWFnbm9zaXNQYXlsb2FkLnJhbmsgPVxuICAgICAgICAgICAgICAgICAgICBwYXJzZUludChjaGlsZE5vZGUuY29udHJvbC52YWx1ZSwgMTApID8/IDE7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdjZXJ0YWludHknOlxuICAgICAgICAgICAgICAgICAgZGlhZ25vc2lzUGF5bG9hZC5jZXJ0YWludHkgPSBjaGlsZE5vZGUuY29udHJvbC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2RpYWdub3Npcyc6XG4gICAgICAgICAgICAgICAgICBkaWFnbm9zaXNQYXlsb2FkLmRpYWdub3NpcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgY29kZWQ6IGNoaWxkTm9kZS5jb250cm9sLnZhbHVlXG4gICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChfLmlzRW1wdHkoZGlhZ25vc2lzUGF5bG9hZCkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZ3JvdXBOb2RlLnF1ZXN0aW9uLmRlZmF1bHRWYWx1ZT8udXVpZCkge1xuICAgICAgICAgICAgICBkaWFnbm9zaXNQYXlsb2FkLnV1aWQgPSBncm91cE5vZGUucXVlc3Rpb24uZGVmYXVsdFZhbHVlLnV1aWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkaWFnbm9zaXNQYXlsb2FkLnZvaWRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgcGF5bG9hZC5wdXNoKGRpYWdub3Npc1BheWxvYWQgYXMgRGlhZ25vc2lzUGF5bG9hZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLl91cGRhdGVkT2xkRGlhZ25vc2VzKHBheWxvYWQsIGV4aXN0aW5nRGlhZ25vc2VzKTtcbiAgICBkZWxldGVkRGlhZ25vc2VzID0gdGhpcy5fZ2V0RGVsZXRlZERpYWdub3NlcyhwYXlsb2FkLCBleGlzdGluZ0RpYWdub3Nlcyk7XG4gICAgcmV0dXJuIHBheWxvYWQuY29uY2F0KGRlbGV0ZWREaWFnbm9zZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlUGF5bG9hZERpYWdub3Npcyhjb2RlZFV1aWQsIHF1ZXN0aW9uRXh0cmFzKTogRGlhZ25vc2lzUGF5bG9hZCB7XG4gICAgY29uc3QgZGlhZ25vc2lzOiBEaWFnbm9zaXNQYXlsb2FkID0ge1xuICAgICAgZGlhZ25vc2lzOiB7XG4gICAgICAgIGNvZGVkOiBjb2RlZFV1aWRcbiAgICAgIH0sXG4gICAgICBjZXJ0YWludHk6ICdDT05GSVJNRUQnLFxuICAgICAgcmFuazogcXVlc3Rpb25FeHRyYXMucXVlc3Rpb25PcHRpb25zLnJhbmssXG4gICAgICB2b2lkZWQ6IGZhbHNlXG4gICAgfTtcblxuICAgIHJldHVybiBkaWFnbm9zaXM7XG4gIH1cblxuICBwcml2YXRlIF9nZXREZWxldGVkRGlhZ25vc2VzKFxuICAgICAgZGlhZ25vc2lzTm9kZXM6IEFycmF5PERpYWdub3Npc1BheWxvYWQ+LFxuICAgICAgZXhpc3RpbmdEaWFnbm9zZXM6IEFycmF5PERpYWdub3Npcz5cbiAgKTogQXJyYXk8YW55PiB7XG4gICAgcmV0dXJuIGV4aXN0aW5nRGlhZ25vc2VzLmZpbHRlcihleGlzdGluZ0RpYWdub3NpcyA9PiB7XG4gICAgICByZXR1cm4gIWRpYWdub3Npc05vZGVzPy5zb21lKG5vZGUgPT4ge1xuICAgICAgICBpZiAobm9kZSBpbnN0YW5jZW9mIEFycmF5Tm9kZSkge1xuICAgICAgICAgIHJldHVybiBub2RlLmNvbnRyb2wudmFsdWUuc29tZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWVbbm9kZS5xdWVzdGlvbi5rZXldID09PSBleGlzdGluZ0RpYWdub3Npcy5kaWFnbm9zaXMuY29kZWQudXVpZCAmJlxuICAgICAgICAgICAgICAgIGV4aXN0aW5nRGlhZ25vc2lzLnJhbmsgPT09IG5vZGUucXVlc3Rpb24uZXh0cmFzLnF1ZXN0aW9uT3B0aW9ucy5yYW5rICYmXG4gICAgICAgICAgICAgICAgZXhpc3RpbmdEaWFnbm9zaXMuY2VydGFpbnR5ID09PSAnQ09ORklSTUVEJztcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9KS5tYXAoZXhpc3RpbmdEaWFnbm9zaXMgPT4gKHsgdXVpZDogZXhpc3RpbmdEaWFnbm9zaXMudXVpZCwgdm9pZGVkOiB0cnVlIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZWRPbGREaWFnbm9zZXMoXG4gICAgcGF5bG9hZERpYWdub3NlczogQXJyYXk8RGlhZ25vc2lzUGF5bG9hZD4sXG4gICAgZXhpc3RpbmdEaWFnbm9zZXM6IEFycmF5PERpYWdub3Npcz5cbiAgKSB7XG4gICAgcGF5bG9hZERpYWdub3Nlcy5mb3JFYWNoKChwKSA9PiB7XG4gICAgICBleGlzdGluZ0RpYWdub3Nlcz8uZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgICBsZXQgaXNTYW1lID0gIWUudm9pZGVkICYmIHAuZGlhZ25vc2lzLmNvZGVkID09PSBlLmRpYWdub3Npcy5jb2RlZC51dWlkO1xuICAgICAgICBwLnV1aWQgPSBpc1NhbWUgPyBlLnV1aWQgOiBudWxsO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9zZXREaWFnbm9zZXNWYWx1ZXMoXG4gICAgZm9ybURpYWdub3Npc05vZGVzLFxuICAgIGV4aXN0aW5nRGlhZ25vc2VzOiBBcnJheTxEaWFnbm9zaXM+LFxuICAgIHJhbms6IG51bWJlclxuICApIHtcbiAgICBmb3JtRGlhZ25vc2lzTm9kZXNcbiAgICAgID8uZmlsdGVyKChub2RlKSA9PiBub2RlLnF1ZXN0aW9uLmV4dHJhcy5xdWVzdGlvbk9wdGlvbnMucmFuayA9PSByYW5rKVxuICAgICAgLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgbm9kZVsnaW5pdGlhbFZhbHVlJ10gPSBleGlzdGluZ0RpYWdub3NlcztcbiAgICAgICAgZXhpc3RpbmdEaWFnbm9zZXNcbiAgICAgICAgICAuZmlsdGVyKChkKSA9PiBkLnJhbmsgPT0gcmFuaylcbiAgICAgICAgICAuZm9yRWFjaCgoZGlhZ25vc2lzLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgbm9kZS5jcmVhdGVDaGlsZE5vZGUoKTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0ge307XG4gICAgICAgICAgICB2YWx1ZVtub2RlLnF1ZXN0aW9uLmtleV0gPSBkaWFnbm9zaXMuZGlhZ25vc2lzLmNvZGVkLnV1aWQ7XG4gICAgICAgICAgICBjb25zdCBjaGlsZE5vZGUgPSBub2RlLmNoaWxkcmVuW2luZGV4XTtcbiAgICAgICAgICAgIGNoaWxkTm9kZS5jb250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgIGNoaWxkTm9kZVsnaW5pdGlhbFZhbHVlJ10gPSB2YWx1ZTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREaWFnbm9zaXNHcm91cFZhbHVlKFxuICAgIGZvcm1EaWFnbm9zaXNOb2RlcyxcbiAgICBleGlzdGluZ0RpYWdub3NlczogQXJyYXk8RGlhZ25vc2lzPlxuICApIHtcbiAgICBmb3IgKGNvbnN0IGRpYWdub3NpcyBvZiBleGlzdGluZ0RpYWdub3Nlcykge1xuICAgICAgZm9yIChjb25zdCBkaWFnbm9zaXNOb2RlIG9mIGZvcm1EaWFnbm9zaXNOb2Rlcykge1xuICAgICAgICBpZiAoZGlhZ25vc2lzTm9kZS5xdWVzdGlvbi5leHRyYXMudHlwZSAhPT0gJ2RpYWdub3Npc0dyb3VwJykgYnJlYWs7XG4gICAgICAgIGNvbnN0IGdyb3VwTm9kZSA9IGRpYWdub3Npc05vZGUuY3JlYXRlQ2hpbGROb2RlKCkgYXMgR3JvdXBOb2RlO1xuXG4gICAgICAgIGdyb3VwTm9kZS5xdWVzdGlvbi5kZWZhdWx0VmFsdWUgPSB7IHV1aWQ6IGRpYWdub3Npcy51dWlkIH07XG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgT2JqZWN0LnZhbHVlcyhncm91cE5vZGUuY2hpbGRyZW4pIGFzIExlYWZOb2RlW10pIHtcbiAgICAgICAgICBjb25zdCBkaWFnbm9zaXNUeXBlID1cbiAgICAgICAgICAgIGNoaWxkLnF1ZXN0aW9uLmV4dHJhcy5xdWVzdGlvbk9wdGlvbnMuZGlhZ25vc2lzVHlwZTtcbiAgICAgICAgICBzd2l0Y2ggKGRpYWdub3Npc1R5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2RpYWdub3Npcyc6XG4gICAgICAgICAgICAgIGNoaWxkLmluaXRpYWxWYWx1ZSA9IGRpYWdub3Npcy5kaWFnbm9zaXMuY29kZWQ/LnV1aWQ7XG4gICAgICAgICAgICAgIGNoaWxkLmNvbnRyb2wuc2V0VmFsdWUoZGlhZ25vc2lzLmRpYWdub3Npcy5jb2RlZD8udXVpZCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncmFuayc6XG4gICAgICAgICAgICAgIGNoaWxkLmluaXRpYWxWYWx1ZSA9IGRpYWdub3Npcy5yYW5rO1xuICAgICAgICAgICAgICBjaGlsZC5jb250cm9sLnNldFZhbHVlKGRpYWdub3Npcy5yYW5rKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdjZXJ0YWludHknOlxuICAgICAgICAgICAgICBjaGlsZC5pbml0aWFsVmFsdWUgPSBkaWFnbm9zaXMuY2VydGFpbnR5O1xuICAgICAgICAgICAgICBjaGlsZC5jb250cm9sLnNldFZhbHVlKGRpYWdub3Npcy5jZXJ0YWludHkpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9maW5kRGlhZ25vc2lzUXVlc3Rpb25Ob2Rlcyhmb3JtTm9kZSkge1xuICAgIGlmIChmb3JtTm9kZS5jaGlsZHJlbikge1xuICAgICAgaWYgKGZvcm1Ob2RlLmNoaWxkcmVuIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGZvcm1Ob2RlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgaWYgKGZvcm1Ob2RlLmNoaWxkcmVuLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoZm9ybU5vZGUuY2hpbGRyZW5ba2V5XS5xdWVzdGlvbi5yZW5kZXJpbmdUeXBlKSB7XG4gICAgICAgICAgICAgIGNhc2UgJ3BhZ2UnOlxuICAgICAgICAgICAgICAgIHRoaXMuX2ZpbmREaWFnbm9zaXNRdWVzdGlvbk5vZGVzKGZvcm1Ob2RlLmNoaWxkcmVuW2tleV0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlICdzZWN0aW9uJzpcbiAgICAgICAgICAgICAgICB0aGlzLl9maW5kRGlhZ25vc2lzUXVlc3Rpb25Ob2Rlcyhmb3JtTm9kZS5jaGlsZHJlbltrZXldKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSAnZ3JvdXAnOlxuICAgICAgICAgICAgICAgIHRoaXMuX2ZpbmREaWFnbm9zaXNRdWVzdGlvbk5vZGVzKGZvcm1Ob2RlLmNoaWxkcmVuW2tleV0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlICdyZXBlYXRpbmcnOlxuICAgICAgICAgICAgICAgIGlmIChmb3JtTm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgICAgICAgICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gZm9ybU5vZGU7XG4gICAgICAgICAgICAgICAgICAvLyBDb25kaXRpb24gZm9yIGRpYWdub3Npc0dyb3VwIG5vZGVzXG4gICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG5vZGUgaW4gZm9ybU5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcXVlc3Rpb25FeHRyYXMgPVxuICAgICAgICAgICAgICAgICAgICAgIGZvcm1Ob2RlLmNoaWxkcmVuW25vZGVdLnF1ZXN0aW9uLmV4dHJhcztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHF1ZXN0aW9uRXh0cmFzLnR5cGUgPT09ICdkaWFnbm9zaXNHcm91cCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhcnJheU5vZGUgPSBmb3JtTm9kZS5jaGlsZHJlbltub2RlXSBhcyBBcnJheU5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtRGlhZ25vc2lzTm9kZXMucHVzaChhcnJheU5vZGUpO1xuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAvLyBDb25kaXRpb24gZm9yIGRpYWdub3NpcyBub2Rlc1xuICAgICAgICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyhjaGlsZHJlbikuZm9yRWFjaCgoY2hpbGQ6IExlYWZOb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcXVlc3Rpb24sIG5vZGVJbmRleCB9ID0gY2hpbGQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbi5leHRyYXM/LnR5cGUgPT09ICdkaWFnbm9zaXMnICYmXG4gICAgICAgICAgICAgICAgICAgICAgIXRoaXMuZm9ybURpYWdub3Npc05vZGVzLnNvbWUoXG4gICAgICAgICAgICAgICAgICAgICAgICAoeCkgPT4geC5ub2RlSW5kZXggPT09IG5vZGVJbmRleFxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtRGlhZ25vc2lzTm9kZXMucHVzaChjaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NvbnZlcnQoZGlhZ25vc2lzOiBEaWFnbm9zaXMpOiBEaWFnbm9zaXNQYXlsb2FkIHtcbiAgICByZXR1cm4ge1xuICAgICAgdXVpZDogZGlhZ25vc2lzLnV1aWQsXG4gICAgICBlbmNvdW50ZXI6IGRpYWdub3Npcy5lbmNvdW50ZXIsXG4gICAgICBwYXRpZW50OiBkaWFnbm9zaXMucGF0aWVudCxcbiAgICAgIGRpYWdub3Npczoge1xuICAgICAgICBjb2RlZDogZGlhZ25vc2lzLmRpYWdub3Npcy5jb2RlZC51dWlkLFxuICAgICAgICBub25Db2RlZDogZGlhZ25vc2lzLmRpYWdub3Npcy5ub25Db2RlZFxuICAgICAgfSxcbiAgICAgIGNlcnRhaW50eTogZGlhZ25vc2lzLmNlcnRhaW50eSxcbiAgICAgIHJhbms6IGRpYWdub3Npcy5yYW5rLFxuICAgICAgdm9pZGVkOiBkaWFnbm9zaXMudm9pZGVkXG4gICAgfTtcbiAgfVxuXG4gIGhhc0RpYWdub3Npc05vZGVDaGFuZ2VkKG5vZGVBc0dyb3VwOiBHcm91cE5vZGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBjaGlsZHJlbk5vZGVzID0gT2JqZWN0LnZhbHVlcyhub2RlQXNHcm91cC5jaGlsZHJlbikgYXMgQXJyYXk8XG4gICAgICBMZWFmTm9kZVxuICAgID47XG5cbiAgICBmb3IgKGxldCBjaGlsZE5vZGUgb2YgY2hpbGRyZW5Ob2Rlcykge1xuICAgICAgaWYgKGNoaWxkTm9kZS5jb250cm9sLnZhbHVlICE9PSBub2RlQXNHcm91cC5pbml0aWFsVmFsdWU/LnByaW1hcnlEaWFnbm9zaXNJZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaWFnbm9zaXMge1xuICB1dWlkPzogc3RyaW5nO1xuICBkaXNwbGF5Pzogc3RyaW5nO1xuICBlbmNvdW50ZXI/OiBzdHJpbmc7XG4gIHBhdGllbnQ/OiBzdHJpbmc7XG4gIGRpYWdub3Npczoge1xuICAgIGNvZGVkPzoge1xuICAgICAgdXVpZDogc3RyaW5nO1xuICAgICAgZGlzcGxheT86IHN0cmluZztcbiAgICB9O1xuICAgIG5vbkNvZGVkPzogc3RyaW5nO1xuICB9O1xuICBjZXJ0YWludHk6ICdDT05GSVJNRUQnIHwgJ1BST1ZJU0lPTkFMJztcbiAgcmFuazogbnVtYmVyO1xuICB2b2lkZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpYWdub3Npc1BheWxvYWQge1xuICB1dWlkPzogc3RyaW5nO1xuICBlbmNvdW50ZXI/OiBzdHJpbmc7XG4gIHBhdGllbnQ/OiBzdHJpbmc7XG4gIGRpYWdub3Npczoge1xuICAgIGNvZGVkPzogc3RyaW5nO1xuICAgIG5vbkNvZGVkPzogc3RyaW5nO1xuICB9O1xuICBjZXJ0YWludHk6ICdDT05GSVJNRUQnIHwgJ1BST1ZJU0lPTkFMJztcbiAgcmFuazogbnVtYmVyO1xuICB2b2lkZWQ/OiBib29sZWFuO1xufVxuIl19
|
|
241
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhZ25vc2lzLmFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZm9ybWVudHJ5L3NyYy9mb3JtLWVudHJ5L3ZhbHVlLWFkYXB0ZXJzL2RpYWdub3Npcy5hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFHNUIsT0FBTyxFQUFFLFNBQVMsRUFBdUIsTUFBTSwyQkFBMkIsQ0FBQzs7QUFHM0UsTUFBTSxPQUFPLHFCQUFxQjtJQURsQztRQUVFLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztLQXFTekI7SUFuU0MsbUJBQW1CLENBQUMsSUFBVTtRQUM1QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQ2pDLElBQUksQ0FBQyxrQkFBa0IsRUFDdkIsSUFBSSxDQUFDLGlCQUFpQixDQUN2QixDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFVLEVBQUUsU0FBMkI7UUFDbEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMvQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsbUJBQW1CLENBQ3RCLElBQUksQ0FBQyxrQkFBa0IsRUFDdkIsSUFBSSxDQUFDLGlCQUFpQixFQUN0QixDQUFDLENBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxtQkFBbUIsQ0FDdEIsSUFBSSxDQUFDLGtCQUFrQixFQUN2QixJQUFJLENBQUMsaUJBQWlCLEVBQ3RCLENBQUMsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLHNCQUFzQixDQUN6QixJQUFJLENBQUMsa0JBQWtCLEVBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsQ0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxjQUFjLEVBQUUsaUJBQWlCO1FBQy9ELE1BQU0sT0FBTyxHQUE0QixFQUFFLENBQUM7UUFDNUMsSUFBSSxnQkFBZ0IsR0FBNEIsRUFBRSxDQUFDO1FBRW5ELCtCQUErQjtRQUMvQixjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDL0IsSUFBSSxJQUFJLFlBQVksU0FBUyxFQUFFO2dCQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUs7cUJBQ2YsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztxQkFDbkMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ2pCLGlCQUFpQjtvQkFDakIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQ25ELEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FDckIsQ0FBQztvQkFFRixNQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQzVDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDSixDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO3dCQUNuRCxDQUFDLENBQUMsU0FBUyxLQUFLLFdBQVc7d0JBQzNCLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FDdkQsQ0FBQztvQkFFRixJQUFJLGNBQWMsRUFBRTt3QkFDbEIsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO3FCQUNoQztnQkFDSCxDQUFDLENBQUMsQ0FBQzthQUNOO1lBRUQsSUFBSSxJQUFJLFlBQVksU0FBUyxFQUFFO2dCQUM3QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUNyQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7b0JBQ25DLElBQUksSUFBSSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxFQUFFO3dCQUMzQyxNQUFNLGdCQUFnQixHQUE4QixFQUFFLENBQUM7d0JBQ3ZELE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQW1CLEVBQUUsRUFBRTs0QkFDaEUsTUFBTSxFQUNKLGFBQWEsRUFDZCxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQzs0QkFDOUMsUUFBUSxhQUFhLEVBQUU7Z0NBQ3JCLEtBQUssTUFBTTtvQ0FDVCxnQkFBZ0IsQ0FBQyxJQUFJO3dDQUNuQixRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO29DQUM3QyxNQUFNO2dDQUNSLEtBQUssV0FBVztvQ0FDZCxnQkFBZ0IsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7b0NBQ3JELE1BQU07Z0NBQ1IsS0FBSyxXQUFXO29DQUNkLGdCQUFnQixDQUFDLFNBQVMsR0FBRzt3Q0FDM0IsS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSztxQ0FDL0IsQ0FBQztvQ0FDRixNQUFNO2dDQUNSO29DQUNFLE1BQU07NkJBQ1Q7d0JBQ0gsQ0FBQyxDQUFDLENBQUM7d0JBQ0gsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEVBQUU7NEJBQy9CLE9BQU8sSUFBSSxDQUFDO3lCQUNiO3dCQUNELElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFOzRCQUN6QyxnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO3lCQUM5RDt3QkFDRCxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO3dCQUNoQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFvQyxDQUFDLENBQUM7cUJBQ3BEO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUN0RCxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDekUsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVPLHVCQUF1QixDQUFDLFNBQVMsRUFBRSxjQUFjO1FBQ3ZELE1BQU0sU0FBUyxHQUFxQjtZQUNsQyxTQUFTLEVBQUU7Z0JBQ1QsS0FBSyxFQUFFLFNBQVM7YUFDakI7WUFDRCxTQUFTLEVBQUUsV0FBVztZQUN0QixJQUFJLEVBQUUsY0FBYyxDQUFDLGVBQWUsQ0FBQyxJQUFJO1lBQ3pDLE1BQU0sRUFBRSxLQUFLO1NBQ2QsQ0FBQztRQUVGLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTyxvQkFBb0IsQ0FDMUIsY0FBdUMsRUFDdkMsaUJBQW1DO1FBRW5DLE9BQU8saUJBQWlCO2FBQ3JCLE1BQU0sQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEVBQUU7WUFDNUIsT0FBTyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDcEMsSUFBSSxJQUFJLFlBQVksU0FBUyxFQUFFO29CQUM3QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO3dCQUN2QyxPQUFPLENBQ0wsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDOzRCQUN0QixpQkFBaUIsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUk7NEJBQ3hDLGlCQUFpQixDQUFDLElBQUk7Z0NBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJOzRCQUMzQyxpQkFBaUIsQ0FBQyxTQUFTLEtBQUssV0FBVyxDQUM1QyxDQUFDO29CQUNKLENBQUMsQ0FBQyxDQUFDO2lCQUNKO2dCQUNELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7YUFDRCxHQUFHLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMzQixJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtZQUM1QixNQUFNLEVBQUUsSUFBSTtTQUNiLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUVPLG9CQUFvQixDQUMxQixnQkFBeUMsRUFDekMsaUJBQW1DO1FBRW5DLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzdCLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUMvQixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUN2RSxDQUFDLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sbUJBQW1CLENBQ3pCLGtCQUFrQixFQUNsQixpQkFBbUMsRUFDbkMsSUFBWTtRQUVaLGtCQUFrQjtZQUNoQixFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUM7YUFDcEUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDO1lBQ3pDLGlCQUFpQjtpQkFDZCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDO2lCQUM3QixPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNqQixLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQzFELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3ZDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNsQyxTQUFTLENBQUMsY0FBYyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sc0JBQXNCLENBQzVCLGtCQUFrQixFQUNsQixpQkFBbUM7UUFFbkMsS0FBSyxNQUFNLFNBQVMsSUFBSSxpQkFBaUIsRUFBRTtZQUN6QyxLQUFLLE1BQU0sYUFBYSxJQUFJLGtCQUFrQixFQUFFO2dCQUM5QyxJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxnQkFBZ0I7b0JBQUUsTUFBTTtnQkFDbkUsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLGVBQWUsRUFBZSxDQUFDO2dCQUUvRCxTQUFTLENBQUMsUUFBUSxDQUFDLFlBQVksR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzNELEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFlLEVBQUU7b0JBQ25FLE1BQU0sYUFBYSxHQUNqQixLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDO29CQUN0RCxRQUFRLGFBQWEsRUFBRTt3QkFDckIsS0FBSyxXQUFXOzRCQUNkLEtBQUssQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDOzRCQUNyRCxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQzs0QkFDeEQsTUFBTTt3QkFDUixLQUFLLE1BQU07NEJBQ1QsS0FBSyxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDOzRCQUNwQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7NEJBQ3ZDLE1BQU07d0JBQ1IsS0FBSyxXQUFXOzRCQUNkLEtBQUssQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQzs0QkFDekMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDOzRCQUM1QyxNQUFNO3FCQUNUO2lCQUNGO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFTywyQkFBMkIsQ0FBQyxRQUFRO1FBQzFDLElBQUksUUFBUSxDQUFDLFFBQVEsRUFBRTtZQUNyQixJQUFJLFFBQVEsQ0FBQyxRQUFRLFlBQVksTUFBTSxFQUFFO2dCQUN2QyxLQUFLLE1BQU0sR0FBRyxJQUFJLFFBQVEsQ0FBQyxRQUFRLEVBQUU7b0JBQ25DLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUU7d0JBQ3pDLFFBQVEsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFOzRCQUNyRCxLQUFLLE1BQU07Z0NBQ1QsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQ0FDekQsTUFBTTs0QkFDUixLQUFLLFNBQVM7Z0NBQ1osSUFBSSxDQUFDLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQ0FDekQsTUFBTTs0QkFDUixLQUFLLE9BQU87Z0NBQ1YsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQ0FDekQsTUFBTTs0QkFDUixLQUFLLFdBQVc7Z0NBQ2QsSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFO29DQUNyQixNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsUUFBUSxDQUFDO29DQUM5QixxQ0FBcUM7b0NBQ3JDLEtBQUssTUFBTSxJQUFJLElBQUksUUFBUSxDQUFDLFFBQVEsRUFBRTt3Q0FDcEMsTUFBTSxjQUFjLEdBQ2xCLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQzt3Q0FDMUMsSUFBSSxjQUFjLENBQUMsSUFBSSxLQUFLLGdCQUFnQixFQUFFOzRDQUM1QyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBYyxDQUFDOzRDQUN2RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDOzRDQUN4QyxNQUFNO3lDQUNQO3FDQUNGO29DQUNELGdDQUFnQztvQ0FDaEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFlLEVBQUUsRUFBRTt3Q0FDbEQsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUFLLENBQUM7d0NBQ3RDLElBQ0UsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLEtBQUssV0FBVzs0Q0FDckMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUMzQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQ2pDLEVBQ0Q7NENBQ0EsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzt5Q0FDckM7b0NBQ0gsQ0FBQyxDQUFDLENBQUM7aUNBQ0o7Z0NBRUQsTUFBTTs0QkFDUjtnQ0FDRSxNQUFNO3lCQUNUO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFTyxRQUFRLENBQUMsU0FBb0I7UUFDbkMsT0FBTztZQUNMLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtZQUNwQixTQUFTLEVBQUUsU0FBUyxDQUFDLFNBQVM7WUFDOUIsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPO1lBQzFCLFNBQVMsRUFBRTtnQkFDVCxLQUFLLEVBQUUsU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSTtnQkFDckMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUTthQUN2QztZQUNELFNBQVMsRUFBRSxTQUFTLENBQUMsU0FBUztZQUM5QixJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7WUFDcEIsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNO1NBQ3pCLENBQUM7SUFDSixDQUFDO0lBRUQsdUJBQXVCLENBQUMsV0FBc0I7UUFDNUMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUV2RCxDQUFDO1FBRUYsS0FBSyxJQUFJLFNBQVMsSUFBSSxhQUFhLEVBQUU7WUFDbkMsSUFDRSxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxXQUFXLENBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUN4RTtnQkFDQSxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7O21IQXJTVSxxQkFBcUI7dUhBQXJCLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBGb3JtIH0gZnJvbSAnLi4vZm9ybS1mYWN0b3J5L2Zvcm0nO1xuaW1wb3J0IHsgVmFsdWVBZGFwdGVyIH0gZnJvbSAnLi92YWx1ZS5hZGFwdGVyJztcbmltcG9ydCB7IEFycmF5Tm9kZSwgR3JvdXBOb2RlLCBMZWFmTm9kZSB9IGZyb20gJy4uL2Zvcm0tZmFjdG9yeS9mb3JtLW5vZGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGlhZ25vc2lzVmFsdWVBZGFwdGVyIGltcGxlbWVudHMgVmFsdWVBZGFwdGVyIHtcbiAgZm9ybURpYWdub3Npc05vZGVzID0gW107XG5cbiAgZ2VuZXJhdGVGb3JtUGF5bG9hZChmb3JtOiBGb3JtKSB7XG4gICAgdGhpcy5mb3JtRGlhZ25vc2lzTm9kZXMgPSBbXTtcbiAgICB0aGlzLl9maW5kRGlhZ25vc2lzUXVlc3Rpb25Ob2Rlcyhmb3JtLnJvb3ROb2RlKTtcbiAgICByZXR1cm4gdGhpcy5fY3JlYXRlRGlhZ25vc2VzUGF5bG9hZChcbiAgICAgIHRoaXMuZm9ybURpYWdub3Npc05vZGVzLFxuICAgICAgZm9ybS5leGlzdGluZ0RpYWdub3Nlc1xuICAgICk7XG4gIH1cblxuICBwb3B1bGF0ZUZvcm0oZm9ybTogRm9ybSwgZGlhZ25vc2VzOiBBcnJheTxEaWFnbm9zaXM+KSB7XG4gICAgZm9ybS5leGlzdGluZ0RpYWdub3NlcyA9IGRpYWdub3Nlcz8uZmlsdGVyKChkKSA9PiB7XG4gICAgICByZXR1cm4gIWQudm9pZGVkO1xuICAgIH0pO1xuICAgIHRoaXMuZm9ybURpYWdub3Npc05vZGVzID0gW107XG4gICAgdGhpcy5fZmluZERpYWdub3Npc1F1ZXN0aW9uTm9kZXMoZm9ybS5yb290Tm9kZSk7XG4gICAgdGhpcy5fc2V0RGlhZ25vc2VzVmFsdWVzKFxuICAgICAgdGhpcy5mb3JtRGlhZ25vc2lzTm9kZXMsXG4gICAgICBmb3JtLmV4aXN0aW5nRGlhZ25vc2VzLFxuICAgICAgMVxuICAgICk7XG4gICAgdGhpcy5fc2V0RGlhZ25vc2VzVmFsdWVzKFxuICAgICAgdGhpcy5mb3JtRGlhZ25vc2lzTm9kZXMsXG4gICAgICBmb3JtLmV4aXN0aW5nRGlhZ25vc2VzLFxuICAgICAgMlxuICAgICk7XG4gICAgdGhpcy5zZXREaWFnbm9zaXNHcm91cFZhbHVlKFxuICAgICAgdGhpcy5mb3JtRGlhZ25vc2lzTm9kZXMsXG4gICAgICBmb3JtLmV4aXN0aW5nRGlhZ25vc2VzXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZURpYWdub3Nlc1BheWxvYWQoZGlhZ25vc2lzTm9kZXMsIGV4aXN0aW5nRGlhZ25vc2VzKSB7XG4gICAgY29uc3QgcGF5bG9hZDogQXJyYXk8RGlhZ25vc2lzUGF5bG9hZD4gPSBbXTtcbiAgICBsZXQgZGVsZXRlZERpYWdub3NlczogQXJyYXk8RGlhZ25vc2lzUGF5bG9hZD4gPSBbXTtcblxuICAgIC8vIEFkZCBuZXcgZGlhZ25vc2lzIHRvIHBheWxvYWRcbiAgICBkaWFnbm9zaXNOb2Rlcz8uZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBBcnJheU5vZGUpIHtcbiAgICAgICAgbm9kZS5jb250cm9sLnZhbHVlXG4gICAgICAgICAgLmZpbHRlcigodikgPT4gdltub2RlLnF1ZXN0aW9uLmtleV0pXG4gICAgICAgICAgLmZvckVhY2goKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAvLyBDcmVhdGUgUGF5bG9hZFxuICAgICAgICAgICAgY29uc3QgcGF5bG9hZERpYWdub3NpcyA9IHRoaXMuX2NyZWF0ZVBheWxvYWREaWFnbm9zaXMoXG4gICAgICAgICAgICAgIHZhbHVlW25vZGUucXVlc3Rpb24ua2V5XSxcbiAgICAgICAgICAgICAgbm9kZS5xdWVzdGlvbi5leHRyYXNcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGNvbnN0IGlzTmV3RGlhZ25vc2lzID0gZXhpc3RpbmdEaWFnbm9zZXMuZXZlcnkoXG4gICAgICAgICAgICAgIChkKSA9PlxuICAgICAgICAgICAgICAgIGQuZGlhZ25vc2lzLmNvZGVkLnV1aWQgIT09IHZhbHVlW25vZGUucXVlc3Rpb24ua2V5XSB8fFxuICAgICAgICAgICAgICAgIGQuY2VydGFpbnR5ICE9PSAnQ09ORklSTUVEJyB8fFxuICAgICAgICAgICAgICAgIGQucmFuayAhPT0gbm9kZS5xdWVzdGlvbi5leHRyYXMucXVlc3Rpb25PcHRpb25zLnJhbmtcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChpc05ld0RpYWdub3Npcykge1xuICAgICAgICAgICAgICBwYXlsb2FkLnB1c2gocGF5bG9hZERpYWdub3Npcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChub2RlIGluc3RhbmNlb2YgQXJyYXlOb2RlKSB7XG4gICAgICAgIGNvbnN0IGdyb3VwTm9kZUFycmF5ID0gbm9kZS5jaGlsZHJlbjtcbiAgICAgICAgZ3JvdXBOb2RlQXJyYXkuZm9yRWFjaCgoZ3JvdXBOb2RlKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuaGFzRGlhZ25vc2lzTm9kZUNoYW5nZWQoZ3JvdXBOb2RlKSkge1xuICAgICAgICAgICAgY29uc3QgZGlhZ25vc2lzUGF5bG9hZDogUGFydGlhbDxEaWFnbm9zaXNQYXlsb2FkPiA9IHt9O1xuICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyhncm91cE5vZGUuY2hpbGRyZW4pLmZvckVhY2goKGNoaWxkTm9kZTogTGVhZk5vZGUpID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICAgIGRpYWdub3Npc1R5cGVcbiAgICAgICAgICAgICAgfSA9IGNoaWxkTm9kZS5xdWVzdGlvbi5leHRyYXMucXVlc3Rpb25PcHRpb25zO1xuICAgICAgICAgICAgICBzd2l0Y2ggKGRpYWdub3Npc1R5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdyYW5rJzpcbiAgICAgICAgICAgICAgICAgIGRpYWdub3Npc1BheWxvYWQucmFuayA9XG4gICAgICAgICAgICAgICAgICAgIHBhcnNlSW50KGNoaWxkTm9kZS5jb250cm9sLnZhbHVlLCAxMCkgPz8gMTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2NlcnRhaW50eSc6XG4gICAgICAgICAgICAgICAgICBkaWFnbm9zaXNQYXlsb2FkLmNlcnRhaW50eSA9IGNoaWxkTm9kZS5jb250cm9sLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnZGlhZ25vc2lzJzpcbiAgICAgICAgICAgICAgICAgIGRpYWdub3Npc1BheWxvYWQuZGlhZ25vc2lzID0ge1xuICAgICAgICAgICAgICAgICAgICBjb2RlZDogY2hpbGROb2RlLmNvbnRyb2wudmFsdWVcbiAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKF8uaXNFbXB0eShkaWFnbm9zaXNQYXlsb2FkKSkge1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChncm91cE5vZGUucXVlc3Rpb24uZGVmYXVsdFZhbHVlPy51dWlkKSB7XG4gICAgICAgICAgICAgIGRpYWdub3Npc1BheWxvYWQudXVpZCA9IGdyb3VwTm9kZS5xdWVzdGlvbi5kZWZhdWx0VmFsdWUudXVpZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRpYWdub3Npc1BheWxvYWQudm9pZGVkID0gZmFsc2U7XG4gICAgICAgICAgICBwYXlsb2FkLnB1c2goZGlhZ25vc2lzUGF5bG9hZCBhcyBEaWFnbm9zaXNQYXlsb2FkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuX3VwZGF0ZWRPbGREaWFnbm9zZXMocGF5bG9hZCwgZXhpc3RpbmdEaWFnbm9zZXMpO1xuICAgIGRlbGV0ZWREaWFnbm9zZXMgPSB0aGlzLl9nZXREZWxldGVkRGlhZ25vc2VzKHBheWxvYWQsIGV4aXN0aW5nRGlhZ25vc2VzKTtcbiAgICByZXR1cm4gcGF5bG9hZC5jb25jYXQoZGVsZXRlZERpYWdub3Nlcyk7XG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGVQYXlsb2FkRGlhZ25vc2lzKGNvZGVkVXVpZCwgcXVlc3Rpb25FeHRyYXMpOiBEaWFnbm9zaXNQYXlsb2FkIHtcbiAgICBjb25zdCBkaWFnbm9zaXM6IERpYWdub3Npc1BheWxvYWQgPSB7XG4gICAgICBkaWFnbm9zaXM6IHtcbiAgICAgICAgY29kZWQ6IGNvZGVkVXVpZFxuICAgICAgfSxcbiAgICAgIGNlcnRhaW50eTogJ0NPTkZJUk1FRCcsXG4gICAgICByYW5rOiBxdWVzdGlvbkV4dHJhcy5xdWVzdGlvbk9wdGlvbnMucmFuayxcbiAgICAgIHZvaWRlZDogZmFsc2VcbiAgICB9O1xuXG4gICAgcmV0dXJuIGRpYWdub3NpcztcbiAgfVxuXG4gIHByaXZhdGUgX2dldERlbGV0ZWREaWFnbm9zZXMoXG4gICAgZGlhZ25vc2lzTm9kZXM6IEFycmF5PERpYWdub3Npc1BheWxvYWQ+LFxuICAgIGV4aXN0aW5nRGlhZ25vc2VzOiBBcnJheTxEaWFnbm9zaXM+XG4gICk6IEFycmF5PGFueT4ge1xuICAgIHJldHVybiBleGlzdGluZ0RpYWdub3Nlc1xuICAgICAgLmZpbHRlcigoZXhpc3RpbmdEaWFnbm9zaXMpID0+IHtcbiAgICAgICAgcmV0dXJuICFkaWFnbm9zaXNOb2Rlcz8uc29tZSgobm9kZSkgPT4ge1xuICAgICAgICAgIGlmIChub2RlIGluc3RhbmNlb2YgQXJyYXlOb2RlKSB7XG4gICAgICAgICAgICByZXR1cm4gbm9kZS5jb250cm9sLnZhbHVlLnNvbWUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgdmFsdWVbbm9kZS5xdWVzdGlvbi5rZXldID09PVxuICAgICAgICAgICAgICAgICAgZXhpc3RpbmdEaWFnbm9zaXMuZGlhZ25vc2lzLmNvZGVkLnV1aWQgJiZcbiAgICAgICAgICAgICAgICBleGlzdGluZ0RpYWdub3Npcy5yYW5rID09PVxuICAgICAgICAgICAgICAgICAgbm9kZS5xdWVzdGlvbi5leHRyYXMucXVlc3Rpb25PcHRpb25zLnJhbmsgJiZcbiAgICAgICAgICAgICAgICBleGlzdGluZ0RpYWdub3Npcy5jZXJ0YWludHkgPT09ICdDT05GSVJNRUQnXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgICAubWFwKChleGlzdGluZ0RpYWdub3NpcykgPT4gKHtcbiAgICAgICAgdXVpZDogZXhpc3RpbmdEaWFnbm9zaXMudXVpZCxcbiAgICAgICAgdm9pZGVkOiB0cnVlXG4gICAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVkT2xkRGlhZ25vc2VzKFxuICAgIHBheWxvYWREaWFnbm9zZXM6IEFycmF5PERpYWdub3Npc1BheWxvYWQ+LFxuICAgIGV4aXN0aW5nRGlhZ25vc2VzOiBBcnJheTxEaWFnbm9zaXM+XG4gICkge1xuICAgIHBheWxvYWREaWFnbm9zZXMuZm9yRWFjaCgocCkgPT4ge1xuICAgICAgZXhpc3RpbmdEaWFnbm9zZXM/LmZvckVhY2goKGUpID0+IHtcbiAgICAgICAgbGV0IGlzU2FtZSA9ICFlLnZvaWRlZCAmJiBwLmRpYWdub3Npcy5jb2RlZCA9PT0gZS5kaWFnbm9zaXMuY29kZWQudXVpZDtcbiAgICAgICAgcC51dWlkID0gaXNTYW1lID8gZS51dWlkIDogbnVsbDtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0RGlhZ25vc2VzVmFsdWVzKFxuICAgIGZvcm1EaWFnbm9zaXNOb2RlcyxcbiAgICBleGlzdGluZ0RpYWdub3NlczogQXJyYXk8RGlhZ25vc2lzPixcbiAgICByYW5rOiBudW1iZXJcbiAgKSB7XG4gICAgZm9ybURpYWdub3Npc05vZGVzXG4gICAgICA/LmZpbHRlcigobm9kZSkgPT4gbm9kZS5xdWVzdGlvbi5leHRyYXMucXVlc3Rpb25PcHRpb25zLnJhbmsgPT0gcmFuaylcbiAgICAgIC5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgIG5vZGVbJ2luaXRpYWxWYWx1ZSddID0gZXhpc3RpbmdEaWFnbm9zZXM7XG4gICAgICAgIGV4aXN0aW5nRGlhZ25vc2VzXG4gICAgICAgICAgLmZpbHRlcigoZCkgPT4gZC5yYW5rID09IHJhbmspXG4gICAgICAgICAgLmZvckVhY2goKGRpYWdub3NpcywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIG5vZGUuY3JlYXRlQ2hpbGROb2RlKCk7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHt9O1xuICAgICAgICAgICAgdmFsdWVbbm9kZS5xdWVzdGlvbi5rZXldID0gZGlhZ25vc2lzLmRpYWdub3Npcy5jb2RlZC51dWlkO1xuICAgICAgICAgICAgY29uc3QgY2hpbGROb2RlID0gbm9kZS5jaGlsZHJlbltpbmRleF07XG4gICAgICAgICAgICBjaGlsZE5vZGUuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgICAgICBjaGlsZE5vZGVbJ2luaXRpYWxWYWx1ZSddID0gdmFsdWU7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGlhZ25vc2lzR3JvdXBWYWx1ZShcbiAgICBmb3JtRGlhZ25vc2lzTm9kZXMsXG4gICAgZXhpc3RpbmdEaWFnbm9zZXM6IEFycmF5PERpYWdub3Npcz5cbiAgKSB7XG4gICAgZm9yIChjb25zdCBkaWFnbm9zaXMgb2YgZXhpc3RpbmdEaWFnbm9zZXMpIHtcbiAgICAgIGZvciAoY29uc3QgZGlhZ25vc2lzTm9kZSBvZiBmb3JtRGlhZ25vc2lzTm9kZXMpIHtcbiAgICAgICAgaWYgKGRpYWdub3Npc05vZGUucXVlc3Rpb24uZXh0cmFzLnR5cGUgIT09ICdkaWFnbm9zaXNHcm91cCcpIGJyZWFrO1xuICAgICAgICBjb25zdCBncm91cE5vZGUgPSBkaWFnbm9zaXNOb2RlLmNyZWF0ZUNoaWxkTm9kZSgpIGFzIEdyb3VwTm9kZTtcblxuICAgICAgICBncm91cE5vZGUucXVlc3Rpb24uZGVmYXVsdFZhbHVlID0geyB1dWlkOiBkaWFnbm9zaXMudXVpZCB9O1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIE9iamVjdC52YWx1ZXMoZ3JvdXBOb2RlLmNoaWxkcmVuKSBhcyBMZWFmTm9kZVtdKSB7XG4gICAgICAgICAgY29uc3QgZGlhZ25vc2lzVHlwZSA9XG4gICAgICAgICAgICBjaGlsZC5xdWVzdGlvbi5leHRyYXMucXVlc3Rpb25PcHRpb25zLmRpYWdub3Npc1R5cGU7XG4gICAgICAgICAgc3dpdGNoIChkaWFnbm9zaXNUeXBlKSB7XG4gICAgICAgICAgICBjYXNlICdkaWFnbm9zaXMnOlxuICAgICAgICAgICAgICBjaGlsZC5pbml0aWFsVmFsdWUgPSBkaWFnbm9zaXMuZGlhZ25vc2lzLmNvZGVkPy51dWlkO1xuICAgICAgICAgICAgICBjaGlsZC5jb250cm9sLnNldFZhbHVlKGRpYWdub3Npcy5kaWFnbm9zaXMuY29kZWQ/LnV1aWQpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3JhbmsnOlxuICAgICAgICAgICAgICBjaGlsZC5pbml0aWFsVmFsdWUgPSBkaWFnbm9zaXMucmFuaztcbiAgICAgICAgICAgICAgY2hpbGQuY29udHJvbC5zZXRWYWx1ZShkaWFnbm9zaXMucmFuayk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnY2VydGFpbnR5JzpcbiAgICAgICAgICAgICAgY2hpbGQuaW5pdGlhbFZhbHVlID0gZGlhZ25vc2lzLmNlcnRhaW50eTtcbiAgICAgICAgICAgICAgY2hpbGQuY29udHJvbC5zZXRWYWx1ZShkaWFnbm9zaXMuY2VydGFpbnR5KTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZmluZERpYWdub3Npc1F1ZXN0aW9uTm9kZXMoZm9ybU5vZGUpIHtcbiAgICBpZiAoZm9ybU5vZGUuY2hpbGRyZW4pIHtcbiAgICAgIGlmIChmb3JtTm9kZS5jaGlsZHJlbiBpbnN0YW5jZW9mIE9iamVjdCkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBmb3JtTm9kZS5jaGlsZHJlbikge1xuICAgICAgICAgIGlmIChmb3JtTm9kZS5jaGlsZHJlbi5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGZvcm1Ob2RlLmNoaWxkcmVuW2tleV0ucXVlc3Rpb24ucmVuZGVyaW5nVHlwZSkge1xuICAgICAgICAgICAgICBjYXNlICdwYWdlJzpcbiAgICAgICAgICAgICAgICB0aGlzLl9maW5kRGlhZ25vc2lzUXVlc3Rpb25Ob2Rlcyhmb3JtTm9kZS5jaGlsZHJlbltrZXldKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSAnc2VjdGlvbic6XG4gICAgICAgICAgICAgICAgdGhpcy5fZmluZERpYWdub3Npc1F1ZXN0aW9uTm9kZXMoZm9ybU5vZGUuY2hpbGRyZW5ba2V5XSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgJ2dyb3VwJzpcbiAgICAgICAgICAgICAgICB0aGlzLl9maW5kRGlhZ25vc2lzUXVlc3Rpb25Ob2Rlcyhmb3JtTm9kZS5jaGlsZHJlbltrZXldKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSAncmVwZWF0aW5nJzpcbiAgICAgICAgICAgICAgICBpZiAoZm9ybU5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHsgY2hpbGRyZW4gfSA9IGZvcm1Ob2RlO1xuICAgICAgICAgICAgICAgICAgLy8gQ29uZGl0aW9uIGZvciBkaWFnbm9zaXNHcm91cCBub2Rlc1xuICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBub2RlIGluIGZvcm1Ob2RlLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHF1ZXN0aW9uRXh0cmFzID1cbiAgICAgICAgICAgICAgICAgICAgICBmb3JtTm9kZS5jaGlsZHJlbltub2RlXS5xdWVzdGlvbi5leHRyYXM7XG4gICAgICAgICAgICAgICAgICAgIGlmIChxdWVzdGlvbkV4dHJhcy50eXBlID09PSAnZGlhZ25vc2lzR3JvdXAnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXJyYXlOb2RlID0gZm9ybU5vZGUuY2hpbGRyZW5bbm9kZV0gYXMgQXJyYXlOb2RlO1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybURpYWdub3Npc05vZGVzLnB1c2goYXJyYXlOb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgLy8gQ29uZGl0aW9uIGZvciBkaWFnbm9zaXMgbm9kZXNcbiAgICAgICAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoY2hpbGRyZW4pLmZvckVhY2goKGNoaWxkOiBMZWFmTm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHF1ZXN0aW9uLCBub2RlSW5kZXggfSA9IGNoaWxkO1xuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgcXVlc3Rpb24uZXh0cmFzPy50eXBlID09PSAnZGlhZ25vc2lzJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICF0aGlzLmZvcm1EaWFnbm9zaXNOb2Rlcy5zb21lKFxuICAgICAgICAgICAgICAgICAgICAgICAgKHgpID0+IHgubm9kZUluZGV4ID09PSBub2RlSW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybURpYWdub3Npc05vZGVzLnB1c2goY2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jb252ZXJ0KGRpYWdub3NpczogRGlhZ25vc2lzKTogRGlhZ25vc2lzUGF5bG9hZCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHV1aWQ6IGRpYWdub3Npcy51dWlkLFxuICAgICAgZW5jb3VudGVyOiBkaWFnbm9zaXMuZW5jb3VudGVyLFxuICAgICAgcGF0aWVudDogZGlhZ25vc2lzLnBhdGllbnQsXG4gICAgICBkaWFnbm9zaXM6IHtcbiAgICAgICAgY29kZWQ6IGRpYWdub3Npcy5kaWFnbm9zaXMuY29kZWQudXVpZCxcbiAgICAgICAgbm9uQ29kZWQ6IGRpYWdub3Npcy5kaWFnbm9zaXMubm9uQ29kZWRcbiAgICAgIH0sXG4gICAgICBjZXJ0YWludHk6IGRpYWdub3Npcy5jZXJ0YWludHksXG4gICAgICByYW5rOiBkaWFnbm9zaXMucmFuayxcbiAgICAgIHZvaWRlZDogZGlhZ25vc2lzLnZvaWRlZFxuICAgIH07XG4gIH1cblxuICBoYXNEaWFnbm9zaXNOb2RlQ2hhbmdlZChub2RlQXNHcm91cDogR3JvdXBOb2RlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY2hpbGRyZW5Ob2RlcyA9IE9iamVjdC52YWx1ZXMobm9kZUFzR3JvdXAuY2hpbGRyZW4pIGFzIEFycmF5PFxuICAgICAgTGVhZk5vZGVcbiAgICA+O1xuXG4gICAgZm9yIChsZXQgY2hpbGROb2RlIG9mIGNoaWxkcmVuTm9kZXMpIHtcbiAgICAgIGlmIChcbiAgICAgICAgY2hpbGROb2RlLmNvbnRyb2wudmFsdWUgIT09IG5vZGVBc0dyb3VwLmluaXRpYWxWYWx1ZT8ucHJpbWFyeURpYWdub3Npc0lkXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlhZ25vc2lzIHtcbiAgdXVpZD86IHN0cmluZztcbiAgZGlzcGxheT86IHN0cmluZztcbiAgZW5jb3VudGVyPzogc3RyaW5nO1xuICBwYXRpZW50Pzogc3RyaW5nO1xuICBkaWFnbm9zaXM6IHtcbiAgICBjb2RlZD86IHtcbiAgICAgIHV1aWQ6IHN0cmluZztcbiAgICAgIGRpc3BsYXk/OiBzdHJpbmc7XG4gICAgfTtcbiAgICBub25Db2RlZD86IHN0cmluZztcbiAgfTtcbiAgY2VydGFpbnR5OiAnQ09ORklSTUVEJyB8ICdQUk9WSVNJT05BTCc7XG4gIHJhbms6IG51bWJlcjtcbiAgdm9pZGVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaWFnbm9zaXNQYXlsb2FkIHtcbiAgdXVpZD86IHN0cmluZztcbiAgZW5jb3VudGVyPzogc3RyaW5nO1xuICBwYXRpZW50Pzogc3RyaW5nO1xuICBkaWFnbm9zaXM6IHtcbiAgICBjb2RlZD86IHN0cmluZztcbiAgICBub25Db2RlZD86IHN0cmluZztcbiAgfTtcbiAgY2VydGFpbnR5OiAnQ09ORklSTUVEJyB8ICdQUk9WSVNJT05BTCc7XG4gIHJhbms6IG51bWJlcjtcbiAgdm9pZGVkPzogYm9vbGVhbjtcbn1cbiJdfQ==
|
|
@@ -12721,7 +12721,7 @@ class DiagnosisValueAdapter {
|
|
|
12721
12721
|
// Create Payload
|
|
12722
12722
|
const payloadDiagnosis = this._createPayloadDiagnosis(value[node.question.key], node.question.extras);
|
|
12723
12723
|
const isNewDiagnosis = existingDiagnoses.every((d) => d.diagnosis.coded.uuid !== value[node.question.key] ||
|
|
12724
|
-
d.certainty !==
|
|
12724
|
+
d.certainty !== 'CONFIRMED' ||
|
|
12725
12725
|
d.rank !== node.question.extras.questionOptions.rank);
|
|
12726
12726
|
if (isNewDiagnosis) {
|
|
12727
12727
|
payload.push(payloadDiagnosis);
|
|
@@ -12782,18 +12782,25 @@ class DiagnosisValueAdapter {
|
|
|
12782
12782
|
return diagnosis;
|
|
12783
12783
|
}
|
|
12784
12784
|
_getDeletedDiagnoses(diagnosisNodes, existingDiagnoses) {
|
|
12785
|
-
return existingDiagnoses
|
|
12786
|
-
|
|
12785
|
+
return existingDiagnoses
|
|
12786
|
+
.filter((existingDiagnosis) => {
|
|
12787
|
+
return !(diagnosisNodes === null || diagnosisNodes === void 0 ? void 0 : diagnosisNodes.some((node) => {
|
|
12787
12788
|
if (node instanceof ArrayNode) {
|
|
12788
|
-
return node.control.value.some(value => {
|
|
12789
|
-
return value[node.question.key] ===
|
|
12790
|
-
existingDiagnosis.
|
|
12791
|
-
existingDiagnosis.
|
|
12789
|
+
return node.control.value.some((value) => {
|
|
12790
|
+
return (value[node.question.key] ===
|
|
12791
|
+
existingDiagnosis.diagnosis.coded.uuid &&
|
|
12792
|
+
existingDiagnosis.rank ===
|
|
12793
|
+
node.question.extras.questionOptions.rank &&
|
|
12794
|
+
existingDiagnosis.certainty === 'CONFIRMED');
|
|
12792
12795
|
});
|
|
12793
12796
|
}
|
|
12794
12797
|
return false;
|
|
12795
12798
|
}));
|
|
12796
|
-
})
|
|
12799
|
+
})
|
|
12800
|
+
.map((existingDiagnosis) => ({
|
|
12801
|
+
uuid: existingDiagnosis.uuid,
|
|
12802
|
+
voided: true
|
|
12803
|
+
}));
|
|
12797
12804
|
}
|
|
12798
12805
|
_updatedOldDiagnoses(payloadDiagnoses, existingDiagnoses) {
|
|
12799
12806
|
payloadDiagnoses.forEach((p) => {
|