@acorex/components 3.0.20 → 3.0.24
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/acorex-components.metadata.json +1 -1
- package/bundles/acorex-components.umd.js +13 -13
- package/bundles/acorex-components.umd.js.map +1 -1
- package/bundles/acorex-components.umd.min.js +1 -1
- package/bundles/acorex-components.umd.min.js.map +1 -1
- package/esm2015/lib/color-picker/color-picker.component.js +2 -2
- package/esm2015/lib/date-picker/date-picker.component.js +2 -2
- package/esm2015/lib/form-group/form-group.component.js +2 -2
- package/esm2015/lib/number-box/number-box.component.js +2 -2
- package/esm2015/lib/password-box/password-box.component.js +2 -2
- package/esm2015/lib/searchbox/searchbox.component.js +2 -2
- package/esm2015/lib/selectbox/selectbox.component.js +2 -2
- package/esm2015/lib/selectbox/selectbox2.component.js +2 -2
- package/esm2015/lib/textarea/textarea.component.js +2 -2
- package/esm2015/lib/textbox/textbox.component.js +2 -2
- package/esm2015/lib/time-picker/time-picker.component.js +2 -2
- package/esm2015/lib/tooltip/tooltip.directive.js +3 -3
- package/esm5/lib/color-picker/color-picker.component.js +2 -2
- package/esm5/lib/date-picker/date-picker.component.js +2 -2
- package/esm5/lib/form-group/form-group.component.js +2 -2
- package/esm5/lib/number-box/number-box.component.js +2 -2
- package/esm5/lib/password-box/password-box.component.js +2 -2
- package/esm5/lib/searchbox/searchbox.component.js +2 -2
- package/esm5/lib/selectbox/selectbox.component.js +2 -2
- package/esm5/lib/selectbox/selectbox2.component.js +2 -2
- package/esm5/lib/textarea/textarea.component.js +2 -2
- package/esm5/lib/textbox/textbox.component.js +2 -2
- package/esm5/lib/time-picker/time-picker.component.js +2 -2
- package/esm5/lib/tooltip/tooltip.directive.js +3 -3
- package/fesm2015/acorex-components.js +13 -13
- package/fesm2015/acorex-components.js.map +1 -1
- package/fesm5/acorex-components.js +13 -13
- package/fesm5/acorex-components.js.map +1 -1
- package/package.json +1 -1
|
@@ -966,7 +966,7 @@ var AXTimePickerComponent = /** @class */ (function (_super) {
|
|
|
966
966
|
selector: 'ax-time-picker',
|
|
967
967
|
template: "<div class=\"ax form-item\" [class.disabled]=\"disabled\" [attr.id]=\"uid\" #fc>\r\n <div class=\"ax items-wrapper\">\r\n <ng-content select=\"[start]\">\r\n </ng-content>\r\n </div>\r\n <div class=\"content\" #content>\r\n <div class=\"ax form-control input {{size}}\" [class.disabled]=\"disabled\" [class.readonly]=\"readonly\" [class.icon]=\"icon\">\r\n <input #input type=\"text\" class=\"ax {{size}}\" [textMask]=\"timeType\" [(ngModel)]=\"textValue\" placeholder=\"{{placeholder}}\" [readonly]=\"readonly\" [disabled]=\"disabled\" [ngClass]=\"setTextAlign()\" [class.clear]=\"value && allowClear\" (focus)=\"handleInputFocus()\"\r\n (blur)=\"handleInputBlur($event)\" (keypress)='handleKeyPress($event)' (keyup)=\"handleKeyUp($event)\" (keydown)=\"handleKeyDown($event)\" (click)=\"handleClick($event)\">\r\n <i class=\"{{icon}}\" *ngIf=\"icon\"></i>\r\n </div>\r\n </div>\r\n <div class=\"ax items-wrapper\">\r\n <ax-button *ngIf=\"value && allowClear\" icon=\"far fa-times\" type=\"danger blank\" (click)=\"clear()\" [disabled]=\"disabled\" [tabIndex]=\"-1\"></ax-button>\r\n <ng-content select=\"[end]\">\r\n </ng-content>\r\n </div>\r\n</div>\r\n<!-- [textMask]=\"{mask: mask , showMask:showMask , guid: maskGuid , keepCharPositions: maskKeepCharPositions}\" -->\r\n<!-- <input #input id=\"timePickerValue\" [textMask]=\"timeType\" type=\"text\" [(ngModel)]=\"value\" (keypress)='handleKeyPress($event)'\r\n (keyup)=\"handleKeyUp($event)\" (keydown)=\"handleKeyDown($event)\" (click)=\"handleClick($event)\"> -->",
|
|
968
968
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
969
|
-
host: {
|
|
969
|
+
host: {},
|
|
970
970
|
providers: [{ provide: AXValidatableComponent, useExisting: AXTimePickerComponent_1 }]
|
|
971
971
|
}),
|
|
972
972
|
__metadata("design:paramtypes", [ChangeDetectorRef, ElementRef])
|
|
@@ -974,4 +974,4 @@ var AXTimePickerComponent = /** @class */ (function (_super) {
|
|
|
974
974
|
return AXTimePickerComponent;
|
|
975
975
|
}(AXBaseTextComponent));
|
|
976
976
|
export { AXTimePickerComponent };
|
|
977
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3JleC9jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUNULHVCQUF1QixFQUN2QixZQUFZLEVBQ1osTUFBTSxFQUNOLFlBQVksRUFFYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU1QztJQUFBO0lBTUEsQ0FBQztJQUFELG1DQUFDO0FBQUQsQ0FBQyxBQU5ELElBTUM7O0FBQ0Q7SUFBOEMsNENBQTBDO0lBQXhGOztJQUEyRixDQUFDO0lBQUQsK0JBQUM7QUFBRCxDQUFDLEFBQTVGLENBQThDLFlBQVksR0FBa0M7O0FBUzVGO0lBQTJDLHlDQUFtQjtJQXdPNUQsK0JBQXNCLEdBQXNCLEVBQUUsR0FBZTtRQUE3RCxZQUNFLGtCQUFNLEdBQUcsRUFBRSxHQUFHLENBQUMsU0FHaEI7UUFKcUIsU0FBRyxHQUFILEdBQUcsQ0FBbUI7UUF0TzVDLG9CQUFjLEdBQTJDLElBQUksWUFBWSxFQUE0QixDQUFDO1FBU3RHLFVBQUksR0FBVyxNQUFNLENBQUM7UUFFdEIsb0JBQWMsR0FBWSxLQUFLLENBQUM7UUFFaEMsbUJBQWEsR0FBWSxJQUFJLENBQUM7UUFDOUIsWUFBTSxHQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FB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LElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ2xILElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDO2FBQzNEO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO2FBQ3BEO1NBQ0Y7UUFFRCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBRTlCLElBQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEMsSUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFD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a0NBQ08sWUFBWTtpRUFBMEU7SUFPdEc7UUFEQyxLQUFLLEVBQUU7OzJEQUNNO0lBSWQ7UUFEQyxLQUFLLEVBQUU7O2lFQUN3QjtJQWJyQixxQkFBcUI7UUFQakMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQix5bURBQTJDO1lBQzNDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1lBQy9DLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRTtZQUNyQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsdUJBQXFCLEVBQUUsQ0FBQztTQUNyRixDQUFDO3lDQXlPMkIsaUJBQWlCLEVBQU8sVUFBVTtPQXhPbEQscUJBQXFCLENBdzhCakM7SUFBRCw0QkFBQztDQUFBLEFBeDhCRCxDQUEyQyxtQkFBbUIsR0F3OEI3RDtTQXg4QlkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPdXRwdXQsXHJcbiAgQ29udGVudENoaWxkXHJcblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWEJhc2VUZXh0Q29tcG9uZW50LCBBWFZhbGlkYXRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcclxuaW1wb3J0IHsgXyB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcclxuaW1wb3J0IHsgQVhWYWx1ZUV2ZW50IH0gZnJvbSAnLi4vYmFzZS9ldmVudHMuY2xhc3MnO1xyXG5pbXBvcnQgeyBBWFRyYW5zbGF0b3IgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFYVGltZVBpY2tlckl0ZW1DaGFuZ2VkRXZlbnQge1xyXG4gIG1pbnV0ZT86IG51bWJlcjtcclxuICBzZWNvbmQ/OiBudW1iZXI7XHJcbiAgaG91cj86IG51bWJlcjtcclxuICB0aW1lOiBzdHJpbmc7XHJcblxyXG59XHJcbmV4cG9ydCBjbGFzcyBBWFRpbWVQaWNrZXJDaGFuZ2VkRXZlbnQgZXh0ZW5kcyBBWFZhbHVlRXZlbnQ8QVhUaW1lUGlja2VySXRlbUNoYW5nZWRFdmVudD4geyB9XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LXRpbWUtcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGhvc3Q6IHsgc3R5bGU6ICdkaXNwbGF5OiBjb250ZW50czsnIH0sXHJcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWFZhbGlkYXRhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhUaW1lUGlja2VyQ29tcG9uZW50IH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFRpbWVQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VUZXh0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAT3V0cHV0KClcclxuICBvblZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYVGltZVBpY2tlckNoYW5nZWRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYVGltZVBpY2tlckNoYW5nZWRFdmVudD4oKTtcclxuXHJcbiAgLy8gQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIC8vIEBDb250ZW50Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSlcclxuICAvLyBpbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuXHJcbiAgQElucHV0KClcclxuICB0aW1lVHlwZTogYW55O1xyXG5cclxuICB0eXBlOiBzdHJpbmcgPSAnSEhtbSc7XHJcbiAgQElucHV0KClcclxuICBzaG93Q3VyZW50VGltZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjbGVhckRpc2FibGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICBISG1tc3M6IGFueSA9IFsvWzAtMl0vLCAvWzAtOV0vLCAnOicsIC9bMC01XS8sIC9bMC05XS8sICc6JywgL1swLTVdLywgL1swLTldL107XHJcbiAgSEhtbTogYW55ID0gWy9bMC0yXS8sIC9bMC05XS8sICc6JywgL1swLTVdLywgL1swLTldL107XHJcbiAgSEg6IGFueSA9IFsvWzAtMl0vLCAvWzAtOV0vXTtcclxuICBoaG1tc3M6IGFueSA9IFsvWzAtMV0vLCAvWzAtOV0vLCAnOicsIC9bMC01XS8sIC9bMC05XS8sICc6JywgL1swLTVdLywgL1swLTldL107XHJcbiAgaGhtbTogYW55ID0gWy9bMC0xXS8sIC9bMC05XS8sICc6JywgL1swLTVdLywgL1swLTldL107XHJcbiAgaGg6IGFueSA9IFsvWzAtMV0vLCAvWzAtOV0vXTtcclxuICAvLyBUT0RPOiBhcHBseSBhbSBwbSBmcm9tIGxvY2FsZVxyXG4gIGhobW1zc2FtOiBhbnkgPSBbL1swLTFdLywgL1swLTldLywgJzonLCAvWzAtNV0vLCAvWzAtOV0vLCAnOicsIC9bMC01XS8sIC9bMC05XS8sICcgJywgL1thfHB82YJ82KhdLywgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5tJyldO1xyXG4gIGhobW1hbTogYW55ID0gWy9bMC0xXS8sIC9bMC05XS8sICc6JywgL1swLTVdLywgL1swLTldLywgJyAnLCAvW2F8cHzZgnzYqF0vLCBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLm0nKV07XHJcbiAgaGhhbTogYW55ID0gWy9bMC0xXS8sIC9bMC05XS8sICcgJywgL1thfHB82YJ82KhdLywgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5tJyldO1xyXG4gIHRleHRWYWx1ZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIHZhbHVlSGFtOiBzdHJpbmcgPSAnLS0gJyArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYW0nKTtcclxuICB2YWx1ZU1hbTogc3RyaW5nID0gJy0tOi0tICcgKyBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmFtJyk7XHJcbiAgdmFsdWVTYW06IHN0cmluZyA9ICctLTotLTotLSAnICsgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hbScpO1xyXG5cclxuXHJcbiAgcHJpdmF0ZSBfdmFsdWVzOiBzdHJpbmc7XHJcbiAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlcztcclxuICB9XHJcbiAgcHVibGljIHNldCB2YWx1ZSh2OiBzdHJpbmcpIHtcclxuICAgIGlmICh2ID09PSAnJyB8fCB2ID09IG51bGwgfHwgdiA9PT0gJy0tOi0tOi0tJyB8fCB2ID09PSAnLS06LS0nIHx8IHYgPT09ICctLScgfHwgdiA9PT0gdGhpcy52YWx1ZVNhbSB8fCB2ID09PSB0aGlzLnZhbHVlTWFtIHx8IHYgPT09IHRoaXMudmFsdWVIYW0pIHtcclxuICAgICAgdGhpcy5jbGVhckRpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gICAgICBjb25zdCBvbGQgPSB0aGlzLl92YWx1ZXM7XHJcbiAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnSEhtbXNzJzpcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tOi0tOi0tJztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ0hIbW0nOlxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnLS06LS0nO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnSEgnOlxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnLS0nO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnaGhtbXNzJzpcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tOi0tOi0tJztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2hobW0nOlxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnLS06LS0nO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnaGgnOlxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnLS0nO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnaGhtbXNzYW0nOlxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnZhbHVlU2FtO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnaGhtbWFtJzpcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZU1hbTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2hoYW0nOlxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnZhbHVlSGFtO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuX3ZhbHVlcyA9IG51bGw7XHJcbiAgICAgIGlmICh2ICE9PSBvbGQpIHtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5lbWl0KHtcclxuICAgICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICAgIHZhbHVlOiB7IGhvdXI6IG51bGwsIG1pbnV0ZTogbnVsbCwgc2Vjb25kOiBudWxsLCB0aW1lOiBudWxsIH0sXHJcbiAgICAgICAgICBvbGRWYWx1ZTogeyB0aW1lOiBvbGQgfSxcclxuICAgICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2xlYXJEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgIGlmICh0aGlzLl92YWx1ZXMgJiYgdikge1xyXG4gICAgICAgIGNvbnN0IG9sZCA9IHRoaXMuX3ZhbHVlcztcclxuICAgICAgICBjb25zdCBpbmQxID0gdi5jaGFyQXQoMCk7XHJcbiAgICAgICAgY29uc3QgaW5kMiA9IHYuY2hhckF0KDEpO1xyXG4gICAgICAgIGNvbnN0IGluZDMgPSB2LmNoYXJBdCgyKTtcclxuICAgICAgICBjb25zdCBpbmQ0ID0gdi5jaGFyQXQoMyk7XHJcbiAgICAgICAgY29uc3QgaW5kNSA9IHYuY2hhckF0KDQpO1xyXG4gICAgICAgIGNvbnN0IGluZDYgPSB2LmNoYXJBdCg1KTtcclxuICAgICAgICBjb25zdCBpbmQ3ID0gdi5jaGFyQXQoNik7XHJcbiAgICAgICAgY29uc3QgaW5kOCA9IHYuY2hhckF0KDcpO1xyXG4gICAgICAgIGNvbnN0IGluZDkgPSB2LmNoYXJBdCg4KTtcclxuICAgICAgICBjb25zdCBpbmQxMCA9IHYuY2hhckF0KDkpO1xyXG5cclxuICAgICAgICBjb25zdCBpbmRPbGQ0ID0gb2xkLmNoYXJBdCg5KTtcclxuICAgICAgICBjb25zdCBpbmRPbGQ3ID0gb2xkLmNoYXJBdCg5KTtcclxuICAgICAgICBjb25zdCBpbmRPbGQxMCA9IG9sZC5jaGFyQXQoOSk7XHJcblxyXG4gICAgICAgIC8vIGhhbmRsZSBoaG1tc3NBbVxyXG4gICAgICAgIGlmIChpbmQxID09PSAnLScgJiYgaW5kMiAhPT0gJy0nICYmIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3NhbSkge1xyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnMCcgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOSArIGluZDEwICsgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5tJyk7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgMik7XHJcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAyO1xyXG4gICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpbmQ0ID09PSAnLScgJiYgaW5kNSAhPT0gJy0nICYmIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3NhbSkge1xyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBpbmQxICsgaW5kMiArIGluZDMgKyAnMCcgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOSArIGluZDEwICsgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5tJyk7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgNSk7XHJcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSA1O1xyXG4gICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpbmQ3ID09PSAnLScgJiYgaW5kOCAhPT0gJy0nICYmIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3NhbSkge1xyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBpbmQxICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArIGluZDYgKyAnMCcgKyBpbmQ4ICsgaW5kOSArIGluZDEwICsgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5tJyk7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgOCk7XHJcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSA4O1xyXG4gICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpbmRPbGQxMCA9PT0gJy0nICYmIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3NhbSkge1xyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBpbmQxICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArIGluZDYgKyBpbmQ3ICsgaW5kOCArIGluZDkgKyBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmFtJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL1xyXG4gICAgICAgIGlmIChpbmQxID09PSAnLScgJiYgaW5kMiAhPT0gJy0nICYmIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0pIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJzAnICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArIGluZDYgKyBpbmQ3ICsgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5tJyk7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgMik7XHJcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAyO1xyXG4gICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpbmQ0ID09PSAnLScgJiYgaW5kNSAhPT0gJy0nICYmIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0pIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gaW5kMSArIGluZDIgKyBpbmQzICsgJzAnICsgaW5kNSArIGluZDYgKyBpbmQ3ICsgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5tJyk7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgNSk7XHJcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSA1O1xyXG4gICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpbmRPbGQ3ID09PSAnLScgJiYgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1hbSkge1xyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBpbmQxICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArIGluZDYgKyBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmFtJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL1xyXG4gICAgICAgIGlmIChpbmQxID09PSAnLScgJiYgaW5kMiAhPT0gJy0nICYmIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaGFtKSB7XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICcwJyArIGluZDIgKyBpbmQzICsgaW5kNCArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUubScpO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDIpO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gMjtcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kT2xkNCA9PT0gJy0nICYmIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaGFtKSB7XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IGluZDEgKyBpbmQyICsgaW5kMyArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYW0nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vXHJcbiAgICAgICAgaWYgKGluZDEgPT09ICctJyAmJiBpbmQyICE9PSAnLScgJiYgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3MgfHwgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLkhIbW1zcykpIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJzAnICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArIGluZDYgKyBpbmQ3ICsgaW5kODtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCAyKTtcclxuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDI7XHJcbiAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGluZDQgPT09ICctJyAmJiBpbmQ1ICE9PSAnLScgJiYgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3MgfHwgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLkhIbW1zcykpIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gaW5kMSArIGluZDIgKyBpbmQzICsgJzAnICsgaW5kNSArIGluZDYgKyBpbmQ3ICsgaW5kODtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCA2KTtcclxuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDY7XHJcbiAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGluZDcgPT09ICctJyAmJiBpbmQ4ICE9PSAnLScgJiYgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3MgfHwgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLkhIbW1zcykpIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgJzAnICsgaW5kODtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCA5KTtcclxuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDk7XHJcbiAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vXHJcbiAgICAgICAgaWYgKGluZDEgPT09ICctJyAmJiBpbmQyICE9PSAnLScgJiYgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tIHx8IHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5ISG1tKSkge1xyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnMCcgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1O1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDIpO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gMjtcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kNCA9PT0gJy0nICYmIGluZDUgIT09ICctJyAmJiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW0gfHwgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLkhIbW0pKSB7XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IGluZDEgKyBpbmQyICsgaW5kMyArICcwJyArIGluZDU7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgNSk7XHJcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSA1O1xyXG4gICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL1xyXG4gICAgICAgIGlmIChpbmQxID09PSAnLScgJiYgaW5kMiAhPT0gJy0nICYmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGggfHwgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLkhIKSkge1xyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnMCcgKyBpbmQyO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDIpO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gMjtcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAodiAhPT0gdGhpcy5fdmFsdWVzKSB7XHJcbiAgICAgICAgY29uc3Qgb2xkID0gdGhpcy5fdmFsdWVzO1xyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gdjtcclxuICAgICAgICB0aGlzLl92YWx1ZXMgPSAodiAmJiB2LmluZGV4T2YoJy0nKSA9PT0gLTEpID8gdiA6IG51bGw7XHJcbiAgICAgICAgaWYgKHYuaW5kZXhPZignLScpID09PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHYpO1xyXG4gICAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5lbWl0KHtcclxuICAgICAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgICAgICB2YWx1ZToge1xyXG4gICAgICAgICAgICAgIHRpbWU6IHYsXHJcbiAgICAgICAgICAgICAgaG91cjogTnVtYmVyKHZbMF0gKyB2WzFdKSxcclxuICAgICAgICAgICAgICBtaW51dGU6IHZbM10gJiYgdlszXSAhPT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hJykgJiYgdlszXSAhPT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJykgPyBOdW1iZXIodlszXSArIHZbNF0pIDogbnVsbCxcclxuICAgICAgICAgICAgICBzZWNvbmQ6IHZbNl0gJiYgdls2XSAhPT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hJykgJiYgdls2XSAhPT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJykgPyBOdW1iZXIodls2XSArIHZbN10pIDogbnVsbFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBvbGRWYWx1ZTogeyB0aW1lOiBvbGQgfSxcclxuICAgICAgICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnRcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgdGhpcy5jbGVhclZhbGlkYXRpb25TdHlsZSh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3Vyc29yUG9zaXRpb246IG51bWJlciA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLCByZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIHN1cGVyKGNkciwgcmVmKTtcclxuICAgIFxyXG4gICAgdGhpcy50aW1lVHlwZSA9ICdISG1tJztcclxuICB9XHJcbiAgY2xlYXJWYWx1ZSgpIHtcclxuICAgIHRoaXMuY2xlYXIoKTtcclxuICAgIHRoaXMuaGFuZGxlSW5wdXRGb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzd2l0Y2ggKHRoaXMudGltZVR5cGUpIHtcclxuICAgICAgY2FzZSAnSEhtbXNzJzpcclxuICAgICAgICB0aGlzLnR5cGUgPSAnSEhtbXNzJztcclxuICAgICAgICB0aGlzLnRpbWVUeXBlID0ge1xyXG4gICAgICAgICAgZ3VpZGU6IHRydWUsXHJcbiAgICAgICAgICBzaG93TWFzazogdHJ1ZSxcclxuICAgICAgICAgIG1hc2s6IHRoaXMuSEhtbXNzLFxyXG4gICAgICAgICAga2VlcENoYXJQb3NpdGlvbnM6IHRydWUsXHJcbiAgICAgICAgICBwbGFjZWhvbGRlckNoYXI6ICctJ1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZSA6ICctLTotLTotLSc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0hIbW0nOlxyXG4gICAgICAgIHRoaXMudHlwZSA9ICdISG1tJztcclxuICAgICAgICB0aGlzLnRpbWVUeXBlID0ge1xyXG4gICAgICAgICAgZ3VpZGU6IHRydWUsXHJcbiAgICAgICAgICBzaG93TWFzazogdHJ1ZSxcclxuICAgICAgICAgIG1hc2s6IHRoaXMuSEhtbSxcclxuICAgICAgICAgIGtlZXBDaGFyUG9zaXRpb25zOiB0cnVlLFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnLSdcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiAnLS06LS0nO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdISCc6XHJcbiAgICAgICAgdGhpcy50eXBlID0gJ0hIJztcclxuICAgICAgICB0aGlzLnRpbWVUeXBlID0ge1xyXG4gICAgICAgICAgZ3VpZGU6IHRydWUsXHJcbiAgICAgICAgICBzaG93TWFzazogdHJ1ZSxcclxuICAgICAgICAgIG1hc2s6IHRoaXMuSEgsXHJcbiAgICAgICAgICBrZWVwQ2hhclBvc2l0aW9uczogdHJ1ZSxcclxuICAgICAgICAgIHBsYWNlaG9sZGVyQ2hhcjogJy0nXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogJy0tJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnaGhtbXNzJzpcclxuICAgICAgICB0aGlzLnR5cGUgPSAnaGhtbXNzJztcclxuICAgICAgICB0aGlzLnRpbWVUeXBlID0ge1xyXG4gICAgICAgICAgZ3VpZGU6IHRydWUsXHJcbiAgICAgICAgICBzaG93TWFzazogdHJ1ZSxcclxuICAgICAgICAgIG1hc2s6IHRoaXMuaGhtbXNzLFxyXG4gICAgICAgICAga2VlcENoYXJQb3NpdGlvbnM6IHRydWUsXHJcbiAgICAgICAgICBwbGFjZWhvbGRlckNoYXI6ICctJ1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZSA6ICctLTotLTotLSc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2hobW0nOlxyXG4gICAgICAgIHRoaXMudHlwZSA9ICdoaG1tJztcclxuICAgICAgICB0aGlzLnRpbWVUeXBlID0ge1xyXG4gICAgICAgICAgZ3VpZGU6IHRydWUsXHJcbiAgICAgICAgICBzaG93TWFzazogdHJ1ZSxcclxuICAgICAgICAgIG1hc2s6IHRoaXMuaGhtbSxcclxuICAgICAgICAgIGtlZXBDaGFyUG9zaXRpb25zOiB0cnVlLFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnLSdcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiAnLS06LS0nO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdoaCc6XHJcbiAgICAgICAgdGhpcy50eXBlID0gJ2hoJztcclxuXHJcbiAgICAgICAgdGhpcy50aW1lVHlwZSA9IHtcclxuICAgICAgICAgIGd1aWRlOiB0cnVlLFxyXG4gICAgICAgICAgc2hvd01hc2s6IHRydWUsXHJcbiAgICAgICAgICBtYXNrOiB0aGlzLmhoLFxyXG4gICAgICAgICAga2VlcENoYXJQb3NpdGlvbnM6IHRydWUsXHJcbiAgICAgICAgICBwbGFjZWhvbGRlckNoYXI6ICctJ1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZSA6ICctLSc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2hobW1zc2FtJzpcclxuICAgICAgICB0aGlzLnR5cGUgPSAnaGhtbXNzYW0nO1xyXG5cclxuICAgICAgICB0aGlzLnRpbWVUeXBlID0ge1xyXG4gICAgICAgICAgZ3VpZGU6IHRydWUsXHJcbiAgICAgICAgICBzaG93TWFzazogdHJ1ZSxcclxuICAgICAgICAgIG1hc2s6IHRoaXMuaGhtbXNzYW0sXHJcbiAgICAgICAgICBrZWVwQ2hhclBvc2l0aW9uczogdHJ1ZSxcclxuICAgICAgICAgIHBsYWNlaG9sZGVyQ2hhcjogJy0nXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogdGhpcy52YWx1ZVNhbTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnaGhtbWFtJzpcclxuICAgICAgICB0aGlzLnR5cGUgPSAnaGhtbWFtJztcclxuXHJcbiAgICAgICAgdGhpcy50aW1lVHlwZSA9IHtcclxuICAgICAgICAgIGd1aWRlOiB0cnVlLFxyXG4gICAgICAgICAgc2hvd01hc2s6IHRydWUsXHJcbiAgICAgICAgICBtYXNrOiB0aGlzLmhobW1hbSxcclxuICAgICAgICAgIGtlZXBDaGFyUG9zaXRpb25zOiB0cnVlLFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnLSdcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiB0aGlzLnZhbHVlTWFtO1xyXG5cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnaGhhbSc6XHJcbiAgICAgICAgdGhpcy50eXBlID0gJ2hoYW0nO1xyXG5cclxuICAgICAgICB0aGlzLnRpbWVUeXBlID0ge1xyXG4gICAgICAgICAgZ3VpZGU6IHRydWUsXHJcbiAgICAgICAgICBzaG93TWFzazogdHJ1ZSxcclxuICAgICAgICAgIG1hc2s6IHRoaXMuaGhhbSxcclxuICAgICAgICAgIGtlZXBDaGFyUG9zaXRpb25zOiB0cnVlLFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnLSdcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiB0aGlzLnZhbHVlSGFtO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMudHlwZSA9ICdISG1tJztcclxuICAgICAgICB0aGlzLnRpbWVUeXBlID0ge1xyXG4gICAgICAgICAgZ3VpZGU6IHRydWUsXHJcbiAgICAgICAgICBzaG93TWFzazogdHJ1ZSxcclxuICAgICAgICAgIG1hc2s6IHRoaXMuSEhtbSxcclxuICAgICAgICAgIGtlZXBDaGFyUG9zaXRpb25zOiB0cnVlLFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnLSdcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiAnLS06LS0nO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNob3dDdXJlbnRUaW1lID09PSB0cnVlKSB7XHJcbiAgICAgIGNvbnN0IGhvdXIgPSBuZXcgRGF0ZSgpLmdldEhvdXJzKCkgPiAxMCA/IG5ldyBEYXRlKCkuZ2V0SG91cnMoKSA6ICcwJyArIG5ldyBEYXRlKCkuZ2V0SG91cnMoKTtcclxuICAgICAgbGV0IGFtSG91cjogYW55O1xyXG5cclxuICAgICAgaWYgKG5ldyBEYXRlKCkuZ2V0SG91cnMoKSA+IDEwKSB7XHJcbiAgICAgICAgaWYgKG5ldyBEYXRlKCkuZ2V0SG91cnMoKSA+IDEyKSB7XHJcbiAgICAgICAgICBpZiAobmV3IERhdGUoKS5nZXRIb3VycygpIC0gMTIgPCAxMCkge1xyXG4gICAgICAgICAgICBhbUhvdXIgPSAnMCcgKyAobmV3IERhdGUoKS5nZXRIb3VycygpIC0gMTIpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgYW1Ib3VyID0gbmV3IERhdGUoKS5nZXRIb3VycygpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBhbUhvdXIgPSBuZXcgRGF0ZSgpLmdldEhvdXJzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGFtSG91ciA9ICcwJyArIG5ldyBEYXRlKCkuZ2V0SG91cnMoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgbWluID0gbmV3IERhdGUoKS5nZXRNaW51dGVzKCkgPiA5ID8gbmV3IERhdGUoKS5nZXRNaW51dGVzKCkgOiAnMCcgKyBuZXcgRGF0ZSgpLmdldE1pbnV0ZXMoKTtcclxuICAgICAgY29uc3Qgc2VjID0gbmV3IERhdGUoKS5nZXRTZWNvbmRzKCkgPiA5ID8gbmV3IERhdGUoKS5nZXRTZWNvbmRzKCkgOiAnMCcgKyBuZXcgRGF0ZSgpLmdldFNlY29uZHMoKTtcclxuICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ2hoJyB8fCB0aGlzLnR5cGUgPT09ICdoaG1tJyB8fCB0aGlzLnR5cGUgPT09ICdoaG1tc3MnIHx8IHRoaXMudHlwZSA9PT0gJ2hobW1zc2FtJykge1xyXG4gICAgICAgIGlmIChob3VyID49IDEyKSB7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlID0gYW1Ib3VyICsgJzonICsgbWluICsgJzonICsgc2VjICsgJyAnICsgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wbScpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlID0gYW1Ib3VyICsgJzonICsgbWluICsgJzonICsgc2VjICsgJyAnICsgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hbScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdoaGFtJykge1xyXG4gICAgICAgIGlmIChob3VyID49IDEyKSB7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlID0gYW1Ib3VyICsgJyAnICsgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wbScpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlID0gYW1Ib3VyICsgJyAnICsgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hbScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdoaG1tYW0nKSB7XHJcbiAgICAgICAgaWYgKGhvdXIgPj0gMTIpIHtcclxuICAgICAgICAgIHRoaXMudmFsdWUgPSBhbUhvdXIgKyAnOicgKyBtaW4gKyAnICcgKyBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLnBtJyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudmFsdWUgPSBhbUhvdXIgKyAnOicgKyBtaW4gKyAnICcgKyBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmFtJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSBob3VyICsgJzonICsgbWluICsgJzonICsgc2VjO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblN0YXJ0Zm9jdXMoKSB7XHJcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICd0cmFuc3BhcmVudCc7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgMCk7XHJcbiAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAwO1xyXG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICdhdXRvJztcclxuICAgIH0sIDApO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlSW5wdXRGb2N1cygpIHtcclxuICAgIHRoaXMub25TdGFydGZvY3VzKCk7XHJcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICB9XHJcbiAgaGFuZGxlSW5wdXRCbHVyKGUpIHtcclxuICAgIGlmICh0aGlzLnRleHRWYWx1ZS5pbmRleE9mKCctJykgIT09IC0xKSB7XHJcbiAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAnSEhtbXNzJzpcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tOi0tOi0tJztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ0hIbW0nOlxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnLS06LS0nO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnSEgnOlxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnLS0nO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnaGhtbXNzJzpcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tOi0tOi0tJztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2hobW0nOlxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnLS06LS0nO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnaGgnOlxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnLS0nO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnaGhtbXNzYW0nOlxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnZhbHVlU2FtO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnaGhtbWFtJzpcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZU1hbTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2hoYW0nOlxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnZhbHVlSGFtO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUtleVByZXNzKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGlucHV0Q2hhciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQuY2hhckNvZGUpO1xyXG4gICAgY29uc3QgZmlyc3RDaGFyID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDApO1xyXG4gICAgY29uc3Qgc2Vjb25kQ2hhciA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCgxKTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCB8fCB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT09IDApIHtcclxuICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xyXG4gICAgICAgIC8vIHRoaXMuY3Vyc29yUG9zaXRpb24gKz0gMSA7XHJcbiAgICAgIH1cclxuICAgIH0sIDApO1xyXG5cclxuICAgIGlmIChmaXJzdENoYXIgPT09ICcyJykge1xyXG4gICAgICBpZiAoc2Vjb25kQ2hhciA9PT0gJycgfHwgdGhpcy50ZXh0VmFsdWUuY2hhckF0KDEpID49ICc0JyB8fCB0aGlzLmN1cnNvclBvc2l0aW9uIDwgMykge1xyXG4gICAgICAgIGlmIChpbnB1dENoYXIgPj0gJzQnKSB7XHJcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzIHx8XHJcbiAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tIHx8XHJcbiAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaCB8fFxyXG4gICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW0gfHxcclxuICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1hbSB8fFxyXG4gICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhhbVxyXG4gICAgKSB7XHJcbiAgICAgIGlmIChmaXJzdENoYXIgPT09ICcxJykge1xyXG4gICAgICAgIGlmIChzZWNvbmRDaGFyID09PSAnJyB8fCB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoMSkgPj0gJzMnIHx8IHRoaXMuY3Vyc29yUG9zaXRpb24gPCAzKSB7XHJcbiAgICAgICAgICBpZiAoaW5wdXRDaGFyID49ICczJykge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGlucHV0Q2hhciA9PT0gJy0nKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVLZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcclxuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAnYXV0byc7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgfVxyXG4gICAgLy8gdXAgJiBkb3duIGJ1dHRvblxyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XHJcbiAgICAgIHRoaXMuc2V0Q2FyZXQoKTtcclxuICAgIH1cclxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgIHRoaXMuc2V0Q2FyZXQoKTtcclxuICAgIH1cclxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJyB8fCBldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBsZWZ0ICYgcmlnaHQgQnV0dG9uXHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dMZWZ0JyB8fCBldmVudC5rZXkgPT09ICdBcnJvd1JpZ2h0Jykge1xyXG4gICAgICBpZiAodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0IHx8IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBob21lIGJ1dHRvblxyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0hvbWUnKSB7XHJcbiAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGVuZCBidXR0b25cclxuICAgIGlmIChldmVudC5rZXkgPT09ICdFbmQnKSB7XHJcbiAgICAgIGlmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW0gfHwgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1hbSB8fCB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhhbSkge1xyXG4gICAgICAgIGlmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW0pIHtcclxuICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSA5O1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIHRoaXMuY3Vyc29yUG9zaXRpb24pO1xyXG4gICAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICdhdXRvJztcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1hbSkge1xyXG4gICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDY7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgdGhpcy5jdXJzb3JQb3NpdGlvbik7XHJcbiAgICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ2F1dG8nO1xyXG4gICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhhbSkge1xyXG4gICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDM7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgdGhpcy5jdXJzb3JQb3NpdGlvbik7XHJcbiAgICAgICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ2F1dG8nO1xyXG4gICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSB0aGlzLnRleHRWYWx1ZS5sZW5ndGg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBiYWNrc3BhY2UgQ29udHJvbFxyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScpIHtcclxuICAgICAgY29uc3QgaW5kMSA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCgwKTtcclxuICAgICAgY29uc3QgaW5kMiA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCgxKTtcclxuICAgICAgY29uc3QgaW5kMyA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCgyKTtcclxuICAgICAgY29uc3QgaW5kNCA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCgzKTtcclxuICAgICAgY29uc3QgaW5kNSA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCg0KTtcclxuICAgICAgY29uc3QgaW5kNiA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCg1KTtcclxuICAgICAgY29uc3QgaW5kNyA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCg2KTtcclxuICAgICAgY29uc3QgaW5kOCA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCg3KTtcclxuICAgICAgY29uc3QgaW5kOSA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCg4KTtcclxuICAgICAgY29uc3QgaW5kMTAgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoOSk7XHJcbiAgICAgIGlmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW0pIHtcclxuICAgICAgICBpZiAoaW5kMTAgPT09ICctJykge1xyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBpbmQxICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArIGluZDYgKyBpbmQ3ICsgaW5kOCArIGluZDkgKyBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmFtJyk7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgMCk7XHJcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAwO1xyXG4gICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbWFtKSB7XHJcbiAgICAgICAgaWYgKGluZDcgPT09ICctJykge1xyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBpbmQxICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArIGluZDYgKyBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmFtJyk7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgMCk7XHJcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAwO1xyXG4gICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhhbSkge1xyXG4gICAgICAgIGlmIChpbmQ0ID09PSAnLScpIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gaW5kMSArIGluZDIgKyBpbmQzICsgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hbScpO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDApO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gMDtcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMudGV4dFZhbHVlLmxlbmd0aCA8PSAwKSB7XHJcbiAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDA7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiAtPSAxO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW5kJykge1xyXG4gICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zc2FtIHx8IHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0gfHwgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoYW0pIHtcclxuICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICd0cmFuc3BhcmVudCc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAnYXV0byc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBsZXQgbmV3VmFsdWUgPSB0aGlzLnRleHRWYWx1ZTtcclxuXHJcbiAgICBjb25zdCBpbmQxID0gbmV3VmFsdWUuY2hhckF0KDApO1xyXG4gICAgY29uc3QgaW5kMiA9IG5ld1ZhbHVlLmNoYXJBdCgxKTtcclxuICAgIGNvbnN0IGluZDMgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoMik7XHJcbiAgICBjb25zdCBpbmQ0ID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDMpO1xyXG4gICAgY29uc3QgaW5kNSA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCg0KTtcclxuICAgIGNvbnN0IGluZDYgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoNSk7XHJcbiAgICBjb25zdCBpbmQ3ID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDYpO1xyXG4gICAgY29uc3QgaW5kOCA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCg3KTtcclxuICAgIGNvbnN0IGluZDkgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoOCk7XHJcbiAgICBjb25zdCBpbmQxMCA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCg5KTtcclxuICAgIGNvbnN0IGluZDExID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDEwKTtcclxuXHJcbiAgICAvLyB1cCBrZXlcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xyXG4gICAgICAvLyBob3VyXHJcbiAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uIDw9IDIpIHtcclxuICAgICAgICBjb25zdCBob3VyaW5kID0gaW5kMSArIGluZDI7XHJcbiAgICAgICAgY29uc3QgbmV3SG91ciA9ICtob3VyaW5kICsgMTtcclxuICAgICAgICBuZXdWYWx1ZSA9IG5ld0hvdXIudG9TdHJpbmcoKTtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzIHx8XHJcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbSB8fFxyXG4gICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoIHx8XHJcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW0gfHxcclxuICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0gfHxcclxuICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaGFtXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBpZiAoaG91cmluZCA9PT0gJy0tJykge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpbmQxICE9PSAnLScgJiYgaG91cmluZCA9PT0gaW5kMSArICctJykge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpbmQyICE9PSAnLScgJiYgaG91cmluZCA9PT0gJy0nICsgaW5kMikge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICgrbmV3VmFsdWUgPiAxMikge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwMSc7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKCtuZXdWYWx1ZSA8IDEwKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnICsgbmV3VmFsdWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChob3VyaW5kID09PSAnLS0nKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGluZDEgIT09ICctJyAmJiBob3VyaW5kID09PSBpbmQxICsgJy0nKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGluZDIgIT09ICctJyAmJiBob3VyaW5kID09PSAnLScgKyBpbmQyKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKCtuZXdWYWx1ZSA+IDIzKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAwJztcclxuICAgICAgICAgIH0gZWxzZSBpZiAoK25ld1ZhbHVlIDwgMTApIHtcclxuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMCcgKyBuZXdWYWx1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgYWZ0ZXJIb3VyaW5kID0gaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOSArIGluZDEwICsgaW5kMTE7XHJcbiAgICAgICAgY29uc3QgaG91ciA9IG5ld1ZhbHVlLnRvU3RyaW5nKCkgKyBhZnRlckhvdXJpbmQ7XHJcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBob3VyO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIG1pbnV0ZVxyXG4gICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+PSAzICYmIHRoaXMuY3Vyc29yUG9zaXRpb24gPD0gNSkge1xyXG4gICAgICAgIGNvbnN0IGhvdXJpbmQgPSBpbmQ0ICsgaW5kNTtcclxuICAgICAgICBjb25zdCBuZXdIb3VyID0gK2hvdXJpbmQgKyAxO1xyXG5cclxuICAgICAgICBuZXdWYWx1ZSA9IG5ld0hvdXIudG9TdHJpbmcoKTtcclxuICAgICAgICBpZiAoaG91cmluZCA9PT0gJy0tJykge1xyXG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpbmQ0ICE9PSAnLScgJiYgaG91cmluZCA9PT0gaW5kNCArICctJykge1xyXG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpbmQ1ICE9PSAnLScgJiYgaG91cmluZCA9PT0gJy0nICsgaW5kNSkge1xyXG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICgrbmV3VmFsdWUgPiA1OSkge1xyXG4gICAgICAgICAgbmV3VmFsdWUgPSAnMDAnO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoK25ld1ZhbHVlIDwgMTApIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnICsgbmV3VmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGJlZm9yZUhvdXJpbmQgPSBpbmQxICsgaW5kMiArIGluZDM7XHJcbiAgICAgICAgY29uc3QgYWZ0ZXJIb3VyaW5kID0gaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOSArIGluZDEwICsgaW5kMTE7XHJcbiAgICAgICAgY29uc3QgbWludXRlID0gYmVmb3JlSG91cmluZCArIG5ld1ZhbHVlLnRvU3RyaW5nKCkgKyBhZnRlckhvdXJpbmQ7XHJcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBtaW51dGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIHNlY29uZFxyXG4gICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+PSA2ICYmIHRoaXMuY3Vyc29yUG9zaXRpb24gPD0gOCkge1xyXG4gICAgICAgIGNvbnN0IHNlY29uZGluZCA9IGluZDcgKyBpbmQ4O1xyXG4gICAgICAgIGNvbnN0IG5ld1NlY29uZCA9ICtzZWNvbmRpbmQgKyAxO1xyXG5cclxuICAgICAgICBuZXdWYWx1ZSA9IG5ld1NlY29uZC50b1N0cmluZygpO1xyXG4gICAgICAgIGlmIChzZWNvbmRpbmQgPT09ICctLScpIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kNyAhPT0gJy0nICYmIHNlY29uZGluZCA9PT0gaW5kNyArICctJykge1xyXG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpbmQ4ICE9PSAnLScgJiYgc2Vjb25kaW5kID09PSAnLScgKyBpbmQ4KSB7XHJcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCtuZXdWYWx1ZSA+IDU5KSB7XHJcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwMCc7XHJcbiAgICAgICAgfSBlbHNlIGlmICgrbmV3VmFsdWUgPCAxMCkge1xyXG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCcgKyBuZXdWYWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgYmVmb3JlSG91cmluZCA9IGluZDEgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNjtcclxuICAgICAgICBjb25zdCBhZnRlckhvdXJpbmQgPSBpbmQ5ICsgaW5kMTAgKyBpbmQxMTtcclxuICAgICAgICBjb25zdCBzZWNvbmQgPSBiZWZvcmVIb3VyaW5kICsgbmV3VmFsdWUudG9TdHJpbmcoKSArIGFmdGVySG91cmluZDtcclxuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHNlY29uZDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gdHlwZSBhbS9QTVxyXG4gICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zc2FtKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPiA4KSB7XHJcbiAgICAgICAgICBsZXQgdHlwZWluZCA9IGluZDEwLnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICAgICAgY29uc3QgYmVmb3JlSG91cmluZCA9IGluZDEgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOTtcclxuICAgICAgICAgIGNvbnN0IGFmdGVySG91cmluZCA9IGluZDExO1xyXG5cclxuICAgICAgICAgIGlmIChpbmQxMCA9PT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJykpIHtcclxuICAgICAgICAgICAgdHlwZWluZCA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChpbmQxMCA9PT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hJykpIHtcclxuICAgICAgICAgICAgdHlwZWluZCA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucCcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBiZWZvcmVIb3VyaW5kICsgdHlwZWluZCArIGFmdGVySG91cmluZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0pIHtcclxuICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+PSA2KSB7XHJcbiAgICAgICAgICBsZXQgdHlwZWluZCA9IGluZDcudG9TdHJpbmcoKTtcclxuXHJcbiAgICAgICAgICBjb25zdCBiZWZvcmVIb3VyaW5kID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2O1xyXG4gICAgICAgICAgY29uc3QgYWZ0ZXJIb3VyaW5kID0gaW5kODtcclxuXHJcbiAgICAgICAgICBpZiAoaW5kNyA9PT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJykpIHtcclxuICAgICAgICAgICAgdHlwZWluZCA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChpbmQ3ID09PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmEnKSkge1xyXG4gICAgICAgICAgICB0eXBlaW5kID0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IGJlZm9yZUhvdXJpbmQgKyB0eXBlaW5kICsgYWZ0ZXJIb3VyaW5kO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoYW0pIHtcclxuICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+PSAzKSB7XHJcbiAgICAgICAgICBsZXQgdHlwZWluZDIgPSBpbmQ0LnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICAgICAgY29uc3QgYmVmb3JlSG91cmluZCA9IGluZDEgKyBpbmQyICsgaW5kMztcclxuICAgICAgICAgIGNvbnN0IGFmdGVySG91cmluZCA9IGluZDU7XHJcblxyXG4gICAgICAgICAgaWYgKGluZDQgPT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucCcpKSB7XHJcbiAgICAgICAgICAgIHR5cGVpbmQyID0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hJyk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGluZDQgPT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpKSB7XHJcbiAgICAgICAgICAgIHR5cGVpbmQyID0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IGJlZm9yZUhvdXJpbmQgKyB0eXBlaW5kMiArIGFmdGVySG91cmluZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBrZXkgZG93blxyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcclxuICAgICAgLy8gaG91clxyXG4gICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA8PSAyKSB7XHJcbiAgICAgICAgY29uc3QgaG91cmluZCA9IGluZDEgKyBpbmQyO1xyXG4gICAgICAgIGNvbnN0IG5ld0hvdXIgPSAraG91cmluZCAtIDE7XHJcblxyXG4gICAgICAgIG5ld1ZhbHVlID0gbmV3SG91ci50b1N0cmluZygpO1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3MgfHxcclxuICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tIHx8XHJcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGggfHxcclxuICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3NhbSB8fFxyXG4gICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1hbSB8fFxyXG4gICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoYW1cclxuICAgICAgICApIHtcclxuICAgICAgICAgIGlmIChob3VyaW5kID09PSAnLS0nKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGluZDEgIT09ICctJyAmJiBob3VyaW5kID09PSBpbmQxICsgJy0nKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGluZDIgIT09ICctJyAmJiBob3VyaW5kID09PSAnLScgKyBpbmQyKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKCtuZXdWYWx1ZSA8IDEpIHtcclxuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMTInO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICgrbmV3VmFsdWUgPCAxMCkge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJyArIG5ld1ZhbHVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoaG91cmluZCA9PT0gJy0tJykge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpbmQxICE9PSAnLScgJiYgaG91cmluZCA9PT0gaW5kMSArICctJykge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpbmQyICE9PSAnLScgJiYgaG91cmluZCA9PT0gJy0nICsgaW5kMikge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICgrbmV3VmFsdWUgPCAwKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzIzJztcclxuICAgICAgICAgIH0gZWxzZSBpZiAoK25ld1ZhbHVlIDwgMTApIHtcclxuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMCcgKyBuZXdWYWx1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgYWZ0ZXJIb3VySW5kZXggPSBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgaW5kNyArIGluZDggKyBpbmQ5ICsgaW5kMTAgKyBpbmQxMTtcclxuICAgICAgICBjb25zdCBob3VyID0gbmV3VmFsdWUudG9TdHJpbmcoKSArIGFmdGVySG91ckluZGV4O1xyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gaG91cjtcclxuICAgICAgfVxyXG4gICAgICAvLyBtaW51dGVcclxuICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPj0gMyAmJiB0aGlzLmN1cnNvclBvc2l0aW9uIDw9IDUpIHtcclxuICAgICAgICBjb25zdCBtaW51dGVpbmQgPSBpbmQ0ICsgaW5kNTtcclxuICAgICAgICBjb25zdCBuZXdNaW51dGUgPSArbWludXRlaW5kIC0gMTtcclxuXHJcbiAgICAgICAgbmV3VmFsdWUgPSBuZXdNaW51dGUudG9TdHJpbmcoKTtcclxuICAgICAgICBpZiAobWludXRlaW5kID09PSAnLS0nKSB7XHJcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGluZDQgIT09ICctJyAmJiBtaW51dGVpbmQgPT09IGluZDQgKyAnLScpIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kNSAhPT0gJy0nICYmIG1pbnV0ZWluZCA9PT0gJy0nICsgaW5kNSkge1xyXG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChtaW51dGVpbmQgPT09ICctLScpIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoK25ld1ZhbHVlIDwgMCkge1xyXG4gICAgICAgICAgbmV3VmFsdWUgPSAnNTknO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoK25ld1ZhbHVlIDwgMTApIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnICsgbmV3VmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGJlZm9yZU1pbnV0ZUluZGV4ID0gaW5kMSArIGluZDIgKyBpbmQzO1xyXG4gICAgICAgIGNvbnN0IGFmdGVyTWludXRlSW5kZXggPSBpbmQ2ICsgaW5kNyArIGluZDggKyBpbmQ5ICsgaW5kMTAgKyBpbmQxMTtcclxuICAgICAgICBjb25zdCBtaW51dGUgPSBiZWZvcmVNaW51dGVJbmRleCArIG5ld1ZhbHVlLnRvU3RyaW5nKCkgKyBhZnRlck1pbnV0ZUluZGV4O1xyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gbWludXRlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBzZWNvbmRcclxuICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPj0gNiAmJiB0aGlzLmN1cnNvclBvc2l0aW9uIDw9IDgpIHtcclxuICAgICAgICBjb25zdCBzZWNvbmRJbmRleCA9IGluZDcgKyBpbmQ4O1xyXG4gICAgICAgIGNvbnN0IG5ld1NlY29uZCA9ICtzZWNvbmRJbmRleCAtIDE7XHJcblxyXG4gICAgICAgIG5ld1ZhbHVlID0gbmV3U2Vjb25kLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgaWYgKHNlY29uZEluZGV4ID09PSAnLS0nKSB7XHJcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGluZDcgIT09ICctJyAmJiBzZWNvbmRJbmRleCA9PT0gaW5kNyArICctJykge1xyXG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpbmQ4ICE9PSAnLScgJiYgc2Vjb25kSW5kZXggPT09ICctJyArIGluZDgpIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoc2Vjb25kSW5kZXggPT09ICctLScpIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoK25ld1ZhbHVlIDwgMCkge1xyXG4gICAgICAgICAgbmV3VmFsdWUgPSAnNTknO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoK25ld1ZhbHVlIDwgMTApIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnICsgbmV3VmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGJlZm9yZXNlY29uZEluZGV4ID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2O1xyXG4gICAgICAgIGNvbnN0IGFmdGVyc2Vjb25kSW5kZXggPSBpbmQ5ICsgaW5kMTAgKyBpbmQxMTtcclxuICAgICAgICBjb25zdCBzZWNvbmQgPSBiZWZvcmVzZWNvbmRJbmRleCArIG5ld1ZhbHVlLnRvU3RyaW5nKCkgKyBhZnRlcnNlY29uZEluZGV4O1xyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gc2Vjb25kO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyB0eXBlXHJcbiAgICAgIGlmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW0pIHtcclxuICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+IDgpIHtcclxuICAgICAgICAgIGxldCB0eXBlaW5kID0gaW5kMTAudG9TdHJpbmcoKTtcclxuXHJcbiAgICAgICAgICBjb25zdCBiZWZvcmVIb3VyaW5kID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgaW5kNyArIGluZDggKyBpbmQ5O1xyXG4gICAgICAgICAgY29uc3QgYWZ0ZXJIb3VyaW5kID0gaW5kMTE7XHJcblxyXG4gICAgICAgICAgaWYgKGluZDEwID09PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLnAnKSkge1xyXG4gICAgICAgICAgICB0eXBlaW5kID0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hJyk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGluZDEwID09PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmEnKSkge1xyXG4gICAgICAgICAgICB0eXBlaW5kID0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IGJlZm9yZUhvdXJpbmQgKyB0eXBlaW5kICsgYWZ0ZXJIb3VyaW5kO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1hbSkge1xyXG4gICAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uID49IDYpIHtcclxuICAgICAgICAgIGxldCB0eXBlaW5kID0gaW5kNy50b1N0cmluZygpO1xyXG5cclxuICAgICAgICAgIGNvbnN0IGJlZm9yZUhvdXJpbmQgPSBpbmQxICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArIGluZDY7XHJcbiAgICAgICAgICBjb25zdCBhZnRlckhvdXJpbmQgPSBpbmQ4O1xyXG5cclxuICAgICAgICAgIGlmIChpbmQ3ID09PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLnAnKSkge1xyXG4gICAgICAgICAgICB0eXBlaW5kID0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hJyk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGluZDcgPT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpKSB7XHJcbiAgICAgICAgICAgIHR5cGVpbmQgPSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLnAnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gYmVmb3JlSG91cmluZCArIHR5cGVpbmQgKyBhZnRlckhvdXJpbmQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhhbSkge1xyXG4gICAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uID49IDMpIHtcclxuICAgICAgICAgIGxldCB0eXBlaW5kMiA9IGluZDQudG9TdHJpbmcoKTtcclxuXHJcbiAgICAgICAgICBjb25zdCBiZWZvcmVIb3VyaW5kID0gaW5kMSArIGluZDIgKyBpbmQzO1xyXG4gICAgICAgICAgY29uc3QgYWZ0ZXJIb3VyaW5kID0gaW5kNTtcclxuICAgICAgICAgIC8vVE8gRE8gdGhpcyBpcyB3cm9uZyBjaGVjayBpbmRleFxyXG4gICAgICAgICAgaWYgKGluZDQgPT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucCcpKSB7XHJcbiAgICAgICAgICAgIHR5cGVpbmQyID0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hJyk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGluZDQgPT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpKSB7XHJcbiAgICAgICAgICAgIHR5cGVpbmQyID0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IGJlZm9yZUhvdXJpbmQgKyB0eXBlaW5kMiArIGFmdGVySG91cmluZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICd0cmFuc3BhcmVudCc7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRGVsZXRlJykge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ2xpY2soZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgfHwgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID09PSAwKSB7XHJcbiAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkb0dldENhcmV0UG9zaXRpb24oY3RybCkge1xyXG4gICAgbGV0IENhcmV0UG9zID0gMDtcclxuICAgIGlmIChjdHJsLnNlbGVjdGlvblN0YXJ0IHx8IGN0cmwuc2VsZWN0aW9uU3RhcnQgPT09IDApIHtcclxuICAgICAgQ2FyZXRQb3MgPSBjdHJsLnNlbGVjdGlvblN0YXJ0O1xyXG4gICAgICByZXR1cm4gQ2FyZXRQb3M7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDYXJldFBvc2l0aW9uKGN0cmwsIHBvcykge1xyXG4gICAgaWYgKGN0cmwuc2V0U2VsZWN0aW9uUmFuZ2UpIHtcclxuICAgICAgY3RybC5mb2N1cygpO1xyXG4gICAgICBjdHJsLnNldFNlbGVjdGlvblJhbmdlKHBvcywgcG9zKTtcclxuICAgIH0gZWxzZSBpZiAoY3RybC5jcmVhdGVUZXh0UmFuZ2UpIHtcclxuICAgICAgY29uc3QgcmFuZ2UgPSBjdHJsLmNyZWF0ZVRleHRSYW5nZSgpO1xyXG4gICAgICByYW5nZS5jb2xsYXBzZSh0cnVlKTtcclxuICAgICAgcmFuZ2UubW92ZUVuZCgnY2hhcmFjdGVyJywgcG9zKTtcclxuICAgICAgcmFuZ2UubW92ZVN0YXJ0KCdjaGFyYWN0ZXInLCBwb3MpO1xyXG4gICAgICByYW5nZS5zZWxlY3QoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldENhcmV0KCkge1xyXG4gICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgdGhpcy5jdXJzb3JQb3NpdGlvbik7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
977
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFjb3JleC9jb21wb25lbnRzLyIsInNvdXJjZXMiOlsibGliL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUNULHVCQUF1QixFQUN2QixZQUFZLEVBQ1osTUFBTSxFQUNOLFlBQVksRUFFYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU1QztJQUFBO0lBTUEsQ0FBQztJQUFELG1DQUFDO0FBQUQsQ0FBQyxBQU5ELElBTUM7O0FBQ0Q7SUFBOEMsNENBQTBDO0lBQXhGOztJQUEyRixDQUFDO0lBQUQsK0JBQUM7QUFBRCxDQUFDLEFBQTVGLENBQThDLFlBQVksR0FBa0M7O0FBUzVGO0lBQTJDLHlDQUFtQjtJQXdPNUQsK0JBQXNCLEdBQXNCLEVBQUUsR0FBZTtRQUE3RCxZQUNFLGtCQUFNLEdBQUcsRUFBRSxHQUFHLENBQUMsU0FHaEI7UUFKcUIsU0FBRyxHQUFILEdBQUcsQ0FBbUI7UUF0TzVDLG9CQUFjLEdBQTJDLElBQUksWUFBWSxFQUE0QixDQUFDO1FBU3RHLFVBQUksR0FBVyxNQUFNLENBQUM7UUFFdEIsb0JBQWMsR0FBWSxLQUFLLENBQUM7UUFFaEMsbUJBQWEsR0FBWSxJQUFJLENBQUM7UUFDOUIsWUFBTSxHQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FB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LElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ2xILElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDO2FBQzNEO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO2FBQ3BEO1NBQ0Y7UUFFRCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBRTlCLElBQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEMsSUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFD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a0NBQ08sWUFBWTtpRUFBMEU7SUFPdEc7UUFEQyxLQUFLLEVBQUU7OzJEQUNNO0lBSWQ7UUFEQyxLQUFLLEVBQUU7O2lFQUN3QjtJQWJyQixxQkFBcUI7UUFQakMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQix5bURBQTJDO1lBQzNDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1lBQy9DLElBQUksRUFBRSxFQUFJO1lBQ1YsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLHVCQUFxQixFQUFFLENBQUM7U0FDckYsQ0FBQzt5Q0F5TzJCLGlCQUFpQixFQUFPLFVBQVU7T0F4T2xELHFCQUFxQixDQXc4QmpDO0lBQUQsNEJBQUM7Q0FBQSxBQXg4QkQsQ0FBMkMsbUJBQW1CLEdBdzhCN0Q7U0F4OEJZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBFbGVtZW50UmVmLFxyXG4gIElucHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgT3V0cHV0LFxyXG4gIENvbnRlbnRDaGlsZFxyXG5cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhCYXNlVGV4dENvbXBvbmVudCwgQVhWYWxpZGF0YWJsZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XHJcbmltcG9ydCB7IF8gfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XHJcbmltcG9ydCB7IEFYVmFsdWVFdmVudCB9IGZyb20gJy4uL2Jhc2UvZXZlbnRzLmNsYXNzJztcclxuaW1wb3J0IHsgQVhUcmFuc2xhdG9yIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBBWFRpbWVQaWNrZXJJdGVtQ2hhbmdlZEV2ZW50IHtcclxuICBtaW51dGU/OiBudW1iZXI7XHJcbiAgc2Vjb25kPzogbnVtYmVyO1xyXG4gIGhvdXI/OiBudW1iZXI7XHJcbiAgdGltZTogc3RyaW5nO1xyXG5cclxufVxyXG5leHBvcnQgY2xhc3MgQVhUaW1lUGlja2VyQ2hhbmdlZEV2ZW50IGV4dGVuZHMgQVhWYWx1ZUV2ZW50PEFYVGltZVBpY2tlckl0ZW1DaGFuZ2VkRXZlbnQ+IHsgfVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC10aW1lLXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBob3N0OiB7ICB9LFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhWYWxpZGF0YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYVGltZVBpY2tlckNvbXBvbmVudCB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhUaW1lUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlVGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQE91dHB1dCgpXHJcbiAgb25WYWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWFRpbWVQaWNrZXJDaGFuZ2VkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFRpbWVQaWNrZXJDaGFuZ2VkRXZlbnQ+KCk7XHJcblxyXG4gIC8vIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSlcclxuICAvLyBAQ29udGVudENoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgLy8gaW5wdXQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdGltZVR5cGU6IGFueTtcclxuXHJcbiAgdHlwZTogc3RyaW5nID0gJ0hIbW0nO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd0N1cmVudFRpbWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY2xlYXJEaXNhYmxlZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgSEhtbXNzOiBhbnkgPSBbL1swLTJdLywgL1swLTldLywgJzonLCAvWzAtNV0vLCAvWzAtOV0vLCAnOicsIC9bMC01XS8sIC9bMC05XS9dO1xyXG4gIEhIbW06IGFueSA9IFsvWzAtMl0vLCAvWzAtOV0vLCAnOicsIC9bMC01XS8sIC9bMC05XS9dO1xyXG4gIEhIOiBhbnkgPSBbL1swLTJdLywgL1swLTldL107XHJcbiAgaGhtbXNzOiBhbnkgPSBbL1swLTFdLywgL1swLTldLywgJzonLCAvWzAtNV0vLCAvWzAtOV0vLCAnOicsIC9bMC01XS8sIC9bMC05XS9dO1xyXG4gIGhobW06IGFueSA9IFsvWzAtMV0vLCAvWzAtOV0vLCAnOicsIC9bMC01XS8sIC9bMC05XS9dO1xyXG4gIGhoOiBhbnkgPSBbL1swLTFdLywgL1swLTldL107XHJcbiAgLy8gVE9ETzogYXBwbHkgYW0gcG0gZnJvbSBsb2NhbGVcclxuICBoaG1tc3NhbTogYW55ID0gWy9bMC0xXS8sIC9bMC05XS8sICc6JywgL1swLTVdLywgL1swLTldLywgJzonLCAvWzAtNV0vLCAvWzAtOV0vLCAnICcsIC9bYXxwfNmCfNioXS8sIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUubScpXTtcclxuICBoaG1tYW06IGFueSA9IFsvWzAtMV0vLCAvWzAtOV0vLCAnOicsIC9bMC01XS8sIC9bMC05XS8sICcgJywgL1thfHB82YJ82KhdLywgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5tJyldO1xyXG4gIGhoYW06IGFueSA9IFsvWzAtMV0vLCAvWzAtOV0vLCAnICcsIC9bYXxwfNmCfNioXS8sIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUubScpXTtcclxuICB0ZXh0VmFsdWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICB2YWx1ZUhhbTogc3RyaW5nID0gJy0tICcgKyBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmFtJyk7XHJcbiAgdmFsdWVNYW06IHN0cmluZyA9ICctLTotLSAnICsgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hbScpO1xyXG4gIHZhbHVlU2FtOiBzdHJpbmcgPSAnLS06LS06LS0gJyArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYW0nKTtcclxuXHJcblxyXG4gIHByaXZhdGUgX3ZhbHVlczogc3RyaW5nO1xyXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZXM7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgdmFsdWUodjogc3RyaW5nKSB7XHJcbiAgICBpZiAodiA9PT0gJycgfHwgdiA9PSBudWxsIHx8IHYgPT09ICctLTotLTotLScgfHwgdiA9PT0gJy0tOi0tJyB8fCB2ID09PSAnLS0nIHx8IHYgPT09IHRoaXMudmFsdWVTYW0gfHwgdiA9PT0gdGhpcy52YWx1ZU1hbSB8fCB2ID09PSB0aGlzLnZhbHVlSGFtKSB7XHJcbiAgICAgIHRoaXMuY2xlYXJEaXNhYmxlZCA9IGZhbHNlO1xyXG5cclxuICAgICAgY29uc3Qgb2xkID0gdGhpcy5fdmFsdWVzO1xyXG4gICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ0hIbW1zcyc6XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICctLTotLTotLSc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdISG1tJzpcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tOi0tJztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ0hIJzpcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tJztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2hobW1zcyc6XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICctLTotLTotLSc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdoaG1tJzpcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tOi0tJztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2hoJzpcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tJztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2hobW1zc2FtJzpcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZVNhbTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2hobW1hbSc6XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWVNYW07XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdoaGFtJzpcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZUhhbTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLl92YWx1ZXMgPSBudWxsO1xyXG4gICAgICBpZiAodiAhPT0gb2xkKSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZWQuZW1pdCh7XHJcbiAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgICB2YWx1ZTogeyBob3VyOiBudWxsLCBtaW51dGU6IG51bGwsIHNlY29uZDogbnVsbCwgdGltZTogbnVsbCB9LFxyXG4gICAgICAgICAgb2xkVmFsdWU6IHsgdGltZTogb2xkIH0sXHJcbiAgICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNsZWFyRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICBpZiAodGhpcy5fdmFsdWVzICYmIHYpIHtcclxuICAgICAgICBjb25zdCBvbGQgPSB0aGlzLl92YWx1ZXM7XHJcbiAgICAgICAgY29uc3QgaW5kMSA9IHYuY2hhckF0KDApO1xyXG4gICAgICAgIGNvbnN0IGluZDIgPSB2LmNoYXJBdCgxKTtcclxuICAgICAgICBjb25zdCBpbmQzID0gdi5jaGFyQXQoMik7XHJcbiAgICAgICAgY29uc3QgaW5kNCA9IHYuY2hhckF0KDMpO1xyXG4gICAgICAgIGNvbnN0IGluZDUgPSB2LmNoYXJBdCg0KTtcclxuICAgICAgICBjb25zdCBpbmQ2ID0gdi5jaGFyQXQoNSk7XHJcbiAgICAgICAgY29uc3QgaW5kNyA9IHYuY2hhckF0KDYpO1xyXG4gICAgICAgIGNvbnN0IGluZDggPSB2LmNoYXJBdCg3KTtcclxuICAgICAgICBjb25zdCBpbmQ5ID0gdi5jaGFyQXQoOCk7XHJcbiAgICAgICAgY29uc3QgaW5kMTAgPSB2LmNoYXJBdCg5KTtcclxuXHJcbiAgICAgICAgY29uc3QgaW5kT2xkNCA9IG9sZC5jaGFyQXQoOSk7XHJcbiAgICAgICAgY29uc3QgaW5kT2xkNyA9IG9sZC5jaGFyQXQoOSk7XHJcbiAgICAgICAgY29uc3QgaW5kT2xkMTAgPSBvbGQuY2hhckF0KDkpO1xyXG5cclxuICAgICAgICAvLyBoYW5kbGUgaGhtbXNzQW1cclxuICAgICAgICBpZiAoaW5kMSA9PT0gJy0nICYmIGluZDIgIT09ICctJyAmJiB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW0pIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJzAnICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArIGluZDYgKyBpbmQ3ICsgaW5kOCArIGluZDkgKyBpbmQxMCArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUubScpO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDIpO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gMjtcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kNCA9PT0gJy0nICYmIGluZDUgIT09ICctJyAmJiB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW0pIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gaW5kMSArIGluZDIgKyBpbmQzICsgJzAnICsgaW5kNSArIGluZDYgKyBpbmQ3ICsgaW5kOCArIGluZDkgKyBpbmQxMCArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUubScpO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDUpO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gNTtcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kNyA9PT0gJy0nICYmIGluZDggIT09ICctJyAmJiB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW0pIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgJzAnICsgaW5kOCArIGluZDkgKyBpbmQxMCArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUubScpO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDgpO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gODtcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kT2xkMTAgPT09ICctJyAmJiB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW0pIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgaW5kNyArIGluZDggKyBpbmQ5ICsgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hbScpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy9cclxuICAgICAgICBpZiAoaW5kMSA9PT0gJy0nICYmIGluZDIgIT09ICctJyAmJiB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbWFtKSB7XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICcwJyArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgaW5kNyArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUubScpO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDIpO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gMjtcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kNCA9PT0gJy0nICYmIGluZDUgIT09ICctJyAmJiB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbWFtKSB7XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IGluZDEgKyBpbmQyICsgaW5kMyArICcwJyArIGluZDUgKyBpbmQ2ICsgaW5kNyArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUubScpO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDUpO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gNTtcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kT2xkNyA9PT0gJy0nICYmIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0pIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hbScpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy9cclxuICAgICAgICBpZiAoaW5kMSA9PT0gJy0nICYmIGluZDIgIT09ICctJyAmJiB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhhbSkge1xyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSAnMCcgKyBpbmQyICsgaW5kMyArIGluZDQgKyBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLm0nKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCAyKTtcclxuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDI7XHJcbiAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGluZE9sZDQgPT09ICctJyAmJiB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhhbSkge1xyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBpbmQxICsgaW5kMiArIGluZDMgKyBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmFtJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL1xyXG4gICAgICAgIGlmIChpbmQxID09PSAnLScgJiYgaW5kMiAhPT0gJy0nICYmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzIHx8IHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5ISG1tc3MpKSB7XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICcwJyArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgaW5kNyArIGluZDg7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgMik7XHJcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAyO1xyXG4gICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpbmQ0ID09PSAnLScgJiYgaW5kNSAhPT0gJy0nICYmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzIHx8IHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5ISG1tc3MpKSB7XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IGluZDEgKyBpbmQyICsgaW5kMyArICcwJyArIGluZDUgKyBpbmQ2ICsgaW5kNyArIGluZDg7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgNik7XHJcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSA2O1xyXG4gICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpbmQ3ID09PSAnLScgJiYgaW5kOCAhPT0gJy0nICYmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzIHx8IHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5ISG1tc3MpKSB7XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IGluZDEgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNiArICcwJyArIGluZDg7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRDYXJldFBvc2l0aW9uKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgOSk7XHJcbiAgICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSA5O1xyXG4gICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvL1xyXG4gICAgICAgIGlmIChpbmQxID09PSAnLScgJiYgaW5kMiAhPT0gJy0nICYmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbSB8fCB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuSEhtbSkpIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJzAnICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCAyKTtcclxuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDI7XHJcbiAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGluZDQgPT09ICctJyAmJiBpbmQ1ICE9PSAnLScgJiYgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tIHx8IHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5ISG1tKSkge1xyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBpbmQxICsgaW5kMiArIGluZDMgKyAnMCcgKyBpbmQ1O1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDUpO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gNTtcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy9cclxuICAgICAgICBpZiAoaW5kMSA9PT0gJy0nICYmIGluZDIgIT09ICctJyAmJiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoIHx8IHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5ISCkpIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJzAnICsgaW5kMjtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCAyKTtcclxuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDI7XHJcbiAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHYgIT09IHRoaXMuX3ZhbHVlcykge1xyXG4gICAgICAgIGNvbnN0IG9sZCA9IHRoaXMuX3ZhbHVlcztcclxuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHY7XHJcbiAgICAgICAgdGhpcy5fdmFsdWVzID0gKHYgJiYgdi5pbmRleE9mKCctJykgPT09IC0xKSA/IHYgOiBudWxsO1xyXG4gICAgICAgIGlmICh2LmluZGV4T2YoJy0nKSA9PT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2KTtcclxuICAgICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZWQuZW1pdCh7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICAgICAgdmFsdWU6IHtcclxuICAgICAgICAgICAgICB0aW1lOiB2LFxyXG4gICAgICAgICAgICAgIGhvdXI6IE51bWJlcih2WzBdICsgdlsxXSksXHJcbiAgICAgICAgICAgICAgbWludXRlOiB2WzNdICYmIHZbM10gIT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpICYmIHZbM10gIT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucCcpID8gTnVtYmVyKHZbM10gKyB2WzRdKSA6IG51bGwsXHJcbiAgICAgICAgICAgICAgc2Vjb25kOiB2WzZdICYmIHZbNl0gIT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpICYmIHZbNl0gIT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucCcpID8gTnVtYmVyKHZbNl0gKyB2WzddKSA6IG51bGxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb2xkVmFsdWU6IHsgdGltZTogb2xkIH0sXHJcbiAgICAgICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgIHRoaXMuY2xlYXJWYWxpZGF0aW9uU3R5bGUodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGN1cnNvclBvc2l0aW9uOiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgICBzdXBlcihjZHIsIHJlZik7XHJcbiAgICBcclxuICAgIHRoaXMudGltZVR5cGUgPSAnSEhtbSc7XHJcbiAgfVxyXG4gIGNsZWFyVmFsdWUoKSB7XHJcbiAgICB0aGlzLmNsZWFyKCk7XHJcbiAgICB0aGlzLmhhbmRsZUlucHV0Rm9jdXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3dpdGNoICh0aGlzLnRpbWVUeXBlKSB7XHJcbiAgICAgIGNhc2UgJ0hIbW1zcyc6XHJcbiAgICAgICAgdGhpcy50eXBlID0gJ0hIbW1zcyc7XHJcbiAgICAgICAgdGhpcy50aW1lVHlwZSA9IHtcclxuICAgICAgICAgIGd1aWRlOiB0cnVlLFxyXG4gICAgICAgICAgc2hvd01hc2s6IHRydWUsXHJcbiAgICAgICAgICBtYXNrOiB0aGlzLkhIbW1zcyxcclxuICAgICAgICAgIGtlZXBDaGFyUG9zaXRpb25zOiB0cnVlLFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnLSdcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiAnLS06LS06LS0nO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdISG1tJzpcclxuICAgICAgICB0aGlzLnR5cGUgPSAnSEhtbSc7XHJcbiAgICAgICAgdGhpcy50aW1lVHlwZSA9IHtcclxuICAgICAgICAgIGd1aWRlOiB0cnVlLFxyXG4gICAgICAgICAgc2hvd01hc2s6IHRydWUsXHJcbiAgICAgICAgICBtYXNrOiB0aGlzLkhIbW0sXHJcbiAgICAgICAgICBrZWVwQ2hhclBvc2l0aW9uczogdHJ1ZSxcclxuICAgICAgICAgIHBsYWNlaG9sZGVyQ2hhcjogJy0nXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogJy0tOi0tJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnSEgnOlxyXG4gICAgICAgIHRoaXMudHlwZSA9ICdISCc7XHJcbiAgICAgICAgdGhpcy50aW1lVHlwZSA9IHtcclxuICAgICAgICAgIGd1aWRlOiB0cnVlLFxyXG4gICAgICAgICAgc2hvd01hc2s6IHRydWUsXHJcbiAgICAgICAgICBtYXNrOiB0aGlzLkhILFxyXG4gICAgICAgICAga2VlcENoYXJQb3NpdGlvbnM6IHRydWUsXHJcbiAgICAgICAgICBwbGFjZWhvbGRlckNoYXI6ICctJ1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZSA6ICctLSc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2hobW1zcyc6XHJcbiAgICAgICAgdGhpcy50eXBlID0gJ2hobW1zcyc7XHJcbiAgICAgICAgdGhpcy50aW1lVHlwZSA9IHtcclxuICAgICAgICAgIGd1aWRlOiB0cnVlLFxyXG4gICAgICAgICAgc2hvd01hc2s6IHRydWUsXHJcbiAgICAgICAgICBtYXNrOiB0aGlzLmhobW1zcyxcclxuICAgICAgICAgIGtlZXBDaGFyUG9zaXRpb25zOiB0cnVlLFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnLSdcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiAnLS06LS06LS0nO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdoaG1tJzpcclxuICAgICAgICB0aGlzLnR5cGUgPSAnaGhtbSc7XHJcbiAgICAgICAgdGhpcy50aW1lVHlwZSA9IHtcclxuICAgICAgICAgIGd1aWRlOiB0cnVlLFxyXG4gICAgICAgICAgc2hvd01hc2s6IHRydWUsXHJcbiAgICAgICAgICBtYXNrOiB0aGlzLmhobW0sXHJcbiAgICAgICAgICBrZWVwQ2hhclBvc2l0aW9uczogdHJ1ZSxcclxuICAgICAgICAgIHBsYWNlaG9sZGVyQ2hhcjogJy0nXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogJy0tOi0tJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnaGgnOlxyXG4gICAgICAgIHRoaXMudHlwZSA9ICdoaCc7XHJcblxyXG4gICAgICAgIHRoaXMudGltZVR5cGUgPSB7XHJcbiAgICAgICAgICBndWlkZTogdHJ1ZSxcclxuICAgICAgICAgIHNob3dNYXNrOiB0cnVlLFxyXG4gICAgICAgICAgbWFzazogdGhpcy5oaCxcclxuICAgICAgICAgIGtlZXBDaGFyUG9zaXRpb25zOiB0cnVlLFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXJDaGFyOiAnLSdcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiAnLS0nO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdoaG1tc3NhbSc6XHJcbiAgICAgICAgdGhpcy50eXBlID0gJ2hobW1zc2FtJztcclxuXHJcbiAgICAgICAgdGhpcy50aW1lVHlwZSA9IHtcclxuICAgICAgICAgIGd1aWRlOiB0cnVlLFxyXG4gICAgICAgICAgc2hvd01hc2s6IHRydWUsXHJcbiAgICAgICAgICBtYXNrOiB0aGlzLmhobW1zc2FtLFxyXG4gICAgICAgICAga2VlcENoYXJQb3NpdGlvbnM6IHRydWUsXHJcbiAgICAgICAgICBwbGFjZWhvbGRlckNoYXI6ICctJ1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZSA6IHRoaXMudmFsdWVTYW07XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2hobW1hbSc6XHJcbiAgICAgICAgdGhpcy50eXBlID0gJ2hobW1hbSc7XHJcblxyXG4gICAgICAgIHRoaXMudGltZVR5cGUgPSB7XHJcbiAgICAgICAgICBndWlkZTogdHJ1ZSxcclxuICAgICAgICAgIHNob3dNYXNrOiB0cnVlLFxyXG4gICAgICAgICAgbWFzazogdGhpcy5oaG1tYW0sXHJcbiAgICAgICAgICBrZWVwQ2hhclBvc2l0aW9uczogdHJ1ZSxcclxuICAgICAgICAgIHBsYWNlaG9sZGVyQ2hhcjogJy0nXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogdGhpcy52YWx1ZU1hbTtcclxuXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2hoYW0nOlxyXG4gICAgICAgIHRoaXMudHlwZSA9ICdoaGFtJztcclxuXHJcbiAgICAgICAgdGhpcy50aW1lVHlwZSA9IHtcclxuICAgICAgICAgIGd1aWRlOiB0cnVlLFxyXG4gICAgICAgICAgc2hvd01hc2s6IHRydWUsXHJcbiAgICAgICAgICBtYXNrOiB0aGlzLmhoYW0sXHJcbiAgICAgICAgICBrZWVwQ2hhclBvc2l0aW9uczogdHJ1ZSxcclxuICAgICAgICAgIHBsYWNlaG9sZGVyQ2hhcjogJy0nXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogdGhpcy52YWx1ZUhhbTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLnR5cGUgPSAnSEhtbSc7XHJcbiAgICAgICAgdGhpcy50aW1lVHlwZSA9IHtcclxuICAgICAgICAgIGd1aWRlOiB0cnVlLFxyXG4gICAgICAgICAgc2hvd01hc2s6IHRydWUsXHJcbiAgICAgICAgICBtYXNrOiB0aGlzLkhIbW0sXHJcbiAgICAgICAgICBrZWVwQ2hhclBvc2l0aW9uczogdHJ1ZSxcclxuICAgICAgICAgIHBsYWNlaG9sZGVyQ2hhcjogJy0nXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogJy0tOi0tJztcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zaG93Q3VyZW50VGltZSA9PT0gdHJ1ZSkge1xyXG4gICAgICBjb25zdCBob3VyID0gbmV3IERhdGUoKS5nZXRIb3VycygpID4gMTAgPyBuZXcgRGF0ZSgpLmdldEhvdXJzKCkgOiAnMCcgKyBuZXcgRGF0ZSgpLmdldEhvdXJzKCk7XHJcbiAgICAgIGxldCBhbUhvdXI6IGFueTtcclxuXHJcbiAgICAgIGlmIChuZXcgRGF0ZSgpLmdldEhvdXJzKCkgPiAxMCkge1xyXG4gICAgICAgIGlmIChuZXcgRGF0ZSgpLmdldEhvdXJzKCkgPiAxMikge1xyXG4gICAgICAgICAgaWYgKG5ldyBEYXRlKCkuZ2V0SG91cnMoKSAtIDEyIDwgMTApIHtcclxuICAgICAgICAgICAgYW1Ib3VyID0gJzAnICsgKG5ldyBEYXRlKCkuZ2V0SG91cnMoKSAtIDEyKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGFtSG91ciA9IG5ldyBEYXRlKCkuZ2V0SG91cnMoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgYW1Ib3VyID0gbmV3IERhdGUoKS5nZXRIb3VycygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBhbUhvdXIgPSAnMCcgKyBuZXcgRGF0ZSgpLmdldEhvdXJzKCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IG1pbiA9IG5ldyBEYXRlKCkuZ2V0TWludXRlcygpID4gOSA/IG5ldyBEYXRlKCkuZ2V0TWludXRlcygpIDogJzAnICsgbmV3IERhdGUoKS5nZXRNaW51dGVzKCk7XHJcbiAgICAgIGNvbnN0IHNlYyA9IG5ldyBEYXRlKCkuZ2V0U2Vjb25kcygpID4gOSA/IG5ldyBEYXRlKCkuZ2V0U2Vjb25kcygpIDogJzAnICsgbmV3IERhdGUoKS5nZXRTZWNvbmRzKCk7XHJcbiAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdoaCcgfHwgdGhpcy50eXBlID09PSAnaGhtbScgfHwgdGhpcy50eXBlID09PSAnaGhtbXNzJyB8fCB0aGlzLnR5cGUgPT09ICdoaG1tc3NhbScpIHtcclxuICAgICAgICBpZiAoaG91ciA+PSAxMikge1xyXG4gICAgICAgICAgdGhpcy52YWx1ZSA9IGFtSG91ciArICc6JyArIG1pbiArICc6JyArIHNlYyArICcgJyArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucG0nKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy52YWx1ZSA9IGFtSG91ciArICc6JyArIG1pbiArICc6JyArIHNlYyArICcgJyArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYW0nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnaGhhbScpIHtcclxuICAgICAgICBpZiAoaG91ciA+PSAxMikge1xyXG4gICAgICAgICAgdGhpcy52YWx1ZSA9IGFtSG91ciArICcgJyArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucG0nKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy52YWx1ZSA9IGFtSG91ciArICcgJyArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYW0nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnaGhtbWFtJykge1xyXG4gICAgICAgIGlmIChob3VyID49IDEyKSB7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlID0gYW1Ib3VyICsgJzonICsgbWluICsgJyAnICsgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wbScpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnZhbHVlID0gYW1Ib3VyICsgJzonICsgbWluICsgJyAnICsgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hbScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gaG91ciArICc6JyArIG1pbiArICc6JyArIHNlYztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TdGFydGZvY3VzKCkge1xyXG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAndHJhbnNwYXJlbnQnO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDApO1xyXG4gICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gMDtcclxuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAnYXV0byc7XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUlucHV0Rm9jdXMoKSB7XHJcbiAgICB0aGlzLm9uU3RhcnRmb2N1cygpO1xyXG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgfVxyXG4gIGhhbmRsZUlucHV0Qmx1cihlKSB7XHJcbiAgICBpZiAodGhpcy50ZXh0VmFsdWUuaW5kZXhPZignLScpICE9PSAtMSkge1xyXG4gICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ0hIbW1zcyc6XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICctLTotLTotLSc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdISG1tJzpcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tOi0tJztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ0hIJzpcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tJztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2hobW1zcyc6XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9ICctLTotLTotLSc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdoaG1tJzpcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tOi0tJztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2hoJzpcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gJy0tJztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2hobW1zc2FtJzpcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZVNhbTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2hobW1hbSc6XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHRoaXMudmFsdWVNYW07XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdoaGFtJzpcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gdGhpcy52YWx1ZUhhbTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVLZXlQcmVzcyhldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBpbnB1dENoYXIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGV2ZW50LmNoYXJDb2RlKTtcclxuICAgIGNvbnN0IGZpcnN0Q2hhciA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCgwKTtcclxuICAgIGNvbnN0IHNlY29uZENoYXIgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoMSk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgfHwgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydDtcclxuICAgICAgICAvLyB0aGlzLmN1cnNvclBvc2l0aW9uICs9IDEgO1xyXG4gICAgICB9XHJcbiAgICB9LCAwKTtcclxuXHJcbiAgICBpZiAoZmlyc3RDaGFyID09PSAnMicpIHtcclxuICAgICAgaWYgKHNlY29uZENoYXIgPT09ICcnIHx8IHRoaXMudGV4dFZhbHVlLmNoYXJBdCgxKSA+PSAnNCcgfHwgdGhpcy5jdXJzb3JQb3NpdGlvbiA8IDMpIHtcclxuICAgICAgICBpZiAoaW5wdXRDaGFyID49ICc0Jykge1xyXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zcyB8fFxyXG4gICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbSB8fFxyXG4gICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGggfHxcclxuICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zc2FtIHx8XHJcbiAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0gfHxcclxuICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoYW1cclxuICAgICkge1xyXG4gICAgICBpZiAoZmlyc3RDaGFyID09PSAnMScpIHtcclxuICAgICAgICBpZiAoc2Vjb25kQ2hhciA9PT0gJycgfHwgdGhpcy50ZXh0VmFsdWUuY2hhckF0KDEpID49ICczJyB8fCB0aGlzLmN1cnNvclBvc2l0aW9uIDwgMykge1xyXG4gICAgICAgICAgaWYgKGlucHV0Q2hhciA+PSAnMycpIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChpbnB1dENoYXIgPT09ICctJykge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJyB8fCBldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ2F1dG8nO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICAgIC8vIHVwICYgZG93biBidXR0b25cclxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xyXG4gICAgICB0aGlzLnNldENhcmV0KCk7XHJcbiAgICB9XHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICB0aGlzLnNldENhcmV0KCk7XHJcbiAgICB9XHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gbGVmdCAmIHJpZ2h0IEJ1dHRvblxyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93TGVmdCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dSaWdodCcpIHtcclxuICAgICAgaWYgKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCB8fCB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPT09IDApIHtcclxuICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gaG9tZSBidXR0b25cclxuICAgIGlmIChldmVudC5rZXkgPT09ICdIb21lJykge1xyXG4gICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gMDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBlbmQgYnV0dG9uXHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW5kJykge1xyXG4gICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zc2FtIHx8IHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0gfHwgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoYW0pIHtcclxuICAgICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zc2FtKSB7XHJcbiAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gOTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCB0aGlzLmN1cnNvclBvc2l0aW9uKTtcclxuICAgICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAnYXV0byc7XHJcbiAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0pIHtcclxuICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSA2O1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIHRoaXMuY3Vyc29yUG9zaXRpb24pO1xyXG4gICAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICdhdXRvJztcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoYW0pIHtcclxuICAgICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAzO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIHRoaXMuY3Vyc29yUG9zaXRpb24pO1xyXG4gICAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuY2FyZXRDb2xvciA9ICdhdXRvJztcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gdGhpcy50ZXh0VmFsdWUubGVuZ3RoO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gYmFja3NwYWNlIENvbnRyb2xcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnKSB7XHJcbiAgICAgIGNvbnN0IGluZDEgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoMCk7XHJcbiAgICAgIGNvbnN0IGluZDIgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoMSk7XHJcbiAgICAgIGNvbnN0IGluZDMgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoMik7XHJcbiAgICAgIGNvbnN0IGluZDQgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoMyk7XHJcbiAgICAgIGNvbnN0IGluZDUgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoNCk7XHJcbiAgICAgIGNvbnN0IGluZDYgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoNSk7XHJcbiAgICAgIGNvbnN0IGluZDcgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoNik7XHJcbiAgICAgIGNvbnN0IGluZDggPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoNyk7XHJcbiAgICAgIGNvbnN0IGluZDkgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoOCk7XHJcbiAgICAgIGNvbnN0IGluZDEwID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDkpO1xyXG4gICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zc2FtKSB7XHJcbiAgICAgICAgaWYgKGluZDEwID09PSAnLScpIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgaW5kNyArIGluZDggKyBpbmQ5ICsgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hbScpO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDApO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gMDtcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1hbSkge1xyXG4gICAgICAgIGlmIChpbmQ3ID09PSAnLScpIHtcclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2ICsgQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hbScpO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIDApO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gMDtcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoYW0pIHtcclxuICAgICAgICBpZiAoaW5kNCA9PT0gJy0nKSB7XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IGluZDEgKyBpbmQyICsgaW5kMyArIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYW0nKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldENhcmV0UG9zaXRpb24odGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LCAwKTtcclxuICAgICAgICAgICAgdGhpcy5jdXJzb3JQb3NpdGlvbiA9IDA7XHJcbiAgICAgICAgICB9LCAwKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLnRleHRWYWx1ZS5sZW5ndGggPD0gMCkge1xyXG4gICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gPSAwO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY3Vyc29yUG9zaXRpb24gLT0gMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VuZCcpIHtcclxuICAgICAgaWYgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3NhbSB8fCB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbWFtIHx8IHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaGFtKSB7XHJcbiAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAndHJhbnNwYXJlbnQnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zdHlsZS5jYXJldENvbG9yID0gJ2F1dG8nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IG5ld1ZhbHVlID0gdGhpcy50ZXh0VmFsdWU7XHJcblxyXG4gICAgY29uc3QgaW5kMSA9IG5ld1ZhbHVlLmNoYXJBdCgwKTtcclxuICAgIGNvbnN0IGluZDIgPSBuZXdWYWx1ZS5jaGFyQXQoMSk7XHJcbiAgICBjb25zdCBpbmQzID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDIpO1xyXG4gICAgY29uc3QgaW5kNCA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCgzKTtcclxuICAgIGNvbnN0IGluZDUgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoNCk7XHJcbiAgICBjb25zdCBpbmQ2ID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDUpO1xyXG4gICAgY29uc3QgaW5kNyA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCg2KTtcclxuICAgIGNvbnN0IGluZDggPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoNyk7XHJcbiAgICBjb25zdCBpbmQ5ID0gdGhpcy50ZXh0VmFsdWUuY2hhckF0KDgpO1xyXG4gICAgY29uc3QgaW5kMTAgPSB0aGlzLnRleHRWYWx1ZS5jaGFyQXQoOSk7XHJcbiAgICBjb25zdCBpbmQxMSA9IHRoaXMudGV4dFZhbHVlLmNoYXJBdCgxMCk7XHJcblxyXG4gICAgLy8gdXAga2V5XHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcclxuICAgICAgLy8gaG91clxyXG4gICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA8PSAyKSB7XHJcbiAgICAgICAgY29uc3QgaG91cmluZCA9IGluZDEgKyBpbmQyO1xyXG4gICAgICAgIGNvbnN0IG5ld0hvdXIgPSAraG91cmluZCArIDE7XHJcbiAgICAgICAgbmV3VmFsdWUgPSBuZXdIb3VyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zcyB8fFxyXG4gICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW0gfHxcclxuICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaCB8fFxyXG4gICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zc2FtIHx8XHJcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbWFtIHx8XHJcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhhbVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgaWYgKGhvdXJpbmQgPT09ICctLScpIHtcclxuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaW5kMSAhPT0gJy0nICYmIGhvdXJpbmQgPT09IGluZDEgKyAnLScpIHtcclxuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaW5kMiAhPT0gJy0nICYmIGhvdXJpbmQgPT09ICctJyArIGluZDIpIHtcclxuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoK25ld1ZhbHVlID4gMTIpIHtcclxuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMDEnO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICgrbmV3VmFsdWUgPCAxMCkge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJyArIG5ld1ZhbHVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoaG91cmluZCA9PT0gJy0tJykge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpbmQxICE9PSAnLScgJiYgaG91cmluZCA9PT0gaW5kMSArICctJykge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpbmQyICE9PSAnLScgJiYgaG91cmluZCA9PT0gJy0nICsgaW5kMikge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICgrbmV3VmFsdWUgPiAyMykge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwMCc7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKCtuZXdWYWx1ZSA8IDEwKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnICsgbmV3VmFsdWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGFmdGVySG91cmluZCA9IGluZDMgKyBpbmQ0ICsgaW5kNSArIGluZDYgKyBpbmQ3ICsgaW5kOCArIGluZDkgKyBpbmQxMCArIGluZDExO1xyXG4gICAgICAgIGNvbnN0IGhvdXIgPSBuZXdWYWx1ZS50b1N0cmluZygpICsgYWZ0ZXJIb3VyaW5kO1xyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gaG91cjtcclxuICAgICAgfVxyXG4gICAgICAvLyBtaW51dGVcclxuICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPj0gMyAmJiB0aGlzLmN1cnNvclBvc2l0aW9uIDw9IDUpIHtcclxuICAgICAgICBjb25zdCBob3VyaW5kID0gaW5kNCArIGluZDU7XHJcbiAgICAgICAgY29uc3QgbmV3SG91ciA9ICtob3VyaW5kICsgMTtcclxuXHJcbiAgICAgICAgbmV3VmFsdWUgPSBuZXdIb3VyLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgaWYgKGhvdXJpbmQgPT09ICctLScpIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kNCAhPT0gJy0nICYmIGhvdXJpbmQgPT09IGluZDQgKyAnLScpIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kNSAhPT0gJy0nICYmIGhvdXJpbmQgPT09ICctJyArIGluZDUpIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoK25ld1ZhbHVlID4gNTkpIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAwJztcclxuICAgICAgICB9IGVsc2UgaWYgKCtuZXdWYWx1ZSA8IDEwKSB7XHJcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJyArIG5ld1ZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBiZWZvcmVIb3VyaW5kID0gaW5kMSArIGluZDIgKyBpbmQzO1xyXG4gICAgICAgIGNvbnN0IGFmdGVySG91cmluZCA9IGluZDYgKyBpbmQ3ICsgaW5kOCArIGluZDkgKyBpbmQxMCArIGluZDExO1xyXG4gICAgICAgIGNvbnN0IG1pbnV0ZSA9IGJlZm9yZUhvdXJpbmQgKyBuZXdWYWx1ZS50b1N0cmluZygpICsgYWZ0ZXJIb3VyaW5kO1xyXG4gICAgICAgIHRoaXMudGV4dFZhbHVlID0gbWludXRlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBzZWNvbmRcclxuICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPj0gNiAmJiB0aGlzLmN1cnNvclBvc2l0aW9uIDw9IDgpIHtcclxuICAgICAgICBjb25zdCBzZWNvbmRpbmQgPSBpbmQ3ICsgaW5kODtcclxuICAgICAgICBjb25zdCBuZXdTZWNvbmQgPSArc2Vjb25kaW5kICsgMTtcclxuXHJcbiAgICAgICAgbmV3VmFsdWUgPSBuZXdTZWNvbmQudG9TdHJpbmcoKTtcclxuICAgICAgICBpZiAoc2Vjb25kaW5kID09PSAnLS0nKSB7XHJcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGluZDcgIT09ICctJyAmJiBzZWNvbmRpbmQgPT09IGluZDcgKyAnLScpIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kOCAhPT0gJy0nICYmIHNlY29uZGluZCA9PT0gJy0nICsgaW5kOCkge1xyXG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICgrbmV3VmFsdWUgPiA1OSkge1xyXG4gICAgICAgICAgbmV3VmFsdWUgPSAnMDAnO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoK25ld1ZhbHVlIDwgMTApIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnICsgbmV3VmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGJlZm9yZUhvdXJpbmQgPSBpbmQxICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArIGluZDY7XHJcbiAgICAgICAgY29uc3QgYWZ0ZXJIb3VyaW5kID0gaW5kOSArIGluZDEwICsgaW5kMTE7XHJcbiAgICAgICAgY29uc3Qgc2Vjb25kID0gYmVmb3JlSG91cmluZCArIG5ld1ZhbHVlLnRvU3RyaW5nKCkgKyBhZnRlckhvdXJpbmQ7XHJcbiAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBzZWNvbmQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIHR5cGUgYW0vUE1cclxuICAgICAgaWYgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tc3NhbSkge1xyXG4gICAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uID4gOCkge1xyXG4gICAgICAgICAgbGV0IHR5cGVpbmQgPSBpbmQxMC50b1N0cmluZygpO1xyXG5cclxuICAgICAgICAgIGNvbnN0IGJlZm9yZUhvdXJpbmQgPSBpbmQxICsgaW5kMiArIGluZDMgKyBpbmQ0ICsgaW5kNSArIGluZDYgKyBpbmQ3ICsgaW5kOCArIGluZDk7XHJcbiAgICAgICAgICBjb25zdCBhZnRlckhvdXJpbmQgPSBpbmQxMTtcclxuXHJcbiAgICAgICAgICBpZiAoaW5kMTAgPT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucCcpKSB7XHJcbiAgICAgICAgICAgIHR5cGVpbmQgPSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmEnKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoaW5kMTAgPT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpKSB7XHJcbiAgICAgICAgICAgIHR5cGVpbmQgPSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLnAnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMudGV4dFZhbHVlID0gYmVmb3JlSG91cmluZCArIHR5cGVpbmQgKyBhZnRlckhvdXJpbmQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbWFtKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPj0gNikge1xyXG4gICAgICAgICAgbGV0IHR5cGVpbmQgPSBpbmQ3LnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICAgICAgY29uc3QgYmVmb3JlSG91cmluZCA9IGluZDEgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNjtcclxuICAgICAgICAgIGNvbnN0IGFmdGVySG91cmluZCA9IGluZDg7XHJcblxyXG4gICAgICAgICAgaWYgKGluZDcgPT09IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucCcpKSB7XHJcbiAgICAgICAgICAgIHR5cGVpbmQgPSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmEnKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoaW5kNyA9PT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hJykpIHtcclxuICAgICAgICAgICAgdHlwZWluZCA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucCcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBiZWZvcmVIb3VyaW5kICsgdHlwZWluZCArIGFmdGVySG91cmluZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaGFtKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPj0gMykge1xyXG4gICAgICAgICAgbGV0IHR5cGVpbmQyID0gaW5kNC50b1N0cmluZygpO1xyXG5cclxuICAgICAgICAgIGNvbnN0IGJlZm9yZUhvdXJpbmQgPSBpbmQxICsgaW5kMiArIGluZDM7XHJcbiAgICAgICAgICBjb25zdCBhZnRlckhvdXJpbmQgPSBpbmQ1O1xyXG5cclxuICAgICAgICAgIGlmIChpbmQ0ID09PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLnAnKSkge1xyXG4gICAgICAgICAgICB0eXBlaW5kMiA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChpbmQ0ID09PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmEnKSkge1xyXG4gICAgICAgICAgICB0eXBlaW5kMiA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucCcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBiZWZvcmVIb3VyaW5kICsgdHlwZWluZDIgKyBhZnRlckhvdXJpbmQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8ga2V5IGRvd25cclxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XHJcbiAgICAgIC8vIGhvdXJcclxuICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPD0gMikge1xyXG4gICAgICAgIGNvbnN0IGhvdXJpbmQgPSBpbmQxICsgaW5kMjtcclxuICAgICAgICBjb25zdCBuZXdIb3VyID0gK2hvdXJpbmQgLSAxO1xyXG5cclxuICAgICAgICBuZXdWYWx1ZSA9IG5ld0hvdXIudG9TdHJpbmcoKTtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzIHx8XHJcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbSB8fFxyXG4gICAgICAgICAgdGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoIHx8XHJcbiAgICAgICAgICB0aGlzLnRpbWVUeXBlLm1hc2sgPT09IHRoaXMuaGhtbXNzYW0gfHxcclxuICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0gfHxcclxuICAgICAgICAgIHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaGFtXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBpZiAoaG91cmluZCA9PT0gJy0tJykge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpbmQxICE9PSAnLScgJiYgaG91cmluZCA9PT0gaW5kMSArICctJykge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpbmQyICE9PSAnLScgJiYgaG91cmluZCA9PT0gJy0nICsgaW5kMikge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICgrbmV3VmFsdWUgPCAxKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzEyJztcclxuICAgICAgICAgIH0gZWxzZSBpZiAoK25ld1ZhbHVlIDwgMTApIHtcclxuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMCcgKyBuZXdWYWx1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKGhvdXJpbmQgPT09ICctLScpIHtcclxuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaW5kMSAhPT0gJy0nICYmIGhvdXJpbmQgPT09IGluZDEgKyAnLScpIHtcclxuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaW5kMiAhPT0gJy0nICYmIGhvdXJpbmQgPT09ICctJyArIGluZDIpIHtcclxuICAgICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoK25ld1ZhbHVlIDwgMCkge1xyXG4gICAgICAgICAgICBuZXdWYWx1ZSA9ICcyMyc7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKCtuZXdWYWx1ZSA8IDEwKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gJzAnICsgbmV3VmFsdWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGFmdGVySG91ckluZGV4ID0gaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOSArIGluZDEwICsgaW5kMTE7XHJcbiAgICAgICAgY29uc3QgaG91ciA9IG5ld1ZhbHVlLnRvU3RyaW5nKCkgKyBhZnRlckhvdXJJbmRleDtcclxuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IGhvdXI7XHJcbiAgICAgIH1cclxuICAgICAgLy8gbWludXRlXHJcbiAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uID49IDMgJiYgdGhpcy5jdXJzb3JQb3NpdGlvbiA8PSA1KSB7XHJcbiAgICAgICAgY29uc3QgbWludXRlaW5kID0gaW5kNCArIGluZDU7XHJcbiAgICAgICAgY29uc3QgbmV3TWludXRlID0gK21pbnV0ZWluZCAtIDE7XHJcblxyXG4gICAgICAgIG5ld1ZhbHVlID0gbmV3TWludXRlLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgaWYgKG1pbnV0ZWluZCA9PT0gJy0tJykge1xyXG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpbmQ0ICE9PSAnLScgJiYgbWludXRlaW5kID09PSBpbmQ0ICsgJy0nKSB7XHJcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGluZDUgIT09ICctJyAmJiBtaW51dGVpbmQgPT09ICctJyArIGluZDUpIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobWludXRlaW5kID09PSAnLS0nKSB7XHJcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCtuZXdWYWx1ZSA8IDApIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzU5JztcclxuICAgICAgICB9IGVsc2UgaWYgKCtuZXdWYWx1ZSA8IDEwKSB7XHJcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJyArIG5ld1ZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBiZWZvcmVNaW51dGVJbmRleCA9IGluZDEgKyBpbmQyICsgaW5kMztcclxuICAgICAgICBjb25zdCBhZnRlck1pbnV0ZUluZGV4ID0gaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOSArIGluZDEwICsgaW5kMTE7XHJcbiAgICAgICAgY29uc3QgbWludXRlID0gYmVmb3JlTWludXRlSW5kZXggKyBuZXdWYWx1ZS50b1N0cmluZygpICsgYWZ0ZXJNaW51dGVJbmRleDtcclxuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IG1pbnV0ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gc2Vjb25kXHJcbiAgICAgIGlmICh0aGlzLmN1cnNvclBvc2l0aW9uID49IDYgJiYgdGhpcy5jdXJzb3JQb3NpdGlvbiA8PSA4KSB7XHJcbiAgICAgICAgY29uc3Qgc2Vjb25kSW5kZXggPSBpbmQ3ICsgaW5kODtcclxuICAgICAgICBjb25zdCBuZXdTZWNvbmQgPSArc2Vjb25kSW5kZXggLSAxO1xyXG5cclxuICAgICAgICBuZXdWYWx1ZSA9IG5ld1NlY29uZC50b1N0cmluZygpO1xyXG4gICAgICAgIGlmIChzZWNvbmRJbmRleCA9PT0gJy0tJykge1xyXG4gICAgICAgICAgbmV3VmFsdWUgPSAnMCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpbmQ3ICE9PSAnLScgJiYgc2Vjb25kSW5kZXggPT09IGluZDcgKyAnLScpIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzAnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kOCAhPT0gJy0nICYmIHNlY29uZEluZGV4ID09PSAnLScgKyBpbmQ4KSB7XHJcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNlY29uZEluZGV4ID09PSAnLS0nKSB7XHJcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCtuZXdWYWx1ZSA8IDApIHtcclxuICAgICAgICAgIG5ld1ZhbHVlID0gJzU5JztcclxuICAgICAgICB9IGVsc2UgaWYgKCtuZXdWYWx1ZSA8IDEwKSB7XHJcbiAgICAgICAgICBuZXdWYWx1ZSA9ICcwJyArIG5ld1ZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBiZWZvcmVzZWNvbmRJbmRleCA9IGluZDEgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNjtcclxuICAgICAgICBjb25zdCBhZnRlcnNlY29uZEluZGV4ID0gaW5kOSArIGluZDEwICsgaW5kMTE7XHJcbiAgICAgICAgY29uc3Qgc2Vjb25kID0gYmVmb3Jlc2Vjb25kSW5kZXggKyBuZXdWYWx1ZS50b1N0cmluZygpICsgYWZ0ZXJzZWNvbmRJbmRleDtcclxuICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IHNlY29uZDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gdHlwZVxyXG4gICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhobW1zc2FtKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3Vyc29yUG9zaXRpb24gPiA4KSB7XHJcbiAgICAgICAgICBsZXQgdHlwZWluZCA9IGluZDEwLnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICAgICAgY29uc3QgYmVmb3JlSG91cmluZCA9IGluZDEgKyBpbmQyICsgaW5kMyArIGluZDQgKyBpbmQ1ICsgaW5kNiArIGluZDcgKyBpbmQ4ICsgaW5kOTtcclxuICAgICAgICAgIGNvbnN0IGFmdGVySG91cmluZCA9IGluZDExO1xyXG5cclxuICAgICAgICAgIGlmIChpbmQxMCA9PT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJykpIHtcclxuICAgICAgICAgICAgdHlwZWluZCA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChpbmQxMCA9PT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5hJykpIHtcclxuICAgICAgICAgICAgdHlwZWluZCA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucCcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBiZWZvcmVIb3VyaW5kICsgdHlwZWluZCArIGFmdGVySG91cmluZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudGltZVR5cGUubWFzayA9PT0gdGhpcy5oaG1tYW0pIHtcclxuICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+PSA2KSB7XHJcbiAgICAgICAgICBsZXQgdHlwZWluZCA9IGluZDcudG9TdHJpbmcoKTtcclxuXHJcbiAgICAgICAgICBjb25zdCBiZWZvcmVIb3VyaW5kID0gaW5kMSArIGluZDIgKyBpbmQzICsgaW5kNCArIGluZDUgKyBpbmQ2O1xyXG4gICAgICAgICAgY29uc3QgYWZ0ZXJIb3VyaW5kID0gaW5kODtcclxuXHJcbiAgICAgICAgICBpZiAoaW5kNyA9PT0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJykpIHtcclxuICAgICAgICAgICAgdHlwZWluZCA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChpbmQ3ID09PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmEnKSkge1xyXG4gICAgICAgICAgICB0eXBlaW5kID0gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUuZGF5VGltZS5wJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnRleHRWYWx1ZSA9IGJlZm9yZUhvdXJpbmQgKyB0eXBlaW5kICsgYWZ0ZXJIb3VyaW5kO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy50aW1lVHlwZS5tYXNrID09PSB0aGlzLmhoYW0pIHtcclxuICAgICAgICBpZiAodGhpcy5jdXJzb3JQb3NpdGlvbiA+PSAzKSB7XHJcbiAgICAgICAgICBsZXQgdHlwZWluZDIgPSBpbmQ0LnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICAgICAgY29uc3QgYmVmb3JlSG91cmluZCA9IGluZDEgKyBpbmQyICsgaW5kMztcclxuICAgICAgICAgIGNvbnN0IGFmdGVySG91cmluZCA9IGluZDU7XHJcbiAgICAgICAgICAvL1RPIERPIHRoaXMgaXMgd3JvbmcgY2hlY2sgaW5kZXhcclxuICAgICAgICAgIGlmIChpbmQ0ID09PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLnAnKSkge1xyXG4gICAgICAgICAgICB0eXBlaW5kMiA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUuYScpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChpbmQ0ID09PSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS5kYXlUaW1lLmEnKSkge1xyXG4gICAgICAgICAgICB0eXBlaW5kMiA9IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLmRheVRpbWUucCcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy50ZXh0VmFsdWUgPSBiZWZvcmVIb3VyaW5kICsgdHlwZWluZDIgKyBhZnRlckhvdXJpbmQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnIHx8IGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcclxuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmNhcmV0Q29sb3IgPSAndHJhbnNwYXJlbnQnO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUNsaWNrKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0IHx8IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmN1cnNvclBvc2l0aW9uID0gdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZG9HZXRDYXJldFBvc2l0aW9uKGN0cmwpIHtcclxuICAgIGxldCBDYXJldFBvcyA9IDA7XHJcbiAgICBpZiAoY3RybC5zZWxlY3Rpb25TdGFydCB8fCBjdHJsLnNlbGVjdGlvblN0YXJ0ID09PSAwKSB7XHJcbiAgICAgIENhcmV0UG9zID0gY3RybC5zZWxlY3Rpb25TdGFydDtcclxuICAgICAgcmV0dXJuIENhcmV0UG9zO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q2FyZXRQb3NpdGlvbihjdHJsLCBwb3MpIHtcclxuICAgIGlmIChjdHJsLnNldFNlbGVjdGlvblJhbmdlKSB7XHJcbiAgICAgIGN0cmwuZm9jdXMoKTtcclxuICAgICAgY3RybC5zZXRTZWxlY3Rpb25SYW5nZShwb3MsIHBvcyk7XHJcbiAgICB9IGVsc2UgaWYgKGN0cmwuY3JlYXRlVGV4dFJhbmdlKSB7XHJcbiAgICAgIGNvbnN0IHJhbmdlID0gY3RybC5jcmVhdGVUZXh0UmFuZ2UoKTtcclxuICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSk7XHJcbiAgICAgIHJhbmdlLm1vdmVFbmQoJ2NoYXJhY3RlcicsIHBvcyk7XHJcbiAgICAgIHJhbmdlLm1vdmVTdGFydCgnY2hhcmFjdGVyJywgcG9zKTtcclxuICAgICAgcmFuZ2Uuc2VsZWN0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDYXJldCgpIHtcclxuICAgIHRoaXMuc2V0Q2FyZXRQb3NpdGlvbih0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIHRoaXMuY3Vyc29yUG9zaXRpb24pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -9,12 +9,12 @@ var AXTooltipDirective = /** @class */ (function () {
|
|
|
9
9
|
this.offset = 17;
|
|
10
10
|
}
|
|
11
11
|
AXTooltipDirective.prototype.onMouseEnter = function () {
|
|
12
|
-
if (!this.tooltip) {
|
|
12
|
+
if (!this.tooltip && this.tooltipTitle) {
|
|
13
13
|
this.show();
|
|
14
14
|
}
|
|
15
15
|
};
|
|
16
16
|
AXTooltipDirective.prototype.onMouseLeave = function () {
|
|
17
|
-
if (this.tooltip) {
|
|
17
|
+
if (this.tooltip && this.tooltipTitle) {
|
|
18
18
|
this.hide();
|
|
19
19
|
}
|
|
20
20
|
};
|
|
@@ -112,4 +112,4 @@ var AXTooltipDirective = /** @class */ (function () {
|
|
|
112
112
|
return AXTooltipDirective;
|
|
113
113
|
}());
|
|
114
114
|
export { AXTooltipDirective };
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNvcmV4L2NvbXBvbmVudHMvIiwic291cmNlcyI6WyJsaWIvdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLdEY7SUFPRSw0QkFBb0IsRUFBYyxFQUFVLFFBQW1CO1FBQTNDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBTHRELGNBQVMsR0FBVyxLQUFLLENBQUM7UUFDMUIsVUFBSyxHQUFXLEdBQUcsQ0FBQztRQUU3QixXQUFNLEdBQUcsRUFBRSxDQUFDO0lBSVosQ0FBQztJQUcyQix5Q0FBWSxHQUFaO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDdEMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBRTJCLHlDQUFZLEdBQVo7UUFDMUIsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBRUQsaUNBQUksR0FBSjtRQUNFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELGlDQUFJLEdBQUo7UUFDRSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSTtnQkFDRixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENB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OUIsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLGFBQWE7U0FDeEIsQ0FBQzt5Q0FRd0IsVUFBVSxFQUFvQixTQUFTO09BUHBELGtCQUFrQixDQStGOUI7SUFBRCx5QkFBQztDQUFBLEFBL0ZELElBK0ZDO1NBL0ZZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1theFRvb2x0aXBdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhUb29sdGlwRGlyZWN0aXZlIHtcclxuICBASW5wdXQoJ3Rvb2x0aXAnKSB0b29sdGlwVGl0bGU6IHN0cmluZztcclxuICBASW5wdXQoKSBwbGFjZW1lbnQ6IHN0cmluZyA9ICd0b3AnO1xyXG4gIEBJbnB1dCgpIGRlbGF5OiBudW1iZXIgPSA1MDA7XHJcbiAgdG9vbHRpcDogSFRNTEVsZW1lbnQ7XHJcbiAgb2Zmc2V0ID0gMTc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xyXG4gICAgXHJcbiAgfVxyXG5cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpIG9uTW91c2VFbnRlcigpIHtcclxuICAgIGlmICghdGhpcy50b29sdGlwICYmIHRoaXMudG9vbHRpcFRpdGxlKSB7XHJcbiAgICAgIHRoaXMuc2hvdygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpIG9uTW91c2VMZWF2ZSgpIHtcclxuICAgIGlmICh0aGlzLnRvb2x0aXAgJiYgdGhpcy50b29sdGlwVGl0bGUpIHtcclxuICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaG93KCkge1xyXG4gICAgdGhpcy5jcmVhdGUoKTtcclxuICAgIHRoaXMuc2V0UG9zaXRpb24oKTtcclxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwLCAnYXgtdG9vbHRpcC1zaG93Jyk7XHJcbiAgfVxyXG5cclxuICBoaWRlKCkge1xyXG4gICAgaWYgKHRoaXMudG9vbHRpcCkge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy50b29sdGlwLCAnYXgtdG9vbHRpcC1zaG93Jyk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZChkb2N1bWVudC5ib2R5LCB0aGlzLnRvb2x0aXApO1xyXG4gICAgICAgIHRoaXMudG9vbHRpcCA9IG51bGw7XHJcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7fVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlKCkge1xyXG4gICAgaWYodGhpcy50b29sdGlwVGl0bGUpe1xyXG4gICAgICB0aGlzLnRvb2x0aXAgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKFxyXG4gICAgICB0aGlzLnRvb2x0aXAsXHJcbiAgICAgIHRoaXMucmVuZGVyZXIuY3JlYXRlVGV4dCh0aGlzLnRvb2x0aXBUaXRsZSkgLy8gdGV4dE5vZGVcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5ib2R5LCB0aGlzLnRvb2x0aXApO1xyXG5cclxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50b29sdGlwLCAnYXgtdG9vbHRpcCcpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnRvb2x0aXAsIGBheC10b29sdGlwLSR7dGhpcy5wbGFjZW1lbnR9YCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudG9vbHRpcCwgJy13ZWJraXQtdHJhbnNpdGlvbicsIGBvcGFjaXR5ICR7dGhpcy5kZWxheX1tc2ApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXAsICctbW96LXRyYW5zaXRpb24nLCBgb3BhY2l0eSAke3RoaXMuZGVsYXl9bXNgKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwLCAnLW8tdHJhbnNpdGlvbicsIGBvcGFjaXR5ICR7dGhpcy5kZWxheX1tc2ApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXAsICd0cmFuc2l0aW9uJywgYG9wYWNpdHkgJHt0aGlzLmRlbGF5fW1zYCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuaGlkZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0UG9zaXRpb24oKSB7XHJcbiAgICBjb25zdCBob3N0UG9zID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3QgdG9vbHRpcFBvcyA9IHRoaXMudG9vbHRpcC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IHNjcm9sbFBvcyA9IHdpbmRvdy5wYWdlWU9mZnNldCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wIHx8IGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wIHx8IDA7XHJcblxyXG4gICAgbGV0IHRvcDtcclxuICAgIGxldCBsZWZ0O1xyXG5cclxuICAgIGlmICh0aGlzLnBsYWNlbWVudCA9PT0gJ3RvcCcpIHtcclxuICAgICAgdG9wID0gaG9zdFBvcy50b3AgLSB0b29sdGlwUG9zLmhlaWdodCAtIHRoaXMub2Zmc2V0O1xyXG4gICAgICBsZWZ0ID0gaG9zdFBvcy5sZWZ0ICsgKGhvc3RQb3Mud2lkdGggLSB0b29sdGlwUG9zLndpZHRoKSAvIDI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMucGxhY2VtZW50ID09PSAnYm90dG9tJykge1xyXG4gICAgICB0b3AgPSBob3N0UG9zLmJvdHRvbSArIHRoaXMub2Zmc2V0O1xyXG4gICAgICBsZWZ0ID0gaG9zdFBvcy5sZWZ0ICsgKGhvc3RQb3Mud2lkdGggLSB0b29sdGlwUG9zLndpZHRoKSAvIDI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMucGxhY2VtZW50ID09PSAnbGVmdCcpIHtcclxuICAgICAgdG9wID0gaG9zdFBvcy50b3AgKyAoaG9zdFBvcy5oZWlnaHQgLSB0b29sdGlwUG9zLmhlaWdodCkgLyAyO1xyXG4gICAgICBsZWZ0ID0gaG9zdFBvcy5sZWZ0IC0gdG9vbHRpcFBvcy53aWR0aCAtIHRoaXMub2Zmc2V0O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnBsYWNlbWVudCA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICB0b3AgPSBob3N0UG9zLnRvcCArIChob3N0UG9zLmhlaWdodCAtIHRvb2x0aXBQb3MuaGVpZ2h0KSAvIDI7XHJcbiAgICAgIGxlZnQgPSBob3N0UG9zLnJpZ2h0ICsgdGhpcy5vZmZzZXQ7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnRvb2x0aXAsICd0b3AnLCBgJHt0b3AgKyBzY3JvbGxQb3N9cHhgKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy50b29sdGlwLCAnbGVmdCcsIGAke2xlZnR9cHhgKTtcclxuICB9XHJcbn1cclxuIl19
|