buildingproduct-library 2.0.3 → 2.0.32
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.3.tgz → buildingproduct-library-2.0.32.tgz} +0 -0
- package/esm2022/lib/checkout/custom-checkout/custom-checkout.component.mjs +2 -1
- package/esm2022/lib/my-team/my-team.component.mjs +18 -14
- package/esm2022/lib/shared/feature.modules.mjs +42 -0
- package/esm2022/lib/spa-custom-header.module.mjs +5 -1
- package/fesm2022/buildingproduct-library.mjs +55 -5
- package/fesm2022/buildingproduct-library.mjs.map +1 -1
- package/lib/my-team/my-team.component.d.ts +5 -2
- package/lib/shared/feature.modules.d.ts +7 -0
- package/lib/spa-custom-header.module.d.ts +4 -3
- package/package.json +1 -1
|
Binary file
|
|
@@ -362,6 +362,7 @@ export class CustomCheckoutComponent {
|
|
|
362
362
|
changeDeliveryOptions() {
|
|
363
363
|
this.checkoutFormData.deliveryPickUpFromTime = null;
|
|
364
364
|
this.checkoutFormData.deliveryPickUpToTime = null;
|
|
365
|
+
this.checkoutFormData.deliveryPickUpDate = null;
|
|
365
366
|
this.weekDayOpeningList = this.isDeliveryBox
|
|
366
367
|
? this.responseData.pointOfService?.deliverySchedule?.weekDayOpeningList
|
|
367
368
|
: this.responseData.pointOfService?.pickupSchedule?.weekDayOpeningList;
|
|
@@ -393,4 +394,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
393
394
|
type: ViewChild,
|
|
394
395
|
args: ['mapViewNode', { static: true }]
|
|
395
396
|
}] } });
|
|
396
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWNoZWNrb3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J1aWxkaW5ncHJvZHVjdF9saWJyYXJ5L3NyYy9saWIvY2hlY2tvdXQvY3VzdG9tLWNoZWNrb3V0L2N1c3RvbS1jaGVja291dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2NoZWNrb3V0L2N1c3RvbS1jaGVja291dC9jdXN0b20tY2hlY2tvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFJVCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBU3ZDLE1BQU0sT0FBTyx1QkFBdUI7SUFxRGxDLFlBQ1MsZUFBc0MsRUFDckMsVUFBc0IsRUFDdkIsRUFBcUIsRUFDckIsUUFBcUIsRUFDckIsaUJBQW9DO1FBSnBDLG9CQUFlLEdBQWYsZUFBZSxDQUF1QjtRQUNyQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3ZCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQXpEM0MsbUZBQW1GO1FBQ3JGLDJCQUFzQixHQUFXLEtBQUssQ0FBQztRQUN2QyxxQkFBZ0IsR0FBRztZQUNqQixXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUU7WUFDbkMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFO1NBQ3JDLENBQUM7UUFDRixjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFD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LENBQUMsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQjtZQUN4RSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixDQUFDO1FBQ3pFLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsYUFBYTtZQUM3QyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCO1lBQzNFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxjQUFjLEVBQUUscUJBQXFCLENBQUM7UUFDMUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUNELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQzsrR0E5Y1UsdUJBQXVCO21HQUF2Qix1QkFBdUIsd2RDbkJwQyxteWxCQTZPQTs7NEZEMU5hLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUI7Nk1BZ0NKLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFPdUIsY0FBYztzQkFBN0QsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0UsY0FBYztzQkFBN0QsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ00sU0FBUztzQkFBNUQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiQ2FsZW5kYXIsIE5nYkRhdGVTdHJ1Y3QgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IEFjdGl2ZUNhcnRTZXJ2aWNlIH0gZnJvbSAnQHNwYXJ0YWN1cy9jYXJ0L2Jhc2UvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDdXN0b21DaGVja291dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jaGVja291dC5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IENtc1NlcnZpY2UgfSBmcm9tICdAc3BhcnRhY3VzL2NvcmUnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jdXN0b20tY2hlY2tvdXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tY2hlY2tvdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2N1c3RvbS1jaGVja291dC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tQ2hlY2tvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgLy9oYXNUaW1TcGVjaWZpY1JlcXVlc3QgZmxhZyBmb3Igc2hvd2luZyBhbmQgaGlkaW5nIHRpbWUgY29udHJvbCBvbiBkZWxpdmVyeSBvcHRpb25cclxuICBoYXNUaW1lU3BlY2lmaWNSZXF1ZXN0OiBib29sZWFuID1mYWxzZTtcclxuICBzcGVjaWZpY0RlbGl2ZXJ5ID0ge1xyXG4gICAgb3BlbmluZ1RpbWU6IHsgaG91cjogNiwgbWludXRlOiAwIH0sXHJcbiAgICBjbG9zaW5nVGltZTogeyBob3VyOiAxMiwgbWludXRlOiAwIH1cclxuICB9O1xyXG4gIGVycm9ySW5kJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIGluZm9NZXNzYWdlOiBzdHJpbmcgPSAnJztcclxuICBwcmV2aW91c1VybDogc3RyaW5nID0gJyc7XHJcbiAgY2FydElkOiBzdHJpbmcgPSAnJztcclxuICBpc0RlbGl2ZXJ5Qm94OiBib29sZWFuID0gdHJ1ZTtcclxuICBBQ1RJVkVfSVRFTTogc3RyaW5nID0gJ2FjdGl2ZS1ib3gnO1xyXG4gIG5nYk1pbkRhdGU6IGFueTtcclxuICBzZWxlY3RlZEFkZHJlc3M6IHN0cmluZyA9ICdhY2NvdW50QWRkcmVzcyc7XHJcbiAgcHVibGljIG1heFRpbWU6IGFueTtcclxuICBwdWJsaWMgZnJvbU1heFRpbWU6IGFueTtcclxuICBjY21pblRpbWUgPSBuZXcgRGF0ZSgyMDIyLCAwLCAyOCwgNiwgMCwgMCk7XHJcbiAgY2NtYXhUaW1lID0gbmV3IERhdGUoMjAyMiwgMCwgMjgsIDIyLCAwLCAwKTtcclxuICBwdWJsaWMgbWluVGltZTogYW55O1xyXG4gIHB1YmxpYyBtaW5Ub1RpbWU6IGFueTtcclxuICBjaGVja291dEZvcm1EYXRhOiBhbnkgPSB7fTtcclxuICBpc1N1Ym1pdHRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHN0YXJ0VGltZTogYW55ID0gW107XHJcbiAgcmVjZW50QWRkcmVzczogYW55ID0gW107XHJcbiAgZGVsaXZlclRpbWU6IGFueTtcclxuICBkZWZhdWx0QWNjb3VudEFkZHJlc3M6IGFueTtcclxuICBicmFuY2hBZGRyZXNzOiBhbnk7XHJcbiAgQFZpZXdDaGlsZCgnY2hlY2tvdXRGb3JtJykgY2hlY2tvdXRGb3JtOiBhbnk7XHJcbiAgc2VsZWN0ZWRSZWNlbnRBZGRyZXNzOiBhbnkgPSB7fTtcclxuICB0ZW1wQnJhbmNoTGlzdERhdGE6IGFueSA9IFtdO1xyXG4gIHB1YmxpYyBkZWxpdmVyeURpc2FibGVEYXRlczogYW55O1xyXG4gIGNvbGxlY3RUaW1lOiBhbnk7XHJcbiAgbWluTGVhZFRpbWU6IG51bWJlciA9IDM7XHJcbiAgcmVzcG9uc2VEYXRhOiBhbnk7XHJcbiAgQFZpZXdDaGlsZCgnY2hlY2tvdXRUb1RpbWUnLCB7IHN0YXRpYzogZmFsc2UgfSkgY2hlY2tvdXRUb1RpbWU6IGFueTtcclxuICBAVmlld0NoaWxkKCdjb2xsZWN0VGltZU9iaicsIHsgc3RhdGljOiBmYWxzZSB9KSBjb2xsZWN0VGltZU9iajogYW55O1xyXG4gIEBWaWV3Q2hpbGQoJ21hcFZpZXdOb2RlJywgeyBzdGF0aWM6IHRydWUgfSkgcHJpdmF0ZSBtYXBWaWV3RWwhOiBFbGVtZW50UmVmO1xyXG4gIHNwZWNpYWxEYXlPcGVuaW5nTGlzdDogYW55ID0gW107XHJcbiAgd2Vla0RheU9wZW5pbmdMaXN0OiBhbnkgPSBbXTtcclxuICBkZWxpdmVyeUFkZHJlc3NlczogYW55ID0gW107XHJcbiAgc2hvd01vcmVBZGRyZXNzZXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaXRlRGVsaXZlcnlSZXF1aXJlbWVudHM6IGFueTtcclxuICBjbGlja2FuZENvbGxlY3RDb21tZW50czogYW55O1xyXG4gIGNoZWNrb3V0SGVhZGVyQ29udGVudDogYW55O1xyXG4gIGJyZWFkY3J1bWJEYXRhOiBhbnkgPSBbXTtcclxuICBkZWxpdmVyeU1vZGVzOiBhbnkgPSBbXTtcclxuICB2aWV3OiBhbnk7XHJcbiAgcGFnZVRpdGxlOiBhbnk7XHJcbiAgbmV3QWRkcmVzczogYW55O1xyXG4gIGNvbmZpcm1lZE5ld0FkZHJlc3M6IHN0cmluZyA9ICcnO1xyXG4gIHNob3dXYWl0Q3Vyc29yID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgYnJhbmNoRGlzcGxheU5hbWU6IGFueTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjaGVja291dFNlcnZpY2U6IEN1c3RvbUNoZWNrb3V0U2VydmljZSxcclxuICAgIHByaXZhdGUgY21zU2VydmljZTogQ21zU2VydmljZSxcclxuICAgIHB1YmxpYyBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgY2FsZW5kYXI6IE5nYkNhbGVuZGFyLFxyXG4gICAgcHVibGljIGFjdGl2ZUNhcnRTZXJ2aWNlOiBBY3RpdmVDYXJ0U2VydmljZVxyXG4gICkgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNtc1NlcnZpY2UuZ2V0Q3VycmVudFBhZ2UoKS5zdWJzY3JpYmUoKHBhZ2FkYXRhOiBhbnkpID0+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/Lm1pbnV0ZSB8fCAwLFxyXG4gICAgICAwXHJcbiAgICApO1xyXG4gIH1cclxuICAgIHRoaXMudXBkYXRlUmVxdWVzdGVkVGltZSgpO1xyXG4gIH1cclxuICB1cGRhdGVSZXF1ZXN0ZWRUaW1lKCkge1xyXG4gICAgdGhpcy5taW5UaW1lID0gdGhpcy5nZXRSb3VuZE1pblRpbWUodGhpcy5taW5UaW1lKTtcclxuICAgIHRoaXMubWluVG9UaW1lID0gdGhpcy5nZXRSb3VuZE1pblRpbWUodGhpcy5taW5Ub1RpbWUpO1xyXG4gICAgLy9pZiBjbGlja2luZyBvbiByYWRpbyBidXR0b24gZm9yIGRlbGl2ZXJ5LCBzaG91bGQgcGljayA2IGFtLCBpZiB0aW1lIGRvZXMgbm90IGdvIGZpbmUgdGhlbiByZXZlcnQgaXRcclxuICAgIGlmKHRoaXMuaGFzVGltZVNwZWNpZmljUmVxdWVzdCl7XHJcbiAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcEZyb21UaW1lID0gdGhpcy5taW5UaW1lO1xyXG4gICAgIH1lbHNle1xyXG4gICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwVG9UaW1lID0gdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwVG9UaW1lID8gdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwVG9UaW1lIDogdGhpcy5tYXhUaW1lO1xyXG4gICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRnJvbVRpbWUgPSB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBGcm9tVGltZSA/IHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcEZyb21UaW1lIDogdGhpcy5taW5Ub1RpbWU7XHJcbiAgfVxyXG59XHJcbiAgaXNEaXNhYmxlZCA9IChkYXRlOiBOZ2JEYXRlU3RydWN0KSA9PiB7XHJcbiAgICBjb25zdCBkYXkgPSBuZXcgRGF0ZShcclxuICAgICAgZGF0ZS55ZWFyLFxyXG4gICAgICBkYXRlLm1vbnRoIC0gMSxcclxuICAgICAgZGF0ZS5kYXkpPy5nZXREYXkoKVxyXG4gICAgaWYgKHRoaXMud2Vla0RheU9wZW5pbmdMaXN0W2RheSAtIDFdPy5jbG9zZWQpXHJcbiAgICAgIHJldHVybiB0cnVlXHJcbiAgICBjb25zdCBkYXQgPSBuZXcgRGF0ZShkYXRlLnllYXIsIGRhdGUubW9udGggLSAxLCBkYXRlLmRheSk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmdldFNwZWNpYWxEYXlzKGRhdGUpID4gLTEgfHxcclxuICAgICAgKHRoaXMud2Vla0RheU9wZW5pbmdMaXN0WzVdLmNsb3NlZCA9PSB0cnVlICYmIGRhdC5nZXREYXkoKSA9PT0gNikgfHxcclxuICAgICAgZGF0LmdldERheSgpID09PSAwXHJcbiAgICApO1xyXG4gIH07XHJcblxyXG4gIGdldFNwZWNpYWxEYXlzKGRhdGU6IE5nYkRhdGVTdHJ1Y3QpIHtcclxuICAgIGNvbnN0IGluZCA9IHRoaXMuc3BlY2lhbERheU9wZW5pbmdMaXN0Py5maW5kSW5kZXgoKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBkYXRlT2JqID0gZWxlbWVudC5mb3JtYXR0ZWREYXRlLnNwbGl0KCcvJyk7XHJcbiAgICAgIHJldHVybiBkYXRlT2JqWzBdID09IGRhdGUuZGF5ICYmIGRhdGVPYmpbMV0gPT0gZGF0ZS5tb250aDtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGluZDtcclxuICB9XHJcblxyXG4gIGdldFJvdW5kTWluVGltZShtaW5UaW1lOiBhbnkpIHtcclxuICAgIHZhciBjb2ZmID0gMTAwMCAqIDYwICogMzA7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoTWF0aC5jZWlsKG1pblRpbWUuZ2V0VGltZSgpIC8gY29mZikgKiBjb2ZmKTtcclxuICB9XHJcblxyXG4gIHRpbWVDbGljayhldmVudDogRXZlbnQsIHRpbWVPYmo6IGFueSkge1xyXG4gICAgaWYgKHRpbWVPYmogJiYgdGltZU9iai5pbnB1dFdyYXBwZXIpIHtcclxuICAgICAgdGltZU9iai5pbnB1dFdyYXBwZXIuY29udGFpbmVyICYmXHJcbiAgICAgICAgdGltZU9iai5pbnB1dFdyYXBwZXIuY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoJ2UtZGlzYWJsZWQnKTtcclxuICAgICAgdGltZU9iai5pbnB1dFdyYXBwZXIuYnV0dG9ucyAmJlxyXG4gICAgICAgIHRpbWVPYmouaW5wdXRXcmFwcGVyLmJ1dHRvbnNbMF0gJiZcclxuICAgICAgICB0aW1lT2JqLmlucHV0V3JhcHBlci5idXR0b25zWzBdLmNsYXNzTGlzdC5yZW1vdmUoJ2UtZGlzYWJsZWQnKTtcclxuICAgICAgdGltZU9iai5zaG93KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0aW1lVG9DbGljayhldmVudDogRXZlbnQsIHRpbWVPYmo6IGFueSkge1xyXG4gICAgaWYgKHRpbWVPYmogJiYgdGltZU9iai5pbnB1dFdyYXBwZXIpIHtcclxuICAgICAgdGltZU9iai5pbnB1dFdyYXBwZXIuY29udGFpbmVyICYmXHJcbiAgICAgICAgdGltZU9iai5pbnB1dFdyYXBwZXIuY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoJ2UtZGlzYWJsZWQnKTtcclxuICAgICAgdGltZU9iai5pbnB1dFdyYXBwZXIuYnV0dG9ucyAmJlxyXG4gICAgICAgIHRpbWVPYmouaW5wdXRXcmFwcGVyLmJ1dHRvbnNbMF0gJiZcclxuICAgICAgICB0aW1lT2JqLmlucHV0V3JhcHBlci5idXR0b25zWzBdLmNsYXNzTGlzdC5yZW1vdmUoJ2UtZGlzYWJsZWQnKTtcclxuICAgICAgdGltZU9iai5zaG93KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVTdGF0aWNUaW1lKGhvdXJzOiBudW1iZXIsIG1pbnV0ZXM6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGUgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgICAgdGhpcy5taW5Ub1RpbWUgPSBuZXcgRGF0ZShcclxuICAgICAgICB0b2RheS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgIHRvZGF5LmdldE1vbnRoKCksXHJcbiAgICAgICAgdG9kYXkuZ2V0RGF0ZSgpLFxyXG4gICAgICAgIGhvdXJzLFxyXG4gICAgICAgIG1pbnV0ZXMsXHJcbiAgICAgICAgMFxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGU7XHJcbiAgICAgIHRoaXMubWluVG9UaW1lID0gbmV3IERhdGUoXHJcbiAgICAgICAgZGF0ZS55ZWFyLFxyXG4gICAgICAgIGRhdGUubW9udGgsXHJcbiAgICAgICAgZGF0ZS5kYXksXHJcbiAgICAgICAgaG91cnMsXHJcbiAgICAgICAgbWludXRlcyxcclxuICAgICAgICAwXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm1pblRvVGltZSA9IHRoaXMuZ2V0Um91bmRNaW5UaW1lKHRoaXMubWluVG9UaW1lKTtcclxuICB9XHJcbiAgZ2V0TmV3QWRkcmVzcyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm5ld0FkZHJlc3MgPSBldmVudDtcclxuICB9XHJcbiAgcmV2aWV3T3JkZXIoKSB7XHJcbiAgICB0aGlzLmlzU3VibWl0dGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuY2hlY2tvdXRGb3JtLmZvcm0ubWFya0FzUHJpc3RpbmUoKTtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5jaGVja291dEZvcm0udmFsaWQgJiZcclxuICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRGF0ZSAhPSB1bmRlZmluZWQgJiZcclxuICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwVG9UaW1lICE9IHVuZGVmaW5lZCAmJlxyXG4gICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBEYXRlLmRheSAhPSB1bmRlZmluZWQgJiZcclxuICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRnJvbVRpbWUgIT0gdW5kZWZpbmVkXHJcbiAgICApIHtcclxuICAgICAgaWYgKHRoaXMuaXNEZWxpdmVyeUJveCAmJiB0aGlzLnNlbGVjdGVkUmVjZW50QWRkcmVzcz8uaWQgPT0gJycpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaXNEZWxpdmVyeUJveCAmJiB0aGlzLnNlbGVjdGVkQWRkcmVzcyA9PSAnYWRkTmV3QWRkcmVzcycgJiYgIXRoaXMubmV3QWRkcmVzcykge1xyXG4gICAgICAgIHRoaXMuZXJyb3JJbmQkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5pbmZvTWVzc2FnZSA9ICdQbGVhc2UgU2VsZWN0IGFuZCBDb25maXJtIEFkZHJlc3MgZnJvbSBNYXAnO1xyXG4gICAgICAgIHJldHVyblxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5jYXJ0SUQgPSB0aGlzLmNhcnRJZDtcclxuICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5QWRkcmVzc1BLID0gdGhpcy5pc0RlbGl2ZXJ5Qm94ID09IGZhbHNlID8gdGhpcy5icmFuY2hBZGRyZXNzPy5pZCA6IHRoaXMuc2VsZWN0ZWRSZWNlbnRBZGRyZXNzPy5pZDtcclxuICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5TWV0aG9kID0gdGhpcy5pc0RlbGl2ZXJ5Qm94ID8gdGhpcy5kZWxpdmVyeU1vZGVzWzBdLmNvZGUgOiB0aGlzLmRlbGl2ZXJ5TW9kZXNbMV0uY29kZTtcclxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRBZGRyZXNzID09ICdhZGROZXdBZGRyZXNzJykge1xyXG4gICAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5uZXdBZGRyZXNzID0gdGhpcy5uZXdBZGRyZXNzO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLmNoZWNrb3V0Rm9ybURhdGEubmV3QWRkcmVzcztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuc2VsZWN0ZWRBZGRyZXNzID0gdGhpcy5zZWxlY3RlZEFkZHJlc3M7XHJcbiAgICAgIGxldCBzZXNzaW9uRGF0YSA9IHRoaXMuY2hlY2tvdXRGb3JtRGF0YTtcclxuICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRnJvbVRpbWUgPSB0aGlzLmNvbGxlY3RUaW1lT2JqPy5nZXRUZXh0KCk7XHJcbiAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcFRvVGltZSA9IHRoaXMuY2hlY2tvdXRUb1RpbWU/LmdldFRleHQoKTtcclxuICAgICAgbGV0IGRlbGl2ZXJ5UGlja1VwRGF0ZSA9IHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGU7XHJcbiAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGUgPSB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBEYXRlPy5kYXkgKyAnLycgKyB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBEYXRlPy5tb250aCArICcvJyArIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGU/LnllYXI7XHJcbiAgICAgIGNvbnN0IHJldmlld0RhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuY2hlY2tvdXRGb3JtRGF0YSkpO1xyXG4gICAgICB0aGlzLmNoZWNrb3V0U2VydmljZVxyXG4gICAgICAgIC5WYWxpZGF0ZUNoZWNrb3V0RGF0ZVRpbWUodGhpcy5jaGVja291dEZvcm1EYXRhKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICAgICAgICB0aGlzLmNoZWNrb3V0U2VydmljZS5jaGVja291dFJldmlld0FuZE9yZGVyKHJldmlld0RhdGEpLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd1dhaXRDdXJzb3IubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRGF0ZSA9IGRlbGl2ZXJ5UGlja1VwRGF0ZTtcclxuICAgICAgICAgICAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5zdGF0dXMgPT0gJ1NVQ0NFU1MnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcclxuICAgICAgICAgICAgICAgICAgICAgICdjaGVja291dERhdGEnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoc2Vzc2lvbkRhdGEpXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9ICcvcmV2aWV3LW9yZGVyJztcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9ySW5kJC5uZXh0KHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGUgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgZGVsaXZlcnlQaWNrVXBEYXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5mb01lc3NhZ2UgPSBkYXRhLm1lc3NhZ2VzWzBdO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd1dhaXRDdXJzb3IubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoZXJvcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBEYXRlID0gZGVsaXZlcnlQaWNrVXBEYXRlO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNob3dXYWl0Q3Vyc29yLm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5lcnJvckluZCQubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBEYXRlID0gZGVsaXZlcnlQaWNrVXBEYXRlO1xyXG4gICAgICAgICAgICAgIHRoaXMuaW5mb01lc3NhZ2UgPSByZXNwb25zZS5tZXNzYWdlc1swXTtcclxuICAgICAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd1dhaXRDdXJzb3IubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRGF0ZSA9IGRlbGl2ZXJ5UGlja1VwRGF0ZTtcclxuICAgICAgICAgICAgdGhpcy5lcnJvckluZCQubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5pbmZvTWVzc2FnZSA9IGVycm9yPy5lcnJvcj8uZXJyb3JzWzBdLm1lc3NhZ2U7XHJcbiAgICAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd1dhaXRDdXJzb3IubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRnJvbVRpbWVDaGFuZ2VkKG9iajogYW55KSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IG9iaj8uZ2V0VGV4dCgpO1xyXG4gICAgbGV0IGhvdXJzID0gTnVtYmVyKHZhbHVlLnNwbGl0KCc6JylbMF0pO1xyXG4gICAgbGV0IG1pbnV0ZXMgPSBOdW1iZXIodmFsdWUuc3BsaXQoJyAnKVswXS5zcGxpdCgnOicpWzFdKTtcclxuICAgIGlmICh2YWx1ZS5zcGxpdCgnICcpWzFdID09ICdQTScpIGhvdXJzID0gaG91cnMgPT0gMTIgPyBob3VycyA6IGhvdXJzICsgMTI7XHJcbiAgICB0aGlzLnVwZGF0ZVN0YXRpY1RpbWUoaG91cnMsIG1pbnV0ZXMrMzApO1xyXG4gICAgaWYgKHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcFRvVGltZSA8PSB0aGlzLmdldFJvdW5kTWluVGltZSh0aGlzLm1pblRvVGltZSkpXHJcbiAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcFRvVGltZSA9IHRoaXMuZ2V0Um91bmRNaW5UaW1lKHRoaXMubWluVG9UaW1lKVxyXG4gIH1cclxuXHJcbiAgZGF0ZWNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoZXZlbnQubW9udGggKyAnLycgKyBldmVudC5kYXkgKyAnLycgKyBldmVudC55ZWFyKTtcclxuICAgIHRoaXMudXBkYXRlTWluTWF4VGltZShkYXRlKTtcclxuICB9XHJcblxyXG4gIGFkZE5ld0FkZHJlc3MoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQWRkcmVzcyA9ICdhZGROZXdBZGRyZXNzJztcclxuICAgIHRoaXMuc2VsZWN0ZWRSZWNlbnRBZGRyZXNzID0gJyc7XHJcblxyXG4gIH1cclxuXHJcbiAgY2hhbmdlRGVsaXZlcnlPcHRpb25zKCkge1xyXG4gICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRnJvbVRpbWUgPSBudWxsO1xyXG4gICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwVG9UaW1lID0gbnVsbDtcclxuICAgIHRoaXMud2Vla0RheU9wZW5pbmdMaXN0ID0gdGhpcy5pc0RlbGl2ZXJ5Qm94XHJcbiAgICAgID8gdGhpcy5yZXNwb25zZURhdGEucG9pbnRPZlNlcnZpY2U/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+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlanMtdGltZXBpY2tlciBmb3JtYXQ9XCJoaDptbSBhXCIgaWQ9J3RpbWVwaWNrZXInICBbc2hvd0NsZWFyQnV0dG9uXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRpbWVDbGljaygkZXZlbnQsIGNvbGxlY3RUaW1lT2JqKVwiICAjY29sbGVjdFRpbWVPYmpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyh2YWx1ZSldPSdjaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRnJvbVRpbWUnIFttaW5dPVwibWluVGltZVwiIFthbGxvd0VkaXRdPVwiZmFsc2VcIiBbbWF4XT1cImZyb21NYXhUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkZyb21UaW1lQ2hhbmdlZChjb2xsZWN0VGltZU9iailcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9lanMtdGltZXBpY2tlcj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIFtuZ0NsYXNzXT1cInsnZC1ub25lJzogIWhhc1RpbWVTcGVjaWZpY1JlcXVlc3QgfHwgIWlzRGVsaXZlcnlCb3h9XCI+KllvdXIgdGltZSBzcGVjaWZpYyBkZWxpdmVyeSByZXF1ZXN0IHdpbGwgYmUgY29uZmlybWVkIGJ5IHRoZSBEaW1vbmQgQ3VzdG9tZXIgU2VydmljZXMgdGVhbSB3aGVuIHlvdXIgb3JkZXIgaXMgY29uZmlybWVkLjwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInRpbWVcIiBjbGFzcz1cImZvcm0tbGFiZWwgcC0zIGQtbm9uZVwiPnRvPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gY2xhc3M9XCJmb3JtLWpvYiBkLW5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGRpdlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiam9iaW5wdXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVqcy10aW1lcGlja2VyIGZvcm1hdD1cImhoOm1tIGFcIiBpZD0ndG90VG1lcGlja2VyJyAgW3Nob3dDbGVhckJ1dHRvbl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0aW1lQ2xpY2soJGV2ZW50LCBjaGVja291dFRvVGltZSlcIiAgI2NoZWNrb3V0VG9UaW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT0nY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcFRvVGltZScgW21pbl09XCJtaW5Ub1RpbWVcIiBbYWxsb3dFZGl0XT1cImZhbHNlXCIgW21heF09XCJtYXhUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9lanMtdGltZXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+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==
|
|
397
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWNoZWNrb3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J1aWxkaW5ncHJvZHVjdF9saWJyYXJ5L3NyYy9saWIvY2hlY2tvdXQvY3VzdG9tLWNoZWNrb3V0L2N1c3RvbS1jaGVja291dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9idWlsZGluZ3Byb2R1Y3RfbGlicmFyeS9zcmMvbGliL2NoZWNrb3V0L2N1c3RvbS1jaGVja291dC9jdXN0b20tY2hlY2tvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFJVCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBU3ZDLE1BQU0sT0FBTyx1QkFBdUI7SUFxRGxDLFlBQ1MsZUFBc0MsRUFDckMsVUFBc0IsRUFDdkIsRUFBcUIsRUFDckIsUUFBcUIsRUFDckIsaUJBQW9DO1FBSnBDLG9CQUFlLEdBQWYsZUFBZSxDQUF1QjtRQUNyQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3ZCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQXpEM0MsbUZBQW1GO1FBQ3JGLDJCQUFzQixHQUFXLEtBQUssQ0FBQztRQUN2QyxxQkFBZ0IsR0FBRztZQUNqQixXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUU7WUFDbkMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFO1NBQ3JDLENBQUM7UUFDRixjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFD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R0FBRyxJQUFJLENBQUMsYUFBYTtZQUMxQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCO1lBQ3hFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLENBQUM7UUFDekUsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxhQUFhO1lBQzdDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUI7WUFDM0UsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsQ0FBQztRQUMxRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBQ0QsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQztRQUNuQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDOytHQS9jVSx1QkFBdUI7bUdBQXZCLHVCQUF1Qix3ZENuQnBDLG15bEJBNk9BOzs0RkQxTmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjs2TUFnQ0osWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQU91QixjQUFjO3NCQUE3RCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDRSxjQUFjO3NCQUE3RCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDTSxTQUFTO3NCQUE1RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBPbkluaXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JDYWxlbmRhciwgTmdiRGF0ZVN0cnVjdCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgQWN0aXZlQ2FydFNlcnZpY2UgfSBmcm9tICdAc3BhcnRhY3VzL2NhcnQvYmFzZS9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEN1c3RvbUNoZWNrb3V0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NoZWNrb3V0LnNlcnZpY2UnO1xyXG5cclxuaW1wb3J0IHsgQ21zU2VydmljZSB9IGZyb20gJ0BzcGFydGFjdXMvY29yZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWN1c3RvbS1jaGVja291dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbS1jaGVja291dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3VzdG9tLWNoZWNrb3V0LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21DaGVja291dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICAvL2hhc1RpbVNwZWNpZmljUmVxdWVzdCBmbGFnIGZvciBzaG93aW5nIGFuZCBoaWRpbmcgdGltZSBjb250cm9sIG9uIGRlbGl2ZXJ5IG9wdGlvblxyXG4gIGhhc1RpbWVTcGVjaWZpY1JlcXVlc3Q6IGJvb2xlYW4gPWZhbHNlO1xyXG4gIHNwZWNpZmljRGVsaXZlcnkgPSB7XHJcbiAgICBvcGVuaW5nVGltZTogeyBob3VyOiA2LCBtaW51dGU6IDAgfSxcclxuICAgIGNsb3NpbmdUaW1lOiB7IGhvdXI6IDEyLCBtaW51dGU6IDAgfVxyXG4gIH07XHJcbiAgZXJyb3JJbmQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgaW5mb01lc3NhZ2U6IHN0cmluZyA9ICcnO1xyXG4gIHByZXZpb3VzVXJsOiBzdHJpbmcgPSAnJztcclxuICBjYXJ0SWQ6IHN0cmluZyA9ICcnO1xyXG4gIGlzRGVsaXZlcnlCb3g6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEFDVElWRV9JVEVNOiBzdHJpbmcgPSAnYWN0aXZlLWJveCc7XHJcbiAgbmdiTWluRGF0ZTogYW55O1xyXG4gIHNlbGVjdGVkQWRkcmVzczogc3RyaW5nID0gJ2FjY291bnRBZGRyZXNzJztcclxuICBwdWJsaWMgbWF4VGltZTogYW55O1xyXG4gIHB1YmxpYyBmcm9tTWF4VGltZTogYW55O1xyXG4gIGNjbWluVGltZSA9IG5ldyBEYXRlKDIwMjIsIDAsIDI4LCA2LCAwLCAwKTtcclxuICBjY21heFRpbWUgPSBuZXcgRGF0ZSgyMDIyLCAwLCAyOCwgMjIsIDAsIDApO1xyXG4gIHB1YmxpYyBtaW5UaW1lOiBhbnk7XHJcbiAgcHVibGljIG1pblRvVGltZTogYW55O1xyXG4gIGNoZWNrb3V0Rm9ybURhdGE6IGFueSA9IHt9O1xyXG4gIGlzU3VibWl0dGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc3RhcnRUaW1lOiBhbnkgPSBbXTtcclxuICByZWNlbnRBZGRyZXNzOiBhbnkgPSBbXTtcclxuICBkZWxpdmVyVGltZTogYW55O1xyXG4gIGRlZmF1bHRBY2NvdW50QWRkcmVzczogYW55O1xyXG4gIGJyYW5jaEFkZHJlc3M6IGFueTtcclxuICBAVmlld0NoaWxkKCdjaGVja291dEZvcm0nKSBjaGVja291dEZvcm06IGFueTtcclxuICBzZWxlY3RlZFJlY2VudEFkZHJlc3M6IGFueSA9IHt9O1xyXG4gIHRlbXBCcmFuY2hMaXN0RGF0YTogYW55ID0gW107XHJcbiAgcHVibGljIGRlbGl2ZXJ5RGlzYWJsZURhdGVzOiBhbnk7XHJcbiAgY29sbGVjdFRpbWU6IGFueTtcclxuICBtaW5MZWFkVGltZTogbnVtYmVyID0gMztcclxuICByZXNwb25zZURhdGE6IGFueTtcclxuICBAVmlld0NoaWxkKCdjaGVja291dFRvVGltZScsIHsgc3RhdGljOiBmYWxzZSB9KSBjaGVja291dFRvVGltZTogYW55O1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbGxlY3RUaW1lT2JqJywgeyBzdGF0aWM6IGZhbHNlIH0pIGNvbGxlY3RUaW1lT2JqOiBhbnk7XHJcbiAgQFZpZXdDaGlsZCgnbWFwVmlld05vZGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwcml2YXRlIG1hcFZpZXdFbCE6IEVsZW1lbnRSZWY7XHJcbiAgc3BlY2lhbERheU9wZW5pbmdMaXN0OiBhbnkgPSBbXTtcclxuICB3ZWVrRGF5T3BlbmluZ0xpc3Q6IGFueSA9IFtdO1xyXG4gIGRlbGl2ZXJ5QWRkcmVzc2VzOiBhbnkgPSBbXTtcclxuICBzaG93TW9yZUFkZHJlc3NlczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNpdGVEZWxpdmVyeVJlcXVpcmVtZW50czogYW55O1xyXG4gIGNsaWNrYW5kQ29sbGVjdENvbW1lbnRzOiBhbnk7XHJcbiAgY2hlY2tvdXRIZWFkZXJDb250ZW50OiBhbnk7XHJcbiAgYnJlYWRjcnVtYkRhdGE6IGFueSA9IFtdO1xyXG4gIGRlbGl2ZXJ5TW9kZXM6IGFueSA9IFtdO1xyXG4gIHZpZXc6IGFueTtcclxuICBwYWdlVGl0bGU6IGFueTtcclxuICBuZXdBZGRyZXNzOiBhbnk7XHJcbiAgY29uZmlybWVkTmV3QWRkcmVzczogc3RyaW5nID0gJyc7XHJcbiAgc2hvd1dhaXRDdXJzb3IgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBicmFuY2hEaXNwbGF5TmFtZTogYW55O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNoZWNrb3V0U2VydmljZTogQ3VzdG9tQ2hlY2tvdXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjbXNTZXJ2aWNlOiBDbXNTZXJ2aWNlLFxyXG4gICAgcHVibGljIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjYWxlbmRhcjogTmdiQ2FsZW5kYXIsXHJcbiAgICBwdWJsaWMgYWN0aXZlQ2FydFNlcnZpY2U6IEFjdGl2ZUNhcnRTZXJ2aWNlXHJcbiAgKSB7IH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY21zU2VydmljZS5nZXRDdXJyZW50UGFnZSgpLnN1YnNjcmliZSgocGFnYWRhdGE6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnBhZ2VUaXRsZSA9IHBhZ2FkYXRhLnRpdGxlO1xyXG4gICAgfSlcclxuICAgIHRoaXMuYnJlYWRjcnVtYkRhdGEucHVzaCh7IHVybDogJy8nLCBuYW1lOiAnSG9tZScgfSk7XHJcbiAgICB0aGlzLmJyZWFkY3J1bWJEYXRhLnB1c2goeyB1cmw6ICcvY2FydCcsIG5hbWU6ICdDYXJ0JyB9KTtcclxuICAgIHRoaXMuYnJlYWRjcnVtYkRhdGEucHVzaCh7IHVybDogJy9jaGVja291dCcsIG5hbWU6ICdDaGVja291dCcgfSk7XHJcbiAgICBsZXQgY2FydDogYW55ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3NwYXJ0YWN1c+Kav2RpbW9uZC1zcGHimr9jYXJ0Jyk7XHJcbiAgICB0aGlzLmNhcnRJZCA9IEpTT04ucGFyc2UoY2FydCk/LmFjdGl2ZTtcclxuICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGUgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBUb1RpbWUgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBGcm9tVGltZSA9IHVuZGVmaW5lZDtcclxuICAgIGNvbnN0IGNoZWNrb3V0RGF0YTogYW55ID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnY2hlY2tvdXREYXRhJyk7XHJcbiAgICBpZiAoY2hlY2tvdXREYXRhICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhID0gSlNPTi5wYXJzZShjaGVja291dERhdGEpO1xyXG4gICAgICB0aGlzLmlzRGVsaXZlcnlCb3ggPSB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlNZXRob2QgPT0gJ2NsaWNrQW5kQ29sbGVjdCcgPyBmYWxzZSA6IHRydWU7XHJcbiAgICB9XHJcbiAgICB2YXIgbG9jQWRkcmVzczogYW55ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2JyYW5jaERldGFpbHMnKTtcclxuICAgIHRoaXMuYnJhbmNoQWRkcmVzcyA9IEpTT04ucGFyc2UobG9jQWRkcmVzcyk7XHJcbiAgICB0aGlzLmJyYW5jaERpc3BsYXlOYW1lID0gdGhpcy5icmFuY2hBZGRyZXNzPy5kaXNwbGF5TmFtZTtcclxuICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmdldERlbGl2ZXJ5TW9kZXModGhpcy5jYXJ0SWQpLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgIHRoaXMuZGVsaXZlcnlNb2RlcyA9IGRhdGEuZGVsaXZlcnlNb2RlcztcclxuICAgICAgICB0aGlzLmRlbGl2ZXJ5TW9kZXMuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IChhLmNvZGUgPiBiLmNvZGUgPyAtMSA6IDEpKVxyXG4gICAgICB9XHJcbiAgICB9LCAoZXJyb3IpID0+IHtcclxuICAgICAgdGhpcy5kZWxpdmVyeU1vZGVzID0gW3sgY29kZTogJ3N0YW5kYXJkX2RlbGl2ZXJ5JyB9LCB7IGNvZGU6ICdjbGlja0FuZENvbGxlY3QnIH1dXHJcbiAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5jaGVja291dFNlcnZpY2UuZ2V0QWRkcmVzc0luZm8oKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICB0aGlzLmRlZmF1bHRBY2NvdW50QWRkcmVzcyA9IGRhdGEuYWRkcmVzc2VzWzBdO1xyXG4gICAgICAgIHRoaXMucmVjZW50QWRkcmVzcyA9IGRhdGEucmVjZW50QWRkcmVzc2VzO1xyXG4gICAgICAgIHRoaXMuc2hvd01vcmVBZGRyZXNzZXMgPSBkYXRhLmFkZHJlc3NlcyAmJiBkYXRhLmFkZHJlc3Nlcy5sZW5ndGggPiAxID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuZGVsaXZlcnlBZGRyZXNzZXMgPSBkYXRhLmFkZHJlc3NlcyAmJiBkYXRhLmFkZHJlc3Nlcy5sZW5ndGggPiAwID8gZGF0YS5hZGRyZXNzZXMgOiBbXTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQWRkcmVzcyA9IHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5zZWxlY3RlZEFkZHJlc3MgIT0gdW5kZWZpbmVkID8gdGhpcy5jaGVja291dEZvcm1EYXRhLnNlbGVjdGVkQWRkcmVzcyA6ICdhY2NvdW50QWRkcmVzcyc7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJlY2VudEFkZHJlc3MuaWQgPSB0aGlzLmNoZWNrb3V0Rm9ybURhdGEgJiYgdGhpcy5jaGVja291dEZvcm1EYXRhPy5kZWxpdmVyeUFkZHJlc3NQSyA/IHRoaXMuY2hlY2tvdXRGb3JtRGF0YT8uZGVsaXZlcnlBZGRyZXNzUEsgOiB0aGlzLmRlZmF1bHRBY2NvdW50QWRkcmVzcz8uaWQ7XHJcbiAgICAgICAgdGhpcy5jb25maXJtZWROZXdBZGRyZXNzID0gdGhpcy5jaGVja291dEZvcm1EYXRhLnNlbGVjdGVkQWRkcmVzcyAhPSB1bmRlZmluZWQgJiYgdGhpcy5jaGVja291dEZvcm1EYXRhLnNlbGVjdGVkQWRkcmVzcyA9PSAnYWRkTmV3QWRkcmVzcycgPyB0aGlzLmNoZWNrb3V0Rm9ybURhdGEubmV3QWRkcmVzcz8uc2VsZWN0ZWRBZGRyZXNzIDogJyc7XHJcbiAgICAgICAgdGhpcy5uZXdBZGRyZXNzID0gdGhpcy5jaGVja291dEZvcm1EYXRhLnNlbGVjdGVkQWRkcmVzcyAhPSB1bmRlZmluZWQgJiYgdGhpcy5jaGVja291dEZvcm1EYXRhLnNlbGVjdGVkQWRkcmVzcyA9PSAnYWRkTmV3QWRkcmVzcycgPyB0aGlzLmNoZWNrb3V0Rm9ybURhdGEubmV3QWRkcmVzcyA6ICcnO1xyXG4gICAgICAgIGlmICh0aGlzLmRlbGl2ZXJ5QWRkcmVzc2VzLmxlbmd0aCA9PSAwICYmIHRoaXMuc2VsZWN0ZWRBZGRyZXNzICE9ICdhZGROZXdBZGRyZXNzJykge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEFkZHJlc3MgPSAncmVjZW50QWRkcmVzcyc7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkUmVjZW50QWRkcmVzcyA9IHRoaXMucmVjZW50QWRkcmVzc1swXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLmRlZmF1bHRBY2NvdW50QWRkcmVzcyAmJiB0aGlzLmRlbGl2ZXJ5QWRkcmVzc2VzLmxlbmd0aCA8IDEgJiYgdGhpcy5yZWNlbnRBZGRyZXNzLmxlbmd0aCA8IDEpIHRoaXMuc2VsZWN0ZWRBZGRyZXNzID0gJ2FkZE5ld0FkZHJlc3MnO1xyXG4gICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5jaGVja291dFNlcnZpY2UuZ2V0Q2hlY2tPdXRWYWx1ZXModGhpcy5jYXJ0SWQpLnN1YnNjcmliZShcclxuICAgICAgKGRhdGEpID0+IHtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgdGhpcy5yZXNwb25zZURhdGEgPSBkYXRhO1xyXG4gICAgICAgICAgdGhpcy53ZWVrRGF5T3BlbmluZ0xpc3QgPSB0aGlzLmlzRGVsaXZlcnlCb3hcclxuICAgICAgICAgICAgPyBkYXRhLnBvaW50T2ZTZXJ2aWNlPy5kZWxpdmVyeVNjaGVkdWxlPy53ZWVrRGF5T3BlbmluZ0xpc3RcclxuICAgICAgICAgICAgOiBkYXRhLnBvaW50T2ZTZXJ2aWNlPy5waWNrdXBTY2hlZHVsZT8ud2Vla0RheU9wZW5pbmdMaXN0O1xyXG4gICAgICAgICAgdGhpcy5zcGVjaWFsRGF5T3BlbmluZ0xpc3QgPSB0aGlzLmlzRGVsaXZlcnlCb3hcclxuICAgICAgICAgICAgPyBkYXRhLnBvaW50T2ZTZXJ2aWNlPy5kZWxpdmVyeVNjaGVkdWxlPy5zcGVjaWFsRGF5T3BlbmluZ0xpc3RcclxuICAgICAgICAgICAgOiBkYXRhLnBvaW50T2ZTZXJ2aWNlPy5waWNrdXBTY2hlZHVsZT8uc3BlY2lhbERheU9wZW5pbmdMaXN0O1xyXG4gICAgICAgICAgdGhpcy5nZXREZXRhaWxSZXNwb25zZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIC8vY29kZSBmb3IgRGVsaXZlcnkgU2l0ZSBEZWxpdmVyeSBSZXF1aXJlbWVudHMgdG9vbHRpcFxyXG4gICAgdGhpcy5jbXNTZXJ2aWNlXHJcbiAgICAgIC5nZXRDb21wb25lbnREYXRhKCdTaXRlRGVsaXZlcnlSZXF1aXJlbWVudHNDb21wb25lbnQnKVxyXG4gICAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgdGhpcy5zaXRlRGVsaXZlcnlSZXF1aXJlbWVudHMgPSBkYXRhPy5jb250ZW50O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAvL2NvZGUgZm9yIENsaWNrIEFuZCBDb2xsZWN0IENvbW1lbnRzIHRvb2x0aXBcclxuICAgIHRoaXMuY21zU2VydmljZVxyXG4gICAgICAuZ2V0Q29tcG9uZW50RGF0YSgnQ29tbWVudHNDbGlja0FuZENvbGxlY3RDb21wb25lbnQnKVxyXG4gICAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgdGhpcy5jbGlja2FuZENvbGxlY3RDb21tZW50cyA9IGRhdGE/LmNvbnRlbnQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIC8vY29kZSBmb3IgaGVhZGVyIGNvbnRlbnRcclxuICAgIHRoaXMuY21zU2VydmljZVxyXG4gICAgICAuZ2V0Q29tcG9uZW50RGF0YSgnY2hlY2tvdXRIZWFkZXJDb250ZW50Q29tcG9uZW50JylcclxuICAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tvdXRIZWFkZXJDb250ZW50ID0gZGF0YT8uY29udGVudDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldERldGFpbFJlc3BvbnNlKCkge1xyXG4gICAgdGhpcy50ZW1wQnJhbmNoTGlzdERhdGEgPSB0aGlzLnJlc3BvbnNlRGF0YT8ucG9pbnRPZlNlcnZpY2U/LnBpY2t1cFNjaGVkdWxlPy53ZWVrRGF5T3BlbmluZ0xpc3Q7XHJcbiAgICB0aGlzLmJyYW5jaEFkZHJlc3MgPSB0aGlzLnJlc3BvbnNlRGF0YT8ucG9pbnRPZlNlcnZpY2U/LmFkZHJlc3M7XHJcbiAgICB0aGlzLmJyYW5jaERpc3BsYXlOYW1lID0gdGhpcy5yZXNwb25zZURhdGE/LnBvaW50T2ZTZXJ2aWNlPy5kaXNwbGF5TmFtZTtcclxuICAgIHZhciBjaGVja291dERhdGVWYWx1ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICBsZXQgaSA9IDA7XHJcbiAgICBsZXQgaiA9IDA7XHJcbiAgICBpZiAodGhpcy5yZXNwb25zZURhdGEuZGVsaXZlcnlNaW5MZWFkVGltZSB8fCB0aGlzLnJlc3BvbnNlRGF0YS5waWNrVXBNaW5MZWFkVGltZSlcclxuICAgICAgdGhpcy5taW5MZWFkVGltZSA9IHRoaXMuaXNEZWxpdmVyeUJveCA/IHRoaXMucmVzcG9uc2VEYXRhLmRlbGl2ZXJ5TWluTGVhZFRpbWUgOiB0aGlzLnJlc3BvbnNlRGF0YS5waWNrVXBNaW5MZWFkVGltZTtcclxuICAgIHdoaWxlIChpIDwgdGhpcy5taW5MZWFkVGltZSArIDEpIHtcclxuICAgICAgaWYgKHRoaXMuaXNXZWVrZGF5T2ZmKGNoZWNrb3V0RGF0ZVZhbHVlKSkge1xyXG4gICAgICAgIGNoZWNrb3V0RGF0ZVZhbHVlID0gdGhpcy5hZGREYXlzVG9EYXRlKGNoZWNrb3V0RGF0ZVZhbHVlLCAxKTtcclxuICAgICAgICBqID0gaiArIDE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY2hlY2tvdXREYXRlVmFsdWUgPSB0aGlzLmFkZERheXNUb0RhdGUoY2hlY2tvdXREYXRlVmFsdWUsIDEpO1xyXG4gICAgICAgIGkgPSBpICsgMTtcclxuICAgICAgICBqID0gaiArIDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IGZpbmFsRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICBqID0gaiAtIDE7XHJcbiAgICB0aGlzLm5nYk1pbkRhdGUgPSB7XHJcbiAgICAgIGRheTogKGZpbmFsRGF0ZS5nZXREYXRlKCkgKyBqID4gMzApID8gZmluYWxEYXRlLmdldERhdGUoKSArIGogLSAzMCA6IGZpbmFsRGF0ZS5nZXREYXRlKCkgKyBqLFxyXG4gICAgICBtb250aDogKGZpbmFsRGF0ZS5nZXREYXRlKCkgKyBqKSA+IDMwID8gZmluYWxEYXRlLmdldE1vbnRoKCkgPT0gMTEgPyAxIDogZmluYWxEYXRlLmdldE1vbnRoKCkgKyAyIDogZmluYWxEYXRlLmdldE1vbnRoKCkgKyAxLFxyXG4gICAgICB5ZWFyOiAoZmluYWxEYXRlLmdldERhdGUoKSArIGopID4gMzAgJiYgZmluYWxEYXRlLmdldE1vbnRoKCkgPT0gMTEgPyBmaW5hbERhdGUuZ2V0RnVsbFllYXIoKSArIDEgOiBmaW5hbERhdGUuZ2V0RnVsbFllYXIoKSxcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgZkRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgZkRhdGUuc2V0RGF0ZShmaW5hbERhdGUuZ2V0RGF0ZSgpICsgailcclxuICAgIHRoaXMudXBkYXRlTWluTWF4VGltZShmRGF0ZSk7XHJcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuICBpc1dlZWtkYXlPZmYoZGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMud2Vla0RheU9wZW5pbmdMaXN0W2RhdGUuZ2V0RGF5KCkgLSAxXT8uY2xvc2VkID09IHRydWUgfHwgKGRhdGUuZ2V0RGF5KCkpID09IDApIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2UgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcblxyXG4gIGFkZERheXNUb0RhdGUoZGF0ZTogRGF0ZSwgZGF5czogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgRGF0ZShkYXRlKTtcclxuICAgIHJlc3VsdC5zZXREYXRlKHJlc3VsdC5nZXREYXRlKCkgKyBkYXlzKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG4gIHVwZGF0ZU1pbk1heFRpbWUoZGF0ZTogRGF0ZSkge1xyXG4gICAgaWYgKHRoaXMuaGFzVGltZVNwZWNpZmljUmVxdWVzdCkge1xyXG4gICAgICAvLyBUaW1lIHNwZWNpZmljIGRlbGl2ZXJ5XHJcbiAgICAgIFxyXG4gICAgICB0aGlzLm1pblRpbWUgPSBuZXcgRGF0ZShcclxuICAgICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgICAgZGF0ZS5nZXRNb250aCgpLFxyXG4gICAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxyXG4gICAgICAgIHRoaXMuc3BlY2lmaWNEZWxpdmVyeT8ub3BlbmluZ1RpbWU/LmhvdXIgfHwgNixcclxuICAgICAgICB0aGlzLnNwZWNpZmljRGVsaXZlcnk/Lm9wZW5pbmdUaW1lPy5taW51dGUgfHwgMCxcclxuICAgICAgICAwXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuZnJvbU1heFRpbWUgPSBuZXcgRGF0ZShcclxuICAgICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgICAgZGF0ZS5nZXRNb250aCgpLFxyXG4gICAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxyXG4gICAgICAgIHRoaXMuc3BlY2lmaWNEZWxpdmVyeT8uY2xvc2luZ1RpbWU/LmhvdXIgfHwgMTIsXHJcbiAgICAgICAgdGhpcy5zcGVjaWZpY0RlbGl2ZXJ5Py5jbG9zaW5nVGltZT8ubWludXRlIHx8IDAsXHJcbiAgICAgICAgMFxyXG4gICAgICApO1xyXG4gICAgfWVsc2V7XHJcbiAgICBjb25zdCB0b2RheURheTogYW55ID0gdGhpcy53ZWVrRGF5T3BlbmluZ0xpc3RbZGF0ZS5nZXREYXkoKSAtIDFdO1xyXG4gICAgdGhpcy5taW5UaW1lID0gbmV3IERhdGUoXHJcbiAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcclxuICAgICAgZGF0ZS5nZXRNb250aCgpLFxyXG4gICAgICBkYXRlLmdldERhdGUoKSxcclxuICAgICAgdG9kYXlEYXk/Lm9wZW5pbmdUaW1lPy5ob3VyIHx8IDksXHJcbiAgICAgIHRvZGF5RGF5Py5vcGVuaW5nVGltZT8ubWludXRlIHx8IDAsXHJcbiAgICAgIDBcclxuICAgICk7XHJcbiAgICB0aGlzLm1pblRvVGltZSA9IG5ldyBEYXRlKFxyXG4gICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgIGRhdGUuZ2V0TW9udGgoKSxcclxuICAgICAgZGF0ZS5nZXREYXRlKCksXHJcbiAgICAgIHRvZGF5RGF5Py5vcGVuaW5nVGltZT8uaG91ciB8fCAxMSxcclxuICAgICAgdG9kYXlEYXk/Lm9wZW5pbmdUaW1lPy5taW51dGUgfHwgMCxcclxuICAgICAgMFxyXG4gICAgKTtcclxuICAgIHRoaXMuZnJvbU1heFRpbWUgPSBuZXcgRGF0ZShcclxuICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICBkYXRlLmdldE1vbnRoKCksXHJcbiAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxyXG4gICAgICB0b2RheURheT8uY2xvc2luZ1RpbWUuZm9ybWF0dGVkSG91ci5zcGxpdCgnICcpWzFdID09ICdwbSdcclxuICAgICAgICA/IHRvZGF5RGF5Py5jbG9zaW5nVGltZT8uaG91ciArIDEwXHJcbiAgICAgICAgOiB0b2RheURheT8uY2xvc2luZ1RpbWU/LmhvdXIgfHwgMTUsXHJcbiAgICAgIHRvZGF5RGF5Py5jbG9zaW5nVGltZT8ubWludXRlIHx8IDAsXHJcbiAgICAgIDBcclxuICAgICk7XHJcbiAgICB0aGlzLm1heFRpbWUgPSBuZXcgRGF0ZShcclxuICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICBkYXRlLmdldE1vbnRoKCksXHJcbiAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxyXG4gICAgICB0b2RheURheT8uY2xvc2luZ1RpbWUuZm9ybWF0dGVkSG91ci5zcGxpdCgnICcpWzFdID09ICdwbSdcclxuICAgICAgICA/IHRvZGF5RGF5Py5jbG9zaW5nVGltZT8uaG91ciArIDEyXHJcbiAgICAgICAgOiB0b2RheURheT8uY2xvc2luZ1RpbWU/LmhvdXIgfHwgMTcsXHJcbiAgICAgIHRvZGF5RGF5Py5jbG9zaW5nVGltZT8ubWludXRlIHx8IDAsXHJcbiAgICAgIDBcclxuICAgICk7XHJcbiAgfVxyXG4gICAgdGhpcy51cGRhdGVSZXF1ZXN0ZWRUaW1lKCk7XHJcbiAgfVxyXG4gIHVwZGF0ZVJlcXVlc3RlZFRpbWUoKSB7XHJcbiAgICB0aGlzLm1pblRpbWUgPSB0aGlzLmdldFJvdW5kTWluVGltZSh0aGlzLm1pblRpbWUpO1xyXG4gICAgdGhpcy5taW5Ub1RpbWUgPSB0aGlzLmdldFJvdW5kTWluVGltZSh0aGlzLm1pblRvVGltZSk7XHJcbiAgICAvL2lmIGNsaWNraW5nIG9uIHJhZGlvIGJ1dHRvbiBmb3IgZGVsaXZlcnksIHNob3VsZCBwaWNrIDYgYW0sIGlmIHRpbWUgZG9lcyBub3QgZ28gZmluZSB0aGVuIHJldmVydCBpdFxyXG4gICAgaWYodGhpcy5oYXNUaW1lU3BlY2lmaWNSZXF1ZXN0KXtcclxuICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRnJvbVRpbWUgPSB0aGlzLm1pblRpbWU7XHJcbiAgICAgfWVsc2V7XHJcbiAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBUb1RpbWUgPSB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBUb1RpbWUgPyB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBUb1RpbWUgOiB0aGlzLm1heFRpbWU7XHJcbiAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBGcm9tVGltZSA9IHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcEZyb21UaW1lID8gdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRnJvbVRpbWUgOiB0aGlzLm1pblRvVGltZTtcclxuICB9XHJcbn1cclxuICBpc0Rpc2FibGVkID0gKGRhdGU6IE5nYkRhdGVTdHJ1Y3QpID0+IHtcclxuICAgIGNvbnN0IGRheSA9IG5ldyBEYXRlKFxyXG4gICAgICBkYXRlLnllYXIsXHJcbiAgICAgIGRhdGUubW9udGggLSAxLFxyXG4gICAgICBkYXRlLmRheSk/LmdldERheSgpXHJcbiAgICBpZiAodGhpcy53ZWVrRGF5T3BlbmluZ0xpc3RbZGF5IC0gMV0/LmNsb3NlZClcclxuICAgICAgcmV0dXJuIHRydWVcclxuICAgIGNvbnN0IGRhdCA9IG5ldyBEYXRlKGRhdGUueWVhciwgZGF0ZS5tb250aCAtIDEsIGRhdGUuZGF5KTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuZ2V0U3BlY2lhbERheXMoZGF0ZSkgPiAtMSB8fFxyXG4gICAgICAodGhpcy53ZWVrRGF5T3BlbmluZ0xpc3RbNV0uY2xvc2VkID09IHRydWUgJiYgZGF0LmdldERheSgpID09PSA2KSB8fFxyXG4gICAgICBkYXQuZ2V0RGF5KCkgPT09IDBcclxuICAgICk7XHJcbiAgfTtcclxuXHJcbiAgZ2V0U3BlY2lhbERheXMoZGF0ZTogTmdiRGF0ZVN0cnVjdCkge1xyXG4gICAgY29uc3QgaW5kID0gdGhpcy5zcGVjaWFsRGF5T3BlbmluZ0xpc3Q/LmZpbmRJbmRleCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IGRhdGVPYmogPSBlbGVtZW50LmZvcm1hdHRlZERhdGUuc3BsaXQoJy8nKTtcclxuICAgICAgcmV0dXJuIGRhdGVPYmpbMF0gPT0gZGF0ZS5kYXkgJiYgZGF0ZU9ialsxXSA9PSBkYXRlLm1vbnRoO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gaW5kO1xyXG4gIH1cclxuXHJcbiAgZ2V0Um91bmRNaW5UaW1lKG1pblRpbWU6IGFueSkge1xyXG4gICAgdmFyIGNvZmYgPSAxMDAwICogNjAgKiAzMDtcclxuICAgIHJldHVybiBuZXcgRGF0ZShNYXRoLmNlaWwobWluVGltZS5nZXRUaW1lKCkgLyBjb2ZmKSAqIGNvZmYpO1xyXG4gIH1cclxuXHJcbiAgdGltZUNsaWNrKGV2ZW50OiBFdmVudCwgdGltZU9iajogYW55KSB7XHJcbiAgICBpZiAodGltZU9iaiAmJiB0aW1lT2JqLmlucHV0V3JhcHBlcikge1xyXG4gICAgICB0aW1lT2JqLmlucHV0V3JhcHBlci5jb250YWluZXIgJiZcclxuICAgICAgICB0aW1lT2JqLmlucHV0V3JhcHBlci5jb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgnZS1kaXNhYmxlZCcpO1xyXG4gICAgICB0aW1lT2JqLmlucHV0V3JhcHBlci5idXR0b25zICYmXHJcbiAgICAgICAgdGltZU9iai5pbnB1dFdyYXBwZXIuYnV0dG9uc1swXSAmJlxyXG4gICAgICAgIHRpbWVPYmouaW5wdXRXcmFwcGVyLmJ1dHRvbnNbMF0uY2xhc3NMaXN0LnJlbW92ZSgnZS1kaXNhYmxlZCcpO1xyXG4gICAgICB0aW1lT2JqLnNob3coKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRpbWVUb0NsaWNrKGV2ZW50OiBFdmVudCwgdGltZU9iajogYW55KSB7XHJcbiAgICBpZiAodGltZU9iaiAmJiB0aW1lT2JqLmlucHV0V3JhcHBlcikge1xyXG4gICAgICB0aW1lT2JqLmlucHV0V3JhcHBlci5jb250YWluZXIgJiZcclxuICAgICAgICB0aW1lT2JqLmlucHV0V3JhcHBlci5jb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgnZS1kaXNhYmxlZCcpO1xyXG4gICAgICB0aW1lT2JqLmlucHV0V3JhcHBlci5idXR0b25zICYmXHJcbiAgICAgICAgdGltZU9iai5pbnB1dFdyYXBwZXIuYnV0dG9uc1swXSAmJlxyXG4gICAgICAgIHRpbWVPYmouaW5wdXRXcmFwcGVyLmJ1dHRvbnNbMF0uY2xhc3NMaXN0LnJlbW92ZSgnZS1kaXNhYmxlZCcpO1xyXG4gICAgICB0aW1lT2JqLnNob3coKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZVN0YXRpY1RpbWUoaG91cnM6IG51bWJlciwgbWludXRlczogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRGF0ZSA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICB0aGlzLm1pblRvVGltZSA9IG5ldyBEYXRlKFxyXG4gICAgICAgIHRvZGF5LmdldEZ1bGxZZWFyKCksXHJcbiAgICAgICAgdG9kYXkuZ2V0TW9udGgoKSxcclxuICAgICAgICB0b2RheS5nZXREYXRlKCksXHJcbiAgICAgICAgaG91cnMsXHJcbiAgICAgICAgbWludXRlcyxcclxuICAgICAgICAwXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBkYXRlID0gdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRGF0ZTtcclxuICAgICAgdGhpcy5taW5Ub1RpbWUgPSBuZXcgRGF0ZShcclxuICAgICAgICBkYXRlLnllYXIsXHJcbiAgICAgICAgZGF0ZS5tb250aCxcclxuICAgICAgICBkYXRlLmRheSxcclxuICAgICAgICBob3VycyxcclxuICAgICAgICBtaW51dGVzLFxyXG4gICAgICAgIDBcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMubWluVG9UaW1lID0gdGhpcy5nZXRSb3VuZE1pblRpbWUodGhpcy5taW5Ub1RpbWUpO1xyXG4gIH1cclxuICBnZXROZXdBZGRyZXNzKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMubmV3QWRkcmVzcyA9IGV2ZW50O1xyXG4gIH1cclxuICByZXZpZXdPcmRlcigpIHtcclxuICAgIHRoaXMuaXNTdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5jaGVja291dEZvcm0uZm9ybS5tYXJrQXNQcmlzdGluZSgpO1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmNoZWNrb3V0Rm9ybS52YWxpZCAmJlxyXG4gICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBEYXRlICE9IHVuZGVmaW5lZCAmJlxyXG4gICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBUb1RpbWUgIT0gdW5kZWZpbmVkICYmXHJcbiAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGUuZGF5ICE9IHVuZGVmaW5lZCAmJlxyXG4gICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBGcm9tVGltZSAhPSB1bmRlZmluZWRcclxuICAgICkge1xyXG4gICAgICBpZiAodGhpcy5pc0RlbGl2ZXJ5Qm94ICYmIHRoaXMuc2VsZWN0ZWRSZWNlbnRBZGRyZXNzPy5pZCA9PSAnJykge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pc0RlbGl2ZXJ5Qm94ICYmIHRoaXMuc2VsZWN0ZWRBZGRyZXNzID09ICdhZGROZXdBZGRyZXNzJyAmJiAhdGhpcy5uZXdBZGRyZXNzKSB7XHJcbiAgICAgICAgdGhpcy5lcnJvckluZCQubmV4dCh0cnVlKTtcclxuICAgICAgICB0aGlzLmluZm9NZXNzYWdlID0gJ1BsZWFzZSBTZWxlY3QgYW5kIENvbmZpcm0gQWRkcmVzcyBmcm9tIE1hcCc7XHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmNhcnRJRCA9IHRoaXMuY2FydElkO1xyXG4gICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlBZGRyZXNzUEsgPSB0aGlzLmlzRGVsaXZlcnlCb3ggPT0gZmFsc2UgPyB0aGlzLmJyYW5jaEFkZHJlc3M/LmlkIDogdGhpcy5zZWxlY3RlZFJlY2VudEFkZHJlc3M/LmlkO1xyXG4gICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlNZXRob2QgPSB0aGlzLmlzRGVsaXZlcnlCb3ggPyB0aGlzLmRlbGl2ZXJ5TW9kZXNbMF0uY29kZSA6IHRoaXMuZGVsaXZlcnlNb2Rlc1sxXS5jb2RlO1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEFkZHJlc3MgPT0gJ2FkZE5ld0FkZHJlc3MnKSB7XHJcbiAgICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLm5ld0FkZHJlc3MgPSB0aGlzLm5ld0FkZHJlc3M7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5uZXdBZGRyZXNzO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5zZWxlY3RlZEFkZHJlc3MgPSB0aGlzLnNlbGVjdGVkQWRkcmVzcztcclxuICAgICAgbGV0IHNlc3Npb25EYXRhID0gdGhpcy5jaGVja291dEZvcm1EYXRhO1xyXG4gICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBGcm9tVGltZSA9IHRoaXMuY29sbGVjdFRpbWVPYmo/LmdldFRleHQoKTtcclxuICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwVG9UaW1lID0gdGhpcy5jaGVja291dFRvVGltZT8uZ2V0VGV4dCgpO1xyXG4gICAgICBsZXQgZGVsaXZlcnlQaWNrVXBEYXRlID0gdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRGF0ZTtcclxuICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRGF0ZSA9IHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGU/LmRheSArICcvJyArIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGU/Lm1vbnRoICsgJy8nICsgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRGF0ZT8ueWVhcjtcclxuICAgICAgY29uc3QgcmV2aWV3RGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5jaGVja291dEZvcm1EYXRhKSk7XHJcbiAgICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlXHJcbiAgICAgICAgLlZhbGlkYXRlQ2hlY2tvdXREYXRlVGltZSh0aGlzLmNoZWNrb3V0Rm9ybURhdGEpXHJcbiAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgIChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2Uuc3RhdHVzID09ICdTVUNDRVNTJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tvdXRTZXJ2aWNlLmNoZWNrb3V0UmV2aWV3QW5kT3JkZXIocmV2aWV3RGF0YSkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zaG93V2FpdEN1cnNvci5uZXh0KHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBEYXRlID0gZGVsaXZlcnlQaWNrVXBEYXRlO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICAgICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgICAgICAgICAgICAgICAgJ2NoZWNrb3V0RGF0YScsXHJcbiAgICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShzZXNzaW9uRGF0YSlcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJy9yZXZpZXctb3JkZXInO1xyXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JJbmQkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRGF0ZSA9XHJcbiAgICAgICAgICAgICAgICAgICAgICBkZWxpdmVyeVBpY2tVcERhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmZvTWVzc2FnZSA9IGRhdGEubWVzc2FnZXNbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93V2FpdEN1cnNvci5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIChlcm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGUgPSBkZWxpdmVyeVBpY2tVcERhdGU7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd1dhaXRDdXJzb3IubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLmVycm9ySW5kJC5uZXh0KHRydWUpO1xyXG4gICAgICAgICAgICAgIHRoaXMuY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcERhdGUgPSBkZWxpdmVyeVBpY2tVcERhdGU7XHJcbiAgICAgICAgICAgICAgdGhpcy5pbmZvTWVzc2FnZSA9IHJlc3BvbnNlLm1lc3NhZ2VzWzBdO1xyXG4gICAgICAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93V2FpdEN1cnNvci5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBEYXRlID0gZGVsaXZlcnlQaWNrVXBEYXRlO1xyXG4gICAgICAgICAgICB0aGlzLmVycm9ySW5kJC5uZXh0KHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLmluZm9NZXNzYWdlID0gZXJyb3I/LmVycm9yPy5lcnJvcnNbMF0ubWVzc2FnZTtcclxuICAgICAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93V2FpdEN1cnNvci5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Gcm9tVGltZUNoYW5nZWQob2JqOiBhbnkpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gb2JqPy5nZXRUZXh0KCk7XHJcbiAgICBsZXQgaG91cnMgPSBOdW1iZXIodmFsdWUuc3BsaXQoJzonKVswXSk7XHJcbiAgICBsZXQgbWludXRlcyA9IE51bWJlcih2YWx1ZS5zcGxpdCgnICcpWzBdLnNwbGl0KCc6JylbMV0pO1xyXG4gICAgaWYgKHZhbHVlLnNwbGl0KCcgJylbMV0gPT0gJ1BNJykgaG91cnMgPSBob3VycyA9PSAxMiA/IGhvdXJzIDogaG91cnMgKyAxMjtcclxuICAgIHRoaXMudXBkYXRlU3RhdGljVGltZShob3VycywgbWludXRlcyszMCk7XHJcbiAgICBpZiAodGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwVG9UaW1lIDw9IHRoaXMuZ2V0Um91bmRNaW5UaW1lKHRoaXMubWluVG9UaW1lKSlcclxuICAgICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwVG9UaW1lID0gdGhpcy5nZXRSb3VuZE1pblRpbWUodGhpcy5taW5Ub1RpbWUpXHJcbiAgfVxyXG5cclxuICBkYXRlY2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShldmVudC5tb250aCArICcvJyArIGV2ZW50LmRheSArICcvJyArIGV2ZW50LnllYXIpO1xyXG4gICAgdGhpcy51cGRhdGVNaW5NYXhUaW1lKGRhdGUpO1xyXG4gIH1cclxuXHJcbiAgYWRkTmV3QWRkcmVzcygpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRBZGRyZXNzID0gJ2FkZE5ld0FkZHJlc3MnO1xyXG4gICAgdGhpcy5zZWxlY3RlZFJlY2VudEFkZHJlc3MgPSAnJztcclxuXHJcbiAgfVxyXG5cclxuICBjaGFuZ2VEZWxpdmVyeU9wdGlvbnMoKSB7XHJcbiAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBGcm9tVGltZSA9IG51bGw7XHJcbiAgICB0aGlzLmNoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBUb1RpbWUgPSBudWxsO1xyXG4gICAgdGhpcy5jaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRGF0ZSA9IG51bGw7XHJcbiAgICB0aGlzLndlZWtEYXlPcGVuaW5nTGlzdCA9IHRoaXMuaXNEZWxpdmVyeUJveFxyXG4gICAgICA/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+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJqb2JpbnB1dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZWpzLXRpbWVwaWNrZXIgZm9ybWF0PVwiaGg6bW0gYVwiIGlkPSd0aW1lcGlja2VyJyAgW3Nob3dDbGVhckJ1dHRvbl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0aW1lQ2xpY2soJGV2ZW50LCBjb2xsZWN0VGltZU9iailcIiAgI2NvbGxlY3RUaW1lT2JqXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsodmFsdWUpXT0nY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcEZyb21UaW1lJyBbbWluXT1cIm1pblRpbWVcIiBbYWxsb3dFZGl0XT1cImZhbHNlXCIgW21heF09XCJmcm9tTWF4VGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25Gcm9tVGltZUNoYW5nZWQoY29sbGVjdFRpbWVPYmopXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZWpzLXRpbWVwaWNrZXI+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBbbmdDbGFzc109XCJ7J2Qtbm9uZSc6ICFoYXNUaW1lU3BlY2lmaWNSZXF1ZXN0IHx8ICFpc0RlbGl2ZXJ5Qm94fVwiPipZb3VyIHRpbWUgc3BlY2lmaWMgZGVsaXZlcnkgcmVxdWVzdCB3aWxsIGJlIGNvbmZpcm1lZCBieSB0aGUgRGltb25kIEN1c3RvbWVyIFNlcnZpY2VzIHRlYW0gd2hlbiB5b3VyIG9yZGVyIGlzIGNvbmZpcm1lZC48L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ0aW1lXCIgY2xhc3M9XCJmb3JtLWxhYmVsIHAtMyBkLW5vbmVcIj50bzwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwiZm9ybS1qb2IgZC1ub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RkaXZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImpvYmlucHV0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlanMtdGltZXBpY2tlciBmb3JtYXQ9XCJoaDptbSBhXCIgaWQ9J3RvdFRtZXBpY2tlcicgIFtzaG93Q2xlYXJCdXR0b25dPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidGltZUNsaWNrKCRldmVudCwgY2hlY2tvdXRUb1RpbWUpXCIgICNjaGVja291dFRvVGltZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKHZhbHVlKV09J2NoZWNrb3V0Rm9ybURhdGEuZGVsaXZlcnlQaWNrVXBUb1RpbWUnIFttaW5dPVwibWluVG9UaW1lXCIgW2FsbG93RWRpdF09XCJmYWxzZVwiIFttYXhdPVwibWF4VGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZWpzLXRpbWVwaWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8cCAqbmdJZj1cImlzU3VibWl0dGVkXCIgW2hpZGRlbl09XCJjaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwRnJvbVRpbWUgIT0gdW5kZWZpbmVkXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9tIHRpbWUgaXMgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cImlzU3VibWl0dGVkXCIgW2hpZGRlbl09XCJjaGVja291dEZvcm1EYXRhLmRlbGl2ZXJ5UGlja1VwVG9UaW1lICE9IHVuZGVmaW5lZFwiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8gdGltZSBpcyByZXF1aXJlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQ+XHJcblxyXG4gICAgICAgICAgICAgICAgPG1hdC1jYXJkLWhlYWRlciBjbGFzcz1cImxpbmUtc3RlcC1uYXZpZ2F0aW9uXCIgKm5nSWY9XCIhaXNEZWxpdmVyeUJveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIGN1cy10aXRsZS1tYXJnaW4tY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJmb250LWJvbGRcIj4gPHNwYW4gY2xhc3M9XCJjYXJkLW51bWJlclwiPiA0IDwvc3Bhbj4gUGlja3VwIExvY2F0aW9uPC9tYXQtY2FyZC10aXRsZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1jYXJkICpuZ0lmPVwiIWlzRGVsaXZlcnlCb3hcIiBjbGFzcz1cImN1c3RvbS1tYXQtY2FyZCBsaW5lLXN0ZXAtbmF2aWdhdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnJhbmNoLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlIGNsYXNzPSdhZGRyZXNzLXRpdGxlJz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2JyYW5jaERpc3BsYXlOYW1lfX08L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLXN1YnRpdGxlPiB7e2JyYW5jaEFkZHJlc3M/LmZvcm1hdHRlZEFkZHJlc3N9fTwvbWF0LWNhcmQtc3VidGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtc3VidGl0bGU+IDxzcGFuIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlBob25lOiA8L3NwYW4+IHt7YnJhbmNoQWRkcmVzcz8ucGhvbmV9fTwvbWF0LWNhcmQtc3VidGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnJhbmNoLWhvdXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlIGNsYXNzPSdhZGRyZXNzLXRpdGxlJz5PcGVuaW5nIEhvdXJzPC9tYXQtY2FyZC10aXRsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtc3VidGl0bGUgKm5nRm9yPVwibGV0IGRhdGEgb2YgdGVtcEJyYW5jaExpc3REYXRhXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaG91ci1sYWJlbC1sZWZ0XCI+e3sgZGF0YT8ud2Vla0RheSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkYXRhPy5vcGVuaW5nVGltZT8uZm9ybWF0dGVkSG91ciB8fCBkYXRhPy5jbG9zaW5nVGltZT8uZm9ybWF0dGVkSG91clwiPnt7ZGF0YT8ub3BlbmluZ1RpbWU/LmZvcm1hdHRlZEhvdXJ9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIHt7ZGF0YT8uY2xvc2luZ1RpbWU/LmZvcm1hdHRlZEhvdXJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCIhZGF0YT8ub3BlbmluZ1RpbWU/LmZvcm1hdHRlZEhvdXIgJiYgIWRhdGE/LmNsb3NpbmdUaW1lPy5mb3JtYXR0ZWRIb3VyXCI+Q2xvc2VkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtc3VidGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtY2FyZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1oZWFkZXIgY2xhc3M9XCJsaW5lLXN0ZXAtbmF2aWdhdGlvblwiICpuZ0lmPVwiaXNEZWxpdmVyeUJveFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIGN1cy10aXRsZS1tYXJnaW4tY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJmb250LWJvbGRcIj4gPHNwYW4gY2xhc3M9XCJjYXJkLW51bWJlclwiPiA0IDwvc3Bhbj4ge3tpc0RlbGl2ZXJ5Qm94ID8gJ1NlbGVjdCB5b3VyIERlbGl2ZXJ5IEFkZHJlc3MgUHJlZmVyZW5jZSc6ICdQaWNrdXAgTG9jYXRpb24gJ319XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1oZWFkZXI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQgW2hpZGRlbl09XCIhaXNEZWxpdmVyeUJveFwiIGNsYXNzPVwiY3VzdG9tLW1hdC1jYXJkIGxpbmUtc3RlcC1uYXZpZ2F0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbWF0LWlubmVyLWNvbnRhaW5lciByYWRpby1idG4tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIGFyaWEtbGFiZWw9XCJTZWxlY3QgYW4gb3B0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gKm5nSWY9XCJkZWZhdWx0QWNjb3VudEFkZHJlc3M/LmZvcm1hdHRlZEFkZHJlc3MgfHwgKGRlbGl2ZXJ5QWRkcmVzc2VzICYmIGRlbGl2ZXJ5QWRkcmVzc2VzLmxlbmd0aCA+IDApXCIgW2NoZWNrZWRdPVwic2VsZWN0ZWRBZGRyZXNzID09ICdhY2NvdW50QWRkcmVzcydcIiAoY2hhbmdlKT1cInNlbGVjdGVkQWRkcmVzcyA9ICdhY2NvdW50QWRkcmVzcyc7c2VsZWN0ZWRSZWNlbnRBZGRyZXNzPSBkZWxpdmVyeUFkZHJlc3Nlc1swXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCInYWNjb3VudEFkZHJlc3MnXCIgY2xhc3M9XCJwbC0wIHByLW1kLTRcIj5BY2NvdW50IEFkZHJlc3M8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gKm5nSWY9XCJkZWxpdmVyeUFkZHJlc3NlcyAmJiByZWNlbnRBZGRyZXNzLmxlbmd0aD4gMFwiIFtjaGVja2VkXT1cInNlbGVjdGVkQWRkcmVzcyA9PSAncmVjZW50QWRkcmVzcydcIiAoY2hhbmdlKT1cInNlbGVjdGVkQWRkcmVzcyA9ICdyZWNlbnRBZGRyZXNzJzsgc2VsZWN0ZWRSZWNlbnRBZGRyZXNzPSByZWNlbnRBZGRyZXNzWzBdXCIgW3ZhbHVlXT1cIidyZWNlbnRBZGRyZXNzJ1wiIGNsYXNzPVwicGwtMCBwci1tZC00XCI+UmVjZW50IEFkZHJlc3M8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gW2NoZWNrZWRdPVwic2VsZWN0ZWRBZGRyZXNzID09ICdhZGROZXdBZGRyZXNzJ1wiIChjaGFuZ2UpPVwiYWRkTmV3QWRkcmVzcygpXCIgW3ZhbHVlXT1cIidhZGROZXdBZGRyZXNzJ1wiPkFkZCBOZXcgQWRkcmVzczwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTIgYWRkcmVzcy1pbm5lci1jb250YWluZXJcIiAqbmdJZj1cInNlbGVjdGVkQWRkcmVzcyA9PSAnYWNjb3VudEFkZHJlc3MnICYmIGRlbGl2ZXJ5QWRkcmVzc2VzLmxlbmd0aCA+IDAgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCIhc2hvd01vcmVBZGRyZXNzZXNcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5Db25maXJtZWQgRGVsaXZlcnkgQWRkcmVzcyA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhc2hvd01vcmVBZGRyZXNzZXNcIiBjbGFzcz1cImZvcm0tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hcC1zZWxlY3RlZC1hZGRyZXNzXCIgaWQ9XCJhZGRyZXNzXCIgcmVxdWlyZWQgI2lzQWRkclNlbGVjdGVkT3JOb3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGVmYXVsdEFjY291bnRBZGRyZXNzPy5mb3JtYXR0ZWRBZGRyZXNzfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dNb3JlQWRkcmVzc2VzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1ncm91cCBhcmlhLWxhYmVsbGVkYnk9XCJleGFtcGxlLXJhZGlvLWdyb3VwLWxhYmVsXCIgY2xhc3M9XCJleGFtcGxlLXJhZGlvLWdyb3VwIHJhZGlvLWJ0bi1zaXplXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwicHktMVwiIFtjaGVja2VkXT1cInNlbGVjdGVkUmVjZW50QWRkcmVzcz8uaWQgPT0gYWRkcmVzcy5pZFwiICpuZ0Zvcj1cImxldCBhZGRyZXNzIG9mIGRlbGl2ZXJ5QWRkcmVzc2VzXCIgW3ZhbHVlXT1cImFkZHJlc3MuaWRcIiAoY2hhbmdlKT1cInNlbGVjdGVkUmVjZW50QWRkcmVzcz1hZGRyZXNzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2FkZHJlc3MuZm9ybWF0dGVkQWRkcmVzc319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTIgYWRkcmVzcy1pbm5lci1jb250YWluZXJcIiAqbmdJZj1cInNlbGVjdGVkQWRkcmVzcyA9PSAncmVjZW50QWRkcmVzcycgJiYgcmVjZW50QWRkcmVzcy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIGFyaWEtbGFiZWxsZWRieT1cImV4YW1wbGUtcmFkaW8tZ3JvdXAtbGFiZWxcIiBjbGFzcz1cImV4YW1wbGUtcmFkaW8tZ3JvdXAgcmFkaW8tYnRuLXNpemVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjbGFzcz1cInB5LTFcIiBbY2hlY2tlZF09XCJzZWxlY3RlZFJlY2VudEFkZHJlc3M/LmlkID09IGFkZHJlc3MuaWRcIiAqbmdGb3I9XCJsZXQgYWRkcmVzcyBvZiByZWNlbnRBZGRyZXNzIFwiIFt2YWx1ZV09XCJhZGRyZXNzLmlkXCIgKGNoYW5nZSk9XCJzZWxlY3RlZFJlY2VudEFkZHJlc3M9YWRkcmVzc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2FkZHJlc3MuZm9ybWF0dGVkQWRkcmVzc319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRBZGRyZXNzID09ICdhZGROZXdBZGRyZXNzJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBNYXAgRGl2IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1hZGQtbmV3LWFkZHJlc3MgW2NvbmZpcm1lZEFkZHJlc3NdPVwiY29uZmlybWVkTmV3QWRkcmVzc1wiICh1cGRhdGVOZXdBZGRyZXNzKT1cImdldE5ld0FkZHJlc3MoJGV2ZW50KVwiPjwvYXBwLWFkZC1uZXctYWRkcmVzcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtY2FyZD5cclxuICAgICAgICAgICAgICAgIDxtYXQtY2FyZC1oZWFkZXIgY2xhc3M9XCJsaW5lLXN0ZXAtbmF2aWdhdGlvbiBsYXN0LXN0ZXBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBjdXMtdGl0bGUtbWFyZ2luLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLXRpdGxlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJkLW51bWJlclwiPiA1IDwvc3Bhbj4ge3tpc0RlbGl2ZXJ5Qm94ID8gJ1NpdGUgRGVsaXZlcnkgUmVxdWlyZW1lbnRzJzogJ0NvbW1lbnRzICd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmZvLWljb24gcGwtMlwiIGFwcFRvb2x0aXAgdG9vbHRpcFRpdGxlPVwie3tpc0RlbGl2ZXJ5Qm94ID8gc2l0ZURlbGl2ZXJ5UmVxdWlyZW1lbnRzIDogY2xpY2thbmRDb2xsZWN0Q29tbWVudHN9fVwiIHBsYWNlbWVudD1cImJvdHRvbVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZC10aXRsZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1jYXJkIGNsYXNzPVwiY3VzdG9tLW1hdC1jYXJkIGxpbmUtc3RlcC1uYXZpZ2F0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiY2hlY2tvdXRGb3JtRGF0YS5kZWxpdmVyeVBpY2tVcE5vdGVzXCIgcm93cz1cIjNcIiBuYW1lPVwiSW5zdHJ1Y3Rpb25zXCIgaWQ9XCJJbnN0cnVjdGlvbnNcIiBbcGxhY2Vob2xkZXJdPVwiaXNEZWxpdmVyeUJveCA/ICdQcm92aWRlIGFueSBzcGVjaWZpYyBkZWxpdmVyeSBpbnN0cnVjdGlvbnMnOidQcm92aWRlIGFueSBzcGVjaWZpYyBwaWNrdXAgaW5zdHJ1Y3Rpb25zJ1wiIG1heGxlbmd0aD1cIjI1MFwiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtY2FyZD5cclxuICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiY2FydC1wYWdlLWZvb3RlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGlja3ktZm9vdGVyIHJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyXCI+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIiBmbG9hdC1tZC1yaWdodCBtLTAgY2hlY2tvdXQtZm9vdGVyLWJ0bnNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSB0aXRsZT1cIkJhY2sgdG8gQ2FydFwiIGhyZWY9XCIvY2FydFwiIGNsYXNzPVwibXItMyBmb250LXdlaWdodC1ib2xkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiLi4vLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9pb25pYy1hcnJvdy1iYWNrLnN2Z1wiIGFsdD1cImJhY2stYXJyb3dcIiBjbGFzcz1cIm1yLTJcIiAvPiBCQUNLXHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJyZXZpZXdPcmRlcigpXCIgY2xhc3M9XCJidG4gcHJpbWFyeS1idXR0b25cIj5SZXZpZXcgQW5kIE9yZGVyPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIGNvbC1zbS0xMiBhbGVydCBhbGVydC1kYW5nZXIgYWxlcnQtZGFuZ2VyLWN1c3RvbSBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgbXQtM1wiIHJvbGU9XCJhbGVydFwiICpuZ0lmPVwiZXJyb3JJbmQkIHwgYXN5bmNcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJtci0zXCIgc3JjPVwiLi4vLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9lcnJvcmljb24uc3ZnXCIgYWx0PVwiYWxlcnRcIj4ge3tpbmZvTWVzc2FnZX19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|