@colijnit/transaction 255.1.12 → 255.1.14

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 (46) hide show
  1. package/bundles/colijnit-transaction.umd.js +860 -650
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction-255.1.12.tgz +0 -0
  4. package/colijnit-transaction.d.ts +599 -596
  5. package/colijnit-transaction.metadata.json +1 -1
  6. package/esm2015/colijnit-transaction.js +600 -597
  7. package/esm2015/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +14 -3
  8. package/esm2015/lib/component/core/core.module.js +4 -1
  9. package/esm2015/lib/component/core/relation/customer-groups.component.js +10 -9
  10. package/esm2015/lib/component/core/relation/customer-languages.component.js +1 -1
  11. package/esm2015/lib/component/core/relation/customer-titles.component.js +69 -0
  12. package/esm2015/lib/component/relation/relation-general/relation-general.component.js +21 -21
  13. package/esm2015/lib/component/simple-vertical-stepper/co-simple-vertical-stepper.component.js +8 -3
  14. package/esm2015/lib/component/transaction-create-wizard/transaction-create-wizard.component.js +10 -3
  15. package/esm2015/lib/component/transaction-header/transaction-header-popup/transaction-header-popup-create-service.component.js +9 -1
  16. package/esm2015/lib/component/transaction-header/transaction-header-popup/transaction-header-popup-relation.component.js +22 -2
  17. package/esm2015/lib/component/transaction-service-overview/components/transaction-service-message.component.js +47 -0
  18. package/esm2015/lib/component/transaction-service-overview/components/transaction-service-message.module.js +24 -0
  19. package/esm2015/lib/component/transaction-service-overview/transaction-service-overview.component.js +4 -16
  20. package/esm2015/lib/component/transaction-service-overview/transaction-service-overview.module.js +4 -2
  21. package/esm2015/lib/enum/checkout-cfg-name.enum.js +2 -1
  22. package/esm2015/lib/enum/transaction-cfg-name.enum.js +2 -1
  23. package/esm2015/lib/service/transaction-base.service.js +2 -2
  24. package/esm2015/lib/service/transaction-connector-adapter.service.js +16 -3
  25. package/esm2015/lib/service/transaction-connector.service.js +9 -3
  26. package/esm2015/lib/transaction-version.js +3 -3
  27. package/fesm2015/colijnit-transaction.js +248 -60
  28. package/fesm2015/colijnit-transaction.js.map +1 -1
  29. package/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.d.ts +2 -0
  30. package/lib/component/checkout/style/_layout.scss +1 -1
  31. package/lib/component/core/relation/customer-titles.component.d.ts +25 -0
  32. package/lib/component/core/relation/relation-customer-groups.component.scss +1 -6
  33. package/lib/component/core/relation/relation-customer-languages.component.scss +0 -4
  34. package/lib/component/core/relation/relation-customer-titles.component.scss +2 -0
  35. package/lib/component/transaction-create-wizard/transaction-create-wizard.component.d.ts +1 -0
  36. package/lib/component/transaction-header/transaction-header-popup/transaction-header-popup-create-service.component.d.ts +1 -0
  37. package/lib/component/transaction-header/transaction-header-popup/transaction-header-popup-relation.component.d.ts +3 -0
  38. package/lib/component/transaction-service-overview/components/transaction-service-message.component.d.ts +7 -0
  39. package/lib/component/transaction-service-overview/components/transaction-service-message.module.d.ts +2 -0
  40. package/lib/component/transaction-service-overview/style/_layout.scss +4 -18
  41. package/lib/component/transaction-service-overview/transaction-service-overview.component.d.ts +3 -1
  42. package/lib/enum/checkout-cfg-name.enum.d.ts +1 -0
  43. package/lib/enum/transaction-cfg-name.enum.d.ts +1 -0
  44. package/lib/service/transaction-connector-adapter.service.d.ts +3 -1
  45. package/lib/service/transaction-connector.service.d.ts +3 -1
  46. package/package.json +3 -3
@@ -17,8 +17,13 @@ export class SimpleVerticalStepperComponent extends StepperBaseComponent {
17
17
  //Beware this method bypasses verification of steps! Please only use it if you are certain that is appropriate.
18
18
  openToIndex(idx) {
19
19
  let counter = 0;
20
- while (counter <= (idx - 1)) {
21
- this.stepChildren[counter].show = true;
20
+ while (counter < this.stepChildren.length) {
21
+ if (counter <= (idx - 1)) {
22
+ this.stepChildren[counter].show = true;
23
+ }
24
+ else {
25
+ this.stepChildren[counter].show = false;
26
+ }
22
27
  counter++;
23
28
  }
24
29
  if (this.doNotShowOKOnSteps.findIndex(n => n === this.stepChildren[idx - 1].index) >= 0) {
@@ -86,4 +91,4 @@ SimpleVerticalStepperComponent.propDecorators = {
86
91
  showClass: [{ type: HostBinding, args: ["class.co-simple-vertical-stepper",] }],
87
92
  doNotShowOKOnSteps: [{ type: Input }]
88
93
  };
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY28tc2ltcGxlLXZlcnRpY2FsLXN0ZXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvc2ltcGxlLXZlcnRpY2FsLXN0ZXBwZXIvY28tc2ltcGxlLXZlcnRpY2FsLXN0ZXBwZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFBRSxLQUFLLEVBQ2xCLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsOENBQThDLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUU1RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUd6RSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFvQzFDLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxvQkFBb0I7SUEzQnhFOztRQXFDUyxXQUFNLEdBQVksSUFBSSxDQUFDO1FBK0NYLFNBQUksR0FBRyxJQUFJLENBQUM7SUFDakMsQ0FBQztJQXZEUSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBT00saUJBQWlCO1FBQ3RCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCwrR0FBK0c7SUFDeEcsV0FBVyxDQUFFLEdBQVc7UUFDN0IsSUFBSSxPQUFPLEdBQVcsQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sT0FBTyxJQUFJLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUN2QyxPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNyRixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztTQUNyQjthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7U0FDcEI7UUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsR0FBQyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVTLG1CQUFtQixDQUFDLFFBQWlCO1FBQzdDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLFFBQWlCLEVBQUUsRUFBRTtZQUNwRSxJQUFJLFFBQVEsRUFBRTtnQkFDWixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN6RTtRQUNILENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6RCxDQUFDO0lBRVMsU0FBUyxDQUFFLEdBQVc7UUFDOUIsTUFBTSxRQUFRLEdBQXlCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLFNBQVMsRUFBRTtZQUNuQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7Z0JBQ3RCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDbkYsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7aUJBQ3JCO3FCQUFNO29CQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2lCQUNwQjthQUNGO1NBQ0Y7SUFDSCxDQUFDOzs7WUFsRkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw0QkFBNEI7Z0JBQ3RDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JUO2dCQUNELFNBQVMsRUFBRSxDQUFDO3dCQUNWLE9BQU8sRUFBRSw4Q0FBOEM7d0JBQ3ZELFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsOEJBQThCLENBQUM7cUJBQzlELENBQUM7Z0JBQ0YsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7Ozt3QkFHRSxXQUFXLFNBQUMsa0NBQWtDO2lDQUs5QyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgZm9yd2FyZFJlZixcclxuICBIb3N0QmluZGluZywgSW5wdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtTQ1JFRU5fQ09ORklHX0FEQVBURVJfQ09NUE9ORU5UX0lOVEVSRkFDRV9OQU1FfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtTdGVwcGVyU3RlcENvbXBvbmVudH0gZnJvbSBcIi4uL3N0ZXBwZXItc3RlcC9zdGVwcGVyLXN0ZXAuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7U3RlcHBlckJhc2VDb21wb25lbnR9IGZyb20gXCIuLi9jb3JlL2Jhc2Uvc3RlcHBlci1iYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1BhcmFtZXRlckNhY2hlRmllbGR9IGZyb20gXCIuLi8uLi9jYWNoZS9wYXJhbWV0ZXItY2FjaGUtZmllbGRcIjtcclxuaW1wb3J0IHtCdXNpbmVzc09iamVjdH0gZnJvbSBcIkBjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL2J1c2luZXNzLW9iamVjdFwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIHN0ZXBzIHtcclxuICBpbmRleDogbnVtYmVyO1xyXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgY29tcGxldGU6IGJvb2xlYW47XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXNpbXBsZS12ZXJ0aWNhbC1zdGVwcGVyXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPGRpdiBjbGFzcz1cInNpbXBsZS12ZXJ0aWNhbC1zdGVwcGVyLXRpdGxlXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2ltcGxlLXZlcnRpY2FsLXN0ZXBwZXItdGl0bGUtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwidGl0bGUtaWNvblwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24odGl0bGVJY29uKVwiID48L2NvLWljb24+IDwhLS1bc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5UaXRsZVwiIHNjcmVlbkNvbmZpZ05hdGl2ZUVsZW1lbnQtLT5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIiBbdGV4dENvbnRlbnRdPVwidGl0bGUgfCBsb2NhbGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2ltcGxlLXZlcnRpY2FsLXN0ZXBwZXItY29udGVudC13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJ1dHRvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjYnV0dG9uVGVtcGxhdGU+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXBwZXItYnV0dG9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJzYXZlLWJ1dHRvblwiICpuZ0lmPVwic2hvd09rXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DaGVja0R1b3RvbmUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNvbnRpbnVlUmVxdWVzdGVkKClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICBgLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgIHByb3ZpZGU6IFNDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUUsXHJcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTaW1wbGVWZXJ0aWNhbFN0ZXBwZXJDb21wb25lbnQpXHJcbiAgfV0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2ltcGxlVmVydGljYWxTdGVwcGVyQ29tcG9uZW50IGV4dGVuZHMgU3RlcHBlckJhc2VDb21wb25lbnQge1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby1zaW1wbGUtdmVydGljYWwtc3RlcHBlclwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGRvTm90U2hvd09LT25TdGVwczpudW1iZXJbXVxyXG5cclxuICBwdWJsaWMgc2hvd09rOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcHVibGljIGNvbnRpbnVlUmVxdWVzdGVkKCk6IHZvaWQge1xyXG4gICAgdGhpcy52YWxpZGF0ZUN1cnJlbnRTdGVwKCk7XHJcbiAgfVxyXG5cclxuICAvL0Jld2FyZSB0aGlzIG1ldGhvZCBieXBhc3NlcyB2ZXJpZmljYXRpb24gb2Ygc3RlcHMhIFBsZWFzZSBvbmx5IHVzZSBpdCBpZiB5b3UgYXJlIGNlcnRhaW4gdGhhdCBpcyBhcHByb3ByaWF0ZS5cclxuICBwdWJsaWMgb3BlblRvSW5kZXggKGlkeDogbnVtYmVyKSB7XHJcbiAgICBsZXQgY291bnRlcjogbnVtYmVyID0gMDtcclxuICAgIHdoaWxlIChjb3VudGVyIDw9IChpZHgtMSkpIHtcclxuICAgICAgdGhpcy5zdGVwQ2hpbGRyZW5bY291bnRlcl0uc2hvdyA9IHRydWU7XHJcbiAgICAgIGNvdW50ZXIrKztcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kb05vdFNob3dPS09uU3RlcHMuZmluZEluZGV4KG4gPT4gbiA9PT0gdGhpcy5zdGVwQ2hpbGRyZW5baWR4LTFdLmluZGV4KSA+PSAwKSB7XHJcbiAgICAgIHRoaXMuc2hvd09rID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNob3dPayA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hY3RpdmVTdGVwID0gaWR4LTE7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgdmFsaWRhdGVDdXJyZW50U3RlcChuZXh0U3RlcD86IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5zdGVwQ2hpbGRyZW5bdGhpcy5hY3RpdmVTdGVwXS5vbkNvbXBsZXRlID0gKGNvbXBsZXRlOiBib29sZWFuKSA9PiB7XHJcbiAgICAgIGlmIChjb21wbGV0ZSkge1xyXG4gICAgICAgIHRoaXMuc2V0QWN0aXZlKG5leHRTdGVwID09PSB1bmRlZmluZWQgPyB0aGlzLmFjdGl2ZVN0ZXAgKyAxIDogbmV4dFN0ZXApO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5zdGVwQ2hpbGRyZW5bdGhpcy5hY3RpdmVTdGVwXS52YWxpZGF0ZVN0ZXAubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHNldEFjdGl2ZSAoaWR4OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHByZXZTdGVwOiBTdGVwcGVyU3RlcENvbXBvbmVudCA9IHRoaXMuc3RlcENoaWxkcmVuW2lkeCAtIDFdO1xyXG4gICAgaWYgKCFwcmV2U3RlcCB8fCBwcmV2U3RlcC5jb21wbGV0ZWQpIHtcclxuICAgICAgaWYgKHRoaXMuc3RlcENoaWxkcmVuKSB7XHJcbiAgICAgICAgdGhpcy5zdGVwQ2hpbGRyZW5baWR4XS5zaG93ID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmFjdGl2ZVN0ZXAgPSBpZHg7XHJcbiAgICAgICAgaWYgKHRoaXMuZG9Ob3RTaG93T0tPblN0ZXBzLmZpbmRJbmRleChuID0+IG4gPT09IHRoaXMuc3RlcENoaWxkcmVuW2lkeF0uaW5kZXgpID49IDApIHtcclxuICAgICAgICAgIHRoaXMuc2hvd09rID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc2hvd09rID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCByZWFkb25seSBJY29uID0gSWNvbjtcclxufVxyXG4iXX0=
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY28tc2ltcGxlLXZlcnRpY2FsLXN0ZXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvc2ltcGxlLXZlcnRpY2FsLXN0ZXBwZXIvY28tc2ltcGxlLXZlcnRpY2FsLXN0ZXBwZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFBRSxLQUFLLEVBQ2xCLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsOENBQThDLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUU1RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUd6RSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFvQzFDLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxvQkFBb0I7SUEzQnhFOztRQXFDUyxXQUFNLEdBQVksSUFBSSxDQUFDO1FBbURYLFNBQUksR0FBRyxJQUFJLENBQUM7SUFDakMsQ0FBQztJQTNEUSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBT00saUJBQWlCO1FBQ3RCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCwrR0FBK0c7SUFDeEcsV0FBVyxDQUFFLEdBQVc7UUFDN0IsSUFBSSxPQUFPLEdBQVcsQ0FBQyxDQUFDO1FBQ3hCLE9BQVEsT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQzFDLElBQUcsT0FBTyxJQUFJLENBQUMsR0FBRyxHQUFDLENBQUMsQ0FBQyxFQUFDO2dCQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7YUFDeEM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO2FBQ3pDO1lBQ0QsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsR0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDckYsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7U0FDckI7YUFBTTtZQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ3BCO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLEdBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFUyxtQkFBbUIsQ0FBQyxRQUFpQjtRQUM3QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxRQUFpQixFQUFFLEVBQUU7WUFDcEUsSUFBSSxRQUFRLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDekU7UUFDSCxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekQsQ0FBQztJQUVTLFNBQVMsQ0FBRSxHQUFXO1FBQzlCLE1BQU0sUUFBUSxHQUF5QixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxTQUFTLEVBQUU7WUFDbkMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO2dCQUN0QixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ25GLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2lCQUNyQjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztpQkFDcEI7YUFDRjtTQUNGO0lBQ0gsQ0FBQzs7O1lBdEZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsNEJBQTRCO2dCQUN0QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCVDtnQkFDRCxTQUFTLEVBQUUsQ0FBQzt3QkFDVixPQUFPLEVBQUUsOENBQThDO3dCQUN2RCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDhCQUE4QixDQUFDO3FCQUM5RCxDQUFDO2dCQUNGLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7d0JBR0UsV0FBVyxTQUFDLGtDQUFrQztpQ0FLOUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSG9zdEJpbmRpbmcsIElucHV0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7U0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XHJcbmltcG9ydCB7U3RlcHBlclN0ZXBDb21wb25lbnR9IGZyb20gXCIuLi9zdGVwcGVyLXN0ZXAvc3RlcHBlci1zdGVwLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1N0ZXBwZXJCYXNlQ29tcG9uZW50fSBmcm9tIFwiLi4vY29yZS9iYXNlL3N0ZXBwZXItYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtQYXJhbWV0ZXJDYWNoZUZpZWxkfSBmcm9tIFwiLi4vLi4vY2FjaGUvcGFyYW1ldGVyLWNhY2hlLWZpZWxkXCI7XHJcbmltcG9ydCB7QnVzaW5lc3NPYmplY3R9IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9idXNpbmVzcy1vYmplY3RcIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ib1wiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBzdGVwcyB7XHJcbiAgaW5kZXg6IG51bWJlcjtcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gIGNvbXBsZXRlOiBib29sZWFuO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby1zaW1wbGUtdmVydGljYWwtc3RlcHBlclwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzaW1wbGUtdmVydGljYWwtc3RlcHBlci10aXRsZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNpbXBsZS12ZXJ0aWNhbC1zdGVwcGVyLXRpdGxlLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cInRpdGxlLWljb25cIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKHRpdGxlSWNvbilcIiA+PC9jby1pY29uPiA8IS0tW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuVGl0bGVcIiBzY3JlZW5Db25maWdOYXRpdmVFbGVtZW50LS0+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCIgW3RleHRDb250ZW50XT1cInRpdGxlIHwgbG9jYWxpemVcIj48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNpbXBsZS12ZXJ0aWNhbC1zdGVwcGVyLWNvbnRlbnQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJidXR0b25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2J1dHRvblRlbXBsYXRlPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGVwcGVyLWJ1dHRvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwic2F2ZS1idXR0b25cIiAqbmdJZj1cInNob3dPa1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ2hlY2tEdW90b25lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjb250aW51ZVJlcXVlc3RlZCgpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgYCxcclxuICBwcm92aWRlcnM6IFt7XHJcbiAgICBwcm92aWRlOiBTQ1JFRU5fQ09ORklHX0FEQVBURVJfQ09NUE9ORU5UX0lOVEVSRkFDRV9OQU1FLFxyXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2ltcGxlVmVydGljYWxTdGVwcGVyQ29tcG9uZW50KVxyXG4gIH1dLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpbXBsZVZlcnRpY2FsU3RlcHBlckNvbXBvbmVudCBleHRlbmRzIFN0ZXBwZXJCYXNlQ29tcG9uZW50IHtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tc2ltcGxlLXZlcnRpY2FsLXN0ZXBwZXJcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkb05vdFNob3dPS09uU3RlcHM6bnVtYmVyW11cclxuXHJcbiAgcHVibGljIHNob3dPazogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIHB1YmxpYyBjb250aW51ZVJlcXVlc3RlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsaWRhdGVDdXJyZW50U3RlcCgpO1xyXG4gIH1cclxuXHJcbiAgLy9CZXdhcmUgdGhpcyBtZXRob2QgYnlwYXNzZXMgdmVyaWZpY2F0aW9uIG9mIHN0ZXBzISBQbGVhc2Ugb25seSB1c2UgaXQgaWYgeW91IGFyZSBjZXJ0YWluIHRoYXQgaXMgYXBwcm9wcmlhdGUuXHJcbiAgcHVibGljIG9wZW5Ub0luZGV4IChpZHg6IG51bWJlcikge1xyXG4gICAgbGV0IGNvdW50ZXI6IG51bWJlciA9IDA7XHJcbiAgICB3aGlsZSAoIGNvdW50ZXIgPCB0aGlzLnN0ZXBDaGlsZHJlbi5sZW5ndGgpIHtcclxuICAgICAgaWYoY291bnRlciA8PSAoaWR4LTEpKXtcclxuICAgICAgICB0aGlzLnN0ZXBDaGlsZHJlbltjb3VudGVyXS5zaG93ID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnN0ZXBDaGlsZHJlbltjb3VudGVyXS5zaG93ID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgY291bnRlcisrO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmRvTm90U2hvd09LT25TdGVwcy5maW5kSW5kZXgobiA9PiBuID09PSB0aGlzLnN0ZXBDaGlsZHJlbltpZHgtMV0uaW5kZXgpID49IDApIHtcclxuICAgICAgdGhpcy5zaG93T2sgPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd09rID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFjdGl2ZVN0ZXAgPSBpZHgtMTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB2YWxpZGF0ZUN1cnJlbnRTdGVwKG5leHRTdGVwPzogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0ZXBDaGlsZHJlblt0aGlzLmFjdGl2ZVN0ZXBdLm9uQ29tcGxldGUgPSAoY29tcGxldGU6IGJvb2xlYW4pID0+IHtcclxuICAgICAgaWYgKGNvbXBsZXRlKSB7XHJcbiAgICAgICAgdGhpcy5zZXRBY3RpdmUobmV4dFN0ZXAgPT09IHVuZGVmaW5lZCA/IHRoaXMuYWN0aXZlU3RlcCArIDEgOiBuZXh0U3RlcCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLnN0ZXBDaGlsZHJlblt0aGlzLmFjdGl2ZVN0ZXBdLnZhbGlkYXRlU3RlcC5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgc2V0QWN0aXZlIChpZHg6IG51bWJlcikge1xyXG4gICAgY29uc3QgcHJldlN0ZXA6IFN0ZXBwZXJTdGVwQ29tcG9uZW50ID0gdGhpcy5zdGVwQ2hpbGRyZW5baWR4IC0gMV07XHJcbiAgICBpZiAoIXByZXZTdGVwIHx8IHByZXZTdGVwLmNvbXBsZXRlZCkge1xyXG4gICAgICBpZiAodGhpcy5zdGVwQ2hpbGRyZW4pIHtcclxuICAgICAgICB0aGlzLnN0ZXBDaGlsZHJlbltpZHhdLnNob3cgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuYWN0aXZlU3RlcCA9IGlkeDtcclxuICAgICAgICBpZiAodGhpcy5kb05vdFNob3dPS09uU3RlcHMuZmluZEluZGV4KG4gPT4gbiA9PT0gdGhpcy5zdGVwQ2hpbGRyZW5baWR4XS5pbmRleCkgPj0gMCkge1xyXG4gICAgICAgICAgdGhpcy5zaG93T2sgPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zaG93T2sgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IEljb24gPSBJY29uO1xyXG59XHJcbiJdfQ==
@@ -3,6 +3,7 @@ import { Component, EventEmitter, HostBinding, Input, Output, ViewChild, ViewEnc
3
3
  import { TransactionKind } from '@colijnit/transactionapi/build/enum/transaction-kind.enum';
4
4
  import { TransactionScreenConfigurationService } from "../../service/transaction-screen-configuration.service";
5
5
  import { TransactionCreateService } from "../../service/transaction-create.service";
6
+ import { TransactionInfoResponse } from "@colijnit/transactionapi/build/model/transaction-info-response.bo";
6
7
  import { TransactionRelationService } from "../../service/transaction-relation.service";
7
8
  import { Icon } from "../../enum/icon.enum";
8
9
  export class TransactionCreateWizardComponent {
@@ -99,6 +100,12 @@ export class TransactionCreateWizardComponent {
99
100
  this.stepper.continueRequested();
100
101
  });
101
102
  }
103
+ resetWizard() {
104
+ this.createService.createNewRelation();
105
+ this.createService.currentTransaction = new TransactionInfoResponse();
106
+ this.transactionSection.clear();
107
+ this.stepper.openToIndex(1);
108
+ }
102
109
  _validateForArticleTransaction() {
103
110
  return __awaiter(this, void 0, void 0, function* () {
104
111
  let valid = false;
@@ -139,9 +146,9 @@ TransactionCreateWizardComponent.decorators = [
139
146
  <co-transaction-header-popup-relation #relationSection
140
147
  *ngIf="stepRelationSection.show"
141
148
  class="category-content"
142
- [(relation)]="createService.relation"
149
+ [(relation)]="createService.relation" (changeCustomerRequested)="resetWizard()"
143
150
  [forceReadonly]="(createService.currentTransaction.transactionInfo.uuid !== undefined)"
144
- [showInvoiceAddress]="false" [showPrivacy]="false"
151
+ [showInvoiceAddress]="false" [showPrivacy]="false" [showMessageForChangeCustomer]="true"
145
152
  ></co-transaction-header-popup-relation>
146
153
  </co-stepper-step>
147
154
  <co-stepper-step #stepTransactionSection [index]="2" [label]="'HOW_TO_CREATE_SERVICE' | localize" (validateStep)="handleTransactionValidation()">
@@ -183,4 +190,4 @@ TransactionCreateWizardComponent.propDecorators = {
183
190
  transactionFinished: [{ type: Output }],
184
191
  showClass: [{ type: HostBinding, args: ["class.co-transaction-create-wizard",] }]
185
192
  };
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tY3JlYXRlLXdpemFyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1jcmVhdGUtd2l6YXJkL3RyYW5zYWN0aW9uLWNyZWF0ZS13aXphcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBSzFGLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQzdHLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBWWxGLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBSXRGLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQWtDMUMsTUFBTSxPQUFPLGdDQUFnQztJQXlEM0MsWUFBbUIsYUFBdUMsRUFDdkMsZUFBMkMsRUFDM0MscUNBQTRFO1FBRjVFLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUN2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBNEI7UUFDM0MsMENBQXFDLEdBQXJDLHFDQUFxQyxDQUF1QztRQTFEL0UsY0FBUyxHQUEyQixlQUFlLENBQUM7UUFDcEQsU0FBSSxHQUFnQixJQUFJLENBQUM7UUE4QmxDLG9CQUFlLEdBQW9CLGVBQWUsQ0FBQyxVQUFVLENBQUM7UUFlOUQsd0JBQW1CLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFPdEUsbUNBQThCLEdBQTRCLElBQUksQ0FBQztJQVF2RSxDQUFDO0lBNUJELElBQ1cs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QWMsR0FBRyxLQUFLLENBQUM7Z0JBRS9DLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQ0FBcUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZNLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzdCO1FBQ0gsQ0FBQztLQUFBOzs7WUF6TEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw4QkFBOEI7Z0JBQ3hDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCVDtnQkFDRCxTQUFTLEVBQUMsQ0FBQyx3QkFBd0IsQ0FBQztnQkFDcEMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQWpETyx3QkFBd0I7WUFZeEIsMEJBQTBCO1lBYjFCLHFDQUFxQzs7O3NCQXVEMUMsU0FBUyxTQUFDLFNBQVM7a0NBR25CLFNBQVMsU0FBQyxxQkFBcUI7OEJBRy9CLFNBQVMsU0FBQyxpQkFBaUI7cUNBRzNCLFNBQVMsU0FBQyx3QkFBd0I7aUNBR2xDLFNBQVMsU0FBQyxvQkFBb0I7Z0NBRzlCLFNBQVMsU0FBQyxtQkFBbUI7NEJBRzdCLFNBQVMsU0FBQyxlQUFlO3VDQUd6QixTQUFTLFNBQUMsMEJBQTBCO21DQUdwQyxTQUFTLFNBQUMsc0JBQXNCOzhCQUdoQyxLQUFLOzRDQUdMLEtBQUs7dUNBTUwsS0FBSztrQ0FNTCxNQUFNO3dCQUdOLFdBQVcsU0FBQyxvQ0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbktpbmR9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWtpbmQuZW51bSc7XHJcbmltcG9ydCB7UmVsYXRpb25LaW5kfSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvZW51bS9yZWxhdGlvbi1raW5kLmVudW0nO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uSGVhZGVyUG9wdXBSZWxhdGlvbkNvbXBvbmVudFxyXG59IGZyb20gXCIuLi90cmFuc2FjdGlvbi1oZWFkZXIvdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwL3RyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1yZWxhdGlvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25DcmVhdGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1jcmVhdGUuc2VydmljZVwiO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uSGVhZGVyUG9wdXBDcmVhdGVTZXJ2aWNlQ29tcG9uZW50XHJcbn0gZnJvbSBcIi4uL3RyYW5zYWN0aW9uLWhlYWRlci90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAvdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLWNyZWF0ZS1zZXJ2aWNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uSGVhZGVyUG9wdXBTZXJ2aWNlV2l6YXJkQ29tcG9uZW50XHJcbn0gZnJvbSBcIi4uL3RyYW5zYWN0aW9uLWhlYWRlci90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAvdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXNlcnZpY2Utd2l6YXJkLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uSGVhZGVyUG9wdXBTZXJ2aWNlRmllbGRzQ29tcG9uZW50XHJcbn0gZnJvbSBcIi4uL3RyYW5zYWN0aW9uLWhlYWRlci90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAvdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXNlcnZpY2UtZmllbGRzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1N0ZXBwZXJTdGVwQ29tcG9uZW50fSBmcm9tIFwiLi4vc3RlcHBlci1zdGVwL3N0ZXBwZXItc3RlcC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25SZWxhdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXJlbGF0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTaW1wbGVWZXJ0aWNhbFN0ZXBwZXJDb21wb25lbnR9IGZyb20gXCIuLi9zaW1wbGUtdmVydGljYWwtc3RlcHBlci9jby1zaW1wbGUtdmVydGljYWwtc3RlcHBlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtSZWxhdGlvbn0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi5ib1wiO1xyXG5pbXBvcnQge0FkZHJlc3N9IGZyb20gXCJAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvYWRkcmVzcy5ib1wiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge1FhUmVzdWx0fSBmcm9tIFwiLi4vc2VydmljZS13aXphcmQtcWEvcXVlc3Rpb24tYW5zd2VyLWl0ZW0vcXVlc3Rpb24tYW5zd2VyLWl0ZW0uY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby10cmFuc2FjdGlvbi1jcmVhdGUtd2l6YXJkXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxjby1jbGljay1ibG9jaz48L2NvLWNsaWNrLWJsb2NrPlxyXG4gICAgPGNvLXNpbXBsZS12ZXJ0aWNhbC1zdGVwcGVyICNzdGVwcGVyIFt0aXRsZUljb25dPVwiSWNvbi5TZXJ2aWNlQ2FydFJlZ3VsYXJcIiBbdGl0bGVdPVwiJ0NSRUFURV9TRVJWSUNFJyB8IGxvY2FsaXplXCIgW2RvTm90U2hvd09LT25TdGVwc109XCJbM11cIj5cclxuICAgICAgPGNvLXN0ZXBwZXItc3RlcCAjc3RlcFJlbGF0aW9uU2VjdGlvbiBbaW5kZXhdPVwiMVwiIFtsYWJlbF09XCInUEVSU09OQUxfREFUQScgfCBsb2NhbGl6ZVwiICh2YWxpZGF0ZVN0ZXApPVwiaGFuZGxlUmVsYXRpb25WYWxpZGF0aW9uKClcIj5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXJlbGF0aW9uICNyZWxhdGlvblNlY3Rpb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic3RlcFJlbGF0aW9uU2VjdGlvbi5zaG93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2F0ZWdvcnktY29udGVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKHJlbGF0aW9uKV09XCJjcmVhdGVTZXJ2aWNlLnJlbGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JjZVJlYWRvbmx5XT1cIihjcmVhdGVTZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZCAhPT0gdW5kZWZpbmVkKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0ludm9pY2VBZGRyZXNzXT1cImZhbHNlXCIgW3Nob3dQcml2YWN5XT1cImZhbHNlXCJcclxuICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtcmVsYXRpb24+XHJcbiAgICAgIDwvY28tc3RlcHBlci1zdGVwPlxyXG4gICAgICA8Y28tc3RlcHBlci1zdGVwICAjc3RlcFRyYW5zYWN0aW9uU2VjdGlvbiBbaW5kZXhdPVwiMlwiIFtsYWJlbF09XCInSE9XX1RPX0NSRUFURV9TRVJWSUNFJyB8IGxvY2FsaXplXCIgKHZhbGlkYXRlU3RlcCk9XCJoYW5kbGVUcmFuc2FjdGlvblZhbGlkYXRpb24oKVwiPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtY3JlYXRlLXNlcnZpY2UgI3RyYW5zYWN0aW9uU2VjdGlvbiBbcmVsYXRpb25dPVwiY3JlYXRlU2VydmljZS5yZWxhdGlvblwiIFtmb3JjZVJlYWRvbmx5XT1cIihjcmVhdGVTZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZCAhPT0gdW5kZWZpbmVkKVwiPjwvY28tdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLWNyZWF0ZS1zZXJ2aWNlPlxyXG4gICAgICA8L2NvLXN0ZXBwZXItc3RlcD5cclxuICAgICAgPGNvLXN0ZXBwZXItc3RlcCAgI3N0ZXBXaXphcmRTZWN0aW9uIFtpbmRleF09XCIzXCIgW2xhYmVsXT1cIidTRVJWSUNFX1dJWkFSRCcgfCBsb2NhbGl6ZVwiICh2YWxpZGF0ZVN0ZXApPVwiaGFuZGxlV2l6YXJkVmFsaWRhdGlvbigpXCI+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1zZXJ2aWNlLXdpemFyZCAjd2l6YXJkU2VjdGlvbiAod2l6YXJkRmluaXNoZWQpPVwid2l6YXJkRmluaXNoZWQoKVwiPjwvY28tdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXNlcnZpY2Utd2l6YXJkPlxyXG4gICAgICA8L2NvLXN0ZXBwZXItc3RlcD5cclxuICAgICAgPGNvLXN0ZXBwZXItc3RlcCAgI3N0ZXBTZXJ2aWNlRmllbGRzU2VjdGlvbiBbaW5kZXhdPVwiNFwiIFtsYWJlbF09XCInU0VSVklDRV9JTkZPJyB8IGxvY2FsaXplXCIgKHZhbGlkYXRlU3RlcCk9XCJoYW5kbGVTZXJ2aWNlSW5mb1ZhbGlkYXRpb24oKVwiPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtc2VydmljZS1maWVsZHMgI3NlcnZpY2VGaWVsZHNTZWN0aW9uPjwvY28tdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXNlcnZpY2UtZmllbGRzPlxyXG4gICAgICA8L2NvLXN0ZXBwZXItc3RlcD5cclxuICAgICAgPGNvLXN0ZXBwZXItc3RlcCAgW2luZGV4XT1cIjVcIiBbbGFiZWxdPVwiJ0ZJTklTSCcgfCBsb2NhbGl6ZVwiPlxyXG4gICAgICA8L2NvLXN0ZXBwZXItc3RlcD5cclxuICAgIDwvY28tc2ltcGxlLXZlcnRpY2FsLXN0ZXBwZXI+XHJcblxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOltUcmFuc2FjdGlvbkNyZWF0ZVNlcnZpY2VdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQ3JlYXRlV2l6YXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgdHJhbnNLaW5kOiB0eXBlb2YgVHJhbnNhY3Rpb25LaW5kID0gVHJhbnNhY3Rpb25LaW5kO1xyXG4gIHB1YmxpYyByZWFkb25seSBJY29uOiB0eXBlb2YgSWNvbiA9IEljb247XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJzdGVwcGVyXCIpXHJcbiAgcHVibGljIHN0ZXBwZXI6IFNpbXBsZVZlcnRpY2FsU3RlcHBlckNvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBSZWxhdGlvblNlY3Rpb25cIilcclxuICBwdWJsaWMgc3RlcFJlbGF0aW9uU2VjdGlvbjogU3RlcHBlclN0ZXBDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJyZWxhdGlvblNlY3Rpb25cIilcclxuICBwdWJsaWMgcmVsYXRpb25TZWN0aW9uOiBUcmFuc2FjdGlvbkhlYWRlclBvcHVwUmVsYXRpb25Db21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJzdGVwVHJhbnNhY3Rpb25TZWN0aW9uXCIpXHJcbiAgcHVibGljIHN0ZXBUcmFuc2FjdGlvblNlY3Rpb246IFN0ZXBwZXJTdGVwQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwidHJhbnNhY3Rpb25TZWN0aW9uXCIpXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uU2VjdGlvbjogVHJhbnNhY3Rpb25IZWFkZXJQb3B1cENyZWF0ZVNlcnZpY2VDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJzdGVwV2l6YXJkU2VjdGlvblwiKVxyXG4gIHB1YmxpYyBzdGVwV2l6YXJkU2VjdGlvbjogU3RlcHBlclN0ZXBDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJ3aXphcmRTZWN0aW9uXCIpXHJcbiAgcHVibGljIHdpemFyZFNlY3Rpb246IFRyYW5zYWN0aW9uSGVhZGVyUG9wdXBTZXJ2aWNlV2l6YXJkQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwic3RlcFNlcnZpY2VGaWVsZHNTZWN0aW9uXCIpXHJcbiAgcHVibGljIHN0ZXBTZXJ2aWNlRmllbGRzU2VjdGlvbjogU3RlcHBlclN0ZXBDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJzZXJ2aWNlRmllbGRzU2VjdGlvblwiKVxyXG4gIHB1YmxpYyBzZXJ2aWNlRmllbGRzU2VjdGlvbjogVHJhbnNhY3Rpb25IZWFkZXJQb3B1cFNlcnZpY2VGaWVsZHNDb21wb25lbnQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25LaW5kID0gVHJhbnNhY3Rpb25LaW5kLlNhbGVzT3JkZXI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBleHRlcm5hbGx5UHJvdmlkZWRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpXHJcbiAge1xyXG4gICAgdGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkVHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBleHRlcm5hbGx5UHJvdmlkZWRMaW5lTnIobGluZU5yOiBudW1iZXIpXHJcbiAge1xyXG4gICAgdGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkTGluZU5yID0gbGluZU5yO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uRmluaXNoZWQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXRyYW5zYWN0aW9uLWNyZWF0ZS13aXphcmRcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9leHRlcm5hbGx5UHJvdmlkZWRUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UgPSBudWxsO1xyXG4gIHByaXZhdGUgX2V4dGVybmFsbHlQcm92aWRlZExpbmVOcjogbnVtYmVyO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgY3JlYXRlU2VydmljZTogVHJhbnNhY3Rpb25DcmVhdGVTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHB1YmxpYyByZWxhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uUmVsYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHB1YmxpYyB0cmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG5cclxuICApIHtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgYXdhaXQgdGhpcy50cmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmxvYWRDb25maWcoWydTJ10pXHJcbiAgICB0aGlzLmNyZWF0ZVNlcnZpY2UudHJhbnNhY3Rpb25LaW5kID0gdGhpcy50cmFuc2FjdGlvblR5cGU7XHJcbiAgICB0aGlzLmNyZWF0ZVNlcnZpY2UuY3JlYXRlTmV3UmVsYXRpb24oKTtcclxuICAgIHRoaXMuX3Byb2Nlc3NFeHRlcm5hbFRyYW5zYWN0aW9uTGluZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZVJlbGF0aW9uVmFsaWRhdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGxldCB2YWxpZDogYm9vbGVhbiA9IHRoaXMucmVsYXRpb25TZWN0aW9uLnN1Ym1pdCgpO1xyXG4gICAgaWYgKHZhbGlkKSB7XHJcbiAgICAgIHRoaXMuc3RlcFJlbGF0aW9uU2VjdGlvbi5jb21wbGV0ZWQgPSBhd2FpdCB0aGlzLmNyZWF0ZVNlcnZpY2Uuc2F2ZVJlbGF0aW9uKHRydWUsIGZhbHNlKTtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWxpZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVUcmFuc2FjdGlvblZhbGlkYXRpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBsZXQgdmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlmKCF0aGlzLmNyZWF0ZVNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby51dWlkKSB7XHJcbiAgICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5jcmVhdGVWaWFUcmFuc0xpbmUpIHtcclxuICAgICAgICBpZih0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5leGlzdGluZ1RyYW5zYWN0aW9uKSB7XHJcbiAgICAgICAgICB0aGlzLnN0ZXBUcmFuc2FjdGlvblNlY3Rpb24uY29tcGxldGVkID0gYXdhaXQgdGhpcy5jcmVhdGVTZXJ2aWNlLmNyZWF0ZVNlcnZpY2VPcmRlcldpdGhUcmFuc2FjdGlvbkxpbmUoTnVtYmVyKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmV4aXN0aW5nVHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkKSwgTnVtYmVyKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmV4aXN0aW5nVHJhbnNhY3Rpb25MaW5lLmxpbmVOcikpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50cmFuc2FjdGlvblNlY3Rpb24uY2hvc2VuVHJhbnNhY3Rpb25MaW5lKSB7XHJcbiAgICAgICAgICB0aGlzLnN0ZXBUcmFuc2FjdGlvblNlY3Rpb24uY29tcGxldGVkID0gYXdhaXQgdGhpcy5jcmVhdGVTZXJ2aWNlLmNyZWF0ZVNlcnZpY2VPcmRlcldpdGhUcmFuc2FjdGlvbkxpbmUodGhpcy50cmFuc2FjdGlvblNlY3Rpb24uY2hvc2VuVHJhbnNhY3Rpb25MaW5lLnRyYW5zYWN0aW9uSWQsIHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmNob3NlblRyYW5zYWN0aW9uTGluZS5saW5lTnVtYmVyKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50cmFuc2FjdGlvblNlY3Rpb24uY3JlYXRlVmlhUHJvZHVjdCkgIHtcclxuICAgICAgICB2YWxpZCA9IGF3YWl0IHRoaXMuX3ZhbGlkYXRlRm9yQXJ0aWNsZVRyYW5zYWN0aW9uKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50cmFuc2FjdGlvblNlY3Rpb24uY3JlYXRlVmlhT2xkVHJhbnMpIHtcclxuICAgICAgICB0aGlzLnN0ZXBUcmFuc2FjdGlvblNlY3Rpb24uY29tcGxldGVkID0gIGF3YWl0IHRoaXMuY3JlYXRlU2VydmljZS5jcmVhdGVTZXJ2aWNlT3JkZXJXaXRoU291cmNlT3JkZXJOckFuZEFydGljbGVEZXNjcmlwdGlvbih0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5vbGRPcmRlcklkLCB0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5vbGRHb29kSWQpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YWxpZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuc3RlcFRyYW5zYWN0aW9uU2VjdGlvbi5jb21wbGV0ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbGlkXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlV2l6YXJkVmFsaWRhdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGxldCB2YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMud2l6YXJkU2VjdGlvbi5nZXRRdWFSZXN1bHQoKS5sZW5ndGggIT0gMCkge1xyXG4gICAgICB2YWxpZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuc3RlcFdpemFyZFNlY3Rpb24uY29tcGxldGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWxpZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVTZXJ2aWNlSW5mb1ZhbGlkYXRpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICAvL1RPRE8gYWRkIHByb3BlciB2YWxpZGF0aW9uIGhlcmUgc2hvdWxkIHRoYXQgYmUgbmVjZXNzYXJ5XHJcbiAgICBsZXQgdmFsaWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgaWYodmFsaWQgJiYgdGhpcy5jcmVhdGVTZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZCkge1xyXG4gICAgICB0aGlzLnN0ZXBTZXJ2aWNlRmllbGRzU2VjdGlvbi5jb21wbGV0ZWQgPSBhd2FpdCB0aGlzLmNyZWF0ZVNlcnZpY2UudXBkYXRlU2VydmljZUhlYWRlclJlcG9ydE1lc3NhZ2UodGhpcy5zZXJ2aWNlRmllbGRzU2VjdGlvbi5zZXJ2aWNlTWVzc2FnZSwgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLmNyZWF0ZVNlcnZpY2Uuc2F2ZVRyYW5zYWN0aW9uKCk7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uRmluaXNoZWQubmV4dCh0aGlzLmNyZWF0ZVNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbk5yKTtcclxuICAgIHJldHVybiB2YWxpZDtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgYXN5bmMgd2l6YXJkRmluaXNoZWQoKTogIFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IHFhUmVzdWx0OiBRYVJlc3VsdFtdID0gdGhpcy53aXphcmRTZWN0aW9uLmdldFF1YVJlc3VsdCgpO1xyXG4gICAgaWYgKHFhUmVzdWx0ICYmIHFhUmVzdWx0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgYXdhaXQgdGhpcy5jcmVhdGVTZXJ2aWNlLnVwZGF0ZVNlcnZpY2VIZWFkZXJDYXVzZUNvZGUocWFSZXN1bHRbMF0uY2F1c2VDb2RlLCB0cnVlKTtcclxuICAgIH1cclxuICAgIHRoaXMuc3RlcHBlci5jb250aW51ZVJlcXVlc3RlZCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfdmFsaWRhdGVGb3JBcnRpY2xlVHJhbnNhY3Rpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBsZXQgdmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5jaG9zZW5BcnRpY2xlKSB7XHJcbiAgICAgIHZhbGlkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zdGVwVHJhbnNhY3Rpb25TZWN0aW9uLmNvbXBsZXRlZCA9IGF3YWl0IHRoaXMuY3JlYXRlU2VydmljZS5jcmVhdGVTZXJ2aWNlT3JkZXJXaXRoU291cmNlR29vZCh0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5jaG9zZW5BcnRpY2xlLmdvb2RJZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YWxpZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnN0ZXBUcmFuc2FjdGlvblNlY3Rpb24uY29tcGxldGVkXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLnNob3dDYXRhbG9nUG9wdXAgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbGlkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfcHJvY2Vzc0V4dGVybmFsVHJhbnNhY3Rpb25MaW5lKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYodGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkVHJhbnNhY3Rpb24gJiYgIWlzTmFOKHRoaXMuX2V4dGVybmFsbHlQcm92aWRlZExpbmVOcikpIHtcclxuICAgICAgLy9mZXRjaCByZWxhdGlvbiBhbmQgY3JlYXRlIG5lZWRlZCB0cmFuc2FjdGlvbiBmaXJzdC5cclxuICAgICAgdGhpcy5jcmVhdGVTZXJ2aWNlLnJlbGF0aW9uID0gYXdhaXQgdGhpcy5yZWxhdGlvblNlcnZpY2UuZ2V0Q3VzdG9tZXJGdWxsT2JqZWN0KHBhcnNlSW50KHRoaXMuX2V4dGVybmFsbHlQcm92aWRlZFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5yZWxhdGlvbi5yZWxhdGlvbk5yKSk7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmV4aXN0aW5nVHJhbnNhY3Rpb24gPSAgdGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkVHJhbnNhY3Rpb247XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmV4aXN0aW5nVHJhbnNhY3Rpb25MaW5lID0gIHRoaXMuX2V4dGVybmFsbHlQcm92aWRlZFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTGluZXMuZmluZChsID0+IGwubGluZU5yID09PSB0aGlzLl9leHRlcm5hbGx5UHJvdmlkZWRMaW5lTnIpO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5jcmVhdGVPcmRlcldpdGhUcmFuc2FjdGlvbkxpbmVDbGlja2VkKGZhbHNlKTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlY3Rpb24uYnV0dG9uc1Zpc2libGUgPSBmYWxzZTtcclxuXHJcbiAgICAgIGF3YWl0IHRoaXMuY3JlYXRlU2VydmljZS5jcmVhdGVTZXJ2aWNlT3JkZXJXaXRoVHJhbnNhY3Rpb25MaW5lKE51bWJlcih0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5leGlzdGluZ1RyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZCksIE51bWJlcih0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5leGlzdGluZ1RyYW5zYWN0aW9uTGluZS5saW5lTnIpKTtcclxuICAgICAgdGhpcy5zdGVwcGVyLm9wZW5Ub0luZGV4KDMpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tY3JlYXRlLXdpemFyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1jcmVhdGUtd2l6YXJkL3RyYW5zYWN0aW9uLWNyZWF0ZS13aXphcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBSzFGLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBQzdHLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBV2xGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLG1FQUFtRSxDQUFDO0FBQzFHLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBSXRGLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQWtDMUMsTUFBTSxPQUFPLGdDQUFnQztJQXlEM0MsWUFBbUIsYUFBdUMsRUFDdkMsZUFBMkMsRUFDM0MscUNBQTRFO1FBRjVFLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUN2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBNEI7UUFDM0MsMENBQXFDLEdBQXJDLHFDQUFxQyxDQUF1QztRQTFEL0UsY0FBUyxHQUEyQixlQUFlLENBQUM7UUFDcEQsU0FBSSxHQUFnQixJQUFJLENBQUM7UUE4QmxDLG9CQUFlLEdBQW9CLGVBQWUsQ0FBQyxVQUFVLENBQUM7UUFlOUQsd0JBQW1CLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFPdEUs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dUNBR3pCLFNBQVMsU0FBQywwQkFBMEI7bUNBR3BDLFNBQVMsU0FBQyxzQkFBc0I7OEJBR2hDLEtBQUs7NENBR0wsS0FBSzt1Q0FNTCxLQUFLO2tDQU1MLE1BQU07d0JBR04sV0FBVyxTQUFDLG9DQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtSZWxhdGlvbktpbmR9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9lbnVtL3JlbGF0aW9uLWtpbmQuZW51bSc7XHJcbmltcG9ydCB7XHJcbiAgVHJhbnNhY3Rpb25IZWFkZXJQb3B1cFJlbGF0aW9uQ29tcG9uZW50XHJcbn0gZnJvbSBcIi4uL3RyYW5zYWN0aW9uLWhlYWRlci90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAvdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXJlbGF0aW9uLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNjcmVlbi1jb25maWd1cmF0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkNyZWF0ZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWNyZWF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7XHJcbiAgVHJhbnNhY3Rpb25IZWFkZXJQb3B1cENyZWF0ZVNlcnZpY2VDb21wb25lbnRcclxufSBmcm9tIFwiLi4vdHJhbnNhY3Rpb24taGVhZGVyL3RyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtY3JlYXRlLXNlcnZpY2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7XHJcbiAgVHJhbnNhY3Rpb25IZWFkZXJQb3B1cFNlcnZpY2VXaXphcmRDb21wb25lbnRcclxufSBmcm9tIFwiLi4vdHJhbnNhY3Rpb24taGVhZGVyL3RyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtc2VydmljZS13aXphcmQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7XHJcbiAgVHJhbnNhY3Rpb25IZWFkZXJQb3B1cFNlcnZpY2VGaWVsZHNDb21wb25lbnRcclxufSBmcm9tIFwiLi4vdHJhbnNhY3Rpb24taGVhZGVyL3RyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtc2VydmljZS1maWVsZHMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7U3RlcHBlclN0ZXBDb21wb25lbnR9IGZyb20gXCIuLi9zdGVwcGVyLXN0ZXAvc3RlcHBlci1zdGVwLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8tcmVzcG9uc2UuYm9cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblJlbGF0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tcmVsYXRpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge1NpbXBsZVZlcnRpY2FsU3RlcHBlckNvbXBvbmVudH0gZnJvbSBcIi4uL3NpbXBsZS12ZXJ0aWNhbC1zdGVwcGVyL2NvLXNpbXBsZS12ZXJ0aWNhbC1zdGVwcGVyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1JlbGF0aW9ufSBmcm9tIFwiQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLmJvXCI7XHJcbmltcG9ydCB7QWRkcmVzc30gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9hZGRyZXNzLmJvXCI7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uLy4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7UWFSZXN1bHR9IGZyb20gXCIuLi9zZXJ2aWNlLXdpemFyZC1xYS9xdWVzdGlvbi1hbnN3ZXItaXRlbS9xdWVzdGlvbi1hbnN3ZXItaXRlbS5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXRyYW5zYWN0aW9uLWNyZWF0ZS13aXphcmRcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGNvLWNsaWNrLWJsb2NrPjwvY28tY2xpY2stYmxvY2s+XHJcbiAgICA8Y28tc2ltcGxlLXZlcnRpY2FsLXN0ZXBwZXIgI3N0ZXBwZXIgW3RpdGxlSWNvbl09XCJJY29uLlNlcnZpY2VDYXJ0UmVndWxhclwiIFt0aXRsZV09XCInQ1JFQVRFX1NFUlZJQ0UnIHwgbG9jYWxpemVcIiBbZG9Ob3RTaG93T0tPblN0ZXBzXT1cIlszXVwiPlxyXG4gICAgICA8Y28tc3RlcHBlci1zdGVwICNzdGVwUmVsYXRpb25TZWN0aW9uIFtpbmRleF09XCIxXCIgW2xhYmVsXT1cIidQRVJTT05BTF9EQVRBJyB8IGxvY2FsaXplXCIgKHZhbGlkYXRlU3RlcCk9XCJoYW5kbGVSZWxhdGlvblZhbGlkYXRpb24oKVwiPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtcmVsYXRpb24gI3JlbGF0aW9uU2VjdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzdGVwUmVsYXRpb25TZWN0aW9uLnNob3dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYXRlZ29yeS1jb250ZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocmVsYXRpb24pXT1cImNyZWF0ZVNlcnZpY2UucmVsYXRpb25cIiAoY2hhbmdlQ3VzdG9tZXJSZXF1ZXN0ZWQpPVwicmVzZXRXaXphcmQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9yY2VSZWFkb25seV09XCIoY3JlYXRlU2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWQgIT09IHVuZGVmaW5lZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dJbnZvaWNlQWRkcmVzc109XCJmYWxzZVwiIFtzaG93UHJpdmFjeV09XCJmYWxzZVwiIFtzaG93TWVzc2FnZUZvckNoYW5nZUN1c3RvbWVyXT1cInRydWVcIlxyXG4gICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1yZWxhdGlvbj5cclxuICAgICAgPC9jby1zdGVwcGVyLXN0ZXA+XHJcbiAgICAgIDxjby1zdGVwcGVyLXN0ZXAgICNzdGVwVHJhbnNhY3Rpb25TZWN0aW9uIFtpbmRleF09XCIyXCIgW2xhYmVsXT1cIidIT1dfVE9fQ1JFQVRFX1NFUlZJQ0UnIHwgbG9jYWxpemVcIiAodmFsaWRhdGVTdGVwKT1cImhhbmRsZVRyYW5zYWN0aW9uVmFsaWRhdGlvbigpXCI+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1jcmVhdGUtc2VydmljZSAjdHJhbnNhY3Rpb25TZWN0aW9uIFtyZWxhdGlvbl09XCJjcmVhdGVTZXJ2aWNlLnJlbGF0aW9uXCIgW2ZvcmNlUmVhZG9ubHldPVwiKGNyZWF0ZVNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby51dWlkICE9PSB1bmRlZmluZWQpXCI+PC9jby10cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtY3JlYXRlLXNlcnZpY2U+XHJcbiAgICAgIDwvY28tc3RlcHBlci1zdGVwPlxyXG4gICAgICA8Y28tc3RlcHBlci1zdGVwICAjc3RlcFdpemFyZFNlY3Rpb24gW2luZGV4XT1cIjNcIiBbbGFiZWxdPVwiJ1NFUlZJQ0VfV0laQVJEJyB8IGxvY2FsaXplXCIgKHZhbGlkYXRlU3RlcCk9XCJoYW5kbGVXaXphcmRWYWxpZGF0aW9uKClcIj5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXNlcnZpY2Utd2l6YXJkICN3aXphcmRTZWN0aW9uICh3aXphcmRGaW5pc2hlZCk9XCJ3aXphcmRGaW5pc2hlZCgpXCI+PC9jby10cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtc2VydmljZS13aXphcmQ+XHJcbiAgICAgIDwvY28tc3RlcHBlci1zdGVwPlxyXG4gICAgICA8Y28tc3RlcHBlci1zdGVwICAjc3RlcFNlcnZpY2VGaWVsZHNTZWN0aW9uIFtpbmRleF09XCI0XCIgW2xhYmVsXT1cIidTRVJWSUNFX0lORk8nIHwgbG9jYWxpemVcIiAodmFsaWRhdGVTdGVwKT1cImhhbmRsZVNlcnZpY2VJbmZvVmFsaWRhdGlvbigpXCI+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1zZXJ2aWNlLWZpZWxkcyAjc2VydmljZUZpZWxkc1NlY3Rpb24+PC9jby10cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtc2VydmljZS1maWVsZHM+XHJcbiAgICAgIDwvY28tc3RlcHBlci1zdGVwPlxyXG4gICAgICA8Y28tc3RlcHBlci1zdGVwICBbaW5kZXhdPVwiNVwiIFtsYWJlbF09XCInRklOSVNIJyB8IGxvY2FsaXplXCI+XHJcbiAgICAgIDwvY28tc3RlcHBlci1zdGVwPlxyXG4gICAgPC9jby1zaW1wbGUtdmVydGljYWwtc3RlcHBlcj5cclxuXHJcbiAgYCxcclxuICBwcm92aWRlcnM6W1RyYW5zYWN0aW9uQ3JlYXRlU2VydmljZV0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25DcmVhdGVXaXphcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc0tpbmQ6IHR5cGVvZiBUcmFuc2FjdGlvbktpbmQgPSBUcmFuc2FjdGlvbktpbmQ7XHJcbiAgcHVibGljIHJlYWRvbmx5IEljb246IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBwZXJcIilcclxuICBwdWJsaWMgc3RlcHBlcjogU2ltcGxlVmVydGljYWxTdGVwcGVyQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwic3RlcFJlbGF0aW9uU2VjdGlvblwiKVxyXG4gIHB1YmxpYyBzdGVwUmVsYXRpb25TZWN0aW9uOiBTdGVwcGVyU3RlcENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInJlbGF0aW9uU2VjdGlvblwiKVxyXG4gIHB1YmxpYyByZWxhdGlvblNlY3Rpb246IFRyYW5zYWN0aW9uSGVhZGVyUG9wdXBSZWxhdGlvbkNvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBUcmFuc2FjdGlvblNlY3Rpb25cIilcclxuICBwdWJsaWMgc3RlcFRyYW5zYWN0aW9uU2VjdGlvbjogU3RlcHBlclN0ZXBDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJ0cmFuc2FjdGlvblNlY3Rpb25cIilcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25TZWN0aW9uOiBUcmFuc2FjdGlvbkhlYWRlclBvcHVwQ3JlYXRlU2VydmljZUNvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBXaXphcmRTZWN0aW9uXCIpXHJcbiAgcHVibGljIHN0ZXBXaXphcmRTZWN0aW9uOiBTdGVwcGVyU3RlcENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcIndpemFyZFNlY3Rpb25cIilcclxuICBwdWJsaWMgd2l6YXJkU2VjdGlvbjogVHJhbnNhY3Rpb25IZWFkZXJQb3B1cFNlcnZpY2VXaXphcmRDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJzdGVwU2VydmljZUZpZWxkc1NlY3Rpb25cIilcclxuICBwdWJsaWMgc3RlcFNlcnZpY2VGaWVsZHNTZWN0aW9uOiBTdGVwcGVyU3RlcENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInNlcnZpY2VGaWVsZHNTZWN0aW9uXCIpXHJcbiAgcHVibGljIHNlcnZpY2VGaWVsZHNTZWN0aW9uOiBUcmFuc2FjdGlvbkhlYWRlclBvcHVwU2VydmljZUZpZWxkc0NvbXBvbmVudDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvbktpbmQgPSBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlcjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGV4dGVybmFsbHlQcm92aWRlZFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSlcclxuICB7XHJcbiAgICB0aGlzLl9leHRlcm5hbGx5UHJvdmlkZWRUcmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGV4dGVybmFsbHlQcm92aWRlZExpbmVOcihsaW5lTnI6IG51bWJlcilcclxuICB7XHJcbiAgICB0aGlzLl9leHRlcm5hbGx5UHJvdmlkZWRMaW5lTnIgPSBsaW5lTnI7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25GaW5pc2hlZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tdHJhbnNhY3Rpb24tY3JlYXRlLXdpemFyZFwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2V4dGVybmFsbHlQcm92aWRlZFRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfZXh0ZXJuYWxseVByb3ZpZGVkTGluZU5yOiBudW1iZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjcmVhdGVTZXJ2aWNlOiBUcmFuc2FjdGlvbkNyZWF0ZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHVibGljIHJlbGF0aW9uU2VydmljZTogVHJhbnNhY3Rpb25SZWxhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHVibGljIHRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcblxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UubG9hZENvbmZpZyhbJ1MnXSlcclxuICAgIHRoaXMuY3JlYXRlU2VydmljZS50cmFuc2FjdGlvbktpbmQgPSB0aGlzLnRyYW5zYWN0aW9uVHlwZTtcclxuICAgIHRoaXMuY3JlYXRlU2VydmljZS5jcmVhdGVOZXdSZWxhdGlvbigpO1xyXG4gICAgdGhpcy5fcHJvY2Vzc0V4dGVybmFsVHJhbnNhY3Rpb25MaW5lKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlUmVsYXRpb25WYWxpZGF0aW9uKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgbGV0IHZhbGlkOiBib29sZWFuID0gdGhpcy5yZWxhdGlvblNlY3Rpb24uc3VibWl0KCk7XHJcbiAgICBpZiAodmFsaWQpIHtcclxuICAgICAgdGhpcy5zdGVwUmVsYXRpb25TZWN0aW9uLmNvbXBsZXRlZCA9IGF3YWl0IHRoaXMuY3JlYXRlU2VydmljZS5zYXZlUmVsYXRpb24odHJ1ZSwgZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbGlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZVRyYW5zYWN0aW9uVmFsaWRhdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGxldCB2YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaWYoIXRoaXMuY3JlYXRlU2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWQpIHtcclxuICAgICAgaWYgKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmNyZWF0ZVZpYVRyYW5zTGluZSkge1xyXG4gICAgICAgIGlmKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmV4aXN0aW5nVHJhbnNhY3Rpb24pIHtcclxuICAgICAgICAgIHRoaXMuc3RlcFRyYW5zYWN0aW9uU2VjdGlvbi5jb21wbGV0ZWQgPSBhd2FpdCB0aGlzLmNyZWF0ZVNlcnZpY2UuY3JlYXRlU2VydmljZU9yZGVyV2l0aFRyYW5zYWN0aW9uTGluZShOdW1iZXIodGhpcy50cmFuc2FjdGlvblNlY3Rpb24uZXhpc3RpbmdUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaWQpLCBOdW1iZXIodGhpcy50cmFuc2FjdGlvblNlY3Rpb24uZXhpc3RpbmdUcmFuc2FjdGlvbkxpbmUubGluZU5yKSk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5jaG9zZW5UcmFuc2FjdGlvbkxpbmUpIHtcclxuICAgICAgICAgIHRoaXMuc3RlcFRyYW5zYWN0aW9uU2VjdGlvbi5jb21wbGV0ZWQgPSBhd2FpdCB0aGlzLmNyZWF0ZVNlcnZpY2UuY3JlYXRlU2VydmljZU9yZGVyV2l0aFRyYW5zYWN0aW9uTGluZSh0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5jaG9zZW5UcmFuc2FjdGlvbkxpbmUudHJhbnNhY3Rpb25JZCwgdGhpcy50cmFuc2FjdGlvblNlY3Rpb24uY2hvc2VuVHJhbnNhY3Rpb25MaW5lLmxpbmVOdW1iZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmICh0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5jcmVhdGVWaWFQcm9kdWN0KSAge1xyXG4gICAgICAgIHZhbGlkID0gYXdhaXQgdGhpcy5fdmFsaWRhdGVGb3JBcnRpY2xlVHJhbnNhY3Rpb24oKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5jcmVhdGVWaWFPbGRUcmFucykge1xyXG4gICAgICAgIHRoaXMuc3RlcFRyYW5zYWN0aW9uU2VjdGlvbi5jb21wbGV0ZWQgPSAgYXdhaXQgdGhpcy5jcmVhdGVTZXJ2aWNlLmNyZWF0ZVNlcnZpY2VPcmRlcldpdGhTb3VyY2VPcmRlck5yQW5kQXJ0aWNsZURlc2NyaXB0aW9uKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLm9sZE9yZGVySWQsIHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLm9sZEdvb2RJZCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhbGlkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zdGVwVHJhbnNhY3Rpb25TZWN0aW9uLmNvbXBsZXRlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsaWRcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVXaXphcmRWYWxpZGF0aW9uKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgbGV0IHZhbGlkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy53aXphcmRTZWN0aW9uLmdldFF1YVJlc3VsdCgpLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgIHZhbGlkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zdGVwV2l6YXJkU2VjdGlvbi5jb21wbGV0ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbGlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZVNlcnZpY2VJbmZvVmFsaWRhdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIC8vVE9ETyBhZGQgcHJvcGVyIHZhbGlkYXRpb24gaGVyZSBzaG91bGQgdGhhdCBiZSBuZWNlc3NhcnlcclxuICAgIGxldCB2YWxpZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBpZih2YWxpZCAmJiB0aGlzLmNyZWF0ZVNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby51dWlkKSB7XHJcbiAgICAgIHRoaXMuc3RlcFNlcnZpY2VGaWVsZHNTZWN0aW9uLmNvbXBsZXRlZCA9IGF3YWl0IHRoaXMuY3JlYXRlU2VydmljZS51cGRhdGVTZXJ2aWNlSGVhZGVyUmVwb3J0TWVzc2FnZSh0aGlzLnNlcnZpY2VGaWVsZHNTZWN0aW9uLnNlcnZpY2VNZXNzYWdlLCB0cnVlKTtcclxuICAgIH1cclxuICAgIGF3YWl0IHRoaXMuY3JlYXRlU2VydmljZS5zYXZlVHJhbnNhY3Rpb24oKTtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25GaW5pc2hlZC5uZXh0KHRoaXMuY3JlYXRlU2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnRyYW5zYWN0aW9uTnIpO1xyXG4gICAgcmV0dXJuIHZhbGlkO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBhc3luYyB3aXphcmRGaW5pc2hlZCgpOiAgUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgcWFSZXN1bHQ6IFFhUmVzdWx0W10gPSB0aGlzLndpemFyZFNlY3Rpb24uZ2V0UXVhUmVzdWx0KCk7XHJcbiAgICBpZiAocWFSZXN1bHQgJiYgcWFSZXN1bHQubGVuZ3RoID4gMCkge1xyXG4gICAgICBhd2FpdCB0aGlzLmNyZWF0ZVNlcnZpY2UudXBkYXRlU2VydmljZUhlYWRlckNhdXNlQ29kZShxYVJlc3VsdFswXS5jYXVzZUNvZGUsIHRydWUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdGVwcGVyLmNvbnRpbnVlUmVxdWVzdGVkKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVzZXRXaXphcmQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyZWF0ZVNlcnZpY2UuY3JlYXRlTmV3UmVsYXRpb24oKTtcclxuICAgIHRoaXMuY3JlYXRlU2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UoKTtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmNsZWFyKCk7XHJcbiAgICB0aGlzLnN0ZXBwZXIub3BlblRvSW5kZXgoMSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF92YWxpZGF0ZUZvckFydGljbGVUcmFuc2FjdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGxldCB2YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmNob3NlbkFydGljbGUpIHtcclxuICAgICAgdmFsaWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnN0ZXBUcmFuc2FjdGlvblNlY3Rpb24uY29tcGxldGVkID0gYXdhaXQgdGhpcy5jcmVhdGVTZXJ2aWNlLmNyZWF0ZVNlcnZpY2VPcmRlcldpdGhTb3VyY2VHb29kKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmNob3NlbkFydGljbGUuZ29vZElkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhbGlkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc3RlcFRyYW5zYWN0aW9uU2VjdGlvbi5jb21wbGV0ZWRcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlY3Rpb24uc2hvd0NhdGFsb2dQb3B1cCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsaWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9wcm9jZXNzRXh0ZXJuYWxUcmFuc2FjdGlvbkxpbmUoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZih0aGlzLl9leHRlcm5hbGx5UHJvdmlkZWRUcmFuc2FjdGlvbiAmJiAhaXNOYU4odGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkTGluZU5yKSkge1xyXG4gICAgICAvL2ZldGNoIHJlbGF0aW9uIGFuZCBjcmVhdGUgbmVlZGVkIHRyYW5zYWN0aW9uIGZpcnN0LlxyXG4gICAgICB0aGlzLmNyZWF0ZVNlcnZpY2UucmVsYXRpb24gPSBhd2FpdCB0aGlzLnJlbGF0aW9uU2VydmljZS5nZXRDdXN0b21lckZ1bGxPYmplY3QocGFyc2VJbnQodGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkVHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnJlbGF0aW9uLnJlbGF0aW9uTnIpKTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlY3Rpb24uZXhpc3RpbmdUcmFuc2FjdGlvbiA9ICB0aGlzLl9leHRlcm5hbGx5UHJvdmlkZWRUcmFuc2FjdGlvbjtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlY3Rpb24uZXhpc3RpbmdUcmFuc2FjdGlvbkxpbmUgPSAgdGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkVHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lcy5maW5kKGwgPT4gbC5saW5lTnIgPT09IHRoaXMuX2V4dGVybmFsbHlQcm92aWRlZExpbmVOcik7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmNyZWF0ZU9yZGVyV2l0aFRyYW5zYWN0aW9uTGluZUNsaWNrZWQoZmFsc2UpO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5idXR0b25zVmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuICAgICAgYXdhaXQgdGhpcy5jcmVhdGVTZXJ2aWNlLmNyZWF0ZVNlcnZpY2VPcmRlcldpdGhUcmFuc2FjdGlvbkxpbmUoTnVtYmVyKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmV4aXN0aW5nVHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkKSwgTnVtYmVyKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmV4aXN0aW5nVHJhbnNhY3Rpb25MaW5lLmxpbmVOcikpO1xyXG4gICAgICB0aGlzLnN0ZXBwZXIub3BlblRvSW5kZXgoMyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -62,6 +62,14 @@ export class TransactionHeaderPopupCreateServiceComponent {
62
62
  submit() {
63
63
  return this.formMasterService.submitSlaves();
64
64
  }
65
+ clear() {
66
+ this.oldOrderId = null;
67
+ this.oldGoodId = null;
68
+ this.chosenArticle = null;
69
+ this.existingTransaction = null;
70
+ this.existingTransactionLine = null;
71
+ this.chosenTransactionLine = null;
72
+ }
65
73
  createOrderWithTransactionLineClicked(openSearch = true) {
66
74
  this.createViaTransLine = true;
67
75
  this.createViaProduct = false;
@@ -217,4 +225,4 @@ TransactionHeaderPopupCreateServiceComponent.propDecorators = {
217
225
  forceReadonly: [{ type: Input }],
218
226
  relation: [{ type: Input }]
219
227
  };
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLWNyZWF0ZS1zZXJ2aWNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLWhlYWRlci90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAvdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLWNyZWF0ZS1zZXJ2aWNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxXQUFXLEVBQUUsS0FBSyxFQUVsQixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFJL0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFFbkYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFFeEUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sNkRBQTZELENBQUM7QUFDckcsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBdUUxRixNQUFNLE9BQU8sNENBQTRDO0lBc0V2RCxZQUFzQixpQkFBb0MsRUFDcEMsaUJBQW9DLEVBQ3BDLGtCQUFzQyxFQUN0Qyx3QkFBa0QsRUFDbEQsWUFBcUM7UUFKckMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxpQkFBWSxHQUFaLFlBQVksQ0FBeUI7UUFuRXBELGtCQUFhLEdBQVksS0FB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Q2xCO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3hDOzs7WUFoRk8saUJBQWlCO1lBSWpCLGlCQUFpQjtZQUdqQixrQkFBa0I7WUFFbEIsd0JBQXdCO1lBSnhCLHVCQUF1Qjs7O3dCQTZFNUIsV0FBVyxTQUFDLGtEQUFrRDs0QkFLOUQsS0FBSzt1QkFHTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSG9zdEJpbmRpbmcsIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1NYXN0ZXJTZXJ2aWNlfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtBcnRpY2xlRXh0ZW5kZWR9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWV4dGVuZGVkLmJvXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm9cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvXCI7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1pbWFnZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lU2VhcmNoSW5kZXh9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1zZWFyY2gtaW5kZXguYm9cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtSZWxhdGlvbn0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi5ib1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VhcmNoU2VydmljZX0gZnJvbSBcIi4uLy4uL3RyYW5zYWN0aW9uLXNlYXJjaC9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNlYXJjaC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtXCI7XHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjby10cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtY3JlYXRlLXNlcnZpY2UnLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLWNhdGVnb3J5LXdyYXBwZXIgY28tc21hbGwtc2Nyb2xsYmFyXCI+XHJcbiAgICAgICAgICAgIDxjby1mb3JtPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1yZWxhdGlvbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtc2VjdGlvbiBnZW5lcmFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1zZWN0aW9uLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJzAyJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwtZGVzY3JpcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiJ1NFUlZJQ0VfREVUQUlMUycgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3JlYXRlLXRyYW5zYWN0aW9uLWJ1dHRvbnNcIiAqbmdJZj1cImJ1dHRvbnNWaXNpYmxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjby1idXR0b24gW2xhYmVsXT1cIidTRUFSQ0hfT1JERVInIHwgbG9jYWxpemVcIiAoY2xpY2spPVwiY3JlYXRlT3JkZXJXaXRoVHJhbnNhY3Rpb25MaW5lQ2xpY2tlZCgpXCIgW2Rpc2FibGVkXT1cImZvcmNlUmVhZG9ubHlcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBbbGFiZWxdPVwiJ1NFQVJDSF9QUk9EVUNUJyB8IGxvY2FsaXplXCIgKGNsaWNrKT1cImNyZWF0ZU9yZGVyV2l0aEFydGljbGVDbGlja2VkKClcIiBbZGlzYWJsZWRdPVwiZm9yY2VSZWFkb25seVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y28tYnV0dG9uIFtsYWJlbF09XCInV0lUSE9VVF9QUk9EVUNUJyB8IGxvY2FsaXplXCIgKGNsaWNrKT1cImNyZWF0ZU9yZGVyRnJvbVNMQUNsaWNrZWQoKVwiIFtkaXNhYmxlZF09XCJmb3JjZVJlYWRvbmx5XCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNyZWF0ZVZpYVRyYW5zTGluZVwiIGNsYXNzPVwiY3JlYXRlLXZpYS10cmFuc2FjdGlvblwiPlxyXG48IS0tXHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtc2VhcmNoIFt1c2VMZWZ0SWNvbl09XCJmYWxzZVwiIFt1c2VSaWdodEljb25dPVwidHJ1ZVwiIFtsYWJlbF09XCInVFJBTlNBQ1RJT04nIHwgbG9jYWxpemVcIiAocmlnaHRJY29uQ2xpY2spPVwic2VhcmNoVHJhbnNhY3Rpb25DbGlja2VkX2hhbmRsZXIoKVwiPjwvY28taW5wdXQtc2VhcmNoPlxyXG4tLT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWRhdGEtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGF0YS1kZXNjcmlwdGlvblwiIFt0ZXh0Q29udGVudF09XCJleGlzdGluZ1RyYW5zYWN0aW9uVGl0bGVUZXh0XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvZ2dsZS1jaGFuZ2VcIiBbdGV4dENvbnRlbnRdPVwiJ0NIQU5HRScgfCBsb2NhbGl6ZVwiIChjbGljayk9XCJjcmVhdGVPcmRlcldpdGhUcmFuc2FjdGlvbkxpbmVDbGlja2VkKCk7IGZvcmNlUmVhZG9ubHkgPSBmYWxzZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImV4aXN0aW5nVHJhbnNhY3Rpb25MaW5lXCIgY2xhc3M9XCJjcmVhdGUtdmlhLXRyYW5zYWN0aW9uLXJlc3VsdC1kaXNwbGF5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbWFnZS1kaXNwbGF5IFttb2RlbF09XCJleGlzdGluZ1RyYW5zYWN0aW9uTGluZT8uYXJ0aWNsZUltYWdlRGF0YVwiPjwvY28taW1hZ2UtZGlzcGxheT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImV4aXN0aW5nVHJhbnNhY3Rpb25MaW5lPy5nb29kRGVzY3JpcHRpb25cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJleGlzdGluZ1RyYW5zYWN0aW9uTGluZT8uYXJ0aWNsZUJvdW5kQ29uY2F0ZW5hdGVkVGV4dFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImV4aXN0aW5nVHJhbnNhY3Rpb25MaW5lPy5wcmljZSB8IGN1cnJlbmN5OiAnRVVSJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNob3NlblRyYW5zYWN0aW9uTGluZVwiIGNsYXNzPVwiY3JlYXRlLXZpYS10cmFuc2FjdGlvbi1yZXN1bHQtZGlzcGxheVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y28taW1hZ2UtZGlzcGxheSBbbW9kZWxdPVwidHJhbnNhY3Rpb25JbWFnZVwiPjwvY28taW1hZ2UtZGlzcGxheT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImNob3NlblRyYW5zYWN0aW9uTGluZT8uZ29vZERlc2NyaXB0aW9uXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNyZWF0ZVZpYVByb2R1Y3RcIiBjbGFzcz1cImNyZWF0ZS12aWEtcHJvZHVjdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNyZWF0ZS12aWEtcHJvZHVjdC1yZXN1bHQtZGlzcGxheVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y28taW1hZ2UtZGlzcGxheSBbbW9kZWxdPVwiY2hvc2VuQXJ0aWNsZT8uaW1hZ2VEYXRhXCI+PC9jby1pbWFnZS1kaXNwbGF5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiY2hvc2VuQXJ0aWNsZT8uZGVzY3JpcHRpb25cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJjaG9zZW5BcnRpY2xlPy5wcmljZSB8IGN1cnJlbmN5OiAnRVVSJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjcmVhdGVWaWFPbGRUcmFuc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgW3BsYWNlaG9sZGVyXT1cIidUUkFOU0FDVElPTicgfCBsb2NhbGl6ZVwiIFsobW9kZWwpXT1cIm9sZE9yZGVySWRcIiBbcmVxdWlyZWRdPVwiY3JlYXRlVmlhT2xkVHJhbnNcIiBbZGlzYWJsZWRdPVwiZm9yY2VSZWFkb25seVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFtwbGFjZWhvbGRlcl09XCInUFJPRFVDVCcgfCBsb2NhbGl6ZVwiIFsobW9kZWwpXT1cIm9sZEdvb2RJZFwiIFtyZXF1aXJlZF09XCJjcmVhdGVWaWFPbGRUcmFuc1wiIFtkaXNhYmxlZF09XCJmb3JjZVJlYWRvbmx5XCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvY28tZm9ybT5cclxuICAgICAgICAgICAgPGNvLWRpYWxvZy1jYXRhbG9nICpuZ0lmPVwic2hvd0NhdGFsb2dQb3B1cFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd05hdmlnYXRpb25dPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiY2F0YWxvZ09wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhcmFtZXRlcnNdPVwiY2F0YWxvZ1BhcmFtZXRlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JldHVybkFydGljbGVPblRpbGVDbGlja109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbG9zZUNsaWNrKT1cInNob3dDYXRhbG9nUG9wdXAgPSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXJ0aWNsZUNsaWNrZWQpPVwiaGFuZGxlQ2F0YWxvZ0FydGljbGVDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L2NvLWRpYWxvZy1jYXRhbG9nID5cclxuICAgICAgICAgICA8Y28tZGlhbG9nLXRyYW5zYWN0aW9uLXNlYXJjaCAqbmdJZj1cInNob3dUcmFuc0xpbmVQb3B1cFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlbGF0aW9uXT1cInRoaXMucmVsYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lQ2xpY2tlZCk9XCJoYW5kbGVUcmFuc2FjdGluTGluZUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbG9zZUNsaWNrKT1cImNsb3NlVHJhbnNhY3Rpb25Qb3B1cCgpXCI+XHJcbiAgICAgICAgICAgPC9jby1kaWFsb2ctdHJhbnNhY3Rpb24tc2VhcmNoPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgYCxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICBGb3JtTWFzdGVyU2VydmljZVxyXG4gICAgXSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uSGVhZGVyUG9wdXBDcmVhdGVTZXJ2aWNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1jcmVhdGUtc2VydmljZScpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBmb3JjZVJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlbGF0aW9uOiBSZWxhdGlvbjtcclxuXHJcblxyXG4gIHB1YmxpYyBidXR0b25zVmlzaWJsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIGNyZWF0ZVZpYVRyYW5zTGluZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBjcmVhdGVWaWFQcm9kdWN0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGNyZWF0ZVZpYU9sZFRyYW5zOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBzaG93Q2F0YWxvZ1BvcHVwOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dUcmFuc0xpbmVQb3B1cDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgc2V0IGNob3NlblRyYW5zYWN0aW9uTGluZShyZXNwb25zZTogVHJhbnNhY3Rpb25MaW5lU2VhcmNoSW5kZXgpIHtcclxuICAgIHRoaXMuX2Nob3NlblRyYW5zYWN0aW9uTGluZSA9IHJlc3BvbnNlO1xyXG4gICAgdGhpcy5zZXRUcmFuc2FjdGlvbkxhYmVsKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNob3NlblRyYW5zYWN0aW9uTGluZSgpOiBUcmFuc2FjdGlvbkxpbmVTZWFyY2hJbmRleCB7XHJcbiAgICByZXR1cm4gdGhpcy5fY2hvc2VuVHJhbnNhY3Rpb25MaW5lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCBleGlzdGluZ1RyYW5zYWN0aW9uKHJlc3BvbnNlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkge1xyXG4gICAgdGhpcy5fZXhpc3RpbmdUcmFuc2FjdGlvbiA9IHJlc3BvbnNlO1xyXG4gICAgdGhpcy5zZXRUcmFuc2FjdGlvbkxhYmVsKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGV4aXN0aW5nVHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2Uge1xyXG4gICAgcmV0dXJuIHRoaXMuX2V4aXN0aW5nVHJhbnNhY3Rpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IGV4aXN0aW5nVHJhbnNhY3Rpb25MaW5lKGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pIHtcclxuICAgIHRoaXMuX2V4aXN0aW5nVHJhbnNhY3Rpb25MaW5lID0gbGluZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZXhpc3RpbmdUcmFuc2FjdGlvbkxpbmUoKTogVHJhbnNhY3Rpb25MaW5lSW5mbyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZXhpc3RpbmdUcmFuc2FjdGlvbkxpbmU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZXhpc3RpbmdUcmFuc2FjdGlvblRpdGxlVGV4dDogc3RyaW5nO1xyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbkltYWdlOiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBjaG9zZW5BcnRpY2xlOiBBcnRpY2xlRXh0ZW5kZWQ7XHJcbiAgcHVibGljIGdvb2RJZDogbnVtYmVyO1xyXG5cclxuICBwdWJsaWMgb2xkT3JkZXJJZDogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgb2xkR29vZElkOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBwdWJsaWMgY2F0YWxvZ09wdGlvbnM6IGFueSA9IHtcclxuICAgIHNlYXJjaE9uU3RhcnQ6IHRydWUsXHJcbiAgICBzaG93QWRkVG9DYXJ0OiBmYWxzZSxcclxuICAgIHNob3dMb29rQXRBcnRpY2xlQnV0dG9uOiBmYWxzZSxcclxuICAgIHNob3dBZGRBcnRpY2xlQnV0dG9uOiBmYWxzZSxcclxuICAgIG9ubHlUaHJlZUQ6IGZhbHNlXHJcbiAgfTtcclxuICBwdWJsaWMgY2F0YWxvZ1BhcmFtZXRlcnM6IGFueSA9IHt9O1xyXG5cclxuICBwcml2YXRlIF9jaG9zZW5UcmFuc2FjdGlvbkxpbmU6IFRyYW5zYWN0aW9uTGluZVNlYXJjaEluZGV4O1xyXG4gIHByaXZhdGUgX2V4aXN0aW5nVHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlO1xyXG4gIHByaXZhdGUgX2V4aXN0aW5nVHJhbnNhY3Rpb25MaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGZvcm1NYXN0ZXJTZXJ2aWNlOiBGb3JtTWFzdGVyU2VydmljZSxcclxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByb3RlY3RlZCB0cmFuc2FjdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25TZWFyY2hTZXJ2aWNlOiBUcmFuc2FjdGlvblNlYXJjaFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIGltYWdlU2VydmljZTogVHJhbnNhY3Rpb25JbWFnZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuX3ByZXBhcmVDYXRhbG9nUmVxdWVzdDtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN1Ym1pdCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1NYXN0ZXJTZXJ2aWNlLnN1Ym1pdFNsYXZlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNyZWF0ZU9yZGVyV2l0aFRyYW5zYWN0aW9uTGluZUNsaWNrZWQob3BlblNlYXJjaDpib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5jcmVhdGVWaWFUcmFuc0xpbmUgPSB0cnVlO1xyXG4gICAgdGhpcy5jcmVhdGVWaWFQcm9kdWN0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNyZWF0ZVZpYU9sZFRyYW5zID0gZmFsc2U7XHJcbiAgICBpZiAob3BlblNlYXJjaCkge1xyXG4gICAgICB0aGlzLm9wZW5UcmFuc2FjdGlvblBvcFVwKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY3JlYXRlT3JkZXJXaXRoQXJ0aWNsZUNsaWNrZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyZWF0ZVZpYVRyYW5zTGluZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jcmVhdGVWaWFQcm9kdWN0ID0gdHJ1ZTtcclxuICAgIHRoaXMuY3JlYXRlVmlhT2xkVHJhbnMgPSBmYWxzZTtcclxuICAgIHRoaXMub3BlbkNhdGFsb2dQb3BVcCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNyZWF0ZU9yZGVyRnJvbVNMQUNsaWNrZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyZWF0ZVZpYVRyYW5zTGluZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jcmVhdGVWaWFQcm9kdWN0ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNyZWF0ZVZpYU9sZFRyYW5zID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuQ2F0YWxvZ1BvcFVwKCk6IHZvaWQgIHtcclxuICAgIHRoaXMuc2hvd0NhdGFsb2dQb3B1cCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3BlblRyYW5zYWN0aW9uUG9wVXAoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uU2VhcmNoU2VydmljZS50cmFuc2FjdGlvblR5cGUgPSBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlcjtcclxuICAgIHRoaXMuc2hvd1RyYW5zTGluZVBvcHVwID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZVRyYW5zYWN0aW9uUG9wdXAoKTogdm9pZCAge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvblNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25UeXBlID0gVHJhbnNhY3Rpb25LaW5kLlNlcnZpY2VPcmRlcjtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZWFyY2hTZXJ2aWNlLnJlc2V0RmlsdGVycygpO1xyXG4gICAgdGhpcy5zaG93VHJhbnNMaW5lUG9wdXAgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDYXRhbG9nQXJ0aWNsZUNsaWNrKGFydGljbGU6IEFydGljbGVFeHRlbmRlZCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93Q2F0YWxvZ1BvcHVwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNob3NlbkFydGljbGUgPSBhcnRpY2xlO1xyXG4gICAgdGhpcy5nb29kSWQgPSBhcnRpY2xlLmdvb2RJZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVUcmFuc2FjdGluTGluZUNsaWNrKGxpbmU6IFRyYW5zYWN0aW9uTGluZVNlYXJjaEluZGV4KTogdm9pZHtcclxuICAgIHRoaXMuc2hvd1RyYW5zTGluZVBvcHVwID0gZmFsc2U7XHJcbiAgICB0aGlzLmNob3NlblRyYW5zYWN0aW9uTGluZSA9IGxpbmU7XHJcbiAgICB0aGlzLnNldFRyYW5zYWN0aW9uTGluZUltYWdlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wcmVwYXJlQ2F0YWxvZ1JlcXVlc3QoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNhdGFsb2dQYXJhbWV0ZXJzLnNlYXJjaE9uU3RhcnQgPSB0cnVlO1xyXG4gICAgdGhpcy5jYXRhbG9nUGFyYW1ldGVycy5kb1N5bmMgPSAnQSc7XHJcbiAgICB0aGlzLmNhdGFsb2dQYXJhbWV0ZXJzLnNob3dSZWd1bGFyQXJ0aWNsZXMgPSB0cnVlO1xyXG4gICAgdGhpcy5jYXRhbG9nUGFyYW1ldGVycy5zaG93Q29uZmlndXJlZEFydGljbGVzID0gdHJ1ZTtcclxuICAgIHRoaXMuY2F0YWxvZ1BhcmFtZXRlcnMuc2hvd0NvbmZpZ3VyYWJsZUFydGljbGVzID0gdHJ1ZTtcclxuICAgIHRoaXMuY2F0YWxvZ1BhcmFtZXRlcnMuc2hvd0NvbXBvc2l0aW9uQXJ0aWNsZXM9IHRydWU7XHJcbiAgICB0aGlzLmNhdGFsb2dQYXJhbWV0ZXJzLnNob3dDdXN0b21pemVkQXJ0aWNsZXM9IHRydWU7XHJcbiAgICB0aGlzLmNhdGFsb2dQYXJhbWV0ZXJzLnNob3dJbmFjdGl2ZUFydGljbGVzID0gdHJ1ZTtcclxuICAgIHRoaXMuY2F0YWxvZ1BhcmFtZXRlcnMucHVibGljYXRpb25Db2RlID0gNzE7IC8vIHRvZG86IGZpeCB0aGlzP1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRUcmFuc2FjdGlvbkxhYmVsKCl7XHJcbiAgICBpZiAodGhpcy5fZXhpc3RpbmdUcmFuc2FjdGlvbikge1xyXG4gICAgICBsZXQgbG9jYWxlUGFyYW1zOiBPYmplY3QgPSB7IHllYXI6ICdudW1lcmljJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250aDogJ3Nob3J0JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXk6ICdudW1lcmljJ307XHJcbiAgICAgIHRoaXMuZXhpc3RpbmdUcmFuc2FjdGlvblRpdGxlVGV4dCA9IHRoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0KCdPUkRFUicpICsgJyAnICsgdGhpcy5fZXhpc3RpbmdUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25OclxyXG4gICAgICAgICsgJyAnICsgdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXQoJ0ZST00xJykgKyAnICcgKyB0aGlzLl9leGlzdGluZ1RyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbkRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKHVuZGVmaW5lZCwgbG9jYWxlUGFyYW1zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VHJhbnNhY3Rpb25MaW5lSW1hZ2UoKXtcclxuICAgIGlmICh0aGlzLmNob3NlblRyYW5zYWN0aW9uTGluZSkge1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRHb29kSWRGcm9tQXJ0aWNsZU5yKHRoaXMuY2hvc2VuVHJhbnNhY3Rpb25MaW5lLmFydGljbGVOcikudGhlbigoZ29vZElkOiBudW1iZXIpID0+IHtcclxuICAgICAgICB0aGlzLmltYWdlU2VydmljZS5nZXRBcnRpY2xlSW1hZ2UoZ29vZElkKS50aGVuKChpbWFnZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uSW1hZ2UgPSBpbWFnZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLWNyZWF0ZS1zZXJ2aWNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLWhlYWRlci90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAvdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLWNyZWF0ZS1zZXJ2aWNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxXQUFXLEVBQUUsS0FBSyxFQUVsQixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFJL0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFFbkYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFFeEUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sNkRBQTZELENBQUM7QUFDckcsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBdUUxRixNQUFNLE9BQU8sNENBQTRDO0lBc0V2RCxZQUFzQixpQkFBb0MsRUFDcEMsaUJBQW9DLEVBQ3BDLGtCQUFzQyxFQUN0Qyx3QkFBa0QsRUFDbEQsWUFBcUM7UUFKckMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxpQkFBWSxHQUFaLFlBQVksQ0FBeUI7UUFuRXBELGtCQUFhLEdBQVksS0FB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LENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO2dCQUNoQyxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOzs7WUFwUEYsU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSw0Q0FBNEM7Z0JBQ3RELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0E4RFQ7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULGlCQUFpQjtpQkFDbEI7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDeEM7OztZQWhGTyxpQkFBaUI7WUFJakIsaUJBQWlCO1lBR2pCLGtCQUFrQjtZQUVsQix3QkFBd0I7WUFKeEIsdUJBQXVCOzs7d0JBNkU1QixXQUFXLFNBQUMsa0RBQWtEOzRCQUs5RCxLQUFLO3VCQUdMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBIb3N0QmluZGluZywgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Rm9ybU1hc3RlclNlcnZpY2V9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge0FydGljbGVFeHRlbmRlZH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZXh0ZW5kZWQuYm9cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ib1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8tcmVzcG9uc2UuYm9cIjtcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWltYWdlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVTZWFyY2hJbmRleH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLXNlYXJjaC1pbmRleC5ib1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge1JlbGF0aW9ufSBmcm9tIFwiQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLmJvXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZWFyY2hTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vdHJhbnNhY3Rpb24tc2VhcmNoL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2VhcmNoLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbktpbmR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW1cIjtcclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NvLXRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1jcmVhdGUtc2VydmljZScsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtY2F0ZWdvcnktd3JhcHBlciBjby1zbWFsbC1zY3JvbGxiYXJcIj5cclxuICAgICAgICAgICAgPGNvLWZvcm0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXJlbGF0aW9uLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1zZWN0aW9uIGdlbmVyYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXNlY3Rpb24tbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCInMDInXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbC1kZXNjcmlwdGlvblwiIFt0ZXh0Q29udGVudF09XCInU0VSVklDRV9ERVRBSUxTJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcmVhdGUtdHJhbnNhY3Rpb24tYnV0dG9uc1wiICpuZ0lmPVwiYnV0dG9uc1Zpc2libGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBbbGFiZWxdPVwiJ1NFQVJDSF9PUkRFUicgfCBsb2NhbGl6ZVwiIChjbGljayk9XCJjcmVhdGVPcmRlcldpdGhUcmFuc2FjdGlvbkxpbmVDbGlja2VkKClcIiBbZGlzYWJsZWRdPVwiZm9yY2VSZWFkb25seVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y28tYnV0dG9uIFtsYWJlbF09XCInU0VBUkNIX1BST0RVQ1QnIHwgbG9jYWxpemVcIiAoY2xpY2spPVwiY3JlYXRlT3JkZXJXaXRoQXJ0aWNsZUNsaWNrZWQoKVwiIFtkaXNhYmxlZF09XCJmb3JjZVJlYWRvbmx5XCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjby1idXR0b24gW2xhYmVsXT1cIidXSVRIT1VUX1BST0RVQ1QnIHwgbG9jYWxpemVcIiAoY2xpY2spPVwiY3JlYXRlT3JkZXJGcm9tU0xBQ2xpY2tlZCgpXCIgW2Rpc2FibGVkXT1cImZvcmNlUmVhZG9ubHlcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY3JlYXRlVmlhVHJhbnNMaW5lXCIgY2xhc3M9XCJjcmVhdGUtdmlhLXRyYW5zYWN0aW9uXCI+XHJcbjwhLS1cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC1zZWFyY2ggW3VzZUxlZnRJY29uXT1cImZhbHNlXCIgW3VzZVJpZ2h0SWNvbl09XCJ0cnVlXCIgW2xhYmVsXT1cIidUUkFOU0FDVElPTicgfCBsb2NhbGl6ZVwiIChyaWdodEljb25DbGljayk9XCJzZWFyY2hUcmFuc2FjdGlvbkNsaWNrZWRfaGFuZGxlcigpXCI+PC9jby1pbnB1dC1zZWFyY2g+XHJcbi0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtZGF0YS1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYXRhLWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cImV4aXN0aW5nVHJhbnNhY3Rpb25UaXRsZVRleHRcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9nZ2xlLWNoYW5nZVwiIFt0ZXh0Q29udGVudF09XCInQ0hBTkdFJyB8IGxvY2FsaXplXCIgKGNsaWNrKT1cImNyZWF0ZU9yZGVyV2l0aFRyYW5zYWN0aW9uTGluZUNsaWNrZWQoKTsgZm9yY2VSZWFkb25seSA9IGZhbHNlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXhpc3RpbmdUcmFuc2FjdGlvbkxpbmVcIiBjbGFzcz1cImNyZWF0ZS12aWEtdHJhbnNhY3Rpb24tcmVzdWx0LWRpc3BsYXlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWltYWdlLWRpc3BsYXkgW21vZGVsXT1cImV4aXN0aW5nVHJhbnNhY3Rpb25MaW5lPy5hcnRpY2xlSW1hZ2VEYXRhXCI+PC9jby1pbWFnZS1kaXNwbGF5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiZXhpc3RpbmdUcmFuc2FjdGlvbkxpbmU/Lmdvb2REZXNjcmlwdGlvblwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImV4aXN0aW5nVHJhbnNhY3Rpb25MaW5lPy5hcnRpY2xlQm91bmRDb25jYXRlbmF0ZWRUZXh0XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiZXhpc3RpbmdUcmFuc2FjdGlvbkxpbmU/LnByaWNlIHwgY3VycmVuY3k6ICdFVVInXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY2hvc2VuVHJhbnNhY3Rpb25MaW5lXCIgY2xhc3M9XCJjcmVhdGUtdmlhLXRyYW5zYWN0aW9uLXJlc3VsdC1kaXNwbGF5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbWFnZS1kaXNwbGF5IFttb2RlbF09XCJ0cmFuc2FjdGlvbkltYWdlXCI+PC9jby1pbWFnZS1kaXNwbGF5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiY2hvc2VuVHJhbnNhY3Rpb25MaW5lPy5nb29kRGVzY3JpcHRpb25cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY3JlYXRlVmlhUHJvZHVjdFwiIGNsYXNzPVwiY3JlYXRlLXZpYS1wcm9kdWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3JlYXRlLXZpYS1wcm9kdWN0LXJlc3VsdC1kaXNwbGF5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbWFnZS1kaXNwbGF5IFttb2RlbF09XCJjaG9zZW5BcnRpY2xlPy5pbWFnZURhdGFcIj48L2NvLWltYWdlLWRpc3BsYXk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJjaG9zZW5BcnRpY2xlPy5kZXNjcmlwdGlvblwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImNob3NlbkFydGljbGU/LnByaWNlIHwgY3VycmVuY3k6ICdFVVInXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNyZWF0ZVZpYU9sZFRyYW5zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbcGxhY2Vob2xkZXJdPVwiJ1RSQU5TQUNUSU9OJyB8IGxvY2FsaXplXCIgWyhtb2RlbCldPVwib2xkT3JkZXJJZFwiIFtyZXF1aXJlZF09XCJjcmVhdGVWaWFPbGRUcmFuc1wiIFtkaXNhYmxlZF09XCJmb3JjZVJlYWRvbmx5XCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgW3BsYWNlaG9sZGVyXT1cIidQUk9EVUNUJyB8IGxvY2FsaXplXCIgWyhtb2RlbCldPVwib2xkR29vZElkXCIgW3JlcXVpcmVkXT1cImNyZWF0ZVZpYU9sZFRyYW5zXCIgW2Rpc2FibGVkXT1cImZvcmNlUmVhZG9ubHlcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9jby1mb3JtPlxyXG4gICAgICAgICAgICA8Y28tZGlhbG9nLWNhdGFsb2cgKm5nSWY9XCJzaG93Q2F0YWxvZ1BvcHVwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93TmF2aWdhdGlvbl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJjYXRhbG9nT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGFyYW1ldGVyc109XCJjYXRhbG9nUGFyYW1ldGVyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmV0dXJuQXJ0aWNsZU9uVGlsZUNsaWNrXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3NlQ2xpY2spPVwic2hvd0NhdGFsb2dQb3B1cCA9IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhcnRpY2xlQ2xpY2tlZCk9XCJoYW5kbGVDYXRhbG9nQXJ0aWNsZUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvY28tZGlhbG9nLWNhdGFsb2cgPlxyXG4gICAgICAgICAgIDxjby1kaWFsb2ctdHJhbnNhY3Rpb24tc2VhcmNoICpuZ0lmPVwic2hvd1RyYW5zTGluZVBvcHVwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVsYXRpb25dPVwidGhpcy5yZWxhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmVDbGlja2VkKT1cImhhbmRsZVRyYW5zYWN0aW5MaW5lQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3NlQ2xpY2spPVwiY2xvc2VUcmFuc2FjdGlvblBvcHVwKClcIj5cclxuICAgICAgICAgICA8L2NvLWRpYWxvZy10cmFuc2FjdGlvbi1zZWFyY2g+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgIEZvcm1NYXN0ZXJTZXJ2aWNlXHJcbiAgICBdLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25IZWFkZXJQb3B1cENyZWF0ZVNlcnZpY2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28tdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLWNyZWF0ZS1zZXJ2aWNlJylcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGZvcmNlUmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcmVsYXRpb246IFJlbGF0aW9uO1xyXG5cclxuXHJcbiAgcHVibGljIGJ1dHRvbnNWaXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgY3JlYXRlVmlhVHJhbnNMaW5lOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGNyZWF0ZVZpYVByb2R1Y3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgY3JlYXRlVmlhT2xkVHJhbnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIHNob3dDYXRhbG9nUG9wdXA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1RyYW5zTGluZVBvcHVwOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBzZXQgY2hvc2VuVHJhbnNhY3Rpb25MaW5lKHJlc3BvbnNlOiBUcmFuc2FjdGlvbkxpbmVTZWFyY2hJbmRleCkge1xyXG4gICAgdGhpcy5fY2hvc2VuVHJhbnNhY3Rpb25MaW5lID0gcmVzcG9uc2U7XHJcbiAgICB0aGlzLnNldFRyYW5zYWN0aW9uTGFiZWwoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY2hvc2VuVHJhbnNhY3Rpb25MaW5lKCk6IFRyYW5zYWN0aW9uTGluZVNlYXJjaEluZGV4IHtcclxuICAgIHJldHVybiB0aGlzLl9jaG9zZW5UcmFuc2FjdGlvbkxpbmU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IGV4aXN0aW5nVHJhbnNhY3Rpb24ocmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSB7XHJcbiAgICB0aGlzLl9leGlzdGluZ1RyYW5zYWN0aW9uID0gcmVzcG9uc2U7XHJcbiAgICB0aGlzLnNldFRyYW5zYWN0aW9uTGFiZWwoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZXhpc3RpbmdUcmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZXhpc3RpbmdUcmFuc2FjdGlvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQgZXhpc3RpbmdUcmFuc2FjdGlvbkxpbmUobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbykge1xyXG4gICAgdGhpcy5fZXhpc3RpbmdUcmFuc2FjdGlvbkxpbmUgPSBsaW5lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBleGlzdGluZ1RyYW5zYWN0aW9uTGluZSgpOiBUcmFuc2FjdGlvbkxpbmVJbmZvIHtcclxuICAgIHJldHVybiB0aGlzLl9leGlzdGluZ1RyYW5zYWN0aW9uTGluZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleGlzdGluZ1RyYW5zYWN0aW9uVGl0bGVUZXh0OiBzdHJpbmc7XHJcbiAgcHVibGljIHRyYW5zYWN0aW9uSW1hZ2U6IHN0cmluZztcclxuXHJcbiAgcHVibGljIGNob3NlbkFydGljbGU6IEFydGljbGVFeHRlbmRlZDtcclxuICBwdWJsaWMgZ29vZElkOiBudW1iZXI7XHJcblxyXG4gIHB1YmxpYyBvbGRPcmRlcklkOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHB1YmxpYyBvbGRHb29kSWQ6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIHB1YmxpYyBjYXRhbG9nT3B0aW9uczogYW55ID0ge1xyXG4gICAgc2VhcmNoT25TdGFydDogdHJ1ZSxcclxuICAgIHNob3dBZGRUb0NhcnQ6IGZhbHNlLFxyXG4gICAgc2hvd0xvb2tBdEFydGljbGVCdXR0b246IGZhbHNlLFxyXG4gICAgc2hvd0FkZEFydGljbGVCdXR0b246IGZhbHNlLFxyXG4gICAgb25seVRocmVlRDogZmFsc2VcclxuICB9O1xyXG4gIHB1YmxpYyBjYXRhbG9nUGFyYW1ldGVyczogYW55ID0ge307XHJcblxyXG4gIHByaXZhdGUgX2Nob3NlblRyYW5zYWN0aW9uTGluZTogVHJhbnNhY3Rpb25MaW5lU2VhcmNoSW5kZXg7XHJcbiAgcHJpdmF0ZSBfZXhpc3RpbmdUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U7XHJcbiAgcHJpdmF0ZSBfZXhpc3RpbmdUcmFuc2FjdGlvbkxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm87XHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZm9ybU1hc3RlclNlcnZpY2U6IEZvcm1NYXN0ZXJTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIHRyYW5zYWN0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByb3RlY3RlZCB0cmFuc2FjdGlvblNlYXJjaFNlcnZpY2U6IFRyYW5zYWN0aW9uU2VhcmNoU2VydmljZSxcclxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgaW1hZ2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkltYWdlU2VydmljZSkge1xyXG4gICAgdGhpcy5fcHJlcGFyZUNhdGFsb2dSZXF1ZXN0O1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3VibWl0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybU1hc3RlclNlcnZpY2Uuc3VibWl0U2xhdmVzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9sZE9yZGVySWQgPSBudWxsO1xyXG4gICAgdGhpcy5vbGRHb29kSWQgPSBudWxsO1xyXG4gICAgdGhpcy5jaG9zZW5BcnRpY2xlID0gbnVsbDtcclxuICAgIHRoaXMuZXhpc3RpbmdUcmFuc2FjdGlvbiA9IG51bGw7XHJcbiAgICB0aGlzLmV4aXN0aW5nVHJhbnNhY3Rpb25MaW5lID0gbnVsbDtcclxuICAgIHRoaXMuY2hvc2VuVHJhbnNhY3Rpb25MaW5lID0gbnVsbDtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY3JlYXRlT3JkZXJXaXRoVHJhbnNhY3Rpb25MaW5lQ2xpY2tlZChvcGVuU2VhcmNoOmJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyZWF0ZVZpYVRyYW5zTGluZSA9IHRydWU7XHJcbiAgICB0aGlzLmNyZWF0ZVZpYVByb2R1Y3QgPSBmYWxzZTtcclxuICAgIHRoaXMuY3JlYXRlVmlhT2xkVHJhbnMgPSBmYWxzZTtcclxuICAgIGlmIChvcGVuU2VhcmNoKSB7XHJcbiAgICAgIHRoaXMub3BlblRyYW5zYWN0aW9uUG9wVXAoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjcmVhdGVPcmRlcldpdGhBcnRpY2xlQ2xpY2tlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3JlYXRlVmlhVHJhbnNMaW5lID0gZmFsc2U7XHJcbiAgICB0aGlzLmNyZWF0ZVZpYVByb2R1Y3QgPSB0cnVlO1xyXG4gICAgdGhpcy5jcmVhdGVWaWFPbGRUcmFucyA9IGZhbHNlO1xyXG4gICAgdGhpcy5vcGVuQ2F0YWxvZ1BvcFVwKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY3JlYXRlT3JkZXJGcm9tU0xBQ2xpY2tlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY3JlYXRlVmlhVHJhbnNMaW5lID0gZmFsc2U7XHJcbiAgICB0aGlzLmNyZWF0ZVZpYVByb2R1Y3QgPSBmYWxzZTtcclxuICAgIHRoaXMuY3JlYXRlVmlhT2xkVHJhbnMgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW5DYXRhbG9nUG9wVXAoKTogdm9pZCAge1xyXG4gICAgdGhpcy5zaG93Q2F0YWxvZ1BvcHVwID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuVHJhbnNhY3Rpb25Qb3BVcCgpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9uVHlwZSA9IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyO1xyXG4gICAgdGhpcy5zaG93VHJhbnNMaW5lUG9wdXAgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlVHJhbnNhY3Rpb25Qb3B1cCgpOiB2b2lkICB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uU2VhcmNoU2VydmljZS50cmFuc2FjdGlvblR5cGUgPSBUcmFuc2FjdGlvbktpbmQuU2VydmljZU9yZGVyO1xyXG4gICAgdGhpcy50cmFuc2FjdGlvblNlYXJjaFNlcnZpY2UucmVzZXRGaWx0ZXJzKCk7XHJcbiAgICB0aGlzLnNob3dUcmFuc0xpbmVQb3B1cCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNhdGFsb2dBcnRpY2xlQ2xpY2soYXJ0aWNsZTogQXJ0aWNsZUV4dGVuZGVkKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dDYXRhbG9nUG9wdXAgPSBmYWxzZTtcclxuICAgIHRoaXMuY2hvc2VuQXJ0aWNsZSA9IGFydGljbGU7XHJcbiAgICB0aGlzLmdvb2RJZCA9IGFydGljbGUuZ29vZElkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVRyYW5zYWN0aW5MaW5lQ2xpY2sobGluZTogVHJhbnNhY3Rpb25MaW5lU2VhcmNoSW5kZXgpOiB2b2lke1xyXG4gICAgdGhpcy5zaG93VHJhbnNMaW5lUG9wdXAgPSBmYWxzZTtcclxuICAgIHRoaXMuY2hvc2VuVHJhbnNhY3Rpb25MaW5lID0gbGluZTtcclxuICAgIHRoaXMuc2V0VHJhbnNhY3Rpb25MaW5lSW1hZ2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3ByZXBhcmVDYXRhbG9nUmVxdWVzdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2F0YWxvZ1BhcmFtZXRlcnMuc2VhcmNoT25TdGFydCA9IHRydWU7XHJcbiAgICB0aGlzLmNhdGFsb2dQYXJhbWV0ZXJzLmRvU3luYyA9ICdBJztcclxuICAgIHRoaXMuY2F0YWxvZ1BhcmFtZXRlcnMuc2hvd1JlZ3VsYXJBcnRpY2xlcyA9IHRydWU7XHJcbiAgICB0aGlzLmNhdGFsb2dQYXJhbWV0ZXJzLnNob3dDb25maWd1cmVkQXJ0aWNsZXMgPSB0cnVlO1xyXG4gICAgdGhpcy5jYXRhbG9nUGFyYW1ldGVycy5zaG93Q29uZmlndXJhYmxlQXJ0aWNsZXMgPSB0cnVlO1xyXG4gICAgdGhpcy5jYXRhbG9nUGFyYW1ldGVycy5zaG93Q29tcG9zaXRpb25BcnRpY2xlcz0gdHJ1ZTtcclxuICAgIHRoaXMuY2F0YWxvZ1BhcmFtZXRlcnMuc2hvd0N1c3RvbWl6ZWRBcnRpY2xlcz0gdHJ1ZTtcclxuICAgIHRoaXMuY2F0YWxvZ1BhcmFtZXRlcnMuc2hvd0luYWN0aXZlQXJ0aWNsZXMgPSB0cnVlO1xyXG4gICAgdGhpcy5jYXRhbG9nUGFyYW1ldGVycy5wdWJsaWNhdGlvbkNvZGUgPSA3MTsgLy8gdG9kbzogZml4IHRoaXM/XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFRyYW5zYWN0aW9uTGFiZWwoKXtcclxuICAgIGlmICh0aGlzLl9leGlzdGluZ1RyYW5zYWN0aW9uKSB7XHJcbiAgICAgIGxldCBsb2NhbGVQYXJhbXM6IE9iamVjdCA9IHsgeWVhcjogJ251bWVyaWMnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRoOiAnc2hvcnQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheTogJ251bWVyaWMnfTtcclxuICAgICAgdGhpcy5leGlzdGluZ1RyYW5zYWN0aW9uVGl0bGVUZXh0ID0gdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXQoJ09SREVSJykgKyAnICcgKyB0aGlzLl9leGlzdGluZ1RyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbk5yXHJcbiAgICAgICAgKyAnICcgKyB0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlLmdldCgnRlJPTTEnKSArICcgJyArIHRoaXMuX2V4aXN0aW5nVHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnRyYW5zYWN0aW9uRGF0ZS50b0xvY2FsZURhdGVTdHJpbmcodW5kZWZpbmVkLCBsb2NhbGVQYXJhbXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRUcmFuc2FjdGlvbkxpbmVJbWFnZSgpe1xyXG4gICAgaWYgKHRoaXMuY2hvc2VuVHJhbnNhY3Rpb25MaW5lKSB7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldEdvb2RJZEZyb21BcnRpY2xlTnIodGhpcy5jaG9zZW5UcmFuc2FjdGlvbkxpbmUuYXJ0aWNsZU5yKS50aGVuKChnb29kSWQ6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIHRoaXMuaW1hZ2VTZXJ2aWNlLmdldEFydGljbGVJbWFnZShnb29kSWQpLnRoZW4oKGltYWdlOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25JbWFnZSA9IGltYWdlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -14,6 +14,7 @@ import { IconCacheService } from '../../../service/icon-cache.service';
14
14
  import { TransactionScreenConfigurationService } from '../../../service/transaction-screen-configuration.service';
15
15
  import { DictionaryService } from '../../../service/dictionary.service';
16
16
  import { TransactionImageService } from '../../../service/transaction-image.service';
17
+ import { AppPopupButtonType } from "../../core/enum/app-popup-button-type.enum";
17
18
  export class TransactionHeaderPopupRelationComponent extends TransactionHeaderPopupBaseComponent {
18
19
  constructor(transactionEventService, service, iconCacheService, transactionScreenConfigurationService, dictionaryService, imageService, changeDetector, dialogService, formMasterService, relationService, _suggestionsService) {
19
20
  super(transactionEventService, service, iconCacheService, transactionScreenConfigurationService, dictionaryService, imageService, changeDetector, dialogService, formMasterService, relationService);
@@ -31,8 +32,10 @@ export class TransactionHeaderPopupRelationComponent extends TransactionHeaderPo
31
32
  this.addressType = AddressType;
32
33
  this.forceReadonly = false;
33
34
  this.showPrivacy = true;
35
+ this.showMessageForChangeCustomer = false;
34
36
  this.showInvoiceAddress = true;
35
37
  this.inputChangeForSuggestions = new EventEmitter();
38
+ this.changeCustomerRequested = new EventEmitter();
36
39
  this.deliveryAddressNawNr = 0;
37
40
  this.invoiceAddressNawNr = 0;
38
41
  this.invoiceAddressSameAsDeliveryAddress = true;
@@ -83,6 +86,21 @@ export class TransactionHeaderPopupRelationComponent extends TransactionHeaderPo
83
86
  submit() {
84
87
  return this.formMasterService.submitSlaves();
85
88
  }
89
+ requestChangeCustomer() {
90
+ return __awaiter(this, void 0, void 0, function* () {
91
+ if (this.showMessageForChangeCustomer) {
92
+ const response = yield this.dialogService.showYesNo('DELETE_TRANSACTION', 'DELETE_CUSTOMER_WIL_DELETE_TRANSACTION');
93
+ const shouldDelete = response.button === AppPopupButtonType.Yes;
94
+ if (shouldDelete) {
95
+ this.changeCustomerRequested.next();
96
+ this.readonly = this.forceReadonly = false;
97
+ }
98
+ }
99
+ else {
100
+ this.readonly = this.forceReadonly = false;
101
+ }
102
+ });
103
+ }
86
104
  onRelationSuggestionClick(relationSuggested) {
87
105
  return __awaiter(this, void 0, void 0, function* () {
88
106
  if (relationSuggested) {
@@ -207,7 +225,7 @@ TransactionHeaderPopupRelationComponent.decorators = [
207
225
  <div class="service-data-read-only">
208
226
  <div class="service-data-header">
209
227
  <span class="data-description" [textContent]="'NAME_AND_ADDRESS' | localize"></span>
210
- <span class="toggle-change" [textContent]="'CHANGE' | localize" (click)="readonly = false; forceReadonly = false"></span>
228
+ <span class="toggle-change" [textContent]="'CHANGE' | localize" (click)="requestChangeCustomer()"></span>
211
229
  </div>
212
230
  <div class="service-relation-data row">
213
231
  <div class="double-column">
@@ -372,11 +390,13 @@ TransactionHeaderPopupRelationComponent.propDecorators = {
372
390
  configNames: [{ type: Input }],
373
391
  forceReadonly: [{ type: Input }],
374
392
  showPrivacy: [{ type: Input }],
393
+ showMessageForChangeCustomer: [{ type: Input }],
375
394
  showInvoiceAddress: [{ type: Input }],
376
395
  inputChangeForSuggestions: [{ type: Output }],
396
+ changeCustomerRequested: [{ type: Output }],
377
397
  navigationItems: [{ type: ViewChild, args: ['navigationItems', { read: ElementRef },] }],
378
398
  mainItems: [{ type: ViewChild, args: ['mainItems', { read: ElementRef },] }],
379
399
  preferenceItems: [{ type: ViewChild, args: ['preferenceItems', { read: ElementRef },] }],
380
400
  showClass: [{ type: HostBinding, args: ['class.co-transaction-header-popup-relation',] }]
381
401
  };
382
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXJlbGF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLWhlYWRlci90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAvdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXJlbGF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUFFLFlBQVksRUFDeEIsV0FBVyxFQUNYLEtBQUssRUFDRyxNQUFNLEVBQ2QsU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scURBQXFELENBQUM7QUFJakYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQy9FLE9BQU8sRUFBQyxtQ0FBbUMsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzlGLE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFJL0UsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxn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QUFPLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQzt3QkFDNUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQzt3QkFDckQsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztxQkFDckQsQ0FBQztpQkFDTDtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsaUJBQWlCO29CQUNqQiwwQkFBMEI7aUJBQzNCO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3hDOzs7WUExS08sdUJBQXVCO1lBSnZCLGtCQUFrQjtZQUtsQixnQkFBZ0I7WUFDaEIscUNBQXFDO1lBQ3JDLGlCQUFpQjtZQUNqQix1QkFBdUI7WUE1QjdCLGlCQUFpQjtZQXNCWCxhQUFhO1lBYmIsaUJBQWlCO1lBWWpCLDBCQUEwQjtZQUUxQiwwQkFBMEI7OzswQkErSzdCLEtBQUs7NEJBR0wsS0FBSzswQkFHTCxLQUFLO2lDQUdMLEtBQUs7d0NBR0wsTUFBTTs4QkFHTixTQUFTLFNBQUMsaUJBQWlCLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDO3dCQUcvQyxTQUFTLFNBQUMsV0FBVyxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQzs4QkFHekMsU0FBUyxTQUFDLGlCQUFpQixFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQzt3QkFHL0MsV0FBVyxTQUFDLDRDQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCwgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1NYXN0ZXJTZXJ2aWNlfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtSZWxhdGlvbktpbmR9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9lbnVtL3JlbGF0aW9uLWtpbmQuZW51bSc7XHJcbmltcG9ydCB7Q3VzdG9tZXJGdWxsT2JqZWN0fSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvY3VzdG9tZXItZnVsbC1vYmplY3QuYm8nO1xyXG5pbXBvcnQge0FkZHJlc3N9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9hZGRyZXNzLmJvJztcclxuaW1wb3J0IHtWYWxpZGF0aW9uUmVzdWx0fSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC92YWxpZGF0aW9uLXJlc3VsdCc7XHJcbmltcG9ydCB7QWRkcmVzc1R5cGV9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9lbnVtL2FkZHJlc3MtdHlwZS5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkhlYWRlclBvcHVwQmFzZUNvbXBvbmVudH0gZnJvbSAnLi90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge2FuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7UmVsYXRpb25HZW5lcmFsQ2ZnTmFtZXN9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZS9yZWxhdGlvbi1nZW5lcmFsLWNmZy1uYW1lcy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1JlbGF0aW9uQ29udGFjdERldGFpbHNDZmdOYW1lc30gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlL3JlbGF0aW9uLWNvbnRhY3QtZGV0YWlscy1jZmctbmFtZXMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtSZWxhdGlvblN1Z2dlc3Rpb25zUmVxdWVzdH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlL3JlbGF0aW9uLXN1Z2dlc3Rpb25zLXJlcXVlc3QuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25SZWxhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tcmVsYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7UmVsYXRpb25TdWdnZXN0aW9uc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvcmVsYXRpb24tc3VnZ2VzdGlvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkltYWdlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1pbWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtSZWxhdGlvbkxpc3RPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1saXN0LW9iamVjdC5ibyc7XHJcbmltcG9ydCB7UmVsYXRpb25BbnlUeXBlfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9yZWxhdGlvbi1hbnktdHlwZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY28tdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXJlbGF0aW9uJyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPCEtLWNvLXRyYW5zYWN0aW9uLWZpbHRlci1jYXRlZ29yaWVzIFtjYXRlZ29yaWVzXT1cImNhdGVnb3JpZXNcIiAoY2F0ZWdvcnlDbGljayk9XCJoYW5kbGVOYXZpZ2F0aW9uQ2xpY2soJGV2ZW50KVwiPjwvY28tdHJhbnNhY3Rpb24tZmlsdGVyLWNhdGVnb3JpZXMtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLWNhdGVnb3J5LXdyYXBwZXIgY28tc21hbGwtc2Nyb2xsYmFyXCI+XHJcbiAgICAgICAgICAgIDxjby1mb3JtPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1yZWxhdGlvbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1zZWN0aW9uIGdlbmVyYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtc2VjdGlvbi1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJzAxJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbC1kZXNjcmlwdGlvblwiIFt0ZXh0Q29udGVudF09XCInUEVSU09OQUxfREFUQScgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtcmVhZC1vbmx5LXdyYXBwZXJcIiAqbmdJZj1cInJlYWRvbmx5IHx8IGZvcmNlUmVhZG9ubHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtZGF0YS1yZWFkLW9ubHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1kYXRhLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYXRhLWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cIidOQU1FX0FORF9BRERSRVNTJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b2dnbGUtY2hhbmdlXCIgW3RleHRDb250ZW50XT1cIidDSEFOR0UnIHwgbG9jYWxpemVcIiAoY2xpY2spPVwicmVhZG9ubHkgPSBmYWxzZTsgZm9yY2VSZWFkb25seSA9IGZhbHNlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLXJlbGF0aW9uLWRhdGEgcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZG91YmxlLWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ0ZJUlNUX05BTUUnIHwgbG9jYWxpemVcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIiBbdGV4dENvbnRlbnRdPVwicmVsYXRpb24uZmlyc3ROYW1lXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCIgW3RleHRDb250ZW50XT1cIidQUkVGSVgnIHwgbG9jYWxpemVcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIiBbdGV4dENvbnRlbnRdPVwicmVsYXRpb24ucHJlZml4XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiIFt0ZXh0Q29udGVudF09XCInTEFTVF9OQU1FJyB8IGxvY2FsaXplXCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiIFt0ZXh0Q29udGVudF09XCJyZWxhdGlvbi5mYW1pbHlOYW1lXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtYWRkcmVzcy1kYXRhIHJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiIFt0ZXh0Q29udGVudF09XCInQUREUkVTUycgfCBsb2NhbGl6ZVwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIiBbdGV4dENvbnRlbnRdPVwicmVsYXRpb24ucHJpbWFyeUludm9pY2VBZGRyZXNzPy5zdHJlZXROYW1lICsgJyAnICsgcmVsYXRpb24ucHJpbWFyeUludm9pY2VBZGRyZXNzPy5ob3VzZU5vXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCIgW3RleHRDb250ZW50XT1cIidQT1NUQUxfQ09ERScgfCBsb2NhbGl6ZVwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIiBbdGV4dENvbnRlbnRdPVwicmVsYXRpb24ucHJpbWFyeUludm9pY2VBZGRyZXNzPy5wb3N0YWxDb2RlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtYWRkcmVzcy1kYXRhIHJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiIFt0ZXh0Q29udGVudF09XCInQ0lUWScgfCBsb2NhbGl6ZVwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIiBbdGV4dENvbnRlbnRdPVwicmVsYXRpb24ucHJpbWFyeUludm9pY2VBZGRyZXNzPy5jaXR5XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCIgW3RleHRDb250ZW50XT1cIidDT1VOVFJZJyB8IGxvY2FsaXplXCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiIFt0ZXh0Q29udGVudF09XCJyZWxhdGlvbi5wcmltYXJ5SW52b2ljZUFkZHJlc3M/LmNvdW50cnlJZFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtZGF0YS1yZWFkLW9ubHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1kYXRhLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYXRhLWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cIidDT05UQUNUX09QVElPTlMnIHwgbG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtcmVsYXRpb24tZGF0YSByb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ0VNQUlMJyB8IGxvY2FsaXplXCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiIFt0ZXh0Q29udGVudF09XCJyZWxhdGlvbi5wcmltYXJ5RW1haWxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ1BIT05FJyB8IGxvY2FsaXplXCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiIFt0ZXh0Q29udGVudF09XCJyZWxhdGlvbi5wcmltYXJ5UGhvbmVOdW1iZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWRhdGEtY29sdW1uXCIgKm5nSWY9XCIhcmVhZG9ubHkgJiYgIWZvcmNlUmVhZG9ubHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXJlbGF0aW9uLXR5cGUgKm5nSWY9XCJyZWxhdGlvbktpbmQgPT09IHJlbEtpbmQuQ3VzdG9tZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5SZWxhdGlvblR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHkgfHwgZm9yY2VSZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocmVsYXRpb24pXT1cInJlbGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tcmVsYXRpb24tdHlwZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlbGF0aW9uS2luZCA9PT0gcmVsS2luZC5DdXN0b21lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWxhdGlvbi1jdXN0b21lci1ncm91cHNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlJlbGF0aW9uQ3VzdG9tZXJHcm91cFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHkgfHwgZm9yY2VSZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwiY3VzdG9tZXJHcm91cFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlQ3VzdG9tR3JvdXAoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcmVsYXRpb24tY3VzdG9tZXItZ3JvdXBzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXJlbGF0aW9uLWdlbmVyYWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnTmFtZXNdPVwicmVsYXRpb25HZW5lcmFsQ29uZmlnTmFtZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSB8fCBmb3JjZVJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbKHJlbGF0aW9uKV09XCJyZWxhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlbGF0aW9uVHlwZV09XCJyZWxhdGlvbi50eXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVsYXRpb25LaW5kXT1cInJlbGF0aW9uS2luZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0Q2hhbmdlRm9yU3VnZ2VzdGlvbnMpPVwiaGFuZGxlSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLXJlbGF0aW9uLWdlbmVyYWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXJlbGF0aW9uLWFkZHJlc3Nlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5IHx8IGhlYWRlclJlYWRvbmx5IHx8IGZvcmNlUmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBdPVwiaGVhZGVyUmVhZG9ubHkgPyB0b29sdGlwTWVzc2FnZSA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocmVsYXRpb24pXT1cInJlbGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthZGRyZXNzZXNdPVwicmVsYXRpb24uYWN0aXZlQWRkcmVzc2VzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cImFkZHJlc3NUeXBlLkRlbGl2ZXJ5QWRkcmVzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWROYXdOcl09XCJkZWxpdmVyeUFkZHJlc3NOYXdOclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWROYXdOckNoYW5nZSk9XCJzZXRJbmRleERlbGl2ZXJ5QWRkcmVzcygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby1yZWxhdGlvbi1hZGRyZXNzZXM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXJlbGF0aW9uLWNvbnRhY3QtZGV0YWlsc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ05hbWVzXT1cImNvbmZpZ05hbWVzPy5jb250YWN0RGV0YWlsc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHkgfHwgZm9yY2VSZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKHJlbGF0aW9uKV09XCJyZWxhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVsYXRpb25LaW5kXT1cInJlbGF0aW9uS2luZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0ludml0ZUZvckFjY291bnRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0Q2hhbmdlRm9yU3VnZ2VzdGlvbnMpPVwiaW5wdXRDaGFuZ2VGb3JTdWdnZXN0aW9ucy5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLXJlbGF0aW9uLWNvbnRhY3QtZGV0YWlscz5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93SW52b2ljZUFkZHJlc3NcIiBjbGFzcz1cInRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1zZWN0aW9uXCIgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuUmVsYXRpb25BZGRyZXNzZXNIZWFkZXJcIiBzY3JlZW5Db25maWdOYXRpdmVFbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlbGF0aW9uS2luZCA9PT0gcmVsS2luZC5DdXN0b21lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXNlY3Rpb24tbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJzAyJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsLWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cIidJTlZPSUNFX0FERFJFU1MnIHwgbG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtZGF0YS1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3ggW3JlYWRvbmx5XT1cInJlYWRvbmx5IHx8IGhlYWRlclJlYWRvbmx5IHx8IGZvcmNlUmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJpbnZvaWNlQWRkcmVzc1NhbWVBc0RlbGl2ZXJ5QWRkcmVzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInU0FNRV9BU19ERUxJVkVSWScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwXT1cImhlYWRlclJlYWRvbmx5ID8gdG9vbHRpcE1lc3NhZ2UgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJjaGVja1NhbWVBZGRyZXNzKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1kZWxpdmVyeS1pbnZvaWNlLWFkZHJlc3NcIiAqbmdJZj1cIiFpbnZvaWNlQWRkcmVzc1NhbWVBc0RlbGl2ZXJ5QWRkcmVzc1wiIEBzaG93SGlkZUludm9pY2VBZGRyZXNzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tcmVsYXRpb24tYWRkcmVzc2VzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5IHx8IGhlYWRlclJlYWRvbmx5IHx8IGZvcmNlUmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwXT1cImhlYWRlclJlYWRvbmx5ID8gdG9vbHRpcE1lc3NhZ2UgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhyZWxhdGlvbildPVwicmVsYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthZGRyZXNzZXNdPVwicmVsYXRpb24uYWN0aXZlQWRkcmVzc2VzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJhZGRyZXNzVHlwZS5CaWxsaW5nQWRkcmVzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkTmF3TnJdPVwiaW52b2ljZUFkZHJlc3NOYXdOclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkTmF3TnJDaGFuZ2UpPVwic2V0SW5kZXhJbnZvaWNlQWRkcmVzcygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tcmVsYXRpb24tYWRkcmVzc2VzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1yZWxhdGlvbi1jb250ZW50XCIgKm5nSWY9XCJzaG93UHJpdmFjeVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXNlY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXNlY3Rpb24tbGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ1BSSVZBQ1lfUFJFRkVSRU5DRVMnIHwgbG9jYWxpemVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8Y28tcmVsYXRpb24tcHJlZmVyZW5jZXMgW3JlYWRvbmx5XT1cInJlYWRvbmx5IHx8IGZvcmNlUmVhZG9ubHlcIiBbcmVsYXRpb25dPVwicmVsYXRpb25cIj48L2NvLXJlbGF0aW9uLXByZWZlcmVuY2VzPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2NvLWZvcm0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gICAgYW5pbWF0aW9uczogW1xyXG4gICAgICAgIHRyaWdnZXIoXCJzaG93SGlkZUludm9pY2VBZGRyZXNzXCIsIFtcclxuICAgICAgICAgICAgc3RhdGUoXCJ2b2lkXCIsIHN0eWxlKHtoZWlnaHQ6IDAsIG9wYWNpdHk6IDB9KSksXHJcbiAgICAgICAgICAgIHN0YXRlKFwiKlwiLCBzdHlsZSh7aGVpZ2h0OiBcIipcIiwgb3BhY2l0eTogMX0pKSxcclxuICAgICAgICAgICAgdHJhbnNpdGlvbihcInZvaWQgPT4gKlwiLCBhbmltYXRlKFwiMjAwbXMgZWFzZS1pbi1vdXRcIikpLFxyXG4gICAgICAgICAgICB0cmFuc2l0aW9uKFwiKiA9PiB2b2lkXCIsIGFuaW1hdGUoXCIyMDBtcyBlYXNlLW91dFwiKSlcclxuICAgICAgICBdKVxyXG4gICAgXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICBGb3JtTWFzdGVyU2VydmljZSxcclxuICAgICAgUmVsYXRpb25TdWdnZXN0aW9uc1NlcnZpY2VcclxuICAgIF0sXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkhlYWRlclBvcHVwUmVsYXRpb25Db21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkhlYWRlclBvcHVwQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgYWRkcmVzc1R5cGU6IHR5cGVvZiBBZGRyZXNzVHlwZSA9IEFkZHJlc3NUeXBlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY29uZmlnTmFtZXM6IFJlbGF0aW9uR2VuZXJhbENmZ05hbWVzO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZm9yY2VSZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd1ByaXZhY3k6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd0ludm9pY2VBZGRyZXNzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBpbnB1dENoYW5nZUZvclN1Z2dlc3Rpb25zOiBFdmVudEVtaXR0ZXI8UmVsYXRpb25TdWdnZXN0aW9uc1JlcXVlc3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWxhdGlvblN1Z2dlc3Rpb25zUmVxdWVzdD4oKTtcclxuXHJcbiAgICBAVmlld0NoaWxkKCduYXZpZ2F0aW9uSXRlbXMnLCB7cmVhZDogRWxlbWVudFJlZn0pXHJcbiAgICBwdWJsaWMgbmF2aWdhdGlvbkl0ZW1zOiBFbGVtZW50UmVmO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ21haW5JdGVtcycsIHtyZWFkOiBFbGVtZW50UmVmfSlcclxuICAgIHB1YmxpYyBtYWluSXRlbXM6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgncHJlZmVyZW5jZUl0ZW1zJywge3JlYWQ6IEVsZW1lbnRSZWZ9KVxyXG4gICAgcHVibGljIHByZWZlcmVuY2VJdGVtczogRWxlbWVudFJlZjtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1yZWxhdGlvbicpXHJcbiAgICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkZWxpdmVyeUFkZHJlc3NOYXdOcjogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBpbnZvaWNlQWRkcmVzc05hd05yOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIGludm9pY2VBZGRyZXNzU2FtZUFzRGVsaXZlcnlBZGRyZXNzOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIHB1YmxpYyBjYXRlZ29yaWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgcHVibGljIGN1c3RvbWVyR3JvdXA6IHN0cmluZztcclxuXHJcbiAgICBwdWJsaWMgY29udGFjdERldGFpbHNDb25maWdOYW1lczogUmVsYXRpb25Db250YWN0RGV0YWlsc0NmZ05hbWVzID0ge1xyXG4gICAgICAgIHJlbGF0aW9uUGhvbmU6IHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25QaG9uZSxcclxuICAgICAgICByZWxhdGlvbkVtYWlsQWRkcmVzczogdGhpcy5jZmdOYW1lcy5SZWxhdGlvbkVtYWlsQWRkcmVzcyxcclxuICAgICAgICByZWxhdGlvbkludml0ZVRvQWNjb3VudDogdGhpcy5jZmdOYW1lcy5SZWxhdGlvbkludml0ZVRvQWNjb3VudFxyXG4gICAgfVxyXG4gICAgcHVibGljIHJlbGF0aW9uR2VuZXJhbENvbmZpZ05hbWVzOiBSZWxhdGlvbkdlbmVyYWxDZmdOYW1lcyA9IHtcclxuICAgICAgICByZWxhdGlvbkNvbXBhbnk6IHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25Db21wYW55LFxyXG4gICAgICAgIHJlbGF0aW9uRmlyc3ROYW1lOiB0aGlzLmNmZ05hbWVzLlJlbGF0aW9uRmlyc3ROYW1lLFxyXG4gICAgICAgIHJlbGF0aW9uUHJlZml4OiB0aGlzLmNmZ05hbWVzLlJlbGF0aW9uUHJlZml4LFxyXG4gICAgICAgIHJlbGF0aW9uTGFzdE5hbWU6IHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25MYXN0TmFtZSxcclxuICAgICAgICByZWxhdGlvbkdlbmRlcjogdGhpcy5jZmdOYW1lcy5SZWxhdGlvbkdlbmRlcixcclxuICAgICAgICBjb250YWN0RGV0YWlsczogdGhpcy5jb250YWN0RGV0YWlsc0NvbmZpZ05hbWVzXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcmVxdWVzdEZvclN1Z2dlc3Rpb25zOiBSZWxhdGlvblN1Z2dlc3Rpb25zUmVxdWVzdCA9IHt9O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICBwdWJsaWMgdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxyXG4gICAgICBwdWJsaWMgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgICAgcHVibGljIHRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICAgIHByb3RlY3RlZCBpbWFnZVNlcnZpY2U6IFRyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlLFxyXG4gICAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICBwcm90ZWN0ZWQgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgICAgcHJvdGVjdGVkIGZvcm1NYXN0ZXJTZXJ2aWNlOiBGb3JtTWFzdGVyU2VydmljZSxcclxuICAgICAgcHJvdGVjdGVkIHJlbGF0aW9uU2VydmljZTogVHJhbnNhY3Rpb25SZWxhdGlvblNlcnZpY2UsXHJcbiAgICAgIHByaXZhdGUgX3N1Z2dlc3Rpb25zU2VydmljZTogUmVsYXRpb25TdWdnZXN0aW9uc1NlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKFxyXG4gICAgICAgICAgdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsIHNlcnZpY2UsIGljb25DYWNoZVNlcnZpY2UsIHRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgICBkaWN0aW9uYXJ5U2VydmljZSwgaW1hZ2VTZXJ2aWNlLCBjaGFuZ2VEZXRlY3RvciwgZGlhbG9nU2VydmljZSwgZm9ybU1hc3RlclNlcnZpY2UsIHJlbGF0aW9uU2VydmljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLl9zdWdnZXN0aW9uc1NlcnZpY2UuaW5pdCh0aGlzLnJlbGF0aW9uLnJlbGF0aW9uVHlwZSk7XHJcbiAgICAgICAgdGhpcy5zdWJzLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMuc2NyZWVuQ29uZmlnU2VydmljZS5jb25maWdTZXQuc3Vic2NyaWJlKChjb25maWdPYmplY3RzOiBzdHJpbmdbXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbmZpZ09iamVjdHMgJiYgY29uZmlnT2JqZWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYXRlZ29yaWVzLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc2NyZWVuQ29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25DbGllbnREYXRhSGVhZGVyKS5pbW1lZGlhdGVseVZpc2libGUoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhdGVnb3JpZXMucHVzaCh0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlLmdldCgnQ0xJRU5UX0RBVEEnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnNjcmVlbkNvbmZpZ1NlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLlJlbGF0aW9uUHJlZmVyZW5jZXNIZWFkZXIpLmltbWVkaWF0ZWx5VmlzaWJsZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2F0ZWdvcmllcy5wdXNoKHRoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0KCdQUklWQUNZX1BSRUZFUkVOQ0VTJykpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25zU2VydmljZS5zdWdnZXN0ZWRSZWxhdGlvbkNsaWNrLnN1YnNjcmliZSgocmVsYXRpb246IFJlbGF0aW9uTGlzdE9iamVjdCkgPT4gdGhpcy5vblJlbGF0aW9uU3VnZ2VzdGlvbkNsaWNrKHJlbGF0aW9uKSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICBpZiAodGhpcy5jYXRlZ29yaWVzWzBdID09PSB0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlLmdldCgnUFJJVkFDWV9QUkVGRVJFTkNFUycpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlTmF2aWdhdGlvbkNsaWNrKCdQUklWQUNZX1BSRUZFUkVOQ0VTJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdWJtaXQoKTogYm9vbGVhbiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZvcm1NYXN0ZXJTZXJ2aWNlLnN1Ym1pdFNsYXZlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBvblJlbGF0aW9uU3VnZ2VzdGlvbkNsaWNrKHJlbGF0aW9uU3VnZ2VzdGVkOiBSZWxhdGlvbkxpc3RPYmplY3QpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBpZiAocmVsYXRpb25TdWdnZXN0ZWQpIHtcclxuICAgICAgICAgICAgY29uc3QgbG9ja1Jlc3VsdDogVmFsaWRhdGlvblJlc3VsdCA9IGF3YWl0IHRoaXMucmVsYXRpb25TZXJ2aWNlLmxvY2tSZWxhdGlvbihyZWxhdGlvblN1Z2dlc3RlZC5yZWxhdGlvblR5cGUsIHBhcnNlSW50KHJlbGF0aW9uU3VnZ2VzdGVkLnJlbGF0aW9uTnIsIDApKTtcclxuICAgICAgICAgICAgaWYgKCFsb2NrUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5zaG93RXJyb3IoJ1JFTEFUSU9OX0FMUkVBRFlfTE9DS0VEJywgdHJ1ZSwgbG9ja1Jlc3VsdC5tZXNzYWdlc1swXS5tZXNzYWdlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25zU2VydmljZS5oaWRlU2lkZWJhcigpO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3VnZ2VzdGVkUmVsYXRpb246IFJlbGF0aW9uQW55VHlwZSA9IGF3YWl0IHRoaXMucmVsYXRpb25TZXJ2aWNlLmdldFJlbGF0aW9uKHJlbGF0aW9uU3VnZ2VzdGVkLnJlbGF0aW9uVHlwZSwgcGFyc2VJbnQocmVsYXRpb25TdWdnZXN0ZWQucmVsYXRpb25OcikpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHN1Z2dlc3RlZFJlbGF0aW9uICYmIHN1Z2dlc3RlZFJlbGF0aW9uLmFkZHJlc3NlcyAmJiBzdWdnZXN0ZWRSZWxhdGlvbi5hZGRyZXNzZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHN1Z2dlc3RlZFJlbGF0aW9uLmFkZHJlc3Nlcy5zb3J0KChhLCBiKSA9PiBhLnNlcXVlbmNlIDwgYi5zZXF1ZW5jZSA/IC0xIDogMSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbGF0aW9uID0gc3VnZ2VzdGVkUmVsYXRpb247XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UucmVsYXRpb24gPSB0aGlzLnJlbGF0aW9uO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWxhdGlvbkNoYW5nZS5uZXh0KHRoaXMucmVsYXRpb24pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyByZWxhdGlvblNldCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBpZiAodGhpcy5yZWxhdGlvbktpbmQgPT09IFJlbGF0aW9uS2luZC5DdXN0b21lcikge1xyXG4gICAgICAgICAgICB0aGlzLmN1c3RvbWVyR3JvdXAgPSAodGhpcy5yZWxhdGlvbiBhcyBDdXN0b21lckZ1bGxPYmplY3QpLmN1c3RvbWVyR3JvdXA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGF3YWl0IHRoaXMuX2xvY2tSZWxhdGlvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBzZXRJbmRleERlbGl2ZXJ5QWRkcmVzcyhuYXdOcjogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgY29uc3QgYWRkcmVzczogQWRkcmVzcyA9IHRoaXMucmVsYXRpb24uYWRkcmVzc2VzLmZpbmQoYSA9PiBhLm5hd05yID09PSBuYXdOcik7XHJcbiAgICAgICAgaWYgKGFkZHJlc3MpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRGb3JtRGlydHkoKTtcclxuICAgICAgICAgICAgdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOciA9IG5hd05yO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS51cGRhdGVIZWFkZXJEZWxpdmVyeUFkZHJlc3ModGhpcy50cmFuc2FjdGlvbkluZm8udXVpZCwgbmF3TnIsIGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIHNldEluZGV4SW52b2ljZUFkZHJlc3MobmF3TnI6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGNvbnN0IGFkZHJlc3M6IEFkZHJlc3MgPSB0aGlzLnJlbGF0aW9uLmFkZHJlc3Nlcy5maW5kKGEgPT4gYS5uYXdOciA9PT0gbmF3TnIpO1xyXG4gICAgICAgIGlmIChhZGRyZXNzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Rm9ybURpcnR5KCk7XHJcbiAgICAgICAgICAgIHRoaXMuaW52b2ljZUFkZHJlc3NOYXdOciA9IG5hd05yO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS51cGRhdGVIZWFkZXJJbnZvaWNlQWRkcmVzcyh0aGlzLnRyYW5zYWN0aW9uSW5mby51dWlkLCBuYXdOciwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2hlY2tTYW1lQWRkcmVzcyhjaGVja2VkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGNoZWNrZWQpIHtcclxuICAgICAgICAgICAgLy8gdGhpcy5lZGl0QWRkcmVzc1R5cGUgPSBBZGRyZXNzVHlwZS5EZWxpdmVyeUFkZHJlc3M7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuc2VsZWN0QWRkcmVzcyh0aGlzLmRlbGl2ZXJ5QWRkcmVzcyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVJbnB1dENoYW5nZShyZXF1ZXN0OiBSZWxhdGlvblN1Z2dlc3Rpb25zUmVxdWVzdCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JlcXVlc3RGb3JTdWdnZXN0aW9ucyA9IE9iamVjdC5hc3NpZ24odGhpcy5fcmVxdWVzdEZvclN1Z2dlc3Rpb25zLCByZXF1ZXN0KTtcclxuICAgICAgICB0aGlzLl9zdWdnZXN0aW9uc1NlcnZpY2UucmVxdWVzdEZvclN1Z2dlc3Rpb25zID0gdGhpcy5fcmVxdWVzdEZvclN1Z2dlc3Rpb25zO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVOYXZpZ2F0aW9uQ2xpY2sobmF2OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgaWYgKG5hdiA9PT0gdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXQoJ0NMSUVOVF9EQVRBJykpIHtcclxuICAgICAgICB0aGlzLm5hdmlnYXRpb25JdGVtcy5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPSB0aGlzLm1haW5JdGVtcy5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQgLSB0aGlzLm5hdmlnYXRpb25JdGVtcy5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uSXRlbXMubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ID0gdGhpcy5wcmVmZXJlbmNlSXRlbXMubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0IC0gdGhpcy5uYXZpZ2F0aW9uSXRlbXMubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZUNoYW5nZUN1c3RvbUdyb3VwKGdyb3VwOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmN1c3RvbWVyR3JvdXAgPSBncm91cDtcclxuICAgICAgICBpZiAodGhpcy5yZWxhdGlvbktpbmQgPT09IFJlbGF0aW9uS2luZC5DdXN0b21lcikge1xyXG4gICAgICAgICAgICAodGhpcy5yZWxhdGlvbiBhcyBDdXN0b21lckZ1bGxPYmplY3QpLmN1c3RvbWVyR3JvdXAgPSB0aGlzLmN1c3RvbWVyR3JvdXA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCB0cmFuc2FjdGlvblNldCgpIHtcclxuICAgICAgICBzdXBlci50cmFuc2FjdGlvblNldCgpO1xyXG4gICAgICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uSW5mbykge1xyXG4gICAgICAgICAgICB0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yID0gdGhpcy50cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25BZGRyZXNzO1xyXG4gICAgICAgICAgICB0aGlzLmludm9pY2VBZGRyZXNzTmF3TnIgPSB0aGlzLnRyYW5zYWN0aW9uSW5mby5pbnZvaWNlQWRkcmVzcztcclxuICAgICAgICAgICAgdGhpcy5pbnZvaWNlQWRkcmVzc1NhbWVBc0RlbGl2ZXJ5QWRkcmVzcyA9IHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIgPT09IHRoaXMuaW52b2ljZUFkZHJlc3NOYXdOcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2V0Rmlyc3RBZGRyZXNzKGFkZHJlc3M6IEFkZHJlc3MpOiB2b2lkIHtcclxuICAgICAgICBhZGRyZXNzLnNlcXVlbmNlID0gMDtcclxuICAgICAgICBjb25zdCBhZGRyZXNzZXM6IEFkZHJlc3NbXSA9IHRoaXMucmVsYXRpb24uYWRkcmVzc2VzXHJcbiAgICAgICAgICAgIC5maWx0ZXIoYSA9PiBhLm5hd05yICE9PSBhZGRyZXNzLm5hd05yKVxyXG4gICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5zZXF1ZW5jZSA8IGIuc2VxdWVuY2UgPyAtMSA6IDEpO1xyXG4gICAgICAgIGxldCBzb3J0ZWRBZGRyZXNzZXM6IEFkZHJlc3NbXSA9IFthZGRyZXNzXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFkZHJlc3Nlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBhZGRyZXNzOiBBZGRyZXNzID0gYWRkcmVzc2VzW2ldO1xyXG4gICAgICAgICAgICBhZGRyZXNzLnNlcXVlbmNlID0gaSArIDE7XHJcbiAgICAgICAgICAgIHNvcnRlZEFkZHJlc3Nlcy5wdXNoKGFkZHJlc3MpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJlbGF0aW9uLmFkZHJlc3Nlcy5mb3JFYWNoKHJhID0+IHJhLnNlcXVlbmNlID0gc29ydGVkQWRkcmVzc2VzLmZpbmQoc2EgPT4gc2EubmF3TnIgPT09IHJhLm5hd05yKS5zZXF1ZW5jZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhc3luYyBfbG9ja1JlbGF0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGNvbnN0IGxvY2tSZXN1bHQ6IFZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCB0aGlzLnJlbGF0aW9uU2VydmljZS5sb2NrUmVsYXRpb24odGhpcy5yZWxhdGlvbi5yZWxhdGlvblR5cGUsIHBhcnNlSW50KHRoaXMucmVsYXRpb24ucmVsYXRpb25OdW1iZXIsIDApKTtcclxuICAgICAgICBpZiAoIWxvY2tSZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0luZm9ybWF0aW9uKGxvY2tSZXN1bHQubWVzc2FnZXNbMF0ubWVzc2FnZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLnJlYWRvbmx5ID0gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
402
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXJlbGF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLWhlYWRlci90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAvdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXJlbGF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUFFLFlBQVksRUFDeEIsV0FBVyxFQUNYLEtBQUssRUFDRyxNQUFNLEVBQ2QsU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scURBQXFELENBQUM7QUFJakYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQy9FLE9BQU8sRUFBQyxtQ0FBbUMsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzlGLE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFJL0UsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxn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WUFFMUIsMEJBQTBCOzs7MEJBaUw3QixLQUFLOzRCQUdMLEtBQUs7MEJBR0wsS0FBSzsyQ0FHTCxLQUFLO2lDQUdMLEtBQUs7d0NBR0wsTUFBTTtzQ0FHTixNQUFNOzhCQUdOLFNBQVMsU0FBQyxpQkFBaUIsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUM7d0JBRy9DLFNBQVMsU0FBQyxXQUFXLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDOzhCQUd6QyxTQUFTLFNBQUMsaUJBQWlCLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDO3dCQUcvQyxXQUFXLFNBQUMsNENBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LCBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Rm9ybU1hc3RlclNlcnZpY2V9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge1JlbGF0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL2VudW0vcmVsYXRpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtDdXN0b21lckZ1bGxPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9jdXN0b21lci1mdWxsLW9iamVjdC5ibyc7XHJcbmltcG9ydCB7QWRkcmVzc30gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL2FkZHJlc3MuYm8nO1xyXG5pbXBvcnQge1ZhbGlkYXRpb25SZXN1bHR9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL3ZhbGlkYXRpb24tcmVzdWx0JztcclxuaW1wb3J0IHtBZGRyZXNzVHlwZX0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL2VudW0vYWRkcmVzcy10eXBlLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSGVhZGVyUG9wdXBCYXNlQ29tcG9uZW50fSBmcm9tICcuL3RyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7YW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHtSZWxhdGlvbkdlbmVyYWxDZmdOYW1lc30gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlL3JlbGF0aW9uLWdlbmVyYWwtY2ZnLW5hbWVzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7UmVsYXRpb25Db250YWN0RGV0YWlsc0NmZ05hbWVzfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2UvcmVsYXRpb24tY29udGFjdC1kZXRhaWxzLWNmZy1uYW1lcy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1JlbGF0aW9uU3VnZ2VzdGlvbnNSZXF1ZXN0fSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2UvcmVsYXRpb24tc3VnZ2VzdGlvbnMtcmVxdWVzdC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblJlbGF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1yZWxhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtEaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtSZWxhdGlvblN1Z2dlc3Rpb25zU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9yZWxhdGlvbi1zdWdnZXN0aW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkV2ZW50U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1ldmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWltYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1JlbGF0aW9uTGlzdE9iamVjdH0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLWxpc3Qtb2JqZWN0LmJvJztcclxuaW1wb3J0IHtSZWxhdGlvbkFueVR5cGV9IGZyb20gJy4uLy4uLy4uL21vZGVsL3JlbGF0aW9uLWFueS10eXBlJztcclxuaW1wb3J0IHtEaWFsb2dSZXNwb25zZUludGVyZmFjZX0gZnJvbSBcIi4uLy4uLy4uL2ludGVyZmFjZS9kaWFsb2ctcmVzcG9uc2UuaW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7QXBwUG9wdXBCdXR0b25UeXBlfSBmcm9tIFwiLi4vLi4vY29yZS9lbnVtL2FwcC1wb3B1cC1idXR0b24tdHlwZS5lbnVtXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY28tdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXJlbGF0aW9uJyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPCEtLWNvLXRyYW5zYWN0aW9uLWZpbHRlci1jYXRlZ29yaWVzIFtjYXRlZ29yaWVzXT1cImNhdGVnb3JpZXNcIiAoY2F0ZWdvcnlDbGljayk9XCJoYW5kbGVOYXZpZ2F0aW9uQ2xpY2soJGV2ZW50KVwiPjwvY28tdHJhbnNhY3Rpb24tZmlsdGVyLWNhdGVnb3JpZXMtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLWNhdGVnb3J5LXdyYXBwZXIgY28tc21hbGwtc2Nyb2xsYmFyXCI+XHJcbiAgICAgICAgICAgIDxjby1mb3JtPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1yZWxhdGlvbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1zZWN0aW9uIGdlbmVyYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtc2VjdGlvbi1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJzAxJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbC1kZXNjcmlwdGlvblwiIFt0ZXh0Q29udGVudF09XCInUEVSU09OQUxfREFUQScgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtcmVhZC1vbmx5LXdyYXBwZXJcIiAqbmdJZj1cInJlYWRvbmx5IHx8IGZvcmNlUmVhZG9ubHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtZGF0YS1yZWFkLW9ubHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1kYXRhLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYXRhLWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cIidOQU1FX0FORF9BRERSRVNTJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b2dnbGUtY2hhbmdlXCIgW3RleHRDb250ZW50XT1cIidDSEFOR0UnIHwgbG9jYWxpemVcIiAoY2xpY2spPVwicmVxdWVzdENoYW5nZUN1c3RvbWVyKClcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtcmVsYXRpb24tZGF0YSByb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb3VibGUtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiIFt0ZXh0Q29udGVudF09XCInRklSU1RfTkFNRScgfCBsb2NhbGl6ZVwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiIFt0ZXh0Q29udGVudF09XCJyZWxhdGlvbi5maXJzdE5hbWVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ1BSRUZJWCcgfCBsb2NhbGl6ZVwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiIFt0ZXh0Q29udGVudF09XCJyZWxhdGlvbi5wcmVmaXhcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCIgW3RleHRDb250ZW50XT1cIidMQVNUX05BTUUnIHwgbG9jYWxpemVcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCIgW3RleHRDb250ZW50XT1cInJlbGF0aW9uLmZhbWlseU5hbWVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1hZGRyZXNzLWRhdGEgcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCIgW3RleHRDb250ZW50XT1cIidBRERSRVNTJyB8IGxvY2FsaXplXCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiIFt0ZXh0Q29udGVudF09XCJyZWxhdGlvbi5wcmltYXJ5SW52b2ljZUFkZHJlc3M/LnN0cmVldE5hbWUgKyAnICcgKyByZWxhdGlvbi5wcmltYXJ5SW52b2ljZUFkZHJlc3M/LmhvdXNlTm9cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ1BPU1RBTF9DT0RFJyB8IGxvY2FsaXplXCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiIFt0ZXh0Q29udGVudF09XCJyZWxhdGlvbi5wcmltYXJ5SW52b2ljZUFkZHJlc3M/LnBvc3RhbENvZGVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1hZGRyZXNzLWRhdGEgcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCIgW3RleHRDb250ZW50XT1cIidDSVRZJyB8IGxvY2FsaXplXCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiIFt0ZXh0Q29udGVudF09XCJyZWxhdGlvbi5wcmltYXJ5SW52b2ljZUFkZHJlc3M/LmNpdHlcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ0NPVU5UUlknIHwgbG9jYWxpemVcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCIgW3RleHRDb250ZW50XT1cInJlbGF0aW9uLnByaW1hcnlJbnZvaWNlQWRkcmVzcz8uY291bnRyeUlkXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1kYXRhLXJlYWQtb25seVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWRhdGEtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRhdGEtZGVzY3JpcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiJ0NPTlRBQ1RfT1BUSU9OUycgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1yZWxhdGlvbi1kYXRhIHJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiIFt0ZXh0Q29udGVudF09XCInRU1BSUwnIHwgbG9jYWxpemVcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCIgW3RleHRDb250ZW50XT1cInJlbGF0aW9uLnByaW1hcnlFbWFpbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiIFt0ZXh0Q29udGVudF09XCInUEhPTkUnIHwgbG9jYWxpemVcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCIgW3RleHRDb250ZW50XT1cInJlbGF0aW9uLnByaW1hcnlQaG9uZU51bWJlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtZGF0YS1jb2x1bW5cIiAqbmdJZj1cIiFyZWFkb25seSAmJiAhZm9yY2VSZWFkb25seVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y28tcmVsYXRpb24tdHlwZSAqbmdJZj1cInJlbGF0aW9uS2luZCA9PT0gcmVsS2luZC5DdXN0b21lclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlJlbGF0aW9uVHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSB8fCBmb3JjZVJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhyZWxhdGlvbildPVwicmVsYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9jby1yZWxhdGlvbi10eXBlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVsYXRpb25LaW5kID09PSByZWxLaW5kLkN1c3RvbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlbGF0aW9uLWN1c3RvbWVyLWdyb3Vwc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuUmVsYXRpb25DdXN0b21lckdyb3VwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSB8fCBmb3JjZVJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJjdXN0b21lckdyb3VwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJoYW5kbGVDaGFuZ2VDdXN0b21Hcm91cCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9yZWxhdGlvbi1jdXN0b21lci1ncm91cHM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y28tcmVsYXRpb24tZ2VuZXJhbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtjb25maWdOYW1lc109XCJyZWxhdGlvbkdlbmVyYWxDb25maWdOYW1lc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5IHx8IGZvcmNlUmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFsocmVsYXRpb24pXT1cInJlbGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVsYXRpb25UeXBlXT1cInJlbGF0aW9uLnR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWxhdGlvbktpbmRdPVwicmVsYXRpb25LaW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXRDaGFuZ2VGb3JTdWdnZXN0aW9ucyk9XCJoYW5kbGVJbnB1dENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tcmVsYXRpb24tZ2VuZXJhbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tcmVsYXRpb24tYWRkcmVzc2VzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHkgfHwgaGVhZGVyUmVhZG9ubHkgfHwgZm9yY2VSZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcF09XCJoZWFkZXJSZWFkb25seSA/IHRvb2x0aXBNZXNzYWdlIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhyZWxhdGlvbildPVwicmVsYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FkZHJlc3Nlc109XCJyZWxhdGlvbi5hY3RpdmVBZGRyZXNzZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiYWRkcmVzc1R5cGUuRGVsaXZlcnlBZGRyZXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZE5hd05yXT1cImRlbGl2ZXJ5QWRkcmVzc05hd05yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZE5hd05yQ2hhbmdlKT1cInNldEluZGV4RGVsaXZlcnlBZGRyZXNzKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLXJlbGF0aW9uLWFkZHJlc3Nlcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tcmVsYXRpb24tY29udGFjdC1kZXRhaWxzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnTmFtZXNdPVwiY29uZmlnTmFtZXM/LmNvbnRhY3REZXRhaWxzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSB8fCBmb3JjZVJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocmVsYXRpb24pXT1cInJlbGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWxhdGlvbktpbmRdPVwicmVsYXRpb25LaW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93SW52aXRlRm9yQWNjb3VudF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXRDaGFuZ2VGb3JTdWdnZXN0aW9ucyk9XCJpbnB1dENoYW5nZUZvclN1Z2dlc3Rpb25zLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tcmVsYXRpb24tY29udGFjdC1kZXRhaWxzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dJbnZvaWNlQWRkcmVzc1wiIGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXNlY3Rpb25cIiBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5SZWxhdGlvbkFkZHJlc3Nlc0hlYWRlclwiIHNjcmVlbkNvbmZpZ05hdGl2ZUVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVsYXRpb25LaW5kID09PSByZWxLaW5kLkN1c3RvbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtc2VjdGlvbi1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCInMDInXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwtZGVzY3JpcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiJ0lOVk9JQ0VfQUREUkVTUycgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1kYXRhLWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC1jaGVja2JveCBbcmVhZG9ubHldPVwicmVhZG9ubHkgfHwgaGVhZGVyUmVhZG9ubHkgfHwgZm9yY2VSZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImludm9pY2VBZGRyZXNzU2FtZUFzRGVsaXZlcnlBZGRyZXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidTQU1FX0FTX0RFTElWRVJZJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBdPVwiaGVhZGVyUmVhZG9ubHkgPyB0b29sdGlwTWVzc2FnZSA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImNoZWNrU2FtZUFkZHJlc3MoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28taW5wdXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWRlbGl2ZXJ5LWludm9pY2UtYWRkcmVzc1wiICpuZ0lmPVwiIWludm9pY2VBZGRyZXNzU2FtZUFzRGVsaXZlcnlBZGRyZXNzXCIgQHNob3dIaWRlSW52b2ljZUFkZHJlc3M+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1yZWxhdGlvbi1hZGRyZXNzZXNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHkgfHwgaGVhZGVyUmVhZG9ubHkgfHwgZm9yY2VSZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBdPVwiaGVhZGVyUmVhZG9ubHkgPyB0b29sdGlwTWVzc2FnZSA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKHJlbGF0aW9uKV09XCJyZWxhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FkZHJlc3Nlc109XCJyZWxhdGlvbi5hY3RpdmVBZGRyZXNzZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cImFkZHJlc3NUeXBlLkJpbGxpbmdBZGRyZXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWROYXdOcl09XCJpbnZvaWNlQWRkcmVzc05hd05yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWROYXdOckNoYW5nZSk9XCJzZXRJbmRleEludm9pY2VBZGRyZXNzKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby1yZWxhdGlvbi1hZGRyZXNzZXM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXJlbGF0aW9uLWNvbnRlbnRcIiAqbmdJZj1cInNob3dQcml2YWN5XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtc2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtc2VjdGlvbi1sYWJlbFwiIFt0ZXh0Q29udGVudF09XCInUFJJVkFDWV9QUkVGRVJFTkNFUycgfCBsb2NhbGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxjby1yZWxhdGlvbi1wcmVmZXJlbmNlcyBbcmVhZG9ubHldPVwicmVhZG9ubHkgfHwgZm9yY2VSZWFkb25seVwiIFtyZWxhdGlvbl09XCJyZWxhdGlvblwiPjwvY28tcmVsYXRpb24tcHJlZmVyZW5jZXM+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvY28tZm9ybT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIGAsXHJcbiAgICBhbmltYXRpb25zOiBbXHJcbiAgICAgICAgdHJpZ2dlcihcInNob3dIaWRlSW52b2ljZUFkZHJlc3NcIiwgW1xyXG4gICAgICAgICAgICBzdGF0ZShcInZvaWRcIiwgc3R5bGUoe2hlaWdodDogMCwgb3BhY2l0eTogMH0pKSxcclxuICAgICAgICAgICAgc3RhdGUoXCIqXCIsIHN0eWxlKHtoZWlnaHQ6IFwiKlwiLCBvcGFjaXR5OiAxfSkpLFxyXG4gICAgICAgICAgICB0cmFuc2l0aW9uKFwidm9pZCA9PiAqXCIsIGFuaW1hdGUoXCIyMDBtcyBlYXNlLWluLW91dFwiKSksXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oXCIqID0+IHZvaWRcIiwgYW5pbWF0ZShcIjIwMG1zIGVhc2Utb3V0XCIpKVxyXG4gICAgICAgIF0pXHJcbiAgICBdLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgIEZvcm1NYXN0ZXJTZXJ2aWNlLFxyXG4gICAgICBSZWxhdGlvblN1Z2dlc3Rpb25zU2VydmljZVxyXG4gICAgXSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uSGVhZGVyUG9wdXBSZWxhdGlvbkNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uSGVhZGVyUG9wdXBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICAgIHB1YmxpYyByZWFkb25seSBhZGRyZXNzVHlwZTogdHlwZW9mIEFkZHJlc3NUeXBlID0gQWRkcmVzc1R5cGU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjb25maWdOYW1lczogUmVsYXRpb25HZW5lcmFsQ2ZnTmFtZXM7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmb3JjZVJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93UHJpdmFjeTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93TWVzc2FnZUZvckNoYW5nZUN1c3RvbWVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93SW52b2ljZUFkZHJlc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGlucHV0Q2hhbmdlRm9yU3VnZ2VzdGlvbnM6IEV2ZW50RW1pdHRlcjxSZWxhdGlvblN1Z2dlc3Rpb25zUmVxdWVzdD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJlbGF0aW9uU3VnZ2VzdGlvbnNSZXF1ZXN0PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGNoYW5nZUN1c3RvbWVyUmVxdWVzdGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnbmF2aWdhdGlvbkl0ZW1zJywge3JlYWQ6IEVsZW1lbnRSZWZ9KVxyXG4gICAgcHVibGljIG5hdmlnYXRpb25JdGVtczogRWxlbWVudFJlZjtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdtYWluSXRlbXMnLCB7cmVhZDogRWxlbWVudFJlZn0pXHJcbiAgICBwdWJsaWMgbWFpbkl0ZW1zOiBFbGVtZW50UmVmO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ3ByZWZlcmVuY2VJdGVtcycsIHtyZWFkOiBFbGVtZW50UmVmfSlcclxuICAgIHB1YmxpYyBwcmVmZXJlbmNlSXRlbXM6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby10cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtcmVsYXRpb24nKVxyXG4gICAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGVsaXZlcnlBZGRyZXNzTmF3TnI6IG51bWJlciA9IDA7XHJcbiAgICBwdWJsaWMgaW52b2ljZUFkZHJlc3NOYXdOcjogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBpbnZvaWNlQWRkcmVzc1NhbWVBc0RlbGl2ZXJ5QWRkcmVzczogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBwdWJsaWMgY2F0ZWdvcmllczogc3RyaW5nW10gPSBbXTtcclxuICAgIHB1YmxpYyBjdXN0b21lckdyb3VwOiBzdHJpbmc7XHJcblxyXG4gICAgcHVibGljIGNvbnRhY3REZXRhaWxzQ29uZmlnTmFtZXM6IFJlbGF0aW9uQ29udGFjdERldGFpbHNDZmdOYW1lcyA9IHtcclxuICAgICAgICByZWxhdGlvblBob25lOiB0aGlzLmNmZ05hbWVzLlJlbGF0aW9uUGhvbmUsXHJcbiAgICAgICAgcmVsYXRpb25FbWFpbEFkZHJlc3M6IHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25FbWFpbEFkZHJlc3MsXHJcbiAgICAgICAgcmVsYXRpb25JbnZpdGVUb0FjY291bnQ6IHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25JbnZpdGVUb0FjY291bnRcclxuICAgIH1cclxuICAgIHB1YmxpYyByZWxhdGlvbkdlbmVyYWxDb25maWdOYW1lczogUmVsYXRpb25HZW5lcmFsQ2ZnTmFtZXMgPSB7XHJcbiAgICAgICAgcmVsYXRpb25Db21wYW55OiB0aGlzLmNmZ05hbWVzLlJlbGF0aW9uQ29tcGFueSxcclxuICAgICAgICByZWxhdGlvbkZpcnN0TmFtZTogdGhpcy5jZmdOYW1lcy5SZWxhdGlvbkZpcnN0TmFtZSxcclxuICAgICAgICByZWxhdGlvblByZWZpeDogdGhpcy5jZmdOYW1lcy5SZWxhdGlvblByZWZpeCxcclxuICAgICAgICByZWxhdGlvbkxhc3ROYW1lOiB0aGlzLmNmZ05hbWVzLlJlbGF0aW9uTGFzdE5hbWUsXHJcbiAgICAgICAgcmVsYXRpb25HZW5kZXI6IHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25HZW5kZXIsXHJcbiAgICAgICAgY29udGFjdERldGFpbHM6IHRoaXMuY29udGFjdERldGFpbHNDb25maWdOYW1lc1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3JlcXVlc3RGb3JTdWdnZXN0aW9uczogUmVsYXRpb25TdWdnZXN0aW9uc1JlcXVlc3QgPSB7fTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgcHVibGljIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICAgIHB1YmxpYyB0cmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgICBwcm90ZWN0ZWQgZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgICBwcm90ZWN0ZWQgaW1hZ2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkltYWdlU2VydmljZSxcclxuICAgICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgcHJvdGVjdGVkIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICAgIHByb3RlY3RlZCBmb3JtTWFzdGVyU2VydmljZTogRm9ybU1hc3RlclNlcnZpY2UsXHJcbiAgICAgIHByb3RlY3RlZCByZWxhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uUmVsYXRpb25TZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIF9zdWdnZXN0aW9uc1NlcnZpY2U6IFJlbGF0aW9uU3VnZ2VzdGlvbnNTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihcclxuICAgICAgICAgIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLCBzZXJ2aWNlLCBpY29uQ2FjaGVTZXJ2aWNlLCB0cmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgICAgZGljdGlvbmFyeVNlcnZpY2UsIGltYWdlU2VydmljZSwgY2hhbmdlRGV0ZWN0b3IsIGRpYWxvZ1NlcnZpY2UsIGZvcm1NYXN0ZXJTZXJ2aWNlLCByZWxhdGlvblNlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5fc3VnZ2VzdGlvbnNTZXJ2aWNlLmluaXQodGhpcy5yZWxhdGlvbi5yZWxhdGlvblR5cGUpO1xyXG4gICAgICAgIHRoaXMuc3Vicy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLnNjcmVlbkNvbmZpZ1NlcnZpY2UuY29uZmlnU2V0LnN1YnNjcmliZSgoY29uZmlnT2JqZWN0czogc3RyaW5nW10pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChjb25maWdPYmplY3RzICYmIGNvbmZpZ09iamVjdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2F0ZWdvcmllcy5sZW5ndGggPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnNjcmVlbkNvbmZpZ1NlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLlJlbGF0aW9uQ2xpZW50RGF0YUhlYWRlcikuaW1tZWRpYXRlbHlWaXNpYmxlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYXRlZ29yaWVzLnB1c2godGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXQoJ0NMSUVOVF9EQVRBJykpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zY3JlZW5Db25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5SZWxhdGlvblByZWZlcmVuY2VzSGVhZGVyKS5pbW1lZGlhdGVseVZpc2libGUoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhdGVnb3JpZXMucHVzaCh0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlLmdldCgnUFJJVkFDWV9QUkVGRVJFTkNFUycpKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICB0aGlzLl9zdWdnZXN0aW9uc1NlcnZpY2Uuc3VnZ2VzdGVkUmVsYXRpb25DbGljay5zdWJzY3JpYmUoKHJlbGF0aW9uOiBSZWxhdGlvbkxpc3RPYmplY3QpID0+IHRoaXMub25SZWxhdGlvblN1Z2dlc3Rpb25DbGljayhyZWxhdGlvbikpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY2F0ZWdvcmllc1swXSA9PT0gdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXQoJ1BSSVZBQ1lfUFJFRkVSRU5DRVMnKSkge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZU5hdmlnYXRpb25DbGljaygnUFJJVkFDWV9QUkVGRVJFTkNFUycpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3VibWl0KCk6IGJvb2xlYW4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5mb3JtTWFzdGVyU2VydmljZS5zdWJtaXRTbGF2ZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgcmVxdWVzdENoYW5nZUN1c3RvbWVyKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICBpZih0aGlzLnNob3dNZXNzYWdlRm9yQ2hhbmdlQ3VzdG9tZXIpIHtcclxuICAgICAgICBjb25zdCByZXNwb25zZTogRGlhbG9nUmVzcG9uc2VJbnRlcmZhY2UgPSBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd1llc05vKCdERUxFVEVfVFJBTlNBQ1RJT04nLCAnREVMRVRFX0NVU1RPTUVSX1dJTF9ERUxFVEVfVFJBTlNBQ1RJT04nKTtcclxuICAgICAgICBjb25zdCBzaG91bGREZWxldGU6IGJvb2xlYW4gPSByZXNwb25zZS5idXR0b24gPT09IEFwcFBvcHVwQnV0dG9uVHlwZS5ZZXM7XHJcbiAgICAgICAgaWYoc2hvdWxkRGVsZXRlKSB7XHJcbiAgICAgICAgICB0aGlzLmNoYW5nZUN1c3RvbWVyUmVxdWVzdGVkLm5leHQoKTtcclxuICAgICAgICAgIHRoaXMucmVhZG9ubHkgPSB0aGlzLmZvcmNlUmVhZG9ubHkgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5yZWFkb25seSA9IHRoaXMuZm9yY2VSZWFkb25seSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIG9uUmVsYXRpb25TdWdnZXN0aW9uQ2xpY2socmVsYXRpb25TdWdnZXN0ZWQ6IFJlbGF0aW9uTGlzdE9iamVjdCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGlmIChyZWxhdGlvblN1Z2dlc3RlZCkge1xyXG4gICAgICAgICAgICBjb25zdCBsb2NrUmVzdWx0OiBWYWxpZGF0aW9uUmVzdWx0ID0gYXdhaXQgdGhpcy5yZWxhdGlvblNlcnZpY2UubG9ja1JlbGF0aW9uKHJlbGF0aW9uU3VnZ2VzdGVkLnJlbGF0aW9uVHlwZSwgcGFyc2VJbnQocmVsYXRpb25TdWdnZXN0ZWQucmVsYXRpb25OciwgMCkpO1xyXG4gICAgICAgICAgICBpZiAoIWxvY2tSZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dFcnJvcignUkVMQVRJT05fQUxSRUFEWV9MT0NLRUQnLCB0cnVlLCBsb2NrUmVzdWx0Lm1lc3NhZ2VzWzBdLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc3VnZ2VzdGlvbnNTZXJ2aWNlLmhpZGVTaWRlYmFyKCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzdWdnZXN0ZWRSZWxhdGlvbjogUmVsYXRpb25BbnlUeXBlID0gYXdhaXQgdGhpcy5yZWxhdGlvblNlcnZpY2UuZ2V0UmVsYXRpb24ocmVsYXRpb25TdWdnZXN0ZWQucmVsYXRpb25UeXBlLCBwYXJzZUludChyZWxhdGlvblN1Z2dlc3RlZC5yZWxhdGlvbk5yKSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoc3VnZ2VzdGVkUmVsYXRpb24gJiYgc3VnZ2VzdGVkUmVsYXRpb24uYWRkcmVzc2VzICYmIHN1Z2dlc3RlZFJlbGF0aW9uLmFkZHJlc3Nlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3VnZ2VzdGVkUmVsYXRpb24uYWRkcmVzc2VzLnNvcnQoKGEsIGIpID0+IGEuc2VxdWVuY2UgPCBiLnNlcXVlbmNlID8gLTEgOiAxKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHRoaXMucmVsYXRpb24gPSBzdWdnZXN0ZWRSZWxhdGlvbjtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZS5yZWxhdGlvbiA9IHRoaXMucmVsYXRpb247XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbGF0aW9uQ2hhbmdlLm5leHQodGhpcy5yZWxhdGlvbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIHJlbGF0aW9uU2V0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGlmICh0aGlzLnJlbGF0aW9uS2luZCA9PT0gUmVsYXRpb25LaW5kLkN1c3RvbWVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tZXJHcm91cCA9ICh0aGlzLnJlbGF0aW9uIGFzIEN1c3RvbWVyRnVsbE9iamVjdCkuY3VzdG9tZXJHcm91cDtcclxuICAgICAgICB9XHJcbiAgICAgICAgYXdhaXQgdGhpcy5fbG9ja1JlbGF0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIHNldEluZGV4RGVsaXZlcnlBZGRyZXNzKG5hd05yOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBjb25zdCBhZGRyZXNzOiBBZGRyZXNzID0gdGhpcy5yZWxhdGlvbi5hZGRyZXNzZXMuZmluZChhID0+IGEubmF3TnIgPT09IG5hd05yKTtcclxuICAgICAgICBpZiAoYWRkcmVzcykge1xyXG4gICAgICAgICAgICB0aGlzLnNldEZvcm1EaXJ0eSgpO1xyXG4gICAgICAgICAgICB0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yID0gbmF3TnI7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnVwZGF0ZUhlYWRlckRlbGl2ZXJ5QWRkcmVzcyh0aGlzLnRyYW5zYWN0aW9uSW5mby51dWlkLCBuYXdOciwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgc2V0SW5kZXhJbnZvaWNlQWRkcmVzcyhuYXdOcjogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgY29uc3QgYWRkcmVzczogQWRkcmVzcyA9IHRoaXMucmVsYXRpb24uYWRkcmVzc2VzLmZpbmQoYSA9PiBhLm5hd05yID09PSBuYXdOcik7XHJcbiAgICAgICAgaWYgKGFkZHJlc3MpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRGb3JtRGlydHkoKTtcclxuICAgICAgICAgICAgdGhpcy5pbnZvaWNlQWRkcmVzc05hd05yID0gbmF3TnI7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnVwZGF0ZUhlYWRlckludm9pY2VBZGRyZXNzKHRoaXMudHJhbnNhY3Rpb25JbmZvLnV1aWQsIG5hd05yLCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjaGVja1NhbWVBZGRyZXNzKGNoZWNrZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICBpZiAoY2hlY2tlZCkge1xyXG4gICAgICAgICAgICAvLyB0aGlzLmVkaXRBZGRyZXNzVHlwZSA9IEFkZHJlc3NUeXBlLkRlbGl2ZXJ5QWRkcmVzcztcclxuICAgICAgICAgICAgLy8gdGhpcy5zZWxlY3RBZGRyZXNzKHRoaXMuZGVsaXZlcnlBZGRyZXNzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZUlucHV0Q2hhbmdlKHJlcXVlc3Q6IFJlbGF0aW9uU3VnZ2VzdGlvbnNSZXF1ZXN0KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcmVxdWVzdEZvclN1Z2dlc3Rpb25zID0gT2JqZWN0LmFzc2lnbih0aGlzLl9yZXF1ZXN0Rm9yU3VnZ2VzdGlvbnMsIHJlcXVlc3QpO1xyXG4gICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25zU2VydmljZS5yZXF1ZXN0Rm9yU3VnZ2VzdGlvbnMgPSB0aGlzLl9yZXF1ZXN0Rm9yU3VnZ2VzdGlvbnM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZU5hdmlnYXRpb25DbGljayhuYXY6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICBpZiAobmF2ID09PSB0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlLmdldCgnQ0xJRU5UX0RBVEEnKSkge1xyXG4gICAgICAgIHRoaXMubmF2aWdhdGlvbkl0ZW1zLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCA9IHRoaXMubWFpbkl0ZW1zLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdCAtIHRoaXMubmF2aWdhdGlvbkl0ZW1zLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm5hdmlnYXRpb25JdGVtcy5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPSB0aGlzLnByZWZlcmVuY2VJdGVtcy5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQgLSB0aGlzLm5hdmlnYXRpb25JdGVtcy5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlQ2hhbmdlQ3VzdG9tR3JvdXAoZ3JvdXA6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY3VzdG9tZXJHcm91cCA9IGdyb3VwO1xyXG4gICAgICAgIGlmICh0aGlzLnJlbGF0aW9uS2luZCA9PT0gUmVsYXRpb25LaW5kLkN1c3RvbWVyKSB7XHJcbiAgICAgICAgICAgICh0aGlzLnJlbGF0aW9uIGFzIEN1c3RvbWVyRnVsbE9iamVjdCkuY3VzdG9tZXJHcm91cCA9IHRoaXMuY3VzdG9tZXJHcm91cDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHRyYW5zYWN0aW9uU2V0KCkge1xyXG4gICAgICAgIHN1cGVyLnRyYW5zYWN0aW9uU2V0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMudHJhbnNhY3Rpb25JbmZvKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIgPSB0aGlzLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbkFkZHJlc3M7XHJcbiAgICAgICAgICAgIHRoaXMuaW52b2ljZUFkZHJlc3NOYXdOciA9IHRoaXMudHJhbnNhY3Rpb25JbmZvLmludm9pY2VBZGRyZXNzO1xyXG4gICAgICAgICAgICB0aGlzLmludm9pY2VBZGRyZXNzU2FtZUFzRGVsaXZlcnlBZGRyZXNzID0gdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOciA9PT0gdGhpcy5pbnZvaWNlQWRkcmVzc05hd05yO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zZXRGaXJzdEFkZHJlc3MoYWRkcmVzczogQWRkcmVzcyk6IHZvaWQge1xyXG4gICAgICAgIGFkZHJlc3Muc2VxdWVuY2UgPSAwO1xyXG4gICAgICAgIGNvbnN0IGFkZHJlc3NlczogQWRkcmVzc1tdID0gdGhpcy5yZWxhdGlvbi5hZGRyZXNzZXNcclxuICAgICAgICAgICAgLmZpbHRlcihhID0+IGEubmF3TnIgIT09IGFkZHJlc3MubmF3TnIpXHJcbiAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLnNlcXVlbmNlIDwgYi5zZXF1ZW5jZSA/IC0xIDogMSk7XHJcbiAgICAgICAgbGV0IHNvcnRlZEFkZHJlc3NlczogQWRkcmVzc1tdID0gW2FkZHJlc3NdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWRkcmVzc2VzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFkZHJlc3M6IEFkZHJlc3MgPSBhZGRyZXNzZXNbaV07XHJcbiAgICAgICAgICAgIGFkZHJlc3Muc2VxdWVuY2UgPSBpICsgMTtcclxuICAgICAgICAgICAgc29ydGVkQWRkcmVzc2VzLnB1c2goYWRkcmVzcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucmVsYXRpb24uYWRkcmVzc2VzLmZvckVhY2gocmEgPT4gcmEuc2VxdWVuY2UgPSBzb3J0ZWRBZGRyZXNzZXMuZmluZChzYSA9PiBzYS5uYXdOciA9PT0gcmEubmF3TnIpLnNlcXVlbmNlKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFzeW5jIF9sb2NrUmVsYXRpb24oKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgY29uc3QgbG9ja1Jlc3VsdDogVmFsaWRhdGlvblJlc3VsdCA9IGF3YWl0IHRoaXMucmVsYXRpb25TZXJ2aWNlLmxvY2tSZWxhdGlvbih0aGlzLnJlbGF0aW9uLnJlbGF0aW9uVHlwZSwgcGFyc2VJbnQodGhpcy5yZWxhdGlvbi5yZWxhdGlvbk51bWJlciwgMCkpO1xyXG4gICAgICAgIGlmICghbG9ja1Jlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5zaG93SW5mb3JtYXRpb24obG9ja1Jlc3VsdC5tZXNzYWdlc1swXS5tZXNzYWdlLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMucmVhZG9ubHkgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVhZG9ubHkgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19