@mediusinc/mng-commons 6.0.0-rc.3 → 6.0.0-rc.5

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.
@@ -193,7 +193,7 @@ export class ActionDescriptorInst {
193
193
  this._button = button;
194
194
  return this;
195
195
  }
196
- withButton(label, icon = null, level = StyleLevelEnum.Default) {
196
+ withButton(label, icon = null, level) {
197
197
  this._button = {
198
198
  ...this._button,
199
199
  label,
@@ -299,4 +299,4 @@ export class ActionDescriptorInst {
299
299
  return descriptor;
300
300
  }
301
301
  }
302
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmRlc2NyaXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvYXBpL3NyYy9hY3Rpb24vZGVzY3JpcHRvcnMvYWN0aW9uLmRlc2NyaXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUV4QixPQUFPLEVBR0gsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUdoQixhQUFhLEVBRWIsY0FBYyxFQUNkLG1CQUFtQixFQUN0QixNQUFNLDZCQUE2QixDQUFDO0FBT3JDLE9BQU8sRUFBQywyQkFBMkIsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQXFCdEcsTUFBTSxPQUFPLG9CQUFvQjtJQWlEN0IsWUFBbUIsVUFBa0IsRUFBRSxHQUF3RDtRQXRDckYsVUFBSyxHQUFtQixjQUFjLENBQUMsTUFBTSxDQUFDO1FBQzlDLHVCQUFrQixHQUFnQywyQkFBMkIsQ0FBQyxPQUFPLENBQUM7UUFDdEYsY0FBUyxHQUF1QixrQkFBa0IsQ0FBQyxZQUFZLENBQUM7UUFDaEUsV0FBTSxHQUFtQixjQUFjLENBQUMsT0FBTyxDQUFDO1FBSWhELGNBQVMsR0FBa0IsSUFBSSxDQUFDO1FBb0IxQyx5QkFBeUI7UUFDZix1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFNckMsYUFBYTtRQUNILHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixnQkFBVyxHQUE4RCxFQUFFLENBQUM7UUFHbEYsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBRTlCLElBQUksQ0FBQyxHQUFHLEVBQUUsV0FBVyxJQUFJLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsY0FBYyxJQUFJLEdBQUcsRUFB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QUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUN0RCxVQUFVLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFFN0QsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUVNLElBQUk7UUFDUCxNQUFNLFVBQVUsR0FBRyxJQUFJLG9CQUFvQixDQUFrRSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzNILFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNoQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDMUIsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQzlCLGNBQWMsRUFBRSxJQUFJLENBQUMsZUFBZTtTQUN2QyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTlCLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0aW9uVG9rZW4sIFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge29mfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgICBBUGVybWlzc2lvbnMsXG4gICAgQ2xhc3NUeXBlLFxuICAgIENvbW1vbnNJbnRlcm5hbEVycm9yLFxuICAgIERhdGFQcm92aWRlckluc3QsXG4gICAgSUFjdGlvbkRlc2NyaXB0b3IsXG4gICAgSURhdGFQcm92aWRlcixcbiAgICBMb2dnZXJTZXJ2aWNlLFxuICAgIFNlcnZpY2VDbGFzc1R5cGUsXG4gICAgU3R5bGVMZXZlbEVudW0sXG4gICAgZmluZFJlZmxlY3RUeXBlTmFtZVxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtJQWN0aW9uQnV0dG9uRGVzY3JpcHRvcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9mb3JtL2FwaSc7XG5pbXBvcnQge01vZGVsRGVzY3JpcHRvcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9tb2RlbCc7XG5cbmltcG9ydCB7SUFjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi4vbW9kZWxzL2FjdGlvbi1jb21wb25lbnQubW9kZWwnO1xuaW1wb3J0IHtBY3Rpb25Db25maXJtYXRpb259IGZyb20gJy4uL21vZGVscy9hY3Rpb24tY29uZmlybWF0aW9uLm1vZGVsJztcbmltcG9ydCB7QWN0aW9uTm90aWZpY2F0aW9uVHlwZSwgQWN0aW9uUnVuRm5UeXBlLCBBY3Rpb25WYWxpZGF0aW9uRm5UeXBlfSBmcm9tICcuLi9tb2RlbHMvYWN0aW9uLWRlc2NyaXB0b3IudHlwZXMnO1xuaW1wb3J0IHtBY3Rpb25BY3RpdmF0aW9uVHJpZ2dlckVudW0sIEFjdGlvblBvc2l0aW9uRW51bSwgQWN0aW9uVHlwZUVudW19IGZyb20gJy4uL21vZGVscy9hY3Rpb24udHlwZSc7XG5pbXBvcnQge0lBY3Rpb25Db250ZXh0fSBmcm9tICcuLi9tb2RlbHMvZXhlY3V0aW9uL2FjdGlvbi1jb250ZXh0Lm1vZGVsJztcblxuZXhwb3J0IHR5cGUgQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQcm92aWRlclR5cGU8SXRlbSwgU2VydmljZT4gPSB7XG4gICAgc2VydmljZVR5cGU/OiBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+O1xuICAgIGRhdGFQcm92aWRlcj86IElEYXRhUHJvdmlkZXI8SXRlbSwgU2VydmljZT47XG59O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGUgPSB7XG4gICAgcGFyZW50TW9kZWw/OiBNb2RlbERlc2NyaXB0b3I8YW55PjtcbiAgICBwYXJlbnRQcm9wZXJ0eT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkRlc2NyaXB0b3JDb25zdHJ1Y3Rvck9wdHNUeXBlPEl0ZW0sIFNlcnZpY2U+ID0gQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlICZcbiAgICBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1Byb3ZpZGVyVHlwZTxJdGVtLCBTZXJ2aWNlPiAmIHtcbiAgICAgICAgbW9kZWw/OiBNb2RlbERlc2NyaXB0b3I8SXRlbT47XG4gICAgfTtcblxudHlwZSBBZnRlclJ1bkFjdGlvblR5cGU8UnVuUmV0dXJuSXRlbT4gPSBBY3Rpb25EZXNjcmlwdG9ySW5zdDxhbnksIGFueSwgUnVuUmV0dXJuSXRlbSwgYW55LCB1bmRlZmluZWQ+O1xudHlwZSBPbkVycm9yQWN0aW9uVHlwZTxSdW5JbnB1dEl0ZW0+ID0gQWN0aW9uRGVzY3JpcHRvckluc3Q8YW55LCBhbnksIFJ1bklucHV0SXRlbSwgYW55LCB1bmRlZmluZWQ+O1xuXG5leHBvcnQgY2xhc3MgQWN0aW9uRGVzY3JpcHRvckluc3Q8SXRlbSwgU2VydmljZSA9IGFueSwgUnVuSW5wdXRJdGVtID0gSXRlbSwgUnVuUmV0dXJuSXRlbSA9IEl0ZW0sIFZhbGlkYXRpb25JbnB1dEl0ZW0gPSBSdW5JbnB1dEl0ZW0+IGltcGxlbWVudHMgSUFjdGlvbkRlc2NyaXB0b3I8SXRlbSwgU2VydmljZT4ge1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfbW9kZWw/OiBNb2RlbERlc2NyaXB0b3I8SXRlbT47XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9hY3Rpb25OYW1lOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9hY3Rpb25OYW1lTG9uZzogc3RyaW5nO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfcGFyZW50TW9kZWw/OiBNb2RlbERlc2NyaXB0b3I8YW55PjtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3BhcmVudFByb3BlcnR5Pzogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kYXRhUHJvdmlkZXI/OiBJRGF0YVByb3ZpZGVyPEl0ZW0sIFNlcnZpY2U+O1xuXG4gICAgcHJvdGVjdGVkIF9pMThuTW9kZWxBY3Rpb25CYXNlS2V5Pzogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIF90eXBlOiBBY3Rpb25UeXBlRW51bSA9IEFjdGlvblR5cGVFbnVtLkRpcmVjdDtcbiAgICBwcm90ZWN0ZWQgX2FjdGl2YXRpb25UcmlnZ2VyOiBBY3Rpb25BY3RpdmF0aW9uVHJpZ2dlckVudW0gPSBBY3Rpb25BY3RpdmF0aW9uVHJpZ2dlckVudW0uT25DbGljaztcbiAgICBwcm90ZWN0ZWQgX3Bvc2l0aW9uOiBBY3Rpb25Qb3NpdGlvbkVudW0gPSBBY3Rpb25Qb3NpdGlvbkVudW0uVG9vbGJhclJpZ2h0O1xuICAgIHByb3RlY3RlZCBfbGV2ZWw6IFN0eWxlTGV2ZWxFbnVtID0gU3R5bGVMZXZlbEVudW0uRGVmYXVsdDtcbiAgICBwcml2YXRlIF9wb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXM/OiBzdHJpbmdbXTtcbiAgICBwcm90ZWN0ZWQgX3RhYmxldmlld0NhdGVnb3J5Pzogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIF9yb3V0ZVVybDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcm90ZWN0ZWQgX3J1bkZ1bmN0aW9uPzogQWN0aW9uUnVuRm5UeXBlPEl0ZW0sIFNlcnZpY2UsIFJ1bklucHV0SXRlbSwgUnVuUmV0dXJuSXRlbT47XG4gICAgcHJvdGVjdGVkIF9pc1Zpc2libGVGdW5jdGlvbj86IEFjdGlvblZhbGlkYXRpb25GblR5cGU8VmFsaWRhdGlvbklucHV0SXRlbSwgU2VydmljZT47XG4gICAgcHJvdGVjdGVkIF9pc0VuYWJsZWRGdW5jdGlvbj86IEFjdGlvblZhbGlkYXRpb25GblR5cGU8VmFsaWRhdGlvbklucHV0SXRlbSwgU2VydmljZT47XG5cbiAgICBwcm90ZWN0ZWQgX3J1bkNvbmZpcm1hdGlvbj86IEFjdGlvbkNvbmZpcm1hdGlvbjxSdW5JbnB1dEl0ZW0+O1xuXG4gICAgcHJvdGVjdGVkIF9ydW5Ob3RpZmljYXRpb25PblN1Y2Nlc3M/OiBBY3Rpb25Ob3RpZmljYXRpb25UeXBlIHwgYm9vbGVhbjtcbiAgICBwcm90ZWN0ZWQgX3J1bk5vdGlmaWNhdGlvbk9uRXJyb3I/OiBBY3Rpb25Ob3RpZmljYXRpb25UeXBlIHwgYm9vbGVhbjtcblxuICAgIHByb3RlY3RlZCBfYWZ0ZXJSdW5BY3Rpb24/OiBBZnRlclJ1bkFjdGlvblR5cGU8UnVuUmV0dXJuSXRlbT4gfCAoKGN0eDogSUFjdGlvbkNvbnRleHQ8SXRlbSwgUnVuSW5wdXRJdGVtLCBhbnk+KSA9PiBBZnRlclJ1bkFjdGlvblR5cGU8UnVuUmV0dXJuSXRlbT4pO1xuICAgIHByb3RlY3RlZCBfb25SdW5FcnJvckFjdGlvbj86IE9uRXJyb3JBY3Rpb25UeXBlPFJ1bklucHV0SXRlbT4gfCAoKGN0eDogSUFjdGlvbkNvbnRleHQ8SXRlbSwgUnVuSW5wdXRJdGVtLCBhbnk+KSA9PiBPbkVycm9yQWN0aW9uVHlwZTxSdW5JbnB1dEl0ZW0+KTtcblxuICAgIC8vIHNlY3VyaXR5XG4gICAgcHJvdGVjdGVkIF9wZXJtaXNzaW9ucz86IEFQZXJtaXNzaW9ucztcblxuICAgIC8vYnV0dG9uXG4gICAgcHJvdGVjdGVkIF9idXR0b24/OiBJQWN0aW9uQnV0dG9uRGVzY3JpcHRvcjtcblxuICAgIC8vIG11bHRpcGxlIHJvdyBzZWxlY3Rpb25cbiAgICBwcm90ZWN0ZWQgX2hhc0l0ZW1zU2VsZWN0aW9uID0gZmFsc2U7XG5cbiAgICAvLyBjdXN0b20gYWN0aW9uIGNvbXBvbmVudFxuICAgIHByb3RlY3RlZCBfY29tcG9uZW50PzogVHlwZTxJQWN0aW9uQ29tcG9uZW50PEl0ZW0+PjtcbiAgICBwcm90ZWN0ZWQgX2NvbXBvbmVudEZyb21EaT86IEluamVjdGlvblRva2VuPFR5cGU8YW55Pj47XG5cbiAgICAvLyBzdWJhY3Rpb25zXG4gICAgcHJvdGVjdGVkIF9zdWJhY3Rpb25zQXNNZW51ID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIF9zdWJhY3Rpb25zOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtLCBhbnksIFJ1bklucHV0SXRlbSwgYW55Pj4gPSBbXTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihhY3Rpb25OYW1lOiBzdHJpbmcsIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDb25zdHJ1Y3Rvck9wdHNUeXBlPEl0ZW0sIFNlcnZpY2U+KSB7XG4gICAgICAgIHRoaXMuX21vZGVsID0gY2ZnPy5tb2RlbDtcbiAgICAgICAgdGhpcy5fYWN0aW9uTmFtZSA9IGFjdGlvbk5hbWU7XG5cbiAgICAgICAgaWYgKChjZmc/LnBhcmVudE1vZGVsICYmICFjZmc/LnBhcmVudFByb3BlcnR5KSB8fCAoIWNmZz8ucGFyZW50UHJvcGVydHkgJiYgY2ZnPy5wYXJlbnRQcm9wZXJ0eSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICAgICAgICBgUHJvdmlkZSBib3RoIHRoZSBwYXJlbnQgbW9kZWwgYW5kIHBhcmVudCBwcm9wZXJ0eSBvciBub25lOiAke3RoaXMuX2FjdGlvbk5hbWV9LCAke2NmZz8ucGFyZW50TW9kZWw/LmkxOG5CYXNlS2V5fSwgJHtjZmc/LnBhcmVudFByb3BlcnR5fS5gXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3BhcmVudE1vZGVsID0gY2ZnPy5wYXJlbnRNb2RlbDtcbiAgICAgICAgdGhpcy5fcGFyZW50UHJvcGVydHkgPSBjZmc/LnBhcmVudFByb3BlcnR5O1xuXG4gICAgICAgIHRoaXMuc2V0STE4bk1vZGVsQWN0aW9uQmFzZUtleSgpO1xuXG4gICAgICAgIGlmIChjZmc/LnNlcnZpY2VUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRhUHJvdmlkZXIgPSBuZXcgRGF0YVByb3ZpZGVySW5zdDxJdGVtLCBTZXJ2aWNlPihjZmcuc2VydmljZVR5cGUpO1xuICAgICAgICB9IGVsc2UgaWYgKGNmZz8uZGF0YVByb3ZpZGVyKSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRhUHJvdmlkZXIgPSBjZmcuZGF0YVByb3ZpZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGRpc3BsYXlOYW1lID0gYWN0aW9uTmFtZTtcbiAgICAgICAgaWYgKHRoaXMuX21vZGVsKSBkaXNwbGF5TmFtZSA9IHRoaXMuX21vZGVsLmkxOG5CYXNlS2V5ID8gYCR7dGhpcy5fbW9kZWwuaTE4bkJhc2VLZXl9LiR7ZGlzcGxheU5hbWV9YCA6IGRpc3BsYXlOYW1lO1xuICAgICAgICBpZiAodGhpcy5fcGFyZW50TW9kZWwpIHtcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gYCR7dGhpcy5fcGFyZW50TW9kZWwuaTE4bkJhc2VLZXl9LiR7dGhpcy5fcGFyZW50UHJvcGVydHl9XyR7ZGlzcGxheU5hbWV9YDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9hY3Rpb25OYW1lTG9uZyA9IGRpc3BsYXlOYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbW9kZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tb2RlbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBhcmVudE1vZGVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50TW9kZWw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwYXJlbnRQcm9wZXJ0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudFByb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaTE4bk1vZGVsQWN0aW9uQmFzZUtleSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2kxOG5Nb2RlbEFjdGlvbkJhc2VLZXk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0eXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFjdGl2YXRpb25UcmlnZ2VyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZhdGlvblRyaWdnZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwb3NpdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcm91dGVVcmwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb3V0ZVVybDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRhdGFQcm92aWRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFQcm92aWRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc1J1bkZ1bmN0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMuX3J1bkZ1bmN0aW9uID09PSAnZnVuY3Rpb24nO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcnVuRnVuY3Rpb24oKTogQWN0aW9uUnVuRm5UeXBlPEl0ZW0sIFNlcnZpY2UsIFJ1bklucHV0SXRlbSwgUnVuUmV0dXJuSXRlbT4ge1xuICAgICAgICBpZiAoIXRoaXMuX3J1bkZ1bmN0aW9uKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYFJ1biBmdW5jdGlvbiBpcyBub3QgZGVmaW5lZCBmb3IgYWN0aW9uICR7dGhpcy5fYWN0aW9uTmFtZUxvbmd9IGFuZCBjYW5ub3QgYmUgaW52b2tlZGApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9ydW5GdW5jdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzVmlzaWJsZUZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNWaXNpYmxlRnVuY3Rpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc0VuYWJsZWRGdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzRW5hYmxlZEZ1bmN0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWN0aW9uTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGlvbk5hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhY3Rpb25OYW1lTG9uZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGlvbk5hbWVMb25nO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcnVuQ29uZmlybWF0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcnVuQ29uZmlybWF0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcnVuTm90aWZpY2F0aW9uT25TdWNjZXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcnVuTm90aWZpY2F0aW9uT25TdWNjZXNzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcnVuTm90aWZpY2F0aW9uT25FcnJvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J1bk5vdGlmaWNhdGlvbk9uRXJyb3I7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhZnRlclJ1bkFjdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FmdGVyUnVuQWN0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgb25SdW5FcnJvckFjdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29uUnVuRXJyb3JBY3Rpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwZXJtaXNzaW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGFibGV2aWV3Q2F0ZWdvcnkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJsZXZpZXdDYXRlZ29yeTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc0l0ZW1zU2VsZWN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzSXRlbXNTZWxlY3Rpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBidXR0b24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9idXR0b247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb21wb25lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb21wb25lbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb21wb25lbnRGcm9tRGkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb21wb25lbnRGcm9tRGk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzdWJhY3Rpb25zQXNNZW51KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3ViYWN0aW9uc0FzTWVudTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHN1YmFjdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdWJhY3Rpb25zO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXRJMThuTW9kZWxBY3Rpb25CYXNlS2V5KGJhc2U/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuX3BhcmVudE1vZGVsIHx8IHRoaXMuX21vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLl9pMThuTW9kZWxBY3Rpb25CYXNlS2V5ID0gdGhpcy5fcGFyZW50TW9kZWxcbiAgICAgICAgICAgICAgICA/IGAke3RoaXMuX3BhcmVudE1vZGVsLmkxOG5CYXNlS2V5fS5hY3Rpb25zLiR7dGhpcy5fcGFyZW50UHJvcGVydHl9XyR7dGhpcy5fYWN0aW9uTmFtZX1gXG4gICAgICAgICAgICAgICAgOiBgJHtiYXNlID8/IHRoaXMuX21vZGVsIS5pMThuQmFzZUtleX0uYWN0aW9ucy4ke3RoaXMuX2FjdGlvbk5hbWV9YDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUnVuRnVuY3Rpb24oZm46IEFjdGlvblJ1bkZuVHlwZTxJdGVtLCBTZXJ2aWNlLCBSdW5JbnB1dEl0ZW0sIFJ1blJldHVybkl0ZW0+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3J1bkZ1bmN0aW9uID0gZm47XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoSXNWaXNpYmxlRnVuY3Rpb24oZm4/OiBBY3Rpb25WYWxpZGF0aW9uRm5UeXBlPFZhbGlkYXRpb25JbnB1dEl0ZW0sIFNlcnZpY2U+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2lzVmlzaWJsZUZ1bmN0aW9uID0gZm47XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoSXNFbmFibGVkRnVuY3Rpb24oZm4/OiBBY3Rpb25WYWxpZGF0aW9uRm5UeXBlPFZhbGlkYXRpb25JbnB1dEl0ZW0sIFNlcnZpY2U+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2lzRW5hYmxlZEZ1bmN0aW9uID0gZm47XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUm91dGVUcmlnZ2VyKHJvdXRlVXJsOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fYWN0aXZhdGlvblRyaWdnZXIgPSBBY3Rpb25BY3RpdmF0aW9uVHJpZ2dlckVudW0uT25Sb3V0ZTtcbiAgICAgICAgdGhpcy5fcm91dGVVcmwgPSByb3V0ZVVybDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhQb3NpdGlvbihwb3NpdGlvbjogQWN0aW9uUG9zaXRpb25FbnVtKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3Bvc2l0aW9uID0gcG9zaXRpb247XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgY29uZmlybWF0aW9uIGFjdGlvbiB3aXRoIGRlZmF1bHQgc3R5bGUgYmFzZWQgb24gYWN0aW9uIGRlc2NyaXB0b3JcbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aFJ1bkNvbmZpcm1hdGlvbihvcHRzOiBib29sZWFuIHwgQWN0aW9uQ29uZmlybWF0aW9uPFJ1bklucHV0SXRlbT4gPSB0cnVlKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3J1bkNvbmZpcm1hdGlvbiA9IG9wdHMgPT09IHRydWUgPyB7fSA6IG9wdHMgPT09IGZhbHNlID8gdW5kZWZpbmVkIDogb3B0cztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT3ZlcnJpZGUgZGVmYXVsdCBub3RpZmljYXRpb25zIHNldHVwLiBOb3RpZmljYXRpb25zIGNhbiBlaXRoZXIgYmUgb3ZlcnJpZGRlbiB3aXRoIGN1c3RvbSB0ZXh0IG9yIHR1cm5lZCBvbi9vZmYuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0cyBQcm92aWRlIGNvbmZpZyBmb3IgdGV4dHMgb3Igb24vb2ZmIGZsYWcgZm9yIHJ1biBzdWNjZXNzL2Vycm9yIG5vdGlmaWNhdGlvbnMuXG4gICAgICovXG4gICAgcHVibGljIHdpdGhOb3RpZmljYXRpb25zKG9wdHM/OiB7cnVuT25TdWNjZXNzPzogQWN0aW9uTm90aWZpY2F0aW9uVHlwZSB8IGJvb2xlYW47IHJ1bk9uRXJyb3I/OiBBY3Rpb25Ob3RpZmljYXRpb25UeXBlIHwgYm9vbGVhbn0gfCBib29sZWFuKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3J1bk5vdGlmaWNhdGlvbk9uU3VjY2VzcyA9IHR5cGVvZiBvcHRzID09PSAnYm9vbGVhbicgPyBvcHRzIDogb3B0cz8ucnVuT25TdWNjZXNzO1xuICAgICAgICB0aGlzLl9ydW5Ob3RpZmljYXRpb25PbkVycm9yID0gdHlwZW9mIG9wdHMgPT09ICdib29sZWFuJyA/IG9wdHMgOiBvcHRzPy5ydW5PbkVycm9yO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEFmdGVyUnVuQWN0aW9uKGFjdGlvbj86IEFmdGVyUnVuQWN0aW9uVHlwZTxSdW5SZXR1cm5JdGVtPiB8ICgoY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBSdW5JbnB1dEl0ZW0sIGFueT4pID0+IEFmdGVyUnVuQWN0aW9uVHlwZTxSdW5SZXR1cm5JdGVtPikpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fYWZ0ZXJSdW5BY3Rpb24gPSBhY3Rpb247XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoT25SdW5FcnJvckFjdGlvbihhY3Rpb24/OiBPbkVycm9yQWN0aW9uVHlwZTxSdW5JbnB1dEl0ZW0+IHwgKChjdHg6IElBY3Rpb25Db250ZXh0PEl0ZW0sIFJ1bklucHV0SXRlbSwgYW55PikgPT4gT25FcnJvckFjdGlvblR5cGU8UnVuSW5wdXRJdGVtPikpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fb25SdW5FcnJvckFjdGlvbiA9IGFjdGlvbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhQZXJtaXNzaW9ucyhwZXJtaXNzaW9uczogQVBlcm1pc3Npb25zKTogdGhpcyB7XG4gICAgICAgIGlmICh0aGlzLl90YWJsZXZpZXdDYXRlZ29yeSkge1xuICAgICAgICAgICAgTG9nZ2VyU2VydmljZS5nZXQoKS5kZWJ1ZyhcbiAgICAgICAgICAgICAgICBgV0FSTklORzogUGVybWlzc2lvbnMgc2V0IG9uIGFjdGlvbiAke3RoaXMuX2FjdGlvbk5hbWVMb25nfSB3aXRoIHJvdXRlIHR5cGUgJyR7dGhpcy5fdGFibGV2aWV3Q2F0ZWdvcnl9JyB3aWxsIGJlIG9taXR0ZWQgaW4gcm91dGUgZ3VhcmQgdmFsaWRhdGlvbi5gXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3Blcm1pc3Npb25zID0gcGVybWlzc2lvbnM7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVGFibGV2aWV3Q2F0ZWdvcnkoY2F0ZWdvcnk6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl90YWJsZXZpZXdDYXRlZ29yeSA9IGNhdGVnb3J5O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEJ1dHRvbk9wdHMoYnV0dG9uPzogSUFjdGlvbkJ1dHRvbkRlc2NyaXB0b3IpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fYnV0dG9uID0gYnV0dG9uO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEJ1dHRvbihsYWJlbD86IHN0cmluZyB8IG51bGwsIGljb246IHN0cmluZyB8IG51bGwgPSBudWxsLCBsZXZlbCA9IFN0eWxlTGV2ZWxFbnVtLkRlZmF1bHQpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fYnV0dG9uID0ge1xuICAgICAgICAgICAgLi4udGhpcy5fYnV0dG9uLFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICBpY29uLFxuICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9idXR0b24/LnN0eWxlLFxuICAgICAgICAgICAgICAgIGxldmVsOiBsZXZlbFxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEl0ZW1zU2VsZWN0aW9uKGhhc1NlbGVjdGlvbiA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faGFzSXRlbXNTZWxlY3Rpb24gPSBoYXNTZWxlY3Rpb247XG4gICAgICAgIHRoaXMuX2lzRW5hYmxlZEZ1bmN0aW9uID0gdGhpcy5faXNFbmFibGVkRnVuY3Rpb24gPz8gKGN0eCA9PiBvZigoY3R4LnBhcmFtZXRlcnMuc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoID8/IDApID4gMCkpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aENvbXBvbmVudChjb21wb25lbnQ6IFR5cGU8SUFjdGlvbkNvbXBvbmVudDxJdGVtPj4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fY29tcG9uZW50ID0gY29tcG9uZW50O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aENvbXBvbmVudEZyb21EaShpbmplY3Rpb25Ub2tlbjogSW5qZWN0aW9uVG9rZW48VHlwZTxhbnk+Pik6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb21wb25lbnRGcm9tRGkgPSBpbmplY3Rpb25Ub2tlbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhQb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXMocG9zaXRpb25UYWJsZXZpZXdDYXRlZ29yaWVzOiBzdHJpbmdbXSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9wb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXMgPSBwb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXM7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoSTE4bkJhc2UoYmFzZTogQ2xhc3NUeXBlPHVua25vd24+IHwgc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIGlmICh0eXBlb2YgYmFzZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVOYW1lID0gZmluZFJlZmxlY3RUeXBlTmFtZShiYXNlKTtcbiAgICAgICAgICAgIGlmICghdHlwZU5hbWUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYENvdWxkIG5vdCBmaW5kIGRlZmluZSBpMThuQmFzZUtleSBmb3IgJHtiYXNlfSBvbiBhY3Rpb24gJHt0aGlzLmFjdGlvbk5hbWVMb25nfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYmFzZSA9IHR5cGVOYW1lO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0STE4bk1vZGVsQWN0aW9uQmFzZUtleShiYXNlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhTdWJhY3Rpb25zQXNNZW51KHN1YmFjdGlvbnNBc01lbnUgPSB0cnVlKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3N1YmFjdGlvbnNBc01lbnUgPSBzdWJhY3Rpb25zQXNNZW51O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFN1YmFjdGlvbnMoLi4uc3ViYWN0aW9uczogQXJyYXk8QWN0aW9uRGVzY3JpcHRvckluc3Q8SXRlbSwgYW55LCBSdW5JbnB1dEl0ZW0sIGFueT4+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3N1YmFjdGlvbnMucHVzaCguLi5zdWJhY3Rpb25zKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGNvcHlGaWVsZHNUbyhcbiAgICAgICAgZGVzY3JpcHRvcjogQWN0aW9uRGVzY3JpcHRvckluc3Q8SXRlbSwgU2VydmljZSwgUnVuSW5wdXRJdGVtLCBSdW5SZXR1cm5JdGVtLCBWYWxpZGF0aW9uSW5wdXRJdGVtPlxuICAgICk6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PEl0ZW0sIFNlcnZpY2UsIFJ1bklucHV0SXRlbSwgUnVuUmV0dXJuSXRlbSwgVmFsaWRhdGlvbklucHV0SXRlbT4ge1xuICAgICAgICBkZXNjcmlwdG9yLl9pMThuTW9kZWxBY3Rpb25CYXNlS2V5ID0gdGhpcy5faTE4bk1vZGVsQWN0aW9uQmFzZUtleTtcbiAgICAgICAgZGVzY3JpcHRvci5fdHlwZSA9IHRoaXMuX3R5cGU7XG4gICAgICAgIGRlc2NyaXB0b3IuX2FjdGl2YXRpb25UcmlnZ2VyID0gdGhpcy5fYWN0aXZhdGlvblRyaWdnZXI7XG4gICAgICAgIGRlc2NyaXB0b3IuX3Bvc2l0aW9uID0gdGhpcy5fcG9zaXRpb247XG4gICAgICAgIGRlc2NyaXB0b3IuX2xldmVsID0gdGhpcy5fbGV2ZWw7XG4gICAgICAgIGRlc2NyaXB0b3IuX3Bvc2l0aW9uVGFibGV2aWV3Q2F0ZWdvcmllcyA9IHRoaXMuX3Bvc2l0aW9uVGFibGV2aWV3Q2F0ZWdvcmllcyA/IFsuLi50aGlzLl9wb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXNdIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIGRlc2NyaXB0b3IuX3RhYmxldmlld0NhdGVnb3J5ID0gdGhpcy5fdGFibGV2aWV3Q2F0ZWdvcnk7XG4gICAgICAgIGRlc2NyaXB0b3IuX3JvdXRlVXJsID0gdGhpcy5fcm91dGVVcmw7XG5cbiAgICAgICAgZGVzY3JpcHRvci5fcnVuRnVuY3Rpb24gPSB0aGlzLl9ydW5GdW5jdGlvbjtcbiAgICAgICAgZGVzY3JpcHRvci5faXNWaXNpYmxlRnVuY3Rpb24gPSB0aGlzLl9pc1Zpc2libGVGdW5jdGlvbjtcbiAgICAgICAgZGVzY3JpcHRvci5faXNFbmFibGVkRnVuY3Rpb24gPSB0aGlzLl9pc0VuYWJsZWRGdW5jdGlvbjtcblxuICAgICAgICBpZiAodGhpcy5fcnVuQ29uZmlybWF0aW9uKSB7XG4gICAgICAgICAgICBkZXNjcmlwdG9yLl9ydW5Db25maXJtYXRpb24gPSB7Li4udGhpcy5fcnVuQ29uZmlybWF0aW9ufTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9ydW5Db25maXJtYXRpb24uYWNjZXB0QnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRvci5fcnVuQ29uZmlybWF0aW9uLmFjY2VwdEJ1dHRvbiA9IHsuLi50aGlzLl9ydW5Db25maXJtYXRpb24uYWNjZXB0QnV0dG9ufTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLl9ydW5Db25maXJtYXRpb24ucmVqZWN0QnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRvci5fcnVuQ29uZmlybWF0aW9uLnJlamVjdEJ1dHRvbiA9IHsuLi50aGlzLl9ydW5Db25maXJtYXRpb24ucmVqZWN0QnV0dG9ufTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGRlc2NyaXB0b3IuX3J1bk5vdGlmaWNhdGlvbk9uU3VjY2VzcyA9IHR5cGVvZiB0aGlzLl9ydW5Ob3RpZmljYXRpb25PblN1Y2Nlc3MgPT09ICdvYmplY3QnID8gey4uLnRoaXMuX3J1bk5vdGlmaWNhdGlvbk9uU3VjY2Vzc30gOiB0aGlzLl9ydW5Ob3RpZmljYXRpb25PblN1Y2Nlc3M7XG4gICAgICAgIGRlc2NyaXB0b3IuX3J1bk5vdGlmaWNhdGlvbk9uRXJyb3IgPSB0eXBlb2YgdGhpcy5fcnVuTm90aWZpY2F0aW9uT25FcnJvciA9PT0gJ29iamVjdCcgPyB7Li4udGhpcy5fcnVuTm90aWZpY2F0aW9uT25FcnJvcn0gOiB0aGlzLl9ydW5Ob3RpZmljYXRpb25PbkVycm9yO1xuXG4gICAgICAgIGlmICh0aGlzLl9hZnRlclJ1bkFjdGlvbiAhPSBudWxsKSB7XG4gICAgICAgICAgICBkZXNjcmlwdG9yLl9hZnRlclJ1bkFjdGlvbiA9IHR5cGVvZiB0aGlzLl9hZnRlclJ1bkFjdGlvbiA9PT0gJ2Z1bmN0aW9uJyA/IHRoaXMuX2FmdGVyUnVuQWN0aW9uIDogdGhpcy5fYWZ0ZXJSdW5BY3Rpb24uY29weSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9vblJ1bkVycm9yQWN0aW9uICE9IG51bGwpIHtcbiAgICAgICAgICAgIGRlc2NyaXB0b3IuX29uUnVuRXJyb3JBY3Rpb24gPSB0eXBlb2YgdGhpcy5fb25SdW5FcnJvckFjdGlvbiA9PT0gJ2Z1bmN0aW9uJyA/IHRoaXMuX29uUnVuRXJyb3JBY3Rpb24gOiB0aGlzLl9vblJ1bkVycm9yQWN0aW9uLmNvcHkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlc2NyaXB0b3IuX3Blcm1pc3Npb25zID0gdGhpcy5fcGVybWlzc2lvbnM7XG5cbiAgICAgICAgaWYgKHRoaXMuX2J1dHRvbikge1xuICAgICAgICAgICAgZGVzY3JpcHRvci5fYnV0dG9uID0ge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuX2J1dHRvblxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9idXR0b24uc3R5bGUpIHtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdG9yLl9idXR0b24uc3R5bGUgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuX2J1dHRvbi5zdHlsZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBkZXNjcmlwdG9yLl9oYXNJdGVtc1NlbGVjdGlvbiA9IHRoaXMuX2hhc0l0ZW1zU2VsZWN0aW9uO1xuICAgICAgICBkZXNjcmlwdG9yLl9jb21wb25lbnQgPSB0aGlzLl9jb21wb25lbnQ7XG4gICAgICAgIGRlc2NyaXB0b3IuX2NvbXBvbmVudEZyb21EaSA9IHRoaXMuX2NvbXBvbmVudEZyb21EaTtcbiAgICAgICAgZGVzY3JpcHRvci5fc3ViYWN0aW9uc0FzTWVudSA9IHRoaXMuX3N1YmFjdGlvbnNBc01lbnU7XG4gICAgICAgIGRlc2NyaXB0b3IuX3N1YmFjdGlvbnMgPSB0aGlzLl9zdWJhY3Rpb25zLm1hcChhID0+IGEuY29weSgpKTtcblxuICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29weSgpOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtLCBTZXJ2aWNlLCBSdW5JbnB1dEl0ZW0sIFJ1blJldHVybkl0ZW0sIFZhbGlkYXRpb25JbnB1dEl0ZW0+IHtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtLCBTZXJ2aWNlLCBSdW5JbnB1dEl0ZW0sIFJ1blJldHVybkl0ZW0sIFZhbGlkYXRpb25JbnB1dEl0ZW0+KHRoaXMuX2FjdGlvbk5hbWUsIHtcbiAgICAgICAgICAgIGRhdGFQcm92aWRlcjogdGhpcy5fZGF0YVByb3ZpZGVyLFxuICAgICAgICAgICAgbW9kZWw6IHRoaXMuX21vZGVsPy5jb3B5KCksXG4gICAgICAgICAgICBwYXJlbnRNb2RlbDogdGhpcy5fcGFyZW50TW9kZWwsXG4gICAgICAgICAgICBwYXJlbnRQcm9wZXJ0eTogdGhpcy5fcGFyZW50UHJvcGVydHlcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jb3B5RmllbGRzVG8oZGVzY3JpcHRvcik7XG5cbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gICAgfVxufVxuIl19
302
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmRlc2NyaXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvYXBpL3NyYy9hY3Rpb24vZGVzY3JpcHRvcnMvYWN0aW9uLmRlc2NyaXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUV4QixPQUFPLEVBR0gsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUdoQixhQUFhLEVBRWIsY0FBYyxFQUNkLG1CQUFtQixFQUN0QixNQUFNLDZCQUE2QixDQUFDO0FBT3JDLE9BQU8sRUFBQywyQkFBMkIsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQXFCdEcsTUFBTSxPQUFPLG9CQUFvQjtJQWlEN0IsWUFBbUIsVUFBa0IsRUFBRSxHQUF3RDtRQXRDckYsVUFBSyxHQUFtQixjQUFjLENBQUMsTUFBTSxDQUFDO1FBQzlDLHVCQUFrQixHQUFnQywyQkFBMkIsQ0FBQyxPQUFPLENBQUM7UUFDdEYsY0FBUyxHQUF1QixrQkFBa0IsQ0FBQyxZQUFZLENBQUM7UUFDaEUsV0FBTSxHQUFtQixjQUFjLENBQUMsT0FBTyxDQUFDO1FBSWhELGNBQVMsR0FBa0IsSUFBSSxDQUFDO1FBb0IxQyx5QkFBeUI7UUFDZix1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFNckMsYUFBYTtRQUNILHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixnQkFBVyxHQUE4RCxFQUFFLENBQUM7UUFHbEYsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBRTlCLElBQUksQ0FBQyxHQUFHLEVBQUUsV0FBVyxJQUFJLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsY0FBYyxJQUFJLEdBQUcsRUFB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SSxDQUFDLGlCQUFpQixDQUFDO1FBQ3RELFVBQVUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU3RCxPQUFPLFVBQVUsQ0FBQztJQUN0QixDQUFDO0lBRU0sSUFBSTtRQUNQLE1BQU0sVUFBVSxHQUFHLElBQUksb0JBQW9CLENBQWtFLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDM0gsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2hDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRTtZQUMxQixXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDOUIsY0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlO1NBQ3ZDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFOUIsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbiwgVHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7b2Z9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICAgIEFQZXJtaXNzaW9ucyxcbiAgICBDbGFzc1R5cGUsXG4gICAgQ29tbW9uc0ludGVybmFsRXJyb3IsXG4gICAgRGF0YVByb3ZpZGVySW5zdCxcbiAgICBJQWN0aW9uRGVzY3JpcHRvcixcbiAgICBJRGF0YVByb3ZpZGVyLFxuICAgIExvZ2dlclNlcnZpY2UsXG4gICAgU2VydmljZUNsYXNzVHlwZSxcbiAgICBTdHlsZUxldmVsRW51bSxcbiAgICBmaW5kUmVmbGVjdFR5cGVOYW1lXG59IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge0lBY3Rpb25CdXR0b25EZXNjcmlwdG9yfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2Zvcm0vYXBpJztcbmltcG9ydCB7TW9kZWxEZXNjcmlwdG9yfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL21vZGVsJztcblxuaW1wb3J0IHtJQWN0aW9uQ29tcG9uZW50fSBmcm9tICcuLi9tb2RlbHMvYWN0aW9uLWNvbXBvbmVudC5tb2RlbCc7XG5pbXBvcnQge0FjdGlvbkNvbmZpcm1hdGlvbn0gZnJvbSAnLi4vbW9kZWxzL2FjdGlvbi1jb25maXJtYXRpb24ubW9kZWwnO1xuaW1wb3J0IHtBY3Rpb25Ob3RpZmljYXRpb25UeXBlLCBBY3Rpb25SdW5GblR5cGUsIEFjdGlvblZhbGlkYXRpb25GblR5cGV9IGZyb20gJy4uL21vZGVscy9hY3Rpb24tZGVzY3JpcHRvci50eXBlcyc7XG5pbXBvcnQge0FjdGlvbkFjdGl2YXRpb25UcmlnZ2VyRW51bSwgQWN0aW9uUG9zaXRpb25FbnVtLCBBY3Rpb25UeXBlRW51bX0gZnJvbSAnLi4vbW9kZWxzL2FjdGlvbi50eXBlJztcbmltcG9ydCB7SUFjdGlvbkNvbnRleHR9IGZyb20gJy4uL21vZGVscy9leGVjdXRpb24vYWN0aW9uLWNvbnRleHQubW9kZWwnO1xuXG5leHBvcnQgdHlwZSBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1Byb3ZpZGVyVHlwZTxJdGVtLCBTZXJ2aWNlPiA9IHtcbiAgICBzZXJ2aWNlVHlwZT86IFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT47XG4gICAgZGF0YVByb3ZpZGVyPzogSURhdGFQcm92aWRlcjxJdGVtLCBTZXJ2aWNlPjtcbn07XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZSA9IHtcbiAgICBwYXJlbnRNb2RlbD86IE1vZGVsRGVzY3JpcHRvcjxhbnk+O1xuICAgIHBhcmVudFByb3BlcnR5Pzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQWN0aW9uRGVzY3JpcHRvckNvbnN0cnVjdG9yT3B0c1R5cGU8SXRlbSwgU2VydmljZT4gPSBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGUgJlxuICAgIEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUHJvdmlkZXJUeXBlPEl0ZW0sIFNlcnZpY2U+ICYge1xuICAgICAgICBtb2RlbD86IE1vZGVsRGVzY3JpcHRvcjxJdGVtPjtcbiAgICB9O1xuXG50eXBlIEFmdGVyUnVuQWN0aW9uVHlwZTxSdW5SZXR1cm5JdGVtPiA9IEFjdGlvbkRlc2NyaXB0b3JJbnN0PGFueSwgYW55LCBSdW5SZXR1cm5JdGVtLCBhbnksIHVuZGVmaW5lZD47XG50eXBlIE9uRXJyb3JBY3Rpb25UeXBlPFJ1bklucHV0SXRlbT4gPSBBY3Rpb25EZXNjcmlwdG9ySW5zdDxhbnksIGFueSwgUnVuSW5wdXRJdGVtLCBhbnksIHVuZGVmaW5lZD47XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtLCBTZXJ2aWNlID0gYW55LCBSdW5JbnB1dEl0ZW0gPSBJdGVtLCBSdW5SZXR1cm5JdGVtID0gSXRlbSwgVmFsaWRhdGlvbklucHV0SXRlbSA9IFJ1bklucHV0SXRlbT4gaW1wbGVtZW50cyBJQWN0aW9uRGVzY3JpcHRvcjxJdGVtLCBTZXJ2aWNlPiB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9tb2RlbD86IE1vZGVsRGVzY3JpcHRvcjxJdGVtPjtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2FjdGlvbk5hbWU6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2FjdGlvbk5hbWVMb25nOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9wYXJlbnRNb2RlbD86IE1vZGVsRGVzY3JpcHRvcjxhbnk+O1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfcGFyZW50UHJvcGVydHk/OiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2RhdGFQcm92aWRlcj86IElEYXRhUHJvdmlkZXI8SXRlbSwgU2VydmljZT47XG5cbiAgICBwcm90ZWN0ZWQgX2kxOG5Nb2RlbEFjdGlvbkJhc2VLZXk/OiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgX3R5cGU6IEFjdGlvblR5cGVFbnVtID0gQWN0aW9uVHlwZUVudW0uRGlyZWN0O1xuICAgIHByb3RlY3RlZCBfYWN0aXZhdGlvblRyaWdnZXI6IEFjdGlvbkFjdGl2YXRpb25UcmlnZ2VyRW51bSA9IEFjdGlvbkFjdGl2YXRpb25UcmlnZ2VyRW51bS5PbkNsaWNrO1xuICAgIHByb3RlY3RlZCBfcG9zaXRpb246IEFjdGlvblBvc2l0aW9uRW51bSA9IEFjdGlvblBvc2l0aW9uRW51bS5Ub29sYmFyUmlnaHQ7XG4gICAgcHJvdGVjdGVkIF9sZXZlbDogU3R5bGVMZXZlbEVudW0gPSBTdHlsZUxldmVsRW51bS5EZWZhdWx0O1xuICAgIHByaXZhdGUgX3Bvc2l0aW9uVGFibGV2aWV3Q2F0ZWdvcmllcz86IHN0cmluZ1tdO1xuICAgIHByb3RlY3RlZCBfdGFibGV2aWV3Q2F0ZWdvcnk/OiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgX3JvdXRlVXJsOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIHByb3RlY3RlZCBfcnVuRnVuY3Rpb24/OiBBY3Rpb25SdW5GblR5cGU8SXRlbSwgU2VydmljZSwgUnVuSW5wdXRJdGVtLCBSdW5SZXR1cm5JdGVtPjtcbiAgICBwcm90ZWN0ZWQgX2lzVmlzaWJsZUZ1bmN0aW9uPzogQWN0aW9uVmFsaWRhdGlvbkZuVHlwZTxWYWxpZGF0aW9uSW5wdXRJdGVtLCBTZXJ2aWNlPjtcbiAgICBwcm90ZWN0ZWQgX2lzRW5hYmxlZEZ1bmN0aW9uPzogQWN0aW9uVmFsaWRhdGlvbkZuVHlwZTxWYWxpZGF0aW9uSW5wdXRJdGVtLCBTZXJ2aWNlPjtcblxuICAgIHByb3RlY3RlZCBfcnVuQ29uZmlybWF0aW9uPzogQWN0aW9uQ29uZmlybWF0aW9uPFJ1bklucHV0SXRlbT47XG5cbiAgICBwcm90ZWN0ZWQgX3J1bk5vdGlmaWNhdGlvbk9uU3VjY2Vzcz86IEFjdGlvbk5vdGlmaWNhdGlvblR5cGUgfCBib29sZWFuO1xuICAgIHByb3RlY3RlZCBfcnVuTm90aWZpY2F0aW9uT25FcnJvcj86IEFjdGlvbk5vdGlmaWNhdGlvblR5cGUgfCBib29sZWFuO1xuXG4gICAgcHJvdGVjdGVkIF9hZnRlclJ1bkFjdGlvbj86IEFmdGVyUnVuQWN0aW9uVHlwZTxSdW5SZXR1cm5JdGVtPiB8ICgoY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBSdW5JbnB1dEl0ZW0sIGFueT4pID0+IEFmdGVyUnVuQWN0aW9uVHlwZTxSdW5SZXR1cm5JdGVtPik7XG4gICAgcHJvdGVjdGVkIF9vblJ1bkVycm9yQWN0aW9uPzogT25FcnJvckFjdGlvblR5cGU8UnVuSW5wdXRJdGVtPiB8ICgoY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBSdW5JbnB1dEl0ZW0sIGFueT4pID0+IE9uRXJyb3JBY3Rpb25UeXBlPFJ1bklucHV0SXRlbT4pO1xuXG4gICAgLy8gc2VjdXJpdHlcbiAgICBwcm90ZWN0ZWQgX3Blcm1pc3Npb25zPzogQVBlcm1pc3Npb25zO1xuXG4gICAgLy9idXR0b25cbiAgICBwcm90ZWN0ZWQgX2J1dHRvbj86IElBY3Rpb25CdXR0b25EZXNjcmlwdG9yO1xuXG4gICAgLy8gbXVsdGlwbGUgcm93IHNlbGVjdGlvblxuICAgIHByb3RlY3RlZCBfaGFzSXRlbXNTZWxlY3Rpb24gPSBmYWxzZTtcblxuICAgIC8vIGN1c3RvbSBhY3Rpb24gY29tcG9uZW50XG4gICAgcHJvdGVjdGVkIF9jb21wb25lbnQ/OiBUeXBlPElBY3Rpb25Db21wb25lbnQ8SXRlbT4+O1xuICAgIHByb3RlY3RlZCBfY29tcG9uZW50RnJvbURpPzogSW5qZWN0aW9uVG9rZW48VHlwZTxhbnk+PjtcblxuICAgIC8vIHN1YmFjdGlvbnNcbiAgICBwcm90ZWN0ZWQgX3N1YmFjdGlvbnNBc01lbnUgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgX3N1YmFjdGlvbnM6IEFycmF5PEFjdGlvbkRlc2NyaXB0b3JJbnN0PEl0ZW0sIGFueSwgUnVuSW5wdXRJdGVtLCBhbnk+PiA9IFtdO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGFjdGlvbk5hbWU6IHN0cmluZywgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNvbnN0cnVjdG9yT3B0c1R5cGU8SXRlbSwgU2VydmljZT4pIHtcbiAgICAgICAgdGhpcy5fbW9kZWwgPSBjZmc/Lm1vZGVsO1xuICAgICAgICB0aGlzLl9hY3Rpb25OYW1lID0gYWN0aW9uTmFtZTtcblxuICAgICAgICBpZiAoKGNmZz8ucGFyZW50TW9kZWwgJiYgIWNmZz8ucGFyZW50UHJvcGVydHkpIHx8ICghY2ZnPy5wYXJlbnRQcm9wZXJ0eSAmJiBjZmc/LnBhcmVudFByb3BlcnR5KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKFxuICAgICAgICAgICAgICAgIGBQcm92aWRlIGJvdGggdGhlIHBhcmVudCBtb2RlbCBhbmQgcGFyZW50IHByb3BlcnR5IG9yIG5vbmU6ICR7dGhpcy5fYWN0aW9uTmFtZX0sICR7Y2ZnPy5wYXJlbnRNb2RlbD8uaTE4bkJhc2VLZXl9LCAke2NmZz8ucGFyZW50UHJvcGVydHl9LmBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcGFyZW50TW9kZWwgPSBjZmc/LnBhcmVudE1vZGVsO1xuICAgICAgICB0aGlzLl9wYXJlbnRQcm9wZXJ0eSA9IGNmZz8ucGFyZW50UHJvcGVydHk7XG5cbiAgICAgICAgdGhpcy5zZXRJMThuTW9kZWxBY3Rpb25CYXNlS2V5KCk7XG5cbiAgICAgICAgaWYgKGNmZz8uc2VydmljZVR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2RhdGFQcm92aWRlciA9IG5ldyBEYXRhUHJvdmlkZXJJbnN0PEl0ZW0sIFNlcnZpY2U+KGNmZy5zZXJ2aWNlVHlwZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoY2ZnPy5kYXRhUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2RhdGFQcm92aWRlciA9IGNmZy5kYXRhUHJvdmlkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZGlzcGxheU5hbWUgPSBhY3Rpb25OYW1lO1xuICAgICAgICBpZiAodGhpcy5fbW9kZWwpIGRpc3BsYXlOYW1lID0gdGhpcy5fbW9kZWwuaTE4bkJhc2VLZXkgPyBgJHt0aGlzLl9tb2RlbC5pMThuQmFzZUtleX0uJHtkaXNwbGF5TmFtZX1gIDogZGlzcGxheU5hbWU7XG4gICAgICAgIGlmICh0aGlzLl9wYXJlbnRNb2RlbCkge1xuICAgICAgICAgICAgZGlzcGxheU5hbWUgPSBgJHt0aGlzLl9wYXJlbnRNb2RlbC5pMThuQmFzZUtleX0uJHt0aGlzLl9wYXJlbnRQcm9wZXJ0eX1fJHtkaXNwbGF5TmFtZX1gO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2FjdGlvbk5hbWVMb25nID0gZGlzcGxheU5hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBtb2RlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21vZGVsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcGFyZW50TW9kZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJlbnRNb2RlbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBhcmVudFByb3BlcnR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50UHJvcGVydHk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpMThuTW9kZWxBY3Rpb25CYXNlS2V5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faTE4bk1vZGVsQWN0aW9uQmFzZUtleTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90eXBlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWN0aXZhdGlvblRyaWdnZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3RpdmF0aW9uVHJpZ2dlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBvc2l0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcG9zaXRpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByb3V0ZVVybCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JvdXRlVXJsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGF0YVByb3ZpZGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVByb3ZpZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzUnVuRnVuY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdGhpcy5fcnVuRnVuY3Rpb24gPT09ICdmdW5jdGlvbic7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBydW5GdW5jdGlvbigpOiBBY3Rpb25SdW5GblR5cGU8SXRlbSwgU2VydmljZSwgUnVuSW5wdXRJdGVtLCBSdW5SZXR1cm5JdGVtPiB7XG4gICAgICAgIGlmICghdGhpcy5fcnVuRnVuY3Rpb24pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcihgUnVuIGZ1bmN0aW9uIGlzIG5vdCBkZWZpbmVkIGZvciBhY3Rpb24gJHt0aGlzLl9hY3Rpb25OYW1lTG9uZ30gYW5kIGNhbm5vdCBiZSBpbnZva2VkYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3J1bkZ1bmN0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNWaXNpYmxlRnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Zpc2libGVGdW5jdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzRW5hYmxlZEZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNFbmFibGVkRnVuY3Rpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhY3Rpb25OYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aW9uTmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFjdGlvbk5hbWVMb25nKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aW9uTmFtZUxvbmc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBydW5Db25maXJtYXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ydW5Db25maXJtYXRpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBydW5Ob3RpZmljYXRpb25PblN1Y2Nlc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ydW5Ob3RpZmljYXRpb25PblN1Y2Nlc3M7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBydW5Ob3RpZmljYXRpb25PbkVycm9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcnVuTm90aWZpY2F0aW9uT25FcnJvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFmdGVyUnVuQWN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWZ0ZXJSdW5BY3Rpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBvblJ1bkVycm9yQWN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fb25SdW5FcnJvckFjdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBlcm1pc3Npb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGVybWlzc2lvbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0YWJsZXZpZXdDYXRlZ29yeSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxldmlld0NhdGVnb3J5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzSXRlbXNTZWxlY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNJdGVtc1NlbGVjdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGJ1dHRvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2J1dHRvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbXBvbmVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbXBvbmVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbXBvbmVudEZyb21EaSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbXBvbmVudEZyb21EaTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBvc2l0aW9uVGFibGV2aWV3Q2F0ZWdvcmllcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uVGFibGV2aWV3Q2F0ZWdvcmllcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHN1YmFjdGlvbnNBc01lbnUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdWJhY3Rpb25zQXNNZW51O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc3ViYWN0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N1YmFjdGlvbnM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHNldEkxOG5Nb2RlbEFjdGlvbkJhc2VLZXkoYmFzZT86IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5fcGFyZW50TW9kZWwgfHwgdGhpcy5fbW9kZWwpIHtcbiAgICAgICAgICAgIHRoaXMuX2kxOG5Nb2RlbEFjdGlvbkJhc2VLZXkgPSB0aGlzLl9wYXJlbnRNb2RlbFxuICAgICAgICAgICAgICAgID8gYCR7dGhpcy5fcGFyZW50TW9kZWwuaTE4bkJhc2VLZXl9LmFjdGlvbnMuJHt0aGlzLl9wYXJlbnRQcm9wZXJ0eX1fJHt0aGlzLl9hY3Rpb25OYW1lfWBcbiAgICAgICAgICAgICAgICA6IGAke2Jhc2UgPz8gdGhpcy5fbW9kZWwhLmkxOG5CYXNlS2V5fS5hY3Rpb25zLiR7dGhpcy5fYWN0aW9uTmFtZX1gO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhSdW5GdW5jdGlvbihmbjogQWN0aW9uUnVuRm5UeXBlPEl0ZW0sIFNlcnZpY2UsIFJ1bklucHV0SXRlbSwgUnVuUmV0dXJuSXRlbT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fcnVuRnVuY3Rpb24gPSBmbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhJc1Zpc2libGVGdW5jdGlvbihmbj86IEFjdGlvblZhbGlkYXRpb25GblR5cGU8VmFsaWRhdGlvbklucHV0SXRlbSwgU2VydmljZT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faXNWaXNpYmxlRnVuY3Rpb24gPSBmbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhJc0VuYWJsZWRGdW5jdGlvbihmbj86IEFjdGlvblZhbGlkYXRpb25GblR5cGU8VmFsaWRhdGlvbklucHV0SXRlbSwgU2VydmljZT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faXNFbmFibGVkRnVuY3Rpb24gPSBmbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhSb3V0ZVRyaWdnZXIocm91dGVVcmw6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9hY3RpdmF0aW9uVHJpZ2dlciA9IEFjdGlvbkFjdGl2YXRpb25UcmlnZ2VyRW51bS5PblJvdXRlO1xuICAgICAgICB0aGlzLl9yb3V0ZVVybCA9IHJvdXRlVXJsO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFBvc2l0aW9uKHBvc2l0aW9uOiBBY3Rpb25Qb3NpdGlvbkVudW0pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fcG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBjb25maXJtYXRpb24gYWN0aW9uIHdpdGggZGVmYXVsdCBzdHlsZSBiYXNlZCBvbiBhY3Rpb24gZGVzY3JpcHRvclxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoUnVuQ29uZmlybWF0aW9uKG9wdHM6IGJvb2xlYW4gfCBBY3Rpb25Db25maXJtYXRpb248UnVuSW5wdXRJdGVtPiA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fcnVuQ29uZmlybWF0aW9uID0gb3B0cyA9PT0gdHJ1ZSA/IHt9IDogb3B0cyA9PT0gZmFsc2UgPyB1bmRlZmluZWQgOiBvcHRzO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPdmVycmlkZSBkZWZhdWx0IG5vdGlmaWNhdGlvbnMgc2V0dXAuIE5vdGlmaWNhdGlvbnMgY2FuIGVpdGhlciBiZSBvdmVycmlkZGVuIHdpdGggY3VzdG9tIHRleHQgb3IgdHVybmVkIG9uL29mZi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvcHRzIFByb3ZpZGUgY29uZmlnIGZvciB0ZXh0cyBvciBvbi9vZmYgZmxhZyBmb3IgcnVuIHN1Y2Nlc3MvZXJyb3Igbm90aWZpY2F0aW9ucy5cbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aE5vdGlmaWNhdGlvbnMob3B0cz86IHtydW5PblN1Y2Nlc3M/OiBBY3Rpb25Ob3RpZmljYXRpb25UeXBlIHwgYm9vbGVhbjsgcnVuT25FcnJvcj86IEFjdGlvbk5vdGlmaWNhdGlvblR5cGUgfCBib29sZWFufSB8IGJvb2xlYW4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fcnVuTm90aWZpY2F0aW9uT25TdWNjZXNzID0gdHlwZW9mIG9wdHMgPT09ICdib29sZWFuJyA/IG9wdHMgOiBvcHRzPy5ydW5PblN1Y2Nlc3M7XG4gICAgICAgIHRoaXMuX3J1bk5vdGlmaWNhdGlvbk9uRXJyb3IgPSB0eXBlb2Ygb3B0cyA9PT0gJ2Jvb2xlYW4nID8gb3B0cyA6IG9wdHM/LnJ1bk9uRXJyb3I7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoQWZ0ZXJSdW5BY3Rpb24oYWN0aW9uPzogQWZ0ZXJSdW5BY3Rpb25UeXBlPFJ1blJldHVybkl0ZW0+IHwgKChjdHg6IElBY3Rpb25Db250ZXh0PEl0ZW0sIFJ1bklucHV0SXRlbSwgYW55PikgPT4gQWZ0ZXJSdW5BY3Rpb25UeXBlPFJ1blJldHVybkl0ZW0+KSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9hZnRlclJ1bkFjdGlvbiA9IGFjdGlvbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhPblJ1bkVycm9yQWN0aW9uKGFjdGlvbj86IE9uRXJyb3JBY3Rpb25UeXBlPFJ1bklucHV0SXRlbT4gfCAoKGN0eDogSUFjdGlvbkNvbnRleHQ8SXRlbSwgUnVuSW5wdXRJdGVtLCBhbnk+KSA9PiBPbkVycm9yQWN0aW9uVHlwZTxSdW5JbnB1dEl0ZW0+KSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9vblJ1bkVycm9yQWN0aW9uID0gYWN0aW9uO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFBlcm1pc3Npb25zKHBlcm1pc3Npb25zOiBBUGVybWlzc2lvbnMpOiB0aGlzIHtcbiAgICAgICAgaWYgKHRoaXMuX3RhYmxldmlld0NhdGVnb3J5KSB7XG4gICAgICAgICAgICBMb2dnZXJTZXJ2aWNlLmdldCgpLmRlYnVnKFxuICAgICAgICAgICAgICAgIGBXQVJOSU5HOiBQZXJtaXNzaW9ucyBzZXQgb24gYWN0aW9uICR7dGhpcy5fYWN0aW9uTmFtZUxvbmd9IHdpdGggcm91dGUgdHlwZSAnJHt0aGlzLl90YWJsZXZpZXdDYXRlZ29yeX0nIHdpbGwgYmUgb21pdHRlZCBpbiByb3V0ZSBndWFyZCB2YWxpZGF0aW9uLmBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcGVybWlzc2lvbnMgPSBwZXJtaXNzaW9ucztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhUYWJsZXZpZXdDYXRlZ29yeShjYXRlZ29yeTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3RhYmxldmlld0NhdGVnb3J5ID0gY2F0ZWdvcnk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoQnV0dG9uT3B0cyhidXR0b24/OiBJQWN0aW9uQnV0dG9uRGVzY3JpcHRvcik6IHRoaXMge1xuICAgICAgICB0aGlzLl9idXR0b24gPSBidXR0b247XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoQnV0dG9uKGxhYmVsPzogc3RyaW5nIHwgbnVsbCwgaWNvbjogc3RyaW5nIHwgbnVsbCA9IG51bGwsIGxldmVsPzogU3R5bGVMZXZlbEVudW0pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fYnV0dG9uID0ge1xuICAgICAgICAgICAgLi4udGhpcy5fYnV0dG9uLFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICBpY29uLFxuICAgICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLl9idXR0b24/LnN0eWxlLFxuICAgICAgICAgICAgICAgIGxldmVsOiBsZXZlbFxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEl0ZW1zU2VsZWN0aW9uKGhhc1NlbGVjdGlvbiA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faGFzSXRlbXNTZWxlY3Rpb24gPSBoYXNTZWxlY3Rpb247XG4gICAgICAgIHRoaXMuX2lzRW5hYmxlZEZ1bmN0aW9uID0gdGhpcy5faXNFbmFibGVkRnVuY3Rpb24gPz8gKGN0eCA9PiBvZigoY3R4LnBhcmFtZXRlcnMuc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoID8/IDApID4gMCkpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aENvbXBvbmVudChjb21wb25lbnQ6IFR5cGU8SUFjdGlvbkNvbXBvbmVudDxJdGVtPj4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fY29tcG9uZW50ID0gY29tcG9uZW50O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aENvbXBvbmVudEZyb21EaShpbmplY3Rpb25Ub2tlbjogSW5qZWN0aW9uVG9rZW48VHlwZTxhbnk+Pik6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb21wb25lbnRGcm9tRGkgPSBpbmplY3Rpb25Ub2tlbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhQb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXMocG9zaXRpb25UYWJsZXZpZXdDYXRlZ29yaWVzOiBzdHJpbmdbXSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9wb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXMgPSBwb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXM7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoSTE4bkJhc2UoYmFzZTogQ2xhc3NUeXBlPHVua25vd24+IHwgc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIGlmICh0eXBlb2YgYmFzZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVOYW1lID0gZmluZFJlZmxlY3RUeXBlTmFtZShiYXNlKTtcbiAgICAgICAgICAgIGlmICghdHlwZU5hbWUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYENvdWxkIG5vdCBmaW5kIGRlZmluZSBpMThuQmFzZUtleSBmb3IgJHtiYXNlfSBvbiBhY3Rpb24gJHt0aGlzLmFjdGlvbk5hbWVMb25nfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYmFzZSA9IHR5cGVOYW1lO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0STE4bk1vZGVsQWN0aW9uQmFzZUtleShiYXNlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhTdWJhY3Rpb25zQXNNZW51KHN1YmFjdGlvbnNBc01lbnUgPSB0cnVlKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3N1YmFjdGlvbnNBc01lbnUgPSBzdWJhY3Rpb25zQXNNZW51O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFN1YmFjdGlvbnMoLi4uc3ViYWN0aW9uczogQXJyYXk8QWN0aW9uRGVzY3JpcHRvckluc3Q8SXRlbSwgYW55LCBSdW5JbnB1dEl0ZW0sIGFueT4+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3N1YmFjdGlvbnMucHVzaCguLi5zdWJhY3Rpb25zKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGNvcHlGaWVsZHNUbyhcbiAgICAgICAgZGVzY3JpcHRvcjogQWN0aW9uRGVzY3JpcHRvckluc3Q8SXRlbSwgU2VydmljZSwgUnVuSW5wdXRJdGVtLCBSdW5SZXR1cm5JdGVtLCBWYWxpZGF0aW9uSW5wdXRJdGVtPlxuICAgICk6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PEl0ZW0sIFNlcnZpY2UsIFJ1bklucHV0SXRlbSwgUnVuUmV0dXJuSXRlbSwgVmFsaWRhdGlvbklucHV0SXRlbT4ge1xuICAgICAgICBkZXNjcmlwdG9yLl9pMThuTW9kZWxBY3Rpb25CYXNlS2V5ID0gdGhpcy5faTE4bk1vZGVsQWN0aW9uQmFzZUtleTtcbiAgICAgICAgZGVzY3JpcHRvci5fdHlwZSA9IHRoaXMuX3R5cGU7XG4gICAgICAgIGRlc2NyaXB0b3IuX2FjdGl2YXRpb25UcmlnZ2VyID0gdGhpcy5fYWN0aXZhdGlvblRyaWdnZXI7XG4gICAgICAgIGRlc2NyaXB0b3IuX3Bvc2l0aW9uID0gdGhpcy5fcG9zaXRpb247XG4gICAgICAgIGRlc2NyaXB0b3IuX2xldmVsID0gdGhpcy5fbGV2ZWw7XG4gICAgICAgIGRlc2NyaXB0b3IuX3Bvc2l0aW9uVGFibGV2aWV3Q2F0ZWdvcmllcyA9IHRoaXMuX3Bvc2l0aW9uVGFibGV2aWV3Q2F0ZWdvcmllcyA/IFsuLi50aGlzLl9wb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXNdIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIGRlc2NyaXB0b3IuX3RhYmxldmlld0NhdGVnb3J5ID0gdGhpcy5fdGFibGV2aWV3Q2F0ZWdvcnk7XG4gICAgICAgIGRlc2NyaXB0b3IuX3JvdXRlVXJsID0gdGhpcy5fcm91dGVVcmw7XG5cbiAgICAgICAgZGVzY3JpcHRvci5fcnVuRnVuY3Rpb24gPSB0aGlzLl9ydW5GdW5jdGlvbjtcbiAgICAgICAgZGVzY3JpcHRvci5faXNWaXNpYmxlRnVuY3Rpb24gPSB0aGlzLl9pc1Zpc2libGVGdW5jdGlvbjtcbiAgICAgICAgZGVzY3JpcHRvci5faXNFbmFibGVkRnVuY3Rpb24gPSB0aGlzLl9pc0VuYWJsZWRGdW5jdGlvbjtcblxuICAgICAgICBpZiAodGhpcy5fcnVuQ29uZmlybWF0aW9uKSB7XG4gICAgICAgICAgICBkZXNjcmlwdG9yLl9ydW5Db25maXJtYXRpb24gPSB7Li4udGhpcy5fcnVuQ29uZmlybWF0aW9ufTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9ydW5Db25maXJtYXRpb24uYWNjZXB0QnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRvci5fcnVuQ29uZmlybWF0aW9uLmFjY2VwdEJ1dHRvbiA9IHsuLi50aGlzLl9ydW5Db25maXJtYXRpb24uYWNjZXB0QnV0dG9ufTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLl9ydW5Db25maXJtYXRpb24ucmVqZWN0QnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRvci5fcnVuQ29uZmlybWF0aW9uLnJlamVjdEJ1dHRvbiA9IHsuLi50aGlzLl9ydW5Db25maXJtYXRpb24ucmVqZWN0QnV0dG9ufTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGRlc2NyaXB0b3IuX3J1bk5vdGlmaWNhdGlvbk9uU3VjY2VzcyA9IHR5cGVvZiB0aGlzLl9ydW5Ob3RpZmljYXRpb25PblN1Y2Nlc3MgPT09ICdvYmplY3QnID8gey4uLnRoaXMuX3J1bk5vdGlmaWNhdGlvbk9uU3VjY2Vzc30gOiB0aGlzLl9ydW5Ob3RpZmljYXRpb25PblN1Y2Nlc3M7XG4gICAgICAgIGRlc2NyaXB0b3IuX3J1bk5vdGlmaWNhdGlvbk9uRXJyb3IgPSB0eXBlb2YgdGhpcy5fcnVuTm90aWZpY2F0aW9uT25FcnJvciA9PT0gJ29iamVjdCcgPyB7Li4udGhpcy5fcnVuTm90aWZpY2F0aW9uT25FcnJvcn0gOiB0aGlzLl9ydW5Ob3RpZmljYXRpb25PbkVycm9yO1xuXG4gICAgICAgIGlmICh0aGlzLl9hZnRlclJ1bkFjdGlvbiAhPSBudWxsKSB7XG4gICAgICAgICAgICBkZXNjcmlwdG9yLl9hZnRlclJ1bkFjdGlvbiA9IHR5cGVvZiB0aGlzLl9hZnRlclJ1bkFjdGlvbiA9PT0gJ2Z1bmN0aW9uJyA/IHRoaXMuX2FmdGVyUnVuQWN0aW9uIDogdGhpcy5fYWZ0ZXJSdW5BY3Rpb24uY29weSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9vblJ1bkVycm9yQWN0aW9uICE9IG51bGwpIHtcbiAgICAgICAgICAgIGRlc2NyaXB0b3IuX29uUnVuRXJyb3JBY3Rpb24gPSB0eXBlb2YgdGhpcy5fb25SdW5FcnJvckFjdGlvbiA9PT0gJ2Z1bmN0aW9uJyA/IHRoaXMuX29uUnVuRXJyb3JBY3Rpb24gOiB0aGlzLl9vblJ1bkVycm9yQWN0aW9uLmNvcHkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRlc2NyaXB0b3IuX3Blcm1pc3Npb25zID0gdGhpcy5fcGVybWlzc2lvbnM7XG5cbiAgICAgICAgaWYgKHRoaXMuX2J1dHRvbikge1xuICAgICAgICAgICAgZGVzY3JpcHRvci5fYnV0dG9uID0ge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuX2J1dHRvblxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9idXR0b24uc3R5bGUpIHtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdG9yLl9idXR0b24uc3R5bGUgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuX2J1dHRvbi5zdHlsZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBkZXNjcmlwdG9yLl9oYXNJdGVtc1NlbGVjdGlvbiA9IHRoaXMuX2hhc0l0ZW1zU2VsZWN0aW9uO1xuICAgICAgICBkZXNjcmlwdG9yLl9jb21wb25lbnQgPSB0aGlzLl9jb21wb25lbnQ7XG4gICAgICAgIGRlc2NyaXB0b3IuX2NvbXBvbmVudEZyb21EaSA9IHRoaXMuX2NvbXBvbmVudEZyb21EaTtcbiAgICAgICAgZGVzY3JpcHRvci5fc3ViYWN0aW9uc0FzTWVudSA9IHRoaXMuX3N1YmFjdGlvbnNBc01lbnU7XG4gICAgICAgIGRlc2NyaXB0b3IuX3N1YmFjdGlvbnMgPSB0aGlzLl9zdWJhY3Rpb25zLm1hcChhID0+IGEuY29weSgpKTtcblxuICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29weSgpOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtLCBTZXJ2aWNlLCBSdW5JbnB1dEl0ZW0sIFJ1blJldHVybkl0ZW0sIFZhbGlkYXRpb25JbnB1dEl0ZW0+IHtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtLCBTZXJ2aWNlLCBSdW5JbnB1dEl0ZW0sIFJ1blJldHVybkl0ZW0sIFZhbGlkYXRpb25JbnB1dEl0ZW0+KHRoaXMuX2FjdGlvbk5hbWUsIHtcbiAgICAgICAgICAgIGRhdGFQcm92aWRlcjogdGhpcy5fZGF0YVByb3ZpZGVyLFxuICAgICAgICAgICAgbW9kZWw6IHRoaXMuX21vZGVsPy5jb3B5KCksXG4gICAgICAgICAgICBwYXJlbnRNb2RlbDogdGhpcy5fcGFyZW50TW9kZWwsXG4gICAgICAgICAgICBwYXJlbnRQcm9wZXJ0eTogdGhpcy5fcGFyZW50UHJvcGVydHlcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jb3B5RmllbGRzVG8oZGVzY3JpcHRvcik7XG5cbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gICAgfVxufVxuIl19
@@ -229,7 +229,7 @@ class ActionDescriptorInst {
229
229
  this._button = button;
230
230
  return this;
231
231
  }
232
- withButton(label, icon = null, level = StyleLevelEnum.Default) {
232
+ withButton(label, icon = null, level) {
233
233
  this._button = {
234
234
  ...this._button,
235
235
  label,