@colijnit/transaction 12.1.182 → 12.1.183

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.
Files changed (36) hide show
  1. package/bundles/colijnit-transaction.umd.js +42 -21
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.metadata.json +1 -1
  4. package/esm2015/lib/component/avatar/avatar.component.js +8 -6
  5. package/esm2015/lib/component/core/base/transaction-base.component.js +3 -1
  6. package/esm2015/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.component.js +2 -2
  7. package/esm2015/lib/component/shopping-cart-preview/shopping-cart-preview.component.js +16 -14
  8. package/esm2015/lib/component/transaction-internal/transaction-internal.component.js +2 -2
  9. package/esm2015/lib/component/transaction-line/transaction-base-line/transaction-base-line.component.js +3 -1
  10. package/esm2015/lib/component/transaction-line/transaction-line/transaction-line.component.js +3 -1
  11. package/esm2015/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.component.js +6 -3
  12. package/esm2015/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line.component.js +7 -4
  13. package/esm2015/lib/component/transaction-line/transaction-purchase-order-line/transaction-purchase-order-line.component.js +3 -5
  14. package/esm2015/lib/component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line.component.js +2 -4
  15. package/esm2015/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.component.js +4 -1
  16. package/esm2015/lib/component/transaction-line-image-and-description/transaction-line-image-and-description.component.js +4 -1
  17. package/esm2015/lib/component/transaction-lines/transaction-lines.component.js +5 -3
  18. package/esm2015/lib/component/transaction-search/service/transaction-search.service.js +9 -2
  19. package/esm2015/lib/model/transaction-settings.js +2 -1
  20. package/esm2015/lib/res/dictionary/dictionaries.js +3 -3
  21. package/esm2015/lib/service/transaction-settings.service.js +2 -1
  22. package/esm2015/lib/transaction-version.js +3 -3
  23. package/esm2015/public_api.js +2 -1
  24. package/fesm2015/colijnit-transaction.js +69 -40
  25. package/fesm2015/colijnit-transaction.js.map +1 -1
  26. package/lib/component/core/base/transaction-base.component.d.ts +1 -0
  27. package/lib/component/transaction-line/transaction-line/style/_layout.scss +19 -1
  28. package/lib/component/transaction-line/transaction-line/style/_material-definition.scss +6 -0
  29. package/lib/component/transaction-line/transaction-line/transaction-line.component.d.ts +1 -0
  30. package/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.component.d.ts +1 -0
  31. package/lib/component/transaction-line-image-and-description/transaction-line-image-and-description.component.d.ts +1 -0
  32. package/lib/model/transaction-settings.d.ts +1 -0
  33. package/lib/res/dictionary/dictionaries.d.ts +6 -0
  34. package/lib/service/transaction-settings.service.d.ts +2 -1
  35. package/package.json +1 -1
  36. package/public_api.d.ts +1 -0
@@ -296,7 +296,7 @@ TransactionInternalComponent.decorators = [
296
296
  ></co-transaction-button-bar>
297
297
  <div class="transaction-lines-header-item right">
298
298
  <co-avatar class="transaction-sales-avatar" [relationId]="transaction.transactionInfo.salesPerson"></co-avatar>
299
- <co-avatar class="transaction-sales-avatar" [relationId]="transaction.transactionInfo.branch?.relationNr"></co-avatar>
299
+ <co-avatar class="transaction-sales-avatar" [relationId]="transaction.transactionInfo.branch?.relationId"></co-avatar>
300
300
  <co-view-mode-buttons *ngIf="!shouldShowTiles()" [showViewModes]="[viewModes.List, viewModes.Tiles]"
301
301
  (viewModeChange)="activeViewMode = $event"></co-view-mode-buttons>
302
302
  </div>
@@ -413,4 +413,4 @@ TransactionInternalComponent.propDecorators = {
413
413
  showClass: [{ type: HostBinding, args: ['class.co-transaction-internal',] }],
414
414
  onResize: [{ type: HostListener, args: ['window:resize', ['$event'],] }]
415
415
  };
416
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24taW50ZXJuYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24taW50ZXJuYWwvdHJhbnNhY3Rpb24taW50ZXJuYWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsY0FBYyxFQUNkLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFlBQVksRUFDWixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSxzRUFBc0UsQ0FBQztBQUV2SCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUM3RixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUkxRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUM3RyxPQUFPLEVBQUMsYUFB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QWM7WUF5QlYsdUJBQXVCO1lBWXZCLDJCQUEyQjtZQVgzQix1QkFBdUI7WUFDdkIscUNBQXFDO1lBQ3JDLGFBQWE7WUFDYixvQkFBb0I7WUFTcEIsMkJBQTJCOzs7a0NBd0g5QixZQUFZLFNBQUMsaUNBQWlDO3VCQUc5QyxLQUFLO3FDQUdMLEtBQUs7MEJBY0wsS0FBSzt5QkFXTCxLQUFLOzZCQUdMLE1BQU07OEJBR04sV0FBVyxTQUFDLHlCQUF5QixjQUNyQyxLQUFLOzRCQUdMLFdBQVcsU0FBQyx1QkFBdUIsY0FDbkMsS0FBSzt3QkFHTCxXQUFXLFNBQUMsK0JBQStCO3VCQUszQyxZQUFZLFNBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFwcGxpY2F0aW9uUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSG9zdEJpbmRpbmcsXHJcbiAgICBIb3N0TGlzdGVuZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE91dHB1dCxcclxuICAgIFF1ZXJ5TGlzdCxcclxuICAgIFZpZXdDaGlsZHJlbixcclxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9IGZyb20gJy4uLy4uL2VudW0vdHJhbnNhY3Rpb24tdHlwZS1jYXRlZ29yeS5lbnVtJztcclxuaW1wb3J0IHtDb250ZW50Vmlld01vZGV9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkNmZ05hbWV9IGZyb20gJy4uLy4uL2VudW0vdHJhbnNhY3Rpb24tY2ZnLW5hbWUuZW51bSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lU2lkZVBhbmVsQ29tcG9uZW50fSBmcm9tICcuLi90cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwvdHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UmVsYXRpb25BbnlUeXBlfSBmcm9tICcuLi8uLi9tb2RlbC9yZWxhdGlvbi1hbnktdHlwZSc7XHJcbmltcG9ydCB7Q3VzdG9tZXJGdWxsT2JqZWN0fSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvY3VzdG9tZXItZnVsbC1vYmplY3QuYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ibyc7XHJcbmltcG9ydCB7U3RhdHVzQmFyQ2ZnTmFtZXN9IGZyb20gJy4uLy4uL2ludGVyZmFjZS9zdGF0dXMtYmFyLWNmZy1uYW1lcy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtEeW5hbWljQ29tcG9uZW50U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9keW5hbWljLWNvbXBvbmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkV2ZW50U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1ldmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNjcmVlbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQge0xpbmVTZWxlY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2xpbmUtc2VsZWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQmFyQnV0dG9ufSBmcm9tICcuLi8uLi9tb2RlbC90cmFuc2FjdGlvbi1iYXItYnV0dG9uJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkFkZFRleHRMaW5lUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWFkZC10ZXh0LWxpbmUtcmVxdWVzdC5ibyc7XHJcbmltcG9ydCB7T3JkZXJMaW5lU2V0RFRPfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvb3JkZXItbGluZS1zZXQtZHRvJztcclxuaW1wb3J0IHtPcmRlckxpbmVTZXRJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvb3JkZXItbGluZS1zZXQtaW5mby5ibyc7XHJcbmltcG9ydCB7XHJcbiAgICBUcmFuc2FjdGlvbkFkZE9yZGVyTGluZVNldFRleHRMaW5lUmVxdWVzdFxyXG59IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1hZGQtb3JkZXItbGluZS1zZXQtdGV4dC1saW5lLXJlcXVlc3QnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1jb25uZWN0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7UHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3B1cmNoYXNlLWNvbmZpcm1hdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjby10cmFuc2FjdGlvbi1pbnRlcm5hbCcsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkZWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjZGtEcm9wTGlzdEdyb3VwIGNsYXNzPVwiZHJvcC1saXN0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyICpuZ0lmPVwic2hvd0hlYWRlclwiIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiIFtyZWxhdGlvbl09XCJyZWxhdGlvblwiIChyZWxhdGlvbkNoYW5nZSk9XCJoYW5kbGVSZWxhdGlvbkNoYW5nZSgkZXZlbnQpXCI+PC9jby10cmFuc2FjdGlvbi1oZWFkZXI+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lcy1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzICpuZ0lmPVwic2hvd1F1aWNrQWNjZXNzXCIgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lcy1oZWFkZXItaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVsYXRpb25dPVwicmVsYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uXT1cInRyYW5zYWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY3RpdmVDYXRlZ29yeV09XCJhY3RpdmVDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1idXR0b24tYmFyICpuZ0lmPVwic2hvd0J1dHRvbkJhclwiIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZXMtaGVhZGVyLWl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZENhdGVnb3J5XT1cImFjdGl2ZUNhdGVnb3J5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnV0dG9uQ2xpY2tlZCk9XCJoYW5kbGVCdXR0b25CYXJCdXR0b25DbGlja2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWJ1dHRvbi1iYXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmVzLWhlYWRlci1pdGVtIHJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjby1hdmF0YXIgY2xhc3M9XCJ0cmFuc2FjdGlvbi1zYWxlcy1hdmF0YXJcIiBbcmVsYXRpb25JZF09XCJ0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uc2FsZXNQZXJzb25cIj48L2NvLWF2YXRhcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWF2YXRhciBjbGFzcz1cInRyYW5zYWN0aW9uLXNhbGVzLWF2YXRhclwiIFtyZWxhdGlvbklkXT1cInRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5icmFuY2g/LnJlbGF0aW9uTnJcIj48L2NvLWF2YXRhcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXZpZXctbW9kZS1idXR0b25zICpuZ0lmPVwiIXNob3VsZFNob3dUaWxlcygpXCIgW3Nob3dWaWV3TW9kZXNdPVwiW3ZpZXdNb2Rlcy5MaXN0LCB2aWV3TW9kZXMuVGlsZXNdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2aWV3TW9kZUNoYW5nZSk9XCJhY3RpdmVWaWV3TW9kZSA9ICRldmVudFwiPjwvY28tdmlldy1tb2RlLWJ1dHRvbnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICA8IS0tPGNvLXRyYW5zYWN0aW9uLWRvY3VtZW50LWJ1dHRvbi1iYXIgW3RyYW5zYWN0aW9uXT1cInRyYW5zYWN0aW9uXCI+PC9jby10cmFuc2FjdGlvbi1kb2N1bWVudC1idXR0b24tYmFyPi0tPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tdGlsZXMtd3JhcHBlclwiICpuZ0lmPVwiYWN0aXZlVmlld01vZGUgPT09IHZpZXdNb2Rlcy5UaWxlcyB8fCBzaG91bGRTaG93VGlsZXMoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1jYXJkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgbGluZSBvZiAoaGlzdG9yaWNUcmFuc2FjdGlvbkxpbmVzID8gaGlzdG9yaWNUcmFuc2FjdGlvbkxpbmVzIDogdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lcylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXR1c0JhckNvbmZpZ05hbWVzXT1cInN0YXR1c0JhckNvbmZpZ05hbWVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cImxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImhpc3RvcmljVHJhbnNhY3Rpb25MaW5lcyAhPT0gbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWN0aXZlQ2F0ZWdvcnldPVwiYWN0aXZlQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWNhcmQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lcy13cmFwcGVyXCIgKm5nSWY9XCJhY3RpdmVWaWV3TW9kZSA9PT0gdmlld01vZGVzLkxpc3QgJiYgIXNob3VsZFNob3dUaWxlcygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjdGl2ZUNhdGVnb3J5XT1cImFjdGl2ZUNhdGVnb3J5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzYXZlVHJhbnNhY3Rpb25MaW5lKT1cInNhdmVUcmFuc2FjdGlvbkxpbmVUZXh0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmVzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tZm9vdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Y28tYWRkLXByb2R1Y3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlQ2F0ZWdvcnkgPT09IGNhdGVnb3JpZXMuU2FsZXNPcmRlckNhc2hSZWdpc3RlciB8fCBhY3RpdmVDYXRlZ29yeSA9PT0gY2F0ZWdvcmllcy5TYWxlc09yZGVyT3ZlcnZpZXcgfHwgYWN0aXZlQ2F0ZWdvcnkgPT09IGNhdGVnb3JpZXMuUHVyY2hhc2VPcmRlck92ZXJ2aWV3IHx8IGFjdGl2ZUNhdGVnb3J5ID09PSBjYXRlZ29yaWVzLlNhbGVzT3JkZXJRdW90YXRpb25cIj48L2NvLWFkZC1wcm9kdWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi10b3RhbHNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvblRvdGFsXT1cInRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uVG90YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dEaXNjb3VudF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi10b3RhbHM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwgKm5nSWY9XCJzaG93U2lkZVBhbmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uXT1cInRyYW5zYWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInNpZGVQYW5lbFRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY3RpdmVDYXRlZ29yeV09XCJhY3RpdmVDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYW5jZWxDbGljayk9XCJzaG93U2lkZVBhbmVsID0gZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICA8IS0tUG9wdXAgdm9vciB3aWp6aWdlbiB2b2xnb3JkZSB2YW4gdGVrc3RyZWdlbHMtLT5cclxuICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQtb3ZlcnZpZXcgKm5nSWY9XCJzaG93QXJ0aWNsZVRleHRPdmVydmlld1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJjbG9zZUFydGljbGVUZXh0T3ZlcnZpZXcoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYW5jZWxDbGljayk9XCJjbG9zZUFydGljbGVUZXh0T3ZlcnZpZXcoKVwiXHJcbiAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQtb3ZlcnZpZXc+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIDwhLS1Qb3B1cCB2b29yIGFhbm1ha2VuIGVuIHVwZGF0ZW4gdHJhbnNhY3RpZXRla3N0cmVnZWxzLS0+XHJcbiAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0ICpuZ0lmPVwic2hvd1RyYW5zYWN0aW9uVGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJdPVwiJ09SREVSX1RFWFRfTElORScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvblV1aWRdPVwidHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWRpdFRleHRdPVwidGV4dFRvRWRpdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcmRlckxpbmVTZXREVE9dPVwic2VsZWN0ZWRPcmRlckxpbmVTZXREVE9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzYXZlQ2xpY2spPVwic2F2ZVRyYW5zYWN0aW9uTGluZVRleHQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbG9zZUNsaWNrKT1cImNsb3NlVHJhbnNhY3Rpb25UZXh0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FuY2VsQ2xpY2spPVwiY2xvc2VUcmFuc2FjdGlvblRleHQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzYXZlT3JkZXJMaW5lU2V0Q2xpY2spPVwic2F2ZU9yZGVyTGluZVNldCgkZXZlbnQpXCJcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICA8IS0tUG9wdXAgdm9vciBhYW5tYWtlbiBlbiB1cGRhdGVuIGFydGlrZWx0ZWtzdHJlZ2Vscy0tPlxyXG4gICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWFydGljbGUtdGV4dCAqbmdJZj1cInNob3dBcnRpY2xlVGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJdPVwiJ1BST0RVQ1RfREVTQ1JJUFRJT05fQU5EX1RFWFRTJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uVXVpZF09XCJ0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93QXJ0aWNsZUltYWdlRGVzY3JpcHRpb25dPVwidHJhbnNhY3Rpb25MaW5lLmFydGljbGVCb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93SW1hZ2VdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJ0aWNsZUxpbmVOcl09XCJ0cmFuc2FjdGlvbkxpbmUubGluZU5yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FydGljbGVSZWZdPVwidHJhbnNhY3Rpb25MaW5lLmFydGljbGVOdW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlZGl0VGV4dF09XCJ0ZXh0VG9FZGl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNhdmVDbGljayk9XCJzYXZlQXJ0aWNsZUxpbmVUZXh0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJjbG9zZUFydGljbGVUZXh0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FuY2VsQ2xpY2spPVwiY2xvc2VBcnRpY2xlVGV4dCgpXCJcclxuICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWFydGljbGUtdGV4dD5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWNvcHktb3JkZXIgKm5nSWY9XCJzaG93Q29weU9yZGVyRGlhbG9nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2VEaWFsb2cpPVwic2hvd0NvcHlPcmRlckRpYWxvZyA9IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWNvcHktb3JkZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZXMtc2lkZS1wYW5lbFxyXG4gICAgICAgICAgICAgIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiXHJcbiAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmVzLXNpZGUtcGFuZWw+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICBgLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25JbnRlcm5hbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2F0ZWdvcmllczogdHlwZW9mIFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5ID0gVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmlld01vZGVzOiB0eXBlb2YgQ29udGVudFZpZXdNb2RlID0gQ29udGVudFZpZXdNb2RlO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2ZnTmFtZXM6IHR5cGVvZiBUcmFuc2FjdGlvbkNmZ05hbWUgPSBUcmFuc2FjdGlvbkNmZ05hbWU7XHJcbiAgICBwdWJsaWMgc2NyZWVuV2lkdGg6IG51bWJlcjtcclxuXHJcbiAgICBAVmlld0NoaWxkcmVuKFRyYW5zYWN0aW9uTGluZVNpZGVQYW5lbENvbXBvbmVudClcclxuICAgIHB1YmxpYyBzaWRlUGFuZWxDb21wb25lbnRzOiBRdWVyeUxpc3Q8VHJhbnNhY3Rpb25MaW5lU2lkZVBhbmVsQ29tcG9uZW50PjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHJlbGF0aW9uOiBSZWxhdGlvbkFueVR5cGUgPSBuZXcgQ3VzdG9tZXJGdWxsT2JqZWN0KCk7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgY29uZmlybWF0aW9uQW5hbHlzaXNJZCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fY29uZmlybWF0aW9uQW5hbHlzaXNJZCA9IHZhbHVlO1xyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UuYWN0aXZlUnVicmljID0gVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlck9yZGVyQ29uZmlybWF0aW9uO1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUNhdGVnb3J5ID0gVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlck9yZGVyQ29uZmlybWF0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9wdXJjaGFzZUNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybWF0aW9uQW5hbHlzaXNJZCA9IHRoaXMuX2NvbmZpcm1hdGlvbkFuYWx5c2lzSWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBjb25maXJtYXRpb25BbmFseXNpc0lkKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpcm1hdGlvbkFuYWx5c2lzSWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgdHJhbnNhY3Rpb24odmFsdWU6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dIZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlbGF0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UmVsYXRpb25BbnlUeXBlPiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVsYXRpb25BbnlUeXBlPigpO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3Muc2hvdy1xdWljay1hY2Nlc3MnKVxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93UXVpY2tBY2Nlc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3Muc2hvdy1idXR0b24tYmFyJylcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd0J1dHRvbkJhcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby10cmFuc2FjdGlvbi1pbnRlcm5hbCcpXHJcbiAgICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gICAgb25SZXNpemUoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2NyZWVuV2lkdGggPSBldmVudC50YXJnZXQuaW5uZXJXaWR0aDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWN0aXZlVmlld01vZGU6IENvbnRlbnRWaWV3TW9kZSA9IENvbnRlbnRWaWV3TW9kZS5MaXN0O1xyXG4gICAgcHVibGljIGFjdGl2ZUNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuICAgIHB1YmxpYyBzaWRlUGFuZWxUcmFuc2FjdGlvbkxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm87XHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25MaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvO1xyXG4gICAgcHVibGljIHNlbGVjdGVkT3JkZXJMaW5lU2V0RFRPOiBPcmRlckxpbmVTZXREVE87XHJcbiAgICBwdWJsaWMgc2hvd1NpZGVQYW5lbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHNob3VsZFNob3dTaWRlUGFuZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBzaG93QXJ0aWNsZVRleHRPdmVydmlldzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHNob3dUcmFuc2FjdGlvblRleHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBzaG93QXJ0aWNsZVRleHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBzaG93Q29weU9yZGVyRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgbG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgdGV4dFRvRWRpdDogc3RyaW5nO1xyXG4gICAgcHVibGljIGhpc3RvcmljVHJhbnNhY3Rpb25MaW5lczogVHJhbnNhY3Rpb25MaW5lSW5mb1tdIHwgbnVsbDtcclxuXHJcblxyXG4gICAgcHVibGljIHN0YXR1c0JhckNvbmZpZ05hbWVzOiBTdGF0dXNCYXJDZmdOYW1lcyA9IHtcclxuICAgICAgICBzdGF0dXNCYXJCVDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJCVCxcclxuICAgICAgICBzdGF0dXNCYXJURzogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJURyxcclxuICAgICAgICBzdGF0dXNCYXJQQTogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJQQSxcclxuICAgICAgICBzdGF0dXNCYXJQVjogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJQVixcclxuICAgICAgICBzdGF0dXNCYXJUUDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJUUCxcclxuICAgICAgICBzdGF0dXNCYXJHVDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHVCxcclxuICAgICAgICBzdGF0dXNCYXJHUDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHUCxcclxuICAgICAgICBzdGF0dXNCYXJHTDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHTCxcclxuICAgICAgICBzdGF0dXNCYXJHRjogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHRixcclxuICAgICAgICBzdGF0dXNCYXJJQjogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJJQixcclxuICAgICAgICBzdGF0dXNCYXJOVDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJOVCxcclxuICAgICAgICBzdGF0dXNCYXJCTjogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJCTixcclxuICAgICAgICBzdGF0dXNCYXJCRzogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJCRyxcclxuICAgICAgICBzdGF0dXNCYXJGQzogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJGQ1xyXG4gICAgfTtcclxuXHJcbiAgICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlID0gbmV3IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKCk7XHJcbiAgICBwcml2YXRlIF9jb25maXJtYXRpb25BbmFseXNpc0lkOiBudW1iZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9hcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxyXG4gICAgICAgIHByaXZhdGUgX2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlOiBEeW5hbWljQ29tcG9uZW50U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF90cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2U6IFRyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF90cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9saW5lU2VsZWN0aW9uU2VydmljZTogTGluZVNlbGVjdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfcHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlOiBQdXJjaGFzZUNvbmZpcm1hdGlvblNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnRyYW5zYWN0aW9uVXBkYXRlZC5zdWJzY3JpYmUoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRyYW5zYWN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVRyYW5zYWN0aW9uTGluZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnJlbGF0aW9uVXBkYXRlZC5zdWJzY3JpYmUoKHJlbGF0aW9uOiBSZWxhdGlvbkFueVR5cGUpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZWxhdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVsYXRpb24gPSByZWxhdGlvbjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS50cmFuc2FjdGlvbktpbmRTZXQuc3Vic2NyaWJlKChzZXQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChzZXQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUNhdGVnb3J5ID0gdGhpcy5jb25maXJtYXRpb25BbmFseXNpc0lkID8gVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlck9yZGVyQ29uZmlybWF0aW9uIDogdGhpcy5zZXJ2aWNlLmFjdGl2ZVJ1YnJpYztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZS5jb25uZWN0aW9uSW5pdGlhbGl6ZWQuc3Vic2NyaWJlKChpbml0aWFsaXplZDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGluaXRpYWxpemVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgdGhpcy5fcHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm1hdGlvbk5lZWRlZC5zdWJzY3JpYmUoKG5lZWRlZDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKG5lZWRlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvdWxkU2hvd1NpZGVQYW5lbCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVTaG93U2lkZVBhbmVsKHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lc1swXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS5vcGVuU2lkZVBhbmVsLnN1YnNjcmliZSgobGluZSkgPT4gdGhpcy5oYW5kbGVTaG93U2lkZVBhbmVsKGxpbmUpKSxcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uub3BlbkFydGljbGVUZXh0T3ZlcnZpZXcuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZVNob3dBcnRpY2xlVGV4dE92ZXJ2aWV3KGxpbmUpKSxcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuYWRkVHJhbnNhY3Rpb25UZXh0LnN1YnNjcmliZSgobGluZSkgPT4gdGhpcy5oYW5kbGVTaG93VHJhbnNhY3Rpb25UZXh0KGxpbmUpKSxcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuYWRkQXJ0aWNsZVRleHQuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZVNob3dBcnRpY2xlVGV4dChsaW5lKSksXHJcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmVkaXRUcmFuc2FjdGlvblRleHQuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZUVkaXRUcmFuc2FjdGlvblRleHQobGluZSkpLFxyXG4gICAgICAgICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS5lZGl0QXJ0aWNsZVRleHQuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZUVkaXRBcnRpY2xlVGV4dChsaW5lKSksXHJcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmhpc3RvcmljUmVwb3J0TGluZXNUb1Nob3dcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxpbmVzKSA9PiB0aGlzLmhpc3RvcmljVHJhbnNhY3Rpb25MaW5lcyA9IGxpbmVzKSxcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uuc2hvd0Vycm9yLnN1YnNjcmliZSgoZSkgPT5cclxuICAgICAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uuc2hvd0Vycm9yKGUubWVzc2FnZSwgZS5sb2NhbGl6ZSwgZS5kZXRhaWxzKSksXHJcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmNvcHlPcmRlci5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zaG93Q29weU9yZGVyRGlhbG9nID0gdHJ1ZSlcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlUmVsYXRpb25DaGFuZ2UocmVsYXRpb246IFJlbGF0aW9uQW55VHlwZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VydmljZS5yZWxhdGlvbiA9IHJlbGF0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVCdXR0b25CYXJCdXR0b25DbGlja2VkKGJ1dHRvbjogVHJhbnNhY3Rpb25CYXJCdXR0b24pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZUNhdGVnb3J5ID0gYnV0dG9uLmNhdGVnb3J5O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVTaG93U2lkZVBhbmVsKGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiB2b2lkIHtcclxuICAgICAgICBpZiAobGluZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNpZGVQYW5lbFRyYW5zYWN0aW9uTGluZSA9IGxpbmU7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd1NpZGVQYW5lbCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVTaG93QXJ0aWNsZVRleHRPdmVydmlldyhsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGxpbmUpIHtcclxuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUgPSBsaW5lO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dBcnRpY2xlVGV4dE92ZXJ2aWV3ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZVNob3dUcmFuc2FjdGlvblRleHQobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMudGV4dFRvRWRpdCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkT3JkZXJMaW5lU2V0RFRPID0gbmV3IE9yZGVyTGluZVNldERUTygpO1xyXG4gICAgICAgIHRoaXMuc2hvd1RyYW5zYWN0aW9uVGV4dERpYWxvZygpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVTaG93QXJ0aWNsZVRleHQobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IHZvaWQge1xyXG4gICAgICAgIGlmIChsaW5lKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGV4dFRvRWRpdCA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUgPSBsaW5lO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dBcnRpY2xlVGV4dERpYWxvZygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgc2F2ZVRyYW5zYWN0aW9uTGluZVRleHQoZGF0YTogeyByZXF1ZXN0OiBUcmFuc2FjdGlvbkFkZFRleHRMaW5lUmVxdWVzdCwgbmV3OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBpZiAoIWRhdGEubmV3KSB7IC8vdXBkYXRlXHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVUZXh0TGluZShkYXRhLnJlcXVlc3QudHJhbnNhY3Rpb25VdWlkLCB0aGlzLnRyYW5zYWN0aW9uTGluZS51dWlkLCBkYXRhLnJlcXVlc3Quc2hvd09uRG9jdW1lbnRzLCBkYXRhLnJlcXVlc3QudGV4dCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmFkZFRleHRMaW5lKFxyXG4gICAgICAgICAgICAgICAgZGF0YS5yZXF1ZXN0LnNob3dPbkRvY3VtZW50cyxcclxuICAgICAgICAgICAgICAgIGRhdGEucmVxdWVzdC50ZXh0LFxyXG4gICAgICAgICAgICAgICAgMCxcclxuICAgICAgICAgICAgICAgIGRhdGEucmVxdWVzdC5hcnRpY2xlQm91bmQsXHJcbiAgICAgICAgICAgICAgICAwLFxyXG4gICAgICAgICAgICAgICAgMCxcclxuICAgICAgICAgICAgICAgIDApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5faGlkZVRyYW5zYWN0aW9uVGV4dERpYWxvZygpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBzYXZlT3JkZXJMaW5lU2V0KGRhdGE6IHsgcmVxdWVzdDogT3JkZXJMaW5lU2V0RFRPLCBuZXc6IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICBpZiAoIWRhdGEubmV3KSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnVwZGF0ZU9yZGVyTGluZVNldChkYXRhLnJlcXVlc3QpO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVUZXh0TGluZShkYXRhLnJlcXVlc3QudHJhbnNhY3Rpb25VdWlkLCB0aGlzLnRyYW5zYWN0aW9uTGluZS51dWlkLCBkYXRhLnJlcXVlc3Quc2hvd09uRG9jdW1lbnRzLCBkYXRhLnJlcXVlc3QudGV4dCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgbmV3UmVxdWVzdDogVHJhbnNhY3Rpb25BZGRPcmRlckxpbmVTZXRUZXh0TGluZVJlcXVlc3QgPSBuZXcgVHJhbnNhY3Rpb25BZGRPcmRlckxpbmVTZXRUZXh0TGluZVJlcXVlc3QoKTtcclxuICAgICAgICBuZXdSZXF1ZXN0Lm9yZGVyTGluZVNldFRpdGxlID0gZGF0YS5yZXF1ZXN0LnRpdGxlO1xyXG4gICAgICAgIG5ld1JlcXVlc3QuYW1vdW50ID0gZGF0YS5yZXF1ZXN0LmFtb3VudDtcclxuICAgICAgICBuZXdSZXF1ZXN0LmNhdGVnb3J5SWQgPSBkYXRhLnJlcXVlc3QuY2F0ZWdvcnlJZDtcclxuICAgICAgICBuZXdSZXF1ZXN0LmNvbG9yID0gZGF0YS5yZXF1ZXN0LmNvbG9yO1xyXG4gICAgICAgIG5ld1JlcXVlc3QudHJhbnNhY3Rpb25VdWlkID0gZGF0YS5yZXF1ZXN0LnRyYW5zYWN0aW9uVXVpZDtcclxuICAgICAgICBuZXdSZXF1ZXN0LnNob3dPbkRvY3VtZW50cyA9IGRhdGEucmVxdWVzdC5zaG93T25Eb2N1bWVudHM7XHJcbiAgICAgICAgbmV3UmVxdWVzdC50ZXh0ID0gZGF0YS5yZXF1ZXN0LnRleHQ7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmFkZE9yZGVyTGluZVNldChuZXdSZXF1ZXN0KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9oaWRlVHJhbnNhY3Rpb25UZXh0RGlhbG9nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIHNhdmVBcnRpY2xlTGluZVRleHQoZGF0YTogeyByZXF1ZXN0OiBUcmFuc2FjdGlvbkFkZFRleHRMaW5lUmVxdWVzdCwgbmV3OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBpZiAoIWRhdGEubmV3KSB7IC8vdXBkYXRlXHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVUZXh0TGluZShkYXRhLnJlcXVlc3QudHJhbnNhY3Rpb25VdWlkLCB0aGlzLnRyYW5zYWN0aW9uTGluZS51dWlkLCBkYXRhLnJlcXVlc3Quc2hvd09uRG9jdW1lbnRzLCBkYXRhLnJlcXVlc3QudGV4dCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmFkZFRleHRMaW5lKFxyXG4gICAgICAgICAgICAgICAgZGF0YS5yZXF1ZXN0LnNob3dPbkRvY3VtZW50cyxcclxuICAgICAgICAgICAgICAgIGRhdGEucmVxdWVzdC50ZXh0LFxyXG4gICAgICAgICAgICAgICAgMCxcclxuICAgICAgICAgICAgICAgIHRydWUsXHJcbiAgICAgICAgICAgICAgICBkYXRhLnJlcXVlc3QucmVmQXJ0aWNsZUxpbmVOclxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9oaWRlQXJ0aWNsZVRleHREaWFsb2coKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlRWRpdFRyYW5zYWN0aW9uVGV4dChsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUgPSBsaW5lO1xyXG4gICAgICAgIHRoaXMudGV4dFRvRWRpdCA9IGxpbmUudGV4dDtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkT3JkZXJMaW5lU2V0RFRPID0gdGhpcy5fZ2V0T3JkZXJMaW5lU2V0SWZFeGlzdHMobGluZSk7XHJcblxyXG4gICAgICAgIGlmIChsaW5lLmlzVGV4dCkge1xyXG4gICAgICAgICAgICB0aGlzLnNob3dUcmFuc2FjdGlvblRleHREaWFsb2coKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gaWYgKGxpbmUuYXJ0aWNsZUJvdW5kQ29uY2F0ZW5hdGVkVGV4dCAmJiBsaW5lLmFydGljbGVCb3VuZENvbmNhdGVuYXRlZFRleHQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIC8vICAgdGhpcy5zaG93QXJ0aWNsZVRleHRPdmVydmlld0RpYWxvZygpO1xyXG4gICAgICAgIC8vIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlRWRpdEFydGljbGVUZXh0KGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRleHRUb0VkaXQgPSBsaW5lLnRleHQ7XHJcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUgPSBsaW5lO1xyXG5cclxuICAgICAgICB0aGlzLl9oaWRlQXJ0aWNsZVRleHRPdmVydmlld0RpYWxvZygpO1xyXG4gICAgICAgIHRoaXMuc2hvd0FydGljbGVUZXh0RGlhbG9nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsb3NlQXJ0aWNsZVRleHQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5faGlkZUFydGljbGVUZXh0RGlhbG9nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsb3NlVHJhbnNhY3Rpb25UZXh0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2hpZGVUcmFuc2FjdGlvblRleHREaWFsb2coKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2xvc2VBcnRpY2xlVGV4dE92ZXJ2aWV3KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2hpZGVBcnRpY2xlVGV4dE92ZXJ2aWV3RGlhbG9nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNob3dUcmFuc2FjdGlvblRleHREaWFsb2coKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaG93VHJhbnNhY3Rpb25UZXh0ID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2hvd0FydGljbGVUZXh0RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2hvd0FydGljbGVUZXh0ID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2hvd0FydGljbGVUZXh0T3ZlcnZpZXdEaWFsb2coKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaG93QXJ0aWNsZVRleHRPdmVydmlldyA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNob3VsZFNob3dUaWxlcygpOiBib29sZWFuIHtcclxuICAgICAgICAvLyBBZGp1c3QgdGhlIHdpZHRoIGNvbmRpdGlvbiBhcyBuZWVkZWRcclxuICAgICAgICByZXR1cm4gdGhpcy5zY3JlZW5XaWR0aCA8IDEyODA7IC8vIFNob3cgdGhlIGRpdiBpZiBzY3JlZW4gd2lkdGggaXMgc21hbGxlciB0aGFuIDEyODBweFxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2dldE9yZGVyTGluZVNldElmRXhpc3RzKGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiBPcmRlckxpbmVTZXREVE8ge1xyXG4gICAgICBpZighbGluZS5vcmRlckxpbmVTZXRDb2RlKSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgbGluZVNldDogT3JkZXJMaW5lU2V0SW5mbyA9IHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLm9yZGVyTGluZVNldHMuZmluZChzZXQgPT4gc2V0Lm9yZGVyTGluZVNldENvZGUgPT09IGxpbmUub3JkZXJMaW5lU2V0Q29kZSk7XHJcbiAgICAgICAgaWYgKCFsaW5lU2V0KSB7XHJcbiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IERUTzogT3JkZXJMaW5lU2V0RFRPID0gbmV3IE9yZGVyTGluZVNldERUTygpO1xyXG4gICAgICAgICAgRFRPLm9yZGVyTGluZVNldENvZGUgPSBsaW5lU2V0Lm9yZGVyTGluZVNldENvZGU7XHJcbiAgICAgICAgICBEVE8ub3JkZXJMaW5lU2V0SWQgPSBsaW5lU2V0Lm9yZGVyTGluZVNldElkO1xyXG4gICAgICAgICAgRFRPLnRleHQgPSBsaW5lU2V0LnRleHQ7XHJcbiAgICAgICAgICBEVE8uYW1vdW50ID0gbGluZVNldC5hbW91bnQ7XHJcbiAgICAgICAgICBEVE8udGl0bGUgPSBsaW5lU2V0LnRpdGxlO1xyXG4gICAgICAgICAgRFRPLmNvbG9yID0gbGluZVNldC5jb2xvcjtcclxuICAgICAgICAgIERUTy5jYXRlZ29yeUlkID0gbGluZVNldC5jYXRlZ29yeUlkO1xyXG4gICAgICAgICAgcmV0dXJuIERUTztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9oaWRlQXJ0aWNsZVRleHREaWFsb2coKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaG93QXJ0aWNsZVRleHQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9oaWRlVHJhbnNhY3Rpb25UZXh0RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2hvd1RyYW5zYWN0aW9uVGV4dCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2hpZGVBcnRpY2xlVGV4dE92ZXJ2aWV3RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2hvd0FydGljbGVUZXh0T3ZlcnZpZXcgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZVRyYW5zYWN0aW9uTGluZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy50cmFuc2FjdGlvbkxpbmUpIHtcclxuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUgPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTGluZXNcclxuICAgICAgICAgICAgICAgIC5maW5kKChsaW5lKSA9PiBsaW5lLmxpbmVOciA9PT0gdGhpcy50cmFuc2FjdGlvbkxpbmUubGluZU5yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuc2lkZVBhbmVsVHJhbnNhY3Rpb25MaW5lKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2lkZVBhbmVsVHJhbnNhY3Rpb25MaW5lID0gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzXHJcbiAgICAgICAgICAgICAgICAuZmluZCgobGluZSkgPT4gbGluZS5saW5lTnIgPT09IHRoaXMuc2lkZVBhbmVsVHJhbnNhY3Rpb25MaW5lLmxpbmVOcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnNob3VsZFNob3dTaWRlUGFuZWwgJiYgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzICYmIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlU2hvd1NpZGVQYW5lbCh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTGluZXNbMF0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBwcml2YXRlIF9wcmVwYXJlSGVhZGVyKCk6IHZvaWQge1xyXG4gICAgLy8gICAgIGlmICh0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25JbmZvSGVhZGVyKS5pbW1lZGlhdGVseUhpZGRlbigpICYmXHJcbiAgICAvLyAgICAgICAgIHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5PcmRlckluZm9IZWFkZXIpLmltbWVkaWF0ZWx5SGlkZGVuKCkgJiZcclxuICAgIC8vICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLlBheW1lbnRJbmZvSGVhZGVyKS5pbW1lZGlhdGVseUhpZGRlbigpICYmXHJcbiAgICAvLyAgICAgICAgIHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5EZWxpdmVyeUluZm9IZWFkZXIpLmltbWVkaWF0ZWx5SGlkZGVuKCkpIHtcclxuICAgIC8vICAgICAgICAgLy8gbm90aGluZyB0byBzZWUgaGVyZVxyXG4gICAgLy8gICAgICAgICB0aGlzLnNob3dIZWFkZXIgPSBmYWxzZTtcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyB9XHJcbn1cclxuIl19
416
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24taW50ZXJuYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24taW50ZXJuYWwvdHJhbnNhY3Rpb24taW50ZXJuYWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsY0FBYyxFQUNkLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFlBQVksRUFDWixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSxzRUFBc0UsQ0FBQztBQUV2SCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUM3RixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUkxRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUM3RyxPQUFPLEVBQUMsYUFB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QWM7WUF5QlYsdUJBQXVCO1lBWXZCLDJCQUEyQjtZQVgzQix1QkFBdUI7WUFDdkIscUNBQXFDO1lBQ3JDLGFBQWE7WUFDYixvQkFBb0I7WUFTcEIsMkJBQTJCOzs7a0NBd0g5QixZQUFZLFNBQUMsaUNBQWlDO3VCQUc5QyxLQUFLO3FDQUdMLEtBQUs7MEJBY0wsS0FBSzt5QkFXTCxLQUFLOzZCQUdMLE1BQU07OEJBR04sV0FBVyxTQUFDLHlCQUF5QixjQUNyQyxLQUFLOzRCQUdMLFdBQVcsU0FBQyx1QkFBdUIsY0FDbkMsS0FBSzt3QkFHTCxXQUFXLFNBQUMsK0JBQStCO3VCQUszQyxZQUFZLFNBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFwcGxpY2F0aW9uUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSG9zdEJpbmRpbmcsXHJcbiAgICBIb3N0TGlzdGVuZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE91dHB1dCxcclxuICAgIFF1ZXJ5TGlzdCxcclxuICAgIFZpZXdDaGlsZHJlbixcclxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9IGZyb20gJy4uLy4uL2VudW0vdHJhbnNhY3Rpb24tdHlwZS1jYXRlZ29yeS5lbnVtJztcclxuaW1wb3J0IHtDb250ZW50Vmlld01vZGV9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkNmZ05hbWV9IGZyb20gJy4uLy4uL2VudW0vdHJhbnNhY3Rpb24tY2ZnLW5hbWUuZW51bSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lU2lkZVBhbmVsQ29tcG9uZW50fSBmcm9tICcuLi90cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwvdHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UmVsYXRpb25BbnlUeXBlfSBmcm9tICcuLi8uLi9tb2RlbC9yZWxhdGlvbi1hbnktdHlwZSc7XHJcbmltcG9ydCB7Q3VzdG9tZXJGdWxsT2JqZWN0fSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvY3VzdG9tZXItZnVsbC1vYmplY3QuYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ibyc7XHJcbmltcG9ydCB7U3RhdHVzQmFyQ2ZnTmFtZXN9IGZyb20gJy4uLy4uL2ludGVyZmFjZS9zdGF0dXMtYmFyLWNmZy1uYW1lcy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtEeW5hbWljQ29tcG9uZW50U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9keW5hbWljLWNvbXBvbmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkV2ZW50U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1ldmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNjcmVlbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQge0xpbmVTZWxlY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2xpbmUtc2VsZWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQmFyQnV0dG9ufSBmcm9tICcuLi8uLi9tb2RlbC90cmFuc2FjdGlvbi1iYXItYnV0dG9uJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkFkZFRleHRMaW5lUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWFkZC10ZXh0LWxpbmUtcmVxdWVzdC5ibyc7XHJcbmltcG9ydCB7T3JkZXJMaW5lU2V0RFRPfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvb3JkZXItbGluZS1zZXQtZHRvJztcclxuaW1wb3J0IHtPcmRlckxpbmVTZXRJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvb3JkZXItbGluZS1zZXQtaW5mby5ibyc7XHJcbmltcG9ydCB7XHJcbiAgICBUcmFuc2FjdGlvbkFkZE9yZGVyTGluZVNldFRleHRMaW5lUmVxdWVzdFxyXG59IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1hZGQtb3JkZXItbGluZS1zZXQtdGV4dC1saW5lLXJlcXVlc3QnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1jb25uZWN0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7UHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3B1cmNoYXNlLWNvbmZpcm1hdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjby10cmFuc2FjdGlvbi1pbnRlcm5hbCcsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkZWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjZGtEcm9wTGlzdEdyb3VwIGNsYXNzPVwiZHJvcC1saXN0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyICpuZ0lmPVwic2hvd0hlYWRlclwiIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiIFtyZWxhdGlvbl09XCJyZWxhdGlvblwiIChyZWxhdGlvbkNoYW5nZSk9XCJoYW5kbGVSZWxhdGlvbkNoYW5nZSgkZXZlbnQpXCI+PC9jby10cmFuc2FjdGlvbi1oZWFkZXI+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lcy1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzICpuZ0lmPVwic2hvd1F1aWNrQWNjZXNzXCIgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lcy1oZWFkZXItaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVsYXRpb25dPVwicmVsYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uXT1cInRyYW5zYWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY3RpdmVDYXRlZ29yeV09XCJhY3RpdmVDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1idXR0b24tYmFyICpuZ0lmPVwic2hvd0J1dHRvbkJhclwiIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZXMtaGVhZGVyLWl0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZENhdGVnb3J5XT1cImFjdGl2ZUNhdGVnb3J5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnV0dG9uQ2xpY2tlZCk9XCJoYW5kbGVCdXR0b25CYXJCdXR0b25DbGlja2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWJ1dHRvbi1iYXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmVzLWhlYWRlci1pdGVtIHJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjby1hdmF0YXIgY2xhc3M9XCJ0cmFuc2FjdGlvbi1zYWxlcy1hdmF0YXJcIiBbcmVsYXRpb25JZF09XCJ0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uc2FsZXNQZXJzb25cIj48L2NvLWF2YXRhcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWF2YXRhciBjbGFzcz1cInRyYW5zYWN0aW9uLXNhbGVzLWF2YXRhclwiIFtyZWxhdGlvbklkXT1cInRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5icmFuY2g/LnJlbGF0aW9uSWRcIj48L2NvLWF2YXRhcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXZpZXctbW9kZS1idXR0b25zICpuZ0lmPVwiIXNob3VsZFNob3dUaWxlcygpXCIgW3Nob3dWaWV3TW9kZXNdPVwiW3ZpZXdNb2Rlcy5MaXN0LCB2aWV3TW9kZXMuVGlsZXNdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2aWV3TW9kZUNoYW5nZSk9XCJhY3RpdmVWaWV3TW9kZSA9ICRldmVudFwiPjwvY28tdmlldy1tb2RlLWJ1dHRvbnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICA8IS0tPGNvLXRyYW5zYWN0aW9uLWRvY3VtZW50LWJ1dHRvbi1iYXIgW3RyYW5zYWN0aW9uXT1cInRyYW5zYWN0aW9uXCI+PC9jby10cmFuc2FjdGlvbi1kb2N1bWVudC1idXR0b24tYmFyPi0tPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tdGlsZXMtd3JhcHBlclwiICpuZ0lmPVwiYWN0aXZlVmlld01vZGUgPT09IHZpZXdNb2Rlcy5UaWxlcyB8fCBzaG91bGRTaG93VGlsZXMoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1jYXJkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgbGluZSBvZiAoaGlzdG9yaWNUcmFuc2FjdGlvbkxpbmVzID8gaGlzdG9yaWNUcmFuc2FjdGlvbkxpbmVzIDogdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lcylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXR1c0JhckNvbmZpZ05hbWVzXT1cInN0YXR1c0JhckNvbmZpZ05hbWVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cImxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImhpc3RvcmljVHJhbnNhY3Rpb25MaW5lcyAhPT0gbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWN0aXZlQ2F0ZWdvcnldPVwiYWN0aXZlQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWNhcmQ+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lcy13cmFwcGVyXCIgKm5nSWY9XCJhY3RpdmVWaWV3TW9kZSA9PT0gdmlld01vZGVzLkxpc3QgJiYgIXNob3VsZFNob3dUaWxlcygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjdGl2ZUNhdGVnb3J5XT1cImFjdGl2ZUNhdGVnb3J5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzYXZlVHJhbnNhY3Rpb25MaW5lKT1cInNhdmVUcmFuc2FjdGlvbkxpbmVUZXh0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmVzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tZm9vdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Y28tYWRkLXByb2R1Y3RcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlQ2F0ZWdvcnkgPT09IGNhdGVnb3JpZXMuU2FsZXNPcmRlckNhc2hSZWdpc3RlciB8fCBhY3RpdmVDYXRlZ29yeSA9PT0gY2F0ZWdvcmllcy5TYWxlc09yZGVyT3ZlcnZpZXcgfHwgYWN0aXZlQ2F0ZWdvcnkgPT09IGNhdGVnb3JpZXMuUHVyY2hhc2VPcmRlck92ZXJ2aWV3IHx8IGFjdGl2ZUNhdGVnb3J5ID09PSBjYXRlZ29yaWVzLlNhbGVzT3JkZXJRdW90YXRpb25cIj48L2NvLWFkZC1wcm9kdWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi10b3RhbHNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvblRvdGFsXT1cInRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uVG90YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dEaXNjb3VudF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi10b3RhbHM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwgKm5nSWY9XCJzaG93U2lkZVBhbmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uXT1cInRyYW5zYWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInNpZGVQYW5lbFRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY3RpdmVDYXRlZ29yeV09XCJhY3RpdmVDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYW5jZWxDbGljayk9XCJzaG93U2lkZVBhbmVsID0gZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsPlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICA8IS0tUG9wdXAgdm9vciB3aWp6aWdlbiB2b2xnb3JkZSB2YW4gdGVrc3RyZWdlbHMtLT5cclxuICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQtb3ZlcnZpZXcgKm5nSWY9XCJzaG93QXJ0aWNsZVRleHRPdmVydmlld1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJjbG9zZUFydGljbGVUZXh0T3ZlcnZpZXcoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYW5jZWxDbGljayk9XCJjbG9zZUFydGljbGVUZXh0T3ZlcnZpZXcoKVwiXHJcbiAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQtb3ZlcnZpZXc+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgIDwhLS1Qb3B1cCB2b29yIGFhbm1ha2VuIGVuIHVwZGF0ZW4gdHJhbnNhY3RpZXRla3N0cmVnZWxzLS0+XHJcbiAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0ICpuZ0lmPVwic2hvd1RyYW5zYWN0aW9uVGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJdPVwiJ09SREVSX1RFWFRfTElORScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvblV1aWRdPVwidHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWRpdFRleHRdPVwidGV4dFRvRWRpdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcmRlckxpbmVTZXREVE9dPVwic2VsZWN0ZWRPcmRlckxpbmVTZXREVE9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzYXZlQ2xpY2spPVwic2F2ZVRyYW5zYWN0aW9uTGluZVRleHQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbG9zZUNsaWNrKT1cImNsb3NlVHJhbnNhY3Rpb25UZXh0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FuY2VsQ2xpY2spPVwiY2xvc2VUcmFuc2FjdGlvblRleHQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzYXZlT3JkZXJMaW5lU2V0Q2xpY2spPVwic2F2ZU9yZGVyTGluZVNldCgkZXZlbnQpXCJcclxuICAgIFxyXG4gICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICA8IS0tUG9wdXAgdm9vciBhYW5tYWtlbiBlbiB1cGRhdGVuIGFydGlrZWx0ZWtzdHJlZ2Vscy0tPlxyXG4gICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWFydGljbGUtdGV4dCAqbmdJZj1cInNob3dBcnRpY2xlVGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJdPVwiJ1BST0RVQ1RfREVTQ1JJUFRJT05fQU5EX1RFWFRTJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uVXVpZF09XCJ0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93QXJ0aWNsZUltYWdlRGVzY3JpcHRpb25dPVwidHJhbnNhY3Rpb25MaW5lLmFydGljbGVCb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93SW1hZ2VdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJ0aWNsZUxpbmVOcl09XCJ0cmFuc2FjdGlvbkxpbmUubGluZU5yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FydGljbGVSZWZdPVwidHJhbnNhY3Rpb25MaW5lLmFydGljbGVOdW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlZGl0VGV4dF09XCJ0ZXh0VG9FZGl0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNhdmVDbGljayk9XCJzYXZlQXJ0aWNsZUxpbmVUZXh0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJjbG9zZUFydGljbGVUZXh0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FuY2VsQ2xpY2spPVwiY2xvc2VBcnRpY2xlVGV4dCgpXCJcclxuICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWFydGljbGUtdGV4dD5cclxuICAgIFxyXG4gICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWNvcHktb3JkZXIgKm5nSWY9XCJzaG93Q29weU9yZGVyRGlhbG9nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2VEaWFsb2cpPVwic2hvd0NvcHlPcmRlckRpYWxvZyA9IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWNvcHktb3JkZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZXMtc2lkZS1wYW5lbFxyXG4gICAgICAgICAgICAgIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiXHJcbiAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmVzLXNpZGUtcGFuZWw+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICBgLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25JbnRlcm5hbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2F0ZWdvcmllczogdHlwZW9mIFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5ID0gVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmlld01vZGVzOiB0eXBlb2YgQ29udGVudFZpZXdNb2RlID0gQ29udGVudFZpZXdNb2RlO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2ZnTmFtZXM6IHR5cGVvZiBUcmFuc2FjdGlvbkNmZ05hbWUgPSBUcmFuc2FjdGlvbkNmZ05hbWU7XHJcbiAgICBwdWJsaWMgc2NyZWVuV2lkdGg6IG51bWJlcjtcclxuXHJcbiAgICBAVmlld0NoaWxkcmVuKFRyYW5zYWN0aW9uTGluZVNpZGVQYW5lbENvbXBvbmVudClcclxuICAgIHB1YmxpYyBzaWRlUGFuZWxDb21wb25lbnRzOiBRdWVyeUxpc3Q8VHJhbnNhY3Rpb25MaW5lU2lkZVBhbmVsQ29tcG9uZW50PjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHJlbGF0aW9uOiBSZWxhdGlvbkFueVR5cGUgPSBuZXcgQ3VzdG9tZXJGdWxsT2JqZWN0KCk7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgY29uZmlybWF0aW9uQW5hbHlzaXNJZCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fY29uZmlybWF0aW9uQW5hbHlzaXNJZCA9IHZhbHVlO1xyXG4gICAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UuYWN0aXZlUnVicmljID0gVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlck9yZGVyQ29uZmlybWF0aW9uO1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUNhdGVnb3J5ID0gVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlck9yZGVyQ29uZmlybWF0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9wdXJjaGFzZUNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybWF0aW9uQW5hbHlzaXNJZCA9IHRoaXMuX2NvbmZpcm1hdGlvbkFuYWx5c2lzSWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBjb25maXJtYXRpb25BbmFseXNpc0lkKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpcm1hdGlvbkFuYWx5c2lzSWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgdHJhbnNhY3Rpb24odmFsdWU6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dIZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlbGF0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UmVsYXRpb25BbnlUeXBlPiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVsYXRpb25BbnlUeXBlPigpO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3Muc2hvdy1xdWljay1hY2Nlc3MnKVxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93UXVpY2tBY2Nlc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3Muc2hvdy1idXR0b24tYmFyJylcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd0J1dHRvbkJhcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby10cmFuc2FjdGlvbi1pbnRlcm5hbCcpXHJcbiAgICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gICAgb25SZXNpemUoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2NyZWVuV2lkdGggPSBldmVudC50YXJnZXQuaW5uZXJXaWR0aDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWN0aXZlVmlld01vZGU6IENvbnRlbnRWaWV3TW9kZSA9IENvbnRlbnRWaWV3TW9kZS5MaXN0O1xyXG4gICAgcHVibGljIGFjdGl2ZUNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuICAgIHB1YmxpYyBzaWRlUGFuZWxUcmFuc2FjdGlvbkxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm87XHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25MaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvO1xyXG4gICAgcHVibGljIHNlbGVjdGVkT3JkZXJMaW5lU2V0RFRPOiBPcmRlckxpbmVTZXREVE87XHJcbiAgICBwdWJsaWMgc2hvd1NpZGVQYW5lbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHNob3VsZFNob3dTaWRlUGFuZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBzaG93QXJ0aWNsZVRleHRPdmVydmlldzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHNob3dUcmFuc2FjdGlvblRleHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBzaG93QXJ0aWNsZVRleHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBzaG93Q29weU9yZGVyRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgbG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgdGV4dFRvRWRpdDogc3RyaW5nO1xyXG4gICAgcHVibGljIGhpc3RvcmljVHJhbnNhY3Rpb25MaW5lczogVHJhbnNhY3Rpb25MaW5lSW5mb1tdIHwgbnVsbDtcclxuXHJcblxyXG4gICAgcHVibGljIHN0YXR1c0JhckNvbmZpZ05hbWVzOiBTdGF0dXNCYXJDZmdOYW1lcyA9IHtcclxuICAgICAgICBzdGF0dXNCYXJCVDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJCVCxcclxuICAgICAgICBzdGF0dXNCYXJURzogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJURyxcclxuICAgICAgICBzdGF0dXNCYXJQQTogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJQQSxcclxuICAgICAgICBzdGF0dXNCYXJQVjogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJQVixcclxuICAgICAgICBzdGF0dXNCYXJUUDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJUUCxcclxuICAgICAgICBzdGF0dXNCYXJHVDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHVCxcclxuICAgICAgICBzdGF0dXNCYXJHUDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHUCxcclxuICAgICAgICBzdGF0dXNCYXJHTDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHTCxcclxuICAgICAgICBzdGF0dXNCYXJHRjogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHRixcclxuICAgICAgICBzdGF0dXNCYXJJQjogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJJQixcclxuICAgICAgICBzdGF0dXNCYXJOVDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJOVCxcclxuICAgICAgICBzdGF0dXNCYXJCTjogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJCTixcclxuICAgICAgICBzdGF0dXNCYXJCRzogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJCRyxcclxuICAgICAgICBzdGF0dXNCYXJGQzogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJGQ1xyXG4gICAgfTtcclxuXHJcbiAgICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlID0gbmV3IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKCk7XHJcbiAgICBwcml2YXRlIF9jb25maXJtYXRpb25BbmFseXNpc0lkOiBudW1iZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9hcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxyXG4gICAgICAgIHByaXZhdGUgX2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlOiBEeW5hbWljQ29tcG9uZW50U2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF90cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2U6IFRyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF90cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9saW5lU2VsZWN0aW9uU2VydmljZTogTGluZVNlbGVjdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfcHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlOiBQdXJjaGFzZUNvbmZpcm1hdGlvblNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnRyYW5zYWN0aW9uVXBkYXRlZC5zdWJzY3JpYmUoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRyYW5zYWN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVRyYW5zYWN0aW9uTGluZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLnJlbGF0aW9uVXBkYXRlZC5zdWJzY3JpYmUoKHJlbGF0aW9uOiBSZWxhdGlvbkFueVR5cGUpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZWxhdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVsYXRpb24gPSByZWxhdGlvbjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS50cmFuc2FjdGlvbktpbmRTZXQuc3Vic2NyaWJlKChzZXQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChzZXQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUNhdGVnb3J5ID0gdGhpcy5jb25maXJtYXRpb25BbmFseXNpc0lkID8gVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlck9yZGVyQ29uZmlybWF0aW9uIDogdGhpcy5zZXJ2aWNlLmFjdGl2ZVJ1YnJpYztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZS5jb25uZWN0aW9uSW5pdGlhbGl6ZWQuc3Vic2NyaWJlKChpbml0aWFsaXplZDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGluaXRpYWxpemVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgdGhpcy5fcHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm1hdGlvbk5lZWRlZC5zdWJzY3JpYmUoKG5lZWRlZDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKG5lZWRlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvdWxkU2hvd1NpZGVQYW5lbCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVTaG93U2lkZVBhbmVsKHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lc1swXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS5vcGVuU2lkZVBhbmVsLnN1YnNjcmliZSgobGluZSkgPT4gdGhpcy5oYW5kbGVTaG93U2lkZVBhbmVsKGxpbmUpKSxcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uub3BlbkFydGljbGVUZXh0T3ZlcnZpZXcuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZVNob3dBcnRpY2xlVGV4dE92ZXJ2aWV3KGxpbmUpKSxcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuYWRkVHJhbnNhY3Rpb25UZXh0LnN1YnNjcmliZSgobGluZSkgPT4gdGhpcy5oYW5kbGVTaG93VHJhbnNhY3Rpb25UZXh0KGxpbmUpKSxcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuYWRkQXJ0aWNsZVRleHQuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZVNob3dBcnRpY2xlVGV4dChsaW5lKSksXHJcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmVkaXRUcmFuc2FjdGlvblRleHQuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZUVkaXRUcmFuc2FjdGlvblRleHQobGluZSkpLFxyXG4gICAgICAgICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS5lZGl0QXJ0aWNsZVRleHQuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZUVkaXRBcnRpY2xlVGV4dChsaW5lKSksXHJcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmhpc3RvcmljUmVwb3J0TGluZXNUb1Nob3dcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxpbmVzKSA9PiB0aGlzLmhpc3RvcmljVHJhbnNhY3Rpb25MaW5lcyA9IGxpbmVzKSxcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uuc2hvd0Vycm9yLnN1YnNjcmliZSgoZSkgPT5cclxuICAgICAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uuc2hvd0Vycm9yKGUubWVzc2FnZSwgZS5sb2NhbGl6ZSwgZS5kZXRhaWxzKSksXHJcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmNvcHlPcmRlci5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zaG93Q29weU9yZGVyRGlhbG9nID0gdHJ1ZSlcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlUmVsYXRpb25DaGFuZ2UocmVsYXRpb246IFJlbGF0aW9uQW55VHlwZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2VydmljZS5yZWxhdGlvbiA9IHJlbGF0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVCdXR0b25CYXJCdXR0b25DbGlja2VkKGJ1dHRvbjogVHJhbnNhY3Rpb25CYXJCdXR0b24pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZUNhdGVnb3J5ID0gYnV0dG9uLmNhdGVnb3J5O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVTaG93U2lkZVBhbmVsKGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiB2b2lkIHtcclxuICAgICAgICBpZiAobGluZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNpZGVQYW5lbFRyYW5zYWN0aW9uTGluZSA9IGxpbmU7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd1NpZGVQYW5lbCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVTaG93QXJ0aWNsZVRleHRPdmVydmlldyhsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGxpbmUpIHtcclxuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUgPSBsaW5lO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dBcnRpY2xlVGV4dE92ZXJ2aWV3ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZVNob3dUcmFuc2FjdGlvblRleHQobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMudGV4dFRvRWRpdCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkT3JkZXJMaW5lU2V0RFRPID0gbmV3IE9yZGVyTGluZVNldERUTygpO1xyXG4gICAgICAgIHRoaXMuc2hvd1RyYW5zYWN0aW9uVGV4dERpYWxvZygpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVTaG93QXJ0aWNsZVRleHQobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IHZvaWQge1xyXG4gICAgICAgIGlmIChsaW5lKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGV4dFRvRWRpdCA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUgPSBsaW5lO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dBcnRpY2xlVGV4dERpYWxvZygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgc2F2ZVRyYW5zYWN0aW9uTGluZVRleHQoZGF0YTogeyByZXF1ZXN0OiBUcmFuc2FjdGlvbkFkZFRleHRMaW5lUmVxdWVzdCwgbmV3OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBpZiAoIWRhdGEubmV3KSB7IC8vdXBkYXRlXHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVUZXh0TGluZShkYXRhLnJlcXVlc3QudHJhbnNhY3Rpb25VdWlkLCB0aGlzLnRyYW5zYWN0aW9uTGluZS51dWlkLCBkYXRhLnJlcXVlc3Quc2hvd09uRG9jdW1lbnRzLCBkYXRhLnJlcXVlc3QudGV4dCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmFkZFRleHRMaW5lKFxyXG4gICAgICAgICAgICAgICAgZGF0YS5yZXF1ZXN0LnNob3dPbkRvY3VtZW50cyxcclxuICAgICAgICAgICAgICAgIGRhdGEucmVxdWVzdC50ZXh0LFxyXG4gICAgICAgICAgICAgICAgMCxcclxuICAgICAgICAgICAgICAgIGRhdGEucmVxdWVzdC5hcnRpY2xlQm91bmQsXHJcbiAgICAgICAgICAgICAgICAwLFxyXG4gICAgICAgICAgICAgICAgMCxcclxuICAgICAgICAgICAgICAgIDApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5faGlkZVRyYW5zYWN0aW9uVGV4dERpYWxvZygpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBzYXZlT3JkZXJMaW5lU2V0KGRhdGE6IHsgcmVxdWVzdDogT3JkZXJMaW5lU2V0RFRPLCBuZXc6IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICBpZiAoIWRhdGEubmV3KSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnVwZGF0ZU9yZGVyTGluZVNldChkYXRhLnJlcXVlc3QpO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVUZXh0TGluZShkYXRhLnJlcXVlc3QudHJhbnNhY3Rpb25VdWlkLCB0aGlzLnRyYW5zYWN0aW9uTGluZS51dWlkLCBkYXRhLnJlcXVlc3Quc2hvd09uRG9jdW1lbnRzLCBkYXRhLnJlcXVlc3QudGV4dCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgbmV3UmVxdWVzdDogVHJhbnNhY3Rpb25BZGRPcmRlckxpbmVTZXRUZXh0TGluZVJlcXVlc3QgPSBuZXcgVHJhbnNhY3Rpb25BZGRPcmRlckxpbmVTZXRUZXh0TGluZVJlcXVlc3QoKTtcclxuICAgICAgICBuZXdSZXF1ZXN0Lm9yZGVyTGluZVNldFRpdGxlID0gZGF0YS5yZXF1ZXN0LnRpdGxlO1xyXG4gICAgICAgIG5ld1JlcXVlc3QuYW1vdW50ID0gZGF0YS5yZXF1ZXN0LmFtb3VudDtcclxuICAgICAgICBuZXdSZXF1ZXN0LmNhdGVnb3J5SWQgPSBkYXRhLnJlcXVlc3QuY2F0ZWdvcnlJZDtcclxuICAgICAgICBuZXdSZXF1ZXN0LmNvbG9yID0gZGF0YS5yZXF1ZXN0LmNvbG9yO1xyXG4gICAgICAgIG5ld1JlcXVlc3QudHJhbnNhY3Rpb25VdWlkID0gZGF0YS5yZXF1ZXN0LnRyYW5zYWN0aW9uVXVpZDtcclxuICAgICAgICBuZXdSZXF1ZXN0LnNob3dPbkRvY3VtZW50cyA9IGRhdGEucmVxdWVzdC5zaG93T25Eb2N1bWVudHM7XHJcbiAgICAgICAgbmV3UmVxdWVzdC50ZXh0ID0gZGF0YS5yZXF1ZXN0LnRleHQ7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmFkZE9yZGVyTGluZVNldChuZXdSZXF1ZXN0KTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9oaWRlVHJhbnNhY3Rpb25UZXh0RGlhbG9nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIHNhdmVBcnRpY2xlTGluZVRleHQoZGF0YTogeyByZXF1ZXN0OiBUcmFuc2FjdGlvbkFkZFRleHRMaW5lUmVxdWVzdCwgbmV3OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBpZiAoIWRhdGEubmV3KSB7IC8vdXBkYXRlXHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVUZXh0TGluZShkYXRhLnJlcXVlc3QudHJhbnNhY3Rpb25VdWlkLCB0aGlzLnRyYW5zYWN0aW9uTGluZS51dWlkLCBkYXRhLnJlcXVlc3Quc2hvd09uRG9jdW1lbnRzLCBkYXRhLnJlcXVlc3QudGV4dCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmFkZFRleHRMaW5lKFxyXG4gICAgICAgICAgICAgICAgZGF0YS5yZXF1ZXN0LnNob3dPbkRvY3VtZW50cyxcclxuICAgICAgICAgICAgICAgIGRhdGEucmVxdWVzdC50ZXh0LFxyXG4gICAgICAgICAgICAgICAgMCxcclxuICAgICAgICAgICAgICAgIHRydWUsXHJcbiAgICAgICAgICAgICAgICBkYXRhLnJlcXVlc3QucmVmQXJ0aWNsZUxpbmVOclxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9oaWRlQXJ0aWNsZVRleHREaWFsb2coKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlRWRpdFRyYW5zYWN0aW9uVGV4dChsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUgPSBsaW5lO1xyXG4gICAgICAgIHRoaXMudGV4dFRvRWRpdCA9IGxpbmUudGV4dDtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkT3JkZXJMaW5lU2V0RFRPID0gdGhpcy5fZ2V0T3JkZXJMaW5lU2V0SWZFeGlzdHMobGluZSk7XHJcblxyXG4gICAgICAgIGlmIChsaW5lLmlzVGV4dCkge1xyXG4gICAgICAgICAgICB0aGlzLnNob3dUcmFuc2FjdGlvblRleHREaWFsb2coKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gaWYgKGxpbmUuYXJ0aWNsZUJvdW5kQ29uY2F0ZW5hdGVkVGV4dCAmJiBsaW5lLmFydGljbGVCb3VuZENvbmNhdGVuYXRlZFRleHQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIC8vICAgdGhpcy5zaG93QXJ0aWNsZVRleHRPdmVydmlld0RpYWxvZygpO1xyXG4gICAgICAgIC8vIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlRWRpdEFydGljbGVUZXh0KGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRleHRUb0VkaXQgPSBsaW5lLnRleHQ7XHJcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUgPSBsaW5lO1xyXG5cclxuICAgICAgICB0aGlzLl9oaWRlQXJ0aWNsZVRleHRPdmVydmlld0RpYWxvZygpO1xyXG4gICAgICAgIHRoaXMuc2hvd0FydGljbGVUZXh0RGlhbG9nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsb3NlQXJ0aWNsZVRleHQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5faGlkZUFydGljbGVUZXh0RGlhbG9nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsb3NlVHJhbnNhY3Rpb25UZXh0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2hpZGVUcmFuc2FjdGlvblRleHREaWFsb2coKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2xvc2VBcnRpY2xlVGV4dE92ZXJ2aWV3KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2hpZGVBcnRpY2xlVGV4dE92ZXJ2aWV3RGlhbG9nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNob3dUcmFuc2FjdGlvblRleHREaWFsb2coKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaG93VHJhbnNhY3Rpb25UZXh0ID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2hvd0FydGljbGVUZXh0RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2hvd0FydGljbGVUZXh0ID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2hvd0FydGljbGVUZXh0T3ZlcnZpZXdEaWFsb2coKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaG93QXJ0aWNsZVRleHRPdmVydmlldyA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNob3VsZFNob3dUaWxlcygpOiBib29sZWFuIHtcclxuICAgICAgICAvLyBBZGp1c3QgdGhlIHdpZHRoIGNvbmRpdGlvbiBhcyBuZWVkZWRcclxuICAgICAgICByZXR1cm4gdGhpcy5zY3JlZW5XaWR0aCA8IDEyODA7IC8vIFNob3cgdGhlIGRpdiBpZiBzY3JlZW4gd2lkdGggaXMgc21hbGxlciB0aGFuIDEyODBweFxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2dldE9yZGVyTGluZVNldElmRXhpc3RzKGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiBPcmRlckxpbmVTZXREVE8ge1xyXG4gICAgICBpZighbGluZS5vcmRlckxpbmVTZXRDb2RlKSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgbGluZVNldDogT3JkZXJMaW5lU2V0SW5mbyA9IHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLm9yZGVyTGluZVNldHMuZmluZChzZXQgPT4gc2V0Lm9yZGVyTGluZVNldENvZGUgPT09IGxpbmUub3JkZXJMaW5lU2V0Q29kZSk7XHJcbiAgICAgICAgaWYgKCFsaW5lU2V0KSB7XHJcbiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IERUTzogT3JkZXJMaW5lU2V0RFRPID0gbmV3IE9yZGVyTGluZVNldERUTygpO1xyXG4gICAgICAgICAgRFRPLm9yZGVyTGluZVNldENvZGUgPSBsaW5lU2V0Lm9yZGVyTGluZVNldENvZGU7XHJcbiAgICAgICAgICBEVE8ub3JkZXJMaW5lU2V0SWQgPSBsaW5lU2V0Lm9yZGVyTGluZVNldElkO1xyXG4gICAgICAgICAgRFRPLnRleHQgPSBsaW5lU2V0LnRleHQ7XHJcbiAgICAgICAgICBEVE8uYW1vdW50ID0gbGluZVNldC5hbW91bnQ7XHJcbiAgICAgICAgICBEVE8udGl0bGUgPSBsaW5lU2V0LnRpdGxlO1xyXG4gICAgICAgICAgRFRPLmNvbG9yID0gbGluZVNldC5jb2xvcjtcclxuICAgICAgICAgIERUTy5jYXRlZ29yeUlkID0gbGluZVNldC5jYXRlZ29yeUlkO1xyXG4gICAgICAgICAgcmV0dXJuIERUTztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9oaWRlQXJ0aWNsZVRleHREaWFsb2coKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaG93QXJ0aWNsZVRleHQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9oaWRlVHJhbnNhY3Rpb25UZXh0RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2hvd1RyYW5zYWN0aW9uVGV4dCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2hpZGVBcnRpY2xlVGV4dE92ZXJ2aWV3RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2hvd0FydGljbGVUZXh0T3ZlcnZpZXcgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZVRyYW5zYWN0aW9uTGluZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy50cmFuc2FjdGlvbkxpbmUpIHtcclxuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUgPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTGluZXNcclxuICAgICAgICAgICAgICAgIC5maW5kKChsaW5lKSA9PiBsaW5lLmxpbmVOciA9PT0gdGhpcy50cmFuc2FjdGlvbkxpbmUubGluZU5yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuc2lkZVBhbmVsVHJhbnNhY3Rpb25MaW5lKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2lkZVBhbmVsVHJhbnNhY3Rpb25MaW5lID0gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzXHJcbiAgICAgICAgICAgICAgICAuZmluZCgobGluZSkgPT4gbGluZS5saW5lTnIgPT09IHRoaXMuc2lkZVBhbmVsVHJhbnNhY3Rpb25MaW5lLmxpbmVOcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnNob3VsZFNob3dTaWRlUGFuZWwgJiYgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzICYmIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlU2hvd1NpZGVQYW5lbCh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTGluZXNbMF0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBwcml2YXRlIF9wcmVwYXJlSGVhZGVyKCk6IHZvaWQge1xyXG4gICAgLy8gICAgIGlmICh0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25JbmZvSGVhZGVyKS5pbW1lZGlhdGVseUhpZGRlbigpICYmXHJcbiAgICAvLyAgICAgICAgIHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5PcmRlckluZm9IZWFkZXIpLmltbWVkaWF0ZWx5SGlkZGVuKCkgJiZcclxuICAgIC8vICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLlBheW1lbnRJbmZvSGVhZGVyKS5pbW1lZGlhdGVseUhpZGRlbigpICYmXHJcbiAgICAvLyAgICAgICAgIHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5EZWxpdmVyeUluZm9IZWFkZXIpLmltbWVkaWF0ZWx5SGlkZGVuKCkpIHtcclxuICAgIC8vICAgICAgICAgLy8gbm90aGluZyB0byBzZWUgaGVyZVxyXG4gICAgLy8gICAgICAgICB0aGlzLnNob3dIZWFkZXIgPSBmYWxzZTtcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyB9XHJcbn1cclxuIl19
@@ -71,6 +71,7 @@ TransactionBaseLineComponent.decorators = [
71
71
  <co-transaction-line-image-and-description
72
72
  *ngIf="transactionLine.isArticle" class="transaction-line-image-and-description-wrapper"
73
73
  [preview]="preview"
74
+ [isFirst]="isFirst"
74
75
  [transactionInfo]="transactionInfo"
75
76
  [transactionLine]="transactionLine"
76
77
  (handleDeleteLine)="deleteTransactionLineClick($event)"
@@ -83,6 +84,7 @@ TransactionBaseLineComponent.decorators = [
83
84
  <co-transaction-line-action-buttons
84
85
  [configNames]="actionButtonsConfigNames"
85
86
  [transactionLine]="transactionLine"
87
+ [isFirst]="isFirst"
86
88
  [orderLineSets]="orderLineSets"
87
89
  (waitingForUserAction)="waitingForUserAction.next($event)"
88
90
  (sidePanelButtonClicked)="handleShowSidePanel($event)"
@@ -104,4 +106,4 @@ TransactionBaseLineComponent.propDecorators = {
104
106
  waitingForUserAction: [{ type: Output }],
105
107
  showClass: [{ type: HostBinding, args: ["class.co-transaction-base-line",] }]
106
108
  };
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tYmFzZS1saW5lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLWxpbmUvdHJhbnNhY3Rpb24tYmFzZS1saW5lL3RyYW5zYWN0aW9uLWJhc2UtbGluZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBR0wsTUFBTSxFQUNOLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQXdDcEYsTUFBTSxPQUFPLDRCQUE2QixTQUFRLHdCQUF3QjtJQXBDMUU7O1FBK0NVLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBR2pDLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUdsQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRzFCLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBRzlCLHlCQUFvQixHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBRzFFLHlCQUFvQixHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBTzFFLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUVuQyw2QkFBd0IsR0FBMEI7WUFDdkQsY0FBYyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYztZQUM1QyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQjtZQUNsRCxjQUFjLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjO1lBQzVDLFlBQVksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVk7U0FDekMsQ0FBQTtRQUVPLFVBQUssR0FBbUIsRUFBRSxDQUFDO0lBb0NyQyxDQUFDO0lBNUVDLElBQ1csYUFBYSxDQUFDLEtBQWM7UUFDckMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQW9CTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBYUQsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDYixJQUFJLENBQUMsdUJBQXVCLENBQUMsOEJBQThCLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBbUQsRUFBRSxFQUFFO1lBQzVILElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3pFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDbEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3RCO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDekMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFUyxTQUFTO1FBQ2pCLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQzdDLElBQUksSUFBSSxDQUFDLHdCQUF3QixDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsRUFBRTtnQkFDckksSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztnQkFDOUIsT0FBTzthQUNSO1NBQ0Y7SUFDSCxDQUFDO0lBQ00sbUJBQW1CLENBQUMsSUFBeUI7UUFDbEQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDckQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU0scUJBQXFCLENBQUMsSUFBWTtRQUN2QyxJQUFJLENBQUMsdUJBQXVCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsRixDQUFDOzs7WUFqSEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDs7OzRCQUdFLEtBQUs7K0JBV0wsS0FBSzt1QkFHTCxLQUFLOzRCQUdMLEtBQUs7bUNBR0wsTUFBTTttQ0FHTixNQUFNO3dCQUdOLFdBQVcsU0FBQyxnQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkJhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS90cmFuc2FjdGlvbi1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7QWN0aW9uQnV0dG9uc0NmZ05hbWVzfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2UvYWN0aW9uLWJ1dHRvbnMtY2ZnLW5hbWVzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tdHJhbnNhY3Rpb24tYmFzZS1saW5lXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1iYXNlLWxpbmUtd3JhcHBlclwiIGRhdGEtYWN0aW9uPVwib3BlblNpZGVQYW5lbFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tYmFzZS1saW5lLXNlY3Rpb25cIiBbY2xhc3MubGluZS1zdGFydF09XCIhcHJldmlld1wiPlxyXG4gICAgICAgIDxjby1pbnB1dC1jaGVja2JveCAqbmdJZj1cImNoZWNrYm94XCIgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cImNoZWNrYm94VmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiY2hlY2tib3hSZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJjaGVja2JveFZhbHVlQ2hhbmdlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAgID48L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWltYWdlLWFuZC1kZXNjcmlwdGlvblxyXG4gICAgICAgICAgKm5nSWY9XCJ0cmFuc2FjdGlvbkxpbmUuaXNBcnRpY2xlXCIgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWltYWdlLWFuZC1kZXNjcmlwdGlvbi13cmFwcGVyXCJcclxuICAgICAgICAgIFtwcmV2aWV3XT1cInByZXZpZXdcIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgKGhhbmRsZURlbGV0ZUxpbmUpPVwiZGVsZXRlVHJhbnNhY3Rpb25MaW5lQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAob3BlbkFydGljbGVUZXh0Q2xpY2tlZCk9XCJoYW5kbGVPcGVuQXJ0aWNsZVRleHQoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS1pbWFnZS1hbmQtZGVzY3JpcHRpb24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tYmFzZS1saW5lLXNlY3Rpb25cIiBbY2xhc3MubGluZS1lbmRdPVwiIXByZXZpZXdcIiBbY2xhc3MucHJldmlldy1tYXJnaW5dPVwicHJldmlld1wiPlxyXG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIXByZXZpZXcgJiYgYWN0aW9uQnV0dG9ucyAmJiBzaG93QWN0aW9uc0J1dHRvblwiIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1idXR0b25zXCI+XHJcbiAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1hY3Rpb24tYnV0dG9uc1xyXG4gICAgICAgICAgICBbY29uZmlnTmFtZXNdPVwiYWN0aW9uQnV0dG9uc0NvbmZpZ05hbWVzXCJcclxuICAgICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgICBbb3JkZXJMaW5lU2V0c109XCJvcmRlckxpbmVTZXRzXCJcclxuICAgICAgICAgICAgKHdhaXRpbmdGb3JVc2VyQWN0aW9uKT1cIndhaXRpbmdGb3JVc2VyQWN0aW9uLm5leHQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChzaWRlUGFuZWxCdXR0b25DbGlja2VkKT1cImhhbmRsZVNob3dTaWRlUGFuZWwoJGV2ZW50KVwiXHJcbiAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLWFjdGlvbi1idXR0b25zPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25CYXNlTGluZUNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGNoZWNrYm94VmFsdWUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2NoZWNrYm94VmFsdWUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY2hlY2tib3hWYWx1ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9jaGVja2JveFZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2hlY2tib3hWYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjaGVja2JveFJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGNoZWNrYm94OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFjdGlvbkJ1dHRvbnM6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgY2hlY2tib3hWYWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHdhaXRpbmdGb3JVc2VyQWN0aW9uOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXRyYW5zYWN0aW9uLWJhc2UtbGluZVwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93QWN0aW9uc0J1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgYWN0aW9uQnV0dG9uc0NvbmZpZ05hbWVzOiBBY3Rpb25CdXR0b25zQ2ZnTmFtZXMgPSB7XHJcbiAgICBhZGREb2N1bWVudEJ0bjogdGhpcy5jZmdOYW1lcy5BZGREb2N1bWVudEJ0bixcclxuICAgIGFkZFByb2R1Y3RUZXh0QnRuOiB0aGlzLmNmZ05hbWVzLkFkZFByb2R1Y3RUZXh0QnRuLFxyXG4gICAgYWRkTGluZVRleHRCdG46IHRoaXMuY2ZnTmFtZXMuQWRkTGluZVRleHRCdG4sXHJcbiAgICBzaWRlUGFuZWxCdG46IHRoaXMuY2ZnTmFtZXMuU2lkZVBhbmVsQnRuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2UudHJhbnNhY3Rpb25MaW5lQ2hlY2tib3hDaGFuZ2VkLnN1YnNjcmliZSgoZGF0YToge2xpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8sIGNoZWNrZWQ6IGJvb2xlYW59KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5saW5lICYmIGRhdGEubGluZS5saW5lTnIgPT09IHRoaXMudHJhbnNhY3Rpb25MaW5lLmxpbmVOcikge1xyXG4gICAgICAgICAgdGhpcy5jaGVja2JveFZhbHVlID0gZGF0YS5jaGVja2VkO1xyXG4gICAgICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLm9wZW5TaWRlUGFuZWwubmV4dChudWxsKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjb25maWdTZXQoKSB7XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5hY3Rpb25CdXR0b25zQ29uZmlnTmFtZXMpIHtcclxuICAgICAgaWYgKHRoaXMuYWN0aW9uQnV0dG9uc0NvbmZpZ05hbWVzLmhhc093blByb3BlcnR5KGtleSkgJiYgdGhpcy5zY3JlZW5Db25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3Ioa2V5KS5pbW1lZGlhdGVseVZpc2libGUoKSkge1xyXG4gICAgICAgIHRoaXMuc2hvd0FjdGlvbnNCdXR0b24gPSB0cnVlO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBwdWJsaWMgaGFuZGxlU2hvd1NpZGVQYW5lbChsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLm9wZW5TaWRlUGFuZWwubmV4dChsaW5lKVxyXG4gICAgdGhpcy53YWl0aW5nRm9yVXNlckFjdGlvbi5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZU9wZW5BcnRpY2xlVGV4dCh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uub3BlbkFydGljbGVUZXh0T3ZlcnZpZXcubmV4dCh0aGlzLnRyYW5zYWN0aW9uTGluZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tYmFzZS1saW5lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLWxpbmUvdHJhbnNhY3Rpb24tYmFzZS1saW5lL3RyYW5zYWN0aW9uLWJhc2UtbGluZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBR0wsTUFBTSxFQUNOLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQTBDcEYsTUFBTSxPQUFPLDRCQUE2QixTQUFRLHdCQUF3QjtJQXRDMUU7O1FBaURVLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBR2pDLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUdsQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRzFCLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBRzlCLHlCQUFvQixHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBRzFFLHlCQUFvQixHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBTzFFLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUVuQyw2QkFBd0IsR0FBMEI7WUFDdkQsY0FBYyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYztZQUM1QyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQjtZQUNsRCxjQUFjLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjO1lBQzVDLFlBQVksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVk7U0FDekMsQ0FBQTtRQUVPLFVBQUssR0FBbUIsRUFBRSxDQUFDO0lBb0NyQyxDQUFDO0lBNUVDLElBQ1csYUFBYSxDQUFDLEtBQWM7UUFDckMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQW9CTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBYUQsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDYixJQUFJLENBQUMsdUJBQXVCLENBQUMsOEJBQThCLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBbUQsRUFBRSxFQUFFO1lBQzVILElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3pFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDbEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3RCO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDekMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFUyxTQUFTO1FBQ2pCLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQzdDLElBQUksSUFBSSxDQUFDLHdCQUF3QixDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsRUFBRTtnQkFDckksSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztnQkFDOUIsT0FBTzthQUNSO1NBQ0Y7SUFDSCxDQUFDO0lBQ00sbUJBQW1CLENBQUMsSUFBeUI7UUFDbEQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDckQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU0scUJBQXFCLENBQUMsSUFBWTtRQUN2QyxJQUFJLENBQUMsdUJBQXVCLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsRixDQUFDOzs7WUFuSEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQ1Q7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEOzs7NEJBR0UsS0FBSzsrQkFXTCxLQUFLO3VCQUdMLEtBQUs7NEJBR0wsS0FBSzttQ0FHTCxNQUFNO21DQUdOLE1BQU07d0JBR04sV0FBVyxTQUFDLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0QmluZGluZyxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlL3RyYW5zYWN0aW9uLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHtBY3Rpb25CdXR0b25zQ2ZnTmFtZXN9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZS9hY3Rpb24tYnV0dG9ucy1jZmctbmFtZXMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby10cmFuc2FjdGlvbi1iYXNlLWxpbmVcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWJhc2UtbGluZS13cmFwcGVyXCIgZGF0YS1hY3Rpb249XCJvcGVuU2lkZVBhbmVsXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1iYXNlLWxpbmUtc2VjdGlvblwiIFtjbGFzcy5saW5lLXN0YXJ0XT1cIiFwcmV2aWV3XCI+XHJcbiAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94ICpuZ0lmPVwiY2hlY2tib3hcIiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwiY2hlY2tib3hWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJjaGVja2JveFJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImNoZWNrYm94VmFsdWVDaGFuZ2VkLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvY28taW5wdXQtY2hlY2tib3g+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtaW1hZ2UtYW5kLWRlc2NyaXB0aW9uXHJcbiAgICAgICAgICAqbmdJZj1cInRyYW5zYWN0aW9uTGluZS5pc0FydGljbGVcIiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtaW1hZ2UtYW5kLWRlc2NyaXB0aW9uLXdyYXBwZXJcIlxyXG4gICAgICAgICAgW3ByZXZpZXddPVwicHJldmlld1wiXHJcbiAgICAgICAgICBbaXNGaXJzdF09XCJpc0ZpcnN0XCJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgIChoYW5kbGVEZWxldGVMaW5lKT1cImRlbGV0ZVRyYW5zYWN0aW9uTGluZUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgKG9wZW5BcnRpY2xlVGV4dENsaWNrZWQpPVwiaGFuZGxlT3BlbkFydGljbGVUZXh0KCRldmVudClcIlxyXG4gICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtaW1hZ2UtYW5kLWRlc2NyaXB0aW9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWJhc2UtbGluZS1zZWN0aW9uXCIgW2NsYXNzLmxpbmUtZW5kXT1cIiFwcmV2aWV3XCIgW2NsYXNzLnByZXZpZXctbWFyZ2luXT1cInByZXZpZXdcIj5cclxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFwcmV2aWV3ICYmIGFjdGlvbkJ1dHRvbnMgJiYgc2hvd0FjdGlvbnNCdXR0b25cIiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtYnV0dG9uc1wiPlxyXG4gICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtYWN0aW9uLWJ1dHRvbnNcclxuICAgICAgICAgICAgW2NvbmZpZ05hbWVzXT1cImFjdGlvbkJ1dHRvbnNDb25maWdOYW1lc1wiXHJcbiAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgW2lzRmlyc3RdPVwiaXNGaXJzdFwiXHJcbiAgICAgICAgICAgIFtvcmRlckxpbmVTZXRzXT1cIm9yZGVyTGluZVNldHNcIlxyXG4gICAgICAgICAgICAod2FpdGluZ0ZvclVzZXJBY3Rpb24pPVwid2FpdGluZ0ZvclVzZXJBY3Rpb24ubmV4dCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgKHNpZGVQYW5lbEJ1dHRvbkNsaWNrZWQpPVwiaGFuZGxlU2hvd1NpZGVQYW5lbCgkZXZlbnQpXCJcclxuICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtYWN0aW9uLWJ1dHRvbnM+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkJhc2VMaW5lQ29tcG9uZW50IGV4dGVuZHMgVHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgY2hlY2tib3hWYWx1ZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fY2hlY2tib3hWYWx1ZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjaGVja2JveFZhbHVlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NoZWNrYm94VmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jaGVja2JveFZhbHVlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGNoZWNrYm94UmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgY2hlY2tib3g6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYWN0aW9uQnV0dG9uczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBjaGVja2JveFZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgd2FpdGluZ0ZvclVzZXJBY3Rpb246IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tdHJhbnNhY3Rpb24tYmFzZS1saW5lXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dBY3Rpb25zQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBhY3Rpb25CdXR0b25zQ29uZmlnTmFtZXM6IEFjdGlvbkJ1dHRvbnNDZmdOYW1lcyA9IHtcclxuICAgIGFkZERvY3VtZW50QnRuOiB0aGlzLmNmZ05hbWVzLkFkZERvY3VtZW50QnRuLFxyXG4gICAgYWRkUHJvZHVjdFRleHRCdG46IHRoaXMuY2ZnTmFtZXMuQWRkUHJvZHVjdFRleHRCdG4sXHJcbiAgICBhZGRMaW5lVGV4dEJ0bjogdGhpcy5jZmdOYW1lcy5BZGRMaW5lVGV4dEJ0bixcclxuICAgIHNpZGVQYW5lbEJ0bjogdGhpcy5jZmdOYW1lcy5TaWRlUGFuZWxCdG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS50cmFuc2FjdGlvbkxpbmVDaGVja2JveENoYW5nZWQuc3Vic2NyaWJlKChkYXRhOiB7bGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbywgY2hlY2tlZDogYm9vbGVhbn0pID0+IHtcclxuICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLmxpbmUgJiYgZGF0YS5saW5lLmxpbmVOciA9PT0gdGhpcy50cmFuc2FjdGlvbkxpbmUubGluZU5yKSB7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrYm94VmFsdWUgPSBkYXRhLmNoZWNrZWQ7XHJcbiAgICAgICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uub3BlblNpZGVQYW5lbC5uZXh0KG51bGwpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGNvbmZpZ1NldCgpIHtcclxuICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmFjdGlvbkJ1dHRvbnNDb25maWdOYW1lcykge1xyXG4gICAgICBpZiAodGhpcy5hY3Rpb25CdXR0b25zQ29uZmlnTmFtZXMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiB0aGlzLnNjcmVlbkNvbmZpZ1NlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcihrZXkpLmltbWVkaWF0ZWx5VmlzaWJsZSgpKSB7XHJcbiAgICAgICAgdGhpcy5zaG93QWN0aW9uc0J1dHRvbiA9IHRydWU7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHB1YmxpYyBoYW5kbGVTaG93U2lkZVBhbmVsKGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uub3BlblNpZGVQYW5lbC5uZXh0KGxpbmUpXHJcbiAgICB0aGlzLndhaXRpbmdGb3JVc2VyQWN0aW9uLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlT3BlbkFydGljbGVUZXh0KHRleHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5vcGVuQXJ0aWNsZVRleHRPdmVydmlldy5uZXh0KHRoaXMudHJhbnNhY3Rpb25MaW5lKTtcclxuICB9XHJcbn1cclxuIl19
@@ -124,6 +124,7 @@ export class TransactionLineComponent extends TransactionBaseComponent {
124
124
  _prepareProps() {
125
125
  if (this._componentRef) {
126
126
  this._componentRef.instance.preview = this.preview;
127
+ this._componentRef.instance.isFirst = this.isFirst;
127
128
  this._componentRef.instance.selected = this.selected;
128
129
  this._componentRef.instance.transaction = this.transaction;
129
130
  this._componentRef.instance.transactionLine = this.transactionLine;
@@ -162,6 +163,7 @@ TransactionLineComponent.propDecorators = {
162
163
  container: [{ type: ViewChild, args: ['transactionLine', { read: ElementRef },] }],
163
164
  activeCategory: [{ type: Input }],
164
165
  preview: [{ type: Input }],
166
+ isFirst: [{ type: Input }],
165
167
  draggedOver: [{ type: HostBinding, args: ["class.drag-over",] }, { type: Input }],
166
168
  waitingForUserAction: [{ type: Output }],
167
169
  descriptionDblClick: [{ type: Output }],
@@ -169,4 +171,4 @@ TransactionLineComponent.propDecorators = {
169
171
  newLine: [{ type: HostBinding, args: ['class.new-line',] }],
170
172
  boxShadow: [{ type: HostBinding, args: ['style.boxShadow',] }]
171
173
  };
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLWxpbmUvdHJhbnNhY3Rpb24tbGluZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCx3QkFBd0IsRUFDeEIsVUFBVSxFQUVWLFlBQVksRUFDWixXQUFXLEVBQ1gsUUFBUSxFQUNSLEtBQUssRUFJTCxNQUFNLEVBR04sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQVdoSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsd0JBQXdCO0lBMERwRSxZQUNTLHVCQUFnRCxFQUNoRCxPQUEyQixFQUMzQixnQkFBa0MsRUFDbEMscUNBQTRFLEVB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QztZQUNuRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUNuRSxrRUFBa0U7WUFDbEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDakUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1lBQzdFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztTQUM1RTtJQUNILENBQUM7OztZQS9LRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsUUFBUSxFQUFFOztLQUVQO2dCQUNILGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDs7O1lBWE8sdUJBQXVCO1lBTHZCLGtCQUFrQjtZQUlsQixnQkFBZ0I7WUFFaEIscUNBQXFDO1lBTHJDLGlCQUFpQjtZQUVqQix1QkFBdUI7WUF4QjdCLGlCQUFpQjtZQW1CWCx5QkFBeUI7WUFqQi9CLHdCQUF3QjtZQUp4QixjQUFjO1lBU2QsUUFBUTs7O3dCQWdDUCxTQUFTLFNBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFOzZCQU9qRCxLQUFLO3NCQVVMLEtBQUs7MEJBR0wsV0FBVyxTQUFDLGlCQUFpQixjQUM3QixLQUFLO21DQUdMLE1BQU07a0NBR04sTUFBTTt3QkFHTixXQUFXLFNBQUMsMkJBQTJCO3NCQUt2QyxXQUFXLFNBQUMsZ0JBQWdCO3dCQUc1QixXQUFXLFNBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBcHBsaWNhdGlvblJlZixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRW1iZWRkZWRWaWV3UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0QmluZGluZyxcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUeXBlLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uVHlwZUNhdGVnb3J5fSBmcm9tICcuLi8uLi8uLi9lbnVtL3RyYW5zYWN0aW9uLXR5cGUtY2F0ZWdvcnkuZW51bSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25NYXBwaW5nU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1tYXBwaW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlL3RyYW5zYWN0aW9uLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblRleHRMaW5lQ29tcG9uZW50fSBmcm9tICcuLi90cmFuc2FjdGlvbi10ZXh0LWxpbmUvdHJhbnNhY3Rpb24tdGV4dC1saW5lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24taW1hZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXRyYW5zYWN0aW9uLWxpbmVcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiAjdHJhbnNhY3Rpb25MaW5lPjwvZGl2PlxyXG4gICAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkxpbmVDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKCd0cmFuc2FjdGlvbkxpbmUnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgc2V0IGNvbnRhaW5lcihjb250ZW50KSB7XHJcbiAgICBpZiAoY29udGVudCkge1xyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkxpbmVDb250YWluZXIgPSBjb250ZW50O1xyXG4gICAgICB0aGlzLl9wcmVwYXJlQ29udGVudCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGFjdGl2ZUNhdGVnb3J5KHZhbHVlOiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeSkge1xyXG4gICAgdGhpcy5fYWN0aXZlQ2F0ZWdvcnkgPSB2YWx1ZTtcclxuICAgIHRoaXMuX3ByZXBhcmVDb250ZW50KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFjdGl2ZUNhdGVnb3J5KCk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5IHtcclxuICAgIHJldHVybiB0aGlzLl9hY3RpdmVDYXRlZ29yeTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHByZXZpZXc6IGJvb2xlYW47XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmRyYWctb3ZlclwiKVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGRyYWdnZWRPdmVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyB3YWl0aW5nRm9yVXNlckFjdGlvbjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgZGVzY3JpcHRpb25EYmxDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1saW5lXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5uZXctbGluZScpXHJcbiAgcHVibGljIG5ld0xpbmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5ib3hTaGFkb3cnKVxyXG4gIHB1YmxpYyBnZXQgYm94U2hhZG93KCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5kcm9wU2hhZG93Q29sb3IpIHtcclxuICAgICAgcmV0dXJuIGBpbnNldCAwIDAgMnB4IDFweCAke3RoaXMuZHJvcFNoYWRvd0NvbG9yfWA7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZHJhZ2dlZE92ZXIpIHtcclxuICAgICAgcmV0dXJuICdpbnNldCAwIDAgMnB4IDFweCBncmV5JztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAnbm9uZSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZHJvcFNoYWRvd0NvbG9yOiBzdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgX3RyYW5zYWN0aW9uTGluZUNvbnRhaW5lcjogRWxlbWVudFJlZjtcclxuICAvLyBwcml2YXRlIF90cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uS2luZDtcclxuICBwcml2YXRlIF9hY3RpdmVDYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk7XHJcbiAgcHJpdmF0ZSBfY29tcG9uZW50UmVmOiBhbnk7XHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcblxyXG4gICAgcHJvdGVjdGVkIGRpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgIHByb3RlY3RlZCBpbWFnZVNlcnZpY2U6IFRyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX21hcHBpbmdTZXJ2aWNlOiBUcmFuc2FjdGlvbk1hcHBpbmdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY29tcEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcclxuICApIHtcclxuICAgIHN1cGVyKHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLCBpY29uQ2FjaGVTZXJ2aWNlLCB0cmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBpbWFnZVNlcnZpY2UsIGRpY3Rpb25hcnlTZXJ2aWNlLCBzZXJ2aWNlLCBjaGFuZ2VEZXRlY3Rvcik7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBsZXQgc2hvdWxkUHJlcGFyZVByb3BzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gY2hhbmdlcykge1xyXG4gICAgICBpZiAoa2V5ICE9PSAnZHJhZ2dlZE92ZXInKSB7XHJcbiAgICAgICAgc2hvdWxkUHJlcGFyZVByb3BzID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHNob3VsZFByZXBhcmVQcm9wcykge1xyXG4gICAgICB0aGlzLl9wcmVwYXJlUHJvcHMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS50cmFuc2FjdGlvbkxpbmVBZGRlZC5zdWJzY3JpYmUoKGxpbmVOcjogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgaWYgKGxpbmVOciAhPT0gdW5kZWZpbmVkICYmIHRoaXMudHJhbnNhY3Rpb25MaW5lICYmIHRoaXMudHJhbnNhY3Rpb25MaW5lLmxpbmVOciA9PT0gbGluZU5yKSB7XHJcbiAgICAgICAgICB0aGlzLm5ld0xpbmUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uub3JkZXJDb25maXJtYXRpb25Ecm9wcGVkLnN1YnNjcmliZSgoZGF0YToge2xpbmVOcjogbnVtYmVyLCBhbmFseXNpc0lkOiBudW1iZXIsIGNvbG9yOiBzdHJpbmd9KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEubGluZU5yICE9PSB1bmRlZmluZWQgJiYgdGhpcy50cmFuc2FjdGlvbkxpbmUgJiYgdGhpcy50cmFuc2FjdGlvbkxpbmUubGluZU5yID09PSBkYXRhLmxpbmVOcikge1xyXG4gICAgICAgICAgdGhpcy5kcm9wU2hhZG93Q29sb3IgPSBkYXRhLmNvbG9yO1xyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy5fY29tcG9uZW50UmVmKSB7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIHRoaXMuX3RyYW5zYWN0aW9uTGluZUNvbnRhaW5lciA9IHVuZGVmaW5lZDtcclxuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25JbmZvU2V0KCkge1xyXG4gICAgc3VwZXIudHJhbnNhY3Rpb25JbmZvU2V0KCk7XHJcbiAgICB0aGlzLl9wcmVwYXJlQ29udGVudCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZUNvbnRlbnQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudHJhbnNhY3Rpb25LaW5kIHx8ICF0aGlzLl9hY3RpdmVDYXRlZ29yeSB8fCAhdGhpcy5fdHJhbnNhY3Rpb25MaW5lQ29udGFpbmVyKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgY29tcG9uZW50Q2xhc3M6IFR5cGU8VHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50PjtcclxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uTGluZS5pc1RleHQpIHtcclxuICAgICAgY29tcG9uZW50Q2xhc3MgPSBUcmFuc2FjdGlvblRleHRMaW5lQ29tcG9uZW50O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29tcG9uZW50Q2xhc3MgPSB0aGlzLl9tYXBwaW5nU2VydmljZS5nZXRUcmFuc2FjdGlvbkxpbmVDb21wb25lbnQodGhpcy50cmFuc2FjdGlvbktpbmQsIHRoaXMuX2FjdGl2ZUNhdGVnb3J5KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5fY29tcG9uZW50UmVmKSB7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGlmICghY29tcG9uZW50Q2xhc3MpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IHRoaXMuX2NvbXBGYWN0b3J5UmVzb2x2ZXJcclxuICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudENsYXNzKVxyXG4gICAgICAuY3JlYXRlKHRoaXMuaW5qZWN0b3IpO1xyXG5cclxuICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuXHJcbiAgICB0aGlzLl9wcmVwYXJlUHJvcHMoKTtcclxuXHJcbiAgICBjb25zdCBkb21FbGVtID0gKHRoaXMuX2NvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55PilcclxuICAgICAgLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICB0aGlzLl90cmFuc2FjdGlvbkxpbmVDb250YWluZXIubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChkb21FbGVtKTtcclxuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5vbkRlc3Ryb3koKCkgPT4ge1xyXG4gICAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KHRoaXMuX2NvbXBvbmVudFJlZi5ob3N0Vmlldyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3ByZXBhcmVQcm9wcygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLnByZXZpZXcgPSB0aGlzLnByZXZpZXc7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWQ7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS50cmFuc2FjdGlvbiA9IHRoaXMudHJhbnNhY3Rpb247XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS50cmFuc2FjdGlvbkxpbmUgPSB0aGlzLnRyYW5zYWN0aW9uTGluZTtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLnRyYW5zYWN0aW9uSW5mbyA9IHRoaXMudHJhbnNhY3Rpb25JbmZvO1xyXG4gICAgICAvLyB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UudHJhbnNhY3Rpb25JZCA9IHRoaXMudHJhbnNhY3Rpb25JZDtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLmFjdGl2ZUNhdGVnb3J5ID0gdGhpcy5hY3RpdmVDYXRlZ29yeTtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLndhaXRpbmdGb3JVc2VyQWN0aW9uID0gdGhpcy53YWl0aW5nRm9yVXNlckFjdGlvbjtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLmRlc2NyaXB0aW9uRGJsQ2xpY2sgPSB0aGlzLmRlc2NyaXB0aW9uRGJsQ2xpY2s7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLWxpbmUvdHJhbnNhY3Rpb24tbGluZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCx3QkFBd0IsRUFDeEIsVUFBVSxFQUVWLFlBQVksRUFDWixXQUFXLEVBQ1gsUUFBUSxFQUNSLEtBQUssRUFJTCxNQUFNLEVBR04sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQVdoSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsd0JBQXdCO0lBNkRwRSxZQUNTLHVCQUFnRCxFQUNoRCxPQUEyQixFQUMzQixnQkFBa0MsRUFDbEMscUNBQTRFLEVB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cGxpY2F0aW9uUmVmLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgRWxlbWVudFJlZixcclxuICBFbWJlZGRlZFZpZXdSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFR5cGUsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9IGZyb20gJy4uLy4uLy4uL2VudW0vdHJhbnNhY3Rpb24tdHlwZS1jYXRlZ29yeS5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbk1hcHBpbmdTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLW1hcHBpbmcuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uVGV4dExpbmVDb21wb25lbnR9IGZyb20gJy4uL3RyYW5zYWN0aW9uLXRleHQtbGluZS90cmFuc2FjdGlvbi10ZXh0LWxpbmUuY29tcG9uZW50JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkltYWdlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1pbWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tdHJhbnNhY3Rpb24tbGluZVwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2ICN0cmFuc2FjdGlvbkxpbmU+PC9kaXY+XHJcbiAgICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uTGluZUNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoJ3RyYW5zYWN0aW9uTGluZScsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBzZXQgY29udGFpbmVyKGNvbnRlbnQpIHtcclxuICAgIGlmIChjb250ZW50KSB7XHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uTGluZUNvbnRhaW5lciA9IGNvbnRlbnQ7XHJcbiAgICAgIHRoaXMuX3ByZXBhcmVDb250ZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgYWN0aXZlQ2F0ZWdvcnkodmFsdWU6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5KSB7XHJcbiAgICB0aGlzLl9hY3RpdmVDYXRlZ29yeSA9IHZhbHVlO1xyXG4gICAgdGhpcy5fcHJlcGFyZUNvbnRlbnQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYWN0aXZlQ2F0ZWdvcnkoKTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUNhdGVnb3J5O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcHJldmlldzogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaXNGaXJzdDogYm9vbGVhbjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuZHJhZy1vdmVyXCIpXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZHJhZ2dlZE92ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHdhaXRpbmdGb3JVc2VyQWN0aW9uOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBkZXNjcmlwdGlvbkRibENsaWNrOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXRyYW5zYWN0aW9uLWxpbmVcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm5ldy1saW5lJylcclxuICBwdWJsaWMgbmV3TGluZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmJveFNoYWRvdycpXHJcbiAgcHVibGljIGdldCBib3hTaGFkb3coKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmRyb3BTaGFkb3dDb2xvcikge1xyXG4gICAgICByZXR1cm4gYGluc2V0IDAgMCAycHggMXB4ICR7dGhpcy5kcm9wU2hhZG93Q29sb3J9YDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5kcmFnZ2VkT3Zlcikge1xyXG4gICAgICByZXR1cm4gJ2luc2V0IDAgMCAycHggMXB4IGdyZXknO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICdub25lJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBkcm9wU2hhZG93Q29sb3I6IHN0cmluZztcclxuXHJcbiAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25MaW5lQ29udGFpbmVyOiBFbGVtZW50UmVmO1xyXG4gIC8vIHByaXZhdGUgX3RyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25LaW5kO1xyXG4gIHByaXZhdGUgX2FjdGl2ZUNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuICBwcml2YXRlIF9jb21wb25lbnRSZWY6IGFueTtcclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSxcclxuXHJcbiAgICBwcm90ZWN0ZWQgZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGltYWdlU2VydmljZTogVHJhbnNhY3Rpb25JbWFnZVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBfbWFwcGluZ1NlcnZpY2U6IFRyYW5zYWN0aW9uTWFwcGluZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jb21wRmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWYsXHJcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvclxyXG4gICkge1xyXG4gICAgc3VwZXIodHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsIGljb25DYWNoZVNlcnZpY2UsIHRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsIGltYWdlU2VydmljZSwgZGljdGlvbmFyeVNlcnZpY2UsIHNlcnZpY2UsIGNoYW5nZURldGVjdG9yKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGxldCBzaG91bGRQcmVwYXJlUHJvcHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGZvciAobGV0IGtleSBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgIGlmIChrZXkgIT09ICdkcmFnZ2VkT3ZlcicpIHtcclxuICAgICAgICBzaG91bGRQcmVwYXJlUHJvcHMgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoc2hvdWxkUHJlcGFyZVByb3BzKSB7XHJcbiAgICAgIHRoaXMuX3ByZXBhcmVQcm9wcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnRyYW5zYWN0aW9uTGluZUFkZGVkLnN1YnNjcmliZSgobGluZU5yOiBudW1iZXIpID0+IHtcclxuICAgICAgICBpZiAobGluZU5yICE9PSB1bmRlZmluZWQgJiYgdGhpcy50cmFuc2FjdGlvbkxpbmUgJiYgdGhpcy50cmFuc2FjdGlvbkxpbmUubGluZU5yID09PSBsaW5lTnIpIHtcclxuICAgICAgICAgIHRoaXMubmV3TGluZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5vcmRlckNvbmZpcm1hdGlvbkRyb3BwZWQuc3Vic2NyaWJlKChkYXRhOiB7bGluZU5yOiBudW1iZXIsIGFuYWx5c2lzSWQ6IG51bWJlciwgY29sb3I6IHN0cmluZ30pID0+IHtcclxuICAgICAgICBpZiAoZGF0YS5saW5lTnIgIT09IHVuZGVmaW5lZCAmJiB0aGlzLnRyYW5zYWN0aW9uTGluZSAmJiB0aGlzLnRyYW5zYWN0aW9uTGluZS5saW5lTnIgPT09IGRhdGEubGluZU5yKSB7XHJcbiAgICAgICAgICB0aGlzLmRyb3BTaGFkb3dDb2xvciA9IGRhdGEuY29sb3I7XHJcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIGlmICh0aGlzLl9jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fdHJhbnNhY3Rpb25MaW5lQ29udGFpbmVyID0gdW5kZWZpbmVkO1xyXG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB0cmFuc2FjdGlvbkluZm9TZXQoKSB7XHJcbiAgICBzdXBlci50cmFuc2FjdGlvbkluZm9TZXQoKTtcclxuICAgIHRoaXMuX3ByZXBhcmVDb250ZW50KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wcmVwYXJlQ29udGVudCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy50cmFuc2FjdGlvbktpbmQgfHwgIXRoaXMuX2FjdGl2ZUNhdGVnb3J5IHx8ICF0aGlzLl90cmFuc2FjdGlvbkxpbmVDb250YWluZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBjb21wb25lbnRDbGFzczogVHlwZTxUcmFuc2FjdGlvbkJhc2VDb21wb25lbnQ+O1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb25MaW5lLmlzVGV4dCkge1xyXG4gICAgICBjb21wb25lbnRDbGFzcyA9IFRyYW5zYWN0aW9uVGV4dExpbmVDb21wb25lbnQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb21wb25lbnRDbGFzcyA9IHRoaXMuX21hcHBpbmdTZXJ2aWNlLmdldFRyYW5zYWN0aW9uTGluZUNvbXBvbmVudCh0aGlzLnRyYW5zYWN0aW9uS2luZCwgdGhpcy5fYWN0aXZlQ2F0ZWdvcnkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLl9jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgaWYgKCFjb21wb25lbnRDbGFzcykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fY29tcG9uZW50UmVmID0gdGhpcy5fY29tcEZhY3RvcnlSZXNvbHZlclxyXG4gICAgICAucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50Q2xhc3MpXHJcbiAgICAgIC5jcmVhdGUodGhpcy5pbmplY3Rvcik7XHJcblxyXG4gICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyh0aGlzLl9jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xyXG5cclxuICAgIHRoaXMuX3ByZXBhcmVQcm9wcygpO1xyXG5cclxuICAgIGNvbnN0IGRvbUVsZW0gPSAodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KVxyXG4gICAgICAucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgIHRoaXMuX3RyYW5zYWN0aW9uTGluZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xyXG4gICAgdGhpcy5fY29tcG9uZW50UmVmLm9uRGVzdHJveSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYXBwUmVmLmRldGFjaFZpZXcodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZVByb3BzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2NvbXBvbmVudFJlZikge1xyXG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UucHJldmlldyA9IHRoaXMucHJldmlldztcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLmlzRmlyc3QgPSB0aGlzLmlzRmlyc3Q7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWQ7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS50cmFuc2FjdGlvbiA9IHRoaXMudHJhbnNhY3Rpb247XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS50cmFuc2FjdGlvbkxpbmUgPSB0aGlzLnRyYW5zYWN0aW9uTGluZTtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLnRyYW5zYWN0aW9uSW5mbyA9IHRoaXMudHJhbnNhY3Rpb25JbmZvO1xyXG4gICAgICAvLyB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UudHJhbnNhY3Rpb25JZCA9IHRoaXMudHJhbnNhY3Rpb25JZDtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLmFjdGl2ZUNhdGVnb3J5ID0gdGhpcy5hY3RpdmVDYXRlZ29yeTtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLndhaXRpbmdGb3JVc2VyQWN0aW9uID0gdGhpcy53YWl0aW5nRm9yVXNlckFjdGlvbjtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLmRlc2NyaXB0aW9uRGJsQ2xpY2sgPSB0aGlzLmRlc2NyaXB0aW9uRGJsQ2xpY2s7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -75,6 +75,7 @@ TransactionOverviewLineComponent.decorators = [
75
75
  [transactionInfo]="transactionInfo"
76
76
  [transactionLine]="transactionLine"
77
77
  [preview]="preview"
78
+ [isFirst]="isFirst"
78
79
  [checkbox]="orderLineSetService.currentOrderLineSetCode && (!transactionLine.orderLineSetCode || transactionLine.orderLineSetCode === orderLineSetService.currentOrderLineSetCode)"
79
80
  [checkboxValue]="orderLineSetService.currentOrderLineSetCode === transactionLine.orderLineSetCode"
80
81
  (checkboxValueChanged)="handleCheckBoxValueChanged($event)"
@@ -83,6 +84,7 @@ TransactionOverviewLineComponent.decorators = [
83
84
  <div class="transaction-line-wrapper">
84
85
  <div *ngIf=!preview class="transaction-line-extended-wrapper">
85
86
  <div class="column1">
87
+ <span class="transaction-field-label" [textContent]="'WAREHOUSE_AND_STATUS' | localize" *ngIf="isFirst"></span>
86
88
  <co-transaction-line-commission-button
87
89
  [screenConfigurationObject]="cfgNames.LineCommission"
88
90
  [transactionLine]="transactionLine"
@@ -101,6 +103,7 @@ TransactionOverviewLineComponent.decorators = [
101
103
  [activeCategory]="category.SalesOrderOverview"></co-transaction-line-statusbar>
102
104
  </div>
103
105
  <div class="column2">
106
+ <span class="transaction-field-label" [textContent]="'DELIVERY' | localize" *ngIf="isFirst"></span>
104
107
  <co-transaction-line-delivery-button
105
108
  [screenConfigurationObject]="cfgNames.LineDeliveryMethod"
106
109
  [transactionLine]="transactionLine"
@@ -114,6 +117,7 @@ TransactionOverviewLineComponent.decorators = [
114
117
  </div>
115
118
  </div>
116
119
  <div class="transaction-line-section">
120
+ <span class="transaction-field-label" [textContent]="'TOTALS_AND_DISCOUNT' | localize" *ngIf="isFirst"></span>
117
121
  <co-transaction-line-vat-button *ngIf="!preview"
118
122
  [screenConfigurationObject]="cfgNames.LineVat"
119
123
  [transactionLine]="transactionLine"
@@ -141,10 +145,9 @@ TransactionOverviewLineComponent.decorators = [
141
145
  ></co-transaction-line-amount>
142
146
  </div>
143
147
  <co-editable-label class="transaction-line-totals-total price"
144
- [screenConfigurationObject]="cfgNames.LineNetLineTotal"
145
148
  [model]="transactionLine.displayNetLineTotal | coCurrency"
146
149
  [editModel]="transactionLine.displayNetLineTotal"
147
- [commit]="!readonly"
150
+ [readonly]="true"
148
151
  ></co-editable-label>
149
152
  </div>
150
153
  </div>
@@ -172,4 +175,4 @@ TransactionOverviewLineComponent.propDecorators = {
172
175
  handleMouseOver: [{ type: HostListener, args: ["mouseover", ["$event"],] }],
173
176
  handleMouseLeave: [{ type: HostListener, args: ["mouseleave", ["$event"],] }]
174
177
  };
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tb3ZlcnZpZXctbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLW92ZXJ2aWV3LWxpbmUvdHJhbnNhY3Rpb24tb3ZlcnZpZXctbGluZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzFJLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUMxRixPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSxpRkFBaUYsQ0FBQztBQUN0SSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUdyRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUNoSCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQXlGeEUsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLHdCQUF3QjtJ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O1FBQzFCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNsQyxDQUFDOzs7WUEvSkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw4QkFBOEI7Z0JBQ3hDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUZUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBRXRDOzs7WUE5Rk8sdUJBQXVCO1lBQ3ZCLGdCQUFnQjtZQUNoQixxQ0FBcUM7WUFDckMsbUJBQW1CO1lBQ25CLHVCQUF1QjtZQUN2QixpQkFBaUI7WUFDakIsa0JBQWtCO1lBYmxCLGlCQUFpQjs7OzJDQXlHdEIsU0FBUyxTQUFDLHFDQUFxQztrQ0FHL0MsTUFBTTt3QkFHTixXQUFXLFNBQUMsb0NBQW9DOzhCQUtoRCxZQUFZLFNBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDOytCQUtwQyxZQUFZLFNBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7U3RvY2tTdGF0dXN9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3JlZmNvZGUvc3RvY2stc3RhdHVzLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUFjdGlvbkJ1dHRvbnNDb21wb25lbnR9IGZyb20gJy4uLy4uL3RyYW5zYWN0aW9uLWxpbmUtYWN0aW9uLWJ1dHRvbnMvdHJhbnNhY3Rpb24tbGluZS1hY3Rpb24tYnV0dG9ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlL3RyYW5zYWN0aW9uLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblR5cGVDYXRlZ29yeX0gZnJvbSAnLi4vLi4vLi4vZW51bS90cmFuc2FjdGlvbi10eXBlLWNhdGVnb3J5LmVudW0nO1xyXG5pbXBvcnQge1N0YXR1c0JhckNmZ05hbWVzfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2Uvc3RhdHVzLWJhci1jZmctbmFtZXMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtMaW5lRGlzY291bnRDZmdOYW1lc30gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlL2xpbmUtZGlzY291bnQtY2ZnLW5hbWVzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7T3JkZXJMaW5lU2V0U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9vcmRlci1saW5lLXNldC1zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkltYWdlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1pbWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXRyYW5zYWN0aW9uLW92ZXJ2aWV3LWxpbmVcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8Y28tdHJhbnNhY3Rpb24tYmFzZS1saW5lXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICBbcHJldmlld109XCJwcmV2aWV3XCJcclxuICAgICAgICAgIFtjaGVja2JveF09XCJvcmRlckxpbmVTZXRTZXJ2aWNlLmN1cnJlbnRPcmRlckxpbmVTZXRDb2RlICYmICghdHJhbnNhY3Rpb25MaW5lLm9yZGVyTGluZVNldENvZGUgfHwgdHJhbnNhY3Rpb25MaW5lLm9yZGVyTGluZVNldENvZGUgPT09IG9yZGVyTGluZVNldFNlcnZpY2UuY3VycmVudE9yZGVyTGluZVNldENvZGUpXCJcclxuICAgICAgICAgIFtjaGVja2JveFZhbHVlXT1cIm9yZGVyTGluZVNldFNlcnZpY2UuY3VycmVudE9yZGVyTGluZVNldENvZGUgPT09IHRyYW5zYWN0aW9uTGluZS5vcmRlckxpbmVTZXRDb2RlXCJcclxuICAgICAgICAgIChjaGVja2JveFZhbHVlQ2hhbmdlZCk9XCJoYW5kbGVDaGVja0JveFZhbHVlQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICAgIG9ic2VydmVWaXNpYmlsaXR5ICNvYnNlcnZlcj12aXNpYmlsaXR5T2JzZXJ2ZSAodmlzaWJpbGl0eUNoYW5nZSk9XCJoYW5kbGVWaXNpYmlsaXR5Q2hhbmdlKHRyYW5zYWN0aW9uTGluZSwgJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRyYW5zYWN0aW9uTGluZS5pc0FydGljbGVcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9IXByZXZpZXcgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWV4dGVuZGVkLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtY29tbWlzc2lvbi1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkxpbmVDb21taXNzaW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLWNvbW1pc3Npb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXdhcmVob3VzZS1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkxpbmVXYXJlaG91c2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtd2FyZWhvdXNlLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1zdGF0dXNiYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlN0YXR1c0JhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnTmFtZXNdPVwic3RhdHVzQmFyQ29uZmlnTmFtZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjdGl2ZUNhdGVnb3J5XT1cImNhdGVnb3J5LlNhbGVzT3JkZXJPdmVydmlld1wiPjwvY28tdHJhbnNhY3Rpb24tbGluZS1zdGF0dXNiYXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtZGVsaXZlcnktYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5MaW5lRGVsaXZlcnlNZXRob2RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtZGVsaXZlcnktYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWRlbGl2ZXJ5LWRhdGUtYnV0dG9uIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1kZWxpdmVyeS1kYXRlIHR3by1jb2x1bW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuTGluZURlbGl2ZXJ5RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS1kZWxpdmVyeS1kYXRlLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtc2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtdmF0LWJ1dHRvbiAqbmdJZj1cIiFwcmV2aWV3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkxpbmVWYXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS12YXQtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtdG90YWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtcHJpY2UgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXRvdGFscy1wcmljZSBwcmljZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuTGluZVByaWNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93TGFiZWxdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0RWRpdE1vZGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtcHJpY2U+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtZGlzY291bnQtYnV0dG9uICpuZ0lmPVwiIXByZXZpZXdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5MaW5lRGlzY291bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnTmFtZXNdPVwiZGlzY291bnRDb25maWdOYW1lc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtZGlzY291bnQtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXRvdGFscy1hbW91bnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtYW1vdW50IGNsYXNzPVwiYW1vdW50LW51bWJlci1waWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuTGluZUFtb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtYW1vdW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1lZGl0YWJsZS1sYWJlbCBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtdG90YWxzLXRvdGFsIHByaWNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuTGluZU5ldExpbmVUb3RhbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJ0cmFuc2FjdGlvbkxpbmUuZGlzcGxheU5ldExpbmVUb3RhbCB8IGNvQ3VycmVuY3lcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWRpdE1vZGVsXT1cInRyYW5zYWN0aW9uTGluZS5kaXNwbGF5TmV0TGluZVRvdGFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbW1pdF09XCIhcmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLWVkaXRhYmxlLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvY28tdHJhbnNhY3Rpb24tYmFzZS1saW5lPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAvL2NoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbk92ZXJ2aWV3TGluZUNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGNhdGVnb3J5OiB0eXBlb2YgVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkgPSBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuXHJcbiAgQFZpZXdDaGlsZChUcmFuc2FjdGlvbkxpbmVBY3Rpb25CdXR0b25zQ29tcG9uZW50KVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbkxpbmVBY3Rpb25CdXR0b25zOiBUcmFuc2FjdGlvbkxpbmVBY3Rpb25CdXR0b25zQ29tcG9uZW50O1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgZGVzY3JpcHRpb25EYmxDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1vdmVydmlldy1saW5lXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcIm1vdXNlb3ZlclwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgcHVibGljIGhhbmRsZU1vdXNlT3ZlcihldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5tb3VzZU92ZXIgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIHB1YmxpYyBoYW5kbGVNb3VzZUxlYXZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLm1vdXNlT3ZlciA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0b2NrOiBTdG9ja1N0YXR1cyA9IFN0b2NrU3RhdHVzLkxvdztcclxuICBwdWJsaWMgbW91c2VPdmVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBzdGF0dXNCYXJDb25maWdOYW1lczogU3RhdHVzQmFyQ2ZnTmFtZXMgPSB7XHJcbiAgICAgIHN0YXR1c0JhckJUOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckJULFxyXG4gICAgICBzdGF0dXNCYXJURzogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJURyxcclxuICAgICAgc3RhdHVzQmFyUEE6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyUEEsXHJcbiAgICAgIHN0YXR1c0JhclBWOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhclBWLFxyXG4gICAgICBzdGF0dXNCYXJUUDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJUUCxcclxuICAgICAgc3RhdHVzQmFyR1Q6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyR1QsXHJcbiAgICAgIHN0YXR1c0JhckdQOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckdQLFxyXG4gICAgICBzdGF0dXNCYXJHTDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHTCxcclxuICAgICAgc3RhdHVzQmFyR0Y6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyR0ZcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkaXNjb3VudENvbmZpZ05hbWVzOiBMaW5lRGlzY291bnRDZmdOYW1lcyA9IHtcclxuICAgICAgbGluZVByaWNlTGlzdDogdGhpcy5jZmdOYW1lcy5MaW5lUHJpY2VMaXN0LFxyXG4gICAgICBsaW5lRGlzY291bnRBbW91bnQ6IHRoaXMuY2ZnTmFtZXMuTGluZURpc2NvdW50QW1vdW50LFxyXG4gICAgICBsaW5lRGlzY291bnRQZXJjZW50YWdlOiB0aGlzLmNmZ05hbWVzLkxpbmVEaXNjb3VudFBlcmNlbnRhZ2UsXHJcbiAgICAgIGxpbmVEaXNjb3VudFNwZWNpYWw6IHRoaXMuY2ZnTmFtZXMuTGluZURpc2NvdW50U3BlY2lhbCxcclxuICAgICAgbGluZURpc2NvdW50UXVhbnR1bTogdGhpcy5jZmdOYW1lcy5MaW5lRGlzY291bnRRdWFudHVtXHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHB1YmxpYyBzY3JlZW5Db25maWdTZXJ2aWNlOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIG9yZGVyTGluZVNldFNlcnZpY2U6IE9yZGVyTGluZVNldFNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgaW1hZ2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkltYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICBzdXBlcih0cmFuc2FjdGlvbkV2ZW50U2VydmljZSwgaWNvbkNhY2hlU2VydmljZSwgc2NyZWVuQ29uZmlnU2VydmljZSwgaW1hZ2VTZXJ2aWNlLCBkaWN0aW9uYXJ5U2VydmljZSwgdHJhbnNhY3Rpb25TZXJ2aWNlLGNoYW5nZURldGVjdG9yKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDaGVja0JveFZhbHVlQ2hhbmdlZCh2YWx1ZTpib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUub3JkZXJMaW5lU2V0Q29kZSA9IHRoaXMub3JkZXJMaW5lU2V0U2VydmljZS5jdXJyZW50T3JkZXJMaW5lU2V0Q29kZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lLm9yZGVyTGluZVNldENvZGUgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuY2hhbmdlVHJhbnNhY3Rpb25MaW5lT3JkZXJMaW5lU2V0KHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWQsIHRoaXMudHJhbnNhY3Rpb25MaW5lLnV1aWQsIHRoaXMudHJhbnNhY3Rpb25MaW5lLm9yZGVyTGluZVNldENvZGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRGVzY3JpcHRpb25EYmxDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzY3JpcHRpb25EYmxDbGljay5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tb3ZlcnZpZXctbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLW92ZXJ2aWV3LWxpbmUvdHJhbnNhY3Rpb24tb3ZlcnZpZXctbGluZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzFJLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUMxRixPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSxpRkFBaUYsQ0FBQztBQUN0SSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUdyRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUNoSCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQTRGeEUsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLHdCQUF3QjtJQWdENUUsWUFDUyx1QkFBZ0QsRUFDaEQsZ0JBQWtDLEVBQ2xDLG1CQUEwRCxFQUMxRCxtQkFBd0MsRUFDckMsWUFBcUMsRUFDckMsaUJBQW9DLEVBQ3BDLGtCQUFzQyxFQUN0QyxjQUFpQztRQUUzQyxLQUFLLENBQUMsdUJBQXVCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFDLGNBQWMsQ0FBQyxDQUFDO1FBVG5JLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXVDO1FBQzFELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDckMsaUJBQVksR0FBWixZQUFZLENBQXlCO1FBQ3JDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUF2RDdCLGFBQVEsR0FBbUMsdUJBQXVCLENBQUM7UUFNNUUsd0JBQW1CLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFpQm5FLFVBQUssR0FBZ0IsV0FBVyxDQUFDLEdBQUcsQ0FBQztRQUNyQyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIseUJBQW9CLEdBQXNCO1lBQzdDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVc7WUFDdEMsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVztZQUN0QyxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXO1lBQ3RDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVc7WUFDdEMsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVztZQUN0QyxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXO1lBQ3RDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVc7WUFDdEMsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVztZQUN0QyxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXO1NBQ3pDLENBQUE7UUFFTSx3QkFBbUIsR0FBeUI7WUFDL0MsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYTtZQUMxQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQjtZQUNwRCxzQkFBc0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLHNCQUFzQjtZQUM1RCxtQkFBbUIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQjtZQUN0RCxtQkFBbUIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQjtTQUN6RCxDQUFBO0lBYUQsQ0FBQztJQWpETSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBR00sZUFBZSxDQUFDLEtBQWlCO1FBQ3RDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFHTSxnQkFBZ0IsQ0FBQyxLQUFpQjtRQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBdUNNLDBCQUEwQixDQUFDLEtBQWE7UUFDN0MsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUIsQ0FBQztTQUMxRjthQUFNO1lBQ0wsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7U0FDOUM7UUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNySyxDQUFDO0lBRU0scUJBQXFCO1FBQzFCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNsQyxDQUFDOzs7WUFsS0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw4QkFBOEI7Z0JBQ3hDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0ZUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBRXRDOzs7WUFqR08sdUJBQXVCO1lBQ3ZCLGdCQUFnQjtZQUNoQixxQ0FBcUM7WUFDckMsbUJBQW1CO1lBQ25CLHVCQUF1QjtZQUN2QixpQkFBaUI7WUFDakIsa0JBQWtCO1lBYmxCLGlCQUFpQjs7OzJDQTRHdEIsU0FBUyxTQUFDLHFDQUFxQztrQ0FHL0MsTUFBTTt3QkFHTixXQUFXLFNBQUMsb0NBQW9DOzhCQUtoRCxZQUFZLFNBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDOytCQUtwQyxZQUFZLFNBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7U3RvY2tTdGF0dXN9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3JlZmNvZGUvc3RvY2stc3RhdHVzLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUFjdGlvbkJ1dHRvbnNDb21wb25lbnR9IGZyb20gJy4uLy4uL3RyYW5zYWN0aW9uLWxpbmUtYWN0aW9uLWJ1dHRvbnMvdHJhbnNhY3Rpb24tbGluZS1hY3Rpb24tYnV0dG9ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlL3RyYW5zYWN0aW9uLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblR5cGVDYXRlZ29yeX0gZnJvbSAnLi4vLi4vLi4vZW51bS90cmFuc2FjdGlvbi10eXBlLWNhdGVnb3J5LmVudW0nO1xyXG5pbXBvcnQge1N0YXR1c0JhckNmZ05hbWVzfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2Uvc3RhdHVzLWJhci1jZmctbmFtZXMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtMaW5lRGlzY291bnRDZmdOYW1lc30gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlL2xpbmUtZGlzY291bnQtY2ZnLW5hbWVzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7T3JkZXJMaW5lU2V0U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9vcmRlci1saW5lLXNldC1zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkltYWdlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1pbWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXRyYW5zYWN0aW9uLW92ZXJ2aWV3LWxpbmVcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8Y28tdHJhbnNhY3Rpb24tYmFzZS1saW5lXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICBbcHJldmlld109XCJwcmV2aWV3XCJcclxuICAgICAgICAgIFtpc0ZpcnN0XT1cImlzRmlyc3RcIlxyXG4gICAgICAgICAgW2NoZWNrYm94XT1cIm9yZGVyTGluZVNldFNlcnZpY2UuY3VycmVudE9yZGVyTGluZVNldENvZGUgJiYgKCF0cmFuc2FjdGlvbkxpbmUub3JkZXJMaW5lU2V0Q29kZSB8fCB0cmFuc2FjdGlvbkxpbmUub3JkZXJMaW5lU2V0Q29kZSA9PT0gb3JkZXJMaW5lU2V0U2VydmljZS5jdXJyZW50T3JkZXJMaW5lU2V0Q29kZSlcIlxyXG4gICAgICAgICAgW2NoZWNrYm94VmFsdWVdPVwib3JkZXJMaW5lU2V0U2VydmljZS5jdXJyZW50T3JkZXJMaW5lU2V0Q29kZSA9PT0gdHJhbnNhY3Rpb25MaW5lLm9yZGVyTGluZVNldENvZGVcIlxyXG4gICAgICAgICAgKGNoZWNrYm94VmFsdWVDaGFuZ2VkKT1cImhhbmRsZUNoZWNrQm94VmFsdWVDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgb2JzZXJ2ZVZpc2liaWxpdHkgI29ic2VydmVyPXZpc2liaWxpdHlPYnNlcnZlICh2aXNpYmlsaXR5Q2hhbmdlKT1cImhhbmRsZVZpc2liaWxpdHlDaGFuZ2UodHJhbnNhY3Rpb25MaW5lLCAkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidHJhbnNhY3Rpb25MaW5lLmlzQXJ0aWNsZVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj0hcHJldmlldyBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtZXh0ZW5kZWQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbjFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cmFuc2FjdGlvbi1maWVsZC1sYWJlbFwiIFt0ZXh0Q29udGVudF09XCInV0FSRUhPVVNFX0FORF9TVEFUVVMnIHwgbG9jYWxpemVcIiAqbmdJZj1cImlzRmlyc3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtY29tbWlzc2lvbi1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkxpbmVDb21taXNzaW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLWNvbW1pc3Npb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXdhcmVob3VzZS1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkxpbmVXYXJlaG91c2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtd2FyZWhvdXNlLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1zdGF0dXNiYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlN0YXR1c0JhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnTmFtZXNdPVwic3RhdHVzQmFyQ29uZmlnTmFtZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjdGl2ZUNhdGVnb3J5XT1cImNhdGVnb3J5LlNhbGVzT3JkZXJPdmVydmlld1wiPjwvY28tdHJhbnNhY3Rpb24tbGluZS1zdGF0dXNiYXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJhbnNhY3Rpb24tZmllbGQtbGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ0RFTElWRVJZJyB8IGxvY2FsaXplXCIgICpuZ0lmPVwiaXNGaXJzdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1kZWxpdmVyeS1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkxpbmVEZWxpdmVyeU1ldGhvZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS1kZWxpdmVyeS1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtZGVsaXZlcnktZGF0ZS1idXR0b24gY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWRlbGl2ZXJ5LWRhdGUgdHdvLWNvbHVtblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5MaW5lRGVsaXZlcnlEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLWRlbGl2ZXJ5LWRhdGUtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cmFuc2FjdGlvbi1maWVsZC1sYWJlbFwiIFt0ZXh0Q29udGVudF09XCInVE9UQUxTX0FORF9ESVNDT1VOVCcgfCBsb2NhbGl6ZVwiICpuZ0lmPVwiaXNGaXJzdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXZhdC1idXR0b24gKm5nSWY9XCIhcHJldmlld1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5MaW5lVmF0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtdmF0LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXRvdGFsc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXByaWNlIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS10b3RhbHMtcHJpY2UgcHJpY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkxpbmVQcmljZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0xhYmVsXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdEVkaXRNb2RlXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLXByaWNlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWRpc2NvdW50LWJ1dHRvbiAqbmdJZj1cIiFwcmV2aWV3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuTGluZURpc2NvdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ05hbWVzXT1cImRpc2NvdW50Q29uZmlnTmFtZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLWRpc2NvdW50LWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS10b3RhbHMtYW1vdW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWFtb3VudCBjbGFzcz1cImFtb3VudC1udW1iZXItcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkxpbmVBbW91bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLWFtb3VudD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tZWRpdGFibGUtbGFiZWwgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXRvdGFscy10b3RhbCBwcmljZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJ0cmFuc2FjdGlvbkxpbmUuZGlzcGxheU5ldExpbmVUb3RhbCB8IGNvQ3VycmVuY3lcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWRpdE1vZGVsXT1cInRyYW5zYWN0aW9uTGluZS5kaXNwbGF5TmV0TGluZVRvdGFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLWVkaXRhYmxlLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvY28tdHJhbnNhY3Rpb24tYmFzZS1saW5lPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAvL2NoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbk92ZXJ2aWV3TGluZUNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGNhdGVnb3J5OiB0eXBlb2YgVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkgPSBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuXHJcbiAgQFZpZXdDaGlsZChUcmFuc2FjdGlvbkxpbmVBY3Rpb25CdXR0b25zQ29tcG9uZW50KVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbkxpbmVBY3Rpb25CdXR0b25zOiBUcmFuc2FjdGlvbkxpbmVBY3Rpb25CdXR0b25zQ29tcG9uZW50O1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgZGVzY3JpcHRpb25EYmxDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1vdmVydmlldy1saW5lXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcIm1vdXNlb3ZlclwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgcHVibGljIGhhbmRsZU1vdXNlT3ZlcihldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5tb3VzZU92ZXIgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIHB1YmxpYyBoYW5kbGVNb3VzZUxlYXZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLm1vdXNlT3ZlciA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0b2NrOiBTdG9ja1N0YXR1cyA9IFN0b2NrU3RhdHVzLkxvdztcclxuICBwdWJsaWMgbW91c2VPdmVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBzdGF0dXNCYXJDb25maWdOYW1lczogU3RhdHVzQmFyQ2ZnTmFtZXMgPSB7XHJcbiAgICAgIHN0YXR1c0JhckJUOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckJULFxyXG4gICAgICBzdGF0dXNCYXJURzogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJURyxcclxuICAgICAgc3RhdHVzQmFyUEE6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyUEEsXHJcbiAgICAgIHN0YXR1c0JhclBWOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhclBWLFxyXG4gICAgICBzdGF0dXNCYXJUUDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJUUCxcclxuICAgICAgc3RhdHVzQmFyR1Q6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyR1QsXHJcbiAgICAgIHN0YXR1c0JhckdQOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckdQLFxyXG4gICAgICBzdGF0dXNCYXJHTDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHTCxcclxuICAgICAgc3RhdHVzQmFyR0Y6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyR0ZcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkaXNjb3VudENvbmZpZ05hbWVzOiBMaW5lRGlzY291bnRDZmdOYW1lcyA9IHtcclxuICAgICAgbGluZVByaWNlTGlzdDogdGhpcy5jZmdOYW1lcy5MaW5lUHJpY2VMaXN0LFxyXG4gICAgICBsaW5lRGlzY291bnRBbW91bnQ6IHRoaXMuY2ZnTmFtZXMuTGluZURpc2NvdW50QW1vdW50LFxyXG4gICAgICBsaW5lRGlzY291bnRQZXJjZW50YWdlOiB0aGlzLmNmZ05hbWVzLkxpbmVEaXNjb3VudFBlcmNlbnRhZ2UsXHJcbiAgICAgIGxpbmVEaXNjb3VudFNwZWNpYWw6IHRoaXMuY2ZnTmFtZXMuTGluZURpc2NvdW50U3BlY2lhbCxcclxuICAgICAgbGluZURpc2NvdW50UXVhbnR1bTogdGhpcy5jZmdOYW1lcy5MaW5lRGlzY291bnRRdWFudHVtXHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHB1YmxpYyBzY3JlZW5Db25maWdTZXJ2aWNlOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIG9yZGVyTGluZVNldFNlcnZpY2U6IE9yZGVyTGluZVNldFNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgaW1hZ2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkltYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICBzdXBlcih0cmFuc2FjdGlvbkV2ZW50U2VydmljZSwgaWNvbkNhY2hlU2VydmljZSwgc2NyZWVuQ29uZmlnU2VydmljZSwgaW1hZ2VTZXJ2aWNlLCBkaWN0aW9uYXJ5U2VydmljZSwgdHJhbnNhY3Rpb25TZXJ2aWNlLGNoYW5nZURldGVjdG9yKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDaGVja0JveFZhbHVlQ2hhbmdlZCh2YWx1ZTpib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUub3JkZXJMaW5lU2V0Q29kZSA9IHRoaXMub3JkZXJMaW5lU2V0U2VydmljZS5jdXJyZW50T3JkZXJMaW5lU2V0Q29kZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lLm9yZGVyTGluZVNldENvZGUgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuY2hhbmdlVHJhbnNhY3Rpb25MaW5lT3JkZXJMaW5lU2V0KHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWQsIHRoaXMudHJhbnNhY3Rpb25MaW5lLnV1aWQsIHRoaXMudHJhbnNhY3Rpb25MaW5lLm9yZGVyTGluZVNldENvZGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRGVzY3JpcHRpb25EYmxDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzY3JpcHRpb25EYmxDbGljay5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==