@dangl/angular-ava 0.1.1-beta0093
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 +1 -0
- package/esm2022/dangl-angular-ava.mjs +5 -0
- package/esm2022/lib/angular-ava.module.mjs +91 -0
- package/esm2022/lib/ava-tree/tree/components/ava-tree/ava-tree.component.mjs +412 -0
- package/esm2022/lib/ava-tree/tree/components/list-structure/list-structure.component.mjs +41 -0
- package/esm2022/lib/ava-tree/tree/components/table-structure/table-structure.component.mjs +110 -0
- package/esm2022/lib/ava-tree/tree/components/tree-item/tree-item.component.mjs +102 -0
- package/esm2022/lib/ava-tree/tree/components/tree-node/tree-node.component.mjs +53 -0
- package/esm2022/lib/ava-tree/tree/components/tree-structure/tree-structure.component.mjs +33 -0
- package/esm2022/lib/ava-tree/tree/constants/defaultFilters.mjs +23 -0
- package/esm2022/lib/ava-tree/tree/constants/defaultTextWords.mjs +11 -0
- package/esm2022/lib/ava-tree/tree/constants/defaults.mjs +4 -0
- package/esm2022/lib/ava-tree/tree/constants/index.mjs +5 -0
- package/esm2022/lib/ava-tree/tree/directives/save-changing-view.directive.mjs +47 -0
- package/esm2022/lib/ava-tree/tree/model/ava-models.mjs +199 -0
- package/esm2022/lib/ava-tree/tree/model/context-menu-data.model.mjs +2 -0
- package/esm2022/lib/ava-tree/tree/model/function-view-line.model.mjs +2 -0
- package/esm2022/lib/ava-tree/tree/model/index.mjs +4 -0
- package/esm2022/lib/ava-tree/tree/model/selecting.model.mjs +2 -0
- package/esm2022/lib/ava-tree/tree/model/tableColumnType.mjs +2 -0
- package/esm2022/lib/ava-tree/tree/model/tree-mode.model.mjs +7 -0
- package/esm2022/lib/ava-tree/tree/pipes/element-icon-name.pipe.mjs +27 -0
- package/esm2022/lib/ava-tree/tree/pipes/element-item-number.pipe.mjs +23 -0
- package/esm2022/lib/ava-tree/tree/pipes/element-text.pipe.mjs +27 -0
- package/esm2022/lib/ava-tree/tree/pipes/group-child-elements.pipe.mjs +20 -0
- package/esm2022/lib/ava-tree/tree/services/expand-parent-group.service.mjs +32 -0
- package/esm2022/lib/ava-tree/tree/services/flat-elements.service.mjs +96 -0
- package/esm2022/lib/ava-tree/tree/services/keyboard-operation.service.mjs +116 -0
- package/esm2022/lib/ava-tree/tree/services/select-element.service.mjs +41 -0
- package/esm2022/lib/ava-tree/tree/services/tree-node-selection.service.mjs +133 -0
- package/esm2022/lib/version.mjs +10 -0
- package/esm2022/public-api.mjs +8 -0
- package/fesm2022/dangl-angular-ava.mjs +1574 -0
- package/fesm2022/dangl-angular-ava.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/angular-ava.module.d.ts +27 -0
- package/lib/ava-tree/tree/components/ava-tree/ava-tree.component.d.ts +165 -0
- package/lib/ava-tree/tree/components/list-structure/list-structure.component.d.ts +18 -0
- package/lib/ava-tree/tree/components/table-structure/table-structure.component.d.ts +34 -0
- package/lib/ava-tree/tree/components/tree-item/tree-item.component.d.ts +35 -0
- package/lib/ava-tree/tree/components/tree-node/tree-node.component.d.ts +23 -0
- package/lib/ava-tree/tree/components/tree-structure/tree-structure.component.d.ts +14 -0
- package/lib/ava-tree/tree/constants/defaultFilters.d.ts +2 -0
- package/lib/ava-tree/tree/constants/defaultTextWords.d.ts +11 -0
- package/lib/ava-tree/tree/constants/defaults.d.ts +3 -0
- package/lib/ava-tree/tree/constants/index.d.ts +4 -0
- package/lib/ava-tree/tree/directives/save-changing-view.directive.d.ts +13 -0
- package/lib/ava-tree/tree/model/ava-models.d.ts +1041 -0
- package/lib/ava-tree/tree/model/context-menu-data.model.d.ts +8 -0
- package/lib/ava-tree/tree/model/function-view-line.model.d.ts +12 -0
- package/lib/ava-tree/tree/model/index.d.ts +7 -0
- package/lib/ava-tree/tree/model/selecting.model.d.ts +14 -0
- package/lib/ava-tree/tree/model/tableColumnType.d.ts +6 -0
- package/lib/ava-tree/tree/model/tree-mode.model.d.ts +5 -0
- package/lib/ava-tree/tree/pipes/element-icon-name.pipe.d.ts +8 -0
- package/lib/ava-tree/tree/pipes/element-item-number.pipe.d.ts +8 -0
- package/lib/ava-tree/tree/pipes/element-text.pipe.d.ts +8 -0
- package/lib/ava-tree/tree/pipes/group-child-elements.pipe.d.ts +8 -0
- package/lib/ava-tree/tree/services/expand-parent-group.service.d.ts +7 -0
- package/lib/ava-tree/tree/services/flat-elements.service.d.ts +28 -0
- package/lib/ava-tree/tree/services/keyboard-operation.service.d.ts +35 -0
- package/lib/ava-tree/tree/services/select-element.service.d.ts +31 -0
- package/lib/ava-tree/tree/services/tree-node-selection.service.d.ts +23 -0
- package/lib/version.d.ts +8 -0
- package/package.json +31 -0
- package/public-api.d.ts +4 -0
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
//----------------------
|
|
2
|
+
// <auto-generated>
|
|
3
|
+
// Generated using the NSwag toolchain v14.0.0.0 (NJsonSchema v11.0.0.0 (Newtonsoft.Json v13.0.0.0)) (http://NSwag.org)
|
|
4
|
+
// </auto-generated>
|
|
5
|
+
//----------------------
|
|
6
|
+
/* tslint:disable */
|
|
7
|
+
/* eslint-disable */
|
|
8
|
+
// ReSharper disable InconsistentNaming
|
|
9
|
+
/** This enum configures rounding modes for price calculations in projects */
|
|
10
|
+
export var PriceRoundingModeDto;
|
|
11
|
+
(function (PriceRoundingModeDto) {
|
|
12
|
+
PriceRoundingModeDto["Normal"] = "Normal";
|
|
13
|
+
PriceRoundingModeDto["Floor"] = "Floor";
|
|
14
|
+
PriceRoundingModeDto["Ceiling"] = "Ceiling";
|
|
15
|
+
})(PriceRoundingModeDto || (PriceRoundingModeDto = {}));
|
|
16
|
+
/** Determines the type of an ItemNumberSchema */
|
|
17
|
+
export var ItemNumberTypeDto;
|
|
18
|
+
(function (ItemNumberTypeDto) {
|
|
19
|
+
ItemNumberTypeDto["Numeric"] = "Numeric";
|
|
20
|
+
ItemNumberTypeDto["Alphanumeric"] = "Alphanumeric";
|
|
21
|
+
})(ItemNumberTypeDto || (ItemNumberTypeDto = {}));
|
|
22
|
+
/** Specifies the type an ItemNumberSchemaTier represents. For example, a tier may indicate to be used for positions or for groups. */
|
|
23
|
+
export var ItemNumberSchemaTierTypeDto;
|
|
24
|
+
(function (ItemNumberSchemaTierTypeDto) {
|
|
25
|
+
ItemNumberSchemaTierTypeDto["Undefined"] = "Undefined";
|
|
26
|
+
ItemNumberSchemaTierTypeDto["Index"] = "Index";
|
|
27
|
+
ItemNumberSchemaTierTypeDto["Position"] = "Position";
|
|
28
|
+
ItemNumberSchemaTierTypeDto["Group"] = "Group";
|
|
29
|
+
ItemNumberSchemaTierTypeDto["Lot"] = "Lot";
|
|
30
|
+
})(ItemNumberSchemaTierTypeDto || (ItemNumberSchemaTierTypeDto = {}));
|
|
31
|
+
/** This enumeration models types of price components for better classification. */
|
|
32
|
+
export var PriceComponentTypeDto;
|
|
33
|
+
(function (PriceComponentTypeDto) {
|
|
34
|
+
PriceComponentTypeDto["Unknown"] = "Unknown";
|
|
35
|
+
PriceComponentTypeDto["Wages"] = "Wages";
|
|
36
|
+
PriceComponentTypeDto["Materials"] = "Materials";
|
|
37
|
+
PriceComponentTypeDto["Plant"] = "Plant";
|
|
38
|
+
PriceComponentTypeDto["Miscellaneous"] = "Miscellaneous";
|
|
39
|
+
})(PriceComponentTypeDto || (PriceComponentTypeDto = {}));
|
|
40
|
+
/** This enumeration describes the type of the award / procurement process. If this is used in a GAEB context, more information about award types can be found in the German VOB/A rules and the GAEB standard */
|
|
41
|
+
export var AwardTypeDto;
|
|
42
|
+
(function (AwardTypeDto) {
|
|
43
|
+
AwardTypeDto["Unspecified"] = "Unspecified";
|
|
44
|
+
AwardTypeDto["OpenProcurement"] = "OpenProcurement";
|
|
45
|
+
AwardTypeDto["ClosedProducrement"] = "ClosedProducrement";
|
|
46
|
+
AwardTypeDto["NegotiationProcurementWithoutPublicAnnouncement"] = "NegotiationProcurementWithoutPublicAnnouncement";
|
|
47
|
+
AwardTypeDto["NegotiationProcurement"] = "NegotiationProcurement";
|
|
48
|
+
AwardTypeDto["OpenCall"] = "OpenCall";
|
|
49
|
+
AwardTypeDto["SelectedCallWithoutPublicCompetition"] = "SelectedCallWithoutPublicCompetition";
|
|
50
|
+
AwardTypeDto["SelectedCall"] = "SelectedCall";
|
|
51
|
+
AwardTypeDto["DirectAward"] = "DirectAward";
|
|
52
|
+
AwardTypeDto["InternationalNATOProcurement"] = "InternationalNATOProcurement";
|
|
53
|
+
AwardTypeDto["CompetitiveDialog"] = "CompetitiveDialog";
|
|
54
|
+
})(AwardTypeDto || (AwardTypeDto = {}));
|
|
55
|
+
/** This enumeration describes awards for project that are not just a regular procurement. For example, it can be used to describe recurring maintenance or an outline contract (German: Rahmenvertrag) which just specifies services and prices but may be requested on demand when necessary */
|
|
56
|
+
export var SpecialAwardKindDto;
|
|
57
|
+
(function (SpecialAwardKindDto) {
|
|
58
|
+
SpecialAwardKindDto["Unspecified"] = "Unspecified";
|
|
59
|
+
SpecialAwardKindDto["MaintenanceContract"] = "MaintenanceContract";
|
|
60
|
+
SpecialAwardKindDto["OutlineContract"] = "OutlineContract";
|
|
61
|
+
SpecialAwardKindDto["OutlineForMaintenanceContract"] = "OutlineForMaintenanceContract";
|
|
62
|
+
})(SpecialAwardKindDto || (SpecialAwardKindDto = {}));
|
|
63
|
+
/** This enumeration describes the type of a catalogue. Catalogues, or collections, hold information to categorize and describe items. For example, the German DIN 276 cost group standards describe different types of costs for building projects. When referencing the DIN 276 catalogue and providing an item key or identifier, it is possible to reference data in this catalogue. */
|
|
64
|
+
export var CatalogueTypeDto;
|
|
65
|
+
(function (CatalogueTypeDto) {
|
|
66
|
+
CatalogueTypeDto["Unknown"] = "Unknown";
|
|
67
|
+
CatalogueTypeDto["Location"] = "Location";
|
|
68
|
+
CatalogueTypeDto["DIN276"] = "DIN276";
|
|
69
|
+
CatalogueTypeDto["CostUnit"] = "CostUnit";
|
|
70
|
+
CatalogueTypeDto["WorkCategory"] = "WorkCategory";
|
|
71
|
+
CatalogueTypeDto["OenormB1801CostGroup"] = "OenormB1801CostGroup";
|
|
72
|
+
CatalogueTypeDto["BIM"] = "BIM";
|
|
73
|
+
CatalogueTypeDto["Attachment"] = "Attachment";
|
|
74
|
+
})(CatalogueTypeDto || (CatalogueTypeDto = {}));
|
|
75
|
+
/** Indicates the origin of an element. */
|
|
76
|
+
export var AdditionTypeDto;
|
|
77
|
+
(function (AdditionTypeDto) {
|
|
78
|
+
AdditionTypeDto["None"] = "None";
|
|
79
|
+
AdditionTypeDto["ByBuyer"] = "ByBuyer";
|
|
80
|
+
AdditionTypeDto["ByBidder"] = "ByBidder";
|
|
81
|
+
})(AdditionTypeDto || (AdditionTypeDto = {}));
|
|
82
|
+
/** This enumeration identifies a pre-known standard used for referencing standardized descriptions. */
|
|
83
|
+
export var StandardReferenceTypeDto;
|
|
84
|
+
(function (StandardReferenceTypeDto) {
|
|
85
|
+
StandardReferenceTypeDto["Unknown"] = "Unknown";
|
|
86
|
+
StandardReferenceTypeDto["StLB"] = "StLB";
|
|
87
|
+
StandardReferenceTypeDto["StLK"] = "StLK";
|
|
88
|
+
StandardReferenceTypeDto["STLBBauZ"] = "STLBBauZ";
|
|
89
|
+
})(StandardReferenceTypeDto || (StandardReferenceTypeDto = {}));
|
|
90
|
+
/** Indicates if this service specification item is commissioned (and therefore should be executed), postponed for later or undefined. */
|
|
91
|
+
export var ComissionStatusDto;
|
|
92
|
+
(function (ComissionStatusDto) {
|
|
93
|
+
ComissionStatusDto["Undefined"] = "Undefined";
|
|
94
|
+
ComissionStatusDto["Commissioned"] = "Commissioned";
|
|
95
|
+
ComissionStatusDto["Postponed"] = "Postponed";
|
|
96
|
+
ComissionStatusDto["Removed"] = "Removed";
|
|
97
|
+
})(ComissionStatusDto || (ComissionStatusDto = {}));
|
|
98
|
+
/** This is a classification for Position elements. */
|
|
99
|
+
export var PositionTypeDto;
|
|
100
|
+
(function (PositionTypeDto) {
|
|
101
|
+
PositionTypeDto["Regular"] = "Regular";
|
|
102
|
+
PositionTypeDto["Optional"] = "Optional";
|
|
103
|
+
PositionTypeDto["Alternative"] = "Alternative";
|
|
104
|
+
})(PositionTypeDto || (PositionTypeDto = {}));
|
|
105
|
+
/** This indicates the price type of a IPricedElement. */
|
|
106
|
+
export var PriceTypeDto;
|
|
107
|
+
(function (PriceTypeDto) {
|
|
108
|
+
PriceTypeDto["WithTotal"] = "WithTotal";
|
|
109
|
+
PriceTypeDto["WithoutTotal"] = "WithoutTotal";
|
|
110
|
+
})(PriceTypeDto || (PriceTypeDto = {}));
|
|
111
|
+
/** The service type describes the type of service a Position represents. */
|
|
112
|
+
export var ServiceTypeDto;
|
|
113
|
+
(function (ServiceTypeDto) {
|
|
114
|
+
ServiceTypeDto["Regular"] = "Regular";
|
|
115
|
+
ServiceTypeDto["HourlyPaidWork"] = "HourlyPaidWork";
|
|
116
|
+
})(ServiceTypeDto || (ServiceTypeDto = {}));
|
|
117
|
+
/** This indicates where the content of this element originates, if set. It corresponds to 'herkunftskennzeichen' in ÖNorm */
|
|
118
|
+
export var OenormOriginCodeDto;
|
|
119
|
+
(function (OenormOriginCodeDto) {
|
|
120
|
+
OenormOriginCodeDto["Unknown"] = "Unknown";
|
|
121
|
+
OenormOriginCodeDto["FreeText"] = "FreeText";
|
|
122
|
+
OenormOriginCodeDto["AdditionDescription"] = "AdditionDescription";
|
|
123
|
+
})(OenormOriginCodeDto || (OenormOriginCodeDto = {}));
|
|
124
|
+
/** This enumeration represents the status of an addendum, 'Nachtrag' in German */
|
|
125
|
+
export var AddendumStatusDto;
|
|
126
|
+
(function (AddendumStatusDto) {
|
|
127
|
+
AddendumStatusDto["Unknown"] = "Unknown";
|
|
128
|
+
AddendumStatusDto["Recognized"] = "Recognized";
|
|
129
|
+
AddendumStatusDto["Filed"] = "Filed";
|
|
130
|
+
AddendumStatusDto["Offered"] = "Offered";
|
|
131
|
+
AddendumStatusDto["Withdrawn"] = "Withdrawn";
|
|
132
|
+
AddendumStatusDto["Rejected"] = "Rejected";
|
|
133
|
+
AddendumStatusDto["RejectionObjected"] = "RejectionObjected";
|
|
134
|
+
AddendumStatusDto["FormallyAcknowledged"] = "FormallyAcknowledged";
|
|
135
|
+
AddendumStatusDto["Approved"] = "Approved";
|
|
136
|
+
})(AddendumStatusDto || (AddendumStatusDto = {}));
|
|
137
|
+
/** This enum represents the different ways in which a complementing position type can be specified. It is typically only used in GAEB exports, since in Dangl.AVA, complementing positions are always explicitly referenced. */
|
|
138
|
+
export var PositionComplementingTypeDto;
|
|
139
|
+
(function (PositionComplementingTypeDto) {
|
|
140
|
+
PositionComplementingTypeDto["Undefined"] = "Undefined";
|
|
141
|
+
PositionComplementingTypeDto["AllPreviousMarkedPositions"] = "AllPreviousMarkedPositions";
|
|
142
|
+
PositionComplementingTypeDto["AllPreviousPositions"] = "AllPreviousPositions";
|
|
143
|
+
PositionComplementingTypeDto["ReferencedPositions"] = "ReferencedPositions";
|
|
144
|
+
})(PositionComplementingTypeDto || (PositionComplementingTypeDto = {}));
|
|
145
|
+
/** Types of retentions to be used in positions */
|
|
146
|
+
export var HoldOutTypeDto;
|
|
147
|
+
(function (HoldOutTypeDto) {
|
|
148
|
+
HoldOutTypeDto["Unknown"] = "Unknown";
|
|
149
|
+
HoldOutTypeDto["Base"] = "Base";
|
|
150
|
+
HoldOutTypeDto["Extension"] = "Extension";
|
|
151
|
+
HoldOutTypeDto["Rent"] = "Rent";
|
|
152
|
+
})(HoldOutTypeDto || (HoldOutTypeDto = {}));
|
|
153
|
+
/** Duration used in retention positions */
|
|
154
|
+
export var HoldOutDurationUnitDto;
|
|
155
|
+
(function (HoldOutDurationUnitDto) {
|
|
156
|
+
HoldOutDurationUnitDto["Unknown"] = "Unknown";
|
|
157
|
+
HoldOutDurationUnitDto["Minutes"] = "Minutes";
|
|
158
|
+
HoldOutDurationUnitDto["Hours"] = "Hours";
|
|
159
|
+
HoldOutDurationUnitDto["Days"] = "Days";
|
|
160
|
+
HoldOutDurationUnitDto["Weeks"] = "Weeks";
|
|
161
|
+
HoldOutDurationUnitDto["Months"] = "Months";
|
|
162
|
+
})(HoldOutDurationUnitDto || (HoldOutDurationUnitDto = {}));
|
|
163
|
+
/** Indicates a ServiceSpecification's exchange phase, based on the GAEB exchange phases. */
|
|
164
|
+
export var ExchangePhaseDto;
|
|
165
|
+
(function (ExchangePhaseDto) {
|
|
166
|
+
ExchangePhaseDto["Undefined"] = "Undefined";
|
|
167
|
+
ExchangePhaseDto["Base"] = "Base";
|
|
168
|
+
ExchangePhaseDto["CostEstimate"] = "CostEstimate";
|
|
169
|
+
ExchangePhaseDto["OfferRequest"] = "OfferRequest";
|
|
170
|
+
ExchangePhaseDto["Offer"] = "Offer";
|
|
171
|
+
ExchangePhaseDto["SideOffer"] = "SideOffer";
|
|
172
|
+
ExchangePhaseDto["Grant"] = "Grant";
|
|
173
|
+
})(ExchangePhaseDto || (ExchangePhaseDto = {}));
|
|
174
|
+
/** Indicates where a service specification was originally created. */
|
|
175
|
+
export var OriginDto;
|
|
176
|
+
(function (OriginDto) {
|
|
177
|
+
OriginDto["Self"] = "Self";
|
|
178
|
+
OriginDto["Gaeb90"] = "Gaeb90";
|
|
179
|
+
OriginDto["Gaeb2000"] = "Gaeb2000";
|
|
180
|
+
OriginDto["GaebXml"] = "GaebXml";
|
|
181
|
+
OriginDto["Oenorm"] = "Oenorm";
|
|
182
|
+
OriginDto["Reb"] = "Reb";
|
|
183
|
+
OriginDto["Sia"] = "Sia";
|
|
184
|
+
})(OriginDto || (OriginDto = {}));
|
|
185
|
+
/** This enumeration represents the unit of a duration */
|
|
186
|
+
export var DurationUnitDto;
|
|
187
|
+
(function (DurationUnitDto) {
|
|
188
|
+
DurationUnitDto["Months"] = "Months";
|
|
189
|
+
DurationUnitDto["Years"] = "Years";
|
|
190
|
+
})(DurationUnitDto || (DurationUnitDto = {}));
|
|
191
|
+
/** This enum represents types of price inquiries */
|
|
192
|
+
export var CommerceInquiryTypeDto;
|
|
193
|
+
(function (CommerceInquiryTypeDto) {
|
|
194
|
+
CommerceInquiryTypeDto["Unknown"] = "Unknown";
|
|
195
|
+
CommerceInquiryTypeDto["Project"] = "Project";
|
|
196
|
+
CommerceInquiryTypeDto["Immediate"] = "Immediate";
|
|
197
|
+
CommerceInquiryTypeDto["Exhibition"] = "Exhibition";
|
|
198
|
+
})(CommerceInquiryTypeDto || (CommerceInquiryTypeDto = {}));
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9saWIvYXZhLXRyZWUvdHJlZS9tb2RlbC9hdmEtbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdCQUF3QjtBQUN4QixtQkFBbUI7QUFDbkIsMkhBQTJIO0FBQzNILG9CQUFvQjtBQUNwQix3QkFBd0I7QUFFeEIsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQix1Q0FBdUM7QUFFdkMsNkVBQTZFO0FBQzdFLE1BQU0sQ0FBTixJQUFZLG9CQUlYO0FBSkQsV0FBWSxvQkFBb0I7SUFDNUIseUNBQWlCLENBQUE7SUFDakIsdUNBQWUsQ0FBQTtJQUNmLDJDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFKVyxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBSS9CO0FBMElELGlEQUFpRDtBQUNqRCxNQUFNLENBQU4sSUFBWSxpQkFHWDtBQUhELFdBQVksaUJBQWlCO0lBQ3pCLHdDQUFtQixDQUFBO0lBQ25CLGtEQUE2QixDQUFBO0FBQ2pDLENBQUMsRUFIVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBRzVCO0FBRUQsc0lBQXNJO0FBQ3RJLE1BQU0sQ0FBTixJQUFZLDJCQU1YO0FBTkQsV0FBWSwyQkFBMkI7SUFDbkMsc0RBQXVCLENBQUE7SUFDdkIsOENBQWUsQ0FBQTtJQUNmLG9EQUFxQixDQUFBO0lBQ3JCLDhDQUFlLENBQUE7SUFDZiwwQ0FBVyxDQUFBO0FBQ2YsQ0FBQyxFQU5XLDJCQUEyQixLQUEzQiwyQkFBMkIsUUFNdEM7QUFFRCxtRkFBbUY7QUFDbkYsTUFBTSxDQUFOLElBQVkscUJBTVg7QUFORCxXQUFZLHFCQUFxQjtJQUM3Qiw0Q0FBbUIsQ0FBQTtJQUNuQix3Q0FBZSxDQUFBO0lBQ2YsZ0RBQXVCLENBQUE7SUFDdkIsd0NBQWUsQ0FBQTtJQUNmLHdEQUErQixDQUFBO0FBQ25DLENBQUMsRUFOVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBTWhDO0FBRUQsaU5BQWlOO0FBQ2pOLE1BQU0sQ0FBTixJQUFZLFlBWVg7QUFaRCxXQUFZLFlBQVk7SUFDcEIsMkNBQTJCLENBQUE7SUFDM0IsbURBQW1DLENBQUE7SUFDbkMseURBQXlDLENBQUE7SUFDekMsbUhBQW1HLENBQUE7SUFDbkcsaUVBQWlELENBQUE7SUFDakQscUNBQXFCLENBQUE7SUFDckIsNkZBQTZFLENBQUE7SUFDN0UsNkNBQTZCLENBQUE7SUFDN0IsMkNBQTJCLENBQUE7SUFDM0IsNkVBQTZELENBQUE7SUFDN0QsdURBQXVDLENBQUE7QUFDM0MsQ0FBQyxFQVpXLFlBQVksS0FBWixZQUFZLFFBWXZCO0FBRUQsaVNBQWlTO0FBQ2pTLE1BQU0sQ0FBTixJQUFZLG1CQUtYO0FBTEQsV0FBWSxtQkFBbUI7SUFDM0Isa0RBQTJCLENBQUE7SUFDM0Isa0VBQTJDLENBQUE7SUFDM0MsMERBQW1DLENBQUE7SUFDbkMsc0ZBQStELENBQUE7QUFDbkUsQ0FBQyxFQUxXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFLOUI7QUE4SUQsMlhBQTJYO0FBQzNYLE1BQU0sQ0FBTixJQUFZLGdCQVNYO0FBVEQsV0FBWSxnQkFBZ0I7SUFDeEIsdUNBQW1CLENBQUE7SUFDbkIseUNBQXFCLENBQUE7SUFDckIscUNBQWlCLENBQUE7SUFDakIseUNBQXFCLENBQUE7SUFDckIsaURBQTZCLENBQUE7SUFDN0IsaUVBQTZDLENBQUE7SUFDN0MsK0JBQVcsQ0FBQTtJQUNYLDZDQUF5QixDQUFBO0FBQzdCLENBQUMsRUFUVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBUzNCO0FBd05ELDBDQUEwQztBQUMxQyxNQUFNLENBQU4sSUFBWSxlQUlYO0FBSkQsV0FBWSxlQUFlO0lBQ3ZCLGdDQUFhLENBQUE7SUFDYixzQ0FBbUIsQ0FBQTtJQUNuQix3Q0FBcUIsQ0FBQTtBQUN6QixDQUFDLEVBSlcsZUFBZSxLQUFmLGVBQWUsUUFJMUI7QUFZRCx1R0FBdUc7QUFDdkcsTUFBTSxDQUFOLElBQVksd0JBS1g7QUFMRCxXQUFZLHdCQUF3QjtJQUNoQywrQ0FBbUIsQ0FBQTtJQUNuQix5Q0FBYSxDQUFBO0lBQ2IseUNBQWEsQ0FBQTtJQUNiLGlEQUFxQixDQUFBO0FBQ3pCLENBQUMsRUFMVyx3QkFBd0IsS0FBeEIsd0JBQXdCLFFBS25DO0FBNEJELHlJQUF5STtBQUN6SSxNQUFNLENBQU4sSUFBWSxrQkFLWDtBQUxELFdBQVksa0JBQWtCO0lBQzFCLDZDQUF1QixDQUFBO0lBQ3ZCLG1EQUE2QixDQUFBO0lBQzdCLDZDQUF1QixDQUFBO0lBQ3ZCLHlDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFMVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBSzdCO0FBdUJELHNEQUFzRDtBQUN0RCxNQUFNLENBQU4sSUFBWSxlQUlYO0FBSkQsV0FBWSxlQUFlO0lBQ3ZCLHNDQUFtQixDQUFBO0lBQ25CLHdDQUFxQixDQUFBO0lBQ3JCLDhDQUEyQixDQUFBO0FBQy9CLENBQUMsRUFKVyxlQUFlLEtBQWYsZUFBZSxRQUkxQjtBQUVELHlEQUF5RDtBQUN6RCxNQUFNLENBQU4sSUFBWSxZQUdYO0FBSEQsV0FBWSxZQUFZO0lBQ3BCLHVDQUF1QixDQUFBO0lBQ3ZCLDZDQUE2QixDQUFBO0FBQ2pDLENBQUMsRUFIVyxZQUFZLEtBQVosWUFBWSxRQUd2QjtBQUVELDRFQUE0RTtBQUM1RSxNQUFNLENBQU4sSUFBWSxjQUdYO0FBSEQsV0FBWSxjQUFjO0lBQ3RCLHFDQUFtQixDQUFBO0lBQ25CLG1EQUFpQyxDQUFBO0FBQ3JDLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QjtBQWdHRCw2SEFBNkg7QUFDN0gsTUFBTSxDQUFOLElBQVksbUJBSVg7QUFKRCxXQUFZLG1CQUFtQjtJQUMzQiwwQ0FBbUIsQ0FBQTtJQUNuQiw0Q0FBcUIsQ0FBQTtJQUNyQixrRUFBMkMsQ0FBQTtBQUMvQyxDQUFDLEVBSlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUk5QjtBQUVELGtGQUFrRjtBQUNsRixNQUFNLENBQU4sSUFBWSxpQkFVWDtBQVZELFdBQVksaUJBQWlCO0lBQ3pCLHdDQUFtQixDQUFBO0lBQ25CLDhDQUF5QixDQUFBO0lBQ3pCLG9DQUFlLENBQUE7SUFDZix3Q0FBbUIsQ0FBQTtJQUNuQiw0Q0FBdUIsQ0FBQTtJQUN2QiwwQ0FBcUIsQ0FBQTtJQUNyQiw0REFBdUMsQ0FBQTtJQUN2QyxrRUFBNkMsQ0FBQTtJQUM3QywwQ0FBcUIsQ0FBQTtBQUN6QixDQUFDLEVBVlcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQVU1QjtBQUVELGdPQUFnTztBQUNoTyxNQUFNLENBQU4sSUFBWSw0QkFLWDtBQUxELFdBQVksNEJBQTRCO0lBQ3BDLHVEQUF1QixDQUFBO0lBQ3ZCLHlGQUF5RCxDQUFBO0lBQ3pELDZFQUE2QyxDQUFBO0lBQzdDLDJFQUEyQyxDQUFBO0FBQy9DLENBQUMsRUFMVyw0QkFBNEIsS0FBNUIsNEJBQTRCLFFBS3ZDO0FBZ0JELGtEQUFrRDtBQUNsRCxNQUFNLENBQU4sSUFBWSxjQUtYO0FBTEQsV0FBWSxjQUFjO0lBQ3RCLHFDQUFtQixDQUFBO0lBQ25CLCtCQUFhLENBQUE7SUFDYix5Q0FBdUIsQ0FBQTtJQUN2QiwrQkFBYSxDQUFBO0FBQ2pCLENBQUMsRUFMVyxjQUFjLEtBQWQsY0FBYyxRQUt6QjtBQUVELDJDQUEyQztBQUMzQyxNQUFNLENBQU4sSUFBWSxzQkFPWDtBQVBELFdBQVksc0JBQXNCO0lBQzlCLDZDQUFtQixDQUFBO0lBQ25CLDZDQUFtQixDQUFBO0lBQ25CLHlDQUFlLENBQUE7SUFDZix1Q0FBYSxDQUFBO0lBQ2IseUNBQWUsQ0FBQTtJQUNmLDJDQUFpQixDQUFBO0FBQ3JCLENBQUMsRUFQVyxzQkFBc0IsS0FBdEIsc0JBQXNCLFFBT2pDO0FBbUtELDRGQUE0RjtBQUM1RixNQUFNLENBQU4sSUFBWSxnQkFRWDtBQVJELFdBQVksZ0JBQWdCO0lBQ3hCLDJDQUF1QixDQUFBO0lBQ3ZCLGlDQUFhLENBQUE7SUFDYixpREFBNkIsQ0FBQTtJQUM3QixpREFBNkIsQ0FBQTtJQUM3QixtQ0FBZSxDQUFBO0lBQ2YsMkNBQXVCLENBQUE7SUFDdkIsbUNBQWUsQ0FBQTtBQUNuQixDQUFDLEVBUlcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQVEzQjtBQUVELHNFQUFzRTtBQUN0RSxNQUFNLENBQU4sSUFBWSxTQVFYO0FBUkQsV0FBWSxTQUFTO0lBQ2pCLDBCQUFhLENBQUE7SUFDYiw4QkFBaUIsQ0FBQTtJQUNqQixrQ0FBcUIsQ0FBQTtJQUNyQixnQ0FBbUIsQ0FBQTtJQUNuQiw4QkFBaUIsQ0FBQTtJQUNqQix3QkFBVyxDQUFBO0lBQ1gsd0JBQVcsQ0FBQTtBQUNmLENBQUMsRUFSVyxTQUFTLEtBQVQsU0FBUyxRQVFwQjtBQXNDRCx5REFBeUQ7QUFDekQsTUFBTSxDQUFOLElBQVksZUFHWDtBQUhELFdBQVksZUFBZTtJQUN2QixvQ0FBaUIsQ0FBQTtJQUNqQixrQ0FBZSxDQUFBO0FBQ25CLENBQUMsRUFIVyxlQUFlLEtBQWYsZUFBZSxRQUcxQjtBQThCRCxvREFBb0Q7QUFDcEQsTUFBTSxDQUFOLElBQVksc0JBS1g7QUFMRCxXQUFZLHNCQUFzQjtJQUM5Qiw2Q0FBbUIsQ0FBQTtJQUNuQiw2Q0FBbUIsQ0FBQTtJQUNuQixpREFBdUIsQ0FBQTtJQUN2QixtREFBeUIsQ0FBQTtBQUM3QixDQUFDLEVBTFcsc0JBQXNCLEtBQXRCLHNCQUFzQixRQUtqQyIsInNvdXJjZXNDb250ZW50IjpbIi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gPGF1dG8tZ2VuZXJhdGVkPlxuLy8gICAgIEdlbmVyYXRlZCB1c2luZyB0aGUgTlN3YWcgdG9vbGNoYWluIHYxNC4wLjAuMCAoTkpzb25TY2hlbWEgdjExLjAuMC4wIChOZXd0b25zb2Z0Lkpzb24gdjEzLjAuMC4wKSkgKGh0dHA6Ly9OU3dhZy5vcmcpXG4vLyA8L2F1dG8tZ2VuZXJhdGVkPlxuLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qIHRzbGludDpkaXNhYmxlICovXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuLy8gUmVTaGFycGVyIGRpc2FibGUgSW5jb25zaXN0ZW50TmFtaW5nXG5cbi8qKiBUaGlzIGVudW0gY29uZmlndXJlcyByb3VuZGluZyBtb2RlcyBmb3IgcHJpY2UgY2FsY3VsYXRpb25zIGluIHByb2plY3RzICovXG5leHBvcnQgZW51bSBQcmljZVJvdW5kaW5nTW9kZUR0byB7XG4gICAgTm9ybWFsID0gXCJOb3JtYWxcIixcbiAgICBGbG9vciA9IFwiRmxvb3JcIixcbiAgICBDZWlsaW5nID0gXCJDZWlsaW5nXCIsXG59XG5cbi8qKiBHZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IGEgUHJvamVjdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdEluZm9ybWF0aW9uRHRvIHtcbiAgICAvKiogSW5mb3JtYXRpb24gYWJvdXQgdGhlIGJ1eWVyLiAqL1xuICAgIGJ1eWVyPzogUGFydHlJbmZvcm1hdGlvbkR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogRGVzY3JpcHRpb24gZm9yIHRoZSBwcm9qZWN0LiAqL1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBTaG9ydCBkZXNjcmlwdGlvbiBmb3IgdGhlIHByb2plY3QuICovXG4gICAgZGVzY3JpcHRpb25TaG9ydD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogTmFtZSBvZiB0aGUgcHJvamVjdC4gKi9cbiAgICBuYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgc2l0ZS4gKi9cbiAgICBzaXRlPzogUGFydHlJbmZvcm1hdGlvbkR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIEl0ZW1OdW1iZXJTY2hlbWEgdXNlZCBpbiB0aGUgcHJvamVjdC4gKi9cbiAgICBpdGVtTnVtYmVyU2NoZW1hPzogSXRlbU51bWJlclNjaGVtYUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogU2hvcnQgbGFiZWwgZm9yIHRoZSBjdXJyZW5jeSB1c2VkLiAqL1xuICAgIGN1cnJlbmN5U2hvcnQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEZ1bGwgbGFiZWwgb2YgdGhlIGN1cnJlbmN5IHVzZWQuICovXG4gICAgY3VycmVuY3lMb25nPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBMYWJlbCBmb3IgdGhlIGxhYm91ciB0aW1lIHBhcnQgb2YgcHJpY2VzIHVzZWQgaW4gdGhlIHByb2plY3QuICovXG4gICAgbGFib3VyVGltZUxhYmVsPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBMYWJlbHMgZm9yIHRoZSBwcmljZSBjb21wb25lbnRzIHVzZWQgaW4gdGhlIHByb2plY3QuIENhdXRpb246IFJlbW92YWwgb2YgYSBwcmljZSBjb21wb25lbnQgd2lsbCB0cmlnZ2VyIHRvIGhhdmUgZGVwZW5kZW50IHByaWNlIGluZm9ybWF0aW9ucyBiZSBkZWxldGVkIGluIElFbGVtZW50cyB0aGF0IHVzZSB0aGlzIHByb3BlcnR5LiBJZiB0aGlzIHByb3BlcnR5IGlzIGNoYW5nZWQgb3IgYWx0ZXJlZCBhZnRlciB0aGUgcHJvamVjdCBoYXMgYWxyZWFkeSBiZWVuIHVzZWQsIGl0IGlzIHN0cm9uZ2x5IGFkdmlzZWQgdG8gZG8gb3BlcmF0aW9ucyBzdGVwIGJ5IHN0ZXAsIGUuZy4gaWYgcmVuYW1pbmcgYW5kIHJlb3JkZXJpbmcgbXVsdGlwbGUgcHJpY2UgY29tcG9uZW50cywgdGhpcyBzaG91bGQgYmUgZG9uZSBvbmUgYnkgb25lLiBPdGhlcndpc2UsIGEgY29tYmluYXRpb24gb2YgcmVuYW1lIGFuZCByZW9yZGVyaW5nIHdpbGwgbm90IGJlIGNvcnJlY3RseSBwcm9wYWdhdGVkIGRvd253YXJkcyB0byBjaGlsZCBvYmplY3RzIGluIHRoaXMgUHJvamVjdC4gKi9cbiAgICBwcmljZUNvbXBvbmVudHM/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBkaWN0aW9uYXJ5IHNwZWNpZmllcyBhY3R1YWwgdHlwZXMgdXNlZCBmb3IgdGhlIFByaWNlQ29tcG9uZW50cy4gRm9yIGV4YW1wbGUsIGEgc2luZ2xlIHByaWNlIGNvbXBvbmVudCBtaWdodCBoYXZlIHRoZSBuYW1lICdNYXRlcmlhbCcgYXMgYSBzdHJpbmcsIGFucyB0aGlzIGRpY3Rpb25hcnkgd291bGQgdGhlbiBoYXZlIGEga2V5ICdNYXRlcmlhbCcgYW5kIGEgdmFsdWUgb2YgTWF0ZXJpYWxzLiBZb3UgY2FuIG5vdCBhZGQga2V5cyBoZXJlIHRoYXQgYXJlIG5vdCBhbHNvIHByZXNlbnQgaW4gdGhlIFByaWNlQ29tcG9uZW50cyBwcm9wZXJ0eSwgYW5kIHJlbW92aW5nIHByaWNlIGNvbXBvbmVudHMgd2lsbCBhbHNvIHJlbW92ZSB0aGVtIGZyb20gdGhpcyBkaWN0aW9uYXJ5IGhlcmUuICovXG4gICAgcmVhZG9ubHkgcHJpY2VDb21wb25lbnRUeXBlcz86IHsgW2tleTogc3RyaW5nXTogUHJpY2VDb21wb25lbnRUeXBlRHRvOyB9IHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGJvb2wgaW5kaWNhdGVzIGlmIHRoaXMgcHJvamVjdCBhbGxvd3MgdGhlIGJpZGRlciB0byBhZGQgYmlkZGVyIGNvbW1lbnRzLiBCaWRkZXIgY29tbWVudHMgYXJlIGEgd2F5IHRvIGF0dGFjaCBjbGFyaWZ5aW5nIGluZm9ybWF0aW9uIHdoZW4gc3VibWl0dGluZyBhbiBvZmZlci4gKi9cbiAgICBiaWRkZXJDb21tZW50QWxsb3dlZD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgcHJvcGVydHkgaW5kaWNhdGVzIGlmIHRoZSBwcm9qZWN0IHNob3VsZCBhbGxvdyBzaWRlIG9mZmVycyBmcm9tIGNvbnRyYWN0b3JzLiBJbiBHQUVCLCBhIHNpZGUgb2ZmZXIgd291bGQgdHlwaWNhbGx5IGJlIGluIGV4Y2hhbmdlIHBoYXNlIDg1LiAqL1xuICAgIHNpZGVPZmZlcnNBbGxvd2VkPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBlbnVtZXJhdGlvbiBkZXNjcmliZXMgdGhlIHR5cGUgb2YgdGhlIGF3YXJkIC8gcHJvY3VyZW1lbnQgcHJvY2Vzcy4gSWYgdGhpcyBpcyB1c2VkIGluIGEgR0FFQiBjb250ZXh0LCBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGF3YXJkIHR5cGVzIGNhbiBiZSBmb3VuZCBpbiB0aGUgR2VybWFuIFZPQi9BIHJ1bGVzIGFuZCB0aGUgR0FFQiBzdGFuZGFyZCAqL1xuICAgIGF3YXJkVHlwZT86IEF3YXJkVHlwZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBlbnVtZXJhdGlvbiBkZXNjcmliZXMgYXdhcmRzIGZvciBwcm9qZWN0IHRoYXQgYXJlIG5vdCBqdXN0IGEgcmVndWxhciBwcm9jdXJlbWVudC4gRm9yIGV4YW1wbGUsIGl0IGNhbiBiZSB1c2VkIHRvIGRlc2NyaWJlIHJlY3VycmluZyBtYWludGVuYW5jZSBvciBhbiBvdXRsaW5lIGNvbnRyYWN0IChHZXJtYW46IFJhaG1lbnZlcnRyYWcpIHdoaWNoIGp1c3Qgc3BlY2lmaWVzIHNlcnZpY2VzIGFuZCBwcmljZXMgYnV0IG1heSBiZSByZXF1ZXN0ZWQgb24gZGVtYW5kIHdoZW4gbmVjZXNzYXJ5ICovXG4gICAgc3BlY2lhbEF3YXJkS2luZD86IFNwZWNpYWxBd2FyZEtpbmREdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFJlcXVlc3RlcnMgaW4gYSBjb25zdHJ1Y3Rpb24gcHJvamVjdCwgaW4gR2VybWFuIGFsc28gY2FsbGVkICdCZWRhcmZzdHLDpGdlcicsIGFyZSBwYXJ0aWVzIGNvbm5lY3RlZCB0byB0aGUgYnVpbGRpbmcgcHJvY2VzcywgZS5nLiBhcmNoaXRlY3RzIG9yIHBsYW5uZXJzLiAqL1xuICAgIHJlcXVlc3RlcnM/OiBQYXJ0eUluZm9ybWF0aW9uRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIE5vdGlmaWNhdGlvbiBzaXRlcyBhcmUgYWRkcmVzc2VzIHRoYXQgYXJlIHVzZWQgZm9yIGRlbGl2ZXJpbmcgbWVzc2FnZXMgaW4gdGhlIGNvbnRleHQgb2YgY29uc3RydWN0aW9uIHByb2plY3RzLiAqL1xuICAgIG5vdGlmaWNhdGlvblNpdGVzPzogUGFydHlJbmZvcm1hdGlvbkR0b1tdIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogUmVwcmVzZW50cyBpbmZvcm1hdGlvbiBhYm91dCBhIHBhcnR5IChhIHNpdGUgb3IgYW4gb3JnYW5pemF0aW9uKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFydHlJbmZvcm1hdGlvbkR0byB7XG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGlzIHBhcnR5J3MgbmFtZS4gKi9cbiAgICBuYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHBhcnR5J3Mgc3RyZWV0LiAqL1xuICAgIHN0cmVldD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwYXJ0eSdzIFppcENvZGUuICovXG4gICAgemlwQ29kZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwYXJ0eSdzIENpdHkuICovXG4gICAgY2l0eT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwYXJ0eSdzIENvdW50cnkuICovXG4gICAgY291bnRyeT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwYXJ0eSdzIElkZW50aWZpZXIuICovXG4gICAgaWRlbnRpZmllcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogUmVtYXJrcyBmb3IgdGhpcyBwYXJ0eS4gKi9cbiAgICByZW1hcmtzPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBBbiBlbWFpbCBhZGRyZXNzIGZvciB0aGlzIHBhcnR5LiAqL1xuICAgIGVtYWlsPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBBIHBob25lIG51bWJlciBmb3IgdGhpcyBwYXJ0eS4gKi9cbiAgICBwaG9uZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIG5hbWUgb2YgYSBjb250YWN0IHBlcnNvbi4gKi9cbiAgICBjb250YWN0UGVyc29uTmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhbiBpZGVudGlmaWVyIHJlbGF0ZWQgdG8gdGhpcyBQYXJ0eUluZm9ybWF0aW9uIGFuZCB0aGVpciBpbnRlcm5hbCByZWZlcmVuY2Ugb2YgdGhlIHRlbmRlciAob3IgYXdhcmQpLiBUaGlzIG1pZ2h0IGJlIHVzZWQgdG8gYXNzaWduIGFuIGlkZW50aWZpZXIgKEdlcm1hbiBcIlZlcmdhYmVudW1tZXJcIikgZm9yIHRoZSBjdXJyZW50IHByb2plY3QuIFRoaXMgaXMgdHlwaWNhbGx5IG9ubHkgdXNlZCBpbiBCdXllciBhbmQgQmlkZGVyIHJlcHJlc2VudGF0aW9ucyBhbmQgc2hvdWxkIG1hcCB0byB0aGUgY29uY2VwdCBvZiBcIlZlcmdhYmVudW1tZXJcIiBvciBcIkF3YXJkTm9cIiBpbiBHQUVCLiAqL1xuICAgIGF3YXJkSWRlbnRpZmllcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBpbmRpY2F0ZXMgaWYgdGhlIHBhcnR5IGlzIHJlZ2lzdGVyZWQgd2l0aGluIHRoZSBFdXJvcGVhbiBFY29ub21pYyBBcmVhLiAqL1xuICAgIGlzSW5FdXJvcGVhbkVjb25vbWljQXJlYT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIHRoaXMgaXMgd2l0aGluIHRoZSBFdXJvcGVhbiBFY29ub21pYyBBcmVhIChzZWUgSXNJbkV1cm9wZWFuRWNvbm9taWNBcmVhLCB0aGVuIGFzIGEgYnVzaW5lc3MgZW50aXR5IGl0IGxpa2VseSBoYXMgYW4gRVUgVkFUIElkLiAqL1xuICAgIHZhdElkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgZmF4IG51bWJlciBmb3IgdGhpcyBwYXJ0eS4gKi9cbiAgICBmYXg/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB0d28gbGV0dGVyIElTTyBjb3VudHJ5IGNvZGUsIGUuZy4gREUgZm9yIEdlcm1hbnkuICovXG4gICAgY291bnRyeUNvZGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIERlcGVuZGluZyBvbiB3aGljaCBwYXJ0eSB0aGlzIGNsYXNzIHJlcHJlc2VudHMsIGl0IG1pZ2h0IGhhdmUgZWl0aGVyIGEgJ2NyZWRpdG9yJyBvciAnZGVidG9yJyBudW1iZXIuIFRoaXMgaXMgb2Z0ZW4gdXNlZCBpbiBpbnRlcm5hbCBhY2NvdW50aW5nIHN5c3RlbXMuICovXG4gICAgY3JlZGl0b3JPckRlYnRvcklkZW50aWZpZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBHbG9iYWwgTG9jYXRpb24gTnVtYmVyIChHTE4pIGlzIGlzc3VlZCBieSBHUzEgYW5kIGlzIGludGVuZGVkIHRvIGJlIGEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBwaHlzaWNhbCBhZGRyZXNzIG9mIGEgcGFydHksIGUuZy4gYSBidXNpbmVzcyBvZmZpY2UuICovXG4gICAgZ2xvYmFsTG9jYXRpb25OdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgbGlzdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBiYW5rIGFjY291bnRzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIFBhcnR5SW5mb3JtYXRpb24uIEl0J3MgdHlwaWNhbGx5IHVzZWQgZm9yIGJ1eWVycyBhbmQgYmlkZGVycy4gKi9cbiAgICBiYW5raW5nSW5mb3JtYXRpb24/OiBCYW5raW5nSW5mb3JtYXRpb25EdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgcmVnaXN0cmF0aW9uIG51bWJlciBmb3IgdGhpcyBwYXJ0eSwgZS5nLiBhIGNvbXBhbnkgcmVnaXN0cmF0aW9uIG51bWJlci4gSXQgaXMgdXN1YWxseSB1c2VkIGluIEdBRUIgWE1MIGNvbW1lcmNlIGV4Y2hhbmdlcyBmb3IgYmlkZGVycyB0byBzdXBwbHkgdGhlaXIgV0VFRSByZWdpc3RyYXRpb24gbnVtYmVyLCB3aGljaCBpcyB1c2VkIHRvIGlkZW50aWZ5IHRoZW0gYXMgYSByZWdpc3RlcmVkIFdFRUUgY29tcGFueS4gKi9cbiAgICByZWdpc3RyYXRpb25OdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGlzIGEgY2xhc3MgdGhhdCByZXByZXNlbnRzIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBhIGJhbmsgY29ubmVjdGlvbi4gSXQgaXMgdXN1YWxseSB1c2VkIHdpdGhpbiBhIFBhcnR5SW5mb3JtYXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIEJhbmtpbmdJbmZvcm1hdGlvbkR0byB7XG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGUgYmFuay4gKi9cbiAgICBuYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgaW50ZXJuYXRpb25hbCBpZGVudGlmaWVyIGZvciB0aGUgYmFuayBhY2NvdW50LiAqL1xuICAgIGliYW4/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBhY2NvdW50IG51bWJlci4gVHlwaWNhbGx5IG5vIGxvbmdlciB1c2VkIHNpbmNlIHRoZSBpbnRyb2R1Y3Rpb24gb2YgSUJBTiB3aXRoaW4gdGhlIFNFUEEgYXJlYS4gKi9cbiAgICBhY2NvdW50TnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgaW50ZXJuYXRpb25hbCBiYW5rIGlkZW50aWZpZXIuICovXG4gICAgYmljPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgcm91dGluZyBudW1iZXIgZm9yIHRoZSBiYW5rLiBUeXBpY2FsbHkgbm8gbG9uZ2VyIHVzZWQgc2luY2UgdGhlIGludHJvZHVjdGlvbiBvZiBJQkFOIHdpdGhpbiB0aGUgU0VQQSBhcmVhLiAqL1xuICAgIHJvdXRpbmdOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGUgc2NoZW1hIGZvciBJdGVtTnVtYmVyJ3MgaW4gYSBQcm9qZWN0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBJdGVtTnVtYmVyU2NoZW1hRHRvIHtcbiAgICAvKiogVGhlIGNvdW50IG9mIHRpZXJzIGluIHRoZSBJdGVtTnVtYmVyU2NoZW1hICovXG4gICAgcmVhZG9ubHkgdG90YWxMZW5ndGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBjb2xsZWN0aW9uIG9mIHRpZXJzIGZvciB0aGlzIEl0ZW1OdW1iZXJTY2hlbWEuICovXG4gICAgdGllcnM/OiBJdGVtTnVtYmVyU2NoZW1hVGllckR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgc2VwYXJhdG9yIHRvIHVzZSBmb3Igc2VwYXJpdGluZyB0aGUgZGlmZmVyZW50IGxldmVscyBpbiBhbiBJdGVtTnVtYmVyLiBEZWZhdWx0cyB0byBERUZBVUxUX1NFUEFSQVRPUiwgd2hpY2ggaXMgYSBwb2ludCAnLicuIFNldHRpbmcgdGhpcyB0byBhIHNwYWNlIG9yIG90aGVyIHdoaXRlc3BhY2VzIGlzIGRpc2NvdXJhZ2VkLCBhcyB0aGlzIG1pZ2h0IG5vdCB3b3JrIGNvcnJlY3QgaW4gYWxsIHNpdHVhdGlvbnMgYW5kIGl0ZW0gbnVtYmVycyBjb3VsZCBiZSBkaXNwbGF5ZWQgbm90IGFzIGludGVuZGVkLiBUaGlzIGNhbiBub3QgYmUgc2V0IHRvIGFuIGVtcHR5IG9yIG51bGwgc3RyaW5nLCB0cnlpbmcgdGhhdCB3aWxsIGRlZmF1bHQgdG8gdGhlIERFRkFVTFRfU0VQQVJBVE9SLiBJZiBhIHZhbHVlIGlzIHNldCB0aGF0IGhhcyBhIGRpZmZlcmVudCBsZW5ndGggdGhhbiBvbmUgJzEnLCB0aGUgREVGQVVMVF9TRVBBUkFUT1Igd2lsbCBiZSB1c2VkIGluc3RlYWQuIFlvdSBzaG91bGQgYWxzbyBub3QgdXNlIHZhbHVlcyBmb3IgdGhlIHNlcGFyYXRvciB0aGF0IGFyZSBhbHNvIHZhbGlkIGZvciB0aGUgaXRlbSBudW1iZXJzIHRoZW1zZWx2ZXMsIGFzIHRoYXQgbWlnaHQgYWxzbyBsZWFkIHRvIGluY29ycmVjdCByZXN1bHRzICovXG4gICAgc2VwYXJhdG9yPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHN0cmluZyBpcyB1c2VkIHRvIGZpbGwgKGxlZnQtcGFkKSBpdGVtIG51bWJlcnMuIEZvciBleGFtcGxlLCBpZiBhIHRpZXIgaGFzIGEgbGVuZ3RoIG9mICc0JyBidXQgdGhlIGdpdmVuIGl0ZW0gbnVtYmVyIGlzICcxMicsIHdpdGggYSBGaWxsZXIgb2YgJzAnLCB0aGVuIHRoZSBmaW5hbCBpdGVtIG51bWJlciB3aWxsIGJlIHJlcHJlc2VudGVkIGFzICcwJy4gVGhpcyBtdXN0IGJlIGEgc2luZ2xlIGNoYXJhY3RlciBzdHJpbmcsIGlmIGEgdmFsdWUgaXMgZ2l2ZW4gd2hlcmUgdGhlIExlbmd0aCBwcm9wZXJ0eSBkb2VzIG5vdCBldmFsdWF0ZSB0byAnMScsIHRoZSBERUZBVUxUX0ZJTExFUiAnMCcgaXMgdXNlZC4gQSBzcGFjZSBpcyBmaW5lIHRvIHVzZS4gWW91IHNob3VsZCBlbnN1cmUgdGhhdCB5b3UgdXNlIGEgdmFsdWUgZGlmZmVyZW50IHRoYW4gU2VwYXJhdG9yLCBhcyB0aGF0IG1pZ2h0IHByb2R1Y2UgdW5leHBlY3RlZCByZXN1bHRzLiBObyBhdHRlbXB0IGlzIGRvbmUgYnkgdGhlIGNvZGUgdG8gcmVjb3ZlciBmcm9tIHN1Y2ggYW1iaWd1b3VzIGNvbmZpZ3VyYXRpb25zLiAqL1xuICAgIGZpbGxlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBqdXN0IGEgc3RyaW5nIHByb3BlcnR5IHRoYXQgY2FuIG9wdGlvbmFsbHkgYmUgdXNlZCB0byBzdG9yZSBhZGRpdGlvbmFsIGRhdGEgZm9yIHRoaXMgSXRlbU51bWJlclNjaGVtYSwgZS5nLiBhbiBpZGVudGlmaWNhdGlvbiBvciBhIHR5cGUuIEl0IGRvZXMgbm90IGhhdmUgYW55IGluZmx1ZW5jZSBvdmVyIGhvdyBpdGVtIG51bWJlcnMgYXJlIGdlbmVyYXRlZCwgYW5kIGlzIG5vdCBzdXBwb3J0ZWQgaW4gbW9zdCBleGNoYW5nZSBmb3JtYXRzLiBIb3dldmVyLCBpdCBpcyB1c2VkIHRvIHN0b3JlIMOWTm9ybSBzZXJ2aWNlIHNwZWNpZmljYXRpb24gc3RydWN0dXJlIHR5cGVzLiAqL1xuICAgIGlkZW50aWZpZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgcHJvcGVydHkgaW5kaWNhdGVzIGlmIEl0ZW1OdW1iZXJzIHVzaW5nIHRoaXMgSXRlbU51bWJlclNjaGVtYSBzaG91bGQgc2tpcCBlbXB0eSBncm91cCBsZXZlbHMuIFRoaXMgaXMgY29tbW9ubHkgb25seSB1c2VkIGluIEdBRUIgZmlsZXMsIHdoZXJlIHRoZXJlIG1pZ2h0IGJlIGdhcHMgaW4gdGhlIGhpZXJhcmNoeSBvZiBlbGVtZW50cyBhbmQgcG9zaXRpb24gaWRlbnRpZmllcnMgc2hvdWxkIGJlIHBsYWNlZCBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24uICovXG4gICAgc2tpcE5vbkV4aXN0aW5nTGV2ZWxzSW5Qb3NpdGlvbkl0ZW1OdW1iZXJzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBzdHJpbmcgaXMgdXNlZCBvbmx5IHdoZW4gdGhlIHByb3BlcnR5IFNraXBOb25FeGlzdGluZ0xldmVsc0luUG9zaXRpb25JdGVtTnVtYmVycyBpbiB0aGlzIEl0ZW1OdW1iZXJTY2hlbWEgaXMgYWxzbyBzZXQgdG8gdHJ1ZS4gSXQgZGVmYXVsdHMgdG8gREVGQVVMVF9TS0lQUEVEX1RJRVJTX0ZJTExFUiwgYnV0IGNhbiBiZSBzZXQgdG8gYW55IHN0cmluZyB3aXRoIGEgbGVuZ2h0IG9mIG9uZS4gTnVsbCB2YWx1ZXMgb3IgdmFsdWVzIHdpdGggYSBsb25nZXIgbGVuZ3RoIHdpbGwgbGVhZCB0byB0aGlzIHByb3BlcnR5IHJldmVydGluZyBiYWNrIHRvIHRoZSBkZWZhdWx0IHZhbHVlLiBUaGlzIGlzIHVzZWQgdG8gZmlsbCBza2lwcGVkIHRpZXJzIGluIGl0ZW0gbnVtYmVycyB3aGVyZSBhIHBvc2l0aW9uIGlzIHBsYWNlZCBpbiBhIGhpZ2hlciBoaWVyYXJjaHkgbGV2ZWwgdGhhbiB3aGF0IHdvdWxkIGJlIGRlZmluZWQgaW4gdGhlIFRpZXJzLiBGb3IgZXhhbXBsZSwgaXQgY291bGQgcHJvZHVjZSBhbiBpdGVtIG51bWJlciBsaWtlICcwMS5fXy4wMicsIHdoaWNoIHdvdWxkIGluZGljYXRlIGEgc2tpcHBlZCBzZWNvbmQgbGV2ZWwuIFRoaXMgc2hvdWxkIGJlIHVzaW5nIGRpZmZlcmVudCB2YWx1ZXMgdGhhbiBGaWxsZXIgYW5kIFNlcGFyYXRvciwgc2luY2UgdGhhdCBjb3VsZCBjYXVzZSBhbWJpZ3VpdGllcyBpbiB0aGUgY29kZSB0aGF0IGdlbmVyYXRlcyB0aGUgYWN0dWFsIGl0ZW0gbnVtYmVycy4gTm8gYXR0ZW1wdCBpcyBkb25lIGJ5IHRoZSBjb2RlIHRvIHJlY292ZXIgZnJvbSBzdWNoIGFtYmlndW91cyBjb25maWd1cmF0aW9ucy4gKi9cbiAgICBza2lwcGVkVGllcnNGaWxsZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYSByZWFkLW9ubHkgcHJvcGVydHkgdGhhdCBpbmRpY2F0ZXMgaWYgdGhpcyBzY2hlbWEgaGFzIGEgdmFsaWQgc3RydWN0dXJlLiBJdCBpbnRlcm5hbGx5IGp1c3QgcmV0dXJucyB0aGUgcmVzdWx0IGZyb20gSXNDb3JyZWN0bHlEZWZpbmVkLiBUaGlzIHdpbGwgcmV0dXJuIGlmIHRoZSBJdGVtTnVtYmVyU2NoZW1hIGlzIGNvcnJlY3RseSBkZWZpbmVkLiBGb3IgaXQgdG8gYmUgY29ycmVjdGx5IGRlZmluZWQsIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBtdXN0IGJlIHRydWU6IFRoZXJlIG1heSBvbmx5IGJlIG9uZSBsb3QgZ3JvdXAsIGlmIHRoZXJlIGlzIG9uZSwgaXQgbXVzdCBiZSBhdCB0aGUgdG9wLiBGb2xsb3dpbmcgbG90IGxldmVscywgdGhlcmUgbWF5IGJlIGF0IGxlYXN0IG9uZSBncm91cCBsZXZlbC4gQWZ0ZXIgdGhlIGdyb3VwIGxldmVscywgdGhlcmUgbXVzdCBiZSBvbmUgcG9zaXRpb24gbGV2ZWwuIEFmdGVyIHRoZSBwb3NpdGlvbiBsZXZlbCwgdGhlcmUgbWF5IGJlIG9uZSBpbmRleCBsZXZlbC4gSWYgbm8gdGllcnMgYXJlIGRlZmluZWQgYXQgYWxsLCB0aGlzIHdpbGwgYWxzbyByZXR1cm4gZmFsc2UuICovXG4gICAgcmVhZG9ubHkgc2NoZW1hSXNDb3JyZWN0bHlEZWZpbmVkPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogRGVmYXVsdHMgdG8gZmFsc2UuIElmIHRoaXMgaXMgZGlzYWJsZWQsIGFsbCBsZXR0ZXJzIGluIHRoZSBJdGVtTnVtYmVyIHN0cmluZyByZXByZXNlbnRhdGlvbnMgd2lsbCBiZSB0cmFuc2Zvcm1lZCB0byB0aGVpciBsb3dlcmNhc2UgcmVwcmVzZW50YXRpb24uICovXG4gICAgYWxsb3dVcHBlckNhc2VMZXR0ZXJpbmc/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogUmVwcmVzZW50cyBpbmZvcm1hdGlvbiBhYm91dCBhIHNpbmdsZSBUaWVyIGluIGFuIEl0ZW1OdW1iZXIuICovXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1OdW1iZXJTY2hlbWFUaWVyRHRvIHtcbiAgICAvKiogVGhlIChtYXhpbXVtKSBsZW5ndGggZm9yIHRoaXMgdGllci4gV2lsbCBub3QgYWNjZXB0IGEgbGVuZ3RoIGxlc3MgdGhhbiAxLiBEZWZhdWx0cyB0byAxIGlmIGxlbmd0aCBsZXNzIHRoYW4gb25lIGlzIHNwZWNpZmllZC4gKi9cbiAgICBsZW5ndGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgSXRlbU51bWJlclNjaGVtYVRpZXIncyB0eXBlLiAqL1xuICAgIHR5cGU/OiBJdGVtTnVtYmVyVHlwZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBzcGVjaWZpZXMgd2hpY2ggSXRlbU51bWJlclNjaGVtYVRpZXJUeXBlIHRoaXMgdGllciByZXByZXNlbnRzLiBUaGlzIGNhbiBiZSwgZm9yIGV4YW1wbGUsIGEgZ3JvdXAgdGllciAvIGxldmVsLCBhIHBvc2l0aW9uIGxldmVsIG9yIGEgbG90IGxldmVsLiAqL1xuICAgIHRpZXJUeXBlPzogSXRlbU51bWJlclNjaGVtYVRpZXJUeXBlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhpcyB0aWVyIHJlcHJlc2VudHMgYSBsb3QuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBsb3RzLiAqL1xuICAgIHJlYWRvbmx5IGlzTG90PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyB2YWx1ZSBpcyB0aGUgaW5jcmVtZW50LCBvciBzdGVwIHNpemUsIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIG5ldyBpdGVtIG51bWJlcnMuIEl0IGRlZmF1bHRzIHRvIERFRkFVTFRfSU5DUkVNRU5ULCBidXQgY2FuIGJlIGNoYW5nZWQgdG8gYW55IG90aGVyIHBvc2l0aXZlIG51bWJlciBncmVhdGVyIHRoYW4gemVyby4gSW52YWxpZCB2YWx1ZXMgbWFrZSB0aGlzIGJlIHNldCB0byBvbmUgJzEnICovXG4gICAgaW5jcmVtZW50PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGFuIG9wdGlvbmFsIG5hbWUgZm9yIHRoZSBnaXZlbiB0aWVyICovXG4gICAgdGllck5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBEZXRlcm1pbmVzIHRoZSB0eXBlIG9mIGFuIEl0ZW1OdW1iZXJTY2hlbWEgKi9cbmV4cG9ydCBlbnVtIEl0ZW1OdW1iZXJUeXBlRHRvIHtcbiAgICBOdW1lcmljID0gXCJOdW1lcmljXCIsXG4gICAgQWxwaGFudW1lcmljID0gXCJBbHBoYW51bWVyaWNcIixcbn1cblxuLyoqIFNwZWNpZmllcyB0aGUgdHlwZSBhbiBJdGVtTnVtYmVyU2NoZW1hVGllciByZXByZXNlbnRzLiBGb3IgZXhhbXBsZSwgYSB0aWVyIG1heSBpbmRpY2F0ZSB0byBiZSB1c2VkIGZvciBwb3NpdGlvbnMgb3IgZm9yIGdyb3Vwcy4gKi9cbmV4cG9ydCBlbnVtIEl0ZW1OdW1iZXJTY2hlbWFUaWVyVHlwZUR0byB7XG4gICAgVW5kZWZpbmVkID0gXCJVbmRlZmluZWRcIixcbiAgICBJbmRleCA9IFwiSW5kZXhcIixcbiAgICBQb3NpdGlvbiA9IFwiUG9zaXRpb25cIixcbiAgICBHcm91cCA9IFwiR3JvdXBcIixcbiAgICBMb3QgPSBcIkxvdFwiLFxufVxuXG4vKiogVGhpcyBlbnVtZXJhdGlvbiBtb2RlbHMgdHlwZXMgb2YgcHJpY2UgY29tcG9uZW50cyBmb3IgYmV0dGVyIGNsYXNzaWZpY2F0aW9uLiAqL1xuZXhwb3J0IGVudW0gUHJpY2VDb21wb25lbnRUeXBlRHRvIHtcbiAgICBVbmtub3duID0gXCJVbmtub3duXCIsXG4gICAgV2FnZXMgPSBcIldhZ2VzXCIsXG4gICAgTWF0ZXJpYWxzID0gXCJNYXRlcmlhbHNcIixcbiAgICBQbGFudCA9IFwiUGxhbnRcIixcbiAgICBNaXNjZWxsYW5lb3VzID0gXCJNaXNjZWxsYW5lb3VzXCIsXG59XG5cbi8qKiBUaGlzIGVudW1lcmF0aW9uIGRlc2NyaWJlcyB0aGUgdHlwZSBvZiB0aGUgYXdhcmQgLyBwcm9jdXJlbWVudCBwcm9jZXNzLiBJZiB0aGlzIGlzIHVzZWQgaW4gYSBHQUVCIGNvbnRleHQsIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYXdhcmQgdHlwZXMgY2FuIGJlIGZvdW5kIGluIHRoZSBHZXJtYW4gVk9CL0EgcnVsZXMgYW5kIHRoZSBHQUVCIHN0YW5kYXJkICovXG5leHBvcnQgZW51bSBBd2FyZFR5cGVEdG8ge1xuICAgIFVuc3BlY2lmaWVkID0gXCJVbnNwZWNpZmllZFwiLFxuICAgIE9wZW5Qcm9jdXJlbWVudCA9IFwiT3BlblByb2N1cmVtZW50XCIsXG4gICAgQ2xvc2VkUHJvZHVjcmVtZW50ID0gXCJDbG9zZWRQcm9kdWNyZW1lbnRcIixcbiAgICBOZWdvdGlhdGlvblByb2N1cmVtZW50V2l0aG91dFB1YmxpY0Fubm91bmNlbWVudCA9IFwiTmVnb3RpYXRpb25Qcm9jdXJlbWVudFdpdGhvdXRQdWJsaWNBbm5vdW5jZW1lbnRcIixcbiAgICBOZWdvdGlhdGlvblByb2N1cmVtZW50ID0gXCJOZWdvdGlhdGlvblByb2N1cmVtZW50XCIsXG4gICAgT3BlbkNhbGwgPSBcIk9wZW5DYWxsXCIsXG4gICAgU2VsZWN0ZWRDYWxsV2l0aG91dFB1YmxpY0NvbXBldGl0aW9uID0gXCJTZWxlY3RlZENhbGxXaXRob3V0UHVibGljQ29tcGV0aXRpb25cIixcbiAgICBTZWxlY3RlZENhbGwgPSBcIlNlbGVjdGVkQ2FsbFwiLFxuICAgIERpcmVjdEF3YXJkID0gXCJEaXJlY3RBd2FyZFwiLFxuICAgIEludGVybmF0aW9uYWxOQVRPUHJvY3VyZW1lbnQgPSBcIkludGVybmF0aW9uYWxOQVRPUHJvY3VyZW1lbnRcIixcbiAgICBDb21wZXRpdGl2ZURpYWxvZyA9IFwiQ29tcGV0aXRpdmVEaWFsb2dcIixcbn1cblxuLyoqIFRoaXMgZW51bWVyYXRpb24gZGVzY3JpYmVzIGF3YXJkcyBmb3IgcHJvamVjdCB0aGF0IGFyZSBub3QganVzdCBhIHJlZ3VsYXIgcHJvY3VyZW1lbnQuIEZvciBleGFtcGxlLCBpdCBjYW4gYmUgdXNlZCB0byBkZXNjcmliZSByZWN1cnJpbmcgbWFpbnRlbmFuY2Ugb3IgYW4gb3V0bGluZSBjb250cmFjdCAoR2VybWFuOiBSYWhtZW52ZXJ0cmFnKSB3aGljaCBqdXN0IHNwZWNpZmllcyBzZXJ2aWNlcyBhbmQgcHJpY2VzIGJ1dCBtYXkgYmUgcmVxdWVzdGVkIG9uIGRlbWFuZCB3aGVuIG5lY2Vzc2FyeSAqL1xuZXhwb3J0IGVudW0gU3BlY2lhbEF3YXJkS2luZER0byB7XG4gICAgVW5zcGVjaWZpZWQgPSBcIlVuc3BlY2lmaWVkXCIsXG4gICAgTWFpbnRlbmFuY2VDb250cmFjdCA9IFwiTWFpbnRlbmFuY2VDb250cmFjdFwiLFxuICAgIE91dGxpbmVDb250cmFjdCA9IFwiT3V0bGluZUNvbnRyYWN0XCIsXG4gICAgT3V0bGluZUZvck1haW50ZW5hbmNlQ29udHJhY3QgPSBcIk91dGxpbmVGb3JNYWludGVuYW5jZUNvbnRyYWN0XCIsXG59XG5cbi8qKiBUaGlzIGlzIHRoZSBiYXNlIGNsYXNzIHRoYXQgaG9sZHMgaW5mb3JtYXRpb24gYWJvdXQgYSB3aG9sZSBzZXJ2aWNlIHNwZWNpZmljYXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VTcGVjaWZpY2F0aW9uRHRvIHtcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqIFRoZSBob3VybHkgd2FnZSB0aGF0IGlzIHVzZWQgd2l0aGluIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UuIFdpbGwgYmUgcHJvcGFnYXRlZCB0byBjaGlsZCBlbGVtZW50cy4gKi9cbiAgICByZWFkb25seSBwcm9qZWN0SG91cmx5V2FnZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHRheCByYXRlIHRoYXQgaXMgdXNlZCB3aXRoaW4gdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZS4gV2lsbCBiZSBwcm9wYWdhdGVkIHRvIGNoaWxkIGVsZW1lbnRzLiAqL1xuICAgIHByb2plY3RUYXhSYXRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgcHJpY2UgY29tcG9uZW50cyB0aGF0IGFyZSB1c2VkIHdpdGhpbiB0aGlzIHByb2plY3QuIFRoZXkgYXJlIGlnbm9yZWQgZHVyaW5nIEpzb24gZGVzZXJpYWxpemF0aW9uIGJlY2F1c2UgdGhleSB3aWxsIGJlIHNldCBmcm9tIHRoZSBwYXJlbnQgcHJvamVjdC4gKi9cbiAgICBwcm9qZWN0UHJpY2VDb21wb25lbnRzPzogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBJdGVtTnVtYmVyU2NoZW1hIHRoYXQgaXMgdXNlZCB3aXRoaW4gdGhpcyBwcm9qZWN0LiAqL1xuICAgIHByb2plY3RJdGVtTnVtYmVyU2NoZW1hPzogSXRlbU51bWJlclNjaGVtYUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIElFbGVtZW50cyB3aXRoaW4gdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZS4gKi9cbiAgICBlbGVtZW50cz86IElFbGVtZW50RHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBsYWJlbCB1c2VkIGluIHRoZSBwYXJlbnQgUHJvamVjdCB0byBtYXJrIGxhYm91ciB0aW1lLCBlLmcuIFwiSG91cnNcIiBvciBcIlN0dW5kZW5cIi4gKi9cbiAgICByZWFkb25seSBwcm9qZWN0TGFib3VyVGltZUxhYmVsPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlcmUgYXJlIGNoaWxkIElFbGVtZW50cyB0aGF0IGhhdmUgY29uZmxpY3RpbmcsIGR1cGxpY2F0ZWQgSXRlbU51bWJlcnMgb3IgaWYgYW55IGNoaWxkIEVsZW1lbnRDb250YWluZXJCYXNlIGVsZW1lbnRzIHRoZW1zZWx2ZXMgY29udGFpbiBkdXBsaWNhdGUgSXRlbU51bWJlciBzLiBXaWxsIGFsd2F5cyBpbmRpY2F0ZSBmYWxzZSB3aGVuIHRvbGQgdG8gaWdub3JlIGR1cGxpY2F0ZSBpdGVtIG51bWJlcnMuICovXG4gICAgcmVhZG9ubHkgY29udGFpbnNEdXBsaWNhdGVJdGVtTnVtYmVycz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGVyZSBhcmUgY2hpbGQgSUVsZW1lbnRzIHRoYXQgaGF2ZSBjb25mbGljdGluZywgZHVwbGljYXRlZCBJZHMgb3IgaWYgYW55IGNoaWxkIEVsZW1lbnRDb250YWluZXJCYXNlIGVsZW1lbnRzIHRoZW1zZWx2ZXMgY29udGFpbiBkdXBsaWNhdGUgSWQgcy4gV2lsbCBhbHdheXMgaW5kaWNhdGUgZmFsc2Ugd2hlbiB0b2xkIHRvIGlnbm9yZSBkdXBsaWNhdGUgaXRlbSBudW1iZXJzLiAqL1xuICAgIHJlYWRvbmx5IGNvbnRhaW5zRHVwbGljYXRlRWxlbWVudElkcz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluZGljYXRlIGlmIGR1cGxpY2F0ZWQgSXRlbU51bWJlcnMgd2l0aGluIGNoaWxkIGVsZW1lbnRzIGFyZSB0byBiZSBpZ25vcmVkLiBXaWxsIG5vdCBwZXJmb3JtIGNoZWNrcyBmb3IgZHVwbGljYXRlcyBpZiB5ZXMuICovXG4gICAgaWdub3JlRHVwbGljYXRlSXRlbU51bWJlcnM/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJZiB0aGlzIGlzIHNldCB0byB0cnVlLCB0aGUgUHJvamVjdENhdGFsb2d1ZXMgcHJvcGVydHkgd2lsbCBub3QgYmUgcHJvcGFnYXRlZCB0byBjaGlsZCBlbGVtZW50cy4gVGhpcyBpcyB1c2VmdWwgaW4gbWFwcGluZyBzY2VuYXJpb3MsIHdoZXJlIHlvdSB3YW50IHRvIGRpc2FibGUgcHJvcGFnYXRpb24gZm9yIG11bHRpcGxlIGNoYW5nZXMsIGFuZCBvbmx5IGVuYWJsZSBpdCBvbmNlIHlvdSBoYXZlIG1hcHBlZCBhbGwgcHJvcGVydGllcyAqL1xuICAgIGlnbm9yZVByb2plY3RDYXRhbG9ndWVQcm9wYWdhdGlvbj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluZGljYXRlIGlmIGR1cGxpY2F0ZWQgSWRzIHdpdGhpbiBjaGlsZCBlbGVtZW50cyBhcmUgdG8gYmUgaWdub3JlZC4gV2lsbCBub3QgcGVyZm9ybSBjaGVja3MgZm9yIGR1cGxpY2F0ZXMgaWYgeWVzLiAqL1xuICAgIGlnbm9yZUR1cGxpY2F0ZUVsZW1lbnRJZHM/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBQcmljZSBjb21wb3NpdGlvbiBieSB0YXggcmF0ZS4gKi9cbiAgICB0b3RhbFByaWNlR3Jvc3NCeVRheFJhdGU/OiBHcm9zc1ByaWNlQ29tcG9uZW50RHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIEludGVybmFsbHkgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IGEgcHJvcGFnYXRpb24gaXMgY3VycmVudGx5IGRvbmUsIHRoaXMgaXMgZG9uZSB0byBub3QgcmVjYWxjdWxhdGUgZXZlcnkgc2luZ2xlIHJlc3VsdCBmcm9tIGEgbG90IG9mIGNoYW5nZXMgd2hlbiBpdCBpcyBzdWZmaWNpZW50IHRvIGNhbGN1bGF0ZSB0aGUgdG90YWwgcHJpY2UgYXQgb25jZS4gKi9cbiAgICBpZ25vcmVDaGlsZFByaWNlVXBkYXRlcz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIE5ldCBwcmljZSBhZnRlciBhcHBsaWVkIGRlZHVjdGlvbnMuICovXG4gICAgcmVhZG9ubHkgZGVkdWN0ZWRQcmljZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogRmFjdG9yIG9mIGFwcGxpZWQgZGVkdWN0aW9ucyB0byB0aGUgdG90YWwgcHJpY2UuIEZvciBleGFtcGxlLCBcIjAuMDNcIiBtZWFucyB0aGF0IGEgMyUgZGVkdWN0aW9uIGlzIHRvIGJlIGFwcGxpZWQuICovXG4gICAgZGVkdWN0aW9uRmFjdG9yPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgZXhhY3QgYW1vdW50IG9mIHRoZSBkaXNjb3VudCBhcyBhbiBhYnNvbHV0ZSB2YWx1ZS4gRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHJlYXNvbnMsIHNldHRpbmcgdGhpcyB2YWx1ZSB3aWxsIGFsc28gc2V0IGEgY2FsY3VsYXRlZCB2YWx1ZSB0byBEZWR1Y3Rpb25GYWN0b3IsIHdoaWNoIHdpbGwgYWxzbyBiZSB1cGRhdGVkIGluIGNhc2UgdGhlIHRvdGFsIHByaWNlIGlzIGNoYW5nZWQgdG8gcmVmbGVjdCBhIHJlbGF0aXZlIHZhbHVlIG9mIHRoZSBhYnNvbHV0ZSBkaXNjb3VudCBzdW0uICovXG4gICAgYWJzb2x1dGVEZWR1Y3Rpb24/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFdpbGwgcmV0dXJuIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UncyB0b3RhbCBwcmljZS4gKi9cbiAgICByZWFkb25seSB0b3RhbFByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdG90YWwgZ3Jvc3MgcHJpY2UgZm9yIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UgaW5jbHVkaW5nIGFsbCBjaGlsZCBlbGVtZW50cy4gKi9cbiAgICByZWFkb25seSB0b3RhbFByaWNlR3Jvc3M/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRvdGFsIGdyb3NzIHByaWNlIGFmdGVyIGFwcGxpZWQgZGVkdWN0aW9ucy4gKi9cbiAgICByZWFkb25seSB0b3RhbFByaWNlR3Jvc3NEZWR1Y3RlZD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIHRoZSBQcmljZVR5cGUgb2YgdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZSwgd2hldGhlciBpdCBzaG91bGQgZmFjdG9yIGludG8gdG90YWwgY29zdHMgb3Igbm90LiAqL1xuICAgIHByaWNlVHlwZT86IFByaWNlVHlwZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5mb3JtYXRpb24gYWJvdXQgdGhlIGJpZGRlci4gKi9cbiAgICBiaWRkZXI/OiBQYXJ0eUluZm9ybWF0aW9uRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGRpc2NyaW1pbmF0b3IgaXMgdXNlZCB0byBpZGVudGlmeSBkaWZmZXJlbnQgYmlkZGVycyBpbiBhIHByb2plY3QuIEl0IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBJZGVudGlmaWVyIHByb3BlcnR5IGluIHRoZSBCaWRkZXIgaW4gdGhhdCB0aGUgQmlkZGVyRGlzY3JpbWluYXRvciBpcyBpbnRlbmRlZCB0byBiZSBhIG51bWVyaWNhbCBpZGVudGlmaWVyIHdpdGhpbiBhIHByb2plY3QsIHdoaWxlIHRoZSBJZGVudGlmaWVyIGRvZXMgdW5pcXVlbHkgaWRlbnRpZnkgYSBiaWRkZXIgaW4gdGhlIHN5c3RlbSBpbmRlcGVuZGVudCBvZiBhIHNwZWNpZmljIHByb2plY3QuIFRoaXMgcHJvcGVydHkgc2hvdWxkIG1hcCB0byBcIkJpZXRlcm51bW1lclwiIG9yIFwiQmlkZGVyTm9cIiBpbiBHQUVCLiAqL1xuICAgIGJpZGRlckRpc2NyaW1pbmF0b3I/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgdXNlZCB0byBzdG9yZSB0aGUgR0FFQiBYTUwgSWQgd2l0aGluIHRoaXMgU2VydmljZVNwZWNpZmljYXRpb24uIFRoaXMgZGF0YSBpcyBub3QgdXNlZCBmb3IgYW55IGNhbGN1bGF0aW9ucyBvciBldmFsdWF0aW9ucyBidXQgb25seSBmb3IgR0FFQiBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24uICovXG4gICAgZ2FlYlhtbElkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgUHJvamVjdEluZm9ybWF0aW9uIHVzZWQgd2l0aGluIHRoZSBQcm9qZWN0IGluIHdoaWNoIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UgaXMgY29udGFpbmVkLiBUaGlzIGlzIHJlZmVyZW5jZSBlcXVhbCB0byB0aGUgUHJvamVjdEluZm9ybWF0aW9uIHVzZWQgaW4gdGhlIHBhcmVudCBwcm9qZWN0LiAqL1xuICAgIHJlYWRvbmx5IHByb2plY3RJbmZvcm1hdGlvbj86IFByb2plY3RJbmZvcm1hdGlvbkR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBzZXJ2aWNlIHNwZWNpZmljYXRpb25zIGV4Y2hhbmdlIHBoYXNlLCBpLmUuIHRoZSBjdXJyZW50IHN0YXR1cyBpbiB0aGUgcHJvamVjdCBpdCBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIChzdWNoIGFzIHJlcXVlc3QgZm9yIG9mZmVyLCBvZmZlciwgYXdhcmRpbmcuLi4pLiAqL1xuICAgIGV4Y2hhbmdlUGhhc2U/OiBFeGNoYW5nZVBoYXNlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGluZGljYXRlcyB3aGVyZSB0aGUgc2VydmljZSBzcGVjaWZpY2F0aW9uIG9yaWdpbmF0ZXMsIGkuZS4gZnJvbSBhbiBleGNoYW5nZSBmaWxlIGZvcm1hdCBvciBzZWxmIGNyZWF0ZWQuIElmIGFwcGxpY2FibGUsIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gaXMgcHJlc2VudCBpbiB0aGUgT3JpZ2luRGV0YWlsIHByb3BlcnR5LiAqL1xuICAgIG9yaWdpbj86IE9yaWdpbkR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBjb21wbGVtZW50cyB0aGUgT3JpZ2luIHByb3BlcnR5LiBTb21lIGZvcm1hdHMsIGUuZy4gR2FlYlhtbCBtaWdodCBoYXZlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYXR0YWNoZWQsIGUuZy4gR0FFQiBYTUwgVjMuMiBvZGVyIEdBRUIgWE1MIFYzLjEuIFRoaXMgc3RyaW5nIHByb3BlcnR5IGlzIHVzZWQgdG8gaG9sZCBzdWNoIGRhdGEuIFRoZSBEYW5nbC5BVkEgbW9kdWxlIGRvZXMgbm90IGhhdmUgYSBsaXN0IG9mIHBvc3NpYmxlIHZhbHVlcywgc2luY2UgdGhpcyBpcyBkZWZpbmVkIGluIHRoZSBuYXRpdmUgZm9ybWF0IGFzc2VtYmxpZXMsIGUuZy4gRGFuZ2wuR0FFQiBvciBEYW5nbC5PZW5vcm0uICovXG4gICAgb3JpZ2luRGV0YWlsPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBDcmVhdGlvbiBkYXRlIG9mIHRoaXMgU2VydmljZVNwZWNpZmljYXRpb24uICovXG4gICAgY3JlYXRpb25EYXRlPzogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgICAvKiogRGF0ZSBpbmRpY2F0aW5nIHVudGlsIHdoZW4gYW4gb2ZmZXIgaGFzIHRvIGJlIHN1Ym1pdHRlZC4gSW4gR2VybWFuLCB0aGlzIGlzIG9mdGVuIGNhbGxlZCB0aGUgXCJFcsO2ZmZudW5nc3Rlcm1pblwiICovXG4gICAgb2ZmZXJCeURhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBEYXRlIGluZGljYXRpbmcgYnkgd2hlbiB0aGUgYnV5ZXIgd2lsbCBzZWxlY3QgYSBjb250cmFjdG9yLiAqL1xuICAgIGRlY2lzaW9uRGF0ZT86IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIERhdGUgb2Ygd2hlbiB0aGUgb2ZmZXIgLyBiaWQgd2FzIGNyZWF0ZWQgKi9cbiAgICBiaWREYXRlPzogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgICAvKiogSWYgYSBjb25zdHJ1Y3Rpb24gcHJvamVjdCByZXF1aXJlcyBhIHdhcnJhbnR5IGJvbmQsIHRoaXMgcHJvcGVydHkgaW5kaWNhdGVzIHRoZSBhbW91bnQgYXMgYSBwZXJjZW50YWdlLCBlLmcuICcwLjE1bScgbWVhbnMgMTUlIG9mIHRoZSBjb25zdHJ1Y3Rpb24gdG90YWwgYW1vdW50IGFzIGEgd2FycmFudHkgYm9uZC4gKi9cbiAgICB3YXJyYW50eUJvbmRQZXJjZW50YWdlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJZiBhIGNvbnN0cnVjdGlvbiBwcm9qZWN0IHJlcXVpcmVzIGFuIGV4ZWN1dGlvbiBndWFyYW50dHksIHRoaXMgcHJvcGVydHkgaW5kaWNhdGVzIHRoZSBhbW91bnQgYXMgYSBwZXJjZW50YWdlLCBlLmcuICcwLjE1bScgbWVhbnMgMTUlIG9mIHRoZSBjb25zdHJ1Y3Rpb24gdG90YWwgYW1vdW50IGFzIGFuIGV4ZWN1dGlvbiBndWFyYW50ZWUuIEluIHByYWN0aWNlLCB0aGlzIHBlcmNlbnRhZ2UgaXMgdXN1YWxseSBkZWR1Y3RlZCBmcm9tIGludGVybWVkaWF0ZSBpbnZvaWNlcyBhbmQgb25seSBiaWxsZWQgaW4gdGhlIGZpbmFsIGludm9pY2UuICovXG4gICAgZXhlY3V0aW9uR3VhcmFudGVlUGVyY2VudGFnZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogU3RyaW5nIGluZGljYXRpbmcgd2hlcmUgdGhlIHBoeXNpY2FsIHN1Ym1pc3Npb24gb2YgdGhlIG9mZmVyIGlzIHRha2luZyBwbGFjZS4gKi9cbiAgICBzdWJtaXNzaW9uTG9jYXRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIERlc2NyaXB0aW9uIG9mIHRoaXMgU2VydmljZVNwZWNpZmljYXRpb24uICovXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoaXMgU2VydmljZVNwZWNpZmljYXRpb24uICovXG4gICAgbmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBQcmljZUluZm9ybWF0aW9uIGNvbnRhaW5zIGdsb2JhbCBkYXRhIGZvciB0aGUgU2VydmljZVNwZWNpZmljYXRpb24uIFdoZW4gaW5zaWRlIGEgUHJvamVjdCwgZG8gbm90IHNldCB0aGlzIHByb3BlcnR5IG1hbnVhbGx5LiAqL1xuICAgIHByaWNlSW5mb3JtYXRpb24/OiBQcmljZUluZm9ybWF0aW9uRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGVzZSBhcmUgQ2F0YWxvZ3VlIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UuIENhdGFsb2d1ZSByZWZlcmVuY2VzIGFyZSB1c2VkIHRvIGRlc2NyaWJlIGNhdGFsb2d1ZXMsIG9yIGNvbGxlY3Rpb25zLCB0aGF0IGNhbiBiZSB1c2VkIHRvIGRlc2NyaWJlIGVsZW1lbnRzIHdpdGggY29tbW9ubHkga25vd24gcHJvcGVydGllcy4gRm9yIGV4YW1wbGUsIFF1YW50aXR5QXNzaWdubWVudHMgdXNlIHRoZXNlIHRvIGNhdGVnb3JpemUgdGhlbXNlbHZlcy4gKi9cbiAgICBwcm9qZWN0Q2F0YWxvZ3Vlcz86IENhdGFsb2d1ZUR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBSZWZlcmVuY2VkIGNhdGFsb2d1ZXMgZm9yIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UuICovXG4gICAgY2F0YWxvZ3VlUmVmZXJlbmNlcz86IENhdGFsb2d1ZVJlZmVyZW5jZUR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgZGF0ZSB3aGVuIHRoZSBleGVjdXRpb24gb2YgdGhlIHNlcnZpY2VzIGlzIHNjaGVkdWxlZCB0byBzdGFydCAqL1xuICAgIHBsYW5uZWRFeGVjdXRpb25TdGFydD86IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBkYXRlIHRoZW4gdGhlIGV4ZWN1dGlvbiBvZiB0aGUgc2VydmljZXMgaXMgc2NoZWR1bGVkIHRvIGJlIGZpbmlzaGVkICovXG4gICAgcGxhbm5lZEV4ZWN1dGlvbkVuZD86IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBkYXRlIG9uIHdoaWNoIHRoZSBjb250cmFjdCBoYXMgYmVlbiBhd2FyZGVkLiBUaGlzIG1hdGNoZXMgXCJBdWZ0cmFnc2RhdHVtXCIgaW4gR0FFQiAqL1xuICAgIGNvbnRyYWN0RGF0ZT86IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgdmFsdWUgY2FuIGJlIHVzZWQgdG8gaW5kaWNhdGUgdGhlIG51bWJlciBvciBpZGVudGlmaWVyIG9mIHRoZSBjb250cmFjdC4gSXQgbWF0Y2hlcyBcIkF1ZnRyYWdzbnVtbWVyXCIgaW4gR0FFQiAqL1xuICAgIGNvbnRyYWN0SWRlbnRpZmllcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgaG93IGxvbmcgdGhlIHdhcnJhbnR5IHBlcmlvZCBpcyBmb3IgdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbiAqL1xuICAgIHdhcnJhbnR5RHVyYXRpb24/OiBXYXJyYW50eUR1cmF0aW9uRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgZGF0ZSBvbiB3aGljaCB0aGUgd2FycmFudHkgcGVyaW9kIGVuZHMgKi9cbiAgICB3YXJyYW50eUVuZD86IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBkYXRlIG9uIHdoaWNoIHRoZSBzZXJ2aWNlcyByZW5kZXJlZCBieSB0aGUgYmlkZGVyIGFyZSBzY2hlZHVsZWQgdG8gYmUgYXBwcm92ZWQgYnkgdGhlIGJ1eWVyICovXG4gICAgYXBwcm92YWxEYXRlPzogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBzaG91bGQgc3BlY2lmeSBob3cgdGhlIGFwcHJvdmFsIGlzIHBlcmZvcm1lZCBieSB0aGUgYnV5ZXIuIFRoaXMgbWF0Y2hlcyBcIkFjY2VwdFR5cGVcIiBpbiBHQUVCICovXG4gICAgdHlwZU9mQXBwcm92YWw/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgb3B0aW9uYWwgc3RyaW5nIHByb3BlcnR5IGlzIHNoYXJlZCBieSBhbGwgSUVsZW1lbnRzLCBhbmQgaW5kaWNhdGVzIGlmIHRoZSBlbGVtZW50IGlzIHBhcnQgb2YgYW4gYWRkZW5kdW0sIGEgJ05hY2h0cmFnJyBpbiBHZXJtYW4uICovXG4gICAgYWRkZW5kdW1OdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzLCBpZiB0aGlzIGVsZW1lbnQgaXMgcGFydCBvZiBhbiBhZGRlbmR1bSBhbiwgaWYgeWVzLCB3aXRoIHdoYXQgc3RhdHVzLiAqL1xuICAgIGFkZGVuZHVtU3RhdHVzPzogQWRkZW5kdW1TdGF0dXNEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgcHJvcGVydHkgaG9sZHMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB0aGF0J3Mgb25seSB2YWxpZCBpbiBjb21tZXJjZSBleGNoYW5nZSBwaGFzZXMuICovXG4gICAgY29tbWVyY2VQcm9wZXJ0aWVzPzogU2VydmljZVNwZWNpZmljYXRpb25Db21tZXJjZVByb3BlcnRpZXNEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgaW50ZXJuYWxseSB1c2VkIGR1cmluZyBtYXBwaW5nIG9wZXJhdGlvbnMgdG8gdGVtcG9yYXJpbHkgaG9sZCBpbmZvcm1hdGlvbiBhYm91dCByZW1vdmVkIEl0ZW1OdW1iZXJTY2hlbWFzLiBUaG9zZSBzY2hlbWFzIGFyZSBzZXQgdG8gbnVsbCBkdXJpbmcgdGhlIG1hcHBpbmcgcHJvY2VzcyB0byBlbnN1cmUgdGhhdCBzY2hlbWFzIGluIGVsZW1lbnRzIGhpZ2hlciB1cCBpbiB0aGUgaGllcmFyY2h5IGFyZSBjb3JyZWN0bHkgcGFzc2VkIGRvd24gdG8gY2hpbGQgZWxlbWVudHMuICovXG4gICAgaXRlbU51bWJlclNjaGVtYU1hcHBpbmdPcGVyYXRpb24/OiBJdGVtTnVtYmVyU2NoZW1hTWFwcGluZ09wZXJhdGlvbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBpbnRlcm5hbGx5IHVzZWQgZHVyaW5nIG1hcHBpbmcgb3BlcmF0aW9ucyB0byB0ZW1wb3JhcmlseSBob2xkIGluZm9ybWF0aW9uIGFib3V0IGNvbXBsZW1lbnRpbmcgcG9zaXRpb25zICovXG4gICAgY29tcGxlbWVudGluZ1Bvc2l0aW9uRGF0YT86IENvbXBsZW1lbnRpbmdQb3NpdGlvbkRhdGEgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBCYXNlIGludGVyZmFjZSBkZWZpbml0aW9uIGZvciBlbGVtZW50cyB3aXRoaW4gYW4gRWxlbWVudENvbnRhaW5lckJhc2UuICovXG5leHBvcnQgaW50ZXJmYWNlIElFbGVtZW50RHRvIHtcbiAgICBlbGVtZW50VHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqIFRoaXMgaXMgdXNlZCB0byBzdG9yZSB0aGUgR0FFQiBYTUwgSWQgd2l0aGluIHRoaXMgSUVsZW1lbnQuIFRoaXMgZGF0YSBpcyBub3QgdXNlZCBmb3IgYW55IGNhbGN1bGF0aW9ucyBvciBldmFsdWF0aW9ucyBidXQgb25seSBmb3IgR0FFQiBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24uICovXG4gICAgZ2FlYlhtbElkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIG9wdGlvbmFsIHN0cmluZyBwcm9wZXJ0eSBpcyBzaGFyZWQgYnkgYWxsIElFbGVtZW50cywgYW5kIGluZGljYXRlcyBpZiB0aGUgZWxlbWVudCBpcyBwYXJ0IG9mIGFuIGFkZGVuZHVtLCBhICdOYWNodHJhZycgaW4gR2VybWFuLiAqL1xuICAgIGFkZGVuZHVtTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHByb2plY3RDYXRhbG9ndWVzPzogQ2F0YWxvZ3VlRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgY2F0YWxvZ3VlUmVmZXJlbmNlcz86IENhdGFsb2d1ZVJlZmVyZW5jZUR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIGVsZW1lbnRUeXBlRGlzY3JpbWluYXRvcjogc3RyaW5nO1xufVxuXG4vKiogVGhpcyBjbGFzcyBkZXNjcmliZXMgYW4gZXh0ZXJuYWwgY2F0YWxvZ3VlLiBDYXRhbG9ndWVzLCBvciBjb2xsZWN0aW9ucywgaG9sZCBpbmZvcm1hdGlvbiB0byBjYXRlZ29yaXplIGFuZCBkZXNjcmliZSBpdGVtcy4gRm9yIGV4YW1wbGUsIHRoZSBHZXJtYW4gRElOIDI3NiBjb3N0IGdyb3VwIHN0YW5kYXJkcyBkZXNjcmliZSBkaWZmZXJlbnQgdHlwZXMgb2YgY29zdHMgZm9yIGJ1aWxkaW5nIHByb2plY3RzLiBXaGVuIHJlZmVyZW5jaW5nIHRoZSBESU4gMjc2IGNhdGFsb2d1ZSBhbmQgcHJvdmlkaW5nIGFuIGl0ZW0ga2V5IG9yIGlkZW50aWZpZXIsIGl0IGlzIHBvc3NpYmxlIHRvIHJlZmVyZW5jZSBkYXRhIGluIHRoaXMgY2F0YWxvZ3VlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXRhbG9ndWVEdG8ge1xuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogVGhpcyBpcyB1c2VkIHRvIHN0b3JlIHRoZSBHQUVCIFhNTCBJZCB3aXRoaW4gdGhpcyBDYXRhbG9ndWUuIFRoaXMgZGF0YSBpcyBub3QgdXNlZCBmb3IgYW55IGNhbGN1bGF0aW9ucyBvciBldmFsdWF0aW9ucyBidXQgb25seSBmb3IgR0FFQiBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24uICovXG4gICAgZ2FlYlhtbElkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgbmFtZSB0aGF0IGlzIGdpdmVuIGZvciB0aGlzIGNhdGFsb2d1ZS4gKi9cbiAgICBuYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgY2F0YWxvZ3VlLiAqL1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJZiBnaXZlbiwgdGhpcyBnaXZlcyBhIGNsYXNzaWZpY2F0aW9uIGZvciB0aGUgY29udGVudHMgb2YgdGhlIGNhdGFsb2d1ZSAqL1xuICAgIGNhdGFsb2d1ZVR5cGU/OiBDYXRhbG9ndWVUeXBlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHByb3BlcnR5IG1heSBob2xkIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNhdGFsb2d1ZSB0eXBlLiBJdCBpcyBjdXJyZW50bHkgb25seSB1c2VkIGluIEdBRUIgWE1MIGV4Y2hhbmdlIHRvIGNhcnJ5IGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IGEgY2F0YWxvZ3VlIHR5cGUsIGJ1dCBpdCdzIG90aGVyd2lzZSBqdXN0IGEgZnJlZSB0ZXh0IGZpZWxkLiAqL1xuICAgIGNhdGFsb2d1ZVR5cGVEZXRhaWw/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGVudW1lcmF0aW9uIGRlc2NyaWJlcyB0aGUgdHlwZSBvZiBhIGNhdGFsb2d1ZS4gQ2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIGhvbGQgaW5mb3JtYXRpb24gdG8gY2F0ZWdvcml6ZSBhbmQgZGVzY3JpYmUgaXRlbXMuIEZvciBleGFtcGxlLCB0aGUgR2VybWFuIERJTiAyNzYgY29zdCBncm91cCBzdGFuZGFyZHMgZGVzY3JpYmUgZGlmZmVyZW50IHR5cGVzIG9mIGNvc3RzIGZvciBidWlsZGluZyBwcm9qZWN0cy4gV2hlbiByZWZlcmVuY2luZyB0aGUgRElOIDI3NiBjYXRhbG9ndWUgYW5kIHByb3ZpZGluZyBhbiBpdGVtIGtleSBvciBpZGVudGlmaWVyLCBpdCBpcyBwb3NzaWJsZSB0byByZWZlcmVuY2UgZGF0YSBpbiB0aGlzIGNhdGFsb2d1ZS4gKi9cbmV4cG9ydCBlbnVtIENhdGFsb2d1ZVR5cGVEdG8ge1xuICAgIFVua25vd24gPSBcIlVua25vd25cIixcbiAgICBMb2NhdGlvbiA9IFwiTG9jYXRpb25cIixcbiAgICBESU4yNzYgPSBcIkRJTjI3NlwiLFxuICAgIENvc3RVbml0ID0gXCJDb3N0VW5pdFwiLFxuICAgIFdvcmtDYXRlZ29yeSA9IFwiV29ya0NhdGVnb3J5XCIsXG4gICAgT2Vub3JtQjE4MDFDb3N0R3JvdXAgPSBcIk9lbm9ybUIxODAxQ29zdEdyb3VwXCIsXG4gICAgQklNID0gXCJCSU1cIixcbiAgICBBdHRhY2htZW50ID0gXCJBdHRhY2htZW50XCIsXG59XG5cbi8qKiBUaGlzIGNsYXNzIGlzIHVzZWQgdG8gbGluayBkYXRhIGJldHdlZW4gY2F0YWxvZ3VlcyBhbmQgb2JqZWN0cy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2F0YWxvZ3VlUmVmZXJlbmNlRHRvIHtcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqIFRoaXMgcG9pbnRzIHRvIHRoZSBpdGVtIGluIHRoZSBjYXRhbG9ndWUgaXRzZWxmLiBUaGlzIG1lYW5zIHRoYXQsIGZvciBleGFtcGxlIHdoZW4gdGhpcyBxdWFudGl0eSBhc3NpZ25tZW50IHJlZmVyZW5jZXMgYSBcIkRJTiAyNzZcIiBjYXRhbG9ndWUsIHRoaXMgcHJvcGVydHkgaW5kaWNhdGVzIHRoZSBudW1iZXIgLyBpZGVudGlmaWVyIC8ga2V5IGluIERJTiAyNzYgdGhhdCBpcyByZWZlcmVuY2VkLiAqL1xuICAgIGNhdGFsb2d1ZVJlZmVyZW5jZUtleT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIElkIG9mIHRoZSBDYXRhbG9ndWVSZWZlcmVuY2UgdGhhdCBpcyB0YXJnZXRlZCBieSB0aGlzIGl0ZW0uIFNldCB0aGlzIHByb3BlcnR5IHRvIHNldCB0aGUgcmVmZXJlbmNlZCBjYXRhbG9ndWUuICovXG4gICAgY2F0YWxvZ3VlUmVmZXJlbmNlSWQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWVSZWZlcmVuY2UgdGhhdCBhcmUgdXNlZCB3aXRoaW4gdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gQ2F0YWxvZ3VlIHJlZmVyZW5jZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiAqL1xuICAgIHByb2plY3RDYXRhbG9ndWVzPzogQ2F0YWxvZ3VlRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgcmV0dXJucyB0aGUgcmVmZXJlbmNlZCBjYXRhbG9ndWUuIFdpbGwgcmV0dXJuIG51bGwgaWYgdGhlcmUgaXMgbm8gcmVmZXJlbmNlIG9yIHRoZSBjYXRhbG9ndWUgaXMgbm90IHByZXNlbnQgaW4gdGhlIFByb2plY3RDYXRhbG9ndWVzLiAqL1xuICAgIHJlYWRvbmx5IGNhdGFsb2d1ZT86IENhdGFsb2d1ZUR0byB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIEEgUG9zaXRpb24gaXMgdGhlIG1haW4gaXRlbSB0eXBlIGluIGEgU2VydmljZVNwZWNpZmljYXRpb24sIGhvbGRpbmcgaW5mb3JtYXRpb24gYWJvdXQgdGFza3MgdG8gYmUgZG9uZSwgdGhlaXIgcHJpY2VzLCBkZXNjcmlwdGlvbiwgYW1vdW50cyBldGMuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvc2l0aW9uRHRvIGV4dGVuZHMgSUVsZW1lbnREdG8ge1xuICAgIC8qKiBXaWxsIHJldHVybiB0aGUgcHJpY2UgcGVyIHVuaXQsIHJvdW5kZWQgYWNjb3JkaW5nIHRvIHRoZSBwcm9qZWN0IHNldHRpbmdzIG9yIHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRocmVlIGRlY2ltYWwgcGxhY2VzICovXG4gICAgcmVhZG9ubHkgdW5pdFByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBZb3UgY2FuIHVzZSB0aGlzIHByb3BlcnR5IHRvIGRpcmVjdGx5IHNldCB0aGUgdW5pdCBwcmljZSBmb3IgdGhpcyBwb3NpdGlvbi4gVGhpcyB3aWxsIG92ZXJyaWRlIGFueSBnaXZlbiBQcmljZUNvbXBvbmVudHMgKi9cbiAgICB1bml0UHJpY2VPdmVycmlkZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogV2lsbCByZXR1cm4gdGhpcyBQb3NpdGlvbidzIHRvdGFsIHF1YW50aXR5LCByb3VuZGVkIHRvIHRocmVlIGRlY2ltYWwgcGxhY2VzLiAqL1xuICAgIHJlYWRvbmx5IHF1YW50aXR5PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBZb3UgY2FuIHVzZSB0aGlzIHByb3BlcnR5IHRvIGRpcmVjdGx5IHNldCB0aGUgcXVhbnRpdHkgZm9yIHRoaXMgcG9zaXRpb24uIFRoaXMgd2lsbCBvdmVycmlkZSBhbnkgZ2l2ZW4gUXVhbnRpdHlDb21wb25lbnRzICovXG4gICAgcXVhbnRpdHlPdmVycmlkZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgdHJ1ZSBpZiB0aGlzIHNwZWNpZmljIHBvc2l0aW9uIGlzIHNwZWNpZmllZCBhcyBhIGNvbXBsZW1lbnRpbmcgcG9zaXRpb24gZm9yIGFueSBiYXNlIHBvc2l0aW9uLiAqL1xuICAgIGlzQ29tcGxlbWVudGluZ1Bvc2l0aW9uPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSWYgSXNDb21wbGVtZW50aW5nUG9zaXRpb24gaXMgc2V0IHRvIHRydWUsIHRoaXMgd2lsbCBpbmRpY2F0ZSB3aGljaCBiYXNlIHBvc2l0aW9ucyBhcmUgdGFyZ2V0ZWQgYnkgdGhpcyBjb21wbGVtZW50aW5nIHBvc2l0aW9uLiAqL1xuICAgIGNvbXBsZW1lbnRzUG9zaXRpb25zPzogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFlvdSBjYW4gdXNlIHRoaXMgcHJvcGVydHkgdG8gZGlyZWN0bHkgc3BlY2lmeSB0aGUgdG90YWwgcHJpY2Ugb2YgdGhpcyBwb3NpdGlvbiBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIHN1bSBvZiB0aGUgdG90YWwgcHJpY2VzIG9mIGJhc2UgcG9zaXRpb25zIHRoYXQgdGhpcyBwb3NpdGlvbiBjb21wbGVtZW50cy4gSXQgd2lsbCBlc3NlbnRpYWxseSBzZXQgdGhlIHRvdGFsIHByaWNlIGZvciB0aGlzIHBvc2l0aW9uIHRvIHRoZSBzdW0gb2YgYWxsIHRvdGFsIHByaWNlcyBvZiB0aGUgcG9zaXRpb25zIHNwZWNpZmllZCBpbiBDb21wbGVtZW50c1Bvc2l0aW9ucyBtdWx0aXBsaWVkIGJ5IHRoZSBwZXJjZW50YWdlIGhlcmUuIElmIHByZXNlbnQsIHRoaXMgaGFzIHByZWNlZGVuY2Ugb3ZlciBVbml0UHJpY2VPdmVycmlkZSBhcyB3ZWxsIGFzIFF1YW50aXR5T3ZlcnJpZGUuICovXG4gICAgY29tcGxlbWVudGluZ1ByaWNlUGVyY2VudGFnZU92ZXJyaWRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGEgcmVhZCBvbmx5IHByb3BlcnR5IHNob3dpbmcgdGhlIHRvdGFsIHByaWNlIG9mIHRoaXMgcG9zaXRpb25zIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgc3VtIG9mIHRoZSB0b3RhbCBwcmljZXMgb2YgYWxsIGJhc2UgcG9zaXRpb25zLCBpbiBjYXNlIHRoaXMgcG9zaXRpb24gaXMgYSBjb21wbGVtZW50aW5nIHBvc2l0aW9ucy4gSWYgdGhpcyBwb3NpdGlvbiBpcyBub3QgYSBjb21wbGVtZW50aW5nIHBvc2l0aW9uLCB0aGlzIHdpbGwgYmUgbnVsbC4gQWxzbywgaWYgbm8gcHJpY2VzIGFyZSBwcmVzZW50LCB0aGlzIHdpbGwgYWxzbyBiZSBudWxsLiAqL1xuICAgIGNvbXBsZW1lbnRpbmdQcmljZVBlcmNlbnRhZ2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB0YWcgb2YgdGhlIHVuaXQgdXNlZCBmb3IgdGhpcyBwb3NpdGlvbnMgcXVhbnRpdHkuICovXG4gICAgdW5pdFRhZz86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGNvbXBvbmVudHMgZm9yIGxhYm91ciB0aW1lIGluIHRoaXMgUG9zaXRpb24uICovXG4gICAgbGFib3VyQ29tcG9uZW50cz86IExhYm91clByaWNlQ29tcG9uZW50RHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgc2luZ2xlIHByaWNlIGNvbXBvbmVudHMgaW4gdGhpcyBQb3NpdGlvbi4gUHJpY2UgY29tcG9uZW50cyBzaG91bGQgbm90IGJlIGhhbmRsZWQgZGlyZWN0bHkgb24gYSBwZXItcG9zaXRpb24gYmFzaXMgYnV0IHNldCBnbG9iYWxseSBpbiB0aGUgcGFyZW50IFByb2plY3RzIFByb2plY3RJbmZvcm1hdGlvbi4gKi9cbiAgICBwcmljZUNvbXBvbmVudHM/OiBQcmljZUNvbXBvbmVudER0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgcXVhbnRpdHkgY29tcG9uZW50cyBvZiB0aGlzIFBvc2l0aW9uLiAqL1xuICAgIHF1YW50aXR5Q29tcG9uZW50cz86IENhbGN1bGF0aW9uRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIEZ1cnRoZXIgc3RydWN0dXJpbmcgb2YgdGhpcyBQb3NpdGlvbi4gKi9cbiAgICBzdWJEZXNjcmlwdGlvbnM/OiBTdWJEZXNjcmlwdGlvbkR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgdGhlIHN0YXR1cyBvZiB0aGlzIFBvc2l0aW9uJ3MgY29taXNzaW9uLiAqL1xuICAgIGNvbWlzc2lvblN0YXR1cz86IENvbWlzc2lvblN0YXR1c0R0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogQSBsaXN0IG9mIHBvc2l0aW9ucyB0aGF0IGNvbXBsZW1lbnQgdGhpcyBQb3NpdGlvbi4gVGhlIHBvc2l0aW9ucyBhcmUgcmVmZXJlbmNlZCBieSB0aGVpciBHVUlEcy4gSXQgbWlnaHQgYmUgdXNlZCB0b2dldGhlciB3aXRoIENvbXBsZW1lbnRlZEJ5UXVhbnRpdGllcyBpbiBjYXNlIHRoYXQgb25seSBhIGdpdmVuIHF1YW50aXR5IGlzIGNvbXBsZW1lbnRlZCBieSBwb3NpdGlvbnMuICovXG4gICAgY29tcGxlbWVudGVkQnk/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogV2lsbCBpbmRpY2F0ZSBpZiB0aGlzIFBvc2l0aW9uIGlzIGNvbXBsZW1lbnRlZCBpbiB0aGlzIFNlcnZpY2VTcGVjaWZpY2F0aW9uIGJ5IG90aGVyIFBvc2l0aW9ucy4gSXQgY2FuIG5vdCBiZSBzZXQgdG8gZmFsc2Ugd2hlbiB0aGVyZSBhcmUgZW50cmllcyBpbiB0aGUgQ29tcGxlbWVudGVkQnkgcHJvcGVydHkuICovXG4gICAgY29tcGxlbWVudGVkPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIHRoYXQgdGhlIGFtb3VudCBmb3IgdGhpcyBQb3NpdGlvbiBpcyB0byBiZSBzZXQgYnkgdGhlIGJpZGRlci4gKi9cbiAgICBhbW91bnRUb0JlRW50ZXJlZEJ5QmlkZGVyPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBiaWRkZXIgZGVtYW5kcyBmb3IgcHJpY2VzIHRvIGJlIGJyb2tlbiB1cCBpbnRvIHRoZWlyIHByaWNlIGNvbXBvbmVudHMuICovXG4gICAgcHJpY2VDb21wb3NpdGlvblJlcXVpcmVkPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoaXMgUG9zaXRpb24gc2hvdWxkIHVzZSBhIGRpZmZlcmVudCBUYXhSYXRlIHRoYW4gd2hhdCBpcyB0aGUgZGVmYXVsdCBmb3IgdGhlIFByb2plY3QuICovXG4gICAgdXNlRGlmZmVyZW50VGF4UmF0ZT86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFdpbGwgcmV0dXJuIGVpdGhlciB0aGUgcGFyZW50IFNlcnZpY2VTcGVjaWZpY2F0aW9uJ3MgVGF4UmF0ZSBvciBpdCdzIG93biBpZiBpdCBoYXMgYSBkaWZmZXJlbnQgdmFsdWUuIChGb3IgZXhhbXBsZSwgaW4gR2VybWFueSBXYXRlciBoYXMgYSBkaWZmZXJlbnQgVGF4UmF0ZSB0aGFuIHJlZ3VsYXIgUG9zaXRpb25zKSAqL1xuICAgIHRheFJhdGU/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBJdGVtTnVtYmVyIGZvciB0aGlzIFBvc2l0aW9uLiAqL1xuICAgIGl0ZW1OdW1iZXI/OiBJdGVtTnVtYmVyRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgcmF0ZSBvZiBkZWR1Y3Rpb25zLCBpLmUuIDAuMTJtIG1lYW5zIDEyJSBwcmljZSBkZWR1Y3Rpb24uICovXG4gICAgZGVkdWN0aW9uRmFjdG9yPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBSZXR1cm5zIHRoZSBwcm9kdWN0IG9mIFVuaXRQcmljZSB0aW1lcyBRdWFudGl0eS4gKi9cbiAgICByZWFkb25seSB0b3RhbFByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdG90YWwgZ3Jvc3MgcHJpY2UgZm9yIHRoaXMgUG9zaXRpb24uICovXG4gICAgcmVhZG9ubHkgdG90YWxQcmljZUdyb3NzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUb3RhbCBncm9zcyBwcmljZSBhZnRlciBhcHBsaWVkIGRlZHVjdGlvbnMuICovXG4gICAgcmVhZG9ubHkgdG90YWxQcmljZUdyb3NzRGVkdWN0ZWQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIE5ldCBwcmljZSBhZnRlciBhcHBsaWVkIGRlZHVjdGlvbnMuIFBsZWFzZSBiZSBhd2FyZSB0aGF0IHRoaXMgaXMgdGhlIHRvdGFsIHByaWNlLCBmcm9tIFRvdGFsUHJpY2UsIG5vdCB0aGUgdW5pdCBwcmljZSBvZiB0aGUgcG9zaXRpb24uICovXG4gICAgcmVhZG9ubHkgZGVkdWN0ZWRQcmljZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgdGhlIHR5cGUgb2YgYSBwb3NpdGlvbi4gSWYgdGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSBwb3NpdGlvbiwgaXRzIEFsdGVybmF0aXZlVG8gcHJvcGVydHkgc2hvdWxkIGJlIHNldCB0byB0aGUgaWQgb2YgdGhlIHBvc2l0aW9uIGl0IGNhbiByZXBsYWNlLiAqL1xuICAgIHBvc2l0aW9uVHlwZT86IFBvc2l0aW9uVHlwZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIHRoZSBQcmljZVR5cGUgb2YgdGhpcyBQb3NpdGlvbi4gKi9cbiAgICBwcmljZVR5cGU/OiBQcmljZVR5cGVEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzIGlmIHRoaXMgcG9zaXRpb24gaXMgcmVndWxhciBvciBkZXNjcmliaW5nIGEgbGFib3VyIC8gaG91cmx5IHBhaWQgd29yayBzZXJ2aWNlICovXG4gICAgc2VydmljZVR5cGU/OiBTZXJ2aWNlVHlwZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBkZXNjcmliZXMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCBhIHByb2R1Y3QgYmVpbmcgdXNlZCB3aXRoaW4gdGhpcyBQb3NpdGlvbi4gRm9yIGV4YW1wbGUsIGEgcGlwZSBwb3NpdGlvbiwgcGVyIGxlbmd0aCB1bml0LCBjb3VsZCBiZSBjb21wb3NlZCBvZiBkaWZmZXJlbnQgcGlwZSBzZWdtZW50cywgZml0dGluZyBhbmQgb3RoZXIgYWNjZXNzb3J5IGFydGljbGVzLiAqL1xuICAgIHByb2R1Y3REYXRhPzogUHJvZHVjdERhdGFEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFNob3J0IGRlc2NyaXB0aW9uIGZvciB0aGlzIERlc2NyaXB0aW9uQmFzZSBlbGVtZW50LiAqL1xuICAgIHNob3J0VGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogRGV0YWlsZWQgZGVzY3JpcHRpb24gZm9yIHRoaXMgRGVzY3JpcHRpb25CYXNlIGVsZW1lbnQuIFdoZW4gdGhlIEh0bWxMb25nVGV4dCBpcyBzZXQsIHRoaXMgaXMgYXV0b21hdGljYWxseSBvdmVyd3JpdHRlbiBhbmQgZmlsbGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIHBsYWluIHRleHQgcmVwcmVzZW50YXRpb24gb2YgdGhlIEh0bWwgdGV4dC4gVmljZSB2ZXJzYSwgc2V0dGluZyB0aGlzIHByb3BlcnR5IG92ZXJyaWRlcyB0aGUgSHRtbExvbmdUZXh0LiAqL1xuICAgIGxvbmdUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGNvbnRhaW5zIHRoZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBMb25ndGV4dC4gV2hlbiB0aGUgTG9uZ1RleHQgaXMgc2V0LCB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgb3ZlcndyaXR0ZW4gYW5kIGZpbGxlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwbGFpbnRleHQuIFZpY2UgdmVyc2EsIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgdGhlIExvbmdUZXh0LiBHQUVCIDkwIGFuZCBHQUVCIDIwMDAgZXhwb3J0cyBkbyBub3Qgc3VwcG9ydCBhbnkgaW1hZ2UgZnVuY3Rpb25hbGl0eS4gSW4gR0FFQiBYTUwsIG9ubHkgaW1hZ2VzIHRoYXQgdXNlIGFuIGVtYmVkZGVkIEJhc2U2NCBkYXRhIHVyaSBhcmUgZXhwb3J0ZWQsIHJlZ3VsYXIgdXJsIHJlZmVyZW5jZXMgYXJlIGNsZWFyZWQgYmVmb3JlIHdyaXR0ZW4gb3V0LiAqL1xuICAgIGh0bWxMb25nVGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoaXMgRGVzY3JpcHRpb25CYXNlIGVsZW1lbnQgY29udGFpbnMgQnV5ZXIgb3IgQmlkZGVyIGFkZGl0aW9ucyB0byB0aGUgdGV4dC4gKi9cbiAgICBhZGRpdGlvblR5cGU/OiBBZGRpdGlvblR5cGVEdG8gfCB1bmRlZmluZWQ7XG4gICAgZWxlbWVudFR5cGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFF1YW50aXR5IGFzc2lnbm1lbnRzIGFyZSwgaW4gY29udHJhc3QgdG8gU3ViRGVzY3JpcHRpb25zLCB1c2VkIHRvIGNhdGVnb3JpemUgcGFydHMgb2YgdGhpcyBQb3NpdGlvbi4gRm9yIGV4YW1wbGUsIGl0IGNvdWxkIGJlIGNhdGVnb3JpemVkIGJ5IGNvc3QgZ3JvdXAgLSBlLmcuIGEgUG9zaXRpb24gZGVzY3JpYmluZyBjb25jcmV0ZSB3YWxscyBjb3VsZCBmb2xsb3cgdGhlIEdlcm1hbiBESU4gMjc2IENvc3QgR3JvdXBzIFN0YW5kYXJkIGFuZCBzcGVjaWZ5IHRoYXQgb2YgdGhlIHRvdGFsIDEuMDAwbcKyIHdhbGwsIDUwMG3CsiBhcmUgY2xhc3NpZmllZCBhcyBleHRlcmlvciB3YWxscyBhbmQgNTAwbcKyIGFyZSBjbGFzc2lmaWVkIGFzIGludGVyaW9yIHdhbGxzLiBUaGV5IHdvdWxkIHRoZW4gaGF2ZSBkaWZmZXJlbnQgY29zdCBncm91cHMgYXNzb2NpYXRlZCwgZS5nLiBmb3IgYWNjb3VudGluZyBwdXJwb3Nlcy4gKi9cbiAgICBxdWFudGl0eUFzc2lnbm1lbnRzPzogUXVhbnRpdHlBc3NpZ25tZW50RHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBDb21tZXJjZVByb3BlcnRpZXMgc3VwcG9ydCBzcGVjaWFsaXplZCBpbmZvcm1hdGlvbiB0aGF0IGlzIG9ubHkgdXNlZnVsIGluIEdBRUIgWE1MIDl4IGRhdGEgZXhjaGFuZ2UgcGhhc2VzLiBJdCBpcyBpbnRlbmRlZCB0byBwcm92aWRlIGFydGljbGUgaW5mb3JtYXRpb24uICovXG4gICAgY29tbWVyY2VQcm9wZXJ0aWVzPzogQ29tbWVyY2VQcm9wZXJ0aWVzRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJZiB0aGlzIHBvc2l0aW9uIGlzIGFuIEFsdGVybmF0aXZlLCB0aGVuIHRoaXMgcHJvcGVydHkgc2hvdWxkIHBvaW50IHRvIHRoZSBpZCBvZiB0aGUgcG9zaXRpb24gaW4gdGhpcyBzZXJ2aWNlIHNwZWNpZmljYXRpb24gdGhhdCBpdCBjYW4gcmVwbGFjZS4gSWYgdGhpcyBpcyBzZXQgdG8gYSB2YWx1ZSwgeW91IGNhbiBvcHRpb25hbGx5IGFsc28gc3BlY2lmeSBhbiBpZGVudGlmaWVyIHZpYSBBbHRlcm5hdGl2ZUlkZW50aWZpZXIgdG8gc3BlY2lmaXkgbXVsdGlwbGUgcG9zaXRpb25zIHRoYXQgbXVzdCBiZSB1c2VkIHRvZ2V0aGVyIHRvIGJlIGFuIGFsdGVybmF0aXZlIHRvIGEgc2luZ2xlIGJhc2UgcG9zaXRpb24uICovXG4gICAgYWx0ZXJuYXRpdmVUbz86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhbiBvcHRpb25hbCBwcm9wZXJ0eSB0aGF0IGNhbiBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggQWx0ZXJuYXRpdmVUby4gSWYgdGhpcyBpcyBzZXQsIHlvdSBjYW4gaW5kaWNhdGUgd2hpY2ggYWx0ZXJuYXRpdmUgZ3JvdXAgYSBzcGVjaWZpYyBwb3NpdGlvbiBpcyBhc3NpZ25lZCB0by4gVGhhdCB3YXksIGlmIHlvdSBzcGVjaWZpeSBtdWx0aXBsZSBhbHRlcm5hdGl2ZSBQb3NpdGlvbnMgd2l0aCB0aGUgc2FtZSBBbHRlcm5hdGl2ZUlkZW50aWZpZXIsIHlvdSBjYW4gaW5kaWNhdGUgdGhhdCB0byByZXBsYWNlIGEgc2luZ2xlIGJhc2UgUG9zaXRpb24sIG11bHRpcGxlIGFsdGVybmF0aXZlIFBvc2l0aW9ucyBzaG91bGQgYmUgdXNlZC4gVGhpcyBwcm9wZXJ0eSBpcyBub3QgY2hlY2tlZCBvciBtYW5hZ2VkIGF1dG9tYXRpY2FsbHksIHNvIGl0IGlzIHBvc3NpYmxlIGZvciB0aGlzIHByb3BlcnR5IHRvIGJlY29tZSBpbnZhbGlkLCBieSBmb3IgZXhhbXBsZSBzZXR0aW5nIHRoaXMgcHJvcGVydHkgYnV0IG5vdCBzZXR0aW5nIGEgYmFzZSBwb3NpdGlvbiB2aWEgQWx0ZXJuYXRpdmVUby4gKi9cbiAgICBhbHRlcm5hdGl2ZUlkZW50aWZpZXI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYW4gb3B0aW9uYWwgcHJvcGVydHkgdGhhdCBjYW4gYmUgdXNlZCB0b2dldGhlciB3aXRoIEFsdGVybmF0aXZlVG8gYW5kIEFsdGVybmF0aXZlR3JvdXBJZGVudGlmaWVyLiBJZiB0aGlzIGlzIHNldCwgeW91IGNhbiBpbmRpY2F0ZSB3aGljaCBhbHRlcm5hdGl2ZSBncm91cCBhIHNwZWNpZmljIHBvc2l0aW9uIGlzIGFzc2lnbmVkIHRvLiBUaGF0IHdheSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBpZCAoaW4gaW50ZWdlciBmb3JtYXQpIGZvciB0aGUgYWx0ZXJuYXRpdmUgZ3JvdXAgdGhpcyBwb3NpdGlvbiBiZWxvbmdzIHRvLiBJdCdzIGRpZmZlcmVudCB0byBBbHRlcm5hdGl2ZUlkZW50aWZpZXIgaW4gdGhhdCB0aGUgb3RoZXIgcHJvcGVydHkgZGVzY3JpYmVzIHRoZSBpZCBvZiB0aGUgZ3JvdXAsIHdoaWxlIHRoaXMgcHJvcGVydHkgaGVyZSBkZXNjcmliZXMgdGhlIGdyb3VwIGl0c2VsZi4gSWYgYSBwb3NpdGlvbiBvbmx5IGhhcyBzZXQgQWx0ZXJuYXRpdmVHcm91cElkZW50aWZpZXIgYnV0IG5vdCBBbHRlcm5hdGl2ZUlkZW50aWZpZXIsIHRoZW4gaXQgbGlrZWx5IGlzIGEgYmFzZSBwb3NpdGlvbiBmb3IgYSBzcGVjaWZpYyBncm91cC4gVGhpcyB3YXMgaW50cm9kdWNlZCBpbiB2ZXJzaW9uIHYyLjkuMCB0byBiZSBhYmxlIHRvIG1vZGVsIGJvdGggcG9zaXRpb24gYW5kIGdyb3VwIGlkcyBmb3IgYWx0ZXJuYXRpdmUgZ3JvdXAgY29tYmluYXRpb25zLiBUaGlzIHByb3BlcnR5IGlzIG5vdCBjaGVja2VkIG9yIG1hbmFnZWQgYXV0b21hdGljYWxseSwgc28gaXQgaXMgcG9zc2libGUgZm9yIHRoaXMgcHJvcGVydHkgdG8gYmVjb21lIGludmFsaWQsIGJ5IGZvciBleGFtcGxlIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBidXQgbm90IHNldHRpbmcgYSBiYXNlIHBvc2l0aW9uIHZpYSBBbHRlcm5hdGl2ZVRvLiAqL1xuICAgIGFsdGVybmF0aXZlR3JvdXBJZGVudGlmaWVyPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJZiB0aGlzIGlzIHRydWUsIGl0IGluZGljYXRlcyB0aGF0IHRoZSBwb3NpdGlvbiBpcyBpbnRlbmRlZCB0byBiZSBhIGx1bXAgc3VtLCBcIlBhdXNjaGFsXCIgaW4gR2VybWFuLiBUaGlzIG1lYW5zIHRoZSBwb3NpdGlvbiB0b3RhbCBwcmljZSB0aGF0IGlzIGJlaW5nIGludm9pY2VkIHNob3VsZCBub3QgZGVwZW5kIG9uIHRoZSBhY3R1YWwgcXVhbnRpdHkuIEluIHByYWN0aWNlLCBwYXJ0aWFsIGludm9pY2VzIGFyZSBzdGlsbCBvZnRlbiB1c2VkIGZvciBwYXJ0aWFsIHNlcnZpY2VzIHJlbmRlcmVkLiBUaGlzIHByb3BlcnR5IGRvZXMgbm90IGFmZmVjdCB0aGUgcHJpY2UgY2FsY3VsYXRpb24gZm9yIHRoaXMgcG9zaXRpb24uIFR5cGljYWxseSwgdGhlIFF1YW50aXR5IHNob3VsZCBiZSBzZXQgdG8gMS4wIHdoZW4gdGhpcyBmbGFnIGlzIHVzZWQuICovXG4gICAgaXNMdW1wU3VtPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpZGVudGlmaWVyIGNhbiBiZSB1c2VkIHRvIHBvaW50IHRvIHRoZSBJZCBvZiBhIHBvc2l0aW9uIGluIHRoZSBzYW1lIFNlcnZpY2VTcGVjaWZpY2F0aW9uIHRoYXQgYWN0cyBhcyBhIGJhc2UgcG9zaXRpb24uIEl0IG1hdGNoZXMgXCJCZXp1Z3Nwb3NpdGlvblwiIGluIEdBRUIuIFRoaXMgY2FuIGJlIHVzZWQgZm9yIHBvc2l0aW9ucyB0aGF0IHJlcGVhdCBwYXJ0aWFsbHkgb3IgYXJlIGxpbmtlZCB0b2dldGhlciAqL1xuICAgIHJlcGV0aXRpb25Ubz86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICB2MUNvbXBhdGliaWxpdHlQcmljZVR5cGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgcmVwcmVzZW50cyBhIHN0YW5kYXJkaXplZCBkZXNjcmlwdGlvbi4gVGhpcyBtZWFucyB0aGF0IGluc3RlYWQgb2Ygc29sZWx5IHJlbHlpbmcgb24gdGV4dHMgdG8gZGVzY3JpYmUgYSBzZXJ2aWNlLCBleHRlcm5hbCBzdGFuZGFyZHMgYW5kIGRlZmluaXRpb25zIGFyZSByZWZlcmVuY2VkIGZvciBhIGNvbW1vbiB1bmRlcnN0YW5kaW5nLiAqL1xuICAgIHN0YW5kYXJkaXplZERlc2NyaXB0aW9uPzogU3RhbmRhcmRpemVkRGVzY3JpcHRpb25EdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgbGlzdCBjb250YWlucyByZWZlcmVuY2VzIHRvIHBvc2l0aW9ucyB0aGF0IGNvbXBsZW1lbnQgdGhpcyBvbmUsIGFkZGl0aW9uYWxseSBhbHNvIHNwZWNpZnlpbmcgYSBxdWFudGl0eSBmb3Igd2hpY2ggdGhlIGFkZGl0aW9uIGlzIGludGVuZGVkLiBUaGlzIGRvZXMgbm90IHJlcGxhY2UgdGhlIENvbXBsZW1lbnRlZEJ5IHByb3BlcnR5IGFuZCB0aGVyZSBhcmUgbm8gYXV0b21hdGljIGNoZWNrcyBiZWluZyBkb25lIGJldHdlZW4gdGhlc2UgdHdvIHByb3BlcnRpZXMsIHNvIGl0J3MgdXAgdG8gdGhlIHVzZXIgY29kZSB0byBlbnN1cmUgZGVsZXRpb25zIChhbmQgYWRkaXRpb25zLCBpZiBkZXNpcmVkKSBhcmUgcGVyZm9ybWVkIGZvciBib3RoIHByb3BlcnRpZXMuIFdoZW4gY29weWluZyB3aXRoaW5nIGtlZXBpbmcgSWRzLCB0aGlzIGxpc3Qgd2lsbCBub3QgYmUgcGFydCBvZiB0aGUgY29weSBwcm9jZXNzLCBzaW5jZSBpdCB3b3VsZCBvbmx5IGNvbnRhaW4gcXVhbnRpdGllcyB3aXRob3V0IGFjdHVhbCBwb3NpdGlvbiByZWZlcmVuY2VzLiBDb250YWluZXJzLCBob3dldmVyLCB3aWxsIHJlYnVpbGQgdGhlIGxpc3Qgd2l0aCB1cGRhdGVkIHBvc2l0aW9uIHJlZmVyZW5jZXMgd2hlbiBjb3B5aW5nIHBvc2l0aW9ucyB0aGF0IGNvbnRhaW4gZW50cmllcyBoZXJlLiAqL1xuICAgIGNvbXBsZW1lbnRlZEJ5UXVhbnRpdGllcz86IENvbXBsZW1lbnRlZEJ5UXVhbnRpdHlEdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpZGVudGlmaWVyIGNhbiBiZSB1c2VkIHRvIHBvaW50IHRvIHRoZSBJZCBvZiBhbiBFeGVjdXRpb25EZXNjcmlwdGlvbiBpbiB0aGUgc2FtZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gRXhlY3V0aW9uRGVzY3JpcHRpb25zIGFjdCBhcyBhIHdheSB0byBjZW50cmFsbHkgZGVzY3JpYmUgaG93IHBvc2l0aW9ucyBzaG91bGQgYmUgZXhlY3V0ZWQgaW4gcHJhY3RpY2UuIE9mdGVuLCB0aGUgcG9zaXRpb24gaXRzZWxmIHN0aWxsIGhhcyB0ZXh0IG9mIGl0cyBvd24gdG8gaGlnaGxpZ2h0IGRldmlhdGlvbnMgZnJvbSB0aGF0IG9yIGFkZCBtb3JlIGRldGFpbHMuICovXG4gICAgZXhlY3V0aW9uRGVzY3JpcHRpb25SZWZlcmVuY2U/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzIGlmIGEgcG9zaXRpb24gaGFzIG5vdCBiZWVuIG9mZmVyZWQuIFRoaXMgaXMgdHlwaWNhbGx5IG9ubHkgZXhwZWN0ZWQgdG8gYmUgdHJ1ZSB3aGVuIHRoZSBleGNoYW5nZSBwaGFzZSBvZiB0aGUgcGFyZW50IFNlcnZpY2VTcGVjaWZpY2F0aW9uIGlzIE9mZmVyLCBhbmQgaXQgbWVhbnMgdGhhdCB0aGUgcG9zaXRpb24gaGFzIG5vdCBiZWVuIG9mZmVyZWQgYXQgYWxsLiAqL1xuICAgIG5vdE9mZmVyZWQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGNsYXNzIG1vZGVscyBzcGVjaWFsIHByb3BlcnRpZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHNvbWUgZXhjaGFuZ2Ugc2NlbmFyaW9zIHdoZXJlIMOWTm9ybSBpcyB1c2VkLiBJdCBpcyBzcGVjaWFsIGZvciBQb3NpdGlvbnMgYW5kIGV4dGVuZHMgdGhlIE9lbm9ybVByb3BlcnRpZXMgYmFzZSBjbGFzcy4gKi9cbiAgICBvZW5vcm1Qb3NpdGlvblByb3BlcnRpZXM/OiBPZW5vcm1Qb3NpdGlvblByb3BlcnRpZXNEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYW4gaWRlbnRpZmllciBzcGVjaWZpYyBmb3IgdGhpcyBkZXNjcmlwdGlvbi4gU29tZSBleGNoYW5nZSBmb3JtYXRzLCBsaWtlIEdBRUIgWE1MLCB1c2UgaXQgdG8gaWRlbnRpZnkgZGVzY3JpcHRpb25zLiBJdCdzIGRpZmZlcmVudCB0byBhbiBlbGVtZW50cyBpZGVudGlmaWVyIGluIHRoYXQgaXQgc2hvdWxkIG9ubHkgYXBwbHkgdG8gdGhlIGRlc2NyaXB0aW9uIGNvbXBvbmVudCwgbWVhbmluZyB0aGUgdGV4dCBpdHNlbGYuICovXG4gICAgZGVzY3JpcHRpb25JZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhIHplcm8gYmFzZWQgaGllcmFyY2h5IGxldmVsLiBJdCdzIHNldCBhdXRvbWF0aWNhbGx5IHdoZW4gdXNlZCBpbiB0aGUgY29udGV4dCBvZiBhIFByb2plY3QsIGFuZCBjYW4gYmUgdXNlZCB0byBpZGVudGlmeSB0aGUgaGllcmFyY2h5IGxldmVsIG9mIHRoZSBjdXJyZW50IGVsZW1lbnQuICovXG4gICAgaGllcmFyY2h5TGV2ZWw/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzLCBpZiB0aGlzIGVsZW1lbnQgaXMgcGFydCBvZiBhbiBhZGRlbmR1bSBhbiwgaWYgeWVzLCB3aXRoIHdoYXQgc3RhdHVzLiAqL1xuICAgIGFkZGVuZHVtU3RhdHVzPzogQWRkZW5kdW1TdGF0dXNEdG8gfCB1bmRlZmluZWQ7XG4gICAgcmVhZG9ubHkgaGFzQmlkZGVyQ29tbWVudEluSHRtbExvbmdUZXh0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBjYW4gb3B0aW9uYWxseSBiZSB1c2VkIGluIEdBRUIgZXhjaGFuZ2Ugc2NlbmFyaW9zLiBJdCBpcyBvbmx5IG1lYW5pbmdmdWwgaWYgdGhpcyBwb3NpdGlvbiBpdHNlbGYgaXMgYSBjb21wbGVtZW50aW5nIHBvc2l0aW9uLCBtZWFuaW5nIGlmIHRoaXMgcG9zaXRpb24gaXMgbWFya2VkIGluIG90aGVyIHBvc2l0aW9ucyBpbiB0aGVpciBDb21wbGVtZW50ZWRCeSBsaXN0LiBUaGVuLCBpdCBzcGVjaWZpZXMgaG93IHRoZSBjb21wbGVtZW50aW5nIHNob3VsZCBiZSBleHByZXNzZWQgaW4gR0FFQi4gQnkgZGVmYXVsdCwgcG9zaXRpb25zIGFyZSBhbHdheXMgZXhwbGljaXRseSByZWZlcmVuY2VkLCBidXQgb3RoZXIgb3B0aW9ucyBhcmUgcG9zc2libGUuIFBsZWFzZSBhbHNvIG5vdGUgdGhhdCB0aGUgRGFuZ2wuQVZBLkNvbnZlcnRlciBwYWNrYWdlLCB3aGljaCBpcyB1c2VkIGZvciBHQUVCIGV4cG9ydHMsIHdpbGwgY2hlY2sgaWYgdGhlIGdpdmVuIHR5cGUgaXMgdmFsaWQgaW4gdGhlIGN1cnJlbnQgcHJvamVjdCBjb25maWd1cmF0aW9uLiBJZiBub3QsIGRpcmVjdGx5IHJlZmVyZW5jZWQgcG9zaXRpb25zIHdpbGwgYmUgdXNlZCBhcyBmYWxsYmFjay4gKi9cbiAgICBnYWViQ29tcGxlbWVudGluZ1R5cGU/OiBQb3NpdGlvbkNvbXBsZW1lbnRpbmdUeXBlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBIb2xkT3V0IHByb3BlcnRpZXMgZGVzY3JpYmUgc2VydmljZXMgdGhhdCBhcmUgdG8gYmUgcHJvdmlkZWQgYW5kIG1haW50YWluZWQgZm9yIGEgc3BlY2lmaWMgdGltZSwgZS5nLiBmZW5jZXMgb24gYSBjb25zdHJ1Y3Rpb24gc2l0ZS4gKi9cbiAgICBob2xkT3V0UHJvcGVydGllcz86IFBvc2l0aW9uSG9sZE91dFByb3BlcnRpZXNEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYW4gaW5mb3JtYXRpb25hbCBwcm9wZXJ0eSwgd2hpY2ggZGlyZWN0bHkgaG9sZHMgYSBudW1lcmljYWwgdmFsdWUgZm9yIGFuIGVzdGltYXRlZCBxdWFudGl0eS4gSXQgaXMgbm90IHVzZWQgZm9yIGFueSBwcmljZSBjYWxjdWxhdGlvbnMuICovXG4gICAgZXN0aW1hdGVkUXVhbnRpdHk/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYW4gb3B0aW9uYWwgcHJvcGVydHkgdGhhdCBob2xkcyBwcmljZSBjYXRhbG9ndWUgZGF0YS4gVGhlc2UgYXJlIHByaWNlcyB0aGF0IG1heSByZXByZXNlbnQgYW4gZXN0aW1hdGUsIGFuZCB0aGV5IHR5cGljYWxseSBjb21lIGZyb20gYSBwcmljZSBjYXRhbG9ndWUuICovXG4gICAgcHJpY2VDYXRhbG9ndWVEYXRhPzogUHJpY2VDYXRhbG9ndWVEYXRhRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJZiB0aGlzIGlzIHNldCB0byB0cnVlLCB0aGUgUHJvamVjdENhdGFsb2d1ZXMgcHJvcGVydHkgd2lsbCBub3QgYmUgcHJvcGFnYXRlZCB0byBjaGlsZCBlbGVtZW50cy4gVGhpcyBpcyB1c2VmdWwgaW4gbWFwcGluZyBzY2VuYXJpb3MsIHdoZXJlIHlvdSB3YW50IHRvIGRpc2FibGUgcHJvcGFnYXRpb24gZm9yIG11bHRpcGxlIGNoYW5nZXMsIGFuZCBvbmx5IGVuYWJsZSBpdCBvbmNlIHlvdSBoYXZlIG1hcHBlZCBhbGwgcHJvcGVydGllcy4gKi9cbiAgICBpZ25vcmVQcm9qZWN0Q2F0YWxvZ3VlUHJvcGFnYXRpb24/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogQmFzZWQgb24gdGhlIFByaWNlQ29tcG9uZW50LCB0aGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciBsYWJvdXIgdGltZSBjb21wb25lbnRzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYWJvdXJQcmljZUNvbXBvbmVudER0byB7XG4gICAgLyoqIFRoZSBsYWJlbCBhc3NvY2lhdGVkIHdpdGggdGhpcyBwcmljZSBjb21wb25lbnQuIFdpbGwgYmUgdGFrZW4gZnJvbSB0aGUgcGFyZW50IFByb2plY3RzIFByb2plY3RJbmZvcm1hdGlvbi4gKi9cbiAgICBsYWJlbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHRvdGFsLCBjYWxjdWxhdGVkIHByaWNlIG9mIHRoaXMgY29tcG9uZW50LiBXaWxsIG11bHRpcGx5IHRoZSBjYWxjdWxhdGVkIGFtb3VudCBvZiBob3VycyB3aXRoIHRoZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbnMgaG91cmx5IHdhZ2UgcmF0ZS4gKi9cbiAgICByZWFkb25seSBwcmljZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGNvc3QgcGVyIGhvdXIgb2YgbWFudWFsIGxhYm9yLiAqL1xuICAgIGhvdXJseVdhZ2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBzaW5nbGUgQ2FsY3VsYXRpb24gZWxlbWVudHMgdGhpcyBwcmljZSBjb21wb25lbnQgaXMgY29tcG9zZWQgb2YuICovXG4gICAgdmFsdWVzPzogQ2FsY3VsYXRpb25EdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbidzIHN0YW5kYXJkIEhvdXJseVdhZ2UgaXMgdG8gYmUgdXNlZCBvciBhIGN1c3RvbSB2YWx1ZS4gKi9cbiAgICB1c2VPd25Ib3VybHlXYWdlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHRvdGFsLCBjYWxjdWxhdGVkIHRpbWUgb2YgdGhpcyBjb21wb25lbnQuIFdpbGwgcmV0dXJuIHRoZSByZXN1bHQgcm91bmRlZCB0byB0aHJlZSBkZWNpbWFsIHBsYWNlcy4gKi9cbiAgICByZWFkb25seSB0b3RhbFRpbWU/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWVzIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgUHJpY2VDb21wb25lbnQuIENhdGFsb2d1ZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiBUaGV5IGFyZSBwcm9wYWdhdGUgdG8gYWxsIGNoaWxkIGVsZW1lbnRzLCBlLmcuIG90aGVyIGNvbnRhaW5lcnMgYW5kIFF1YW50aXR5QXNzaWdubWVudHMuIEluIHRoZSBjb250ZXh0IG9mIGEgU2VydmljZVNwZWNpZmljYXRpb24sIGFsbCBlbGVtZW50cyBzaGFyZSB0aGUgc2FtZSBpbnN0YW5jZSBvZiB0aGUgY29sbGVjdGlvbi4gKi9cbiAgICBwcm9qZWN0Q2F0YWxvZ3Vlcz86IENhdGFsb2d1ZUR0b1tdIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBjbGFzcyBob2xkcyBtZWFucyB0byBjYWxjdWxhdGUgbWF0aGVtYXRpY2FsIGV4cHJlc3Npb25zIGZyb20gZ2l2ZW4gc3RyaW5ncy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsY3VsYXRpb25EdG8ge1xuICAgIC8qKiBEZXNjcmlwdGl2ZSB0ZXh0IGZvciB0aGlzIGNhbGN1bGF0aW9uLiAqL1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIENhbGN1bGF0aW9uJ3MgbWF0aGVtYXRpY2FsIGV4cHJlc3Npb24uIFBsZWFzZSBub3RlIHRoYXQgdGhvdXNhbmRzIHNlcGFyYXRvcnMgYXJlIG5vdCBzdXBwb3J0ZWQuIEJvdGggY29tbWEgYW5kIHBvaW50IHdpbGwgYmUgdHJlYXRlZCBhcyBkZWNpbWFsIHNlcGFyYXRvcnMuICovXG4gICAgZm9ybXVsYT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGNhbGN1bGF0ZWQgcmVzdWx0IGZyb20gdGhlIGZvcm11bGEsIDAgaWYgaW52YWxpZC4gKi9cbiAgICByZWFkb25seSByZXN1bHQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFdoZXRoZXIgdGhlIEZvcm11bGEgaXMgYSB2YWxpZCBleHByZXNzaW9uLiAqL1xuICAgIHJlYWRvbmx5IHZhbGlkPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogV2lsbCBiZSAtMSBpZiB0aGUgRm9ybXVsYSBpcyBjb3JyZWN0LCBlbHNlIGl0IHdpbGwgc2hvdyB0aGUgcG9zaXRpb24gaW4gdGhlIGZvcm11bGEgd2hlcmUgYW4gZXJyb3Igd2FzIGVuY291bnRlcmVkLiBUaGlzIGlzIGEgemVybyBiYXNlZCBpbmRleC4gKi9cbiAgICByZWFkb25seSBlcnJvclBvc2l0aW9uSW5MaW5lPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGVzZSBhcmUgQ2F0YWxvZ3VlcyB0aGF0IGFyZSB1c2VkIHdpdGhpbiB0aGlzIENhbGN1bGF0aW9uLiBDYXRhbG9ndWVzIGFyZSB1c2VkIHRvIGRlc2NyaWJlIGNhdGFsb2d1ZXMsIG9yIGNvbGxlY3Rpb25zLCB0aGF0IGNhbiBiZSB1c2VkIHRvIGRlc2NyaWJlIGVsZW1lbnRzIHdpdGggY29tbW9ubHkga25vd24gcHJvcGVydGllcy4gRm9yIGV4YW1wbGUsIFF1YW50aXR5QXNzaWdubWVudHMgdXNlIHRoZXNlIHRvIGNhdGVnb3JpemUgdGhlbXNlbHZlcy4gVGhleSBhcmUgcHJvcGFnYXRlIHRvIGFsbCBjaGlsZCBlbGVtZW50cywgZS5nLiBvdGhlciBjb250YWluZXJzIGFuZCBRdWFudGl0eUFzc2lnbm1lbnRzLiBJbiB0aGUgY29udGV4dCBvZiBhIFNlcnZpY2VTcGVjaWZpY2F0aW9uLCBhbGwgZWxlbWVudHMgc2hhcmUgdGhlIHNhbWUgaW5zdGFuY2Ugb2YgdGhlIGNvbGxlY3Rpb24uICovXG4gICAgcHJvamVjdENhdGFsb2d1ZXM/OiBDYXRhbG9ndWVEdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogUmVmZXJlbmNlZCBjYXRhbG9ndWVzIGZvciB0aGlzIENhbGN1bGF0aW9uLiAqL1xuICAgIGNhdGFsb2d1ZVJlZmVyZW5jZXM/OiBDYXRhbG9ndWVSZWZlcmVuY2VEdG9bXSB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgY2xhc3MgcHJvdmlkZXMgbWVhbnMgdG8gc3RvcmUgaW5mb3JtYXRpb24gYWJvdXQgYSBwcmljZSBhbmQgaXQncyBjb21wb3NpdGlvbi4gTm90ZSB0aGF0IHRoaXMgaXMgcmVmZXJlbmNpbmcgdG8gYSBzaW5nbGUgcHJpY2UgY29tcG9uZW50LCBzbyBmb3IgZXhhbXBsZSBhIFBvc2l0aW9uIHdvdWxkIGhhdmUgYSBsaXN0IG9mIFByaWNlQ29tcG9uZW50cywgb25lIGZvciBNYXRlcmlhbCwgb25lIGZvciBMYWJvdXIgZXRjLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmljZUNvbXBvbmVudER0byB7XG4gICAgLyoqIFRoZSB0b3RhbCwgY2FsY3VsYXRlZCBwcmljZSBvZiB0aGlzIGNvbXBvbmVudC4gKi9cbiAgICByZWFkb25seSBwcmljZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGxhYmVsIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHByaWNlIGNvbXBvbmVudC4gV2lsbCBiZSB0YWtlbiBmcm9tIHRoZSBwYXJlbnQgUHJvamVjdHMgUHJvamVjdEluZm9ybWF0aW9uLiAqL1xuICAgIGxhYmVsPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgc2luZ2xlIENhbGN1bGF0aW9uIGVsZW1lbnRzIHRoaXMgcHJpY2UgY29tcG9uZW50IGlzIGNvbXBvc2VkIG9mLiAqL1xuICAgIHZhbHVlcz86IENhbGN1bGF0aW9uRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWVzIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgUHJpY2VDb21wb25lbnQuIENhdGFsb2d1ZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiBUaGV5IGFyZSBwcm9wYWdhdGUgdG8gYWxsIGNoaWxkIGVsZW1lbnRzLCBlLmcuIG90aGVyIGNvbnRhaW5lcnMgYW5kIFF1YW50aXR5QXNzaWdubWVudHMuIEluIHRoZSBjb250ZXh0IG9mIGEgU2VydmljZVNwZWNpZmljYXRpb24sIGFsbCBlbGVtZW50cyBzaGFyZSB0aGUgc2FtZSBpbnN0YW5jZSBvZiB0aGUgY29sbGVjdGlvbi4gKi9cbiAgICBwcm9qZWN0Q2F0YWxvZ3Vlcz86IENhdGFsb2d1ZUR0b1tdIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBpcyBhcHBlbmRlZCB0byBhIFBvc2l0aW9uIGFuZCBpcyB1c2VkIHRvIHNlcGFyYXRlIHRoZSBjb21wbGV0ZSBQb3NpdGlvbiBpbnRvIHNtYWxsZXIgYW1vdW50cyB0byBiZSBkZXNjcmliZWQgc2VwYXJhdGVseSwgZm9yIGV4YW1wbGUgY29uY3JldGUgd2FsbHMgY291bGQgYmUgYXR0YWNoZWQgdG8gZGlmZmVyZW50IGJ1aWxkaW5nIHN0b3JleXMuICovXG5leHBvcnQgaW50ZXJmYWNlIFN1YkRlc2NyaXB0aW9uRHRvIHtcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqIFJldHVybnMgdGhlIHRvdGFsIGNhbGN1bGF0ZWQgc3VtIG9mIGFsbCBxdWFudGl0eSBhc3NpZ25tZW50cy4gV2lsbCByZXR1cm4gdGhlIHJlc3VsdCByb3VuZGVkIHRvIHRocmVlIGRlY2ltYWwgcGxhY2VzLiAqL1xuICAgIHJlYWRvbmx5IHF1YW50aXR5PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBZb3UgY2FuIHVzZSB0aGlzIHByb3BlcnR5IHRvIGRpcmVjdGx5IHNldCB0aGUgcXVhbnRpdHkgZm9yIHRoaXMgc3ViIGRlc2NyaXB0aW9uLiBUaGlzIHdpbGwgb3ZlcnJpZGUgYW55IGdpdmVuIFF1YW50aXR5Q29tcG9uZW50cyAqL1xuICAgIHF1YW50aXR5T3ZlcnJpZGU/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEhvbGRzIHF1YW50aXR5IGluZm9ybWF0aW9uIGZvciB0aGlzIHN1YiBkZXNjcmlwdGlvbi4gUXVhbnRpdHkgaXMgbGlzdGVuaW5nIHRvIGNoYW5nZXMgaGVyZSBhbmQgaXMgcmVwb3J0aW5nIHRoZSB0b3RhbCBzdW0gb2YgYWxsIHF1YW50aXR5IGNvbXBvbmVudHMuICovXG4gICAgcXVhbnRpdHlDb21wb25lbnRzPzogQ2FsY3VsYXRpb25EdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBiaWRkZXIgaXMgYXNrZWQgdG8gc3BlY2lmeSBhbiBhbW91bnQuICovXG4gICAgYW1vdW50VG9CZUVudGVyZWRCeUJpZGRlcj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIElkZW50aWZpZXIgZm9yIHRoaXMgU3ViRGVzY3JpcHRpb24uICovXG4gICAgaWRlbnRpZmllcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogU2hvcnQgZGVzY3JpcHRpb24gZm9yIHRoaXMgRGVzY3JpcHRpb25CYXNlIGVsZW1lbnQuICovXG4gICAgc2hvcnRUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBEZXRhaWxlZCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBEZXNjcmlwdGlvbkJhc2UgZWxlbWVudC4gV2hlbiB0aGUgSHRtbExvbmdUZXh0IGlzIHNldCwgdGhpcyBpcyBhdXRvbWF0aWNhbGx5IG92ZXJ3cml0dGVuIGFuZCBmaWxsZWQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgcGxhaW4gdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgSHRtbCB0ZXh0LiBWaWNlIHZlcnNhLCBzZXR0aW5nIHRoaXMgcHJvcGVydHkgb3ZlcnJpZGVzIHRoZSBIdG1sTG9uZ1RleHQuICovXG4gICAgbG9uZ1RleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIHRoaXMgaXMgZ2l2ZW4sIHRoZW4gdGhlIHN1YiBkZXNjcmlwdGlvbiBoYXMgYSBkaWZmZXJlbnQgdW5pdCB0YWcgdGhhbiB0aGUgcGFyZW50IHBvc2l0aW9uLiAqL1xuICAgIHVuaXRUYWc/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgY29udGFpbnMgdGhlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIExvbmd0ZXh0LiBXaGVuIHRoZSBMb25nVGV4dCBpcyBzZXQsIHRoaXMgaXMgYXV0b21hdGljYWxseSBvdmVyd3JpdHRlbiBhbmQgZmlsbGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBsYWludGV4dC4gVmljZSB2ZXJzYSwgc2V0dGluZyB0aGlzIHByb3BlcnR5IG92ZXJyaWRlcyB0aGUgTG9uZ1RleHQuIEdBRUIgOTAgYW5kIEdBRUIgMjAwMCBleHBvcnRzIGRvIG5vdCBzdXBwb3J0IGFueSBpbWFnZSBmdW5jdGlvbmFsaXR5LiBJbiBHQUVCIFhNTCwgb25seSBpbWFnZXMgdGhhdCB1c2UgYW4gZW1iZWRkZWQgQmFzZTY0IGRhdGEgdXJpIGFyZSBleHBvcnRlZCwgcmVndWxhciB1cmwgcmVmZXJlbmNlcyBhcmUgY2xlYXJlZCBiZWZvcmUgd3JpdHRlbiBvdXQuICovXG4gICAgaHRtbExvbmdUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhpcyBEZXNjcmlwdGlvbkJhc2UgZWxlbWVudCBjb250YWlucyBCdXllciBvciBCaWRkZXIgYWRkaXRpb25zIHRvIHRoZSB0ZXh0LiAqL1xuICAgIGFkZGl0aW9uVHlwZT86IEFkZGl0aW9uVHlwZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyByZXByZXNlbnRzIGEgc3RhbmRhcmRpemVkIGRlc2NyaXB0aW9uLiBUaGlzIG1lYW5zIHRoYXQgaW5zdGVhZCBvZiBzb2xlbHkgcmVseWluZyBvbiB0ZXh0cyB0byBkZXNjcmliZSBhIHNlcnZpY2UsIGV4dGVybmFsIHN0YW5kYXJkcyBhbmQgZGVmaW5pdGlvbnMgYXJlIHJlZmVyZW5jZWQgZm9yIGEgY29tbW9uIHVuZGVyc3RhbmRpbmcuICovXG4gICAgc3RhbmRhcmRpemVkRGVzY3JpcHRpb24/OiBTdGFuZGFyZGl6ZWREZXNjcmlwdGlvbkR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpZGVudGlmaWVyIGNhbiBiZSB1c2VkIHRvIHBvaW50IHRvIHRoZSBJZCBvZiBhbiBFeGVjdXRpb25EZXNjcmlwdGlvbiBpbiB0aGUgc2FtZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gRXhlY3V0aW9uRGVzY3JpcHRpb25zIGFjdCBhcyBhIHdheSB0byBjZW50cmFsbHkgZGVzY3JpYmUgaG93IHBvc2l0aW9ucyAob3Igc3ViIGRlc2NyaXB0aW9ucykgc2hvdWxkIGJlIGV4ZWN1dGVkIGluIHByYWN0aWNlLiBPZnRlbiwgdGhlIHBvc2l0aW9uIChvciBzdWIgZGVzY3JpcHRpb24pIGl0c2VsZiBzdGlsbCBoYXMgdGV4dCBvZiBpdHMgb3duIHRvIGhpZ2hsaWdodCBkZXZpYXRpb25zIGZyb20gdGhhdCBvciBhZGQgbW9yZSBkZXRhaWxzLiBXaGVuIHdvcmtpbmcgd2l0aCBpbXBvcnQgYW5kIGV4cG9ydCBmZWF0dXJlcywgdGhpcyBwcm9wZXJ0eSBpcyBvbmx5IHN1cHBvcnRlZCBpbiBHQUVCIDkwIGRhdGEgZXhjaGFuZ2UuICovXG4gICAgZXhlY3V0aW9uRGVzY3JpcHRpb25SZWZlcmVuY2U/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWVzIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgQ2FsY3VsYXRpb24uIENhdGFsb2d1ZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiBUaGV5IGFyZSBwcm9wYWdhdGUgdG8gYWxsIGNoaWxkIGVsZW1lbnRzLCBlLmcuIG90aGVyIGNvbnRhaW5lcnMgYW5kIFF1YW50aXR5QXNzaWdubWVudHMuIEluIHRoZSBjb250ZXh0IG9mIGEgU2VydmljZVNwZWNpZmljYXRpb24sIGFsbCBlbGVtZW50cyBzaGFyZSB0aGUgc2FtZSBpbnN0YW5jZSBvZiB0aGUgY29sbGVjdGlvbi4gKi9cbiAgICBwcm9qZWN0Q2F0YWxvZ3Vlcz86IENhdGFsb2d1ZUR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGFuIGlkZW50aWZpZXIgc3BlY2lmaWMgZm9yIHRoaXMgZGVzY3JpcHRpb24uIFNvbWUgZXhjaGFuZ2UgZm9ybWF0cywgbGlrZSBHQUVCIFhNTCwgdXNlIGl0IHRvIGlkZW50aWZ5IGRlc2NyaXB0aW9ucy4gSXQncyBkaWZmZXJlbnQgdG8gYW4gZWxlbWVudHMgaWRlbnRpZmllciBpbiB0aGF0IGl0IHNob3VsZCBvbmx5IGFwcGx5IHRvIHRoZSBkZXNjcmlwdGlvbiBjb21wb25lbnQsIG1lYW5pbmcgdGhlIHRleHQgaXRzZWxmLiAqL1xuICAgIGRlc2NyaXB0aW9uSWQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgcmVhZG9ubHkgaGFzQmlkZGVyQ29tbWVudEluSHRtbExvbmdUZXh0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICBlbGVtZW50VHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBlbGVtZW50VHlwZURpc2NyaW1pbmF0b3I/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBJbmRpY2F0ZXMgdGhlIG9yaWdpbiBvZiBhbiBlbGVtZW50LiAqL1xuZXhwb3J0IGVudW0gQWRkaXRpb25UeXBlRHRvIHtcbiAgICBOb25lID0gXCJOb25lXCIsXG4gICAgQnlCdXllciA9IFwiQnlCdXllclwiLFxuICAgIEJ5QmlkZGVyID0gXCJCeUJpZGRlclwiLFxufVxuXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIGEgc3RhbmRhcmRpemVkIGRlc2NyaXB0aW9uLiBUaGlzIG1lYW5zIHRoYXQgaW5zdGVhZCBvZiBzb2xlbHkgcmVseWluZyBvbiB0ZXh0cyB0byBkZXNjcmliZSBhIHNlcnZpY2UsIGV4dGVybmFsIHN0YW5kYXJkcyBhbmQgZGVmaW5pdGlvbnMgYXJlIHJlZmVyZW5jZWQgZm9yIGEgY29tbW9uIHVuZGVyc3RhbmRpbmcuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YW5kYXJkaXplZERlc2NyaXB0aW9uRHRvIHtcbiAgICAvKiogVGhpcyBlbnVtZXJhdGlvbiBpZGVudGlmaWVzIGEgcHJlLWtub3duIHN0YW5kYXJkIHVzZWQgZm9yIHJlZmVyZW5jaW5nIHN0YW5kYXJkaXplZCBkZXNjcmlwdGlvbnMuICovXG4gICAgc3RhbmRhcmRSZWZlcmVuY2VUeXBlPzogU3RhbmRhcmRSZWZlcmVuY2VUeXBlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHN0cmluZyBwcm9wZXJ0eSBpcyB0aGUgaWRlbnRpZmllciB0byBtYXAgdG8gdGhlIHJlZmVyZW5jZXMgc3RhbmRhcmQuIEl0cyB0eXBlIGlzIGdpdmVuIGluIHRoZSBTdGFuZGFyZFJlZmVyZW5jZVR5cGUgKi9cbiAgICBzdGFuZGFyZFJlZmVyZW5jZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhIHNwZWNpYWwgcmVmZXJlbmNlIHRvIHRoZSBHZXJtYW4gU1RMQiBcIlN0YW5kYXJkbGVpc3R1bmdzYnVjaCBCYXVcIiByZWZlcmVuY2UuIElmIHRoaXMgaXMgdXNlZCwgdGhlIFN0YW5kYXJkUmVmZXJlbmNlIHByb3BlcnR5IHNob3VsZCBub3QgYmUgc2V0LiAqL1xuICAgIHN0bGJSZWZlcmVuY2U/OiBTVExCUmVmZXJlbmNlRHRvIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBlbnVtZXJhdGlvbiBpZGVudGlmaWVzIGEgcHJlLWtub3duIHN0YW5kYXJkIHVzZWQgZm9yIHJlZmVyZW5jaW5nIHN0YW5kYXJkaXplZCBkZXNjcmlwdGlvbnMuICovXG5leHBvcnQgZW51bSBTdGFuZGFyZFJlZmVyZW5jZVR5cGVEdG8ge1xuICAgIFVua25vd24gPSBcIlVua25vd25cIixcbiAgICBTdExCID0gXCJTdExCXCIsXG4gICAgU3RMSyA9IFwiU3RMS1wiLFxuICAgIFNUTEJCYXVaID0gXCJTVExCQmF1WlwiLFxufVxuXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIGEgc3BlY2lhbGl6ZWQgcmVmZXJlbmNlIHRvIHRoZSBHZXJtYW4gU1RMQiBcIlN0YW5kYXJkbGVpc3R1bmdzYnVjaCBCYXVcIi4gVGhlIFNUTEIgaXMgYSBjb21tZXJjaWFsIG9mZmVyaW5nIGFuZCBkZXNjcmliZXMgY29tbW9uIHNlcnZpY2VzIGluIHRoZSBjb25zdHJ1Y3Rpb24gc2VjdG9yLiBXaGVuIHRoaXMgaXMgdXNlZCwgdGhpcyBkZXNjcmliZXMgdGhlIGV4YWN0IHR5cGUgb2YgYSBzZXJ2aWNlIHZpYSBhIHJlZmVyZW5jZSB0byB0aGlzIHN0YW5kYXJkICovXG5leHBvcnQgaW50ZXJmYWNlIFNUTEJSZWZlcmVuY2VEdG8ge1xuICAgIC8qKiBUaGUgZGF0ZSBvZiB0aGUgU1RMQiB2ZXJzaW9uLiBUeXBpY2FsbHksIG9ubHkgdGhlIFllYXIgYW5kIE1vbnRoIGFyZSB1c2VkICovXG4gICAgdmVyc2lvbkRhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGUgY2F0YWxvZ3VlIHdpdGhpbiB0aGUgU1RMQiAqL1xuICAgIGNhdGFsb2d1ZU5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoZSBncm91cCBpbiBTVExCICovXG4gICAgZ3JvdXA/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBjb3N0IGdyb3VwIHRoaXMgc2VydmljZSBpcyBhc3NvY2lhdGVkIHdpdGggKi9cbiAgICBjb3N0R3JvdXA/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBzZXJ2aWNlIGFyZWEgKG9yIHR5cGUpIGluIHRoZSBTVExCICovXG4gICAgc2VydmljZUFyZWE/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZXNlIGtleXMgbWF5IG9wdGlvbmFsbHkgYmUgdXNlZCB0byBmdXJ0aGVyIHJlZmVyZW5jZSBtdWx0aXBsZSwgc3BlY2lmaWMgaXRlbXMgd2l0aGluIHRoZSBTVExCICovXG4gICAga2V5cz86IFNUTEJLZXlEdG9bXSB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgY2xhc3MgcmVwcmVzZW50cyBhIHNpbmdsZSBrZXkgcmVmZXJlbmNlIHdpdGhpbiB0aGUgR2VybWFuIFNUTEIgXCJTdGFuZGFyZGxlaXN0dW5nc2J1Y2ggQmF1XCIgKi9cbmV4cG9ydCBpbnRlcmZhY2UgU1RMQktleUR0byB7XG4gICAgLyoqIFRoaXMgaWRlbnRpZmllciBpcyByZXF1aXJlZCBhbmQgdW5pcXVlbHkgZGVzY3JpYmVzIGEgc2luZ2xlIHJlZmVyZW5jZSB3aXRoaW4gdGhlIFNUTEIgc3RhbmRhcmQuIEl0IG1hcHMgdG8gXCJBcnRDaHJJZGVudFwiIGluIEdBRUIgWE1MICovXG4gICAgYXJ0SWRlbnRpZmllcj86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBvcHRpb25hbCBpbmRleCBwcm9wZXJ0eSBmdXJ0aGVyIGNhdGVnb3JpemVzIGEgc2luZ2xlIHJlZmVyZW5jZSB3aXRoaW4gdGhlIFNUTEIgc3RhbmRhcmQuIEl0IG1hcHMgdG8gXCJBcnRDaElkeFwiIGluIEdBRUIgWE1MICovXG4gICAgYXJ0SW5kZXg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgb3B0aW9uYWwgaWRlbnRpZmllciBmdXJ0aGVyIHNwZWNpZmllcyB0aGUgZXhlY3V0aW9uIGtpbmQgb2YgdGhlIHJlZmVyZW5jZSBpbiB0aGUgU1RMQiBzdGFuZGFyZC4gSXQgbWFwcyB0byBcIkNoVklkZW50XCIgaW4gR0FFQiBYTUwgKi9cbiAgICBraW5kSWRlbnRpZmllcj86IG51bWJlciB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIEluZGljYXRlcyBpZiB0aGlzIHNlcnZpY2Ugc3BlY2lmaWNhdGlvbiBpdGVtIGlzIGNvbW1pc3Npb25lZCAoYW5kIHRoZXJlZm9yZSBzaG91bGQgYmUgZXhlY3V0ZWQpLCBwb3N0cG9uZWQgZm9yIGxhdGVyIG9yIHVuZGVmaW5lZC4gKi9cbmV4cG9ydCBlbnVtIENvbWlzc2lvblN0YXR1c0R0byB7XG4gICAgVW5kZWZpbmVkID0gXCJVbmRlZmluZWRcIixcbiAgICBDb21taXNzaW9uZWQgPSBcIkNvbW1pc3Npb25lZFwiLFxuICAgIFBvc3Rwb25lZCA9IFwiUG9zdHBvbmVkXCIsXG4gICAgUmVtb3ZlZCA9IFwiUmVtb3ZlZFwiLFxufVxuXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIGFzIGlkZW50aWZpZXIgb2YgYSBjZXJ0YWluIHNlcnZpY2Ugc3BlY2lmaWNhdGlvbidzIGVsZW1lbnQgYW5kIGlzIHVuaXF1ZWx5IHdpdGhpbiB0aGUgc2VydmljZSBzcGVjaWZpY2F0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJdGVtTnVtYmVyRHRvIHtcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqIFdpbGwgcmV0dXJuIHRoaXMgSXRlbU51bWJlciBhcyBwb2ludCBkZWxpbWl0ZWQgc3RyaW5nLiBXaWxsIG5vdCBkaXN0aW5ndWlzaCBiZXR3ZWVuIHVwcGVyLSBhbmQgbG93ZXJjYXNlIGFuZCByZXR1cm4gYW4gYWxsLWxvd2VyY2FzZSByZXByZXNlbnRhdGlvbi4gV2lsbCBjb25zaWRlciBmaXJzdCBudW1iZXJzLCB0aGVuIGNoYXJhY3RlcnMsIGUuZy4gMWEgaXMgY29uc2lkZXJlZCBwcmVjZWRpbmcgYWEuIFRyYW5zZm9ybWF0aW9uIHRvIGFsbCBsb3dlcmNhc2UgY2FuIGJlIGNvbmZpZ3VyZWQgaW4gdGhlIEl0ZW1OdW1iZXJTY2hlbWEgcHJvcGVydHkuICovXG4gICAgc3RyaW5nUmVwcmVzZW50YXRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgY2hhcmFjdGVycyBhbmQgdGhlIGxlbmd0aCBvZiB0aGUgSWRlbnRpZmllcnMgbWF0Y2ggdGhlIGN1cnJlbnQgSXRlbU51bWJlclNjaGVtYS4gKi9cbiAgICByZWFkb25seSBpc1NjaGVtYUNvbXBsaWFudD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFVzZWQgZm9yIHJlcHJlc2VudGluZyBhbmQgdmFsaWRhdGluZyB0aGlzIEl0ZW1OdW1iZXIuICovXG4gICAgaXRlbU51bWJlclNjaGVtYT86IEl0ZW1OdW1iZXJTY2hlbWFEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIENvbGxlY3Rpb24gb2YgdGhlIHNpbmdsZSBpZGVudGlmaWVycyBpbiB0aGlzIEl0ZW1OdW1iZXIuIFAuZS4sIFwiMDIuMDMuMDA0XCIgd2lsbCBoYXZlIHRocmVlIGVsZW1lbnRzIFwiMDJcIiwgXCIwM1wiLCBhbmQgXCIwMDRcIi4gU2luY2UgUmVhZE9ubHlPYnNlcnZhYmxlQ29sbGVjdGlvbmAxIGRvZXMgaGF2ZSB0aGUgZXZlbnQgc2V0IHRvIHByb3RlY3RlZCwgaXQgY2FuIGJlIGFjY2Vzc2VkIGxpa2UgdGhpczogKGl0ZW1OdW1iZXIuSWRlbnRpZmllcnMgYXMgSU5vdGlmeUNvbGxlY3Rpb25DaGFuZ2VkKS5Db2xsZWN0aW9uQ2hhbmdlZCAqL1xuICAgIGlkZW50aWZpZXJzPzogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzIGlmIHRoaXMgaXRlbSBudW1iZXIgaXMgYXQgdGhlIGxvdCBsZXZlbC4gRmluZCBvdXQgbW9yZSBhYm91dCBsb3RzIGluIHRoZSBkb2N1bWVudGF0aW9uLiAqL1xuICAgIHJlYWRvbmx5IGlzTG90PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhIHplcm8gYmFzZWQgaGllcmFyY2h5IGxldmVsLiBJdCdzIHNldCBhdXRvbWF0aWNhbGx5IHdoZW4gdXNlZCBpbiB0aGUgY29udGV4dCBvZiBhIFByb2plY3QsIGFuZCBjYW4gYmUgdXNlZCB0byBpZGVudGlmeSB0aGUgaGllcmFyY2h5IGxldmVsIG9mIHRoZSBjdXJyZW50IGVsZW1lbnQuICovXG4gICAgaGllcmFyY2h5TGV2ZWw/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgcHJvcGVydHkgaW5kaWNhdGVzIGlmIHRoaXMgSXRlbU51bWJlciBpcyBhdHRhY2hlZCB0byBhbiBvYmplY3Qgb2YgdGhlIFBvc2l0aW9uIHR5cGUuICovXG4gICAgcmVhZG9ubHkgaXNBdHRhY2hlZFRvUG9zaXRpb24/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIGl0ZW1OdW1iZXJTY2hlbWFCZWZvcmVNYXBwaW5nPzogSXRlbU51bWJlclNjaGVtYUR0byB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgaXMgYSBjbGFzc2lmaWNhdGlvbiBmb3IgUG9zaXRpb24gZWxlbWVudHMuICovXG5leHBvcnQgZW51bSBQb3NpdGlvblR5cGVEdG8ge1xuICAgIFJlZ3VsYXIgPSBcIlJlZ3VsYXJcIixcbiAgICBPcHRpb25hbCA9IFwiT3B0aW9uYWxcIixcbiAgICBBbHRlcm5hdGl2ZSA9IFwiQWx0ZXJuYXRpdmVcIixcbn1cblxuLyoqIFRoaXMgaW5kaWNhdGVzIHRoZSBwcmljZSB0eXBlIG9mIGEgSVByaWNlZEVsZW1lbnQuICovXG5leHBvcnQgZW51bSBQcmljZVR5cGVEdG8ge1xuICAgIFdpdGhUb3RhbCA9IFwiV2l0aFRvdGFsXCIsXG4gICAgV2l0aG91dFRvdGFsID0gXCJXaXRob3V0VG90YWxcIixcbn1cblxuLyoqIFRoZSBzZXJ2aWNlIHR5cGUgZGVzY3JpYmVzIHRoZSB0eXBlIG9mIHNlcnZpY2UgYSBQb3NpdGlvbiByZXByZXNlbnRzLiAqL1xuZXhwb3J0IGVudW0gU2VydmljZVR5cGVEdG8ge1xuICAgIFJlZ3VsYXIgPSBcIlJlZ3VsYXJcIixcbiAgICBIb3VybHlQYWlkV29yayA9IFwiSG91cmx5UGFpZFdvcmtcIixcbn1cblxuLyoqIFRoaXMgY2xhc3MgcmVwcmVzZW50cyBkYXRhIGFib3V0IHByb2R1Y3RzIGFuZCB0aGVpciB2ZW5kb3IgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdERhdGFEdG8ge1xuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogVGhpcyBQYXJ0eUluZm9ybWF0aW9uIGlzIHVzZWQgdG8gZGVzY3JpYmUgZGV0YWlscyBhYm91dCB0aGUgdmVuZG9yIG9mIHRoaXMgUHJvZHVjdERhdGEuICovXG4gICAgdmVuZG9yPzogUGFydHlJbmZvcm1hdGlvbkR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGNvbGxlY3Rpb24gb2YgQXJ0aWNsZURhdGEgdGhhdCBkZXNjcmliZSB0aGlzIHByb2R1Y3QsIGUuZy4gYSBwaXBlIHByb2R1Y3QgY291bGQgYmUgY29tcG9zZWQgb3V0IG9mIG11bHRpcGxlIHBpcGUgc2VnbWVudHMgYW5kIGZpdHRpbmdzLiAqL1xuICAgIGFydGljbGVzPzogQXJ0aWNsZURhdGFEdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogU2hvcnQgZGVzY3JpcHRpb24gZm9yIHRoaXMgSVRleHRFbGVtZW50IGVsZW1lbnQuICovXG4gICAgc2hvcnRUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBEZXRhaWxlZCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBJVGV4dEVsZW1lbnQgZWxlbWVudC4gV2hlbiB0aGUgSHRtbExvbmdUZXh0IGlzIHNldCwgdGhpcyBpcyBhdXRvbWF0aWNhbGx5IG92ZXJ3cml0dGVuIGFuZCBmaWxsZWQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgcGxhaW4gdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgSHRtbCB0ZXh0LiBWaWNlIHZlcnNhLCBzZXR0aW5nIHRoaXMgcHJvcGVydHkgb3ZlcnJpZGVzIHRoZSBIdG1sTG9uZ1RleHQuICovXG4gICAgbG9uZ1RleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgY29udGFpbnMgdGhlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIExvbmd0ZXh0LiBXaGVuIHRoZSBMb25nVGV4dCBpcyBzZXQsIHRoaXMgaXMgYXV0b21hdGljYWxseSBvdmVyd3JpdHRlbiBhbmQgZmlsbGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBsYWludGV4dC4gVmljZSB2ZXJzYSwgc2V0dGluZyB0aGlzIHByb3BlcnR5IG92ZXJyaWRlcyB0aGUgTG9uZ1RleHQuIEdBRUIgOTAgYW5kIEdBRUIgMjAwMCBleHBvcnRzIGRvIG5vdCBzdXBwb3J0IGFueSBpbWFnZSBmdW5jdGlvbmFsaXR5LiBJbiBHQUVCIFhNTCwgb25seSBpbWFnZXMgdGhhdCB1c2UgYW4gZW1iZWRkZWQgQmFzZTY0IGRhdGEgdXJpIGFyZSBleHBvcnRlZCwgcmVndWxhciB1cmwgcmVmZXJlbmNlcyBhcmUgY2xlYXJlZCBiZWZvcmUgd3JpdHRlbiBvdXQuICovXG4gICAgaHRtbExvbmdUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIGEgc2luZ2xlIGFydGljbGUsIHVzdWFsbHkgdXNlZCB3aXRoaW4gUHJvZHVjdERhdGEgKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXJ0aWNsZURhdGFEdG8ge1xuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogVGhlIG5hbWUgKG9yIGJyYW5kIG5hbWUpIGZvciB0aGlzIGFydGljbGUsIHVzdWFsbHkgZ2l2ZW4gYnkgdGhlIHN1cHBsaWVyIG9yIHZlbmRvci4gKi9cbiAgICBuYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBBbiBhcnRpY2xlIG51bWJlciB0aGF0IGRlc2NyaWJlcyBpdCwgdXNlZnVsIHdoZW4gaW50ZWdyYXRpbmcgb3RoZXIgc3lzdGVtcy4gKi9cbiAgICBhcnRpY2xlTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBRdWFudGl0eSBmb3IgdGhpcyBhcnRpY2xlLiBJZiB0aGlzIGlzIHVzZWQgd2l0aGluIGEgUG9zaXRpb24sIHRoZSBxdWFudGl0eSBoZXJlIHNob3VsZCBiZSB0aGUgcXVhbnRpdHkgcmVxdWlyZWQgZm9yIHRoZSBmdWxsIHF1YW50aXR5IG9mIHRoZSBwb3NpdGlvbiwgbm90IGZvciBhIHNpbmdsZSB1bml0LiAqL1xuICAgIHF1YW50aXR5PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdW5pdCB0YWcgZm9yIHRoaXMgc2luZ2xlIEFydGljbGVEYXRhLiAqL1xuICAgIHVuaXRUYWc/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYW4gb3B0aW9uYWwgdGV4dCBlbGVtZW50IHRoYXQgY2FuIGJlIHVzZWQgdG8gZnVydGhlciBkZXNjcmliZSB0aGUgQXJ0aWNsZURhdGEuICovXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFNob3J0IGRlc2NyaXB0aW9uIGZvciB0aGlzIElUZXh0RWxlbWVudCBlbGVtZW50LiAqL1xuICAgIHNob3J0VGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogRGV0YWlsZWQgZGVzY3JpcHRpb24gZm9yIHRoaXMgSVRleHRFbGVtZW50IGVsZW1lbnQuIFdoZW4gdGhlIEh0bWxMb25nVGV4dCBpcyBzZXQsIHRoaXMgaXMgYXV0b21hdGljYWxseSBvdmVyd3JpdHRlbiBhbmQgZmlsbGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIHBsYWluIHRleHQgcmVwcmVzZW50YXRpb24gb2YgdGhlIEh0bWwgdGV4dC4gVmljZSB2ZXJzYSwgc2V0dGluZyB0aGlzIHByb3BlcnR5IG92ZXJyaWRlcyB0aGUgSHRtbExvbmdUZXh0LiAqL1xuICAgIGxvbmdUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGNvbnRhaW5zIHRoZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBMb25ndGV4dC4gV2hlbiB0aGUgTG9uZ1RleHQgaXMgc2V0LCB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgb3ZlcndyaXR0ZW4gYW5kIGZpbGxlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwbGFpbnRleHQuIFZpY2UgdmVyc2EsIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgdGhlIExvbmdUZXh0LiBHQUVCIDkwIGFuZCBHQUVCIDIwMDAgZXhwb3J0cyBkbyBub3Qgc3VwcG9ydCBhbnkgaW1hZ2UgZnVuY3Rpb25hbGl0eS4gSW4gR0FFQiBYTUwsIG9ubHkgaW1hZ2VzIHRoYXQgdXNlIGFuIGVtYmVkZGVkIEJhc2U2NCBkYXRhIHVyaSBhcmUgZXhwb3J0ZWQsIHJlZ3VsYXIgdXJsIHJlZmVyZW5jZXMgYXJlIGNsZWFyZWQgYmVmb3JlIHdyaXR0ZW4gb3V0LiAqL1xuICAgIGh0bWxMb25nVGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFF1YW50aXR5IGFzc2lnbm1lbnRzIGFyZSwgaW4gY29udHJhc3QgdG8gU3ViRGVzY3JpcHRpb25zLCB1c2VkIHRvIGNhdGVnb3JpemUgcGFydHMgb2YgdGhlaXIgcGFyZW50IFBvc2l0aW9uLiBGb3IgZXhhbXBsZSwgaXQgY291bGQgYmUgY2F0ZWdvcml6ZWQgYnkgY29zdCBncm91cCAtIGUuZy4gYSBQb3NpdGlvbiBkZXNjcmliaW5nIGNvbmNyZXRlIHdhbGxzIGNvdWxkIGZvbGxvdyB0aGUgR2VybWFuIERJTiAyNzYgQ29zdCBHcm91cHMgU3RhbmRhcmQgYW5kIHNwZWNpZnkgdGhhdCBvZiB0aGUgdG90YWwgMS4wMDBtwrIgd2FsbCwgNTAwbcKyIGFyZSBjbGFzc2lmaWVkIGFzIGV4dGVyaW9yIHdhbGxzIGFuZCA1MDBtwrIgYXJlIGNsYXNzaWZpZWQgYXMgaW50ZXJpb3Igd2FsbHMuIFRoZXkgd291bGQgdGhlbiBoYXZlIGRpZmZlcmVudCBjb3N0IGdyb3VwcyBhc3NvY2lhdGVkLCBlLmcuIGZvciBhY2NvdW50aW5nIHB1cnBvc2VzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdWFudGl0eUFzc2lnbm1lbnREdG8ge1xuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogVGhlIHRvdGFsIHF1YW50aXR5IGluIHRoaXMgcXVhbnRpdHkgYXNzaWdubWVudCAqL1xuICAgIHF1YW50aXR5PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGVzZSBhcmUgQ2F0YWxvZ3VlIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgU2VydmljZVNwZWNpZmljYXRpb24uIENhdGFsb2d1ZSByZWZlcmVuY2VzIGFyZSB1c2VkIHRvIGRlc2NyaWJlIGNhdGFsb2d1ZXMsIG9yIGNvbGxlY3Rpb25zLCB0aGF0IGNhbiBiZSB1c2VkIHRvIGRlc2NyaWJlIGVsZW1lbnRzIHdpdGggY29tbW9ubHkga25vd24gcHJvcGVydGllcy4gRm9yIGV4YW1wbGUsIFF1YW50aXR5QXNzaWdubWVudHMgdXNlIHRoZXNlIHRvIGNhdGVnb3JpemUgdGhlbXNlbHZlcy4gKi9cbiAgICBwcm9qZWN0Q2F0YWxvZ3Vlcz86IENhdGFsb2d1ZUR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBSZWZlcmVuY2VkIGNhdGFsb2d1ZXMgZm9yIHRoaXMgUXVhbnRpdHlBc3NpZ25tZW50LiAqL1xuICAgIGNhdGFsb2d1ZVJlZmVyZW5jZXM/OiBDYXRhbG9ndWVSZWZlcmVuY2VEdG9bXSB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgY2xhc3MgaG9sZHMgc3BlY2lhbGl6ZWQgaW5mb3JtYXRpb24gdGhhdCBpcyByZWxldmFudCB0byB0cmFkZSBvciBjb21tZXJjZSBiYXNlZCBkYXRhIGV4Y2hhbmdlIHNjZW5hcmlvcywgZS5nLiBiZXR3ZWVuIGN1c3RvbWVycywgdmVuZG9ycywgc3VwcGxpZXJzIGFuZCBkaXN0cmlidXRvcnMuIEl0IGlzIHVzZWQgd2hlbiBleHBvcnRpbmcgdG8gR0FFQiBYTUwgOXggZXhjaGFuZ2UgcGhhc2VzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21tZXJjZVByb3BlcnRpZXNEdG8ge1xuICAgIC8qKiBUaGlzIG1hcHMgdG8gQXJ0Tm8gaW4gR0FFQiBYTUwgYW5kIHJlcHJlc2VudHMgYW4gYXJ0aWNsZSBudW1iZXIgZ2l2ZW4gYnkgdGhlIHN1cHBsaWVyLiAqL1xuICAgIGFydGljbGVOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgbWFwcyB0byBFQU4gaW4gR0FFQiBYTUwgYW5kIHJlcHJlc2VudHMgYW4gR1RJTiAoZm9ybWVybHkgRUFOKSBhcnRpY2xlIG51bWJlci4gKi9cbiAgICBlYW5HdGluQXJ0aWNsZU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBtYXBzIHRvIEFydE5vSUQgaW4gR0FFQiBYTUwgYW5kIHJlcHJlc2VudHMgYW4gSUxOIGFydGljbGUgbnVtYmVyLiAqL1xuICAgIGlsbkFydGljbGVOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgbWFwcyB0byBDYXRhbG9nTm8gaW4gR0FFQiBYTUwgYW5kIHJlcHJlc2VudHMgYW4gaWRlbnRpZmllciBvZiBhIHNwZWNpZmljIGNhdGFsb2d1ZS4gVGhlIHJlZmVyZW5jZWQgY2F0YWxvZ3VlIGlzIHVzdWFsbHkgYSBjdXN0b21lciBzcGVjaWZpYyBvbmUsIG5vdCByZWxhdGVkIHRvIENhdGFsb2d1ZVJlZmVyZW5jZXMuICovXG4gICAgY2F0YWxvZ3VlTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIG1hcHMgdG8gQ2F0YWxvZ0FydE5vIGluIEdBRUIgWE1MIGFuZCByZXByZXNlbnRzIGEga2V5IHRoYXQgbWFwcyB0byBhbiBlbnRyeSBpbiBhIHNwZWNpZmljIGNhdGFsb2d1ZS4gVGhlIHJlZmVyZW5jZWQgY2F0YWxvZ3VlIGlzIHVzdWFsbHkgYSBjdXN0b21lciBzcGVjaWZpYyBvbmUsIG5vdCByZWxhdGVkIHRvIENhdGFsb2d1ZVJlZmVyZW5jZXMuICovXG4gICAgY2F0YWxvZ3VlQXJ0aWNsZU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBvcHRpb25hbCBwcm9wZXJ0eSBjYW4gYmUgdXNlZCB0byBpbmRpY2F0ZSB0aGUgYmFzaXMgZm9yIHByaWNlcyBmb3IgYSBzaW5nbGUgcG9zaXRpb24uIFByaWNlIGJhc2lzIG1lYW5zIHRoYXQgdGhlIHByaWNlIGlzIGdpdmVuIHBlciB1bml0IG9mIHRoZSBiYXNpcywgZS5nLiBwZXIgYSBwYWNrIG9mIGZpdmUgd2hlbiB0aGlzIHByb3BlcnR5IGlzIHNldCB0byAnNScuICovXG4gICAgcHJpY2VCYXNpcz86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBvcHRpb25hbCBwcm9wZXJ0eSBjYW4gYmUgdXNlZCB0byBpbmRpY2F0ZSBhIHN1YiBwb3NpdGlvbiBpZGVudGlmaWVyIHNwZWNpZmljIGZvciB0aGUgY29tbWVyY2UgZXhjaGFuZ2UgKi9cbiAgICBzdWJQb3NpdGlvbklkZW50aWZpZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluIGEgY29tbWVyY2UgZXhjaGFuZ2UsIHRoaXMgcHJvcGVydHkgaXMgdXN1YWxseSB1c2VkIHRvIHJlZmVyZW5jZSB0aGUgYmFzZSBpdGVtIG51bWJlciBvZiBhbiB1bmRlcmx5aW5nIHBoYXNlIDgzIGV4Y2hhbmdlIGZpbGUgKi9cbiAgICBjdXN0b21lckJhc2VJdGVtTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIHRoZSBsaW5raW5nIHRvIGEgY29tcGxlbWVudGFyeSBwb3NpdGlvbiB3aXRoIGEgc3BlY2lmaWMgcXVhbnRpdHkgc2V0LiBGb3IgZXhhbXBsZSwgUG9zaXRpb24gJ0EnIGNvdWxkIGJlIGNvbXBsZW1lbnRpbmcgUG9zaXRpb24gJ0InIHdpdGggYSB0b3RhbCBxdWFudGl0eSBvZiAyMCB1bml0cyAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21wbGVtZW50ZWRCeVF1YW50aXR5RHRvIHtcbiAgICAvKiogVGhlIHF1YW50aXR5IHRoYXQgaXMgY29tcGxlbWVudGVkLiBFLmcuLCBpZiB0aGUgYmFzZSBwb3NpdGlvbiBoYXMgYSBxdWFudGl0eSBvZiAxMDAgbcKyIG9mIGEgYnJpY2sgd2FsbCwgYSBjb21wbGVtZW50aW5nIHBvc2l0aW9uIG1pZ2h0IGJlIGZvciAnd2FsbHMgdGhhdCBleGNlZWQgMyBtIGhlaWdodCcgYW5kIGZvciBhIHRvdGFsIHF1YW50aXR5IG9mIDEwIG3Csi4gKi9cbiAgICBxdWFudGl0eT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyB0aGUgcmVmZXJlbmNlIHRvIHRoZSBJZCBvZiB0aGUgUG9zaXRpb24gdGhhdCBpcyBjb21wbGVtZW50aW5nLiBUaGlzIG1lYW5zIGl0IGRvZXMgTk9UIHJlZmVyZW5jZSB0aGUgYmFzZSBwb3NpdGlvbiBidXQgdGhlIG9uZSB0aGF0IGNvbnRhaW5zIHRoZSBhY3R1YWwgYWRkaXRpb24uICovXG4gICAgY29tcGxlbWVudGluZ1Bvc2l0aW9uSWQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGNsYXNzIG1vZGVscyBzcGVjaWFsIHByb3BlcnRpZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHNvbWUgZXhjaGFuZ2Ugc2NlbmFyaW9zIHdoZXJlIMOWTm9ybSBpcyB1c2VkLiBJdCBpcyBzcGVjaWFsIGZvciBQb3NpdGlvbnMgYW5kIGV4dGVuZHMgdGhlIE9lbm9ybVByb3BlcnRpZXMgYmFzZSBjbGFzcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2Vub3JtUG9zaXRpb25Qcm9wZXJ0aWVzRHRvIHtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgd2hlcmUgdGhlIGNvbnRlbnQgb2YgdGhpcyBlbGVtZW50IG9yaWdpbmF0ZXMsIGlmIHNldC4gSXQgY29ycmVzcG9uZHMgdG8gJ2hlcmt1bmZ0c2tlbm56ZWljaGVuJyBpbiDDlk5vcm0gKi9cbiAgICBvcmlnaW5Db2RlPzogT2Vub3JtT3JpZ2luQ29kZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBtYXJrcyBpZiB0aGUgb3BlbmluZyB0ZXh0cyB3aXRoaW4gdGhpcyBlbGVtZW50IGFyZSBjb25zaWRlcmVkIGZyZWUgdGV4dC4gSXQgY29ycmVzcG9uZHMgdG8gJ3ZvcmJlbWVya3VuZ3NrZW5uemVpY2hlbicgaW4gw5ZOb3JtLiAqL1xuICAgIG9wZW5pbmdUZXh0SXNGcmVlVGV4dD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzIGlmIHRoZSDDlk5vcm0gJ3dlc2VudGxpY2hlIHBvc2l0aW9uJyBtYXJrIGlzIHNldCAqL1xuICAgIGlzTWFpblBvc2l0aW9uPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgaWYgdGhlIMOWTm9ybSBwb3NpdGlvbiB3YXMgYSAndW5nZXRlaWx0ZXBvc2l0aW9uJyAodW5kaXZpZGVkIHBvc2l0aW9uKS4gVGhpcyB3aWxsIG9ubHkgYmUgdGFrZW4gaW50byBhY2NvdW50IHdoZW4gdGhlIHBvc2l0aW9uIGlzIGFsc28gdGhlIHNvbGUgZWxlbWVudCBpbnNpZGUgaXQncyBwYXJlbnQgZ3JvdXAgKi9cbiAgICBpc1VuZGl2aWRlZFBvc2l0aW9uPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW4gc29tZSDDlk5vcm0gZm9ybWF0cywgdGhlIHNob3J0IHRleHQgY2FuIGhhdmUgaXQncyBvd24gYWRkaXRpb24sIHNvIHRoZSB0ZXh0IGlzIHNwbGl0IHVwIGluIE9lbm9ybVNob3J0VGV4dCBhbmQgT2Vub3JtU2hvcnRUZXh0QWRkaXRpb24gVG8gc2VyaWFsaXplIHRoaXMsIGVpdGhlciB0aGUgU2hvcnRUZXh0IHByb3BlcnR5IG9mIHRoZSBwYXJlbnQgcG9zaXRpb24gbmVlZHMgdG8gYmUgbnVsbCwgb3IgT2Vub3JtU2hvcnRUZXh0ICcgJyBPZW5vcm1TaG9ydFRleHRBZGRpdGlvbiBuZWVkcyB0byBtYXRjaCB0aGUgU2hvcnRUZXh0LiAqL1xuICAgIG9lbm9ybVNob3J0VGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW4gc29tZSDDlk5vcm0gZm9ybWF0cywgdGhlIHNob3J0IHRleHQgY2FuIGhhdmUgaXQncyBvd24gYWRkaXRpb24sIHNvIHRoZSB0ZXh0IGlzIHNwbGl0IHVwIGluIE9lbm9ybVNob3J0VGV4dCBhbmQgT2Vub3JtU2hvcnRUZXh0QWRkaXRpb24gVG8gc2VyaWFsaXplIHRoaXMsIGVpdGhlciB0aGUgU2hvcnRUZXh0IHByb3BlcnR5IG9mIHRoZSBwYXJlbnQgcG9zaXRpb24gbmVlZHMgdG8gYmUgbnVsbCwgb3IgT2Vub3JtU2hvcnRUZXh0ICcgJyBPZW5vcm1TaG9ydFRleHRBZGRpdGlvbiBuZWVkcyB0byBtYXRjaCB0aGUgU2hvcnRUZXh0LiAqL1xuICAgIG9lbm9ybVNob3J0VGV4dEFkZGl0aW9uPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBpbmRpY2F0ZXMgd2hlcmUgdGhlIGNvbnRlbnQgb2YgdGhpcyBlbGVtZW50IG9yaWdpbmF0ZXMsIGlmIHNldC4gSXQgY29ycmVzcG9uZHMgdG8gJ2hlcmt1bmZ0c2tlbm56ZWljaGVuJyBpbiDDlk5vcm0gKi9cbmV4cG9ydCBlbnVtIE9lbm9ybU9yaWdpbkNvZGVEdG8ge1xuICAgIFVua25vd24gPSBcIlVua25vd25cIixcbiAgICBGcmVlVGV4dCA9IFwiRnJlZVRleHRcIixcbiAgICBBZGRpdGlvbkRlc2NyaXB0aW9uID0gXCJBZGRpdGlvbkRlc2NyaXB0aW9uXCIsXG59XG5cbi8qKiBUaGlzIGVudW1lcmF0aW9uIHJlcHJlc2VudHMgdGhlIHN0YXR1cyBvZiBhbiBhZGRlbmR1bSwgJ05hY2h0cmFnJyBpbiBHZXJtYW4gKi9cbmV4cG9ydCBlbnVtIEFkZGVuZHVtU3RhdHVzRHRvIHtcbiAgICBVbmtub3duID0gXCJVbmtub3duXCIsXG4gICAgUmVjb2duaXplZCA9IFwiUmVjb2duaXplZFwiLFxuICAgIEZpbGVkID0gXCJGaWxlZFwiLFxuICAgIE9mZmVyZWQgPSBcIk9mZmVyZWRcIixcbiAgICBXaXRoZHJhd24gPSBcIldpdGhkcmF3blwiLFxuICAgIFJlamVjdGVkID0gXCJSZWplY3RlZFwiLFxuICAgIFJlamVjdGlvbk9iamVjdGVkID0gXCJSZWplY3Rpb25PYmplY3RlZFwiLFxuICAgIEZvcm1hbGx5QWNrbm93bGVkZ2VkID0gXCJGb3JtYWxseUFja25vd2xlZGdlZFwiLFxuICAgIEFwcHJvdmVkID0gXCJBcHByb3ZlZFwiLFxufVxuXG4vKiogVGhpcyBlbnVtIHJlcHJlc2VudHMgdGhlIGRpZmZlcmVudCB3YXlzIGluIHdoaWNoIGEgY29tcGxlbWVudGluZyBwb3NpdGlvbiB0eXBlIGNhbiBiZSBzcGVjaWZpZWQuIEl0IGlzIHR5cGljYWxseSBvbmx5IHVzZWQgaW4gR0FFQiBleHBvcnRzLCBzaW5jZSBpbiBEYW5nbC5BVkEsIGNvbXBsZW1lbnRpbmcgcG9zaXRpb25zIGFyZSBhbHdheXMgZXhwbGljaXRseSByZWZlcmVuY2VkLiAqL1xuZXhwb3J0IGVudW0gUG9zaXRpb25Db21wbGVtZW50aW5nVHlwZUR0byB7XG4gICAgVW5kZWZpbmVkID0gXCJVbmRlZmluZWRcIixcbiAgICBBbGxQcmV2aW91c01hcmtlZFBvc2l0aW9ucyA9IFwiQWxsUHJldmlvdXNNYXJrZWRQb3NpdGlvbnNcIixcbiAgICBBbGxQcmV2aW91c1Bvc2l0aW9ucyA9IFwiQWxsUHJldmlvdXNQb3NpdGlvbnNcIixcbiAgICBSZWZlcmVuY2VkUG9zaXRpb25zID0gXCJSZWZlcmVuY2VkUG9zaXRpb25zXCIsXG59XG5cbi8qKiBUaGlzIGNsYXNzIGhvbGRzIHByb3BlcnRpZXMgdGhhdCBkZXNjcmliZSByZXRlbnRpb24gdHlwZXMgaW4gcG9zaXRpb24uIFJldGVudGlvbiAvIGhvbGQgb3V0IHVzdWFsbHkgbWVhbnMgdGhhdCBhIHNlcnZpY2UgaXMgcHJvdmlkZWQgYW5kIGtlcHQgYXZhaWxhYmxlIGZvciBhIHNwZWNpZmljIGFtb3VudCBvZiB0aW1lLCBlLmcuIGZlbmNlcyBvbiBhIGNvbnN0cnVjdGlvbiBzaXRlICovXG5leHBvcnQgaW50ZXJmYWNlIFBvc2l0aW9uSG9sZE91dFByb3BlcnRpZXNEdG8ge1xuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogVGhlIGFjdHVhbCB0eXBlICovXG4gICAgaG9sZE91dFR5cGU/OiBIb2xkT3V0VHlwZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGR1cmF0aW9uIG9mIHRoZSBwZXJpb2QgKi9cbiAgICBob2xkT3V0RHVyYXRpb24/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB0aW1lIHVuaXQgb2YgdGhlIHBlcmlvZCAqL1xuICAgIGhvbGRPdXREdXJhdGlvblVuaXQ/OiBIb2xkT3V0RHVyYXRpb25Vbml0RHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBSZWZlcmVuY2VzIHRvIGJhc2UgcG9zaXRpb25zICovXG4gICAgYmFzZVBvc2l0aW9uUmVmZXJlbmNlcz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVHlwZXMgb2YgcmV0ZW50aW9ucyB0byBiZSB1c2VkIGluIHBvc2l0aW9ucyAqL1xuZXhwb3J0IGVudW0gSG9sZE91dFR5cGVEdG8ge1xuICAgIFVua25vd24gPSBcIlVua25vd25cIixcbiAgICBCYXNlID0gXCJCYXNlXCIsXG4gICAgRXh0ZW5zaW9uID0gXCJFeHRlbnNpb25cIixcbiAgICBSZW50ID0gXCJSZW50XCIsXG59XG5cbi8qKiBEdXJhdGlvbiB1c2VkIGluIHJldGVudGlvbiBwb3NpdGlvbnMgKi9cbmV4cG9ydCBlbnVtIEhvbGRPdXREdXJhdGlvblVuaXREdG8ge1xuICAgIFVua25vd24gPSBcIlVua25vd25cIixcbiAgICBNaW51dGVzID0gXCJNaW51dGVzXCIsXG4gICAgSG91cnMgPSBcIkhvdXJzXCIsXG4gICAgRGF5cyA9IFwiRGF5c1wiLFxuICAgIFdlZWtzID0gXCJXZWVrc1wiLFxuICAgIE1vbnRocyA9IFwiTW9udGhzXCIsXG59XG5cbi8qKiBQcmljZSBjYXRhbG9ndWUgZGF0YSByZXByZXNlbnRzIGFzc3VtZWQgb3IgZXN0aW1hdGVkIHByaWNlcyBmcm9tIGEgY2F0YWxvZ3VlIHNvdXJjZSAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmljZUNhdGFsb2d1ZURhdGFEdG8ge1xuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogVGhlIGxvd2VyIGJvdW5kIG9mIHRoZSB1bml0IHByaWNlICovXG4gICAgdW5pdFByaWNlRnJvbT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHVwcGVyIGJvdW5kIG9mIHRoZSB1bml0IHByaWNlICovXG4gICAgdW5pdFByaWNlVG8/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBhdmVyYWdlIHVuaXQgcHJpY2UgKi9cbiAgICB1bml0UHJpY2VBdmVyYWdlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgbG93ZXIgYm91bmQgb2YgdGhlIHdhZ2UgcHJpY2UgKi9cbiAgICB3YWdlUHJpY2VGcm9tPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdXBwZXIgYm91bmQgb2YgdGhlIHdhZ2UgcHJpY2UgKi9cbiAgICB3YWdlUHJpY2VUbz86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGF2ZXJhZ2Ugd2FnZSBwcmljZSAqL1xuICAgIHdhZ2VQcmljZUF2ZXJhZ2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBBbiBFeGVjdXRpb25EZXNjcmlwdGlvbiBpcyB1c2VkIHRvIGdpdmUgbW9yZSBkZXRhaWxzIGZvciBjZXJ0YWluIGl0ZW1zLCBlc3BlY2lhbGx5IG9uIGhvdyB0aGV5IGFyZSBtZWFudCB0byBiZSBleGVjdXRlZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXhlY3V0aW9uRGVzY3JpcHRpb25EdG8gZXh0ZW5kcyBJRWxlbWVudER0byB7XG4gICAgLyoqIEJsb2NrcyB3aXRoaW4gYW4gRXhlY3V0aW9uRGVzY3JpcHRpb24gY29udGFpbiB0aGUgYWN0dWFsIGluZm9ybWF0aW9uLiAqL1xuICAgIGJsb2Nrcz86IE5vdGVUZXh0RHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIExhYmVscyB0aGlzIEV4ZWN1dGlvbkRlc2NyaXB0aW9uLiAqL1xuICAgIGxhYmVsPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBVbmlxdWVseSBpZGVudGlmaWVzIHRoaXMgRXhlY3V0aW9uRGVzY3JpcHRpb24uICovXG4gICAgaWRlbnRpZmllcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBlbGVtZW50VHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFJlcHJlc2VudHMgYW4gZWxlbWVudCB0aGF0IGhvbGRzIHRleHQgaW5mb3JtYXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGVUZXh0RHRvIGV4dGVuZHMgSUVsZW1lbnREdG8ge1xuICAgIC8qKiBJZiB0aGlzIGlzIHNldCB0byB0cnVlLCB0aGlzIHRleHQgaXMgbWVhbnQgdG8gbm90IGJlIHNlZW4gYXMgcGFydCBvZiB0aGUgcmVndWxhciBlbGVtZW50cyBoaWVyYXJjaHkgYnV0IGFzIGEgc3BlY2lhbCBvcGVuaW5nIHRleHQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgcHJvamVjdC4gRm9yIGV4YW1wbGUsIGluIEdBRUIgWE1MLCB0aGlzIHdvdWxkIG1hcCB0byB0aGUgR0FFQi5Bd2FyZC5BZGRUZXh0LiBUeXBpY2FsbHksIHN1Y2ggdGV4dHMgZGVzY3JpYmUgcHJvamVjdC13aWRlIGNvbnRyYWN0dWFsIGRlZmluaXRpb25zLiBJZiB0aGlzIGlzIHNldCB0byB0cnVlLCB0aGlzIE5vdGVUZXh0IHNob3VsZCBiZSBwbGFjZWQgYXQgdGhlIHRvcCBvZiB0aGUgZWxlbWVudHMgaGllcmFyY2h5IGRpcmVjdGx5IGluIHRoZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbi5FbGVtZW50cyBncm91cCwgb3RoZXJ3aXNlIGl0IHdpbGwgbGlrZWx5IG5vdCBiZSB0cmVhdGVkIGNvcnJlY3RseSB3aGVuIGV4cG9ydGluZyB0byBHQUVCLiBZb3UgY2FuIG9ubHkgc2V0IElzT3BlbmluZ1RleHQgb3IgSXNDbG9zaW5nVGV4dCB0byB0cnVlLiAqL1xuICAgIGlzT3BlbmluZ1RleHQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJZiB0aGlzIGlzIHNldCB0byB0cnVlLCB0aGlzIHRleHQgaXMgbWVhbnQgdG8gbm90IGJlIHNlZW4gYXMgcGFydCBvZiB0aGUgcmVndWxhciBlbGVtZW50cyBoaWVyYXJjaHkgYnV0IGFzIGEgc3BlY2lhbCBjbG9zaW5nIHRleHQgYXQgdGhlIGVuZCBvZiB0aGUgcHJvamVjdC4gRm9yIEV4YW1wbGUsIGluIEdBRUIgWE1MLCB0aGlzIHdvdWxkIG1hcCB0byB0aGUgR0FFQi5BZGRUZXh0LiBUeXBpY2FsbHksIHN1Y2ggdGV4dHMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgcHJvamVjdCB3aWRlIGZpbmlzaGluZyBkZXNjcmlwdGlvbnMuIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHRoaXMgTm90ZVRleHQgc2hvdWxkIGJlIHBsYWNlZCBhdCB0aGUgdG9wIG9mIHRoZSBlbGVtZW50cyBoaWVyYXJjaHkgZGlyZWN0bHkgaW4gdGhlIFNlcnZpY2VTcGVjaWZpY2F0aW9uLkVsZW1lbnRzIGdyb3VwLCBvdGhlcndpc2UgaXQgd2lsbCBsaWtlbHkgbm90IGJlIHRyZWF0ZWQgY29ycmVjdGx5IHdoZW4gZXhwb3J0aW5nIHRvIEdBRUIuIFlvdSBjYW4gb25seSBzZXQgSXNPcGVuaW5nVGV4dCBvciBJc0Nsb3NpbmdUZXh0IHRvIHRydWUuICovXG4gICAgaXNDbG9zaW5nVGV4dD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFNob3J0IGRlc2NyaXB0aW9uIGZvciB0aGlzIERlc2NyaXB0aW9uQmFzZSBlbGVtZW50LiAqL1xuICAgIHNob3J0VGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoaXMgRGVzY3JpcHRpb25CYXNlIGVsZW1lbnQgY29udGFpbnMgQnV5ZXIgb3IgQmlkZGVyIGFkZGl0aW9ucyB0byB0aGUgdGV4dC4gKi9cbiAgICBhZGRpdGlvblR5cGU/OiBBZGRpdGlvblR5cGVEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIERldGFpbGVkIGRlc2NyaXB0aW9uIGZvciB0aGlzIERlc2NyaXB0aW9uQmFzZSBlbGVtZW50LiBXaGVuIHRoZSBIdG1sTG9uZ1RleHQgaXMgc2V0LCB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgb3ZlcndyaXR0ZW4gYW5kIGZpbGxlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBwbGFpbiB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBIdG1sIHRleHQuIFZpY2UgdmVyc2EsIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgdGhlIEh0bWxMb25nVGV4dC4gKi9cbiAgICBsb25nVGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBjb250YWlucyB0aGUgSHRtbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgTG9uZ3RleHQuIFdoZW4gdGhlIExvbmdUZXh0IGlzIHNldCwgdGhpcyBpcyBhdXRvbWF0aWNhbGx5IG92ZXJ3cml0dGVuIGFuZCBmaWxsZWQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgSHRtbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgcGxhaW50ZXh0LiBWaWNlIHZlcnNhLCBzZXR0aW5nIHRoaXMgcHJvcGVydHkgb3ZlcnJpZGVzIHRoZSBMb25nVGV4dC4gR0FFQiA5MCBhbmQgR0FFQiAyMDAwIGV4cG9ydHMgZG8gbm90IHN1cHBvcnQgYW55IGltYWdlIGZ1bmN0aW9uYWxpdHkuIEluIEdBRUIgWE1MLCBvbmx5IGltYWdlcyB0aGF0IHVzZSBhbiBlbWJlZGRlZCBCYXNlNjQgZGF0YSB1cmkgYXJlIGV4cG9ydGVkLCByZWd1bGFyIHVybCByZWZlcmVuY2VzIGFyZSBjbGVhcmVkIGJlZm9yZSB3cml0dGVuIG91dC4gKi9cbiAgICBodG1sTG9uZ1RleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYW4gb3B0aW9uYWwgaW50ZXJuYWwgaWRlbnRpZmllciB0aGF0IG1heSBiZSB1c2VkIHRvIGFkZCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIHRoaXMgTm90ZVRleHQuIEl0IGlzIG5vdCBzdXBwb3J0ZWQgaW4gR0FFQiBpbXBvcnQgb3IgZXhwb3J0LiAqL1xuICAgIGlkZW50aWZpZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgcmVwcmVzZW50cyBhIHN0YW5kYXJkaXplZCBkZXNjcmlwdGlvbi4gVGhpcyBtZWFucyB0aGF0IGluc3RlYWQgb2Ygc29sZWx5IHJlbHlpbmcgb24gdGV4dHMgdG8gZGVzY3JpYmUgYSBzZXJ2aWNlLCBleHRlcm5hbCBzdGFuZGFyZHMgYW5kIGRlZmluaXRpb25zIGFyZSByZWZlcmVuY2VkIGZvciBhIGNvbW1vbiB1bmRlcnN0YW5kaW5nLiAqL1xuICAgIHN0YW5kYXJkaXplZERlc2NyaXB0aW9uPzogU3RhbmRhcmRpemVkRGVzY3JpcHRpb25EdG8gfCB1bmRlZmluZWQ7XG4gICAgZWxlbWVudFR5cGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYW4gaWRlbnRpZmllciBzcGVjaWZpYyBmb3IgdGhpcyBkZXNjcmlwdGlvbi4gU29tZSBleGNoYW5nZSBmb3JtYXRzLCBsaWtlIEdBRUIgWE1MLCB1c2UgaXQgdG8gaWRlbnRpZnkgZGVzY3JpcHRpb25zLiBJdCdzIGRpZmZlcmVudCB0byBhbiBlbGVtZW50cyBpZGVudGlmaWVyIGluIHRoYXQgaXQgc2hvdWxkIG9ubHkgYXBwbHkgdG8gdGhlIGRlc2NyaXB0aW9uIGNvbXBvbmVudCwgbWVhbmluZyB0aGUgdGV4dCBpdHNlbGYuICovXG4gICAgZGVzY3JpcHRpb25JZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBjbGFzcyBtb2RlbHMgc3BlY2lhbCBwcm9wZXJ0aWVzIHRoYXQgb25seSBhcHBseSB0byBzb21lIGV4Y2hhbmdlIHNjZW5hcmlvcyB3aGVyZSDDlk5vcm0gaXMgdXNlZC4gSXQgaXMgc3BlY2lhbCBmb3IgTm90ZVRleHRzLiAqL1xuICAgIG9lbm9ybU5vdGVUZXh0UHJvcGVydGllcz86IE9lbm9ybU5vdGVUZXh0UHJvcGVydGllc0R0byB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBoYXNCaWRkZXJDb21tZW50SW5IdG1sTG9uZ1RleHQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBjbGFzcyBtb2RlbHMgc3BlY2lhbCBwcm9wZXJ0aWVzIHRoYXQgb25seSBhcHBseSB0byBzb21lIGV4Y2hhbmdlIHNjZW5hcmlvcyB3aGVyZSDDlk5vcm0gaXMgdXNlZC4gSXQgaXMgc3BlY2lhbCBmb3IgTm90ZVRleHRzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZW5vcm1Ob3RlVGV4dFByb3BlcnRpZXNEdG8ge1xuICAgIC8qKiBUaGlzIGluZGljYXRlcyB3aGVyZSB0aGUgY29udGVudCBvZiB0aGlzIGVsZW1lbnQgb3JpZ2luYXRlcywgaWYgc2V0LiBJdCBjb3JyZXNwb25kcyB0byAnaGVya3VuZnRza2VubnplaWNoZW4nIGluIMOWTm9ybSAqL1xuICAgIG9yaWdpbkNvZGU/OiBPZW5vcm1PcmlnaW5Db2RlRHRvIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBpcyBhIGdyb3VwaW5nIElFbGVtZW50IHRoYXQgaG9sZHMgb3RoZXIgSUVsZW1lbnRzIHdpdGhpbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZVNwZWNpZmljYXRpb25Hcm91cER0byBleHRlbmRzIElFbGVtZW50RHRvIHtcbiAgICAvKiogVGhlIGhvdXJseSB3YWdlIHRoYXQgaXMgdXNlZCB3aXRoaW4gdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZS4gV2lsbCBiZSBwcm9wYWdhdGVkIHRvIGNoaWxkIGVsZW1lbnRzLiAqL1xuICAgIHJlYWRvbmx5IHByb2plY3RIb3VybHlXYWdlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdGF4IHJhdGUgdGhhdCBpcyB1c2VkIHdpdGhpbiB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlLiBXaWxsIGJlIHByb3BhZ2F0ZWQgdG8gY2hpbGQgZWxlbWVudHMuICovXG4gICAgcHJvamVjdFRheFJhdGU/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBwcmljZSBjb21wb25lbnRzIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgcHJvamVjdC4gVGhleSBhcmUgaWdub3JlZCBkdXJpbmcgSnNvbiBkZXNlcmlhbGl6YXRpb24gYmVjYXVzZSB0aGV5IHdpbGwgYmUgc2V0IGZyb20gdGhlIHBhcmVudCBwcm9qZWN0LiAqL1xuICAgIHByb2plY3RQcmljZUNvbXBvbmVudHM/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIEl0ZW1OdW1iZXJTY2hlbWEgdGhhdCBpcyB1c2VkIHdpdGhpbiB0aGlzIHByb2plY3QuICovXG4gICAgcHJvamVjdEl0ZW1OdW1iZXJTY2hlbWE/OiBJdGVtTnVtYmVyU2NoZW1hRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgSUVsZW1lbnRzIHdpdGhpbiB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlLiAqL1xuICAgIGVsZW1lbnRzPzogSUVsZW1lbnREdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGxhYmVsIHVzZWQgaW4gdGhlIHBhcmVudCBQcm9qZWN0IHRvIG1hcmsgbGFib3VyIHRpbWUsIGUuZy4gXCJIb3Vyc1wiIG9yIFwiU3R1bmRlblwiLiAqL1xuICAgIHJlYWRvbmx5IHByb2plY3RMYWJvdXJUaW1lTGFiZWw/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGVyZSBhcmUgY2hpbGQgSUVsZW1lbnRzIHRoYXQgaGF2ZSBjb25mbGljdGluZywgZHVwbGljYXRlZCBJdGVtTnVtYmVycyBvciBpZiBhbnkgY2hpbGQgRWxlbWVudENvbnRhaW5lckJhc2UgZWxlbWVudHMgdGhlbXNlbHZlcyBjb250YWluIGR1cGxpY2F0ZSBJdGVtTnVtYmVyIHMuIFdpbGwgYWx3YXlzIGluZGljYXRlIGZhbHNlIHdoZW4gdG9sZCB0byBpZ25vcmUgZHVwbGljYXRlIGl0ZW0gbnVtYmVycy4gKi9cbiAgICByZWFkb25seSBjb250YWluc0R1cGxpY2F0ZUl0ZW1OdW1iZXJzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZXJlIGFyZSBjaGlsZCBJRWxlbWVudHMgdGhhdCBoYXZlIGNvbmZsaWN0aW5nLCBkdXBsaWNhdGVkIElkcyBvciBpZiBhbnkgY2hpbGQgRWxlbWVudENvbnRhaW5lckJhc2UgZWxlbWVudHMgdGhlbXNlbHZlcyBjb250YWluIGR1cGxpY2F0ZSBJZCBzLiBXaWxsIGFsd2F5cyBpbmRpY2F0ZSBmYWxzZSB3aGVuIHRvbGQgdG8gaWdub3JlIGR1cGxpY2F0ZSBpdGVtIG51bWJlcnMuICovXG4gICAgcmVhZG9ubHkgY29udGFpbnNEdXBsaWNhdGVFbGVtZW50SWRzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGUgaWYgZHVwbGljYXRlZCBJdGVtTnVtYmVycyB3aXRoaW4gY2hpbGQgZWxlbWVudHMgYXJlIHRvIGJlIGlnbm9yZWQuIFdpbGwgbm90IHBlcmZvcm0gY2hlY2tzIGZvciBkdXBsaWNhdGVzIGlmIHllcy4gKi9cbiAgICBpZ25vcmVEdXBsaWNhdGVJdGVtTnVtYmVycz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHRoZSBQcm9qZWN0Q2F0YWxvZ3VlcyBwcm9wZXJ0eSB3aWxsIG5vdCBiZSBwcm9wYWdhdGVkIHRvIGNoaWxkIGVsZW1lbnRzLiBUaGlzIGlzIHVzZWZ1bCBpbiBtYXBwaW5nIHNjZW5hcmlvcywgd2hlcmUgeW91IHdhbnQgdG8gZGlzYWJsZSBwcm9wYWdhdGlvbiBmb3IgbXVsdGlwbGUgY2hhbmdlcywgYW5kIG9ubHkgZW5hYmxlIGl0IG9uY2UgeW91IGhhdmUgbWFwcGVkIGFsbCBwcm9wZXJ0aWVzICovXG4gICAgaWdub3JlUHJvamVjdENhdGFsb2d1ZVByb3BhZ2F0aW9uPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGUgaWYgZHVwbGljYXRlZCBJZHMgd2l0aGluIGNoaWxkIGVsZW1lbnRzIGFyZSB0byBiZSBpZ25vcmVkLiBXaWxsIG5vdCBwZXJmb3JtIGNoZWNrcyBmb3IgZHVwbGljYXRlcyBpZiB5ZXMuICovXG4gICAgaWdub3JlRHVwbGljYXRlRWxlbWVudElkcz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFByaWNlIGNvbXBvc2l0aW9uIGJ5IHRheCByYXRlLiAqL1xuICAgIHRvdGFsUHJpY2VHcm9zc0J5VGF4UmF0ZT86IEdyb3NzUHJpY2VDb21wb25lbnREdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW50ZXJuYWxseSB1c2VkIHRvIGluZGljYXRlIHRoYXQgYSBwcm9wYWdhdGlvbiBpcyBjdXJyZW50bHkgZG9uZSwgdGhpcyBpcyBkb25lIHRvIG5vdCByZWNhbGN1bGF0ZSBldmVyeSBzaW5nbGUgcmVzdWx0IGZyb20gYSBsb3Qgb2YgY2hhbmdlcyB3aGVuIGl0IGlzIHN1ZmZpY2llbnQgdG8gY2FsY3VsYXRlIHRoZSB0b3RhbCBwcmljZSBhdCBvbmNlLiAqL1xuICAgIGlnbm9yZUNoaWxkUHJpY2VVcGRhdGVzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogTmV0IHByaWNlIGFmdGVyIGFwcGxpZWQgZGVkdWN0aW9ucy4gKi9cbiAgICByZWFkb25seSBkZWR1Y3RlZFByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBGYWN0b3Igb2YgYXBwbGllZCBkZWR1Y3Rpb25zIHRvIHRoZSB0b3RhbCBwcmljZS4gRm9yIGV4YW1wbGUsIFwiMC4wM1wiIG1lYW5zIHRoYXQgYSAzJSBkZWR1Y3Rpb24gaXMgdG8gYmUgYXBwbGllZC4gKi9cbiAgICBkZWR1Y3Rpb25GYWN0b3I/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBleGFjdCBhbW91bnQgb2YgdGhlIGRpc2NvdW50IGFzIGFuIGFic29sdXRlIHZhbHVlLiBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcmVhc29ucywgc2V0dGluZyB0aGlzIHZhbHVlIHdpbGwgYWxzbyBzZXQgYSBjYWxjdWxhdGVkIHZhbHVlIHRvIERlZHVjdGlvbkZhY3Rvciwgd2hpY2ggd2lsbCBhbHNvIGJlIHVwZGF0ZWQgaW4gY2FzZSB0aGUgdG90YWwgcHJpY2UgaXMgY2hhbmdlZCB0byByZWZsZWN0IGEgcmVsYXRpdmUgdmFsdWUgb2YgdGhlIGFic29sdXRlIGRpc2NvdW50IHN1bS4gKi9cbiAgICBhYnNvbHV0ZURlZHVjdGlvbj86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogV2lsbCByZXR1cm4gdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZSdzIHRvdGFsIHByaWNlLiAqL1xuICAgIHJlYWRvbmx5IHRvdGFsUHJpY2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB0b3RhbCBncm9zcyBwcmljZSBmb3IgdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZSBpbmNsdWRpbmcgYWxsIGNoaWxkIGVsZW1lbnRzLiAqL1xuICAgIHJlYWRvbmx5IHRvdGFsUHJpY2VHcm9zcz86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVG90YWwgZ3Jvc3MgcHJpY2UgYWZ0ZXIgYXBwbGllZCBkZWR1Y3Rpb25zLiAqL1xuICAgIHJlYWRvbmx5IHRvdGFsUHJpY2VHcm9zc0RlZHVjdGVkPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgdGhlIFByaWNlVHlwZSBvZiB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlLCB3aGV0aGVyIGl0IHNob3VsZCBmYWN0b3IgaW50byB0b3RhbCBjb3N0cyBvciBub3QuICovXG4gICAgcHJpY2VUeXBlPzogUHJpY2VUeXBlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBEZXNjcmlwdGlvbiBmb3IgdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwLiAqL1xuICAgIHNob3J0VGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoaXMgc2VydmljZSBzcGVjaWZpY2F0aW9uIGdyb3VwIGlzIGNvbW1pc3Npb25lZCAoYW5kIHRoZXJlZm9yZSBzaG91bGQgYmUgZXhlY3V0ZWQpLCBwb3N0cG9uZWQgZm9yIGxhdGVyIG9yIHVuZGVmaW5lZC4gKi9cbiAgICBjb21pc3Npb25TdGF0dXM/OiBDb21pc3Npb25TdGF0dXNEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBJdGVtTnVtYmVyIGZvciB0aGlzIElOdW1iZXJlZEVsZW1lbnQgaW50ZXJmYWNlLiAqL1xuICAgIGl0ZW1OdW1iZXI/OiBJdGVtTnVtYmVyRHRvIHwgdW5kZWZpbmVkO1xuICAgIGVsZW1lbnRUeXBlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGluZGljYXRlcyBpZiB0aGlzIGdyb3VwIGlzIHRoZSBwYXJlbnQgb2YgYSBsb3QuIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB3b3JraW5nIHdpdGggbG90cy4gKi9cbiAgICByZWFkb25seSBpc0xvdD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIHRoaXMgZ3JvdXAgaXMgYW4gYWx0ZXJuYXRpdmUgZm9yIGEgYmFzZSBncm91cCwgdGhlbiB0aGlzIHByb3BlcnR5IHNob3VsZCBwb2ludCB0byB0aGUgaWQgb2YgdGhlIGdyb3VwIGluIHRoaXMgc2VydmljZSBzcGVjaWZpY2F0aW9uIHRoYXQgaXQgY2FuIHJlcGxhY2UuIElmIHRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgZ3JvdXAgdG8gYSBiYXNlIGdyb3VwLCB0aGUgUHJpY2VUeXBlIHNob3VsZCB0eXBpY2FsbHkgYmUgc2V0IHRvIFwiV2l0aG91dFRvdGFsXCIgc28gdGhpcyBncm91cCBkb2VzIG5vdCBmYWN0b3IgaW50byB0b3RhbCBjb3N0cy4gVGhlIFByaWNlVHlwZSBpcyBub3QgY2hhbmdlZCB3aGVuIHRoaXMgcHJvcGVydHkgaXMgc2V0ICovXG4gICAgYWx0ZXJuYXRpdmVUbz86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICB2MUNvbXBhdGliaWxpdHlQcmljZVR5cGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgY2xhc3MgbW9kZWxzIHNwZWNpYWwgcHJvcGVydGllcyB0aGF0IG9ubHkgYXBwbHkgdG8gc29tZSBleGNoYW5nZSBzY2VuYXJpb3Mgd2hlcmUgw5ZOb3JtIGlzIHVzZWQuICovXG4gICAgb2Vub3JtUHJvcGVydGllcz86IE9lbm9ybVByb3BlcnRpZXNEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYSB6ZXJvIGJhc2VkIGhpZXJhcmNoeSBsZXZlbC4gSXQncyBzZXQgYXV0b21hdGljYWxseSB3aGVuIHVzZWQgaW4gdGhlIGNvbnRleHQgb2YgYSBQcm9qZWN0LCBhbmQgY2FuIGJlIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGhpZXJhcmNoeSBsZXZlbCBvZiB0aGUgY3VycmVudCBlbGVtZW50LiAqL1xuICAgIGhpZXJhcmNoeUxldmVsPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGluZGljYXRlcywgaWYgdGhpcyBlbGVtZW50IGlzIHBhcnQgb2YgYW4gYWRkZW5kdW0gYW4sIGlmIHllcywgd2l0aCB3aGF0IHN0YXR1cy4gKi9cbiAgICBhZGRlbmR1bVN0YXR1cz86IEFkZGVuZHVtU3RhdHVzRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGludGVybmFsbHkgdXNlZCBkdXJpbmcgbWFwcGluZyBvcGVyYXRpb25zIHRvIHRlbXBvcmFyaWx5IGhvbGQgaW5mb3JtYXRpb24gYWJvdXQgcmVtb3ZlZCBJdGVtTnVtYmVyU2NoZW1hcy4gVGhvc2Ugc2NoZW1hcyBhcmUgc2V0IHRvIG51bGwgZHVyaW5nIHRoZSBtYXBwaW5nIHByb2Nlc3MgdG8gZW5zdXJlIHRoYXQgc2NoZW1hcyBpbiBlbGVtZW50cyBoaWdoZXIgdXAgaW4gdGhlIGhpZXJhcmNoeSBhcmUgY29ycmVjdGx5IHBhc3NlZCBkb3duIHRvIGNoaWxkIGVsZW1lbnRzLiAqL1xuICAgIGl0ZW1OdW1iZXJTY2hlbWFNYXBwaW5nT3BlcmF0aW9uPzogSXRlbU51bWJlclNjaGVtYU1hcHBpbmdPcGVyYXRpb24gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYW4gb3B0aW9uYWwgcHJvcGVydHkgdGhhdCBjYW4gYmUgdXNlZCB0b2dldGhlciB3aXRoIEFsdGVybmF0aXZlVG8uIElmIHRoaXMgaXMgc2V0LCB5b3UgY2FuIGluZGljYXRlIHdoaWNoIGFsdGVybmF0aXZlIGdyb3VwIGEgc3BlY2lmaWMgZ3JvdXAgaXMgYXNzaWduZWQgdG8uIFRoYXQgd2F5LCBpZiB5b3Ugc3BlY2lmaXkgbXVsdGlwbGUgYWx0ZXJuYXRpdmUgU2VydmljZVNwZWNpZmljYXRpb25Hcm91cHMgd2l0aCB0aGUgc2FtZSBBbHRlcm5hdGl2ZUlkZW50aWZpZXIsIHlvdSBjYW4gaW5kaWNhdGUgdGhhdCB0byByZXBsYWNlIGEgc2luZ2xlIGJhc2UgU2VydmljZVNwZWNpZmljYXRpb25Hcm91cCwgbXVsdGlwbGUgYWx0ZXJuYXRpdmUgU2VydmljZVNwZWNpZmljYXRpb25Hcm91cHMgc2hvdWxkIGJlIHVzZWQuIFRoaXMgcHJvcGVydHkgaXMgbm90IGNoZWNrZWQgb3IgbWFuYWdlZCBhdXRvbWF0aWNhbGx5LCBzbyBpdCBpcyBwb3NzaWJsZSBmb3IgdGhpcyBwcm9wZXJ0eSB0byBiZWNvbWUgaW52YWxpZCwgYnkgZm9yIGV4YW1wbGUgc2V0dGluZyB0aGlzIHByb3BlcnR5IGJ1dCBub3Qgc2V0dGluZyBhIGJhc2UgZ3JvdXAgdmlhIEFsdGVybmF0aXZlVG8uICovXG4gICAgYWx0ZXJuYXRpdmVJZGVudGlmaWVyPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGFuIG9wdGlvbmFsIHByb3BlcnR5IHRoYXQgY2FuIGJlIHVzZWQgdG9nZXRoZXIgd2l0aCBBbHRlcm5hdGl2ZVRvIGFuZCBBbHRlcm5hdGl2ZUdyb3VwSWRlbnRpZmllci4gSWYgdGhpcyBpcyBzZXQsIHlvdSBjYW4gaW5kaWNhdGUgd2hpY2ggYWx0ZXJuYXRpdmUgZ3JvdXAgYSBzcGVjaWZpYyBncm91cCBpcyBhc3NpZ25lZCB0by4gVGhhdCB3YXksIHlvdSBjYW4gc3BlY2lmeSB0aGUgaWQgKGluIGludGVnZXIgZm9ybWF0KSBmb3IgdGhlIGFsdGVybmF0aXZlIGdyb3VwIHRoaXMgZ3JvdXAgYmVsb25ncyB0by4gSXQncyBkaWZmZXJlbnQgdG8gQWx0ZXJuYXRpdmVJZGVudGlmaWVyIGluIHRoYXQgdGhlIG90aGVyIHByb3BlcnR5IGRlc2NyaWJlcyB0aGUgaWQgb2YgdGhlIGdyb3VwLCB3aGlsZSB0aGlzIHByb3BlcnR5IGhlcmUgZGVzY3JpYmVzIHRoZSBncm91cCBpdHNlbGYuIElmIGEgZ3JvdXAgb25seSBoYXMgc2V0IEFsdGVybmF0aXZlR3JvdXBJZGVudGlmaWVyIGJ1dCBub3QgQWx0ZXJuYXRpdmVJZGVudGlmaWVyLCB0aGVuIGl0IGxpa2VseSBpcyBhIGJhc2UgZ3JvdXAgZm9yIGEgc3BlY2lmaWMgZ3JvdXAuIFRoaXMgcHJvcGVydHkgaXMgbm90IGNoZWNrZWQgb3IgbWFuYWdlZCBhdXRvbWF0aWNhbGx5LCBzbyBpdCBpcyBwb3NzaWJsZSBmb3IgdGhpcyBwcm9wZXJ0eSB0byBiZWNvbWUgaW52YWxpZCwgYnkgZm9yIGV4YW1wbGUgc2V0dGluZyB0aGlzIHByb3BlcnR5IGJ1dCBub3Qgc2V0dGluZyBhIGJhc2UgZ3JvdXAgdmlhIEFsdGVybmF0aXZlVG8uICovXG4gICAgYWx0ZXJuYXRpdmVHcm91cElkZW50aWZpZXI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGlzIHVzZWQgaW4gYW4gRWxlbWVudENvbnRhaW5lckJhc2UgdG8gaG9sZCB0aGUgcHJpY2UgY29tcG9zaXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIEdyb3NzUHJpY2VDb21wb25lbnREdG8ge1xuICAgIC8qKiBUaGlzIGNvbXBvbmVudHMgdGF4IHJhdGUuICovXG4gICAgdGF4UmF0ZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyB0aGUgZmFjdG9yIG9mIGFwcGxpZWQgZGVkdWN0aW9ucyBmb3IgdGhpcyBjb21wb25lbnQgKi9cbiAgICBkZWR1Y3Rpb25GYWN0b3I/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB0b3RhbCBuZXQgcHJpY2UgZm9yIGFsbCBjb21wb25lbnRzIG9mIGEgZ2l2ZW4gdGF4IHJhdGUuICovXG4gICAgdG90YWxOZXQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSByZXN1bHRpbmcgcHJpY2UgY29tcG9uZW50IGFmdGVyIGFwcGxpZWQgZGVkdWN0aW9ucyAqL1xuICAgIHJlYWRvbmx5IHRvdGFsRGVkdWN0ZWQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB0b3RhbCB0YXggYW1vdW50IGZvciBhbGwgY29tcG9uZW50cyBvZiBhIGdpdmVuIHRheCByYXRlLiAqL1xuICAgIHJlYWRvbmx5IHRvdGFsVGF4PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdG90YWwgZ3Jvc3MgcHJpY2UgZm9yIGFsbCBjb21wb25lbnRzIG9mIGEgZ2l2ZW4gdGF4IHJhdGUuICovXG4gICAgcmVhZG9ubHkgdG90YWxHcm9zcz86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHRvdGFsIGdyb3NzIHByaWNlIGZvciBhbGwgY29tcG9uZW50cyBvZiBhIGdpdmVuIHRheCByYXRlLCBhZnRlciBhcHBsaWVkIGRlZHVjdGlvbnMuICovXG4gICAgcmVhZG9ubHkgdG90YWxHcm9zc0RlZHVjdGVkPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdG90YWwgdGF4IGFtb3VudCBmb3IgYWxsIGNvbXBvbmVudHMgb2YgYSBnaXZlbiB0YXggcmF0ZSwgYWZ0ZXIgYXBwbGllZCBkZWR1Y3Rpb25zLiAqL1xuICAgIHJlYWRvbmx5IHRvdGFsVGF4RGVkdWN0ZWQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGNsYXNzIG1vZGVscyBzcGVjaWFsIHByb3BlcnRpZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHNvbWUgZXhjaGFuZ2Ugc2NlbmFyaW9zIHdoZXJlIMOWTm9ybSBpcyB1c2VkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZW5vcm1Qcm9wZXJ0aWVzRHRvIHtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgd2hlcmUgdGhlIGNvbnRlbnQgb2YgdGhpcyBlbGVtZW50IG9yaWdpbmF0ZXMsIGlmIHNldC4gSXQgY29ycmVzcG9uZHMgdG8gJ2hlcmt1bmZ0c2tlbm56ZWljaGVuJyBpbiDDlk5vcm0gKi9cbiAgICBvcmlnaW5Db2RlPzogT2Vub3JtT3JpZ2luQ29kZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBtYXJrcyBpZiB0aGUgb3BlbmluZyB0ZXh0cyB3aXRoaW4gdGhpcyBlbGVtZW50IGFyZSBjb25zaWRlcmVkIGZyZWUgdGV4dC4gSXQgY29ycmVzcG9uZHMgdG8gJ3ZvcmJlbWVya3VuZ3NrZW5uemVpY2hlbicgaW4gw5ZOb3JtLiAqL1xuICAgIG9wZW5pbmdUZXh0SXNGcmVlVGV4dD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGFic3RyYWN0IGNsYXNzIGlzIHVzZWQgaW50ZXJuYWxseSB0byBob2xkIHJlc3VsdHMgYWJvdXQgYW4gaXRlbSBudW1iZXIgc2NoZW1hIHJlbW92YWwgb3BlcmF0aW9uLiBJdGVtIG51bWJlciBzY2hlbWFzIGFyZSByZW1vdmVkIGR1cmluZyB0aGUgbWFwcGluZyBwcm9jZXNzIHRvIGFsbG93IHRvcC1kb3duIHByb3BhZ2F0aW9uIGFmdGVyIGNvbnZlcnNpb24sIGJ1dCBhcmUgdGhlbiBhZGRlZCBiYWNrIHRvIHRoZSBEVE9zIHRvIHByZXNlcnZlIHRoZSBvcmlnaW5hbCBzb3VyY2UuICovXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1OdW1iZXJTY2hlbWFNYXBwaW5nT3BlcmF0aW9uIHtcbn1cblxuLyoqIEluZGljYXRlcyBhIFNlcnZpY2VTcGVjaWZpY2F0aW9uJ3MgZXhjaGFuZ2UgcGhhc2UsIGJhc2VkIG9uIHRoZSBHQUVCIGV4Y2hhbmdlIHBoYXNlcy4gKi9cbmV4cG9ydCBlbnVtIEV4Y2hhbmdlUGhhc2VEdG8ge1xuICAgIFVuZGVmaW5lZCA9IFwiVW5kZWZpbmVkXCIsXG4gICAgQmFzZSA9IFwiQmFzZVwiLFxuICAgIENvc3RFc3RpbWF0ZSA9IFwiQ29zdEVzdGltYXRlXCIsXG4gICAgT2ZmZXJSZXF1ZXN0ID0gXCJPZmZlclJlcXVlc3RcIixcbiAgICBPZmZlciA9IFwiT2ZmZXJcIixcbiAgICBTaWRlT2ZmZXIgPSBcIlNpZGVPZmZlclwiLFxuICAgIEdyYW50ID0gXCJHcmFudFwiLFxufVxuXG4vKiogSW5kaWNhdGVzIHdoZXJlIGEgc2VydmljZSBzcGVjaWZpY2F0aW9uIHdhcyBvcmlnaW5hbGx5IGNyZWF0ZWQuICovXG5leHBvcnQgZW51bSBPcmlnaW5EdG8ge1xuICAgIFNlbGYgPSBcIlNlbGZcIixcbiAgICBHYWViOTAgPSBcIkdhZWI5MFwiLFxuICAgIEdhZWIyMDAwID0gXCJHYWViMjAwMFwiLFxuICAgIEdhZWJYbWwgPSBcIkdhZWJYbWxcIixcbiAgICBPZW5vcm0gPSBcIk9lbm9ybVwiLFxuICAgIFJlYiA9IFwiUmViXCIsXG4gICAgU2lhID0gXCJTaWFcIixcbn1cblxuLyoqIEhvbGRzIGdsb2JhbCBwcmljZSBpbmZvcm1hdGlvbiBmb3IgYSBTZXJ2aWNlU3BlY2lmaWNhdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmljZUluZm9ybWF0aW9uRHRvIHtcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqIFRoZSBhbW91bnQgb2YgY3VycmVuY3kgcGVyIG9uZSBob3VyIG9mIG1hbnVhbCBsYWJvdXIgd29yayBpbiB0aGlzIHByb2plY3QuICovXG4gICAgaG91cmx5V2FnZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGZpbmFsLCB0b3RhbCBwcmljZSB3aWxsIGJlIGRlZHVjdGVkIGJ5IHRoaXMgcmF0ZS4gKi9cbiAgICBkZWR1Y3Rpb25GYWN0b3I/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgZ2l2ZW4gd2hlbiB0aGVyZSBpcyBvbmx5IG9uZSBmbGF0IHByaWNlIGZvciB0aGUgd2hvbGUgc2VydmljZSBzcGVjaWZpY2F0aW9uLiAqL1xuICAgIGZsYXRTdW0/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEdsb2JhbCB0YXggcmF0ZSBmb3IgdGhlIHByb2plY3QuIE5vdGUgdGhhdCBjZXJ0YWluIGVsZW1lbnRzIG1heSBoYXZlIGEgZGlmZmVyZW50LCBzcGVjaWZpYyB0YXggcmF0ZS4gKi9cbiAgICB0YXhSYXRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHByb3BlcnR5IGluZGljYXRlcyBpZiB0aGUgVGF4UmF0ZSBwcm9wZXJ0eSBpcyBhY3R1YWxseSB6ZXJvICgwKSBvciBpZiBpdCdzIGp1c3QgdW5zZXQuIFRoZSBUYXhSYXRlIGlzIGEgbm9uLW51bGxhYmxlIHByb3BlcnR5LCBzbyBpdCBjYW4ndCBiZSBudWxsIGFuZCB0aGVyZWZvcmUgYSBkaXN0aW5jdGlvbiBiZXR3ZWVuIHVuc2V0IGFuZCB6ZXJvIHJlbGllcyBvbiB0aGlzIGFkZGl0aW9uYWwgcHJvcGVydHkuIFdoZW4gZXhwb3J0aW5nIHRvIEdBRUIsIHRoaXMgY2FuIGJlIHVzZWQgZS5nLiB0byBkZWNpZGUgd2hldGhlciBvciBub3QgdGhlIHRheCByYXRlIHNob3VsZCBiZSBzZXJpYWxpemVkLiBUaGlzIHByb3BlcnR5IGlzIGF1dG9tdGljYWxseSBzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgVGF4UmF0ZSBpcyBzZXQgdG8gYW55IHZhbHVlLCBldmVuIHplcm8uIElmIHRoZSBUYXhSYXRlIGlzIG5vdCBzZXQgdG8gemVybywgdGhpcyBwcm9wZXJ0eSB3aWxsIGFsd2F5cyByZXR1cm4gZmFsc2UgYW5kIGNhbiBub3QgYmUgc2V0IHRvIHRydWUuICovXG4gICAgaGFzVW5zZXRUYXhSYXRlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVHJhZGUgZGlzY291bnRzIGZvciBvZmZlcmVkIGluIHRoaXMgU2VydmljZVNwZWNpZmljYXRpb24uICovXG4gICAgdHJhZGVEaXNjb3VudHM/OiBUcmFkZURpc2NvdW50RHRvW10gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGNsYXNzIGhvbGRzIGluZm9ybWF0aW9uIGFib3V0IG9mZmVyZWQgdHJhZGUgZGlzY291bnRzIChTa29udG8gaW4gR2VybWFuKSAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFkZURpc2NvdW50RHRvIHtcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqIFRoZSBhbW91bnQgb2YgZGF5cyBmb3IgaG93IGxvbmcgYSBkZWNsYXJlZCB0cmFkZSBkaXNjb3VudCBhcHBsaWVzLiBNdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyLCBuZWdhdGl2ZSB2YWx1ZXMgd2lsbCBiZSBpZ25vcmVkIGFuZCBub3Qgc2V0LiAqL1xuICAgIGRlYWRsaW5lPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgcmF0ZSBvZiB0aGUgdHJhZGUgZGlzY291bnQuICovXG4gICAgcmF0ZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgY2xhc3MgZG9lcyBub3QgcmVwcmVzZW50IGEgdHlwaWNhbCBgVGltZVNwYW5gIGJ1dCBoYXMgYSBzY2FsYXIgdmFsdWUgaW50IER1cmF0aW9uIGFuZCBhIER1cmF0aW9uVW5pdCBVbml0IHRvIHJlcHJlc2VudCBkdXJhdGlvbnMgYXMgdHlwaWNhbGx5IHVzZWQgaW4gY29udHJhY3RzLCBlLmcuIDUgTW9udGhzICovXG5leHBvcnQgaW50ZXJmYWNlIFdhcnJhbnR5RHVyYXRpb25EdG8ge1xuICAgIC8qKiBUaGUgc2NhbGFyIHZhbHVlIG9mIHRoZSBkdXJhdGlvbi4gVGhpcyB2YWx1ZSBtdXN0IGJlIGVxdWFsIHRvIG9yIGJpZ2dlciB0aGFuIHplcm8gKD49IDApLiBOZWdhdGl2ZSB2YWx1ZXMgY2FuIG5vdCBiZSBzZXQgYW5kIHdpbGwgYmUgaWdub3JlZC4gKi9cbiAgICBkdXJhdGlvbj86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHVuaXQgb2YgdGhlIGR1cmF0aW9uICovXG4gICAgdW5pdD86IER1cmF0aW9uVW5pdER0byB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgZW51bWVyYXRpb24gcmVwcmVzZW50cyB0aGUgdW5pdCBvZiBhIGR1cmF0aW9uICovXG5leHBvcnQgZW51bSBEdXJhdGlvblVuaXREdG8ge1xuICAgIE1vbnRocyA9IFwiTW9udGhzXCIsXG4gICAgWWVhcnMgPSBcIlllYXJzXCIsXG59XG5cbi8qKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgcHJvcGVydGllcyB1c2VkIGluIGNvbW1lcmNlIGV4Y2hhbmdlIHNjZW5hcmlvcyAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbkNvbW1lcmNlUHJvcGVydGllc0R0byB7XG4gICAgLyoqIFRoZSBkYXRlIHVudGlsIHRoZSBwcmljZSBpcyB2YWxpZCBvciBmaXhlZC4gKi9cbiAgICBmaXhlZFByaWNlRGF0ZT86IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBkYXRlIG9mIHRoZSBkZWxpdmVyeSB2b3VjaGVyIG5vdGUuICovXG4gICAgZGVsaXZlcnlWb3VjaGVyRGF0ZT86IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBhY3R1YWwgZGF0ZSBvZiBkZWxpdmVyeS4gKi9cbiAgICBkZWxpdmVyeURhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgbnVtYmVyIG9mIHRoZSBpbnF1aXJ5LCB1c3VhbGx5IGluIGEgY29udGV4dCBvZiBvZmZlciByZXF1ZXN0cy4gKi9cbiAgICBpbnF1aXJ5TnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgbnVtYmVyIG9mIHRoZSBvZmZlciwgdXN1YWxseSBpbiBhIGNvbnRleHQgb2YgYW4gb2ZmZXIuICovXG4gICAgb2ZmZXJOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBvcmRlciBudW1iZXIsIHVzdWFsbHkgaW4gdGhlIGNvbnRleHQgb2YgYSBncmFudCBvciBjb250cmFjdC4gKi9cbiAgICBvcmRlck51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIG9yZGVyIGNvbmZpcm1hdGlvbiBudW1iZXIgKi9cbiAgICBvcmRlckNvbmZpcm1hdGlvbk51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIG51bWJlciBvZiB0aGUgZGVsaXZlcnksIGUuZy4gb24gdGhlIGRlbGl2ZXJ5IG5vdGUgdm91Y2hlci4gKi9cbiAgICBkZWxpdmVyeU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHJlZmVyZW5jZSBudW1iZXIgb2YgdGhlIGN1c3RvbWVyIC8gYnV5ZXIuICovXG4gICAgY3VzdG9tZXJSZWZlcmVuY2VOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSByZWZlcmVuY2UgbnVtYmVyIG9mIHRoZSBzdXBwbGllciAvIGJpZGRlci4gKi9cbiAgICBzdXBwbGllclJlZmVyZW5jZU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHR5cGUgb2Ygc2hpcHBtZW50LiAqL1xuICAgIHNoaXBwaW5nVHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHR5cGUgb2YgdGhlIHByaWNlIGlucXVpcnkuICovXG4gICAgaW5xdWlyeVR5cGU/OiBDb21tZXJjZUlucXVpcnlUeXBlRHRvIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBlbnVtIHJlcHJlc2VudHMgdHlwZXMgb2YgcHJpY2UgaW5xdWlyaWVzICovXG5leHBvcnQgZW51bSBDb21tZXJjZUlucXVpcnlUeXBlRHRvIHtcbiAgICBVbmtub3duID0gXCJVbmtub3duXCIsXG4gICAgUHJvamVjdCA9IFwiUHJvamVjdFwiLFxuICAgIEltbWVkaWF0ZSA9IFwiSW1tZWRpYXRlXCIsXG4gICAgRXhoaWJpdGlvbiA9IFwiRXhoaWJpdGlvblwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsZW1lbnRpbmdQb3NpdGlvbkRhdGEge1xuICAgIHBvc2l0aW9uc0J5SWQ/OiB7IFtrZXk6IHN0cmluZ106IFBvc2l0aW9uRHRvOyB9IHwgdW5kZWZpbmVkO1xuICAgIGJhc2VQb3NpdGlvbnM/OiB7IFtrZXk6IHN0cmluZ106IFBvc2l0aW9uRHRvOyB9IHwgdW5kZWZpbmVkO1xuICAgIGNvbXBsZW1lbnRpbmdQb3NpdGlvbklkcz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogQSBQcm9qZWN0IGNvbnRhaW5zIGFsbCByZWxldmFudCBpbmZvcm1hdGlvbiBmb3IgYSBjb25zdHJ1Y3Rpb24gcHJvamVjdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdER0byB7XG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGlzIHByb3BlcnR5IGNvbnRyb2xzIHRoZSBhY2N1cmFjeSBvZiBhbGwgcHJpY2UgcHJvcGVydGllcywgbWVhbmluZyBob3cgbWFueSBkZWNpbWFsIHBsYWNlcyBhcmUgcHJlc2VydmVkIGluIGNhbGN1bGF0aW9ucy4gSXQgZGVmYXVsdHMgdG8gREVGQVVMVF9QUklDRV9BQ0NVUkFDWS4gUGxlYXNlIHNlZSB0aGUgRGFuZ2wuQVZBIGRvY3VtZW50YXRpb24gZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gYWJvdXQgZGVjaW1hbCBwcmVjaXNpb24uIElmIFVuaXRQcmljZUFjY3VyYWN5IGlzIHNldCwgdGhlbiB0aGlzIHByb3BlcnR5IGlzIGlnbm9yZWQgZm9yIHVuaXQgcHJpY2VzLiAqL1xuICAgIHByaWNlQWNjdXJhY3k/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgcHJvcGVydHkgY29udHJvbHMgdGhlIGFjY3VyYWN5IG9mIHBvc2l0aW9uIHVuaXQgcHJpY2UgcHJvcGVydGllcywgbWVhbmluZyBob3cgbWFueSBkZWNpbWFsIHBsYWNlcyBhcmUgcHJlc2VydmVkIGluIGNhbGN1bGF0aW9ucy4gUGxlYXNlIHNlZSB0aGUgRGFuZ2wuQVZBIGRvY3VtZW50YXRpb24gZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gYWJvdXQgZGVjaW1hbCBwcmVjaXNpb24uIFRoaXMgY2FuIGJlIHNlcGFyYXRlbHkgc2V0IGZyb20gUHJpY2VBY2N1cmFjeSwgYW5kIGl0IG9ubHkgY29udHJvbHMgdGhlIGFjY3VyYWN5IG9mIHRoZSB1bml0IHByaWNlIG9mIHBvc2l0aW9ucywgbm90IHRoZSB0b3RhbCBwcmljZS4gSXQgZGVmYXVsdHMgdG8gbnVsbCwgd2hpY2ggbWVhbnMgdGhlIHN0YW5kYXJkIFByaWNlQWNjdXJhY3kgaXMgdXNlZCBmb3IgdW5pdCBwcmljZXMuICovXG4gICAgdW5pdFByaWNlQWNjdXJhY3k/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgZm9yY2VzIHRvdGFsIHByaWNlcyB0byBiZSB0aGUgc3RyaWN0IHByb2R1Y3Qgb2YgcXVhbnRpdGllcyB0aW1lcyB1bml0IHByaWNlIGluIHBvc2l0aW9ucy4gSXQgaXMgZW5hYmxlZCBieSBkZWZhdWx0LiBJZiB0aGlzIGlzIGRpc2FibGVkLCBib3RoIHRoZSB1bml0IHByaWNlIGFuZCB0aGUgdG90YWwgcHJpY2Ugb2YgcG9zaXRpb25zIGlzIGNhbGN1bGF0ZWQgZnJvbSB0aGUgbm9uLXJvdW5kZWQgdmFsdWVzLiBQbGVhc2Ugc2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciBhIG1vcmUgZGV0YWlsZWQgZXhwbGFuYXRpb24gb2YgdGhpcyBzZXR0aW5nLiAqL1xuICAgIGZvcmNlU3RyaWN0VG90YWxzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBjb250cm9scyB0aGUgcm91bmRpbmcgbW9kZSBvZiBhbGwgcHJpY2UgcHJvcGVydGllcywgbWVhbmluZyBob3cgcm91bmRpbmcgb2YgZGVjaW1hbCBwbGFjZXMgaXMgcGVyZm9ybWVkIGluIHByaWNlIGNhbGN1bGF0aW9ucy4gSXQgZGVmYXVsdHMgdG8gREVGQVVMVF9ST1VORElOR19NT0RFLiBQbGVhc2Ugc2VlIHRoZSBEYW5nbC5BVkEgZG9jdW1lbnRhdGlvbiBmb3IgZnVydGhlciBpbmZvcm1hdGlvbiBhYm91dCBkZWNpbWFsIHByZWNpc2lvbi4gKi9cbiAgICBwcmljZVJvdW5kaW5nTW9kZT86IFByaWNlUm91bmRpbmdNb2RlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgUHJvamVjdEluZm9ybWF0aW9uIGNvbnRhaW5zIGluZm9ybWF0aW9uIHRoYXQgZGVzY3JpYmVzIHRoZSBwcm9qZWN0IGFuZCBpdHMgc3RydWN0dXJlLiAqL1xuICAgIHByb2plY3RJbmZvcm1hdGlvbj86IFByb2plY3RJbmZvcm1hdGlvbkR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIFNlcnZpY2VTcGVjaWZpY2F0aW9ucyBpbiB0aGlzIFByb2plY3QuICovXG4gICAgc2VydmljZVNwZWNpZmljYXRpb25zPzogU2VydmljZVNwZWNpZmljYXRpb25EdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyB1c2VkIHRvIHN0b3JlIHRoZSBHQUVCIFhNTCBJZCB3aXRoaW4gdGhpcyBQcm9qZWN0LiBUaGlzIGRhdGEgaXMgbm90IHVzZWQgZm9yIGFueSBjYWxjdWxhdGlvbnMgb3IgZXZhbHVhdGlvbnMgYnV0IG9ubHkgZm9yIEdBRUIgc2VyaWFsaXphdGlvbiBhbmQgZGVzZXJpYWxpemF0aW9uLiAqL1xuICAgIGdhZWJYbWxJZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LWRhdGEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWF2YS9zcmMvbGliL2F2YS10cmVlL3RyZWUvbW9kZWwvY29udGV4dC1tZW51LWRhdGEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElFbGVtZW50RHRvIH0gZnJvbSAnLi9hdmEtbW9kZWxzJztcblxuZXhwb3J0IHR5cGUgQ29udGV4dE1lbnVEYXRhVHlwZSA9IHtcbiAgcG9zaXRpb246IHsgeDogc3RyaW5nOyB5OiBzdHJpbmcgfTtcbiAgbm9kZTogSUVsZW1lbnREdG87XG59O1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tdmlldy1saW5lLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL21vZGVsL2Z1bmN0aW9uLXZpZXctbGluZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUVsZW1lbnREdG8gfSBmcm9tICcuL2F2YS1tb2RlbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElGdW5jdGlvblZpZXdMaW5lIHtcbiAgbmFtZTogc3RyaW5nO1xuICBmdW5jOiAoZWxlbWVudDogSUVsZW1lbnREdG8pID0+IGJvb2xlYW47XG4gIHZpZXc6IElWaWV3TGluZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVmlld0xpbmUge1xuICBpY29uTmFtZT86IHN0cmluZztcbiAgaWNvbkNvbG9yPzogc3RyaW5nO1xuICB0ZXh0Qm9sZD86IHN0cmluZztcbiAgdGV4dENvbG9yPzogc3RyaW5nO1xufVxuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ExchangePhaseDto, ItemNumberSchemaTierTypeDto, ItemNumberTypeDto, OriginDto, PriceRoundingModeDto, PriceTypeDto } from './ava-models';
|
|
2
|
+
import { ModeViewType } from './tree-mode.model';
|
|
3
|
+
export { ModeViewType, ExchangePhaseDto, ItemNumberSchemaTierTypeDto, ItemNumberTypeDto, OriginDto, PriceRoundingModeDto, PriceTypeDto };
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWF2YS9zcmMvbGliL2F2YS10cmVlL3RyZWUvbW9kZWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGdCQUFnQixFQUloQiwyQkFBMkIsRUFDM0IsaUJBQWlCLEVBRWpCLFNBQVMsRUFFVCxvQkFBb0IsRUFDcEIsWUFBWSxFQUliLE1BQU0sY0FBYyxDQUFDO0FBS3RCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCxPQUFPLEVBVUwsWUFBWSxFQUtaLGdCQUFnQixFQUNoQiwyQkFBMkIsRUFDM0IsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxvQkFBb0IsRUFDcEIsWUFBWSxFQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFeGNoYW5nZVBoYXNlRHRvLFxuICBFeGVjdXRpb25EZXNjcmlwdGlvbkR0byxcbiAgSUVsZW1lbnREdG8sXG4gIEl0ZW1OdW1iZXJEdG8sXG4gIEl0ZW1OdW1iZXJTY2hlbWFUaWVyVHlwZUR0byxcbiAgSXRlbU51bWJlclR5cGVEdG8sXG4gIE5vdGVUZXh0RHRvLFxuICBPcmlnaW5EdG8sXG4gIFBvc2l0aW9uRHRvLFxuICBQcmljZVJvdW5kaW5nTW9kZUR0byxcbiAgUHJpY2VUeXBlRHRvLFxuICBQcm9qZWN0RHRvLFxuICBTZXJ2aWNlU3BlY2lmaWNhdGlvbkR0byxcbiAgU2VydmljZVNwZWNpZmljYXRpb25Hcm91cER0b1xufSBmcm9tICcuL2F2YS1tb2RlbHMnO1xuaW1wb3J0IHsgQ29udGV4dE1lbnVEYXRhVHlwZSB9IGZyb20gJy4vY29udGV4dC1tZW51LWRhdGEubW9kZWwnO1xuaW1wb3J0IHsgSUZ1bmN0aW9uVmlld0xpbmUsIElWaWV3TGluZSB9IGZyb20gJy4vZnVuY3Rpb24tdmlldy1saW5lLm1vZGVsJztcbmltcG9ydCB7IFNlbGVjdGVkRWxlbWVudCB9IGZyb20gJy4vc2VsZWN0aW5nLm1vZGVsJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uVHlwZSB9IGZyb20gJy4vdGFibGVDb2x1bW5UeXBlJztcbmltcG9ydCB7IE1vZGVWaWV3VHlwZSB9IGZyb20gJy4vdHJlZS1tb2RlLm1vZGVsJztcblxuZXhwb3J0IHtcbiAgUHJvamVjdER0byxcbiAgU2VydmljZVNwZWNpZmljYXRpb25EdG8sXG4gIElFbGVtZW50RHRvLFxuICBQb3NpdGlvbkR0byxcbiAgRXhlY3V0aW9uRGVzY3JpcHRpb25EdG8sXG4gIE5vdGVUZXh0RHRvLFxuICBTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwRHRvLFxuICBJdGVtTnVtYmVyRHRvLFxuICBTZWxlY3RlZEVsZW1lbnQsXG4gIE1vZGVWaWV3VHlwZSxcbiAgVGFibGVDb2x1bW5UeXBlLFxuICBJRnVuY3Rpb25WaWV3TGluZSxcbiAgSVZpZXdMaW5lLFxuICBDb250ZXh0TWVudURhdGFUeXBlLFxuICBFeGNoYW5nZVBoYXNlRHRvLFxuICBJdGVtTnVtYmVyU2NoZW1hVGllclR5cGVEdG8sXG4gIEl0ZW1OdW1iZXJUeXBlRHRvLFxuICBPcmlnaW5EdG8sXG4gIFByaWNlUm91bmRpbmdNb2RlRHRvLFxuICBQcmljZVR5cGVEdG9cbn07XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW5nLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL21vZGVsL3NlbGVjdGluZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTZWxlY3RlZEVsZW1lbnQge1xuICBlbGVtZW50SWQ6IHN0cmluZztcbiAgY2hpbGRyZW4/OiBTZWxlY3RlZEVsZW1lbnRbXSB8IG51bGw7XG59XG5cbmV4cG9ydCB0eXBlIFNlbGVjdGluZ0VsZW1lbnRzVHlwZSA9IHtcbiAgZWxlbWVudElkOiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogU2VsZWN0aW5nRWxlbWVudHNUeXBlW107XG4gIHBhcmVudD86IFNlbGVjdGluZ0VsZW1lbnRzVHlwZSB8IG51bGw7XG4gIGNoZWNrZWQ/OiBib29sZWFuO1xuICBpbmRldGVybWluYXRlPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIFNlbGVjdGluZ0VsZW1lbnRzT2JqZWN0VHlwZSA9IHtcbiAgW2VsZW1lbnRJZDogc3RyaW5nXTogU2VsZWN0aW5nRWxlbWVudHNUeXBlO1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVDb2x1bW5UeXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL21vZGVsL3RhYmxlQ29sdW1uVHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgVGFibGVDb2x1bW5UeXBlID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGFsaWduPzogc3RyaW5nO1xuICBudW1iZXJGb3JtYXQ/OiBzdHJpbmc7XG59O1xuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export var ModeViewType;
|
|
2
|
+
(function (ModeViewType) {
|
|
3
|
+
ModeViewType["Tree"] = "Tree";
|
|
4
|
+
ModeViewType["List"] = "List";
|
|
5
|
+
ModeViewType["Table"] = "Table";
|
|
6
|
+
})(ModeViewType || (ModeViewType = {}));
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1tb2RlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL21vZGVsL3RyZWUtbW9kZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxZQUlYO0FBSkQsV0FBWSxZQUFZO0lBQ3RCLDZCQUFhLENBQUE7SUFDYiw2QkFBYSxDQUFBO0lBQ2IsK0JBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSlcsWUFBWSxLQUFaLFlBQVksUUFJdkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBNb2RlVmlld1R5cGUge1xuICBUcmVlID0gJ1RyZWUnLFxuICBMaXN0ID0gJ0xpc3QnLFxuICBUYWJsZSA9ICdUYWJsZSdcbn1cbiJdfQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ElementIconNamePipe {
|
|
4
|
+
transform(element) {
|
|
5
|
+
switch (element.elementTypeDiscriminator) {
|
|
6
|
+
case 'NoteTextDto':
|
|
7
|
+
return 'subject';
|
|
8
|
+
case 'ExecutionDescriptionDto':
|
|
9
|
+
return 'event';
|
|
10
|
+
case 'ServiceSpecificationGroupDto':
|
|
11
|
+
return 'folder_open';
|
|
12
|
+
case 'PositionDto':
|
|
13
|
+
return 'add';
|
|
14
|
+
default:
|
|
15
|
+
return '';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElementIconNamePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
19
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.1", ngImport: i0, type: ElementIconNamePipe, name: "elementIconName" }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElementIconNamePipe, decorators: [{
|
|
22
|
+
type: Pipe,
|
|
23
|
+
args: [{
|
|
24
|
+
name: 'elementIconName'
|
|
25
|
+
}]
|
|
26
|
+
}] });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1pY29uLW5hbWUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9saWIvYXZhLXRyZWUvdHJlZS9waXBlcy9lbGVtZW50LWljb24tbmFtZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQU9wRCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFNBQVMsQ0FBQyxPQUFvQjtRQUM1QixRQUFRLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQ3pDLEtBQUssYUFBYTtnQkFDaEIsT0FBTyxTQUFTLENBQUM7WUFDbkIsS0FBSyx5QkFBeUI7Z0JBQzVCLE9BQU8sT0FBTyxDQUFDO1lBQ2pCLEtBQUssOEJBQThCO2dCQUNqQyxPQUFPLGFBQWEsQ0FBQztZQUN2QixLQUFLLGFBQWE7Z0JBQ2hCLE9BQU8sS0FBSyxDQUFDO1lBQ2Y7Z0JBQ0UsT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQzs4R0FkVSxtQkFBbUI7NEdBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFIL0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsaUJBQWlCO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSUVsZW1lbnREdG8gfSBmcm9tICcuLi9tb2RlbCc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2VsZW1lbnRJY29uTmFtZSdcbn0pXG5leHBvcnQgY2xhc3MgRWxlbWVudEljb25OYW1lUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oZWxlbWVudDogSUVsZW1lbnREdG8pOiBzdHJpbmcge1xuICAgIHN3aXRjaCAoZWxlbWVudC5lbGVtZW50VHlwZURpc2NyaW1pbmF0b3IpIHtcbiAgICAgIGNhc2UgJ05vdGVUZXh0RHRvJzpcbiAgICAgICAgcmV0dXJuICdzdWJqZWN0JztcbiAgICAgIGNhc2UgJ0V4ZWN1dGlvbkRlc2NyaXB0aW9uRHRvJzpcbiAgICAgICAgcmV0dXJuICdldmVudCc7XG4gICAgICBjYXNlICdTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwRHRvJzpcbiAgICAgICAgcmV0dXJuICdmb2xkZXJfb3Blbic7XG4gICAgICBjYXNlICdQb3NpdGlvbkR0byc6XG4gICAgICAgIHJldHVybiAnYWRkJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ElementItemNumberPipe {
|
|
4
|
+
transform(element) {
|
|
5
|
+
switch (element.elementTypeDiscriminator) {
|
|
6
|
+
case 'ServiceSpecificationGroupDto':
|
|
7
|
+
return element.itemNumber?.stringRepresentation || '';
|
|
8
|
+
case 'PositionDto':
|
|
9
|
+
return element.itemNumber?.stringRepresentation || '';
|
|
10
|
+
default:
|
|
11
|
+
return '';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElementItemNumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
15
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.1", ngImport: i0, type: ElementItemNumberPipe, name: "elementItemNumber" }); }
|
|
16
|
+
}
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElementItemNumberPipe, decorators: [{
|
|
18
|
+
type: Pipe,
|
|
19
|
+
args: [{
|
|
20
|
+
name: 'elementItemNumber'
|
|
21
|
+
}]
|
|
22
|
+
}] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1pdGVtLW51bWJlci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1hdmEvc3JjL2xpYi9hdmEtdHJlZS90cmVlL3BpcGVzL2VsZW1lbnQtaXRlbS1udW1iZXIucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFPcEQsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxTQUFTLENBQUMsT0FBb0I7UUFDNUIsUUFBUSxPQUFPLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUN6QyxLQUFLLDhCQUE4QjtnQkFDakMsT0FBUSxPQUF3QyxDQUFDLFVBQVUsRUFBRSxvQkFBb0IsSUFBSSxFQUFFLENBQUM7WUFDMUYsS0FBSyxhQUFhO2dCQUNoQixPQUFRLE9BQXVCLENBQUMsVUFBVSxFQUFFLG9CQUFvQixJQUFJLEVBQUUsQ0FBQztZQUN6RTtnQkFDRSxPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDOzhHQVZVLHFCQUFxQjs0R0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUhqQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxtQkFBbUI7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJRWxlbWVudER0bywgUG9zaXRpb25EdG8sIFNlcnZpY2VTcGVjaWZpY2F0aW9uR3JvdXBEdG8gfSBmcm9tICcuLi9tb2RlbCc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2VsZW1lbnRJdGVtTnVtYmVyJ1xufSlcbmV4cG9ydCBjbGFzcyBFbGVtZW50SXRlbU51bWJlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKGVsZW1lbnQ6IElFbGVtZW50RHRvKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKGVsZW1lbnQuZWxlbWVudFR5cGVEaXNjcmltaW5hdG9yKSB7XG4gICAgICBjYXNlICdTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwRHRvJzpcbiAgICAgICAgcmV0dXJuIChlbGVtZW50IGFzIFNlcnZpY2VTcGVjaWZpY2F0aW9uR3JvdXBEdG8pLml0ZW1OdW1iZXI/LnN0cmluZ1JlcHJlc2VudGF0aW9uIHx8ICcnO1xuICAgICAgY2FzZSAnUG9zaXRpb25EdG8nOlxuICAgICAgICByZXR1cm4gKGVsZW1lbnQgYXMgUG9zaXRpb25EdG8pLml0ZW1OdW1iZXI/LnN0cmluZ1JlcHJlc2VudGF0aW9uIHx8ICcnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxufVxuIl19
|