@pipeline-builder/pipeline-data 4.3.11 → 4.3.13
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/lib/api/managed-toolchain.d.ts +195 -0
- package/lib/api/managed-toolchain.js +443 -0
- package/lib/api/public-directory.d.ts +4 -15
- package/lib/api/public-directory.js +1 -31
- package/lib/api/reporting/ingest.js +52 -12
- package/lib/api/reporting/stakeholder/compose.d.ts +3 -2
- package/lib/api/reporting/stakeholder/compose.js +1 -1
- package/lib/api/reporting/stakeholder/period.d.ts +5 -4
- package/lib/api/reporting/stakeholder/period.js +1 -1
- package/lib/api/reporting/stakeholder/sections.d.ts +4 -4
- package/lib/api/reporting/stakeholder/sections.js +1 -1
- package/lib/api/reporting/stakeholder/store.d.ts +3 -2
- package/lib/api/reporting/stakeholder/store.js +1 -1
- package/lib/api/reporting/toolchain-runs.d.ts +156 -0
- package/lib/api/reporting/toolchain-runs.js +267 -0
- package/lib/api/reporting/types.d.ts +20 -3
- package/lib/api/reporting/types.js +1 -1
- package/lib/api/support-cases.d.ts +50 -24
- package/lib/api/support-cases.js +96 -37
- package/lib/api/version-references.d.ts +2 -24
- package/lib/api/version-references.js +46 -7
- package/lib/core/query-filters.d.ts +6 -6
- package/lib/core/query-filters.js +1 -1
- package/lib/database/drizzle-schema.d.ts +698 -41
- package/lib/database/drizzle-schema.js +11 -1
- package/lib/database/index.d.ts +1 -1
- package/lib/database/index.js +2 -2
- package/lib/database/schema/alert.js +4 -4
- package/lib/database/schema/compliance.d.ts +29 -40
- package/lib/database/schema/compliance.js +10 -14
- package/lib/database/schema/ecosystem.d.ts +72 -0
- package/lib/database/schema/ecosystem.js +18 -2
- package/lib/database/schema/pipeline.d.ts +19 -0
- package/lib/database/schema/pipeline.js +17 -1
- package/lib/database/schema/reporting-stakeholder.d.ts +2 -1
- package/lib/database/schema/reporting-stakeholder.js +2 -27
- package/lib/database/schema/toolchain.d.ts +643 -0
- package/lib/database/schema/toolchain.js +102 -0
- package/lib/index.d.ts +4 -2
- package/lib/index.js +7 -3
- package/lib/testing/exports.json +39 -2
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// Copyright 2026 Pipeline Builder Contributors
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
export {};
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvcmVwb3J0aW5nL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBQdWJsaWMgcmVzdWx0IHNoYXBlcyBmb3IgdGhlIHJlcG9ydGluZyBzZXJ2aWNlLlxuICpcbiAqIFNwbGl0IG91dCBvZiByZXBvcnRpbmctc2VydmljZS50cyBwdXJlbHkgZm9yIHNpemU6IHRoZXNlIGFyZSBkYXRhIGNvbnRyYWN0c1xuICogd2l0aCBubyBiZWhhdmlvdXIuIHJlcG9ydGluZy1zZXJ2aWNlLnRzIHJlLWV4cG9ydHMgdGhlbSwgc28gdGhlXG4gKiBgQHBpcGVsaW5lLWJ1aWxkZXIvcGlwZWxpbmUtZGF0YWAgcHVibGljIHN1cmZhY2UgaXMgdW5jaGFuZ2VkLlxuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhlY3V0aW9uQ291bnQge1xuICBpZDogc3RyaW5nO1xuICBwcm9qZWN0OiBzdHJpbmc7XG4gIG9yZ2FuaXphdGlvbjogc3RyaW5nO1xuICBwaXBlbGluZU5hbWU6IHN0cmluZyB8IG51bGw7XG4gIHRvdGFsOiBudW1iZXI7XG4gIHN1Y2NlZWRlZDogbnVtYmVyO1xuICBmYWlsZWQ6IG51bWJlcjtcbiAgY2FuY2VsZWQ6IG51bWJlcjtcbiAgZmlyc3RFeGVjdXRpb246IHN0cmluZyB8IG51bGw7XG4gIGxhc3RFeGVjdXRpb246IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGltZVNlcmllc0VudHJ5IHtcbiAgcGVyaW9kOiBzdHJpbmc7XG4gIHN1Y2NlZWRlZDogbnVtYmVyO1xuICBmYWlsZWQ6IG51bWJlcjtcbiAgY2FuY2VsZWQ6IG51bWJlcjtcbiAgc3VjY2Vzc1BjdDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIER1cmF0aW9uU3RhdHMge1xuICBpZDogc3RyaW5nO1xuICBwcm9qZWN0OiBzdHJpbmc7XG4gIHBpcGVsaW5lTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgYXZnTXM6IG51bWJlcjtcbiAgbWluTXM6IG51bWJlcjtcbiAgbWF4TXM6IG51bWJlcjtcbiAgcDk1TXM6IG51bWJlcjtcbiAgZXhlY3V0aW9uczogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVsaW5lRXhlY3V0aW9uIHtcbiAgZXhlY3V0aW9uSWQ6IHN0cmluZztcbiAgLyoqIFJvbGxlZC11cCB0ZXJtaW5hbCBzdGF0dXM6IHN1Y2NlZWRlZCB8IGZhaWxlZCB8IGNhbmNlbGVkIHwgaW4tcHJvZ3Jlc3MuICovXG4gIHN0YXR1czogc3RyaW5nO1xuICBzdGFydGVkQXQ6IHN0cmluZyB8IG51bGw7XG4gIGVuZGVkQXQ6IHN0cmluZyB8IG51bGw7XG4gIGR1cmF0aW9uTXM6IG51bWJlciB8IG51bGw7XG4gIC8qKiBGaXJzdCBmYWlsaW5nIHN0YWdlL2FjdGlvbiBmb3IgdGhlIGV4ZWN1dGlvbiAobnVsbCB3aGVuIGl0IGRpZG4ndCBmYWlsKS4gKi9cbiAgZmFpbGluZ1N0YWdlOiBzdHJpbmcgfCBudWxsO1xuICBmYWlsaW5nQWN0aW9uOiBzdHJpbmcgfCBudWxsO1xuICAvKiogVGhlIGZpcnN0IGZhaWx1cmUgZGV0YWlsIGFuIGV2ZW50IG9mIHRoZSBleGVjdXRpb24gY2FycmllZCAoYGRldGFpbC5mYWlsdXJlYCksIG9yIG51bGwuICovXG4gIGZhaWx1cmU6IHVua25vd24gfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWdlRmFpbHVyZSB7XG4gIHN0YWdlTmFtZTogc3RyaW5nO1xuICBmYWlsdXJlczogbnVtYmVyO1xuICB0b3RhbDogbnVtYmVyO1xuICBmYWlsdXJlUGN0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhZ2VCb3R0bGVuZWNrIHtcbiAgaWQ6IHN0cmluZztcbiAgcGlwZWxpbmVOYW1lOiBzdHJpbmcgfCBudWxsO1xuICBzdGFnZU5hbWU6IHN0cmluZztcbiAgYXZnTXM6IG51bWJlcjtcbiAgbWF4TXM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25GYWlsdXJlIHtcbiAgYWN0aW9uTmFtZTogc3RyaW5nO1xuICBmYWlsdXJlczogbnVtYmVyO1xuICB0b3RhbDogbnVtYmVyO1xuICBmYWlsdXJlUGN0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JFbnRyeSB7XG4gIGVycm9yUGF0dGVybjogc3RyaW5nO1xuICBvY2N1cnJlbmNlczogbnVtYmVyO1xuICBhZmZlY3RlZFBpcGVsaW5lczogbnVtYmVyO1xuICBsYXN0U2Vlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpblN1bW1hcnkge1xuICB0b3RhbDogbnVtYmVyO1xuICBhY3RpdmU6IG51bWJlcjtcbiAgaW5hY3RpdmU6IG51bWJlcjtcbiAgLyoqIENvdW50cyBwZXIgc2hhcmluZyBydW5nIOKAlCBvbmUgYnVja2V0IHBlciBgdmlzaWJpbGl0eWAgdmFsdWUuICovXG4gIHB1YmxpYzogbnVtYmVyO1xuICBvcmc6IG51bWJlcjtcbiAgcHJpdmF0ZTogbnVtYmVyO1xuICB1bmlxdWVOYW1lczogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVDb21wdXRlRGlzdHJpYnV0aW9uIHtcbiAgcGx1Z2luVHlwZTogc3RyaW5nO1xuICBjb21wdXRlVHlwZTogc3RyaW5nO1xuICBjb3VudDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZlcnNpb25Db3VudCB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmVyc2lvbkNvdW50OiBudW1iZXI7XG4gIGxhdGVzdFZlcnNpb246IHN0cmluZztcbiAgaGFzRGVmYXVsdDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZFRpbWVTZXJpZXNFbnRyeSB7XG4gIHBlcmlvZDogc3RyaW5nO1xuICBzdWNjZWVkZWQ6IG51bWJlcjtcbiAgZmFpbGVkOiBudW1iZXI7XG4gIHN1Y2Nlc3NQY3Q6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZER1cmF0aW9uIHtcbiAgcGx1Z2luTmFtZTogc3RyaW5nO1xuICBhdmdNczogbnVtYmVyO1xuICBtYXhNczogbnVtYmVyO1xuICBidWlsZHM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQbHVnaW4gcnVudGltZSByZXBvcnQgZmlsdGVycy4gYHB1Ymxpc2hlcjogbnVsbGAgc2VsZWN0cyBvd24tb3JnXG4gKiAocHVibGlzaGVyLWxlc3MpIHBsdWdpbnM7IGFuIG9taXR0ZWQgZmllbGQgZG9lc24ndCBmaWx0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luUnVudGltZUZpbHRlciB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHB1Ymxpc2hlcj86IHN0cmluZyB8IG51bGw7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG59XG5cbi8qKiBQZXIgcGx1Z2luIHZlcnNpb24gcnVudGltZSBzdGF0cyBvdmVyIGEgd2luZG93ICh0ZXJtaW5hbCBBQ1RJT04gcnVucykuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpblJ1bnRpbWVTdGF0cyB7XG4gIHBsdWdpblB1Ymxpc2hlcjogc3RyaW5nIHwgbnVsbDtcbiAgcGx1Z2luTmFtZTogc3RyaW5nO1xuICBwbHVnaW5WZXJzaW9uOiBzdHJpbmc7XG4gIHJ1bnM6IG51bWJlcjtcbiAgc3VjY2VlZGVkOiBudW1iZXI7XG4gIGZhaWxlZDogbnVtYmVyO1xuICAvKiogMOKAkzEwMCwgb25lIGRlY2ltYWwuICovXG4gIHN1Y2Nlc3NQY3Q6IG51bWJlcjtcbiAgLyoqIE51bGwgd2hlbiBubyBydW4gaW4gdGhlIGdyb3VwIGNhcnJpZWQgYSBkdXJhdGlvbi4gKi9cbiAgcDUwTXM6IG51bWJlciB8IG51bGw7XG4gIHA5NU1zOiBudW1iZXIgfCBudWxsO1xuICBsYXN0UnVuOiBzdHJpbmc7XG59XG5cbi8qKiBDcm9zcy1vcmcgMzAtZGF5IGFnZ3JlZ2F0ZSBmb3Igb25lIGAocHVibGlzaGVyLCBuYW1lKWAgbGlzdGluZy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luUnVudGltZUFnZ3JlZ2F0ZSB7XG4gIHJ1bnMzMGQ6IG51bWJlcjtcbiAgLyoqIDDigJMxOyBudWxsIHdoZW4gdGhlcmUgd2VyZSBubyBydW5zLiAqL1xuICBzdWNjZXNzUmF0ZTMwZDogbnVtYmVyIHwgbnVsbDtcbiAgYWN0aXZlT3JnQ291bnQzMGQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZEZhaWx1cmUge1xuICBwbHVnaW5OYW1lOiBzdHJpbmc7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBvY2N1cnJlbmNlczogbnVtYmVyO1xuICBsYXN0U2Vlbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBET1JBIGhlYWRsaW5lIGVudmlyb25tZW50LiBEZXBsb3ltZW50IHRvIHRoaXMgbGl0ZXJhbCBlbnYgbmFtZSBpcyB0aGVcbiAqIGluZHVzdHJ5LXN0YW5kYXJkIERPUkEgc2lnbmFsOyBNVFRSIGlzIG1lYXN1cmVkIHByb2R1Y3Rpb24tb25seSwgYW5kIHRoaXNcbiAqIGVudmlyb25tZW50J3MgY2FyZCBpcyB0aGUgc3VtbWFyeSBzaG93biBhdCB0aGUgdG9wIG9mIHRoZSBwYW5lbC5cbiAqL1xuXG4vKiogUGVyLW9yZyByZXRlbnRpb24gb3ZlcnJpZGUgcm93LiBCb3RoIG51bGxhYmxlIOKHkiBnbG9iYWwgZGVmYXVsdHMuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydGluZ1JldGVudGlvblNldHRpbmdzIHtcbiAgZXZlbnRSZXRlbnRpb25EYXlzOiBudW1iZXIgfCBudWxsO1xuICBkb3JhUmV0ZW50aW9uRGF5czogbnVtYmVyIHwgbnVsbDtcbiAgZGVmYXVsdEV2ZW50UmV0ZW50aW9uRGF5czogbnVtYmVyO1xuICBkZWZhdWx0RG9yYVJldGVudGlvbkRheXM6IG51bWJlcjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHRoZSByZXBvcnRpbmcgcmV0ZW50aW9uIHN3ZWVwLiAqL1xuLyoqXG4gKiBIb3cgYSB0aW1lLWJ1Y2tldGVkIHJlcG9ydCBzbGljZXMgaXRzIHBlcmlvZHMuIEFic2VudCBtZWFucyBVVEMgKyBNb25kYXksIHdoaWNoXG4gKiBpcyB3aGF0IGV2ZXJ5IHByZS10aW1lem9uZSBjYWxsZXIgZ290IOKAlCBzbyBhbiBvbWl0dGVkIHZhbHVlIGNhbiBuZXZlciBzaWxlbnRseVxuICogY2hhbmdlIGFuIGV4aXN0aW5nIHJlcG9ydCdzIGJvdW5kYXJpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVja2V0T3B0aW9ucyB7XG4gIC8qKiBJQU5BIHRpbWV6b25lIHRoZSBidWNrZXRzIGFyZSBjdXQgaW4gKHZhbGlkYXRlZCBhdCB0aGUgcm91dGUpLiAqL1xuICB0ej86IHN0cmluZztcbiAgLyoqIFdoZXJlIHRoZSB3ZWVrIHN0YXJ0cy4gUG9zdGdyZXMgREFURV9UUlVOQyBpcyBNb25kYXktb25seSwgc28gYHN1bmRheWBcbiAgICogIHNoaWZ0cyB0aGUgYm91bmRhcnkgZXhwbGljaXRseS4gKi9cbiAgd2Vla1N0YXJ0PzogJ21vbmRheScgfCAnc3VuZGF5Jztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRpbmdSZXRlbnRpb25PcHRpb25zIHtcbiAgLyoqIFJvd3MgZGVsZXRlZCBwZXIgc3RhdGVtZW50IChkZWZhdWx0IDEwMDApLiAqL1xuICBiYXRjaFNpemU/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgbGVhZGVyLWxvY2tlZCBydW4gdGhpcyBzd2VlcCBiZWxvbmdzIHRvLiBDaGVja2VkIEJFVFdFRU4gT1JHUzogYWJvcnRlZFxuICAgKiBtZWFucyB0aGUgbG9jayB3YXMgbG9zdCAoYW5vdGhlciBwb2QgaXMgdGFraW5nIG92ZXIpIG9yIHRoZSBwcm9jZXNzIGlzXG4gICAqIHNodXR0aW5nIGRvd24sIGFuZCB0aGUgcmVtYWluaW5nIG9yZ3MgYXJlIHBpY2tlZCB1cCBuZXh0IHRpY2suIFdpdGhvdXQgaXQgYVxuICAgKiBsb25nIHN3ZWVwIGtlcHQgZGVsZXRpbmcgYWZ0ZXIgYW5vdGhlciBwb2QgaGFkIGFscmVhZHkgdGFrZW4gdGhlIGxvY2suXG4gICAqL1xuICBydW4/OiB7IHNpZ25hbDogQWJvcnRTaWduYWwgfTtcbiAgLyoqIE1heCBiYXRjaGVzIHBlciB0YWJsZSBwZXIgb3JnIHBlciB0aWNrIChkZWZhdWx0IDUwKTsgdGhlIHJlc3QgZGVmZXJzIHRvXG4gICAqICB0aGUgbmV4dCB0aWNrIHNvIGEgaHVnZSBiYWNrbG9nIGNhbid0IGhvbGQgbG9ja3MgdG9vIGxvbmcuICovXG4gIG1heEJhdGNoZXNQZXJUYWJsZT86IG51bWJlcjtcbiAgLyoqIEZpeGVkIFwibm93XCIgZm9yIHRoZSB3aG9sZSBzd2VlcCAoZGVmYXVsdCBgbmV3IERhdGUoKWApLiAqL1xuICBub3c/OiBEYXRlO1xuICAvKipcbiAgICogUmVzb2x2ZSB0aGUgb3JnIHdob3NlIGBkb3JhX3NldHRpbmdzYCByZXRlbnRpb24gZ292ZXJucyBgb3JnSWRgJ3Mgcm93cyDigJQgaXRzXG4gICAqIGFjY291bnQgUk9PVC4gUmV0ZW50aW9uIGlzIGEgYmlsbGluZyBlbnRpdGxlbWVudCBzeW5jZWQgb250byB0aGUgcm9vdCBvbmx5LFxuICAgKiBzbyBhIHRlYW0ncyByb3dzIG11c3QgZm9sbG93IHRoZSByb290J3MgKHB1cmNoYXNlZCkgd2luZG93LCBub3QgdGhlIGVudlxuICAgKiBkZWZhdWx0LiBSZXR1cm4gYG51bGxgIHdoZW4gdGhlIHJvb3QgY2FuJ3QgYmUgcmVzb2x2ZWQ6IHRoYXQgb3JnIGlzIFNLSVBQRURcbiAgICogdGhpcyB0aWNrIChuZXZlciBwdXJnZWQgb24gYSBwb3NzaWJseS1zaG9ydGVyIHdpbmRvdykuIERlZmF1bHQ6IGlkZW50aXR5XG4gICAqIChldmVyeSBvcmcgaXMgaXRzIG93biByb290IOKAlCBhIGZsYXQgZGVwbG95bWVudCkuXG4gICAqL1xuICByZXNvbHZlUmV0ZW50aW9uT3JnSWQ/OiAob3JnSWQ6IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmcgfCBudWxsPjtcbn1cblxuLyoqIFBlci1ydW4gcHVyZ2UgdGFsbGllcyAoYWxzbyBsb2dnZWQpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRpbmdSZXRlbnRpb25Db3VudHMge1xuICAvKiogT3JncyBzd2VwdCB0aGlzIHJ1bi4gKi9cbiAgb3JnczogbnVtYmVyO1xuICAvKiogU3RhbmRhcmQgYHBpcGVsaW5lX2V2ZW50c2AgKGVudmlyb25tZW50IElTIE5VTEwpIHJvd3MgcHVyZ2VkLiAqL1xuICBzdGFuZGFyZEV2ZW50czogbnVtYmVyO1xuICAvKiogRE9SQS1zb3VyY2UgYHBpcGVsaW5lX2V2ZW50c2AgKGVudmlyb25tZW50IElTIE5PVCBOVUxMKSByb3dzIHB1cmdlZC4gKi9cbiAgZG9yYUV2ZW50czogbnVtYmVyO1xuICAvKiogYGRlcGxveW1lbnRfb3V0Y29tZXNgIHJvd3MgcHVyZ2VkLiAqL1xuICBkZXBsb3ltZW50T3V0Y29tZXM6IG51bWJlcjtcbiAgLyoqIGBpbmNpZGVudHNgIHJvd3MgcHVyZ2VkLiAqL1xuICBpbmNpZGVudHM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBET1JBIHBlcmZvcm1hbmNlIGJhbmQuIGBudWxsYCA9IGluc3VmZmljaWVudCBkYXRhIHRvIGNsYXNzaWZ5IChub1xuICogZGVwbG95bWVudHMvZmFpbHVyZXMvbGVhZC10aW1lIHNhbXBsZSBpbiB0aGUgd2luZG93KSwgc28gdGhlIFVJIHNob3dzIGFcbiAqIG5ldXRyYWwgc3RhdGUgcmF0aGVyIHRoYW4gbWlzbGFiZWxpbmcgYW4gZW1wdHkgd2luZG93IGFzIFwibG93XCIuXG4gKi9cbmV4cG9ydCB0eXBlIERvcmFMZXZlbCA9ICdlbGl0ZScgfCAnaGlnaCcgfCAnbWVkaXVtJyB8ICdsb3cnIHwgbnVsbDtcblxuLyoqIE9wdGlvbmFsIHNjb3BpbmcgZm9yIHtAbGluayBSZXBvcnRpbmdTZXJ2aWNlLmdldERvcmFNZXRyaWNzfS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9yYU9wdGlvbnMge1xuICAvKiogUmVzdHJpY3QgdG8gYSBzaW5nbGUgcGlwZWxpbmUgKHBlci1waXBlbGluZSBET1JBKS4gKi9cbiAgcGlwZWxpbmVJZD86IHN0cmluZztcbiAgLyoqIFJlc3RyaWN0IHRvIGEgc2luZ2xlIGRlcGxveSBlbnZpcm9ubWVudCAoZWxzZSBhbGwgZGVwbG95IGVudmlyb25tZW50cykuICovXG4gIGVudmlyb25tZW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogUGVyLW9yZyBpbmNpZGVudOKGkmRlcGxveSBjb3JyZWxhdGlvbiB3aW5kb3cgb3ZlcnJpZGUgKGhvdXJzKS4gV2hlbiBzZXQgKGFcbiAgICogcG9zaXRpdmUgZmluaXRlIG51bWJlciksIHRoZSBpbmNpZGVudCBjb3JyZWxhdGlvbiB1c2VzIGl0IGluc3RlYWQgb2YgdGhlXG4gICAqIGdsb2JhbCBgRE9SQV9JTkNJREVOVF9XSU5ET1dfSE9VUlNgLiBUaGUgcm91dGUgcmVzb2x2ZXMgdGhpcyBmcm9tIHRoZSBvcmcnc1xuICAgKiBgZG9yYV9zZXR0aW5nc2Agcm93IChzZWUge0BsaW5rIFJlcG9ydGluZ1NlcnZpY2UuZ2V0UmVwb3J0aW5nU2V0dGluZ3N9KSBhbmRcbiAgICogcGFzc2VzIGl0IGluOyB1bnNldCBmYWxscyBiYWNrIHRvIHRoZSBlbnYgZGVmYXVsdC5cbiAgICovXG4gIGluY2lkZW50V2luZG93SG91cnM/OiBudW1iZXI7XG4gIC8qKiBJQU5BIHRpbWV6b25lIGZvciB0aGUgdHJlbmQncyBidWNrZXRzIChzZWUge0BsaW5rIEJ1Y2tldE9wdGlvbnN9KS4gKi9cbiAgdHo/OiBzdHJpbmc7XG4gIC8qKiBXZWVrIHN0YXJ0IGZvciB0aGUgdHJlbmQncyBidWNrZXRzLiAqL1xuICB3ZWVrU3RhcnQ/OiAnbW9uZGF5JyB8ICdzdW5kYXknO1xufVxuXG4vKipcbiAqIFBlci1vcmcgcmVwb3J0aW5nIHNldHRpbmdzIHN1cmZhY2VkIHRvIHRoZSBvcmctYWRtaW4gcGFuZWwuIGBpbmNpZGVudFdpbmRvd0hvdXJzYFxuICogaXMgdGhlIGluY2lkZW504oaSZGVwbG95IGNvcnJlbGF0aW9uIHdpbmRvdzsgYGV2ZW50UmV0ZW50aW9uRGF5c2AgL1xuICogYGRvcmFSZXRlbnRpb25EYXlzYCBhcmUgdGhlIHR3byByZXRlbnRpb24tc3dlZXAgd2luZG93cy4gRWFjaCBvdmVycmlkZVxuICogaXMgYG51bGxgIHdoZW4gdW5zZXQgKHRoZSBwYWlyZWQgYGRlZmF1bHQqYCBmaWVsZCBzaG93cyB0aGUgZW52IGZhbGxiYWNrIGFwcGxpZWQpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydGluZ1NldHRpbmdzIHtcbiAgLyoqIFRoZSBvcmcncyBzdG9yZWQgY29ycmVsYXRpb24td2luZG93IG92ZXJyaWRlIGluIGhvdXJzLCBvciBgbnVsbGAgd2hlbiB1bnNldC4gKi9cbiAgaW5jaWRlbnRXaW5kb3dIb3VyczogbnVtYmVyIHwgbnVsbDtcbiAgLyoqIFRoZSBnbG9iYWwgZW52IGRlZmF1bHQgYXBwbGllZCB3aGVuIG5vIG92ZXJyaWRlIGlzIHN0b3JlZC4gKi9cbiAgZGVmYXVsdFdpbmRvd0hvdXJzOiBudW1iZXI7XG4gIC8qKiBTdGFuZGFyZC1ldmVudCByZXRlbnRpb24gb3ZlcnJpZGUgaW4gZGF5cywgb3IgYG51bGxgIHdoZW4gdW5zZXQuICovXG4gIGV2ZW50UmV0ZW50aW9uRGF5czogbnVtYmVyIHwgbnVsbDtcbiAgLyoqIERPUkEtc291cmNlIHJldGVudGlvbiBvdmVycmlkZSBpbiBkYXlzLCBvciBgbnVsbGAgd2hlbiB1bnNldC4gKi9cbiAgZG9yYVJldGVudGlvbkRheXM6IG51bWJlciB8IG51bGw7XG4gIC8qKiBHbG9iYWwgc3RhbmRhcmQtZXZlbnQgcmV0ZW50aW9uIGRlZmF1bHQgYXBwbGllZCB3aGVuIHVuc2V0IChkYXlzKS4gKi9cbiAgZGVmYXVsdEV2ZW50UmV0ZW50aW9uRGF5czogbnVtYmVyO1xuICAvKiogR2xvYmFsIERPUkEtc291cmNlIHJldGVudGlvbiBkZWZhdWx0IGFwcGxpZWQgd2hlbiB1bnNldCAoZGF5cykuICovXG4gIGRlZmF1bHREb3JhUmV0ZW50aW9uRGF5czogbnVtYmVyO1xufVxuXG4vKiogQSBwYXJ0aWFsIHJlcG9ydGluZy1zZXR0aW5ncyB3cml0ZSAoNykuIE9ubHkgcHJvdmlkZWQgZmllbGRzIGFyZVxuICogIHVwc2VydGVkOyBvbWl0dGVkIGZpZWxkcyBhcmUgbGVmdCB1bmNoYW5nZWQgKGFuIG9taXR0ZWQgcmV0ZW50aW9uIGZpZWxkIGtlZXBzXG4gKiAgaXRzIHN0b3JlZCBvdmVycmlkZSAvIHRoZSBnbG9iYWwgZGVmYXVsdCkuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydGluZ1NldHRpbmdzUGF0Y2gge1xuICBpbmNpZGVudFdpbmRvd0hvdXJzPzogbnVtYmVyO1xuICBldmVudFJldGVudGlvbkRheXM/OiBudW1iZXI7XG4gIGRvcmFSZXRlbnRpb25EYXlzPzogbnVtYmVyO1xufVxuXG4vKiogT25lIHJvdyBvZiB0aGUgb3JnLWFkbWluIGluY2lkZW50cyBsaXN0IChyZWNlbnQgaW5jaWRlbnRzICsgZGVwbG95IGNvcnJlbGF0aW9uKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5jaWRlbnRMaXN0SXRlbSB7XG4gIGluY2lkZW50SWQ6IHN0cmluZztcbiAgZW52aXJvbm1lbnQ6IHN0cmluZztcbiAgc2V2ZXJpdHk6IHN0cmluZztcbiAgb3BlbmVkQXQ6IHN0cmluZyB8IG51bGw7XG4gIHJlc29sdmVkQXQ6IHN0cmluZyB8IG51bGw7XG4gIGNyZWF0ZWRBdDogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIFRydWUgb25jZSB0aGUgaW5jaWRlbnQgaGFzIGEgYHJlc29sdmVkX2F0YC4gKi9cbiAgcmVzb2x2ZWQ6IGJvb2xlYW47XG4gIC8qKiBUaGUgY29ycmVsYXRlZCBkZXBsb3kgZXhlY3V0aW9uIGlkIChtb3N0IHJlY2VudCBzdWNjZXNzZnVsIGRlcGxveSBpbi13aW5kb3cpLCBvciBudWxsLiAqL1xuICBjb3JyZWxhdGVkRXhlY3V0aW9uSWQ6IHN0cmluZyB8IG51bGw7XG4gIC8qKiBUaGF0IGRlcGxveSdzIGNvbXBsZXRpb24gaW5zdGFudCwgb3IgbnVsbCB3aGVuIHVuY29ycmVsYXRlZC4gKi9cbiAgZGVwbG95Q29tcGxldGVkQXQ6IHN0cmluZyB8IG51bGw7XG59XG5cbi8qKiBSZXN1bHQgb2YgdGhlIHdpcmluZy10ZXN0IGRyeS1ydW4gY29ycmVsYXRpb24gKHtAbGluayBSZXBvcnRpbmdTZXJ2aWNlLnRlc3RJbmNpZGVudENvcnJlbGF0aW9ufSkuICovXG5leHBvcnQgaW50ZXJmYWNlIEluY2lkZW50VGVzdFJlc3VsdCB7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG4gIC8qKiBUaGUgc3ludGhldGljIGluY2lkZW50J3Mgb3BlbmVkQXQgKG5vdywgSVNPKS4gKi9cbiAgb3BlbmVkQXQ6IHN0cmluZztcbiAgLyoqIFRoZSBlZmZlY3RpdmUgY29ycmVsYXRpb24gd2luZG93IHVzZWQuICovXG4gIHdpbmRvd0hvdXJzOiBudW1iZXI7XG4gIC8qKiBXaGV0aGVyIGEgcmVjZW50IHN1Y2Nlc3NmdWwgZGVwbG95IHRvIGBlbnZpcm9ubWVudGAgY29ycmVsYXRlZC4gKi9cbiAgY29ycmVsYXRlZDogYm9vbGVhbjtcbiAgLyoqIFRoZSBjb3JyZWxhdGVkIGRlcGxveSBleGVjdXRpb24gaWQsIG9yIG51bGwuICovXG4gIGV4ZWN1dGlvbklkOiBzdHJpbmcgfCBudWxsO1xuICAvKiogVGhhdCBkZXBsb3kncyBjb21wbGV0aW9uIGluc3RhbnQsIG9yIG51bGwuICovXG4gIGRlcGxveUNvbXBsZXRlZEF0OiBzdHJpbmcgfCBudWxsO1xufVxuXG4vLyBET1JBIHBlcmZvcm1hbmNlIGJhbmRzICh0aHJlc2hvbGRzIGZyb20gdGhlIERPUkEvQWNjZWxlcmF0ZSByZXBvcnRzKS4gRWFjaFxuLy8gaGVscGVyIHJldHVybnMgYG51bGxgIHdoZW4gdGhlcmUncyBubyBzYW1wbGUgdG8gY2xhc3NpZnkuXG4vKiogRGVwbG95bWVudCBmcmVxdWVuY3kgYnkgZGVwbG95cy9kYXk6IGVsaXRlIOKJpTEvZGF5LCBoaWdoIOKJpTEvd2VlaywgbWVkaXVtIOKJpTEvbW9udGguICovXG5cbi8qKlxuICogRE9SQSBtZXRyaWNzIG92ZXIgYSBbZnJvbSx0b10gd2luZG93LCBvcmctc2NvcGVkIChzaW5nbGUtb3JnIG9yIHJvbGx1cCBzdWJ0cmVlKS5cbiAqXG4gKiBERVBMT1ktQkFTSVMg4oCUIGV2ZXJ5IG1ldHJpYyBkZXJpdmVzIGZyb20gcmVhbCBERVBMT1ktU1RBR0UgZXhlY3V0aW9ucywgaS5lLlxuICogYHBpcGVsaW5lX2V2ZW50c2Agcm93cyB3aXRoIGBldmVudF90eXBlPSdTVEFHRSdgIGFuZCBhIG5vbi1udWxsIGBlbnZpcm9ubWVudGBcbiAqICh0aGUgZm9yd2FyZGVyIHNldHMgYGVudmlyb25tZW50YCBvbmx5IGZvciB0aGUgc3RhZ2VzIGEgdXNlciBkZWNsYXJlZCBpblxuICogYHBiLmRlcGxveXNgKS4gQSBDSS1vbmx5IGJ1aWxkL3Rlc3QgcGlwZWxpbmUgd2l0aCBubyBkZXBsb3kgc3RhZ2UgcHJvZHVjZXMgTk9cbiAqIERPUkEgZGF0YSDigJQgdGhlcmUgaXMgbm8gcnVuLWJhc2VkIGZhbGxiYWNrLiBUaGUgcGFuZWwgaXMgZW1wdHkgdW50aWwgZGVwbG95ZWRcbiAqIHBpcGVsaW5lcyByZS1zeW50aCB3aXRoIHRoZSBuZXcgZGVwbG95IHRhZ3MgYW5kIHN0YXJ0IGVtaXR0aW5nIGRlcGxveSBldmVudHMuXG4gKlxuICogYHByb2R1Y3Rpb25gIGlzIHRoZSBoZWFkbGluZSBlbnZpcm9ubWVudDsgTVRUUiBpcyBtZWFzdXJlZCBwcm9kdWN0aW9uLW9ubHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9yYU1ldHJpY3Mge1xuICAvKiogVGhlIFtmcm9tLHRvXSB3aW5kb3cgZWNob2VkIGJhY2sgKGRlcGxveSBgY29tcGxldGVkX2F0YCByYW5nZSkuICovXG4gIHdpbmRvdzogeyBmcm9tOiBzdHJpbmc7IHRvOiBzdHJpbmcgfTtcbiAgLyoqIFRoZSBzY29waW5nIGFwcGxpZWQgKGVjaG9lZCBmb3IgdGhlIFVJKTsgYG51bGxgIHdoZW4gdW5zY29wZWQuICovXG4gIGZpbHRlcnM6IHsgcGlwZWxpbmVJZDogc3RyaW5nIHwgbnVsbDsgZW52aXJvbm1lbnQ6IHN0cmluZyB8IG51bGwgfTtcbiAgLyoqIFRoZSBoZWFkbGluZSBlbnZpcm9ubWVudCBuYW1lIChgcHJvZHVjdGlvbmApLiAqL1xuICBoZWFkbGluZTogc3RyaW5nO1xuICAvKiogUGVyLWVudmlyb25tZW50IERGIC8gQ0ZSIC8gbGVhZCB0aW1lLiBTb3J0ZWQgaGVhZGxpbmUtZmlyc3QsIHRoZW4gQeKGklouICovXG4gIGVudmlyb25tZW50czogRG9yYUVudk1ldHJpY3NbXTtcbiAgLyoqXG4gICAqIE1lYW4gVGltZSBUbyBSZXN0b3JlIOKAlCBQUk9EVUNUSU9OLU9OTFksIGZyb20gYGRlcGxveW1lbnRfb3V0Y29tZXNgLlxuICAgKiBgbWVkaWFuKHJlc3RvcmVkLmF0IOKIkiBkZXBsb3llZC5jb21wbGV0ZWRfYXQpYCBvdmVyIHJlc3RvcmVkIHByb2R1Y3Rpb25cbiAgICogaW5jaWRlbnRzIChkZWx0YXMgY2xhbXBlZCDiiaUwKS4gYGluY2lkZW50c2AgY291bnRzIHByb2R1Y3Rpb24gZGVwbG95cyBtYXJrZWRcbiAgICogZmFpbGVkOyBgcmVzdG9yZWRgIGNvdW50cyB0aG9zZSB0aGF0IHJlY292ZXJlZDsgYG1lZGlhblNlY29uZHNgIGlzIG51bGwgd2hlblxuICAgKiBubyByZXN0b3JlZCBpbmNpZGVudCBoYXMgYSByZXNvbHZhYmxlIGRlcGxveSB0aW1lLlxuICAgKi9cbiAgbWVhblRpbWVUb1Jlc3RvcmU6IHtcbiAgICBpbmNpZGVudHM6IG51bWJlcjtcbiAgICByZXN0b3JlZDogbnVtYmVyO1xuICAgIG1lZGlhblNlY29uZHM6IG51bWJlciB8IG51bGw7XG4gICAgLyoqIDkwdGgvOTV0aCBwZXJjZW50aWxlIHJlY292ZXJ5LCBvdmVyIHRoZSBzYW1lIHNhbXBsZSBhcyB0aGUgbWVkaWFuLiBUaGVcbiAgICAgKiAgbWVkaWFuIGFsb25lIGhpZGVzIHRoZSBsb25nIHRhaWwgdGhhdCBhY3R1YWxseSBkZWZpbmVzIGFuIG91dGFnZSdzIGNvc3Q7XG4gICAgICogIGBudWxsYCB3aGVuIG5vIHJlY292ZXJ5IGdhcCB3YXMgb2JzZXJ2ZWQuICovXG4gICAgcDkwU2Vjb25kczogbnVtYmVyIHwgbnVsbDtcbiAgICBwOTVTZWNvbmRzOiBudW1iZXIgfCBudWxsO1xuICAgIGxldmVsOiBEb3JhTGV2ZWw7XG4gIH07XG4gIC8qKlxuICAgKiBDb3ZlcmFnZSByZWNvbmNpbGlhdGlvbiDigJQgcmVnaXN0ZXJlZCBwaXBlbGluZXMgd2l0aCBubyBvYnNlcnZlZCBkZXBsb3kgaW5cbiAgICogdGhlIHdpbmRvdy4gQSBoaWdoIGB3aXRob3V0RGVwbG95c2AgY291bnQgbWVhbnMgRE9SQSBpcyBibGluZCB0byBtb3N0IG9mIHRoZVxuICAgKiBmbGVldCAocGlwZWxpbmVzIHRoYXQgaGF2ZW4ndCByZS1zeW50aGVkIHdpdGggZGVwbG95IHRhZ3MsIG9yIGRvbid0IGRlcGxveSkuXG4gICAqL1xuICBjb3ZlcmFnZToge1xuICAgIC8qKiBQaXBlbGluZXMgaW4gdGhlIHJlZ2lzdHJ5IChvcmctc2NvcGVkKS4gKi9cbiAgICByZWdpc3RlcmVkOiBudW1iZXI7XG4gICAgLyoqIFJlZ2lzdGVyZWQgcGlwZWxpbmVzIHdpdGgg4omlMSBkZXBsb3ktc3RhZ2UgZXhlY3V0aW9uIGluIHRoZSB3aW5kb3cuICovXG4gICAgZGVwbG95aW5nOiBudW1iZXI7XG4gICAgLyoqIHJlZ2lzdGVyZWQg4oiSIGRlcGxveWluZyAoY2xhbXBlZCDiiaUwKS4gKi9cbiAgICB3aXRob3V0RGVwbG95czogbnVtYmVyO1xuICB9O1xufVxuXG4vKiogUGVyLWVudmlyb25tZW50IERPUkEgbWV0cmljcyAoZGVwbG95bWVudCBmcmVxdWVuY3ksIENGUiwgbGVhZCB0aW1lKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9yYUVudk1ldHJpY3Mge1xuICBlbnZpcm9ubWVudDogc3RyaW5nO1xuICAvKiogRGVwbG95bWVudCBGcmVxdWVuY3kg4oCUIHN1Y2Nlc3NmdWwgZGVwbG95LXN0YWdlIGV4ZWN1dGlvbnMgZm9yIHRoaXMgZW52LiAqL1xuICBkZXBsb3ltZW50RnJlcXVlbmN5OiB7XG4gICAgZGVwbG95bWVudHM6IG51bWJlcjtcbiAgICBwZXJEYXk6IG51bWJlcjtcbiAgICBsZXZlbDogRG9yYUxldmVsO1xuICB9O1xuICAvKipcbiAgICogQ2hhbmdlIEZhaWx1cmUgUmF0ZSDigJQgdHdvLWNsYXNzOlxuICAgKiBgKGRlcGxveVRpbWVGYWlsdXJlcyArIHBvc3REZXBsb3lGYWlsdXJlcykgLyBhdHRlbXB0c2AuXG4gICAqIC0gYGRlcGxveVRpbWVGYWlsdXJlc2Ag4oCUIGRlcGxveSBzdGFnZSBgcmVzdWx0PWZhaWxlZGAgKGZyb20gZXZlbnRzKS5cbiAgICogLSBgcG9zdERlcGxveUZhaWx1cmVzYCDigJQgYSBzdWNjZXNzZnVsIGRlcGxveSBsYXRlciBtYXJrZWQgZmFpbGVkIGluIHByb2RcbiAgICogICAoZnJvbSBgZGVwbG95bWVudF9vdXRjb21lc2ApLlxuICAgKiAtIGBhdHRlbXB0c2Ag4oCUIGFsbCB0ZXJtaW5hbCBkZXBsb3ktc3RhZ2UgYXR0ZW1wdHMgKHN1Y2NlZWRlZCArIGZhaWxlZCkuXG4gICAqL1xuICBjaGFuZ2VGYWlsdXJlUmF0ZToge1xuICAgIHJhdGU6IG51bWJlcjtcbiAgICBkZXBsb3lUaW1lRmFpbHVyZXM6IG51bWJlcjtcbiAgICBwb3N0RGVwbG95RmFpbHVyZXM6IG51bWJlcjtcbiAgICBhdHRlbXB0czogbnVtYmVyO1xuICAgIGxldmVsOiBEb3JhTGV2ZWw7XG4gIH07XG4gIC8qKlxuICAgKiBMZWFkIFRpbWUg4oCUIE1FQVNVUkVEOiBgbWVkaWFuKGRlcGxveV9jb21wbGV0ZWQg4oiSIG9sZGVzdF9jb21taXRfdGltZSlgIG92ZXJcbiAgICogc3VjY2Vzc2Z1bCBkZXBsb3lzIHdpdGggYSByZXNvbHZhYmxlIGNvbW1pdCB0aW1lc3RhbXAgKGRlbHRhcyBjbGFtcGVkIOKJpTApLlxuICAgKiBgbWVkaWFuU2Vjb25kc2AgaXMgYG51bGxgICg9IHVua25vd24pIHdoZW4gbm8gc3VjY2Vzc2Z1bCBkZXBsb3kgaW4gdGhpcyBlbnZcbiAgICogY2FycmllZCBhIGBjb21taXRfdGltZXN0YW1wYC4gVGhlIG9sZCBtZWRpYW4tcnVuLWR1cmF0aW9uIHByb3h5IGlzIHJlbW92ZWQuXG4gICAqXG4gICAqIGBwOTBTZWNvbmRzYC9gcDk1U2Vjb25kc2AgY29tZSBmcm9tIHRoZSBzYW1lIHNhbXBsZS4gVGhlIGxldmVsIGlzIHNjb3JlZCBvZmZcbiAgICogdGhlIE1FRElBTiBvbmx5LCBzbyBhZGRpbmcgdGhlIHRhaWxzIGNhbm5vdCBtb3ZlIGEgdGVhbSdzIERPUkEgYmFuZC5cbiAgICovXG4gIGxlYWRUaW1lOiB7XG4gICAgLyoqIFN1Y2Nlc3NmdWwgZGVwbG95cyB3aXRoIGEgcmVzb2x2YWJsZSBjb21taXQgdGltZSAodGhlIG1lZGlhbiBzYW1wbGUpLiAqL1xuICAgIGRlcGxveW1lbnRzOiBudW1iZXI7XG4gICAgbWVkaWFuU2Vjb25kczogbnVtYmVyIHwgbnVsbDtcbiAgICBwOTBTZWNvbmRzOiBudW1iZXIgfCBudWxsO1xuICAgIHA5NVNlY29uZHM6IG51bWJlciB8IG51bGw7XG4gICAgbGV2ZWw6IERvcmFMZXZlbDtcbiAgfTtcbn1cblxuLyoqIE9uZSBpbnRlcnZhbCBidWNrZXQgb2YgdGhlIERPUkEgdHJlbmQgKGRlcGxveSBmcmVxdWVuY3kgKyBjaGFuZ2UgZmFpbHVyZSkuICovXG5leHBvcnQgaW50ZXJmYWNlIERvcmFUcmVuZFBvaW50IHtcbiAgLyoqIEJ1Y2tldCBzdGFydCAoREFURV9UUlVOQyBvZiB0aGUgZGVwbG95IGBjb21wbGV0ZWRfYXRgKSwgSVNPIHRleHQuICovXG4gIHBlcmlvZDogc3RyaW5nO1xuICAvKiogU3VjY2Vzc2Z1bCBkZXBsb3ktc3RhZ2UgZXhlY3V0aW9ucyBpbiB0aGUgYnVja2V0LiAqL1xuICBkZXBsb3ltZW50czogbnVtYmVyO1xuICAvKiogRmFpbGVkIGRlcGxveS1zdGFnZSBleGVjdXRpb25zIGluIHRoZSBidWNrZXQuICovXG4gIGZhaWxlZDogbnVtYmVyO1xuICAvKiogc3VjY2VlZGVkICsgZmFpbGVkIGluIHRoZSBidWNrZXQgKGRlcGxveSBhdHRlbXB0cykuICovXG4gIHRvdGFsOiBudW1iZXI7XG4gIC8qKiBmYWlsZWQvdG90YWwgYXMgYSBwZXJjZW50ICgwIHdoZW4gdG90YWwgaXMgMCkuIERlcGxveS10aW1lIENGUiBvbmx5LiAqL1xuICBjaGFuZ2VGYWlsdXJlUGN0OiBudW1iZXI7XG59XG5cbi8qKiBQZXItc3RhZ2UgYnVpbGQtaGVhbHRoIG1ldHJpY3MgZm9yIG9uZSBwaXBlbGluZSBvdmVyIGEgd2luZG93LiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZEhlYWx0aFN0YWdlIHtcbiAgc3RhZ2U6IHN0cmluZztcbiAgLyoqIFRlcm1pbmFsIHN0YWdlIHJ1bnMgKHN1Y2NlZWRlZCArIGZhaWxlZCkgaW4gdGhlIHdpbmRvdy4gKi9cbiAgcnVuczogbnVtYmVyO1xuICBzdWNjZXNzZXM6IG51bWJlcjtcbiAgZmFpbHVyZXM6IG51bWJlcjtcbiAgLyoqIHN1Y2Nlc3NlcyAvIHJ1bnMgYXMgYSBwZXJjZW50ICgwIHdoZW4gcnVucyBpcyAwKS4gKi9cbiAgc3VjY2Vzc1JhdGU6IG51bWJlcjtcbiAgLyoqIER1cmF0aW9uIHBlcmNlbnRpbGVzIG92ZXIgdGhlIHN0YWdlJ3MgdGVybWluYWwgcnVuczsgbnVsbCB3aGVuIG5vIGR1cmF0aW9ucy4gKi9cbiAgcDUwTXM6IG51bWJlciB8IG51bGw7XG4gIHA5ME1zOiBudW1iZXIgfCBudWxsO1xuICBwOTlNczogbnVtYmVyIHwgbnVsbDtcbn1cblxuLyoqXG4gKiBQZXItcGlwZWxpbmUgYnVpbGQtaGVhbHRoIGJyZWFrZG93bi4gU3RhbmRhcmQgcmVwb3J0aW5nIChOT1RcbiAqIGBhZHZhbmNlZF9yZXBvcnRpbmdgLWdhdGVkKSDigJQgcGVyLXN0YWdlIHN1Y2Nlc3MgcmF0ZSArIHRpbWluZyBwZXJjZW50aWxlcywgd2l0aFxuICogdG90YWxzIHN1bW1lZCBhY3Jvc3Mgc3RhZ2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkSGVhbHRoIHtcbiAgc3RhZ2VzOiBCdWlsZEhlYWx0aFN0YWdlW107XG4gIHRvdGFsczogeyBydW5zOiBudW1iZXI7IGZhaWx1cmVzOiBudW1iZXI7IGZhaWx1cmVSYXRlOiBudW1iZXIgfTtcbn1cblxuLyoqIFBvc3QtZGVwbG95IGluY2lkZW50IG1hcmtlciBhY2NlcHRlZCBieSBgUmVwb3J0aW5nU2VydmljZS5yZWNvcmRJbmNpZGVudGAuICovXG5leHBvcnQgaW50ZXJmYWNlIEluY2lkZW50SW5wdXQge1xuICBpbmNpZGVudElkOiBzdHJpbmc7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG4gIG9wZW5lZEF0OiBzdHJpbmc7XG4gIHJlc29sdmVkQXQ/OiBzdHJpbmc7XG4gIHNldmVyaXR5OiBzdHJpbmc7XG59XG5cbi8qKiBUaGUgcGVyc2lzdGVkIGluY2lkZW50IHN0YXRlIGFzIGFuIGF1ZGl0IHJvdyByZWNvcmRzIGl0IChzY3J1YmJlZCB2YWx1ZXMsIElTTyBpbnN0YW50cykuICovXG5leHBvcnQgaW50ZXJmYWNlIEluY2lkZW50U3RhdGUge1xuICBlbnZpcm9ubWVudDogc3RyaW5nO1xuICBvcGVuZWRBdDogc3RyaW5nIHwgbnVsbDtcbiAgcmVzb2x2ZWRBdDogc3RyaW5nIHwgbnVsbDtcbiAgc2V2ZXJpdHk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBXaGF0IGBSZXBvcnRpbmdTZXJ2aWNlLnJlY29yZEluY2lkZW50YCBkaWQuIGBjaGFuZ2VkYCBpcyBmYWxzZSBmb3IgYSBzZW5kZXInc1xuICogcmVwZWF0LWludGVydmFsIHJlLXBvc3Qgb2YgYW4gdW5jaGFuZ2VkIGFsZXJ0LCBzbyB0aGUgcm91dGUgcmVjb3JkcyBhbiBhdWRpdFxuICogcm93IG9ubHkgZm9yIGFuIGluY2lkZW50IHRoYXQgaXMgbmV3IG9yIGFjdHVhbGx5IG1vdmVkIChvcGVuZWQsIHJlLW9wZW5lZCxcbiAqIHJlc29sdmVkLCByZS1yYW5rZWQpIOKAlCBhIHdlYmhvb2sgcmUtZmlyaW5nIGV2ZXJ5IGZldyBob3VycyBtdXN0IG5vdCBidXJ5IHRoZVxuICogdHJhaWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5jaWRlbnRXcml0ZSB7XG4gIC8qKiBUaGUgc3RvcmVkIChzY3J1YmJlZCkgaW5jaWRlbnQgaWQuICovXG4gIGluY2lkZW50SWQ6IHN0cmluZztcbiAgY3JlYXRlZDogYm9vbGVhbjtcbiAgY2hhbmdlZDogYm9vbGVhbjtcbiAgYmVmb3JlOiBJbmNpZGVudFN0YXRlIHwgbnVsbDtcbiAgYWZ0ZXI6IEluY2lkZW50U3RhdGU7XG59XG5cbi8qKiBXaGF0IGBSZXBvcnRpbmdTZXJ2aWNlLnJlY29yZERlcGxveW1lbnRPdXRjb21lYCByZXBsYWNlZDogdGhlIHByaW9yIG1hcmtlciBvZiB0aGUgc2FtZSBvdXRjb21lLCBpZiBhbnkuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveW1lbnRPdXRjb21lV3JpdGUge1xuICBwcmV2aW91czogeyBhdDogc3RyaW5nIHwgbnVsbDsgZW52aXJvbm1lbnQ6IHN0cmluZyB8IG51bGwgfSB8IG51bGw7XG59XG5cbi8qKiBFdmVudCBwYXlsb2FkIGFjY2VwdGVkIGJ5IGBSZXBvcnRpbmdTZXJ2aWNlLmluZ2VzdEV2ZW50c2AuIE1pcnJvcnMgdGhlIHJvdXRlJ3MgWm9kIHNoYXBlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmdlc3RFdmVudCB7XG4gIC8qKiBTdGFibGUgcGlwZWxpbmUgaWQgdGhlIGV2ZW50cyBMYW1iZGEgcmVhZCBmcm9tIHRoZSBgcGIucGlwZWxpbmUtaWRgXG4gICAqICB0YWcgKD0gdGhlIHBsYXRmb3JtIHBpcGVsaW5lSWQpLiBUaGUgcmVnaXN0cnkgam9pbiBrZXkuICovXG4gIHBpcGVsaW5lSWQ6IHN0cmluZztcbiAgZXZlbnRTb3VyY2U6ICdjb2RlcGlwZWxpbmUnIHwgJ2NvZGVidWlsZCcgfCAncGx1Z2luLWJ1aWxkJztcbiAgZXZlbnRUeXBlOiAnUElQRUxJTkUnIHwgJ1NUQUdFJyB8ICdBQ1RJT04nIHwgJ0JVSUxEJztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIGV4ZWN1dGlvbklkPzogc3RyaW5nO1xuICBzdGFnZU5hbWU/OiBzdHJpbmc7XG4gIGFjdGlvbk5hbWU/OiBzdHJpbmc7XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBmYWlsdXJlIHJlYXNvbiAoQWN0aW9uIGV2ZW50cykuICovXG4gIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgc3RhcnRlZEF0Pzogc3RyaW5nO1xuICBjb21wbGV0ZWRBdD86IHN0cmluZztcbiAgZHVyYXRpb25Ncz86IG51bWJlcjtcbiAgLyoqIFNvdXJjZSBjb21taXQgaWQgb2YgdGhlIGNoYW5nZSBiZWluZyBzaGlwcGVkIChET1JBIGRlcGxveSBhdHRyaWJ1dGlvbikuICovXG4gIGNvbW1pdFNoYT86IHN0cmluZztcbiAgLyoqIFNvdXJjZSByZWYvYnJhbmNoIChET1JBIGRlcGxveSBhdHRyaWJ1dGlvbikuICovXG4gIGNvbW1pdFJlZj86IHN0cmluZztcbiAgLyoqIERlcGxveSB0YXJnZXQgKGUuZy4gXCJwcm9kdWN0aW9uXCIpLiBJdHMgcHJlc2VuY2Ugb24gYSBTVEFHRS9BQ1RJT04gZXZlbnRcbiAgICogIG1hcmtzIGEgcmVhbCBkZXBsb3ltZW50IChkZXJpdmVkIHNlcnZlci1zaWRlIOKAlCB0aGVyZSBpcyBubyBgaXNEZXBsb3lgKS4gKi9cbiAgZW52aXJvbm1lbnQ/OiBzdHJpbmc7XG4gIC8qKiBPbGRlc3QgdW5zaGlwcGVkIGNvbW1pdCB0aW1lc3RhbXAgKElTTyA4NjAxKSBmb3IgbWVhc3VyZWQgbGVhZCB0aW1lLiAqL1xuICBjb21taXRUaW1lc3RhbXA/OiBzdHJpbmc7XG4gIC8qKiBOdW1iZXIgb2YgY29tbWl0cyBzaGlwcGVkIGluIHRoaXMgY2hhbmdlICjiiaUxKS4gKi9cbiAgY29tbWl0Q291bnQ/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgRXZlbnRCcmlkZ2UgZXZlbnQgYGlkYCB0aGUgZm9yd2FyZGVyIHJlY2VpdmVkIHRoaXMgc3RhdGUgY2hhbmdlIGFzLlxuICAgKiBBV1MtYXNzaWduZWQgYW5kIHVuaXF1ZSBwZXIgZGVsaXZlcnkgc291cmNlIGV2ZW50LCBzbyBpdCBpcyB0aGUgc3Ryb25nZXN0XG4gICAqIGRlZHVwIGtleSB0aGVyZSBpcyAoYGV2ZW50X3NvdXJjZV9ldmVudF9pZHhgKSBhbmQgdGhlIHRocmVhZCBhbiBhdWRpdCBvclxuICAgKiBET1JBIHJvdyBmb2xsb3dzIGJhY2sgdG8gdGhlIGV4YWN0IEFXUyBldmVudC4gQWJzZW50IGZvciBwbHVnaW4tYnVpbGRcbiAgICogZXZlbnRzLCB3aGljaCBoYXZlIG5vIEV2ZW50QnJpZGdlIG9yaWdpbi5cbiAgICovXG4gIHNvdXJjZUV2ZW50SWQ/OiBzdHJpbmc7XG4gIC8qKiBUaGUgU1FTIG1lc3NhZ2UgaWQgaXQgYXJyaXZlZCBpbiAoZm9sZGVkIGludG8gYGRldGFpbC5zb3VyY2VNZXNzYWdlSWRgOyBub3QgYSBjb2x1bW4pLiAqL1xuICBzb3VyY2VNZXNzYWdlSWQ/OiBzdHJpbmc7XG4gIGRldGFpbD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vKipcbiAqIFBlci1ldmVudCBtZXRyaWMgZGVzY3JpcHRvciBlbWl0dGVkICh2aWEgdGhlIHtAbGluayBSZXBvcnRpbmdTZXJ2aWNlLmluZ2VzdEV2ZW50c31cbiAqIGBvbk1ldHJpY2AgaG9vaykgZm9yIGVhY2ggUkVHSVNURVJFRCB0ZXJtaW5hbCBkZXBsb3kvc3RhZ2UgZXZlbnQsIHNvIHRoZSByb3V0ZVxuICogbGF5ZXIgY2FuIGZhbiB0aGVtIGludG8gUHJvbWV0aGV1cyBjb3VudGVycyB3aXRob3V0IHBpcGVsaW5lLWRhdGEgaW1wb3J0aW5nXG4gKiBhcGktc2VydmVyJ3MgbWV0cmljcyByZWdpc3RyeS4gYHJlc3VsdGAgaXMgdGhlIHRlcm1pbmFsIG91dGNvbWU7IGBlbnZpcm9ubWVudGBcbiAqIGlzIG5vbi1udWxsIG9ubHkgZm9yIGEgZGVwbG95LXN0YWdlIGV2ZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YWdlSW5nZXN0TWV0cmljIHtcbiAga2luZDogJ3N0YWdlJztcbiAgcGlwZWxpbmVJZDogc3RyaW5nO1xuICBvcmdJZDogc3RyaW5nO1xuICBzdGFnZTogc3RyaW5nO1xuICBlbnZpcm9ubWVudDogc3RyaW5nIHwgbnVsbDtcbiAgcmVzdWx0OiAnc3VjY2VlZGVkJyB8ICdmYWlsZWQnO1xufVxuXG4vKipcbiAqIE9uZSB0ZXJtaW5hbCBDb2RlQnVpbGQgQUNUSU9OJ3MgY29tcHV0ZSBjb25zdW1wdGlvbiAoUGhhc2UgNCwgbWVhc3VyZW1lbnRcbiAqIGhhbGYpLlxuICpcbiAqIGBjcmVkaXRzYCBpcyBOVUxMIHJhdGhlciB0aGFuIDAgd2hlbiB0aGUgYWN0aW9uIGNvdWxkIG5vdCBiZSBtZWFzdXJlZCDigJQgbm9cbiAqIGRlY2xhcmVkIHN0YXJ0IHRpbWUsIG9yIGEgY29tcHV0ZSBzaXplIHRoZSBmb3J3YXJkZXIgY291bGQgbm90IHJlYWQuIFRoZVxuICogZGlzdGluY3Rpb24gaXMgdGhlIHdob2xlIHZhbHVlIG9mIHRoaXMgbWV0cmljOiB6ZXJvIHdvdWxkIG1ha2UgYSBjb3ZlcmFnZSBnYXBcbiAqIGxvb2sgbGlrZSBpZGxlbmVzcywgYW5kIGEgdGllciBsYWRkZXIgcmUtZGVyaXZlZCBhZ2FpbnN0IGFuIHVua25vd25cbiAqIGRlbm9taW5hdG9yIGlzIGEgcmVwcmljaW5nIG5vYm9keSBjYW4gZGVmZW5kLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXB1dGVJbmdlc3RNZXRyaWMge1xuICBraW5kOiAnY29tcHV0ZSc7XG4gIHBpcGVsaW5lSWQ6IHN0cmluZztcbiAgb3JnSWQ6IHN0cmluZztcbiAgY29tcHV0ZVR5cGU6IHN0cmluZyB8IG51bGw7XG4gIGR1cmF0aW9uTXM6IG51bWJlciB8IG51bGw7XG4gIGNyZWRpdHM6IG51bWJlciB8IG51bGw7XG59XG5cbi8qKiBXaGF0IHRoZSBpbmdlc3QgZmFucyBvdXQgdG8gaXRzIGNhbGxlcidzIG1ldHJpYyByZWdpc3RyeS4gRGlzY3JpbWluYXRlZCwgc29cbiAqICBhIG5ldyBraW5kIGNhbm5vdCBiZSBzaWxlbnRseSBjb3VudGVkIGFzIGEgc3RhZ2Ugb3V0Y29tZS4gKi9cbmV4cG9ydCB0eXBlIEluZ2VzdE1ldHJpYyA9IFN0YWdlSW5nZXN0TWV0cmljIHwgQ29tcHV0ZUluZ2VzdE1ldHJpYztcblxuLyoqIENvdW50cyArIHRoZSAocG9zc2libHkgdHJ1bmNhdGVkKSBsaXN0IG9mIHVucmVnaXN0ZXJlZCBwaXBlbGluZSBpZHMgdGhlIGNhbGxlciBjYW4gbG9nLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmdlc3RSZXN1bHQge1xuICBpbnNlcnRlZDogbnVtYmVyO1xuICBza2lwcGVkOiBudW1iZXI7XG4gIHVucmVnaXN0ZXJlZFBpcGVsaW5lSWRzOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIEV2ZXJ5IG9yZyB3aXRoIGF0IGxlYXN0IG9uZSByb3cgaW4gdGhpcyBiYXRjaCwgZGVkdXBlZC5cbiAgICpcbiAgICogQWxyZWFkeSBjb21wdXRlZCBmb3IgcG9zdC1jb21taXQgY2FjaGUgaW52YWxpZGF0aW9uOyBzdXJmYWNlZCBiZWNhdXNlIHRoZVxuICAgKiBpbmdlc3Qgcm91dGUgbmVlZHMgdGhlIHNhbWUgc2V0IHRvIHB1c2ggaXRzIGxpdmUgU1NFIGZyYW1lLiBUaGUgc3RhZ2UtbWV0cmljXG4gICAqIGhvb2sgY2FuJ3QgZHJpdmUgdGhhdCBmYW4tb3V0OiBpdCBvbmx5IGZpcmVzIGZvciBTVEFHRSBldmVudHMsIHNvIGEgYmF0Y2ggb2ZcbiAgICogUElQRUxJTkUgb3IgQlVJTEQgZXZlbnRzIHdvdWxkIGxhbmQgcm93cyBhbmQgcHVzaCBubyBmcmFtZSBhdCBhbGwuXG4gICAqL1xuICBhZmZlY3RlZE9yZ3M6IHN0cmluZ1tdO1xuICAvKipcbiAgICogRXZlbnRzIGRyb3BwZWQgYmVjYXVzZSB0aGUgcGlwZWxpbmUgdGhleSBuYW1lIGJlbG9uZ3MgdG8gYW4gb3JnIHRoZSBjYWxsZXJcbiAgICogbWF5IG5vdCB3cml0ZSBmb3IuIFN1cmZhY2VkIHNvIHRoZSByb3V0ZSBjYW4gbG9nIGFuZCBjb3VudCB0aGVtOiBhIG5vbi16ZXJvXG4gICAqIHZhbHVlIGlzIGVpdGhlciBhIG1pc3JvdXRlZCBwcm9kdWNlciBvciBhbiBhdHRlbXB0IHRvIGluamVjdCBldmVudHMgaW50b1xuICAgKiBhbm90aGVyIHRlbmFudCdzIHJlcG9ydHMsIGFuZCBib3RoIG5lZWQgdG8gYmUgdmlzaWJsZS5cbiAgICovXG4gIGRyb3BwZWRGb3JlaWduT3JnOiBudW1iZXI7XG4gIC8qKlxuICAgKiBFdmVudHMgZHJvcHBlZCBiZWNhdXNlIHRoZWlyIHRpbWVzdGFtcHMgYXJlIGltcG9zc2libGUg4oCUIGRhdGVkIGluIHRoZSBmdXR1cmUsXG4gICAqIG9yIGNvbXBsZXRpbmcgYmVmb3JlIHRoZXkgc3RhcnRlZC4gUmVqZWN0ZWQgaGVyZSByYXRoZXIgdGhhbiBjbGFtcGVkIGxhdGVyOlxuICAgKiBhIGRlcGxveSB3aG9zZSBkdXJhdGlvbiBvciBsZWFkIHRpbWUgaXMgbmVnYXRpdmUgc2lsZW50bHkgc2tld3MgZGVwbG95bWVudFxuICAgKiBmcmVxdWVuY3ksIGNoYW5nZS1mYWlsdXJlIHJhdGUgYW5kIGxlYWQgdGltZSBmb3IgdGhlIHdob2xlIG9yZywgYW5kIGEgY2xhbXBcbiAgICogdG8gMCBtYWtlcyBhIGJhZCBjbG9jayBsb29rIGxpa2UgYW4gaW5zdGFudCBkZXBsb3kuXG4gICAqL1xuICBkcm9wcGVkSW52YWxpZFRpbWU6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSByZWdpc3RlcmVkIHBpcGVsaW5lIGlkcyB3aG9zZSBldmVudHMgd2VyZSBkcm9wcGVkIGFzIEZPUkVJR04tT1JHIOKAlCB0aGVcbiAgICogdGVuYW5jeSByZWZ1c2FsIHRoZSByb3V0ZSBhdWRpdHMgYXMgYSBmYWlsdXJlLiBJZHMgb25seSAobmV2ZXIgdGhlIG9yZyB0aGV5XG4gICAqIHJlc29sdmVkIHRvOiB0aGF0IHdvdWxkIHRlbGwgYSBwcm9iZXIgd2hpY2ggdGVuYW50IG93bnMgdGhlIHBpcGVsaW5lKS5cbiAgICovXG4gIGZvcmVpZ25QaXBlbGluZUlkczogc3RyaW5nW107XG4gIC8qKiBEaXN0aW5jdCBleGVjdXRpb24gaWRzIG9mIHRoZSByb3dzIHRoYXQgYWN0dWFsbHkgbGFuZGVkICh0aGUgYXVkaXQncyBjb3JyZWxhdGlvbiBzZXQpLiAqL1xuICBpbnNlcnRlZEV4ZWN1dGlvbklkczogc3RyaW5nW107XG4gIC8qKiBEaXN0aW5jdCBwaXBlbGluZSBpZHMgb2YgdGhlIHJvd3MgdGhhdCBhY3R1YWxseSBsYW5kZWQuICovXG4gIGluc2VydGVkUGlwZWxpbmVJZHM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFdobyBpcyB3cml0aW5nLCBmb3IgdGhlIGluZ2VzdCB0ZW5hbmN5IGNoZWNrLlxuICpcbiAqIGAvcmVwb3J0cy9ldmVudHNgIHJlc29sdmVzIGFuIGV2ZW50J3Mgb3JnIGZyb20gdGhlIHBpcGVsaW5lIHJlZ2lzdHJ5LCBzb1xuICogd2l0aG91dCB0aGlzIGEgdG9rZW4gaG9sZGluZyBgcmVwb3J0aW5nOmluZ2VzdGAgY291bGQgcG9zdCBldmVudHMgZm9yIEFOWVxuICogcGlwZWxpbmUgaWQgYW5kIGhhdmUgdGhlbSBhdHRyaWJ1dGVkIHRvIHRoYXQgcGlwZWxpbmUncyBvcmcg4oCUIG9uZSBvcmdcbiAqIGluamVjdGluZyByb3dzIGludG8gYW5vdGhlcidzIHJlcG9ydHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5nZXN0Q2FsbGVyIHtcbiAgLyoqXG4gICAqIE9yZyBpZHMgdGhpcyBjYWxsZXIgbWF5IHdyaXRlIGV2ZW50cyBmb3I6IGl0cyBvd24sIHBsdXMgZGVzY2VuZGFudCB0ZWFtcy5cbiAgICogUmVzb2x2ZWQgYnkgdGhlIHJvdXRlLiBBbiBldmVudCB3aG9zZSBwaXBlbGluZSBiZWxvbmdzIHRvIGFueXRoaW5nIGVsc2UgaXNcbiAgICogZHJvcHBlZC5cbiAgICovXG4gIGFsbG93ZWRPcmdJZHM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICAvKipcbiAgICogQSB2ZXJpZmllZCBJTlRFUk5BTCBzZXJ2aWNlIHByaW5jaXBhbCAodGhlIHBsdWdpbiBzZXJ2aWNlIHBvc3RzIHBsdWdpbi1idWlsZFxuICAgKiBldmVudHMgZm9yIGV2ZXJ5IHRlbmFudCkuIFN1Y2ggY2FsbGVycyBhcmUgZXhlbXB0OiB0aGV5IGhvbGQgYSBzaWduZWRcbiAgICogc2VydmljZSBrZXkgbm8gZXh0ZXJuYWwgY2xpZW50IGNhbiBtaW50LCBhbmQgdGhleSBsZWdpdGltYXRlbHkgd3JpdGVcbiAgICogY3Jvc3MtdGVuYW50LiBOZXZlciBzZXQgdGhpcyBmcm9tIGFueXRoaW5nIGEgcmVxdWVzdCBib2R5IGNhbiBpbmZsdWVuY2UuXG4gICAqL1xuICBjcm9zc1RlbmFudD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgYWNjZXNzIGtleSAoc2VydmljZS1hY2NvdW50IC8gUEFUIGtleSBpZCkgdGhlIGluZ2VzdCB0b2tlbiB3YXMgZXhjaGFuZ2VkXG4gICAqIGZyb20sIHN0YW1wZWQgb24gZXZlcnkgcm93IGFzIGBpbmdlc3Rfa2V5X2lkYCBzbyBhIGZvcmdlZCBvciBtaXNyb3V0ZWQgcm93XG4gICAqIG5hbWVzIHRoZSBjcmVkZW50aWFsIHRoYXQgd3JvdGUgaXQuIEEga2V5IElELCBuZXZlciB0aGUgc2VjcmV0LlxuICAgKi9cbiAga2V5SWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT25lIG9yZydzIGluZ2VzdGlvbi1oZWFsdGggcm93IGFzIFJFQUQgYmFjayBieSB0aGUgUmVwb3J0cyBVSS4gVGhlXG4gKiBBV1MgZXZlbnRzIExhbWJkYSB3cml0ZXMgaXQ7IHRoaXMgaXMgdGhlIHNoYXBlIHRoYXQgbGV0cyB0aGUgVUkgdGVsbFxuICogXCJpbmdlc3Rpb24gaXMgaGVhbHRoeSwgdGhlcmUgd2VyZSBzaW1wbHkgbm8gZGVwbG95cyBpbiB0aGUgcmFuZ2VcIiBhcGFydCBmcm9tXG4gKiBcIndlIGhhdmVuJ3QgaGVhcmQgZnJvbSB0aGUgaW5nZXN0IHBpcGVsaW5lIHNpbmNlIFhcIi5cbiAqXG4gKiBgbnVsbGAgZnJvbSB7QGxpbmsgUmVwb3J0aW5nU2VydmljZS5nZXRJbmdlc3RIZWFsdGh9IG1lYW5zIHRoZSBkZXBsb3ltZW50IGhhc1xuICogTkVWRVIgcmVwb3J0ZWQg4oCUIG5vdCBcInN0YWxlXCIuIFRoZSB0d28gbXVzdCBub3QgYmUgY29uZmxhdGVkOiBhIGZyZXNoIGluc3RhbGxcbiAqIChvciBvbmUgd2hvc2UgZm9yd2FyZGVyIHdhcyBuZXZlciB3aXJlZCB1cCkgaGFzIG5vIGhlYXJ0YmVhdCBhdCBhbGwsIGFuZFxuICogY2FsbGluZyB0aGF0IFwic3RhbGVcIiB3b3VsZCBpbnZlbnQgYSByZWdyZXNzaW9uIHRoYXQgbmV2ZXIgaGFwcGVuZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5nZXN0SGVhbHRoU3RhdHVzIHtcbiAgLyoqIFdoZW4gdGhlIGZvcndhcmRlciBsYXN0IHBvc3RlZCBhIGhlYXJ0YmVhdCAoaXRzIG93biBjbG9jaywgSVNPIDg2MDEpLiAqL1xuICB1cGRhdGVkQXQ6IHN0cmluZztcbiAgLyoqIFRpbWVzdGFtcCBvZiB0aGUgbmV3ZXN0IGV2ZW50IGl0IGhhZCBmb3J3YXJkZWQsIG9yIG51bGwgaWYgaXQgaGFzIHNlZW4gbm9uZS4gKi9cbiAgbGFzdEV2ZW50QXQ6IHN0cmluZyB8IG51bGw7XG4gIC8qKiBDdW11bGF0aXZlIGV2ZW50cyBmb3J3YXJkZWQsIG9yIG51bGwgd2hlbiB0aGUgZm9yd2FyZGVyIGRvZXNuJ3QgcmVwb3J0IGl0LiAqL1xuICBmb3J3YXJkZWQ6IG51bWJlciB8IG51bGw7XG4gIC8qKiBDdW11bGF0aXZlIGV2ZW50cyBEUk9QUEVEIChub24temVybyDih5IgZGF0YSBsb3NzIHVwc3RyZWFtIG9mIHRoZSByZXBvcnRzKS4gKi9cbiAgZHJvcHBlZDogbnVtYmVyIHwgbnVsbDtcbn1cblxuXG4vKipcbiAqIFJlYWQtb25seSByZXBvcnRpbmcgc2VydmljZSBmb3IgcGlwZWxpbmUgZXhlY3V0aW9uIGFuZCBwbHVnaW4gaW52ZW50b3J5IGFnZ3JlZ2F0aW9ucy5cbiAqIERvZXMgbm90IGV4dGVuZCBDcnVkU2VydmljZSDigJQgcmVwb3J0cyBhcmUgYWdncmVnYXRlIHF1ZXJpZXMsIG5vdCBlbnRpdHkgQ1JVRC5cbiAqXG4gKiBBbGwgcXVlcmllcyBhcmUgY2FjaGVkIGluLW1lbW9yeSB0byBhdm9pZCByZXBlYXRlZCBleHBlbnNpdmUgU1FMIGFnZ3JlZ2F0aW9uczpcbiAqIC0gSW52ZW50b3J5IHF1ZXJpZXMgKHBsdWdpbiBzdW1tYXJ5L2Rpc3RyaWJ1dGlvbi92ZXJzaW9ucyk6IDUgbWluIFRUTFxuICogLSBUaW1lc2VyaWVzIHF1ZXJpZXMgKGV4ZWN1dGlvbi9idWlsZCBtZXRyaWNzIHdpdGggZGF0ZSByYW5nZXMpOiAyIG1pbiBUVExcbiAqL1xuXG4vKipcbiAqIEludGVybmFsIHJvdyBzaGFwZXMgZm9yIHRoZSBET1JBIHF1ZXJpZXMuIEV4cG9ydGVkIGJlY2F1c2UgLi9kb3JhLnRzIGNvbnN1bWVzXG4gKiB0aGVtOyBub3QgcGFydCBvZiB0aGUgcGFja2FnZSdzIHB1YmxpYyBzdXJmYWNlIChyZXBvcnRpbmctc2VydmljZS50c1xuICogcmUtZXhwb3J0cyB0aGlzIG1vZHVsZSB3aG9sZXNhbGUsIHdoaWNoIGlzIGEgZGVsaWJlcmF0ZSBzaW1wbGlmaWNhdGlvbiDigJQgdGhlc2VcbiAqIGRlc2NyaWJlIHF1ZXJ5IHJlc3VsdHMsIG5vdCBBUEkgY29udHJhY3RzKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXBsb3lSb3cge1xuICBlbnZpcm9ubWVudDogc3RyaW5nO1xuICBzdGF0dXM6ICdTVUNDRUVERUQnIHwgJ0ZBSUxFRCcgfCBzdHJpbmc7XG4gIC8qKiBEZXBsb3kgZXhlY3V0aW9uIGlkIOKAlCB0aGUgYXR0cmlidXRpb24ga2V5IGZvciBkZWR1cCBhZ2FpbnN0IG91dGNvbWVzL2luY2lkZW50cy4gKi9cbiAgZXhlY3V0aW9uX2lkOiBzdHJpbmcgfCBudWxsO1xuICBjb21wbGV0ZWRfYXQ6IHN0cmluZyB8IG51bGw7XG4gIGNvbW1pdF90czogc3RyaW5nIHwgbnVsbDtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGRlcGxveSBjb21wbGV0ZWQgaW5zaWRlIFtmcm9tLHRvXS4gQWJzZW50ICh1bmRlZmluZWQpIGluIHVuaXRcbiAgICogZml4dHVyZXMg4oeSIHRyZWF0ZWQgYXMgaW4td2luZG93LiBgdGAvYGZgIHRvbGVyYXRlZCAocGcgYm9vbGVhbiB0ZXh0IGZvcm0pLlxuICAgKi9cbiAgaW5fd2luZG93PzogYm9vbGVhbiB8IHN0cmluZyB8IG51bGw7XG59XG5cbi8qKiBSYXcgcG9zdC1kZXBsb3kgb3V0Y29tZSBtYXJrZXIgcm93IChmcm9tIGBkZXBsb3ltZW50X291dGNvbWVzYCwgaW4td2luZG93KS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3V0Y29tZVJvdyB7XG4gIGVudmlyb25tZW50OiBzdHJpbmcgfCBudWxsO1xuICBvdXRjb21lOiAnZmFpbGVkJyB8ICdyZXN0b3JlZCcgfCBzdHJpbmc7XG4gIC8qKiBFeGVjdXRpb24gdGhlIHVzZXIgbWFya2VkIOKAlCBkZWR1cCBrZXkgYWdhaW5zdCBpbmNpZGVudC1jb3JyZWxhdGVkIGRlcGxveXMuICovXG4gIGV4ZWN1dGlvbl9pZDogc3RyaW5nIHwgbnVsbDtcbn1cblxuLyoqIFByb2R1Y3Rpb24gcmVzdG9yZWQtaW5jaWRlbnQgcGFpcjogcmVjb3ZlcnkgdGltZSArIHRoZSBkZXBsb3kncyBjb21wbGV0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNdHRyUGFpclJvdyB7XG4gIHJlc3RvcmVkX2F0OiBzdHJpbmcgfCBudWxsO1xuICBkZXBsb3llZF9hdDogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIEV4ZWN1dGlvbiBpZCDigJQgbGV0cyBpbmNpZGVudCBwcmVjZWRlbmNlIG92ZXJyaWRlIHRoZSBtYW51YWwgb3V0Y29tZSBwZXIgZGVwbG95LiAqL1xuICBleGVjdXRpb25faWQ6IHN0cmluZyB8IG51bGw7XG59XG5cbi8qKlxuICogUmF3IGluY2lkZW50IHJvdyAoZnJvbSBgaW5jaWRlbnRzYCwgb3BlbmVkIGluLXdpbmRvdykuIENvcnJlbGF0ZWQgaW4gSlMgdG8gdGhlXG4gKiBtb3N0IHJlY2VudCBzdWNjZXNzZnVsIGRlcGxveSB0byBgZW52aXJvbm1lbnRgIHdpdGhpbiBET1JBX0lOQ0lERU5UX1dJTkRPV19IT1VSU1xuICog4oaSIGFuIGF1dG9tYXRlZCBwb3N0LWRlcGxveSBmYWlsdXJlIChDRlIpICsgcmVhbCByZWNvdmVyeSB0aW1lIChNVFRSKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmNpZGVudFJvdyB7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG4gIG9wZW5lZF9hdDogc3RyaW5nIHwgbnVsbDtcbiAgcmVzb2x2ZWRfYXQ6IHN0cmluZyB8IG51bGw7XG59XG5cbi8qKiBDb3ZlcmFnZSBjb3VudHM6IHJlZ2lzdGVyZWQgcGlwZWxpbmVzIHZzIHRob3NlIHRoYXQgYWN0dWFsbHkgZGVwbG95ZWQuICovXG5leHBvcnQgaW50ZXJmYWNlIENvdmVyYWdlUm93IHtcbiAgcmVnaXN0ZXJlZDogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbDtcbiAgZGVwbG95aW5nOiBudW1iZXIgfCBzdHJpbmcgfCBudWxsO1xufVxuIl19
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvcmVwb3J0aW5nL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBQdWJsaWMgcmVzdWx0IHNoYXBlcyBmb3IgdGhlIHJlcG9ydGluZyBzZXJ2aWNlLlxuICpcbiAqIFNwbGl0IG91dCBvZiByZXBvcnRpbmctc2VydmljZS50cyBwdXJlbHkgZm9yIHNpemU6IHRoZXNlIGFyZSBkYXRhIGNvbnRyYWN0c1xuICogd2l0aCBubyBiZWhhdmlvdXIuIHJlcG9ydGluZy1zZXJ2aWNlLnRzIHJlLWV4cG9ydHMgdGhlbSwgc28gdGhlXG4gKiBgQHBpcGVsaW5lLWJ1aWxkZXIvcGlwZWxpbmUtZGF0YWAgcHVibGljIHN1cmZhY2UgaXMgdW5jaGFuZ2VkLlxuICovXG5cbmltcG9ydCB0eXBlIHsgV2Vla1N0YXJ0IH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGlvbkNvdW50IHtcbiAgaWQ6IHN0cmluZztcbiAgcHJvamVjdDogc3RyaW5nO1xuICBvcmdhbml6YXRpb246IHN0cmluZztcbiAgcGlwZWxpbmVOYW1lOiBzdHJpbmcgfCBudWxsO1xuICB0b3RhbDogbnVtYmVyO1xuICBzdWNjZWVkZWQ6IG51bWJlcjtcbiAgZmFpbGVkOiBudW1iZXI7XG4gIGNhbmNlbGVkOiBudW1iZXI7XG4gIGZpcnN0RXhlY3V0aW9uOiBzdHJpbmcgfCBudWxsO1xuICBsYXN0RXhlY3V0aW9uOiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRpbWVTZXJpZXNFbnRyeSB7XG4gIHBlcmlvZDogc3RyaW5nO1xuICBzdWNjZWVkZWQ6IG51bWJlcjtcbiAgZmFpbGVkOiBudW1iZXI7XG4gIGNhbmNlbGVkOiBudW1iZXI7XG4gIHN1Y2Nlc3NQY3Q6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEdXJhdGlvblN0YXRzIHtcbiAgaWQ6IHN0cmluZztcbiAgcHJvamVjdDogc3RyaW5nO1xuICBwaXBlbGluZU5hbWU6IHN0cmluZyB8IG51bGw7XG4gIGF2Z01zOiBudW1iZXI7XG4gIG1pbk1zOiBudW1iZXI7XG4gIG1heE1zOiBudW1iZXI7XG4gIHA5NU1zOiBudW1iZXI7XG4gIGV4ZWN1dGlvbnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZUV4ZWN1dGlvbiB7XG4gIGV4ZWN1dGlvbklkOiBzdHJpbmc7XG4gIC8qKiBSb2xsZWQtdXAgdGVybWluYWwgc3RhdHVzOiBzdWNjZWVkZWQgfCBmYWlsZWQgfCBjYW5jZWxlZCB8IGluLXByb2dyZXNzLiAqL1xuICBzdGF0dXM6IHN0cmluZztcbiAgc3RhcnRlZEF0OiBzdHJpbmcgfCBudWxsO1xuICBlbmRlZEF0OiBzdHJpbmcgfCBudWxsO1xuICBkdXJhdGlvbk1zOiBudW1iZXIgfCBudWxsO1xuICAvKiogRmlyc3QgZmFpbGluZyBzdGFnZS9hY3Rpb24gZm9yIHRoZSBleGVjdXRpb24gKG51bGwgd2hlbiBpdCBkaWRuJ3QgZmFpbCkuICovXG4gIGZhaWxpbmdTdGFnZTogc3RyaW5nIHwgbnVsbDtcbiAgZmFpbGluZ0FjdGlvbjogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIFRoZSBmaXJzdCBmYWlsdXJlIGRldGFpbCBhbiBldmVudCBvZiB0aGUgZXhlY3V0aW9uIGNhcnJpZWQgKGBkZXRhaWwuZmFpbHVyZWApLCBvciBudWxsLiAqL1xuICBmYWlsdXJlOiB1bmtub3duIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFnZUZhaWx1cmUge1xuICBzdGFnZU5hbWU6IHN0cmluZztcbiAgZmFpbHVyZXM6IG51bWJlcjtcbiAgdG90YWw6IG51bWJlcjtcbiAgZmFpbHVyZVBjdDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWdlQm90dGxlbmVjayB7XG4gIGlkOiBzdHJpbmc7XG4gIHBpcGVsaW5lTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIGF2Z01zOiBudW1iZXI7XG4gIG1heE1zOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uRmFpbHVyZSB7XG4gIGFjdGlvbk5hbWU6IHN0cmluZztcbiAgZmFpbHVyZXM6IG51bWJlcjtcbiAgdG90YWw6IG51bWJlcjtcbiAgZmFpbHVyZVBjdDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yRW50cnkge1xuICBlcnJvclBhdHRlcm46IHN0cmluZztcbiAgb2NjdXJyZW5jZXM6IG51bWJlcjtcbiAgYWZmZWN0ZWRQaXBlbGluZXM6IG51bWJlcjtcbiAgbGFzdFNlZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5TdW1tYXJ5IHtcbiAgdG90YWw6IG51bWJlcjtcbiAgYWN0aXZlOiBudW1iZXI7XG4gIGluYWN0aXZlOiBudW1iZXI7XG4gIC8qKiBDb3VudHMgcGVyIHNoYXJpbmcgcnVuZyDigJQgb25lIGJ1Y2tldCBwZXIgYHZpc2liaWxpdHlgIHZhbHVlLiAqL1xuICBwdWJsaWM6IG51bWJlcjtcbiAgb3JnOiBudW1iZXI7XG4gIHByaXZhdGU6IG51bWJlcjtcbiAgdW5pcXVlTmFtZXM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlQ29tcHV0ZURpc3RyaWJ1dGlvbiB7XG4gIHBsdWdpblR5cGU6IHN0cmluZztcbiAgY29tcHV0ZVR5cGU6IHN0cmluZztcbiAgY291bnQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWZXJzaW9uQ291bnQge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZlcnNpb25Db3VudDogbnVtYmVyO1xuICBsYXRlc3RWZXJzaW9uOiBzdHJpbmc7XG4gIGhhc0RlZmF1bHQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRUaW1lU2VyaWVzRW50cnkge1xuICBwZXJpb2Q6IHN0cmluZztcbiAgc3VjY2VlZGVkOiBudW1iZXI7XG4gIGZhaWxlZDogbnVtYmVyO1xuICBzdWNjZXNzUGN0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGREdXJhdGlvbiB7XG4gIHBsdWdpbk5hbWU6IHN0cmluZztcbiAgYXZnTXM6IG51bWJlcjtcbiAgbWF4TXM6IG51bWJlcjtcbiAgYnVpbGRzOiBudW1iZXI7XG59XG5cbi8qKlxuICogUGx1Z2luIHJ1bnRpbWUgcmVwb3J0IGZpbHRlcnMuIGBwdWJsaXNoZXI6IG51bGxgIHNlbGVjdHMgb3duLW9yZ1xuICogKHB1Ymxpc2hlci1sZXNzKSBwbHVnaW5zOyBhbiBvbWl0dGVkIGZpZWxkIGRvZXNuJ3QgZmlsdGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpblJ1bnRpbWVGaWx0ZXIge1xuICBuYW1lPzogc3RyaW5nO1xuICBwdWJsaXNoZXI/OiBzdHJpbmcgfCBudWxsO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xufVxuXG4vKiogUGVyIHBsdWdpbiB2ZXJzaW9uIHJ1bnRpbWUgc3RhdHMgb3ZlciBhIHdpbmRvdyAodGVybWluYWwgQUNUSU9OIHJ1bnMpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5SdW50aW1lU3RhdHMge1xuICBwbHVnaW5QdWJsaXNoZXI6IHN0cmluZyB8IG51bGw7XG4gIHBsdWdpbk5hbWU6IHN0cmluZztcbiAgcGx1Z2luVmVyc2lvbjogc3RyaW5nO1xuICBydW5zOiBudW1iZXI7XG4gIHN1Y2NlZWRlZDogbnVtYmVyO1xuICBmYWlsZWQ6IG51bWJlcjtcbiAgLyoqIDDigJMxMDAsIG9uZSBkZWNpbWFsLiAqL1xuICBzdWNjZXNzUGN0OiBudW1iZXI7XG4gIC8qKiBOdWxsIHdoZW4gbm8gcnVuIGluIHRoZSBncm91cCBjYXJyaWVkIGEgZHVyYXRpb24uICovXG4gIHA1ME1zOiBudW1iZXIgfCBudWxsO1xuICBwOTVNczogbnVtYmVyIHwgbnVsbDtcbiAgbGFzdFJ1bjogc3RyaW5nO1xufVxuXG4vKiogQ3Jvc3Mtb3JnIDMwLWRheSBhZ2dyZWdhdGUgZm9yIG9uZSBgKHB1Ymxpc2hlciwgbmFtZSlgIGxpc3RpbmcuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpblJ1bnRpbWVBZ2dyZWdhdGUge1xuICBydW5zMzBkOiBudW1iZXI7XG4gIC8qKiAw4oCTMTsgbnVsbCB3aGVuIHRoZXJlIHdlcmUgbm8gcnVucy4gKi9cbiAgc3VjY2Vzc1JhdGUzMGQ6IG51bWJlciB8IG51bGw7XG4gIGFjdGl2ZU9yZ0NvdW50MzBkOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRGYWlsdXJlIHtcbiAgcGx1Z2luTmFtZTogc3RyaW5nO1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgb2NjdXJyZW5jZXM6IG51bWJlcjtcbiAgbGFzdFNlZW46IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgRE9SQSBoZWFkbGluZSBlbnZpcm9ubWVudC4gRGVwbG95bWVudCB0byB0aGlzIGxpdGVyYWwgZW52IG5hbWUgaXMgdGhlXG4gKiBpbmR1c3RyeS1zdGFuZGFyZCBET1JBIHNpZ25hbDsgTVRUUiBpcyBtZWFzdXJlZCBwcm9kdWN0aW9uLW9ubHksIGFuZCB0aGlzXG4gKiBlbnZpcm9ubWVudCdzIGNhcmQgaXMgdGhlIHN1bW1hcnkgc2hvd24gYXQgdGhlIHRvcCBvZiB0aGUgcGFuZWwuXG4gKi9cblxuLyoqIFBlci1vcmcgcmV0ZW50aW9uIG92ZXJyaWRlIHJvdy4gQm90aCBudWxsYWJsZSDih5IgZ2xvYmFsIGRlZmF1bHRzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRpbmdSZXRlbnRpb25TZXR0aW5ncyB7XG4gIGV2ZW50UmV0ZW50aW9uRGF5czogbnVtYmVyIHwgbnVsbDtcbiAgZG9yYVJldGVudGlvbkRheXM6IG51bWJlciB8IG51bGw7XG4gIGRlZmF1bHRFdmVudFJldGVudGlvbkRheXM6IG51bWJlcjtcbiAgZGVmYXVsdERvcmFSZXRlbnRpb25EYXlzOiBudW1iZXI7XG59XG5cbi8qKiBPcHRpb25zIGZvciB0aGUgcmVwb3J0aW5nIHJldGVudGlvbiBzd2VlcC4gKi9cbi8qKlxuICogSG93IGEgdGltZS1idWNrZXRlZCByZXBvcnQgc2xpY2VzIGl0cyBwZXJpb2RzLiBBYnNlbnQgbWVhbnMgVVRDICsgTW9uZGF5LCB3aGljaFxuICogaXMgd2hhdCBldmVyeSBwcmUtdGltZXpvbmUgY2FsbGVyIGdvdCDigJQgc28gYW4gb21pdHRlZCB2YWx1ZSBjYW4gbmV2ZXIgc2lsZW50bHlcbiAqIGNoYW5nZSBhbiBleGlzdGluZyByZXBvcnQncyBib3VuZGFyaWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldE9wdGlvbnMge1xuICAvKiogSUFOQSB0aW1lem9uZSB0aGUgYnVja2V0cyBhcmUgY3V0IGluICh2YWxpZGF0ZWQgYXQgdGhlIHJvdXRlKS4gKi9cbiAgdHo/OiBzdHJpbmc7XG4gIC8qKiBXaGVyZSB0aGUgd2VlayBzdGFydHMuIFBvc3RncmVzIERBVEVfVFJVTkMgaXMgTW9uZGF5LW9ubHksIHNvIGBzdW5kYXlgXG4gICAqICBzaGlmdHMgdGhlIGJvdW5kYXJ5IGV4cGxpY2l0bHkuICovXG4gIHdlZWtTdGFydD86IFdlZWtTdGFydDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRpbmdSZXRlbnRpb25PcHRpb25zIHtcbiAgLyoqIFJvd3MgZGVsZXRlZCBwZXIgc3RhdGVtZW50IChkZWZhdWx0IDEwMDApLiAqL1xuICBiYXRjaFNpemU/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgbGVhZGVyLWxvY2tlZCBydW4gdGhpcyBzd2VlcCBiZWxvbmdzIHRvLiBDaGVja2VkIEJFVFdFRU4gT1JHUzogYWJvcnRlZFxuICAgKiBtZWFucyB0aGUgbG9jayB3YXMgbG9zdCAoYW5vdGhlciBwb2QgaXMgdGFraW5nIG92ZXIpIG9yIHRoZSBwcm9jZXNzIGlzXG4gICAqIHNodXR0aW5nIGRvd24sIGFuZCB0aGUgcmVtYWluaW5nIG9yZ3MgYXJlIHBpY2tlZCB1cCBuZXh0IHRpY2suIFdpdGhvdXQgaXQgYVxuICAgKiBsb25nIHN3ZWVwIGtlcHQgZGVsZXRpbmcgYWZ0ZXIgYW5vdGhlciBwb2QgaGFkIGFscmVhZHkgdGFrZW4gdGhlIGxvY2suXG4gICAqL1xuICBydW4/OiB7IHNpZ25hbDogQWJvcnRTaWduYWwgfTtcbiAgLyoqIE1heCBiYXRjaGVzIHBlciB0YWJsZSBwZXIgb3JnIHBlciB0aWNrIChkZWZhdWx0IDUwKTsgdGhlIHJlc3QgZGVmZXJzIHRvXG4gICAqICB0aGUgbmV4dCB0aWNrIHNvIGEgaHVnZSBiYWNrbG9nIGNhbid0IGhvbGQgbG9ja3MgdG9vIGxvbmcuICovXG4gIG1heEJhdGNoZXNQZXJUYWJsZT86IG51bWJlcjtcbiAgLyoqIEZpeGVkIFwibm93XCIgZm9yIHRoZSB3aG9sZSBzd2VlcCAoZGVmYXVsdCBgbmV3IERhdGUoKWApLiAqL1xuICBub3c/OiBEYXRlO1xuICAvKipcbiAgICogUmVzb2x2ZSB0aGUgb3JnIHdob3NlIGBkb3JhX3NldHRpbmdzYCByZXRlbnRpb24gZ292ZXJucyBgb3JnSWRgJ3Mgcm93cyDigJQgaXRzXG4gICAqIGFjY291bnQgUk9PVC4gUmV0ZW50aW9uIGlzIGEgYmlsbGluZyBlbnRpdGxlbWVudCBzeW5jZWQgb250byB0aGUgcm9vdCBvbmx5LFxuICAgKiBzbyBhIHRlYW0ncyByb3dzIG11c3QgZm9sbG93IHRoZSByb290J3MgKHB1cmNoYXNlZCkgd2luZG93LCBub3QgdGhlIGVudlxuICAgKiBkZWZhdWx0LiBSZXR1cm4gYG51bGxgIHdoZW4gdGhlIHJvb3QgY2FuJ3QgYmUgcmVzb2x2ZWQ6IHRoYXQgb3JnIGlzIFNLSVBQRURcbiAgICogdGhpcyB0aWNrIChuZXZlciBwdXJnZWQgb24gYSBwb3NzaWJseS1zaG9ydGVyIHdpbmRvdykuIERlZmF1bHQ6IGlkZW50aXR5XG4gICAqIChldmVyeSBvcmcgaXMgaXRzIG93biByb290IOKAlCBhIGZsYXQgZGVwbG95bWVudCkuXG4gICAqL1xuICByZXNvbHZlUmV0ZW50aW9uT3JnSWQ/OiAob3JnSWQ6IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmcgfCBudWxsPjtcbn1cblxuLyoqIFBlci1ydW4gcHVyZ2UgdGFsbGllcyAoYWxzbyBsb2dnZWQpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRpbmdSZXRlbnRpb25Db3VudHMge1xuICAvKiogT3JncyBzd2VwdCB0aGlzIHJ1bi4gKi9cbiAgb3JnczogbnVtYmVyO1xuICAvKiogU3RhbmRhcmQgYHBpcGVsaW5lX2V2ZW50c2AgKGVudmlyb25tZW50IElTIE5VTEwpIHJvd3MgcHVyZ2VkLiAqL1xuICBzdGFuZGFyZEV2ZW50czogbnVtYmVyO1xuICAvKiogRE9SQS1zb3VyY2UgYHBpcGVsaW5lX2V2ZW50c2AgKGVudmlyb25tZW50IElTIE5PVCBOVUxMKSByb3dzIHB1cmdlZC4gKi9cbiAgZG9yYUV2ZW50czogbnVtYmVyO1xuICAvKiogYGRlcGxveW1lbnRfb3V0Y29tZXNgIHJvd3MgcHVyZ2VkLiAqL1xuICBkZXBsb3ltZW50T3V0Y29tZXM6IG51bWJlcjtcbiAgLyoqIGBpbmNpZGVudHNgIHJvd3MgcHVyZ2VkLiAqL1xuICBpbmNpZGVudHM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBET1JBIHBlcmZvcm1hbmNlIGJhbmQuIGBudWxsYCA9IGluc3VmZmljaWVudCBkYXRhIHRvIGNsYXNzaWZ5IChub1xuICogZGVwbG95bWVudHMvZmFpbHVyZXMvbGVhZC10aW1lIHNhbXBsZSBpbiB0aGUgd2luZG93KSwgc28gdGhlIFVJIHNob3dzIGFcbiAqIG5ldXRyYWwgc3RhdGUgcmF0aGVyIHRoYW4gbWlzbGFiZWxpbmcgYW4gZW1wdHkgd2luZG93IGFzIFwibG93XCIuXG4gKi9cbmV4cG9ydCB0eXBlIERvcmFMZXZlbCA9ICdlbGl0ZScgfCAnaGlnaCcgfCAnbWVkaXVtJyB8ICdsb3cnIHwgbnVsbDtcblxuLyoqIE9wdGlvbmFsIHNjb3BpbmcgZm9yIHtAbGluayBSZXBvcnRpbmdTZXJ2aWNlLmdldERvcmFNZXRyaWNzfS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9yYU9wdGlvbnMge1xuICAvKiogUmVzdHJpY3QgdG8gYSBzaW5nbGUgcGlwZWxpbmUgKHBlci1waXBlbGluZSBET1JBKS4gKi9cbiAgcGlwZWxpbmVJZD86IHN0cmluZztcbiAgLyoqIFJlc3RyaWN0IHRvIGEgc2luZ2xlIGRlcGxveSBlbnZpcm9ubWVudCAoZWxzZSBhbGwgZGVwbG95IGVudmlyb25tZW50cykuICovXG4gIGVudmlyb25tZW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogUGVyLW9yZyBpbmNpZGVudOKGkmRlcGxveSBjb3JyZWxhdGlvbiB3aW5kb3cgb3ZlcnJpZGUgKGhvdXJzKS4gV2hlbiBzZXQgKGFcbiAgICogcG9zaXRpdmUgZmluaXRlIG51bWJlciksIHRoZSBpbmNpZGVudCBjb3JyZWxhdGlvbiB1c2VzIGl0IGluc3RlYWQgb2YgdGhlXG4gICAqIGdsb2JhbCBgRE9SQV9JTkNJREVOVF9XSU5ET1dfSE9VUlNgLiBUaGUgcm91dGUgcmVzb2x2ZXMgdGhpcyBmcm9tIHRoZSBvcmcnc1xuICAgKiBgZG9yYV9zZXR0aW5nc2Agcm93IChzZWUge0BsaW5rIFJlcG9ydGluZ1NlcnZpY2UuZ2V0UmVwb3J0aW5nU2V0dGluZ3N9KSBhbmRcbiAgICogcGFzc2VzIGl0IGluOyB1bnNldCBmYWxscyBiYWNrIHRvIHRoZSBlbnYgZGVmYXVsdC5cbiAgICovXG4gIGluY2lkZW50V2luZG93SG91cnM/OiBudW1iZXI7XG4gIC8qKiBJQU5BIHRpbWV6b25lIGZvciB0aGUgdHJlbmQncyBidWNrZXRzIChzZWUge0BsaW5rIEJ1Y2tldE9wdGlvbnN9KS4gKi9cbiAgdHo/OiBzdHJpbmc7XG4gIC8qKiBXZWVrIHN0YXJ0IGZvciB0aGUgdHJlbmQncyBidWNrZXRzLiAqL1xuICB3ZWVrU3RhcnQ/OiBXZWVrU3RhcnQ7XG59XG5cbi8qKlxuICogUGVyLW9yZyByZXBvcnRpbmcgc2V0dGluZ3Mgc3VyZmFjZWQgdG8gdGhlIG9yZy1hZG1pbiBwYW5lbC4gYGluY2lkZW50V2luZG93SG91cnNgXG4gKiBpcyB0aGUgaW5jaWRlbnTihpJkZXBsb3kgY29ycmVsYXRpb24gd2luZG93OyBgZXZlbnRSZXRlbnRpb25EYXlzYCAvXG4gKiBgZG9yYVJldGVudGlvbkRheXNgIGFyZSB0aGUgdHdvIHJldGVudGlvbi1zd2VlcCB3aW5kb3dzLiBFYWNoIG92ZXJyaWRlXG4gKiBpcyBgbnVsbGAgd2hlbiB1bnNldCAodGhlIHBhaXJlZCBgZGVmYXVsdCpgIGZpZWxkIHNob3dzIHRoZSBlbnYgZmFsbGJhY2sgYXBwbGllZCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0aW5nU2V0dGluZ3Mge1xuICAvKiogVGhlIG9yZydzIHN0b3JlZCBjb3JyZWxhdGlvbi13aW5kb3cgb3ZlcnJpZGUgaW4gaG91cnMsIG9yIGBudWxsYCB3aGVuIHVuc2V0LiAqL1xuICBpbmNpZGVudFdpbmRvd0hvdXJzOiBudW1iZXIgfCBudWxsO1xuICAvKiogVGhlIGdsb2JhbCBlbnYgZGVmYXVsdCBhcHBsaWVkIHdoZW4gbm8gb3ZlcnJpZGUgaXMgc3RvcmVkLiAqL1xuICBkZWZhdWx0V2luZG93SG91cnM6IG51bWJlcjtcbiAgLyoqIFN0YW5kYXJkLWV2ZW50IHJldGVudGlvbiBvdmVycmlkZSBpbiBkYXlzLCBvciBgbnVsbGAgd2hlbiB1bnNldC4gKi9cbiAgZXZlbnRSZXRlbnRpb25EYXlzOiBudW1iZXIgfCBudWxsO1xuICAvKiogRE9SQS1zb3VyY2UgcmV0ZW50aW9uIG92ZXJyaWRlIGluIGRheXMsIG9yIGBudWxsYCB3aGVuIHVuc2V0LiAqL1xuICBkb3JhUmV0ZW50aW9uRGF5czogbnVtYmVyIHwgbnVsbDtcbiAgLyoqIEdsb2JhbCBzdGFuZGFyZC1ldmVudCByZXRlbnRpb24gZGVmYXVsdCBhcHBsaWVkIHdoZW4gdW5zZXQgKGRheXMpLiAqL1xuICBkZWZhdWx0RXZlbnRSZXRlbnRpb25EYXlzOiBudW1iZXI7XG4gIC8qKiBHbG9iYWwgRE9SQS1zb3VyY2UgcmV0ZW50aW9uIGRlZmF1bHQgYXBwbGllZCB3aGVuIHVuc2V0IChkYXlzKS4gKi9cbiAgZGVmYXVsdERvcmFSZXRlbnRpb25EYXlzOiBudW1iZXI7XG59XG5cbi8qKiBBIHBhcnRpYWwgcmVwb3J0aW5nLXNldHRpbmdzIHdyaXRlICg3KS4gT25seSBwcm92aWRlZCBmaWVsZHMgYXJlXG4gKiAgdXBzZXJ0ZWQ7IG9taXR0ZWQgZmllbGRzIGFyZSBsZWZ0IHVuY2hhbmdlZCAoYW4gb21pdHRlZCByZXRlbnRpb24gZmllbGQga2VlcHNcbiAqICBpdHMgc3RvcmVkIG92ZXJyaWRlIC8gdGhlIGdsb2JhbCBkZWZhdWx0KS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0aW5nU2V0dGluZ3NQYXRjaCB7XG4gIGluY2lkZW50V2luZG93SG91cnM/OiBudW1iZXI7XG4gIGV2ZW50UmV0ZW50aW9uRGF5cz86IG51bWJlcjtcbiAgZG9yYVJldGVudGlvbkRheXM/OiBudW1iZXI7XG59XG5cbi8qKiBPbmUgcm93IG9mIHRoZSBvcmctYWRtaW4gaW5jaWRlbnRzIGxpc3QgKHJlY2VudCBpbmNpZGVudHMgKyBkZXBsb3kgY29ycmVsYXRpb24pLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmNpZGVudExpc3RJdGVtIHtcbiAgaW5jaWRlbnRJZDogc3RyaW5nO1xuICBlbnZpcm9ubWVudDogc3RyaW5nO1xuICBzZXZlcml0eTogc3RyaW5nO1xuICBvcGVuZWRBdDogc3RyaW5nIHwgbnVsbDtcbiAgcmVzb2x2ZWRBdDogc3RyaW5nIHwgbnVsbDtcbiAgY3JlYXRlZEF0OiBzdHJpbmcgfCBudWxsO1xuICAvKiogVHJ1ZSBvbmNlIHRoZSBpbmNpZGVudCBoYXMgYSBgcmVzb2x2ZWRfYXRgLiAqL1xuICByZXNvbHZlZDogYm9vbGVhbjtcbiAgLyoqIFRoZSBjb3JyZWxhdGVkIGRlcGxveSBleGVjdXRpb24gaWQgKG1vc3QgcmVjZW50IHN1Y2Nlc3NmdWwgZGVwbG95IGluLXdpbmRvdyksIG9yIG51bGwuICovXG4gIGNvcnJlbGF0ZWRFeGVjdXRpb25JZDogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIFRoYXQgZGVwbG95J3MgY29tcGxldGlvbiBpbnN0YW50LCBvciBudWxsIHdoZW4gdW5jb3JyZWxhdGVkLiAqL1xuICBkZXBsb3lDb21wbGV0ZWRBdDogc3RyaW5nIHwgbnVsbDtcbn1cblxuLyoqIFJlc3VsdCBvZiB0aGUgd2lyaW5nLXRlc3QgZHJ5LXJ1biBjb3JyZWxhdGlvbiAoe0BsaW5rIFJlcG9ydGluZ1NlcnZpY2UudGVzdEluY2lkZW50Q29ycmVsYXRpb259KS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5jaWRlbnRUZXN0UmVzdWx0IHtcbiAgZW52aXJvbm1lbnQ6IHN0cmluZztcbiAgLyoqIFRoZSBzeW50aGV0aWMgaW5jaWRlbnQncyBvcGVuZWRBdCAobm93LCBJU08pLiAqL1xuICBvcGVuZWRBdDogc3RyaW5nO1xuICAvKiogVGhlIGVmZmVjdGl2ZSBjb3JyZWxhdGlvbiB3aW5kb3cgdXNlZC4gKi9cbiAgd2luZG93SG91cnM6IG51bWJlcjtcbiAgLyoqIFdoZXRoZXIgYSByZWNlbnQgc3VjY2Vzc2Z1bCBkZXBsb3kgdG8gYGVudmlyb25tZW50YCBjb3JyZWxhdGVkLiAqL1xuICBjb3JyZWxhdGVkOiBib29sZWFuO1xuICAvKiogVGhlIGNvcnJlbGF0ZWQgZGVwbG95IGV4ZWN1dGlvbiBpZCwgb3IgbnVsbC4gKi9cbiAgZXhlY3V0aW9uSWQ6IHN0cmluZyB8IG51bGw7XG4gIC8qKiBUaGF0IGRlcGxveSdzIGNvbXBsZXRpb24gaW5zdGFudCwgb3IgbnVsbC4gKi9cbiAgZGVwbG95Q29tcGxldGVkQXQ6IHN0cmluZyB8IG51bGw7XG59XG5cbi8vIERPUkEgcGVyZm9ybWFuY2UgYmFuZHMgKHRocmVzaG9sZHMgZnJvbSB0aGUgRE9SQS9BY2NlbGVyYXRlIHJlcG9ydHMpLiBFYWNoXG4vLyBoZWxwZXIgcmV0dXJucyBgbnVsbGAgd2hlbiB0aGVyZSdzIG5vIHNhbXBsZSB0byBjbGFzc2lmeS5cbi8qKiBEZXBsb3ltZW50IGZyZXF1ZW5jeSBieSBkZXBsb3lzL2RheTogZWxpdGUg4omlMS9kYXksIGhpZ2gg4omlMS93ZWVrLCBtZWRpdW0g4omlMS9tb250aC4gKi9cblxuLyoqXG4gKiBET1JBIG1ldHJpY3Mgb3ZlciBhIFtmcm9tLHRvXSB3aW5kb3csIG9yZy1zY29wZWQgKHNpbmdsZS1vcmcgb3Igcm9sbHVwIHN1YnRyZWUpLlxuICpcbiAqIERFUExPWS1CQVNJUyDigJQgZXZlcnkgbWV0cmljIGRlcml2ZXMgZnJvbSByZWFsIERFUExPWS1TVEFHRSBleGVjdXRpb25zLCBpLmUuXG4gKiBgcGlwZWxpbmVfZXZlbnRzYCByb3dzIHdpdGggYGV2ZW50X3R5cGU9J1NUQUdFJ2AgYW5kIGEgbm9uLW51bGwgYGVudmlyb25tZW50YFxuICogKHRoZSBmb3J3YXJkZXIgc2V0cyBgZW52aXJvbm1lbnRgIG9ubHkgZm9yIHRoZSBzdGFnZXMgYSB1c2VyIGRlY2xhcmVkIGluXG4gKiBgcGIuZGVwbG95c2ApLiBBIENJLW9ubHkgYnVpbGQvdGVzdCBwaXBlbGluZSB3aXRoIG5vIGRlcGxveSBzdGFnZSBwcm9kdWNlcyBOT1xuICogRE9SQSBkYXRhIOKAlCB0aGVyZSBpcyBubyBydW4tYmFzZWQgZmFsbGJhY2suIFRoZSBwYW5lbCBpcyBlbXB0eSB1bnRpbCBkZXBsb3llZFxuICogcGlwZWxpbmVzIHJlLXN5bnRoIHdpdGggdGhlIG5ldyBkZXBsb3kgdGFncyBhbmQgc3RhcnQgZW1pdHRpbmcgZGVwbG95IGV2ZW50cy5cbiAqXG4gKiBgcHJvZHVjdGlvbmAgaXMgdGhlIGhlYWRsaW5lIGVudmlyb25tZW50OyBNVFRSIGlzIG1lYXN1cmVkIHByb2R1Y3Rpb24tb25seS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb3JhTWV0cmljcyB7XG4gIC8qKiBUaGUgW2Zyb20sdG9dIHdpbmRvdyBlY2hvZWQgYmFjayAoZGVwbG95IGBjb21wbGV0ZWRfYXRgIHJhbmdlKS4gKi9cbiAgd2luZG93OiB7IGZyb206IHN0cmluZzsgdG86IHN0cmluZyB9O1xuICAvKiogVGhlIHNjb3BpbmcgYXBwbGllZCAoZWNob2VkIGZvciB0aGUgVUkpOyBgbnVsbGAgd2hlbiB1bnNjb3BlZC4gKi9cbiAgZmlsdGVyczogeyBwaXBlbGluZUlkOiBzdHJpbmcgfCBudWxsOyBlbnZpcm9ubWVudDogc3RyaW5nIHwgbnVsbCB9O1xuICAvKiogVGhlIGhlYWRsaW5lIGVudmlyb25tZW50IG5hbWUgKGBwcm9kdWN0aW9uYCkuICovXG4gIGhlYWRsaW5lOiBzdHJpbmc7XG4gIC8qKiBQZXItZW52aXJvbm1lbnQgREYgLyBDRlIgLyBsZWFkIHRpbWUuIFNvcnRlZCBoZWFkbGluZS1maXJzdCwgdGhlbiBB4oaSWi4gKi9cbiAgZW52aXJvbm1lbnRzOiBEb3JhRW52TWV0cmljc1tdO1xuICAvKipcbiAgICogTWVhbiBUaW1lIFRvIFJlc3RvcmUg4oCUIFBST0RVQ1RJT04tT05MWSwgZnJvbSBgZGVwbG95bWVudF9vdXRjb21lc2AuXG4gICAqIGBtZWRpYW4ocmVzdG9yZWQuYXQg4oiSIGRlcGxveWVkLmNvbXBsZXRlZF9hdClgIG92ZXIgcmVzdG9yZWQgcHJvZHVjdGlvblxuICAgKiBpbmNpZGVudHMgKGRlbHRhcyBjbGFtcGVkIOKJpTApLiBgaW5jaWRlbnRzYCBjb3VudHMgcHJvZHVjdGlvbiBkZXBsb3lzIG1hcmtlZFxuICAgKiBmYWlsZWQ7IGByZXN0b3JlZGAgY291bnRzIHRob3NlIHRoYXQgcmVjb3ZlcmVkOyBgbWVkaWFuU2Vjb25kc2AgaXMgbnVsbCB3aGVuXG4gICAqIG5vIHJlc3RvcmVkIGluY2lkZW50IGhhcyBhIHJlc29sdmFibGUgZGVwbG95IHRpbWUuXG4gICAqL1xuICBtZWFuVGltZVRvUmVzdG9yZToge1xuICAgIGluY2lkZW50czogbnVtYmVyO1xuICAgIHJlc3RvcmVkOiBudW1iZXI7XG4gICAgbWVkaWFuU2Vjb25kczogbnVtYmVyIHwgbnVsbDtcbiAgICAvKiogOTB0aC85NXRoIHBlcmNlbnRpbGUgcmVjb3ZlcnksIG92ZXIgdGhlIHNhbWUgc2FtcGxlIGFzIHRoZSBtZWRpYW4uIFRoZVxuICAgICAqICBtZWRpYW4gYWxvbmUgaGlkZXMgdGhlIGxvbmcgdGFpbCB0aGF0IGFjdHVhbGx5IGRlZmluZXMgYW4gb3V0YWdlJ3MgY29zdDtcbiAgICAgKiAgYG51bGxgIHdoZW4gbm8gcmVjb3ZlcnkgZ2FwIHdhcyBvYnNlcnZlZC4gKi9cbiAgICBwOTBTZWNvbmRzOiBudW1iZXIgfCBudWxsO1xuICAgIHA5NVNlY29uZHM6IG51bWJlciB8IG51bGw7XG4gICAgbGV2ZWw6IERvcmFMZXZlbDtcbiAgfTtcbiAgLyoqXG4gICAqIENvdmVyYWdlIHJlY29uY2lsaWF0aW9uIOKAlCByZWdpc3RlcmVkIHBpcGVsaW5lcyB3aXRoIG5vIG9ic2VydmVkIGRlcGxveSBpblxuICAgKiB0aGUgd2luZG93LiBBIGhpZ2ggYHdpdGhvdXREZXBsb3lzYCBjb3VudCBtZWFucyBET1JBIGlzIGJsaW5kIHRvIG1vc3Qgb2YgdGhlXG4gICAqIGZsZWV0IChwaXBlbGluZXMgdGhhdCBoYXZlbid0IHJlLXN5bnRoZWQgd2l0aCBkZXBsb3kgdGFncywgb3IgZG9uJ3QgZGVwbG95KS5cbiAgICovXG4gIGNvdmVyYWdlOiB7XG4gICAgLyoqIFBpcGVsaW5lcyBpbiB0aGUgcmVnaXN0cnkgKG9yZy1zY29wZWQpLiAqL1xuICAgIHJlZ2lzdGVyZWQ6IG51bWJlcjtcbiAgICAvKiogUmVnaXN0ZXJlZCBwaXBlbGluZXMgd2l0aCDiiaUxIGRlcGxveS1zdGFnZSBleGVjdXRpb24gaW4gdGhlIHdpbmRvdy4gKi9cbiAgICBkZXBsb3lpbmc6IG51bWJlcjtcbiAgICAvKiogcmVnaXN0ZXJlZCDiiJIgZGVwbG95aW5nIChjbGFtcGVkIOKJpTApLiAqL1xuICAgIHdpdGhvdXREZXBsb3lzOiBudW1iZXI7XG4gIH07XG59XG5cbi8qKiBQZXItZW52aXJvbm1lbnQgRE9SQSBtZXRyaWNzIChkZXBsb3ltZW50IGZyZXF1ZW5jeSwgQ0ZSLCBsZWFkIHRpbWUpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb3JhRW52TWV0cmljcyB7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG4gIC8qKiBEZXBsb3ltZW50IEZyZXF1ZW5jeSDigJQgc3VjY2Vzc2Z1bCBkZXBsb3ktc3RhZ2UgZXhlY3V0aW9ucyBmb3IgdGhpcyBlbnYuICovXG4gIGRlcGxveW1lbnRGcmVxdWVuY3k6IHtcbiAgICBkZXBsb3ltZW50czogbnVtYmVyO1xuICAgIHBlckRheTogbnVtYmVyO1xuICAgIGxldmVsOiBEb3JhTGV2ZWw7XG4gIH07XG4gIC8qKlxuICAgKiBDaGFuZ2UgRmFpbHVyZSBSYXRlIOKAlCB0d28tY2xhc3M6XG4gICAqIGAoZGVwbG95VGltZUZhaWx1cmVzICsgcG9zdERlcGxveUZhaWx1cmVzKSAvIGF0dGVtcHRzYC5cbiAgICogLSBgZGVwbG95VGltZUZhaWx1cmVzYCDigJQgZGVwbG95IHN0YWdlIGByZXN1bHQ9ZmFpbGVkYCAoZnJvbSBldmVudHMpLlxuICAgKiAtIGBwb3N0RGVwbG95RmFpbHVyZXNgIOKAlCBhIHN1Y2Nlc3NmdWwgZGVwbG95IGxhdGVyIG1hcmtlZCBmYWlsZWQgaW4gcHJvZFxuICAgKiAgIChmcm9tIGBkZXBsb3ltZW50X291dGNvbWVzYCkuXG4gICAqIC0gYGF0dGVtcHRzYCDigJQgYWxsIHRlcm1pbmFsIGRlcGxveS1zdGFnZSBhdHRlbXB0cyAoc3VjY2VlZGVkICsgZmFpbGVkKS5cbiAgICovXG4gIGNoYW5nZUZhaWx1cmVSYXRlOiB7XG4gICAgcmF0ZTogbnVtYmVyO1xuICAgIGRlcGxveVRpbWVGYWlsdXJlczogbnVtYmVyO1xuICAgIHBvc3REZXBsb3lGYWlsdXJlczogbnVtYmVyO1xuICAgIGF0dGVtcHRzOiBudW1iZXI7XG4gICAgbGV2ZWw6IERvcmFMZXZlbDtcbiAgfTtcbiAgLyoqXG4gICAqIExlYWQgVGltZSDigJQgTUVBU1VSRUQ6IGBtZWRpYW4oZGVwbG95X2NvbXBsZXRlZCDiiJIgb2xkZXN0X2NvbW1pdF90aW1lKWAgb3ZlclxuICAgKiBzdWNjZXNzZnVsIGRlcGxveXMgd2l0aCBhIHJlc29sdmFibGUgY29tbWl0IHRpbWVzdGFtcCAoZGVsdGFzIGNsYW1wZWQg4omlMCkuXG4gICAqIGBtZWRpYW5TZWNvbmRzYCBpcyBgbnVsbGAgKD0gdW5rbm93bikgd2hlbiBubyBzdWNjZXNzZnVsIGRlcGxveSBpbiB0aGlzIGVudlxuICAgKiBjYXJyaWVkIGEgYGNvbW1pdF90aW1lc3RhbXBgLiBUaGUgb2xkIG1lZGlhbi1ydW4tZHVyYXRpb24gcHJveHkgaXMgcmVtb3ZlZC5cbiAgICpcbiAgICogYHA5MFNlY29uZHNgL2BwOTVTZWNvbmRzYCBjb21lIGZyb20gdGhlIHNhbWUgc2FtcGxlLiBUaGUgbGV2ZWwgaXMgc2NvcmVkIG9mZlxuICAgKiB0aGUgTUVESUFOIG9ubHksIHNvIGFkZGluZyB0aGUgdGFpbHMgY2Fubm90IG1vdmUgYSB0ZWFtJ3MgRE9SQSBiYW5kLlxuICAgKi9cbiAgbGVhZFRpbWU6IHtcbiAgICAvKiogU3VjY2Vzc2Z1bCBkZXBsb3lzIHdpdGggYSByZXNvbHZhYmxlIGNvbW1pdCB0aW1lICh0aGUgbWVkaWFuIHNhbXBsZSkuICovXG4gICAgZGVwbG95bWVudHM6IG51bWJlcjtcbiAgICBtZWRpYW5TZWNvbmRzOiBudW1iZXIgfCBudWxsO1xuICAgIHA5MFNlY29uZHM6IG51bWJlciB8IG51bGw7XG4gICAgcDk1U2Vjb25kczogbnVtYmVyIHwgbnVsbDtcbiAgICBsZXZlbDogRG9yYUxldmVsO1xuICB9O1xufVxuXG4vKiogT25lIGludGVydmFsIGJ1Y2tldCBvZiB0aGUgRE9SQSB0cmVuZCAoZGVwbG95IGZyZXF1ZW5jeSArIGNoYW5nZSBmYWlsdXJlKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9yYVRyZW5kUG9pbnQge1xuICAvKiogQnVja2V0IHN0YXJ0IChEQVRFX1RSVU5DIG9mIHRoZSBkZXBsb3kgYGNvbXBsZXRlZF9hdGApLCBJU08gdGV4dC4gKi9cbiAgcGVyaW9kOiBzdHJpbmc7XG4gIC8qKiBTdWNjZXNzZnVsIGRlcGxveS1zdGFnZSBleGVjdXRpb25zIGluIHRoZSBidWNrZXQuICovXG4gIGRlcGxveW1lbnRzOiBudW1iZXI7XG4gIC8qKiBGYWlsZWQgZGVwbG95LXN0YWdlIGV4ZWN1dGlvbnMgaW4gdGhlIGJ1Y2tldC4gKi9cbiAgZmFpbGVkOiBudW1iZXI7XG4gIC8qKiBzdWNjZWVkZWQgKyBmYWlsZWQgaW4gdGhlIGJ1Y2tldCAoZGVwbG95IGF0dGVtcHRzKS4gKi9cbiAgdG90YWw6IG51bWJlcjtcbiAgLyoqIGZhaWxlZC90b3RhbCBhcyBhIHBlcmNlbnQgKDAgd2hlbiB0b3RhbCBpcyAwKS4gRGVwbG95LXRpbWUgQ0ZSIG9ubHkuICovXG4gIGNoYW5nZUZhaWx1cmVQY3Q6IG51bWJlcjtcbn1cblxuLyoqIFBlci1zdGFnZSBidWlsZC1oZWFsdGggbWV0cmljcyBmb3Igb25lIHBpcGVsaW5lIG92ZXIgYSB3aW5kb3cuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkSGVhbHRoU3RhZ2Uge1xuICBzdGFnZTogc3RyaW5nO1xuICAvKiogVGVybWluYWwgc3RhZ2UgcnVucyAoc3VjY2VlZGVkICsgZmFpbGVkKSBpbiB0aGUgd2luZG93LiAqL1xuICBydW5zOiBudW1iZXI7XG4gIHN1Y2Nlc3NlczogbnVtYmVyO1xuICBmYWlsdXJlczogbnVtYmVyO1xuICAvKiogc3VjY2Vzc2VzIC8gcnVucyBhcyBhIHBlcmNlbnQgKDAgd2hlbiBydW5zIGlzIDApLiAqL1xuICBzdWNjZXNzUmF0ZTogbnVtYmVyO1xuICAvKiogRHVyYXRpb24gcGVyY2VudGlsZXMgb3ZlciB0aGUgc3RhZ2UncyB0ZXJtaW5hbCBydW5zOyBudWxsIHdoZW4gbm8gZHVyYXRpb25zLiAqL1xuICBwNTBNczogbnVtYmVyIHwgbnVsbDtcbiAgcDkwTXM6IG51bWJlciB8IG51bGw7XG4gIHA5OU1zOiBudW1iZXIgfCBudWxsO1xufVxuXG4vKipcbiAqIFBlci1waXBlbGluZSBidWlsZC1oZWFsdGggYnJlYWtkb3duLiBTdGFuZGFyZCByZXBvcnRpbmcgKE5PVFxuICogYGFkdmFuY2VkX3JlcG9ydGluZ2AtZ2F0ZWQpIOKAlCBwZXItc3RhZ2Ugc3VjY2VzcyByYXRlICsgdGltaW5nIHBlcmNlbnRpbGVzLCB3aXRoXG4gKiB0b3RhbHMgc3VtbWVkIGFjcm9zcyBzdGFnZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRIZWFsdGgge1xuICBzdGFnZXM6IEJ1aWxkSGVhbHRoU3RhZ2VbXTtcbiAgdG90YWxzOiB7IHJ1bnM6IG51bWJlcjsgZmFpbHVyZXM6IG51bWJlcjsgZmFpbHVyZVJhdGU6IG51bWJlciB9O1xufVxuXG4vKiogUG9zdC1kZXBsb3kgaW5jaWRlbnQgbWFya2VyIGFjY2VwdGVkIGJ5IGBSZXBvcnRpbmdTZXJ2aWNlLnJlY29yZEluY2lkZW50YC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5jaWRlbnRJbnB1dCB7XG4gIGluY2lkZW50SWQ6IHN0cmluZztcbiAgZW52aXJvbm1lbnQ6IHN0cmluZztcbiAgb3BlbmVkQXQ6IHN0cmluZztcbiAgcmVzb2x2ZWRBdD86IHN0cmluZztcbiAgc2V2ZXJpdHk6IHN0cmluZztcbn1cblxuLyoqIFRoZSBwZXJzaXN0ZWQgaW5jaWRlbnQgc3RhdGUgYXMgYW4gYXVkaXQgcm93IHJlY29yZHMgaXQgKHNjcnViYmVkIHZhbHVlcywgSVNPIGluc3RhbnRzKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5jaWRlbnRTdGF0ZSB7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG4gIG9wZW5lZEF0OiBzdHJpbmcgfCBudWxsO1xuICByZXNvbHZlZEF0OiBzdHJpbmcgfCBudWxsO1xuICBzZXZlcml0eTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFdoYXQgYFJlcG9ydGluZ1NlcnZpY2UucmVjb3JkSW5jaWRlbnRgIGRpZC4gYGNoYW5nZWRgIGlzIGZhbHNlIGZvciBhIHNlbmRlcidzXG4gKiByZXBlYXQtaW50ZXJ2YWwgcmUtcG9zdCBvZiBhbiB1bmNoYW5nZWQgYWxlcnQsIHNvIHRoZSByb3V0ZSByZWNvcmRzIGFuIGF1ZGl0XG4gKiByb3cgb25seSBmb3IgYW4gaW5jaWRlbnQgdGhhdCBpcyBuZXcgb3IgYWN0dWFsbHkgbW92ZWQgKG9wZW5lZCwgcmUtb3BlbmVkLFxuICogcmVzb2x2ZWQsIHJlLXJhbmtlZCkg4oCUIGEgd2ViaG9vayByZS1maXJpbmcgZXZlcnkgZmV3IGhvdXJzIG11c3Qgbm90IGJ1cnkgdGhlXG4gKiB0cmFpbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmNpZGVudFdyaXRlIHtcbiAgLyoqIFRoZSBzdG9yZWQgKHNjcnViYmVkKSBpbmNpZGVudCBpZC4gKi9cbiAgaW5jaWRlbnRJZDogc3RyaW5nO1xuICBjcmVhdGVkOiBib29sZWFuO1xuICBjaGFuZ2VkOiBib29sZWFuO1xuICBiZWZvcmU6IEluY2lkZW50U3RhdGUgfCBudWxsO1xuICBhZnRlcjogSW5jaWRlbnRTdGF0ZTtcbn1cblxuLyoqIFdoYXQgYFJlcG9ydGluZ1NlcnZpY2UucmVjb3JkRGVwbG95bWVudE91dGNvbWVgIHJlcGxhY2VkOiB0aGUgcHJpb3IgbWFya2VyIG9mIHRoZSBzYW1lIG91dGNvbWUsIGlmIGFueS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95bWVudE91dGNvbWVXcml0ZSB7XG4gIHByZXZpb3VzOiB7IGF0OiBzdHJpbmcgfCBudWxsOyBlbnZpcm9ubWVudDogc3RyaW5nIHwgbnVsbCB9IHwgbnVsbDtcbn1cblxuLyoqIEV2ZW50IHBheWxvYWQgYWNjZXB0ZWQgYnkgYFJlcG9ydGluZ1NlcnZpY2UuaW5nZXN0RXZlbnRzYC4gTWlycm9ycyB0aGUgcm91dGUncyBab2Qgc2hhcGUuICovXG5leHBvcnQgaW50ZXJmYWNlIEluZ2VzdEV2ZW50IHtcbiAgLyoqIFN0YWJsZSBwaXBlbGluZSBpZCB0aGUgZXZlbnRzIExhbWJkYSByZWFkIGZyb20gdGhlIGBwYi5waXBlbGluZS1pZGBcbiAgICogIHRhZyAoPSB0aGUgcGxhdGZvcm0gcGlwZWxpbmVJZCkuIFRoZSByZWdpc3RyeSBqb2luIGtleS4gKi9cbiAgcGlwZWxpbmVJZDogc3RyaW5nO1xuICBldmVudFNvdXJjZTogJ2NvZGVwaXBlbGluZScgfCAnY29kZWJ1aWxkJyB8ICdwbHVnaW4tYnVpbGQnO1xuICBldmVudFR5cGU6ICdQSVBFTElORScgfCAnU1RBR0UnIHwgJ0FDVElPTicgfCAnQlVJTEQnO1xuICBzdGF0dXM6IHN0cmluZztcbiAgZXhlY3V0aW9uSWQ/OiBzdHJpbmc7XG4gIHN0YWdlTmFtZT86IHN0cmluZztcbiAgYWN0aW9uTmFtZT86IHN0cmluZztcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIGZhaWx1cmUgcmVhc29uIChBY3Rpb24gZXZlbnRzKS4gKi9cbiAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICBzdGFydGVkQXQ/OiBzdHJpbmc7XG4gIGNvbXBsZXRlZEF0Pzogc3RyaW5nO1xuICBkdXJhdGlvbk1zPzogbnVtYmVyO1xuICAvKiogU291cmNlIGNvbW1pdCBpZCBvZiB0aGUgY2hhbmdlIGJlaW5nIHNoaXBwZWQgKERPUkEgZGVwbG95IGF0dHJpYnV0aW9uKS4gKi9cbiAgY29tbWl0U2hhPzogc3RyaW5nO1xuICAvKiogU291cmNlIHJlZi9icmFuY2ggKERPUkEgZGVwbG95IGF0dHJpYnV0aW9uKS4gKi9cbiAgY29tbWl0UmVmPzogc3RyaW5nO1xuICAvKiogRGVwbG95IHRhcmdldCAoZS5nLiBcInByb2R1Y3Rpb25cIikuIEl0cyBwcmVzZW5jZSBvbiBhIFNUQUdFL0FDVElPTiBldmVudFxuICAgKiAgbWFya3MgYSByZWFsIGRlcGxveW1lbnQgKGRlcml2ZWQgc2VydmVyLXNpZGUg4oCUIHRoZXJlIGlzIG5vIGBpc0RlcGxveWApLiAqL1xuICBlbnZpcm9ubWVudD86IHN0cmluZztcbiAgLyoqIE9sZGVzdCB1bnNoaXBwZWQgY29tbWl0IHRpbWVzdGFtcCAoSVNPIDg2MDEpIGZvciBtZWFzdXJlZCBsZWFkIHRpbWUuICovXG4gIGNvbW1pdFRpbWVzdGFtcD86IHN0cmluZztcbiAgLyoqIE51bWJlciBvZiBjb21taXRzIHNoaXBwZWQgaW4gdGhpcyBjaGFuZ2UgKOKJpTEpLiAqL1xuICBjb21taXRDb3VudD86IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBFdmVudEJyaWRnZSBldmVudCBgaWRgIHRoZSBmb3J3YXJkZXIgcmVjZWl2ZWQgdGhpcyBzdGF0ZSBjaGFuZ2UgYXMuXG4gICAqIEFXUy1hc3NpZ25lZCBhbmQgdW5pcXVlIHBlciBkZWxpdmVyeSBzb3VyY2UgZXZlbnQsIHNvIGl0IGlzIHRoZSBzdHJvbmdlc3RcbiAgICogZGVkdXAga2V5IHRoZXJlIGlzIChgZXZlbnRfc291cmNlX2V2ZW50X2lkeGApIGFuZCB0aGUgdGhyZWFkIGFuIGF1ZGl0IG9yXG4gICAqIERPUkEgcm93IGZvbGxvd3MgYmFjayB0byB0aGUgZXhhY3QgQVdTIGV2ZW50LiBBYnNlbnQgZm9yIHBsdWdpbi1idWlsZFxuICAgKiBldmVudHMsIHdoaWNoIGhhdmUgbm8gRXZlbnRCcmlkZ2Ugb3JpZ2luLlxuICAgKi9cbiAgc291cmNlRXZlbnRJZD86IHN0cmluZztcbiAgLyoqIFRoZSBTUVMgbWVzc2FnZSBpZCBpdCBhcnJpdmVkIGluIChmb2xkZWQgaW50byBgZGV0YWlsLnNvdXJjZU1lc3NhZ2VJZGA7IG5vdCBhIGNvbHVtbikuICovXG4gIHNvdXJjZU1lc3NhZ2VJZD86IHN0cmluZztcbiAgZGV0YWlsPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8qKlxuICogUGVyLWV2ZW50IG1ldHJpYyBkZXNjcmlwdG9yIGVtaXR0ZWQgKHZpYSB0aGUge0BsaW5rIFJlcG9ydGluZ1NlcnZpY2UuaW5nZXN0RXZlbnRzfVxuICogYG9uTWV0cmljYCBob29rKSBmb3IgZWFjaCBSRUdJU1RFUkVEIHRlcm1pbmFsIGRlcGxveS9zdGFnZSBldmVudCwgc28gdGhlIHJvdXRlXG4gKiBsYXllciBjYW4gZmFuIHRoZW0gaW50byBQcm9tZXRoZXVzIGNvdW50ZXJzIHdpdGhvdXQgcGlwZWxpbmUtZGF0YSBpbXBvcnRpbmdcbiAqIGFwaS1zZXJ2ZXIncyBtZXRyaWNzIHJlZ2lzdHJ5LiBgcmVzdWx0YCBpcyB0aGUgdGVybWluYWwgb3V0Y29tZTsgYGVudmlyb25tZW50YFxuICogaXMgbm9uLW51bGwgb25seSBmb3IgYSBkZXBsb3ktc3RhZ2UgZXZlbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhZ2VJbmdlc3RNZXRyaWMge1xuICBraW5kOiAnc3RhZ2UnO1xuICBwaXBlbGluZUlkOiBzdHJpbmc7XG4gIG9yZ0lkOiBzdHJpbmc7XG4gIHN0YWdlOiBzdHJpbmc7XG4gIGVudmlyb25tZW50OiBzdHJpbmcgfCBudWxsO1xuICByZXN1bHQ6ICdzdWNjZWVkZWQnIHwgJ2ZhaWxlZCc7XG59XG5cbi8qKlxuICogT25lIHRlcm1pbmFsIENvZGVCdWlsZCBBQ1RJT04ncyBjb21wdXRlIGNvbnN1bXB0aW9uIChQaGFzZSA0LCBtZWFzdXJlbWVudFxuICogaGFsZikuXG4gKlxuICogYGNyZWRpdHNgIGlzIE5VTEwgcmF0aGVyIHRoYW4gMCB3aGVuIHRoZSBhY3Rpb24gY291bGQgbm90IGJlIG1lYXN1cmVkIOKAlCBub1xuICogZGVjbGFyZWQgc3RhcnQgdGltZSwgb3IgYSBjb21wdXRlIHNpemUgdGhlIGZvcndhcmRlciBjb3VsZCBub3QgcmVhZC4gVGhlXG4gKiBkaXN0aW5jdGlvbiBpcyB0aGUgd2hvbGUgdmFsdWUgb2YgdGhpcyBtZXRyaWM6IHplcm8gd291bGQgbWFrZSBhIGNvdmVyYWdlIGdhcFxuICogbG9vayBsaWtlIGlkbGVuZXNzLCBhbmQgYSB0aWVyIGxhZGRlciByZS1kZXJpdmVkIGFnYWluc3QgYW4gdW5rbm93blxuICogZGVub21pbmF0b3IgaXMgYSByZXByaWNpbmcgbm9ib2R5IGNhbiBkZWZlbmQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcHV0ZUluZ2VzdE1ldHJpYyB7XG4gIGtpbmQ6ICdjb21wdXRlJztcbiAgcGlwZWxpbmVJZDogc3RyaW5nO1xuICBvcmdJZDogc3RyaW5nO1xuICBjb21wdXRlVHlwZTogc3RyaW5nIHwgbnVsbDtcbiAgZHVyYXRpb25NczogbnVtYmVyIHwgbnVsbDtcbiAgY3JlZGl0czogbnVtYmVyIHwgbnVsbDtcbn1cblxuLyoqXG4gKiBPbmUgdGVybWluYWwgbWFuYWdlZC10b29sY2hhaW4gcnVuIChkb2NzL3BsYW5zL2Jvb3RzdHJhcC1pbWFnZS12ZXJzaW9uaW5nLm1kXG4gKiDCpzcpOiBhIGBzeW50aGAgb3IgYHNlbGYtbXV0YXRpb25gIGFjdGlvbiB3aG9zZSByb3cgd2FzIHN0YW1wZWQgd2l0aCB0aGVcbiAqIHJlbGVhc2UgZnJvbSB0aGUgcGxhdGZvcm0ncyBkZXBsb3llZCBtYW5pZmVzdC4gQUxFUlRJTkcgT05MWSDigJQgdGhlIGNhbmFyeVxuICogZ2F0ZSBhbmQgdGhlIEFmZmVjdGVkIHZpZXcgcmVhZCB0aGUgcm93cywgbmV2ZXIgdGhpcyBtZXRyaWMuXG4gKlxuICogYHBsYXRmb3JtRGVmYXVsdFJlbGVhc2VgIGlzIHRoZSBkZWZhdWx0IGF0IGluZ2VzdCB0aW1lLCBmb3IgdGhlIGFsZXJ0J3NcbiAqIGJhc2VsaW5lIChgcGlwZWxpbmVfdG9vbGNoYWluX3BsYXRmb3JtX2RlZmF1bHRfc2Vlbl90aW1lc3RhbXBfc2Vjb25kc2ApLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRvb2xjaGFpbkluZ2VzdE1ldHJpYyB7XG4gIGtpbmQ6ICd0b29sY2hhaW4nO1xuICB0b29sY2hhaW5SZWxlYXNlOiBzdHJpbmc7XG4gIGFjdGlvbjogJ3N5bnRoJyB8ICdzZWxmLW11dGF0aW9uJztcbiAgb3V0Y29tZTogJ3N1Y2NlZWRlZCcgfCAnZmFpbGVkJztcbiAgcGxhdGZvcm1EZWZhdWx0UmVsZWFzZTogc3RyaW5nIHwgbnVsbDtcbn1cblxuLyoqIFdoYXQgdGhlIGluZ2VzdCBmYW5zIG91dCB0byBpdHMgY2FsbGVyJ3MgbWV0cmljIHJlZ2lzdHJ5LiBEaXNjcmltaW5hdGVkLCBzb1xuICogIGEgbmV3IGtpbmQgY2Fubm90IGJlIHNpbGVudGx5IGNvdW50ZWQgYXMgYSBzdGFnZSBvdXRjb21lLiAqL1xuZXhwb3J0IHR5cGUgSW5nZXN0TWV0cmljID0gU3RhZ2VJbmdlc3RNZXRyaWMgfCBDb21wdXRlSW5nZXN0TWV0cmljIHwgVG9vbGNoYWluSW5nZXN0TWV0cmljO1xuXG4vKiogQ291bnRzICsgdGhlIChwb3NzaWJseSB0cnVuY2F0ZWQpIGxpc3Qgb2YgdW5yZWdpc3RlcmVkIHBpcGVsaW5lIGlkcyB0aGUgY2FsbGVyIGNhbiBsb2cuICovXG5leHBvcnQgaW50ZXJmYWNlIEluZ2VzdFJlc3VsdCB7XG4gIGluc2VydGVkOiBudW1iZXI7XG4gIHNraXBwZWQ6IG51bWJlcjtcbiAgdW5yZWdpc3RlcmVkUGlwZWxpbmVJZHM6IHN0cmluZ1tdO1xuICAvKipcbiAgICogRXZlcnkgb3JnIHdpdGggYXQgbGVhc3Qgb25lIHJvdyBpbiB0aGlzIGJhdGNoLCBkZWR1cGVkLlxuICAgKlxuICAgKiBBbHJlYWR5IGNvbXB1dGVkIGZvciBwb3N0LWNvbW1pdCBjYWNoZSBpbnZhbGlkYXRpb247IHN1cmZhY2VkIGJlY2F1c2UgdGhlXG4gICAqIGluZ2VzdCByb3V0ZSBuZWVkcyB0aGUgc2FtZSBzZXQgdG8gcHVzaCBpdHMgbGl2ZSBTU0UgZnJhbWUuIFRoZSBzdGFnZS1tZXRyaWNcbiAgICogaG9vayBjYW4ndCBkcml2ZSB0aGF0IGZhbi1vdXQ6IGl0IG9ubHkgZmlyZXMgZm9yIFNUQUdFIGV2ZW50cywgc28gYSBiYXRjaCBvZlxuICAgKiBQSVBFTElORSBvciBCVUlMRCBldmVudHMgd291bGQgbGFuZCByb3dzIGFuZCBwdXNoIG5vIGZyYW1lIGF0IGFsbC5cbiAgICovXG4gIGFmZmVjdGVkT3Jnczogc3RyaW5nW107XG4gIC8qKlxuICAgKiBFdmVudHMgZHJvcHBlZCBiZWNhdXNlIHRoZSBwaXBlbGluZSB0aGV5IG5hbWUgYmVsb25ncyB0byBhbiBvcmcgdGhlIGNhbGxlclxuICAgKiBtYXkgbm90IHdyaXRlIGZvci4gU3VyZmFjZWQgc28gdGhlIHJvdXRlIGNhbiBsb2cgYW5kIGNvdW50IHRoZW06IGEgbm9uLXplcm9cbiAgICogdmFsdWUgaXMgZWl0aGVyIGEgbWlzcm91dGVkIHByb2R1Y2VyIG9yIGFuIGF0dGVtcHQgdG8gaW5qZWN0IGV2ZW50cyBpbnRvXG4gICAqIGFub3RoZXIgdGVuYW50J3MgcmVwb3J0cywgYW5kIGJvdGggbmVlZCB0byBiZSB2aXNpYmxlLlxuICAgKi9cbiAgZHJvcHBlZEZvcmVpZ25Pcmc6IG51bWJlcjtcbiAgLyoqXG4gICAqIEV2ZW50cyBkcm9wcGVkIGJlY2F1c2UgdGhlaXIgdGltZXN0YW1wcyBhcmUgaW1wb3NzaWJsZSDigJQgZGF0ZWQgaW4gdGhlIGZ1dHVyZSxcbiAgICogb3IgY29tcGxldGluZyBiZWZvcmUgdGhleSBzdGFydGVkLiBSZWplY3RlZCBoZXJlIHJhdGhlciB0aGFuIGNsYW1wZWQgbGF0ZXI6XG4gICAqIGEgZGVwbG95IHdob3NlIGR1cmF0aW9uIG9yIGxlYWQgdGltZSBpcyBuZWdhdGl2ZSBzaWxlbnRseSBza2V3cyBkZXBsb3ltZW50XG4gICAqIGZyZXF1ZW5jeSwgY2hhbmdlLWZhaWx1cmUgcmF0ZSBhbmQgbGVhZCB0aW1lIGZvciB0aGUgd2hvbGUgb3JnLCBhbmQgYSBjbGFtcFxuICAgKiB0byAwIG1ha2VzIGEgYmFkIGNsb2NrIGxvb2sgbGlrZSBhbiBpbnN0YW50IGRlcGxveS5cbiAgICovXG4gIGRyb3BwZWRJbnZhbGlkVGltZTogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIHJlZ2lzdGVyZWQgcGlwZWxpbmUgaWRzIHdob3NlIGV2ZW50cyB3ZXJlIGRyb3BwZWQgYXMgRk9SRUlHTi1PUkcg4oCUIHRoZVxuICAgKiB0ZW5hbmN5IHJlZnVzYWwgdGhlIHJvdXRlIGF1ZGl0cyBhcyBhIGZhaWx1cmUuIElkcyBvbmx5IChuZXZlciB0aGUgb3JnIHRoZXlcbiAgICogcmVzb2x2ZWQgdG86IHRoYXQgd291bGQgdGVsbCBhIHByb2JlciB3aGljaCB0ZW5hbnQgb3ducyB0aGUgcGlwZWxpbmUpLlxuICAgKi9cbiAgZm9yZWlnblBpcGVsaW5lSWRzOiBzdHJpbmdbXTtcbiAgLyoqIERpc3RpbmN0IGV4ZWN1dGlvbiBpZHMgb2YgdGhlIHJvd3MgdGhhdCBhY3R1YWxseSBsYW5kZWQgKHRoZSBhdWRpdCdzIGNvcnJlbGF0aW9uIHNldCkuICovXG4gIGluc2VydGVkRXhlY3V0aW9uSWRzOiBzdHJpbmdbXTtcbiAgLyoqIERpc3RpbmN0IHBpcGVsaW5lIGlkcyBvZiB0aGUgcm93cyB0aGF0IGFjdHVhbGx5IGxhbmRlZC4gKi9cbiAgaW5zZXJ0ZWRQaXBlbGluZUlkczogc3RyaW5nW107XG59XG5cbi8qKlxuICogV2hvIGlzIHdyaXRpbmcsIGZvciB0aGUgaW5nZXN0IHRlbmFuY3kgY2hlY2suXG4gKlxuICogYC9yZXBvcnRzL2V2ZW50c2AgcmVzb2x2ZXMgYW4gZXZlbnQncyBvcmcgZnJvbSB0aGUgcGlwZWxpbmUgcmVnaXN0cnksIHNvXG4gKiB3aXRob3V0IHRoaXMgYSB0b2tlbiBob2xkaW5nIGByZXBvcnRpbmc6aW5nZXN0YCBjb3VsZCBwb3N0IGV2ZW50cyBmb3IgQU5ZXG4gKiBwaXBlbGluZSBpZCBhbmQgaGF2ZSB0aGVtIGF0dHJpYnV0ZWQgdG8gdGhhdCBwaXBlbGluZSdzIG9yZyDigJQgb25lIG9yZ1xuICogaW5qZWN0aW5nIHJvd3MgaW50byBhbm90aGVyJ3MgcmVwb3J0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmdlc3RDYWxsZXIge1xuICAvKipcbiAgICogT3JnIGlkcyB0aGlzIGNhbGxlciBtYXkgd3JpdGUgZXZlbnRzIGZvcjogaXRzIG93biwgcGx1cyBkZXNjZW5kYW50IHRlYW1zLlxuICAgKiBSZXNvbHZlZCBieSB0aGUgcm91dGUuIEFuIGV2ZW50IHdob3NlIHBpcGVsaW5lIGJlbG9uZ3MgdG8gYW55dGhpbmcgZWxzZSBpc1xuICAgKiBkcm9wcGVkLlxuICAgKi9cbiAgYWxsb3dlZE9yZ0lkczogcmVhZG9ubHkgc3RyaW5nW107XG4gIC8qKlxuICAgKiBBIHZlcmlmaWVkIElOVEVSTkFMIHNlcnZpY2UgcHJpbmNpcGFsICh0aGUgcGx1Z2luIHNlcnZpY2UgcG9zdHMgcGx1Z2luLWJ1aWxkXG4gICAqIGV2ZW50cyBmb3IgZXZlcnkgdGVuYW50KS4gU3VjaCBjYWxsZXJzIGFyZSBleGVtcHQ6IHRoZXkgaG9sZCBhIHNpZ25lZFxuICAgKiBzZXJ2aWNlIGtleSBubyBleHRlcm5hbCBjbGllbnQgY2FuIG1pbnQsIGFuZCB0aGV5IGxlZ2l0aW1hdGVseSB3cml0ZVxuICAgKiBjcm9zcy10ZW5hbnQuIE5ldmVyIHNldCB0aGlzIGZyb20gYW55dGhpbmcgYSByZXF1ZXN0IGJvZHkgY2FuIGluZmx1ZW5jZS5cbiAgICovXG4gIGNyb3NzVGVuYW50PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBhY2Nlc3Mga2V5IChzZXJ2aWNlLWFjY291bnQgLyBQQVQga2V5IGlkKSB0aGUgaW5nZXN0IHRva2VuIHdhcyBleGNoYW5nZWRcbiAgICogZnJvbSwgc3RhbXBlZCBvbiBldmVyeSByb3cgYXMgYGluZ2VzdF9rZXlfaWRgIHNvIGEgZm9yZ2VkIG9yIG1pc3JvdXRlZCByb3dcbiAgICogbmFtZXMgdGhlIGNyZWRlbnRpYWwgdGhhdCB3cm90ZSBpdC4gQSBrZXkgSUQsIG5ldmVyIHRoZSBzZWNyZXQuXG4gICAqL1xuICBrZXlJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBPbmUgb3JnJ3MgaW5nZXN0aW9uLWhlYWx0aCByb3cgYXMgUkVBRCBiYWNrIGJ5IHRoZSBSZXBvcnRzIFVJLiBUaGVcbiAqIEFXUyBldmVudHMgTGFtYmRhIHdyaXRlcyBpdDsgdGhpcyBpcyB0aGUgc2hhcGUgdGhhdCBsZXRzIHRoZSBVSSB0ZWxsXG4gKiBcImluZ2VzdGlvbiBpcyBoZWFsdGh5LCB0aGVyZSB3ZXJlIHNpbXBseSBubyBkZXBsb3lzIGluIHRoZSByYW5nZVwiIGFwYXJ0IGZyb21cbiAqIFwid2UgaGF2ZW4ndCBoZWFyZCBmcm9tIHRoZSBpbmdlc3QgcGlwZWxpbmUgc2luY2UgWFwiLlxuICpcbiAqIGBudWxsYCBmcm9tIHtAbGluayBSZXBvcnRpbmdTZXJ2aWNlLmdldEluZ2VzdEhlYWx0aH0gbWVhbnMgdGhlIGRlcGxveW1lbnQgaGFzXG4gKiBORVZFUiByZXBvcnRlZCDigJQgbm90IFwic3RhbGVcIi4gVGhlIHR3byBtdXN0IG5vdCBiZSBjb25mbGF0ZWQ6IGEgZnJlc2ggaW5zdGFsbFxuICogKG9yIG9uZSB3aG9zZSBmb3J3YXJkZXIgd2FzIG5ldmVyIHdpcmVkIHVwKSBoYXMgbm8gaGVhcnRiZWF0IGF0IGFsbCwgYW5kXG4gKiBjYWxsaW5nIHRoYXQgXCJzdGFsZVwiIHdvdWxkIGludmVudCBhIHJlZ3Jlc3Npb24gdGhhdCBuZXZlciBoYXBwZW5lZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmdlc3RIZWFsdGhTdGF0dXMge1xuICAvKiogV2hlbiB0aGUgZm9yd2FyZGVyIGxhc3QgcG9zdGVkIGEgaGVhcnRiZWF0IChpdHMgb3duIGNsb2NrLCBJU08gODYwMSkuICovXG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xuICAvKiogVGltZXN0YW1wIG9mIHRoZSBuZXdlc3QgZXZlbnQgaXQgaGFkIGZvcndhcmRlZCwgb3IgbnVsbCBpZiBpdCBoYXMgc2VlbiBub25lLiAqL1xuICBsYXN0RXZlbnRBdDogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIEN1bXVsYXRpdmUgZXZlbnRzIGZvcndhcmRlZCwgb3IgbnVsbCB3aGVuIHRoZSBmb3J3YXJkZXIgZG9lc24ndCByZXBvcnQgaXQuICovXG4gIGZvcndhcmRlZDogbnVtYmVyIHwgbnVsbDtcbiAgLyoqIEN1bXVsYXRpdmUgZXZlbnRzIERST1BQRUQgKG5vbi16ZXJvIOKHkiBkYXRhIGxvc3MgdXBzdHJlYW0gb2YgdGhlIHJlcG9ydHMpLiAqL1xuICBkcm9wcGVkOiBudW1iZXIgfCBudWxsO1xufVxuXG5cbi8qKlxuICogUmVhZC1vbmx5IHJlcG9ydGluZyBzZXJ2aWNlIGZvciBwaXBlbGluZSBleGVjdXRpb24gYW5kIHBsdWdpbiBpbnZlbnRvcnkgYWdncmVnYXRpb25zLlxuICogRG9lcyBub3QgZXh0ZW5kIENydWRTZXJ2aWNlIOKAlCByZXBvcnRzIGFyZSBhZ2dyZWdhdGUgcXVlcmllcywgbm90IGVudGl0eSBDUlVELlxuICpcbiAqIEFsbCBxdWVyaWVzIGFyZSBjYWNoZWQgaW4tbWVtb3J5IHRvIGF2b2lkIHJlcGVhdGVkIGV4cGVuc2l2ZSBTUUwgYWdncmVnYXRpb25zOlxuICogLSBJbnZlbnRvcnkgcXVlcmllcyAocGx1Z2luIHN1bW1hcnkvZGlzdHJpYnV0aW9uL3ZlcnNpb25zKTogNSBtaW4gVFRMXG4gKiAtIFRpbWVzZXJpZXMgcXVlcmllcyAoZXhlY3V0aW9uL2J1aWxkIG1ldHJpY3Mgd2l0aCBkYXRlIHJhbmdlcyk6IDIgbWluIFRUTFxuICovXG5cbi8qKlxuICogSW50ZXJuYWwgcm93IHNoYXBlcyBmb3IgdGhlIERPUkEgcXVlcmllcy4gRXhwb3J0ZWQgYmVjYXVzZSAuL2RvcmEudHMgY29uc3VtZXNcbiAqIHRoZW07IG5vdCBwYXJ0IG9mIHRoZSBwYWNrYWdlJ3MgcHVibGljIHN1cmZhY2UgKHJlcG9ydGluZy1zZXJ2aWNlLnRzXG4gKiByZS1leHBvcnRzIHRoaXMgbW9kdWxlIHdob2xlc2FsZSwgd2hpY2ggaXMgYSBkZWxpYmVyYXRlIHNpbXBsaWZpY2F0aW9uIOKAlCB0aGVzZVxuICogZGVzY3JpYmUgcXVlcnkgcmVzdWx0cywgbm90IEFQSSBjb250cmFjdHMpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveVJvdyB7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG4gIHN0YXR1czogJ1NVQ0NFRURFRCcgfCAnRkFJTEVEJyB8IHN0cmluZztcbiAgLyoqIERlcGxveSBleGVjdXRpb24gaWQg4oCUIHRoZSBhdHRyaWJ1dGlvbiBrZXkgZm9yIGRlZHVwIGFnYWluc3Qgb3V0Y29tZXMvaW5jaWRlbnRzLiAqL1xuICBleGVjdXRpb25faWQ6IHN0cmluZyB8IG51bGw7XG4gIGNvbXBsZXRlZF9hdDogc3RyaW5nIHwgbnVsbDtcbiAgY29tbWl0X3RzOiBzdHJpbmcgfCBudWxsO1xuICAvKipcbiAgICogV2hldGhlciB0aGUgZGVwbG95IGNvbXBsZXRlZCBpbnNpZGUgW2Zyb20sdG9dLiBBYnNlbnQgKHVuZGVmaW5lZCkgaW4gdW5pdFxuICAgKiBmaXh0dXJlcyDih5IgdHJlYXRlZCBhcyBpbi13aW5kb3cuIGB0YC9gZmAgdG9sZXJhdGVkIChwZyBib29sZWFuIHRleHQgZm9ybSkuXG4gICAqL1xuICBpbl93aW5kb3c/OiBib29sZWFuIHwgc3RyaW5nIHwgbnVsbDtcbn1cblxuLyoqIFJhdyBwb3N0LWRlcGxveSBvdXRjb21lIG1hcmtlciByb3cgKGZyb20gYGRlcGxveW1lbnRfb3V0Y29tZXNgLCBpbi13aW5kb3cpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBPdXRjb21lUm93IHtcbiAgZW52aXJvbm1lbnQ6IHN0cmluZyB8IG51bGw7XG4gIG91dGNvbWU6ICdmYWlsZWQnIHwgJ3Jlc3RvcmVkJyB8IHN0cmluZztcbiAgLyoqIEV4ZWN1dGlvbiB0aGUgdXNlciBtYXJrZWQg4oCUIGRlZHVwIGtleSBhZ2FpbnN0IGluY2lkZW50LWNvcnJlbGF0ZWQgZGVwbG95cy4gKi9cbiAgZXhlY3V0aW9uX2lkOiBzdHJpbmcgfCBudWxsO1xufVxuXG4vKiogUHJvZHVjdGlvbiByZXN0b3JlZC1pbmNpZGVudCBwYWlyOiByZWNvdmVyeSB0aW1lICsgdGhlIGRlcGxveSdzIGNvbXBsZXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIE10dHJQYWlyUm93IHtcbiAgcmVzdG9yZWRfYXQ6IHN0cmluZyB8IG51bGw7XG4gIGRlcGxveWVkX2F0OiBzdHJpbmcgfCBudWxsO1xuICAvKiogRXhlY3V0aW9uIGlkIOKAlCBsZXRzIGluY2lkZW50IHByZWNlZGVuY2Ugb3ZlcnJpZGUgdGhlIG1hbnVhbCBvdXRjb21lIHBlciBkZXBsb3kuICovXG4gIGV4ZWN1dGlvbl9pZDogc3RyaW5nIHwgbnVsbDtcbn1cblxuLyoqXG4gKiBSYXcgaW5jaWRlbnQgcm93IChmcm9tIGBpbmNpZGVudHNgLCBvcGVuZWQgaW4td2luZG93KS4gQ29ycmVsYXRlZCBpbiBKUyB0byB0aGVcbiAqIG1vc3QgcmVjZW50IHN1Y2Nlc3NmdWwgZGVwbG95IHRvIGBlbnZpcm9ubWVudGAgd2l0aGluIERPUkFfSU5DSURFTlRfV0lORE9XX0hPVVJTXG4gKiDihpIgYW4gYXV0b21hdGVkIHBvc3QtZGVwbG95IGZhaWx1cmUgKENGUikgKyByZWFsIHJlY292ZXJ5IHRpbWUgKE1UVFIpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluY2lkZW50Um93IHtcbiAgZW52aXJvbm1lbnQ6IHN0cmluZztcbiAgb3BlbmVkX2F0OiBzdHJpbmcgfCBudWxsO1xuICByZXNvbHZlZF9hdDogc3RyaW5nIHwgbnVsbDtcbn1cblxuLyoqIENvdmVyYWdlIGNvdW50czogcmVnaXN0ZXJlZCBwaXBlbGluZXMgdnMgdGhvc2UgdGhhdCBhY3R1YWxseSBkZXBsb3llZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ292ZXJhZ2VSb3cge1xuICByZWdpc3RlcmVkOiBudW1iZXIgfCBzdHJpbmcgfCBudWxsO1xuICBkZXBsb3lpbmc6IG51bWJlciB8IHN0cmluZyB8IG51bGw7XG59XG4iXX0=
|
|
@@ -8,11 +8,13 @@
|
|
|
8
8
|
* `messages` keeps carrying the conversation. These functions only ever touch
|
|
9
9
|
* the workflow axis: identity, status, ownership and the response clock.
|
|
10
10
|
*/
|
|
11
|
+
import { type SupportCaseStatus } from '@pipeline-builder/api-core';
|
|
11
12
|
import type { SupportCase } from '../database/schema/support.js';
|
|
12
|
-
/**
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
/**
|
|
14
|
+
* The statuses the staff queue asks about — the ones still on us. (The full set
|
|
15
|
+
* is api-core's `SUPPORT_CASE_STATUSES`; `awaiting_customer` is what stops the
|
|
16
|
+
* clock.)
|
|
17
|
+
*/
|
|
16
18
|
export declare const QUEUE_STATUSES: readonly SupportCaseStatus[];
|
|
17
19
|
/** What opening a case needs. `level` is frozen onto the row at open. */
|
|
18
20
|
export interface OpenCaseInput {
|
|
@@ -51,22 +53,39 @@ export interface OpenCaseInput {
|
|
|
51
53
|
export declare function openSupportCase(input: OpenCaseInput): Promise<SupportCase>;
|
|
52
54
|
/** The case for a thread, or null. The thread root id IS the case identity. */
|
|
53
55
|
export declare function findCaseByThread(threadId: string): Promise<SupportCase | null>;
|
|
56
|
+
/** Default and ceiling page size for the two case lists. */
|
|
57
|
+
export declare const SUPPORT_CASE_PAGE_DEFAULT = 100;
|
|
58
|
+
export declare const SUPPORT_CASE_PAGE_MAX = 1000;
|
|
59
|
+
/** Paging input for the case lists: a page size and the `nextCursor` of the previous page. */
|
|
60
|
+
export interface SupportCasePageOptions {
|
|
61
|
+
limit?: number;
|
|
62
|
+
/** Opaque — pass back the previous page's `nextCursor` verbatim. */
|
|
63
|
+
cursor?: string;
|
|
64
|
+
}
|
|
54
65
|
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
* The one read with no org predicate, so it runs under sysadmin scope and is
|
|
58
|
-
* served by the partial `support_case_queue_idx`.
|
|
59
|
-
*
|
|
60
|
-
* Ordered by `response_due_at` ASCENDING, NULLS LAST — soonest deadline first,
|
|
61
|
-
* which is what "most at risk" actually means. Arrival order was the earlier
|
|
62
|
-
* proxy for it and is a poor one: a standard case opened on Monday is owed
|
|
63
|
-
* Wednesday's close while a priority case opened on Tuesday is owed Wednesday's
|
|
64
|
-
* close too, so arrival order puts them in the wrong sequence whenever levels
|
|
65
|
-
* are mixed. Cases with no deadline (an unrecognised level, or one opened while
|
|
66
|
-
* the calendar was misconfigured) sort last rather than first, since a missing
|
|
67
|
-
* deadline is not an urgent one; `createdAt` breaks ties so the order is stable.
|
|
66
|
+
* One page of cases. `hasMore` says a further page exists and `nextCursor`
|
|
67
|
+
* fetches it — so a list is never silently cut at the page size.
|
|
68
68
|
*/
|
|
69
|
-
export
|
|
69
|
+
export interface SupportCasePage {
|
|
70
|
+
cases: SupportCase[];
|
|
71
|
+
hasMore: boolean;
|
|
72
|
+
nextCursor?: string;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* The staff queue: open cases across ALL tenants, LONGEST WAITING first.
|
|
76
|
+
*
|
|
77
|
+
* The one read with no org predicate, so it runs under sysadmin scope; the
|
|
78
|
+
* partial `support_case_queue_idx` (open statuses, not deleted) bounds the rows
|
|
79
|
+
* it sorts.
|
|
80
|
+
*
|
|
81
|
+
* The order is the queue's displayed order — the waiting time a human acts on
|
|
82
|
+
* (see {@link queueWaitAnchor}) — and it is applied BEFORE the limit. It used
|
|
83
|
+
* to be `response_due_at` here and waitingSeconds in the route, so with more
|
|
84
|
+
* cases than the limit the route re-sorted a page taken on a different key and
|
|
85
|
+
* the longest-waiting case could be the one cut off. `id` breaks ties, so the
|
|
86
|
+
* order is total and the cursor stable.
|
|
87
|
+
*/
|
|
88
|
+
export declare function listQueue(opts?: SupportCasePageOptions): Promise<SupportCasePage>;
|
|
70
89
|
/**
|
|
71
90
|
* Premium cases whose response target is approaching with no first response yet.
|
|
72
91
|
*
|
|
@@ -91,8 +110,12 @@ export declare function listQueue(limit?: number): Promise<SupportCase[]>;
|
|
|
91
110
|
* duplicate a rule that `first_response_at IS NULL` already states exactly.
|
|
92
111
|
*/
|
|
93
112
|
export declare function listCasesDueForPage(leadMs: number, limit?: number): Promise<SupportCase[]>;
|
|
94
|
-
/**
|
|
95
|
-
|
|
113
|
+
/**
|
|
114
|
+
* An org's own cases (closed ones included), newest first, one page at a time.
|
|
115
|
+
* `created_at DESC, id DESC` is total, so the keyset cursor neither repeats nor
|
|
116
|
+
* skips a case; served by `support_case_org_created_idx`.
|
|
117
|
+
*/
|
|
118
|
+
export declare function listOrgCases(orgId: string, opts?: SupportCasePageOptions): Promise<SupportCasePage>;
|
|
96
119
|
/**
|
|
97
120
|
* Stamp the first staff response, once.
|
|
98
121
|
*
|
|
@@ -244,13 +267,16 @@ export declare function addCaseNote(caseId: string, orgId: string, content: stri
|
|
|
244
267
|
/** Live notes on a case, oldest first — they read as a running commentary. */
|
|
245
268
|
export declare function listCaseNotes(caseId: string): Promise<SupportCaseNote[]>;
|
|
246
269
|
/**
|
|
247
|
-
* Soft-delete a note.
|
|
270
|
+
* Soft-delete a note ON a case.
|
|
271
|
+
*
|
|
272
|
+
* Keyed by BOTH ids: a note id alone would let a note on case B be removed
|
|
273
|
+
* through case A's URL (and the caller's audit row would name case A).
|
|
248
274
|
*
|
|
249
275
|
* Soft because a note is a record of what the desk believed at the time, and a
|
|
250
|
-
* dispute may turn on it. Returns whether a row moved, so a second delete
|
|
251
|
-
* reported no-op rather than a silent success.
|
|
276
|
+
* dispute may turn on it. Returns whether a row moved, so a second delete (or a
|
|
277
|
+
* note that is not on this case) is a reported no-op rather than a silent success.
|
|
252
278
|
*/
|
|
253
|
-
export declare function deleteCaseNote(noteId: string, deletedBy: string): Promise<boolean>;
|
|
279
|
+
export declare function deleteCaseNote(caseId: string, noteId: string, deletedBy: string): Promise<boolean>;
|
|
254
280
|
/** A reusable staff reply template. */
|
|
255
281
|
export interface CannedResponse {
|
|
256
282
|
id: string;
|