imm-element-ui 1.6.7 → 1.6.9

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.
@@ -176,16 +176,16 @@ export class ImageComponent {
176
176
  }
177
177
  }
178
178
  ajustedImage(event) {
179
- if (this.props?.adjustable) {
180
- // 解决图片查看时的操作按钮(旋转、放大、缩小、关闭)不在屏幕右上角显示的问题
181
- let childDiv = document.getElementsByClassName('p-image-toolbar')[0];
182
- let parentDiv = document.createElement('div');
183
- parentDiv.style.width = '100vw';
184
- parentDiv.style.height = '100vh';
185
- parentDiv.style.position = 'fixed';
186
- childDiv?.parentNode?.insertBefore(parentDiv, childDiv);
187
- parentDiv.appendChild(childDiv);
188
- }
179
+ // if (this.props?.adjustable) {
180
+ // // 解决图片查看时的操作按钮(旋转、放大、缩小、关闭)不在屏幕右上角显示的问题
181
+ // let childDiv = document.getElementsByClassName('p-image-toolbar')[0];
182
+ // let parentDiv = document.createElement('div');
183
+ // parentDiv.style.width = '100vw';
184
+ // parentDiv.style.height = '100vh';
185
+ // parentDiv.style.position = 'fixed';
186
+ // childDiv?.parentNode?.insertBefore(parentDiv, childDiv);
187
+ // parentDiv.appendChild(childDiv);
188
+ // }
189
189
  }
190
190
  initLoading(counter) {
191
191
  this.counter = counter;
@@ -285,7 +285,7 @@ export class ImageComponent {
285
285
  @if (!field()?.fieldControl?.disabled) {
286
286
  <div [style]="{ position: 'relative', width: imageWidth + 10 + 'px', height: imageHeight + 10 + 'px' }">
287
287
  <div
288
- style="position: absolute; top: 0; right: 0; z-index: 9999; background: red; padding: 1px;"
288
+ style="position: absolute; top: 0; right: 0; z-index: 999; background: red; padding: 1px;"
289
289
  (click)="deleteHandler($event, image, index)">
290
290
  <i class="pi pi-times text-[12px]"></i>
291
291
  </div>
@@ -394,7 +394,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
394
394
  @if (!field()?.fieldControl?.disabled) {
395
395
  <div [style]="{ position: 'relative', width: imageWidth + 10 + 'px', height: imageHeight + 10 + 'px' }">
396
396
  <div
397
- style="position: absolute; top: 0; right: 0; z-index: 9999; background: red; padding: 1px;"
397
+ style="position: absolute; top: 0; right: 0; z-index: 999; background: red; padding: 1px;"
398
398
  (click)="deleteHandler($event, image, index)">
399
399
  <i class="pi pi-times text-[12px]"></i>
400
400
  </div>
@@ -422,4 +422,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
422
422
  type: ViewChild,
423
423
  args: ['imageComp', { read: ElementRef, static: false }]
424
424
  }] } });
425
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvZm9ybS9mb3JtLXR5cGUvaW1hZ2UudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEMsT0FBTyxFQUFzQyxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE9BQU8sRUFBRSxNQUFNLEVBQXdCLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUF5THBELE1BQU0sT0FBTyxjQUFjO0lBVzFCLFlBQ1MsSUFBZ0IsRUFDaEIsTUFBcUIsRUFDckIsUUFBbUIsRUFDbkIsUUFBa0I7UUFIbEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWIzQixVQUFLLEdBQUcsS0FBSyxFQUFhLENBQUM7UUFDM0IsVUFBSyxHQUFlLEVBQUUsQ0FBQztRQUN2QixjQUFTLEdBQWEsRUFBRSxDQUFDO1FBQ3pCLGdCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUNwQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFlBQU8sR0FBRyxDQUFD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Q0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELGFBQWEsQ0FBQyxFQUFPO1FBQ3BCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0YsQ0FBQzsrR0F0TlcsY0FBYzttR0FBZCxjQUFjLGdTQUNNLFVBQVUsNkJBN0doQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQXlHTSx3ME1BMUdOLFVBQVUsZzVCQUFFLFlBQVksa2JBQUUsS0FBSyxxV0FBRSxtQkFBbUIsMEJBQUUsYUFBYTs7NEZBNkdqRSxjQUFjO2tCQXhKMUIsU0FBUzsrQkFDQyxZQUFZLGNBQ1YsSUFBSSxXQXlDUCxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyxZQUNwRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQXlHTTswSkFJNkMsWUFBWTtzQkFBeEUsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBlZmZlY3QsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWQgfSBmcm9tICdwcmltZW5nL2ZpbGV1cGxvYWQnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IEltYWdlIH0gZnJvbSAncHJpbWVuZy9pbWFnZSc7XHJcbmltcG9ydCB7IEZvcm1GaWVsZCwgRmllbGRQcm9wcywgQXR0cmlidXRlRXZlbnQgfSBmcm9tICcuLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXZlbnQsIEh0dHBIZWFkZXJzLCBIdHRwUmVxdWVzdCwgSHR0cEV2ZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBmaWx0ZXIsIGZvcmtKb2luLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VQcm9wcyBleHRlbmRzIEZpZWxkUHJvcHMge1xyXG5cdHVybD86IHN0cmluZztcclxuXHRtZXRob2Q/OiAncG9zdCcgfCAncHV0JztcclxuXHR3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xyXG5cdG1heEZpbGVTaXplPzogbnVtYmVyO1xyXG5cdHByZXZpZXdXaWR0aD86IG51bWJlcjtcclxuXHRtb2RlPzogJ2Jhc2ljJyB8ICdhZHZhbmNlZCc7XHJcblx0aGVhZGVycz86IGFueTtcclxuXHRjdXN0b21VcGxvYWQ/OiBib29sZWFuO1xyXG5cdGZpbGVMaW1pdD86IG51bWJlcjtcclxuXHR1cGxvYWRTdHlsZUNsYXNzPzogc3RyaW5nO1xyXG5cdGNhbmNlbFN0eWxlQ2xhc3M/OiBzdHJpbmc7XHJcblx0cmVtb3ZlU3R5bGVDbGFzcz86IHN0cmluZztcclxuXHRjaG9vc2VTdHlsZUNsYXNzPzogc3RyaW5nO1xyXG5cdGFkanVzdGFibGU/OiBib29sZWFuO1xyXG5cdGltYWdlTW9kZT86IGJvb2xlYW47XHJcblx0bXVsdGlwbGU/OiBib29sZWFuO1xyXG5cdHdhdGVybWFyaz86IGJvb2xlYW47XHJcblx0c2l6ZT86ICdzbWFsbCcgfCAnbGFyZ2UnIHwgdW5kZWZpbmVkO1xyXG5cclxuXHRvbkJlZm9yZVVwbG9hZD86IEF0dHJpYnV0ZUV2ZW50O1xyXG5cdG9uU2VuZD86IEF0dHJpYnV0ZUV2ZW50O1xyXG5cdG9uVXBsb2FkPzogQXR0cmlidXRlRXZlbnQ7XHJcblx0b25FcnJvcj86IEF0dHJpYnV0ZUV2ZW50O1xyXG5cdG9uQ2xlYXI/OiBBdHRyaWJ1dGVFdmVudDtcclxuXHRvblJlbW92ZT86IEF0dHJpYnV0ZUV2ZW50O1xyXG5cdG9uU2VsZWN0PzogQXR0cmlidXRlRXZlbnQ7XHJcblx0b25Qcm9ncmVzcz86IEF0dHJpYnV0ZUV2ZW50O1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2Zvcm0taW1hZ2UnLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c3R5bGVzOiBgXHJcblx0XHQuZmlsZS1pdGVtIHtcclxuXHRcdFx0Ym9yZGVyLXRvcDogc29saWQgMXB4ICNmZmY7XHJcblx0XHR9XHJcblx0XHQudXBsb2FkLWJ0biB7XHJcblx0XHRcdGJvcmRlcjogc29saWQgMXB4IHRyYW5zcGFyZW50O1xyXG5cdFx0fVxyXG5cdFx0LnVwbG9hZC1idG4udXBsb2FkLWRpc2FibGU6aG92ZXIge1xyXG5cdFx0XHRjdXJzb3I6IGRlZmF1bHQ7XHJcblx0XHR9XHJcblx0XHQudXBsb2FkLWJ0bjpub3QoLnVwbG9hZC1kaXNhYmxlKTpob3ZlciB7XHJcblx0XHRcdGJvcmRlcjogc29saWQgMXB4IHZhcigtLXAtcHJpbWFyeS1jb2xvcik7XHJcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLXAtcHJpbWFyeS01MCk7XHJcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdH1cclxuXHRcdC51cGxvYWQtYnRuOm5vdCgudXBsb2FkLWRpc2FibGUpLm5nLWhvdmVyZWQge1xyXG5cdFx0XHRib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1wLXByaW1hcnktY29sb3IpO1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1wLXByaW1hcnktNTApO1xyXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0XHR9XHJcblx0XHQuZmlsZS1uYW1lIHtcclxuXHRcdFx0Zm9udC1zaXplOiAxMnB4O1xyXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0XHRcdGNvbG9yOiB2YXIoLS1wLXByaW1hcnktY29sb3IpICFpbXBvcnRhbnQ7XHJcblx0XHR9XHJcblx0XHQ6aG9zdCA6Om5nLWRlZXAge1xyXG5cdFx0XHQucC1pbWFnZS1wcmV2aWV3LW1hc2sge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiBpbmhlcml0O1xyXG5cdFx0XHRcdG9wYWNpdHk6IDE7XHJcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBsZWZ0O1xyXG5cdFx0XHRcdGNvbG9yOiAjMzM0MTU1O1xyXG5cdFx0XHR9XHJcblx0XHRcdHAtaW1hZ2Uge1xyXG5cdFx0XHRcdC5wLWltYWdlIHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0XHRcdGNvbG9yOiB2YXIoLS1wLXByaW1hcnktY29sb3IpICFpbXBvcnRhbnQ7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0YCxcclxuXHRpbXBvcnRzOiBbRmlsZVVwbG9hZCwgQnV0dG9uTW9kdWxlLCBJbWFnZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVHJhbnNsYXRlUGlwZV0sXHJcblx0dGVtcGxhdGU6IGA8cC1maWxlVXBsb2FkXHJcblx0XHQjZnVcclxuXHRcdGF1dG9cclxuXHRcdFtuYW1lXT1cInByb3BzLm5hbWVcIlxyXG5cdFx0W3VybF09XCJwcm9wcy51cmxcIlxyXG5cdFx0W21ldGhvZF09XCJwcm9wcy5tZXRob2QgPz8gJ3Bvc3QnXCJcclxuXHRcdGFjY2VwdD1cImltYWdlLypcIlxyXG5cdFx0W3dpdGhDcmVkZW50aWFsc109XCJwcm9wcy53aXRoQ3JlZGVudGlhbHNcIlxyXG5cdFx0W21heEZpbGVTaXplXT1cInByb3BzLm1heEZpbGVTaXplXCJcclxuXHRcdFtzdHlsZUNsYXNzXT1cInByb3BzLnN0eWxlQ2xhc3NcIlxyXG5cdFx0W3ByZXZpZXdXaWR0aF09XCJwcm9wcy5wcmV2aWV3V2lkdGggPz8gNTBcIlxyXG5cdFx0W21vZGVdPVwicHJvcHMubW9kZSA/PyAnYWR2YW5jZWQnXCJcclxuXHRcdFtoZWFkZXJzXT1cInByb3BzLmhlYWRlcnNcIlxyXG5cdFx0W2ZpbGVMaW1pdF09XCJwcm9wcy5maWxlTGltaXRcIlxyXG5cdFx0W2N1c3RvbVVwbG9hZF09XCJwcm9wcy5jdXN0b21VcGxvYWQgPz8gdHJ1ZVwiXHJcblx0XHRbbXVsdGlwbGVdPVwicHJvcHMubXVsdGlwbGUgPz8gZmFsc2VcIlxyXG5cdFx0KG9uQmVmb3JlVXBsb2FkKT1cInByb3BzLm9uQmVmb3JlVXBsb2FkPy4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uU2VuZCk9XCJwcm9wcy5vblNlbmQ/LihmaWVsZCgpISwgJGV2ZW50KVwiXHJcblx0XHQob25VcGxvYWQpPVwicHJvcHMub25VcGxvYWQ/LihmaWVsZCgpISwgJGV2ZW50KVwiXHJcblx0XHQob25FcnJvcik9XCJwcm9wcy5vbkVycm9yPy4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uQ2xlYXIpPVwicHJvcHMub25DbGVhcj8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdChvblJlbW92ZSk9XCJwcm9wcy5vblJlbW92ZT8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdChvblNlbGVjdCk9XCJwcm9wcy5vblNlbGVjdD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdChvblByb2dyZXNzKT1cInByb3BzLm9uUHJvZ3Jlc3M/LihmaWVsZCgpISwgJGV2ZW50KVwiXHJcblx0XHQodXBsb2FkSGFuZGxlcik9XCJ1cGxvYWRIYW5kbGVyKGZpZWxkKCkhLCAkZXZlbnQsIGZ1KVwiPlxyXG5cdFx0PG5nLXRlbXBsYXRlXHJcblx0XHRcdCNoZWFkZXJcclxuXHRcdFx0bGV0LWNob29zZUNhbGxiYWNrPVwiY2hvb3NlQ2FsbGJhY2tcIj5cclxuXHRcdFx0PGRpdlxyXG5cdFx0XHRcdCNpbWFnZUNvbXBcclxuXHRcdFx0XHRbY2xhc3NdPVwiJ2ZsZXgganVzdGlmeS1jZW50ZXIgdy1mdWxsIHVwbG9hZC1idG4nICsgKGZpZWxkKCk/LmZpZWxkQ29udHJvbD8uZGlzYWJsZWQgPyAnIHVwbG9hZC1kaXNhYmxlJyA6ICcnKVwiXHJcblx0XHRcdFx0KGNsaWNrKT1cImNob29zZSgkZXZlbnQsIGNob29zZUNhbGxiYWNrKVwiPlxyXG5cdFx0XHRcdDxzcGFuXHJcblx0XHRcdFx0XHQ+PHNwYW5cclxuXHRcdFx0XHRcdFx0c3R5bGU9XCJmb250LXNpemU6IDEycHg7IG1hcmdpbi1yaWdodDogMi41cHhcIlxyXG5cdFx0XHRcdFx0XHRbY2xhc3NdPVwiJ3BpJyArIChsb2FkaW5nID8gJyBwaS1zcGluIHBpLXNwaW5uZXInIDogJyBwaS11cGxvYWQnKVwiPjwvc3BhblxyXG5cdFx0XHRcdFx0Pnt7IChsb2FkaW5nID8gJ21vZGFsLnVwbG9hZGluZycgOiAnbW9kYWwuc2VsZWN0RmlsZScpIHwgdHJhbnNsYXRlIH19PC9zcGFuXHJcblx0XHRcdFx0PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHQ8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XHJcblx0XHRcdEBpZiAoaW1hZ2VMaXN0Lmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRAaWYgKCFwcm9wcy5pbWFnZU1vZGUpIHtcclxuXHRcdFx0XHRcdEBmb3IgKGltYWdlIG9mIGltYWdlTGlzdDsgdHJhY2sgaW1hZ2U7IGxldCBpbmRleCA9ICRpbmRleCkge1xyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIGZpbGUtaXRlbVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxwLWltYWdlXHJcblx0XHRcdFx0XHRcdFx0XHRbc3JjXT1cIidodHRwczovL2hyaW1hZ2UubXlmb29kaWVwZXQuY29tLy8nICsgaW1hZ2VcIlxyXG5cdFx0XHRcdFx0XHRcdFx0W3ByZXZpZXddPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRcdFx0XHQob25TaG93KT1cImFqdXN0ZWRJbWFnZSgkZXZlbnQpXCJcclxuXHRcdFx0XHRcdFx0XHRcdGFsdD1cIkltYWdlXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgI2luZGljYXRvcj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyBpbWFnZSB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgI2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IGltYWdlIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdFx0XHQ8L3AtaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0QGlmICghZmllbGQoKT8uZmllbGRDb250cm9sPy5kaXNhYmxlZCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0PHAtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRcdGljb249XCJwaSBwaS10aW1lc1wiXHJcblx0XHRcdFx0XHRcdFx0XHRcdHNldmVyaXR5PVwiZGFuZ2VyXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0c2l6ZT1cInNtYWxsXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0KG9uQ2xpY2spPVwiZGVsZXRlSGFuZGxlcigkZXZlbnQsIGltYWdlLCBpbmRleClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbdGV4dF09XCJ0cnVlXCIgLz5cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0gQGVsc2Uge1xyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXggZ2FwLTIgbXQtMSBmbGV4LXdyYXBcIj5cclxuXHRcdFx0XHRcdFx0QGZvciAoaW1hZ2Ugb2YgaW1hZ2VMaXN0OyB0cmFjayBpbWFnZTsgbGV0IGluZGV4ID0gJGluZGV4KSB7XHJcblx0XHRcdFx0XHRcdFx0PGRpdlxyXG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJib3JkZXJcIlxyXG5cdFx0XHRcdFx0XHRcdFx0W3N0eWxlXT1cInsgaGVpZ2h0OiBpbWFnZUhlaWdodCArIDEwICsgJ3B4JyB9XCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8cC1pbWFnZVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbc3JjXT1cIidodHRwczovL2hyaW1hZ2UubXlmb29kaWVwZXQuY29tLy8nICsgaW1hZ2VcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRbcHJldmlld109XCJ0cnVlXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0KG9uU2hvdyk9XCJhanVzdGVkSW1hZ2UoJGV2ZW50KVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdGFsdD1cIkltYWdlXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAjaW5kaWNhdG9yPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdEBpZiAoIWZpZWxkKCk/LmZpZWxkQ29udHJvbD8uZGlzYWJsZWQpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgW3N0eWxlXT1cInsgcG9zaXRpb246ICdyZWxhdGl2ZScsIHdpZHRoOiBpbWFnZVdpZHRoICsgMTAgKyAncHgnLCBoZWlnaHQ6IGltYWdlSGVpZ2h0ICsgMTAgKyAncHgnIH1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IHJpZ2h0OiAwOyB6LWluZGV4OiA5OTk5OyBiYWNrZ3JvdW5kOiByZWQ7IHBhZGRpbmc6IDFweDtcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdChjbGljayk9XCJkZWxldGVIYW5kbGVyKCRldmVudCwgaW1hZ2UsIGluZGV4KVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktdGltZXMgdGV4dC1bMTJweF1cIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgI2ltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJwLTJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpbWdcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3NyY109XCInaHR0cHM6Ly9ocmltYWdlLm15Zm9vZGllcGV0LmNvbS8vJyArIGltYWdlXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0YWx0PVwiaW1hZ2VcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRbc3R5bGVdPVwieyB3aWR0aDogaW1hZ2VXaWR0aCArICdweCcsIGhlaWdodDogaW1hZ2VIZWlnaHQgKyAncHgnLCBvYmplY3RGaXQ6ICdjb3ZlcicgfVwiIC8+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L3AtaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdDxuZy10ZW1wbGF0ZSAjZmlsZT4gPC9uZy10ZW1wbGF0ZT5cclxuXHQ8L3AtZmlsZVVwbG9hZD5gLFxyXG5cdHN0eWxlVXJsOiAnLi4vLi4vc3R5bGVzL3N0eWxlcy5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEltYWdlQ29tcG9uZW50IHtcclxuXHRAVmlld0NoaWxkKCdpbWFnZUNvbXAnLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgaW1hZ2VDb21wUmVmITogRWxlbWVudFJlZjtcclxuXHRmaWVsZCA9IGlucHV0PEZvcm1GaWVsZD4oKTtcclxuXHRwcm9wczogSW1hZ2VQcm9wcyA9IHt9O1xyXG5cdGltYWdlTGlzdDogc3RyaW5nW10gPSBbXTtcclxuXHRkZWxldGVIb29rczogT2JzZXJ2YWJsZTxhbnk+W10gPSBbXTtcclxuXHRsb2FkaW5nID0gZmFsc2U7XHJcblx0Y291bnRlciA9IDA7XHJcblx0aW1hZ2VXaWR0aCA9IDA7XHJcblx0aW1hZ2VIZWlnaHQgPSAwO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuXHRcdHByaXZhdGUgYWN0aW9uOiBBY3Rpb25TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG5cdFx0cHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsXHJcblx0KSB7XHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5maWVsZCgpKSB7XHJcblx0XHRcdFx0dGhpcy5wcm9wcyA9IHRoaXMuZmllbGQoKSEuaW1hZ2VQcm9wcyE7XHJcblx0XHRcdFx0dGhpcy5pbml0SW1hZ2VTaXplKCk7XHJcblx0XHRcdFx0dGhpcy5oYW5kbGVEaXNhYmxlZCgpO1xyXG5cdFx0XHRcdHRoaXMuaGFuZGxlSG9va0NoYW5nZSgpO1xyXG5cdFx0XHRcdHRoaXMuYWZ0ZXJTdWJtaXQoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRjb25zdCBsYWJlbEFjdGlvbiA9IHRoaXMuYWN0aW9uLmdldEZpZWxkTGFiZWxBY3Rpb24oKTtcclxuXHRcdFx0aWYgKCFsYWJlbEFjdGlvbiB8fCBsYWJlbEFjdGlvbj8ua2V5ICE9IHRoaXMuZmllbGQoKT8udXVpZCkge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnbW91c2VlbnRlcicpIHtcclxuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaW1hZ2VDb21wUmVmLm5hdGl2ZUVsZW1lbnQsICduZy1ob3ZlcmVkJyk7XHJcblx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnbW91c2VsZWF2ZScpIHtcclxuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaW1hZ2VDb21wUmVmLm5hdGl2ZUVsZW1lbnQsICduZy1ob3ZlcmVkJyk7XHJcblx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnY2xpY2snKSB7XHJcblx0XHRcdFx0dGhpcy5pbWFnZUNvbXBSZWYubmF0aXZlRWxlbWVudC5jbGljaygpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGNob29zZShldmVudDogYW55LCBjYWxsYmFjazogYW55KSB7XHJcblx0XHRpZiAodGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LmRpc2FibGVkKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdGNhbGxiYWNrKCk7XHJcblx0fVxyXG5cclxuXHRpbml0SW1hZ2VTaXplKCkge1xyXG5cdFx0aWYgKHRoaXMucHJvcHMuc2l6ZSAhPT0gJ3NtYWxsJykge1xyXG5cdFx0XHR0aGlzLmltYWdlV2lkdGggPSA3NTtcclxuXHRcdFx0dGhpcy5pbWFnZUhlaWdodCA9IDEwMDtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuaW1hZ2VXaWR0aCA9IDM1O1xyXG5cdFx0XHR0aGlzLmltYWdlSGVpZ2h0ID0gMzU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHR1cGxvYWRJbWFnZShmaWxlOiBGaWxlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcblx0XHRmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBcclxuXHRcdFx0LnJlcXVlc3QoXHJcblx0XHRcdFx0bmV3IEh0dHBSZXF1ZXN0KCdQT1NUJywgJ2ltYWdlVXBsb2FkJywgZm9ybURhdGEsIHtcclxuXHRcdFx0XHRcdHJlcG9ydFByb2dyZXNzOiB0cnVlLFxyXG5cdFx0XHRcdFx0d2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcclxuXHRcdFx0XHR9KSxcclxuXHRcdFx0KVxyXG5cdFx0XHQucGlwZShmaWx0ZXIoKHJlc3BvbnNlOiBIdHRwRXZlbnQ8YW55PikgPT4gcmVzcG9uc2UudHlwZSA9PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlKSk7XHJcblx0fVxyXG5cclxuXHRkZWxJbWFnZShpbWFnZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdCgnaW1hZ2VEZWxldGUnLCB7IGZpZDogaW1hZ2UgfSk7XHJcblx0fVxyXG5cclxuXHR1cGxvYWRIYW5kbGVyKGZpZWxkOiBhbnksIGV2ZW50OiBhbnksIGZ1OiBhbnkpIHtcclxuXHRcdHRoaXMuaW5pdExvYWRpbmcoZXZlbnQuZmlsZXMubGVuZ3RoKTtcclxuXHRcdGV2ZW50LmZpbGVzLmZvckVhY2goYXN5bmMgKHY6IGFueSkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5wcm9wcy53YXRlcm1hcmspIHtcclxuXHRcdFx0XHRsZXQgYmxvYiA9IGF3YWl0IHRoaXMuYWRkV2F0ZXJtYXJrKHYpO1xyXG5cdFx0XHRcdGNvbnN0IG5ld0ZpbGUgPSBuZXcgRmlsZShbYmxvYl0sIHYubmFtZSwgeyB0eXBlOiB2LnR5cGUgfSk7XHJcblx0XHRcdFx0dGhpcy51cGxvYWRJbWFnZShuZXdGaWxlKS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRcdFx0bmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMudXBkYXRlTG9hZGluZyhmdSk7XHJcblx0XHRcdFx0XHRcdHRoaXMuaW1hZ2VMaXN0Py5wdXNoKHJlc3BvbnNlLmJvZHkuZmlkKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnNldFZhbHVlKHRoaXMuaW1hZ2VMaXN0KTtcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRlcnJvcjogKGVycm9yKSA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMuaW5pdExvYWRpbmcoMCk7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aGlzLnVwbG9hZEltYWdlKHYpLnN1YnNjcmliZSh7XHJcblx0XHRcdFx0XHRuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuXHRcdFx0XHRcdFx0dGhpcy51cGRhdGVMb2FkaW5nKGZ1KTtcclxuXHRcdFx0XHRcdFx0dGhpcy5pbWFnZUxpc3Q/LnB1c2gocmVzcG9uc2UuYm9keS5maWQpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc2V0VmFsdWUodGhpcy5pbWFnZUxpc3QpO1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdGVycm9yOiAoZXJyb3IpID0+IHtcclxuXHRcdFx0XHRcdFx0dGhpcy5pbml0TG9hZGluZygwKTtcclxuXHRcdFx0XHRcdFx0Y29uc29sZS5lcnJvcihlcnJvcik7XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGFkZFdhdGVybWFyayhpbWFnZUZpbGU6IEZpbGUpOiBQcm9taXNlPEJsb2I+IHtcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcblxyXG5cdFx0XHRyZWFkZXIub25sb2FkID0gKGV2ZW50KSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7XHJcblx0XHRcdFx0aW1nLm9ubG9hZCA9ICgpID0+IHtcclxuXHRcdFx0XHRcdGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xyXG5cdFx0XHRcdFx0Y29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJykhO1xyXG5cclxuXHRcdFx0XHRcdC8vIOiuvue9rueUu+W4g+Wkp+Wwj+S4uuWbvueJh+Wkp+Wwj1xyXG5cdFx0XHRcdFx0Y2FudmFzLndpZHRoID0gTnVtYmVyKGltZy53aWR0aCk7XHJcblx0XHRcdFx0XHRjYW52YXMuaGVpZ2h0ID0gTnVtYmVyKGltZy5oZWlnaHQpO1xyXG5cclxuXHRcdFx0XHRcdC8vIOe7mOWItuWOn+Wni+WbvueJh1xyXG5cdFx0XHRcdFx0Y3R4LmRyYXdJbWFnZShpbWcsIDAsIDApO1xyXG5cclxuXHRcdFx0XHRcdC8vIOa3u+WKoOawtOWNsFxyXG5cdFx0XHRcdFx0Y3R4LmZvbnQgPSBgaXRhbGljIGJvbGQgMzBweCBDb3VyaWVyYDtcclxuXHRcdFx0XHRcdGN0eC5maWxsU3R5bGUgPSAncmVkJztcclxuXHRcdFx0XHRcdGN0eC50ZXh0QWxpZ24gPSAnY2VudGVyJztcclxuXHRcdFx0XHRcdGN0eC50ZXh0QmFzZWxpbmUgPSAnbWlkZGxlJztcclxuXHRcdFx0XHRcdGNvbnN0IGN1cnJlbnRUaW1lID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0obmV3IERhdGUoKSwgJ3l5eXktTU0tZGQgSEg6bW06c3MnKSB8fCAnJztcclxuXHRcdFx0XHRcdGN0eC5maWxsVGV4dChjdXJyZW50VGltZSwgY2FudmFzLndpZHRoIC8gMiwgY2FudmFzLmhlaWdodCAtIDUwKTtcclxuXHJcblx0XHRcdFx0XHQvLyDovazmjaLkuLpCbG9iXHJcblx0XHRcdFx0XHRjYW52YXMudG9CbG9iKFxyXG5cdFx0XHRcdFx0XHQoYmxvYikgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdGlmIChibG9iKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKGJsb2IpO1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRyZWplY3QobmV3IEVycm9yKCdDYW52YXMgdG8gQmxvYiBjb252ZXJzaW9uIGZhaWxlZCcpKTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdCdpbWFnZS9qcGVnJyxcclxuXHRcdFx0XHRcdFx0MC44LFxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHR9O1xyXG5cclxuXHRcdFx0XHRpbWcuc3JjID0gZXZlbnQudGFyZ2V0Py5yZXN1bHQgYXMgc3RyaW5nO1xyXG5cdFx0XHR9O1xyXG5cclxuXHRcdFx0cmVhZGVyLm9uZXJyb3IgPSAoZXJyb3IpID0+IHJlamVjdChlcnJvcik7XHJcblx0XHRcdHJlYWRlci5yZWFkQXNEYXRhVVJMKGltYWdlRmlsZSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGRlbGV0ZUhhbmRsZXIoZXZlbnQ6IGFueSwgaW1hZ2U6IHN0cmluZywgaW5kZXg6IG51bWJlcikge1xyXG5cdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblx0XHR0aGlzLmRlbGV0ZUhvb2tzLnB1c2godGhpcy5kZWxJbWFnZShpbWFnZSkpO1xyXG5cdFx0dGhpcy5pbWFnZUxpc3QgPSB0aGlzLmltYWdlTGlzdD8uZmlsdGVyKCh2YWx1ZSwgaSkgPT4gaW5kZXggIT0gaSk7XHJcblx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc2V0VmFsdWUodGhpcy5pbWFnZUxpc3QpO1xyXG5cdH1cclxuXHJcblx0YWZ0ZXJTdWJtaXQoKSB7XHJcblx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc3VibWl0Q2hhbmdlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuXHRcdFx0aWYgKEJvb2xlYW4odmFsdWUpKSB7XHJcblx0XHRcdFx0dGhpcy5kZWxldGVIb29rcy5mb3JFYWNoKChob29rKSA9PiBob29rLnN1YnNjcmliZSgpKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRoYW5kbGVIb29rQ2hhbmdlKCkge1xyXG5cdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/Lmhvb2tDaGFuZ2Uuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRpZiAodmFsdWUgPT0gbnVsbCkge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLnByb3BzLm9uSG9va0NoYW5nZT8uKHRoaXMuZmllbGQoKSEsIHsgdmFsdWUgfSk7XHJcblx0XHRcdHRoaXMuaW1hZ2VMaXN0ID0gWy4uLnZhbHVlXTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0aGFuZGxlRGlzYWJsZWQoKSB7XHJcblx0XHRpZiAodGhpcy5wcm9wcz8uZGlzYWJsZWQpIHtcclxuXHRcdFx0dGhpcy5maWVsZCgpIS5maWVsZENvbnRyb2whLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YWp1c3RlZEltYWdlKGV2ZW50OiBhbnkpIHtcclxuXHRcdGlmICh0aGlzLnByb3BzPy5hZGp1c3RhYmxlKSB7XHJcblx0XHRcdC8vIOino+WGs+WbvueJh+afpeeci+aXtueahOaTjeS9nOaMiemSru+8iOaXi+i9rOOAgeaUvuWkp+OAgee8qeWwj+OAgeWFs+mXre+8ieS4jeWcqOWxj+W5leWPs+S4iuinkuaYvuekuueahOmXrumimFxyXG5cdFx0XHRsZXQgY2hpbGREaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwLWltYWdlLXRvb2xiYXInKVswXTtcclxuXHRcdFx0bGV0IHBhcmVudERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG5cdFx0XHRwYXJlbnREaXYuc3R5bGUud2lkdGggPSAnMTAwdncnO1xyXG5cdFx0XHRwYXJlbnREaXYuc3R5bGUuaGVpZ2h0ID0gJzEwMHZoJztcclxuXHRcdFx0cGFyZW50RGl2LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcclxuXHRcdFx0Y2hpbGREaXY/LnBhcmVudE5vZGU/Lmluc2VydEJlZm9yZShwYXJlbnREaXYsIGNoaWxkRGl2KTtcclxuXHRcdFx0cGFyZW50RGl2LmFwcGVuZENoaWxkKGNoaWxkRGl2KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGluaXRMb2FkaW5nKGNvdW50ZXI6IG51bWJlcikge1xyXG5cdFx0dGhpcy5jb3VudGVyID0gY291bnRlcjtcclxuXHRcdGlmIChjb3VudGVyID09IDApIHtcclxuXHRcdFx0dGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMubG9hZGluZyA9IHRydWU7XHJcblx0fVxyXG5cclxuXHR1cGRhdGVMb2FkaW5nKGZ1OiBhbnkpIHtcclxuXHRcdHRoaXMuY291bnRlci0tO1xyXG5cdFx0aWYgKHRoaXMuY291bnRlciA9PT0gMCkge1xyXG5cdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0ZnUuY2xlYXIoKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIl19
425
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvZm9ybS9mb3JtLXR5cGUvaW1hZ2UudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEMsT0FBTyxFQUFzQyxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE9BQU8sRUFBRSxNQUFNLEVBQXdCLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUF5THBELE1BQU0sT0FBTyxjQUFjO0lBVzFCLFlBQ1MsSUFBZ0IsRUFDaEIsTUFBcUIsRUFDckIsUUFBbUIsRUFDbkIsUUFBa0I7UUFIbEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWIzQixVQUFLLEdBQUcsS0FBSyxFQUFhLENBQUM7UUFDM0IsVUFBSyxHQUFlLEVBQUUsQ0FBQztRQUN2QixjQUFTLEdBQWEsRUFBRSxDQUFDO1FBQ3pCLGdCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUNwQyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFlBQU8sR0FBRyxDQUFD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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUJBeUdNLHcwTUExR04sVUFBVSxnNUJBQUUsWUFBWSxrYkFBRSxLQUFLLHFXQUFFLG1CQUFtQiwwQkFBRSxhQUFhOzs0RkE2R2pFLGNBQWM7a0JBeEoxQixTQUFTOytCQUNDLFlBQVksY0FDVixJQUFJLFdBeUNQLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxDQUFDLFlBQ3BFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUJBeUdNOzBKQUk2QyxZQUFZO3NCQUF4RSxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIGVmZmVjdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZCB9IGZyb20gJ3ByaW1lbmcvZmlsZXVwbG9hZCc7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcclxuaW1wb3J0IHsgSW1hZ2UgfSBmcm9tICdwcmltZW5nL2ltYWdlJztcclxuaW1wb3J0IHsgRm9ybUZpZWxkLCBGaWVsZFByb3BzLCBBdHRyaWJ1dGVFdmVudCB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFdmVudCwgSHR0cEhlYWRlcnMsIEh0dHBSZXF1ZXN0LCBIdHRwRXZlbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbmltcG9ydCB7IGZpbHRlciwgZm9ya0pvaW4sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJbWFnZVByb3BzIGV4dGVuZHMgRmllbGRQcm9wcyB7XHJcblx0dXJsPzogc3RyaW5nO1xyXG5cdG1ldGhvZD86ICdwb3N0JyB8ICdwdXQnO1xyXG5cdHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XHJcblx0bWF4RmlsZVNpemU/OiBudW1iZXI7XHJcblx0cHJldmlld1dpZHRoPzogbnVtYmVyO1xyXG5cdG1vZGU/OiAnYmFzaWMnIHwgJ2FkdmFuY2VkJztcclxuXHRoZWFkZXJzPzogYW55O1xyXG5cdGN1c3RvbVVwbG9hZD86IGJvb2xlYW47XHJcblx0ZmlsZUxpbWl0PzogbnVtYmVyO1xyXG5cdHVwbG9hZFN0eWxlQ2xhc3M/OiBzdHJpbmc7XHJcblx0Y2FuY2VsU3R5bGVDbGFzcz86IHN0cmluZztcclxuXHRyZW1vdmVTdHlsZUNsYXNzPzogc3RyaW5nO1xyXG5cdGNob29zZVN0eWxlQ2xhc3M/OiBzdHJpbmc7XHJcblx0YWRqdXN0YWJsZT86IGJvb2xlYW47XHJcblx0aW1hZ2VNb2RlPzogYm9vbGVhbjtcclxuXHRtdWx0aXBsZT86IGJvb2xlYW47XHJcblx0d2F0ZXJtYXJrPzogYm9vbGVhbjtcclxuXHRzaXplPzogJ3NtYWxsJyB8ICdsYXJnZScgfCB1bmRlZmluZWQ7XHJcblxyXG5cdG9uQmVmb3JlVXBsb2FkPzogQXR0cmlidXRlRXZlbnQ7XHJcblx0b25TZW5kPzogQXR0cmlidXRlRXZlbnQ7XHJcblx0b25VcGxvYWQ/OiBBdHRyaWJ1dGVFdmVudDtcclxuXHRvbkVycm9yPzogQXR0cmlidXRlRXZlbnQ7XHJcblx0b25DbGVhcj86IEF0dHJpYnV0ZUV2ZW50O1xyXG5cdG9uUmVtb3ZlPzogQXR0cmlidXRlRXZlbnQ7XHJcblx0b25TZWxlY3Q/OiBBdHRyaWJ1dGVFdmVudDtcclxuXHRvblByb2dyZXNzPzogQXR0cmlidXRlRXZlbnQ7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnZm9ybS1pbWFnZScsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRzdHlsZXM6IGBcclxuXHRcdC5maWxlLWl0ZW0ge1xyXG5cdFx0XHRib3JkZXItdG9wOiBzb2xpZCAxcHggI2ZmZjtcclxuXHRcdH1cclxuXHRcdC51cGxvYWQtYnRuIHtcclxuXHRcdFx0Ym9yZGVyOiBzb2xpZCAxcHggdHJhbnNwYXJlbnQ7XHJcblx0XHR9XHJcblx0XHQudXBsb2FkLWJ0bi51cGxvYWQtZGlzYWJsZTpob3ZlciB7XHJcblx0XHRcdGN1cnNvcjogZGVmYXVsdDtcclxuXHRcdH1cclxuXHRcdC51cGxvYWQtYnRuOm5vdCgudXBsb2FkLWRpc2FibGUpOmhvdmVyIHtcclxuXHRcdFx0Ym9yZGVyOiBzb2xpZCAxcHggdmFyKC0tcC1wcmltYXJ5LWNvbG9yKTtcclxuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tcC1wcmltYXJ5LTUwKTtcclxuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdFx0fVxyXG5cdFx0LnVwbG9hZC1idG46bm90KC51cGxvYWQtZGlzYWJsZSkubmctaG92ZXJlZCB7XHJcblx0XHRcdGJvcmRlcjogc29saWQgMXB4IHZhcigtLXAtcHJpbWFyeS1jb2xvcik7XHJcblx0XHRcdGJhY2tncm91bmQ6IHZhcigtLXAtcHJpbWFyeS01MCk7XHJcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdH1cclxuXHRcdC5maWxlLW5hbWUge1xyXG5cdFx0XHRmb250LXNpemU6IDEycHg7XHJcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdFx0Y29sb3I6IHZhcigtLXAtcHJpbWFyeS1jb2xvcikgIWltcG9ydGFudDtcclxuXHRcdH1cclxuXHRcdDpob3N0IDo6bmctZGVlcCB7XHJcblx0XHRcdC5wLWltYWdlLXByZXZpZXctbWFzayB7XHJcblx0XHRcdFx0cG9zaXRpb246IGluaGVyaXQ7XHJcblx0XHRcdFx0b3BhY2l0eTogMTtcclxuXHRcdFx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGxlZnQ7XHJcblx0XHRcdFx0Y29sb3I6ICMzMzQxNTU7XHJcblx0XHRcdH1cclxuXHRcdFx0cC1pbWFnZSB7XHJcblx0XHRcdFx0LnAtaW1hZ2Uge1xyXG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdFx0Y29sb3I6IHZhcigtLXAtcHJpbWFyeS1jb2xvcikgIWltcG9ydGFudDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRgLFxyXG5cdGltcG9ydHM6IFtGaWxlVXBsb2FkLCBCdXR0b25Nb2R1bGUsIEltYWdlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBUcmFuc2xhdGVQaXBlXSxcclxuXHR0ZW1wbGF0ZTogYDxwLWZpbGVVcGxvYWRcclxuXHRcdCNmdVxyXG5cdFx0YXV0b1xyXG5cdFx0W25hbWVdPVwicHJvcHMubmFtZVwiXHJcblx0XHRbdXJsXT1cInByb3BzLnVybFwiXHJcblx0XHRbbWV0aG9kXT1cInByb3BzLm1ldGhvZCA/PyAncG9zdCdcIlxyXG5cdFx0YWNjZXB0PVwiaW1hZ2UvKlwiXHJcblx0XHRbd2l0aENyZWRlbnRpYWxzXT1cInByb3BzLndpdGhDcmVkZW50aWFsc1wiXHJcblx0XHRbbWF4RmlsZVNpemVdPVwicHJvcHMubWF4RmlsZVNpemVcIlxyXG5cdFx0W3N0eWxlQ2xhc3NdPVwicHJvcHMuc3R5bGVDbGFzc1wiXHJcblx0XHRbcHJldmlld1dpZHRoXT1cInByb3BzLnByZXZpZXdXaWR0aCA/PyA1MFwiXHJcblx0XHRbbW9kZV09XCJwcm9wcy5tb2RlID8/ICdhZHZhbmNlZCdcIlxyXG5cdFx0W2hlYWRlcnNdPVwicHJvcHMuaGVhZGVyc1wiXHJcblx0XHRbZmlsZUxpbWl0XT1cInByb3BzLmZpbGVMaW1pdFwiXHJcblx0XHRbY3VzdG9tVXBsb2FkXT1cInByb3BzLmN1c3RvbVVwbG9hZCA/PyB0cnVlXCJcclxuXHRcdFttdWx0aXBsZV09XCJwcm9wcy5tdWx0aXBsZSA/PyBmYWxzZVwiXHJcblx0XHQob25CZWZvcmVVcGxvYWQpPVwicHJvcHMub25CZWZvcmVVcGxvYWQ/LihmaWVsZCgpISwgJGV2ZW50KVwiXHJcblx0XHQob25TZW5kKT1cInByb3BzLm9uU2VuZD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdChvblVwbG9hZCk9XCJwcm9wcy5vblVwbG9hZD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdChvbkVycm9yKT1cInByb3BzLm9uRXJyb3I/LihmaWVsZCgpISwgJGV2ZW50KVwiXHJcblx0XHQob25DbGVhcik9XCJwcm9wcy5vbkNsZWFyPy4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uUmVtb3ZlKT1cInByb3BzLm9uUmVtb3ZlPy4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uU2VsZWN0KT1cInByb3BzLm9uU2VsZWN0Py4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uUHJvZ3Jlc3MpPVwicHJvcHMub25Qcm9ncmVzcz8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdCh1cGxvYWRIYW5kbGVyKT1cInVwbG9hZEhhbmRsZXIoZmllbGQoKSEsICRldmVudCwgZnUpXCI+XHJcblx0XHQ8bmctdGVtcGxhdGVcclxuXHRcdFx0I2hlYWRlclxyXG5cdFx0XHRsZXQtY2hvb3NlQ2FsbGJhY2s9XCJjaG9vc2VDYWxsYmFja1wiPlxyXG5cdFx0XHQ8ZGl2XHJcblx0XHRcdFx0I2ltYWdlQ29tcFxyXG5cdFx0XHRcdFtjbGFzc109XCInZmxleCBqdXN0aWZ5LWNlbnRlciB3LWZ1bGwgdXBsb2FkLWJ0bicgKyAoZmllbGQoKT8uZmllbGRDb250cm9sPy5kaXNhYmxlZCA/ICcgdXBsb2FkLWRpc2FibGUnIDogJycpXCJcclxuXHRcdFx0XHQoY2xpY2spPVwiY2hvb3NlKCRldmVudCwgY2hvb3NlQ2FsbGJhY2spXCI+XHJcblx0XHRcdFx0PHNwYW5cclxuXHRcdFx0XHRcdD48c3BhblxyXG5cdFx0XHRcdFx0XHRzdHlsZT1cImZvbnQtc2l6ZTogMTJweDsgbWFyZ2luLXJpZ2h0OiAyLjVweFwiXHJcblx0XHRcdFx0XHRcdFtjbGFzc109XCIncGknICsgKGxvYWRpbmcgPyAnIHBpLXNwaW4gcGktc3Bpbm5lcicgOiAnIHBpLXVwbG9hZCcpXCI+PC9zcGFuXHJcblx0XHRcdFx0XHQ+e3sgKGxvYWRpbmcgPyAnbW9kYWwudXBsb2FkaW5nJyA6ICdtb2RhbC5zZWxlY3RGaWxlJykgfCB0cmFuc2xhdGUgfX08L3NwYW5cclxuXHRcdFx0XHQ+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdDxuZy10ZW1wbGF0ZSAjY29udGVudD5cclxuXHRcdFx0QGlmIChpbWFnZUxpc3QubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdEBpZiAoIXByb3BzLmltYWdlTW9kZSkge1xyXG5cdFx0XHRcdFx0QGZvciAoaW1hZ2Ugb2YgaW1hZ2VMaXN0OyB0cmFjayBpbWFnZTsgbGV0IGluZGV4ID0gJGluZGV4KSB7XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgZmlsZS1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdFx0PHAtaW1hZ2VcclxuXHRcdFx0XHRcdFx0XHRcdFtzcmNdPVwiJ2h0dHBzOi8vaHJpbWFnZS5teWZvb2RpZXBldC5jb20vLycgKyBpbWFnZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRbcHJldmlld109XCJ0cnVlXCJcclxuXHRcdFx0XHRcdFx0XHRcdChvblNob3cpPVwiYWp1c3RlZEltYWdlKCRldmVudClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0YWx0PVwiSW1hZ2VcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAjaW5kaWNhdG9yPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IGltYWdlIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAjaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgaW1hZ2UgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0XHRcdDwvcC1pbWFnZT5cclxuXHRcdFx0XHRcdFx0XHRAaWYgKCFmaWVsZCgpPy5maWVsZENvbnRyb2w/LmRpc2FibGVkKSB7XHJcblx0XHRcdFx0XHRcdFx0XHQ8cC1idXR0b25cclxuXHRcdFx0XHRcdFx0XHRcdFx0aWNvbj1cInBpIHBpLXRpbWVzXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0c2V2ZXJpdHk9XCJkYW5nZXJcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRzaXplPVwic21hbGxcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQob25DbGljayk9XCJkZWxldGVIYW5kbGVyKCRldmVudCwgaW1hZ2UsIGluZGV4KVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFt0ZXh0XT1cInRydWVcIiAvPlxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSBAZWxzZSB7XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMiBtdC0xIGZsZXgtd3JhcFwiPlxyXG5cdFx0XHRcdFx0XHRAZm9yIChpbWFnZSBvZiBpbWFnZUxpc3Q7IHRyYWNrIGltYWdlOyBsZXQgaW5kZXggPSAkaW5kZXgpIHtcclxuXHRcdFx0XHRcdFx0XHQ8ZGl2XHJcblx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cImJvcmRlclwiXHJcblx0XHRcdFx0XHRcdFx0XHRbc3R5bGVdPVwieyBoZWlnaHQ6IGltYWdlSGVpZ2h0ICsgMTAgKyAncHgnIH1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxwLWltYWdlXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtzcmNdPVwiJ2h0dHBzOi8vaHJpbWFnZS5teWZvb2RpZXBldC5jb20vLycgKyBpbWFnZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFtwcmV2aWV3XT1cInRydWVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQob25TaG93KT1cImFqdXN0ZWRJbWFnZSgkZXZlbnQpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0YWx0PVwiSW1hZ2VcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlICNpbmRpY2F0b3I+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0QGlmICghZmllbGQoKT8uZmllbGRDb250cm9sPy5kaXNhYmxlZCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBbc3R5bGVdPVwieyBwb3NpdGlvbjogJ3JlbGF0aXZlJywgd2lkdGg6IGltYWdlV2lkdGggKyAxMCArICdweCcsIGhlaWdodDogaW1hZ2VIZWlnaHQgKyAxMCArICdweCcgfVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0c3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgcmlnaHQ6IDA7IHotaW5kZXg6IDk5OTsgYmFja2dyb3VuZDogcmVkOyBwYWRkaW5nOiAxcHg7XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwiZGVsZXRlSGFuZGxlcigkZXZlbnQsIGltYWdlLCBpbmRleClcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cInBpIHBpLXRpbWVzIHRleHQtWzEycHhdXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlICNpbWFnZT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicC0yXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aW1nXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFtzcmNdPVwiJ2h0dHBzOi8vaHJpbWFnZS5teWZvb2RpZXBldC5jb20vLycgKyBpbWFnZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGFsdD1cImltYWdlXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0W3N0eWxlXT1cInsgd2lkdGg6IGltYWdlV2lkdGggKyAncHgnLCBoZWlnaHQ6IGltYWdlSGVpZ2h0ICsgJ3B4Jywgb2JqZWN0Rml0OiAnY292ZXInIH1cIiAvPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9wLWltYWdlPlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHQ8bmctdGVtcGxhdGUgI2ZpbGU+IDwvbmctdGVtcGxhdGU+XHJcblx0PC9wLWZpbGVVcGxvYWQ+YCxcclxuXHRzdHlsZVVybDogJy4uLy4uL3N0eWxlcy9zdHlsZXMuc2NzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbWFnZUNvbXBvbmVudCB7XHJcblx0QFZpZXdDaGlsZCgnaW1hZ2VDb21wJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pIGltYWdlQ29tcFJlZiE6IEVsZW1lbnRSZWY7XHJcblx0ZmllbGQgPSBpbnB1dDxGb3JtRmllbGQ+KCk7XHJcblx0cHJvcHM6IEltYWdlUHJvcHMgPSB7fTtcclxuXHRpbWFnZUxpc3Q6IHN0cmluZ1tdID0gW107XHJcblx0ZGVsZXRlSG9va3M6IE9ic2VydmFibGU8YW55PltdID0gW107XHJcblx0bG9hZGluZyA9IGZhbHNlO1xyXG5cdGNvdW50ZXIgPSAwO1xyXG5cdGltYWdlV2lkdGggPSAwO1xyXG5cdGltYWdlSGVpZ2h0ID0gMDtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcblx0XHRwcml2YXRlIGFjdGlvbjogQWN0aW9uU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuXHRcdHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlLFxyXG5cdCkge1xyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuZmllbGQoKSkge1xyXG5cdFx0XHRcdHRoaXMucHJvcHMgPSB0aGlzLmZpZWxkKCkhLmltYWdlUHJvcHMhO1xyXG5cdFx0XHRcdHRoaXMuaW5pdEltYWdlU2l6ZSgpO1xyXG5cdFx0XHRcdHRoaXMuaGFuZGxlRGlzYWJsZWQoKTtcclxuXHRcdFx0XHR0aGlzLmhhbmRsZUhvb2tDaGFuZ2UoKTtcclxuXHRcdFx0XHR0aGlzLmFmdGVyU3VibWl0KCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0Y29uc3QgbGFiZWxBY3Rpb24gPSB0aGlzLmFjdGlvbi5nZXRGaWVsZExhYmVsQWN0aW9uKCk7XHJcblx0XHRcdGlmICghbGFiZWxBY3Rpb24gfHwgbGFiZWxBY3Rpb24/LmtleSAhPSB0aGlzLmZpZWxkKCk/LnV1aWQpIHtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ21vdXNlZW50ZXInKSB7XHJcblx0XHRcdFx0dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmltYWdlQ29tcFJlZi5uYXRpdmVFbGVtZW50LCAnbmctaG92ZXJlZCcpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ21vdXNlbGVhdmUnKSB7XHJcblx0XHRcdFx0dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmltYWdlQ29tcFJlZi5uYXRpdmVFbGVtZW50LCAnbmctaG92ZXJlZCcpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ2NsaWNrJykge1xyXG5cdFx0XHRcdHRoaXMuaW1hZ2VDb21wUmVmLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRjaG9vc2UoZXZlbnQ6IGFueSwgY2FsbGJhY2s6IGFueSkge1xyXG5cdFx0aWYgKHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5kaXNhYmxlZCkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRjYWxsYmFjaygpO1xyXG5cdH1cclxuXHJcblx0aW5pdEltYWdlU2l6ZSgpIHtcclxuXHRcdGlmICh0aGlzLnByb3BzLnNpemUgIT09ICdzbWFsbCcpIHtcclxuXHRcdFx0dGhpcy5pbWFnZVdpZHRoID0gNzU7XHJcblx0XHRcdHRoaXMuaW1hZ2VIZWlnaHQgPSAxMDA7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLmltYWdlV2lkdGggPSAzNTtcclxuXHRcdFx0dGhpcy5pbWFnZUhlaWdodCA9IDM1O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dXBsb2FkSW1hZ2UoZmlsZTogRmlsZSk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG5cdFx0Zm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwXHJcblx0XHRcdC5yZXF1ZXN0KFxyXG5cdFx0XHRcdG5ldyBIdHRwUmVxdWVzdCgnUE9TVCcsICdpbWFnZVVwbG9hZCcsIGZvcm1EYXRhLCB7XHJcblx0XHRcdFx0XHRyZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuXHRcdFx0XHRcdHdpdGhDcmVkZW50aWFsczogZmFsc2UsXHJcblx0XHRcdFx0fSksXHJcblx0XHRcdClcclxuXHRcdFx0LnBpcGUoZmlsdGVyKChyZXNwb25zZTogSHR0cEV2ZW50PGFueT4pID0+IHJlc3BvbnNlLnR5cGUgPT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZSkpO1xyXG5cdH1cclxuXHJcblx0ZGVsSW1hZ2UoaW1hZ2U6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoJ2ltYWdlRGVsZXRlJywgeyBmaWQ6IGltYWdlIH0pO1xyXG5cdH1cclxuXHJcblx0dXBsb2FkSGFuZGxlcihmaWVsZDogYW55LCBldmVudDogYW55LCBmdTogYW55KSB7XHJcblx0XHR0aGlzLmluaXRMb2FkaW5nKGV2ZW50LmZpbGVzLmxlbmd0aCk7XHJcblx0XHRldmVudC5maWxlcy5mb3JFYWNoKGFzeW5jICh2OiBhbnkpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMucHJvcHMud2F0ZXJtYXJrKSB7XHJcblx0XHRcdFx0bGV0IGJsb2IgPSBhd2FpdCB0aGlzLmFkZFdhdGVybWFyayh2KTtcclxuXHRcdFx0XHRjb25zdCBuZXdGaWxlID0gbmV3IEZpbGUoW2Jsb2JdLCB2Lm5hbWUsIHsgdHlwZTogdi50eXBlIH0pO1xyXG5cdFx0XHRcdHRoaXMudXBsb2FkSW1hZ2UobmV3RmlsZSkuc3Vic2NyaWJlKHtcclxuXHRcdFx0XHRcdG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnVwZGF0ZUxvYWRpbmcoZnUpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLmltYWdlTGlzdD8ucHVzaChyZXNwb25zZS5ib2R5LmZpZCk7XHJcblx0XHRcdFx0XHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5zZXRWYWx1ZSh0aGlzLmltYWdlTGlzdCk7XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0ZXJyb3I6IChlcnJvcikgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmluaXRMb2FkaW5nKDApO1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKGVycm9yKTtcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy51cGxvYWRJbWFnZSh2KS5zdWJzY3JpYmUoe1xyXG5cdFx0XHRcdFx0bmV4dDogKHJlc3BvbnNlKSA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMudXBkYXRlTG9hZGluZyhmdSk7XHJcblx0XHRcdFx0XHRcdHRoaXMuaW1hZ2VMaXN0Py5wdXNoKHJlc3BvbnNlLmJvZHkuZmlkKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnNldFZhbHVlKHRoaXMuaW1hZ2VMaXN0KTtcclxuXHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRlcnJvcjogKGVycm9yKSA9PiB7XHJcblx0XHRcdFx0XHRcdHRoaXMuaW5pdExvYWRpbmcoMCk7XHJcblx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRhZGRXYXRlcm1hcmsoaW1hZ2VGaWxlOiBGaWxlKTogUHJvbWlzZTxCbG9iPiB7XHJcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHRjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG5cclxuXHRcdFx0cmVhZGVyLm9ubG9hZCA9IChldmVudCkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpO1xyXG5cdFx0XHRcdGltZy5vbmxvYWQgPSAoKSA9PiB7XHJcblx0XHRcdFx0XHRjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcclxuXHRcdFx0XHRcdGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpITtcclxuXHJcblx0XHRcdFx0XHQvLyDorr7nva7nlLvluIPlpKflsI/kuLrlm77niYflpKflsI9cclxuXHRcdFx0XHRcdGNhbnZhcy53aWR0aCA9IE51bWJlcihpbWcud2lkdGgpO1xyXG5cdFx0XHRcdFx0Y2FudmFzLmhlaWdodCA9IE51bWJlcihpbWcuaGVpZ2h0KTtcclxuXHJcblx0XHRcdFx0XHQvLyDnu5jliLbljp/lp4vlm77niYdcclxuXHRcdFx0XHRcdGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwKTtcclxuXHJcblx0XHRcdFx0XHQvLyDmt7vliqDmsLTljbBcclxuXHRcdFx0XHRcdGN0eC5mb250ID0gYGl0YWxpYyBib2xkIDMwcHggQ291cmllcmA7XHJcblx0XHRcdFx0XHRjdHguZmlsbFN0eWxlID0gJ3JlZCc7XHJcblx0XHRcdFx0XHRjdHgudGV4dEFsaWduID0gJ2NlbnRlcic7XHJcblx0XHRcdFx0XHRjdHgudGV4dEJhc2VsaW5lID0gJ21pZGRsZSc7XHJcblx0XHRcdFx0XHRjb25zdCBjdXJyZW50VGltZSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKG5ldyBEYXRlKCksICd5eXl5LU1NLWRkIEhIOm1tOnNzJykgfHwgJyc7XHJcblx0XHRcdFx0XHRjdHguZmlsbFRleHQoY3VycmVudFRpbWUsIGNhbnZhcy53aWR0aCAvIDIsIGNhbnZhcy5oZWlnaHQgLSA1MCk7XHJcblxyXG5cdFx0XHRcdFx0Ly8g6L2s5o2i5Li6QmxvYlxyXG5cdFx0XHRcdFx0Y2FudmFzLnRvQmxvYihcclxuXHRcdFx0XHRcdFx0KGJsb2IpID0+IHtcclxuXHRcdFx0XHRcdFx0XHRpZiAoYmxvYikge1xyXG5cdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShibG9iKTtcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0cmVqZWN0KG5ldyBFcnJvcignQ2FudmFzIHRvIEJsb2IgY29udmVyc2lvbiBmYWlsZWQnKSk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdFx0XHQnaW1hZ2UvanBlZycsXHJcblx0XHRcdFx0XHRcdDAuOCxcclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0fTtcclxuXHJcblx0XHRcdFx0aW1nLnNyYyA9IGV2ZW50LnRhcmdldD8ucmVzdWx0IGFzIHN0cmluZztcclxuXHRcdFx0fTtcclxuXHJcblx0XHRcdHJlYWRlci5vbmVycm9yID0gKGVycm9yKSA9PiByZWplY3QoZXJyb3IpO1xyXG5cdFx0XHRyZWFkZXIucmVhZEFzRGF0YVVSTChpbWFnZUZpbGUpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRkZWxldGVIYW5kbGVyKGV2ZW50OiBhbnksIGltYWdlOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpIHtcclxuXHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cdFx0dGhpcy5kZWxldGVIb29rcy5wdXNoKHRoaXMuZGVsSW1hZ2UoaW1hZ2UpKTtcclxuXHRcdHRoaXMuaW1hZ2VMaXN0ID0gdGhpcy5pbWFnZUxpc3Q/LmZpbHRlcigodmFsdWUsIGkpID0+IGluZGV4ICE9IGkpO1xyXG5cdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnNldFZhbHVlKHRoaXMuaW1hZ2VMaXN0KTtcclxuXHR9XHJcblxyXG5cdGFmdGVyU3VibWl0KCkge1xyXG5cdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnN1Ym1pdENoYW5nZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcblx0XHRcdGlmIChCb29sZWFuKHZhbHVlKSkge1xyXG5cdFx0XHRcdHRoaXMuZGVsZXRlSG9va3MuZm9yRWFjaCgoaG9vaykgPT4gaG9vay5zdWJzY3JpYmUoKSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0aGFuZGxlSG9va0NoYW5nZSgpIHtcclxuXHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5ob29rQ2hhbmdlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuXHRcdFx0aWYgKHZhbHVlID09IG51bGwpIHtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5wcm9wcy5vbkhvb2tDaGFuZ2U/Lih0aGlzLmZpZWxkKCkhLCB7IHZhbHVlIH0pO1xyXG5cdFx0XHR0aGlzLmltYWdlTGlzdCA9IFsuLi52YWx1ZV07XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGhhbmRsZURpc2FibGVkKCkge1xyXG5cdFx0aWYgKHRoaXMucHJvcHM/LmRpc2FibGVkKSB7XHJcblx0XHRcdHRoaXMuZmllbGQoKSEuZmllbGRDb250cm9sIS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGFqdXN0ZWRJbWFnZShldmVudDogYW55KSB7XHJcblx0XHQvLyBpZiAodGhpcy5wcm9wcz8uYWRqdXN0YWJsZSkge1xyXG5cdFx0Ly8gXHQvLyDop6PlhrPlm77niYfmn6XnnIvml7bnmoTmk43kvZzmjInpkq7vvIjml4vovazjgIHmlL7lpKfjgIHnvKnlsI/jgIHlhbPpl63vvInkuI3lnKjlsY/luZXlj7PkuIrop5LmmL7npLrnmoTpl67pophcclxuXHRcdC8vIFx0bGV0IGNoaWxkRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncC1pbWFnZS10b29sYmFyJylbMF07XHJcblx0XHQvLyBcdGxldCBwYXJlbnREaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuXHRcdC8vIFx0cGFyZW50RGl2LnN0eWxlLndpZHRoID0gJzEwMHZ3JztcclxuXHRcdC8vIFx0cGFyZW50RGl2LnN0eWxlLmhlaWdodCA9ICcxMDB2aCc7XHJcblx0XHQvLyBcdHBhcmVudERpdi5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XHJcblx0XHQvLyBcdGNoaWxkRGl2Py5wYXJlbnROb2RlPy5pbnNlcnRCZWZvcmUocGFyZW50RGl2LCBjaGlsZERpdik7XHJcblx0XHQvLyBcdHBhcmVudERpdi5hcHBlbmRDaGlsZChjaGlsZERpdik7XHJcblx0XHQvLyB9XHJcblx0fVxyXG5cclxuXHRpbml0TG9hZGluZyhjb3VudGVyOiBudW1iZXIpIHtcclxuXHRcdHRoaXMuY291bnRlciA9IGNvdW50ZXI7XHJcblx0XHRpZiAoY291bnRlciA9PSAwKSB7XHJcblx0XHRcdHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHR0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG5cdH1cclxuXHJcblx0dXBkYXRlTG9hZGluZyhmdTogYW55KSB7XHJcblx0XHR0aGlzLmNvdW50ZXItLTtcclxuXHRcdGlmICh0aGlzLmNvdW50ZXIgPT09IDApIHtcclxuXHRcdFx0dGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdGZ1LmNsZWFyKCk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -184,9 +184,9 @@ export class PageFormComponent extends AmComponent {
184
184
  }
185
185
  grid.selectData.push(obj);
186
186
  });
187
- this.action.updateGridAction({ type: 'add', data: grid.selectData });
188
187
  this.action.saveSignal.set(true);
189
188
  }
189
+ this.action.updateGridAction({ type: 'add', data: grid.selectData });
190
190
  }
191
191
  onCancelSelected(e) {
192
192
  const grid = this.gridList()[this.indexValue];
@@ -487,4 +487,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
487
487
  type: HostListener,
488
488
  args: ['window:resize', ['$event']]
489
489
  }] } });
490
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvcGFnZS1mb3JtL3BhZ2UtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3BhZ2UtZm9ybS9wYWdlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUNOLFNBQVMsRUFDVCxNQUFNLEVBRU4sU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sUUFBUSxFQUVSLE1BQU0sRUFDTixZQUFZLEVBRVosWUFBWSxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQWUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQVEsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxFQUFPLE1BQU0sb0JBQW9CLENBQUM7QUFHdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixD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LGNBQWMscUtBQ2QsYUFBYSwwUUFDYixVQUFVLDRYQUNWLG9CQUFvQixpTUFDcEIsYUFBYSxrREFDYixvQkFBb0I7OzRGQU1ULGlCQUFpQjtrQkFwQjdCLFNBQVM7K0JBQ0MsZUFBZSxjQUNiLElBQUksV0FDUDt3QkFDUixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLFVBQVU7d0JBQ1Ysb0JBQW9CO3dCQUNwQixhQUFhO3dCQUNiLG9CQUFvQjtxQkFDcEIsYUFHVSxFQUFFO3dEQUdPLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFDVSxVQUFVO3NCQUFyQyxZQUFZO3VCQUFDLFlBQVk7Z0JBQ0QsT0FBTztzQkFBL0IsWUFBWTt1QkFBQyxTQUFTO2dCQXlDdkIsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZXJIaXN0b3J5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvdXNlckhpc3Rvcnkuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcblx0Q29tcG9uZW50LFxyXG5cdGluamVjdCxcclxuXHRPbkluaXQsXHJcblx0Vmlld0NoaWxkLFxyXG5cdGlucHV0LFxyXG5cdGVmZmVjdCxcclxuXHRjb21wdXRlZCxcclxuXHRJbnB1dCxcclxuXHRzaWduYWwsXHJcblx0Vmlld0NoaWxkcmVuLFxyXG5cdFF1ZXJ5TGlzdCxcclxuXHRIb3N0TGlzdGVuZXIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZvcm1Db21wb25lbnQsIEZvcm1PcHRpb25zIH0gZnJvbSAnLi4vZm9ybS9mb3JtL2Zvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUm93U2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi9yb3ctc2VsZWN0b3Ivcm93LXNlbGVjdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2xvZy9sb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xyXG5pbXBvcnQgeyBDcnVtYkFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NydW1iLWFjdGlvbi9jcnVtYi1hY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3RlcHNDb21wb25lbnQsIFN0ZXAgfSBmcm9tICcuLi9zdGVwcy9zdGVwcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBHcmlkQ29tcG9uZW50LCBHcmlkT3B0aW9ucyB9IGZyb20gJy4uL2dyaWQvZ3JpZC9ncmlkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYnNNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYnMnO1xyXG5pbXBvcnQgeyBBbUNvbXBvbmVudCwgR2V0IH0gZnJvbSAnLi4vYW0vYW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VhcmNoIH0gZnJvbSAnLi4vYW0vYW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgSHJlZkJ0bkxpc3QsIEdyaWRMaXN0IH0gZnJvbSAnLi9wYWdlLWZvcm0uaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvaTE4bi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGVybWlzc2lvbkJ0biB9IGZyb20gJy4vcGFnZS1mb3JtLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IGZvcm1UeXBlVG9Qcm9wcyB9IGZyb20gJy4vcGFnZS1mb3JtLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEhyZWZCdG5MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vaHJlZi1idG4tbGlzdC9ocmVmLWJ0bi1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL2FjdGlvbi5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtcGFnZS1mb3JtJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtcclxuXHRcdEJ1dHRvbk1vZHVsZSxcclxuXHRcdFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcblx0XHRGb3JtQ29tcG9uZW50LFxyXG5cdFx0TG9nQ29tcG9uZW50LFxyXG5cdFx0Q3J1bWJBY3Rpb25Db21wb25lbnQsXHJcblx0XHRTdGVwc0NvbXBvbmVudCxcclxuXHRcdEdyaWRDb21wb25lbnQsXHJcblx0XHRUYWJzTW9kdWxlLFxyXG5cdFx0Um93U2VsZWN0b3JDb21wb25lbnQsXHJcblx0XHRUcmFuc2xhdGVQaXBlLFxyXG5cdFx0SHJlZkJ0bkxpc3RDb21wb25lbnQsXHJcblx0XSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vcGFnZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybDogJy4vcGFnZS1mb3JtLmNvbXBvbmVudC5zY3NzJyxcclxuXHRwcm92aWRlcnM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFnZUZvcm1Db21wb25lbnQgZXh0ZW5kcyBBbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblx0QFZpZXdDaGlsZCgnY0Zvcm0nKSBjRm9ybSE6IEZvcm1Db21wb25lbnQ7XHJcblx0QFZpZXdDaGlsZHJlbignY3VzdG9tR3JpZCcpIGN1c3RvbUdyaWQhOiBRdWVyeUxpc3Q8R3JpZENvbXBvbmVudD47XHJcblx0QFZpZXdDaGlsZHJlbigndGFiRm9ybScpIHRhYkZvcm0hOiBRdWVyeUxpc3Q8Rm9ybUNvbXBvbmVudD47XHJcblx0c2hvd0xvZyA9IGNvbXB1dGVkKCgpID0+IHtcclxuXHRcdHJldHVybiB0aGlzLm1vZGVsTG9nKCkgJiYgdGhpcy5zaWRlYmFyTW9kZSgpID09PSAncmlnaHQnO1xyXG5cdH0pO1xyXG5cdGFkZFZpc2libGUgPSBpbnB1dDxib29sZWFuPigpO1xyXG5cdGdyaWRMaXN0ID0gaW5wdXQ8YW55W10+KFtdKTtcclxuXHRmb3JtID0gaW5wdXQucmVxdWlyZWQ8Rm9ybU9wdGlvbnM+KHt9KTtcclxuXHRnZXRQcm1JbnB1dCA9IGlucHV0LnJlcXVpcmVkPEdldD4oe30pO1xyXG5cdHN0YXR1c1N0ZXBzID0gaW5wdXQ8U3RlcFtdPihbXSk7XHJcblx0c3RhdHVzS2V5ID0gaW5wdXQoJ3N0YXR1cycpO1xyXG5cdGhyZWZCdG5MaXN0ID0gaW5wdXQ8SHJlZkJ0bkxpc3RbXT4oW10pO1xyXG5cdHNldFRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xyXG5cdGFjdGlvbkxpc3QgPSBpbnB1dDxQZXJtaXNzaW9uQnRuW10+KFtdKTtcclxuXHRtb2RlbExvZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRzaWRlYmFyTW9kZSA9IHNpZ25hbDwnbGVmdCcgfCAncmlnaHQnPigncmlnaHQnKTtcclxuXHRmb3JtRGlzYWJsZWQgPSBpbnB1dDxGdW5jdGlvbj4oKTtcclxuXHRzdGF0dXNDb25mID0gaW5wdXQ8YW55PigpO1xyXG5cdGZvcm1EZXRhaWwgPSBpbnB1dDxhbnk+KCk7XHJcblx0c2F2ZUZ1bmMgPSBpbnB1dDxhbnk+KCk7XHJcblx0Y29uZmlnTmV3UGF0aCA9IGlucHV0PGFueT4oKTtcclxuXHJcblx0dXNlckhpc3RvcnlTZXJ2aWNlID0gaW5qZWN0KFVzZXJIaXN0b3J5U2VydmljZSk7XHJcblx0aW5kZXhWYWx1ZSA9IDA7XHJcblx0dmlzaWJsZSA9IGZhbHNlO1xyXG5cdGRpYWxvZ1NlYXJjaFBybSE6IFNlYXJjaDtcclxuXHRzZWxlY3RPcHRpb25zITogR3JpZE9wdGlvbnM7XHJcblx0c2VsZWN0RGF0YTogYW55W10gPSBbXTtcclxuXHRwYWdlVXJsID0gJyc7XHJcblx0bmV3VXJsID0gJyc7XHJcblx0YXV0aExldmVsID0gaW5wdXQ8bnVtYmVyPigtMSk7XHJcblx0aHJlZnM6IGFueVtdID0gW107XHJcblx0YWN0aW9uID0gaW5qZWN0KEFjdGlvblNlcnZpY2UpO1xyXG5cdHN1YkZvcm1Nb2RlbDogYW55ID0ge307XHJcblx0c2F2ZUJ0bkRpc2FibGUgPSBmYWxzZTtcclxuXHRncmlkRGlzYWJsZSA9IGZhbHNlO1xyXG5cdHNlbGVjdGlvbktleXM6IGFueVtdID0gW107XHJcblx0c3ViRGVsZXRlSWRzOiBhbnlbXSA9IFtdO1xyXG5cclxuXHRzdGVwc1Zpc2libGUgPSB0cnVlO1xyXG5cclxuXHRASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuXHRvblJlc2l6ZSgpIHtcclxuXHRcdHRoaXMuc2lkZWJhck1vZGUuc2V0KHdpbmRvdy5pbm5lcldpZHRoIDwgMTAyNCA/ICdsZWZ0JyA6ICdyaWdodCcpO1xyXG5cdH1cclxuXHRjb25zdHJ1Y3RvcigpIHtcclxuXHRcdHN1cGVyKCk7XHJcblx0XHR0aGlzLmlkID0gTnVtYmVyKHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCdpZCcpKTtcclxuXHRcdHRoaXMucGFnZVVybCA9IHRoaXMucm91dGUuc25hcHNob3QudXJsXHJcblx0XHRcdC5tYXAoKHNlZ21lbnQpID0+IHNlZ21lbnQucGF0aClcclxuXHRcdFx0LmpvaW4oJy8nKVxyXG5cdFx0XHQucmVwbGFjZSgvKFteXFwvXSopJC8sICcnKTtcclxuXHRcdHRoaXMubmV3VXJsID0gYCR7dGhpcy5wYWdlVXJsfW5ld2A7XHJcblx0XHRlZmZlY3QoXHJcblx0XHRcdCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLm1vZGVsTmFtZSA9IHRoaXMuZ2V0UHJtSW5wdXQoKS5tb2RlbE5hbWUhO1xyXG5cdFx0XHRcdHRoaXMuZ2V0UHJtID0geyAuLi50aGlzLmdldFBybUlucHV0KCkgfTtcclxuXHRcdFx0XHR0aGlzLmlkICYmICh0aGlzLmdldFBybS5pZCA9IHRoaXMuaWQpO1xyXG5cdFx0XHRcdGlmICh0aGlzLmlkKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyh0eXBlb2YgdGhpcy5mb3JtRGV0YWlsKCksICdmb3JtLS0tLScpO1xyXG5cdFx0XHRcdFx0dHlwZW9mIHRoaXMuZm9ybURldGFpbCgpID09ICdmdW5jdGlvbicgPyB0aGlzLmZvcm1EZXRhaWwoKSh0aGlzLmlkKSA6IHRoaXMuZ2V0RGV0YWlsKCk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMuZ2V0UHJtLmRhdGEgPSB7fTtcclxuXHRcdFx0XHRcdHRoaXMuZ3JpZExpc3QoKS5mb3JFYWNoKCh2KSA9PiB7XHJcblx0XHRcdFx0XHRcdGlmICh2LnR5cGUgPT0gJ2dyaWQnKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5nZXRQcm0uZGF0YVt2LnN1YkRhdGFLZXldID0gW107XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxyXG5cdFx0KTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHR0aGlzLmZvcm1PcHRpb25zID0geyAuLi50aGlzLmZvcm0oKSB9O1xyXG5cdFx0fSk7XHJcblx0XHRlZmZlY3QoXHJcblx0XHRcdCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLmlzTG9nID0gdGhpcy5tb2RlbExvZygpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHR7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXHJcblx0XHQpO1xyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0aWYgKHRoaXMuc3RhdHVzU3RlcHMoKS5sZW5ndGggPiAwICYmICF0aGlzLmlkKSB7XHJcblx0XHRcdFx0XHR0aGlzLnVwc2VydFBybS5hZGREYXRhIVt0aGlzLnN0YXR1c0tleSgpXSA9IHRoaXMuc3RhdHVzU3RlcHMoKVswXVsndmFsdWUnXTtcclxuXHRcdFx0XHRcdHRoaXMuZ2V0UHJtLmRhdGEgPSBPYmplY3QuYXNzaWduKHRoaXMuZ2V0UHJtLmRhdGEgfHwge30sIHtcclxuXHRcdFx0XHRcdFx0W3RoaXMuc3RhdHVzS2V5KCldOiB0aGlzLnN0YXR1c1N0ZXBzKClbMF1bJ3ZhbHVlJ10sXHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcclxuXHRcdCk7XHJcblx0XHRlZmZlY3QoXHJcblx0XHRcdCgpID0+IHtcclxuXHRcdFx0XHRpZiAodGhpcy5hdXRoTGV2ZWwoKSA8IDMpIHtcclxuXHRcdFx0XHRcdHRoaXMuc2V0RGlzYWJsZWQoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy51cENiID0gdGhpcy51cENiLmJpbmQodGhpcyk7XHJcblx0fVxyXG5cclxuXHRuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcblx0XHR0aGlzLmkxOG4uY2hhbmdlLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdHRoaXMuc3RlcHNWaXNpYmxlID0gZmFsc2U7XHJcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuc3RlcHNWaXNpYmxlID0gdHJ1ZTtcclxuXHRcdFx0fSwgMTAwKVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHJcblx0c3VibWl0Rm9ybSgpOiBhbnkge1xyXG5cdFx0Ly8gdGhpcy50YWJGb3JtLnZhbGlkYXRlKClcclxuXHRcdGNvbnNvbGUubG9nKCdnZXRQcm0tLS0tLS0nLCB0aGlzLmdldFBybSk7XHJcblx0XHRsZXQgc3ViRm9ybSA9IHRydWU7XHJcblx0XHRpZiAodGhpcy50YWJGb3JtLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0dGhpcy50YWJGb3JtLmZvckVhY2goKGl0ZW0pID0+IHtcclxuXHRcdFx0XHRpZiAoIWl0ZW0udmFsaWRhdGUoKSkge1xyXG5cdFx0XHRcdFx0c3ViRm9ybSA9IGZhbHNlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblx0XHRpZiAodGhpcy5jRm9ybS52YWxpZGF0ZSgpICYmIHN1YkZvcm0pIHtcclxuXHRcdFx0bGV0IGNiOiBhbnkgPSB0aGlzLmlkID09PSAwID8gbnVsbCA6IHRoaXMudXBDYjtcclxuXHRcdFx0dGhpcy5hY3Rpb24ubG9hZGluZy5zZXQodHJ1ZSk7XHJcblx0XHRcdHR5cGVvZiB0aGlzLnNhdmVGdW5jKCkgPT0gJ2Z1bmN0aW9uJyA/IHRoaXMuc2F2ZUZ1bmMoKSh0aGlzLnVwc2VydFBybSwgdGhpcy5pZCwgY2IpIDogdGhpcy51cHNlcnQobnVsbCwgY2IpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0ZGVsUm93cyhlOiBhbnkpIHtcclxuXHRcdGNvbnN0IGdyaWRUYWIgPSB0aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXTtcclxuXHRcdGNvbnN0IGRlbGV0ZUZ1bmMgPSBncmlkVGFiLmRlbGV0ZUZ1bmM7XHJcblx0XHRjb25zdCBzdWJUYWJsZSA9IGdyaWRUYWIuZ3JpZE9wdGlvbnMubW9kZWxOYW1lO1xyXG5cclxuXHRcdGxldCBwcm0gPSB7XHJcblx0XHRcdG1vZGVsTmFtZTogc3ViVGFibGUsXHJcblx0XHRcdGlkczogZSxcclxuXHRcdH07XHJcblx0XHRpZiAoIWRlbGV0ZUZ1bmMpIHtcclxuXHRcdFx0dGhpcy53ZWJfcmVtb3ZlKHBybSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0XHR0eXBlb2YgdGhpcy5mb3JtRGV0YWlsKCkgPT0gJ2Z1bmN0aW9uJyA/IHRoaXMuZm9ybURldGFpbCgpKHRoaXMuaWQpIDogdGhpcy5nZXREZXRhaWwoKTtcclxuXHRcdFx0XHR0aGlzLmFjdGlvbi51cGRhdGVHcmlkQWN0aW9uKHt0eXBlOidkZWxldGUnLGRhdGE6ZX0pXHJcblx0XHRcdH0pO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0ZGVsZXRlRnVuYygpLnN1YnNjcmliZSgoKSA9PiB7XHJcblx0XHRcdFx0dHlwZW9mIHRoaXMuZm9ybURldGFpbCgpID09ICdmdW5jdGlvbicgPyB0aGlzLmZvcm1EZXRhaWwoKSh0aGlzLmlkKSA6IHRoaXMuZ2V0RGV0YWlsKCk7XHJcblx0XHRcdFx0dGhpcy5hY3Rpb24udXBkYXRlR3JpZEFjdGlvbih7dHlwZTonZGVsZXRlJyxkYXRhOmV9KVxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHR9XHJcblx0dXBDYihyZXM/OiBhbnkpIHtcclxuXHRcdGlmIChyZXMuaWQgPT0gMCkge1xyXG5cdFx0XHR0eXBlb2YgdGhpcy5mb3JtRGV0YWlsKCkgPT0gJ2Z1bmN0aW9uJyA/IHRoaXMuZm9ybURldGFpbCgpKHRoaXMuaWQpIDogdGhpcy5nZXREZXRhaWwoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdGxldCBlZGl0VXJsID0gYCR7dGhpcy5wYWdlVXJsfSR7cmVzLmlkfWA7XHJcblx0XHRcdFx0dGhpcy5yb3V0ZXIubmF2aWdhdGUoW2VkaXRVcmxdKTtcclxuXHRcdFx0fSwgMTUwMCk7XHJcblx0XHR9XHJcblx0XHR0aGlzLmFjdGlvbi5zYXZlU2lnbmFsLnNldChmYWxzZSk7XHJcblx0XHR0aGlzLmNGb3JtLmZpbmFsaXplKCk7XHJcblx0fVxyXG5cdC8vIFRPRE8g5piv5ZCm6ZyA6KaB5pWw5o2u6L2s5o2i5Zue6LCD5Ye95pWwXHJcblx0b25PayhlOiBhbnkpIHtcclxuXHRcdGNvbnN0IGdyaWQgPSB0aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXTtcclxuXHRcdHRoaXMuZ3JpZExpc3QoKVt0aGlzLmluZGV4VmFsdWVdLnNlbGVjdERhdGEgPSBbXTtcclxuXHRcdGlmIChlLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0bGV0IHVuaXF1ZUtleXMgPSBbXTtcclxuXHRcdFx0aWYgKGdyaWQudW5pcXVlRmllbGQpIHtcclxuXHRcdFx0XHRjb25zdCByb3dEYXRhID0gdGhpcy5jdXN0b21HcmlkXHJcblx0XHRcdFx0XHQuZ2V0KHRoaXMuaW5kZXhWYWx1ZSkhXHJcblx0XHRcdFx0XHQuZ2V0R3JpZCgpXHJcblx0XHRcdFx0XHQuYXBpLmdldFJlbmRlcmVkTm9kZXMoKVxyXG5cdFx0XHRcdFx0Lm1hcCgobm9kZSkgPT4gbm9kZS5kYXRhKTtcclxuXHRcdFx0XHR1bmlxdWVLZXlzID0gcm93RGF0YS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbVtncmlkLnVuaXF1ZUZpZWxkIV0pO1xyXG5cdFx0XHR9XHJcblx0XHRcdGUuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcblx0XHRcdFx0bGV0IG9iaiA9IGdyaWQuc2VsZWN0RGF0YUNiID8gZ3JpZC5zZWxlY3REYXRhQ2IoaXRlbSkgOiB7IC4uLml0ZW0gfTtcclxuXHRcdFx0XHRpZiAoZ3JpZC51bmlxdWVGaWVsZCAmJiB1bmlxdWVLZXlzLmluY2x1ZGVzKG9ialtncmlkLnVuaXF1ZUZpZWxkIV0gfHwgJycpKSB7XHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGdyaWQuc2VsZWN0RGF0YSEucHVzaChvYmopO1xyXG5cdFx0XHR9KTtcclxuXHRcdFx0dGhpcy5hY3Rpb24udXBkYXRlR3JpZEFjdGlvbih7dHlwZTonYWRkJyxkYXRhOmdyaWQuc2VsZWN0RGF0YX0pXHJcblx0XHRcdHRoaXMuYWN0aW9uLnNhdmVTaWduYWwuc2V0KHRydWUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0b25DYW5jZWxTZWxlY3RlZChlOiBhbnkpIHtcclxuXHRcdGNvbnN0IGdyaWQgPSB0aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXTtcclxuXHRcdGxldCBkYXRhczogYW55ID0gW107XHJcblx0XHRlLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG5cdFx0XHRjb25zdCBkYXRhID0gZ3JpZC5zZWxlY3REYXRhQ2IgPyB7IC4uLmdyaWQuc2VsZWN0RGF0YUNiKGl0ZW0pIH0gOiBpdGVtO1xyXG5cdFx0XHRkYXRhcy5wdXNoKGRhdGEpO1xyXG5cdFx0fSk7XHJcblx0XHRpZiAoZ3JpZC51bmlxdWVGaWVsZCkge1xyXG5cdFx0XHRjb25zdCBrZXlzID0gZGF0YXMubWFwKChpdGVtOiBhbnkpID0+IGl0ZW1bZ3JpZC51bmlxdWVGaWVsZF0pO1xyXG5cdFx0XHRjb25zdCByb3dEYXRhID0gdGhpcy5jdXN0b21HcmlkXHJcblx0XHRcdFx0LmdldCh0aGlzLmluZGV4VmFsdWUpIVxyXG5cdFx0XHRcdC5nZXRHcmlkKClcclxuXHRcdFx0XHQuYXBpLmdldFJlbmRlcmVkTm9kZXMoKVxyXG5cdFx0XHRcdC5tYXAoKG5vZGUpID0+IG5vZGUuZGF0YSk7XHJcblx0XHRcdGxldCBkZWxldGVkUm93cyA9IHJvd0RhdGEuZmlsdGVyKChpdGVtOiBhbnkpID0+IGtleXMuaW5jbHVkZXMoaXRlbVtncmlkLnVuaXF1ZUZpZWxkXSkpO1xyXG5cdFx0XHR0aGlzLnN1YkRlbGV0ZUlkcyA9IGRlbGV0ZWRSb3dzLm1hcCgodjogYW55KSA9PiB2LmlkKS5maWx0ZXIoKHY6IGFueSkgPT4gdik7XHJcblx0XHRcdGNvbnN0IGlkTm90Um93cyA9IGRlbGV0ZWRSb3dzLmZpbHRlcigodjogYW55KSA9PiAhdi5pZCk7XHJcblx0XHRcdC8vIGNvbnNvbGUubG9nKCdpZE5vdFJvd3MtLS0tJyxpZE5vdFJvd3MpXHJcblx0XHRcdGNvbnN0IGRlbGV0ZU5vZGVzOiBhbnkgPSBbXTtcclxuXHRcdFx0dGhpcy5jdXN0b21HcmlkXHJcblx0XHRcdFx0LmdldCh0aGlzLmluZGV4VmFsdWUpIVxyXG5cdFx0XHRcdC5nZXRHcmlkKClcclxuXHRcdFx0XHQuYXBpLmZvckVhY2hOb2RlKChub2RlOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdGxldCBtYWluID0gbm9kZS5kYXRhW2dyaWQudW5pcXVlRmllbGRdO1xyXG5cdFx0XHRcdFx0bGV0IGlzRXhpdCA9IGlkTm90Um93cy5maW5kSW5kZXgoKHY6IGFueSkgPT4gdltncmlkLnVuaXF1ZUZpZWxkXSA9PSBtYWluKTtcclxuXHRcdFx0XHRcdGlmIChpc0V4aXQgPiAtMSkge1xyXG5cdFx0XHRcdFx0XHRkZWxldGVOb2Rlcy5wdXNoKG5vZGUuZGF0YSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdC8vIGlmKGRlbGV0ZWRJZHMubGVuZ3RoID4gMCl7XHJcblx0XHRcdC8vIFx0dGhpcy5kZWxSb3dzKGRlbGV0ZWRJZHMpXHJcblx0XHRcdC8vIH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuY3VzdG9tR3JpZC5nZXQodGhpcy5pbmRleFZhbHVlKSEuc2VsZWN0Um93c0RlbGV0ZWQoZGVsZXRlTm9kZXMpO1xyXG5cdFx0XHQvLyB9XHJcblx0XHR9XHJcblx0fVxyXG5cdGdldERldGFpbCgpIHtcclxuXHRcdHRoaXMud2ViX2dldCh0aGlzLmdldFBybSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0dGhpcy5kZXRhaWxDYihyZXMpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cdC8vIOiOt+WPluivpuaDheWbnuiwg1xyXG5cdGRldGFpbENiKHJlczogYW55KSB7XHJcblx0XHR0aGlzLnVwZGF0ZVRpdGxlKHJlcyk7XHJcblx0XHRpZiAodHlwZW9mIHRoaXMuZm9ybURpc2FibGVkKCkgPT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHR0aGlzLmZvcm1EaXNGdW5jKCk7XHJcblx0XHR9XHJcblx0XHRpZiAodGhpcy5ocmVmQnRuTGlzdCgpLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0dGhpcy5zZXRIcmVmVmFsdWUoKTtcclxuXHRcdH1cclxuXHRcdHRoaXMuZ3JpZExpc3QoKS5mb3JFYWNoKCh2KSA9PiB7XHJcblx0XHRcdGlmICh2LnR5cGUgPT0gJ2Zvcm0nKSB7XHJcblx0XHRcdFx0dGhpcy5zdWJGb3JtTW9kZWxbdi5zdWJEYXRhS2V5XSA9IHJlc1t2LnN1YkRhdGFLZXldWzBdO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdHRoaXMuZ3JpZExpc3QoKS5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRpZiAodmFsdWUudHlwZSA9PSAnZ3JpZCcgJiYgIXRoaXMuZ2V0UHJtLmRhdGEuaGFzT3duUHJvcGVydHkodmFsdWUuc3ViRGF0YUtleSkpIHtcclxuXHRcdFx0XHR0aGlzLmdldFBybS5kYXRhW3ZhbHVlLnN1YkRhdGFLZXldID0gW107XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHRzZXRIcmVmVmFsdWUoKSB7XHJcblx0XHR0aGlzLmhyZWZCdG5MaXN0KCkubWFwKChpdGVtOiBhbnkpID0+IHtcclxuXHRcdFx0aWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoJ3NlYXJjaENvdW50JykgJiYgdHlwZW9mIGl0ZW0uc2VhcmNoQ291bnQgPT0gJ29iamVjdCcpIHtcclxuXHRcdFx0XHRpdGVtLnNlYXJjaENvdW50LmNvbHVtbkZpbHRlcnMuZm9yRWFjaCgodjogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRpZiAodHlwZW9mIHYuZml0ZXIgPT09ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0XHRcdFx0di5maXRlciA9IHYuZml0ZXIodGhpcy5nZXRQcm0uZGF0YSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0dGhpcy53ZWJfc2VhcmNoQ291bnQoaXRlbS5zZWFyY2hDb3VudCkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0XHRcdGl0ZW0udmFsdWUgPSByZXMudG90YWxOdW0gfHwgMDtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cdHVwZGF0ZVRpdGxlKHJlczogYW55KSB7XHJcblx0XHRsZXQgbWFpbkZpZWxkID0gdGhpcy5mb3JtKCkubWFpbkZpZWxkO1xyXG5cdFx0bGV0IHRpdGxlID0gcmVzW21haW5GaWVsZCFdO1xyXG5cdFx0dGhpcy51c2VySGlzdG9yeVNlcnZpY2Uuc2V0TGFzdFRpdGxlKHRpdGxlKTtcclxuXHR9XHJcblx0ZGF0YVNvdXJjZVNob3coKSB7XHJcblx0XHRjb25zdCBncmlkID0gdGhpcy5ncmlkTGlzdCgpW3RoaXMuaW5kZXhWYWx1ZV07XHJcblx0XHR0aGlzLmRpYWxvZ1NlYXJjaFBybSA9IHt9O1xyXG5cdFx0dGhpcy5zZWxlY3RPcHRpb25zID0gdGhpcy5ncmlkTGlzdCgpW3RoaXMuaW5kZXhWYWx1ZV1bJ3NlbGVjdE9wdGlvbnMnXSE7XHJcblx0XHRpZiAoKHRoaXMuc2VsZWN0T3B0aW9ucyBhcyBhbnkpPy5zZWFyY2hQcm0pIHtcclxuXHRcdFx0KHRoaXMuc2VsZWN0T3B0aW9ucyBhcyBhbnkpLnNlYXJjaFBybT8uY29sdW1uRmlsdGVycz8uZm9yRWFjaCgodjogYW55KSA9PiB7XHJcblx0XHRcdFx0aWYgKHR5cGVvZiB2LmZpdGVyID09ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0XHRcdHYuZml0ZXIgPSB2LmZpdGVyKG51bGwsIHRoaXMuZ2V0UHJtLmRhdGEpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHRcdHRoaXMuZGlhbG9nU2VhcmNoUHJtID0gKHRoaXMuc2VsZWN0T3B0aW9ucyBhcyBhbnkpPy5zZWFyY2hQcm07XHJcblx0XHR9XHJcblx0XHR0aGlzLmRpYWxvZ1NlYXJjaFBybS5tb2RlbE5hbWUgPSB0aGlzLnNlbGVjdE9wdGlvbnMubW9kZWxOYW1lO1xyXG5cdFx0aWYgKHRoaXMuc2VsZWN0T3B0aW9ucy5zZWxlY3Rpb25Nb2RlKSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0T3B0aW9ucy5zdXBwcmVzc1Jvd0Rlc2VsZWN0aW9uID0gdHJ1ZTtcclxuXHRcdFx0dGhpcy5zZWxlY3RPcHRpb25zLnNlbGVjdGlvbk1vZGUgPSB0aGlzLnNlbGVjdE9wdGlvbnMuc2VsZWN0aW9uTW9kZTtcclxuXHRcdFx0Y29uc3QgaXNSb3dTZWxlY3RhYmxlID0gdGhpcy5zZWxlY3RPcHRpb25zLmlzUm93U2VsZWN0YWJsZTtcclxuXHRcdFx0aWYgKHRoaXMuc2VsZWN0T3B0aW9ucy5zZWxlY3Rpb25Nb2RlICE9ICdub25lJykge1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0T3B0aW9ucy5yb3dTZWxlY3Rpb24gPSB7XHJcblx0XHRcdFx0XHRtb2RlOiB0aGlzLnNlbGVjdE9wdGlvbnMuc2VsZWN0aW9uTW9kZSA9PSAnc2luZ2xlJyA/ICdzaW5nbGVSb3cnIDogJ211bHRpUm93JyxcclxuXHRcdFx0XHRcdGlzUm93U2VsZWN0YWJsZTogaXNSb3dTZWxlY3RhYmxlID8gaXNSb3dTZWxlY3RhYmxlIDogdW5kZWZpbmVkLFxyXG5cdFx0XHRcdH07XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RPcHRpb25zLnJvd1NlbGVjdGlvbiA9IHVuZGVmaW5lZDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0Ly8gY29uc29sZS5sb2coJ29wdGlvbnMtLS0tLScsdGhpcy5zZWxlY3RPcHRpb25zKVxyXG5cdFx0aWYgKGdyaWQudW5pcXVlRmllbGQpIHtcclxuXHRcdFx0Y29uc3Qgcm93RGF0YSA9IHRoaXMuY3VzdG9tR3JpZFxyXG5cdFx0XHRcdC5nZXQodGhpcy5pbmRleFZhbHVlKSFcclxuXHRcdFx0XHQuZ2V0R3JpZCgpXHJcblx0XHRcdFx0LmFwaS5nZXRSZW5kZXJlZE5vZGVzKClcclxuXHRcdFx0XHQubWFwKChub2RlKSA9PiBub2RlLmRhdGEpO1xyXG5cdFx0XHR0aGlzLnNlbGVjdGlvbktleXMgPSByb3dEYXRhPy5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbVtncmlkLnVuaXF1ZUZpZWxkIV0pIHx8IFtdO1xyXG5cdFx0XHQvLyBjb25zb2xlLmxvZygndGhpcy5zZWxlY3Rpb25LZXlzLS0tLScsdGhpcy5zZWxlY3Rpb25LZXlzKVxyXG5cdFx0XHRpZiAodHlwZW9mIHRoaXMuc2VsZWN0T3B0aW9ucy5yb3dTZWxlY3Rpb24gPT0gJ29iamVjdCcpIHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdE9wdGlvbnMucm93U2VsZWN0aW9uLmNoZWNrYm94ZXMgPSAocGFyYW1zKSA9PiB7XHJcblx0XHRcdFx0XHRsZXQgaXRlbSA9XHJcblx0XHRcdFx0XHRcdHRoaXMuc2VsZWN0T3B0aW9ucy5kYXRhS2V5ICE9ICcnXHJcblx0XHRcdFx0XHRcdFx0PyByb3dEYXRhLmZpbmQoKHY6IGFueSkgPT4gdltncmlkLnVuaXF1ZUZpZWxkXSA9PSBwYXJhbXMuZGF0YVt0aGlzLnNlbGVjdE9wdGlvbnMuZGF0YUtleSFdKVxyXG5cdFx0XHRcdFx0XHRcdDogcm93RGF0YS5maW5kKCh2OiBhbnkpID0+IHZbZ3JpZC51bmlxdWVGaWVsZF0gPT0gcGFyYW1zLmRhdGEuaWQpO1xyXG5cdFx0XHRcdFx0aWYgKGl0ZW0gJiYgaXRlbS5pZCkge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHR9IGVsc2UgaWYgKCF0aGlzLnNlbGVjdE9wdGlvbnMucm93U2VsZWN0aW9uKSB7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RPcHRpb25zLnJvd1NlbGVjdGlvbiA9IHtcclxuXHRcdFx0XHRcdG1vZGU6ICdtdWx0aVJvdycsXHJcblx0XHRcdFx0XHRjaGVja2JveGVzOiAocGFyYW1zKSA9PiB7XHJcblx0XHRcdFx0XHRcdGxldCBpdGVtID1cclxuXHRcdFx0XHRcdFx0XHR0aGlzLnNlbGVjdE9wdGlvbnMuZGF0YUtleSAhPSAnJ1xyXG5cdFx0XHRcdFx0XHRcdFx0PyByb3dEYXRhLmZpbmQoKHY6IGFueSkgPT4gdltncmlkLnVuaXF1ZUZpZWxkXSA9PSBwYXJhbXMuZGF0YVt0aGlzLnNlbGVjdE9wdGlvbnMuZGF0YUtleSFdKVxyXG5cdFx0XHRcdFx0XHRcdFx0OiByb3dEYXRhLmZpbmQoKHY6IGFueSkgPT4gdltncmlkLnVuaXF1ZUZpZWxkXSA9PSBwYXJhbXMuZGF0YS5pZCk7XHJcblx0XHRcdFx0XHRcdGlmIChpdGVtICYmIGl0ZW0uaWQpIHtcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdFx0XHR9LFxyXG5cdFx0XHRcdH07XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0aW9uS2V5cyA9IFtdO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy52aXNpYmxlID0gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdGdvUnVuKGRhdGE6IGFueSkge1xyXG5cdFx0aWYgKHR5cGVvZiBkYXRhLnVybCA9PT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0XHRsZXQgdXJsID0gZGF0YS51cmwodGhpcy5nZXRQcm0uZGF0YSk7XHJcblx0XHRcdHRoaXMucm91dGVyLm5hdmlnYXRlKFt1cmxdKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICd3YXJuJywgc3VtbWFyeTogJ1dhcm4nLCBkZXRhaWw6ICfor7fphY3nva7ot7Povazpk77mjqUnIH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YXV0aENsaWNrKGJ0bjogYW55KSB7XHJcblx0XHRpZiAoYnRuLmhhc093blByb3BlcnR5KCdvbkNsaWNrJykpIHtcclxuXHRcdFx0YnRuLm9uQ2xpY2sodGhpcy5nZXRQcm0uZGF0YSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdHN0YXR1c0NoYW5nZSh2YWx1ZTogYW55LCBjdXN0b21TdGVwczogU3RlcHNDb21wb25lbnQpIHtcclxuXHRcdGlmICh0aGlzLmF1dGhMZXZlbCgpIDwgNCB8fCAhdGhpcy5zdGF0dXNDb25mKCkuaXNDbGljaykgcmV0dXJuO1xyXG5cdFx0aWYgKHRoaXMuaWQpIHtcclxuXHRcdFx0bGV0IHBhcmFtOiBhbnkgPSB7XHJcblx0XHRcdFx0bW9kZWxOYW1lOiB0aGlzLm1vZGVsTmFtZSxcclxuXHRcdFx0XHRkYXRhOiB7IGlkOiB0aGlzLmlkLCBbdGhpcy5zdGF0dXNLZXkoKV06IHZhbHVlIH0sXHJcblx0XHRcdH07XHJcblx0XHRcdGlmICh0aGlzLmlzTG9nKSB7XHJcblx0XHRcdFx0cGFyYW0ubG9nTW9kZWwgPSBgJHt0aGlzLm1vZGVsTmFtZX1Mb2dgO1xyXG5cdFx0XHRcdHBhcmFtLmxvZyA9IHtcclxuXHRcdFx0XHRcdHBpZDogdGhpcy5pZCxcclxuXHRcdFx0XHRcdGNvbnRlbnQ6IGBb54q25oCBXSAke3RoaXMuZ2V0UHJtLmRhdGEhW3RoaXMuc3RhdHVzS2V5KCldfSAtPiAke3ZhbHVlfWAsXHJcblx0XHRcdFx0fTtcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLndlYl93cml0ZShwYXJhbSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0XHR0aGlzLmdldERldGFpbCgpO1xyXG5cdFx0XHR9KTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuZ2V0UHJtLmRhdGEgPSBPYmplY3QuYXNzaWduKHRoaXMuZ2V0UHJtLmRhdGEgfHwge30sIHtcclxuXHRcdFx0XHRbdGhpcy5zdGF0dXNLZXkoKV06IHZhbHVlLFxyXG5cdFx0XHR9KTtcclxuXHRcdFx0dGhpcy51cHNlcnRQcm0uYWRkRGF0YSFbdGhpcy5zdGF0dXNLZXkoKV0gPSB2YWx1ZTtcclxuXHRcdFx0dGhpcy5jRm9ybS50cmlnZ2VyTW9kZWxFZmZlY3QoeyBbdGhpcy5zdGF0dXNLZXkoKV06IHZhbHVlIH0pO1xyXG5cdFx0XHQvLyBjdXN0b21TdGVwcy5yZWZyZXNoU3RlcHMoKVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Zm9ybURpc0Z1bmMoKSB7XHJcblx0XHRsZXQgZGF0YSA9IHRoaXMuZm9ybURpc2FibGVkKCkhKHRoaXMuZ2V0UHJtLmRhdGEpO1xyXG5cdFx0aWYgKHR5cGVvZiBkYXRhID09PSAnYm9vbGVhbicpIHtcclxuXHRcdFx0dGhpcy5zYXZlQnRuRGlzYWJsZSA9IGRhdGE7XHJcblx0XHRcdHRoaXMuZ3JpZERpc2FibGUgPSBkYXRhO1xyXG5cdFx0XHR0aGlzLmRpc2FibGVGb3JtKGRhdGEpO1xyXG5cdFx0XHR0aGlzLmRpc2FiZWxkQ2hpbGQoZGF0YSk7XHJcblx0XHR9XHJcblx0XHRpZiAodHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKSB7XHJcblx0XHRcdGNvbnN0IGRpc2FiZWxkID0gZGF0YS5kaXNhYmxlZDtcclxuXHRcdFx0Y29uc3QgZmlsdGVycyA9IGRhdGEuZmlsdGVycyB8fCBbXTtcclxuXHRcdFx0aWYgKCFmaWx0ZXJzLmluY2x1ZGVzKCdmb3JtJykpIHtcclxuXHRcdFx0XHR0aGlzLmRpc2FibGVGb3JtKGRpc2FiZWxkKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoIWZpbHRlcnMuaW5jbHVkZXMoJ2dyaWQnKSkge1xyXG5cdFx0XHRcdHRoaXMuZ3JpZERpc2FibGUgPSBkaXNhYmVsZDtcclxuXHRcdFx0XHR0aGlzLmRpc2FiZWxkQ2hpbGQoZGlzYWJlbGQpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdGRpc2FibGVGb3JtKGRpc2FibGU6IGJvb2xlYW4pIHtcclxuXHRcdHRoaXMuZm9ybU9wdGlvbnMuZmllbGRzPy5mb3JFYWNoKCh2KSA9PiB7XHJcblx0XHRcdHYuZ3JvdXA/LmZvckVhY2goKGc6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGxldCBmaWVsZERpc2FibGVkID0gZ1tmb3JtVHlwZVRvUHJvcHNbZy50eXBlXV0uZGlzYWJsZWQgfHwgZmFsc2U7XHJcblx0XHRcdFx0aWYgKGRpc2FibGUpIHtcclxuXHRcdFx0XHRcdHRoaXMuY0Zvcm0uZ2V0RmllbGQoZy5rZXkpPy5maWVsZENvbnRyb2whLm1hcmtBc1ByaXN0aW5lKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdFx0XHRcdHRoaXMuY0Zvcm0uZ2V0RmllbGQoZy5rZXkpPy5maWVsZENvbnRyb2whLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHQhZmllbGREaXNhYmxlZCAmJiB0aGlzLmNGb3JtLmdldEZpZWxkKGcua2V5KT8uZmllbGRDb250cm9sIS5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblx0ZGlzYWJlbGRDaGlsZChkaXNhYmVsZDogYm9vbGVhbikge1xyXG5cdFx0dGhpcy5ncmlkTGlzdCgpLmZvckVhY2goKHYsIGluZGV4OiBhbnkpID0+IHtcclxuXHRcdFx0aWYgKHYudHlwZSA9PSAnZ3JpZCcpIHtcclxuXHRcdFx0XHR2LmdyaWRPcHRpb25zLmNvbHVtbkRlZnMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRpZiAoZGlzYWJlbGQgJiYgaXRlbS5oYXNPd25Qcm9wZXJ0eSgnZWRpdGFibGUnKSkge1xyXG5cdFx0XHRcdFx0XHRpdGVtLmVkaXRhYmxlID0gZmFsc2U7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdFx0dGhpcy5jdXN0b21HcmlkLmdldChpbmRleCkhLmdldEdyaWQoKS5hcGkuc2V0R3JpZE9wdGlvbignY29sdW1uRGVmcycsIHYuZ3JpZE9wdGlvbnMuY29sdW1uRGVmcyk7XHJcblx0XHRcdH0gZWxzZSBpZiAodi50eXBlID09ICdmb3JtJykge1xyXG5cdFx0XHRcdHYuZmllbGRzPy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdGl0ZW0uZ3JvdXA/LmZvckVhY2goKGc6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0XHRsZXQgZmllbGREaXNhYmxlZCA9IGdbZm9ybVR5cGVUb1Byb3BzW2cudHlwZV1dLmRpc2FibGVkIHx8IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHRpZiAoZGlzYWJlbGQpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnRhYkZvcm0uZ2V0KGluZGV4KSEuZ2V0RmllbGQoZy5rZXkpPy5maWVsZENvbnRyb2whLm1hcmtBc1ByaXN0aW5lKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnRhYkZvcm0uZ2V0KGluZGV4KSEuZ2V0RmllbGQoZy5rZXkpPy5maWVsZENvbnRyb2whLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdCFmaWVsZERpc2FibGVkICYmIHRoaXMuY0Zvcm0uZ2V0RmllbGQoZy5rZXkpPy5maWVsZENvbnRyb2whLmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblx0c2V0RGlzYWJsZWQoKSB7XHJcblx0XHR0aGlzLmdyaWRMaXN0KCkuZm9yRWFjaCgodiwgaW5kZXg6IGFueSkgPT4ge1xyXG5cdFx0XHRpZiAodi50eXBlID09ICdmb3JtJykge1xyXG5cdFx0XHRcdHYuZmllbGRzPy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdGl0ZW0uZ3JvdXA/LmZvckVhY2goKGc6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnRhYkZvcm0uZ2V0KGluZGV4KSEuZ2V0RmllbGQoZy5rZXkpPy5maWVsZENvbnRyb2whLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHR0YWJDbGljaygpIHtcclxuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHR0aGlzLnRhYkZvcm0uZ2V0KHRoaXMuaW5kZXhWYWx1ZSkgJiYgdGhpcy50YWJGb3JtLmdldCh0aGlzLmluZGV4VmFsdWUpIS5yZUNhbGNMYWJlbFNpemUoKTtcclxuXHRcdH0sIDApO1xyXG5cdH1cclxuXHR0b2dnbGVMb2coKSB7XHJcblx0XHR0aGlzLnNpZGViYXJNb2RlLnNldCh0aGlzLnNpZGViYXJNb2RlKCkgPT09ICdsZWZ0JyA/ICdyaWdodCcgOiAnbGVmdCcpO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibWQ6b3ZlcmZsb3ctaGlkZGVuXCI+XHJcblx0PGRpdiBjbGFzcz1cImZsZXggbWQ6ZmxleC13cmFwIGxnOmZsZXgtbm93cmFwIGl0ZW1zLWNlbnRlciBtZDpqdXN0aWZ5LWJldHdlZW4gcHktMSBweC0xIGJvcmRlci1iLVsxcHhdIGJvcmRlci1bI2RiZGJkYl0gYmctd2hpdGVcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJsZzpiYXNpcy0xLzMgb3JkZXItMVwiPlxyXG5cdFx0XHQ8YXBwLWNydW1iLWFjdGlvblxyXG5cdFx0XHRcdFthZGRWaXNpYmxlXT1cImFkZFZpc2libGUoKVwiXHJcblx0XHRcdFx0W25ld1VybF09XCJuZXdVcmxcIlxyXG5cdFx0XHRcdFtpc1Nob3dDb2ddPVwidHJ1ZVwiXHJcblx0XHRcdFx0W291dGxpbmVkXT1cInRydWVcIlxyXG5cdFx0XHRcdFthdXRoTGV2ZWxdPVwiYXV0aExldmVsKClcIlxyXG5cdFx0XHRcdFthY3Rpb25MaXN0XT1cImFjdGlvbkxpc3QoKVwiXHJcblx0XHRcdFx0W2NvbmZpZ05ld1BhdGhdPVwiY29uZmlnTmV3UGF0aCgpXCJcclxuXHRcdFx0XHRbZGF0YV09XCJnZXRQcm0uZGF0YSA/PyB7fVwiXHJcblx0XHRcdFx0W3NhdmVCdG5EaXNhYmxlXT1cInNhdmVCdG5EaXNhYmxlXCJcclxuXHRcdFx0XHQoYWN0aW9uRXZlbnQpPVwiYXV0aENsaWNrKCRldmVudClcIlxyXG5cdFx0XHRcdChzYXZlRXZlbnQpPVwic3VibWl0Rm9ybSgpXCI+XHJcblx0XHRcdDwvYXBwLWNydW1iLWFjdGlvbj5cclxuXHRcdDwvZGl2PlxyXG5cclxuXHRcdDxkaXYgY2xhc3M9XCJiYXNpcy0xLzUgbGc6YmFzaXMtMi8zIG9yZGVyLTIgbGc6b3JkZXItMiBtZDpvcmRlci1sYXN0IG1kOmJhc2lzLWZ1bGwgbWQ6bXQtWzZweF1cIj5cclxuXHRcdFx0PGhyZWYtYnRuLWxpc3RcclxuXHRcdFx0XHRbaHJlZnNdPVwiaHJlZkJ0bkxpc3QoKVwiXHJcblx0XHRcdFx0KGhyZWZDbGljayk9XCJnb1J1bigkZXZlbnQpXCI+PC9ocmVmLWJ0bi1saXN0PlxyXG5cdFx0XHQ8IS0tIEBpZiAoaWQpIHtcclxuXHRcdFx0XHRAZm9yIChidG4gb2YgaHJlZkJ0bkxpc3QoKTsgdHJhY2sgYnRuKSB7XHJcblx0XHRcdFx0XHQ8cC1idXR0b25cclxuXHRcdFx0XHRcdFx0W3ZhcmlhbnRdPVwiYnRuPy52YXJpYW50XCJcclxuXHRcdFx0XHRcdFx0W3NldmVyaXR5XT1cImJ0bj8uc2V2ZXJpdHlcIlxyXG5cdFx0XHRcdFx0XHRjbGFzcz1cIm1yLVs2cHhdXCJcclxuXHRcdFx0XHRcdFx0c2l6ZT1cInNtYWxsXCJcclxuXHRcdFx0XHRcdFx0W2ljb25dPVwiYnRuPy5pY29uXCJcclxuXHRcdFx0XHRcdFx0bGFiZWw9XCJ7eyBidG4uaTE4bktleSA/IGkxOG4uZmFueWkoYnRuLmkxOG5LZXkpIDogYnRuLmxhYmVsIH19XCJcclxuXHRcdFx0XHRcdFx0KGNsaWNrKT1cImdvUnVuKGJ0bilcIj5cclxuXHRcdFx0XHRcdDwvcC1idXR0b24+XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9IC0tPlxyXG5cdFx0PC9kaXY+XHJcblx0XHQ8ZGl2IGNsYXNzPVwiYmFzaXMtMS8zIG9yZGVyLTMgZmxleCBmbGV4LXJvdy1yZXZlcnNlXCI+XHJcblx0XHRcdEBpZiAobW9kZWxMb2coKSkge1xyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJoaWRkZW4gbWQ6YmxvY2tcIj5cclxuXHRcdFx0XHRcdDxzcGFuXHJcblx0XHRcdFx0XHRcdFtjbGFzc109XCInaWNvbmZvbnQgaWNvbi1zaWRlYmFyIGljb24tc2lkZWJhci0nICsgKHNpZGViYXJNb2RlKCkpXCJcclxuXHRcdFx0XHRcdFx0KGNsaWNrKT1cInRvZ2dsZUxvZygpXCI+PC9zcGFuPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHR9XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuXHQ8ZGl2IGNsYXNzPVwiZmxleFwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cInB4LTIgZmxleCBmbGV4LXdyYXAgaXRlbXMtY2VudGVyIGZsZXgtMVwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiaGlkZGVuIG1kOmJhc2lzLTEvMyBweS0xIGJhc2lzLWZ1bGwgbWQ6ZmxleCBpdGVtcy1jZW50ZXIgZmxleC1yb3cgb3JkZXItMVwiPlxyXG5cdFx0XHRcdEBmb3IgKGFjdGlvbiBvZiBhY3Rpb25MaXN0KCk7IGxldCBpID0gJGluZGV4OyB0cmFjayBhY3Rpb24pIHtcclxuXHRcdFx0XHRcdDxwLWJ1dHRvblxyXG5cdFx0XHRcdFx0XHRzaXplPVwic21hbGxcIlxyXG5cdFx0XHRcdFx0XHRbaWNvbl09XCJnZXRQcm0uZGF0YT8uaWNvblwiXHJcblx0XHRcdFx0XHRcdFtsb2FkaW5nXT1cImFjdGlvbi5sb2FkaW5nXCJcclxuXHRcdFx0XHRcdFx0W2xhYmVsXT1cImFjdGlvbi5pMThuS2V5ID8gKGFjdGlvbi5pMThuS2V5IHwgdHJhbnNsYXRlKSA6IGFjdGlvbi5sYWJlbFwiXHJcblx0XHRcdFx0XHRcdFtkaXNhYmxlZF09XCJhY3Rpb24uYnRuRGlzYWJsZWQgPyBhY3Rpb24uYnRuRGlzYWJsZWQoZ2V0UHJtLmRhdGEpIDogZmFsc2VcIlxyXG5cdFx0XHRcdFx0XHRbc3R5bGVDbGFzc109XCJcclxuXHRcdFx0XHRcdFx0XHQoYWN0aW9uLmF1dGggfHwgMCkgPiAoYXV0aExldmVsKCkgfHwgMCkgfHwgISFhY3Rpb24uYnRuSGlkZGVuPy4oZ2V0UHJtLmRhdGEpXHJcblx0XHRcdFx0XHRcdFx0XHQ/ICdmb3JtLWFjdGlvbiBoaWRkZW4nXHJcblx0XHRcdFx0XHRcdFx0XHQ6ICdmb3JtLWFjdGlvbiBibG9jayBtci1bLjVyZW1dJ1xyXG5cdFx0XHRcdFx0XHRcIlxyXG5cdFx0XHRcdFx0XHQob25DbGljayk9XCJhY3Rpb24ub25DbGljayAhPSAnJyAmJiBhY3Rpb24ub25DbGljaz8uKGdldFBybS5kYXRhLGFjdGlvbilcIj5cclxuXHRcdFx0XHRcdDwvcC1idXR0b24+XHJcblx0XHRcdFx0fVxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cIm1kOmJhc2lzLTIvMyBiYXNpcy1mdWxsIGZsZXggbWQ6ZmxleC1yb3ctcmV2ZXJzZSBmbGV4LXJvdyBtZDpvcmRlci0yIG9yZGVyLWZpcnN0IHctZnVsbFwiPlxyXG5cdFx0XHRcdEBpZihzdGVwc1Zpc2libGUpIHtcclxuXHRcdFx0XHRcdDxjdXN0b20tc3RlcHNcclxuXHRcdFx0XHRcdFx0I2N1c3RvbVN0ZXBzXHJcblx0XHRcdFx0XHRcdGNsYXNzPVwidy1mdWxsXCJcclxuXHRcdFx0XHRcdFx0W3N0ZXBzXT1cInN0YXR1c1N0ZXBzKClcIlxyXG5cdFx0XHRcdFx0XHRbbW9kZWxMb2ddPVwic2hvd0xvZygpXCJcclxuXHRcdFx0XHRcdFx0W2N1cnJlbnRdPVwiZ2V0UHJtLmRhdGEgJiYgZ2V0UHJtLmRhdGFbc3RhdHVzS2V5KCldICE9PSB1bmRlZmluZWQgPyBnZXRQcm0uZGF0YVtzdGF0dXNLZXkoKV0gOiAwXCJcclxuXHRcdFx0XHRcdFx0W2F1dGhMZXZlbF09XCJhdXRoTGV2ZWwoKVwiXHJcblx0XHRcdFx0XHRcdFtpc0NsaWNrXT1cInRoaXMuc3RhdHVzQ29uZigpLmlzQ2xpY2tcIlxyXG5cdFx0XHRcdFx0XHQoY2hhbmdlKT1cInN0YXR1c0NoYW5nZSgkZXZlbnQsIGN1c3RvbVN0ZXBzKVwiPlxyXG5cdFx0XHRcdFx0PC9jdXN0b20tc3RlcHM+XHJcblx0XHRcdFx0fVxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZGl2PlxyXG5cdFx0QGlmIChzaG93TG9nKCkpIHtcclxuXHRcdFx0PGRpdiBjbGFzcz1cImxnOnctWzQwMHB4XSBtZDp3LVszMDBweF0gaGlkZGVuIG1kOmJsb2NrXCI+PC9kaXY+XHJcblx0XHR9XHJcblx0PC9kaXY+XHJcblx0PGRpdiBjbGFzcz1cIm1haW4gZmxleCBmbGV4LXdyYXBcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJ3LWZ1bGwgbWQ6ZmxleC0xIG1kOmgtZnVsbCBtZDpvdmVyZmxvdy15LWF1dG9cIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImJnLXdoaXRlIG14LTIgZm9ybS1wYW5lbFwiPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJwLTIgZmxleC0xXCI+XHJcblx0XHRcdFx0XHQ8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm0oKS5mb3JtIVwiPlxyXG5cdFx0XHRcdFx0XHQ8Y3VzdG9tLWZvcm1cclxuXHRcdFx0XHRcdFx0XHQjY0Zvcm1cclxuXHRcdFx0XHRcdFx0XHRbb3B0aW9uc109XCJmb3JtT3B0aW9uc1wiXHJcblx0XHRcdFx0XHRcdFx0W3Vwc2VydF09XCJ1cHNlcnRQcm1cIlxyXG5cdFx0XHRcdFx0XHRcdFttb2RlbF09XCJnZXRQcm0uZGF0YSA/PyB7fVwiPjwvY3VzdG9tLWZvcm0+XHJcblx0XHRcdFx0XHQ8L2Zvcm0+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0QGlmIChncmlkTGlzdCgpICYmIGdyaWRMaXN0KCkubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInJlbGF0aXZlIG1iLTJcIj5cclxuXHRcdFx0XHRcdFx0PHAtdGFicyBbKHZhbHVlKV09XCJpbmRleFZhbHVlXCI+XHJcblx0XHRcdFx0XHRcdFx0PHAtdGFibGlzdD5cclxuXHRcdFx0XHRcdFx0XHRcdEBmb3IgKGZjaGlsZCBvZiBncmlkTGlzdCgpOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgZmNoaWxkKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxwLXRhYlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFt2YWx1ZV09XCJpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwidGFiQ2xpY2soKVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHt7IGZjaGlsZC5pMThuS2V5ID8gaTE4bi5mYW55aShmY2hpbGQuaTE4bktleSkgOiBmY2hpbGQudGl0bGUgfX1cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC9wLXRhYj5cclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHQ8L3AtdGFibGlzdD5cclxuXHRcdFx0XHRcdFx0PC9wLXRhYnM+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0QGZvciAoZ3JpZCBvZiBncmlkTGlzdCgpOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgZ3JpZCkge1xyXG5cdFx0XHRcdFx0QGlmIChncmlkLnR5cGUgPT0gJ2dyaWQnKSB7XHJcblx0XHRcdFx0XHRcdDxjdXN0b20tZ3JpZFxyXG5cdFx0XHRcdFx0XHRcdCNjdXN0b21HcmlkXHJcblx0XHRcdFx0XHRcdFx0W2hpZGRlbl09XCJpbmRleFZhbHVlICE9IGlcIlxyXG5cdFx0XHRcdFx0XHRcdFtyb3dEYXRhXT1cImdldFBybS5kYXRhPy5bZ3JpZC5zdWJEYXRhS2V5IV1cIlxyXG5cdFx0XHRcdFx0XHRcdFt1cHNlcnRdPVwidXBzZXJ0UHJtXCJcclxuXHRcdFx0XHRcdFx0XHQoZGVsZXRlRW1pdCk9XCJkZWxSb3dzKCRldmVudClcIlxyXG5cdFx0XHRcdFx0XHRcdFthZGRUeXBlXT1cImdyaWQuc3ViVGFibGVTb3VyY2VcIlxyXG5cdFx0XHRcdFx0XHRcdChhZGRFbWl0KT1cImRhdGFTb3VyY2VTaG93KClcIlxyXG5cdFx0XHRcdFx0XHRcdFtncmlkT3B0aW9uc109XCJncmlkLmdyaWRPcHRpb25zXCJcclxuXHRcdFx0XHRcdFx0XHRbZ3JpZERpc2FibGVdPVwiZ3JpZERpc2FibGVcIlxyXG5cdFx0XHRcdFx0XHRcdFthdXRoTGV2ZWxdPVwiYXV0aExldmVsKClcIlxyXG5cdFx0XHRcdFx0XHRcdFtzaG93RGVsZXRlXT1cImdyaWQuc2hvd0RlbGV0ZVwiXHJcblx0XHRcdFx0XHRcdFx0W3NlbGVjdERhdGFdPVwiZ3JpZC5zZWxlY3REYXRhXCJcclxuXHRcdFx0XHRcdFx0XHRbYWRkU29ydF09XCJncmlkLmFkZFNvcnRcIj5cclxuXHRcdFx0XHRcdFx0PC9jdXN0b20tZ3JpZD5cclxuXHRcdFx0XHRcdH0gQGVsc2Uge1xyXG5cdFx0XHRcdFx0XHQ8IS0tIEBpZihpbmRleFZhbHVlID09IGkpe1xyXG5cdFx0XHRcdFx0XHRcdDxmb3JtIFtmb3JtR3JvdXBdPVwiZ3JpZC5mb3JtIVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGN1c3RvbS1mb3JtXHJcblx0XHRcdFx0XHRcdFx0XHRbb3B0aW9uc109XCJncmlkXCJcclxuXHRcdFx0XHRcdFx0XHRcdFt1cHNlcnRdPVwidXBzZXJ0UHJtXCJcclxuXHRcdFx0XHRcdFx0XHRcdD5cclxuXHRcdFx0XHRcdFx0XHQ8L2N1c3RvbS1mb3JtPlxyXG5cdFx0XHRcdFx0XHRcdDwvZm9ybT5cclxuXHRcdFx0XHRcdFx0fSAtLT5cclxuXHRcdFx0XHRcdFx0PGN1c3RvbS1mb3JtXHJcblx0XHRcdFx0XHRcdFx0I3RhYkZvcm1cclxuXHRcdFx0XHRcdFx0XHRbaGlkZGVuXT1cImluZGV4VmFsdWUgIT0gaVwiXHJcblx0XHRcdFx0XHRcdFx0W29wdGlvbnNdPVwiZ3JpZFwiXHJcblx0XHRcdFx0XHRcdFx0W3Vwc2VydF09XCJ1cHNlcnRQcm1cIlxyXG5cdFx0XHRcdFx0XHRcdFttb2RlbF09XCJzdWJGb3JtTW9kZWxbZ3JpZC5zdWJEYXRhS2V5IV0gfHwge31cIj5cclxuXHRcdFx0XHRcdFx0PC9jdXN0b20tZm9ybT5cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0XHRAaWYgKHNob3dMb2coKSkge1xyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwidy1mdWxsIGxnOnctWzQwMHB4XSBtZDp3LVszMDBweF0gbWQ6aC1mdWxsIG1kOm92ZXJmbG93LXktYXV0byBoaWRkZW4gbWQ6YmxvY2tcIj5cclxuXHRcdFx0XHQ8Y3VzdG9tLWxvZyBbbG9nc109XCJnZXRQcm0uZGF0YT8ubG9nID8/IFtdXCI+PC9jdXN0b20tbG9nPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdH1cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcbjxyb3ctc2VsZWN0b3JcclxuXHRbKHZpc2libGUpXT1cInZpc2libGVcIlxyXG5cdFtzZWFyY2hQcm1dPVwiZGlhbG9nU2VhcmNoUHJtXCJcclxuXHRbZ3JpZE9wdGlvbnNdPVwic2VsZWN0T3B0aW9uc1wiXHJcblx0W3NlbGVjdGlvbktleXNdPVwic2VsZWN0aW9uS2V5c1wiXHJcblx0KG9uT2spPVwib25PaygkZXZlbnQpXCJcclxuXHQoY2FuY2VsU2VsZWN0KT1cIm9uQ2FuY2VsU2VsZWN0ZWQoJGV2ZW50KVwiPlxyXG48L3Jvdy1zZWxlY3Rvcj5cclxuIl19
490
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvcGFnZS1mb3JtL3BhZ2UtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tZWxlbWVudC11aS9zcmMvbGliL3BhZ2UtZm9ybS9wYWdlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUNOLFNBQVMsRUFDVCxNQUFNLEVBRU4sU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sUUFBUSxFQUVSLE1BQU0sRUFDTixZQUFZLEVBRVosWUFBWSxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQWUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQVEsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsV0FBVyxFQUFPLE1BQU0sb0JBQW9CLENBQUM7QUFHdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixD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LGNBQWMscUtBQ2QsYUFBYSwwUUFDYixVQUFVLDRYQUNWLG9CQUFvQixpTUFDcEIsYUFBYSxrREFDYixvQkFBb0I7OzRGQU1ULGlCQUFpQjtrQkFwQjdCLFNBQVM7K0JBQ0MsZUFBZSxjQUNiLElBQUksV0FDUDt3QkFDUixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLFVBQVU7d0JBQ1Ysb0JBQW9CO3dCQUNwQixhQUFhO3dCQUNiLG9CQUFvQjtxQkFDcEIsYUFHVSxFQUFFO3dEQUdPLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFDVSxVQUFVO3NCQUFyQyxZQUFZO3VCQUFDLFlBQVk7Z0JBQ0QsT0FBTztzQkFBL0IsWUFBWTt1QkFBQyxTQUFTO2dCQXlDdkIsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZXJIaXN0b3J5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvdXNlckhpc3Rvcnkuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcblx0Q29tcG9uZW50LFxyXG5cdGluamVjdCxcclxuXHRPbkluaXQsXHJcblx0Vmlld0NoaWxkLFxyXG5cdGlucHV0LFxyXG5cdGVmZmVjdCxcclxuXHRjb21wdXRlZCxcclxuXHRJbnB1dCxcclxuXHRzaWduYWwsXHJcblx0Vmlld0NoaWxkcmVuLFxyXG5cdFF1ZXJ5TGlzdCxcclxuXHRIb3N0TGlzdGVuZXIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZvcm1Db21wb25lbnQsIEZvcm1PcHRpb25zIH0gZnJvbSAnLi4vZm9ybS9mb3JtL2Zvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUm93U2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi9yb3ctc2VsZWN0b3Ivcm93LXNlbGVjdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2xvZy9sb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xyXG5pbXBvcnQgeyBDcnVtYkFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL2NydW1iLWFjdGlvbi9jcnVtYi1hY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3RlcHNDb21wb25lbnQsIFN0ZXAgfSBmcm9tICcuLi9zdGVwcy9zdGVwcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBHcmlkQ29tcG9uZW50LCBHcmlkT3B0aW9ucyB9IGZyb20gJy4uL2dyaWQvZ3JpZC9ncmlkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYnNNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYnMnO1xyXG5pbXBvcnQgeyBBbUNvbXBvbmVudCwgR2V0IH0gZnJvbSAnLi4vYW0vYW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VhcmNoIH0gZnJvbSAnLi4vYW0vYW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgSHJlZkJ0bkxpc3QsIEdyaWRMaXN0IH0gZnJvbSAnLi9wYWdlLWZvcm0uaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvaTE4bi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGVybWlzc2lvbkJ0biB9IGZyb20gJy4vcGFnZS1mb3JtLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IGZvcm1UeXBlVG9Qcm9wcyB9IGZyb20gJy4vcGFnZS1mb3JtLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEhyZWZCdG5MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vaHJlZi1idG4tbGlzdC9ocmVmLWJ0bi1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL2FjdGlvbi5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtcGFnZS1mb3JtJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtcclxuXHRcdEJ1dHRvbk1vZHVsZSxcclxuXHRcdFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcblx0XHRGb3JtQ29tcG9uZW50LFxyXG5cdFx0TG9nQ29tcG9uZW50LFxyXG5cdFx0Q3J1bWJBY3Rpb25Db21wb25lbnQsXHJcblx0XHRTdGVwc0NvbXBvbmVudCxcclxuXHRcdEdyaWRDb21wb25lbnQsXHJcblx0XHRUYWJzTW9kdWxlLFxyXG5cdFx0Um93U2VsZWN0b3JDb21wb25lbnQsXHJcblx0XHRUcmFuc2xhdGVQaXBlLFxyXG5cdFx0SHJlZkJ0bkxpc3RDb21wb25lbnQsXHJcblx0XSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vcGFnZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybDogJy4vcGFnZS1mb3JtLmNvbXBvbmVudC5zY3NzJyxcclxuXHRwcm92aWRlcnM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFnZUZvcm1Db21wb25lbnQgZXh0ZW5kcyBBbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblx0QFZpZXdDaGlsZCgnY0Zvcm0nKSBjRm9ybSE6IEZvcm1Db21wb25lbnQ7XHJcblx0QFZpZXdDaGlsZHJlbignY3VzdG9tR3JpZCcpIGN1c3RvbUdyaWQhOiBRdWVyeUxpc3Q8R3JpZENvbXBvbmVudD47XHJcblx0QFZpZXdDaGlsZHJlbigndGFiRm9ybScpIHRhYkZvcm0hOiBRdWVyeUxpc3Q8Rm9ybUNvbXBvbmVudD47XHJcblx0c2hvd0xvZyA9IGNvbXB1dGVkKCgpID0+IHtcclxuXHRcdHJldHVybiB0aGlzLm1vZGVsTG9nKCkgJiYgdGhpcy5zaWRlYmFyTW9kZSgpID09PSAncmlnaHQnO1xyXG5cdH0pO1xyXG5cdGFkZFZpc2libGUgPSBpbnB1dDxib29sZWFuPigpO1xyXG5cdGdyaWRMaXN0ID0gaW5wdXQ8YW55W10+KFtdKTtcclxuXHRmb3JtID0gaW5wdXQucmVxdWlyZWQ8Rm9ybU9wdGlvbnM+KHt9KTtcclxuXHRnZXRQcm1JbnB1dCA9IGlucHV0LnJlcXVpcmVkPEdldD4oe30pO1xyXG5cdHN0YXR1c1N0ZXBzID0gaW5wdXQ8U3RlcFtdPihbXSk7XHJcblx0c3RhdHVzS2V5ID0gaW5wdXQoJ3N0YXR1cycpO1xyXG5cdGhyZWZCdG5MaXN0ID0gaW5wdXQ8SHJlZkJ0bkxpc3RbXT4oW10pO1xyXG5cdHNldFRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xyXG5cdGFjdGlvbkxpc3QgPSBpbnB1dDxQZXJtaXNzaW9uQnRuW10+KFtdKTtcclxuXHRtb2RlbExvZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRzaWRlYmFyTW9kZSA9IHNpZ25hbDwnbGVmdCcgfCAncmlnaHQnPigncmlnaHQnKTtcclxuXHRmb3JtRGlzYWJsZWQgPSBpbnB1dDxGdW5jdGlvbj4oKTtcclxuXHRzdGF0dXNDb25mID0gaW5wdXQ8YW55PigpO1xyXG5cdGZvcm1EZXRhaWwgPSBpbnB1dDxhbnk+KCk7XHJcblx0c2F2ZUZ1bmMgPSBpbnB1dDxhbnk+KCk7XHJcblx0Y29uZmlnTmV3UGF0aCA9IGlucHV0PGFueT4oKTtcclxuXHJcblx0dXNlckhpc3RvcnlTZXJ2aWNlID0gaW5qZWN0KFVzZXJIaXN0b3J5U2VydmljZSk7XHJcblx0aW5kZXhWYWx1ZSA9IDA7XHJcblx0dmlzaWJsZSA9IGZhbHNlO1xyXG5cdGRpYWxvZ1NlYXJjaFBybSE6IFNlYXJjaDtcclxuXHRzZWxlY3RPcHRpb25zITogR3JpZE9wdGlvbnM7XHJcblx0c2VsZWN0RGF0YTogYW55W10gPSBbXTtcclxuXHRwYWdlVXJsID0gJyc7XHJcblx0bmV3VXJsID0gJyc7XHJcblx0YXV0aExldmVsID0gaW5wdXQ8bnVtYmVyPigtMSk7XHJcblx0aHJlZnM6IGFueVtdID0gW107XHJcblx0YWN0aW9uID0gaW5qZWN0KEFjdGlvblNlcnZpY2UpO1xyXG5cdHN1YkZvcm1Nb2RlbDogYW55ID0ge307XHJcblx0c2F2ZUJ0bkRpc2FibGUgPSBmYWxzZTtcclxuXHRncmlkRGlzYWJsZSA9IGZhbHNlO1xyXG5cdHNlbGVjdGlvbktleXM6IGFueVtdID0gW107XHJcblx0c3ViRGVsZXRlSWRzOiBhbnlbXSA9IFtdO1xyXG5cclxuXHRzdGVwc1Zpc2libGUgPSB0cnVlO1xyXG5cclxuXHRASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuXHRvblJlc2l6ZSgpIHtcclxuXHRcdHRoaXMuc2lkZWJhck1vZGUuc2V0KHdpbmRvdy5pbm5lcldpZHRoIDwgMTAyNCA/ICdsZWZ0JyA6ICdyaWdodCcpO1xyXG5cdH1cclxuXHRjb25zdHJ1Y3RvcigpIHtcclxuXHRcdHN1cGVyKCk7XHJcblx0XHR0aGlzLmlkID0gTnVtYmVyKHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCdpZCcpKTtcclxuXHRcdHRoaXMucGFnZVVybCA9IHRoaXMucm91dGUuc25hcHNob3QudXJsXHJcblx0XHRcdC5tYXAoKHNlZ21lbnQpID0+IHNlZ21lbnQucGF0aClcclxuXHRcdFx0LmpvaW4oJy8nKVxyXG5cdFx0XHQucmVwbGFjZSgvKFteXFwvXSopJC8sICcnKTtcclxuXHRcdHRoaXMubmV3VXJsID0gYCR7dGhpcy5wYWdlVXJsfW5ld2A7XHJcblx0XHRlZmZlY3QoXHJcblx0XHRcdCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLm1vZGVsTmFtZSA9IHRoaXMuZ2V0UHJtSW5wdXQoKS5tb2RlbE5hbWUhO1xyXG5cdFx0XHRcdHRoaXMuZ2V0UHJtID0geyAuLi50aGlzLmdldFBybUlucHV0KCkgfTtcclxuXHRcdFx0XHR0aGlzLmlkICYmICh0aGlzLmdldFBybS5pZCA9IHRoaXMuaWQpO1xyXG5cdFx0XHRcdGlmICh0aGlzLmlkKSB7XHJcblx0XHRcdFx0XHRjb25zb2xlLmxvZyh0eXBlb2YgdGhpcy5mb3JtRGV0YWlsKCksICdmb3JtLS0tLScpO1xyXG5cdFx0XHRcdFx0dHlwZW9mIHRoaXMuZm9ybURldGFpbCgpID09ICdmdW5jdGlvbicgPyB0aGlzLmZvcm1EZXRhaWwoKSh0aGlzLmlkKSA6IHRoaXMuZ2V0RGV0YWlsKCk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMuZ2V0UHJtLmRhdGEgPSB7fTtcclxuXHRcdFx0XHRcdHRoaXMuZ3JpZExpc3QoKS5mb3JFYWNoKCh2KSA9PiB7XHJcblx0XHRcdFx0XHRcdGlmICh2LnR5cGUgPT0gJ2dyaWQnKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5nZXRQcm0uZGF0YVt2LnN1YkRhdGFLZXldID0gW107XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxyXG5cdFx0KTtcclxuXHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHR0aGlzLmZvcm1PcHRpb25zID0geyAuLi50aGlzLmZvcm0oKSB9O1xyXG5cdFx0fSk7XHJcblx0XHRlZmZlY3QoXHJcblx0XHRcdCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLmlzTG9nID0gdGhpcy5tb2RlbExvZygpO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHR7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXHJcblx0XHQpO1xyXG5cdFx0ZWZmZWN0KFxyXG5cdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0aWYgKHRoaXMuc3RhdHVzU3RlcHMoKS5sZW5ndGggPiAwICYmICF0aGlzLmlkKSB7XHJcblx0XHRcdFx0XHR0aGlzLnVwc2VydFBybS5hZGREYXRhIVt0aGlzLnN0YXR1c0tleSgpXSA9IHRoaXMuc3RhdHVzU3RlcHMoKVswXVsndmFsdWUnXTtcclxuXHRcdFx0XHRcdHRoaXMuZ2V0UHJtLmRhdGEgPSBPYmplY3QuYXNzaWduKHRoaXMuZ2V0UHJtLmRhdGEgfHwge30sIHtcclxuXHRcdFx0XHRcdFx0W3RoaXMuc3RhdHVzS2V5KCldOiB0aGlzLnN0YXR1c1N0ZXBzKClbMF1bJ3ZhbHVlJ10sXHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcclxuXHRcdCk7XHJcblx0XHRlZmZlY3QoXHJcblx0XHRcdCgpID0+IHtcclxuXHRcdFx0XHRpZiAodGhpcy5hdXRoTGV2ZWwoKSA8IDMpIHtcclxuXHRcdFx0XHRcdHRoaXMuc2V0RGlzYWJsZWQoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcclxuXHRcdCk7XHJcblx0fVxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy51cENiID0gdGhpcy51cENiLmJpbmQodGhpcyk7XHJcblx0fVxyXG5cclxuXHRuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcblx0XHR0aGlzLmkxOG4uY2hhbmdlLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdHRoaXMuc3RlcHNWaXNpYmxlID0gZmFsc2U7XHJcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuc3RlcHNWaXNpYmxlID0gdHJ1ZTtcclxuXHRcdFx0fSwgMTAwKVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHJcblx0c3VibWl0Rm9ybSgpOiBhbnkge1xyXG5cdFx0Ly8gdGhpcy50YWJGb3JtLnZhbGlkYXRlKClcclxuXHRcdGNvbnNvbGUubG9nKCdnZXRQcm0tLS0tLS0nLCB0aGlzLmdldFBybSk7XHJcblx0XHRsZXQgc3ViRm9ybSA9IHRydWU7XHJcblx0XHRpZiAodGhpcy50YWJGb3JtLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0dGhpcy50YWJGb3JtLmZvckVhY2goKGl0ZW0pID0+IHtcclxuXHRcdFx0XHRpZiAoIWl0ZW0udmFsaWRhdGUoKSkge1xyXG5cdFx0XHRcdFx0c3ViRm9ybSA9IGZhbHNlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblx0XHRpZiAodGhpcy5jRm9ybS52YWxpZGF0ZSgpICYmIHN1YkZvcm0pIHtcclxuXHRcdFx0bGV0IGNiOiBhbnkgPSB0aGlzLmlkID09PSAwID8gbnVsbCA6IHRoaXMudXBDYjtcclxuXHRcdFx0dGhpcy5hY3Rpb24ubG9hZGluZy5zZXQodHJ1ZSk7XHJcblx0XHRcdHR5cGVvZiB0aGlzLnNhdmVGdW5jKCkgPT0gJ2Z1bmN0aW9uJyA/IHRoaXMuc2F2ZUZ1bmMoKSh0aGlzLnVwc2VydFBybSwgdGhpcy5pZCwgY2IpIDogdGhpcy51cHNlcnQobnVsbCwgY2IpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0ZGVsUm93cyhlOiBhbnkpIHtcclxuXHRcdGNvbnN0IGdyaWRUYWIgPSB0aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXTtcclxuXHRcdGNvbnN0IGRlbGV0ZUZ1bmMgPSBncmlkVGFiLmRlbGV0ZUZ1bmM7XHJcblx0XHRjb25zdCBzdWJUYWJsZSA9IGdyaWRUYWIuZ3JpZE9wdGlvbnMubW9kZWxOYW1lO1xyXG5cclxuXHRcdGxldCBwcm0gPSB7XHJcblx0XHRcdG1vZGVsTmFtZTogc3ViVGFibGUsXHJcblx0XHRcdGlkczogZSxcclxuXHRcdH07XHJcblx0XHRpZiAoIWRlbGV0ZUZ1bmMpIHtcclxuXHRcdFx0dGhpcy53ZWJfcmVtb3ZlKHBybSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0XHR0eXBlb2YgdGhpcy5mb3JtRGV0YWlsKCkgPT0gJ2Z1bmN0aW9uJyA/IHRoaXMuZm9ybURldGFpbCgpKHRoaXMuaWQpIDogdGhpcy5nZXREZXRhaWwoKTtcclxuXHRcdFx0XHR0aGlzLmFjdGlvbi51cGRhdGVHcmlkQWN0aW9uKHt0eXBlOidkZWxldGUnLGRhdGE6ZX0pXHJcblx0XHRcdH0pO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0ZGVsZXRlRnVuYygpLnN1YnNjcmliZSgoKSA9PiB7XHJcblx0XHRcdFx0dHlwZW9mIHRoaXMuZm9ybURldGFpbCgpID09ICdmdW5jdGlvbicgPyB0aGlzLmZvcm1EZXRhaWwoKSh0aGlzLmlkKSA6IHRoaXMuZ2V0RGV0YWlsKCk7XHJcblx0XHRcdFx0dGhpcy5hY3Rpb24udXBkYXRlR3JpZEFjdGlvbih7dHlwZTonZGVsZXRlJyxkYXRhOmV9KVxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHR9XHJcblx0dXBDYihyZXM/OiBhbnkpIHtcclxuXHRcdGlmIChyZXMuaWQgPT0gMCkge1xyXG5cdFx0XHR0eXBlb2YgdGhpcy5mb3JtRGV0YWlsKCkgPT0gJ2Z1bmN0aW9uJyA/IHRoaXMuZm9ybURldGFpbCgpKHRoaXMuaWQpIDogdGhpcy5nZXREZXRhaWwoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdGxldCBlZGl0VXJsID0gYCR7dGhpcy5wYWdlVXJsfSR7cmVzLmlkfWA7XHJcblx0XHRcdFx0dGhpcy5yb3V0ZXIubmF2aWdhdGUoW2VkaXRVcmxdKTtcclxuXHRcdFx0fSwgMTUwMCk7XHJcblx0XHR9XHJcblx0XHR0aGlzLmFjdGlvbi5zYXZlU2lnbmFsLnNldChmYWxzZSk7XHJcblx0XHR0aGlzLmNGb3JtLmZpbmFsaXplKCk7XHJcblx0fVxyXG5cdC8vIFRPRE8g5piv5ZCm6ZyA6KaB5pWw5o2u6L2s5o2i5Zue6LCD5Ye95pWwXHJcblx0b25PayhlOiBhbnkpIHtcclxuXHRcdGNvbnN0IGdyaWQgPSB0aGlzLmdyaWRMaXN0KClbdGhpcy5pbmRleFZhbHVlXTtcclxuXHRcdHRoaXMuZ3JpZExpc3QoKVt0aGlzLmluZGV4VmFsdWVdLnNlbGVjdERhdGEgPSBbXTtcclxuXHRcdGlmIChlLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0bGV0IHVuaXF1ZUtleXMgPSBbXTtcclxuXHRcdFx0aWYgKGdyaWQudW5pcXVlRmllbGQpIHtcclxuXHRcdFx0XHRjb25zdCByb3dEYXRhID0gdGhpcy5jdXN0b21HcmlkXHJcblx0XHRcdFx0XHQuZ2V0KHRoaXMuaW5kZXhWYWx1ZSkhXHJcblx0XHRcdFx0XHQuZ2V0R3JpZCgpXHJcblx0XHRcdFx0XHQuYXBpLmdldFJlbmRlcmVkTm9kZXMoKVxyXG5cdFx0XHRcdFx0Lm1hcCgobm9kZSkgPT4gbm9kZS5kYXRhKTtcclxuXHRcdFx0XHR1bmlxdWVLZXlzID0gcm93RGF0YS5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbVtncmlkLnVuaXF1ZUZpZWxkIV0pO1xyXG5cdFx0XHR9XHJcblx0XHRcdGUuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcblx0XHRcdFx0bGV0IG9iaiA9IGdyaWQuc2VsZWN0RGF0YUNiID8gZ3JpZC5zZWxlY3REYXRhQ2IoaXRlbSkgOiB7IC4uLml0ZW0gfTtcclxuXHRcdFx0XHRpZiAoZ3JpZC51bmlxdWVGaWVsZCAmJiB1bmlxdWVLZXlzLmluY2x1ZGVzKG9ialtncmlkLnVuaXF1ZUZpZWxkIV0gfHwgJycpKSB7XHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGdyaWQuc2VsZWN0RGF0YSEucHVzaChvYmopO1xyXG5cdFx0XHR9KTtcclxuXHRcdFx0dGhpcy5hY3Rpb24uc2F2ZVNpZ25hbC5zZXQodHJ1ZSk7XHJcblx0XHR9XHJcblx0XHR0aGlzLmFjdGlvbi51cGRhdGVHcmlkQWN0aW9uKHt0eXBlOidhZGQnLGRhdGE6Z3JpZC5zZWxlY3REYXRhfSlcclxuXHR9XHJcblxyXG5cdG9uQ2FuY2VsU2VsZWN0ZWQoZTogYW55KSB7XHJcblx0XHRjb25zdCBncmlkID0gdGhpcy5ncmlkTGlzdCgpW3RoaXMuaW5kZXhWYWx1ZV07XHJcblx0XHRsZXQgZGF0YXM6IGFueSA9IFtdO1xyXG5cdFx0ZS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuXHRcdFx0Y29uc3QgZGF0YSA9IGdyaWQuc2VsZWN0RGF0YUNiID8geyAuLi5ncmlkLnNlbGVjdERhdGFDYihpdGVtKSB9IDogaXRlbTtcclxuXHRcdFx0ZGF0YXMucHVzaChkYXRhKTtcclxuXHRcdH0pO1xyXG5cdFx0aWYgKGdyaWQudW5pcXVlRmllbGQpIHtcclxuXHRcdFx0Y29uc3Qga2V5cyA9IGRhdGFzLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtW2dyaWQudW5pcXVlRmllbGRdKTtcclxuXHRcdFx0Y29uc3Qgcm93RGF0YSA9IHRoaXMuY3VzdG9tR3JpZFxyXG5cdFx0XHRcdC5nZXQodGhpcy5pbmRleFZhbHVlKSFcclxuXHRcdFx0XHQuZ2V0R3JpZCgpXHJcblx0XHRcdFx0LmFwaS5nZXRSZW5kZXJlZE5vZGVzKClcclxuXHRcdFx0XHQubWFwKChub2RlKSA9PiBub2RlLmRhdGEpO1xyXG5cdFx0XHRsZXQgZGVsZXRlZFJvd3MgPSByb3dEYXRhLmZpbHRlcigoaXRlbTogYW55KSA9PiBrZXlzLmluY2x1ZGVzKGl0ZW1bZ3JpZC51bmlxdWVGaWVsZF0pKTtcclxuXHRcdFx0dGhpcy5zdWJEZWxldGVJZHMgPSBkZWxldGVkUm93cy5tYXAoKHY6IGFueSkgPT4gdi5pZCkuZmlsdGVyKCh2OiBhbnkpID0+IHYpO1xyXG5cdFx0XHRjb25zdCBpZE5vdFJvd3MgPSBkZWxldGVkUm93cy5maWx0ZXIoKHY6IGFueSkgPT4gIXYuaWQpO1xyXG5cdFx0XHQvLyBjb25zb2xlLmxvZygnaWROb3RSb3dzLS0tLScsaWROb3RSb3dzKVxyXG5cdFx0XHRjb25zdCBkZWxldGVOb2RlczogYW55ID0gW107XHJcblx0XHRcdHRoaXMuY3VzdG9tR3JpZFxyXG5cdFx0XHRcdC5nZXQodGhpcy5pbmRleFZhbHVlKSFcclxuXHRcdFx0XHQuZ2V0R3JpZCgpXHJcblx0XHRcdFx0LmFwaS5mb3JFYWNoTm9kZSgobm9kZTogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRsZXQgbWFpbiA9IG5vZGUuZGF0YVtncmlkLnVuaXF1ZUZpZWxkXTtcclxuXHRcdFx0XHRcdGxldCBpc0V4aXQgPSBpZE5vdFJvd3MuZmluZEluZGV4KCh2OiBhbnkpID0+IHZbZ3JpZC51bmlxdWVGaWVsZF0gPT0gbWFpbik7XHJcblx0XHRcdFx0XHRpZiAoaXNFeGl0ID4gLTEpIHtcclxuXHRcdFx0XHRcdFx0ZGVsZXRlTm9kZXMucHVzaChub2RlLmRhdGEpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHQvLyBpZihkZWxldGVkSWRzLmxlbmd0aCA+IDApe1xyXG5cdFx0XHQvLyBcdHRoaXMuZGVsUm93cyhkZWxldGVkSWRzKVxyXG5cdFx0XHQvLyB9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLmN1c3RvbUdyaWQuZ2V0KHRoaXMuaW5kZXhWYWx1ZSkhLnNlbGVjdFJvd3NEZWxldGVkKGRlbGV0ZU5vZGVzKTtcclxuXHRcdFx0Ly8gfVxyXG5cdFx0fVxyXG5cdH1cclxuXHRnZXREZXRhaWwoKSB7XHJcblx0XHR0aGlzLndlYl9nZXQodGhpcy5nZXRQcm0pLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdHRoaXMuZGV0YWlsQ2IocmVzKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHQvLyDojrflj5bor6bmg4Xlm57osINcclxuXHRkZXRhaWxDYihyZXM6IGFueSkge1xyXG5cdFx0dGhpcy51cGRhdGVUaXRsZShyZXMpO1xyXG5cdFx0aWYgKHR5cGVvZiB0aGlzLmZvcm1EaXNhYmxlZCgpID09ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0dGhpcy5mb3JtRGlzRnVuYygpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHRoaXMuaHJlZkJ0bkxpc3QoKS5sZW5ndGggPiAwKSB7XHJcblx0XHRcdHRoaXMuc2V0SHJlZlZhbHVlKCk7XHJcblx0XHR9XHJcblx0XHR0aGlzLmdyaWRMaXN0KCkuZm9yRWFjaCgodikgPT4ge1xyXG5cdFx0XHRpZiAodi50eXBlID09ICdmb3JtJykge1xyXG5cdFx0XHRcdHRoaXMuc3ViRm9ybU1vZGVsW3Yuc3ViRGF0YUtleV0gPSByZXNbdi5zdWJEYXRhS2V5XVswXTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0XHR0aGlzLmdyaWRMaXN0KCkuZm9yRWFjaCgodmFsdWUpID0+IHtcclxuXHRcdFx0aWYgKHZhbHVlLnR5cGUgPT0gJ2dyaWQnICYmICF0aGlzLmdldFBybS5kYXRhLmhhc093blByb3BlcnR5KHZhbHVlLnN1YkRhdGFLZXkpKSB7XHJcblx0XHRcdFx0dGhpcy5nZXRQcm0uZGF0YVt2YWx1ZS5zdWJEYXRhS2V5XSA9IFtdO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblx0c2V0SHJlZlZhbHVlKCkge1xyXG5cdFx0dGhpcy5ocmVmQnRuTGlzdCgpLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcblx0XHRcdGlmIChpdGVtLmhhc093blByb3BlcnR5KCdzZWFyY2hDb3VudCcpICYmIHR5cGVvZiBpdGVtLnNlYXJjaENvdW50ID09ICdvYmplY3QnKSB7XHJcblx0XHRcdFx0aXRlbS5zZWFyY2hDb3VudC5jb2x1bW5GaWx0ZXJzLmZvckVhY2goKHY6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKHR5cGVvZiB2LmZpdGVyID09PSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdFx0XHRcdHYuZml0ZXIgPSB2LmZpdGVyKHRoaXMuZ2V0UHJtLmRhdGEpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHRoaXMud2ViX3NlYXJjaENvdW50KGl0ZW0uc2VhcmNoQ291bnQpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdFx0XHRpdGVtLnZhbHVlID0gcmVzLnRvdGFsTnVtIHx8IDA7XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHR1cGRhdGVUaXRsZShyZXM6IGFueSkge1xyXG5cdFx0bGV0IG1haW5GaWVsZCA9IHRoaXMuZm9ybSgpLm1haW5GaWVsZDtcclxuXHRcdGxldCB0aXRsZSA9IHJlc1ttYWluRmllbGQhXTtcclxuXHRcdHRoaXMudXNlckhpc3RvcnlTZXJ2aWNlLnNldExhc3RUaXRsZSh0aXRsZSk7XHJcblx0fVxyXG5cdGRhdGFTb3VyY2VTaG93KCkge1xyXG5cdFx0Y29uc3QgZ3JpZCA9IHRoaXMuZ3JpZExpc3QoKVt0aGlzLmluZGV4VmFsdWVdO1xyXG5cdFx0dGhpcy5kaWFsb2dTZWFyY2hQcm0gPSB7fTtcclxuXHRcdHRoaXMuc2VsZWN0T3B0aW9ucyA9IHRoaXMuZ3JpZExpc3QoKVt0aGlzLmluZGV4VmFsdWVdWydzZWxlY3RPcHRpb25zJ10hO1xyXG5cdFx0aWYgKCh0aGlzLnNlbGVjdE9wdGlvbnMgYXMgYW55KT8uc2VhcmNoUHJtKSB7XHJcblx0XHRcdCh0aGlzLnNlbGVjdE9wdGlvbnMgYXMgYW55KS5zZWFyY2hQcm0/LmNvbHVtbkZpbHRlcnM/LmZvckVhY2goKHY6IGFueSkgPT4ge1xyXG5cdFx0XHRcdGlmICh0eXBlb2Ygdi5maXRlciA9PSAnZnVuY3Rpb24nKSB7XHJcblx0XHRcdFx0XHR2LmZpdGVyID0gdi5maXRlcihudWxsLCB0aGlzLmdldFBybS5kYXRhKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0XHR0aGlzLmRpYWxvZ1NlYXJjaFBybSA9ICh0aGlzLnNlbGVjdE9wdGlvbnMgYXMgYW55KT8uc2VhcmNoUHJtO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5kaWFsb2dTZWFyY2hQcm0ubW9kZWxOYW1lID0gdGhpcy5zZWxlY3RPcHRpb25zLm1vZGVsTmFtZTtcclxuXHRcdGlmICh0aGlzLnNlbGVjdE9wdGlvbnMuc2VsZWN0aW9uTW9kZSkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdE9wdGlvbnMuc3VwcHJlc3NSb3dEZXNlbGVjdGlvbiA9IHRydWU7XHJcblx0XHRcdHRoaXMuc2VsZWN0T3B0aW9ucy5zZWxlY3Rpb25Nb2RlID0gdGhpcy5zZWxlY3RPcHRpb25zLnNlbGVjdGlvbk1vZGU7XHJcblx0XHRcdGNvbnN0IGlzUm93U2VsZWN0YWJsZSA9IHRoaXMuc2VsZWN0T3B0aW9ucy5pc1Jvd1NlbGVjdGFibGU7XHJcblx0XHRcdGlmICh0aGlzLnNlbGVjdE9wdGlvbnMuc2VsZWN0aW9uTW9kZSAhPSAnbm9uZScpIHtcclxuXHRcdFx0XHR0aGlzLnNlbGVjdE9wdGlvbnMucm93U2VsZWN0aW9uID0ge1xyXG5cdFx0XHRcdFx0bW9kZTogdGhpcy5zZWxlY3RPcHRpb25zLnNlbGVjdGlvbk1vZGUgPT0gJ3NpbmdsZScgPyAnc2luZ2xlUm93JyA6ICdtdWx0aVJvdycsXHJcblx0XHRcdFx0XHRpc1Jvd1NlbGVjdGFibGU6IGlzUm93U2VsZWN0YWJsZSA/IGlzUm93U2VsZWN0YWJsZSA6IHVuZGVmaW5lZCxcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0T3B0aW9ucy5yb3dTZWxlY3Rpb24gPSB1bmRlZmluZWQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdC8vIGNvbnNvbGUubG9nKCdvcHRpb25zLS0tLS0nLHRoaXMuc2VsZWN0T3B0aW9ucylcclxuXHRcdGlmIChncmlkLnVuaXF1ZUZpZWxkKSB7XHJcblx0XHRcdGNvbnN0IHJvd0RhdGEgPSB0aGlzLmN1c3RvbUdyaWRcclxuXHRcdFx0XHQuZ2V0KHRoaXMuaW5kZXhWYWx1ZSkhXHJcblx0XHRcdFx0LmdldEdyaWQoKVxyXG5cdFx0XHRcdC5hcGkuZ2V0UmVuZGVyZWROb2RlcygpXHJcblx0XHRcdFx0Lm1hcCgobm9kZSkgPT4gbm9kZS5kYXRhKTtcclxuXHRcdFx0dGhpcy5zZWxlY3Rpb25LZXlzID0gcm93RGF0YT8ubWFwKChpdGVtOiBhbnkpID0+IGl0ZW1bZ3JpZC51bmlxdWVGaWVsZCFdKSB8fCBbXTtcclxuXHRcdFx0Ly8gY29uc29sZS5sb2coJ3RoaXMuc2VsZWN0aW9uS2V5cy0tLS0nLHRoaXMuc2VsZWN0aW9uS2V5cylcclxuXHRcdFx0aWYgKHR5cGVvZiB0aGlzLnNlbGVjdE9wdGlvbnMucm93U2VsZWN0aW9uID09ICdvYmplY3QnKSB7XHJcblx0XHRcdFx0dGhpcy5zZWxlY3RPcHRpb25zLnJvd1NlbGVjdGlvbi5jaGVja2JveGVzID0gKHBhcmFtcykgPT4ge1xyXG5cdFx0XHRcdFx0bGV0IGl0ZW0gPVxyXG5cdFx0XHRcdFx0XHR0aGlzLnNlbGVjdE9wdGlvbnMuZGF0YUtleSAhPSAnJ1xyXG5cdFx0XHRcdFx0XHRcdD8gcm93RGF0YS5maW5kKCh2OiBhbnkpID0+IHZbZ3JpZC51bmlxdWVGaWVsZF0gPT0gcGFyYW1zLmRhdGFbdGhpcy5zZWxlY3RPcHRpb25zLmRhdGFLZXkhXSlcclxuXHRcdFx0XHRcdFx0XHQ6IHJvd0RhdGEuZmluZCgodjogYW55KSA9PiB2W2dyaWQudW5pcXVlRmllbGRdID09IHBhcmFtcy5kYXRhLmlkKTtcclxuXHRcdFx0XHRcdGlmIChpdGVtICYmIGl0ZW0uaWQpIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdFx0fTtcclxuXHRcdFx0fSBlbHNlIGlmICghdGhpcy5zZWxlY3RPcHRpb25zLnJvd1NlbGVjdGlvbikge1xyXG5cdFx0XHRcdHRoaXMuc2VsZWN0T3B0aW9ucy5yb3dTZWxlY3Rpb24gPSB7XHJcblx0XHRcdFx0XHRtb2RlOiAnbXVsdGlSb3cnLFxyXG5cdFx0XHRcdFx0Y2hlY2tib3hlczogKHBhcmFtcykgPT4ge1xyXG5cdFx0XHRcdFx0XHRsZXQgaXRlbSA9XHJcblx0XHRcdFx0XHRcdFx0dGhpcy5zZWxlY3RPcHRpb25zLmRhdGFLZXkgIT0gJydcclxuXHRcdFx0XHRcdFx0XHRcdD8gcm93RGF0YS5maW5kKCh2OiBhbnkpID0+IHZbZ3JpZC51bmlxdWVGaWVsZF0gPT0gcGFyYW1zLmRhdGFbdGhpcy5zZWxlY3RPcHRpb25zLmRhdGFLZXkhXSlcclxuXHRcdFx0XHRcdFx0XHRcdDogcm93RGF0YS5maW5kKCh2OiBhbnkpID0+IHZbZ3JpZC51bmlxdWVGaWVsZF0gPT0gcGFyYW1zLmRhdGEuaWQpO1xyXG5cdFx0XHRcdFx0XHRpZiAoaXRlbSAmJiBpdGVtLmlkKSB7XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGlvbktleXMgPSBbXTtcclxuXHRcdH1cclxuXHRcdHRoaXMudmlzaWJsZSA9IHRydWU7XHJcblx0fVxyXG5cclxuXHRnb1J1bihkYXRhOiBhbnkpIHtcclxuXHRcdGlmICh0eXBlb2YgZGF0YS51cmwgPT09ICdmdW5jdGlvbicpIHtcclxuXHRcdFx0bGV0IHVybCA9IGRhdGEudXJsKHRoaXMuZ2V0UHJtLmRhdGEpO1xyXG5cdFx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdXJsXSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnd2FybicsIHN1bW1hcnk6ICdXYXJuJywgZGV0YWlsOiAn6K+36YWN572u6Lez6L2s6ZO+5o6lJyB9KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGF1dGhDbGljayhidG46IGFueSkge1xyXG5cdFx0aWYgKGJ0bi5oYXNPd25Qcm9wZXJ0eSgnb25DbGljaycpKSB7XHJcblx0XHRcdGJ0bi5vbkNsaWNrKHRoaXMuZ2V0UHJtLmRhdGEpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRzdGF0dXNDaGFuZ2UodmFsdWU6IGFueSwgY3VzdG9tU3RlcHM6IFN0ZXBzQ29tcG9uZW50KSB7XHJcblx0XHRpZiAodGhpcy5hdXRoTGV2ZWwoKSA8IDQgfHwgIXRoaXMuc3RhdHVzQ29uZigpLmlzQ2xpY2spIHJldHVybjtcclxuXHRcdGlmICh0aGlzLmlkKSB7XHJcblx0XHRcdGxldCBwYXJhbTogYW55ID0ge1xyXG5cdFx0XHRcdG1vZGVsTmFtZTogdGhpcy5tb2RlbE5hbWUsXHJcblx0XHRcdFx0ZGF0YTogeyBpZDogdGhpcy5pZCwgW3RoaXMuc3RhdHVzS2V5KCldOiB2YWx1ZSB9LFxyXG5cdFx0XHR9O1xyXG5cdFx0XHRpZiAodGhpcy5pc0xvZykge1xyXG5cdFx0XHRcdHBhcmFtLmxvZ01vZGVsID0gYCR7dGhpcy5tb2RlbE5hbWV9TG9nYDtcclxuXHRcdFx0XHRwYXJhbS5sb2cgPSB7XHJcblx0XHRcdFx0XHRwaWQ6IHRoaXMuaWQsXHJcblx0XHRcdFx0XHRjb250ZW50OiBgW+eKtuaAgV0gJHt0aGlzLmdldFBybS5kYXRhIVt0aGlzLnN0YXR1c0tleSgpXX0gLT4gJHt2YWx1ZX1gLFxyXG5cdFx0XHRcdH07XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy53ZWJfd3JpdGUocGFyYW0pLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5nZXREZXRhaWwoKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLmdldFBybS5kYXRhID0gT2JqZWN0LmFzc2lnbih0aGlzLmdldFBybS5kYXRhIHx8IHt9LCB7XHJcblx0XHRcdFx0W3RoaXMuc3RhdHVzS2V5KCldOiB2YWx1ZSxcclxuXHRcdFx0fSk7XHJcblx0XHRcdHRoaXMudXBzZXJ0UHJtLmFkZERhdGEhW3RoaXMuc3RhdHVzS2V5KCldID0gdmFsdWU7XHJcblx0XHRcdHRoaXMuY0Zvcm0udHJpZ2dlck1vZGVsRWZmZWN0KHsgW3RoaXMuc3RhdHVzS2V5KCldOiB2YWx1ZSB9KTtcclxuXHRcdFx0Ly8gY3VzdG9tU3RlcHMucmVmcmVzaFN0ZXBzKClcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGZvcm1EaXNGdW5jKCkge1xyXG5cdFx0bGV0IGRhdGEgPSB0aGlzLmZvcm1EaXNhYmxlZCgpISh0aGlzLmdldFBybS5kYXRhKTtcclxuXHRcdGlmICh0eXBlb2YgZGF0YSA9PT0gJ2Jvb2xlYW4nKSB7XHJcblx0XHRcdHRoaXMuc2F2ZUJ0bkRpc2FibGUgPSBkYXRhO1xyXG5cdFx0XHR0aGlzLmdyaWREaXNhYmxlID0gZGF0YTtcclxuXHRcdFx0dGhpcy5kaXNhYmxlRm9ybShkYXRhKTtcclxuXHRcdFx0dGhpcy5kaXNhYmVsZENoaWxkKGRhdGEpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0Jykge1xyXG5cdFx0XHRjb25zdCBkaXNhYmVsZCA9IGRhdGEuZGlzYWJsZWQ7XHJcblx0XHRcdGNvbnN0IGZpbHRlcnMgPSBkYXRhLmZpbHRlcnMgfHwgW107XHJcblx0XHRcdGlmICghZmlsdGVycy5pbmNsdWRlcygnZm9ybScpKSB7XHJcblx0XHRcdFx0dGhpcy5kaXNhYmxlRm9ybShkaXNhYmVsZCk7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKCFmaWx0ZXJzLmluY2x1ZGVzKCdncmlkJykpIHtcclxuXHRcdFx0XHR0aGlzLmdyaWREaXNhYmxlID0gZGlzYWJlbGQ7XHJcblx0XHRcdFx0dGhpcy5kaXNhYmVsZENoaWxkKGRpc2FiZWxkKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRkaXNhYmxlRm9ybShkaXNhYmxlOiBib29sZWFuKSB7XHJcblx0XHR0aGlzLmZvcm1PcHRpb25zLmZpZWxkcz8uZm9yRWFjaCgodikgPT4ge1xyXG5cdFx0XHR2Lmdyb3VwPy5mb3JFYWNoKChnOiBhbnkpID0+IHtcclxuXHRcdFx0XHRsZXQgZmllbGREaXNhYmxlZCA9IGdbZm9ybVR5cGVUb1Byb3BzW2cudHlwZV1dLmRpc2FibGVkIHx8IGZhbHNlO1xyXG5cdFx0XHRcdGlmIChkaXNhYmxlKSB7XHJcblx0XHRcdFx0XHR0aGlzLmNGb3JtLmdldEZpZWxkKGcua2V5KT8uZmllbGRDb250cm9sIS5tYXJrQXNQcmlzdGluZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcblx0XHRcdFx0XHR0aGlzLmNGb3JtLmdldEZpZWxkKGcua2V5KT8uZmllbGRDb250cm9sIS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0IWZpZWxkRGlzYWJsZWQgJiYgdGhpcy5jRm9ybS5nZXRGaWVsZChnLmtleSk/LmZpZWxkQ29udHJvbCEuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cdGRpc2FiZWxkQ2hpbGQoZGlzYWJlbGQ6IGJvb2xlYW4pIHtcclxuXHRcdHRoaXMuZ3JpZExpc3QoKS5mb3JFYWNoKCh2LCBpbmRleDogYW55KSA9PiB7XHJcblx0XHRcdGlmICh2LnR5cGUgPT0gJ2dyaWQnKSB7XHJcblx0XHRcdFx0di5ncmlkT3B0aW9ucy5jb2x1bW5EZWZzLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKGRpc2FiZWxkICYmIGl0ZW0uaGFzT3duUHJvcGVydHkoJ2VkaXRhYmxlJykpIHtcclxuXHRcdFx0XHRcdFx0aXRlbS5lZGl0YWJsZSA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHRoaXMuY3VzdG9tR3JpZC5nZXQoaW5kZXgpIS5nZXRHcmlkKCkuYXBpLnNldEdyaWRPcHRpb24oJ2NvbHVtbkRlZnMnLCB2LmdyaWRPcHRpb25zLmNvbHVtbkRlZnMpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKHYudHlwZSA9PSAnZm9ybScpIHtcclxuXHRcdFx0XHR2LmZpZWxkcz8uZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRpdGVtLmdyb3VwPy5mb3JFYWNoKChnOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdFx0bGV0IGZpZWxkRGlzYWJsZWQgPSBnW2Zvcm1UeXBlVG9Qcm9wc1tnLnR5cGVdXS5kaXNhYmxlZCB8fCBmYWxzZTtcclxuXHRcdFx0XHRcdFx0aWYgKGRpc2FiZWxkKSB7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy50YWJGb3JtLmdldChpbmRleCkhLmdldEZpZWxkKGcua2V5KT8uZmllbGRDb250cm9sIS5tYXJrQXNQcmlzdGluZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcblx0XHRcdFx0XHRcdFx0dGhpcy50YWJGb3JtLmdldChpbmRleCkhLmdldEZpZWxkKGcua2V5KT8uZmllbGRDb250cm9sIS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHQhZmllbGREaXNhYmxlZCAmJiB0aGlzLmNGb3JtLmdldEZpZWxkKGcua2V5KT8uZmllbGRDb250cm9sIS5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cdHNldERpc2FibGVkKCkge1xyXG5cdFx0dGhpcy5ncmlkTGlzdCgpLmZvckVhY2goKHYsIGluZGV4OiBhbnkpID0+IHtcclxuXHRcdFx0aWYgKHYudHlwZSA9PSAnZm9ybScpIHtcclxuXHRcdFx0XHR2LmZpZWxkcz8uZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcblx0XHRcdFx0XHRpdGVtLmdyb3VwPy5mb3JFYWNoKChnOiBhbnkpID0+IHtcclxuXHRcdFx0XHRcdFx0dGhpcy50YWJGb3JtLmdldChpbmRleCkhLmdldEZpZWxkKGcua2V5KT8uZmllbGRDb250cm9sIS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblx0dGFiQ2xpY2soKSB7XHJcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0dGhpcy50YWJGb3JtLmdldCh0aGlzLmluZGV4VmFsdWUpICYmIHRoaXMudGFiRm9ybS5nZXQodGhpcy5pbmRleFZhbHVlKSEucmVDYWxjTGFiZWxTaXplKCk7XHJcblx0XHR9LCAwKTtcclxuXHR9XHJcblx0dG9nZ2xlTG9nKCkge1xyXG5cdFx0dGhpcy5zaWRlYmFyTW9kZS5zZXQodGhpcy5zaWRlYmFyTW9kZSgpID09PSAnbGVmdCcgPyAncmlnaHQnIDogJ2xlZnQnKTtcclxuXHR9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1kOm92ZXJmbG93LWhpZGRlblwiPlxyXG5cdDxkaXYgY2xhc3M9XCJmbGV4IG1kOmZsZXgtd3JhcCBsZzpmbGV4LW5vd3JhcCBpdGVtcy1jZW50ZXIgbWQ6anVzdGlmeS1iZXR3ZWVuIHB5LTEgcHgtMSBib3JkZXItYi1bMXB4XSBib3JkZXItWyNkYmRiZGJdIGJnLXdoaXRlXCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwibGc6YmFzaXMtMS8zIG9yZGVyLTFcIj5cclxuXHRcdFx0PGFwcC1jcnVtYi1hY3Rpb25cclxuXHRcdFx0XHRbYWRkVmlzaWJsZV09XCJhZGRWaXNpYmxlKClcIlxyXG5cdFx0XHRcdFtuZXdVcmxdPVwibmV3VXJsXCJcclxuXHRcdFx0XHRbaXNTaG93Q29nXT1cInRydWVcIlxyXG5cdFx0XHRcdFtvdXRsaW5lZF09XCJ0cnVlXCJcclxuXHRcdFx0XHRbYXV0aExldmVsXT1cImF1dGhMZXZlbCgpXCJcclxuXHRcdFx0XHRbYWN0aW9uTGlzdF09XCJhY3Rpb25MaXN0KClcIlxyXG5cdFx0XHRcdFtjb25maWdOZXdQYXRoXT1cImNvbmZpZ05ld1BhdGgoKVwiXHJcblx0XHRcdFx0W2RhdGFdPVwiZ2V0UHJtLmRhdGEgPz8ge31cIlxyXG5cdFx0XHRcdFtzYXZlQnRuRGlzYWJsZV09XCJzYXZlQnRuRGlzYWJsZVwiXHJcblx0XHRcdFx0KGFjdGlvbkV2ZW50KT1cImF1dGhDbGljaygkZXZlbnQpXCJcclxuXHRcdFx0XHQoc2F2ZUV2ZW50KT1cInN1Ym1pdEZvcm0oKVwiPlxyXG5cdFx0XHQ8L2FwcC1jcnVtYi1hY3Rpb24+XHJcblx0XHQ8L2Rpdj5cclxuXHJcblx0XHQ8ZGl2IGNsYXNzPVwiYmFzaXMtMS81IGxnOmJhc2lzLTIvMyBvcmRlci0yIGxnOm9yZGVyLTIgbWQ6b3JkZXItbGFzdCBtZDpiYXNpcy1mdWxsIG1kOm10LVs2cHhdXCI+XHJcblx0XHRcdDxocmVmLWJ0bi1saXN0XHJcblx0XHRcdFx0W2hyZWZzXT1cImhyZWZCdG5MaXN0KClcIlxyXG5cdFx0XHRcdChocmVmQ2xpY2spPVwiZ29SdW4oJGV2ZW50KVwiPjwvaHJlZi1idG4tbGlzdD5cclxuXHRcdFx0PCEtLSBAaWYgKGlkKSB7XHJcblx0XHRcdFx0QGZvciAoYnRuIG9mIGhyZWZCdG5MaXN0KCk7IHRyYWNrIGJ0bikge1xyXG5cdFx0XHRcdFx0PHAtYnV0dG9uXHJcblx0XHRcdFx0XHRcdFt2YXJpYW50XT1cImJ0bj8udmFyaWFudFwiXHJcblx0XHRcdFx0XHRcdFtzZXZlcml0eV09XCJidG4/LnNldmVyaXR5XCJcclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJtci1bNnB4XVwiXHJcblx0XHRcdFx0XHRcdHNpemU9XCJzbWFsbFwiXHJcblx0XHRcdFx0XHRcdFtpY29uXT1cImJ0bj8uaWNvblwiXHJcblx0XHRcdFx0XHRcdGxhYmVsPVwie3sgYnRuLmkxOG5LZXkgPyBpMThuLmZhbnlpKGJ0bi5pMThuS2V5KSA6IGJ0bi5sYWJlbCB9fVwiXHJcblx0XHRcdFx0XHRcdChjbGljayk9XCJnb1J1bihidG4pXCI+XHJcblx0XHRcdFx0XHQ8L3AtYnV0dG9uPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSAtLT5cclxuXHRcdDwvZGl2PlxyXG5cdFx0PGRpdiBjbGFzcz1cImJhc2lzLTEvMyBvcmRlci0zIGZsZXggZmxleC1yb3ctcmV2ZXJzZVwiPlxyXG5cdFx0XHRAaWYgKG1vZGVsTG9nKCkpIHtcclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiaGlkZGVuIG1kOmJsb2NrXCI+XHJcblx0XHRcdFx0XHQ8c3BhblxyXG5cdFx0XHRcdFx0XHRbY2xhc3NdPVwiJ2ljb25mb250IGljb24tc2lkZWJhciBpY29uLXNpZGViYXItJyArIChzaWRlYmFyTW9kZSgpKVwiXHJcblx0XHRcdFx0XHRcdChjbGljayk9XCJ0b2dnbGVMb2coKVwiPjwvc3Bhbj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0fVxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcblx0PGRpdiBjbGFzcz1cImZsZXhcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJweC0yIGZsZXggZmxleC13cmFwIGl0ZW1zLWNlbnRlciBmbGV4LTFcIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImhpZGRlbiBtZDpiYXNpcy0xLzMgcHktMSBiYXNpcy1mdWxsIG1kOmZsZXggaXRlbXMtY2VudGVyIGZsZXgtcm93IG9yZGVyLTFcIj5cclxuXHRcdFx0XHRAZm9yIChhY3Rpb24gb2YgYWN0aW9uTGlzdCgpOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgYWN0aW9uKSB7XHJcblx0XHRcdFx0XHQ8cC1idXR0b25cclxuXHRcdFx0XHRcdFx0c2l6ZT1cInNtYWxsXCJcclxuXHRcdFx0XHRcdFx0W2ljb25dPVwiZ2V0UHJtLmRhdGE/Lmljb25cIlxyXG5cdFx0XHRcdFx0XHRbbG9hZGluZ109XCJhY3Rpb24ubG9hZGluZ1wiXHJcblx0XHRcdFx0XHRcdFtsYWJlbF09XCJhY3Rpb24uaTE4bktleSA/IChhY3Rpb24uaTE4bktleSB8IHRyYW5zbGF0ZSkgOiBhY3Rpb24ubGFiZWxcIlxyXG5cdFx0XHRcdFx0XHRbZGlzYWJsZWRdPVwiYWN0aW9uLmJ0bkRpc2FibGVkID8gYWN0aW9uLmJ0bkRpc2FibGVkKGdldFBybS5kYXRhKSA6IGZhbHNlXCJcclxuXHRcdFx0XHRcdFx0W3N0eWxlQ2xhc3NdPVwiXHJcblx0XHRcdFx0XHRcdFx0KGFjdGlvbi5hdXRoIHx8IDApID4gKGF1dGhMZXZlbCgpIHx8IDApIHx8ICEhYWN0aW9uLmJ0bkhpZGRlbj8uKGdldFBybS5kYXRhKVxyXG5cdFx0XHRcdFx0XHRcdFx0PyAnZm9ybS1hY3Rpb24gaGlkZGVuJ1xyXG5cdFx0XHRcdFx0XHRcdFx0OiAnZm9ybS1hY3Rpb24gYmxvY2sgbXItWy41cmVtXSdcclxuXHRcdFx0XHRcdFx0XCJcclxuXHRcdFx0XHRcdFx0KG9uQ2xpY2spPVwiYWN0aW9uLm9uQ2xpY2sgIT0gJycgJiYgYWN0aW9uLm9uQ2xpY2s/LihnZXRQcm0uZGF0YSxhY3Rpb24pXCI+XHJcblx0XHRcdFx0XHQ8L3AtYnV0dG9uPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0PC9kaXY+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJtZDpiYXNpcy0yLzMgYmFzaXMtZnVsbCBmbGV4IG1kOmZsZXgtcm93LXJldmVyc2UgZmxleC1yb3cgbWQ6b3JkZXItMiBvcmRlci1maXJzdCB3LWZ1bGxcIj5cclxuXHRcdFx0XHRAaWYoc3RlcHNWaXNpYmxlKSB7XHJcblx0XHRcdFx0XHQ8Y3VzdG9tLXN0ZXBzXHJcblx0XHRcdFx0XHRcdCNjdXN0b21TdGVwc1xyXG5cdFx0XHRcdFx0XHRjbGFzcz1cInctZnVsbFwiXHJcblx0XHRcdFx0XHRcdFtzdGVwc109XCJzdGF0dXNTdGVwcygpXCJcclxuXHRcdFx0XHRcdFx0W21vZGVsTG9nXT1cInNob3dMb2coKVwiXHJcblx0XHRcdFx0XHRcdFtjdXJyZW50XT1cImdldFBybS5kYXRhICYmIGdldFBybS5kYXRhW3N0YXR1c0tleSgpXSAhPT0gdW5kZWZpbmVkID8gZ2V0UHJtLmRhdGFbc3RhdHVzS2V5KCldIDogMFwiXHJcblx0XHRcdFx0XHRcdFthdXRoTGV2ZWxdPVwiYXV0aExldmVsKClcIlxyXG5cdFx0XHRcdFx0XHRbaXNDbGlja109XCJ0aGlzLnN0YXR1c0NvbmYoKS5pc0NsaWNrXCJcclxuXHRcdFx0XHRcdFx0KGNoYW5nZSk9XCJzdGF0dXNDaGFuZ2UoJGV2ZW50LCBjdXN0b21TdGVwcylcIj5cclxuXHRcdFx0XHRcdDwvY3VzdG9tLXN0ZXBzPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHRcdEBpZiAoc2hvd0xvZygpKSB7XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJsZzp3LVs0MDBweF0gbWQ6dy1bMzAwcHhdIGhpZGRlbiBtZDpibG9ja1wiPjwvZGl2PlxyXG5cdFx0fVxyXG5cdDwvZGl2PlxyXG5cdDxkaXYgY2xhc3M9XCJtYWluIGZsZXggZmxleC13cmFwXCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwidy1mdWxsIG1kOmZsZXgtMSBtZDpoLWZ1bGwgbWQ6b3ZlcmZsb3cteS1hdXRvXCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJiZy13aGl0ZSBteC0yIGZvcm0tcGFuZWxcIj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwicC0yIGZsZXgtMVwiPlxyXG5cdFx0XHRcdFx0PGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtKCkuZm9ybSFcIj5cclxuXHRcdFx0XHRcdFx0PGN1c3RvbS1mb3JtXHJcblx0XHRcdFx0XHRcdFx0I2NGb3JtXHJcblx0XHRcdFx0XHRcdFx0W29wdGlvbnNdPVwiZm9ybU9wdGlvbnNcIlxyXG5cdFx0XHRcdFx0XHRcdFt1cHNlcnRdPVwidXBzZXJ0UHJtXCJcclxuXHRcdFx0XHRcdFx0XHRbbW9kZWxdPVwiZ2V0UHJtLmRhdGEgPz8ge31cIj48L2N1c3RvbS1mb3JtPlxyXG5cdFx0XHRcdFx0PC9mb3JtPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdEBpZiAoZ3JpZExpc3QoKSAmJiBncmlkTGlzdCgpLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSBtYi0yXCI+XHJcblx0XHRcdFx0XHRcdDxwLXRhYnMgWyh2YWx1ZSldPVwiaW5kZXhWYWx1ZVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxwLXRhYmxpc3Q+XHJcblx0XHRcdFx0XHRcdFx0XHRAZm9yIChmY2hpbGQgb2YgZ3JpZExpc3QoKTsgbGV0IGkgPSAkaW5kZXg7IHRyYWNrIGZjaGlsZCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8cC10YWJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRbdmFsdWVdPVwiaVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cInRhYkNsaWNrKClcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7eyBmY2hpbGQuaTE4bktleSA/IGkxOG4uZmFueWkoZmNoaWxkLmkxOG5LZXkpIDogZmNoaWxkLnRpdGxlIH19XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvcC10YWI+XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0PC9wLXRhYmxpc3Q+XHJcblx0XHRcdFx0XHRcdDwvcC10YWJzPlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdEBmb3IgKGdyaWQgb2YgZ3JpZExpc3QoKTsgbGV0IGkgPSAkaW5kZXg7IHRyYWNrIGdyaWQpIHtcclxuXHRcdFx0XHRcdEBpZiAoZ3JpZC50eXBlID09ICdncmlkJykge1xyXG5cdFx0XHRcdFx0XHQ8Y3VzdG9tLWdyaWRcclxuXHRcdFx0XHRcdFx0XHQjY3VzdG9tR3JpZFxyXG5cdFx0XHRcdFx0XHRcdFtoaWRkZW5dPVwiaW5kZXhWYWx1ZSAhPSBpXCJcclxuXHRcdFx0XHRcdFx0XHRbcm93RGF0YV09XCJnZXRQcm0uZGF0YT8uW2dyaWQuc3ViRGF0YUtleSFdXCJcclxuXHRcdFx0XHRcdFx0XHRbdXBzZXJ0XT1cInVwc2VydFBybVwiXHJcblx0XHRcdFx0XHRcdFx0KGRlbGV0ZUVtaXQpPVwiZGVsUm93cygkZXZlbnQpXCJcclxuXHRcdFx0XHRcdFx0XHRbYWRkVHlwZV09XCJncmlkLnN1YlRhYmxlU291cmNlXCJcclxuXHRcdFx0XHRcdFx0XHQoYWRkRW1pdCk9XCJkYXRhU291cmNlU2hvdygpXCJcclxuXHRcdFx0XHRcdFx0XHRbZ3JpZE9wdGlvbnNdPVwiZ3JpZC5ncmlkT3B0aW9uc1wiXHJcblx0XHRcdFx0XHRcdFx0W2dyaWREaXNhYmxlXT1cImdyaWREaXNhYmxlXCJcclxuXHRcdFx0XHRcdFx0XHRbYXV0aExldmVsXT1cImF1dGhMZXZlbCgpXCJcclxuXHRcdFx0XHRcdFx0XHRbc2hvd0RlbGV0ZV09XCJncmlkLnNob3dEZWxldGVcIlxyXG5cdFx0XHRcdFx0XHRcdFtzZWxlY3REYXRhXT1cImdyaWQuc2VsZWN0RGF0YVwiXHJcblx0XHRcdFx0XHRcdFx0W2FkZFNvcnRdPVwiZ3JpZC5hZGRTb3J0XCI+XHJcblx0XHRcdFx0XHRcdDwvY3VzdG9tLWdyaWQ+XHJcblx0XHRcdFx0XHR9IEBlbHNlIHtcclxuXHRcdFx0XHRcdFx0PCEtLSBAaWYoaW5kZXhWYWx1ZSA9PSBpKXtcclxuXHRcdFx0XHRcdFx0XHQ8Zm9ybSBbZm9ybUdyb3VwXT1cImdyaWQuZm9ybSFcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxjdXN0b20tZm9ybVxyXG5cdFx0XHRcdFx0XHRcdFx0W29wdGlvbnNdPVwiZ3JpZFwiXHJcblx0XHRcdFx0XHRcdFx0XHRbdXBzZXJ0XT1cInVwc2VydFBybVwiXHJcblx0XHRcdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0PC9jdXN0b20tZm9ybT5cclxuXHRcdFx0XHRcdFx0XHQ8L2Zvcm0+XHJcblx0XHRcdFx0XHRcdH0gLS0+XHJcblx0XHRcdFx0XHRcdDxjdXN0b20tZm9ybVxyXG5cdFx0XHRcdFx0XHRcdCN0YWJGb3JtXHJcblx0XHRcdFx0XHRcdFx0W2hpZGRlbl09XCJpbmRleFZhbHVlICE9IGlcIlxyXG5cdFx0XHRcdFx0XHRcdFtvcHRpb25zXT1cImdyaWRcIlxyXG5cdFx0XHRcdFx0XHRcdFt1cHNlcnRdPVwidXBzZXJ0UHJtXCJcclxuXHRcdFx0XHRcdFx0XHRbbW9kZWxdPVwic3ViRm9ybU1vZGVsW2dyaWQuc3ViRGF0YUtleSFdIHx8IHt9XCI+XHJcblx0XHRcdFx0XHRcdDwvY3VzdG9tLWZvcm0+XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZGl2PlxyXG5cdFx0QGlmIChzaG93TG9nKCkpIHtcclxuXHRcdFx0PGRpdiBjbGFzcz1cInctZnVsbCBsZzp3LVs0MDBweF0gbWQ6dy1bMzAwcHhdIG1kOmgtZnVsbCBtZDpvdmVyZmxvdy15LWF1dG8gaGlkZGVuIG1kOmJsb2NrXCI+XHJcblx0XHRcdFx0PGN1c3RvbS1sb2cgW2xvZ3NdPVwiZ2V0UHJtLmRhdGE/LmxvZyA/PyBbXVwiPjwvY3VzdG9tLWxvZz5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHR9XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG48cm93LXNlbGVjdG9yXHJcblx0Wyh2aXNpYmxlKV09XCJ2aXNpYmxlXCJcclxuXHRbc2VhcmNoUHJtXT1cImRpYWxvZ1NlYXJjaFBybVwiXHJcblx0W2dyaWRPcHRpb25zXT1cInNlbGVjdE9wdGlvbnNcIlxyXG5cdFtzZWxlY3Rpb25LZXlzXT1cInNlbGVjdGlvbktleXNcIlxyXG5cdChvbk9rKT1cIm9uT2soJGV2ZW50KVwiXHJcblx0KGNhbmNlbFNlbGVjdCk9XCJvbkNhbmNlbFNlbGVjdGVkKCRldmVudClcIj5cclxuPC9yb3ctc2VsZWN0b3I+XHJcbiJdfQ==
@@ -3576,16 +3576,16 @@ class ImageComponent {
3576
3576
  }
3577
3577
  }
3578
3578
  ajustedImage(event) {
3579
- if (this.props?.adjustable) {
3580
- // 解决图片查看时的操作按钮(旋转、放大、缩小、关闭)不在屏幕右上角显示的问题
3581
- let childDiv = document.getElementsByClassName('p-image-toolbar')[0];
3582
- let parentDiv = document.createElement('div');
3583
- parentDiv.style.width = '100vw';
3584
- parentDiv.style.height = '100vh';
3585
- parentDiv.style.position = 'fixed';
3586
- childDiv?.parentNode?.insertBefore(parentDiv, childDiv);
3587
- parentDiv.appendChild(childDiv);
3588
- }
3579
+ // if (this.props?.adjustable) {
3580
+ // // 解决图片查看时的操作按钮(旋转、放大、缩小、关闭)不在屏幕右上角显示的问题
3581
+ // let childDiv = document.getElementsByClassName('p-image-toolbar')[0];
3582
+ // let parentDiv = document.createElement('div');
3583
+ // parentDiv.style.width = '100vw';
3584
+ // parentDiv.style.height = '100vh';
3585
+ // parentDiv.style.position = 'fixed';
3586
+ // childDiv?.parentNode?.insertBefore(parentDiv, childDiv);
3587
+ // parentDiv.appendChild(childDiv);
3588
+ // }
3589
3589
  }
3590
3590
  initLoading(counter) {
3591
3591
  this.counter = counter;
@@ -3685,7 +3685,7 @@ class ImageComponent {
3685
3685
  @if (!field()?.fieldControl?.disabled) {
3686
3686
  <div [style]="{ position: 'relative', width: imageWidth + 10 + 'px', height: imageHeight + 10 + 'px' }">
3687
3687
  <div
3688
- style="position: absolute; top: 0; right: 0; z-index: 9999; background: red; padding: 1px;"
3688
+ style="position: absolute; top: 0; right: 0; z-index: 999; background: red; padding: 1px;"
3689
3689
  (click)="deleteHandler($event, image, index)">
3690
3690
  <i class="pi pi-times text-[12px]"></i>
3691
3691
  </div>
@@ -3794,7 +3794,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
3794
3794
  @if (!field()?.fieldControl?.disabled) {
3795
3795
  <div [style]="{ position: 'relative', width: imageWidth + 10 + 'px', height: imageHeight + 10 + 'px' }">
3796
3796
  <div
3797
- style="position: absolute; top: 0; right: 0; z-index: 9999; background: red; padding: 1px;"
3797
+ style="position: absolute; top: 0; right: 0; z-index: 999; background: red; padding: 1px;"
3798
3798
  (click)="deleteHandler($event, image, index)">
3799
3799
  <i class="pi pi-times text-[12px]"></i>
3800
3800
  </div>
@@ -8998,9 +8998,9 @@ class PageFormComponent extends AmComponent {
8998
8998
  }
8999
8999
  grid.selectData.push(obj);
9000
9000
  });
9001
- this.action.updateGridAction({ type: 'add', data: grid.selectData });
9002
9001
  this.action.saveSignal.set(true);
9003
9002
  }
9003
+ this.action.updateGridAction({ type: 'add', data: grid.selectData });
9004
9004
  }
9005
9005
  onCancelSelected(e) {
9006
9006
  const grid = this.gridList()[this.indexValue];