buildingproduct-library 2.0.44 → 2.0.45
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/{buildingproduct-library-2.0.44.tgz → buildingproduct-library-2.0.45.tgz} +0 -0
- package/esm2022/lib/checkout/custom-checkout/custom-checkout.component.mjs +16 -10
- package/fesm2022/buildingproduct-library.mjs +15 -9
- package/fesm2022/buildingproduct-library.mjs.map +1 -1
- package/lib/checkout/custom-checkout/custom-checkout.component.d.ts +1 -0
- package/package.json +1 -1
|
Binary file
|
|
@@ -27,6 +27,7 @@ export class CustomCheckoutComponent {
|
|
|
27
27
|
closingTime: { hour: 12, minute: 0 }
|
|
28
28
|
};
|
|
29
29
|
this.Initialtime = '6:00 AM';
|
|
30
|
+
this.initialMaxTime = '06:30 AM';
|
|
30
31
|
this.timeOptions = [
|
|
31
32
|
'06:00 AM', '06:30 AM', '07:00 AM', '08:30 AM',
|
|
32
33
|
'09:00 AM', '09:30 AM', '10:00 AM', '10:30 AM', '11:00 AM', '11:30 AM',
|
|
@@ -198,7 +199,7 @@ export class CustomCheckoutComponent {
|
|
|
198
199
|
return result;
|
|
199
200
|
}
|
|
200
201
|
updateMinMaxTime(date) {
|
|
201
|
-
if (this.hasTimeSpecificRequest) {
|
|
202
|
+
if (this.hasTimeSpecificRequest || this.isDeliveryBox) {
|
|
202
203
|
// Time specific delivery
|
|
203
204
|
this.minTime = new Date(date.getFullYear(), date.getMonth(), date.getDate(), this.specificDelivery?.openingTime?.hour || 6, this.specificDelivery?.openingTime?.minute || 0, 0);
|
|
204
205
|
this.fromMaxTime = new Date(date.getFullYear(), date.getMonth(), date.getDate(), this.specificDelivery?.closingTime?.hour || 12, this.specificDelivery?.closingTime?.minute || 0, 0);
|
|
@@ -218,11 +219,18 @@ export class CustomCheckoutComponent {
|
|
|
218
219
|
}
|
|
219
220
|
updateRequestedTime() {
|
|
220
221
|
this.minTime = this.getRoundMinTime(this.minTime);
|
|
221
|
-
this.minToTime = this.getRoundMinTime(this.minToTime);
|
|
222
222
|
//if clicking on radio button for delivery, should pick 6 am, if time does not go fine then revert it
|
|
223
|
-
if (this.
|
|
224
|
-
|
|
225
|
-
|
|
223
|
+
if (this.isDeliveryBox) {
|
|
224
|
+
if (!this.hasTimeSpecificRequest) {
|
|
225
|
+
const formattedMinTime = this.minTime.toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit', hour12: true });
|
|
226
|
+
const formattedfromMaxTime = this.fromMaxTime.toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit', hour12: true });
|
|
227
|
+
this.checkoutFormData.deliveryPickUpFromTime = formattedMinTime;
|
|
228
|
+
this.checkoutFormData.deliveryPickUpToTime = formattedfromMaxTime;
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
const formattedMinTime = this.minTime.toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit', hour12: true });
|
|
232
|
+
this.checkoutFormData.deliveryPickUpFromTime = formattedMinTime;
|
|
233
|
+
}
|
|
226
234
|
}
|
|
227
235
|
else {
|
|
228
236
|
const formattedminToTime = this.minToTime.toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit', hour12: true });
|
|
@@ -305,9 +313,8 @@ export class CustomCheckoutComponent {
|
|
|
305
313
|
let sessionData = this.checkoutFormData;
|
|
306
314
|
//this.checkoutFormData.deliveryPickUpFromTime = this.collectTimeObj?.getText();
|
|
307
315
|
//this.checkoutFormData.deliveryPickUpToTime = this.checkoutToTime?.getText();
|
|
308
|
-
if (this.isDeliveryBox) {
|
|
309
|
-
this.
|
|
310
|
-
this.checkoutFormData.deliveryPickUpToTime = this.minToTime;
|
|
316
|
+
if (this.isDeliveryBox && this.hasTimeSpecificRequest) {
|
|
317
|
+
this.checkoutFormData.deliveryPickUpToTime = this.minToTime ? this.minToTime.toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit', hour12: true }) : this.initialMaxTime;
|
|
311
318
|
}
|
|
312
319
|
let deliveryPickUpDate = this.checkoutFormData.deliveryPickUpDate;
|
|
313
320
|
this.checkoutFormData.deliveryPickUpDate = this.checkoutFormData.deliveryPickUpDate?.day + '/' + this.checkoutFormData.deliveryPickUpDate?.month + '/' + this.checkoutFormData.deliveryPickUpDate?.year;
|
|
@@ -375,7 +382,6 @@ export class CustomCheckoutComponent {
|
|
|
375
382
|
changeDeliveryOptions() {
|
|
376
383
|
this.checkoutFormData.deliveryPickUpFromTime = null;
|
|
377
384
|
this.checkoutFormData.deliveryPickUpToTime = null;
|
|
378
|
-
this.checkoutFormData.deliveryPickUpDate = null;
|
|
379
385
|
this.weekDayOpeningList = this.isDeliveryBox
|
|
380
386
|
? this.responseData.pointOfService?.deliverySchedule?.weekDayOpeningList
|
|
381
387
|
: this.responseData.pointOfService?.pickupSchedule?.weekDayOpeningList;
|
|
@@ -407,4 +413,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
407
413
|
type: ViewChild,
|
|
408
414
|
args: ['mapViewNode', { static: true }]
|
|
409
415
|
}] } });
|
|
410
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWNoZWNrb3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J1aWxkaW5ncHJvZHVjdF9saWJyYXJ5L3NyYy9saWIvY2hlY2tvdXQvY3VzdG9tLWNoZWNrb3V0L2N1c3RvbS1jaGVja291dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2NoZWNrb3V0L2N1c3RvbS1jaGVja291dC9jdXN0b20tY2hlY2tvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFJVCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFTdkMsTUFBTSxPQUFPLHVCQUF1QjtJQTREbEMsWUFDUyxlQUFzQyxFQUNyQyxVQUFzQixFQUN2QixFQUFxQixFQUNyQixRQUFxQixFQUNyQixpQkFBb0M7UUFKcEMsb0JBQWUsR0FBZixlQUFlLENBQXVCO1FBQ3JDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdkIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBaEUzQyxtRkFBbUY7UUFDckYsMkJBQXNCLEdBQVcsS0FBSyxDQUFDO1FBQ3ZDLHFCQUFnQixHQUFHO1lBQ2pCLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRTtZQUNuQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUU7U0FDckMsQ0FBQztRQUNGLGdCQUFXLEdBQUcsU0FBUyxDQUFFO1FBRXpCLGdCQUFXLEdB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YUFBYTtZQUM3QyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCO1lBQzNFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxjQUFjLEVBQUUscUJBQXFCLENBQUM7UUFDMUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUNELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQzsrR0E5ZFUsdUJBQXVCO21HQUF2Qix1QkFBdUIsd2RDbkJwQyxnemtCQXVPQTs7NEZEcE5hLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUI7Nk1BdUNKLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFPdUIsY0FBYztzQkFBN0QsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0UsY0FBYztzQkFBN0QsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ00sU0FBUztzQkFBNUQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiQ2FsZW5kYXIsIE5nYkRhdGVTdHJ1Y3QgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IEFjdGl2ZUNhcnRTZXJ2aWNlIH0gZnJvbSAnQHNwYXJ0YWN1cy9jYXJ0L2Jhc2UvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDdXN0b21DaGVja291dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jaGVja291dC5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IENtc1NlcnZpY2UgfSBmcm9tICdAc3BhcnRhY3VzL2NvcmUnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jdXN0b20tY2hlY2tvdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tY2hlY2tvdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2N1c3RvbS1jaGVja291dC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tQ2hlY2tvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgLy9oYXNUaW1TcGVjaWZpY1JlcXVlc3QgZmxhZyBmb3Igc2hvd2luZyBhbmQgaGlkaW5nIHRpbWUgY29udHJvbCBvbiBkZWxpdmVyeSBvcHRpb25cclxuICBoYXNUaW1lU3BlY2lmaWNSZXF1ZXN0OiBib29sZWFuID1mYWxzZTtcclxuICBzcGVjaWZpY0RlbGl2ZXJ5ID0ge1xyXG4gICAgb3BlbmluZ1RpbWU6IHsgaG91cjogNiwgbWludXRlOiAwIH0sXHJcbiAgICBjbG9zaW5nVGltZTogeyBob3VyOiAxMiwgbWludXRlOiAwIH1cclxuICB9O1xyXG4gIEluaXRpYWx0aW1lID0gJzY6MDAgQU0nIDtcclxuICBcclxuICB0aW1lT3B0aW9uczogc3RyaW5nW10gPSBbXHJcbiAgICAnMDY6MDAgQU0nLCAnMDY6MzAgQU0nLCAnMDc6MDAgQU0nLCAnMDg6MzAgQU0nLFxyXG4gICAgJzA5OjAwIEFNJywgJzA5OjMwIEFNJywgJzEwOjAwIEFNJywgJzEwOjMwIEFNJywgJzExOjAwIEFNJywgJzExOjMwIEFNJyxcclxuICAgICcxMjowMCBQTSdcclxuICBdO1xyXG4gIGVycm9ySW5kJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIGluZm9NZXNzYWdlOiBzdHJpbmcgPSAnJztcclxuICBwcmV2aW91c1VybDogc3RyaW5nID0gJyc7XHJcbiAgY2FydElkOiBzdHJpbmcgPSAnJztcclxuICBpc0RlbGl2ZXJ5Qm94OiBib29sZWFuID0gdHJ1ZTtcclxuICBBQ1RJVkVfSVRFTTogc3RyaW5nID0gJ2FjdGl2ZS1ib3gnO1xyXG4gIG5nYk1pbkRhdGU6IGFueTtcclxuICBzZWxlY3RlZEFkZHJlc3M6IHN0cmluZyA9ICdhY2NvdW50QWRkcmVzcyc7XHJcbiAgcHVibGljIG1heFRpbWU6IGFueTtcclxuICBwdWJsaWMgZnJvbU1heFRpbWU6IGFueTtcclxuICBjY21pblRpbWUgPSBuZXcgRGF0ZSgyMDIyLCAwLCAyOCwgNiwgMCwgMCk7XHJcbiAgY2NtYXhUaW1lID0gbmV3IERhdGUoMjAyMiwgMCwgMjgsIDIyLCAwLCAwKTtcclxuICBwdWJsaWMgbWluVGltZTogYW55O1xyXG4gIHB1YmxpYyBtaW5Ub1RpbWU6IGFueTtcclxuICBjaGVja291dEZvcm1EYXRhOiBhbnkgPSB7fTtcclxuICBpc1N1Ym1pdHRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHN0YXJ0VGltZTogYW55ID0gW107XHJcbiAgcmVjZW50QWRkcmVzczogYW55ID0gW107XHJcbiAgZGVsaXZlclRpbWU6IGFueTtcclxuICBkZWZhdWx0QWNjb3VudEFkZHJlc3M6IGFueTtcclxuICBicmFuY2hBZGRyZXNzOiBhbnk7XHJcbiAgQFZpZXdDaGlsZCgnY2hlY2tvdXRGb3JtJykgY2hlY2tvdXRGb3JtOiBhbnk7XHJcbiAgc2VsZWN0ZWRSZWNlbnRBZGRyZXNzOiBhbnkgPSB7fTtcclxuICB0ZW1wQnJhbmNoTGlzdERhdGE6IGFueSA9IFtdO1xyXG4gIHB1YmxpYyBkZWxpdmVyeURpc2FibGVEYXRlczogYW55O1xyXG4gIGNvbGxlY3RUaW1lOiBhbnk7XHJcbiAgbWluTGVhZFRpbWU6IG51bWJlciA9IDM7XHJcbiAgcmVzcG9uc2VEYXRhOiBhbnk7XHJcbiAgQFZpZXdDaGlsZCgnY2hlY2tvdXRUb1RpbWUnLCB7IHN0YXRpYzogZmFsc2UgfSkgY2hlY2tvdXRUb1RpbWU6IGFueTtcclxuICBAVmlld0NoaWxkKCdjb2xsZWN0VGltZU9iaicsIHsgc3RhdGljOiBmYWxzZSB9KSBjb2xsZWN0VGltZU9iajogYW55O1xyXG4gIEBWaWV3Q2hpbGQoJ21hcFZpZXdOb2RlJywgeyBzdGF0aWM6IHRydWUgfSkgcHJpdmF0ZSBtYXBWaWV3RWwhOiBFbGVtZW50UmVmO1xyXG4gIHNwZWNpYWxEYXlPcGVuaW5nTGlzdDogYW55ID0gW107XHJcbiAgd2Vla0RheU9wZW5pbmdMaXN0OiBhbnkgPSBbXTtcclxuICBkZWxpdmVyeUFkZHJlc3NlczogYW55ID0gW107XHJcbiAgc2hvd01vcmVBZGRyZXNzZXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaXRlRGVsaXZlcnlSZXF1aXJlbWVudHM6IGFueTtcclxuICBjbGlja2FuZENvbGxlY3RDb21tZW50czogYW55O1xyXG4gIGNoZWNrb3V0SGVhZGVyQ29udGVudDogYW55O1xyXG4gIGJyZWFkY3J1bWJEYXRhOiBhbnkgPSBbXTtcclxuICBkZWxpdmVyeU1vZGVzOiBhbnkgPSBbXTtcclxuICB2aWV3OiBhbnk7XHJcbiAgcGFnZVRpdGxlOiBhbnk7XHJcbiAgbmV3QWRkcmVzczogYW55O1xyXG4gIGNvbmZpcm1lZE5ld0FkZHJlc3M6IHN0cmluZyA9ICcnO1xyXG4gIHNob3dXYWl0Q3Vyc29yID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgYnJhbmNoRGlzcGxheU5hbWU6IGFueTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjaGVja291dFNlcnZpY2U6IEN1c3RvbUNoZWNrb3V0U2VydmljZSxcclxuICAgIHByaXZhdGUgY21zU2VydmljZTogQ21zU2VydmljZSxcclxuICAgIHB1YmxpYyBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgY2FsZW5kYXI6IE5nYkNhbGVuZGFyLFxyXG4gICAgcHVibGljIGFjdGl2ZUNhcnRTZXJ2aWNlOiBBY3RpdmVDYXJ0U2VydmljZVxyXG4gICkgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNtc1NlcnZpY2UuZ2V0Q3VycmVudFBhZ2UoKS5zdWJzY3JpYmUoKHBhZ2FkYXRhOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5wYWdlVGl0bGUgPSBwYWdhZGF0YS50aXRsZTtcclxuICAgIH0pXHJcbiAgICB0aGlzLmJyZWFkY3J1bWJEYXRhLnB1c2goeyB1cmw6ICcvJywgbmFtZTogJ0hvbWUnIH0pO1xyXG4gICAgdGhpcy5icmVhZGNydW1iRGF0YS5wdXNoKHsgdXJsOiAnL2NhcnQnLCBuYW1lOiAnQ2FydCcgfSk7XHJcbiAgICB0aGlzLmJyZWFkY3J1bWJEYXRhLnB1c2goeyB1cmw6ICcvY2hlY2tvdXQnLCBuYW1lOiAnQ2hlY2tvdXQnIH0pO1xyXG4gICAgbGV0IGNhcnQ6IGFueSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzcGFydGFjdXPimr9kaW1vbmQtc3Bh4pq/Y2FydCcpO1xyXG4gICAgdGhpcy5jYXJ0SWQgPSBKU09OLnBhcnNlKGNhcnQpPy5hY3RpdmU7XHJcbiAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBEYXRlID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwVG9UaW1lID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRnJvbVRpbWUgPSB1bmRlZmluZWQ7XHJcbiAgICBjb25zdCBjaGVja291dERhdGE6IGFueSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2NoZWNrb3V0RGF0YScpO1xyXG4gICAgaWYgKGNoZWNrb3V0RGF0YSAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YSA9IEpTT04ucGFyc2UoY2hlY2tvdXREYXRhKTtcclxuICAgICAgdGhpcy5pc0RlbGl2ZXJ5Qm94ID0gdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5TWV0aG9kID09ICdjbGlja0FuZENvbGxlY3QnID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgfVxyXG4gICAgdmFyIGxvY0FkZHJlc3M6IGFueSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdicmFuY2hEZXRhaWxzJyk7XHJcbiAgICB0aGlzLmJyYW5jaEFkZHJlc3MgPSBKU09OLnBhcnNlKGxvY0FkZHJlc3MpO1xyXG4gICAgdGhpcy5icmFuY2hEaXNwbGF5TmFtZSA9IHRoaXMuYnJhbmNoQWRkcmVzcz8uZGlzcGxheU5hbWU7XHJcbiAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXREZWxpdmVyeU1vZGVzKHRoaXMuY2FydElkKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICB0aGlzLmRlbGl2ZXJ5TW9kZXMgPSBkYXRhLmRlbGl2ZXJ5TW9kZXM7XHJcbiAgICAgICAgdGhpcy5kZWxpdmVyeU1vZGVzLnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiAoYS5jb2RlID4gYi5jb2RlID8gLTEgOiAxKSlcclxuICAgICAgfVxyXG4gICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgIHRoaXMuZGVsaXZlcnlNb2RlcyA9IFt7IGNvZGU6ICdzdGFuZGFyZF9kZWxpdmVyeScgfSwgeyBjb2RlOiAnY2xpY2tBbmRDb2xsZWN0JyB9XVxyXG4gICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldEFkZHJlc3NJbmZvKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0QWNjb3VudEFkZHJlc3MgPSBkYXRhLmFkZHJlc3Nlc1swXTtcclxuICAgICAgICB0aGlzLnJlY2VudEFkZHJlc3MgPSBkYXRhLnJlY2VudEFkZHJlc3NlcztcclxuICAgICAgICB0aGlzLnNob3dNb3JlQWRkcmVzc2VzID0gZGF0YS5hZGRyZXNzZXMgJiYgZGF0YS5hZGRyZXNzZXMubGVuZ3RoID4gMSA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgICB0aGlzLmRlbGl2ZXJ5QWRkcmVzc2VzID0gZGF0YS5hZGRyZXNzZXMgJiYgZGF0YS5hZGRyZXNzZXMubGVuZ3RoID4gMCA/IGRhdGEuYWRkcmVzc2VzIDogW107XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEFkZHJlc3MgPSB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuc2VsZWN0ZWRBZGRyZXNzICE9IHVuZGVmaW5lZCA/IHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5zZWxlY3RlZEFkZHJlc3MgOiAnYWNjb3VudEFkZHJlc3MnO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSZWNlbnRBZGRyZXNzLmlkID0gdGhpcy5jaGVja291dEZvcm1EYXRhICYmIHRoaXMuY2hlY2tvdXRGb3JtRGF0YT8uZGVsaXZlcnlBZGRyZXNzUEsgPyB0aGlzLmNoZWNrb3V0Rm9ybURhdGE/LmRlbGl2ZXJ5QWRkcmVzc1BLIDogdGhpcy5kZWZhdWx0QWNjb3VudEFkZHJlc3M/LmlkO1xyXG4gICAgICAgIHRoaXMuY29uZmlybWVkTmV3QWRkcmVzcyA9IHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5zZWxlY3RlZEFkZHJlc3MgIT0gdW5kZWZpbmVkICYmIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5zZWxlY3RlZEFkZHJlc3MgPT0gJ2FkZE5ld0FkZHJlc3MnID8gdGhpcy5jaGVja291dEZvcm1EYXRhLm5ld0FkZHJlc3M/LnNlbGVjdGVkQWRkcmVzcyA6ICcnO1xyXG4gICAgICAgIHRoaXMubmV3QWRkcmVzcyA9IHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5zZWxlY3RlZEFkZHJlc3MgIT0gdW5kZWZpbmVkICYmIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5zZWxlY3RlZEFkZHJlc3MgPT0gJ2FkZE5ld0FkZHJlc3MnID8gdGhpcy5jaGVja291dEZvcm1EYXRhLm5ld0FkZHJlc3MgOiAnJztcclxuICAgICAgICBpZiAodGhpcy5kZWxpdmVyeUFkZHJlc3Nlcy5sZW5ndGggPT0gMCAmJiB0aGlzLnNlbGVjdGVkQWRkcmVzcyAhPSAnYWRkTmV3QWRkcmVzcycpIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRBZGRyZXNzID0gJ3JlY2VudEFkZHJlc3MnO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFJlY2VudEFkZHJlc3MgPSB0aGlzLnJlY2VudEFkZHJlc3NbMF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5kZWZhdWx0QWNjb3VudEFkZHJlc3MgJiYgdGhpcy5kZWxpdmVyeUFkZHJlc3Nlcy5sZW5ndGggPCAxICYmIHRoaXMucmVjZW50QWRkcmVzcy5sZW5ndGggPCAxKSB0aGlzLnNlbGVjdGVkQWRkcmVzcyA9ICdhZGROZXdBZGRyZXNzJztcclxuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrT3V0VmFsdWVzKHRoaXMuY2FydElkKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgIHRoaXMucmVzcG9uc2VEYXRhID0gZGF0YTtcclxuICAgICAgICAgIHRoaXMud2Vla0RheU9wZW5pbmdMaXN0ID0gdGhpcy5pc0RlbGl2ZXJ5Qm94XHJcbiAgICAgICAgICAgID8gZGF0YS5wb2ludE9mU2VydmljZT8uZGVsaXZlcnlTY2hlZHVsZT8ud2Vla0RheU9wZW5pbmdMaXN0XHJcbiAgICAgICAgICAgIDogZGF0YS5wb2ludE9mU2VydmljZT8ucGlja3VwU2NoZWR1bGU/LndlZWtEYXlPcGVuaW5nTGlzdDtcclxuICAgICAgICAgIHRoaXMuc3BlY2lhbERheU9wZW5pbmdMaXN0ID0gdGhpcy5pc0RlbGl2ZXJ5Qm94XHJcbiAgICAgICAgICAgID8gZGF0YS5wb2ludE9mU2VydmljZT8uZGVsaXZlcnlTY2hlZHVsZT8uc3BlY2lhbERheU9wZW5pbmdMaXN0XHJcbiAgICAgICAgICAgIDogZGF0YS5wb2ludE9mU2VydmljZT8ucGlja3VwU2NoZWR1bGU/LnNwZWNpYWxEYXlPcGVuaW5nTGlzdDtcclxuICAgICAgICAgIHRoaXMuZ2V0RGV0YWlsUmVzcG9uc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuXHJcbiAgICAvL2NvZGUgZm9yIERlbGl2ZXJ5IFNpdGUgRGVsaXZlcnkgUmVxdWlyZW1lbnRzIHRvb2x0aXBcclxuICAgIHRoaXMuY21zU2VydmljZVxyXG4gICAgICAuZ2V0Q29tcG9uZW50RGF0YSgnU2l0ZURlbGl2ZXJ5UmVxdWlyZW1lbnRzQ29tcG9uZW50JylcclxuICAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgIHRoaXMuc2l0ZURlbGl2ZXJ5UmVxdWlyZW1lbnRzID0gZGF0YT8uY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgLy9jb2RlIGZvciBDbGljayBBbmQgQ29sbGVjdCBDb21tZW50cyB0b29sdGlwXHJcbiAgICB0aGlzLmNtc1NlcnZpY2VcclxuICAgICAgLmdldENvbXBvbmVudERhdGEoJ0NvbW1lbnRzQ2xpY2tBbmRDb2xsZWN0Q29tcG9uZW50JylcclxuICAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgIHRoaXMuY2xpY2thbmRDb2xsZWN0Q29tbWVudHMgPSBkYXRhPy5jb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAvL2NvZGUgZm9yIGhlYWRlciBjb250ZW50XHJcbiAgICB0aGlzLmNtc1NlcnZpY2VcclxuICAgICAgLmdldENvbXBvbmVudERhdGEoJ2NoZWNrb3V0SGVhZGVyQ29udGVudENvbXBvbmVudCcpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrb3V0SGVhZGVyQ29udGVudCA9IGRhdGE/LmNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBnZXREZXRhaWxSZXNwb25zZSgpIHtcclxuICAgIHRoaXMudGVtcEJyYW5jaExpc3REYXRhID0gdGhpcy5yZXNwb25zZURhdGE/LnBvaW50T2ZTZXJ2aWNlPy5waWNrdXBTY2hlZHVsZT8ud2Vla0RheU9wZW5pbmdMaXN0O1xyXG4gICAgdGhpcy5icmFuY2hBZGRyZXNzID0gdGhpcy5yZXNwb25zZURhdGE/LnBvaW50T2ZTZXJ2aWNlPy5hZGRyZXNzO1xyXG4gICAgdGhpcy5icmFuY2hEaXNwbGF5TmFtZSA9IHRoaXMucmVzcG9uc2VEYXRhPy5wb2ludE9mU2VydmljZT8uZGlzcGxheU5hbWU7XHJcbiAgICB2YXIgY2hlY2tvdXREYXRlVmFsdWUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgbGV0IGkgPSAwO1xyXG4gICAgbGV0IGogPSAwO1xyXG4gICAgaWYgKHRoaXMucmVzcG9uc2VEYXRhLmRlbGl2ZXJ5TWluTGVhZFRpbWUgfHwgdGhpcy5yZXNwb25zZURhdGEucGlja1VwTWluTGVhZFRpbWUpXHJcbiAgICAgIHRoaXMubWluTGVhZFRpbWUgPSB0aGlzLmlzRGVsaXZlcnlCb3ggPyB0aGlzLnJlc3BvbnNlRGF0YS5kZWxpdmVyeU1pbkxlYWRUaW1lIDogdGhpcy5yZXNwb25zZURhdGEucGlja1VwTWluTGVhZFRpbWU7XHJcbiAgICB3aGlsZSAoaSA8IHRoaXMubWluTGVhZFRpbWUgKyAxKSB7XHJcbiAgICAgIGlmICh0aGlzLmlzV2Vla2RheU9mZihjaGVja291dERhdGVWYWx1ZSkpIHtcclxuICAgICAgICBjaGVja291dERhdGVWYWx1ZSA9IHRoaXMuYWRkRGF5c1RvRGF0ZShjaGVja291dERhdGVWYWx1ZSwgMSk7XHJcbiAgICAgICAgaiA9IGogKyAxO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNoZWNrb3V0RGF0ZVZhbHVlID0gdGhpcy5hZGREYXlzVG9EYXRlKGNoZWNrb3V0RGF0ZVZhbHVlLCAxKTtcclxuICAgICAgICBpID0gaSArIDE7XHJcbiAgICAgICAgaiA9IGogKyAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBmaW5hbERhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgaiA9IGogLSAxO1xyXG4gICAgdGhpcy5uZ2JNaW5EYXRlID0ge1xyXG4gICAgICBkYXk6IChmaW5hbERhdGUuZ2V0RGF0ZSgpICsgaiA+IDMwKSA/IGZpbmFsRGF0ZS5nZXREYXRlKCkgKyBqIC0gMzAgOiBmaW5hbERhdGUuZ2V0RGF0ZSgpICsgaixcclxuICAgICAgbW9udGg6IChmaW5hbERhdGUuZ2V0RGF0ZSgpICsgaikgPiAzMCA/IGZpbmFsRGF0ZS5nZXRNb250aCgpID09IDExID8gMSA6IGZpbmFsRGF0ZS5nZXRNb250aCgpICsgMiA6IGZpbmFsRGF0ZS5nZXRNb250aCgpICsgMSxcclxuICAgICAgeWVhcjogKGZpbmFsRGF0ZS5nZXREYXRlKCkgKyBqKSA+IDMwICYmIGZpbmFsRGF0ZS5nZXRNb250aCgpID09IDExID8gZmluYWxEYXRlLmdldEZ1bGxZZWFyKCkgKyAxIDogZmluYWxEYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGZEYXRlID0gbmV3IERhdGUoKTtcclxuICAgIGZEYXRlLnNldERhdGUoZmluYWxEYXRlLmdldERhdGUoKSArIGopXHJcbiAgICB0aGlzLnVwZGF0ZU1pbk1heFRpbWUoZkRhdGUpO1xyXG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcbiAgaXNXZWVrZGF5T2ZmKGRhdGU6IERhdGUpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLndlZWtEYXlPcGVuaW5nTGlzdFtkYXRlLmdldERheSgpIC0gMV0/LmNsb3NlZCA9PSB0cnVlIHx8IChkYXRlLmdldERheSgpKSA9PSAwKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICBhZGREYXlzVG9EYXRlKGRhdGU6IERhdGUsIGRheXM6IG51bWJlcik6IERhdGUge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICByZXN1bHQuc2V0RGF0ZShyZXN1bHQuZ2V0RGF0ZSgpICsgZGF5cyk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuICB1cGRhdGVNaW5NYXhUaW1lKGRhdGU6IERhdGUpIHtcclxuICAgIGlmICh0aGlzLmhhc1RpbWVTcGVjaWZpY1JlcXVlc3QpIHtcclxuICAgICAgLy8gVGltZSBzcGVjaWZpYyBkZWxpdmVyeVxyXG4gICAgICBcclxuICAgICAgdGhpcy5taW5UaW1lID0gbmV3IERhdGUoXHJcbiAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgIGRhdGUuZ2V0TW9udGgoKSxcclxuICAgICAgICBkYXRlLmdldERhdGUoKSxcclxuICAgICAgICB0aGlzLnNwZWNpZmljRGVsaXZlcnk/Lm9wZW5pbmdUaW1lPy5ob3VyIHx8IDYsXHJcbiAgICAgICAgdGhpcy5zcGVjaWZpY0RlbGl2ZXJ5Py5vcGVuaW5nVGltZT8ubWludXRlIHx8IDAsXHJcbiAgICAgICAgMFxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmZyb21NYXhUaW1lID0gbmV3IERhdGUoXHJcbiAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgIGRhdGUuZ2V0TW9udGgoKSxcclxuICAgICAgICBkYXRlLmdldERhdGUoKSxcclxuICAgICAgICB0aGlzLnNwZWNpZmljRGVsaXZlcnk/LmNsb3NpbmdUaW1lPy5ob3VyIHx8IDEyLFxyXG4gICAgICAgIHRoaXMuc3BlY2lmaWNEZWxpdmVyeT8uY2xvc2luZ1RpbWU/Lm1pbnV0ZSB8fCAwLFxyXG4gICAgICAgIDBcclxuICAgICAgKTtcclxuICAgIH1lbHNle1xyXG4gICAgY29uc3QgdG9kYXlEYXk6IGFueSA9IHRoaXMud2Vla0RheU9wZW5pbmdMaXN0W2RhdGUuZ2V0RGF5KCkgLSAxXTtcclxuICAgIHRoaXMubWluVGltZSA9IG5ldyBEYXRlKFxyXG4gICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgIGRhdGUuZ2V0TW9udGgoKSxcclxuICAgICAgZGF0ZS5nZXREYXRlKCksXHJcbiAgICAgIHRvZGF5RGF5Py5vcGVuaW5nVGltZT8uaG91ciB8fCA5LFxyXG4gICAgICB0b2RheURheT8ub3BlbmluZ1RpbWU/Lm1pbnV0ZSB8fCAwLFxyXG4gICAgICAwXHJcbiAgICApO1xyXG4gICAgdGhpcy5taW5Ub1RpbWUgPSBuZXcgRGF0ZShcclxuICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICBkYXRlLmdldE1vbnRoKCksXHJcbiAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxyXG4gICAgICB0b2RheURheT8ub3BlbmluZ1RpbWU/LmhvdXIgfHwgMTEsXHJcbiAgICAgIHRvZGF5RGF5Py5vcGVuaW5nVGltZT8ubWludXRlIHx8IDAsXHJcbiAgICAgIDBcclxuICAgICk7XHJcbiAgICB0aGlzLmZyb21NYXhUaW1lID0gbmV3IERhdGUoXHJcbiAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcclxuICAgICAgZGF0ZS5nZXRNb250aCgpLFxyXG4gICAgICBkYXRlLmdldERhdGUoKSxcclxuICAgICAgdG9kYXlEYXk/LmNsb3NpbmdUaW1lLmZvcm1hdHRlZEhvdXIuc3BsaXQoJyAnKVsxXSA9PSAncG0nXHJcbiAgICAgICAgPyB0b2RheURheT8uY2xvc2luZ1RpbWU/LmhvdXIgKyAxMFxyXG4gICAgICAgIDogdG9kYXlEYXk/LmNsb3NpbmdUaW1lPy5ob3VyIHx8IDE1LFxyXG4gICAgICB0b2RheURheT8uY2xvc2luZ1RpbWU/Lm1pbnV0ZSB8fCAwLFxyXG4gICAgICAwXHJcbiAgICApO1xyXG4gICAgdGhpcy5tYXhUaW1lID0gbmV3IERhdGUoXHJcbiAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcclxuICAgICAgZGF0ZS5nZXRNb250aCgpLFxyXG4gICAgICBkYXRlLmdldERhdGUoKSxcclxuICAgICAgdG9kYXlEYXk/LmNsb3NpbmdUaW1lLmZvcm1hdHRlZEhvdXIuc3BsaXQoJyAnKVsxXSA9PSAncG0nXHJcbiAgICAgICAgPyB0b2RheURheT8uY2xvc2luZ1RpbWU/LmhvdXIgKyAxMlxyXG4gICAgICAgIDogdG9kYXlEYXk/LmNsb3NpbmdUaW1lPy5ob3VyIHx8IDE3LFxyXG4gICAgICB0b2RheURheT8uY2xvc2luZ1RpbWU/Lm1pbnV0ZSB8fCAwLFxyXG4gICAgICAwXHJcbiAgICApO1xyXG4gIH1cclxuICAgIHRoaXMudXBkYXRlUmVxdWVzdGVkVGltZSgpO1xyXG4gIH1cclxuICB1cGRhdGVSZXF1ZXN0ZWRUaW1lKCkge1xyXG4gICAgdGhpcy5taW5UaW1lID0gdGhpcy5nZXRSb3VuZE1pblRpbWUodGhpcy5taW5UaW1lKTtcclxuICAgIHRoaXMubWluVG9UaW1lID0gdGhpcy5nZXRSb3VuZE1pblRpbWUodGhpcy5taW5Ub1RpbWUpO1xyXG4gICAgLy9pZiBjbGlja2luZyBvbiByYWRpbyBidXR0b24gZm9yIGRlbGl2ZXJ5LCBzaG91bGQgcGljayA2IGFtLCBpZiB0aW1lIGRvZXMgbm90IGdvIGZpbmUgdGhlbiByZXZlcnQgaXRcclxuICAgIGlmKHRoaXMuaGFzVGltZVNwZWNpZmljUmVxdWVzdCl7XHJcbiAgICAgIGNvbnN0IGZvcm1hdHRlZE1pblRpbWUgPSB0aGlzLm1pblRpbWUudG9Mb2NhbGVUaW1lU3RyaW5nKCdlbi1VUycsIHtob3VyOiAnMi1kaWdpdCcsbWludXRlOiAnMi1kaWdpdCcsaG91cjEyOiB0cnVlIH0pO1xyXG4gICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBGcm9tVGltZSA9IGZvcm1hdHRlZE1pblRpbWU7XHJcbiAgICAgfWVsc2V7XHJcbiAgICAgIGNvbnN0IGZvcm1hdHRlZG1pblRvVGltZSA9IHRoaXMubWluVG9UaW1lLnRvTG9jYWxlVGltZVN0cmluZygnZW4tVVMnLCB7aG91cjogJzItZGlnaXQnLG1pbnV0ZTogJzItZGlnaXQnLGhvdXIxMjogdHJ1ZSB9KTtcclxuICAgICAgY29uc3QgZm9ybWF0dGVkbWF4VGltZSA9IHRoaXMubWF4VGltZS50b0xvY2FsZVRpbWVTdHJpbmcoJ2VuLVVTJywge2hvdXI6ICcyLWRpZ2l0JyxtaW51dGU6ICcyLWRpZ2l0Jyxob3VyMTI6IHRydWV9KTtcclxuICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwVG9UaW1lID0gdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwVG9UaW1lID8gdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwVG9UaW1lIDogZm9ybWF0dGVkbWF4VGltZTtcclxuICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRnJvbVRpbWUgPSB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBGcm9tVGltZSA/IHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcEZyb21UaW1lIDogZm9ybWF0dGVkbWluVG9UaW1lO1xyXG4gICAgfVxyXG59XHJcbiAgaXNEaXNhYmxlZCA9IChkYXRlOiBOZ2JEYXRlU3RydWN0KSA9PiB7XHJcbiAgICBjb25zdCBkYXkgPSBuZXcgRGF0ZShcclxuICAgICAgZGF0ZS55ZWFyLFxyXG4gICAgICBkYXRlLm1vbnRoIC0gMSxcclxuICAgICAgZGF0ZS5kYXkpPy5nZXREYXkoKVxyXG4gICAgaWYgKHRoaXMud2Vla0RheU9wZW5pbmdMaXN0W2RheSAtIDFdPy5jbG9zZWQpXHJcbiAgICAgIHJldHVybiB0cnVlXHJcbiAgICBjb25zdCBkYXQgPSBuZXcgRGF0ZShkYXRlLnllYXIsIGRhdGUubW9udGggLSAxLCBkYXRlLmRheSk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmdldFNwZWNpYWxEYXlzKGRhdGUpID4gLTEgfHxcclxuICAgICAgKHRoaXMud2Vla0RheU9wZW5pbmdMaXN0WzVdLmNsb3NlZCA9PSB0cnVlICYmIGRhdC5nZXREYXkoKSA9PT0gNikgfHxcclxuICAgICAgZGF0LmdldERheSgpID09PSAwXHJcbiAgICApO1xyXG4gIH07XHJcblxyXG4gIGdldFNwZWNpYWxEYXlzKGRhdGU6IE5nYkRhdGVTdHJ1Y3QpIHtcclxuICAgIGNvbnN0IGluZCA9IHRoaXMuc3BlY2lhbERheU9wZW5pbmdMaXN0Py5maW5kSW5kZXgoKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBkYXRlT2JqID0gZWxlbWVudC5mb3JtYXR0ZWREYXRlLnNwbGl0KCcvJyk7XHJcbiAgICAgIHJldHVybiBkYXRlT2JqWzBdID09IGRhdGUuZGF5ICYmIGRhdGVPYmpbMV0gPT0gZGF0ZS5tb250aDtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGluZDtcclxuICB9XHJcblxyXG4gIGdldFJvdW5kTWluVGltZShtaW5UaW1lOiBhbnkpIHtcclxuICAgIHZhciBjb2ZmID0gMTAwMCAqIDYwICogMzA7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoTWF0aC5jZWlsKG1pblRpbWUuZ2V0VGltZSgpIC8gY29mZikgKiBjb2ZmKTtcclxuICB9XHJcblxyXG4gIHRpbWVDbGljayhldmVudDogRXZlbnQsIHRpbWVPYmo6IGFueSkge1xyXG4gICAgaWYgKHRpbWVPYmogJiYgdGltZU9iai5pbnB1dFdyYXBwZXIpIHtcclxuICAgICAgdGltZU9iai5pbnB1dFdyYXBwZXIuY29udGFpbmVyICYmXHJcbiAgICAgICAgdGltZU9iai5pbnB1dFdyYXBwZXIuY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoJ2UtZGlzYWJsZWQnKTtcclxuICAgICAgdGltZU9iai5pbnB1dFdyYXBwZXIuYnV0dG9ucyAmJlxyXG4gICAgICAgIHRpbWVPYmouaW5wdXRXcmFwcGVyLmJ1dHRvbnNbMF0gJiZcclxuICAgICAgICB0aW1lT2JqLmlucHV0V3JhcHBlci5idXR0b25zWzBdLmNsYXNzTGlzdC5yZW1vdmUoJ2UtZGlzYWJsZWQnKTtcclxuICAgICAgdGltZU9iai5zaG93KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0aW1lVG9DbGljayhldmVudDogRXZlbnQsIHRpbWVPYmo6IGFueSkge1xyXG4gICAgaWYgKHRpbWVPYmogJiYgdGltZU9iai5pbnB1dFdyYXBwZXIpIHtcclxuICAgICAgdGltZU9iai5pbnB1dFdyYXBwZXIuY29udGFpbmVyICYmXHJcbiAgICAgICAgdGltZU9iai5pbnB1dFdyYXBwZXIuY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoJ2UtZGlzYWJsZWQnKTtcclxuICAgICAgdGltZU9iai5pbnB1dFdyYXBwZXIuYnV0dG9ucyAmJlxyXG4gICAgICAgIHRpbWVPYmouaW5wdXRXcmFwcGVyLmJ1dHRvbnNbMF0gJiZcclxuICAgICAgICB0aW1lT2JqLmlucHV0V3JhcHBlci5idXR0b25zWzBdLmNsYXNzTGlzdC5yZW1vdmUoJ2UtZGlzYWJsZWQnKTtcclxuICAgICAgdGltZU9iai5zaG93KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVTdGF0aWNUaW1lKGhvdXJzOiBudW1iZXIsIG1pbnV0ZXM6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGUgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgICAgdGhpcy5taW5Ub1RpbWUgPSBuZXcgRGF0ZShcclxuICAgICAgICB0b2RheS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgIHRvZGF5LmdldE1vbnRoKCksXHJcbiAgICAgICAgdG9kYXkuZ2V0RGF0ZSgpLFxyXG4gICAgICAgIGhvdXJzLFxyXG4gICAgICAgIG1pbnV0ZXMsXHJcbiAgICAgICAgMFxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGU7XHJcbiAgICAgIHRoaXMubWluVG9UaW1lID0gbmV3IERhdGUoXHJcbiAgICAgICAgZGF0ZS55ZWFyLFxyXG4gICAgICAgIGRhdGUubW9udGgsXHJcbiAgICAgICAgZGF0ZS5kYXksXHJcbiAgICAgICAgaG91cnMsXHJcbiAgICAgICAgbWludXRlcyxcclxuICAgICAgICAwXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm1pblRvVGltZSA9IHRoaXMuZ2V0Um91bmRNaW5UaW1lKHRoaXMubWluVG9UaW1lKTtcclxuICB9XHJcbiAgZ2V0TmV3QWRkcmVzcyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm5ld0FkZHJlc3MgPSBldmVudDtcclxuICB9XHJcbiAgcmV2aWV3T3JkZXIoKSB7XHJcbiAgICB0aGlzLmlzU3VibWl0dGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuY2hlY2tvdXRGb3JtLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5jaGVja291dEZvcm0udmFsaWQgJiZcclxuICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRGF0ZSAhPSB1bmRlZmluZWQgJiZcclxuICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwVG9UaW1lICE9IHVuZGVmaW5lZCAmJlxyXG4gICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBEYXRlLmRheSAhPSB1bmRlZmluZWQgJiZcclxuICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRnJvbVRpbWUgIT0gdW5kZWZpbmVkXHJcbiAgICApIHtcclxuICAgICAgaWYgKHRoaXMuaXNEZWxpdmVyeUJveCAmJiB0aGlzLnNlbGVjdGVkUmVjZW50QWRkcmVzcz8uaWQgPT0gJycpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaXNEZWxpdmVyeUJveCAmJiB0aGlzLnNlbGVjdGVkQWRkcmVzcyA9PSAnYWRkTmV3QWRkcmVzcycgJiYgIXRoaXMubmV3QWRkcmVzcykge1xyXG4gICAgICAgIHRoaXMuZXJyb3JJbmQkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5pbmZvTWVzc2FnZSA9ICdQbGVhc2UgU2VsZWN0IGFuZCBDb25maXJtIEFkZHJlc3MgZnJvbSBNYXAnO1xyXG4gICAgICAgIHJldHVyblxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5jYXJ0SUQgPSB0aGlzLmNhcnRJZDtcclxuICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5QWRkcmVzc1BLID0gdGhpcy5pc0RlbGl2ZXJ5Qm94ID09IGZhbHNlID8gdGhpcy5icmFuY2hBZGRyZXNzPy5pZCA6IHRoaXMuc2VsZWN0ZWRSZWNlbnRBZGRyZXNzPy5pZDtcclxuICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5TWV0aG9kID0gdGhpcy5pc0RlbGl2ZXJ5Qm94ID8gdGhpcy5kZWxpdmVyeU1vZGVzWzBdLmNvZGUgOiB0aGlzLmRlbGl2ZXJ5TW9kZXNbMV0uY29kZTtcclxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRBZGRyZXNzID09ICdhZGROZXdBZGRyZXNzJykge1xyXG4gICAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5uZXdBZGRyZXNzID0gdGhpcy5uZXdBZGRyZXNzO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLmNoZWNrb3V0Rm9ybURhdGEubmV3QWRkcmVzcztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuc2VsZWN0ZWRBZGRyZXNzID0gdGhpcy5zZWxlY3RlZEFkZHJlc3M7XHJcbiAgICAgIGxldCBzZXNzaW9uRGF0YSA9IHRoaXMuY2hlY2tvdXRGb3JtRGF0YTtcclxuICAgICAgLy90aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBGcm9tVGltZSA9IHRoaXMuY29sbGVjdFRpbWVPYmo/LmdldFRleHQoKTtcclxuICAgICAgLy90aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBUb1RpbWUgPSB0aGlzLmNoZWNrb3V0VG9UaW1lPy5nZXRUZXh0KCk7XHJcbiAgICAgIGlmKHRoaXMuaXNEZWxpdmVyeUJveCl7XHJcbiAgICAgICAgdGhpcy5taW5Ub1RpbWUgPSB0aGlzLm1pblRvVGltZS50b0xvY2FsZVRpbWVTdHJpbmcoJ2VuLVVTJywge2hvdXI6ICcyLWRpZ2l0JyxtaW51dGU6ICcyLWRpZ2l0Jyxob3VyMTI6IHRydWV9KTtcclxuICAgICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBUb1RpbWUgPSB0aGlzLm1pblRvVGltZTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgZGVsaXZlcnlQaWNrVXBEYXRlID0gdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRGF0ZTtcclxuICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRGF0ZSA9IHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGU/LmRheSArICcvJyArIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGU/Lm1vbnRoICsgJy8nICsgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRGF0ZT8ueWVhcjtcclxuICAgICAgY29uc3QgcmV2aWV3RGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGVja291dEZvcm1EYXRhKSk7XHJcbiAgICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlXHJcbiAgICAgICAgLlZhbGlkYXRlQ2hlY2tvdXREYXRlVGltZSh0aGlzLmNoZWNrb3V0Rm9ybURhdGEpXHJcbiAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgIChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2Uuc3RhdHVzID09ICdTVUNDRVNTJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmNoZWNrb3V0UmV2aWV3QW5kT3JkZXIocmV2aWV3RGF0YSkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zaG93V2FpdEN1cnNvci5uZXh0KHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBEYXRlID0gZGVsaXZlcnlQaWNrVXBEYXRlO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgICAgICAgICAgICAgICAgJ2NoZWNrb3V0RGF0YScsXHJcbiAgICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShzZXNzaW9uRGF0YSlcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy9yZXZpZXctb3JkZXInO1xyXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JJbmQkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRGF0ZSA9XHJcbiAgICAgICAgICAgICAgICAgICAgICBkZWxpdmVyeVBpY2tVcERhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmZvTWVzc2FnZSA9IGRhdGEubWVzc2FnZXNbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93V2FpdEN1cnNvci5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIChlcm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGUgPSBkZWxpdmVyeVBpY2tVcERhdGU7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd1dhaXRDdXJzb3IubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmVycm9ySW5kJC5uZXh0KHRydWUpO1xyXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGUgPSBkZWxpdmVyeVBpY2tVcERhdGU7XHJcbiAgICAgICAgICAgICAgdGhpcy5pbmZvTWVzc2FnZSA9IHJlc3BvbnNlLm1lc3NhZ2VzWzBdO1xyXG4gICAgICAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93V2FpdEN1cnNvci5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBEYXRlID0gZGVsaXZlcnlQaWNrVXBEYXRlO1xyXG4gICAgICAgICAgICB0aGlzLmVycm9ySW5kJC5uZXh0KHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLmluZm9NZXNzYWdlID0gZXJyb3I/LmVycm9yPy5lcnJvcnNbMF0ubWVzc2FnZTtcclxuICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93V2FpdEN1cnNvci5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Gcm9tVGltZUNoYW5nZWQodGltZTogYW55KSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRpbWU7XHJcbiAgICB0aGlzLkluaXRpYWx0aW1lID0gdGltZTtcclxuICAgIGxldCBob3VycyA9IE51bWJlcih2YWx1ZS5zcGxpdCgnOicpWzBdKTtcclxuICAgIGxldCBtaW51dGVzID0gTnVtYmVyKHZhbHVlLnNwbGl0KCcgJylbMF0uc3BsaXQoJzonKVsxXSk7XHJcbiAgICBpZiAodmFsdWUuc3BsaXQoJyAnKVsxXSA9PSAnUE0nKSBob3VycyA9IGhvdXJzID09IDEyID8gaG91cnMgOiBob3VycyArIDEyO1xyXG4gICAgdGhpcy51cGRhdGVTdGF0aWNUaW1lKGhvdXJzLCBtaW51dGVzKzMwKTtcclxuICAgIGlmICh0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBUb1RpbWUgPD0gdGhpcy5nZXRSb3VuZE1pblRpbWUodGhpcy5taW5Ub1RpbWUpKVxyXG4gICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBUb1RpbWUgPSB0aGlzLmdldFJvdW5kTWluVGltZSh0aGlzLm1pblRvVGltZSlcclxuICB9XHJcblxyXG4gIGRhdGVjaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGV2ZW50Lm1vbnRoICsgJy8nICsgZXZlbnQuZGF5ICsgJy8nICsgZXZlbnQueWVhcik7XHJcbiAgICB0aGlzLnVwZGF0ZU1pbk1heFRpbWUoZGF0ZSk7XHJcbiAgfVxyXG5cclxuICBhZGROZXdBZGRyZXNzKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFkZHJlc3MgPSAnYWRkTmV3QWRkcmVzcyc7XHJcbiAgICB0aGlzLnNlbGVjdGVkUmVjZW50QWRkcmVzcyA9ICcnO1xyXG5cclxuICB9XHJcblxyXG4gIGNoYW5nZURlbGl2ZXJ5T3B0aW9ucygpIHtcclxuICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcEZyb21UaW1lID0gbnVsbDtcclxuICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcFRvVGltZSA9IG51bGw7XHJcbiAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBEYXRlID0gbnVsbDtcclxuICAgIHRoaXMud2Vla0RheU9wZW5pbmdMaXN0ID0gdGhpcy5pc0RlbGl2ZXJ5Qm94XHJcbiAgICAgID8gdGhpcy5yZXNwb25zZURhdGEucG9pbnRPZlNlcnZpY2U/LmRlbGl2ZXJ5U2NoZWR1bGU/LndlZWtEYXlPcGVuaW5nTGlzdFxyXG4gICAgICA6IHRoaXMucmVzcG9uc2VEYXRhLnBvaW50T2ZTZXJ2aWNlPy5waWNrdXBTY2hlZHVsZT8ud2Vla0RheU9wZW5pbmdMaXN0O1xyXG4gICAgdGhpcy5zcGVjaWFsRGF5T3BlbmluZ0xpc3QgPSB0aGlzLmlzRGVsaXZlcnlCb3hcclxuICAgICAgPyB0aGlzLnJlc3BvbnNlRGF0YS5wb2ludE9mU2VydmljZT8uZGVsaXZlcnlTY2hlZHVsZT8uc3BlY2lhbERheU9wZW5pbmdMaXN0XHJcbiAgICAgIDogdGhpcy5yZXNwb25zZURhdGEucG9pbnRPZlNlcnZpY2U/LnBpY2t1cFNjaGVkdWxlPy5zcGVjaWFsRGF5T3BlbmluZ0xpc3Q7XHJcbiAgICAgIHRoaXMuZ2V0RGV0YWlsUmVzcG9uc2UoKTtcclxuICB9XHJcbiAgdGltZVJlcXVlc3RDaGFuZ2UoKXtcclxuICAgIHRoaXMuaGFzVGltZVNwZWNpZmljUmVxdWVzdCA9IHRydWU7XHJcbiAgICB0aGlzLmdldERldGFpbFJlc3BvbnNlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJsb2FkaW5nXCIgKm5nSWY9XCJzaG93V2FpdEN1cnNvciB8IGFzeW5jIFwiPkxvYWRpbmcmIzgyMzA7PC9kaXY+XHJcbjxhcHAtY3VzdG9tLWJyZWFkY3J1bSBbY3VzdG9tQ3J1bWJEYXRhXT1cImJyZWFkY3J1bWJEYXRhXCIgY2xhc3M9XCJwcm9kdWN0cy1icmVhZGN1bXNcIj48L2FwcC1jdXN0b20tYnJlYWRjcnVtPlxyXG48ZGl2IGNsYXNzPVwiY29udGFpbmVyIG1iLTEyMFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInRvcC1jaGVja291dCBjb2wtc20tOVwiPlxyXG4gICAgICAgIDxoMSBjbGFzcz1cInBhZ2VUaXRsZVwiPnt7cGFnZVRpdGxlfX08L2gxPlxyXG4gICAgICAgIDwhLS0gPHAgY2xhc3M9XCJjaGVja291dC1oZWFkZXItcGFyYWdyYXBoXCI+e3tjaGVja291dEhlYWRlckNvbnRlbnR9fTwvcD4gLS0+XHJcbiAgICAgICAgICAgIDxjeC1wYWdlLXNsb3QgY2xhc3M9XCJjaGVja291dC1oZWFkZXItcGFyYWdyYXBoXCIgcG9zaXRpb249XCJDaGVja291dFBhcmFncmFwaENvbnRleHRTbG90LWNoZWNrb3V0UGFnZVwiPjwvY3gtcGFnZS1zbG90PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGNvbnRlbnQtcm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMiBjb2wtbGctNyBvZmZzZXQtbGctM1wiPlxyXG4gICAgICAgICAgICA8Zm9ybSAjY2hlY2tvdXRGb3JtPVwibmdGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQtaGVhZGVyIGNsYXNzPVwibGluZS1zdGVwLW5hdmlnYXRpb24gZmlyc3Qtc3RlcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIGN1cy10aXRsZS1tYXJnaW4tY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJmb250LWJvbGRcIj4gPHNwYW4gY2xhc3M9XCJjYXJkLW51bWJlclwiPiAxIDwvc3Bhbj4gQ2hvb3NlIFlvdXIgRGVsaXZlcnkgTWV0aG9kPC9tYXQtY2FyZC10aXRsZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1jYXJkIGNsYXNzPVwiY3VzdG9tLW1hdC1jYXJkIGxpbmUtc3RlcC1uYXZpZ2F0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWNvbnRhaW5lciBkLXNtLWlubGluZS1mbGV4IGQtbWQtZmxleCBhbGlnbi1jb250ZW50LWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZCBjbGFzcz1cIm1hdGxmdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwiYm94LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJpc0RlbGl2ZXJ5Qm94ID0gdHJ1ZTsgY2hhbmdlRGVsaXZlcnlPcHRpb25zKClcIiBjbGFzcz1cImRlbGl2ZXJ5LWJveCBkLXNtLWlubGluZS1mbGV4IGFsaWduLWl0ZW1zLXNtLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtc20tYXJvdW5kXCIgW25nQ2xhc3NdPVwiaXNEZWxpdmVyeUJveCA/IEFDVElWRV9JVEVNIDogJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJkZWxpdmVyeS1pbWdcIiBzcmM9XCIuLi8uLi8uLi8uLi9hc3NldHMvaW1hZ2VzL2RlbGl2ZXJ5LnN2Z1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiaXNEZWxpdmVyeUJveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjaGVjay1zcXVhcmUtZGVsXCIgc3JjPVwiLi4vLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9jaGVjay1zcXVhcmUuc3ZnXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVsaXZlcnktaGVhZGluZy10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGU+e3tkZWxpdmVyeU1vZGVzWzBdPy5uYW1lIHx8ICdEZWxpdmVyeSd9fSA8L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLXN1YnRpdGxlPiB7e2RlbGl2ZXJ5TW9kZXNbMF0/LmRlc2NyaXB0aW9uIHx8ICdXZSBkZWxpdmVyIHJpZ2h0IHRvIHlvdXIgZG9vci4nfX0gPC9tYXQtY2FyZC1zdWJ0aXRsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQgY2xhc3M9XCJtYXRyaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwiYm94LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJpc0RlbGl2ZXJ5Qm94ID0gZmFsc2UgO2hhc1RpbWVTcGVjaWZpY1JlcXVlc3QgPSBmYWxzZTsgY2hhbmdlRGVsaXZlcnlPcHRpb25zKClcIiBjbGFzcz1cImNvbGxlY3QtYm94IGQtc20taW5saW5lLWZsZXggYWxpZ24taXRlbXMtc20tY2VudGVyIGp1c3RpZnktY29udGVudC1zbS1hcm91bmRcIiBbbmdDbGFzc109XCJpc0RlbGl2ZXJ5Qm94ID8gJycgOiBBQ1RJVkVfSVRFTVwiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwicGlja3VwLWltZ1wiIHNyYz1cIi4uLy4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvcGlja3VwLnN2Z1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIWlzRGVsaXZlcnlCb3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY2hlY2stc3F1YXJlLWNjXCIgc3JjPVwiLi4vLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9jaGVjay1zcXVhcmUuc3ZnXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVsaXZlcnktaGVhZGluZy10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGU+IHt7ZGVsaXZlcnlNb2Rlc1sxXT8ubmFtZSB8fCAnQ2xpY2sgJiBDb2xsZWN0J319PC9tYXQtY2FyZC10aXRsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1zdWJ0aXRsZT4ge3tkZWxpdmVyeU1vZGVzWzFdPy5kZXNjcmlwdGlvbiB8fCAnQ29sbGVjdCBmcm9tIHlvdXIgbmVhcmVzdCBicmFuY2guJyB9fTwvbWF0LWNhcmQtc3VidGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQ+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQtaGVhZGVyIGNsYXNzPVwibGluZS1zdGVwLW5hdmlnYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBjdXMtdGl0bGUtbWFyZ2luLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlIGNsYXNzPVwiZm9udC1ib2xkXCI+IDxzcGFuIGNsYXNzPVwiY2FyZC1udW1iZXJcIj4gMiA8L3NwYW4+IFB1cmNoYXNlIE9yZGVyIE51bWJlcjwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgICAgICAgICAgIDxtYXQtY2FyZCBjbGFzcz1cImN1c3RvbS1tYXQtY2FyZCBsaW5lLXN0ZXAtbmF2aWdhdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250YWluZXIgZm9yLW1vYiBjb2wtc20tNiBwbC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+UHVyY2hhc2UgT3JkZXIgTnVtYmVyICA8c3BhbiBjbGFzcz1cIm1hcmtlclwiPio8L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCAjcG9OdW1iZXI9XCJuZ01vZGVsXCIgbmFtZT1cInBvTnVtYmVyXCIgaWQ9XCJwb051bWJlclwiIHR5cGU9XCJ0ZXh0XCIgbWF4bGVuZ3RoPVwiMTVcIiBbKG5nTW9kZWwpXT1cImNoZWNrb3V0Rm9ybURhdGEucG9OdW1iZXJcIiBjbGFzcz1cImZvcm0tY29udHJvbCBqb2JvcmRlci1pbnB1dFwiIHJlcXVpcmVkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJpc1N1Ym1pdHRlZFwiIFtoaWRkZW5dPVwicG9OdW1iZXIudmFsaWRcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1cmNoYXNlIE9yZGVyIE51bWJlciBpcyByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtY2FyZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQtaGVhZGVyIGNsYXNzPVwibGluZS1zdGVwLW5hdmlnYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBjdXMtdGl0bGUtbWFyZ2luLWNhcmRcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC10aXRsZSBjbGFzcz1cImZvbnQtYm9sZFwiPiA8c3BhbiBjbGFzcz1cImNhcmQtbnVtYmVyXCI+IDMgPC9zcGFuPiB7e2lzRGVsaXZlcnlCb3ggPyAnRGVsaXZlcnknOiAnUGlja3VwICd9fSBEYXRlIGFuZCBUaW1lPC9tYXQtY2FyZC10aXRsZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtY2FyZCBjbGFzcz1cImN1c3RvbS1tYXQtY2FyZCBsaW5lLXN0ZXAtbmF2aWdhdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jb250YWluZXIgZm9yLW1vYiBjb2wtc20tNiBwbC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZGF0ZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkRhdGUgPHNwYW4gY2xhc3M9XCJtYXJrZXJcIj4qPC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBjbGFzcz1cIm5nYi1kYXRlLWZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbZmlyc3REYXlPZldlZWtdPVwiN1wiICNkZWxpdmVyeVBpY2tVcERhdGU9XCJuZ01vZGVsXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgY3VzLXdpZHRoIGRhdGUtaW5wdXRcIiBbKG5nTW9kZWwpXT1cImNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBEYXRlXCIgaWQ9XCJkYXRlXCIgbmFtZT1cInR4dERhdGVcIiB0YWJpbmRleD1cIi0xXCIgb25rZXlkb3duPVwicmV0dXJuIGZhbHNlXCIgcGxhY2Vob2xkZXI9XCJERC1NTS1ZWVlZXCIgbmdiRGF0ZXBpY2tlciAjbmdEYXRlPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21pbkRhdGVdPVwibmdiTWluRGF0ZVwiIChkYXRlU2VsZWN0KT1cImRhdGVjaGFuZ2UoJGV2ZW50KVwiIGNvbnRhaW5lcj1cImJvZHlcIiByZXF1aXJlZCBbbWFya0Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZCBjdXN0b20tZGF0ZS1idXR0b25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBjYWxlbmRhclwiIChjbGljayk9XCJuZ0RhdGUudG9nZ2xlKClcIiB0eXBlPVwiYnV0dG9uXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cImlzU3VibWl0dGVkICYmICFjaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRGF0ZVwiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZSBpcyByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgWyhuZ01vZGVsKV09XCJoYXNUaW1lU3BlY2lmaWNSZXF1ZXN0XCIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgKm5nSWY9XCJpc0RlbGl2ZXJ5Qm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBbdmFsdWVdPVwidHJ1ZVwiIChjbGljayk9XCJ0aW1lUmVxdWVzdENoYW5nZSgpXCI+SSBoYXZlIGEgdGltZSBzcGVjaWZpYyBkZWxpdmVyeSByZXF1ZXN0PC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udGFpbmVyIGZvci1tb2IgY29sLXNtLTYgcGwtMFwiIFtuZ0NsYXNzXT1cInsnZC1ub25lJzogIWhhc1RpbWVTcGVjaWZpY1JlcXVlc3QgfHwgIWlzRGVsaXZlcnlCb3h9XCI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ0aW1lXCIgY2xhc3M9XCJmb3JtLWxhYmVsIHB0LTRcIj5UaW1lIDxzcGFuIGNsYXNzPVwibWFya2VyXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBjbGFzcz1cImZvcm0tam9iXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RkaXZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImpvYmlucHV0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjbGFzcz1cImQtYmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5XCIgaWQ9XCJkcm9wZG93bkJhc2ljMVwiIG5nYkRyb3Bkb3duVG9nZ2xlID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IEluaXRpYWx0aW1lIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLWRvd24gY3VzdG9tLWFycm93LWRvd25cIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudSBhcmlhLWxhYmVsbGVkYnk9XCJkcm9wZG93bkJhc2ljMVwiIGlkPVwiZHJvcGRvd25NZW51XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSBjbGFzcz1cImRyb3Bkb3duSXRlbVwiICpuZ0Zvcj1cImxldCB0aW1lIG9mIHRpbWVPcHRpb25zXCIgI2NvbGxlY3RUaW1lT2JqIChjbGljayk9XCJvbkZyb21UaW1lQ2hhbmdlZCh0aW1lKTsgY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcEZyb21UaW1lPXRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB0aW1lIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIFtuZ0NsYXNzXT1cInsnZC1ub25lJzogIWhhc1RpbWVTcGVjaWZpY1JlcXVlc3QgfHwgIWlzRGVsaXZlcnlCb3h9XCI+KllvdXIgdGltZSBzcGVjaWZpYyBkZWxpdmVyeSByZXF1ZXN0IHdpbGwgYmUgY29uZmlybWVkIGJ5IHRoZSBEaW1vbmQgQ3VzdG9tZXIgU2VydmljZXMgdGVhbSB3aGVuIHlvdXIgb3JkZXIgaXMgY29uZmlybWVkLjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHAgKm5nSWY9XCJpc1N1Ym1pdHRlZFwiIFtoaWRkZW5dPVwiY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcEZyb21UaW1lICE9IHVuZGVmaW5lZFwiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJvbSB0aW1lIGlzIHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJpc1N1Ym1pdHRlZFwiIFtoaWRkZW5dPVwiY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcFRvVGltZSAhPSB1bmRlZmluZWRcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvIHRpbWUgaXMgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1jYXJkPlxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1oZWFkZXIgY2xhc3M9XCJsaW5lLXN0ZXAtbmF2aWdhdGlvblwiICpuZ0lmPVwiIWlzRGVsaXZlcnlCb3hcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBjdXMtdGl0bGUtbWFyZ2luLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlIGNsYXNzPVwiZm9udC1ib2xkXCI+IDxzcGFuIGNsYXNzPVwiY2FyZC1udW1iZXJcIj4gNCA8L3NwYW4+IFBpY2t1cCBMb2NhdGlvbjwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgICAgICAgICAgIDxtYXQtY2FyZCAqbmdJZj1cIiFpc0RlbGl2ZXJ5Qm94XCIgY2xhc3M9XCJjdXN0b20tbWF0LWNhcmQgbGluZS1zdGVwLW5hdmlnYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJyYW5jaC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC10aXRsZSBjbGFzcz0nYWRkcmVzcy10aXRsZSc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3ticmFuY2hEaXNwbGF5TmFtZX19PC9tYXQtY2FyZC10aXRsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1zdWJ0aXRsZT4ge3ticmFuY2hBZGRyZXNzPy5mb3JtYXR0ZWRBZGRyZXNzfX08L21hdC1jYXJkLXN1YnRpdGxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLXN1YnRpdGxlPiA8c3BhbiBjbGFzcz1cImZvcm0tbGFiZWxcIj5QaG9uZTogPC9zcGFuPiB7e2JyYW5jaEFkZHJlc3M/LnBob25lfX08L21hdC1jYXJkLXN1YnRpdGxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJyYW5jaC1ob3VyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC10aXRsZSBjbGFzcz0nYWRkcmVzcy10aXRsZSc+T3BlbmluZyBIb3VyczwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLXN1YnRpdGxlICpuZ0Zvcj1cImxldCBkYXRhIG9mIHRlbXBCcmFuY2hMaXN0RGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhvdXItbGFiZWwtbGVmdFwiPnt7IGRhdGE/LndlZWtEYXkgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGF0YT8ub3BlbmluZ1RpbWU/LmZvcm1hdHRlZEhvdXIgfHwgZGF0YT8uY2xvc2luZ1RpbWU/LmZvcm1hdHRlZEhvdXJcIj57e2RhdGE/Lm9wZW5pbmdUaW1lPy5mb3JtYXR0ZWRIb3VyfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSB7e2RhdGE/LmNsb3NpbmdUaW1lPy5mb3JtYXR0ZWRIb3VyfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiIWRhdGE/Lm9wZW5pbmdUaW1lPy5mb3JtYXR0ZWRIb3VyICYmICFkYXRhPy5jbG9zaW5nVGltZT8uZm9ybWF0dGVkSG91clwiPkNsb3NlZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkLXN1YnRpdGxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQ+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQtaGVhZGVyIGNsYXNzPVwibGluZS1zdGVwLW5hdmlnYXRpb25cIiAqbmdJZj1cImlzRGVsaXZlcnlCb3hcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBjdXMtdGl0bGUtbWFyZ2luLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlIGNsYXNzPVwiZm9udC1ib2xkXCI+IDxzcGFuIGNsYXNzPVwiY2FyZC1udW1iZXJcIj4gNCA8L3NwYW4+IHt7aXNEZWxpdmVyeUJveCA/ICdTZWxlY3QgeW91ciBEZWxpdmVyeSBBZGRyZXNzIFByZWZlcmVuY2UnOiAnUGlja3VwIExvY2F0aW9uICd9fVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZC10aXRsZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1jYXJkIFtoaWRkZW5dPVwiIWlzRGVsaXZlcnlCb3hcIiBjbGFzcz1cImN1c3RvbS1tYXQtY2FyZCBsaW5lLXN0ZXAtbmF2aWdhdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG1hdC1pbm5lci1jb250YWluZXIgcmFkaW8tYnRuLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1ncm91cCBhcmlhLWxhYmVsPVwiU2VsZWN0IGFuIG9wdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uICpuZ0lmPVwiZGVmYXVsdEFjY291bnRBZGRyZXNzPy5mb3JtYXR0ZWRBZGRyZXNzIHx8IChkZWxpdmVyeUFkZHJlc3NlcyAmJiBkZWxpdmVyeUFkZHJlc3Nlcy5sZW5ndGggPiAwKVwiIFtjaGVja2VkXT1cInNlbGVjdGVkQWRkcmVzcyA9PSAnYWNjb3VudEFkZHJlc3MnXCIgKGNoYW5nZSk9XCJzZWxlY3RlZEFkZHJlc3MgPSAnYWNjb3VudEFkZHJlc3MnO3NlbGVjdGVkUmVjZW50QWRkcmVzcz0gZGVsaXZlcnlBZGRyZXNzZXNbMF1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiJ2FjY291bnRBZGRyZXNzJ1wiIGNsYXNzPVwicGwtMCBwci1tZC00XCI+QWNjb3VudCBBZGRyZXNzPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uICpuZ0lmPVwiZGVsaXZlcnlBZGRyZXNzZXMgJiYgcmVjZW50QWRkcmVzcy5sZW5ndGg+IDBcIiBbY2hlY2tlZF09XCJzZWxlY3RlZEFkZHJlc3MgPT0gJ3JlY2VudEFkZHJlc3MnXCIgKGNoYW5nZSk9XCJzZWxlY3RlZEFkZHJlc3MgPSAncmVjZW50QWRkcmVzcyc7IHNlbGVjdGVkUmVjZW50QWRkcmVzcz0gcmVjZW50QWRkcmVzc1swXVwiIFt2YWx1ZV09XCIncmVjZW50QWRkcmVzcydcIiBjbGFzcz1cInBsLTAgcHItbWQtNFwiPlJlY2VudCBBZGRyZXNzPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFtjaGVja2VkXT1cInNlbGVjdGVkQWRkcmVzcyA9PSAnYWRkTmV3QWRkcmVzcydcIiAoY2hhbmdlKT1cImFkZE5ld0FkZHJlc3MoKVwiIFt2YWx1ZV09XCInYWRkTmV3QWRkcmVzcydcIj5BZGQgTmV3IEFkZHJlc3M8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yIGFkZHJlc3MtaW5uZXItY29udGFpbmVyXCIgKm5nSWY9XCJzZWxlY3RlZEFkZHJlc3MgPT0gJ2FjY291bnRBZGRyZXNzJyAmJiBkZWxpdmVyeUFkZHJlc3Nlcy5sZW5ndGggPiAwIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsICpuZ0lmPVwiIXNob3dNb3JlQWRkcmVzc2VzXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+Q29uZmlybWVkIERlbGl2ZXJ5IEFkZHJlc3MgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXNob3dNb3JlQWRkcmVzc2VzXCIgY2xhc3M9XCJmb3JtLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXAtc2VsZWN0ZWQtYWRkcmVzc1wiIGlkPVwiYWRkcmVzc1wiIHJlcXVpcmVkICNpc0FkZHJTZWxlY3RlZE9yTm90PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2RlZmF1bHRBY2NvdW50QWRkcmVzcz8uZm9ybWF0dGVkQWRkcmVzc319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93TW9yZUFkZHJlc3Nlc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgYXJpYS1sYWJlbGxlZGJ5PVwiZXhhbXBsZS1yYWRpby1ncm91cC1sYWJlbFwiIGNsYXNzPVwiZXhhbXBsZS1yYWRpby1ncm91cCByYWRpby1idG4tc2l6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjbGFzcz1cInB5LTFcIiBbY2hlY2tlZF09XCJzZWxlY3RlZFJlY2VudEFkZHJlc3M/LmlkID09IGFkZHJlc3MuaWRcIiAqbmdGb3I9XCJsZXQgYWRkcmVzcyBvZiBkZWxpdmVyeUFkZHJlc3Nlc1wiIFt2YWx1ZV09XCJhZGRyZXNzLmlkXCIgKGNoYW5nZSk9XCJzZWxlY3RlZFJlY2VudEFkZHJlc3M9YWRkcmVzc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3thZGRyZXNzLmZvcm1hdHRlZEFkZHJlc3N9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yIGFkZHJlc3MtaW5uZXItY29udGFpbmVyXCIgKm5nSWY9XCJzZWxlY3RlZEFkZHJlc3MgPT0gJ3JlY2VudEFkZHJlc3MnICYmIHJlY2VudEFkZHJlc3MubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1ncm91cCBhcmlhLWxhYmVsbGVkYnk9XCJleGFtcGxlLXJhZGlvLWdyb3VwLWxhYmVsXCIgY2xhc3M9XCJleGFtcGxlLXJhZGlvLWdyb3VwIHJhZGlvLWJ0bi1zaXplXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY2xhc3M9XCJweS0xXCIgW2NoZWNrZWRdPVwic2VsZWN0ZWRSZWNlbnRBZGRyZXNzPy5pZCA9PSBhZGRyZXNzLmlkXCIgKm5nRm9yPVwibGV0IGFkZHJlc3Mgb2YgcmVjZW50QWRkcmVzcyBcIiBbdmFsdWVdPVwiYWRkcmVzcy5pZFwiIChjaGFuZ2UpPVwic2VsZWN0ZWRSZWNlbnRBZGRyZXNzPWFkZHJlc3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3thZGRyZXNzLmZvcm1hdHRlZEFkZHJlc3N9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkQWRkcmVzcyA9PSAnYWRkTmV3QWRkcmVzcydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gTWFwIERpdiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtYWRkLW5ldy1hZGRyZXNzIFtjb25maXJtZWRBZGRyZXNzXT1cImNvbmZpcm1lZE5ld0FkZHJlc3NcIiAodXBkYXRlTmV3QWRkcmVzcyk9XCJnZXROZXdBZGRyZXNzKCRldmVudClcIj48L2FwcC1hZGQtbmV3LWFkZHJlc3M+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQ+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQtaGVhZGVyIGNsYXNzPVwibGluZS1zdGVwLW5hdmlnYXRpb24gbGFzdC1zdGVwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgY3VzLXRpdGxlLW1hcmdpbi1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC10aXRsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1udW1iZXJcIj4gNSA8L3NwYW4+IHt7aXNEZWxpdmVyeUJveCA/ICdTaXRlIERlbGl2ZXJ5IFJlcXVpcmVtZW50cyc6ICdDb21tZW50cyAnfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW5mby1pY29uIHBsLTJcIiBhcHBUb29sdGlwIHRvb2x0aXBUaXRsZT1cInt7aXNEZWxpdmVyeUJveCA/IHNpdGVEZWxpdmVyeVJlcXVpcmVtZW50cyA6IGNsaWNrYW5kQ29sbGVjdENvbW1lbnRzfX1cIiBwbGFjZW1lbnQ9XCJib3R0b21cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgICAgICAgICAgIDxtYXQtY2FyZCBjbGFzcz1cImN1c3RvbS1tYXQtY2FyZCBsaW5lLXN0ZXAtbmF2aWdhdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBOb3Rlc1wiIHJvd3M9XCIzXCIgbmFtZT1cIkluc3RydWN0aW9uc1wiIGlkPVwiSW5zdHJ1Y3Rpb25zXCIgW3BsYWNlaG9sZGVyXT1cImlzRGVsaXZlcnlCb3ggPyAnUHJvdmlkZSBhbnkgc3BlY2lmaWMgZGVsaXZlcnkgaW5zdHJ1Y3Rpb25zJzonUHJvdmlkZSBhbnkgc3BlY2lmaWMgcGlja3VwIGluc3RydWN0aW9ucydcIiBtYXhsZW5ndGg9XCIyNTBcIj48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQ+XHJcbiAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImNhcnQtcGFnZS1mb290ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RpY2t5LWZvb3RlciByb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMlwiPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCIgZmxvYXQtbWQtcmlnaHQgbS0wIGNoZWNrb3V0LWZvb3Rlci1idG5zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgdGl0bGU9XCJCYWNrIHRvIENhcnRcIiBocmVmPVwiL2NhcnRcIiBjbGFzcz1cIm1yLTMgZm9udC13ZWlnaHQtYm9sZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4uLy4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvaW9uaWMtYXJyb3ctYmFjay5zdmdcIiBhbHQ9XCJiYWNrLWFycm93XCIgY2xhc3M9XCJtci0yXCIgLz4gQkFDS1xyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwicmV2aWV3T3JkZXIoKVwiIGNsYXNzPVwiYnRuIHByaW1hcnktYnV0dG9uXCI+UmV2aWV3IEFuZCBPcmRlcjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiBjb2wtc20tMTIgYWxlcnQgYWxlcnQtZGFuZ2VyIGFsZXJ0LWRhbmdlci1jdXN0b20ganVzdGlmeS1jb250ZW50LXN0YXJ0IG10LTNcIiByb2xlPVwiYWxlcnRcIiAqbmdJZj1cImVycm9ySW5kJCB8IGFzeW5jXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibXItM1wiIHNyYz1cIi4uLy4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvZXJyb3JpY29uLnN2Z1wiIGFsdD1cImFsZXJ0XCI+IHt7aW5mb01lc3NhZ2V9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
416
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWNoZWNrb3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J1aWxkaW5ncHJvZHVjdF9saWJyYXJ5L3NyYy9saWIvY2hlY2tvdXQvY3VzdG9tLWNoZWNrb3V0L2N1c3RvbS1jaGVja291dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2NoZWNrb3V0L2N1c3RvbS1jaGVja291dC9jdXN0b20tY2hlY2tvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFJVCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFTdkMsTUFBTSxPQUFPLHVCQUF1QjtJQTREbEMsWUFDUyxlQUFzQyxFQUNyQyxVQUFzQixFQUN2QixFQUFxQixFQUNyQixRQUFxQixFQUNyQixpQkFBb0M7UUFKcEMsb0JBQWUsR0FBZixlQUFlLENBQXVCO1FBQ3JDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdkIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBaEUzQyxtRkFBbUY7UUFDckYsMkJBQXNCLEdBQVcsS0FBSyxDQUFDO1FBQ3ZDLHFCQUFnQixHQUFHO1lBQ2pCLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRTtZQUNuQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUU7U0FDckMsQ0FBQztRQUNGLGdCQUFXLEdBQUcsU0FBUyxDQUFFO1FBQ3pCLG1CQUFjLEdB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N0QsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ00sU0FBUztzQkFBNUQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiQ2FsZW5kYXIsIE5nYkRhdGVTdHJ1Y3QgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IEFjdGl2ZUNhcnRTZXJ2aWNlIH0gZnJvbSAnQHNwYXJ0YWN1cy9jYXJ0L2Jhc2UvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDdXN0b21DaGVja291dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jaGVja291dC5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IENtc1NlcnZpY2UgfSBmcm9tICdAc3BhcnRhY3VzL2NvcmUnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jdXN0b20tY2hlY2tvdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tY2hlY2tvdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2N1c3RvbS1jaGVja291dC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tQ2hlY2tvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgLy9oYXNUaW1TcGVjaWZpY1JlcXVlc3QgZmxhZyBmb3Igc2hvd2luZyBhbmQgaGlkaW5nIHRpbWUgY29udHJvbCBvbiBkZWxpdmVyeSBvcHRpb25cclxuICBoYXNUaW1lU3BlY2lmaWNSZXF1ZXN0OiBib29sZWFuID1mYWxzZTtcclxuICBzcGVjaWZpY0RlbGl2ZXJ5ID0ge1xyXG4gICAgb3BlbmluZ1RpbWU6IHsgaG91cjogNiwgbWludXRlOiAwIH0sXHJcbiAgICBjbG9zaW5nVGltZTogeyBob3VyOiAxMiwgbWludXRlOiAwIH1cclxuICB9O1xyXG4gIEluaXRpYWx0aW1lID0gJzY6MDAgQU0nIDtcclxuICBpbml0aWFsTWF4VGltZSA9ICcwNjozMCBBTSdcclxuICB0aW1lT3B0aW9uczogc3RyaW5nW10gPSBbXHJcbiAgICAnMDY6MDAgQU0nLCAnMDY6MzAgQU0nLCAnMDc6MDAgQU0nLCAnMDg6MzAgQU0nLFxyXG4gICAgJzA5OjAwIEFNJywgJzA5OjMwIEFNJywgJzEwOjAwIEFNJywgJzEwOjMwIEFNJywgJzExOjAwIEFNJywgJzExOjMwIEFNJyxcclxuICAgICcxMjowMCBQTSdcclxuICBdO1xyXG4gIGVycm9ySW5kJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIGluZm9NZXNzYWdlOiBzdHJpbmcgPSAnJztcclxuICBwcmV2aW91c1VybDogc3RyaW5nID0gJyc7XHJcbiAgY2FydElkOiBzdHJpbmcgPSAnJztcclxuICBpc0RlbGl2ZXJ5Qm94OiBib29sZWFuID0gdHJ1ZTtcclxuICBBQ1RJVkVfSVRFTTogc3RyaW5nID0gJ2FjdGl2ZS1ib3gnO1xyXG4gIG5nYk1pbkRhdGU6IGFueTtcclxuICBzZWxlY3RlZEFkZHJlc3M6IHN0cmluZyA9ICdhY2NvdW50QWRkcmVzcyc7XHJcbiAgcHVibGljIG1heFRpbWU6IGFueTtcclxuICBwdWJsaWMgZnJvbU1heFRpbWU6IGFueTtcclxuICBjY21pblRpbWUgPSBuZXcgRGF0ZSgyMDIyLCAwLCAyOCwgNiwgMCwgMCk7XHJcbiAgY2NtYXhUaW1lID0gbmV3IERhdGUoMjAyMiwgMCwgMjgsIDIyLCAwLCAwKTtcclxuICBwdWJsaWMgbWluVGltZTogYW55O1xyXG4gIHB1YmxpYyBtaW5Ub1RpbWU6IGFueTtcclxuICBjaGVja291dEZvcm1EYXRhOiBhbnkgPSB7fTtcclxuICBpc1N1Ym1pdHRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHN0YXJ0VGltZTogYW55ID0gW107XHJcbiAgcmVjZW50QWRkcmVzczogYW55ID0gW107XHJcbiAgZGVsaXZlclRpbWU6IGFueTtcclxuICBkZWZhdWx0QWNjb3VudEFkZHJlc3M6IGFueTtcclxuICBicmFuY2hBZGRyZXNzOiBhbnk7XHJcbiAgQFZpZXdDaGlsZCgnY2hlY2tvdXRGb3JtJykgY2hlY2tvdXRGb3JtOiBhbnk7XHJcbiAgc2VsZWN0ZWRSZWNlbnRBZGRyZXNzOiBhbnkgPSB7fTtcclxuICB0ZW1wQnJhbmNoTGlzdERhdGE6IGFueSA9IFtdO1xyXG4gIHB1YmxpYyBkZWxpdmVyeURpc2FibGVEYXRlczogYW55O1xyXG4gIGNvbGxlY3RUaW1lOiBhbnk7XHJcbiAgbWluTGVhZFRpbWU6IG51bWJlciA9IDM7XHJcbiAgcmVzcG9uc2VEYXRhOiBhbnk7XHJcbiAgQFZpZXdDaGlsZCgnY2hlY2tvdXRUb1RpbWUnLCB7IHN0YXRpYzogZmFsc2UgfSkgY2hlY2tvdXRUb1RpbWU6IGFueTtcclxuICBAVmlld0NoaWxkKCdjb2xsZWN0VGltZU9iaicsIHsgc3RhdGljOiBmYWxzZSB9KSBjb2xsZWN0VGltZU9iajogYW55O1xyXG4gIEBWaWV3Q2hpbGQoJ21hcFZpZXdOb2RlJywgeyBzdGF0aWM6IHRydWUgfSkgcHJpdmF0ZSBtYXBWaWV3RWwhOiBFbGVtZW50UmVmO1xyXG4gIHNwZWNpYWxEYXlPcGVuaW5nTGlzdDogYW55ID0gW107XHJcbiAgd2Vla0RheU9wZW5pbmdMaXN0OiBhbnkgPSBbXTtcclxuICBkZWxpdmVyeUFkZHJlc3NlczogYW55ID0gW107XHJcbiAgc2hvd01vcmVBZGRyZXNzZXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaXRlRGVsaXZlcnlSZXF1aXJlbWVudHM6IGFueTtcclxuICBjbGlja2FuZENvbGxlY3RDb21tZW50czogYW55O1xyXG4gIGNoZWNrb3V0SGVhZGVyQ29udGVudDogYW55O1xyXG4gIGJyZWFkY3J1bWJEYXRhOiBhbnkgPSBbXTtcclxuICBkZWxpdmVyeU1vZGVzOiBhbnkgPSBbXTtcclxuICB2aWV3OiBhbnk7XHJcbiAgcGFnZVRpdGxlOiBhbnk7XHJcbiAgbmV3QWRkcmVzczogYW55O1xyXG4gIGNvbmZpcm1lZE5ld0FkZHJlc3M6IHN0cmluZyA9ICcnO1xyXG4gIHNob3dXYWl0Q3Vyc29yID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgYnJhbmNoRGlzcGxheU5hbWU6IGFueTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjaGVja291dFNlcnZpY2U6IEN1c3RvbUNoZWNrb3V0U2VydmljZSxcclxuICAgIHByaXZhdGUgY21zU2VydmljZTogQ21zU2VydmljZSxcclxuICAgIHB1YmxpYyBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgY2FsZW5kYXI6IE5nYkNhbGVuZGFyLFxyXG4gICAgcHVibGljIGFjdGl2ZUNhcnRTZXJ2aWNlOiBBY3RpdmVDYXJ0U2VydmljZVxyXG4gICkgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNtc1NlcnZpY2UuZ2V0Q3VycmVudFBhZ2UoKS5zdWJzY3JpYmUoKHBhZ2FkYXRhOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5wYWdlVGl0bGUgPSBwYWdhZGF0YS50aXRsZTtcclxuICAgIH0pXHJcbiAgICB0aGlzLmJyZWFkY3J1bWJEYXRhLnB1c2goeyB1cmw6ICcvJywgbmFtZTogJ0hvbWUnIH0pO1xyXG4gICAgdGhpcy5icmVhZGNydW1iRGF0YS5wdXNoKHsgdXJsOiAnL2NhcnQnLCBuYW1lOiAnQ2FydCcgfSk7XHJcbiAgICB0aGlzLmJyZWFkY3J1bWJEYXRhLnB1c2goeyB1cmw6ICcvY2hlY2tvdXQnLCBuYW1lOiAnQ2hlY2tvdXQnIH0pO1xyXG4gICAgbGV0IGNhcnQ6IGFueSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzcGFydGFjdXPimr9kaW1vbmQtc3Bh4pq/Y2FydCcpO1xyXG4gICAgdGhpcy5jYXJ0SWQgPSBKU09OLnBhcnNlKGNhcnQpPy5hY3RpdmU7XHJcbiAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBEYXRlID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwVG9UaW1lID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRnJvbVRpbWUgPSB1bmRlZmluZWQ7XHJcbiAgICBjb25zdCBjaGVja291dERhdGE6IGFueSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2NoZWNrb3V0RGF0YScpO1xyXG4gICAgaWYgKGNoZWNrb3V0RGF0YSAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YSA9IEpTT04ucGFyc2UoY2hlY2tvdXREYXRhKTtcclxuICAgICAgdGhpcy5pc0RlbGl2ZXJ5Qm94ID0gdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5TWV0aG9kID09ICdjbGlja0FuZENvbGxlY3QnID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgfVxyXG4gICAgdmFyIGxvY0FkZHJlc3M6IGFueSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdicmFuY2hEZXRhaWxzJyk7XHJcbiAgICB0aGlzLmJyYW5jaEFkZHJlc3MgPSBKU09OLnBhcnNlKGxvY0FkZHJlc3MpO1xyXG4gICAgdGhpcy5icmFuY2hEaXNwbGF5TmFtZSA9IHRoaXMuYnJhbmNoQWRkcmVzcz8uZGlzcGxheU5hbWU7XHJcbiAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5nZXREZWxpdmVyeU1vZGVzKHRoaXMuY2FydElkKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICB0aGlzLmRlbGl2ZXJ5TW9kZXMgPSBkYXRhLmRlbGl2ZXJ5TW9kZXM7XHJcbiAgICAgICAgdGhpcy5kZWxpdmVyeU1vZGVzLnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiAoYS5jb2RlID4gYi5jb2RlID8gLTEgOiAxKSlcclxuICAgICAgfVxyXG4gICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgIHRoaXMuZGVsaXZlcnlNb2RlcyA9IFt7IGNvZGU6ICdzdGFuZGFyZF9kZWxpdmVyeScgfSwgeyBjb2RlOiAnY2xpY2tBbmRDb2xsZWN0JyB9XVxyXG4gICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldEFkZHJlc3NJbmZvKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0QWNjb3VudEFkZHJlc3MgPSBkYXRhLmFkZHJlc3Nlc1swXTtcclxuICAgICAgICB0aGlzLnJlY2VudEFkZHJlc3MgPSBkYXRhLnJlY2VudEFkZHJlc3NlcztcclxuICAgICAgICB0aGlzLnNob3dNb3JlQWRkcmVzc2VzID0gZGF0YS5hZGRyZXNzZXMgJiYgZGF0YS5hZGRyZXNzZXMubGVuZ3RoID4gMSA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgICB0aGlzLmRlbGl2ZXJ5QWRkcmVzc2VzID0gZGF0YS5hZGRyZXNzZXMgJiYgZGF0YS5hZGRyZXNzZXMubGVuZ3RoID4gMCA/IGRhdGEuYWRkcmVzc2VzIDogW107XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEFkZHJlc3MgPSB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuc2VsZWN0ZWRBZGRyZXNzICE9IHVuZGVmaW5lZCA/IHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5zZWxlY3RlZEFkZHJlc3MgOiAnYWNjb3VudEFkZHJlc3MnO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSZWNlbnRBZGRyZXNzLmlkID0gdGhpcy5jaGVja291dEZvcm1EYXRhICYmIHRoaXMuY2hlY2tvdXRGb3JtRGF0YT8uZGVsaXZlcnlBZGRyZXNzUEsgPyB0aGlzLmNoZWNrb3V0Rm9ybURhdGE/LmRlbGl2ZXJ5QWRkcmVzc1BLIDogdGhpcy5kZWZhdWx0QWNjb3VudEFkZHJlc3M/LmlkO1xyXG4gICAgICAgIHRoaXMuY29uZmlybWVkTmV3QWRkcmVzcyA9IHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5zZWxlY3RlZEFkZHJlc3MgIT0gdW5kZWZpbmVkICYmIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5zZWxlY3RlZEFkZHJlc3MgPT0gJ2FkZE5ld0FkZHJlc3MnID8gdGhpcy5jaGVja291dEZvcm1EYXRhLm5ld0FkZHJlc3M/LnNlbGVjdGVkQWRkcmVzcyA6ICcnO1xyXG4gICAgICAgIHRoaXMubmV3QWRkcmVzcyA9IHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5zZWxlY3RlZEFkZHJlc3MgIT0gdW5kZWZpbmVkICYmIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5zZWxlY3RlZEFkZHJlc3MgPT0gJ2FkZE5ld0FkZHJlc3MnID8gdGhpcy5jaGVja291dEZvcm1EYXRhLm5ld0FkZHJlc3MgOiAnJztcclxuICAgICAgICBpZiAodGhpcy5kZWxpdmVyeUFkZHJlc3Nlcy5sZW5ndGggPT0gMCAmJiB0aGlzLnNlbGVjdGVkQWRkcmVzcyAhPSAnYWRkTmV3QWRkcmVzcycpIHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRBZGRyZXNzID0gJ3JlY2VudEFkZHJlc3MnO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFJlY2VudEFkZHJlc3MgPSB0aGlzLnJlY2VudEFkZHJlc3NbMF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5kZWZhdWx0QWNjb3VudEFkZHJlc3MgJiYgdGhpcy5kZWxpdmVyeUFkZHJlc3Nlcy5sZW5ndGggPCAxICYmIHRoaXMucmVjZW50QWRkcmVzcy5sZW5ndGggPCAxKSB0aGlzLnNlbGVjdGVkQWRkcmVzcyA9ICdhZGROZXdBZGRyZXNzJztcclxuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldENoZWNrT3V0VmFsdWVzKHRoaXMuY2FydElkKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgIHRoaXMucmVzcG9uc2VEYXRhID0gZGF0YTtcclxuICAgICAgICAgIHRoaXMud2Vla0RheU9wZW5pbmdMaXN0ID0gdGhpcy5pc0RlbGl2ZXJ5Qm94XHJcbiAgICAgICAgICAgID8gZGF0YS5wb2ludE9mU2VydmljZT8uZGVsaXZlcnlTY2hlZHVsZT8ud2Vla0RheU9wZW5pbmdMaXN0XHJcbiAgICAgICAgICAgIDogZGF0YS5wb2ludE9mU2VydmljZT8ucGlja3VwU2NoZWR1bGU/LndlZWtEYXlPcGVuaW5nTGlzdDtcclxuICAgICAgICAgIHRoaXMuc3BlY2lhbERheU9wZW5pbmdMaXN0ID0gdGhpcy5pc0RlbGl2ZXJ5Qm94XHJcbiAgICAgICAgICAgID8gZGF0YS5wb2ludE9mU2VydmljZT8uZGVsaXZlcnlTY2hlZHVsZT8uc3BlY2lhbERheU9wZW5pbmdMaXN0XHJcbiAgICAgICAgICAgIDogZGF0YS5wb2ludE9mU2VydmljZT8ucGlja3VwU2NoZWR1bGU/LnNwZWNpYWxEYXlPcGVuaW5nTGlzdDtcclxuICAgICAgICAgIHRoaXMuZ2V0RGV0YWlsUmVzcG9uc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuXHJcbiAgICAvL2NvZGUgZm9yIERlbGl2ZXJ5IFNpdGUgRGVsaXZlcnkgUmVxdWlyZW1lbnRzIHRvb2x0aXBcclxuICAgIHRoaXMuY21zU2VydmljZVxyXG4gICAgICAuZ2V0Q29tcG9uZW50RGF0YSgnU2l0ZURlbGl2ZXJ5UmVxdWlyZW1lbnRzQ29tcG9uZW50JylcclxuICAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgIHRoaXMuc2l0ZURlbGl2ZXJ5UmVxdWlyZW1lbnRzID0gZGF0YT8uY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgLy9jb2RlIGZvciBDbGljayBBbmQgQ29sbGVjdCBDb21tZW50cyB0b29sdGlwXHJcbiAgICB0aGlzLmNtc1NlcnZpY2VcclxuICAgICAgLmdldENvbXBvbmVudERhdGEoJ0NvbW1lbnRzQ2xpY2tBbmRDb2xsZWN0Q29tcG9uZW50JylcclxuICAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgIHRoaXMuY2xpY2thbmRDb2xsZWN0Q29tbWVudHMgPSBkYXRhPy5jb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAvL2NvZGUgZm9yIGhlYWRlciBjb250ZW50XHJcbiAgICB0aGlzLmNtc1NlcnZpY2VcclxuICAgICAgLmdldENvbXBvbmVudERhdGEoJ2NoZWNrb3V0SGVhZGVyQ29udGVudENvbXBvbmVudCcpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrb3V0SGVhZGVyQ29udGVudCA9IGRhdGE/LmNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBnZXREZXRhaWxSZXNwb25zZSgpIHtcclxuICAgIHRoaXMudGVtcEJyYW5jaExpc3REYXRhID0gdGhpcy5yZXNwb25zZURhdGE/LnBvaW50T2ZTZXJ2aWNlPy5waWNrdXBTY2hlZHVsZT8ud2Vla0RheU9wZW5pbmdMaXN0O1xyXG4gICAgdGhpcy5icmFuY2hBZGRyZXNzID0gdGhpcy5yZXNwb25zZURhdGE/LnBvaW50T2ZTZXJ2aWNlPy5hZGRyZXNzO1xyXG4gICAgdGhpcy5icmFuY2hEaXNwbGF5TmFtZSA9IHRoaXMucmVzcG9uc2VEYXRhPy5wb2ludE9mU2VydmljZT8uZGlzcGxheU5hbWU7XHJcbiAgICB2YXIgY2hlY2tvdXREYXRlVmFsdWUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgbGV0IGkgPSAwO1xyXG4gICAgbGV0IGogPSAwO1xyXG4gICAgaWYgKHRoaXMucmVzcG9uc2VEYXRhLmRlbGl2ZXJ5TWluTGVhZFRpbWUgfHwgdGhpcy5yZXNwb25zZURhdGEucGlja1VwTWluTGVhZFRpbWUpXHJcbiAgICAgIHRoaXMubWluTGVhZFRpbWUgPSB0aGlzLmlzRGVsaXZlcnlCb3ggPyB0aGlzLnJlc3BvbnNlRGF0YS5kZWxpdmVyeU1pbkxlYWRUaW1lIDogdGhpcy5yZXNwb25zZURhdGEucGlja1VwTWluTGVhZFRpbWU7XHJcbiAgICB3aGlsZSAoaSA8IHRoaXMubWluTGVhZFRpbWUgKyAxKSB7XHJcbiAgICAgIGlmICh0aGlzLmlzV2Vla2RheU9mZihjaGVja291dERhdGVWYWx1ZSkpIHtcclxuICAgICAgICBjaGVja291dERhdGVWYWx1ZSA9IHRoaXMuYWRkRGF5c1RvRGF0ZShjaGVja291dERhdGVWYWx1ZSwgMSk7XHJcbiAgICAgICAgaiA9IGogKyAxO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNoZWNrb3V0RGF0ZVZhbHVlID0gdGhpcy5hZGREYXlzVG9EYXRlKGNoZWNrb3V0RGF0ZVZhbHVlLCAxKTtcclxuICAgICAgICBpID0gaSArIDE7XHJcbiAgICAgICAgaiA9IGogKyAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBmaW5hbERhdGU6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgaiA9IGogLSAxO1xyXG4gICAgdGhpcy5uZ2JNaW5EYXRlID0ge1xyXG4gICAgICBkYXk6IChmaW5hbERhdGUuZ2V0RGF0ZSgpICsgaiA+IDMwKSA/IGZpbmFsRGF0ZS5nZXREYXRlKCkgKyBqIC0gMzAgOiBmaW5hbERhdGUuZ2V0RGF0ZSgpICsgaixcclxuICAgICAgbW9udGg6IChmaW5hbERhdGUuZ2V0RGF0ZSgpICsgaikgPiAzMCA/IGZpbmFsRGF0ZS5nZXRNb250aCgpID09IDExID8gMSA6IGZpbmFsRGF0ZS5nZXRNb250aCgpICsgMiA6IGZpbmFsRGF0ZS5nZXRNb250aCgpICsgMSxcclxuICAgICAgeWVhcjogKGZpbmFsRGF0ZS5nZXREYXRlKCkgKyBqKSA+IDMwICYmIGZpbmFsRGF0ZS5nZXRNb250aCgpID09IDExID8gZmluYWxEYXRlLmdldEZ1bGxZZWFyKCkgKyAxIDogZmluYWxEYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGZEYXRlID0gbmV3IERhdGUoKTtcclxuICAgIGZEYXRlLnNldERhdGUoZmluYWxEYXRlLmdldERhdGUoKSArIGopXHJcbiAgICB0aGlzLnVwZGF0ZU1pbk1heFRpbWUoZkRhdGUpO1xyXG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcbiAgaXNXZWVrZGF5T2ZmKGRhdGU6IERhdGUpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLndlZWtEYXlPcGVuaW5nTGlzdFtkYXRlLmdldERheSgpIC0gMV0/LmNsb3NlZCA9PSB0cnVlIHx8IChkYXRlLmdldERheSgpKSA9PSAwKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG5cclxuICBhZGREYXlzVG9EYXRlKGRhdGU6IERhdGUsIGRheXM6IG51bWJlcik6IERhdGUge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICByZXN1bHQuc2V0RGF0ZShyZXN1bHQuZ2V0RGF0ZSgpICsgZGF5cyk7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuICB1cGRhdGVNaW5NYXhUaW1lKGRhdGU6IERhdGUpIHtcclxuICAgIGlmICh0aGlzLmhhc1RpbWVTcGVjaWZpY1JlcXVlc3QgfHwgdGhpcy5pc0RlbGl2ZXJ5Qm94KSB7XHJcbiAgICAgIC8vIFRpbWUgc3BlY2lmaWMgZGVsaXZlcnlcclxuICAgICAgXHJcbiAgICAgIHRoaXMubWluVGltZSA9IG5ldyBEYXRlKFxyXG4gICAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcclxuICAgICAgICBkYXRlLmdldE1vbnRoKCksXHJcbiAgICAgICAgZGF0ZS5nZXREYXRlKCksXHJcbiAgICAgICAgdGhpcy5zcGVjaWZpY0RlbGl2ZXJ5Py5vcGVuaW5nVGltZT8uaG91ciB8fCA2LFxyXG4gICAgICAgIHRoaXMuc3BlY2lmaWNEZWxpdmVyeT8ub3BlbmluZ1RpbWU/Lm1pbnV0ZSB8fCAwLFxyXG4gICAgICAgIDBcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5mcm9tTWF4VGltZSA9IG5ldyBEYXRlKFxyXG4gICAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcclxuICAgICAgICBkYXRlLmdldE1vbnRoKCksXHJcbiAgICAgICAgZGF0ZS5nZXREYXRlKCksXHJcbiAgICAgICAgdGhpcy5zcGVjaWZpY0RlbGl2ZXJ5Py5jbG9zaW5nVGltZT8uaG91ciB8fCAxMixcclxuICAgICAgICB0aGlzLnNwZWNpZmljRGVsaXZlcnk/LmNsb3NpbmdUaW1lPy5taW51dGUgfHwgMCxcclxuICAgICAgICAwXHJcbiAgICAgICk7XHJcbiAgICB9ZWxzZXtcclxuICAgIGNvbnN0IHRvZGF5RGF5OiBhbnkgPSB0aGlzLndlZWtEYXlPcGVuaW5nTGlzdFtkYXRlLmdldERheSgpIC0gMV07XHJcbiAgICB0aGlzLm1pblRpbWUgPSBuZXcgRGF0ZShcclxuICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICBkYXRlLmdldE1vbnRoKCksXHJcbiAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxyXG4gICAgICB0b2RheURheT8ub3BlbmluZ1RpbWU/LmhvdXIgfHwgOSxcclxuICAgICAgdG9kYXlEYXk/Lm9wZW5pbmdUaW1lPy5taW51dGUgfHwgMCxcclxuICAgICAgMFxyXG4gICAgKTtcclxuICAgIHRoaXMubWluVG9UaW1lID0gbmV3IERhdGUoXHJcbiAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcclxuICAgICAgZGF0ZS5nZXRNb250aCgpLFxyXG4gICAgICBkYXRlLmdldERhdGUoKSxcclxuICAgICAgdG9kYXlEYXk/Lm9wZW5pbmdUaW1lPy5ob3VyIHx8IDExLFxyXG4gICAgICB0b2RheURheT8ub3BlbmluZ1RpbWU/Lm1pbnV0ZSB8fCAwLFxyXG4gICAgICAwXHJcbiAgICApO1xyXG4gICAgdGhpcy5mcm9tTWF4VGltZSA9IG5ldyBEYXRlKFxyXG4gICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgIGRhdGUuZ2V0TW9udGgoKSxcclxuICAgICAgZGF0ZS5nZXREYXRlKCksXHJcbiAgICAgIHRvZGF5RGF5Py5jbG9zaW5nVGltZS5mb3JtYXR0ZWRIb3VyLnNwbGl0KCcgJylbMV0gPT0gJ3BtJ1xyXG4gICAgICAgID8gdG9kYXlEYXk/LmNsb3NpbmdUaW1lPy5ob3VyICsgMTBcclxuICAgICAgICA6IHRvZGF5RGF5Py5jbG9zaW5nVGltZT8uaG91ciB8fCAxNSxcclxuICAgICAgdG9kYXlEYXk/LmNsb3NpbmdUaW1lPy5taW51dGUgfHwgMCxcclxuICAgICAgMFxyXG4gICAgKTtcclxuICAgIHRoaXMubWF4VGltZSA9IG5ldyBEYXRlKFxyXG4gICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgIGRhdGUuZ2V0TW9udGgoKSxcclxuICAgICAgZGF0ZS5nZXREYXRlKCksXHJcbiAgICAgIHRvZGF5RGF5Py5jbG9zaW5nVGltZS5mb3JtYXR0ZWRIb3VyLnNwbGl0KCcgJylbMV0gPT0gJ3BtJ1xyXG4gICAgICAgID8gdG9kYXlEYXk/LmNsb3NpbmdUaW1lPy5ob3VyICsgMTJcclxuICAgICAgICA6IHRvZGF5RGF5Py5jbG9zaW5nVGltZT8uaG91ciB8fCAxNyxcclxuICAgICAgdG9kYXlEYXk/LmNsb3NpbmdUaW1lPy5taW51dGUgfHwgMCxcclxuICAgICAgMFxyXG4gICAgKTtcclxuICB9XHJcbiAgICB0aGlzLnVwZGF0ZVJlcXVlc3RlZFRpbWUoKTtcclxuICB9XHJcbiAgdXBkYXRlUmVxdWVzdGVkVGltZSgpIHtcclxuICAgIHRoaXMubWluVGltZSA9IHRoaXMuZ2V0Um91bmRNaW5UaW1lKHRoaXMubWluVGltZSk7XHJcbiAgICAvL2lmIGNsaWNraW5nIG9uIHJhZGlvIGJ1dHRvbiBmb3IgZGVsaXZlcnksIHNob3VsZCBwaWNrIDYgYW0sIGlmIHRpbWUgZG9lcyBub3QgZ28gZmluZSB0aGVuIHJldmVydCBpdFxyXG4gICAgaWYodGhpcy5pc0RlbGl2ZXJ5Qm94ICl7XHJcbiAgICAgIGlmKCF0aGlzLmhhc1RpbWVTcGVjaWZpY1JlcXVlc3Qpe1xyXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZE1pblRpbWUgPSB0aGlzLm1pblRpbWUudG9Mb2NhbGVUaW1lU3RyaW5nKCdlbi1VUycsIHtob3VyOiAnMi1kaWdpdCcsbWludXRlOiAnMi1kaWdpdCcsaG91cjEyOiB0cnVlIH0pO1xyXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZGZyb21NYXhUaW1lID0gdGhpcy5mcm9tTWF4VGltZS50b0xvY2FsZVRpbWVTdHJpbmcoJ2VuLVVTJywge2hvdXI6ICcyLWRpZ2l0JyxtaW51dGU6ICcyLWRpZ2l0Jyxob3VyMTI6IHRydWUgfSk7XHJcbiAgICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRnJvbVRpbWUgPSBmb3JtYXR0ZWRNaW5UaW1lO1xyXG4gICAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcFRvVGltZSA9IGZvcm1hdHRlZGZyb21NYXhUaW1lO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkTWluVGltZSA9IHRoaXMubWluVGltZS50b0xvY2FsZVRpbWVTdHJpbmcoJ2VuLVVTJywge2hvdXI6ICcyLWRpZ2l0JyxtaW51dGU6ICcyLWRpZ2l0Jyxob3VyMTI6IHRydWUgfSk7XHJcbiAgICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRnJvbVRpbWUgPSBmb3JtYXR0ZWRNaW5UaW1lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICBjb25zdCBmb3JtYXR0ZWRtaW5Ub1RpbWUgPSB0aGlzLm1pblRvVGltZS50b0xvY2FsZVRpbWVTdHJpbmcoJ2VuLVVTJywge2hvdXI6ICcyLWRpZ2l0JyxtaW51dGU6ICcyLWRpZ2l0Jyxob3VyMTI6IHRydWUgfSk7XHJcbiAgICAgIGNvbnN0IGZvcm1hdHRlZG1heFRpbWUgPSB0aGlzLm1heFRpbWUudG9Mb2NhbGVUaW1lU3RyaW5nKCdlbi1VUycsIHtob3VyOiAnMi1kaWdpdCcsbWludXRlOiAnMi1kaWdpdCcsaG91cjEyOiB0cnVlfSk7XHJcbiAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcFRvVGltZSA9IHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcFRvVGltZSA/IHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcFRvVGltZSA6IGZvcm1hdHRlZG1heFRpbWU7XHJcbiAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcEZyb21UaW1lID0gdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRnJvbVRpbWUgPyB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBGcm9tVGltZSA6IGZvcm1hdHRlZG1pblRvVGltZTtcclxuICAgIH1cclxufVxyXG4gIGlzRGlzYWJsZWQgPSAoZGF0ZTogTmdiRGF0ZVN0cnVjdCkgPT4ge1xyXG4gICAgY29uc3QgZGF5ID0gbmV3IERhdGUoXHJcbiAgICAgIGRhdGUueWVhcixcclxuICAgICAgZGF0ZS5tb250aCAtIDEsXHJcbiAgICAgIGRhdGUuZGF5KT8uZ2V0RGF5KClcclxuICAgIGlmICh0aGlzLndlZWtEYXlPcGVuaW5nTGlzdFtkYXkgLSAxXT8uY2xvc2VkKVxyXG4gICAgICByZXR1cm4gdHJ1ZVxyXG4gICAgY29uc3QgZGF0ID0gbmV3IERhdGUoZGF0ZS55ZWFyLCBkYXRlLm1vbnRoIC0gMSwgZGF0ZS5kYXkpO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5nZXRTcGVjaWFsRGF5cyhkYXRlKSA+IC0xIHx8XHJcbiAgICAgICh0aGlzLndlZWtEYXlPcGVuaW5nTGlzdFs1XS5jbG9zZWQgPT0gdHJ1ZSAmJiBkYXQuZ2V0RGF5KCkgPT09IDYpIHx8XHJcbiAgICAgIGRhdC5nZXREYXkoKSA9PT0gMFxyXG4gICAgKTtcclxuICB9O1xyXG5cclxuICBnZXRTcGVjaWFsRGF5cyhkYXRlOiBOZ2JEYXRlU3RydWN0KSB7XHJcbiAgICBjb25zdCBpbmQgPSB0aGlzLnNwZWNpYWxEYXlPcGVuaW5nTGlzdD8uZmluZEluZGV4KChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgZGF0ZU9iaiA9IGVsZW1lbnQuZm9ybWF0dGVkRGF0ZS5zcGxpdCgnLycpO1xyXG4gICAgICByZXR1cm4gZGF0ZU9ialswXSA9PSBkYXRlLmRheSAmJiBkYXRlT2JqWzFdID09IGRhdGUubW9udGg7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBpbmQ7XHJcbiAgfVxyXG5cclxuICBnZXRSb3VuZE1pblRpbWUobWluVGltZTogYW55KSB7XHJcbiAgICB2YXIgY29mZiA9IDEwMDAgKiA2MCAqIDMwO1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKE1hdGguY2VpbChtaW5UaW1lLmdldFRpbWUoKSAvIGNvZmYpICogY29mZik7XHJcbiAgfVxyXG5cclxuICB0aW1lQ2xpY2soZXZlbnQ6IEV2ZW50LCB0aW1lT2JqOiBhbnkpIHtcclxuICAgIGlmICh0aW1lT2JqICYmIHRpbWVPYmouaW5wdXRXcmFwcGVyKSB7XHJcbiAgICAgIHRpbWVPYmouaW5wdXRXcmFwcGVyLmNvbnRhaW5lciAmJlxyXG4gICAgICAgIHRpbWVPYmouaW5wdXRXcmFwcGVyLmNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCdlLWRpc2FibGVkJyk7XHJcbiAgICAgIHRpbWVPYmouaW5wdXRXcmFwcGVyLmJ1dHRvbnMgJiZcclxuICAgICAgICB0aW1lT2JqLmlucHV0V3JhcHBlci5idXR0b25zWzBdICYmXHJcbiAgICAgICAgdGltZU9iai5pbnB1dFdyYXBwZXIuYnV0dG9uc1swXS5jbGFzc0xpc3QucmVtb3ZlKCdlLWRpc2FibGVkJyk7XHJcbiAgICAgIHRpbWVPYmouc2hvdygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdGltZVRvQ2xpY2soZXZlbnQ6IEV2ZW50LCB0aW1lT2JqOiBhbnkpIHtcclxuICAgIGlmICh0aW1lT2JqICYmIHRpbWVPYmouaW5wdXRXcmFwcGVyKSB7XHJcbiAgICAgIHRpbWVPYmouaW5wdXRXcmFwcGVyLmNvbnRhaW5lciAmJlxyXG4gICAgICAgIHRpbWVPYmouaW5wdXRXcmFwcGVyLmNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCdlLWRpc2FibGVkJyk7XHJcbiAgICAgIHRpbWVPYmouaW5wdXRXcmFwcGVyLmJ1dHRvbnMgJiZcclxuICAgICAgICB0aW1lT2JqLmlucHV0V3JhcHBlci5idXR0b25zWzBdICYmXHJcbiAgICAgICAgdGltZU9iai5pbnB1dFdyYXBwZXIuYnV0dG9uc1swXS5jbGFzc0xpc3QucmVtb3ZlKCdlLWRpc2FibGVkJyk7XHJcbiAgICAgIHRpbWVPYmouc2hvdygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlU3RhdGljVGltZShob3VyczogbnVtYmVyLCBtaW51dGVzOiBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBEYXRlID09IHVuZGVmaW5lZCkge1xyXG4gICAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIHRoaXMubWluVG9UaW1lID0gbmV3IERhdGUoXHJcbiAgICAgICAgdG9kYXkuZ2V0RnVsbFllYXIoKSxcclxuICAgICAgICB0b2RheS5nZXRNb250aCgpLFxyXG4gICAgICAgIHRvZGF5LmdldERhdGUoKSxcclxuICAgICAgICBob3VycyxcclxuICAgICAgICBtaW51dGVzLFxyXG4gICAgICAgIDBcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBEYXRlO1xyXG4gICAgICB0aGlzLm1pblRvVGltZSA9IG5ldyBEYXRlKFxyXG4gICAgICAgIGRhdGUueWVhcixcclxuICAgICAgICBkYXRlLm1vbnRoLFxyXG4gICAgICAgIGRhdGUuZGF5LFxyXG4gICAgICAgIGhvdXJzLFxyXG4gICAgICAgIG1pbnV0ZXMsXHJcbiAgICAgICAgMFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5taW5Ub1RpbWUgPSB0aGlzLmdldFJvdW5kTWluVGltZSh0aGlzLm1pblRvVGltZSk7XHJcbiAgfVxyXG4gIGdldE5ld0FkZHJlc3MoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5uZXdBZGRyZXNzID0gZXZlbnQ7XHJcbiAgfVxyXG4gIHJldmlld09yZGVyKCkge1xyXG4gICAgdGhpcy5pc1N1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICB0aGlzLmNoZWNrb3V0Rm9ybS5mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuY2hlY2tvdXRGb3JtLnZhbGlkICYmXHJcbiAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGUgIT0gdW5kZWZpbmVkICYmXHJcbiAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcFRvVGltZSAhPSB1bmRlZmluZWQgJiZcclxuICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRGF0ZS5kYXkgIT0gdW5kZWZpbmVkICYmXHJcbiAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcEZyb21UaW1lICE9IHVuZGVmaW5lZFxyXG4gICAgKSB7XHJcbiAgICAgIGlmICh0aGlzLmlzRGVsaXZlcnlCb3ggJiYgdGhpcy5zZWxlY3RlZFJlY2VudEFkZHJlc3M/LmlkID09ICcnKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmlzRGVsaXZlcnlCb3ggJiYgdGhpcy5zZWxlY3RlZEFkZHJlc3MgPT0gJ2FkZE5ld0FkZHJlc3MnICYmICF0aGlzLm5ld0FkZHJlc3MpIHtcclxuICAgICAgICB0aGlzLmVycm9ySW5kJC5uZXh0KHRydWUpO1xyXG4gICAgICAgIHRoaXMuaW5mb01lc3NhZ2UgPSAnUGxlYXNlIFNlbGVjdCBhbmQgQ29uZmlybSBBZGRyZXNzIGZyb20gTWFwJztcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuY2FydElEID0gdGhpcy5jYXJ0SWQ7XHJcbiAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeUFkZHJlc3NQSyA9IHRoaXMuaXNEZWxpdmVyeUJveCA9PSBmYWxzZSA/IHRoaXMuYnJhbmNoQWRkcmVzcz8uaWQgOiB0aGlzLnNlbGVjdGVkUmVjZW50QWRkcmVzcz8uaWQ7XHJcbiAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeU1ldGhvZCA9IHRoaXMuaXNEZWxpdmVyeUJveCA/IHRoaXMuZGVsaXZlcnlNb2Rlc1swXS5jb2RlIDogdGhpcy5kZWxpdmVyeU1vZGVzWzFdLmNvZGU7XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkQWRkcmVzcyA9PSAnYWRkTmV3QWRkcmVzcycpIHtcclxuICAgICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEubmV3QWRkcmVzcyA9IHRoaXMubmV3QWRkcmVzcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBkZWxldGUgdGhpcy5jaGVja291dEZvcm1EYXRhLm5ld0FkZHJlc3M7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLnNlbGVjdGVkQWRkcmVzcyA9IHRoaXMuc2VsZWN0ZWRBZGRyZXNzO1xyXG4gICAgICBsZXQgc2Vzc2lvbkRhdGEgPSB0aGlzLmNoZWNrb3V0Rm9ybURhdGE7XHJcbiAgICAgIC8vdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRnJvbVRpbWUgPSB0aGlzLmNvbGxlY3RUaW1lT2JqPy5nZXRUZXh0KCk7XHJcbiAgICAgIC8vdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwVG9UaW1lID0gdGhpcy5jaGVja291dFRvVGltZT8uZ2V0VGV4dCgpO1xyXG4gICAgICBpZih0aGlzLmlzRGVsaXZlcnlCb3ggJiYgdGhpcy5oYXNUaW1lU3BlY2lmaWNSZXF1ZXN0KXtcclxuICAgICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBUb1RpbWUgPSB0aGlzLm1pblRvVGltZSA/IHRoaXMubWluVG9UaW1lLnRvTG9jYWxlVGltZVN0cmluZygnZW4tVVMnLCB7IGhvdXI6ICcyLWRpZ2l0JywgbWludXRlOiAnMi1kaWdpdCcsIGhvdXIxMjogdHJ1ZSB9KTogdGhpcy5pbml0aWFsTWF4VGltZTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgZGVsaXZlcnlQaWNrVXBEYXRlID0gdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRGF0ZTtcclxuICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRGF0ZSA9IHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGU/LmRheSArICcvJyArIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGU/Lm1vbnRoICsgJy8nICsgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRGF0ZT8ueWVhcjtcclxuICAgICAgY29uc3QgcmV2aWV3RGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGVja291dEZvcm1EYXRhKSk7XHJcbiAgICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlXHJcbiAgICAgICAgLlZhbGlkYXRlQ2hlY2tvdXREYXRlVGltZSh0aGlzLmNoZWNrb3V0Rm9ybURhdGEpXHJcbiAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgIChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2Uuc3RhdHVzID09ICdTVUNDRVNTJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmNoZWNrb3V0UmV2aWV3QW5kT3JkZXIocmV2aWV3RGF0YSkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zaG93V2FpdEN1cnNvci5uZXh0KHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBEYXRlID0gZGVsaXZlcnlQaWNrVXBEYXRlO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgICAgICAgICAgICAgICAgJ2NoZWNrb3V0RGF0YScsXHJcbiAgICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShzZXNzaW9uRGF0YSlcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy9yZXZpZXctb3JkZXInO1xyXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JJbmQkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRGF0ZSA9XHJcbiAgICAgICAgICAgICAgICAgICAgICBkZWxpdmVyeVBpY2tVcERhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmZvTWVzc2FnZSA9IGRhdGEubWVzc2FnZXNbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93V2FpdEN1cnNvci5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIChlcm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGUgPSBkZWxpdmVyeVBpY2tVcERhdGU7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd1dhaXRDdXJzb3IubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmVycm9ySW5kJC5uZXh0KHRydWUpO1xyXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGUgPSBkZWxpdmVyeVBpY2tVcERhdGU7XHJcbiAgICAgICAgICAgICAgdGhpcy5pbmZvTWVzc2FnZSA9IHJlc3BvbnNlLm1lc3NhZ2VzWzBdO1xyXG4gICAgICAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93V2FpdEN1cnNvci5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBEYXRlID0gZGVsaXZlcnlQaWNrVXBEYXRlO1xyXG4gICAgICAgICAgICB0aGlzLmVycm9ySW5kJC5uZXh0KHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLmluZm9NZXNzYWdlID0gZXJyb3I/LmVycm9yPy5lcnJvcnNbMF0ubWVzc2FnZTtcclxuICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93V2FpdEN1cnNvci5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Gcm9tVGltZUNoYW5nZWQodGltZTogYW55KSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRpbWU7XHJcbiAgICB0aGlzLkluaXRpYWx0aW1lID0gdGltZTtcclxuICAgIGxldCBob3VycyA9IE51bWJlcih2YWx1ZS5zcGxpdCgnOicpWzBdKTtcclxuICAgIGxldCBtaW51dGVzID0gTnVtYmVyKHZhbHVlLnNwbGl0KCcgJylbMF0uc3BsaXQoJzonKVsxXSk7XHJcbiAgICBpZiAodmFsdWUuc3BsaXQoJyAnKVsxXSA9PSAnUE0nKSBob3VycyA9IGhvdXJzID09IDEyID8gaG91cnMgOiBob3VycyArIDEyO1xyXG4gICAgdGhpcy51cGRhdGVTdGF0aWNUaW1lKGhvdXJzLCBtaW51dGVzKzMwKTtcclxuICAgIGlmICh0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBUb1RpbWUgPD0gdGhpcy5nZXRSb3VuZE1pblRpbWUodGhpcy5taW5Ub1RpbWUpKVxyXG4gICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBUb1RpbWUgPSB0aGlzLmdldFJvdW5kTWluVGltZSh0aGlzLm1pblRvVGltZSlcclxuICB9XHJcblxyXG4gIGRhdGVjaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGV2ZW50Lm1vbnRoICsgJy8nICsgZXZlbnQuZGF5ICsgJy8nICsgZXZlbnQueWVhcik7XHJcbiAgICB0aGlzLnVwZGF0ZU1pbk1heFRpbWUoZGF0ZSk7XHJcbiAgfVxyXG5cclxuICBhZGROZXdBZGRyZXNzKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFkZHJlc3MgPSAnYWRkTmV3QWRkcmVzcyc7XHJcbiAgICB0aGlzLnNlbGVjdGVkUmVjZW50QWRkcmVzcyA9ICcnO1xyXG5cclxuICB9XHJcblxyXG4gIGNoYW5nZURlbGl2ZXJ5T3B0aW9ucygpIHtcclxuICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcEZyb21UaW1lID0gbnVsbDtcclxuICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcFRvVGltZSA9IG51bGw7XHJcbiAgICB0aGlzLndlZWtEYXlPcGVuaW5nTGlzdCA9IHRoaXMuaXNEZWxpdmVyeUJveFxyXG4gICAgICA/IHRoaXMucmVzcG9uc2VEYXRhLnBvaW50T2ZTZXJ2aWNlPy5kZWxpdmVyeVNjaGVkdWxlPy53ZWVrRGF5T3BlbmluZ0xpc3RcclxuICAgICAgOiB0aGlzLnJlc3BvbnNlRGF0YS5wb2ludE9mU2VydmljZT8ucGlja3VwU2NoZWR1bGU/LndlZWtEYXlPcGVuaW5nTGlzdDtcclxuICAgIHRoaXMuc3BlY2lhbERheU9wZW5pbmdMaXN0ID0gdGhpcy5pc0RlbGl2ZXJ5Qm94XHJcbiAgICAgID8gdGhpcy5yZXNwb25zZURhdGEucG9pbnRPZlNlcnZpY2U/LmRlbGl2ZXJ5U2NoZWR1bGU/LnNwZWNpYWxEYXlPcGVuaW5nTGlzdFxyXG4gICAgICA6IHRoaXMucmVzcG9uc2VEYXRhLnBvaW50T2ZTZXJ2aWNlPy5waWNrdXBTY2hlZHVsZT8uc3BlY2lhbERheU9wZW5pbmdMaXN0O1xyXG4gICAgICB0aGlzLmdldERldGFpbFJlc3BvbnNlKCk7XHJcbiAgfVxyXG4gIHRpbWVSZXF1ZXN0Q2hhbmdlKCl7XHJcbiAgICB0aGlzLmhhc1RpbWVTcGVjaWZpY1JlcXVlc3QgPSB0cnVlO1xyXG4gICAgdGhpcy5nZXREZXRhaWxSZXNwb25zZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibG9hZGluZ1wiICpuZ0lmPVwic2hvd1dhaXRDdXJzb3IgfCBhc3luYyBcIj5Mb2FkaW5nJiM4MjMwOzwvZGl2PlxyXG48YXBwLWN1c3RvbS1icmVhZGNydW0gW2N1c3RvbUNydW1iRGF0YV09XCJicmVhZGNydW1iRGF0YVwiIGNsYXNzPVwicHJvZHVjdHMtYnJlYWRjdW1zXCI+PC9hcHAtY3VzdG9tLWJyZWFkY3J1bT5cclxuPGRpdiBjbGFzcz1cImNvbnRhaW5lciBtYi0xMjBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0b3AtY2hlY2tvdXQgY29sLXNtLTlcIj5cclxuICAgICAgICA8aDEgY2xhc3M9XCJwYWdlVGl0bGVcIj57e3BhZ2VUaXRsZX19PC9oMT5cclxuICAgICAgICA8IS0tIDxwIGNsYXNzPVwiY2hlY2tvdXQtaGVhZGVyLXBhcmFncmFwaFwiPnt7Y2hlY2tvdXRIZWFkZXJDb250ZW50fX08L3A+IC0tPlxyXG4gICAgICAgICAgICA8Y3gtcGFnZS1zbG90IGNsYXNzPVwiY2hlY2tvdXQtaGVhZGVyLXBhcmFncmFwaFwiIHBvc2l0aW9uPVwiQ2hlY2tvdXRQYXJhZ3JhcGhDb250ZXh0U2xvdC1jaGVja291dFBhZ2VcIj48L2N4LXBhZ2Utc2xvdD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBjb250ZW50LXJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgY29sLWxnLTcgb2Zmc2V0LWxnLTNcIj5cclxuICAgICAgICAgICAgPGZvcm0gI2NoZWNrb3V0Rm9ybT1cIm5nRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1jYXJkLWhlYWRlciBjbGFzcz1cImxpbmUtc3RlcC1uYXZpZ2F0aW9uIGZpcnN0LXN0ZXBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBjdXMtdGl0bGUtbWFyZ2luLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlIGNsYXNzPVwiZm9udC1ib2xkXCI+IDxzcGFuIGNsYXNzPVwiY2FyZC1udW1iZXJcIj4gMSA8L3NwYW4+IENob29zZSBZb3VyIERlbGl2ZXJ5IE1ldGhvZDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgICAgICAgICAgIDxtYXQtY2FyZCBjbGFzcz1cImN1c3RvbS1tYXQtY2FyZCBsaW5lLXN0ZXAtbmF2aWdhdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1jb250YWluZXIgZC1zbS1pbmxpbmUtZmxleCBkLW1kLWZsZXggYWxpZ24tY29udGVudC1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQgY2xhc3M9XCJtYXRsZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cImJveC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiaXNEZWxpdmVyeUJveCA9IHRydWU7IGNoYW5nZURlbGl2ZXJ5T3B0aW9ucygpXCIgY2xhc3M9XCJkZWxpdmVyeS1ib3ggZC1zbS1pbmxpbmUtZmxleCBhbGlnbi1pdGVtcy1zbS1jZW50ZXIganVzdGlmeS1jb250ZW50LXNtLWFyb3VuZFwiIFtuZ0NsYXNzXT1cImlzRGVsaXZlcnlCb3ggPyBBQ1RJVkVfSVRFTSA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiZGVsaXZlcnktaW1nXCIgc3JjPVwiLi4vLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9kZWxpdmVyeS5zdmdcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImlzRGVsaXZlcnlCb3hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY2hlY2stc3F1YXJlLWRlbFwiIHNyYz1cIi4uLy4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvY2hlY2stc3F1YXJlLnN2Z1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlbGl2ZXJ5LWhlYWRpbmctdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlPnt7ZGVsaXZlcnlNb2Rlc1swXT8ubmFtZSB8fCAnRGVsaXZlcnknfX0gPC9tYXQtY2FyZC10aXRsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1zdWJ0aXRsZT4ge3tkZWxpdmVyeU1vZGVzWzBdPy5kZXNjcmlwdGlvbiB8fCAnV2UgZGVsaXZlciByaWdodCB0byB5b3VyIGRvb3IuJ319IDwvbWF0LWNhcmQtc3VidGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkIGNsYXNzPVwibWF0cmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cImJveC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwiaXNEZWxpdmVyeUJveCA9IGZhbHNlIDtoYXNUaW1lU3BlY2lmaWNSZXF1ZXN0ID0gZmFsc2U7IGNoYW5nZURlbGl2ZXJ5T3B0aW9ucygpXCIgY2xhc3M9XCJjb2xsZWN0LWJveCBkLXNtLWlubGluZS1mbGV4IGFsaWduLWl0ZW1zLXNtLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtc20tYXJvdW5kXCIgW25nQ2xhc3NdPVwiaXNEZWxpdmVyeUJveCA/ICcnIDogQUNUSVZFX0lURU1cIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInBpY2t1cC1pbWdcIiBzcmM9XCIuLi8uLi8uLi8uLi9hc3NldHMvaW1hZ2VzL3BpY2t1cC5zdmdcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFpc0RlbGl2ZXJ5Qm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImNoZWNrLXNxdWFyZS1jY1wiIHNyYz1cIi4uLy4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvY2hlY2stc3F1YXJlLnN2Z1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlbGl2ZXJ5LWhlYWRpbmctdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlPiB7e2RlbGl2ZXJ5TW9kZXNbMV0/Lm5hbWUgfHwgJ0NsaWNrICYgQ29sbGVjdCd9fTwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtc3VidGl0bGU+IHt7ZGVsaXZlcnlNb2Rlc1sxXT8uZGVzY3JpcHRpb24gfHwgJ0NvbGxlY3QgZnJvbSB5b3VyIG5lYXJlc3QgYnJhbmNoLicgfX08L21hdC1jYXJkLXN1YnRpdGxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1jYXJkPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1jYXJkLWhlYWRlciBjbGFzcz1cImxpbmUtc3RlcC1uYXZpZ2F0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgY3VzLXRpdGxlLW1hcmdpbi1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC10aXRsZSBjbGFzcz1cImZvbnQtYm9sZFwiPiA8c3BhbiBjbGFzcz1cImNhcmQtbnVtYmVyXCI+IDIgPC9zcGFuPiBQdXJjaGFzZSBPcmRlciBOdW1iZXI8L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1oZWFkZXI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQgY2xhc3M9XCJjdXN0b20tbWF0LWNhcmQgbGluZS1zdGVwLW5hdmlnYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udGFpbmVyIGZvci1tb2IgY29sLXNtLTYgcGwtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlB1cmNoYXNlIE9yZGVyIE51bWJlciAgPHNwYW4gY2xhc3M9XCJtYXJrZXJcIj4qPC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgI3BvTnVtYmVyPVwibmdNb2RlbFwiIG5hbWU9XCJwb051bWJlclwiIGlkPVwicG9OdW1iZXJcIiB0eXBlPVwidGV4dFwiIG1heGxlbmd0aD1cIjE1XCIgWyhuZ01vZGVsKV09XCJjaGVja291dEZvcm1EYXRhLnBvTnVtYmVyXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgam9ib3JkZXItaW5wdXRcIiByZXF1aXJlZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiaXNTdWJtaXR0ZWRcIiBbaGlkZGVuXT1cInBvTnVtYmVyLnZhbGlkXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdXJjaGFzZSBPcmRlciBOdW1iZXIgaXMgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1jYXJkLWhlYWRlciBjbGFzcz1cImxpbmUtc3RlcC1uYXZpZ2F0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgY3VzLXRpdGxlLW1hcmdpbi1jYXJkXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJmb250LWJvbGRcIj4gPHNwYW4gY2xhc3M9XCJjYXJkLW51bWJlclwiPiAzIDwvc3Bhbj4ge3tpc0RlbGl2ZXJ5Qm94ID8gJ0RlbGl2ZXJ5JzogJ1BpY2t1cCAnfX0gRGF0ZSBhbmQgVGltZTwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQgY2xhc3M9XCJjdXN0b20tbWF0LWNhcmQgbGluZS1zdGVwLW5hdmlnYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udGFpbmVyIGZvci1tb2IgY29sLXNtLTYgcGwtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImRhdGVcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5EYXRlIDxzcGFuIGNsYXNzPVwibWFya2VyXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gY2xhc3M9XCJuZ2ItZGF0ZS1mb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW2ZpcnN0RGF5T2ZXZWVrXT1cIjdcIiAjZGVsaXZlcnlQaWNrVXBEYXRlPVwibmdNb2RlbFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGN1cy13aWR0aCBkYXRlLWlucHV0XCIgWyhuZ01vZGVsKV09XCJjaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRGF0ZVwiIGlkPVwiZGF0ZVwiIG5hbWU9XCJ0eHREYXRlXCIgdGFiaW5kZXg9XCItMVwiIG9ua2V5ZG93bj1cInJldHVybiBmYWxzZVwiIHBsYWNlaG9sZGVyPVwiREQtTU0tWVlZWVwiIG5nYkRhdGVwaWNrZXIgI25nRGF0ZT1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5EYXRlXT1cIm5nYk1pbkRhdGVcIiAoZGF0ZVNlbGVjdCk9XCJkYXRlY2hhbmdlKCRldmVudClcIiBjb250YWluZXI9XCJib2R5XCIgcmVxdWlyZWQgW21hcmtEaXNhYmxlZF09XCJpc0Rpc2FibGVkXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmQgY3VzdG9tLWRhdGUtYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1zZWNvbmRhcnkgY2FsZW5kYXJcIiAoY2xpY2spPVwibmdEYXRlLnRvZ2dsZSgpXCIgdHlwZT1cImJ1dHRvblwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJpc1N1Ym1pdHRlZCAmJiAhY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGVcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGUgaXMgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIFsobmdNb2RlbCldPVwiaGFzVGltZVNwZWNpZmljUmVxdWVzdFwiIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiICpuZ0lmPVwiaXNEZWxpdmVyeUJveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gW3ZhbHVlXT1cInRydWVcIiAoY2xpY2spPVwidGltZVJlcXVlc3RDaGFuZ2UoKVwiPkkgaGF2ZSBhIHRpbWUgc3BlY2lmaWMgZGVsaXZlcnkgcmVxdWVzdDwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRhaW5lciBmb3ItbW9iIGNvbC1zbS02IHBsLTBcIiBbbmdDbGFzc109XCJ7J2Qtbm9uZSc6ICFoYXNUaW1lU3BlY2lmaWNSZXF1ZXN0IHx8ICFpc0RlbGl2ZXJ5Qm94fVwiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwidGltZVwiIGNsYXNzPVwiZm9ybS1sYWJlbCBwdC00XCI+VGltZSA8c3BhbiBjbGFzcz1cIm1hcmtlclwiPio8L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gY2xhc3M9XCJmb3JtLWpvYlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZGl2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJqb2JpbnB1dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd24gY2xhc3M9XCJkLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtcHJpbWFyeVwiIGlkPVwiZHJvcGRvd25CYXNpYzFcIiBuZ2JEcm9wZG93blRvZ2dsZSA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBJbml0aWFsdGltZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hldnJvbi1kb3duIGN1c3RvbS1hcnJvdy1kb3duXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnUgYXJpYS1sYWJlbGxlZGJ5PVwiZHJvcGRvd25CYXNpYzFcIiBpZD1cImRyb3Bkb3duTWVudVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gY2xhc3M9XCJkcm9wZG93bkl0ZW1cIiAqbmdGb3I9XCJsZXQgdGltZSBvZiB0aW1lT3B0aW9uc1wiICNjb2xsZWN0VGltZU9iaiAoY2xpY2spPVwib25Gcm9tVGltZUNoYW5nZWQodGltZSk7IGNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBGcm9tVGltZT10aW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdGltZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBbbmdDbGFzc109XCJ7J2Qtbm9uZSc6ICFoYXNUaW1lU3BlY2lmaWNSZXF1ZXN0IHx8ICFpc0RlbGl2ZXJ5Qm94fVwiPipZb3VyIHRpbWUgc3BlY2lmaWMgZGVsaXZlcnkgcmVxdWVzdCB3aWxsIGJlIGNvbmZpcm1lZCBieSB0aGUgRGltb25kIEN1c3RvbWVyIFNlcnZpY2VzIHRlYW0gd2hlbiB5b3VyIG9yZGVyIGlzIGNvbmZpcm1lZC48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxwICpuZ0lmPVwiaXNTdWJtaXR0ZWRcIiBbaGlkZGVuXT1cImNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBGcm9tVGltZSAhPSB1bmRlZmluZWRcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyb20gdGltZSBpcyByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiaXNTdWJtaXR0ZWRcIiBbaGlkZGVuXT1cImNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBUb1RpbWUgIT0gdW5kZWZpbmVkXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUbyB0aW1lIGlzIHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtY2FyZD5cclxuXHJcbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQtaGVhZGVyIGNsYXNzPVwibGluZS1zdGVwLW5hdmlnYXRpb25cIiAqbmdJZj1cIiFpc0RlbGl2ZXJ5Qm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgY3VzLXRpdGxlLW1hcmdpbi1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC10aXRsZSBjbGFzcz1cImZvbnQtYm9sZFwiPiA8c3BhbiBjbGFzcz1cImNhcmQtbnVtYmVyXCI+IDQgPC9zcGFuPiBQaWNrdXAgTG9jYXRpb248L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1oZWFkZXI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQgKm5nSWY9XCIhaXNEZWxpdmVyeUJveFwiIGNsYXNzPVwiY3VzdG9tLW1hdC1jYXJkIGxpbmUtc3RlcC1uYXZpZ2F0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJicmFuY2gtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9J2FkZHJlc3MtdGl0bGUnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YnJhbmNoRGlzcGxheU5hbWV9fTwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtc3VidGl0bGU+IHt7YnJhbmNoQWRkcmVzcz8uZm9ybWF0dGVkQWRkcmVzc319PC9tYXQtY2FyZC1zdWJ0aXRsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1zdWJ0aXRsZT4gPHNwYW4gY2xhc3M9XCJmb3JtLWxhYmVsXCI+UGhvbmU6IDwvc3Bhbj4ge3ticmFuY2hBZGRyZXNzPy5waG9uZX19PC9tYXQtY2FyZC1zdWJ0aXRsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJicmFuY2gtaG91ci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9J2FkZHJlc3MtdGl0bGUnPk9wZW5pbmcgSG91cnM8L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1zdWJ0aXRsZSAqbmdGb3I9XCJsZXQgZGF0YSBvZiB0ZW1wQnJhbmNoTGlzdERhdGFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJob3VyLWxhYmVsLWxlZnRcIj57eyBkYXRhPy53ZWVrRGF5IH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRhdGE/Lm9wZW5pbmdUaW1lPy5mb3JtYXR0ZWRIb3VyIHx8IGRhdGE/LmNsb3NpbmdUaW1lPy5mb3JtYXR0ZWRIb3VyXCI+e3tkYXRhPy5vcGVuaW5nVGltZT8uZm9ybWF0dGVkSG91cn19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0ge3tkYXRhPy5jbG9zaW5nVGltZT8uZm9ybWF0dGVkSG91cn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cIiFkYXRhPy5vcGVuaW5nVGltZT8uZm9ybWF0dGVkSG91ciAmJiAhZGF0YT8uY2xvc2luZ1RpbWU/LmZvcm1hdHRlZEhvdXJcIj5DbG9zZWQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1zdWJ0aXRsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1jYXJkPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1jYXJkLWhlYWRlciBjbGFzcz1cImxpbmUtc3RlcC1uYXZpZ2F0aW9uXCIgKm5nSWY9XCJpc0RlbGl2ZXJ5Qm94XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgY3VzLXRpdGxlLW1hcmdpbi1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC10aXRsZSBjbGFzcz1cImZvbnQtYm9sZFwiPiA8c3BhbiBjbGFzcz1cImNhcmQtbnVtYmVyXCI+IDQgPC9zcGFuPiB7e2lzRGVsaXZlcnlCb3ggPyAnU2VsZWN0IHlvdXIgRGVsaXZlcnkgQWRkcmVzcyBQcmVmZXJlbmNlJzogJ1BpY2t1cCBMb2NhdGlvbiAnfX1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgICAgICAgICAgIDxtYXQtY2FyZCBbaGlkZGVuXT1cIiFpc0RlbGl2ZXJ5Qm94XCIgY2xhc3M9XCJjdXN0b20tbWF0LWNhcmQgbGluZS1zdGVwLW5hdmlnYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtYXQtaW5uZXItY29udGFpbmVyIHJhZGlvLWJ0bi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgYXJpYS1sYWJlbD1cIlNlbGVjdCBhbiBvcHRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiAqbmdJZj1cImRlZmF1bHRBY2NvdW50QWRkcmVzcz8uZm9ybWF0dGVkQWRkcmVzcyB8fCAoZGVsaXZlcnlBZGRyZXNzZXMgJiYgZGVsaXZlcnlBZGRyZXNzZXMubGVuZ3RoID4gMClcIiBbY2hlY2tlZF09XCJzZWxlY3RlZEFkZHJlc3MgPT0gJ2FjY291bnRBZGRyZXNzJ1wiIChjaGFuZ2UpPVwic2VsZWN0ZWRBZGRyZXNzID0gJ2FjY291bnRBZGRyZXNzJztzZWxlY3RlZFJlY2VudEFkZHJlc3M9IGRlbGl2ZXJ5QWRkcmVzc2VzWzBdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIidhY2NvdW50QWRkcmVzcydcIiBjbGFzcz1cInBsLTAgcHItbWQtNFwiPkFjY291bnQgQWRkcmVzczwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiAqbmdJZj1cImRlbGl2ZXJ5QWRkcmVzc2VzICYmIHJlY2VudEFkZHJlc3MubGVuZ3RoPiAwXCIgW2NoZWNrZWRdPVwic2VsZWN0ZWRBZGRyZXNzID09ICdyZWNlbnRBZGRyZXNzJ1wiIChjaGFuZ2UpPVwic2VsZWN0ZWRBZGRyZXNzID0gJ3JlY2VudEFkZHJlc3MnOyBzZWxlY3RlZFJlY2VudEFkZHJlc3M9IHJlY2VudEFkZHJlc3NbMF1cIiBbdmFsdWVdPVwiJ3JlY2VudEFkZHJlc3MnXCIgY2xhc3M9XCJwbC0wIHByLW1kLTRcIj5SZWNlbnQgQWRkcmVzczwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBbY2hlY2tlZF09XCJzZWxlY3RlZEFkZHJlc3MgPT0gJ2FkZE5ld0FkZHJlc3MnXCIgKGNoYW5nZSk9XCJhZGROZXdBZGRyZXNzKClcIiBbdmFsdWVdPVwiJ2FkZE5ld0FkZHJlc3MnXCI+QWRkIE5ldyBBZGRyZXNzPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMiBhZGRyZXNzLWlubmVyLWNvbnRhaW5lclwiICpuZ0lmPVwic2VsZWN0ZWRBZGRyZXNzID09ICdhY2NvdW50QWRkcmVzcycgJiYgZGVsaXZlcnlBZGRyZXNzZXMubGVuZ3RoID4gMCBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCAqbmdJZj1cIiFzaG93TW9yZUFkZHJlc3Nlc1wiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkNvbmZpcm1lZCBEZWxpdmVyeSBBZGRyZXNzIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFzaG93TW9yZUFkZHJlc3Nlc1wiIGNsYXNzPVwiZm9ybS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFwLXNlbGVjdGVkLWFkZHJlc3NcIiBpZD1cImFkZHJlc3NcIiByZXF1aXJlZCAjaXNBZGRyU2VsZWN0ZWRPck5vdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkZWZhdWx0QWNjb3VudEFkZHJlc3M/LmZvcm1hdHRlZEFkZHJlc3N9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd01vcmVBZGRyZXNzZXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIGFyaWEtbGFiZWxsZWRieT1cImV4YW1wbGUtcmFkaW8tZ3JvdXAtbGFiZWxcIiBjbGFzcz1cImV4YW1wbGUtcmFkaW8tZ3JvdXAgcmFkaW8tYnRuLXNpemVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY2xhc3M9XCJweS0xXCIgW2NoZWNrZWRdPVwic2VsZWN0ZWRSZWNlbnRBZGRyZXNzPy5pZCA9PSBhZGRyZXNzLmlkXCIgKm5nRm9yPVwibGV0IGFkZHJlc3Mgb2YgZGVsaXZlcnlBZGRyZXNzZXNcIiBbdmFsdWVdPVwiYWRkcmVzcy5pZFwiIChjaGFuZ2UpPVwic2VsZWN0ZWRSZWNlbnRBZGRyZXNzPWFkZHJlc3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YWRkcmVzcy5mb3JtYXR0ZWRBZGRyZXNzfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMiBhZGRyZXNzLWlubmVyLWNvbnRhaW5lclwiICpuZ0lmPVwic2VsZWN0ZWRBZGRyZXNzID09ICdyZWNlbnRBZGRyZXNzJyAmJiByZWNlbnRBZGRyZXNzLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgYXJpYS1sYWJlbGxlZGJ5PVwiZXhhbXBsZS1yYWRpby1ncm91cC1sYWJlbFwiIGNsYXNzPVwiZXhhbXBsZS1yYWRpby1ncm91cCByYWRpby1idG4tc2l6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwicHktMVwiIFtjaGVja2VkXT1cInNlbGVjdGVkUmVjZW50QWRkcmVzcz8uaWQgPT0gYWRkcmVzcy5pZFwiICpuZ0Zvcj1cImxldCBhZGRyZXNzIG9mIHJlY2VudEFkZHJlc3MgXCIgW3ZhbHVlXT1cImFkZHJlc3MuaWRcIiAoY2hhbmdlKT1cInNlbGVjdGVkUmVjZW50QWRkcmVzcz1hZGRyZXNzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YWRkcmVzcy5mb3JtYXR0ZWRBZGRyZXNzfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZEFkZHJlc3MgPT0gJ2FkZE5ld0FkZHJlc3MnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIE1hcCBEaXYgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWFkZC1uZXctYWRkcmVzcyBbY29uZmlybWVkQWRkcmVzc109XCJjb25maXJtZWROZXdBZGRyZXNzXCIgKHVwZGF0ZU5ld0FkZHJlc3MpPVwiZ2V0TmV3QWRkcmVzcygkZXZlbnQpXCI+PC9hcHAtYWRkLW5ldy1hZGRyZXNzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1jYXJkPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1jYXJkLWhlYWRlciBjbGFzcz1cImxpbmUtc3RlcC1uYXZpZ2F0aW9uIGxhc3Qtc3RlcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIGN1cy10aXRsZS1tYXJnaW4tY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcmQtbnVtYmVyXCI+IDUgPC9zcGFuPiB7e2lzRGVsaXZlcnlCb3ggPyAnU2l0ZSBEZWxpdmVyeSBSZXF1aXJlbWVudHMnOiAnQ29tbWVudHMgJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImluZm8taWNvbiBwbC0yXCIgYXBwVG9vbHRpcCB0b29sdGlwVGl0bGU9XCJ7e2lzRGVsaXZlcnlCb3ggPyBzaXRlRGVsaXZlcnlSZXF1aXJlbWVudHMgOiBjbGlja2FuZENvbGxlY3RDb21tZW50c319XCIgcGxhY2VtZW50PVwiYm90dG9tXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1oZWFkZXI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQgY2xhc3M9XCJjdXN0b20tbWF0LWNhcmQgbGluZS1zdGVwLW5hdmlnYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJjaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwTm90ZXNcIiByb3dzPVwiM1wiIG5hbWU9XCJJbnN0cnVjdGlvbnNcIiBpZD1cIkluc3RydWN0aW9uc1wiIFtwbGFjZWhvbGRlcl09XCJpc0RlbGl2ZXJ5Qm94ID8gJ1Byb3ZpZGUgYW55IHNwZWNpZmljIGRlbGl2ZXJ5IGluc3RydWN0aW9ucyc6J1Byb3ZpZGUgYW55IHNwZWNpZmljIHBpY2t1cCBpbnN0cnVjdGlvbnMnXCIgbWF4bGVuZ3RoPVwiMjUwXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1jYXJkPlxyXG4gICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjYXJ0LXBhZ2UtZm9vdGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN0aWNreS1mb290ZXIgcm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTJcIj5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiIGZsb2F0LW1kLXJpZ2h0IG0tMCBjaGVja291dC1mb290ZXItYnRuc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIHRpdGxlPVwiQmFjayB0byBDYXJ0XCIgaHJlZj1cIi9jYXJ0XCIgY2xhc3M9XCJtci0zIGZvbnQtd2VpZ2h0LWJvbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuLi8uLi8uLi8uLi9hc3NldHMvaW1hZ2VzL2lvbmljLWFycm93LWJhY2suc3ZnXCIgYWx0PVwiYmFjay1hcnJvd1wiIGNsYXNzPVwibXItMlwiIC8+IEJBQ0tcclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInJldmlld09yZGVyKClcIiBjbGFzcz1cImJ0biBwcmltYXJ5LWJ1dHRvblwiPlJldmlldyBBbmQgT3JkZXI8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgY29sLXNtLTEyIGFsZXJ0IGFsZXJ0LWRhbmdlciBhbGVydC1kYW5nZXItY3VzdG9tIGp1c3RpZnktY29udGVudC1zdGFydCBtdC0zXCIgcm9sZT1cImFsZXJ0XCIgKm5nSWY9XCJlcnJvckluZCQgfCBhc3luY1wiPlxyXG4gICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIm1yLTNcIiBzcmM9XCIuLi8uLi8uLi8uLi9hc3NldHMvaW1hZ2VzL2Vycm9yaWNvbi5zdmdcIiBhbHQ9XCJhbGVydFwiPiB7e2luZm9NZXNzYWdlfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -9082,6 +9082,7 @@ class CustomCheckoutComponent {
|
|
|
9082
9082
|
closingTime: { hour: 12, minute: 0 }
|
|
9083
9083
|
};
|
|
9084
9084
|
this.Initialtime = '6:00 AM';
|
|
9085
|
+
this.initialMaxTime = '06:30 AM';
|
|
9085
9086
|
this.timeOptions = [
|
|
9086
9087
|
'06:00 AM', '06:30 AM', '07:00 AM', '08:30 AM',
|
|
9087
9088
|
'09:00 AM', '09:30 AM', '10:00 AM', '10:30 AM', '11:00 AM', '11:30 AM',
|
|
@@ -9253,7 +9254,7 @@ class CustomCheckoutComponent {
|
|
|
9253
9254
|
return result;
|
|
9254
9255
|
}
|
|
9255
9256
|
updateMinMaxTime(date) {
|
|
9256
|
-
if (this.hasTimeSpecificRequest) {
|
|
9257
|
+
if (this.hasTimeSpecificRequest || this.isDeliveryBox) {
|
|
9257
9258
|
// Time specific delivery
|
|
9258
9259
|
this.minTime = new Date(date.getFullYear(), date.getMonth(), date.getDate(), this.specificDelivery?.openingTime?.hour || 6, this.specificDelivery?.openingTime?.minute || 0, 0);
|
|
9259
9260
|
this.fromMaxTime = new Date(date.getFullYear(), date.getMonth(), date.getDate(), this.specificDelivery?.closingTime?.hour || 12, this.specificDelivery?.closingTime?.minute || 0, 0);
|
|
@@ -9273,11 +9274,18 @@ class CustomCheckoutComponent {
|
|
|
9273
9274
|
}
|
|
9274
9275
|
updateRequestedTime() {
|
|
9275
9276
|
this.minTime = this.getRoundMinTime(this.minTime);
|
|
9276
|
-
this.minToTime = this.getRoundMinTime(this.minToTime);
|
|
9277
9277
|
//if clicking on radio button for delivery, should pick 6 am, if time does not go fine then revert it
|
|
9278
|
-
if (this.
|
|
9279
|
-
|
|
9280
|
-
|
|
9278
|
+
if (this.isDeliveryBox) {
|
|
9279
|
+
if (!this.hasTimeSpecificRequest) {
|
|
9280
|
+
const formattedMinTime = this.minTime.toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit', hour12: true });
|
|
9281
|
+
const formattedfromMaxTime = this.fromMaxTime.toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit', hour12: true });
|
|
9282
|
+
this.checkoutFormData.deliveryPickUpFromTime = formattedMinTime;
|
|
9283
|
+
this.checkoutFormData.deliveryPickUpToTime = formattedfromMaxTime;
|
|
9284
|
+
}
|
|
9285
|
+
else {
|
|
9286
|
+
const formattedMinTime = this.minTime.toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit', hour12: true });
|
|
9287
|
+
this.checkoutFormData.deliveryPickUpFromTime = formattedMinTime;
|
|
9288
|
+
}
|
|
9281
9289
|
}
|
|
9282
9290
|
else {
|
|
9283
9291
|
const formattedminToTime = this.minToTime.toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit', hour12: true });
|
|
@@ -9360,9 +9368,8 @@ class CustomCheckoutComponent {
|
|
|
9360
9368
|
let sessionData = this.checkoutFormData;
|
|
9361
9369
|
//this.checkoutFormData.deliveryPickUpFromTime = this.collectTimeObj?.getText();
|
|
9362
9370
|
//this.checkoutFormData.deliveryPickUpToTime = this.checkoutToTime?.getText();
|
|
9363
|
-
if (this.isDeliveryBox) {
|
|
9364
|
-
this.
|
|
9365
|
-
this.checkoutFormData.deliveryPickUpToTime = this.minToTime;
|
|
9371
|
+
if (this.isDeliveryBox && this.hasTimeSpecificRequest) {
|
|
9372
|
+
this.checkoutFormData.deliveryPickUpToTime = this.minToTime ? this.minToTime.toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit', hour12: true }) : this.initialMaxTime;
|
|
9366
9373
|
}
|
|
9367
9374
|
let deliveryPickUpDate = this.checkoutFormData.deliveryPickUpDate;
|
|
9368
9375
|
this.checkoutFormData.deliveryPickUpDate = this.checkoutFormData.deliveryPickUpDate?.day + '/' + this.checkoutFormData.deliveryPickUpDate?.month + '/' + this.checkoutFormData.deliveryPickUpDate?.year;
|
|
@@ -9430,7 +9437,6 @@ class CustomCheckoutComponent {
|
|
|
9430
9437
|
changeDeliveryOptions() {
|
|
9431
9438
|
this.checkoutFormData.deliveryPickUpFromTime = null;
|
|
9432
9439
|
this.checkoutFormData.deliveryPickUpToTime = null;
|
|
9433
|
-
this.checkoutFormData.deliveryPickUpDate = null;
|
|
9434
9440
|
this.weekDayOpeningList = this.isDeliveryBox
|
|
9435
9441
|
? this.responseData.pointOfService?.deliverySchedule?.weekDayOpeningList
|
|
9436
9442
|
: this.responseData.pointOfService?.pickupSchedule?.weekDayOpeningList;
|