@agnos-ui/angular-bootstrap 0.4.4 → 0.5.0-next.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.
- package/README.md +2 -2
- package/agnos-ui-angular.module.d.ts +2 -1
- package/components/accordion/accordion.component.d.ts +40 -18
- package/components/accordion/accordion.gen.d.ts +37 -9
- package/components/alert/alert.component.d.ts +29 -17
- package/components/alert/alert.gen.d.ts +21 -2
- package/components/collapse/collapse.component.d.ts +79 -0
- package/components/collapse/collapse.gen.d.ts +146 -0
- package/components/collapse/index.d.ts +2 -0
- package/components/modal/modal.component.d.ts +13 -19
- package/components/modal/modal.gen.d.ts +35 -18
- package/components/modal/modal.service.d.ts +5 -1
- package/components/pagination/pagination.component.d.ts +20 -15
- package/components/pagination/pagination.gen.d.ts +49 -29
- package/components/progressbar/progressbar.component.d.ts +32 -16
- package/components/progressbar/progressbar.gen.d.ts +21 -4
- package/components/rating/rating.component.d.ts +11 -4
- package/components/rating/rating.gen.d.ts +25 -17
- package/components/select/select.component.d.ts +24 -4
- package/components/select/select.gen.d.ts +41 -25
- package/components/slider/slider.component.d.ts +32 -23
- package/components/slider/slider.gen.d.ts +54 -33
- package/components/toast/toast.component.d.ts +29 -17
- package/components/toast/toast.gen.d.ts +22 -2
- package/config.d.ts +16 -5
- package/config.gen.d.ts +5 -0
- package/esm2022/agnos-ui-angular.module.mjs +12 -5
- package/esm2022/components/accordion/accordion.component.mjs +165 -134
- package/esm2022/components/accordion/accordion.gen.mjs +1 -1
- package/esm2022/components/alert/alert.component.mjs +90 -65
- package/esm2022/components/alert/alert.gen.mjs +1 -1
- package/esm2022/components/collapse/collapse.component.mjs +89 -0
- package/esm2022/components/collapse/collapse.gen.mjs +15 -0
- package/esm2022/components/collapse/index.mjs +3 -0
- package/esm2022/components/modal/modal.component.mjs +111 -99
- package/esm2022/components/modal/modal.gen.mjs +1 -1
- package/esm2022/components/modal/modal.service.mjs +7 -5
- package/esm2022/components/pagination/pagination.component.mjs +138 -123
- package/esm2022/components/pagination/pagination.gen.mjs +1 -1
- package/esm2022/components/progressbar/progressbar.component.mjs +94 -55
- package/esm2022/components/progressbar/progressbar.gen.mjs +1 -1
- package/esm2022/components/rating/rating.component.mjs +41 -35
- package/esm2022/components/rating/rating.gen.mjs +1 -1
- package/esm2022/components/select/select.component.mjs +103 -118
- package/esm2022/components/select/select.gen.mjs +1 -1
- package/esm2022/components/slider/slider.component.mjs +126 -111
- package/esm2022/components/slider/slider.gen.mjs +1 -1
- package/esm2022/components/toast/toast.component.mjs +106 -81
- package/esm2022/components/toast/toast.gen.mjs +1 -1
- package/esm2022/config.gen.mjs +1 -1
- package/esm2022/config.mjs +17 -1
- package/esm2022/index.mjs +2 -1
- package/fesm2022/agnos-ui-angular-bootstrap.mjs +1085 -806
- package/fesm2022/agnos-ui-angular-bootstrap.mjs.map +1 -1
- package/index.d.ts +8 -7
- package/package.json +9 -8
|
@@ -5,11 +5,10 @@ import { createPagination } from './pagination.gen';
|
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
const _c0 = ["pages"];
|
|
7
7
|
const _c1 = ["structure"];
|
|
8
|
-
const _c2 = (a0, a1) => ({ state: a0,
|
|
8
|
+
const _c2 = (a0, a1, a2) => ({ state: a0, api: a1, directives: a2 });
|
|
9
9
|
const _c3 = a0 => ({ page: a0 });
|
|
10
10
|
const _c4 = (a0, a1) => [a0, a1];
|
|
11
|
-
const _c5 = (a0, a1, a2) => ({ state: a0,
|
|
12
|
-
const _c6 = (a0, a1) => ({ widget: a0, state: a1 });
|
|
11
|
+
const _c5 = (a0, a1, a2, a3) => ({ state: a0, api: a1, directives: a2, displayedPage: a3 });
|
|
13
12
|
function PaginationDefaultSlotsComponent_ng_template_0_For_1_Conditional_1_ng_template_1_Template(rf, ctx) { }
|
|
14
13
|
function PaginationDefaultSlotsComponent_ng_template_0_For_1_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
15
14
|
i0.ɵɵelementStart(0, "div", 7);
|
|
@@ -21,11 +20,12 @@ function PaginationDefaultSlotsComponent_ng_template_0_For_1_Conditional_1_Templ
|
|
|
21
20
|
} if (rf & 2) {
|
|
22
21
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
23
22
|
const state_r2 = ctx_r0.state;
|
|
24
|
-
const
|
|
23
|
+
const api_r3 = ctx_r0.api;
|
|
24
|
+
const directives_r4 = ctx_r0.directives;
|
|
25
25
|
i0.ɵɵadvance();
|
|
26
|
-
i0.ɵɵproperty("auSlot", state_r2.ellipsisLabel)("auSlotProps", i0.ɵɵ
|
|
26
|
+
i0.ɵɵproperty("auSlot", state_r2.ellipsisLabel())("auSlotProps", i0.ɵɵpureFunction3(3, _c2, state_r2, api_r3, directives_r4));
|
|
27
27
|
i0.ɵɵadvance(2);
|
|
28
|
-
i0.ɵɵtextInterpolate(state_r2.ariaEllipsisLabel);
|
|
28
|
+
i0.ɵɵtextInterpolate(state_r2.ariaEllipsisLabel());
|
|
29
29
|
} }
|
|
30
30
|
function PaginationDefaultSlotsComponent_ng_template_0_For_1_Conditional_2_ng_template_1_Template(rf, ctx) { }
|
|
31
31
|
function PaginationDefaultSlotsComponent_ng_template_0_For_1_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -35,39 +35,40 @@ function PaginationDefaultSlotsComponent_ng_template_0_For_1_Conditional_2_Condi
|
|
|
35
35
|
} if (rf & 2) {
|
|
36
36
|
const state_r2 = i0.ɵɵnextContext(3).state;
|
|
37
37
|
i0.ɵɵadvance();
|
|
38
|
-
i0.ɵɵtextInterpolate(state_r2.activeLabel);
|
|
38
|
+
i0.ɵɵtextInterpolate(state_r2.activeLabel());
|
|
39
39
|
} }
|
|
40
40
|
function PaginationDefaultSlotsComponent_ng_template_0_For_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
41
41
|
i0.ɵɵelementStart(0, "a", 6);
|
|
42
42
|
i0.ɵɵtemplate(1, PaginationDefaultSlotsComponent_ng_template_0_For_1_Conditional_2_ng_template_1_Template, 0, 0, "ng-template", 8)(2, PaginationDefaultSlotsComponent_ng_template_0_For_1_Conditional_2_Conditional_2_Template, 2, 1, "span", 9);
|
|
43
43
|
i0.ɵɵelementEnd();
|
|
44
44
|
} if (rf & 2) {
|
|
45
|
-
const
|
|
45
|
+
const page_r5 = i0.ɵɵnextContext().$implicit;
|
|
46
46
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
47
47
|
const state_r2 = ctx_r0.state;
|
|
48
|
-
const
|
|
49
|
-
|
|
48
|
+
const api_r3 = ctx_r0.api;
|
|
49
|
+
const directives_r4 = ctx_r0.directives;
|
|
50
|
+
i0.ɵɵproperty("auUse", i0.ɵɵpureFunction2(6, _c4, directives_r4.pageLink, i0.ɵɵpureFunction1(4, _c3, page_r5)));
|
|
50
51
|
i0.ɵɵadvance();
|
|
51
|
-
i0.ɵɵproperty("auSlot", state_r2.numberLabel)("auSlotProps", i0.ɵɵ
|
|
52
|
+
i0.ɵɵproperty("auSlot", state_r2.numberLabel())("auSlotProps", i0.ɵɵpureFunction4(9, _c5, state_r2, api_r3, directives_r4, page_r5));
|
|
52
53
|
i0.ɵɵadvance();
|
|
53
|
-
i0.ɵɵconditional(state_r2.page ===
|
|
54
|
+
i0.ɵɵconditional(state_r2.page() === page_r5 ? 2 : -1);
|
|
54
55
|
} }
|
|
55
56
|
function PaginationDefaultSlotsComponent_ng_template_0_For_1_Template(rf, ctx) { if (rf & 1) {
|
|
56
57
|
i0.ɵɵelementStart(0, "li", 5);
|
|
57
|
-
i0.ɵɵtemplate(1, PaginationDefaultSlotsComponent_ng_template_0_For_1_Conditional_1_Template, 4,
|
|
58
|
+
i0.ɵɵtemplate(1, PaginationDefaultSlotsComponent_ng_template_0_For_1_Conditional_1_Template, 4, 7)(2, PaginationDefaultSlotsComponent_ng_template_0_For_1_Conditional_2_Template, 3, 14, "a", 6);
|
|
58
59
|
i0.ɵɵelementEnd();
|
|
59
60
|
} if (rf & 2) {
|
|
60
|
-
const
|
|
61
|
+
const page_r5 = ctx.$implicit;
|
|
61
62
|
const state_r2 = i0.ɵɵnextContext().state;
|
|
62
|
-
i0.ɵɵclassProp("active",
|
|
63
|
+
i0.ɵɵclassProp("active", page_r5 === state_r2.page())("disabled", page_r5 === -1 || state_r2.disabled());
|
|
63
64
|
i0.ɵɵadvance();
|
|
64
|
-
i0.ɵɵconditional(
|
|
65
|
+
i0.ɵɵconditional(page_r5 === -1 ? 1 : 2);
|
|
65
66
|
} }
|
|
66
67
|
function PaginationDefaultSlotsComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {
|
|
67
68
|
i0.ɵɵrepeaterCreate(0, PaginationDefaultSlotsComponent_ng_template_0_For_1_Template, 3, 5, "li", 4, i0.ɵɵrepeaterTrackByIdentity);
|
|
68
69
|
} if (rf & 2) {
|
|
69
70
|
const state_r2 = ctx.state;
|
|
70
|
-
i0.ɵɵrepeater(state_r2.pages);
|
|
71
|
+
i0.ɵɵrepeater(state_r2.pages());
|
|
71
72
|
} }
|
|
72
73
|
function PaginationDefaultSlotsComponent_ng_template_2_Conditional_1_ng_template_3_Template(rf, ctx) { }
|
|
73
74
|
function PaginationDefaultSlotsComponent_ng_template_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -75,14 +76,15 @@ function PaginationDefaultSlotsComponent_ng_template_2_Conditional_1_Template(rf
|
|
|
75
76
|
i0.ɵɵtemplate(3, PaginationDefaultSlotsComponent_ng_template_2_Conditional_1_ng_template_3_Template, 0, 0, "ng-template", 8);
|
|
76
77
|
i0.ɵɵelementEnd()()();
|
|
77
78
|
} if (rf & 2) {
|
|
78
|
-
const
|
|
79
|
-
const
|
|
80
|
-
const
|
|
81
|
-
|
|
79
|
+
const ctx_r5 = i0.ɵɵnextContext();
|
|
80
|
+
const state_r7 = ctx_r5.state;
|
|
81
|
+
const api_r8 = ctx_r5.api;
|
|
82
|
+
const directives_r9 = ctx_r5.directives;
|
|
83
|
+
i0.ɵɵclassProp("disabled", state_r7.previousDisabled());
|
|
82
84
|
i0.ɵɵadvance();
|
|
83
|
-
i0.ɵɵproperty("auUse",
|
|
85
|
+
i0.ɵɵproperty("auUse", directives_r9.pageFirst);
|
|
84
86
|
i0.ɵɵadvance(2);
|
|
85
|
-
i0.ɵɵproperty("auSlot",
|
|
87
|
+
i0.ɵɵproperty("auSlot", state_r7.firstPageLabel())("auSlotProps", i0.ɵɵpureFunction3(5, _c2, state_r7, api_r8, directives_r9));
|
|
86
88
|
} }
|
|
87
89
|
function PaginationDefaultSlotsComponent_ng_template_2_Conditional_2_ng_template_3_Template(rf, ctx) { }
|
|
88
90
|
function PaginationDefaultSlotsComponent_ng_template_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -90,14 +92,15 @@ function PaginationDefaultSlotsComponent_ng_template_2_Conditional_2_Template(rf
|
|
|
90
92
|
i0.ɵɵtemplate(3, PaginationDefaultSlotsComponent_ng_template_2_Conditional_2_ng_template_3_Template, 0, 0, "ng-template", 8);
|
|
91
93
|
i0.ɵɵelementEnd()()();
|
|
92
94
|
} if (rf & 2) {
|
|
93
|
-
const
|
|
94
|
-
const
|
|
95
|
-
const
|
|
96
|
-
|
|
95
|
+
const ctx_r5 = i0.ɵɵnextContext();
|
|
96
|
+
const state_r7 = ctx_r5.state;
|
|
97
|
+
const api_r8 = ctx_r5.api;
|
|
98
|
+
const directives_r9 = ctx_r5.directives;
|
|
99
|
+
i0.ɵɵclassProp("disabled", state_r7.previousDisabled());
|
|
97
100
|
i0.ɵɵadvance();
|
|
98
|
-
i0.ɵɵproperty("auUse",
|
|
101
|
+
i0.ɵɵproperty("auUse", directives_r9.pagePrev);
|
|
99
102
|
i0.ɵɵadvance(2);
|
|
100
|
-
i0.ɵɵproperty("auSlot",
|
|
103
|
+
i0.ɵɵproperty("auSlot", state_r7.previousPageLabel())("auSlotProps", i0.ɵɵpureFunction3(5, _c2, state_r7, api_r8, directives_r9));
|
|
101
104
|
} }
|
|
102
105
|
function PaginationDefaultSlotsComponent_ng_template_2_ng_template_3_Template(rf, ctx) { }
|
|
103
106
|
function PaginationDefaultSlotsComponent_ng_template_2_Conditional_4_ng_template_3_Template(rf, ctx) { }
|
|
@@ -106,14 +109,15 @@ function PaginationDefaultSlotsComponent_ng_template_2_Conditional_4_Template(rf
|
|
|
106
109
|
i0.ɵɵtemplate(3, PaginationDefaultSlotsComponent_ng_template_2_Conditional_4_ng_template_3_Template, 0, 0, "ng-template", 8);
|
|
107
110
|
i0.ɵɵelementEnd()()();
|
|
108
111
|
} if (rf & 2) {
|
|
109
|
-
const
|
|
110
|
-
const
|
|
111
|
-
const
|
|
112
|
-
|
|
112
|
+
const ctx_r5 = i0.ɵɵnextContext();
|
|
113
|
+
const state_r7 = ctx_r5.state;
|
|
114
|
+
const api_r8 = ctx_r5.api;
|
|
115
|
+
const directives_r9 = ctx_r5.directives;
|
|
116
|
+
i0.ɵɵclassProp("disabled", state_r7.nextDisabled());
|
|
113
117
|
i0.ɵɵadvance();
|
|
114
|
-
i0.ɵɵproperty("auUse",
|
|
118
|
+
i0.ɵɵproperty("auUse", directives_r9.pageNext);
|
|
115
119
|
i0.ɵɵadvance(2);
|
|
116
|
-
i0.ɵɵproperty("auSlot",
|
|
120
|
+
i0.ɵɵproperty("auSlot", state_r7.nextPageLabel())("auSlotProps", i0.ɵɵpureFunction3(5, _c2, state_r7, api_r8, directives_r9));
|
|
117
121
|
} }
|
|
118
122
|
function PaginationDefaultSlotsComponent_ng_template_2_Conditional_5_ng_template_3_Template(rf, ctx) { }
|
|
119
123
|
function PaginationDefaultSlotsComponent_ng_template_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -121,43 +125,46 @@ function PaginationDefaultSlotsComponent_ng_template_2_Conditional_5_Template(rf
|
|
|
121
125
|
i0.ɵɵtemplate(3, PaginationDefaultSlotsComponent_ng_template_2_Conditional_5_ng_template_3_Template, 0, 0, "ng-template", 8);
|
|
122
126
|
i0.ɵɵelementEnd()()();
|
|
123
127
|
} if (rf & 2) {
|
|
124
|
-
const
|
|
125
|
-
const
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
+
const ctx_r5 = i0.ɵɵnextContext();
|
|
129
|
+
const state_r7 = ctx_r5.state;
|
|
130
|
+
const api_r8 = ctx_r5.api;
|
|
131
|
+
const directives_r9 = ctx_r5.directives;
|
|
132
|
+
i0.ɵɵclassProp("disabled", state_r7.nextDisabled());
|
|
128
133
|
i0.ɵɵadvance();
|
|
129
|
-
i0.ɵɵproperty("auUse",
|
|
134
|
+
i0.ɵɵproperty("auUse", directives_r9.pageLast);
|
|
130
135
|
i0.ɵɵadvance(2);
|
|
131
|
-
i0.ɵɵproperty("auSlot",
|
|
136
|
+
i0.ɵɵproperty("auSlot", state_r7.lastPageLabel())("auSlotProps", i0.ɵɵpureFunction3(5, _c2, state_r7, api_r8, directives_r9));
|
|
132
137
|
} }
|
|
133
138
|
function PaginationDefaultSlotsComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
134
139
|
i0.ɵɵelementStart(0, "ul");
|
|
135
|
-
i0.ɵɵtemplate(1, PaginationDefaultSlotsComponent_ng_template_2_Conditional_1_Template, 4,
|
|
140
|
+
i0.ɵɵtemplate(1, PaginationDefaultSlotsComponent_ng_template_2_Conditional_1_Template, 4, 9, "li", 10)(2, PaginationDefaultSlotsComponent_ng_template_2_Conditional_2_Template, 4, 9, "li", 10)(3, PaginationDefaultSlotsComponent_ng_template_2_ng_template_3_Template, 0, 0, "ng-template", 8)(4, PaginationDefaultSlotsComponent_ng_template_2_Conditional_4_Template, 4, 9, "li", 10)(5, PaginationDefaultSlotsComponent_ng_template_2_Conditional_5_Template, 4, 9, "li", 10);
|
|
136
141
|
i0.ɵɵelementEnd();
|
|
137
142
|
i0.ɵɵelementStart(6, "div", 11);
|
|
138
143
|
i0.ɵɵtext(7);
|
|
139
144
|
i0.ɵɵelementEnd();
|
|
140
145
|
} if (rf & 2) {
|
|
141
|
-
const
|
|
142
|
-
const
|
|
143
|
-
|
|
146
|
+
const state_r7 = ctx.state;
|
|
147
|
+
const api_r8 = ctx.api;
|
|
148
|
+
const directives_r9 = ctx.directives;
|
|
149
|
+
i0.ɵɵclassMap("au-pagination pagination" + (state_r7.size() ? " pagination-" + state_r7.size() : "") + " " + state_r7.className());
|
|
144
150
|
i0.ɵɵadvance();
|
|
145
|
-
i0.ɵɵconditional(
|
|
151
|
+
i0.ɵɵconditional(state_r7.boundaryLinks() ? 1 : -1);
|
|
146
152
|
i0.ɵɵadvance();
|
|
147
|
-
i0.ɵɵconditional(
|
|
153
|
+
i0.ɵɵconditional(state_r7.directionLinks() ? 2 : -1);
|
|
148
154
|
i0.ɵɵadvance();
|
|
149
|
-
i0.ɵɵproperty("auSlot",
|
|
155
|
+
i0.ɵɵproperty("auSlot", state_r7.pagesDisplay())("auSlotProps", i0.ɵɵpureFunction3(9, _c2, state_r7, api_r8, directives_r9));
|
|
150
156
|
i0.ɵɵadvance();
|
|
151
|
-
i0.ɵɵconditional(
|
|
157
|
+
i0.ɵɵconditional(state_r7.directionLinks() ? 4 : -1);
|
|
152
158
|
i0.ɵɵadvance();
|
|
153
|
-
i0.ɵɵconditional(
|
|
159
|
+
i0.ɵɵconditional(state_r7.boundaryLinks() ? 5 : -1);
|
|
154
160
|
i0.ɵɵadvance(2);
|
|
155
|
-
i0.ɵɵtextInterpolate(
|
|
161
|
+
i0.ɵɵtextInterpolate(state_r7.ariaLiveLabelText());
|
|
156
162
|
} }
|
|
157
|
-
const
|
|
163
|
+
const _c6 = ["auPagination", ""];
|
|
158
164
|
function PaginationComponent_ng_template_0_Template(rf, ctx) { }
|
|
159
165
|
/**
|
|
160
166
|
* A directive to use to give the 'ellipsis' link template to the pagination component
|
|
167
|
+
* This directive provides a template reference for the {@link PaginationContext}.
|
|
161
168
|
*/
|
|
162
169
|
export class PaginationEllipsisDirective {
|
|
163
170
|
constructor() {
|
|
@@ -166,7 +173,7 @@ export class PaginationEllipsisDirective {
|
|
|
166
173
|
static ngTemplateContextGuard(_dir, context) {
|
|
167
174
|
return true;
|
|
168
175
|
}
|
|
169
|
-
static { this.ɵfac = function PaginationEllipsisDirective_Factory(
|
|
176
|
+
static { this.ɵfac = function PaginationEllipsisDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PaginationEllipsisDirective)(); }; }
|
|
170
177
|
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PaginationEllipsisDirective, selectors: [["ng-template", "auPaginationEllipsis", ""]], standalone: true }); }
|
|
171
178
|
}
|
|
172
179
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationEllipsisDirective, [{
|
|
@@ -175,6 +182,7 @@ export class PaginationEllipsisDirective {
|
|
|
175
182
|
}], null, null); })();
|
|
176
183
|
/**
|
|
177
184
|
* A directive to use to give the 'first' link template to the pagination component
|
|
185
|
+
* This directive provides a template reference for the {@link PaginationContext}.
|
|
178
186
|
*/
|
|
179
187
|
export class PaginationFirstDirective {
|
|
180
188
|
constructor() {
|
|
@@ -183,7 +191,7 @@ export class PaginationFirstDirective {
|
|
|
183
191
|
static ngTemplateContextGuard(_dir, context) {
|
|
184
192
|
return true;
|
|
185
193
|
}
|
|
186
|
-
static { this.ɵfac = function PaginationFirstDirective_Factory(
|
|
194
|
+
static { this.ɵfac = function PaginationFirstDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PaginationFirstDirective)(); }; }
|
|
187
195
|
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PaginationFirstDirective, selectors: [["ng-template", "auPaginationFirst", ""]], standalone: true }); }
|
|
188
196
|
}
|
|
189
197
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationFirstDirective, [{
|
|
@@ -192,6 +200,7 @@ export class PaginationFirstDirective {
|
|
|
192
200
|
}], null, null); })();
|
|
193
201
|
/**
|
|
194
202
|
* A directive to use to give the 'last' link template to the pagination component
|
|
203
|
+
* This directive provides a template reference for the {@link PaginationContext}.
|
|
195
204
|
*/
|
|
196
205
|
export class PaginationLastDirective {
|
|
197
206
|
constructor() {
|
|
@@ -200,7 +209,7 @@ export class PaginationLastDirective {
|
|
|
200
209
|
static ngTemplateContextGuard(_dir, context) {
|
|
201
210
|
return true;
|
|
202
211
|
}
|
|
203
|
-
static { this.ɵfac = function PaginationLastDirective_Factory(
|
|
212
|
+
static { this.ɵfac = function PaginationLastDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PaginationLastDirective)(); }; }
|
|
204
213
|
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PaginationLastDirective, selectors: [["ng-template", "auPaginationLast", ""]], standalone: true }); }
|
|
205
214
|
}
|
|
206
215
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationLastDirective, [{
|
|
@@ -209,6 +218,7 @@ export class PaginationLastDirective {
|
|
|
209
218
|
}], null, null); })();
|
|
210
219
|
/**
|
|
211
220
|
* A directive to use to give the 'next' link template to the pagination component
|
|
221
|
+
* This directive provides a template reference for the {@link PaginationContext}.
|
|
212
222
|
*/
|
|
213
223
|
export class PaginationNextDirective {
|
|
214
224
|
constructor() {
|
|
@@ -217,7 +227,7 @@ export class PaginationNextDirective {
|
|
|
217
227
|
static ngTemplateContextGuard(_dir, context) {
|
|
218
228
|
return true;
|
|
219
229
|
}
|
|
220
|
-
static { this.ɵfac = function PaginationNextDirective_Factory(
|
|
230
|
+
static { this.ɵfac = function PaginationNextDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PaginationNextDirective)(); }; }
|
|
221
231
|
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PaginationNextDirective, selectors: [["ng-template", "auPaginationNext", ""]], standalone: true }); }
|
|
222
232
|
}
|
|
223
233
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationNextDirective, [{
|
|
@@ -226,6 +236,7 @@ export class PaginationNextDirective {
|
|
|
226
236
|
}], null, null); })();
|
|
227
237
|
/**
|
|
228
238
|
* A directive to use to give the page 'number' template to the pagination component
|
|
239
|
+
* This directive provides a template reference for the {@link PaginationNumberContext}.
|
|
229
240
|
*/
|
|
230
241
|
export class PaginationNumberDirective {
|
|
231
242
|
constructor() {
|
|
@@ -234,7 +245,7 @@ export class PaginationNumberDirective {
|
|
|
234
245
|
static ngTemplateContextGuard(_dir, context) {
|
|
235
246
|
return true;
|
|
236
247
|
}
|
|
237
|
-
static { this.ɵfac = function PaginationNumberDirective_Factory(
|
|
248
|
+
static { this.ɵfac = function PaginationNumberDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PaginationNumberDirective)(); }; }
|
|
238
249
|
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PaginationNumberDirective, selectors: [["ng-template", "auPaginationNumber", ""]], standalone: true }); }
|
|
239
250
|
}
|
|
240
251
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationNumberDirective, [{
|
|
@@ -243,6 +254,7 @@ export class PaginationNumberDirective {
|
|
|
243
254
|
}], null, null); })();
|
|
244
255
|
/**
|
|
245
256
|
* A directive to use to give the 'previous' link template to the pagination component
|
|
257
|
+
* This directive provides a template reference for the {@link PaginationContext}.
|
|
246
258
|
*/
|
|
247
259
|
export class PaginationPreviousDirective {
|
|
248
260
|
constructor() {
|
|
@@ -251,7 +263,7 @@ export class PaginationPreviousDirective {
|
|
|
251
263
|
static ngTemplateContextGuard(_dir, context) {
|
|
252
264
|
return true;
|
|
253
265
|
}
|
|
254
|
-
static { this.ɵfac = function PaginationPreviousDirective_Factory(
|
|
266
|
+
static { this.ɵfac = function PaginationPreviousDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PaginationPreviousDirective)(); }; }
|
|
255
267
|
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PaginationPreviousDirective, selectors: [["ng-template", "auPaginationPrevious", ""]], standalone: true }); }
|
|
256
268
|
}
|
|
257
269
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationPreviousDirective, [{
|
|
@@ -260,6 +272,7 @@ export class PaginationPreviousDirective {
|
|
|
260
272
|
}], null, null); })();
|
|
261
273
|
/**
|
|
262
274
|
* A directive to use to give the 'Pages' template for the Pages slot
|
|
275
|
+
* This directive provides a template reference for the {@link PaginationContext}.
|
|
263
276
|
*/
|
|
264
277
|
export class PaginationPagesDirective {
|
|
265
278
|
constructor() {
|
|
@@ -268,7 +281,7 @@ export class PaginationPagesDirective {
|
|
|
268
281
|
static ngTemplateContextGuard(_dir, context) {
|
|
269
282
|
return true;
|
|
270
283
|
}
|
|
271
|
-
static { this.ɵfac = function PaginationPagesDirective_Factory(
|
|
284
|
+
static { this.ɵfac = function PaginationPagesDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PaginationPagesDirective)(); }; }
|
|
272
285
|
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PaginationPagesDirective, selectors: [["ng-template", "auPaginationPages", ""]], standalone: true }); }
|
|
273
286
|
}
|
|
274
287
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationPagesDirective, [{
|
|
@@ -277,23 +290,24 @@ export class PaginationPagesDirective {
|
|
|
277
290
|
}], null, null); })();
|
|
278
291
|
/**
|
|
279
292
|
* Directive to provide the slot structure for the pagination widget.
|
|
293
|
+
* This directive provides a template reference for the {@link PaginationContext}.
|
|
280
294
|
*/
|
|
281
295
|
export class PaginationStructureDirective {
|
|
282
296
|
constructor() {
|
|
283
297
|
this.templateRef = inject((TemplateRef));
|
|
284
298
|
}
|
|
285
|
-
static ngTemplateContextGuard(
|
|
299
|
+
static ngTemplateContextGuard(_dir, context) {
|
|
286
300
|
return true;
|
|
287
301
|
}
|
|
288
|
-
static { this.ɵfac = function PaginationStructureDirective_Factory(
|
|
302
|
+
static { this.ɵfac = function PaginationStructureDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PaginationStructureDirective)(); }; }
|
|
289
303
|
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PaginationStructureDirective, selectors: [["ng-template", "auPaginationStructure", ""]], standalone: true }); }
|
|
290
304
|
}
|
|
291
305
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationStructureDirective, [{
|
|
292
306
|
type: Directive,
|
|
293
307
|
args: [{ selector: 'ng-template[auPaginationStructure]', standalone: true }]
|
|
294
308
|
}], null, null); })();
|
|
295
|
-
|
|
296
|
-
static { this.ɵfac = function PaginationDefaultSlotsComponent_Factory(
|
|
309
|
+
class PaginationDefaultSlotsComponent {
|
|
310
|
+
static { this.ɵfac = function PaginationDefaultSlotsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PaginationDefaultSlotsComponent)(); }; }
|
|
297
311
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PaginationDefaultSlotsComponent, selectors: [["ng-component"]], viewQuery: function PaginationDefaultSlotsComponent_Query(rf, ctx) { if (rf & 1) {
|
|
298
312
|
i0.ɵɵviewQuery(_c0, 7);
|
|
299
313
|
i0.ɵɵviewQuery(_c1, 7);
|
|
@@ -302,7 +316,7 @@ export class PaginationDefaultSlotsComponent {
|
|
|
302
316
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.pages = _t.first);
|
|
303
317
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.structure = _t.first);
|
|
304
318
|
} }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 4, vars: 0, consts: [["pages", ""], ["structure", ""], ["auPaginationPages", ""], ["auPaginationStructure", ""], [1, "page-item", 3, "active", "disabled"], [1, "page-item"], [1, "page-link", 3, "auUse"], ["aria-hidden", "true", 1, "page-link", "au-ellipsis"], [3, "auSlot", "auSlotProps"], [1, "visually-hidden"], [1, "page-item", 3, "disabled"], ["aria-live", "polite", 1, "visually-hidden"], ["aria-hidden", "true"]], template: function PaginationDefaultSlotsComponent_Template(rf, ctx) { if (rf & 1) {
|
|
305
|
-
i0.ɵɵtemplate(0, PaginationDefaultSlotsComponent_ng_template_0_Template, 2, 0, "ng-template", 2, 0, i0.ɵɵtemplateRefExtractor)(2, PaginationDefaultSlotsComponent_ng_template_2_Template, 8,
|
|
319
|
+
i0.ɵɵtemplate(0, PaginationDefaultSlotsComponent_ng_template_0_Template, 2, 0, "ng-template", 2, 0, i0.ɵɵtemplateRefExtractor)(2, PaginationDefaultSlotsComponent_ng_template_2_Template, 8, 13, "ng-template", 3, 1, i0.ɵɵtemplateRefExtractor);
|
|
306
320
|
} }, dependencies: [SlotDirective, PaginationPagesDirective, PaginationStructureDirective, UseDirective], encapsulation: 2, changeDetection: 0 }); }
|
|
307
321
|
}
|
|
308
322
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationDefaultSlotsComponent, [{
|
|
@@ -312,66 +326,66 @@ export class PaginationDefaultSlotsComponent {
|
|
|
312
326
|
imports: [SlotDirective, PaginationPagesDirective, PaginationStructureDirective, UseDirective],
|
|
313
327
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
314
328
|
template: `
|
|
315
|
-
<ng-template auPaginationPages #pages let-state="state" let-
|
|
316
|
-
@for (page of state.pages; track page; let i = $index) {
|
|
317
|
-
<li class="page-item" [class.active]="page === state.page" [class.disabled]="page === -1 || state.disabled">
|
|
329
|
+
<ng-template auPaginationPages #pages let-state="state" let-api="api" let-directives="directives">
|
|
330
|
+
@for (page of state.pages(); track page; let i = $index) {
|
|
331
|
+
<li class="page-item" [class.active]="page === state.page()" [class.disabled]="page === -1 || state.disabled()">
|
|
318
332
|
@if (page === -1) {
|
|
319
333
|
<div class="page-link au-ellipsis" aria-hidden="true">
|
|
320
|
-
<ng-template [auSlot]="state.ellipsisLabel" [auSlotProps]="{state,
|
|
334
|
+
<ng-template [auSlot]="state.ellipsisLabel()" [auSlotProps]="{state, api, directives}"></ng-template>
|
|
321
335
|
</div>
|
|
322
|
-
<span class="visually-hidden">{{ state.ariaEllipsisLabel }}</span>
|
|
336
|
+
<span class="visually-hidden">{{ state.ariaEllipsisLabel() }}</span>
|
|
323
337
|
} @else {
|
|
324
|
-
<a class="page-link" [auUse]="[
|
|
325
|
-
<ng-template [auSlot]="state.numberLabel" [auSlotProps]="{state,
|
|
326
|
-
@if (state.page === page) {
|
|
327
|
-
<span class="visually-hidden">{{ state.activeLabel }}</span>
|
|
338
|
+
<a class="page-link" [auUse]="[directives.pageLink, {page}]">
|
|
339
|
+
<ng-template [auSlot]="state.numberLabel()" [auSlotProps]="{state, api, directives, displayedPage: page}"></ng-template>
|
|
340
|
+
@if (state.page() === page) {
|
|
341
|
+
<span class="visually-hidden">{{ state.activeLabel() }}</span>
|
|
328
342
|
}
|
|
329
343
|
</a>
|
|
330
344
|
}
|
|
331
345
|
</li>
|
|
332
346
|
}
|
|
333
347
|
</ng-template>
|
|
334
|
-
<ng-template auPaginationStructure #structure let-state="state" let-
|
|
335
|
-
<ul [class]="'au-pagination pagination' + (state.size ? ' pagination-' + state.size : '') + ' ' + state.className">
|
|
336
|
-
@if (state.boundaryLinks) {
|
|
337
|
-
<li class="page-item" [class.disabled]="state.previousDisabled">
|
|
338
|
-
<a class="page-link" [auUse]="
|
|
348
|
+
<ng-template auPaginationStructure #structure let-state="state" let-api="api" let-directives="directives">
|
|
349
|
+
<ul [class]="'au-pagination pagination' + (state.size() ? ' pagination-' + state.size() : '') + ' ' + state.className()">
|
|
350
|
+
@if (state.boundaryLinks()) {
|
|
351
|
+
<li class="page-item" [class.disabled]="state.previousDisabled()">
|
|
352
|
+
<a class="page-link" [auUse]="directives.pageFirst">
|
|
339
353
|
<span aria-hidden="true">
|
|
340
|
-
<ng-template [auSlot]="state.firstPageLabel" [auSlotProps]="{
|
|
354
|
+
<ng-template [auSlot]="state.firstPageLabel()" [auSlotProps]="{state, api, directives}"></ng-template>
|
|
341
355
|
</span>
|
|
342
356
|
</a>
|
|
343
357
|
</li>
|
|
344
358
|
}
|
|
345
|
-
@if (state.directionLinks) {
|
|
346
|
-
<li class="page-item" [class.disabled]="state.previousDisabled">
|
|
347
|
-
<a class="page-link" [auUse]="
|
|
359
|
+
@if (state.directionLinks()) {
|
|
360
|
+
<li class="page-item" [class.disabled]="state.previousDisabled()">
|
|
361
|
+
<a class="page-link" [auUse]="directives.pagePrev">
|
|
348
362
|
<span aria-hidden="true">
|
|
349
|
-
<ng-template [auSlot]="state.previousPageLabel" [auSlotProps]="{
|
|
363
|
+
<ng-template [auSlot]="state.previousPageLabel()" [auSlotProps]="{state, api, directives}"></ng-template>
|
|
350
364
|
</span>
|
|
351
365
|
</a>
|
|
352
366
|
</li>
|
|
353
367
|
}
|
|
354
|
-
<ng-template [auSlot]="state.pagesDisplay" [auSlotProps]="{
|
|
355
|
-
@if (state.directionLinks) {
|
|
356
|
-
<li class="page-item" [class.disabled]="state.nextDisabled">
|
|
357
|
-
<a class="page-link" [auUse]="
|
|
368
|
+
<ng-template [auSlot]="state.pagesDisplay()" [auSlotProps]="{state, api, directives}"></ng-template>
|
|
369
|
+
@if (state.directionLinks()) {
|
|
370
|
+
<li class="page-item" [class.disabled]="state.nextDisabled()">
|
|
371
|
+
<a class="page-link" [auUse]="directives.pageNext">
|
|
358
372
|
<span aria-hidden="true">
|
|
359
|
-
<ng-template [auSlot]="state.nextPageLabel" [auSlotProps]="{
|
|
373
|
+
<ng-template [auSlot]="state.nextPageLabel()" [auSlotProps]="{state, api, directives}"></ng-template>
|
|
360
374
|
</span>
|
|
361
375
|
</a>
|
|
362
376
|
</li>
|
|
363
377
|
}
|
|
364
|
-
@if (state.boundaryLinks) {
|
|
365
|
-
<li class="page-item" [class.disabled]="state.nextDisabled">
|
|
366
|
-
<a class="page-link" [auUse]="
|
|
378
|
+
@if (state.boundaryLinks()) {
|
|
379
|
+
<li class="page-item" [class.disabled]="state.nextDisabled()">
|
|
380
|
+
<a class="page-link" [auUse]="directives.pageLast">
|
|
367
381
|
<span aria-hidden="true">
|
|
368
|
-
<ng-template [auSlot]="state.lastPageLabel" [auSlotProps]="{
|
|
382
|
+
<ng-template [auSlot]="state.lastPageLabel()" [auSlotProps]="{state, api, directives}"></ng-template>
|
|
369
383
|
</span>
|
|
370
384
|
</a>
|
|
371
385
|
</li>
|
|
372
386
|
}
|
|
373
387
|
</ul>
|
|
374
|
-
<div aria-live="polite" class="visually-hidden">{{ state.ariaLiveLabelText }}</div>
|
|
388
|
+
<div aria-live="polite" class="visually-hidden">{{ state.ariaLiveLabelText() }}</div>
|
|
375
389
|
</ng-template>
|
|
376
390
|
`,
|
|
377
391
|
}]
|
|
@@ -382,7 +396,7 @@ export class PaginationDefaultSlotsComponent {
|
|
|
382
396
|
type: ViewChild,
|
|
383
397
|
args: ['structure', { static: true }]
|
|
384
398
|
}] }); })();
|
|
385
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PaginationDefaultSlotsComponent, { className: "PaginationDefaultSlotsComponent", filePath: "components/pagination/pagination.component.ts", lineNumber:
|
|
399
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PaginationDefaultSlotsComponent, { className: "PaginationDefaultSlotsComponent", filePath: "components/pagination/pagination.component.ts", lineNumber: 184 }); })();
|
|
386
400
|
/**
|
|
387
401
|
* The default slot for the pages
|
|
388
402
|
*/
|
|
@@ -391,21 +405,34 @@ export const paginationDefaultSlotPages = new ComponentTemplate(PaginationDefaul
|
|
|
391
405
|
* The default slot for the structure
|
|
392
406
|
*/
|
|
393
407
|
export const paginationDefaultSlotStructure = new ComponentTemplate(PaginationDefaultSlotsComponent, 'structure');
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
408
|
+
/**
|
|
409
|
+
* The `PaginationComponent` is an Angular component that extends the `BaseWidgetDirective`
|
|
410
|
+
* to provide a customizable pagination widget. It includes various input properties
|
|
411
|
+
* to configure labels, templates, and behavior for accessibility and internationalization (i18n).
|
|
412
|
+
*/
|
|
398
413
|
export class PaginationComponent extends BaseWidgetDirective {
|
|
399
414
|
constructor() {
|
|
400
|
-
super(
|
|
401
|
-
this._widget = callWidgetFactory({
|
|
415
|
+
super(callWidgetFactory({
|
|
402
416
|
factory: createPagination,
|
|
403
417
|
widgetName: 'pagination',
|
|
404
|
-
defaultConfig
|
|
418
|
+
defaultConfig: {
|
|
419
|
+
structure: paginationDefaultSlotStructure,
|
|
420
|
+
pagesDisplay: paginationDefaultSlotPages,
|
|
421
|
+
},
|
|
405
422
|
events: {
|
|
406
423
|
onPageChange: (page) => this.pageChange.emit(page),
|
|
407
424
|
},
|
|
408
|
-
|
|
425
|
+
slotTemplates: () => ({
|
|
426
|
+
structure: this.slotStructureFromContent?.templateRef,
|
|
427
|
+
ellipsisLabel: this.slotEllipsisFromContent?.templateRef,
|
|
428
|
+
firstPageLabel: this.slotFirstFromContent?.templateRef,
|
|
429
|
+
previousPageLabel: this.slotPreviousFromContent?.templateRef,
|
|
430
|
+
nextPageLabel: this.slotNextFromContent?.templateRef,
|
|
431
|
+
lastPageLabel: this.slotLastFromContent?.templateRef,
|
|
432
|
+
pagesDisplay: this.slotPagesFromContent?.templateRef,
|
|
433
|
+
numberLabel: this.slotNumberLabelFromContent?.templateRef,
|
|
434
|
+
}),
|
|
435
|
+
}));
|
|
409
436
|
/**
|
|
410
437
|
* An event fired when the page is changed.
|
|
411
438
|
*
|
|
@@ -419,19 +446,7 @@ export class PaginationComponent extends BaseWidgetDirective {
|
|
|
419
446
|
*/
|
|
420
447
|
this.pageChange = new EventEmitter();
|
|
421
448
|
}
|
|
422
|
-
|
|
423
|
-
this._widget.patchSlots({
|
|
424
|
-
structure: this.slotStructureFromContent?.templateRef,
|
|
425
|
-
ellipsisLabel: this.slotEllipsisFromContent?.templateRef,
|
|
426
|
-
firstPageLabel: this.slotFirstFromContent?.templateRef,
|
|
427
|
-
previousPageLabel: this.slotPreviousFromContent?.templateRef,
|
|
428
|
-
nextPageLabel: this.slotNextFromContent?.templateRef,
|
|
429
|
-
lastPageLabel: this.slotLastFromContent?.templateRef,
|
|
430
|
-
pagesDisplay: this.slotPagesFromContent?.templateRef,
|
|
431
|
-
numberLabel: this.slotNumberLabelFromContent?.templateRef,
|
|
432
|
-
});
|
|
433
|
-
}
|
|
434
|
-
static { this.ɵfac = /*@__PURE__*/ (() => { let ɵPaginationComponent_BaseFactory; return function PaginationComponent_Factory(t) { return (ɵPaginationComponent_BaseFactory || (ɵPaginationComponent_BaseFactory = i0.ɵɵgetInheritedFactory(PaginationComponent)))(t || PaginationComponent); }; })(); }
|
|
449
|
+
static { this.ɵfac = function PaginationComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PaginationComponent)(); }; }
|
|
435
450
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PaginationComponent, selectors: [["", "auPagination", ""]], contentQueries: function PaginationComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
|
436
451
|
i0.ɵɵcontentQuery(dirIndex, PaginationEllipsisDirective, 5);
|
|
437
452
|
i0.ɵɵcontentQuery(dirIndex, PaginationFirstDirective, 5);
|
|
@@ -452,11 +467,11 @@ export class PaginationComponent extends BaseWidgetDirective {
|
|
|
452
467
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slotNumberLabelFromContent = _t.first);
|
|
453
468
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slotStructureFromContent = _t.first);
|
|
454
469
|
} }, hostVars: 1, hostBindings: function PaginationComponent_HostBindings(rf, ctx) { if (rf & 2) {
|
|
455
|
-
i0.ɵɵattribute("aria-label", ctx.state
|
|
456
|
-
} }, inputs: { ariaPageLabel: [0, "auAriaPageLabel", "ariaPageLabel"], ariaLiveLabel: [0, "auAriaLiveLabel", "ariaLiveLabel"], ariaLabel: [0, "auAriaLabel", "ariaLabel"], activeLabel: [0, "auActiveLabel", "activeLabel"], ariaFirstLabel: [0, "auAriaFirstLabel", "ariaFirstLabel"], ariaPreviousLabel: [0, "auAriaPreviousLabel", "ariaPreviousLabel"], ariaNextLabel: [0, "auAriaNextLabel", "ariaNextLabel"], ariaLastLabel: [0, "auAriaLastLabel", "ariaLastLabel"], ariaEllipsisLabel: [0, "auAriaEllipsisLabel", "ariaEllipsisLabel"], pageLink: [0, "auPageLink", "pageLink"], ellipsisLabel: [0, "auEllipsisLabel", "ellipsisLabel"], firstPageLabel: [0, "auFirstPageLabel", "firstPageLabel"], previousPageLabel: [0, "auPreviousPageLabel", "previousPageLabel"], nextPageLabel: [0, "auNextPageLabel", "nextPageLabel"], lastPageLabel: [0, "auLastPageLabel", "lastPageLabel"], pagesDisplay: [0, "auPagesDisplay", "pagesDisplay"], numberLabel: [0, "auNumberLabel", "numberLabel"], structure: [0, "auStructure", "structure"], disabled: [2, "auDisabled", "disabled", auBooleanAttribute], boundaryLinks: [2, "auBoundaryLinks", "boundaryLinks", auBooleanAttribute], directionLinks: [2, "auDirectionLinks", "directionLinks", auBooleanAttribute], collectionSize: [2, "auCollectionSize", "collectionSize", auNumberAttribute], page: [2, "auPage", "page", auNumberAttribute], pageSize: [2, "auPageSize", "pageSize", auNumberAttribute], size: [0, "auSize", "size"], pagesFactory: [0, "auPagesFactory", "pagesFactory"], className: [0, "auClassName", "className"] }, outputs: { pageChange: "auPageChange" }, standalone: true, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], attrs:
|
|
470
|
+
i0.ɵɵattribute("aria-label", ctx.state.ariaLabel());
|
|
471
|
+
} }, inputs: { ariaPageLabel: [0, "auAriaPageLabel", "ariaPageLabel"], ariaLiveLabel: [0, "auAriaLiveLabel", "ariaLiveLabel"], ariaLabel: [0, "auAriaLabel", "ariaLabel"], activeLabel: [0, "auActiveLabel", "activeLabel"], ariaFirstLabel: [0, "auAriaFirstLabel", "ariaFirstLabel"], ariaPreviousLabel: [0, "auAriaPreviousLabel", "ariaPreviousLabel"], ariaNextLabel: [0, "auAriaNextLabel", "ariaNextLabel"], ariaLastLabel: [0, "auAriaLastLabel", "ariaLastLabel"], ariaEllipsisLabel: [0, "auAriaEllipsisLabel", "ariaEllipsisLabel"], pageLink: [0, "auPageLink", "pageLink"], ellipsisLabel: [0, "auEllipsisLabel", "ellipsisLabel"], firstPageLabel: [0, "auFirstPageLabel", "firstPageLabel"], previousPageLabel: [0, "auPreviousPageLabel", "previousPageLabel"], nextPageLabel: [0, "auNextPageLabel", "nextPageLabel"], lastPageLabel: [0, "auLastPageLabel", "lastPageLabel"], pagesDisplay: [0, "auPagesDisplay", "pagesDisplay"], numberLabel: [0, "auNumberLabel", "numberLabel"], structure: [0, "auStructure", "structure"], disabled: [2, "auDisabled", "disabled", auBooleanAttribute], boundaryLinks: [2, "auBoundaryLinks", "boundaryLinks", auBooleanAttribute], directionLinks: [2, "auDirectionLinks", "directionLinks", auBooleanAttribute], collectionSize: [2, "auCollectionSize", "collectionSize", auNumberAttribute], page: [2, "auPage", "page", auNumberAttribute], pageSize: [2, "auPageSize", "pageSize", auNumberAttribute], size: [0, "auSize", "size"], pagesFactory: [0, "auPagesFactory", "pagesFactory"], className: [0, "auClassName", "className"] }, outputs: { pageChange: "auPageChange" }, standalone: true, features: [i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], attrs: _c6, decls: 1, vars: 6, consts: [[3, "auSlotProps", "auSlot"]], template: function PaginationComponent_Template(rf, ctx) { if (rf & 1) {
|
|
457
472
|
i0.ɵɵtemplate(0, PaginationComponent_ng_template_0_Template, 0, 0, "ng-template", 0);
|
|
458
473
|
} if (rf & 2) {
|
|
459
|
-
i0.ɵɵproperty("auSlotProps", i0.ɵɵ
|
|
474
|
+
i0.ɵɵproperty("auSlotProps", i0.ɵɵpureFunction3(2, _c2, ctx.state, ctx.api, ctx.directives))("auSlot", ctx.state.structure());
|
|
460
475
|
} }, dependencies: [SlotDirective], encapsulation: 2, changeDetection: 0 }); }
|
|
461
476
|
}
|
|
462
477
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaginationComponent, [{
|
|
@@ -467,12 +482,12 @@ export class PaginationComponent extends BaseWidgetDirective {
|
|
|
467
482
|
imports: [SlotDirective],
|
|
468
483
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
469
484
|
host: {
|
|
470
|
-
'[attr.aria-label]': 'state()
|
|
485
|
+
'[attr.aria-label]': 'state.ariaLabel()',
|
|
471
486
|
},
|
|
472
487
|
encapsulation: ViewEncapsulation.None,
|
|
473
|
-
template: `<ng-template [auSlotProps]="{state
|
|
488
|
+
template: `<ng-template [auSlotProps]="{state, api, directives}" [auSlot]="state.structure()"></ng-template>`,
|
|
474
489
|
}]
|
|
475
|
-
}],
|
|
490
|
+
}], () => [], { ariaPageLabel: [{
|
|
476
491
|
type: Input,
|
|
477
492
|
args: ['auAriaPageLabel']
|
|
478
493
|
}], ariaLiveLabel: [{
|
|
@@ -581,5 +596,5 @@ export class PaginationComponent extends BaseWidgetDirective {
|
|
|
581
596
|
type: Input,
|
|
582
597
|
args: ['auClassName']
|
|
583
598
|
}] }); })();
|
|
584
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PaginationComponent, { className: "PaginationComponent", filePath: "components/pagination/pagination.component.ts", lineNumber:
|
|
585
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFdEosT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRS9DLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7OztJQW1HNUMsOEJBQXNEO0lBQ3JELGtJQUE0RTtJQUM3RSxpQkFBTTtJQUNOLCtCQUE4QjtJQUFBLFlBQTZCO0lBQUEsaUJBQU87Ozs7O0lBRnBELGNBQThCO0lBQUMsQUFBL0IsK0NBQThCLGdFQUFnQztJQUU5QyxlQUE2QjtJQUE3QixnREFBNkI7Ozs7SUFLekQsK0JBQThCO0lBQUEsWUFBdUI7SUFBQSxpQkFBTzs7O0lBQTlCLGNBQXVCO0lBQXZCLDBDQUF1Qjs7O0lBSHZELDRCQUFvRTtJQUVuRSxBQURBLGtJQUErRiw4R0FDcEU7SUFHNUIsaUJBQUk7Ozs7OztJQUxpQixzSEFBOEM7SUFDckQsY0FBNEI7SUFBQyxBQUE3Qiw2Q0FBNEIseUVBQXFEO0lBQzlGLGNBRUM7SUFGRCxvREFFQzs7O0lBWEosNkJBQTRHO0lBTXpHLEFBTEYsa0dBQW1CLDhGQUtWO0lBUVYsaUJBQUs7Ozs7SUFkc0QsQUFB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SzttQkFBQyxlQUFlO1lBRXRCLDBCQUEwQjtrQkFEekIsWUFBWTttQkFBQyx5QkFBeUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7WUFVbEMsU0FBUztrQkFBOUIsS0FBSzttQkFBQyxhQUFhO1lBRXBCLHdCQUF3QjtrQkFEdkIsWUFBWTttQkFBQyw0QkFBNEIsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7WUFRRSxRQUFRO2tCQUFwRSxLQUFLO21CQUFDLEVBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUM7WUFPTyxhQUFhO2tCQUE5RSxLQUFLO21CQUFDLEVBQUMsS0FBSyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBQztZQU9HLGNBQWM7a0JBQWhGLEtBQUs7bUJBQUMsRUFBQyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFDO1lBY0MsY0FBYztrQkFBL0UsS0FBSzttQkFBQyxFQUFDLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUM7WUFTUixJQUFJO2tCQUEzRCxLQUFLO21CQUFDLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUM7WUFRTSxRQUFRO2tCQUFuRSxLQUFLO21CQUFDLEVBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUM7WUFTekMsSUFBSTtrQkFBcEIsS0FBSzttQkFBQyxRQUFRO1lBb0JVLFlBQVk7a0JBQXBDLEtBQUs7bUJBQUMsZ0JBQWdCO1lBYUMsVUFBVTtrQkFBakMsTUFBTTttQkFBQyxjQUFjO1lBT0EsU0FBUztrQkFBOUIsS0FBSzttQkFBQyxhQUFhOztrRkFoVVIsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1Nsb3RDb250ZW50fSBmcm9tICdAYWdub3MtdWkvYW5ndWxhci1oZWFkbGVzcyc7XG5pbXBvcnQge0Jhc2VXaWRnZXREaXJlY3RpdmUsIENvbXBvbmVudFRlbXBsYXRlLCBTbG90RGlyZWN0aXZlLCBVc2VEaXJlY3RpdmUsIGF1Qm9vbGVhbkF0dHJpYnV0ZSwgYXVOdW1iZXJBdHRyaWJ1dGV9IGZyb20gJ0BhZ25vcy11aS9hbmd1bGFyLWhlYWRsZXNzJztcbmltcG9ydCB0eXBlIHtBZnRlckNvbnRlbnRDaGVja2VkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdENvbnRlbnRDaGlsZCxcblx0RGlyZWN0aXZlLFxuXHRFdmVudEVtaXR0ZXIsXG5cdElucHV0LFxuXHRPdXRwdXQsXG5cdFRlbXBsYXRlUmVmLFxuXHRWaWV3Q2hpbGQsXG5cdFZpZXdFbmNhcHN1bGF0aW9uLFxuXHRpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtjYWxsV2lkZ2V0RmFjdG9yeX0gZnJvbSAnLi4vLi4vY29uZmlnJztcbmltcG9ydCB0eXBlIHtQYWdpbmF0aW9uQ29udGV4dCwgUGFnaW5hdGlvbk51bWJlckNvbnRleHQsIFBhZ2luYXRpb25Qcm9wcywgUGFnaW5hdGlvbldpZGdldH0gZnJvbSAnLi9wYWdpbmF0aW9uLmdlbic7XG5pbXBvcnQge2NyZWF0ZVBhZ2luYXRpb259IGZyb20gJy4vcGFnaW5hdGlvbi5nZW4nO1xuXG4vKipcbiAqIEEgZGlyZWN0aXZlIHRvIHVzZSB0byBnaXZlIHRoZSAnZWxsaXBzaXMnIGxpbmsgdGVtcGxhdGUgdG8gdGhlIHBhZ2luYXRpb24gY29tcG9uZW50XG4gKi9cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnbmctdGVtcGxhdGVbYXVQYWdpbmF0aW9uRWxsaXBzaXNdJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkVsbGlwc2lzRGlyZWN0aXZlIHtcblx0cHVibGljIHRlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmPFBhZ2luYXRpb25Db250ZXh0Pik7XG5cdHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKF9kaXI6IFBhZ2luYXRpb25FbGxpcHNpc0RpcmVjdGl2ZSwgY29udGV4dDogdW5rbm93bik6IGNvbnRleHQgaXMgUGFnaW5hdGlvbkNvbnRleHQge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG5cbi8qKlxuICogQSBkaXJlY3RpdmUgdG8gdXNlIHRvIGdpdmUgdGhlICdmaXJzdCcgbGluayB0ZW1wbGF0ZSB0byB0aGUgcGFnaW5hdGlvbiBjb21wb25lbnRcbiAqL1xuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICduZy10ZW1wbGF0ZVthdVBhZ2luYXRpb25GaXJzdF0nLCBzdGFuZGFsb25lOiB0cnVlfSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uRmlyc3REaXJlY3RpdmUge1xuXHRwdWJsaWMgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWY8UGFnaW5hdGlvbkNvbnRleHQ+KTtcblx0c3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoX2RpcjogUGFnaW5hdGlvbkZpcnN0RGlyZWN0aXZlLCBjb250ZXh0OiB1bmtub3duKTogY29udGV4dCBpcyBQYWdpbmF0aW9uQ29udGV4dCB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cbn1cblxuLyoqXG4gKiBBIGRpcmVjdGl2ZSB0byB1c2UgdG8gZ2l2ZSB0aGUgJ2xhc3QnIGxpbmsgdGVtcGxhdGUgdG8gdGhlIHBhZ2luYXRpb24gY29tcG9uZW50XG4gKi9cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnbmctdGVtcGxhdGVbYXVQYWdpbmF0aW9uTGFzdF0nLCBzdGFuZGFsb25lOiB0cnVlfSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uTGFzdERpcmVjdGl2ZSB7XG5cdHB1YmxpYyB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjxQYWdpbmF0aW9uQ29udGV4dD4pO1xuXHRzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZChfZGlyOiBQYWdpbmF0aW9uTGFzdERpcmVjdGl2ZSwgY29udGV4dDogdW5rbm93bik6IGNvbnRleHQgaXMgUGFnaW5hdGlvbkNvbnRleHQge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG5cbi8qKlxuICogQSBkaXJlY3RpdmUgdG8gdXNlIHRvIGdpdmUgdGhlICduZXh0JyBsaW5rIHRlbXBsYXRlIHRvIHRoZSBwYWdpbmF0aW9uIGNvbXBvbmVudFxuICovXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ25nLXRlbXBsYXRlW2F1UGFnaW5hdGlvbk5leHRdJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbk5leHREaXJlY3RpdmUge1xuXHRwdWJsaWMgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWY8UGFnaW5hdGlvbkNvbnRleHQ+KTtcblx0c3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoX2RpcjogUGFnaW5hdGlvbk5leHREaXJlY3RpdmUsIGNvbnRleHQ6IHVua25vd24pOiBjb250ZXh0IGlzIFBhZ2luYXRpb25Db250ZXh0IHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxufVxuXG4vKipcbiAqIEEgZGlyZWN0aXZlIHRvIHVzZSB0byBnaXZlIHRoZSBwYWdlICdudW1iZXInIHRlbXBsYXRlIHRvIHRoZSBwYWdpbmF0aW9uIGNvbXBvbmVudFxuICovXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ25nLXRlbXBsYXRlW2F1UGFnaW5hdGlvbk51bWJlcl0nLCBzdGFuZGFsb25lOiB0cnVlfSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uTnVtYmVyRGlyZWN0aXZlIHtcblx0cHVibGljIHRlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmPFBhZ2luYXRpb25OdW1iZXJDb250ZXh0Pik7XG5cdHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKF9kaXI6IFBhZ2luYXRpb25OdW1iZXJEaXJlY3RpdmUsIGNvbnRleHQ6IHVua25vd24pOiBjb250ZXh0IGlzIFBhZ2luYXRpb25OdW1iZXJDb250ZXh0IHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxufVxuXG4vKipcbiAqIEEgZGlyZWN0aXZlIHRvIHVzZSB0byBnaXZlIHRoZSAncHJldmlvdXMnIGxpbmsgdGVtcGxhdGUgdG8gdGhlIHBhZ2luYXRpb24gY29tcG9uZW50XG4gKi9cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnbmctdGVtcGxhdGVbYXVQYWdpbmF0aW9uUHJldmlvdXNdJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvblByZXZpb3VzRGlyZWN0aXZlIHtcblx0cHVibGljIHRlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmPFBhZ2luYXRpb25Db250ZXh0Pik7XG5cdHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKF9kaXI6IFBhZ2luYXRpb25QcmV2aW91c0RpcmVjdGl2ZSwgY29udGV4dDogdW5rbm93bik6IGNvbnRleHQgaXMgUGFnaW5hdGlvbkNvbnRleHQge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG5cbi8qKlxuICogQSBkaXJlY3RpdmUgdG8gdXNlIHRvIGdpdmUgdGhlICdQYWdlcycgdGVtcGxhdGUgZm9yIHRoZSBQYWdlcyBzbG90XG4gKi9cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnbmctdGVtcGxhdGVbYXVQYWdpbmF0aW9uUGFnZXNdJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvblBhZ2VzRGlyZWN0aXZlIHtcblx0cHVibGljIHRlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmPFBhZ2luYXRpb25Db250ZXh0Pik7XG5cdHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKF9kaXI6IFBhZ2luYXRpb25QYWdlc0RpcmVjdGl2ZSwgY29udGV4dDogdW5rbm93bik6IGNvbnRleHQgaXMgUGFnaW5hdGlvbkNvbnRleHQge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG5cbi8qKlxuICogRGlyZWN0aXZlIHRvIHByb3ZpZGUgdGhlIHNsb3Qgc3RydWN0dXJlIGZvciB0aGUgcGFnaW5hdGlvbiB3aWRnZXQuXG4gKi9cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnbmctdGVtcGxhdGVbYXVQYWdpbmF0aW9uU3RydWN0dXJlXScsIHN0YW5kYWxvbmU6IHRydWV9KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25TdHJ1Y3R1cmVEaXJlY3RpdmUge1xuXHRwdWJsaWMgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWY8UGFnaW5hdGlvbkNvbnRleHQ+KTtcblx0c3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoZGlyOiBQYWdpbmF0aW9uU3RydWN0dXJlRGlyZWN0aXZlLCBjb250ZXh0OiB1bmtub3duKTogY29udGV4dCBpcyBQYWdpbmF0aW9uQ29udGV4dCB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cbn1cblxuQENvbXBvbmVudCh7XG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtTbG90RGlyZWN0aXZlLCBQYWdpbmF0aW9uUGFnZXNEaXJlY3RpdmUsIFBhZ2luYXRpb25TdHJ1Y3R1cmVEaXJlY3RpdmUsIFVzZURpcmVjdGl2ZV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZy10ZW1wbGF0ZSBhdVBhZ2luYXRpb25QYWdlcyAjcGFnZXMgbGV0LXN0YXRlPVwic3RhdGVcIiBsZXQtd2lkZ2V0PVwid2lkZ2V0XCI+XG5cdFx0XHRAZm9yIChwYWdlIG9mIHN0YXRlLnBhZ2VzOyB0cmFjayBwYWdlOyBsZXQgaSA9ICRpbmRleCkge1xuXHRcdFx0XHQ8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIiBbY2xhc3MuYWN0aXZlXT1cInBhZ2UgPT09IHN0YXRlLnBhZ2VcIiBbY2xhc3MuZGlzYWJsZWRdPVwicGFnZSA9PT0gLTEgfHwgc3RhdGUuZGlzYWJsZWRcIj5cblx0XHRcdFx0XHRAaWYgKHBhZ2UgPT09IC0xKSB7XG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwicGFnZS1saW5rIGF1LWVsbGlwc2lzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG5cdFx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBbYXVTbG90XT1cInN0YXRlLmVsbGlwc2lzTGFiZWxcIiBbYXVTbG90UHJvcHNdPVwie3N0YXRlLCB3aWRnZXR9XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj57eyBzdGF0ZS5hcmlhRWxsaXBzaXNMYWJlbCB9fTwvc3Bhbj5cblx0XHRcdFx0XHR9IEBlbHNlIHtcblx0XHRcdFx0XHRcdDxhIGNsYXNzPVwicGFnZS1saW5rXCIgW2F1VXNlXT1cIlt3aWRnZXQuZGlyZWN0aXZlcy5wYWdlTGluaywge3BhZ2V9XVwiPlxuXHRcdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgW2F1U2xvdF09XCJzdGF0ZS5udW1iZXJMYWJlbFwiIFthdVNsb3RQcm9wc109XCJ7c3RhdGUsIHdpZGdldCwgZGlzcGxheWVkUGFnZTogcGFnZX1cIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHRcdFx0XHRAaWYgKHN0YXRlLnBhZ2UgPT09IHBhZ2UpIHtcblx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPnt7IHN0YXRlLmFjdGl2ZUxhYmVsIH19PC9zcGFuPlxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHQ8L2E+XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHQ8L2xpPlxuXHRcdFx0fVxuXHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0PG5nLXRlbXBsYXRlIGF1UGFnaW5hdGlvblN0cnVjdHVyZSAjc3RydWN0dXJlIGxldC1zdGF0ZT1cInN0YXRlXCIgbGV0LXdpZGdldD1cIndpZGdldFwiPlxuXHRcdFx0PHVsIFtjbGFzc109XCInYXUtcGFnaW5hdGlvbiBwYWdpbmF0aW9uJyArIChzdGF0ZS5zaXplID8gJyBwYWdpbmF0aW9uLScgKyBzdGF0ZS5zaXplIDogJycpICsgJyAnICsgc3RhdGUuY2xhc3NOYW1lXCI+XG5cdFx0XHRcdEBpZiAoc3RhdGUuYm91bmRhcnlMaW5rcykge1xuXHRcdFx0XHRcdDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtjbGFzcy5kaXNhYmxlZF09XCJzdGF0ZS5wcmV2aW91c0Rpc2FibGVkXCI+XG5cdFx0XHRcdFx0XHQ8YSBjbGFzcz1cInBhZ2UtbGlua1wiIFthdVVzZV09XCJ3aWRnZXQuZGlyZWN0aXZlcy5wYWdlRmlyc3RcIj5cblx0XHRcdFx0XHRcdFx0PHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG5cdFx0XHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlIFthdVNsb3RdPVwic3RhdGUuZmlyc3RQYWdlTGFiZWxcIiBbYXVTbG90UHJvcHNdPVwie3dpZGdldCwgc3RhdGV9XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHRcdFx0PC9zcGFuPlxuXHRcdFx0XHRcdFx0PC9hPlxuXHRcdFx0XHRcdDwvbGk+XG5cdFx0XHRcdH1cblx0XHRcdFx0QGlmIChzdGF0ZS5kaXJlY3Rpb25MaW5rcykge1xuXHRcdFx0XHRcdDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtjbGFzcy5kaXNhYmxlZF09XCJzdGF0ZS5wcmV2aW91c0Rpc2FibGVkXCI+XG5cdFx0XHRcdFx0XHQ8YSBjbGFzcz1cInBhZ2UtbGlua1wiIFthdVVzZV09XCJ3aWRnZXQuZGlyZWN0aXZlcy5wYWdlUHJldlwiPlxuXHRcdFx0XHRcdFx0XHQ8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj5cblx0XHRcdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgW2F1U2xvdF09XCJzdGF0ZS5wcmV2aW91c1BhZ2VMYWJlbFwiIFthdVNsb3RQcm9wc109XCJ7d2lkZ2V0LCBzdGF0ZX1cIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHRcdFx0XHQ8L3NwYW4+XG5cdFx0XHRcdFx0XHQ8L2E+XG5cdFx0XHRcdFx0PC9saT5cblx0XHRcdFx0fVxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgW2F1U2xvdF09XCJzdGF0ZS5wYWdlc0Rpc3BsYXlcIiBbYXVTbG90UHJvcHNdPVwie3dpZGdldCwgc3RhdGV9XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0QGlmIChzdGF0ZS5kaXJlY3Rpb25MaW5rcykge1xuXHRcdFx0XHRcdDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtjbGFzcy5kaXNhYmxlZF09XCJzdGF0ZS5uZXh0RGlzYWJsZWRcIj5cblx0XHRcdFx0XHRcdDxhIGNsYXNzPVwicGFnZS1saW5rXCIgW2F1VXNlXT1cIndpZGdldC5kaXJlY3RpdmVzLnBhZ2VOZXh0XCI+XG5cdFx0XHRcdFx0XHRcdDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBbYXVTbG90XT1cInN0YXRlLm5leHRQYWdlTGFiZWxcIiBbYXVTbG90UHJvcHNdPVwie3dpZGdldCwgc3RhdGV9XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHRcdFx0PC9zcGFuPlxuXHRcdFx0XHRcdFx0PC9hPlxuXHRcdFx0XHRcdDwvbGk+XG5cdFx0XHRcdH1cblx0XHRcdFx0QGlmIChzdGF0ZS5ib3VuZGFyeUxpbmtzKSB7XG5cdFx0XHRcdFx0PGxpIGNsYXNzPVwicGFnZS1pdGVtXCIgW2NsYXNzLmRpc2FibGVkXT1cInN0YXRlLm5leHREaXNhYmxlZFwiPlxuXHRcdFx0XHRcdFx0PGEgY2xhc3M9XCJwYWdlLWxpbmtcIiBbYXVVc2VdPVwid2lkZ2V0LmRpcmVjdGl2ZXMucGFnZUxhc3RcIj5cblx0XHRcdFx0XHRcdFx0PHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG5cdFx0XHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlIFthdVNsb3RdPVwic3RhdGUubGFzdFBhZ2VMYWJlbFwiIFthdVNsb3RQcm9wc109XCJ7d2lkZ2V0LCBzdGF0ZX1cIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHRcdFx0XHQ8L3NwYW4+XG5cdFx0XHRcdFx0XHQ8L2E+XG5cdFx0XHRcdFx0PC9saT5cblx0XHRcdFx0fVxuXHRcdFx0PC91bD5cblx0XHRcdDxkaXYgYXJpYS1saXZlPVwicG9saXRlXCIgY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj57eyBzdGF0ZS5hcmlhTGl2ZUxhYmVsVGV4dCB9fTwvZGl2PlxuXHRcdDwvbmctdGVtcGxhdGU+XG5cdGAsXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25EZWZhdWx0U2xvdHNDb21wb25lbnQge1xuXHRAVmlld0NoaWxkKCdwYWdlcycsIHtzdGF0aWM6IHRydWV9KSBwYWdlcyE6IFRlbXBsYXRlUmVmPFBhZ2luYXRpb25Db250ZXh0Pjtcblx0QFZpZXdDaGlsZCgnc3RydWN0dXJlJywge3N0YXRpYzogdHJ1ZX0pIHN0cnVjdHVyZSE6IFRlbXBsYXRlUmVmPFBhZ2luYXRpb25Db250ZXh0Pjtcbn1cbi8qKlxuICogVGhlIGRlZmF1bHQgc2xvdCBmb3IgdGhlIHBhZ2VzXG4gKi9cbmV4cG9ydCBjb25zdCBwYWdpbmF0aW9uRGVmYXVsdFNsb3RQYWdlcyA9IG5ldyBDb21wb25lbnRUZW1wbGF0ZShQYWdpbmF0aW9uRGVmYXVsdFNsb3RzQ29tcG9uZW50LCAncGFnZXMnKTtcbi8qKlxuICogVGhlIGRlZmF1bHQgc2xvdCBmb3IgdGhlIHN0cnVjdHVyZVxuICovXG5leHBvcnQgY29uc3QgcGFnaW5hdGlvbkRlZmF1bHRTbG90U3RydWN0dXJlID0gbmV3IENvbXBvbmVudFRlbXBsYXRlKFBhZ2luYXRpb25EZWZhdWx0U2xvdHNDb21wb25lbnQsICdzdHJ1Y3R1cmUnKTtcblxuY29uc3QgZGVmYXVsdENvbmZpZzogUGFydGlhbDxQYWdpbmF0aW9uUHJvcHM+ID0ge1xuXHRzdHJ1Y3R1cmU6IHBhZ2luYXRpb25EZWZhdWx0U2xvdFN0cnVjdHVyZSxcblx0cGFnZXNEaXNwbGF5OiBwYWdpbmF0aW9uRGVmYXVsdFNsb3RQYWdlcyxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ1thdVBhZ2luYXRpb25dJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW1Nsb3REaXJlY3RpdmVdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aG9zdDoge1xuXHRcdCdbYXR0ci5hcmlhLWxhYmVsXSc6ICdzdGF0ZSgpLmFyaWFMYWJlbCcsXG5cdH0sXG5cdGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG5cdHRlbXBsYXRlOiBgPG5nLXRlbXBsYXRlIFthdVNsb3RQcm9wc109XCJ7c3RhdGU6IHN0YXRlKCksIHdpZGdldH1cIiBbYXVTbG90XT1cInN0YXRlKCkuc3RydWN0dXJlXCI+PC9uZy10ZW1wbGF0ZT5gLFxufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZVdpZGdldERpcmVjdGl2ZTxQYWdpbmF0aW9uV2lkZ2V0PiBpbXBsZW1lbnRzIEFmdGVyQ29udGVudENoZWNrZWQge1xuXHQvKipcblx0ICogUHJvdmlkZSB0aGUgbGFiZWwgZm9yIGVhY2ggXCJQYWdlXCIgcGFnZSBidXR0b24uXG5cdCAqIFRoaXMgaXMgdXNlZCBmb3IgYWNjZXNzaWJpbGl0eSBwdXJwb3Nlcy5cblx0ICogZm9yIEkxOG4sIHdlIHN1Z2dlc3QgdG8gdXNlIHRoZSBnbG9iYWwgY29uZmlndXJhdGlvblxuXHQgKiBvdmVycmlkZSBhbnkgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIHByb3ZpZGVkIGZvciB0aGlzXG5cdCAqIEBwYXJhbSBwcm9jZXNzUGFnZSAtIFRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyXG5cdCAqIEBwYXJhbSBwYWdlQ291bnQgLSBUaGUgdG90YWwgbnVtYmVyIG9mIHBhZ2VzXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWVcblx0ICogYGBgdHNcblx0ICogKHByb2Nlc3NQYWdlOiBudW1iZXIsIHBhZ2VDb3VudDogbnVtYmVyKSA9PiBgUGFnZSAke3Byb2Nlc3NQYWdlfSBvZiAke3BhZ2VDb3VudH1gXG5cdCAqIGBgYFxuXHQgKi9cblx0QElucHV0KCdhdUFyaWFQYWdlTGFiZWwnKSBhcmlhUGFnZUxhYmVsOiAoKHByb2Nlc3NQYWdlOiBudW1iZXIsIHBhZ2VDb3VudDogbnVtYmVyKSA9PiBzdHJpbmcpIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBQcm92aWRlIHRoZSBsYWJlbCBmb3IgdGhlIGFyaWEtbGl2ZSBlbGVtZW50XG5cdCAqIFRoaXMgaXMgdXNlZCBmb3IgYWNjZXNzaWJpbGl0eSBwdXJwb3Nlcy5cblx0ICogZm9yIEkxOG4sIHdlIHN1Z2dlc3QgdG8gdXNlIHRoZSBnbG9iYWwgY29uZmlndXJhdGlvblxuXHQgKiBvdmVycmlkZSBhbnkgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIHByb3ZpZGVkIGZvciB0aGlzXG5cdCAqIEBwYXJhbSBjdXJyZW50UGFnZSAtIFRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyXG5cdCAqIEBwYXJhbSBwYWdlQ291bnQgLSBUaGUgdG90YWwgbnVtYmVyIG9mIHBhZ2VzXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWVcblx0ICogYGBgdHNcblx0ICogKGN1cnJlbnRQYWdlOiBudW1iZXIsIHBhZ2VDb3VudDogbnVtYmVyKSA9PiBgQ3VycmVudCBwYWdlIGlzICR7Y3VycmVudFBhZ2V9YFxuXHQgKiBgYGBcblx0ICovXG5cdEBJbnB1dCgnYXVBcmlhTGl2ZUxhYmVsJykgYXJpYUxpdmVMYWJlbDogKChjdXJyZW50UGFnZTogbnVtYmVyLCBwYWdlQ291bnQ6IG51bWJlcikgPT4gc3RyaW5nKSB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogVGhlIGxhYmVsIGZvciB0aGUgbmF2IGVsZW1lbnQuXG5cdCAqXG5cdCAqIGZvciBJMThuLCB3ZSBzdWdnZXN0IHRvIHVzZSB0aGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cblx0ICogb3ZlcnJpZGUgYW55IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBwcm92aWRlZCBmb3IgdGhpc1xuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGAnUGFnZSBuYXZpZ2F0aW9uJ2Bcblx0ICovXG5cdEBJbnB1dCgnYXVBcmlhTGFiZWwnKSBhcmlhTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogVGhlIGxhYmVsIGZvciB0aGUgXCJhY3RpdmVcIiBwYWdlLlxuXHQgKiBmb3IgSTE4biwgd2Ugc3VnZ2VzdCB0byB1c2UgdGhlIGdsb2JhbCBjb25maWd1cmF0aW9uXG5cdCAqIG92ZXJyaWRlIGFueSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgcHJvdmlkZWQgZm9yIHRoaXNcblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZVxuXHQgKiBgYGB0c1xuXHQgKiAnKGN1cnJlbnQpJ1xuXHQgKiBgYGBcblx0ICovXG5cdEBJbnB1dCgnYXVBY3RpdmVMYWJlbCcpIGFjdGl2ZUxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFRoZSBsYWJlbCBmb3IgdGhlIFwiRmlyc3RcIiBwYWdlIGJ1dHRvbi5cblx0ICogZm9yIEkxOG4sIHdlIHN1Z2dlc3QgdG8gdXNlIHRoZSBnbG9iYWwgY29uZmlndXJhdGlvblxuXHQgKiBvdmVycmlkZSBhbnkgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIHByb3ZpZGVkIGZvciB0aGlzXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWVcblx0ICogYGBgdHNcblx0ICogJ0FjdGlvbiBsaW5rIGZvciBmaXJzdCBwYWdlJ1xuXHQgKiBgYGBcblx0ICovXG5cdEBJbnB1dCgnYXVBcmlhRmlyc3RMYWJlbCcpIGFyaWFGaXJzdExhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFRoZSBsYWJlbCBmb3IgdGhlIFwiUHJldmlvdXNcIiBwYWdlIGJ1dHRvbi5cblx0ICogZm9yIEkxOG4sIHdlIHN1Z2dlc3QgdG8gdXNlIHRoZSBnbG9iYWwgY29uZmlndXJhdGlvblxuXHQgKiBvdmVycmlkZSBhbnkgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIHByb3ZpZGVkIGZvciB0aGlzXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWVcblx0ICogYGBgdHNcblx0ICogJ0FjdGlvbiBsaW5rIGZvciBwcmV2aW91cyBwYWdlJ1xuXHQgKiBgYGBcblx0ICovXG5cdEBJbnB1dCgnYXVBcmlhUHJldmlvdXNMYWJlbCcpIGFyaWFQcmV2aW91c0xhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFRoZSBsYWJlbCBmb3IgdGhlIFwiTmV4dFwiIHBhZ2UgYnV0dG9uLlxuXHQgKiBmb3IgSTE4biwgd2Ugc3VnZ2VzdCB0byB1c2UgdGhlIGdsb2JhbCBjb25maWd1cmF0aW9uXG5cdCAqIG92ZXJyaWRlIGFueSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgcHJvdmlkZWQgZm9yIHRoaXNcblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZVxuXHQgKiBgYGB0c1xuXHQgKiAnQWN0aW9uIGxpbmsgZm9yIG5leHQgcGFnZSdcblx0ICogYGBgXG5cdCAqL1xuXHRASW5wdXQoJ2F1QXJpYU5leHRMYWJlbCcpIGFyaWFOZXh0TGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogVGhlIGxhYmVsIGZvciB0aGUgXCJMYXN0XCIgcGFnZSBidXR0b24uXG5cdCAqIGZvciBJMThuLCB3ZSBzdWdnZXN0IHRvIHVzZSB0aGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cblx0ICogb3ZlcnJpZGUgYW55IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBwcm92aWRlZCBmb3IgdGhpc1xuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlXG5cdCAqIGBgYHRzXG5cdCAqICdBY3Rpb24gbGluayBmb3IgbGFzdCBwYWdlJ1xuXHQgKiBgYGBcblx0ICovXG5cdEBJbnB1dCgnYXVBcmlhTGFzdExhYmVsJykgYXJpYUxhc3RMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBUaGUgbGFiZWwgZm9yIHRoZSBcIkVsbGlwc2lzXCIgcGFnZS5cblx0ICogZm9yIEkxOG4sIHdlIHN1Z2dlc3QgdG8gdXNlIHRoZSBnbG9iYWwgY29uZmlndXJhdGlvblxuXHQgKiBvdmVycmlkZSBhbnkgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIHByb3ZpZGVkIGZvciB0aGlzXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYCdFbGxpcHNpcyBwYWdlIGVsZW1lbnQnYFxuXHQgKi9cblx0QElucHV0KCdhdUFyaWFFbGxpcHNpc0xhYmVsJykgYXJpYUVsbGlwc2lzTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogRmFjdG9yeSBmdW5jdGlvbiBwcm92aWRpbmcgdGhlIGhyZWYgZm9yIGEgXCJQYWdlXCIgcGFnZSBhbmNob3IsXG5cdCAqIGJhc2VkIG9uIHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyXG5cdCAqIEBwYXJhbSBwYWdlTnVtYmVyIC0gVGhlIGluZGV4IHRvIHVzZSBpbiB0aGUgbGlua1xuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlXG5cdCAqIGBgYHRzXG5cdCAqIChfcGFnZTogbnVtYmVyKSA9PiBQQUdFX0xJTktfREVGQVVMVFxuXHQgKiBgYGBcblx0ICovXG5cdEBJbnB1dCgnYXVQYWdlTGluaycpIHBhZ2VMaW5rOiAoKHBhZ2VOdW1iZXI6IG51bWJlcikgPT4gc3RyaW5nKSB8IHVuZGVmaW5lZDtcblxuXHRyZWFkb25seSBfd2lkZ2V0ID0gY2FsbFdpZGdldEZhY3Rvcnkoe1xuXHRcdGZhY3Rvcnk6IGNyZWF0ZVBhZ2luYXRpb24sXG5cdFx0d2lkZ2V0TmFtZTogJ3BhZ2luYXRpb24nLFxuXHRcdGRlZmF1bHRDb25maWcsXG5cdFx0ZXZlbnRzOiB7XG5cdFx0XHRvblBhZ2VDaGFuZ2U6IChwYWdlOiBudW1iZXIpID0+IHRoaXMucGFnZUNoYW5nZS5lbWl0KHBhZ2UpLFxuXHRcdH0sXG5cdH0pO1xuXG5cdC8qKlxuXHQgKiBUaGUgdGVtcGxhdGUgdG8gdXNlIGZvciB0aGUgZWxsaXBzaXMgc2xvdFxuXHQgKiBmb3IgSTE4biwgd2Ugc3VnZ2VzdCB0byB1c2UgdGhlIGdsb2JhbCBjb25maWd1cmF0aW9uXG5cdCAqIG92ZXJyaWRlIGFueSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgcHJvdmlkZWQgZm9yIHRoaXNcblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgJ+KApidgXG5cdCAqL1xuXHRASW5wdXQoJ2F1RWxsaXBzaXNMYWJlbCcpIGVsbGlwc2lzTGFiZWw6IFNsb3RDb250ZW50PFBhZ2luYXRpb25Db250ZXh0Pjtcblx0QENvbnRlbnRDaGlsZChQYWdpbmF0aW9uRWxsaXBzaXNEaXJlY3RpdmUsIHtzdGF0aWM6IGZhbHNlfSlcblx0c2xvdEVsbGlwc2lzRnJvbUNvbnRlbnQ6IFBhZ2luYXRpb25FbGxpcHNpc0RpcmVjdGl2ZSB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogVGhlIHRlbXBsYXRlIHRvIHVzZSBmb3IgdGhlIGZpcnN0IHNsb3Rcblx0ICogZm9yIEkxOG4sIHdlIHN1Z2dlc3QgdG8gdXNlIHRoZSBnbG9iYWwgY29uZmlndXJhdGlvblxuXHQgKiBvdmVycmlkZSBhbnkgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIHByb3ZpZGVkIGZvciB0aGlzXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYCfCqydgXG5cdCAqL1xuXHRASW5wdXQoJ2F1Rmlyc3RQYWdlTGFiZWwnKSBmaXJzdFBhZ2VMYWJlbDogU2xvdENvbnRlbnQ8UGFnaW5hdGlvbkNvbnRleHQ+O1xuXHRAQ29udGVudENoaWxkKFBhZ2luYXRpb25GaXJzdERpcmVjdGl2ZSwge3N0YXRpYzogZmFsc2V9KVxuXHRzbG90Rmlyc3RGcm9tQ29udGVudDogUGFnaW5hdGlvbkZpcnN0RGlyZWN0aXZlIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBUaGUgdGVtcGxhdGUgdG8gdXNlIGZvciB0aGUgcHJldmlvdXMgc2xvdFxuXHQgKiBmb3IgSTE4biwgd2Ugc3VnZ2VzdCB0byB1c2UgdGhlIGdsb2JhbCBjb25maWd1cmF0aW9uXG5cdCAqIG92ZXJyaWRlIGFueSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgcHJvdmlkZWQgZm9yIHRoaXNcblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgJ+KAuSdgXG5cdCAqL1xuXHRASW5wdXQoJ2F1UHJldmlvdXNQYWdlTGFiZWwnKSBwcmV2aW91c1BhZ2VMYWJlbDogU2xvdENvbnRlbnQ8UGFnaW5hdGlvbkNvbnRleHQ+O1xuXHRAQ29udGVudENoaWxkKFBhZ2luYXRpb25QcmV2aW91c0RpcmVjdGl2ZSwge3N0YXRpYzogZmFsc2V9KVxuXHRzbG90UHJldmlvdXNGcm9tQ29udGVudDogUGFnaW5hdGlvblByZXZpb3VzRGlyZWN0aXZlIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBUaGUgdGVtcGxhdGUgdG8gdXNlIGZvciB0aGUgbmV4dCBzbG90XG5cdCAqIGZvciBJMThuLCB3ZSBzdWdnZXN0IHRvIHVzZSB0aGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cblx0ICogb3ZlcnJpZGUgYW55IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBwcm92aWRlZCBmb3IgdGhpc1xuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGAn4oC6J2Bcblx0ICovXG5cdEBJbnB1dCgnYXVOZXh0UGFnZUxhYmVsJykgbmV4dFBhZ2VMYWJlbDogU2xvdENvbnRlbnQ8UGFnaW5hdGlvbkNvbnRleHQ+O1xuXHRAQ29udGVudENoaWxkKFBhZ2luYXRpb25OZXh0RGlyZWN0aXZlLCB7c3RhdGljOiBmYWxzZX0pXG5cdHNsb3ROZXh0RnJvbUNvbnRlbnQ6IFBhZ2luYXRpb25OZXh0RGlyZWN0aXZlIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBUaGUgdGVtcGxhdGUgdG8gdXNlIGZvciB0aGUgbGFzdCBzbG90XG5cdCAqIGZvciBJMThuLCB3ZSBzdWdnZXN0IHRvIHVzZSB0aGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cblx0ICogb3ZlcnJpZGUgYW55IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBwcm92aWRlZCBmb3IgdGhpc1xuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGAnwrsnYFxuXHQgKi9cblx0QElucHV0KCdhdUxhc3RQYWdlTGFiZWwnKSBsYXN0UGFnZUxhYmVsOiBTbG90Q29udGVudDxQYWdpbmF0aW9uQ29udGV4dD47XG5cdEBDb250ZW50Q2hpbGQoUGFnaW5hdGlvbkxhc3REaXJlY3RpdmUsIHtzdGF0aWM6IGZhbHNlfSlcblx0c2xvdExhc3RGcm9tQ29udGVudDogUGFnaW5hdGlvbkxhc3REaXJlY3RpdmUgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFRoZSB0ZW1wbGF0ZSB0byB1c2UgZm9yIHRoZSBwYWdlcyBzbG90XG5cdCAqIFRvIHVzZSB0byBjdXN0b21pemUgdGhlIHBhZ2VzIHZpZXdcblx0ICogb3ZlcnJpZGUgYW55IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBwcm92aWRlZCBmb3IgdGhpc1xuXHQgKi9cblx0QElucHV0KCdhdVBhZ2VzRGlzcGxheScpIHBhZ2VzRGlzcGxheTogU2xvdENvbnRlbnQ8UGFnaW5hdGlvbkNvbnRleHQ+O1xuXHRAQ29udGVudENoaWxkKFBhZ2luYXRpb25QYWdlc0RpcmVjdGl2ZSwge3N0YXRpYzogZmFsc2V9KVxuXHRzbG90UGFnZXNGcm9tQ29udGVudDogUGFnaW5hdGlvblBhZ2VzRGlyZWN0aXZlIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBUaGUgdGVtcGxhdGUgdG8gdXNlIGZvciB0aGUgbnVtYmVyIHNsb3Rcblx0ICogb3ZlcnJpZGUgYW55IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBwcm92aWRlZCBmb3IgdGhpc1xuXHQgKiBmb3IgSTE4biwgd2Ugc3VnZ2VzdCB0byB1c2UgdGhlIGdsb2JhbCBjb25maWd1cmF0aW9uXG5cdCAqIEBwYXJhbSBkaXNwbGF5ZWRQYWdlIC0gVGhlIGN1cnJlbnQgcGFnZSBudW1iZXJcblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZVxuXHQgKiBgYGB0c1xuXHQgKiAoe2Rpc3BsYXllZFBhZ2V9OiBQYWdpbmF0aW9uTnVtYmVyQ29udGV4dCkgPT4gYCR7ZGlzcGxheWVkUGFnZX1gXG5cdCAqIGBgYFxuXHQgKi9cblx0QElucHV0KCdhdU51bWJlckxhYmVsJykgbnVtYmVyTGFiZWw6IFNsb3RDb250ZW50PFBhZ2luYXRpb25OdW1iZXJDb250ZXh0Pjtcblx0QENvbnRlbnRDaGlsZChQYWdpbmF0aW9uTnVtYmVyRGlyZWN0aXZlLCB7c3RhdGljOiBmYWxzZX0pXG5cdHNsb3ROdW1iZXJMYWJlbEZyb21Db250ZW50OiBQYWdpbmF0aW9uTnVtYmVyRGlyZWN0aXZlIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBUaGUgdGVtcGxhdGUgdG8gdXNlIGZvciB0aGUgc3RydWN0dXJlIG9mIHRoZSBwYWdpbmF0aW9uIGNvbXBvbmVudFxuXHQgKiBUaGUgZGVmYXVsdCBzdHJ1Y3R1cmUgdXNlcyB7QGxpbmsgUGFnaW5hdGlvblByb3BzLmVsbGlwc2lzTGFiZWx8ZWxsaXBzaXNMYWJlbH0sIHtAbGluayBQYWdpbmF0aW9uUHJvcHMuZmlyc3RQYWdlTGFiZWx8Zmlyc3RQYWdlTGFiZWx9LFxuXHQgKiB7QGxpbmsgUGFnaW5hdGlvblByb3BzLnByZXZpb3VzUGFnZUxhYmVsfHByZXZpb3VzUGFnZUxhYmVsfSwge0BsaW5rIFBhZ2luYXRpb25Qcm9wcy5uZXh0UGFnZUxhYmVsfG5leHRQYWdlTGFiZWx9LFxuXHQgKiB7QGxpbmsgUGFnaW5hdGlvblByb3BzLmxhc3RQYWdlTGFiZWx8bGFzdFBhZ2VMYWJlbH0sIHtAbGluayBQYWdpbmF0aW9uUHJvcHMucGFnZXNEaXNwbGF5fHBhZ2VzRGlzcGxheX0sXG5cdCAqIHtAbGluayBQYWdpbmF0aW9uUHJvcHMubnVtYmVyTGFiZWx8bnVtYmVyTGFiZWx9LFxuXHQgKi9cblx0QElucHV0KCdhdVN0cnVjdHVyZScpIHN0cnVjdHVyZTogU2xvdENvbnRlbnQ8UGFnaW5hdGlvbkNvbnRleHQ+O1xuXHRAQ29udGVudENoaWxkKFBhZ2luYXRpb25TdHJ1Y3R1cmVEaXJlY3RpdmUsIHtzdGF0aWM6IGZhbHNlfSlcblx0c2xvdFN0cnVjdHVyZUZyb21Db250ZW50OiBQYWdpbmF0aW9uU3RydWN0dXJlRGlyZWN0aXZlIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBJZiBgdHJ1ZWAsIHBhZ2luYXRpb24gbGlua3Mgd2lsbCBiZSBkaXNhYmxlZC5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgZmFsc2VgXG5cdCAqL1xuXHRASW5wdXQoe2FsaWFzOiAnYXVEaXNhYmxlZCcsIHRyYW5zZm9ybTogYXVCb29sZWFuQXR0cmlidXRlfSkgZGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIElmIGB0cnVlYCwgdGhlIFwiRmlyc3RcIiBhbmQgXCJMYXN0XCIgcGFnZSBsaW5rcyBhcmUgc2hvd24uXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYGZhbHNlYFxuXHQgKi9cblx0QElucHV0KHthbGlhczogJ2F1Qm91bmRhcnlMaW5rcycsIHRyYW5zZm9ybTogYXVCb29sZWFuQXR0cmlidXRlfSkgYm91bmRhcnlMaW5rczogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogSWYgYHRydWVgLCB0aGUgXCJOZXh0XCIgYW5kIFwiUHJldmlvdXNcIiBwYWdlIGxpbmtzIGFyZSBzaG93bi5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgdHJ1ZWBcblx0ICovXG5cdEBJbnB1dCh7YWxpYXM6ICdhdURpcmVjdGlvbkxpbmtzJywgdHJhbnNmb3JtOiBhdUJvb2xlYW5BdHRyaWJ1dGV9KSBkaXJlY3Rpb25MaW5rczogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogVGhlIG51bWJlciBvZiBpdGVtcyBpbiB5b3VyIHBhZ2luYXRlZCBjb2xsZWN0aW9uLlxuXHQgKlxuXHQgKiBOb3RlLCB0aGF0IHRoaXMgaXMgbm90IHRoZSBudW1iZXIgb2YgcGFnZXMuIFBhZ2UgbnVtYmVycyBhcmUgY2FsY3VsYXRlZCBkeW5hbWljYWxseSBiYXNlZCBvblxuXHQgKiBgY29sbGVjdGlvblNpemVgIGFuZCBgcGFnZVNpemVgLlxuXHQgKlxuXHQgKiBFeC4gaWYgeW91IGhhdmUgMTAwIGl0ZW1zIGluIHlvdXIgY29sbGVjdGlvbiBhbmQgZGlzcGxheWluZyAyMCBpdGVtcyBwZXIgcGFnZSwgeW91J2xsIGVuZCB1cCB3aXRoIDUgcGFnZXMuXG5cdCAqXG5cdCAqIFdoYXRldmVyIHRoZSBjb2xsZWN0aW9uU2l6ZSB0aGUgcGFnZSBudW1iZXIgaXMgb2YgbWluaW11bSAxLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGAwYFxuXHQgKi9cblx0QElucHV0KHthbGlhczogJ2F1Q29sbGVjdGlvblNpemUnLCB0cmFuc2Zvcm06IGF1TnVtYmVyQXR0cmlidXRlfSkgY29sbGVjdGlvblNpemU6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogVGhlIGN1cnJlbnQgcGFnZS5cblx0ICpcblx0ICogUGFnZSBudW1iZXJzIHN0YXJ0IHdpdGggYDFgLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGAxYFxuXHQgKi9cblx0QElucHV0KHthbGlhczogJ2F1UGFnZScsIHRyYW5zZm9ybTogYXVOdW1iZXJBdHRyaWJ1dGV9KSBwYWdlOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFRoZSBudW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UuXG5cdCAqIEByZW1hcmtzIG1pbiB2YWx1ZSBpcyAxXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYDEwYFxuXHQgKi9cblx0QElucHV0KHthbGlhczogJ2F1UGFnZVNpemUnLCB0cmFuc2Zvcm06IGF1TnVtYmVyQXR0cmlidXRlfSkgcGFnZVNpemU6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogVGhlIHBhZ2luYXRpb24gZGlzcGxheSBzaXplLlxuXHQgKlxuXHQgKiBCb290c3RyYXAgY3VycmVudGx5IHN1cHBvcnRzIHNtYWxsIGFuZCBsYXJnZSBzaXplcy5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgbnVsbGBcblx0ICovXG5cdEBJbnB1dCgnYXVTaXplJykgc2l6ZTogJ3NtJyB8ICdsZycgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBwYWdlc0ZhY3RvcnkgcmV0dXJucyBhIGZ1bmN0aW9uIGNvbXB1dGluZyB0aGUgYXJyYXkgb2YgcGFnZXMgdG8gYmUgZGlzcGxheWVkXG5cdCAqIGFzIG51bWJlciAoLTEgYXJlIHRyZWF0ZWQgYXMgZWxsaXBzaXMpLlxuXHQgKiBVc2UgUGFnZSBzbG90IHRvIGN1c3RvbWl6ZSB0aGUgcGFnZXMgdmlldyBhbmQgbm90IHRoaXNcblx0ICogQHBhcmFtIHBhZ2UgLSBUaGUgY3VycmVudCBwYWdlIG51bWJlclxuXHQgKiBAcGFyYW0gcGFnZUNvdW50IC0gVGhlIHRvdGFsIG51bWJlciBvZiBwYWdlc1xuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlXG5cdCAqIGBgYHRzXG5cdCAqIChfcGFnZTogbnVtYmVyLCBwYWdlQ291bnQ6IG51bWJlcikgPT4ge1xuXHQgKiBcdFx0Y29uc3QgcGFnZXM6IG51bWJlcltdID0gW107XG5cdCAqIFx0XHRmb3IgKGxldCBpID0gMTsgaSA8PSBwYWdlQ291bnQ7IGkrKykge1xuXHQgKiBcdFx0XHRwYWdlcy5wdXNoKGkpO1xuXHQgKiBcdFx0fVxuXHQgKiBcdFx0cmV0dXJuIHBhZ2VzO1xuXHQgKiBcdH1cblx0ICogYGBgXG5cdCAqL1xuXHRASW5wdXQoJ2F1UGFnZXNGYWN0b3J5JykgcGFnZXNGYWN0b3J5OiAoKHBhZ2U6IG51bWJlciwgcGFnZUNvdW50OiBudW1iZXIpID0+IG51bWJlcltdKSB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogQW4gZXZlbnQgZmlyZWQgd2hlbiB0aGUgcGFnZSBpcyBjaGFuZ2VkLlxuXHQgKlxuXHQgKiBFdmVudCBwYXlsb2FkIGlzIHRoZSBudW1iZXIgb2YgdGhlIG5ld2x5IHNlbGVjdGVkIHBhZ2UuXG5cdCAqXG5cdCAqIFBhZ2UgbnVtYmVycyBzdGFydCB3aXRoIGAxYC5cblx0ICogQGRlZmF1bHRWYWx1ZVxuXHQgKiBgYGB0c1xuXHQgKiAoKSA9PiB7fVxuXHQgKiBgYGBcblx0ICovXG5cdEBPdXRwdXQoJ2F1UGFnZUNoYW5nZScpIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuXHQvKipcblx0ICogQ1NTIGNsYXNzZXMgdG8gYmUgYXBwbGllZCBvbiB0aGUgd2lkZ2V0IG1haW4gY29udGFpbmVyXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYCcnYFxuXHQgKi9cblx0QElucHV0KCdhdUNsYXNzTmFtZScpIGNsYXNzTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcblx0XHR0aGlzLl93aWRnZXQucGF0Y2hTbG90cyh7XG5cdFx0XHRzdHJ1Y3R1cmU6IHRoaXMuc2xvdFN0cnVjdHVyZUZyb21Db250ZW50Py50ZW1wbGF0ZVJlZixcblx0XHRcdGVsbGlwc2lzTGFiZWw6IHRoaXMuc2xvdEVsbGlwc2lzRnJvbUNvbnRlbnQ/LnRlbXBsYXRlUmVmLFxuXHRcdFx0Zmlyc3RQYWdlTGFiZWw6IHRoaXMuc2xvdEZpcnN0RnJvbUNvbnRlbnQ/LnRlbXBsYXRlUmVmLFxuXHRcdFx0cHJldmlvdXNQYWdlTGFiZWw6IHRoaXMuc2xvdFByZXZpb3VzRnJvbUNvbnRlbnQ/LnRlbXBsYXRlUmVmLFxuXHRcdFx0bmV4dFBhZ2VMYWJlbDogdGhpcy5zbG90TmV4dEZyb21Db250ZW50Py50ZW1wbGF0ZVJlZixcblx0XHRcdGxhc3RQYWdlTGFiZWw6IHRoaXMuc2xvdExhc3RGcm9tQ29udGVudD8udGVtcGxhdGVSZWYsXG5cdFx0XHRwYWdlc0Rpc3BsYXk6IHRoaXMuc2xvdFBhZ2VzRnJvbUNvbnRlbnQ/LnRlbXBsYXRlUmVmLFxuXHRcdFx0bnVtYmVyTGFiZWw6IHRoaXMuc2xvdE51bWJlckxhYmVsRnJvbUNvbnRlbnQ/LnRlbXBsYXRlUmVmLFxuXHRcdH0pO1xuXHR9XG59XG4iXX0=
|
|
599
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PaginationComponent, { className: "PaginationComponent", filePath: "components/pagination/pagination.component.ts", lineNumber: 213 }); })();
|
|
600
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDdEosT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRS9DLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7O0lBMkc1Qyw4QkFBc0Q7SUFDckQsa0lBQXVGO0lBQ3hGLGlCQUFNO0lBQ04sK0JBQThCO0lBQUEsWUFBK0I7SUFBQSxpQkFBTzs7Ozs7O0lBRnRELGNBQWdDO0lBQUMsQUFBakMsaURBQWdDLDRFQUF5QztJQUV6RCxlQUErQjtJQUEvQixrREFBK0I7Ozs7SUFLM0QsK0JBQThCO0lBQUEsWUFBeUI7SUFBQSxpQkFBTzs7O0lBQWhDLGNBQXlCO0lBQXpCLDRDQUF5Qjs7O0lBSHpELDRCQUE2RDtJQUU1RCxBQURBLGtJQUEwRyw4R0FDN0U7SUFHOUIsaUJBQUk7Ozs7Ozs7SUFMaUIsK0dBQXVDO0lBQzlDLGNBQThCO0lBQUMsQUFBL0IsK0NBQThCLHFGQUE4RDtJQUN6RyxjQUVDO0lBRkQsc0RBRUM7OztJQVhKLDZCQUFnSDtJQU03RyxBQUxGLGtHQUFtQiw4RkFLVjtJQVFWLGlCQUFLOzs7O0lBZHdELEFB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QWU7WUFFdEIsMEJBQTBCO2tCQUR6QixZQUFZO21CQUFDLHlCQUF5QixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztZQVVsQyxTQUFTO2tCQUE5QixLQUFLO21CQUFDLGFBQWE7WUFFcEIsd0JBQXdCO2tCQUR2QixZQUFZO21CQUFDLDRCQUE0QixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztZQVFFLFFBQVE7a0JBQXBFLEtBQUs7bUJBQUMsRUFBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBQztZQU9PLGFBQWE7a0JBQTlFLEtBQUs7bUJBQUMsRUFBQyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFDO1lBT0csY0FBYztrQkFBaEYsS0FBSzttQkFBQyxFQUFDLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUM7WUFjQyxjQUFjO2tCQUEvRSxLQUFLO21CQUFDLEVBQUMsS0FBSyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBQztZQVNSLElBQUk7a0JBQTNELEtBQUs7bUJBQUMsRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBQztZQVFNLFFBQVE7a0JBQW5FLEtBQUs7bUJBQUMsRUFBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBQztZQVN6QyxJQUFJO2tCQUFwQixLQUFLO21CQUFDLFFBQVE7WUFvQlUsWUFBWTtrQkFBcEMsS0FBSzttQkFBQyxnQkFBZ0I7WUFhQyxVQUFVO2tCQUFqQyxNQUFNO21CQUFDLGNBQWM7WUFPQSxTQUFTO2tCQUE5QixLQUFLO21CQUFDLGFBQWE7O2tGQXZUUixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7U2xvdENvbnRlbnR9IGZyb20gJ0BhZ25vcy11aS9hbmd1bGFyLWhlYWRsZXNzJztcbmltcG9ydCB7QmFzZVdpZGdldERpcmVjdGl2ZSwgQ29tcG9uZW50VGVtcGxhdGUsIFNsb3REaXJlY3RpdmUsIFVzZURpcmVjdGl2ZSwgYXVCb29sZWFuQXR0cmlidXRlLCBhdU51bWJlckF0dHJpYnV0ZX0gZnJvbSAnQGFnbm9zLXVpL2FuZ3VsYXItaGVhZGxlc3MnO1xuaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Q29udGVudENoaWxkLFxuXHREaXJlY3RpdmUsXG5cdEV2ZW50RW1pdHRlcixcblx0SW5wdXQsXG5cdE91dHB1dCxcblx0VGVtcGxhdGVSZWYsXG5cdFZpZXdDaGlsZCxcblx0Vmlld0VuY2Fwc3VsYXRpb24sXG5cdGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2NhbGxXaWRnZXRGYWN0b3J5fSBmcm9tICcuLi8uLi9jb25maWcnO1xuaW1wb3J0IHR5cGUge1BhZ2luYXRpb25Db250ZXh0LCBQYWdpbmF0aW9uTnVtYmVyQ29udGV4dCwgUGFnaW5hdGlvbldpZGdldH0gZnJvbSAnLi9wYWdpbmF0aW9uLmdlbic7XG5pbXBvcnQge2NyZWF0ZVBhZ2luYXRpb259IGZyb20gJy4vcGFnaW5hdGlvbi5nZW4nO1xuXG4vKipcbiAqIEEgZGlyZWN0aXZlIHRvIHVzZSB0byBnaXZlIHRoZSAnZWxsaXBzaXMnIGxpbmsgdGVtcGxhdGUgdG8gdGhlIHBhZ2luYXRpb24gY29tcG9uZW50XG4gKiBUaGlzIGRpcmVjdGl2ZSBwcm92aWRlcyBhIHRlbXBsYXRlIHJlZmVyZW5jZSBmb3IgdGhlIHtAbGluayBQYWdpbmF0aW9uQ29udGV4dH0uXG4gKi9cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnbmctdGVtcGxhdGVbYXVQYWdpbmF0aW9uRWxsaXBzaXNdJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkVsbGlwc2lzRGlyZWN0aXZlIHtcblx0cHVibGljIHRlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmPFBhZ2luYXRpb25Db250ZXh0Pik7XG5cdHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKF9kaXI6IFBhZ2luYXRpb25FbGxpcHNpc0RpcmVjdGl2ZSwgY29udGV4dDogdW5rbm93bik6IGNvbnRleHQgaXMgUGFnaW5hdGlvbkNvbnRleHQge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG5cbi8qKlxuICogQSBkaXJlY3RpdmUgdG8gdXNlIHRvIGdpdmUgdGhlICdmaXJzdCcgbGluayB0ZW1wbGF0ZSB0byB0aGUgcGFnaW5hdGlvbiBjb21wb25lbnRcbiAqIFRoaXMgZGlyZWN0aXZlIHByb3ZpZGVzIGEgdGVtcGxhdGUgcmVmZXJlbmNlIGZvciB0aGUge0BsaW5rIFBhZ2luYXRpb25Db250ZXh0fS5cbiAqL1xuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICduZy10ZW1wbGF0ZVthdVBhZ2luYXRpb25GaXJzdF0nLCBzdGFuZGFsb25lOiB0cnVlfSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uRmlyc3REaXJlY3RpdmUge1xuXHRwdWJsaWMgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWY8UGFnaW5hdGlvbkNvbnRleHQ+KTtcblx0c3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoX2RpcjogUGFnaW5hdGlvbkZpcnN0RGlyZWN0aXZlLCBjb250ZXh0OiB1bmtub3duKTogY29udGV4dCBpcyBQYWdpbmF0aW9uQ29udGV4dCB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cbn1cblxuLyoqXG4gKiBBIGRpcmVjdGl2ZSB0byB1c2UgdG8gZ2l2ZSB0aGUgJ2xhc3QnIGxpbmsgdGVtcGxhdGUgdG8gdGhlIHBhZ2luYXRpb24gY29tcG9uZW50XG4gKiBUaGlzIGRpcmVjdGl2ZSBwcm92aWRlcyBhIHRlbXBsYXRlIHJlZmVyZW5jZSBmb3IgdGhlIHtAbGluayBQYWdpbmF0aW9uQ29udGV4dH0uXG4gKi9cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnbmctdGVtcGxhdGVbYXVQYWdpbmF0aW9uTGFzdF0nLCBzdGFuZGFsb25lOiB0cnVlfSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uTGFzdERpcmVjdGl2ZSB7XG5cdHB1YmxpYyB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjxQYWdpbmF0aW9uQ29udGV4dD4pO1xuXHRzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZChfZGlyOiBQYWdpbmF0aW9uTGFzdERpcmVjdGl2ZSwgY29udGV4dDogdW5rbm93bik6IGNvbnRleHQgaXMgUGFnaW5hdGlvbkNvbnRleHQge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG5cbi8qKlxuICogQSBkaXJlY3RpdmUgdG8gdXNlIHRvIGdpdmUgdGhlICduZXh0JyBsaW5rIHRlbXBsYXRlIHRvIHRoZSBwYWdpbmF0aW9uIGNvbXBvbmVudFxuICogVGhpcyBkaXJlY3RpdmUgcHJvdmlkZXMgYSB0ZW1wbGF0ZSByZWZlcmVuY2UgZm9yIHRoZSB7QGxpbmsgUGFnaW5hdGlvbkNvbnRleHR9LlxuICovXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ25nLXRlbXBsYXRlW2F1UGFnaW5hdGlvbk5leHRdJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbk5leHREaXJlY3RpdmUge1xuXHRwdWJsaWMgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWY8UGFnaW5hdGlvbkNvbnRleHQ+KTtcblx0c3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoX2RpcjogUGFnaW5hdGlvbk5leHREaXJlY3RpdmUsIGNvbnRleHQ6IHVua25vd24pOiBjb250ZXh0IGlzIFBhZ2luYXRpb25Db250ZXh0IHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxufVxuXG4vKipcbiAqIEEgZGlyZWN0aXZlIHRvIHVzZSB0byBnaXZlIHRoZSBwYWdlICdudW1iZXInIHRlbXBsYXRlIHRvIHRoZSBwYWdpbmF0aW9uIGNvbXBvbmVudFxuICogVGhpcyBkaXJlY3RpdmUgcHJvdmlkZXMgYSB0ZW1wbGF0ZSByZWZlcmVuY2UgZm9yIHRoZSB7QGxpbmsgUGFnaW5hdGlvbk51bWJlckNvbnRleHR9LlxuICovXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogJ25nLXRlbXBsYXRlW2F1UGFnaW5hdGlvbk51bWJlcl0nLCBzdGFuZGFsb25lOiB0cnVlfSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uTnVtYmVyRGlyZWN0aXZlIHtcblx0cHVibGljIHRlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmPFBhZ2luYXRpb25OdW1iZXJDb250ZXh0Pik7XG5cdHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKF9kaXI6IFBhZ2luYXRpb25OdW1iZXJEaXJlY3RpdmUsIGNvbnRleHQ6IHVua25vd24pOiBjb250ZXh0IGlzIFBhZ2luYXRpb25OdW1iZXJDb250ZXh0IHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxufVxuXG4vKipcbiAqIEEgZGlyZWN0aXZlIHRvIHVzZSB0byBnaXZlIHRoZSAncHJldmlvdXMnIGxpbmsgdGVtcGxhdGUgdG8gdGhlIHBhZ2luYXRpb24gY29tcG9uZW50XG4gKiBUaGlzIGRpcmVjdGl2ZSBwcm92aWRlcyBhIHRlbXBsYXRlIHJlZmVyZW5jZSBmb3IgdGhlIHtAbGluayBQYWdpbmF0aW9uQ29udGV4dH0uXG4gKi9cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnbmctdGVtcGxhdGVbYXVQYWdpbmF0aW9uUHJldmlvdXNdJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvblByZXZpb3VzRGlyZWN0aXZlIHtcblx0cHVibGljIHRlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmPFBhZ2luYXRpb25Db250ZXh0Pik7XG5cdHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKF9kaXI6IFBhZ2luYXRpb25QcmV2aW91c0RpcmVjdGl2ZSwgY29udGV4dDogdW5rbm93bik6IGNvbnRleHQgaXMgUGFnaW5hdGlvbkNvbnRleHQge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG5cbi8qKlxuICogQSBkaXJlY3RpdmUgdG8gdXNlIHRvIGdpdmUgdGhlICdQYWdlcycgdGVtcGxhdGUgZm9yIHRoZSBQYWdlcyBzbG90XG4gKiBUaGlzIGRpcmVjdGl2ZSBwcm92aWRlcyBhIHRlbXBsYXRlIHJlZmVyZW5jZSBmb3IgdGhlIHtAbGluayBQYWdpbmF0aW9uQ29udGV4dH0uXG4gKi9cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnbmctdGVtcGxhdGVbYXVQYWdpbmF0aW9uUGFnZXNdJywgc3RhbmRhbG9uZTogdHJ1ZX0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvblBhZ2VzRGlyZWN0aXZlIHtcblx0cHVibGljIHRlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmPFBhZ2luYXRpb25Db250ZXh0Pik7XG5cdHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKF9kaXI6IFBhZ2luYXRpb25QYWdlc0RpcmVjdGl2ZSwgY29udGV4dDogdW5rbm93bik6IGNvbnRleHQgaXMgUGFnaW5hdGlvbkNvbnRleHQge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG5cbi8qKlxuICogRGlyZWN0aXZlIHRvIHByb3ZpZGUgdGhlIHNsb3Qgc3RydWN0dXJlIGZvciB0aGUgcGFnaW5hdGlvbiB3aWRnZXQuXG4gKiBUaGlzIGRpcmVjdGl2ZSBwcm92aWRlcyBhIHRlbXBsYXRlIHJlZmVyZW5jZSBmb3IgdGhlIHtAbGluayBQYWdpbmF0aW9uQ29udGV4dH0uXG4gKi9cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnbmctdGVtcGxhdGVbYXVQYWdpbmF0aW9uU3RydWN0dXJlXScsIHN0YW5kYWxvbmU6IHRydWV9KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25TdHJ1Y3R1cmVEaXJlY3RpdmUge1xuXHRwdWJsaWMgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWY8UGFnaW5hdGlvbkNvbnRleHQ+KTtcblx0c3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoX2RpcjogUGFnaW5hdGlvblN0cnVjdHVyZURpcmVjdGl2ZSwgY29udGV4dDogdW5rbm93bik6IGNvbnRleHQgaXMgUGFnaW5hdGlvbkNvbnRleHQge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG5cbkBDb21wb25lbnQoe1xuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbU2xvdERpcmVjdGl2ZSwgUGFnaW5hdGlvblBhZ2VzRGlyZWN0aXZlLCBQYWdpbmF0aW9uU3RydWN0dXJlRGlyZWN0aXZlLCBVc2VEaXJlY3RpdmVdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmctdGVtcGxhdGUgYXVQYWdpbmF0aW9uUGFnZXMgI3BhZ2VzIGxldC1zdGF0ZT1cInN0YXRlXCIgbGV0LWFwaT1cImFwaVwiIGxldC1kaXJlY3RpdmVzPVwiZGlyZWN0aXZlc1wiPlxuXHRcdFx0QGZvciAocGFnZSBvZiBzdGF0ZS5wYWdlcygpOyB0cmFjayBwYWdlOyBsZXQgaSA9ICRpbmRleCkge1xuXHRcdFx0XHQ8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIiBbY2xhc3MuYWN0aXZlXT1cInBhZ2UgPT09IHN0YXRlLnBhZ2UoKVwiIFtjbGFzcy5kaXNhYmxlZF09XCJwYWdlID09PSAtMSB8fCBzdGF0ZS5kaXNhYmxlZCgpXCI+XG5cdFx0XHRcdFx0QGlmIChwYWdlID09PSAtMSkge1xuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInBhZ2UtbGluayBhdS1lbGxpcHNpc1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuXHRcdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgW2F1U2xvdF09XCJzdGF0ZS5lbGxpcHNpc0xhYmVsKClcIiBbYXVTbG90UHJvcHNdPVwie3N0YXRlLCBhcGksIGRpcmVjdGl2ZXN9XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJ2aXN1YWxseS1oaWRkZW5cIj57eyBzdGF0ZS5hcmlhRWxsaXBzaXNMYWJlbCgpIH19PC9zcGFuPlxuXHRcdFx0XHRcdH0gQGVsc2Uge1xuXHRcdFx0XHRcdFx0PGEgY2xhc3M9XCJwYWdlLWxpbmtcIiBbYXVVc2VdPVwiW2RpcmVjdGl2ZXMucGFnZUxpbmssIHtwYWdlfV1cIj5cblx0XHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlIFthdVNsb3RdPVwic3RhdGUubnVtYmVyTGFiZWwoKVwiIFthdVNsb3RQcm9wc109XCJ7c3RhdGUsIGFwaSwgZGlyZWN0aXZlcywgZGlzcGxheWVkUGFnZTogcGFnZX1cIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHRcdFx0XHRAaWYgKHN0YXRlLnBhZ2UoKSA9PT0gcGFnZSkge1xuXHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwidmlzdWFsbHktaGlkZGVuXCI+e3sgc3RhdGUuYWN0aXZlTGFiZWwoKSB9fTwvc3Bhbj5cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0PC9hPlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0PC9saT5cblx0XHRcdH1cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdDxuZy10ZW1wbGF0ZSBhdVBhZ2luYXRpb25TdHJ1Y3R1cmUgI3N0cnVjdHVyZSBsZXQtc3RhdGU9XCJzdGF0ZVwiIGxldC1hcGk9XCJhcGlcIiBsZXQtZGlyZWN0aXZlcz1cImRpcmVjdGl2ZXNcIj5cblx0XHRcdDx1bCBbY2xhc3NdPVwiJ2F1LXBhZ2luYXRpb24gcGFnaW5hdGlvbicgKyAoc3RhdGUuc2l6ZSgpID8gJyBwYWdpbmF0aW9uLScgKyBzdGF0ZS5zaXplKCkgOiAnJykgKyAnICcgKyBzdGF0ZS5jbGFzc05hbWUoKVwiPlxuXHRcdFx0XHRAaWYgKHN0YXRlLmJvdW5kYXJ5TGlua3MoKSkge1xuXHRcdFx0XHRcdDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtjbGFzcy5kaXNhYmxlZF09XCJzdGF0ZS5wcmV2aW91c0Rpc2FibGVkKClcIj5cblx0XHRcdFx0XHRcdDxhIGNsYXNzPVwicGFnZS1saW5rXCIgW2F1VXNlXT1cImRpcmVjdGl2ZXMucGFnZUZpcnN0XCI+XG5cdFx0XHRcdFx0XHRcdDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSBbYXVTbG90XT1cInN0YXRlLmZpcnN0UGFnZUxhYmVsKClcIiBbYXVTbG90UHJvcHNdPVwie3N0YXRlLCBhcGksIGRpcmVjdGl2ZXN9XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHRcdFx0PC9zcGFuPlxuXHRcdFx0XHRcdFx0PC9hPlxuXHRcdFx0XHRcdDwvbGk+XG5cdFx0XHRcdH1cblx0XHRcdFx0QGlmIChzdGF0ZS5kaXJlY3Rpb25MaW5rcygpKSB7XG5cdFx0XHRcdFx0PGxpIGNsYXNzPVwicGFnZS1pdGVtXCIgW2NsYXNzLmRpc2FibGVkXT1cInN0YXRlLnByZXZpb3VzRGlzYWJsZWQoKVwiPlxuXHRcdFx0XHRcdFx0PGEgY2xhc3M9XCJwYWdlLWxpbmtcIiBbYXVVc2VdPVwiZGlyZWN0aXZlcy5wYWdlUHJldlwiPlxuXHRcdFx0XHRcdFx0XHQ8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj5cblx0XHRcdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgW2F1U2xvdF09XCJzdGF0ZS5wcmV2aW91c1BhZ2VMYWJlbCgpXCIgW2F1U2xvdFByb3BzXT1cIntzdGF0ZSwgYXBpLCBkaXJlY3RpdmVzfVwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdFx0XHRcdDwvc3Bhbj5cblx0XHRcdFx0XHRcdDwvYT5cblx0XHRcdFx0XHQ8L2xpPlxuXHRcdFx0XHR9XG5cdFx0XHRcdDxuZy10ZW1wbGF0ZSBbYXVTbG90XT1cInN0YXRlLnBhZ2VzRGlzcGxheSgpXCIgW2F1U2xvdFByb3BzXT1cIntzdGF0ZSwgYXBpLCBkaXJlY3RpdmVzfVwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdEBpZiAoc3RhdGUuZGlyZWN0aW9uTGlua3MoKSkge1xuXHRcdFx0XHRcdDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtjbGFzcy5kaXNhYmxlZF09XCJzdGF0ZS5uZXh0RGlzYWJsZWQoKVwiPlxuXHRcdFx0XHRcdFx0PGEgY2xhc3M9XCJwYWdlLWxpbmtcIiBbYXVVc2VdPVwiZGlyZWN0aXZlcy5wYWdlTmV4dFwiPlxuXHRcdFx0XHRcdFx0XHQ8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj5cblx0XHRcdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgW2F1U2xvdF09XCJzdGF0ZS5uZXh0UGFnZUxhYmVsKClcIiBbYXVTbG90UHJvcHNdPVwie3N0YXRlLCBhcGksIGRpcmVjdGl2ZXN9XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHRcdFx0PC9zcGFuPlxuXHRcdFx0XHRcdFx0PC9hPlxuXHRcdFx0XHRcdDwvbGk+XG5cdFx0XHRcdH1cblx0XHRcdFx0QGlmIChzdGF0ZS5ib3VuZGFyeUxpbmtzKCkpIHtcblx0XHRcdFx0XHQ8bGkgY2xhc3M9XCJwYWdlLWl0ZW1cIiBbY2xhc3MuZGlzYWJsZWRdPVwic3RhdGUubmV4dERpc2FibGVkKClcIj5cblx0XHRcdFx0XHRcdDxhIGNsYXNzPVwicGFnZS1saW5rXCIgW2F1VXNlXT1cImRpcmVjdGl2ZXMucGFnZUxhc3RcIj5cblx0XHRcdFx0XHRcdFx0PHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG5cdFx0XHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlIFthdVNsb3RdPVwic3RhdGUubGFzdFBhZ2VMYWJlbCgpXCIgW2F1U2xvdFByb3BzXT1cIntzdGF0ZSwgYXBpLCBkaXJlY3RpdmVzfVwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdFx0XHRcdDwvc3Bhbj5cblx0XHRcdFx0XHRcdDwvYT5cblx0XHRcdFx0XHQ8L2xpPlxuXHRcdFx0XHR9XG5cdFx0XHQ8L3VsPlxuXHRcdFx0PGRpdiBhcmlhLWxpdmU9XCJwb2xpdGVcIiBjbGFzcz1cInZpc3VhbGx5LWhpZGRlblwiPnt7IHN0YXRlLmFyaWFMaXZlTGFiZWxUZXh0KCkgfX08L2Rpdj5cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHRgLFxufSlcbmNsYXNzIFBhZ2luYXRpb25EZWZhdWx0U2xvdHNDb21wb25lbnQge1xuXHRAVmlld0NoaWxkKCdwYWdlcycsIHtzdGF0aWM6IHRydWV9KSBwYWdlcyE6IFRlbXBsYXRlUmVmPFBhZ2luYXRpb25Db250ZXh0Pjtcblx0QFZpZXdDaGlsZCgnc3RydWN0dXJlJywge3N0YXRpYzogdHJ1ZX0pIHN0cnVjdHVyZSE6IFRlbXBsYXRlUmVmPFBhZ2luYXRpb25Db250ZXh0Pjtcbn1cbi8qKlxuICogVGhlIGRlZmF1bHQgc2xvdCBmb3IgdGhlIHBhZ2VzXG4gKi9cbmV4cG9ydCBjb25zdCBwYWdpbmF0aW9uRGVmYXVsdFNsb3RQYWdlczogU2xvdENvbnRlbnQ8UGFnaW5hdGlvbkNvbnRleHQ+ID0gbmV3IENvbXBvbmVudFRlbXBsYXRlKFBhZ2luYXRpb25EZWZhdWx0U2xvdHNDb21wb25lbnQsICdwYWdlcycpO1xuLyoqXG4gKiBUaGUgZGVmYXVsdCBzbG90IGZvciB0aGUgc3RydWN0dXJlXG4gKi9cbmV4cG9ydCBjb25zdCBwYWdpbmF0aW9uRGVmYXVsdFNsb3RTdHJ1Y3R1cmU6IFNsb3RDb250ZW50PFBhZ2luYXRpb25Db250ZXh0PiA9IG5ldyBDb21wb25lbnRUZW1wbGF0ZShQYWdpbmF0aW9uRGVmYXVsdFNsb3RzQ29tcG9uZW50LCAnc3RydWN0dXJlJyk7XG5cbi8qKlxuICogVGhlIGBQYWdpbmF0aW9uQ29tcG9uZW50YCBpcyBhbiBBbmd1bGFyIGNvbXBvbmVudCB0aGF0IGV4dGVuZHMgdGhlIGBCYXNlV2lkZ2V0RGlyZWN0aXZlYFxuICogdG8gcHJvdmlkZSBhIGN1c3RvbWl6YWJsZSBwYWdpbmF0aW9uIHdpZGdldC4gSXQgaW5jbHVkZXMgdmFyaW91cyBpbnB1dCBwcm9wZXJ0aWVzXG4gKiB0byBjb25maWd1cmUgbGFiZWxzLCB0ZW1wbGF0ZXMsIGFuZCBiZWhhdmlvciBmb3IgYWNjZXNzaWJpbGl0eSBhbmQgaW50ZXJuYXRpb25hbGl6YXRpb24gKGkxOG4pLlxuICovXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdbYXVQYWdpbmF0aW9uXScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtTbG90RGlyZWN0aXZlXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGhvc3Q6IHtcblx0XHQnW2F0dHIuYXJpYS1sYWJlbF0nOiAnc3RhdGUuYXJpYUxhYmVsKCknLFxuXHR9LFxuXHRlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuXHR0ZW1wbGF0ZTogYDxuZy10ZW1wbGF0ZSBbYXVTbG90UHJvcHNdPVwie3N0YXRlLCBhcGksIGRpcmVjdGl2ZXN9XCIgW2F1U2xvdF09XCJzdGF0ZS5zdHJ1Y3R1cmUoKVwiPjwvbmctdGVtcGxhdGU+YCxcbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VXaWRnZXREaXJlY3RpdmU8UGFnaW5hdGlvbldpZGdldD4ge1xuXHQvKipcblx0ICogUHJvdmlkZSB0aGUgbGFiZWwgZm9yIGVhY2ggXCJQYWdlXCIgcGFnZSBidXR0b24uXG5cdCAqIFRoaXMgaXMgdXNlZCBmb3IgYWNjZXNzaWJpbGl0eSBwdXJwb3Nlcy5cblx0ICogZm9yIEkxOG4sIHdlIHN1Z2dlc3QgdG8gdXNlIHRoZSBnbG9iYWwgY29uZmlndXJhdGlvblxuXHQgKiBvdmVycmlkZSBhbnkgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIHByb3ZpZGVkIGZvciB0aGlzXG5cdCAqIEBwYXJhbSBwcm9jZXNzUGFnZSAtIFRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyXG5cdCAqIEBwYXJhbSBwYWdlQ291bnQgLSBUaGUgdG90YWwgbnVtYmVyIG9mIHBhZ2VzXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWVcblx0ICogYGBgdHNcblx0ICogKHByb2Nlc3NQYWdlOiBudW1iZXIsIHBhZ2VDb3VudDogbnVtYmVyKSA9PiBgUGFnZSAke3Byb2Nlc3NQYWdlfSBvZiAke3BhZ2VDb3VudH1gXG5cdCAqIGBgYFxuXHQgKi9cblx0QElucHV0KCdhdUFyaWFQYWdlTGFiZWwnKSBhcmlhUGFnZUxhYmVsOiAoKHByb2Nlc3NQYWdlOiBudW1iZXIsIHBhZ2VDb3VudDogbnVtYmVyKSA9PiBzdHJpbmcpIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBQcm92aWRlIHRoZSBsYWJlbCBmb3IgdGhlIGFyaWEtbGl2ZSBlbGVtZW50XG5cdCAqIFRoaXMgaXMgdXNlZCBmb3IgYWNjZXNzaWJpbGl0eSBwdXJwb3Nlcy5cblx0ICogZm9yIEkxOG4sIHdlIHN1Z2dlc3QgdG8gdXNlIHRoZSBnbG9iYWwgY29uZmlndXJhdGlvblxuXHQgKiBvdmVycmlkZSBhbnkgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIHByb3ZpZGVkIGZvciB0aGlzXG5cdCAqIEBwYXJhbSBjdXJyZW50UGFnZSAtIFRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyXG5cdCAqIEBwYXJhbSBwYWdlQ291bnQgLSBUaGUgdG90YWwgbnVtYmVyIG9mIHBhZ2VzXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWVcblx0ICogYGBgdHNcblx0ICogKGN1cnJlbnRQYWdlOiBudW1iZXIpID0+IGBDdXJyZW50IHBhZ2UgaXMgJHtjdXJyZW50UGFnZX1gXG5cdCAqIGBgYFxuXHQgKi9cblx0QElucHV0KCdhdUFyaWFMaXZlTGFiZWwnKSBhcmlhTGl2ZUxhYmVsOiAoKGN1cnJlbnRQYWdlOiBudW1iZXIsIHBhZ2VDb3VudDogbnVtYmVyKSA9PiBzdHJpbmcpIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBUaGUgbGFiZWwgZm9yIHRoZSBuYXYgZWxlbWVudC5cblx0ICpcblx0ICogZm9yIEkxOG4sIHdlIHN1Z2dlc3QgdG8gdXNlIHRoZSBnbG9iYWwgY29uZmlndXJhdGlvblxuXHQgKiBvdmVycmlkZSBhbnkgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIHByb3ZpZGVkIGZvciB0aGlzXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYCdQYWdlIG5hdmlnYXRpb24nYFxuXHQgKi9cblx0QElucHV0KCdhdUFyaWFMYWJlbCcpIGFyaWFMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBUaGUgbGFiZWwgZm9yIHRoZSBcImFjdGl2ZVwiIHBhZ2UuXG5cdCAqIGZvciBJMThuLCB3ZSBzdWdnZXN0IHRvIHVzZSB0aGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cblx0ICogb3ZlcnJpZGUgYW55IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBwcm92aWRlZCBmb3IgdGhpc1xuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlXG5cdCAqIGBgYHRzXG5cdCAqICcoY3VycmVudCknXG5cdCAqIGBgYFxuXHQgKi9cblx0QElucHV0KCdhdUFjdGl2ZUxhYmVsJykgYWN0aXZlTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogVGhlIGxhYmVsIGZvciB0aGUgXCJGaXJzdFwiIHBhZ2UgYnV0dG9uLlxuXHQgKiBmb3IgSTE4biwgd2Ugc3VnZ2VzdCB0byB1c2UgdGhlIGdsb2JhbCBjb25maWd1cmF0aW9uXG5cdCAqIG92ZXJyaWRlIGFueSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgcHJvdmlkZWQgZm9yIHRoaXNcblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZVxuXHQgKiBgYGB0c1xuXHQgKiAnQWN0aW9uIGxpbmsgZm9yIGZpcnN0IHBhZ2UnXG5cdCAqIGBgYFxuXHQgKi9cblx0QElucHV0KCdhdUFyaWFGaXJzdExhYmVsJykgYXJpYUZpcnN0TGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogVGhlIGxhYmVsIGZvciB0aGUgXCJQcmV2aW91c1wiIHBhZ2UgYnV0dG9uLlxuXHQgKiBmb3IgSTE4biwgd2Ugc3VnZ2VzdCB0byB1c2UgdGhlIGdsb2JhbCBjb25maWd1cmF0aW9uXG5cdCAqIG92ZXJyaWRlIGFueSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgcHJvdmlkZWQgZm9yIHRoaXNcblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZVxuXHQgKiBgYGB0c1xuXHQgKiAnQWN0aW9uIGxpbmsgZm9yIHByZXZpb3VzIHBhZ2UnXG5cdCAqIGBgYFxuXHQgKi9cblx0QElucHV0KCdhdUFyaWFQcmV2aW91c0xhYmVsJykgYXJpYVByZXZpb3VzTGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogVGhlIGxhYmVsIGZvciB0aGUgXCJOZXh0XCIgcGFnZSBidXR0b24uXG5cdCAqIGZvciBJMThuLCB3ZSBzdWdnZXN0IHRvIHVzZSB0aGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cblx0ICogb3ZlcnJpZGUgYW55IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBwcm92aWRlZCBmb3IgdGhpc1xuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlXG5cdCAqIGBgYHRzXG5cdCAqICdBY3Rpb24gbGluayBmb3IgbmV4dCBwYWdlJ1xuXHQgKiBgYGBcblx0ICovXG5cdEBJbnB1dCgnYXVBcmlhTmV4dExhYmVsJykgYXJpYU5leHRMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBUaGUgbGFiZWwgZm9yIHRoZSBcIkxhc3RcIiBwYWdlIGJ1dHRvbi5cblx0ICogZm9yIEkxOG4sIHdlIHN1Z2dlc3QgdG8gdXNlIHRoZSBnbG9iYWwgY29uZmlndXJhdGlvblxuXHQgKiBvdmVycmlkZSBhbnkgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIHByb3ZpZGVkIGZvciB0aGlzXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWVcblx0ICogYGBgdHNcblx0ICogJ0FjdGlvbiBsaW5rIGZvciBsYXN0IHBhZ2UnXG5cdCAqIGBgYFxuXHQgKi9cblx0QElucHV0KCdhdUFyaWFMYXN0TGFiZWwnKSBhcmlhTGFzdExhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFRoZSBsYWJlbCBmb3IgdGhlIFwiRWxsaXBzaXNcIiBwYWdlLlxuXHQgKiBmb3IgSTE4biwgd2Ugc3VnZ2VzdCB0byB1c2UgdGhlIGdsb2JhbCBjb25maWd1cmF0aW9uXG5cdCAqIG92ZXJyaWRlIGFueSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgcHJvdmlkZWQgZm9yIHRoaXNcblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgJ0VsbGlwc2lzIHBhZ2UgZWxlbWVudCdgXG5cdCAqL1xuXHRASW5wdXQoJ2F1QXJpYUVsbGlwc2lzTGFiZWwnKSBhcmlhRWxsaXBzaXNMYWJlbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBGYWN0b3J5IGZ1bmN0aW9uIHByb3ZpZGluZyB0aGUgaHJlZiBmb3IgYSBcIlBhZ2VcIiBwYWdlIGFuY2hvcixcblx0ICogYmFzZWQgb24gdGhlIGN1cnJlbnQgcGFnZSBudW1iZXJcblx0ICogQHBhcmFtIHBhZ2VOdW1iZXIgLSBUaGUgaW5kZXggdG8gdXNlIGluIHRoZSBsaW5rXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWVcblx0ICogYGBgdHNcblx0ICogKF9wYWdlOiBudW1iZXIpID0+IFBBR0VfTElOS19ERUZBVUxUXG5cdCAqIGBgYFxuXHQgKi9cblx0QElucHV0KCdhdVBhZ2VMaW5rJykgcGFnZUxpbms6ICgocGFnZU51bWJlcjogbnVtYmVyKSA9PiBzdHJpbmcpIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBUaGUgdGVtcGxhdGUgdG8gdXNlIGZvciB0aGUgZWxsaXBzaXMgc2xvdFxuXHQgKiBmb3IgSTE4biwgd2Ugc3VnZ2VzdCB0byB1c2UgdGhlIGdsb2JhbCBjb25maWd1cmF0aW9uXG5cdCAqIG92ZXJyaWRlIGFueSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgcHJvdmlkZWQgZm9yIHRoaXNcblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgJ+KApidgXG5cdCAqL1xuXHRASW5wdXQoJ2F1RWxsaXBzaXNMYWJlbCcpIGVsbGlwc2lzTGFiZWw6IFNsb3RDb250ZW50PFBhZ2luYXRpb25Db250ZXh0Pjtcblx0QENvbnRlbnRDaGlsZChQYWdpbmF0aW9uRWxsaXBzaXNEaXJlY3RpdmUsIHtzdGF0aWM6IGZhbHNlfSlcblx0c2xvdEVsbGlwc2lzRnJvbUNvbnRlbnQ6IFBhZ2luYXRpb25FbGxpcHNpc0RpcmVjdGl2ZSB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogVGhlIHRlbXBsYXRlIHRvIHVzZSBmb3IgdGhlIGZpcnN0IHNsb3Rcblx0ICogZm9yIEkxOG4sIHdlIHN1Z2dlc3QgdG8gdXNlIHRoZSBnbG9iYWwgY29uZmlndXJhdGlvblxuXHQgKiBvdmVycmlkZSBhbnkgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIHByb3ZpZGVkIGZvciB0aGlzXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYCfCqydgXG5cdCAqL1xuXHRASW5wdXQoJ2F1Rmlyc3RQYWdlTGFiZWwnKSBmaXJzdFBhZ2VMYWJlbDogU2xvdENvbnRlbnQ8UGFnaW5hdGlvbkNvbnRleHQ+O1xuXHRAQ29udGVudENoaWxkKFBhZ2luYXRpb25GaXJzdERpcmVjdGl2ZSwge3N0YXRpYzogZmFsc2V9KVxuXHRzbG90Rmlyc3RGcm9tQ29udGVudDogUGFnaW5hdGlvbkZpcnN0RGlyZWN0aXZlIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBUaGUgdGVtcGxhdGUgdG8gdXNlIGZvciB0aGUgcHJldmlvdXMgc2xvdFxuXHQgKiBmb3IgSTE4biwgd2Ugc3VnZ2VzdCB0byB1c2UgdGhlIGdsb2JhbCBjb25maWd1cmF0aW9uXG5cdCAqIG92ZXJyaWRlIGFueSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgcHJvdmlkZWQgZm9yIHRoaXNcblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgJ+KAuSdgXG5cdCAqL1xuXHRASW5wdXQoJ2F1UHJldmlvdXNQYWdlTGFiZWwnKSBwcmV2aW91c1BhZ2VMYWJlbDogU2xvdENvbnRlbnQ8UGFnaW5hdGlvbkNvbnRleHQ+O1xuXHRAQ29udGVudENoaWxkKFBhZ2luYXRpb25QcmV2aW91c0RpcmVjdGl2ZSwge3N0YXRpYzogZmFsc2V9KVxuXHRzbG90UHJldmlvdXNGcm9tQ29udGVudDogUGFnaW5hdGlvblByZXZpb3VzRGlyZWN0aXZlIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBUaGUgdGVtcGxhdGUgdG8gdXNlIGZvciB0aGUgbmV4dCBzbG90XG5cdCAqIGZvciBJMThuLCB3ZSBzdWdnZXN0IHRvIHVzZSB0aGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cblx0ICogb3ZlcnJpZGUgYW55IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBwcm92aWRlZCBmb3IgdGhpc1xuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGAn4oC6J2Bcblx0ICovXG5cdEBJbnB1dCgnYXVOZXh0UGFnZUxhYmVsJykgbmV4dFBhZ2VMYWJlbDogU2xvdENvbnRlbnQ8UGFnaW5hdGlvbkNvbnRleHQ+O1xuXHRAQ29udGVudENoaWxkKFBhZ2luYXRpb25OZXh0RGlyZWN0aXZlLCB7c3RhdGljOiBmYWxzZX0pXG5cdHNsb3ROZXh0RnJvbUNvbnRlbnQ6IFBhZ2luYXRpb25OZXh0RGlyZWN0aXZlIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBUaGUgdGVtcGxhdGUgdG8gdXNlIGZvciB0aGUgbGFzdCBzbG90XG5cdCAqIGZvciBJMThuLCB3ZSBzdWdnZXN0IHRvIHVzZSB0aGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cblx0ICogb3ZlcnJpZGUgYW55IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBwcm92aWRlZCBmb3IgdGhpc1xuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGAnwrsnYFxuXHQgKi9cblx0QElucHV0KCdhdUxhc3RQYWdlTGFiZWwnKSBsYXN0UGFnZUxhYmVsOiBTbG90Q29udGVudDxQYWdpbmF0aW9uQ29udGV4dD47XG5cdEBDb250ZW50Q2hpbGQoUGFnaW5hdGlvbkxhc3REaXJlY3RpdmUsIHtzdGF0aWM6IGZhbHNlfSlcblx0c2xvdExhc3RGcm9tQ29udGVudDogUGFnaW5hdGlvbkxhc3REaXJlY3RpdmUgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFRoZSB0ZW1wbGF0ZSB0byB1c2UgZm9yIHRoZSBwYWdlcyBzbG90XG5cdCAqIFRvIHVzZSB0byBjdXN0b21pemUgdGhlIHBhZ2VzIHZpZXdcblx0ICogb3ZlcnJpZGUgYW55IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBwcm92aWRlZCBmb3IgdGhpc1xuXHQgKi9cblx0QElucHV0KCdhdVBhZ2VzRGlzcGxheScpIHBhZ2VzRGlzcGxheTogU2xvdENvbnRlbnQ8UGFnaW5hdGlvbkNvbnRleHQ+O1xuXHRAQ29udGVudENoaWxkKFBhZ2luYXRpb25QYWdlc0RpcmVjdGl2ZSwge3N0YXRpYzogZmFsc2V9KVxuXHRzbG90UGFnZXNGcm9tQ29udGVudDogUGFnaW5hdGlvblBhZ2VzRGlyZWN0aXZlIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBUaGUgdGVtcGxhdGUgdG8gdXNlIGZvciB0aGUgbnVtYmVyIHNsb3Rcblx0ICogb3ZlcnJpZGUgYW55IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBwcm92aWRlZCBmb3IgdGhpc1xuXHQgKiBmb3IgSTE4biwgd2Ugc3VnZ2VzdCB0byB1c2UgdGhlIGdsb2JhbCBjb25maWd1cmF0aW9uXG5cdCAqIEBwYXJhbSBkaXNwbGF5ZWRQYWdlIC0gVGhlIGN1cnJlbnQgcGFnZSBudW1iZXJcblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZVxuXHQgKiBgYGB0c1xuXHQgKiAoe2Rpc3BsYXllZFBhZ2V9OiBQYWdpbmF0aW9uTnVtYmVyQ29udGV4dCkgPT4gYCR7ZGlzcGxheWVkUGFnZX1gXG5cdCAqIGBgYFxuXHQgKi9cblx0QElucHV0KCdhdU51bWJlckxhYmVsJykgbnVtYmVyTGFiZWw6IFNsb3RDb250ZW50PFBhZ2luYXRpb25OdW1iZXJDb250ZXh0Pjtcblx0QENvbnRlbnRDaGlsZChQYWdpbmF0aW9uTnVtYmVyRGlyZWN0aXZlLCB7c3RhdGljOiBmYWxzZX0pXG5cdHNsb3ROdW1iZXJMYWJlbEZyb21Db250ZW50OiBQYWdpbmF0aW9uTnVtYmVyRGlyZWN0aXZlIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBUaGUgdGVtcGxhdGUgdG8gdXNlIGZvciB0aGUgc3RydWN0dXJlIG9mIHRoZSBwYWdpbmF0aW9uIGNvbXBvbmVudFxuXHQgKiBUaGUgZGVmYXVsdCBzdHJ1Y3R1cmUgdXNlcyB7QGxpbmsgUGFnaW5hdGlvblByb3BzLmVsbGlwc2lzTGFiZWx8ZWxsaXBzaXNMYWJlbH0sIHtAbGluayBQYWdpbmF0aW9uUHJvcHMuZmlyc3RQYWdlTGFiZWx8Zmlyc3RQYWdlTGFiZWx9LFxuXHQgKiB7QGxpbmsgUGFnaW5hdGlvblByb3BzLnByZXZpb3VzUGFnZUxhYmVsfHByZXZpb3VzUGFnZUxhYmVsfSwge0BsaW5rIFBhZ2luYXRpb25Qcm9wcy5uZXh0UGFnZUxhYmVsfG5leHRQYWdlTGFiZWx9LFxuXHQgKiB7QGxpbmsgUGFnaW5hdGlvblByb3BzLmxhc3RQYWdlTGFiZWx8bGFzdFBhZ2VMYWJlbH0sIHtAbGluayBQYWdpbmF0aW9uUHJvcHMucGFnZXNEaXNwbGF5fHBhZ2VzRGlzcGxheX0sXG5cdCAqIHtAbGluayBQYWdpbmF0aW9uUHJvcHMubnVtYmVyTGFiZWx8bnVtYmVyTGFiZWx9LFxuXHQgKi9cblx0QElucHV0KCdhdVN0cnVjdHVyZScpIHN0cnVjdHVyZTogU2xvdENvbnRlbnQ8UGFnaW5hdGlvbkNvbnRleHQ+O1xuXHRAQ29udGVudENoaWxkKFBhZ2luYXRpb25TdHJ1Y3R1cmVEaXJlY3RpdmUsIHtzdGF0aWM6IGZhbHNlfSlcblx0c2xvdFN0cnVjdHVyZUZyb21Db250ZW50OiBQYWdpbmF0aW9uU3RydWN0dXJlRGlyZWN0aXZlIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBJZiBgdHJ1ZWAsIHBhZ2luYXRpb24gbGlua3Mgd2lsbCBiZSBkaXNhYmxlZC5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgZmFsc2VgXG5cdCAqL1xuXHRASW5wdXQoe2FsaWFzOiAnYXVEaXNhYmxlZCcsIHRyYW5zZm9ybTogYXVCb29sZWFuQXR0cmlidXRlfSkgZGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIElmIGB0cnVlYCwgdGhlIFwiRmlyc3RcIiBhbmQgXCJMYXN0XCIgcGFnZSBsaW5rcyBhcmUgc2hvd24uXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYGZhbHNlYFxuXHQgKi9cblx0QElucHV0KHthbGlhczogJ2F1Qm91bmRhcnlMaW5rcycsIHRyYW5zZm9ybTogYXVCb29sZWFuQXR0cmlidXRlfSkgYm91bmRhcnlMaW5rczogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogSWYgYHRydWVgLCB0aGUgXCJOZXh0XCIgYW5kIFwiUHJldmlvdXNcIiBwYWdlIGxpbmtzIGFyZSBzaG93bi5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgdHJ1ZWBcblx0ICovXG5cdEBJbnB1dCh7YWxpYXM6ICdhdURpcmVjdGlvbkxpbmtzJywgdHJhbnNmb3JtOiBhdUJvb2xlYW5BdHRyaWJ1dGV9KSBkaXJlY3Rpb25MaW5rczogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogVGhlIG51bWJlciBvZiBpdGVtcyBpbiB5b3VyIHBhZ2luYXRlZCBjb2xsZWN0aW9uLlxuXHQgKlxuXHQgKiBOb3RlLCB0aGF0IHRoaXMgaXMgbm90IHRoZSBudW1iZXIgb2YgcGFnZXMuIFBhZ2UgbnVtYmVycyBhcmUgY2FsY3VsYXRlZCBkeW5hbWljYWxseSBiYXNlZCBvblxuXHQgKiBgY29sbGVjdGlvblNpemVgIGFuZCBgcGFnZVNpemVgLlxuXHQgKlxuXHQgKiBFeC4gaWYgeW91IGhhdmUgMTAwIGl0ZW1zIGluIHlvdXIgY29sbGVjdGlvbiBhbmQgZGlzcGxheWluZyAyMCBpdGVtcyBwZXIgcGFnZSwgeW91J2xsIGVuZCB1cCB3aXRoIDUgcGFnZXMuXG5cdCAqXG5cdCAqIFdoYXRldmVyIHRoZSBjb2xsZWN0aW9uU2l6ZSB0aGUgcGFnZSBudW1iZXIgaXMgb2YgbWluaW11bSAxLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGAwYFxuXHQgKi9cblx0QElucHV0KHthbGlhczogJ2F1Q29sbGVjdGlvblNpemUnLCB0cmFuc2Zvcm06IGF1TnVtYmVyQXR0cmlidXRlfSkgY29sbGVjdGlvblNpemU6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogVGhlIGN1cnJlbnQgcGFnZS5cblx0ICpcblx0ICogUGFnZSBudW1iZXJzIHN0YXJ0IHdpdGggYDFgLlxuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlIGAxYFxuXHQgKi9cblx0QElucHV0KHthbGlhczogJ2F1UGFnZScsIHRyYW5zZm9ybTogYXVOdW1iZXJBdHRyaWJ1dGV9KSBwYWdlOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFRoZSBudW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UuXG5cdCAqIEByZW1hcmtzIG1pbiB2YWx1ZSBpcyAxXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYDEwYFxuXHQgKi9cblx0QElucHV0KHthbGlhczogJ2F1UGFnZVNpemUnLCB0cmFuc2Zvcm06IGF1TnVtYmVyQXR0cmlidXRlfSkgcGFnZVNpemU6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogVGhlIHBhZ2luYXRpb24gZGlzcGxheSBzaXplLlxuXHQgKlxuXHQgKiBCb290c3RyYXAgY3VycmVudGx5IHN1cHBvcnRzIHNtYWxsIGFuZCBsYXJnZSBzaXplcy5cblx0ICpcblx0ICogQGRlZmF1bHRWYWx1ZSBgbnVsbGBcblx0ICovXG5cdEBJbnB1dCgnYXVTaXplJykgc2l6ZTogJ3NtJyB8ICdsZycgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBwYWdlc0ZhY3RvcnkgcmV0dXJucyBhIGZ1bmN0aW9uIGNvbXB1dGluZyB0aGUgYXJyYXkgb2YgcGFnZXMgdG8gYmUgZGlzcGxheWVkXG5cdCAqIGFzIG51bWJlciAoLTEgYXJlIHRyZWF0ZWQgYXMgZWxsaXBzaXMpLlxuXHQgKiBVc2UgUGFnZSBzbG90IHRvIGN1c3RvbWl6ZSB0aGUgcGFnZXMgdmlldyBhbmQgbm90IHRoaXNcblx0ICogQHBhcmFtIHBhZ2UgLSBUaGUgY3VycmVudCBwYWdlIG51bWJlclxuXHQgKiBAcGFyYW0gcGFnZUNvdW50IC0gVGhlIHRvdGFsIG51bWJlciBvZiBwYWdlc1xuXHQgKlxuXHQgKiBAZGVmYXVsdFZhbHVlXG5cdCAqIGBgYHRzXG5cdCAqIChfcGFnZTogbnVtYmVyLCBwYWdlQ291bnQ6IG51bWJlcikgPT4ge1xuXHQgKiBcdFx0Y29uc3QgcGFnZXM6IG51bWJlcltdID0gW107XG5cdCAqIFx0XHRmb3IgKGxldCBpID0gMTsgaSA8PSBwYWdlQ291bnQ7IGkrKykge1xuXHQgKiBcdFx0XHRwYWdlcy5wdXNoKGkpO1xuXHQgKiBcdFx0fVxuXHQgKiBcdFx0cmV0dXJuIHBhZ2VzO1xuXHQgKiBcdH1cblx0ICogYGBgXG5cdCAqL1xuXHRASW5wdXQoJ2F1UGFnZXNGYWN0b3J5JykgcGFnZXNGYWN0b3J5OiAoKHBhZ2U6IG51bWJlciwgcGFnZUNvdW50OiBudW1iZXIpID0+IG51bWJlcltdKSB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogQW4gZXZlbnQgZmlyZWQgd2hlbiB0aGUgcGFnZSBpcyBjaGFuZ2VkLlxuXHQgKlxuXHQgKiBFdmVudCBwYXlsb2FkIGlzIHRoZSBudW1iZXIgb2YgdGhlIG5ld2x5IHNlbGVjdGVkIHBhZ2UuXG5cdCAqXG5cdCAqIFBhZ2UgbnVtYmVycyBzdGFydCB3aXRoIGAxYC5cblx0ICogQGRlZmF1bHRWYWx1ZVxuXHQgKiBgYGB0c1xuXHQgKiAoKSA9PiB7fVxuXHQgKiBgYGBcblx0ICovXG5cdEBPdXRwdXQoJ2F1UGFnZUNoYW5nZScpIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuXHQvKipcblx0ICogQ1NTIGNsYXNzZXMgdG8gYmUgYXBwbGllZCBvbiB0aGUgd2lkZ2V0IG1haW4gY29udGFpbmVyXG5cdCAqXG5cdCAqIEBkZWZhdWx0VmFsdWUgYCcnYFxuXHQgKi9cblx0QElucHV0KCdhdUNsYXNzTmFtZScpIGNsYXNzTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHN1cGVyKFxuXHRcdFx0Y2FsbFdpZGdldEZhY3Rvcnkoe1xuXHRcdFx0XHRmYWN0b3J5OiBjcmVhdGVQYWdpbmF0aW9uLFxuXHRcdFx0XHR3aWRnZXROYW1lOiAncGFnaW5hdGlvbicsXG5cdFx0XHRcdGRlZmF1bHRDb25maWc6IHtcblx0XHRcdFx0XHRzdHJ1Y3R1cmU6IHBhZ2luYXRpb25EZWZhdWx0U2xvdFN0cnVjdHVyZSxcblx0XHRcdFx0XHRwYWdlc0Rpc3BsYXk6IHBhZ2luYXRpb25EZWZhdWx0U2xvdFBhZ2VzLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRldmVudHM6IHtcblx0XHRcdFx0XHRvblBhZ2VDaGFuZ2U6IChwYWdlOiBudW1iZXIpID0+IHRoaXMucGFnZUNoYW5nZS5lbWl0KHBhZ2UpLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHRzbG90VGVtcGxhdGVzOiAoKSA9PiAoe1xuXHRcdFx0XHRcdHN0cnVjdHVyZTogdGhpcy5zbG90U3RydWN0dXJlRnJvbUNvbnRlbnQ/LnRlbXBsYXRlUmVmLFxuXHRcdFx0XHRcdGVsbGlwc2lzTGFiZWw6IHRoaXMuc2xvdEVsbGlwc2lzRnJvbUNvbnRlbnQ/LnRlbXBsYXRlUmVmLFxuXHRcdFx0XHRcdGZpcnN0UGFnZUxhYmVsOiB0aGlzLnNsb3RGaXJzdEZyb21Db250ZW50Py50ZW1wbGF0ZVJlZixcblx0XHRcdFx0XHRwcmV2aW91c1BhZ2VMYWJlbDogdGhpcy5zbG90UHJldmlvdXNGcm9tQ29udGVudD8udGVtcGxhdGVSZWYsXG5cdFx0XHRcdFx0bmV4dFBhZ2VMYWJlbDogdGhpcy5zbG90TmV4dEZyb21Db250ZW50Py50ZW1wbGF0ZVJlZixcblx0XHRcdFx0XHRsYXN0UGFnZUxhYmVsOiB0aGlzLnNsb3RMYXN0RnJvbUNvbnRlbnQ/LnRlbXBsYXRlUmVmLFxuXHRcdFx0XHRcdHBhZ2VzRGlzcGxheTogdGhpcy5zbG90UGFnZXNGcm9tQ29udGVudD8udGVtcGxhdGVSZWYsXG5cdFx0XHRcdFx0bnVtYmVyTGFiZWw6IHRoaXMuc2xvdE51bWJlckxhYmVsRnJvbUNvbnRlbnQ/LnRlbXBsYXRlUmVmLFxuXHRcdFx0XHR9KSxcblx0XHRcdH0pLFxuXHRcdCk7XG5cdH1cbn1cbiJdfQ==
|