@pmcretail/mapper-library 0.0.51 → 0.0.52
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/bundles/pmcretail-mapper-library.umd.js +5 -3
- package/bundles/pmcretail-mapper-library.umd.js.map +1 -1
- package/esm2015/lib/WebReturnMagento2RestV1.class.js +6 -4
- package/fesm2015/pmcretail-mapper-library.js +5 -3
- package/fesm2015/pmcretail-mapper-library.js.map +1 -1
- package/lib/WebReturnMagento2RestV1.class.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -187,14 +187,16 @@ export class WebReturnMagento2RestV1MapperBuilderClass {
|
|
|
187
187
|
return this;
|
|
188
188
|
}
|
|
189
189
|
refundRequest() {
|
|
190
|
-
var _a;
|
|
191
190
|
AppLoggerService.logDebug(this.className, "refundRequest", "Mapping started...");
|
|
192
|
-
this.webReturnObject.refundRequest = (
|
|
191
|
+
this.webReturnObject.refundRequest = (this.orderDetails.items || [])
|
|
192
|
+
.filter(product => product === null || product === void 0 ? void 0 : product.base_price)
|
|
193
|
+
.map((product, index) => ({
|
|
193
194
|
itemLineId: index + 1,
|
|
194
195
|
refundedQuantity: product.qty_refunded || 0,
|
|
195
196
|
refundWithPromotion: true,
|
|
196
197
|
quantity: product.qty_ordered || 0
|
|
197
|
-
}))
|
|
198
|
+
}))
|
|
199
|
+
.filter(product => product.refundedQuantity !== 0);
|
|
198
200
|
AppLoggerService.logDebug(this.className, "refundRequest", `Mapped ${this.webReturnObject.refundRequest.length} refund items.`);
|
|
199
201
|
AppLoggerService.logDebug(this.className, "refundRequest", "Mapping ended...");
|
|
200
202
|
return this;
|
|
@@ -270,4 +272,4 @@ export class WebReturnMagento2RestV1MapperBuilderClass {
|
|
|
270
272
|
}
|
|
271
273
|
}
|
|
272
274
|
}
|
|
273
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViUmV0dXJuTWFnZW50bzJSZXN0VjEuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBwZXItbGlicmFyeS9zcmMvbGliL1dlYlJldHVybk1hZ2VudG8yUmVzdFYxLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBNEMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUEyRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNNLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBRXhGLE1BQU0sT0FBTyx5Q0FBeUM7SUFtQ2xELFlBQVksWUFBaUIsRUFDakIsWUFBMkI7UUFBM0IsaUJBQVksR0FBWixZQUFZLENBQWU7UUFsQ3ZDLGNBQVMsR0FBRywyQ0FBMkMsQ0FBQztRQUVoRCxvQkFBZSxHQUF3QjtZQUMzQyxFQUFFLEVBQUUsRUFBRTtZQUNOLE9BQU8sRUFBRSxFQUFFO1lBQ1gsT0FBTyxFQUFFLEVBQUU7WUFDWCxXQUFXLEVBQUUsRUFBRTtZQUNmLGtCQUFrQixFQUFFLEVBQUU7WUFDdEIsUUFBUSxFQUFFLEVBQUU7WUFDWixVQUFVLEVBQUUsRUFBRTtZQUNkLGdCQUFnQixFQUFFLEVBQUU7WUFDcEIsTUFBTSxFQUFFLEtBQUs7WUFDYixjQUFjLEVBQUUsS0FBSztZQUNyQixNQUFNLEVBQUUsRUFBRTtZQUNWLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLFlBQVksRUFBRSxFQUFFO1lBQ2hCLFFBQVEsRUFBRTtnQkFDTixFQUFFLEVBQUUsRUFBRTtnQkFDTixLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsRUFBRTtnQkFDYixRQUFRLEVBQUUsRUFBRTtnQkFDWixjQUFjLEVBQUUsRUFBRTtnQkFDbEIsZUFBZSxFQUFFLEVBQUU7Z0JBQ25CLGVBQWUsRUFBRSxFQUFFO2dCQUNuQixTQUFTLEVBQUUsRUFBRTtnQkFDYixRQUFRLEVBQUUsRUFBRTtnQkFDWixrQkFBa0IsRUFBRSxLQUFLO2FBQzVCO1lBQ0QseUJBQXlCLEVBQUUsRUFBK0I7WUFDMUQsMEJBQTBCLEVBQUUsRUFBa0M7U0FDakUsQ0FBQTtRQU1HLElBQUksWUFBWSxFQUFFO1lBQ2QsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7U0FDcEM7UUFDRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQscUJBQXFCO1FBQ2pCLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLHVCQUF1QixFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUM7UUFDNUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQztRQUMxRSxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUM7UUFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25DLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUYsSUFBSSxDQUFDLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO1FBQy9FLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLHVCQUF1QixFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDdkYsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELE9BQU87O1FBQ0gsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFFM0UsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQSxNQUFBLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSywwQ0FDM0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFVBQVUsRUFDdEMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFOztZQUFDLE9BQUEsQ0FBQztnQkFDdEIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRTtnQkFDL0IsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLElBQUksRUFBRTtnQkFDdEIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxXQUFXLElBQUksQ0FBQztnQkFDbEMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLFlBQVksSUFBSSxDQUFDO2dCQUMzQyxLQUFLLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxDQUFDO2dCQUM5QixVQUFVLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO2dCQUNsQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtnQkFDN0QsY0FBYyxFQUFFLENBQUMsTUFBQSxPQUFPLENBQUMsV0FBVyxtQ0FBSSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQUEsT0FBTyxDQUFDLFVBQVUsbUNBQUksQ0FBQyxDQUFDO2dCQUN0RSxhQUFhLEVBQUUsT0FBTyxDQUFDLGVBQWUsSUFBSSxDQUFDO2FBQzlDLENBQUMsQ0FBQTtTQUFBLENBQUMsS0FBSSxFQUFFLENBQUM7UUFFZCxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUN6RSxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsYUFBYTs7UUFDVCxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxlQUFlLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUVqRixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFBLE1BQUEsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLDBDQUNoRSxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxVQUFVLEtBQUksT0FBTyxDQUFDLGVBQWUsRUFDakUsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFOztZQUFDLE9BQUEsQ0FBQztnQkFDdEIsT0FBTyxFQUFFLENBQUM7d0JBQ04sVUFBVSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTt3QkFDbEMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxXQUFXLElBQUksQ0FBQztxQkFDckMsQ0FBQztnQkFDRixVQUFVLEVBQUUsS0FBSyxHQUFHLENBQUM7Z0JBQ3JCLFdBQVcsRUFBRSxFQUFFO2dCQUNmLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixJQUFJLFdBQVc7Z0JBQ25HLGFBQWEsRUFBRSxFQUFFO2dCQUNqQixlQUFlLEVBQUUsT0FBTyxDQUFDLGVBQWUsSUFBSSxDQUFDO2dCQUM3QyxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsSUFBSSxXQUFXO2dCQUM1RixhQUFhLEVBQUUsRUFBRTtnQkFDakIsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsTUFBQSxPQUFPLENBQUMsV0FBVyxtQ0FBSSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQUEsT0FBTyxDQUFDLFVBQVUsbUNBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDeEosQ0FBQyxDQUFBO1NBQUEsQ0FBQyxLQUFJLEVBQUUsQ0FBQztRQUVkLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxRQUFROztRQUNKLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBRTVFLE1BQU0sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRS9DLGVBQWUsQ0FBQyxRQUFRLEdBQUc7WUFDdkIsRUFBRSxFQUFFLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdkUsVUFBVSxFQUFFLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDL0UsS0FBSyxFQUFFLFlBQVksQ0FBQyxjQUFjLElBQUksRUFBRTtZQUN4QyxTQUFTLEVBQUUsWUFBWSxDQUFDLGtCQUFrQixJQUFJLEVBQUU7WUFDaEQsUUFBUSxFQUFFLFlBQVksQ0FBQyxpQkFBaUIsSUFBSSxFQUFFO1lBQzlDLGVBQWUsRUFBRSxFQUFFO1lBQ25CLGNBQWMsRUFBRSxFQUFFO1NBQ1QsQ0FBQztRQUVkLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQSxNQUFBLFlBQVksQ0FBQyxvQkFBb0IsMENBQUUsb0JBQW9CLEtBQUksRUFBRSxDQUFDO1FBRTFGLGVBQWUsQ0FBQyxRQUFRLENBQUMsZUFBZSxHQUFHLG1CQUFtQjthQUN6RCxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsV0FBQyxPQUFBLE1BQUEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLFFBQVEsMENBQUUsT0FBTyxDQUFBLEVBQUEsQ0FBQzthQUMvQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7O1lBQ1osTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDMUMsT0FBTztnQkFDSCxFQUFFLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzdFLFdBQVcsRUFBRSxPQUFPLENBQUMsVUFBVSxJQUFJLEVBQUU7Z0JBQ3JDLFFBQVEsRUFBRSxDQUFBLE1BQUEsT0FBTyxDQUFDLE1BQU0sMENBQUcsQ0FBQyxDQUFDLEtBQUksRUFBRTtnQkFDbkMsUUFBUSxFQUFFLENBQUEsTUFBQSxPQUFPLENBQUMsTUFBTSwwQ0FBRyxDQUFDLENBQUMsS0FBSSxFQUFFO2dCQUNuQyxRQUFRLEVBQUUsQ0FBQSxNQUFBLE9BQU8sQ0FBQyxNQUFNLDBDQUFHLENBQUMsQ0FBQyxLQUFJLEVBQUU7Z0JBQ25DLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUU7Z0JBQ3hCLE9BQU8sRUFBRSxFQUFFO2dCQUNYLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUU7YUFDbkMsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO1FBRVAsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLGVBQWUsQ0FBQztRQUNwRCxJQUFJLGNBQWMsRUFBRTtZQUNoQixlQUFlLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3pDLEVBQUUsRUFBRSxjQUFjLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDM0YsV0FBVyxFQUFFLGNBQWMsQ0FBQyxVQUFVLElBQUksRUFBRTtnQkFDNUMsUUFBUSxFQUFFLENBQUEsTUFBQSxjQUFjLENBQUMsTUFBTSwwQ0FBRyxDQUFDLENBQUMsS0FBSSxFQUFFO2dCQUMxQyxRQUFRLEVBQUUsQ0FBQSxNQUFBLGNBQWMsQ0FBQyxNQUFNLDBDQUFHLENBQUMsQ0FBQyxLQUFJLEVBQUU7Z0JBQzFDLFFBQVEsRUFBRSxDQUFBLE1BQUEsY0FBYyxDQUFDLE1BQU0sMENBQUcsQ0FBQyxDQUFDLEtBQUksRUFBRTtnQkFDMUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxJQUFJLElBQUksRUFBRTtnQkFDL0IsT0FBTyxFQUFFLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLGNBQWMsQ0FBQyxRQUFRLElBQUksRUFBRTthQUMxQyxDQUFDLENBQUM7U0FDTjtRQUVELGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pFLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxjQUFjO1FBQ1YsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUNsRixJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUNoRixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsMEJBQTBCLENBQUMsU0FBaUI7UUFDeEMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsNEJBQTRCLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUU5RixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVc7WUFDeEMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRTtZQUM1RSxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRVgsTUFBTSw2QkFBNkIsR0FBRztZQUNsQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLElBQUksRUFBRTtZQUM5QyxZQUFZLEVBQUUsU0FBUyxDQUFDLFFBQVE7WUFDaEMsT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUEsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLFFBQVEsRUFBRSxLQUFJLEVBQUUsRUFBRTtZQUNuRCxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQ2xDLENBQUM7UUFFRixJQUFJLENBQUMsZUFBZSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBRXBGLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLDRCQUE0QixFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDNUYsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELGFBQWE7O1FBQ1QsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFFakYsTUFBTSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFL0MsTUFBTSxhQUFhLEdBQWtCO1lBQ2pDLGFBQWEsRUFBRSxZQUFZLENBQUMsZUFBZSxJQUFJLENBQUM7WUFDaEQsUUFBUSxFQUFFLFlBQVksQ0FBQyxVQUFVLElBQUksQ0FBQztZQUN0QyxTQUFTLEVBQUUsWUFBWSxDQUFDLFFBQVEsSUFBSSxDQUFDO1lBQ3JDLFdBQVcsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMscUJBQXFCLElBQUksQ0FBQyxDQUFDO1lBQ3JGLFVBQVUsRUFBRSxNQUFBLFlBQVksQ0FBQyxpQkFBaUIsbUNBQUksQ0FBQztZQUMvQyxXQUFXLEVBQUUsWUFBWSxDQUFDLHFCQUFxQixJQUFJLENBQUM7WUFDcEQsYUFBYSxFQUFFLFlBQVksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDO1lBQ2xELDRCQUE0QixFQUFFLFlBQVksQ0FBQyxjQUFjLElBQUksQ0FBQztZQUM5RCxRQUFRLEVBQUU7Z0JBQ04sYUFBYSxFQUFFLFlBQVksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDO2dCQUNsRCw0QkFBNEIsRUFBRSxZQUFZLENBQUMsY0FBYyxJQUFJLENBQUM7YUFDakU7U0FDSixDQUFDO1FBRUYsZUFBZSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFFOUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDL0UsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELGFBQWE7O1FBQ1QsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFFakYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEdBQUcsQ0FBQSxNQUFBLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSywwQ0FDdEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsVUFBVSxLQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQ3pFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdEIsVUFBVSxFQUFFLEtBQUssR0FBRyxDQUFDO1lBQ3JCLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxZQUFZLElBQUksQ0FBQztZQUMzQyxtQkFBbUIsRUFBRSxJQUFJO1lBQ3pCLFFBQVEsRUFBRSxPQUFPLENBQUMsV0FBVyxJQUFJLENBQUM7U0FDckMsQ0FBQyxDQUFDLEtBQUksRUFBRSxDQUFDO1FBRWQsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLFVBQVUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsTUFBTSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBRS9FLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxrQkFBa0I7O1FBQ2QsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUV0RixNQUFNLFFBQVEsR0FBRyxDQUFBLE1BQUEsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLDBDQUNsQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsVUFBVSxFQUN0QyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixJQUFJLENBQUMsQ0FBQztZQUN0RCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQztZQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDM0YsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLENBQUM7WUFFcEYsT0FBTztnQkFDSCxVQUFVLEVBQUUsS0FBSyxHQUFHLENBQUM7Z0JBQ3JCLEdBQUc7Z0JBQ0gsT0FBTyxFQUFFLEVBQUU7Z0JBQ1gsYUFBYTtnQkFDYixNQUFNLEVBQUUsTUFBTTtnQkFDZCxZQUFZO2FBQ2YsQ0FBQztRQUNOLENBQUMsQ0FBQyxLQUFJLEVBQUUsQ0FBQztRQUViLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHO1lBQzFDLFFBQVE7WUFDUixrQkFBa0IsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsSUFBSSxDQUFDO1NBQ3hDLENBQUM7UUFFbEIsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsb0JBQW9CLEVBQUUsVUFBVSxRQUFRLENBQUMsTUFBTSxhQUFhLENBQUMsQ0FBQztRQUN4RyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBRXBGLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxRQUFRLENBQUMsUUFBUTtRQUNiLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsVUFBVSxDQUFDLFVBQVU7UUFDakIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBTztRQUNYLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsT0FBTztRQUNILElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1FBQzFELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxXQUFXLENBQUMsV0FBbUI7UUFDM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9DLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxrQkFBMEI7UUFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztRQUM3RCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUs7UUFDUCxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFjO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsY0FBYyxDQUFDLElBQUk7UUFDZixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUs7UUFDRCxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUN0RSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFJO1FBQ2YsSUFBSSxJQUFJLEVBQUU7WUFDTixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3ZDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VycmVuY3lQaXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgQmFza2V0U3VtbWFyeSwgQ3VycmVudFRyYW5zYWN0aW9uRGV0YWlscywgSU5JVElBVElOR19NT0RVTEUsIFBST1ZJREVSUywgVFJBTlNBQ1RJT05fVFlQRSwgVHJhbnNhY3Rpb25Eb2N1bWVudCwgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHMsIFRheEJyZWFrZG93biwgQ3VzdG9tZXIgfSBmcm9tIFwiLi9tYXBwZXItbGlicmFyeS5tb2RlbFwiO1xuaW1wb3J0IHsgTnVtYmVyVXRpbFNlcnZpY2UgfSBmcm9tIFwiLi9udW1iZXItdXRpbC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBBcHBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnQHBtY3JldGFpbC9jb21tb24tc2VydmljZXMvY29tbW9uL2FwcC1sb2dnZXIuc2VydmljZSc7XG5cbmV4cG9ydCBjbGFzcyBXZWJSZXR1cm5NYWdlbnRvMlJlc3RWMU1hcHBlckJ1aWxkZXJDbGFzcyB7XG5cbiAgICBjbGFzc05hbWUgPSBcIldlYlJldHVybk1hZ2VudG8yUmVzdFYxTWFwcGVyQnVpbGRlckNsYXNzXCI7XG4gICAgcHJpdmF0ZSBvcmRlckRldGFpbHM6IGFueTtcbiAgICBwcml2YXRlIHdlYlJldHVybk9iamVjdDogVHJhbnNhY3Rpb25Eb2N1bWVudCA9IHtcbiAgICAgICAgaWQ6ICcnLFxuICAgICAgICBvcmdDb2RlOiBcIlwiLFxuICAgICAgICBzdG9yZUlkOiBcIlwiLFxuICAgICAgICBzdG9yZU5vZGVJZDogXCJcIixcbiAgICAgICAgc3RvcmVOb2RlU3RydWN0dXJlOiBcIlwiLFxuICAgICAgICBkZXZpY2VJZDogXCJcIixcbiAgICAgICAgdGVybWluYWxJZDogXCJcIixcbiAgICAgICAgaW5pdGlhdGluZ01vZHVsZTogXCJcIixcbiAgICAgICAgZXhwb3J0OiBmYWxzZSxcbiAgICAgICAgaXNJblN0b3JlT3JkZXI6IGZhbHNlLFxuICAgICAgICBiYXNrZXQ6IHt9LFxuICAgICAgICBiYXNrZXRTdW1tYXJ5OiB7fSxcbiAgICAgICAgYmFzZUN1cnJlbmN5OiBcIlwiLFxuICAgICAgICBjdXN0b21lcjoge1xuICAgICAgICAgICAgaWQ6ICcnLFxuICAgICAgICAgICAgZW1haWw6ICcnLFxuICAgICAgICAgICAgZmlyc3ROYW1lOiAnJyxcbiAgICAgICAgICAgIGxhc3ROYW1lOiAnJyxcbiAgICAgICAgICAgIGJpbGxpbmdBZGRyZXNzOiBbXSxcbiAgICAgICAgICAgIHNoaXBwaW5nQWRkcmVzczogW10sXG4gICAgICAgICAgICBzaGlwbWVudERldGFpbHM6IFtdLFxuICAgICAgICAgICAgdGVsZXBob25lOiAnJyxcbiAgICAgICAgICAgIHBvc3RDb2RlOiAnJyxcbiAgICAgICAgICAgIG5vQ3VzdG9tZXJTZWxlY3RlZDogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgY3VycmVudFRyYW5zYWN0aW9uRGV0YWlsczoge30gYXMgQ3VycmVudFRyYW5zYWN0aW9uRGV0YWlscyxcbiAgICAgICAgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHM6IFtdIGFzIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzW11cbiAgICB9XG4gICAgbnVtYmVyVXRpbFNlcnZpY2U6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKG9yZGVyRGV0YWlsczogYW55LFxuICAgICAgICBwcml2YXRlIGN1cnJlbmN5UGlwZT86IEN1cnJlbmN5UGlwZVxuICAgICAgICApIHtcbiAgICAgICAgaWYgKG9yZGVyRGV0YWlscykge1xuICAgICAgICAgICAgdGhpcy5vcmRlckRldGFpbHMgPSBvcmRlckRldGFpbHM7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5udW1iZXJVdGlsU2VydmljZSA9IG5ldyBOdW1iZXJVdGlsU2VydmljZShjdXJyZW5jeVBpcGUpO1xuICAgIH1cblxuICAgIHdlYlJldHVybkNvbW1vbk1hcHBlcigpIHtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJ3ZWJSZXR1cm5Db21tb25NYXBwZXJcIiwgXCJNYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0Wyd0eXBlJ10gPSBUUkFOU0FDVElPTl9UWVBFLldFQl9SRVRVUk5TO1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnZGF0ZXRpbWUnXSA9IHRoaXMuZ2V0VVRDRGF0ZVRpbWUodGhpcy5vcmRlckRldGFpbHMudXBkYXRlZF9hdCk7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2VDdXJyZW5jeSA9IHRoaXMub3JkZXJEZXRhaWxzLm9yZGVyX2N1cnJlbmN5X2NvZGU7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnN1YnNpZGlhcnlJZCA9ICcxJztcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuZXhwb3J0ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuaW5pdGlhdGluZ01vZHVsZSA9IElOSVRJQVRJTkdfTU9EVUxFLkVCQVNLRVQ7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmNyZWF0ZWRBdCA9IHRoaXMuZ2V0VVRDRGF0ZVRpbWUodGhpcy5vcmRlckRldGFpbHMuY3JlYXRlZF9hdCk7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnVwZGF0ZWRBdCA9IHRoaXMuZ2V0VVRDRGF0ZVRpbWUodGhpcy5vcmRlckRldGFpbHMudXBkYXRlZF9hdCk7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnRyYW5zQ29tcGxldGVkQXQgPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMub3JkZXJEZXRhaWxzLnVwZGF0ZWRfYXQpO1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnZXh0ZXJuYWxUcmFuc2FjdGlvbklkJ10gPSB0aGlzLm9yZGVyRGV0YWlscy5pbmNyZW1lbnRfaWQ7XG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwid2ViUmV0dXJuQ29tbW9uTWFwcGVyXCIsIFwiTWFwcGluZyBlbmRlZC4uLlwiKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHJvZHVjdCgpIHtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJwcm9kdWN0XCIsIFwiTWFwcGluZyBzdGFydGVkLi4uXCIpO1xuICAgICAgICBcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0Wydwcm9kdWN0cyddID0gdGhpcy5vcmRlckRldGFpbHMuaXRlbXNcbiAgICAgICAgICAgID8uZmlsdGVyKHByb2R1Y3QgPT4gcHJvZHVjdD8uYmFzZV9wcmljZSlcbiAgICAgICAgICAgIC5tYXAoKHByb2R1Y3QsIGluZGV4KSA9PiAoe1xuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBwcm9kdWN0Lm5hbWUgfHwgJycsXG4gICAgICAgICAgICAgICAgU0tVOiBwcm9kdWN0LnNrdSB8fCAnJyxcbiAgICAgICAgICAgICAgICBxdWFudGl0eTogcHJvZHVjdC5xdHlfb3JkZXJlZCB8fCAwLFxuICAgICAgICAgICAgICAgIHJlZnVuZGVkUXVhbnRpdHk6IHByb2R1Y3QucXR5X3JlZnVuZGVkIHx8IDAsXG4gICAgICAgICAgICAgICAgcHJpY2U6IHByb2R1Y3QuYmFzZV9wcmljZSB8fCAwLFxuICAgICAgICAgICAgICAgIGl0ZW1MaW5lSWQ6IChpbmRleCArIDEpLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgZXh0ZXJuYWxJdGVtTGluZUlkOiBwcm9kdWN0Lml0ZW1faWQgfHwgKGluZGV4ICsgMSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICB0b3RhbExpbmVQcmljZTogKHByb2R1Y3QucXR5X29yZGVyZWQgPz8gMCkgKiAocHJvZHVjdC5iYXNlX3ByaWNlID8/IDApLFxuICAgICAgICAgICAgICAgIHJlZnVuZGVkVG90YWw6IHByb2R1Y3QuYW1vdW50X3JlZnVuZGVkIHx8IDBcbiAgICAgICAgICAgIH0pKSB8fCBbXTtcbiAgICBcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJwcm9kdWN0XCIsIFwiTWFwcGluZyBlbmRlZC4uLlwiKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgbGluZVByb21vdGlvbigpIHtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJsaW5lUHJvbW90aW9uXCIsIFwiTWFwcGluZyBzdGFydGVkLi4uXCIpO1xuICAgIFxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRbJ2xpbmVQcm9tb3Rpb24nXSA9IHRoaXMub3JkZXJEZXRhaWxzLml0ZW1zXG4gICAgICAgICAgICA/LmZpbHRlcihwcm9kdWN0ID0+IHByb2R1Y3Q/LmJhc2VfcHJpY2UgJiYgcHJvZHVjdC5kaXNjb3VudF9hbW91bnQpXG4gICAgICAgICAgICAubWFwKChwcm9kdWN0LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICAgICAgICB0cmlnZ2VyOiBbeyBcbiAgICAgICAgICAgICAgICAgICAgaXRlbUxpbmVJZDogKGluZGV4ICsgMSkudG9TdHJpbmcoKSwgXG4gICAgICAgICAgICAgICAgICAgIHF1YW50aXR5OiBwcm9kdWN0LnF0eV9vcmRlcmVkIHx8IDAgXG4gICAgICAgICAgICAgICAgfV0sXG4gICAgICAgICAgICAgICAgaXRlbUxpbmVJZDogaW5kZXggKyAxLFxuICAgICAgICAgICAgICAgIHByb21vdGlvbklkOiAnJyxcbiAgICAgICAgICAgICAgICBkaXNwbGF5VGV4dDogdGhpcy5vcmRlckRldGFpbHMuY291cG9uX2NvZGUgfHwgdGhpcy5vcmRlckRldGFpbHMuZGlzY291bnRfZGVzY3JpcHRpb24gfHwgJ1Byb21vdGlvbicsIC8vIFRPRE86IG5lZWQgdG8gY2hlY2tcbiAgICAgICAgICAgICAgICBwcm9tb3Rpb25UeXBlOiAnJyxcbiAgICAgICAgICAgICAgICBwcm9tb3Rpb25BbW91bnQ6IHByb2R1Y3QuZGlzY291bnRfYW1vdW50IHx8IDAsXG4gICAgICAgICAgICAgICAgbmFtZTogdGhpcy5vcmRlckRldGFpbHMuY291cG9uX2NvZGUgfHwgdGhpcy5vcmRlckRldGFpbHMuZGlzY291bnRfZGVzY3JpcHRpb24gfHwgJ1Byb21vdGlvbicsIC8vIFRPRE86IG5lZWQgdG8gY2hlY2tcbiAgICAgICAgICAgICAgICBwcm9tb3Rpb25JbmZvOiAnJyxcbiAgICAgICAgICAgICAgICBwcm9tb3Rpb25MaW5lUHJpY2U6IHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKCgocHJvZHVjdC5xdHlfb3JkZXJlZCA/PyAwKSAqIChwcm9kdWN0LmJhc2VfcHJpY2UgPz8gMCkpIC0gKHByb2R1Y3QuZGlzY291bnRfYW1vdW50IHx8IDApKVxuICAgICAgICAgICAgfSkpIHx8IFtdO1xuICAgIFxuICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcImxpbmVQcm9tb3Rpb25cIiwgXCJNYXBwaW5nIGVuZGVkLi4uXCIpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9ICAgIFxuICAgICAgXG4gICAgY3VzdG9tZXIoKSB7XG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwiY3VzdG9tZXJcIiwgXCJNYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XG4gICAgXG4gICAgICAgIGNvbnN0IHsgb3JkZXJEZXRhaWxzLCB3ZWJSZXR1cm5PYmplY3QgfSA9IHRoaXM7XG4gICAgXG4gICAgICAgIHdlYlJldHVybk9iamVjdC5jdXN0b21lciA9IHtcbiAgICAgICAgICAgIGlkOiBvcmRlckRldGFpbHMuY3VzdG9tZXJfaWQgPyBvcmRlckRldGFpbHMuY3VzdG9tZXJfaWQudG9TdHJpbmcoKSA6ICcnLFxuICAgICAgICAgICAgY3VzdG9tZXJJZDogb3JkZXJEZXRhaWxzLmN1c3RvbWVyX2lkID8gb3JkZXJEZXRhaWxzLmN1c3RvbWVyX2lkLnRvU3RyaW5nKCkgOiAnJyxcbiAgICAgICAgICAgIGVtYWlsOiBvcmRlckRldGFpbHMuY3VzdG9tZXJfZW1haWwgfHwgJycsXG4gICAgICAgICAgICBmaXJzdE5hbWU6IG9yZGVyRGV0YWlscy5jdXN0b21lcl9maXJzdG5hbWUgfHwgJycsXG4gICAgICAgICAgICBsYXN0TmFtZTogb3JkZXJEZXRhaWxzLmN1c3RvbWVyX2xhc3RuYW1lIHx8ICcnLFxuICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzOiBbXSxcbiAgICAgICAgICAgIGJpbGxpbmdBZGRyZXNzOiBbXVxuICAgICAgICB9IGFzIEN1c3RvbWVyO1xuICAgIFxuICAgICAgICBjb25zdCBzaGlwcGluZ0Fzc2lnbm1lbnRzID0gb3JkZXJEZXRhaWxzLmV4dGVuc2lvbl9hdHRyaWJ1dGVzPy5zaGlwcGluZ19hc3NpZ25tZW50cyB8fCBbXTtcbiAgICBcbiAgICAgICAgd2ViUmV0dXJuT2JqZWN0LmN1c3RvbWVyLnNoaXBwaW5nQWRkcmVzcyA9IHNoaXBwaW5nQXNzaWdubWVudHNcbiAgICAgICAgICAgIC5maWx0ZXIoc2hpcG1lbnQgPT4gc2hpcG1lbnQ/LnNoaXBwaW5nPy5hZGRyZXNzKVxuICAgICAgICAgICAgLm1hcChzaGlwbWVudCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWRkcmVzcyA9IHNoaXBtZW50LnNoaXBwaW5nLmFkZHJlc3M7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGFkZHJlc3MuY3VzdG9tZXJfYWRkcmVzc19pZCA/IGFkZHJlc3MuY3VzdG9tZXJfYWRkcmVzc19pZC50b1N0cmluZygpIDogJycsXG4gICAgICAgICAgICAgICAgICAgIGNvdW50cnlDb2RlOiBhZGRyZXNzLmNvdW50cnlfaWQgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgIGFkZHJlc3MxOiBhZGRyZXNzLnN0cmVldD8uWzBdIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICBhZGRyZXNzMjogYWRkcmVzcy5zdHJlZXQ/LlsxXSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgYWRkcmVzczM6IGFkZHJlc3Muc3RyZWV0Py5bMl0gfHwgJycsXG4gICAgICAgICAgICAgICAgICAgIGNpdHk6IGFkZHJlc3MuY2l0eSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgY291bnRyeTogJycsXG4gICAgICAgICAgICAgICAgICAgIHBvc3RDb2RlOiBhZGRyZXNzLnBvc3Rjb2RlIHx8ICcnXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgIFxuICAgICAgICBjb25zdCBiaWxsaW5nQWRkcmVzcyA9IG9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3M7XG4gICAgICAgIGlmIChiaWxsaW5nQWRkcmVzcykge1xuICAgICAgICAgICAgd2ViUmV0dXJuT2JqZWN0LmN1c3RvbWVyLmJpbGxpbmdBZGRyZXNzLnB1c2goe1xuICAgICAgICAgICAgICAgIGlkOiBiaWxsaW5nQWRkcmVzcy5jdXN0b21lcl9hZGRyZXNzX2lkID8gYmlsbGluZ0FkZHJlc3MuY3VzdG9tZXJfYWRkcmVzc19pZC50b1N0cmluZygpIDogJycsXG4gICAgICAgICAgICAgICAgY291bnRyeUNvZGU6IGJpbGxpbmdBZGRyZXNzLmNvdW50cnlfaWQgfHwgJycsXG4gICAgICAgICAgICAgICAgYWRkcmVzczE6IGJpbGxpbmdBZGRyZXNzLnN0cmVldD8uWzBdIHx8ICcnLFxuICAgICAgICAgICAgICAgIGFkZHJlc3MyOiBiaWxsaW5nQWRkcmVzcy5zdHJlZXQ/LlsxXSB8fCAnJyxcbiAgICAgICAgICAgICAgICBhZGRyZXNzMzogYmlsbGluZ0FkZHJlc3Muc3RyZWV0Py5bMl0gfHwgJycsXG4gICAgICAgICAgICAgICAgY2l0eTogYmlsbGluZ0FkZHJlc3MuY2l0eSB8fCAnJyxcbiAgICAgICAgICAgICAgICBjb3VudHJ5OiAnJyxcbiAgICAgICAgICAgICAgICBwb3N0Q29kZTogYmlsbGluZ0FkZHJlc3MucG9zdGNvZGUgfHwgJydcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgXG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwiY3VzdG9tZXJcIiwgXCJNcHBpbmcgZW5kZWQuLi5cIik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH0gICAgXG5cbiAgICBpc0luU3RvcmVPcmRlcigpIHtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJpc0luU3RvcmVPcmRlclwiLCBcIk1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuaXNJblN0b3JlT3JkZXIgPSBmYWxzZTtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJpc0luU3RvcmVPcmRlclwiLCBcIk1hcHBpbmcgZW5kZWQuLi5cIik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzKGludm9pY2VJZDogc3RyaW5nKSB7XG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwiZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHNcIiwgXCJNYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XG4gICAgXG4gICAgICAgIGNvbnN0IGNvdXBvbiA9IHRoaXMub3JkZXJEZXRhaWxzLmNvdXBvbl9jb2RlXG4gICAgICAgICAgICA/IHsgbmFtZTogdGhpcy5vcmRlckRldGFpbHMuY291cG9uX2NvZGUsIGlkOiB0aGlzLm9yZGVyRGV0YWlscy5jb3Vwb25fY29kZSB9XG4gICAgICAgICAgICA6IG51bGw7XG4gICAgXG4gICAgICAgIGNvbnN0IGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzT2JqID0ge1xuICAgICAgICAgICAgdW5pcXVlSWQ6IHRoaXMub3JkZXJEZXRhaWxzLmluY3JlbWVudF9pZCB8fCAnJyxcbiAgICAgICAgICAgIHByb3ZpZGVyVHlwZTogUFJPVklERVJTLk1BR0VOVE8yLFxuICAgICAgICAgICAgZGV0YWlsczogeyBpbnZvaWNlSWQ6IGludm9pY2VJZD8udG9TdHJpbmcoKSB8fCAnJyB9LFxuICAgICAgICAgICAgY291cG9uczogY291cG9uID8gW2NvdXBvbl0gOiBbXVxuICAgICAgICB9O1xuICAgIFxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5leHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscy5wdXNoKGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzT2JqKTtcbiAgICBcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlsc1wiLCBcIk1hcHBpbmcgZW5kZWQuLi5cIik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGJhc2tldFN1bW1hcnkoKSB7XG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwiYmFza2V0U3VtbWFyeVwiLCBcIk1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcbiAgICBcbiAgICAgICAgY29uc3QgeyBvcmRlckRldGFpbHMsIHdlYlJldHVybk9iamVjdCB9ID0gdGhpcztcblxuICAgICAgICBjb25zdCBiYXNrZXRTdW1tYXJ5OiBCYXNrZXRTdW1tYXJ5ID0ge1xuICAgICAgICAgICAgZGlzY291bnRUb3RhbDogb3JkZXJEZXRhaWxzLmRpc2NvdW50X2Ftb3VudCB8fCAwLFxuICAgICAgICAgICAgVkFUVG90YWw6IG9yZGVyRGV0YWlscy50YXhfYW1vdW50IHx8IDAsXG4gICAgICAgICAgICBzYWxlVG90YWw6IG9yZGVyRGV0YWlscy5zdWJ0b3RhbCB8fCAwLFxuICAgICAgICAgICAgYmFza2V0VG90YWw6IChvcmRlckRldGFpbHMuc3VidG90YWwgfHwgMCkgLSAob3JkZXJEZXRhaWxzLnRvdGFsX29ubGluZV9yZWZ1bmRlZCB8fCAwKSxcbiAgICAgICAgICAgIHRvdGFsSXRlbXM6IG9yZGVyRGV0YWlscy50b3RhbF9xdHlfb3JkZXJlZCA/PyAwLFxuICAgICAgICAgICAgcmVmdW5kVG90YWw6IG9yZGVyRGV0YWlscy50b3RhbF9vbmxpbmVfcmVmdW5kZWQgfHwgMCxcbiAgICAgICAgICAgIHNoaXBwaW5nVG90YWw6IG9yZGVyRGV0YWlscy5zaGlwcGluZ19pbmNsX3RheCB8fCAwLFxuICAgICAgICAgICAgYmFza2V0VG90YWxXaXRoU2hpcHBpbmdUb3RhbDogb3JkZXJEZXRhaWxzLnRvdGFsX2ludm9pY2VkIHx8IDAsXG4gICAgICAgICAgICB3ZWJPcmRlcjoge1xuICAgICAgICAgICAgICAgIHNoaXBwaW5nVG90YWw6IG9yZGVyRGV0YWlscy5zaGlwcGluZ19pbmNsX3RheCB8fCAwLFxuICAgICAgICAgICAgICAgIGJhc2tldFRvdGFsV2l0aFNoaXBwaW5nVG90YWw6IG9yZGVyRGV0YWlscy50b3RhbF9pbnZvaWNlZCB8fCAwXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgXG4gICAgICAgIHdlYlJldHVybk9iamVjdC5iYXNrZXRTdW1tYXJ5ID0gYmFza2V0U3VtbWFyeTtcbiAgICBcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJiYXNrZXRTdW1tYXJ5XCIsIFwiTWFwcGluZyBlbmRlZC4uLlwiKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSAgICBcblxuICAgIHJlZnVuZFJlcXVlc3QoKSB7XG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwicmVmdW5kUmVxdWVzdFwiLCBcIk1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcbiAgICBcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QucmVmdW5kUmVxdWVzdCA9IHRoaXMub3JkZXJEZXRhaWxzLml0ZW1zXG4gICAgICAgICAgICA/LmZpbHRlcihwcm9kdWN0ID0+IHByb2R1Y3Q/LmJhc2VfcHJpY2UgJiYgKHByb2R1Y3QucXR5X3JlZnVuZGVkIHx8IDApID4gMClcbiAgICAgICAgICAgIC5tYXAoKHByb2R1Y3QsIGluZGV4KSA9PiAoe1xuICAgICAgICAgICAgICAgIGl0ZW1MaW5lSWQ6IGluZGV4ICsgMSxcbiAgICAgICAgICAgICAgICByZWZ1bmRlZFF1YW50aXR5OiBwcm9kdWN0LnF0eV9yZWZ1bmRlZCB8fCAwLFxuICAgICAgICAgICAgICAgIHJlZnVuZFdpdGhQcm9tb3Rpb246IHRydWUsXG4gICAgICAgICAgICAgICAgcXVhbnRpdHk6IHByb2R1Y3QucXR5X29yZGVyZWQgfHwgMFxuICAgICAgICAgICAgfSkpIHx8IFtdO1xuICAgIFxuICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcInJlZnVuZFJlcXVlc3RcIiwgYE1hcHBlZCAke3RoaXMud2ViUmV0dXJuT2JqZWN0LnJlZnVuZFJlcXVlc3QubGVuZ3RofSByZWZ1bmQgaXRlbXMuYCk7XG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwicmVmdW5kUmVxdWVzdFwiLCBcIk1hcHBpbmcgZW5kZWQuLi5cIik7XG4gICAgXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHVwZGF0ZVRheEJyZWFrZG93bigpIHtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJ1cGRhdGVUYXhCcmVha2Rvd25cIiwgXCJNYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XG4gICAgXG4gICAgICAgIGNvbnN0IHRheExpbmVzID0gdGhpcy5vcmRlckRldGFpbHMuaXRlbXNcbiAgICAgICAgICAgID8uZmlsdGVyKHByb2R1Y3QgPT4gcHJvZHVjdD8uYmFzZV9wcmljZSlcbiAgICAgICAgICAgIC5tYXAoKHByb2R1Y3QsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGF4YWJsZUFtb3VudCA9IHByb2R1Y3Qucm93X3RvdGFsX2luY2xfdGF4IHx8IDA7XG4gICAgICAgICAgICAgICAgY29uc3QgVkFUID0gcHJvZHVjdC50YXhfcGVyY2VudCB8fCAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IHByZVRheCA9IHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKCh0YXhhYmxlQW1vdW50ICogMTAwKSAvICgxMDAgKyBWQVQpKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0YXhMaW5lVG90YWwgPSB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMih0YXhhYmxlQW1vdW50IC0gcHJlVGF4KTtcbiAgICBcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBpdGVtTGluZUlkOiBpbmRleCArIDEsXG4gICAgICAgICAgICAgICAgICAgIFZBVCxcbiAgICAgICAgICAgICAgICAgICAgVkFUQ29kZTogJycsXG4gICAgICAgICAgICAgICAgICAgIHRheGFibGVBbW91bnQsXG4gICAgICAgICAgICAgICAgICAgIFByZVRheDogcHJlVGF4LFxuICAgICAgICAgICAgICAgICAgICB0YXhMaW5lVG90YWxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSkgfHwgW107XG4gICAgXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFtcInRheEJyZWFrZG93blwiXSA9IHtcbiAgICAgICAgICAgIHRheExpbmVzLFxuICAgICAgICAgICAgdG90YWxUYXhhYmxlQW1vdW50OiB0aGlzLm9yZGVyRGV0YWlscy50YXhfYW1vdW50IHx8IDBcbiAgICAgICAgfSBhcyBUYXhCcmVha2Rvd247XG4gICAgXG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwidXBkYXRlVGF4QnJlYWtkb3duXCIsIGBNYXBwZWQgJHt0YXhMaW5lcy5sZW5ndGh9IHRheCBsaW5lcy5gKTtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJ1cGRhdGVUYXhCcmVha2Rvd25cIiwgXCJNYXBwaW5nIGVuZGVkLi4uXCIpO1xuICAgIFxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBkZXZpY2VJZChkZXZpY2VJZCkge1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5kZXZpY2VJZCA9IGRldmljZUlkO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB0ZXJtaW5hbElkKHRlcm1pbmFsSWQpIHtcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QudGVybWluYWxJZCA9IHRlcm1pbmFsSWQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIG9yZ0NvZGUob3JnQ29kZSkge1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5vcmdDb2RlID0gb3JnQ29kZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgc3RvcmVJZCgpIHtcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3RvcmVJZCA9IHRoaXMub3JkZXJEZXRhaWxzLnN0b3JlX2lkO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBzdG9yZU5vZGVJZChzdG9yZU5vZGVJZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnN0b3JlTm9kZUlkID0gc3RvcmVOb2RlSWQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHN0b3JlTm9kZVN0cnVjdHVyZShzdG9yZU5vZGVTdHJ1Y3R1cmU6IHN0cmluZykge1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5zdG9yZU5vZGVTdHJ1Y3R1cmUgPSBzdG9yZU5vZGVTdHJ1Y3R1cmU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGRvY0lkKGRvY0lkKSB7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmlkID0gZG9jSWQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHVwZGF0ZVVzZXJJRCh1c2VySUQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC51c2VySWQgPSB1c2VySUQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHVwZGF0ZVVzZXJOYW1lKG5hbWUpIHtcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QudXNlck5hbWUgPSBuYW1lO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBidWlsZCgpIHtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJidWlsZFwiLCBcIk1hcHBpbmcgZG9uZS4uLlwiKTtcbiAgICAgICAgcmV0dXJuIHRoaXMud2ViUmV0dXJuT2JqZWN0O1xuICAgIH1cblxuICAgIGdldFVUQ0RhdGVUaW1lKGRhdGUpIHtcbiAgICAgICAgaWYgKGRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShkYXRlKS50b0lTT1N0cmluZygpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
275
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViUmV0dXJuTWFnZW50bzJSZXN0VjEuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBwZXItbGlicmFyeS9zcmMvbGliL1dlYlJldHVybk1hZ2VudG8yUmVzdFYxLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBNEMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUEyRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNNLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBRXhGLE1BQU0sT0FBTyx5Q0FBeUM7SUFtQ2xELFlBQVksWUFBaUIsRUFDakIsWUFBMkI7UUFBM0IsaUJBQVksR0FBWixZQUFZLENBQWU7UUFsQ3ZDLGNBQVMsR0FBRywyQ0FBMkMsQ0FBQztRQUVoRCxvQkFBZSxHQUF3QjtZQUMzQyxFQUFFLEVBQUUsRUFBRTtZQUNOLE9BQU8sRUFBRSxFQUFFO1lBQ1gsT0FBTyxFQUFFLEVBQUU7WUFDWCxXQUFXLEVBQUUsRUFBRTtZQUNmLGtCQUFrQixFQUFFLEVBQUU7WUFDdEIsUUFBUSxFQUFFLEVBQUU7WUFDWixVQUFVLEVBQUUsRUFBRTtZQUNkLGdCQUFnQixFQUFFLEVBQUU7WUFDcEIsTUFBTSxFQUFFLEtBQUs7WUFDYixjQUFjLEVBQUUsS0FBSztZQUNyQixNQUFNLEVBQUUsRUFBRTtZQUNWLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLFlBQVksRUFBRSxFQUFFO1lBQ2hCLFFBQVEsRUFBRTtnQkFDTixFQUFFLEVBQUUsRUFBRTtnQkFDTixLQUFLLEVBQUUsRUFBRTtnQkFDVCxTQUFTLEVBQUUsRUFBRTtnQkFDYixRQUFRLEVBQUUsRUFBRTtnQkFDWixjQUFjLEVBQUUsRUFBRTtnQkFDbEIsZUFBZSxFQUFFLEVBQUU7Z0JBQ25CLGVBQWUsRUFBRSxF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QUFFO1lBQ04sT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN2QztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1cnJlbmN5UGlwZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IEJhc2tldFN1bW1hcnksIEN1cnJlbnRUcmFuc2FjdGlvbkRldGFpbHMsIElOSVRJQVRJTkdfTU9EVUxFLCBQUk9WSURFUlMsIFRSQU5TQUNUSU9OX1RZUEUsIFRyYW5zYWN0aW9uRG9jdW1lbnQsIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzLCBUYXhCcmVha2Rvd24sIEN1c3RvbWVyIH0gZnJvbSBcIi4vbWFwcGVyLWxpYnJhcnkubW9kZWxcIjtcbmltcG9ydCB7IE51bWJlclV0aWxTZXJ2aWNlIH0gZnJvbSBcIi4vbnVtYmVyLXV0aWwuc2VydmljZVwiO1xuaW1wb3J0IHsgQXBwTG9nZ2VyU2VydmljZSB9IGZyb20gJ0BwbWNyZXRhaWwvY29tbW9uLXNlcnZpY2VzL2NvbW1vbi9hcHAtbG9nZ2VyLnNlcnZpY2UnO1xuXG5leHBvcnQgY2xhc3MgV2ViUmV0dXJuTWFnZW50bzJSZXN0VjFNYXBwZXJCdWlsZGVyQ2xhc3Mge1xuXG4gICAgY2xhc3NOYW1lID0gXCJXZWJSZXR1cm5NYWdlbnRvMlJlc3RWMU1hcHBlckJ1aWxkZXJDbGFzc1wiO1xuICAgIHByaXZhdGUgb3JkZXJEZXRhaWxzOiBhbnk7XG4gICAgcHJpdmF0ZSB3ZWJSZXR1cm5PYmplY3Q6IFRyYW5zYWN0aW9uRG9jdW1lbnQgPSB7XG4gICAgICAgIGlkOiAnJyxcbiAgICAgICAgb3JnQ29kZTogXCJcIixcbiAgICAgICAgc3RvcmVJZDogXCJcIixcbiAgICAgICAgc3RvcmVOb2RlSWQ6IFwiXCIsXG4gICAgICAgIHN0b3JlTm9kZVN0cnVjdHVyZTogXCJcIixcbiAgICAgICAgZGV2aWNlSWQ6IFwiXCIsXG4gICAgICAgIHRlcm1pbmFsSWQ6IFwiXCIsXG4gICAgICAgIGluaXRpYXRpbmdNb2R1bGU6IFwiXCIsXG4gICAgICAgIGV4cG9ydDogZmFsc2UsXG4gICAgICAgIGlzSW5TdG9yZU9yZGVyOiBmYWxzZSxcbiAgICAgICAgYmFza2V0OiB7fSxcbiAgICAgICAgYmFza2V0U3VtbWFyeToge30sXG4gICAgICAgIGJhc2VDdXJyZW5jeTogXCJcIixcbiAgICAgICAgY3VzdG9tZXI6IHtcbiAgICAgICAgICAgIGlkOiAnJyxcbiAgICAgICAgICAgIGVtYWlsOiAnJyxcbiAgICAgICAgICAgIGZpcnN0TmFtZTogJycsXG4gICAgICAgICAgICBsYXN0TmFtZTogJycsXG4gICAgICAgICAgICBiaWxsaW5nQWRkcmVzczogW10sXG4gICAgICAgICAgICBzaGlwcGluZ0FkZHJlc3M6IFtdLFxuICAgICAgICAgICAgc2hpcG1lbnREZXRhaWxzOiBbXSxcbiAgICAgICAgICAgIHRlbGVwaG9uZTogJycsXG4gICAgICAgICAgICBwb3N0Q29kZTogJycsXG4gICAgICAgICAgICBub0N1c3RvbWVyU2VsZWN0ZWQ6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIGN1cnJlbnRUcmFuc2FjdGlvbkRldGFpbHM6IHt9IGFzIEN1cnJlbnRUcmFuc2FjdGlvbkRldGFpbHMsXG4gICAgICAgIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzOiBbXSBhcyBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlsc1tdXG4gICAgfVxuICAgIG51bWJlclV0aWxTZXJ2aWNlOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3RvcihvcmRlckRldGFpbHM6IGFueSxcbiAgICAgICAgcHJpdmF0ZSBjdXJyZW5jeVBpcGU/OiBDdXJyZW5jeVBpcGVcbiAgICAgICAgKSB7XG4gICAgICAgIGlmIChvcmRlckRldGFpbHMpIHtcbiAgICAgICAgICAgIHRoaXMub3JkZXJEZXRhaWxzID0gb3JkZXJEZXRhaWxzO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubnVtYmVyVXRpbFNlcnZpY2UgPSBuZXcgTnVtYmVyVXRpbFNlcnZpY2UoY3VycmVuY3lQaXBlKTtcbiAgICB9XG5cbiAgICB3ZWJSZXR1cm5Db21tb25NYXBwZXIoKSB7XG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwid2ViUmV0dXJuQ29tbW9uTWFwcGVyXCIsIFwiTWFwcGluZyBzdGFydGVkLi4uXCIpO1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsndHlwZSddID0gVFJBTlNBQ1RJT05fVFlQRS5XRUJfUkVUVVJOUztcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2RhdGV0aW1lJ10gPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMub3JkZXJEZXRhaWxzLnVwZGF0ZWRfYXQpO1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNlQ3VycmVuY3kgPSB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl9jdXJyZW5jeV9jb2RlO1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5zdWJzaWRpYXJ5SWQgPSAnMSc7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmV4cG9ydCA9IHRydWU7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmluaXRpYXRpbmdNb2R1bGUgPSBJTklUSUFUSU5HX01PRFVMRS5FQkFTS0VUO1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5jcmVhdGVkQXQgPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMub3JkZXJEZXRhaWxzLmNyZWF0ZWRfYXQpO1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC51cGRhdGVkQXQgPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMub3JkZXJEZXRhaWxzLnVwZGF0ZWRfYXQpO1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC50cmFuc0NvbXBsZXRlZEF0ID0gdGhpcy5nZXRVVENEYXRlVGltZSh0aGlzLm9yZGVyRGV0YWlscy51cGRhdGVkX2F0KTtcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2V4dGVybmFsVHJhbnNhY3Rpb25JZCddID0gdGhpcy5vcmRlckRldGFpbHMuaW5jcmVtZW50X2lkO1xuICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcIndlYlJldHVybkNvbW1vbk1hcHBlclwiLCBcIk1hcHBpbmcgZW5kZWQuLi5cIik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHByb2R1Y3QoKSB7XG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwicHJvZHVjdFwiLCBcIk1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcbiAgICAgICAgXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFsncHJvZHVjdHMnXSA9IHRoaXMub3JkZXJEZXRhaWxzLml0ZW1zXG4gICAgICAgICAgICA/LmZpbHRlcihwcm9kdWN0ID0+IHByb2R1Y3Q/LmJhc2VfcHJpY2UpXG4gICAgICAgICAgICAubWFwKChwcm9kdWN0LCBpbmRleCkgPT4gKHtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogcHJvZHVjdC5uYW1lIHx8ICcnLFxuICAgICAgICAgICAgICAgIFNLVTogcHJvZHVjdC5za3UgfHwgJycsXG4gICAgICAgICAgICAgICAgcXVhbnRpdHk6IHByb2R1Y3QucXR5X29yZGVyZWQgfHwgMCxcbiAgICAgICAgICAgICAgICByZWZ1bmRlZFF1YW50aXR5OiBwcm9kdWN0LnF0eV9yZWZ1bmRlZCB8fCAwLFxuICAgICAgICAgICAgICAgIHByaWNlOiBwcm9kdWN0LmJhc2VfcHJpY2UgfHwgMCxcbiAgICAgICAgICAgICAgICBpdGVtTGluZUlkOiAoaW5kZXggKyAxKS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgIGV4dGVybmFsSXRlbUxpbmVJZDogcHJvZHVjdC5pdGVtX2lkIHx8IChpbmRleCArIDEpLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgdG90YWxMaW5lUHJpY2U6IChwcm9kdWN0LnF0eV9vcmRlcmVkID8/IDApICogKHByb2R1Y3QuYmFzZV9wcmljZSA/PyAwKSxcbiAgICAgICAgICAgICAgICByZWZ1bmRlZFRvdGFsOiBwcm9kdWN0LmFtb3VudF9yZWZ1bmRlZCB8fCAwXG4gICAgICAgICAgICB9KSkgfHwgW107XG4gICAgXG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwicHJvZHVjdFwiLCBcIk1hcHBpbmcgZW5kZWQuLi5cIik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGxpbmVQcm9tb3Rpb24oKSB7XG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwibGluZVByb21vdGlvblwiLCBcIk1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcbiAgICBcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0WydsaW5lUHJvbW90aW9uJ10gPSB0aGlzLm9yZGVyRGV0YWlscy5pdGVtc1xuICAgICAgICAgICAgPy5maWx0ZXIocHJvZHVjdCA9PiBwcm9kdWN0Py5iYXNlX3ByaWNlICYmIHByb2R1Y3QuZGlzY291bnRfYW1vdW50KVxuICAgICAgICAgICAgLm1hcCgocHJvZHVjdCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAgICAgICAgdHJpZ2dlcjogW3sgXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1MaW5lSWQ6IChpbmRleCArIDEpLnRvU3RyaW5nKCksIFxuICAgICAgICAgICAgICAgICAgICBxdWFudGl0eTogcHJvZHVjdC5xdHlfb3JkZXJlZCB8fCAwIFxuICAgICAgICAgICAgICAgIH1dLFxuICAgICAgICAgICAgICAgIGl0ZW1MaW5lSWQ6IGluZGV4ICsgMSxcbiAgICAgICAgICAgICAgICBwcm9tb3Rpb25JZDogJycsXG4gICAgICAgICAgICAgICAgZGlzcGxheVRleHQ6IHRoaXMub3JkZXJEZXRhaWxzLmNvdXBvbl9jb2RlIHx8IHRoaXMub3JkZXJEZXRhaWxzLmRpc2NvdW50X2Rlc2NyaXB0aW9uIHx8ICdQcm9tb3Rpb24nLCAvLyBUT0RPOiBuZWVkIHRvIGNoZWNrXG4gICAgICAgICAgICAgICAgcHJvbW90aW9uVHlwZTogJycsXG4gICAgICAgICAgICAgICAgcHJvbW90aW9uQW1vdW50OiBwcm9kdWN0LmRpc2NvdW50X2Ftb3VudCB8fCAwLFxuICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMub3JkZXJEZXRhaWxzLmNvdXBvbl9jb2RlIHx8IHRoaXMub3JkZXJEZXRhaWxzLmRpc2NvdW50X2Rlc2NyaXB0aW9uIHx8ICdQcm9tb3Rpb24nLCAvLyBUT0RPOiBuZWVkIHRvIGNoZWNrXG4gICAgICAgICAgICAgICAgcHJvbW90aW9uSW5mbzogJycsXG4gICAgICAgICAgICAgICAgcHJvbW90aW9uTGluZVByaWNlOiB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMigoKHByb2R1Y3QucXR5X29yZGVyZWQgPz8gMCkgKiAocHJvZHVjdC5iYXNlX3ByaWNlID8/IDApKSAtIChwcm9kdWN0LmRpc2NvdW50X2Ftb3VudCB8fCAwKSlcbiAgICAgICAgICAgIH0pKSB8fCBbXTtcbiAgICBcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJsaW5lUHJvbW90aW9uXCIsIFwiTWFwcGluZyBlbmRlZC4uLlwiKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfSAgICBcbiAgICAgIFxuICAgIGN1c3RvbWVyKCkge1xuICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcImN1c3RvbWVyXCIsIFwiTWFwcGluZyBzdGFydGVkLi4uXCIpO1xuICAgIFxuICAgICAgICBjb25zdCB7IG9yZGVyRGV0YWlscywgd2ViUmV0dXJuT2JqZWN0IH0gPSB0aGlzO1xuICAgIFxuICAgICAgICB3ZWJSZXR1cm5PYmplY3QuY3VzdG9tZXIgPSB7XG4gICAgICAgICAgICBpZDogb3JkZXJEZXRhaWxzLmN1c3RvbWVyX2lkID8gb3JkZXJEZXRhaWxzLmN1c3RvbWVyX2lkLnRvU3RyaW5nKCkgOiAnJyxcbiAgICAgICAgICAgIGN1c3RvbWVySWQ6IG9yZGVyRGV0YWlscy5jdXN0b21lcl9pZCA/IG9yZGVyRGV0YWlscy5jdXN0b21lcl9pZC50b1N0cmluZygpIDogJycsXG4gICAgICAgICAgICBlbWFpbDogb3JkZXJEZXRhaWxzLmN1c3RvbWVyX2VtYWlsIHx8ICcnLFxuICAgICAgICAgICAgZmlyc3ROYW1lOiBvcmRlckRldGFpbHMuY3VzdG9tZXJfZmlyc3RuYW1lIHx8ICcnLFxuICAgICAgICAgICAgbGFzdE5hbWU6IG9yZGVyRGV0YWlscy5jdXN0b21lcl9sYXN0bmFtZSB8fCAnJyxcbiAgICAgICAgICAgIHNoaXBwaW5nQWRkcmVzczogW10sXG4gICAgICAgICAgICBiaWxsaW5nQWRkcmVzczogW11cbiAgICAgICAgfSBhcyBDdXN0b21lcjtcbiAgICBcbiAgICAgICAgY29uc3Qgc2hpcHBpbmdBc3NpZ25tZW50cyA9IG9yZGVyRGV0YWlscy5leHRlbnNpb25fYXR0cmlidXRlcz8uc2hpcHBpbmdfYXNzaWdubWVudHMgfHwgW107XG4gICAgXG4gICAgICAgIHdlYlJldHVybk9iamVjdC5jdXN0b21lci5zaGlwcGluZ0FkZHJlc3MgPSBzaGlwcGluZ0Fzc2lnbm1lbnRzXG4gICAgICAgICAgICAuZmlsdGVyKHNoaXBtZW50ID0+IHNoaXBtZW50Py5zaGlwcGluZz8uYWRkcmVzcylcbiAgICAgICAgICAgIC5tYXAoc2hpcG1lbnQgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFkZHJlc3MgPSBzaGlwbWVudC5zaGlwcGluZy5hZGRyZXNzO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBhZGRyZXNzLmN1c3RvbWVyX2FkZHJlc3NfaWQgPyBhZGRyZXNzLmN1c3RvbWVyX2FkZHJlc3NfaWQudG9TdHJpbmcoKSA6ICcnLFxuICAgICAgICAgICAgICAgICAgICBjb3VudHJ5Q29kZTogYWRkcmVzcy5jb3VudHJ5X2lkIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICBhZGRyZXNzMTogYWRkcmVzcy5zdHJlZXQ/LlswXSB8fCAnJyxcbiAgICAgICAgICAgICAgICAgICAgYWRkcmVzczI6IGFkZHJlc3Muc3RyZWV0Py5bMV0gfHwgJycsXG4gICAgICAgICAgICAgICAgICAgIGFkZHJlc3MzOiBhZGRyZXNzLnN0cmVldD8uWzJdIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICBjaXR5OiBhZGRyZXNzLmNpdHkgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgIGNvdW50cnk6ICcnLFxuICAgICAgICAgICAgICAgICAgICBwb3N0Q29kZTogYWRkcmVzcy5wb3N0Y29kZSB8fCAnJ1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcbiAgICBcbiAgICAgICAgY29uc3QgYmlsbGluZ0FkZHJlc3MgPSBvcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzO1xuICAgICAgICBpZiAoYmlsbGluZ0FkZHJlc3MpIHtcbiAgICAgICAgICAgIHdlYlJldHVybk9iamVjdC5jdXN0b21lci5iaWxsaW5nQWRkcmVzcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBpZDogYmlsbGluZ0FkZHJlc3MuY3VzdG9tZXJfYWRkcmVzc19pZCA/IGJpbGxpbmdBZGRyZXNzLmN1c3RvbWVyX2FkZHJlc3NfaWQudG9TdHJpbmcoKSA6ICcnLFxuICAgICAgICAgICAgICAgIGNvdW50cnlDb2RlOiBiaWxsaW5nQWRkcmVzcy5jb3VudHJ5X2lkIHx8ICcnLFxuICAgICAgICAgICAgICAgIGFkZHJlc3MxOiBiaWxsaW5nQWRkcmVzcy5zdHJlZXQ/LlswXSB8fCAnJyxcbiAgICAgICAgICAgICAgICBhZGRyZXNzMjogYmlsbGluZ0FkZHJlc3Muc3RyZWV0Py5bMV0gfHwgJycsXG4gICAgICAgICAgICAgICAgYWRkcmVzczM6IGJpbGxpbmdBZGRyZXNzLnN0cmVldD8uWzJdIHx8ICcnLFxuICAgICAgICAgICAgICAgIGNpdHk6IGJpbGxpbmdBZGRyZXNzLmNpdHkgfHwgJycsXG4gICAgICAgICAgICAgICAgY291bnRyeTogJycsXG4gICAgICAgICAgICAgICAgcG9zdENvZGU6IGJpbGxpbmdBZGRyZXNzLnBvc3Rjb2RlIHx8ICcnXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIFxuICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcImN1c3RvbWVyXCIsIFwiTXBwaW5nIGVuZGVkLi4uXCIpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9ICAgIFxuXG4gICAgaXNJblN0b3JlT3JkZXIoKSB7XG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwiaXNJblN0b3JlT3JkZXJcIiwgXCJNYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmlzSW5TdG9yZU9yZGVyID0gZmFsc2U7XG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwiaXNJblN0b3JlT3JkZXJcIiwgXCJNYXBwaW5nIGVuZGVkLi4uXCIpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscyhpbnZvaWNlSWQ6IHN0cmluZykge1xuICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcImV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzXCIsIFwiTWFwcGluZyBzdGFydGVkLi4uXCIpO1xuICAgIFxuICAgICAgICBjb25zdCBjb3Vwb24gPSB0aGlzLm9yZGVyRGV0YWlscy5jb3Vwb25fY29kZVxuICAgICAgICAgICAgPyB7IG5hbWU6IHRoaXMub3JkZXJEZXRhaWxzLmNvdXBvbl9jb2RlLCBpZDogdGhpcy5vcmRlckRldGFpbHMuY291cG9uX2NvZGUgfVxuICAgICAgICAgICAgOiBudWxsO1xuICAgIFxuICAgICAgICBjb25zdCBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlsc09iaiA9IHtcbiAgICAgICAgICAgIHVuaXF1ZUlkOiB0aGlzLm9yZGVyRGV0YWlscy5pbmNyZW1lbnRfaWQgfHwgJycsXG4gICAgICAgICAgICBwcm92aWRlclR5cGU6IFBST1ZJREVSUy5NQUdFTlRPMixcbiAgICAgICAgICAgIGRldGFpbHM6IHsgaW52b2ljZUlkOiBpbnZvaWNlSWQ/LnRvU3RyaW5nKCkgfHwgJycgfSxcbiAgICAgICAgICAgIGNvdXBvbnM6IGNvdXBvbiA/IFtjb3Vwb25dIDogW11cbiAgICAgICAgfTtcbiAgICBcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHMucHVzaChleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlsc09iaik7XG4gICAgXG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwiZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHNcIiwgXCJNYXBwaW5nIGVuZGVkLi4uXCIpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBiYXNrZXRTdW1tYXJ5KCkge1xuICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcImJhc2tldFN1bW1hcnlcIiwgXCJNYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XG4gICAgXG4gICAgICAgIGNvbnN0IHsgb3JkZXJEZXRhaWxzLCB3ZWJSZXR1cm5PYmplY3QgfSA9IHRoaXM7XG5cbiAgICAgICAgY29uc3QgYmFza2V0U3VtbWFyeTogQmFza2V0U3VtbWFyeSA9IHtcbiAgICAgICAgICAgIGRpc2NvdW50VG90YWw6IG9yZGVyRGV0YWlscy5kaXNjb3VudF9hbW91bnQgfHwgMCxcbiAgICAgICAgICAgIFZBVFRvdGFsOiBvcmRlckRldGFpbHMudGF4X2Ftb3VudCB8fCAwLFxuICAgICAgICAgICAgc2FsZVRvdGFsOiBvcmRlckRldGFpbHMuc3VidG90YWwgfHwgMCxcbiAgICAgICAgICAgIGJhc2tldFRvdGFsOiAob3JkZXJEZXRhaWxzLnN1YnRvdGFsIHx8IDApIC0gKG9yZGVyRGV0YWlscy50b3RhbF9vbmxpbmVfcmVmdW5kZWQgfHwgMCksXG4gICAgICAgICAgICB0b3RhbEl0ZW1zOiBvcmRlckRldGFpbHMudG90YWxfcXR5X29yZGVyZWQgPz8gMCxcbiAgICAgICAgICAgIHJlZnVuZFRvdGFsOiBvcmRlckRldGFpbHMudG90YWxfb25saW5lX3JlZnVuZGVkIHx8IDAsXG4gICAgICAgICAgICBzaGlwcGluZ1RvdGFsOiBvcmRlckRldGFpbHMuc2hpcHBpbmdfaW5jbF90YXggfHwgMCxcbiAgICAgICAgICAgIGJhc2tldFRvdGFsV2l0aFNoaXBwaW5nVG90YWw6IG9yZGVyRGV0YWlscy50b3RhbF9pbnZvaWNlZCB8fCAwLFxuICAgICAgICAgICAgd2ViT3JkZXI6IHtcbiAgICAgICAgICAgICAgICBzaGlwcGluZ1RvdGFsOiBvcmRlckRldGFpbHMuc2hpcHBpbmdfaW5jbF90YXggfHwgMCxcbiAgICAgICAgICAgICAgICBiYXNrZXRUb3RhbFdpdGhTaGlwcGluZ1RvdGFsOiBvcmRlckRldGFpbHMudG90YWxfaW52b2ljZWQgfHwgMFxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIFxuICAgICAgICB3ZWJSZXR1cm5PYmplY3QuYmFza2V0U3VtbWFyeSA9IGJhc2tldFN1bW1hcnk7XG4gICAgXG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwiYmFza2V0U3VtbWFyeVwiLCBcIk1hcHBpbmcgZW5kZWQuLi5cIik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH0gICAgXG5cbiAgICByZWZ1bmRSZXF1ZXN0KCkge1xuICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcInJlZnVuZFJlcXVlc3RcIiwgXCJNYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XG4gICAgXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnJlZnVuZFJlcXVlc3QgPSAodGhpcy5vcmRlckRldGFpbHMuaXRlbXMgfHwgW10pXG4gICAgICAgICAgICAuZmlsdGVyKHByb2R1Y3QgPT4gcHJvZHVjdD8uYmFzZV9wcmljZSlcbiAgICAgICAgICAgIC5tYXAoKHByb2R1Y3QsIGluZGV4KSA9PiAoe1xuICAgICAgICAgICAgICAgIGl0ZW1MaW5lSWQ6IGluZGV4ICsgMSxcbiAgICAgICAgICAgICAgICByZWZ1bmRlZFF1YW50aXR5OiBwcm9kdWN0LnF0eV9yZWZ1bmRlZCB8fCAwLFxuICAgICAgICAgICAgICAgIHJlZnVuZFdpdGhQcm9tb3Rpb246IHRydWUsXG4gICAgICAgICAgICAgICAgcXVhbnRpdHk6IHByb2R1Y3QucXR5X29yZGVyZWQgfHwgMFxuICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAuZmlsdGVyKHByb2R1Y3QgPT4gcHJvZHVjdC5yZWZ1bmRlZFF1YW50aXR5ICE9PSAwKTtcbiAgICBcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJyZWZ1bmRSZXF1ZXN0XCIsIGBNYXBwZWQgJHt0aGlzLndlYlJldHVybk9iamVjdC5yZWZ1bmRSZXF1ZXN0Lmxlbmd0aH0gcmVmdW5kIGl0ZW1zLmApO1xuICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcInJlZnVuZFJlcXVlc3RcIiwgXCJNYXBwaW5nIGVuZGVkLi4uXCIpO1xuICAgIFxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB1cGRhdGVUYXhCcmVha2Rvd24oKSB7XG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwidXBkYXRlVGF4QnJlYWtkb3duXCIsIFwiTWFwcGluZyBzdGFydGVkLi4uXCIpO1xuICAgIFxuICAgICAgICBjb25zdCB0YXhMaW5lcyA9IHRoaXMub3JkZXJEZXRhaWxzLml0ZW1zXG4gICAgICAgICAgICA/LmZpbHRlcihwcm9kdWN0ID0+IHByb2R1Y3Q/LmJhc2VfcHJpY2UpXG4gICAgICAgICAgICAubWFwKChwcm9kdWN0LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRheGFibGVBbW91bnQgPSBwcm9kdWN0LnJvd190b3RhbF9pbmNsX3RheCB8fCAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IFZBVCA9IHByb2R1Y3QudGF4X3BlcmNlbnQgfHwgMDtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmVUYXggPSB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMigodGF4YWJsZUFtb3VudCAqIDEwMCkgLyAoMTAwICsgVkFUKSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGF4TGluZVRvdGFsID0gdGhpcy5udW1iZXJVdGlsU2VydmljZS50cmltVG8yRGVjaW1hbDIodGF4YWJsZUFtb3VudCAtIHByZVRheCk7XG4gICAgXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbUxpbmVJZDogaW5kZXggKyAxLFxuICAgICAgICAgICAgICAgICAgICBWQVQsXG4gICAgICAgICAgICAgICAgICAgIFZBVENvZGU6ICcnLFxuICAgICAgICAgICAgICAgICAgICB0YXhhYmxlQW1vdW50LFxuICAgICAgICAgICAgICAgICAgICBQcmVUYXg6IHByZVRheCxcbiAgICAgICAgICAgICAgICAgICAgdGF4TGluZVRvdGFsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pIHx8IFtdO1xuICAgIFxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRbXCJ0YXhCcmVha2Rvd25cIl0gPSB7XG4gICAgICAgICAgICB0YXhMaW5lcyxcbiAgICAgICAgICAgIHRvdGFsVGF4YWJsZUFtb3VudDogdGhpcy5vcmRlckRldGFpbHMudGF4X2Ftb3VudCB8fCAwXG4gICAgICAgIH0gYXMgVGF4QnJlYWtkb3duO1xuICAgIFxuICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcInVwZGF0ZVRheEJyZWFrZG93blwiLCBgTWFwcGVkICR7dGF4TGluZXMubGVuZ3RofSB0YXggbGluZXMuYCk7XG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwidXBkYXRlVGF4QnJlYWtkb3duXCIsIFwiTWFwcGluZyBlbmRlZC4uLlwiKTtcbiAgICBcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZGV2aWNlSWQoZGV2aWNlSWQpIHtcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuZGV2aWNlSWQgPSBkZXZpY2VJZDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgdGVybWluYWxJZCh0ZXJtaW5hbElkKSB7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnRlcm1pbmFsSWQgPSB0ZXJtaW5hbElkO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBvcmdDb2RlKG9yZ0NvZGUpIHtcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Qub3JnQ29kZSA9IG9yZ0NvZGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHN0b3JlSWQoKSB7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnN0b3JlSWQgPSB0aGlzLm9yZGVyRGV0YWlscy5zdG9yZV9pZDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgc3RvcmVOb2RlSWQoc3RvcmVOb2RlSWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5zdG9yZU5vZGVJZCA9IHN0b3JlTm9kZUlkO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBzdG9yZU5vZGVTdHJ1Y3R1cmUoc3RvcmVOb2RlU3RydWN0dXJlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3RvcmVOb2RlU3RydWN0dXJlID0gc3RvcmVOb2RlU3RydWN0dXJlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBkb2NJZChkb2NJZCkge1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5pZCA9IGRvY0lkO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB1cGRhdGVVc2VySUQodXNlcklEOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QudXNlcklkID0gdXNlcklEO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB1cGRhdGVVc2VyTmFtZShuYW1lKSB7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnVzZXJOYW1lID0gbmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgYnVpbGQoKSB7XG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwiYnVpbGRcIiwgXCJNYXBwaW5nIGRvbmUuLi5cIik7XG4gICAgICAgIHJldHVybiB0aGlzLndlYlJldHVybk9iamVjdDtcbiAgICB9XG5cbiAgICBnZXRVVENEYXRlVGltZShkYXRlKSB7XG4gICAgICAgIGlmIChkYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -3677,14 +3677,16 @@ class WebReturnMagento2RestV1MapperBuilderClass {
|
|
|
3677
3677
|
return this;
|
|
3678
3678
|
}
|
|
3679
3679
|
refundRequest() {
|
|
3680
|
-
var _a;
|
|
3681
3680
|
AppLoggerService.logDebug(this.className, "refundRequest", "Mapping started...");
|
|
3682
|
-
this.webReturnObject.refundRequest = (
|
|
3681
|
+
this.webReturnObject.refundRequest = (this.orderDetails.items || [])
|
|
3682
|
+
.filter(product => product === null || product === void 0 ? void 0 : product.base_price)
|
|
3683
|
+
.map((product, index) => ({
|
|
3683
3684
|
itemLineId: index + 1,
|
|
3684
3685
|
refundedQuantity: product.qty_refunded || 0,
|
|
3685
3686
|
refundWithPromotion: true,
|
|
3686
3687
|
quantity: product.qty_ordered || 0
|
|
3687
|
-
}))
|
|
3688
|
+
}))
|
|
3689
|
+
.filter(product => product.refundedQuantity !== 0);
|
|
3688
3690
|
AppLoggerService.logDebug(this.className, "refundRequest", `Mapped ${this.webReturnObject.refundRequest.length} refund items.`);
|
|
3689
3691
|
AppLoggerService.logDebug(this.className, "refundRequest", "Mapping ended...");
|
|
3690
3692
|
return this;
|