@hmcts/ccpay-web-component 3.0.26 → 3.0.30
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 +159 -59
- 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/add-remission/add-remission.component.js +20 -6
- package/esm2015/lib/components/allocate-payments/allocate-payments.component.js +25 -24
- package/esm2015/lib/components/case-transactions/case-transactions.component.js +24 -8
- package/esm2015/lib/components/fee-summary/fee-summary.component.js +85 -35
- package/esm2015/lib/components/mark-unidentified-payment/mark-unidentified-payment.component.js +9 -4
- package/esm2015/lib/components/mark-unsolicited-payment/mark-unsolicited-payment.component.js +9 -4
- package/esm2015/lib/components/payment-view/payment-view.component.js +9 -6
- package/esm2015/lib/components/reports/reports.component.js +11 -5
- package/esm2015/lib/components/unprocessed-payments/unprocessed-payments.component.js +18 -1
- package/esm2015/lib/interfaces/AddRemissionRequest.js +5 -5
- package/esm2015/lib/interfaces/AllocatePaymentRequest.js +5 -8
- package/esm2015/lib/interfaces/PayhubAntennaRequest.js +29 -0
- package/esm2015/lib/interfaces/PaymentToPayhubRequest.js +5 -9
- package/esm2015/lib/payment-lib.component.js +31 -7
- package/esm2015/lib/services/payment-view/payment-view.service.js +9 -1
- package/esm2015/lib/services/xl-file/xl-file.service.js +2 -2
- package/esm5/lib/components/add-remission/add-remission.component.js +18 -4
- package/esm5/lib/components/allocate-payments/allocate-payments.component.js +26 -14
- package/esm5/lib/components/case-transactions/case-transactions.component.js +21 -3
- package/esm5/lib/components/fee-summary/fee-summary.component.js +57 -19
- package/esm5/lib/components/mark-unidentified-payment/mark-unidentified-payment.component.js +9 -4
- package/esm5/lib/components/mark-unsolicited-payment/mark-unsolicited-payment.component.js +9 -4
- package/esm5/lib/components/payment-view/payment-view.component.js +3 -3
- package/esm5/lib/components/reports/reports.component.js +8 -3
- package/esm5/lib/components/unprocessed-payments/unprocessed-payments.component.js +18 -1
- package/esm5/lib/interfaces/AddRemissionRequest.js +4 -4
- package/esm5/lib/interfaces/AllocatePaymentRequest.js +4 -7
- package/esm5/lib/interfaces/PayhubAntennaRequest.js +26 -0
- package/esm5/lib/interfaces/PaymentToPayhubRequest.js +4 -7
- package/esm5/lib/payment-lib.component.js +18 -3
- package/esm5/lib/services/payment-view/payment-view.service.js +14 -1
- package/esm5/lib/services/xl-file/xl-file.service.js +2 -2
- package/fesm2015/hmcts-ccpay-web-component.js +212 -101
- package/fesm2015/hmcts-ccpay-web-component.js.map +1 -1
- package/fesm5/hmcts-ccpay-web-component.js +156 -55
- package/fesm5/hmcts-ccpay-web-component.js.map +1 -1
- package/hmcts-ccpay-web-component.metadata.json +1 -1
- package/lib/components/add-remission/add-remission.component.d.ts +3 -1
- package/lib/components/allocate-payments/allocate-payments.component.d.ts +4 -0
- package/lib/components/case-transactions/case-transactions.component.d.ts +4 -0
- package/lib/components/fee-summary/fee-summary.component.d.ts +4 -0
- package/lib/components/mark-unidentified-payment/mark-unidentified-payment.component.d.ts +1 -0
- package/lib/components/mark-unsolicited-payment/mark-unsolicited-payment.component.d.ts +1 -0
- package/lib/components/unprocessed-payments/unprocessed-payments.component.d.ts +4 -0
- package/lib/interfaces/AddRemissionRequest.d.ts +2 -2
- package/lib/interfaces/AllocatePaymentRequest.d.ts +3 -3
- package/lib/interfaces/PayhubAntennaRequest.d.ts +7 -0
- package/lib/interfaces/PaymentToPayhubRequest.d.ts +2 -3
- package/lib/payment-lib.component.d.ts +6 -0
- package/lib/services/payment-view/payment-view.service.d.ts +2 -0
- package/package.json +1 -1
|
@@ -108,11 +108,14 @@ export class AddRemissionComponent {
|
|
|
108
108
|
/** @type {?} */
|
|
109
109
|
const remissionAmount = this.fee.net_amount - newNetAmount;
|
|
110
110
|
/** @type {?} */
|
|
111
|
-
const requestBody = new AddRemissionRequest(this.ccdCaseNumber, this.fee, remissionAmount, this.remissionForm.controls["remissionCode"].value, this.
|
|
111
|
+
const requestBody = new AddRemissionRequest(this.ccdCaseNumber, this.fee, remissionAmount, this.remissionForm.controls["remissionCode"].value, this.caseType);
|
|
112
112
|
this.paymentViewService.postPaymentGroupWithRemissions(decodeURIComponent(this.paymentGroupRef).trim(), this.fee.id, requestBody).subscribe(response => {
|
|
113
113
|
if (JSON.parse(response).success) {
|
|
114
114
|
/** @type {?} */
|
|
115
|
-
|
|
115
|
+
let LDUrl = this.isTurnOff ? '&isTurnOff=Enable' : '&isTurnOff=Disable';
|
|
116
|
+
LDUrl += `&caseType=${this.caseType}`;
|
|
117
|
+
LDUrl += this.isNewPcipalOff ? '&isNewPcipalOff=Enable' : '&isNewPcipalOff=Disable';
|
|
118
|
+
LDUrl += this.isOldPcipalOff ? '&isOldPcipalOff=Enable' : '&isOldPcipalOff=Disable';
|
|
116
119
|
if (this.paymentLibComponent.bspaymentdcn) {
|
|
117
120
|
this.router.routeReuseStrategy.shouldReuseRoute = () => false;
|
|
118
121
|
this.router.onSameUrlNavigation = 'reload';
|
|
@@ -134,6 +137,8 @@ export class AddRemissionComponent {
|
|
|
134
137
|
this.paymentLibComponent.viewName = 'case-transactions';
|
|
135
138
|
this.paymentLibComponent.TAKEPAYMENT = true;
|
|
136
139
|
this.paymentLibComponent.ISTURNOFF = this.isTurnOff;
|
|
140
|
+
this.paymentLibComponent.ISNEWPCIPALOFF = this.isNewPcipalOff;
|
|
141
|
+
this.paymentLibComponent.ISOLDPCIPALOFF = this.isOldPcipalOff;
|
|
137
142
|
this.paymentViewService.getBSfeature().subscribe(features => {
|
|
138
143
|
/** @type {?} */
|
|
139
144
|
let result = JSON.parse(features).filter(feature => feature.uid === BS_ENABLE_FLAG);
|
|
@@ -146,8 +151,11 @@ export class AddRemissionComponent {
|
|
|
146
151
|
partUrl += this.paymentLibComponent.ISBSENABLE ? '&isBulkScanning=Enable' : '&isBulkScanning=Disable';
|
|
147
152
|
partUrl += this.paymentLibComponent.ISTURNOFF ? '&isTurnOff=Enable' : '&isTurnOff=Disable';
|
|
148
153
|
partUrl += this.isStrategicFixEnable ? '&isStFixEnable=Enable' : '&isStFixEnable=Disable';
|
|
154
|
+
partUrl += `&caseType=${this.caseType}`;
|
|
155
|
+
partUrl += this.paymentLibComponent.ISNEWPCIPALOFF ? '&isNewPcipalOff=Enable' : '&isNewPcipalOff=Disable';
|
|
156
|
+
partUrl += this.paymentLibComponent.ISOLDPCIPALOFF ? '&isOldPcipalOff=Enable' : '&isOldPcipalOff=Disable';
|
|
149
157
|
/** @type {?} */
|
|
150
|
-
|
|
158
|
+
const url = `/payment-history/${this.ccdCaseNumber}?view=case-transactions&takePayment=true&selectedOption=${this.option}${partUrl}`;
|
|
151
159
|
this.router.navigateByUrl(url);
|
|
152
160
|
}
|
|
153
161
|
}
|
|
@@ -261,9 +269,11 @@ AddRemissionComponent.ctorParameters = () => [
|
|
|
261
269
|
AddRemissionComponent.propDecorators = {
|
|
262
270
|
fee: [{ type: Input }],
|
|
263
271
|
ccdCaseNumber: [{ type: Input }],
|
|
264
|
-
|
|
272
|
+
caseType: [{ type: Input }],
|
|
265
273
|
paymentGroupRef: [{ type: Input }],
|
|
266
274
|
isTurnOff: [{ type: Input }],
|
|
275
|
+
isOldPcipalOff: [{ type: Input }],
|
|
276
|
+
isNewPcipalOff: [{ type: Input }],
|
|
267
277
|
isStrategicFixEnable: [{ type: Input }],
|
|
268
278
|
cancelRemission: [{ type: Output }]
|
|
269
279
|
};
|
|
@@ -273,12 +283,16 @@ if (false) {
|
|
|
273
283
|
/** @type {?} */
|
|
274
284
|
AddRemissionComponent.prototype.ccdCaseNumber;
|
|
275
285
|
/** @type {?} */
|
|
276
|
-
AddRemissionComponent.prototype.
|
|
286
|
+
AddRemissionComponent.prototype.caseType;
|
|
277
287
|
/** @type {?} */
|
|
278
288
|
AddRemissionComponent.prototype.paymentGroupRef;
|
|
279
289
|
/** @type {?} */
|
|
280
290
|
AddRemissionComponent.prototype.isTurnOff;
|
|
281
291
|
/** @type {?} */
|
|
292
|
+
AddRemissionComponent.prototype.isOldPcipalOff;
|
|
293
|
+
/** @type {?} */
|
|
294
|
+
AddRemissionComponent.prototype.isNewPcipalOff;
|
|
295
|
+
/** @type {?} */
|
|
282
296
|
AddRemissionComponent.prototype.isStrategicFixEnable;
|
|
283
297
|
/** @type {?} */
|
|
284
298
|
AddRemissionComponent.prototype.cancelRemission;
|
|
@@ -316,4 +330,4 @@ if (false) {
|
|
|
316
330
|
AddRemissionComponent.prototype.paymentLibComponent;
|
|
317
331
|
}
|
|
318
332
|
|
|
319
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXJlbWlzc2lvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvY2NwYXktd2ViLWNvbXBvbmVudC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2FkZC1yZW1pc3Npb24vYWRkLXJlbWlzc2lvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakYsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUVsRSxNQUFNLGNBQWMsR0FBRyx1QkFBdUIsQ0FBQztBQW9HL0MsTUFBTTs7Ozs7OztJQXVCSixZQUFvQixXQUF3QixFQUNsQyxRQUNBLG9CQUNBO1FBSFUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDbEMsV0FBTSxHQUFOLE1BQU07UUFDTix1QkFBa0IsR0FBbEIsa0JBQWtCO1FBQ2xCLHdCQUFtQixHQUFuQixtQkFBbUI7K0JBbkJtQixJQUFJLFlBQVksRUFBRTt5QkFHdEQsS0FBSzswQkFDSixNQUFNOzRCQUNKLElBQUk7c0JBQ0YsSUFBSTt5Q0FDZ0IsS0FBSztvQ0FHVixLQUFLO3FDQUNKLEtBQUs7NkJBQ2IsS0FBSzs4QkFDSixLQUFLOzJDQUNRLEtBQUs7S0FLVzs7OztJQUV2RCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFD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b0IsSUFBSSxDQUFDLGFBQWEsMkRBQTJELElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDbkksSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDaEM7OztZQWpPRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0E2Rlg7Z0JBQ0MsTUFBTSxFQUFFLENBQUMsd2ZBQXdmLENBQUM7YUFDbmdCOzs7O1lBMUdRLFdBQVc7WUFFWixNQUFNO1lBRUwsa0JBQWtCO1lBQ2xCLG1CQUFtQjs7O2tCQXVHekIsS0FBSzs0QkFDTCxLQUFLO3NCQUNMLEtBQUs7OEJBQ0wsS0FBSzt3QkFDTCxLQUFLO21DQUNMLEtBQUs7OEJBQ0wsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSUZlZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSUZlZSc7XG5pbXBvcnQge1JvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFkZFJlbWlzc2lvblJlcXVlc3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0FkZFJlbWlzc2lvblJlcXVlc3QnO1xuaW1wb3J0IHsgUGF5bWVudFZpZXdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcGF5bWVudC12aWV3L3BheW1lbnQtdmlldy5zZXJ2aWNlJztcbmltcG9ydCB7IFBheW1lbnRMaWJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wYXltZW50LWxpYi5jb21wb25lbnQnO1xuXG5jb25zdCBCU19FTkFCTEVfRkxBRyA9ICdidWxrLXNjYW4tZW5hYmxpbmctZmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY3BheS1hZGQtcmVtaXNzaW9uJyxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwiYWRkLXJlbWlzc2lvblwiPlxuICAgIDxkaXYgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlcnJvci1zdW1tYXJ5XCIgcm9sZT1cImdyb3VwXCIgYXJpYS1sYWJlbGxlZGJ5PVwiZmFpbHVyZS1lcnJvci1zdW1tYXJ5LWhlYWRpbmdcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImhlYWRpbmctbWVkaXVtIGVycm9yLXN1bW1hcnktaGVhZGluZ1wiIGlkPVwiZmFpbHVyZS1lcnJvci1zdW1tYXJ5LWhlYWRpbmdcIj5cbiAgICAgICAgICBFcnJvciBpbiBwcm9jZXNzaW5nIHRoZSByZXF1ZXN0XG4gICAgICAgIDwvaDI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5X19ib2R5XCI+XG4gICAgICAgICAge3sgZXJyb3JNZXNzYWdlIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2aWV3U3RhdHVzID09PSAnbWFpbidcIj5cbiAgICAgIDxpbnB1dCAjbXlJbnB1dCB0eXBlPSdoaWRkZW4nIGlkPSdpRnJhbWVEcml2ZW5JbWFnZVZhbHVlJyB2YWx1ZT0nQUREUkVNSVNTSU9OJz5cbiAgICAgIDxoMSBjbGFzcz1cImhlYWRpbmctbGFyZ2VcIj5BZGQgcmVtaXNzaW9uPC9oMT5cbiAgICAgIDxmb3JtIG5vdmFsaWRhdGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCI+XG4gICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJyZW1pc3Npb25Gb3JtXCIgbm92YWxpZGF0ZT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWxhYmVsLS1zXCIgZm9yPVwicmVtaXNzaW9uLWNvZGVcIj5cbiAgICAgICAgICAgICAgICAgIEFkZCByZW1pc3Npb24gdG8ge3sgZmVlLmNvZGUgfX06e3sgZmVlLmRlc2NyaXB0aW9uIH19XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWhpbnRcIj5FbnRlciByZW1pc3Npb24gZm9yIHJlZmVyZW5jZS4gRm9yIGV4YW1wbGU6IEhXRi1BMUItMjNDPC9zcGFuPlxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8aW5wdXQgW25nQ2xhc3NdPVwieydpbmxpbmUtZXJyb3ItY2xhc3MnOiBpc1JlbWlzc2lvbkNvZGVFbXB0eSB8fCByZW1pc3Npb25Db2RlSGFzRXJyb3J9XCIgY2xhc3M9XCJnb3Z1ay1pbnB1dCBnb3Z1ay1pbnB1dC0td2lkdGgtMjAgZ292dWstIS1tYXJnaW4tcmlnaHQtMVwiIGlkPVwicmVtaXNzaW9uQ29kZVwiIGFyaWEtbGFiZWw9XCJyZW1pc3Npb25Db2RlXCIgIG5hbWU9XCJyZW1pc3Npb25Db2RlXCIgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJyZW1pc3Npb25Db2RlXCI+XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwiaW5saW5lLWVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImlzUmVtaXNzaW9uQ29kZUVtcHR5IHx8IHJlbWlzc2lvbkNvZGVIYXNFcnJvclwiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXNSZW1pc3Npb25Db2RlRW1wdHlcIj5FbnRlciBhIHJlbWlzc2lvbiBjb2RlPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicmVtaXNzaW9uQ29kZUhhc0Vycm9yXCI+RW50ZXIgYSB2YWlsZCByZW1pc3Npb24gY29kZTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1sYWJlbC0tc1wiIGZvcj1cImFtb3VudFwiPlxuICAgICAgICAgICAgICAgIEhvdyBtdWNoIGRvZXMgdGhlIGFwcGxpY2FudCBuZWVkIHRvIHBheT9cbiAgICAgICAgICAgICAgPC9sYWJlbD5cblxuICAgICAgICAgICAgICA8ZGl2IGlkPVwiYW1vdW50LWN1cnJlbmN5XCIgY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5pbiBwb3VuZHM8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaG1jdHMtY3VycmVuY3ktaW5wdXRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaG1jdHMtY3VycmVuY3ktaW5wdXRfX3N5bWJvbFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPsKjPC9kaXY+XG4gICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstaW5wdXQgZ292dWstaW5wdXQtLXdpZHRoLTEwXCIgW25nQ2xhc3NdPVwieydpbmxpbmUtZXJyb3ItY2xhc3MnOiBpc0Ftb3VudEVtcHR5IHx8IGFtb3VudEhhc0Vycm9yIHx8IGlzUmVtaXNzaW9uTGVzc1RoYW5GZWVFcnJvcn1cIiBpZD1cImFtb3VudFwiIGFyaWEtbGFiZWw9XCJhbW91bnRcIiAgbmFtZT1cImFtb3VudFwiIHR5cGU9XCJ0ZXh0XCIgYXJpYS1kZXNjcmliZWRieT1cImFtb3VudC1jdXJyZW5jeVwiIGZvcm1Db250cm9sTmFtZT1cImFtb3VudFwiPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiaW5saW5lLWVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImlzQW1vdW50RW1wdHkgfHwgYW1vdW50SGFzRXJyb3IgfHwgaXNSZW1pc3Npb25MZXNzVGhhbkZlZUVycm9yXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzQW1vdW50RW1wdHlcIj5FbnRlciBhIGFtb3VudDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYW1vdW50SGFzRXJyb3JcIj5FbnRlciBhIHZhaWxkIGFtb3VudDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXNSZW1pc3Npb25MZXNzVGhhbkZlZUVycm9yXCI+VGhlIHJlbWlzc2lvbiBhbW91bnQgbXVzdCBiZSBsZXNzIHRoYW4gdGhlIHRvdGFsIGZlZTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b25cIiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cImFkZFJlbWlzc2lvbigpXCI+XG4gICAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9mb3JtPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpZXdTdGF0dXMgPT09ICdjb25maXJtYXRpb24nXCI+XG4gICAgICA8aW5wdXQgI215SW5wdXQgdHlwZT0naGlkZGVuJyBpZD0naUZyYW1lRHJpdmVuSW1hZ2VWYWx1ZScgdmFsdWU9J0FERFJFTUlTU0lPTkNPTkZJUk1BVElPTic+IFxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9faWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiE8L3NwYW4+XG4gICAgICAgIDxzdHJvbmcgY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX3RleHRcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9fYXNzaXN0aXZlXCI+V2FybmluZzwvc3Bhbj5cbiAgICAgICAgICBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gYWRkIHJlbWlzc2lvbiB0byB0aGlzIGZlZT9cbiAgICAgICAgPC9zdHJvbmc+XG4gICAgICA8L2Rpdj5cbiAgICAgIDx0YWJsZSBjbGFzcz1cImdvdnVrLXRhYmxlXCI+XG4gICAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsIGdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPlJlbWlzc2lvbiBjb2RlOjwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiPnt7IHJlbWlzc2lvbkZvcm0uY29udHJvbHMucmVtaXNzaW9uQ29kZS52YWx1ZSB9fTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsIGdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPkZlZSBjb2RlOjwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiPnt7IGZlZS5jb2RlIH19PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgZ292dWstIS1mb250LXdlaWdodC1ib2xkXCI+RmVlIGRlc2NyaXB0aW9uOjwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiPnt7IGZlZS5kZXNjcmlwdGlvbiB9fTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsIGdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPkFtb3VudCB0aGUgYXBwbGljYW50IG11c3QgcGF5OjwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiPnt7ICByZW1pc3Npb25Gb3JtLmNvbnRyb2xzLmFtb3VudC52YWx1ZSAgfCBjdXJyZW5jeTonR0JQJzonc3ltYm9sLW5hcnJvdyc6JzEuMi0yJyB9fTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3RhYmxlPlxuXG4gICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ1dHRvbiBnb3Z1ay1idXR0b24tLXNlY29uZGFyeVwiIChjbGljayk9XCJjYW5jZWxSZW1pc3Npb24uZW1pdCgpXCI+XG4gICAgICAgIENhbmNlbFxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgW2Rpc2FibGVkXT1cImlzQ29uZmlybWF0aW9uQnRuRGlzYWJsZWRcIlxuICAgICAgW25nQ2xhc3NdPSdpc0NvbmZpcm1hdGlvbkJ0bkRpc2FibGVkID8gXCJidXR0b24gYnV0dG9uLS1kaXNhYmxlZCBnb3Z1ay0hLW1hcmdpbi1yaWdodC0xXCIgOiBcImJ1dHRvbiBnb3Z1ay0hLW1hcmdpbi1yaWdodC0xXCInXG4gICAgICAoY2xpY2spPVwiY29uZmlybVJlbWlzc2lvbigpXCI+XG4gICAgICAgIENvbmZpcm1cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgPC9uZy1jb250YWluZXI+XG5cbjwvZGl2PlxuXG5gLFxuICBzdHlsZXM6IFtgLmFkZC1yZW1pc3Npb24gLmJ1dHRvbnttYXJnaW46MjBweCAycHh9LmFkZC1yZW1pc3Npb24gdGQuZ292dWstdGFibGVfX2NlbGx7d2lkdGg6NTAlfS5hZGQtcmVtaXNzaW9uIC5nb3Z1ay1idXR0b24tLXNlY29uZGFyeXtiYWNrZ3JvdW5kLWNvbG9yOiNkZWUwZTI7Ym94LXNoYWRvdzowIDJweCAwICM4NTg2ODg7Y29sb3I6IzBiMGMwYzttYXJnaW4tcmlnaHQ6LjVlbX0uYWRkLXJlbWlzc2lvbiAuZ292dWstbGFiZWwtLXMsLmFkZC1yZW1pc3Npb24gLmdvdnVrLXdhcm5pbmctdGV4dF9fdGV4dCwuYWRkLXJlbWlzc2lvbiAuaG1jdHMtY3VycmVuY3ktaW5wdXRfX3N5bWJvbHtmb250LXNpemU6MTlweH0uYWRkLXJlbWlzc2lvbiAuaW5saW5lLWVycm9yLWNsYXNze291dGxpbmU6I2E3MTQxNCBzb2xpZCAzcHg7b3V0bGluZS1vZmZzZXQ6MH0uYWRkLXJlbWlzc2lvbiAuaW5saW5lLWVycm9yLW1lc3NhZ2V7Y29sb3I6I2E3MTQxNDtmb250LXdlaWdodDo3MDA7bWFyZ2luLXRvcDoxMHB4fWBdXG59KVxuZXhwb3J0IGNsYXNzIEFkZFJlbWlzc2lvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGZlZTogSUZlZTtcbiAgQElucHV0KCkgY2NkQ2FzZU51bWJlcjogc3RyaW5nO1xuICBASW5wdXQoKSBzZXJ2aWNlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBheW1lbnRHcm91cFJlZjogc3RyaW5nO1xuICBASW5wdXQoKSBpc1R1cm5PZmY6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGlzU3RyYXRlZ2ljRml4RW5hYmxlOiBib29sZWFuO1xuICBAT3V0cHV0KCkgY2FuY2VsUmVtaXNzaW9uOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcmVtaXNzaW9uRm9ybTogRm9ybUdyb3VwO1xuICBoYXNFcnJvcnMgPSBmYWxzZTtcbiAgdmlld1N0YXR1cyA9ICdtYWluJztcbiAgZXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgb3B0aW9uOiBzdHJpbmcgPSBudWxsO1xuICBpc0NvbmZpcm1hdGlvbkJ0bkRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGJzUGF5bWVudERjbk51bWJlcjogc3RyaW5nO1xuXG4gIGlzUmVtaXNzaW9uQ29kZUVtcHR5OiBib29sZWFuID0gZmFsc2U7XG4gIHJlbWlzc2lvbkNvZGVIYXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0Ftb3VudEVtcHR5OiBib29sZWFuID0gZmFsc2U7XG4gIGFtb3VudEhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUmVtaXNzaW9uTGVzc1RoYW5GZWVFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBwYXltZW50Vmlld1NlcnZpY2U6IFBheW1lbnRWaWV3U2VydmljZSxcbiAgICBwcml2YXRlIHBheW1lbnRMaWJDb21wb25lbnQ6IFBheW1lbnRMaWJDb21wb25lbnQpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMub3B0aW9uID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlNFTEVDVEVEX09QVElPTjtcbiAgICB0aGlzLmJzUGF5bWVudERjbk51bWJlciA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5ic3BheW1lbnRkY247XG4gICAgdGhpcy5yZW1pc3Npb25Gb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICByZW1pc3Npb25Db2RlOiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybignXihbYS16QS1aMC05XXszfSktKFthLXpBLVowLTldezN9KS0oW2EtekEtWjAtOV17M30pJCcpXG4gICAgICBdKSksXG4gICAgICBhbW91bnQ6IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKCdeWzAtOV0rKFxcXFwuWzAtOV17Mn0pPyQnKVxuICAgICAgXSkpXG4gICAgfSk7XG4gICAgdGhpcy52aWV3U3RhdHVzID0gJ21haW4nO1xuICB9XG5cbiAgYWRkUmVtaXNzaW9uKCkge1xuICAgIHRoaXMucmVzZXRSZW1pc3Npb25Gb3JtKFtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2VdLCAnQWxsJyk7XG4gICAgY29uc3QgcmVtaXNzaW9uY3RybHM9dGhpcy5yZW1pc3Npb25Gb3JtLmNvbnRyb2xzLFxuICAgICAgaXNSZW1pc3Npb25MZXNzVGhhbkZlZSA9IHRoaXMuZmVlLmNhbGN1bGF0ZWRfYW1vdW50ID4gcmVtaXNzaW9uY3RybHMuYW1vdW50LnZhbHVlOyBcbiAgICBpZiAodGhpcy5yZW1pc3Npb25Gb3JtLmRpcnR5ICYmIHRoaXMucmVtaXNzaW9uRm9ybS52YWxpZCAmJiBpc1JlbWlzc2lvbkxlc3NUaGFuRmVlKSB7XG4gICAgICB0aGlzLnZpZXdTdGF0dXMgPSAnY29uZmlybWF0aW9uJztcbiAgICB9ZWxzZSB7XG5cbiAgICAgIGlmKHJlbWlzc2lvbmN0cmxzWydyZW1pc3Npb25Db2RlJ10udmFsdWUgPT0gJycgKSB7XG4gICAgICAgIHRoaXMucmVzZXRSZW1pc3Npb25Gb3JtKFt0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sICdyZW1pc3Npb25Db2RlJyk7XG4gICAgICB9XG4gICAgICBpZihyZW1pc3Npb25jdHJsc1sncmVtaXNzaW9uQ29kZSddLnZhbHVlICE9ICcnICYmIHJlbWlzc2lvbmN0cmxzWydyZW1pc3Npb25Db2RlJ10uaW52YWxpZCApIHtcbiAgICAgICAgdGhpcy5yZXNldFJlbWlzc2lvbkZvcm0oW2ZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXSwgJ3JlbWlzc2lvbkNvZGUnKTtcbiAgICAgIH1cbiAgICAgIGlmKHJlbWlzc2lvbmN0cmxzWydhbW91bnQnXS52YWx1ZSA9PSAnJyApIHtcbiAgICAgICAgdGhpcy5yZXNldFJlbWlzc2lvbkZvcm0oW2ZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlXSwgJ2Ftb3VudCcpO1xuICAgICAgfVxuICAgICAgaWYocmVtaXNzaW9uY3RybHNbJ2Ftb3VudCddLnZhbHVlICE9ICcnICYmIHJlbWlzc2lvbmN0cmxzWydhbW91bnQnXS5pbnZhbGlkICkge1xuICAgICAgICB0aGlzLnJlc2V0UmVtaXNzaW9uRm9ybShbZmFsc2UsIHRydWUsIGZhbHNlLCB0cnVlLCBmYWxzZV0sICdhbW91bnQnKTtcbiAgICAgIH1cbiAgICAgIGlmKHJlbWlzc2lvbmN0cmxzLmFtb3VudC52YWxpZCAmJiAhaXNSZW1pc3Npb25MZXNzVGhhbkZlZSl7XG4gICAgICAgIHRoaXMucmVzZXRSZW1pc3Npb25Gb3JtKFtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZV0sICdhbW91bnQnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXNldFJlbWlzc2lvbkZvcm0odmFsLCBmaWVsZCl7XG4gICAgaWYoZmllbGQ9PT0ncmVtaXNzaW9uQ29kZScgfHwgZmllbGQ9PT0nQWxsJykge1xuICAgICAgdGhpcy5pc1JlbWlzc2lvbkNvZGVFbXB0eSA9IHZhbFswXTtcbiAgICAgIHRoaXMucmVtaXNzaW9uQ29kZUhhc0Vycm9yID0gdmFsWzFdO1xuICAgIH0gZWxzZSBpZiAoZmllbGQ9PT0nYW1vdW50JyB8fCBmaWVsZD09PSdBbGwnKXtcbiAgICAgIHRoaXMuaXNBbW91bnRFbXB0eSA9IHZhbFsyXTtcbiAgICAgIHRoaXMuYW1vdW50SGFzRXJyb3IgPSB2YWxbM107XG4gICAgICB0aGlzLmlzUmVtaXNzaW9uTGVzc1RoYW5GZWVFcnJvciA9IHZhbFs0XTtcbiAgICB9XG4gIH1cblxuICBjb25maXJtUmVtaXNzaW9uKCkge1xuICAgIHRoaXMuaXNDb25maXJtYXRpb25CdG5EaXNhYmxlZCA9IHRydWU7XG4gICAgY29uc3QgbmV3TmV0QW1vdW50ID0gdGhpcy5yZW1pc3Npb25Gb3JtLmNvbnRyb2xzLmFtb3VudC52YWx1ZSxcbiAgICAgcmVtaXNzaW9uQW1vdW50ID0gdGhpcy5mZWUubmV0X2Ftb3VudCAtIG5ld05ldEFtb3VudCxcbiAgICAgcmVxdWVzdEJvZHkgPSBuZXcgQWRkUmVtaXNzaW9uUmVxdWVzdFxuICAgICh0aGlzLmNjZENhc2VOdW1iZXIsIHRoaXMuZmVlLCByZW1pc3Npb25BbW91bnQsIHRoaXMucmVtaXNzaW9uRm9ybS5jb250cm9scy5yZW1pc3Npb25Db2RlLnZhbHVlLCB0aGlzLnNlcnZpY2UpO1xuICAgIHRoaXMucGF5bWVudFZpZXdTZXJ2aWNlLnBvc3RQYXltZW50R3JvdXBXaXRoUmVtaXNzaW9ucyhkZWNvZGVVUklDb21wb25lbnQodGhpcy5wYXltZW50R3JvdXBSZWYpLnRyaW0oKSwgdGhpcy5mZWUuaWQsIHJlcXVlc3RCb2R5KS5zdWJzY3JpYmUoXG4gICAgICByZXNwb25zZSA9PiB7XG4gICAgICAgIGlmIChKU09OLnBhcnNlKHJlc3BvbnNlKS5zdWNjZXNzKSB7XG4gICAgICAgICAgY29uc3QgTERVcmwgPSB0aGlzLmlzVHVybk9mZiA/ICcmaXNUdXJuT2ZmPUVuYWJsZScgOiAnJmlzVHVybk9mZj1EaXNhYmxlJ1xuICAgICAgICAgIGlmICh0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuYnNwYXltZW50ZGNuKSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5yb3V0ZVJldXNlU3RyYXRlZ3kuc2hvdWxkUmV1c2VSb3V0ZSA9ICgpID0+IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXIub25TYW1lVXJsTmF2aWdhdGlvbiA9ICdyZWxvYWQnO1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChgL3BheW1lbnQtaGlzdG9yeS8ke3RoaXMuY2NkQ2FzZU51bWJlcn0/dmlldz1mZWUtc3VtbWFyeSZzZWxlY3RlZE9wdGlvbj0ke3RoaXMub3B0aW9ufSZwYXltZW50R3JvdXBSZWY9JHt0aGlzLnBheW1lbnRHcm91cFJlZn0mZGNuPSR7dGhpcy5wYXltZW50TGliQ29tcG9uZW50LmJzcGF5bWVudGRjbn0ke0xEVXJsfWApO1xuICAgICAgICAgIH1lbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZ290b0Nhc2V0cmFuc2F0aW9uUGFnZSgpO1xuICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnJvcjtcbiAgICAgICAgdGhpcy5pc0NvbmZpcm1hdGlvbkJ0bkRpc2FibGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuICBnb3RvQ2FzZXRyYW5zYXRpb25QYWdlKCkge1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdjYXNlLXRyYW5zYWN0aW9ucyc7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlRBS0VQQVlNRU5UID0gdHJ1ZTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNUVVJOT0ZGID0gdGhpcy5pc1R1cm5PZmY7XG4gICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZ2V0QlNmZWF0dXJlKCkuc3Vic2NyaWJlKFxuICAgICAgZmVhdHVyZXMgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0ID0gSlNPTi5wYXJzZShmZWF0dXJlcykuZmlsdGVyKGZlYXR1cmUgPT4gZmVhdHVyZS51aWQgPT09IEJTX0VOQUJMRV9GTEFHKTtcbiAgICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPSByZXN1bHRbMF0gPyByZXN1bHRbMF0uZW5hYmxlIDogZmFsc2U7XG4gICAgICB9LFxuICAgICAgZXJyID0+IHtcbiAgICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgbGV0IHBhcnRVcmwgPSB0aGlzLmJzUGF5bWVudERjbk51bWJlciA/IGAmZGNuPSR7dGhpcy5ic1BheW1lbnREY25OdW1iZXJ9YCA6ICcnO1xuICAgIHBhcnRVcmwgKz0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPyAnJmlzQnVsa1NjYW5uaW5nPUVuYWJsZScgOiAnJmlzQnVsa1NjYW5uaW5nPURpc2FibGUnO1xuICAgIHBhcnRVcmwgKz0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTVFVSTk9GRiA/ICcmaXNUdXJuT2ZmPUVuYWJsZScgOiAnJmlzVHVybk9mZj1EaXNhYmxlJztcbiAgICBwYXJ0VXJsICs9IHRoaXMuaXNTdHJhdGVnaWNGaXhFbmFibGUgPyAnJmlzU3RGaXhFbmFibGU9RW5hYmxlJyA6ICcmaXNTdEZpeEVuYWJsZT1EaXNhYmxlJztcbiAgICBsZXQgdXJsID0gYC9wYXltZW50LWhpc3RvcnkvJHt0aGlzLmNjZENhc2VOdW1iZXJ9P3ZpZXc9Y2FzZS10cmFuc2FjdGlvbnMmdGFrZVBheW1lbnQ9dHJ1ZSZzZWxlY3RlZE9wdGlvbj0ke3RoaXMub3B0aW9ufSR7cGFydFVybH1gO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodXJsKTtcbiAgfVxufVxuIl19
|
|
333
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXJlbWlzc2lvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvY2NwYXktd2ViLWNvbXBvbmVudC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2FkZC1yZW1pc3Npb24vYWRkLXJlbWlzc2lvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakYsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUVsRSxNQUFNLGNBQWMsR0FBRyx1QkFBdUIsQ0FBQztBQW9HL0MsTUFBTTs7Ozs7OztJQXlCSixZQUFvQixXQUF3QixFQUNsQyxRQUNBLG9CQUNBO1FBSFUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDbEMsV0FBTSxHQUFOLE1BQU07UUFDTix1QkFBa0IsR0FBbEIsa0JBQWtCO1FBQ2xCLHdCQUFtQixHQUFuQixtQkFBbUI7K0JBbkJtQixJQUFJLFlBQVksRUFBRTt5QkFHdEQsS0FBSzswQkFDSixNQUFNOzRCQUNKLElBQUk7c0JBQ0YsSUFBSTt5Q0FDZ0IsS0FBSztvQ0FHVixLQUFLO3FDQUNKLEtBQUs7NkJBQ2IsS0FBSzs4QkFDSixLQUFLOzJDQUNRLEtBQUs7S0FLVzs7OztJQUV2RCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFD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QWtCO1lBQ2xCLG1CQUFtQjs7O2tCQXVHekIsS0FBSzs0QkFDTCxLQUFLO3VCQUNMLEtBQUs7OEJBQ0wsS0FBSzt3QkFDTCxLQUFLOzZCQUNMLEtBQUs7NkJBQ0wsS0FBSzttQ0FDTCxLQUFLOzhCQUNMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElGZWUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lGZWUnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBZGRSZW1pc3Npb25SZXF1ZXN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9BZGRSZW1pc3Npb25SZXF1ZXN0JztcbmltcG9ydCB7IFBheW1lbnRWaWV3U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BheW1lbnQtdmlldy9wYXltZW50LXZpZXcuc2VydmljZSc7XG5pbXBvcnQgeyBQYXltZW50TGliQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGF5bWVudC1saWIuY29tcG9uZW50JztcblxuY29uc3QgQlNfRU5BQkxFX0ZMQUcgPSAnYnVsay1zY2FuLWVuYWJsaW5nLWZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NwYXktYWRkLXJlbWlzc2lvbicsXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cImFkZC1yZW1pc3Npb25cIj5cbiAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZXJyb3Itc3VtbWFyeVwiIHJvbGU9XCJncm91cFwiIGFyaWEtbGFiZWxsZWRieT1cImZhaWx1cmUtZXJyb3Itc3VtbWFyeS1oZWFkaW5nXCIgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJoZWFkaW5nLW1lZGl1bSBlcnJvci1zdW1tYXJ5LWhlYWRpbmdcIiBpZD1cImZhaWx1cmUtZXJyb3Itc3VtbWFyeS1oZWFkaW5nXCI+XG4gICAgICAgICAgRXJyb3IgaW4gcHJvY2Vzc2luZyB0aGUgcmVxdWVzdFxuICAgICAgICA8L2gyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZXJyb3Itc3VtbWFyeV9fYm9keVwiPlxuICAgICAgICAgIHt7IGVycm9yTWVzc2FnZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidmlld1N0YXR1cyA9PT0gJ21haW4nXCI+XG4gICAgICA8aW5wdXQgI215SW5wdXQgdHlwZT0naGlkZGVuJyBpZD0naUZyYW1lRHJpdmVuSW1hZ2VWYWx1ZScgdmFsdWU9J0FERFJFTUlTU0lPTic+XG4gICAgICA8aDEgY2xhc3M9XCJoZWFkaW5nLWxhcmdlXCI+QWRkIHJlbWlzc2lvbjwvaDE+XG4gICAgICA8Zm9ybSBub3ZhbGlkYXRlPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiPlxuICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwicmVtaXNzaW9uRm9ybVwiIG5vdmFsaWRhdGU+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1sYWJlbC0tc1wiIGZvcj1cInJlbWlzc2lvbi1jb2RlXCI+XG4gICAgICAgICAgICAgICAgICBBZGQgcmVtaXNzaW9uIHRvIHt7IGZlZS5jb2RlIH19Ont7IGZlZS5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1oaW50XCI+RW50ZXIgcmVtaXNzaW9uIGZvciByZWZlcmVuY2UuIEZvciBleGFtcGxlOiBIV0YtQTFCLTIzQzwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPGlucHV0IFtuZ0NsYXNzXT1cInsnaW5saW5lLWVycm9yLWNsYXNzJzogaXNSZW1pc3Npb25Db2RlRW1wdHkgfHwgcmVtaXNzaW9uQ29kZUhhc0Vycm9yfVwiIGNsYXNzPVwiZ292dWstaW5wdXQgZ292dWstaW5wdXQtLXdpZHRoLTIwIGdvdnVrLSEtbWFyZ2luLXJpZ2h0LTFcIiBpZD1cInJlbWlzc2lvbkNvZGVcIiBhcmlhLWxhYmVsPVwicmVtaXNzaW9uQ29kZVwiICBuYW1lPVwicmVtaXNzaW9uQ29kZVwiIHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwicmVtaXNzaW9uQ29kZVwiPlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cImlubGluZS1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJpc1JlbWlzc2lvbkNvZGVFbXB0eSB8fCByZW1pc3Npb25Db2RlSGFzRXJyb3JcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzUmVtaXNzaW9uQ29kZUVtcHR5XCI+RW50ZXIgYSByZW1pc3Npb24gY29kZTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInJlbWlzc2lvbkNvZGVIYXNFcnJvclwiPkVudGVyIGEgdmFpbGQgcmVtaXNzaW9uIGNvZGU8L3NwYW4+XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstbGFiZWwtLXNcIiBmb3I9XCJhbW91bnRcIj5cbiAgICAgICAgICAgICAgICBIb3cgbXVjaCBkb2VzIHRoZSBhcHBsaWNhbnQgbmVlZCB0byBwYXk/XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgICAgICAgPGRpdiBpZD1cImFtb3VudC1jdXJyZW5jeVwiIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+aW4gcG91bmRzPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhtY3RzLWN1cnJlbmN5LWlucHV0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhtY3RzLWN1cnJlbmN5LWlucHV0X19zeW1ib2xcIiBhcmlhLWhpZGRlbj1cInRydWVcIj7CozwvZGl2PlxuICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLWlucHV0IGdvdnVrLWlucHV0LS13aWR0aC0xMFwiIFtuZ0NsYXNzXT1cInsnaW5saW5lLWVycm9yLWNsYXNzJzogaXNBbW91bnRFbXB0eSB8fCBhbW91bnRIYXNFcnJvciB8fCBpc1JlbWlzc2lvbkxlc3NUaGFuRmVlRXJyb3J9XCIgaWQ9XCJhbW91bnRcIiBhcmlhLWxhYmVsPVwiYW1vdW50XCIgIG5hbWU9XCJhbW91bnRcIiB0eXBlPVwidGV4dFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJhbW91bnQtY3VycmVuY3lcIiBmb3JtQ29udHJvbE5hbWU9XCJhbW91bnRcIj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImlubGluZS1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJpc0Ftb3VudEVtcHR5IHx8IGFtb3VudEhhc0Vycm9yIHx8IGlzUmVtaXNzaW9uTGVzc1RoYW5GZWVFcnJvclwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpc0Ftb3VudEVtcHR5XCI+RW50ZXIgYSBhbW91bnQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImFtb3VudEhhc0Vycm9yXCI+RW50ZXIgYSB2YWlsZCBhbW91bnQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzUmVtaXNzaW9uTGVzc1RoYW5GZWVFcnJvclwiPlRoZSByZW1pc3Npb24gYW1vdW50IG11c3QgYmUgbGVzcyB0aGFuIHRoZSB0b3RhbCBmZWU8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uXCIgdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJhZGRSZW1pc3Npb24oKVwiPlxuICAgICAgICAgICAgICBTdWJtaXRcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZm9ybT5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2aWV3U3RhdHVzID09PSAnY29uZmlybWF0aW9uJ1wiPlxuICAgICAgPGlucHV0ICNteUlucHV0IHR5cGU9J2hpZGRlbicgaWQ9J2lGcmFtZURyaXZlbkltYWdlVmFsdWUnIHZhbHVlPSdBRERSRU1JU1NJT05DT05GSVJNQVRJT04nPiBcbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj4hPC9zcGFuPlxuICAgICAgICA8c3Ryb25nIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X190ZXh0XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX2Fzc2lzdGl2ZVwiPldhcm5pbmc8L3NwYW4+XG4gICAgICAgICAgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGFkZCByZW1pc3Npb24gdG8gdGhpcyBmZWU/XG4gICAgICAgIDwvc3Ryb25nPlxuICAgICAgPC9kaXY+XG4gICAgICA8dGFibGUgY2xhc3M9XCJnb3Z1ay10YWJsZVwiPlxuICAgICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCI+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbCBnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIj5SZW1pc3Npb24gY29kZTo8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIj57eyByZW1pc3Npb25Gb3JtLmNvbnRyb2xzLnJlbWlzc2lvbkNvZGUudmFsdWUgfX08L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCI+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbCBnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIj5GZWUgY29kZTo8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIj57eyBmZWUuY29kZSB9fTwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsIGdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPkZlZSBkZXNjcmlwdGlvbjo8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIj57eyBmZWUuZGVzY3JpcHRpb24gfX08L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCI+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbCBnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIj5BbW91bnQgdGhlIGFwcGxpY2FudCBtdXN0IHBheTo8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIj57eyAgcmVtaXNzaW9uRm9ybS5jb250cm9scy5hbW91bnQudmFsdWUgIHwgY3VycmVuY3k6J0dCUCc6J3N5bWJvbC1uYXJyb3cnOicxLjItMicgfX08L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC90YWJsZT5cblxuICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidXR0b24gZ292dWstYnV0dG9uLS1zZWNvbmRhcnlcIiAoY2xpY2spPVwiY2FuY2VsUmVtaXNzaW9uLmVtaXQoKVwiPlxuICAgICAgICBDYW5jZWxcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCJcbiAgICAgIFtkaXNhYmxlZF09XCJpc0NvbmZpcm1hdGlvbkJ0bkRpc2FibGVkXCJcbiAgICAgIFtuZ0NsYXNzXT0naXNDb25maXJtYXRpb25CdG5EaXNhYmxlZCA/IFwiYnV0dG9uIGJ1dHRvbi0tZGlzYWJsZWQgZ292dWstIS1tYXJnaW4tcmlnaHQtMVwiIDogXCJidXR0b24gZ292dWstIS1tYXJnaW4tcmlnaHQtMVwiJ1xuICAgICAgKGNsaWNrKT1cImNvbmZpcm1SZW1pc3Npb24oKVwiPlxuICAgICAgICBDb25maXJtXG4gICAgICA8L2J1dHRvbj5cblxuICAgIDwvbmctY29udGFpbmVyPlxuXG48L2Rpdj5cblxuYCxcbiAgc3R5bGVzOiBbYC5hZGQtcmVtaXNzaW9uIC5idXR0b257bWFyZ2luOjIwcHggMnB4fS5hZGQtcmVtaXNzaW9uIHRkLmdvdnVrLXRhYmxlX19jZWxse3dpZHRoOjUwJX0uYWRkLXJlbWlzc2lvbiAuZ292dWstYnV0dG9uLS1zZWNvbmRhcnl7YmFja2dyb3VuZC1jb2xvcjojZGVlMGUyO2JveC1zaGFkb3c6MCAycHggMCAjODU4Njg4O2NvbG9yOiMwYjBjMGM7bWFyZ2luLXJpZ2h0Oi41ZW19LmFkZC1yZW1pc3Npb24gLmdvdnVrLWxhYmVsLS1zLC5hZGQtcmVtaXNzaW9uIC5nb3Z1ay13YXJuaW5nLXRleHRfX3RleHQsLmFkZC1yZW1pc3Npb24gLmhtY3RzLWN1cnJlbmN5LWlucHV0X19zeW1ib2x7Zm9udC1zaXplOjE5cHh9LmFkZC1yZW1pc3Npb24gLmlubGluZS1lcnJvci1jbGFzc3tvdXRsaW5lOiNhNzE0MTQgc29saWQgM3B4O291dGxpbmUtb2Zmc2V0OjB9LmFkZC1yZW1pc3Npb24gLmlubGluZS1lcnJvci1tZXNzYWdle2NvbG9yOiNhNzE0MTQ7Zm9udC13ZWlnaHQ6NzAwO21hcmdpbi10b3A6MTBweH1gXVxufSlcbmV4cG9ydCBjbGFzcyBBZGRSZW1pc3Npb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBmZWU6IElGZWU7XG4gIEBJbnB1dCgpIGNjZENhc2VOdW1iZXI6IHN0cmluZztcbiAgQElucHV0KCkgY2FzZVR5cGU6IHN0cmluZztcbiAgQElucHV0KCkgcGF5bWVudEdyb3VwUmVmOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlzVHVybk9mZjogYm9vbGVhbjtcbiAgQElucHV0KCkgaXNPbGRQY2lwYWxPZmY6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGlzTmV3UGNpcGFsT2ZmOiBib29sZWFuO1xuICBASW5wdXQoKSBpc1N0cmF0ZWdpY0ZpeEVuYWJsZTogYm9vbGVhbjtcbiAgQE91dHB1dCgpIGNhbmNlbFJlbWlzc2lvbjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHJlbWlzc2lvbkZvcm06IEZvcm1Hcm91cDtcbiAgaGFzRXJyb3JzID0gZmFsc2U7XG4gIHZpZXdTdGF0dXMgPSAnbWFpbic7XG4gIGVycm9yTWVzc2FnZSA9IG51bGw7XG4gIG9wdGlvbjogc3RyaW5nID0gbnVsbDtcbiAgaXNDb25maXJtYXRpb25CdG5EaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBic1BheW1lbnREY25OdW1iZXI6IHN0cmluZztcblxuICBpc1JlbWlzc2lvbkNvZGVFbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuICByZW1pc3Npb25Db2RlSGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNBbW91bnRFbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuICBhbW91bnRIYXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1JlbWlzc2lvbkxlc3NUaGFuRmVlRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcGF5bWVudFZpZXdTZXJ2aWNlOiBQYXltZW50Vmlld1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYXltZW50TGliQ29tcG9uZW50OiBQYXltZW50TGliQ29tcG9uZW50KSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm9wdGlvbiA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5TRUxFQ1RFRF9PUFRJT047XG4gICAgdGhpcy5ic1BheW1lbnREY25OdW1iZXIgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuYnNwYXltZW50ZGNuO1xuICAgIHRoaXMucmVtaXNzaW9uRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgcmVtaXNzaW9uQ29kZTogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oJ14oW2EtekEtWjAtOV17M30pLShbYS16QS1aMC05XXszfSktKFthLXpBLVowLTldezN9KSQnKVxuICAgICAgXSkpLFxuICAgICAgYW1vdW50OiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybignXlswLTldKyhcXFxcLlswLTldezJ9KT8kJylcbiAgICAgIF0pKVxuICAgIH0pO1xuICAgIHRoaXMudmlld1N0YXR1cyA9ICdtYWluJztcbiAgfVxuXG4gIGFkZFJlbWlzc2lvbigpIHtcbiAgICB0aGlzLnJlc2V0UmVtaXNzaW9uRm9ybShbZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXSwgJ0FsbCcpO1xuICAgIGNvbnN0IHJlbWlzc2lvbmN0cmxzPXRoaXMucmVtaXNzaW9uRm9ybS5jb250cm9scyxcbiAgICAgIGlzUmVtaXNzaW9uTGVzc1RoYW5GZWUgPSB0aGlzLmZlZS5jYWxjdWxhdGVkX2Ftb3VudCA+IHJlbWlzc2lvbmN0cmxzLmFtb3VudC52YWx1ZTsgXG4gICAgaWYgKHRoaXMucmVtaXNzaW9uRm9ybS5kaXJ0eSAmJiB0aGlzLnJlbWlzc2lvbkZvcm0udmFsaWQgJiYgaXNSZW1pc3Npb25MZXNzVGhhbkZlZSkge1xuICAgICAgdGhpcy52aWV3U3RhdHVzID0gJ2NvbmZpcm1hdGlvbic7XG4gICAgfWVsc2Uge1xuXG4gICAgICBpZihyZW1pc3Npb25jdHJsc1sncmVtaXNzaW9uQ29kZSddLnZhbHVlID09ICcnICkge1xuICAgICAgICB0aGlzLnJlc2V0UmVtaXNzaW9uRm9ybShbdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2VdLCAncmVtaXNzaW9uQ29kZScpO1xuICAgICAgfVxuICAgICAgaWYocmVtaXNzaW9uY3RybHNbJ3JlbWlzc2lvbkNvZGUnXS52YWx1ZSAhPSAnJyAmJiByZW1pc3Npb25jdHJsc1sncmVtaXNzaW9uQ29kZSddLmludmFsaWQgKSB7XG4gICAgICAgIHRoaXMucmVzZXRSZW1pc3Npb25Gb3JtKFtmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sICdyZW1pc3Npb25Db2RlJyk7XG4gICAgICB9XG4gICAgICBpZihyZW1pc3Npb25jdHJsc1snYW1vdW50J10udmFsdWUgPT0gJycgKSB7XG4gICAgICAgIHRoaXMucmVzZXRSZW1pc3Npb25Gb3JtKFtmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0sICdhbW91bnQnKTtcbiAgICAgIH1cbiAgICAgIGlmKHJlbWlzc2lvbmN0cmxzWydhbW91bnQnXS52YWx1ZSAhPSAnJyAmJiByZW1pc3Npb25jdHJsc1snYW1vdW50J10uaW52YWxpZCApIHtcbiAgICAgICAgdGhpcy5yZXNldFJlbWlzc2lvbkZvcm0oW2ZhbHNlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2VdLCAnYW1vdW50Jyk7XG4gICAgICB9XG4gICAgICBpZihyZW1pc3Npb25jdHJscy5hbW91bnQudmFsaWQgJiYgIWlzUmVtaXNzaW9uTGVzc1RoYW5GZWUpe1xuICAgICAgICB0aGlzLnJlc2V0UmVtaXNzaW9uRm9ybShbZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWVdLCAnYW1vdW50Jyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmVzZXRSZW1pc3Npb25Gb3JtKHZhbCwgZmllbGQpe1xuICAgIGlmKGZpZWxkPT09J3JlbWlzc2lvbkNvZGUnIHx8IGZpZWxkPT09J0FsbCcpIHtcbiAgICAgIHRoaXMuaXNSZW1pc3Npb25Db2RlRW1wdHkgPSB2YWxbMF07XG4gICAgICB0aGlzLnJlbWlzc2lvbkNvZGVIYXNFcnJvciA9IHZhbFsxXTtcbiAgICB9IGVsc2UgaWYgKGZpZWxkPT09J2Ftb3VudCcgfHwgZmllbGQ9PT0nQWxsJyl7XG4gICAgICB0aGlzLmlzQW1vdW50RW1wdHkgPSB2YWxbMl07XG4gICAgICB0aGlzLmFtb3VudEhhc0Vycm9yID0gdmFsWzNdO1xuICAgICAgdGhpcy5pc1JlbWlzc2lvbkxlc3NUaGFuRmVlRXJyb3IgPSB2YWxbNF07XG4gICAgfVxuICB9XG5cbiAgY29uZmlybVJlbWlzc2lvbigpIHtcbiAgICB0aGlzLmlzQ29uZmlybWF0aW9uQnRuRGlzYWJsZWQgPSB0cnVlO1xuICAgIGNvbnN0IG5ld05ldEFtb3VudCA9IHRoaXMucmVtaXNzaW9uRm9ybS5jb250cm9scy5hbW91bnQudmFsdWUsXG4gICAgIHJlbWlzc2lvbkFtb3VudCA9IHRoaXMuZmVlLm5ldF9hbW91bnQgLSBuZXdOZXRBbW91bnQsXG4gICAgIHJlcXVlc3RCb2R5ID0gbmV3IEFkZFJlbWlzc2lvblJlcXVlc3RcbiAgICAodGhpcy5jY2RDYXNlTnVtYmVyLCB0aGlzLmZlZSwgcmVtaXNzaW9uQW1vdW50LCB0aGlzLnJlbWlzc2lvbkZvcm0uY29udHJvbHMucmVtaXNzaW9uQ29kZS52YWx1ZSwgdGhpcy5jYXNlVHlwZSk7XG4gICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UucG9zdFBheW1lbnRHcm91cFdpdGhSZW1pc3Npb25zKGRlY29kZVVSSUNvbXBvbmVudCh0aGlzLnBheW1lbnRHcm91cFJlZikudHJpbSgpLCB0aGlzLmZlZS5pZCwgcmVxdWVzdEJvZHkpLnN1YnNjcmliZShcbiAgICAgIHJlc3BvbnNlID0+IHtcbiAgICAgICAgaWYgKEpTT04ucGFyc2UocmVzcG9uc2UpLnN1Y2Nlc3MpIHtcbiAgICAgICAgICBsZXQgTERVcmwgPSB0aGlzLmlzVHVybk9mZiA/ICcmaXNUdXJuT2ZmPUVuYWJsZScgOiAnJmlzVHVybk9mZj1EaXNhYmxlJ1xuICAgICAgICAgICAgTERVcmwgKz0gYCZjYXNlVHlwZT0ke3RoaXMuY2FzZVR5cGV9YFxuICAgICAgICAgICAgTERVcmwgKz0gdGhpcy5pc05ld1BjaXBhbE9mZiA/ICcmaXNOZXdQY2lwYWxPZmY9RW5hYmxlJyA6ICcmaXNOZXdQY2lwYWxPZmY9RGlzYWJsZSdcbiAgICAgICAgICAgIExEVXJsICs9IHRoaXMuaXNPbGRQY2lwYWxPZmYgPyAnJmlzT2xkUGNpcGFsT2ZmPUVuYWJsZScgOiAnJmlzT2xkUGNpcGFsT2ZmPURpc2FibGUnXG4gICAgICAgICAgaWYgKHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5ic3BheW1lbnRkY24pIHtcbiAgICAgICAgICAgIHRoaXMucm91dGVyLnJvdXRlUmV1c2VTdHJhdGVneS5zaG91bGRSZXVzZVJvdXRlID0gKCkgPT4gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5vblNhbWVVcmxOYXZpZ2F0aW9uID0gJ3JlbG9hZCc7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAvcGF5bWVudC1oaXN0b3J5LyR7dGhpcy5jY2RDYXNlTnVtYmVyfT92aWV3PWZlZS1zdW1tYXJ5JnNlbGVjdGVkT3B0aW9uPSR7dGhpcy5vcHRpb259JnBheW1lbnRHcm91cFJlZj0ke3RoaXMucGF5bWVudEdyb3VwUmVmfSZkY249JHt0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuYnNwYXltZW50ZGNufSR7TERVcmx9YCk7XG4gICAgICAgICAgfWVsc2Uge1xuICAgICAgICAgICAgdGhpcy5nb3RvQ2FzZXRyYW5zYXRpb25QYWdlKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVycm9yO1xuICAgICAgICB0aGlzLmlzQ29uZmlybWF0aW9uQnRuRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICApO1xuICB9XG4gIGdvdG9DYXNldHJhbnNhdGlvblBhZ2UoKSB7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ2Nhc2UtdHJhbnNhY3Rpb25zJztcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPSB0cnVlO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU1RVUk5PRkYgPSB0aGlzLmlzVHVybk9mZjtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNORVdQQ0lQQUxPRkYgPSB0aGlzLmlzTmV3UGNpcGFsT2ZmO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU09MRFBDSVBBTE9GRiA9IHRoaXMuaXNPbGRQY2lwYWxPZmY7XG5cbiAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5nZXRCU2ZlYXR1cmUoKS5zdWJzY3JpYmUoXG4gICAgICBmZWF0dXJlcyA9PiB7XG4gICAgICAgIGxldCByZXN1bHQgPSBKU09OLnBhcnNlKGZlYXR1cmVzKS5maWx0ZXIoZmVhdHVyZSA9PiBmZWF0dXJlLnVpZCA9PT0gQlNfRU5BQkxFX0ZMQUcpO1xuICAgICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNCU0VOQUJMRSA9IHJlc3VsdFswXSA/IHJlc3VsdFswXS5lbmFibGUgOiBmYWxzZTtcbiAgICAgIH0sXG4gICAgICBlcnIgPT4ge1xuICAgICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNCU0VOQUJMRSA9IGZhbHNlO1xuICAgICAgfVxuICAgICk7XG5cbiAgICBsZXQgcGFydFVybCA9IHRoaXMuYnNQYXltZW50RGNuTnVtYmVyID8gYCZkY249JHt0aGlzLmJzUGF5bWVudERjbk51bWJlcn1gIDogJyc7XG4gICAgIHBhcnRVcmwgKz0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPyAnJmlzQnVsa1NjYW5uaW5nPUVuYWJsZScgOiAnJmlzQnVsa1NjYW5uaW5nPURpc2FibGUnO1xuICAgICBwYXJ0VXJsICs9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU1RVUk5PRkYgPyAnJmlzVHVybk9mZj1FbmFibGUnIDogJyZpc1R1cm5PZmY9RGlzYWJsZSc7XG4gICAgIHBhcnRVcmwgKz0gdGhpcy5pc1N0cmF0ZWdpY0ZpeEVuYWJsZSA/ICcmaXNTdEZpeEVuYWJsZT1FbmFibGUnIDogJyZpc1N0Rml4RW5hYmxlPURpc2FibGUnO1xuICAgICBwYXJ0VXJsICs9IGAmY2FzZVR5cGU9JHt0aGlzLmNhc2VUeXBlfWA7XG4gICAgIHBhcnRVcmwgKz0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTTkVXUENJUEFMT0ZGID8gJyZpc05ld1BjaXBhbE9mZj1FbmFibGUnIDogJyZpc05ld1BjaXBhbE9mZj1EaXNhYmxlJztcbiAgICAgcGFydFVybCArPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNPTERQQ0lQQUxPRkYgPyAnJmlzT2xkUGNpcGFsT2ZmPUVuYWJsZScgOiAnJmlzT2xkUGNpcGFsT2ZmPURpc2FibGUnO1xuXG4gICAgY29uc3QgdXJsID0gYC9wYXltZW50LWhpc3RvcnkvJHt0aGlzLmNjZENhc2VOdW1iZXJ9P3ZpZXc9Y2FzZS10cmFuc2FjdGlvbnMmdGFrZVBheW1lbnQ9dHJ1ZSZzZWxlY3RlZE9wdGlvbj0ke3RoaXMub3B0aW9ufSR7cGFydFVybH1gO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodXJsKTtcbiAgfVxufVxuIl19
|
|
@@ -54,6 +54,8 @@ export class AllocatePaymentsComponent {
|
|
|
54
54
|
this.userName = null;
|
|
55
55
|
this.paymentRef = null;
|
|
56
56
|
this.isStrategicFixEnable = true;
|
|
57
|
+
this.cookieUserName = [];
|
|
58
|
+
this.userNameField = null;
|
|
57
59
|
this.reasonList = {
|
|
58
60
|
overPayment: {
|
|
59
61
|
hwfReward: 'Help with Fees (HWF) awarded. Please include the HWF reference number in the explanatory note',
|
|
@@ -195,21 +197,25 @@ export class AllocatePaymentsComponent {
|
|
|
195
197
|
* @return {?}
|
|
196
198
|
*/
|
|
197
199
|
confirmAllocatePayement() {
|
|
200
|
+
this.enCookieUserName = document.cookie.split(";").find(row => row.includes("user-info")).split("=")[1].split(";");
|
|
201
|
+
this.cookieUserName = JSON.parse(decodeURIComponent(this.enCookieUserName));
|
|
202
|
+
/** @type {?} */
|
|
203
|
+
const fullName = this.cookieUserName['forename'] + ' ' + this.cookieUserName['surname'];
|
|
198
204
|
/** @type {?} */
|
|
199
205
|
const paymentDetailsField = this.overUnderPaymentForm.controls["moreDetails"];
|
|
200
206
|
/** @type {?} */
|
|
201
207
|
const paymentFormError = this.overUnderPaymentForm.controls["moreDetails"].errors;
|
|
202
208
|
/** @type {?} */
|
|
203
|
-
const userNameField =
|
|
209
|
+
const userNameField = fullName;
|
|
204
210
|
/** @type {?} */
|
|
205
211
|
const isEmptyCondtion = this.paymentReason && this.paymentExplanation;
|
|
206
212
|
/** @type {?} */
|
|
207
213
|
const isOtherOptionSelected = this.paymentExplanation === 'Other';
|
|
208
214
|
this.resetForm([false, false, false, false, false, false, false, false], 'all');
|
|
209
|
-
if ((!this.isRemainingAmountGtZero && !this.isRemainingAmountLtZero) || isEmptyCondtion && (!isOtherOptionSelected && userNameField.
|
|
215
|
+
if ((!this.isRemainingAmountGtZero && !this.isRemainingAmountLtZero) || isEmptyCondtion && (!isOtherOptionSelected && userNameField.length > 0 || isOtherOptionSelected && userNameField.length > 0 && paymentDetailsField.valid)) {
|
|
210
216
|
this.isConfirmButtondisabled = true;
|
|
211
217
|
this.otherPaymentExplanation = this.paymentExplanation === 'Other' ? paymentDetailsField.value : this.paymentExplanation;
|
|
212
|
-
this.userName = userNameField
|
|
218
|
+
this.userName = userNameField;
|
|
213
219
|
this.finalServiceCall();
|
|
214
220
|
}
|
|
215
221
|
else {
|
|
@@ -233,12 +239,9 @@ export class AllocatePaymentsComponent {
|
|
|
233
239
|
this.resetForm([false, false, false, false, false, true, false, false], 'other');
|
|
234
240
|
}
|
|
235
241
|
}
|
|
236
|
-
if (userNameField.
|
|
242
|
+
if (userNameField.length === 0) {
|
|
237
243
|
this.resetForm([false, false, false, false, false, false, true, false], 'username');
|
|
238
244
|
}
|
|
239
|
-
if (userNameField.value !== "" && userNameField.invalid) {
|
|
240
|
-
this.resetForm([false, false, false, false, false, false, false, true], 'username');
|
|
241
|
-
}
|
|
242
245
|
}
|
|
243
246
|
}
|
|
244
247
|
/**
|
|
@@ -279,11 +282,11 @@ export class AllocatePaymentsComponent {
|
|
|
279
282
|
name: 'Allocated'
|
|
280
283
|
},
|
|
281
284
|
payment_group_reference: this.paymentGroup.payment_group_reference,
|
|
282
|
-
|
|
285
|
+
case_type: this.caseType,
|
|
283
286
|
user_name: this.userName
|
|
284
287
|
};
|
|
285
288
|
/** @type {?} */
|
|
286
|
-
const postStrategicBody = new AllocatePaymentRequest(this.ccdReference, this.unAllocatedPayment, this.
|
|
289
|
+
const postStrategicBody = new AllocatePaymentRequest(this.ccdReference, this.unAllocatedPayment, this.caseType, this.exceptionReference, allocatedRequest);
|
|
287
290
|
this.bulkScaningPaymentService.postBSPaymentStrategic(postStrategicBody, this.paymentGroup.payment_group_reference).subscribe(res => {
|
|
288
291
|
this.errorMessage = this.errorHandlerService.getServerErrorMessage(false);
|
|
289
292
|
/** @type {?} */
|
|
@@ -359,10 +362,10 @@ export class AllocatePaymentsComponent {
|
|
|
359
362
|
this.isRemainingAmountGtZero = remainingToBeAssigned > 0;
|
|
360
363
|
this.isRemainingAmountLtZero = remainingToBeAssigned < 0;
|
|
361
364
|
this.paymentSectionLabel = this.isRemainingAmountGtZero ? {
|
|
362
|
-
title: 'There is
|
|
365
|
+
title: 'There is an Over payment of',
|
|
363
366
|
reason: 'Provide a reason. This will be used in the Refund process.',
|
|
364
367
|
} : this.isRemainingAmountLtZero ? {
|
|
365
|
-
title: 'There is
|
|
368
|
+
title: 'There is an Under payment of',
|
|
366
369
|
reason: 'Provide a reason',
|
|
367
370
|
} : {
|
|
368
371
|
title: 'Amount left to be allocated',
|
|
@@ -621,17 +624,6 @@ AllocatePaymentsComponent.decorators = [
|
|
|
621
624
|
</p>
|
|
622
625
|
</div>
|
|
623
626
|
</div>
|
|
624
|
-
<div class="govuk-form-group" *ngIf="isRemainingAmountGtZero || isRemainingAmountLtZero">
|
|
625
|
-
<label class="govuk-label govuk-font__custom" for="userName">
|
|
626
|
-
Enter your name
|
|
627
|
-
</label>
|
|
628
|
-
<input class="govuk-input" id="userName" name="userName" type="text"
|
|
629
|
-
[ngClass]="{'inline-error-class': isUserNameEmpty || isUserNameInvalid}" formControlName="userName">
|
|
630
|
-
<p class="inline-error-message" *ngIf="isUserNameEmpty || isUserNameInvalid">
|
|
631
|
-
<span *ngIf="isUserNameEmpty">Enter your name.</span>
|
|
632
|
-
<span *ngIf="isUserNameInvalid">Enter a valid name</span>
|
|
633
|
-
</p>
|
|
634
|
-
</div>
|
|
635
627
|
<div class="govuk-button--group">
|
|
636
628
|
<button type="submit" [disabled]="isConfirmButtondisabled"
|
|
637
629
|
[ngClass]="isConfirmButtondisabled ? 'button button--disabled' : 'button'"
|
|
@@ -658,12 +650,15 @@ AllocatePaymentsComponent.ctorParameters = () => [
|
|
|
658
650
|
{ type: BulkScaningPaymentService }
|
|
659
651
|
];
|
|
660
652
|
AllocatePaymentsComponent.propDecorators = {
|
|
661
|
-
isTurnOff: [{ type: Input }]
|
|
653
|
+
isTurnOff: [{ type: Input }],
|
|
654
|
+
caseType: [{ type: Input }]
|
|
662
655
|
};
|
|
663
656
|
if (false) {
|
|
664
657
|
/** @type {?} */
|
|
665
658
|
AllocatePaymentsComponent.prototype.isTurnOff;
|
|
666
659
|
/** @type {?} */
|
|
660
|
+
AllocatePaymentsComponent.prototype.caseType;
|
|
661
|
+
/** @type {?} */
|
|
667
662
|
AllocatePaymentsComponent.prototype.overUnderPaymentForm;
|
|
668
663
|
/** @type {?} */
|
|
669
664
|
AllocatePaymentsComponent.prototype.viewStatus;
|
|
@@ -738,6 +733,12 @@ if (false) {
|
|
|
738
733
|
/** @type {?} */
|
|
739
734
|
AllocatePaymentsComponent.prototype.isStrategicFixEnable;
|
|
740
735
|
/** @type {?} */
|
|
736
|
+
AllocatePaymentsComponent.prototype.cookieUserName;
|
|
737
|
+
/** @type {?} */
|
|
738
|
+
AllocatePaymentsComponent.prototype.enCookieUserName;
|
|
739
|
+
/** @type {?} */
|
|
740
|
+
AllocatePaymentsComponent.prototype.userNameField;
|
|
741
|
+
/** @type {?} */
|
|
741
742
|
AllocatePaymentsComponent.prototype.reasonList;
|
|
742
743
|
/** @type {?} */
|
|
743
744
|
AllocatePaymentsComponent.prototype.explanationList;
|
|
@@ -755,4 +756,4 @@ if (false) {
|
|
|
755
756
|
AllocatePaymentsComponent.prototype.bulkScaningPaymentService;
|
|
756
757
|
}
|
|
757
758
|
|
|
758
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsb2NhdGUtcGF5bWVudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hbGxvY2F0ZS1wYXltZW50cy9hbGxvY2F0ZS1wYXltZW50cy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ25HLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGtFQUFrRSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBR2xGLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBd092RixNQUFNOzs7Ozs7Ozs7SUF1RUosWUFDUSxxQkFDQSx5QkFDQSxhQUNBLG9CQUNBLHFCQUNBO1FBTEEsd0JBQW1CLEdBQW5CLG1CQUFtQjtRQUNuQiw0QkFBdUIsR0FBdkIsdUJBQXVCO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVztRQUNYLHVCQUFrQixHQUFsQixrQkFBa0I7UUFDbEIsd0JBQW1CLEdBQW5CLG1CQUFtQjtRQUNuQiw4QkFBeUIsR0FBekIseUJBQXlCO2tDQXRFQztZQUNoQyxNQUFNLEVBQUUsQ0FBQztTQUNWO3NCQUNnQixJQUFJOzRCQUNOLElBQUks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QUFJO1FBQ3pCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDakMsRUFBRSxDQUFBLENBQUUsSUFBSSxLQUFLLGFBQWEsSUFBSSxHQUFHLEtBQUssT0FBUSxDQUFDLENBQUEsQ0FBQztZQUM5QyxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO1lBQ25DLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7WUFDckMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLEtBQUssQ0FBQztZQUN2QyxJQUFJLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7U0FDbkM7S0FDRjs7O1lBN2xCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FpT0w7Z0JBQ0wsTUFBTSxFQUFFLENBQUMsMGpEQUEwakQsQ0FBQzthQUNya0Q7Ozs7WUEzT1EsbUJBQW1CO1lBRnBCLHVCQUF1QjtZQUh0QixXQUFXO1lBRVgsa0JBQWtCO1lBRGxCLG1CQUFtQjtZQUdwQix5QkFBeUI7Ozt3QkE4TzlCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUGF5bWVudExpYkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BheW1lbnQtbGliLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYXltZW50Vmlld1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wYXltZW50LXZpZXcvcGF5bWVudC12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHtDYXNlVHJhbnNhY3Rpb25zU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FzZS10cmFuc2FjdGlvbnMvY2FzZS10cmFuc2FjdGlvbnMuc2VydmljZSc7IFxuaW1wb3J0IHtCdWxrU2NhbmluZ1BheW1lbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9idWxrLXNjYW5pbmctcGF5bWVudC9idWxrLXNjYW5pbmctcGF5bWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEVycm9ySGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zaGFyZWQvZXJyb3ItaGFuZGxlci5zZXJ2aWNlJztcbmltcG9ydCB7SVBheW1lbnRHcm91cH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUGF5bWVudEdyb3VwJztcbmltcG9ydCB7SUJTUGF5bWVudHN9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSUJTUGF5bWVudHMnO1xuaW1wb3J0IHtBbGxvY2F0ZVBheW1lbnRSZXF1ZXN0fSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0FsbG9jYXRlUGF5bWVudFJlcXVlc3QnO1xuaW1wb3J0IHtJQWxsb2NhdGlvblBheW1lbnRzUmVxdWVzdH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JQWxsb2NhdGlvblBheW1lbnRzUmVxdWVzdCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1hbGxvY2F0ZS1wYXltZW50cycsXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cImFsbG9jYXRlLXBheW1lbnRzXCI+XG4gIDxkaXYgKm5nSWY9XCJ2aWV3U3RhdHVzPT09J21haW5Gb3JtJyAmJiBpc1R1cm5PZmZcIj5cbiAgICA8aW5wdXQgI215SW5wdXQgdHlwZT0naGlkZGVuJyBpZD0naUZyYW1lRHJpdmVuSW1hZ2VWYWx1ZScgdmFsdWU9J0FMTE9DQVRFUEFZTUVOVFMnPlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1icmVhZGNydW1ic1wiICpuZ0lmPVwicGF5bWVudFJlZlwiPlxuICAgICAgPG9sIGNsYXNzPVwiZ292dWstYnJlYWRjcnVtYnNfX2xpc3RcIj5cbiAgICAgICAgPGxpIGNsYXNzPVwiZ292dWstYnJlYWRjcnVtYnNfX2xpc3QtaXRlbVwiPlxuICAgICAgICAgIDxhIGhyZWY9XCIjXCIgKGNsaWNrKT1cImdvdG9TdW1tYXJ5UGFnZSgkZXZlbnQpXCIgY2xhc3M9XCJnb3Z1ay1iYWNrLWxpbmtcIj5CYWNrPC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgPC9vbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstaGVhZGluZy1zZWN0aW9uXCI+XG4gICAgICA8aDEgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLXhsXCI+QWxsb2NhdGUgcGF5bWVudCB0byBmZWUgZ3JvdXA8L2gxPlxuICAgICAgPGgyIGNsYXNzPVwiZ292dWstaGVhZGluZy1sXCI+QW1vdW50IGxlZnQgdG8gYmUgYWxsb2NhdGVkOlxuICAgICAgICB7eyB1bkFsbG9jYXRlZFBheW1lbnQuYW1vdW50IHwgY3VycmVuY3k6J0dCUCc6J3N5bWJvbC1uYXJyb3cnOicxLjItMicgfX08L2gyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJwYXltZW50LWdyb3VwLXNlY3Rpb25cIiAqbmdGb3I9XCJsZXQgcGF5bWVudEdyb3VwIG9mIHBheW1lbnRHcm91cHNcIj5cbiAgICAgIDxoMyBjbGFzcz1cImdvdnVrLWhlYWRpbmctbVwiPkdyb3VwIHJlZmVyZW5jZToge3twYXltZW50R3JvdXAucGF5bWVudF9ncm91cF9yZWZlcmVuY2V9fTwvaDM+XG4gICAgICA8dGFibGUgY2xhc3M9XCJnb3Z1ay10YWJsZVwiPlxuICAgICAgICA8dGhlYWQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZFwiPlxuICAgICAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIj5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXJcIiBzY29wZT1cImNvbFwiPjwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgc2NvcGU9XCJjb2xcIj5Db2RlPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXJcIiBzY29wZT1cImNvbFwiPkRlc2NyaXB0aW9uPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXJcIiBzY29wZT1cImNvbFwiPlZvbHVtZTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgc2NvcGU9XCJjb2xcIj5GZWUgYW1vdW50PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXJcIiBzY29wZT1cImNvbFwiPkNhbGN1bGF0ZWQgYW1vdW50PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXJcIiBzY29wZT1cImNvbFwiPkdyb3VwIGFtb3VudCBvdXRzdGFuZGluZzwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC90aGVhZD5cbiAgICAgICAgPHRib2R5IGNsYXNzPVwiZ292dWstdGFibGVfX2JvZHlcIj5cbiAgICAgICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCIgKm5nRm9yPVwibGV0IGZlZSBvZiBwYXltZW50R3JvdXAuZmVlczsgIGxldCBpID0gaW5kZXg7XCI+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbCBnb3Z1ay10YWJsZV9fY2VsbC0tY29sMSBnb3Z1ay10YWJsZV9fY3VzdG9tLS1jb2wxXCJcbiAgICAgICAgICAgICAgW2F0dHIucm93c3Bhbl09XCJwYXltZW50R3JvdXAuZmVlcy5sZW5ndGhcIiAqbmdJZj1cImk9PTBcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm11bHRpcGxlLWNob2ljZVwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cInVucGFpZWRGZWUte3tpfX1cIiBuYW1lPVwidW5hc3NpZ25lZFJlY29yZFwiIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0ZWRQYXltZW50R3JvdXAocGF5bWVudEdyb3VwKVwiIC8+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInVucGFpZWRGZWUte3tpfX1cIj48L2xhYmVsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbCBnb3Z1ay10YWJsZV9fY2VsbC0tY29sMVwiPnt7ZmVlLmNvZGV9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbCBnb3Z1ay10YWJsZV9fY2VsbC0tY29sMlwiPiB7e2ZlZS5kZXNjcmlwdGlvbn19IDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbCBnb3Z1ay10YWJsZV9fY2VsbC0tY29sM1wiPiB7e2ZlZS52b2x1bWU/IGZlZS52b2x1bWUgOiAnLSd9fSA8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgZ292dWstdGFibGVfX2NlbGwtLWNvbDRcIj5cbiAgICAgICAgICAgICAge3sgZmVlLmZlZV9hbW91bnQgfCBjdXJyZW5jeTonR0JQJzonc3ltYm9sLW5hcnJvdyc6JzEuMi0yJyB9fSA8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgZ292dWstdGFibGVfX2NlbGwtLWNvbDVcIj5cbiAgICAgICAgICAgICAge3tmZWUuY2FsY3VsYXRlZF9hbW91bnQgfCBjdXJyZW5jeTonR0JQJzonc3ltYm9sLW5hcnJvdyc6JzEuMi0yJyB9fSA8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgZ292dWstdGFibGVfX2NlbGwtLWNvbDYgZ292dWstdGFibGVfX2N1c3RvbS0tY29sNlwiXG4gICAgICAgICAgICAgIFthdHRyLnJvd3NwYW5dPVwicGF5bWVudEdyb3VwLmZlZXMubGVuZ3RoXCIgKm5nSWY9XCJpPT0wXCI+XG4gICAgICAgICAgICAgIHt7Z2V0R3JvdXBPdXRzdGFuZGluZ0Ftb3VudChwYXltZW50R3JvdXApIHwgY3VycmVuY3k6J0dCUCc6J3N5bWJvbC1uYXJyb3cnOicxLjItMicgfX0gPC90ZD5cblxuICAgICAgICAgIDwvdHI+XG5cbiAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPHRib2R5IGNsYXNzPVwiZ292dWstdGFibGVfX2JvZHlcIiAqbmdJZj1cInBheW1lbnRHcm91cC5mZWVzLmxlbmd0aD09MFwiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsXCIgY29sc3Bhbj1cIjZcIj5ObyBwYXltZW50cyByZWNvcmRlZDwvdGQ+XG4gICAgICAgIDwvdGJvZHk+XG4gICAgICA8L3RhYmxlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1idXR0b24tZ3JvdXAtYWxsb2NhdGVcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnV0dG9uIGdvdnVrLSEtbWFyZ2luLXJpZ2h0LTFcIiBbZGlzYWJsZWRdPVwiaXNDb250aW51ZUJ1dHRvbmRpc2FibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cInNhdmVBbmRDb250aW51ZSgpXCI+XG4gICAgICAgIENvbnRpbnVlXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnV0dG9uIGdvdnVrLWJ1dHRvbi0tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cImdvdG9DYXNldHJhbnNhdGlvblBhZ2UoKVwiPlxuICAgICAgICBDYW5jZWxcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiKHZpZXdTdGF0dXMgPT09ICdtYWluRm9ybScgJiYgIWlzVHVybk9mZikgfHwgdmlld1N0YXR1cyA9PT0gJ2FsbG9jYXRlUGF5bWVudENvbmZpcm1hdGlvbidcIj5cbiAgICA8Y2NwYXktZXJyb3ItYmFubmVyICpuZ0lmPVwiZXJyb3JNZXNzYWdlLnNob3dFcnJvclwiIFtlcnJvck1lc3NhZ2VdPVwiZXJyb3JNZXNzYWdlXCI+PC9jY3BheS1lcnJvci1iYW5uZXI+XG4gICAgPGlucHV0ICNteUlucHV0IHR5cGU9J2hpZGRlbicgaWQ9J2lGcmFtZURyaXZlbkltYWdlVmFsdWUnIHZhbHVlPSd7e2ZlZWRiYWNrVXJsTGFiZWx9fSc+XG4gICAgPGgxIGNsYXNzPVwiZ292dWstaGVhZGluZy14bFwiPkNvbmZpcm0gYXNzb2NpYXRpb248L2gxPlxuICAgIDxoMiBjbGFzcz1cImdvdnVrLWhlYWRpbmctbCBnb3Z1ay1oZWFkaW5nLWwtLWN1c3RvbVwiPlxuICAgICAgQW1vdW50IHRvIGJlIGFsbG9jYXRlZDoge3thbW91bnRGb3JBbGxvY2F0aW9uIHwgY3VycmVuY3k6J0dCUCc6J3N5bWJvbC1uYXJyb3cnOicxLjItMid9fVxuICAgIDwvaDI+XG4gICAgPGRpdiBjbGFzcz1cInBheW1lbnQtZ3JvdXAtc2VjdGlvblwiICpuZ0lmPVwicGF5bWVudEdyb3VwXCI+XG4gICAgICA8aDMgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLW0tLWN1c3RvbVwiICpuZ0lmPVwiaXNUdXJuT2ZmXCI+R3JvdXAgcmVmZXJlbmNlOiB7e3BheW1lbnRHcm91cC5wYXltZW50X2dyb3VwX3JlZmVyZW5jZX19XG4gICAgICA8L2gzPlxuICAgICAgPHRhYmxlIGNsYXNzPVwiZ292dWstdGFibGVcIj5cbiAgICAgICAgPHRoZWFkIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRcIj5cbiAgICAgICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCI+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgc2NvcGU9XCJjb2xcIj5Db2RlPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXJcIiBzY29wZT1cImNvbFwiPkRlc2NyaXB0aW9uPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXJcIiBzY29wZT1cImNvbFwiPlZvbHVtZTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgc2NvcGU9XCJjb2xcIj5GZWUgYW1vdW50PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXJcIiBzY29wZT1cImNvbFwiPkNhbGN1bGF0ZWQgYW1vdW50PC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXJcIiBzY29wZT1cImNvbFwiPkFtb3VudCBEdWU8L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGhlYWQ+XG4gICAgICAgIDx0Ym9keSBjbGFzcz1cImdvdnVrLXRhYmxlX19ib2R5XCI+XG4gICAgICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiICpuZ0Zvcj1cImxldCBmZWUgb2YgcGF5bWVudEdyb3VwLmZlZXM7IGxldCBpID0gaW5kZXg7XCI+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbCBnb3Z1ay10YWJsZV9fY2VsbC0tY29sMVwiPnt7ZmVlLmNvZGV9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbCBnb3Z1ay10YWJsZV9fY2VsbC0tY29sMlwiPiB7e2ZlZS5kZXNjcmlwdGlvbn19IDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbCBnb3Z1ay10YWJsZV9fY2VsbC0tY29sM1wiPiB7e2ZlZS52b2x1bWU/IGZlZS52b2x1bWUgOiAnLSd9fSA8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgZ292dWstdGFibGVfX2NlbGwtLWNvbDRcIj5cbiAgICAgICAgICAgICAge3sgZmVlLmZlZV9hbW91bnQgfCBjdXJyZW5jeTonR0JQJzonc3ltYm9sLW5hcnJvdyc6JzEuMi0yJyB9fSA8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgZ292dWstdGFibGVfX2NlbGwtLWNvbDVcIj5cbiAgICAgICAgICAgICAge3tmZWUuY2FsY3VsYXRlZF9hbW91bnQgfCBjdXJyZW5jeTonR0JQJzonc3ltYm9sLW5hcnJvdyc6JzEuMi0yJ319IDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbCBnb3Z1ay10YWJsZV9fY2VsbC0tY29sNlwiIFthdHRyLnJvd3NwYW5dPVwicGF5bWVudEdyb3VwLmZlZXMubGVuZ3RoXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpPT0wXCI+IHt7YWZ0ZXJGZWVBbGxvY2F0ZU91dHN0YW5kaW5nIHwgY3VycmVuY3k6J0dCUCc6J3N5bWJvbC1uYXJyb3cnOicxLjItMid9fSA8L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGJvZHk+XG4gICAgICAgIDx0Ym9keSBjbGFzcz1cImdvdnVrLXRhYmxlX19ib2R5XCIgKm5nSWY9XCJwYXltZW50R3JvdXAuZmVlcy5sZW5ndGggPT0gMFwiPlxuICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsXCIgY29sc3Bhbj1cIjZcIj5ObyBwYXltZW50cyByZWNvcmRlZDwvdGQ+XG4gICAgICAgIDwvdGJvZHk+XG4gICAgICA8L3RhYmxlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRcIiAqbmdJZj1cImlzUmVtYWluaW5nQW1vdW50R3RaZXJvIHx8IGlzUmVtYWluaW5nQW1vdW50THRaZXJvIHx8IHJlbWFpbmluZ0Ftb3VudCA9PT0gMFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj4hPC9zcGFuPlxuICAgICAgPHN0cm9uZyBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9fdGV4dCBnb3Z1ay13YXJuaW5nLXRleHRfX2N1c3RvbVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9fYXNzaXN0aXZlXCI+V2FybmluZzwvc3Bhbj5cbiAgICAgICAge3twYXltZW50U2VjdGlvbkxhYmVsLnRpdGxlfX0ge3sgcmVtYWluaW5nQW1vdW50IHwgY3VycmVuY3k6J0dCUCc6J3N5bWJvbC1uYXJyb3cnOicxLjItMicgfX1cbiAgICAgIDwvc3Ryb25nPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCIgKm5nSWY9XCJpc1JlbWFpbmluZ0Ftb3VudEd0WmVybyB8fCBpc1JlbWFpbmluZ0Ftb3VudEx0WmVyb1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIj5cbiAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiZ292dWstZmllbGRzZXRcIiBhcmlhLWRlc2NyaWJlZGJ5PVwiaG93LWNvbnRhY3RlZC1jb25kaXRpb25hbC1oaW50XCI+XG4gICAgICAgICAgPHNwYW4gaWQ9XCJob3ctY29udGFjdGVkLWNvbmRpdGlvbmFsLWhpbnRcIiBjbGFzcz1cImdvdnVrLWhpbnRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieydpbmxpbmUtZXJyb3ItbWVzc2FnZSc6IHBheW1lbnRSZWFzb25IYXNFcnJvcn1cIj5cbiAgICAgICAgICAgIHt7cGF5bWVudFNlY3Rpb25MYWJlbC5yZWFzb259fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBbbmdDbGFzc109XCJwYXltZW50UmVhc29uSGFzRXJyb3IgPyAnZ292dWstcmFkaW9zIGdvdnVrLXJhZGlvcy0tY29uZGl0aW9uYWwgZm9ybS1ncm91cC1lcnJvcicgOiAnZ292dWstcmFkaW9zIGdvdnVrLXJhZGlvcy0tY29uZGl0aW9uYWwnXCJcbiAgICAgICAgICAgIGRhdGEtbW9kdWxlPVwiZ292dWstcmFkaW9zXCIgKm5nSWY9XCJpc1JlbWFpbmluZ0Ftb3VudEd0WmVyb1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXJhZGlvc19faXRlbVwiICpuZ0Zvcj1cImxldCByZWFzb24gb2YgcmVhc29uTGlzdC5vdmVyUGF5bWVudCB8IGtleVZhbHVlXCI+XG4gICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLXJhZGlvc19faW5wdXRcIiBpZD1cInt7cmVhc29uLmtleX19XCIgbmFtZT1cInBheW1lbnRSZWFzb25cIiB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicGF5bWVudFJlYXNvblwiIHZhbHVlPXt7cmVhc29uLnZhbHVlfX0+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLXJhZGlvc19fbGFiZWwgZ292dWstZm9udF9fY3VzdG9tXCIgZm9yPVwiaG93LWNvbnRhY3RlZC1jb25kaXRpb25hbFwiPlxuICAgICAgICAgICAgICAgIHt7cmVhc29uLnZhbHVlfX1cbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInBheW1lbnRSZWFzb25IYXNFcnJvciA/ICdnb3Z1ay1yYWRpb3MgZ292dWstcmFkaW9zLS1jb25kaXRpb25hbCBmb3JtLWdyb3VwLWVycm9yJyA6ICdnb3Z1ay1yYWRpb3MgZ292dWstcmFkaW9zLS1jb25kaXRpb25hbCdcIlxuICAgICAgICAgICAgZGF0YS1tb2R1bGU9XCJnb3Z1ay1yYWRpb3NcIiAqbmdJZj1cImlzUmVtYWluaW5nQW1vdW50THRaZXJvXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstcmFkaW9zX19pdGVtXCIgKm5nRm9yPVwibGV0IHJlYXNvbiBvZiByZWFzb25MaXN0LnNob3J0RmFsbCB8IGtleVZhbHVlXCI+XG4gICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLXJhZGlvc19faW5wdXRcIiBpZD1cInt7cmVhc29uLmtleX19XCIgbmFtZT1cInBheW1lbnRSZWFzb25cIiB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicGF5bWVudFJlYXNvblwiIHZhbHVlPXt7cmVhc29uLnZhbHVlfX0+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLXJhZGlvc19fbGFiZWwgZ292dWstZm9udF9fY3VzdG9tXCIgZm9yPVwiaG93LWNvbnRhY3RlZC1jb25kaXRpb25hbFwiPlxuICAgICAgICAgICAgICAgIHt7cmVhc29uLnZhbHVlfX1cbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2ZpZWxkc2V0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiPlxuICAgICAgICA8ZmllbGRzZXQgY2xhc3M9XCJnb3Z1ay1maWVsZHNldFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJob3ctY29udGFjdGVkLWNvbmRpdGlvbmFsLWhpbnRcIj5cbiAgICAgICAgICA8c3BhbiBpZD1cImhvdy1jb250YWN0ZWQtY29uZGl0aW9uYWwtaGludFwiIGNsYXNzPVwiZ292dWstaGludFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7J2lubGluZS1lcnJvci1tZXNzYWdlJzogcGF5bWVudEV4cGxhbmF0aW9uSGFzRXJyb3J9XCI+XG4gICAgICAgICAgICBQcm92aWRlIGFuIGV4cGxhbmF0b3J5IG5vdGVcbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwicGF5bWVudEV4cGxhbmF0aW9uSGFzRXJyb3IgPyAnZ292dWstcmFkaW9zIGdvdnVrLXJhZGlvcy0tY29uZGl0aW9uYWwgZm9ybS1ncm91cC1lcnJvcicgOiAnZ292dWstcmFkaW9zIGdvdnVrLXJhZGlvcy0tY29uZGl0aW9uYWwnXCJcbiAgICAgICAgICAgIGRhdGEtbW9kdWxlPVwiZ292dWstcmFkaW9zXCIgKm5nSWY9XCJpc1JlbWFpbmluZ0Ftb3VudEd0WmVyb1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXJhZGlvc19faXRlbVwiICpuZ0Zvcj1cImxldCBleHBsYW5hdGlvbiBvZiBleHBsYW5hdGlvbkxpc3Qub3ZlclBheW1lbnQgfCBrZXlWYWx1ZVwiPlxuICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2lucHV0XCIgaWQ9XCJ7e2V4cGxhbmF0aW9uLmtleX19XCIgbmFtZT1cInBheW1lbnRFeHBsYW5hdGlvblwiIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJwYXltZW50RXhwbGFuYXRpb25cIiB2YWx1ZT17e2V4cGxhbmF0aW9uLnZhbHVlfX1cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UmFkaW9CdXR0b24oZXhwbGFuYXRpb24ua2V5LCAnZXhwbGFuYXRpb24nKVwiPlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1yYWRpb3NfX2xhYmVsIGdvdnVrLWZvbnRfX2N1c3RvbVwiIGZvcj1cImhvdy1jb250YWN0ZWQtY29uZGl0aW9uYWxcIj5cbiAgICAgICAgICAgICAgICB7e2V4cGxhbmF0aW9uLnZhbHVlfX1cbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwicGF5bWVudEV4cGxhbmF0aW9uSGFzRXJyb3IgPyAnZ292dWstcmFkaW9zIGdvdnVrLXJhZGlvcy0tY29uZGl0aW9uYWwgZm9ybS1ncm91cC1lcnJvcicgOiAnZ292dWstcmFkaW9zIGdvdnVrLXJhZGlvcy0tY29uZGl0aW9uYWwnXCJcbiAgICAgICAgICAgIGRhdGEtbW9kdWxlPVwiZ292dWstcmFkaW9zXCIgKm5nSWY9XCJpc1JlbWFpbmluZ0Ftb3VudEx0WmVyb1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXJhZGlvc19faXRlbVwiICpuZ0Zvcj1cImxldCBleHBsYW5hdGlvbiBvZiBleHBsYW5hdGlvbkxpc3Quc2hvcnRGYWxsIHwga2V5VmFsdWVcIj5cbiAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstcmFkaW9zX19pbnB1dFwiIGlkPVwie3tleHBsYW5hdGlvbi5rZXl9fVwiIG5hbWU9XCJwYXltZW50RXhwbGFuYXRpb25cIiB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicGF5bWVudEV4cGxhbmF0aW9uXCIgdmFsdWU9e3tleHBsYW5hdGlvbi52YWx1ZX19XG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFJhZGlvQnV0dG9uKGV4cGxhbmF0aW9uLmtleSwgJ2V4cGxhbmF0aW9uJylcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstcmFkaW9zX19sYWJlbCBnb3Z1ay1mb250X19jdXN0b21cIiBmb3I9XCJob3ctY29udGFjdGVkLWNvbmRpdGlvbmFsXCI+XG4gICAgICAgICAgICAgICAge3tleHBsYW5hdGlvbi52YWx1ZX19XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9maWVsZHNldD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJvdmVyVW5kZXJQYXltZW50Rm9ybVwiIG5vdmFsaWRhdGU+XG4gICAgICA8ZGl2XG4gICAgICAgIFtuZ0NsYXNzXT1cImlzTW9yZURldGFpbHNCb3hIaWRlID8gJ2dvdnVrLXJhZGlvc19fY29uZGl0aW9uYWwgZ292dWstcmFkaW9zX19jb25kaXRpb25hbC0taGlkZGVuJyA6IGlzUGF5bWVudERldGFpbHNFbXB0eSB8fCBpc1BheW1lbnREZXRhaWxzSW52YWxpZCB8fCBwYXltZW50RGV0YWlsc01pbkhhc0Vycm9yIHx8IHBheW1lbnREZXRhaWxzTWF4SGFzRXJyb3IgPyAnZ292dWstcmFkaW9zX19jb25kaXRpb25hbCBpbmxpbmUtZXJyb3ItYm9yZGVyJyA6ICdnb3Z1ay1yYWRpb3NfX2NvbmRpdGlvbmFsJ1wiXG4gICAgICAgIGlkPVwiY29uZGl0aW9uYWwtaG93LWNvbnRhY3RlZC1jb25kaXRpb25hbC0zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCI+XG4gICAgICAgICAgPHNwYW4gaWQ9XCJtb3JlLWRldGFpbC1oaW50XCIgY2xhc3M9XCJnb3Z1ay1oaW50IGdvdnVrLWZvbnRfX2N1c3RvbVwiPlxuICAgICAgICAgICAgUGxlYXNlIGVudGVyIGRldGFpbHNcbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwiZ292dWstdGV4dGFyZWFcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieydpbmxpbmUtZXJyb3ItY2xhc3MnOiBpc1BheW1lbnREZXRhaWxzRW1wdHkgfHwgaXNQYXltZW50RGV0YWlsc0ludmFsaWQgfHwgcGF5bWVudERldGFpbHNNaW5IYXNFcnJvciB8fCBwYXltZW50RGV0YWlsc01heEhhc0Vycm9yfVwiXG4gICAgICAgICAgICBpZD1cIm1vcmVEZXRhaWxzXCIgbmFtZT1cIm1vcmVEZXRhaWxzXCIgcm93cz1cIjVcIiBmb3JtQ29udHJvbE5hbWU9XCJtb3JlRGV0YWlsc1wiPlxuICAgICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgICAgPHAgY2xhc3M9XCJpbmxpbmUtZXJyb3ItbWVzc2FnZVwiXG4gICAgICAgICAgICAqbmdJZj1cImlzUGF5bWVudERldGFpbHNFbXB0eSB8fCBpc1BheW1lbnREZXRhaWxzSW52YWxpZCB8fCBwYXltZW50RGV0YWlsc01pbkhhc0Vycm9yIHx8IHBheW1lbnREZXRhaWxzTWF4SGFzRXJyb3JcIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXNQYXltZW50RGV0YWlsc0VtcHR5XCI+RW50ZXIgYSBleHBsYW5hdGlvbjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXNQYXltZW50RGV0YWlsc0ludmFsaWRcIj5FbnRlciBhIHZhbGlkIGV4cGxhbmF0aW9uPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJwYXltZW50RGV0YWlsc01pbkhhc0Vycm9yXCI+RXhwbGFuYXRpb24gc2hvdWxkIGJlIGF0IGxlYXN0IDMgY2hhcmFjdGVycy48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInBheW1lbnREZXRhaWxzTWF4SGFzRXJyb3JcIj5FeHBsYW5hdGlvbiBzaG91bGQgYmUgMjU1IGNoYXJhY3RlcnMgb3IgdW5kZXIuPC9zcGFuPlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCIgKm5nSWY9XCJpc1JlbWFpbmluZ0Ftb3VudEd0WmVybyB8fCBpc1JlbWFpbmluZ0Ftb3VudEx0WmVyb1wiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1mb250X19jdXN0b21cIiBmb3I9XCJ1c2VyTmFtZVwiPlxuICAgICAgICAgIEVudGVyIHlvdXIgbmFtZVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1pbnB1dFwiIGlkPVwidXNlck5hbWVcIiBuYW1lPVwidXNlck5hbWVcIiB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieydpbmxpbmUtZXJyb3ItY2xhc3MnOiBpc1VzZXJOYW1lRW1wdHkgfHwgaXNVc2VyTmFtZUludmFsaWR9XCIgZm9ybUNvbnRyb2xOYW1lPVwidXNlck5hbWVcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJpbmxpbmUtZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiaXNVc2VyTmFtZUVtcHR5IHx8IGlzVXNlck5hbWVJbnZhbGlkXCI+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJpc1VzZXJOYW1lRW1wdHlcIj5FbnRlciB5b3VyIG5hbWUuPC9zcGFuPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXNVc2VyTmFtZUludmFsaWRcIj5FbnRlciBhIHZhbGlkIG5hbWU8L3NwYW4+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWJ1dHRvbi0tZ3JvdXBcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgW2Rpc2FibGVkXT1cImlzQ29uZmlybUJ1dHRvbmRpc2FibGVkXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJpc0NvbmZpcm1CdXR0b25kaXNhYmxlZCA/ICdidXR0b24gYnV0dG9uLS1kaXNhYmxlZCcgOiAnYnV0dG9uJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cImNvbmZpcm1BbGxvY2F0ZVBheWVtZW50KClcIj5cbiAgICAgICAgICBDb25maXJtXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ1dHRvbiBnb3Z1ay1idXR0b24tLXNlY29uZGFyeVwiIChjbGljayk9XCJjYW5jZWxBbGxvY2F0ZVBheW1lbnQoJGV2ZW50KVwiPlxuICAgICAgICAgIENhbmNlbFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5gLFxuICBzdHlsZXM6IFtgLmFsbG9jYXRlLXBheW1lbnRze21hcmdpbjoyMHB4IDB9LmFsbG9jYXRlLXBheW1lbnRzIC5nb3Z1ay10YWJsZV9fY2VsbC0tY29sMSwuYWxsb2NhdGUtcGF5bWVudHMgLmdvdnVrLXRhYmxlX19jZWxsLS1jb2wze3dpZHRoOjEwJX0uYWxsb2NhdGUtcGF5bWVudHMgLmdvdnVrLXRhYmxlX19jZWxsLS1jb2wyLC5hbGxvY2F0ZS1wYXltZW50cyAuZ292dWstdGFibGVfX2NlbGwtLWNvbDZ7d2lkdGg6MjUlfS5hbGxvY2F0ZS1wYXltZW50cyAuZ292dWstdGFibGVfX2NlbGwtLWNvbDQsLmFsbG9jYXRlLXBheW1lbnRzIC5nb3Z1ay10YWJsZV9fY2VsbC0tY29sNXt3aWR0aDoxNSV9LmFsbG9jYXRlLXBheW1lbnRzIC5nb3Z1ay1idXR0b24tZ3JvdXAtYWxsb2NhdGV7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5hbGxvY2F0ZS1wYXltZW50cyAuZ292dWstYnV0dG9uLS1zZWNvbmRhcnl7bWFyZ2luLWxlZnQ6MTBweDtiYWNrZ3JvdW5kLWNvbG9yOiNiM2I4YmRmMn0uYWxsb2NhdGUtcGF5bWVudHMgLmdvdnVrLWN1c3RvbS13YXJuaW5nX19tZXNzYWdle2ZvbnQtc2l6ZTozMHB4O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDoxMnB4O2ZvbnQtd2VpZ2h0OjcwMH0uYWxsb2NhdGUtcGF5bWVudHMgLmdvdnVrLXdhcm5pbmctdGV4dC1jdXN0b217bWFyZ2luLWJvdHRvbTowIWltcG9ydGFudDtwYWRkaW5nOjEwcHggMCA1cHh9LmFsbG9jYXRlLXBheW1lbnRzIC5nb3Z1ay10YWJsZV9fY3VzdG9tLS1jb2wxe3BhZGRpbmctdG9wOjA7cGFkZGluZy1ib3R0b206MjBweDtwYWRkaW5nLWxlZnQ6MTVweH0uYWxsb2NhdGUtcGF5bWVudHMgLmdvdnVrLXRhYmxlX19jdXN0b20tLWNvbDZ7dGV4dC1hbGlnbjpjZW50ZXJ9LmFsbG9jYXRlLXBheW1lbnRzIC5nb3Z1ay1saXN0X19jdXN0b217cGFkZGluZy1sZWZ0OjIwcHh9LmFsbG9jYXRlLXBheW1lbnRzIC5nb3Z1ay1mb250X19jdXN0b20sLmFsbG9jYXRlLXBheW1lbnRzIC5nb3Z1ay1oZWFkaW5nLW0tLWN1c3RvbSwuYWxsb2NhdGUtcGF5bWVudHMgLmdvdnVrLWhpbnQsLmFsbG9jYXRlLXBheW1lbnRzIC5nb3Z1ay1sYWJlbC0tbSwuYWxsb2NhdGUtcGF5bWVudHMgLmdvdnVrLWxpc3RfX2N1c3RvbSwuYWxsb2NhdGUtcGF5bWVudHMgLmdvdnVrLXJhZGlvc19faXRlbSwuYWxsb2NhdGUtcGF5bWVudHMgLmdvdnVrLXdhcm5pbmctdGV4dF9fY3VzdG9te2ZvbnQtc2l6ZToxOXB4fS5hbGxvY2F0ZS1wYXltZW50cyAuZ292dWstcmFkaW9zX19jb25kaXRpb25hbC0taGlkZGVue2Rpc3BsYXk6bm9uZX0uYWxsb2NhdGUtcGF5bWVudHMgLmZvcm0tZ3JvdXAtZXJyb3J7Ym9yZGVyLWxlZnQ6NXB4IHNvbGlkICNiMTBlMWU7cGFkZGluZy1sZWZ0OjE1cHh9LmFsbG9jYXRlLXBheW1lbnRzIC5pbmxpbmUtZXJyb3ItY2xhc3N7b3V0bGluZTojYTcxNDE0IHNvbGlkIDNweDtvdXRsaW5lLW9mZnNldDowfS5hbGxvY2F0ZS1wYXltZW50cyAuaW5saW5lLWVycm9yLW1lc3NhZ2V7Y29sb3I6I2E3MTQxNDtmb250LXdlaWdodDo3MDA7bWFyZ2luLXRvcDoxMHB4fS5hbGxvY2F0ZS1wYXltZW50cyAuaW5saW5lLWVycm9yLWJvcmRlcntib3JkZXItY29sb3I6I2E3MTQxNH1gXVxufSlcbmV4cG9ydCBjbGFzcyBBbGxvY2F0ZVBheW1lbnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgaXNUdXJuT2ZmOiBib29sZWFuO1xuICBvdmVyVW5kZXJQYXltZW50Rm9ybTogRm9ybUdyb3VwO1xuICB2aWV3U3RhdHVzOiBzdHJpbmc7XG4gIGNjZENhc2VOdW1iZXI6IHN0cmluZztcbiAgYnNwYXltZW50ZGNuOiBzdHJpbmc7XG4gIGZlZWRiYWNrVXJsTGFiZWw6c3RyaW5nO1xuICB1bkFsbG9jYXRlZFBheW1lbnQ6IElCU1BheW1lbnRzID0ge1xuICAgIGFtb3VudDogMFxuICB9O1xuICBzaXRlSUQ6IHN0cmluZyA9IG51bGw7XG4gIGVycm9yTWVzc2FnZSA9IHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5nZXRTZXJ2ZXJFcnJvck1lc3NhZ2UoZmFsc2UpO1xuICBwYXltZW50R3JvdXA6IElQYXltZW50R3JvdXA7XG4gIHBheW1lbnRHcm91cHM6IElQYXltZW50R3JvdXBbXSA9IFtdO1x0XG4gIHJlbWFpbmluZ0Ftb3VudDogbnVtYmVyO1xuICBpc1JlbWFpbmluZ0Ftb3VudEd0WmVybzogYm9vbGVhbjtcbiAgaXNNb3JlRGV0YWlsc0JveEhpZGU6IGJvb2xlYW4gID0gdHJ1ZTtcbiAgaXNSZW1haW5pbmdBbW91bnRMdFplcm86IGJvb2xlYW47XG4gIGFmdGVyRmVlQWxsb2NhdGVPdXRzdGFuZGluZzogbnVtYmVyO1xuICBhbW91bnRGb3JBbGxvY2F0aW9uOiBudW1iZXI7XG4gIGlzQ29uZmlybUJ1dHRvbmRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzQ29udGludWVCdXR0b25kaXNhYmxlZDogYm9vbGVhbiA9IHRydWU7XG4gIG90aGVyUGF5bWVudEV4cGxhbmF0aW9uOiBzdHJpbmcgPSBudWxsO1xuICBzZWxlY3RlZE9wdGlvbjogc3RyaW5nID0gbnVsbDtcbiAgaXNGZWVBbW91bnRaZXJvOiBib29sZWFuID0gZmFsc2U7XHRcblxuICBwYXltZW50UmVhc29uSGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcGF5bWVudEV4cGxhbmF0aW9uSGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNQYXltZW50RGV0YWlsc0VtcHR5OiBib29sZWFuID0gZmFsc2U7XG4gIGlzUGF5bWVudERldGFpbHNJbnZhbGlkOiBib29sZWFuID0gZmFsc2U7XG4gIHBheW1lbnREZXRhaWxzTWluSGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcGF5bWVudERldGFpbHNNYXhIYXNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1VzZXJOYW1lRW1wdHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNVc2VyTmFtZUludmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY2NkUmVmZXJlbmNlOiBzdHJpbmcgPSBudWxsO1xuICBleGNlcHRpb25SZWZlcmVuY2U6IHN0cmluZyA9IG51bGw7XG4gIHBheW1lbnRSZWFzb246IHN0cmluZyA9IG51bGw7XG4gIHBheW1lbnRFeHBsYW5hdGlvbjogc3RyaW5nID0gbnVsbDtcbiAgdXNlck5hbWU6IHN0cmluZyA9IG51bGw7XG4gIHBheW1lbnRTZWN0aW9uTGFiZWw6IGFueTtcbiAgcGF5bWVudFJlZjogc3RyaW5nID0gbnVsbDtcbiAgaXNTdHJhdGVnaWNGaXhFbmFibGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIHJlYXNvbkxpc3Q6IHsgW2tleTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB9PSB7XG4gICAgb3ZlclBheW1lbnQ6IHtcbiAgICAgIGh3ZlJld2FyZDogJ0hlbHAgd2l0aCBGZWVzIChIV0YpIGF3YXJkZWQuICBQbGVhc2UgaW5jbHVkZSB0aGUgSFdGIHJlZmVyZW5jZSBudW1iZXIgaW4gdGhlIGV4cGxhbmF0b3J5IG5vdGUnLFxuICAgICAgd3JvbmdGZWU6ICdJbmNvcnJlY3QgcGF5bWVudCByZWNlaXZlZCcsXG4gICAgICBub3RJc3N1ZUNhc2U6ICdVbmFibGUgdG8gaXNzdWUgY2FzZScsXG4gICAgICBvdGhlckRlZHVjdGlvbjogJ090aGVyJ1xuICAgIH0sXG4gICAgc2hvcnRGYWxsOiB7XG4gICAgICBoZWxwV2l0aEZlZTogJ0hlbHAgd2l0aCBGZWVzIChIV0YpIGFwcGxpY2F0aW9uIGRlY2xpbmVkJyxcbiAgICAgIHdyb25nRmVlOiAnSW5jb3JyZWN0IHBheW1lbnQgcmVjZWl2ZWQnLFxuICAgICAgb3RoZXI6ICdPdGhlcidcbiAgICB9XG4gIH1cbiAgZXhwbGFuYXRpb25MaXN0ID0ge1xuICAgIG92ZXJQYXltZW50OiB7XG4gICAgICByZWZlclJlZnVuZDogJ0RldGFpbHMgaW4gY2FzZSBub3Rlcy4gIFJlZnVuZCBkdWUnLFxuICAgICAgbm9SZWZ1bmQ6ICdEZXRhaWxzIGluIGNhc2Ugbm90ZXMuIE5vIHJlZnVuZCBkdWUnLFxuICAgICAgbm9DYXNlOiAnTm8gY2FzZSBjcmVhdGVkLiAgUmVmdW5kIGR1ZScsXG4gICAgICBvdGhlcjogJ090aGVyJ1xuICAgIH0sXG4gICAgc2hvcnRGYWxsOiB7XG4gICAgICBob2xkQ2FzZTogJ0kgaGF2ZSBwdXQgYSBzdG9wIG9uIHRoZSBjYXNlIGFuZCBjb250YWN0ZWQgdGhlIGFwcGxpY2FudCByZXF1ZXN0aW5nIHRoZSBiYWxhbmNlIG9mIHBheW1lbnQnLFxuICAgICAgaGVsZENhc2U6ICdJIGhhdmUgcHV0IGEgc3RvcCBvbiB0aGUgY2FzZS4gIFRoZSBhcHBsaWNhbnQgbmVlZHMgdG8gYmUgY29udGFjdGVkIHRvIHJlcXVlc3QgdGhlIGJhbGFuY2Ugb2YgcGF5bWVudCcsXG4gICAgICBvdGhlcjogJ090aGVyJ1xuICAgIH1cbiAgfVxuXG5cbiAgY29uc3RydWN0b3IoXG4gIHByaXZhdGUgZXJyb3JIYW5kbGVyU2VydmljZTogRXJyb3JIYW5kbGVyU2VydmljZSxcbiAgcHJpdmF0ZSBjYXNlVHJhbnNhY3Rpb25zU2VydmljZTogQ2FzZVRyYW5zYWN0aW9uc1NlcnZpY2UsXG4gIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICBwcml2YXRlIHBheW1lbnRWaWV3U2VydmljZTogUGF5bWVudFZpZXdTZXJ2aWNlLFxuICBwcml2YXRlIHBheW1lbnRMaWJDb21wb25lbnQ6IFBheW1lbnRMaWJDb21wb25lbnQsXG4gIHByaXZhdGUgYnVsa1NjYW5pbmdQYXltZW50U2VydmljZTogQnVsa1NjYW5pbmdQYXltZW50U2VydmljZSkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy52aWV3U3RhdHVzID0gJ21haW5Gb3JtJztcbiAgICB0aGlzLmNjZENhc2VOdW1iZXIgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuQ0NEX0NBU0VfTlVNQkVSO1xuICAgIHRoaXMuYnNwYXltZW50ZGNuID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmJzcGF5bWVudGRjbjtcbiAgICB0aGlzLnBheW1lbnRSZWYgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQucGF5bWVudEdyb3VwUmVmZXJlbmNlO1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuU0VMRUNURURfT1BUSU9OO1xuICAgIHRoaXMuaXNTdHJhdGVnaWNGaXhFbmFibGUgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNTRkVOQUJMRTtcbiAgICB0aGlzLmlzVHVybk9mZiA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc1R1cm5PZmY7XG4gICAgdGhpcy5vdmVyVW5kZXJQYXltZW50Rm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgbW9yZURldGFpbHM6IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5jb21wb3NlKFtcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgVmFsaWRhdG9ycy5taW5MZW5ndGgoMyksXG4gICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NSksXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybignXihbYS16QS1aMC05XFxcXHMsXFxcXC5dKikkJylcbiAgICAgIF0pKSxcbiAgICAgIHVzZXJOYW1lOiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybignXihbYS16QS1aMC05XFxcXHNdKikkJylcbiAgICAgIF0pKSxcbiAgICB9KTtcbiAgICB0aGlzLmdldFVuYXNzaWduZWRQYXltZW50KCk7XG4gIH1cbiAgZ2V0R3JvdXBPdXRzdGFuZGluZ0Ftb3VudChwYXltZW50R3JvdXA6IElQYXltZW50R3JvdXApOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2UuY2FsY3VsYXRlT3V0U3RhbmRpbmdBbW91bnQocGF5bWVudEdyb3VwKTtcbiAgfVxuXG4gIGdldFBheW1lbnRHcm91cERldGFpbHMoKXtcblxuICAgIGlmKCF0aGlzLmlzVHVybk9mZil7XG4gICAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5nZXRQYXltZW50R3JvdXBEZXRhaWxzKHRoaXMucGF5bWVudFJlZikuc3Vic2NyaWJlKFxuICAgICAgICBwYXltZW50R3JvdXAgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmdldFNlcnZlckVycm9yTWVzc2FnZShmYWxzZSk7XG4gICAgICAgICAgdGhpcy5wYXltZW50R3JvdXAgID0gcGF5bWVudEdyb3VwO1xuICAgICAgICAgIHRoaXMuc2F2ZUFuZENvbnRpbnVlKCk7XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuZ2V0U2VydmVyRXJyb3JNZXNzYWdlKHRydWUpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1lbHNlIHtcbiAgICAgIHRoaXMuY2FzZVRyYW5zYWN0aW9uc1NlcnZpY2UuZ2V0UGF5bWVudEdyb3Vwcyh0aGlzLmNjZENhc2VOdW1iZXIpLnN1YnNjcmliZShcbiAgICAgICAgcGF5bWVudEdyb3VwcyA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuZ2V0U2VydmVyRXJyb3JNZXNzYWdlKGZhbHNlKTtcbiAgICAgICAgdGhpcy5wYXltZW50R3JvdXBzID0gcGF5bWVudEdyb3Vwc1sncGF5bWVudF9ncm91cHMnXS5maWx0ZXIocGF5bWVudEdyb3VwID0+IHtcbiAgICAgICAgICAgIHBheW1lbnRHcm91cC5mZWVzLmZvckVhY2goZmVlID0+IHtcbiAgICAgICAgICAgICAgaWYoZmVlLmNhbGN1bGF0ZWRfYW1vdW50ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0ZlZUFtb3VudFplcm8gPSB0cnVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgbGV0IGZzdENvbiA9IHRoaXMuZ2V0R3JvdXBPdXRzdGFuZGluZ0Ftb3VudCg8SVBheW1lbnRHcm91cD5wYXltZW50R3JvdXApLFxuICAgICAgICAgICAgc2NuZENuID0gZnN0Q29uID4gMCB8fCAoZnN0Q29uID09IDAgJiYgdGhpcy5pc0ZlZUFtb3VudFplcm8pICYmIHBheW1lbnRHcm91cC5wYXltZW50X2dyb3VwX3JlZmVyZW5jZSA9PT0gdGhpcy5wYXltZW50UmVmO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGF5bWVudFJlZiA/ICBzY25kQ24gOiBmc3RDb24gPiAwIHx8IChmc3RDb24gPT0gMCAmJiB0aGlzLmlzRmVlQW1vdW50WmVybyk7XG4gICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmdldFNlcnZlckVycm9yTWVzc2FnZSh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgfVxuXG4gIHNlbGVjdGVkUGF5bWVudEdyb3VwKHBheW1lbnRHcm91cDogSVBheW1lbnRHcm91cCkge1x0XG4gICAgdGhpcy5pc0NvbnRpbnVlQnV0dG9uZGlzYWJsZWQgPSBmYWxzZTtcdFxuICAgIHRoaXMucGF5bWVudEdyb3VwID0gcGF5bWVudEdyb3VwO1x0XG4gIH1cdFxuXG4gIGdvdG9DYXNldHJhbnNhdGlvblBhZ2UoKSB7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ2Nhc2UtdHJhbnNhY3Rpb25zJztcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNUdXJuT2ZmID0gdGhpcy5pc1R1cm5PZmY7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlRBS0VQQVlNRU5UID0gdHJ1ZTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNCU0VOQUJMRSA9IHRydWU7XG4gIH1cblxuICBnb3RvU3VtbWFyeVBhZ2UoZXZlbnQ6IGFueSkgeyBcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdmZWUtc3VtbWFyeSc7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzVHVybk9mZiA9IHRoaXMuaXNUdXJuT2ZmO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCA9IHRydWU7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPSB0cnVlO1xuICB9XG5cbiAgY2FuY2VsQWxsb2NhdGVQYXltZW50KGV2ZW50OiBhbnkpe1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sICdhbGwnKTtcbiAgICBpZighdGhpcy5pc1R1cm5PZmYpe1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ2ZlZS1zdW1tYXJ5JztcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc1R1cm5PZmYgPSB0aGlzLmlzVHVybk9mZjtcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCA9IHRydWU7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNCU0VOQUJMRSA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlld1N0YXR1cyA9ICdtYWluRm9ybSc7XHRcbiAgICB9XG4gIH1cbiAgY29uZmlybUFsbG9jYXRlUGF5ZW1lbnQoKXtcbiAgICBjb25zdCBwYXltZW50RGV0YWlsc0ZpZWxkID0gdGhpcy5vdmVyVW5kZXJQYXltZW50Rm9ybS5jb250cm9scy5tb3JlRGV0YWlscyxcbiAgICAgIHBheW1lbnRGb3JtRXJyb3IgPSB0aGlzLm92ZXJVbmRlclBheW1lbnRGb3JtLmNvbnRyb2xzLm1vcmVEZXRhaWxzLmVycm9ycyxcbiAgICAgIHVzZXJOYW1lRmllbGQgPSB0aGlzLm92ZXJVbmRlclBheW1lbnRGb3JtLmNvbnRyb2xzLnVzZXJOYW1lLFxuICAgICAgaXNFbXB0eUNvbmR0aW9uID0gdGhpcy5wYXltZW50UmVhc29uICYmIHRoaXMucGF5bWVudEV4cGxhbmF0aW9uLFxuICAgICAgaXNPdGhlck9wdGlvblNlbGVjdGVkID0gdGhpcy5wYXltZW50RXhwbGFuYXRpb24gPT09ICdPdGhlcic7XG5cbiAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXSwgJ2FsbCcpO1xuICAgIGlmICggKCF0aGlzLmlzUmVtYWluaW5nQW1vdW50R3RaZXJvICYmICF0aGlzLmlzUmVtYWluaW5nQW1vdW50THRaZXJvKSB8fCBpc0VtcHR5Q29uZHRpb24gJiYgKCFpc090aGVyT3B0aW9uU2VsZWN0ZWQgJiYgdXNlck5hbWVGaWVsZC52YWxpZCB8fCBpc090aGVyT3B0aW9uU2VsZWN0ZWQgJiYgdXNlck5hbWVGaWVsZC52YWxpZCAmJiBwYXltZW50RGV0YWlsc0ZpZWxkLnZhbGlkKSkge1xuICAgICAgdGhpcy5pc0NvbmZpcm1CdXR0b25kaXNhYmxlZCA9IHRydWU7XG4gICAgICB0aGlzLm90aGVyUGF5bWVudEV4cGxhbmF0aW9uID0gdGhpcy5wYXltZW50RXhwbGFuYXRpb24gPT09ICdPdGhlcicgPyBwYXltZW50RGV0YWlsc0ZpZWxkLnZhbHVlIDogdGhpcy5wYXltZW50RXhwbGFuYXRpb247XG4gICAgICB0aGlzLnVzZXJOYW1lID0gdXNlck5hbWVGaWVsZC52YWx1ZTtcbiAgICAgIHRoaXMuZmluYWxTZXJ2aWNlQ2FsbCgpO1xuICAgIH1lbHNlIHtcbiAgICAgIGlmKCF0aGlzLnBheW1lbnRSZWFzb24pIHtcbiAgICAgICAgdGhpcy5yZXNldEZvcm0oW3RydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXSwgJ3JlYXNvbicpO1xuICAgICAgfVxuICAgICAgaWYoIXRoaXMucGF5bWVudEV4cGxhbmF0aW9uKSB7XG4gICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sICdleHBsYW5hdGlvbicpO1xuICAgICAgfVxuICAgICAgaWYodGhpcy5wYXltZW50RXhwbGFuYXRpb24gJiYgaXNPdGhlck9wdGlvblNlbGVjdGVkKSB7XG4gICAgICAgIGlmKHBheW1lbnREZXRhaWxzRmllbGQudmFsdWUgPT0gJycgKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXSwgJ290aGVyJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYocGF5bWVudERldGFpbHNGaWVsZC52YWx1ZSAhPSAnJyAmJiBwYXltZW50RGV0YWlsc0ZpZWxkLmludmFsaWQgKSB7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXSwgJ290aGVyJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYocGF5bWVudEZvcm1FcnJvciAmJiBwYXltZW50Rm9ybUVycm9yLm1pbmxlbmd0aCAmJiBwYXltZW50Rm9ybUVycm9yLm1pbmxlbmd0aC5hY3R1YWxMZW5ndGggPCAzICkge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sICdvdGhlcicpO1xuICAgICAgICB9XG4gICAgICAgIGlmKHBheW1lbnRGb3JtRXJyb3IgJiYgcGF5bWVudEZvcm1FcnJvci5tYXhsZW5ndGggJiYgcGF5bWVudEZvcm1FcnJvci5tYXhsZW5ndGguYWN0dWFsTGVuZ3RoID4gMjU1ICkge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZV0sICdvdGhlcicpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZih1c2VyTmFtZUZpZWxkLnZhbHVlID09PSBcIlwiKSB7XG4gICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZV0sICd1c2VybmFtZScpO1xuICAgICAgfVxuICAgICAgaWYodXNlck5hbWVGaWVsZC52YWx1ZSAhPT0gXCJcIiAmJiAgdXNlck5hbWVGaWVsZC5pbnZhbGlkKSB7XG4gICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZV0sICd1c2VybmFtZScpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXNldEZvcm0odmFscywgZmllbGQpIHtcbiAgICBpZihmaWVsZD09PSdyZWFzb24nIHx8IGZpZWxkPT09J2FsbCcpIHtcbiAgICAgIHRoaXMucGF5bWVudFJlYXNvbkhhc0Vycm9yID0gdmFsc1swXTtcbiAgICB9XG4gICAgaWYoZmllbGQ9PT0nZXhwbGFuYXRpb24nIHx8IGZpZWxkPT09J2FsbCcpIHtcbiAgICAgIHRoaXMucGF5bWVudEV4cGxhbmF0aW9uSGFzRXJyb3IgPSB2YWxzWzFdO1xuICAgIH1cbiAgICBpZihmaWVsZD09PSdvdGhlcicgfHwgZmllbGQ9PT0nYWxsJykge1xuICAgICAgdGhpcy5pc1BheW1lbnREZXRhaWxzRW1wdHkgPSB2YWxzWzJdO1xuICAgICAgdGhpcy5pc1BheW1lbnREZXRhaWxzSW52YWxpZCA9IHZhbHNbM107XG4gICAgICB0aGlzLnBheW1lbnREZXRhaWxzTWluSGFzRXJyb3IgPSB2YWxzWzRdO1xuICAgICAgdGhpcy5wYXltZW50RGV0YWlsc01heEhhc0Vycm9yID0gdmFsc1s1XTtcbiAgICB9XG4gICAgaWYoZmllbGQ9PT0ndXNlcm5hbWUnIHx8IGZpZWxkPT09J2FsbCcpIHtcbiAgICAgIHRoaXMuaXNVc2VyTmFtZUVtcHR5ID0gdmFsc1s2XTtcbiAgICAgIHRoaXMuaXNVc2VyTmFtZUludmFsaWQgPSB2YWxzWzddO1xuICAgIH1cbiAgfVxuICBmaW5hbFNlcnZpY2VDYWxsKCkge1xuICAgIGlmKCF0aGlzLmlzU3RyYXRlZ2ljRml4RW5hYmxlKSB7XG4gICAgICBsZXQgYWxsb2NhdGVkUmVxdWVzdCA9IHtcbiAgICAgICAgcmVhc29uOiB0aGlzLnBheW1lbnRSZWFzb24sXG4gICAgICAgIGFsbG9jYXRpb25fc3RhdHVzOidBbGxvY2F0ZWQnLFxuICAgICAgICBleHBsYW5hdGlvbjogdGhpcy5vdGhlclBheW1lbnRFeHBsYW5hdGlvbixcbiAgICAgICAgcGF5bWVudF9hbGxvY2F0aW9uX3N0YXR1czoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICAgICAgICBuYW1lOiAnQWxsb2NhdGVkJ1xuICAgICAgICB9LFxuICAgICAgICBwYXltZW50X2dyb3VwX3JlZmVyZW5jZTogdGhpcy5wYXltZW50R3JvdXAucGF5bWVudF9ncm91cF9yZWZlcmVuY2UsXG4gICAgICAgIHVzZXJfaWQ6IHRoaXMuc2l0ZUlELFxuICAgICAgICB1c2VyX25hbWU6IHRoaXMudXNlck5hbWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBvc3RTdHJhdGVnaWNCb2R5ID0gbmV3IEFsbG9jYXRlUGF5bWVudFJlcXVlc3RcbiAgICAgICh0aGlzLmNjZFJlZmVyZW5jZSwgdGhpcy51bkFsbG9jYXRlZFBheW1lbnQsIHRoaXMuc2l0ZUlELCB0aGlzLmV4Y2VwdGlvblJlZmVyZW5jZSwgYWxsb2NhdGVkUmVxdWVzdCk7XG4gICAgICB0aGlzLmJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2UucG9zdEJTUGF5bWVudFN0cmF0ZWdpYyhwb3N0U3RyYXRlZ2ljQm9keSAsIHRoaXMucGF5bWVudEdyb3VwLnBheW1lbnRfZ3JvdXBfcmVmZXJlbmNlKS5zdWJzY3JpYmUoXG4gICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuZ2V0U2VydmVyRXJyb3JNZXNzYWdlKGZhbHNlKTtcbiAgICAgICAgICBsZXQgcmVzcG9uc2UgPSBKU09OLnBhcnNlKHJlcyk7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgdGhpcy5nb3RvQ2FzZXRyYW5zYXRpb25QYWdlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmdldFNlcnZlckVycm9yTWVzc2FnZSh0cnVlKTtcbiAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gICAgICAgICAgdGhpcy5pc0NvbmZpcm1CdXR0b25kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcblxuICAgIH0gZWxzZSB7XG4gICAgdGhpcy5idWxrU2NhbmluZ1BheW1lbnRTZXJ2aWNlLnBhdGNoQlNDaGFuZ2VTdGF0dXModGhpcy51bkFsbG9jYXRlZFBheW1lbnQuZGNuX3JlZmVyZW5jZSwgJ1BST0NFU1NFRCcpLnN1YnNjcmliZShcbiAgICAgIHJlczEgPT4ge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5nZXRTZXJ2ZXJFcnJvck1lc3NhZ2UoZmFsc2UpO1xuICAgICAgICBsZXQgcmVzcG9uc2UxID0gSlNPTi5wYXJzZShyZXMxKTtcbiAgICAgICAgaWYgKHJlc3BvbnNlMS5zdWNjZXNzKSB7XG4gICAgICAgICAgY29uc3QgcmVxdWVzdEJvZHkgPSBuZXcgQWxsb2NhdGVQYXltZW50UmVxdWVzdFxuICAgICAgICAgICh0aGlzLmNjZFJlZmVyZW5jZSwgdGhpcy51bkFsbG9jYXRlZFBheW1lbnQsIHRoaXMuc2l0ZUlELCB0aGlzLmV4Y2VwdGlvblJlZmVyZW5jZSk7XG4gICAgICAgICAgdGhpcy5idWxrU2NhbmluZ1BheW1lbnRTZXJ2aWNlLnBvc3RCU0FsbG9jYXRlUGF5bWVudChyZXF1ZXN0Qm9keSwgdGhpcy5wYXltZW50R3JvdXAucGF5bWVudF9ncm91cF9yZWZlcmVuY2UpLnN1YnNjcmliZShcbiAgICAgICAgICAgIHJlczIgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5nZXRTZXJ2ZXJFcnJvck1lc3NhZ2UoZmFsc2UpO1xuICAgICAgICAgICAgICBsZXQgcmVzcG9uc2UyID0gSlNPTi5wYXJzZShyZXMyKTtcbiAgICAgICAgICAgICAgY29uc3QgcmVxQm9keSA9IG5ldyBJQWxsb2NhdGlvblBheW1lbnRzUmVxdWVzdFxuICAgICAgICAgICAgICAocmVzcG9uc2UyWydkYXRhJ10ucGF5bWVudF9ncm91cF9yZWZlcmVuY2UsIHJlc3BvbnNlMlsnZGF0YSddLnJlZmVyZW5jZSwgdGhpcy5wYXltZW50UmVhc29uLCB0aGlzLm90aGVyUGF5bWVudEV4cGxhbmF0aW9uLCB0aGlzLnVzZXJOYW1lKTtcbiAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlMi5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UucG9zdEJTQWxsb2NhdGlvblBheW1lbnRzKHJlcUJvZHkpLnN1YnNjcmliZShcbiAgXG4gICAgICAgICAgICAgICAgcmVzMyA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5nZXRTZXJ2ZXJFcnJvck1lc3NhZ2UoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgbGV0IHJlc3BvbnNlMyA9IEpTT04ucGFyc2UocmVzMyk7XG4gICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UzLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICB0aGlzLmdvdG9DYXNldHJhbnNhdGlvblBhZ2UoKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2UucGF0Y2hCU0NoYW5nZVN0YXR1cyh0aGlzLnVuQWxsb2NhdGVkUGF5bWVudC5kY25fcmVmZXJlbmNlLCAnQ09NUExFVEUnKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmdldFNlcnZlckVycm9yTWVzc2FnZSh0cnVlKTtcbiAgICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuaXNDb25maXJtQnV0dG9uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuYnVsa1NjYW5pbmdQYXltZW50U2VydmljZS5wYXRjaEJTQ2hhbmdlU3RhdHVzKHRoaXMudW5BbGxvY2F0ZWRQYXltZW50LmRjbl9yZWZlcmVuY2UsICdDT01QTEVURScpLnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5nZXRTZXJ2ZXJFcnJvck1lc3NhZ2UodHJ1ZSk7XG4gICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcbiAgICAgICAgICAgICAgdGhpcy5pc0NvbmZpcm1CdXR0b25kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgICB9LFxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuZ2V0U2VydmVyRXJyb3JNZXNzYWdlKHRydWUpO1xuICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gICAgICAgIHRoaXMuaXNDb25maXJtQnV0dG9uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICApOyAgXG4gIH1cbiAgfVxuXG4gIHNhdmVBbmRDb250aW51ZSgpe1xuICAgIGlmKHRoaXMucGF5bWVudEdyb3VwKSB7XG4gICAgICB0aGlzLmlzTW9yZURldGFpbHNCb3hIaWRlID0gdHJ1ZTtcbiAgICAgIHRoaXMub3ZlclVuZGVyUGF5bWVudEZvcm0uZ2V0KCdtb3JlRGV0YWlscycpLnJlc2V0KCk7XG4gICAgICB0aGlzLm92ZXJVbmRlclBheW1lbnRGb3JtLmdldCgnbW9yZURldGFpbHMnKS5zZXRWYWx1ZSgnJyk7XG4gICAgICB0aGlzLm92ZXJVbmRlclBheW1lbnRGb3JtLmdldCgndXNlck5hbWUnKS5yZXNldCgpO1xuICAgICAgdGhpcy5vdmVyVW5kZXJQYXltZW50Rm9ybS5nZXQoJ3VzZXJOYW1lJykuc2V0VmFsdWUoJycpO1xuICAgICAgdGhpcy5wYXltZW50UmVhc29uID0gJyc7XG4gICAgICB0aGlzLnBheW1lbnRFeHBsYW5hdGlvbiA9ICcnO1xuICAgICAgbGV0IEdyb3VwT3V0c3RhbmRpbmdBbW91bnQgPSB0aGlzLmdldEdyb3VwT3V0c3RhbmRpbmdBbW91bnQodGhpcy5wYXltZW50R3JvdXApO1xuICAgICAgY29uc3QgcmVtYWluaW5nVG9CZUFzc2lnbmVkID0gdGhpcy51bkFsbG9jYXRlZFBheW1lbnQuYW1vdW50IC0gR3JvdXBPdXRzdGFuZGluZ0Ftb3VudDtcbiAgICAgIHRoaXMuaXNSZW1haW5pbmdBbW91bnRHdFplcm8gPSByZW1haW5pbmdUb0JlQXNzaWduZWQgPiAwO1xuICAgICAgdGhpcy5pc1JlbWFpbmluZ0Ftb3VudEx0WmVybyA9IHJlbWFpbmluZ1RvQmVBc3NpZ25lZCA8IDA7XG4gICAgICB0aGlzLnBheW1lbnRTZWN0aW9uTGFiZWwgPSB0aGlzLmlzUmVtYWluaW5nQW1vdW50R3RaZXJvID8geyBcbiAgICAgICAgICB0aXRsZTogJ1RoZXJlIGlzIGEgc3VycGx1cyBvZicsXG4gICAgICAgICAgcmVhc29uOiAnUHJvdmlkZSBhIHJlYXNvbi4gVGhpcyB3aWxsIGJlIHVzZWQgaW4gdGhlIFJlZnVuZCBwcm9jZXNzLicsXG4gICAgICAgIH06IHRoaXMuaXNSZW1haW5pbmdBbW91bnRMdFplcm8gPyB7IFxuICAgICAgICAgIHRpdGxlOiAnVGhlcmUgaXMgYSBzaG9ydGZhbGwgb2YnLFxuICAgICAgICAgIHJlYXNvbjogJ1Byb3ZpZGUgYSByZWFzb24nLFxuICAgICAgICB9OiB7IFxuICAgICAgICAgIHRpdGxlOidBbW91bnQgbGVmdCB0byBiZSBhbGxvY2F0ZWQnLFxuICAgICAgICAgIHJlYXNvbjonJyxcbiAgICAgICAgfTtcbiAgICAgIHRoaXMuZmVlZGJhY2tVcmxMYWJlbCA9IHRoaXMuaXNSZW1haW5pbmdBbW91bnRHdFplcm8gPyAnQ09ORklSTUFMTE9DQVRJT05fU1VSUExVUycgOiB0aGlzLmlzUmVtYWluaW5nQW1vdW50THRaZXJvID8gJ0NPTkZJUk1BTExPQ0FUSU9OX1NIT1JURkFMTCcgOiAnQ09ORklSTUFMTE9DQVRJT04nO1xuICAgICAgdGhpcy5yZW1haW5pbmdBbW91bnQgPSAgdGhpcy5pc1JlbWFpbmluZ0Ftb3VudEd0WmVybyA/IHJlbWFpbmluZ1RvQmVBc3NpZ25lZCA6IHRoaXMuaXNSZW1haW5pbmdBbW91bnRMdFplcm8gPyByZW1haW5pbmdUb0JlQXNzaWduZWQgKiAtMSA6IDA7XG4gICAgICB0aGlzLmFmdGVyRmVlQWxsb2NhdGVPdXRzdGFuZGluZyA9IHJlbWFpbmluZ1RvQmVBc3NpZ25lZCA+PSAwID8gMCA6IChyZW1haW5pbmdUb0JlQXNzaWduZWQgKiAtMSk7XG4gICAgICB0aGlzLmFtb3VudEZvckFsbG9jYXRpb24gPSBHcm91cE91dHN0YW5kaW5nQW1vdW50ID49IHRoaXMudW5BbGxvY2F0ZWRQYXltZW50LmFtb3VudCA/IHRoaXMudW5BbGxvY2F0ZWRQYXltZW50LmFtb3VudCA6IEdyb3VwT3V0c3RhbmRpbmdBbW91bnQ7XG4gICAgICBpZih0aGlzLmlzVHVybk9mZil7XG4gICAgICAgIHRoaXMudmlld1N0YXR1cyA9ICdhbGxvY2F0ZVBheW1lbnRDb25maXJtYXRpb24nO1x0XG4gICAgICB9XG4gICAgfVxuICB9XG4gICBnZXRVbmFzc2lnbmVkUGF5bWVudCgpIHtcbiAgICB0aGlzLmJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2UuZ2V0QlNQYXltZW50c0J5RENOKHRoaXMuYnNwYXltZW50ZGNuKS5zdWJzY3JpYmUoXG4gICAgICB1bmFzc2lnbmVkUGF5bWVudHMgPT4ge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5nZXRTZXJ2ZXJFcnJvck1lc3NhZ2UoZmFsc2UpO1xuICAgICAgICB0aGlzLnVuQWxsb2NhdGVkUGF5bWVudCA9IHVuYXNzaWduZWRQYXltZW50c1snZGF0YSddLnBheW1lbnRzLmZpbHRlcihwYXltZW50ID0+IHtcbiAgICAgICAgICByZXR1cm4gcGF5bWVudCAmJiBwYXltZW50LmRjbl9yZWZlcmVuY2UgPT0gdGhpcy5ic3BheW1lbnRkY247XG4gICAgICAgIH0pWzBdO1xuICAgICAgICB0aGlzLnNpdGVJRCA9IHVuYXNzaWduZWRQYXltZW50c1snZGF0YSddLnJlc3BvbnNpYmxlX3NlcnZpY2VfaWQ7XG4gICAgICAgIGNvbnN0IGJlQ2NkTnVtYmVyID0gdW5hc3NpZ25lZFBheW1lbnRzWydkYXRhJ10uY2NkX3JlZmVyZW5jZSxcbiAgICAgICAgYmVFeGNlcHRpb25OdW1iZXIgPSB1bmFzc2lnbmVkUGF5bWVudHNbJ2RhdGEnXS5leGNlcHRpb25fcmVjb3JkX3JlZmVyZW5jZSxcbiAgICAgICAgZXhjZXB0aW9uUmVmZXJlbmNlID0gYmVDY2ROdW1iZXIgPyBiZUNjZE51bWJlciA9PT0gdGhpcy5jY2RDYXNlTnVtYmVyID8gbnVsbCA6IHRoaXMuY2NkQ2FzZU51bWJlciA6IHRoaXMuY2NkQ2FzZU51bWJlcjtcbiAgICAgICB0aGlzLmNjZFJlZmVyZW5jZSA9IGJlQ2NkTnVtYmVyID8gYmVDY2ROdW1iZXIgOiBudWxsO1xuICAgICAgIHRoaXMuZXhjZXB0aW9uUmVmZXJlbmNlID0gYmVFeGNlcHRpb25OdW1iZXIgPyBiZUV4Y2VwdGlvbk51bWJlciA6IGV4Y2VwdGlvblJlZmVyZW5jZTtcbiAgICAgICB0aGlzLmdldFBheW1lbnRHcm91cERldGFpbHMoKTtcbiAgICAgIH0sXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5nZXRTZXJ2ZXJFcnJvck1lc3NhZ2UodHJ1ZSk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuICBzZWxlY3RSYWRpb0J1dHRvbihrZXksIHR5cGUpIHtcbiAgICB0aGlzLmlzTW9yZURldGFpbHNCb3hIaWRlID0gdHJ1ZTtcbiAgICBpZiggdHlwZSA9PT0gJ2V4cGxhbmF0aW9uJyAmJiBrZXkgPT09ICdvdGhlcicgKXtcbiAgICAgIHRoaXMuaXNQYXltZW50RGV0YWlsc0VtcHR5ID0gZmFsc2U7XG4gICAgICB0aGlzLmlzUGF5bWVudERldGFpbHNJbnZhbGlkID0gZmFsc2U7XG4gICAgICB0aGlzLnBheW1lbnREZXRhaWxzTWluSGFzRXJyb3IgPSBmYWxzZTtcbiAgICAgIHRoaXMucGF5bWVudERldGFpbHNNYXhIYXNFcnJvciA9IGZhbHNlO1xuICAgICAgdGhpcy5pc01vcmVEZXRhaWxzQm94SGlkZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxufSJdfQ==
|
|
759
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsb2NhdGUtcGF5bWVudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hbGxvY2F0ZS1wYXltZW50cy9hbGxvY2F0ZS1wYXltZW50cy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQWEsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ25HLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGtFQUFrRSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBR2xGLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBNk52RixNQUFNOzs7Ozs7Ozs7SUE0RUosWUFDUSxxQkFDQSx5QkFDQSxhQUNBLG9CQUNBLHFCQUNBO1FBTEEsd0JBQW1CLEdBQW5CLG1CQUFtQjtRQUNuQiw0QkFBdUIsR0FBdkIsdUJBQXVCO1FBQ3ZCLGdCQUFXLEdBQVgsV0FBVztRQUNYLHVCQUFrQixHQUFsQixrQkFBa0I7UUFDbEIsd0JBQW1CLEdBQW5CLG1CQUFtQjtRQUNuQiw4QkFBeUIsR0FBekIseUJBQXlCO2tDQXpFQztZQUNoQyxNQUFNLEVBQUUsQ0FBQztTQUNWO3NCQUNnQixJQUFJOzRCQUNOLElBQUks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QUF5Qjs7O3dCQW1POUIsS0FBSzt1QkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFBheW1lbnRMaWJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wYXltZW50LWxpYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGF5bWVudFZpZXdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcGF5bWVudC12aWV3L3BheW1lbnQtdmlldy5zZXJ2aWNlJztcbmltcG9ydCB7Q2FzZVRyYW5zYWN0aW9uc1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Nhc2UtdHJhbnNhY3Rpb25zL2Nhc2UtdHJhbnNhY3Rpb25zLnNlcnZpY2UnOyBcbmltcG9ydCB7QnVsa1NjYW5pbmdQYXltZW50U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvYnVsay1zY2FuaW5nLXBheW1lbnQvYnVsay1zY2FuaW5nLXBheW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2hhcmVkL2Vycm9yLWhhbmRsZXIuc2VydmljZSc7XG5pbXBvcnQge0lQYXltZW50R3JvdXB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVBheW1lbnRHcm91cCc7XG5pbXBvcnQge0lCU1BheW1lbnRzfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lCU1BheW1lbnRzJztcbmltcG9ydCB7QWxsb2NhdGVQYXltZW50UmVxdWVzdH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9BbGxvY2F0ZVBheW1lbnRSZXF1ZXN0JztcbmltcG9ydCB7SUFsbG9jYXRpb25QYXltZW50c1JlcXVlc3R9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSUFsbG9jYXRpb25QYXltZW50c1JlcXVlc3QnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYWxsb2NhdGUtcGF5bWVudHMnLFxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJhbGxvY2F0ZS1wYXltZW50c1wiPlxuICA8ZGl2ICpuZ0lmPVwidmlld1N0YXR1cz09PSdtYWluRm9ybScgJiYgaXNUdXJuT2ZmXCI+XG4gICAgPGlucHV0ICNteUlucHV0IHR5cGU9J2hpZGRlbicgaWQ9J2lGcmFtZURyaXZlbkltYWdlVmFsdWUnIHZhbHVlPSdBTExPQ0FURVBBWU1FTlRTJz5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstYnJlYWRjcnVtYnNcIiAqbmdJZj1cInBheW1lbnRSZWZcIj5cbiAgICAgIDxvbCBjbGFzcz1cImdvdnVrLWJyZWFkY3J1bWJzX19saXN0XCI+XG4gICAgICAgIDxsaSBjbGFzcz1cImdvdnVrLWJyZWFkY3J1bWJzX19saXN0LWl0ZW1cIj5cbiAgICAgICAgICA8YSBocmVmPVwiI1wiIChjbGljayk9XCJnb3RvU3VtbWFyeVBhZ2UoJGV2ZW50KVwiIGNsYXNzPVwiZ292dWstYmFjay1saW5rXCI+QmFjazwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvb2w+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLWhlYWRpbmctc2VjdGlvblwiPlxuICAgICAgPGgxIGNsYXNzPVwiZ292dWstaGVhZGluZy14bFwiPkFsbG9jYXRlIHBheW1lbnQgdG8gZmVlIGdyb3VwPC9oMT5cbiAgICAgIDxoMiBjbGFzcz1cImdvdnVrLWhlYWRpbmctbFwiPkFtb3VudCBsZWZ0IHRvIGJlIGFsbG9jYXRlZDpcbiAgICAgICAge3sgdW5BbGxvY2F0ZWRQYXltZW50LmFtb3VudCB8IGN1cnJlbmN5OidHQlAnOidzeW1ib2wtbmFycm93JzonMS4yLTInIH19PC9oMj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicGF5bWVudC1ncm91cC1zZWN0aW9uXCIgKm5nRm9yPVwibGV0IHBheW1lbnRHcm91cCBvZiBwYXltZW50R3JvdXBzXCI+XG4gICAgICA8aDMgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLW1cIj5Hcm91cCByZWZlcmVuY2U6IHt7cGF5bWVudEdyb3VwLnBheW1lbnRfZ3JvdXBfcmVmZXJlbmNlfX08L2gzPlxuICAgICAgPHRhYmxlIGNsYXNzPVwiZ292dWstdGFibGVcIj5cbiAgICAgICAgPHRoZWFkIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRcIj5cbiAgICAgICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCI+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgc2NvcGU9XCJjb2xcIj48L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlclwiIHNjb3BlPVwiY29sXCI+Q29kZTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgc2NvcGU9XCJjb2xcIj5EZXNjcmlwdGlvbjwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgc2NvcGU9XCJjb2xcIj5Wb2x1bWU8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlclwiIHNjb3BlPVwiY29sXCI+RmVlIGFtb3VudDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgc2NvcGU9XCJjb2xcIj5DYWxjdWxhdGVkIGFtb3VudDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgc2NvcGU9XCJjb2xcIj5Hcm91cCBhbW91bnQgb3V0c3RhbmRpbmc8L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGhlYWQ+XG4gICAgICAgIDx0Ym9keSBjbGFzcz1cImdvdnVrLXRhYmxlX19ib2R5XCI+XG4gICAgICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiICpuZ0Zvcj1cImxldCBmZWUgb2YgcGF5bWVudEdyb3VwLmZlZXM7ICBsZXQgaSA9IGluZGV4O1wiPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgZ292dWstdGFibGVfX2NlbGwtLWNvbDEgZ292dWstdGFibGVfX2N1c3RvbS0tY29sMVwiXG4gICAgICAgICAgICAgIFthdHRyLnJvd3NwYW5dPVwicGF5bWVudEdyb3VwLmZlZXMubGVuZ3RoXCIgKm5nSWY9XCJpPT0wXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdWx0aXBsZS1jaG9pY2VcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJ1bnBhaWVkRmVlLXt7aX19XCIgbmFtZT1cInVuYXNzaWduZWRSZWNvcmRcIiB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkUGF5bWVudEdyb3VwKHBheW1lbnRHcm91cClcIiAvPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ1bnBhaWVkRmVlLXt7aX19XCI+PC9sYWJlbD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgZ292dWstdGFibGVfX2NlbGwtLWNvbDFcIj57e2ZlZS5jb2RlfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgZ292dWstdGFibGVfX2NlbGwtLWNvbDJcIj4ge3tmZWUuZGVzY3JpcHRpb259fSA8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgZ292dWstdGFibGVfX2NlbGwtLWNvbDNcIj4ge3tmZWUudm9sdW1lPyBmZWUudm9sdW1lIDogJy0nfX0gPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsIGdvdnVrLXRhYmxlX19jZWxsLS1jb2w0XCI+XG4gICAgICAgICAgICAgIHt7IGZlZS5mZWVfYW1vdW50IHwgY3VycmVuY3k6J0dCUCc6J3N5bWJvbC1uYXJyb3cnOicxLjItMicgfX0gPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsIGdvdnVrLXRhYmxlX19jZWxsLS1jb2w1XCI+XG4gICAgICAgICAgICAgIHt7ZmVlLmNhbGN1bGF0ZWRfYW1vdW50IHwgY3VycmVuY3k6J0dCUCc6J3N5bWJvbC1uYXJyb3cnOicxLjItMicgfX0gPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsIGdvdnVrLXRhYmxlX19jZWxsLS1jb2w2IGdvdnVrLXRhYmxlX19jdXN0b20tLWNvbDZcIlxuICAgICAgICAgICAgICBbYXR0ci5yb3dzcGFuXT1cInBheW1lbnRHcm91cC5mZWVzLmxlbmd0aFwiICpuZ0lmPVwiaT09MFwiPlxuICAgICAgICAgICAgICB7e2dldEdyb3VwT3V0c3RhbmRpbmdBbW91bnQocGF5bWVudEdyb3VwKSB8IGN1cnJlbmN5OidHQlAnOidzeW1ib2wtbmFycm93JzonMS4yLTInIH19IDwvdGQ+XG5cbiAgICAgICAgICA8L3RyPlxuXG4gICAgICAgIDwvdGJvZHk+XG4gICAgICAgIDx0Ym9keSBjbGFzcz1cImdvdnVrLXRhYmxlX19ib2R5XCIgKm5nSWY9XCJwYXltZW50R3JvdXAuZmVlcy5sZW5ndGg9PTBcIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiIGNvbHNwYW49XCI2XCI+Tm8gcGF5bWVudHMgcmVjb3JkZWQ8L3RkPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstYnV0dG9uLWdyb3VwLWFsbG9jYXRlXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ1dHRvbiBnb3Z1ay0hLW1hcmdpbi1yaWdodC0xXCIgW2Rpc2FibGVkXT1cImlzQ29udGludWVCdXR0b25kaXNhYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJzYXZlQW5kQ29udGludWUoKVwiPlxuICAgICAgICBDb250aW51ZVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ1dHRvbiBnb3Z1ay1idXR0b24tLXNlY29uZGFyeVwiIChjbGljayk9XCJnb3RvQ2FzZXRyYW5zYXRpb25QYWdlKClcIj5cbiAgICAgICAgQ2FuY2VsXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIih2aWV3U3RhdHVzID09PSAnbWFpbkZvcm0nICYmICFpc1R1cm5PZmYpIHx8IHZpZXdTdGF0dXMgPT09ICdhbGxvY2F0ZVBheW1lbnRDb25maXJtYXRpb24nXCI+XG4gICAgPGNjcGF5LWVycm9yLWJhbm5lciAqbmdJZj1cImVycm9yTWVzc2FnZS5zaG93RXJyb3JcIiBbZXJyb3JNZXNzYWdlXT1cImVycm9yTWVzc2FnZVwiPjwvY2NwYXktZXJyb3ItYmFubmVyPlxuICAgIDxpbnB1dCAjbXlJbnB1dCB0eXBlPSdoaWRkZW4nIGlkPSdpRnJhbWVEcml2ZW5JbWFnZVZhbHVlJyB2YWx1ZT0ne3tmZWVkYmFja1VybExhYmVsfX0nPlxuICAgIDxoMSBjbGFzcz1cImdvdnVrLWhlYWRpbmcteGxcIj5Db25maXJtIGFzc29jaWF0aW9uPC9oMT5cbiAgICA8aDIgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLWwgZ292dWstaGVhZGluZy1sLS1jdXN0b21cIj5cbiAgICAgIEFtb3VudCB0byBiZSBhbGxvY2F0ZWQ6IHt7YW1vdW50Rm9yQWxsb2NhdGlvbiB8IGN1cnJlbmN5OidHQlAnOidzeW1ib2wtbmFycm93JzonMS4yLTInfX1cbiAgICA8L2gyPlxuICAgIDxkaXYgY2xhc3M9XCJwYXltZW50LWdyb3VwLXNlY3Rpb25cIiAqbmdJZj1cInBheW1lbnRHcm91cFwiPlxuICAgICAgPGgzIGNsYXNzPVwiZ292dWstaGVhZGluZy1tLS1jdXN0b21cIiAqbmdJZj1cImlzVHVybk9mZlwiPkdyb3VwIHJlZmVyZW5jZToge3twYXltZW50R3JvdXAucGF5bWVudF9ncm91cF9yZWZlcmVuY2V9fVxuICAgICAgPC9oMz5cbiAgICAgIDx0YWJsZSBjbGFzcz1cImdvdnVrLXRhYmxlXCI+XG4gICAgICAgIDx0aGVhZCBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkXCI+XG4gICAgICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlclwiIHNjb3BlPVwiY29sXCI+Q29kZTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgc2NvcGU9XCJjb2xcIj5EZXNjcmlwdGlvbjwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgc2NvcGU9XCJjb2xcIj5Wb2x1bWU8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlclwiIHNjb3BlPVwiY29sXCI+RmVlIGFtb3VudDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgc2NvcGU9XCJjb2xcIj5DYWxjdWxhdGVkIGFtb3VudDwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgc2NvcGU9XCJjb2xcIj5BbW91bnQgRHVlPC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHkgY2xhc3M9XCJnb3Z1ay10YWJsZV9fYm9keVwiPlxuICAgICAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIiAqbmdGb3I9XCJsZXQgZmVlIG9mIHBheW1lbnRHcm91cC5mZWVzOyBsZXQgaSA9IGluZGV4O1wiPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgZ292dWstdGFibGVfX2NlbGwtLWNvbDFcIj57e2ZlZS5jb2RlfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgZ292dWstdGFibGVfX2NlbGwtLWNvbDJcIj4ge3tmZWUuZGVzY3JpcHRpb259fSA8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgZ292dWstdGFibGVfX2NlbGwtLWNvbDNcIj4ge3tmZWUudm9sdW1lPyBmZWUudm9sdW1lIDogJy0nfX0gPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsIGdvdnVrLXRhYmxlX19jZWxsLS1jb2w0XCI+XG4gICAgICAgICAgICAgIHt7IGZlZS5mZWVfYW1vdW50IHwgY3VycmVuY3k6J0dCUCc6J3N5bWJvbC1uYXJyb3cnOicxLjItMicgfX0gPC90ZD5cbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsIGdvdnVrLXRhYmxlX19jZWxsLS1jb2w1XCI+XG4gICAgICAgICAgICAgIHt7ZmVlLmNhbGN1bGF0ZWRfYW1vdW50IHwgY3VycmVuY3k6J0dCUCc6J3N5bWJvbC1uYXJyb3cnOicxLjItMid9fSA8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGwgZ292dWstdGFibGVfX2NlbGwtLWNvbDZcIiBbYXR0ci5yb3dzcGFuXT1cInBheW1lbnRHcm91cC5mZWVzLmxlbmd0aFwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiaT09MFwiPiB7e2FmdGVyRmVlQWxsb2NhdGVPdXRzdGFuZGluZyB8IGN1cnJlbmN5OidHQlAnOidzeW1ib2wtbmFycm93JzonMS4yLTInfX0gPC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8dGJvZHkgY2xhc3M9XCJnb3Z1ay10YWJsZV9fYm9keVwiICpuZ0lmPVwicGF5bWVudEdyb3VwLmZlZXMubGVuZ3RoID09IDBcIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiIGNvbHNwYW49XCI2XCI+Tm8gcGF5bWVudHMgcmVjb3JkZWQ8L3RkPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0XCIgKm5nSWY9XCJpc1JlbWFpbmluZ0Ftb3VudEd0WmVybyB8fCBpc1JlbWFpbmluZ0Ftb3VudEx0WmVybyB8fCByZW1haW5pbmdBbW91bnQgPT09IDBcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+ITwvc3Bhbj5cbiAgICAgIDxzdHJvbmcgY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX3RleHQgZ292dWstd2FybmluZy10ZXh0X19jdXN0b21cIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX2Fzc2lzdGl2ZVwiPldhcm5pbmc8L3NwYW4+XG4gICAgICAgIHt7cGF5bWVudFNlY3Rpb25MYWJlbC50aXRsZX19IHt7IHJlbWFpbmluZ0Ftb3VudCB8IGN1cnJlbmN5OidHQlAnOidzeW1ib2wtbmFycm93JzonMS4yLTInIH19XG4gICAgICA8L3N0cm9uZz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiICpuZ0lmPVwiaXNSZW1haW5pbmdBbW91bnRHdFplcm8gfHwgaXNSZW1haW5pbmdBbW91bnRMdFplcm9cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCI+XG4gICAgICAgIDxmaWVsZHNldCBjbGFzcz1cImdvdnVrLWZpZWxkc2V0XCIgYXJpYS1kZXNjcmliZWRieT1cImhvdy1jb250YWN0ZWQtY29uZGl0aW9uYWwtaGludFwiPlxuICAgICAgICAgIDxzcGFuIGlkPVwiaG93LWNvbnRhY3RlZC1jb25kaXRpb25hbC1oaW50XCIgY2xhc3M9XCJnb3Z1ay1oaW50XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaW5saW5lLWVycm9yLW1lc3NhZ2UnOiBwYXltZW50UmVhc29uSGFzRXJyb3J9XCI+XG4gICAgICAgICAgICB7e3BheW1lbnRTZWN0aW9uTGFiZWwucmVhc29ufX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwicGF5bWVudFJlYXNvbkhhc0Vycm9yID8gJ2dvdnVrLXJhZGlvcyBnb3Z1ay1yYWRpb3MtLWNvbmRpdGlvbmFsIGZvcm0tZ3JvdXAtZXJyb3InIDogJ2dvdnVrLXJhZGlvcyBnb3Z1ay1yYWRpb3MtLWNvbmRpdGlvbmFsJ1wiXG4gICAgICAgICAgICBkYXRhLW1vZHVsZT1cImdvdnVrLXJhZGlvc1wiICpuZ0lmPVwiaXNSZW1haW5pbmdBbW91bnRHdFplcm9cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2l0ZW1cIiAqbmdGb3I9XCJsZXQgcmVhc29uIG9mIHJlYXNvbkxpc3Qub3ZlclBheW1lbnQgfCBrZXlWYWx1ZVwiPlxuICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2lucHV0XCIgaWQ9XCJ7e3JlYXNvbi5rZXl9fVwiIG5hbWU9XCJwYXltZW50UmVhc29uXCIgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInBheW1lbnRSZWFzb25cIiB2YWx1ZT17e3JlYXNvbi52YWx1ZX19PlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1yYWRpb3NfX2xhYmVsIGdvdnVrLWZvbnRfX2N1c3RvbVwiIGZvcj1cImhvdy1jb250YWN0ZWQtY29uZGl0aW9uYWxcIj5cbiAgICAgICAgICAgICAgICB7e3JlYXNvbi52YWx1ZX19XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBbbmdDbGFzc109XCJwYXltZW50UmVhc29uSGFzRXJyb3IgPyAnZ292dWstcmFkaW9zIGdvdnVrLXJhZGlvcy0tY29uZGl0aW9uYWwgZm9ybS1ncm91cC1lcnJvcicgOiAnZ292dWstcmFkaW9zIGdvdnVrLXJhZGlvcy0tY29uZGl0aW9uYWwnXCJcbiAgICAgICAgICAgIGRhdGEtbW9kdWxlPVwiZ292dWstcmFkaW9zXCIgKm5nSWY9XCJpc1JlbWFpbmluZ0Ftb3VudEx0WmVyb1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXJhZGlvc19faXRlbVwiICpuZ0Zvcj1cImxldCByZWFzb24gb2YgcmVhc29uTGlzdC5zaG9ydEZhbGwgfCBrZXlWYWx1ZVwiPlxuICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2lucHV0XCIgaWQ9XCJ7e3JlYXNvbi5rZXl9fVwiIG5hbWU9XCJwYXltZW50UmVhc29uXCIgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInBheW1lbnRSZWFzb25cIiB2YWx1ZT17e3JlYXNvbi52YWx1ZX19PlxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1yYWRpb3NfX2xhYmVsIGdvdnVrLWZvbnRfX2N1c3RvbVwiIGZvcj1cImhvdy1jb250YWN0ZWQtY29uZGl0aW9uYWxcIj5cbiAgICAgICAgICAgICAgICB7e3JlYXNvbi52YWx1ZX19XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9maWVsZHNldD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIj5cbiAgICAgICAgPGZpZWxkc2V0IGNsYXNzPVwiZ292dWstZmllbGRzZXRcIiBhcmlhLWRlc2NyaWJlZGJ5PVwiaG93LWNvbnRhY3RlZC1jb25kaXRpb25hbC1oaW50XCI+XG4gICAgICAgICAgPHNwYW4gaWQ9XCJob3ctY29udGFjdGVkLWNvbmRpdGlvbmFsLWhpbnRcIiBjbGFzcz1cImdvdnVrLWhpbnRcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieydpbmxpbmUtZXJyb3ItbWVzc2FnZSc6IHBheW1lbnRFeHBsYW5hdGlvbkhhc0Vycm9yfVwiPlxuICAgICAgICAgICAgUHJvdmlkZSBhbiBleHBsYW5hdG9yeSBub3RlXG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInBheW1lbnRFeHBsYW5hdGlvbkhhc0Vycm9yID8gJ2dvdnVrLXJhZGlvcyBnb3Z1ay1yYWRpb3MtLWNvbmRpdGlvbmFsIGZvcm0tZ3JvdXAtZXJyb3InIDogJ2dvdnVrLXJhZGlvcyBnb3Z1ay1yYWRpb3MtLWNvbmRpdGlvbmFsJ1wiXG4gICAgICAgICAgICBkYXRhLW1vZHVsZT1cImdvdnVrLXJhZGlvc1wiICpuZ0lmPVwiaXNSZW1haW5pbmdBbW91bnRHdFplcm9cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2l0ZW1cIiAqbmdGb3I9XCJsZXQgZXhwbGFuYXRpb24gb2YgZXhwbGFuYXRpb25MaXN0Lm92ZXJQYXltZW50IHwga2V5VmFsdWVcIj5cbiAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstcmFkaW9zX19pbnB1dFwiIGlkPVwie3tleHBsYW5hdGlvbi5rZXl9fVwiIG5hbWU9XCJwYXltZW50RXhwbGFuYXRpb25cIiB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicGF5bWVudEV4cGxhbmF0aW9uXCIgdmFsdWU9e3tleHBsYW5hdGlvbi52YWx1ZX19XG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFJhZGlvQnV0dG9uKGV4cGxhbmF0aW9uLmtleSwgJ2V4cGxhbmF0aW9uJylcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstcmFkaW9zX19sYWJlbCBnb3Z1ay1mb250X19jdXN0b21cIiBmb3I9XCJob3ctY29udGFjdGVkLWNvbmRpdGlvbmFsXCI+XG4gICAgICAgICAgICAgICAge3tleHBsYW5hdGlvbi52YWx1ZX19XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInBheW1lbnRFeHBsYW5hdGlvbkhhc0Vycm9yID8gJ2dvdnVrLXJhZGlvcyBnb3Z1ay1yYWRpb3MtLWNvbmRpdGlvbmFsIGZvcm0tZ3JvdXAtZXJyb3InIDogJ2dvdnVrLXJhZGlvcyBnb3Z1ay1yYWRpb3MtLWNvbmRpdGlvbmFsJ1wiXG4gICAgICAgICAgICBkYXRhLW1vZHVsZT1cImdvdnVrLXJhZGlvc1wiICpuZ0lmPVwiaXNSZW1haW5pbmdBbW91bnRMdFplcm9cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2l0ZW1cIiAqbmdGb3I9XCJsZXQgZXhwbGFuYXRpb24gb2YgZXhwbGFuYXRpb25MaXN0LnNob3J0RmFsbCB8IGtleVZhbHVlXCI+XG4gICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLXJhZGlvc19faW5wdXRcIiBpZD1cInt7ZXhwbGFuYXRpb24ua2V5fX1cIiBuYW1lPVwicGF5bWVudEV4cGxhbmF0aW9uXCIgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInBheW1lbnRFeHBsYW5hdGlvblwiIHZhbHVlPXt7ZXhwbGFuYXRpb24udmFsdWV9fVxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RSYWRpb0J1dHRvbihleHBsYW5hdGlvbi5rZXksICdleHBsYW5hdGlvbicpXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLXJhZGlvc19fbGFiZWwgZ292dWstZm9udF9fY3VzdG9tXCIgZm9yPVwiaG93LWNvbnRhY3RlZC1jb25kaXRpb25hbFwiPlxuICAgICAgICAgICAgICAgIHt7ZXhwbGFuYXRpb24udmFsdWV9fVxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwib3ZlclVuZGVyUGF5bWVudEZvcm1cIiBub3ZhbGlkYXRlPlxuICAgICAgPGRpdlxuICAgICAgICBbbmdDbGFzc109XCJpc01vcmVEZXRhaWxzQm94SGlkZSA/ICdnb3Z1ay1yYWRpb3NfX2NvbmRpdGlvbmFsIGdvdnVrLXJhZGlvc19fY29uZGl0aW9uYWwtLWhpZGRlbicgOiBpc1BheW1lbnREZXRhaWxzRW1wdHkgfHwgaXNQYXltZW50RGV0YWlsc0ludmFsaWQgfHwgcGF5bWVudERldGFpbHNNaW5IYXNFcnJvciB8fCBwYXltZW50RGV0YWlsc01heEhhc0Vycm9yID8gJ2dvdnVrLXJhZGlvc19fY29uZGl0aW9uYWwgaW5saW5lLWVycm9yLWJvcmRlcicgOiAnZ292dWstcmFkaW9zX19jb25kaXRpb25hbCdcIlxuICAgICAgICBpZD1cImNvbmRpdGlvbmFsLWhvdy1jb250YWN0ZWQtY29uZGl0aW9uYWwtM1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiPlxuICAgICAgICAgIDxzcGFuIGlkPVwibW9yZS1kZXRhaWwtaGludFwiIGNsYXNzPVwiZ292dWstaGludCBnb3Z1ay1mb250X19jdXN0b21cIj5cbiAgICAgICAgICAgIFBsZWFzZSBlbnRlciBkZXRhaWxzXG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cImdvdnVrLXRleHRhcmVhXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaW5saW5lLWVycm9yLWNsYXNzJzogaXNQYXltZW50RGV0YWlsc0VtcHR5IHx8IGlzUGF5bWVudERldGFpbHNJbnZhbGlkIHx8IHBheW1lbnREZXRhaWxzTWluSGFzRXJyb3IgfHwgcGF5bWVudERldGFpbHNNYXhIYXNFcnJvcn1cIlxuICAgICAgICAgICAgaWQ9XCJtb3JlRGV0YWlsc1wiIG5hbWU9XCJtb3JlRGV0YWlsc1wiIHJvd3M9XCI1XCIgZm9ybUNvbnRyb2xOYW1lPVwibW9yZURldGFpbHNcIj5cbiAgICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICAgIDxwIGNsYXNzPVwiaW5saW5lLWVycm9yLW1lc3NhZ2VcIlxuICAgICAgICAgICAgKm5nSWY9XCJpc1BheW1lbnREZXRhaWxzRW1wdHkgfHwgaXNQYXltZW50RGV0YWlsc0ludmFsaWQgfHwgcGF5bWVudERldGFpbHNNaW5IYXNFcnJvciB8fCBwYXltZW50RGV0YWlsc01heEhhc0Vycm9yXCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzUGF5bWVudERldGFpbHNFbXB0eVwiPkVudGVyIGEgZXhwbGFuYXRpb248L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzUGF5bWVudERldGFpbHNJbnZhbGlkXCI+RW50ZXIgYSB2YWxpZCBleHBsYW5hdGlvbjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicGF5bWVudERldGFpbHNNaW5IYXNFcnJvclwiPkV4cGxhbmF0aW9uIHNob3VsZCBiZSBhdCBsZWFzdCAzIGNoYXJhY3RlcnMuPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJwYXltZW50RGV0YWlsc01heEhhc0Vycm9yXCI+RXhwbGFuYXRpb24gc2hvdWxkIGJlIDI1NSBjaGFyYWN0ZXJzIG9yIHVuZGVyLjwvc3Bhbj5cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstYnV0dG9uLS1ncm91cFwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBbZGlzYWJsZWRdPVwiaXNDb25maXJtQnV0dG9uZGlzYWJsZWRcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cImlzQ29uZmlybUJ1dHRvbmRpc2FibGVkID8gJ2J1dHRvbiBidXR0b24tLWRpc2FibGVkJyA6ICdidXR0b24nXCJcbiAgICAgICAgICAoY2xpY2spPVwiY29uZmlybUFsbG9jYXRlUGF5ZW1lbnQoKVwiPlxuICAgICAgICAgIENvbmZpcm1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnV0dG9uIGdvdnVrLWJ1dHRvbi0tc2Vjb25kYXJ5XCIgKGNsaWNrKT1cImNhbmNlbEFsbG9jYXRlUGF5bWVudCgkZXZlbnQpXCI+XG4gICAgICAgICAgQ2FuY2VsXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PmAsXG4gIHN0eWxlczogW2AuYWxsb2NhdGUtcGF5bWVudHN7bWFyZ2luOjIwcHggMH0uYWxsb2NhdGUtcGF5bWVudHMgLmdvdnVrLXRhYmxlX19jZWxsLS1jb2wxLC5hbGxvY2F0ZS1wYXltZW50cyAuZ292dWstdGFibGVfX2NlbGwtLWNvbDN7d2lkdGg6MTAlfS5hbGxvY2F0ZS1wYXltZW50cyAuZ292dWstdGFibGVfX2NlbGwtLWNvbDIsLmFsbG9jYXRlLXBheW1lbnRzIC5nb3Z1ay10YWJsZV9fY2VsbC0tY29sNnt3aWR0aDoyNSV9LmFsbG9jYXRlLXBheW1lbnRzIC5nb3Z1ay10YWJsZV9fY2VsbC0tY29sNCwuYWxsb2NhdGUtcGF5bWVudHMgLmdvdnVrLXRhYmxlX19jZWxsLS1jb2w1e3dpZHRoOjE1JX0uYWxsb2NhdGUtcGF5bWVudHMgLmdvdnVrLWJ1dHRvbi1ncm91cC1hbGxvY2F0ZXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmFsbG9jYXRlLXBheW1lbnRzIC5nb3Z1ay1idXR0b24tLXNlY29uZGFyeXttYXJnaW4tbGVmdDoxMHB4O2JhY2tncm91bmQtY29sb3I6I2IzYjhiZGYyfS5hbGxvY2F0ZS1wYXltZW50cyAuZ292dWstY3VzdG9tLXdhcm5pbmdfX21lc3NhZ2V7Zm9udC1zaXplOjMwcHg7cG9zaXRpb246cmVsYXRpdmU7dG9wOjEycHg7Zm9udC13ZWlnaHQ6NzAwfS5hbGxvY2F0ZS1wYXltZW50cyAuZ292dWstd2FybmluZy10ZXh0LWN1c3RvbXttYXJnaW4tYm90dG9tOjAhaW1wb3J0YW50O3BhZGRpbmc6MTBweCAwIDVweH0uYWxsb2NhdGUtcGF5bWVudHMgLmdvdnVrLXRhYmxlX19jdXN0b20tLWNvbDF7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbToyMHB4O3BhZGRpbmctbGVmdDoxNXB4fS5hbGxvY2F0ZS1wYXltZW50cyAuZ292dWstdGFibGVfX2N1c3RvbS0tY29sNnt0ZXh0LWFsaWduOmNlbnRlcn0uYWxsb2NhdGUtcGF5bWVudHMgLmdvdnVrLWxpc3RfX2N1c3RvbXtwYWRkaW5nLWxlZnQ6MjBweH0uYWxsb2NhdGUtcGF5bWVudHMgLmdvdnVrLWZvbnRfX2N1c3RvbSwuYWxsb2NhdGUtcGF5bWVudHMgLmdvdnVrLWhlYWRpbmctbS0tY3VzdG9tLC5hbGxvY2F0ZS1wYXltZW50cyAuZ292dWstaGludCwuYWxsb2NhdGUtcGF5bWVudHMgLmdvdnVrLWxhYmVsLS1tLC5hbGxvY2F0ZS1wYXltZW50cyAuZ292dWstbGlzdF9fY3VzdG9tLC5hbGxvY2F0ZS1wYXltZW50cyAuZ292dWstcmFkaW9zX19pdGVtLC5hbGxvY2F0ZS1wYXltZW50cyAuZ292dWstd2FybmluZy10ZXh0X19jdXN0b217Zm9udC1zaXplOjE5cHh9LmFsbG9jYXRlLXBheW1lbnRzIC5nb3Z1ay1yYWRpb3NfX2NvbmRpdGlvbmFsLS1oaWRkZW57ZGlzcGxheTpub25lfS5hbGxvY2F0ZS1wYXltZW50cyAuZm9ybS1ncm91cC1lcnJvcntib3JkZXItbGVmdDo1cHggc29saWQgI2IxMGUxZTtwYWRkaW5nLWxlZnQ6MTVweH0uYWxsb2NhdGUtcGF5bWVudHMgLmlubGluZS1lcnJvci1jbGFzc3tvdXRsaW5lOiNhNzE0MTQgc29saWQgM3B4O291dGxpbmUtb2Zmc2V0OjB9LmFsbG9jYXRlLXBheW1lbnRzIC5pbmxpbmUtZXJyb3ItbWVzc2FnZXtjb2xvcjojYTcxNDE0O2ZvbnQtd2VpZ2h0OjcwMDttYXJnaW4tdG9wOjEwcHh9LmFsbG9jYXRlLXBheW1lbnRzIC5pbmxpbmUtZXJyb3ItYm9yZGVye2JvcmRlci1jb2xvcjojYTcxNDE0fWBdXG59KVxuZXhwb3J0IGNsYXNzIEFsbG9jYXRlUGF5bWVudHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBpc1R1cm5PZmY6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGNhc2VUeXBlOiBzdHJpbmc7XG5cbiAgb3ZlclVuZGVyUGF5bWVudEZvcm06IEZvcm1Hcm91cDtcbiAgdmlld1N0YXR1czogc3RyaW5nO1xuICBjY2RDYXNlTnVtYmVyOiBzdHJpbmc7XG4gIGJzcGF5bWVudGRjbjogc3RyaW5nO1xuICBmZWVkYmFja1VybExhYmVsOnN0cmluZztcbiAgdW5BbGxvY2F0ZWRQYXltZW50OiBJQlNQYXltZW50cyA9IHtcbiAgICBhbW91bnQ6IDBcbiAgfTtcbiAgc2l0ZUlEOiBzdHJpbmcgPSBudWxsO1xuICBlcnJvck1lc3NhZ2UgPSB0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuZ2V0U2VydmVyRXJyb3JNZXNzYWdlKGZhbHNlKTtcbiAgcGF5bWVudEdyb3VwOiBJUGF5bWVudEdyb3VwO1xuICBwYXltZW50R3JvdXBzOiBJUGF5bWVudEdyb3VwW10gPSBbXTtcdFxuICByZW1haW5pbmdBbW91bnQ6IG51bWJlcjtcbiAgaXNSZW1haW5pbmdBbW91bnRHdFplcm86IGJvb2xlYW47XG4gIGlzTW9yZURldGFpbHNCb3hIaWRlOiBib29sZWFuICA9IHRydWU7XG4gIGlzUmVtYWluaW5nQW1vdW50THRaZXJvOiBib29sZWFuO1xuICBhZnRlckZlZUFsbG9jYXRlT3V0c3RhbmRpbmc6IG51bWJlcjtcbiAgYW1vdW50Rm9yQWxsb2NhdGlvbjogbnVtYmVyO1xuICBpc0NvbmZpcm1CdXR0b25kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0NvbnRpbnVlQnV0dG9uZGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBvdGhlclBheW1lbnRFeHBsYW5hdGlvbjogc3RyaW5nID0gbnVsbDtcbiAgc2VsZWN0ZWRPcHRpb246IHN0cmluZyA9IG51bGw7XG4gIGlzRmVlQW1vdW50WmVybzogYm9vbGVhbiA9IGZhbHNlO1x0XG5cbiAgcGF5bWVudFJlYXNvbkhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIHBheW1lbnRFeHBsYW5hdGlvbkhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUGF5bWVudERldGFpbHNFbXB0eTogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1BheW1lbnREZXRhaWxzSW52YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwYXltZW50RGV0YWlsc01pbkhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIHBheW1lbnREZXRhaWxzTWF4SGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNVc2VyTmFtZUVtcHR5OiBib29sZWFuID0gZmFsc2U7XG4gIGlzVXNlck5hbWVJbnZhbGlkOiBib29sZWFuID0gZmFsc2U7XG4gIGNjZFJlZmVyZW5jZTogc3RyaW5nID0gbnVsbDtcbiAgZXhjZXB0aW9uUmVmZXJlbmNlOiBzdHJpbmcgPSBudWxsO1xuICBwYXltZW50UmVhc29uOiBzdHJpbmcgPSBudWxsO1xuICBwYXltZW50RXhwbGFuYXRpb246IHN0cmluZyA9IG51bGw7XG4gIHVzZXJOYW1lOiBzdHJpbmcgPSBudWxsO1xuICBwYXltZW50U2VjdGlvbkxhYmVsOiBhbnk7XG4gIHBheW1lbnRSZWY6IHN0cmluZyA9IG51bGw7XG4gIGlzU3RyYXRlZ2ljRml4RW5hYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgY29va2llVXNlck5hbWU6IHN0cmluZ1tdID0gW107XG4gIGVuQ29va2llVXNlck5hbWU6IGFueTtcbiAgdXNlck5hbWVGaWVsZDogc3RyaW5nID0gbnVsbDtcblxuICByZWFzb25MaXN0OiB7IFtrZXk6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfT0ge1xuICAgIG92ZXJQYXltZW50OiB7XG4gICAgICBod2ZSZXdhcmQ6ICdIZWxwIHdpdGggRmVlcyAoSFdGKSBhd2FyZGVkLiAgUGxlYXNlIGluY2x1ZGUgdGhlIEhXRiByZWZlcmVuY2UgbnVtYmVyIGluIHRoZSBleHBsYW5hdG9yeSBub3RlJyxcbiAgICAgIHdyb25nRmVlOiAnSW5jb3JyZWN0IHBheW1lbnQgcmVjZWl2ZWQnLFxuICAgICAgbm90SXNzdWVDYXNlOiAnVW5hYmxlIHRvIGlzc3VlIGNhc2UnLFxuICAgICAgb3RoZXJEZWR1Y3Rpb246ICdPdGhlcidcbiAgICB9LFxuICAgIHNob3J0RmFsbDoge1xuICAgICAgaGVscFdpdGhGZWU6ICdIZWxwIHdpdGggRmVlcyAoSFdGKSBhcHBsaWNhdGlvbiBkZWNsaW5lZCcsXG4gICAgICB3cm9uZ0ZlZTogJ0luY29ycmVjdCBwYXltZW50IHJlY2VpdmVkJyxcbiAgICAgIG90aGVyOiAnT3RoZXInXG4gICAgfVxuICB9XG4gIGV4cGxhbmF0aW9uTGlzdCA9IHtcbiAgICBvdmVyUGF5bWVudDoge1xuICAgICAgcmVmZXJSZWZ1bmQ6ICdEZXRhaWxzIGluIGNhc2Ugbm90ZXMuICBSZWZ1bmQgZHVlJyxcbiAgICAgIG5vUmVmdW5kOiAnRGV0YWlscyBpbiBjYXNlIG5vdGVzLiBObyByZWZ1bmQgZHVlJyxcbiAgICAgIG5vQ2FzZTogJ05vIGNhc2UgY3JlYXRlZC4gIFJlZnVuZCBkdWUnLFxuICAgICAgb3RoZXI6ICdPdGhlcidcbiAgICB9LFxuICAgIHNob3J0RmFsbDoge1xuICAgICAgaG9sZENhc2U6ICdJIGhhdmUgcHV0IGEgc3RvcCBvbiB0aGUgY2FzZSBhbmQgY29udGFjdGVkIHRoZSBhcHBsaWNhbnQgcmVxdWVzdGluZyB0aGUgYmFsYW5jZSBvZiBwYXltZW50JyxcbiAgICAgIGhlbGRDYXNlOiAnSSBoYXZlIHB1dCBhIHN0b3Agb24gdGhlIGNhc2UuICBUaGUgYXBwbGljYW50IG5lZWRzIHRvIGJlIGNvbnRhY3RlZCB0byByZXF1ZXN0IHRoZSBiYWxhbmNlIG9mIHBheW1lbnQnLFxuICAgICAgb3RoZXI6ICdPdGhlcidcbiAgICB9XG4gIH1cblxuXG4gIGNvbnN0cnVjdG9yKFxuICBwcml2YXRlIGVycm9ySGFuZGxlclNlcnZpY2U6IEVycm9ySGFuZGxlclNlcnZpY2UsXG4gIHByaXZhdGUgY2FzZVRyYW5zYWN0aW9uc1NlcnZpY2U6IENhc2VUcmFuc2FjdGlvbnNTZXJ2aWNlLFxuICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgcHJpdmF0ZSBwYXltZW50Vmlld1NlcnZpY2U6IFBheW1lbnRWaWV3U2VydmljZSxcbiAgcHJpdmF0ZSBwYXltZW50TGliQ29tcG9uZW50OiBQYXltZW50TGliQ29tcG9uZW50LFxuICBwcml2YXRlIGJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2U6IEJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMudmlld1N0YXR1cyA9ICdtYWluRm9ybSc7XG4gICAgdGhpcy5jY2RDYXNlTnVtYmVyID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LkNDRF9DQVNFX05VTUJFUjtcbiAgICB0aGlzLmJzcGF5bWVudGRjbiA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5ic3BheW1lbnRkY247XG4gICAgdGhpcy5wYXltZW50UmVmID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBheW1lbnRHcm91cFJlZmVyZW5jZTtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LlNFTEVDVEVEX09QVElPTjtcbiAgICB0aGlzLmlzU3RyYXRlZ2ljRml4RW5hYmxlID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTU0ZFTkFCTEU7XG4gICAgdGhpcy5pc1R1cm5PZmYgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNUdXJuT2ZmO1xuICAgIHRoaXMub3ZlclVuZGVyUGF5bWVudEZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIG1vcmVEZXRhaWxzOiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIFZhbGlkYXRvcnMubWluTGVuZ3RoKDMpLFxuICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCgyNTUpLFxuICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oJ14oW2EtekEtWjAtOVxcXFxzLFxcXFwuXSopJCcpXG4gICAgICBdKSksXG4gICAgICB1c2VyTmFtZTogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBWYWxpZGF0b3JzLnBhdHRlcm4oJ14oW2EtekEtWjAtOVxcXFxzXSopJCcpXG4gICAgICBdKSksXG4gICAgfSk7XG4gICAgdGhpcy5nZXRVbmFzc2lnbmVkUGF5bWVudCgpO1xuICB9XG4gIGdldEdyb3VwT3V0c3RhbmRpbmdBbW91bnQocGF5bWVudEdyb3VwOiBJUGF5bWVudEdyb3VwKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5idWxrU2NhbmluZ1BheW1lbnRTZXJ2aWNlLmNhbGN1bGF0ZU91dFN0YW5kaW5nQW1vdW50KHBheW1lbnRHcm91cCk7XG4gIH1cblxuICBnZXRQYXltZW50R3JvdXBEZXRhaWxzKCl7XG5cbiAgICBpZighdGhpcy5pc1R1cm5PZmYpe1xuICAgICAgdGhpcy5wYXltZW50Vmlld1NlcnZpY2UuZ2V0UGF5bWVudEdyb3VwRGV0YWlscyh0aGlzLnBheW1lbnRSZWYpLnN1YnNjcmliZShcbiAgICAgICAgcGF5bWVudEdyb3VwID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5nZXRTZXJ2ZXJFcnJvck1lc3NhZ2UoZmFsc2UpO1xuICAgICAgICAgIHRoaXMucGF5bWVudEdyb3VwICA9IHBheW1lbnRHcm91cDtcbiAgICAgICAgICB0aGlzLnNhdmVBbmRDb250aW51ZSgpO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmdldFNlcnZlckVycm9yTWVzc2FnZSh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9ZWxzZSB7XG4gICAgICB0aGlzLmNhc2VUcmFuc2FjdGlvbnNTZXJ2aWNlLmdldFBheW1lbnRHcm91cHModGhpcy5jY2RDYXNlTnVtYmVyKS5zdWJzY3JpYmUoXG4gICAgICAgIHBheW1lbnRHcm91cHMgPT4ge1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmdldFNlcnZlckVycm9yTWVzc2FnZShmYWxzZSk7XG4gICAgICAgIHRoaXMucGF5bWVudEdyb3VwcyA9IHBheW1lbnRHcm91cHNbJ3BheW1lbnRfZ3JvdXBzJ10uZmlsdGVyKHBheW1lbnRHcm91cCA9PiB7XG4gICAgICAgICAgICBwYXltZW50R3JvdXAuZmVlcy5mb3JFYWNoKGZlZSA9PiB7XG4gICAgICAgICAgICAgIGlmKGZlZS5jYWxjdWxhdGVkX2Ftb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNGZWVBbW91bnRaZXJvID0gdHJ1ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGxldCBmc3RDb24gPSB0aGlzLmdldEdyb3VwT3V0c3RhbmRpbmdBbW91bnQoPElQYXltZW50R3JvdXA+cGF5bWVudEdyb3VwKSxcbiAgICAgICAgICAgIHNjbmRDbiA9IGZzdENvbiA+IDAgfHwgKGZzdENvbiA9PSAwICYmIHRoaXMuaXNGZWVBbW91bnRaZXJvKSAmJiBwYXltZW50R3JvdXAucGF5bWVudF9ncm91cF9yZWZlcmVuY2UgPT09IHRoaXMucGF5bWVudFJlZjtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBheW1lbnRSZWYgPyAgc2NuZENuIDogZnN0Q29uID4gMCB8fCAoZnN0Q29uID09IDAgJiYgdGhpcy5pc0ZlZUFtb3VudFplcm8pO1xuICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5nZXRTZXJ2ZXJFcnJvck1lc3NhZ2UodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuXG4gIH1cblxuICBzZWxlY3RlZFBheW1lbnRHcm91cChwYXltZW50R3JvdXA6IElQYXltZW50R3JvdXApIHtcdFxuICAgIHRoaXMuaXNDb250aW51ZUJ1dHRvbmRpc2FibGVkID0gZmFsc2U7XHRcbiAgICB0aGlzLnBheW1lbnRHcm91cCA9IHBheW1lbnRHcm91cDtcdFxuICB9XHRcblxuICBnb3RvQ2FzZXRyYW5zYXRpb25QYWdlKCkge1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdjYXNlLXRyYW5zYWN0aW9ucyc7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzVHVybk9mZiA9IHRoaXMuaXNUdXJuT2ZmO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5UQUtFUEFZTUVOVCA9IHRydWU7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPSB0cnVlO1xuICB9XG5cbiAgZ290b1N1bW1hcnlQYWdlKGV2ZW50OiBhbnkpIHsgXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAnZmVlLXN1bW1hcnknO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5pc1R1cm5PZmYgPSB0aGlzLmlzVHVybk9mZjtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPSB0cnVlO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU0JTRU5BQkxFID0gdHJ1ZTtcbiAgfVxuXG4gIGNhbmNlbEFsbG9jYXRlUGF5bWVudChldmVudDogYW55KXtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2VdLCAnYWxsJyk7XG4gICAgaWYoIXRoaXMuaXNUdXJuT2ZmKXtcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdmZWUtc3VtbWFyeSc7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNUdXJuT2ZmID0gdGhpcy5pc1R1cm5PZmY7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuVEFLRVBBWU1FTlQgPSB0cnVlO1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTQlNFTkFCTEUgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZpZXdTdGF0dXMgPSAnbWFpbkZvcm0nO1x0XG4gICAgfVxuICB9XG4gIGNvbmZpcm1BbGxvY2F0ZVBheWVtZW50KCl7XG4gICAgdGhpcy5lbkNvb2tpZVVzZXJOYW1lID0gZG9jdW1lbnQuY29va2llLnNwbGl0KFwiO1wiKS5maW5kKHJvdyA9PiByb3cuaW5jbHVkZXMoXCJ1c2VyLWluZm9cIikpLnNwbGl0KFwiPVwiKVsxXS5zcGxpdChcIjtcIik7XG4gICAgdGhpcy5jb29raWVVc2VyTmFtZSA9IEpTT04ucGFyc2UoZGVjb2RlVVJJQ29tcG9uZW50KHRoaXMuZW5Db29raWVVc2VyTmFtZSkpO1xuICAgIFxuICAgIGNvbnN0IGZ1bGxOYW1lID0gdGhpcy5jb29raWVVc2VyTmFtZVsnZm9yZW5hbWUnXSArICcgJyArIHRoaXMuY29va2llVXNlck5hbWVbJ3N1cm5hbWUnXTtcblxuICAgIGNvbnN0IHBheW1lbnREZXRhaWxzRmllbGQgPSB0aGlzLm92ZXJVbmRlclBheW1lbnRGb3JtLmNvbnRyb2xzLm1vcmVEZXRhaWxzLFxuICAgICAgcGF5bWVudEZvcm1FcnJvciA9IHRoaXMub3ZlclVuZGVyUGF5bWVudEZvcm0uY29udHJvbHMubW9yZURldGFpbHMuZXJyb3JzLFxuICAgICAgdXNlck5hbWVGaWVsZCA9IGZ1bGxOYW1lLFxuICAgICAgaXNFbXB0eUNvbmR0aW9uID0gdGhpcy5wYXltZW50UmVhc29uICYmIHRoaXMucGF5bWVudEV4cGxhbmF0aW9uLFxuICAgICAgaXNPdGhlck9wdGlvblNlbGVjdGVkID0gdGhpcy5wYXltZW50RXhwbGFuYXRpb24gPT09ICdPdGhlcic7XG5cbiAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlXSwgJ2FsbCcpO1xuICAgIGlmICggKCF0aGlzLmlzUmVtYWluaW5nQW1vdW50R3RaZXJvICYmICF0aGlzLmlzUmVtYWluaW5nQW1vdW50THRaZXJvKSB8fCBpc0VtcHR5Q29uZHRpb24gJiYgKCFpc090aGVyT3B0aW9uU2VsZWN0ZWQgJiYgdXNlck5hbWVGaWVsZC5sZW5ndGggPiAwIHx8IGlzT3RoZXJPcHRpb25TZWxlY3RlZCAmJiB1c2VyTmFtZUZpZWxkLmxlbmd0aCA+IDAgJiYgcGF5bWVudERldGFpbHNGaWVsZC52YWxpZCkpIHtcbiAgICAgIHRoaXMuaXNDb25maXJtQnV0dG9uZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgdGhpcy5vdGhlclBheW1lbnRFeHBsYW5hdGlvbiA9IHRoaXMucGF5bWVudEV4cGxhbmF0aW9uID09PSAnT3RoZXInID8gcGF5bWVudERldGFpbHNGaWVsZC52YWx1ZSA6IHRoaXMucGF5bWVudEV4cGxhbmF0aW9uO1xuICAgICAgdGhpcy51c2VyTmFtZSA9IHVzZXJOYW1lRmllbGQ7XG4gICAgICB0aGlzLmZpbmFsU2VydmljZUNhbGwoKTtcbiAgICB9ZWxzZSB7XG4gICAgICBpZighdGhpcy5wYXltZW50UmVhc29uKSB7XG4gICAgICAgIHRoaXMucmVzZXRGb3JtKFt0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sICdyZWFzb24nKTtcbiAgICAgIH1cbiAgICAgIGlmKCF0aGlzLnBheW1lbnRFeHBsYW5hdGlvbikge1xuICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2VdLCAnZXhwbGFuYXRpb24nKTtcbiAgICAgIH1cbiAgICAgIGlmKHRoaXMucGF5bWVudEV4cGxhbmF0aW9uICYmIGlzT3RoZXJPcHRpb25TZWxlY3RlZCkge1xuICAgICAgICBpZihwYXltZW50RGV0YWlsc0ZpZWxkLnZhbHVlID09ICcnICkge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sICdvdGhlcicpO1xuICAgICAgICB9XG4gICAgICAgIGlmKHBheW1lbnREZXRhaWxzRmllbGQudmFsdWUgIT0gJycgJiYgcGF5bWVudERldGFpbHNGaWVsZC5pbnZhbGlkICkge1xuICAgICAgICAgIHRoaXMucmVzZXRGb3JtKFtmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZV0sICdvdGhlcicpO1xuICAgICAgICB9XG4gICAgICAgIGlmKHBheW1lbnRGb3JtRXJyb3IgJiYgcGF5bWVudEZvcm1FcnJvci5taW5sZW5ndGggJiYgcGF5bWVudEZvcm1FcnJvci5taW5sZW5ndGguYWN0dWFsTGVuZ3RoIDwgMyApIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2VdLCAnb3RoZXInKTtcbiAgICAgICAgfVxuICAgICAgICBpZihwYXltZW50Rm9ybUVycm9yICYmIHBheW1lbnRGb3JtRXJyb3IubWF4bGVuZ3RoICYmIHBheW1lbnRGb3JtRXJyb3IubWF4bGVuZ3RoLmFjdHVhbExlbmd0aCA+IDI1NSApIHtcbiAgICAgICAgICB0aGlzLnJlc2V0Rm9ybShbZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2VdLCAnb3RoZXInKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYodXNlck5hbWVGaWVsZC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5yZXNldEZvcm0oW2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlXSwgJ3VzZXJuYW1lJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJlc2V0Rm9ybSh2YWxzLCBmaWVsZCkge1xuICAgIGlmKGZpZWxkPT09J3JlYXNvbicgfHwgZmllbGQ9PT0nYWxsJykge1xuICAgICAgdGhpcy5wYXltZW50UmVhc29uSGFzRXJyb3IgPSB2YWxzWzBdO1xuICAgIH1cbiAgICBpZihmaWVsZD09PSdleHBsYW5hdGlvbicgfHwgZmllbGQ9PT0nYWxsJykge1xuICAgICAgdGhpcy5wYXltZW50RXhwbGFuYXRpb25IYXNFcnJvciA9IHZhbHNbMV07XG4gICAgfVxuICAgIGlmKGZpZWxkPT09J290aGVyJyB8fCBmaWVsZD09PSdhbGwnKSB7XG4gICAgICB0aGlzLmlzUGF5bWVudERldGFpbHNFbXB0eSA9IHZhbHNbMl07XG4gICAgICB0aGlzLmlzUGF5bWVudERldGFpbHNJbnZhbGlkID0gdmFsc1szXTtcbiAgICAgIHRoaXMucGF5bWVudERldGFpbHNNaW5IYXNFcnJvciA9IHZhbHNbNF07XG4gICAgICB0aGlzLnBheW1lbnREZXRhaWxzTWF4SGFzRXJyb3IgPSB2YWxzWzVdO1xuICAgIH1cbiAgICBpZihmaWVsZD09PSd1c2VybmFtZScgfHwgZmllbGQ9PT0nYWxsJykge1xuICAgICAgdGhpcy5pc1VzZXJOYW1lRW1wdHkgPSB2YWxzWzZdO1xuICAgICAgdGhpcy5pc1VzZXJOYW1lSW52YWxpZCA9IHZhbHNbN107XG4gICAgfVxuICB9XG4gIGZpbmFsU2VydmljZUNhbGwoKSB7XG4gICAgaWYoIXRoaXMuaXNTdHJhdGVnaWNGaXhFbmFibGUpIHtcbiAgICAgIGxldCBhbGxvY2F0ZWRSZXF1ZXN0ID0ge1xuICAgICAgICByZWFzb246IHRoaXMucGF5bWVudFJlYXNvbixcbiAgICAgICAgYWxsb2NhdGlvbl9zdGF0dXM6J0FsbG9jYXRlZCcsXG4gICAgICAgIGV4cGxhbmF0aW9uOiB0aGlzLm90aGVyUGF5bWVudEV4cGxhbmF0aW9uLFxuICAgICAgICBwYXltZW50X2FsbG9jYXRpb25fc3RhdHVzOiB7XG4gICAgICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgICAgIG5hbWU6ICdBbGxvY2F0ZWQnXG4gICAgICAgIH0sXG4gICAgICAgIHBheW1lbnRfZ3JvdXBfcmVmZXJlbmNlOiB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50X2dyb3VwX3JlZmVyZW5jZSxcbiAgICAgICAgY2FzZV90eXBlOiB0aGlzLmNhc2VUeXBlLFxuICAgICAgICB1c2VyX25hbWU6IHRoaXMudXNlck5hbWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBvc3RTdHJhdGVnaWNCb2R5ID0gbmV3IEFsbG9jYXRlUGF5bWVudFJlcXVlc3RcbiAgICAgICh0aGlzLmNjZFJlZmVyZW5jZSwgdGhpcy51bkFsbG9jYXRlZFBheW1lbnQsIHRoaXMuY2FzZVR5cGUsIHRoaXMuZXhjZXB0aW9uUmVmZXJlbmNlLCBhbGxvY2F0ZWRSZXF1ZXN0KTtcbiAgICAgIHRoaXMuYnVsa1NjYW5pbmdQYXltZW50U2VydmljZS5wb3N0QlNQYXltZW50U3RyYXRlZ2ljKHBvc3RTdHJhdGVnaWNCb2R5ICwgdGhpcy5wYXltZW50R3JvdXAucGF5bWVudF9ncm91cF9yZWZlcmVuY2UpLnN1YnNjcmliZShcbiAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5nZXRTZXJ2ZXJFcnJvck1lc3NhZ2UoZmFsc2UpO1xuICAgICAgICAgIGxldCByZXNwb25zZSA9IEpTT04ucGFyc2UocmVzKTtcbiAgICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2Vzcykge1xuICAgICAgICAgICB0aGlzLmdvdG9DYXNldHJhbnNhdGlvblBhZ2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuZ2V0U2VydmVyRXJyb3JNZXNzYWdlKHRydWUpO1xuICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcbiAgICAgICAgICB0aGlzLmlzQ29uZmlybUJ1dHRvbmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgfSBlbHNlIHtcbiAgICB0aGlzLmJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2UucGF0Y2hCU0NoYW5nZVN0YXR1cyh0aGlzLnVuQWxsb2NhdGVkUGF5bWVudC5kY25fcmVmZXJlbmNlLCAnUFJPQ0VTU0VEJykuc3Vic2NyaWJlKFxuICAgICAgcmVzMSA9PiB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmdldFNlcnZlckVycm9yTWVzc2FnZShmYWxzZSk7XG4gICAgICAgIGxldCByZXNwb25zZTEgPSBKU09OLnBhcnNlKHJlczEpO1xuICAgICAgICBpZiAocmVzcG9uc2UxLnN1Y2Nlc3MpIHtcbiAgICAgICAgICBjb25zdCByZXF1ZXN0Qm9keSA9IG5ldyBBbGxvY2F0ZVBheW1lbnRSZXF1ZXN0XG4gICAgICAgICAgKHRoaXMuY2NkUmVmZXJlbmNlLCB0aGlzLnVuQWxsb2NhdGVkUGF5bWVudCwgdGhpcy5zaXRlSUQsIHRoaXMuZXhjZXB0aW9uUmVmZXJlbmNlKTtcbiAgICAgICAgICB0aGlzLmJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2UucG9zdEJTQWxsb2NhdGVQYXltZW50KHJlcXVlc3RCb2R5LCB0aGlzLnBheW1lbnRHcm91cC5wYXltZW50X2dyb3VwX3JlZmVyZW5jZSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgcmVzMiA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmdldFNlcnZlckVycm9yTWVzc2FnZShmYWxzZSk7XG4gICAgICAgICAgICAgIGxldCByZXNwb25zZTIgPSBKU09OLnBhcnNlKHJlczIpO1xuICAgICAgICAgICAgICBjb25zdCByZXFCb2R5ID0gbmV3IElBbGxvY2F0aW9uUGF5bWVudHNSZXF1ZXN0XG4gICAgICAgICAgICAgIChyZXNwb25zZTJbJ2RhdGEnXS5wYXltZW50X2dyb3VwX3JlZmVyZW5jZSwgcmVzcG9uc2UyWydkYXRhJ10ucmVmZXJlbmNlLCB0aGlzLnBheW1lbnRSZWFzb24sIHRoaXMub3RoZXJQYXltZW50RXhwbGFuYXRpb24sIHRoaXMudXNlck5hbWUpO1xuICAgICAgICAgICAgICBpZiAocmVzcG9uc2UyLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBheW1lbnRWaWV3U2VydmljZS5wb3N0QlNBbGxvY2F0aW9uUGF5bWVudHMocmVxQm9keSkuc3Vic2NyaWJlKFxuICBcbiAgICAgICAgICAgICAgICByZXMzID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmdldFNlcnZlckVycm9yTWVzc2FnZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgICBsZXQgcmVzcG9uc2UzID0gSlNPTi5wYXJzZShyZXMzKTtcbiAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZTMuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgIHRoaXMuZ290b0Nhc2V0cmFuc2F0aW9uUGFnZSgpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuYnVsa1NjYW5pbmdQYXltZW50U2VydmljZS5wYXRjaEJTQ2hhbmdlU3RhdHVzKHRoaXMudW5BbGxvY2F0ZWRQYXltZW50LmRjbl9yZWZlcmVuY2UsICdDT01QTEVURScpLnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuZ2V0U2VydmVyRXJyb3JNZXNzYWdlKHRydWUpO1xuICAgICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIDApO1xuICAgICAgICAgICAgICAgICAgdGhpcy5pc0NvbmZpcm1CdXR0b25kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5idWxrU2NhbmluZ1BheW1lbnRTZXJ2aWNlLnBhdGNoQlNDaGFuZ2VTdGF0dXModGhpcy51bkFsbG9jYXRlZFBheW1lbnQuZGNuX3JlZmVyZW5jZSwgJ0NPTVBMRVRFJykuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmdldFNlcnZlckVycm9yTWVzc2FnZSh0cnVlKTtcbiAgICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIDApO1xuICAgICAgICAgICAgICB0aGlzLmlzQ29uZmlybUJ1dHRvbmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIH0sXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5nZXRTZXJ2ZXJFcnJvck1lc3NhZ2UodHJ1ZSk7XG4gICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcbiAgICAgICAgdGhpcy5pc0NvbmZpcm1CdXR0b25kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICk7ICBcbiAgfVxuICB9XG5cbiAgc2F2ZUFuZENvbnRpbnVlKCl7XG4gICAgaWYodGhpcy5wYXltZW50R3JvdXApIHtcbiAgICAgIHRoaXMuaXNNb3JlRGV0YWlsc0JveEhpZGUgPSB0cnVlO1xuICAgICAgdGhpcy5vdmVyVW5kZXJQYXltZW50Rm9ybS5nZXQoJ21vcmVEZXRhaWxzJykucmVzZXQoKTtcbiAgICAgIHRoaXMub3ZlclVuZGVyUGF5bWVudEZvcm0uZ2V0KCdtb3JlRGV0YWlscycpLnNldFZhbHVlKCcnKTtcbiAgICAgIHRoaXMub3ZlclVuZGVyUGF5bWVudEZvcm0uZ2V0KCd1c2VyTmFtZScpLnJlc2V0KCk7XG4gICAgICB0aGlzLm92ZXJVbmRlclBheW1lbnRGb3JtLmdldCgndXNlck5hbWUnKS5zZXRWYWx1ZSgnJyk7XG4gICAgICB0aGlzLnBheW1lbnRSZWFzb24gPSAnJztcbiAgICAgIHRoaXMucGF5bWVudEV4cGxhbmF0aW9uID0gJyc7XG4gICAgICBsZXQgR3JvdXBPdXRzdGFuZGluZ0Ftb3VudCA9IHRoaXMuZ2V0R3JvdXBPdXRzdGFuZGluZ0Ftb3VudCh0aGlzLnBheW1lbnRHcm91cCk7XG4gICAgICBjb25zdCByZW1haW5pbmdUb0JlQXNzaWduZWQgPSB0aGlzLnVuQWxsb2NhdGVkUGF5bWVudC5hbW91bnQgLSBHcm91cE91dHN0YW5kaW5nQW1vdW50O1xuICAgICAgdGhpcy5pc1JlbWFpbmluZ0Ftb3VudEd0WmVybyA9IHJlbWFpbmluZ1RvQmVBc3NpZ25lZCA+IDA7XG4gICAgICB0aGlzLmlzUmVtYWluaW5nQW1vdW50THRaZXJvID0gcmVtYWluaW5nVG9CZUFzc2lnbmVkIDwgMDtcbiAgICAgIHRoaXMucGF5bWVudFNlY3Rpb25MYWJlbCA9IHRoaXMuaXNSZW1haW5pbmdBbW91bnRHdFplcm8gPyB7IFxuICAgICAgICAgIHRpdGxlOiAnVGhlcmUgaXMgYW4gT3ZlciBwYXltZW50IG9mJyxcbiAgICAgICAgICByZWFzb246ICdQcm92aWRlIGEgcmVhc29uLiBUaGlzIHdpbGwgYmUgdXNlZCBpbiB0aGUgUmVmdW5kIHByb2Nlc3MuJyxcbiAgICAgICAgfTogdGhpcy5pc1JlbWFpbmluZ0Ftb3VudEx0WmVybyA/IHsgXG4gICAgICAgICAgdGl0bGU6ICdUaGVyZSBpcyBhbiBVbmRlciBwYXltZW50IG9mJyxcbiAgICAgICAgICByZWFzb246ICdQcm92aWRlIGEgcmVhc29uJyxcbiAgICAgICAgfTogeyBcbiAgICAgICAgICB0aXRsZTonQW1vdW50IGxlZnQgdG8gYmUgYWxsb2NhdGVkJyxcbiAgICAgICAgICByZWFzb246JycsXG4gICAgICAgIH07XG4gICAgICB0aGlzLmZlZWRiYWNrVXJsTGFiZWwgPSB0aGlzLmlzUmVtYWluaW5nQW1vdW50R3RaZXJvID8gJ0NPTkZJUk1BTExPQ0FUSU9OX1NVUlBMVVMnIDogdGhpcy5pc1JlbWFpbmluZ0Ftb3VudEx0WmVybyA/ICdDT05GSVJNQUxMT0NBVElPTl9TSE9SVEZBTEwnIDogJ0NPTkZJUk1BTExPQ0FUSU9OJztcbiAgICAgIHRoaXMucmVtYWluaW5nQW1vdW50ID0gIHRoaXMuaXNSZW1haW5pbmdBbW91bnRHdFplcm8gPyByZW1haW5pbmdUb0JlQXNzaWduZWQgOiB0aGlzLmlzUmVtYWluaW5nQW1vdW50THRaZXJvID8gcmVtYWluaW5nVG9CZUFzc2lnbmVkICogLTEgOiAwO1xuICAgICAgdGhpcy5hZnRlckZlZUFsbG9jYXRlT3V0c3RhbmRpbmcgPSByZW1haW5pbmdUb0JlQXNzaWduZWQgPj0gMCA/IDAgOiAocmVtYWluaW5nVG9CZUFzc2lnbmVkICogLTEpO1xuICAgICAgdGhpcy5hbW91bnRGb3JBbGxvY2F0aW9uID0gR3JvdXBPdXRzdGFuZGluZ0Ftb3VudCA+PSB0aGlzLnVuQWxsb2NhdGVkUGF5bWVudC5hbW91bnQgPyB0aGlzLnVuQWxsb2NhdGVkUGF5bWVudC5hbW91bnQgOiBHcm91cE91dHN0YW5kaW5nQW1vdW50O1xuICAgICAgaWYodGhpcy5pc1R1cm5PZmYpe1xuICAgICAgICB0aGlzLnZpZXdTdGF0dXMgPSAnYWxsb2NhdGVQYXltZW50Q29uZmlybWF0aW9uJztcdFxuICAgICAgfVxuICAgIH1cbiAgfVxuICAgZ2V0VW5hc3NpZ25lZFBheW1lbnQoKSB7XG4gICAgdGhpcy5idWxrU2NhbmluZ1BheW1lbnRTZXJ2aWNlLmdldEJTUGF5bWVudHNCeURDTih0aGlzLmJzcGF5bWVudGRjbikuc3Vic2NyaWJlKFxuICAgICAgdW5hc3NpZ25lZFBheW1lbnRzID0+IHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuZ2V0U2VydmVyRXJyb3JNZXNzYWdlKGZhbHNlKTtcbiAgICAgICAgdGhpcy51bkFsbG9jYXRlZFBheW1lbnQgPSB1bmFzc2lnbmVkUGF5bWVudHNbJ2RhdGEnXS5wYXltZW50cy5maWx0ZXIocGF5bWVudCA9PiB7XG4gICAgICAgICAgcmV0dXJuIHBheW1lbnQgJiYgcGF5bWVudC5kY25fcmVmZXJlbmNlID09IHRoaXMuYnNwYXltZW50ZGNuO1xuICAgICAgICB9KVswXTtcbiAgICAgICAgdGhpcy5zaXRlSUQgPSB1bmFzc2lnbmVkUGF5bWVudHNbJ2RhdGEnXS5yZXNwb25zaWJsZV9zZXJ2aWNlX2lkO1xuICAgICAgICBjb25zdCBiZUNjZE51bWJlciA9IHVuYXNzaWduZWRQYXltZW50c1snZGF0YSddLmNjZF9yZWZlcmVuY2UsXG4gICAgICAgIGJlRXhjZXB0aW9uTnVtYmVyID0gdW5hc3NpZ25lZFBheW1lbnRzWydkYXRhJ10uZXhjZXB0aW9uX3JlY29yZF9yZWZlcmVuY2UsXG4gICAgICAgIGV4Y2VwdGlvblJlZmVyZW5jZSA9IGJlQ2NkTnVtYmVyID8gYmVDY2ROdW1iZXIgPT09IHRoaXMuY2NkQ2FzZU51bWJlciA/IG51bGwgOiB0aGlzLmNjZENhc2VOdW1iZXIgOiB0aGlzLmNjZENhc2VOdW1iZXI7XG4gICAgICAgdGhpcy5jY2RSZWZlcmVuY2UgPSBiZUNjZE51bWJlciA/IGJlQ2NkTnVtYmVyIDogbnVsbDtcbiAgICAgICB0aGlzLmV4Y2VwdGlvblJlZmVyZW5jZSA9IGJlRXhjZXB0aW9uTnVtYmVyID8gYmVFeGNlcHRpb25OdW1iZXIgOiBleGNlcHRpb25SZWZlcmVuY2U7XG4gICAgICAgdGhpcy5nZXRQYXltZW50R3JvdXBEZXRhaWxzKCk7XG4gICAgICB9LFxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuZ2V0U2VydmVyRXJyb3JNZXNzYWdlKHRydWUpO1xuICAgICAgfVxuICAgICk7XG4gIH1cbiAgc2VsZWN0UmFkaW9CdXR0b24oa2V5LCB0eXBlKSB7XG4gICAgdGhpcy5pc01vcmVEZXRhaWxzQm94SGlkZSA9IHRydWU7XG4gICAgaWYoIHR5cGUgPT09ICdleHBsYW5hdGlvbicgJiYga2V5ID09PSAnb3RoZXInICl7XG4gICAgICB0aGlzLmlzUGF5bWVudERldGFpbHNFbXB0eSA9IGZhbHNlO1xuICAgICAgdGhpcy5pc1BheW1lbnREZXRhaWxzSW52YWxpZCA9IGZhbHNlO1xuICAgICAgdGhpcy5wYXltZW50RGV0YWlsc01pbkhhc0Vycm9yID0gZmFsc2U7XG4gICAgICB0aGlzLnBheW1lbnREZXRhaWxzTWF4SGFzRXJyb3IgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNNb3JlRGV0YWlsc0JveEhpZGUgPSBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|