monkey-style-guide 2.0.46 → 2.0.50

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.
@@ -3,11 +3,12 @@
3
3
  * This style guide was developed by Monkey Exchange Team
4
4
  * MIT Licence
5
5
  **************************/
6
- import { Component, ViewEncapsulation, Input } from '@angular/core';
6
+ import { Component, ViewEncapsulation, Input, HostListener, } from '@angular/core';
7
7
  export class MonkeyButtonComponent {
8
8
  constructor() {
9
9
  this.iconPosition = 'left';
10
10
  this.disabled = false;
11
+ this.size = 'lg';
11
12
  this._useContrast = false;
12
13
  }
13
14
  ngOnInit() {
@@ -16,6 +17,13 @@ export class MonkeyButtonComponent {
16
17
  this._useContrast = true;
17
18
  }
18
19
  }
20
+ onClick(event) {
21
+ if (this.disabled) {
22
+ event.stopPropagation();
23
+ event.preventDefault();
24
+ event.stopImmediatePropagation();
25
+ }
26
+ }
19
27
  }
20
28
  MonkeyButtonComponent.decorators = [
21
29
  { type: Component, args: [{
@@ -29,7 +37,9 @@ MonkeyButtonComponent.decorators = [
29
37
  type +
30
38
  '__' +
31
39
  color +
32
- (icon ? ' with-icon' : ' no-icon')
40
+ (icon ? ' with-icon' : ' no-icon') +
41
+ ' ' +
42
+ size
33
43
  "
34
44
  type="button"
35
45
  [disabled]="disabled"
@@ -37,13 +47,16 @@ MonkeyButtonComponent.decorators = [
37
47
  <monkey-icon
38
48
  [icon]="icon"
39
49
  [color]="
40
- type === 'filter'
50
+ disabled
51
+ ? '#999999'
52
+ : type === 'filter'
41
53
  ? '#4b4a53'
42
54
  : type === 'nav-active'
43
55
  ? 'theme'
44
56
  : 'theme-800'
45
57
  "
46
58
  [contrast]="_useContrast"
59
+ [disabled]="disabled"
47
60
  *ngIf="iconPosition === 'left' && icon"
48
61
  ></monkey-icon>
49
62
  {{ label }}
@@ -51,12 +64,15 @@ MonkeyButtonComponent.decorators = [
51
64
  <monkey-icon
52
65
  [icon]="icon"
53
66
  [color]="
54
- type === 'filter'
67
+ disabled
68
+ ? '#999999'
69
+ : type === 'filter'
55
70
  ? '#4b4a53'
56
71
  : type === 'nav-active'
57
72
  ? 'theme'
58
73
  : 'theme-800'
59
74
  "
75
+ [disabled]="disabled"
60
76
  *ngIf="iconPosition === 'right' && icon"
61
77
  ></monkey-icon>
62
78
  </button>
@@ -71,6 +87,8 @@ MonkeyButtonComponent.propDecorators = {
71
87
  iconPosition: [{ type: Input }],
72
88
  type: [{ type: Input }],
73
89
  color: [{ type: Input }],
74
- disabled: [{ type: Input }]
90
+ disabled: [{ type: Input }],
91
+ size: [{ type: Input }],
92
+ onClick: [{ type: HostListener, args: ['click', ['$event'],] }]
75
93
  };
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1zdHlsZS1ndWlkZS9zcmMvbGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NEJBSTRCO0FBQzVCLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBK0M1RSxNQUFNLE9BQU8scUJBQXFCO0lBU2hDO1FBTlMsaUJBQVksR0FBVyxNQUFNLENBQUM7UUFHOUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUVuQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztJQUNOLENBQUM7SUFFaEIsUUFBUTtRQUNOLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQzs7O1lBN0RGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0NUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7O29CQUVFLEtBQUs7bUJBQ0wsS0FBSzsyQkFDTCxLQUFLO21CQUNMLEtBQUs7b0JBQ0wsS0FBSzt1QkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAqIENvcHlyaWdodCBNb25rZXkgRXhjaGFuZ2UuIEFsbCBSaWdodHMgUmVzZXJ2ZWRcclxuICogVGhpcyBzdHlsZSBndWlkZSB3YXMgZGV2ZWxvcGVkIGJ5IE1vbmtleSBFeGNoYW5nZSBUZWFtXHJcbiAqIE1JVCBMaWNlbmNlXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtb25rZXktYnV0dG9uJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBbbmdDbGFzc109XCJcclxuICAgICAgICAnbWVjeC1idXR0b24tJyArXHJcbiAgICAgICAgdHlwZSArXHJcbiAgICAgICAgJyBtZWN4LWJ1dHRvbi0nICtcclxuICAgICAgICB0eXBlICtcclxuICAgICAgICAnX18nICtcclxuICAgICAgICBjb2xvciArXHJcbiAgICAgICAgKGljb24gPyAnIHdpdGgtaWNvbicgOiAnIG5vLWljb24nKVxyXG4gICAgICBcIlxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgID5cclxuICAgICAgPG1vbmtleS1pY29uXHJcbiAgICAgICAgW2ljb25dPVwiaWNvblwiXHJcbiAgICAgICAgW2NvbG9yXT1cIlxyXG4gICAgICAgICAgdHlwZSA9PT0gJ2ZpbHRlcidcclxuICAgICAgICAgICAgPyAnIzRiNGE1MydcclxuICAgICAgICAgICAgOiB0eXBlID09PSAnbmF2LWFjdGl2ZSdcclxuICAgICAgICAgICAgPyAndGhlbWUnXHJcbiAgICAgICAgICAgIDogJ3RoZW1lLTgwMCdcclxuICAgICAgICBcIlxyXG4gICAgICAgIFtjb250cmFzdF09XCJfdXNlQ29udHJhc3RcIlxyXG4gICAgICAgICpuZ0lmPVwiaWNvblBvc2l0aW9uID09PSAnbGVmdCcgJiYgaWNvblwiXHJcbiAgICAgID48L21vbmtleS1pY29uPlxyXG4gICAgICB7eyBsYWJlbCB9fVxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgIDxtb25rZXktaWNvblxyXG4gICAgICAgIFtpY29uXT1cImljb25cIlxyXG4gICAgICAgIFtjb2xvcl09XCJcclxuICAgICAgICAgIHR5cGUgPT09ICdmaWx0ZXInXHJcbiAgICAgICAgICAgID8gJyM0YjRhNTMnXHJcbiAgICAgICAgICAgIDogdHlwZSA9PT0gJ25hdi1hY3RpdmUnXHJcbiAgICAgICAgICAgID8gJ3RoZW1lJ1xyXG4gICAgICAgICAgICA6ICd0aGVtZS04MDAnXHJcbiAgICAgICAgXCJcclxuICAgICAgICAqbmdJZj1cImljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0JyAmJiBpY29uXCJcclxuICAgICAgPjwvbW9ua2V5LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb25rZXlCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGljb25Qb3NpdGlvbjogc3RyaW5nID0gJ2xlZnQnO1xyXG4gIEBJbnB1dCgpIHR5cGU6IHN0cmluZztcclxuICBASW5wdXQoKSBjb2xvcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIF91c2VDb250cmFzdCA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBjb25zdCB7IHR5cGUgfSA9IHRoaXM7XHJcbiAgICBpZiAodHlwZSA9PT0gJ3ByaW1hcnknKSB7XHJcbiAgICAgIHRoaXMuX3VzZUNvbnRyYXN0ID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1zdHlsZS1ndWlkZS9zcmMvbGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NEJBSTRCO0FBQzVCLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLEtBQUssRUFFTCxZQUFZLEdBRWIsTUFBTSxlQUFlLENBQUM7QUF1RHZCLE1BQU0sT0FBTyxxQkFBcUI7SUFVaEM7UUFQUyxpQkFBWSxHQUFXLE1BQU0sQ0FBQztRQUc5QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFNBQUksR0FBdUIsSUFBSSxDQUFDO1FBRXpDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ04sQ0FBQztJQUVoQixRQUFRO1FBQ04sTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBR0QsT0FBTyxDQUFDLEtBQVU7UUFDaEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsS0FBSyxDQUFDLHdCQUF3QixFQUFFLENBQUM7U0FDbEM7SUFDSCxDQUFDOzs7WUEvRUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxlQUFlO2dCQUN6QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdEVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7OztvQkFFRSxLQUFLO21CQUNMLEtBQUs7MkJBQ0wsS0FBSzttQkFDTCxLQUFLO29CQUNMLEtBQUs7dUJBQ0wsS0FBSzttQkFDTCxLQUFLO3NCQVlMLFlBQVksU0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICogQ29weXJpZ2h0IE1vbmtleSBFeGNoYW5nZS4gQWxsIFJpZ2h0cyBSZXNlcnZlZFxyXG4gKiBUaGlzIHN0eWxlIGd1aWRlIHdhcyBkZXZlbG9wZWQgYnkgTW9ua2V5IEV4Y2hhbmdlIFRlYW1cclxuICogTUlUIExpY2VuY2VcclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21vbmtleS1idXR0b24nLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIFtuZ0NsYXNzXT1cIlxyXG4gICAgICAgICdtZWN4LWJ1dHRvbi0nICtcclxuICAgICAgICB0eXBlICtcclxuICAgICAgICAnIG1lY3gtYnV0dG9uLScgK1xyXG4gICAgICAgIHR5cGUgK1xyXG4gICAgICAgICdfXycgK1xyXG4gICAgICAgIGNvbG9yICtcclxuICAgICAgICAoaWNvbiA/ICcgd2l0aC1pY29uJyA6ICcgbm8taWNvbicpICtcclxuICAgICAgICAnICcgK1xyXG4gICAgICAgIHNpemVcclxuICAgICAgXCJcclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICA+XHJcbiAgICAgIDxtb25rZXktaWNvblxyXG4gICAgICAgIFtpY29uXT1cImljb25cIlxyXG4gICAgICAgIFtjb2xvcl09XCJcclxuICAgICAgICAgIGRpc2FibGVkXHJcbiAgICAgICAgICAgID8gJyM5OTk5OTknXHJcbiAgICAgICAgICAgIDogdHlwZSA9PT0gJ2ZpbHRlcidcclxuICAgICAgICAgICAgPyAnIzRiNGE1MydcclxuICAgICAgICAgICAgOiB0eXBlID09PSAnbmF2LWFjdGl2ZSdcclxuICAgICAgICAgICAgPyAndGhlbWUnXHJcbiAgICAgICAgICAgIDogJ3RoZW1lLTgwMCdcclxuICAgICAgICBcIlxyXG4gICAgICAgIFtjb250cmFzdF09XCJfdXNlQ29udHJhc3RcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgKm5nSWY9XCJpY29uUG9zaXRpb24gPT09ICdsZWZ0JyAmJiBpY29uXCJcclxuICAgICAgPjwvbW9ua2V5LWljb24+XHJcbiAgICAgIHt7IGxhYmVsIH19XHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgPG1vbmtleS1pY29uXHJcbiAgICAgICAgW2ljb25dPVwiaWNvblwiXHJcbiAgICAgICAgW2NvbG9yXT1cIlxyXG4gICAgICAgICAgZGlzYWJsZWRcclxuICAgICAgICAgICAgPyAnIzk5OTk5OSdcclxuICAgICAgICAgICAgOiB0eXBlID09PSAnZmlsdGVyJ1xyXG4gICAgICAgICAgICA/ICcjNGI0YTUzJ1xyXG4gICAgICAgICAgICA6IHR5cGUgPT09ICduYXYtYWN0aXZlJ1xyXG4gICAgICAgICAgICA/ICd0aGVtZSdcclxuICAgICAgICAgICAgOiAndGhlbWUtODAwJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAqbmdJZj1cImljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0JyAmJiBpY29uXCJcclxuICAgICAgPjwvbW9ua2V5LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb25rZXlCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGljb25Qb3NpdGlvbjogc3RyaW5nID0gJ2xlZnQnO1xyXG4gIEBJbnB1dCgpIHR5cGU6IHN0cmluZztcclxuICBASW5wdXQoKSBjb2xvcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICdtZCcgfCAnbGcnID0gJ2xnJztcclxuXHJcbiAgX3VzZUNvbnRyYXN0ID0gZmFsc2U7XHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnN0IHsgdHlwZSB9ID0gdGhpcztcclxuICAgIGlmICh0eXBlID09PSAncHJpbWFyeScpIHtcclxuICAgICAgdGhpcy5fdXNlQ29udHJhc3QgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxyXG4gIG9uQ2xpY2soZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -3,7 +3,7 @@
3
3
  * This style guide was developed by Monkey Exchange Team
4
4
  * MIT Licence
5
5
  **************************/
6
- import { Component, ViewEncapsulation, Input } from '@angular/core';
6
+ import { Component, ViewEncapsulation, Input, HostListener, } from '@angular/core';
7
7
  import { MonkeyStyleGuideSettingsService } from '../../core/services';
8
8
  import { Subject } from 'rxjs';
9
9
  import { takeUntil } from 'rxjs/operators';
@@ -13,6 +13,7 @@ export class MonkeyIconComponent {
13
13
  this.monkeyStyleGuideSettingsService = monkeyStyleGuideSettingsService;
14
14
  this.color = 'theme';
15
15
  this.contrast = false;
16
+ this.disabled = false;
16
17
  this._fillColor = '#000000';
17
18
  this._icon = '';
18
19
  this._id = `mecx-icon-${MonkeyUtils.getRandomString(10)}`;
@@ -56,6 +57,13 @@ export class MonkeyIconComponent {
56
57
  ngOnChanges() {
57
58
  this.handleIcon();
58
59
  }
60
+ onClick(event) {
61
+ if (this.disabled) {
62
+ event.stopPropagation();
63
+ event.preventDefault();
64
+ event.stopImmediatePropagation();
65
+ }
66
+ }
59
67
  }
60
68
  MonkeyIconComponent.decorators = [
61
69
  { type: Component, args: [{
@@ -464,6 +472,8 @@ MonkeyIconComponent.ctorParameters = () => [
464
472
  MonkeyIconComponent.propDecorators = {
465
473
  icon: [{ type: Input }],
466
474
  color: [{ type: Input }],
467
- contrast: [{ type: Input }]
475
+ contrast: [{ type: Input }],
476
+ disabled: [{ type: Input }],
477
+ onClick: [{ type: HostListener, args: ['click', ['$event'],] }]
468
478
  };
469
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUvc3JjL2xpYi9jb21wb25lbnRzL2ljb24vaWNvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NEJBSTRCO0FBQzVCLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQVUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQWlaL0MsTUFBTSxPQUFPLG1CQUFtQjtJQWlCOUIsWUFBb0IsK0JBQWdFO1FBQWhFLG9DQUErQixHQUEvQiwrQkFBK0IsQ0FBaUM7UUFkM0UsVUFBSyxHQUFXLE9BQU8sQ0FBQztRQUV4QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRTFCLGVBQVUsR0FBRyxTQUFTLENBQUM7UUFFdkIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUVYLFFBQUcsR0FBRyxhQUFhLFdBQVcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQU9uRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVPLFVBQVU7UUFDaEIsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLCtCQUErQixFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3hFLE1BQU0sV0FBVyxHQUFHLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksYUFBSixJQUFJLHVC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QUs7b0JBRUwsS0FBSzt1QkFFTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAqIENvcHlyaWdodCBNb25rZXkgRXhjaGFuZ2UuIEFsbCBSaWdodHMgUmVzZXJ2ZWRcclxuICogVGhpcyBzdHlsZSBndWlkZSB3YXMgZGV2ZWxvcGVkIGJ5IE1vbmtleSBFeGNoYW5nZSBUZWFtXHJcbiAqIE1JVCBMaWNlbmNlXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgT25Jbml0LCBJbnB1dCwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1vbmtleVN0eWxlR3VpZGVTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE1vbmtleVV0aWxzIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21vbmtleS1pY29uJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1vbmtleS1pY29uLWFycm93LWRvd25cclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2Fycm93LWRvd24nXCJcclxuICAgID48L21vbmtleS1pY29uLWFycm93LWRvd24+XHJcbiAgICA8bW9ua2V5LWljb24tYXJyb3ctbGVmdFxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnYXJyb3ctbGVmdCdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tYXJyb3ctbGVmdD5cclxuICAgIDxtb25rZXktaWNvbi1hcnJvdy1yaWdodFxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnYXJyb3ctcmlnaHQnXCJcclxuICAgID48L21vbmtleS1pY29uLWFycm93LXJpZ2h0PlxyXG4gICAgPG1vbmtleS1pY29uLWFycm93LXVwXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdhcnJvdy11cCdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tYXJyb3ctdXA+XHJcbiAgICA8bW9ua2V5LWljb24tYmFua1xyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnYmFuaydcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tYmFuaz5cclxuICAgIDxtb25rZXktaWNvbi1iZWxsXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdiZWxsJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1iZWxsPlxyXG4gICAgPG1vbmtleS1pY29uLWJvb2tcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2Jvb2snXCJcclxuICAgID48L21vbmtleS1pY29uLWJvb2s+XHJcbiAgICA8bW9ua2V5LWljb24tYm94XHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdib3gnXCJcclxuICAgID48L21vbmtleS1pY29uLWJveD5cclxuXHJcbiAgICA8bW9ua2V5LWljb24tY2FsZW5kYXJcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2NhbGVuZGFyJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1jYWxlbmRhcj5cclxuICAgIDxtb25rZXktaWNvbi1jYW1lcmFcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2NhbWVyYSdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tY2FtZXJhPlxyXG4gICAgPG1vbmtleS1pY29uLWNoYXRcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2NoYXQnXCJcclxuICAgID48L21vbmtleS1pY29uLWNoYXQ+XHJcbiAgICA8bW9ua2V5LWljb24tY2hlY2stY2lyY2xlLW91dFxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnY2hlY2stY2lyY2xlLW91dCdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tY2hlY2stY2lyY2xlLW91dD5cclxuICAgIDxtb25rZXktaWNvbi1jaGVjay1jaXJjbGVcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2NoZWNrLWNpcmNsZSdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tY2hlY2stY2lyY2xlPlxyXG4gICAgPG1vbmtleS1pY29uLWNoZWNrLWdyZXlcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2NoZWNrLWdyZXknXCJcclxuICAgID5cclxuICAgIDwvbW9ua2V5LWljb24tY2hlY2stZ3JleT5cclxuICAgIDxtb25rZXktaWNvbi1jaGVjay13aGl0ZVxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnY2hlY2std2hpdGUnXCJcclxuICAgID5cclxuICAgIDwvbW9ua2V5LWljb24tY2hlY2std2hpdGU+XHJcbiAgICA8bW9ua2V5LWljb24tY2hlY2tcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2NoZWNrJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1jaGVjaz5cclxuICAgIDxtb25rZXktaWNvbi1jbGlwYm9hcmRcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2NsaXBib2FyZCdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tY2xpcGJvYXJkPlxyXG4gICAgPG1vbmtleS1pY29uLWNsb2NrXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdjbG9jaydcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tY2xvY2s+XHJcbiAgICA8bW9ua2V5LWljb24tY2xvc2VcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2Nsb3NlJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1jbG9zZT5cclxuICAgIDxtb25rZXktaWNvbi1jbnBqXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdjbnBqJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1jbnBqPlxyXG4gICAgPG1vbmtleS1pY29uLWNvZGVwZW5cclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2NvZGVwZW4nXCJcclxuICAgID48L21vbmtleS1pY29uLWNvZGVwZW4+XHJcbiAgICA8bW9ua2V5LWljb24tY29tcGFueS1uYW1lXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdjb21wYW55LW5hbWUnXCJcclxuICAgID48L21vbmtleS1pY29uLWNvbXBhbnktbmFtZT5cclxuICAgIDxtb25rZXktaWNvbi1jb250cmFjdFxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnY29udHJhY3QnXCJcclxuICAgID48L21vbmtleS1pY29uLWNvbnRyYWN0PlxyXG4gICAgPG1vbmtleS1pY29uLWRlbGV0ZVxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnZGVsZXRlJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1kZWxldGU+XHJcbiAgICA8bW9ua2V5LWljb24tZG9jdW1lbnRcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2RvY3VtZW50J1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1kb2N1bWVudD5cclxuICAgIDxtb25rZXktaWNvbi1kb2xsYXItc2lnblxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnZG9sbGFyLXNpZ24nXCJcclxuICAgID48L21vbmtleS1pY29uLWRvbGxhci1zaWduPlxyXG4gICAgPG1vbmtleS1pY29uLWRvbWFpblxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnZG9tYWluJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1kb21haW4+XHJcbiAgICA8bW9ua2V5LWljb24tZG93bmxvYWRcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2Rvd25sb2FkJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1kb3dubG9hZD5cclxuICAgIDxtb25rZXktaWNvbi1lZGl0XHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdlZGl0J1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1lZGl0PlxyXG4gICAgPG1vbmtleS1pY29uLWVtYWlsXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdlbWFpbCdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tZW1haWw+XHJcbiAgICA8bW9ua2V5LWljb24tZW1wdHktZG9jXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdlbXB0eS1kb2MnXCJcclxuICAgID48L21vbmtleS1pY29uLWVtcHR5LWRvYz5cclxuICAgIDxtb25rZXktaWNvbi1lcnJvclxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnZXJyb3InXCJcclxuICAgID48L21vbmtleS1pY29uLWVycm9yPlxyXG4gICAgPG1vbmtleS1pY29uLWV5ZS1jbG9zZWRcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2V5ZS1jbG9zZWQnXCJcclxuICAgID48L21vbmtleS1pY29uLWV5ZS1jbG9zZWQ+XHJcbiAgICA8bW9ua2V5LWljb24tZXllLW9wZW5cclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2V5ZS1vcGVuJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1leWUtb3Blbj5cclxuICAgIDxtb25rZXktaWNvbi1maWx0ZXJcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2ZpbHRlcidcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tZmlsdGVyPlxyXG4gICAgPG1vbmtleS1pY29uLWdyaWRcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2dyaWQnXCJcclxuICAgID48L21vbmtleS1pY29uLWdyaWQ+XHJcbiAgICA8bW9ua2V5LWljb24taGVscFxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnaGVscCdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24taGVscD5cclxuICAgIDxtb25rZXktaWNvbi1oZXhhZ29uXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdoZXhhZ29uJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1oZXhhZ29uPlxyXG4gICAgPG1vbmtleS1pY29uLWhvbWVcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2hvbWUnXCJcclxuICAgID48L21vbmtleS1pY29uLWhvbWU+XHJcbiAgICA8bW9ua2V5LWljb24taW1hZ2VcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2ltYWdlJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1pbWFnZT5cclxuICAgIDxtb25rZXktaWNvbi1saXN0XHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdsaXN0J1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1saXN0PlxyXG4gICAgPG1vbmtleS1pY29uLWxvY2F0aW9uLXBpblxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnbG9jYXRpb24tcGluJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1sb2NhdGlvbi1waW4+XHJcbiAgICA8bW9ua2V5LWljb24tbG9naW5cclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2xvZ2luJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1sb2dpbj5cclxuICAgIDxtb25rZXktaWNvbi1sb2dvdXRcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2xvZ291dCdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tbG9nb3V0PlxyXG4gICAgPG1vbmtleS1pY29uLW1lbnVcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ21lbnUnXCJcclxuICAgID48L21vbmtleS1pY29uLW1lbnU+XHJcbiAgICA8bW9ua2V5LWljb24tbW9uZXktc2lnblxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnbW9uZXktc2lnbidcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tbW9uZXktc2lnbj5cclxuICAgIDxtb25rZXktaWNvbi1tb3JlXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdtb3JlJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1tb3JlPlxyXG4gICAgPG1vbmtleS1pY29uLW9mZmVyZWRcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ29mZmVyZWQnXCJcclxuICAgID48L21vbmtleS1pY29uLW9mZmVyZWQ+XHJcbiAgICA8bW9ua2V5LWljb24tcGFzc3dvcmRcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ3Bhc3N3b3JkJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1wYXNzd29yZD5cclxuICAgIDxtb25rZXktaWNvbi1wZW9wbGVcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ3Blb3BsZSdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tcGVvcGxlPlxyXG4gICAgPG1vbmtleS1pY29uLXBlcmNlbnRcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ3BlcmNlbnQnXCJcclxuICAgID48L21vbmtleS1pY29uLXBlcmNlbnQ+XHJcbiAgICA8bW9ua2V5LWljb24tcGVyc29uLWRvY3VtZW50XHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdwZXJzb24tZG9jdW1lbnQnXCJcclxuICAgID48L21vbmtleS1pY29uLXBlcnNvbi1kb2N1bWVudD5cclxuICAgIDxtb25rZXktaWNvbi1wZXJzb24tc2FkXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdwZXJzb24tc2FkJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1wZXJzb24tc2FkPlxyXG4gICAgPG1vbmtleS1pY29uLXBob25lXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdwaG9uZSdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tcGhvbmU+XHJcbiAgICA8bW9ua2V5LWljb24tcG9ya1xyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAncG9yaydcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tcG9yaz5cclxuICAgIDxtb25rZXktaWNvbi1yZWZyZXNoXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdyZWZyZXNoJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1yZWZyZXNoPlxyXG4gICAgPG1vbmtleS1pY29uLXJlcGVhdFxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAncmVwZWF0J1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1yZXBlYXQ+XHJcbiAgICA8bW9ua2V5LWljb24tc2VhcmNoXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdzZWFyY2gnXCJcclxuICAgID48L21vbmtleS1pY29uLXNlYXJjaD5cclxuICAgIDxtb25rZXktaWNvbi1zZWNvbmQtd2FybmluZ1xyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnc2Vjb25kLXdhcm5pbmcnXCJcclxuICAgID48L21vbmtleS1pY29uLXNlY29uZC13YXJuaW5nPlxyXG4gICAgPG1vbmtleS1pY29uLXNldHRpbmdzXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdzZXR0aW5ncydcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tc2V0dGluZ3M+XHJcbiAgICA8bW9ua2V5LWljb24tdHJhc2hcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ3RyYXNoJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi10cmFzaD5cclxuICAgIDxtb25rZXktaWNvbi11cGxvYWRcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ3VwbG9hZCdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tdXBsb2FkPlxyXG4gICAgPG1vbmtleS1pY29uLXVzZXJcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ3VzZXInXCJcclxuICAgID48L21vbmtleS1pY29uLXVzZXI+XHJcbiAgICA8bW9ua2V5LWljb24td2FsbGV0XHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICd3YWxsZXQnXCJcclxuICAgID48L21vbmtleS1pY29uLXdhbGxldD5cclxuICAgIDxtb25rZXktaWNvbi13YXJuaW5nXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICd3YXJuaW5nJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi13YXJuaW5nPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vbmtleUljb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBjb2xvcjogc3RyaW5nID0gJ3RoZW1lJztcclxuXHJcbiAgQElucHV0KCkgY29udHJhc3QgPSBmYWxzZTtcclxuXHJcbiAgX2ZpbGxDb2xvciA9ICcjMDAwMDAwJztcclxuXHJcbiAgX2ljb24gPSAnJztcclxuXHJcbiAgX2lkID0gYG1lY3gtaWNvbi0ke01vbmtleVV0aWxzLmdldFJhbmRvbVN0cmluZygxMCl9YDtcclxuXHJcbiAgX3NpemU6IHN0cmluZztcclxuXHJcbiAgcHJpdmF0ZSB1bnN1YnNjcmliZUFsbDogU3ViamVjdDxhbnk+O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vbmtleVN0eWxlR3VpZGVTZXR0aW5nc1NlcnZpY2U6IE1vbmtleVN0eWxlR3VpZGVTZXR0aW5nc1NlcnZpY2UpIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmVBbGwgPSBuZXcgU3ViamVjdCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVJY29uKCkge1xyXG4gICAgY29uc3QgeyBpY29uLCBjb2xvciwgY29udHJhc3QsIG1vbmtleVN0eWxlR3VpZGVTZXR0aW5nc1NlcnZpY2UgfSA9IHRoaXM7XHJcbiAgICBjb25zdCBoYW5kbGVkSWNvbiA9IGljb24/LnN1YnN0cigwLCBpY29uPy5sYXN0SW5kZXhPZignLScpKTtcclxuICAgIHRoaXMuX2ljb24gPSBoYW5kbGVkSWNvbjtcclxuICAgIHRoaXMuX3NpemUgPSBpY29uPy5zdWJzdHIoaWNvbj8ubGFzdEluZGV4T2YoJy0nKSArIDEsIGljb24/Lmxlbmd0aCk7XHJcblxyXG4gICAgbW9ua2V5U3R5bGVHdWlkZVNldHRpbmdzU2VydmljZVxyXG4gICAgICAuc2V0dGluZ3MoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZUFsbCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHNldHRpbmdzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoc2V0dGluZ3MgJiYgSlNPTi5zdHJpbmdpZnkoc2V0dGluZ3MpICE9PSAne30nKSB7XHJcbiAgICAgICAgICBjb25zdCB7IGNvbG9ycyB9ID0gc2V0dGluZ3M7XHJcblxyXG4gICAgICAgICAgbGV0IGhhbmRsZWRDb2xvciA9ICcnO1xyXG4gICAgICAgICAgaWYgKChjb2xvciB8fCAnJykuc2VhcmNoKCcjJykgPCAwKSB7XHJcbiAgICAgICAgICAgIGxldCBoYW5kbGVkTWFpbkNvbG9yID0gJycsXHJcbiAgICAgICAgICAgICAgaGFuZGxlZFNlY29uZENvbG9yID0gJyc7XHJcbiAgICAgICAgICAgIGhhbmRsZWRNYWluQ29sb3IgPSBjb2xvci5zcGxpdCgnLScpWzBdO1xyXG4gICAgICAgICAgICBpZiAoIWhhbmRsZWRNYWluQ29sb3IpIGhhbmRsZWRNYWluQ29sb3IgPSAndGhlbWUnO1xyXG4gICAgICAgICAgICBoYW5kbGVkU2Vjb25kQ29sb3IgPSBjb2xvci5zcGxpdCgnLScpWzFdO1xyXG4gICAgICAgICAgICBpZiAoIWhhbmRsZWRTZWNvbmRDb2xvcikgaGFuZGxlZFNlY29uZENvbG9yID0gJ21haW4nO1xyXG5cclxuICAgICAgICAgICAgaGFuZGxlZENvbG9yID0gY29sb3JzW2hhbmRsZWRNYWluQ29sb3JdW2hhbmRsZWRTZWNvbmRDb2xvcl07XHJcbiAgICAgICAgICAgIGlmIChjb250cmFzdCkge1xyXG4gICAgICAgICAgICAgIGhhbmRsZWRDb2xvciA9IGNvbG9yc1toYW5kbGVkTWFpbkNvbG9yXVsnY29udHJhc3QnXVtoYW5kbGVkU2Vjb25kQ29sb3JdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBoYW5kbGVkQ29sb3IgPSBjb2xvcjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB0aGlzLl9maWxsQ29sb3IgPSBoYW5kbGVkQ29sb3I7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5oYW5kbGVJY29uKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIHRoaXMuaGFuZGxlSWNvbigpO1xyXG4gIH1cclxufVxyXG4iXX0=
479
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUvc3JjL2xpYi9jb21wb25lbnRzL2ljb24vaWNvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NEJBSTRCO0FBQzVCLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBRWpCLEtBQUssRUFFTCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBaVovQyxNQUFNLE9BQU8sbUJBQW1CO0lBbUI5QixZQUFvQiwrQkFBZ0U7UUFBaEUsb0NBQStCLEdBQS9CLCtCQUErQixDQUFpQztRQWhCM0UsVUFBSyxHQUFXLE9BQU8sQ0FBQztRQUV4QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFbkMsZUFBVSxHQUFHLFNBQVMsQ0FBQztRQUV2QixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVgsUUFBRyxHQUFHLGFBQWEsV0FBVyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBT25ELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU8sVUFBVTtRQUNoQixNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsK0JBQStCLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDeEUsTUFBTSxXQUFXLEdBQUcsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFF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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBZVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBblpRLCtCQUErQjs7O21CQXFackMsS0FBSztvQkFFTCxLQUFLO3VCQUVMLEtBQUs7dUJBRUwsS0FBSztzQkEyREwsWUFBWSxTQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBDb3B5cmlnaHQgTW9ua2V5IEV4Y2hhbmdlLiBBbGwgUmlnaHRzIFJlc2VydmVkXHJcbiAqIFRoaXMgc3R5bGUgZ3VpZGUgd2FzIGRldmVsb3BlZCBieSBNb25rZXkgRXhjaGFuZ2UgVGVhbVxyXG4gKiBNSVQgTGljZW5jZVxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIE9uSW5pdCxcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNb25rZXlTdHlsZUd1aWRlU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBNb25rZXlVdGlscyB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtb25rZXktaWNvbicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxtb25rZXktaWNvbi1hcnJvdy1kb3duXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdhcnJvdy1kb3duJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1hcnJvdy1kb3duPlxyXG4gICAgPG1vbmtleS1pY29uLWFycm93LWxlZnRcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2Fycm93LWxlZnQnXCJcclxuICAgID48L21vbmtleS1pY29uLWFycm93LWxlZnQ+XHJcbiAgICA8bW9ua2V5LWljb24tYXJyb3ctcmlnaHRcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2Fycm93LXJpZ2h0J1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1hcnJvdy1yaWdodD5cclxuICAgIDxtb25rZXktaWNvbi1hcnJvdy11cFxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnYXJyb3ctdXAnXCJcclxuICAgID48L21vbmtleS1pY29uLWFycm93LXVwPlxyXG4gICAgPG1vbmtleS1pY29uLWJhbmtcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2JhbmsnXCJcclxuICAgID48L21vbmtleS1pY29uLWJhbms+XHJcbiAgICA8bW9ua2V5LWljb24tYmVsbFxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnYmVsbCdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tYmVsbD5cclxuICAgIDxtb25rZXktaWNvbi1ib29rXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdib29rJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1ib29rPlxyXG4gICAgPG1vbmtleS1pY29uLWJveFxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnYm94J1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1ib3g+XHJcblxyXG4gICAgPG1vbmtleS1pY29uLWNhbGVuZGFyXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdjYWxlbmRhcidcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tY2FsZW5kYXI+XHJcbiAgICA8bW9ua2V5LWljb24tY2FtZXJhXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdjYW1lcmEnXCJcclxuICAgID48L21vbmtleS1pY29uLWNhbWVyYT5cclxuICAgIDxtb25rZXktaWNvbi1jaGF0XHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdjaGF0J1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1jaGF0PlxyXG4gICAgPG1vbmtleS1pY29uLWNoZWNrLWNpcmNsZS1vdXRcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2NoZWNrLWNpcmNsZS1vdXQnXCJcclxuICAgID48L21vbmtleS1pY29uLWNoZWNrLWNpcmNsZS1vdXQ+XHJcbiAgICA8bW9ua2V5LWljb24tY2hlY2stY2lyY2xlXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdjaGVjay1jaXJjbGUnXCJcclxuICAgID48L21vbmtleS1pY29uLWNoZWNrLWNpcmNsZT5cclxuICAgIDxtb25rZXktaWNvbi1jaGVjay1ncmV5XHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdjaGVjay1ncmV5J1wiXHJcbiAgICA+XHJcbiAgICA8L21vbmtleS1pY29uLWNoZWNrLWdyZXk+XHJcbiAgICA8bW9ua2V5LWljb24tY2hlY2std2hpdGVcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2NoZWNrLXdoaXRlJ1wiXHJcbiAgICA+XHJcbiAgICA8L21vbmtleS1pY29uLWNoZWNrLXdoaXRlPlxyXG4gICAgPG1vbmtleS1pY29uLWNoZWNrXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdjaGVjaydcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tY2hlY2s+XHJcbiAgICA8bW9ua2V5LWljb24tY2xpcGJvYXJkXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdjbGlwYm9hcmQnXCJcclxuICAgID48L21vbmtleS1pY29uLWNsaXBib2FyZD5cclxuICAgIDxtb25rZXktaWNvbi1jbG9ja1xyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnY2xvY2snXCJcclxuICAgID48L21vbmtleS1pY29uLWNsb2NrPlxyXG4gICAgPG1vbmtleS1pY29uLWNsb3NlXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdjbG9zZSdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tY2xvc2U+XHJcbiAgICA8bW9ua2V5LWljb24tY25walxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnY25waidcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tY25waj5cclxuICAgIDxtb25rZXktaWNvbi1jb2RlcGVuXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdjb2RlcGVuJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1jb2RlcGVuPlxyXG4gICAgPG1vbmtleS1pY29uLWNvbXBhbnktbmFtZVxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnY29tcGFueS1uYW1lJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1jb21wYW55LW5hbWU+XHJcbiAgICA8bW9ua2V5LWljb24tY29udHJhY3RcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2NvbnRyYWN0J1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1jb250cmFjdD5cclxuICAgIDxtb25rZXktaWNvbi1kZWxldGVcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2RlbGV0ZSdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tZGVsZXRlPlxyXG4gICAgPG1vbmtleS1pY29uLWRvY3VtZW50XHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdkb2N1bWVudCdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tZG9jdW1lbnQ+XHJcbiAgICA8bW9ua2V5LWljb24tZG9sbGFyLXNpZ25cclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2RvbGxhci1zaWduJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1kb2xsYXItc2lnbj5cclxuICAgIDxtb25rZXktaWNvbi1kb21haW5cclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2RvbWFpbidcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tZG9tYWluPlxyXG4gICAgPG1vbmtleS1pY29uLWRvd25sb2FkXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdkb3dubG9hZCdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tZG93bmxvYWQ+XHJcbiAgICA8bW9ua2V5LWljb24tZWRpdFxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnZWRpdCdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tZWRpdD5cclxuICAgIDxtb25rZXktaWNvbi1lbWFpbFxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnZW1haWwnXCJcclxuICAgID48L21vbmtleS1pY29uLWVtYWlsPlxyXG4gICAgPG1vbmtleS1pY29uLWVtcHR5LWRvY1xyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnZW1wdHktZG9jJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1lbXB0eS1kb2M+XHJcbiAgICA8bW9ua2V5LWljb24tZXJyb3JcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2Vycm9yJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1lcnJvcj5cclxuICAgIDxtb25rZXktaWNvbi1leWUtY2xvc2VkXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdleWUtY2xvc2VkJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1leWUtY2xvc2VkPlxyXG4gICAgPG1vbmtleS1pY29uLWV5ZS1vcGVuXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdleWUtb3BlbidcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tZXllLW9wZW4+XHJcbiAgICA8bW9ua2V5LWljb24tZmlsdGVyXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdmaWx0ZXInXCJcclxuICAgID48L21vbmtleS1pY29uLWZpbHRlcj5cclxuICAgIDxtb25rZXktaWNvbi1ncmlkXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdncmlkJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1ncmlkPlxyXG4gICAgPG1vbmtleS1pY29uLWhlbHBcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2hlbHAnXCJcclxuICAgID48L21vbmtleS1pY29uLWhlbHA+XHJcbiAgICA8bW9ua2V5LWljb24taGV4YWdvblxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnaGV4YWdvbidcIlxyXG4gICAgPjwvbW9ua2V5LWljb24taGV4YWdvbj5cclxuICAgIDxtb25rZXktaWNvbi1ob21lXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdob21lJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1ob21lPlxyXG4gICAgPG1vbmtleS1pY29uLWltYWdlXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdpbWFnZSdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24taW1hZ2U+XHJcbiAgICA8bW9ua2V5LWljb24tbGlzdFxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnbGlzdCdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tbGlzdD5cclxuICAgIDxtb25rZXktaWNvbi1sb2NhdGlvbi1waW5cclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ2xvY2F0aW9uLXBpbidcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tbG9jYXRpb24tcGluPlxyXG4gICAgPG1vbmtleS1pY29uLWxvZ2luXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdsb2dpbidcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tbG9naW4+XHJcbiAgICA8bW9ua2V5LWljb24tbG9nb3V0XHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdsb2dvdXQnXCJcclxuICAgID48L21vbmtleS1pY29uLWxvZ291dD5cclxuICAgIDxtb25rZXktaWNvbi1tZW51XHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdtZW51J1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1tZW51PlxyXG4gICAgPG1vbmtleS1pY29uLW1vbmV5LXNpZ25cclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ21vbmV5LXNpZ24nXCJcclxuICAgID48L21vbmtleS1pY29uLW1vbmV5LXNpZ24+XHJcbiAgICA8bW9ua2V5LWljb24tbW9yZVxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnbW9yZSdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tbW9yZT5cclxuICAgIDxtb25rZXktaWNvbi1vZmZlcmVkXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdvZmZlcmVkJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1vZmZlcmVkPlxyXG4gICAgPG1vbmtleS1pY29uLXBhc3N3b3JkXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdwYXNzd29yZCdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tcGFzc3dvcmQ+XHJcbiAgICA8bW9ua2V5LWljb24tcGVvcGxlXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdwZW9wbGUnXCJcclxuICAgID48L21vbmtleS1pY29uLXBlb3BsZT5cclxuICAgIDxtb25rZXktaWNvbi1wZXJjZW50XHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICdwZXJjZW50J1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1wZXJjZW50PlxyXG4gICAgPG1vbmtleS1pY29uLXBlcnNvbi1kb2N1bWVudFxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAncGVyc29uLWRvY3VtZW50J1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1wZXJzb24tZG9jdW1lbnQ+XHJcbiAgICA8bW9ua2V5LWljb24tcGVyc29uLXNhZFxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAncGVyc29uLXNhZCdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tcGVyc29uLXNhZD5cclxuICAgIDxtb25rZXktaWNvbi1waG9uZVxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAncGhvbmUnXCJcclxuICAgID48L21vbmtleS1pY29uLXBob25lPlxyXG4gICAgPG1vbmtleS1pY29uLXBvcmtcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ3BvcmsnXCJcclxuICAgID48L21vbmtleS1pY29uLXBvcms+XHJcbiAgICA8bW9ua2V5LWljb24tcmVmcmVzaFxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAncmVmcmVzaCdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tcmVmcmVzaD5cclxuICAgIDxtb25rZXktaWNvbi1yZXBlYXRcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ3JlcGVhdCdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tcmVwZWF0PlxyXG4gICAgPG1vbmtleS1pY29uLXNlYXJjaFxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnc2VhcmNoJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1zZWFyY2g+XHJcbiAgICA8bW9ua2V5LWljb24tc2Vjb25kLXdhcm5pbmdcclxuICAgICAgW2ZpbGxDb2xvcl09XCJfZmlsbENvbG9yXCJcclxuICAgICAgW2lkXT1cIl9pZFwiXHJcbiAgICAgIFtzaXplXT1cIl9zaXplXCJcclxuICAgICAgKm5nSWY9XCJfaWNvbiA9PT0gJ3NlY29uZC13YXJuaW5nJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi1zZWNvbmQtd2FybmluZz5cclxuICAgIDxtb25rZXktaWNvbi1zZXR0aW5nc1xyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnc2V0dGluZ3MnXCJcclxuICAgID48L21vbmtleS1pY29uLXNldHRpbmdzPlxyXG4gICAgPG1vbmtleS1pY29uLXRyYXNoXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICd0cmFzaCdcIlxyXG4gICAgPjwvbW9ua2V5LWljb24tdHJhc2g+XHJcbiAgICA8bW9ua2V5LWljb24tdXBsb2FkXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICd1cGxvYWQnXCJcclxuICAgID48L21vbmtleS1pY29uLXVwbG9hZD5cclxuICAgIDxtb25rZXktaWNvbi11c2VyXHJcbiAgICAgIFtmaWxsQ29sb3JdPVwiX2ZpbGxDb2xvclwiXHJcbiAgICAgIFtpZF09XCJfaWRcIlxyXG4gICAgICBbc2l6ZV09XCJfc2l6ZVwiXHJcbiAgICAgICpuZ0lmPVwiX2ljb24gPT09ICd1c2VyJ1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi11c2VyPlxyXG4gICAgPG1vbmtleS1pY29uLXdhbGxldFxyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnd2FsbGV0J1wiXHJcbiAgICA+PC9tb25rZXktaWNvbi13YWxsZXQ+XHJcbiAgICA8bW9ua2V5LWljb24td2FybmluZ1xyXG4gICAgICBbZmlsbENvbG9yXT1cIl9maWxsQ29sb3JcIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgICAgW3NpemVdPVwiX3NpemVcIlxyXG4gICAgICAqbmdJZj1cIl9pY29uID09PSAnd2FybmluZydcIlxyXG4gICAgPjwvbW9ua2V5LWljb24td2FybmluZz5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb25rZXlJY29uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIGljb246IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgY29sb3I6IHN0cmluZyA9ICd0aGVtZSc7XHJcblxyXG4gIEBJbnB1dCgpIGNvbnRyYXN0ID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIF9maWxsQ29sb3IgPSAnIzAwMDAwMCc7XHJcblxyXG4gIF9pY29uID0gJyc7XHJcblxyXG4gIF9pZCA9IGBtZWN4LWljb24tJHtNb25rZXlVdGlscy5nZXRSYW5kb21TdHJpbmcoMTApfWA7XHJcblxyXG4gIF9zaXplOiBzdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmVBbGw6IFN1YmplY3Q8YW55PjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtb25rZXlTdHlsZUd1aWRlU2V0dGluZ3NTZXJ2aWNlOiBNb25rZXlTdHlsZUd1aWRlU2V0dGluZ3NTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlQWxsID0gbmV3IFN1YmplY3QoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlSWNvbigpIHtcclxuICAgIGNvbnN0IHsgaWNvbiwgY29sb3IsIGNvbnRyYXN0LCBtb25rZXlTdHlsZUd1aWRlU2V0dGluZ3NTZXJ2aWNlIH0gPSB0aGlzO1xyXG4gICAgY29uc3QgaGFuZGxlZEljb24gPSBpY29uPy5zdWJzdHIoMCwgaWNvbj8ubGFzdEluZGV4T2YoJy0nKSk7XHJcbiAgICB0aGlzLl9pY29uID0gaGFuZGxlZEljb247XHJcbiAgICB0aGlzLl9zaXplID0gaWNvbj8uc3Vic3RyKGljb24/Lmxhc3RJbmRleE9mKCctJykgKyAxLCBpY29uPy5sZW5ndGgpO1xyXG5cclxuICAgIG1vbmtleVN0eWxlR3VpZGVTZXR0aW5nc1NlcnZpY2VcclxuICAgICAgLnNldHRpbmdzKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmVBbGwpKVxyXG4gICAgICAuc3Vic2NyaWJlKChzZXR0aW5nczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHNldHRpbmdzICYmIEpTT04uc3RyaW5naWZ5KHNldHRpbmdzKSAhPT0gJ3t9Jykge1xyXG4gICAgICAgICAgY29uc3QgeyBjb2xvcnMgfSA9IHNldHRpbmdzO1xyXG5cclxuICAgICAgICAgIGxldCBoYW5kbGVkQ29sb3IgPSAnJztcclxuICAgICAgICAgIGlmICgoY29sb3IgfHwgJycpLnNlYXJjaCgnIycpIDwgMCkge1xyXG4gICAgICAgICAgICBsZXQgaGFuZGxlZE1haW5Db2xvciA9ICcnLFxyXG4gICAgICAgICAgICAgIGhhbmRsZWRTZWNvbmRDb2xvciA9ICcnO1xyXG4gICAgICAgICAgICBoYW5kbGVkTWFpbkNvbG9yID0gY29sb3Iuc3BsaXQoJy0nKVswXTtcclxuICAgICAgICAgICAgaWYgKCFoYW5kbGVkTWFpbkNvbG9yKSBoYW5kbGVkTWFpbkNvbG9yID0gJ3RoZW1lJztcclxuICAgICAgICAgICAgaGFuZGxlZFNlY29uZENvbG9yID0gY29sb3Iuc3BsaXQoJy0nKVsxXTtcclxuICAgICAgICAgICAgaWYgKCFoYW5kbGVkU2Vjb25kQ29sb3IpIGhhbmRsZWRTZWNvbmRDb2xvciA9ICdtYWluJztcclxuXHJcbiAgICAgICAgICAgIGhhbmRsZWRDb2xvciA9IGNvbG9yc1toYW5kbGVkTWFpbkNvbG9yXVtoYW5kbGVkU2Vjb25kQ29sb3JdO1xyXG4gICAgICAgICAgICBpZiAoY29udHJhc3QpIHtcclxuICAgICAgICAgICAgICBoYW5kbGVkQ29sb3IgPSBjb2xvcnNbaGFuZGxlZE1haW5Db2xvcl1bJ2NvbnRyYXN0J11baGFuZGxlZFNlY29uZENvbG9yXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaGFuZGxlZENvbG9yID0gY29sb3I7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGhpcy5fZmlsbENvbG9yID0gaGFuZGxlZENvbG9yO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaGFuZGxlSWNvbigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLmhhbmRsZUljb24oKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkNsaWNrKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19