@ukho/admiralty-angular 2.0.0 → 3.0.0

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 (40) hide show
  1. package/bundles/ukho-admiralty-angular.umd.js +2473 -0
  2. package/bundles/ukho-admiralty-angular.umd.js.map +1 -0
  3. package/esm2015/lib/app_initialise.js +9 -0
  4. package/esm2015/lib/design-system.module.js +60 -0
  5. package/{esm2022/lib/stencil-generated/angular-component-lib/utils.mjs → esm2015/lib/stencil-generated/angular-component-lib/utils.js} +1 -1
  6. package/esm2015/lib/stencil-generated/boolean-value-accessor.js +40 -0
  7. package/esm2015/lib/stencil-generated/components.js +1357 -0
  8. package/esm2015/lib/stencil-generated/index.js +52 -0
  9. package/esm2015/lib/stencil-generated/number-value-accessor.js +42 -0
  10. package/esm2015/lib/stencil-generated/radio-value-accessor.js +37 -0
  11. package/esm2015/lib/stencil-generated/select-value-accessor.js +37 -0
  12. package/esm2015/lib/stencil-generated/text-value-accessor.js +37 -0
  13. package/esm2015/lib/stencil-generated/value-accessor.js +42 -0
  14. package/fesm2015/ukho-admiralty-angular.js +1699 -0
  15. package/fesm2015/ukho-admiralty-angular.js.map +1 -0
  16. package/lib/app_initialise.d.ts +1 -0
  17. package/lib/design-system.module.d.ts +1 -1
  18. package/lib/stencil-generated/boolean-value-accessor.d.ts +1 -1
  19. package/lib/stencil-generated/components.d.ts +49 -58
  20. package/lib/stencil-generated/index.d.ts +1 -1
  21. package/lib/stencil-generated/number-value-accessor.d.ts +1 -1
  22. package/lib/stencil-generated/radio-value-accessor.d.ts +1 -1
  23. package/lib/stencil-generated/select-value-accessor.d.ts +1 -1
  24. package/lib/stencil-generated/text-value-accessor.d.ts +1 -1
  25. package/lib/stencil-generated/value-accessor.d.ts +1 -1
  26. package/package.json +15 -19
  27. package/ukho-admiralty-angular.d.ts +5 -0
  28. package/esm2022/lib/design-system.module.mjs +0 -59
  29. package/esm2022/lib/stencil-generated/boolean-value-accessor.mjs +0 -38
  30. package/esm2022/lib/stencil-generated/components.mjs +0 -1335
  31. package/esm2022/lib/stencil-generated/index.mjs +0 -53
  32. package/esm2022/lib/stencil-generated/number-value-accessor.mjs +0 -40
  33. package/esm2022/lib/stencil-generated/radio-value-accessor.mjs +0 -35
  34. package/esm2022/lib/stencil-generated/select-value-accessor.mjs +0 -35
  35. package/esm2022/lib/stencil-generated/text-value-accessor.mjs +0 -35
  36. package/esm2022/lib/stencil-generated/value-accessor.mjs +0 -42
  37. package/fesm2022/ukho-admiralty-angular.mjs +0 -1659
  38. package/fesm2022/ukho-admiralty-angular.mjs.map +0 -1
  39. /package/{esm2022/index.mjs → esm2015/index.js} +0 -0
  40. /package/{esm2022/ukho-admiralty-angular.mjs → esm2015/ukho-admiralty-angular.js} +0 -0
@@ -0,0 +1,1357 @@
1
+ import { __decorate } from "tslib";
2
+ /* tslint:disable */
3
+ /* auto-generated angular directive proxies */
4
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
5
+ import { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';
6
+ import * as i0 from "@angular/core";
7
+ const _c0 = ["*"];
8
+ let AdmiraltyAutocomplete = class AdmiraltyAutocomplete {
9
+ constructor(c, r, z) {
10
+ this.z = z;
11
+ c.detach();
12
+ this.el = r.nativeElement;
13
+ proxyOutputs(this, this.el, ['admiraltyChange']);
14
+ }
15
+ };
16
+ /** @nocollapse */ AdmiraltyAutocomplete.ɵfac = function AdmiraltyAutocomplete_Factory(t) { return new (t || AdmiraltyAutocomplete)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
17
+ /** @nocollapse */ AdmiraltyAutocomplete.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyAutocomplete, selectors: [["admiralty-autocomplete"]], inputs: { assistiveHint: "assistiveHint", autoselect: "autoselect", confirmOnBlur: "confirmOnBlur", cssNamespace: "cssNamespace", disabled: "disabled", displayMenu: "displayMenu", hint: "hint", inputClasses: "inputClasses", invalid: "invalid", invalidMessage: "invalidMessage", label: "label", menuAttributes: "menuAttributes", menuClasses: "menuClasses", minLength: "minLength", name: "name", placeholder: "placeholder", required: "required", showAllValues: "showAllValues", showNoOptionsFound: "showNoOptionsFound", value: "value" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyAutocomplete_Template(rf, ctx) { if (rf & 1) {
18
+ i0.ɵɵprojectionDef();
19
+ i0.ɵɵprojection(0);
20
+ } }, encapsulation: 2, changeDetection: 0 });
21
+ AdmiraltyAutocomplete = __decorate([
22
+ ProxyCmp({
23
+ inputs: ['assistiveHint', 'autoselect', 'confirmOnBlur', 'cssNamespace', 'disabled', 'displayMenu', 'hint', 'inputClasses', 'invalid', 'invalidMessage', 'label', 'menuAttributes', 'menuClasses', 'minLength', 'name', 'placeholder', 'required', 'showAllValues', 'showNoOptionsFound', 'value']
24
+ })
25
+ ], AdmiraltyAutocomplete);
26
+ export { AdmiraltyAutocomplete };
27
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyAutocomplete, [{
28
+ type: Component,
29
+ args: [{
30
+ selector: 'admiralty-autocomplete',
31
+ changeDetection: ChangeDetectionStrategy.OnPush,
32
+ template: '<ng-content></ng-content>',
33
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
34
+ inputs: ['assistiveHint', 'autoselect', 'confirmOnBlur', 'cssNamespace', 'disabled', 'displayMenu', 'hint', 'inputClasses', 'invalid', 'invalidMessage', 'label', 'menuAttributes', 'menuClasses', 'minLength', 'name', 'placeholder', 'required', 'showAllValues', 'showNoOptionsFound', 'value'],
35
+ }]
36
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
37
+ let AdmiraltyAutocompleteOption = class AdmiraltyAutocompleteOption {
38
+ constructor(c, r, z) {
39
+ this.z = z;
40
+ c.detach();
41
+ this.el = r.nativeElement;
42
+ }
43
+ };
44
+ /** @nocollapse */ AdmiraltyAutocompleteOption.ɵfac = function AdmiraltyAutocompleteOption_Factory(t) { return new (t || AdmiraltyAutocompleteOption)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
45
+ /** @nocollapse */ AdmiraltyAutocompleteOption.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyAutocompleteOption, selectors: [["admiralty-autocomplete-option"]], inputs: { value: "value" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyAutocompleteOption_Template(rf, ctx) { if (rf & 1) {
46
+ i0.ɵɵprojectionDef();
47
+ i0.ɵɵprojection(0);
48
+ } }, encapsulation: 2, changeDetection: 0 });
49
+ AdmiraltyAutocompleteOption = __decorate([
50
+ ProxyCmp({
51
+ inputs: ['value']
52
+ })
53
+ ], AdmiraltyAutocompleteOption);
54
+ export { AdmiraltyAutocompleteOption };
55
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyAutocompleteOption, [{
56
+ type: Component,
57
+ args: [{
58
+ selector: 'admiralty-autocomplete-option',
59
+ changeDetection: ChangeDetectionStrategy.OnPush,
60
+ template: '<ng-content></ng-content>',
61
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
62
+ inputs: ['value'],
63
+ }]
64
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
65
+ let AdmiraltyBreadcrumb = class AdmiraltyBreadcrumb {
66
+ constructor(c, r, z) {
67
+ this.z = z;
68
+ c.detach();
69
+ this.el = r.nativeElement;
70
+ }
71
+ };
72
+ /** @nocollapse */ AdmiraltyBreadcrumb.ɵfac = function AdmiraltyBreadcrumb_Factory(t) { return new (t || AdmiraltyBreadcrumb)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
73
+ /** @nocollapse */ AdmiraltyBreadcrumb.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyBreadcrumb, selectors: [["admiralty-breadcrumb"]], inputs: { active: "active", href: "href" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyBreadcrumb_Template(rf, ctx) { if (rf & 1) {
74
+ i0.ɵɵprojectionDef();
75
+ i0.ɵɵprojection(0);
76
+ } }, encapsulation: 2, changeDetection: 0 });
77
+ AdmiraltyBreadcrumb = __decorate([
78
+ ProxyCmp({
79
+ inputs: ['active', 'href']
80
+ })
81
+ ], AdmiraltyBreadcrumb);
82
+ export { AdmiraltyBreadcrumb };
83
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyBreadcrumb, [{
84
+ type: Component,
85
+ args: [{
86
+ selector: 'admiralty-breadcrumb',
87
+ changeDetection: ChangeDetectionStrategy.OnPush,
88
+ template: '<ng-content></ng-content>',
89
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
90
+ inputs: ['active', 'href'],
91
+ }]
92
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
93
+ let AdmiraltyBreadcrumbs = class AdmiraltyBreadcrumbs {
94
+ constructor(c, r, z) {
95
+ this.z = z;
96
+ c.detach();
97
+ this.el = r.nativeElement;
98
+ }
99
+ };
100
+ /** @nocollapse */ AdmiraltyBreadcrumbs.ɵfac = function AdmiraltyBreadcrumbs_Factory(t) { return new (t || AdmiraltyBreadcrumbs)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
101
+ /** @nocollapse */ AdmiraltyBreadcrumbs.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyBreadcrumbs, selectors: [["admiralty-breadcrumbs"]], ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyBreadcrumbs_Template(rf, ctx) { if (rf & 1) {
102
+ i0.ɵɵprojectionDef();
103
+ i0.ɵɵprojection(0);
104
+ } }, encapsulation: 2, changeDetection: 0 });
105
+ AdmiraltyBreadcrumbs = __decorate([
106
+ ProxyCmp({})
107
+ ], AdmiraltyBreadcrumbs);
108
+ export { AdmiraltyBreadcrumbs };
109
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyBreadcrumbs, [{
110
+ type: Component,
111
+ args: [{
112
+ selector: 'admiralty-breadcrumbs',
113
+ changeDetection: ChangeDetectionStrategy.OnPush,
114
+ template: '<ng-content></ng-content>',
115
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
116
+ inputs: [],
117
+ }]
118
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
119
+ let AdmiraltyButton = class AdmiraltyButton {
120
+ constructor(c, r, z) {
121
+ this.z = z;
122
+ c.detach();
123
+ this.el = r.nativeElement;
124
+ }
125
+ };
126
+ /** @nocollapse */ AdmiraltyButton.ɵfac = function AdmiraltyButton_Factory(t) { return new (t || AdmiraltyButton)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
127
+ /** @nocollapse */ AdmiraltyButton.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyButton, selectors: [["admiralty-button"]], inputs: { disabled: "disabled", form: "form", icon: "icon", name: "name", type: "type", value: "value", variant: "variant" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyButton_Template(rf, ctx) { if (rf & 1) {
128
+ i0.ɵɵprojectionDef();
129
+ i0.ɵɵprojection(0);
130
+ } }, encapsulation: 2, changeDetection: 0 });
131
+ AdmiraltyButton = __decorate([
132
+ ProxyCmp({
133
+ inputs: ['disabled', 'form', 'icon', 'name', 'type', 'value', 'variant']
134
+ })
135
+ ], AdmiraltyButton);
136
+ export { AdmiraltyButton };
137
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyButton, [{
138
+ type: Component,
139
+ args: [{
140
+ selector: 'admiralty-button',
141
+ changeDetection: ChangeDetectionStrategy.OnPush,
142
+ template: '<ng-content></ng-content>',
143
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
144
+ inputs: ['disabled', 'form', 'icon', 'name', 'type', 'value', 'variant'],
145
+ }]
146
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
147
+ let AdmiraltyCard = class AdmiraltyCard {
148
+ constructor(c, r, z) {
149
+ this.z = z;
150
+ c.detach();
151
+ this.el = r.nativeElement;
152
+ }
153
+ };
154
+ /** @nocollapse */ AdmiraltyCard.ɵfac = function AdmiraltyCard_Factory(t) { return new (t || AdmiraltyCard)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
155
+ /** @nocollapse */ AdmiraltyCard.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyCard, selectors: [["admiralty-card"]], inputs: { heading: "heading" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyCard_Template(rf, ctx) { if (rf & 1) {
156
+ i0.ɵɵprojectionDef();
157
+ i0.ɵɵprojection(0);
158
+ } }, encapsulation: 2, changeDetection: 0 });
159
+ AdmiraltyCard = __decorate([
160
+ ProxyCmp({
161
+ inputs: ['heading']
162
+ })
163
+ ], AdmiraltyCard);
164
+ export { AdmiraltyCard };
165
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyCard, [{
166
+ type: Component,
167
+ args: [{
168
+ selector: 'admiralty-card',
169
+ changeDetection: ChangeDetectionStrategy.OnPush,
170
+ template: '<ng-content></ng-content>',
171
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
172
+ inputs: ['heading'],
173
+ }]
174
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
175
+ let AdmiraltyCheckbox = class AdmiraltyCheckbox {
176
+ constructor(c, r, z) {
177
+ this.z = z;
178
+ c.detach();
179
+ this.el = r.nativeElement;
180
+ proxyOutputs(this, this.el, ['admiraltyChange', 'checkboxFocus', 'checkboxBlur']);
181
+ }
182
+ };
183
+ /** @nocollapse */ AdmiraltyCheckbox.ɵfac = function AdmiraltyCheckbox_Factory(t) { return new (t || AdmiraltyCheckbox)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
184
+ /** @nocollapse */ AdmiraltyCheckbox.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyCheckbox, selectors: [["admiralty-checkbox"]], inputs: { checkboxRight: "checkboxRight", checked: "checked", disabled: "disabled", labelHidden: "labelHidden", labelText: "labelText", name: "name", value: "value" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyCheckbox_Template(rf, ctx) { if (rf & 1) {
185
+ i0.ɵɵprojectionDef();
186
+ i0.ɵɵprojection(0);
187
+ } }, encapsulation: 2, changeDetection: 0 });
188
+ AdmiraltyCheckbox = __decorate([
189
+ ProxyCmp({
190
+ inputs: ['checkboxRight', 'checked', 'disabled', 'labelHidden', 'labelText', 'name', 'value']
191
+ })
192
+ ], AdmiraltyCheckbox);
193
+ export { AdmiraltyCheckbox };
194
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyCheckbox, [{
195
+ type: Component,
196
+ args: [{
197
+ selector: 'admiralty-checkbox',
198
+ changeDetection: ChangeDetectionStrategy.OnPush,
199
+ template: '<ng-content></ng-content>',
200
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
201
+ inputs: ['checkboxRight', 'checked', 'disabled', 'labelHidden', 'labelText', 'name', 'value'],
202
+ }]
203
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
204
+ let AdmiraltyColourBlock = class AdmiraltyColourBlock {
205
+ constructor(c, r, z) {
206
+ this.z = z;
207
+ c.detach();
208
+ this.el = r.nativeElement;
209
+ proxyOutputs(this, this.el, ['colourBlockLinkClicked']);
210
+ }
211
+ };
212
+ /** @nocollapse */ AdmiraltyColourBlock.ɵfac = function AdmiraltyColourBlock_Factory(t) { return new (t || AdmiraltyColourBlock)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
213
+ /** @nocollapse */ AdmiraltyColourBlock.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyColourBlock, selectors: [["admiralty-colour-block"]], inputs: { actionText: "actionText", colour: "colour", enableCardEvent: "enableCardEvent", heading: "heading", height: "height", href: "href", linkText: "linkText", suppressRedirect: "suppressRedirect", width: "width" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyColourBlock_Template(rf, ctx) { if (rf & 1) {
214
+ i0.ɵɵprojectionDef();
215
+ i0.ɵɵprojection(0);
216
+ } }, encapsulation: 2, changeDetection: 0 });
217
+ AdmiraltyColourBlock = __decorate([
218
+ ProxyCmp({
219
+ inputs: ['actionText', 'colour', 'enableCardEvent', 'heading', 'height', 'href', 'linkText', 'suppressRedirect', 'width']
220
+ })
221
+ ], AdmiraltyColourBlock);
222
+ export { AdmiraltyColourBlock };
223
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyColourBlock, [{
224
+ type: Component,
225
+ args: [{
226
+ selector: 'admiralty-colour-block',
227
+ changeDetection: ChangeDetectionStrategy.OnPush,
228
+ template: '<ng-content></ng-content>',
229
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
230
+ inputs: ['actionText', 'colour', 'enableCardEvent', 'heading', 'height', 'href', 'linkText', 'suppressRedirect', 'width'],
231
+ }]
232
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
233
+ let AdmiraltyDialogue = class AdmiraltyDialogue {
234
+ constructor(c, r, z) {
235
+ this.z = z;
236
+ c.detach();
237
+ this.el = r.nativeElement;
238
+ }
239
+ };
240
+ /** @nocollapse */ AdmiraltyDialogue.ɵfac = function AdmiraltyDialogue_Factory(t) { return new (t || AdmiraltyDialogue)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
241
+ /** @nocollapse */ AdmiraltyDialogue.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyDialogue, selectors: [["admiralty-dialogue"]], inputs: { heading: "heading", type: "type" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyDialogue_Template(rf, ctx) { if (rf & 1) {
242
+ i0.ɵɵprojectionDef();
243
+ i0.ɵɵprojection(0);
244
+ } }, encapsulation: 2, changeDetection: 0 });
245
+ AdmiraltyDialogue = __decorate([
246
+ ProxyCmp({
247
+ inputs: ['heading', 'type']
248
+ })
249
+ ], AdmiraltyDialogue);
250
+ export { AdmiraltyDialogue };
251
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyDialogue, [{
252
+ type: Component,
253
+ args: [{
254
+ selector: 'admiralty-dialogue',
255
+ changeDetection: ChangeDetectionStrategy.OnPush,
256
+ template: '<ng-content></ng-content>',
257
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
258
+ inputs: ['heading', 'type'],
259
+ }]
260
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
261
+ let AdmiraltyExpansion = class AdmiraltyExpansion {
262
+ constructor(c, r, z) {
263
+ this.z = z;
264
+ c.detach();
265
+ this.el = r.nativeElement;
266
+ proxyOutputs(this, this.el, ['toggled']);
267
+ }
268
+ };
269
+ /** @nocollapse */ AdmiraltyExpansion.ɵfac = function AdmiraltyExpansion_Factory(t) { return new (t || AdmiraltyExpansion)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
270
+ /** @nocollapse */ AdmiraltyExpansion.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyExpansion, selectors: [["admiralty-expansion"]], inputs: { alignHeadingRight: "alignHeadingRight", expanded: "expanded", heading: "heading", hideBorder: "hideBorder" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyExpansion_Template(rf, ctx) { if (rf & 1) {
271
+ i0.ɵɵprojectionDef();
272
+ i0.ɵɵprojection(0);
273
+ } }, encapsulation: 2, changeDetection: 0 });
274
+ AdmiraltyExpansion = __decorate([
275
+ ProxyCmp({
276
+ inputs: ['alignHeadingRight', 'expanded', 'heading', 'hideBorder']
277
+ })
278
+ ], AdmiraltyExpansion);
279
+ export { AdmiraltyExpansion };
280
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyExpansion, [{
281
+ type: Component,
282
+ args: [{
283
+ selector: 'admiralty-expansion',
284
+ changeDetection: ChangeDetectionStrategy.OnPush,
285
+ template: '<ng-content></ng-content>',
286
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
287
+ inputs: ['alignHeadingRight', 'expanded', 'heading', 'hideBorder'],
288
+ }]
289
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
290
+ let AdmiraltyFileInput = class AdmiraltyFileInput {
291
+ constructor(c, r, z) {
292
+ this.z = z;
293
+ c.detach();
294
+ this.el = r.nativeElement;
295
+ proxyOutputs(this, this.el, ['fileInputChange']);
296
+ }
297
+ };
298
+ /** @nocollapse */ AdmiraltyFileInput.ɵfac = function AdmiraltyFileInput_Factory(t) { return new (t || AdmiraltyFileInput)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
299
+ /** @nocollapse */ AdmiraltyFileInput.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyFileInput, selectors: [["admiralty-file-input"]], inputs: { invalid: "invalid", invalidMessage: "invalidMessage", label: "label", multiple: "multiple" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyFileInput_Template(rf, ctx) { if (rf & 1) {
300
+ i0.ɵɵprojectionDef();
301
+ i0.ɵɵprojection(0);
302
+ } }, encapsulation: 2, changeDetection: 0 });
303
+ AdmiraltyFileInput = __decorate([
304
+ ProxyCmp({
305
+ inputs: ['invalid', 'invalidMessage', 'label', 'multiple']
306
+ })
307
+ ], AdmiraltyFileInput);
308
+ export { AdmiraltyFileInput };
309
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyFileInput, [{
310
+ type: Component,
311
+ args: [{
312
+ selector: 'admiralty-file-input',
313
+ changeDetection: ChangeDetectionStrategy.OnPush,
314
+ template: '<ng-content></ng-content>',
315
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
316
+ inputs: ['invalid', 'invalidMessage', 'label', 'multiple'],
317
+ }]
318
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
319
+ let AdmiraltyFilter = class AdmiraltyFilter {
320
+ constructor(c, r, z) {
321
+ this.z = z;
322
+ c.detach();
323
+ this.el = r.nativeElement;
324
+ proxyOutputs(this, this.el, ['filterCleared', 'filterApplied']);
325
+ }
326
+ };
327
+ /** @nocollapse */ AdmiraltyFilter.ɵfac = function AdmiraltyFilter_Factory(t) { return new (t || AdmiraltyFilter)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
328
+ /** @nocollapse */ AdmiraltyFilter.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyFilter, selectors: [["admiralty-filter"]], inputs: { filterTitle: "filterTitle" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyFilter_Template(rf, ctx) { if (rf & 1) {
329
+ i0.ɵɵprojectionDef();
330
+ i0.ɵɵprojection(0);
331
+ } }, encapsulation: 2, changeDetection: 0 });
332
+ AdmiraltyFilter = __decorate([
333
+ ProxyCmp({
334
+ inputs: ['filterTitle']
335
+ })
336
+ ], AdmiraltyFilter);
337
+ export { AdmiraltyFilter };
338
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyFilter, [{
339
+ type: Component,
340
+ args: [{
341
+ selector: 'admiralty-filter',
342
+ changeDetection: ChangeDetectionStrategy.OnPush,
343
+ template: '<ng-content></ng-content>',
344
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
345
+ inputs: ['filterTitle'],
346
+ }]
347
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
348
+ let AdmiraltyFilterGroup = class AdmiraltyFilterGroup {
349
+ constructor(c, r, z) {
350
+ this.z = z;
351
+ c.detach();
352
+ this.el = r.nativeElement;
353
+ }
354
+ };
355
+ /** @nocollapse */ AdmiraltyFilterGroup.ɵfac = function AdmiraltyFilterGroup_Factory(t) { return new (t || AdmiraltyFilterGroup)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
356
+ /** @nocollapse */ AdmiraltyFilterGroup.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyFilterGroup, selectors: [["admiralty-filter-group"]], inputs: { groupTitle: "groupTitle" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyFilterGroup_Template(rf, ctx) { if (rf & 1) {
357
+ i0.ɵɵprojectionDef();
358
+ i0.ɵɵprojection(0);
359
+ } }, encapsulation: 2, changeDetection: 0 });
360
+ AdmiraltyFilterGroup = __decorate([
361
+ ProxyCmp({
362
+ inputs: ['groupTitle']
363
+ })
364
+ ], AdmiraltyFilterGroup);
365
+ export { AdmiraltyFilterGroup };
366
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyFilterGroup, [{
367
+ type: Component,
368
+ args: [{
369
+ selector: 'admiralty-filter-group',
370
+ changeDetection: ChangeDetectionStrategy.OnPush,
371
+ template: '<ng-content></ng-content>',
372
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
373
+ inputs: ['groupTitle'],
374
+ }]
375
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
376
+ let AdmiraltyFooter = class AdmiraltyFooter {
377
+ constructor(c, r, z) {
378
+ this.z = z;
379
+ c.detach();
380
+ this.el = r.nativeElement;
381
+ }
382
+ };
383
+ /** @nocollapse */ AdmiraltyFooter.ɵfac = function AdmiraltyFooter_Factory(t) { return new (t || AdmiraltyFooter)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
384
+ /** @nocollapse */ AdmiraltyFooter.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyFooter, selectors: [["admiralty-footer"]], inputs: { imageAlt: "imageAlt", imageLink: "imageLink", imageSrc: "imageSrc", text: "text" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyFooter_Template(rf, ctx) { if (rf & 1) {
385
+ i0.ɵɵprojectionDef();
386
+ i0.ɵɵprojection(0);
387
+ } }, encapsulation: 2, changeDetection: 0 });
388
+ AdmiraltyFooter = __decorate([
389
+ ProxyCmp({
390
+ inputs: ['imageAlt', 'imageLink', 'imageSrc', 'text']
391
+ })
392
+ ], AdmiraltyFooter);
393
+ export { AdmiraltyFooter };
394
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyFooter, [{
395
+ type: Component,
396
+ args: [{
397
+ selector: 'admiralty-footer',
398
+ changeDetection: ChangeDetectionStrategy.OnPush,
399
+ template: '<ng-content></ng-content>',
400
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
401
+ inputs: ['imageAlt', 'imageLink', 'imageSrc', 'text'],
402
+ }]
403
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
404
+ let AdmiraltyHeader = class AdmiraltyHeader {
405
+ constructor(c, r, z) {
406
+ this.z = z;
407
+ c.detach();
408
+ this.el = r.nativeElement;
409
+ proxyOutputs(this, this.el, ['titledClicked']);
410
+ }
411
+ };
412
+ /** @nocollapse */ AdmiraltyHeader.ɵfac = function AdmiraltyHeader_Factory(t) { return new (t || AdmiraltyHeader)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
413
+ /** @nocollapse */ AdmiraltyHeader.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyHeader, selectors: [["admiralty-header"]], inputs: { headerTitle: "headerTitle", headerTitleUrl: "headerTitleUrl", logoAltText: "logoAltText", logoImgUrl: "logoImgUrl", logoLinkUrl: "logoLinkUrl" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyHeader_Template(rf, ctx) { if (rf & 1) {
414
+ i0.ɵɵprojectionDef();
415
+ i0.ɵɵprojection(0);
416
+ } }, encapsulation: 2, changeDetection: 0 });
417
+ AdmiraltyHeader = __decorate([
418
+ ProxyCmp({
419
+ inputs: ['headerTitle', 'headerTitleUrl', 'logoAltText', 'logoImgUrl', 'logoLinkUrl']
420
+ })
421
+ ], AdmiraltyHeader);
422
+ export { AdmiraltyHeader };
423
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyHeader, [{
424
+ type: Component,
425
+ args: [{
426
+ selector: 'admiralty-header',
427
+ changeDetection: ChangeDetectionStrategy.OnPush,
428
+ template: '<ng-content></ng-content>',
429
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
430
+ inputs: ['headerTitle', 'headerTitleUrl', 'logoAltText', 'logoImgUrl', 'logoLinkUrl'],
431
+ }]
432
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
433
+ let AdmiraltyHeaderMenuItem = class AdmiraltyHeaderMenuItem {
434
+ constructor(c, r, z) {
435
+ this.z = z;
436
+ c.detach();
437
+ this.el = r.nativeElement;
438
+ proxyOutputs(this, this.el, ['menuItemClick']);
439
+ }
440
+ };
441
+ /** @nocollapse */ AdmiraltyHeaderMenuItem.ɵfac = function AdmiraltyHeaderMenuItem_Factory(t) { return new (t || AdmiraltyHeaderMenuItem)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
442
+ /** @nocollapse */ AdmiraltyHeaderMenuItem.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyHeaderMenuItem, selectors: [["admiralty-header-menu-item"]], inputs: { active: "active", menuTitle: "menuTitle" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyHeaderMenuItem_Template(rf, ctx) { if (rf & 1) {
443
+ i0.ɵɵprojectionDef();
444
+ i0.ɵɵprojection(0);
445
+ } }, encapsulation: 2, changeDetection: 0 });
446
+ AdmiraltyHeaderMenuItem = __decorate([
447
+ ProxyCmp({
448
+ inputs: ['active', 'menuTitle']
449
+ })
450
+ ], AdmiraltyHeaderMenuItem);
451
+ export { AdmiraltyHeaderMenuItem };
452
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyHeaderMenuItem, [{
453
+ type: Component,
454
+ args: [{
455
+ selector: 'admiralty-header-menu-item',
456
+ changeDetection: ChangeDetectionStrategy.OnPush,
457
+ template: '<ng-content></ng-content>',
458
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
459
+ inputs: ['active', 'menuTitle'],
460
+ }]
461
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
462
+ let AdmiraltyHeaderMenuLink = class AdmiraltyHeaderMenuLink {
463
+ constructor(c, r, z) {
464
+ this.z = z;
465
+ c.detach();
466
+ this.el = r.nativeElement;
467
+ proxyOutputs(this, this.el, ['menuItemClick']);
468
+ }
469
+ };
470
+ /** @nocollapse */ AdmiraltyHeaderMenuLink.ɵfac = function AdmiraltyHeaderMenuLink_Factory(t) { return new (t || AdmiraltyHeaderMenuLink)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
471
+ /** @nocollapse */ AdmiraltyHeaderMenuLink.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyHeaderMenuLink, selectors: [["admiralty-header-menu-link"]], inputs: { active: "active", href: "href", menuTitle: "menuTitle", suppressRedirect: "suppressRedirect" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyHeaderMenuLink_Template(rf, ctx) { if (rf & 1) {
472
+ i0.ɵɵprojectionDef();
473
+ i0.ɵɵprojection(0);
474
+ } }, encapsulation: 2, changeDetection: 0 });
475
+ AdmiraltyHeaderMenuLink = __decorate([
476
+ ProxyCmp({
477
+ inputs: ['active', 'href', 'menuTitle', 'suppressRedirect']
478
+ })
479
+ ], AdmiraltyHeaderMenuLink);
480
+ export { AdmiraltyHeaderMenuLink };
481
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyHeaderMenuLink, [{
482
+ type: Component,
483
+ args: [{
484
+ selector: 'admiralty-header-menu-link',
485
+ changeDetection: ChangeDetectionStrategy.OnPush,
486
+ template: '<ng-content></ng-content>',
487
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
488
+ inputs: ['active', 'href', 'menuTitle', 'suppressRedirect'],
489
+ }]
490
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
491
+ let AdmiraltyHeaderProfile = class AdmiraltyHeaderProfile {
492
+ constructor(c, r, z) {
493
+ this.z = z;
494
+ c.detach();
495
+ this.el = r.nativeElement;
496
+ proxyOutputs(this, this.el, ['signInClicked', 'yourAccountClicked', 'signOutClicked']);
497
+ }
498
+ };
499
+ /** @nocollapse */ AdmiraltyHeaderProfile.ɵfac = function AdmiraltyHeaderProfile_Factory(t) { return new (t || AdmiraltyHeaderProfile)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
500
+ /** @nocollapse */ AdmiraltyHeaderProfile.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyHeaderProfile, selectors: [["admiralty-header-profile"]], inputs: { isSignedIn: "isSignedIn", signInOnly: "signInOnly", signedInText: "signedInText" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyHeaderProfile_Template(rf, ctx) { if (rf & 1) {
501
+ i0.ɵɵprojectionDef();
502
+ i0.ɵɵprojection(0);
503
+ } }, encapsulation: 2, changeDetection: 0 });
504
+ AdmiraltyHeaderProfile = __decorate([
505
+ ProxyCmp({
506
+ inputs: ['isSignedIn', 'signInOnly', 'signedInText']
507
+ })
508
+ ], AdmiraltyHeaderProfile);
509
+ export { AdmiraltyHeaderProfile };
510
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyHeaderProfile, [{
511
+ type: Component,
512
+ args: [{
513
+ selector: 'admiralty-header-profile',
514
+ changeDetection: ChangeDetectionStrategy.OnPush,
515
+ template: '<ng-content></ng-content>',
516
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
517
+ inputs: ['isSignedIn', 'signInOnly', 'signedInText'],
518
+ }]
519
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
520
+ let AdmiraltyHeaderSubMenuItem = class AdmiraltyHeaderSubMenuItem {
521
+ constructor(c, r, z) {
522
+ this.z = z;
523
+ c.detach();
524
+ this.el = r.nativeElement;
525
+ proxyOutputs(this, this.el, ['subMenuItemClick']);
526
+ }
527
+ };
528
+ /** @nocollapse */ AdmiraltyHeaderSubMenuItem.ɵfac = function AdmiraltyHeaderSubMenuItem_Factory(t) { return new (t || AdmiraltyHeaderSubMenuItem)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
529
+ /** @nocollapse */ AdmiraltyHeaderSubMenuItem.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyHeaderSubMenuItem, selectors: [["admiralty-header-sub-menu-item"]], inputs: { menuTitle: "menuTitle" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyHeaderSubMenuItem_Template(rf, ctx) { if (rf & 1) {
530
+ i0.ɵɵprojectionDef();
531
+ i0.ɵɵprojection(0);
532
+ } }, encapsulation: 2, changeDetection: 0 });
533
+ AdmiraltyHeaderSubMenuItem = __decorate([
534
+ ProxyCmp({
535
+ inputs: ['menuTitle']
536
+ })
537
+ ], AdmiraltyHeaderSubMenuItem);
538
+ export { AdmiraltyHeaderSubMenuItem };
539
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyHeaderSubMenuItem, [{
540
+ type: Component,
541
+ args: [{
542
+ selector: 'admiralty-header-sub-menu-item',
543
+ changeDetection: ChangeDetectionStrategy.OnPush,
544
+ template: '<ng-content></ng-content>',
545
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
546
+ inputs: ['menuTitle'],
547
+ }]
548
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
549
+ let AdmiraltyHint = class AdmiraltyHint {
550
+ constructor(c, r, z) {
551
+ this.z = z;
552
+ c.detach();
553
+ this.el = r.nativeElement;
554
+ }
555
+ };
556
+ /** @nocollapse */ AdmiraltyHint.ɵfac = function AdmiraltyHint_Factory(t) { return new (t || AdmiraltyHint)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
557
+ /** @nocollapse */ AdmiraltyHint.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyHint, selectors: [["admiralty-hint"]], inputs: { disabled: "disabled" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyHint_Template(rf, ctx) { if (rf & 1) {
558
+ i0.ɵɵprojectionDef();
559
+ i0.ɵɵprojection(0);
560
+ } }, encapsulation: 2, changeDetection: 0 });
561
+ AdmiraltyHint = __decorate([
562
+ ProxyCmp({
563
+ inputs: ['disabled']
564
+ })
565
+ ], AdmiraltyHint);
566
+ export { AdmiraltyHint };
567
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyHint, [{
568
+ type: Component,
569
+ args: [{
570
+ selector: 'admiralty-hint',
571
+ changeDetection: ChangeDetectionStrategy.OnPush,
572
+ template: '<ng-content></ng-content>',
573
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
574
+ inputs: ['disabled'],
575
+ }]
576
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
577
+ let AdmiraltyHr = class AdmiraltyHr {
578
+ constructor(c, r, z) {
579
+ this.z = z;
580
+ c.detach();
581
+ this.el = r.nativeElement;
582
+ }
583
+ };
584
+ /** @nocollapse */ AdmiraltyHr.ɵfac = function AdmiraltyHr_Factory(t) { return new (t || AdmiraltyHr)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
585
+ /** @nocollapse */ AdmiraltyHr.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyHr, selectors: [["admiralty-hr"]], ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyHr_Template(rf, ctx) { if (rf & 1) {
586
+ i0.ɵɵprojectionDef();
587
+ i0.ɵɵprojection(0);
588
+ } }, encapsulation: 2, changeDetection: 0 });
589
+ AdmiraltyHr = __decorate([
590
+ ProxyCmp({})
591
+ ], AdmiraltyHr);
592
+ export { AdmiraltyHr };
593
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyHr, [{
594
+ type: Component,
595
+ args: [{
596
+ selector: 'admiralty-hr',
597
+ changeDetection: ChangeDetectionStrategy.OnPush,
598
+ template: '<ng-content></ng-content>',
599
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
600
+ inputs: [],
601
+ }]
602
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
603
+ let AdmiraltyIcon = class AdmiraltyIcon {
604
+ constructor(c, r, z) {
605
+ this.z = z;
606
+ c.detach();
607
+ this.el = r.nativeElement;
608
+ }
609
+ };
610
+ /** @nocollapse */ AdmiraltyIcon.ɵfac = function AdmiraltyIcon_Factory(t) { return new (t || AdmiraltyIcon)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
611
+ /** @nocollapse */ AdmiraltyIcon.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyIcon, selectors: [["admiralty-icon"]], inputs: { iconName: "iconName", iconPrefix: "iconPrefix" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyIcon_Template(rf, ctx) { if (rf & 1) {
612
+ i0.ɵɵprojectionDef();
613
+ i0.ɵɵprojection(0);
614
+ } }, encapsulation: 2, changeDetection: 0 });
615
+ AdmiraltyIcon = __decorate([
616
+ ProxyCmp({
617
+ inputs: ['iconName', 'iconPrefix']
618
+ })
619
+ ], AdmiraltyIcon);
620
+ export { AdmiraltyIcon };
621
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyIcon, [{
622
+ type: Component,
623
+ args: [{
624
+ selector: 'admiralty-icon',
625
+ changeDetection: ChangeDetectionStrategy.OnPush,
626
+ template: '<ng-content></ng-content>',
627
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
628
+ inputs: ['iconName', 'iconPrefix'],
629
+ }]
630
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
631
+ let AdmiraltyInput = class AdmiraltyInput {
632
+ constructor(c, r, z) {
633
+ this.z = z;
634
+ c.detach();
635
+ this.el = r.nativeElement;
636
+ proxyOutputs(this, this.el, ['admiraltyInput', 'admiraltyFocus', 'admiraltyBlur']);
637
+ }
638
+ };
639
+ /** @nocollapse */ AdmiraltyInput.ɵfac = function AdmiraltyInput_Factory(t) { return new (t || AdmiraltyInput)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
640
+ /** @nocollapse */ AdmiraltyInput.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyInput, selectors: [["admiralty-input"]], inputs: { autocomplete: "autocomplete", disabled: "disabled", hint: "hint", invalid: "invalid", invalidMessage: "invalidMessage", label: "label", name: "name", placeholder: "placeholder", required: "required", type: "type", value: "value", width: "width" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyInput_Template(rf, ctx) { if (rf & 1) {
641
+ i0.ɵɵprojectionDef();
642
+ i0.ɵɵprojection(0);
643
+ } }, encapsulation: 2, changeDetection: 0 });
644
+ AdmiraltyInput = __decorate([
645
+ ProxyCmp({
646
+ inputs: ['autocomplete', 'disabled', 'hint', 'invalid', 'invalidMessage', 'label', 'name', 'placeholder', 'required', 'type', 'value', 'width']
647
+ })
648
+ ], AdmiraltyInput);
649
+ export { AdmiraltyInput };
650
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyInput, [{
651
+ type: Component,
652
+ args: [{
653
+ selector: 'admiralty-input',
654
+ changeDetection: ChangeDetectionStrategy.OnPush,
655
+ template: '<ng-content></ng-content>',
656
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
657
+ inputs: ['autocomplete', 'disabled', 'hint', 'invalid', 'invalidMessage', 'label', 'name', 'placeholder', 'required', 'type', 'value', 'width'],
658
+ }]
659
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
660
+ let AdmiraltyInputInvalid = class AdmiraltyInputInvalid {
661
+ constructor(c, r, z) {
662
+ this.z = z;
663
+ c.detach();
664
+ this.el = r.nativeElement;
665
+ }
666
+ };
667
+ /** @nocollapse */ AdmiraltyInputInvalid.ɵfac = function AdmiraltyInputInvalid_Factory(t) { return new (t || AdmiraltyInputInvalid)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
668
+ /** @nocollapse */ AdmiraltyInputInvalid.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyInputInvalid, selectors: [["admiralty-input-invalid"]], ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyInputInvalid_Template(rf, ctx) { if (rf & 1) {
669
+ i0.ɵɵprojectionDef();
670
+ i0.ɵɵprojection(0);
671
+ } }, encapsulation: 2, changeDetection: 0 });
672
+ AdmiraltyInputInvalid = __decorate([
673
+ ProxyCmp({})
674
+ ], AdmiraltyInputInvalid);
675
+ export { AdmiraltyInputInvalid };
676
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyInputInvalid, [{
677
+ type: Component,
678
+ args: [{
679
+ selector: 'admiralty-input-invalid',
680
+ changeDetection: ChangeDetectionStrategy.OnPush,
681
+ template: '<ng-content></ng-content>',
682
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
683
+ inputs: [],
684
+ }]
685
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
686
+ let AdmiraltyLabel = class AdmiraltyLabel {
687
+ constructor(c, r, z) {
688
+ this.z = z;
689
+ c.detach();
690
+ this.el = r.nativeElement;
691
+ }
692
+ };
693
+ /** @nocollapse */ AdmiraltyLabel.ɵfac = function AdmiraltyLabel_Factory(t) { return new (t || AdmiraltyLabel)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
694
+ /** @nocollapse */ AdmiraltyLabel.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyLabel, selectors: [["admiralty-label"]], inputs: { disabled: "disabled", for: "for" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyLabel_Template(rf, ctx) { if (rf & 1) {
695
+ i0.ɵɵprojectionDef();
696
+ i0.ɵɵprojection(0);
697
+ } }, encapsulation: 2, changeDetection: 0 });
698
+ AdmiraltyLabel = __decorate([
699
+ ProxyCmp({
700
+ inputs: ['disabled', 'for']
701
+ })
702
+ ], AdmiraltyLabel);
703
+ export { AdmiraltyLabel };
704
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyLabel, [{
705
+ type: Component,
706
+ args: [{
707
+ selector: 'admiralty-label',
708
+ changeDetection: ChangeDetectionStrategy.OnPush,
709
+ template: '<ng-content></ng-content>',
710
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
711
+ inputs: ['disabled', 'for'],
712
+ }]
713
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
714
+ let AdmiraltyLink = class AdmiraltyLink {
715
+ constructor(c, r, z) {
716
+ this.z = z;
717
+ c.detach();
718
+ this.el = r.nativeElement;
719
+ }
720
+ };
721
+ /** @nocollapse */ AdmiraltyLink.ɵfac = function AdmiraltyLink_Factory(t) { return new (t || AdmiraltyLink)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
722
+ /** @nocollapse */ AdmiraltyLink.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyLink, selectors: [["admiralty-link"]], inputs: { href: "href", newTab: "newTab" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyLink_Template(rf, ctx) { if (rf & 1) {
723
+ i0.ɵɵprojectionDef();
724
+ i0.ɵɵprojection(0);
725
+ } }, encapsulation: 2, changeDetection: 0 });
726
+ AdmiraltyLink = __decorate([
727
+ ProxyCmp({
728
+ inputs: ['href', 'newTab']
729
+ })
730
+ ], AdmiraltyLink);
731
+ export { AdmiraltyLink };
732
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyLink, [{
733
+ type: Component,
734
+ args: [{
735
+ selector: 'admiralty-link',
736
+ changeDetection: ChangeDetectionStrategy.OnPush,
737
+ template: '<ng-content></ng-content>',
738
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
739
+ inputs: ['href', 'newTab'],
740
+ }]
741
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
742
+ let AdmiraltyModalDialog = class AdmiraltyModalDialog {
743
+ constructor(c, r, z) {
744
+ this.z = z;
745
+ c.detach();
746
+ this.el = r.nativeElement;
747
+ }
748
+ };
749
+ /** @nocollapse */ AdmiraltyModalDialog.ɵfac = function AdmiraltyModalDialog_Factory(t) { return new (t || AdmiraltyModalDialog)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
750
+ /** @nocollapse */ AdmiraltyModalDialog.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyModalDialog, selectors: [["admiralty-modal-dialog"]], inputs: { description: "description", heading: "heading", label: "label", show: "show" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyModalDialog_Template(rf, ctx) { if (rf & 1) {
751
+ i0.ɵɵprojectionDef();
752
+ i0.ɵɵprojection(0);
753
+ } }, encapsulation: 2, changeDetection: 0 });
754
+ AdmiraltyModalDialog = __decorate([
755
+ ProxyCmp({
756
+ inputs: ['description', 'heading', 'label', 'show']
757
+ })
758
+ ], AdmiraltyModalDialog);
759
+ export { AdmiraltyModalDialog };
760
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyModalDialog, [{
761
+ type: Component,
762
+ args: [{
763
+ selector: 'admiralty-modal-dialog',
764
+ changeDetection: ChangeDetectionStrategy.OnPush,
765
+ template: '<ng-content></ng-content>',
766
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
767
+ inputs: ['description', 'heading', 'label', 'show'],
768
+ }]
769
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
770
+ let AdmiraltyPaginator = class AdmiraltyPaginator {
771
+ constructor(c, r, z) {
772
+ this.z = z;
773
+ c.detach();
774
+ this.el = r.nativeElement;
775
+ proxyOutputs(this, this.el, ['pageChange']);
776
+ }
777
+ };
778
+ /** @nocollapse */ AdmiraltyPaginator.ɵfac = function AdmiraltyPaginator_Factory(t) { return new (t || AdmiraltyPaginator)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
779
+ /** @nocollapse */ AdmiraltyPaginator.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyPaginator, selectors: [["admiralty-paginator"]], inputs: { currentPage: "currentPage", label: "label", pages: "pages" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyPaginator_Template(rf, ctx) { if (rf & 1) {
780
+ i0.ɵɵprojectionDef();
781
+ i0.ɵɵprojection(0);
782
+ } }, encapsulation: 2, changeDetection: 0 });
783
+ AdmiraltyPaginator = __decorate([
784
+ ProxyCmp({
785
+ inputs: ['currentPage', 'label', 'pages']
786
+ })
787
+ ], AdmiraltyPaginator);
788
+ export { AdmiraltyPaginator };
789
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyPaginator, [{
790
+ type: Component,
791
+ args: [{
792
+ selector: 'admiralty-paginator',
793
+ changeDetection: ChangeDetectionStrategy.OnPush,
794
+ template: '<ng-content></ng-content>',
795
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
796
+ inputs: ['currentPage', 'label', 'pages'],
797
+ }]
798
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
799
+ let AdmiraltyPhaseBanner = class AdmiraltyPhaseBanner {
800
+ constructor(c, r, z) {
801
+ this.z = z;
802
+ c.detach();
803
+ this.el = r.nativeElement;
804
+ }
805
+ };
806
+ /** @nocollapse */ AdmiraltyPhaseBanner.ɵfac = function AdmiraltyPhaseBanner_Factory(t) { return new (t || AdmiraltyPhaseBanner)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
807
+ /** @nocollapse */ AdmiraltyPhaseBanner.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyPhaseBanner, selectors: [["admiralty-phase-banner"]], inputs: { link: "link", phase: "phase" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyPhaseBanner_Template(rf, ctx) { if (rf & 1) {
808
+ i0.ɵɵprojectionDef();
809
+ i0.ɵɵprojection(0);
810
+ } }, encapsulation: 2, changeDetection: 0 });
811
+ AdmiraltyPhaseBanner = __decorate([
812
+ ProxyCmp({
813
+ inputs: ['link', 'phase']
814
+ })
815
+ ], AdmiraltyPhaseBanner);
816
+ export { AdmiraltyPhaseBanner };
817
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyPhaseBanner, [{
818
+ type: Component,
819
+ args: [{
820
+ selector: 'admiralty-phase-banner',
821
+ changeDetection: ChangeDetectionStrategy.OnPush,
822
+ template: '<ng-content></ng-content>',
823
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
824
+ inputs: ['link', 'phase'],
825
+ }]
826
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
827
+ let AdmiraltyProgressBar = class AdmiraltyProgressBar {
828
+ constructor(c, r, z) {
829
+ this.z = z;
830
+ c.detach();
831
+ this.el = r.nativeElement;
832
+ }
833
+ };
834
+ /** @nocollapse */ AdmiraltyProgressBar.ɵfac = function AdmiraltyProgressBar_Factory(t) { return new (t || AdmiraltyProgressBar)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
835
+ /** @nocollapse */ AdmiraltyProgressBar.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyProgressBar, selectors: [["admiralty-progress-bar"]], inputs: { error: "error", label: "label", progression: "progression" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyProgressBar_Template(rf, ctx) { if (rf & 1) {
836
+ i0.ɵɵprojectionDef();
837
+ i0.ɵɵprojection(0);
838
+ } }, encapsulation: 2, changeDetection: 0 });
839
+ AdmiraltyProgressBar = __decorate([
840
+ ProxyCmp({
841
+ inputs: ['error', 'label', 'progression']
842
+ })
843
+ ], AdmiraltyProgressBar);
844
+ export { AdmiraltyProgressBar };
845
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyProgressBar, [{
846
+ type: Component,
847
+ args: [{
848
+ selector: 'admiralty-progress-bar',
849
+ changeDetection: ChangeDetectionStrategy.OnPush,
850
+ template: '<ng-content></ng-content>',
851
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
852
+ inputs: ['error', 'label', 'progression'],
853
+ }]
854
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
855
+ let AdmiraltyRadio = class AdmiraltyRadio {
856
+ constructor(c, r, z) {
857
+ this.z = z;
858
+ c.detach();
859
+ this.el = r.nativeElement;
860
+ proxyOutputs(this, this.el, ['admiraltyFocus', 'admiraltyBlur', 'admiraltyChange']);
861
+ }
862
+ };
863
+ /** @nocollapse */ AdmiraltyRadio.ɵfac = function AdmiraltyRadio_Factory(t) { return new (t || AdmiraltyRadio)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
864
+ /** @nocollapse */ AdmiraltyRadio.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyRadio, selectors: [["admiralty-radio"]], inputs: { checked: "checked", disabled: "disabled", invalid: "invalid", name: "name", value: "value" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyRadio_Template(rf, ctx) { if (rf & 1) {
865
+ i0.ɵɵprojectionDef();
866
+ i0.ɵɵprojection(0);
867
+ } }, encapsulation: 2, changeDetection: 0 });
868
+ AdmiraltyRadio = __decorate([
869
+ ProxyCmp({
870
+ inputs: ['checked', 'disabled', 'invalid', 'name', 'value']
871
+ })
872
+ ], AdmiraltyRadio);
873
+ export { AdmiraltyRadio };
874
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyRadio, [{
875
+ type: Component,
876
+ args: [{
877
+ selector: 'admiralty-radio',
878
+ changeDetection: ChangeDetectionStrategy.OnPush,
879
+ template: '<ng-content></ng-content>',
880
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
881
+ inputs: ['checked', 'disabled', 'invalid', 'name', 'value'],
882
+ }]
883
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
884
+ let AdmiraltyRadioGroup = class AdmiraltyRadioGroup {
885
+ constructor(c, r, z) {
886
+ this.z = z;
887
+ c.detach();
888
+ this.el = r.nativeElement;
889
+ proxyOutputs(this, this.el, ['admiraltyChange']);
890
+ }
891
+ };
892
+ /** @nocollapse */ AdmiraltyRadioGroup.ɵfac = function AdmiraltyRadioGroup_Factory(t) { return new (t || AdmiraltyRadioGroup)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
893
+ /** @nocollapse */ AdmiraltyRadioGroup.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyRadioGroup, selectors: [["admiralty-radio-group"]], inputs: { disabled: "disabled", displayVertical: "displayVertical", hint: "hint", invalid: "invalid", invalidMessage: "invalidMessage", label: "label", name: "name", value: "value" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyRadioGroup_Template(rf, ctx) { if (rf & 1) {
894
+ i0.ɵɵprojectionDef();
895
+ i0.ɵɵprojection(0);
896
+ } }, encapsulation: 2, changeDetection: 0 });
897
+ AdmiraltyRadioGroup = __decorate([
898
+ ProxyCmp({
899
+ inputs: ['disabled', 'displayVertical', 'hint', 'invalid', 'invalidMessage', 'label', 'name', 'value']
900
+ })
901
+ ], AdmiraltyRadioGroup);
902
+ export { AdmiraltyRadioGroup };
903
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyRadioGroup, [{
904
+ type: Component,
905
+ args: [{
906
+ selector: 'admiralty-radio-group',
907
+ changeDetection: ChangeDetectionStrategy.OnPush,
908
+ template: '<ng-content></ng-content>',
909
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
910
+ inputs: ['disabled', 'displayVertical', 'hint', 'invalid', 'invalidMessage', 'label', 'name', 'value'],
911
+ }]
912
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
913
+ let AdmiraltyReadMore = class AdmiraltyReadMore {
914
+ constructor(c, r, z) {
915
+ this.z = z;
916
+ c.detach();
917
+ this.el = r.nativeElement;
918
+ proxyOutputs(this, this.el, ['admiraltyToggled']);
919
+ }
920
+ };
921
+ /** @nocollapse */ AdmiraltyReadMore.ɵfac = function AdmiraltyReadMore_Factory(t) { return new (t || AdmiraltyReadMore)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
922
+ /** @nocollapse */ AdmiraltyReadMore.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyReadMore, selectors: [["admiralty-read-more"]], inputs: { heading: "heading" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyReadMore_Template(rf, ctx) { if (rf & 1) {
923
+ i0.ɵɵprojectionDef();
924
+ i0.ɵɵprojection(0);
925
+ } }, encapsulation: 2, changeDetection: 0 });
926
+ AdmiraltyReadMore = __decorate([
927
+ ProxyCmp({
928
+ inputs: ['heading']
929
+ })
930
+ ], AdmiraltyReadMore);
931
+ export { AdmiraltyReadMore };
932
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyReadMore, [{
933
+ type: Component,
934
+ args: [{
935
+ selector: 'admiralty-read-more',
936
+ changeDetection: ChangeDetectionStrategy.OnPush,
937
+ template: '<ng-content></ng-content>',
938
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
939
+ inputs: ['heading'],
940
+ }]
941
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
942
+ let AdmiraltySelect = class AdmiraltySelect {
943
+ constructor(c, r, z) {
944
+ this.z = z;
945
+ c.detach();
946
+ this.el = r.nativeElement;
947
+ proxyOutputs(this, this.el, ['admiraltyChange', 'admiraltyBlur']);
948
+ }
949
+ };
950
+ /** @nocollapse */ AdmiraltySelect.ɵfac = function AdmiraltySelect_Factory(t) { return new (t || AdmiraltySelect)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
951
+ /** @nocollapse */ AdmiraltySelect.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltySelect, selectors: [["admiralty-select"]], inputs: { disabled: "disabled", hint: "hint", invalid: "invalid", invalidMessage: "invalidMessage", label: "label", value: "value", width: "width" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltySelect_Template(rf, ctx) { if (rf & 1) {
952
+ i0.ɵɵprojectionDef();
953
+ i0.ɵɵprojection(0);
954
+ } }, encapsulation: 2, changeDetection: 0 });
955
+ AdmiraltySelect = __decorate([
956
+ ProxyCmp({
957
+ inputs: ['disabled', 'hint', 'invalid', 'invalidMessage', 'label', 'value', 'width']
958
+ })
959
+ ], AdmiraltySelect);
960
+ export { AdmiraltySelect };
961
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltySelect, [{
962
+ type: Component,
963
+ args: [{
964
+ selector: 'admiralty-select',
965
+ changeDetection: ChangeDetectionStrategy.OnPush,
966
+ template: '<ng-content></ng-content>',
967
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
968
+ inputs: ['disabled', 'hint', 'invalid', 'invalidMessage', 'label', 'value', 'width'],
969
+ }]
970
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
971
+ let AdmiraltySideNav = class AdmiraltySideNav {
972
+ constructor(c, r, z) {
973
+ this.z = z;
974
+ c.detach();
975
+ this.el = r.nativeElement;
976
+ }
977
+ };
978
+ /** @nocollapse */ AdmiraltySideNav.ɵfac = function AdmiraltySideNav_Factory(t) { return new (t || AdmiraltySideNav)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
979
+ /** @nocollapse */ AdmiraltySideNav.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltySideNav, selectors: [["admiralty-side-nav"]], inputs: { label: "label" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltySideNav_Template(rf, ctx) { if (rf & 1) {
980
+ i0.ɵɵprojectionDef();
981
+ i0.ɵɵprojection(0);
982
+ } }, encapsulation: 2, changeDetection: 0 });
983
+ AdmiraltySideNav = __decorate([
984
+ ProxyCmp({
985
+ inputs: ['label']
986
+ })
987
+ ], AdmiraltySideNav);
988
+ export { AdmiraltySideNav };
989
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltySideNav, [{
990
+ type: Component,
991
+ args: [{
992
+ selector: 'admiralty-side-nav',
993
+ changeDetection: ChangeDetectionStrategy.OnPush,
994
+ template: '<ng-content></ng-content>',
995
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
996
+ inputs: ['label'],
997
+ }]
998
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
999
+ let AdmiraltySideNavItem = class AdmiraltySideNavItem {
1000
+ constructor(c, r, z) {
1001
+ this.z = z;
1002
+ c.detach();
1003
+ this.el = r.nativeElement;
1004
+ proxyOutputs(this, this.el, ['sideNavItemSelected']);
1005
+ }
1006
+ };
1007
+ /** @nocollapse */ AdmiraltySideNavItem.ɵfac = function AdmiraltySideNavItem_Factory(t) { return new (t || AdmiraltySideNavItem)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
1008
+ /** @nocollapse */ AdmiraltySideNavItem.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltySideNavItem, selectors: [["admiralty-side-nav-item"]], inputs: { headingTitle: "headingTitle", navActive: "navActive", sideNavItemId: "sideNavItemId" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltySideNavItem_Template(rf, ctx) { if (rf & 1) {
1009
+ i0.ɵɵprojectionDef();
1010
+ i0.ɵɵprojection(0);
1011
+ } }, encapsulation: 2, changeDetection: 0 });
1012
+ AdmiraltySideNavItem = __decorate([
1013
+ ProxyCmp({
1014
+ inputs: ['headingTitle', 'navActive', 'sideNavItemId']
1015
+ })
1016
+ ], AdmiraltySideNavItem);
1017
+ export { AdmiraltySideNavItem };
1018
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltySideNavItem, [{
1019
+ type: Component,
1020
+ args: [{
1021
+ selector: 'admiralty-side-nav-item',
1022
+ changeDetection: ChangeDetectionStrategy.OnPush,
1023
+ template: '<ng-content></ng-content>',
1024
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1025
+ inputs: ['headingTitle', 'navActive', 'sideNavItemId'],
1026
+ }]
1027
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
1028
+ let AdmiraltySkipLink = class AdmiraltySkipLink {
1029
+ constructor(c, r, z) {
1030
+ this.z = z;
1031
+ c.detach();
1032
+ this.el = r.nativeElement;
1033
+ }
1034
+ };
1035
+ /** @nocollapse */ AdmiraltySkipLink.ɵfac = function AdmiraltySkipLink_Factory(t) { return new (t || AdmiraltySkipLink)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
1036
+ /** @nocollapse */ AdmiraltySkipLink.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltySkipLink, selectors: [["admiralty-skip-link"]], inputs: { href: "href" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltySkipLink_Template(rf, ctx) { if (rf & 1) {
1037
+ i0.ɵɵprojectionDef();
1038
+ i0.ɵɵprojection(0);
1039
+ } }, encapsulation: 2, changeDetection: 0 });
1040
+ AdmiraltySkipLink = __decorate([
1041
+ ProxyCmp({
1042
+ inputs: ['href']
1043
+ })
1044
+ ], AdmiraltySkipLink);
1045
+ export { AdmiraltySkipLink };
1046
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltySkipLink, [{
1047
+ type: Component,
1048
+ args: [{
1049
+ selector: 'admiralty-skip-link',
1050
+ changeDetection: ChangeDetectionStrategy.OnPush,
1051
+ template: '<ng-content></ng-content>',
1052
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1053
+ inputs: ['href'],
1054
+ }]
1055
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
1056
+ let AdmiraltyTab = class AdmiraltyTab {
1057
+ constructor(c, r, z) {
1058
+ this.z = z;
1059
+ c.detach();
1060
+ this.el = r.nativeElement;
1061
+ }
1062
+ };
1063
+ /** @nocollapse */ AdmiraltyTab.ɵfac = function AdmiraltyTab_Factory(t) { return new (t || AdmiraltyTab)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
1064
+ /** @nocollapse */ AdmiraltyTab.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyTab, selectors: [["admiralty-tab"]], inputs: { label: "label", tabContentId: "tabContentId", tabLabelId: "tabLabelId" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyTab_Template(rf, ctx) { if (rf & 1) {
1065
+ i0.ɵɵprojectionDef();
1066
+ i0.ɵɵprojection(0);
1067
+ } }, encapsulation: 2, changeDetection: 0 });
1068
+ AdmiraltyTab = __decorate([
1069
+ ProxyCmp({
1070
+ inputs: ['label', 'tabContentId', 'tabLabelId']
1071
+ })
1072
+ ], AdmiraltyTab);
1073
+ export { AdmiraltyTab };
1074
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyTab, [{
1075
+ type: Component,
1076
+ args: [{
1077
+ selector: 'admiralty-tab',
1078
+ changeDetection: ChangeDetectionStrategy.OnPush,
1079
+ template: '<ng-content></ng-content>',
1080
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1081
+ inputs: ['label', 'tabContentId', 'tabLabelId'],
1082
+ }]
1083
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
1084
+ let AdmiraltyTabGroup = class AdmiraltyTabGroup {
1085
+ constructor(c, r, z) {
1086
+ this.z = z;
1087
+ c.detach();
1088
+ this.el = r.nativeElement;
1089
+ proxyOutputs(this, this.el, ['admiraltyTabSelected']);
1090
+ }
1091
+ };
1092
+ /** @nocollapse */ AdmiraltyTabGroup.ɵfac = function AdmiraltyTabGroup_Factory(t) { return new (t || AdmiraltyTabGroup)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
1093
+ /** @nocollapse */ AdmiraltyTabGroup.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyTabGroup, selectors: [["admiralty-tab-group"]], inputs: { selectedIndex: "selectedIndex" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyTabGroup_Template(rf, ctx) { if (rf & 1) {
1094
+ i0.ɵɵprojectionDef();
1095
+ i0.ɵɵprojection(0);
1096
+ } }, encapsulation: 2, changeDetection: 0 });
1097
+ AdmiraltyTabGroup = __decorate([
1098
+ ProxyCmp({
1099
+ inputs: ['selectedIndex']
1100
+ })
1101
+ ], AdmiraltyTabGroup);
1102
+ export { AdmiraltyTabGroup };
1103
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyTabGroup, [{
1104
+ type: Component,
1105
+ args: [{
1106
+ selector: 'admiralty-tab-group',
1107
+ changeDetection: ChangeDetectionStrategy.OnPush,
1108
+ template: '<ng-content></ng-content>',
1109
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1110
+ inputs: ['selectedIndex'],
1111
+ }]
1112
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
1113
+ let AdmiraltyTable = class AdmiraltyTable {
1114
+ constructor(c, r, z) {
1115
+ this.z = z;
1116
+ c.detach();
1117
+ this.el = r.nativeElement;
1118
+ }
1119
+ };
1120
+ /** @nocollapse */ AdmiraltyTable.ɵfac = function AdmiraltyTable_Factory(t) { return new (t || AdmiraltyTable)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
1121
+ /** @nocollapse */ AdmiraltyTable.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyTable, selectors: [["admiralty-table"]], inputs: { caption: "caption" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyTable_Template(rf, ctx) { if (rf & 1) {
1122
+ i0.ɵɵprojectionDef();
1123
+ i0.ɵɵprojection(0);
1124
+ } }, encapsulation: 2, changeDetection: 0 });
1125
+ AdmiraltyTable = __decorate([
1126
+ ProxyCmp({
1127
+ inputs: ['caption']
1128
+ })
1129
+ ], AdmiraltyTable);
1130
+ export { AdmiraltyTable };
1131
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyTable, [{
1132
+ type: Component,
1133
+ args: [{
1134
+ selector: 'admiralty-table',
1135
+ changeDetection: ChangeDetectionStrategy.OnPush,
1136
+ template: '<ng-content></ng-content>',
1137
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1138
+ inputs: ['caption'],
1139
+ }]
1140
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
1141
+ let AdmiraltyTableBody = class AdmiraltyTableBody {
1142
+ constructor(c, r, z) {
1143
+ this.z = z;
1144
+ c.detach();
1145
+ this.el = r.nativeElement;
1146
+ }
1147
+ };
1148
+ /** @nocollapse */ AdmiraltyTableBody.ɵfac = function AdmiraltyTableBody_Factory(t) { return new (t || AdmiraltyTableBody)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
1149
+ /** @nocollapse */ AdmiraltyTableBody.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyTableBody, selectors: [["admiralty-table-body"]], ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyTableBody_Template(rf, ctx) { if (rf & 1) {
1150
+ i0.ɵɵprojectionDef();
1151
+ i0.ɵɵprojection(0);
1152
+ } }, encapsulation: 2, changeDetection: 0 });
1153
+ AdmiraltyTableBody = __decorate([
1154
+ ProxyCmp({})
1155
+ ], AdmiraltyTableBody);
1156
+ export { AdmiraltyTableBody };
1157
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyTableBody, [{
1158
+ type: Component,
1159
+ args: [{
1160
+ selector: 'admiralty-table-body',
1161
+ changeDetection: ChangeDetectionStrategy.OnPush,
1162
+ template: '<ng-content></ng-content>',
1163
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1164
+ inputs: [],
1165
+ }]
1166
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
1167
+ let AdmiraltyTableCell = class AdmiraltyTableCell {
1168
+ constructor(c, r, z) {
1169
+ this.z = z;
1170
+ c.detach();
1171
+ this.el = r.nativeElement;
1172
+ }
1173
+ };
1174
+ /** @nocollapse */ AdmiraltyTableCell.ɵfac = function AdmiraltyTableCell_Factory(t) { return new (t || AdmiraltyTableCell)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
1175
+ /** @nocollapse */ AdmiraltyTableCell.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyTableCell, selectors: [["admiralty-table-cell"]], ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyTableCell_Template(rf, ctx) { if (rf & 1) {
1176
+ i0.ɵɵprojectionDef();
1177
+ i0.ɵɵprojection(0);
1178
+ } }, encapsulation: 2, changeDetection: 0 });
1179
+ AdmiraltyTableCell = __decorate([
1180
+ ProxyCmp({})
1181
+ ], AdmiraltyTableCell);
1182
+ export { AdmiraltyTableCell };
1183
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyTableCell, [{
1184
+ type: Component,
1185
+ args: [{
1186
+ selector: 'admiralty-table-cell',
1187
+ changeDetection: ChangeDetectionStrategy.OnPush,
1188
+ template: '<ng-content></ng-content>',
1189
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1190
+ inputs: [],
1191
+ }]
1192
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
1193
+ let AdmiraltyTableHeader = class AdmiraltyTableHeader {
1194
+ constructor(c, r, z) {
1195
+ this.z = z;
1196
+ c.detach();
1197
+ this.el = r.nativeElement;
1198
+ }
1199
+ };
1200
+ /** @nocollapse */ AdmiraltyTableHeader.ɵfac = function AdmiraltyTableHeader_Factory(t) { return new (t || AdmiraltyTableHeader)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
1201
+ /** @nocollapse */ AdmiraltyTableHeader.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyTableHeader, selectors: [["admiralty-table-header"]], ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyTableHeader_Template(rf, ctx) { if (rf & 1) {
1202
+ i0.ɵɵprojectionDef();
1203
+ i0.ɵɵprojection(0);
1204
+ } }, encapsulation: 2, changeDetection: 0 });
1205
+ AdmiraltyTableHeader = __decorate([
1206
+ ProxyCmp({})
1207
+ ], AdmiraltyTableHeader);
1208
+ export { AdmiraltyTableHeader };
1209
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyTableHeader, [{
1210
+ type: Component,
1211
+ args: [{
1212
+ selector: 'admiralty-table-header',
1213
+ changeDetection: ChangeDetectionStrategy.OnPush,
1214
+ template: '<ng-content></ng-content>',
1215
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1216
+ inputs: [],
1217
+ }]
1218
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
1219
+ let AdmiraltyTableHeaderCell = class AdmiraltyTableHeaderCell {
1220
+ constructor(c, r, z) {
1221
+ this.z = z;
1222
+ c.detach();
1223
+ this.el = r.nativeElement;
1224
+ }
1225
+ };
1226
+ /** @nocollapse */ AdmiraltyTableHeaderCell.ɵfac = function AdmiraltyTableHeaderCell_Factory(t) { return new (t || AdmiraltyTableHeaderCell)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
1227
+ /** @nocollapse */ AdmiraltyTableHeaderCell.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyTableHeaderCell, selectors: [["admiralty-table-header-cell"]], ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyTableHeaderCell_Template(rf, ctx) { if (rf & 1) {
1228
+ i0.ɵɵprojectionDef();
1229
+ i0.ɵɵprojection(0);
1230
+ } }, encapsulation: 2, changeDetection: 0 });
1231
+ AdmiraltyTableHeaderCell = __decorate([
1232
+ ProxyCmp({})
1233
+ ], AdmiraltyTableHeaderCell);
1234
+ export { AdmiraltyTableHeaderCell };
1235
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyTableHeaderCell, [{
1236
+ type: Component,
1237
+ args: [{
1238
+ selector: 'admiralty-table-header-cell',
1239
+ changeDetection: ChangeDetectionStrategy.OnPush,
1240
+ template: '<ng-content></ng-content>',
1241
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1242
+ inputs: [],
1243
+ }]
1244
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
1245
+ let AdmiraltyTableRow = class AdmiraltyTableRow {
1246
+ constructor(c, r, z) {
1247
+ this.z = z;
1248
+ c.detach();
1249
+ this.el = r.nativeElement;
1250
+ }
1251
+ };
1252
+ /** @nocollapse */ AdmiraltyTableRow.ɵfac = function AdmiraltyTableRow_Factory(t) { return new (t || AdmiraltyTableRow)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
1253
+ /** @nocollapse */ AdmiraltyTableRow.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyTableRow, selectors: [["admiralty-table-row"]], ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyTableRow_Template(rf, ctx) { if (rf & 1) {
1254
+ i0.ɵɵprojectionDef();
1255
+ i0.ɵɵprojection(0);
1256
+ } }, encapsulation: 2, changeDetection: 0 });
1257
+ AdmiraltyTableRow = __decorate([
1258
+ ProxyCmp({})
1259
+ ], AdmiraltyTableRow);
1260
+ export { AdmiraltyTableRow };
1261
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyTableRow, [{
1262
+ type: Component,
1263
+ args: [{
1264
+ selector: 'admiralty-table-row',
1265
+ changeDetection: ChangeDetectionStrategy.OnPush,
1266
+ template: '<ng-content></ng-content>',
1267
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1268
+ inputs: [],
1269
+ }]
1270
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
1271
+ let AdmiraltyTextarea = class AdmiraltyTextarea {
1272
+ constructor(c, r, z) {
1273
+ this.z = z;
1274
+ c.detach();
1275
+ this.el = r.nativeElement;
1276
+ proxyOutputs(this, this.el, ['textareaBlur', 'admiraltyInput']);
1277
+ }
1278
+ };
1279
+ /** @nocollapse */ AdmiraltyTextarea.ɵfac = function AdmiraltyTextarea_Factory(t) { return new (t || AdmiraltyTextarea)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
1280
+ /** @nocollapse */ AdmiraltyTextarea.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyTextarea, selectors: [["admiralty-textarea"]], inputs: { disabled: "disabled", hint: "hint", invalid: "invalid", invalidMessage: "invalidMessage", label: "label", value: "value", width: "width" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyTextarea_Template(rf, ctx) { if (rf & 1) {
1281
+ i0.ɵɵprojectionDef();
1282
+ i0.ɵɵprojection(0);
1283
+ } }, encapsulation: 2, changeDetection: 0 });
1284
+ AdmiraltyTextarea = __decorate([
1285
+ ProxyCmp({
1286
+ inputs: ['disabled', 'hint', 'invalid', 'invalidMessage', 'label', 'value', 'width']
1287
+ })
1288
+ ], AdmiraltyTextarea);
1289
+ export { AdmiraltyTextarea };
1290
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyTextarea, [{
1291
+ type: Component,
1292
+ args: [{
1293
+ selector: 'admiralty-textarea',
1294
+ changeDetection: ChangeDetectionStrategy.OnPush,
1295
+ template: '<ng-content></ng-content>',
1296
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1297
+ inputs: ['disabled', 'hint', 'invalid', 'invalidMessage', 'label', 'value', 'width'],
1298
+ }]
1299
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
1300
+ let AdmiraltyTypeAhead = class AdmiraltyTypeAhead {
1301
+ constructor(c, r, z) {
1302
+ this.z = z;
1303
+ c.detach();
1304
+ this.el = r.nativeElement;
1305
+ proxyOutputs(this, this.el, ['selectionChanged', 'valueChanged']);
1306
+ }
1307
+ };
1308
+ /** @nocollapse */ AdmiraltyTypeAhead.ɵfac = function AdmiraltyTypeAhead_Factory(t) { return new (t || AdmiraltyTypeAhead)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
1309
+ /** @nocollapse */ AdmiraltyTypeAhead.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyTypeAhead, selectors: [["admiralty-type-ahead"]], inputs: { hint: "hint", label: "label", placeholder: "placeholder", resultsOnInitFocus: "resultsOnInitFocus", value: "value" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyTypeAhead_Template(rf, ctx) { if (rf & 1) {
1310
+ i0.ɵɵprojectionDef();
1311
+ i0.ɵɵprojection(0);
1312
+ } }, encapsulation: 2, changeDetection: 0 });
1313
+ AdmiraltyTypeAhead = __decorate([
1314
+ ProxyCmp({
1315
+ inputs: ['hint', 'label', 'placeholder', 'resultsOnInitFocus', 'value']
1316
+ })
1317
+ ], AdmiraltyTypeAhead);
1318
+ export { AdmiraltyTypeAhead };
1319
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyTypeAhead, [{
1320
+ type: Component,
1321
+ args: [{
1322
+ selector: 'admiralty-type-ahead',
1323
+ changeDetection: ChangeDetectionStrategy.OnPush,
1324
+ template: '<ng-content></ng-content>',
1325
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1326
+ inputs: ['hint', 'label', 'placeholder', 'resultsOnInitFocus', 'value'],
1327
+ }]
1328
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
1329
+ let AdmiraltyTypeAheadItem = class AdmiraltyTypeAheadItem {
1330
+ constructor(c, r, z) {
1331
+ this.z = z;
1332
+ c.detach();
1333
+ this.el = r.nativeElement;
1334
+ }
1335
+ };
1336
+ /** @nocollapse */ AdmiraltyTypeAheadItem.ɵfac = function AdmiraltyTypeAheadItem_Factory(t) { return new (t || AdmiraltyTypeAheadItem)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone)); };
1337
+ /** @nocollapse */ AdmiraltyTypeAheadItem.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: AdmiraltyTypeAheadItem, selectors: [["admiralty-type-ahead-item"]], inputs: { value: "value" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function AdmiraltyTypeAheadItem_Template(rf, ctx) { if (rf & 1) {
1338
+ i0.ɵɵprojectionDef();
1339
+ i0.ɵɵprojection(0);
1340
+ } }, encapsulation: 2, changeDetection: 0 });
1341
+ AdmiraltyTypeAheadItem = __decorate([
1342
+ ProxyCmp({
1343
+ inputs: ['value']
1344
+ })
1345
+ ], AdmiraltyTypeAheadItem);
1346
+ export { AdmiraltyTypeAheadItem };
1347
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AdmiraltyTypeAheadItem, [{
1348
+ type: Component,
1349
+ args: [{
1350
+ selector: 'admiralty-type-ahead-item',
1351
+ changeDetection: ChangeDetectionStrategy.OnPush,
1352
+ template: '<ng-content></ng-content>',
1353
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1354
+ inputs: ['value'],
1355
+ }]
1356
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, null); })();
1357
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvc3RlbmNpbC1nZW5lcmF0ZWQvY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7O0lBZTFELHFCQUFxQixTQUFyQixxQkFBcUI7SUFFaEMsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDMUIsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7Q0FDRixDQUFBOzZHQVBZLHFCQUFxQjt1R0FBckIscUJBQXFCOztRQUpyQixrQkFBeUI7O0FBSXpCLHFCQUFxQjtJQVZqQyxRQUFRLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxDQUFDO0tBQ25TLENBQUM7R0FRVyxxQkFBcUIsQ0FPakM7U0FQWSxxQkFBcUI7dUZBQXJCLHFCQUFxQjtjQVBqQyxTQUFTO2VB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LHNCQUFzQjt1RkFBdEIsc0JBQXNCO2NBUGxDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtnQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMsdUVBQXVFO2dCQUN2RSxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUM7YUFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuLyogYXV0by1nZW5lcmF0ZWQgYW5ndWxhciBkaXJlY3RpdmUgcHJveGllcyAqL1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFByb3h5Q21wLCBwcm94eU91dHB1dHMgfSBmcm9tICcuL2FuZ3VsYXItY29tcG9uZW50LWxpYi91dGlscyc7XG5cbmltcG9ydCB7IENvbXBvbmVudHMgfSBmcm9tICdAdWtoby9hZG1pcmFsdHktY29yZSc7XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Fzc2lzdGl2ZUhpbnQnLCAnYXV0b3NlbGVjdCcsICdjb25maXJtT25CbHVyJywgJ2Nzc05hbWVzcGFjZScsICdkaXNhYmxlZCcsICdkaXNwbGF5TWVudScsICdoaW50JywgJ2lucHV0Q2xhc3NlcycsICdpbnZhbGlkJywgJ2ludmFsaWRNZXNzYWdlJywgJ2xhYmVsJywgJ21lbnVBdHRyaWJ1dGVzJywgJ21lbnVDbGFzc2VzJywgJ21pbkxlbmd0aCcsICduYW1lJywgJ3BsYWNlaG9sZGVyJywgJ3JlcXVpcmVkJywgJ3Nob3dBbGxWYWx1ZXMnLCAnc2hvd05vT3B0aW9uc0ZvdW5kJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZG1pcmFsdHktYXV0b2NvbXBsZXRlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhc3Npc3RpdmVIaW50JywgJ2F1dG9zZWxlY3QnLCAnY29uZmlybU9uQmx1cicsICdjc3NOYW1lc3BhY2UnLCAnZGlzYWJsZWQnLCAnZGlzcGxheU1lbnUnLCAnaGludCcsICdpbnB1dENsYXNzZXMnLCAnaW52YWxpZCcsICdpbnZhbGlkTWVzc2FnZScsICdsYWJlbCcsICdtZW51QXR0cmlidXRlcycsICdtZW51Q2xhc3NlcycsICdtaW5MZW5ndGgnLCAnbmFtZScsICdwbGFjZWhvbGRlcicsICdyZXF1aXJlZCcsICdzaG93QWxsVmFsdWVzJywgJ3Nob3dOb09wdGlvbnNGb3VuZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBBZG1pcmFsdHlBdXRvY29tcGxldGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydhZG1pcmFsdHlDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEF1dG9Db21wbGV0ZUNoYW5nZUV2ZW50RGV0YWlsIGFzIElBZG1pcmFsdHlBdXRvY29tcGxldGVBdXRvQ29tcGxldGVDaGFuZ2VFdmVudERldGFpbCB9IGZyb20gJ0B1a2hvL2FkbWlyYWx0eS1jb3JlJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEFkbWlyYWx0eUF1dG9jb21wbGV0ZSBleHRlbmRzIENvbXBvbmVudHMuQWRtaXJhbHR5QXV0b2NvbXBsZXRlIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdmFsdWUgaGFzIGNoYW5nZWQuXG4gICAqL1xuICBhZG1pcmFsdHlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJQWRtaXJhbHR5QXV0b2NvbXBsZXRlQXV0b0NvbXBsZXRlQ2hhbmdlRXZlbnREZXRhaWw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FkbWlyYWx0eS1hdXRvY29tcGxldGUtb3B0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWyd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBBZG1pcmFsdHlBdXRvY29tcGxldGVPcHRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBZG1pcmFsdHlBdXRvY29tcGxldGVPcHRpb24gZXh0ZW5kcyBDb21wb25lbnRzLkFkbWlyYWx0eUF1dG9jb21wbGV0ZU9wdGlvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnaHJlZiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWRtaXJhbHR5LWJyZWFkY3J1bWInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdocmVmJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFkbWlyYWx0eUJyZWFkY3J1bWIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBZG1pcmFsdHlCcmVhZGNydW1iIGV4dGVuZHMgQ29tcG9uZW50cy5BZG1pcmFsdHlCcmVhZGNydW1iIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZG1pcmFsdHktYnJlYWRjcnVtYnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRtaXJhbHR5QnJlYWRjcnVtYnMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBZG1pcmFsdHlCcmVhZGNydW1icyBleHRlbmRzIENvbXBvbmVudHMuQWRtaXJhbHR5QnJlYWRjcnVtYnMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZm9ybScsICdpY29uJywgJ25hbWUnLCAndHlwZScsICd2YWx1ZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZG1pcmFsdHktYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdmb3JtJywgJ2ljb24nLCAnbmFtZScsICd0eXBlJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRtaXJhbHR5QnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQWRtaXJhbHR5QnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5BZG1pcmFsdHlCdXR0b24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGVhZGluZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWRtaXJhbHR5LWNhcmQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRtaXJhbHR5Q2FyZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEFkbWlyYWx0eUNhcmQgZXh0ZW5kcyBDb21wb25lbnRzLkFkbWlyYWx0eUNhcmQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2hlY2tib3hSaWdodCcsICdjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2xhYmVsSGlkZGVuJywgJ2xhYmVsVGV4dCcsICduYW1lJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZG1pcmFsdHktY2hlY2tib3gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoZWNrYm94UmlnaHQnLCAnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdsYWJlbEhpZGRlbicsICdsYWJlbFRleHQnLCAnbmFtZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBBZG1pcmFsdHlDaGVja2JveCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2FkbWlyYWx0eUNoYW5nZScsICdjaGVja2JveEZvY3VzJywgJ2NoZWNrYm94Qmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgQ2hlY2tib3hDaGFuZ2VFdmVudERldGFpbCBhcyBJQWRtaXJhbHR5Q2hlY2tib3hDaGVja2JveENoYW5nZUV2ZW50RGV0YWlsIH0gZnJvbSAnQHVraG8vYWRtaXJhbHR5LWNvcmUnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQWRtaXJhbHR5Q2hlY2tib3ggZXh0ZW5kcyBDb21wb25lbnRzLkFkbWlyYWx0eUNoZWNrYm94IHtcbiAgLyoqXG4gICAqIEV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIGZvcm0gY29udHJvbCBjaGFuZ2VzIHN0YXRlIEBldmVudCBhZG1pcmFsdHlDaGFuZ2VcbiAgICovXG4gIGFkbWlyYWx0eUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElBZG1pcmFsdHlDaGVja2JveENoZWNrYm94Q2hhbmdlRXZlbnREZXRhaWw+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIGZvcm0gY29udHJvbCBnYWlucyBmb2N1cyBAZXZlbnQgY2hlY2tib3hGb2N1c1xuICAgKi9cbiAgY2hlY2tib3hGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIGZvcm0gY29udHJvbCBsb3NlcyBmb2N1cyBAZXZlbnQgY2hlY2tib3hCbHVyXG4gICAqL1xuICBjaGVja2JveEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGlvblRleHQnLCAnY29sb3VyJywgJ2VuYWJsZUNhcmRFdmVudCcsICdoZWFkaW5nJywgJ2hlaWdodCcsICdocmVmJywgJ2xpbmtUZXh0JywgJ3N1cHByZXNzUmVkaXJlY3QnLCAnd2lkdGgnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FkbWlyYWx0eS1jb2xvdXItYmxvY2snLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGlvblRleHQnLCAnY29sb3VyJywgJ2VuYWJsZUNhcmRFdmVudCcsICdoZWFkaW5nJywgJ2hlaWdodCcsICdocmVmJywgJ2xpbmtUZXh0JywgJ3N1cHByZXNzUmVkaXJlY3QnLCAnd2lkdGgnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRtaXJhbHR5Q29sb3VyQmxvY2sge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydjb2xvdXJCbG9ja0xpbmtDbGlja2VkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEFkbWlyYWx0eUNvbG91ckJsb2NrIGV4dGVuZHMgQ29tcG9uZW50cy5BZG1pcmFsdHlDb2xvdXJCbG9jayB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVkIHdoZW4gdGhpcyBDb2xvdXIgQmxvY2sgbGluayBpcyBjbGlja2VkXG4gICAqL1xuICBjb2xvdXJCbG9ja0xpbmtDbGlja2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAndHlwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWRtaXJhbHR5LWRpYWxvZ3VlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkaW5nJywgJ3R5cGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRtaXJhbHR5RGlhbG9ndWUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBZG1pcmFsdHlEaWFsb2d1ZSBleHRlbmRzIENvbXBvbmVudHMuQWRtaXJhbHR5RGlhbG9ndWUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWxpZ25IZWFkaW5nUmlnaHQnLCAnZXhwYW5kZWQnLCAnaGVhZGluZycsICdoaWRlQm9yZGVyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZG1pcmFsdHktZXhwYW5zaW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbGlnbkhlYWRpbmdSaWdodCcsICdleHBhbmRlZCcsICdoZWFkaW5nJywgJ2hpZGVCb3JkZXInXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRtaXJhbHR5RXhwYW5zaW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndG9nZ2xlZCddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBZG1pcmFsdHlFeHBhbnNpb24gZXh0ZW5kcyBDb21wb25lbnRzLkFkbWlyYWx0eUV4cGFuc2lvbiB7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdGhhdCBpcyBkaXNwYXRjaGVkIHdoZW4gdGhlIGV4cGFuZGVkIHN0YXR1cyBpcyB0b2dnbGVkLlxuICAgKi9cbiAgdG9nZ2xlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaW52YWxpZCcsICdpbnZhbGlkTWVzc2FnZScsICdsYWJlbCcsICdtdWx0aXBsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWRtaXJhbHR5LWZpbGUtaW5wdXQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ludmFsaWQnLCAnaW52YWxpZE1lc3NhZ2UnLCAnbGFiZWwnLCAnbXVsdGlwbGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRtaXJhbHR5RmlsZUlucHV0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnZmlsZUlucHV0Q2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBGaWxlSW5wdXRDaGFuZ2VFdmVudERldGFpbCBhcyBJQWRtaXJhbHR5RmlsZUlucHV0RmlsZUlucHV0Q2hhbmdlRXZlbnREZXRhaWwgfSBmcm9tICdAdWtoby9hZG1pcmFsdHktY29yZSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBZG1pcmFsdHlGaWxlSW5wdXQgZXh0ZW5kcyBDb21wb25lbnRzLkFkbWlyYWx0eUZpbGVJbnB1dCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGFkZGVkIGZpbGUocykgY2hhbmdlc1xuICAgKi9cbiAgZmlsZUlucHV0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUFkbWlyYWx0eUZpbGVJbnB1dEZpbGVJbnB1dENoYW5nZUV2ZW50RGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ZpbHRlclRpdGxlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZG1pcmFsdHktZmlsdGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydmaWx0ZXJUaXRsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBBZG1pcmFsdHlGaWx0ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydmaWx0ZXJDbGVhcmVkJywgJ2ZpbHRlckFwcGxpZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQWRtaXJhbHR5RmlsdGVyIGV4dGVuZHMgQ29tcG9uZW50cy5BZG1pcmFsdHlGaWx0ZXIge1xuICAvKipcbiAgICogRXZlbnQgdGhhdCBpcyBlbWl0dGVkIHdoZW4gdGhlIGZpbHRlcnMgYXJlIGNsZWFyZWRcbiAgICovXG4gIGZpbHRlckNsZWFyZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG4gIC8qKlxuICAgKiBFdmVudCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiB0aGUgZmlsdGVycyBhcmUgYXBwbGllZFxuICAgKi9cbiAgZmlsdGVyQXBwbGllZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZ3JvdXBUaXRsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWRtaXJhbHR5LWZpbHRlci1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZ3JvdXBUaXRsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBBZG1pcmFsdHlGaWx0ZXJHcm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEFkbWlyYWx0eUZpbHRlckdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5BZG1pcmFsdHlGaWx0ZXJHcm91cCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpbWFnZUFsdCcsICdpbWFnZUxpbmsnLCAnaW1hZ2VTcmMnLCAndGV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWRtaXJhbHR5LWZvb3RlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaW1hZ2VBbHQnLCAnaW1hZ2VMaW5rJywgJ2ltYWdlU3JjJywgJ3RleHQnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRtaXJhbHR5Rm9vdGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQWRtaXJhbHR5Rm9vdGVyIGV4dGVuZHMgQ29tcG9uZW50cy5BZG1pcmFsdHlGb290ZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGVhZGVyVGl0bGUnLCAnaGVhZGVyVGl0bGVVcmwnLCAnbG9nb0FsdFRleHQnLCAnbG9nb0ltZ1VybCcsICdsb2dvTGlua1VybCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWRtaXJhbHR5LWhlYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVhZGVyVGl0bGUnLCAnaGVhZGVyVGl0bGVVcmwnLCAnbG9nb0FsdFRleHQnLCAnbG9nb0ltZ1VybCcsICdsb2dvTGlua1VybCddLFxufSlcbmV4cG9ydCBjbGFzcyBBZG1pcmFsdHlIZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWyd0aXRsZWRDbGlja2VkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEFkbWlyYWx0eUhlYWRlciBleHRlbmRzIENvbXBvbmVudHMuQWRtaXJhbHR5SGVhZGVyIHtcbiAgLyoqXG4gICAqIEVtaXRzIGFuIGV2ZW50IHRoYXQgY2FuIGJlIGxpc3RlbmVkIHRvIHdoZW4gdGhlIHRpdGxlIGluIHRoZSBoZWFkZXIgaXMgY2xpY2tlZFxuICAgKi9cbiAgdGl0bGVkQ2xpY2tlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnbWVudVRpdGxlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZG1pcmFsdHktaGVhZGVyLW1lbnUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ21lbnVUaXRsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBBZG1pcmFsdHlIZWFkZXJNZW51SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21lbnVJdGVtQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQWRtaXJhbHR5SGVhZGVyTWVudUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLkFkbWlyYWx0eUhlYWRlck1lbnVJdGVtIHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0aGF0IGlzIGZpcmVkIHdoZW4gYSB1c2VyIGNsaWNrcyBvbiB0aGUgbWVudVxuICAgKi9cbiAgbWVudUl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2hyZWYnLCAnbWVudVRpdGxlJywgJ3N1cHByZXNzUmVkaXJlY3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FkbWlyYWx0eS1oZWFkZXItbWVudS1saW5rJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnaHJlZicsICdtZW51VGl0bGUnLCAnc3VwcHJlc3NSZWRpcmVjdCddLFxufSlcbmV4cG9ydCBjbGFzcyBBZG1pcmFsdHlIZWFkZXJNZW51TGluayB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ21lbnVJdGVtQ2xpY2snXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQWRtaXJhbHR5SGVhZGVyTWVudUxpbmsgZXh0ZW5kcyBDb21wb25lbnRzLkFkbWlyYWx0eUhlYWRlck1lbnVMaW5rIHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0aGF0IGlzIGZpcmVkIHdoZW4gYSB1c2VyIGNsaWNrcyBvbiB0aGUgbWVudS5cbiAgICovXG4gIG1lbnVJdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2lzU2lnbmVkSW4nLCAnc2lnbkluT25seScsICdzaWduZWRJblRleHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FkbWlyYWx0eS1oZWFkZXItcHJvZmlsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaXNTaWduZWRJbicsICdzaWduSW5Pbmx5JywgJ3NpZ25lZEluVGV4dCddLFxufSlcbmV4cG9ydCBjbGFzcyBBZG1pcmFsdHlIZWFkZXJQcm9maWxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2lnbkluQ2xpY2tlZCcsICd5b3VyQWNjb3VudENsaWNrZWQnLCAnc2lnbk91dENsaWNrZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQWRtaXJhbHR5SGVhZGVyUHJvZmlsZSBleHRlbmRzIENvbXBvbmVudHMuQWRtaXJhbHR5SGVhZGVyUHJvZmlsZSB7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgdGhhdCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIGNsaWNrcyBvblxudGhlIHNpZ24gaW4gYnV0dG9uXG4gICAqL1xuICBzaWduSW5DbGlja2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBjbGlja3Mgb24gdGhlXG4nWW91ciBhY2NvdW50JyBidXR0b25cbiAgICovXG4gIHlvdXJBY2NvdW50Q2xpY2tlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PjtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0aGF0IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgY2xpY2tzIG9uIHRoZVxuJ3NpZ24gb3V0JyBidXR0b25cbiAgICovXG4gIHNpZ25PdXRDbGlja2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydtZW51VGl0bGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FkbWlyYWx0eS1oZWFkZXItc3ViLW1lbnUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbWVudVRpdGxlJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFkbWlyYWx0eUhlYWRlclN1Yk1lbnVJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc3ViTWVudUl0ZW1DbGljayddKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBZG1pcmFsdHlIZWFkZXJTdWJNZW51SXRlbSBleHRlbmRzIENvbXBvbmVudHMuQWRtaXJhbHR5SGVhZGVyU3ViTWVudUl0ZW0ge1xuICAvKipcbiAgICogVGhlIGV2ZW50IHRoYXQgaXMgZmlyZWQgd2hlbiBhIHVzZXIgY2xpY2tzIG9uIHRoZSBtZW51LlxuRXZlbnQgY29udGFpbnMgdGhlIG1lbnUgaXRlbSB0ZXh0LlxuICAgKi9cbiAgc3ViTWVudUl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWRtaXJhbHR5LWhpbnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFkbWlyYWx0eUhpbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBZG1pcmFsdHlIaW50IGV4dGVuZHMgQ29tcG9uZW50cy5BZG1pcmFsdHlIaW50IHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZG1pcmFsdHktaHInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRtaXJhbHR5SHIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBZG1pcmFsdHlIciBleHRlbmRzIENvbXBvbmVudHMuQWRtaXJhbHR5SHIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaWNvbk5hbWUnLCAnaWNvblByZWZpeCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWRtaXJhbHR5LWljb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ljb25OYW1lJywgJ2ljb25QcmVmaXgnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRtaXJhbHR5SWNvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEFkbWlyYWx0eUljb24gZXh0ZW5kcyBDb21wb25lbnRzLkFkbWlyYWx0eUljb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b2NvbXBsZXRlJywgJ2Rpc2FibGVkJywgJ2hpbnQnLCAnaW52YWxpZCcsICdpbnZhbGlkTWVzc2FnZScsICdsYWJlbCcsICduYW1lJywgJ3BsYWNlaG9sZGVyJywgJ3JlcXVpcmVkJywgJ3R5cGUnLCAndmFsdWUnLCAnd2lkdGgnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FkbWlyYWx0eS1pbnB1dCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b2NvbXBsZXRlJywgJ2Rpc2FibGVkJywgJ2hpbnQnLCAnaW52YWxpZCcsICdpbnZhbGlkTWVzc2FnZScsICdsYWJlbCcsICduYW1lJywgJ3BsYWNlaG9sZGVyJywgJ3JlcXVpcmVkJywgJ3R5cGUnLCAndmFsdWUnLCAnd2lkdGgnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRtaXJhbHR5SW5wdXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydhZG1pcmFsdHlJbnB1dCcsICdhZG1pcmFsdHlGb2N1cycsICdhZG1pcmFsdHlCbHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBJbnB1dENoYW5nZUV2ZW50RGV0YWlsIGFzIElBZG1pcmFsdHlJbnB1dElucHV0Q2hhbmdlRXZlbnREZXRhaWwgfSBmcm9tICdAdWtoby9hZG1pcmFsdHktY29yZSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBZG1pcmFsdHlJbnB1dCBleHRlbmRzIENvbXBvbmVudHMuQWRtaXJhbHR5SW5wdXQge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB2YWx1ZSBoYXMgY2hhbmdlZC5cbiAgICovXG4gIGFkbWlyYWx0eUlucHV0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUFkbWlyYWx0eUlucHV0SW5wdXRDaGFuZ2VFdmVudERldGFpbD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBnYWlucyBmb2N1cy5cbiAgICovXG4gIGFkbWlyYWx0eUZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBpbnB1dCBsb3NlcyBmb2N1cy5cbiAgICovXG4gIGFkbWlyYWx0eUJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZG1pcmFsdHktaW5wdXQtaW52YWxpZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBZG1pcmFsdHlJbnB1dEludmFsaWQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBZG1pcmFsdHlJbnB1dEludmFsaWQgZXh0ZW5kcyBDb21wb25lbnRzLkFkbWlyYWx0eUlucHV0SW52YWxpZCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdmb3InXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FkbWlyYWx0eS1sYWJlbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZm9yJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFkbWlyYWx0eUxhYmVsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQWRtaXJhbHR5TGFiZWwgZXh0ZW5kcyBDb21wb25lbnRzLkFkbWlyYWx0eUxhYmVsIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hyZWYnLCAnbmV3VGFiJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZG1pcmFsdHktbGluaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaHJlZicsICduZXdUYWInXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRtaXJhbHR5TGluayB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEFkbWlyYWx0eUxpbmsgZXh0ZW5kcyBDb21wb25lbnRzLkFkbWlyYWx0eUxpbmsge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnaGVhZGluZycsICdsYWJlbCcsICdzaG93J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZG1pcmFsdHktbW9kYWwtZGlhbG9nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdoZWFkaW5nJywgJ2xhYmVsJywgJ3Nob3cnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRtaXJhbHR5TW9kYWxEaWFsb2cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBZG1pcmFsdHlNb2RhbERpYWxvZyBleHRlbmRzIENvbXBvbmVudHMuQWRtaXJhbHR5TW9kYWxEaWFsb2cge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY3VycmVudFBhZ2UnLCAnbGFiZWwnLCAncGFnZXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FkbWlyYWx0eS1wYWdpbmF0b3InLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2N1cnJlbnRQYWdlJywgJ2xhYmVsJywgJ3BhZ2VzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFkbWlyYWx0eVBhZ2luYXRvciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3BhZ2VDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQWRtaXJhbHR5UGFnaW5hdG9yIGV4dGVuZHMgQ29tcG9uZW50cy5BZG1pcmFsdHlQYWdpbmF0b3Ige1xuICAvKipcbiAgICogRGlzcGF0Y2hlZCB3aGVuIHRoZSBwcmV2aW91cyBvciBuZXh0IGJ1dHRvbiBpcyBwcmVzc2VkLiBUaGUgZXZlbnQgZGV0YWlsIGNvbnRhaW5zXG50aGUgcmVxdWVzdGVkIHBhZ2UgbnVtYmVyLlxuICAgKi9cbiAgcGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG51bWJlcj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsaW5rJywgJ3BoYXNlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZG1pcmFsdHktcGhhc2UtYmFubmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsaW5rJywgJ3BoYXNlJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFkbWlyYWx0eVBoYXNlQmFubmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQWRtaXJhbHR5UGhhc2VCYW5uZXIgZXh0ZW5kcyBDb21wb25lbnRzLkFkbWlyYWx0eVBoYXNlQmFubmVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Vycm9yJywgJ2xhYmVsJywgJ3Byb2dyZXNzaW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZG1pcmFsdHktcHJvZ3Jlc3MtYmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydlcnJvcicsICdsYWJlbCcsICdwcm9ncmVzc2lvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBBZG1pcmFsdHlQcm9ncmVzc0JhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEFkbWlyYWx0eVByb2dyZXNzQmFyIGV4dGVuZHMgQ29tcG9uZW50cy5BZG1pcmFsdHlQcm9ncmVzc0JhciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2ludmFsaWQnLCAnbmFtZScsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWRtaXJhbHR5LXJhZGlvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2ludmFsaWQnLCAnbmFtZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBBZG1pcmFsdHlSYWRpbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2FkbWlyYWx0eUZvY3VzJywgJ2FkbWlyYWx0eUJsdXInLCAnYWRtaXJhbHR5Q2hhbmdlJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEFkbWlyYWx0eVJhZGlvIGV4dGVuZHMgQ29tcG9uZW50cy5BZG1pcmFsdHlSYWRpbyB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHJhZGlvIGJ1dHRvbiBnYWlucyBmb2N1cy5cbiAgICovXG4gIGFkbWlyYWx0eUZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSByYWRpbyBidXR0b24gbG9zZXMgZm9jdXMuXG4gICAqL1xuICBhZG1pcmFsdHlCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSByYWRpbyBpcyBzZWxlY3RlZFxuICAgKi9cbiAgYWRtaXJhbHR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdkaXNwbGF5VmVydGljYWwnLCAnaGludCcsICdpbnZhbGlkJywgJ2ludmFsaWRNZXNzYWdlJywgJ2xhYmVsJywgJ25hbWUnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FkbWlyYWx0eS1yYWRpby1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZGlzcGxheVZlcnRpY2FsJywgJ2hpbnQnLCAnaW52YWxpZCcsICdpbnZhbGlkTWVzc2FnZScsICdsYWJlbCcsICduYW1lJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFkbWlyYWx0eVJhZGlvR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydhZG1pcmFsdHlDaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFJhZGlvR3JvdXBDaGFuZ2VFdmVudERldGFpbCBhcyBJQWRtaXJhbHR5UmFkaW9Hcm91cFJhZGlvR3JvdXBDaGFuZ2VFdmVudERldGFpbCB9IGZyb20gJ0B1a2hvL2FkbWlyYWx0eS1jb3JlJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEFkbWlyYWx0eVJhZGlvR3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLkFkbWlyYWx0eVJhZGlvR3JvdXAge1xuICAvKipcbiAgICogRXZlbnQgZmlyZWQgd2hlbiB0aGUgY2hlY2tlZCByYWRpbyBidXR0b24gY2hhbmdlc1xuICAgKi9cbiAgYWRtaXJhbHR5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SUFkbWlyYWx0eVJhZGlvR3JvdXBSYWRpb0dyb3VwQ2hhbmdlRXZlbnREZXRhaWw+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGVhZGluZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWRtaXJhbHR5LXJlYWQtbW9yZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVhZGluZyddLFxufSlcbmV4cG9ydCBjbGFzcyBBZG1pcmFsdHlSZWFkTW9yZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2FkbWlyYWx0eVRvZ2dsZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQWRtaXJhbHR5UmVhZE1vcmUgZXh0ZW5kcyBDb21wb25lbnRzLkFkbWlyYWx0eVJlYWRNb3JlIHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCB0aGF0IGlzIGRpc3BhdGNoZWQgd2hlbiB0aGUgZXhwYW5kZWQgc3RhdHVzIGlzIHRvZ2dsZWQuXG4gICAqL1xuICBhZG1pcmFsdHlUb2dnbGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdoaW50JywgJ2ludmFsaWQnLCAnaW52YWxpZE1lc3NhZ2UnLCAnbGFiZWwnLCAndmFsdWUnLCAnd2lkdGgnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FkbWlyYWx0eS1zZWxlY3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hpbnQnLCAnaW52YWxpZCcsICdpbnZhbGlkTWVzc2FnZScsICdsYWJlbCcsICd2YWx1ZScsICd3aWR0aCddLFxufSlcbmV4cG9ydCBjbGFzcyBBZG1pcmFsdHlTZWxlY3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydhZG1pcmFsdHlDaGFuZ2UnLCAnYWRtaXJhbHR5Qmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU2VsZWN0Q2hhbmdlRXZlbnREZXRhaWwgYXMgSUFkbWlyYWx0eVNlbGVjdFNlbGVjdENoYW5nZUV2ZW50RGV0YWlsIH0gZnJvbSAnQHVraG8vYWRtaXJhbHR5LWNvcmUnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQWRtaXJhbHR5U2VsZWN0IGV4dGVuZHMgQ29tcG9uZW50cy5BZG1pcmFsdHlTZWxlY3Qge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB2YWx1ZSBoYXMgY2hhbmdlZC5cbiAgICovXG4gIGFkbWlyYWx0eUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElBZG1pcmFsdHlTZWxlY3RTZWxlY3RDaGFuZ2VFdmVudERldGFpbD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb21wb25lbnQgbG9zZXMgZm9jdXMuXG4gICAqL1xuICBhZG1pcmFsdHlCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWRtaXJhbHR5LXNpZGUtbmF2JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYWJlbCddLFxufSlcbmV4cG9ydCBjbGFzcyBBZG1pcmFsdHlTaWRlTmF2IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQWRtaXJhbHR5U2lkZU5hdiBleHRlbmRzIENvbXBvbmVudHMuQWRtaXJhbHR5U2lkZU5hdiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWFkaW5nVGl0bGUnLCAnbmF2QWN0aXZlJywgJ3NpZGVOYXZJdGVtSWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FkbWlyYWx0eS1zaWRlLW5hdi1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkaW5nVGl0bGUnLCAnbmF2QWN0aXZlJywgJ3NpZGVOYXZJdGVtSWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRtaXJhbHR5U2lkZU5hdkl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaWRlTmF2SXRlbVNlbGVjdGVkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEFkbWlyYWx0eVNpZGVOYXZJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5BZG1pcmFsdHlTaWRlTmF2SXRlbSB7XG4gIC8qKlxuICAgKiBBbiBldmVudCBlbWl0dGVkIHdoZW4gdGhpcyBTaWRlIE5hdiBpdGVtIGlzIHNlbGVjdGVkIGNvbnRhaW5pbmcgdGhlIHNpZGVOYXZJdGVtSWRcbiAgICovXG4gIHNpZGVOYXZJdGVtU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmc+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaHJlZiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWRtaXJhbHR5LXNraXAtbGluaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaHJlZiddLFxufSlcbmV4cG9ydCBjbGFzcyBBZG1pcmFsdHlTa2lwTGluayB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEFkbWlyYWx0eVNraXBMaW5rIGV4dGVuZHMgQ29tcG9uZW50cy5BZG1pcmFsdHlTa2lwTGluayB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCcsICd0YWJDb250ZW50SWQnLCAndGFiTGFiZWxJZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWRtaXJhbHR5LXRhYicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGFiZWwnLCAndGFiQ29udGVudElkJywgJ3RhYkxhYmVsSWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRtaXJhbHR5VGFiIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQWRtaXJhbHR5VGFiIGV4dGVuZHMgQ29tcG9uZW50cy5BZG1pcmFsdHlUYWIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc2VsZWN0ZWRJbmRleCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWRtaXJhbHR5LXRhYi1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2VsZWN0ZWRJbmRleCddLFxufSlcbmV4cG9ydCBjbGFzcyBBZG1pcmFsdHlUYWJHcm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ2FkbWlyYWx0eVRhYlNlbGVjdGVkJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEFkbWlyYWx0eVRhYkdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5BZG1pcmFsdHlUYWJHcm91cCB7XG5cbiAgYWRtaXJhbHR5VGFiU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxudW1iZXI+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2FwdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWRtaXJhbHR5LXRhYmxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYXB0aW9uJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFkbWlyYWx0eVRhYmxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQWRtaXJhbHR5VGFibGUgZXh0ZW5kcyBDb21wb25lbnRzLkFkbWlyYWx0eVRhYmxlIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZG1pcmFsdHktdGFibGUtYm9keScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBZG1pcmFsdHlUYWJsZUJvZHkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBZG1pcmFsdHlUYWJsZUJvZHkgZXh0ZW5kcyBDb21wb25lbnRzLkFkbWlyYWx0eVRhYmxlQm9keSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWRtaXJhbHR5LXRhYmxlLWNlbGwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRtaXJhbHR5VGFibGVDZWxsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQWRtaXJhbHR5VGFibGVDZWxsIGV4dGVuZHMgQ29tcG9uZW50cy5BZG1pcmFsdHlUYWJsZUNlbGwge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FkbWlyYWx0eS10YWJsZS1oZWFkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRtaXJhbHR5VGFibGVIZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBZG1pcmFsdHlUYWJsZUhlYWRlciBleHRlbmRzIENvbXBvbmVudHMuQWRtaXJhbHR5VGFibGVIZWFkZXIge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FkbWlyYWx0eS10YWJsZS1oZWFkZXItY2VsbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBZG1pcmFsdHlUYWJsZUhlYWRlckNlbGwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBZG1pcmFsdHlUYWJsZUhlYWRlckNlbGwgZXh0ZW5kcyBDb21wb25lbnRzLkFkbWlyYWx0eVRhYmxlSGVhZGVyQ2VsbCB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWRtaXJhbHR5LXRhYmxlLXJvdycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBZG1pcmFsdHlUYWJsZVJvdyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEFkbWlyYWx0eVRhYmxlUm93IGV4dGVuZHMgQ29tcG9uZW50cy5BZG1pcmFsdHlUYWJsZVJvdyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdoaW50JywgJ2ludmFsaWQnLCAnaW52YWxpZE1lc3NhZ2UnLCAnbGFiZWwnLCAndmFsdWUnLCAnd2lkdGgnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FkbWlyYWx0eS10ZXh0YXJlYScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaGludCcsICdpbnZhbGlkJywgJ2ludmFsaWRNZXNzYWdlJywgJ2xhYmVsJywgJ3ZhbHVlJywgJ3dpZHRoJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFkbWlyYWx0eVRleHRhcmVhIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsndGV4dGFyZWFCbHVyJywgJ2FkbWlyYWx0eUlucHV0J10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBUZXh0QXJlYUNoYW5nZUV2ZW50RGV0YWlsIGFzIElBZG1pcmFsdHlUZXh0YXJlYVRleHRBcmVhQ2hhbmdlRXZlbnREZXRhaWwgfSBmcm9tICdAdWtoby9hZG1pcmFsdHktY29yZSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBBZG1pcmFsdHlUZXh0YXJlYSBleHRlbmRzIENvbXBvbmVudHMuQWRtaXJhbHR5VGV4dGFyZWEge1xuICAvKipcbiAgICogRXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgZm9ybSBjb250cm9sIGxvc2VzIGZvY3VzIEBldmVudCB0ZXh0YXJlYUJsdXJcbiAgICovXG4gIHRleHRhcmVhQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogRXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgZm9ybSBjb250cm9sIGNoYW5nZXMgQGV2ZW50IGFkbWlyYWx0eUNoYW5nZVxuICAgKi9cbiAgYWRtaXJhbHR5SW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJQWRtaXJhbHR5VGV4dGFyZWFUZXh0QXJlYUNoYW5nZUV2ZW50RGV0YWlsPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hpbnQnLCAnbGFiZWwnLCAncGxhY2Vob2xkZXInLCAncmVzdWx0c09uSW5pdEZvY3VzJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZG1pcmFsdHktdHlwZS1haGVhZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGludCcsICdsYWJlbCcsICdwbGFjZWhvbGRlcicsICdyZXN1bHRzT25Jbml0Rm9jdXMnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRtaXJhbHR5VHlwZUFoZWFkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2VsZWN0aW9uQ2hhbmdlZCcsICd2YWx1ZUNoYW5nZWQnXSk7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQWRtaXJhbHR5VHlwZUFoZWFkIGV4dGVuZHMgQ29tcG9uZW50cy5BZG1pcmFsdHlUeXBlQWhlYWQge1xuICAvKipcbiAgICogT3B0aW9uYWwgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGV4ZWN1dGVkIHdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhbiBpdGVtIGZyb20gdGhlIHR5cGVhaGVhZFxuICAgKi9cbiAgc2VsZWN0aW9uQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHN0cmluZz4+O1xuICAvKipcbiAgICogRXZlbnQgdGhhdCBpcyBmaXJlZCB3aGVuZXZlciB0aGUgdmFsdWUgb2YgdGhlIHR5cGVhaGVhZCBjaGFuZ2VzXG5lLmcuIHNlbGVjdGlvbiBmcm9tIHRoZSBkcm9wZG93biBvciBtYW51YWxseSB0eXBlZCBlbnRyeVxuICAgKi9cbiAgdmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8c3RyaW5nPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhZG1pcmFsdHktdHlwZS1haGVhZC1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWyd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBBZG1pcmFsdHlUeXBlQWhlYWRJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQWRtaXJhbHR5VHlwZUFoZWFkSXRlbSBleHRlbmRzIENvbXBvbmVudHMuQWRtaXJhbHR5VHlwZUFoZWFkSXRlbSB7fVxuXG5cbiJdfQ==