@taiga-ui/addon-commerce 3.14.0-dev.main-6fca3d4 → 3.14.0-dev.main-49a682e

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 (32) hide show
  1. package/bundles/taiga-ui-addon-commerce-components-card.umd.js +16 -16
  2. package/bundles/taiga-ui-addon-commerce-components-card.umd.js.map +1 -1
  3. package/bundles/taiga-ui-addon-commerce-components-input-card-grouped.umd.js +40 -40
  4. package/bundles/taiga-ui-addon-commerce-components-input-card-grouped.umd.js.map +1 -1
  5. package/bundles/taiga-ui-addon-commerce-components-input-card.umd.js +17 -17
  6. package/bundles/taiga-ui-addon-commerce-components-input-card.umd.js.map +1 -1
  7. package/bundles/taiga-ui-addon-commerce-components-input-cvc.umd.js +8 -8
  8. package/bundles/taiga-ui-addon-commerce-components-input-cvc.umd.js.map +1 -1
  9. package/bundles/taiga-ui-addon-commerce-components-input-expire.umd.js +7 -7
  10. package/bundles/taiga-ui-addon-commerce-components-input-expire.umd.js.map +1 -1
  11. package/bundles/taiga-ui-addon-commerce-components-money.umd.js +8 -8
  12. package/bundles/taiga-ui-addon-commerce-components-money.umd.js.map +1 -1
  13. package/esm2015/components/card/card.component.js +17 -17
  14. package/esm2015/components/input-card/input-card.component.js +15 -15
  15. package/esm2015/components/input-card/input-card.directive.js +4 -4
  16. package/esm2015/components/input-card-grouped/input-card-grouped.component.js +41 -41
  17. package/esm2015/components/input-cvc/input-cvc.component.js +9 -9
  18. package/esm2015/components/input-expire/input-expire.component.js +8 -8
  19. package/esm2015/components/money/money.component.js +9 -9
  20. package/fesm2015/taiga-ui-addon-commerce-components-card.js +16 -16
  21. package/fesm2015/taiga-ui-addon-commerce-components-card.js.map +1 -1
  22. package/fesm2015/taiga-ui-addon-commerce-components-input-card-grouped.js +40 -40
  23. package/fesm2015/taiga-ui-addon-commerce-components-input-card-grouped.js.map +1 -1
  24. package/fesm2015/taiga-ui-addon-commerce-components-input-card.js +17 -17
  25. package/fesm2015/taiga-ui-addon-commerce-components-input-card.js.map +1 -1
  26. package/fesm2015/taiga-ui-addon-commerce-components-input-cvc.js +8 -8
  27. package/fesm2015/taiga-ui-addon-commerce-components-input-cvc.js.map +1 -1
  28. package/fesm2015/taiga-ui-addon-commerce-components-input-expire.js +7 -7
  29. package/fesm2015/taiga-ui-addon-commerce-components-input-expire.js.map +1 -1
  30. package/fesm2015/taiga-ui-addon-commerce-components-money.js +8 -8
  31. package/fesm2015/taiga-ui-addon-commerce-components-money.js.map +1 -1
  32. package/package.json +1 -1
@@ -10,16 +10,16 @@ import * as i1 from "@taiga-ui/core";
10
10
  import * as i2 from "@taiga-ui/kit";
11
11
  import * as i3 from "@angular/forms";
12
12
  const icons = {
13
- mir: `tuiIconMir`,
14
- visa: `tuiIconVisa`,
15
- electron: `tuiIconElectron`,
16
- mastercard: `tuiIconMastercard`,
17
- maestro: `tuiIconMaestro`,
13
+ mir: 'tuiIconMir',
14
+ visa: 'tuiIconVisa',
15
+ electron: 'tuiIconElectron',
16
+ mastercard: 'tuiIconMastercard',
17
+ maestro: 'tuiIconMaestro',
18
18
  };
19
19
  export class TuiInputCardComponent extends AbstractTuiControl {
20
20
  constructor(control, changeDetectorRef) {
21
21
  super(control, changeDetectorRef);
22
- this.cardSrc = ``;
22
+ this.cardSrc = '';
23
23
  this.autocompleteEnabled = false;
24
24
  this.binChange = new EventEmitter();
25
25
  this.textMaskOptions = {
@@ -42,7 +42,7 @@ export class TuiInputCardComponent extends AbstractTuiControl {
42
42
  return this.cardSrc || this.defaultCardIcon;
43
43
  }
44
44
  get autocomplete() {
45
- return this.autocompleteEnabled ? `cc-number` : `off`;
45
+ return this.autocompleteEnabled ? 'cc-number' : 'off';
46
46
  }
47
47
  get paymentSystem() {
48
48
  return tuiGetPaymentSystem(this.value);
@@ -52,12 +52,12 @@ export class TuiInputCardComponent extends AbstractTuiControl {
52
52
  }
53
53
  get formattedCard() {
54
54
  return this.value
55
- .split(``)
55
+ .split('')
56
56
  .map((char, index) => (index && index % 4 === 0 ? ` ${char}` : char))
57
- .join(``);
57
+ .join('');
58
58
  }
59
59
  onValueChange(value) {
60
- const parsed = value.split(` `).join(``);
60
+ const parsed = value.split(' ').join('');
61
61
  const currentBin = this.bin;
62
62
  this.updateValue(parsed);
63
63
  const newBin = this.bin;
@@ -77,7 +77,7 @@ export class TuiInputCardComponent extends AbstractTuiControl {
77
77
  }
78
78
  }
79
79
  getFallbackValue() {
80
- return ``;
80
+ return '';
81
81
  }
82
82
  }
83
83
  TuiInputCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputCardComponent, deps: [{ token: NgControl, optional: true, self: true }, { token: ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
@@ -94,9 +94,9 @@ __decorate([
94
94
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputCardComponent, decorators: [{
95
95
  type: Component,
96
96
  args: [{
97
- selector: `tui-input-card`,
98
- templateUrl: `./input-card.template.html`,
99
- styleUrls: [`./input-card.style.less`],
97
+ selector: 'tui-input-card',
98
+ templateUrl: './input-card.template.html',
99
+ styleUrls: ['./input-card.style.less'],
100
100
  changeDetection: ChangeDetectionStrategy.OnPush,
101
101
  providers: [
102
102
  tuiAsFocusableItemAccessor(TuiInputCardComponent),
@@ -123,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
123
123
  }], binChange: [{
124
124
  type: Output
125
125
  }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jb21tZXJjZS9jb21wb25lbnRzL2lucHV0LWNhcmQvaW5wdXQtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jb21tZXJjZS9jb21wb25lbnRzL2lucHV0LWNhcmQvaW5wdXQtY2FyZC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFakUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUNILGtCQUFrQixFQUNsQixZQUFZLEVBQ1osMEJBQTBCLEVBRTFCLGNBQWMsR0FFakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLDhCQUE4QixFQUFxQixNQUFNLGdCQUFnQixDQUFDOzs7OztBQUdsRixNQUFNLEtBQUssR0FBcUM7SUFDNUMsR0FBRyxFQUFFLFlBQVk7SUFDakIsSUFBSSxFQUFFLGFBQWE7SUFDbkIsUUFBUSxFQUFFLGlCQUFpQjtJQUMzQixVQUFVLEVBQUUsbUJBQW1CO0lBQy9CLE9BQU8sRUFBRSxnQkFBZ0I7Q0FDNUIsQ0FBQztBQVlGLE1BQU0sT0FBTyxxQkFDVCxTQUFRLGtCQUEwQjtJQXVCbEMsWUFJSSxPQUF5QixFQUNFLGlCQUFvQztRQUUvRCxLQUFLLENBQUMsT0FBTyxFQUFF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LEdBQUcsQ0FBQztRQUV4QixJQUFJLFVBQVUsS0FBSyxNQUFNLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDL0I7SUFDTCxDQUFDO0lBRVMsZ0JBQWdCO1FBQ3RCLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQzs7bUhBdEdRLHFCQUFxQixrQkEyQmxCLFNBQVMseUNBRVQsaUJBQWlCO3VHQTdCcEIscUJBQXFCLDBKQUxuQjtRQUNQLDBCQUEwQixDQUFDLHFCQUFxQixDQUFDO1FBQ2pELFlBQVksQ0FBQyxxQkFBcUIsQ0FBQztLQUN0QyxpRUFNVSw4QkFBOEIsdUVDakQ3Qyw4cUJBdUJBO0FEK0JJO0lBREMsY0FBYyxFQUFFO3NEQUNpQjtBQUlsQztJQURDLGNBQWMsRUFBRTtrRUFDVzs0RkFibkIscUJBQXFCO2tCQVZqQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFdBQVcsRUFBRSw0QkFBNEI7b0JBQ3pDLFNBQVMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO29CQUN0QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFO3dCQUNQLDBCQUEwQix1QkFBdUI7d0JBQ2pELFlBQVksdUJBQXVCO3FCQUN0QztpQkFDSjs7MEJBMEJRLFFBQVE7OzBCQUNSLElBQUk7OzBCQUNKLE1BQU07MkJBQUMsU0FBUzs7MEJBRWhCLE1BQU07MkJBQUMsaUJBQWlCOzRDQXhCWixLQUFLO3NCQURyQixTQUFTO3VCQUFDLDhCQUE4QjtnQkFLekMsT0FBTztzQkFGTixLQUFLO2dCQU1OLG1CQUFtQjtzQkFGbEIsS0FBSztnQkFLRyxTQUFTO3NCQURqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VFVJX0NBUkRfTUFTS30gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNvbW1lcmNlL2NvbnN0YW50cyc7XG5pbXBvcnQge1R1aVBheW1lbnRTeXN0ZW19IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jb21tZXJjZS90eXBlcyc7XG5pbXBvcnQge3R1aUdldFBheW1lbnRTeXN0ZW19IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jb21tZXJjZS91dGlscyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpQ29udHJvbCxcbiAgICB0dWlBc0NvbnRyb2wsXG4gICAgdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3IsXG4gICAgVHVpQXV0b2ZpbGxGaWVsZE5hbWUsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LCBUdWlUZXh0TWFza09wdGlvbnN9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcblxuY29uc3QgaWNvbnM6IFJlY29yZDxUdWlQYXltZW50U3lzdGVtLCBzdHJpbmc+ID0ge1xuICAgIG1pcjogYHR1aUljb25NaXJgLFxuICAgIHZpc2E6IGB0dWlJY29uVmlzYWAsXG4gICAgZWxlY3Ryb246IGB0dWlJY29uRWxlY3Ryb25gLFxuICAgIG1hc3RlcmNhcmQ6IGB0dWlJY29uTWFzdGVyY2FyZGAsXG4gICAgbWFlc3RybzogYHR1aUljb25NYWVzdHJvYCxcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBgdHVpLWlucHV0LWNhcmRgLFxuICAgIHRlbXBsYXRlVXJsOiBgLi9pbnB1dC1jYXJkLnRlbXBsYXRlLmh0bWxgLFxuICAgIHN0eWxlVXJsczogW2AuL2lucHV0LWNhcmQuc3R5bGUubGVzc2BdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcihUdWlJbnB1dENhcmRDb21wb25lbnQpLFxuICAgICAgICB0dWlBc0NvbnRyb2woVHVpSW5wdXRDYXJkQ29tcG9uZW50KSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dENhcmRDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpQ29udHJvbDxzdHJpbmc+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0PzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGNhcmRTcmM6IFBvbHltb3JwaGV1c0NvbnRlbnQgPSBgYDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBhdXRvY29tcGxldGVFbmFibGVkID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBiaW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IG51bGw+KCk7XG5cbiAgICByZWFkb25seSB0ZXh0TWFza09wdGlvbnM6IFR1aVRleHRNYXNrT3B0aW9ucyA9IHtcbiAgICAgICAgbWFzazogVFVJX0NBUkRfTUFTSyxcbiAgICAgICAgZ3VpZGU6IGZhbHNlLFxuICAgICAgICBwaXBlOiBjb25mb3JtZWRWYWx1ZSA9PiBjb25mb3JtZWRWYWx1ZS50cmltKCksXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBkZWZhdWx0Q2FyZEljb24oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHtwYXltZW50U3lzdGVtfSA9IHRoaXM7XG5cbiAgICAgICAgcmV0dXJuIHBheW1lbnRTeXN0ZW0gPyBpY29uc1twYXltZW50U3lzdGVtXSA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dCA/IHRoaXMuaW5wdXQubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuaW5wdXQgJiYgdGhpcy5pbnB1dC5mb2N1c2VkO1xuICAgIH1cblxuICAgIGdldCBpY29uKCk6IFBvbHltb3JwaGV1c0NvbnRlbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5jYXJkU3JjIHx8IHRoaXMuZGVmYXVsdENhcmRJY29uO1xuICAgIH1cblxuICAgIGdldCBhdXRvY29tcGxldGUoKTogVHVpQXV0b2ZpbGxGaWVsZE5hbWUge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRvY29tcGxldGVFbmFibGVkID8gYGNjLW51bWJlcmAgOiBgb2ZmYDtcbiAgICB9XG5cbiAgICBnZXQgcGF5bWVudFN5c3RlbSgpOiBUdWlQYXltZW50U3lzdGVtIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0dWlHZXRQYXltZW50U3lzdGVtKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBiaW4oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlLmxlbmd0aCA8IDYgPyBudWxsIDogdGhpcy52YWx1ZS5zbGljZSgwLCA2KTtcbiAgICB9XG5cbiAgICBnZXQgZm9ybWF0dGVkQ2FyZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZVxuICAgICAgICAgICAgLnNwbGl0KGBgKVxuICAgICAgICAgICAgLm1hcCgoY2hhciwgaW5kZXgpID0+IChpbmRleCAmJiBpbmRleCAlIDQgPT09IDAgPyBgICR7Y2hhcn1gIDogY2hhcikpXG4gICAgICAgICAgICAuam9pbihgYCk7XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IHZhbHVlLnNwbGl0KGAgYCkuam9pbihgYCk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRCaW4gPSB0aGlzLmJpbjtcblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHBhcnNlZCk7XG5cbiAgICAgICAgY29uc3QgbmV3QmluID0gdGhpcy5iaW47XG5cbiAgICAgICAgaWYgKGN1cnJlbnRCaW4gIT09IG5ld0Jpbikge1xuICAgICAgICAgICAgdGhpcy5iaW5DaGFuZ2UuZW1pdChuZXdCaW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudEJpbiA9IHRoaXMuYmluO1xuXG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuXG4gICAgICAgIGNvbnN0IG5ld0JpbiA9IHRoaXMuYmluO1xuXG4gICAgICAgIGlmIChjdXJyZW50QmluICE9PSBuZXdCaW4pIHtcbiAgICAgICAgICAgIHRoaXMuYmluQ2hhbmdlLmVtaXQobmV3QmluKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgYDtcbiAgICB9XG59XG4iLCI8dHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRcbiAgICB0dWlWYWx1ZUFjY2Vzc29yXG4gICAgY2xhc3M9XCJ0LWlucHV0XCJcbiAgICBbdHVpVGV4dGZpZWxkQ3VzdG9tQ29udGVudF09XCJpY29uXCJcbiAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2ZvY3VzYWJsZV09XCJmb2N1c2FibGVcIlxuICAgIFtuYXRpdmVJZF09XCJuYXRpdmVJZFwiXG4gICAgW2ludmFsaWRdPVwiY29tcHV0ZWRJbnZhbGlkXCJcbiAgICBbcHNldWRvSG92ZXJdPVwicHNldWRvSG92ZXJcIlxuICAgIFtwc2V1ZG9BY3RpdmVdPVwicHNldWRvQWN0aXZlXCJcbiAgICBbcHNldWRvRm9jdXNdPVwicHNldWRvRm9jdXNcIlxuICAgIFt0ZXh0TWFza109XCJ0ZXh0TWFza09wdGlvbnNcIlxuICAgIFt2YWx1ZV09XCJmb3JtYXR0ZWRDYXJkXCJcbiAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAoZm9jdXNlZENoYW5nZSk9XCJvbkZvY3VzZWQoJGV2ZW50KVwiXG4+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50XG4gICAgICAgIHNlbGVjdD1cImlucHV0XCJcbiAgICAgICAgbmdQcm9qZWN0QXM9XCJpbnB1dFwiXG4gICAgPjwvbmctY29udGVudD5cbjwvdHVpLXByaW1pdGl2ZS10ZXh0ZmllbGQ+XG4iXX0=
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jb21tZXJjZS9jb21wb25lbnRzL2lucHV0LWNhcmQvaW5wdXQtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jb21tZXJjZS9jb21wb25lbnRzL2lucHV0LWNhcmQvaW5wdXQtY2FyZC50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFakUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUNILGtCQUFrQixFQUNsQixZQUFZLEVBQ1osMEJBQTBCLEVBRTFCLGNBQWMsR0FFakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLDhCQUE4QixFQUFxQixNQUFNLGdCQUFnQixDQUFDOzs7OztBQUdsRixNQUFNLEtBQUssR0FBcUM7SUFDNUMsR0FBRyxFQUFFLFlBQVk7SUFDakIsSUFBSSxFQUFFLGFBQWE7SUFDbkIsUUFBUSxFQUFFLGlCQUFpQjtJQUMzQixVQUFVLEVBQUUsbUJBQW1CO0lBQy9CLE9BQU8sRUFBRSxnQkFBZ0I7Q0FDNUIsQ0FBQztBQVlGLE1BQU0sT0FBTyxxQkFDVCxTQUFRLGtCQUEwQjtJQXVCbEMsWUFJSSxPQUF5QixFQUNFLGlCQUFvQztRQUUvRCxLQUFLLENBQUMsT0FBTyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUF0QnRDLFlBQU8sR0FBd0IsRUFBRSxDQUFDO1FBSWxDLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUduQixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFFOUMsb0JBQWUsR0FBdUI7WUFDM0MsSUFBSSxFQUFFLGFBQWE7WUFDbkIsS0FBSyxFQUFFLEtBQUs7WUFDWixJQUFJLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFO1NBQ2hELENBQUM7SUFVRixDQUFDO0lBRUQsSUFBWSxlQUFlO1FBQ3ZCLE1BQU0sRUFBQyxhQUFhLEVBQUMsR0FBRyxJQUFJLENBQUM7UUFFN0IsT0FBTyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFJLHNCQUFzQjtRQUN0QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksR0FBRztRQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSzthQUNaLEtBQUssQ0FBQyxFQUFFLENBQUM7YUFDVCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDcEUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYTtRQUN2QixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBRTVCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFekIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUV4QixJQUFJLFVBQVUsS0FBSyxNQUFNLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDL0I7SUFDTCxDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQWdCO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVRLFVBQVUsQ0FBQyxLQUFvQjtRQUNwQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBRTVCLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFeEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUV4QixJQUFJLFVBQVUsS0FBSyxNQUFNLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDL0I7SUFDTCxDQUFDO0lBRVMsZ0JBQWdCO1FBQ3RCLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQzs7bUhBdEdRLHFCQUFxQixrQkEyQmxCLFNBQVMseUNBRVQsaUJBQWlCO3VHQTdCcEIscUJBQXFCLDBKQUxuQjtRQUNQLDBCQUEwQixDQUFDLHFCQUFxQixDQUFDO1FBQ2pELFlBQVksQ0FBQyxxQkFBcUIsQ0FBQztLQUN0QyxpRUFNVSw4QkFBOEIsdUVDakQ3Qyw4cUJBdUJBO0FEK0JJO0lBREMsY0FBYyxFQUFFO3NEQUNpQjtBQUlsQztJQURDLGNBQWMsRUFBRTtrRUFDVzs0RkFibkIscUJBQXFCO2tCQVZqQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFdBQVcsRUFBRSw0QkFBNEI7b0JBQ3pDLFNBQVMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO29CQUN0QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFO3dCQUNQLDBCQUEwQix1QkFBdUI7d0JBQ2pELFlBQVksdUJBQXVCO3FCQUN0QztpQkFDSjs7MEJBMEJRLFFBQVE7OzBCQUNSLElBQUk7OzBCQUNKLE1BQU07MkJBQUMsU0FBUzs7MEJBRWhCLE1BQU07MkJBQUMsaUJBQWlCOzRDQXhCWixLQUFLO3NCQURyQixTQUFTO3VCQUFDLDhCQUE4QjtnQkFLekMsT0FBTztzQkFGTixLQUFLO2dCQU1OLG1CQUFtQjtzQkFGbEIsS0FBSztnQkFLRyxTQUFTO3NCQURqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPcHRpb25hbCxcbiAgICBPdXRwdXQsXG4gICAgU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VFVJX0NBUkRfTUFTS30gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNvbW1lcmNlL2NvbnN0YW50cyc7XG5pbXBvcnQge1R1aVBheW1lbnRTeXN0ZW19IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jb21tZXJjZS90eXBlcyc7XG5pbXBvcnQge3R1aUdldFBheW1lbnRTeXN0ZW19IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jb21tZXJjZS91dGlscyc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0VHVpQ29udHJvbCxcbiAgICB0dWlBc0NvbnRyb2wsXG4gICAgdHVpQXNGb2N1c2FibGVJdGVtQWNjZXNzb3IsXG4gICAgVHVpQXV0b2ZpbGxGaWVsZE5hbWUsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7VHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50LCBUdWlUZXh0TWFza09wdGlvbnN9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7UG9seW1vcnBoZXVzQ29udGVudH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcblxuY29uc3QgaWNvbnM6IFJlY29yZDxUdWlQYXltZW50U3lzdGVtLCBzdHJpbmc+ID0ge1xuICAgIG1pcjogJ3R1aUljb25NaXInLFxuICAgIHZpc2E6ICd0dWlJY29uVmlzYScsXG4gICAgZWxlY3Ryb246ICd0dWlJY29uRWxlY3Ryb24nLFxuICAgIG1hc3RlcmNhcmQ6ICd0dWlJY29uTWFzdGVyY2FyZCcsXG4gICAgbWFlc3RybzogJ3R1aUljb25NYWVzdHJvJyxcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LWNhcmQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1jYXJkLnRlbXBsYXRlLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LWNhcmQuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcihUdWlJbnB1dENhcmRDb21wb25lbnQpLFxuICAgICAgICB0dWlBc0NvbnRyb2woVHVpSW5wdXRDYXJkQ29tcG9uZW50KSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dENhcmRDb21wb25lbnRcbiAgICBleHRlbmRzIEFic3RyYWN0VHVpQ29udHJvbDxzdHJpbmc+XG4gICAgaW1wbGVtZW50cyBUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3JcbntcbiAgICBAVmlld0NoaWxkKFR1aVByaW1pdGl2ZVRleHRmaWVsZENvbXBvbmVudClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0PzogVHVpUHJpbWl0aXZlVGV4dGZpZWxkQ29tcG9uZW50O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGNhcmRTcmM6IFBvbHltb3JwaGV1c0NvbnRlbnQgPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBhdXRvY29tcGxldGVFbmFibGVkID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBiaW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IG51bGw+KCk7XG5cbiAgICByZWFkb25seSB0ZXh0TWFza09wdGlvbnM6IFR1aVRleHRNYXNrT3B0aW9ucyA9IHtcbiAgICAgICAgbWFzazogVFVJX0NBUkRfTUFTSyxcbiAgICAgICAgZ3VpZGU6IGZhbHNlLFxuICAgICAgICBwaXBlOiBjb25mb3JtZWRWYWx1ZSA9PiBjb25mb3JtZWRWYWx1ZS50cmltKCksXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBjb250cm9sOiBOZ0NvbnRyb2wgfCBudWxsLFxuICAgICAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBkZWZhdWx0Q2FyZEljb24oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHtwYXltZW50U3lzdGVtfSA9IHRoaXM7XG5cbiAgICAgICAgcmV0dXJuIHBheW1lbnRTeXN0ZW0gPyBpY29uc1twYXltZW50U3lzdGVtXSA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IG5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dCA/IHRoaXMuaW5wdXQubmF0aXZlRm9jdXNhYmxlRWxlbWVudCA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuaW5wdXQgJiYgdGhpcy5pbnB1dC5mb2N1c2VkO1xuICAgIH1cblxuICAgIGdldCBpY29uKCk6IFBvbHltb3JwaGV1c0NvbnRlbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5jYXJkU3JjIHx8IHRoaXMuZGVmYXVsdENhcmRJY29uO1xuICAgIH1cblxuICAgIGdldCBhdXRvY29tcGxldGUoKTogVHVpQXV0b2ZpbGxGaWVsZE5hbWUge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRvY29tcGxldGVFbmFibGVkID8gJ2NjLW51bWJlcicgOiAnb2ZmJztcbiAgICB9XG5cbiAgICBnZXQgcGF5bWVudFN5c3RlbSgpOiBUdWlQYXltZW50U3lzdGVtIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0dWlHZXRQYXltZW50U3lzdGVtKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBiaW4oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlLmxlbmd0aCA8IDYgPyBudWxsIDogdGhpcy52YWx1ZS5zbGljZSgwLCA2KTtcbiAgICB9XG5cbiAgICBnZXQgZm9ybWF0dGVkQ2FyZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZVxuICAgICAgICAgICAgLnNwbGl0KCcnKVxuICAgICAgICAgICAgLm1hcCgoY2hhciwgaW5kZXgpID0+IChpbmRleCAmJiBpbmRleCAlIDQgPT09IDAgPyBgICR7Y2hhcn1gIDogY2hhcikpXG4gICAgICAgICAgICAuam9pbignJyk7XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IHZhbHVlLnNwbGl0KCcgJykuam9pbignJyk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRCaW4gPSB0aGlzLmJpbjtcblxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKHBhcnNlZCk7XG5cbiAgICAgICAgY29uc3QgbmV3QmluID0gdGhpcy5iaW47XG5cbiAgICAgICAgaWYgKGN1cnJlbnRCaW4gIT09IG5ld0Jpbikge1xuICAgICAgICAgICAgdGhpcy5iaW5DaGFuZ2UuZW1pdChuZXdCaW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Gb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGZvY3VzZWQpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudEJpbiA9IHRoaXMuYmluO1xuXG4gICAgICAgIHN1cGVyLndyaXRlVmFsdWUodmFsdWUpO1xuXG4gICAgICAgIGNvbnN0IG5ld0JpbiA9IHRoaXMuYmluO1xuXG4gICAgICAgIGlmIChjdXJyZW50QmluICE9PSBuZXdCaW4pIHtcbiAgICAgICAgICAgIHRoaXMuYmluQ2hhbmdlLmVtaXQobmV3QmluKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGYWxsYmFja1ZhbHVlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG59XG4iLCI8dHVpLXByaW1pdGl2ZS10ZXh0ZmllbGRcbiAgICB0dWlWYWx1ZUFjY2Vzc29yXG4gICAgY2xhc3M9XCJ0LWlucHV0XCJcbiAgICBbdHVpVGV4dGZpZWxkQ3VzdG9tQ29udGVudF09XCJpY29uXCJcbiAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2ZvY3VzYWJsZV09XCJmb2N1c2FibGVcIlxuICAgIFtuYXRpdmVJZF09XCJuYXRpdmVJZFwiXG4gICAgW2ludmFsaWRdPVwiY29tcHV0ZWRJbnZhbGlkXCJcbiAgICBbcHNldWRvSG92ZXJdPVwicHNldWRvSG92ZXJcIlxuICAgIFtwc2V1ZG9BY3RpdmVdPVwicHNldWRvQWN0aXZlXCJcbiAgICBbcHNldWRvRm9jdXNdPVwicHNldWRvRm9jdXNcIlxuICAgIFt0ZXh0TWFza109XCJ0ZXh0TWFza09wdGlvbnNcIlxuICAgIFt2YWx1ZV09XCJmb3JtYXR0ZWRDYXJkXCJcbiAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAoZm9jdXNlZENoYW5nZSk9XCJvbkZvY3VzZWQoJGV2ZW50KVwiXG4+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50XG4gICAgICAgIHNlbGVjdD1cImlucHV0XCJcbiAgICAgICAgbmdQcm9qZWN0QXM9XCJpbnB1dFwiXG4gICAgPjwvbmctY29udGVudD5cbjwvdHVpLXByaW1pdGl2ZS10ZXh0ZmllbGQ+XG4iXX0=
@@ -10,9 +10,9 @@ export class TuiInputCardDirective extends AbstractTuiTextfieldHost {
10
10
  if (!nativeFocusableElement) {
11
11
  return;
12
12
  }
13
- nativeFocusableElement.inputMode = `numeric`;
13
+ nativeFocusableElement.inputMode = 'numeric';
14
14
  nativeFocusableElement.placeholder =
15
- nativeFocusableElement.placeholder || `0000 0000 0000 0000`;
15
+ nativeFocusableElement.placeholder || '0000 0000 0000 0000';
16
16
  }
17
17
  }
18
18
  TuiInputCardDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputCardDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
@@ -20,8 +20,8 @@ TuiInputCardDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0",
20
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputCardDirective, decorators: [{
21
21
  type: Directive,
22
22
  args: [{
23
- selector: `tui-input-card`,
23
+ selector: 'tui-input-card',
24
24
  providers: [tuiAsTextfieldHost(TuiInputCardDirective)],
25
25
  }]
26
26
  }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY2FyZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jb21tZXJjZS9jb21wb25lbnRzL2lucHV0LWNhcmQvaW5wdXQtY2FyZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFDLHdCQUF3QixFQUFFLGtCQUFrQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBUTVFLE1BQU0sT0FBTyxxQkFDVCxTQUFRLHdCQUErQztJQUd2RCxhQUFhLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsZUFBZTtRQUNYLE1BQU0sRUFBQyxzQkFBc0IsRUFBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFFM0MsSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQ3pCLE9BQU87U0FDVjtRQUVELHNCQUFzQixDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDN0Msc0JBQXNCLENBQUMsV0FBVztZQUM5QixzQkFBc0IsQ0FBQyxXQUFXLElBQUkscUJBQXFCLENBQUM7SUFDcEUsQ0FBQzs7bUhBbEJRLHFCQUFxQjt1R0FBckIscUJBQXFCLHlDQUZuQixDQUFDLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDLENBQUM7NEZBRTdDLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsdUJBQXVCLENBQUM7aUJBQ3pEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBEaXJlY3RpdmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdFR1aVRleHRmaWVsZEhvc3QsIHR1aUFzVGV4dGZpZWxkSG9zdH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuXG5pbXBvcnQge1R1aUlucHV0Q2FyZENvbXBvbmVudH0gZnJvbSAnLi9pbnB1dC1jYXJkLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiBgdHVpLWlucHV0LWNhcmRgLFxuICAgIHByb3ZpZGVyczogW3R1aUFzVGV4dGZpZWxkSG9zdChUdWlJbnB1dENhcmREaXJlY3RpdmUpXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRDYXJkRGlyZWN0aXZlXG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aVRleHRmaWVsZEhvc3Q8VHVpSW5wdXRDYXJkQ29tcG9uZW50PlxuICAgIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdFxue1xuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmhvc3Qub25WYWx1ZUNoYW5nZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7bmF0aXZlRm9jdXNhYmxlRWxlbWVudH0gPSB0aGlzLmhvc3Q7XG5cbiAgICAgICAgaWYgKCFuYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBuYXRpdmVGb2N1c2FibGVFbGVtZW50LmlucHV0TW9kZSA9IGBudW1lcmljYDtcbiAgICAgICAgbmF0aXZlRm9jdXNhYmxlRWxlbWVudC5wbGFjZWhvbGRlciA9XG4gICAgICAgICAgICBuYXRpdmVGb2N1c2FibGVFbGVtZW50LnBsYWNlaG9sZGVyIHx8IGAwMDAwIDAwMDAgMDAwMCAwMDAwYDtcbiAgICB9XG59XG4iXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY2FyZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jb21tZXJjZS9jb21wb25lbnRzL2lucHV0LWNhcmQvaW5wdXQtY2FyZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkQsT0FBTyxFQUFDLHdCQUF3QixFQUFFLGtCQUFrQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBUTVFLE1BQU0sT0FBTyxxQkFDVCxTQUFRLHdCQUErQztJQUd2RCxhQUFhLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsZUFBZTtRQUNYLE1BQU0sRUFBQyxzQkFBc0IsRUFBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFFM0MsSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQ3pCLE9BQU87U0FDVjtRQUVELHNCQUFzQixDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDN0Msc0JBQXNCLENBQUMsV0FBVztZQUM5QixzQkFBc0IsQ0FBQyxXQUFXLElBQUkscUJBQXFCLENBQUM7SUFDcEUsQ0FBQzs7bUhBbEJRLHFCQUFxQjt1R0FBckIscUJBQXFCLHlDQUZuQixDQUFDLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDLENBQUM7NEZBRTdDLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsdUJBQXVCLENBQUM7aUJBQ3pEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBEaXJlY3RpdmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdFR1aVRleHRmaWVsZEhvc3QsIHR1aUFzVGV4dGZpZWxkSG9zdH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuXG5pbXBvcnQge1R1aUlucHV0Q2FyZENvbXBvbmVudH0gZnJvbSAnLi9pbnB1dC1jYXJkLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LWNhcmQnLFxuICAgIHByb3ZpZGVyczogW3R1aUFzVGV4dGZpZWxkSG9zdChUdWlJbnB1dENhcmREaXJlY3RpdmUpXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRDYXJkRGlyZWN0aXZlXG4gICAgZXh0ZW5kcyBBYnN0cmFjdFR1aVRleHRmaWVsZEhvc3Q8VHVpSW5wdXRDYXJkQ29tcG9uZW50PlxuICAgIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdFxue1xuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmhvc3Qub25WYWx1ZUNoYW5nZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7bmF0aXZlRm9jdXNhYmxlRWxlbWVudH0gPSB0aGlzLmhvc3Q7XG5cbiAgICAgICAgaWYgKCFuYXRpdmVGb2N1c2FibGVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBuYXRpdmVGb2N1c2FibGVFbGVtZW50LmlucHV0TW9kZSA9ICdudW1lcmljJztcbiAgICAgICAgbmF0aXZlRm9jdXNhYmxlRWxlbWVudC5wbGFjZWhvbGRlciA9XG4gICAgICAgICAgICBuYXRpdmVGb2N1c2FibGVFbGVtZW50LnBsYWNlaG9sZGVyIHx8ICcwMDAwIDAwMDAgMDAwMCAwMDAwJztcbiAgICB9XG59XG4iXX0=
@@ -16,16 +16,16 @@ import * as i6 from "@tinkoff/ng-polymorpheus";
16
16
  import * as i7 from "@taiga-ui/addon-commerce/pipes";
17
17
  import * as i8 from "rxjs";
18
18
  const STUB = {
19
- card: ``,
20
- expire: ``,
21
- cvc: ``,
19
+ card: '',
20
+ expire: '',
21
+ cvc: '',
22
22
  };
23
23
  const ICONS = {
24
- mir: `tuiIconMir`,
25
- visa: `tuiIconVisa`,
26
- electron: `tuiIconElectron`,
27
- mastercard: `tuiIconMastercard`,
28
- maestro: `tuiIconMaestro`,
24
+ mir: 'tuiIconMir',
25
+ visa: 'tuiIconVisa',
26
+ electron: 'tuiIconElectron',
27
+ mastercard: 'tuiIconMastercard',
28
+ maestro: 'tuiIconMaestro',
29
29
  };
30
30
  export class TuiInputCardGroupedComponent extends AbstractTuiNullableControl {
31
31
  constructor(control, changeDetectorRef, elementRef, mode$, cardGroupedTexts$, appearance) {
@@ -36,13 +36,13 @@ export class TuiInputCardGroupedComponent extends AbstractTuiNullableControl {
36
36
  this.appearance = appearance;
37
37
  this.expireInert = false;
38
38
  this.autocompleteEnabled = false;
39
- this.cardSrc = ``;
40
- this.exampleText = `0000 0000 0000 0000`;
39
+ this.cardSrc = '';
40
+ this.exampleText = '0000 0000 0000 0000';
41
41
  this.cardValidator = tuiDefaultCardValidator;
42
42
  this.autofilledChange = new EventEmitter();
43
43
  this.binChange = new EventEmitter();
44
- this.dropdown = ``;
45
- this.exampleTextCVC = `000`;
44
+ this.dropdown = '';
45
+ this.exampleTextCVC = '000';
46
46
  this.maskCVC = {
47
47
  mask: new Array(3).fill(TUI_DIGIT_REGEXP),
48
48
  guide: false,
@@ -56,7 +56,7 @@ export class TuiInputCardGroupedComponent extends AbstractTuiNullableControl {
56
56
  mask: [
57
57
  TUI_DIGIT_REGEXP,
58
58
  TUI_DIGIT_REGEXP,
59
- `/`,
59
+ '/',
60
60
  TUI_DIGIT_REGEXP,
61
61
  TUI_DIGIT_REGEXP,
62
62
  ],
@@ -66,7 +66,7 @@ export class TuiInputCardGroupedComponent extends AbstractTuiNullableControl {
66
66
  this.open = false;
67
67
  }
68
68
  set codeLength(length) {
69
- this.exampleTextCVC = `0`.repeat(length);
69
+ this.exampleTextCVC = '0'.repeat(length);
70
70
  this.maskCVC = {
71
71
  mask: new Array(length).fill(TUI_DIGIT_REGEXP),
72
72
  guide: false,
@@ -80,15 +80,15 @@ export class TuiInputCardGroupedComponent extends AbstractTuiNullableControl {
80
80
  }
81
81
  get card() {
82
82
  var _a;
83
- return ((_a = this.value) === null || _a === void 0 ? void 0 : _a.card) || ``;
83
+ return ((_a = this.value) === null || _a === void 0 ? void 0 : _a.card) || '';
84
84
  }
85
85
  get expire() {
86
86
  var _a;
87
- return ((_a = this.value) === null || _a === void 0 ? void 0 : _a.expire) || ``;
87
+ return ((_a = this.value) === null || _a === void 0 ? void 0 : _a.expire) || '';
88
88
  }
89
89
  get cvc() {
90
90
  var _a;
91
- return ((_a = this.value) === null || _a === void 0 ? void 0 : _a.cvc) || ``;
91
+ return ((_a = this.value) === null || _a === void 0 ? void 0 : _a.cvc) || '';
92
92
  }
93
93
  get hasCleaner() {
94
94
  var _a, _b;
@@ -129,20 +129,20 @@ export class TuiInputCardGroupedComponent extends AbstractTuiNullableControl {
129
129
  return this.isFocusable(this.card) && !this.cardFocused;
130
130
  }
131
131
  get autocompleteCard() {
132
- return this.autocompleteEnabled ? `cc-number` : `off`;
132
+ return this.autocompleteEnabled ? 'cc-number' : 'off';
133
133
  }
134
134
  get autocompleteExpire() {
135
- return this.autocompleteEnabled ? `cc-exp` : `off`;
135
+ return this.autocompleteEnabled ? 'cc-exp' : 'off';
136
136
  }
137
137
  get autocompleteCVC() {
138
- return this.autocompleteEnabled ? `cc-csc` : `off`;
138
+ return this.autocompleteEnabled ? 'cc-csc' : 'off';
139
139
  }
140
140
  get tailLength() {
141
141
  return this.hasExtraSpace ? 5 : 4;
142
142
  }
143
143
  // Safari expiration date autofill workaround
144
144
  get name() {
145
- return this.autocompleteEnabled ? `ccexpiryyear` : null;
145
+ return this.autocompleteEnabled ? 'ccexpiryyear' : null;
146
146
  }
147
147
  get cardPrefilled() {
148
148
  return !!this.card.match(TUI_NON_DIGIT_REGEXP);
@@ -160,7 +160,7 @@ export class TuiInputCardGroupedComponent extends AbstractTuiNullableControl {
160
160
  return this.isFocusable(this.card);
161
161
  }
162
162
  get masked() {
163
- return this.cardPrefilled ? `*${this.card.slice(-4)}` : `*`;
163
+ return this.cardPrefilled ? `*${this.card.slice(-4)}` : '*';
164
164
  }
165
165
  onEsc() {
166
166
  this.open = false;
@@ -173,7 +173,7 @@ export class TuiInputCardGroupedComponent extends AbstractTuiNullableControl {
173
173
  }
174
174
  handleOption(option) {
175
175
  var _a, _b;
176
- const { card = ``, expire = ``, cvc = `` } = option;
176
+ const { card = '', expire = '', cvc = '' } = option;
177
177
  const { bin } = this;
178
178
  const element = (!expire && ((_a = this.inputExpire) === null || _a === void 0 ? void 0 : _a.nativeElement)) || ((_b = this.inputCVC) === null || _b === void 0 ? void 0 : _b.nativeElement);
179
179
  this.updateValue({ card, expire, cvc });
@@ -184,11 +184,11 @@ export class TuiInputCardGroupedComponent extends AbstractTuiNullableControl {
184
184
  }
185
185
  onCardChange(card) {
186
186
  const { value, bin } = this;
187
- const parsed = card.split(` `).join(``);
187
+ const parsed = card.split(' ').join('');
188
188
  if (value && value.card === parsed) {
189
189
  return;
190
190
  }
191
- this.updateProperty(parsed, `card`);
191
+ this.updateProperty(parsed, 'card');
192
192
  this.updateBin(bin);
193
193
  if (this.cardValidator(this.card) && !this.expire && this.inputExpire) {
194
194
  this.focusExpire();
@@ -203,20 +203,20 @@ export class TuiInputCardGroupedComponent extends AbstractTuiNullableControl {
203
203
  if (parseInt(expire.slice(0, 2), 10) > 12) {
204
204
  expire = `12${expire.slice(2)}`;
205
205
  }
206
- if (expire.slice(0, 2) === `00`) {
206
+ if (expire.slice(0, 2) === '00') {
207
207
  expire = `01${expire.slice(2)}`;
208
208
  }
209
209
  this.inputExpire.nativeElement.value = expire;
210
- this.updateProperty(expire, `expire`);
210
+ this.updateProperty(expire, 'expire');
211
211
  if (expire.length === 5) {
212
212
  this.focusCVC();
213
213
  }
214
214
  }
215
215
  onCVCChange(cvc) {
216
- this.updateProperty(cvc, `cvc`);
216
+ this.updateProperty(cvc, 'cvc');
217
217
  }
218
218
  transform({ offsetWidth }) {
219
- return this.isCardCollapsed ? `translate3d(${offsetWidth}px, 0, 0)` : ``;
219
+ return this.isCardCollapsed ? `translate3d(${offsetWidth}px, 0, 0)` : '';
220
220
  }
221
221
  onActiveZoneChange(active) {
222
222
  this.updateFocused(active);
@@ -329,9 +329,9 @@ __decorate([
329
329
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: TuiInputCardGroupedComponent, decorators: [{
330
330
  type: Component,
331
331
  args: [{
332
- selector: `tui-input-card-grouped`,
333
- templateUrl: `./input-card-grouped.template.html`,
334
- styleUrls: [`./input-card-grouped.style.less`],
332
+ selector: 'tui-input-card-grouped',
333
+ templateUrl: './input-card-grouped.template.html',
334
+ styleUrls: ['./input-card-grouped.style.less'],
335
335
  changeDetection: ChangeDetectionStrategy.OnPush,
336
336
  providers: [
337
337
  tuiAsFocusableItemAccessor(TuiInputCardGroupedComponent),
@@ -340,8 +340,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
340
340
  MODE_PROVIDER,
341
341
  ],
342
342
  host: {
343
- '($.data-mode.attr)': `mode$`,
344
- 'data-size': `l`,
343
+ '($.data-mode.attr)': 'mode$',
344
+ 'data-size': 'l',
345
345
  },
346
346
  }]
347
347
  }], ctorParameters: function () { return [{ type: i4.NgControl, decorators: [{
@@ -368,13 +368,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
368
368
  args: [TUI_TEXTFIELD_APPEARANCE]
369
369
  }] }]; }, propDecorators: { inputCard: [{
370
370
  type: ViewChild,
371
- args: [`inputCard`]
371
+ args: ['inputCard']
372
372
  }], inputExpire: [{
373
373
  type: ViewChild,
374
- args: [`inputExpire`]
374
+ args: ['inputExpire']
375
375
  }], inputCVC: [{
376
376
  type: ViewChild,
377
- args: [`inputCVC`]
377
+ args: ['inputCVC']
378
378
  }], autocompleteEnabled: [{
379
379
  type: Input
380
380
  }], cardSrc: [{
@@ -397,12 +397,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
397
397
  args: [TuiDataListComponent]
398
398
  }], onEsc: [{
399
399
  type: HostListener,
400
- args: [`keydown.esc`]
400
+ args: ['keydown.esc']
401
401
  }], onArrow: [{
402
402
  type: HostListener,
403
- args: [`keydown.arrowDown.prevent`, [`$event.target`, `1`]]
403
+ args: ['keydown.arrowDown.prevent', ['$event.target', '1']]
404
404
  }, {
405
405
  type: HostListener,
406
- args: [`keydown.arrowUp.prevent`, [`$event.target`, `-1`]]
406
+ args: ['keydown.arrowUp.prevent', ['$event.target', '-1']]
407
407
  }], isFocusable: [] } });
408
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY2FyZC1ncm91cGVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLWNvbW1lcmNlL2NvbXBvbmVudHMvaW5wdXQtY2FyZC1ncm91cGVkL2lucHV0LWNhcmQtZ3JvdXBlZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jb21tZXJjZS9jb21wb25lbnRzL2lucHV0LWNhcmQtZ3JvdXBlZC9pbnB1dC1jYXJkLWdyb3VwZWQudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFdBQVcsRUFDWCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxhQUFhLEVBQUUsdUJBQXVCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUcxRixPQUFPLEVBQ0gsZ0NBQWdDLEVBQ2hDLG1CQUFtQixHQUN0QixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFDSCwwQkFBMEIsRUFDMUIsWUFBWSxFQUNaLDBCQUEwQixFQUcxQixjQUFjLEVBRWQsWUFBWSxFQUNaLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLE9BQU8sRUFDUCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLG9CQUFvQixFQUNwQix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBRWpCLG9CQUFvQixFQUNwQixvQkFBb0IsR0FHdkIsTUFBTSxnQkFBZ0IsQ0FBQztBQUl4QixPQUFPLEVBQ0gsNEJBQTRCLEdBRS9CLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7QUFFeEMsTUFBTSxJQUFJLEdBQVk7SUFDbEIsSUFBSSxFQUFFLEVBQUU7SUFDUixNQUFNLEVBQUUsRUFBRTtJQUNWLEdBQUcsRUFBRSxFQUFFO0NBQ1YsQ0FBQztBQUNGLE1BQU0sS0FBSyxHQUFxQztJQUM1QyxHQUFHLEVBQUUsWUFBWTtJQUNqQixJQUFJLEVBQUUsYUFBYTtJQUNuQixRQUFRLEVBQUUsaUJBQWlCO0lBQzNCLFVBQVUsRUFBRSxtQkFBbUI7SUFDL0IsT0FBTyxFQUFFLGdCQUFnQjtDQUM1QixDQUFDO0FBa0JGLE1BQU0sT0FBTyw0QkFDVCxTQUFRLDBCQUFtQztJQStFM0MsWUFJSSxPQUF5QixFQUNFLGlCQUFvQyxFQUMxQixVQUFtQyxFQUM3QyxLQUF1QyxFQUV6RCxpQkFBa0QsRUFFbEQsVUFBa0I7UUFFM0IsS0FBSyxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBUEcsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDN0MsVUFBSyxHQUFMLEtBQUssQ0FBa0M7UUFFekQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFpQztRQUVsRCxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBOUV2QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUk1Qix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFJNUIsWUFBTyxHQUF3QixFQUFFLENBQUM7UUFJbEMsZ0JBQVcsR0FBRyxxQkFBcUIsQ0FBQztRQUlwQyxrQkFBYSxHQUE4Qix1QkFBdUIsQ0FBQztRQWExRCxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRy9DLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUc5QyxhQUFRLEdBQXdCLEVBQUUsQ0FBQztRQUs1QyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUV2QixZQUFPLEdBQXVCO1lBQzFCLElBQUksRUFBRSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7WUFDekMsS0FBSyxFQUFFLEtBQUs7U0FDZixDQUFDO1FBRU8sYUFBUSxHQUF1QjtZQUNwQyxJQUFJLEVBQUUsYUFBYTtZQUNuQixLQUFLLEVBQUUsS0FBSztZQUNaLElBQUksRUFBRSxjQUFjLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUU7U0FDaEQsQ0FBQztRQUVPLGVBQVUsR0FBdUI7WUFDdEMsSUFBSSxFQUFFO2dCQUNGLGdCQUFnQjtnQkFDaEIsZ0JBQWdCO2dCQUNoQixHQUFHO2dCQUNILGdCQUFnQjtnQkFDaEIsZ0JBQWdCO2FBQ25CO1lBQ0QsSUFBSSxFQUFFLGdDQUFnQyxFQUFFO1lBQ3hDLEtBQUssRUFBRSxLQUFLO1NBQ2YsQ0FBQztRQUVGLFNBQUksR0FBRyxLQUFLLENBQUM7SUFnQmIsQ0FBQztJQTdERCxJQUFJLFVBQVUsQ0FBQyxNQUF3QjtRQUNuQyxJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNYLElBQUksRUFBRSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7WUFDOUMsS0FBSyxFQUFFLEtBQUs7U0FDZixDQUFDO0lBQ04sQ0FBQztJQXlERCxJQUFJLHNCQUFzQjtRQUN0QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDaEUsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxJQUFJLElBQUk7O1FBQ0osT0FBTyxDQUFBLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsSUFBSSxLQUFJLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxNQUFNOztRQUNOLE9BQU8sQ0FBQSxNQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFFLE1BQU0sS0FBSSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksR0FBRzs7UUFDSCxPQUFPLENBQUEsTUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxHQUFHLEtBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLFVBQVU7O1FBQ1YsT0FBTyxDQUFDLENBQUMsQ0FBQSxNQUFBLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsSUFBSSwwQ0FBRSxJQUFJLEVBQUUsQ0FBQSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNsRixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsTUFBTSxFQUFDLGFBQWEsRUFBQyxHQUFHLElBQUksQ0FBQztRQUU3QixPQUFPLGFBQWEsSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUM1QyxDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzFFLENBQUM7SUFFRCxJQUFJLGFBQWE7O1FBQ2IsT0FBTyxDQUFDLENBQUMsQ0FBQSxNQUFBLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsSUFBSSwwQ0FBRSxJQUFJLEVBQUUsQ0FBQSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDTixPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsU0FBUyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDTCxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNsQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsNkNBQTZDO0lBQzdDLElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ1osT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUNoRSxDQUFDO0lBR0QsS0FBSztRQUNELElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFJRCxPQUFPLENBQUMsT0FBb0IsRUFBRSxJQUFZOztRQUN0QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZDLE1BQUEsSUFBSSxDQUFDLFFBQVEsMENBQUUsY0FBYyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQXdCOztRQUNqQyxNQUFNLEVBQUMsSUFBSSxHQUFHLEVBQUUsRUFBRSxNQUFNLEdBQUcsRUFBRSxFQUFFLEdBQUcsR0FBRyxFQUFFLEVBQUMsR0FBRyxNQUFNLENBQUM7UUFDbEQsTUFBTSxFQUFDLEdBQUcsRUFBQyxHQUFHLElBQUksQ0FBQztRQUNuQixNQUFNLE9BQU8sR0FDVCxDQUFDLENBQUMsTUFBTSxLQUFJLE1BQUEsSUFBSSxDQUFDLFdBQVcsMENBQUUsYUFBYSxDQUFBLENBQUMsS0FBSSxNQUFBLElBQUksQ0FBQyxRQUFRLDBDQUFFLGFBQWEsQ0FBQSxDQUFDO1FBRWpGLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNsQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFNUIsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBWTtRQUNyQixNQUFNLEVBQUMsS0FBSyxFQUFFLEdBQUcsRUFBQyxHQUFHLElBQUksQ0FBQztRQUMxQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV4QyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUNoQyxPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXBCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbkUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3RCO0lBQ0wsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFjO1FBQ3pCLGtGQUFrRjtRQUNsRix3REFBd0Q7UUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbkIsT0FBTztTQUNWO1FBRUQsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3ZDLE1BQU0sR0FBRyxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNuQztRQUVELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQzdCLE1BQU0sR0FBRyxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNuQztRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7UUFDOUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFdEMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNyQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDbkI7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQVc7UUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxFQUFDLFdBQVcsRUFBa0I7UUFDcEMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxlQUFlLFdBQVcsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDN0UsQ0FBQztJQUVELGtCQUFrQixDQUFDLE1BQWU7UUFDOUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBaUI7UUFDekIsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDeEQsT0FBTztTQUNWO1FBRUQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsUUFBUSxDQUFDLEVBQUMsYUFBYSxFQUFRO1FBQzNCLElBQUksWUFBWSxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQzdCLGFBQWEsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1NBQ2hDO0lBQ0wsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFUSxVQUFVLENBQUMsS0FBcUI7UUFDckMsTUFBTSxFQUFDLEdBQUcsRUFBQyxHQUFHLElBQUksQ0FBQztRQUVuQixLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzNELENBQUM7SUFFRCw2Q0FBNkM7SUFDN0MsU0FBUzs7UUFDTCxNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQsV0FBVzs7UUFDUCxNQUFBLElBQUksQ0FBQyxXQUFXLDBDQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBQyxhQUFhLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsUUFBUTs7UUFDSixNQUFBLElBQUksQ0FBQyxRQUFRLDBDQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBWSxXQUFXO1FBQ25CLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsSUFBWSxhQUFhO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFZLGFBQWE7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFHTyxXQUFXLENBQUMsSUFBWTtRQUM1QixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU8sU0FBUyxDQUFDLE1BQXFCO1FBQ25DLE1BQU0sRUFBQyxHQUFHLEVBQUMsR0FBRyxJQUFJLENBQUM7UUFFbkIsSUFBSSxHQUFHLEtBQUssTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM1QjtJQUNMLENBQUM7SUFFTyxjQUFjLENBQUMsU0FBaUIsRUFBRSxRQUFtQztRQUN6RSxNQUFNLEVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQztRQUMvQyxNQUFNLFFBQVEsR0FBWTtZQUN0QixJQUFJO1lBQ0osTUFBTTtZQUNOLEdBQUc7U0FDTixDQUFDO1FBRUYsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUUvQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFO1lBQ3JELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUI7YUFBTTtZQUNILElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDOUI7SUFDTCxDQUFDO0lBRU8sVUFBVTs7UUFDZCxNQUFNLE9BQU8sR0FDVCxDQUFDLElBQUksQ0FBQyxhQUFhLEtBQUksTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxhQUFhLENBQUEsQ0FBQztZQUNyRCxDQUFDLElBQUksQ0FBQyxlQUFlLEtBQUksTUFBQSxJQUFJLENBQUMsV0FBVywwQ0FBRSxhQUFhLENBQUEsQ0FBQzthQUN6RCxNQUFBLElBQUksQ0FBQyxRQUFRLDBDQUFFLGFBQWEsQ0FBQSxDQUFDO1FBRWpDLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDOzswSEE5WFEsNEJBQTRCLGtCQW1GekIsU0FBUyx5Q0FFVCxpQkFBaUIsYUFDakIsVUFBVSxhQUNWLFFBQVEsYUFDUiw0QkFBNEIsYUFFNUIsd0JBQXdCOzhHQTFGM0IsNEJBQTRCLGlnQkFYMUI7UUFDUCwwQkFBMEIsQ0FBQyw0QkFBNEIsQ0FBQztRQUN4RCxZQUFZLENBQUMsNEJBQTRCLENBQUM7UUFDMUMsaUJBQWlCLENBQUMsNEJBQTRCLENBQUM7UUFDL0MsYUFBYTtLQUNoQixnRUFxRGEsb0JBQW9CLDJCQUFTLFdBQVcsd0RBR3hDLG9CQUFvQixtV0MzSXRDLDZ4TEFvS0E7QUQxREk7SUFEQyxjQUFjLEVBQUU7eUVBQ1c7QUFJNUI7SUFEQyxjQUFjLEVBQUU7NkRBQ2lCO0FBSWxDO0lBREMsY0FBYyxFQUFFO2lFQUNtQjtBQUlwQztJQURDLGNBQWMsRUFBRTttRUFDa0Q7QUFJbkU7SUFEQyxpQkFBaUIsRUFBRTs4REFPbkI7QUFtVEQ7SUFEQyxPQUFPOytEQUdQOzRGQTVWUSw0QkFBNEI7a0JBaEJ4QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFdBQVcsRUFBRSxvQ0FBb0M7b0JBQ2pELFNBQVMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDO29CQUM5QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFO3dCQUNQLDBCQUEwQiw4QkFBOEI7d0JBQ3hELFlBQVksOEJBQThCO3dCQUMxQyxpQkFBaUIsOEJBQThCO3dCQUMvQyxhQUFhO3FCQUNoQjtvQkFDRCxJQUFJLEVBQUU7d0JBQ0Ysb0JBQW9CLEVBQUUsT0FBTzt3QkFDN0IsV0FBVyxFQUFFLEdBQUc7cUJBQ25CO2lCQUNKOzswQkFrRlEsUUFBUTs7MEJBQ1IsSUFBSTs7MEJBQ0osTUFBTTsyQkFBQyxTQUFTOzswQkFFaEIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLFVBQVU7OzBCQUNqQixNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLE1BQU07MkJBQUMsNEJBQTRCOzswQkFFbkMsTUFBTTsyQkFBQyx3QkFBd0I7NENBckZuQixTQUFTO3NCQUR6QixTQUFTO3VCQUFDLFdBQVc7Z0JBSUwsV0FBVztzQkFEM0IsU0FBUzt1QkFBQyxhQUFhO2dCQUlQLFFBQVE7c0JBRHhCLFNBQVM7dUJBQUMsVUFBVTtnQkFPckIsbUJBQW1CO3NCQUZsQixLQUFLO2dCQU1OLE9BQU87c0JBRk4sS0FBSztnQkFNTixXQUFXO3NCQUZWLEtBQUs7Z0JBTU4sYUFBYTtzQkFGWixLQUFLO2dCQU1GLFVBQVU7c0JBRmIsS0FBSztnQkFXRyxnQkFBZ0I7c0JBRHhCLE1BQU07Z0JBSUUsU0FBUztzQkFEakIsTUFBTTtnQkFJRSxRQUFRO3NCQURoQixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBQztnQkFJOUMsUUFBUTtzQkFEaEIsWUFBWTt1QkFBQyxvQkFBb0I7Z0JBZ0tsQyxLQUFLO3NCQURKLFlBQVk7dUJBQUMsYUFBYTtnQkFPM0IsT0FBTztzQkFGTixZQUFZO3VCQUFDLDJCQUEyQixFQUFFLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQzs7c0JBQ2hFLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDO2dCQW1JeEQsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUVUlfQ0FSRF9NQVNLLCB0dWlEZWZhdWx0Q2FyZFZhbGlkYXRvcn0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNvbW1lcmNlL2NvbnN0YW50cyc7XG5pbXBvcnQge1R1aUNhcmR9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jb21tZXJjZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7VHVpQ29kZUNWQ0xlbmd0aCwgVHVpUGF5bWVudFN5c3RlbX0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNvbW1lcmNlL3R5cGVzJztcbmltcG9ydCB7XG4gICAgdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZEV4cGlyZVBpcGUsXG4gICAgdHVpR2V0UGF5bWVudFN5c3RlbSxcbn0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNvbW1lcmNlL3V0aWxzJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2wsXG4gICAgdHVpQXNDb250cm9sLFxuICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yLFxuICAgIFR1aUF1dG9maWxsRmllbGROYW1lLFxuICAgIFR1aUJvb2xlYW5IYW5kbGVyLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0dWlJc0VsZW1lbnQsXG4gICAgdHVpSXNJbnB1dCxcbiAgICB0dWlJc05hdGl2ZUZvY3VzZWQsXG4gICAgdHVpSXNOYXRpdmVGb2N1c2VkSW4sXG4gICAgdHVpUHVyZSxcbiAgICB0dWlSZXF1aXJlZFNldHRlcixcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIE1PREVfUFJPVklERVIsXG4gICAgVFVJX0RJR0lUX1JFR0VYUCxcbiAgICBUVUlfTU9ERSxcbiAgICBUVUlfTk9OX0RJR0lUX1JFR0VYUCxcbiAgICBUVUlfVEVYVEZJRUxEX0FQUEVBUkFOQ0UsXG4gICAgdHVpQXNEYXRhTGlzdEhvc3QsXG4gICAgVHVpQnJpZ2h0bmVzcyxcbiAgICBUdWlEYXRhTGlzdENvbXBvbmVudCxcbiAgICBUdWlEYXRhTGlzdERpcmVjdGl2ZSxcbiAgICBUdWlEYXRhTGlzdEhvc3QsXG4gICAgVHVpVGV4dE1hc2tPcHRpb25zLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICAgIFRVSV9JTlBVVF9DQVJEX0dST1VQRURfVEVYVFMsXG4gICAgVHVpQ2FyZEdyb3VwZWRUZXh0cyxcbn0gZnJvbSAnLi9pbnB1dC1jYXJkLWdyb3VwZWQucHJvdmlkZXJzJztcblxuY29uc3QgU1RVQjogVHVpQ2FyZCA9IHtcbiAgICBjYXJkOiBgYCxcbiAgICBleHBpcmU6IGBgLFxuICAgIGN2YzogYGAsXG59O1xuY29uc3QgSUNPTlM6IFJlY29yZDxUdWlQYXltZW50U3lzdGVtLCBzdHJpbmc+ID0ge1xuICAgIG1pcjogYHR1aUljb25NaXJgLFxuICAgIHZpc2E6IGB0dWlJY29uVmlzYWAsXG4gICAgZWxlY3Ryb246IGB0dWlJY29uRWxlY3Ryb25gLFxuICAgIG1hc3RlcmNhcmQ6IGB0dWlJY29uTWFzdGVyY2FyZGAsXG4gICAgbWFlc3RybzogYHR1aUljb25NYWVzdHJvYCxcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBgdHVpLWlucHV0LWNhcmQtZ3JvdXBlZGAsXG4gICAgdGVtcGxhdGVVcmw6IGAuL2lucHV0LWNhcmQtZ3JvdXBlZC50ZW1wbGF0ZS5odG1sYCxcbiAgICBzdHlsZVVybHM6IFtgLi9pbnB1dC1jYXJkLWdyb3VwZWQuc3R5bGUubGVzc2BdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcihUdWlJbnB1dENhcmRHcm91cGVkQ29tcG9uZW50KSxcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUlucHV0Q2FyZEdyb3VwZWRDb21wb25lbnQpLFxuICAgICAgICB0dWlBc0RhdGFMaXN0SG9zdChUdWlJbnB1dENhcmRHcm91cGVkQ29tcG9uZW50KSxcbiAgICAgICAgTU9ERV9QUk9WSURFUixcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJygkLmRhdGEtbW9kZS5hdHRyKSc6IGBtb2RlJGAsXG4gICAgICAgICdkYXRhLXNpemUnOiBgbGAsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRDYXJkR3JvdXBlZENvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8VHVpQ2FyZD5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvciwgVHVpRGF0YUxpc3RIb3N0PFBhcnRpYWw8VHVpQ2FyZD4+XG57XG4gICAgQFZpZXdDaGlsZChgaW5wdXRDYXJkYClcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0Q2FyZD86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKGBpbnB1dEV4cGlyZWApXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dEV4cGlyZT86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKGBpbnB1dENWQ2ApXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dENWQz86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBwcml2YXRlIGV4cGlyZUluZXJ0ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgYXV0b2NvbXBsZXRlRW5hYmxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGNhcmRTcmM6IFBvbHltb3JwaGV1c0NvbnRlbnQgPSBgYDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBleGFtcGxlVGV4dCA9IGAwMDAwIDAwMDAgMDAwMCAwMDAwYDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBjYXJkVmFsaWRhdG9yOiBUdWlCb29sZWFuSGFuZGxlcjxzdHJpbmc+ID0gdHVpRGVmYXVsdENhcmRWYWxpZGF0b3I7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlSZXF1aXJlZFNldHRlcigpXG4gICAgc2V0IGNvZGVMZW5ndGgobGVuZ3RoOiBUdWlDb2RlQ1ZDTGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuZXhhbXBsZVRleHRDVkMgPSBgMGAucmVwZWF0KGxlbmd0aCk7XG4gICAgICAgIHRoaXMubWFza0NWQyA9IHtcbiAgICAgICAgICAgIG1hc2s6IG5ldyBBcnJheShsZW5ndGgpLmZpbGwoVFVJX0RJR0lUX1JFR0VYUCksXG4gICAgICAgICAgICBndWlkZTogZmFsc2UsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgYXV0b2ZpbGxlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGJpbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVsbD4oKTtcblxuICAgIEBDb250ZW50Q2hpbGQoVHVpRGF0YUxpc3REaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZn0pXG4gICAgcmVhZG9ubHkgZHJvcGRvd246IFBvbHltb3JwaGV1c0NvbnRlbnQgPSBgYDtcblxuICAgIEBDb250ZW50Q2hpbGQoVHVpRGF0YUxpc3RDb21wb25lbnQpXG4gICAgcmVhZG9ubHkgZGF0YWxpc3Q/OiBUdWlEYXRhTGlzdENvbXBvbmVudDxUdWlDYXJkPjtcblxuICAgIGV4YW1wbGVUZXh0Q1ZDID0gYDAwMGA7XG5cbiAgICBtYXNrQ1ZDOiBUdWlUZXh0TWFza09wdGlvbnMgPSB7XG4gICAgICAgIG1hc2s6IG5ldyBBcnJheSgzKS5maWxsKFRVSV9ESUdJVF9SRUdFWFApLFxuICAgICAgICBndWlkZTogZmFsc2UsXG4gICAgfTtcblxuICAgIHJlYWRvbmx5IG1hc2tDYXJkOiBUdWlUZXh0TWFza09wdGlvbnMgPSB7XG4gICAgICAgIG1hc2s6IFRVSV9DQVJEX01BU0ssXG4gICAgICAgIGd1aWRlOiBmYWxzZSxcbiAgICAgICAgcGlwZTogY29uZm9ybWVkVmFsdWUgPT4gY29uZm9ybWVkVmFsdWUudHJpbSgpLFxuICAgIH07XG5cbiAgICByZWFkb25seSBtYXNrRXhwaXJlOiBUdWlUZXh0TWFza09wdGlvbnMgPSB7XG4gICAgICAgIG1hc2s6IFtcbiAgICAgICAgICAgIFRVSV9ESUdJVF9SRUdFWFAsXG4gICAgICAgICAgICBUVUlfRElHSVRfUkVHRVhQLFxuICAgICAgICAgICAgYC9gLFxuICAgICAgICAgICAgVFVJX0RJR0lUX1JFR0VYUCxcbiAgICAgICAgICAgIFRVSV9ESUdJVF9SRUdFWFAsXG4gICAgICAgIF0sXG4gICAgICAgIHBpcGU6IHR1aUNyZWF0ZUF1dG9Db3JyZWN0ZWRFeHBpcmVQaXBlKCksXG4gICAgICAgIGd1aWRlOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFRVSV9NT0RFKSByZWFkb25seSBtb2RlJDogT2JzZXJ2YWJsZTxUdWlCcmlnaHRuZXNzIHwgbnVsbD4sXG4gICAgICAgIEBJbmplY3QoVFVJX0lOUFVUX0NBUkRfR1JPVVBFRF9URVhUUylcbiAgICAgICAgcmVhZG9ubHkgY2FyZEdyb3VwZWRUZXh0cyQ6IE9ic2VydmFibGU8VHVpQ2FyZEdyb3VwZWRUZXh0cz4sXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9BUFBFQVJBTkNFKVxuICAgICAgICByZWFkb25seSBhcHBlYXJhbmNlOiBzdHJpbmcsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0Q2FyZCA/IHRoaXMuaW5wdXRDYXJkLm5hdGl2ZUVsZW1lbnQgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcGVuIHx8IHR1aUlzTmF0aXZlRm9jdXNlZEluKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBnZXQgY2FyZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZT8uY2FyZCB8fCBgYDtcbiAgICB9XG5cbiAgICBnZXQgZXhwaXJlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlPy5leHBpcmUgfHwgYGA7XG4gICAgfVxuXG4gICAgZ2V0IGN2YygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZT8uY3ZjIHx8IGBgO1xuICAgIH1cblxuICAgIGdldCBoYXNDbGVhbmVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnZhbHVlPy5jYXJkPy50cmltKCkgJiYgIXRoaXMucmVhZE9ubHkgJiYgIXRoaXMuY29tcHV0ZWREaXNhYmxlZDtcbiAgICB9XG5cbiAgICBnZXQgaGFzRHJvcGRvd24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZHJvcGRvd247XG4gICAgfVxuXG4gICAgZ2V0IGRlZmF1bHRJY29uKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBjb25zdCB7cGF5bWVudFN5c3RlbX0gPSB0aGlzO1xuXG4gICAgICAgIHJldHVybiBwYXltZW50U3lzdGVtICYmIElDT05TW3BheW1lbnRTeXN0ZW1dO1xuICAgIH1cblxuICAgIGdldCBpY29uKCk6IFBvbHltb3JwaGV1c0NvbnRlbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5jYXJkU3JjIHx8IHRoaXMuZGVmYXVsdEljb247XG4gICAgfVxuXG4gICAgZ2V0IGJpbigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnZhbHVlIHx8IHRoaXMudmFsdWUuY2FyZC5sZW5ndGggPCA2XG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogdGhpcy52YWx1ZS5jYXJkLnNsaWNlKDAsIDYpO1xuICAgIH1cblxuICAgIGdldCBwbGFjZWhvbGRlclJhaXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmNvbXB1dGVkRm9jdXNlZCAmJiAhdGhpcy5yZWFkT25seSkgfHwgdGhpcy5oYXNDYXJkTnVtYmVyO1xuICAgIH1cblxuICAgIGdldCBoYXNDYXJkTnVtYmVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnZhbHVlPy5jYXJkPy50cmltKCk7XG4gICAgfVxuXG4gICAgZ2V0IGlkQ2FyZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5pZH1fY2FyZGA7XG4gICAgfVxuXG4gICAgZ2V0IGlkRXhwaXJlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmlkfV9leHBpcmVgO1xuICAgIH1cblxuICAgIGdldCBpZENWQygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5pZH1fY3ZjYDtcbiAgICB9XG5cbiAgICBnZXQgaXNDYXJkQ29sbGFwc2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0ZvY3VzYWJsZSh0aGlzLmNhcmQpICYmICF0aGlzLmNhcmRGb2N1c2VkO1xuICAgIH1cblxuICAgIGdldCBhdXRvY29tcGxldGVDYXJkKCk6IFR1aUF1dG9maWxsRmllbGROYW1lIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0b2NvbXBsZXRlRW5hYmxlZCA/IGBjYy1udW1iZXJgIDogYG9mZmA7XG4gICAgfVxuXG4gICAgZ2V0IGF1dG9jb21wbGV0ZUV4cGlyZSgpOiBUdWlBdXRvZmlsbEZpZWxkTmFtZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dG9jb21wbGV0ZUVuYWJsZWQgPyBgY2MtZXhwYCA6IGBvZmZgO1xuICAgIH1cblxuICAgIGdldCBhdXRvY29tcGxldGVDVkMoKTogVHVpQXV0b2ZpbGxGaWVsZE5hbWUge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRvY29tcGxldGVFbmFibGVkID8gYGNjLWNzY2AgOiBgb2ZmYDtcbiAgICB9XG5cbiAgICBnZXQgdGFpbExlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNFeHRyYVNwYWNlID8gNSA6IDQ7XG4gICAgfVxuXG4gICAgLy8gU2FmYXJpIGV4cGlyYXRpb24gZGF0ZSBhdXRvZmlsbCB3b3JrYXJvdW5kXG4gICAgZ2V0IG5hbWUoKTogJ2NjZXhwaXJ5eWVhcicgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0b2NvbXBsZXRlRW5hYmxlZCA/IGBjY2V4cGlyeXllYXJgIDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgY2FyZFByZWZpbGxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5jYXJkLm1hdGNoKFRVSV9OT05fRElHSVRfUkVHRVhQKTtcbiAgICB9XG5cbiAgICBnZXQgY3ZjUHJlZmlsbGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmN2Yy5tYXRjaChUVUlfTk9OX0RJR0lUX1JFR0VYUCk7XG4gICAgfVxuXG4gICAgZ2V0IGNhcmRGb2N1c2FibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvY3VzYWJsZSAmJiAhdGhpcy5jYXJkUHJlZmlsbGVkO1xuICAgIH1cblxuICAgIGdldCBleHBpcmVGb2N1c2FibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRm9jdXNhYmxlKHRoaXMuY2FyZCkgJiYgIXRoaXMuZXhwaXJlSW5lcnQ7XG4gICAgfVxuXG4gICAgZ2V0IGN2Y0ZvY3VzYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNGb2N1c2FibGUodGhpcy5jYXJkKTtcbiAgICB9XG5cbiAgICBnZXQgbWFza2VkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcmRQcmVmaWxsZWQgPyBgKiR7dGhpcy5jYXJkLnNsaWNlKC00KX1gIDogYCpgO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoYGtleWRvd24uZXNjYClcbiAgICBvbkVzYygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcihga2V5ZG93bi5hcnJvd0Rvd24ucHJldmVudGAsIFtgJGV2ZW50LnRhcmdldGAsIGAxYF0pXG4gICAgQEhvc3RMaXN0ZW5lcihga2V5ZG93bi5hcnJvd1VwLnByZXZlbnRgLCBbYCRldmVudC50YXJnZXRgLCBgLTFgXSlcbiAgICBvbkFycm93KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzdGVwOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuID0gdGhpcy5oYXNEcm9wZG93bjtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuZGF0YWxpc3Q/Lm9uS2V5RG93bkFycm93KGVsZW1lbnQsIHN0ZXApO1xuICAgIH1cblxuICAgIGhhbmRsZU9wdGlvbihvcHRpb246IFBhcnRpYWw8VHVpQ2FyZD4pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge2NhcmQgPSBgYCwgZXhwaXJlID0gYGAsIGN2YyA9IGBgfSA9IG9wdGlvbjtcbiAgICAgICAgY29uc3Qge2Jpbn0gPSB0aGlzO1xuICAgICAgICBjb25zdCBlbGVtZW50ID1cbiAgICAgICAgICAgICghZXhwaXJlICYmIHRoaXMuaW5wdXRFeHBpcmU/Lm5hdGl2ZUVsZW1lbnQpIHx8IHRoaXMuaW5wdXRDVkM/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh7Y2FyZCwgZXhwaXJlLCBjdmN9KTtcbiAgICAgICAgdGhpcy51cGRhdGVCaW4oYmluKTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZXhwaXJlSW5lcnQgPSAhIWV4cGlyZTtcblxuICAgICAgICBlbGVtZW50Py5mb2N1cygpO1xuICAgIH1cblxuICAgIG9uQ2FyZENoYW5nZShjYXJkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlLCBiaW59ID0gdGhpcztcbiAgICAgICAgY29uc3QgcGFyc2VkID0gY2FyZC5zcGxpdChgIGApLmpvaW4oYGApO1xuXG4gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5jYXJkID09PSBwYXJzZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlUHJvcGVydHkocGFyc2VkLCBgY2FyZGApO1xuICAgICAgICB0aGlzLnVwZGF0ZUJpbihiaW4pO1xuXG4gICAgICAgIGlmICh0aGlzLmNhcmRWYWxpZGF0b3IodGhpcy5jYXJkKSAmJiAhdGhpcy5leHBpcmUgJiYgdGhpcy5pbnB1dEV4cGlyZSkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c0V4cGlyZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25FeHBpcmVDaGFuZ2UoZXhwaXJlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8gQGJhZCBUT0RPOiBXb3JrYXJvdW5kIHVudGlsIG1hc2sgcGlwZSBjYW4gcmVwbGFjZSBjaGFycyBhbmQga2VlcCBjYXJldCBwb3NpdGlvblxuICAgICAgICAvLyBAYmFkIFRPRE86IFRoaW5rIGFib3V0IGEgc29sdXRpb24gd2l0aG91dCBtYXNrIGF0IGFsbFxuICAgICAgICBpZiAoIXRoaXMuaW5wdXRFeHBpcmUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwYXJzZUludChleHBpcmUuc2xpY2UoMCwgMiksIDEwKSA+IDEyKSB7XG4gICAgICAgICAgICBleHBpcmUgPSBgMTIke2V4cGlyZS5zbGljZSgyKX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV4cGlyZS5zbGljZSgwLCAyKSA9PT0gYDAwYCkge1xuICAgICAgICAgICAgZXhwaXJlID0gYDAxJHtleHBpcmUuc2xpY2UoMil9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5wdXRFeHBpcmUubmF0aXZlRWxlbWVudC52YWx1ZSA9IGV4cGlyZTtcbiAgICAgICAgdGhpcy51cGRhdGVQcm9wZXJ0eShleHBpcmUsIGBleHBpcmVgKTtcblxuICAgICAgICBpZiAoZXhwaXJlLmxlbmd0aCA9PT0gNSkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c0NWQygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DVkNDaGFuZ2UoY3ZjOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVQcm9wZXJ0eShjdmMsIGBjdmNgKTtcbiAgICB9XG5cbiAgICB0cmFuc2Zvcm0oe29mZnNldFdpZHRofTogSFRNTFNwYW5FbGVtZW50KTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNDYXJkQ29sbGFwc2VkID8gYHRyYW5zbGF0ZTNkKCR7b2Zmc2V0V2lkdGh9cHgsIDAsIDApYCA6IGBgO1xuICAgIH1cblxuICAgIG9uQWN0aXZlWm9uZUNoYW5nZShhY3RpdmU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGFjdGl2ZSk7XG4gICAgICAgIHRoaXMub3BlbiA9IGFjdGl2ZSAmJiB0aGlzLm9wZW47XG4gICAgfVxuXG4gICAgb25Nb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHR1aUlzRWxlbWVudChldmVudC50YXJnZXQpICYmIHR1aUlzSW5wdXQoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgfVxuXG4gICAgb25TY3JvbGwoe2N1cnJlbnRUYXJnZXR9OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodHVpSXNFbGVtZW50KGN1cnJlbnRUYXJnZXQpKSB7XG4gICAgICAgICAgICBjdXJyZW50VGFyZ2V0LnNjcm9sbExlZnQgPSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG4gICAgICAgIHRoaXMuZm9jdXNDYXJkKCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IFR1aUNhcmQgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtiaW59ID0gdGhpcztcblxuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVCaW4oYmluKTtcbiAgICAgICAgdGhpcy5leHBpcmVJbmVydCA9ICEhdGhpcy5leHBpcmUgJiYgdGhpcy5jYXJkUHJlZmlsbGVkO1xuICAgIH1cblxuICAgIC8qKiBQdWJsaWMgQVBJIGZvciBtYW51YWwgZm9jdXMgbWFuYWdlbWVudCAqL1xuICAgIGZvY3VzQ2FyZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dENhcmQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBmb2N1c0V4cGlyZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dEV4cGlyZT8ubmF0aXZlRWxlbWVudC5mb2N1cyh7cHJldmVudFNjcm9sbDogdHJ1ZX0pO1xuICAgIH1cblxuICAgIGZvY3VzQ1ZDKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0Q1ZDPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY2FyZEZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuaW5wdXRDYXJkICYmIHR1aUlzTmF0aXZlRm9jdXNlZCh0aGlzLmlucHV0Q2FyZC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBwYXltZW50U3lzdGVtKCk6IFR1aVBheW1lbnRTeXN0ZW0gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUgJiYgdHVpR2V0UGF5bWVudFN5c3RlbSh0aGlzLnZhbHVlLmNhcmQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGhhc0V4dHJhU3BhY2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcmQubGVuZ3RoICUgNCA+IDA7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGlzRm9jdXNhYmxlKGNhcmQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb2N1c2FibGUgJiYgKHRoaXMuY2FyZFZhbGlkYXRvcihjYXJkKSB8fCB0aGlzLmNhcmRQcmVmaWxsZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQmluKG9sZEJpbjogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7YmlufSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKGJpbiAhPT0gb2xkQmluICYmICF0aGlzLmNhcmRQcmVmaWxsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYmluQ2hhbmdlLmVtaXQoYmluKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUHJvcGVydHkocHJvcFZhbHVlOiBzdHJpbmcsIHByb3BOYW1lOiAnY2FyZCcgfCAnY3ZjJyB8ICdleHBpcmUnKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtjYXJkLCBleHBpcmUsIGN2Y30gPSB0aGlzLnZhbHVlIHx8IFNUVUI7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlOiBUdWlDYXJkID0ge1xuICAgICAgICAgICAgY2FyZCxcbiAgICAgICAgICAgIGV4cGlyZSxcbiAgICAgICAgICAgIGN2YyxcbiAgICAgICAgfTtcblxuICAgICAgICBuZXdWYWx1ZVtwcm9wTmFtZV0gPSBwcm9wVmFsdWU7XG5cbiAgICAgICAgaWYgKCFuZXdWYWx1ZS5leHBpcmUgJiYgIW5ld1ZhbHVlLmN2YyAmJiAhbmV3VmFsdWUuY2FyZCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShudWxsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUobmV3VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0lucHV0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBlbGVtZW50ID1cbiAgICAgICAgICAgICh0aGlzLmNhcmRGb2N1c2FibGUgJiYgdGhpcy5pbnB1dENhcmQ/Lm5hdGl2ZUVsZW1lbnQpIHx8XG4gICAgICAgICAgICAodGhpcy5leHBpcmVGb2N1c2FibGUgJiYgdGhpcy5pbnB1dEV4cGlyZT8ubmF0aXZlRWxlbWVudCkgfHxcbiAgICAgICAgICAgIHRoaXMuaW5wdXRDVkM/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgZWxlbWVudD8uZm9jdXMoKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgKm5nSWY9XCJjYXJkR3JvdXBlZFRleHRzJCB8IGFzeW5jIGFzIHRleHRzXCJcbiAgICB0dWlXcmFwcGVyXG4gICAgdHVpRHJvcGRvd25MaW1pdFdpZHRoPVwiZml4ZWRcIlxuICAgIGNsYXNzPVwidC1jb21tb24td3JhcHBlclwiXG4gICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICBbZGlzYWJsZWRdPVwiY29tcHV0ZWREaXNhYmxlZFwiXG4gICAgW2ZvY3VzXT1cImNvbXB1dGVkRm9jdXNlZFwiXG4gICAgW2hvdmVyXT1cInBzZXVkb0hvdmVyXCJcbiAgICBbaW52YWxpZF09XCJjb21wdXRlZEludmFsaWRcIlxuICAgIFt0dWlEcm9wZG93bk1hbnVhbF09XCJvcGVuXCJcbiAgICBbdHVpRHJvcGRvd25dPVwiZHJvcGRvd24gfHwgJydcIlxuICAgICh0dWlBY3RpdmVab25lQ2hhbmdlKT1cIm9uQWN0aXZlWm9uZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAoc2Nyb2xsKT1cIm9uU2Nyb2xsKCRldmVudClcIlxuICAgIChtb3VzZWRvd24pPVwib25Nb3VzZURvd24oJGV2ZW50KVwiXG4+XG4gICAgPGRpdiBjbGFzcz1cInQtd3JhcHBlclwiPlxuICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICp0dWlMZXQ9XCJ2YWx1ZT8uY2FyZCB8IHR1aUZvcm1hdENhcmQgOiBjYXJkUHJlZmlsbGVkIGFzIGZvcm1hdHRlZENhcmRcIlxuICAgICAgICAgICAgdHVpUHJldmVudERlZmF1bHQ9XCJjbGlja1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICNpbnB1dENhcmRcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1pbnB1dC1jYXJkLWdyb3VwZWRfX2NhcmRcIlxuICAgICAgICAgICAgICAgIGlucHV0bW9kZT1cIm51bWVyaWNcIlxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZT1cIm5vXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtaW5wdXQgdC1pbnB1dF9jYXJkXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudC1pbnB1dF9pbmVydF09XCJjYXJkUHJlZmlsbGVkXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudC1pbnB1dF9oaWRkZW5dPVwiIWNhcmQubGVuZ3RoICYmIGZvY3VzZWRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImlkQ2FyZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIiFjYXJkUHJlZmlsbGVkICYmICEodGhpcy5jYXJkIHwgdHVpTWFwcGVyIDogY2FyZFZhbGlkYXRvcilcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjYXJkUHJlZmlsbGVkID8gJycgOiBleGFtcGxlVGV4dFwiXG4gICAgICAgICAgICAgICAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVDYXJkXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY29tcHV0ZWREaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgICAgICAgICBbdGV4dE1hc2tdPVwibWFza0NhcmRcIlxuICAgICAgICAgICAgICAgIFt0dWlGb2N1c2FibGVdPVwiY2FyZEZvY3VzYWJsZVwiXG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiZm9ybWF0dGVkQ2FyZFwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DYXJkQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChmb2N1cyk9XCIoMClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWNvbGxhcHNlZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1iZWZvcmVdPVwibWFza2VkXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudC1jb2xsYXBzZWRfZW5hYmxlLW1hc2tdPVwiaXNDYXJkQ29sbGFwc2VkXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAjZ2hvc3RcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgW2lubmVyVGV4dF09XCJmb3JtYXR0ZWRDYXJkLnNsaWNlKC10YWlsTGVuZ3RoKVwiXG4gICAgICAgICAgICAgICAgPjwvc3Bhbj5cblxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidC1jb2xsYXBzZWQtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LXZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwidHJhbnNmb3JtKGdob3N0KVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGZvcm1hdHRlZENhcmQgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LXBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudC1wbGFjZWhvbGRlcl9yYWlzZWRdPVwicGxhY2Vob2xkZXJSYWlzZWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHRleHRzLmNhcmROdW1iZXJUZXh0IH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInQtd3JhcHBlciB0LXdyYXBwZXJfZXhwaXJlXCJcbiAgICAgICAgW2NsYXNzLnQtd3JhcHBlcl9hY3RpdmVdPVwiaXNDYXJkQ29sbGFwc2VkXCJcbiAgICA+XG4gICAgICAgIDxsYWJlbCB0dWlQcmV2ZW50RGVmYXVsdD1cImNsaWNrXCI+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAjaW5wdXRFeHBpcmVcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIjAwLzAwXCJcbiAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LWNhcmQtZ3JvdXBlZF9fZXhwaXJlXCJcbiAgICAgICAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWlucHV0XCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudC1pbnB1dF9pbmVydF09XCIhZXhwaXJlRm9jdXNhYmxlXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5pZF09XCJpZEV4cGlyZVwiXG4gICAgICAgICAgICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgICAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZUV4cGlyZVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbXB1dGVkRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgICAgICAgICAgW3R1aUZvY3VzYWJsZV09XCJleHBpcmVGb2N1c2FibGVcIlxuICAgICAgICAgICAgICAgIFt0ZXh0TWFza109XCJtYXNrRXhwaXJlXCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJleHBpcmVcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRXhwaXJlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChmb2N1cyk9XCIoMClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LXBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudC1wbGFjZWhvbGRlcl9yYWlzZWRdPVwicGxhY2Vob2xkZXJSYWlzZWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHRleHRzLmV4cGlyeVRleHQgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidC13cmFwcGVyIHQtd3JhcHBlcl9jdmNcIlxuICAgICAgICBbY2xhc3MudC13cmFwcGVyX2FjdGl2ZV09XCJpc0NhcmRDb2xsYXBzZWRcIlxuICAgID5cbiAgICAgICAgPGxhYmVsIHR1aVByZXZlbnREZWZhdWx0PVwiY2xpY2tcIj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICNpbnB1dENWQ1xuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LWNhcmQtZ3JvdXBlZF9fY3ZjXCJcbiAgICAgICAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWlucHV0XCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudC1pbnB1dF9wcmVmaWxsZWRdPVwiY3ZjUHJlZmlsbGVkXCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY3ZjUHJlZmlsbGVkID8gJ+KAouKAouKAoicgOiBleGFtcGxlVGV4dENWQ1wiXG4gICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiaWRDVkNcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjb21wdXRlZERpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHkgfHwgY3ZjUHJlZmlsbGVkXCJcbiAgICAgICAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZUNWQ1wiXG4gICAgICAgICAgICAgICAgW3RleHRNYXNrXT1cIm1hc2tDVkNcIlxuICAgICAgICAgICAgICAgIFt0dWlGb2N1c2FibGVdPVwiY3ZjRm9jdXNhYmxlXCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJjdmNcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ1ZDQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChmb2N1cyk9XCIoMClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LXBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudC1wbGFjZWhvbGRlcl9yYWlzZWRdPVwicGxhY2Vob2xkZXJSYWlzZWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHRleHRzLmN2Y1RleHQgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidC1pY29uc1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cImljb25cIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWljb24tb3V0bGV0XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHR1aS1zdmdcbiAgICAgICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiaWNvbiBhcyB0ZXh0XCJcbiAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LWNhcmQtZ3JvdXBlZF9faWNvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWNhcmRcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwidGV4dFwiXG4gICAgICAgICAgICA+PC90dWktc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHR1aS1zdmdcbiAgICAgICAgICAgICpuZ0lmPVwiaGFzQ2xlYW5lclwiXG4gICAgICAgICAgICBzcmM9XCJ0dWlJY29uQ2xvc2VMYXJnZVwiXG4gICAgICAgICAgICBjbGFzcz1cInQtaWNvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xlYXIoKVwiXG4gICAgICAgID48L3R1aS1zdmc+XG4gICAgICAgIDx0dWktc3ZnXG4gICAgICAgICAgICAqbmdJZj1cImhhc0Ryb3Bkb3duXCJcbiAgICAgICAgICAgIHNyYz1cInR1aUljb25DaGV2cm9uRG93bkxhcmdlXCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1pY29uXCJcbiAgICAgICAgICAgIFtjbGFzcy50LWljb25fcm90YXRlZF09XCJvcGVuXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGUoKVwiXG4gICAgICAgID48L3R1aS1zdmc+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
408
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY2FyZC1ncm91cGVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FkZG9uLWNvbW1lcmNlL2NvbXBvbmVudHMvaW5wdXQtY2FyZC1ncm91cGVkL2lucHV0LWNhcmQtZ3JvdXBlZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZGRvbi1jb21tZXJjZS9jb21wb25lbnRzL2lucHV0LWNhcmQtZ3JvdXBlZC9pbnB1dC1jYXJkLWdyb3VwZWQudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFdBQVcsRUFDWCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxhQUFhLEVBQUUsdUJBQXVCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUcxRixPQUFPLEVBQ0gsZ0NBQWdDLEVBQ2hDLG1CQUFtQixHQUN0QixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFDSCwwQkFBMEIsRUFDMUIsWUFBWSxFQUNaLDBCQUEwQixFQUcxQixjQUFjLEVBRWQsWUFBWSxFQUNaLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsb0JBQW9CLEVBQ3BCLE9BQU8sRUFDUCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLG9CQUFvQixFQUNwQix3QkFBd0IsRUFDeEIsaUJBQWlCLEVBRWpCLG9CQUFvQixFQUNwQixvQkFBb0Is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TUFBTTtnQkFJRSxRQUFRO3NCQURoQixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBQztnQkFJOUMsUUFBUTtzQkFEaEIsWUFBWTt1QkFBQyxvQkFBb0I7Z0JBZ0tsQyxLQUFLO3NCQURKLFlBQVk7dUJBQUMsYUFBYTtnQkFPM0IsT0FBTztzQkFGTixZQUFZO3VCQUFDLDJCQUEyQixFQUFFLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQzs7c0JBQ2hFLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDO2dCQW1JeEQsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTZWxmLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUVUlfQ0FSRF9NQVNLLCB0dWlEZWZhdWx0Q2FyZFZhbGlkYXRvcn0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNvbW1lcmNlL2NvbnN0YW50cyc7XG5pbXBvcnQge1R1aUNhcmR9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jb21tZXJjZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7VHVpQ29kZUNWQ0xlbmd0aCwgVHVpUGF5bWVudFN5c3RlbX0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNvbW1lcmNlL3R5cGVzJztcbmltcG9ydCB7XG4gICAgdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZEV4cGlyZVBpcGUsXG4gICAgdHVpR2V0UGF5bWVudFN5c3RlbSxcbn0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNvbW1lcmNlL3V0aWxzJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2wsXG4gICAgdHVpQXNDb250cm9sLFxuICAgIHR1aUFzRm9jdXNhYmxlSXRlbUFjY2Vzc29yLFxuICAgIFR1aUF1dG9maWxsRmllbGROYW1lLFxuICAgIFR1aUJvb2xlYW5IYW5kbGVyLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvcixcbiAgICB0dWlJc0VsZW1lbnQsXG4gICAgdHVpSXNJbnB1dCxcbiAgICB0dWlJc05hdGl2ZUZvY3VzZWQsXG4gICAgdHVpSXNOYXRpdmVGb2N1c2VkSW4sXG4gICAgdHVpUHVyZSxcbiAgICB0dWlSZXF1aXJlZFNldHRlcixcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIE1PREVfUFJPVklERVIsXG4gICAgVFVJX0RJR0lUX1JFR0VYUCxcbiAgICBUVUlfTU9ERSxcbiAgICBUVUlfTk9OX0RJR0lUX1JFR0VYUCxcbiAgICBUVUlfVEVYVEZJRUxEX0FQUEVBUkFOQ0UsXG4gICAgdHVpQXNEYXRhTGlzdEhvc3QsXG4gICAgVHVpQnJpZ2h0bmVzcyxcbiAgICBUdWlEYXRhTGlzdENvbXBvbmVudCxcbiAgICBUdWlEYXRhTGlzdERpcmVjdGl2ZSxcbiAgICBUdWlEYXRhTGlzdEhvc3QsXG4gICAgVHVpVGV4dE1hc2tPcHRpb25zLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICAgIFRVSV9JTlBVVF9DQVJEX0dST1VQRURfVEVYVFMsXG4gICAgVHVpQ2FyZEdyb3VwZWRUZXh0cyxcbn0gZnJvbSAnLi9pbnB1dC1jYXJkLWdyb3VwZWQucHJvdmlkZXJzJztcblxuY29uc3QgU1RVQjogVHVpQ2FyZCA9IHtcbiAgICBjYXJkOiAnJyxcbiAgICBleHBpcmU6ICcnLFxuICAgIGN2YzogJycsXG59O1xuY29uc3QgSUNPTlM6IFJlY29yZDxUdWlQYXltZW50U3lzdGVtLCBzdHJpbmc+ID0ge1xuICAgIG1pcjogJ3R1aUljb25NaXInLFxuICAgIHZpc2E6ICd0dWlJY29uVmlzYScsXG4gICAgZWxlY3Ryb246ICd0dWlJY29uRWxlY3Ryb24nLFxuICAgIG1hc3RlcmNhcmQ6ICd0dWlJY29uTWFzdGVyY2FyZCcsXG4gICAgbWFlc3RybzogJ3R1aUljb25NYWVzdHJvJyxcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndHVpLWlucHV0LWNhcmQtZ3JvdXBlZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWNhcmQtZ3JvdXBlZC50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1jYXJkLWdyb3VwZWQuc3R5bGUubGVzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB0dWlBc0ZvY3VzYWJsZUl0ZW1BY2Nlc3NvcihUdWlJbnB1dENhcmRHcm91cGVkQ29tcG9uZW50KSxcbiAgICAgICAgdHVpQXNDb250cm9sKFR1aUlucHV0Q2FyZEdyb3VwZWRDb21wb25lbnQpLFxuICAgICAgICB0dWlBc0RhdGFMaXN0SG9zdChUdWlJbnB1dENhcmRHcm91cGVkQ29tcG9uZW50KSxcbiAgICAgICAgTU9ERV9QUk9WSURFUixcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJygkLmRhdGEtbW9kZS5hdHRyKSc6ICdtb2RlJCcsXG4gICAgICAgICdkYXRhLXNpemUnOiAnbCcsXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRDYXJkR3JvdXBlZENvbXBvbmVudFxuICAgIGV4dGVuZHMgQWJzdHJhY3RUdWlOdWxsYWJsZUNvbnRyb2w8VHVpQ2FyZD5cbiAgICBpbXBsZW1lbnRzIFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvciwgVHVpRGF0YUxpc3RIb3N0PFBhcnRpYWw8VHVpQ2FyZD4+XG57XG4gICAgQFZpZXdDaGlsZCgnaW5wdXRDYXJkJylcbiAgICBwcml2YXRlIHJlYWRvbmx5IGlucHV0Q2FyZD86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dEV4cGlyZScpXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dEV4cGlyZT86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dENWQycpXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dENWQz86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgICBwcml2YXRlIGV4cGlyZUluZXJ0ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgYXV0b2NvbXBsZXRlRW5hYmxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGNhcmRTcmM6IFBvbHltb3JwaGV1c0NvbnRlbnQgPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBleGFtcGxlVGV4dCA9ICcwMDAwIDAwMDAgMDAwMCAwMDAwJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBjYXJkVmFsaWRhdG9yOiBUdWlCb29sZWFuSGFuZGxlcjxzdHJpbmc+ID0gdHVpRGVmYXVsdENhcmRWYWxpZGF0b3I7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlSZXF1aXJlZFNldHRlcigpXG4gICAgc2V0IGNvZGVMZW5ndGgobGVuZ3RoOiBUdWlDb2RlQ1ZDTGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuZXhhbXBsZVRleHRDVkMgPSAnMCcucmVwZWF0KGxlbmd0aCk7XG4gICAgICAgIHRoaXMubWFza0NWQyA9IHtcbiAgICAgICAgICAgIG1hc2s6IG5ldyBBcnJheShsZW5ndGgpLmZpbGwoVFVJX0RJR0lUX1JFR0VYUCksXG4gICAgICAgICAgICBndWlkZTogZmFsc2UsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgYXV0b2ZpbGxlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGJpbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVsbD4oKTtcblxuICAgIEBDb250ZW50Q2hpbGQoVHVpRGF0YUxpc3REaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZn0pXG4gICAgcmVhZG9ubHkgZHJvcGRvd246IFBvbHltb3JwaGV1c0NvbnRlbnQgPSAnJztcblxuICAgIEBDb250ZW50Q2hpbGQoVHVpRGF0YUxpc3RDb21wb25lbnQpXG4gICAgcmVhZG9ubHkgZGF0YWxpc3Q/OiBUdWlEYXRhTGlzdENvbXBvbmVudDxUdWlDYXJkPjtcblxuICAgIGV4YW1wbGVUZXh0Q1ZDID0gJzAwMCc7XG5cbiAgICBtYXNrQ1ZDOiBUdWlUZXh0TWFza09wdGlvbnMgPSB7XG4gICAgICAgIG1hc2s6IG5ldyBBcnJheSgzKS5maWxsKFRVSV9ESUdJVF9SRUdFWFApLFxuICAgICAgICBndWlkZTogZmFsc2UsXG4gICAgfTtcblxuICAgIHJlYWRvbmx5IG1hc2tDYXJkOiBUdWlUZXh0TWFza09wdGlvbnMgPSB7XG4gICAgICAgIG1hc2s6IFRVSV9DQVJEX01BU0ssXG4gICAgICAgIGd1aWRlOiBmYWxzZSxcbiAgICAgICAgcGlwZTogY29uZm9ybWVkVmFsdWUgPT4gY29uZm9ybWVkVmFsdWUudHJpbSgpLFxuICAgIH07XG5cbiAgICByZWFkb25seSBtYXNrRXhwaXJlOiBUdWlUZXh0TWFza09wdGlvbnMgPSB7XG4gICAgICAgIG1hc2s6IFtcbiAgICAgICAgICAgIFRVSV9ESUdJVF9SRUdFWFAsXG4gICAgICAgICAgICBUVUlfRElHSVRfUkVHRVhQLFxuICAgICAgICAgICAgJy8nLFxuICAgICAgICAgICAgVFVJX0RJR0lUX1JFR0VYUCxcbiAgICAgICAgICAgIFRVSV9ESUdJVF9SRUdFWFAsXG4gICAgICAgIF0sXG4gICAgICAgIHBpcGU6IHR1aUNyZWF0ZUF1dG9Db3JyZWN0ZWRFeHBpcmVQaXBlKCksXG4gICAgICAgIGd1aWRlOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgb3BlbiA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChOZ0NvbnRyb2wpXG4gICAgICAgIGNvbnRyb2w6IE5nQ29udHJvbCB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFRVSV9NT0RFKSByZWFkb25seSBtb2RlJDogT2JzZXJ2YWJsZTxUdWlCcmlnaHRuZXNzIHwgbnVsbD4sXG4gICAgICAgIEBJbmplY3QoVFVJX0lOUFVUX0NBUkRfR1JPVVBFRF9URVhUUylcbiAgICAgICAgcmVhZG9ubHkgY2FyZEdyb3VwZWRUZXh0cyQ6IE9ic2VydmFibGU8VHVpQ2FyZEdyb3VwZWRUZXh0cz4sXG4gICAgICAgIEBJbmplY3QoVFVJX1RFWFRGSUVMRF9BUFBFQVJBTkNFKVxuICAgICAgICByZWFkb25seSBhcHBlYXJhbmNlOiBzdHJpbmcsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGNvbnRyb2wsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRm9jdXNhYmxlRWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmlucHV0Q2FyZCA/IHRoaXMuaW5wdXRDYXJkLm5hdGl2ZUVsZW1lbnQgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcGVuIHx8IHR1aUlzTmF0aXZlRm9jdXNlZEluKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBnZXQgY2FyZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZT8uY2FyZCB8fCAnJztcbiAgICB9XG5cbiAgICBnZXQgZXhwaXJlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlPy5leHBpcmUgfHwgJyc7XG4gICAgfVxuXG4gICAgZ2V0IGN2YygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZT8uY3ZjIHx8ICcnO1xuICAgIH1cblxuICAgIGdldCBoYXNDbGVhbmVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnZhbHVlPy5jYXJkPy50cmltKCkgJiYgIXRoaXMucmVhZE9ubHkgJiYgIXRoaXMuY29tcHV0ZWREaXNhYmxlZDtcbiAgICB9XG5cbiAgICBnZXQgaGFzRHJvcGRvd24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZHJvcGRvd247XG4gICAgfVxuXG4gICAgZ2V0IGRlZmF1bHRJY29uKCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBjb25zdCB7cGF5bWVudFN5c3RlbX0gPSB0aGlzO1xuXG4gICAgICAgIHJldHVybiBwYXltZW50U3lzdGVtICYmIElDT05TW3BheW1lbnRTeXN0ZW1dO1xuICAgIH1cblxuICAgIGdldCBpY29uKCk6IFBvbHltb3JwaGV1c0NvbnRlbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5jYXJkU3JjIHx8IHRoaXMuZGVmYXVsdEljb247XG4gICAgfVxuXG4gICAgZ2V0IGJpbigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnZhbHVlIHx8IHRoaXMudmFsdWUuY2FyZC5sZW5ndGggPCA2XG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogdGhpcy52YWx1ZS5jYXJkLnNsaWNlKDAsIDYpO1xuICAgIH1cblxuICAgIGdldCBwbGFjZWhvbGRlclJhaXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmNvbXB1dGVkRm9jdXNlZCAmJiAhdGhpcy5yZWFkT25seSkgfHwgdGhpcy5oYXNDYXJkTnVtYmVyO1xuICAgIH1cblxuICAgIGdldCBoYXNDYXJkTnVtYmVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnZhbHVlPy5jYXJkPy50cmltKCk7XG4gICAgfVxuXG4gICAgZ2V0IGlkQ2FyZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5pZH1fY2FyZGA7XG4gICAgfVxuXG4gICAgZ2V0IGlkRXhwaXJlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmlkfV9leHBpcmVgO1xuICAgIH1cblxuICAgIGdldCBpZENWQygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5pZH1fY3ZjYDtcbiAgICB9XG5cbiAgICBnZXQgaXNDYXJkQ29sbGFwc2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0ZvY3VzYWJsZSh0aGlzLmNhcmQpICYmICF0aGlzLmNhcmRGb2N1c2VkO1xuICAgIH1cblxuICAgIGdldCBhdXRvY29tcGxldGVDYXJkKCk6IFR1aUF1dG9maWxsRmllbGROYW1lIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0b2NvbXBsZXRlRW5hYmxlZCA/ICdjYy1udW1iZXInIDogJ29mZic7XG4gICAgfVxuXG4gICAgZ2V0IGF1dG9jb21wbGV0ZUV4cGlyZSgpOiBUdWlBdXRvZmlsbEZpZWxkTmFtZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dG9jb21wbGV0ZUVuYWJsZWQgPyAnY2MtZXhwJyA6ICdvZmYnO1xuICAgIH1cblxuICAgIGdldCBhdXRvY29tcGxldGVDVkMoKTogVHVpQXV0b2ZpbGxGaWVsZE5hbWUge1xuICAgICAgICByZXR1cm4gdGhpcy5hdXRvY29tcGxldGVFbmFibGVkID8gJ2NjLWNzYycgOiAnb2ZmJztcbiAgICB9XG5cbiAgICBnZXQgdGFpbExlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNFeHRyYVNwYWNlID8gNSA6IDQ7XG4gICAgfVxuXG4gICAgLy8gU2FmYXJpIGV4cGlyYXRpb24gZGF0ZSBhdXRvZmlsbCB3b3JrYXJvdW5kXG4gICAgZ2V0IG5hbWUoKTogJ2NjZXhwaXJ5eWVhcicgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXV0b2NvbXBsZXRlRW5hYmxlZCA/ICdjY2V4cGlyeXllYXInIDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXQgY2FyZFByZWZpbGxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5jYXJkLm1hdGNoKFRVSV9OT05fRElHSVRfUkVHRVhQKTtcbiAgICB9XG5cbiAgICBnZXQgY3ZjUHJlZmlsbGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmN2Yy5tYXRjaChUVUlfTk9OX0RJR0lUX1JFR0VYUCk7XG4gICAgfVxuXG4gICAgZ2V0IGNhcmRGb2N1c2FibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvY3VzYWJsZSAmJiAhdGhpcy5jYXJkUHJlZmlsbGVkO1xuICAgIH1cblxuICAgIGdldCBleHBpcmVGb2N1c2FibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRm9jdXNhYmxlKHRoaXMuY2FyZCkgJiYgIXRoaXMuZXhwaXJlSW5lcnQ7XG4gICAgfVxuXG4gICAgZ2V0IGN2Y0ZvY3VzYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNGb2N1c2FibGUodGhpcy5jYXJkKTtcbiAgICB9XG5cbiAgICBnZXQgbWFza2VkKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcmRQcmVmaWxsZWQgPyBgKiR7dGhpcy5jYXJkLnNsaWNlKC00KX1gIDogJyonO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZXNjJylcbiAgICBvbkVzYygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd0Rvd24ucHJldmVudCcsIFsnJGV2ZW50LnRhcmdldCcsICcxJ10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd1VwLnByZXZlbnQnLCBbJyRldmVudC50YXJnZXQnLCAnLTEnXSlcbiAgICBvbkFycm93KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBzdGVwOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuID0gdGhpcy5oYXNEcm9wZG93bjtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuZGF0YWxpc3Q/Lm9uS2V5RG93bkFycm93KGVsZW1lbnQsIHN0ZXApO1xuICAgIH1cblxuICAgIGhhbmRsZU9wdGlvbihvcHRpb246IFBhcnRpYWw8VHVpQ2FyZD4pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge2NhcmQgPSAnJywgZXhwaXJlID0gJycsIGN2YyA9ICcnfSA9IG9wdGlvbjtcbiAgICAgICAgY29uc3Qge2Jpbn0gPSB0aGlzO1xuICAgICAgICBjb25zdCBlbGVtZW50ID1cbiAgICAgICAgICAgICghZXhwaXJlICYmIHRoaXMuaW5wdXRFeHBpcmU/Lm5hdGl2ZUVsZW1lbnQpIHx8IHRoaXMuaW5wdXRDVkM/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZSh7Y2FyZCwgZXhwaXJlLCBjdmN9KTtcbiAgICAgICAgdGhpcy51cGRhdGVCaW4oYmluKTtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZXhwaXJlSW5lcnQgPSAhIWV4cGlyZTtcblxuICAgICAgICBlbGVtZW50Py5mb2N1cygpO1xuICAgIH1cblxuICAgIG9uQ2FyZENoYW5nZShjYXJkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qge3ZhbHVlLCBiaW59ID0gdGhpcztcbiAgICAgICAgY29uc3QgcGFyc2VkID0gY2FyZC5zcGxpdCgnICcpLmpvaW4oJycpO1xuXG4gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5jYXJkID09PSBwYXJzZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlUHJvcGVydHkocGFyc2VkLCAnY2FyZCcpO1xuICAgICAgICB0aGlzLnVwZGF0ZUJpbihiaW4pO1xuXG4gICAgICAgIGlmICh0aGlzLmNhcmRWYWxpZGF0b3IodGhpcy5jYXJkKSAmJiAhdGhpcy5leHBpcmUgJiYgdGhpcy5pbnB1dEV4cGlyZSkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c0V4cGlyZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25FeHBpcmVDaGFuZ2UoZXhwaXJlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8gQGJhZCBUT0RPOiBXb3JrYXJvdW5kIHVudGlsIG1hc2sgcGlwZSBjYW4gcmVwbGFjZSBjaGFycyBhbmQga2VlcCBjYXJldCBwb3NpdGlvblxuICAgICAgICAvLyBAYmFkIFRPRE86IFRoaW5rIGFib3V0IGEgc29sdXRpb24gd2l0aG91dCBtYXNrIGF0IGFsbFxuICAgICAgICBpZiAoIXRoaXMuaW5wdXRFeHBpcmUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwYXJzZUludChleHBpcmUuc2xpY2UoMCwgMiksIDEwKSA+IDEyKSB7XG4gICAgICAgICAgICBleHBpcmUgPSBgMTIke2V4cGlyZS5zbGljZSgyKX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV4cGlyZS5zbGljZSgwLCAyKSA9PT0gJzAwJykge1xuICAgICAgICAgICAgZXhwaXJlID0gYDAxJHtleHBpcmUuc2xpY2UoMil9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5wdXRFeHBpcmUubmF0aXZlRWxlbWVudC52YWx1ZSA9IGV4cGlyZTtcbiAgICAgICAgdGhpcy51cGRhdGVQcm9wZXJ0eShleHBpcmUsICdleHBpcmUnKTtcblxuICAgICAgICBpZiAoZXhwaXJlLmxlbmd0aCA9PT0gNSkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c0NWQygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DVkNDaGFuZ2UoY3ZjOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVQcm9wZXJ0eShjdmMsICdjdmMnKTtcbiAgICB9XG5cbiAgICB0cmFuc2Zvcm0oe29mZnNldFdpZHRofTogSFRNTFNwYW5FbGVtZW50KTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNDYXJkQ29sbGFwc2VkID8gYHRyYW5zbGF0ZTNkKCR7b2Zmc2V0V2lkdGh9cHgsIDAsIDApYCA6ICcnO1xuICAgIH1cblxuICAgIG9uQWN0aXZlWm9uZUNoYW5nZShhY3RpdmU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVGb2N1c2VkKGFjdGl2ZSk7XG4gICAgICAgIHRoaXMub3BlbiA9IGFjdGl2ZSAmJiB0aGlzLm9wZW47XG4gICAgfVxuXG4gICAgb25Nb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHR1aUlzRWxlbWVudChldmVudC50YXJnZXQpICYmIHR1aUlzSW5wdXQoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5mb2N1c0lucHV0KCk7XG4gICAgfVxuXG4gICAgb25TY3JvbGwoe2N1cnJlbnRUYXJnZXR9OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodHVpSXNFbGVtZW50KGN1cnJlbnRUYXJnZXQpKSB7XG4gICAgICAgICAgICBjdXJyZW50VGFyZ2V0LnNjcm9sbExlZnQgPSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG4gICAgICAgIHRoaXMuZm9jdXNDYXJkKCk7XG4gICAgfVxuXG4gICAgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IFR1aUNhcmQgfCBudWxsKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtiaW59ID0gdGhpcztcblxuICAgICAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVCaW4oYmluKTtcbiAgICAgICAgdGhpcy5leHBpcmVJbmVydCA9ICEhdGhpcy5leHBpcmUgJiYgdGhpcy5jYXJkUHJlZmlsbGVkO1xuICAgIH1cblxuICAgIC8qKiBQdWJsaWMgQVBJIGZvciBtYW51YWwgZm9jdXMgbWFuYWdlbWVudCAqL1xuICAgIGZvY3VzQ2FyZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dENhcmQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBmb2N1c0V4cGlyZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dEV4cGlyZT8ubmF0aXZlRWxlbWVudC5mb2N1cyh7cHJldmVudFNjcm9sbDogdHJ1ZX0pO1xuICAgIH1cblxuICAgIGZvY3VzQ1ZDKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0Q1ZDPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgY2FyZEZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuaW5wdXRDYXJkICYmIHR1aUlzTmF0aXZlRm9jdXNlZCh0aGlzLmlucHV0Q2FyZC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBwYXltZW50U3lzdGVtKCk6IFR1aVBheW1lbnRTeXN0ZW0gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUgJiYgdHVpR2V0UGF5bWVudFN5c3RlbSh0aGlzLnZhbHVlLmNhcmQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGhhc0V4dHJhU3BhY2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhcmQubGVuZ3RoICUgNCA+IDA7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGlzRm9jdXNhYmxlKGNhcmQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb2N1c2FibGUgJiYgKHRoaXMuY2FyZFZhbGlkYXRvcihjYXJkKSB8fCB0aGlzLmNhcmRQcmVmaWxsZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlQmluKG9sZEJpbjogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7YmlufSA9IHRoaXM7XG5cbiAgICAgICAgaWYgKGJpbiAhPT0gb2xkQmluICYmICF0aGlzLmNhcmRQcmVmaWxsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYmluQ2hhbmdlLmVtaXQoYmluKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUHJvcGVydHkocHJvcFZhbHVlOiBzdHJpbmcsIHByb3BOYW1lOiAnY2FyZCcgfCAnY3ZjJyB8ICdleHBpcmUnKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHtjYXJkLCBleHBpcmUsIGN2Y30gPSB0aGlzLnZhbHVlIHx8IFNUVUI7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlOiBUdWlDYXJkID0ge1xuICAgICAgICAgICAgY2FyZCxcbiAgICAgICAgICAgIGV4cGlyZSxcbiAgICAgICAgICAgIGN2YyxcbiAgICAgICAgfTtcblxuICAgICAgICBuZXdWYWx1ZVtwcm9wTmFtZV0gPSBwcm9wVmFsdWU7XG5cbiAgICAgICAgaWYgKCFuZXdWYWx1ZS5leHBpcmUgJiYgIW5ld1ZhbHVlLmN2YyAmJiAhbmV3VmFsdWUuY2FyZCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShudWxsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUobmV3VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmb2N1c0lucHV0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBlbGVtZW50ID1cbiAgICAgICAgICAgICh0aGlzLmNhcmRGb2N1c2FibGUgJiYgdGhpcy5pbnB1dENhcmQ/Lm5hdGl2ZUVsZW1lbnQpIHx8XG4gICAgICAgICAgICAodGhpcy5leHBpcmVGb2N1c2FibGUgJiYgdGhpcy5pbnB1dEV4cGlyZT8ubmF0aXZlRWxlbWVudCkgfHxcbiAgICAgICAgICAgIHRoaXMuaW5wdXRDVkM/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgZWxlbWVudD8uZm9jdXMoKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgKm5nSWY9XCJjYXJkR3JvdXBlZFRleHRzJCB8IGFzeW5jIGFzIHRleHRzXCJcbiAgICB0dWlXcmFwcGVyXG4gICAgdHVpRHJvcGRvd25MaW1pdFdpZHRoPVwiZml4ZWRcIlxuICAgIGNsYXNzPVwidC1jb21tb24td3JhcHBlclwiXG4gICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICBbZGlzYWJsZWRdPVwiY29tcHV0ZWREaXNhYmxlZFwiXG4gICAgW2ZvY3VzXT1cImNvbXB1dGVkRm9jdXNlZFwiXG4gICAgW2hvdmVyXT1cInBzZXVkb0hvdmVyXCJcbiAgICBbaW52YWxpZF09XCJjb21wdXRlZEludmFsaWRcIlxuICAgIFt0dWlEcm9wZG93bk1hbnVhbF09XCJvcGVuXCJcbiAgICBbdHVpRHJvcGRvd25dPVwiZHJvcGRvd24gfHwgJydcIlxuICAgICh0dWlBY3RpdmVab25lQ2hhbmdlKT1cIm9uQWN0aXZlWm9uZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAoc2Nyb2xsKT1cIm9uU2Nyb2xsKCRldmVudClcIlxuICAgIChtb3VzZWRvd24pPVwib25Nb3VzZURvd24oJGV2ZW50KVwiXG4+XG4gICAgPGRpdiBjbGFzcz1cInQtd3JhcHBlclwiPlxuICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICp0dWlMZXQ9XCJ2YWx1ZT8uY2FyZCB8IHR1aUZvcm1hdENhcmQgOiBjYXJkUHJlZmlsbGVkIGFzIGZvcm1hdHRlZENhcmRcIlxuICAgICAgICAgICAgdHVpUHJldmVudERlZmF1bHQ9XCJjbGlja1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICNpbnB1dENhcmRcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgYXV0b21hdGlvbi1pZD1cInR1aS1pbnB1dC1jYXJkLWdyb3VwZWRfX2NhcmRcIlxuICAgICAgICAgICAgICAgIGlucHV0bW9kZT1cIm51bWVyaWNcIlxuICAgICAgICAgICAgICAgIHRyYW5zbGF0ZT1cIm5vXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtaW5wdXQgdC1pbnB1dF9jYXJkXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudC1pbnB1dF9pbmVydF09XCJjYXJkUHJlZmlsbGVkXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudC1pbnB1dF9oaWRkZW5dPVwiIWNhcmQubGVuZ3RoICYmIGZvY3VzZWRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImlkQ2FyZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIiFjYXJkUHJlZmlsbGVkICYmICEodGhpcy5jYXJkIHwgdHVpTWFwcGVyIDogY2FyZFZhbGlkYXRvcilcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjYXJkUHJlZmlsbGVkID8gJycgOiBleGFtcGxlVGV4dFwiXG4gICAgICAgICAgICAgICAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVDYXJkXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY29tcHV0ZWREaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcbiAgICAgICAgICAgICAgICBbdGV4dE1hc2tdPVwibWFza0NhcmRcIlxuICAgICAgICAgICAgICAgIFt0dWlGb2N1c2FibGVdPVwiY2FyZEZvY3VzYWJsZVwiXG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiZm9ybWF0dGVkQ2FyZFwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DYXJkQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChmb2N1cyk9XCIoMClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWNvbGxhcHNlZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1iZWZvcmVdPVwibWFza2VkXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudC1jb2xsYXBzZWRfZW5hYmxlLW1hc2tdPVwiaXNDYXJkQ29sbGFwc2VkXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAjZ2hvc3RcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWdob3N0XCJcbiAgICAgICAgICAgICAgICAgICAgW2lubmVyVGV4dF09XCJmb3JtYXR0ZWRDYXJkLnNsaWNlKC10YWlsTGVuZ3RoKVwiXG4gICAgICAgICAgICAgICAgPjwvc3Bhbj5cblxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidC1jb2xsYXBzZWQtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0LXZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS50cmFuc2Zvcm1dPVwidHJhbnNmb3JtKGdob3N0KVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGZvcm1hdHRlZENhcmQgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LXBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudC1wbGFjZWhvbGRlcl9yYWlzZWRdPVwicGxhY2Vob2xkZXJSYWlzZWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHRleHRzLmNhcmROdW1iZXJUZXh0IH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInQtd3JhcHBlciB0LXdyYXBwZXJfZXhwaXJlXCJcbiAgICAgICAgW2NsYXNzLnQtd3JhcHBlcl9hY3RpdmVdPVwiaXNDYXJkQ29sbGFwc2VkXCJcbiAgICA+XG4gICAgICAgIDxsYWJlbCB0dWlQcmV2ZW50RGVmYXVsdD1cImNsaWNrXCI+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAjaW5wdXRFeHBpcmVcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIjAwLzAwXCJcbiAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LWNhcmQtZ3JvdXBlZF9fZXhwaXJlXCJcbiAgICAgICAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWlucHV0XCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudC1pbnB1dF9pbmVydF09XCIhZXhwaXJlRm9jdXNhYmxlXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5pZF09XCJpZEV4cGlyZVwiXG4gICAgICAgICAgICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgICAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZUV4cGlyZVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNvbXB1dGVkRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgICAgICAgICAgW3R1aUZvY3VzYWJsZV09XCJleHBpcmVGb2N1c2FibGVcIlxuICAgICAgICAgICAgICAgIFt0ZXh0TWFza109XCJtYXNrRXhwaXJlXCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJleHBpcmVcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRXhwaXJlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChmb2N1cyk9XCIoMClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LXBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudC1wbGFjZWhvbGRlcl9yYWlzZWRdPVwicGxhY2Vob2xkZXJSYWlzZWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHRleHRzLmV4cGlyeVRleHQgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidC13cmFwcGVyIHQtd3JhcHBlcl9jdmNcIlxuICAgICAgICBbY2xhc3MudC13cmFwcGVyX2FjdGl2ZV09XCJpc0NhcmRDb2xsYXBzZWRcIlxuICAgID5cbiAgICAgICAgPGxhYmVsIHR1aVByZXZlbnREZWZhdWx0PVwiY2xpY2tcIj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICNpbnB1dENWQ1xuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LWNhcmQtZ3JvdXBlZF9fY3ZjXCJcbiAgICAgICAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWlucHV0XCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudC1pbnB1dF9wcmVmaWxsZWRdPVwiY3ZjUHJlZmlsbGVkXCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY3ZjUHJlZmlsbGVkID8gJ+KAouKAouKAoicgOiBleGFtcGxlVGV4dENWQ1wiXG4gICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiaWRDVkNcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjb21wdXRlZERpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHkgfHwgY3ZjUHJlZmlsbGVkXCJcbiAgICAgICAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZUNWQ1wiXG4gICAgICAgICAgICAgICAgW3RleHRNYXNrXT1cIm1hc2tDVkNcIlxuICAgICAgICAgICAgICAgIFt0dWlGb2N1c2FibGVdPVwiY3ZjRm9jdXNhYmxlXCJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJjdmNcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ1ZDQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChmb2N1cyk9XCIoMClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LXBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudC1wbGFjZWhvbGRlcl9yYWlzZWRdPVwicGxhY2Vob2xkZXJSYWlzZWRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHRleHRzLmN2Y1RleHQgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidC1pY29uc1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cImljb25cIlxuICAgICAgICAgICAgY2xhc3M9XCJ0LWljb24tb3V0bGV0XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHR1aS1zdmdcbiAgICAgICAgICAgICAgICAqcG9seW1vcnBoZXVzT3V0bGV0PVwiaWNvbiBhcyB0ZXh0XCJcbiAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwidHVpLWlucHV0LWNhcmQtZ3JvdXBlZF9faWNvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWNhcmRcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwidGV4dFwiXG4gICAgICAgICAgICA+PC90dWktc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHR1aS1zdmdcbiAgICAgICAgICAgICpuZ0lmPVwiaGFzQ2xlYW5lclwiXG4gICAgICAgICAgICBzcmM9XCJ0dWlJY29uQ2xvc2VMYXJnZVwiXG4gICAgICAgICAgICBjbGFzcz1cInQtaWNvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xlYXIoKVwiXG4gICAgICAgID48L3R1aS1zdmc+XG4gICAgICAgIDx0dWktc3ZnXG4gICAgICAgICAgICAqbmdJZj1cImhhc0Ryb3Bkb3duXCJcbiAgICAgICAgICAgIHNyYz1cInR1aUljb25DaGV2cm9uRG93bkxhcmdlXCJcbiAgICAgICAgICAgIGNsYXNzPVwidC1pY29uXCJcbiAgICAgICAgICAgIFtjbGFzcy50LWljb25fcm90YXRlZF09XCJvcGVuXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGUoKVwiXG4gICAgICAgID48L3R1aS1zdmc+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==