@pipeline-builder/pipeline-data 4.1.14 → 4.1.16
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/access-control-builder.d.ts +18 -1
- package/lib/api/access-control-builder.js +19 -6
- package/lib/api/crud-service.d.ts +94 -36
- package/lib/api/crud-service.js +188 -166
- package/lib/api/plugin-resolution.d.ts +253 -0
- package/lib/api/plugin-resolution.js +649 -0
- package/lib/api/public-directory.d.ts +281 -0
- package/lib/api/public-directory.js +457 -0
- package/lib/api/query-builders.d.ts +13 -0
- package/lib/api/query-builders.js +74 -9
- package/lib/api/reporting/caches.js +4 -4
- package/lib/api/reporting/dora-scoring.d.ts +3 -3
- package/lib/api/reporting/dora-scoring.js +4 -4
- package/lib/api/reporting/dora.d.ts +6 -6
- package/lib/api/reporting/dora.js +97 -73
- package/lib/api/reporting/plugin-runtime.d.ts +25 -0
- package/lib/api/reporting/plugin-runtime.js +106 -0
- package/lib/api/reporting/query-scope.d.ts +8 -2
- package/lib/api/reporting/query-scope.js +16 -7
- package/lib/api/reporting/retention.d.ts +4 -10
- package/lib/api/reporting/retention.js +8 -11
- package/lib/api/reporting/sql-helpers.d.ts +4 -7
- package/lib/api/reporting/sql-helpers.js +8 -9
- package/lib/api/reporting/types.d.ts +55 -17
- package/lib/api/reporting/types.js +1 -1
- package/lib/api/reporting-service.d.ts +35 -26
- package/lib/api/reporting-service.js +245 -161
- package/lib/api/semver-range.d.ts +73 -0
- package/lib/api/semver-range.js +227 -0
- package/lib/api/soft-delete-sweep.js +8 -20
- package/lib/core/query-filters.d.ts +18 -3
- package/lib/core/query-filters.js +1 -1
- package/lib/database/drizzle-schema.d.ts +7790 -2461
- package/lib/database/drizzle-schema.js +29 -1
- package/lib/database/index.d.ts +4 -2
- package/lib/database/index.js +5 -3
- package/lib/database/pg-result.d.ts +19 -0
- package/lib/database/pg-result.js +32 -0
- package/lib/database/postgres-connection.js +14 -24
- package/lib/database/public-reader.d.ts +14 -0
- package/lib/database/public-reader.js +68 -0
- package/lib/database/retry-strategy.d.ts +3 -5
- package/lib/database/retry-strategy.js +4 -6
- package/lib/database/schema/compliance.d.ts +16 -34
- package/lib/database/schema/compliance.js +4 -4
- package/lib/database/schema/dashboard.js +4 -2
- package/lib/database/schema/ecosystem.d.ts +6586 -0
- package/lib/database/schema/ecosystem.js +709 -0
- package/lib/database/schema/message.d.ts +6 -12
- package/lib/database/schema/message.js +3 -1
- package/lib/database/schema/pipeline.d.ts +79 -5
- package/lib/database/schema/pipeline.js +46 -25
- package/lib/database/schema/plugin.d.ts +587 -3
- package/lib/database/schema/plugin.js +86 -14
- package/lib/database/tenancy.d.ts +6 -7
- package/lib/database/tenancy.js +13 -14
- package/lib/index.d.ts +7 -4
- package/lib/index.js +7 -4
- package/lib/testing/exports.json +146 -0
- package/package.json +44 -7
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3JlcG9ydGluZy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogUHVibGljIHJlc3VsdCBzaGFwZXMgZm9yIHRoZSByZXBvcnRpbmcgc2VydmljZS5cbiAqXG4gKiBTcGxpdCBvdXQgb2YgcmVwb3J0aW5nLXNlcnZpY2UudHMgcHVyZWx5IGZvciBzaXplOiB0aGVzZSBhcmUgZGF0YSBjb250cmFjdHNcbiAqIHdpdGggbm8gYmVoYXZpb3VyLiByZXBvcnRpbmctc2VydmljZS50cyByZS1leHBvcnRzIHRoZW0sIHNvIHRoZVxuICogYEBwaXBlbGluZS1idWlsZGVyL3BpcGVsaW5lLWRhdGFgIHB1YmxpYyBzdXJmYWNlIGlzIHVuY2hhbmdlZC5cbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGlvbkNvdW50IHtcbiAgaWQ6IHN0cmluZztcbiAgcHJvamVjdDogc3RyaW5nO1xuICBvcmdhbml6YXRpb246IHN0cmluZztcbiAgcGlwZWxpbmVOYW1lOiBzdHJpbmcgfCBudWxsO1xuICB0b3RhbDogbnVtYmVyO1xuICBzdWNjZWVkZWQ6IG51bWJlcjtcbiAgZmFpbGVkOiBudW1iZXI7XG4gIGNhbmNlbGVkOiBudW1iZXI7XG4gIGZpcnN0RXhlY3V0aW9uOiBzdHJpbmcgfCBudWxsO1xuICBsYXN0RXhlY3V0aW9uOiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRpbWVTZXJpZXNFbnRyeSB7XG4gIHBlcmlvZDogc3RyaW5nO1xuICBzdWNjZWVkZWQ6IG51bWJlcjtcbiAgZmFpbGVkOiBudW1iZXI7XG4gIGNhbmNlbGVkOiBudW1iZXI7XG4gIHN1Y2Nlc3NQY3Q6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEdXJhdGlvblN0YXRzIHtcbiAgaWQ6IHN0cmluZztcbiAgcHJvamVjdDogc3RyaW5nO1xuICBwaXBlbGluZU5hbWU6IHN0cmluZyB8IG51bGw7XG4gIGF2Z01zOiBudW1iZXI7XG4gIG1pbk1zOiBudW1iZXI7XG4gIG1heE1zOiBudW1iZXI7XG4gIHA5NU1zOiBudW1iZXI7XG4gIGV4ZWN1dGlvbnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZUV4ZWN1dGlvbiB7XG4gIGV4ZWN1dGlvbklkOiBzdHJpbmc7XG4gIC8qKiBSb2xsZWQtdXAgdGVybWluYWwgc3RhdHVzOiBzdWNjZWVkZWQgfCBmYWlsZWQgfCBjYW5jZWxlZCB8IGluLXByb2dyZXNzLiAqL1xuICBzdGF0dXM6IHN0cmluZztcbiAgc3RhcnRlZEF0OiBzdHJpbmcgfCBudWxsO1xuICBlbmRlZEF0OiBzdHJpbmcgfCBudWxsO1xuICBkdXJhdGlvbk1zOiBudW1iZXIgfCBudWxsO1xuICAvKiogRmlyc3QgZmFpbGluZyBzdGFnZS9hY3Rpb24gZm9yIHRoZSBleGVjdXRpb24gKG51bGwgd2hlbiBpdCBkaWRuJ3QgZmFpbCkuICovXG4gIGZhaWxpbmdTdGFnZTogc3RyaW5nIHwgbnVsbDtcbiAgZmFpbGluZ0FjdGlvbjogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFnZUZhaWx1cmUge1xuICBzdGFnZU5hbWU6IHN0cmluZztcbiAgZmFpbHVyZXM6IG51bWJlcjtcbiAgdG90YWw6IG51bWJlcjtcbiAgZmFpbHVyZVBjdDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWdlQm90dGxlbmVjayB7XG4gIGlkOiBzdHJpbmc7XG4gIHBpcGVsaW5lTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIGF2Z01zOiBudW1iZXI7XG4gIG1heE1zOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uRmFpbHVyZSB7XG4gIGFjdGlvbk5hbWU6IHN0cmluZztcbiAgZmFpbHVyZXM6IG51bWJlcjtcbiAgdG90YWw6IG51bWJlcjtcbiAgZmFpbHVyZVBjdDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yRW50cnkge1xuICBlcnJvclBhdHRlcm46IHN0cmluZztcbiAgb2NjdXJyZW5jZXM6IG51bWJlcjtcbiAgYWZmZWN0ZWRQaXBlbGluZXM6IG51bWJlcjtcbiAgbGFzdFNlZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5TdW1tYXJ5IHtcbiAgdG90YWw6IG51bWJlcjtcbiAgYWN0aXZlOiBudW1iZXI7XG4gIGluYWN0aXZlOiBudW1iZXI7XG4gIC8qKiBDb3VudHMgcGVyIHNoYXJpbmcgcnVuZyDigJQgb25lIGJ1Y2tldCBwZXIgYHZpc2liaWxpdHlgIHZhbHVlLiAqL1xuICBwdWJsaWM6IG51bWJlcjtcbiAgb3JnOiBudW1iZXI7XG4gIHByaXZhdGU6IG51bWJlcjtcbiAgdW5pcXVlTmFtZXM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlQ29tcHV0ZURpc3RyaWJ1dGlvbiB7XG4gIHBsdWdpblR5cGU6IHN0cmluZztcbiAgY29tcHV0ZVR5cGU6IHN0cmluZztcbiAgY291bnQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWZXJzaW9uQ291bnQge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZlcnNpb25Db3VudDogbnVtYmVyO1xuICBsYXRlc3RWZXJzaW9uOiBzdHJpbmc7XG4gIGhhc0RlZmF1bHQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRUaW1lU2VyaWVzRW50cnkge1xuICBwZXJpb2Q6IHN0cmluZztcbiAgc3VjY2VlZGVkOiBudW1iZXI7XG4gIGZhaWxlZDogbnVtYmVyO1xuICBzdWNjZXNzUGN0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGREdXJhdGlvbiB7XG4gIHBsdWdpbk5hbWU6IHN0cmluZztcbiAgYXZnTXM6IG51bWJlcjtcbiAgbWF4TXM6IG51bWJlcjtcbiAgYnVpbGRzOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRGYWlsdXJlIHtcbiAgcGx1Z2luTmFtZTogc3RyaW5nO1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgb2NjdXJyZW5jZXM6IG51bWJlcjtcbiAgbGFzdFNlZW46IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgRE9SQSBoZWFkbGluZSBlbnZpcm9ubWVudC4gRGVwbG95bWVudCB0byB0aGlzIGxpdGVyYWwgZW52IG5hbWUgaXMgdGhlXG4gKiBpbmR1c3RyeS1zdGFuZGFyZCBET1JBIHNpZ25hbDsgTVRUUiBpcyBtZWFzdXJlZCBwcm9kdWN0aW9uLW9ubHksIGFuZCB0aGlzXG4gKiBlbnZpcm9ubWVudCdzIGNhcmQgaXMgdGhlIHN1bW1hcnkgc2hvd24gYXQgdGhlIHRvcCBvZiB0aGUgcGFuZWwuXG4gKi9cblxuLyoqIFBlci1vcmcgcmV0ZW50aW9uIG92ZXJyaWRlIHJvdyAoUGhhc2UgNykuIEJvdGggbnVsbGFibGUg4oeSIGdsb2JhbCBkZWZhdWx0cy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0aW5nUmV0ZW50aW9uU2V0dGluZ3Mge1xuICBldmVudFJldGVudGlvbkRheXM6IG51bWJlciB8IG51bGw7XG4gIGRvcmFSZXRlbnRpb25EYXlzOiBudW1iZXIgfCBudWxsO1xuICBkZWZhdWx0RXZlbnRSZXRlbnRpb25EYXlzOiBudW1iZXI7XG4gIGRlZmF1bHREb3JhUmV0ZW50aW9uRGF5czogbnVtYmVyO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgdGhlIHJlcG9ydGluZyByZXRlbnRpb24gc3dlZXAuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydGluZ1JldGVudGlvbk9wdGlvbnMge1xuICAvKiogUm93cyBkZWxldGVkIHBlciBzdGF0ZW1lbnQgKGRlZmF1bHQgMTAwMCkuICovXG4gIGJhdGNoU2l6ZT86IG51bWJlcjtcbiAgLyoqIE1heCBiYXRjaGVzIHBlciB0YWJsZSBwZXIgb3JnIHBlciB0aWNrIChkZWZhdWx0IDUwKTsgdGhlIHJlc3QgZGVmZXJzIHRvXG4gICAqICB0aGUgbmV4dCB0aWNrIHNvIGEgaHVnZSBiYWNrbG9nIGNhbid0IGhvbGQgbG9ja3MgdG9vIGxvbmcuICovXG4gIG1heEJhdGNoZXNQZXJUYWJsZT86IG51bWJlcjtcbiAgLyoqIEZpeGVkIFwibm93XCIgZm9yIHRoZSB3aG9sZSBzd2VlcCAoZGVmYXVsdCBgbmV3IERhdGUoKWApLiAqL1xuICBub3c/OiBEYXRlO1xufVxuXG4vKiogUGVyLXJ1biBwdXJnZSB0YWxsaWVzIChhbHNvIGxvZ2dlZCkuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydGluZ1JldGVudGlvbkNvdW50cyB7XG4gIC8qKiBPcmdzIHN3ZXB0IHRoaXMgcnVuLiAqL1xuICBvcmdzOiBudW1iZXI7XG4gIC8qKiBTdGFuZGFyZCBgcGlwZWxpbmVfZXZlbnRzYCAoZW52aXJvbm1lbnQgSVMgTlVMTCkgcm93cyBwdXJnZWQuICovXG4gIHN0YW5kYXJkRXZlbnRzOiBudW1iZXI7XG4gIC8qKiBET1JBLXNvdXJjZSBgcGlwZWxpbmVfZXZlbnRzYCAoZW52aXJvbm1lbnQgSVMgTk9UIE5VTEwpIHJvd3MgcHVyZ2VkLiAqL1xuICBkb3JhRXZlbnRzOiBudW1iZXI7XG4gIC8qKiBgZGVwbG95bWVudF9vdXRjb21lc2Agcm93cyBwdXJnZWQuICovXG4gIGRlcGxveW1lbnRPdXRjb21lczogbnVtYmVyO1xuICAvKiogYGluY2lkZW50c2Agcm93cyBwdXJnZWQuICovXG4gIGluY2lkZW50czogbnVtYmVyO1xufVxuXG4vKipcbiAqIERPUkEgcGVyZm9ybWFuY2UgYmFuZC4gYG51bGxgID0gaW5zdWZmaWNpZW50IGRhdGEgdG8gY2xhc3NpZnkgKG5vXG4gKiBkZXBsb3ltZW50cy9mYWlsdXJlcy9sZWFkLXRpbWUgc2FtcGxlIGluIHRoZSB3aW5kb3cpLCBzbyB0aGUgVUkgc2hvd3MgYVxuICogbmV1dHJhbCBzdGF0ZSByYXRoZXIgdGhhbiBtaXNsYWJlbGluZyBhbiBlbXB0eSB3aW5kb3cgYXMgXCJsb3dcIi5cbiAqL1xuZXhwb3J0IHR5cGUgRG9yYUxldmVsID0gJ2VsaXRlJyB8ICdoaWdoJyB8ICdtZWRpdW0nIHwgJ2xvdycgfCBudWxsO1xuXG4vKiogT3B0aW9uYWwgc2NvcGluZyBmb3Ige0BsaW5rIFJlcG9ydGluZ1NlcnZpY2UuZ2V0RG9yYU1ldHJpY3N9LiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb3JhT3B0aW9ucyB7XG4gIC8qKiBSZXN0cmljdCB0byBhIHNpbmdsZSBwaXBlbGluZSAocGVyLXBpcGVsaW5lIERPUkEpLiAqL1xuICBwaXBlbGluZUlkPzogc3RyaW5nO1xuICAvKiogUmVzdHJpY3QgdG8gYSBzaW5nbGUgZGVwbG95IGVudmlyb25tZW50IChlbHNlIGFsbCBkZXBsb3kgZW52aXJvbm1lbnRzKS4gKi9cbiAgZW52aXJvbm1lbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQZXItb3JnIGluY2lkZW504oaSZGVwbG95IGNvcnJlbGF0aW9uIHdpbmRvdyBvdmVycmlkZSAoaG91cnMpLiBXaGVuIHNldCAoYVxuICAgKiBwb3NpdGl2ZSBmaW5pdGUgbnVtYmVyKSwgdGhlIGluY2lkZW50IGNvcnJlbGF0aW9uIHVzZXMgaXQgaW5zdGVhZCBvZiB0aGVcbiAgICogZ2xvYmFsIGBET1JBX0lOQ0lERU5UX1dJTkRPV19IT1VSU2AuIFRoZSByb3V0ZSByZXNvbHZlcyB0aGlzIGZyb20gdGhlIG9yZydzXG4gICAqIGBkb3JhX3NldHRpbmdzYCByb3cgKHNlZSB7QGxpbmsgUmVwb3J0aW5nU2VydmljZS5nZXRJbmNpZGVudFNldHRpbmdzfSkgYW5kXG4gICAqIHBhc3NlcyBpdCBpbjsgdW5zZXQgZmFsbHMgYmFjayB0byB0aGUgZW52IGRlZmF1bHQuXG4gICAqL1xuICBpbmNpZGVudFdpbmRvd0hvdXJzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFBlci1vcmcgcmVwb3J0aW5nIHNldHRpbmdzIHN1cmZhY2VkIHRvIHRoZSBvcmctYWRtaW4gcGFuZWwuIGBpbmNpZGVudFdpbmRvd0hvdXJzYFxuICogKFBoYXNlIDViKSBpcyB0aGUgaW5jaWRlbnTihpJkZXBsb3kgY29ycmVsYXRpb24gd2luZG93OyBgZXZlbnRSZXRlbnRpb25EYXlzYCAvXG4gKiBgZG9yYVJldGVudGlvbkRheXNgIChQaGFzZSA3KSBhcmUgdGhlIHR3byByZXRlbnRpb24tc3dlZXAgd2luZG93cy4gRWFjaCBvdmVycmlkZVxuICogaXMgYG51bGxgIHdoZW4gdW5zZXQgKHRoZSBwYWlyZWQgYGRlZmF1bHQqYCBmaWVsZCBzaG93cyB0aGUgZW52IGZhbGxiYWNrIGFwcGxpZWQpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluY2lkZW50U2V0dGluZ3Mge1xuICAvKiogVGhlIG9yZydzIHN0b3JlZCBjb3JyZWxhdGlvbi13aW5kb3cgb3ZlcnJpZGUgaW4gaG91cnMsIG9yIGBudWxsYCB3aGVuIHVuc2V0LiAqL1xuICBpbmNpZGVudFdpbmRvd0hvdXJzOiBudW1iZXIgfCBudWxsO1xuICAvKiogVGhlIGdsb2JhbCBlbnYgZGVmYXVsdCBhcHBsaWVkIHdoZW4gbm8gb3ZlcnJpZGUgaXMgc3RvcmVkLiAqL1xuICBkZWZhdWx0V2luZG93SG91cnM6IG51bWJlcjtcbiAgLyoqIFN0YW5kYXJkLWV2ZW50IHJldGVudGlvbiBvdmVycmlkZSBpbiBkYXlzLCBvciBgbnVsbGAgd2hlbiB1bnNldCAoUGhhc2UgNykuICovXG4gIGV2ZW50UmV0ZW50aW9uRGF5czogbnVtYmVyIHwgbnVsbDtcbiAgLyoqIERPUkEtc291cmNlIHJldGVudGlvbiBvdmVycmlkZSBpbiBkYXlzLCBvciBgbnVsbGAgd2hlbiB1bnNldCAoUGhhc2UgNykuICovXG4gIGRvcmFSZXRlbnRpb25EYXlzOiBudW1iZXIgfCBudWxsO1xuICAvKiogR2xvYmFsIHN0YW5kYXJkLWV2ZW50IHJldGVudGlvbiBkZWZhdWx0IGFwcGxpZWQgd2hlbiB1bnNldCAoZGF5cykuICovXG4gIGRlZmF1bHRFdmVudFJldGVudGlvbkRheXM6IG51bWJlcjtcbiAgLyoqIEdsb2JhbCBET1JBLXNvdXJjZSByZXRlbnRpb24gZGVmYXVsdCBhcHBsaWVkIHdoZW4gdW5zZXQgKGRheXMpLiAqL1xuICBkZWZhdWx0RG9yYVJldGVudGlvbkRheXM6IG51bWJlcjtcbn1cblxuLyoqIEEgcGFydGlhbCByZXBvcnRpbmctc2V0dGluZ3Mgd3JpdGUgKFBoYXNlIDViICsgNykuIE9ubHkgcHJvdmlkZWQgZmllbGRzIGFyZVxuICogIHVwc2VydGVkOyBvbWl0dGVkIGZpZWxkcyBhcmUgbGVmdCB1bmNoYW5nZWQgKGFuIG9taXR0ZWQgcmV0ZW50aW9uIGZpZWxkIGtlZXBzXG4gKiAgaXRzIHN0b3JlZCBvdmVycmlkZSAvIHRoZSBnbG9iYWwgZGVmYXVsdCkuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydGluZ1NldHRpbmdzUGF0Y2gge1xuICBpbmNpZGVudFdpbmRvd0hvdXJzPzogbnVtYmVyO1xuICBldmVudFJldGVudGlvbkRheXM/OiBudW1iZXI7XG4gIGRvcmFSZXRlbnRpb25EYXlzPzogbnVtYmVyO1xufVxuXG4vKiogT25lIHJvdyBvZiB0aGUgb3JnLWFkbWluIGluY2lkZW50cyBsaXN0IChyZWNlbnQgaW5jaWRlbnRzICsgZGVwbG95IGNvcnJlbGF0aW9uKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5jaWRlbnRMaXN0SXRlbSB7XG4gIGluY2lkZW50SWQ6IHN0cmluZztcbiAgZW52aXJvbm1lbnQ6IHN0cmluZztcbiAgc2V2ZXJpdHk6IHN0cmluZztcbiAgb3BlbmVkQXQ6IHN0cmluZyB8IG51bGw7XG4gIHJlc29sdmVkQXQ6IHN0cmluZyB8IG51bGw7XG4gIGNyZWF0ZWRBdDogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIFRydWUgb25jZSB0aGUgaW5jaWRlbnQgaGFzIGEgYHJlc29sdmVkX2F0YC4gKi9cbiAgcmVzb2x2ZWQ6IGJvb2xlYW47XG4gIC8qKiBUaGUgY29ycmVsYXRlZCBkZXBsb3kgZXhlY3V0aW9uIGlkIChtb3N0IHJlY2VudCBzdWNjZXNzZnVsIGRlcGxveSBpbi13aW5kb3cpLCBvciBudWxsLiAqL1xuICBjb3JyZWxhdGVkRXhlY3V0aW9uSWQ6IHN0cmluZyB8IG51bGw7XG4gIC8qKiBUaGF0IGRlcGxveSdzIGNvbXBsZXRpb24gaW5zdGFudCwgb3IgbnVsbCB3aGVuIHVuY29ycmVsYXRlZC4gKi9cbiAgZGVwbG95Q29tcGxldGVkQXQ6IHN0cmluZyB8IG51bGw7XG59XG5cbi8qKiBSZXN1bHQgb2YgdGhlIHdpcmluZy10ZXN0IGRyeS1ydW4gY29ycmVsYXRpb24gKHtAbGluayBSZXBvcnRpbmdTZXJ2aWNlLnRlc3RJbmNpZGVudENvcnJlbGF0aW9ufSkuICovXG5leHBvcnQgaW50ZXJmYWNlIEluY2lkZW50VGVzdFJlc3VsdCB7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG4gIC8qKiBUaGUgc3ludGhldGljIGluY2lkZW50J3Mgb3BlbmVkQXQgKG5vdywgSVNPKS4gKi9cbiAgb3BlbmVkQXQ6IHN0cmluZztcbiAgLyoqIFRoZSBlZmZlY3RpdmUgY29ycmVsYXRpb24gd2luZG93IHVzZWQuICovXG4gIHdpbmRvd0hvdXJzOiBudW1iZXI7XG4gIC8qKiBXaGV0aGVyIGEgcmVjZW50IHN1Y2Nlc3NmdWwgZGVwbG95IHRvIGBlbnZpcm9ubWVudGAgY29ycmVsYXRlZC4gKi9cbiAgY29ycmVsYXRlZDogYm9vbGVhbjtcbiAgLyoqIFRoZSBjb3JyZWxhdGVkIGRlcGxveSBleGVjdXRpb24gaWQsIG9yIG51bGwuICovXG4gIGV4ZWN1dGlvbklkOiBzdHJpbmcgfCBudWxsO1xuICAvKiogVGhhdCBkZXBsb3kncyBjb21wbGV0aW9uIGluc3RhbnQsIG9yIG51bGwuICovXG4gIGRlcGxveUNvbXBsZXRlZEF0OiBzdHJpbmcgfCBudWxsO1xufVxuXG4vLyBET1JBIHBlcmZvcm1hbmNlIGJhbmRzICh0aHJlc2hvbGRzIGZyb20gdGhlIERPUkEvQWNjZWxlcmF0ZSByZXBvcnRzKS4gRWFjaFxuLy8gaGVscGVyIHJldHVybnMgYG51bGxgIHdoZW4gdGhlcmUncyBubyBzYW1wbGUgdG8gY2xhc3NpZnkuXG4vKiogRGVwbG95bWVudCBmcmVxdWVuY3kgYnkgZGVwbG95cy9kYXk6IGVsaXRlIOKJpTEvZGF5LCBoaWdoIOKJpTEvd2VlaywgbWVkaXVtIOKJpTEvbW9udGguICovXG5cbi8qKlxuICogRE9SQSBtZXRyaWNzIG92ZXIgYSBbZnJvbSx0b10gd2luZG93LCBvcmctc2NvcGVkIChzaW5nbGUtb3JnIG9yIHJvbGx1cCBzdWJ0cmVlKS5cbiAqXG4gKiBERVBMT1ktQkFTSVMg4oCUIGV2ZXJ5IG1ldHJpYyBkZXJpdmVzIGZyb20gcmVhbCBERVBMT1ktU1RBR0UgZXhlY3V0aW9ucywgaS5lLlxuICogYHBpcGVsaW5lX2V2ZW50c2Agcm93cyB3aXRoIGBldmVudF90eXBlPSdTVEFHRSdgIGFuZCBhIG5vbi1udWxsIGBlbnZpcm9ubWVudGBcbiAqICh0aGUgZm9yd2FyZGVyIHNldHMgYGVudmlyb25tZW50YCBvbmx5IGZvciB0aGUgc3RhZ2VzIGEgdXNlciBkZWNsYXJlZCBpblxuICogYHBiLmRlcGxveXNgKS4gQSBDSS1vbmx5IGJ1aWxkL3Rlc3QgcGlwZWxpbmUgd2l0aCBubyBkZXBsb3kgc3RhZ2UgcHJvZHVjZXMgTk9cbiAqIERPUkEgZGF0YSDigJQgdGhlcmUgaXMgbm8gcnVuLWJhc2VkIGZhbGxiYWNrLiBUaGUgcGFuZWwgaXMgZW1wdHkgdW50aWwgZGVwbG95ZWRcbiAqIHBpcGVsaW5lcyByZS1zeW50aCB3aXRoIHRoZSBuZXcgZGVwbG95IHRhZ3MgYW5kIHN0YXJ0IGVtaXR0aW5nIGRlcGxveSBldmVudHMuXG4gKlxuICogYHByb2R1Y3Rpb25gIGlzIHRoZSBoZWFkbGluZSBlbnZpcm9ubWVudDsgTVRUUiBpcyBtZWFzdXJlZCBwcm9kdWN0aW9uLW9ubHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9yYU1ldHJpY3Mge1xuICAvKiogVGhlIFtmcm9tLHRvXSB3aW5kb3cgZWNob2VkIGJhY2sgKGRlcGxveSBgY29tcGxldGVkX2F0YCByYW5nZSkuICovXG4gIHdpbmRvdzogeyBmcm9tOiBzdHJpbmc7IHRvOiBzdHJpbmcgfTtcbiAgLyoqIFRoZSBzY29waW5nIGFwcGxpZWQgKGVjaG9lZCBmb3IgdGhlIFVJKTsgYG51bGxgIHdoZW4gdW5zY29wZWQuICovXG4gIGZpbHRlcnM6IHsgcGlwZWxpbmVJZDogc3RyaW5nIHwgbnVsbDsgZW52aXJvbm1lbnQ6IHN0cmluZyB8IG51bGwgfTtcbiAgLyoqIFRoZSBoZWFkbGluZSBlbnZpcm9ubWVudCBuYW1lIChgcHJvZHVjdGlvbmApLiAqL1xuICBoZWFkbGluZTogc3RyaW5nO1xuICAvKiogUGVyLWVudmlyb25tZW50IERGIC8gQ0ZSIC8gbGVhZCB0aW1lLiBTb3J0ZWQgaGVhZGxpbmUtZmlyc3QsIHRoZW4gQeKGklouICovXG4gIGVudmlyb25tZW50czogRG9yYUVudk1ldHJpY3NbXTtcbiAgLyoqXG4gICAqIE1lYW4gVGltZSBUbyBSZXN0b3JlIOKAlCBQUk9EVUNUSU9OLU9OTFksIGZyb20gYGRlcGxveW1lbnRfb3V0Y29tZXNgLlxuICAgKiBgbWVkaWFuKHJlc3RvcmVkLmF0IOKIkiBkZXBsb3llZC5jb21wbGV0ZWRfYXQpYCBvdmVyIHJlc3RvcmVkIHByb2R1Y3Rpb25cbiAgICogaW5jaWRlbnRzIChkZWx0YXMgY2xhbXBlZCDiiaUwKS4gYGluY2lkZW50c2AgY291bnRzIHByb2R1Y3Rpb24gZGVwbG95cyBtYXJrZWRcbiAgICogZmFpbGVkOyBgcmVzdG9yZWRgIGNvdW50cyB0aG9zZSB0aGF0IHJlY292ZXJlZDsgYG1lZGlhblNlY29uZHNgIGlzIG51bGwgd2hlblxuICAgKiBubyByZXN0b3JlZCBpbmNpZGVudCBoYXMgYSByZXNvbHZhYmxlIGRlcGxveSB0aW1lLlxuICAgKi9cbiAgbWVhblRpbWVUb1Jlc3RvcmU6IHtcbiAgICBpbmNpZGVudHM6IG51bWJlcjtcbiAgICByZXN0b3JlZDogbnVtYmVyO1xuICAgIG1lZGlhblNlY29uZHM6IG51bWJlciB8IG51bGw7XG4gICAgbGV2ZWw6IERvcmFMZXZlbDtcbiAgfTtcbiAgLyoqXG4gICAqIENvdmVyYWdlIHJlY29uY2lsaWF0aW9uIOKAlCByZWdpc3RlcmVkIHBpcGVsaW5lcyB3aXRoIG5vIG9ic2VydmVkIGRlcGxveSBpblxuICAgKiB0aGUgd2luZG93LiBBIGhpZ2ggYHdpdGhvdXREZXBsb3lzYCBjb3VudCBtZWFucyBET1JBIGlzIGJsaW5kIHRvIG1vc3Qgb2YgdGhlXG4gICAqIGZsZWV0IChwaXBlbGluZXMgdGhhdCBoYXZlbid0IHJlLXN5bnRoZWQgd2l0aCBkZXBsb3kgdGFncywgb3IgZG9uJ3QgZGVwbG95KS5cbiAgICovXG4gIGNvdmVyYWdlOiB7XG4gICAgLyoqIFBpcGVsaW5lcyBpbiB0aGUgcmVnaXN0cnkgKG9yZy1zY29wZWQpLiAqL1xuICAgIHJlZ2lzdGVyZWQ6IG51bWJlcjtcbiAgICAvKiogUmVnaXN0ZXJlZCBwaXBlbGluZXMgd2l0aCDiiaUxIGRlcGxveS1zdGFnZSBleGVjdXRpb24gaW4gdGhlIHdpbmRvdy4gKi9cbiAgICBkZXBsb3lpbmc6IG51bWJlcjtcbiAgICAvKiogcmVnaXN0ZXJlZCDiiJIgZGVwbG95aW5nIChjbGFtcGVkIOKJpTApLiAqL1xuICAgIHdpdGhvdXREZXBsb3lzOiBudW1iZXI7XG4gIH07XG59XG5cbi8qKiBQZXItZW52aXJvbm1lbnQgRE9SQSBtZXRyaWNzIChkZXBsb3ltZW50IGZyZXF1ZW5jeSwgQ0ZSLCBsZWFkIHRpbWUpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb3JhRW52TWV0cmljcyB7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG4gIC8qKiBEZXBsb3ltZW50IEZyZXF1ZW5jeSDigJQgc3VjY2Vzc2Z1bCBkZXBsb3ktc3RhZ2UgZXhlY3V0aW9ucyBmb3IgdGhpcyBlbnYuICovXG4gIGRlcGxveW1lbnRGcmVxdWVuY3k6IHtcbiAgICBkZXBsb3ltZW50czogbnVtYmVyO1xuICAgIHBlckRheTogbnVtYmVyO1xuICAgIGxldmVsOiBEb3JhTGV2ZWw7XG4gIH07XG4gIC8qKlxuICAgKiBDaGFuZ2UgRmFpbHVyZSBSYXRlIOKAlCB0d28tY2xhc3M6XG4gICAqIGAoZGVwbG95VGltZUZhaWx1cmVzICsgcG9zdERlcGxveUZhaWx1cmVzKSAvIGF0dGVtcHRzYC5cbiAgICogLSBgZGVwbG95VGltZUZhaWx1cmVzYCDigJQgZGVwbG95IHN0YWdlIGByZXN1bHQ9ZmFpbGVkYCAoZnJvbSBldmVudHMpLlxuICAgKiAtIGBwb3N0RGVwbG95RmFpbHVyZXNgIOKAlCBhIHN1Y2Nlc3NmdWwgZGVwbG95IGxhdGVyIG1hcmtlZCBmYWlsZWQgaW4gcHJvZFxuICAgKiAgIChmcm9tIGBkZXBsb3ltZW50X291dGNvbWVzYCkuXG4gICAqIC0gYGF0dGVtcHRzYCDigJQgYWxsIHRlcm1pbmFsIGRlcGxveS1zdGFnZSBhdHRlbXB0cyAoc3VjY2VlZGVkICsgZmFpbGVkKS5cbiAgICovXG4gIGNoYW5nZUZhaWx1cmVSYXRlOiB7XG4gICAgcmF0ZTogbnVtYmVyO1xuICAgIGRlcGxveVRpbWVGYWlsdXJlczogbnVtYmVyO1xuICAgIHBvc3REZXBsb3lGYWlsdXJlczogbnVtYmVyO1xuICAgIGF0dGVtcHRzOiBudW1iZXI7XG4gICAgbGV2ZWw6IERvcmFMZXZlbDtcbiAgfTtcbiAgLyoqXG4gICAqIExlYWQgVGltZSDigJQgTUVBU1VSRUQ6IGBtZWRpYW4oZGVwbG95X2NvbXBsZXRlZCDiiJIgb2xkZXN0X2NvbW1pdF90aW1lKWAgb3ZlclxuICAgKiBzdWNjZXNzZnVsIGRlcGxveXMgd2l0aCBhIHJlc29sdmFibGUgY29tbWl0IHRpbWVzdGFtcCAoZGVsdGFzIGNsYW1wZWQg4omlMCkuXG4gICAqIGBtZWRpYW5TZWNvbmRzYCBpcyBgbnVsbGAgKD0gdW5rbm93bikgd2hlbiBubyBzdWNjZXNzZnVsIGRlcGxveSBpbiB0aGlzIGVudlxuICAgKiBjYXJyaWVkIGEgYGNvbW1pdF90aW1lc3RhbXBgLiBUaGUgb2xkIG1lZGlhbi1ydW4tZHVyYXRpb24gcHJveHkgaXMgcmVtb3ZlZC5cbiAgICovXG4gIGxlYWRUaW1lOiB7XG4gICAgLyoqIFN1Y2Nlc3NmdWwgZGVwbG95cyB3aXRoIGEgcmVzb2x2YWJsZSBjb21taXQgdGltZSAodGhlIG1lZGlhbiBzYW1wbGUpLiAqL1xuICAgIGRlcGxveW1lbnRzOiBudW1iZXI7XG4gICAgbWVkaWFuU2Vjb25kczogbnVtYmVyIHwgbnVsbDtcbiAgICBsZXZlbDogRG9yYUxldmVsO1xuICB9O1xufVxuXG4vKiogT25lIGludGVydmFsIGJ1Y2tldCBvZiB0aGUgRE9SQSB0cmVuZCAoZGVwbG95IGZyZXF1ZW5jeSArIGNoYW5nZSBmYWlsdXJlKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9yYVRyZW5kUG9pbnQge1xuICAvKiogQnVja2V0IHN0YXJ0IChEQVRFX1RSVU5DIG9mIHRoZSBkZXBsb3kgYGNvbXBsZXRlZF9hdGApLCBJU08gdGV4dC4gKi9cbiAgcGVyaW9kOiBzdHJpbmc7XG4gIC8qKiBTdWNjZXNzZnVsIGRlcGxveS1zdGFnZSBleGVjdXRpb25zIGluIHRoZSBidWNrZXQuICovXG4gIGRlcGxveW1lbnRzOiBudW1iZXI7XG4gIC8qKiBGYWlsZWQgZGVwbG95LXN0YWdlIGV4ZWN1dGlvbnMgaW4gdGhlIGJ1Y2tldC4gKi9cbiAgZmFpbGVkOiBudW1iZXI7XG4gIC8qKiBzdWNjZWVkZWQgKyBmYWlsZWQgaW4gdGhlIGJ1Y2tldCAoZGVwbG95IGF0dGVtcHRzKS4gKi9cbiAgdG90YWw6IG51bWJlcjtcbiAgLyoqIGZhaWxlZC90b3RhbCBhcyBhIHBlcmNlbnQgKDAgd2hlbiB0b3RhbCBpcyAwKS4gRGVwbG95LXRpbWUgQ0ZSIG9ubHkuICovXG4gIGNoYW5nZUZhaWx1cmVQY3Q6IG51bWJlcjtcbn1cblxuLyoqIFBlci1zdGFnZSBidWlsZC1oZWFsdGggbWV0cmljcyAoUGhhc2UgNikgZm9yIG9uZSBwaXBlbGluZSBvdmVyIGEgd2luZG93LiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZEhlYWx0aFN0YWdlIHtcbiAgc3RhZ2U6IHN0cmluZztcbiAgLyoqIFRlcm1pbmFsIHN0YWdlIHJ1bnMgKHN1Y2NlZWRlZCArIGZhaWxlZCkgaW4gdGhlIHdpbmRvdy4gKi9cbiAgcnVuczogbnVtYmVyO1xuICBzdWNjZXNzZXM6IG51bWJlcjtcbiAgZmFpbHVyZXM6IG51bWJlcjtcbiAgLyoqIHN1Y2Nlc3NlcyAvIHJ1bnMgYXMgYSBwZXJjZW50ICgwIHdoZW4gcnVucyBpcyAwKS4gKi9cbiAgc3VjY2Vzc1JhdGU6IG51bWJlcjtcbiAgLyoqIER1cmF0aW9uIHBlcmNlbnRpbGVzIG92ZXIgdGhlIHN0YWdlJ3MgdGVybWluYWwgcnVuczsgbnVsbCB3aGVuIG5vIGR1cmF0aW9ucy4gKi9cbiAgcDUwTXM6IG51bWJlciB8IG51bGw7XG4gIHA5ME1zOiBudW1iZXIgfCBudWxsO1xuICBwOTlNczogbnVtYmVyIHwgbnVsbDtcbn1cblxuLyoqXG4gKiBQZXItcGlwZWxpbmUgYnVpbGQtaGVhbHRoIGJyZWFrZG93biAoUGhhc2UgNikuIFN0YW5kYXJkIHJlcG9ydGluZyAoTk9UXG4gKiBgYWR2YW5jZWRfcmVwb3J0aW5nYC1nYXRlZCkg4oCUIHBlci1zdGFnZSBzdWNjZXNzIHJhdGUgKyB0aW1pbmcgcGVyY2VudGlsZXMsIHdpdGhcbiAqIHRvdGFscyBzdW1tZWQgYWNyb3NzIHN0YWdlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZEhlYWx0aCB7XG4gIHN0YWdlczogQnVpbGRIZWFsdGhTdGFnZVtdO1xuICB0b3RhbHM6IHsgcnVuczogbnVtYmVyOyBmYWlsdXJlczogbnVtYmVyOyBmYWlsdXJlUmF0ZTogbnVtYmVyIH07XG59XG5cbi8qKiBQb3N0LWRlcGxveSBpbmNpZGVudCBtYXJrZXIgKFBoYXNlIDUpIGFjY2VwdGVkIGJ5IGBSZXBvcnRpbmdTZXJ2aWNlLnJlY29yZEluY2lkZW50YC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5jaWRlbnRJbnB1dCB7XG4gIGluY2lkZW50SWQ6IHN0cmluZztcbiAgZW52aXJvbm1lbnQ6IHN0cmluZztcbiAgb3BlbmVkQXQ6IHN0cmluZztcbiAgcmVzb2x2ZWRBdD86IHN0cmluZztcbiAgc2V2ZXJpdHk6IHN0cmluZztcbn1cblxuLyoqIEV2ZW50IHBheWxvYWQgYWNjZXB0ZWQgYnkgYFJlcG9ydGluZ1NlcnZpY2UuaW5nZXN0RXZlbnRzYC4gTWlycm9ycyB0aGUgcm91dGUncyBab2Qgc2hhcGUuICovXG5leHBvcnQgaW50ZXJmYWNlIEluZ2VzdEV2ZW50IHtcbiAgLyoqIFN0YWJsZSBwaXBlbGluZSBpZCB0aGUgZXZlbnRzIExhbWJkYSByZWFkIGZyb20gdGhlIGBwYi5waXBlbGluZS1pZGBcbiAgICogIHRhZyAoPSB0aGUgcGxhdGZvcm0gcGlwZWxpbmVJZCkuIFRoZSByZWdpc3RyeSBqb2luIGtleS4gKi9cbiAgcGlwZWxpbmVJZDogc3RyaW5nO1xuICBldmVudFNvdXJjZTogJ2NvZGVwaXBlbGluZScgfCAnY29kZWJ1aWxkJyB8ICdwbHVnaW4tYnVpbGQnO1xuICBldmVudFR5cGU6ICdQSVBFTElORScgfCAnU1RBR0UnIHwgJ0FDVElPTicgfCAnQlVJTEQnO1xuICBzdGF0dXM6IHN0cmluZztcbiAgZXhlY3V0aW9uSWQ/OiBzdHJpbmc7XG4gIHN0YWdlTmFtZT86IHN0cmluZztcbiAgYWN0aW9uTmFtZT86IHN0cmluZztcbiAgLyoqIEh1bWFuLXJlYWRhYmxlIGZhaWx1cmUgcmVhc29uIChBY3Rpb24gZXZlbnRzKS4gKi9cbiAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICBzdGFydGVkQXQ/OiBzdHJpbmc7XG4gIGNvbXBsZXRlZEF0Pzogc3RyaW5nO1xuICBkdXJhdGlvbk1zPzogbnVtYmVyO1xuICAvKiogU291cmNlIGNvbW1pdCBpZCBvZiB0aGUgY2hhbmdlIGJlaW5nIHNoaXBwZWQgKERPUkEgZGVwbG95IGF0dHJpYnV0aW9uKS4gKi9cbiAgY29tbWl0U2hhPzogc3RyaW5nO1xuICAvKiogU291cmNlIHJlZi9icmFuY2ggKERPUkEgZGVwbG95IGF0dHJpYnV0aW9uKS4gKi9cbiAgY29tbWl0UmVmPzogc3RyaW5nO1xuICAvKiogRGVwbG95IHRhcmdldCAoZS5nLiBcInByb2R1Y3Rpb25cIikuIEl0cyBwcmVzZW5jZSBvbiBhIFNUQUdFL0FDVElPTiBldmVudFxuICAgKiAgbWFya3MgYSByZWFsIGRlcGxveW1lbnQgKGRlcml2ZWQgc2VydmVyLXNpZGUg4oCUIHRoZXJlIGlzIG5vIGBpc0RlcGxveWApLiAqL1xuICBlbnZpcm9ubWVudD86IHN0cmluZztcbiAgLyoqIE9sZGVzdCB1bnNoaXBwZWQgY29tbWl0IHRpbWVzdGFtcCAoSVNPIDg2MDEpIGZvciBtZWFzdXJlZCBsZWFkIHRpbWUuICovXG4gIGNvbW1pdFRpbWVzdGFtcD86IHN0cmluZztcbiAgLyoqIE51bWJlciBvZiBjb21taXRzIHNoaXBwZWQgaW4gdGhpcyBjaGFuZ2UgKOKJpTEpLiAqL1xuICBjb21taXRDb3VudD86IG51bWJlcjtcbiAgZGV0YWlsPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8qKlxuICogUGVyLWV2ZW50IG1ldHJpYyBkZXNjcmlwdG9yIGVtaXR0ZWQgKHZpYSB0aGUge0BsaW5rIFJlcG9ydGluZ1NlcnZpY2UuaW5nZXN0RXZlbnRzfVxuICogYG9uTWV0cmljYCBob29rKSBmb3IgZWFjaCBSRUdJU1RFUkVEIHRlcm1pbmFsIGRlcGxveS9zdGFnZSBldmVudCwgc28gdGhlIHJvdXRlXG4gKiBsYXllciBjYW4gZmFuIHRoZW0gaW50byBQcm9tZXRoZXVzIGNvdW50ZXJzIHdpdGhvdXQgcGlwZWxpbmUtZGF0YSBpbXBvcnRpbmdcbiAqIGFwaS1zZXJ2ZXIncyBtZXRyaWNzIHJlZ2lzdHJ5LiBgcmVzdWx0YCBpcyB0aGUgdGVybWluYWwgb3V0Y29tZTsgYGVudmlyb25tZW50YFxuICogaXMgbm9uLW51bGwgb25seSBmb3IgYSBkZXBsb3ktc3RhZ2UgZXZlbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5nZXN0TWV0cmljIHtcbiAgcGlwZWxpbmVJZDogc3RyaW5nO1xuICBvcmdJZDogc3RyaW5nO1xuICBzdGFnZTogc3RyaW5nO1xuICBlbnZpcm9ubWVudDogc3RyaW5nIHwgbnVsbDtcbiAgcmVzdWx0OiAnc3VjY2VlZGVkJyB8ICdmYWlsZWQnO1xufVxuXG4vKiogQ291bnRzICsgdGhlIChwb3NzaWJseSB0cnVuY2F0ZWQpIGxpc3Qgb2YgdW5yZWdpc3RlcmVkIHBpcGVsaW5lIGlkcyB0aGUgY2FsbGVyIGNhbiBsb2cuICovXG5leHBvcnQgaW50ZXJmYWNlIEluZ2VzdFJlc3VsdCB7XG4gIGluc2VydGVkOiBudW1iZXI7XG4gIHNraXBwZWQ6IG51bWJlcjtcbiAgdW5yZWdpc3RlcmVkUGlwZWxpbmVJZHM6IHN0cmluZ1tdO1xuICAvKipcbiAgICogRXZlcnkgb3JnIHdpdGggYXQgbGVhc3Qgb25lIHJvdyBpbiB0aGlzIGJhdGNoLCBkZWR1cGVkLlxuICAgKlxuICAgKiBBbHJlYWR5IGNvbXB1dGVkIGZvciBwb3N0LWNvbW1pdCBjYWNoZSBpbnZhbGlkYXRpb247IHN1cmZhY2VkIGJlY2F1c2UgdGhlXG4gICAqIGluZ2VzdCByb3V0ZSBuZWVkcyB0aGUgc2FtZSBzZXQgdG8gcHVzaCBpdHMgbGl2ZSBTU0UgZnJhbWUuIFRoYXQgZmFuLW91dFxuICAgKiB1c2VkIHRvIGJlIGRyaXZlbiBvZmYgdGhlIHN0YWdlLW1ldHJpYyBob29rLCB3aGljaCBvbmx5IGZpcmVzIGZvciBTVEFHRVxuICAgKiBldmVudHMg4oCUIHNvIGEgYmF0Y2ggb2YgUElQRUxJTkUgb3IgQlVJTEQgZXZlbnRzIGxhbmRlZCByb3dzIGFuZCBwdXNoZWQgbm9cbiAgICogZnJhbWUgYXQgYWxsLCBhbmQgdGhlIGRhc2hib2FyZCBzaWxlbnRseSB3ZW50IGJhY2sgdG8gbmVlZGluZyBhIG1hbnVhbFxuICAgKiByZWZyZXNoIGZvciBleGFjdGx5IHRoZSBldmVudHMgYW4gZXhlY3V0aW9uIHZpZXcgaXMgYWJvdXQuXG4gICAqL1xuICBhZmZlY3RlZE9yZ3M6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIE9uZSBvcmcncyBpbmdlc3Rpb24taGVhbHRoIHJvdyBhcyBSRUFEIGJhY2sgYnkgdGhlIFJlcG9ydHMgVUkgKFBoYXNlIDMpLiBUaGVcbiAqIEFXUyBldmVudHMgTGFtYmRhIHdyaXRlcyBpdDsgdGhpcyBpcyB0aGUgc2hhcGUgdGhhdCBsZXRzIHRoZSBVSSB0ZWxsXG4gKiBcImluZ2VzdGlvbiBpcyBoZWFsdGh5LCB0aGVyZSB3ZXJlIHNpbXBseSBubyBkZXBsb3lzIGluIHRoZSByYW5nZVwiIGFwYXJ0IGZyb21cbiAqIFwid2UgaGF2ZW4ndCBoZWFyZCBmcm9tIHRoZSBpbmdlc3QgcGlwZWxpbmUgc2luY2UgWFwiLlxuICpcbiAqIGBudWxsYCBmcm9tIHtAbGluayBSZXBvcnRpbmdTZXJ2aWNlLmdldEluZ2VzdEhlYWx0aH0gbWVhbnMgdGhlIGRlcGxveW1lbnQgaGFzXG4gKiBORVZFUiByZXBvcnRlZCDigJQgbm90IFwic3RhbGVcIi4gVGhlIHR3byBtdXN0IG5vdCBiZSBjb25mbGF0ZWQ6IGEgZnJlc2ggaW5zdGFsbFxuICogKG9yIG9uZSB3aG9zZSBmb3J3YXJkZXIgd2FzIG5ldmVyIHdpcmVkIHVwKSBoYXMgbm8gaGVhcnRiZWF0IGF0IGFsbCwgYW5kXG4gKiBjYWxsaW5nIHRoYXQgXCJzdGFsZVwiIHdvdWxkIGludmVudCBhIHJlZ3Jlc3Npb24gdGhhdCBuZXZlciBoYXBwZW5lZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmdlc3RIZWFsdGhTdGF0dXMge1xuICAvKiogV2hlbiB0aGUgZm9yd2FyZGVyIGxhc3QgcG9zdGVkIGEgaGVhcnRiZWF0IChpdHMgb3duIGNsb2NrLCBJU08gODYwMSkuICovXG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xuICAvKiogVGltZXN0YW1wIG9mIHRoZSBuZXdlc3QgZXZlbnQgaXQgaGFkIGZvcndhcmRlZCwgb3IgbnVsbCBpZiBpdCBoYXMgc2VlbiBub25lLiAqL1xuICBsYXN0RXZlbnRBdDogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIEN1bXVsYXRpdmUgZXZlbnRzIGZvcndhcmRlZCwgb3IgbnVsbCB3aGVuIHRoZSBmb3J3YXJkZXIgZG9lc24ndCByZXBvcnQgaXQuICovXG4gIGZvcndhcmRlZDogbnVtYmVyIHwgbnVsbDtcbiAgLyoqIEN1bXVsYXRpdmUgZXZlbnRzIERST1BQRUQgKG5vbi16ZXJvIOKHkiBkYXRhIGxvc3MgdXBzdHJlYW0gb2YgdGhlIHJlcG9ydHMpLiAqL1xuICBkcm9wcGVkOiBudW1iZXIgfCBudWxsO1xufVxuXG5cbi8qKlxuICogUmVhZC1vbmx5IHJlcG9ydGluZyBzZXJ2aWNlIGZvciBwaXBlbGluZSBleGVjdXRpb24gYW5kIHBsdWdpbiBpbnZlbnRvcnkgYWdncmVnYXRpb25zLlxuICogRG9lcyBub3QgZXh0ZW5kIENydWRTZXJ2aWNlIOKAlCByZXBvcnRzIGFyZSBhZ2dyZWdhdGUgcXVlcmllcywgbm90IGVudGl0eSBDUlVELlxuICpcbiAqIEFsbCBxdWVyaWVzIGFyZSBjYWNoZWQgaW4tbWVtb3J5IHRvIGF2b2lkIHJlcGVhdGVkIGV4cGVuc2l2ZSBTUUwgYWdncmVnYXRpb25zOlxuICogLSBJbnZlbnRvcnkgcXVlcmllcyAocGx1Z2luIHN1bW1hcnkvZGlzdHJpYnV0aW9uL3ZlcnNpb25zKTogNSBtaW4gVFRMXG4gKiAtIFRpbWVzZXJpZXMgcXVlcmllcyAoZXhlY3V0aW9uL2J1aWxkIG1ldHJpY3Mgd2l0aCBkYXRlIHJhbmdlcyk6IDIgbWluIFRUTFxuICovXG5cbi8qKlxuICogSW50ZXJuYWwgcm93IHNoYXBlcyBmb3IgdGhlIERPUkEgcXVlcmllcy4gRXhwb3J0ZWQgYmVjYXVzZSAuL2RvcmEudHMgY29uc3VtZXNcbiAqIHRoZW07IG5vdCBwYXJ0IG9mIHRoZSBwYWNrYWdlJ3MgcHVibGljIHN1cmZhY2UgKHJlcG9ydGluZy1zZXJ2aWNlLnRzXG4gKiByZS1leHBvcnRzIHRoaXMgbW9kdWxlIHdob2xlc2FsZSwgd2hpY2ggaXMgYSBkZWxpYmVyYXRlIHNpbXBsaWZpY2F0aW9uIOKAlCB0aGVzZVxuICogZGVzY3JpYmUgcXVlcnkgcmVzdWx0cywgbm90IEFQSSBjb250cmFjdHMpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveVJvdyB7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG4gIHN0YXR1czogJ1NVQ0NFRURFRCcgfCAnRkFJTEVEJyB8IHN0cmluZztcbiAgLyoqIERlcGxveSBleGVjdXRpb24gaWQg4oCUIHRoZSBhdHRyaWJ1dGlvbiBrZXkgZm9yIGRlZHVwIGFnYWluc3Qgb3V0Y29tZXMvaW5jaWRlbnRzLiAqL1xuICBleGVjdXRpb25faWQ6IHN0cmluZyB8IG51bGw7XG4gIGNvbXBsZXRlZF9hdDogc3RyaW5nIHwgbnVsbDtcbiAgY29tbWl0X3RzOiBzdHJpbmcgfCBudWxsO1xuICAvKipcbiAgICogV2hldGhlciB0aGUgZGVwbG95IGNvbXBsZXRlZCBpbnNpZGUgW2Zyb20sdG9dLiBBYnNlbnQgKHVuZGVmaW5lZCkgaW4gdW5pdFxuICAgKiBmaXh0dXJlcyDih5IgdHJlYXRlZCBhcyBpbi13aW5kb3cuIGB0YC9gZmAgdG9sZXJhdGVkIChwZyBib29sZWFuIHRleHQgZm9ybSkuXG4gICAqL1xuICBpbl93aW5kb3c/OiBib29sZWFuIHwgc3RyaW5nIHwgbnVsbDtcbn1cblxuLyoqIFJhdyBwb3N0LWRlcGxveSBvdXRjb21lIG1hcmtlciByb3cgKGZyb20gYGRlcGxveW1lbnRfb3V0Y29tZXNgLCBpbi13aW5kb3cpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBPdXRjb21lUm93IHtcbiAgZW52aXJvbm1lbnQ6IHN0cmluZyB8IG51bGw7XG4gIG91dGNvbWU6ICdmYWlsZWQnIHwgJ3Jlc3RvcmVkJyB8IHN0cmluZztcbiAgLyoqIEV4ZWN1dGlvbiB0aGUgdXNlciBtYXJrZWQg4oCUIGRlZHVwIGtleSBhZ2FpbnN0IGluY2lkZW50LWNvcnJlbGF0ZWQgZGVwbG95cy4gKi9cbiAgZXhlY3V0aW9uX2lkOiBzdHJpbmcgfCBudWxsO1xufVxuXG4vKiogUHJvZHVjdGlvbiByZXN0b3JlZC1pbmNpZGVudCBwYWlyOiByZWNvdmVyeSB0aW1lICsgdGhlIGRlcGxveSdzIGNvbXBsZXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIE10dHJQYWlyUm93IHtcbiAgcmVzdG9yZWRfYXQ6IHN0cmluZyB8IG51bGw7XG4gIGRlcGxveWVkX2F0OiBzdHJpbmcgfCBudWxsO1xuICAvKiogRXhlY3V0aW9uIGlkIOKAlCBsZXRzIGluY2lkZW50IHByZWNlZGVuY2Ugb3ZlcnJpZGUgdGhlIG1hbnVhbCBvdXRjb21lIHBlciBkZXBsb3kuICovXG4gIGV4ZWN1dGlvbl9pZDogc3RyaW5nIHwgbnVsbDtcbn1cblxuLyoqXG4gKiBSYXcgaW5jaWRlbnQgcm93IChmcm9tIGBpbmNpZGVudHNgLCBvcGVuZWQgaW4td2luZG93KS4gQ29ycmVsYXRlZCBpbiBKUyB0byB0aGVcbiAqIG1vc3QgcmVjZW50IHN1Y2Nlc3NmdWwgZGVwbG95IHRvIGBlbnZpcm9ubWVudGAgd2l0aGluIERPUkFfSU5DSURFTlRfV0lORE9XX0hPVVJTXG4gKiDihpIgYW4gYXV0b21hdGVkIHBvc3QtZGVwbG95IGZhaWx1cmUgKENGUikgKyByZWFsIHJlY292ZXJ5IHRpbWUgKE1UVFIpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluY2lkZW50Um93IHtcbiAgZW52aXJvbm1lbnQ6IHN0cmluZztcbiAgb3BlbmVkX2F0OiBzdHJpbmcgfCBudWxsO1xuICByZXNvbHZlZF9hdDogc3RyaW5nIHwgbnVsbDtcbn1cblxuLyoqIENvdmVyYWdlIGNvdW50czogcmVnaXN0ZXJlZCBwaXBlbGluZXMgdnMgdGhvc2UgdGhhdCBhY3R1YWxseSBkZXBsb3llZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ292ZXJhZ2VSb3cge1xuICByZWdpc3RlcmVkOiBudW1iZXIgfCBzdHJpbmcgfCBudWxsO1xuICBkZXBsb3lpbmc6IG51bWJlciB8IHN0cmluZyB8IG51bGw7XG59XG4iXX0=
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3JlcG9ydGluZy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogUHVibGljIHJlc3VsdCBzaGFwZXMgZm9yIHRoZSByZXBvcnRpbmcgc2VydmljZS5cbiAqXG4gKiBTcGxpdCBvdXQgb2YgcmVwb3J0aW5nLXNlcnZpY2UudHMgcHVyZWx5IGZvciBzaXplOiB0aGVzZSBhcmUgZGF0YSBjb250cmFjdHNcbiAqIHdpdGggbm8gYmVoYXZpb3VyLiByZXBvcnRpbmctc2VydmljZS50cyByZS1leHBvcnRzIHRoZW0sIHNvIHRoZVxuICogYEBwaXBlbGluZS1idWlsZGVyL3BpcGVsaW5lLWRhdGFgIHB1YmxpYyBzdXJmYWNlIGlzIHVuY2hhbmdlZC5cbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGlvbkNvdW50IHtcbiAgaWQ6IHN0cmluZztcbiAgcHJvamVjdDogc3RyaW5nO1xuICBvcmdhbml6YXRpb246IHN0cmluZztcbiAgcGlwZWxpbmVOYW1lOiBzdHJpbmcgfCBudWxsO1xuICB0b3RhbDogbnVtYmVyO1xuICBzdWNjZWVkZWQ6IG51bWJlcjtcbiAgZmFpbGVkOiBudW1iZXI7XG4gIGNhbmNlbGVkOiBudW1iZXI7XG4gIGZpcnN0RXhlY3V0aW9uOiBzdHJpbmcgfCBudWxsO1xuICBsYXN0RXhlY3V0aW9uOiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRpbWVTZXJpZXNFbnRyeSB7XG4gIHBlcmlvZDogc3RyaW5nO1xuICBzdWNjZWVkZWQ6IG51bWJlcjtcbiAgZmFpbGVkOiBudW1iZXI7XG4gIGNhbmNlbGVkOiBudW1iZXI7XG4gIHN1Y2Nlc3NQY3Q6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEdXJhdGlvblN0YXRzIHtcbiAgaWQ6IHN0cmluZztcbiAgcHJvamVjdDogc3RyaW5nO1xuICBwaXBlbGluZU5hbWU6IHN0cmluZyB8IG51bGw7XG4gIGF2Z01zOiBudW1iZXI7XG4gIG1pbk1zOiBudW1iZXI7XG4gIG1heE1zOiBudW1iZXI7XG4gIHA5NU1zOiBudW1iZXI7XG4gIGV4ZWN1dGlvbnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZUV4ZWN1dGlvbiB7XG4gIGV4ZWN1dGlvbklkOiBzdHJpbmc7XG4gIC8qKiBSb2xsZWQtdXAgdGVybWluYWwgc3RhdHVzOiBzdWNjZWVkZWQgfCBmYWlsZWQgfCBjYW5jZWxlZCB8IGluLXByb2dyZXNzLiAqL1xuICBzdGF0dXM6IHN0cmluZztcbiAgc3RhcnRlZEF0OiBzdHJpbmcgfCBudWxsO1xuICBlbmRlZEF0OiBzdHJpbmcgfCBudWxsO1xuICBkdXJhdGlvbk1zOiBudW1iZXIgfCBudWxsO1xuICAvKiogRmlyc3QgZmFpbGluZyBzdGFnZS9hY3Rpb24gZm9yIHRoZSBleGVjdXRpb24gKG51bGwgd2hlbiBpdCBkaWRuJ3QgZmFpbCkuICovXG4gIGZhaWxpbmdTdGFnZTogc3RyaW5nIHwgbnVsbDtcbiAgZmFpbGluZ0FjdGlvbjogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFnZUZhaWx1cmUge1xuICBzdGFnZU5hbWU6IHN0cmluZztcbiAgZmFpbHVyZXM6IG51bWJlcjtcbiAgdG90YWw6IG51bWJlcjtcbiAgZmFpbHVyZVBjdDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWdlQm90dGxlbmVjayB7XG4gIGlkOiBzdHJpbmc7XG4gIHBpcGVsaW5lTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIGF2Z01zOiBudW1iZXI7XG4gIG1heE1zOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uRmFpbHVyZSB7XG4gIGFjdGlvbk5hbWU6IHN0cmluZztcbiAgZmFpbHVyZXM6IG51bWJlcjtcbiAgdG90YWw6IG51bWJlcjtcbiAgZmFpbHVyZVBjdDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yRW50cnkge1xuICBlcnJvclBhdHRlcm46IHN0cmluZztcbiAgb2NjdXJyZW5jZXM6IG51bWJlcjtcbiAgYWZmZWN0ZWRQaXBlbGluZXM6IG51bWJlcjtcbiAgbGFzdFNlZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5TdW1tYXJ5IHtcbiAgdG90YWw6IG51bWJlcjtcbiAgYWN0aXZlOiBudW1iZXI7XG4gIGluYWN0aXZlOiBudW1iZXI7XG4gIC8qKiBDb3VudHMgcGVyIHNoYXJpbmcgcnVuZyDigJQgb25lIGJ1Y2tldCBwZXIgYHZpc2liaWxpdHlgIHZhbHVlLiAqL1xuICBwdWJsaWM6IG51bWJlcjtcbiAgb3JnOiBudW1iZXI7XG4gIHByaXZhdGU6IG51bWJlcjtcbiAgdW5pcXVlTmFtZXM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlQ29tcHV0ZURpc3RyaWJ1dGlvbiB7XG4gIHBsdWdpblR5cGU6IHN0cmluZztcbiAgY29tcHV0ZVR5cGU6IHN0cmluZztcbiAgY291bnQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWZXJzaW9uQ291bnQge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZlcnNpb25Db3VudDogbnVtYmVyO1xuICBsYXRlc3RWZXJzaW9uOiBzdHJpbmc7XG4gIGhhc0RlZmF1bHQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRUaW1lU2VyaWVzRW50cnkge1xuICBwZXJpb2Q6IHN0cmluZztcbiAgc3VjY2VlZGVkOiBudW1iZXI7XG4gIGZhaWxlZDogbnVtYmVyO1xuICBzdWNjZXNzUGN0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGREdXJhdGlvbiB7XG4gIHBsdWdpbk5hbWU6IHN0cmluZztcbiAgYXZnTXM6IG51bWJlcjtcbiAgbWF4TXM6IG51bWJlcjtcbiAgYnVpbGRzOiBudW1iZXI7XG59XG5cbi8qKlxuICogUGx1Z2luIHJ1bnRpbWUgcmVwb3J0IGZpbHRlcnMuIGBwdWJsaXNoZXI6IG51bGxgIHNlbGVjdHMgb3duLW9yZ1xuICogKHB1Ymxpc2hlci1sZXNzKSBwbHVnaW5zOyBhbiBvbWl0dGVkIGZpZWxkIGRvZXNuJ3QgZmlsdGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpblJ1bnRpbWVGaWx0ZXIge1xuICBuYW1lPzogc3RyaW5nO1xuICBwdWJsaXNoZXI/OiBzdHJpbmcgfCBudWxsO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xufVxuXG4vKiogUGVyIHBsdWdpbiB2ZXJzaW9uIHJ1bnRpbWUgc3RhdHMgb3ZlciBhIHdpbmRvdyAodGVybWluYWwgQUNUSU9OIHJ1bnMpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5SdW50aW1lU3RhdHMge1xuICBwbHVnaW5QdWJsaXNoZXI6IHN0cmluZyB8IG51bGw7XG4gIHBsdWdpbk5hbWU6IHN0cmluZztcbiAgcGx1Z2luVmVyc2lvbjogc3RyaW5nO1xuICBydW5zOiBudW1iZXI7XG4gIHN1Y2NlZWRlZDogbnVtYmVyO1xuICBmYWlsZWQ6IG51bWJlcjtcbiAgLyoqIDDigJMxMDAsIG9uZSBkZWNpbWFsLiAqL1xuICBzdWNjZXNzUGN0OiBudW1iZXI7XG4gIC8qKiBOdWxsIHdoZW4gbm8gcnVuIGluIHRoZSBncm91cCBjYXJyaWVkIGEgZHVyYXRpb24uICovXG4gIHA1ME1zOiBudW1iZXIgfCBudWxsO1xuICBwOTVNczogbnVtYmVyIHwgbnVsbDtcbiAgbGFzdFJ1bjogc3RyaW5nO1xufVxuXG4vKiogQ3Jvc3Mtb3JnIDMwLWRheSBhZ2dyZWdhdGUgZm9yIG9uZSBgKHB1Ymxpc2hlciwgbmFtZSlgIGxpc3RpbmcuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpblJ1bnRpbWVBZ2dyZWdhdGUge1xuICBydW5zMzBkOiBudW1iZXI7XG4gIC8qKiAw4oCTMTsgbnVsbCB3aGVuIHRoZXJlIHdlcmUgbm8gcnVucy4gKi9cbiAgc3VjY2Vzc1JhdGUzMGQ6IG51bWJlciB8IG51bGw7XG4gIGFjdGl2ZU9yZ0NvdW50MzBkOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRGYWlsdXJlIHtcbiAgcGx1Z2luTmFtZTogc3RyaW5nO1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgb2NjdXJyZW5jZXM6IG51bWJlcjtcbiAgbGFzdFNlZW46IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgRE9SQSBoZWFkbGluZSBlbnZpcm9ubWVudC4gRGVwbG95bWVudCB0byB0aGlzIGxpdGVyYWwgZW52IG5hbWUgaXMgdGhlXG4gKiBpbmR1c3RyeS1zdGFuZGFyZCBET1JBIHNpZ25hbDsgTVRUUiBpcyBtZWFzdXJlZCBwcm9kdWN0aW9uLW9ubHksIGFuZCB0aGlzXG4gKiBlbnZpcm9ubWVudCdzIGNhcmQgaXMgdGhlIHN1bW1hcnkgc2hvd24gYXQgdGhlIHRvcCBvZiB0aGUgcGFuZWwuXG4gKi9cblxuLyoqIFBlci1vcmcgcmV0ZW50aW9uIG92ZXJyaWRlIHJvdy4gQm90aCBudWxsYWJsZSDih5IgZ2xvYmFsIGRlZmF1bHRzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRpbmdSZXRlbnRpb25TZXR0aW5ncyB7XG4gIGV2ZW50UmV0ZW50aW9uRGF5czogbnVtYmVyIHwgbnVsbDtcbiAgZG9yYVJldGVudGlvbkRheXM6IG51bWJlciB8IG51bGw7XG4gIGRlZmF1bHRFdmVudFJldGVudGlvbkRheXM6IG51bWJlcjtcbiAgZGVmYXVsdERvcmFSZXRlbnRpb25EYXlzOiBudW1iZXI7XG59XG5cbi8qKiBPcHRpb25zIGZvciB0aGUgcmVwb3J0aW5nIHJldGVudGlvbiBzd2VlcC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0aW5nUmV0ZW50aW9uT3B0aW9ucyB7XG4gIC8qKiBSb3dzIGRlbGV0ZWQgcGVyIHN0YXRlbWVudCAoZGVmYXVsdCAxMDAwKS4gKi9cbiAgYmF0Y2hTaXplPzogbnVtYmVyO1xuICAvKiogTWF4IGJhdGNoZXMgcGVyIHRhYmxlIHBlciBvcmcgcGVyIHRpY2sgKGRlZmF1bHQgNTApOyB0aGUgcmVzdCBkZWZlcnMgdG9cbiAgICogIHRoZSBuZXh0IHRpY2sgc28gYSBodWdlIGJhY2tsb2cgY2FuJ3QgaG9sZCBsb2NrcyB0b28gbG9uZy4gKi9cbiAgbWF4QmF0Y2hlc1BlclRhYmxlPzogbnVtYmVyO1xuICAvKiogRml4ZWQgXCJub3dcIiBmb3IgdGhlIHdob2xlIHN3ZWVwIChkZWZhdWx0IGBuZXcgRGF0ZSgpYCkuICovXG4gIG5vdz86IERhdGU7XG4gIC8qKlxuICAgKiBSZXNvbHZlIHRoZSBvcmcgd2hvc2UgYGRvcmFfc2V0dGluZ3NgIHJldGVudGlvbiBnb3Zlcm5zIGBvcmdJZGAncyByb3dzIOKAlCBpdHNcbiAgICogYWNjb3VudCBST09ULiBSZXRlbnRpb24gaXMgYSBiaWxsaW5nIGVudGl0bGVtZW50IHN5bmNlZCBvbnRvIHRoZSByb290IG9ubHksXG4gICAqIHNvIGEgdGVhbSdzIHJvd3MgbXVzdCBmb2xsb3cgdGhlIHJvb3QncyAocHVyY2hhc2VkKSB3aW5kb3csIG5vdCB0aGUgZW52XG4gICAqIGRlZmF1bHQuIFJldHVybiBgbnVsbGAgd2hlbiB0aGUgcm9vdCBjYW4ndCBiZSByZXNvbHZlZDogdGhhdCBvcmcgaXMgU0tJUFBFRFxuICAgKiB0aGlzIHRpY2sgKG5ldmVyIHB1cmdlZCBvbiBhIHBvc3NpYmx5LXNob3J0ZXIgd2luZG93KS4gRGVmYXVsdDogaWRlbnRpdHlcbiAgICogKGV2ZXJ5IG9yZyBpcyBpdHMgb3duIHJvb3Qg4oCUIGEgZmxhdCBkZXBsb3ltZW50KS5cbiAgICovXG4gIHJlc29sdmVSZXRlbnRpb25PcmdJZD86IChvcmdJZDogc3RyaW5nKSA9PiBQcm9taXNlPHN0cmluZyB8IG51bGw+O1xufVxuXG4vKiogUGVyLXJ1biBwdXJnZSB0YWxsaWVzIChhbHNvIGxvZ2dlZCkuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydGluZ1JldGVudGlvbkNvdW50cyB7XG4gIC8qKiBPcmdzIHN3ZXB0IHRoaXMgcnVuLiAqL1xuICBvcmdzOiBudW1iZXI7XG4gIC8qKiBTdGFuZGFyZCBgcGlwZWxpbmVfZXZlbnRzYCAoZW52aXJvbm1lbnQgSVMgTlVMTCkgcm93cyBwdXJnZWQuICovXG4gIHN0YW5kYXJkRXZlbnRzOiBudW1iZXI7XG4gIC8qKiBET1JBLXNvdXJjZSBgcGlwZWxpbmVfZXZlbnRzYCAoZW52aXJvbm1lbnQgSVMgTk9UIE5VTEwpIHJvd3MgcHVyZ2VkLiAqL1xuICBkb3JhRXZlbnRzOiBudW1iZXI7XG4gIC8qKiBgZGVwbG95bWVudF9vdXRjb21lc2Agcm93cyBwdXJnZWQuICovXG4gIGRlcGxveW1lbnRPdXRjb21lczogbnVtYmVyO1xuICAvKiogYGluY2lkZW50c2Agcm93cyBwdXJnZWQuICovXG4gIGluY2lkZW50czogbnVtYmVyO1xufVxuXG4vKipcbiAqIERPUkEgcGVyZm9ybWFuY2UgYmFuZC4gYG51bGxgID0gaW5zdWZmaWNpZW50IGRhdGEgdG8gY2xhc3NpZnkgKG5vXG4gKiBkZXBsb3ltZW50cy9mYWlsdXJlcy9sZWFkLXRpbWUgc2FtcGxlIGluIHRoZSB3aW5kb3cpLCBzbyB0aGUgVUkgc2hvd3MgYVxuICogbmV1dHJhbCBzdGF0ZSByYXRoZXIgdGhhbiBtaXNsYWJlbGluZyBhbiBlbXB0eSB3aW5kb3cgYXMgXCJsb3dcIi5cbiAqL1xuZXhwb3J0IHR5cGUgRG9yYUxldmVsID0gJ2VsaXRlJyB8ICdoaWdoJyB8ICdtZWRpdW0nIHwgJ2xvdycgfCBudWxsO1xuXG4vKiogT3B0aW9uYWwgc2NvcGluZyBmb3Ige0BsaW5rIFJlcG9ydGluZ1NlcnZpY2UuZ2V0RG9yYU1ldHJpY3N9LiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb3JhT3B0aW9ucyB7XG4gIC8qKiBSZXN0cmljdCB0byBhIHNpbmdsZSBwaXBlbGluZSAocGVyLXBpcGVsaW5lIERPUkEpLiAqL1xuICBwaXBlbGluZUlkPzogc3RyaW5nO1xuICAvKiogUmVzdHJpY3QgdG8gYSBzaW5nbGUgZGVwbG95IGVudmlyb25tZW50IChlbHNlIGFsbCBkZXBsb3kgZW52aXJvbm1lbnRzKS4gKi9cbiAgZW52aXJvbm1lbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQZXItb3JnIGluY2lkZW504oaSZGVwbG95IGNvcnJlbGF0aW9uIHdpbmRvdyBvdmVycmlkZSAoaG91cnMpLiBXaGVuIHNldCAoYVxuICAgKiBwb3NpdGl2ZSBmaW5pdGUgbnVtYmVyKSwgdGhlIGluY2lkZW50IGNvcnJlbGF0aW9uIHVzZXMgaXQgaW5zdGVhZCBvZiB0aGVcbiAgICogZ2xvYmFsIGBET1JBX0lOQ0lERU5UX1dJTkRPV19IT1VSU2AuIFRoZSByb3V0ZSByZXNvbHZlcyB0aGlzIGZyb20gdGhlIG9yZydzXG4gICAqIGBkb3JhX3NldHRpbmdzYCByb3cgKHNlZSB7QGxpbmsgUmVwb3J0aW5nU2VydmljZS5nZXRSZXBvcnRpbmdTZXR0aW5nc30pIGFuZFxuICAgKiBwYXNzZXMgaXQgaW47IHVuc2V0IGZhbGxzIGJhY2sgdG8gdGhlIGVudiBkZWZhdWx0LlxuICAgKi9cbiAgaW5jaWRlbnRXaW5kb3dIb3Vycz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQZXItb3JnIHJlcG9ydGluZyBzZXR0aW5ncyBzdXJmYWNlZCB0byB0aGUgb3JnLWFkbWluIHBhbmVsLiBgaW5jaWRlbnRXaW5kb3dIb3Vyc2BcbiAqIGlzIHRoZSBpbmNpZGVudOKGkmRlcGxveSBjb3JyZWxhdGlvbiB3aW5kb3c7IGBldmVudFJldGVudGlvbkRheXNgIC9cbiAqIGBkb3JhUmV0ZW50aW9uRGF5c2AgYXJlIHRoZSB0d28gcmV0ZW50aW9uLXN3ZWVwIHdpbmRvd3MuIEVhY2ggb3ZlcnJpZGVcbiAqIGlzIGBudWxsYCB3aGVuIHVuc2V0ICh0aGUgcGFpcmVkIGBkZWZhdWx0KmAgZmllbGQgc2hvd3MgdGhlIGVudiBmYWxsYmFjayBhcHBsaWVkKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRpbmdTZXR0aW5ncyB7XG4gIC8qKiBUaGUgb3JnJ3Mgc3RvcmVkIGNvcnJlbGF0aW9uLXdpbmRvdyBvdmVycmlkZSBpbiBob3Vycywgb3IgYG51bGxgIHdoZW4gdW5zZXQuICovXG4gIGluY2lkZW50V2luZG93SG91cnM6IG51bWJlciB8IG51bGw7XG4gIC8qKiBUaGUgZ2xvYmFsIGVudiBkZWZhdWx0IGFwcGxpZWQgd2hlbiBubyBvdmVycmlkZSBpcyBzdG9yZWQuICovXG4gIGRlZmF1bHRXaW5kb3dIb3VyczogbnVtYmVyO1xuICAvKiogU3RhbmRhcmQtZXZlbnQgcmV0ZW50aW9uIG92ZXJyaWRlIGluIGRheXMsIG9yIGBudWxsYCB3aGVuIHVuc2V0LiAqL1xuICBldmVudFJldGVudGlvbkRheXM6IG51bWJlciB8IG51bGw7XG4gIC8qKiBET1JBLXNvdXJjZSByZXRlbnRpb24gb3ZlcnJpZGUgaW4gZGF5cywgb3IgYG51bGxgIHdoZW4gdW5zZXQuICovXG4gIGRvcmFSZXRlbnRpb25EYXlzOiBudW1iZXIgfCBudWxsO1xuICAvKiogR2xvYmFsIHN0YW5kYXJkLWV2ZW50IHJldGVudGlvbiBkZWZhdWx0IGFwcGxpZWQgd2hlbiB1bnNldCAoZGF5cykuICovXG4gIGRlZmF1bHRFdmVudFJldGVudGlvbkRheXM6IG51bWJlcjtcbiAgLyoqIEdsb2JhbCBET1JBLXNvdXJjZSByZXRlbnRpb24gZGVmYXVsdCBhcHBsaWVkIHdoZW4gdW5zZXQgKGRheXMpLiAqL1xuICBkZWZhdWx0RG9yYVJldGVudGlvbkRheXM6IG51bWJlcjtcbn1cblxuLyoqIEEgcGFydGlhbCByZXBvcnRpbmctc2V0dGluZ3Mgd3JpdGUgKDcpLiBPbmx5IHByb3ZpZGVkIGZpZWxkcyBhcmVcbiAqICB1cHNlcnRlZDsgb21pdHRlZCBmaWVsZHMgYXJlIGxlZnQgdW5jaGFuZ2VkIChhbiBvbWl0dGVkIHJldGVudGlvbiBmaWVsZCBrZWVwc1xuICogIGl0cyBzdG9yZWQgb3ZlcnJpZGUgLyB0aGUgZ2xvYmFsIGRlZmF1bHQpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRpbmdTZXR0aW5nc1BhdGNoIHtcbiAgaW5jaWRlbnRXaW5kb3dIb3Vycz86IG51bWJlcjtcbiAgZXZlbnRSZXRlbnRpb25EYXlzPzogbnVtYmVyO1xuICBkb3JhUmV0ZW50aW9uRGF5cz86IG51bWJlcjtcbn1cblxuLyoqIE9uZSByb3cgb2YgdGhlIG9yZy1hZG1pbiBpbmNpZGVudHMgbGlzdCAocmVjZW50IGluY2lkZW50cyArIGRlcGxveSBjb3JyZWxhdGlvbikuICovXG5leHBvcnQgaW50ZXJmYWNlIEluY2lkZW50TGlzdEl0ZW0ge1xuICBpbmNpZGVudElkOiBzdHJpbmc7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG4gIHNldmVyaXR5OiBzdHJpbmc7XG4gIG9wZW5lZEF0OiBzdHJpbmcgfCBudWxsO1xuICByZXNvbHZlZEF0OiBzdHJpbmcgfCBudWxsO1xuICBjcmVhdGVkQXQ6IHN0cmluZyB8IG51bGw7XG4gIC8qKiBUcnVlIG9uY2UgdGhlIGluY2lkZW50IGhhcyBhIGByZXNvbHZlZF9hdGAuICovXG4gIHJlc29sdmVkOiBib29sZWFuO1xuICAvKiogVGhlIGNvcnJlbGF0ZWQgZGVwbG95IGV4ZWN1dGlvbiBpZCAobW9zdCByZWNlbnQgc3VjY2Vzc2Z1bCBkZXBsb3kgaW4td2luZG93KSwgb3IgbnVsbC4gKi9cbiAgY29ycmVsYXRlZEV4ZWN1dGlvbklkOiBzdHJpbmcgfCBudWxsO1xuICAvKiogVGhhdCBkZXBsb3kncyBjb21wbGV0aW9uIGluc3RhbnQsIG9yIG51bGwgd2hlbiB1bmNvcnJlbGF0ZWQuICovXG4gIGRlcGxveUNvbXBsZXRlZEF0OiBzdHJpbmcgfCBudWxsO1xufVxuXG4vKiogUmVzdWx0IG9mIHRoZSB3aXJpbmctdGVzdCBkcnktcnVuIGNvcnJlbGF0aW9uICh7QGxpbmsgUmVwb3J0aW5nU2VydmljZS50ZXN0SW5jaWRlbnRDb3JyZWxhdGlvbn0pLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmNpZGVudFRlc3RSZXN1bHQge1xuICBlbnZpcm9ubWVudDogc3RyaW5nO1xuICAvKiogVGhlIHN5bnRoZXRpYyBpbmNpZGVudCdzIG9wZW5lZEF0IChub3csIElTTykuICovXG4gIG9wZW5lZEF0OiBzdHJpbmc7XG4gIC8qKiBUaGUgZWZmZWN0aXZlIGNvcnJlbGF0aW9uIHdpbmRvdyB1c2VkLiAqL1xuICB3aW5kb3dIb3VyczogbnVtYmVyO1xuICAvKiogV2hldGhlciBhIHJlY2VudCBzdWNjZXNzZnVsIGRlcGxveSB0byBgZW52aXJvbm1lbnRgIGNvcnJlbGF0ZWQuICovXG4gIGNvcnJlbGF0ZWQ6IGJvb2xlYW47XG4gIC8qKiBUaGUgY29ycmVsYXRlZCBkZXBsb3kgZXhlY3V0aW9uIGlkLCBvciBudWxsLiAqL1xuICBleGVjdXRpb25JZDogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIFRoYXQgZGVwbG95J3MgY29tcGxldGlvbiBpbnN0YW50LCBvciBudWxsLiAqL1xuICBkZXBsb3lDb21wbGV0ZWRBdDogc3RyaW5nIHwgbnVsbDtcbn1cblxuLy8gRE9SQSBwZXJmb3JtYW5jZSBiYW5kcyAodGhyZXNob2xkcyBmcm9tIHRoZSBET1JBL0FjY2VsZXJhdGUgcmVwb3J0cykuIEVhY2hcbi8vIGhlbHBlciByZXR1cm5zIGBudWxsYCB3aGVuIHRoZXJlJ3Mgbm8gc2FtcGxlIHRvIGNsYXNzaWZ5LlxuLyoqIERlcGxveW1lbnQgZnJlcXVlbmN5IGJ5IGRlcGxveXMvZGF5OiBlbGl0ZSDiiaUxL2RheSwgaGlnaCDiiaUxL3dlZWssIG1lZGl1bSDiiaUxL21vbnRoLiAqL1xuXG4vKipcbiAqIERPUkEgbWV0cmljcyBvdmVyIGEgW2Zyb20sdG9dIHdpbmRvdywgb3JnLXNjb3BlZCAoc2luZ2xlLW9yZyBvciByb2xsdXAgc3VidHJlZSkuXG4gKlxuICogREVQTE9ZLUJBU0lTIOKAlCBldmVyeSBtZXRyaWMgZGVyaXZlcyBmcm9tIHJlYWwgREVQTE9ZLVNUQUdFIGV4ZWN1dGlvbnMsIGkuZS5cbiAqIGBwaXBlbGluZV9ldmVudHNgIHJvd3Mgd2l0aCBgZXZlbnRfdHlwZT0nU1RBR0UnYCBhbmQgYSBub24tbnVsbCBgZW52aXJvbm1lbnRgXG4gKiAodGhlIGZvcndhcmRlciBzZXRzIGBlbnZpcm9ubWVudGAgb25seSBmb3IgdGhlIHN0YWdlcyBhIHVzZXIgZGVjbGFyZWQgaW5cbiAqIGBwYi5kZXBsb3lzYCkuIEEgQ0ktb25seSBidWlsZC90ZXN0IHBpcGVsaW5lIHdpdGggbm8gZGVwbG95IHN0YWdlIHByb2R1Y2VzIE5PXG4gKiBET1JBIGRhdGEg4oCUIHRoZXJlIGlzIG5vIHJ1bi1iYXNlZCBmYWxsYmFjay4gVGhlIHBhbmVsIGlzIGVtcHR5IHVudGlsIGRlcGxveWVkXG4gKiBwaXBlbGluZXMgcmUtc3ludGggd2l0aCB0aGUgbmV3IGRlcGxveSB0YWdzIGFuZCBzdGFydCBlbWl0dGluZyBkZXBsb3kgZXZlbnRzLlxuICpcbiAqIGBwcm9kdWN0aW9uYCBpcyB0aGUgaGVhZGxpbmUgZW52aXJvbm1lbnQ7IE1UVFIgaXMgbWVhc3VyZWQgcHJvZHVjdGlvbi1vbmx5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERvcmFNZXRyaWNzIHtcbiAgLyoqIFRoZSBbZnJvbSx0b10gd2luZG93IGVjaG9lZCBiYWNrIChkZXBsb3kgYGNvbXBsZXRlZF9hdGAgcmFuZ2UpLiAqL1xuICB3aW5kb3c6IHsgZnJvbTogc3RyaW5nOyB0bzogc3RyaW5nIH07XG4gIC8qKiBUaGUgc2NvcGluZyBhcHBsaWVkIChlY2hvZWQgZm9yIHRoZSBVSSk7IGBudWxsYCB3aGVuIHVuc2NvcGVkLiAqL1xuICBmaWx0ZXJzOiB7IHBpcGVsaW5lSWQ6IHN0cmluZyB8IG51bGw7IGVudmlyb25tZW50OiBzdHJpbmcgfCBudWxsIH07XG4gIC8qKiBUaGUgaGVhZGxpbmUgZW52aXJvbm1lbnQgbmFtZSAoYHByb2R1Y3Rpb25gKS4gKi9cbiAgaGVhZGxpbmU6IHN0cmluZztcbiAgLyoqIFBlci1lbnZpcm9ubWVudCBERiAvIENGUiAvIGxlYWQgdGltZS4gU29ydGVkIGhlYWRsaW5lLWZpcnN0LCB0aGVuIEHihpJaLiAqL1xuICBlbnZpcm9ubWVudHM6IERvcmFFbnZNZXRyaWNzW107XG4gIC8qKlxuICAgKiBNZWFuIFRpbWUgVG8gUmVzdG9yZSDigJQgUFJPRFVDVElPTi1PTkxZLCBmcm9tIGBkZXBsb3ltZW50X291dGNvbWVzYC5cbiAgICogYG1lZGlhbihyZXN0b3JlZC5hdCDiiJIgZGVwbG95ZWQuY29tcGxldGVkX2F0KWAgb3ZlciByZXN0b3JlZCBwcm9kdWN0aW9uXG4gICAqIGluY2lkZW50cyAoZGVsdGFzIGNsYW1wZWQg4omlMCkuIGBpbmNpZGVudHNgIGNvdW50cyBwcm9kdWN0aW9uIGRlcGxveXMgbWFya2VkXG4gICAqIGZhaWxlZDsgYHJlc3RvcmVkYCBjb3VudHMgdGhvc2UgdGhhdCByZWNvdmVyZWQ7IGBtZWRpYW5TZWNvbmRzYCBpcyBudWxsIHdoZW5cbiAgICogbm8gcmVzdG9yZWQgaW5jaWRlbnQgaGFzIGEgcmVzb2x2YWJsZSBkZXBsb3kgdGltZS5cbiAgICovXG4gIG1lYW5UaW1lVG9SZXN0b3JlOiB7XG4gICAgaW5jaWRlbnRzOiBudW1iZXI7XG4gICAgcmVzdG9yZWQ6IG51bWJlcjtcbiAgICBtZWRpYW5TZWNvbmRzOiBudW1iZXIgfCBudWxsO1xuICAgIGxldmVsOiBEb3JhTGV2ZWw7XG4gIH07XG4gIC8qKlxuICAgKiBDb3ZlcmFnZSByZWNvbmNpbGlhdGlvbiDigJQgcmVnaXN0ZXJlZCBwaXBlbGluZXMgd2l0aCBubyBvYnNlcnZlZCBkZXBsb3kgaW5cbiAgICogdGhlIHdpbmRvdy4gQSBoaWdoIGB3aXRob3V0RGVwbG95c2AgY291bnQgbWVhbnMgRE9SQSBpcyBibGluZCB0byBtb3N0IG9mIHRoZVxuICAgKiBmbGVldCAocGlwZWxpbmVzIHRoYXQgaGF2ZW4ndCByZS1zeW50aGVkIHdpdGggZGVwbG95IHRhZ3MsIG9yIGRvbid0IGRlcGxveSkuXG4gICAqL1xuICBjb3ZlcmFnZToge1xuICAgIC8qKiBQaXBlbGluZXMgaW4gdGhlIHJlZ2lzdHJ5IChvcmctc2NvcGVkKS4gKi9cbiAgICByZWdpc3RlcmVkOiBudW1iZXI7XG4gICAgLyoqIFJlZ2lzdGVyZWQgcGlwZWxpbmVzIHdpdGgg4omlMSBkZXBsb3ktc3RhZ2UgZXhlY3V0aW9uIGluIHRoZSB3aW5kb3cuICovXG4gICAgZGVwbG95aW5nOiBudW1iZXI7XG4gICAgLyoqIHJlZ2lzdGVyZWQg4oiSIGRlcGxveWluZyAoY2xhbXBlZCDiiaUwKS4gKi9cbiAgICB3aXRob3V0RGVwbG95czogbnVtYmVyO1xuICB9O1xufVxuXG4vKiogUGVyLWVudmlyb25tZW50IERPUkEgbWV0cmljcyAoZGVwbG95bWVudCBmcmVxdWVuY3ksIENGUiwgbGVhZCB0aW1lKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9yYUVudk1ldHJpY3Mge1xuICBlbnZpcm9ubWVudDogc3RyaW5nO1xuICAvKiogRGVwbG95bWVudCBGcmVxdWVuY3kg4oCUIHN1Y2Nlc3NmdWwgZGVwbG95LXN0YWdlIGV4ZWN1dGlvbnMgZm9yIHRoaXMgZW52LiAqL1xuICBkZXBsb3ltZW50RnJlcXVlbmN5OiB7XG4gICAgZGVwbG95bWVudHM6IG51bWJlcjtcbiAgICBwZXJEYXk6IG51bWJlcjtcbiAgICBsZXZlbDogRG9yYUxldmVsO1xuICB9O1xuICAvKipcbiAgICogQ2hhbmdlIEZhaWx1cmUgUmF0ZSDigJQgdHdvLWNsYXNzOlxuICAgKiBgKGRlcGxveVRpbWVGYWlsdXJlcyArIHBvc3REZXBsb3lGYWlsdXJlcykgLyBhdHRlbXB0c2AuXG4gICAqIC0gYGRlcGxveVRpbWVGYWlsdXJlc2Ag4oCUIGRlcGxveSBzdGFnZSBgcmVzdWx0PWZhaWxlZGAgKGZyb20gZXZlbnRzKS5cbiAgICogLSBgcG9zdERlcGxveUZhaWx1cmVzYCDigJQgYSBzdWNjZXNzZnVsIGRlcGxveSBsYXRlciBtYXJrZWQgZmFpbGVkIGluIHByb2RcbiAgICogICAoZnJvbSBgZGVwbG95bWVudF9vdXRjb21lc2ApLlxuICAgKiAtIGBhdHRlbXB0c2Ag4oCUIGFsbCB0ZXJtaW5hbCBkZXBsb3ktc3RhZ2UgYXR0ZW1wdHMgKHN1Y2NlZWRlZCArIGZhaWxlZCkuXG4gICAqL1xuICBjaGFuZ2VGYWlsdXJlUmF0ZToge1xuICAgIHJhdGU6IG51bWJlcjtcbiAgICBkZXBsb3lUaW1lRmFpbHVyZXM6IG51bWJlcjtcbiAgICBwb3N0RGVwbG95RmFpbHVyZXM6IG51bWJlcjtcbiAgICBhdHRlbXB0czogbnVtYmVyO1xuICAgIGxldmVsOiBEb3JhTGV2ZWw7XG4gIH07XG4gIC8qKlxuICAgKiBMZWFkIFRpbWUg4oCUIE1FQVNVUkVEOiBgbWVkaWFuKGRlcGxveV9jb21wbGV0ZWQg4oiSIG9sZGVzdF9jb21taXRfdGltZSlgIG92ZXJcbiAgICogc3VjY2Vzc2Z1bCBkZXBsb3lzIHdpdGggYSByZXNvbHZhYmxlIGNvbW1pdCB0aW1lc3RhbXAgKGRlbHRhcyBjbGFtcGVkIOKJpTApLlxuICAgKiBgbWVkaWFuU2Vjb25kc2AgaXMgYG51bGxgICg9IHVua25vd24pIHdoZW4gbm8gc3VjY2Vzc2Z1bCBkZXBsb3kgaW4gdGhpcyBlbnZcbiAgICogY2FycmllZCBhIGBjb21taXRfdGltZXN0YW1wYC4gVGhlIG9sZCBtZWRpYW4tcnVuLWR1cmF0aW9uIHByb3h5IGlzIHJlbW92ZWQuXG4gICAqL1xuICBsZWFkVGltZToge1xuICAgIC8qKiBTdWNjZXNzZnVsIGRlcGxveXMgd2l0aCBhIHJlc29sdmFibGUgY29tbWl0IHRpbWUgKHRoZSBtZWRpYW4gc2FtcGxlKS4gKi9cbiAgICBkZXBsb3ltZW50czogbnVtYmVyO1xuICAgIG1lZGlhblNlY29uZHM6IG51bWJlciB8IG51bGw7XG4gICAgbGV2ZWw6IERvcmFMZXZlbDtcbiAgfTtcbn1cblxuLyoqIE9uZSBpbnRlcnZhbCBidWNrZXQgb2YgdGhlIERPUkEgdHJlbmQgKGRlcGxveSBmcmVxdWVuY3kgKyBjaGFuZ2UgZmFpbHVyZSkuICovXG5leHBvcnQgaW50ZXJmYWNlIERvcmFUcmVuZFBvaW50IHtcbiAgLyoqIEJ1Y2tldCBzdGFydCAoREFURV9UUlVOQyBvZiB0aGUgZGVwbG95IGBjb21wbGV0ZWRfYXRgKSwgSVNPIHRleHQuICovXG4gIHBlcmlvZDogc3RyaW5nO1xuICAvKiogU3VjY2Vzc2Z1bCBkZXBsb3ktc3RhZ2UgZXhlY3V0aW9ucyBpbiB0aGUgYnVja2V0LiAqL1xuICBkZXBsb3ltZW50czogbnVtYmVyO1xuICAvKiogRmFpbGVkIGRlcGxveS1zdGFnZSBleGVjdXRpb25zIGluIHRoZSBidWNrZXQuICovXG4gIGZhaWxlZDogbnVtYmVyO1xuICAvKiogc3VjY2VlZGVkICsgZmFpbGVkIGluIHRoZSBidWNrZXQgKGRlcGxveSBhdHRlbXB0cykuICovXG4gIHRvdGFsOiBudW1iZXI7XG4gIC8qKiBmYWlsZWQvdG90YWwgYXMgYSBwZXJjZW50ICgwIHdoZW4gdG90YWwgaXMgMCkuIERlcGxveS10aW1lIENGUiBvbmx5LiAqL1xuICBjaGFuZ2VGYWlsdXJlUGN0OiBudW1iZXI7XG59XG5cbi8qKiBQZXItc3RhZ2UgYnVpbGQtaGVhbHRoIG1ldHJpY3MgZm9yIG9uZSBwaXBlbGluZSBvdmVyIGEgd2luZG93LiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZEhlYWx0aFN0YWdlIHtcbiAgc3RhZ2U6IHN0cmluZztcbiAgLyoqIFRlcm1pbmFsIHN0YWdlIHJ1bnMgKHN1Y2NlZWRlZCArIGZhaWxlZCkgaW4gdGhlIHdpbmRvdy4gKi9cbiAgcnVuczogbnVtYmVyO1xuICBzdWNjZXNzZXM6IG51bWJlcjtcbiAgZmFpbHVyZXM6IG51bWJlcjtcbiAgLyoqIHN1Y2Nlc3NlcyAvIHJ1bnMgYXMgYSBwZXJjZW50ICgwIHdoZW4gcnVucyBpcyAwKS4gKi9cbiAgc3VjY2Vzc1JhdGU6IG51bWJlcjtcbiAgLyoqIER1cmF0aW9uIHBlcmNlbnRpbGVzIG92ZXIgdGhlIHN0YWdlJ3MgdGVybWluYWwgcnVuczsgbnVsbCB3aGVuIG5vIGR1cmF0aW9ucy4gKi9cbiAgcDUwTXM6IG51bWJlciB8IG51bGw7XG4gIHA5ME1zOiBudW1iZXIgfCBudWxsO1xuICBwOTlNczogbnVtYmVyIHwgbnVsbDtcbn1cblxuLyoqXG4gKiBQZXItcGlwZWxpbmUgYnVpbGQtaGVhbHRoIGJyZWFrZG93bi4gU3RhbmRhcmQgcmVwb3J0aW5nIChOT1RcbiAqIGBhZHZhbmNlZF9yZXBvcnRpbmdgLWdhdGVkKSDigJQgcGVyLXN0YWdlIHN1Y2Nlc3MgcmF0ZSArIHRpbWluZyBwZXJjZW50aWxlcywgd2l0aFxuICogdG90YWxzIHN1bW1lZCBhY3Jvc3Mgc3RhZ2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkSGVhbHRoIHtcbiAgc3RhZ2VzOiBCdWlsZEhlYWx0aFN0YWdlW107XG4gIHRvdGFsczogeyBydW5zOiBudW1iZXI7IGZhaWx1cmVzOiBudW1iZXI7IGZhaWx1cmVSYXRlOiBudW1iZXIgfTtcbn1cblxuLyoqIFBvc3QtZGVwbG95IGluY2lkZW50IG1hcmtlciBhY2NlcHRlZCBieSBgUmVwb3J0aW5nU2VydmljZS5yZWNvcmRJbmNpZGVudGAuICovXG5leHBvcnQgaW50ZXJmYWNlIEluY2lkZW50SW5wdXQge1xuICBpbmNpZGVudElkOiBzdHJpbmc7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG4gIG9wZW5lZEF0OiBzdHJpbmc7XG4gIHJlc29sdmVkQXQ/OiBzdHJpbmc7XG4gIHNldmVyaXR5OiBzdHJpbmc7XG59XG5cbi8qKiBFdmVudCBwYXlsb2FkIGFjY2VwdGVkIGJ5IGBSZXBvcnRpbmdTZXJ2aWNlLmluZ2VzdEV2ZW50c2AuIE1pcnJvcnMgdGhlIHJvdXRlJ3MgWm9kIHNoYXBlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmdlc3RFdmVudCB7XG4gIC8qKiBTdGFibGUgcGlwZWxpbmUgaWQgdGhlIGV2ZW50cyBMYW1iZGEgcmVhZCBmcm9tIHRoZSBgcGIucGlwZWxpbmUtaWRgXG4gICAqICB0YWcgKD0gdGhlIHBsYXRmb3JtIHBpcGVsaW5lSWQpLiBUaGUgcmVnaXN0cnkgam9pbiBrZXkuICovXG4gIHBpcGVsaW5lSWQ6IHN0cmluZztcbiAgZXZlbnRTb3VyY2U6ICdjb2RlcGlwZWxpbmUnIHwgJ2NvZGVidWlsZCcgfCAncGx1Z2luLWJ1aWxkJztcbiAgZXZlbnRUeXBlOiAnUElQRUxJTkUnIHwgJ1NUQUdFJyB8ICdBQ1RJT04nIHwgJ0JVSUxEJztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIGV4ZWN1dGlvbklkPzogc3RyaW5nO1xuICBzdGFnZU5hbWU/OiBzdHJpbmc7XG4gIGFjdGlvbk5hbWU/OiBzdHJpbmc7XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBmYWlsdXJlIHJlYXNvbiAoQWN0aW9uIGV2ZW50cykuICovXG4gIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgc3RhcnRlZEF0Pzogc3RyaW5nO1xuICBjb21wbGV0ZWRBdD86IHN0cmluZztcbiAgZHVyYXRpb25Ncz86IG51bWJlcjtcbiAgLyoqIFNvdXJjZSBjb21taXQgaWQgb2YgdGhlIGNoYW5nZSBiZWluZyBzaGlwcGVkIChET1JBIGRlcGxveSBhdHRyaWJ1dGlvbikuICovXG4gIGNvbW1pdFNoYT86IHN0cmluZztcbiAgLyoqIFNvdXJjZSByZWYvYnJhbmNoIChET1JBIGRlcGxveSBhdHRyaWJ1dGlvbikuICovXG4gIGNvbW1pdFJlZj86IHN0cmluZztcbiAgLyoqIERlcGxveSB0YXJnZXQgKGUuZy4gXCJwcm9kdWN0aW9uXCIpLiBJdHMgcHJlc2VuY2Ugb24gYSBTVEFHRS9BQ1RJT04gZXZlbnRcbiAgICogIG1hcmtzIGEgcmVhbCBkZXBsb3ltZW50IChkZXJpdmVkIHNlcnZlci1zaWRlIOKAlCB0aGVyZSBpcyBubyBgaXNEZXBsb3lgKS4gKi9cbiAgZW52aXJvbm1lbnQ/OiBzdHJpbmc7XG4gIC8qKiBPbGRlc3QgdW5zaGlwcGVkIGNvbW1pdCB0aW1lc3RhbXAgKElTTyA4NjAxKSBmb3IgbWVhc3VyZWQgbGVhZCB0aW1lLiAqL1xuICBjb21taXRUaW1lc3RhbXA/OiBzdHJpbmc7XG4gIC8qKiBOdW1iZXIgb2YgY29tbWl0cyBzaGlwcGVkIGluIHRoaXMgY2hhbmdlICjiiaUxKS4gKi9cbiAgY29tbWl0Q291bnQ/OiBudW1iZXI7XG4gIGRldGFpbD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vKipcbiAqIFBlci1ldmVudCBtZXRyaWMgZGVzY3JpcHRvciBlbWl0dGVkICh2aWEgdGhlIHtAbGluayBSZXBvcnRpbmdTZXJ2aWNlLmluZ2VzdEV2ZW50c31cbiAqIGBvbk1ldHJpY2AgaG9vaykgZm9yIGVhY2ggUkVHSVNURVJFRCB0ZXJtaW5hbCBkZXBsb3kvc3RhZ2UgZXZlbnQsIHNvIHRoZSByb3V0ZVxuICogbGF5ZXIgY2FuIGZhbiB0aGVtIGludG8gUHJvbWV0aGV1cyBjb3VudGVycyB3aXRob3V0IHBpcGVsaW5lLWRhdGEgaW1wb3J0aW5nXG4gKiBhcGktc2VydmVyJ3MgbWV0cmljcyByZWdpc3RyeS4gYHJlc3VsdGAgaXMgdGhlIHRlcm1pbmFsIG91dGNvbWU7IGBlbnZpcm9ubWVudGBcbiAqIGlzIG5vbi1udWxsIG9ubHkgZm9yIGEgZGVwbG95LXN0YWdlIGV2ZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluZ2VzdE1ldHJpYyB7XG4gIHBpcGVsaW5lSWQ6IHN0cmluZztcbiAgb3JnSWQ6IHN0cmluZztcbiAgc3RhZ2U6IHN0cmluZztcbiAgZW52aXJvbm1lbnQ6IHN0cmluZyB8IG51bGw7XG4gIHJlc3VsdDogJ3N1Y2NlZWRlZCcgfCAnZmFpbGVkJztcbn1cblxuLyoqIENvdW50cyArIHRoZSAocG9zc2libHkgdHJ1bmNhdGVkKSBsaXN0IG9mIHVucmVnaXN0ZXJlZCBwaXBlbGluZSBpZHMgdGhlIGNhbGxlciBjYW4gbG9nLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmdlc3RSZXN1bHQge1xuICBpbnNlcnRlZDogbnVtYmVyO1xuICBza2lwcGVkOiBudW1iZXI7XG4gIHVucmVnaXN0ZXJlZFBpcGVsaW5lSWRzOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIEV2ZXJ5IG9yZyB3aXRoIGF0IGxlYXN0IG9uZSByb3cgaW4gdGhpcyBiYXRjaCwgZGVkdXBlZC5cbiAgICpcbiAgICogQWxyZWFkeSBjb21wdXRlZCBmb3IgcG9zdC1jb21taXQgY2FjaGUgaW52YWxpZGF0aW9uOyBzdXJmYWNlZCBiZWNhdXNlIHRoZVxuICAgKiBpbmdlc3Qgcm91dGUgbmVlZHMgdGhlIHNhbWUgc2V0IHRvIHB1c2ggaXRzIGxpdmUgU1NFIGZyYW1lLiBUaGUgc3RhZ2UtbWV0cmljXG4gICAqIGhvb2sgY2FuJ3QgZHJpdmUgdGhhdCBmYW4tb3V0OiBpdCBvbmx5IGZpcmVzIGZvciBTVEFHRSBldmVudHMsIHNvIGEgYmF0Y2ggb2ZcbiAgICogUElQRUxJTkUgb3IgQlVJTEQgZXZlbnRzIHdvdWxkIGxhbmQgcm93cyBhbmQgcHVzaCBubyBmcmFtZSBhdCBhbGwuXG4gICAqL1xuICBhZmZlY3RlZE9yZ3M6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIE9uZSBvcmcncyBpbmdlc3Rpb24taGVhbHRoIHJvdyBhcyBSRUFEIGJhY2sgYnkgdGhlIFJlcG9ydHMgVUkuIFRoZVxuICogQVdTIGV2ZW50cyBMYW1iZGEgd3JpdGVzIGl0OyB0aGlzIGlzIHRoZSBzaGFwZSB0aGF0IGxldHMgdGhlIFVJIHRlbGxcbiAqIFwiaW5nZXN0aW9uIGlzIGhlYWx0aHksIHRoZXJlIHdlcmUgc2ltcGx5IG5vIGRlcGxveXMgaW4gdGhlIHJhbmdlXCIgYXBhcnQgZnJvbVxuICogXCJ3ZSBoYXZlbid0IGhlYXJkIGZyb20gdGhlIGluZ2VzdCBwaXBlbGluZSBzaW5jZSBYXCIuXG4gKlxuICogYG51bGxgIGZyb20ge0BsaW5rIFJlcG9ydGluZ1NlcnZpY2UuZ2V0SW5nZXN0SGVhbHRofSBtZWFucyB0aGUgZGVwbG95bWVudCBoYXNcbiAqIE5FVkVSIHJlcG9ydGVkIOKAlCBub3QgXCJzdGFsZVwiLiBUaGUgdHdvIG11c3Qgbm90IGJlIGNvbmZsYXRlZDogYSBmcmVzaCBpbnN0YWxsXG4gKiAob3Igb25lIHdob3NlIGZvcndhcmRlciB3YXMgbmV2ZXIgd2lyZWQgdXApIGhhcyBubyBoZWFydGJlYXQgYXQgYWxsLCBhbmRcbiAqIGNhbGxpbmcgdGhhdCBcInN0YWxlXCIgd291bGQgaW52ZW50IGEgcmVncmVzc2lvbiB0aGF0IG5ldmVyIGhhcHBlbmVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluZ2VzdEhlYWx0aFN0YXR1cyB7XG4gIC8qKiBXaGVuIHRoZSBmb3J3YXJkZXIgbGFzdCBwb3N0ZWQgYSBoZWFydGJlYXQgKGl0cyBvd24gY2xvY2ssIElTTyA4NjAxKS4gKi9cbiAgdXBkYXRlZEF0OiBzdHJpbmc7XG4gIC8qKiBUaW1lc3RhbXAgb2YgdGhlIG5ld2VzdCBldmVudCBpdCBoYWQgZm9yd2FyZGVkLCBvciBudWxsIGlmIGl0IGhhcyBzZWVuIG5vbmUuICovXG4gIGxhc3RFdmVudEF0OiBzdHJpbmcgfCBudWxsO1xuICAvKiogQ3VtdWxhdGl2ZSBldmVudHMgZm9yd2FyZGVkLCBvciBudWxsIHdoZW4gdGhlIGZvcndhcmRlciBkb2Vzbid0IHJlcG9ydCBpdC4gKi9cbiAgZm9yd2FyZGVkOiBudW1iZXIgfCBudWxsO1xuICAvKiogQ3VtdWxhdGl2ZSBldmVudHMgRFJPUFBFRCAobm9uLXplcm8g4oeSIGRhdGEgbG9zcyB1cHN0cmVhbSBvZiB0aGUgcmVwb3J0cykuICovXG4gIGRyb3BwZWQ6IG51bWJlciB8IG51bGw7XG59XG5cblxuLyoqXG4gKiBSZWFkLW9ubHkgcmVwb3J0aW5nIHNlcnZpY2UgZm9yIHBpcGVsaW5lIGV4ZWN1dGlvbiBhbmQgcGx1Z2luIGludmVudG9yeSBhZ2dyZWdhdGlvbnMuXG4gKiBEb2VzIG5vdCBleHRlbmQgQ3J1ZFNlcnZpY2Ug4oCUIHJlcG9ydHMgYXJlIGFnZ3JlZ2F0ZSBxdWVyaWVzLCBub3QgZW50aXR5IENSVUQuXG4gKlxuICogQWxsIHF1ZXJpZXMgYXJlIGNhY2hlZCBpbi1tZW1vcnkgdG8gYXZvaWQgcmVwZWF0ZWQgZXhwZW5zaXZlIFNRTCBhZ2dyZWdhdGlvbnM6XG4gKiAtIEludmVudG9yeSBxdWVyaWVzIChwbHVnaW4gc3VtbWFyeS9kaXN0cmlidXRpb24vdmVyc2lvbnMpOiA1IG1pbiBUVExcbiAqIC0gVGltZXNlcmllcyBxdWVyaWVzIChleGVjdXRpb24vYnVpbGQgbWV0cmljcyB3aXRoIGRhdGUgcmFuZ2VzKTogMiBtaW4gVFRMXG4gKi9cblxuLyoqXG4gKiBJbnRlcm5hbCByb3cgc2hhcGVzIGZvciB0aGUgRE9SQSBxdWVyaWVzLiBFeHBvcnRlZCBiZWNhdXNlIC4vZG9yYS50cyBjb25zdW1lc1xuICogdGhlbTsgbm90IHBhcnQgb2YgdGhlIHBhY2thZ2UncyBwdWJsaWMgc3VyZmFjZSAocmVwb3J0aW5nLXNlcnZpY2UudHNcbiAqIHJlLWV4cG9ydHMgdGhpcyBtb2R1bGUgd2hvbGVzYWxlLCB3aGljaCBpcyBhIGRlbGliZXJhdGUgc2ltcGxpZmljYXRpb24g4oCUIHRoZXNlXG4gKiBkZXNjcmliZSBxdWVyeSByZXN1bHRzLCBub3QgQVBJIGNvbnRyYWN0cykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95Um93IHtcbiAgZW52aXJvbm1lbnQ6IHN0cmluZztcbiAgc3RhdHVzOiAnU1VDQ0VFREVEJyB8ICdGQUlMRUQnIHwgc3RyaW5nO1xuICAvKiogRGVwbG95IGV4ZWN1dGlvbiBpZCDigJQgdGhlIGF0dHJpYnV0aW9uIGtleSBmb3IgZGVkdXAgYWdhaW5zdCBvdXRjb21lcy9pbmNpZGVudHMuICovXG4gIGV4ZWN1dGlvbl9pZDogc3RyaW5nIHwgbnVsbDtcbiAgY29tcGxldGVkX2F0OiBzdHJpbmcgfCBudWxsO1xuICBjb21taXRfdHM6IHN0cmluZyB8IG51bGw7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBkZXBsb3kgY29tcGxldGVkIGluc2lkZSBbZnJvbSx0b10uIEFic2VudCAodW5kZWZpbmVkKSBpbiB1bml0XG4gICAqIGZpeHR1cmVzIOKHkiB0cmVhdGVkIGFzIGluLXdpbmRvdy4gYHRgL2BmYCB0b2xlcmF0ZWQgKHBnIGJvb2xlYW4gdGV4dCBmb3JtKS5cbiAgICovXG4gIGluX3dpbmRvdz86IGJvb2xlYW4gfCBzdHJpbmcgfCBudWxsO1xufVxuXG4vKiogUmF3IHBvc3QtZGVwbG95IG91dGNvbWUgbWFya2VyIHJvdyAoZnJvbSBgZGVwbG95bWVudF9vdXRjb21lc2AsIGluLXdpbmRvdykuICovXG5leHBvcnQgaW50ZXJmYWNlIE91dGNvbWVSb3cge1xuICBlbnZpcm9ubWVudDogc3RyaW5nIHwgbnVsbDtcbiAgb3V0Y29tZTogJ2ZhaWxlZCcgfCAncmVzdG9yZWQnIHwgc3RyaW5nO1xuICAvKiogRXhlY3V0aW9uIHRoZSB1c2VyIG1hcmtlZCDigJQgZGVkdXAga2V5IGFnYWluc3QgaW5jaWRlbnQtY29ycmVsYXRlZCBkZXBsb3lzLiAqL1xuICBleGVjdXRpb25faWQ6IHN0cmluZyB8IG51bGw7XG59XG5cbi8qKiBQcm9kdWN0aW9uIHJlc3RvcmVkLWluY2lkZW50IHBhaXI6IHJlY292ZXJ5IHRpbWUgKyB0aGUgZGVwbG95J3MgY29tcGxldGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTXR0clBhaXJSb3cge1xuICByZXN0b3JlZF9hdDogc3RyaW5nIHwgbnVsbDtcbiAgZGVwbG95ZWRfYXQ6IHN0cmluZyB8IG51bGw7XG4gIC8qKiBFeGVjdXRpb24gaWQg4oCUIGxldHMgaW5jaWRlbnQgcHJlY2VkZW5jZSBvdmVycmlkZSB0aGUgbWFudWFsIG91dGNvbWUgcGVyIGRlcGxveS4gKi9cbiAgZXhlY3V0aW9uX2lkOiBzdHJpbmcgfCBudWxsO1xufVxuXG4vKipcbiAqIFJhdyBpbmNpZGVudCByb3cgKGZyb20gYGluY2lkZW50c2AsIG9wZW5lZCBpbi13aW5kb3cpLiBDb3JyZWxhdGVkIGluIEpTIHRvIHRoZVxuICogbW9zdCByZWNlbnQgc3VjY2Vzc2Z1bCBkZXBsb3kgdG8gYGVudmlyb25tZW50YCB3aXRoaW4gRE9SQV9JTkNJREVOVF9XSU5ET1dfSE9VUlNcbiAqIOKGkiBhbiBhdXRvbWF0ZWQgcG9zdC1kZXBsb3kgZmFpbHVyZSAoQ0ZSKSArIHJlYWwgcmVjb3ZlcnkgdGltZSAoTVRUUikuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5jaWRlbnRSb3cge1xuICBlbnZpcm9ubWVudDogc3RyaW5nO1xuICBvcGVuZWRfYXQ6IHN0cmluZyB8IG51bGw7XG4gIHJlc29sdmVkX2F0OiBzdHJpbmcgfCBudWxsO1xufVxuXG4vKiogQ292ZXJhZ2UgY291bnRzOiByZWdpc3RlcmVkIHBpcGVsaW5lcyB2cyB0aG9zZSB0aGF0IGFjdHVhbGx5IGRlcGxveWVkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb3ZlcmFnZVJvdyB7XG4gIHJlZ2lzdGVyZWQ6IG51bWJlciB8IHN0cmluZyB8IG51bGw7XG4gIGRlcGxveWluZzogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbDtcbn1cbiJdfQ==
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import type { ExecutionCount, TimeSeriesEntry, DurationStats, PipelineExecution, StageFailure, StageBottleneck, ActionFailure, ErrorEntry, PluginSummary, TypeComputeDistribution, VersionCount, BuildTimeSeriesEntry, BuildDuration, BuildFailure, ReportingRetentionOptions, ReportingRetentionCounts, DoraOptions,
|
|
2
|
-
export type { BuildHealth, BuildHealthStage, DoraEnvMetrics, DoraLevel, DoraMetrics, DoraOptions, DoraTrendPoint, IncidentInput, IncidentListItem,
|
|
3
|
-
export { resolveDoraRetentionDays, resolveEventRetentionDays, retentionCutoff } from './reporting/retention.js';
|
|
1
|
+
import type { ExecutionCount, TimeSeriesEntry, DurationStats, PipelineExecution, StageFailure, StageBottleneck, ActionFailure, ErrorEntry, PluginSummary, TypeComputeDistribution, VersionCount, BuildTimeSeriesEntry, BuildDuration, BuildFailure, PluginRuntimeAggregate, PluginRuntimeFilter, PluginRuntimeStats, ReportingRetentionOptions, ReportingRetentionCounts, DoraOptions, ReportingSettings, ReportingSettingsPatch, IncidentListItem, IncidentTestResult, DoraMetrics, DoraTrendPoint, BuildHealth, IncidentInput, IngestEvent, IngestMetric, IngestResult, IngestHealthStatus } from './reporting/types.js';
|
|
2
|
+
export type { BuildHealth, BuildHealthStage, DoraEnvMetrics, DoraLevel, DoraMetrics, DoraOptions, DoraTrendPoint, IncidentInput, IncidentListItem, ReportingSettings, IncidentTestResult, IngestEvent, IngestHealthStatus, IngestMetric, IngestResult, PluginRuntimeAggregate, PluginRuntimeFilter, PluginRuntimeStats, ReportingRetentionCounts, ReportingRetentionOptions, ReportingRetentionSettings, ReportingSettingsPatch, } from './reporting/types.js';
|
|
4
3
|
export declare class ReportingService {
|
|
5
4
|
#private;
|
|
6
5
|
/** Invalidate all cached reports for an org (call after event ingest). */
|
|
@@ -15,13 +14,13 @@ export declare class ReportingService {
|
|
|
15
14
|
* Returns counts + a sample of unregistered pipeline ids for observability.
|
|
16
15
|
*/
|
|
17
16
|
ingestEvents(events: IngestEvent[], onMetric?: (m: IngestMetric) => void): Promise<IngestResult>;
|
|
18
|
-
/**
|
|
17
|
+
/** Execution count per pipeline with status breakdown. */
|
|
19
18
|
getExecutionCount(orgId: string, orgIds?: string[], range?: {
|
|
20
19
|
from?: string;
|
|
21
20
|
to?: string;
|
|
22
21
|
}): Promise<ExecutionCount[]>;
|
|
23
22
|
/**
|
|
24
|
-
*
|
|
23
|
+
* Per-pipeline execution history — DISTINCT executions for one pipeline,
|
|
25
24
|
* newest first. Groups all events by `execution_id` in a single scan and
|
|
26
25
|
* rolls each execution up to one row:
|
|
27
26
|
* - status: derived from the PIPELINE-type events. FAILED wins, then
|
|
@@ -40,11 +39,11 @@ export declare class ReportingService {
|
|
|
40
39
|
from?: string;
|
|
41
40
|
to?: string;
|
|
42
41
|
}, limit?: number): Promise<PipelineExecution[]>;
|
|
43
|
-
/**
|
|
42
|
+
/** Success rate over time for an org. */
|
|
44
43
|
getSuccessRate(orgId: string, interval: string, from: string, to: string, orgIds?: string[]): Promise<TimeSeriesEntry[]>;
|
|
45
|
-
/**
|
|
44
|
+
/** Average duration per pipeline. */
|
|
46
45
|
getAverageDuration(orgId: string, from: string, to: string, orgIds?: string[]): Promise<DurationStats[]>;
|
|
47
|
-
/**
|
|
46
|
+
/** Stage failure heatmap — which stages fail most. */
|
|
48
47
|
getStageFailures(orgId: string, from: string, to: string, orgIds?: string[]): Promise<StageFailure[]>;
|
|
49
48
|
/**
|
|
50
49
|
* Distinct deploy `environment` values observed in the window — powers the
|
|
@@ -52,12 +51,12 @@ export declare class ReportingService {
|
|
|
52
51
|
* reports; only non-null environments (i.e. deploy-attributed executions).
|
|
53
52
|
*/
|
|
54
53
|
getReportEnvironments(orgId: string, from: string, to: string, orgIds?: string[]): Promise<string[]>;
|
|
55
|
-
/**
|
|
54
|
+
/** Stage bottlenecks — slowest stages per pipeline. */
|
|
56
55
|
getStageBottlenecks(orgId: string, from: string, to: string, orgIds?: string[]): Promise<StageBottleneck[]>;
|
|
57
|
-
/**
|
|
56
|
+
/** Action failure rate — which plugin steps fail most. */
|
|
58
57
|
getActionFailures(orgId: string, from: string, to: string, orgIds?: string[]): Promise<ActionFailure[]>;
|
|
59
58
|
/**
|
|
60
|
-
*
|
|
59
|
+
* Error categorization — group failure messages. Execution report, so
|
|
61
60
|
* rollup-aware exactly like the sibling execution reports: with `orgIds`
|
|
62
61
|
* (the org→team subtree) the org gate becomes an `IN (...)` and the read runs
|
|
63
62
|
* fresh under sysadmin via `runReport`; single-org reads keep the per-org cache.
|
|
@@ -73,16 +72,16 @@ export declare class ReportingService {
|
|
|
73
72
|
/** Per-pipeline build health (stage pass rates over a window). */
|
|
74
73
|
getBuildHealth(orgId: string, pipelineId: string, from: string, to: string, orgIds?: string[]): Promise<BuildHealth>;
|
|
75
74
|
getPluginSummary(orgId: string): Promise<PluginSummary>;
|
|
76
|
-
/**
|
|
75
|
+
/** Type & compute distribution.
|
|
77
76
|
* INTENTIONALLY SINGLE-ORG (no rollup): plugin inventory is per-org (see
|
|
78
77
|
* getPluginSummary). Single `= $org` scope. */
|
|
79
78
|
getPluginDistribution(orgId: string): Promise<TypeComputeDistribution[]>;
|
|
80
|
-
/**
|
|
79
|
+
/** Version counts per plugin name.
|
|
81
80
|
* INTENTIONALLY SINGLE-ORG (no rollup): plugin inventory is per-org (see
|
|
82
81
|
* getPluginSummary). Single `= $org` scope. */
|
|
83
82
|
getPluginVersions(orgId: string): Promise<VersionCount[]>;
|
|
84
83
|
/**
|
|
85
|
-
*
|
|
84
|
+
* Build success rate over time.
|
|
86
85
|
*
|
|
87
86
|
* STATUS CASING NOTE: This query filters by `event_source = 'plugin-build'`
|
|
88
87
|
* and uses lowercase status values (`'completed'`, `'failed'`), while
|
|
@@ -96,12 +95,22 @@ export declare class ReportingService {
|
|
|
96
95
|
* than silently producing zero rows here. See findings N71.
|
|
97
96
|
*/
|
|
98
97
|
getBuildSuccessRate(orgId: string, interval: string, from: string, to: string, orgIds?: string[]): Promise<BuildTimeSeriesEntry[]>;
|
|
99
|
-
/**
|
|
98
|
+
/** Build duration per plugin. Build activity report — rollup-aware. */
|
|
100
99
|
getBuildDuration(orgId: string, from: string, to: string, orgIds?: string[]): Promise<BuildDuration[]>;
|
|
101
|
-
/**
|
|
100
|
+
/** Build failures — top error messages. Build activity report — rollup-aware. */
|
|
102
101
|
getBuildFailures(orgId: string, from: string, to: string, limit?: number, orgIds?: string[]): Promise<BuildFailure[]>;
|
|
103
102
|
/**
|
|
104
|
-
*
|
|
103
|
+
* Plugin runtime: per plugin version runs, success rate and p50/p95
|
|
104
|
+
* duration over `[from, to]`, from the manifest-attributed ACTION events.
|
|
105
|
+
* Rollup-aware.
|
|
106
|
+
*/
|
|
107
|
+
getPluginRuntime(orgId: string, from: string, to: string, filter?: PluginRuntimeFilter, orgIds?: string[]): Promise<PluginRuntimeStats[]>;
|
|
108
|
+
/** Cross-org 30-day runtime aggregate for a `(publisher, name)` listing (plugin_stats input). Service callers only. */
|
|
109
|
+
getPluginRuntimeAggregate(publisher: string, name: string): Promise<PluginRuntimeAggregate>;
|
|
110
|
+
/** Review "verified use": `orgId` ran `(publisher, name)` successfully within 90 days. Service callers only. */
|
|
111
|
+
hasVerifiedPluginUse(orgId: string, publisher: string, name: string): Promise<boolean>;
|
|
112
|
+
/**
|
|
113
|
+
* Record a manual post-deploy outcome marker: a user marks a
|
|
105
114
|
* deployment `failed` (a production incident linked to the deploy) or
|
|
106
115
|
* `restored` (recovered). Idempotent — keyed on (execution_id, outcome) so a
|
|
107
116
|
* duplicate POST refreshes `at` rather than double-counting, while a
|
|
@@ -114,7 +123,7 @@ export declare class ReportingService {
|
|
|
114
123
|
environment?: string;
|
|
115
124
|
}): Promise<void>;
|
|
116
125
|
/**
|
|
117
|
-
* Ingest a production incident
|
|
126
|
+
* Ingest a production incident from the org's incident tooling
|
|
118
127
|
* (PagerDuty / Datadog / Alertmanager webhook). Idempotent — keyed on
|
|
119
128
|
* (org_id, incident_id) so a later resolve re-post upserts `resolved_at`
|
|
120
129
|
* (and refreshes the other mutable fields) instead of inserting a duplicate.
|
|
@@ -125,14 +134,14 @@ export declare class ReportingService {
|
|
|
125
134
|
*/
|
|
126
135
|
recordIncident(orgId: string, input: IncidentInput): Promise<void>;
|
|
127
136
|
/**
|
|
128
|
-
* Read the per-org DORA settings
|
|
137
|
+
* Read the per-org DORA settings. Returns the stored
|
|
129
138
|
* `incidentWindowHours` override (or `null` when unset) plus the global env
|
|
130
139
|
* default, so the settings UI can show both. Runs under the caller's tenant
|
|
131
140
|
* context (RLS-scoped); a single-org read.
|
|
132
141
|
*/
|
|
133
|
-
|
|
142
|
+
getReportingSettings(orgId: string, retentionOrgId?: string): Promise<ReportingSettings>;
|
|
134
143
|
/**
|
|
135
|
-
* Upsert per-org reporting settings (
|
|
144
|
+
* Upsert per-org reporting settings (incident window +
|
|
136
145
|
* retention overrides), idempotent on `org_id`. A partial write — only the
|
|
137
146
|
* fields present in `patch` are set (so updating retention never clears the
|
|
138
147
|
* incident window, and vice-versa). Set self-serve by an org admin via
|
|
@@ -142,7 +151,7 @@ export declare class ReportingService {
|
|
|
142
151
|
*/
|
|
143
152
|
setReportingSettings(orgId: string, patch: ReportingSettingsPatch): Promise<void>;
|
|
144
153
|
/**
|
|
145
|
-
* List recent incidents for an org (
|
|
154
|
+
* List recent incidents for an org (org-admin surface), newest first,
|
|
146
155
|
* paginated. Each row carries its resolved state and its deploy correlation —
|
|
147
156
|
* the most recent SUCCESSFUL deploy to the incident's `environment` whose
|
|
148
157
|
* `completed_at` falls within the effective per-org correlation window before
|
|
@@ -155,7 +164,7 @@ export declare class ReportingService {
|
|
|
155
164
|
offset: number;
|
|
156
165
|
}): Promise<IncidentListItem[]>;
|
|
157
166
|
/**
|
|
158
|
-
* Wiring-test dry-run
|
|
167
|
+
* Wiring-test dry-run: would a synthetic incident opening NOW for
|
|
159
168
|
* `environment` correlate to a recent successful deploy under the org's
|
|
160
169
|
* effective window? This is a NON-persisting correlation check — it verifies
|
|
161
170
|
* the admin's environment naming + window line up with real deploy events
|
|
@@ -163,7 +172,7 @@ export declare class ReportingService {
|
|
|
163
172
|
*/
|
|
164
173
|
testIncidentCorrelation(orgId: string, environment: string): Promise<IncidentTestResult>;
|
|
165
174
|
/**
|
|
166
|
-
* Upsert per-org ingestion health
|
|
175
|
+
* Upsert per-org ingestion health: the AWS events Lambda periodically
|
|
167
176
|
* reports forwarded/dropped counters + the last event timestamp so the Reports
|
|
168
177
|
* UI can show flowing / stale / dropping. One row per org (upsert on org_id).
|
|
169
178
|
*/
|
|
@@ -173,14 +182,14 @@ export declare class ReportingService {
|
|
|
173
182
|
lastEventAt?: string;
|
|
174
183
|
}): Promise<void>;
|
|
175
184
|
/**
|
|
176
|
-
* Read back one org's ingestion health
|
|
185
|
+
* Read back one org's ingestion health for the Reports UI freshness
|
|
177
186
|
* indicator. Returns `null` when the org has NO row — i.e. the deployment has
|
|
178
187
|
* never ingested anything — which the UI must render as "no ingest reported
|
|
179
188
|
* yet", never as "stale". RLS-scoped to the org like every other read.
|
|
180
189
|
*/
|
|
181
190
|
getIngestHealth(orgId: string): Promise<IngestHealthStatus | null>;
|
|
182
191
|
/**
|
|
183
|
-
* Reporting retention sweep
|
|
192
|
+
* Reporting retention sweep. Hard-deletes rows older than their
|
|
184
193
|
* retention window, by `created_at`, across every org that has reporting data —
|
|
185
194
|
* a **split** policy so high-volume standard events expire faster than the
|
|
186
195
|
* low-volume DORA source:
|