@pmcretail/mapper-library 0.0.35 → 0.0.37
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 +42 -0
- package/bundles/pmcretail-mapper-library.umd.js.map +1 -1
- package/bundles/pmcretail-mapper-library.umd.min.js +1 -1
- package/bundles/pmcretail-mapper-library.umd.min.js.map +1 -1
- package/esm2015/lib/WebReturn-mapper.class.js +15 -1
- package/esm2015/lib/WebReturnSalesforceMapper.class.js +15 -1
- package/esm2015/lib/mapper-library.model.js +5 -1
- package/esm5/lib/WebReturn-mapper.class.js +20 -1
- package/esm5/lib/WebReturnSalesforceMapper.class.js +20 -1
- package/esm5/lib/mapper-library.model.js +5 -1
- package/fesm2015/pmcretail-mapper-library.js +32 -0
- package/fesm2015/pmcretail-mapper-library.js.map +1 -1
- package/fesm5/pmcretail-mapper-library.js +42 -0
- package/fesm5/pmcretail-mapper-library.js.map +1 -1
- package/lib/WebReturn-mapper.class.d.ts +1 -0
- package/lib/WebReturnSalesforceMapper.class.d.ts +1 -0
- package/lib/mapper-library.model.d.ts +2 -0
- package/package.json +1 -1
- package/pmcretail-mapper-library.metadata.json +1 -1
|
@@ -18,6 +18,7 @@ export class WebReturnMapperBuilderClass {
|
|
|
18
18
|
terminalId: "",
|
|
19
19
|
initiatingModule: "",
|
|
20
20
|
export: false,
|
|
21
|
+
isInStoreOrder: false,
|
|
21
22
|
basket: {},
|
|
22
23
|
basketSummary: {},
|
|
23
24
|
baseCurrency: "",
|
|
@@ -265,6 +266,19 @@ export class WebReturnMapperBuilderClass {
|
|
|
265
266
|
return new Date(date).toISOString();
|
|
266
267
|
}
|
|
267
268
|
}
|
|
269
|
+
/**
|
|
270
|
+
* @template THIS
|
|
271
|
+
* @this {THIS}
|
|
272
|
+
* @return {THIS}
|
|
273
|
+
*/
|
|
274
|
+
isInStoreOrder() {
|
|
275
|
+
console.log("Mapper library: WebReturnMapperBuilderClass: isInStoreOrder mapping started...");
|
|
276
|
+
if ((/** @type {?} */ (this)).document.payment && (/** @type {?} */ (this)).document.payment.method && (/** @type {?} */ (this)).document.payment.method === 'pos_order') {
|
|
277
|
+
(/** @type {?} */ (this)).webReturnObject.isInStoreOrder = true;
|
|
278
|
+
}
|
|
279
|
+
console.log("Mapper library: WebReturnMapperBuilderClass: isInStoreOrder mapping ended...");
|
|
280
|
+
return (/** @type {?} */ (this));
|
|
281
|
+
}
|
|
268
282
|
}
|
|
269
283
|
if (false) {
|
|
270
284
|
/**
|
|
@@ -278,4 +292,4 @@ if (false) {
|
|
|
278
292
|
*/
|
|
279
293
|
WebReturnMapperBuilderClass.prototype.webReturnObject;
|
|
280
294
|
}
|
|
281
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViUmV0dXJuLW1hcHBlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BwbWNyZXRhaWwvbWFwcGVyLWxpYnJhcnkvIiwic291cmNlcyI6WyJsaWIvV2ViUmV0dXJuLW1hcHBlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLE1BQU0sT0FBTywyQkFBMkI7Ozs7SUE2QnBDLFlBQVksUUFBUTtRQTFCWixvQkFBZSxHQUF3QjtZQUMzQyxFQUFFLEVBQUUsRUFBRTtZQUNOLE9BQU8sRUFBRSxFQUFFO1lBQ1gsT0FBTyxFQUFFLEVBQUU7WUFDWCxXQUFXLEVBQUUsRUFBRTtZQUNmLGtCQUFrQixFQUFFLEVBQUU7WUFDdEIsUUFBUSxFQUFFLEVBQUU7WUFDWixVQUFVLEVBQUUsRUFBRTtZQUNkLGdCQUFnQixFQUFFLEVBQUU7WUFDcEIsTUFBTSxFQUFFLEtBQUs7WUFDYixNQUFNLEVBQUUsRUFBRTtZQUNWLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLFlBQVksRUFBRSxFQUFFO1lBQ2hCLFFBQVEsRUFBRTtnQkFDTixTQUFTLEVBQUUsRUFBRTtnQkFDYixRQUFRLEVBQUUsRUFBRTtnQkFDWixLQUFLLEVBQUUsRUFBRTtnQkFDVCxRQUFRLEVBQUUsRUFBRTtnQkFDWixFQUFFLEVBQUUsRUFBRTtnQkFDTixjQUFjLEVBQUUsRUFBRTtnQkFDbEIsZUFBZSxFQUFFLEVBQUU7YUFFdEI7WUFDRCx5QkFBeUIsRUFBRSxtQkFBQSxFQUFFLEVBQTZCO1NBQzdELENBQUE7UUFHRyxJQUFJLFFBQVEsRUFBRTtZQUNWLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1NBQzVCO0lBQ0wsQ0FBQzs7Ozs7O0lBRUQsZUFBZTtRQUNYLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxhQUFhLENBQUM7UUFDN0MsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHLG1CQUFBLElBQUks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QUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbk0sbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0wsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDak0sbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdk0sbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFcE0sbUJBQW1CO1FBQ25CLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3ZNLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9MLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JNLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzNNLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUs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LGNBQWMsQ0FBQyxJQUFJO1FBQ2YsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckMsT0FBTyxtQkFBQSxJQUFJLEVBQUEsQ0FBQztJQUNoQixDQUFDOzs7O0lBRUQsS0FBSztRQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDOzs7OztJQUVELE9BQU8sQ0FBQyxHQUFHO1FBQ1AsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksRUFBRTtZQUNqQixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUM7U0FDbkI7YUFBTTtZQUNILE9BQU8sR0FBRyxDQUFDO1NBQ2Q7SUFDTCxDQUFDOzs7OztJQUVELGNBQWMsQ0FBQyxJQUFJO1FBQ2YsSUFBSSxJQUFJLEVBQUU7WUFDTixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3ZDO0lBQ0wsQ0FBQztDQUNKOzs7Ozs7SUF0TUcsK0NBQXNCOzs7OztJQUN0QixzREF3QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXJyZW50VHJhbnNhY3Rpb25EZXRhaWxzLCBUcmFuc2FjdGlvbkRvY3VtZW50IH0gZnJvbSBcIi4vbWFwcGVyLWxpYnJhcnkubW9kZWxcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBXZWJSZXR1cm5NYXBwZXJCdWlsZGVyQ2xhc3Mge1xyXG5cclxuICAgIHByaXZhdGUgZG9jdW1lbnQ6IGFueTtcclxuICAgIHByaXZhdGUgd2ViUmV0dXJuT2JqZWN0OiBUcmFuc2FjdGlvbkRvY3VtZW50ID0ge1xyXG4gICAgICAgIGlkOiAnJyxcclxuICAgICAgICBvcmdDb2RlOiBcIlwiLFxyXG4gICAgICAgIHN0b3JlSWQ6IFwiXCIsXHJcbiAgICAgICAgc3RvcmVOb2RlSWQ6IFwiXCIsXHJcbiAgICAgICAgc3RvcmVOb2RlU3RydWN0dXJlOiBcIlwiLFxyXG4gICAgICAgIGRldmljZUlkOiBcIlwiLFxyXG4gICAgICAgIHRlcm1pbmFsSWQ6IFwiXCIsXHJcbiAgICAgICAgaW5pdGlhdGluZ01vZHVsZTogXCJcIixcclxuICAgICAgICBleHBvcnQ6IGZhbHNlLFxyXG4gICAgICAgIGJhc2tldDoge30sXHJcbiAgICAgICAgYmFza2V0U3VtbWFyeToge30sXHJcbiAgICAgICAgYmFzZUN1cnJlbmN5OiBcIlwiLFxyXG4gICAgICAgIGN1c3RvbWVyOiB7XHJcbiAgICAgICAgICAgIGZpcnN0TmFtZTogJycsXHJcbiAgICAgICAgICAgIGxhc3ROYW1lOiAnJyxcclxuICAgICAgICAgICAgZW1haWw6ICcnLFxyXG4gICAgICAgICAgICBwb3N0Q29kZTogJycsXHJcbiAgICAgICAgICAgIGlkOiAnJyxcclxuICAgICAgICAgICAgYmlsbGluZ0FkZHJlc3M6IHt9LFxyXG4gICAgICAgICAgICBzaGlwcGluZ0FkZHJlc3M6IHt9LFxyXG5cclxuICAgICAgICB9LFxyXG4gICAgICAgIGN1cnJlbnRUcmFuc2FjdGlvbkRldGFpbHM6IHt9IGFzIEN1cnJlbnRUcmFuc2FjdGlvbkRldGFpbHNcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihkb2N1bWVudCkge1xyXG4gICAgICAgIGlmIChkb2N1bWVudCkge1xyXG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIFdlYlJldHVybk1hcHBlcigpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsndHlwZSddID0gJ1dFQl9SRVRVUk5TJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnZGF0ZXRpbWUnXSA9IHRoaXMuZ2V0VVRDRGF0ZVRpbWUodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQudXBkYXRlZF9hdCkpO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2VDdXJyZW5jeSA9IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmJhc2VfY3VycmVuY3lfY29kZSk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3RvcmVJZCA9IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnN0b3JlX2lkKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5zdWJzaWRpYXJ5SWQgPSAnMSc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuaW5pdGlhdGluZ01vZHVsZSA9ICdNQUdFTlRPJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5jcmVhdGVkQXQgPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmNyZWF0ZWRfYXQpKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC51cGRhdGVkQXQgPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnVwZGF0ZWRfYXQpKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5leHBvcnQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnRyYW5zQ29tcGxldGVkQXQgPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnVwZGF0ZWRfYXQpKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnZXh0ZXJuYWxUcmFuc2FjdGlvbklkJ10gPSB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5vcmRlcl9pZCk7XHJcblxyXG4gICAgICAgIC8vIGN1c3RvbWVyXHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ2ZpcnN0TmFtZSddID0gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuY3VzdG9tZXJfZmlyc3RuYW1lKSB8fCAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnbGFzdE5hbWUnXSA9IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmN1c3RvbWVyX2xhc3RuYW1lKSB8fCAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnZW1haWwnXSA9IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmN1c3RvbWVyX2VtYWlsKSB8fCAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsncG9zdENvZGUnXSA9ICcnO1xyXG5cclxuICAgICAgICAvLyBCaWxsaW5nIGFkZHJlc3NcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnYmlsbGluZ0FkZHJlc3MnXVsnYWRkcmVzczEnXSA9ICh0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcyAmJiB0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcy5zdHJlZXQpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLnN0cmVldCkgOiAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnYmlsbGluZ0FkZHJlc3MnXVsnY2l0eSddID0gKHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLmNpdHkpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLmNpdHkpIDogJyc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ2JpbGxpbmdBZGRyZXNzJ11bJ2NvdW50eSddID0gKHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLnJlZ2lvbikgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5iaWxsaW5nX2FkZHJlc3MucmVnaW9uKSA6ICcnO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydjdXN0b21lciddWydiaWxsaW5nQWRkcmVzcyddWydwb3N0Q29kZSddID0gKHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLnBvc3Rjb2RlKSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcy5wb3N0Y29kZSkgOiAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnYmlsbGluZ0FkZHJlc3MnXVsnY291bnRyeSddID0gKHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLmNvdW50cnkpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLmNvdW50cnkpIDogJyc7XHJcblxyXG4gICAgICAgIC8vIFNoaXBwaW5nIGFkZHJlc3NcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnc2hpcHBpbmdBZGRyZXNzJ11bJ2FkZHJlc3MxJ10gPSAodGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcy5zdHJlZXQpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcy5zdHJlZXQpIDogJyc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ3NoaXBwaW5nQWRkcmVzcyddWydjaXR5J10gPSAodGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcy5jaXR5KSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MuY2l0eSkgOiAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnc2hpcHBpbmdBZGRyZXNzJ11bJ2NvdW50eSddID0gKHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcyAmJiB0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MucmVnaW9uKSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MucmVnaW9uKSA6ICcnO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydjdXN0b21lciddWydzaGlwcGluZ0FkZHJlc3MnXVsncG9zdENvZGUnXSA9ICh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MgJiYgdGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzLnBvc3Rjb2RlKSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MucG9zdGNvZGUpIDogJyc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ3NoaXBwaW5nQWRkcmVzcyddWydjb3VudHJ5J10gPSAodGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcy5jb3VudHJ5KSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MuY291bnRyeSkgOiAnJztcclxuXHJcbiAgICAgICAgLy8gYmFza2V0U3VtbWFyeSBcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRTdW1tYXJ5WydkaXNjb3VudFRvdGFsJ10gPSBOdW1iZXIodGhpcy5kb2N1bWVudC5kaXNjb3VudF9hbW91bnQgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5kaXNjb3VudF9hbW91bnQpIDogMCk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0U3VtbWFyeVsnVkFUVG90YWwnXSA9IE51bWJlcih0aGlzLmRvY3VtZW50LmJhc2VfdG90YWxfcGFpZCA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmJhc2VfdG90YWxfcGFpZCkgOiAwKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRTdW1tYXJ5WydzYWxlVG90YWwnXSA9IE51bWJlcih0aGlzLmRvY3VtZW50LmJhc2VfdG90YWxfaW52b2ljZWQgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5iYXNlX3RvdGFsX2ludm9pY2VkKSA6IDApO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFN1bW1hcnlbJ2Jhc2tldFRvdGFsJ10gPSBOdW1iZXIodGhpcy5kb2N1bWVudC5iYXNlX3RvdGFsX3BhaWQgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5iYXNlX3RvdGFsX3BhaWQpIDogMCk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0U3VtbWFyeVsndG90YWxJdGVtcyddID0gTnVtYmVyKHRoaXMuZG9jdW1lbnQudG90YWxfcXR5X29yZGVyZWQgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC50b3RhbF9xdHlfb3JkZXJlZCkgOiAwKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRTdW1tYXJ5WydyZWZ1bmRUb3RhbCddID0gTnVtYmVyKHRoaXMuZG9jdW1lbnQuYmFzZV90b3RhbF9yZWZ1bmRlZCA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmJhc2VfdG90YWxfcmVmdW5kZWQpIDogMCk7XHJcblxyXG4gICAgICAgIC8vIGJhc2tldCBsaW5lIGRpc2NvdW50XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0WydsaW5lRGlzY291bnQnXSA9IFtdO1xyXG5cclxuICAgICAgICBsZXQgbGluZURpc2NvdW50ID0ge1xyXG4gICAgICAgICAgICBpdGVtTGluZUlkOiAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLml0ZW1faWQpID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5pdGVtX2lkKSA6IDAsXHJcbiAgICAgICAgICAgIGRpc2NvdW50QW1vdW50OiAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLmRpc2NvdW50X2Ftb3VudCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5kaXNjb3VudF9hbW91bnQpKSA6IDBcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0WydsaW5lRGlzY291bnQnXS5wdXNoKGxpbmVEaXNjb3VudCk7XHJcblxyXG4gICAgICAgIC8vIGJhc2tldCB0cmFuc2FjdGlvbiBkaXNjb3VudFxyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFsndHJhbnNhY3Rpb25EaXNjb3VudCddID0gW107XHJcblxyXG4gICAgICAgIGxldCB0cmFuc2FjdGlvbkRpc2NvdW50ID0ge1xyXG4gICAgICAgICAgICBkaXNjb3VudEFtb3VudDogKHRoaXMuZG9jdW1lbnQgJiYgdGhpcy5kb2N1bWVudC5kaXNjb3VudF9hbW91bnQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmRpc2NvdW50X2Ftb3VudCkpIDogMFxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRbJ3RyYW5zYWN0aW9uRGlzY291bnQnXS5wdXNoKHRyYW5zYWN0aW9uRGlzY291bnQpO1xyXG5cclxuICAgICAgICAvLyBiYXNrZXQgcHJvZHVjdHMgXHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0Wydwcm9kdWN0cyddID0gW107XHJcbiAgICAgICAgbGV0IHByb2R1Y3QgOiBhbnk9IHt9O1xyXG4gICAgICAgIGlmICh0aGlzLmRvY3VtZW50Lml0ZW1zICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBxdHkgPSB0aGlzLmdldFRleHQoZWxlbWVudC5xdHlfb3JkZXJlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KGVsZW1lbnQucXR5X29yZGVyZWQpKSA6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlZnVuZFF0eSA9IHRoaXMuZ2V0VGV4dChlbGVtZW50LnF0eV9yZWZ1bmRlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KGVsZW1lbnQucXR5X3JlZnVuZGVkKSkgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwcmljZSA9IHRoaXMuZ2V0VGV4dChlbGVtZW50LmJhc2Vfb3JpZ2luYWxfcHJpY2UpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dChlbGVtZW50LmJhc2Vfb3JpZ2luYWxfcHJpY2UpKSA6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvZHVjdCA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IChlbGVtZW50Lm5hbWUpID8gdGhpcy5nZXRUZXh0KGVsZW1lbnQubmFtZSkgOiAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgU0tVOiAoZWxlbWVudC5za3UpID8gdGhpcy5nZXRUZXh0KGVsZW1lbnQuc2t1KSA6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWFudGl0eTogKGVsZW1lbnQucXR5X29yZGVyZWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dChlbGVtZW50LnF0eV9vcmRlcmVkKSkgOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZ1bmRlZFF1YW50aXR5OiAoZWxlbWVudC5xdHlfcmVmdW5kZWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dChlbGVtZW50LnF0eV9yZWZ1bmRlZCkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJpY2U6IChlbGVtZW50Lm9yaWdpbmFsX3ByaWNlKSA/IE51bWJlcih0aGlzLmdldFRleHQoZWxlbWVudC5vcmlnaW5hbF9wcmljZSkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbUxpbmVJZDogKGVsZW1lbnQuaXRlbV9pZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KGVsZW1lbnQuaXRlbV9pZCkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG90YWxMaW5lUHJpY2U6IChlbGVtZW50LnJvd19pbnZvaWNlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KGVsZW1lbnQucm93X2ludm9pY2VkKSkgOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbExpbmVQcmljZTogKChxdHkgLSByZWZ1bmRRdHkpICogcHJpY2UpLFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAocHJvZHVjdCAmJiBwcm9kdWN0LnByaWNlICE9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0Wydwcm9kdWN0cyddLnB1c2gocHJvZHVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgcXR5ID0gKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5xdHlfb3JkZXJlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5xdHlfb3JkZXJlZCkpIDogMDtcclxuICAgICAgICAgICAgICAgIGxldCByZWZ1bmRRdHkgPSAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnF0eV9yZWZ1bmRlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5xdHlfcmVmdW5kZWQpKSA6IDA7XHJcbiAgICAgICAgICAgICAgICBsZXQgcHJpY2UgPSAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLm9yaWdpbmFsX3ByaWNlKSA/IE51bWJlcih0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLm9yaWdpbmFsX3ByaWNlKSkgOiAwO1xyXG4gICAgICAgICAgICAgICAgcHJvZHVjdCA9IHtcclxuICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5uYW1lKSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ubmFtZSkgOiAnJyxcclxuICAgICAgICAgICAgICAgICAgICBTS1U6ICh0aGlzLmRvY3VtZW50Lml0ZW1zICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbSAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0uc2t1KSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0uc2t1KSA6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgIHF1YW50aXR5OiAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnF0eV9vcmRlcmVkKSA/IE51bWJlcih0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnF0eV9vcmRlcmVkKSkgOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlZnVuZGVkUXVhbnRpdHk6ICh0aGlzLmRvY3VtZW50Lml0ZW1zICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbSAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ucXR5X3JlZnVuZGVkKSA/IE51bWJlcih0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnF0eV9yZWZ1bmRlZCkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICBwcmljZTogKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5vcmlnaW5hbF9wcmljZSkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5vcmlnaW5hbF9wcmljZSkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICBpdGVtTGluZUlkOiAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLml0ZW1faWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0uaXRlbV9pZCkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAvLyB0b3RhbExpbmVQcmljZTogKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5yb3dfaW52b2ljZWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ucm93X2ludm9pY2VkKSkgOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgIHRvdGFsTGluZVByaWNlOiAoKHF0eSAtIHJlZnVuZFF0eSkgKiBwcmljZSksXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAocHJvZHVjdCAmJiBwcm9kdWN0LnByaWNlICE9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRbJ3Byb2R1Y3RzJ10ucHVzaChwcm9kdWN0KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBkZXZpY2VJZChkZXZpY2VJZCkge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmRldmljZUlkID0gZGV2aWNlSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgdGVybWluYWxJZCh0ZXJtaW5hbElkKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QudGVybWluYWxJZCA9IHRlcm1pbmFsSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgb3JnQ29kZShvcmdDb2RlKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Qub3JnQ29kZSA9IG9yZ0NvZGU7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcmVJZChzdG9yZUlkKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3RvcmVJZCA9IHN0b3JlSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcmVOb2RlSWQoc3RvcmVOb2RlSWQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnN0b3JlTm9kZUlkID0gc3RvcmVOb2RlSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcmVOb2RlU3RydWN0dXJlKHN0b3JlTm9kZVN0cnVjdHVyZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3RvcmVOb2RlU3RydWN0dXJlID0gc3RvcmVOb2RlU3RydWN0dXJlO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIGRvY0lkKGRvY0lkKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuaWQgPSBkb2NJZDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVVc2VySUQodXNlcklEOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC51c2VySWQgPSB1c2VySUQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlVXNlck5hbWUobmFtZSkge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnVzZXJOYW1lID0gbmFtZTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBidWlsZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy53ZWJSZXR1cm5PYmplY3Q7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VGV4dChvYmopIHtcclxuICAgICAgICBpZiAob2JqICYmIG9iai50ZXh0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBvYmoudGV4dDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gb2JqO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRVVENEYXRlVGltZShkYXRlKSB7XHJcbiAgICAgICAgaWYgKGRhdGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUpLnRvSVNPU3RyaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
295
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViUmV0dXJuLW1hcHBlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BwbWNyZXRhaWwvbWFwcGVyLWxpYnJhcnkvIiwic291cmNlcyI6WyJsaWIvV2ViUmV0dXJuLW1hcHBlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLE1BQU0sT0FBTywyQkFBMkI7Ozs7SUE4QnBDLFlBQVksUUFBUTtRQTNCWixvQkFBZSxHQUF3QjtZQUMzQyxFQUFFLEVBQUUsRUFBRTtZQUNOLE9BQU8sRUFBRSxFQUFFO1lBQ1gsT0FBTyxFQUFFLEVBQUU7WUFDWCxXQUFXLEVBQUUsRUFBRTtZQUNmLGtCQUFrQixFQUFFLEVBQUU7WUFDdEIsUUFBUSxFQUFFLEVBQUU7WUFDWixVQUFVLEVBQUUsRUFBRTtZQUNkLGdCQUFnQixFQUFFLEVBQUU7WUFDcEIsTUFBTSxFQUFFLEtBQUs7WUFDYixjQUFjLEVBQUUsS0FBSztZQUNyQixNQUFNLEVBQUUsRUFBRTtZQUNWLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLFlBQVksRUFBRSxFQUFFO1lBQ2hCLFFBQVEsRUFBRTtnQkFDTixTQUFTLEVBQUUsRUFBRTtnQkFDYixRQUFRLEVBQUUsRUFBRTtnQkFDWixLQUFLLEVBQUUsRUFBRTtnQkFDVCxRQUFRLEVBQUUsRUFBRTtnQkFDWixFQUFFLEVBQUUsRUFBRTtnQkFDTixjQUFjLEVBQUUsRUFBRTtnQkFDbEIsZUFBZSxFQUFFLEVBQUU7YUFFdEI7WUFDRCx5QkFBeUIsRUFBRSxtQkFBQSxFQUFFLEVBQTZCO1NBQzdELENBQUE7UUFHRyxJQUFJLFFBQVEsRUFBRTtZQUNWLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1NBQzVCO0lBQ0wsQ0FBQzs7Ozs7O0lBRUQsZUFBZTtRQUNYLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxhQUFhLENBQUM7UUFDN0MsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUs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QUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbk0sbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0wsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDak0sbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdk0sbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLE9BQU8sQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFcE0sbUJBQW1CO1FBQ25CLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3ZNLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9MLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JNLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsUUFBUSxDQUFDLGdCQUFnQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsT0FBTyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzNNLG1CQUFB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b25EZXRhaWxzLCBUcmFuc2FjdGlvbkRvY3VtZW50IH0gZnJvbSBcIi4vbWFwcGVyLWxpYnJhcnkubW9kZWxcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBXZWJSZXR1cm5NYXBwZXJCdWlsZGVyQ2xhc3Mge1xyXG5cclxuICAgIHByaXZhdGUgZG9jdW1lbnQ6IGFueTtcclxuICAgIHByaXZhdGUgd2ViUmV0dXJuT2JqZWN0OiBUcmFuc2FjdGlvbkRvY3VtZW50ID0ge1xyXG4gICAgICAgIGlkOiAnJyxcclxuICAgICAgICBvcmdDb2RlOiBcIlwiLFxyXG4gICAgICAgIHN0b3JlSWQ6IFwiXCIsXHJcbiAgICAgICAgc3RvcmVOb2RlSWQ6IFwiXCIsXHJcbiAgICAgICAgc3RvcmVOb2RlU3RydWN0dXJlOiBcIlwiLFxyXG4gICAgICAgIGRldmljZUlkOiBcIlwiLFxyXG4gICAgICAgIHRlcm1pbmFsSWQ6IFwiXCIsXHJcbiAgICAgICAgaW5pdGlhdGluZ01vZHVsZTogXCJcIixcclxuICAgICAgICBleHBvcnQ6IGZhbHNlLFxyXG4gICAgICAgIGlzSW5TdG9yZU9yZGVyOiBmYWxzZSxcclxuICAgICAgICBiYXNrZXQ6IHt9LFxyXG4gICAgICAgIGJhc2tldFN1bW1hcnk6IHt9LFxyXG4gICAgICAgIGJhc2VDdXJyZW5jeTogXCJcIixcclxuICAgICAgICBjdXN0b21lcjoge1xyXG4gICAgICAgICAgICBmaXJzdE5hbWU6ICcnLFxyXG4gICAgICAgICAgICBsYXN0TmFtZTogJycsXHJcbiAgICAgICAgICAgIGVtYWlsOiAnJyxcclxuICAgICAgICAgICAgcG9zdENvZGU6ICcnLFxyXG4gICAgICAgICAgICBpZDogJycsXHJcbiAgICAgICAgICAgIGJpbGxpbmdBZGRyZXNzOiB7fSxcclxuICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzOiB7fSxcclxuXHJcbiAgICAgICAgfSxcclxuICAgICAgICBjdXJyZW50VHJhbnNhY3Rpb25EZXRhaWxzOiB7fSBhcyBDdXJyZW50VHJhbnNhY3Rpb25EZXRhaWxzXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoZG9jdW1lbnQpIHtcclxuICAgICAgICBpZiAoZG9jdW1lbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5kb2N1bWVudCA9IGRvY3VtZW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBXZWJSZXR1cm5NYXBwZXIoKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ3R5cGUnXSA9ICdXRUJfUkVUVVJOUyc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2RhdGV0aW1lJ10gPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnVwZGF0ZWRfYXQpKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNlQ3VycmVuY3kgPSB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5iYXNlX2N1cnJlbmN5X2NvZGUpO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnN0b3JlSWQgPSB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5zdG9yZV9pZCk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3Vic2lkaWFyeUlkID0gJzEnO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmluaXRpYXRpbmdNb2R1bGUgPSAnTUFHRU5UTyc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuY3JlYXRlZEF0ID0gdGhpcy5nZXRVVENEYXRlVGltZSh0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5jcmVhdGVkX2F0KSk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QudXBkYXRlZEF0ID0gdGhpcy5nZXRVVENEYXRlVGltZSh0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC51cGRhdGVkX2F0KSk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuZXhwb3J0ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC50cmFuc0NvbXBsZXRlZEF0ID0gdGhpcy5nZXRVVENEYXRlVGltZSh0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC51cGRhdGVkX2F0KSk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2V4dGVybmFsVHJhbnNhY3Rpb25JZCddID0gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQub3JkZXJfaWQpO1xyXG5cclxuICAgICAgICAvLyBjdXN0b21lclxyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydjdXN0b21lciddWydmaXJzdE5hbWUnXSA9IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmN1c3RvbWVyX2ZpcnN0bmFtZSkgfHwgJyc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ2xhc3ROYW1lJ10gPSB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5jdXN0b21lcl9sYXN0bmFtZSkgfHwgJyc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ2VtYWlsJ10gPSB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5jdXN0b21lcl9lbWFpbCkgfHwgJyc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ3Bvc3RDb2RlJ10gPSAnJztcclxuXHJcbiAgICAgICAgLy8gQmlsbGluZyBhZGRyZXNzXHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ2JpbGxpbmdBZGRyZXNzJ11bJ2FkZHJlc3MxJ10gPSAodGhpcy5kb2N1bWVudC5iaWxsaW5nX2FkZHJlc3MgJiYgdGhpcy5kb2N1bWVudC5iaWxsaW5nX2FkZHJlc3Muc3RyZWV0KSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcy5zdHJlZXQpIDogJyc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ2JpbGxpbmdBZGRyZXNzJ11bJ2NpdHknXSA9ICh0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcyAmJiB0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcy5jaXR5KSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcy5jaXR5KSA6ICcnO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydjdXN0b21lciddWydiaWxsaW5nQWRkcmVzcyddWydjb3VudHknXSA9ICh0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcyAmJiB0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcy5yZWdpb24pID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuYmlsbGluZ19hZGRyZXNzLnJlZ2lvbikgOiAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnYmlsbGluZ0FkZHJlc3MnXVsncG9zdENvZGUnXSA9ICh0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcyAmJiB0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcy5wb3N0Y29kZSkgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5iaWxsaW5nX2FkZHJlc3MucG9zdGNvZGUpIDogJyc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ2JpbGxpbmdBZGRyZXNzJ11bJ2NvdW50cnknXSA9ICh0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcyAmJiB0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcy5jb3VudHJ5KSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LmJpbGxpbmdfYWRkcmVzcy5jb3VudHJ5KSA6ICcnO1xyXG5cclxuICAgICAgICAvLyBTaGlwcGluZyBhZGRyZXNzXHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ3NoaXBwaW5nQWRkcmVzcyddWydhZGRyZXNzMSddID0gKHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcyAmJiB0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3Muc3RyZWV0KSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3Muc3RyZWV0KSA6ICcnO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydjdXN0b21lciddWydzaGlwcGluZ0FkZHJlc3MnXVsnY2l0eSddID0gKHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcyAmJiB0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MuY2l0eSkgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzLmNpdHkpIDogJyc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2N1c3RvbWVyJ11bJ3NoaXBwaW5nQWRkcmVzcyddWydjb3VudHknXSA9ICh0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MgJiYgdGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzLnJlZ2lvbikgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzLnJlZ2lvbikgOiAnJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnY3VzdG9tZXInXVsnc2hpcHBpbmdBZGRyZXNzJ11bJ3Bvc3RDb2RlJ10gPSAodGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzICYmIHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcy5wb3N0Y29kZSkgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzLnBvc3Rjb2RlKSA6ICcnO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydjdXN0b21lciddWydzaGlwcGluZ0FkZHJlc3MnXVsnY291bnRyeSddID0gKHRoaXMuZG9jdW1lbnQuc2hpcHBpbmdfYWRkcmVzcyAmJiB0aGlzLmRvY3VtZW50LnNoaXBwaW5nX2FkZHJlc3MuY291bnRyeSkgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5zaGlwcGluZ19hZGRyZXNzLmNvdW50cnkpIDogJyc7XHJcblxyXG4gICAgICAgIC8vIGJhc2tldFN1bW1hcnkgXHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0U3VtbWFyeVsnZGlzY291bnRUb3RhbCddID0gTnVtYmVyKHRoaXMuZG9jdW1lbnQuZGlzY291bnRfYW1vdW50ID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuZGlzY291bnRfYW1vdW50KSA6IDApO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFN1bW1hcnlbJ1ZBVFRvdGFsJ10gPSBOdW1iZXIodGhpcy5kb2N1bWVudC5iYXNlX3RvdGFsX3BhaWQgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5iYXNlX3RvdGFsX3BhaWQpIDogMCk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0U3VtbWFyeVsnc2FsZVRvdGFsJ10gPSBOdW1iZXIodGhpcy5kb2N1bWVudC5iYXNlX3RvdGFsX2ludm9pY2VkID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuYmFzZV90b3RhbF9pbnZvaWNlZCkgOiAwKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRTdW1tYXJ5WydiYXNrZXRUb3RhbCddID0gTnVtYmVyKHRoaXMuZG9jdW1lbnQuYmFzZV90b3RhbF9wYWlkID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuYmFzZV90b3RhbF9wYWlkKSA6IDApO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFN1bW1hcnlbJ3RvdGFsSXRlbXMnXSA9IE51bWJlcih0aGlzLmRvY3VtZW50LnRvdGFsX3F0eV9vcmRlcmVkID8gdGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQudG90YWxfcXR5X29yZGVyZWQpIDogMCk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0U3VtbWFyeVsncmVmdW5kVG90YWwnXSA9IE51bWJlcih0aGlzLmRvY3VtZW50LmJhc2VfdG90YWxfcmVmdW5kZWQgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5iYXNlX3RvdGFsX3JlZnVuZGVkKSA6IDApO1xyXG5cclxuICAgICAgICAvLyBiYXNrZXQgbGluZSBkaXNjb3VudFxyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFsnbGluZURpc2NvdW50J10gPSBbXTtcclxuXHJcbiAgICAgICAgbGV0IGxpbmVEaXNjb3VudCA9IHtcclxuICAgICAgICAgICAgaXRlbUxpbmVJZDogKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5pdGVtX2lkKSA/IHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0uaXRlbV9pZCkgOiAwLFxyXG4gICAgICAgICAgICBkaXNjb3VudEFtb3VudDogKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5kaXNjb3VudF9hbW91bnQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0uZGlzY291bnRfYW1vdW50KSkgOiAwXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFsnbGluZURpc2NvdW50J10ucHVzaChsaW5lRGlzY291bnQpO1xyXG5cclxuICAgICAgICAvLyBiYXNrZXQgdHJhbnNhY3Rpb24gZGlzY291bnRcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRbJ3RyYW5zYWN0aW9uRGlzY291bnQnXSA9IFtdO1xyXG5cclxuICAgICAgICBsZXQgdHJhbnNhY3Rpb25EaXNjb3VudCA9IHtcclxuICAgICAgICAgICAgZGlzY291bnRBbW91bnQ6ICh0aGlzLmRvY3VtZW50ICYmIHRoaXMuZG9jdW1lbnQuZGlzY291bnRfYW1vdW50KSA/IE51bWJlcih0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5kaXNjb3VudF9hbW91bnQpKSA6IDBcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0Wyd0cmFuc2FjdGlvbkRpc2NvdW50J10ucHVzaCh0cmFuc2FjdGlvbkRpc2NvdW50KTtcclxuXHJcbiAgICAgICAgLy8gYmFza2V0IHByb2R1Y3RzIFxyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFsncHJvZHVjdHMnXSA9IFtdO1xyXG4gICAgICAgIGxldCBwcm9kdWN0IDogYW55PSB7fTtcclxuICAgICAgICBpZiAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0pIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbSBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0uZm9yRWFjaChlbGVtZW50ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcXR5ID0gdGhpcy5nZXRUZXh0KGVsZW1lbnQucXR5X29yZGVyZWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dChlbGVtZW50LnF0eV9vcmRlcmVkKSkgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCByZWZ1bmRRdHkgPSB0aGlzLmdldFRleHQoZWxlbWVudC5xdHlfcmVmdW5kZWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dChlbGVtZW50LnF0eV9yZWZ1bmRlZCkpIDogMDtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcHJpY2UgPSB0aGlzLmdldFRleHQoZWxlbWVudC5iYXNlX29yaWdpbmFsX3ByaWNlKSA/IE51bWJlcih0aGlzLmdldFRleHQoZWxlbWVudC5iYXNlX29yaWdpbmFsX3ByaWNlKSkgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3QgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAoZWxlbWVudC5uYW1lKSA/IHRoaXMuZ2V0VGV4dChlbGVtZW50Lm5hbWUpIDogJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFNLVTogKGVsZW1lbnQuc2t1KSA/IHRoaXMuZ2V0VGV4dChlbGVtZW50LnNrdSkgOiAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcXVhbnRpdHk6IChlbGVtZW50LnF0eV9vcmRlcmVkKSA/IE51bWJlcih0aGlzLmdldFRleHQoZWxlbWVudC5xdHlfb3JkZXJlZCkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmdW5kZWRRdWFudGl0eTogKGVsZW1lbnQucXR5X3JlZnVuZGVkKSA/IE51bWJlcih0aGlzLmdldFRleHQoZWxlbWVudC5xdHlfcmVmdW5kZWQpKSA6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaWNlOiAoZWxlbWVudC5vcmlnaW5hbF9wcmljZSkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KGVsZW1lbnQub3JpZ2luYWxfcHJpY2UpKSA6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1MaW5lSWQ6IChlbGVtZW50Lml0ZW1faWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dChlbGVtZW50Lml0ZW1faWQpKSA6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvdGFsTGluZVByaWNlOiAoZWxlbWVudC5yb3dfaW52b2ljZWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dChlbGVtZW50LnJvd19pbnZvaWNlZCkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxMaW5lUHJpY2U6ICgocXR5IC0gcmVmdW5kUXR5KSAqIHByaWNlKSxcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb2R1Y3QgJiYgcHJvZHVjdC5wcmljZSAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFsncHJvZHVjdHMnXS5wdXNoKHByb2R1Y3QpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbGV0IHF0eSA9ICh0aGlzLmRvY3VtZW50Lml0ZW1zICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbSAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ucXR5X29yZGVyZWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ucXR5X29yZGVyZWQpKSA6IDA7XHJcbiAgICAgICAgICAgICAgICBsZXQgcmVmdW5kUXR5ID0gKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5xdHlfcmVmdW5kZWQpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ucXR5X3JlZnVuZGVkKSkgOiAwO1xyXG4gICAgICAgICAgICAgICAgbGV0IHByaWNlID0gKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5vcmlnaW5hbF9wcmljZSkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5vcmlnaW5hbF9wcmljZSkpIDogMDtcclxuICAgICAgICAgICAgICAgIHByb2R1Y3QgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICh0aGlzLmRvY3VtZW50Lml0ZW1zICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbSAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ubmFtZSkgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLm5hbWUpIDogJycsXHJcbiAgICAgICAgICAgICAgICAgICAgU0tVOiAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnNrdSkgPyB0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnNrdSkgOiAnJyxcclxuICAgICAgICAgICAgICAgICAgICBxdWFudGl0eTogKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5xdHlfb3JkZXJlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5xdHlfb3JkZXJlZCkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICByZWZ1bmRlZFF1YW50aXR5OiAodGhpcy5kb2N1bWVudC5pdGVtcyAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0gJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnF0eV9yZWZ1bmRlZCkgPyBOdW1iZXIodGhpcy5nZXRUZXh0KHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5xdHlfcmVmdW5kZWQpKSA6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgcHJpY2U6ICh0aGlzLmRvY3VtZW50Lml0ZW1zICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbSAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ub3JpZ2luYWxfcHJpY2UpID8gTnVtYmVyKHRoaXMuZ2V0VGV4dCh0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ub3JpZ2luYWxfcHJpY2UpKSA6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbUxpbmVJZDogKHRoaXMuZG9jdW1lbnQuaXRlbXMgJiYgdGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbS5pdGVtX2lkKSA/IE51bWJlcih0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLml0ZW1faWQpKSA6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdG90YWxMaW5lUHJpY2U6ICh0aGlzLmRvY3VtZW50Lml0ZW1zICYmIHRoaXMuZG9jdW1lbnQuaXRlbXMuaXRlbSAmJiB0aGlzLmRvY3VtZW50Lml0ZW1zLml0ZW0ucm93X2ludm9pY2VkKSA/IE51bWJlcih0aGlzLmdldFRleHQodGhpcy5kb2N1bWVudC5pdGVtcy5pdGVtLnJvd19pbnZvaWNlZCkpIDogMCxcclxuICAgICAgICAgICAgICAgICAgICB0b3RhbExpbmVQcmljZTogKChxdHkgLSByZWZ1bmRRdHkpICogcHJpY2UpLFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHByb2R1Y3QgJiYgcHJvZHVjdC5wcmljZSAhPSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0Wydwcm9kdWN0cyddLnB1c2gocHJvZHVjdCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgZGV2aWNlSWQoZGV2aWNlSWQpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5kZXZpY2VJZCA9IGRldmljZUlkO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHRlcm1pbmFsSWQodGVybWluYWxJZCkge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnRlcm1pbmFsSWQgPSB0ZXJtaW5hbElkO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIG9yZ0NvZGUob3JnQ29kZSkge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0Lm9yZ0NvZGUgPSBvcmdDb2RlO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHN0b3JlSWQoc3RvcmVJZCkge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnN0b3JlSWQgPSBzdG9yZUlkO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHN0b3JlTm9kZUlkKHN0b3JlTm9kZUlkOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5zdG9yZU5vZGVJZCA9IHN0b3JlTm9kZUlkO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHN0b3JlTm9kZVN0cnVjdHVyZShzdG9yZU5vZGVTdHJ1Y3R1cmU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnN0b3JlTm9kZVN0cnVjdHVyZSA9IHN0b3JlTm9kZVN0cnVjdHVyZTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBkb2NJZChkb2NJZCkge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmlkID0gZG9jSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlVXNlcklEKHVzZXJJRDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QudXNlcklkID0gdXNlcklEO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVVzZXJOYW1lKG5hbWUpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC51c2VyTmFtZSA9IG5hbWU7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgYnVpbGQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMud2ViUmV0dXJuT2JqZWN0O1xyXG4gICAgfVxyXG5cclxuICAgIGdldFRleHQob2JqKSB7XHJcbiAgICAgICAgaWYgKG9iaiAmJiBvYmoudGV4dCkge1xyXG4gICAgICAgICAgICByZXR1cm4gb2JqLnRleHQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG9iajtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VVRDRGF0ZVRpbWUoZGF0ZSkge1xyXG4gICAgICAgIGlmIChkYXRlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShkYXRlKS50b0lTT1N0cmluZygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpc0luU3RvcmVPcmRlcigpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5NYXBwZXJCdWlsZGVyQ2xhc3M6IGlzSW5TdG9yZU9yZGVyIG1hcHBpbmcgc3RhcnRlZC4uLlwiKTsgXHJcbiAgICAgICAgaWYodGhpcy5kb2N1bWVudC5wYXltZW50ICYmIHRoaXMuZG9jdW1lbnQucGF5bWVudC5tZXRob2QgJiYgdGhpcy5kb2N1bWVudC5wYXltZW50Lm1ldGhvZCA9PT0gJ3Bvc19vcmRlcicpe1xyXG4gICAgICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5pc0luU3RvcmVPcmRlciA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVybk1hcHBlckJ1aWxkZXJDbGFzczogaXNJblN0b3JlT3JkZXIgbWFwcGluZyBlbmRlZC4uLlwiKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -22,6 +22,7 @@ export class WebReturnSalesforceMapperBuilderClass {
|
|
|
22
22
|
terminalId: "",
|
|
23
23
|
initiatingModule: "",
|
|
24
24
|
export: false,
|
|
25
|
+
isInStoreOrder: false,
|
|
25
26
|
basket: {},
|
|
26
27
|
basketSummary: {},
|
|
27
28
|
baseCurrency: "",
|
|
@@ -462,6 +463,19 @@ export class WebReturnSalesforceMapperBuilderClass {
|
|
|
462
463
|
console.log("Mapper library: WebReturnSalesforceMapperBuilderClass: customer mapping ended...");
|
|
463
464
|
return (/** @type {?} */ (this));
|
|
464
465
|
}
|
|
466
|
+
/**
|
|
467
|
+
* @template THIS
|
|
468
|
+
* @this {THIS}
|
|
469
|
+
* @return {THIS}
|
|
470
|
+
*/
|
|
471
|
+
isInStoreOrder() {
|
|
472
|
+
console.log("Mapper library: WebReturnSalesforceMapperBuilderClass: isInStoreOrder mapping started...");
|
|
473
|
+
if ((/** @type {?} */ (this)).orderDetails.c_isInStoreOrder) {
|
|
474
|
+
(/** @type {?} */ (this)).webReturnObject.isInStoreOrder = true;
|
|
475
|
+
}
|
|
476
|
+
console.log("Mapper library: WebReturnSalesforceMapperBuilderClass: isInStoreOrder mapping ended...");
|
|
477
|
+
return (/** @type {?} */ (this));
|
|
478
|
+
}
|
|
465
479
|
/**
|
|
466
480
|
* @template THIS
|
|
467
481
|
* @this {THIS}
|
|
@@ -666,4 +680,4 @@ if (false) {
|
|
|
666
680
|
*/
|
|
667
681
|
WebReturnSalesforceMapperBuilderClass.prototype.currencyPipe;
|
|
668
682
|
}
|
|
669
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BwbWNyZXRhaWwvbWFwcGVyLWxpYnJhcnkvIiwic291cmNlcyI6WyJsaWIvV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBcUYsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBZ0MsU0FBUyxFQUFtQixnQkFBZ0IsRUFBa0ksTUFBTSx3QkFBd0IsQ0FBQztBQUM3WSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxNQUFNLE9BQU8scUNBQXFDOzs7OztJQWdDOUMsWUFBWSxZQUEwQixFQUMxQixZQUEyQjtRQUEzQixpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQTlCL0Isb0JBQWUsR0FBd0I7WUFDM0MsRUFBRSxFQUFFLEVBQUU7WUFDTixPQUFPLEVBQUUsRUFBRTtZQUNYLE9BQU8sRUFBRSxFQUFFO1lBQ1gsV0FBVyxFQUFFLEVBQUU7WUFDZixrQkFBa0IsRUFBRSxFQUFFO1lBQ3RCLFFBQVEsRUFBRSxFQUFFO1lBQ1osVUFBVSxFQUFFLEVBQUU7WUFDZCxnQkFBZ0IsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsTUFBTSxFQUFFLEVBQUU7WUFDVixhQUFhLEVBQUUsRUFBRTtZQUNqQixZQUFZLEVBQUUsRUFBRTtZQUNoQixRQUFRLEVBQUU7Z0JBQ04sRUFBRSxFQUFFLEVBQUU7Z0JBQ04sS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osY0FBYyxFQUFFLEVBQUU7Z0JBQ2xCLGVBQWUsRUFBRSxFQUFFO2dCQUNuQixlQUFlLEVBQUUsRUFBRTtnQkFDbkIsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osa0JBQWtCLEVBQUUsS0FBSzthQUM1QjtZQUNELHlCQUF5QixFQUFFLG1CQUFBLEVBQUUsRUFBNkI7U0FDN0QsQ0FBQTtRQU1HLElBQUksWUFBWSxFQUFFO1lBQ2QsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7U0FDcEM7UUFDRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRSxDQUFDOzs7Ozs7SUFFRCxxQkFBcUI7UUFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5RkFBeUYsQ0FBQyxDQUFDO1FBQ3ZHLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUM7UUFDNUQsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHLG1CQUFBLElBQUksRUFBQSxDQUFDLGNBQWMsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEYsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFlBQVksR0FBRyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1FBQy9ELG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDO1FBQ3hDLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25DLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUM7UUFDbEUsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFNBQVMsR0FBRyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxjQUFjLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RGLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEdBQUcsbUJBQUEsSUFBSSxFQUFBLENBQUMsY0FBYyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0RixtQkFBQSxJQUFJLEVBQUEsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEdBQUcsbUJBQUEsSUFBSSxFQUFBLENBQUMsY0FBYyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3RixtQkFBQSxJQUFJLEVBQUEsQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQUMsR0FBRyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1FBQzNFLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUZBQXVGLENBQUMsQ0FBQztRQUNyRyxPQUFPLG1CQUFBLElBQUksRUFBQSxDQUFDO0lBQ2hCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQXVCRCxpQkFBaUI7UUFDYixJQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7O2tCQUNoRSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJOzs7O1lBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFDO1lBQ2hHLElBQUcsbUJBQW1CO2dCQUFFLE9BQU8sZ0JBQWdCLENBQUMsYUFBYSxDQUFDOztnQkFDekQsT0FBTyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUM7U0FDekM7YUFBTTtZQUNILE9BQU8sRUFBRSxDQUFDO1NBQ2I7SUFDTCxDQUFDOzs7Ozs7SUFFRCxPQUFPO1FBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtRkFBbUYsQ0FBQyxDQUFDO1FBQ2pHLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzdDLElBQUksbUJBQUEsSUFBSSxFQUFBLENBQUMsWUFBWSxDQUFDLGFBQWEsSUFBSSxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDL0UsbUJBQUEsSUFBSSxFQUFBLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxPQUFPOzs7OztZQUNuQyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRTs7c0JBQ1QsVUFBVSxHQUFHO29CQUNmLFdBQVcsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUN2RCxHQUFHLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDakQsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2pELGdCQUFnQixFQUFFLENBQUM7b0JBQ25CLEtBQUssRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNsRCxVQUFVLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO29CQUNsQyxjQUFjLEVBQUUsbUJBQUEsSUFBSSxFQUFBLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLEVBQUU7b0JBQ25ELGNBQWMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNwRDtnQkFDRCxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsRUFBRTtvQkFDL0IsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQzVEO1lBQ0wsQ0FBQyxFQUNKLENBQUM7U0FDTDtRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsaUZBQWlGLENBQUMsQ0FBQztRQUMvRixPQUFPLG1CQUFBLElBQUksRUFBQSxDQUFDO0lBQ2hCLENBQUM7Ozs7OztJQUVELGFBQWE7UUFDVCxPQUFPLENBQUMsR0FBRyxDQUFDLHlGQUF5RixDQUFDLENBQUM7UUFDdkcsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsbUJBQUEsRUFBRSxFQUFvQixDQUFDOztZQUMvRCxrQkFBa0IsR0FBRyxtQkFBQSxFQUFFLEVBQW9CO1FBQy9DLElBQUksbUJBQUEsSUFBSSxFQUFBLENBQUMsWUFBWSxDQUFDLGFBQWEsSUFBSSxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDL0UsbUJBQUEsSUFBSSxFQUFBLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxPQUFPOzs7OztZQUNuQyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDZixPQUFPLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN6QyxJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsSUFBSSxPQUFPLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDbkUsT0FBTyxDQUFDLGlCQUFpQixDQUFDLE9BQU87Ozs7b0JBQzdCLENBQUMsU0FBUyxFQUFFLEVBQUU7d0JBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUU7O2dDQUNwQixnQkFBZ0IsR0FBRyxtQkFBQSxFQUFFLEVBQWtCOztnQ0FDdkMsT0FBTyxHQUFHLG1CQUFBLEVBQUUsRUFBVzs0QkFDM0IsT0FBTyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDOzRCQUNyQyxPQUFPLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDM0QsZ0JBQWdCLENBQUMsT0FBTyxHQUFHLG1CQUFBLEVBQUUsRUFBYSxDQUFDOzRCQUMzQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDOzRCQUV2QyxnQkFBZ0IsQ0FBQyxVQUFVLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQzs0QkFDeEMsZ0JBQWdCLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzs0QkFDcEYsZ0JBQWdCLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzs0QkFDOUUsZ0JBQWdCLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsSUFBSSxTQUFTLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7NEJBQ3RJLGdCQUFnQixDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUNuRixnQkFBZ0IsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBRSxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQSxFQUFFLENBQUMsQ0FBQzs0QkFDekgsZ0JBQWdCLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzs0QkFDaEYsZ0JBQWdCLENBQUMsa0JBQWtCLEdBQUcsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQzs0QkFDaEYsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7eUJBQzdDO29CQUNMLENBQUMsRUFDSixDQUFDO2lCQUNMO1lBQ0wsQ0FBQyxFQUNKLENBQUM7U0FDTDtRQUNELG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsYUFBYSxHQUFHLGtCQUFrQixDQUFDO1FBQy9ELE9BQU8sQ0FBQyxHQUFHLENBQUMsdUZBQXVGLENBQUMsQ0FBQztRQUNyRyxPQUFPLG1CQUFBLElBQUksRUFBQSxDQUFDO0lBQ2hCLENBQUM7Ozs7OztJQUVELG9CQUFvQjtRQUNoQixPQUFPLENBQUMsR0FBRyxDQUFDLGdHQUFnRyxDQUFDLENBQUM7O1lBRTFHLHlCQUF5QixHQUFHLG1CQUFBLElBQUksRUFBQSxDQUFDLHdCQUF3QixDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFlBQVksQ0FBQztRQUVoRixtQkFBQSxJQUFJLEVBQUEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLG9CQUFvQixHQUFHLHlCQUF5QixDQUFDO1FBQzdFLE9BQU8sQ0FBQyxHQUFHLENBQUMsOEZBQThGLENBQUMsQ0FBQztRQUM1RyxPQUFPLG1CQUFBLElBQUksRUFBQSxDQUFDO0lBQ2hCLENBQUM7Ozs7O0lBRUQsd0JBQXdCLENBQUMsTUFBTTtRQUMzQixJQUFJOztnQkFDSSx5QkFBeUIsR0FBRyxtQkFBQSxFQUFFLEVBQTBCO1lBQzVELElBQUksTUFBTSxDQUFDLHVCQUF1QixJQUFJLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUM3RSxNQUFNLENBQUMsdUJBQXVCLENBQUMsT0FBTzs7OztnQkFDbEMsQ0FBQyxvQkFBb0IsRUFBRSxFQUFFOzt3QkFDakIsdUJBQXVCLEdBQUcsbUJBQUEsRUFBRSxFQUF3QjtvQkFFeEQsdUJBQXVCLENBQUMsV0FBVyxHQUFHLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQzNHLHVCQUF1QixDQUFDLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBRSxTQUFTLENBQUEsQ0FBQyxDQUFBLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQzNLLHVCQUF1QixDQUFDLGVBQWUsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDaEgsdUJBQXVCLENBQUMsV0FBVyxHQUFHLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ2pILHVCQUF1QixDQUFDLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUM3Ryx1QkFBdUIsQ0FBQyxhQUFhLEdBQUcsb0JBQW9CLENBQUMsZ0JBQWdCLElBQUksb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDOUssdUJBQXVCLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEdBQUc7Ozs7O29CQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBQyxDQUFDO29CQUN6RyxJQUFJLG9CQUFvQixDQUFDLFdBQVcsRUFBRTt3QkFDbEMsdUJBQXVCLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUM7d0JBQ3JELHVCQUF1QixDQUFDLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxXQUFXLENBQUM7d0JBQ3RFLHVCQUF1QixDQUFDLFlBQVksR0FBRyxlQUFlLENBQUMsV0FBVyxDQUFDO3FCQUN0RTtvQkFDRCx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztnQkFDNUQsQ0FBQyxFQUNKLENBQUM7YUFDTDtZQUdELE9BQU8sQ0FBQyxHQUFHLENBQUMsb0ZBQW9GLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7WUFDN0ksT0FBTyx5QkFBeUIsQ0FBQztTQUNwQztRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQyxpRUFBaUUsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0RixPQUFPLENBQUMsR0FBRyxDQUFDLGlFQUFpRSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN0RyxNQUFNLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFCO0lBQ0wsQ0FBQzs7Ozs7O0lBRUQsNkJBQTZCO1FBQ3pCLElBQUk7O2dCQUVJLG9CQUFvQixHQUFHLG1CQUFBLEVBQUUsRUFBd0I7O2dCQUNqRCxnQkFBZ0IsR0FBRyxtQkFBQSxFQUFFLEVBQWE7WUFDdEMsSUFBSSxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsYUFBYSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDL0UsbUJBQUEsSUFBSSxFQUFBLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxPQUFPOzs7OztnQkFDbkMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUU7b0JBQ2YsT0FBTyxDQUFDLE9BQU8sR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFFekMsSUFBSSxPQUFPLENBQUMsaUJBQWlCLElBQUksT0FBTyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7d0JBQ25FLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPOzs7O3dCQUM3QixDQUFDLFNBQVMsRUFBRSxFQUFFOzRCQUNWLElBQUksU0FBUyxDQUFDLFdBQVcsRUFBRTs7b0NBQ25CLE9BQU8sR0FBRyxtQkFBQSxFQUFFLEVBQVc7Z0NBQzNCLE9BQU8sQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztnQ0FDckMsT0FBTyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0NBQzNELE9BQU8sQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dDQUNoRSxPQUFPLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0NBQzFFLE9BQU8sQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dDQUM1RSxPQUFPLENBQUMseUJBQXlCLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dDQUNuRixPQUFPLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUM7Z0NBQzdDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzs2QkFDbEM7d0JBQ0wsQ0FBQyxFQUNKLENBQUM7cUJBQ0w7Z0JBQ0wsQ0FBQyxFQUNKLENBQUM7YUFDTDtZQUVELElBQUksZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDN0Isb0JBQW9CLENBQUMsV0FBVyxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDO2dCQUNqRixvQkFBb0IsQ0FBQyxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO2dCQUMvRCxvQkFBb0IsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLE1BQU07Ozs7O2dCQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsZUFBZSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxlQUFlLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEgsb0JBQW9CLENBQUMsV0FBVyxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztnQkFDbkUsb0JBQW9CLENBQUMsYUFBYSxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDO2dCQUNuRixvQkFBb0IsQ0FBQyxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDO2dCQUNyRSxvQkFBb0IsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO2dCQUN0QyxvQkFBb0IsQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQztnQkFDbEQsb0JBQW9CLENBQUMsWUFBWSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUM7Z0JBQ3pELG9CQUFvQixDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQzthQUNuRDtZQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztZQUM5QyxPQUFPLENBQUMsR0FBRyxDQUFDLHlDQUF5QyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO1lBRTdGLElBQUksQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFHO2dCQUNwRCxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQzthQUN6RDtZQUVELElBQUksb0JBQW9CLElBQUksb0JBQW9CLENBQUMsV0FBVyxFQUFHO2dCQUMvRCxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2FBQzNFO1lBRUQsT0FBTyxtQkFBQSxJQUFJLEVBQUEsQ0FBQztTQUNmO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLHNEQUFzRCxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzNFLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0RBQXNELEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzNGLE1BQU0sSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUI7SUFDTCxDQUFDOzs7Ozs7SUFFRCxvQ0FBb0M7UUFDaEMsSUFBSSxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLG9CQUFvQixJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUVqSCxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLE9BQU87Ozs7WUFBQyxFQUFFLENBQUMsRUFBRTtnQkFDckQsbUJBQUEsSUFBSSxFQUFBLENBQUMsc0NBQXNDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxFQUFHLEVBQUUsQ0FBQyxDQUFBO1lBQy9FLENBQUMsRUFBQyxDQUFBO1NBQ0w7UUFDRCxPQUFPLG1CQUFBLElBQUksRUFBQSxDQUFDO0lBQ2hCLENBQUM7Ozs7OztJQUVELHNDQUFzQyxDQUNsQyxLQUEwQixFQUMxQixTQUErQjtRQUUvQixPQUFPLENBQUMsR0FBRyxDQUNQLHlFQUF5RSxJQUFJLENBQUMsU0FBUyxDQUNuRixTQUFTLENBQ1osRUFBRSxDQUNOLENBQUM7UUFDRixJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUMsWUFBWSxLQUFLLGVBQWUsQ0FBQyxJQUFJLEVBQUU7WUFDN0YsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTzs7OztZQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3RDLE9BQU8sR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBRXBELElBQUksU0FBUyxDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ25ELFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTzs7OztvQkFBQyxDQUFDLENBQUMsRUFBRSxFQUFFO3dCQUM1QixJQUFJLENBQUMsQ0FBQyxVQUFVLEtBQUssT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRTs0QkFDaEQsT0FBTyxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLENBQUMsZUFBZSxDQUFDO3lCQUNuRTtvQkFDTCxDQUFDLEVBQUMsQ0FBQztpQkFDTjtZQUNMLENBQUMsRUFBQyxDQUFDO1NBQ047YUFDSTtZQUNELEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU87Ozs7WUFBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUN0QyxPQUFPLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNwRCxJQUFJLFNBQVMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFOzswQkFDL0MsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLElBQUk7Ozs7b0JBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsVUFBVSxLQUFLLE9BQU8sQ0FBQyxHQUFHLEVBQUM7OzBCQUN6RywyQkFBMkIsR0FBRyxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMseUJBQXlCLElBQUksV0FBVyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQzt3QkFDbEksQ0FBQyxXQUFXLENBQUMseUJBQXlCLEdBQUcsV0FBVyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3hGLE9BQU8sQ0FBQyxhQUFhLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO2lCQUNySDtZQUNMLENBQUMsRUFBQyxDQUFDO1NBQ047UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzs7OztJQUdRLDJCQUEyQixDQUFDLE9BQWlCO1FBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO1lBQzFCLE9BQU8sQ0FBQyxhQUFhLEdBQUc7Z0JBQ3RCLG1CQUFtQixFQUFFLENBQUM7Z0JBQ3RCLG9CQUFvQixFQUFFLENBQUM7Z0JBQ3ZCLGFBQWEsRUFBRSxDQUFDO2FBQ2pCLENBQUM7U0FDSDtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Ozs7OztJQUdILFFBQVE7UUFDSixPQUFPLENBQUMsR0FBRyxDQUFDLG9GQUFvRixDQUFDLENBQUM7O1lBQzlGLFdBQVcsR0FBRyxtQkFBQSxFQUFFLEVBQVk7UUFDaEMsV0FBVyxDQUFDLEtBQUssR0FBRyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsYUFBYSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzFJLFdBQVcsQ0FBQyxTQUFTLEdBQUcsbUJBQUEsSUFBSSxFQUFBLENBQUMsWUFBWSxDQUFDLGVBQWUsSUFBSSxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM5SixXQUFXLENBQUMsUUFBUSxHQUFHLG1CQUFBLElBQUksRUFBQSxDQUFDLFlBQVksQ0FBQyxlQUFlLElBQUksbUJBQUEsSUFBSSxFQUFBLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7O1lBRXZKLGVBQWUsR0FBRyxtQkFBQSxFQUFFLEVBQWE7UUFDckMsbUJBQUEsSUFBSSxFQUFBLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxPQUFPOzs7O1FBQy9CLFFBQVEsQ0FBQyxFQUFFOztnQkFDSCxrQkFBa0IsR0FBRyxtQkFBQSxFQUFFLEVBQVc7WUFDdEMsa0JBQWtCLENBQUMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdEgsa0JBQWtCLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbkosa0JBQWtCLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDeEksa0JBQWtCLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDNUgsa0JBQWtCLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNoQyxrQkFBa0IsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM5SSxlQUFlLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDN0MsQ0FBQyxFQUNKLENBQUE7UUFDRCxXQUFXLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQzs7WUFFMUMsY0FBYyxHQUFHLG1CQUFBLEVBQUUsRUFBYTs7WUFDaEMsaUJBQWlCLEdBQUcsbUJBQUEsRUFBRSxFQUFXO1FBQ3JDLGlCQUFpQixDQUFDLEVBQUUsR0FBRyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzdJLGlCQUFpQixDQUFDLFdBQVcsR0FBRyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzFLLGlCQUFpQixDQUFDLFFBQVEsR0FBRyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9KLGlCQUFpQixDQUFDLElBQUksR0FBRyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsZUFBZSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ25KLGlCQUFpQixDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDL0IsaUJBQWlCLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNoQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdkMsV0FBVyxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7O1lBRXhDLGVBQWUsR0FBRyxtQkFBQSxFQUFFLEVBQXFCO1FBQzdDLG1CQUFBLElBQUksRUFBQSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsT0FBTzs7OztRQUMvQixRQUFRLENBQUMsRUFBRTs7Z0JBQ0gsa0JBQWtCLEdBQUcsbUJBQUEsRUFBRSxFQUFtQjtZQUM5QyxrQkFBa0IsQ0FBQyxFQUFFLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3pFLGtCQUFrQixDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDcEYsZUFBZSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzdDLENBQUMsRUFDSixDQUFDO1FBQ0YsV0FBVyxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7UUFFOUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7UUFDNUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrRkFBa0YsQ0FBQyxDQUFDO1FBQ2hHLE9BQU8sbUJBQUEsSUFBSSxFQUFBLENBQUM7SUFDaEIsQ0FBQzs7Ozs7O0lBRUQsMEJBQTBCO1FBQ3RCLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0dBQXNHLENBQUMsQ0FBQzs7WUFDaEgsMEJBQTBCLEdBQUcsbUJBQUEsRUFBRSxFQUFnQztRQUNuRSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFlBQVksQ0FBQyxTQUFTLElBQUksbUJBQUEsSUFBSSxFQUFBLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZFLG1CQUFBLElBQUksRUFBQSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsT0FBTzs7OztZQUMvQixRQUFRLENBQUMsRUFBRTs7b0JBQ0gsNkJBQTZCLEdBQUcsbUJBQUEsRUFBRSxFQUE4Qjs7b0JBQ2hFLGVBQWUsR0FBRyxtQkFBQSxFQUFFLEVBQW1CO2dCQUMzQyw2QkFBNkIsQ0FBQyxRQUFRLEdBQUcsbUJBQUEsSUFBSSxFQUFBLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN0Ryw2QkFBNkIsQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQztnQkFDbEUsZUFBZSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsZUFBZSxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN4SCxlQUFlLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN0Riw2QkFBNkIsQ0FBQyxPQUFPLEdBQUcsZUFBZSxDQUFDO2dCQUN4RCwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQztZQUNuRSxDQUFDLEVBQ0osQ0FBQztTQUNMO1FBQ0QsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLDBCQUEwQixHQUFHLDBCQUEwQixDQUFDO1FBQzdFLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0dBQW9HLENBQUMsQ0FBQztRQUNsSCxPQUFPLG1CQUFBLElBQUksRUFBQSxDQUFDO0lBQ2hCLENBQUM7Ozs7OztJQUVELGFBQWE7UUFDVCxPQUFPLENBQUMsR0FBRyxDQUFDLHlGQUF5RixDQUFDLENBQUM7O1lBQ25HLGFBQWEsR0FBRyxtQkFBQSxFQUFFLEVBQWlCOztZQUNuQyxxQkFBcUIsR0FBRyxtQkFBQSxFQUFFLEVBQXdCOztjQUNoRCxrQkFBa0IsR0FBRyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHOzs7O1FBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFDLENBQUMsTUFBTTs7Ozs7UUFBQyxDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxZQUFZLEdBQUUsQ0FBQyxDQUFDOztjQUN2TCx5QkFBeUIsR0FBRyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEdBQUc7Ozs7UUFBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsZUFBZSxFQUFDLENBQUMsTUFBTTs7Ozs7UUFBQyxDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsRUFBRSxDQUFDLFdBQVcsR0FBRyxZQUFZLEdBQUUsQ0FBQyxDQUFDO1FBQ3pOLGFBQWEsQ0FBQyxhQUFhLEdBQUcsa0JBQWtCLEdBQUcseUJBQXlCLENBQUM7UUFDN0UsYUFBYSxDQUFDLFFBQVEsR0FBRyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkYsYUFBYSxDQUFDLFNBQVMsR0FBRyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUYsYUFBYSxDQUFDLFdBQVcsR0FBRyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUYsYUFBYSxDQUFDLFVBQVUsR0FBRyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsYUFBYSxJQUFJLG1CQUFBLElBQUksRUFBQSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0SixhQUFhLENBQUMsYUFBYSxHQUFHLG1CQUFBLElBQUksRUFBQSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLG1CQUFBLElBQUksRUFBQSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RyxhQUFhLENBQUMsNEJBQTRCLEdBQUcsbUJBQUEsSUFBSSxFQUFBLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9HLHFCQUFxQixDQUFDLGFBQWEsR0FBRyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUcscUJBQXFCLENBQUMsNEJBQTRCLEdBQUcsbUJBQUEsSUFBSSxFQUFBLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsbUJBQUEsSUFBSSxFQUFBLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZILGFBQWEsQ0FBQyxRQUFRLEdBQUcscUJBQXFCLENBQUM7UUFDL0MsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1RkFBdUYsQ0FBQyxDQUFDO1FBQ3JHLE9BQU8sbUJBQUEsSUFBSSxFQUFBLENBQUM7SUFDaEIsQ0FBQzs7Ozs7OztJQUVELFFBQVEsQ0FBQyxRQUFRO1FBQ2IsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekMsT0FBTyxtQkFBQSxJQUFJLEVBQUEsQ0FBQztJQUNoQixDQUFDOzs7Ozs7O0lBRUQsVUFBVSxDQUFDLFVBQVU7UUFDakIsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0MsT0FBTyxtQkFBQSxJQUFJLEVBQUEsQ0FBQztJQUNoQixDQUFDOzs7Ozs7O0lBRUQsT0FBTyxDQUFDLE9BQU87UUFDWCxtQkFBQSxJQUFJLEVBQUEsQ0FBQyxlQUFlLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QyxPQUFPLG1CQUFBLElBQUksRUFBQSxDQUFDO0lBQ2hCLENBQUM7Ozs7Ozs7SUFFRCxPQUFPLENBQUMsT0FBTztRQUNYLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZDLE9BQU8sbUJBQUEsSUFBSSxFQUFBLENBQUM7SUFDaEIsQ0FBQzs7Ozs7OztJQUVELFdBQVcsQ0FBQyxXQUFtQjtRQUMzQixtQkFBQSxJQUFJLEVBQUEsQ0FBQyxlQUFlLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQyxPQUFPLG1CQUFBLElBQUksRUFBQSxDQUFDO0lBQ2hCLENBQUM7Ozs7Ozs7SUFFRCxrQkFBa0IsQ0FBQyxrQkFBMEI7UUFDekMsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO1FBQzdELE9BQU8sbUJBQUEsSUFBSSxFQUFBLENBQUM7SUFDaEIsQ0FBQzs7Ozs7OztJQUVELEtBQUssQ0FBQyxLQUFLO1FBQ1AsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDaEMsT0FBTyxtQkFBQSxJQUFJLEVBQUEsQ0FBQztJQUNoQixDQUFDOzs7Ozs7O0lBRUQsWUFBWSxDQUFDLE1BQWM7UUFDdkIsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckMsT0FBTyxtQkFBQSxJQUFJLEVBQUEsQ0FBQztJQUNoQixDQUFDOzs7Ozs7O0lBRUQsY0FBYyxDQUFDLElBQUk7UUFDZixtQkFBQSxJQUFJLEVBQUEsQ0FBQyxlQUFlLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQyxPQUFPLG1CQUFBLElBQUksRUFBQSxDQUFDO0lBQ2hCLENBQUM7Ozs7SUFFRCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3RUFBd0UsQ0FBQyxDQUFDO1FBQ3RGLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDOzs7OztJQUVELGNBQWMsQ0FBQyxJQUFJO1FBQ2YsSUFBSSxJQUFJLEVBQUU7WUFDTixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3ZDO0lBQ0wsQ0FBQztDQUNKOzs7Ozs7SUFqZEcsNkRBQW1DOzs7OztJQUNuQyxnRUEwQkM7O0lBQ0Qsa0VBQXVCOzs7OztJQUduQiw2REFBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXJyZW5jeVBpcGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IEFkZHJlc3MsIEJhc2tldFN1bW1hcnksIEJhc2tldFN1bW1hcnlEZXRhaWxzLCBDdXJyZW50VHJhbnNhY3Rpb25EZXRhaWxzLCBDdXN0b21lciwgREVMSVZFUllfTUVUSE9EUywgUFJPTU9USU9OX0xFVkVMLCBQUk9NT1RJT05fVFlQRSwgSU5JVElBVElOR19NT0RVTEUsIExpbmVQcm9tb3Rpb25zLCBPcmRlckRldGFpbHMsIFBST1ZJREVSUywgU2hpcG1lbnREZXRhaWxzLCBUUkFOU0FDVElPTl9UWVBFLCBUcmFuc2FjdGlvbkRvY3VtZW50LCBUcmFuc2FjdGlvbkluZm8sIFRyYW5zYWN0aW9uUHJvbW90aW9uLCBUcmlnZ2VyLCBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscywgVFByb2R1Y3QsIFJlZnVuZFByb2R1Y3RDaGFuZ2UgfSBmcm9tIFwiLi9tYXBwZXItbGlicmFyeS5tb2RlbFwiO1xyXG5pbXBvcnQgeyBOdW1iZXJVdGlsU2VydmljZSB9IGZyb20gXCIuL251bWJlci11dGlsLnNlcnZpY2VcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzIHtcclxuXHJcbiAgICBwcml2YXRlIG9yZGVyRGV0YWlsczogT3JkZXJEZXRhaWxzO1xyXG4gICAgcHJpdmF0ZSB3ZWJSZXR1cm5PYmplY3Q6IFRyYW5zYWN0aW9uRG9jdW1lbnQgPSB7XHJcbiAgICAgICAgaWQ6ICcnLFxyXG4gICAgICAgIG9yZ0NvZGU6IFwiXCIsXHJcbiAgICAgICAgc3RvcmVJZDogXCJcIixcclxuICAgICAgICBzdG9yZU5vZGVJZDogXCJcIixcclxuICAgICAgICBzdG9yZU5vZGVTdHJ1Y3R1cmU6IFwiXCIsXHJcbiAgICAgICAgZGV2aWNlSWQ6IFwiXCIsXHJcbiAgICAgICAgdGVybWluYWxJZDogXCJcIixcclxuICAgICAgICBpbml0aWF0aW5nTW9kdWxlOiBcIlwiLFxyXG4gICAgICAgIGV4cG9ydDogZmFsc2UsXHJcbiAgICAgICAgYmFza2V0OiB7fSxcclxuICAgICAgICBiYXNrZXRTdW1tYXJ5OiB7fSxcclxuICAgICAgICBiYXNlQ3VycmVuY3k6IFwiXCIsXHJcbiAgICAgICAgY3VzdG9tZXI6IHtcclxuICAgICAgICAgICAgaWQ6ICcnLFxyXG4gICAgICAgICAgICBlbWFpbDogJycsXHJcbiAgICAgICAgICAgIGZpcnN0TmFtZTogJycsXHJcbiAgICAgICAgICAgIGxhc3ROYW1lOiAnJyxcclxuICAgICAgICAgICAgYmlsbGluZ0FkZHJlc3M6IFtdLFxyXG4gICAgICAgICAgICBzaGlwcGluZ0FkZHJlc3M6IFtdLFxyXG4gICAgICAgICAgICBzaGlwbWVudERldGFpbHM6IFtdLFxyXG4gICAgICAgICAgICB0ZWxlcGhvbmU6ICcnLFxyXG4gICAgICAgICAgICBwb3N0Q29kZTogJycsXHJcbiAgICAgICAgICAgIG5vQ3VzdG9tZXJTZWxlY3RlZDogZmFsc2VcclxuICAgICAgICB9LFxyXG4gICAgICAgIGN1cnJlbnRUcmFuc2FjdGlvbkRldGFpbHM6IHt9IGFzIEN1cnJlbnRUcmFuc2FjdGlvbkRldGFpbHNcclxuICAgIH1cclxuICAgIG51bWJlclV0aWxTZXJ2aWNlOiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3JkZXJEZXRhaWxzOiBPcmRlckRldGFpbHMsXHJcbiAgICAgICAgcHJpdmF0ZSBjdXJyZW5jeVBpcGU/OiBDdXJyZW5jeVBpcGVcclxuICAgICAgICApIHtcclxuICAgICAgICBpZiAob3JkZXJEZXRhaWxzKSB7XHJcbiAgICAgICAgICAgIHRoaXMub3JkZXJEZXRhaWxzID0gb3JkZXJEZXRhaWxzO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm51bWJlclV0aWxTZXJ2aWNlID0gbmV3IE51bWJlclV0aWxTZXJ2aWNlKGN1cnJlbmN5UGlwZSk7XHJcbiAgICB9XHJcblxyXG4gICAgd2ViUmV0dXJuQ29tbW9uTWFwcGVyKCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IHdlYlJldHVybkNvbW1vbk1hcHBlciBzdGFydGVkLi4uXCIpO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0Wyd0eXBlJ10gPSBUUkFOU0FDVElPTl9UWVBFLldFQl9SRVRVUk5TO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydkYXRldGltZSddID0gdGhpcy5nZXRVVENEYXRlVGltZSh0aGlzLm9yZGVyRGV0YWlscy5sYXN0X21vZGlmaWVkKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNlQ3VycmVuY3kgPSB0aGlzLm9yZGVyRGV0YWlscy5jdXJyZW5jeTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5zdWJzaWRpYXJ5SWQgPSAnMSc7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuZXhwb3J0ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5pbml0aWF0aW5nTW9kdWxlID0gSU5JVElBVElOR19NT0RVTEUuRUJBU0tFVDtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5jcmVhdGVkQXQgPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMub3JkZXJEZXRhaWxzLmNyZWF0aW9uX2RhdGUpO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnVwZGF0ZWRBdCA9IHRoaXMuZ2V0VVRDRGF0ZVRpbWUodGhpcy5vcmRlckRldGFpbHMubGFzdF9tb2RpZmllZCk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QudHJhbnNDb21wbGV0ZWRBdCA9IHRoaXMuZ2V0VVRDRGF0ZVRpbWUodGhpcy5vcmRlckRldGFpbHMubGFzdF9tb2RpZmllZCk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2V4dGVybmFsVHJhbnNhY3Rpb25JZCddID0gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfbm87XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogd2ViUmV0dXJuQ29tbW9uTWFwcGVyIGVuZGVkLi4uXCIpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGV4cG9ydChzdGF0dXMsIGRldGFpbHMpIHtcclxuICAgIC8vICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBleHBvcnQgbWFwcGluZyBzdGFydGVkLi4uXCIpO1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IHN0YXR1czpcIiwgc3RhdHVzKTtcclxuICAgIC8vICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBkZXRhaWxzOlwiLCBKU09OLnN0cmluZ2lmeShkZXRhaWxzKSk7XHJcbiAgICAvLyAgICAgaWYgKHN0YXR1cyAmJiBkZXRhaWxzICYmIGRldGFpbHMucHJvdmlkZXJzICYmIGRldGFpbHMucHJvdmlkZXJzLmxlbmd0aCA+IDApIHtcclxuICAgIC8vICAgICAgICAgZGV0YWlscy5wcm92aWRlcnMuZm9yRWFjaChcclxuICAgIC8vICAgICAgICAgICAgIHByb3ZpZGVyT2JqID0+IHtcclxuICAgIC8vICAgICAgICAgICAgICAgICBpZiAocHJvdmlkZXJPYmoucHJvdmlkZXIgJiYgcHJvdmlkZXJPYmoucHJvdmlkZXIgPT09IFBST1ZJREVSUy5TQUxFU0ZPUkNFKSB7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmV4cG9ydCA9IHRydWU7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuZXhwb3J0ID0gZmFsc2U7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgICApO1xyXG4gICAgLy8gICAgIH0gZWxzZSB7XHJcbiAgICAvLyAgICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmV4cG9ydCA9IGZhbHNlO1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBleHBvcnQgbWFwcGluZyBlbmQuLi5cIilcclxuICAgIC8vICAgICByZXR1cm4gdGhpcztcclxuICAgIC8vIH1cclxuXHJcbiAgICBnZXREZWxpdmVyeU1ldGhvZCgpIHtcclxuICAgICAgICBpZih0aGlzLm9yZGVyRGV0YWlscy5zaGlwbWVudHMgJiYgdGhpcy5vcmRlckRldGFpbHMuc2hpcG1lbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3Qgc2hpcFRvU3RvcmVTaGlwbWVudCA9IHRoaXMub3JkZXJEZXRhaWxzLnNoaXBtZW50cy5maW5kKHNoaXBtZW50ID0+IHNoaXBtZW50LmNfZnJvbVN0b3JlSWQpO1xyXG4gICAgICAgICAgICBpZihzaGlwVG9TdG9yZVNoaXBtZW50KSByZXR1cm4gREVMSVZFUllfTUVUSE9EUy5TSElQX1RPX1NUT1JFO1xyXG4gICAgICAgICAgICBlbHNlIHJldHVybiBERUxJVkVSWV9NRVRIT0RTLkRFTElWRVJZO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvZHVjdCgpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBwcm9kdWN0IG1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRbJ3Byb2R1Y3RzJ10gPSBbXTtcclxuICAgICAgICBpZiAodGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcyAmJiB0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcy5mb3JFYWNoKFxyXG4gICAgICAgICAgICAgICAgKHByb2R1Y3QsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvZHVjdE9iaiA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHByb2R1Y3QuaXRlbV90ZXh0ID8gcHJvZHVjdC5pdGVtX3RleHQgOiAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgU0tVOiBwcm9kdWN0LnByb2R1Y3RfaWQgPyBwcm9kdWN0LnByb2R1Y3RfaWQgOiAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcXVhbnRpdHk6IHByb2R1Y3QucXVhbnRpdHkgPyBwcm9kdWN0LnF1YW50aXR5IDogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmdW5kZWRRdWFudGl0eTogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJpY2U6IHByb2R1Y3QuYmFzZV9wcmljZSA/IHByb2R1Y3QuYmFzZV9wcmljZSA6IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1MaW5lSWQ6IChpbmRleCArIDEpLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGl2ZXJ5TWV0aG9kOiB0aGlzLmdldERlbGl2ZXJ5TWV0aG9kKCkudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxMaW5lUHJpY2U6IHByb2R1Y3QucHJpY2UgPyBwcm9kdWN0LnByaWNlIDogMFxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAocHJvZHVjdCAmJiBwcm9kdWN0LnByaWNlICE9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0Wydwcm9kdWN0cyddLnB1c2gocHJvZHVjdE9iaik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBwcm9kdWN0IG1hcHBpbmcgZW5kZWQuLi5cIik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgbGluZVByb21vdGlvbigpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBsaW5lUHJvbW90aW9uIG1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXQubGluZVByb21vdGlvbiA9IFtdIGFzIExpbmVQcm9tb3Rpb25zW107XHJcbiAgICAgICAgbGV0IGxpbmVQcm9tb3Rpb25BcnJheSA9IFtdIGFzIExpbmVQcm9tb3Rpb25zW107XHJcbiAgICAgICAgaWYgKHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMgJiYgdGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMuZm9yRWFjaChcclxuICAgICAgICAgICAgICAgIChwcm9kdWN0LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3QuaXRlbV9pZCA9IChpbmRleCArIDEpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb2R1Y3QucHJpY2VfYWRqdXN0bWVudHMgJiYgcHJvZHVjdC5wcmljZV9hZGp1c3RtZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QucHJpY2VfYWRqdXN0bWVudHMuZm9yRWFjaChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9tb3Rpb24pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXByb21vdGlvbi5jb3Vwb25fY29kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGluZVByb21vdGlvbk9iaiA9IHt9IGFzIExpbmVQcm9tb3Rpb25zO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHJpZ2dlciA9IHt9IGFzIFRyaWdnZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXIuaXRlbUxpbmVJZCA9IHByb2R1Y3QuaXRlbV9pZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlci5xdWFudGl0eSA9IHByb2R1Y3QucXVhbnRpdHkgPyBwcm9kdWN0LnF1YW50aXR5IDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbk9iai50cmlnZ2VyID0gW10gYXMgVHJpZ2dlcltdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lUHJvbW90aW9uT2JqLnRyaWdnZXIucHVzaCh0cmlnZ2VyKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmouaXRlbUxpbmVJZCA9IGluZGV4ICsgMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbk9iai5wcm9tb3Rpb25JZCA9IHByb21vdGlvbi5wcm9tb3Rpb25faWQgPyBwcm9tb3Rpb24ucHJvbW90aW9uX2lkIDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmouZGlzcGxheVRleHQgPSBwcm9tb3Rpb24uaXRlbV90ZXh0ID8gcHJvbW90aW9uLml0ZW1fdGV4dCA6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lUHJvbW90aW9uT2JqLnByb21vdGlvblR5cGUgPSBwcm9tb3Rpb24uYXBwbGllZF9kaXNjb3VudCAmJiBwcm9tb3Rpb24uYXBwbGllZF9kaXNjb3VudC50eXBlID8gcHJvbW90aW9uLmFwcGxpZWRfZGlzY291bnQudHlwZSA6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lUHJvbW90aW9uT2JqLnByb21vdGlvbkFtb3VudCA9IHByb21vdGlvbi5wcmljZSA/IE1hdGguYWJzKHByb21vdGlvbi5wcmljZSkgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lUHJvbW90aW9uT2JqLm5hbWUgPSBwcm9tb3Rpb24uY291cG9uX2NvZGUgID8gcHJvbW90aW9uLmNvdXBvbl9jb2RlIDogKHByb21vdGlvbi5pdGVtX3RleHQgPyBwcm9tb3Rpb24uaXRlbV90ZXh0IDonJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmoucHJvbW90aW9uSW5mbyA9IHByb21vdGlvbi5pdGVtX3RleHQgPyBwcm9tb3Rpb24uaXRlbV90ZXh0IDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmoucHJvbW90aW9uTGluZVByaWNlID0gcHJvZHVjdC5wcmljZSAtIE1hdGguYWJzKHByb21vdGlvbi5wcmljZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25BcnJheS5wdXNoKGxpbmVQcm9tb3Rpb25PYmopO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldC5saW5lUHJvbW90aW9uID0gbGluZVByb21vdGlvbkFycmF5O1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IGxpbmVQcm9tb3Rpb24gbWFwcGluZyBlbmRlZC4uLlwiKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICB0cmFuc2FjdGlvblByb21vdGlvbigpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiB0cmFuc2FjdGlvblByb21vdGlvbiBtYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XHJcblxyXG4gICAgICAgIGxldCB0cmFuc2FjdGlvblByb21vdGlvbkFycmF5ID0gdGhpcy5nZXRUcmFuc2FjdGlvblByb21vdGlvbnModGhpcy5vcmRlckRldGFpbHMpO1xyXG5cclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXQudHJhbnNhY3Rpb25Qcm9tb3Rpb24gPSB0cmFuc2FjdGlvblByb21vdGlvbkFycmF5O1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IHRyYW5zYWN0aW9uUHJvbW90aW9uIG1hcHBpbmcgZW5kZWQuLi5cIik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VHJhbnNhY3Rpb25Qcm9tb3Rpb25zKGJhc2tldCk6IFRyYW5zYWN0aW9uUHJvbW90aW9uW10ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGxldCB0cmFuc2FjdGlvblByb21vdGlvbkFycmF5ID0gW10gYXMgVHJhbnNhY3Rpb25Qcm9tb3Rpb25bXTtcclxuICAgICAgICAgICAgaWYgKGJhc2tldC5vcmRlcl9wcmljZV9hZGp1c3RtZW50cyAmJiBiYXNrZXQub3JkZXJfcHJpY2VfYWRqdXN0bWVudHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgYmFza2V0Lm9yZGVyX3ByaWNlX2FkanVzdG1lbnRzLmZvckVhY2goXHJcbiAgICAgICAgICAgICAgICAgICAgKHRyYW5zYWN0aW9uUHJvbW90aW9uKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0cmFuc2FjdGlvblByb21vdGlvbk9iaiA9IHt9IGFzIFRyYW5zYWN0aW9uUHJvbW90aW9uO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmouZGlzcGxheVRleHQgPSB0cmFuc2FjdGlvblByb21vdGlvbi5pdGVtX3RleHQgPyB0cmFuc2FjdGlvblByb21vdGlvbi5pdGVtX3RleHQgOiAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmoubmFtZSA9IHRyYW5zYWN0aW9uUHJvbW90aW9uLmNvdXBvbl9jb2RlID8gdHJhbnNhY3Rpb25Qcm9tb3Rpb24uY291cG9uX2NvZGUgOiAodHJhbnNhY3Rpb25Qcm9tb3Rpb24gLml0ZW1fdGV4dD90cmFuc2FjdGlvblByb21vdGlvbi5pdGVtX3RleHQgOiAnJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uT2JqLnByb21vdGlvbkFtb3VudCA9IHRyYW5zYWN0aW9uUHJvbW90aW9uLnByaWNlID8gTWF0aC5hYnModHJhbnNhY3Rpb25Qcm9tb3Rpb24ucHJpY2UpIDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmoucHJvbW90aW9uSWQgPSB0cmFuc2FjdGlvblByb21vdGlvbi5wcm9tb3Rpb25faWQgPyB0cmFuc2FjdGlvblByb21vdGlvbi5wcm9tb3Rpb25faWQgOiAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmoucHJvbW90aW9uSW5mbyA9IHRyYW5zYWN0aW9uUHJvbW90aW9uLml0ZW1fdGV4dCA/IHRyYW5zYWN0aW9uUHJvbW90aW9uLml0ZW1fdGV4dCA6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbk9iai5wcm9tb3Rpb25UeXBlID0gdHJhbnNhY3Rpb25Qcm9tb3Rpb24uYXBwbGllZF9kaXNjb3VudCAmJiB0cmFuc2FjdGlvblByb21vdGlvbi5hcHBsaWVkX2Rpc2NvdW50LnR5cGUgPyB0cmFuc2FjdGlvblByb21vdGlvbi5hcHBsaWVkX2Rpc2NvdW50LnR5cGUgOiAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmouaXRlbUxpbmVJZHMgPSB0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zLm1hcCgocHJvZHVjdCwgaW5kZXgpID0+IGluZGV4ICsgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0cmFuc2FjdGlvblByb21vdGlvbi5jb3Vwb25fY29kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmoudHlwZSA9IFBST01PVElPTl9UWVBFLkNPVVBPTjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uT2JqLmNvdXBvbkNvZGUgPSB0cmFuc2FjdGlvblByb21vdGlvbi5jb3Vwb25fY29kZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uT2JqLnN1YkxldmVsVHlwZSA9IFBST01PVElPTl9MRVZFTC5UUkFOU0FDVElPTjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbkFycmF5LnB1c2godHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmopO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBnZXRUcmFuc2FjdGlvblByb21vdGlvbnMgOiBcIiwgSlNPTi5zdHJpbmdpZnkodHJhbnNhY3Rpb25Qcm9tb3Rpb25BcnJheSkpO1xyXG4gICAgICAgICAgICByZXR1cm4gdHJhbnNhY3Rpb25Qcm9tb3Rpb25BcnJheTtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiAgZmFpbGVkOlwiLCBlcnJvcik7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6ICBmYWlsZWQ6XCIsIEpTT04uc3RyaW5naWZ5KGVycm9yKSk7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZUxpbmVQcm9tb3Rpb25XaXRoQ291cG9uKCkge1xyXG4gICAgICAgIHRyeSB7XHJcblxyXG4gICAgICAgICAgICBsZXQgdHJhbnNhY3Rpb25Qcm9tb3Rpb24gPSB7fSBhcyBUcmFuc2FjdGlvblByb21vdGlvbjtcclxuICAgICAgICAgICAgbGV0IHRyaWdnZXJQcm9tb3Rpb24gPSBbXSBhcyBUcmlnZ2VyW107XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zICYmIHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcy5mb3JFYWNoKFxyXG4gICAgICAgICAgICAgICAgICAgIChwcm9kdWN0LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0Lml0ZW1faWQgPSAoaW5kZXggKyAxKS50b1N0cmluZygpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByb2R1Y3QucHJpY2VfYWRqdXN0bWVudHMgJiYgcHJvZHVjdC5wcmljZV9hZGp1c3RtZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0LnByaWNlX2FkanVzdG1lbnRzLmZvckVhY2goXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb21vdGlvbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJvbW90aW9uLmNvdXBvbl9jb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHJpZ2dlciA9IHt9IGFzIFRyaWdnZXI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyLml0ZW1MaW5lSWQgPSBwcm9kdWN0Lml0ZW1faWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyLnF1YW50aXR5ID0gcHJvZHVjdC5xdWFudGl0eSA/IHByb2R1Y3QucXVhbnRpdHkgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlci50b3RhbFF1YW50aXR5ID0gcHJvZHVjdC5xdWFudGl0eSA/IHByb2R1Y3QucXVhbnRpdHkgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlci5wcm9tb3Rpb25BbW91bnQgPSBwcm9tb3Rpb24ucHJpY2UgPyBNYXRoLmFicyhwcm9tb3Rpb24ucHJpY2UpIDogMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXIucmVmdW5kZWRSZWFzb24gPSBwcm9tb3Rpb24uY291cG9uX2NvZGUgPyBwcm9tb3Rpb24uY291cG9uX2NvZGUgOiAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXIucmVmdW5kZWRSZWFzb25EZXNjcmlwdGlvbiA9IHByb21vdGlvbi5pdGVtX3RleHQgPyBwcm9tb3Rpb24uaXRlbV90ZXh0IDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyLnByb21vdGlvbklkID0gcHJvbW90aW9uLnByb21vdGlvbl9pZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJQcm9tb3Rpb24ucHVzaCh0cmlnZ2VyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodHJpZ2dlclByb21vdGlvbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbi5kaXNwbGF5VGV4dCA9IHRyaWdnZXJQcm9tb3Rpb25bMF0ucmVmdW5kZWRSZWFzb25EZXNjcmlwdGlvbjtcclxuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uLm5hbWUgPSB0cmlnZ2VyUHJvbW90aW9uWzBdLnJlZnVuZGVkUmVhc29uO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24ucHJvbW90aW9uQW1vdW50ID0gLSh0cmlnZ2VyUHJvbW90aW9uLnJlZHVjZSgobiwgeyBwcm9tb3Rpb25BbW91bnQgfSkgPT4gbiArIHByb21vdGlvbkFtb3VudCwgMCkpO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24ucHJvbW90aW9uSWQgPSB0cmlnZ2VyUHJvbW90aW9uWzBdLnByb21vdGlvbklkO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24ucHJvbW90aW9uSW5mbyA9IHRyaWdnZXJQcm9tb3Rpb25bMF0ucmVmdW5kZWRSZWFzb25EZXNjcmlwdGlvbjtcclxuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uLmNvdXBvbkNvZGUgPSB0cmlnZ2VyUHJvbW90aW9uWzBdLnJlZnVuZGVkUmVhc29uO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24uaXRlbUxpbmVJZHMgPSBbXTtcclxuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uLnR5cGUgPSBQUk9NT1RJT05fVFlQRS5DT1VQT047XHJcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbi5zdWJMZXZlbFR5cGUgPSBQUk9NT1RJT05fTEVWRUwuTElORTtcclxuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uLnRyaWdnZXIgPSB0cmlnZ2VyUHJvbW90aW9uO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwibGluZVByb21vdGlvbiBtYXBwaW5nIGVuZGVkLi4uXCIpO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImUtYmFza2V0OiB1cGRhdGVMaW5lUHJvbW90aW9uV2l0aENvdXBvblwiLCBKU09OLnN0cmluZ2lmeSh0cmFuc2FjdGlvblByb21vdGlvbikpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCF0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXQudHJhbnNhY3Rpb25Qcm9tb3Rpb24gKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXQudHJhbnNhY3Rpb25Qcm9tb3Rpb24gPSBbXTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRyYW5zYWN0aW9uUHJvbW90aW9uICYmIHRyYW5zYWN0aW9uUHJvbW90aW9uLnByb21vdGlvbklkICkge1xyXG4gICAgICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXQudHJhbnNhY3Rpb25Qcm9tb3Rpb24ucHVzaCh0cmFuc2FjdGlvblByb21vdGlvbik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRWJhc2tldDogU2FsZXNmb3JjZTogbGluZVByb21vdGlvbiBtYXBwaW5nPT4gZmFpbGVkOlwiLCBlcnJvcik7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRWJhc2tldDogU2FsZXNmb3JjZTogbGluZVByb21vdGlvbiBtYXBwaW5nPT4gZmFpbGVkOlwiLCBKU09OLnN0cmluZ2lmeShlcnJvcikpO1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVUcmFuc2FjdGlvblByb21vdGlvblBydGlvbkNhbGMoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldC50cmFuc2FjdGlvblByb21vdGlvbiAmJiB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXQudHJhbnNhY3Rpb25Qcm9tb3Rpb24ubGVuZ3RoID4gMCkge1xyXG5cclxuICAgICAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0LnRyYW5zYWN0aW9uUHJvbW90aW9uLmZvckVhY2godHIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uUHJvbW90aW9uUHJvZHVjdFBvcnRpb25DYWxjKHRoaXMud2ViUmV0dXJuT2JqZWN0ICwgdHIpXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uUHJvZHVjdFBvcnRpb25DYWxjKFxyXG4gICAgICAgIHR4RG9jOiBUcmFuc2FjdGlvbkRvY3VtZW50LFxyXG4gICAgICAgIHByb21vdGlvbjogVHJhbnNhY3Rpb25Qcm9tb3Rpb25cclxuICAgICkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICAgICBgZWJhc2tldDogdHJhbnNhY3Rpb25Qcm9tb3Rpb25Qcm9kdWN0UG9ydGlvbkNhbGM6IHRybnNhY3Rpb25Qcm9tb3Rpb246ICR7SlNPTi5zdHJpbmdpZnkoXHJcbiAgICAgICAgICAgICAgICBwcm9tb3Rpb25cclxuICAgICAgICAgICAgKX1gXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAocHJvbW90aW9uLnR5cGUgPT09IFBST01PVElPTl9UWVBFLkNPVVBPTiAmJiBwcm9tb3Rpb24uc3ViTGV2ZWxUeXBlID09PSBQUk9NT1RJT05fTEVWRUwuTElORSkge1xyXG4gICAgICAgICAgICB0eERvYy5iYXNrZXQucHJvZHVjdHMuZm9yRWFjaCgocHJvZHVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcHJvZHVjdCA9IHRoaXMudmFsaWRhdGVQcm9kdWN0SXRlbURpc2NvdW50KHByb2R1Y3QpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChwcm9tb3Rpb24udHJpZ2dlciAmJiBwcm9tb3Rpb24udHJpZ2dlci5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvbW90aW9uLnRyaWdnZXIuZm9yRWFjaCgodCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodC5pdGVtTGluZUlkID09PSBwcm9kdWN0Lml0ZW1MaW5lSWQudG9TdHJpbmcoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdC5pdGVtRGlzY291bnRzLnRyblByb21vdGlvbnNQb3J0aW9uICs9IHQucHJvbW90aW9uQW1vdW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdHhEb2MuYmFza2V0LnByb2R1Y3RzLmZvckVhY2goKHByb2R1Y3QpID0+IHtcclxuICAgICAgICAgICAgICAgIHByb2R1Y3QgPSB0aGlzLnZhbGlkYXRlUHJvZHVjdEl0ZW1EaXNjb3VudChwcm9kdWN0KTtcclxuICAgICAgICAgICAgICAgIGlmIChwcm9tb3Rpb24uaXRlbUxpbmVJZHMuaW5jbHVkZXMoK3Byb2R1Y3QuaXRlbUxpbmVJZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcm9kdWN0SXRlbSA9IHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMuZmluZChwcm9kdWN0SXRlbSA9PiBwcm9kdWN0SXRlbS5wcm9kdWN0X2lkID09PSBwcm9kdWN0LlNLVSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdHJhbnNhY3Rpb25Qcm9tb3Rpb25Qb3J0aW9uID0gKHByb2R1Y3RJdGVtICYmIHByb2R1Y3RJdGVtLnByaWNlX2FmdGVyX2l0ZW1fZGlzY291bnQgJiYgcHJvZHVjdEl0ZW0ucHJpY2VfYWZ0ZXJfb3JkZXJfZGlzY291bnQpID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgKHByb2R1Y3RJdGVtLnByaWNlX2FmdGVyX2l0ZW1fZGlzY291bnQgLSBwcm9kdWN0SXRlbS5wcmljZV9hZnRlcl9vcmRlcl9kaXNjb3VudCkgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3QuaXRlbURpc2NvdW50cy50cm5Qcm9tb3Rpb25zUG9ydGlvbiArPSB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMih0cmFuc2FjdGlvblByb21vdGlvblBvcnRpb24pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHR4RG9jO1xyXG4gICAgfVxyXG5cclxuICAgICAgXHJcbiAgICAgIHB1YmxpYyB2YWxpZGF0ZVByb2R1Y3RJdGVtRGlzY291bnQocHJvZHVjdDogVFByb2R1Y3QpIHtcclxuICAgICAgICBpZiAoIXByb2R1Y3QuaXRlbURpc2NvdW50cykge1xyXG4gICAgICAgICAgcHJvZHVjdC5pdGVtRGlzY291bnRzID0ge1xyXG4gICAgICAgICAgICB0cm5EaXNjb3VudHNQb3J0aW9uOiAwLFxyXG4gICAgICAgICAgICB0cm5Qcm9tb3Rpb25zUG9ydGlvbjogMCxcclxuICAgICAgICAgICAgcmVmdW5kUG9ydGlvbjogMCxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwcm9kdWN0O1xyXG4gICAgICB9XHJcbiAgICBcclxuICAgICAgXHJcbiAgICBjdXN0b21lcigpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBjdXN0b21lciBtYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XHJcbiAgICAgICAgbGV0IGN1c3RvbWVyT2JqID0ge30gYXMgQ3VzdG9tZXI7XHJcbiAgICAgICAgY3VzdG9tZXJPYmouZW1haWwgPSB0aGlzLm9yZGVyRGV0YWlscy5jdXN0b21lcl9pbmZvICYmIHRoaXMub3JkZXJEZXRhaWxzLmN1c3RvbWVyX2luZm8uZW1haWwgPyB0aGlzLm9yZGVyRGV0YWlscy5jdXN0b21lcl9pbmZvLmVtYWlsIDogJyc7XHJcbiAgICAgICAgY3VzdG9tZXJPYmouZmlyc3ROYW1lID0gdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5maXJzdF9uYW1lID8gdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzLmZpcnN0X25hbWUgOiAnJztcclxuICAgICAgICBjdXN0b21lck9iai5sYXN0TmFtZSA9IHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcyAmJiB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MubGFzdF9uYW1lID8gdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzLmxhc3RfbmFtZSA6ICcnO1xyXG5cclxuICAgICAgICBsZXQgc2hpcHBpbmdBZGRyZXNzID0gW10gYXMgQWRkcmVzc1tdO1xyXG4gICAgICAgIHRoaXMub3JkZXJEZXRhaWxzLnNoaXBtZW50cy5mb3JFYWNoKFxyXG4gICAgICAgICAgICBzaGlwbWVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgc2hpcHBpbmdBZGRyZXNzT2JqID0ge30gYXMgQWRkcmVzcztcclxuICAgICAgICAgICAgICAgIHNoaXBwaW5nQWRkcmVzc09iai5pZCA9IHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MgJiYgc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcy5pZCA/IHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MuaWQgOiAnJztcclxuICAgICAgICAgICAgICAgIHNoaXBwaW5nQWRkcmVzc09iai5jb3VudHJ5Q29kZSA9IHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MgJiYgc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcy5jb3VudHJ5X2NvZGUgPyBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzLmNvdW50cnlfY29kZSA6ICcnO1xyXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzT2JqLmFkZHJlc3MxID0gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcyAmJiBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzLmFkZHJlc3MxID8gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcy5hZGRyZXNzMSA6ICcnO1xyXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzT2JqLmNpdHkgPSBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzICYmIHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MuY2l0eSA/IHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MuY2l0eSA6ICcnO1xyXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzT2JqLmNvdW50cnkgPSAnJztcclxuICAgICAgICAgICAgICAgIHNoaXBwaW5nQWRkcmVzc09iai5wb3N0Q29kZSA9IHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MgJiYgc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcy5wb3N0YWxfY29kZSA/IHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MucG9zdGFsX2NvZGUgOiAnJztcclxuICAgICAgICAgICAgICAgIHNoaXBwaW5nQWRkcmVzcy5wdXNoKHNoaXBwaW5nQWRkcmVzc09iaik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApXHJcbiAgICAgICAgY3VzdG9tZXJPYmouc2hpcHBpbmdBZGRyZXNzID0gc2hpcHBpbmdBZGRyZXNzO1xyXG5cclxuICAgICAgICBsZXQgYmlsbGluZ0FkZHJlc3MgPSBbXSBhcyBBZGRyZXNzW107XHJcbiAgICAgICAgbGV0IGJpbGxpbmdBZGRyZXNzT2JqID0ge30gYXMgQWRkcmVzcztcclxuICAgICAgICBiaWxsaW5nQWRkcmVzc09iai5pZCA9IHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcyAmJiB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MuaWQgPyB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MuaWQgOiAnJztcclxuICAgICAgICBiaWxsaW5nQWRkcmVzc09iai5jb3VudHJ5Q29kZSA9IHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcyAmJiB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MuY291bnRyeV9jb2RlID8gdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzLmNvdW50cnlfY29kZSA6ICcnO1xyXG4gICAgICAgIGJpbGxpbmdBZGRyZXNzT2JqLmFkZHJlc3MxID0gdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5hZGRyZXNzMSA/IHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5hZGRyZXNzMSA6ICcnO1xyXG4gICAgICAgIGJpbGxpbmdBZGRyZXNzT2JqLmNpdHkgPSB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MgJiYgdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzLmNpdHkgPyB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MuY2l0eSA6ICcnO1xyXG4gICAgICAgIGJpbGxpbmdBZGRyZXNzT2JqLmNvdW50cnkgPSAnJztcclxuICAgICAgICBiaWxsaW5nQWRkcmVzc09iai5wb3N0Q29kZSA9ICcnO1xyXG4gICAgICAgIGJpbGxpbmdBZGRyZXNzLnB1c2goYmlsbGluZ0FkZHJlc3NPYmopO1xyXG4gICAgICAgIGN1c3RvbWVyT2JqLmJpbGxpbmdBZGRyZXNzID0gYmlsbGluZ0FkZHJlc3M7XHJcblxyXG4gICAgICAgIGxldCBzaGlwbWVudERldGFpbHMgPSBbXSBhcyBTaGlwbWVudERldGFpbHNbXTtcclxuICAgICAgICB0aGlzLm9yZGVyRGV0YWlscy5zaGlwbWVudHMuZm9yRWFjaChcclxuICAgICAgICAgICAgc2hpcG1lbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IHNoaXBtZW50RGV0YWlsc09iaiA9IHt9IGFzIFNoaXBtZW50RGV0YWlscztcclxuICAgICAgICAgICAgICAgIHNoaXBtZW50RGV0YWlsc09iai5pZCA9IHNoaXBtZW50LnNoaXBtZW50X2lkID8gc2hpcG1lbnQuc2hpcG1lbnRfaWQgOiAnJztcclxuICAgICAgICAgICAgICAgIHNoaXBtZW50RGV0YWlsc09iai5kZWxpdmVyeUdyb3VwID0gc2hpcG1lbnQuc2hpcG1lbnRfaWQgPyBzaGlwbWVudC5zaGlwbWVudF9pZCA6ICcnO1xyXG4gICAgICAgICAgICAgICAgc2hpcG1lbnREZXRhaWxzLnB1c2goc2hpcG1lbnREZXRhaWxzT2JqKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY3VzdG9tZXJPYmouc2hpcG1lbnREZXRhaWxzID0gc2hpcG1lbnREZXRhaWxzO1xyXG5cclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5jdXN0b21lciA9IGN1c3RvbWVyT2JqO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IGN1c3RvbWVyIG1hcHBpbmcgZW5kZWQuLi5cIik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHMoKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHMgbWFwcGluZyBzdGFydGVkLi4uXCIpO1xyXG4gICAgICAgIGxldCBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscyA9IFtdIGFzIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzW107XHJcbiAgICAgICAgaWYgKHRoaXMub3JkZXJEZXRhaWxzLnNoaXBtZW50cyAmJiB0aGlzLm9yZGVyRGV0YWlscy5zaGlwbWVudHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLm9yZGVyRGV0YWlscy5zaGlwbWVudHMuZm9yRWFjaChcclxuICAgICAgICAgICAgICAgIHNoaXBtZW50ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHNPYmogPSB7fSBhcyBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscztcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdHJhbnNhY3Rpb25JbmZvID0ge30gYXMgVHJhbnNhY3Rpb25JbmZvO1xyXG4gICAgICAgICAgICAgICAgICAgIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzT2JqLnVuaXF1ZUlkID0gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfbm8gPyB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl9ubyA6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzT2JqLnByb3ZpZGVyVHlwZSA9IFBST1ZJREVSUy5TQUxFU0ZPUkNFO1xyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uSW5mby5zaGlwcGluZ0lkID0gc2hpcG1lbnQuc2hpcHBpbmdfbWV0aG9kICYmIHNoaXBtZW50LnNoaXBwaW5nX21ldGhvZC5pZCA/IHNoaXBtZW50LnNoaXBwaW5nX21ldGhvZC5pZCA6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uSW5mby5leHRlcm5hbFNoaXBwaW5nSWQgPSBzaGlwbWVudC5zaGlwbWVudF9pZCA/IHNoaXBtZW50LnNoaXBtZW50X2lkIDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHNPYmouZGV0YWlscyA9IHRyYW5zYWN0aW9uSW5mbztcclxuICAgICAgICAgICAgICAgICAgICBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscy5wdXNoKGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzT2JqKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHMgPSBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscztcclxuICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscyBtYXBwaW5nIGVuZGVkLi4uXCIpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIGJhc2tldFN1bW1hcnkoKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogYmFza2V0U3VtbWFyeSBtYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XHJcbiAgICAgICAgbGV0IGJhc2tldFN1bW1hcnkgPSB7fSBhcyBCYXNrZXRTdW1tYXJ5O1xyXG4gICAgICAgIGxldCBiYXNrZXRTdW1tYXJ5V2ViT3JkZXIgPSB7fSBhcyBCYXNrZXRTdW1tYXJ5RGV0YWlscztcclxuICAgICAgICBjb25zdCBsaW5lUHJvbW90aW9uVG90YWwgPSB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXQubGluZVByb21vdGlvbi5tYXAobGluZVByb21vdGlvbiA9PiBsaW5lUHJvbW90aW9uLnByb21vdGlvbkFtb3VudCkucmVkdWNlKChhY2N1bXVsYXRvciwgY3VycmVudFZhbHVlKSA9PiBhY2N1bXVsYXRvciArIGN1cnJlbnRWYWx1ZSwgMCk7XHJcbiAgICAgICAgY29uc3QgdHJhbnNhY3Rpb25Qcm9tb3Rpb25Ub3RhbCA9IHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldC50cmFuc2FjdGlvblByb21vdGlvbi5tYXAodHJhbnNhY3Rpb25Qcm9tb3Rpb24gPT4gdHJhbnNhY3Rpb25Qcm9tb3Rpb24ucHJvbW90aW9uQW1vdW50KS5yZWR1Y2UoKGFjY3VtdWxhdG9yLCBjdXJyZW50VmFsdWUpID0+IGFjY3VtdWxhdG9yICsgY3VycmVudFZhbHVlLCAwKTtcclxuICAgICAgICBiYXNrZXRTdW1tYXJ5LmRpc2NvdW50VG90YWwgPSBsaW5lUHJvbW90aW9uVG90YWwgKyB0cmFuc2FjdGlvblByb21vdGlvblRvdGFsO1xyXG4gICAgICAgIGJhc2tldFN1bW1hcnkuVkFUVG90YWwgPSB0aGlzLm9yZGVyRGV0YWlscy50YXhfdG90YWwgPyB0aGlzLm9yZGVyRGV0YWlscy50YXhfdG90YWwgOiAwO1xyXG4gICAgICAgIGJhc2tldFN1bW1hcnkuc2FsZVRvdGFsID0gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfdG90YWwgPyB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl90b3RhbCA6IDA7XHJcbiAgICAgICAgYmFza2V0U3VtbWFyeS5iYXNrZXRUb3RhbCA9IHRoaXMub3JkZXJEZXRhaWxzLm9yZGVyX3RvdGFsID8gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfdG90YWwgOiAwO1xyXG4gICAgICAgIGJhc2tldFN1bW1hcnkudG90YWxJdGVtcyA9IHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMgJiYgdGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcy5sZW5ndGggPiAwID8gdGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcy5sZW5ndGggOiAwO1xyXG4gICAgICAgIGJhc2tldFN1bW1hcnkuc2hpcHBpbmdUb3RhbCA9IHRoaXMub3JkZXJEZXRhaWxzLnNoaXBwaW5nX3RvdGFsID8gdGhpcy5vcmRlckRldGFpbHMuc2hpcHBpbmdfdG90YWwgOiAwO1xyXG4gICAgICAgIGJhc2tldFN1bW1hcnkuYmFza2V0VG90YWxXaXRoU2hpcHBpbmdUb3RhbCA9IHRoaXMub3JkZXJEZXRhaWxzLm9yZGVyX3RvdGFsID8gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfdG90YWwgOiAwO1xyXG4gICAgICAgIGJhc2tldFN1bW1hcnlXZWJPcmRlci5zaGlwcGluZ1RvdGFsID0gdGhpcy5vcmRlckRldGFpbHMuc2hpcHBpbmdfdG90YWwgPyB0aGlzLm9yZGVyRGV0YWlscy5zaGlwcGluZ190b3RhbCA6IDA7XHJcbiAgICAgICAgYmFza2V0U3VtbWFyeVdlYk9yZGVyLmJhc2tldFRvdGFsV2l0aFNoaXBwaW5nVG90YWwgPSB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl90b3RhbCA/IHRoaXMub3JkZXJEZXRhaWxzLm9yZGVyX3RvdGFsIDogMDtcclxuICAgICAgICBiYXNrZXRTdW1tYXJ5LndlYk9yZGVyID0gYmFza2V0U3VtbWFyeVdlYk9yZGVyO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFN1bW1hcnkgPSBiYXNrZXRTdW1tYXJ5O1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IGJhc2tldFN1bW1hcnkgbWFwcGluZyBlbmRlZC4uLlwiKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBkZXZpY2VJZChkZXZpY2VJZCkge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmRldmljZUlkID0gZGV2aWNlSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgdGVybWluYWxJZCh0ZXJtaW5hbElkKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QudGVybWluYWxJZCA9IHRlcm1pbmFsSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgb3JnQ29kZShvcmdDb2RlKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Qub3JnQ29kZSA9IG9yZ0NvZGU7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcmVJZChzdG9yZUlkKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3RvcmVJZCA9IHN0b3JlSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcmVOb2RlSWQoc3RvcmVOb2RlSWQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnN0b3JlTm9kZUlkID0gc3RvcmVOb2RlSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcmVOb2RlU3RydWN0dXJlKHN0b3JlTm9kZVN0cnVjdHVyZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3RvcmVOb2RlU3RydWN0dXJlID0gc3RvcmVOb2RlU3RydWN0dXJlO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIGRvY0lkKGRvY0lkKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuaWQgPSBkb2NJZDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVVc2VySUQodXNlcklEOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC51c2VySWQgPSB1c2VySUQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlVXNlck5hbWUobmFtZSkge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnVzZXJOYW1lID0gbmFtZTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBidWlsZCgpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBtYXBwaW5nIGRvbmUuLi5cIik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMud2ViUmV0dXJuT2JqZWN0O1xyXG4gICAgfVxyXG5cclxuICAgIGdldFVUQ0RhdGVUaW1lKGRhdGUpIHtcclxuICAgICAgICBpZiAoZGF0ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSkudG9JU09TdHJpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
683
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BwbWNyZXRhaWwvbWFwcGVyLWxpYnJhcnkvIiwic291cmNlcyI6WyJsaWIvV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBcUYsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBZ0MsU0FBUyxFQUFtQixnQkFBZ0IsRUFBa0ksTUFBTSx3QkFBd0IsQ0FBQztBQUM3WSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxNQUFNLE9BQU8scUNBQXFDOzs7OztJQWlDOUMsWUFBWSxZQUEwQixFQUMxQixZQUEyQjtRQUEzQixpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQS9CL0Isb0JBQWUsR0FBd0I7WUFDM0MsRUFBRSxFQUFFLEVBQUU7WUFDTixPQUFPLEVBQUUsRUFBRTtZQUNYLE9BQU8sRUFBRSxFQUFFO1lBQ1gsV0FBVyxFQUFFLEVBQUU7WUFDZixrQkFBa0IsRUFBRSxFQUFFO1lBQ3RCLFFBQVEsRUFBRSxFQUFFO1lBQ1osVUFBVSxFQUFFLEVBQUU7WUFDZCxnQkFBZ0IsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsY0FBYyxFQUFFLEtBQUs7WUFDckIsTUFBTSxFQUFFLEVBQUU7WUFDVixhQUFhLEVBQUUsRUFBRTtZQUNqQixZQUFZLEVBQUUsRUFBRTtZQUNoQixRQUFRLEVBQUU7Z0JBQ04sRUFBRSxFQUFFLEVBQUU7Z0JBQ04sS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osY0FBYyxFQUFFLEVBQUU7Z0JBQ2xCLGVBQWUsRUFBRSxFQUFFO2dCQUNuQixlQUFlLEVBQUUsRUFBRTtnQkFDbkIsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsUUFB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bUJBQUEsSUFBSSxFQUFBLENBQUM7SUFDaEIsQ0FBQzs7Ozs7OztJQUVELFlBQVksQ0FBQyxNQUFjO1FBQ3ZCLG1CQUFBLElBQUksRUFBQSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JDLE9BQU8sbUJBQUEsSUFBSSxFQUFBLENBQUM7SUFDaEIsQ0FBQzs7Ozs7OztJQUVELGNBQWMsQ0FBQyxJQUFJO1FBQ2YsbUJBQUEsSUFBSSxFQUFBLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckMsT0FBTyxtQkFBQSxJQUFJLEVBQUEsQ0FBQztJQUNoQixDQUFDOzs7O0lBRUQsS0FBSztRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsd0VBQXdFLENBQUMsQ0FBQztRQUN0RixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQzs7Ozs7SUFFRCxjQUFjLENBQUMsSUFBSTtRQUNmLElBQUksSUFBSSxFQUFFO1lBQ04sT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN2QztJQUNMLENBQUM7Q0FDSjs7Ozs7O0lBM2RHLDZEQUFtQzs7Ozs7SUFDbkMsZ0VBMkJDOztJQUNELGtFQUF1Qjs7Ozs7SUFHbkIsNkRBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VycmVuY3lQaXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBBZGRyZXNzLCBCYXNrZXRTdW1tYXJ5LCBCYXNrZXRTdW1tYXJ5RGV0YWlscywgQ3VycmVudFRyYW5zYWN0aW9uRGV0YWlscywgQ3VzdG9tZXIsIERFTElWRVJZX01FVEhPRFMsIFBST01PVElPTl9MRVZFTCwgUFJPTU9USU9OX1RZUEUsIElOSVRJQVRJTkdfTU9EVUxFLCBMaW5lUHJvbW90aW9ucywgT3JkZXJEZXRhaWxzLCBQUk9WSURFUlMsIFNoaXBtZW50RGV0YWlscywgVFJBTlNBQ1RJT05fVFlQRSwgVHJhbnNhY3Rpb25Eb2N1bWVudCwgVHJhbnNhY3Rpb25JbmZvLCBUcmFuc2FjdGlvblByb21vdGlvbiwgVHJpZ2dlciwgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHMsIFRQcm9kdWN0LCBSZWZ1bmRQcm9kdWN0Q2hhbmdlIH0gZnJvbSBcIi4vbWFwcGVyLWxpYnJhcnkubW9kZWxcIjtcclxuaW1wb3J0IHsgTnVtYmVyVXRpbFNlcnZpY2UgfSBmcm9tIFwiLi9udW1iZXItdXRpbC5zZXJ2aWNlXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzcyB7XHJcblxyXG4gICAgcHJpdmF0ZSBvcmRlckRldGFpbHM6IE9yZGVyRGV0YWlscztcclxuICAgIHByaXZhdGUgd2ViUmV0dXJuT2JqZWN0OiBUcmFuc2FjdGlvbkRvY3VtZW50ID0ge1xyXG4gICAgICAgIGlkOiAnJyxcclxuICAgICAgICBvcmdDb2RlOiBcIlwiLFxyXG4gICAgICAgIHN0b3JlSWQ6IFwiXCIsXHJcbiAgICAgICAgc3RvcmVOb2RlSWQ6IFwiXCIsXHJcbiAgICAgICAgc3RvcmVOb2RlU3RydWN0dXJlOiBcIlwiLFxyXG4gICAgICAgIGRldmljZUlkOiBcIlwiLFxyXG4gICAgICAgIHRlcm1pbmFsSWQ6IFwiXCIsXHJcbiAgICAgICAgaW5pdGlhdGluZ01vZHVsZTogXCJcIixcclxuICAgICAgICBleHBvcnQ6IGZhbHNlLFxyXG4gICAgICAgIGlzSW5TdG9yZU9yZGVyOiBmYWxzZSxcclxuICAgICAgICBiYXNrZXQ6IHt9LFxyXG4gICAgICAgIGJhc2tldFN1bW1hcnk6IHt9LFxyXG4gICAgICAgIGJhc2VDdXJyZW5jeTogXCJcIixcclxuICAgICAgICBjdXN0b21lcjoge1xyXG4gICAgICAgICAgICBpZDogJycsXHJcbiAgICAgICAgICAgIGVtYWlsOiAnJyxcclxuICAgICAgICAgICAgZmlyc3ROYW1lOiAnJyxcclxuICAgICAgICAgICAgbGFzdE5hbWU6ICcnLFxyXG4gICAgICAgICAgICBiaWxsaW5nQWRkcmVzczogW10sXHJcbiAgICAgICAgICAgIHNoaXBwaW5nQWRkcmVzczogW10sXHJcbiAgICAgICAgICAgIHNoaXBtZW50RGV0YWlsczogW10sXHJcbiAgICAgICAgICAgIHRlbGVwaG9uZTogJycsXHJcbiAgICAgICAgICAgIHBvc3RDb2RlOiAnJyxcclxuICAgICAgICAgICAgbm9DdXN0b21lclNlbGVjdGVkOiBmYWxzZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY3VycmVudFRyYW5zYWN0aW9uRGV0YWlsczoge30gYXMgQ3VycmVudFRyYW5zYWN0aW9uRGV0YWlsc1xyXG4gICAgfVxyXG4gICAgbnVtYmVyVXRpbFNlcnZpY2U6IGFueTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcmRlckRldGFpbHM6IE9yZGVyRGV0YWlscyxcclxuICAgICAgICBwcml2YXRlIGN1cnJlbmN5UGlwZT86IEN1cnJlbmN5UGlwZVxyXG4gICAgICAgICkge1xyXG4gICAgICAgIGlmIChvcmRlckRldGFpbHMpIHtcclxuICAgICAgICAgICAgdGhpcy5vcmRlckRldGFpbHMgPSBvcmRlckRldGFpbHM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubnVtYmVyVXRpbFNlcnZpY2UgPSBuZXcgTnVtYmVyVXRpbFNlcnZpY2UoY3VycmVuY3lQaXBlKTtcclxuICAgIH1cclxuXHJcbiAgICB3ZWJSZXR1cm5Db21tb25NYXBwZXIoKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogd2ViUmV0dXJuQ29tbW9uTWFwcGVyIHN0YXJ0ZWQuLi5cIik7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ3R5cGUnXSA9IFRSQU5TQUNUSU9OX1RZUEUuV0VCX1JFVFVSTlM7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2RhdGV0aW1lJ10gPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMub3JkZXJEZXRhaWxzLmxhc3RfbW9kaWZpZWQpO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2VDdXJyZW5jeSA9IHRoaXMub3JkZXJEZXRhaWxzLmN1cnJlbmN5O1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnN1YnNpZGlhcnlJZCA9ICcxJztcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5leHBvcnQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmluaXRpYXRpbmdNb2R1bGUgPSBJTklUSUFUSU5HX01PRFVMRS5FQkFTS0VUO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmNyZWF0ZWRBdCA9IHRoaXMuZ2V0VVRDRGF0ZVRpbWUodGhpcy5vcmRlckRldGFpbHMuY3JlYXRpb25fZGF0ZSk7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QudXBkYXRlZEF0ID0gdGhpcy5nZXRVVENEYXRlVGltZSh0aGlzLm9yZGVyRGV0YWlscy5sYXN0X21vZGlmaWVkKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC50cmFuc0NvbXBsZXRlZEF0ID0gdGhpcy5nZXRVVENEYXRlVGltZSh0aGlzLm9yZGVyRGV0YWlscy5sYXN0X21vZGlmaWVkKTtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnZXh0ZXJuYWxUcmFuc2FjdGlvbklkJ10gPSB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl9ubztcclxuICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiB3ZWJSZXR1cm5Db21tb25NYXBwZXIgZW5kZWQuLi5cIik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZXhwb3J0KHN0YXR1cywgZGV0YWlscykge1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IGV4cG9ydCBtYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XHJcbiAgICAvLyAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogc3RhdHVzOlwiLCBzdGF0dXMpO1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IGRldGFpbHM6XCIsIEpTT04uc3RyaW5naWZ5KGRldGFpbHMpKTtcclxuICAgIC8vICAgICBpZiAoc3RhdHVzICYmIGRldGFpbHMgJiYgZGV0YWlscy5wcm92aWRlcnMgJiYgZGV0YWlscy5wcm92aWRlcnMubGVuZ3RoID4gMCkge1xyXG4gICAgLy8gICAgICAgICBkZXRhaWxzLnByb3ZpZGVycy5mb3JFYWNoKFxyXG4gICAgLy8gICAgICAgICAgICAgcHJvdmlkZXJPYmogPT4ge1xyXG4gICAgLy8gICAgICAgICAgICAgICAgIGlmIChwcm92aWRlck9iai5wcm92aWRlciAmJiBwcm92aWRlck9iai5wcm92aWRlciA9PT0gUFJPVklERVJTLlNBTEVTRk9SQ0UpIHtcclxuICAgIC8vICAgICAgICAgICAgICAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuZXhwb3J0ID0gdHJ1ZTtcclxuICAgIC8vICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgLy8gICAgICAgICAgICAgICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5leHBvcnQgPSBmYWxzZTtcclxuICAgIC8vICAgICAgICAgICAgICAgICB9XHJcbiAgICAvLyAgICAgICAgICAgICB9XHJcbiAgICAvLyAgICAgICAgICk7XHJcbiAgICAvLyAgICAgfSBlbHNlIHtcclxuICAgIC8vICAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuZXhwb3J0ID0gZmFsc2U7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IGV4cG9ydCBtYXBwaW5nIGVuZC4uLlwiKVxyXG4gICAgLy8gICAgIHJldHVybiB0aGlzO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIGdldERlbGl2ZXJ5TWV0aG9kKCkge1xyXG4gICAgICAgIGlmKHRoaXMub3JkZXJEZXRhaWxzLnNoaXBtZW50cyAmJiB0aGlzLm9yZGVyRGV0YWlscy5zaGlwbWVudHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBzaGlwVG9TdG9yZVNoaXBtZW50ID0gdGhpcy5vcmRlckRldGFpbHMuc2hpcG1lbnRzLmZpbmQoc2hpcG1lbnQgPT4gc2hpcG1lbnQuY19mcm9tU3RvcmVJZCk7XHJcbiAgICAgICAgICAgIGlmKHNoaXBUb1N0b3JlU2hpcG1lbnQpIHJldHVybiBERUxJVkVSWV9NRVRIT0RTLlNISVBfVE9fU1RPUkU7XHJcbiAgICAgICAgICAgIGVsc2UgcmV0dXJuIERFTElWRVJZX01FVEhPRFMuREVMSVZFUlk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm9kdWN0KCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IHByb2R1Y3QgbWFwcGluZyBzdGFydGVkLi4uXCIpO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFsncHJvZHVjdHMnXSA9IFtdO1xyXG4gICAgICAgIGlmICh0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zICYmIHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zLmZvckVhY2goXHJcbiAgICAgICAgICAgICAgICAocHJvZHVjdCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcm9kdWN0T2JqID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogcHJvZHVjdC5pdGVtX3RleHQgPyBwcm9kdWN0Lml0ZW1fdGV4dCA6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBTS1U6IHByb2R1Y3QucHJvZHVjdF9pZCA/IHByb2R1Y3QucHJvZHVjdF9pZCA6ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWFudGl0eTogcHJvZHVjdC5xdWFudGl0eSA/IHByb2R1Y3QucXVhbnRpdHkgOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZ1bmRlZFF1YW50aXR5OiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmljZTogcHJvZHVjdC5iYXNlX3ByaWNlID8gcHJvZHVjdC5iYXNlX3ByaWNlIDogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbUxpbmVJZDogKGluZGV4ICsgMSkudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVsaXZlcnlNZXRob2Q6IHRoaXMuZ2V0RGVsaXZlcnlNZXRob2QoKS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbExpbmVQcmljZTogcHJvZHVjdC5wcmljZSA/IHByb2R1Y3QucHJpY2UgOiAwXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm9kdWN0ICYmIHByb2R1Y3QucHJpY2UgIT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRbJ3Byb2R1Y3RzJ10ucHVzaChwcm9kdWN0T2JqKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IHByb2R1Y3QgbWFwcGluZyBlbmRlZC4uLlwiKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBsaW5lUHJvbW90aW9uKCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IGxpbmVQcm9tb3Rpb24gbWFwcGluZyBzdGFydGVkLi4uXCIpO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldC5saW5lUHJvbW90aW9uID0gW10gYXMgTGluZVByb21vdGlvbnNbXTtcclxuICAgICAgICBsZXQgbGluZVByb21vdGlvbkFycmF5ID0gW10gYXMgTGluZVByb21vdGlvbnNbXTtcclxuICAgICAgICBpZiAodGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcyAmJiB0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcy5mb3JFYWNoKFxyXG4gICAgICAgICAgICAgICAgKHByb2R1Y3QsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvZHVjdC5pdGVtX2lkID0gKGluZGV4ICsgMSkudG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocHJvZHVjdC5wcmljZV9hZGp1c3RtZW50cyAmJiBwcm9kdWN0LnByaWNlX2FkanVzdG1lbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdC5wcmljZV9hZGp1c3RtZW50cy5mb3JFYWNoKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb21vdGlvbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcHJvbW90aW9uLmNvdXBvbl9jb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsaW5lUHJvbW90aW9uT2JqID0ge30gYXMgTGluZVByb21vdGlvbnM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0cmlnZ2VyID0ge30gYXMgVHJpZ2dlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlci5pdGVtTGluZUlkID0gcHJvZHVjdC5pdGVtX2lkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyLnF1YW50aXR5ID0gcHJvZHVjdC5xdWFudGl0eSA/IHByb2R1Y3QucXVhbnRpdHkgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lUHJvbW90aW9uT2JqLnRyaWdnZXIgPSBbXSBhcyBUcmlnZ2VyW107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmoudHJpZ2dlci5wdXNoKHRyaWdnZXIpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbk9iai5pdGVtTGluZUlkID0gaW5kZXggKyAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lUHJvbW90aW9uT2JqLnByb21vdGlvbklkID0gcHJvbW90aW9uLnByb21vdGlvbl9pZCA/IHByb21vdGlvbi5wcm9tb3Rpb25faWQgOiAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbk9iai5kaXNwbGF5VGV4dCA9IHByb21vdGlvbi5pdGVtX3RleHQgPyBwcm9tb3Rpb24uaXRlbV90ZXh0IDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmoucHJvbW90aW9uVHlwZSA9IHByb21vdGlvbi5hcHBsaWVkX2Rpc2NvdW50ICYmIHByb21vdGlvbi5hcHBsaWVkX2Rpc2NvdW50LnR5cGUgPyBwcm9tb3Rpb24uYXBwbGllZF9kaXNjb3VudC50eXBlIDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmoucHJvbW90aW9uQW1vdW50ID0gcHJvbW90aW9uLnByaWNlID8gTWF0aC5hYnMocHJvbW90aW9uLnByaWNlKSA6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmoubmFtZSA9IHByb21vdGlvbi5jb3Vwb25fY29kZSAgPyBwcm9tb3Rpb24uY291cG9uX2NvZGUgOiAocHJvbW90aW9uLml0ZW1fdGV4dCA/IHByb21vdGlvbi5pdGVtX3RleHQgOicnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbk9iai5wcm9tb3Rpb25JbmZvID0gcHJvbW90aW9uLml0ZW1fdGV4dCA/IHByb21vdGlvbi5pdGVtX3RleHQgOiAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbk9iai5wcm9tb3Rpb25MaW5lUHJpY2UgPSBwcm9kdWN0LnByaWNlIC0gTWF0aC5hYnMocHJvbW90aW9uLnByaWNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbkFycmF5LnB1c2gobGluZVByb21vdGlvbk9iaik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0LmxpbmVQcm9tb3Rpb24gPSBsaW5lUHJvbW90aW9uQXJyYXk7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogbGluZVByb21vdGlvbiBtYXBwaW5nIGVuZGVkLi4uXCIpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uKCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IHRyYW5zYWN0aW9uUHJvbW90aW9uIG1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcclxuXHJcbiAgICAgICAgbGV0IHRyYW5zYWN0aW9uUHJvbW90aW9uQXJyYXkgPSB0aGlzLmdldFRyYW5zYWN0aW9uUHJvbW90aW9ucyh0aGlzLm9yZGVyRGV0YWlscyk7XHJcblxyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldC50cmFuc2FjdGlvblByb21vdGlvbiA9IHRyYW5zYWN0aW9uUHJvbW90aW9uQXJyYXk7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogdHJhbnNhY3Rpb25Qcm9tb3Rpb24gbWFwcGluZyBlbmRlZC4uLlwiKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBnZXRUcmFuc2FjdGlvblByb21vdGlvbnMoYmFza2V0KTogVHJhbnNhY3Rpb25Qcm9tb3Rpb25bXSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgbGV0IHRyYW5zYWN0aW9uUHJvbW90aW9uQXJyYXkgPSBbXSBhcyBUcmFuc2FjdGlvblByb21vdGlvbltdO1xyXG4gICAgICAgICAgICBpZiAoYmFza2V0Lm9yZGVyX3ByaWNlX2FkanVzdG1lbnRzICYmIGJhc2tldC5vcmRlcl9wcmljZV9hZGp1c3RtZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBiYXNrZXQub3JkZXJfcHJpY2VfYWRqdXN0bWVudHMuZm9yRWFjaChcclxuICAgICAgICAgICAgICAgICAgICAodHJhbnNhY3Rpb25Qcm9tb3Rpb24pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRyYW5zYWN0aW9uUHJvbW90aW9uT2JqID0ge30gYXMgVHJhbnNhY3Rpb25Qcm9tb3Rpb247XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbk9iai5kaXNwbGF5VGV4dCA9IHRyYW5zYWN0aW9uUHJvbW90aW9uLml0ZW1fdGV4dCA/IHRyYW5zYWN0aW9uUHJvbW90aW9uLml0ZW1fdGV4dCA6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbk9iai5uYW1lID0gdHJhbnNhY3Rpb25Qcm9tb3Rpb24uY291cG9uX2NvZGUgPyB0cmFuc2FjdGlvblByb21vdGlvbi5jb3Vwb25fY29kZSA6ICh0cmFuc2FjdGlvblByb21vdGlvbiAuaXRlbV90ZXh0P3RyYW5zYWN0aW9uUHJvbW90aW9uLml0ZW1fdGV4dCA6ICcnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmoucHJvbW90aW9uQW1vdW50ID0gdHJhbnNhY3Rpb25Qcm9tb3Rpb24ucHJpY2UgPyBNYXRoLmFicyh0cmFuc2FjdGlvblByb21vdGlvbi5wcmljZSkgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbk9iai5wcm9tb3Rpb25JZCA9IHRyYW5zYWN0aW9uUHJvbW90aW9uLnByb21vdGlvbl9pZCA/IHRyYW5zYWN0aW9uUHJvbW90aW9uLnByb21vdGlvbl9pZCA6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbk9iai5wcm9tb3Rpb25JbmZvID0gdHJhbnNhY3Rpb25Qcm9tb3Rpb24uaXRlbV90ZXh0ID8gdHJhbnNhY3Rpb25Qcm9tb3Rpb24uaXRlbV90ZXh0IDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uT2JqLnByb21vdGlvblR5cGUgPSB0cmFuc2FjdGlvblByb21vdGlvbi5hcHBsaWVkX2Rpc2NvdW50ICYmIHRyYW5zYWN0aW9uUHJvbW90aW9uLmFwcGxpZWRfZGlzY291bnQudHlwZSA/IHRyYW5zYWN0aW9uUHJvbW90aW9uLmFwcGxpZWRfZGlzY291bnQudHlwZSA6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbk9iai5pdGVtTGluZUlkcyA9IHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMubWFwKChwcm9kdWN0LCBpbmRleCkgPT4gaW5kZXggKyAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRyYW5zYWN0aW9uUHJvbW90aW9uLmNvdXBvbl9jb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbk9iai50eXBlID0gUFJPTU9USU9OX1RZUEUuQ09VUE9OO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmouY291cG9uQ29kZSA9IHRyYW5zYWN0aW9uUHJvbW90aW9uLmNvdXBvbl9jb2RlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmouc3ViTGV2ZWxUeXBlID0gUFJPTU9USU9OX0xFVkVMLlRSQU5TQUNUSU9OO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uQXJyYXkucHVzaCh0cmFuc2FjdGlvblByb21vdGlvbk9iaik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IGdldFRyYW5zYWN0aW9uUHJvbW90aW9ucyA6IFwiLCBKU09OLnN0cmluZ2lmeSh0cmFuc2FjdGlvblByb21vdGlvbkFycmF5KSk7XHJcbiAgICAgICAgICAgIHJldHVybiB0cmFuc2FjdGlvblByb21vdGlvbkFycmF5O1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6ICBmYWlsZWQ6XCIsIGVycm9yKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogIGZhaWxlZDpcIiwgSlNPTi5zdHJpbmdpZnkoZXJyb3IpKTtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlTGluZVByb21vdGlvbldpdGhDb3Vwb24oKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuXHJcbiAgICAgICAgICAgIGxldCB0cmFuc2FjdGlvblByb21vdGlvbiA9IHt9IGFzIFRyYW5zYWN0aW9uUHJvbW90aW9uO1xyXG4gICAgICAgICAgICBsZXQgdHJpZ2dlclByb21vdGlvbiA9IFtdIGFzIFRyaWdnZXJbXTtcclxuICAgICAgICAgICAgaWYgKHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMgJiYgdGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zLmZvckVhY2goXHJcbiAgICAgICAgICAgICAgICAgICAgKHByb2R1Y3QsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QuaXRlbV9pZCA9IChpbmRleCArIDEpLnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJvZHVjdC5wcmljZV9hZGp1c3RtZW50cyAmJiBwcm9kdWN0LnByaWNlX2FkanVzdG1lbnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QucHJpY2VfYWRqdXN0bWVudHMuZm9yRWFjaChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvbW90aW9uKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcm9tb3Rpb24uY291cG9uX2NvZGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0cmlnZ2VyID0ge30gYXMgVHJpZ2dlcjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXIuaXRlbUxpbmVJZCA9IHByb2R1Y3QuaXRlbV9pZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXIucXVhbnRpdHkgPSBwcm9kdWN0LnF1YW50aXR5ID8gcHJvZHVjdC5xdWFudGl0eSA6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyLnRvdGFsUXVhbnRpdHkgPSBwcm9kdWN0LnF1YW50aXR5ID8gcHJvZHVjdC5xdWFudGl0eSA6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyLnByb21vdGlvbkFtb3VudCA9IHByb21vdGlvbi5wcmljZSA/IE1hdGguYWJzKHByb21vdGlvbi5wcmljZSkgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlci5yZWZ1bmRlZFJlYXNvbiA9IHByb21vdGlvbi5jb3Vwb25fY29kZSA/IHByb21vdGlvbi5jb3Vwb25fY29kZSA6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlci5yZWZ1bmRlZFJlYXNvbkRlc2NyaXB0aW9uID0gcHJvbW90aW9uLml0ZW1fdGV4dCA/IHByb21vdGlvbi5pdGVtX3RleHQgOiAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXIucHJvbW90aW9uSWQgPSBwcm9tb3Rpb24ucHJvbW90aW9uX2lkO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlclByb21vdGlvbi5wdXNoKHRyaWdnZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0cmlnZ2VyUHJvbW90aW9uLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uLmRpc3BsYXlUZXh0ID0gdHJpZ2dlclByb21vdGlvblswXS5yZWZ1bmRlZFJlYXNvbkRlc2NyaXB0aW9uO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24ubmFtZSA9IHRyaWdnZXJQcm9tb3Rpb25bMF0ucmVmdW5kZWRSZWFzb247XHJcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbi5wcm9tb3Rpb25BbW91bnQgPSAtKHRyaWdnZXJQcm9tb3Rpb24ucmVkdWNlKChuLCB7IHByb21vdGlvbkFtb3VudCB9KSA9PiBuICsgcHJvbW90aW9uQW1vdW50LCAwKSk7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbi5wcm9tb3Rpb25JZCA9IHRyaWdnZXJQcm9tb3Rpb25bMF0ucHJvbW90aW9uSWQ7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbi5wcm9tb3Rpb25JbmZvID0gdHJpZ2dlclByb21vdGlvblswXS5yZWZ1bmRlZFJlYXNvbkRlc2NyaXB0aW9uO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24uY291cG9uQ29kZSA9IHRyaWdnZXJQcm9tb3Rpb25bMF0ucmVmdW5kZWRSZWFzb247XHJcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbi5pdGVtTGluZUlkcyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24udHlwZSA9IFBST01PVElPTl9UWVBFLkNPVVBPTjtcclxuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uLnN1YkxldmVsVHlwZSA9IFBST01PVElPTl9MRVZFTC5MSU5FO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24udHJpZ2dlciA9IHRyaWdnZXJQcm9tb3Rpb247XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJsaW5lUHJvbW90aW9uIG1hcHBpbmcgZW5kZWQuLi5cIik7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZS1iYXNrZXQ6IHVwZGF0ZUxpbmVQcm9tb3Rpb25XaXRoQ291cG9uXCIsIEpTT04uc3RyaW5naWZ5KHRyYW5zYWN0aW9uUHJvbW90aW9uKSk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIXRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldC50cmFuc2FjdGlvblByb21vdGlvbiApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldC50cmFuc2FjdGlvblByb21vdGlvbiA9IFtdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodHJhbnNhY3Rpb25Qcm9tb3Rpb24gJiYgdHJhbnNhY3Rpb25Qcm9tb3Rpb24ucHJvbW90aW9uSWQgKSB7XHJcbiAgICAgICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldC50cmFuc2FjdGlvblByb21vdGlvbi5wdXNoKHRyYW5zYWN0aW9uUHJvbW90aW9uKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJFYmFza2V0OiBTYWxlc2ZvcmNlOiBsaW5lUHJvbW90aW9uIG1hcHBpbmc9PiBmYWlsZWQ6XCIsIGVycm9yKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJFYmFza2V0OiBTYWxlc2ZvcmNlOiBsaW5lUHJvbW90aW9uIG1hcHBpbmc9PiBmYWlsZWQ6XCIsIEpTT04uc3RyaW5naWZ5KGVycm9yKSk7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVRyYW5zYWN0aW9uUHJvbW90aW9uUHJ0aW9uQ2FsYygpIHtcclxuICAgICAgICBpZiAodGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0LnRyYW5zYWN0aW9uUHJvbW90aW9uICYmIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldC50cmFuc2FjdGlvblByb21vdGlvbi5sZW5ndGggPiAwKSB7XHJcblxyXG4gICAgICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXQudHJhbnNhY3Rpb25Qcm9tb3Rpb24uZm9yRWFjaCh0ciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25Qcm9tb3Rpb25Qcm9kdWN0UG9ydGlvbkNhbGModGhpcy53ZWJSZXR1cm5PYmplY3QgLCB0cilcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25Qcm9kdWN0UG9ydGlvbkNhbGMoXHJcbiAgICAgICAgdHhEb2M6IFRyYW5zYWN0aW9uRG9jdW1lbnQsXHJcbiAgICAgICAgcHJvbW90aW9uOiBUcmFuc2FjdGlvblByb21vdGlvblxyXG4gICAgKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgIGBlYmFza2V0OiB0cmFuc2FjdGlvblByb21vdGlvblByb2R1Y3RQb3J0aW9uQ2FsYzogdHJuc2FjdGlvblByb21vdGlvbjogJHtKU09OLnN0cmluZ2lmeShcclxuICAgICAgICAgICAgICAgIHByb21vdGlvblxyXG4gICAgICAgICAgICApfWBcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChwcm9tb3Rpb24udHlwZSA9PT0gUFJPTU9USU9OX1RZUEUuQ09VUE9OICYmIHByb21vdGlvbi5zdWJMZXZlbFR5cGUgPT09IFBST01PVElPTl9MRVZFTC5MSU5FKSB7XHJcbiAgICAgICAgICAgIHR4RG9jLmJhc2tldC5wcm9kdWN0cy5mb3JFYWNoKChwcm9kdWN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBwcm9kdWN0ID0gdGhpcy52YWxpZGF0ZVByb2R1Y3RJdGVtRGlzY291bnQocHJvZHVjdCk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHByb21vdGlvbi50cmlnZ2VyICYmIHByb21vdGlvbi50cmlnZ2VyLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm9tb3Rpb24udHJpZ2dlci5mb3JFYWNoKCh0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0Lml0ZW1MaW5lSWQgPT09IHByb2R1Y3QuaXRlbUxpbmVJZC50b1N0cmluZygpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0Lml0ZW1EaXNjb3VudHMudHJuUHJvbW90aW9uc1BvcnRpb24gKz0gdC5wcm9tb3Rpb25BbW91bnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0eERvYy5iYXNrZXQucHJvZHVjdHMuZm9yRWFjaCgocHJvZHVjdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcHJvZHVjdCA9IHRoaXMudmFsaWRhdGVQcm9kdWN0SXRlbURpc2NvdW50KHByb2R1Y3QpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHByb21vdGlvbi5pdGVtTGluZUlkcy5pbmNsdWRlcygrcHJvZHVjdC5pdGVtTGluZUlkKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb2R1Y3RJdGVtID0gdGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcy5maW5kKHByb2R1Y3RJdGVtID0+IHByb2R1Y3RJdGVtLnByb2R1Y3RfaWQgPT09IHByb2R1Y3QuU0tVKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2FjdGlvblByb21vdGlvblBvcnRpb24gPSAocHJvZHVjdEl0ZW0gJiYgcHJvZHVjdEl0ZW0ucHJpY2VfYWZ0ZXJfaXRlbV9kaXNjb3VudCAmJiBwcm9kdWN0SXRlbS5wcmljZV9hZnRlcl9vcmRlcl9kaXNjb3VudCkgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAocHJvZHVjdEl0ZW0ucHJpY2VfYWZ0ZXJfaXRlbV9kaXNjb3VudCAtIHByb2R1Y3RJdGVtLnByaWNlX2FmdGVyX29yZGVyX2Rpc2NvdW50KSA6IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvZHVjdC5pdGVtRGlzY291bnRzLnRyblByb21vdGlvbnNQb3J0aW9uICs9IHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKHRyYW5zYWN0aW9uUHJvbW90aW9uUG9ydGlvbik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHhEb2M7XHJcbiAgICB9XHJcblxyXG4gICAgICBcclxuICAgICAgcHVibGljIHZhbGlkYXRlUHJvZHVjdEl0ZW1EaXNjb3VudChwcm9kdWN0OiBUUHJvZHVjdCkge1xyXG4gICAgICAgIGlmICghcHJvZHVjdC5pdGVtRGlzY291bnRzKSB7XHJcbiAgICAgICAgICBwcm9kdWN0Lml0ZW1EaXNjb3VudHMgPSB7XHJcbiAgICAgICAgICAgIHRybkRpc2NvdW50c1BvcnRpb246IDAsXHJcbiAgICAgICAgICAgIHRyblByb21vdGlvbnNQb3J0aW9uOiAwLFxyXG4gICAgICAgICAgICByZWZ1bmRQb3J0aW9uOiAwLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHByb2R1Y3Q7XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICBcclxuICAgIGN1c3RvbWVyKCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IGN1c3RvbWVyIG1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcclxuICAgICAgICBsZXQgY3VzdG9tZXJPYmogPSB7fSBhcyBDdXN0b21lcjtcclxuICAgICAgICBjdXN0b21lck9iai5lbWFpbCA9IHRoaXMub3JkZXJEZXRhaWxzLmN1c3RvbWVyX2luZm8gJiYgdGhpcy5vcmRlckRldGFpbHMuY3VzdG9tZXJfaW5mby5lbWFpbCA/IHRoaXMub3JkZXJEZXRhaWxzLmN1c3RvbWVyX2luZm8uZW1haWwgOiAnJztcclxuICAgICAgICBjdXN0b21lck9iai5maXJzdE5hbWUgPSB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MgJiYgdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzLmZpcnN0X25hbWUgPyB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MuZmlyc3RfbmFtZSA6ICcnO1xyXG4gICAgICAgIGN1c3RvbWVyT2JqLmxhc3ROYW1lID0gdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5sYXN0X25hbWUgPyB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MubGFzdF9uYW1lIDogJyc7XHJcblxyXG4gICAgICAgIGxldCBzaGlwcGluZ0FkZHJlc3MgPSBbXSBhcyBBZGRyZXNzW107XHJcbiAgICAgICAgdGhpcy5vcmRlckRldGFpbHMuc2hpcG1lbnRzLmZvckVhY2goXHJcbiAgICAgICAgICAgIHNoaXBtZW50ID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCBzaGlwcGluZ0FkZHJlc3NPYmogPSB7fSBhcyBBZGRyZXNzO1xyXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzT2JqLmlkID0gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcyAmJiBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzLmlkID8gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcy5pZCA6ICcnO1xyXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzT2JqLmNvdW50cnlDb2RlID0gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcyAmJiBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzLmNvdW50cnlfY29kZSA/IHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MuY291bnRyeV9jb2RlIDogJyc7XHJcbiAgICAgICAgICAgICAgICBzaGlwcGluZ0FkZHJlc3NPYmouYWRkcmVzczEgPSBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzICYmIHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MuYWRkcmVzczEgPyBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzLmFkZHJlc3MxIDogJyc7XHJcbiAgICAgICAgICAgICAgICBzaGlwcGluZ0FkZHJlc3NPYmouY2l0eSA9IHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MgJiYgc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcy5jaXR5ID8gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcy5jaXR5IDogJyc7XHJcbiAgICAgICAgICAgICAgICBzaGlwcGluZ0FkZHJlc3NPYmouY291bnRyeSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzT2JqLnBvc3RDb2RlID0gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcyAmJiBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzLnBvc3RhbF9jb2RlID8gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcy5wb3N0YWxfY29kZSA6ICcnO1xyXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzLnB1c2goc2hpcHBpbmdBZGRyZXNzT2JqKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIClcclxuICAgICAgICBjdXN0b21lck9iai5zaGlwcGluZ0FkZHJlc3MgPSBzaGlwcGluZ0FkZHJlc3M7XHJcblxyXG4gICAgICAgIGxldCBiaWxsaW5nQWRkcmVzcyA9IFtdIGFzIEFkZHJlc3NbXTtcclxuICAgICAgICBsZXQgYmlsbGluZ0FkZHJlc3NPYmogPSB7fSBhcyBBZGRyZXNzO1xyXG4gICAgICAgIGJpbGxpbmdBZGRyZXNzT2JqLmlkID0gdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5pZCA/IHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5pZCA6ICcnO1xyXG4gICAgICAgIGJpbGxpbmdBZGRyZXNzT2JqLmNvdW50cnlDb2RlID0gdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5jb3VudHJ5X2NvZGUgPyB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MuY291bnRyeV9jb2RlIDogJyc7XHJcbiAgICAgICAgYmlsbGluZ0FkZHJlc3NPYmouYWRkcmVzczEgPSB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MgJiYgdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzLmFkZHJlc3MxID8gdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzLmFkZHJlc3MxIDogJyc7XHJcbiAgICAgICAgYmlsbGluZ0FkZHJlc3NPYmouY2l0eSA9IHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcyAmJiB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MuY2l0eSA/IHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5jaXR5IDogJyc7XHJcbiAgICAgICAgYmlsbGluZ0FkZHJlc3NPYmouY291bnRyeSA9ICcnO1xyXG4gICAgICAgIGJpbGxpbmdBZGRyZXNzT2JqLnBvc3RDb2RlID0gJyc7XHJcbiAgICAgICAgYmlsbGluZ0FkZHJlc3MucHVzaChiaWxsaW5nQWRkcmVzc09iaik7XHJcbiAgICAgICAgY3VzdG9tZXJPYmouYmlsbGluZ0FkZHJlc3MgPSBiaWxsaW5nQWRkcmVzcztcclxuXHJcbiAgICAgICAgbGV0IHNoaXBtZW50RGV0YWlscyA9IFtdIGFzIFNoaXBtZW50RGV0YWlsc1tdO1xyXG4gICAgICAgIHRoaXMub3JkZXJEZXRhaWxzLnNoaXBtZW50cy5mb3JFYWNoKFxyXG4gICAgICAgICAgICBzaGlwbWVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgc2hpcG1lbnREZXRhaWxzT2JqID0ge30gYXMgU2hpcG1lbnREZXRhaWxzO1xyXG4gICAgICAgICAgICAgICAgc2hpcG1lbnREZXRhaWxzT2JqLmlkID0gc2hpcG1lbnQuc2hpcG1lbnRfaWQgPyBzaGlwbWVudC5zaGlwbWVudF9pZCA6ICcnO1xyXG4gICAgICAgICAgICAgICAgc2hpcG1lbnREZXRhaWxzT2JqLmRlbGl2ZXJ5R3JvdXAgPSBzaGlwbWVudC5zaGlwbWVudF9pZCA/IHNoaXBtZW50LnNoaXBtZW50X2lkIDogJyc7XHJcbiAgICAgICAgICAgICAgICBzaGlwbWVudERldGFpbHMucHVzaChzaGlwbWVudERldGFpbHNPYmopO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgICBjdXN0b21lck9iai5zaGlwbWVudERldGFpbHMgPSBzaGlwbWVudERldGFpbHM7XHJcblxyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmN1c3RvbWVyID0gY3VzdG9tZXJPYmo7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogY3VzdG9tZXIgbWFwcGluZyBlbmRlZC4uLlwiKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBpc0luU3RvcmVPcmRlcigpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBpc0luU3RvcmVPcmRlciBtYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XHJcbiAgICAgICAgaWYodGhpcy5vcmRlckRldGFpbHMuY19pc0luU3RvcmVPcmRlcikge1xyXG4gICAgICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5pc0luU3RvcmVPcmRlciA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IGlzSW5TdG9yZU9yZGVyIG1hcHBpbmcgZW5kZWQuLi5cIik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHMoKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHMgbWFwcGluZyBzdGFydGVkLi4uXCIpO1xyXG4gICAgICAgIGxldCBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscyA9IFtdIGFzIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzW107XHJcbiAgICAgICAgaWYgKHRoaXMub3JkZXJEZXRhaWxzLnNoaXBtZW50cyAmJiB0aGlzLm9yZGVyRGV0YWlscy5zaGlwbWVudHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLm9yZGVyRGV0YWlscy5zaGlwbWVudHMuZm9yRWFjaChcclxuICAgICAgICAgICAgICAgIHNoaXBtZW50ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHNPYmogPSB7fSBhcyBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscztcclxuICAgICAgICAgICAgICAgICAgICBsZXQgdHJhbnNhY3Rpb25JbmZvID0ge30gYXMgVHJhbnNhY3Rpb25JbmZvO1xyXG4gICAgICAgICAgICAgICAgICAgIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzT2JqLnVuaXF1ZUlkID0gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfbm8gPyB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl9ubyA6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzT2JqLnByb3ZpZGVyVHlwZSA9IFBST1ZJREVSUy5TQUxFU0ZPUkNFO1xyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uSW5mby5zaGlwcGluZ0lkID0gc2hpcG1lbnQuc2hpcHBpbmdfbWV0aG9kICYmIHNoaXBtZW50LnNoaXBwaW5nX21ldGhvZC5pZCA/IHNoaXBtZW50LnNoaXBwaW5nX21ldGhvZC5pZCA6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uSW5mby5leHRlcm5hbFNoaXBwaW5nSWQgPSBzaGlwbWVudC5zaGlwbWVudF9pZCA/IHNoaXBtZW50LnNoaXBtZW50X2lkIDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHNPYmouZGV0YWlscyA9IHRyYW5zYWN0aW9uSW5mbztcclxuICAgICAgICAgICAgICAgICAgICBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscy5wdXNoKGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzT2JqKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHMgPSBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscztcclxuICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscyBtYXBwaW5nIGVuZGVkLi4uXCIpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIGJhc2tldFN1bW1hcnkoKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogYmFza2V0U3VtbWFyeSBtYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XHJcbiAgICAgICAgbGV0IGJhc2tldFN1bW1hcnkgPSB7fSBhcyBCYXNrZXRTdW1tYXJ5O1xyXG4gICAgICAgIGxldCBiYXNrZXRTdW1tYXJ5V2ViT3JkZXIgPSB7fSBhcyBCYXNrZXRTdW1tYXJ5RGV0YWlscztcclxuICAgICAgICBjb25zdCBsaW5lUHJvbW90aW9uVG90YWwgPSB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXQubGluZVByb21vdGlvbi5tYXAobGluZVByb21vdGlvbiA9PiBsaW5lUHJvbW90aW9uLnByb21vdGlvbkFtb3VudCkucmVkdWNlKChhY2N1bXVsYXRvciwgY3VycmVudFZhbHVlKSA9PiBhY2N1bXVsYXRvciArIGN1cnJlbnRWYWx1ZSwgMCk7XHJcbiAgICAgICAgY29uc3QgdHJhbnNhY3Rpb25Qcm9tb3Rpb25Ub3RhbCA9IHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldC50cmFuc2FjdGlvblByb21vdGlvbi5tYXAodHJhbnNhY3Rpb25Qcm9tb3Rpb24gPT4gdHJhbnNhY3Rpb25Qcm9tb3Rpb24ucHJvbW90aW9uQW1vdW50KS5yZWR1Y2UoKGFjY3VtdWxhdG9yLCBjdXJyZW50VmFsdWUpID0+IGFjY3VtdWxhdG9yICsgY3VycmVudFZhbHVlLCAwKTtcclxuICAgICAgICBiYXNrZXRTdW1tYXJ5LmRpc2NvdW50VG90YWwgPSBsaW5lUHJvbW90aW9uVG90YWwgKyB0cmFuc2FjdGlvblByb21vdGlvblRvdGFsO1xyXG4gICAgICAgIGJhc2tldFN1bW1hcnkuVkFUVG90YWwgPSB0aGlzLm9yZGVyRGV0YWlscy50YXhfdG90YWwgPyB0aGlzLm9yZGVyRGV0YWlscy50YXhfdG90YWwgOiAwO1xyXG4gICAgICAgIGJhc2tldFN1bW1hcnkuc2FsZVRvdGFsID0gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfdG90YWwgPyB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl90b3RhbCA6IDA7XHJcbiAgICAgICAgYmFza2V0U3VtbWFyeS5iYXNrZXRUb3RhbCA9IHRoaXMub3JkZXJEZXRhaWxzLm9yZGVyX3RvdGFsID8gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfdG90YWwgOiAwO1xyXG4gICAgICAgIGJhc2tldFN1bW1hcnkudG90YWxJdGVtcyA9IHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMgJiYgdGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcy5sZW5ndGggPiAwID8gdGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcy5sZW5ndGggOiAwO1xyXG4gICAgICAgIGJhc2tldFN1bW1hcnkuc2hpcHBpbmdUb3RhbCA9IHRoaXMub3JkZXJEZXRhaWxzLnNoaXBwaW5nX3RvdGFsID8gdGhpcy5vcmRlckRldGFpbHMuc2hpcHBpbmdfdG90YWwgOiAwO1xyXG4gICAgICAgIGJhc2tldFN1bW1hcnkuYmFza2V0VG90YWxXaXRoU2hpcHBpbmdUb3RhbCA9IHRoaXMub3JkZXJEZXRhaWxzLm9yZGVyX3RvdGFsID8gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfdG90YWwgOiAwO1xyXG4gICAgICAgIGJhc2tldFN1bW1hcnlXZWJPcmRlci5zaGlwcGluZ1RvdGFsID0gdGhpcy5vcmRlckRldGFpbHMuc2hpcHBpbmdfdG90YWwgPyB0aGlzLm9yZGVyRGV0YWlscy5zaGlwcGluZ190b3RhbCA6IDA7XHJcbiAgICAgICAgYmFza2V0U3VtbWFyeVdlYk9yZGVyLmJhc2tldFRvdGFsV2l0aFNoaXBwaW5nVG90YWwgPSB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl90b3RhbCA/IHRoaXMub3JkZXJEZXRhaWxzLm9yZGVyX3RvdGFsIDogMDtcclxuICAgICAgICBiYXNrZXRTdW1tYXJ5LndlYk9yZGVyID0gYmFza2V0U3VtbWFyeVdlYk9yZGVyO1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFN1bW1hcnkgPSBiYXNrZXRTdW1tYXJ5O1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IGJhc2tldFN1bW1hcnkgbWFwcGluZyBlbmRlZC4uLlwiKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBkZXZpY2VJZChkZXZpY2VJZCkge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmRldmljZUlkID0gZGV2aWNlSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgdGVybWluYWxJZCh0ZXJtaW5hbElkKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QudGVybWluYWxJZCA9IHRlcm1pbmFsSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgb3JnQ29kZShvcmdDb2RlKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Qub3JnQ29kZSA9IG9yZ0NvZGU7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcmVJZChzdG9yZUlkKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3RvcmVJZCA9IHN0b3JlSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcmVOb2RlSWQoc3RvcmVOb2RlSWQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnN0b3JlTm9kZUlkID0gc3RvcmVOb2RlSWQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcmVOb2RlU3RydWN0dXJlKHN0b3JlTm9kZVN0cnVjdHVyZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3RvcmVOb2RlU3RydWN0dXJlID0gc3RvcmVOb2RlU3RydWN0dXJlO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIGRvY0lkKGRvY0lkKSB7XHJcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuaWQgPSBkb2NJZDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVVc2VySUQodXNlcklEOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC51c2VySWQgPSB1c2VySUQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlVXNlck5hbWUobmFtZSkge1xyXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnVzZXJOYW1lID0gbmFtZTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBidWlsZCgpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBtYXBwaW5nIGRvbmUuLi5cIik7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMud2ViUmV0dXJuT2JqZWN0O1xyXG4gICAgfVxyXG5cclxuICAgIGdldFVUQ0RhdGVUaW1lKGRhdGUpIHtcclxuICAgICAgICBpZiAoZGF0ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSkudG9JU09TdHJpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|