@dangl/angular-ava 1.1.2-beta0019 → 1.1.2-beta0029
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/esm2022/lib/ava-tree/invoice/invoice-display/invoice-display.component.mjs +44 -3
- package/esm2022/lib/ava-tree/tree/model/ava-models.mjs +8 -1
- package/esm2022/lib/ava-tree/tree/model/invoice-models.mjs +9 -10
- package/esm2022/lib/ava-tree/tree/pipes/invoice-attachment-mime-type.pipe.mjs +34 -0
- package/esm2022/lib/version.mjs +7 -7
- package/fesm2022/dangl-angular-ava.mjs +92 -17
- package/fesm2022/dangl-angular-ava.mjs.map +1 -1
- package/lib/ava-tree/invoice/invoice-display/invoice-display.component.d.ts +5 -1
- package/lib/ava-tree/tree/model/ava-models.d.ts +10 -19
- package/lib/ava-tree/tree/model/invoice-models.d.ts +113 -70
- package/lib/ava-tree/tree/pipes/invoice-attachment-mime-type.pipe.d.ts +8 -0
- package/package.json +1 -1
|
@@ -19,6 +19,13 @@ export var ItemNumberTypeDto;
|
|
|
19
19
|
ItemNumberTypeDto["Numeric"] = "Numeric";
|
|
20
20
|
ItemNumberTypeDto["Alphanumeric"] = "Alphanumeric";
|
|
21
21
|
})(ItemNumberTypeDto || (ItemNumberTypeDto = {}));
|
|
22
|
+
/** This enum represents the alignment value for a tier in an ItemNumberSchema. It is not used anywhere for computations at the moment, and is mostly an informational value. */
|
|
23
|
+
export var ItemNumberSchemaTierAlignmentDto;
|
|
24
|
+
(function (ItemNumberSchemaTierAlignmentDto) {
|
|
25
|
+
ItemNumberSchemaTierAlignmentDto["Undefined"] = "Undefined";
|
|
26
|
+
ItemNumberSchemaTierAlignmentDto["Left"] = "Left";
|
|
27
|
+
ItemNumberSchemaTierAlignmentDto["Right"] = "Right";
|
|
28
|
+
})(ItemNumberSchemaTierAlignmentDto || (ItemNumberSchemaTierAlignmentDto = {}));
|
|
22
29
|
/** Specifies the type an ItemNumberSchemaTier represents. For example, a tier may indicate to be used for positions or for groups. */
|
|
23
30
|
export var ItemNumberSchemaTierTypeDto;
|
|
24
31
|
(function (ItemNumberSchemaTierTypeDto) {
|
|
@@ -196,4 +203,4 @@ export var CommerceInquiryTypeDto;
|
|
|
196
203
|
CommerceInquiryTypeDto["Immediate"] = "Immediate";
|
|
197
204
|
CommerceInquiryTypeDto["Exhibition"] = "Exhibition";
|
|
198
205
|
})(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==
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXZhL3NyYy9saWIvYXZhLXRyZWUvdHJlZS9tb2RlbC9hdmEtbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdCQUF3QjtBQUN4QixtQkFBbUI7QUFDbkIsMkhBQTJIO0FBQzNILG9CQUFvQjtBQUNwQix3QkFBd0I7QUFFeEIsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQix1Q0FBdUM7QUFFdkMsNkVBQTZFO0FBQzdFLE1BQU0sQ0FBTixJQUFZLG9CQUlYO0FBSkQsV0FBWSxvQkFBb0I7SUFDNUIseUNBQWlCLENBQUE7SUFDakIsdUNBQWUsQ0FBQTtJQUNmLDJDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFKVyxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBSS9CO0FBOElELGlEQUFpRDtBQUNqRCxNQUFNLENBQU4sSUFBWSxpQkFHWDtBQUhELFdBQVksaUJBQWlCO0lBQ3pCLHdDQUFtQixDQUFBO0lBQ25CLGtEQUE2QixDQUFBO0FBQ2pDLENBQUMsRUFIVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBRzVCO0FBRUQsZ0xBQWdMO0FBQ2hMLE1BQU0sQ0FBTixJQUFZLGdDQUlYO0FBSkQsV0FBWSxnQ0FBZ0M7SUFDeEMsMkRBQXVCLENBQUE7SUFDdkIsaURBQWEsQ0FBQTtJQUNiLG1EQUFlLENBQUE7QUFDbkIsQ0FBQyxFQUpXLGdDQUFnQyxLQUFoQyxnQ0FBZ0MsUUFJM0M7QUFFRCxzSUFBc0k7QUFDdEksTUFBTSxDQUFOLElBQVksMkJBTVg7QUFORCxXQUFZLDJCQUEyQjtJQUNuQyxzREFBdUIsQ0FBQTtJQUN2Qiw4Q0FBZSxDQUFBO0lBQ2Ysb0RBQXFCLENBQUE7SUFDckIsOENBQWUsQ0FBQTtJQUNmLDBDQUFXLENBQUE7QUFDZixDQUFDLEVBTlcsMkJBQTJCLEtBQTNCLDJCQUEyQixRQU10QztBQUVELG1GQUFtRjtBQUNuRixNQUFNLENBQU4sSUFBWSxxQkFNWDtBQU5ELFdBQVkscUJBQXFCO0lBQzdCLDRDQUFtQixDQUFBO0lBQ25CLHdDQUFlLENBQUE7SUFDZixnREFBdUIsQ0FBQTtJQUN2Qix3Q0FBZSxDQUFBO0lBQ2Ysd0RBQStCLENBQUE7QUFDbkMsQ0FBQyxFQU5XLHFCQUFxQixLQUFyQixxQkFBcUIsUUFNaEM7QUFFRCxpTkFBaU47QUFDak4sTUFBTSxDQUFOLElBQVksWUFZWDtBQVpELFdBQVksWUFBWTtJQUNwQiwyQ0FBMkIsQ0FBQTtJQUMzQixtREFBbUMsQ0FBQTtJQUNuQyx5REFBeUMsQ0FBQTtJQUN6QyxtSEFBbUcsQ0FBQTtJQUNuRyxpRUFBaUQsQ0FBQTtJQUNqRCxxQ0FBcUIsQ0FBQTtJQUNyQiw2RkFBNkUsQ0FBQTtJQUM3RSw2Q0FBNkIsQ0FBQTtJQUM3QiwyQ0FBMkIsQ0FBQTtJQUMzQiw2RUFBNkQsQ0FBQTtJQUM3RCx1REFBdUMsQ0FBQTtBQUMzQyxDQUFDLEVBWlcsWUFBWSxLQUFaLFlBQVksUUFZdkI7QUFFRCxpU0FBaVM7QUFDalMsTUFBTSxDQUFOLElBQVksbUJBS1g7QUFMRCxXQUFZLG1CQUFtQjtJQUMzQixrREFBMkIsQ0FBQTtJQUMzQixrRUFBMkMsQ0FBQTtJQUMzQywwREFBbUMsQ0FBQTtJQUNuQyxzRkFBK0QsQ0FBQTtBQUNuRSxDQUFDLEVBTFcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUs5QjtBQTBJRCwyWEFBMlg7QUFDM1gsTUFBTSxDQUFOLElBQVksZ0JBU1g7QUFURCxXQUFZLGdCQUFnQjtJQUN4Qix1Q0FBbUIsQ0FBQTtJQUNuQix5Q0FBcUIsQ0FBQTtJQUNyQixxQ0FBaUIsQ0FBQTtJQUNqQix5Q0FBcUIsQ0FBQTtJQUNyQixpREFBNkIsQ0FBQTtJQUM3QixpRUFBNkMsQ0FBQTtJQUM3QywrQkFBVyxDQUFBO0lBQ1gsNkNBQXlCLENBQUE7QUFDN0IsQ0FBQyxFQVRXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFTM0I7QUF3TkQsMENBQTBDO0FBQzFDLE1BQU0sQ0FBTixJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDdkIsZ0NBQWEsQ0FBQTtJQUNiLHNDQUFtQixDQUFBO0lBQ25CLHdDQUFxQixDQUFBO0FBQ3pCLENBQUMsRUFKVyxlQUFlLEtBQWYsZUFBZSxRQUkxQjtBQVlELHVHQUF1RztBQUN2RyxNQUFNLENBQU4sSUFBWSx3QkFLWDtBQUxELFdBQVksd0JBQXdCO0lBQ2hDLCtDQUFtQixDQUFBO0lBQ25CLHlDQUFhLENBQUE7SUFDYix5Q0FBYSxDQUFBO0lBQ2IsaURBQXFCLENBQUE7QUFDekIsQ0FBQyxFQUxXLHdCQUF3QixLQUF4Qix3QkFBd0IsUUFLbkM7QUE0QkQseUlBQXlJO0FBQ3pJLE1BQU0sQ0FBTixJQUFZLGtCQUtYO0FBTEQsV0FBWSxrQkFBa0I7SUFDMUIsNkNBQXVCLENBQUE7SUFDdkIsbURBQTZCLENBQUE7SUFDN0IsNkNBQXVCLENBQUE7SUFDdkIseUNBQW1CLENBQUE7QUFDdkIsQ0FBQyxFQUxXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFLN0I7QUF1QkQsc0RBQXNEO0FBQ3RELE1BQU0sQ0FBTixJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDdkIsc0NBQW1CLENBQUE7SUFDbkIsd0NBQXFCLENBQUE7SUFDckIsOENBQTJCLENBQUE7QUFDL0IsQ0FBQyxFQUpXLGVBQWUsS0FBZixlQUFlLFFBSTFCO0FBRUQseURBQXlEO0FBQ3pELE1BQU0sQ0FBTixJQUFZLFlBR1g7QUFIRCxXQUFZLFlBQVk7SUFDcEIsdUNBQXVCLENBQUE7SUFDdkIsNkNBQTZCLENBQUE7QUFDakMsQ0FBQyxFQUhXLFlBQVksS0FBWixZQUFZLFFBR3ZCO0FBRUQsNEVBQTRFO0FBQzVFLE1BQU0sQ0FBTixJQUFZLGNBR1g7QUFIRCxXQUFZLGNBQWM7SUFDdEIscUNBQW1CLENBQUE7SUFDbkIsbURBQWlDLENBQUE7QUFDckMsQ0FBQyxFQUhXLGNBQWMsS0FBZCxjQUFjLFFBR3pCO0FBZ0dELDZIQUE2SDtBQUM3SCxNQUFNLENBQU4sSUFBWSxtQkFJWDtBQUpELFdBQVksbUJBQW1CO0lBQzNCLDBDQUFtQixDQUFBO0lBQ25CLDRDQUFxQixDQUFBO0lBQ3JCLGtFQUEyQyxDQUFBO0FBQy9DLENBQUMsRUFKVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBSTlCO0FBRUQsa0ZBQWtGO0FBQ2xGLE1BQU0sQ0FBTixJQUFZLGlCQVVYO0FBVkQsV0FBWSxpQkFBaUI7SUFDekIsd0NBQW1CLENBQUE7SUFDbkIsOENBQXlCLENBQUE7SUFDekIsb0NBQWUsQ0FBQTtJQUNmLHdDQUFtQixDQUFBO0lBQ25CLDRDQUF1QixDQUFBO0lBQ3ZCLDBDQUFxQixDQUFBO0lBQ3JCLDREQUF1QyxDQUFBO0lBQ3ZDLGtFQUE2QyxDQUFBO0lBQzdDLDBDQUFxQixDQUFBO0FBQ3pCLENBQUMsRUFWVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBVTVCO0FBRUQsZ09BQWdPO0FBQ2hPLE1BQU0sQ0FBTixJQUFZLDRCQUtYO0FBTEQsV0FBWSw0QkFBNEI7SUFDcEMsdURBQXVCLENBQUE7SUFDdkIseUZBQXlELENBQUE7SUFDekQsNkVBQTZDLENBQUE7SUFDN0MsMkVBQTJDLENBQUE7QUFDL0MsQ0FBQyxFQUxXLDRCQUE0QixLQUE1Qiw0QkFBNEIsUUFLdkM7QUFnQkQsa0RBQWtEO0FBQ2xELE1BQU0sQ0FBTixJQUFZLGNBS1g7QUFMRCxXQUFZLGNBQWM7SUFDdEIscUNBQW1CLENBQUE7SUFDbkIsK0JBQWEsQ0FBQTtJQUNiLHlDQUF1QixDQUFBO0lBQ3ZCLCtCQUFhLENBQUE7QUFDakIsQ0FBQyxFQUxXLGNBQWMsS0FBZCxjQUFjLFFBS3pCO0FBRUQsMkNBQTJDO0FBQzNDLE1BQU0sQ0FBTixJQUFZLHNCQU9YO0FBUEQsV0FBWSxzQkFBc0I7SUFDOUIsNkNBQW1CLENBQUE7SUFDbkIsNkNBQW1CLENBQUE7SUFDbkIseUNBQWUsQ0FBQTtJQUNmLHVDQUFhLENBQUE7SUFDYix5Q0FBZSxDQUFBO0lBQ2YsMkNBQWlCLENBQUE7QUFDckIsQ0FBQyxFQVBXLHNCQUFzQixLQUF0QixzQkFBc0IsUUFPakM7QUE0SkQsNEZBQTRGO0FBQzVGLE1BQU0sQ0FBTixJQUFZLGdCQVFYO0FBUkQsV0FBWSxnQkFBZ0I7SUFDeEIsMkNBQXVCLENBQUE7SUFDdkIsaUNBQWEsQ0FBQTtJQUNiLGlEQUE2QixDQUFBO0lBQzdCLGlEQUE2QixDQUFBO0lBQzdCLG1DQUFlLENBQUE7SUFDZiwyQ0FBdUIsQ0FBQTtJQUN2QixtQ0FBZSxDQUFBO0FBQ25CLENBQUMsRUFSVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBUTNCO0FBRUQsc0VBQXNFO0FBQ3RFLE1BQU0sQ0FBTixJQUFZLFNBUVg7QUFSRCxXQUFZLFNBQVM7SUFDakIsMEJBQWEsQ0FBQTtJQUNiLDhCQUFpQixDQUFBO0lBQ2pCLGtDQUFxQixDQUFBO0lBQ3JCLGdDQUFtQixDQUFBO0lBQ25CLDhCQUFpQixDQUFBO0lBQ2pCLHdCQUFXLENBQUE7SUFDWCx3QkFBVyxDQUFBO0FBQ2YsQ0FBQyxFQVJXLFNBQVMsS0FBVCxTQUFTLFFBUXBCO0FBc0NELHlEQUF5RDtBQUN6RCxNQUFNLENBQU4sSUFBWSxlQUdYO0FBSEQsV0FBWSxlQUFlO0lBQ3ZCLG9DQUFpQixDQUFBO0lBQ2pCLGtDQUFlLENBQUE7QUFDbkIsQ0FBQyxFQUhXLGVBQWUsS0FBZixlQUFlLFFBRzFCO0FBOEJELG9EQUFvRDtBQUNwRCxNQUFNLENBQU4sSUFBWSxzQkFLWDtBQUxELFdBQVksc0JBQXNCO0lBQzlCLDZDQUFtQixDQUFBO0lBQ25CLDZDQUFtQixDQUFBO0lBQ25CLGlEQUF1QixDQUFBO0lBQ3ZCLG1EQUF5QixDQUFBO0FBQzdCLENBQUMsRUFMVyxzQkFBc0IsS0FBdEIsc0JBQXNCLFFBS2pDIiwic291cmNlc0NvbnRlbnQiOlsiLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyA8YXV0by1nZW5lcmF0ZWQ+XG4vLyAgICAgR2VuZXJhdGVkIHVzaW5nIHRoZSBOU3dhZyB0b29sY2hhaW4gdjE0LjAuMC4wIChOSnNvblNjaGVtYSB2MTEuMC4wLjAgKE5ld3RvbnNvZnQuSnNvbiB2MTMuMC4wLjApKSAoaHR0cDovL05Td2FnLm9yZylcbi8vIDwvYXV0by1nZW5lcmF0ZWQ+XG4vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyogdHNsaW50OmRpc2FibGUgKi9cbi8qIGVzbGludC1kaXNhYmxlICovXG4vLyBSZVNoYXJwZXIgZGlzYWJsZSBJbmNvbnNpc3RlbnROYW1pbmdcblxuLyoqIFRoaXMgZW51bSBjb25maWd1cmVzIHJvdW5kaW5nIG1vZGVzIGZvciBwcmljZSBjYWxjdWxhdGlvbnMgaW4gcHJvamVjdHMgKi9cbmV4cG9ydCBlbnVtIFByaWNlUm91bmRpbmdNb2RlRHRvIHtcbiAgICBOb3JtYWwgPSBcIk5vcm1hbFwiLFxuICAgIEZsb29yID0gXCJGbG9vclwiLFxuICAgIENlaWxpbmcgPSBcIkNlaWxpbmdcIixcbn1cblxuLyoqIEdlbmVyYWwgaW5mb3JtYXRpb24gYWJvdXQgYSBQcm9qZWN0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0SW5mb3JtYXRpb25EdG8ge1xuICAgIC8qKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgYnV5ZXIuICovXG4gICAgYnV5ZXI/OiBQYXJ0eUluZm9ybWF0aW9uRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBEZXNjcmlwdGlvbiBmb3IgdGhlIHByb2plY3QuICovXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFNob3J0IGRlc2NyaXB0aW9uIGZvciB0aGUgcHJvamVjdC4gKi9cbiAgICBkZXNjcmlwdGlvblNob3J0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBOYW1lIG9mIHRoZSBwcm9qZWN0LiAqL1xuICAgIG5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluZm9ybWF0aW9uIGFib3V0IHRoZSBzaXRlLiAqL1xuICAgIHNpdGU/OiBQYXJ0eUluZm9ybWF0aW9uRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgSXRlbU51bWJlclNjaGVtYSB1c2VkIGluIHRoZSBwcm9qZWN0LiAqL1xuICAgIGl0ZW1OdW1iZXJTY2hlbWE/OiBJdGVtTnVtYmVyU2NoZW1hRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBTaG9ydCBsYWJlbCBmb3IgdGhlIGN1cnJlbmN5IHVzZWQuICovXG4gICAgY3VycmVuY3lTaG9ydD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogRnVsbCBsYWJlbCBvZiB0aGUgY3VycmVuY3kgdXNlZC4gKi9cbiAgICBjdXJyZW5jeUxvbmc/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIExhYmVsIGZvciB0aGUgbGFib3VyIHRpbWUgcGFydCBvZiBwcmljZXMgdXNlZCBpbiB0aGUgcHJvamVjdC4gKi9cbiAgICBsYWJvdXJUaW1lTGFiZWw/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIExhYmVscyBmb3IgdGhlIHByaWNlIGNvbXBvbmVudHMgdXNlZCBpbiB0aGUgcHJvamVjdC4gQ2F1dGlvbjogUmVtb3ZhbCBvZiBhIHByaWNlIGNvbXBvbmVudCB3aWxsIHRyaWdnZXIgdG8gaGF2ZSBkZXBlbmRlbnQgcHJpY2UgaW5mb3JtYXRpb25zIGJlIGRlbGV0ZWQgaW4gSUVsZW1lbnRzIHRoYXQgdXNlIHRoaXMgcHJvcGVydHkuIElmIHRoaXMgcHJvcGVydHkgaXMgY2hhbmdlZCBvciBhbHRlcmVkIGFmdGVyIHRoZSBwcm9qZWN0IGhhcyBhbHJlYWR5IGJlZW4gdXNlZCwgaXQgaXMgc3Ryb25nbHkgYWR2aXNlZCB0byBkbyBvcGVyYXRpb25zIHN0ZXAgYnkgc3RlcCwgZS5nLiBpZiByZW5hbWluZyBhbmQgcmVvcmRlcmluZyBtdWx0aXBsZSBwcmljZSBjb21wb25lbnRzLCB0aGlzIHNob3VsZCBiZSBkb25lIG9uZSBieSBvbmUuIE90aGVyd2lzZSwgYSBjb21iaW5hdGlvbiBvZiByZW5hbWUgYW5kIHJlb3JkZXJpbmcgd2lsbCBub3QgYmUgY29ycmVjdGx5IHByb3BhZ2F0ZWQgZG93bndhcmRzIHRvIGNoaWxkIG9iamVjdHMgaW4gdGhpcyBQcm9qZWN0LiAqL1xuICAgIHByaWNlQ29tcG9uZW50cz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGRpY3Rpb25hcnkgc3BlY2lmaWVzIGFjdHVhbCB0eXBlcyB1c2VkIGZvciB0aGUgUHJpY2VDb21wb25lbnRzLiBGb3IgZXhhbXBsZSwgYSBzaW5nbGUgcHJpY2UgY29tcG9uZW50IG1pZ2h0IGhhdmUgdGhlIG5hbWUgJ01hdGVyaWFsJyBhcyBhIHN0cmluZywgYW5zIHRoaXMgZGljdGlvbmFyeSB3b3VsZCB0aGVuIGhhdmUgYSBrZXkgJ01hdGVyaWFsJyBhbmQgYSB2YWx1ZSBvZiBNYXRlcmlhbHMuIFlvdSBjYW4gbm90IGFkZCBrZXlzIGhlcmUgdGhhdCBhcmUgbm90IGFsc28gcHJlc2VudCBpbiB0aGUgUHJpY2VDb21wb25lbnRzIHByb3BlcnR5LCBhbmQgcmVtb3ZpbmcgcHJpY2UgY29tcG9uZW50cyB3aWxsIGFsc28gcmVtb3ZlIHRoZW0gZnJvbSB0aGlzIGRpY3Rpb25hcnkgaGVyZS4gKi9cbiAgICByZWFkb25seSBwcmljZUNvbXBvbmVudFR5cGVzPzogeyBba2V5OiBzdHJpbmddOiBQcmljZUNvbXBvbmVudFR5cGVEdG87IH0gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgYm9vbCBpbmRpY2F0ZXMgaWYgdGhpcyBwcm9qZWN0IGFsbG93cyB0aGUgYmlkZGVyIHRvIGFkZCBiaWRkZXIgY29tbWVudHMuIEJpZGRlciBjb21tZW50cyBhcmUgYSB3YXkgdG8gYXR0YWNoIGNsYXJpZnlpbmcgaW5mb3JtYXRpb24gd2hlbiBzdWJtaXR0aW5nIGFuIG9mZmVyLiAqL1xuICAgIGJpZGRlckNvbW1lbnRBbGxvd2VkPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBpbmRpY2F0ZXMgaWYgdGhlIHByb2plY3Qgc2hvdWxkIGFsbG93IHNpZGUgb2ZmZXJzIGZyb20gY29udHJhY3RvcnMuIEluIEdBRUIsIGEgc2lkZSBvZmZlciB3b3VsZCB0eXBpY2FsbHkgYmUgaW4gZXhjaGFuZ2UgcGhhc2UgODUuICovXG4gICAgc2lkZU9mZmVyc0FsbG93ZWQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGVudW1lcmF0aW9uIGRlc2NyaWJlcyB0aGUgdHlwZSBvZiB0aGUgYXdhcmQgLyBwcm9jdXJlbWVudCBwcm9jZXNzLiBJZiB0aGlzIGlzIHVzZWQgaW4gYSBHQUVCIGNvbnRleHQsIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYXdhcmQgdHlwZXMgY2FuIGJlIGZvdW5kIGluIHRoZSBHZXJtYW4gVk9CL0EgcnVsZXMgYW5kIHRoZSBHQUVCIHN0YW5kYXJkICovXG4gICAgYXdhcmRUeXBlPzogQXdhcmRUeXBlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGVudW1lcmF0aW9uIGRlc2NyaWJlcyBhd2FyZHMgZm9yIHByb2plY3QgdGhhdCBhcmUgbm90IGp1c3QgYSByZWd1bGFyIHByb2N1cmVtZW50LiBGb3IgZXhhbXBsZSwgaXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgcmVjdXJyaW5nIG1haW50ZW5hbmNlIG9yIGFuIG91dGxpbmUgY29udHJhY3QgKEdlcm1hbjogUmFobWVudmVydHJhZykgd2hpY2gganVzdCBzcGVjaWZpZXMgc2VydmljZXMgYW5kIHByaWNlcyBidXQgbWF5IGJlIHJlcXVlc3RlZCBvbiBkZW1hbmQgd2hlbiBuZWNlc3NhcnkgKi9cbiAgICBzcGVjaWFsQXdhcmRLaW5kPzogU3BlY2lhbEF3YXJkS2luZER0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogUmVxdWVzdGVycyBpbiBhIGNvbnN0cnVjdGlvbiBwcm9qZWN0LCBpbiBHZXJtYW4gYWxzbyBjYWxsZWQgJ0JlZGFyZnN0csOkZ2VyJywgYXJlIHBhcnRpZXMgY29ubmVjdGVkIHRvIHRoZSBidWlsZGluZyBwcm9jZXNzLCBlLmcuIGFyY2hpdGVjdHMgb3IgcGxhbm5lcnMuICovXG4gICAgcmVxdWVzdGVycz86IFBhcnR5SW5mb3JtYXRpb25EdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogTm90aWZpY2F0aW9uIHNpdGVzIGFyZSBhZGRyZXNzZXMgdGhhdCBhcmUgdXNlZCBmb3IgZGVsaXZlcmluZyBtZXNzYWdlcyBpbiB0aGUgY29udGV4dCBvZiBjb25zdHJ1Y3Rpb24gcHJvamVjdHMuICovXG4gICAgbm90aWZpY2F0aW9uU2l0ZXM/OiBQYXJ0eUluZm9ybWF0aW9uRHRvW10gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBSZXByZXNlbnRzIGluZm9ybWF0aW9uIGFib3V0IGEgcGFydHkgKGEgc2l0ZSBvciBhbiBvcmdhbml6YXRpb24pLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXJ0eUluZm9ybWF0aW9uRHRvIHtcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqIFRoaXMgcGFydHkncyBuYW1lLiAqL1xuICAgIG5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgcGFydHkncyBzdHJlZXQuICovXG4gICAgc3RyZWV0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHBhcnR5J3MgWmlwQ29kZS4gKi9cbiAgICB6aXBDb2RlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHBhcnR5J3MgQ2l0eS4gKi9cbiAgICBjaXR5Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHBhcnR5J3MgQ291bnRyeS4gKi9cbiAgICBjb3VudHJ5Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHBhcnR5J3MgSWRlbnRpZmllci4gKi9cbiAgICBpZGVudGlmaWVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBSZW1hcmtzIGZvciB0aGlzIHBhcnR5LiAqL1xuICAgIHJlbWFya3M/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEFuIGVtYWlsIGFkZHJlc3MgZm9yIHRoaXMgcGFydHkuICovXG4gICAgZW1haWw/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEEgcGhvbmUgbnVtYmVyIGZvciB0aGlzIHBhcnR5LiAqL1xuICAgIHBob25lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgbmFtZSBvZiBhIGNvbnRhY3QgcGVyc29uLiAqL1xuICAgIGNvbnRhY3RQZXJzb25OYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGFuIGlkZW50aWZpZXIgcmVsYXRlZCB0byB0aGlzIFBhcnR5SW5mb3JtYXRpb24gYW5kIHRoZWlyIGludGVybmFsIHJlZmVyZW5jZSBvZiB0aGUgdGVuZGVyIChvciBhd2FyZCkuIFRoaXMgbWlnaHQgYmUgdXNlZCB0byBhc3NpZ24gYW4gaWRlbnRpZmllciAoR2VybWFuIFwiVmVyZ2FiZW51bW1lclwiKSBmb3IgdGhlIGN1cnJlbnQgcHJvamVjdC4gVGhpcyBpcyB0eXBpY2FsbHkgb25seSB1c2VkIGluIEJ1eWVyIGFuZCBCaWRkZXIgcmVwcmVzZW50YXRpb25zIGFuZCBzaG91bGQgbWFwIHRvIHRoZSBjb25jZXB0IG9mIFwiVmVyZ2FiZW51bW1lclwiIG9yIFwiQXdhcmROb1wiIGluIEdBRUIuICovXG4gICAgYXdhcmRJZGVudGlmaWVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHByb3BlcnR5IGluZGljYXRlcyBpZiB0aGUgcGFydHkgaXMgcmVnaXN0ZXJlZCB3aXRoaW4gdGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEuICovXG4gICAgaXNJbkV1cm9wZWFuRWNvbm9taWNBcmVhPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSWYgdGhpcyBpcyB3aXRoaW4gdGhlIEV1cm9wZWFuIEVjb25vbWljIEFyZWEgKHNlZSBJc0luRXVyb3BlYW5FY29ub21pY0FyZWEsIHRoZW4gYXMgYSBidXNpbmVzcyBlbnRpdHkgaXQgbGlrZWx5IGhhcyBhbiBFVSBWQVQgSWQuICovXG4gICAgdmF0SWQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBmYXggbnVtYmVyIGZvciB0aGlzIHBhcnR5LiAqL1xuICAgIGZheD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHR3byBsZXR0ZXIgSVNPIGNvdW50cnkgY29kZSwgZS5nLiBERSBmb3IgR2VybWFueS4gKi9cbiAgICBjb3VudHJ5Q29kZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogRGVwZW5kaW5nIG9uIHdoaWNoIHBhcnR5IHRoaXMgY2xhc3MgcmVwcmVzZW50cywgaXQgbWlnaHQgaGF2ZSBlaXRoZXIgYSAnY3JlZGl0b3InIG9yICdkZWJ0b3InIG51bWJlci4gVGhpcyBpcyBvZnRlbiB1c2VkIGluIGludGVybmFsIGFjY291bnRpbmcgc3lzdGVtcy4gKi9cbiAgICBjcmVkaXRvck9yRGVidG9ySWRlbnRpZmllcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIEdsb2JhbCBMb2NhdGlvbiBOdW1iZXIgKEdMTikgaXMgaXNzdWVkIGJ5IEdTMSBhbmQgaXMgaW50ZW5kZWQgdG8gYmUgYSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHBoeXNpY2FsIGFkZHJlc3Mgb2YgYSBwYXJ0eSwgZS5nLiBhIGJ1c2luZXNzIG9mZmljZS4gKi9cbiAgICBnbG9iYWxMb2NhdGlvbk51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBsaXN0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IGJhbmsgYWNjb3VudHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgUGFydHlJbmZvcm1hdGlvbi4gSXQncyB0eXBpY2FsbHkgdXNlZCBmb3IgYnV5ZXJzIGFuZCBiaWRkZXJzLiAqL1xuICAgIGJhbmtpbmdJbmZvcm1hdGlvbj86IEJhbmtpbmdJbmZvcm1hdGlvbkR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSByZWdpc3RyYXRpb24gbnVtYmVyIGZvciB0aGlzIHBhcnR5LCBlLmcuIGEgY29tcGFueSByZWdpc3RyYXRpb24gbnVtYmVyLiBJdCBpcyB1c3VhbGx5IHVzZWQgaW4gR0FFQiBYTUwgY29tbWVyY2UgZXhjaGFuZ2VzIGZvciBiaWRkZXJzIHRvIHN1cHBseSB0aGVpciBXRUVFIHJlZ2lzdHJhdGlvbiBudW1iZXIsIHdoaWNoIGlzIHVzZWQgdG8gaWRlbnRpZnkgdGhlbSBhcyBhIHJlZ2lzdGVyZWQgV0VFRSBjb21wYW55LiAqL1xuICAgIHJlZ2lzdHJhdGlvbk51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgaXMgYSBjbGFzcyB0aGF0IHJlcHJlc2VudHMgdGhlIGluZm9ybWF0aW9uIGFib3V0IGEgYmFuayBjb25uZWN0aW9uLiBJdCBpcyB1c3VhbGx5IHVzZWQgd2l0aGluIGEgUGFydHlJbmZvcm1hdGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFua2luZ0luZm9ybWF0aW9uRHRvIHtcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoZSBiYW5rLiAqL1xuICAgIG5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBpbnRlcm5hdGlvbmFsIGlkZW50aWZpZXIgZm9yIHRoZSBiYW5rIGFjY291bnQuICovXG4gICAgaWJhbj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGFjY291bnQgbnVtYmVyLiBUeXBpY2FsbHkgbm8gbG9uZ2VyIHVzZWQgc2luY2UgdGhlIGludHJvZHVjdGlvbiBvZiBJQkFOIHdpdGhpbiB0aGUgU0VQQSBhcmVhLiAqL1xuICAgIGFjY291bnROdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBpbnRlcm5hdGlvbmFsIGJhbmsgaWRlbnRpZmllci4gKi9cbiAgICBiaWM/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSByb3V0aW5nIG51bWJlciBmb3IgdGhlIGJhbmsuIFR5cGljYWxseSBubyBsb25nZXIgdXNlZCBzaW5jZSB0aGUgaW50cm9kdWN0aW9uIG9mIElCQU4gd2l0aGluIHRoZSBTRVBBIGFyZWEuICovXG4gICAgcm91dGluZ051bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoZSBzY2hlbWEgZm9yIEl0ZW1OdW1iZXIncyBpbiBhIFByb2plY3QuICovXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1OdW1iZXJTY2hlbWFEdG8ge1xuICAgIC8qKiBUaGUgY291bnQgb2YgdGllcnMgaW4gdGhlIEl0ZW1OdW1iZXJTY2hlbWEgKi9cbiAgICByZWFkb25seSB0b3RhbExlbmd0aD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGNvbGxlY3Rpb24gb2YgdGllcnMgZm9yIHRoaXMgSXRlbU51bWJlclNjaGVtYS4gKi9cbiAgICB0aWVycz86IEl0ZW1OdW1iZXJTY2hlbWFUaWVyRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBzZXBhcmF0b3IgdG8gdXNlIGZvciBzZXBhcml0aW5nIHRoZSBkaWZmZXJlbnQgbGV2ZWxzIGluIGFuIEl0ZW1OdW1iZXIuIERlZmF1bHRzIHRvIERFRkFVTFRfU0VQQVJBVE9SLCB3aGljaCBpcyBhIHBvaW50ICcuJy4gU2V0dGluZyB0aGlzIHRvIGEgc3BhY2Ugb3Igb3RoZXIgd2hpdGVzcGFjZXMgaXMgZGlzY291cmFnZWQsIGFzIHRoaXMgbWlnaHQgbm90IHdvcmsgY29ycmVjdCBpbiBhbGwgc2l0dWF0aW9ucyBhbmQgaXRlbSBudW1iZXJzIGNvdWxkIGJlIGRpc3BsYXllZCBub3QgYXMgaW50ZW5kZWQuIFRoaXMgY2FuIG5vdCBiZSBzZXQgdG8gYW4gZW1wdHkgb3IgbnVsbCBzdHJpbmcsIHRyeWluZyB0aGF0IHdpbGwgZGVmYXVsdCB0byB0aGUgREVGQVVMVF9TRVBBUkFUT1IuIElmIGEgdmFsdWUgaXMgc2V0IHRoYXQgaGFzIGEgZGlmZmVyZW50IGxlbmd0aCB0aGFuIG9uZSAnMScsIHRoZSBERUZBVUxUX1NFUEFSQVRPUiB3aWxsIGJlIHVzZWQgaW5zdGVhZC4gWW91IHNob3VsZCBhbHNvIG5vdCB1c2UgdmFsdWVzIGZvciB0aGUgc2VwYXJhdG9yIHRoYXQgYXJlIGFsc28gdmFsaWQgZm9yIHRoZSBpdGVtIG51bWJlcnMgdGhlbXNlbHZlcywgYXMgdGhhdCBtaWdodCBhbHNvIGxlYWQgdG8gaW5jb3JyZWN0IHJlc3VsdHMgKi9cbiAgICBzZXBhcmF0b3I/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgc3RyaW5nIGlzIHVzZWQgdG8gZmlsbCAobGVmdC1wYWQpIGl0ZW0gbnVtYmVycy4gRm9yIGV4YW1wbGUsIGlmIGEgdGllciBoYXMgYSBsZW5ndGggb2YgJzQnIGJ1dCB0aGUgZ2l2ZW4gaXRlbSBudW1iZXIgaXMgJzEyJywgd2l0aCBhIEZpbGxlciBvZiAnMCcsIHRoZW4gdGhlIGZpbmFsIGl0ZW0gbnVtYmVyIHdpbGwgYmUgcmVwcmVzZW50ZWQgYXMgJzAnLiBUaGlzIG11c3QgYmUgYSBzaW5nbGUgY2hhcmFjdGVyIHN0cmluZywgaWYgYSB2YWx1ZSBpcyBnaXZlbiB3aGVyZSB0aGUgTGVuZ3RoIHByb3BlcnR5IGRvZXMgbm90IGV2YWx1YXRlIHRvICcxJywgdGhlIERFRkFVTFRfRklMTEVSICcwJyBpcyB1c2VkLiBBIHNwYWNlIGlzIGZpbmUgdG8gdXNlLiBZb3Ugc2hvdWxkIGVuc3VyZSB0aGF0IHlvdSB1c2UgYSB2YWx1ZSBkaWZmZXJlbnQgdGhhbiBTZXBhcmF0b3IsIGFzIHRoYXQgbWlnaHQgcHJvZHVjZSB1bmV4cGVjdGVkIHJlc3VsdHMuIE5vIGF0dGVtcHQgaXMgZG9uZSBieSB0aGUgY29kZSB0byByZWNvdmVyIGZyb20gc3VjaCBhbWJpZ3VvdXMgY29uZmlndXJhdGlvbnMuICovXG4gICAgZmlsbGVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGp1c3QgYSBzdHJpbmcgcHJvcGVydHkgdGhhdCBjYW4gb3B0aW9uYWxseSBiZSB1c2VkIHRvIHN0b3JlIGFkZGl0aW9uYWwgZGF0YSBmb3IgdGhpcyBJdGVtTnVtYmVyU2NoZW1hLCBlLmcuIGFuIGlkZW50aWZpY2F0aW9uIG9yIGEgdHlwZS4gSXQgZG9lcyBub3QgaGF2ZSBhbnkgaW5mbHVlbmNlIG92ZXIgaG93IGl0ZW0gbnVtYmVycyBhcmUgZ2VuZXJhdGVkLCBhbmQgaXMgbm90IHN1cHBvcnRlZCBpbiBtb3N0IGV4Y2hhbmdlIGZvcm1hdHMuIEhvd2V2ZXIsIGl0IGlzIHVzZWQgdG8gc3RvcmUgw5ZOb3JtIHNlcnZpY2Ugc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUgdHlwZXMuICovXG4gICAgaWRlbnRpZmllcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBpbmRpY2F0ZXMgaWYgSXRlbU51bWJlcnMgdXNpbmcgdGhpcyBJdGVtTnVtYmVyU2NoZW1hIHNob3VsZCBza2lwIGVtcHR5IGdyb3VwIGxldmVscy4gVGhpcyBpcyBjb21tb25seSBvbmx5IHVzZWQgaW4gR0FFQiBmaWxlcywgd2hlcmUgdGhlcmUgbWlnaHQgYmUgZ2FwcyBpbiB0aGUgaGllcmFyY2h5IG9mIGVsZW1lbnRzIGFuZCBwb3NpdGlvbiBpZGVudGlmaWVycyBzaG91bGQgYmUgcGxhY2VkIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbi4gKi9cbiAgICBza2lwTm9uRXhpc3RpbmdMZXZlbHNJblBvc2l0aW9uSXRlbU51bWJlcnM/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHN0cmluZyBpcyB1c2VkIG9ubHkgd2hlbiB0aGUgcHJvcGVydHkgU2tpcE5vbkV4aXN0aW5nTGV2ZWxzSW5Qb3NpdGlvbkl0ZW1OdW1iZXJzIGluIHRoaXMgSXRlbU51bWJlclNjaGVtYSBpcyBhbHNvIHNldCB0byB0cnVlLiBJdCBkZWZhdWx0cyB0byBERUZBVUxUX1NLSVBQRURfVElFUlNfRklMTEVSLCBidXQgY2FuIGJlIHNldCB0byBhbnkgc3RyaW5nIHdpdGggYSBsZW5naHQgb2Ygb25lLiBOdWxsIHZhbHVlcyBvciB2YWx1ZXMgd2l0aCBhIGxvbmdlciBsZW5ndGggd2lsbCBsZWFkIHRvIHRoaXMgcHJvcGVydHkgcmV2ZXJ0aW5nIGJhY2sgdG8gdGhlIGRlZmF1bHQgdmFsdWUuIFRoaXMgaXMgdXNlZCB0byBmaWxsIHNraXBwZWQgdGllcnMgaW4gaXRlbSBudW1iZXJzIHdoZXJlIGEgcG9zaXRpb24gaXMgcGxhY2VkIGluIGEgaGlnaGVyIGhpZXJhcmNoeSBsZXZlbCB0aGFuIHdoYXQgd291bGQgYmUgZGVmaW5lZCBpbiB0aGUgVGllcnMuIEZvciBleGFtcGxlLCBpdCBjb3VsZCBwcm9kdWNlIGFuIGl0ZW0gbnVtYmVyIGxpa2UgJzAxLl9fLjAyJywgd2hpY2ggd291bGQgaW5kaWNhdGUgYSBza2lwcGVkIHNlY29uZCBsZXZlbC4gVGhpcyBzaG91bGQgYmUgdXNpbmcgZGlmZmVyZW50IHZhbHVlcyB0aGFuIEZpbGxlciBhbmQgU2VwYXJhdG9yLCBzaW5jZSB0aGF0IGNvdWxkIGNhdXNlIGFtYmlndWl0aWVzIGluIHRoZSBjb2RlIHRoYXQgZ2VuZXJhdGVzIHRoZSBhY3R1YWwgaXRlbSBudW1iZXJzLiBObyBhdHRlbXB0IGlzIGRvbmUgYnkgdGhlIGNvZGUgdG8gcmVjb3ZlciBmcm9tIHN1Y2ggYW1iaWd1b3VzIGNvbmZpZ3VyYXRpb25zLiAqL1xuICAgIHNraXBwZWRUaWVyc0ZpbGxlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhIHJlYWQtb25seSBwcm9wZXJ0eSB0aGF0IGluZGljYXRlcyBpZiB0aGlzIHNjaGVtYSBoYXMgYSB2YWxpZCBzdHJ1Y3R1cmUuIEl0IGludGVybmFsbHkganVzdCByZXR1cm5zIHRoZSByZXN1bHQgZnJvbSBJc0NvcnJlY3RseURlZmluZWQuIFRoaXMgd2lsbCByZXR1cm4gaWYgdGhlIEl0ZW1OdW1iZXJTY2hlbWEgaXMgY29ycmVjdGx5IGRlZmluZWQuIEZvciBpdCB0byBiZSBjb3JyZWN0bHkgZGVmaW5lZCwgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIG11c3QgYmUgdHJ1ZTogVGhlcmUgbWF5IG9ubHkgYmUgb25lIGxvdCBncm91cCwgaWYgdGhlcmUgaXMgb25lLCBpdCBtdXN0IGJlIGF0IHRoZSB0b3AuIEZvbGxvd2luZyBsb3QgbGV2ZWxzLCB0aGVyZSBtYXkgYmUgYXQgbGVhc3Qgb25lIGdyb3VwIGxldmVsLiBBZnRlciB0aGUgZ3JvdXAgbGV2ZWxzLCB0aGVyZSBtdXN0IGJlIG9uZSBwb3NpdGlvbiBsZXZlbC4gQWZ0ZXIgdGhlIHBvc2l0aW9uIGxldmVsLCB0aGVyZSBtYXkgYmUgb25lIGluZGV4IGxldmVsLiBJZiBubyB0aWVycyBhcmUgZGVmaW5lZCBhdCBhbGwsIHRoaXMgd2lsbCBhbHNvIHJldHVybiBmYWxzZS4gKi9cbiAgICByZWFkb25seSBzY2hlbWFJc0NvcnJlY3RseURlZmluZWQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBEZWZhdWx0cyB0byBmYWxzZS4gSWYgdGhpcyBpcyBkaXNhYmxlZCwgYWxsIGxldHRlcnMgaW4gdGhlIEl0ZW1OdW1iZXIgc3RyaW5nIHJlcHJlc2VudGF0aW9ucyB3aWxsIGJlIHRyYW5zZm9ybWVkIHRvIHRoZWlyIGxvd2VyY2FzZSByZXByZXNlbnRhdGlvbi4gKi9cbiAgICBhbGxvd1VwcGVyQ2FzZUxldHRlcmluZz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHNpbmdsZSBpZGVudGlmaWVycyBpbiBhbiBpdGVtIG51bWJlciB3aWxsIG5vdCBiZSBsZWZ0IHBhZGRlZCB0byBmaWxsIHRoZSBsZW5ndGggb2YgdGhlIHRpZXIuIFRoaXMgaXMgdXNlZnVsIGZvciBhbGxvd2luZyBjdXN0b20gZm9ybWF0cyBpbiBpdGVtIG51bWJlcnMsIHdpdGhvdXQgZm9sbG93aW5nIHRoZSBHQUVCIHN0YW5kYXJkLiBEZWZhdWx0cyB0byBmYWxzZS4gKi9cbiAgICBkaXNhYmxlTGVmdFBhZGRpbmdUaWVyc1dpdGhGaWxsZXI/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogUmVwcmVzZW50cyBpbmZvcm1hdGlvbiBhYm91dCBhIHNpbmdsZSBUaWVyIGluIGFuIEl0ZW1OdW1iZXIuICovXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1OdW1iZXJTY2hlbWFUaWVyRHRvIHtcbiAgICAvKiogVGhlIChtYXhpbXVtKSBsZW5ndGggZm9yIHRoaXMgdGllci4gV2lsbCBub3QgYWNjZXB0IGEgbGVuZ3RoIGxlc3MgdGhhbiAxLiBEZWZhdWx0cyB0byAxIGlmIGxlbmd0aCBsZXNzIHRoYW4gb25lIGlzIHNwZWNpZmllZC4gKi9cbiAgICBsZW5ndGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgSXRlbU51bWJlclNjaGVtYVRpZXIncyB0eXBlLiAqL1xuICAgIHR5cGU/OiBJdGVtTnVtYmVyVHlwZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBlbnVtIHJlcHJlc2VudHMgdGhlIGFsaWdubWVudCB2YWx1ZSBmb3IgYSB0aWVyIGluIGFuIEl0ZW1OdW1iZXJTY2hlbWEuIEl0IGlzIG5vdCB1c2VkIGFueXdoZXJlIGZvciBjb21wdXRhdGlvbnMgYXQgdGhlIG1vbWVudCwgYW5kIGlzIG1vc3RseSBhbiBpbmZvcm1hdGlvbmFsIHZhbHVlLiAqL1xuICAgIGFsaWdubWVudD86IEl0ZW1OdW1iZXJTY2hlbWFUaWVyQWxpZ25tZW50RHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHNwZWNpZmllcyB3aGljaCBJdGVtTnVtYmVyU2NoZW1hVGllclR5cGUgdGhpcyB0aWVyIHJlcHJlc2VudHMuIFRoaXMgY2FuIGJlLCBmb3IgZXhhbXBsZSwgYSBncm91cCB0aWVyIC8gbGV2ZWwsIGEgcG9zaXRpb24gbGV2ZWwgb3IgYSBsb3QgbGV2ZWwuICovXG4gICAgdGllclR5cGU/OiBJdGVtTnVtYmVyU2NoZW1hVGllclR5cGVEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGlzIHRpZXIgcmVwcmVzZW50cyBhIGxvdC4gU2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGxvdHMuICovXG4gICAgcmVhZG9ubHkgaXNMb3Q/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHZhbHVlIGlzIHRoZSBpbmNyZW1lbnQsIG9yIHN0ZXAgc2l6ZSwgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgbmV3IGl0ZW0gbnVtYmVycy4gSXQgZGVmYXVsdHMgdG8gREVGQVVMVF9JTkNSRU1FTlQsIGJ1dCBjYW4gYmUgY2hhbmdlZCB0byBhbnkgb3RoZXIgcG9zaXRpdmUgbnVtYmVyIGdyZWF0ZXIgdGhhbiB6ZXJvLiBJbnZhbGlkIHZhbHVlcyBtYWtlIHRoaXMgYmUgc2V0IHRvIG9uZSAnMScgKi9cbiAgICBpbmNyZW1lbnQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYW4gb3B0aW9uYWwgbmFtZSBmb3IgdGhlIGdpdmVuIHRpZXIgKi9cbiAgICB0aWVyTmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIERldGVybWluZXMgdGhlIHR5cGUgb2YgYW4gSXRlbU51bWJlclNjaGVtYSAqL1xuZXhwb3J0IGVudW0gSXRlbU51bWJlclR5cGVEdG8ge1xuICAgIE51bWVyaWMgPSBcIk51bWVyaWNcIixcbiAgICBBbHBoYW51bWVyaWMgPSBcIkFscGhhbnVtZXJpY1wiLFxufVxuXG4vKiogVGhpcyBlbnVtIHJlcHJlc2VudHMgdGhlIGFsaWdubWVudCB2YWx1ZSBmb3IgYSB0aWVyIGluIGFuIEl0ZW1OdW1iZXJTY2hlbWEuIEl0IGlzIG5vdCB1c2VkIGFueXdoZXJlIGZvciBjb21wdXRhdGlvbnMgYXQgdGhlIG1vbWVudCwgYW5kIGlzIG1vc3RseSBhbiBpbmZvcm1hdGlvbmFsIHZhbHVlLiAqL1xuZXhwb3J0IGVudW0gSXRlbU51bWJlclNjaGVtYVRpZXJBbGlnbm1lbnREdG8ge1xuICAgIFVuZGVmaW5lZCA9IFwiVW5kZWZpbmVkXCIsXG4gICAgTGVmdCA9IFwiTGVmdFwiLFxuICAgIFJpZ2h0ID0gXCJSaWdodFwiLFxufVxuXG4vKiogU3BlY2lmaWVzIHRoZSB0eXBlIGFuIEl0ZW1OdW1iZXJTY2hlbWFUaWVyIHJlcHJlc2VudHMuIEZvciBleGFtcGxlLCBhIHRpZXIgbWF5IGluZGljYXRlIHRvIGJlIHVzZWQgZm9yIHBvc2l0aW9ucyBvciBmb3IgZ3JvdXBzLiAqL1xuZXhwb3J0IGVudW0gSXRlbU51bWJlclNjaGVtYVRpZXJUeXBlRHRvIHtcbiAgICBVbmRlZmluZWQgPSBcIlVuZGVmaW5lZFwiLFxuICAgIEluZGV4ID0gXCJJbmRleFwiLFxuICAgIFBvc2l0aW9uID0gXCJQb3NpdGlvblwiLFxuICAgIEdyb3VwID0gXCJHcm91cFwiLFxuICAgIExvdCA9IFwiTG90XCIsXG59XG5cbi8qKiBUaGlzIGVudW1lcmF0aW9uIG1vZGVscyB0eXBlcyBvZiBwcmljZSBjb21wb25lbnRzIGZvciBiZXR0ZXIgY2xhc3NpZmljYXRpb24uICovXG5leHBvcnQgZW51bSBQcmljZUNvbXBvbmVudFR5cGVEdG8ge1xuICAgIFVua25vd24gPSBcIlVua25vd25cIixcbiAgICBXYWdlcyA9IFwiV2FnZXNcIixcbiAgICBNYXRlcmlhbHMgPSBcIk1hdGVyaWFsc1wiLFxuICAgIFBsYW50ID0gXCJQbGFudFwiLFxuICAgIE1pc2NlbGxhbmVvdXMgPSBcIk1pc2NlbGxhbmVvdXNcIixcbn1cblxuLyoqIFRoaXMgZW51bWVyYXRpb24gZGVzY3JpYmVzIHRoZSB0eXBlIG9mIHRoZSBhd2FyZCAvIHByb2N1cmVtZW50IHByb2Nlc3MuIElmIHRoaXMgaXMgdXNlZCBpbiBhIEdBRUIgY29udGV4dCwgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBhd2FyZCB0eXBlcyBjYW4gYmUgZm91bmQgaW4gdGhlIEdlcm1hbiBWT0IvQSBydWxlcyBhbmQgdGhlIEdBRUIgc3RhbmRhcmQgKi9cbmV4cG9ydCBlbnVtIEF3YXJkVHlwZUR0byB7XG4gICAgVW5zcGVjaWZpZWQgPSBcIlVuc3BlY2lmaWVkXCIsXG4gICAgT3BlblByb2N1cmVtZW50ID0gXCJPcGVuUHJvY3VyZW1lbnRcIixcbiAgICBDbG9zZWRQcm9kdWNyZW1lbnQgPSBcIkNsb3NlZFByb2R1Y3JlbWVudFwiLFxuICAgIE5lZ290aWF0aW9uUHJvY3VyZW1lbnRXaXRob3V0UHVibGljQW5ub3VuY2VtZW50ID0gXCJOZWdvdGlhdGlvblByb2N1cmVtZW50V2l0aG91dFB1YmxpY0Fubm91bmNlbWVudFwiLFxuICAgIE5lZ290aWF0aW9uUHJvY3VyZW1lbnQgPSBcIk5lZ290aWF0aW9uUHJvY3VyZW1lbnRcIixcbiAgICBPcGVuQ2FsbCA9IFwiT3BlbkNhbGxcIixcbiAgICBTZWxlY3RlZENhbGxXaXRob3V0UHVibGljQ29tcGV0aXRpb24gPSBcIlNlbGVjdGVkQ2FsbFdpdGhvdXRQdWJsaWNDb21wZXRpdGlvblwiLFxuICAgIFNlbGVjdGVkQ2FsbCA9IFwiU2VsZWN0ZWRDYWxsXCIsXG4gICAgRGlyZWN0QXdhcmQgPSBcIkRpcmVjdEF3YXJkXCIsXG4gICAgSW50ZXJuYXRpb25hbE5BVE9Qcm9jdXJlbWVudCA9IFwiSW50ZXJuYXRpb25hbE5BVE9Qcm9jdXJlbWVudFwiLFxuICAgIENvbXBldGl0aXZlRGlhbG9nID0gXCJDb21wZXRpdGl2ZURpYWxvZ1wiLFxufVxuXG4vKiogVGhpcyBlbnVtZXJhdGlvbiBkZXNjcmliZXMgYXdhcmRzIGZvciBwcm9qZWN0IHRoYXQgYXJlIG5vdCBqdXN0IGEgcmVndWxhciBwcm9jdXJlbWVudC4gRm9yIGV4YW1wbGUsIGl0IGNhbiBiZSB1c2VkIHRvIGRlc2NyaWJlIHJlY3VycmluZyBtYWludGVuYW5jZSBvciBhbiBvdXRsaW5lIGNvbnRyYWN0IChHZXJtYW46IFJhaG1lbnZlcnRyYWcpIHdoaWNoIGp1c3Qgc3BlY2lmaWVzIHNlcnZpY2VzIGFuZCBwcmljZXMgYnV0IG1heSBiZSByZXF1ZXN0ZWQgb24gZGVtYW5kIHdoZW4gbmVjZXNzYXJ5ICovXG5leHBvcnQgZW51bSBTcGVjaWFsQXdhcmRLaW5kRHRvIHtcbiAgICBVbnNwZWNpZmllZCA9IFwiVW5zcGVjaWZpZWRcIixcbiAgICBNYWludGVuYW5jZUNvbnRyYWN0ID0gXCJNYWludGVuYW5jZUNvbnRyYWN0XCIsXG4gICAgT3V0bGluZUNvbnRyYWN0ID0gXCJPdXRsaW5lQ29udHJhY3RcIixcbiAgICBPdXRsaW5lRm9yTWFpbnRlbmFuY2VDb250cmFjdCA9IFwiT3V0bGluZUZvck1haW50ZW5hbmNlQ29udHJhY3RcIixcbn1cblxuLyoqIFRoaXMgaXMgdGhlIGJhc2UgY2xhc3MgdGhhdCBob2xkcyBpbmZvcm1hdGlvbiBhYm91dCBhIHdob2xlIHNlcnZpY2Ugc3BlY2lmaWNhdGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZVNwZWNpZmljYXRpb25EdG8ge1xuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogVGhlIGhvdXJseSB3YWdlIHRoYXQgaXMgdXNlZCB3aXRoaW4gdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZS4gV2lsbCBiZSBwcm9wYWdhdGVkIHRvIGNoaWxkIGVsZW1lbnRzLiAqL1xuICAgIHJlYWRvbmx5IHByb2plY3RIb3VybHlXYWdlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdGF4IHJhdGUgdGhhdCBpcyB1c2VkIHdpdGhpbiB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlLiBXaWxsIGJlIHByb3BhZ2F0ZWQgdG8gY2hpbGQgZWxlbWVudHMuICovXG4gICAgcHJvamVjdFRheFJhdGU/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBwcmljZSBjb21wb25lbnRzIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgcHJvamVjdC4gVGhleSBhcmUgaWdub3JlZCBkdXJpbmcgSnNvbiBkZXNlcmlhbGl6YXRpb24gYmVjYXVzZSB0aGV5IHdpbGwgYmUgc2V0IGZyb20gdGhlIHBhcmVudCBwcm9qZWN0LiAqL1xuICAgIHByb2plY3RQcmljZUNvbXBvbmVudHM/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIEl0ZW1OdW1iZXJTY2hlbWEgdGhhdCBpcyB1c2VkIHdpdGhpbiB0aGlzIHByb2plY3QuICovXG4gICAgcHJvamVjdEl0ZW1OdW1iZXJTY2hlbWE/OiBJdGVtTnVtYmVyU2NoZW1hRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgSUVsZW1lbnRzIHdpdGhpbiB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlLiAqL1xuICAgIGVsZW1lbnRzPzogSUVsZW1lbnREdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGxhYmVsIHVzZWQgaW4gdGhlIHBhcmVudCBQcm9qZWN0IHRvIG1hcmsgbGFib3VyIHRpbWUsIGUuZy4gXCJIb3Vyc1wiIG9yIFwiU3R1bmRlblwiLiAqL1xuICAgIHJlYWRvbmx5IHByb2plY3RMYWJvdXJUaW1lTGFiZWw/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGVyZSBhcmUgY2hpbGQgSUVsZW1lbnRzIHRoYXQgaGF2ZSBjb25mbGljdGluZywgZHVwbGljYXRlZCBJdGVtTnVtYmVycyBvciBpZiBhbnkgY2hpbGQgRWxlbWVudENvbnRhaW5lckJhc2UgZWxlbWVudHMgdGhlbXNlbHZlcyBjb250YWluIGR1cGxpY2F0ZSBJdGVtTnVtYmVyIHMuIFdpbGwgYWx3YXlzIGluZGljYXRlIGZhbHNlIHdoZW4gdG9sZCB0byBpZ25vcmUgZHVwbGljYXRlIGl0ZW0gbnVtYmVycy4gKi9cbiAgICByZWFkb25seSBjb250YWluc0R1cGxpY2F0ZUl0ZW1OdW1iZXJzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZXJlIGFyZSBjaGlsZCBJRWxlbWVudHMgdGhhdCBoYXZlIGNvbmZsaWN0aW5nLCBkdXBsaWNhdGVkIElkcyBvciBpZiBhbnkgY2hpbGQgRWxlbWVudENvbnRhaW5lckJhc2UgZWxlbWVudHMgdGhlbXNlbHZlcyBjb250YWluIGR1cGxpY2F0ZSBJZCBzLiBXaWxsIGFsd2F5cyBpbmRpY2F0ZSBmYWxzZSB3aGVuIHRvbGQgdG8gaWdub3JlIGR1cGxpY2F0ZSBpdGVtIG51bWJlcnMuICovXG4gICAgcmVhZG9ubHkgY29udGFpbnNEdXBsaWNhdGVFbGVtZW50SWRzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGUgaWYgZHVwbGljYXRlZCBJdGVtTnVtYmVycyB3aXRoaW4gY2hpbGQgZWxlbWVudHMgYXJlIHRvIGJlIGlnbm9yZWQuIFdpbGwgbm90IHBlcmZvcm0gY2hlY2tzIGZvciBkdXBsaWNhdGVzIGlmIHllcy4gKi9cbiAgICBpZ25vcmVEdXBsaWNhdGVJdGVtTnVtYmVycz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHRoZSBQcm9qZWN0Q2F0YWxvZ3VlcyBwcm9wZXJ0eSB3aWxsIG5vdCBiZSBwcm9wYWdhdGVkIHRvIGNoaWxkIGVsZW1lbnRzLiBUaGlzIGlzIHVzZWZ1bCBpbiBtYXBwaW5nIHNjZW5hcmlvcywgd2hlcmUgeW91IHdhbnQgdG8gZGlzYWJsZSBwcm9wYWdhdGlvbiBmb3IgbXVsdGlwbGUgY2hhbmdlcywgYW5kIG9ubHkgZW5hYmxlIGl0IG9uY2UgeW91IGhhdmUgbWFwcGVkIGFsbCBwcm9wZXJ0aWVzICovXG4gICAgaWdub3JlUHJvamVjdENhdGFsb2d1ZVByb3BhZ2F0aW9uPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGUgaWYgZHVwbGljYXRlZCBJZHMgd2l0aGluIGNoaWxkIGVsZW1lbnRzIGFyZSB0byBiZSBpZ25vcmVkLiBXaWxsIG5vdCBwZXJmb3JtIGNoZWNrcyBmb3IgZHVwbGljYXRlcyBpZiB5ZXMuICovXG4gICAgaWdub3JlRHVwbGljYXRlRWxlbWVudElkcz86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFByaWNlIGNvbXBvc2l0aW9uIGJ5IHRheCByYXRlLiAqL1xuICAgIHRvdGFsUHJpY2VHcm9zc0J5VGF4UmF0ZT86IEdyb3NzUHJpY2VDb21wb25lbnREdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW50ZXJuYWxseSB1c2VkIHRvIGluZGljYXRlIHRoYXQgYSBwcm9wYWdhdGlvbiBpcyBjdXJyZW50bHkgZG9uZSwgdGhpcyBpcyBkb25lIHRvIG5vdCByZWNhbGN1bGF0ZSBldmVyeSBzaW5nbGUgcmVzdWx0IGZyb20gYSBsb3Qgb2YgY2hhbmdlcyB3aGVuIGl0IGlzIHN1ZmZpY2llbnQgdG8gY2FsY3VsYXRlIHRoZSB0b3RhbCBwcmljZSBhdCBvbmNlLiAqL1xuICAgIGlnbm9yZUNoaWxkUHJpY2VVcGRhdGVzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogTmV0IHByaWNlIGFmdGVyIGFwcGxpZWQgZGVkdWN0aW9ucy4gKi9cbiAgICByZWFkb25seSBkZWR1Y3RlZFByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBGYWN0b3Igb2YgYXBwbGllZCBkZWR1Y3Rpb25zIHRvIHRoZSB0b3RhbCBwcmljZS4gRm9yIGV4YW1wbGUsIFwiMC4wM1wiIG1lYW5zIHRoYXQgYSAzJSBkZWR1Y3Rpb24gaXMgdG8gYmUgYXBwbGllZC4gKi9cbiAgICBkZWR1Y3Rpb25GYWN0b3I/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBleGFjdCBhbW91bnQgb2YgdGhlIGRpc2NvdW50IGFzIGFuIGFic29sdXRlIHZhbHVlLiBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgcmVhc29ucywgc2V0dGluZyB0aGlzIHZhbHVlIHdpbGwgYWxzbyBzZXQgYSBjYWxjdWxhdGVkIHZhbHVlIHRvIERlZHVjdGlvbkZhY3Rvciwgd2hpY2ggd2lsbCBhbHNvIGJlIHVwZGF0ZWQgaW4gY2FzZSB0aGUgdG90YWwgcHJpY2UgaXMgY2hhbmdlZCB0byByZWZsZWN0IGEgcmVsYXRpdmUgdmFsdWUgb2YgdGhlIGFic29sdXRlIGRpc2NvdW50IHN1bS4gKi9cbiAgICBhYnNvbHV0ZURlZHVjdGlvbj86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogV2lsbCByZXR1cm4gdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZSdzIHRvdGFsIHByaWNlLiAqL1xuICAgIHJlYWRvbmx5IHRvdGFsUHJpY2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB0b3RhbCBncm9zcyBwcmljZSBmb3IgdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZSBpbmNsdWRpbmcgYWxsIGNoaWxkIGVsZW1lbnRzLiAqL1xuICAgIHJlYWRvbmx5IHRvdGFsUHJpY2VHcm9zcz86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVG90YWwgZ3Jvc3MgcHJpY2UgYWZ0ZXIgYXBwbGllZCBkZWR1Y3Rpb25zLiAqL1xuICAgIHJlYWRvbmx5IHRvdGFsUHJpY2VHcm9zc0RlZHVjdGVkPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgdGhlIFByaWNlVHlwZSBvZiB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlLCB3aGV0aGVyIGl0IHNob3VsZCBmYWN0b3IgaW50byB0b3RhbCBjb3N0cyBvciBub3QuICovXG4gICAgcHJpY2VUeXBlPzogUHJpY2VUeXBlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgYmlkZGVyLiAqL1xuICAgIGJpZGRlcj86IFBhcnR5SW5mb3JtYXRpb25EdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgZGlzY3JpbWluYXRvciBpcyB1c2VkIHRvIGlkZW50aWZ5IGRpZmZlcmVudCBiaWRkZXJzIGluIGEgcHJvamVjdC4gSXQgaXMgZGlmZmVyZW50IGZyb20gdGhlIElkZW50aWZpZXIgcHJvcGVydHkgaW4gdGhlIEJpZGRlciBpbiB0aGF0IHRoZSBCaWRkZXJEaXNjcmltaW5hdG9yIGlzIGludGVuZGVkIHRvIGJlIGEgbnVtZXJpY2FsIGlkZW50aWZpZXIgd2l0aGluIGEgcHJvamVjdCwgd2hpbGUgdGhlIElkZW50aWZpZXIgZG9lcyB1bmlxdWVseSBpZGVudGlmeSBhIGJpZGRlciBpbiB0aGUgc3lzdGVtIGluZGVwZW5kZW50IG9mIGEgc3BlY2lmaWMgcHJvamVjdC4gVGhpcyBwcm9wZXJ0eSBzaG91bGQgbWFwIHRvIFwiQmlldGVybnVtbWVyXCIgb3IgXCJCaWRkZXJOb1wiIGluIEdBRUIuICovXG4gICAgYmlkZGVyRGlzY3JpbWluYXRvcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyB1c2VkIHRvIHN0b3JlIHRoZSBHQUVCIFhNTCBJZCB3aXRoaW4gdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gVGhpcyBkYXRhIGlzIG5vdCB1c2VkIGZvciBhbnkgY2FsY3VsYXRpb25zIG9yIGV2YWx1YXRpb25zIGJ1dCBvbmx5IGZvciBHQUVCIHNlcmlhbGl6YXRpb24gYW5kIGRlc2VyaWFsaXphdGlvbi4gKi9cbiAgICBnYWViWG1sSWQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBQcm9qZWN0SW5mb3JtYXRpb24gdXNlZCB3aXRoaW4gdGhlIFByb2plY3QgaW4gd2hpY2ggdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZSBpcyBjb250YWluZWQuIFRoaXMgaXMgcmVmZXJlbmNlIGVxdWFsIHRvIHRoZSBQcm9qZWN0SW5mb3JtYXRpb24gdXNlZCBpbiB0aGUgcGFyZW50IHByb2plY3QuICovXG4gICAgcmVhZG9ubHkgcHJvamVjdEluZm9ybWF0aW9uPzogUHJvamVjdEluZm9ybWF0aW9uRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHNlcnZpY2Ugc3BlY2lmaWNhdGlvbnMgZXhjaGFuZ2UgcGhhc2UsIGkuZS4gdGhlIGN1cnJlbnQgc3RhdHVzIGluIHRoZSBwcm9qZWN0IGl0IGlzIGludGVuZGVkIHRvIGJlIHVzZWQgKHN1Y2ggYXMgcmVxdWVzdCBmb3Igb2ZmZXIsIG9mZmVyLCBhd2FyZGluZy4uLikuICovXG4gICAgZXhjaGFuZ2VQaGFzZT86IEV4Y2hhbmdlUGhhc2VEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzIHdoZXJlIHRoZSBzZXJ2aWNlIHNwZWNpZmljYXRpb24gb3JpZ2luYXRlcywgaS5lLiBmcm9tIGFuIGV4Y2hhbmdlIGZpbGUgZm9ybWF0IG9yIHNlbGYgY3JlYXRlZC4gSWYgYXBwbGljYWJsZSwgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBpcyBwcmVzZW50IGluIHRoZSBPcmlnaW5EZXRhaWwgcHJvcGVydHkuICovXG4gICAgb3JpZ2luPzogT3JpZ2luRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHByb3BlcnR5IGNvbXBsZW1lbnRzIHRoZSBPcmlnaW4gcHJvcGVydHkuIFNvbWUgZm9ybWF0cywgZS5nLiBHYWViWG1sIG1pZ2h0IGhhdmUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhdHRhY2hlZCwgZS5nLiBHQUVCIFhNTCBWMy4yIG9kZXIgR0FFQiBYTUwgVjMuMS4gVGhpcyBzdHJpbmcgcHJvcGVydHkgaXMgdXNlZCB0byBob2xkIHN1Y2ggZGF0YS4gVGhlIERhbmdsLkFWQSBtb2R1bGUgZG9lcyBub3QgaGF2ZSBhIGxpc3Qgb2YgcG9zc2libGUgdmFsdWVzLCBzaW5jZSB0aGlzIGlzIGRlZmluZWQgaW4gdGhlIG5hdGl2ZSBmb3JtYXQgYXNzZW1ibGllcywgZS5nLiBEYW5nbC5HQUVCIG9yIERhbmdsLk9lbm9ybS4gKi9cbiAgICBvcmlnaW5EZXRhaWw/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIENyZWF0aW9uIGRhdGUgb2YgdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gKi9cbiAgICBjcmVhdGlvbkRhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBEYXRlIGluZGljYXRpbmcgdW50aWwgd2hlbiBhbiBvZmZlciBoYXMgdG8gYmUgc3VibWl0dGVkLiBJbiBHZXJtYW4sIHRoaXMgaXMgb2Z0ZW4gY2FsbGVkIHRoZSBcIkVyw7ZmZm51bmdzdGVybWluXCIgKi9cbiAgICBvZmZlckJ5RGF0ZT86IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIERhdGUgaW5kaWNhdGluZyBieSB3aGVuIHRoZSBidXllciB3aWxsIHNlbGVjdCBhIGNvbnRyYWN0b3IuICovXG4gICAgZGVjaXNpb25EYXRlPzogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgICAvKiogRGF0ZSBvZiB3aGVuIHRoZSBvZmZlciAvIGJpZCB3YXMgY3JlYXRlZCAqL1xuICAgIGJpZERhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJZiBhIGNvbnN0cnVjdGlvbiBwcm9qZWN0IHJlcXVpcmVzIGEgd2FycmFudHkgYm9uZCwgdGhpcyBwcm9wZXJ0eSBpbmRpY2F0ZXMgdGhlIGFtb3VudCBhcyBhIHBlcmNlbnRhZ2UsIGUuZy4gJzAuMTVtJyBtZWFucyAxNSUgb2YgdGhlIGNvbnN0cnVjdGlvbiB0b3RhbCBhbW91bnQgYXMgYSB3YXJyYW50eSBib25kLiAqL1xuICAgIHdhcnJhbnR5Qm9uZFBlcmNlbnRhZ2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIGEgY29uc3RydWN0aW9uIHByb2plY3QgcmVxdWlyZXMgYW4gZXhlY3V0aW9uIGd1YXJhbnR0eSwgdGhpcyBwcm9wZXJ0eSBpbmRpY2F0ZXMgdGhlIGFtb3VudCBhcyBhIHBlcmNlbnRhZ2UsIGUuZy4gJzAuMTVtJyBtZWFucyAxNSUgb2YgdGhlIGNvbnN0cnVjdGlvbiB0b3RhbCBhbW91bnQgYXMgYW4gZXhlY3V0aW9uIGd1YXJhbnRlZS4gSW4gcHJhY3RpY2UsIHRoaXMgcGVyY2VudGFnZSBpcyB1c3VhbGx5IGRlZHVjdGVkIGZyb20gaW50ZXJtZWRpYXRlIGludm9pY2VzIGFuZCBvbmx5IGJpbGxlZCBpbiB0aGUgZmluYWwgaW52b2ljZS4gKi9cbiAgICBleGVjdXRpb25HdWFyYW50ZWVQZXJjZW50YWdlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBTdHJpbmcgaW5kaWNhdGluZyB3aGVyZSB0aGUgcGh5c2ljYWwgc3VibWlzc2lvbiBvZiB0aGUgb2ZmZXIgaXMgdGFraW5nIHBsYWNlLiAqL1xuICAgIHN1Ym1pc3Npb25Mb2NhdGlvbj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogRGVzY3JpcHRpb24gb2YgdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gKi9cbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIG5hbWUgb2YgdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gKi9cbiAgICBuYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIFByaWNlSW5mb3JtYXRpb24gY29udGFpbnMgZ2xvYmFsIGRhdGEgZm9yIHRoZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gV2hlbiBpbnNpZGUgYSBQcm9qZWN0LCBkbyBub3Qgc2V0IHRoaXMgcHJvcGVydHkgbWFudWFsbHkuICovXG4gICAgcHJpY2VJbmZvcm1hdGlvbj86IFByaWNlSW5mb3JtYXRpb25EdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWUgdGhhdCBhcmUgdXNlZCB3aXRoaW4gdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZS4gQ2F0YWxvZ3VlIHJlZmVyZW5jZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiAqL1xuICAgIHByb2plY3RDYXRhbG9ndWVzPzogQ2F0YWxvZ3VlRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFJlZmVyZW5jZWQgY2F0YWxvZ3VlcyBmb3IgdGhpcyBFbGVtZW50Q29udGFpbmVyQmFzZS4gKi9cbiAgICBjYXRhbG9ndWVSZWZlcmVuY2VzPzogQ2F0YWxvZ3VlUmVmZXJlbmNlRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBkYXRlIHdoZW4gdGhlIGV4ZWN1dGlvbiBvZiB0aGUgc2VydmljZXMgaXMgc2NoZWR1bGVkIHRvIHN0YXJ0ICovXG4gICAgcGxhbm5lZEV4ZWN1dGlvblN0YXJ0PzogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGRhdGUgdGhlbiB0aGUgZXhlY3V0aW9uIG9mIHRoZSBzZXJ2aWNlcyBpcyBzY2hlZHVsZWQgdG8gYmUgZmluaXNoZWQgKi9cbiAgICBwbGFubmVkRXhlY3V0aW9uRW5kPzogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGRhdGUgb24gd2hpY2ggdGhlIGNvbnRyYWN0IGhhcyBiZWVuIGF3YXJkZWQuIFRoaXMgbWF0Y2hlcyBcIkF1ZnRyYWdzZGF0dW1cIiBpbiBHQUVCICovXG4gICAgY29udHJhY3REYXRlPzogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyB2YWx1ZSBjYW4gYmUgdXNlZCB0byBpbmRpY2F0ZSB0aGUgbnVtYmVyIG9yIGlkZW50aWZpZXIgb2YgdGhlIGNvbnRyYWN0LiBJdCBtYXRjaGVzIFwiQXVmdHJhZ3NudW1tZXJcIiBpbiBHQUVCICovXG4gICAgY29udHJhY3RJZGVudGlmaWVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGluZGljYXRlcyBob3cgbG9uZyB0aGUgd2FycmFudHkgcGVyaW9kIGlzIGZvciB0aGlzIFNlcnZpY2VTcGVjaWZpY2F0aW9uICovXG4gICAgd2FycmFudHlEdXJhdGlvbj86IFdhcnJhbnR5RHVyYXRpb25EdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBkYXRlIG9uIHdoaWNoIHRoZSB3YXJyYW50eSBwZXJpb2QgZW5kcyAqL1xuICAgIHdhcnJhbnR5RW5kPzogRGF0ZSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGRhdGUgb24gd2hpY2ggdGhlIHNlcnZpY2VzIHJlbmRlcmVkIGJ5IHRoZSBiaWRkZXIgYXJlIHNjaGVkdWxlZCB0byBiZSBhcHByb3ZlZCBieSB0aGUgYnV5ZXIgKi9cbiAgICBhcHByb3ZhbERhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHNob3VsZCBzcGVjaWZ5IGhvdyB0aGUgYXBwcm92YWwgaXMgcGVyZm9ybWVkIGJ5IHRoZSBidXllci4gVGhpcyBtYXRjaGVzIFwiQWNjZXB0VHlwZVwiIGluIEdBRUIgKi9cbiAgICB0eXBlT2ZBcHByb3ZhbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBvcHRpb25hbCBzdHJpbmcgcHJvcGVydHkgaXMgc2hhcmVkIGJ5IGFsbCBJRWxlbWVudHMsIGFuZCBpbmRpY2F0ZXMgaWYgdGhlIGVsZW1lbnQgaXMgcGFydCBvZiBhbiBhZGRlbmR1bSwgYSAnTmFjaHRyYWcnIGluIEdlcm1hbi4gKi9cbiAgICBhZGRlbmR1bU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMsIGlmIHRoaXMgZWxlbWVudCBpcyBwYXJ0IG9mIGFuIGFkZGVuZHVtIGFuLCBpZiB5ZXMsIHdpdGggd2hhdCBzdGF0dXMuICovXG4gICAgYWRkZW5kdW1TdGF0dXM/OiBBZGRlbmR1bVN0YXR1c0R0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBob2xkcyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRoYXQncyBvbmx5IHZhbGlkIGluIGNvbW1lcmNlIGV4Y2hhbmdlIHBoYXNlcy4gKi9cbiAgICBjb21tZXJjZVByb3BlcnRpZXM/OiBTZXJ2aWNlU3BlY2lmaWNhdGlvbkNvbW1lcmNlUHJvcGVydGllc0R0byB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIEJhc2UgaW50ZXJmYWNlIGRlZmluaXRpb24gZm9yIGVsZW1lbnRzIHdpdGhpbiBhbiBFbGVtZW50Q29udGFpbmVyQmFzZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUVsZW1lbnREdG8ge1xuICAgIGVsZW1lbnRUeXBlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogVGhpcyBpcyB1c2VkIHRvIHN0b3JlIHRoZSBHQUVCIFhNTCBJZCB3aXRoaW4gdGhpcyBJRWxlbWVudC4gVGhpcyBkYXRhIGlzIG5vdCB1c2VkIGZvciBhbnkgY2FsY3VsYXRpb25zIG9yIGV2YWx1YXRpb25zIGJ1dCBvbmx5IGZvciBHQUVCIHNlcmlhbGl6YXRpb24gYW5kIGRlc2VyaWFsaXphdGlvbi4gKi9cbiAgICBnYWViWG1sSWQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgb3B0aW9uYWwgc3RyaW5nIHByb3BlcnR5IGlzIHNoYXJlZCBieSBhbGwgSUVsZW1lbnRzLCBhbmQgaW5kaWNhdGVzIGlmIHRoZSBlbGVtZW50IGlzIHBhcnQgb2YgYW4gYWRkZW5kdW0sIGEgJ05hY2h0cmFnJyBpbiBHZXJtYW4uICovXG4gICAgYWRkZW5kdW1OdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgcHJvamVjdENhdGFsb2d1ZXM/OiBDYXRhbG9ndWVEdG9bXSB8IHVuZGVmaW5lZDtcbiAgICBjYXRhbG9ndWVSZWZlcmVuY2VzPzogQ2F0YWxvZ3VlUmVmZXJlbmNlRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgZWxlbWVudFR5cGVEaXNjcmltaW5hdG9yOiBzdHJpbmc7XG59XG5cbi8qKiBUaGlzIGNsYXNzIGRlc2NyaWJlcyBhbiBleHRlcm5hbCBjYXRhbG9ndWUuIENhdGFsb2d1ZXMsIG9yIGNvbGxlY3Rpb25zLCBob2xkIGluZm9ybWF0aW9uIHRvIGNhdGVnb3JpemUgYW5kIGRlc2NyaWJlIGl0ZW1zLiBGb3IgZXhhbXBsZSwgdGhlIEdlcm1hbiBESU4gMjc2IGNvc3QgZ3JvdXAgc3RhbmRhcmRzIGRlc2NyaWJlIGRpZmZlcmVudCB0eXBlcyBvZiBjb3N0cyBmb3IgYnVpbGRpbmcgcHJvamVjdHMuIFdoZW4gcmVmZXJlbmNpbmcgdGhlIERJTiAyNzYgY2F0YWxvZ3VlIGFuZCBwcm92aWRpbmcgYW4gaXRlbSBrZXkgb3IgaWRlbnRpZmllciwgaXQgaXMgcG9zc2libGUgdG8gcmVmZXJlbmNlIGRhdGEgaW4gdGhpcyBjYXRhbG9ndWUuICovXG5leHBvcnQgaW50ZXJmYWNlIENhdGFsb2d1ZUR0byB7XG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGlzIGlzIHVzZWQgdG8gc3RvcmUgdGhlIEdBRUIgWE1MIElkIHdpdGhpbiB0aGlzIENhdGFsb2d1ZS4gVGhpcyBkYXRhIGlzIG5vdCB1c2VkIGZvciBhbnkgY2FsY3VsYXRpb25zIG9yIGV2YWx1YXRpb25zIGJ1dCBvbmx5IGZvciBHQUVCIHNlcmlhbGl6YXRpb24gYW5kIGRlc2VyaWFsaXphdGlvbi4gKi9cbiAgICBnYWViWG1sSWQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBuYW1lIHRoYXQgaXMgZ2l2ZW4gZm9yIHRoaXMgY2F0YWxvZ3VlLiAqL1xuICAgIG5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBjYXRhbG9ndWUuICovXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIGdpdmVuLCB0aGlzIGdpdmVzIGEgY2xhc3NpZmljYXRpb24gZm9yIHRoZSBjb250ZW50cyBvZiB0aGUgY2F0YWxvZ3VlICovXG4gICAgY2F0YWxvZ3VlVHlwZT86IENhdGFsb2d1ZVR5cGVEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgcHJvcGVydHkgbWF5IGhvbGQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY2F0YWxvZ3VlIHR5cGUuIEl0IGlzIGN1cnJlbnRseSBvbmx5IHVzZWQgaW4gR0FFQiBYTUwgZXhjaGFuZ2UgdG8gY2FycnkgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgYSBjYXRhbG9ndWUgdHlwZSwgYnV0IGl0J3Mgb3RoZXJ3aXNlIGp1c3QgYSBmcmVlIHRleHQgZmllbGQuICovXG4gICAgY2F0YWxvZ3VlVHlwZURldGFpbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgZW51bWVyYXRpb24gZGVzY3JpYmVzIHRoZSB0eXBlIG9mIGEgY2F0YWxvZ3VlLiBDYXRhbG9ndWVzLCBvciBjb2xsZWN0aW9ucywgaG9sZCBpbmZvcm1hdGlvbiB0byBjYXRlZ29yaXplIGFuZCBkZXNjcmliZSBpdGVtcy4gRm9yIGV4YW1wbGUsIHRoZSBHZXJtYW4gRElOIDI3NiBjb3N0IGdyb3VwIHN0YW5kYXJkcyBkZXNjcmliZSBkaWZmZXJlbnQgdHlwZXMgb2YgY29zdHMgZm9yIGJ1aWxkaW5nIHByb2plY3RzLiBXaGVuIHJlZmVyZW5jaW5nIHRoZSBESU4gMjc2IGNhdGFsb2d1ZSBhbmQgcHJvdmlkaW5nIGFuIGl0ZW0ga2V5IG9yIGlkZW50aWZpZXIsIGl0IGlzIHBvc3NpYmxlIHRvIHJlZmVyZW5jZSBkYXRhIGluIHRoaXMgY2F0YWxvZ3VlLiAqL1xuZXhwb3J0IGVudW0gQ2F0YWxvZ3VlVHlwZUR0byB7XG4gICAgVW5rbm93biA9IFwiVW5rbm93blwiLFxuICAgIExvY2F0aW9uID0gXCJMb2NhdGlvblwiLFxuICAgIERJTjI3NiA9IFwiRElOMjc2XCIsXG4gICAgQ29zdFVuaXQgPSBcIkNvc3RVbml0XCIsXG4gICAgV29ya0NhdGVnb3J5ID0gXCJXb3JrQ2F0ZWdvcnlcIixcbiAgICBPZW5vcm1CMTgwMUNvc3RHcm91cCA9IFwiT2Vub3JtQjE4MDFDb3N0R3JvdXBcIixcbiAgICBCSU0gPSBcIkJJTVwiLFxuICAgIEF0dGFjaG1lbnQgPSBcIkF0dGFjaG1lbnRcIixcbn1cblxuLyoqIFRoaXMgY2xhc3MgaXMgdXNlZCB0byBsaW5rIGRhdGEgYmV0d2VlbiBjYXRhbG9ndWVzIGFuZCBvYmplY3RzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXRhbG9ndWVSZWZlcmVuY2VEdG8ge1xuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogVGhpcyBwb2ludHMgdG8gdGhlIGl0ZW0gaW4gdGhlIGNhdGFsb2d1ZSBpdHNlbGYuIFRoaXMgbWVhbnMgdGhhdCwgZm9yIGV4YW1wbGUgd2hlbiB0aGlzIHF1YW50aXR5IGFzc2lnbm1lbnQgcmVmZXJlbmNlcyBhIFwiRElOIDI3NlwiIGNhdGFsb2d1ZSwgdGhpcyBwcm9wZXJ0eSBpbmRpY2F0ZXMgdGhlIG51bWJlciAvIGlkZW50aWZpZXIgLyBrZXkgaW4gRElOIDI3NiB0aGF0IGlzIHJlZmVyZW5jZWQuICovXG4gICAgY2F0YWxvZ3VlUmVmZXJlbmNlS2V5Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgSWQgb2YgdGhlIENhdGFsb2d1ZVJlZmVyZW5jZSB0aGF0IGlzIHRhcmdldGVkIGJ5IHRoaXMgaXRlbS4gU2V0IHRoaXMgcHJvcGVydHkgdG8gc2V0IHRoZSByZWZlcmVuY2VkIGNhdGFsb2d1ZS4gKi9cbiAgICBjYXRhbG9ndWVSZWZlcmVuY2VJZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlc2UgYXJlIENhdGFsb2d1ZVJlZmVyZW5jZSB0aGF0IGFyZSB1c2VkIHdpdGhpbiB0aGlzIFNlcnZpY2VTcGVjaWZpY2F0aW9uLiBDYXRhbG9ndWUgcmVmZXJlbmNlcyBhcmUgdXNlZCB0byBkZXNjcmliZSBjYXRhbG9ndWVzLCBvciBjb2xsZWN0aW9ucywgdGhhdCBjYW4gYmUgdXNlZCB0byBkZXNjcmliZSBlbGVtZW50cyB3aXRoIGNvbW1vbmx5IGtub3duIHByb3BlcnRpZXMuIEZvciBleGFtcGxlLCBRdWFudGl0eUFzc2lnbm1lbnRzIHVzZSB0aGVzZSB0byBjYXRlZ29yaXplIHRoZW1zZWx2ZXMuICovXG4gICAgcHJvamVjdENhdGFsb2d1ZXM/OiBDYXRhbG9ndWVEdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyByZXR1cm5zIHRoZSByZWZlcmVuY2VkIGNhdGFsb2d1ZS4gV2lsbCByZXR1cm4gbnVsbCBpZiB0aGVyZSBpcyBubyByZWZlcmVuY2Ugb3IgdGhlIGNhdGFsb2d1ZSBpcyBub3QgcHJlc2VudCBpbiB0aGUgUHJvamVjdENhdGFsb2d1ZXMuICovXG4gICAgcmVhZG9ubHkgY2F0YWxvZ3VlPzogQ2F0YWxvZ3VlRHRvIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogQSBQb3NpdGlvbiBpcyB0aGUgbWFpbiBpdGVtIHR5cGUgaW4gYSBTZXJ2aWNlU3BlY2lmaWNhdGlvbiwgaG9sZGluZyBpbmZvcm1hdGlvbiBhYm91dCB0YXNrcyB0byBiZSBkb25lLCB0aGVpciBwcmljZXMsIGRlc2NyaXB0aW9uLCBhbW91bnRzIGV0Yy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9zaXRpb25EdG8gZXh0ZW5kcyBJRWxlbWVudER0byB7XG4gICAgLyoqIFdpbGwgcmV0dXJuIHRoZSBwcmljZSBwZXIgdW5pdCwgcm91bmRlZCBhY2NvcmRpbmcgdG8gdGhlIHByb2plY3Qgc2V0dGluZ3Mgb3IgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhyZWUgZGVjaW1hbCBwbGFjZXMgKi9cbiAgICByZWFkb25seSB1bml0UHJpY2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFlvdSBjYW4gdXNlIHRoaXMgcHJvcGVydHkgdG8gZGlyZWN0bHkgc2V0IHRoZSB1bml0IHByaWNlIGZvciB0aGlzIHBvc2l0aW9uLiBUaGlzIHdpbGwgb3ZlcnJpZGUgYW55IGdpdmVuIFByaWNlQ29tcG9uZW50cyAqL1xuICAgIHVuaXRQcmljZU92ZXJyaWRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBXaWxsIHJldHVybiB0aGlzIFBvc2l0aW9uJ3MgdG90YWwgcXVhbnRpdHksIHJvdW5kZWQgdG8gdGhyZWUgZGVjaW1hbCBwbGFjZXMuICovXG4gICAgcmVhZG9ubHkgcXVhbnRpdHk/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFlvdSBjYW4gdXNlIHRoaXMgcHJvcGVydHkgdG8gZGlyZWN0bHkgc2V0IHRoZSBxdWFudGl0eSBmb3IgdGhpcyBwb3NpdGlvbi4gVGhpcyB3aWxsIG92ZXJyaWRlIGFueSBnaXZlbiBRdWFudGl0eUNvbXBvbmVudHMgKi9cbiAgICBxdWFudGl0eU92ZXJyaWRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGluZGljYXRlcyB0cnVlIGlmIHRoaXMgc3BlY2lmaWMgcG9zaXRpb24gaXMgc3BlY2lmaWVkIGFzIGEgY29tcGxlbWVudGluZyBwb3NpdGlvbiBmb3IgYW55IGJhc2UgcG9zaXRpb24uICovXG4gICAgaXNDb21wbGVtZW50aW5nUG9zaXRpb24/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJZiBJc0NvbXBsZW1lbnRpbmdQb3NpdGlvbiBpcyBzZXQgdG8gdHJ1ZSwgdGhpcyB3aWxsIGluZGljYXRlIHdoaWNoIGJhc2UgcG9zaXRpb25zIGFyZSB0YXJnZXRlZCBieSB0aGlzIGNvbXBsZW1lbnRpbmcgcG9zaXRpb24uICovXG4gICAgY29tcGxlbWVudHNQb3NpdGlvbnM/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogWW91IGNhbiB1c2UgdGhpcyBwcm9wZXJ0eSB0byBkaXJlY3RseSBzcGVjaWZ5IHRoZSB0b3RhbCBwcmljZSBvZiB0aGlzIHBvc2l0aW9uIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgc3VtIG9mIHRoZSB0b3RhbCBwcmljZXMgb2YgYmFzZSBwb3NpdGlvbnMgdGhhdCB0aGlzIHBvc2l0aW9uIGNvbXBsZW1lbnRzLiBJdCB3aWxsIGVzc2VudGlhbGx5IHNldCB0aGUgdG90YWwgcHJpY2UgZm9yIHRoaXMgcG9zaXRpb24gdG8gdGhlIHN1bSBvZiBhbGwgdG90YWwgcHJpY2VzIG9mIHRoZSBwb3NpdGlvbnMgc3BlY2lmaWVkIGluIENvbXBsZW1lbnRzUG9zaXRpb25zIG11bHRpcGxpZWQgYnkgdGhlIHBlcmNlbnRhZ2UgaGVyZS4gSWYgcHJlc2VudCwgdGhpcyBoYXMgcHJlY2VkZW5jZSBvdmVyIFVuaXRQcmljZU92ZXJyaWRlIGFzIHdlbGwgYXMgUXVhbnRpdHlPdmVycmlkZS4gKi9cbiAgICBjb21wbGVtZW50aW5nUHJpY2VQZXJjZW50YWdlT3ZlcnJpZGU/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYSByZWFkIG9ubHkgcHJvcGVydHkgc2hvd2luZyB0aGUgdG90YWwgcHJpY2Ugb2YgdGhpcyBwb3NpdGlvbnMgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBzdW0gb2YgdGhlIHRvdGFsIHByaWNlcyBvZiBhbGwgYmFzZSBwb3NpdGlvbnMsIGluIGNhc2UgdGhpcyBwb3NpdGlvbiBpcyBhIGNvbXBsZW1lbnRpbmcgcG9zaXRpb25zLiBJZiB0aGlzIHBvc2l0aW9uIGlzIG5vdCBhIGNvbXBsZW1lbnRpbmcgcG9zaXRpb24sIHRoaXMgd2lsbCBiZSBudWxsLiBBbHNvLCBpZiBubyBwcmljZXMgYXJlIHByZXNlbnQsIHRoaXMgd2lsbCBhbHNvIGJlIG51bGwuICovXG4gICAgY29tcGxlbWVudGluZ1ByaWNlUGVyY2VudGFnZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHRhZyBvZiB0aGUgdW5pdCB1c2VkIGZvciB0aGlzIHBvc2l0aW9ucyBxdWFudGl0eS4gKi9cbiAgICB1bml0VGFnPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgY29tcG9uZW50cyBmb3IgbGFib3VyIHRpbWUgaW4gdGhpcyBQb3NpdGlvbi4gKi9cbiAgICBsYWJvdXJDb21wb25lbnRzPzogTGFib3VyUHJpY2VDb21wb25lbnREdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBzaW5nbGUgcHJpY2UgY29tcG9uZW50cyBpbiB0aGlzIFBvc2l0aW9uLiBQcmljZSBjb21wb25lbnRzIHNob3VsZCBub3QgYmUgaGFuZGxlZCBkaXJlY3RseSBvbiBhIHBlci1wb3NpdGlvbiBiYXNpcyBidXQgc2V0IGdsb2JhbGx5IGluIHRoZSBwYXJlbnQgUHJvamVjdHMgUHJvamVjdEluZm9ybWF0aW9uLiAqL1xuICAgIHByaWNlQ29tcG9uZW50cz86IFByaWNlQ29tcG9uZW50RHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBxdWFudGl0eSBjb21wb25lbnRzIG9mIHRoaXMgUG9zaXRpb24uICovXG4gICAgcXVhbnRpdHlDb21wb25lbnRzPzogQ2FsY3VsYXRpb25EdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogRnVydGhlciBzdHJ1Y3R1cmluZyBvZiB0aGlzIFBvc2l0aW9uLiAqL1xuICAgIHN1YkRlc2NyaXB0aW9ucz86IFN1YkRlc2NyaXB0aW9uRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluZGljYXRlcyB0aGUgc3RhdHVzIG9mIHRoaXMgUG9zaXRpb24ncyBjb21pc3Npb24uICovXG4gICAgY29taXNzaW9uU3RhdHVzPzogQ29taXNzaW9uU3RhdHVzRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBBIGxpc3Qgb2YgcG9zaXRpb25zIHRoYXQgY29tcGxlbWVudCB0aGlzIFBvc2l0aW9uLiBUaGUgcG9zaXRpb25zIGFyZSByZWZlcmVuY2VkIGJ5IHRoZWlyIEdVSURzLiBJdCBtaWdodCBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggQ29tcGxlbWVudGVkQnlRdWFudGl0aWVzIGluIGNhc2UgdGhhdCBvbmx5IGEgZ2l2ZW4gcXVhbnRpdHkgaXMgY29tcGxlbWVudGVkIGJ5IHBvc2l0aW9ucy4gKi9cbiAgICBjb21wbGVtZW50ZWRCeT86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBXaWxsIGluZGljYXRlIGlmIHRoaXMgUG9zaXRpb24gaXMgY29tcGxlbWVudGVkIGluIHRoaXMgU2VydmljZVNwZWNpZmljYXRpb24gYnkgb3RoZXIgUG9zaXRpb25zLiBJdCBjYW4gbm90IGJlIHNldCB0byBmYWxzZSB3aGVuIHRoZXJlIGFyZSBlbnRyaWVzIGluIHRoZSBDb21wbGVtZW50ZWRCeSBwcm9wZXJ0eS4gKi9cbiAgICBjb21wbGVtZW50ZWQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgdGhhdCB0aGUgYW1vdW50IGZvciB0aGlzIFBvc2l0aW9uIGlzIHRvIGJlIHNldCBieSB0aGUgYmlkZGVyLiAqL1xuICAgIGFtb3VudFRvQmVFbnRlcmVkQnlCaWRkZXI/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGJpZGRlciBkZW1hbmRzIGZvciBwcmljZXMgdG8gYmUgYnJva2VuIHVwIGludG8gdGhlaXIgcHJpY2UgY29tcG9uZW50cy4gKi9cbiAgICBwcmljZUNvbXBvc2l0aW9uUmVxdWlyZWQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhpcyBQb3NpdGlvbiBzaG91bGQgdXNlIGEgZGlmZmVyZW50IFRheFJhdGUgdGhhbiB3aGF0IGlzIHRoZSBkZWZhdWx0IGZvciB0aGUgUHJvamVjdC4gKi9cbiAgICB1c2VEaWZmZXJlbnRUYXhSYXRlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogV2lsbCByZXR1cm4gZWl0aGVyIHRoZSBwYXJlbnQgU2VydmljZVNwZWNpZmljYXRpb24ncyBUYXhSYXRlIG9yIGl0J3Mgb3duIGlmIGl0IGhhcyBhIGRpZmZlcmVudCB2YWx1ZS4gKEZvciBleGFtcGxlLCBpbiBHZXJtYW55IFdhdGVyIGhhcyBhIGRpZmZlcmVudCBUYXhSYXRlIHRoYW4gcmVndWxhciBQb3NpdGlvbnMpICovXG4gICAgdGF4UmF0ZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIEl0ZW1OdW1iZXIgZm9yIHRoaXMgUG9zaXRpb24uICovXG4gICAgaXRlbU51bWJlcj86IEl0ZW1OdW1iZXJEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSByYXRlIG9mIGRlZHVjdGlvbnMsIGkuZS4gMC4xMm0gbWVhbnMgMTIlIHByaWNlIGRlZHVjdGlvbi4gKi9cbiAgICBkZWR1Y3Rpb25GYWN0b3I/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFJldHVybnMgdGhlIHByb2R1Y3Qgb2YgVW5pdFByaWNlIHRpbWVzIFF1YW50aXR5LiAqL1xuICAgIHJlYWRvbmx5IHRvdGFsUHJpY2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB0b3RhbCBncm9zcyBwcmljZSBmb3IgdGhpcyBQb3NpdGlvbi4gKi9cbiAgICByZWFkb25seSB0b3RhbFByaWNlR3Jvc3M/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRvdGFsIGdyb3NzIHByaWNlIGFmdGVyIGFwcGxpZWQgZGVkdWN0aW9ucy4gKi9cbiAgICByZWFkb25seSB0b3RhbFByaWNlR3Jvc3NEZWR1Y3RlZD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogTmV0IHByaWNlIGFmdGVyIGFwcGxpZWQgZGVkdWN0aW9ucy4gUGxlYXNlIGJlIGF3YXJlIHRoYXQgdGhpcyBpcyB0aGUgdG90YWwgcHJpY2UsIGZyb20gVG90YWxQcmljZSwgbm90IHRoZSB1bml0IHByaWNlIG9mIHRoZSBwb3NpdGlvbi4gKi9cbiAgICByZWFkb25seSBkZWR1Y3RlZFByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGluZGljYXRlcyB0aGUgdHlwZSBvZiBhIHBvc2l0aW9uLiBJZiB0aGlzIGlzIGFuIGFsdGVybmF0aXZlIHBvc2l0aW9uLCBpdHMgQWx0ZXJuYXRpdmVUbyBwcm9wZXJ0eSBzaG91bGQgYmUgc2V0IHRvIHRoZSBpZCBvZiB0aGUgcG9zaXRpb24gaXQgY2FuIHJlcGxhY2UuICovXG4gICAgcG9zaXRpb25UeXBlPzogUG9zaXRpb25UeXBlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgdGhlIFByaWNlVHlwZSBvZiB0aGlzIFBvc2l0aW9uLiAqL1xuICAgIHByaWNlVHlwZT86IFByaWNlVHlwZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgaWYgdGhpcyBwb3NpdGlvbiBpcyByZWd1bGFyIG9yIGRlc2NyaWJpbmcgYSBsYWJvdXIgLyBob3VybHkgcGFpZCB3b3JrIHNlcnZpY2UgKi9cbiAgICBzZXJ2aWNlVHlwZT86IFNlcnZpY2VUeXBlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHByb3BlcnR5IGRlc2NyaWJlcyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IGEgcHJvZHVjdCBiZWluZyB1c2VkIHdpdGhpbiB0aGlzIFBvc2l0aW9uLiBGb3IgZXhhbXBsZSwgYSBwaXBlIHBvc2l0aW9uLCBwZXIgbGVuZ3RoIHVuaXQsIGNvdWxkIGJlIGNvbXBvc2VkIG9mIGRpZmZlcmVudCBwaXBlIHNlZ21lbnRzLCBmaXR0aW5nIGFuZCBvdGhlciBhY2Nlc3NvcnkgYXJ0aWNsZXMuICovXG4gICAgcHJvZHVjdERhdGE/OiBQcm9kdWN0RGF0YUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogU2hvcnQgZGVzY3JpcHRpb24gZm9yIHRoaXMgRGVzY3JpcHRpb25CYXNlIGVsZW1lbnQuICovXG4gICAgc2hvcnRUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBEZXRhaWxlZCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBEZXNjcmlwdGlvbkJhc2UgZWxlbWVudC4gV2hlbiB0aGUgSHRtbExvbmdUZXh0IGlzIHNldCwgdGhpcyBpcyBhdXRvbWF0aWNhbGx5IG92ZXJ3cml0dGVuIGFuZCBmaWxsZWQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgcGxhaW4gdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgSHRtbCB0ZXh0LiBWaWNlIHZlcnNhLCBzZXR0aW5nIHRoaXMgcHJvcGVydHkgb3ZlcnJpZGVzIHRoZSBIdG1sTG9uZ1RleHQuICovXG4gICAgbG9uZ1RleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgY29udGFpbnMgdGhlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIExvbmd0ZXh0LiBXaGVuIHRoZSBMb25nVGV4dCBpcyBzZXQsIHRoaXMgaXMgYXV0b21hdGljYWxseSBvdmVyd3JpdHRlbiBhbmQgZmlsbGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBsYWludGV4dC4gVmljZSB2ZXJzYSwgc2V0dGluZyB0aGlzIHByb3BlcnR5IG92ZXJyaWRlcyB0aGUgTG9uZ1RleHQuIEdBRUIgOTAgYW5kIEdBRUIgMjAwMCBleHBvcnRzIGRvIG5vdCBzdXBwb3J0IGFueSBpbWFnZSBmdW5jdGlvbmFsaXR5LiBJbiBHQUVCIFhNTCwgb25seSBpbWFnZXMgdGhhdCB1c2UgYW4gZW1iZWRkZWQgQmFzZTY0IGRhdGEgdXJpIGFyZSBleHBvcnRlZCwgcmVndWxhciB1cmwgcmVmZXJlbmNlcyBhcmUgY2xlYXJlZCBiZWZvcmUgd3JpdHRlbiBvdXQuICovXG4gICAgaHRtbExvbmdUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhpcyBEZXNjcmlwdGlvbkJhc2UgZWxlbWVudCBjb250YWlucyBCdXllciBvciBCaWRkZXIgYWRkaXRpb25zIHRvIHRoZSB0ZXh0LiAqL1xuICAgIGFkZGl0aW9uVHlwZT86IEFkZGl0aW9uVHlwZUR0byB8IHVuZGVmaW5lZDtcbiAgICBlbGVtZW50VHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogUXVhbnRpdHkgYXNzaWdubWVudHMgYXJlLCBpbiBjb250cmFzdCB0byBTdWJEZXNjcmlwdGlvbnMsIHVzZWQgdG8gY2F0ZWdvcml6ZSBwYXJ0cyBvZiB0aGlzIFBvc2l0aW9uLiBGb3IgZXhhbXBsZSwgaXQgY291bGQgYmUgY2F0ZWdvcml6ZWQgYnkgY29zdCBncm91cCAtIGUuZy4gYSBQb3NpdGlvbiBkZXNjcmliaW5nIGNvbmNyZXRlIHdhbGxzIGNvdWxkIGZvbGxvdyB0aGUgR2VybWFuIERJTiAyNzYgQ29zdCBHcm91cHMgU3RhbmRhcmQgYW5kIHNwZWNpZnkgdGhhdCBvZiB0aGUgdG90YWwgMS4wMDBtwrIgd2FsbCwgNTAwbcKyIGFyZSBjbGFzc2lmaWVkIGFzIGV4dGVyaW9yIHdhbGxzIGFuZCA1MDBtwrIgYXJlIGNsYXNzaWZpZWQgYXMgaW50ZXJpb3Igd2FsbHMuIFRoZXkgd291bGQgdGhlbiBoYXZlIGRpZmZlcmVudCBjb3N0IGdyb3VwcyBhc3NvY2lhdGVkLCBlLmcuIGZvciBhY2NvdW50aW5nIHB1cnBvc2VzLiAqL1xuICAgIHF1YW50aXR5QXNzaWdubWVudHM/OiBRdWFudGl0eUFzc2lnbm1lbnREdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIENvbW1lcmNlUHJvcGVydGllcyBzdXBwb3J0IHNwZWNpYWxpemVkIGluZm9ybWF0aW9uIHRoYXQgaXMgb25seSB1c2VmdWwgaW4gR0FFQiBYTUwgOXggZGF0YSBleGNoYW5nZSBwaGFzZXMuIEl0IGlzIGludGVuZGVkIHRvIHByb3ZpZGUgYXJ0aWNsZSBpbmZvcm1hdGlvbi4gKi9cbiAgICBjb21tZXJjZVByb3BlcnRpZXM/OiBDb21tZXJjZVByb3BlcnRpZXNEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIHRoaXMgcG9zaXRpb24gaXMgYW4gQWx0ZXJuYXRpdmUsIHRoZW4gdGhpcyBwcm9wZXJ0eSBzaG91bGQgcG9pbnQgdG8gdGhlIGlkIG9mIHRoZSBwb3NpdGlvbiBpbiB0aGlzIHNlcnZpY2Ugc3BlY2lmaWNhdGlvbiB0aGF0IGl0IGNhbiByZXBsYWNlLiBJZiB0aGlzIGlzIHNldCB0byBhIHZhbHVlLCB5b3UgY2FuIG9wdGlvbmFsbHkgYWxzbyBzcGVjaWZ5IGFuIGlkZW50aWZpZXIgdmlhIEFsdGVybmF0aXZlSWRlbnRpZmllciB0byBzcGVjaWZpeSBtdWx0aXBsZSBwb3NpdGlvbnMgdGhhdCBtdXN0IGJlIHVzZWQgdG9nZXRoZXIgdG8gYmUgYW4gYWx0ZXJuYXRpdmUgdG8gYSBzaW5nbGUgYmFzZSBwb3NpdGlvbi4gKi9cbiAgICBhbHRlcm5hdGl2ZVRvPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGFuIG9wdGlvbmFsIHByb3BlcnR5IHRoYXQgY2FuIGJlIHVzZWQgdG9nZXRoZXIgd2l0aCBBbHRlcm5hdGl2ZVRvLiBJZiB0aGlzIGlzIHNldCwgeW91IGNhbiBpbmRpY2F0ZSB3aGljaCBhbHRlcm5hdGl2ZSBncm91cCBhIHNwZWNpZmljIHBvc2l0aW9uIGlzIGFzc2lnbmVkIHRvLiBUaGF0IHdheSwgaWYgeW91IHNwZWNpZml5IG11bHRpcGxlIGFsdGVybmF0aXZlIFBvc2l0aW9ucyB3aXRoIHRoZSBzYW1lIEFsdGVybmF0aXZlSWRlbnRpZmllciwgeW91IGNhbiBpbmRpY2F0ZSB0aGF0IHRvIHJlcGxhY2UgYSBzaW5nbGUgYmFzZSBQb3NpdGlvbiwgbXVsdGlwbGUgYWx0ZXJuYXRpdmUgUG9zaXRpb25zIHNob3VsZCBiZSB1c2VkLiBUaGlzIHByb3BlcnR5IGlzIG5vdCBjaGVja2VkIG9yIG1hbmFnZWQgYXV0b21hdGljYWxseSwgc28gaXQgaXMgcG9zc2libGUgZm9yIHRoaXMgcHJvcGVydHkgdG8gYmVjb21lIGludmFsaWQsIGJ5IGZvciBleGFtcGxlIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBidXQgbm90IHNldHRpbmcgYSBiYXNlIHBvc2l0aW9uIHZpYSBBbHRlcm5hdGl2ZVRvLiAqL1xuICAgIGFsdGVybmF0aXZlSWRlbnRpZmllcj86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhbiBvcHRpb25hbCBwcm9wZXJ0eSB0aGF0IGNhbiBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggQWx0ZXJuYXRpdmVUbyBhbmQgQWx0ZXJuYXRpdmVHcm91cElkZW50aWZpZXIuIElmIHRoaXMgaXMgc2V0LCB5b3UgY2FuIGluZGljYXRlIHdoaWNoIGFsdGVybmF0aXZlIGdyb3VwIGEgc3BlY2lmaWMgcG9zaXRpb24gaXMgYXNzaWduZWQgdG8uIFRoYXQgd2F5LCB5b3UgY2FuIHNwZWNpZnkgdGhlIGlkIChpbiBpbnRlZ2VyIGZvcm1hdCkgZm9yIHRoZSBhbHRlcm5hdGl2ZSBncm91cCB0aGlzIHBvc2l0aW9uIGJlbG9uZ3MgdG8uIEl0J3MgZGlmZmVyZW50IHRvIEFsdGVybmF0aXZlSWRlbnRpZmllciBpbiB0aGF0IHRoZSBvdGhlciBwcm9wZXJ0eSBkZXNjcmliZXMgdGhlIGlkIG9mIHRoZSBncm91cCwgd2hpbGUgdGhpcyBwcm9wZXJ0eSBoZXJlIGRlc2NyaWJlcyB0aGUgZ3JvdXAgaXRzZWxmLiBJZiBhIHBvc2l0aW9uIG9ubHkgaGFzIHNldCBBbHRlcm5hdGl2ZUdyb3VwSWRlbnRpZmllciBidXQgbm90IEFsdGVybmF0aXZlSWRlbnRpZmllciwgdGhlbiBpdCBsaWtlbHkgaXMgYSBiYXNlIHBvc2l0aW9uIGZvciBhIHNwZWNpZmljIGdyb3VwLiBUaGlzIHdhcyBpbnRyb2R1Y2VkIGluIHZlcnNpb24gdjIuOS4wIHRvIGJlIGFibGUgdG8gbW9kZWwgYm90aCBwb3NpdGlvbiBhbmQgZ3JvdXAgaWRzIGZvciBhbHRlcm5hdGl2ZSBncm91cCBjb21iaW5hdGlvbnMuIFRoaXMgcHJvcGVydHkgaXMgbm90IGNoZWNrZWQgb3IgbWFuYWdlZCBhdXRvbWF0aWNhbGx5LCBzbyBpdCBpcyBwb3NzaWJsZSBmb3IgdGhpcyBwcm9wZXJ0eSB0byBiZWNvbWUgaW52YWxpZCwgYnkgZm9yIGV4YW1wbGUgc2V0dGluZyB0aGlzIHByb3BlcnR5IGJ1dCBub3Qgc2V0dGluZyBhIGJhc2UgcG9zaXRpb24gdmlhIEFsdGVybmF0aXZlVG8uICovXG4gICAgYWx0ZXJuYXRpdmVHcm91cElkZW50aWZpZXI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIHRoaXMgaXMgdHJ1ZSwgaXQgaW5kaWNhdGVzIHRoYXQgdGhlIHBvc2l0aW9uIGlzIGludGVuZGVkIHRvIGJlIGEgbHVtcCBzdW0sIFwiUGF1c2NoYWxcIiBpbiBHZXJtYW4uIFRoaXMgbWVhbnMgdGhlIHBvc2l0aW9uIHRvdGFsIHByaWNlIHRoYXQgaXMgYmVpbmcgaW52b2ljZWQgc2hvdWxkIG5vdCBkZXBlbmQgb24gdGhlIGFjdHVhbCBxdWFudGl0eS4gSW4gcHJhY3RpY2UsIHBhcnRpYWwgaW52b2ljZXMgYXJlIHN0aWxsIG9mdGVuIHVzZWQgZm9yIHBhcnRpYWwgc2VydmljZXMgcmVuZGVyZWQuIFRoaXMgcHJvcGVydHkgZG9lcyBub3QgYWZmZWN0IHRoZSBwcmljZSBjYWxjdWxhdGlvbiBmb3IgdGhpcyBwb3NpdGlvbi4gVHlwaWNhbGx5LCB0aGUgUXVhbnRpdHkgc2hvdWxkIGJlIHNldCB0byAxLjAgd2hlbiB0aGlzIGZsYWcgaXMgdXNlZC4gKi9cbiAgICBpc0x1bXBTdW0/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlkZW50aWZpZXIgY2FuIGJlIHVzZWQgdG8gcG9pbnQgdG8gdGhlIElkIG9mIGEgcG9zaXRpb24gaW4gdGhlIHNhbWUgU2VydmljZVNwZWNpZmljYXRpb24gdGhhdCBhY3RzIGFzIGEgYmFzZSBwb3NpdGlvbi4gSXQgbWF0Y2hlcyBcIkJlenVnc3Bvc2l0aW9uXCIgaW4gR0FFQi4gVGhpcyBjYW4gYmUgdXNlZCBmb3IgcG9zaXRpb25zIHRoYXQgcmVwZWF0IHBhcnRpYWxseSBvciBhcmUgbGlua2VkIHRvZ2V0aGVyICovXG4gICAgcmVwZXRpdGlvblRvPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHYxQ29tcGF0aWJpbGl0eVByaWNlVHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyByZXByZXNlbnRzIGEgc3RhbmRhcmRpemVkIGRlc2NyaXB0aW9uLiBUaGlzIG1lYW5zIHRoYXQgaW5zdGVhZCBvZiBzb2xlbHkgcmVseWluZyBvbiB0ZXh0cyB0byBkZXNjcmliZSBhIHNlcnZpY2UsIGV4dGVybmFsIHN0YW5kYXJkcyBhbmQgZGVmaW5pdGlvbnMgYXJlIHJlZmVyZW5jZWQgZm9yIGEgY29tbW9uIHVuZGVyc3RhbmRpbmcuICovXG4gICAgc3RhbmRhcmRpemVkRGVzY3JpcHRpb24/OiBTdGFuZGFyZGl6ZWREZXNjcmlwdGlvbkR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBsaXN0IGNvbnRhaW5zIHJlZmVyZW5jZXMgdG8gcG9zaXRpb25zIHRoYXQgY29tcGxlbWVudCB0aGlzIG9uZSwgYWRkaXRpb25hbGx5IGFsc28gc3BlY2lmeWluZyBhIHF1YW50aXR5IGZvciB3aGljaCB0aGUgYWRkaXRpb24gaXMgaW50ZW5kZWQuIFRoaXMgZG9lcyBub3QgcmVwbGFjZSB0aGUgQ29tcGxlbWVudGVkQnkgcHJvcGVydHkgYW5kIHRoZXJlIGFyZSBubyBhdXRvbWF0aWMgY2hlY2tzIGJlaW5nIGRvbmUgYmV0d2VlbiB0aGVzZSB0d28gcHJvcGVydGllcywgc28gaXQncyB1cCB0byB0aGUgdXNlciBjb2RlIHRvIGVuc3VyZSBkZWxldGlvbnMgKGFuZCBhZGRpdGlvbnMsIGlmIGRlc2lyZWQpIGFyZSBwZXJmb3JtZWQgZm9yIGJvdGggcHJvcGVydGllcy4gV2hlbiBjb3B5aW5nIHdpdGhpbmcga2VlcGluZyBJZHMsIHRoaXMgbGlzdCB3aWxsIG5vdCBiZSBwYXJ0IG9mIHRoZSBjb3B5IHByb2Nlc3MsIHNpbmNlIGl0IHdvdWxkIG9ubHkgY29udGFpbiBxdWFudGl0aWVzIHdpdGhvdXQgYWN0dWFsIHBvc2l0aW9uIHJlZmVyZW5jZXMuIENvbnRhaW5lcnMsIGhvd2V2ZXIsIHdpbGwgcmVidWlsZCB0aGUgbGlzdCB3aXRoIHVwZGF0ZWQgcG9zaXRpb24gcmVmZXJlbmNlcyB3aGVuIGNvcHlpbmcgcG9zaXRpb25zIHRoYXQgY29udGFpbiBlbnRyaWVzIGhlcmUuICovXG4gICAgY29tcGxlbWVudGVkQnlRdWFudGl0aWVzPzogQ29tcGxlbWVudGVkQnlRdWFudGl0eUR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlkZW50aWZpZXIgY2FuIGJlIHVzZWQgdG8gcG9pbnQgdG8gdGhlIElkIG9mIGFuIEV4ZWN1dGlvbkRlc2NyaXB0aW9uIGluIHRoZSBzYW1lIFNlcnZpY2VTcGVjaWZpY2F0aW9uLiBFeGVjdXRpb25EZXNjcmlwdGlvbnMgYWN0IGFzIGEgd2F5IHRvIGNlbnRyYWxseSBkZXNjcmliZSBob3cgcG9zaXRpb25zIHNob3VsZCBiZSBleGVjdXRlZCBpbiBwcmFjdGljZS4gT2Z0ZW4sIHRoZSBwb3NpdGlvbiBpdHNlbGYgc3RpbGwgaGFzIHRleHQgb2YgaXRzIG93biB0byBoaWdobGlnaHQgZGV2aWF0aW9ucyBmcm9tIHRoYXQgb3IgYWRkIG1vcmUgZGV0YWlscy4gKi9cbiAgICBleGVjdXRpb25EZXNjcmlwdGlvblJlZmVyZW5jZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgaWYgYSBwb3NpdGlvbiBoYXMgbm90IGJlZW4gb2ZmZXJlZC4gVGhpcyBpcyB0eXBpY2FsbHkgb25seSBleHBlY3RlZCB0byBiZSB0cnVlIHdoZW4gdGhlIGV4Y2hhbmdlIHBoYXNlIG9mIHRoZSBwYXJlbnQgU2VydmljZVNwZWNpZmljYXRpb24gaXMgT2ZmZXIsIGFuZCBpdCBtZWFucyB0aGF0IHRoZSBwb3NpdGlvbiBoYXMgbm90IGJlZW4gb2ZmZXJlZCBhdCBhbGwuICovXG4gICAgbm90T2ZmZXJlZD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgY2xhc3MgbW9kZWxzIHNwZWNpYWwgcHJvcGVydGllcyB0aGF0IG9ubHkgYXBwbHkgdG8gc29tZSBleGNoYW5nZSBzY2VuYXJpb3Mgd2hlcmUgw5ZOb3JtIGlzIHVzZWQuIEl0IGlzIHNwZWNpYWwgZm9yIFBvc2l0aW9ucyBhbmQgZXh0ZW5kcyB0aGUgT2Vub3JtUHJvcGVydGllcyBiYXNlIGNsYXNzLiAqL1xuICAgIG9lbm9ybVBvc2l0aW9uUHJvcGVydGllcz86IE9lbm9ybVBvc2l0aW9uUHJvcGVydGllc0R0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhbiBpZGVudGlmaWVyIHNwZWNpZmljIGZvciB0aGlzIGRlc2NyaXB0aW9uLiBTb21lIGV4Y2hhbmdlIGZvcm1hdHMsIGxpa2UgR0FFQiBYTUwsIHVzZSBpdCB0byBpZGVudGlmeSBkZXNjcmlwdGlvbnMuIEl0J3MgZGlmZmVyZW50IHRvIGFuIGVsZW1lbnRzIGlkZW50aWZpZXIgaW4gdGhhdCBpdCBzaG91bGQgb25seSBhcHBseSB0byB0aGUgZGVzY3JpcHRpb24gY29tcG9uZW50LCBtZWFuaW5nIHRoZSB0ZXh0IGl0c2VsZi4gKi9cbiAgICBkZXNjcmlwdGlvbklkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGEgemVybyBiYXNlZCBoaWVyYXJjaHkgbGV2ZWwuIEl0J3Mgc2V0IGF1dG9tYXRpY2FsbHkgd2hlbiB1c2VkIGluIHRoZSBjb250ZXh0IG9mIGEgUHJvamVjdCwgYW5kIGNhbiBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoZSBoaWVyYXJjaHkgbGV2ZWwgb2YgdGhlIGN1cnJlbnQgZWxlbWVudC4gKi9cbiAgICBoaWVyYXJjaHlMZXZlbD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMsIGlmIHRoaXMgZWxlbWVudCBpcyBwYXJ0IG9mIGFuIGFkZGVuZHVtIGFuLCBpZiB5ZXMsIHdpdGggd2hhdCBzdGF0dXMuICovXG4gICAgYWRkZW5kdW1TdGF0dXM/OiBBZGRlbmR1bVN0YXR1c0R0byB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBoYXNCaWRkZXJDb21tZW50SW5IdG1sTG9uZ1RleHQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHByb3BlcnR5IGNhbiBvcHRpb25hbGx5IGJlIHVzZWQgaW4gR0FFQiBleGNoYW5nZSBzY2VuYXJpb3MuIEl0IGlzIG9ubHkgbWVhbmluZ2Z1bCBpZiB0aGlzIHBvc2l0aW9uIGl0c2VsZiBpcyBhIGNvbXBsZW1lbnRpbmcgcG9zaXRpb24sIG1lYW5pbmcgaWYgdGhpcyBwb3NpdGlvbiBpcyBtYXJrZWQgaW4gb3RoZXIgcG9zaXRpb25zIGluIHRoZWlyIENvbXBsZW1lbnRlZEJ5IGxpc3QuIFRoZW4sIGl0IHNwZWNpZmllcyBob3cgdGhlIGNvbXBsZW1lbnRpbmcgc2hvdWxkIGJlIGV4cHJlc3NlZCBpbiBHQUVCLiBCeSBkZWZhdWx0LCBwb3NpdGlvbnMgYXJlIGFsd2F5cyBleHBsaWNpdGx5IHJlZmVyZW5jZWQsIGJ1dCBvdGhlciBvcHRpb25zIGFyZSBwb3NzaWJsZS4gUGxlYXNlIGFsc28gbm90ZSB0aGF0IHRoZSBEYW5nbC5BVkEuQ29udmVydGVyIHBhY2thZ2UsIHdoaWNoIGlzIHVzZWQgZm9yIEdBRUIgZXhwb3J0cywgd2lsbCBjaGVjayBpZiB0aGUgZ2l2ZW4gdHlwZSBpcyB2YWxpZCBpbiB0aGUgY3VycmVudCBwcm9qZWN0IGNvbmZpZ3VyYXRpb24uIElmIG5vdCwgZGlyZWN0bHkgcmVmZXJlbmNlZCBwb3NpdGlvbnMgd2lsbCBiZSB1c2VkIGFzIGZhbGxiYWNrLiAqL1xuICAgIGdhZWJDb21wbGVtZW50aW5nVHlwZT86IFBvc2l0aW9uQ29tcGxlbWVudGluZ1R5cGVEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIEhvbGRPdXQgcHJvcGVydGllcyBkZXNjcmliZSBzZXJ2aWNlcyB0aGF0IGFyZSB0byBiZSBwcm92aWRlZCBhbmQgbWFpbnRhaW5lZCBmb3IgYSBzcGVjaWZpYyB0aW1lLCBlLmcuIGZlbmNlcyBvbiBhIGNvbnN0cnVjdGlvbiBzaXRlLiAqL1xuICAgIGhvbGRPdXRQcm9wZXJ0aWVzPzogUG9zaXRpb25Ib2xkT3V0UHJvcGVydGllc0R0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhbiBpbmZvcm1hdGlvbmFsIHByb3BlcnR5LCB3aGljaCBkaXJlY3RseSBob2xkcyBhIG51bWVyaWNhbCB2YWx1ZSBmb3IgYW4gZXN0aW1hdGVkIHF1YW50aXR5LiBJdCBpcyBub3QgdXNlZCBmb3IgYW55IHByaWNlIGNhbGN1bGF0aW9ucy4gKi9cbiAgICBlc3RpbWF0ZWRRdWFudGl0eT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhbiBvcHRpb25hbCBwcm9wZXJ0eSB0aGF0IGhvbGRzIHByaWNlIGNhdGFsb2d1ZSBkYXRhLiBUaGVzZSBhcmUgcHJpY2VzIHRoYXQgbWF5IHJlcHJlc2VudCBhbiBlc3RpbWF0ZSwgYW5kIHRoZXkgdHlwaWNhbGx5IGNvbWUgZnJvbSBhIHByaWNlIGNhdGFsb2d1ZS4gKi9cbiAgICBwcmljZUNhdGFsb2d1ZURhdGE/OiBQcmljZUNhdGFsb2d1ZURhdGFEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHRoZSBQcm9qZWN0Q2F0YWxvZ3VlcyBwcm9wZXJ0eSB3aWxsIG5vdCBiZSBwcm9wYWdhdGVkIHRvIGNoaWxkIGVsZW1lbnRzLiBUaGlzIGlzIHVzZWZ1bCBpbiBtYXBwaW5nIHNjZW5hcmlvcywgd2hlcmUgeW91IHdhbnQgdG8gZGlzYWJsZSBwcm9wYWdhdGlvbiBmb3IgbXVsdGlwbGUgY2hhbmdlcywgYW5kIG9ubHkgZW5hYmxlIGl0IG9uY2UgeW91IGhhdmUgbWFwcGVkIGFsbCBwcm9wZXJ0aWVzLiAqL1xuICAgIGlnbm9yZVByb2plY3RDYXRhbG9ndWVQcm9wYWdhdGlvbj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBCYXNlZCBvbiB0aGUgUHJpY2VDb21wb25lbnQsIHRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIGxhYm91ciB0aW1lIGNvbXBvbmVudHMuICovXG5leHBvcnQgaW50ZXJmYWNlIExhYm91clByaWNlQ29tcG9uZW50RHRvIHtcbiAgICAvKiogVGhlIGxhYmVsIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHByaWNlIGNvbXBvbmVudC4gV2lsbCBiZSB0YWtlbiBmcm9tIHRoZSBwYXJlbnQgUHJvamVjdHMgUHJvamVjdEluZm9ybWF0aW9uLiAqL1xuICAgIGxhYmVsPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdG90YWwsIGNhbGN1bGF0ZWQgcHJpY2Ugb2YgdGhpcyBjb21wb25lbnQuIFdpbGwgbXVsdGlwbHkgdGhlIGNhbGN1bGF0ZWQgYW1vdW50IG9mIGhvdXJzIHdpdGggdGhlIFNlcnZpY2VTcGVjaWZpY2F0aW9ucyBob3VybHkgd2FnZSByYXRlLiAqL1xuICAgIHJlYWRvbmx5IHByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgY29zdCBwZXIgaG91ciBvZiBtYW51YWwgbGFib3IuICovXG4gICAgaG91cmx5V2FnZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHNpbmdsZSBDYWxjdWxhdGlvbiBlbGVtZW50cyB0aGlzIHByaWNlIGNvbXBvbmVudCBpcyBjb21wb3NlZCBvZi4gKi9cbiAgICB2YWx1ZXM/OiBDYWxjdWxhdGlvbkR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIFNlcnZpY2VTcGVjaWZpY2F0aW9uJ3Mgc3RhbmRhcmQgSG91cmx5V2FnZSBpcyB0byBiZSB1c2VkIG9yIGEgY3VzdG9tIHZhbHVlLiAqL1xuICAgIHVzZU93bkhvdXJseVdhZ2U/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdG90YWwsIGNhbGN1bGF0ZWQgdGltZSBvZiB0aGlzIGNvbXBvbmVudC4gV2lsbCByZXR1cm4gdGhlIHJlc3VsdCByb3VuZGVkIHRvIHRocmVlIGRlY2ltYWwgcGxhY2VzLiAqL1xuICAgIHJlYWRvbmx5IHRvdGFsVGltZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlc2UgYXJlIENhdGFsb2d1ZXMgdGhhdCBhcmUgdXNlZCB3aXRoaW4gdGhpcyBQcmljZUNvbXBvbmVudC4gQ2F0YWxvZ3VlcyBhcmUgdXNlZCB0byBkZXNjcmliZSBjYXRhbG9ndWVzLCBvciBjb2xsZWN0aW9ucywgdGhhdCBjYW4gYmUgdXNlZCB0byBkZXNjcmliZSBlbGVtZW50cyB3aXRoIGNvbW1vbmx5IGtub3duIHByb3BlcnRpZXMuIEZvciBleGFtcGxlLCBRdWFudGl0eUFzc2lnbm1lbnRzIHVzZSB0aGVzZSB0byBjYXRlZ29yaXplIHRoZW1zZWx2ZXMuIFRoZXkgYXJlIHByb3BhZ2F0ZSB0byBhbGwgY2hpbGQgZWxlbWVudHMsIGUuZy4gb3RoZXIgY29udGFpbmVycyBhbmQgUXVhbnRpdHlBc3NpZ25tZW50cy4gSW4gdGhlIGNvbnRleHQgb2YgYSBTZXJ2aWNlU3BlY2lmaWNhdGlvbiwgYWxsIGVsZW1lbnRzIHNoYXJlIHRoZSBzYW1lIGluc3RhbmNlIG9mIHRoZSBjb2xsZWN0aW9uLiAqL1xuICAgIHByb2plY3RDYXRhbG9ndWVzPzogQ2F0YWxvZ3VlRHRvW10gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGNsYXNzIGhvbGRzIG1lYW5zIHRvIGNhbGN1bGF0ZSBtYXRoZW1hdGljYWwgZXhwcmVzc2lvbnMgZnJvbSBnaXZlbiBzdHJpbmdzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYWxjdWxhdGlvbkR0byB7XG4gICAgLyoqIERlc2NyaXB0aXZlIHRleHQgZm9yIHRoaXMgY2FsY3VsYXRpb24uICovXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgQ2FsY3VsYXRpb24ncyBtYXRoZW1hdGljYWwgZXhwcmVzc2lvbi4gUGxlYXNlIG5vdGUgdGhhdCB0aG91c2FuZHMgc2VwYXJhdG9ycyBhcmUgbm90IHN1cHBvcnRlZC4gQm90aCBjb21tYSBhbmQgcG9pbnQgd2lsbCBiZSB0cmVhdGVkIGFzIGRlY2ltYWwgc2VwYXJhdG9ycy4gKi9cbiAgICBmb3JtdWxhPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgY2FsY3VsYXRlZCByZXN1bHQgZnJvbSB0aGUgZm9ybXVsYSwgMCBpZiBpbnZhbGlkLiAqL1xuICAgIHJlYWRvbmx5IHJlc3VsdD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogV2hldGhlciB0aGUgRm9ybXVsYSBpcyBhIHZhbGlkIGV4cHJlc3Npb24uICovXG4gICAgcmVhZG9ubHkgdmFsaWQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBXaWxsIGJlIC0xIGlmIHRoZSBGb3JtdWxhIGlzIGNvcnJlY3QsIGVsc2UgaXQgd2lsbCBzaG93IHRoZSBwb3NpdGlvbiBpbiB0aGUgZm9ybXVsYSB3aGVyZSBhbiBlcnJvciB3YXMgZW5jb3VudGVyZWQuIFRoaXMgaXMgYSB6ZXJvIGJhc2VkIGluZGV4LiAqL1xuICAgIHJlYWRvbmx5IGVycm9yUG9zaXRpb25JbkxpbmU/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWVzIHRoYXQgYXJlIHVzZWQgd2l0aGluIHRoaXMgQ2FsY3VsYXRpb24uIENhdGFsb2d1ZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiBUaGV5IGFyZSBwcm9wYWdhdGUgdG8gYWxsIGNoaWxkIGVsZW1lbnRzLCBlLmcuIG90aGVyIGNvbnRhaW5lcnMgYW5kIFF1YW50aXR5QXNzaWdubWVudHMuIEluIHRoZSBjb250ZXh0IG9mIGEgU2VydmljZVNwZWNpZmljYXRpb24sIGFsbCBlbGVtZW50cyBzaGFyZSB0aGUgc2FtZSBpbnN0YW5jZSBvZiB0aGUgY29sbGVjdGlvbi4gKi9cbiAgICBwcm9qZWN0Q2F0YWxvZ3Vlcz86IENhdGFsb2d1ZUR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBSZWZlcmVuY2VkIGNhdGFsb2d1ZXMgZm9yIHRoaXMgQ2FsY3VsYXRpb24uICovXG4gICAgY2F0YWxvZ3VlUmVmZXJlbmNlcz86IENhdGFsb2d1ZVJlZmVyZW5jZUR0b1tdIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBjbGFzcyBwcm92aWRlcyBtZWFucyB0byBzdG9yZSBpbmZvcm1hdGlvbiBhYm91dCBhIHByaWNlIGFuZCBpdCdzIGNvbXBvc2l0aW9uLiBOb3RlIHRoYXQgdGhpcyBpcyByZWZlcmVuY2luZyB0byBhIHNpbmdsZSBwcmljZSBjb21wb25lbnQsIHNvIGZvciBleGFtcGxlIGEgUG9zaXRpb24gd291bGQgaGF2ZSBhIGxpc3Qgb2YgUHJpY2VDb21wb25lbnRzLCBvbmUgZm9yIE1hdGVyaWFsLCBvbmUgZm9yIExhYm91ciBldGMuICovXG5leHBvcnQgaW50ZXJmYWNlIFByaWNlQ29tcG9uZW50RHRvIHtcbiAgICAvKiogVGhlIHRvdGFsLCBjYWxjdWxhdGVkIHByaWNlIG9mIHRoaXMgY29tcG9uZW50LiAqL1xuICAgIHJlYWRvbmx5IHByaWNlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgbGFiZWwgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcHJpY2UgY29tcG9uZW50LiBXaWxsIGJlIHRha2VuIGZyb20gdGhlIHBhcmVudCBQcm9qZWN0cyBQcm9qZWN0SW5mb3JtYXRpb24uICovXG4gICAgbGFiZWw/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBzaW5nbGUgQ2FsY3VsYXRpb24gZWxlbWVudHMgdGhpcyBwcmljZSBjb21wb25lbnQgaXMgY29tcG9zZWQgb2YuICovXG4gICAgdmFsdWVzPzogQ2FsY3VsYXRpb25EdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlc2UgYXJlIENhdGFsb2d1ZXMgdGhhdCBhcmUgdXNlZCB3aXRoaW4gdGhpcyBQcmljZUNvbXBvbmVudC4gQ2F0YWxvZ3VlcyBhcmUgdXNlZCB0byBkZXNjcmliZSBjYXRhbG9ndWVzLCBvciBjb2xsZWN0aW9ucywgdGhhdCBjYW4gYmUgdXNlZCB0byBkZXNjcmliZSBlbGVtZW50cyB3aXRoIGNvbW1vbmx5IGtub3duIHByb3BlcnRpZXMuIEZvciBleGFtcGxlLCBRdWFudGl0eUFzc2lnbm1lbnRzIHVzZSB0aGVzZSB0byBjYXRlZ29yaXplIHRoZW1zZWx2ZXMuIFRoZXkgYXJlIHByb3BhZ2F0ZSB0byBhbGwgY2hpbGQgZWxlbWVudHMsIGUuZy4gb3RoZXIgY29udGFpbmVycyBhbmQgUXVhbnRpdHlBc3NpZ25tZW50cy4gSW4gdGhlIGNvbnRleHQgb2YgYSBTZXJ2aWNlU3BlY2lmaWNhdGlvbiwgYWxsIGVsZW1lbnRzIHNoYXJlIHRoZSBzYW1lIGluc3RhbmNlIG9mIHRoZSBjb2xsZWN0aW9uLiAqL1xuICAgIHByb2plY3RDYXRhbG9ndWVzPzogQ2F0YWxvZ3VlRHRvW10gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGlzIGFwcGVuZGVkIHRvIGEgUG9zaXRpb24gYW5kIGlzIHVzZWQgdG8gc2VwYXJhdGUgdGhlIGNvbXBsZXRlIFBvc2l0aW9uIGludG8gc21hbGxlciBhbW91bnRzIHRvIGJlIGRlc2NyaWJlZCBzZXBhcmF0ZWx5LCBmb3IgZXhhbXBsZSBjb25jcmV0ZSB3YWxscyBjb3VsZCBiZSBhdHRhY2hlZCB0byBkaWZmZXJlbnQgYnVpbGRpbmcgc3RvcmV5cy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3ViRGVzY3JpcHRpb25EdG8ge1xuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogUmV0dXJucyB0aGUgdG90YWwgY2FsY3VsYXRlZCBzdW0gb2YgYWxsIHF1YW50aXR5IGFzc2lnbm1lbnRzLiBXaWxsIHJldHVybiB0aGUgcmVzdWx0IHJvdW5kZWQgdG8gdGhyZWUgZGVjaW1hbCBwbGFjZXMuICovXG4gICAgcmVhZG9ubHkgcXVhbnRpdHk/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFlvdSBjYW4gdXNlIHRoaXMgcHJvcGVydHkgdG8gZGlyZWN0bHkgc2V0IHRoZSBxdWFudGl0eSBmb3IgdGhpcyBzdWIgZGVzY3JpcHRpb24uIFRoaXMgd2lsbCBvdmVycmlkZSBhbnkgZ2l2ZW4gUXVhbnRpdHlDb21wb25lbnRzICovXG4gICAgcXVhbnRpdHlPdmVycmlkZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogSG9sZHMgcXVhbnRpdHkgaW5mb3JtYXRpb24gZm9yIHRoaXMgc3ViIGRlc2NyaXB0aW9uLiBRdWFudGl0eSBpcyBsaXN0ZW5pbmcgdG8gY2hhbmdlcyBoZXJlIGFuZCBpcyByZXBvcnRpbmcgdGhlIHRvdGFsIHN1bSBvZiBhbGwgcXVhbnRpdHkgY29tcG9uZW50cy4gKi9cbiAgICBxdWFudGl0eUNvbXBvbmVudHM/OiBDYWxjdWxhdGlvbkR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGJpZGRlciBpcyBhc2tlZCB0byBzcGVjaWZ5IGFuIGFtb3VudC4gKi9cbiAgICBhbW91bnRUb0JlRW50ZXJlZEJ5QmlkZGVyPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSWRlbnRpZmllciBmb3IgdGhpcyBTdWJEZXNjcmlwdGlvbi4gKi9cbiAgICBpZGVudGlmaWVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBTaG9ydCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBEZXNjcmlwdGlvbkJhc2UgZWxlbWVudC4gKi9cbiAgICBzaG9ydFRleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIERldGFpbGVkIGRlc2NyaXB0aW9uIGZvciB0aGlzIERlc2NyaXB0aW9uQmFzZSBlbGVtZW50LiBXaGVuIHRoZSBIdG1sTG9uZ1RleHQgaXMgc2V0LCB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgb3ZlcndyaXR0ZW4gYW5kIGZpbGxlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBwbGFpbiB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBIdG1sIHRleHQuIFZpY2UgdmVyc2EsIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgdGhlIEh0bWxMb25nVGV4dC4gKi9cbiAgICBsb25nVGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogSWYgdGhpcyBpcyBnaXZlbiwgdGhlbiB0aGUgc3ViIGRlc2NyaXB0aW9uIGhhcyBhIGRpZmZlcmVudCB1bml0IHRhZyB0aGFuIHRoZSBwYXJlbnQgcG9zaXRpb24uICovXG4gICAgdW5pdFRhZz86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBjb250YWlucyB0aGUgSHRtbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgTG9uZ3RleHQuIFdoZW4gdGhlIExvbmdUZXh0IGlzIHNldCwgdGhpcyBpcyBhdXRvbWF0aWNhbGx5IG92ZXJ3cml0dGVuIGFuZCBmaWxsZWQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgSHRtbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgcGxhaW50ZXh0LiBWaWNlIHZlcnNhLCBzZXR0aW5nIHRoaXMgcHJvcGVydHkgb3ZlcnJpZGVzIHRoZSBMb25nVGV4dC4gR0FFQiA5MCBhbmQgR0FFQiAyMDAwIGV4cG9ydHMgZG8gbm90IHN1cHBvcnQgYW55IGltYWdlIGZ1bmN0aW9uYWxpdHkuIEluIEdBRUIgWE1MLCBvbmx5IGltYWdlcyB0aGF0IHVzZSBhbiBlbWJlZGRlZCBCYXNlNjQgZGF0YSB1cmkgYXJlIGV4cG9ydGVkLCByZWd1bGFyIHVybCByZWZlcmVuY2VzIGFyZSBjbGVhcmVkIGJlZm9yZSB3cml0dGVuIG91dC4gKi9cbiAgICBodG1sTG9uZ1RleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGlzIERlc2NyaXB0aW9uQmFzZSBlbGVtZW50IGNvbnRhaW5zIEJ1eWVyIG9yIEJpZGRlciBhZGRpdGlvbnMgdG8gdGhlIHRleHQuICovXG4gICAgYWRkaXRpb25UeXBlPzogQWRkaXRpb25UeXBlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHJlcHJlc2VudHMgYSBzdGFuZGFyZGl6ZWQgZGVzY3JpcHRpb24uIFRoaXMgbWVhbnMgdGhhdCBpbnN0ZWFkIG9mIHNvbGVseSByZWx5aW5nIG9uIHRleHRzIHRvIGRlc2NyaWJlIGEgc2VydmljZSwgZXh0ZXJuYWwgc3RhbmRhcmRzIGFuZCBkZWZpbml0aW9ucyBhcmUgcmVmZXJlbmNlZCBmb3IgYSBjb21tb24gdW5kZXJzdGFuZGluZy4gKi9cbiAgICBzdGFuZGFyZGl6ZWREZXNjcmlwdGlvbj86IFN0YW5kYXJkaXplZERlc2NyaXB0aW9uRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlkZW50aWZpZXIgY2FuIGJlIHVzZWQgdG8gcG9pbnQgdG8gdGhlIElkIG9mIGFuIEV4ZWN1dGlvbkRlc2NyaXB0aW9uIGluIHRoZSBzYW1lIFNlcnZpY2VTcGVjaWZpY2F0aW9uLiBFeGVjdXRpb25EZXNjcmlwdGlvbnMgYWN0IGFzIGEgd2F5IHRvIGNlbnRyYWxseSBkZXNjcmliZSBob3cgcG9zaXRpb25zIChvciBzdWIgZGVzY3JpcHRpb25zKSBzaG91bGQgYmUgZXhlY3V0ZWQgaW4gcHJhY3RpY2UuIE9mdGVuLCB0aGUgcG9zaXRpb24gKG9yIHN1YiBkZXNjcmlwdGlvbikgaXRzZWxmIHN0aWxsIGhhcyB0ZXh0IG9mIGl0cyBvd24gdG8gaGlnaGxpZ2h0IGRldmlhdGlvbnMgZnJvbSB0aGF0IG9yIGFkZCBtb3JlIGRldGFpbHMuIFdoZW4gd29ya2luZyB3aXRoIGltcG9ydCBhbmQgZXhwb3J0IGZlYXR1cmVzLCB0aGlzIHByb3BlcnR5IGlzIG9ubHkgc3VwcG9ydGVkIGluIEdBRUIgOTAgZGF0YSBleGNoYW5nZS4gKi9cbiAgICBleGVjdXRpb25EZXNjcmlwdGlvblJlZmVyZW5jZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlc2UgYXJlIENhdGFsb2d1ZXMgdGhhdCBhcmUgdXNlZCB3aXRoaW4gdGhpcyBDYWxjdWxhdGlvbi4gQ2F0YWxvZ3VlcyBhcmUgdXNlZCB0byBkZXNjcmliZSBjYXRhbG9ndWVzLCBvciBjb2xsZWN0aW9ucywgdGhhdCBjYW4gYmUgdXNlZCB0byBkZXNjcmliZSBlbGVtZW50cyB3aXRoIGNvbW1vbmx5IGtub3duIHByb3BlcnRpZXMuIEZvciBleGFtcGxlLCBRdWFudGl0eUFzc2lnbm1lbnRzIHVzZSB0aGVzZSB0byBjYXRlZ29yaXplIHRoZW1zZWx2ZXMuIFRoZXkgYXJlIHByb3BhZ2F0ZSB0byBhbGwgY2hpbGQgZWxlbWVudHMsIGUuZy4gb3RoZXIgY29udGFpbmVycyBhbmQgUXVhbnRpdHlBc3NpZ25tZW50cy4gSW4gdGhlIGNvbnRleHQgb2YgYSBTZXJ2aWNlU3BlY2lmaWNhdGlvbiwgYWxsIGVsZW1lbnRzIHNoYXJlIHRoZSBzYW1lIGluc3RhbmNlIG9mIHRoZSBjb2xsZWN0aW9uLiAqL1xuICAgIHByb2plY3RDYXRhbG9ndWVzPzogQ2F0YWxvZ3VlRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYW4gaWRlbnRpZmllciBzcGVjaWZpYyBmb3IgdGhpcyBkZXNjcmlwdGlvbi4gU29tZSBleGNoYW5nZSBmb3JtYXRzLCBsaWtlIEdBRUIgWE1MLCB1c2UgaXQgdG8gaWRlbnRpZnkgZGVzY3JpcHRpb25zLiBJdCdzIGRpZmZlcmVudCB0byBhbiBlbGVtZW50cyBpZGVudGlmaWVyIGluIHRoYXQgaXQgc2hvdWxkIG9ubHkgYXBwbHkgdG8gdGhlIGRlc2NyaXB0aW9uIGNvbXBvbmVudCwgbWVhbmluZyB0aGUgdGV4dCBpdHNlbGYuICovXG4gICAgZGVzY3JpcHRpb25JZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICByZWFkb25seSBoYXNCaWRkZXJDb21tZW50SW5IdG1sTG9uZ1RleHQ/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIGVsZW1lbnRUeXBlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGVsZW1lbnRUeXBlRGlzY3JpbWluYXRvcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIEluZGljYXRlcyB0aGUgb3JpZ2luIG9mIGFuIGVsZW1lbnQuICovXG5leHBvcnQgZW51bSBBZGRpdGlvblR5cGVEdG8ge1xuICAgIE5vbmUgPSBcIk5vbmVcIixcbiAgICBCeUJ1eWVyID0gXCJCeUJ1eWVyXCIsXG4gICAgQnlCaWRkZXIgPSBcIkJ5QmlkZGVyXCIsXG59XG5cbi8qKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgYSBzdGFuZGFyZGl6ZWQgZGVzY3JpcHRpb24uIFRoaXMgbWVhbnMgdGhhdCBpbnN0ZWFkIG9mIHNvbGVseSByZWx5aW5nIG9uIHRleHRzIHRvIGRlc2NyaWJlIGEgc2VydmljZSwgZXh0ZXJuYWwgc3RhbmRhcmRzIGFuZCBkZWZpbml0aW9ucyBhcmUgcmVmZXJlbmNlZCBmb3IgYSBjb21tb24gdW5kZXJzdGFuZGluZy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhbmRhcmRpemVkRGVzY3JpcHRpb25EdG8ge1xuICAgIC8qKiBUaGlzIGVudW1lcmF0aW9uIGlkZW50aWZpZXMgYSBwcmUta25vd24gc3RhbmRhcmQgdXNlZCBmb3IgcmVmZXJlbmNpbmcgc3RhbmRhcmRpemVkIGRlc2NyaXB0aW9ucy4gKi9cbiAgICBzdGFuZGFyZFJlZmVyZW5jZVR5cGU/OiBTdGFuZGFyZFJlZmVyZW5jZVR5cGVEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgc3RyaW5nIHByb3BlcnR5IGlzIHRoZSBpZGVudGlmaWVyIHRvIG1hcCB0byB0aGUgcmVmZXJlbmNlcyBzdGFuZGFyZC4gSXRzIHR5cGUgaXMgZ2l2ZW4gaW4gdGhlIFN0YW5kYXJkUmVmZXJlbmNlVHlwZSAqL1xuICAgIHN0YW5kYXJkUmVmZXJlbmNlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGEgc3BlY2lhbCByZWZlcmVuY2UgdG8gdGhlIEdlcm1hbiBTVExCIFwiU3RhbmRhcmRsZWlzdHVuZ3NidWNoIEJhdVwiIHJlZmVyZW5jZS4gSWYgdGhpcyBpcyB1c2VkLCB0aGUgU3RhbmRhcmRSZWZlcmVuY2UgcHJvcGVydHkgc2hvdWxkIG5vdCBiZSBzZXQuICovXG4gICAgc3RsYlJlZmVyZW5jZT86IFNUTEJSZWZlcmVuY2VEdG8gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGVudW1lcmF0aW9uIGlkZW50aWZpZXMgYSBwcmUta25vd24gc3RhbmRhcmQgdXNlZCBmb3IgcmVmZXJlbmNpbmcgc3RhbmRhcmRpemVkIGRlc2NyaXB0aW9ucy4gKi9cbmV4cG9ydCBlbnVtIFN0YW5kYXJkUmVmZXJlbmNlVHlwZUR0byB7XG4gICAgVW5rbm93biA9IFwiVW5rbm93blwiLFxuICAgIFN0TEIgPSBcIlN0TEJcIixcbiAgICBTdExLID0gXCJTdExLXCIsXG4gICAgU1RMQkJhdVogPSBcIlNUTEJCYXVaXCIsXG59XG5cbi8qKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgYSBzcGVjaWFsaXplZCByZWZlcmVuY2UgdG8gdGhlIEdlcm1hbiBTVExCIFwiU3RhbmRhcmRsZWlzdHVuZ3NidWNoIEJhdVwiLiBUaGUgU1RMQiBpcyBhIGNvbW1lcmNpYWwgb2ZmZXJpbmcgYW5kIGRlc2NyaWJlcyBjb21tb24gc2VydmljZXMgaW4gdGhlIGNvbnN0cnVjdGlvbiBzZWN0b3IuIFdoZW4gdGhpcyBpcyB1c2VkLCB0aGlzIGRlc2NyaWJlcyB0aGUgZXhhY3QgdHlwZSBvZiBhIHNlcnZpY2UgdmlhIGEgcmVmZXJlbmNlIHRvIHRoaXMgc3RhbmRhcmQgKi9cbmV4cG9ydCBpbnRlcmZhY2UgU1RMQlJlZmVyZW5jZUR0byB7XG4gICAgLyoqIFRoZSBkYXRlIG9mIHRoZSBTVExCIHZlcnNpb24uIFR5cGljYWxseSwgb25seSB0aGUgWWVhciBhbmQgTW9udGggYXJlIHVzZWQgKi9cbiAgICB2ZXJzaW9uRGF0ZT86IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoZSBjYXRhbG9ndWUgd2l0aGluIHRoZSBTVExCICovXG4gICAgY2F0YWxvZ3VlTmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIG5hbWUgb2YgdGhlIGdyb3VwIGluIFNUTEIgKi9cbiAgICBncm91cD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGNvc3QgZ3JvdXAgdGhpcyBzZXJ2aWNlIGlzIGFzc29jaWF0ZWQgd2l0aCAqL1xuICAgIGNvc3RHcm91cD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHNlcnZpY2UgYXJlYSAob3IgdHlwZSkgaW4gdGhlIFNUTEIgKi9cbiAgICBzZXJ2aWNlQXJlYT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlc2Uga2V5cyBtYXkgb3B0aW9uYWxseSBiZSB1c2VkIHRvIGZ1cnRoZXIgcmVmZXJlbmNlIG11bHRpcGxlLCBzcGVjaWZpYyBpdGVtcyB3aXRoaW4gdGhlIFNUTEIgKi9cbiAgICBrZXlzPzogU1RMQktleUR0b1tdIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIGEgc2luZ2xlIGtleSByZWZlcmVuY2Ugd2l0aGluIHRoZSBHZXJtYW4gU1RMQiBcIlN0YW5kYXJkbGVpc3R1bmdzYnVjaCBCYXVcIiAqL1xuZXhwb3J0IGludGVyZmFjZSBTVExCS2V5RHRvIHtcbiAgICAvKiogVGhpcyBpZGVudGlmaWVyIGlzIHJlcXVpcmVkIGFuZCB1bmlxdWVseSBkZXNjcmliZXMgYSBzaW5nbGUgcmVmZXJlbmNlIHdpdGhpbiB0aGUgU1RMQiBzdGFuZGFyZC4gSXQgbWFwcyB0byBcIkFydENocklkZW50XCIgaW4gR0FFQiBYTUwgKi9cbiAgICBhcnRJZGVudGlmaWVyPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIG9wdGlvbmFsIGluZGV4IHByb3BlcnR5IGZ1cnRoZXIgY2F0ZWdvcml6ZXMgYSBzaW5nbGUgcmVmZXJlbmNlIHdpdGhpbiB0aGUgU1RMQiBzdGFuZGFyZC4gSXQgbWFwcyB0byBcIkFydENoSWR4XCIgaW4gR0FFQiBYTUwgKi9cbiAgICBhcnRJbmRleD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBvcHRpb25hbCBpZGVudGlmaWVyIGZ1cnRoZXIgc3BlY2lmaWVzIHRoZSBleGVjdXRpb24ga2luZCBvZiB0aGUgcmVmZXJlbmNlIGluIHRoZSBTVExCIHN0YW5kYXJkLiBJdCBtYXBzIHRvIFwiQ2hWSWRlbnRcIiBpbiBHQUVCIFhNTCAqL1xuICAgIGtpbmRJZGVudGlmaWVyPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogSW5kaWNhdGVzIGlmIHRoaXMgc2VydmljZSBzcGVjaWZpY2F0aW9uIGl0ZW0gaXMgY29tbWlzc2lvbmVkIChhbmQgdGhlcmVmb3JlIHNob3VsZCBiZSBleGVjdXRlZCksIHBvc3Rwb25lZCBmb3IgbGF0ZXIgb3IgdW5kZWZpbmVkLiAqL1xuZXhwb3J0IGVudW0gQ29taXNzaW9uU3RhdHVzRHRvIHtcbiAgICBVbmRlZmluZWQgPSBcIlVuZGVmaW5lZFwiLFxuICAgIENvbW1pc3Npb25lZCA9IFwiQ29tbWlzc2lvbmVkXCIsXG4gICAgUG9zdHBvbmVkID0gXCJQb3N0cG9uZWRcIixcbiAgICBSZW1vdmVkID0gXCJSZW1vdmVkXCIsXG59XG5cbi8qKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgYXMgaWRlbnRpZmllciBvZiBhIGNlcnRhaW4gc2VydmljZSBzcGVjaWZpY2F0aW9uJ3MgZWxlbWVudCBhbmQgaXMgdW5pcXVlbHkgd2l0aGluIHRoZSBzZXJ2aWNlIHNwZWNpZmljYXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1OdW1iZXJEdG8ge1xuICAgIC8qKiBFbGVtZW50cyBHVUlEIGlkZW50aWZpZXIuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogV2lsbCByZXR1cm4gdGhpcyBJdGVtTnVtYmVyIGFzIHBvaW50IGRlbGltaXRlZCBzdHJpbmcuIFdpbGwgbm90IGRpc3Rpbmd1aXNoIGJldHdlZW4gdXBwZXItIGFuZCBsb3dlcmNhc2UgYW5kIHJldHVybiBhbiBhbGwtbG93ZXJjYXNlIHJlcHJlc2VudGF0aW9uLiBXaWxsIGNvbnNpZGVyIGZpcnN0IG51bWJlcnMsIHRoZW4gY2hhcmFjdGVycywgZS5nLiAxYSBpcyBjb25zaWRlcmVkIHByZWNlZGluZyBhYS4gVHJhbnNmb3JtYXRpb24gdG8gYWxsIGxvd2VyY2FzZSBjYW4gYmUgY29uZmlndXJlZCBpbiB0aGUgSXRlbU51bWJlclNjaGVtYSBwcm9wZXJ0eS4gKi9cbiAgICBzdHJpbmdSZXByZXNlbnRhdGlvbj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBjaGFyYWN0ZXJzIGFuZCB0aGUgbGVuZ3RoIG9mIHRoZSBJZGVudGlmaWVycyBtYXRjaCB0aGUgY3VycmVudCBJdGVtTnVtYmVyU2NoZW1hLiAqL1xuICAgIHJlYWRvbmx5IGlzU2NoZW1hQ29tcGxpYW50PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVXNlZCBmb3IgcmVwcmVzZW50aW5nIGFuZCB2YWxpZGF0aW5nIHRoaXMgSXRlbU51bWJlci4gKi9cbiAgICBpdGVtTnVtYmVyU2NoZW1hPzogSXRlbU51bWJlclNjaGVtYUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogQ29sbGVjdGlvbiBvZiB0aGUgc2luZ2xlIGlkZW50aWZpZXJzIGluIHRoaXMgSXRlbU51bWJlci4gUC5lLiwgXCIwMi4wMy4wMDRcIiB3aWxsIGhhdmUgdGhyZWUgZWxlbWVudHMgXCIwMlwiLCBcIjAzXCIsIGFuZCBcIjAwNFwiLiBTaW5jZSBSZWFkT25seU9ic2VydmFibGVDb2xsZWN0aW9uYDEgZG9lcyBoYXZlIHRoZSBldmVudCBzZXQgdG8gcHJvdGVjdGVkLCBpdCBjYW4gYmUgYWNjZXNzZWQgbGlrZSB0aGlzOiAoaXRlbU51bWJlci5JZGVudGlmaWVycyBhcyBJTm90aWZ5Q29sbGVjdGlvbkNoYW5nZWQpLkNvbGxlY3Rpb25DaGFuZ2VkICovXG4gICAgaWRlbnRpZmllcnM/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgaWYgdGhpcyBpdGVtIG51bWJlciBpcyBhdCB0aGUgbG90IGxldmVsLiBGaW5kIG91dCBtb3JlIGFib3V0IGxvdHMgaW4gdGhlIGRvY3VtZW50YXRpb24uICovXG4gICAgcmVhZG9ubHkgaXNMb3Q/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGEgemVybyBiYXNlZCBoaWVyYXJjaHkgbGV2ZWwuIEl0J3Mgc2V0IGF1dG9tYXRpY2FsbHkgd2hlbiB1c2VkIGluIHRoZSBjb250ZXh0IG9mIGEgUHJvamVjdCwgYW5kIGNhbiBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoZSBoaWVyYXJjaHkgbGV2ZWwgb2YgdGhlIGN1cnJlbnQgZWxlbWVudC4gKi9cbiAgICBoaWVyYXJjaHlMZXZlbD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBpbmRpY2F0ZXMgaWYgdGhpcyBJdGVtTnVtYmVyIGlzIGF0dGFjaGVkIHRvIGFuIG9iamVjdCBvZiB0aGUgUG9zaXRpb24gdHlwZS4gKi9cbiAgICByZWFkb25seSBpc0F0dGFjaGVkVG9Qb3NpdGlvbj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgaXRlbU51bWJlclNjaGVtYUJlZm9yZU1hcHBpbmc/OiBJdGVtTnVtYmVyU2NoZW1hRHRvIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBpcyBhIGNsYXNzaWZpY2F0aW9uIGZvciBQb3NpdGlvbiBlbGVtZW50cy4gKi9cbmV4cG9ydCBlbnVtIFBvc2l0aW9uVHlwZUR0byB7XG4gICAgUmVndWxhciA9IFwiUmVndWxhclwiLFxuICAgIE9wdGlvbmFsID0gXCJPcHRpb25hbFwiLFxuICAgIEFsdGVybmF0aXZlID0gXCJBbHRlcm5hdGl2ZVwiLFxufVxuXG4vKiogVGhpcyBpbmRpY2F0ZXMgdGhlIHByaWNlIHR5cGUgb2YgYSBJUHJpY2VkRWxlbWVudC4gKi9cbmV4cG9ydCBlbnVtIFByaWNlVHlwZUR0byB7XG4gICAgV2l0aFRvdGFsID0gXCJXaXRoVG90YWxcIixcbiAgICBXaXRob3V0VG90YWwgPSBcIldpdGhvdXRUb3RhbFwiLFxufVxuXG4vKiogVGhlIHNlcnZpY2UgdHlwZSBkZXNjcmliZXMgdGhlIHR5cGUgb2Ygc2VydmljZSBhIFBvc2l0aW9uIHJlcHJlc2VudHMuICovXG5leHBvcnQgZW51bSBTZXJ2aWNlVHlwZUR0byB7XG4gICAgUmVndWxhciA9IFwiUmVndWxhclwiLFxuICAgIEhvdXJseVBhaWRXb3JrID0gXCJIb3VybHlQYWlkV29ya1wiLFxufVxuXG4vKiogVGhpcyBjbGFzcyByZXByZXNlbnRzIGRhdGEgYWJvdXQgcHJvZHVjdHMgYW5kIHRoZWlyIHZlbmRvciAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0RGF0YUR0byB7XG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGlzIFBhcnR5SW5mb3JtYXRpb24gaXMgdXNlZCB0byBkZXNjcmliZSBkZXRhaWxzIGFib3V0IHRoZSB2ZW5kb3Igb2YgdGhpcyBQcm9kdWN0RGF0YS4gKi9cbiAgICB2ZW5kb3I/OiBQYXJ0eUluZm9ybWF0aW9uRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgY29sbGVjdGlvbiBvZiBBcnRpY2xlRGF0YSB0aGF0IGRlc2NyaWJlIHRoaXMgcHJvZHVjdCwgZS5nLiBhIHBpcGUgcHJvZHVjdCBjb3VsZCBiZSBjb21wb3NlZCBvdXQgb2YgbXVsdGlwbGUgcGlwZSBzZWdtZW50cyBhbmQgZml0dGluZ3MuICovXG4gICAgYXJ0aWNsZXM/OiBBcnRpY2xlRGF0YUR0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBTaG9ydCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBJVGV4dEVsZW1lbnQgZWxlbWVudC4gKi9cbiAgICBzaG9ydFRleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIERldGFpbGVkIGRlc2NyaXB0aW9uIGZvciB0aGlzIElUZXh0RWxlbWVudCBlbGVtZW50LiBXaGVuIHRoZSBIdG1sTG9uZ1RleHQgaXMgc2V0LCB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgb3ZlcndyaXR0ZW4gYW5kIGZpbGxlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBwbGFpbiB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBIdG1sIHRleHQuIFZpY2UgdmVyc2EsIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgdGhlIEh0bWxMb25nVGV4dC4gKi9cbiAgICBsb25nVGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBjb250YWlucyB0aGUgSHRtbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgTG9uZ3RleHQuIFdoZW4gdGhlIExvbmdUZXh0IGlzIHNldCwgdGhpcyBpcyBhdXRvbWF0aWNhbGx5IG92ZXJ3cml0dGVuIGFuZCBmaWxsZWQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgSHRtbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgcGxhaW50ZXh0LiBWaWNlIHZlcnNhLCBzZXR0aW5nIHRoaXMgcHJvcGVydHkgb3ZlcnJpZGVzIHRoZSBMb25nVGV4dC4gR0FFQiA5MCBhbmQgR0FFQiAyMDAwIGV4cG9ydHMgZG8gbm90IHN1cHBvcnQgYW55IGltYWdlIGZ1bmN0aW9uYWxpdHkuIEluIEdBRUIgWE1MLCBvbmx5IGltYWdlcyB0aGF0IHVzZSBhbiBlbWJlZGRlZCBCYXNlNjQgZGF0YSB1cmkgYXJlIGV4cG9ydGVkLCByZWd1bGFyIHVybCByZWZlcmVuY2VzIGFyZSBjbGVhcmVkIGJlZm9yZSB3cml0dGVuIG91dC4gKi9cbiAgICBodG1sTG9uZ1RleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgYSBzaW5nbGUgYXJ0aWNsZSwgdXN1YWxseSB1c2VkIHdpdGhpbiBQcm9kdWN0RGF0YSAqL1xuZXhwb3J0IGludGVyZmFjZSBBcnRpY2xlRGF0YUR0byB7XG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGUgbmFtZSAob3IgYnJhbmQgbmFtZSkgZm9yIHRoaXMgYXJ0aWNsZSwgdXN1YWxseSBnaXZlbiBieSB0aGUgc3VwcGxpZXIgb3IgdmVuZG9yLiAqL1xuICAgIG5hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEFuIGFydGljbGUgbnVtYmVyIHRoYXQgZGVzY3JpYmVzIGl0LCB1c2VmdWwgd2hlbiBpbnRlZ3JhdGluZyBvdGhlciBzeXN0ZW1zLiAqL1xuICAgIGFydGljbGVOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFF1YW50aXR5IGZvciB0aGlzIGFydGljbGUuIElmIHRoaXMgaXMgdXNlZCB3aXRoaW4gYSBQb3NpdGlvbiwgdGhlIHF1YW50aXR5IGhlcmUgc2hvdWxkIGJlIHRoZSBxdWFudGl0eSByZXF1aXJlZCBmb3IgdGhlIGZ1bGwgcXVhbnRpdHkgb2YgdGhlIHBvc2l0aW9uLCBub3QgZm9yIGEgc2luZ2xlIHVuaXQuICovXG4gICAgcXVhbnRpdHk/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB1bml0IHRhZyBmb3IgdGhpcyBzaW5nbGUgQXJ0aWNsZURhdGEuICovXG4gICAgdW5pdFRhZz86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhbiBvcHRpb25hbCB0ZXh0IGVsZW1lbnQgdGhhdCBjYW4gYmUgdXNlZCB0byBmdXJ0aGVyIGRlc2NyaWJlIHRoZSBBcnRpY2xlRGF0YS4gKi9cbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogU2hvcnQgZGVzY3JpcHRpb24gZm9yIHRoaXMgSVRleHRFbGVtZW50IGVsZW1lbnQuICovXG4gICAgc2hvcnRUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBEZXRhaWxlZCBkZXNjcmlwdGlvbiBmb3IgdGhpcyBJVGV4dEVsZW1lbnQgZWxlbWVudC4gV2hlbiB0aGUgSHRtbExvbmdUZXh0IGlzIHNldCwgdGhpcyBpcyBhdXRvbWF0aWNhbGx5IG92ZXJ3cml0dGVuIGFuZCBmaWxsZWQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgcGxhaW4gdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgSHRtbCB0ZXh0LiBWaWNlIHZlcnNhLCBzZXR0aW5nIHRoaXMgcHJvcGVydHkgb3ZlcnJpZGVzIHRoZSBIdG1sTG9uZ1RleHQuICovXG4gICAgbG9uZ1RleHQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgY29udGFpbnMgdGhlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIExvbmd0ZXh0LiBXaGVuIHRoZSBMb25nVGV4dCBpcyBzZXQsIHRoaXMgaXMgYXV0b21hdGljYWxseSBvdmVyd3JpdHRlbiBhbmQgZmlsbGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIEh0bWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBsYWludGV4dC4gVmljZSB2ZXJzYSwgc2V0dGluZyB0aGlzIHByb3BlcnR5IG92ZXJyaWRlcyB0aGUgTG9uZ1RleHQuIEdBRUIgOTAgYW5kIEdBRUIgMjAwMCBleHBvcnRzIGRvIG5vdCBzdXBwb3J0IGFueSBpbWFnZSBmdW5jdGlvbmFsaXR5LiBJbiBHQUVCIFhNTCwgb25seSBpbWFnZXMgdGhhdCB1c2UgYW4gZW1iZWRkZWQgQmFzZTY0IGRhdGEgdXJpIGFyZSBleHBvcnRlZCwgcmVndWxhciB1cmwgcmVmZXJlbmNlcyBhcmUgY2xlYXJlZCBiZWZvcmUgd3JpdHRlbiBvdXQuICovXG4gICAgaHRtbExvbmdUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogUXVhbnRpdHkgYXNzaWdubWVudHMgYXJlLCBpbiBjb250cmFzdCB0byBTdWJEZXNjcmlwdGlvbnMsIHVzZWQgdG8gY2F0ZWdvcml6ZSBwYXJ0cyBvZiB0aGVpciBwYXJlbnQgUG9zaXRpb24uIEZvciBleGFtcGxlLCBpdCBjb3VsZCBiZSBjYXRlZ29yaXplZCBieSBjb3N0IGdyb3VwIC0gZS5nLiBhIFBvc2l0aW9uIGRlc2NyaWJpbmcgY29uY3JldGUgd2FsbHMgY291bGQgZm9sbG93IHRoZSBHZXJtYW4gRElOIDI3NiBDb3N0IEdyb3VwcyBTdGFuZGFyZCBhbmQgc3BlY2lmeSB0aGF0IG9mIHRoZSB0b3RhbCAxLjAwMG3CsiB3YWxsLCA1MDBtwrIgYXJlIGNsYXNzaWZpZWQgYXMgZXh0ZXJpb3Igd2FsbHMgYW5kIDUwMG3CsiBhcmUgY2xhc3NpZmllZCBhcyBpbnRlcmlvciB3YWxscy4gVGhleSB3b3VsZCB0aGVuIGhhdmUgZGlmZmVyZW50IGNvc3QgZ3JvdXBzIGFzc29jaWF0ZWQsIGUuZy4gZm9yIGFjY291bnRpbmcgcHVycG9zZXMuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1YW50aXR5QXNzaWdubWVudER0byB7XG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGUgdG90YWwgcXVhbnRpdHkgaW4gdGhpcyBxdWFudGl0eSBhc3NpZ25tZW50ICovXG4gICAgcXVhbnRpdHk/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZXNlIGFyZSBDYXRhbG9ndWUgdGhhdCBhcmUgdXNlZCB3aXRoaW4gdGhpcyBTZXJ2aWNlU3BlY2lmaWNhdGlvbi4gQ2F0YWxvZ3VlIHJlZmVyZW5jZXMgYXJlIHVzZWQgdG8gZGVzY3JpYmUgY2F0YWxvZ3Vlcywgb3IgY29sbGVjdGlvbnMsIHRoYXQgY2FuIGJlIHVzZWQgdG8gZGVzY3JpYmUgZWxlbWVudHMgd2l0aCBjb21tb25seSBrbm93biBwcm9wZXJ0aWVzLiBGb3IgZXhhbXBsZSwgUXVhbnRpdHlBc3NpZ25tZW50cyB1c2UgdGhlc2UgdG8gY2F0ZWdvcml6ZSB0aGVtc2VsdmVzLiAqL1xuICAgIHByb2plY3RDYXRhbG9ndWVzPzogQ2F0YWxvZ3VlRHRvW10gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFJlZmVyZW5jZWQgY2F0YWxvZ3VlcyBmb3IgdGhpcyBRdWFudGl0eUFzc2lnbm1lbnQuICovXG4gICAgY2F0YWxvZ3VlUmVmZXJlbmNlcz86IENhdGFsb2d1ZVJlZmVyZW5jZUR0b1tdIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBjbGFzcyBob2xkcyBzcGVjaWFsaXplZCBpbmZvcm1hdGlvbiB0aGF0IGlzIHJlbGV2YW50IHRvIHRyYWRlIG9yIGNvbW1lcmNlIGJhc2VkIGRhdGEgZXhjaGFuZ2Ugc2NlbmFyaW9zLCBlLmcuIGJldHdlZW4gY3VzdG9tZXJzLCB2ZW5kb3JzLCBzdXBwbGllcnMgYW5kIGRpc3RyaWJ1dG9ycy4gSXQgaXMgdXNlZCB3aGVuIGV4cG9ydGluZyB0byBHQUVCIFhNTCA5eCBleGNoYW5nZSBwaGFzZXMuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbW1lcmNlUHJvcGVydGllc0R0byB7XG4gICAgLyoqIFRoaXMgbWFwcyB0byBBcnRObyBpbiBHQUVCIFhNTCBhbmQgcmVwcmVzZW50cyBhbiBhcnRpY2xlIG51bWJlciBnaXZlbiBieSB0aGUgc3VwcGxpZXIuICovXG4gICAgYXJ0aWNsZU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBtYXBzIHRvIEVBTiBpbiBHQUVCIFhNTCBhbmQgcmVwcmVzZW50cyBhbiBHVElOIChmb3JtZXJseSBFQU4pIGFydGljbGUgbnVtYmVyLiAqL1xuICAgIGVhbkd0aW5BcnRpY2xlTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIG1hcHMgdG8gQXJ0Tm9JRCBpbiBHQUVCIFhNTCBhbmQgcmVwcmVzZW50cyBhbiBJTE4gYXJ0aWNsZSBudW1iZXIuICovXG4gICAgaWxuQXJ0aWNsZU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBtYXBzIHRvIENhdGFsb2dObyBpbiBHQUVCIFhNTCBhbmQgcmVwcmVzZW50cyBhbiBpZGVudGlmaWVyIG9mIGEgc3BlY2lmaWMgY2F0YWxvZ3VlLiBUaGUgcmVmZXJlbmNlZCBjYXRhbG9ndWUgaXMgdXN1YWxseSBhIGN1c3RvbWVyIHNwZWNpZmljIG9uZSwgbm90IHJlbGF0ZWQgdG8gQ2F0YWxvZ3VlUmVmZXJlbmNlcy4gKi9cbiAgICBjYXRhbG9ndWVOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgbWFwcyB0byBDYXRhbG9nQXJ0Tm8gaW4gR0FFQiBYTUwgYW5kIHJlcHJlc2VudHMgYSBrZXkgdGhhdCBtYXBzIHRvIGFuIGVudHJ5IGluIGEgc3BlY2lmaWMgY2F0YWxvZ3VlLiBUaGUgcmVmZXJlbmNlZCBjYXRhbG9ndWUgaXMgdXN1YWxseSBhIGN1c3RvbWVyIHNwZWNpZmljIG9uZSwgbm90IHJlbGF0ZWQgdG8gQ2F0YWxvZ3VlUmVmZXJlbmNlcy4gKi9cbiAgICBjYXRhbG9ndWVBcnRpY2xlTnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIG9wdGlvbmFsIHByb3BlcnR5IGNhbiBiZSB1c2VkIHRvIGluZGljYXRlIHRoZSBiYXNpcyBmb3IgcHJpY2VzIGZvciBhIHNpbmdsZSBwb3NpdGlvbi4gUHJpY2UgYmFzaXMgbWVhbnMgdGhhdCB0aGUgcHJpY2UgaXMgZ2l2ZW4gcGVyIHVuaXQgb2YgdGhlIGJhc2lzLCBlLmcuIHBlciBhIHBhY2sgb2YgZml2ZSB3aGVuIHRoaXMgcHJvcGVydHkgaXMgc2V0IHRvICc1Jy4gKi9cbiAgICBwcmljZUJhc2lzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIG9wdGlvbmFsIHByb3BlcnR5IGNhbiBiZSB1c2VkIHRvIGluZGljYXRlIGEgc3ViIHBvc2l0aW9uIGlkZW50aWZpZXIgc3BlY2lmaWMgZm9yIHRoZSBjb21tZXJjZSBleGNoYW5nZSAqL1xuICAgIHN1YlBvc2l0aW9uSWRlbnRpZmllcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW4gYSBjb21tZXJjZSBleGNoYW5nZSwgdGhpcyBwcm9wZXJ0eSBpcyB1c3VhbGx5IHVzZWQgdG8gcmVmZXJlbmNlIHRoZSBiYXNlIGl0ZW0gbnVtYmVyIG9mIGFuIHVuZGVybHlpbmcgcGhhc2UgODMgZXhjaGFuZ2UgZmlsZSAqL1xuICAgIGN1c3RvbWVyQmFzZUl0ZW1OdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgdGhlIGxpbmtpbmcgdG8gYSBjb21wbGVtZW50YXJ5IHBvc2l0aW9uIHdpdGggYSBzcGVjaWZpYyBxdWFudGl0eSBzZXQuIEZvciBleGFtcGxlLCBQb3NpdGlvbiAnQScgY291bGQgYmUgY29tcGxlbWVudGluZyBQb3NpdGlvbiAnQicgd2l0aCBhIHRvdGFsIHF1YW50aXR5IG9mIDIwIHVuaXRzICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsZW1lbnRlZEJ5UXVhbnRpdHlEdG8ge1xuICAgIC8qKiBUaGUgcXVhbnRpdHkgdGhhdCBpcyBjb21wbGVtZW50ZWQuIEUuZy4sIGlmIHRoZSBiYXNlIHBvc2l0aW9uIGhhcyBhIHF1YW50aXR5IG9mIDEwMCBtwrIgb2YgYSBicmljayB3YWxsLCBhIGNvbXBsZW1lbnRpbmcgcG9zaXRpb24gbWlnaHQgYmUgZm9yICd3YWxscyB0aGF0IGV4Y2VlZCAzIG0gaGVpZ2h0JyBhbmQgZm9yIGEgdG90YWwgcXVhbnRpdHkgb2YgMTAgbcKyLiAqL1xuICAgIHF1YW50aXR5PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIHRoZSByZWZlcmVuY2UgdG8gdGhlIElkIG9mIHRoZSBQb3NpdGlvbiB0aGF0IGlzIGNvbXBsZW1lbnRpbmcuIFRoaXMgbWVhbnMgaXQgZG9lcyBOT1QgcmVmZXJlbmNlIHRoZSBiYXNlIHBvc2l0aW9uIGJ1dCB0aGUgb25lIHRoYXQgY29udGFpbnMgdGhlIGFjdHVhbCBhZGRpdGlvbi4gKi9cbiAgICBjb21wbGVtZW50aW5nUG9zaXRpb25JZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgY2xhc3MgbW9kZWxzIHNwZWNpYWwgcHJvcGVydGllcyB0aGF0IG9ubHkgYXBwbHkgdG8gc29tZSBleGNoYW5nZSBzY2VuYXJpb3Mgd2hlcmUgw5ZOb3JtIGlzIHVzZWQuIEl0IGlzIHNwZWNpYWwgZm9yIFBvc2l0aW9ucyBhbmQgZXh0ZW5kcyB0aGUgT2Vub3JtUHJvcGVydGllcyBiYXNlIGNsYXNzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZW5vcm1Qb3NpdGlvblByb3BlcnRpZXNEdG8ge1xuICAgIC8qKiBUaGlzIGluZGljYXRlcyB3aGVyZSB0aGUgY29udGVudCBvZiB0aGlzIGVsZW1lbnQgb3JpZ2luYXRlcywgaWYgc2V0LiBJdCBjb3JyZXNwb25kcyB0byAnaGVya3VuZnRza2VubnplaWNoZW4nIGluIMOWTm9ybSAqL1xuICAgIG9yaWdpbkNvZGU/OiBPZW5vcm1PcmlnaW5Db2RlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIG1hcmtzIGlmIHRoZSBvcGVuaW5nIHRleHRzIHdpdGhpbiB0aGlzIGVsZW1lbnQgYXJlIGNvbnNpZGVyZWQgZnJlZSB0ZXh0LiBJdCBjb3JyZXNwb25kcyB0byAndm9yYmVtZXJrdW5nc2tlbm56ZWljaGVuJyBpbiDDlk5vcm0uICovXG4gICAgb3BlbmluZ1RleHRJc0ZyZWVUZXh0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMgaWYgdGhlIMOWTm9ybSAnd2VzZW50bGljaGUgcG9zaXRpb24nIG1hcmsgaXMgc2V0ICovXG4gICAgaXNNYWluUG9zaXRpb24/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGluZGljYXRlcyBpZiB0aGUgw5ZOb3JtIHBvc2l0aW9uIHdhcyBhICd1bmdldGVpbHRlcG9zaXRpb24nICh1bmRpdmlkZWQgcG9zaXRpb24pLiBUaGlzIHdpbGwgb25seSBiZSB0YWtlbiBpbnRvIGFjY291bnQgd2hlbiB0aGUgcG9zaXRpb24gaXMgYWxzbyB0aGUgc29sZSBlbGVtZW50IGluc2lkZSBpdCdzIHBhcmVudCBncm91cCAqL1xuICAgIGlzVW5kaXZpZGVkUG9zaXRpb24/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbiBzb21lIMOWTm9ybSBmb3JtYXRzLCB0aGUgc2hvcnQgdGV4dCBjYW4gaGF2ZSBpdCdzIG93biBhZGRpdGlvbiwgc28gdGhlIHRleHQgaXMgc3BsaXQgdXAgaW4gT2Vub3JtU2hvcnRUZXh0IGFuZCBPZW5vcm1TaG9ydFRleHRBZGRpdGlvbiBUbyBzZXJpYWxpemUgdGhpcywgZWl0aGVyIHRoZSBTaG9ydFRleHQgcHJvcGVydHkgb2YgdGhlIHBhcmVudCBwb3NpdGlvbiBuZWVkcyB0byBiZSBudWxsLCBvciBPZW5vcm1TaG9ydFRleHQgJyAnIE9lbm9ybVNob3J0VGV4dEFkZGl0aW9uIG5lZWRzIHRvIG1hdGNoIHRoZSBTaG9ydFRleHQuICovXG4gICAgb2Vub3JtU2hvcnRUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbiBzb21lIMOWTm9ybSBmb3JtYXRzLCB0aGUgc2hvcnQgdGV4dCBjYW4gaGF2ZSBpdCdzIG93biBhZGRpdGlvbiwgc28gdGhlIHRleHQgaXMgc3BsaXQgdXAgaW4gT2Vub3JtU2hvcnRUZXh0IGFuZCBPZW5vcm1TaG9ydFRleHRBZGRpdGlvbiBUbyBzZXJpYWxpemUgdGhpcywgZWl0aGVyIHRoZSBTaG9ydFRleHQgcHJvcGVydHkgb2YgdGhlIHBhcmVudCBwb3NpdGlvbiBuZWVkcyB0byBiZSBudWxsLCBvciBPZW5vcm1TaG9ydFRleHQgJyAnIE9lbm9ybVNob3J0VGV4dEFkZGl0aW9uIG5lZWRzIHRvIG1hdGNoIHRoZSBTaG9ydFRleHQuICovXG4gICAgb2Vub3JtU2hvcnRUZXh0QWRkaXRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGluZGljYXRlcyB3aGVyZSB0aGUgY29udGVudCBvZiB0aGlzIGVsZW1lbnQgb3JpZ2luYXRlcywgaWYgc2V0LiBJdCBjb3JyZXNwb25kcyB0byAnaGVya3VuZnRza2VubnplaWNoZW4nIGluIMOWTm9ybSAqL1xuZXhwb3J0IGVudW0gT2Vub3JtT3JpZ2luQ29kZUR0byB7XG4gICAgVW5rbm93biA9IFwiVW5rbm93blwiLFxuICAgIEZyZWVUZXh0ID0gXCJGcmVlVGV4dFwiLFxuICAgIEFkZGl0aW9uRGVzY3JpcHRpb24gPSBcIkFkZGl0aW9uRGVzY3JpcHRpb25cIixcbn1cblxuLyoqIFRoaXMgZW51bWVyYXRpb24gcmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIGFuIGFkZGVuZHVtLCAnTmFjaHRyYWcnIGluIEdlcm1hbiAqL1xuZXhwb3J0IGVudW0gQWRkZW5kdW1TdGF0dXNEdG8ge1xuICAgIFVua25vd24gPSBcIlVua25vd25cIixcbiAgICBSZWNvZ25pemVkID0gXCJSZWNvZ25pemVkXCIsXG4gICAgRmlsZWQgPSBcIkZpbGVkXCIsXG4gICAgT2ZmZXJlZCA9IFwiT2ZmZXJlZFwiLFxuICAgIFdpdGhkcmF3biA9IFwiV2l0aGRyYXduXCIsXG4gICAgUmVqZWN0ZWQgPSBcIlJlamVjdGVkXCIsXG4gICAgUmVqZWN0aW9uT2JqZWN0ZWQgPSBcIlJlamVjdGlvbk9iamVjdGVkXCIsXG4gICAgRm9ybWFsbHlBY2tub3dsZWRnZWQgPSBcIkZvcm1hbGx5QWNrbm93bGVkZ2VkXCIsXG4gICAgQXBwcm92ZWQgPSBcIkFwcHJvdmVkXCIsXG59XG5cbi8qKiBUaGlzIGVudW0gcmVwcmVzZW50cyB0aGUgZGlmZmVyZW50IHdheXMgaW4gd2hpY2ggYSBjb21wbGVtZW50aW5nIHBvc2l0aW9uIHR5cGUgY2FuIGJlIHNwZWNpZmllZC4gSXQgaXMgdHlwaWNhbGx5IG9ubHkgdXNlZCBpbiBHQUVCIGV4cG9ydHMsIHNpbmNlIGluIERhbmdsLkFWQSwgY29tcGxlbWVudGluZyBwb3NpdGlvbnMgYXJlIGFsd2F5cyBleHBsaWNpdGx5IHJlZmVyZW5jZWQuICovXG5leHBvcnQgZW51bSBQb3NpdGlvbkNvbXBsZW1lbnRpbmdUeXBlRHRvIHtcbiAgICBVbmRlZmluZWQgPSBcIlVuZGVmaW5lZFwiLFxuICAgIEFsbFByZXZpb3VzTWFya2VkUG9zaXRpb25zID0gXCJBbGxQcmV2aW91c01hcmtlZFBvc2l0aW9uc1wiLFxuICAgIEFsbFByZXZpb3VzUG9zaXRpb25zID0gXCJBbGxQcmV2aW91c1Bvc2l0aW9uc1wiLFxuICAgIFJlZmVyZW5jZWRQb3NpdGlvbnMgPSBcIlJlZmVyZW5jZWRQb3NpdGlvbnNcIixcbn1cblxuLyoqIFRoaXMgY2xhc3MgaG9sZHMgcHJvcGVydGllcyB0aGF0IGRlc2NyaWJlIHJldGVudGlvbiB0eXBlcyBpbiBwb3NpdGlvbi4gUmV0ZW50aW9uIC8gaG9sZCBvdXQgdXN1YWxseSBtZWFucyB0aGF0IGEgc2VydmljZSBpcyBwcm92aWRlZCBhbmQga2VwdCBhdmFpbGFibGUgZm9yIGEgc3BlY2lmaWMgYW1vdW50IG9mIHRpbWUsIGUuZy4gZmVuY2VzIG9uIGEgY29uc3RydWN0aW9uIHNpdGUgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9zaXRpb25Ib2xkT3V0UHJvcGVydGllc0R0byB7XG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGUgYWN0dWFsIHR5cGUgKi9cbiAgICBob2xkT3V0VHlwZT86IEhvbGRPdXRUeXBlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgZHVyYXRpb24gb2YgdGhlIHBlcmlvZCAqL1xuICAgIGhvbGRPdXREdXJhdGlvbj86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHRpbWUgdW5pdCBvZiB0aGUgcGVyaW9kICovXG4gICAgaG9sZE91dER1cmF0aW9uVW5pdD86IEhvbGRPdXREdXJhdGlvblVuaXREdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFJlZmVyZW5jZXMgdG8gYmFzZSBwb3NpdGlvbnMgKi9cbiAgICBiYXNlUG9zaXRpb25SZWZlcmVuY2VzPzogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUeXBlcyBvZiByZXRlbnRpb25zIHRvIGJlIHVzZWQgaW4gcG9zaXRpb25zICovXG5leHBvcnQgZW51bSBIb2xkT3V0VHlwZUR0byB7XG4gICAgVW5rbm93biA9IFwiVW5rbm93blwiLFxuICAgIEJhc2UgPSBcIkJhc2VcIixcbiAgICBFeHRlbnNpb24gPSBcIkV4dGVuc2lvblwiLFxuICAgIFJlbnQgPSBcIlJlbnRcIixcbn1cblxuLyoqIER1cmF0aW9uIHVzZWQgaW4gcmV0ZW50aW9uIHBvc2l0aW9ucyAqL1xuZXhwb3J0IGVudW0gSG9sZE91dER1cmF0aW9uVW5pdER0byB7XG4gICAgVW5rbm93biA9IFwiVW5rbm93blwiLFxuICAgIE1pbnV0ZXMgPSBcIk1pbnV0ZXNcIixcbiAgICBIb3VycyA9IFwiSG91cnNcIixcbiAgICBEYXlzID0gXCJEYXlzXCIsXG4gICAgV2Vla3MgPSBcIldlZWtzXCIsXG4gICAgTW9udGhzID0gXCJNb250aHNcIixcbn1cblxuLyoqIFByaWNlIGNhdGFsb2d1ZSBkYXRhIHJlcHJlc2VudHMgYXNzdW1lZCBvciBlc3RpbWF0ZWQgcHJpY2VzIGZyb20gYSBjYXRhbG9ndWUgc291cmNlICovXG5leHBvcnQgaW50ZXJmYWNlIFByaWNlQ2F0YWxvZ3VlRGF0YUR0byB7XG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGUgbG93ZXIgYm91bmQgb2YgdGhlIHVuaXQgcHJpY2UgKi9cbiAgICB1bml0UHJpY2VGcm9tPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdXBwZXIgYm91bmQgb2YgdGhlIHVuaXQgcHJpY2UgKi9cbiAgICB1bml0UHJpY2VUbz86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGF2ZXJhZ2UgdW5pdCBwcmljZSAqL1xuICAgIHVuaXRQcmljZUF2ZXJhZ2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBsb3dlciBib3VuZCBvZiB0aGUgd2FnZSBwcmljZSAqL1xuICAgIHdhZ2VQcmljZUZyb20/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB1cHBlciBib3VuZCBvZiB0aGUgd2FnZSBwcmljZSAqL1xuICAgIHdhZ2VQcmljZVRvPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgYXZlcmFnZSB3YWdlIHByaWNlICovXG4gICAgd2FnZVByaWNlQXZlcmFnZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIEFuIEV4ZWN1dGlvbkRlc2NyaXB0aW9uIGlzIHVzZWQgdG8gZ2l2ZSBtb3JlIGRldGFpbHMgZm9yIGNlcnRhaW4gaXRlbXMsIGVzcGVjaWFsbHkgb24gaG93IHRoZXkgYXJlIG1lYW50IHRvIGJlIGV4ZWN1dGVkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGVjdXRpb25EZXNjcmlwdGlvbkR0byBleHRlbmRzIElFbGVtZW50RHRvIHtcbiAgICAvKiogQmxvY2tzIHdpdGhpbiBhbiBFeGVjdXRpb25EZXNjcmlwdGlvbiBjb250YWluIHRoZSBhY3R1YWwgaW5mb3JtYXRpb24uICovXG4gICAgYmxvY2tzPzogTm90ZVRleHREdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogTGFiZWxzIHRoaXMgRXhlY3V0aW9uRGVzY3JpcHRpb24uICovXG4gICAgbGFiZWw/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFVuaXF1ZWx5IGlkZW50aWZpZXMgdGhpcyBFeGVjdXRpb25EZXNjcmlwdGlvbi4gKi9cbiAgICBpZGVudGlmaWVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGVsZW1lbnRUeXBlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogUmVwcmVzZW50cyBhbiBlbGVtZW50IHRoYXQgaG9sZHMgdGV4dCBpbmZvcm1hdGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm90ZVRleHREdG8gZXh0ZW5kcyBJRWxlbWVudER0byB7XG4gICAgLyoqIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHRoaXMgdGV4dCBpcyBtZWFudCB0byBub3QgYmUgc2VlbiBhcyBwYXJ0IG9mIHRoZSByZWd1bGFyIGVsZW1lbnRzIGhpZXJhcmNoeSBidXQgYXMgYSBzcGVjaWFsIG9wZW5pbmcgdGV4dCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBwcm9qZWN0LiBGb3IgZXhhbXBsZSwgaW4gR0FFQiBYTUwsIHRoaXMgd291bGQgbWFwIHRvIHRoZSBHQUVCLkF3YXJkLkFkZFRleHQuIFR5cGljYWxseSwgc3VjaCB0ZXh0cyBkZXNjcmliZSBwcm9qZWN0LXdpZGUgY29udHJhY3R1YWwgZGVmaW5pdGlvbnMuIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHRoaXMgTm90ZVRleHQgc2hvdWxkIGJlIHBsYWNlZCBhdCB0aGUgdG9wIG9mIHRoZSBlbGVtZW50cyBoaWVyYXJjaHkgZGlyZWN0bHkgaW4gdGhlIFNlcnZpY2VTcGVjaWZpY2F0aW9uLkVsZW1lbnRzIGdyb3VwLCBvdGhlcndpc2UgaXQgd2lsbCBsaWtlbHkgbm90IGJlIHRyZWF0ZWQgY29ycmVjdGx5IHdoZW4gZXhwb3J0aW5nIHRvIEdBRUIuIFlvdSBjYW4gb25seSBzZXQgSXNPcGVuaW5nVGV4dCBvciBJc0Nsb3NpbmdUZXh0IHRvIHRydWUuICovXG4gICAgaXNPcGVuaW5nVGV4dD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgLyoqIElmIHRoaXMgaXMgc2V0IHRvIHRydWUsIHRoaXMgdGV4dCBpcyBtZWFudCB0byBub3QgYmUgc2VlbiBhcyBwYXJ0IG9mIHRoZSByZWd1bGFyIGVsZW1lbnRzIGhpZXJhcmNoeSBidXQgYXMgYSBzcGVjaWFsIGNsb3NpbmcgdGV4dCBhdCB0aGUgZW5kIG9mIHRoZSBwcm9qZWN0LiBGb3IgRXhhbXBsZSwgaW4gR0FFQiBYTUwsIHRoaXMgd291bGQgbWFwIHRvIHRoZSBHQUVCLkFkZFRleHQuIFR5cGljYWxseSwgc3VjaCB0ZXh0cyBhcmUgdXNlZCB0byBkZXNjcmliZSBwcm9qZWN0IHdpZGUgZmluaXNoaW5nIGRlc2NyaXB0aW9ucy4gSWYgdGhpcyBpcyBzZXQgdG8gdHJ1ZSwgdGhpcyBOb3RlVGV4dCBzaG91bGQgYmUgcGxhY2VkIGF0IHRoZSB0b3Agb2YgdGhlIGVsZW1lbnRzIGhpZXJhcmNoeSBkaXJlY3RseSBpbiB0aGUgU2VydmljZVNwZWNpZmljYXRpb24uRWxlbWVudHMgZ3JvdXAsIG90aGVyd2lzZSBpdCB3aWxsIGxpa2VseSBub3QgYmUgdHJlYXRlZCBjb3JyZWN0bHkgd2hlbiBleHBvcnRpbmcgdG8gR0FFQi4gWW91IGNhbiBvbmx5IHNldCBJc09wZW5pbmdUZXh0IG9yIElzQ2xvc2luZ1RleHQgdG8gdHJ1ZS4gKi9cbiAgICBpc0Nsb3NpbmdUZXh0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogU2hvcnQgZGVzY3JpcHRpb24gZm9yIHRoaXMgRGVzY3JpcHRpb25CYXNlIGVsZW1lbnQuICovXG4gICAgc2hvcnRUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhpcyBEZXNjcmlwdGlvbkJhc2UgZWxlbWVudCBjb250YWlucyBCdXllciBvciBCaWRkZXIgYWRkaXRpb25zIHRvIHRoZSB0ZXh0LiAqL1xuICAgIGFkZGl0aW9uVHlwZT86IEFkZGl0aW9uVHlwZUR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogRGV0YWlsZWQgZGVzY3JpcHRpb24gZm9yIHRoaXMgRGVzY3JpcHRpb25CYXNlIGVsZW1lbnQuIFdoZW4gdGhlIEh0bWxMb25nVGV4dCBpcyBzZXQsIHRoaXMgaXMgYXV0b21hdGljYWxseSBvdmVyd3JpdHRlbiBhbmQgZmlsbGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlIHBsYWluIHRleHQgcmVwcmVzZW50YXRpb24gb2YgdGhlIEh0bWwgdGV4dC4gVmljZSB2ZXJzYSwgc2V0dGluZyB0aGlzIHByb3BlcnR5IG92ZXJyaWRlcyB0aGUgSHRtbExvbmdUZXh0LiAqL1xuICAgIGxvbmdUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGNvbnRhaW5zIHRoZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBMb25ndGV4dC4gV2hlbiB0aGUgTG9uZ1RleHQgaXMgc2V0LCB0aGlzIGlzIGF1dG9tYXRpY2FsbHkgb3ZlcndyaXR0ZW4gYW5kIGZpbGxlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBIdG1sIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBwbGFpbnRleHQuIFZpY2UgdmVyc2EsIHNldHRpbmcgdGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgdGhlIExvbmdUZXh0LiBHQUVCIDkwIGFuZCBHQUVCIDIwMDAgZXhwb3J0cyBkbyBub3Qgc3VwcG9ydCBhbnkgaW1hZ2UgZnVuY3Rpb25hbGl0eS4gSW4gR0FFQiBYTUwsIG9ubHkgaW1hZ2VzIHRoYXQgdXNlIGFuIGVtYmVkZGVkIEJhc2U2NCBkYXRhIHVyaSBhcmUgZXhwb3J0ZWQsIHJlZ3VsYXIgdXJsIHJlZmVyZW5jZXMgYXJlIGNsZWFyZWQgYmVmb3JlIHdyaXR0ZW4gb3V0LiAqL1xuICAgIGh0bWxMb25nVGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhbiBvcHRpb25hbCBpbnRlcm5hbCBpZGVudGlmaWVyIHRoYXQgbWF5IGJlIHVzZWQgdG8gYWRkIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdG8gdGhpcyBOb3RlVGV4dC4gSXQgaXMgbm90IHN1cHBvcnRlZCBpbiBHQUVCIGltcG9ydCBvciBleHBvcnQuICovXG4gICAgaWRlbnRpZmllcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyByZXByZXNlbnRzIGEgc3RhbmRhcmRpemVkIGRlc2NyaXB0aW9uLiBUaGlzIG1lYW5zIHRoYXQgaW5zdGVhZCBvZiBzb2xlbHkgcmVseWluZyBvbiB0ZXh0cyB0byBkZXNjcmliZSBhIHNlcnZpY2UsIGV4dGVybmFsIHN0YW5kYXJkcyBhbmQgZGVmaW5pdGlvbnMgYXJlIHJlZmVyZW5jZWQgZm9yIGEgY29tbW9uIHVuZGVyc3RhbmRpbmcuICovXG4gICAgc3RhbmRhcmRpemVkRGVzY3JpcHRpb24/OiBTdGFuZGFyZGl6ZWREZXNjcmlwdGlvbkR0byB8IHVuZGVmaW5lZDtcbiAgICBlbGVtZW50VHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhbiBpZGVudGlmaWVyIHNwZWNpZmljIGZvciB0aGlzIGRlc2NyaXB0aW9uLiBTb21lIGV4Y2hhbmdlIGZvcm1hdHMsIGxpa2UgR0FFQiBYTUwsIHVzZSBpdCB0byBpZGVudGlmeSBkZXNjcmlwdGlvbnMuIEl0J3MgZGlmZmVyZW50IHRvIGFuIGVsZW1lbnRzIGlkZW50aWZpZXIgaW4gdGhhdCBpdCBzaG91bGQgb25seSBhcHBseSB0byB0aGUgZGVzY3JpcHRpb24gY29tcG9uZW50LCBtZWFuaW5nIHRoZSB0ZXh0IGl0c2VsZi4gKi9cbiAgICBkZXNjcmlwdGlvbklkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGNsYXNzIG1vZGVscyBzcGVjaWFsIHByb3BlcnRpZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHNvbWUgZXhjaGFuZ2Ugc2NlbmFyaW9zIHdoZXJlIMOWTm9ybSBpcyB1c2VkLiBJdCBpcyBzcGVjaWFsIGZvciBOb3RlVGV4dHMuICovXG4gICAgb2Vub3JtTm90ZVRleHRQcm9wZXJ0aWVzPzogT2Vub3JtTm90ZVRleHRQcm9wZXJ0aWVzRHRvIHwgdW5kZWZpbmVkO1xuICAgIHJlYWRvbmx5IGhhc0JpZGRlckNvbW1lbnRJbkh0bWxMb25nVGV4dD86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGNsYXNzIG1vZGVscyBzcGVjaWFsIHByb3BlcnRpZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHNvbWUgZXhjaGFuZ2Ugc2NlbmFyaW9zIHdoZXJlIMOWTm9ybSBpcyB1c2VkLiBJdCBpcyBzcGVjaWFsIGZvciBOb3RlVGV4dHMuICovXG5leHBvcnQgaW50ZXJmYWNlIE9lbm9ybU5vdGVUZXh0UHJvcGVydGllc0R0byB7XG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzIHdoZXJlIHRoZSBjb250ZW50IG9mIHRoaXMgZWxlbWVudCBvcmlnaW5hdGVzLCBpZiBzZXQuIEl0IGNvcnJlc3BvbmRzIHRvICdoZXJrdW5mdHNrZW5uemVpY2hlbicgaW4gw5ZOb3JtICovXG4gICAgb3JpZ2luQ29kZT86IE9lbm9ybU9yaWdpbkNvZGVEdG8gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGlzIGEgZ3JvdXBpbmcgSUVsZW1lbnQgdGhhdCBob2xkcyBvdGhlciBJRWxlbWVudHMgd2l0aGluLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwRHRvIGV4dGVuZHMgSUVsZW1lbnREdG8ge1xuICAgIC8qKiBUaGUgaG91cmx5IHdhZ2UgdGhhdCBpcyB1c2VkIHdpdGhpbiB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlLiBXaWxsIGJlIHByb3BhZ2F0ZWQgdG8gY2hpbGQgZWxlbWVudHMuICovXG4gICAgcmVhZG9ubHkgcHJvamVjdEhvdXJseVdhZ2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB0YXggcmF0ZSB0aGF0IGlzIHVzZWQgd2l0aGluIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UuIFdpbGwgYmUgcHJvcGFnYXRlZCB0byBjaGlsZCBlbGVtZW50cy4gKi9cbiAgICBwcm9qZWN0VGF4UmF0ZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHByaWNlIGNvbXBvbmVudHMgdGhhdCBhcmUgdXNlZCB3aXRoaW4gdGhpcyBwcm9qZWN0LiBUaGV5IGFyZSBpZ25vcmVkIGR1cmluZyBKc29uIGRlc2VyaWFsaXphdGlvbiBiZWNhdXNlIHRoZXkgd2lsbCBiZSBzZXQgZnJvbSB0aGUgcGFyZW50IHByb2plY3QuICovXG4gICAgcHJvamVjdFByaWNlQ29tcG9uZW50cz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgSXRlbU51bWJlclNjaGVtYSB0aGF0IGlzIHVzZWQgd2l0aGluIHRoaXMgcHJvamVjdC4gKi9cbiAgICBwcm9qZWN0SXRlbU51bWJlclNjaGVtYT86IEl0ZW1OdW1iZXJTY2hlbWFEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBJRWxlbWVudHMgd2l0aGluIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UuICovXG4gICAgZWxlbWVudHM/OiBJRWxlbWVudER0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgbGFiZWwgdXNlZCBpbiB0aGUgcGFyZW50IFByb2plY3QgdG8gbWFyayBsYWJvdXIgdGltZSwgZS5nLiBcIkhvdXJzXCIgb3IgXCJTdHVuZGVuXCIuICovXG4gICAgcmVhZG9ubHkgcHJvamVjdExhYm91clRpbWVMYWJlbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZXJlIGFyZSBjaGlsZCBJRWxlbWVudHMgdGhhdCBoYXZlIGNvbmZsaWN0aW5nLCBkdXBsaWNhdGVkIEl0ZW1OdW1iZXJzIG9yIGlmIGFueSBjaGlsZCBFbGVtZW50Q29udGFpbmVyQmFzZSBlbGVtZW50cyB0aGVtc2VsdmVzIGNvbnRhaW4gZHVwbGljYXRlIEl0ZW1OdW1iZXIgcy4gV2lsbCBhbHdheXMgaW5kaWNhdGUgZmFsc2Ugd2hlbiB0b2xkIHRvIGlnbm9yZSBkdXBsaWNhdGUgaXRlbSBudW1iZXJzLiAqL1xuICAgIHJlYWRvbmx5IGNvbnRhaW5zRHVwbGljYXRlSXRlbU51bWJlcnM/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlcmUgYXJlIGNoaWxkIElFbGVtZW50cyB0aGF0IGhhdmUgY29uZmxpY3RpbmcsIGR1cGxpY2F0ZWQgSWRzIG9yIGlmIGFueSBjaGlsZCBFbGVtZW50Q29udGFpbmVyQmFzZSBlbGVtZW50cyB0aGVtc2VsdmVzIGNvbnRhaW4gZHVwbGljYXRlIElkIHMuIFdpbGwgYWx3YXlzIGluZGljYXRlIGZhbHNlIHdoZW4gdG9sZCB0byBpZ25vcmUgZHVwbGljYXRlIGl0ZW0gbnVtYmVycy4gKi9cbiAgICByZWFkb25seSBjb250YWluc0R1cGxpY2F0ZUVsZW1lbnRJZHM/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZSBpZiBkdXBsaWNhdGVkIEl0ZW1OdW1iZXJzIHdpdGhpbiBjaGlsZCBlbGVtZW50cyBhcmUgdG8gYmUgaWdub3JlZC4gV2lsbCBub3QgcGVyZm9ybSBjaGVja3MgZm9yIGR1cGxpY2F0ZXMgaWYgeWVzLiAqL1xuICAgIGlnbm9yZUR1cGxpY2F0ZUl0ZW1OdW1iZXJzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSWYgdGhpcyBpcyBzZXQgdG8gdHJ1ZSwgdGhlIFByb2plY3RDYXRhbG9ndWVzIHByb3BlcnR5IHdpbGwgbm90IGJlIHByb3BhZ2F0ZWQgdG8gY2hpbGQgZWxlbWVudHMuIFRoaXMgaXMgdXNlZnVsIGluIG1hcHBpbmcgc2NlbmFyaW9zLCB3aGVyZSB5b3Ugd2FudCB0byBkaXNhYmxlIHByb3BhZ2F0aW9uIGZvciBtdWx0aXBsZSBjaGFuZ2VzLCBhbmQgb25seSBlbmFibGUgaXQgb25jZSB5b3UgaGF2ZSBtYXBwZWQgYWxsIHByb3BlcnRpZXMgKi9cbiAgICBpZ25vcmVQcm9qZWN0Q2F0YWxvZ3VlUHJvcGFnYXRpb24/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZSBpZiBkdXBsaWNhdGVkIElkcyB3aXRoaW4gY2hpbGQgZWxlbWVudHMgYXJlIHRvIGJlIGlnbm9yZWQuIFdpbGwgbm90IHBlcmZvcm0gY2hlY2tzIGZvciBkdXBsaWNhdGVzIGlmIHllcy4gKi9cbiAgICBpZ25vcmVEdXBsaWNhdGVFbGVtZW50SWRzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogUHJpY2UgY29tcG9zaXRpb24gYnkgdGF4IHJhdGUuICovXG4gICAgdG90YWxQcmljZUdyb3NzQnlUYXhSYXRlPzogR3Jvc3NQcmljZUNvbXBvbmVudER0b1tdIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbnRlcm5hbGx5IHVzZWQgdG8gaW5kaWNhdGUgdGhhdCBhIHByb3BhZ2F0aW9uIGlzIGN1cnJlbnRseSBkb25lLCB0aGlzIGlzIGRvbmUgdG8gbm90IHJlY2FsY3VsYXRlIGV2ZXJ5IHNpbmdsZSByZXN1bHQgZnJvbSBhIGxvdCBvZiBjaGFuZ2VzIHdoZW4gaXQgaXMgc3VmZmljaWVudCB0byBjYWxjdWxhdGUgdGhlIHRvdGFsIHByaWNlIGF0IG9uY2UuICovXG4gICAgaWdub3JlQ2hpbGRQcmljZVVwZGF0ZXM/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBOZXQgcHJpY2UgYWZ0ZXIgYXBwbGllZCBkZWR1Y3Rpb25zLiAqL1xuICAgIHJlYWRvbmx5IGRlZHVjdGVkUHJpY2U/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEZhY3RvciBvZiBhcHBsaWVkIGRlZHVjdGlvbnMgdG8gdGhlIHRvdGFsIHByaWNlLiBGb3IgZXhhbXBsZSwgXCIwLjAzXCIgbWVhbnMgdGhhdCBhIDMlIGRlZHVjdGlvbiBpcyB0byBiZSBhcHBsaWVkLiAqL1xuICAgIGRlZHVjdGlvbkZhY3Rvcj86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGV4YWN0IGFtb3VudCBvZiB0aGUgZGlzY291bnQgYXMgYW4gYWJzb2x1dGUgdmFsdWUuIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSByZWFzb25zLCBzZXR0aW5nIHRoaXMgdmFsdWUgd2lsbCBhbHNvIHNldCBhIGNhbGN1bGF0ZWQgdmFsdWUgdG8gRGVkdWN0aW9uRmFjdG9yLCB3aGljaCB3aWxsIGFsc28gYmUgdXBkYXRlZCBpbiBjYXNlIHRoZSB0b3RhbCBwcmljZSBpcyBjaGFuZ2VkIHRvIHJlZmxlY3QgYSByZWxhdGl2ZSB2YWx1ZSBvZiB0aGUgYWJzb2x1dGUgZGlzY291bnQgc3VtLiAqL1xuICAgIGFic29sdXRlRGVkdWN0aW9uPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBXaWxsIHJldHVybiB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlJ3MgdG90YWwgcHJpY2UuICovXG4gICAgcmVhZG9ubHkgdG90YWxQcmljZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHRvdGFsIGdyb3NzIHByaWNlIGZvciB0aGlzIEVsZW1lbnRDb250YWluZXJCYXNlIGluY2x1ZGluZyBhbGwgY2hpbGQgZWxlbWVudHMuICovXG4gICAgcmVhZG9ubHkgdG90YWxQcmljZUdyb3NzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUb3RhbCBncm9zcyBwcmljZSBhZnRlciBhcHBsaWVkIGRlZHVjdGlvbnMuICovXG4gICAgcmVhZG9ubHkgdG90YWxQcmljZUdyb3NzRGVkdWN0ZWQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEluZGljYXRlcyB0aGUgUHJpY2VUeXBlIG9mIHRoaXMgRWxlbWVudENvbnRhaW5lckJhc2UsIHdoZXRoZXIgaXQgc2hvdWxkIGZhY3RvciBpbnRvIHRvdGFsIGNvc3RzIG9yIG5vdC4gKi9cbiAgICBwcmljZVR5cGU/OiBQcmljZVR5cGVEdG8gfCB1bmRlZmluZWQ7XG4gICAgLyoqIERlc2NyaXB0aW9uIGZvciB0aGlzIFNlcnZpY2VTcGVjaWZpY2F0aW9uR3JvdXAuICovXG4gICAgc2hvcnRUZXh0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhpcyBzZXJ2aWNlIHNwZWNpZmljYXRpb24gZ3JvdXAgaXMgY29tbWlzc2lvbmVkIChhbmQgdGhlcmVmb3JlIHNob3VsZCBiZSBleGVjdXRlZCksIHBvc3Rwb25lZCBmb3IgbGF0ZXIgb3IgdW5kZWZpbmVkLiAqL1xuICAgIGNvbWlzc2lvblN0YXR1cz86IENvbWlzc2lvblN0YXR1c0R0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIEl0ZW1OdW1iZXIgZm9yIHRoaXMgSU51bWJlcmVkRWxlbWVudCBpbnRlcmZhY2UuICovXG4gICAgaXRlbU51bWJlcj86IEl0ZW1OdW1iZXJEdG8gfCB1bmRlZmluZWQ7XG4gICAgZWxlbWVudFR5cGU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaW5kaWNhdGVzIGlmIHRoaXMgZ3JvdXAgaXMgdGhlIHBhcmVudCBvZiBhIGxvdC4gU2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHdvcmtpbmcgd2l0aCBsb3RzLiAqL1xuICAgIHJlYWRvbmx5IGlzTG90PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogSWYgdGhpcyBncm91cCBpcyBhbiBhbHRlcm5hdGl2ZSBmb3IgYSBiYXNlIGdyb3VwLCB0aGVuIHRoaXMgcHJvcGVydHkgc2hvdWxkIHBvaW50IHRvIHRoZSBpZCBvZiB0aGUgZ3JvdXAgaW4gdGhpcyBzZXJ2aWNlIHNwZWNpZmljYXRpb24gdGhhdCBpdCBjYW4gcmVwbGFjZS4gSWYgdGhpcyBpcyBhbiBhbHRlcm5hdGl2ZSBncm91cCB0byBhIGJhc2UgZ3JvdXAsIHRoZSBQcmljZVR5cGUgc2hvdWxkIHR5cGljYWxseSBiZSBzZXQgdG8gXCJXaXRob3V0VG90YWxcIiBzbyB0aGlzIGdyb3VwIGRvZXMgbm90IGZhY3RvciBpbnRvIHRvdGFsIGNvc3RzLiBUaGUgUHJpY2VUeXBlIGlzIG5vdCBjaGFuZ2VkIHdoZW4gdGhpcyBwcm9wZXJ0eSBpcyBzZXQgKi9cbiAgICBhbHRlcm5hdGl2ZVRvPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGNsYXNzIG1vZGVscyBzcGVjaWFsIHByb3BlcnRpZXMgdGhhdCBvbmx5IGFwcGx5IHRvIHNvbWUgZXhjaGFuZ2Ugc2NlbmFyaW9zIHdoZXJlIMOWTm9ybSBpcyB1c2VkLiAqL1xuICAgIG9lbm9ybVByb3BlcnRpZXM/OiBPZW5vcm1Qcm9wZXJ0aWVzRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIGEgemVybyBiYXNlZCBoaWVyYXJjaHkgbGV2ZWwuIEl0J3Mgc2V0IGF1dG9tYXRpY2FsbHkgd2hlbiB1c2VkIGluIHRoZSBjb250ZXh0IG9mIGEgUHJvamVjdCwgYW5kIGNhbiBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoZSBoaWVyYXJjaHkgbGV2ZWwgb2YgdGhlIGN1cnJlbnQgZWxlbWVudC4gKi9cbiAgICBoaWVyYXJjaHlMZXZlbD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpbmRpY2F0ZXMsIGlmIHRoaXMgZWxlbWVudCBpcyBwYXJ0IG9mIGFuIGFkZGVuZHVtIGFuLCBpZiB5ZXMsIHdpdGggd2hhdCBzdGF0dXMuICovXG4gICAgYWRkZW5kdW1TdGF0dXM/OiBBZGRlbmR1bVN0YXR1c0R0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyBhbiBvcHRpb25hbCBwcm9wZXJ0eSB0aGF0IGNhbiBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggQWx0ZXJuYXRpdmVUby4gSWYgdGhpcyBpcyBzZXQsIHlvdSBjYW4gaW5kaWNhdGUgd2hpY2ggYWx0ZXJuYXRpdmUgZ3JvdXAgYSBzcGVjaWZpYyBncm91cCBpcyBhc3NpZ25lZCB0by4gVGhhdCB3YXksIGlmIHlvdSBzcGVjaWZpeSBtdWx0aXBsZSBhbHRlcm5hdGl2ZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwcyB3aXRoIHRoZSBzYW1lIEFsdGVybmF0aXZlSWRlbnRpZmllciwgeW91IGNhbiBpbmRpY2F0ZSB0aGF0IHRvIHJlcGxhY2UgYSBzaW5nbGUgYmFzZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwLCBtdWx0aXBsZSBhbHRlcm5hdGl2ZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbkdyb3VwcyBzaG91bGQgYmUgdXNlZC4gVGhpcyBwcm9wZXJ0eSBpcyBub3QgY2hlY2tlZCBvciBtYW5hZ2VkIGF1dG9tYXRpY2FsbHksIHNvIGl0IGlzIHBvc3NpYmxlIGZvciB0aGlzIHByb3BlcnR5IHRvIGJlY29tZSBpbnZhbGlkLCBieSBmb3IgZXhhbXBsZSBzZXR0aW5nIHRoaXMgcHJvcGVydHkgYnV0IG5vdCBzZXR0aW5nIGEgYmFzZSBncm91cCB2aWEgQWx0ZXJuYXRpdmVUby4gKi9cbiAgICBhbHRlcm5hdGl2ZUlkZW50aWZpZXI/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgYW4gb3B0aW9uYWwgcHJvcGVydHkgdGhhdCBjYW4gYmUgdXNlZCB0b2dldGhlciB3aXRoIEFsdGVybmF0aXZlVG8gYW5kIEFsdGVybmF0aXZlR3JvdXBJZGVudGlmaWVyLiBJZiB0aGlzIGlzIHNldCwgeW91IGNhbiBpbmRpY2F0ZSB3aGljaCBhbHRlcm5hdGl2ZSBncm91cCBhIHNwZWNpZmljIGdyb3VwIGlzIGFzc2lnbmVkIHRvLiBUaGF0IHdheSwgeW91IGNhbiBzcGVjaWZ5IHRoZSBpZCAoaW4gaW50ZWdlciBmb3JtYXQpIGZvciB0aGUgYWx0ZXJuYXRpdmUgZ3JvdXAgdGhpcyBncm91cCBiZWxvbmdzIHRvLiBJdCdzIGRpZmZlcmVudCB0byBBbHRlcm5hdGl2ZUlkZW50aWZpZXIgaW4gdGhhdCB0aGUgb3RoZXIgcHJvcGVydHkgZGVzY3JpYmVzIHRoZSBpZCBvZiB0aGUgZ3JvdXAsIHdoaWxlIHRoaXMgcHJvcGVydHkgaGVyZSBkZXNjcmliZXMgdGhlIGdyb3VwIGl0c2VsZi4gSWYgYSBncm91cCBvbmx5IGhhcyBzZXQgQWx0ZXJuYXRpdmVHcm91cElkZW50aWZpZXIgYnV0IG5vdCBBbHRlcm5hdGl2ZUlkZW50aWZpZXIsIHRoZW4gaXQgbGlrZWx5IGlzIGEgYmFzZSBncm91cCBmb3IgYSBzcGVjaWZpYyBncm91cC4gVGhpcyBwcm9wZXJ0eSBpcyBub3QgY2hlY2tlZCBvciBtYW5hZ2VkIGF1dG9tYXRpY2FsbHksIHNvIGl0IGlzIHBvc3NpYmxlIGZvciB0aGlzIHByb3BlcnR5IHRvIGJlY29tZSBpbnZhbGlkLCBieSBmb3IgZXhhbXBsZSBzZXR0aW5nIHRoaXMgcHJvcGVydHkgYnV0IG5vdCBzZXR0aW5nIGEgYmFzZSBncm91cCB2aWEgQWx0ZXJuYXRpdmVUby4gKi9cbiAgICBhbHRlcm5hdGl2ZUdyb3VwSWRlbnRpZmllcj86IG51bWJlciB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgaXMgdXNlZCBpbiBhbiBFbGVtZW50Q29udGFpbmVyQmFzZSB0byBob2xkIHRoZSBwcmljZSBjb21wb3NpdGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3Jvc3NQcmljZUNvbXBvbmVudER0byB7XG4gICAgLyoqIFRoaXMgY29tcG9uZW50cyB0YXggcmF0ZS4gKi9cbiAgICB0YXhSYXRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIGlzIHRoZSBmYWN0b3Igb2YgYXBwbGllZCBkZWR1Y3Rpb25zIGZvciB0aGlzIGNvbXBvbmVudCAqL1xuICAgIGRlZHVjdGlvbkZhY3Rvcj86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHRvdGFsIG5ldCBwcmljZSBmb3IgYWxsIGNvbXBvbmVudHMgb2YgYSBnaXZlbiB0YXggcmF0ZS4gKi9cbiAgICB0b3RhbE5ldD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHJlc3VsdGluZyBwcmljZSBjb21wb25lbnQgYWZ0ZXIgYXBwbGllZCBkZWR1Y3Rpb25zICovXG4gICAgcmVhZG9ubHkgdG90YWxEZWR1Y3RlZD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHRvdGFsIHRheCBhbW91bnQgZm9yIGFsbCBjb21wb25lbnRzIG9mIGEgZ2l2ZW4gdGF4IHJhdGUuICovXG4gICAgcmVhZG9ubHkgdG90YWxUYXg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB0b3RhbCBncm9zcyBwcmljZSBmb3IgYWxsIGNvbXBvbmVudHMgb2YgYSBnaXZlbiB0YXggcmF0ZS4gKi9cbiAgICByZWFkb25seSB0b3RhbEdyb3NzPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgdG90YWwgZ3Jvc3MgcHJpY2UgZm9yIGFsbCBjb21wb25lbnRzIG9mIGEgZ2l2ZW4gdGF4IHJhdGUsIGFmdGVyIGFwcGxpZWQgZGVkdWN0aW9ucy4gKi9cbiAgICByZWFkb25seSB0b3RhbEdyb3NzRGVkdWN0ZWQ/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSB0b3RhbCB0YXggYW1vdW50IGZvciBhbGwgY29tcG9uZW50cyBvZiBhIGdpdmVuIHRheCByYXRlLCBhZnRlciBhcHBsaWVkIGRlZHVjdGlvbnMuICovXG4gICAgcmVhZG9ubHkgdG90YWxUYXhEZWR1Y3RlZD86IG51bWJlciB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgY2xhc3MgbW9kZWxzIHNwZWNpYWwgcHJvcGVydGllcyB0aGF0IG9ubHkgYXBwbHkgdG8gc29tZSBleGNoYW5nZSBzY2VuYXJpb3Mgd2hlcmUgw5ZOb3JtIGlzIHVzZWQuICovXG5leHBvcnQgaW50ZXJmYWNlIE9lbm9ybVByb3BlcnRpZXNEdG8ge1xuICAgIC8qKiBUaGlzIGluZGljYXRlcyB3aGVyZSB0aGUgY29udGVudCBvZiB0aGlzIGVsZW1lbnQgb3JpZ2luYXRlcywgaWYgc2V0LiBJdCBjb3JyZXNwb25kcyB0byAnaGVya3VuZnRza2VubnplaWNoZW4nIGluIMOWTm9ybSAqL1xuICAgIG9yaWdpbkNvZGU/OiBPZW5vcm1PcmlnaW5Db2RlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIG1hcmtzIGlmIHRoZSBvcGVuaW5nIHRleHRzIHdpdGhpbiB0aGlzIGVsZW1lbnQgYXJlIGNvbnNpZGVyZWQgZnJlZSB0ZXh0LiBJdCBjb3JyZXNwb25kcyB0byAndm9yYmVtZXJrdW5nc2tlbm56ZWljaGVuJyBpbiDDlk5vcm0uICovXG4gICAgb3BlbmluZ1RleHRJc0ZyZWVUZXh0PzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIEluZGljYXRlcyBhIFNlcnZpY2VTcGVjaWZpY2F0aW9uJ3MgZXhjaGFuZ2UgcGhhc2UsIGJhc2VkIG9uIHRoZSBHQUVCIGV4Y2hhbmdlIHBoYXNlcy4gKi9cbmV4cG9ydCBlbnVtIEV4Y2hhbmdlUGhhc2VEdG8ge1xuICAgIFVuZGVmaW5lZCA9IFwiVW5kZWZpbmVkXCIsXG4gICAgQmFzZSA9IFwiQmFzZVwiLFxuICAgIENvc3RFc3RpbWF0ZSA9IFwiQ29zdEVzdGltYXRlXCIsXG4gICAgT2ZmZXJSZXF1ZXN0ID0gXCJPZmZlclJlcXVlc3RcIixcbiAgICBPZmZlciA9IFwiT2ZmZXJcIixcbiAgICBTaWRlT2ZmZXIgPSBcIlNpZGVPZmZlclwiLFxuICAgIEdyYW50ID0gXCJHcmFudFwiLFxufVxuXG4vKiogSW5kaWNhdGVzIHdoZXJlIGEgc2VydmljZSBzcGVjaWZpY2F0aW9uIHdhcyBvcmlnaW5hbGx5IGNyZWF0ZWQuICovXG5leHBvcnQgZW51bSBPcmlnaW5EdG8ge1xuICAgIFNlbGYgPSBcIlNlbGZcIixcbiAgICBHYWViOTAgPSBcIkdhZWI5MFwiLFxuICAgIEdhZWIyMDAwID0gXCJHYWViMjAwMFwiLFxuICAgIEdhZWJYbWwgPSBcIkdhZWJYbWxcIixcbiAgICBPZW5vcm0gPSBcIk9lbm9ybVwiLFxuICAgIFJlYiA9IFwiUmViXCIsXG4gICAgU2lhID0gXCJTaWFcIixcbn1cblxuLyoqIEhvbGRzIGdsb2JhbCBwcmljZSBpbmZvcm1hdGlvbiBmb3IgYSBTZXJ2aWNlU3BlY2lmaWNhdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmljZUluZm9ybWF0aW9uRHRvIHtcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqIFRoZSBhbW91bnQgb2YgY3VycmVuY3kgcGVyIG9uZSBob3VyIG9mIG1hbnVhbCBsYWJvdXIgd29yayBpbiB0aGlzIHByb2plY3QuICovXG4gICAgaG91cmx5V2FnZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIGZpbmFsLCB0b3RhbCBwcmljZSB3aWxsIGJlIGRlZHVjdGVkIGJ5IHRoaXMgcmF0ZS4gKi9cbiAgICBkZWR1Y3Rpb25GYWN0b3I/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgaXMgZ2l2ZW4gd2hlbiB0aGVyZSBpcyBvbmx5IG9uZSBmbGF0IHByaWNlIGZvciB0aGUgd2hvbGUgc2VydmljZSBzcGVjaWZpY2F0aW9uLiAqL1xuICAgIGZsYXRTdW0/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEdsb2JhbCB0YXggcmF0ZSBmb3IgdGhlIHByb2plY3QuIE5vdGUgdGhhdCBjZXJ0YWluIGVsZW1lbnRzIG1heSBoYXZlIGEgZGlmZmVyZW50LCBzcGVjaWZpYyB0YXggcmF0ZS4gKi9cbiAgICB0YXhSYXRlPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGlzIHByb3BlcnR5IGluZGljYXRlcyBpZiB0aGUgVGF4UmF0ZSBwcm9wZXJ0eSBpcyBhY3R1YWxseSB6ZXJvICgwKSBvciBpZiBpdCdzIGp1c3QgdW5zZXQuIFRoZSBUYXhSYXRlIGlzIGEgbm9uLW51bGxhYmxlIHByb3BlcnR5LCBzbyBpdCBjYW4ndCBiZSBudWxsIGFuZCB0aGVyZWZvcmUgYSBkaXN0aW5jdGlvbiBiZXR3ZWVuIHVuc2V0IGFuZCB6ZXJvIHJlbGllcyBvbiB0aGlzIGFkZGl0aW9uYWwgcHJvcGVydHkuIFdoZW4gZXhwb3J0aW5nIHRvIEdBRUIsIHRoaXMgY2FuIGJlIHVzZWQgZS5nLiB0byBkZWNpZGUgd2hldGhlciBvciBub3QgdGhlIHRheCByYXRlIHNob3VsZCBiZSBzZXJpYWxpemVkLiBUaGlzIHByb3BlcnR5IGlzIGF1dG9tdGljYWxseSBzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgVGF4UmF0ZSBpcyBzZXQgdG8gYW55IHZhbHVlLCBldmVuIHplcm8uIElmIHRoZSBUYXhSYXRlIGlzIG5vdCBzZXQgdG8gemVybywgdGhpcyBwcm9wZXJ0eSB3aWxsIGFsd2F5cyByZXR1cm4gZmFsc2UgYW5kIGNhbiBub3QgYmUgc2V0IHRvIHRydWUuICovXG4gICAgaGFzVW5zZXRUYXhSYXRlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVHJhZGUgZGlzY291bnRzIGZvciBvZmZlcmVkIGluIHRoaXMgU2VydmljZVNwZWNpZmljYXRpb24uICovXG4gICAgdHJhZGVEaXNjb3VudHM/OiBUcmFkZURpc2NvdW50RHRvW10gfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGlzIGNsYXNzIGhvbGRzIGluZm9ybWF0aW9uIGFib3V0IG9mZmVyZWQgdHJhZGUgZGlzY291bnRzIChTa29udG8gaW4gR2VybWFuKSAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFkZURpc2NvdW50RHRvIHtcbiAgICAvKiogRWxlbWVudHMgR1VJRCBpZGVudGlmaWVyLiAqL1xuICAgIGlkOiBzdHJpbmc7XG4gICAgLyoqIFRoZSBhbW91bnQgb2YgZGF5cyBmb3IgaG93IGxvbmcgYSBkZWNsYXJlZCB0cmFkZSBkaXNjb3VudCBhcHBsaWVzLiBNdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyLCBuZWdhdGl2ZSB2YWx1ZXMgd2lsbCBiZSBpZ25vcmVkIGFuZCBub3Qgc2V0LiAqL1xuICAgIGRlYWRsaW5lPzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgcmF0ZSBvZiB0aGUgdHJhZGUgZGlzY291bnQuICovXG4gICAgcmF0ZT86IG51bWJlciB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgY2xhc3MgZG9lcyBub3QgcmVwcmVzZW50IGEgdHlwaWNhbCBgVGltZVNwYW5gIGJ1dCBoYXMgYSBzY2FsYXIgdmFsdWUgaW50IER1cmF0aW9uIGFuZCBhIER1cmF0aW9uVW5pdCBVbml0IHRvIHJlcHJlc2VudCBkdXJhdGlvbnMgYXMgdHlwaWNhbGx5IHVzZWQgaW4gY29udHJhY3RzLCBlLmcuIDUgTW9udGhzICovXG5leHBvcnQgaW50ZXJmYWNlIFdhcnJhbnR5RHVyYXRpb25EdG8ge1xuICAgIC8qKiBUaGUgc2NhbGFyIHZhbHVlIG9mIHRoZSBkdXJhdGlvbi4gVGhpcyB2YWx1ZSBtdXN0IGJlIGVxdWFsIHRvIG9yIGJpZ2dlciB0aGFuIHplcm8gKD49IDApLiBOZWdhdGl2ZSB2YWx1ZXMgY2FuIG5vdCBiZSBzZXQgYW5kIHdpbGwgYmUgaWdub3JlZC4gKi9cbiAgICBkdXJhdGlvbj86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHVuaXQgb2YgdGhlIGR1cmF0aW9uICovXG4gICAgdW5pdD86IER1cmF0aW9uVW5pdER0byB8IHVuZGVmaW5lZDtcbn1cblxuLyoqIFRoaXMgZW51bWVyYXRpb24gcmVwcmVzZW50cyB0aGUgdW5pdCBvZiBhIGR1cmF0aW9uICovXG5leHBvcnQgZW51bSBEdXJhdGlvblVuaXREdG8ge1xuICAgIE1vbnRocyA9IFwiTW9udGhzXCIsXG4gICAgWWVhcnMgPSBcIlllYXJzXCIsXG59XG5cbi8qKiBUaGlzIGNsYXNzIHJlcHJlc2VudHMgcHJvcGVydGllcyB1c2VkIGluIGNvbW1lcmNlIGV4Y2hhbmdlIHNjZW5hcmlvcyAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlU3BlY2lmaWNhdGlvbkNvbW1lcmNlUHJvcGVydGllc0R0byB7XG4gICAgLyoqIFRoZSBkYXRlIHVudGlsIHRoZSBwcmljZSBpcyB2YWxpZCBvciBmaXhlZC4gKi9cbiAgICBmaXhlZFByaWNlRGF0ZT86IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBkYXRlIG9mIHRoZSBkZWxpdmVyeSB2b3VjaGVyIG5vdGUuICovXG4gICAgZGVsaXZlcnlWb3VjaGVyRGF0ZT86IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBhY3R1YWwgZGF0ZSBvZiBkZWxpdmVyeS4gKi9cbiAgICBkZWxpdmVyeURhdGU/OiBEYXRlIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgbnVtYmVyIG9mIHRoZSBpbnF1aXJ5LCB1c3VhbGx5IGluIGEgY29udGV4dCBvZiBvZmZlciByZXF1ZXN0cy4gKi9cbiAgICBpbnF1aXJ5TnVtYmVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgbnVtYmVyIG9mIHRoZSBvZmZlciwgdXN1YWxseSBpbiBhIGNvbnRleHQgb2YgYW4gb2ZmZXIuICovXG4gICAgb2ZmZXJOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSBvcmRlciBudW1iZXIsIHVzdWFsbHkgaW4gdGhlIGNvbnRleHQgb2YgYSBncmFudCBvciBjb250cmFjdC4gKi9cbiAgICBvcmRlck51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIG9yZGVyIGNvbmZpcm1hdGlvbiBudW1iZXIgKi9cbiAgICBvcmRlckNvbmZpcm1hdGlvbk51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIG51bWJlciBvZiB0aGUgZGVsaXZlcnksIGUuZy4gb24gdGhlIGRlbGl2ZXJ5IG5vdGUgdm91Y2hlci4gKi9cbiAgICBkZWxpdmVyeU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHJlZmVyZW5jZSBudW1iZXIgb2YgdGhlIGN1c3RvbWVyIC8gYnV5ZXIuICovXG4gICAgY3VzdG9tZXJSZWZlcmVuY2VOdW1iZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoZSByZWZlcmVuY2UgbnVtYmVyIG9mIHRoZSBzdXBwbGllciAvIGJpZGRlci4gKi9cbiAgICBzdXBwbGllclJlZmVyZW5jZU51bWJlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHR5cGUgb2Ygc2hpcHBtZW50LiAqL1xuICAgIHNoaXBwaW5nVHlwZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIHR5cGUgb2YgdGhlIHByaWNlIGlucXVpcnkuICovXG4gICAgaW5xdWlyeVR5cGU/OiBDb21tZXJjZUlucXVpcnlUeXBlRHRvIHwgdW5kZWZpbmVkO1xufVxuXG4vKiogVGhpcyBlbnVtIHJlcHJlc2VudHMgdHlwZXMgb2YgcHJpY2UgaW5xdWlyaWVzICovXG5leHBvcnQgZW51bSBDb21tZXJjZUlucXVpcnlUeXBlRHRvIHtcbiAgICBVbmtub3duID0gXCJVbmtub3duXCIsXG4gICAgUHJvamVjdCA9IFwiUHJvamVjdFwiLFxuICAgIEltbWVkaWF0ZSA9IFwiSW1tZWRpYXRlXCIsXG4gICAgRXhoaWJpdGlvbiA9IFwiRXhoaWJpdGlvblwiLFxufVxuXG4vKiogQSBQcm9qZWN0IGNvbnRhaW5zIGFsbCByZWxldmFudCBpbmZvcm1hdGlvbiBmb3IgYSBjb25zdHJ1Y3Rpb24gcHJvamVjdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdER0byB7XG4gICAgLyoqIEVsZW1lbnRzIEdVSUQgaWRlbnRpZmllci4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGlzIHByb3BlcnR5IGNvbnRyb2xzIHRoZSBhY2N1cmFjeSBvZiBhbGwgcHJpY2UgcHJvcGVydGllcywgbWVhbmluZyBob3cgbWFueSBkZWNpbWFsIHBsYWNlcyBhcmUgcHJlc2VydmVkIGluIGNhbGN1bGF0aW9ucy4gSXQgZGVmYXVsdHMgdG8gREVGQVVMVF9QUklDRV9BQ0NVUkFDWS4gUGxlYXNlIHNlZSB0aGUgRGFuZ2wuQVZBIGRvY3VtZW50YXRpb24gZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gYWJvdXQgZGVjaW1hbCBwcmVjaXNpb24uIElmIFVuaXRQcmljZUFjY3VyYWN5IGlzIHNldCwgdGhlbiB0aGlzIHByb3BlcnR5IGlzIGlnbm9yZWQgZm9yIHVuaXQgcHJpY2VzLiAqL1xuICAgIHByaWNlQWNjdXJhY3k/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgcHJvcGVydHkgY29udHJvbHMgdGhlIGFjY3VyYWN5IG9mIHBvc2l0aW9uIHVuaXQgcHJpY2UgcHJvcGVydGllcywgbWVhbmluZyBob3cgbWFueSBkZWNpbWFsIHBsYWNlcyBhcmUgcHJlc2VydmVkIGluIGNhbGN1bGF0aW9ucy4gUGxlYXNlIHNlZSB0aGUgRGFuZ2wuQVZBIGRvY3VtZW50YXRpb24gZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gYWJvdXQgZGVjaW1hbCBwcmVjaXNpb24uIFRoaXMgY2FuIGJlIHNlcGFyYXRlbHkgc2V0IGZyb20gUHJpY2VBY2N1cmFjeSwgYW5kIGl0IG9ubHkgY29udHJvbHMgdGhlIGFjY3VyYWN5IG9mIHRoZSB1bml0IHByaWNlIG9mIHBvc2l0aW9ucywgbm90IHRoZSB0b3RhbCBwcmljZS4gSXQgZGVmYXVsdHMgdG8gbnVsbCwgd2hpY2ggbWVhbnMgdGhlIHN0YW5kYXJkIFByaWNlQWNjdXJhY3kgaXMgdXNlZCBmb3IgdW5pdCBwcmljZXMuICovXG4gICAgdW5pdFByaWNlQWNjdXJhY3k/OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqIFRoaXMgZm9yY2VzIHRvdGFsIHByaWNlcyB0byBiZSB0aGUgc3RyaWN0IHByb2R1Y3Qgb2YgcXVhbnRpdGllcyB0aW1lcyB1bml0IHByaWNlIGluIHBvc2l0aW9ucy4gSXQgaXMgZW5hYmxlZCBieSBkZWZhdWx0LiBJZiB0aGlzIGlzIGRpc2FibGVkLCBib3RoIHRoZSB1bml0IHByaWNlIGFuZCB0aGUgdG90YWwgcHJpY2Ugb2YgcG9zaXRpb25zIGlzIGNhbGN1bGF0ZWQgZnJvbSB0aGUgbm9uLXJvdW5kZWQgdmFsdWVzLiBQbGVhc2Ugc2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciBhIG1vcmUgZGV0YWlsZWQgZXhwbGFuYXRpb24gb2YgdGhpcyBzZXR0aW5nLiAqL1xuICAgIGZvcmNlU3RyaWN0VG90YWxzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBwcm9wZXJ0eSBjb250cm9scyB0aGUgcm91bmRpbmcgbW9kZSBvZiBhbGwgcHJpY2UgcHJvcGVydGllcywgbWVhbmluZyBob3cgcm91bmRpbmcgb2YgZGVjaW1hbCBwbGFjZXMgaXMgcGVyZm9ybWVkIGluIHByaWNlIGNhbGN1bGF0aW9ucy4gSXQgZGVmYXVsdHMgdG8gREVGQVVMVF9ST1VORElOR19NT0RFLiBQbGVhc2Ugc2VlIHRoZSBEYW5nbC5BVkEgZG9jdW1lbnRhdGlvbiBmb3IgZnVydGhlciBpbmZvcm1hdGlvbiBhYm91dCBkZWNpbWFsIHByZWNpc2lvbi4gKi9cbiAgICBwcmljZVJvdW5kaW5nTW9kZT86IFByaWNlUm91bmRpbmdNb2RlRHRvIHwgdW5kZWZpbmVkO1xuICAgIC8qKiBUaGUgUHJvamVjdEluZm9ybWF0aW9uIGNvbnRhaW5zIGluZm9ybWF0aW9uIHRoYXQgZGVzY3JpYmVzIHRoZSBwcm9qZWN0IGFuZCBpdHMgc3RydWN0dXJlLiAqL1xuICAgIHByb2plY3RJbmZvcm1hdGlvbj86IFByb2plY3RJbmZvcm1hdGlvbkR0byB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhlIFNlcnZpY2VTcGVjaWZpY2F0aW9ucyBpbiB0aGlzIFByb2plY3QuICovXG4gICAgc2VydmljZVNwZWNpZmljYXRpb25zPzogU2VydmljZVNwZWNpZmljYXRpb25EdG9bXSB8IHVuZGVmaW5lZDtcbiAgICAvKiogVGhpcyBpcyB1c2VkIHRvIHN0b3JlIHRoZSBHQUVCIFhNTCBJZCB3aXRoaW4gdGhpcyBQcm9qZWN0LiBUaGlzIGRhdGEgaXMgbm90IHVzZWQgZm9yIGFueSBjYWxjdWxhdGlvbnMgb3IgZXZhbHVhdGlvbnMgYnV0IG9ubHkgZm9yIEdBRUIgc2VyaWFsaXphdGlvbiBhbmQgZGVzZXJpYWxpemF0aW9uLiAqL1xuICAgIGdhZWJYbWxJZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cbiJdfQ==
|