@colijnit/transaction 12.1.111 → 12.1.113

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 (70) hide show
  1. package/bundles/colijnit-transaction.umd.js +276 -281
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.d.ts +78 -78
  4. package/colijnit-transaction.metadata.json +1 -1
  5. package/esm2015/colijnit-transaction.js +79 -79
  6. package/esm2015/lib/component/checkout/checkout.component.js +13 -10
  7. package/esm2015/lib/component/core/base/transaction-base.component.js +33 -33
  8. package/esm2015/lib/component/core/core.module.js +15 -15
  9. package/esm2015/lib/component/core/relation/customer-groups.component.js +23 -5
  10. package/esm2015/lib/component/relation/relation-address/relation-address.component.js +23 -3
  11. package/esm2015/lib/component/shared/transaction-article-text/transaction-article-text.component.js +7 -7
  12. package/esm2015/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.component.js +7 -7
  13. package/esm2015/lib/component/transaction-card/transaction-card-invoice/transaction-card-invoice.component.js +3 -3
  14. package/esm2015/lib/component/transaction-card/transaction-card-order-delivery/transaction-card-order-delivery.component.js +3 -3
  15. package/esm2015/lib/component/transaction-card/transaction-card-receive-goods/transaction-card-receive-goods.component.js +3 -3
  16. package/esm2015/lib/component/transaction-date-select/transaction-date-select.component.js +35 -0
  17. package/esm2015/lib/component/transaction-date-select/transaction-date-select.module.js +21 -0
  18. package/esm2015/lib/component/transaction-header-fields/transaction-header-price-kind.component.js +1 -1
  19. package/esm2015/lib/component/transaction-line/transaction-base-line/transaction-base-line.component.js +1 -1
  20. package/esm2015/lib/component/transaction-line/transaction-invoice-line/transaction-invoice-line-base.component.js +4 -4
  21. package/esm2015/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.component.js +6 -6
  22. package/esm2015/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line.component.js +2 -1
  23. package/esm2015/lib/component/transaction-line/transaction-purchase-overview-line/transaction-purchase-overview-line.component.js +3 -2
  24. package/esm2015/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.component.js +3 -3
  25. package/esm2015/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.module.js +2 -3
  26. package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-code.component.js +2 -2
  27. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date-button.component.js +33 -12
  28. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date-button.module.js +4 -2
  29. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date.module.js +4 -2
  30. package/esm2015/lib/component/transaction-line-fields/transaction-line-price/transaction-line-price.component.js +2 -2
  31. package/esm2015/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.component.js +2 -2
  32. package/esm2015/lib/enum/icon.enum.js +2 -1
  33. package/esm2015/lib/model/icon-svg.js +3 -2
  34. package/esm2015/lib/res/dictionary/dictionaries.js +2 -2
  35. package/esm2015/lib/transaction-version.js +3 -3
  36. package/fesm2015/colijnit-transaction.js +186 -193
  37. package/fesm2015/colijnit-transaction.js.map +1 -1
  38. package/lib/component/checkout/style/_layout.scss +2 -0
  39. package/lib/component/checkout/style/_material-definition.scss +1 -0
  40. package/lib/component/core/relation/customer-groups.component.d.ts +9 -4
  41. package/lib/component/relation/relation-address/relation-address.component.d.ts +6 -1
  42. package/lib/component/shared/transaction-article-text/transaction-article-text.component.d.ts +8 -8
  43. package/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.component.d.ts +5 -5
  44. package/lib/component/transaction-card/transaction-card/style/_layout.scss +14 -9
  45. package/lib/component/transaction-card/transaction-card-invoice/transaction-card-invoice.component.d.ts +2 -2
  46. package/lib/component/transaction-card/transaction-card-order-delivery/transaction-card-order-delivery.component.d.ts +2 -2
  47. package/lib/component/transaction-card/transaction-card-receive-goods/transaction-card-receive-goods.component.d.ts +2 -2
  48. package/lib/component/transaction-date-select/style/_layout.scss +22 -0
  49. package/lib/component/transaction-date-select/style/_material-definition.scss +4 -0
  50. package/lib/component/transaction-date-select/style/_theme.scss +12 -0
  51. package/lib/component/transaction-date-select/style/material.scss +4 -0
  52. package/lib/component/transaction-date-select/transaction-date-select.component.d.ts +11 -0
  53. package/lib/component/transaction-date-select/transaction-date-select.module.d.ts +2 -0
  54. package/lib/component/transaction-header/transaction-header-payment/style/_layout.scss +2 -1
  55. package/lib/component/transaction-line/transaction-invoice-line/transaction-invoice-line-base.component.d.ts +3 -3
  56. package/lib/component/transaction-line/transaction-line/style/_layout.scss +25 -12
  57. package/lib/component/transaction-line/transaction-purchase-order-line/style/_layout.scss +6 -6
  58. package/lib/component/transaction-line-action-buttons/style/_layout.scss +1 -0
  59. package/lib/component/transaction-line-action-buttons/style/_material-definition.scss +4 -2
  60. package/lib/component/transaction-line-action-buttons/style/_theme.scss +3 -0
  61. package/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.component.d.ts +1 -0
  62. package/lib/component/transaction-line-fields/transaction-line-delivery-date-button.component.d.ts +18 -6
  63. package/lib/component/transaction-line-purchase-receive-goods/style/_layout.scss +4 -4
  64. package/lib/enum/icon.enum.d.ts +1 -0
  65. package/lib/res/dictionary/dictionaries.d.ts +2 -0
  66. package/package.json +1 -1
  67. package/esm2015/lib/component/core/directive/overlay.directive.js +0 -106
  68. package/esm2015/lib/component/core/directive/overlay.module.js +0 -17
  69. package/lib/component/core/directive/overlay.directive.d.ts +0 -18
  70. package/lib/component/core/directive/overlay.module.d.ts +0 -2
@@ -33,9 +33,6 @@ export class CheckoutComponent {
33
33
  this.relationType = this.service.getRelationKindFromTransactionKind();
34
34
  this.service.createNewRelation();
35
35
  }
36
- // ngOnDestroy(): void {
37
- // this._subscriptions.forEach(subscription => subscription.unsubscribe());
38
- // }
39
36
  handleCreateTransaction(event) {
40
37
  return __awaiter(this, void 0, void 0, function* () {
41
38
  let success = true;
@@ -50,9 +47,12 @@ export class CheckoutComponent {
50
47
  }
51
48
  const response = yield this.service.saveTransaction();
52
49
  if (response && response.isSuccess) {
53
- const id = this.service.currentTransaction.transactionInfo.id;
54
- this.service.resetCurrentTransaction();
55
- this.transactionFinished.emit({ id: id, fromCheckout: this.showCreateTransactionButton });
50
+ const commitResponse = yield this.service.commit();
51
+ if (commitResponse) {
52
+ const id = this.service.currentTransaction.transactionInfo.id;
53
+ this.service.resetCurrentTransaction();
54
+ this.transactionFinished.emit({ id: id, fromCheckout: this.showCreateTransactionButton });
55
+ }
56
56
  }
57
57
  });
58
58
  }
@@ -74,9 +74,12 @@ export class CheckoutComponent {
74
74
  if (valid) {
75
75
  const response = yield this.service.saveTransaction();
76
76
  if (response && response.isSuccess) {
77
- const lockSuccess = yield this.service.tryToLockTransaction(this.service.currentTransaction.transactionInfo.id, this.service.currentTransaction.transactionInfo.version);
78
- if (lockSuccess) {
79
- this.stepDelivery.completed = yield this.handleSaveDelivery();
77
+ const commitResponse = yield this.service.commit();
78
+ if (commitResponse) {
79
+ const lockSuccess = yield this.service.tryToLockTransaction(this.service.currentTransaction.transactionInfo.id, this.service.currentTransaction.transactionInfo.version);
80
+ if (lockSuccess) {
81
+ this.stepDelivery.completed = yield this.handleSaveDelivery();
82
+ }
80
83
  }
81
84
  }
82
85
  }
@@ -186,4 +189,4 @@ CheckoutComponent.propDecorators = {
186
189
  transactionFinished: [{ type: Output }],
187
190
  showClass: [{ type: HostBinding, args: ["class.co-checkout",] }]
188
191
  };
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvY2hlY2tvdXQvY2hlY2tvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFFbkUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sbUVBQW1FLENBQUM7QUFJMUcsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRzNELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQThDMUYsTUFBTSxPQUFPLGlCQUFpQjtJQXVENUIsWUFDUyxPQUEyQixFQUMxQixXQUE4QixFQUM5QixjQUE2QjtRQUY5QixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFoQ2hDLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBTWhDLG9CQUFlLEdBQW9CLGVBQWUsQ0FBQyxVQUFVLENBQUM7UUFHOUQsZ0NBQTJCLEdBQVksS0FBSyxDQUFDO1FBRzdDLHdCQUFtQixHQUFzRCxJQUFJLFlBQVksRUFBdUMsQ0FBQztRQWFqSSx5QkFBb0IsR0FBVyxDQUFDLENBQUM7UUFDakMsd0JBQW1CLEdBQVcsQ0FBQyxDQUFDO0lBUXZDLENB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c0JBbURsQixTQUFTLFNBQUMsU0FBUzsyQkFHbkIsU0FBUyxTQUFDLGNBQWM7MkJBR3hCLFNBQVMsU0FBQyxjQUFjOzJCQUd4QixTQUFTLFNBQUMsY0FBYztzQkFHeEIsU0FBUyxTQUFDLFNBQVM7K0JBR25CLFNBQVMsU0FBQyxrQkFBa0I7K0JBRzVCLFNBQVMsU0FBQyxrQkFBa0I7OEJBRzVCLFNBQVMsU0FBQyxpQkFBaUI7NkJBRzNCLEtBQUs7dUJBR0wsS0FBSzs4QkFHTCxLQUFLOzBDQUdMLEtBQUs7a0NBR0wsTUFBTTt3QkFHTixXQUFXLFNBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25SZXNwb25zZUJhc2V9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1yZXNwb25zZS1iYXNlLmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8tcmVzcG9uc2UuYm8nO1xyXG5pbXBvcnQge0NoZWNrb3V0T3ZlcnZpZXdSZWxhdGlvbkVkaXRDb21wb25lbnR9IGZyb20gJy4vY2hlY2tvdXQtb3ZlcnZpZXctcmVsYXRpb24tZWRpdC9jaGVja291dC1vdmVydmlldy1yZWxhdGlvbi1lZGl0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7Q2hlY2tvdXRPdmVydmlld0RlbGl2ZXJ5RWRpdENvbXBvbmVudH0gZnJvbSAnLi9jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0L2NoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWVkaXQuY29tcG9uZW50JztcclxuaW1wb3J0IHtTdGVwcGVyU3RlcENvbXBvbmVudH0gZnJvbSAnLi4vc3RlcHBlci9jb21wb25lbnQvc3RlcHBlci1zdGVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7UGF5bWVudENvbXBvbmVudH0gZnJvbSAnLi4vcGF5bWVudC9wYXltZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7U3RlcHBlckNvbXBvbmVudH0gZnJvbSAnLi4vc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7Q3VzdG9tZXJGdWxsT2JqZWN0fSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvY3VzdG9tZXItZnVsbC1vYmplY3QuYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtSZWxhdGlvbktpbmR9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9lbnVtL3JlbGF0aW9uLWtpbmQuZW51bSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby1jaGVja291dFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8Y28tc3RlcHBlciAjc3RlcHBlclxyXG4gICAgICAgICAgICAgICAgW2ZpbmlzaEJ1dHRvbkxhYmVsXT1cIidDSEVDS09VVF9GSU5JU0gnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgW3Nob3dDcmVhdGVdPVwic2hvd0NyZWF0ZVRyYW5zYWN0aW9uQnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIChjcmVhdGVDbGlja2VkKT1cImhhbmRsZUNyZWF0ZVRyYW5zYWN0aW9uKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICA8Y28tc3RlcHBlci1zdGVwICNzdGVwUmVsYXRpb24gW2luZGV4XT1cIjFcIiBbbGFiZWxdPVwiJ1lPVVJfREFUQScgfCBsb2NhbGl6ZVwiICh2YWxpZGF0ZVN0ZXApPVwiaGFuZGxlUmVsYXRpb25WYWxpZGF0aW9uKClcIj5cclxuICAgICAgICA8Y28tY2hlY2tvdXQtb3ZlcnZpZXctcmVsYXRpb24tZWRpdCAjY2hlY2tvdXRSZWxhdGlvbiAqbmdJZj1cInN0ZXBSZWxhdGlvbi5zaG93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKHJlbGF0aW9uKV09XCJzZXJ2aWNlLnJlbGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVsYXRpb25LaW5kXT1cInJlbGF0aW9uVHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RlbGl2ZXJ5QWRkcmVzc05hd05yXT1cImRlbGl2ZXJ5QWRkcmVzc05hd05yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW52b2ljZUFkZHJlc3NOYXdOcl09XCJpbnZvaWNlQWRkcmVzc05hd05yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVsaXZlcnlBZGRyZXNzQ2hhbmdlKT1cImhhbmRsZURlbGl2ZXJ5QWRkcmVzc0NoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW52b2ljZUFkZHJlc3NDaGFuZ2UpPVwiaGFuZGxlSW52b2ljZUFkZHJlc3NDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlbGF0aW9uQ2hhbmdlKT1cInNlcnZpY2UucmVsYXRpb24gPSAkZXZlbnRcIlxyXG4gICAgICAgID48L2NvLWNoZWNrb3V0LW92ZXJ2aWV3LXJlbGF0aW9uLWVkaXQ+XHJcbiAgICAgIDwvY28tc3RlcHBlci1zdGVwPlxyXG4gICAgICA8Y28tc3RlcHBlci1zdGVwICNzdGVwRGVsaXZlcnkgW2luZGV4XT1cIjJcIiBbbGFiZWxdPVwiJ0RFTElWRVJZJyB8IGxvY2FsaXplXCIgKHZhbGlkYXRlU3RlcCk9XCJoYW5kbGVEZWxpdmVyeVZhbGlkYXRpb24oKVwiPlxyXG4gICAgICAgIDxjby1jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0ICNjaGVja291dERlbGl2ZXJ5ICpuZ0lmPVwic3RlcERlbGl2ZXJ5LnNob3dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbl09XCJzZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvblwiXHJcbiAgICAgICAgPjwvY28tY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdD5cclxuICAgICAgPC9jby1zdGVwcGVyLXN0ZXA+XHJcbiAgICAgIDxjby1zdGVwcGVyLXN0ZXAgI3N0ZXBPdmVydmlldyBbaW5kZXhdPVwiM1wiIFtsYWJlbF09XCInT1ZFUlZJRVdfQU5EX1BBWU1FTlQnIHwgbG9jYWxpemVcIj5cclxuICAgICAgICA8Y28tY2hlY2tvdXQtb3ZlcnZpZXctcGF5bWVudCAqbmdJZj1cInN0ZXBPdmVydmlldy5zaG93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVsYXRpb25dPVwic2VydmljZS5yZWxhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uXT1cInNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlWW91ckRhdGFDbGljayk9XCJzdGVwcGVyLmdvdG8oMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2VEZWxpdmVyeUNsaWNrKT1cInN0ZXBwZXIuZ290bygxKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBheWVkKT1cImhhbmRsZVRyYW5zYWN0aW9uRmluaXNoZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvY28tY2hlY2tvdXQtb3ZlcnZpZXctcGF5bWVudD5cclxuICAgICAgPC9jby1zdGVwcGVyLXN0ZXA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjby1jaGVja291dC1yaWdodC1wYW5lbFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjby1jaGVja291dC1yaWdodC1wYW5lbC1yZWxhdGlvblwiPlxyXG4gICAgICAgICAgPGNvLWF2YXRhciBbcmVsYXRpb25JZF09XCJzZWxsZXJJZFwiPjwvY28tYXZhdGFyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxjby1zaG9wcGluZy1jYXJ0LXByZXZpZXcgKm5nSWY9XCIhc2hvd0NyZWF0ZVRyYW5zYWN0aW9uQnV0dG9uXCIgW3Nob3dDaGVja291dEJ1dHRvbl09XCJmYWxzZVwiIFt3aXRob3V0Qm9yZGVyXT1cInRydWVcIj48L2NvLXNob3BwaW5nLWNhcnQtcHJldmlldz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2NvLXN0ZXBwZXI+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja291dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZChcInN0ZXBwZXJcIilcclxuICBwdWJsaWMgc3RlcHBlcjogU3RlcHBlckNvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBSZWxhdGlvblwiKVxyXG4gIHB1YmxpYyBzdGVwUmVsYXRpb246IFN0ZXBwZXJTdGVwQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwic3RlcERlbGl2ZXJ5XCIpXHJcbiAgcHVibGljIHN0ZXBEZWxpdmVyeTogU3RlcHBlclN0ZXBDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJzdGVwT3ZlcnZpZXdcIilcclxuICBwdWJsaWMgc3RlcE92ZXJ2aWV3OiBTdGVwcGVyU3RlcENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBQYXlcIilcclxuICBwdWJsaWMgc3RlcFBheTogU3RlcHBlclN0ZXBDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJjaGVja291dFJlbGF0aW9uXCIpXHJcbiAgcHVibGljIGNoZWNrb3V0UmVsYXRpb246IENoZWNrb3V0T3ZlcnZpZXdSZWxhdGlvbkVkaXRDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJjaGVja291dERlbGl2ZXJ5XCIpXHJcbiAgcHVibGljIGNoZWNrb3V0RGVsaXZlcnk6IENoZWNrb3V0T3ZlcnZpZXdEZWxpdmVyeUVkaXRDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJjaGVja291dFBheW1lbnRcIilcclxuICBwdWJsaWMgY2hlY2tvdXRQYXltZW50OiBQYXltZW50Q29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBuZXdUcmFuc2FjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWxsZXJJZDogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uS2luZCA9IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93Q3JlYXRlVHJhbnNhY3Rpb25CdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uRmluaXNoZWQ6IEV2ZW50RW1pdHRlcjx7aWQ6IG51bWJlciwgZnJvbUNoZWNrb3V0OiBib29sZWFufT4gPSBuZXcgRXZlbnRFbWl0dGVyPHtpZDogbnVtYmVyLCBmcm9tQ2hlY2tvdXQ6IGJvb2xlYW59PigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby1jaGVja291dFwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdXNlcklzQXBwbGljYXRpb25Vc2VyKCk6IGJvb2xlYW4ge1xyXG4gICAgLy8gVE9ETzogcmV0dXJuIHRoaXMudXNlclNlcnZpY2UuaXNBcHBsaWNhdGlvblVzZXI7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U7XHJcbiAgcHVibGljIGRlbGl2ZXJ5QWRkcmVzc05hd05yOiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBpbnZvaWNlQWRkcmVzc05hd05yOiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyByZWxhdGlvblR5cGU6IFJlbGF0aW9uS2luZDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGljdGlvbmFyeTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm5ld1RyYW5zYWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuc2VydmljZS5yZXNldEN1cnJlbnRUcmFuc2FjdGlvbigpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXJ2aWNlLnRyYW5zYWN0aW9uS2luZCA9IHRoaXMudHJhbnNhY3Rpb25UeXBlO1xyXG4gICAgdGhpcy5yZWxhdGlvblR5cGUgPSB0aGlzLnNlcnZpY2UuZ2V0UmVsYXRpb25LaW5kRnJvbVRyYW5zYWN0aW9uS2luZCgpO1xyXG4gICAgdGhpcy5zZXJ2aWNlLmNyZWF0ZU5ld1JlbGF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICAvLyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAvLyAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xyXG4gIC8vIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZUNyZWF0ZVRyYW5zYWN0aW9uKGV2ZW50OiBNb3VzZUV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgc3VjY2VzczogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5zdGVwcGVyLmFjdGl2ZVN0ZXAgPT09IDAgJiYgYXdhaXQgdGhpcy5oYW5kbGVSZWxhdGlvblZhbGlkYXRpb24oKSkge1xyXG4gICAgICBzdWNjZXNzID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnNhdmVSZWxhdGlvbigpO1xyXG4gICAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVIZWFkZXJUcmFuc2FjdGlvbkRlZmluaXRpdmUodGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZCwgdHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCByZXNwb25zZTogVHJhbnNhY3Rpb25SZXNwb25zZUJhc2UgPSBhd2FpdCB0aGlzLnNlcnZpY2Uuc2F2ZVRyYW5zYWN0aW9uKCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuaXNTdWNjZXNzKSB7XHJcbiAgICAgIGNvbnN0IGlkOiBudW1iZXIgPSB0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZDtcclxuICAgICAgdGhpcy5zZXJ2aWNlLnJlc2V0Q3VycmVudFRyYW5zYWN0aW9uKCk7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25GaW5pc2hlZC5lbWl0KHtpZDogaWQsIGZyb21DaGVja291dDogdGhpcy5zaG93Q3JlYXRlVHJhbnNhY3Rpb25CdXR0b259KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVSZWxhdGlvblZhbGlkYXRpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAodGhpcy5jaGVja291dFJlbGF0aW9uICYmIHRoaXMuc3RlcFJlbGF0aW9uKSB7XHJcbiAgICAgIGNvbnN0IHZhbGlkID0gdGhpcy5jaGVja291dFJlbGF0aW9uLnN1Ym1pdCgpO1xyXG4gICAgICBpZiAodmFsaWQpIHtcclxuICAgICAgICB0aGlzLnN0ZXBSZWxhdGlvbi5jb21wbGV0ZWQgPSBhd2FpdCB0aGlzLnNhdmVSZWxhdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB2YWxpZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVEZWxpdmVyeVZhbGlkYXRpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAodGhpcy5jaGVja291dERlbGl2ZXJ5ICYmIHRoaXMuc3RlcERlbGl2ZXJ5KSB7XHJcbiAgICAgIGNvbnN0IHZhbGlkID0gdGhpcy5jaGVja291dERlbGl2ZXJ5LnN1Ym1pdCgpO1xyXG4gICAgICBpZiAodmFsaWQpIHtcclxuICAgICAgICBjb25zdCByZXNwb25zZTogVHJhbnNhY3Rpb25SZXNwb25zZUJhc2UgPSBhd2FpdCB0aGlzLnNlcnZpY2Uuc2F2ZVRyYW5zYWN0aW9uKCk7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmlzU3VjY2Vzcykge1xyXG4gICAgICAgICAgY29uc3QgbG9ja1N1Y2Nlc3M6IGJvb2xlYW4gPVxyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnNlcnZpY2UudHJ5VG9Mb2NrVHJhbnNhY3Rpb24odGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaWQsIHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnZlcnNpb24pO1xyXG4gICAgICAgICAgaWYgKGxvY2tTdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RlcERlbGl2ZXJ5LmNvbXBsZXRlZCA9IGF3YWl0IHRoaXMuaGFuZGxlU2F2ZURlbGl2ZXJ5KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB2YWxpZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzYXZlUmVsYXRpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBjb25zdCBzdWNjZXNzOiBib29sZWFuID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnNhdmVSZWxhdGlvbigpO1xyXG4gICAgaWYgKHN1Y2Nlc3MpIHtcclxuICAgICAgaWYgKHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIgPT09IG51bGwgfHwgdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOciA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIgPT09IDAgJiYgdGhpcy5zZXJ2aWNlLnJlbGF0aW9uLmFkZHJlc3NlcyAmJiB0aGlzLnNlcnZpY2UucmVsYXRpb24uYWRkcmVzc2VzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIgPSB0aGlzLnNlcnZpY2UucmVsYXRpb24uYWRkcmVzc2VzWzBdLm5hd05yO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbkFkZHJlc3MgIT09IHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIpIHtcclxuICAgICAgICBhd2FpdCB0aGlzLnNlcnZpY2UudXBkYXRlSGVhZGVyRGVsaXZlcnlBZGRyZXNzKHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWQsIHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGludm9pY2VBZGRyZXNzTmF3TnI6IG51bWJlciA9IHRoaXMuaW52b2ljZUFkZHJlc3NOYXdOciA/IHRoaXMuaW52b2ljZUFkZHJlc3NOYXdOciA6IHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnI7XHJcbiAgICAgIGlmICh0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pbnZvaWNlQWRkcmVzcyAhPT0gaW52b2ljZUFkZHJlc3NOYXdOcikge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVIZWFkZXJJbnZvaWNlQWRkcmVzcyh0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby51dWlkLCBpbnZvaWNlQWRkcmVzc05hd05yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN1Y2Nlc3M7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlU2F2ZURlbGl2ZXJ5KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRGVsaXZlcnlBZGRyZXNzQ2hhbmdlKG5hd05yOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIgPSBuYXdOcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVJbnZvaWNlQWRkcmVzc0NoYW5nZShuYXdOcjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmludm9pY2VBZGRyZXNzTmF3TnIgPSBuYXdOcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVUcmFuc2FjdGlvbkZpbmlzaGVkKGlkOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UoKTtcclxuICAgIHRoaXMuc2VydmljZS5yZWxhdGlvbiA9IG5ldyBDdXN0b21lckZ1bGxPYmplY3QoKTtcclxuICAgIHRoaXMuc2VydmljZS5hcnRpY2xlQW1vdW50ID0gMDtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25GaW5pc2hlZC5lbWl0KHtpZDogaWQsIGZyb21DaGVja291dDogdGhpcy5zaG93Q3JlYXRlVHJhbnNhY3Rpb25CdXR0b259KTtcclxuICB9XHJcbn1cclxuIl19
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvY2hlY2tvdXQvY2hlY2tvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFFbkUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sbUVBQW1FLENBQUM7QUFJMUcsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRzNELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQzdGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQThDMUYsTUFBTSxPQUFPLGlCQUFpQjtJQXVENUIsWUFDUyxPQUEyQixFQUMxQixXQUE4QixFQUM5QixjQUE2QjtRQUY5QixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFoQ2hDLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBTWhDLG9CQUFlLEdBQW9CLGVBQWUsQ0FBQyxVQUFVLENBQUM7UUFHOUQsZ0NBQTJCLEdBQVksS0FBSyxDQUFDO1FBRzdDLHdCQUFtQixHQUFzRCxJQUFJLFlBQVksRUFBdUMsQ0FBQztRQWFqSSx5QkFBb0IsR0FBVyxDQUFDLENBQUM7UUFDakMsd0JBQW1CLEdBQVcsQ0FBQyxDQUFDO0lBUXZDLENB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QUFhO2dCQUN2QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0NUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUF4RE8sa0JBQWtCO1lBQ2xCLGlCQUFpQjtZQU1qQixhQUFhOzs7c0JBbURsQixTQUFTLFNBQUMsU0FBUzsyQkFHbkIsU0FBUyxTQUFDLGNBQWM7MkJBR3hCLFNBQVMsU0FBQyxjQUFjOzJCQUd4QixTQUFTLFNBQUMsY0FBYztzQkFHeEIsU0FBUyxTQUFDLFNBQVM7K0JBR25CLFNBQVMsU0FBQyxrQkFBa0I7K0JBRzVCLFNBQVMsU0FBQyxrQkFBa0I7OEJBRzVCLFNBQVMsU0FBQyxpQkFBaUI7NkJBRzNCLEtBQUs7dUJBR0wsS0FBSzs4QkFHTCxLQUFLOzBDQUdMLEtBQUs7a0NBR0wsTUFBTTt3QkFHTixXQUFXLFNBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25SZXNwb25zZUJhc2V9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1yZXNwb25zZS1iYXNlLmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8tcmVzcG9uc2UuYm8nO1xyXG5pbXBvcnQge0NoZWNrb3V0T3ZlcnZpZXdSZWxhdGlvbkVkaXRDb21wb25lbnR9IGZyb20gJy4vY2hlY2tvdXQtb3ZlcnZpZXctcmVsYXRpb24tZWRpdC9jaGVja291dC1vdmVydmlldy1yZWxhdGlvbi1lZGl0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7Q2hlY2tvdXRPdmVydmlld0RlbGl2ZXJ5RWRpdENvbXBvbmVudH0gZnJvbSAnLi9jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0L2NoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWVkaXQuY29tcG9uZW50JztcclxuaW1wb3J0IHtTdGVwcGVyU3RlcENvbXBvbmVudH0gZnJvbSAnLi4vc3RlcHBlci9jb21wb25lbnQvc3RlcHBlci1zdGVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7UGF5bWVudENvbXBvbmVudH0gZnJvbSAnLi4vcGF5bWVudC9wYXltZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7U3RlcHBlckNvbXBvbmVudH0gZnJvbSAnLi4vc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7Q3VzdG9tZXJGdWxsT2JqZWN0fSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvY3VzdG9tZXItZnVsbC1vYmplY3QuYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtSZWxhdGlvbktpbmR9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9lbnVtL3JlbGF0aW9uLWtpbmQuZW51bSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby1jaGVja291dFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8Y28tc3RlcHBlciAjc3RlcHBlclxyXG4gICAgICAgICAgICAgICAgW2ZpbmlzaEJ1dHRvbkxhYmVsXT1cIidDSEVDS09VVF9GSU5JU0gnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgW3Nob3dDcmVhdGVdPVwic2hvd0NyZWF0ZVRyYW5zYWN0aW9uQnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIChjcmVhdGVDbGlja2VkKT1cImhhbmRsZUNyZWF0ZVRyYW5zYWN0aW9uKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICA8Y28tc3RlcHBlci1zdGVwICNzdGVwUmVsYXRpb24gW2luZGV4XT1cIjFcIiBbbGFiZWxdPVwiJ1lPVVJfREFUQScgfCBsb2NhbGl6ZVwiICh2YWxpZGF0ZVN0ZXApPVwiaGFuZGxlUmVsYXRpb25WYWxpZGF0aW9uKClcIj5cclxuICAgICAgICA8Y28tY2hlY2tvdXQtb3ZlcnZpZXctcmVsYXRpb24tZWRpdCAjY2hlY2tvdXRSZWxhdGlvbiAqbmdJZj1cInN0ZXBSZWxhdGlvbi5zaG93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKHJlbGF0aW9uKV09XCJzZXJ2aWNlLnJlbGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVsYXRpb25LaW5kXT1cInJlbGF0aW9uVHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RlbGl2ZXJ5QWRkcmVzc05hd05yXT1cImRlbGl2ZXJ5QWRkcmVzc05hd05yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW52b2ljZUFkZHJlc3NOYXdOcl09XCJpbnZvaWNlQWRkcmVzc05hd05yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVsaXZlcnlBZGRyZXNzQ2hhbmdlKT1cImhhbmRsZURlbGl2ZXJ5QWRkcmVzc0NoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW52b2ljZUFkZHJlc3NDaGFuZ2UpPVwiaGFuZGxlSW52b2ljZUFkZHJlc3NDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlbGF0aW9uQ2hhbmdlKT1cInNlcnZpY2UucmVsYXRpb24gPSAkZXZlbnRcIlxyXG4gICAgICAgID48L2NvLWNoZWNrb3V0LW92ZXJ2aWV3LXJlbGF0aW9uLWVkaXQ+XHJcbiAgICAgIDwvY28tc3RlcHBlci1zdGVwPlxyXG4gICAgICA8Y28tc3RlcHBlci1zdGVwICNzdGVwRGVsaXZlcnkgW2luZGV4XT1cIjJcIiBbbGFiZWxdPVwiJ0RFTElWRVJZJyB8IGxvY2FsaXplXCIgKHZhbGlkYXRlU3RlcCk9XCJoYW5kbGVEZWxpdmVyeVZhbGlkYXRpb24oKVwiPlxyXG4gICAgICAgIDxjby1jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0ICNjaGVja291dERlbGl2ZXJ5ICpuZ0lmPVwic3RlcERlbGl2ZXJ5LnNob3dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbl09XCJzZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvblwiXHJcbiAgICAgICAgPjwvY28tY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdD5cclxuICAgICAgPC9jby1zdGVwcGVyLXN0ZXA+XHJcbiAgICAgIDxjby1zdGVwcGVyLXN0ZXAgI3N0ZXBPdmVydmlldyBbaW5kZXhdPVwiM1wiIFtsYWJlbF09XCInT1ZFUlZJRVdfQU5EX1BBWU1FTlQnIHwgbG9jYWxpemVcIj5cclxuICAgICAgICA8Y28tY2hlY2tvdXQtb3ZlcnZpZXctcGF5bWVudCAqbmdJZj1cInN0ZXBPdmVydmlldy5zaG93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVsYXRpb25dPVwic2VydmljZS5yZWxhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uXT1cInNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlWW91ckRhdGFDbGljayk9XCJzdGVwcGVyLmdvdG8oMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2VEZWxpdmVyeUNsaWNrKT1cInN0ZXBwZXIuZ290bygxKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBheWVkKT1cImhhbmRsZVRyYW5zYWN0aW9uRmluaXNoZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvY28tY2hlY2tvdXQtb3ZlcnZpZXctcGF5bWVudD5cclxuICAgICAgPC9jby1zdGVwcGVyLXN0ZXA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjby1jaGVja291dC1yaWdodC1wYW5lbFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjby1jaGVja291dC1yaWdodC1wYW5lbC1yZWxhdGlvblwiPlxyXG4gICAgICAgICAgPGNvLWF2YXRhciBbcmVsYXRpb25JZF09XCJzZWxsZXJJZFwiPjwvY28tYXZhdGFyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxjby1zaG9wcGluZy1jYXJ0LXByZXZpZXcgKm5nSWY9XCIhc2hvd0NyZWF0ZVRyYW5zYWN0aW9uQnV0dG9uXCIgW3Nob3dDaGVja291dEJ1dHRvbl09XCJmYWxzZVwiIFt3aXRob3V0Qm9yZGVyXT1cInRydWVcIj48L2NvLXNob3BwaW5nLWNhcnQtcHJldmlldz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2NvLXN0ZXBwZXI+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja291dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZChcInN0ZXBwZXJcIilcclxuICBwdWJsaWMgc3RlcHBlcjogU3RlcHBlckNvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBSZWxhdGlvblwiKVxyXG4gIHB1YmxpYyBzdGVwUmVsYXRpb246IFN0ZXBwZXJTdGVwQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwic3RlcERlbGl2ZXJ5XCIpXHJcbiAgcHVibGljIHN0ZXBEZWxpdmVyeTogU3RlcHBlclN0ZXBDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJzdGVwT3ZlcnZpZXdcIilcclxuICBwdWJsaWMgc3RlcE92ZXJ2aWV3OiBTdGVwcGVyU3RlcENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBQYXlcIilcclxuICBwdWJsaWMgc3RlcFBheTogU3RlcHBlclN0ZXBDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJjaGVja291dFJlbGF0aW9uXCIpXHJcbiAgcHVibGljIGNoZWNrb3V0UmVsYXRpb246IENoZWNrb3V0T3ZlcnZpZXdSZWxhdGlvbkVkaXRDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJjaGVja291dERlbGl2ZXJ5XCIpXHJcbiAgcHVibGljIGNoZWNrb3V0RGVsaXZlcnk6IENoZWNrb3V0T3ZlcnZpZXdEZWxpdmVyeUVkaXRDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJjaGVja291dFBheW1lbnRcIilcclxuICBwdWJsaWMgY2hlY2tvdXRQYXltZW50OiBQYXltZW50Q29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBuZXdUcmFuc2FjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWxsZXJJZDogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uS2luZCA9IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93Q3JlYXRlVHJhbnNhY3Rpb25CdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uRmluaXNoZWQ6IEV2ZW50RW1pdHRlcjx7aWQ6IG51bWJlciwgZnJvbUNoZWNrb3V0OiBib29sZWFufT4gPSBuZXcgRXZlbnRFbWl0dGVyPHtpZDogbnVtYmVyLCBmcm9tQ2hlY2tvdXQ6IGJvb2xlYW59PigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby1jaGVja291dFwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdXNlcklzQXBwbGljYXRpb25Vc2VyKCk6IGJvb2xlYW4ge1xyXG4gICAgLy8gVE9ETzogcmV0dXJuIHRoaXMudXNlclNlcnZpY2UuaXNBcHBsaWNhdGlvblVzZXI7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U7XHJcbiAgcHVibGljIGRlbGl2ZXJ5QWRkcmVzc05hd05yOiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBpbnZvaWNlQWRkcmVzc05hd05yOiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyByZWxhdGlvblR5cGU6IFJlbGF0aW9uS2luZDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGljdGlvbmFyeTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm5ld1RyYW5zYWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuc2VydmljZS5yZXNldEN1cnJlbnRUcmFuc2FjdGlvbigpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXJ2aWNlLnRyYW5zYWN0aW9uS2luZCA9IHRoaXMudHJhbnNhY3Rpb25UeXBlO1xyXG4gICAgdGhpcy5yZWxhdGlvblR5cGUgPSB0aGlzLnNlcnZpY2UuZ2V0UmVsYXRpb25LaW5kRnJvbVRyYW5zYWN0aW9uS2luZCgpO1xyXG4gICAgdGhpcy5zZXJ2aWNlLmNyZWF0ZU5ld1JlbGF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlQ3JlYXRlVHJhbnNhY3Rpb24oZXZlbnQ6IE1vdXNlRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGxldCBzdWNjZXNzOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLnN0ZXBwZXIuYWN0aXZlU3RlcCA9PT0gMCAmJiBhd2FpdCB0aGlzLmhhbmRsZVJlbGF0aW9uVmFsaWRhdGlvbigpKSB7XHJcbiAgICAgIHN1Y2Nlc3MgPSBhd2FpdCB0aGlzLnNlcnZpY2Uuc2F2ZVJlbGF0aW9uKCk7XHJcbiAgICAgIGlmIChzdWNjZXNzKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnVwZGF0ZUhlYWRlclRyYW5zYWN0aW9uRGVmaW5pdGl2ZSh0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby51dWlkLCB0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKCFzdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHJlc3BvbnNlOiBUcmFuc2FjdGlvblJlc3BvbnNlQmFzZSA9IGF3YWl0IHRoaXMuc2VydmljZS5zYXZlVHJhbnNhY3Rpb24oKTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5pc1N1Y2Nlc3MpIHtcclxuICAgICAgY29uc3QgY29tbWl0UmVzcG9uc2U6IGJvb2xlYW4gPSBhd2FpdCB0aGlzLnNlcnZpY2UuY29tbWl0KCk7XHJcbiAgICAgIGlmIChjb21taXRSZXNwb25zZSkge1xyXG4gICAgICAgIGNvbnN0IGlkOiBudW1iZXIgPSB0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZDtcclxuICAgICAgICB0aGlzLnNlcnZpY2UucmVzZXRDdXJyZW50VHJhbnNhY3Rpb24oKTtcclxuICAgICAgICB0aGlzLnRyYW5zYWN0aW9uRmluaXNoZWQuZW1pdCh7aWQ6IGlkLCBmcm9tQ2hlY2tvdXQ6IHRoaXMuc2hvd0NyZWF0ZVRyYW5zYWN0aW9uQnV0dG9ufSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVSZWxhdGlvblZhbGlkYXRpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAodGhpcy5jaGVja291dFJlbGF0aW9uICYmIHRoaXMuc3RlcFJlbGF0aW9uKSB7XHJcbiAgICAgIGNvbnN0IHZhbGlkID0gdGhpcy5jaGVja291dFJlbGF0aW9uLnN1Ym1pdCgpO1xyXG4gICAgICBpZiAodmFsaWQpIHtcclxuICAgICAgICB0aGlzLnN0ZXBSZWxhdGlvbi5jb21wbGV0ZWQgPSBhd2FpdCB0aGlzLnNhdmVSZWxhdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB2YWxpZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVEZWxpdmVyeVZhbGlkYXRpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAodGhpcy5jaGVja291dERlbGl2ZXJ5ICYmIHRoaXMuc3RlcERlbGl2ZXJ5KSB7XHJcbiAgICAgIGNvbnN0IHZhbGlkID0gdGhpcy5jaGVja291dERlbGl2ZXJ5LnN1Ym1pdCgpO1xyXG4gICAgICBpZiAodmFsaWQpIHtcclxuICAgICAgICBjb25zdCByZXNwb25zZTogVHJhbnNhY3Rpb25SZXNwb25zZUJhc2UgPSBhd2FpdCB0aGlzLnNlcnZpY2Uuc2F2ZVRyYW5zYWN0aW9uKCk7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmlzU3VjY2Vzcykge1xyXG4gICAgICAgICAgY29uc3QgY29tbWl0UmVzcG9uc2U6IGJvb2xlYW4gPSBhd2FpdCB0aGlzLnNlcnZpY2UuY29tbWl0KCk7XHJcbiAgICAgICAgICBpZiAoY29tbWl0UmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgY29uc3QgbG9ja1N1Y2Nlc3M6IGJvb2xlYW4gPVxyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnRyeVRvTG9ja1RyYW5zYWN0aW9uKHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkLCB0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby52ZXJzaW9uKTtcclxuICAgICAgICAgICAgaWYgKGxvY2tTdWNjZXNzKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zdGVwRGVsaXZlcnkuY29tcGxldGVkID0gYXdhaXQgdGhpcy5oYW5kbGVTYXZlRGVsaXZlcnkoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdmFsaWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2F2ZVJlbGF0aW9uKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgY29uc3Qgc3VjY2VzczogYm9vbGVhbiA9IGF3YWl0IHRoaXMuc2VydmljZS5zYXZlUmVsYXRpb24oKTtcclxuICAgIGlmIChzdWNjZXNzKSB7XHJcbiAgICAgIGlmICh0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yID09PSBudWxsIHx8IHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIgPT09IHVuZGVmaW5lZCB8fCB0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yID09PSAwICYmIHRoaXMuc2VydmljZS5yZWxhdGlvbi5hZGRyZXNzZXMgJiYgdGhpcy5zZXJ2aWNlLnJlbGF0aW9uLmFkZHJlc3Nlcy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICB0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yID0gdGhpcy5zZXJ2aWNlLnJlbGF0aW9uLmFkZHJlc3Nlc1swXS5uYXdOcjtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25BZGRyZXNzICE9PSB0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnVwZGF0ZUhlYWRlckRlbGl2ZXJ5QWRkcmVzcyh0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby51dWlkLCB0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBpbnZvaWNlQWRkcmVzc05hd05yOiBudW1iZXIgPSB0aGlzLmludm9pY2VBZGRyZXNzTmF3TnIgPyB0aGlzLmludm9pY2VBZGRyZXNzTmF3TnIgOiB0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yO1xyXG4gICAgICBpZiAodGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaW52b2ljZUFkZHJlc3MgIT09IGludm9pY2VBZGRyZXNzTmF3TnIpIHtcclxuICAgICAgICBhd2FpdCB0aGlzLnNlcnZpY2UudXBkYXRlSGVhZGVySW52b2ljZUFkZHJlc3ModGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZCwgaW52b2ljZUFkZHJlc3NOYXdOcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBzdWNjZXNzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZVNhdmVEZWxpdmVyeSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZURlbGl2ZXJ5QWRkcmVzc0NoYW5nZShuYXdOcjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yID0gbmF3TnI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlSW52b2ljZUFkZHJlc3NDaGFuZ2UobmF3TnI6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5pbnZvaWNlQWRkcmVzc05hd05yID0gbmF3TnI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlVHJhbnNhY3Rpb25GaW5pc2hlZChpZDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKCk7XHJcbiAgICB0aGlzLnNlcnZpY2UucmVsYXRpb24gPSBuZXcgQ3VzdG9tZXJGdWxsT2JqZWN0KCk7XHJcbiAgICB0aGlzLnNlcnZpY2UuYXJ0aWNsZUFtb3VudCA9IDA7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uRmluaXNoZWQuZW1pdCh7aWQ6IGlkLCBmcm9tQ2hlY2tvdXQ6IHRoaXMuc2hvd0NyZWF0ZVRyYW5zYWN0aW9uQnV0dG9ufSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -100,32 +100,32 @@ export class TransactionBaseComponent {
100
100
  this.isText = this._transactionLine.isText;
101
101
  this.isArticle = this._transactionLine.isArticle;
102
102
  this.lineHasLogisticalState = this._transactionLine.articleLineStatus &&
103
- (this._transactionLine.articleLineStatus.quantityDelivered !== 0 ||
104
- this._transactionLine.articleLineStatus.quantityInvoiced !== 0 ||
105
- this._transactionLine.articleLineStatus.quantityPicked !== 0 ||
106
- this._transactionLine.articleLineStatus.quantityToBePicked !== 0 ||
107
- this._transactionLine.articleLineStatus.quantityAllocated < 0);
108
- this.lineIsOrdered = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.quantityOrdered !== 0;
109
- this.lineIsDelivered = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.quantityDelivered !== 0;
110
- this.lineIsInvoiced = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.quantityInvoiced !== 0;
111
- this.lineIsReceived = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.quantityReceived !== 0;
112
- this.lineQuantityToInvoice = this._transactionLine.articleLineStatus ? this._transactionLine.articleLineStatus.quantityToInvoice : 0;
113
- this.lineQuantityInvoiced = this._transactionLine.articleLineStatus ? this._transactionLine.articleLineStatus.quantityInvoiced : 0;
114
- this.lineQuantityToReceive = this._transactionLine.articleLineStatus ? this._transactionLine.articleLineStatus.quantityToReceive : 0;
115
- this.lineQuantityReceived = this._transactionLine.articleLineStatus ? this._transactionLine.articleLineStatus.quantityReceived : 0;
116
- this.lineQuantityToDeliver = this._transactionLine.articleLineStatus ? this._transactionLine.articleLineStatus.quantityToDeliver : 0;
117
- this.lineQuantityDelivered = this._transactionLine.articleLineStatus ? this._transactionLine.articleLineStatus.quantityDelivered : 0;
118
- this.lineQuantityToAllocate = this._transactionLine.articleLineStatus ? this._transactionLine.articleLineStatus.quantityToAllocate : 0;
119
- this.lineQuantityAllocated = this._transactionLine.articleLineStatus ? this._transactionLine.articleLineStatus.quantityAllocated : 0;
120
- this.lineQuantityOrdered = this._transactionLine.articleLineStatus ? this._transactionLine.articleLineStatus.quantityOrdered : 0;
121
- this.lineQuantityPlanningRequested = this._transactionLine.articleLineStatus ? this._transactionLine.articleLineStatus.quantityPlanningRequested : 0;
122
- this.lineQuantityPlanningPreferredDateEntered = this._transactionLine.articleLineStatus ? this._transactionLine.articleLineStatus.quantityPlanningPreferredDateEntered : 0;
123
- this.lineQuantityToBePicked = this._transactionLine.articleLineStatus ? this._transactionLine.articleLineStatus.quantityToBePicked : 0;
124
- this.lineQuantityPicked = this._transactionLine.articleLineStatus ? this._transactionLine.articleLineStatus.quantityPicked : 0;
125
- this.lineQuantityPlanningFinal = this._transactionLine.articleLineStatus ? this._transactionLine.articleLineStatus.quantityPlanningFinal : 0;
126
- this.lineQuantityPurchaseConfirmed = this._transactionLine.articleLineStatus ? this._transactionLine.articleLineStatus.quantityPurchaseConfirmed : 0;
127
- this.lineQuantityTransportNotification = this._transactionLine.articleLineStatus ? this._transactionLine.articleLineStatus.quantityTransportNotification : 0;
128
- this.lineQuantityInvoiceControl = this._transactionLine.articleLineStatus ? this._transactionLine.articleLineStatus.quantityInvoiceControl : 0;
103
+ ((this._transactionLine.articleLineStatus.hasOwnProperty('quantityDelivered') && this._transactionLine.articleLineStatus.quantityDelivered !== 0) ||
104
+ (this._transactionLine.articleLineStatus.hasOwnProperty('quantityInvoiced') && this._transactionLine.articleLineStatus.quantityInvoiced !== 0) ||
105
+ (this._transactionLine.articleLineStatus.hasOwnProperty('quantityPicked') && this._transactionLine.articleLineStatus.quantityPicked !== 0) ||
106
+ (this._transactionLine.articleLineStatus.hasOwnProperty('quantityToBePicked') && this._transactionLine.articleLineStatus.quantityToBePicked !== 0) ||
107
+ (this._transactionLine.articleLineStatus.hasOwnProperty('quantityAllocated') && this._transactionLine.articleLineStatus.quantityAllocated < 0));
108
+ this.lineIsOrdered = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.hasOwnProperty('quantityOrdered') && this._transactionLine.articleLineStatus.quantityOrdered !== 0;
109
+ this.lineIsDelivered = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.hasOwnProperty('quantityDelivered') && this._transactionLine.articleLineStatus.quantityDelivered !== 0;
110
+ this.lineIsInvoiced = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.hasOwnProperty('quantityInvoiced') && this._transactionLine.articleLineStatus.quantityInvoiced !== 0;
111
+ this.lineIsReceived = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.hasOwnProperty('quantityReceived') && this._transactionLine.articleLineStatus.quantityReceived !== 0;
112
+ this.lineQuantityToInvoice = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.hasOwnProperty('quantityToInvoice') ? this._transactionLine.articleLineStatus.quantityToInvoice : 0;
113
+ this.lineQuantityInvoiced = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.hasOwnProperty('quantityInvoiced') ? this._transactionLine.articleLineStatus.quantityInvoiced : 0;
114
+ this.lineQuantityToReceive = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.hasOwnProperty('quantityToReceive') ? this._transactionLine.articleLineStatus.quantityToReceive : 0;
115
+ this.lineQuantityReceived = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.hasOwnProperty('quantityReceived') ? this._transactionLine.articleLineStatus.quantityReceived : 0;
116
+ this.lineQuantityToDeliver = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.hasOwnProperty('quantityToDeliver') ? this._transactionLine.articleLineStatus.quantityToDeliver : 0;
117
+ this.lineQuantityDelivered = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.hasOwnProperty('quantityDelivered') ? this._transactionLine.articleLineStatus.quantityDelivered : 0;
118
+ this.lineQuantityToAllocate = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.hasOwnProperty('quantityToAllocate') ? this._transactionLine.articleLineStatus.quantityToAllocate : 0;
119
+ this.lineQuantityAllocated = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.hasOwnProperty('quantityAllocated') ? this._transactionLine.articleLineStatus.quantityAllocated : 0;
120
+ this.lineQuantityOrdered = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.hasOwnProperty('quantityOrdered') ? this._transactionLine.articleLineStatus.quantityOrdered : 0;
121
+ this.lineQuantityPlanningRequested = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.hasOwnProperty('quantityPlanningRequested') ? this._transactionLine.articleLineStatus.quantityPlanningRequested : 0;
122
+ this.lineQuantityPlanningPreferredDateEntered = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.hasOwnProperty('quantityPlanningPreferredDateEntered') ? this._transactionLine.articleLineStatus.quantityPlanningPreferredDateEntered : 0;
123
+ this.lineQuantityToBePicked = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.hasOwnProperty('quantityToBePicked') ? this._transactionLine.articleLineStatus.quantityToBePicked : 0;
124
+ this.lineQuantityPicked = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.hasOwnProperty('quantityPicked') ? this._transactionLine.articleLineStatus.quantityPicked : 0;
125
+ this.lineQuantityPlanningFinal = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.hasOwnProperty('quantityPlanningFinal') ? this._transactionLine.articleLineStatus.quantityPlanningFinal : 0;
126
+ this.lineQuantityPurchaseConfirmed = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.hasOwnProperty('quantityPurchaseConfirmed') ? this._transactionLine.articleLineStatus.quantityPurchaseConfirmed : 0;
127
+ this.lineQuantityTransportNotification = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.hasOwnProperty('quantityTransportNotification') ? this._transactionLine.articleLineStatus.quantityTransportNotification : 0;
128
+ this.lineQuantityInvoiceControl = this._transactionLine.articleLineStatus && this._transactionLine.articleLineStatus.hasOwnProperty('quantityInvoiceControl') ? this._transactionLine.articleLineStatus.quantityInvoiceControl : 0;
129
129
  this.transactionLineSet();
130
130
  }
131
131
  }
@@ -236,11 +236,11 @@ export class TransactionBaseComponent {
236
236
  }
237
237
  }
238
238
  prepareTooltipMessage() {
239
- this.tooltipMessage = "";
239
+ this.tooltipMessage = '';
240
240
  let tooltips = [];
241
241
  if (this.headerTooltipMessages.length > 0 || this.lineTooltipMessages.length > 0) {
242
242
  tooltips = this.headerTooltipMessages.concat(this.lineTooltipMessages);
243
- this.tooltipMessage = `${this.dictionaryService.get("FIELD_IS_READONLY_BECAUSE")}</br></br>${tooltips.join('</br>')}`;
243
+ this.tooltipMessage = `${this.dictionaryService.get('FIELD_IS_READONLY_BECAUSE')}</br></br>${tooltips.join('</br>')}`;
244
244
  this.detectChanges();
245
245
  }
246
246
  }
@@ -285,10 +285,10 @@ TransactionBaseComponent.propDecorators = {
285
285
  transactionTotal: [{ type: Input }],
286
286
  relation: [{ type: Input }],
287
287
  expanded: [{ type: Input }],
288
- preview: [{ type: HostBinding, args: ["class.preview",] }, { type: Input }],
289
- selected: [{ type: HostBinding, args: ["class.is-selected",] }, { type: Input }],
288
+ preview: [{ type: HostBinding, args: ['class.preview',] }, { type: Input }],
289
+ selected: [{ type: HostBinding, args: ['class.is-selected',] }, { type: Input }],
290
290
  readonly: [{ type: HostBinding, args: ['class.read-only',] }, { type: Input }],
291
- isText: [{ type: HostBinding, args: ["class.is-text",] }],
292
- isArticle: [{ type: HostBinding, args: ["class.is-article",] }]
291
+ isText: [{ type: HostBinding, args: ['class.is-text',] }],
292
+ isArticle: [{ type: HostBinding, args: ['class.is-article',] }]
293
293
  };
294
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFFeEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUMxRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUNsRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUUzRixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFFaEYsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sdURBQXVELENBQUM7QUFDaEcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDMUYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFD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LENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JJLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25JLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JJLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25JLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JJLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JJLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZJLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JJLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqSSxJQUFJLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNySixJQUFJLENBQUMsd0NBQXdDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzSyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2SSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0gsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFN0ksSUFBSSxDQUFDLDZCQUE2QixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckosSUFBSSxDQUFDLGlDQUFpQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0osSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0ksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUNXLGVBQWUsQ0FBQyxLQUFzQjtRQUMvQyxJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7WUFDOUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDO1lBQzdELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFDVyxnQkFBZ0IsQ0FBQyxLQUF1QjtRQUNqRCxJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7WUFDL0IsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQ1csUUFBUSxDQUFDLEtBQXNCO1FBQ3hDLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztZQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjtJQUNILENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFTRCxJQUVXLFFBQVEsQ0FBQyxLQUFjO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ2hEO0lBQ0gsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQVlELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUF3REQsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUNqQixJQUFJLENBQUMsdUJBQXVCLENBQUMsK0JBQStCLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBbUQsRUFBRSxFQUFFO1lBQzdILElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3BGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ2xDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRVksWUFBWSxDQUFDLEtBQVU7O1lBQ2xDLElBQUksTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixNQUFNLFFBQVEsR0FBWSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25ELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2dCQUN4QixPQUFPLFFBQVEsQ0FBQzthQUNqQjtRQUNILENBQUM7S0FBQTtJQUVZLDBCQUEwQixDQUFDLEtBQWlCOztZQUN2RCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLElBQUksTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3JHO1FBQ0gsQ0FBQztLQUFBO0lBRU0sc0JBQXNCLENBQUMsSUFBeUIsRUFBRSxPQUFnQjtRQUN2RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsK0JBQStCLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVTLE1BQU0sQ0FBQyxLQUFVO1FBQ3pCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRVMsYUFBYSxDQUFDLE9BQWdCO1FBQ3RDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7SUFFUyxjQUFjO1FBQ3RCLDRCQUE0QjtJQUM5QixDQUFDO0lBRVMsV0FBVztRQUNuQiw0QkFBNEI7SUFDOUIsQ0FBQztJQUVTLGtCQUFrQjtJQUM1QixDQUFDO0lBRUQsNEJBQTRCO0lBQ2xCLGtCQUFrQjtJQUM1QixDQUFDO0lBRVMscUJBQXFCLENBQUMsT0FBZTtRQUM3QyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2pELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxPQUFPLE1BQU0sQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUVTLHVCQUF1QixDQUFDLE9BQWU7UUFDL0MsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE1BQU0sT0FBTyxNQUFNLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFUyxxQkFBcUI7UUFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxRQUFRLEdBQWEsRUFBRSxDQUFDO1FBQzVCLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDaEYsUUFBUSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsYUFBYSxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDdEgsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELDRCQUE0QjtJQUNsQixtQkFBbUI7SUFFN0IsQ0FBQztJQUVTLGFBQWE7UUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRWUsZUFBZTs7WUFDN0IsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBRTtnQkFDM0IsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUM1RztpQkFBTTtnQkFDTCxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRWUsUUFBUTs7WUFDdEIsZ0ZBQWdGO1lBQ2hGLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzVDLENBQUM7S0FBQTs7O1lBcFRGLFNBQVM7OztZQUxGLHVCQUF1QjtZQUN2QixnQkFBZ0I7WUFDaEIsdUJBQXVCO1lBSnZCLGlCQUFpQjtZQVpqQixrQkFBa0I7WUFEbEIsaUJBQWlCOzs7MEJBMkJ0QixLQUFLOzhCQTRCTCxLQUFLOzhCQTRDTCxLQUFLOytCQWFMLEtBQUs7dUJBWUwsS0FBSzt1QkFjTCxLQUFLO3NCQUdMLFdBQVcsU0FBQyxlQUFlLGNBQzNCLEtBQUs7dUJBR0wsV0FBVyxTQUFDLG1CQUFtQixjQUMvQixLQUFLO3VCQVlMLFdBQVcsU0FBQyxpQkFBaUIsY0FDN0IsS0FBSztxQkFHTCxXQUFXLFNBQUMsZUFBZTt3QkFHM0IsV0FBVyxTQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uVG90YWx9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi10b3RhbC5ibyc7XHJcbmltcG9ydCB7TGluZU9wZXJhdGlvblN0YXR1c30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2xpbmUtb3BlcmF0aW9uLXN0YXR1cy5ibyc7XHJcbmltcG9ydCB7UmVsYXRpb25LaW5kfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9lbnVtL3JlbGF0aW9uLWtpbmQuZW51bSc7XHJcbmltcG9ydCB7UmVsYXRpb25BbnlUeXBlfSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tYW55LXR5cGUnO1xyXG5pbXBvcnQge05VTExfQ1VTVE9NRVJfRlVMTF9PQkpFQ1R9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9udWwtcmVsYXRpb24tb2JqZWN0JztcclxuaW1wb3J0IHtSZWxhdGlvbk5hbWVLaW5kfSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvZW51bS9yZWxhdGlvbi1uYW1lLWtpbmQuZW51bSc7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSAnLi4vLi4vLi4vZW51bS9pY29uLmVudW0nO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9IGZyb20gJy4uLy4uLy4uL2VudW0vdHJhbnNhY3Rpb24tdHlwZS1jYXRlZ29yeS5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkV2ZW50U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1ldmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24taW1hZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG4gIHB1YmxpYyByZWFkb25seSByZWxLaW5kOiB0eXBlb2YgUmVsYXRpb25LaW5kID0gUmVsYXRpb25LaW5kO1xyXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc0tpbmQ6IHR5cGVvZiBUcmFuc2FjdGlvbktpbmQgPSBUcmFuc2FjdGlvbktpbmQ7XHJcbiAgcHVibGljIHJlYWRvbmx5IGNhdGVnb3J5OiB0eXBlb2YgVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkgPSBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHRyYW5zYWN0aW9uKHZhbHVlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkge1xyXG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB2YWx1ZTtcclxuICAgIGlmICh0aGlzLl90cmFuc2FjdGlvbikge1xyXG4gICAgICBpZiAodGhpcy5fdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvKSB7XHJcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbkluZm8gPSB0aGlzLl90cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm87XHJcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbktpbmQgPSB0aGlzLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbktpbmQ7XHJcbiAgICAgICAgdGhpcy5pc1NlcnZpY2UgPSB0aGlzLl90cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25LaW5kID09PSBUcmFuc2FjdGlvbktpbmQuU2VydmljZU9yZGVyO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLl90cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzKSB7XHJcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmVzID0gdGhpcy5fdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lcztcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5fdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25Ub3RhbCkge1xyXG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25Ub3RhbCA9IHRoaXMuX3RyYW5zYWN0aW9uLnRyYW5zYWN0aW9uVG90YWw7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuX3RyYW5zYWN0aW9uLmxpbmVPcGVyYXRpb25TdGF0dXNlcykge1xyXG4gICAgICAgIHRoaXMubGluZU9wZXJhdGlvblN0YXR1c2VzID0gdGhpcy5fdHJhbnNhY3Rpb24ubGluZU9wZXJhdGlvblN0YXR1c2VzO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLl90cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8gJiYgdGhpcy5fdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWQpIHtcclxuICAgICAgICB0aGlzLnRyYW5zYWN0aW9uU2V0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2Uge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHRyYW5zYWN0aW9uTGluZSh2YWx1ZTogVHJhbnNhY3Rpb25MaW5lSW5mbykge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uTGluZSA9IHZhbHVlO1xyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkxpbmUuc2VsZWN0ZWQgPSB0aGlzLl9zZWxlY3RlZDtcclxuICAgICAgdGhpcy5pc1RleHQgPSB0aGlzLl90cmFuc2FjdGlvbkxpbmUuaXNUZXh0O1xyXG4gICAgICB0aGlzLmlzQXJ0aWNsZSA9IHRoaXMuX3RyYW5zYWN0aW9uTGluZS5pc0FydGljbGU7XHJcbiAgICAgIHRoaXMubGluZUhhc0xvZ2lzdGljYWxTdGF0ZSA9IHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cyAmJlxyXG4gICAgICAgICAgKHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eURlbGl2ZXJlZCAhPT0gMCB8fFxyXG4gICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5SW52b2ljZWQgIT09IDAgfHxcclxuICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eVBpY2tlZCAhPT0gMCB8fFxyXG4gICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5VG9CZVBpY2tlZCAhPT0gMCB8fFxyXG4gICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5QWxsb2NhdGVkIDwgMClcclxuICAgICAgdGhpcy5saW5lSXNPcmRlcmVkID0gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzICYmIHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eU9yZGVyZWQgIT09IDA7XHJcbiAgICAgIHRoaXMubGluZUlzRGVsaXZlcmVkID0gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzICYmIHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eURlbGl2ZXJlZCAhPT0gMDtcclxuICAgICAgdGhpcy5saW5lSXNJbnZvaWNlZCA9IHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cyAmJiB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlJbnZvaWNlZCAhPT0gMDtcclxuICAgICAgdGhpcy5saW5lSXNSZWNlaXZlZCA9IHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cyAmJiB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlSZWNlaXZlZCAhPT0gMDtcclxuXHJcbiAgICAgIHRoaXMubGluZVF1YW50aXR5VG9JbnZvaWNlID0gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzID8gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5VG9JbnZvaWNlIDogMDtcclxuICAgICAgdGhpcy5saW5lUXVhbnRpdHlJbnZvaWNlZCA9IHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cyA/IHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eUludm9pY2VkIDogMDtcclxuICAgICAgdGhpcy5saW5lUXVhbnRpdHlUb1JlY2VpdmUgPSB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMgPyB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlUb1JlY2VpdmUgOiAwO1xyXG4gICAgICB0aGlzLmxpbmVRdWFudGl0eVJlY2VpdmVkID0gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzID8gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5UmVjZWl2ZWQgOiAwO1xyXG4gICAgICB0aGlzLmxpbmVRdWFudGl0eVRvRGVsaXZlciA9IHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cyA/IHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eVRvRGVsaXZlciA6IDA7XHJcbiAgICAgIHRoaXMubGluZVF1YW50aXR5RGVsaXZlcmVkID0gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzID8gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5RGVsaXZlcmVkIDogMDtcclxuICAgICAgdGhpcy5saW5lUXVhbnRpdHlUb0FsbG9jYXRlID0gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzID8gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5VG9BbGxvY2F0ZSA6IDA7XHJcbiAgICAgIHRoaXMubGluZVF1YW50aXR5QWxsb2NhdGVkID0gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzID8gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5QWxsb2NhdGVkIDogMDtcclxuICAgICAgdGhpcy5saW5lUXVhbnRpdHlPcmRlcmVkID0gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzID8gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5T3JkZXJlZCA6IDA7XHJcbiAgICAgIHRoaXMubGluZVF1YW50aXR5UGxhbm5pbmdSZXF1ZXN0ZWQgPSB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMgPyB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlQbGFubmluZ1JlcXVlc3RlZCA6IDA7XHJcbiAgICAgIHRoaXMubGluZVF1YW50aXR5UGxhbm5pbmdQcmVmZXJyZWREYXRlRW50ZXJlZCA9IHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cyA/IHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eVBsYW5uaW5nUHJlZmVycmVkRGF0ZUVudGVyZWQgOiAwO1xyXG4gICAgICB0aGlzLmxpbmVRdWFudGl0eVRvQmVQaWNrZWQgPSB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMgPyB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlUb0JlUGlja2VkIDogMDtcclxuICAgICAgdGhpcy5saW5lUXVhbnRpdHlQaWNrZWQgPSB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMgPyB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlQaWNrZWQgOiAwO1xyXG4gICAgICB0aGlzLmxpbmVRdWFudGl0eVBsYW5uaW5nRmluYWwgPSB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMgPyB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlQbGFubmluZ0ZpbmFsIDogMDtcclxuXHJcbiAgICAgIHRoaXMubGluZVF1YW50aXR5UHVyY2hhc2VDb25maXJtZWQgPSB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMgPyB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlQdXJjaGFzZUNvbmZpcm1lZCA6IDA7XHJcbiAgICAgIHRoaXMubGluZVF1YW50aXR5VHJhbnNwb3J0Tm90aWZpY2F0aW9uID0gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzID8gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5VHJhbnNwb3J0Tm90aWZpY2F0aW9uIDogMDtcclxuICAgICAgdGhpcy5saW5lUXVhbnRpdHlJbnZvaWNlQ29udHJvbCA9IHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cyA/IHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eUludm9pY2VDb250cm9sIDogMDtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmVTZXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdHJhbnNhY3Rpb25MaW5lKCk6IFRyYW5zYWN0aW9uTGluZUluZm8ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uTGluZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCB0cmFuc2FjdGlvbkluZm8odmFsdWU6IFRyYW5zYWN0aW9uSW5mbykge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uSW5mbyA9IHZhbHVlO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uS2luZCA9IHRoaXMuX3RyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbktpbmQ7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25JbmZvU2V0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHRyYW5zYWN0aW9uSW5mbygpOiBUcmFuc2FjdGlvbkluZm8ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uSW5mbztcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCB0cmFuc2FjdGlvblRvdGFsKHZhbHVlOiBUcmFuc2FjdGlvblRvdGFsKSB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25Ub3RhbCA9IHZhbHVlO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uVG90YWxTZXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdHJhbnNhY3Rpb25Ub3RhbCgpOiBUcmFuc2FjdGlvblRvdGFsIHtcclxuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvblRvdGFsO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHJlbGF0aW9uKHZhbHVlOiBSZWxhdGlvbkFueVR5cGUpIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLl9yZWxhdGlvbiA9IHZhbHVlO1xyXG4gICAgICB0aGlzLnJlbGF0aW9uS2luZCA9IHRoaXMuX3JlbGF0aW9uLnJlbGF0aW9uVHlwZTtcclxuICAgICAgdGhpcy5yZWxhdGlvblR5cGUgPSB0aGlzLl9yZWxhdGlvbi50eXBlO1xyXG4gICAgICB0aGlzLnJlbGF0aW9uU2V0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJlbGF0aW9uKCk6IFJlbGF0aW9uQW55VHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVsYXRpb247XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBleHBhbmRlZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLnByZXZpZXdcIilcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwcmV2aWV3OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmlzLXNlbGVjdGVkXCIpXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHNlbGVjdGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9zZWxlY3RlZCA9IHZhbHVlO1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb25MaW5lKSB7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lLnNlbGVjdGVkID0gdGhpcy5fc2VsZWN0ZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yZWFkLW9ubHknKVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmlzLXRleHRcIilcclxuICBwdWJsaWMgaXNUZXh0OiBib29sZWFuO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5pcy1hcnRpY2xlXCIpXHJcbiAgcHVibGljIGlzQXJ0aWNsZTogYm9vbGVhbjtcclxuXHJcbiAgcHVibGljIGdldCBtb2RlbCgpOiBUcmFuc2FjdGlvbkxpbmVJbmZvIHwgVHJhbnNhY3Rpb25JbmZvIHtcclxuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbkxpbmU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNTZXJ2aWNlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGxpbmVPcGVyYXRpb25TdGF0dXNlczogTGluZU9wZXJhdGlvblN0YXR1c1tdID0gW107XHJcbiAgcHVibGljIHRyYW5zYWN0aW9uTGluZXM6IFRyYW5zYWN0aW9uTGluZUluZm9bXSA9IFtdO1xyXG4gIHB1YmxpYyByZWxhdGlvbktpbmQ6IFJlbGF0aW9uS2luZCA9IFJlbGF0aW9uS2luZC5DdXN0b21lcjtcclxuICBwdWJsaWMgcmVsYXRpb25UeXBlOiBSZWxhdGlvbk5hbWVLaW5kID0gUmVsYXRpb25OYW1lS2luZC5Qcml2YXRlO1xyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbktpbmQ6IFRyYW5zYWN0aW9uS2luZCA9IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyO1xyXG4gIHB1YmxpYyB2aXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGhlYWRlclJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGNvbW1pdHRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgdG9vbHRpcE1lc3NhZ2U6IHN0cmluZztcclxuXHJcbiAgcHVibGljIGxpbmVIYXNMb2dpc3RpY2FsU3RhdGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgbGluZUlzT3JkZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBsaW5lSXNEZWxpdmVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgbGluZUlzSW52b2ljZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgbGluZUlzUmVjZWl2ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgbGluZVF1YW50aXR5VG9JbnZvaWNlOiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBsaW5lUXVhbnRpdHlJbnZvaWNlZDogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgbGluZVF1YW50aXR5VG9SZWNlaXZlOiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBsaW5lUXVhbnRpdHlSZWNlaXZlZDogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgbGluZVF1YW50aXR5VG9EZWxpdmVyOiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBsaW5lUXVhbnRpdHlEZWxpdmVyZWQ6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIGxpbmVRdWFudGl0eVRvQWxsb2NhdGU6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIGxpbmVRdWFudGl0eUFsbG9jYXRlZDogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgbGluZVF1YW50aXR5T3JkZXJlZDogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgbGluZVF1YW50aXR5UGxhbm5pbmdSZXF1ZXN0ZWQ6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIGxpbmVRdWFudGl0eVBsYW5uaW5nUHJlZmVycmVkRGF0ZUVudGVyZWQ6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIGxpbmVRdWFudGl0eVRvQmVQaWNrZWQ6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIGxpbmVRdWFudGl0eVBpY2tlZDogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgbGluZVF1YW50aXR5UGxhbm5pbmdGaW5hbDogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgbGluZVF1YW50aXR5UHVyY2hhc2VDb25maXJtZWQ6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIGxpbmVRdWFudGl0eVRyYW5zcG9ydE5vdGlmaWNhdGlvbjogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgbGluZVF1YW50aXR5SW52b2ljZUNvbnRyb2w6IG51bWJlciA9IDA7XHJcblxyXG4gIHByb3RlY3RlZCBoZWFkZXJUb29sdGlwTWVzc2FnZXM6IHN0cmluZ1tdID0gW107XHJcbiAgcHJvdGVjdGVkIGxpbmVUb29sdGlwTWVzc2FnZXM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIHByaXZhdGUgX3JlbGF0aW9uOiBSZWxhdGlvbkFueVR5cGUgPSBOVUxMX0NVU1RPTUVSX0ZVTExfT0JKRUNUO1xyXG4gIHByaXZhdGUgX3RyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZTtcclxuICBwcml2YXRlIF90cmFuc2FjdGlvbkxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8gPSBuZXcgVHJhbnNhY3Rpb25MaW5lSW5mbygpO1xyXG4gIHByaXZhdGUgX3RyYW5zYWN0aW9uSW5mbzogVHJhbnNhY3Rpb25JbmZvID0gbmV3IFRyYW5zYWN0aW9uSW5mbygpO1xyXG4gIHByaXZhdGUgX3RyYW5zYWN0aW9uVG90YWw6IFRyYW5zYWN0aW9uVG90YWwgPSBuZXcgVHJhbnNhY3Rpb25Ub3RhbCgpO1xyXG4gIHByaXZhdGUgX3NlbGVjdGVkOiBib29sZWFuO1xyXG4gIHByaXZhdGUgX2Jhc2VTdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBpbWFnZVNlcnZpY2U6IFRyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGRpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgIHByb3RlY3RlZCB0cmFuc2FjdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fYmFzZVN1YnMucHVzaChcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS50cmFuc2FjdGlvbkxpbmVWaXNpYmlsaXR5Q2hhbmdlLnN1YnNjcmliZSgoZGF0YToge2xpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8sIHZpc2libGU6IGJvb2xlYW59KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEgJiYgdGhpcy50cmFuc2FjdGlvbkxpbmUgJiYgZGF0YS5saW5lLmxpbmVOciA9PT0gdGhpcy50cmFuc2FjdGlvbkxpbmUubGluZU5yKSB7XHJcbiAgICAgICAgICB0aGlzLnZpc2liaWxpdHlTZXQoZGF0YS52aXNpYmxlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Jhc2VTdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZUNvbW1pdCh2YWx1ZTogYW55KTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAoYXdhaXQgdGhpcy5sb2NrVHJhbnNhY3Rpb24oKSkge1xyXG4gICAgICB0aGlzLmNvbW1pdHRpbmcgPSB0cnVlO1xyXG4gICAgICBjb25zdCByZXNwb25zZTogYm9vbGVhbiA9IGF3YWl0IHRoaXMuY29tbWl0KHZhbHVlKTtcclxuICAgICAgdGhpcy5jb21taXR0aW5nID0gZmFsc2U7XHJcbiAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBkZWxldGVUcmFuc2FjdGlvbkxpbmVDbGljayhldmVudDogTW91c2VFdmVudCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgaWYgKGF3YWl0IHRoaXMubG9ja1RyYW5zYWN0aW9uKCkpIHtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZGVsZXRlVHJhbnNhY3Rpb25MaW5lKHRoaXMudHJhbnNhY3Rpb25JbmZvLnV1aWQsIHRoaXMudHJhbnNhY3Rpb25MaW5lLnV1aWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVZpc2liaWxpdHlDaGFuZ2UobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbywgdmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS50cmFuc2FjdGlvbkxpbmVWaXNpYmlsaXR5Q2hhbmdlLm5leHQoe2xpbmUsIHZpc2libGV9KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjb21taXQodmFsdWU6IGFueSk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB2aXNpYmlsaXR5U2V0KHZpc2libGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMudmlzaWJsZSA9IHZpc2libGU7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25TZXQoKTogdm9pZCB7XHJcbiAgICAvLyBvdmVycmlkZGVuIGJ5IGRlc2NlbmRlbnRzXHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcmVsYXRpb25TZXQoKTogdm9pZCB7XHJcbiAgICAvLyBvdmVycmlkZGVuIGJ5IGRlc2NlbmRlbnRzXHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25MaW5lU2V0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgLy8gb3ZlcnJpZGRlbiBieSBkZXNjZW5kZW50c1xyXG4gIHByb3RlY3RlZCB0cmFuc2FjdGlvbkluZm9TZXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYWRkTGluZVRvb2x0aXBNZXNzYWdlKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubGluZVRvb2x0aXBNZXNzYWdlcy5pbmRleE9mKG1lc3NhZ2UpIDwgMCkge1xyXG4gICAgICB0aGlzLmxpbmVUb29sdGlwTWVzc2FnZXMucHVzaChgPGk+JHttZXNzYWdlfTwvaT5gKTtcclxuICAgICAgdGhpcy5wcmVwYXJlVG9vbHRpcE1lc3NhZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhZGRIZWFkZXJUb29sdGlwTWVzc2FnZShtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmhlYWRlclRvb2x0aXBNZXNzYWdlcy5pbmRleE9mKG1lc3NhZ2UpIDwgMCkge1xyXG4gICAgICB0aGlzLmhlYWRlclRvb2x0aXBNZXNzYWdlcy5wdXNoKGA8aT4ke21lc3NhZ2V9PC9pPmApO1xyXG4gICAgICB0aGlzLnByZXBhcmVUb29sdGlwTWVzc2FnZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHByZXBhcmVUb29sdGlwTWVzc2FnZSgpOiB2b2lkIHtcclxuICAgIHRoaXMudG9vbHRpcE1lc3NhZ2UgPSBcIlwiO1xyXG4gICAgbGV0IHRvb2x0aXBzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMuaGVhZGVyVG9vbHRpcE1lc3NhZ2VzLmxlbmd0aCA+IDAgfHwgdGhpcy5saW5lVG9vbHRpcE1lc3NhZ2VzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdG9vbHRpcHMgPSB0aGlzLmhlYWRlclRvb2x0aXBNZXNzYWdlcy5jb25jYXQodGhpcy5saW5lVG9vbHRpcE1lc3NhZ2VzKTtcclxuICAgICAgdGhpcy50b29sdGlwTWVzc2FnZSA9IGAke3RoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiRklFTERfSVNfUkVBRE9OTFlfQkVDQVVTRVwiKX08L2JyPjwvYnI+JHt0b29sdGlwcy5qb2luKCc8L2JyPicpfWA7XHJcbiAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gb3ZlcnJpZGRlbiBieSBkZXNjZW5kZW50c1xyXG4gIHByb3RlY3RlZCB0cmFuc2FjdGlvblRvdGFsU2V0KCk6IHZvaWQge1xyXG5cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBkZXRlY3RDaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgbG9ja1RyYW5zYWN0aW9uKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS50cnlUb0xvY2tUcmFuc2FjdGlvbih0aGlzLnRyYW5zYWN0aW9uSW5mby5pZCwgdGhpcy50cmFuc2FjdGlvbkluZm8udmVyc2lvbik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhc3luYyByb2xsYmFjaygpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIC8vIHRvZG86IHNob3VsZCBiZSBhbiB1bmxvY2sgZnVuY3Rpb24gaW4gdGhlIGJhY2tlbmQsIGJ1dCB0aGF0IGRvZXNuJ3QgZXhpc3QgeWV0XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvblNlcnZpY2Uucm9sbGJhY2soKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
294
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFFeEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUMxRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUNsRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUUzRixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFFaEYsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sdURBQXVELENBQUM7QUFDaEcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDMUYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ3JGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFD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NEI7SUFDbEIsbUJBQW1CO0lBRTdCLENBQUM7SUFFUyxhQUFhO1FBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVlLGVBQWU7O1lBQzNCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3pCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDOUc7aUJBQU07Z0JBQ0gsT0FBTyxJQUFJLENBQUM7YUFDZjtRQUNMLENBQUM7S0FBQTtJQUVlLFFBQVE7O1lBQ3BCLGdGQUFnRjtZQUNoRixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QyxDQUFDO0tBQUE7OztZQXBUSixTQUFTOzs7WUFMRix1QkFBdUI7WUFDdkIsZ0JBQWdCO1lBQ2hCLHVCQUF1QjtZQUp2QixpQkFBaUI7WUFaakIsa0JBQWtCO1lBRGxCLGlCQUFpQjs7OzBCQTJCcEIsS0FBSzs4QkE0QkwsS0FBSzs4QkE0Q0wsS0FBSzsrQkFhTCxLQUFLO3VCQVlMLEtBQUs7dUJBY0wsS0FBSztzQkFHTCxXQUFXLFNBQUMsZUFBZSxjQUMzQixLQUFLO3VCQUdMLFdBQVcsU0FBQyxtQkFBbUIsY0FDL0IsS0FBSzt1QkFZTCxXQUFXLFNBQUMsaUJBQWlCLGNBQzdCLEtBQUs7cUJBR0wsV0FBVyxTQUFDLGVBQWU7d0JBRzNCLFdBQVcsU0FBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8tcmVzcG9uc2UuYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW5mb30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8uYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblRvdGFsfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tdG90YWwuYm8nO1xyXG5pbXBvcnQge0xpbmVPcGVyYXRpb25TdGF0dXN9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9saW5lLW9wZXJhdGlvbi1zdGF0dXMuYm8nO1xyXG5pbXBvcnQge1JlbGF0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvZW51bS9yZWxhdGlvbi1raW5kLmVudW0nO1xyXG5pbXBvcnQge1JlbGF0aW9uQW55VHlwZX0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLWFueS10eXBlJztcclxuaW1wb3J0IHtOVUxMX0NVU1RPTUVSX0ZVTExfT0JKRUNUfSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvbnVsLXJlbGF0aW9uLW9iamVjdCc7XHJcbmltcG9ydCB7UmVsYXRpb25OYW1lS2luZH0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL2VudW0vcmVsYXRpb24tbmFtZS1raW5kLmVudW0nO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uVHlwZUNhdGVnb3J5fSBmcm9tICcuLi8uLi8uLi9lbnVtL3RyYW5zYWN0aW9uLXR5cGUtY2F0ZWdvcnkuZW51bSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWltYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IHJlbEtpbmQ6IHR5cGVvZiBSZWxhdGlvbktpbmQgPSBSZWxhdGlvbktpbmQ7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHJhbnNLaW5kOiB0eXBlb2YgVHJhbnNhY3Rpb25LaW5kID0gVHJhbnNhY3Rpb25LaW5kO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGNhdGVnb3J5OiB0eXBlb2YgVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkgPSBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCB0cmFuc2FjdGlvbih2YWx1ZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpIHtcclxuICAgICAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHZhbHVlO1xyXG4gICAgICAgIGlmICh0aGlzLl90cmFuc2FjdGlvbikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uSW5mbyA9IHRoaXMuX3RyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mbztcclxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25LaW5kID0gdGhpcy50cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25LaW5kO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc1NlcnZpY2UgPSB0aGlzLl90cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25LaW5kID09PSBUcmFuc2FjdGlvbktpbmQuU2VydmljZU9yZGVyO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl90cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uTGluZXMgPSB0aGlzLl90cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl90cmFuc2FjdGlvbi50cmFuc2FjdGlvblRvdGFsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uVG90YWwgPSB0aGlzLl90cmFuc2FjdGlvbi50cmFuc2FjdGlvblRvdGFsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl90cmFuc2FjdGlvbi5saW5lT3BlcmF0aW9uU3RhdHVzZXMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGluZU9wZXJhdGlvblN0YXR1c2VzID0gdGhpcy5fdHJhbnNhY3Rpb24ubGluZU9wZXJhdGlvblN0YXR1c2VzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl90cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8gJiYgdGhpcy5fdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgdHJhbnNhY3Rpb25MaW5lKHZhbHVlOiBUcmFuc2FjdGlvbkxpbmVJbmZvKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uTGluZSA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLl90cmFuc2FjdGlvbkxpbmUuc2VsZWN0ZWQgPSB0aGlzLl9zZWxlY3RlZDtcclxuICAgICAgICAgICAgdGhpcy5pc1RleHQgPSB0aGlzLl90cmFuc2FjdGlvbkxpbmUuaXNUZXh0O1xyXG4gICAgICAgICAgICB0aGlzLmlzQXJ0aWNsZSA9IHRoaXMuX3RyYW5zYWN0aW9uTGluZS5pc0FydGljbGU7XHJcbiAgICAgICAgICAgIHRoaXMubGluZUhhc0xvZ2lzdGljYWxTdGF0ZSA9IHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cyAmJlxyXG4gICAgICAgICAgICAgICAgKCh0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMuaGFzT3duUHJvcGVydHkoJ3F1YW50aXR5RGVsaXZlcmVkJykgJiYgdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5RGVsaXZlcmVkICE9PSAwKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMuaGFzT3duUHJvcGVydHkoJ3F1YW50aXR5SW52b2ljZWQnKSAmJiB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlJbnZvaWNlZCAhPT0gMCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAodGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLmhhc093blByb3BlcnR5KCdxdWFudGl0eVBpY2tlZCcpICYmIHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eVBpY2tlZCAhPT0gMCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAodGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLmhhc093blByb3BlcnR5KCdxdWFudGl0eVRvQmVQaWNrZWQnKSAmJiB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlUb0JlUGlja2VkICE9PSAwKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICh0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMuaGFzT3duUHJvcGVydHkoJ3F1YW50aXR5QWxsb2NhdGVkJykgJiYgdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5QWxsb2NhdGVkIDwgMCkpO1xyXG4gICAgICAgICAgICB0aGlzLmxpbmVJc09yZGVyZWQgPSB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMgJiYgdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLmhhc093blByb3BlcnR5KCdxdWFudGl0eU9yZGVyZWQnKSAmJiB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlPcmRlcmVkICE9PSAwO1xyXG4gICAgICAgICAgICB0aGlzLmxpbmVJc0RlbGl2ZXJlZCA9IHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cyAmJiB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMuaGFzT3duUHJvcGVydHkoJ3F1YW50aXR5RGVsaXZlcmVkJykgJiYgdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5RGVsaXZlcmVkICE9PSAwO1xyXG4gICAgICAgICAgICB0aGlzLmxpbmVJc0ludm9pY2VkID0gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzICYmIHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5oYXNPd25Qcm9wZXJ0eSgncXVhbnRpdHlJbnZvaWNlZCcpICYmIHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eUludm9pY2VkICE9PSAwO1xyXG4gICAgICAgICAgICB0aGlzLmxpbmVJc1JlY2VpdmVkID0gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzICYmIHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5oYXNPd25Qcm9wZXJ0eSgncXVhbnRpdHlSZWNlaXZlZCcpICYmIHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eVJlY2VpdmVkICE9PSAwO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5saW5lUXVhbnRpdHlUb0ludm9pY2UgPSB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMgJiYgdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLmhhc093blByb3BlcnR5KCdxdWFudGl0eVRvSW52b2ljZScpID8gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5VG9JbnZvaWNlIDogMDtcclxuICAgICAgICAgICAgdGhpcy5saW5lUXVhbnRpdHlJbnZvaWNlZCA9IHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cyAmJiB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMuaGFzT3duUHJvcGVydHkoJ3F1YW50aXR5SW52b2ljZWQnKSA/IHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eUludm9pY2VkIDogMDtcclxuICAgICAgICAgICAgdGhpcy5saW5lUXVhbnRpdHlUb1JlY2VpdmUgPSB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMgJiYgdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLmhhc093blByb3BlcnR5KCdxdWFudGl0eVRvUmVjZWl2ZScpID8gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5VG9SZWNlaXZlIDogMDtcclxuICAgICAgICAgICAgdGhpcy5saW5lUXVhbnRpdHlSZWNlaXZlZCA9IHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cyAmJiB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMuaGFzT3duUHJvcGVydHkoJ3F1YW50aXR5UmVjZWl2ZWQnKSA/IHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eVJlY2VpdmVkIDogMDtcclxuICAgICAgICAgICAgdGhpcy5saW5lUXVhbnRpdHlUb0RlbGl2ZXIgPSB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMgJiYgdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLmhhc093blByb3BlcnR5KCdxdWFudGl0eVRvRGVsaXZlcicpID8gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5VG9EZWxpdmVyIDogMDtcclxuICAgICAgICAgICAgdGhpcy5saW5lUXVhbnRpdHlEZWxpdmVyZWQgPSB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMgJiYgdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLmhhc093blByb3BlcnR5KCdxdWFudGl0eURlbGl2ZXJlZCcpID8gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5RGVsaXZlcmVkIDogMDtcclxuICAgICAgICAgICAgdGhpcy5saW5lUXVhbnRpdHlUb0FsbG9jYXRlID0gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzICYmIHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5oYXNPd25Qcm9wZXJ0eSgncXVhbnRpdHlUb0FsbG9jYXRlJykgPyB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlUb0FsbG9jYXRlIDogMDtcclxuICAgICAgICAgICAgdGhpcy5saW5lUXVhbnRpdHlBbGxvY2F0ZWQgPSB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMgJiYgdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLmhhc093blByb3BlcnR5KCdxdWFudGl0eUFsbG9jYXRlZCcpID8gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5QWxsb2NhdGVkIDogMDtcclxuICAgICAgICAgICAgdGhpcy5saW5lUXVhbnRpdHlPcmRlcmVkID0gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzICYmIHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5oYXNPd25Qcm9wZXJ0eSgncXVhbnRpdHlPcmRlcmVkJykgPyB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlPcmRlcmVkIDogMDtcclxuICAgICAgICAgICAgdGhpcy5saW5lUXVhbnRpdHlQbGFubmluZ1JlcXVlc3RlZCA9IHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cyAmJiB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMuaGFzT3duUHJvcGVydHkoJ3F1YW50aXR5UGxhbm5pbmdSZXF1ZXN0ZWQnKSA/IHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eVBsYW5uaW5nUmVxdWVzdGVkIDogMDtcclxuICAgICAgICAgICAgdGhpcy5saW5lUXVhbnRpdHlQbGFubmluZ1ByZWZlcnJlZERhdGVFbnRlcmVkID0gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzICYmIHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5oYXNPd25Qcm9wZXJ0eSgncXVhbnRpdHlQbGFubmluZ1ByZWZlcnJlZERhdGVFbnRlcmVkJykgPyB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlQbGFubmluZ1ByZWZlcnJlZERhdGVFbnRlcmVkIDogMDtcclxuICAgICAgICAgICAgdGhpcy5saW5lUXVhbnRpdHlUb0JlUGlja2VkID0gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzICYmIHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5oYXNPd25Qcm9wZXJ0eSgncXVhbnRpdHlUb0JlUGlja2VkJykgPyB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlUb0JlUGlja2VkIDogMDtcclxuICAgICAgICAgICAgdGhpcy5saW5lUXVhbnRpdHlQaWNrZWQgPSB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMgJiYgdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLmhhc093blByb3BlcnR5KCdxdWFudGl0eVBpY2tlZCcpID8gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5UGlja2VkIDogMDtcclxuICAgICAgICAgICAgdGhpcy5saW5lUXVhbnRpdHlQbGFubmluZ0ZpbmFsID0gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzICYmIHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5oYXNPd25Qcm9wZXJ0eSgncXVhbnRpdHlQbGFubmluZ0ZpbmFsJykgPyB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlQbGFubmluZ0ZpbmFsIDogMDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMubGluZVF1YW50aXR5UHVyY2hhc2VDb25maXJtZWQgPSB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMgJiYgdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLmhhc093blByb3BlcnR5KCdxdWFudGl0eVB1cmNoYXNlQ29uZmlybWVkJykgPyB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlQdXJjaGFzZUNvbmZpcm1lZCA6IDA7XHJcbiAgICAgICAgICAgIHRoaXMubGluZVF1YW50aXR5VHJhbnNwb3J0Tm90aWZpY2F0aW9uID0gdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzICYmIHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5oYXNPd25Qcm9wZXJ0eSgncXVhbnRpdHlUcmFuc3BvcnROb3RpZmljYXRpb24nKSA/IHRoaXMuX3RyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eVRyYW5zcG9ydE5vdGlmaWNhdGlvbiA6IDA7XHJcbiAgICAgICAgICAgIHRoaXMubGluZVF1YW50aXR5SW52b2ljZUNvbnRyb2wgPSB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMgJiYgdGhpcy5fdHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLmhhc093blByb3BlcnR5KCdxdWFudGl0eUludm9pY2VDb250cm9sJykgPyB0aGlzLl90cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlJbnZvaWNlQ29udHJvbCA6IDA7XHJcbiAgICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lU2V0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdHJhbnNhY3Rpb25MaW5lKCk6IFRyYW5zYWN0aW9uTGluZUluZm8ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbkxpbmU7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgdHJhbnNhY3Rpb25JbmZvKHZhbHVlOiBUcmFuc2FjdGlvbkluZm8pIHtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25JbmZvID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25LaW5kID0gdGhpcy5fdHJhbnNhY3Rpb25JbmZvLnRyYW5zYWN0aW9uS2luZDtcclxuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkluZm9TZXQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB0cmFuc2FjdGlvbkluZm8oKTogVHJhbnNhY3Rpb25JbmZvIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb25JbmZvO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHRyYW5zYWN0aW9uVG90YWwodmFsdWU6IFRyYW5zYWN0aW9uVG90YWwpIHtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25Ub3RhbCA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uVG90YWxTZXQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB0cmFuc2FjdGlvblRvdGFsKCk6IFRyYW5zYWN0aW9uVG90YWwge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvblRvdGFsO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHJlbGF0aW9uKHZhbHVlOiBSZWxhdGlvbkFueVR5cGUpIHtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5fcmVsYXRpb24gPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5yZWxhdGlvbktpbmQgPSB0aGlzLl9yZWxhdGlvbi5yZWxhdGlvblR5cGU7XHJcbiAgICAgICAgICAgIHRoaXMucmVsYXRpb25UeXBlID0gdGhpcy5fcmVsYXRpb24udHlwZTtcclxuICAgICAgICAgICAgdGhpcy5yZWxhdGlvblNldCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHJlbGF0aW9uKCk6IFJlbGF0aW9uQW55VHlwZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlbGF0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZXhwYW5kZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MucHJldmlldycpXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHByZXZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLXNlbGVjdGVkJylcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHNlbGVjdGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSB2YWx1ZTtcclxuICAgICAgICBpZiAodGhpcy50cmFuc2FjdGlvbkxpbmUpIHtcclxuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUuc2VsZWN0ZWQgPSB0aGlzLl9zZWxlY3RlZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBzZWxlY3RlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5yZWFkLW9ubHknKVxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaXMtdGV4dCcpXHJcbiAgICBwdWJsaWMgaXNUZXh0OiBib29sZWFuO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaXMtYXJ0aWNsZScpXHJcbiAgICBwdWJsaWMgaXNBcnRpY2xlOiBib29sZWFuO1xyXG5cclxuICAgIHB1YmxpYyBnZXQgbW9kZWwoKTogVHJhbnNhY3Rpb25MaW5lSW5mbyB8IFRyYW5zYWN0aW9uSW5mbyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uTGluZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNTZXJ2aWNlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgbGluZU9wZXJhdGlvblN0YXR1c2VzOiBMaW5lT3BlcmF0aW9uU3RhdHVzW10gPSBbXTtcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkxpbmVzOiBUcmFuc2FjdGlvbkxpbmVJbmZvW10gPSBbXTtcclxuICAgIHB1YmxpYyByZWxhdGlvbktpbmQ6IFJlbGF0aW9uS2luZCA9IFJlbGF0aW9uS2luZC5DdXN0b21lcjtcclxuICAgIHB1YmxpYyByZWxhdGlvblR5cGU6IFJlbGF0aW9uTmFtZUtpbmQgPSBSZWxhdGlvbk5hbWVLaW5kLlByaXZhdGU7XHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25LaW5kOiBUcmFuc2FjdGlvbktpbmQgPSBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlcjtcclxuICAgIHB1YmxpYyB2aXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaGVhZGVyUmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBjb21taXR0aW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgdG9vbHRpcE1lc3NhZ2U6IHN0cmluZztcclxuXHJcbiAgICBwdWJsaWMgbGluZUhhc0xvZ2lzdGljYWxTdGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGxpbmVJc09yZGVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBsaW5lSXNEZWxpdmVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBsaW5lSXNJbnZvaWNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGxpbmVJc1JlY2VpdmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgbGluZVF1YW50aXR5VG9JbnZvaWNlOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIGxpbmVRdWFudGl0eUludm9pY2VkOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIGxpbmVRdWFudGl0eVRvUmVjZWl2ZTogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBsaW5lUXVhbnRpdHlSZWNlaXZlZDogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBsaW5lUXVhbnRpdHlUb0RlbGl2ZXI6IG51bWJlciA9IDA7XHJcbiAgICBwdWJsaWMgbGluZVF1YW50aXR5RGVsaXZlcmVkOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIGxpbmVRdWFudGl0eVRvQWxsb2NhdGU6IG51bWJlciA9IDA7XHJcbiAgICBwdWJsaWMgbGluZVF1YW50aXR5QWxsb2NhdGVkOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIGxpbmVRdWFudGl0eU9yZGVyZWQ6IG51bWJlciA9IDA7XHJcbiAgICBwdWJsaWMgbGluZVF1YW50aXR5UGxhbm5pbmdSZXF1ZXN0ZWQ6IG51bWJlciA9IDA7XHJcbiAgICBwdWJsaWMgbGluZVF1YW50aXR5UGxhbm5pbmdQcmVmZXJyZWREYXRlRW50ZXJlZDogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBsaW5lUXVhbnRpdHlUb0JlUGlja2VkOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIGxpbmVRdWFudGl0eVBpY2tlZDogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBsaW5lUXVhbnRpdHlQbGFubmluZ0ZpbmFsOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIGxpbmVRdWFudGl0eVB1cmNoYXNlQ29uZmlybWVkOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIGxpbmVRdWFudGl0eVRyYW5zcG9ydE5vdGlmaWNhdGlvbjogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBsaW5lUXVhbnRpdHlJbnZvaWNlQ29udHJvbDogbnVtYmVyID0gMDtcclxuXHJcbiAgICBwcm90ZWN0ZWQgaGVhZGVyVG9vbHRpcE1lc3NhZ2VzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgcHJvdGVjdGVkIGxpbmVUb29sdGlwTWVzc2FnZXM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgcHJpdmF0ZSBfcmVsYXRpb246IFJlbGF0aW9uQW55VHlwZSA9IE5VTExfQ1VTVE9NRVJfRlVMTF9PQkpFQ1Q7XHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U7XHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbkxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8gPSBuZXcgVHJhbnNhY3Rpb25MaW5lSW5mbygpO1xyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25JbmZvOiBUcmFuc2FjdGlvbkluZm8gPSBuZXcgVHJhbnNhY3Rpb25JbmZvKCk7XHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvblRvdGFsOiBUcmFuc2FjdGlvblRvdGFsID0gbmV3IFRyYW5zYWN0aW9uVG90YWwoKTtcclxuICAgIHByaXZhdGUgX3NlbGVjdGVkOiBib29sZWFuO1xyXG4gICAgcHJpdmF0ZSBfYmFzZVN1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgICAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgaW1hZ2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkltYWdlU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCB0cmFuc2FjdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fYmFzZVN1YnMucHVzaChcclxuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS50cmFuc2FjdGlvbkxpbmVWaXNpYmlsaXR5Q2hhbmdlLnN1YnNjcmliZSgoZGF0YTogeyBsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvLCB2aXNpYmxlOiBib29sZWFuIH0pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChkYXRhICYmIHRoaXMudHJhbnNhY3Rpb25MaW5lICYmIGRhdGEubGluZS5saW5lTnIgPT09IHRoaXMudHJhbnNhY3Rpb25MaW5lLmxpbmVOcikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmlzaWJpbGl0eVNldChkYXRhLnZpc2libGUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fYmFzZVN1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGhhbmRsZUNvbW1pdCh2YWx1ZTogYW55KTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICAgICAgaWYgKGF3YWl0IHRoaXMubG9ja1RyYW5zYWN0aW9uKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5jb21taXR0aW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2U6IGJvb2xlYW4gPSBhd2FpdCB0aGlzLmNvbW1pdCh2YWx1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuY29tbWl0dGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBkZWxldGVUcmFuc2FjdGlvbkxpbmVDbGljayhldmVudDogTW91c2VFdmVudCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgaWYgKGF3YWl0IHRoaXMubG9ja1RyYW5zYWN0aW9uKCkpIHtcclxuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZGVsZXRlVHJhbnNhY3Rpb25MaW5lKHRoaXMudHJhbnNhY3Rpb25JbmZvLnV1aWQsIHRoaXMudHJhbnNhY3Rpb25MaW5lLnV1aWQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlVmlzaWJpbGl0eUNoYW5nZShsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvLCB2aXNpYmxlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS50cmFuc2FjdGlvbkxpbmVWaXNpYmlsaXR5Q2hhbmdlLm5leHQoe2xpbmUsIHZpc2libGV9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgY29tbWl0KHZhbHVlOiBhbnkpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCB2aXNpYmlsaXR5U2V0KHZpc2libGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZpc2libGUgPSB2aXNpYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCB0cmFuc2FjdGlvblNldCgpOiB2b2lkIHtcclxuICAgICAgICAvLyBvdmVycmlkZGVuIGJ5IGRlc2NlbmRlbnRzXHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlbGF0aW9uU2V0KCk6IHZvaWQge1xyXG4gICAgICAgIC8vIG92ZXJyaWRkZW4gYnkgZGVzY2VuZGVudHNcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25MaW5lU2V0KCk6IHZvaWQge1xyXG4gICAgfVxyXG5cclxuICAgIC8vIG92ZXJyaWRkZW4gYnkgZGVzY2VuZGVudHNcclxuICAgIHByb3RlY3RlZCB0cmFuc2FjdGlvbkluZm9TZXQoKTogdm9pZCB7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGFkZExpbmVUb29sdGlwTWVzc2FnZShtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5saW5lVG9vbHRpcE1lc3NhZ2VzLmluZGV4T2YobWVzc2FnZSkgPCAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGluZVRvb2x0aXBNZXNzYWdlcy5wdXNoKGA8aT4ke21lc3NhZ2V9PC9pPmApO1xyXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVUb29sdGlwTWVzc2FnZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgYWRkSGVhZGVyVG9vbHRpcE1lc3NhZ2UobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuaGVhZGVyVG9vbHRpcE1lc3NhZ2VzLmluZGV4T2YobWVzc2FnZSkgPCAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyVG9vbHRpcE1lc3NhZ2VzLnB1c2goYDxpPiR7bWVzc2FnZX08L2k+YCk7XHJcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZVRvb2x0aXBNZXNzYWdlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBwcmVwYXJlVG9vbHRpcE1lc3NhZ2UoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50b29sdGlwTWVzc2FnZSA9ICcnO1xyXG4gICAgICAgIGxldCB0b29sdGlwczogc3RyaW5nW10gPSBbXTtcclxuICAgICAgICBpZiAodGhpcy5oZWFkZXJUb29sdGlwTWVzc2FnZXMubGVuZ3RoID4gMCB8fCB0aGlzLmxpbmVUb29sdGlwTWVzc2FnZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0b29sdGlwcyA9IHRoaXMuaGVhZGVyVG9vbHRpcE1lc3NhZ2VzLmNvbmNhdCh0aGlzLmxpbmVUb29sdGlwTWVzc2FnZXMpO1xyXG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBNZXNzYWdlID0gYCR7dGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXQoJ0ZJRUxEX0lTX1JFQURPTkxZX0JFQ0FVU0UnKX08L2JyPjwvYnI+JHt0b29sdGlwcy5qb2luKCc8L2JyPicpfWA7XHJcbiAgICAgICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBvdmVycmlkZGVuIGJ5IGRlc2NlbmRlbnRzXHJcbiAgICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25Ub3RhbFNldCgpOiB2b2lkIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGRldGVjdENoYW5nZXMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGFzeW5jIGxvY2tUcmFuc2FjdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgICAgICBpZiAodGhpcy50cmFuc2FjdGlvbkluZm8uaWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnRyeVRvTG9ja1RyYW5zYWN0aW9uKHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkLCB0aGlzLnRyYW5zYWN0aW9uSW5mby52ZXJzaW9uKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGFzeW5jIHJvbGxiYWNrKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgICAgIC8vIHRvZG86IHNob3VsZCBiZSBhbiB1bmxvY2sgZnVuY3Rpb24gaW4gdGhlIGJhY2tlbmQsIGJ1dCB0aGF0IGRvZXNuJ3QgZXhpc3QgeWV0XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnJvbGxiYWNrKCk7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -1,17 +1,17 @@
1
- import { NgModule } from "@angular/core";
2
- import { CommonModule } from "@angular/common";
3
- import { ImageDisplayComponent } from "./image-display/image-display.component";
4
- import { IconComponent } from "./icon/icon.component";
5
- import { CustomerGroupsComponent } from "./relation/customer-groups.component";
6
- import { ButtonModule, CoDialogModule, InputCheckboxModule, InputComboBoxModule, InputTextModule, ListOfValuesModule } from "@colijnit/corecomponents_v12";
7
- import { StockStatusIndicatorComponent } from "./stock-status-indicator/stock-status-indicator.component";
8
- import { ConfirmationDialogModule } from "../confirmation-dialog/confirmation-dialog.module";
9
- import { PipeModule } from "../../pipe/pipe.module";
10
- import { CharacteristicAnswerModule } from "./base/components/characteristic-answer/characteristic-answer.module";
11
- import { WarehouseModule } from "./base/components/warehouse/warehouse.module";
12
- import { LazyRenderMasterDirective } from "./directive/lazy-render-master.directive";
13
- import { LazyRenderDirective } from "./directive/lazy-render.directive";
14
- import { ToastModule } from "../toast/toast.module";
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ImageDisplayComponent } from './image-display/image-display.component';
4
+ import { IconComponent } from './icon/icon.component';
5
+ import { CustomerGroupsComponent } from './relation/customer-groups.component';
6
+ import { ButtonModule, CoDialogModule, InputCheckboxModule, InputComboBoxModule, InputTextModule, ListOfValuesModule } from '@colijnit/corecomponents_v12';
7
+ import { StockStatusIndicatorComponent } from './stock-status-indicator/stock-status-indicator.component';
8
+ import { ConfirmationDialogModule } from '../confirmation-dialog/confirmation-dialog.module';
9
+ import { PipeModule } from '../../pipe/pipe.module';
10
+ import { CharacteristicAnswerModule } from './base/components/characteristic-answer/characteristic-answer.module';
11
+ import { WarehouseModule } from './base/components/warehouse/warehouse.module';
12
+ import { LazyRenderMasterDirective } from './directive/lazy-render-master.directive';
13
+ import { LazyRenderDirective } from './directive/lazy-render.directive';
14
+ import { ToastModule } from '../toast/toast.module';
15
15
  export class CoreModule {
16
16
  }
17
17
  CoreModule.decorators = [
@@ -48,4 +48,4 @@ CoreModule.decorators = [
48
48
  ]
49
49
  },] }
50
50
  ];
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC9jb3JlL2NvcmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQ0gsWUFBWSxFQUNaLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixrQkFBa0IsRUFDckIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUN4RyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUMzRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDbEQsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sc0VBQXNFLENBQUM7QUFDaEgsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQzdFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQWtDbEQsTUFBTSxPQUFPLFVBQVU7OztZQWhDdEIsUUFBUSxTQUFDO2dCQUNOLE9BQU8sRUFBRTtvQkFDTCxZQUFZO29CQUNaLG1CQUFtQjtvQkFDbkIsY0FBYztvQkFDZCxZQUFZO29CQUNaLHdCQUF3QjtvQkFDeEIsVUFBVTtvQkFDVixlQUFlO29CQUNmLG1CQUFtQjtvQkFDbkIsMEJBQTBCO29CQUMxQixlQUFlO29CQUNmLFdBQVc7b0JBQ1gsa0JBQWtCO2lCQUNyQjtnQkFDSCxZQUFZLEVBQUU7b0JBQ1oscUJBQXFCO29CQUNyQixhQUFhO29CQUNiLHVCQUF1QjtvQkFDdkIsNkJBQTZCO29CQUM3Qix5QkFBeUI7b0JBQ3pCLG1CQUFtQjtpQkFDcEI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLHFCQUFxQjtvQkFDckIsYUFBYTtvQkFDYix1QkFBdUI7b0JBQ3ZCLDZCQUE2QjtvQkFDN0IseUJBQXlCO29CQUN6QixtQkFBbUI7aUJBQ3BCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7SW1hZ2VEaXNwbGF5Q29tcG9uZW50fSBmcm9tIFwiLi9pbWFnZS1kaXNwbGF5L2ltYWdlLWRpc3BsYXkuY29tcG9uZW50XCI7XG5pbXBvcnQge0ljb25Db21wb25lbnR9IGZyb20gXCIuL2ljb24vaWNvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7Q3VzdG9tZXJHcm91cHNDb21wb25lbnR9IGZyb20gXCIuL3JlbGF0aW9uL2N1c3RvbWVyLWdyb3Vwcy5jb21wb25lbnRcIjtcbmltcG9ydCB7XG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIENvRGlhbG9nTW9kdWxlLFxuICAgIElucHV0Q2hlY2tib3hNb2R1bGUsXG4gICAgSW5wdXRDb21ib0JveE1vZHVsZSxcbiAgICBJbnB1dFRleHRNb2R1bGUsXG4gICAgTGlzdE9mVmFsdWVzTW9kdWxlXG59IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XG5pbXBvcnQge1N0b2NrU3RhdHVzSW5kaWNhdG9yQ29tcG9uZW50fSBmcm9tIFwiLi9zdG9jay1zdGF0dXMtaW5kaWNhdG9yL3N0b2NrLXN0YXR1cy1pbmRpY2F0b3IuY29tcG9uZW50XCI7XG5pbXBvcnQge0NvbmZpcm1hdGlvbkRpYWxvZ01vZHVsZX0gZnJvbSBcIi4uL2NvbmZpcm1hdGlvbi1kaWFsb2cvY29uZmlybWF0aW9uLWRpYWxvZy5tb2R1bGVcIjtcbmltcG9ydCB7UGlwZU1vZHVsZX0gZnJvbSBcIi4uLy4uL3BpcGUvcGlwZS5tb2R1bGVcIjtcbmltcG9ydCB7Q2hhcmFjdGVyaXN0aWNBbnN3ZXJNb2R1bGV9IGZyb20gXCIuL2Jhc2UvY29tcG9uZW50cy9jaGFyYWN0ZXJpc3RpYy1hbnN3ZXIvY2hhcmFjdGVyaXN0aWMtYW5zd2VyLm1vZHVsZVwiO1xuaW1wb3J0IHtXYXJlaG91c2VNb2R1bGV9IGZyb20gXCIuL2Jhc2UvY29tcG9uZW50cy93YXJlaG91c2Uvd2FyZWhvdXNlLm1vZHVsZVwiO1xuaW1wb3J0IHtMYXp5UmVuZGVyTWFzdGVyRGlyZWN0aXZlfSBmcm9tIFwiLi9kaXJlY3RpdmUvbGF6eS1yZW5kZXItbWFzdGVyLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHtMYXp5UmVuZGVyRGlyZWN0aXZlfSBmcm9tIFwiLi9kaXJlY3RpdmUvbGF6eS1yZW5kZXIuZGlyZWN0aXZlXCI7XG5pbXBvcnQge1RvYXN0TW9kdWxlfSBmcm9tIFwiLi4vdG9hc3QvdG9hc3QubW9kdWxlXCI7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIElucHV0Q29tYm9Cb3hNb2R1bGUsXG4gICAgICAgIENvRGlhbG9nTW9kdWxlLFxuICAgICAgICBCdXR0b25Nb2R1bGUsXG4gICAgICAgIENvbmZpcm1hdGlvbkRpYWxvZ01vZHVsZSxcbiAgICAgICAgUGlwZU1vZHVsZSxcbiAgICAgICAgSW5wdXRUZXh0TW9kdWxlLFxuICAgICAgICBJbnB1dENoZWNrYm94TW9kdWxlLFxuICAgICAgICBDaGFyYWN0ZXJpc3RpY0Fuc3dlck1vZHVsZSxcbiAgICAgICAgV2FyZWhvdXNlTW9kdWxlLFxuICAgICAgICBUb2FzdE1vZHVsZSxcbiAgICAgICAgTGlzdE9mVmFsdWVzTW9kdWxlXG4gICAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgSW1hZ2VEaXNwbGF5Q29tcG9uZW50LFxuICAgIEljb25Db21wb25lbnQsXG4gICAgQ3VzdG9tZXJHcm91cHNDb21wb25lbnQsXG4gICAgU3RvY2tTdGF0dXNJbmRpY2F0b3JDb21wb25lbnQsXG4gICAgTGF6eVJlbmRlck1hc3RlckRpcmVjdGl2ZSxcbiAgICBMYXp5UmVuZGVyRGlyZWN0aXZlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBJbWFnZURpc3BsYXlDb21wb25lbnQsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBDdXN0b21lckdyb3Vwc0NvbXBvbmVudCxcbiAgICBTdG9ja1N0YXR1c0luZGljYXRvckNvbXBvbmVudCxcbiAgICBMYXp5UmVuZGVyTWFzdGVyRGlyZWN0aXZlLFxuICAgIExhenlSZW5kZXJEaXJlY3RpdmVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDb3JlTW9kdWxlIHsgfVxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC9jb3JlL2NvcmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQ0gsWUFBWSxFQUNaLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixrQkFBa0IsRUFDckIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0QyxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUN4RyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUMzRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDbEQsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sc0VBQXNFLENBQUM7QUFDaEgsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQzdFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQWtDbEQsTUFBTSxPQUFPLFVBQVU7OztZQWhDdEIsUUFBUSxTQUFDO2dCQUNOLE9BQU8sRUFBRTtvQkFDTCxZQUFZO29CQUNaLG1CQUFtQjtvQkFDbkIsY0FBYztvQkFDZCxZQUFZO29CQUNaLHdCQUF3QjtvQkFDeEIsVUFBVTtvQkFDVixlQUFlO29CQUNmLG1CQUFtQjtvQkFDbkIsMEJBQTBCO29CQUMxQixlQUFlO29CQUNmLFdBQVc7b0JBQ1gsa0JBQWtCO2lCQUNyQjtnQkFDSCxZQUFZLEVBQUU7b0JBQ1oscUJBQXFCO29CQUNyQixhQUFhO29CQUNiLHVCQUF1QjtvQkFDdkIsNkJBQTZCO29CQUM3Qix5QkFBeUI7b0JBQ3pCLG1CQUFtQjtpQkFDcEI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLHFCQUFxQjtvQkFDckIsYUFBYTtvQkFDYix1QkFBdUI7b0JBQ3ZCLDZCQUE2QjtvQkFDN0IseUJBQXlCO29CQUN6QixtQkFBbUI7aUJBQ3BCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtJbWFnZURpc3BsYXlDb21wb25lbnR9IGZyb20gJy4vaW1hZ2UtZGlzcGxheS9pbWFnZS1kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQge0ljb25Db21wb25lbnR9IGZyb20gJy4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQge0N1c3RvbWVyR3JvdXBzQ29tcG9uZW50fSBmcm9tICcuL3JlbGF0aW9uL2N1c3RvbWVyLWdyb3Vwcy5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgQ29EaWFsb2dNb2R1bGUsXG4gICAgSW5wdXRDaGVja2JveE1vZHVsZSxcbiAgICBJbnB1dENvbWJvQm94TW9kdWxlLFxuICAgIElucHV0VGV4dE1vZHVsZSxcbiAgICBMaXN0T2ZWYWx1ZXNNb2R1bGVcbn0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XG5pbXBvcnQge1N0b2NrU3RhdHVzSW5kaWNhdG9yQ29tcG9uZW50fSBmcm9tICcuL3N0b2NrLXN0YXR1cy1pbmRpY2F0b3Ivc3RvY2stc3RhdHVzLWluZGljYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHtDb25maXJtYXRpb25EaWFsb2dNb2R1bGV9IGZyb20gJy4uL2NvbmZpcm1hdGlvbi1kaWFsb2cvY29uZmlybWF0aW9uLWRpYWxvZy5tb2R1bGUnO1xuaW1wb3J0IHtQaXBlTW9kdWxlfSBmcm9tICcuLi8uLi9waXBlL3BpcGUubW9kdWxlJztcbmltcG9ydCB7Q2hhcmFjdGVyaXN0aWNBbnN3ZXJNb2R1bGV9IGZyb20gJy4vYmFzZS9jb21wb25lbnRzL2NoYXJhY3RlcmlzdGljLWFuc3dlci9jaGFyYWN0ZXJpc3RpYy1hbnN3ZXIubW9kdWxlJztcbmltcG9ydCB7V2FyZWhvdXNlTW9kdWxlfSBmcm9tICcuL2Jhc2UvY29tcG9uZW50cy93YXJlaG91c2Uvd2FyZWhvdXNlLm1vZHVsZSc7XG5pbXBvcnQge0xhenlSZW5kZXJNYXN0ZXJEaXJlY3RpdmV9IGZyb20gJy4vZGlyZWN0aXZlL2xhenktcmVuZGVyLW1hc3Rlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtMYXp5UmVuZGVyRGlyZWN0aXZlfSBmcm9tICcuL2RpcmVjdGl2ZS9sYXp5LXJlbmRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtUb2FzdE1vZHVsZX0gZnJvbSAnLi4vdG9hc3QvdG9hc3QubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgSW5wdXRDb21ib0JveE1vZHVsZSxcbiAgICAgICAgQ29EaWFsb2dNb2R1bGUsXG4gICAgICAgIEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgQ29uZmlybWF0aW9uRGlhbG9nTW9kdWxlLFxuICAgICAgICBQaXBlTW9kdWxlLFxuICAgICAgICBJbnB1dFRleHRNb2R1bGUsXG4gICAgICAgIElucHV0Q2hlY2tib3hNb2R1bGUsXG4gICAgICAgIENoYXJhY3RlcmlzdGljQW5zd2VyTW9kdWxlLFxuICAgICAgICBXYXJlaG91c2VNb2R1bGUsXG4gICAgICAgIFRvYXN0TW9kdWxlLFxuICAgICAgICBMaXN0T2ZWYWx1ZXNNb2R1bGVcbiAgICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBJbWFnZURpc3BsYXlDb21wb25lbnQsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBDdXN0b21lckdyb3Vwc0NvbXBvbmVudCxcbiAgICBTdG9ja1N0YXR1c0luZGljYXRvckNvbXBvbmVudCxcbiAgICBMYXp5UmVuZGVyTWFzdGVyRGlyZWN0aXZlLFxuICAgIExhenlSZW5kZXJEaXJlY3RpdmVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEltYWdlRGlzcGxheUNvbXBvbmVudCxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIEN1c3RvbWVyR3JvdXBzQ29tcG9uZW50LFxuICAgIFN0b2NrU3RhdHVzSW5kaWNhdG9yQ29tcG9uZW50LFxuICAgIExhenlSZW5kZXJNYXN0ZXJEaXJlY3RpdmUsXG4gICAgTGF6eVJlbmRlckRpcmVjdGl2ZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENvcmVNb2R1bGUgeyB9XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { __awaiter } from "tslib";
2
- import { Component, EventEmitter, Input, Output } from "@angular/core";
3
- import { TransactionConnectorService } from "../../../service/transaction-connector.service";
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { TransactionConnectorService } from '../../../service/transaction-connector.service';
4
4
  export class CustomerGroupsComponent {
5
5
  constructor(_connector) {
6
6
  this._connector = _connector;
@@ -10,21 +10,39 @@ export class CustomerGroupsComponent {
10
10
  this.customerGroups = [];
11
11
  this.fields = { text: "naam", value: "groepsnummer" };
12
12
  }
13
+ set model(value) {
14
+ this._model = value;
15
+ this._setSelectedCustomerGroup();
16
+ }
17
+ get model() {
18
+ return this._model;
19
+ }
13
20
  ngOnInit() {
14
21
  return __awaiter(this, void 0, void 0, function* () {
15
22
  this._connector.getCustomerGroups().then((groups) => {
16
23
  this.customerGroups = groups;
24
+ this._setSelectedCustomerGroup();
17
25
  });
18
26
  });
19
27
  }
28
+ handleCustomerGroupChange(customerGroup) {
29
+ this.selectedCustomerGroup = customerGroup;
30
+ this.modelChange.emit(this.selectedCustomerGroup.groepsnummer);
31
+ }
32
+ _setSelectedCustomerGroup() {
33
+ if (!this.customerGroups) {
34
+ return;
35
+ }
36
+ this.selectedCustomerGroup = this.customerGroups.find(c => c.groepsnummer === this.model);
37
+ }
20
38
  }
21
39
  CustomerGroupsComponent.decorators = [
22
40
  { type: Component, args: [{
23
41
  selector: "relation-customer-groups",
24
42
  template: `
25
- <co-list-of-values [model]="model"
43
+ <co-list-of-values [model]="selectedCustomerGroup"
26
44
  [readonly]="readonly"
27
- (modelChange)="modelChange.emit($event)"
45
+ (modelChange)="handleCustomerGroupChange($event)"
28
46
  [collection]="customerGroups"
29
47
  [displayField]="'naam'"
30
48
  [label]="'CUSTOMER_GROUP' | localize"
@@ -43,4 +61,4 @@ CustomerGroupsComponent.propDecorators = {
43
61
  model: [{ type: Input }],
44
62
  modelChange: [{ type: Output }]
45
63
  };
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZ3JvdXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L2NvcmUvcmVsYXRpb24vY3VzdG9tZXItZ3JvdXBzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQW1CM0YsTUFBTSxPQUFPLHVCQUF1QjtJQWlCbEMsWUFDVSxVQUF1QztRQUF2QyxlQUFVLEdBQVYsVUFBVSxDQUE2QjtRQWYxQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRzFCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFNMUIsZ0JBQVcsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUUvRCxtQkFBYyxHQUFvQixFQUFFLENBQUM7UUFDckMsV0FBTSxHQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLENBQUM7SUFJN0QsQ0FBQztJQUVFLFFBQVE7O1lBQ1osSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQXVCLEVBQUUsRUFBRTtnQkFDbkUsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUM7WUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7OztZQXpDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsUUFBUSxFQUFFOzs7Ozs7Ozs7R0FTVDs7YUFJRjs7O1lBbEJPLDJCQUEyQjs7O3VCQXFCaEMsS0FBSzt1QkFHTCxLQUFLO29CQUdMLEtBQUs7MEJBR0wsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWNvbm5lY3Rvci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7Q3VzdG9tZXJHcm91cH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jdXN0b21lci1ncm91cC5ib1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwicmVsYXRpb24tY3VzdG9tZXItZ3JvdXBzXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxjby1saXN0LW9mLXZhbHVlcyBbbW9kZWxdPVwibW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cIm1vZGVsQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwiY3VzdG9tZXJHcm91cHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5RmllbGRdPVwiJ25hYW0nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0NVU1RPTUVSX0dST1VQJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxyXG4gICAgPjwvY28tbGlzdC1vZi12YWx1ZXM+XHJcbiAgYCxcclxuICBzdHlsZVVybHM6IFtcclxuICAgICcuL3JlbGF0aW9uLWN1c3RvbWVyLWdyb3Vwcy5jb21wb25lbnQuc2NzcydcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21lckdyb3Vwc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1vZGVsOiBzdHJpbmc7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBtb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgcHVibGljIGN1c3RvbWVyR3JvdXBzOiBDdXN0b21lckdyb3VwW10gPSBbXTtcclxuICBwdWJsaWMgZmllbGRzOiBPYmplY3QgPSB7IHRleHQ6IFwibmFhbVwiLCB2YWx1ZTogXCJncm9lcHNudW1tZXJcIiB9O1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9jb25uZWN0b3I6IFRyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLl9jb25uZWN0b3IuZ2V0Q3VzdG9tZXJHcm91cHMoKS50aGVuKChncm91cHM6IEN1c3RvbWVyR3JvdXBbXSkgPT4ge1xyXG4gICAgICB0aGlzLmN1c3RvbWVyR3JvdXBzID0gZ3JvdXBzO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZ3JvdXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L2NvcmUvcmVsYXRpb24vY3VzdG9tZXItZ3JvdXBzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQW1CM0YsTUFBTSxPQUFPLHVCQUF1QjtJQTJCbEMsWUFDVSxVQUF1QztRQUF2QyxlQUFVLEdBQVYsVUFBVSxDQUE2QjtRQXpCMUMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBYTFCLGdCQUFXLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFFL0QsbUJBQWMsR0FBb0IsRUFBRSxDQUFDO1FBRXJDLFdBQU0sR0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxDQUFDO0lBTTdELENBQUM7SUFyQkosSUFDVyxLQUFLLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFlSyxRQUFROztZQUNaLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUF1QixFQUFFLEVBQUU7Z0JBQ25FLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO2dCQUM3QixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVNLHlCQUF5QixDQUFDLGFBQTRCO1FBQzNELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxhQUFhLENBQUM7UUFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTyx5QkFBeUI7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUYsQ0FBQzs7O1lBaEVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsMEJBQTBCO2dCQUNwQyxRQUFRLEVBQUU7Ozs7Ozs7OztHQVNUOzthQUlGOzs7WUFsQk8sMkJBQTJCOzs7dUJBcUJoQyxLQUFLO3VCQUdMLEtBQUs7b0JBR0wsS0FBSzswQkFVTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tY29ubmVjdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQge0N1c3RvbWVyR3JvdXB9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jdXN0b21lci1ncm91cC5ibyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJyZWxhdGlvbi1jdXN0b21lci1ncm91cHNcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGNvLWxpc3Qtb2YtdmFsdWVzIFttb2RlbF09XCJzZWxlY3RlZEN1c3RvbWVyR3JvdXBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZUN1c3RvbWVyR3JvdXBDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwiY3VzdG9tZXJHcm91cHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5RmllbGRdPVwiJ25hYW0nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0NVU1RPTUVSX0dST1VQJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxyXG4gICAgPjwvY28tbGlzdC1vZi12YWx1ZXM+XHJcbiAgYCxcclxuICBzdHlsZVVybHM6IFtcclxuICAgICcuL3JlbGF0aW9uLWN1c3RvbWVyLWdyb3Vwcy5jb21wb25lbnQuc2NzcydcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21lckdyb3Vwc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBtb2RlbCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9tb2RlbCA9IHZhbHVlO1xyXG4gICAgdGhpcy5fc2V0U2VsZWN0ZWRDdXN0b21lckdyb3VwKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG1vZGVsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbW9kZWw7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgbW9kZWxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIHB1YmxpYyBjdXN0b21lckdyb3VwczogQ3VzdG9tZXJHcm91cFtdID0gW107XHJcbiAgcHVibGljIHNlbGVjdGVkQ3VzdG9tZXJHcm91cDogQ3VzdG9tZXJHcm91cDtcclxuICBwdWJsaWMgZmllbGRzOiBPYmplY3QgPSB7IHRleHQ6IFwibmFhbVwiLCB2YWx1ZTogXCJncm9lcHNudW1tZXJcIiB9O1xyXG5cclxuICBwcml2YXRlIF9tb2RlbDogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9jb25uZWN0b3I6IFRyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLl9jb25uZWN0b3IuZ2V0Q3VzdG9tZXJHcm91cHMoKS50aGVuKChncm91cHM6IEN1c3RvbWVyR3JvdXBbXSkgPT4ge1xyXG4gICAgICB0aGlzLmN1c3RvbWVyR3JvdXBzID0gZ3JvdXBzO1xyXG4gICAgICB0aGlzLl9zZXRTZWxlY3RlZEN1c3RvbWVyR3JvdXAoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUN1c3RvbWVyR3JvdXBDaGFuZ2UoY3VzdG9tZXJHcm91cDogQ3VzdG9tZXJHcm91cCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEN1c3RvbWVyR3JvdXAgPSBjdXN0b21lckdyb3VwO1xyXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRDdXN0b21lckdyb3VwLmdyb2Vwc251bW1lcik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZXRTZWxlY3RlZEN1c3RvbWVyR3JvdXAoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuY3VzdG9tZXJHcm91cHMpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZEN1c3RvbWVyR3JvdXAgPSB0aGlzLmN1c3RvbWVyR3JvdXBzLmZpbmQoYyA9PiBjLmdyb2Vwc251bW1lciA9PT0gdGhpcy5tb2RlbCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==