@hmcts/ccpay-web-component 6.0.0-beta16 → 6.0.0-beta17
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/hmcts-ccpay-web-component.umd.js +20 -20
- package/bundles/hmcts-ccpay-web-component.umd.js.map +1 -1
- package/bundles/hmcts-ccpay-web-component.umd.min.js +1 -1
- package/bundles/hmcts-ccpay-web-component.umd.min.js.map +1 -1
- package/esm2015/lib/components/case-transactions/case-transactions.component.js +15 -20
- package/esm2015/lib/components/pba-payment/pba-payment.component.js +7 -2
- package/esm5/lib/components/case-transactions/case-transactions.component.js +15 -20
- package/esm5/lib/components/pba-payment/pba-payment.component.js +7 -2
- package/fesm2015/hmcts-ccpay-web-component.js +20 -20
- package/fesm2015/hmcts-ccpay-web-component.js.map +1 -1
- package/fesm5/hmcts-ccpay-web-component.js +20 -20
- package/fesm5/hmcts-ccpay-web-component.js.map +1 -1
- package/package.json +1 -1
|
@@ -382,17 +382,13 @@ var CaseTransactionsComponent = /** @class */ (function () {
|
|
|
382
382
|
}
|
|
383
383
|
}));
|
|
384
384
|
}
|
|
385
|
-
|
|
386
|
-
if (
|
|
387
|
-
_this.orderStatus =
|
|
385
|
+
// this.orderPendingPayments = (this.orderFeesTotal - this.orderRemissionTotal) - this.orderTotalPayments;
|
|
386
|
+
if (paymentGroup.service_request_status === 'Paid') {
|
|
387
|
+
_this.orderStatus = paymentGroup.service_request_status;
|
|
388
388
|
_this.orderAddBtnEnable = false;
|
|
389
389
|
}
|
|
390
|
-
else if (
|
|
391
|
-
_this.orderStatus =
|
|
392
|
-
_this.orderAddBtnEnable = true;
|
|
393
|
-
}
|
|
394
|
-
else {
|
|
395
|
-
_this.orderStatus = 'Not paid';
|
|
390
|
+
else if (paymentGroup.service_request_status === 'Partially paid' || paymentGroup.service_request_status === 'Not paid') {
|
|
391
|
+
_this.orderStatus = paymentGroup.service_request_status;
|
|
396
392
|
_this.orderAddBtnEnable = true;
|
|
397
393
|
}
|
|
398
394
|
//this.orderLevelFees.push({orderRefId:paymentGroup['payment_group_reference'],orderTotalFees: this.orderFeesTotal,orderStatus: this.orderStatus,orderParty:'Santosh', orderCCDEvent:'Case Creation',orderCreated: new Date(), orderAddBtnEnable: this.orderAddBtnEnable}); this.cpoDetails['createdTimestamp']
|
|
@@ -484,18 +480,17 @@ var CaseTransactionsComponent = /** @class */ (function () {
|
|
|
484
480
|
}));
|
|
485
481
|
}
|
|
486
482
|
}
|
|
483
|
+
_this.orderStatus = orderDetail.service_request_status;
|
|
487
484
|
}));
|
|
488
|
-
this.orderPendingPayments = (this.orderFeesTotal - this.orderRemissionTotal) - this.orderTotalPayments;
|
|
485
|
+
//this.orderPendingPayments = (this.orderFeesTotal - this.orderRemissionTotal) - this.orderTotalPayments;
|
|
489
486
|
// this.orderRef = orderReferenceObj.orderRefId;
|
|
490
|
-
if (this.orderPendingPayments <= 0.00) {
|
|
491
|
-
|
|
492
|
-
}
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
this.orderStatus = 'Not paid';
|
|
498
|
-
}
|
|
487
|
+
// if (this.orderPendingPayments <= 0.00) {
|
|
488
|
+
// this.orderStatus = 'Paid';
|
|
489
|
+
// } else if (this.orderFeesTotal > 0 && (this.orderTotalPayments > 0 || this.orderRemissionTotal > 0) && (this.orderTotalPayments < this.orderPendingPayments)) {
|
|
490
|
+
// this.orderStatus = 'Partially paid'
|
|
491
|
+
// } else {
|
|
492
|
+
// this.orderStatus = 'Not paid'
|
|
493
|
+
// }
|
|
499
494
|
if (this.cpoDetails !== null) {
|
|
500
495
|
this.orderParty = this.cpoDetails['responsibleParty'];
|
|
501
496
|
this.orderCreated = this.cpoDetails['createdTimestamp'];
|
|
@@ -1440,4 +1435,4 @@ if (false) {
|
|
|
1440
1435
|
/* Skipping unhandled member: ;*/
|
|
1441
1436
|
/* Skipping unhandled member: ;*/
|
|
1442
1437
|
}
|
|
1443
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS10cmFuc2FjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9jYXNlLXRyYW5zYWN0aW9ucy9jYXNlLXRyYW5zYWN0aW9ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNyRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUM3RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQU10RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0lBR25DLGNBQWMsR0FBRyx1QkFBdUI7QUFFOUM7SUFvRkUsbUNBQW9CLE1BQWMsRUFDeEIsa0JBQXNDLEVBQ3RDLHlCQUFvRCxFQUNwRCx1QkFBZ0QsRUFDaEQsbUJBQXdDLEVBQ3hDLGlCQUFvQztRQUw5QyxpQkFNSztRQU5lLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDeEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0Qyw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBQ3BELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBN0U5QyxrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUMxQixhQUFRLEdBQWUsRUFBRSxDQUFDO1FBQzFCLGdCQUFX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NkNBQWlCOztJQUVqQiw0Q0FBa0I7O0lBQ2xCLGlEQUE0Qjs7SUFDNUIsZ0RBQTBCOztJQUcxQixnREFBd0I7O0lBRXhCLHlEQUFzQzs7SUFDdEMsMERBQWtDOztJQUNsQyxtREFBMEM7O0lBQzFDLDZEQUEwQzs7SUFDMUMsK0NBQXVCOztJQUN2Qiw2Q0FBaUI7O0lBQ2pCLGdEQUFvQjs7SUFDcEIsK0NBQW1COztJQUNuQixpREFBbUI7O0lBQ25CLGtEQUFzQjs7SUFDdEIsd0RBQTRCOztJQUM1QixzREFBMkI7O0lBQzNCLG1EQUE4Qjs7SUFDOUIsd0RBQW1DOztJQUNuQyx1REFBa0M7O0lBQ2xDLHlEQUFvQzs7SUFDcEMsOENBQW1COztJQUNuQix5Q0FBYzs7SUFDZCwwQ0FBdUI7O0lBQ3ZCLDJEQUF3Qzs7SUFDeEMsNkRBQTBDOztJQUMxQywrREFBNEM7O0lBQzVDLCtEQUE2RTs7SUFDN0UsMERBQW9IOztJQUNwSCxnREFBeUI7O0lBQ3pCLDZEQUFrQzs7SUFDbEMsbURBQXVCOztJQUN2QixvREFBd0I7O0lBbXRCeEIsb0VBSUM7O0lBQ0Qsd0VBSUM7O0lBRUQsaUVBTUM7Ozs7O0lBbnVCVywyQ0FBc0I7Ozs7O0lBQ2hDLHVEQUE4Qzs7Ozs7SUFDOUMsOERBQTREOzs7OztJQUM1RCw0REFBd0Q7Ozs7O0lBQ3hELHdEQUFnRDs7Ozs7SUFDaEQsc0RBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYXltZW50TGliQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGF5bWVudC1saWIuY29tcG9uZW50JztcbmltcG9ydCB7IElQYXltZW50R3JvdXAgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lQYXltZW50R3JvdXAnO1xuaW1wb3J0IHsgQ2FzZVRyYW5zYWN0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYXNlLXRyYW5zYWN0aW9ucy9jYXNlLXRyYW5zYWN0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IEJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9idWxrLXNjYW5pbmctcGF5bWVudC9idWxrLXNjYW5pbmctcGF5bWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFBheW1lbnRWaWV3U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BheW1lbnQtdmlldy9wYXltZW50LXZpZXcuc2VydmljZSc7XG5pbXBvcnQgeyBPcmRlcnNsaXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29yZGVyc2xpc3Quc2VydmljZSc7XG5pbXBvcnQgeyBJRmVlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JRmVlJztcbmltcG9ydCB7IElQYXltZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUGF5bWVudCc7XG5pbXBvcnQgeyBJUmVtaXNzaW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUmVtaXNzaW9uJztcbmltcG9ydCB7IElQYXltZW50VmlldyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVBheW1lbnRWaWV3JztcbmltcG9ydCB7IElPcmRlclJlZmVyZW5jZUZlZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSU9yZGVyUmVmZXJlbmNlRmVlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTZXJ2aWNlUmVxdWVzdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc2VydmljZS1yZXF1ZXN0L3NlcnZpY2UtcmVxdWVzdC5jb21wb25lbnQnO1xuXG5jb25zdCBCU19FTkFCTEVfRkxBRyA9ICdidWxrLXNjYW4tZW5hYmxpbmctZmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY3BheS1jYXNlLXRyYW5zYWN0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXNlLXRyYW5zYWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Nhc2UtdHJhbnNhY3Rpb25zLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDYXNlVHJhbnNhY3Rpb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCdMT0dHRURJTlVTRVJST0xFUycpIExPR0dFRElOVVNFUlJPTEVTOiBzdHJpbmdbXTtcbiAgQElucHV0KCkgaXNUYWtlUGF5bWVudDogYm9vbGVhbjtcbiAgdGFrZVBheW1lbnQ6IGJvb2xlYW47XG4gIHNlcnZpY2VyZXF1ZXN0OiBzdHJpbmc7XG4gIGNjZENhc2VOdW1iZXI6IHN0cmluZztcbiAgZXhjUmVmZXJlbmNlOiBzdHJpbmc7XG4gIHBheW1lbnRHcm91cHM6IGFueVtdID0gW107XG4gIHBheW1lbnRzOiBJUGF5bWVudFtdID0gW107XG4gIG5vblBheW1lbnRzOiBJUGF5bWVudFtdID0gW107XG4gIGFsbFBheW1lbnRzOiBJUGF5bWVudFtdID0gW107XG4gIHJlbWlzc2lvbnM6IElSZW1pc3Npb25bXSA9IFtdO1xuICBmZWVzOiBJRmVlW10gPSBbXTtcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gIHRvdGFsRmVlczogbnVtYmVyO1xuICB0b3RhbFBheW1lbnRzOiBudW1iZXI7XG4gIHRvdGFsTm9uT2ZmUGF5bWVudHM6IG51bWJlcjtcbiAgdG90YWxSZW1pc3Npb25zOiBudW1iZXI7XG4gIHNlbGVjdGVkT3B0aW9uOiBzdHJpbmc7XG4gIGRjbk51bWJlcjogc3RyaW5nO1xuICBwYXltZW50UmVmOiBzdHJpbmc7XG4gIGlzVHVybk9mZjogYm9vbGVhbjtcbiAgaXNOZXdQY2lwYWxPZmY6IGJvb2xlYW47XG4gIGlzUmVmdW5kUmVtaXNzaW9uOiBib29sZWFuID0gdHJ1ZTtcbiAgaXNPbGRQY2lwYWxPZmY6IGJvb2xlYW47XG4gIGlzU3RyYXRlZ2ljRml4RW5hYmxlOiBib29sZWFuO1xuICBpc0FkZEZlZUJ0bkVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBpc0V4Y2VwdGlvblJlY29yZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1VucHJvY2Vzc2VkUmVjb3JkU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXhjZXB0aW9uUmVjb3JkUmVmZXJlbmNlOiBzdHJpbmc7XG4gIGlzQW55RmVlR3JvdXBBdmlsYWJsZTogYm9vbGVhbiA9IHRydWU7XG4gIGlzSGlzdG9yaWNHcm91cEF2YWlsYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0J1bGtTY2FuRW5hYmxlO1xuICBpc1JlbWlzc2lvbnNNYXRjaDogYm9vbGVhbjtcbiAgdmlld1N0YXR1cyA9ICdtYWluJztcbiAgaXNSZW1vdmVCdG5EaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBmZWVJZDogSUZlZTtcbiAgY2xBbW91bnREdWU6IG51bWJlciA9IDA7XG4gIHVucHJvY2Vzc2VkUmVjb3JkQ291bnQ6IG51bWJlcjtcbiAgaXNGZWVSZWNvcmRzRXhpc3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNHcnBPdXRzdGFuZGluZ0FtdFBvc2l0aXZlOiBib29sZWFuID0gZmFsc2U7XG4gIHRvdGFsUmVmdW5kQW1vdW50OiBOdW1iZXI7XG4gIGNhc2VUeXBlOiBTdHJpbmc7XG4gIC8vIGxzQ2NkTnVtYmVyOiBhbnkgPSBscy5nZXQ8YW55PignY2NkTnVtYmVyJyk7XG4gIHBheW1lbnQ6IElQYXltZW50O1xuICBwYXltZW50R3JvdXA6IElQYXltZW50R3JvdXA7XG4gIHBheW1lbnRWaWV3OiBJUGF5bWVudFZpZXc7XG5cbiAgLy9PcmRlciBjaGFuZ2VzXG4gIG9yZGVyRGV0YWlsOiBhbnlbXSA9IFtdO1xuXG4gIGlzQWRkUmVtaXNzaW9uRW5hYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIG9yZGVyUmVtaXNzaW9uRGV0YWlsczogYW55W10gPSBbXTtcbiAgb3JkZXJMZXZlbEZlZXM6IElPcmRlclJlZmVyZW5jZUZlZVtdID0gW107XG4gIGlzcGF5bWVudEdyb3VwQXBpc3VjY2VzczogYm9vbGVhbiA9IGZhbHNlO1xuICBjcG9EZXRhaWxzOiBhbnkgPSBudWxsO1xuICBvcmRlclJlZjogc3RyaW5nO1xuICBvcmRlclN0YXR1czogc3RyaW5nO1xuICBvcmRlclBhcnR5OiBzdHJpbmc7XG4gIG9yZGVyQ3JlYXRlZDogRGF0ZTtcbiAgb3JkZXJDQ0RFdmVudDogc3RyaW5nO1xuICBzZXJ2aWNlUmVxdWVzdFZhbHVlOiBzdHJpbmc7XG4gIG9yZGVyQWRkQnRuRW5hYmxlOiBib29sZWFuO1xuICBvcmRlckZlZXNUb3RhbDogbnVtYmVyID0gMC4wMDtcbiAgb3JkZXJSZW1pc3Npb25Ub3RhbDogbnVtYmVyID0gMC4wMDtcbiAgb3JkZXJUb3RhbFBheW1lbnRzOiBudW1iZXIgPSAwLjAwO1xuICBvcmRlclBlbmRpbmdQYXltZW50czogbnVtYmVyID0gMC4wMDtcbiAgaXNDUE9Eb3duOiBib29sZWFuO1xuICB0ZXN0OiBib29sZWFuO1xuICBpc1BCQTogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0lzc3VlUmVmdW5mQnRuRW5hYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIGlzQWRkUmVtaXNzaW9uQnRuRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1JlZnVuZFJlbWlzc2lvbkJ0bkVuYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBhbGxvd2VkUm9sZXNUb0FjY2Vzc1JlZnVuZCA9IFsncGF5bWVudHMtcmVmdW5kLWFwcHJvdmVyJywgJ3BheW1lbnRzLXJlZnVuZCddO1xuICBpc0VsaWdpYmxlNFBCQVBheW1lbnQgPSBbJ3B1aS1maW5hbmNlLW1hbmFnZXInLCAncHVpLXVzZXItbWFuYWdlcicsICdwdWktb3JnYW5pc2F0aW9uLW1hbmFnZXInLCAncHVpLWNhc2UtbWFuYWdlciddO1xuICBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XG4gIGlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZTogYm9vbGVhbjtcbiAgbmF2aWdhdGlvbnBhZ2U6IHN0cmluZztcbiAgcmVtaXNzaW9uRmVlQW10OiBudW1iZXI7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBwYXltZW50Vmlld1NlcnZpY2U6IFBheW1lbnRWaWV3U2VydmljZSxcbiAgICBwcml2YXRlIGJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2U6IEJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjYXNlVHJhbnNhY3Rpb25zU2VydmljZTogQ2FzZVRyYW5zYWN0aW9uc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYXltZW50TGliQ29tcG9uZW50OiBQYXltZW50TGliQ29tcG9uZW50LFxuICAgIHByaXZhdGUgT3JkZXJzbGlzdFNlcnZpY2U6IE9yZGVyc2xpc3RTZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5uYXZpZ2F0aW9ucGFnZSAgPSAnJztcbiAgICBpZih0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldHBheW1lbnRQYWdlVmlldygpICE9PSBudWxsKSB7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldHBheW1lbnRQYWdlVmlldygpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5wYXltZW50VmlldyA9IGRhdGEpO1xuICAgIH1cbiAgICBpZigodGhpcy5MT0dHRURJTlVTRVJST0xFUyA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuTE9HR0VESU5VU0VSUk9MRVMubGVuZ3RoID09PSAwICkmJnRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0VXNlclJvbGVzTGlzdCgpICE9PSBudWxsKSB7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldFVzZXJSb2xlc0xpc3QoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMuTE9HR0VESU5VU0VSUk9MRVMgPSBkYXRhKTtcbiAgICB9XG4gICAgaWYodGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRuYXZpZ2F0aW9uUGFnZVZhbHVlKCkgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0bmF2aWdhdGlvblBhZ2VWYWx1ZSgpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5uYXZpZ2F0aW9ucGFnZSA9IGRhdGEpO1xuICAgIH1cbiAgICBcbiAgICBcbiAgICBpZiAodGhpcy5wYXltZW50VmlldyAhPT0gdW5kZWZpbmVkICYmIHRoaXMucGF5bWVudFZpZXcgIT09IG51bGwgJiYgdGhpcy5wYXltZW50Vmlldy5wYXltZW50X2dyb3VwX3JlZmVyZW5jZSAhPT0gdW5kZWZpbmVkICYmIHRoaXMubmF2aWdhdGlvbnBhZ2UgPT09ICdwYXltZW50ZGV0YWlsc3BhZ2UnKSB7XG4gICAgICB0aGlzLmdvVG9QYXllbWVudFZpZXcodGhpcy5wYXltZW50Vmlldy5wYXltZW50X2dyb3VwX3JlZmVyZW5jZSwgdGhpcy5wYXltZW50Vmlldy5yZWZlcmVuY2UsIHRoaXMucGF5bWVudFZpZXcubWV0aG9kKTtcbiAgICB9XG4gICAgdGhpcy5pc0dycE91dHN0YW5kaW5nQW10UG9zaXRpdmUgPSBmYWxzZTtcbiAgICB0aGlzLmNjZENhc2VOdW1iZXIgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuQ0NEX0NBU0VfTlVNQkVSO1xuICAgIHRoaXMuY2FzZVR5cGUgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuQ0FTRVRZUEU7XG4gICAgaWYgKHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5DQ0RfQ0FTRV9OVU1CRVIgPT09ICcnKSB7XG4gICAgICB0aGlzLmNjZENhc2VOdW1iZXIgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuRVhDX1JFRkVSRU5DRTtcbiAgICB9XG4gICAgdGhpcy5leGNSZWZlcmVuY2UgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuRVhDX1JFRkVSRU5DRTtcbiAgICB0aGlzLnRha2VQYXltZW50ID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlRBS0VQQVlNRU5UO1xuXG4gICAgdGhpcy5zZXJ2aWNlcmVxdWVzdCA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5TRVJWSUNFUkVRVUVTVC50b1N0cmluZygpO1xuICAgIGlmICh0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuU0VSVklDRVJFUVVFU1QudG9TdHJpbmcoKSA9PT0gJ3RydWUnKSB7XG4gICAgICB0aGlzLnNlcnZpY2VSZXF1ZXN0VmFsdWUgPSAndHJ1ZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VydmljZVJlcXVlc3RWYWx1ZSA9ICdmYWxzZSc7XG4gICAgfVxuICAgIHRoaXMuaXNCdWxrU2NhbkVuYWJsZSA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU0JTRU5BQkxFO1xuICAgIHRoaXMuZGNuTnVtYmVyID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LkRDTl9OVU1CRVI7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5TRUxFQ1RFRF9PUFRJT04udG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICB0aGlzLmlzVHVybk9mZiA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU1RVUk5PRkY7XG4gICAgdGhpcy5pc05ld1BjaXBhbE9mZiA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU05FV1BDSVBBTE9GRjtcbiAgICB0aGlzLmlzT2xkUGNpcGFsT2ZmID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTT0xEUENJUEFMT0ZGO1xuICAgIHRoaXMuaXNTdHJhdGVnaWNGaXhFbmFibGUgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNTRkVOQUJMRTtcbiAgICBpZiAoIXRoaXMuaXNUdXJuT2ZmKSB7XG4gICAgICAvLyBpZiAodGhpcy5sc0NjZE51bWJlciAhPT0gdGhpcy5jY2RDYXNlTnVtYmVyKSB7XG4gICAgICAvLyAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYC9jY2Qtc2VhcmNoP3Rha2VQYXltZW50PXRydWVgKTtcbiAgICAgIC8vIH1cblxuICAgICAgdGhpcy5jYXNlVHJhbnNhY3Rpb25zU2VydmljZS5nZXRQYXltZW50R3JvdXBzKHRoaXMuY2NkQ2FzZU51bWJlcikuc3Vic2NyaWJlKFxuICAgICAgICBwYXltZW50R3JvdXBzID0+IHtcbiAgICAgICAgICB0aGlzLmlzQW55RmVlR3JvdXBBdmlsYWJsZSA9dHJ1ZTtcbiAgICAgICAgICB0aGlzLnBheW1lbnRHcm91cHMgPSBwYXltZW50R3JvdXBzWydwYXltZW50X2dyb3VwcyddO1xuICAgICAgICAgIHRoaXMuY2FsY3VsYXRlQW1vdW50cygpO1xuICAgICAgICAgIHRoaXMuY2FsY3VsYXRlT3JkZXJGZWVzQW1vdW50cygpO1xuICAgICAgICAgIHRoaXMuY2FsY3VsYXRlUmVmdW5kQW1vdW50KCk7XG4gICAgICAgICAgaWYgKHRoaXMuaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlKSB7XG4gICAgICAgICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldFNlbGVjdGVkT3JkZXJSZWZJZCgpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5vcmRlclJlZiA9IGRhdGEpO1xuICAgICAgICAgICAgdGhpcy5nb1RvT3JkZXJWaWV3RGV0YWlsU2VjdGlvbih0aGlzLm9yZGVyUmVmKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZ2V0UGFydHlEZXRhaWxzKHRoaXMuY2NkQ2FzZU51bWJlcikuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICByZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jcG9EZXRhaWxzID0gSlNPTi5wYXJzZShyZXNwb25zZSkuY29udGVudFswXTtcbiAgXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSA8YW55PmVycm9yLnJlcGxhY2UoL1wiL2csXCJcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0NQT0Rvd24gPSB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICBcbiAgICAgICAgICB9XG5cbiAgICAgICAgXG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSA8YW55PmVycm9yLnJlcGxhY2UoL1wiL2csXCJcIik7XG4gICAgICAgICAgdGhpcy5pc0FueUZlZUdyb3VwQXZpbGFibGUgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnNldERlZmF1bHRzKCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FzZVRyYW5zYWN0aW9uc1NlcnZpY2UuZ2V0UGF5bWVudEdyb3Vwcyh0aGlzLmNjZENhc2VOdW1iZXIpLnN1YnNjcmliZShcbiAgICAgICAgcGF5bWVudEdyb3VwcyA9PiB7XG4gICAgICAgICAgdGhpcy5pc0FueUZlZUdyb3VwQXZpbGFibGUgPXRydWU7XG4gICAgICAgICAgdGhpcy5wYXltZW50R3JvdXBzID0gcGF5bWVudEdyb3Vwc1sncGF5bWVudF9ncm91cHMnXTtcbiAgICAgICAgICB0aGlzLmNhbGN1bGF0ZUFtb3VudHMoKTtcbiAgICAgICAgICB0aGlzLmNhbGN1bGF0ZU9yZGVyRmVlc0Ftb3VudHMoKTtcbiAgICAgICAgICB0aGlzLnRvdGFsUmVmdW5kQW1vdW50ID0gdGhpcy5jYWxjdWxhdGVSZWZ1bmRBbW91bnQoKTtcbiAgICAgICAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5nZXRQYXJ0eURldGFpbHModGhpcy5jY2RDYXNlTnVtYmVyKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICByZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuY3BvRGV0YWlscyA9IEpTT04ucGFyc2UocmVzcG9uc2UpLmNvbnRlbnRbMF07XG5cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IDxhbnk+ZXJyb3IucmVwbGFjZSgvXCIvZyxcIlwiKTtcbiAgICAgICAgICAgICAgdGhpcy5zZXREZWZhdWx0cygpO1xuICAgICAgICAgICAgICB0aGlzLmlzQ1BPRG93biA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcblxuICAgICAgICB9LFxuICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gPGFueT5lcnJvci5yZXBsYWNlKC9cIi9nLFwiXCIpO1xuICAgICAgICAgIHRoaXMuaXNBbnlGZWVHcm91cEF2aWxhYmxlID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5zZXREZWZhdWx0cygpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cblxuICAgIGlmKCB0aGlzLnBheW1lbnRHcm91cHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jaGVja0ZvckV4Y2VwdGlvblJlY29yZCgpO1xuICAgIH1cbiAgIFxuICAgIGlmKHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0aXNGcm9tU2VydmljZVJlcXVlc3RQYWdlcygpICE9PSBudWxsKSB7XG4gICAgICB0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldGlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZXMoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMuaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlID0gZGF0YSk7XG4gICAgfVxuICBcbiAgfVxuXG4gIHNldERlZmF1bHRzKCk6IHZvaWQge1xuICAgIHRoaXMudG90YWxQYXltZW50cyA9IDAuMDA7XG4gICAgdGhpcy50b3RhbFJlbWlzc2lvbnMgPSAwLjAwO1xuICAgIHRoaXMudG90YWxOb25PZmZQYXltZW50cyA9IDAuMDA7XG4gICAgdGhpcy50b3RhbEZlZXMgPSAwLjAwO1xuICB9XG5cbiAgZ2V0QWxsb2NhdGlvblN0YXR1cyhwYXltZW50czogYW55KSB7XG5cbiAgICBsZXQgcGF5bWVudEFsbG9jYXRpb24gPSBwYXltZW50cy5wYXltZW50X2FsbG9jYXRpb24sXG4gICAgICBpc0FsbG9jYXRpb25TdGF0dXNFeGlzdCA9IHBheW1lbnRBbGxvY2F0aW9uLmxlbmd0aCA+IDA7XG4gICAgcmV0dXJuIGlzQWxsb2NhdGlvblN0YXR1c0V4aXN0ID8gcGF5bWVudEFsbG9jYXRpb25bMF0uYWxsb2NhdGlvbl9zdGF0dXMgOiAnLSc7XG4gICAgLy9yZXR1cm4gXCItXCI7XG5cbiAgfVxuXG4gIGNoZWNrRm9yRXhjZXB0aW9uUmVjb3JkKCk6IHZvaWQge1xuICAgXG4gICAgaWYgKHRoaXMucGF5bWVudEdyb3Vwcy5sZW5ndGggPT09IDAgJiYgKHRoaXMuc2VsZWN0ZWRPcHRpb24udG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gJ2NjZG9yZXhjZXB0aW9uJyB8fCB0aGlzLnNlbGVjdGVkT3B0aW9uLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09ICdyYycpKSB7XG4gICAgICB0aGlzLmJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2UuZ2V0QlNQYXltZW50c0J5Q0NEKHRoaXMuY2NkQ2FzZU51bWJlcikuc3Vic2NyaWJlKFxuICAgICAgICByZWNvcmREYXRhID0+IHtcbiAgICAgICAgICBpZiAocmVjb3JkRGF0YVsnZGF0YSddICYmIHJlY29yZERhdGFbJ2RhdGEnXS5leGNlcHRpb25fcmVjb3JkX3JlZmVyZW5jZSAmJiByZWNvcmREYXRhWydkYXRhJ10uZXhjZXB0aW9uX3JlY29yZF9yZWZlcmVuY2UubGVuZ3RoID4gMCAmJiByZWNvcmREYXRhWydkYXRhJ10uY2NkX3JlZmVyZW5jZSA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuaXNFeGNlcHRpb25SZWNvcmQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuaXNBZGRGZWVCdG5FbmFibGVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocmVjb3JkRGF0YVsnZGF0YSddICYmIHJlY29yZERhdGFbJ2RhdGEnXS5leGNlcHRpb25fcmVjb3JkX3JlZmVyZW5jZSAmJiByZWNvcmREYXRhWydkYXRhJ10uZXhjZXB0aW9uX3JlY29yZF9yZWZlcmVuY2UubGVuZ3RoID4gMCAmJiByZWNvcmREYXRhWydkYXRhJ10uY2NkX3JlZmVyZW5jZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmlzRXhjZXB0aW9uUmVjb3JkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuaXNBZGRGZWVCdG5FbmFibGVkID0gZmFsc2U7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHJlY29yZERhdGFbJ2RhdGEnXSAmJiByZWNvcmREYXRhWydkYXRhJ10uZXhjZXB0aW9uX3JlY29yZF9yZWZlcmVuY2UgJiYgcmVjb3JkRGF0YVsnZGF0YSddLmV4Y2VwdGlvbl9yZWNvcmRfcmVmZXJlbmNlLmxlbmd0aCA9PT0gdW5kZWZpbmVkICYmIHJlY29yZERhdGFbJ2RhdGEnXS5jY2RfcmVmZXJlbmNlID4gMCkge1xuICAgICAgICAgICAgdGhpcy5pc0V4Y2VwdGlvblJlY29yZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5pc0FkZEZlZUJ0bkVuYWJsZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGF5bWVudEdyb3Vwcy5sZW5ndGggPT09IDAgJiYgdGhpcy5zZWxlY3RlZE9wdGlvbi50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSAnZGNuJykge1xuICAgICAgaWYgKHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5DQ0RfQ0FTRV9OVU1CRVIubGVuZ3RoID4gMCAmJiB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuRVhDX1JFRkVSRU5DRS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuaXNFeGNlcHRpb25SZWNvcmQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc0FkZEZlZUJ0bkVuYWJsZWQgPSB0cnVlO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuQ0NEX0NBU0VfTlVNQkVSLmxlbmd0aCA9PT0gMCAmJiB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuRVhDX1JFRkVSRU5DRS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuaXNFeGNlcHRpb25SZWNvcmQgPSB0cnVlO1xuICAgICAgICB0aGlzLmlzQWRkRmVlQnRuRW5hYmxlZCA9IGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pc0V4Y2VwdGlvblJlY29yZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzQWRkRmVlQnRuRW5hYmxlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLnBheW1lbnRHcm91cHMubGVuZ3RoID4gMClcbiAgICAgIHRoaXMucGF5bWVudEdyb3Vwcy5mb3JFYWNoKHBheW1lbnRHcm91cCA9PiB7XG4gICAgICAgIGlmIChwYXltZW50R3JvdXAucGF5bWVudHMpIHtcbiAgICAgICAgICBwYXltZW50R3JvdXAucGF5bWVudHMuZm9yRWFjaChwYXltZW50ID0+IHtcbiAgICAgICAgICAgIGlmIChwYXltZW50LmNhc2VfcmVmZXJlbmNlICE9PSB1bmRlZmluZWQgJiYgcGF5bWVudC5jY2RfY2FzZV9udW1iZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICB0aGlzLmlzRXhjZXB0aW9uUmVjb3JkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgdGhpcy5pc0FkZEZlZUJ0bkVuYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuaXNFeGNlcHRpb25SZWNvcmQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5pc0FkZEZlZUJ0bkVuYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgY2FsY3VsYXRlT3JkZXJGZWVzQW1vdW50cygpOiB2b2lkIHtcbiAgICBsZXQgZmVlc1RvdGFsID0gMC4wMDtcbiAgICB0aGlzLnBheW1lbnRHcm91cHMuZm9yRWFjaChwYXltZW50R3JvdXAgPT4ge1xuICAgICAgdGhpcy5yZXNldE9yZGVyVmFyaWFibGVzKCk7XG4gICAgICBpZiAocGF5bWVudEdyb3VwLmZlZXMpIHtcbiAgICAgICAgcGF5bWVudEdyb3VwLmZlZXMuZm9yRWFjaChmZWUgPT4ge1xuICAgICAgICAgIHRoaXMub3JkZXJGZWVzVG90YWwgPSB0aGlzLm9yZGVyRmVlc1RvdGFsICsgZmVlLmNhbGN1bGF0ZWRfYW1vdW50XG4gICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgaWYgKHBheW1lbnRHcm91cC5yZW1pc3Npb25zKSB7XG4gICAgICAgIHBheW1lbnRHcm91cC5yZW1pc3Npb25zLmZvckVhY2gocmVtaXNzaW9uID0+IHtcbiAgICAgICAgICB0aGlzLm9yZGVyUmVtaXNzaW9uVG90YWwgPSB0aGlzLm9yZGVyUmVtaXNzaW9uVG90YWwgKyByZW1pc3Npb24uaHdmX2Ftb3VudDtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwYXltZW50R3JvdXAucGF5bWVudHMpIHtcbiAgICAgICAgcGF5bWVudEdyb3VwLnBheW1lbnRzLmZvckVhY2gocGF5bWVudCA9PiB7XG4gICAgICAgICAgaWYgKHBheW1lbnQuc3RhdHVzLnRvVXBwZXJDYXNlKCkgPT09ICdTVUNDRVNTJykge1xuICAgICAgICAgICAgdGhpcy5vcmRlclRvdGFsUGF5bWVudHMgPSB0aGlzLm9yZGVyVG90YWxQYXltZW50cyArIHBheW1lbnQuYW1vdW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMub3JkZXJQZW5kaW5nUGF5bWVudHMgPSAodGhpcy5vcmRlckZlZXNUb3RhbCAtIHRoaXMub3JkZXJSZW1pc3Npb25Ub3RhbCkgLSB0aGlzLm9yZGVyVG90YWxQYXltZW50cztcbiAgICAgIGlmICh0aGlzLm9yZGVyUGVuZGluZ1BheW1lbnRzIDw9IDAuMDApIHtcbiAgICAgICAgdGhpcy5vcmRlclN0YXR1cyA9ICdQYWlkJztcbiAgICAgICAgdGhpcy5vcmRlckFkZEJ0bkVuYWJsZSA9IGZhbHNlO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLm9yZGVyRmVlc1RvdGFsID4gMCAmJiAodGhpcy5vcmRlclRvdGFsUGF5bWVudHMgPiAwIHx8IHRoaXMub3JkZXJSZW1pc3Npb25Ub3RhbCA+IDApICYmICh0aGlzLm9yZGVyVG90YWxQYXltZW50cyA8IHRoaXMub3JkZXJQZW5kaW5nUGF5bWVudHMpKSB7XG4gICAgICAgIHRoaXMub3JkZXJTdGF0dXMgPSAnUGFydGlhbGx5IHBhaWQnXG4gICAgICAgIHRoaXMub3JkZXJBZGRCdG5FbmFibGUgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vcmRlclN0YXR1cyA9ICdOb3QgcGFpZCdcbiAgICAgICAgdGhpcy5vcmRlckFkZEJ0bkVuYWJsZSA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8vdGhpcy5vcmRlckxldmVsRmVlcy5wdXNoKHtvcmRlclJlZklkOnBheW1lbnRHcm91cFsncGF5bWVudF9ncm91cF9yZWZlcmVuY2UnXSxvcmRlclRvdGFsRmVlczogdGhpcy5vcmRlckZlZXNUb3RhbCxvcmRlclN0YXR1czogdGhpcy5vcmRlclN0YXR1cyxvcmRlclBhcnR5OidTYW50b3NoJywgb3JkZXJDQ0RFdmVudDonQ2FzZSBDcmVhdGlvbicsb3JkZXJDcmVhdGVkOiBuZXcgRGF0ZSgpLCBvcmRlckFkZEJ0bkVuYWJsZTogdGhpcy5vcmRlckFkZEJ0bkVuYWJsZX0pOyB0aGlzLmNwb0RldGFpbHNbJ2NyZWF0ZWRUaW1lc3RhbXAnXVxuICAgICAgaWYgKHRoaXMuY3BvRGV0YWlscyAhPT0gbnVsbCkge1xuICAgICAgICB0aGlzLm9yZGVyTGV2ZWxGZWVzLnB1c2goeyBvcmRlclJlZklkOiBwYXltZW50R3JvdXBbJ3BheW1lbnRfZ3JvdXBfcmVmZXJlbmNlJ10sIG9yZGVyVG90YWxGZWVzOiB0aGlzLm9yZGVyRmVlc1RvdGFsLCBvcmRlclN0YXR1czogdGhpcy5vcmRlclN0YXR1cywgb3JkZXJQYXJ0eTogdGhpcy5jcG9EZXRhaWxzWydyZXNwb25zaWJsZVBhcnR5J10sIG9yZGVyQ0NERXZlbnQ6IHRoaXMuY3BvRGV0YWlsc1snYWN0aW9uJ10sIG9yZGVyQ3JlYXRlZDogcGF5bWVudEdyb3VwWydkYXRlX2NyZWF0ZWQnXSwgb3JkZXJBZGRCdG5FbmFibGU6IHRoaXMub3JkZXJBZGRCdG5FbmFibGUgfSk7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub3JkZXJMZXZlbEZlZXMucHVzaCh7IG9yZGVyUmVmSWQ6IHBheW1lbnRHcm91cFsncGF5bWVudF9ncm91cF9yZWZlcmVuY2UnXSwgb3JkZXJUb3RhbEZlZXM6IHRoaXMub3JkZXJGZWVzVG90YWwsIG9yZGVyU3RhdHVzOiB0aGlzLm9yZGVyU3RhdHVzLCBvcmRlclBhcnR5OiAnJywgb3JkZXJDQ0RFdmVudDogJycsIG9yZGVyQ3JlYXRlZDogcGF5bWVudEdyb3VwWydkYXRlX2NyZWF0ZWQnXSwgb3JkZXJBZGRCdG5FbmFibGU6IHRoaXMub3JkZXJBZGRCdG5FbmFibGUgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLm9yZGVyU3RhdHVzICE9PSAnUGFpZCcpIHtcbiAgICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRPcmRlcnNMaXN0KHRoaXMub3JkZXJMZXZlbEZlZXMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuXG4gIHJlc2V0T3JkZXJWYXJpYWJsZXMoKTogdm9pZCB7XG4gICAgdGhpcy5vcmRlckZlZXNUb3RhbCA9IDAuMDA7XG4gICAgdGhpcy5vcmRlclRvdGFsUGF5bWVudHMgPSAwLjAwO1xuICAgIHRoaXMub3JkZXJSZW1pc3Npb25Ub3RhbCA9IDAuMDA7XG4gICAgdGhpcy5vcmRlclBlbmRpbmdQYXltZW50cyA9IDAuMDA7XG4gICAgdGhpcy5pc0FkZEZlZUJ0bkVuYWJsZWQgPSB0cnVlO1xuXG4gIH07XG5cbiAgZ29Ub09yZGVyVmlld0RldGFpbFNlY3Rpb24ob3JkZXJSZWZlcmVuY2VPYmo6IGFueSkge1xuICAgIGlmICh0aGlzLmlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZSkge1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRPcmRlclJlZklkKG9yZGVyUmVmZXJlbmNlT2JqKTtcbiAgICAgIHRoaXMub3JkZXJSZWYgPSBvcmRlclJlZmVyZW5jZU9iajtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRPcmRlclJlZklkKG9yZGVyUmVmZXJlbmNlT2JqLm9yZGVyUmVmSWQpO1xuICAgICAgdGhpcy5vcmRlclJlZiA9IG9yZGVyUmVmZXJlbmNlT2JqLm9yZGVyUmVmSWQ7XG4gICAgfVxuXG4gICAgdGhpcy5vcmRlckZlZXNUb3RhbCA9IDAuMDA7XG4gICAgdGhpcy5vcmRlclJlbWlzc2lvblRvdGFsID0gMC4wMDtcbiAgICB0aGlzLm9yZGVyVG90YWxQYXltZW50cyA9IDAuMDA7XG4gICAgdGhpcy5vcmRlclBlbmRpbmdQYXltZW50cyA9IDAuMDA7XG5cbiAgICB0aGlzLm9yZGVyRGV0YWlsID0gdGhpcy5wYXltZW50R3JvdXBzLmZpbHRlcih4ID0+IHgucGF5bWVudF9ncm91cF9yZWZlcmVuY2UgPT09IHRoaXMub3JkZXJSZWYpO1xuICAgIHRoaXMub3JkZXJEZXRhaWwuZm9yRWFjaChvcmRlckRldGFpbCA9PiB7XG4gICAgICBpZiAob3JkZXJEZXRhaWwuZmVlcykge1xuICAgICAgICBvcmRlckRldGFpbC5mZWVzLmZvckVhY2goZmVlID0+IHtcbiAgICAgICAgICB0aGlzLm9yZGVyRmVlc1RvdGFsID0gdGhpcy5vcmRlckZlZXNUb3RhbCArIGZlZS5jYWxjdWxhdGVkX2Ftb3VudDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAob3JkZXJEZXRhaWwucmVtaXNzaW9ucykge1xuICAgICAgICBvcmRlckRldGFpbC5yZW1pc3Npb25zLmZvckVhY2gocmVtaXNzaW9uID0+IHtcbiAgICAgICAgICB0aGlzLm9yZGVyUmVtaXNzaW9uVG90YWwgPSB0aGlzLm9yZGVyUmVtaXNzaW9uVG90YWwgKyByZW1pc3Npb24uaHdmX2Ftb3VudDtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChvcmRlckRldGFpbC5wYXltZW50cykge1xuICAgICAgICAgIHRoaXMucGF5bWVudCA9IG9yZGVyRGV0YWlsLnBheW1lbnRzWzBdO1xuICAgICAgICAgIG9yZGVyRGV0YWlsLnBheW1lbnRzLmZvckVhY2gocGF5bWVudCA9PiB7XG4gICAgICAgICAgICBpZiAocGF5bWVudC5zdGF0dXMudG9VcHBlckNhc2UoKSA9PT0gJ1NVQ0NFU1MnKSB7XG4gICAgICAgICAgICAgIHRoaXMub3JkZXJUb3RhbFBheW1lbnRzID0gdGhpcy5vcmRlclRvdGFsUGF5bWVudHMgKyBwYXltZW50LmFtb3VudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMub3JkZXJQZW5kaW5nUGF5bWVudHMgPSAodGhpcy5vcmRlckZlZXNUb3RhbCAtIHRoaXMub3JkZXJSZW1pc3Npb25Ub3RhbCkgLSB0aGlzLm9yZGVyVG90YWxQYXltZW50cztcbiAgICAvLyB0aGlzLm9yZGVyUmVmID0gb3JkZXJSZWZlcmVuY2VPYmoub3JkZXJSZWZJZDtcbiAgICBpZiAodGhpcy5vcmRlclBlbmRpbmdQYXltZW50cyA8PSAwLjAwKSB7XG4gICAgICB0aGlzLm9yZGVyU3RhdHVzID0gJ1BhaWQnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5vcmRlckZlZXNUb3RhbCA+IDAgJiYgKHRoaXMub3JkZXJUb3RhbFBheW1lbnRzID4gMCB8fCB0aGlzLm9yZGVyUmVtaXNzaW9uVG90YWwgPiAwKSAmJiAodGhpcy5vcmRlclRvdGFsUGF5bWVudHMgPCB0aGlzLm9yZGVyUGVuZGluZ1BheW1lbnRzKSkge1xuICAgICAgdGhpcy5vcmRlclN0YXR1cyA9ICdQYXJ0aWFsbHkgcGFpZCdcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcmRlclN0YXR1cyA9ICdOb3QgcGFpZCdcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jcG9EZXRhaWxzICE9PSBudWxsKSB7XG4gICAgICB0aGlzLm9yZGVyUGFydHkgPSB0aGlzLmNwb0RldGFpbHNbJ3Jlc3BvbnNpYmxlUGFydHknXTtcbiAgICAgIHRoaXMub3JkZXJDcmVhdGVkID0gdGhpcy5jcG9EZXRhaWxzWydjcmVhdGVkVGltZXN0YW1wJ107XG4gICAgICB0aGlzLm9yZGVyQ0NERXZlbnQgPSB0aGlzLmNwb0RldGFpbHNbJ2FjdGlvbiddO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9yZGVyUGFydHkgPSAnJztcbiAgICAgIHRoaXMub3JkZXJDQ0RFdmVudCA9ICcnO1xuICAgICAgdGhpcy5vcmRlckNyZWF0ZWQgPSBvcmRlclJlZmVyZW5jZU9iai5vcmRlckNyZWF0ZWQ7XG4gICAgfVxuICAgIHRoaXMudmlld1N0YXR1cyA9ICdvcmRlci1mdWxsLXZpZXcnO1xuICB9XG5cbiAgcmVkaXJlY3RUb09yZGVyRmVlU2VhcmNoUGFnZShldmVudDogYW55LCBvcmRlcmVmOiBhbnkpIHtcbiAgICBpZihvcmRlcmVmLm9yZGVyQWRkQnRuRW5hYmxlKSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuYnNwYXltZW50ZGNuID0gbnVsbDtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQucGF5bWVudEdyb3VwUmVmZXJlbmNlID0gb3JkZXJlZi5vcmRlclJlZklkO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc1R1cm5PZmYgPSB0aGlzLmlzVHVybk9mZjtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAnZmVlLXN1bW1hcnknO1xuICAgIH1cbiAgfVxuXG4gXG5cblxuICBjYWxjdWxhdGVBbW91bnRzKCk6IHZvaWQge1xuICAgIGxldCBmZWVzVG90YWwgPSAwLjAwLFxuICAgICAgcGF5bWVudHNUb3RhbCA9IDAuMDAsXG4gICAgICByZW1pc3Npb25zVG90YWwgPSAwLjAwLFxuICAgICAgbm9uT2ZmTGluZVBheW1lbnQgPSAwLjAwO1xuXG4gICAgdGhpcy5wYXltZW50R3JvdXBzLmZvckVhY2gocGF5bWVudEdyb3VwID0+IHtcbiAgICAgIGlmIChwYXltZW50R3JvdXAuZmVlcykge1xuICAgICAgICBwYXltZW50R3JvdXAuZmVlcy5mb3JFYWNoKGZlZSA9PiB7XG4gICAgICAgICAgLy8gbmV3IGZlYXR1cmUgQXBwb3J0aW9ubWVudCB0b2dnbGUgY2hhbmdlc1xuICAgICAgICAgIGlmICghdGhpcy5pc1R1cm5PZmYpIHtcbiAgICAgICAgICAgIGlmIChmZWUuZGF0ZV9jcmVhdGVkKSB7XG4gICAgICAgICAgICAgIGxldCBhID0gZmVlLmFtb3VudF9kdWUgPT09IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgbGV0IGIgPSBmZWUuYW1vdW50X2R1ZSA8PSAwO1xuICAgICAgICAgICAgICB0aGlzLmNsQW1vdW50RHVlID0gYSA/IHRoaXMuY2xBbW91bnREdWUgKyBmZWUubmV0X2Ftb3VudCA6IGIgPyB0aGlzLmNsQW1vdW50RHVlICsgMCA6IHRoaXMuY2xBbW91bnREdWUgKyBmZWUuYW1vdW50X2R1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZlZVsncGF5bWVudF9ncm91cF9yZWZlcmVuY2UnXSA9IHBheW1lbnRHcm91cFsncGF5bWVudF9ncm91cF9yZWZlcmVuY2UnXTtcbiAgICAgICAgICAgIHRoaXMuZmVlcy5wdXNoKGZlZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZlZXNUb3RhbCA9IGZlZXNUb3RhbCArIGZlZS5jYWxjdWxhdGVkX2Ftb3VudDtcbiAgICAgICAgICAgIHRoaXMuZmVlcy5wdXNoKGZlZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaXNUdXJuT2ZmKSB7XG4gICAgICAgIHRoaXMudG90YWxGZWVzID0gZmVlc1RvdGFsO1xuICAgICAgfVxuXG4gICAgICBpZiAocGF5bWVudEdyb3VwLnBheW1lbnRzKSB7XG4gICAgICAgIHBheW1lbnRHcm91cC5wYXltZW50cy5mb3JFYWNoKHBheW1lbnQgPT4ge1xuICAgICAgICAgIC8vIG5ldyBmZWF0dXJlIEFwcG9ydGlvbm1lbnQgdG9nZ2xlIGNoYW5nZXNcbiAgICAgICAgICBpZiAoIXRoaXMuaXNUdXJuT2ZmKSB7XG4gICAgICAgICAgICBsZXQgYWxsb2NhdGlvbkxlbiA9IHBheW1lbnQucGF5bWVudF9hbGxvY2F0aW9uO1xuXG4gICAgICAgICAgICBpZiAocGF5bWVudC5zdGF0dXMudG9VcHBlckNhc2UoKSA9PT0gJ1NVQ0NFU1MnKSB7XG4gICAgICAgICAgICAgIHBheW1lbnRzVG90YWwgPSBwYXltZW50c1RvdGFsICsgcGF5bWVudC5hbW91bnQ7XG4gICAgICAgICAgICAgIGlmIChhbGxvY2F0aW9uTGVuLmxlbmd0aCA9PT0gMCB8fCBhbGxvY2F0aW9uTGVuLmxlbmd0aCA+IDAgJiYgYWxsb2NhdGlvbkxlblswXS5hbGxvY2F0aW9uX3N0YXR1cyA9PT0gJ0FsbG9jYXRlZCcpIHtcbiAgICAgICAgICAgICAgICBub25PZmZMaW5lUGF5bWVudCA9IG5vbk9mZkxpbmVQYXltZW50ICsgcGF5bWVudC5hbW91bnQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGFsbG9jYXRpb25MZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMubm9uUGF5bWVudHMucHVzaChwYXltZW50KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGFsbG9jYXRpb25MZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgIHRoaXMucGF5bWVudHMucHVzaChwYXltZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBheW1lbnQucGF5bWVudEdyb3VwUmVmZXJlbmNlID0gcGF5bWVudEdyb3VwLnBheW1lbnRfZ3JvdXBfcmVmZXJlbmNlXG4gICAgICAgICAgICB0aGlzLmFsbFBheW1lbnRzLnB1c2gocGF5bWVudCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChwYXltZW50LnN0YXR1cy50b1VwcGVyQ2FzZSgpID09PSAnU1VDQ0VTUycpIHtcbiAgICAgICAgICAgICAgcGF5bWVudHNUb3RhbCA9IHBheW1lbnRzVG90YWwgKyBwYXltZW50LmFtb3VudDtcbiAgICAgICAgICAgICAgdGhpcy5wYXltZW50cy5wdXNoKHBheW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGF5bWVudC5wYXltZW50R3JvdXBSZWZlcmVuY2UgPSBwYXltZW50R3JvdXAucGF5bWVudF9ncm91cF9yZWZlcmVuY2VcbiAgICAgICAgICAgIHRoaXMuYWxsUGF5bWVudHMucHVzaChwYXltZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy50b3RhbFBheW1lbnRzID0gcGF5bWVudHNUb3RhbDtcbiAgICAgIC8vIG5ldyBmZWF0dXJlIEFwcG9ydGlvbm1lbnQgdG9nZ2xlIGNoYW5nZXNcbiAgICAgIGlmICghdGhpcy5pc1R1cm5PZmYpIHtcbiAgICAgICAgdGhpcy50b3RhbE5vbk9mZlBheW1lbnRzID0gbm9uT2ZmTGluZVBheW1lbnQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChwYXltZW50R3JvdXAucmVtaXNzaW9ucykge1xuICAgICAgICBwYXltZW50R3JvdXAucmVtaXNzaW9ucy5mb3JFYWNoKHJlbWlzaXNvbiA9PiB7XG4gICAgICAgICAgcmVtaXNzaW9uc1RvdGFsID0gcmVtaXNzaW9uc1RvdGFsICsgcmVtaXNpc29uLmh3Zl9hbW91bnQ7XG4gICAgICAgICAgdGhpcy5yZW1pc3Npb25zLnB1c2gocmVtaXNpc29uKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLnRvdGFsUmVtaXNzaW9ucyA9IHJlbWlzc2lvbnNUb3RhbDtcbiAgICB9KTtcblxuICB9XG5cbiAgY2FsY3VsYXRlUmVmdW5kQW1vdW50KCkge1xuICAgIGlmICghdGhpcy5pc1R1cm5PZmYpIHtcbiAgICAgIGxldCBpc05ld1BheW1lbnRHcm91cCA9IGZhbHNlO1xuXG4gICAgICB0aGlzLnBheW1lbnRHcm91cHMuZm9yRWFjaCgocGF5bWVudEdyb3VwLCBpbmRleCkgPT4ge1xuICAgICAgICBsZXQgZ3JwT3V0c3RhbmRpbmdBbW91bnQgPSAwLjAwLFxuICAgICAgICAgIGZlZXNUb3RhbCA9IDAuMDAsXG4gICAgICAgICAgcGF5bWVudHNUb3RhbCA9IDAuMDAsXG4gICAgICAgICAgcmVtaXNzaW9uc1RvdGFsID0gMC4wMCxcbiAgICAgICAgICBmZWVzID0gW107XG5cbiAgICAgICAgaWYgKHBheW1lbnRHcm91cC5mZWVzKSB7XG4gICAgICAgICAgLy8gdGhpcy5pc0ZlZVJlY29yZHNFeGlzdCA9IHRydWU7XG4gICAgICAgICAgcGF5bWVudEdyb3VwLmZlZXMuZm9yRWFjaChmZWUgPT4ge1xuICAgICAgICAgICAgZmVlc1RvdGFsID0gZmVlc1RvdGFsICsgZmVlLmNhbGN1bGF0ZWRfYW1vdW50O1xuXG4gICAgICAgICAgICB0aGlzLmlzUmVtaXNzaW9uc01hdGNoID0gZmFsc2U7XG4gICAgICAgICAgICBwYXltZW50R3JvdXAucmVtaXNzaW9ucy5mb3JFYWNoKHJlbSA9PiB7XG4gICAgICAgICAgICAgIGlmIChyZW0uZmVlX2NvZGUgPT09IGZlZS5jb2RlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1JlbWlzc2lvbnNNYXRjaCA9IHRydWU7XG4gICAgICAgICAgICAgICAgZmVlWydyZW1pc3Npb25zJ10gPSByZW07XG4gICAgICAgICAgICAgICAgLy8gaWYoIWZlZXMuZmluZChrID0+IGsuY29kZT1mZWUuY29kZSkpXG4gICAgICAgICAgICAgICAgLy8ge1xuICAgICAgICAgICAgICAgIGZlZXMucHVzaChmZWUpO1xuICAgICAgICAgICAgICAgIC8vfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzUmVtaXNzaW9uc01hdGNoKSB7XG4gICAgICAgICAgICAgIGZlZXMucHVzaChmZWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZmVlLmRhdGVfY3JlYXRlZCkge1xuICAgICAgICAgICAgICBpc05ld1BheW1lbnRHcm91cCA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmlzSGlzdG9yaWNHcm91cEF2YWlsYWJsZSA9IHRydWU7XG4gICAgICAgICAgICAgIHRoaXMucGF5bWVudEdyb3Vwc1tpbmRleF1bJ29sZCddID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLnBheW1lbnRHcm91cHNbaW5kZXhdLmZlZXMgPSBmZWVzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXltZW50R3JvdXAucGF5bWVudHMpIHtcbiAgICAgICAgICBwYXltZW50R3JvdXAucGF5bWVudHMuZm9yRWFjaChwYXltZW50ID0+IHtcbiAgICAgICAgICAgIGlmIChwYXltZW50LnN0YXR1cy50b1VwcGVyQ2FzZSgpID09PSAnU1VDQ0VTUycpIHtcbiAgICAgICAgICAgICAgcGF5bWVudHNUb3RhbCA9IHBheW1lbnRzVG90YWwgKyBwYXltZW50LmFtb3VudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwYXltZW50R3JvdXAucmVtaXNzaW9ucykge1xuICAgICAgICAgIHBheW1lbnRHcm91cC5yZW1pc3Npb25zLmZvckVhY2gocmVtaXNzaW9uID0+IHtcbiAgICAgICAgICAgIHJlbWlzc2lvbnNUb3RhbCA9IHJlbWlzc2lvbnNUb3RhbCArIHJlbWlzc2lvbi5od2ZfYW1vdW50O1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGdycE91dHN0YW5kaW5nQW1vdW50ID0gKGZlZXNUb3RhbCAtIHJlbWlzc2lvbnNUb3RhbCkgLSBwYXltZW50c1RvdGFsO1xuICAgICAgICBpZiAoZ3JwT3V0c3RhbmRpbmdBbW91bnQgPiAwICYmIGlzTmV3UGF5bWVudEdyb3VwKSB7XG4gICAgICAgICAgdGhpcy5pc0FueUZlZUdyb3VwQXZpbGFibGUgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuaXNGZWVSZWNvcmRzRXhpc3QgPSB0cnVlO1xuICAgICAgICAgIHRoaXMucGF5bWVudFJlZiA9IHBheW1lbnRHcm91cC5wYXltZW50X2dyb3VwX3JlZmVyZW5jZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGF5bWVudEdyb3VwLmZlZXMgJiYgcGF5bWVudEdyb3VwLmZlZXMubGVuZ3RoID4gMCAmJiBncnBPdXRzdGFuZGluZ0Ftb3VudCA8PSAwICYmIGlzTmV3UGF5bWVudEdyb3VwKSB7XG4gICAgICAgICAgdGhpcy5pc0FueUZlZUdyb3VwQXZpbGFibGUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpZiAoKCFpc05ld1BheW1lbnRHcm91cCAmJiB0aGlzLmlzSGlzdG9yaWNHcm91cEF2YWlsYWJsZSkgfHwgKCFpc05ld1BheW1lbnRHcm91cCAmJiAhdGhpcy5pc0hpc3RvcmljR3JvdXBBdmFpbGFibGUpKSB7XG4gICAgICAgIHRoaXMuaXNBbnlGZWVHcm91cEF2aWxhYmxlID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCB0b3RhbFJlZnVuZEFtb3VudCA9IDAsXG4gICAgICAgIGlzRmVlQW1vdW50WmVybyA9IGZhbHNlO1xuICAgICAgdGhpcy5wYXltZW50R3JvdXBzLmZvckVhY2gocGF5bWVudEdyb3VwID0+IHtcbiAgICAgICAgbGV0IGdycE91dHN0YW5kaW5nQW1vdW50ID0gMC4wMCxcbiAgICAgICAgICBmZWVzVG90YWwgPSAwLjAwLFxuICAgICAgICAgIHBheW1lbnRzVG90YWwgPSAwLjAwLFxuICAgICAgICAgIHJlbWlzc2lvbnNUb3RhbCA9IDAuMDA7XG4gICAgICAgIGlmIChwYXltZW50R3JvdXAuZmVlcykge1xuICAgICAgICAgIHRoaXMuaXNGZWVSZWNvcmRzRXhpc3QgPSB0cnVlO1xuICAgICAgICAgIHBheW1lbnRHcm91cC5mZWVzLmZvckVhY2goZmVlID0+IHtcbiAgICAgICAgICAgIGZlZXNUb3RhbCA9IGZlZXNUb3RhbCArIGZlZS5jYWxjdWxhdGVkX2Ftb3VudDtcbiAgICAgICAgICAgIGlmIChmZWUuY2FsY3VsYXRlZF9hbW91bnQgPT09IDApIHtcbiAgICAgICAgICAgICAgaXNGZWVBbW91bnRaZXJvID0gdHJ1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGF5bWVudEdyb3VwLnBheW1lbnRzKSB7XG4gICAgICAgICAgcGF5bWVudEdyb3VwLnBheW1lbnRzLmZvckVhY2gocGF5bWVudCA9PiB7XG4gICAgICAgICAgICBpZiAocGF5bWVudC5zdGF0dXMudG9VcHBlckNhc2UoKSA9PT0gJ1NVQ0NFU1MnKSB7XG4gICAgICAgICAgICAgIHBheW1lbnRzVG90YWwgPSBwYXltZW50c1RvdGFsICsgcGF5bWVudC5hbW91bnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGF5bWVudEdyb3VwLnJlbWlzc2lvbnMpIHtcbiAgICAgICAgICBwYXltZW50R3JvdXAucmVtaXNzaW9ucy5mb3JFYWNoKHJlbWlzc2lvbiA9PiB7XG4gICAgICAgICAgICByZW1pc3Npb25zVG90YWwgPSByZW1pc3Npb25zVG90YWwgKyByZW1pc3Npb24uaHdmX2Ftb3VudDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBncnBPdXRzdGFuZGluZ0Ftb3VudCA9IChmZWVzVG90YWwgLSByZW1pc3Npb25zVG90YWwpIC0gcGF5bWVudHNUb3RhbDtcbiAgICAgICAgaWYgKGdycE91dHN0YW5kaW5nQW1vdW50IDwgMCkge1xuICAgICAgICAgIGlmICh0b3RhbFJlZnVuZEFtb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgdG90YWxSZWZ1bmRBbW91bnQgPSBncnBPdXRzdGFuZGluZ0Ftb3VudDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdG90YWxSZWZ1bmRBbW91bnQgPSAodG90YWxSZWZ1bmRBbW91bnQgKyBncnBPdXRzdGFuZGluZ0Ftb3VudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGdycE91dHN0YW5kaW5nQW1vdW50ID4gMCB8fCAoZ3JwT3V0c3RhbmRpbmdBbW91bnQgPT09IDAgJiYgaXNGZWVBbW91bnRaZXJvKSkge1xuICAgICAgICAgIHRoaXMuaXNHcnBPdXRzdGFuZGluZ0FtdFBvc2l0aXZlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gdG90YWxSZWZ1bmRBbW91bnQgKiAtMTtcbiAgICB9XG4gIH1cblxuICBnZXRHcm91cE91dHN0YW5kaW5nQW1vdW50KHBheW1lbnRHcm91cDogSVBheW1lbnRHcm91cCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuYnVsa1NjYW5pbmdQYXltZW50U2VydmljZS5jYWxjdWxhdGVPdXRTdGFuZGluZ0Ftb3VudChwYXltZW50R3JvdXApO1xuICB9XG5cbiAgcmVkaXJlY3RUb0ZlZVNlYXJjaFBhZ2UoZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgbGV0IHVybCA9IHRoaXMuaXNCdWxrU2NhbkVuYWJsZSA/ICcmaXNCdWxrU2Nhbm5pbmc9RW5hYmxlJyA6ICcmaXNCdWxrU2Nhbm5pbmc9RGlzYWJsZSc7XG4gICAgdXJsICs9IHRoaXMuaXNUdXJuT2ZmID8gJyZpc1R1cm5PZmY9RW5hYmxlJyA6ICcmaXNUdXJuT2ZmPURpc2FibGUnO1xuICAgIHVybCArPSB0aGlzLmlzU3RyYXRlZ2ljRml4RW5hYmxlID8gJyZpc1N0Rml4RW5hYmxlPUVuYWJsZScgOiAnJmlzU3RGaXhFbmFibGU9RGlzYWJsZSc7XG4gICAgdXJsICs9IHRoaXMuaXNOZXdQY2lwYWxPZmYgPyAnJmlzTmV3UGNpcGFsT2ZmPUVuYWJsZScgOiAnJmlzTmV3UGNpcGFsT2ZmPURpc2FibGUnO1xuICAgIHVybCArPSB0aGlzLmlzT2xkUGNpcGFsT2ZmID8gJyZpc09sZFBjaXBhbE9mZj1FbmFibGUnIDogJyZpc09sZFBjaXBhbE9mZj1EaXNhYmxlJztcbiAgICB1cmwgKz0gYCZjYXNlVHlwZT0ke3RoaXMuY2FzZVR5cGV9YFxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYC9mZWUtc2VhcmNoP3NlbGVjdGVkT3B0aW9uPSR7dGhpcy5zZWxlY3RlZE9wdGlvbn0mY2NkQ2FzZU51bWJlcj0ke3RoaXMuY2NkQ2FzZU51bWJlcn0ke3VybH1gKTtcbiAgfVxuXG4gIGFkZFJlbWlzc2lvbihmZWU6IElGZWUpIHtcbiAgICBpZih0aGlzLmNoa0ZvckFkZFJlbWlzc2lvbihmZWUuY29kZSkpIHtcbiAgICB0aGlzLmZlZUlkID0gZmVlO1xuICAgIHRoaXMudmlld1N0YXR1cyA9ICdhZGRyZW1pc3Npb24nO1xuICAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLmdldEFwcG9ydGlvblBheW1lbnREZXRhaWxzKHRoaXMucGF5bWVudC5yZWZlcmVuY2UpLnN1YnNjcmliZShcbiAgICAgIHBheW1lbnRHcm91cCA9PiB7XG4gICAgICAgIHRoaXMucGF5bWVudEdyb3VwID0gcGF5bWVudEdyb3VwO1xuXG4gICAgICAgIHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzID0gdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHMuZmlsdGVyXG4gICAgICAgICAgKHBheW1lbnRHcm91cE9iaiA9PiBwYXltZW50R3JvdXBPYmpbJ3JlZmVyZW5jZSddLmluY2x1ZGVzKHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5wYXltZW50UmVmZXJlbmNlKSk7XG4gICAgICAgIHRoaXMucGF5bWVudCA9IHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzWzBdO1xuICAgICAgICAvLyBjb25zdCBwYXltZW50QWxsb2NhdGlvbiA9IHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzWzBdLnBheW1lbnRfYWxsb2NhdGlvbjtcbiAgICAgICAgLy8gdGhpcy5pc1N0YXR1c0FsbG9jYXRlZCA9IHBheW1lbnRBbGxvY2F0aW9uLmxlbmd0aCA+IDAgJiYgcGF5bWVudEFsbG9jYXRpb25bMF0uYWxsb2NhdGlvbl9zdGF0dXMgPT09ICdBbGxvY2F0ZWQnIHx8IHBheW1lbnRBbGxvY2F0aW9uLmxlbmd0aCA9PT0gMDtcbiAgICAgIH0sXG4gICAgICAoZXJyb3I6IGFueSkgPT4gdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnJvci5yZXBsYWNlKC9cIi9nLFwiXCIpXG4gICAgKTtcbiAgICB9XG4gIH1cblxuICBhZGRSZWZ1bmRGb3JSZW1pc3Npb24ocGF5bWVudDogSVBheW1lbnQsIHJlbWlzc2lvbjogSVJlbWlzc2lvbltdLGZlZXM6YW55KSB7XG4gICAgdGhpcy52aWV3U3RhdHVzID0gJ2FkZHJlZnVuZGZvcnJlbWlzc2lvbic7XG4gXG4gICAgdGhpcy5wYXltZW50ID0gcGF5bWVudDtcbiAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5nZXRBcHBvcnRpb25QYXltZW50RGV0YWlscyh0aGlzLnBheW1lbnQucmVmZXJlbmNlKS5zdWJzY3JpYmUoXG4gICAgICBwYXltZW50R3JvdXAgPT4ge1xuICAgICAgICB0aGlzLnBheW1lbnRHcm91cCA9IHBheW1lbnRHcm91cDtcblxuICAgICAgICB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50cyA9IHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzLmZpbHRlclxuICAgICAgICAgIChwYXltZW50R3JvdXBPYmogPT4gcGF5bWVudEdyb3VwT2JqWydyZWZlcmVuY2UnXS5pbmNsdWRlcyh0aGlzLnBheW1lbnQucmVmZXJlbmNlKSk7XG4gICAgICAgIHRoaXMucGF5bWVudCA9IHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzWzBdO1xuICAgICAgICB0aGlzLnJlbWlzc2lvbnMgPSByZW1pc3Npb247XG4gICAgICAgIHRoaXMucmVtaXNzaW9uRmVlQW10ID0gZmVlcy5maWx0ZXIoZGF0YT0+ZGF0YS5jb2RlID09PSB0aGlzLnJlbWlzc2lvbnNbJ2ZlZV9jb2RlJ10pWzBdLm5ldF9hbW91bnQ7XG4gICAgICAgIC8vIGNvbnN0IHBheW1lbnRBbGxvY2F0aW9uID0gdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHNbMF0ucGF5bWVudF9hbGxvY2F0aW9uO1xuICAgICAgICAvLyB0aGlzLmlzU3RhdHVzQWxsb2NhdGVkID0gcGF5bWVudEFsbG9jYXRpb24ubGVuZ3RoID4gMCAmJiBwYXltZW50QWxsb2NhdGlvblswXS5hbGxvY2F0aW9uX3N0YXR1cyA9PT0gJ0FsbG9jYXRlZCcgfHwgcGF5bWVudEFsbG9jYXRpb24ubGVuZ3RoID09PSAwO1xuICAgICAgfSxcbiAgICAgIChlcnJvcjogYW55KSA9PiB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9yXG4gICAgKTtcbiAgfVxuXG4gIHJlZGlyZWN0VG9yZW1pc3Npb25QYWdlKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdyZW1pc3Npb24nXG4gIH1cblxuICByZWRpcmVjdFRvUmVwb3J0c1BhZ2UoZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChgL3JlcG9ydHM/c2VsZWN0ZWRPcHRpb249JHt0aGlzLnNlbGVjdGVkT3B0aW9ufSZjY2RDYXNlTnVtYmVyPSR7dGhpcy5jY2RDYXNlTnVtYmVyfWApO1xuICB9XG5cbiAgbG9hZEZlZVN1bW1hcnlQYWdlKHBheW1lbnRHcm91cDogSVBheW1lbnRHcm91cCkge1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5ic3BheW1lbnRkY24gPSBudWxsO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5wYXltZW50R3JvdXBSZWZlcmVuY2UgPSBwYXltZW50R3JvdXAucGF5bWVudF9ncm91cF9yZWZlcmVuY2U7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzVHVybk9mZiA9IHRoaXMuaXNUdXJuT2ZmO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdmZWUtc3VtbWFyeSc7XG4gIH1cblxuICBnb1RvUGF5bWVudFZpZXdDb21wb25lbnQocGF5bWVudEdyb3VwOiBhbnkpIHtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQucGF5bWVudE1ldGhvZCA9IHBheW1lbnRHcm91cC5wYXltZW50TWV0aG9kO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5wYXltZW50R3JvdXBSZWZlcmVuY2UgPSBwYXltZW50R3JvdXAucGF5bWVudEdyb3VwUmVmZXJlbmNlO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5wYXltZW50UmVmZXJlbmNlID0gcGF5bWVudEdyb3VwLnBheW1lbnRSZWZlcmVuY2U7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ3BheW1lbnQtdmlldyc7XG4gIH1cblxuICBnb1RvUGF5ZW1lbnRWaWV3KHBheW1lbnRHcm91cFJlZmVyZW5jZTogc3RyaW5nLCBwYXltZW50UmVmZXJlbmNlOiBzdHJpbmcsIHBheW1lbnRNZXRob2Q6IHN0cmluZykge1xuICAgIHRoaXMuZ29Ub1BheW1lbnRWaWV3Q29tcG9uZW50KHsgcGF5bWVudEdyb3VwUmVmZXJlbmNlLCBwYXltZW50UmVmZXJlbmNlLCBwYXltZW50TWV0aG9kIH0pO1xuICB9XG5cbiAgc2VsZWN0ZWRVbnByb2Nlc3NlZEZlZUV2ZW50KHVucHJvY2Vzc2VkUmVjb3JkSWQ6IHN0cmluZykge1xuICAgIGlmICh1bnByb2Nlc3NlZFJlY29yZElkKSB7XG4gICAgICBpZiAodGhpcy5pc1R1cm5PZmYpIHtcbiAgICAgICAgdGhpcy5pc0FkZEZlZUJ0bkVuYWJsZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaXNVbnByb2Nlc3NlZFJlY29yZFNlbGVjdGVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuaXNUdXJuT2ZmKSB7XG4gICAgICAgIHRoaXMuaXNBZGRGZWVCdG5FbmFibGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaXNVbnByb2Nlc3NlZFJlY29yZFNlbGVjdGVkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZ2V0VW5wcm9jZXNzZWRGZWVDb3VudCh1blByb2Nlc3NlZFJlY29yZENvdW50OiBudW1iZXIpIHtcbiAgICB0aGlzLnVucHJvY2Vzc2VkUmVjb3JkQ291bnQgPSB1blByb2Nlc3NlZFJlY29yZENvdW50O1xuICB9XG5cbiAgY2FsY3VsYXRlQW1vdW50RHVlKGZlZTogSUZlZSkge1xuXG4gICAgaWYgKGZlZS5kYXRlX2NyZWF0ZWQpIHtcbiAgICAgIHJldHVybiBmZWUuYW1vdW50X2R1ZSAhPT0gdW5kZWZpbmVkID8gZmVlLmFtb3VudF9kdWUgOiBmZWUubmV0X2Ftb3VudDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFwiMC4wMFwiO1xuICAgIH1cbiAgfVxuXG4gIGNvbmZpcm1SZW1vdmVGZWUoZmVlOiBJRmVlKSB7XG4gICAgdGhpcy5pc1JlbW92ZUJ0bkRpc2FibGVkID0gZmFsc2U7XG4gICAgdGhpcy5mZWVJZCA9IGZlZTtcbiAgICB0aGlzLnZpZXdTdGF0dXMgPSAnZmVlUmVtb3ZhbENvbmZpcm1hdGlvbic7XG4gIH1cblxuICBjYW5jZWxSZW1vdmFsKCkge1xuICAgIHRoaXMudmlld1N0YXR1cyA9ICdtYWluJztcbiAgfVxuXG4gIHJlbW92ZUZlZShmZWU6IGFueSkge1xuICAgIHRoaXMuaXNSZW1vdmVCdG5EaXNhYmxlZCA9IHRydWU7XG4gICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZGVsZXRlRmVlRnJvbVBheW1lbnRHcm91cChmZWUpLnN1YnNjcmliZShcbiAgICAgIChzdWNjZXNzOiBhbnkpID0+IHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgfSxcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3I7XG4gICAgICAgIHRoaXMuaXNSZW1vdmVCdG5EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBpc0NoZWNrQW1vdW50ZHVlRXhpc3QoYW1vdW50RHVlOiBhbnkpIHtcbiAgICByZXR1cm4gdHlwZW9mIGFtb3VudER1ZSA9PT0gJ3VuZGVmaW5lZCc7XG4gIH1cblxuICBpc3N1ZVJlZnVuZChwYXltZW50OiBJUGF5bWVudCkge1xuICAgIGlmIChwYXltZW50ICE9PSBudWxsICYmIHBheW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgIGlmKHRoaXMuY2hrSXNzdWVSZWZ1bmRCdG5FbmFibGUocGF5bWVudCkpIHtcbiAgICB0aGlzLnZpZXdTdGF0dXMgPSAnaXNzdWVyZWZ1bmQnO1xuICAgIHRoaXMucGF5bWVudCA9IHBheW1lbnQ7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZSA9IHRydWU7XG4gICAgdGhpcy5pc1JlZnVuZFJlbWlzc2lvbiA9IHRydWU7XG4gICAgfVxuICB9XG4gIH1cblxuICBjaGtGb3JBZGRSZW1pc3Npb24oZmVlQ29kZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuY2hrRm9yUEJBUGF5bWVudCgpICYmIHRoaXMuY2hlY2s0QWxsb3dlZFJvbGVzMkFjY2Vzc1JlZnVuZCgpKSB7XG4gICAgICBpZiAodGhpcy5vcmRlckRldGFpbFswXVsncmVtaXNzaW9ucyddLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZm9yIChjb25zdCByZW1pc3Npb24gb2YgdGhpcy5vcmRlckRldGFpbFswXVsncmVtaXNzaW9ucyddKSB7XG4gICAgICAgICAgaWYgKHJlbWlzc2lvbi5mZWVfY29kZSA9PT0gZmVlQ29kZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBjaGtGb3JQQkFQYXltZW50KCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm9yZGVyRGV0YWlsICE9PSBudWxsICYmICB0aGlzLm9yZGVyRGV0YWlsICE9PSB1bmRlZmluZWQpIHtcbiAgICB0aGlzLm9yZGVyRGV0YWlsLmZvckVhY2gob3JkZXJEZXRhaWwgPT4ge1xuICAgICAgaWYgKG9yZGVyRGV0YWlsLnBheW1lbnRzKSB7XG4gICAgICAgIG9yZGVyRGV0YWlsLnBheW1lbnRzLmZvckVhY2gocGF5bWVudCA9PiB7XG4gICAgICAgICAgaWYgKHBheW1lbnQubWV0aG9kLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09ICdwYXltZW50IGJ5IGFjY291bnQnICYmIHRoaXMuYWxsb3dGdXJ0aGVyQWNjZXNzQWZ0ZXI0RGF5cyhwYXltZW50KSkge1xuICAgICAgICAgICAgdGhpcy5pc1BCQSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAodGhpcy5pc1BCQSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuICB9XG4gIH1cblxuICBjaGtJc3N1ZVJlZnVuZEJ0bkVuYWJsZShwYXltZW50OiBJUGF5bWVudCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmNoZWNrNEFsbG93ZWRSb2xlczJBY2Nlc3NSZWZ1bmQoKSAmJiB0aGlzLmFsbG93RnVydGhlckFjY2Vzc0FmdGVyNERheXMocGF5bWVudCkgJiZcbiAgICAgIHBheW1lbnQubWV0aG9kID09PSAncGF5bWVudCBieSBhY2NvdW50JyAmJiBwYXltZW50LnN0YXR1cy50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSAnc3VjY2VzcycpIHtcbiAgICAgIHRoaXMuaXNJc3N1ZVJlZnVuZkJ0bkVuYWJsZSA9IHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzSXNzdWVSZWZ1bmZCdG5FbmFibGUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcbiAgfVxuXG4gIGNoa0lzUmVmdW5kUmVtaXNzaW9uQnRuRW5hYmxlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm9yZGVyRGV0YWlsICE9PSBudWxsICYmICB0aGlzLm9yZGVyRGV0YWlsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2UgPSB0cnVlO1xuICAgIHRoaXMub3JkZXJEZXRhaWwuZm9yRWFjaChvcmRlckRldGFpbCA9PiB7XG4gICAgICBpZiAob3JkZXJEZXRhaWwucGF5bWVudHMpIHtcbiAgICAgICAgb3JkZXJEZXRhaWwucGF5bWVudHMuZm9yRWFjaChwYXltZW50ID0+IHtcbiAgICAgICAgICBpZiAocGF5bWVudC5tZXRob2QudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gJ3BheW1lbnQgYnkgYWNjb3VudCcgJiYgcGF5bWVudC5zdGF0dXMudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gJ3N1Y2Nlc3MnICYmIHRoaXMuYWxsb3dGdXJ0aGVyQWNjZXNzQWZ0ZXI0RGF5cyhwYXltZW50KSkge1xuICAgICAgICAgICAgdGhpcy5pc1JlZnVuZFJlbWlzc2lvbkJ0bkVuYWJsZSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAodGhpcy5pc1JlZnVuZFJlbWlzc2lvbkJ0bkVuYWJsZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9O1xuICB9XG4gIH1cblxuICBjaGVjazRBbGxvd2VkUm9sZXMyQWNjZXNzUmVmdW5kID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiB0aGlzLmFsbG93ZWRSb2xlc1RvQWNjZXNzUmVmdW5kLnNvbWUocm9sZSA9PlxuICAgICAgdGhpcy5MT0dHRURJTlVTRVJST0xFUy5pbmRleE9mKHJvbGUpICE9PSAtMVxuICAgICk7XG4gIH1cbiAgY2hlY2s0QWxsb3dlZFJvbGVzMkFjY2Vzc1BCQXBheW1lbnQgPSAoKTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuaXNFbGlnaWJsZTRQQkFQYXltZW50LnNvbWUocm9sZSA9PlxuICAgICAgdGhpcy5MT0dHRURJTlVTRVJST0xFUy5pbmRleE9mKHJvbGUpICE9PSAtMVxuICAgICk7XG4gIH1cblxuICBhbGxvd0Z1cnRoZXJBY2Nlc3NBZnRlcjREYXlzID0gKHBheW1lbnQ6IElQYXltZW50KTogYm9vbGVhbiA9PiB7XG4gICAgaWYgKHBheW1lbnQgIT09IG51bGwgJiYgcGF5bWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgbGV0IHRtcDREYXlBZ28gPSBuZXcgRGF0ZSgpO1xuICAgIHRtcDREYXlBZ28uc2V0RGF0ZSh0bXA0RGF5QWdvLmdldERhdGUoKSAtIDQpO1xuICAgIHJldHVybiB0bXA0RGF5QWdvID49IG5ldyBEYXRlKHBheW1lbnQuZGF0ZV9jcmVhdGVkKTtcbiAgICB9XG4gIH1cblxuICBsb2FkUEJBQWNjb3VudFBhZ2Uob3JkZXJSZWY6IElQYXltZW50KSB7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBiYVBheU9yZGVyUmVmID0gb3JkZXJSZWY7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ3BiYS1wYXltZW50JztcbiAgfVxufSJdfQ==
|
|
1438
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS10cmFuc2FjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9jYXNlLXRyYW5zYWN0aW9ucy9jYXNlLXRyYW5zYWN0aW9ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNyRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUM3RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQU10RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0lBR25DLGNBQWMsR0FBRyx1QkFBdUI7QUFFOUM7SUFvRkUsbUNBQW9CLE1BQWMsRUFDeEIsa0JBQXNDLEVBQ3RDLHlCQUFvRCxFQUNwRCx1QkFBZ0QsRUFDaEQsbUJBQXdDLEVBQ3hDLGlCQUFvQztRQUw5QyxpQkFNSztRQU5lLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDeEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0Qyw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBQ3BELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBN0U5QyxrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUMxQixhQUFRLEdBQWUsRUFBRSxDQUFDO1FBQzFCLGdCQUFX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Ozs7O0lBQzVELDREQUF3RDs7Ozs7SUFDeEQsd0RBQWdEOzs7OztJQUNoRCxzREFBNEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBheW1lbnRMaWJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wYXltZW50LWxpYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSVBheW1lbnRHcm91cCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVBheW1lbnRHcm91cCc7XG5pbXBvcnQgeyBDYXNlVHJhbnNhY3Rpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Nhc2UtdHJhbnNhY3Rpb25zL2Nhc2UtdHJhbnNhY3Rpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgQnVsa1NjYW5pbmdQYXltZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2J1bGstc2NhbmluZy1wYXltZW50L2J1bGstc2NhbmluZy1wYXltZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgUGF5bWVudFZpZXdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcGF5bWVudC12aWV3L3BheW1lbnQtdmlldy5zZXJ2aWNlJztcbmltcG9ydCB7IE9yZGVyc2xpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3JkZXJzbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IElGZWUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lGZWUnO1xuaW1wb3J0IHsgSVBheW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lQYXltZW50JztcbmltcG9ydCB7IElSZW1pc3Npb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lSZW1pc3Npb24nO1xuaW1wb3J0IHsgSVBheW1lbnRWaWV3IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUGF5bWVudFZpZXcnO1xuaW1wb3J0IHsgSU9yZGVyUmVmZXJlbmNlRmVlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JT3JkZXJSZWZlcmVuY2VGZWUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNlcnZpY2VSZXF1ZXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zZXJ2aWNlLXJlcXVlc3Qvc2VydmljZS1yZXF1ZXN0LmNvbXBvbmVudCc7XG5cbmNvbnN0IEJTX0VOQUJMRV9GTEFHID0gJ2J1bGstc2Nhbi1lbmFibGluZy1mZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjcGF5LWNhc2UtdHJhbnNhY3Rpb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nhc2UtdHJhbnNhY3Rpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FzZS10cmFuc2FjdGlvbnMuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIENhc2VUcmFuc2FjdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoJ0xPR0dFRElOVVNFUlJPTEVTJykgTE9HR0VESU5VU0VSUk9MRVM6IHN0cmluZ1tdO1xuICBASW5wdXQoKSBpc1Rha2VQYXltZW50OiBib29sZWFuO1xuICB0YWtlUGF5bWVudDogYm9vbGVhbjtcbiAgc2VydmljZXJlcXVlc3Q6IHN0cmluZztcbiAgY2NkQ2FzZU51bWJlcjogc3RyaW5nO1xuICBleGNSZWZlcmVuY2U6IHN0cmluZztcbiAgcGF5bWVudEdyb3VwczogYW55W10gPSBbXTtcbiAgcGF5bWVudHM6IElQYXltZW50W10gPSBbXTtcbiAgbm9uUGF5bWVudHM6IElQYXltZW50W10gPSBbXTtcbiAgYWxsUGF5bWVudHM6IElQYXltZW50W10gPSBbXTtcbiAgcmVtaXNzaW9uczogSVJlbWlzc2lvbltdID0gW107XG4gIGZlZXM6IElGZWVbXSA9IFtdO1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgdG90YWxGZWVzOiBudW1iZXI7XG4gIHRvdGFsUGF5bWVudHM6IG51bWJlcjtcbiAgdG90YWxOb25PZmZQYXltZW50czogbnVtYmVyO1xuICB0b3RhbFJlbWlzc2lvbnM6IG51bWJlcjtcbiAgc2VsZWN0ZWRPcHRpb246IHN0cmluZztcbiAgZGNuTnVtYmVyOiBzdHJpbmc7XG4gIHBheW1lbnRSZWY6IHN0cmluZztcbiAgaXNUdXJuT2ZmOiBib29sZWFuO1xuICBpc05ld1BjaXBhbE9mZjogYm9vbGVhbjtcbiAgaXNSZWZ1bmRSZW1pc3Npb246IGJvb2xlYW4gPSB0cnVlO1xuICBpc09sZFBjaXBhbE9mZjogYm9vbGVhbjtcbiAgaXNTdHJhdGVnaWNGaXhFbmFibGU6IGJvb2xlYW47XG4gIGlzQWRkRmVlQnRuRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7XG4gIGlzRXhjZXB0aW9uUmVjb3JkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzVW5wcm9jZXNzZWRSZWNvcmRTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBleGNlcHRpb25SZWNvcmRSZWZlcmVuY2U6IHN0cmluZztcbiAgaXNBbnlGZWVHcm91cEF2aWxhYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgaXNIaXN0b3JpY0dyb3VwQXZhaWxhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIGlzQnVsa1NjYW5FbmFibGU7XG4gIGlzUmVtaXNzaW9uc01hdGNoOiBib29sZWFuO1xuICB2aWV3U3RhdHVzID0gJ21haW4nO1xuICBpc1JlbW92ZUJ0bkRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGZlZUlkOiBJRmVlO1xuICBjbEFtb3VudER1ZTogbnVtYmVyID0gMDtcbiAgdW5wcm9jZXNzZWRSZWNvcmRDb3VudDogbnVtYmVyO1xuICBpc0ZlZVJlY29yZHNFeGlzdDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0dycE91dHN0YW5kaW5nQW10UG9zaXRpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdG90YWxSZWZ1bmRBbW91bnQ6IE51bWJlcjtcbiAgY2FzZVR5cGU6IFN0cmluZztcbiAgLy8gbHNDY2ROdW1iZXI6IGFueSA9IGxzLmdldDxhbnk+KCdjY2ROdW1iZXInKTtcbiAgcGF5bWVudDogSVBheW1lbnQ7XG4gIHBheW1lbnRHcm91cDogSVBheW1lbnRHcm91cDtcbiAgcGF5bWVudFZpZXc6IElQYXltZW50VmlldztcblxuICAvL09yZGVyIGNoYW5nZXNcbiAgb3JkZXJEZXRhaWw6IGFueVtdID0gW107XG5cbiAgaXNBZGRSZW1pc3Npb25FbmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgb3JkZXJSZW1pc3Npb25EZXRhaWxzOiBhbnlbXSA9IFtdO1xuICBvcmRlckxldmVsRmVlczogSU9yZGVyUmVmZXJlbmNlRmVlW10gPSBbXTtcbiAgaXNwYXltZW50R3JvdXBBcGlzdWNjZXNzOiBib29sZWFuID0gZmFsc2U7XG4gIGNwb0RldGFpbHM6IGFueSA9IG51bGw7XG4gIG9yZGVyUmVmOiBzdHJpbmc7XG4gIG9yZGVyU3RhdHVzOiBzdHJpbmc7XG4gIG9yZGVyUGFydHk6IHN0cmluZztcbiAgb3JkZXJDcmVhdGVkOiBEYXRlO1xuICBvcmRlckNDREV2ZW50OiBzdHJpbmc7XG4gIHNlcnZpY2VSZXF1ZXN0VmFsdWU6IHN0cmluZztcbiAgb3JkZXJBZGRCdG5FbmFibGU6IGJvb2xlYW47XG4gIG9yZGVyRmVlc1RvdGFsOiBudW1iZXIgPSAwLjAwO1xuICBvcmRlclJlbWlzc2lvblRvdGFsOiBudW1iZXIgPSAwLjAwO1xuICBvcmRlclRvdGFsUGF5bWVudHM6IG51bWJlciA9IDAuMDA7XG4gIG9yZGVyUGVuZGluZ1BheW1lbnRzOiBudW1iZXIgPSAwLjAwO1xuICBpc0NQT0Rvd246IGJvb2xlYW47XG4gIHRlc3Q6IGJvb2xlYW47XG4gIGlzUEJBOiBib29sZWFuID0gZmFsc2U7XG4gIGlzSXNzdWVSZWZ1bmZCdG5FbmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNBZGRSZW1pc3Npb25CdG5FbmFibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUmVmdW5kUmVtaXNzaW9uQnRuRW5hYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIGFsbG93ZWRSb2xlc1RvQWNjZXNzUmVmdW5kID0gWydwYXltZW50cy1yZWZ1bmQtYXBwcm92ZXInLCAncGF5bWVudHMtcmVmdW5kJ107XG4gIGlzRWxpZ2libGU0UEJBUGF5bWVudCA9IFsncHVpLWZpbmFuY2UtbWFuYWdlcicsICdwdWktdXNlci1tYW5hZ2VyJywgJ3B1aS1vcmdhbmlzYXRpb24tbWFuYWdlcicsICdwdWktY2FzZS1tYW5hZ2VyJ107XG4gIGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcbiAgaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlOiBib29sZWFuO1xuICBuYXZpZ2F0aW9ucGFnZTogc3RyaW5nO1xuICByZW1pc3Npb25GZWVBbXQ6IG51bWJlcjtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHBheW1lbnRWaWV3U2VydmljZTogUGF5bWVudFZpZXdTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnVsa1NjYW5pbmdQYXltZW50U2VydmljZTogQnVsa1NjYW5pbmdQYXltZW50U2VydmljZSxcbiAgICBwcml2YXRlIGNhc2VUcmFuc2FjdGlvbnNTZXJ2aWNlOiBDYXNlVHJhbnNhY3Rpb25zU2VydmljZSxcbiAgICBwcml2YXRlIHBheW1lbnRMaWJDb21wb25lbnQ6IFBheW1lbnRMaWJDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBPcmRlcnNsaXN0U2VydmljZTogT3JkZXJzbGlzdFNlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm5hdmlnYXRpb25wYWdlICA9ICcnO1xuICAgIGlmKHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0cGF5bWVudFBhZ2VWaWV3KCkgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0cGF5bWVudFBhZ2VWaWV3KCkuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLnBheW1lbnRWaWV3ID0gZGF0YSk7XG4gICAgfVxuICAgIGlmKCh0aGlzLkxPR0dFRElOVVNFUlJPTEVTID09PSB1bmRlZmluZWQgfHwgdGhpcy5MT0dHRURJTlVTRVJST0xFUy5sZW5ndGggPT09IDAgKSYmdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRVc2VyUm9sZXNMaXN0KCkgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0VXNlclJvbGVzTGlzdCgpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5MT0dHRURJTlVTRVJST0xFUyA9IGRhdGEpO1xuICAgIH1cbiAgICBpZih0aGlzLk9yZGVyc2xpc3RTZXJ2aWNlLmdldG5hdmlnYXRpb25QYWdlVmFsdWUoKSAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRuYXZpZ2F0aW9uUGFnZVZhbHVlKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLm5hdmlnYXRpb25wYWdlID0gZGF0YSk7XG4gICAgfVxuICAgIFxuICAgIFxuICAgIGlmICh0aGlzLnBheW1lbnRWaWV3ICE9PSB1bmRlZmluZWQgJiYgdGhpcy5wYXltZW50VmlldyAhPT0gbnVsbCAmJiB0aGlzLnBheW1lbnRWaWV3LnBheW1lbnRfZ3JvdXBfcmVmZXJlbmNlICE9PSB1bmRlZmluZWQgJiYgdGhpcy5uYXZpZ2F0aW9ucGFnZSA9PT0gJ3BheW1lbnRkZXRhaWxzcGFnZScpIHtcbiAgICAgIHRoaXMuZ29Ub1BheWVtZW50Vmlldyh0aGlzLnBheW1lbnRWaWV3LnBheW1lbnRfZ3JvdXBfcmVmZXJlbmNlLCB0aGlzLnBheW1lbnRWaWV3LnJlZmVyZW5jZSwgdGhpcy5wYXltZW50Vmlldy5tZXRob2QpO1xuICAgIH1cbiAgICB0aGlzLmlzR3JwT3V0c3RhbmRpbmdBbXRQb3NpdGl2ZSA9IGZhbHNlO1xuICAgIHRoaXMuY2NkQ2FzZU51bWJlciA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5DQ0RfQ0FTRV9OVU1CRVI7XG4gICAgdGhpcy5jYXNlVHlwZSA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5DQVNFVFlQRTtcbiAgICBpZiAodGhpcy5wYXltZW50TGliQ29tcG9uZW50LkNDRF9DQVNFX05VTUJFUiA9PT0gJycpIHtcbiAgICAgIHRoaXMuY2NkQ2FzZU51bWJlciA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5FWENfUkVGRVJFTkNFO1xuICAgIH1cbiAgICB0aGlzLmV4Y1JlZmVyZW5jZSA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5FWENfUkVGRVJFTkNFO1xuICAgIHRoaXMudGFrZVBheW1lbnQgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQ7XG5cbiAgICB0aGlzLnNlcnZpY2VyZXF1ZXN0ID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlNFUlZJQ0VSRVFVRVNULnRvU3RyaW5nKCk7XG4gICAgaWYgKHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5TRVJWSUNFUkVRVUVTVC50b1N0cmluZygpID09PSAndHJ1ZScpIHtcbiAgICAgIHRoaXMuc2VydmljZVJlcXVlc3RWYWx1ZSA9ICd0cnVlJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXJ2aWNlUmVxdWVzdFZhbHVlID0gJ2ZhbHNlJztcbiAgICB9XG4gICAgdGhpcy5pc0J1bGtTY2FuRW5hYmxlID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEU7XG4gICAgdGhpcy5kY25OdW1iZXIgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuRENOX05VTUJFUjtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlNFTEVDVEVEX09QVElPTi50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgIHRoaXMuaXNUdXJuT2ZmID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTVFVSTk9GRjtcbiAgICB0aGlzLmlzTmV3UGNpcGFsT2ZmID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTTkVXUENJUEFMT0ZGO1xuICAgIHRoaXMuaXNPbGRQY2lwYWxPZmYgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNPTERQQ0lQQUxPRkY7XG4gICAgdGhpcy5pc1N0cmF0ZWdpY0ZpeEVuYWJsZSA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU1NGRU5BQkxFO1xuICAgIGlmICghdGhpcy5pc1R1cm5PZmYpIHtcbiAgICAgIC8vIGlmICh0aGlzLmxzQ2NkTnVtYmVyICE9PSB0aGlzLmNjZENhc2VOdW1iZXIpIHtcbiAgICAgIC8vICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChgL2NjZC1zZWFyY2g/dGFrZVBheW1lbnQ9dHJ1ZWApO1xuICAgICAgLy8gfVxuXG4gICAgICB0aGlzLmNhc2VUcmFuc2FjdGlvbnNTZXJ2aWNlLmdldFBheW1lbnRHcm91cHModGhpcy5jY2RDYXNlTnVtYmVyKS5zdWJzY3JpYmUoXG4gICAgICAgIHBheW1lbnRHcm91cHMgPT4ge1xuICAgICAgICAgIHRoaXMuaXNBbnlGZWVHcm91cEF2aWxhYmxlID10cnVlO1xuICAgICAgICAgIHRoaXMucGF5bWVudEdyb3VwcyA9IHBheW1lbnRHcm91cHNbJ3BheW1lbnRfZ3JvdXBzJ107XG4gICAgICAgICAgdGhpcy5jYWxjdWxhdGVBbW91bnRzKCk7XG4gICAgICAgICAgdGhpcy5jYWxjdWxhdGVPcmRlckZlZXNBbW91bnRzKCk7XG4gICAgICAgICAgdGhpcy5jYWxjdWxhdGVSZWZ1bmRBbW91bnQoKTtcbiAgICAgICAgICBpZiAodGhpcy5pc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0U2VsZWN0ZWRPcmRlclJlZklkKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB0aGlzLm9yZGVyUmVmID0gZGF0YSk7XG4gICAgICAgICAgICB0aGlzLmdvVG9PcmRlclZpZXdEZXRhaWxTZWN0aW9uKHRoaXMub3JkZXJSZWYpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5nZXRQYXJ0eURldGFpbHModGhpcy5jY2RDYXNlTnVtYmVyKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgIHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNwb0RldGFpbHMgPSBKU09OLnBhcnNlKHJlc3BvbnNlKS5jb250ZW50WzBdO1xuICBcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IDxhbnk+ZXJyb3IucmVwbGFjZSgvXCIvZyxcIlwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzQ1BPRG93biA9IHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gIFxuICAgICAgICAgIH1cblxuICAgICAgICBcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IDxhbnk+ZXJyb3IucmVwbGFjZSgvXCIvZyxcIlwiKTtcbiAgICAgICAgICB0aGlzLmlzQW55RmVlR3JvdXBBdmlsYWJsZSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuc2V0RGVmYXVsdHMoKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jYXNlVHJhbnNhY3Rpb25zU2VydmljZS5nZXRQYXltZW50R3JvdXBzKHRoaXMuY2NkQ2FzZU51bWJlcikuc3Vic2NyaWJlKFxuICAgICAgICBwYXltZW50R3JvdXBzID0+IHtcbiAgICAgICAgICB0aGlzLmlzQW55RmVlR3JvdXBBdmlsYWJsZSA9dHJ1ZTtcbiAgICAgICAgICB0aGlzLnBheW1lbnRHcm91cHMgPSBwYXltZW50R3JvdXBzWydwYXltZW50X2dyb3VwcyddO1xuICAgICAgICAgIHRoaXMuY2FsY3VsYXRlQW1vdW50cygpO1xuICAgICAgICAgIHRoaXMuY2FsY3VsYXRlT3JkZXJGZWVzQW1vdW50cygpO1xuICAgICAgICAgIHRoaXMudG90YWxSZWZ1bmRBbW91bnQgPSB0aGlzLmNhbGN1bGF0ZVJlZnVuZEFtb3VudCgpO1xuICAgICAgICAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLmdldFBhcnR5RGV0YWlscyh0aGlzLmNjZENhc2VOdW1iZXIpLnN1YnNjcmliZShcbiAgICAgICAgICAgIHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5jcG9EZXRhaWxzID0gSlNPTi5wYXJzZShyZXNwb25zZSkuY29udGVudFswXTtcblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gPGFueT5lcnJvci5yZXBsYWNlKC9cIi9nLFwiXCIpO1xuICAgICAgICAgICAgICB0aGlzLnNldERlZmF1bHRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuaXNDUE9Eb3duID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuXG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSA8YW55PmVycm9yLnJlcGxhY2UoL1wiL2csXCJcIik7XG4gICAgICAgICAgdGhpcy5pc0FueUZlZUdyb3VwQXZpbGFibGUgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnNldERlZmF1bHRzKCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYoIHRoaXMucGF5bWVudEdyb3VwcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmNoZWNrRm9yRXhjZXB0aW9uUmVjb3JkKCk7XG4gICAgfVxuICAgXG4gICAgaWYodGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRpc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2VzKCkgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0aXNGcm9tU2VydmljZVJlcXVlc3RQYWdlcygpLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5pc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2UgPSBkYXRhKTtcbiAgICB9XG4gIFxuICB9XG5cbiAgc2V0RGVmYXVsdHMoKTogdm9pZCB7XG4gICAgdGhpcy50b3RhbFBheW1lbnRzID0gMC4wMDtcbiAgICB0aGlzLnRvdGFsUmVtaXNzaW9ucyA9IDAuMDA7XG4gICAgdGhpcy50b3RhbE5vbk9mZlBheW1lbnRzID0gMC4wMDtcbiAgICB0aGlzLnRvdGFsRmVlcyA9IDAuMDA7XG4gIH1cblxuICBnZXRBbGxvY2F0aW9uU3RhdHVzKHBheW1lbnRzOiBhbnkpIHtcblxuICAgIGxldCBwYXltZW50QWxsb2NhdGlvbiA9IHBheW1lbnRzLnBheW1lbnRfYWxsb2NhdGlvbixcbiAgICAgIGlzQWxsb2NhdGlvblN0YXR1c0V4aXN0ID0gcGF5bWVudEFsbG9jYXRpb24ubGVuZ3RoID4gMDtcbiAgICByZXR1cm4gaXNBbGxvY2F0aW9uU3RhdHVzRXhpc3QgPyBwYXltZW50QWxsb2NhdGlvblswXS5hbGxvY2F0aW9uX3N0YXR1cyA6ICctJztcbiAgICAvL3JldHVybiBcIi1cIjtcblxuICB9XG5cbiAgY2hlY2tGb3JFeGNlcHRpb25SZWNvcmQoKTogdm9pZCB7XG4gICBcbiAgICBpZiAodGhpcy5wYXltZW50R3JvdXBzLmxlbmd0aCA9PT0gMCAmJiAodGhpcy5zZWxlY3RlZE9wdGlvbi50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSAnY2Nkb3JleGNlcHRpb24nIHx8IHRoaXMuc2VsZWN0ZWRPcHRpb24udG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gJ3JjJykpIHtcbiAgICAgIHRoaXMuYnVsa1NjYW5pbmdQYXltZW50U2VydmljZS5nZXRCU1BheW1lbnRzQnlDQ0QodGhpcy5jY2RDYXNlTnVtYmVyKS5zdWJzY3JpYmUoXG4gICAgICAgIHJlY29yZERhdGEgPT4ge1xuICAgICAgICAgIGlmIChyZWNvcmREYXRhWydkYXRhJ10gJiYgcmVjb3JkRGF0YVsnZGF0YSddLmV4Y2VwdGlvbl9yZWNvcmRfcmVmZXJlbmNlICYmIHJlY29yZERhdGFbJ2RhdGEnXS5leGNlcHRpb25fcmVjb3JkX3JlZmVyZW5jZS5sZW5ndGggPiAwICYmIHJlY29yZERhdGFbJ2RhdGEnXS5jY2RfcmVmZXJlbmNlID4gMCkge1xuICAgICAgICAgICAgdGhpcy5pc0V4Y2VwdGlvblJlY29yZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5pc0FkZEZlZUJ0bkVuYWJsZWQgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChyZWNvcmREYXRhWydkYXRhJ10gJiYgcmVjb3JkRGF0YVsnZGF0YSddLmV4Y2VwdGlvbl9yZWNvcmRfcmVmZXJlbmNlICYmIHJlY29yZERhdGFbJ2RhdGEnXS5leGNlcHRpb25fcmVjb3JkX3JlZmVyZW5jZS5sZW5ndGggPiAwICYmIHJlY29yZERhdGFbJ2RhdGEnXS5jY2RfcmVmZXJlbmNlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNFeGNlcHRpb25SZWNvcmQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5pc0FkZEZlZUJ0bkVuYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocmVjb3JkRGF0YVsnZGF0YSddICYmIHJlY29yZERhdGFbJ2RhdGEnXS5leGNlcHRpb25fcmVjb3JkX3JlZmVyZW5jZSAmJiByZWNvcmREYXRhWydkYXRhJ10uZXhjZXB0aW9uX3JlY29yZF9yZWZlcmVuY2UubGVuZ3RoID09PSB1bmRlZmluZWQgJiYgcmVjb3JkRGF0YVsnZGF0YSddLmNjZF9yZWZlcmVuY2UgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmlzRXhjZXB0aW9uUmVjb3JkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmlzQWRkRmVlQnRuRW5hYmxlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wYXltZW50R3JvdXBzLmxlbmd0aCA9PT0gMCAmJiB0aGlzLnNlbGVjdGVkT3B0aW9uLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09ICdkY24nKSB7XG4gICAgICBpZiAodGhpcy5wYXltZW50TGliQ29tcG9uZW50LkNDRF9DQVNFX05VTUJFUi5sZW5ndGggPiAwICYmIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5FWENfUkVGRVJFTkNFLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5pc0V4Y2VwdGlvblJlY29yZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzQWRkRmVlQnRuRW5hYmxlZCA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5DQ0RfQ0FTRV9OVU1CRVIubGVuZ3RoID09PSAwICYmIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5FWENfUkVGRVJFTkNFLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5pc0V4Y2VwdGlvblJlY29yZCA9IHRydWU7XG4gICAgICAgIHRoaXMuaXNBZGRGZWVCdG5FbmFibGVkID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmlzRXhjZXB0aW9uUmVjb3JkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNBZGRGZWVCdG5FbmFibGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMucGF5bWVudEdyb3Vwcy5sZW5ndGggPiAwKVxuICAgICAgdGhpcy5wYXltZW50R3JvdXBzLmZvckVhY2gocGF5bWVudEdyb3VwID0+IHtcbiAgICAgICAgaWYgKHBheW1lbnRHcm91cC5wYXltZW50cykge1xuICAgICAgICAgIHBheW1lbnRHcm91cC5wYXltZW50cy5mb3JFYWNoKHBheW1lbnQgPT4ge1xuICAgICAgICAgICAgaWYgKHBheW1lbnQuY2FzZV9yZWZlcmVuY2UgIT09IHVuZGVmaW5lZCAmJiBwYXltZW50LmNjZF9jYXNlX251bWJlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIHRoaXMuaXNFeGNlcHRpb25SZWNvcmQgPSB0cnVlO1xuICAgICAgICAgICAgICB0aGlzLmlzQWRkRmVlQnRuRW5hYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5pc0V4Y2VwdGlvblJlY29yZCA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLmlzQWRkRmVlQnRuRW5hYmxlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBjYWxjdWxhdGVPcmRlckZlZXNBbW91bnRzKCk6IHZvaWQge1xuICAgIGxldCBmZWVzVG90YWwgPSAwLjAwO1xuICAgIHRoaXMucGF5bWVudEdyb3Vwcy5mb3JFYWNoKHBheW1lbnRHcm91cCA9PiB7XG4gICAgICB0aGlzLnJlc2V0T3JkZXJWYXJpYWJsZXMoKTtcbiAgICAgIGlmIChwYXltZW50R3JvdXAuZmVlcykge1xuICAgICAgICBwYXltZW50R3JvdXAuZmVlcy5mb3JFYWNoKGZlZSA9PiB7XG4gICAgICAgICAgdGhpcy5vcmRlckZlZXNUb3RhbCA9IHRoaXMub3JkZXJGZWVzVG90YWwgKyBmZWUuY2FsY3VsYXRlZF9hbW91bnRcbiAgICAgICAgfVxuICAgICAgICApXG4gICAgICB9XG4gICAgICBpZiAocGF5bWVudEdyb3VwLnJlbWlzc2lvbnMpIHtcbiAgICAgICAgcGF5bWVudEdyb3VwLnJlbWlzc2lvbnMuZm9yRWFjaChyZW1pc3Npb24gPT4ge1xuICAgICAgICAgIHRoaXMub3JkZXJSZW1pc3Npb25Ub3RhbCA9IHRoaXMub3JkZXJSZW1pc3Npb25Ub3RhbCArIHJlbWlzc2lvbi5od2ZfYW1vdW50O1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHBheW1lbnRHcm91cC5wYXltZW50cykge1xuICAgICAgICBwYXltZW50R3JvdXAucGF5bWVudHMuZm9yRWFjaChwYXltZW50ID0+IHtcbiAgICAgICAgICBpZiAocGF5bWVudC5zdGF0dXMudG9VcHBlckNhc2UoKSA9PT0gJ1NVQ0NFU1MnKSB7XG4gICAgICAgICAgICB0aGlzLm9yZGVyVG90YWxQYXltZW50cyA9IHRoaXMub3JkZXJUb3RhbFBheW1lbnRzICsgcGF5bWVudC5hbW91bnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgLy8gdGhpcy5vcmRlclBlbmRpbmdQYXltZW50cyA9ICh0aGlzLm9yZGVyRmVlc1RvdGFsIC0gdGhpcy5vcmRlclJlbWlzc2lvblRvdGFsKSAtIHRoaXMub3JkZXJUb3RhbFBheW1lbnRzO1xuICAgICAgaWYgKHBheW1lbnRHcm91cC5zZXJ2aWNlX3JlcXVlc3Rfc3RhdHVzID09PSAnUGFpZCcpIHtcbiAgICAgICAgdGhpcy5vcmRlclN0YXR1cyA9IHBheW1lbnRHcm91cC5zZXJ2aWNlX3JlcXVlc3Rfc3RhdHVzO1xuICAgICAgICB0aGlzLm9yZGVyQWRkQnRuRW5hYmxlID0gZmFsc2U7XG4gICAgICB9IGVsc2UgaWYgKHBheW1lbnRHcm91cC5zZXJ2aWNlX3JlcXVlc3Rfc3RhdHVzID09PSAnUGFydGlhbGx5IHBhaWQnIHx8IHBheW1lbnRHcm91cC5zZXJ2aWNlX3JlcXVlc3Rfc3RhdHVzID09PSAnTm90IHBhaWQnKSB7XG4gICAgICAgIHRoaXMub3JkZXJTdGF0dXMgPSBwYXltZW50R3JvdXAuc2VydmljZV9yZXF1ZXN0X3N0YXR1cztcbiAgICAgICAgdGhpcy5vcmRlckFkZEJ0bkVuYWJsZSA9IHRydWU7XG4gICAgICB9IFxuXG4gICAgICAvL3RoaXMub3JkZXJMZXZlbEZlZXMucHVzaCh7b3JkZXJSZWZJZDpwYXltZW50R3JvdXBbJ3BheW1lbnRfZ3JvdXBfcmVmZXJlbmNlJ10sb3JkZXJUb3RhbEZlZXM6IHRoaXMub3JkZXJGZWVzVG90YWwsb3JkZXJTdGF0dXM6IHRoaXMub3JkZXJTdGF0dXMsb3JkZXJQYXJ0eTonU2FudG9zaCcsIG9yZGVyQ0NERXZlbnQ6J0Nhc2UgQ3JlYXRpb24nLG9yZGVyQ3JlYXRlZDogbmV3IERhdGUoKSwgb3JkZXJBZGRCdG5FbmFibGU6IHRoaXMub3JkZXJBZGRCdG5FbmFibGV9KTsgdGhpcy5jcG9EZXRhaWxzWydjcmVhdGVkVGltZXN0YW1wJ11cbiAgICAgIGlmICh0aGlzLmNwb0RldGFpbHMgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5vcmRlckxldmVsRmVlcy5wdXNoKHsgb3JkZXJSZWZJZDogcGF5bWVudEdyb3VwWydwYXltZW50X2dyb3VwX3JlZmVyZW5jZSddLCBvcmRlclRvdGFsRmVlczogdGhpcy5vcmRlckZlZXNUb3RhbCwgb3JkZXJTdGF0dXM6IHRoaXMub3JkZXJTdGF0dXMsIG9yZGVyUGFydHk6IHRoaXMuY3BvRGV0YWlsc1sncmVzcG9uc2libGVQYXJ0eSddLCBvcmRlckNDREV2ZW50OiB0aGlzLmNwb0RldGFpbHNbJ2FjdGlvbiddLCBvcmRlckNyZWF0ZWQ6IHBheW1lbnRHcm91cFsnZGF0ZV9jcmVhdGVkJ10sIG9yZGVyQWRkQnRuRW5hYmxlOiB0aGlzLm9yZGVyQWRkQnRuRW5hYmxlIH0pO1xuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm9yZGVyTGV2ZWxGZWVzLnB1c2goeyBvcmRlclJlZklkOiBwYXltZW50R3JvdXBbJ3BheW1lbnRfZ3JvdXBfcmVmZXJlbmNlJ10sIG9yZGVyVG90YWxGZWVzOiB0aGlzLm9yZGVyRmVlc1RvdGFsLCBvcmRlclN0YXR1czogdGhpcy5vcmRlclN0YXR1cywgb3JkZXJQYXJ0eTogJycsIG9yZGVyQ0NERXZlbnQ6ICcnLCBvcmRlckNyZWF0ZWQ6IHBheW1lbnRHcm91cFsnZGF0ZV9jcmVhdGVkJ10sIG9yZGVyQWRkQnRuRW5hYmxlOiB0aGlzLm9yZGVyQWRkQnRuRW5hYmxlIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5vcmRlclN0YXR1cyAhPT0gJ1BhaWQnKSB7XG4gICAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0T3JkZXJzTGlzdCh0aGlzLm9yZGVyTGV2ZWxGZWVzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcblxuICByZXNldE9yZGVyVmFyaWFibGVzKCk6IHZvaWQge1xuICAgIHRoaXMub3JkZXJGZWVzVG90YWwgPSAwLjAwO1xuICAgIHRoaXMub3JkZXJUb3RhbFBheW1lbnRzID0gMC4wMDtcbiAgICB0aGlzLm9yZGVyUmVtaXNzaW9uVG90YWwgPSAwLjAwO1xuICAgIHRoaXMub3JkZXJQZW5kaW5nUGF5bWVudHMgPSAwLjAwO1xuICAgIHRoaXMuaXNBZGRGZWVCdG5FbmFibGVkID0gdHJ1ZTtcblxuICB9O1xuXG4gIGdvVG9PcmRlclZpZXdEZXRhaWxTZWN0aW9uKG9yZGVyUmVmZXJlbmNlT2JqOiBhbnkpIHtcbiAgICBpZiAodGhpcy5pc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2UpIHtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0T3JkZXJSZWZJZChvcmRlclJlZmVyZW5jZU9iaik7XG4gICAgICB0aGlzLm9yZGVyUmVmID0gb3JkZXJSZWZlcmVuY2VPYmo7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0T3JkZXJSZWZJZChvcmRlclJlZmVyZW5jZU9iai5vcmRlclJlZklkKTtcbiAgICAgIHRoaXMub3JkZXJSZWYgPSBvcmRlclJlZmVyZW5jZU9iai5vcmRlclJlZklkO1xuICAgIH1cblxuICAgIHRoaXMub3JkZXJGZWVzVG90YWwgPSAwLjAwO1xuICAgIHRoaXMub3JkZXJSZW1pc3Npb25Ub3RhbCA9IDAuMDA7XG4gICAgdGhpcy5vcmRlclRvdGFsUGF5bWVudHMgPSAwLjAwO1xuICAgIHRoaXMub3JkZXJQZW5kaW5nUGF5bWVudHMgPSAwLjAwO1xuXG4gICAgdGhpcy5vcmRlckRldGFpbCA9IHRoaXMucGF5bWVudEdyb3Vwcy5maWx0ZXIoeCA9PiB4LnBheW1lbnRfZ3JvdXBfcmVmZXJlbmNlID09PSB0aGlzLm9yZGVyUmVmKTtcbiAgICB0aGlzLm9yZGVyRGV0YWlsLmZvckVhY2gob3JkZXJEZXRhaWwgPT4ge1xuICAgICAgaWYgKG9yZGVyRGV0YWlsLmZlZXMpIHtcbiAgICAgICAgb3JkZXJEZXRhaWwuZmVlcy5mb3JFYWNoKGZlZSA9PiB7XG4gICAgICAgICAgdGhpcy5vcmRlckZlZXNUb3RhbCA9IHRoaXMub3JkZXJGZWVzVG90YWwgKyBmZWUuY2FsY3VsYXRlZF9hbW91bnQ7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKG9yZGVyRGV0YWlsLnJlbWlzc2lvbnMpIHtcbiAgICAgICAgb3JkZXJEZXRhaWwucmVtaXNzaW9ucy5mb3JFYWNoKHJlbWlzc2lvbiA9PiB7XG4gICAgICAgICAgdGhpcy5vcmRlclJlbWlzc2lvblRvdGFsID0gdGhpcy5vcmRlclJlbWlzc2lvblRvdGFsICsgcmVtaXNzaW9uLmh3Zl9hbW91bnQ7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAob3JkZXJEZXRhaWwucGF5bWVudHMpIHtcbiAgICAgICAgICB0aGlzLnBheW1lbnQgPSBvcmRlckRldGFpbC5wYXltZW50c1swXTtcbiAgICAgICAgICBvcmRlckRldGFpbC5wYXltZW50cy5mb3JFYWNoKHBheW1lbnQgPT4ge1xuICAgICAgICAgICAgaWYgKHBheW1lbnQuc3RhdHVzLnRvVXBwZXJDYXNlKCkgPT09ICdTVUNDRVNTJykge1xuICAgICAgICAgICAgICB0aGlzLm9yZGVyVG90YWxQYXltZW50cyA9IHRoaXMub3JkZXJUb3RhbFBheW1lbnRzICsgcGF5bWVudC5hbW91bnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMub3JkZXJTdGF0dXMgPSBvcmRlckRldGFpbC5zZXJ2aWNlX3JlcXVlc3Rfc3RhdHVzO1xuICAgIH0pO1xuICAgIC8vdGhpcy5vcmRlclBlbmRpbmdQYXltZW50cyA9ICh0aGlzLm9yZGVyRmVlc1RvdGFsIC0gdGhpcy5vcmRlclJlbWlzc2lvblRvdGFsKSAtIHRoaXMub3JkZXJUb3RhbFBheW1lbnRzO1xuICAgIC8vIHRoaXMub3JkZXJSZWYgPSBvcmRlclJlZmVyZW5jZU9iai5vcmRlclJlZklkO1xuICAgIC8vIGlmICh0aGlzLm9yZGVyUGVuZGluZ1BheW1lbnRzIDw9IDAuMDApIHtcbiAgICAvLyAgIHRoaXMub3JkZXJTdGF0dXMgPSAnUGFpZCc7XG4gICAgLy8gfSBlbHNlIGlmICh0aGlzLm9yZGVyRmVlc1RvdGFsID4gMCAmJiAodGhpcy5vcmRlclRvdGFsUGF5bWVudHMgPiAwIHx8IHRoaXMub3JkZXJSZW1pc3Npb25Ub3RhbCA+IDApICYmICh0aGlzLm9yZGVyVG90YWxQYXltZW50cyA8IHRoaXMub3JkZXJQZW5kaW5nUGF5bWVudHMpKSB7XG4gICAgLy8gICB0aGlzLm9yZGVyU3RhdHVzID0gJ1BhcnRpYWxseSBwYWlkJ1xuICAgIC8vIH0gZWxzZSB7XG4gICAgLy8gICB0aGlzLm9yZGVyU3RhdHVzID0gJ05vdCBwYWlkJ1xuICAgIC8vIH1cblxuXG4gICAgaWYgKHRoaXMuY3BvRGV0YWlscyAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5vcmRlclBhcnR5ID0gdGhpcy5jcG9EZXRhaWxzWydyZXNwb25zaWJsZVBhcnR5J107XG4gICAgICB0aGlzLm9yZGVyQ3JlYXRlZCA9IHRoaXMuY3BvRGV0YWlsc1snY3JlYXRlZFRpbWVzdGFtcCddO1xuICAgICAgdGhpcy5vcmRlckNDREV2ZW50ID0gdGhpcy5jcG9EZXRhaWxzWydhY3Rpb24nXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcmRlclBhcnR5ID0gJyc7XG4gICAgICB0aGlzLm9yZGVyQ0NERXZlbnQgPSAnJztcbiAgICAgIHRoaXMub3JkZXJDcmVhdGVkID0gb3JkZXJSZWZlcmVuY2VPYmoub3JkZXJDcmVhdGVkO1xuICAgIH1cbiAgICB0aGlzLnZpZXdTdGF0dXMgPSAnb3JkZXItZnVsbC12aWV3JztcbiAgfVxuXG4gIHJlZGlyZWN0VG9PcmRlckZlZVNlYXJjaFBhZ2UoZXZlbnQ6IGFueSwgb3JkZXJlZjogYW55KSB7XG4gICAgaWYob3JkZXJlZi5vcmRlckFkZEJ0bkVuYWJsZSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmJzcGF5bWVudGRjbiA9IG51bGw7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBheW1lbnRHcm91cFJlZmVyZW5jZSA9IG9yZGVyZWYub3JkZXJSZWZJZDtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNUdXJuT2ZmID0gdGhpcy5pc1R1cm5PZmY7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ2ZlZS1zdW1tYXJ5JztcbiAgICB9XG4gIH1cblxuIFxuXG5cbiAgY2FsY3VsYXRlQW1vdW50cygpOiB2b2lkIHtcbiAgICBsZXQgZmVlc1RvdGFsID0gMC4wMCxcbiAgICAgIHBheW1lbnRzVG90YWwgPSAwLjAwLFxuICAgICAgcmVtaXNzaW9uc1RvdGFsID0gMC4wMCxcbiAgICAgIG5vbk9mZkxpbmVQYXltZW50ID0gMC4wMDtcblxuICAgIHRoaXMucGF5bWVudEdyb3Vwcy5mb3JFYWNoKHBheW1lbnRHcm91cCA9PiB7XG4gICAgICBpZiAocGF5bWVudEdyb3VwLmZlZXMpIHtcbiAgICAgICAgcGF5bWVudEdyb3VwLmZlZXMuZm9yRWFjaChmZWUgPT4ge1xuICAgICAgICAgIC8vIG5ldyBmZWF0dXJlIEFwcG9ydGlvbm1lbnQgdG9nZ2xlIGNoYW5nZXNcbiAgICAgICAgICBpZiAoIXRoaXMuaXNUdXJuT2ZmKSB7XG4gICAgICAgICAgICBpZiAoZmVlLmRhdGVfY3JlYXRlZCkge1xuICAgICAgICAgICAgICBsZXQgYSA9IGZlZS5hbW91bnRfZHVlID09PSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIGxldCBiID0gZmVlLmFtb3VudF9kdWUgPD0gMDtcbiAgICAgICAgICAgICAgdGhpcy5jbEFtb3VudER1ZSA9IGEgPyB0aGlzLmNsQW1vdW50RHVlICsgZmVlLm5ldF9hbW91bnQgOiBiID8gdGhpcy5jbEFtb3VudER1ZSArIDAgOiB0aGlzLmNsQW1vdW50RHVlICsgZmVlLmFtb3VudF9kdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmZWVbJ3BheW1lbnRfZ3JvdXBfcmVmZXJlbmNlJ10gPSBwYXltZW50R3JvdXBbJ3BheW1lbnRfZ3JvdXBfcmVmZXJlbmNlJ107XG4gICAgICAgICAgICB0aGlzLmZlZXMucHVzaChmZWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmZWVzVG90YWwgPSBmZWVzVG90YWwgKyBmZWUuY2FsY3VsYXRlZF9hbW91bnQ7XG4gICAgICAgICAgICB0aGlzLmZlZXMucHVzaChmZWUpO1xuICAgICAgICAgIH1cblxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmlzVHVybk9mZikge1xuICAgICAgICB0aGlzLnRvdGFsRmVlcyA9IGZlZXNUb3RhbDtcbiAgICAgIH1cblxuICAgICAgaWYgKHBheW1lbnRHcm91cC5wYXltZW50cykge1xuICAgICAgICBwYXltZW50R3JvdXAucGF5bWVudHMuZm9yRWFjaChwYXltZW50ID0+IHtcbiAgICAgICAgICAvLyBuZXcgZmVhdHVyZSBBcHBvcnRpb25tZW50IHRvZ2dsZSBjaGFuZ2VzXG4gICAgICAgICAgaWYgKCF0aGlzLmlzVHVybk9mZikge1xuICAgICAgICAgICAgbGV0IGFsbG9jYXRpb25MZW4gPSBwYXltZW50LnBheW1lbnRfYWxsb2NhdGlvbjtcblxuICAgICAgICAgICAgaWYgKHBheW1lbnQuc3RhdHVzLnRvVXBwZXJDYXNlKCkgPT09ICdTVUNDRVNTJykge1xuICAgICAgICAgICAgICBwYXltZW50c1RvdGFsID0gcGF5bWVudHNUb3RhbCArIHBheW1lbnQuYW1vdW50O1xuICAgICAgICAgICAgICBpZiAoYWxsb2NhdGlvbkxlbi5sZW5ndGggPT09IDAgfHwgYWxsb2NhdGlvbkxlbi5sZW5ndGggPiAwICYmIGFsbG9jYXRpb25MZW5bMF0uYWxsb2NhdGlvbl9zdGF0dXMgPT09ICdBbGxvY2F0ZWQnKSB7XG4gICAgICAgICAgICAgICAgbm9uT2ZmTGluZVBheW1lbnQgPSBub25PZmZMaW5lUGF5bWVudCArIHBheW1lbnQuYW1vdW50O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChhbGxvY2F0aW9uTGVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5vblBheW1lbnRzLnB1c2gocGF5bWVudCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChhbGxvY2F0aW9uTGVuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICB0aGlzLnBheW1lbnRzLnB1c2gocGF5bWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXltZW50LnBheW1lbnRHcm91cFJlZmVyZW5jZSA9IHBheW1lbnRHcm91cC5wYXltZW50X2dyb3VwX3JlZmVyZW5jZVxuICAgICAgICAgICAgdGhpcy5hbGxQYXltZW50cy5wdXNoKHBheW1lbnQpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAocGF5bWVudC5zdGF0dXMudG9VcHBlckNhc2UoKSA9PT0gJ1NVQ0NFU1MnKSB7XG4gICAgICAgICAgICAgIHBheW1lbnRzVG90YWwgPSBwYXltZW50c1RvdGFsICsgcGF5bWVudC5hbW91bnQ7XG4gICAgICAgICAgICAgIHRoaXMucGF5bWVudHMucHVzaChwYXltZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBheW1lbnQucGF5bWVudEdyb3VwUmVmZXJlbmNlID0gcGF5bWVudEdyb3VwLnBheW1lbnRfZ3JvdXBfcmVmZXJlbmNlXG4gICAgICAgICAgICB0aGlzLmFsbFBheW1lbnRzLnB1c2gocGF5bWVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMudG90YWxQYXltZW50cyA9IHBheW1lbnRzVG90YWw7XG4gICAgICAvLyBuZXcgZmVhdHVyZSBBcHBvcnRpb25tZW50IHRvZ2dsZSBjaGFuZ2VzXG4gICAgICBpZiAoIXRoaXMuaXNUdXJuT2ZmKSB7XG4gICAgICAgIHRoaXMudG90YWxOb25PZmZQYXltZW50cyA9IG5vbk9mZkxpbmVQYXltZW50O1xuICAgICAgfVxuXG4gICAgICBpZiAocGF5bWVudEdyb3VwLnJlbWlzc2lvbnMpIHtcbiAgICAgICAgcGF5bWVudEdyb3VwLnJlbWlzc2lvbnMuZm9yRWFjaChyZW1pc2lzb24gPT4ge1xuICAgICAgICAgIHJlbWlzc2lvbnNUb3RhbCA9IHJlbWlzc2lvbnNUb3RhbCArIHJlbWlzaXNvbi5od2ZfYW1vdW50O1xuICAgICAgICAgIHRoaXMucmVtaXNzaW9ucy5wdXNoKHJlbWlzaXNvbik7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy50b3RhbFJlbWlzc2lvbnMgPSByZW1pc3Npb25zVG90YWw7XG4gICAgfSk7XG5cbiAgfVxuXG4gIGNhbGN1bGF0ZVJlZnVuZEFtb3VudCgpIHtcbiAgICBpZiAoIXRoaXMuaXNUdXJuT2ZmKSB7XG4gICAgICBsZXQgaXNOZXdQYXltZW50R3JvdXAgPSBmYWxzZTtcblxuICAgICAgdGhpcy5wYXltZW50R3JvdXBzLmZvckVhY2goKHBheW1lbnRHcm91cCwgaW5kZXgpID0+IHtcbiAgICAgICAgbGV0IGdycE91dHN0YW5kaW5nQW1vdW50ID0gMC4wMCxcbiAgICAgICAgICBmZWVzVG90YWwgPSAwLjAwLFxuICAgICAgICAgIHBheW1lbnRzVG90YWwgPSAwLjAwLFxuICAgICAgICAgIHJlbWlzc2lvbnNUb3RhbCA9IDAuMDAsXG4gICAgICAgICAgZmVlcyA9IFtdO1xuXG4gICAgICAgIGlmIChwYXltZW50R3JvdXAuZmVlcykge1xuICAgICAgICAgIC8vIHRoaXMuaXNGZWVSZWNvcmRzRXhpc3QgPSB0cnVlO1xuICAgICAgICAgIHBheW1lbnRHcm91cC5mZWVzLmZvckVhY2goZmVlID0+IHtcbiAgICAgICAgICAgIGZlZXNUb3RhbCA9IGZlZXNUb3RhbCArIGZlZS5jYWxjdWxhdGVkX2Ftb3VudDtcblxuICAgICAgICAgICAgdGhpcy5pc1JlbWlzc2lvbnNNYXRjaCA9IGZhbHNlO1xuICAgICAgICAgICAgcGF5bWVudEdyb3VwLnJlbWlzc2lvbnMuZm9yRWFjaChyZW0gPT4ge1xuICAgICAgICAgICAgICBpZiAocmVtLmZlZV9jb2RlID09PSBmZWUuY29kZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNSZW1pc3Npb25zTWF0Y2ggPSB0cnVlO1xuICAgICAgICAgICAgICAgIGZlZVsncmVtaXNzaW9ucyddID0gcmVtO1xuICAgICAgICAgICAgICAgIC8vIGlmKCFmZWVzLmZpbmQoayA9PiBrLmNvZGU9ZmVlLmNvZGUpKVxuICAgICAgICAgICAgICAgIC8vIHtcbiAgICAgICAgICAgICAgICBmZWVzLnB1c2goZmVlKTtcbiAgICAgICAgICAgICAgICAvL31cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5pc1JlbWlzc2lvbnNNYXRjaCkge1xuICAgICAgICAgICAgICBmZWVzLnB1c2goZmVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGZlZS5kYXRlX2NyZWF0ZWQpIHtcbiAgICAgICAgICAgICAgaXNOZXdQYXltZW50R3JvdXAgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5pc0hpc3RvcmljR3JvdXBBdmFpbGFibGUgPSB0cnVlO1xuICAgICAgICAgICAgICB0aGlzLnBheW1lbnRHcm91cHNbaW5kZXhdWydvbGQnXSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5wYXltZW50R3JvdXBzW2luZGV4XS5mZWVzID0gZmVlcztcbiAgICAgICAgfVxuICAgICAgICBpZiAocGF5bWVudEdyb3VwLnBheW1lbnRzKSB7XG4gICAgICAgICAgcGF5bWVudEdyb3VwLnBheW1lbnRzLmZvckVhY2gocGF5bWVudCA9PiB7XG4gICAgICAgICAgICBpZiAocGF5bWVudC5zdGF0dXMudG9VcHBlckNhc2UoKSA9PT0gJ1NVQ0NFU1MnKSB7XG4gICAgICAgICAgICAgIHBheW1lbnRzVG90YWwgPSBwYXltZW50c1RvdGFsICsgcGF5bWVudC5hbW91bnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGF5bWVudEdyb3VwLnJlbWlzc2lvbnMpIHtcbiAgICAgICAgICBwYXltZW50R3JvdXAucmVtaXNzaW9ucy5mb3JFYWNoKHJlbWlzc2lvbiA9PiB7XG4gICAgICAgICAgICByZW1pc3Npb25zVG90YWwgPSByZW1pc3Npb25zVG90YWwgKyByZW1pc3Npb24uaHdmX2Ftb3VudDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBncnBPdXRzdGFuZGluZ0Ftb3VudCA9IChmZWVzVG90YWwgLSByZW1pc3Npb25zVG90YWwpIC0gcGF5bWVudHNUb3RhbDtcbiAgICAgICAgaWYgKGdycE91dHN0YW5kaW5nQW1vdW50ID4gMCAmJiBpc05ld1BheW1lbnRHcm91cCkge1xuICAgICAgICAgIHRoaXMuaXNBbnlGZWVHcm91cEF2aWxhYmxlID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmlzRmVlUmVjb3Jkc0V4aXN0ID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnBheW1lbnRSZWYgPSBwYXltZW50R3JvdXAucGF5bWVudF9ncm91cF9yZWZlcmVuY2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBheW1lbnRHcm91cC5mZWVzICYmIHBheW1lbnRHcm91cC5mZWVzLmxlbmd0aCA+IDAgJiYgZ3JwT3V0c3RhbmRpbmdBbW91bnQgPD0gMCAmJiBpc05ld1BheW1lbnRHcm91cCkge1xuICAgICAgICAgIHRoaXMuaXNBbnlGZWVHcm91cEF2aWxhYmxlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgaWYgKCghaXNOZXdQYXltZW50R3JvdXAgJiYgdGhpcy5pc0hpc3RvcmljR3JvdXBBdmFpbGFibGUpIHx8ICghaXNOZXdQYXltZW50R3JvdXAgJiYgIXRoaXMuaXNIaXN0b3JpY0dyb3VwQXZhaWxhYmxlKSkge1xuICAgICAgICB0aGlzLmlzQW55RmVlR3JvdXBBdmlsYWJsZSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgdG90YWxSZWZ1bmRBbW91bnQgPSAwLFxuICAgICAgICBpc0ZlZUFtb3VudFplcm8gPSBmYWxzZTtcbiAgICAgIHRoaXMucGF5bWVudEdyb3Vwcy5mb3JFYWNoKHBheW1lbnRHcm91cCA9PiB7XG4gICAgICAgIGxldCBncnBPdXRzdGFuZGluZ0Ftb3VudCA9IDAuMDAsXG4gICAgICAgICAgZmVlc1RvdGFsID0gMC4wMCxcbiAgICAgICAgICBwYXltZW50c1RvdGFsID0gMC4wMCxcbiAgICAgICAgICByZW1pc3Npb25zVG90YWwgPSAwLjAwO1xuICAgICAgICBpZiAocGF5bWVudEdyb3VwLmZlZXMpIHtcbiAgICAgICAgICB0aGlzLmlzRmVlUmVjb3Jkc0V4aXN0ID0gdHJ1ZTtcbiAgICAgICAgICBwYXltZW50R3JvdXAuZmVlcy5mb3JFYWNoKGZlZSA9PiB7XG4gICAgICAgICAgICBmZWVzVG90YWwgPSBmZWVzVG90YWwgKyBmZWUuY2FsY3VsYXRlZF9hbW91bnQ7XG4gICAgICAgICAgICBpZiAoZmVlLmNhbGN1bGF0ZWRfYW1vdW50ID09PSAwKSB7XG4gICAgICAgICAgICAgIGlzRmVlQW1vdW50WmVybyA9IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBheW1lbnRHcm91cC5wYXltZW50cykge1xuICAgICAgICAgIHBheW1lbnRHcm91cC5wYXltZW50cy5mb3JFYWNoKHBheW1lbnQgPT4ge1xuICAgICAgICAgICAgaWYgKHBheW1lbnQuc3RhdHVzLnRvVXBwZXJDYXNlKCkgPT09ICdTVUNDRVNTJykge1xuICAgICAgICAgICAgICBwYXltZW50c1RvdGFsID0gcGF5bWVudHNUb3RhbCArIHBheW1lbnQuYW1vdW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBheW1lbnRHcm91cC5yZW1pc3Npb25zKSB7XG4gICAgICAgICAgcGF5bWVudEdyb3VwLnJlbWlzc2lvbnMuZm9yRWFjaChyZW1pc3Npb24gPT4ge1xuICAgICAgICAgICAgcmVtaXNzaW9uc1RvdGFsID0gcmVtaXNzaW9uc1RvdGFsICsgcmVtaXNzaW9uLmh3Zl9hbW91bnQ7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZ3JwT3V0c3RhbmRpbmdBbW91bnQgPSAoZmVlc1RvdGFsIC0gcmVtaXNzaW9uc1RvdGFsKSAtIHBheW1lbnRzVG90YWw7XG4gICAgICAgIGlmIChncnBPdXRzdGFuZGluZ0Ftb3VudCA8IDApIHtcbiAgICAgICAgICBpZiAodG90YWxSZWZ1bmRBbW91bnQgPT09IDApIHtcbiAgICAgICAgICAgIHRvdGFsUmVmdW5kQW1vdW50ID0gZ3JwT3V0c3RhbmRpbmdBbW91bnQ7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRvdGFsUmVmdW5kQW1vdW50ID0gKHRvdGFsUmVmdW5kQW1vdW50ICsgZ3JwT3V0c3RhbmRpbmdBbW91bnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChncnBPdXRzdGFuZGluZ0Ftb3VudCA+IDAgfHwgKGdycE91dHN0YW5kaW5nQW1vdW50ID09PSAwICYmIGlzRmVlQW1vdW50WmVybykpIHtcbiAgICAgICAgICB0aGlzLmlzR3JwT3V0c3RhbmRpbmdBbXRQb3NpdGl2ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHRvdGFsUmVmdW5kQW1vdW50ICogLTE7XG4gICAgfVxuICB9XG5cbiAgZ2V0R3JvdXBPdXRzdGFuZGluZ0Ftb3VudChwYXltZW50R3JvdXA6IElQYXltZW50R3JvdXApOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2UuY2FsY3VsYXRlT3V0U3RhbmRpbmdBbW91bnQocGF5bWVudEdyb3VwKTtcbiAgfVxuXG4gIHJlZGlyZWN0VG9GZWVTZWFyY2hQYWdlKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGxldCB1cmwgPSB0aGlzLmlzQnVsa1NjYW5FbmFibGUgPyAnJmlzQnVsa1NjYW5uaW5nPUVuYWJsZScgOiAnJmlzQnVsa1NjYW5uaW5nPURpc2FibGUnO1xuICAgIHVybCArPSB0aGlzLmlzVHVybk9mZiA/ICcmaXNUdXJuT2ZmPUVuYWJsZScgOiAnJmlzVHVybk9mZj1EaXNhYmxlJztcbiAgICB1cmwgKz0gdGhpcy5pc1N0cmF0ZWdpY0ZpeEVuYWJsZSA/ICcmaXNTdEZpeEVuYWJsZT1FbmFibGUnIDogJyZpc1N0Rml4RW5hYmxlPURpc2FibGUnO1xuICAgIHVybCArPSB0aGlzLmlzTmV3UGNpcGFsT2ZmID8gJyZpc05ld1BjaXBhbE9mZj1FbmFibGUnIDogJyZpc05ld1BjaXBhbE9mZj1EaXNhYmxlJztcbiAgICB1cmwgKz0gdGhpcy5pc09sZFBjaXBhbE9mZiA/ICcmaXNPbGRQY2lwYWxPZmY9RW5hYmxlJyA6ICcmaXNPbGRQY2lwYWxPZmY9RGlzYWJsZSc7XG4gICAgdXJsICs9IGAmY2FzZVR5cGU9JHt0aGlzLmNhc2VUeXBlfWBcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAvZmVlLXNlYXJjaD9zZWxlY3RlZE9wdGlvbj0ke3RoaXMuc2VsZWN0ZWRPcHRpb259JmNjZENhc2VOdW1iZXI9JHt0aGlzLmNjZENhc2VOdW1iZXJ9JHt1cmx9YCk7XG4gIH1cblxuICBhZGRSZW1pc3Npb24oZmVlOiBJRmVlKSB7XG4gICAgaWYodGhpcy5jaGtGb3JBZGRSZW1pc3Npb24oZmVlLmNvZGUpKSB7XG4gICAgdGhpcy5mZWVJZCA9IGZlZTtcbiAgICB0aGlzLnZpZXdTdGF0dXMgPSAnYWRkcmVtaXNzaW9uJztcbiAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5nZXRBcHBvcnRpb25QYXltZW50RGV0YWlscyh0aGlzLnBheW1lbnQucmVmZXJlbmNlKS5zdWJzY3JpYmUoXG4gICAgICBwYXltZW50R3JvdXAgPT4ge1xuICAgICAgICB0aGlzLnBheW1lbnRHcm91cCA9IHBheW1lbnRHcm91cDtcblxuICAgICAgICB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50cyA9IHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzLmZpbHRlclxuICAgICAgICAgIChwYXltZW50R3JvdXBPYmogPT4gcGF5bWVudEdyb3VwT2JqWydyZWZlcmVuY2UnXS5pbmNsdWRlcyh0aGlzLnBheW1lbnRMaWJDb21wb25lbnQucGF5bWVudFJlZmVyZW5jZSkpO1xuICAgICAgICB0aGlzLnBheW1lbnQgPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXTtcbiAgICAgICAgLy8gY29uc3QgcGF5bWVudEFsbG9jYXRpb24gPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXS5wYXltZW50X2FsbG9jYXRpb247XG4gICAgICAgIC8vIHRoaXMuaXNTdGF0dXNBbGxvY2F0ZWQgPSBwYXltZW50QWxsb2NhdGlvbi5sZW5ndGggPiAwICYmIHBheW1lbnRBbGxvY2F0aW9uWzBdLmFsbG9jYXRpb25fc3RhdHVzID09PSAnQWxsb2NhdGVkJyB8fCBwYXltZW50QWxsb2NhdGlvbi5sZW5ndGggPT09IDA7XG4gICAgICB9LFxuICAgICAgKGVycm9yOiBhbnkpID0+IHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyb3IucmVwbGFjZSgvXCIvZyxcIlwiKVxuICAgICk7XG4gICAgfVxuICB9XG5cbiAgYWRkUmVmdW5kRm9yUmVtaXNzaW9uKHBheW1lbnQ6IElQYXltZW50LCByZW1pc3Npb246IElSZW1pc3Npb25bXSxmZWVzOmFueSkge1xuICAgIHRoaXMudmlld1N0YXR1cyA9ICdhZGRyZWZ1bmRmb3JyZW1pc3Npb24nO1xuIFxuICAgIHRoaXMucGF5bWVudCA9IHBheW1lbnQ7XG4gICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZ2V0QXBwb3J0aW9uUGF5bWVudERldGFpbHModGhpcy5wYXltZW50LnJlZmVyZW5jZSkuc3Vic2NyaWJlKFxuICAgICAgcGF5bWVudEdyb3VwID0+IHtcbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAgPSBwYXltZW50R3JvdXA7XG5cbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXAucGF5bWVudHMgPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50cy5maWx0ZXJcbiAgICAgICAgICAocGF5bWVudEdyb3VwT2JqID0+IHBheW1lbnRHcm91cE9ialsncmVmZXJlbmNlJ10uaW5jbHVkZXModGhpcy5wYXltZW50LnJlZmVyZW5jZSkpO1xuICAgICAgICB0aGlzLnBheW1lbnQgPSB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50c1swXTtcbiAgICAgICAgdGhpcy5yZW1pc3Npb25zID0gcmVtaXNzaW9uO1xuICAgICAgICB0aGlzLnJlbWlzc2lvbkZlZUFtdCA9IGZlZXMuZmlsdGVyKGRhdGE9PmRhdGEuY29kZSA9PT0gdGhpcy5yZW1pc3Npb25zWydmZWVfY29kZSddKVswXS5uZXRfYW1vdW50O1xuICAgICAgICAvLyBjb25zdCBwYXltZW50QWxsb2NhdGlvbiA9IHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRzWzBdLnBheW1lbnRfYWxsb2NhdGlvbjtcbiAgICAgICAgLy8gdGhpcy5pc1N0YXR1c0FsbG9jYXRlZCA9IHBheW1lbnRBbGxvY2F0aW9uLmxlbmd0aCA+IDAgJiYgcGF5bWVudEFsbG9jYXRpb25bMF0uYWxsb2NhdGlvbl9zdGF0dXMgPT09ICdBbGxvY2F0ZWQnIHx8IHBheW1lbnRBbGxvY2F0aW9uLmxlbmd0aCA9PT0gMDtcbiAgICAgIH0sXG4gICAgICAoZXJyb3I6IGFueSkgPT4gdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnJvclxuICAgICk7XG4gIH1cblxuICByZWRpcmVjdFRvcmVtaXNzaW9uUGFnZShldmVudDogYW55KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAncmVtaXNzaW9uJ1xuICB9XG5cbiAgcmVkaXJlY3RUb1JlcG9ydHNQYWdlKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYC9yZXBvcnRzP3NlbGVjdGVkT3B0aW9uPSR7dGhpcy5zZWxlY3RlZE9wdGlvbn0mY2NkQ2FzZU51bWJlcj0ke3RoaXMuY2NkQ2FzZU51bWJlcn1gKTtcbiAgfVxuXG4gIGxvYWRGZWVTdW1tYXJ5UGFnZShwYXltZW50R3JvdXA6IElQYXltZW50R3JvdXApIHtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuYnNwYXltZW50ZGNuID0gbnVsbDtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQucGF5bWVudEdyb3VwUmVmZXJlbmNlID0gcGF5bWVudEdyb3VwLnBheW1lbnRfZ3JvdXBfcmVmZXJlbmNlO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc1R1cm5PZmYgPSB0aGlzLmlzVHVybk9mZjtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAnZmVlLXN1bW1hcnknO1xuICB9XG5cbiAgZ29Ub1BheW1lbnRWaWV3Q29tcG9uZW50KHBheW1lbnRHcm91cDogYW55KSB7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBheW1lbnRNZXRob2QgPSBwYXltZW50R3JvdXAucGF5bWVudE1ldGhvZDtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQucGF5bWVudEdyb3VwUmVmZXJlbmNlID0gcGF5bWVudEdyb3VwLnBheW1lbnRHcm91cFJlZmVyZW5jZTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQucGF5bWVudFJlZmVyZW5jZSA9IHBheW1lbnRHcm91cC5wYXltZW50UmVmZXJlbmNlO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdwYXltZW50LXZpZXcnO1xuICB9XG5cbiAgZ29Ub1BheWVtZW50VmlldyhwYXltZW50R3JvdXBSZWZlcmVuY2U6IHN0cmluZywgcGF5bWVudFJlZmVyZW5jZTogc3RyaW5nLCBwYXltZW50TWV0aG9kOiBzdHJpbmcpIHtcbiAgICB0aGlzLmdvVG9QYXltZW50Vmlld0NvbXBvbmVudCh7IHBheW1lbnRHcm91cFJlZmVyZW5jZSwgcGF5bWVudFJlZmVyZW5jZSwgcGF5bWVudE1ldGhvZCB9KTtcbiAgfVxuXG4gIHNlbGVjdGVkVW5wcm9jZXNzZWRGZWVFdmVudCh1bnByb2Nlc3NlZFJlY29yZElkOiBzdHJpbmcpIHtcbiAgICBpZiAodW5wcm9jZXNzZWRSZWNvcmRJZCkge1xuICAgICAgaWYgKHRoaXMuaXNUdXJuT2ZmKSB7XG4gICAgICAgIHRoaXMuaXNBZGRGZWVCdG5FbmFibGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLmlzVW5wcm9jZXNzZWRSZWNvcmRTZWxlY3RlZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmlzVHVybk9mZikge1xuICAgICAgICB0aGlzLmlzQWRkRmVlQnRuRW5hYmxlZCA9IHRydWU7XG4gICAgICB9XG4gICAgICB0aGlzLmlzVW5wcm9jZXNzZWRSZWNvcmRTZWxlY3RlZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGdldFVucHJvY2Vzc2VkRmVlQ291bnQodW5Qcm9jZXNzZWRSZWNvcmRDb3VudDogbnVtYmVyKSB7XG4gICAgdGhpcy51bnByb2Nlc3NlZFJlY29yZENvdW50ID0gdW5Qcm9jZXNzZWRSZWNvcmRDb3VudDtcbiAgfVxuXG4gIGNhbGN1bGF0ZUFtb3VudER1ZShmZWU6IElGZWUpIHtcblxuICAgIGlmIChmZWUuZGF0ZV9jcmVhdGVkKSB7XG4gICAgICByZXR1cm4gZmVlLmFtb3VudF9kdWUgIT09IHVuZGVmaW5lZCA/IGZlZS5hbW91bnRfZHVlIDogZmVlLm5ldF9hbW91bnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBcIjAuMDBcIjtcbiAgICB9XG4gIH1cblxuICBjb25maXJtUmVtb3ZlRmVlKGZlZTogSUZlZSkge1xuICAgIHRoaXMuaXNSZW1vdmVCdG5EaXNhYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMuZmVlSWQgPSBmZWU7XG4gICAgdGhpcy52aWV3U3RhdHVzID0gJ2ZlZVJlbW92YWxDb25maXJtYXRpb24nO1xuICB9XG5cbiAgY2FuY2VsUmVtb3ZhbCgpIHtcbiAgICB0aGlzLnZpZXdTdGF0dXMgPSAnbWFpbic7XG4gIH1cblxuICByZW1vdmVGZWUoZmVlOiBhbnkpIHtcbiAgICB0aGlzLmlzUmVtb3ZlQnRuRGlzYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLmRlbGV0ZUZlZUZyb21QYXltZW50R3JvdXAoZmVlKS5zdWJzY3JpYmUoXG4gICAgICAoc3VjY2VzczogYW55KSA9PiB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgIH0sXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9yO1xuICAgICAgICB0aGlzLmlzUmVtb3ZlQnRuRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgaXNDaGVja0Ftb3VudGR1ZUV4aXN0KGFtb3VudER1ZTogYW55KSB7XG4gICAgcmV0dXJuIHR5cGVvZiBhbW91bnREdWUgPT09ICd1bmRlZmluZWQnO1xuICB9XG5cbiAgaXNzdWVSZWZ1bmQocGF5bWVudDogSVBheW1lbnQpIHtcbiAgICBpZiAocGF5bWVudCAhPT0gbnVsbCAmJiBwYXltZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZih0aGlzLmNoa0lzc3VlUmVmdW5kQnRuRW5hYmxlKHBheW1lbnQpKSB7XG4gICAgdGhpcy52aWV3U3RhdHVzID0gJ2lzc3VlcmVmdW5kJztcbiAgICB0aGlzLnBheW1lbnQgPSBwYXltZW50O1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc0Zyb21TZXJ2aWNlUmVxdWVzdFBhZ2UgPSB0cnVlO1xuICAgIHRoaXMuaXNSZWZ1bmRSZW1pc3Npb24gPSB0cnVlO1xuICAgIH1cbiAgfVxuICB9XG5cbiAgY2hrRm9yQWRkUmVtaXNzaW9uKGZlZUNvZGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmNoa0ZvclBCQVBheW1lbnQoKSAmJiB0aGlzLmNoZWNrNEFsbG93ZWRSb2xlczJBY2Nlc3NSZWZ1bmQoKSkge1xuICAgICAgaWYgKHRoaXMub3JkZXJEZXRhaWxbMF1bJ3JlbWlzc2lvbnMnXS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAoY29uc3QgcmVtaXNzaW9uIG9mIHRoaXMub3JkZXJEZXRhaWxbMF1bJ3JlbWlzc2lvbnMnXSkge1xuICAgICAgICAgIGlmIChyZW1pc3Npb24uZmVlX2NvZGUgPT09IGZlZUNvZGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgY2hrRm9yUEJBUGF5bWVudCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5vcmRlckRldGFpbCAhPT0gbnVsbCAmJiAgdGhpcy5vcmRlckRldGFpbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5vcmRlckRldGFpbC5mb3JFYWNoKG9yZGVyRGV0YWlsID0+IHtcbiAgICAgIGlmIChvcmRlckRldGFpbC5wYXltZW50cykge1xuICAgICAgICBvcmRlckRldGFpbC5wYXltZW50cy5mb3JFYWNoKHBheW1lbnQgPT4ge1xuICAgICAgICAgIGlmIChwYXltZW50Lm1ldGhvZC50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSAncGF5bWVudCBieSBhY2NvdW50JyAmJiB0aGlzLmFsbG93RnVydGhlckFjY2Vzc0FmdGVyNERheXMocGF5bWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuaXNQQkEgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKHRoaXMuaXNQQkEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcbiAgfVxuICB9XG5cbiAgY2hrSXNzdWVSZWZ1bmRCdG5FbmFibGUocGF5bWVudDogSVBheW1lbnQpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5jaGVjazRBbGxvd2VkUm9sZXMyQWNjZXNzUmVmdW5kKCkgJiYgdGhpcy5hbGxvd0Z1cnRoZXJBY2Nlc3NBZnRlcjREYXlzKHBheW1lbnQpICYmXG4gICAgICBwYXltZW50Lm1ldGhvZCA9PT0gJ3BheW1lbnQgYnkgYWNjb3VudCcgJiYgcGF5bWVudC5zdGF0dXMudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gJ3N1Y2Nlc3MnKSB7XG4gICAgICB0aGlzLmlzSXNzdWVSZWZ1bmZCdG5FbmFibGUgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0lzc3VlUmVmdW5mQnRuRW5hYmxlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG4gIH1cblxuICBjaGtJc1JlZnVuZFJlbWlzc2lvbkJ0bkVuYWJsZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5vcmRlckRldGFpbCAhPT0gbnVsbCAmJiAgdGhpcy5vcmRlckRldGFpbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlID0gdHJ1ZTtcbiAgICB0aGlzLm9yZGVyRGV0YWlsLmZvckVhY2gob3JkZXJEZXRhaWwgPT4ge1xuICAgICAgaWYgKG9yZGVyRGV0YWlsLnBheW1lbnRzKSB7XG4gICAgICAgIG9yZGVyRGV0YWlsLnBheW1lbnRzLmZvckVhY2gocGF5bWVudCA9PiB7XG4gICAgICAgICAgaWYgKHBheW1lbnQubWV0aG9kLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09ICdwYXltZW50IGJ5IGFjY291bnQnICYmIHBheW1lbnQuc3RhdHVzLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09ICdzdWNjZXNzJyAmJiB0aGlzLmFsbG93RnVydGhlckFjY2Vzc0FmdGVyNERheXMocGF5bWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuaXNSZWZ1bmRSZW1pc3Npb25CdG5FbmFibGUgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKHRoaXMuaXNSZWZ1bmRSZW1pc3Npb25CdG5FbmFibGUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfTtcbiAgfVxuICB9XG5cbiAgY2hlY2s0QWxsb3dlZFJvbGVzMkFjY2Vzc1JlZnVuZCA9ICgpOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gdGhpcy5hbGxvd2VkUm9sZXNUb0FjY2Vzc1JlZnVuZC5zb21lKHJvbGUgPT5cbiAgICAgIHRoaXMuTE9HR0VESU5VU0VSUk9MRVMuaW5kZXhPZihyb2xlKSAhPT0gLTFcbiAgICApO1xuICB9XG4gIGNoZWNrNEFsbG93ZWRSb2xlczJBY2Nlc3NQQkFwYXltZW50ID0gKCk6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiB0aGlzLmlzRWxpZ2libGU0UEJBUGF5bWVudC5zb21lKHJvbGUgPT5cbiAgICAgIHRoaXMuTE9HR0VESU5VU0VSUk9MRVMuaW5kZXhPZihyb2xlKSAhPT0gLTFcbiAgICApO1xuICB9XG5cbiAgYWxsb3dGdXJ0aGVyQWNjZXNzQWZ0ZXI0RGF5cyA9IChwYXltZW50OiBJUGF5bWVudCk6IGJvb2xlYW4gPT4ge1xuICAgIGlmIChwYXltZW50ICE9PSBudWxsICYmIHBheW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgIGxldCB0bXA0RGF5QWdvID0gbmV3IERhdGUoKTtcbiAgICB0bXA0RGF5QWdvLnNldERhdGUodG1wNERheUFnby5nZXREYXRlKCkgLSA0KTtcbiAgICByZXR1cm4gdG1wNERheUFnbyA+PSBuZXcgRGF0ZShwYXltZW50LmRhdGVfY3JlYXRlZCk7XG4gICAgfVxuICB9XG5cbiAgbG9hZFBCQUFjY291bnRQYWdlKG9yZGVyUmVmOiBJUGF5bWVudCkge1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5wYmFQYXlPcmRlclJlZiA9IG9yZGVyUmVmO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdwYmEtcGF5bWVudCc7XG4gIH1cbn0iXX0=
|
|
@@ -99,7 +99,12 @@ var PbaPaymentComponent = /** @class */ (function () {
|
|
|
99
99
|
* @return {?}
|
|
100
100
|
*/
|
|
101
101
|
function (r) {
|
|
102
|
-
|
|
102
|
+
try {
|
|
103
|
+
_this.pbaAccountrPaymentResult = JSON.parse(r);
|
|
104
|
+
}
|
|
105
|
+
catch (e) {
|
|
106
|
+
_this.pbaAccountrPaymentResult = r;
|
|
107
|
+
}
|
|
103
108
|
_this.isPBAAccountPaymentSuccess = true;
|
|
104
109
|
}), (/**
|
|
105
110
|
* @param {?} e
|
|
@@ -257,4 +262,4 @@ if (false) {
|
|
|
257
262
|
*/
|
|
258
263
|
PbaPaymentComponent.prototype.paymentViewService;
|
|
259
264
|
}
|
|
260
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGJhLXBheW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9wYmEtcGF5bWVudC9wYmEtcGF5bWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOztJQUVqRixjQUFjLEdBQUcsdUJBQXVCO0FBRTlDO0lBeUJFLDZCQUFxQixtQkFBd0MsRUFDbkQsa0JBQXNDO1FBRDNCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDbkQsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQWpCaEQscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBRWxDLHlCQUFvQixHQUFZLElBQUksQ0FBQztRQUNyQyx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDcEMseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBQ3RDLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQywyQkFBc0IsR0FBWSxLQUFLLENBQUM7UUFDeEMsdUJBQWtCLEdBQVcsRUFBRSxDQUFDO1FBQ2hDLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBQzNCLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUN0QywwQkFBcUIsR0FBWSxLQUFLLENBQUM7UUFDdkMsMEJBQXFCLEdBQVksS0FBSyxDQUFDO1FBQ3ZDLDZCQUF3QixHQUFZLElBQUksQ0FBQztRQUN6QywrQkFBMEIsR0FBWSxL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REFBaUQ7Ozs7O0lBQzNELGlEQUE4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYXltZW50Vmlld1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wYXltZW50LXZpZXcvcGF5bWVudC12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHsgUGF5bWVudExpYkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BheW1lbnQtbGliLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJc2VydmljZVJlcXVlc3RDYXJkUGF5bWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSXNlcnZpY2VSZXF1ZXN0Q2FyZFBheW1lbnQnO1xuaW1wb3J0IHsgSXNlcnZpY2VSZXF1ZXN0UGJhUGF5bWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSXNlcnZpY2VSZXF1ZXN0UGJhUGF5bWVudCc7XG5cbmNvbnN0IEJTX0VOQUJMRV9GTEFHID0gJ2J1bGstc2Nhbi1lbmFibGluZy1mZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjcGF5LXBiYS1wYXltZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BiYS1wYXltZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGJhLXBheW1lbnQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQYmFQYXltZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcGJhUGF5T3JkZXJSZWY6IGFueTtcbiAgdmlld1N0YXR1czogc3RyaW5nO1xuICBwYmFBY2NvdW50TGlzdDogc3RyaW5nW107XG4gIGlzUEJBQWNjb3VudEhvbGQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXJyb3JNc2c6IGFueTtcbiAgaXNDYXJkUGF5bWVudFN1Y2Nlc3M6IGJvb2xlYW4gPSB0cnVlO1xuICBpc0luU3VmZmljaWFudEZ1bmQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNQQkFBY2NvdW50Tm90RXhpc3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNQQkFTZXJ2ZXJFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0dldFBCQUFjY291bnRTdWNjZWVkOiBib29sZWFuID0gZmFsc2U7XG4gIHNlbGVjdGVkUGJhQWNjb3VudDogc3RyaW5nID0gJyc7XG4gIHBiYUFjY291bnRSZWY6IHN0cmluZyA9ICcnO1xuICBpc1BiYUFjY291bnRTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0NhcmRQYXltZW50U2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNQQkFEcm9wZG93blNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzQ29udGludWVCdXR0b25kaXNhYmxlZDogYm9vbGVhbiA9IHRydWU7XG4gIGlzUEJBQWNjb3VudFBheW1lbnRTdWNjZXNzOiBib29sZWFuID0gZmFsc2U7XG4gIHBiYUFjY291bnRyUGF5bWVudFJlc3VsdDogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgIHBheW1lbnRMaWJDb21wb25lbnQ6IFBheW1lbnRMaWJDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBwYXltZW50Vmlld1NlcnZpY2U6IFBheW1lbnRWaWV3U2VydmljZSkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnBiYVBheU9yZGVyUmVmID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBiYVBheU9yZGVyUmVmO1xuICAgIHRoaXMudmlld1N0YXR1cyA9ICdwYmEtcGF5bWVudCc7XG4gICAgdGhpcy5lcnJvck1zZyA9IG51bGw7XG4gICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZ2V0UEJBYWNjb3VudERldGFpbHMoKVxuICAgIC5zdWJzY3JpYmUoXG4gICAgICByZXN1bHQgPT4ge1xuICAgICAgICB0aGlzLmlzR2V0UEJBQWNjb3VudFN1Y2NlZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnBiYUFjY291bnRMaXN0ID0gcmVzdWx0Lm9yZ2FuaXNhdGlvbkVudGl0eVJlc3BvbnNlLnBheW1lbnRBY2NvdW50O1xuICAgICAgfSxcbiAgICAgIGVycm9yID0+IHtcbiAgICAgICAgdGhpcy5lcnJvck1zZyA9IGVycm9yO1xuICAgICAgfVxuICAgICk7XG5cbiAgfVxuICBzZWxlY3RwYmFhY2NvdW50KGFyZ3MpIHtcbiAgICBpZihhcmdzLmN1cnJlbnRUYXJnZXQuaWQgPT09ICdwYmFBY2NvdW50TnVtYmVyJykge1xuICAgICAgdGhpcy5pc1BCQURyb3Bkb3duU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5zZWxlY3RlZFBiYUFjY291bnQgPSBhcmdzLnRhcmdldC52YWx1ZTsgXG4gICAgfVxuICAgIGlmKGFyZ3MuY3VycmVudFRhcmdldC5pZCA9PT0gJ3BiYUFjY291bnRSZWYnKSB7XG4gICAgICB0aGlzLnBiYUFjY291bnRSZWYgPSBhcmdzLnRhcmdldC52YWx1ZTsgXG4gICAgfVxuICAgIGlmKHRoaXMuc2VsZWN0ZWRQYmFBY2NvdW50ICE9PSAnJyAmJiB0aGlzLnBiYUFjY291bnRSZWYgIT09IFwiXCIpIHtcbiAgICAgIHRoaXMuaXNDb250aW51ZUJ1dHRvbmRpc2FibGVkID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNDb250aW51ZUJ1dHRvbmRpc2FibGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBzYXZlQW5kQ29udGludWUoKSB7XG5cbiAgICBpZih0aGlzLmlzUGJhQWNjb3VudFNlbGVjdGVkKSB7XG4gICAgICB0aGlzLmlzSW5TdWZmaWNpYW50RnVuZCA9IGZhbHNlO1xuICAgICAgdGhpcy5pc1BCQUFjY291bnROb3RFeGlzdCA9IGZhbHNlO1xuICAgICAgdGhpcy5pc1BCQVNlcnZlckVycm9yID0gZmFsc2U7XG4gICAgICB0aGlzLmlzUEJBQWNjb3VudFBheW1lbnRTdWNjZXNzID0gZmFsc2U7XG4gICAgICBpZiAoIHRoaXMucGJhQWNjb3VudExpc3QuaW5kZXhPZih0aGlzLnNlbGVjdGVkUGJhQWNjb3VudCkgIT09IC0xICkge1xuICAgICAgICBjb25zdCByZXF1ZXN0Qm9keSA9IG5ldyBJc2VydmljZVJlcXVlc3RQYmFQYXltZW50KFxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRQYmFBY2NvdW50LCB0aGlzLnBiYVBheU9yZGVyUmVmLm9yZGVyVG90YWxGZWVzLCB0aGlzLnBiYUFjY291bnRSZWYpO1xuICAgICAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5wb3N0UEJBYWNjb3VudFBheW1lbnQodGhpcy5wYmFQYXlPcmRlclJlZi5vcmRlclJlZklkLCByZXF1ZXN0Qm9keSlcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICByID0+IHtcbiAgICAgICAgICAgIHRoaXMucGJhQWNjb3VudHJQYXltZW50UmVzdWx0ID0gSlNPTi5wYXJzZShyKS5kYXRhO1xuICAgICAgICAgICAgdGhpcy5pc1BCQUFjY291bnRQYXltZW50U3VjY2VzcyA9IHRydWU7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlID0+IHtcbiAgICAgICAgICAgIGlmKGUuc3RhdHVzID09ICc0MDInKSB7XG4gICAgICAgICAgICAgIHRoaXMuaXNJblN1ZmZpY2lhbnRGdW5kID0gdHJ1ZTsgXG4gICAgICAgICAgICB9IGVsc2UgaWYoZS5zdGF0dXMgPT0gJzQxMCcpIHtcbiAgICAgICAgICAgICAgdGhpcy5pc1BCQUFjY291bnROb3RFeGlzdCA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYoZS5zdGF0dXMgPT0gJzQxMicpIHtcbiAgICAgICAgICAgICAgdGhpcy5pc1BCQUFjY291bnRIb2xkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuaXNQQkFTZXJ2ZXJFcnJvciA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pc1BCQVNlcnZlckVycm9yID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNDYXJkUGF5bWVudFNlbGVjdGVkKSB7XG4gICAgICB0aGlzLmNhcmRQYXltZW50KCk7XG4gICAgfVxuXG4gIH1cbiAgY2FyZFBheW1lbnQoKSB7XG4gICAgdGhpcy5pc0NhcmRQYXltZW50U3VjY2VzcyA9IHRydWU7XG4gICAgY29uc3QgcmVxdWVzdEJvZHkgPSBuZXcgSXNlcnZpY2VSZXF1ZXN0Q2FyZFBheW1lbnQgKFxuICAgICAgdGhpcy5wYmFQYXlPcmRlclJlZi5vcmRlclRvdGFsRmVlcyk7XG4gICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UucG9zdFdheXMyUGF5Q2FyZFBheW1lbnQodGhpcy5wYmFQYXlPcmRlclJlZi5vcmRlclJlZklkLCByZXF1ZXN0Qm9keSlcbiAgICAuc3Vic2NyaWJlKFxuICAgICAgcmVzdWx0ID0+IHtcbiAgICAgICAgY29uc3QgcGF5bWVudFVybCA9IEpTT04ucGFyc2UocmVzdWx0KS5uZXh0X3VybDtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBwYXltZW50VXJsO1xuICAgICAgfSxcbiAgICAgIGVycm9yID0+IHtcbiAgICAgICAgdGhpcy5pc0NhcmRQYXltZW50U3VjY2VzcyA9IGZhbHNlO1xuICAgICAgfVxuICAgICk7XG5cbiAgfVxuICBzZWxlY3RQYXltZW50TWV0aG9kKHR5cGU6IHN0cmluZykge1xuICAgIGlmKHR5cGUgPT09ICdQQkEnKSB7XG4gICAgICB0aGlzLmlzUGJhQWNjb3VudFNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNDYXJkUGF5bWVudFNlbGVjdGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmlzUEJBRHJvcGRvd25TZWxlY3RlZCA9IGZhbHNlXG4gICAgICB0aGlzLmlzQ29udGludWVCdXR0b25kaXNhYmxlZCA9IHRydWU7XG4gICAgICB0aGlzLnNlbGVjdGVkUGJhQWNjb3VudCA9IG51bGw7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnQ0FSRCcpIHtcbiAgICAgIHRoaXMuaXNQYmFBY2NvdW50U2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNDYXJkUGF5bWVudFNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNQQkFEcm9wZG93blNlbGVjdGVkID0gZmFsc2VcbiAgICAgIHRoaXMuaXNDb250aW51ZUJ1dHRvbmRpc2FibGVkID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIGdvdG9DYXNldHJhbnNhdGlvblBhZ2UoKSB7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ2Nhc2UtdHJhbnNhY3Rpb25zJztcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPSBmYWxzZTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNCU0VOQUJMRSA9IHRydWU7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZSA9IHRydWU7XG4gIH1cbn1cbiJdfQ==
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGJhLXBheW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9wYmEtcGF5bWVudC9wYmEtcGF5bWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOztJQUVqRixjQUFjLEdBQUcsdUJBQXVCO0FBRTlDO0lBeUJFLDZCQUFxQixtQkFBd0MsRUFDbkQsa0JBQXNDO1FBRDNCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDbkQsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQWpCaEQscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBRWxDLHlCQUFvQixHQUFZLElBQUksQ0FBQztRQUNyQyx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDcEMseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBQ3RDLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQywyQkFBc0IsR0FBWSxLQUFLLENBQUM7UUFDeEMsdUJBQWtCLEdBQVcsRUFBRSxDQUFDO1FBQ2hDLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBQzNCLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUN0QywwQkFBcUIsR0FBWSxLQUFLLENBQUM7UUFDdkMsMEJBQXFCLEdBQVksS0FBSyxDQUFDO1FBQ3ZDLDZCQUF3QixHQUFZLElBQUksQ0FBQztRQUN6QywrQkFBMEIsR0FBWSxL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REFBdUM7O0lBQ3ZDLG9EQUF1Qzs7SUFDdkMsdURBQXlDOztJQUN6Qyx5REFBNEM7O0lBQzVDLHVEQUE4Qjs7Ozs7SUFFbEIsa0RBQWlEOzs7OztJQUMzRCxpREFBOEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGF5bWVudFZpZXdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcGF5bWVudC12aWV3L3BheW1lbnQtdmlldy5zZXJ2aWNlJztcbmltcG9ydCB7IFBheW1lbnRMaWJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wYXltZW50LWxpYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSXNlcnZpY2VSZXF1ZXN0Q2FyZFBheW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lzZXJ2aWNlUmVxdWVzdENhcmRQYXltZW50JztcbmltcG9ydCB7IElzZXJ2aWNlUmVxdWVzdFBiYVBheW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lzZXJ2aWNlUmVxdWVzdFBiYVBheW1lbnQnO1xuXG5jb25zdCBCU19FTkFCTEVfRkxBRyA9ICdidWxrLXNjYW4tZW5hYmxpbmctZmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY3BheS1wYmEtcGF5bWVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYmEtcGF5bWVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BiYS1wYXltZW50LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGJhUGF5bWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHBiYVBheU9yZGVyUmVmOiBhbnk7XG4gIHZpZXdTdGF0dXM6IHN0cmluZztcbiAgcGJhQWNjb3VudExpc3Q6IHN0cmluZ1tdO1xuICBpc1BCQUFjY291bnRIb2xkOiBib29sZWFuID0gZmFsc2U7XG4gIGVycm9yTXNnOiBhbnk7XG4gIGlzQ2FyZFBheW1lbnRTdWNjZXNzOiBib29sZWFuID0gdHJ1ZTtcbiAgaXNJblN1ZmZpY2lhbnRGdW5kOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUEJBQWNjb3VudE5vdEV4aXN0OiBib29sZWFuID0gZmFsc2U7XG4gIGlzUEJBU2VydmVyRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNHZXRQQkFBY2NvdW50U3VjY2VlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBzZWxlY3RlZFBiYUFjY291bnQ6IHN0cmluZyA9ICcnO1xuICBwYmFBY2NvdW50UmVmOiBzdHJpbmcgPSAnJztcbiAgaXNQYmFBY2NvdW50U2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNDYXJkUGF5bWVudFNlbGVjdGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUEJBRHJvcGRvd25TZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0NvbnRpbnVlQnV0dG9uZGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBpc1BCQUFjY291bnRQYXltZW50U3VjY2VzczogYm9vbGVhbiA9IGZhbHNlO1xuICBwYmFBY2NvdW50clBheW1lbnRSZXN1bHQ6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlICBwYXltZW50TGliQ29tcG9uZW50OiBQYXltZW50TGliQ29tcG9uZW50LFxuICAgIHByaXZhdGUgcGF5bWVudFZpZXdTZXJ2aWNlOiBQYXltZW50Vmlld1NlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5wYmFQYXlPcmRlclJlZiA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5wYmFQYXlPcmRlclJlZjtcbiAgICB0aGlzLnZpZXdTdGF0dXMgPSAncGJhLXBheW1lbnQnO1xuICAgIHRoaXMuZXJyb3JNc2cgPSBudWxsO1xuICAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLmdldFBCQWFjY291bnREZXRhaWxzKClcbiAgICAuc3Vic2NyaWJlKFxuICAgICAgcmVzdWx0ID0+IHtcbiAgICAgICAgdGhpcy5pc0dldFBCQUFjY291bnRTdWNjZWVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wYmFBY2NvdW50TGlzdCA9IHJlc3VsdC5vcmdhbmlzYXRpb25FbnRpdHlSZXNwb25zZS5wYXltZW50QWNjb3VudDtcbiAgICAgIH0sXG4gICAgICBlcnJvciA9PiB7XG4gICAgICAgIHRoaXMuZXJyb3JNc2cgPSBlcnJvcjtcbiAgICAgIH1cbiAgICApO1xuXG4gIH1cbiAgc2VsZWN0cGJhYWNjb3VudChhcmdzKSB7XG4gICAgaWYoYXJncy5jdXJyZW50VGFyZ2V0LmlkID09PSAncGJhQWNjb3VudE51bWJlcicpIHtcbiAgICAgIHRoaXMuaXNQQkFEcm9wZG93blNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQYmFBY2NvdW50ID0gYXJncy50YXJnZXQudmFsdWU7IFxuICAgIH1cbiAgICBpZihhcmdzLmN1cnJlbnRUYXJnZXQuaWQgPT09ICdwYmFBY2NvdW50UmVmJykge1xuICAgICAgdGhpcy5wYmFBY2NvdW50UmVmID0gYXJncy50YXJnZXQudmFsdWU7IFxuICAgIH1cbiAgICBpZih0aGlzLnNlbGVjdGVkUGJhQWNjb3VudCAhPT0gJycgJiYgdGhpcy5wYmFBY2NvdW50UmVmICE9PSBcIlwiKSB7XG4gICAgICB0aGlzLmlzQ29udGludWVCdXR0b25kaXNhYmxlZCA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzQ29udGludWVCdXR0b25kaXNhYmxlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgc2F2ZUFuZENvbnRpbnVlKCkge1xuXG4gICAgaWYodGhpcy5pc1BiYUFjY291bnRTZWxlY3RlZCkge1xuICAgICAgdGhpcy5pc0luU3VmZmljaWFudEZ1bmQgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNQQkFBY2NvdW50Tm90RXhpc3QgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNQQkFTZXJ2ZXJFcnJvciA9IGZhbHNlO1xuICAgICAgdGhpcy5pc1BCQUFjY291bnRQYXltZW50U3VjY2VzcyA9IGZhbHNlO1xuICAgICAgaWYgKCB0aGlzLnBiYUFjY291bnRMaXN0LmluZGV4T2YodGhpcy5zZWxlY3RlZFBiYUFjY291bnQpICE9PSAtMSApIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdEJvZHkgPSBuZXcgSXNlcnZpY2VSZXF1ZXN0UGJhUGF5bWVudChcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkUGJhQWNjb3VudCwgdGhpcy5wYmFQYXlPcmRlclJlZi5vcmRlclRvdGFsRmVlcywgdGhpcy5wYmFBY2NvdW50UmVmKTtcbiAgICAgICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UucG9zdFBCQWFjY291bnRQYXltZW50KHRoaXMucGJhUGF5T3JkZXJSZWYub3JkZXJSZWZJZCwgcmVxdWVzdEJvZHkpXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgciA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICB0aGlzLnBiYUFjY291bnRyUGF5bWVudFJlc3VsdCA9IEpTT04ucGFyc2Uocik7XG4gICAgICAgICAgICB9IGNhdGNoKGUpIHtcbiAgICAgICAgICAgICAgdGhpcy5wYmFBY2NvdW50clBheW1lbnRSZXN1bHQgPSByO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pc1BCQUFjY291bnRQYXltZW50U3VjY2VzcyA9IHRydWU7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlID0+IHtcbiAgICAgICAgICAgIGlmKGUuc3RhdHVzID09ICc0MDInKSB7XG4gICAgICAgICAgICAgIHRoaXMuaXNJblN1ZmZpY2lhbnRGdW5kID0gdHJ1ZTsgXG4gICAgICAgICAgICB9IGVsc2UgaWYoZS5zdGF0dXMgPT0gJzQxMCcpIHtcbiAgICAgICAgICAgICAgdGhpcy5pc1BCQUFjY291bnROb3RFeGlzdCA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYoZS5zdGF0dXMgPT0gJzQxMicpIHtcbiAgICAgICAgICAgICAgdGhpcy5pc1BCQUFjY291bnRIb2xkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuaXNQQkFTZXJ2ZXJFcnJvciA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pc1BCQVNlcnZlckVycm9yID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuaXNDYXJkUGF5bWVudFNlbGVjdGVkKSB7XG4gICAgICB0aGlzLmNhcmRQYXltZW50KCk7XG4gICAgfVxuXG4gIH1cbiAgY2FyZFBheW1lbnQoKSB7XG4gICAgdGhpcy5pc0NhcmRQYXltZW50U3VjY2VzcyA9IHRydWU7XG4gICAgY29uc3QgcmVxdWVzdEJvZHkgPSBuZXcgSXNlcnZpY2VSZXF1ZXN0Q2FyZFBheW1lbnQgKFxuICAgICAgdGhpcy5wYmFQYXlPcmRlclJlZi5vcmRlclRvdGFsRmVlcyk7XG4gICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UucG9zdFdheXMyUGF5Q2FyZFBheW1lbnQodGhpcy5wYmFQYXlPcmRlclJlZi5vcmRlclJlZklkLCByZXF1ZXN0Qm9keSlcbiAgICAuc3Vic2NyaWJlKFxuICAgICAgcmVzdWx0ID0+IHtcbiAgICAgICAgY29uc3QgcGF5bWVudFVybCA9IEpTT04ucGFyc2UocmVzdWx0KS5uZXh0X3VybDtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBwYXltZW50VXJsO1xuICAgICAgfSxcbiAgICAgIGVycm9yID0+IHtcbiAgICAgICAgdGhpcy5pc0NhcmRQYXltZW50U3VjY2VzcyA9IGZhbHNlO1xuICAgICAgfVxuICAgICk7XG5cbiAgfVxuICBzZWxlY3RQYXltZW50TWV0aG9kKHR5cGU6IHN0cmluZykge1xuICAgIGlmKHR5cGUgPT09ICdQQkEnKSB7XG4gICAgICB0aGlzLmlzUGJhQWNjb3VudFNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNDYXJkUGF5bWVudFNlbGVjdGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmlzUEJBRHJvcGRvd25TZWxlY3RlZCA9IGZhbHNlXG4gICAgICB0aGlzLmlzQ29udGludWVCdXR0b25kaXNhYmxlZCA9IHRydWU7XG4gICAgICB0aGlzLnNlbGVjdGVkUGJhQWNjb3VudCA9IG51bGw7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnQ0FSRCcpIHtcbiAgICAgIHRoaXMuaXNQYmFBY2NvdW50U2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNDYXJkUGF5bWVudFNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNQQkFEcm9wZG93blNlbGVjdGVkID0gZmFsc2VcbiAgICAgIHRoaXMuaXNDb250aW51ZUJ1dHRvbmRpc2FibGVkID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIGdvdG9DYXNldHJhbnNhdGlvblBhZ2UoKSB7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ2Nhc2UtdHJhbnNhY3Rpb25zJztcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPSBmYWxzZTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNCU0VOQUJMRSA9IHRydWU7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzRnJvbVNlcnZpY2VSZXF1ZXN0UGFnZSA9IHRydWU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -2914,17 +2914,13 @@ class CaseTransactionsComponent {
|
|
|
2914
2914
|
}
|
|
2915
2915
|
}));
|
|
2916
2916
|
}
|
|
2917
|
-
this.orderPendingPayments = (this.orderFeesTotal - this.orderRemissionTotal) - this.orderTotalPayments;
|
|
2918
|
-
if (
|
|
2919
|
-
this.orderStatus =
|
|
2917
|
+
// this.orderPendingPayments = (this.orderFeesTotal - this.orderRemissionTotal) - this.orderTotalPayments;
|
|
2918
|
+
if (paymentGroup.service_request_status === 'Paid') {
|
|
2919
|
+
this.orderStatus = paymentGroup.service_request_status;
|
|
2920
2920
|
this.orderAddBtnEnable = false;
|
|
2921
2921
|
}
|
|
2922
|
-
else if (
|
|
2923
|
-
this.orderStatus =
|
|
2924
|
-
this.orderAddBtnEnable = true;
|
|
2925
|
-
}
|
|
2926
|
-
else {
|
|
2927
|
-
this.orderStatus = 'Not paid';
|
|
2922
|
+
else if (paymentGroup.service_request_status === 'Partially paid' || paymentGroup.service_request_status === 'Not paid') {
|
|
2923
|
+
this.orderStatus = paymentGroup.service_request_status;
|
|
2928
2924
|
this.orderAddBtnEnable = true;
|
|
2929
2925
|
}
|
|
2930
2926
|
//this.orderLevelFees.push({orderRefId:paymentGroup['payment_group_reference'],orderTotalFees: this.orderFeesTotal,orderStatus: this.orderStatus,orderParty:'Santosh', orderCCDEvent:'Case Creation',orderCreated: new Date(), orderAddBtnEnable: this.orderAddBtnEnable}); this.cpoDetails['createdTimestamp']
|
|
@@ -3008,18 +3004,17 @@ class CaseTransactionsComponent {
|
|
|
3008
3004
|
}));
|
|
3009
3005
|
}
|
|
3010
3006
|
}
|
|
3007
|
+
this.orderStatus = orderDetail.service_request_status;
|
|
3011
3008
|
}));
|
|
3012
|
-
this.orderPendingPayments = (this.orderFeesTotal - this.orderRemissionTotal) - this.orderTotalPayments;
|
|
3009
|
+
//this.orderPendingPayments = (this.orderFeesTotal - this.orderRemissionTotal) - this.orderTotalPayments;
|
|
3013
3010
|
// this.orderRef = orderReferenceObj.orderRefId;
|
|
3014
|
-
if (this.orderPendingPayments <= 0.00) {
|
|
3015
|
-
|
|
3016
|
-
}
|
|
3017
|
-
|
|
3018
|
-
|
|
3019
|
-
|
|
3020
|
-
|
|
3021
|
-
this.orderStatus = 'Not paid';
|
|
3022
|
-
}
|
|
3011
|
+
// if (this.orderPendingPayments <= 0.00) {
|
|
3012
|
+
// this.orderStatus = 'Paid';
|
|
3013
|
+
// } else if (this.orderFeesTotal > 0 && (this.orderTotalPayments > 0 || this.orderRemissionTotal > 0) && (this.orderTotalPayments < this.orderPendingPayments)) {
|
|
3014
|
+
// this.orderStatus = 'Partially paid'
|
|
3015
|
+
// } else {
|
|
3016
|
+
// this.orderStatus = 'Not paid'
|
|
3017
|
+
// }
|
|
3023
3018
|
if (this.cpoDetails !== null) {
|
|
3024
3019
|
this.orderParty = this.cpoDetails['responsibleParty'];
|
|
3025
3020
|
this.orderCreated = this.cpoDetails['createdTimestamp'];
|
|
@@ -8386,7 +8381,12 @@ class PbaPaymentComponent {
|
|
|
8386
8381
|
* @return {?}
|
|
8387
8382
|
*/
|
|
8388
8383
|
r => {
|
|
8389
|
-
|
|
8384
|
+
try {
|
|
8385
|
+
this.pbaAccountrPaymentResult = JSON.parse(r);
|
|
8386
|
+
}
|
|
8387
|
+
catch (e) {
|
|
8388
|
+
this.pbaAccountrPaymentResult = r;
|
|
8389
|
+
}
|
|
8390
8390
|
this.isPBAAccountPaymentSuccess = true;
|
|
8391
8391
|
}), (/**
|
|
8392
8392
|
* @param {?} e
|