@openziti/ziti-console-lib 0.12.4 → 0.12.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/features/progress-meter/progress-meter.component.mjs +44 -0
- package/esm2022/lib/features/progress-wizard/progress-wizard.component.mjs +91 -0
- package/esm2022/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.service.mjs +4 -2
- package/esm2022/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.service.mjs +4 -2
- package/esm2022/lib/features/projectable-forms/service-policy/service-policy-form.service.mjs +4 -2
- package/esm2022/lib/features/visualizer/identity-service-path/identity-service-path.component.mjs +19 -19
- package/esm2022/lib/features/visualizer/identity-service-path/identity-service-path.helper.mjs +10 -4
- package/esm2022/lib/pages/auth-policies/auth-policies-page.service.mjs +3 -2
- package/esm2022/lib/pages/certificate-authorities/certificate-authorities-page.service.mjs +3 -2
- package/esm2022/lib/pages/config-types/config-types-page.service.mjs +3 -2
- package/esm2022/lib/pages/configurations/configurations-page.service.mjs +3 -2
- package/esm2022/lib/pages/edge-router-policies/edge-router-policies-page.service.mjs +3 -2
- package/esm2022/lib/pages/edge-routers/edge-routers-page.service.mjs +3 -2
- package/esm2022/lib/pages/identities/identities-page.service.mjs +3 -2
- package/esm2022/lib/pages/jwt-signers/jwt-signers-page.service.mjs +3 -2
- package/esm2022/lib/pages/posture-checks/posture-checks-page.service.mjs +3 -2
- package/esm2022/lib/pages/service-edge-router-policies/service-edge-router-policies-page.service.mjs +3 -2
- package/esm2022/lib/pages/service-policies/service-policies-page.service.mjs +3 -2
- package/esm2022/lib/pages/services/services-page.service.mjs +3 -2
- package/esm2022/lib/pages/terminators/terminators-page.service.mjs +3 -2
- package/esm2022/lib/pages/transit-routers/transit-routers-page.service.mjs +3 -2
- package/esm2022/lib/shared/list-page-service.class.mjs +21 -1
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/lib/ziti-console-lib.module.mjs +19 -5
- package/esm2022/public-api.mjs +5 -1
- package/fesm2022/openziti-ziti-console-lib.mjs +727 -544
- package/fesm2022/openziti-ziti-console-lib.mjs.map +1 -1
- package/lib/features/progress-meter/progress-meter.component.d.ts +19 -0
- package/lib/features/progress-meter/progress-meter.component.d.ts.map +1 -0
- package/lib/features/progress-wizard/progress-wizard.component.d.ts +31 -0
- package/lib/features/progress-wizard/progress-wizard.component.d.ts.map +1 -0
- package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.service.d.ts.map +1 -1
- package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.service.d.ts.map +1 -1
- package/lib/features/projectable-forms/service-policy/service-policy-form.service.d.ts.map +1 -1
- package/lib/features/visualizer/identity-service-path/identity-service-path.component.d.ts +1 -0
- package/lib/features/visualizer/identity-service-path/identity-service-path.component.d.ts.map +1 -1
- package/lib/features/visualizer/identity-service-path/identity-service-path.helper.d.ts.map +1 -1
- package/lib/features/visualizer/network-visualizer/network-visualizer.component.d.ts +1 -1
- package/lib/pages/auth-policies/auth-policies-page.service.d.ts.map +1 -1
- package/lib/pages/certificate-authorities/certificate-authorities-page.service.d.ts.map +1 -1
- package/lib/pages/config-types/config-types-page.service.d.ts.map +1 -1
- package/lib/pages/configurations/configurations-page.service.d.ts.map +1 -1
- package/lib/pages/edge-router-policies/edge-router-policies-page.service.d.ts.map +1 -1
- package/lib/pages/edge-routers/edge-routers-page.service.d.ts.map +1 -1
- package/lib/pages/identities/identities-page.service.d.ts.map +1 -1
- package/lib/pages/jwt-signers/jwt-signers-page.service.d.ts.map +1 -1
- package/lib/pages/posture-checks/posture-checks-page.service.d.ts.map +1 -1
- package/lib/pages/service-edge-router-policies/service-edge-router-policies-page.service.d.ts.map +1 -1
- package/lib/pages/service-policies/service-policies-page.service.d.ts.map +1 -1
- package/lib/pages/services/services-page.service.d.ts.map +1 -1
- package/lib/pages/terminators/terminators-page.service.d.ts.map +1 -1
- package/lib/pages/transit-routers/transit-routers-page.service.d.ts.map +1 -1
- package/lib/shared/list-page-service.class.d.ts +21 -0
- package/lib/shared/list-page-service.class.d.ts.map +1 -1
- package/lib/ziti-console-lib.module.d.ts +20 -18
- package/lib/ziti-console-lib.module.d.ts.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +4 -0
- package/public-api.d.ts.map +1 -1
|
@@ -304,7 +304,8 @@ class EdgeRouterPoliciesPageService extends ListPageServiceClass {
|
|
|
304
304
|
this.openEditForm(data.data.id);
|
|
305
305
|
},
|
|
306
306
|
hide: true
|
|
307
|
-
}
|
|
307
|
+
},
|
|
308
|
+
this.ID_COLUMN_DEF
|
|
308
309
|
];
|
|
309
310
|
}
|
|
310
311
|
getData(filters, sort, page) {
|
|
@@ -404,4 +405,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
404
405
|
type: Inject,
|
|
405
406
|
args: [SHAREDZ_EXTENSION]
|
|
406
407
|
}] }, { type: i5.Router }]; } });
|
|
407
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1yb3V0ZXItcG9saWNpZXMtcGFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL3BhZ2VzL2VkZ2Utcm91dGVyLXBvbGljaWVzL2VkZ2Utcm91dGVyLXBvbGljaWVzLXBhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBWSxPQUFPLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFHMUMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUNILDJCQUEyQixFQUM5QixNQUFNLDhGQUE4RixDQUFDO0FBRXRHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBa0IsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRixPQUFPLEVBQUMsaUJBQWlCLEVBQWtCLE1BQU0sa0NBQWtDLENBQUM7QUFFcEYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUs3QixPQUFPLEVBQW1CLGlCQUFpQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFFdEcsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMkVBQTJFLENBQUM7Ozs7Ozs7OztBQUVqSCxNQUdhLDZCQUE4QixTQUFRLG9CQUFvQjtJQTJDbkUsWUFDOEIsUUFBOEIsRUFDeEQsYUFBcUMsRUFDRixXQUE0QixFQUN0RCxrQkFBc0MsRUFDdkMsY0FBOEIsRUFDOUIsVUFBcUIsRUFDTSxVQUE0QixFQUM1QyxNQUFjO1FBRWpDLEtBQUssQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxN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LFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkE2Q1EsTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUV2QixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBSXhCLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgICBDb3B5cmlnaHQgTmV0Rm91bmRyeSBJbmMuXG5cbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuKi9cblxuaW1wb3J0IHtJbmplY3RhYmxlLCBJbmplY3R9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge2Nsb25lRGVlcCwgaXNFbXB0eX0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7RGF0YVRhYmxlRmlsdGVyU2VydmljZSwgRmlsdGVyT2JqfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQge0xpc3RQYWdlU2VydmljZUNsYXNzfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpc3QtcGFnZS1zZXJ2aWNlLmNsYXNzXCI7XG5pbXBvcnQge1xuICAgIFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudFxufSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9jb2x1bW4taGVhZGVycy90YWJsZS1jb2x1bW4tZGVmYXVsdC90YWJsZS1jb2x1bW4tZGVmYXVsdC5jb21wb25lbnRcIjtcbmltcG9ydCB7Q2FsbGJhY2tSZXN1bHRzfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvbGlzdC1wYWdlLWZlYXR1cmVzL2xpc3QtcGFnZS1mb3JtL2xpc3QtcGFnZS1mb3JtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtTRVRUSU5HU19TRVJWSUNFLCBTZXR0aW5nc1NlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9zZXR0aW5ncy5zZXJ2aWNlXCI7XG5pbXBvcnQge1pJVElfREFUQV9TRVJWSUNFLCBaaXRpRGF0YVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy96aXRpLWRhdGEuc2VydmljZVwiO1xuaW1wb3J0IHtDc3ZEb3dubG9hZFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9jc3YtZG93bmxvYWQuc2VydmljZVwiO1xuaW1wb3J0IHtFZGdlUm91dGVyUG9saWN5fSBmcm9tIFwiLi4vLi4vbW9kZWxzL2VkZ2Utcm91dGVyLXBvbGljeVwiO1xuaW1wb3J0IHt1bnNldH0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtHcm93bGVyTW9kZWx9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9tZXNzYWdpbmcvZ3Jvd2xlci5tb2RlbFwiO1xuaW1wb3J0IHtHcm93bGVyU2VydmljZX0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL21lc3NhZ2luZy9ncm93bGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQge1NldHRpbmdzU2VydmljZUNsYXNzfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc2V0dGluZ3Mtc2VydmljZS5jbGFzc1wiO1xuaW1wb3J0IHtFeHRlbnNpb25TZXJ2aWNlLCBTSEFSRURaX0VYVEVOU0lPTn0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2V4dGVuZGFibGUvZXh0ZW5zaW9ucy1ub29wLnNlcnZpY2VcIjtcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtUYWJsZUNlbGxOYW1lQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9jZWxscy90YWJsZS1jZWxsLW5hbWUvdGFibGUtY2VsbC1uYW1lLmNvbXBvbmVudFwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEVkZ2VSb3V0ZXJQb2xpY2llc1BhZ2VTZXJ2aWNlIGV4dGVuZHMgTGlzdFBhZ2VTZXJ2aWNlQ2xhc3Mge1xuXG4gICAgcHJpdmF0ZSBwYWdpbmcgPSB0aGlzLkRFRkFVTFRfUEFHSU5HO1xuICAgIHB1YmxpYyBtb2RhbFR5cGUgPSAnZWRnZS1yb3V0ZXItcG9saWN5JztcblxuICAgIHNlcnZpY2VUeXBlID0gJyc7XG4gICAgc2VsZWN0ZWRFZGdlUm91dGVyUG9saWN5OiBhbnkgPSBuZXcgRWRnZVJvdXRlclBvbGljeSgpO1xuXG4gICAgcm91dGVyUm9sZUF0dHJpYnV0ZXMgPSBbXTtcbiAgICByb3V0ZXJOYW1lZEF0dHJpYnV0ZXMgPSBbXTtcbiAgICByb3V0ZXJOYW1lZEF0dHJpYnV0ZXNNYXAgPSB7fTtcbiAgICBzZWxlY3RlZFJvdXRlclJvbGVBdHRyaWJ1dGVzID0gW107XG4gICAgc2VsZWN0ZWRSb3V0ZXJOYW1lZEF0dHJpYnV0ZXMgPSBbXTtcblxuICAgIGlkZW50aXR5Um9sZUF0dHJpYnV0ZXMgPSBbXTtcbiAgICBpZGVudGl0eU5hbWVkQXR0cmlidXRlcyA9IFtdO1xuICAgIGlkZW50aXR5TmFtZWRBdHRyaWJ1dGVzTWFwID0ge307XG4gICAgc2VsZWN0ZWRJZGVudGl0eVJvbGVBdHRyaWJ1dGVzID0gW107XG4gICAgc2VsZWN0ZWRJZGVudGl0eU5hbWVkQXR0cmlidXRlcyA9IFtdO1xuXG4gICAgcG9zdHVyZVJvbGVBdHRyaWJ1dGVzID0gW107XG4gICAgcG9zdHVyZU5hbWVkQXR0cmlidXRlcyA9IFtdO1xuICAgIHBvc3R1cmVOYW1lZEF0dHJpYnV0ZXNNYXAgPSB7fTtcbiAgICBzZWxlY3RlZFBvc3R1cmVSb2xlQXR0cmlidXRlcyA9IFtdO1xuICAgIHNlbGVjdGVkUG9zdHVyZU5hbWVkQXR0cmlidXRlcyA9IFtdO1xuXG4gICAgY29sdW1uRmlsdGVyczogYW55ID0ge1xuICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgb3M6ICcnLFxuICAgICAgICBjcmVhdGVkQXQ6ICcnLFxuICAgIH07XG5cbiAgICBvdmVycmlkZSBtZW51SXRlbXMgPSBbXG4gICAgICAgIHtuYW1lOiAnRWRpdCcsIGFjdGlvbjogJ3VwZGF0ZSd9LFxuICAgICAgICB7bmFtZTogJ0RlbGV0ZScsIGFjdGlvbjogJ2RlbGV0ZSd9LFxuICAgIF1cblxuICAgIG92ZXJyaWRlIHRhYmxlSGVhZGVyQWN0aW9ucyA9IFtcbiAgICAgICAge25hbWU6ICdEb3dubG9hZCBBbGwnLCBhY3Rpb246ICdkb3dubG9hZC1hbGwnfSxcbiAgICAgICAge25hbWU6ICdEb3dubG9hZCBTZWxlY3RlZCcsIGFjdGlvbjogJ2Rvd25sb2FkLXNlbGVjdGVkJ30sXG4gICAgXVxuXG4gICAgcmVzb3VyY2VUeXBlID0gJ2VkZ2Utcm91dGVyLXBvbGljaWVzJztcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChTRVRUSU5HU19TRVJWSUNFKSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlQ2xhc3MsXG4gICAgICAgIGZpbHRlclNlcnZpY2U6IERhdGFUYWJsZUZpbHRlclNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoWklUSV9EQVRBX1NFUlZJQ0UpIHByaXZhdGUgeml0aVNlcnZpY2U6IFppdGlEYXRhU2VydmljZSxcbiAgICAgICAgb3ZlcnJpZGUgY3N2RG93bmxvYWRTZXJ2aWNlOiBDc3ZEb3dubG9hZFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ3Jvd2xlclNlcnZpY2U6IEdyb3dsZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ0Zvcm06IE1hdERpYWxvZyxcbiAgICAgICAgQEluamVjdChTSEFSRURaX0VYVEVOU0lPTikgcHJpdmF0ZSBleHRTZXJ2aWNlOiBFeHRlbnNpb25TZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcm91dGVyOiBSb3V0ZXJcbiAgICApIHtcbiAgICAgICAgc3VwZXIoc2V0dGluZ3MsIGZpbHRlclNlcnZpY2UsIGNzdkRvd25sb2FkU2VydmljZSwgZXh0U2VydmljZSwgcm91dGVyKTtcbiAgICAgICAgdGhpcy5maWx0ZXJTZXJ2aWNlLmZpbHRlcnNDaGFuZ2VkLnN1YnNjcmliZShmaWx0ZXJzID0+IHtcbiAgICAgICAgICAgIGxldCByb3V0ZXJGaWx0ZXIsIGlkZW50aXR5RmlsdGVyLCBwb3N0dXJlRmlsdGVyO1xuICAgICAgICAgICAgZmlsdGVycy5mb3JFYWNoKChmaWx0ZXIpID0+IHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZpbHRlci5jb2x1bW5JZCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdlZGdlUm91dGVyUm9sZXMnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyRmlsdGVyID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdpZGVudGl0eVJvbGVzJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50aXR5RmlsdGVyID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdwb3N0dXJlUm9sZXMnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zdHVyZUZpbHRlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICghcm91dGVyRmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJvdXRlclJvbGVBdHRyaWJ1dGVzID0gW107XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJvdXRlck5hbWVkQXR0cmlidXRlcyA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFpZGVudGl0eUZpbHRlcikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZGVudGl0eVJvbGVBdHRyaWJ1dGVzID0gW107XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZElkZW50aXR5TmFtZWRBdHRyaWJ1dGVzID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHZhbGlkYXRlID0gKGZvcm1EYXRhKTogUHJvbWlzZTxDYWxsYmFja1Jlc3VsdHM+ID0+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IHBhc3NlZDogdHJ1ZX0pO1xuICAgIH1cblxuICAgIGluaXRUYWJsZUNvbHVtbnMoKTogYW55IHtcbiAgICAgICAgY29uc3QgY3JlYXRlZEF0SGVhZGVyQ29tcG9uZW50UGFyYW1zID0ge1xuICAgICAgICAgICAgZmlsdGVyVHlwZTogJ0RBVEVUSU1FJyxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgICAgIGNvbnN0IHJvdXRlclJvbGVzSGVhZGVyQ29tcG9uZW50UGFyYW1zID0ge1xuICAgICAgICAgICAgZmlsdGVyVHlwZTogJ0FUVFJJQlVURScsXG4gICAgICAgICAgICBlbmFibGVTb3J0aW5nOiB0cnVlLFxuICAgICAgICAgICAgZ2V0Um9sZUF0dHJpYnV0ZXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yb3V0ZXJSb2xlQXR0cmlidXRlcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXROYW1lZEF0dHJpYnV0ZXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yb3V0ZXJOYW1lZEF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0U2VsZWN0ZWRSb2xlQXR0cmlidXRlczogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnNlbGVjdGVkUm91dGVyUm9sZUF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0U2VsZWN0ZWROYW1lZEF0dHJpYnV0ZXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5zZWxlY3RlZFJvdXRlck5hbWVkQXR0cmlidXRlcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRTZWxlY3RlZFJvbGVBdHRyaWJ1dGVzOiAoYXR0cmlidXRlcykgPT4ge1xuICAgICAgICAgICAgICAgIHNlbGYuc2VsZWN0ZWRSb3V0ZXJSb2xlQXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0U2VsZWN0ZWROYW1lZEF0dHJpYnV0ZXM6IChhdHRyaWJ1dGVzKSA9PiB7XG4gICAgICAgICAgICAgICAgc2VsZi5zZWxlY3RlZFJvdXRlck5hbWVkQXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0TmFtZWRBdHRyaWJ1dGVzTWFwOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucm91dGVyTmFtZWRBdHRyaWJ1dGVzTWFwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBpZGVudGl0eVJvbGVzSGVhZGVyQ29tcG9uZW50UGFyYW1zID0ge1xuICAgICAgICAgICAgZmlsdGVyVHlwZTogJ0FUVFJJQlVURScsXG4gICAgICAgICAgICBlbmFibGVTb3J0aW5nOiB0cnVlLFxuICAgICAgICAgICAgZ2V0Um9sZUF0dHJpYnV0ZXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5pZGVudGl0eVJvbGVBdHRyaWJ1dGVzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldE5hbWVkQXR0cmlidXRlczogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmlkZW50aXR5TmFtZWRBdHRyaWJ1dGVzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldFNlbGVjdGVkUm9sZUF0dHJpYnV0ZXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5zZWxlY3RlZElkZW50aXR5Um9sZUF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0U2VsZWN0ZWROYW1lZEF0dHJpYnV0ZXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5zZWxlY3RlZElkZW50aXR5TmFtZWRBdHRyaWJ1dGVzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldFNlbGVjdGVkUm9sZUF0dHJpYnV0ZXM6IChhdHRyaWJ1dGVzKSA9PiB7XG4gICAgICAgICAgICAgICAgc2VsZi5zZWxlY3RlZElkZW50aXR5Um9sZUF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldFNlbGVjdGVkTmFtZWRBdHRyaWJ1dGVzOiAoYXR0cmlidXRlcykgPT4ge1xuICAgICAgICAgICAgICAgIHNlbGYuc2VsZWN0ZWRJZGVudGl0eU5hbWVkQXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0TmFtZWRBdHRyaWJ1dGVzTWFwOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuaWRlbnRpdHlOYW1lZEF0dHJpYnV0ZXNNYXA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgcG9zdHVyZVJvbGVzSGVhZGVyQ29tcG9uZW50UGFyYW1zID0ge1xuICAgICAgICAgICAgZmlsdGVyVHlwZTogJ0FUVFJJQlVURScsXG4gICAgICAgICAgICBlbmFibGVTb3J0aW5nOiB0cnVlLFxuICAgICAgICAgICAgZ2V0Um9sZUF0dHJpYnV0ZXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5wb3N0dXJlUm9sZUF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0TmFtZWRBdHRyaWJ1dGVzOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucG9zdHVyZU5hbWVkQXR0cmlidXRlcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRTZWxlY3RlZFJvbGVBdHRyaWJ1dGVzOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuc2VsZWN0ZWRQb3N0dXJlUm9sZUF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0U2VsZWN0ZWROYW1lZEF0dHJpYnV0ZXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5zZWxlY3RlZFBvc3R1cmVOYW1lZEF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0U2VsZWN0ZWRSb2xlQXR0cmlidXRlczogKGF0dHJpYnV0ZXMpID0+IHtcbiAgICAgICAgICAgICAgICBzZWxmLnNlbGVjdGVkUG9zdHVyZVJvbGVBdHRyaWJ1dGVzID0gYXR0cmlidXRlcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRTZWxlY3RlZE5hbWVkQXR0cmlidXRlczogKGF0dHJpYnV0ZXMpID0+IHtcbiAgICAgICAgICAgICAgICBzZWxmLnNlbGVjdGVkUG9zdHVyZU5hbWVkQXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0TmFtZWRBdHRyaWJ1dGVzTWFwOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucG9zdHVyZU5hbWVkQXR0cmlidXRlc01hcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBzZW1hbnRpY0hlYWRlckNvbXBvbmVudFBhcmFtcyA9IHtcbiAgICAgICAgICAgIGZpbHRlclR5cGU6ICdTRUxFQ1QnLFxuICAgICAgICAgICAgZW5hYmxlU29ydGluZzogdHJ1ZSxcbiAgICAgICAgICAgIGZpbHRlck9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnQW55IE9mJywgdmFsdWU6ICdBbnlPZicsIGNvbHVtbklkOiAnc2VtYW50aWMnfSxcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnQWxsIE9mJywgdmFsdWU6ICdBbGxPZicsIGNvbHVtbklkOiAnc2VtYW50aWMnIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgZ2V0RmlsdGVyT3B0aW9uczogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZW1hbnRpY0hlYWRlckNvbXBvbmVudFBhcmFtcy5maWx0ZXJPcHRpb25zO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHR5cGVIZWFkZXJDb21wb25lbnRQYXJhbXMgPSB7XG4gICAgICAgICAgICBmaWx0ZXJUeXBlOiAnU0VMRUNUJyxcbiAgICAgICAgICAgIGVuYWJsZVNvcnRpbmc6IHRydWUsXG4gICAgICAgICAgICBmaWx0ZXJPcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0RpYWwnLCB2YWx1ZTogJ0RpYWwnLCBjb2x1bW5JZDogJ3R5cGUnIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0JpbmQnLCB2YWx1ZTogJ0JpbmQnLCBjb2x1bW5JZDogJ3R5cGUnIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgZ2V0RmlsdGVyT3B0aW9uczogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlSGVhZGVyQ29tcG9uZW50UGFyYW1zLmZpbHRlck9wdGlvbnM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ25hbWUnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnbmFtZScsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ05hbWUnLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudFBhcmFtczogdGhpcy5oZWFkZXJDb21wb25lbnRQYXJhbXMsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiBUYWJsZUNlbGxOYW1lQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlclBhcmFtczogeyBwYXRoUm9vdDogdGhpcy5iYXNlUGF0aCB9LFxuICAgICAgICAgICAgICAgIG9uQ2VsbENsaWNrZWQ6IChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc1NlbGVjdGVkVGV4dCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlVHlwZSA9ICdhZHZhbmNlZCc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbkVkaXRGb3JtKGRhdGEuZGF0YS5pZCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLnNvcnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBzb3J0RGlyOiAnYXNjJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogMzAwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ2VkZ2VSb3V0ZXJSb2xlcycsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdlZGdlUm91dGVyUm9sZXMnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdSb3V0ZXIgQXR0cmlidXRlcycsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50UGFyYW1zOiByb3V0ZXJSb2xlc0hlYWRlckNvbXBvbmVudFBhcmFtcyxcbiAgICAgICAgICAgICAgICBvbkNlbGxDbGlja2VkOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNTZWxlY3RlZFRleHQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZVR5cGUgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuRWRpdEZvcm0oZGF0YS5kYXRhLmlkKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI6IHRoaXMucm9sZXNSZW5kZXJlcixcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICAgICAgc29ydGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAnaWRlbnRpdHlSb2xlcycsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdpZGVudGl0eVJvbGVzJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnSWRlbnRpdHkgQXR0cmlidXRlcycsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50UGFyYW1zOiBpZGVudGl0eVJvbGVzSGVhZGVyQ29tcG9uZW50UGFyYW1zLFxuICAgICAgICAgICAgICAgIG9uQ2VsbENsaWNrZWQ6IChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc1NlbGVjdGVkVGV4dCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlVHlwZSA9ICcnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5FZGl0Rm9ybShkYXRhLmRhdGEuaWQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogdGhpcy5yb2xlc1JlbmRlcmVyLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgZmlsdGVyOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdzZW1hbnRpYycsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdzZW1hbnRpYycsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ1NlbWFudGljJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnRQYXJhbXM6IHNlbWFudGljSGVhZGVyQ29tcG9uZW50UGFyYW1zLFxuICAgICAgICAgICAgICAgIG9uQ2VsbENsaWNrZWQ6IChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc1NlbGVjdGVkVGV4dCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlVHlwZSA9ICcnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5FZGl0Rm9ybShkYXRhLmRhdGEuaWQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogKHJvdykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcm93LmRhdGE/LnNlbWFudGljID09PSAnQW55T2YnID8gJ0FueSBPZicgOiAnQWxsIE9mJztcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ2NyZWF0ZWRBdCcsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdjcmVhdGVkQXQnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdDcmVhdGVkIEF0JyxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnRQYXJhbXM6IGNyZWF0ZWRBdEhlYWRlckNvbXBvbmVudFBhcmFtcyxcbiAgICAgICAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogdGhpcy5jcmVhdGVkQXRGb3JtYXR0ZXIsXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRDb2x1bW46IHRoaXMuc29ydC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICBvbkNlbGxDbGlja2VkOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNTZWxlY3RlZFRleHQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZVR5cGUgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuRWRpdEZvcm0oZGF0YS5kYXRhLmlkKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGhpZGU6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBnZXREYXRhKGZpbHRlcnM/OiBGaWx0ZXJPYmpbXSwgc29ydD86IGFueSwgcGFnZT86IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIC8vIHdlIGNhbiBjdXN0b21pemUgZmlsdGVycyBvciBzb3J0aW5nIGhlcmUgYmVmb3JlIG1vdmluZyBvbi4uLlxuICAgICAgICB0aGlzLnBhZ2luZy5wYWdlID0gcGFnZSB8fCB0aGlzLnBhZ2luZy5wYWdlO1xuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0VGFibGVEYXRhKCdlZGdlLXJvdXRlci1wb2xpY2llcycsIHRoaXMucGFnaW5nLCBmaWx0ZXJzLCBzb3J0KVxuICAgICAgICAgICAgLnRoZW4oKHJlc3VsdHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NEYXRhKHJlc3VsdHMpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcm9jZXNzRGF0YShyZXN1bHRzOiBhbnkpIHtcbiAgICAgICAgaWYgKCFpc0VtcHR5KHJlc3VsdHM/LmRhdGEpKSB7XG4gICAgICAgICAgICAvL3ByZS1wcm9jZXNzIGRhdGEgYmVmb3JlIHJlbmRlcmluZ1xuICAgICAgICAgICAgcmVzdWx0cy5kYXRhID0gdGhpcy5hZGRBY3Rpb25zUGVyUm93KHJlc3VsdHMpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNFbXB0eShyZXN1bHRzPy5tZXRhPy5wYWdpbmF0aW9uKSkge1xuICAgICAgICAgICAgdGhpcy50b3RhbENvdW50ID0gcmVzdWx0cy5tZXRhPy5wYWdpbmF0aW9uLnRvdGFsQ291bnQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRBY3Rpb25zUGVyUm93KHJlc3VsdHM6IGFueSk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdHMuZGF0YS5tYXAoKHJvdykgPT4ge1xuICAgICAgICAgICAgcm93LmFjdGlvbkxpc3QgPSBbJ3VwZGF0ZScsICdkZWxldGUnXTtcbiAgICAgICAgICAgIHJldHVybiByb3c7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRFZGdlUm91dGVyUm9sZUF0dHJpYnV0ZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnppdGlTZXJ2aWNlLmdldCgnZWRnZS1yb3V0ZXItcm9sZS1hdHRyaWJ1dGVzJywge30sIFtdKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIHRoaXMucm91dGVyUm9sZUF0dHJpYnV0ZXMgPSByZXN1bHQuZGF0YTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJZGVudGl0eU5hbWVkQXR0cmlidXRlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueml0aVNlcnZpY2UuZ2V0KCdpZGVudGl0aWVzJywge30sIFtdKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWVkQXR0cmlidXRlcyA9IHJlc3VsdC5kYXRhLm1hcCgoaWRlbnRpdHkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlkZW50aXR5TmFtZWRBdHRyaWJ1dGVzTWFwW2lkZW50aXR5Lm5hbWVdID0gaWRlbnRpdHkuaWQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlkZW50aXR5Lm5hbWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuaWRlbnRpdHlOYW1lZEF0dHJpYnV0ZXMgPSBuYW1lZEF0dHJpYnV0ZXM7XG4gICAgICAgICAgICByZXR1cm4gbmFtZWRBdHRyaWJ1dGVzO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2VydmljZU5hbWVkQXR0cmlidXRlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueml0aVNlcnZpY2UuZ2V0KCdlZGdlLXJvdXRlcnMnLCB7fSwgW10pLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmFtZWRBdHRyaWJ1dGVzID0gcmVzdWx0LmRhdGEubWFwKChyb3V0ZXIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlck5hbWVkQXR0cmlidXRlc01hcFtyb3V0ZXIubmFtZV0gPSByb3V0ZXIuaWQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJvdXRlci5uYW1lO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnJvdXRlck5hbWVkQXR0cmlidXRlcyA9IG5hbWVkQXR0cmlidXRlcztcbiAgICAgICAgICAgIHJldHVybiBuYW1lZEF0dHJpYnV0ZXM7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJZGVudGl0eVJvbGVBdHRyaWJ1dGVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy56aXRpU2VydmljZS5nZXQoJ2lkZW50aXR5LXJvbGUtYXR0cmlidXRlcycsIHt9LCBbXSkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlkZW50aXR5Um9sZUF0dHJpYnV0ZXMgPSByZXN1bHQuZGF0YTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQb3N0dXJlTmFtZWRBdHRyaWJ1dGVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy56aXRpU2VydmljZS5nZXQoJ3Bvc3R1cmUtY2hlY2tzJywge30sIFtdKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWVkQXR0cmlidXRlcyA9IHJlc3VsdC5kYXRhLm1hcCgocG9zdHVyZUNoZWNrKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3N0dXJlTmFtZWRBdHRyaWJ1dGVzTWFwW3Bvc3R1cmVDaGVjay5uYW1lXSA9IHBvc3R1cmVDaGVjay5pZDtcbiAgICAgICAgICAgICAgICByZXR1cm4gcG9zdHVyZUNoZWNrLm5hbWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMucG9zdHVyZU5hbWVkQXR0cmlidXRlcyA9IG5hbWVkQXR0cmlidXRlcztcbiAgICAgICAgICAgIHJldHVybiBuYW1lZEF0dHJpYnV0ZXM7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuVXBkYXRlKGl0ZW0/OiBhbnkpIHtcbiAgICAgICAgdGhpcy5tb2RhbFR5cGUgPSAnZWRnZS1yb3V0ZXItcG9saWNpZXMnO1xuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXJQb2xpY3kgPSBpdGVtO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXJQb2xpY3kuYmFkZ2VzID0gW107XG4gICAgICAgICAgICB1bnNldCh0aGlzLnNlbGVjdGVkRWRnZVJvdXRlclBvbGljeSwgJ19saW5rcycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXJQb2xpY3kgPSBuZXcgRWRnZVJvdXRlclBvbGljeSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2lkZU1vZGFsT3BlbiA9IHRydWU7XG4gICAgfVxufVxuIl19
|
|
408
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1yb3V0ZXItcG9saWNpZXMtcGFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL3BhZ2VzL2VkZ2Utcm91dGVyLXBvbGljaWVzL2VkZ2Utcm91dGVyLXBvbGljaWVzLXBhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBWSxPQUFPLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFHMUMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUNILDJCQUEyQixFQUM5QixNQUFNLDhGQUE4RixDQUFDO0FBRXRHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBa0IsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRixPQUFPLEVBQUMsaUJBQWlCLEVBQWtCLE1BQU0sa0NBQWtDLENBQUM7QUFFcEYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUs3QixPQUFPLEVBQW1CLGlCQUFpQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFFdEcsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMkVBQTJFLENBQUM7Ozs7Ozs7OztBQUVqSCxNQUdhLDZCQUE4QixTQUFRLG9CQUFvQjtJQTJDbkUsWUFDOEIsUUFBOEIsRUFDeEQsYUFBcUMsRUFDRixXQUE0QixFQUN0RCxrQkFBc0MsRUFDdkMsY0FBOEIsRUFDOUIsVUFBcUIsRUFDTSxVQUE0QixFQUM1QyxNQUFjO1FBRWpDLEtBQUssQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxN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OzRGQUE3Qiw2QkFBNkI7a0JBSHpDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkE2Q1EsTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUV2QixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBSXhCLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgICBDb3B5cmlnaHQgTmV0Rm91bmRyeSBJbmMuXG5cbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuKi9cblxuaW1wb3J0IHtJbmplY3RhYmxlLCBJbmplY3R9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge2Nsb25lRGVlcCwgaXNFbXB0eX0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7RGF0YVRhYmxlRmlsdGVyU2VydmljZSwgRmlsdGVyT2JqfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQge0xpc3RQYWdlU2VydmljZUNsYXNzfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpc3QtcGFnZS1zZXJ2aWNlLmNsYXNzXCI7XG5pbXBvcnQge1xuICAgIFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudFxufSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9jb2x1bW4taGVhZGVycy90YWJsZS1jb2x1bW4tZGVmYXVsdC90YWJsZS1jb2x1bW4tZGVmYXVsdC5jb21wb25lbnRcIjtcbmltcG9ydCB7Q2FsbGJhY2tSZXN1bHRzfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvbGlzdC1wYWdlLWZlYXR1cmVzL2xpc3QtcGFnZS1mb3JtL2xpc3QtcGFnZS1mb3JtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtTRVRUSU5HU19TRVJWSUNFLCBTZXR0aW5nc1NlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9zZXR0aW5ncy5zZXJ2aWNlXCI7XG5pbXBvcnQge1pJVElfREFUQV9TRVJWSUNFLCBaaXRpRGF0YVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy96aXRpLWRhdGEuc2VydmljZVwiO1xuaW1wb3J0IHtDc3ZEb3dubG9hZFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9jc3YtZG93bmxvYWQuc2VydmljZVwiO1xuaW1wb3J0IHtFZGdlUm91dGVyUG9saWN5fSBmcm9tIFwiLi4vLi4vbW9kZWxzL2VkZ2Utcm91dGVyLXBvbGljeVwiO1xuaW1wb3J0IHt1bnNldH0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtHcm93bGVyTW9kZWx9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9tZXNzYWdpbmcvZ3Jvd2xlci5tb2RlbFwiO1xuaW1wb3J0IHtHcm93bGVyU2VydmljZX0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL21lc3NhZ2luZy9ncm93bGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQge1NldHRpbmdzU2VydmljZUNsYXNzfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc2V0dGluZ3Mtc2VydmljZS5jbGFzc1wiO1xuaW1wb3J0IHtFeHRlbnNpb25TZXJ2aWNlLCBTSEFSRURaX0VYVEVOU0lPTn0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2V4dGVuZGFibGUvZXh0ZW5zaW9ucy1ub29wLnNlcnZpY2VcIjtcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtUYWJsZUNlbGxOYW1lQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9jZWxscy90YWJsZS1jZWxsLW5hbWUvdGFibGUtY2VsbC1uYW1lLmNvbXBvbmVudFwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEVkZ2VSb3V0ZXJQb2xpY2llc1BhZ2VTZXJ2aWNlIGV4dGVuZHMgTGlzdFBhZ2VTZXJ2aWNlQ2xhc3Mge1xuXG4gICAgcHJpdmF0ZSBwYWdpbmcgPSB0aGlzLkRFRkFVTFRfUEFHSU5HO1xuICAgIHB1YmxpYyBtb2RhbFR5cGUgPSAnZWRnZS1yb3V0ZXItcG9saWN5JztcblxuICAgIHNlcnZpY2VUeXBlID0gJyc7XG4gICAgc2VsZWN0ZWRFZGdlUm91dGVyUG9saWN5OiBhbnkgPSBuZXcgRWRnZVJvdXRlclBvbGljeSgpO1xuXG4gICAgcm91dGVyUm9sZUF0dHJpYnV0ZXMgPSBbXTtcbiAgICByb3V0ZXJOYW1lZEF0dHJpYnV0ZXMgPSBbXTtcbiAgICByb3V0ZXJOYW1lZEF0dHJpYnV0ZXNNYXAgPSB7fTtcbiAgICBzZWxlY3RlZFJvdXRlclJvbGVBdHRyaWJ1dGVzID0gW107XG4gICAgc2VsZWN0ZWRSb3V0ZXJOYW1lZEF0dHJpYnV0ZXMgPSBbXTtcblxuICAgIGlkZW50aXR5Um9sZUF0dHJpYnV0ZXMgPSBbXTtcbiAgICBpZGVudGl0eU5hbWVkQXR0cmlidXRlcyA9IFtdO1xuICAgIGlkZW50aXR5TmFtZWRBdHRyaWJ1dGVzTWFwID0ge307XG4gICAgc2VsZWN0ZWRJZGVudGl0eVJvbGVBdHRyaWJ1dGVzID0gW107XG4gICAgc2VsZWN0ZWRJZGVudGl0eU5hbWVkQXR0cmlidXRlcyA9IFtdO1xuXG4gICAgcG9zdHVyZVJvbGVBdHRyaWJ1dGVzID0gW107XG4gICAgcG9zdHVyZU5hbWVkQXR0cmlidXRlcyA9IFtdO1xuICAgIHBvc3R1cmVOYW1lZEF0dHJpYnV0ZXNNYXAgPSB7fTtcbiAgICBzZWxlY3RlZFBvc3R1cmVSb2xlQXR0cmlidXRlcyA9IFtdO1xuICAgIHNlbGVjdGVkUG9zdHVyZU5hbWVkQXR0cmlidXRlcyA9IFtdO1xuXG4gICAgY29sdW1uRmlsdGVyczogYW55ID0ge1xuICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgb3M6ICcnLFxuICAgICAgICBjcmVhdGVkQXQ6ICcnLFxuICAgIH07XG5cbiAgICBvdmVycmlkZSBtZW51SXRlbXMgPSBbXG4gICAgICAgIHtuYW1lOiAnRWRpdCcsIGFjdGlvbjogJ3VwZGF0ZSd9LFxuICAgICAgICB7bmFtZTogJ0RlbGV0ZScsIGFjdGlvbjogJ2RlbGV0ZSd9LFxuICAgIF1cblxuICAgIG92ZXJyaWRlIHRhYmxlSGVhZGVyQWN0aW9ucyA9IFtcbiAgICAgICAge25hbWU6ICdEb3dubG9hZCBBbGwnLCBhY3Rpb246ICdkb3dubG9hZC1hbGwnfSxcbiAgICAgICAge25hbWU6ICdEb3dubG9hZCBTZWxlY3RlZCcsIGFjdGlvbjogJ2Rvd25sb2FkLXNlbGVjdGVkJ30sXG4gICAgXVxuXG4gICAgcmVzb3VyY2VUeXBlID0gJ2VkZ2Utcm91dGVyLXBvbGljaWVzJztcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChTRVRUSU5HU19TRVJWSUNFKSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlQ2xhc3MsXG4gICAgICAgIGZpbHRlclNlcnZpY2U6IERhdGFUYWJsZUZpbHRlclNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoWklUSV9EQVRBX1NFUlZJQ0UpIHByaXZhdGUgeml0aVNlcnZpY2U6IFppdGlEYXRhU2VydmljZSxcbiAgICAgICAgb3ZlcnJpZGUgY3N2RG93bmxvYWRTZXJ2aWNlOiBDc3ZEb3dubG9hZFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ3Jvd2xlclNlcnZpY2U6IEdyb3dsZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ0Zvcm06IE1hdERpYWxvZyxcbiAgICAgICAgQEluamVjdChTSEFSRURaX0VYVEVOU0lPTikgcHJpdmF0ZSBleHRTZXJ2aWNlOiBFeHRlbnNpb25TZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcm91dGVyOiBSb3V0ZXJcbiAgICApIHtcbiAgICAgICAgc3VwZXIoc2V0dGluZ3MsIGZpbHRlclNlcnZpY2UsIGNzdkRvd25sb2FkU2VydmljZSwgZXh0U2VydmljZSwgcm91dGVyKTtcbiAgICAgICAgdGhpcy5maWx0ZXJTZXJ2aWNlLmZpbHRlcnNDaGFuZ2VkLnN1YnNjcmliZShmaWx0ZXJzID0+IHtcbiAgICAgICAgICAgIGxldCByb3V0ZXJGaWx0ZXIsIGlkZW50aXR5RmlsdGVyLCBwb3N0dXJlRmlsdGVyO1xuICAgICAgICAgICAgZmlsdGVycy5mb3JFYWNoKChmaWx0ZXIpID0+IHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGZpbHRlci5jb2x1bW5JZCkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdlZGdlUm91dGVyUm9sZXMnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyRmlsdGVyID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdpZGVudGl0eVJvbGVzJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50aXR5RmlsdGVyID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdwb3N0dXJlUm9sZXMnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcG9zdHVyZUZpbHRlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICghcm91dGVyRmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJvdXRlclJvbGVBdHRyaWJ1dGVzID0gW107XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJvdXRlck5hbWVkQXR0cmlidXRlcyA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFpZGVudGl0eUZpbHRlcikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZGVudGl0eVJvbGVBdHRyaWJ1dGVzID0gW107XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZElkZW50aXR5TmFtZWRBdHRyaWJ1dGVzID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHZhbGlkYXRlID0gKGZvcm1EYXRhKTogUHJvbWlzZTxDYWxsYmFja1Jlc3VsdHM+ID0+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IHBhc3NlZDogdHJ1ZX0pO1xuICAgIH1cblxuICAgIGluaXRUYWJsZUNvbHVtbnMoKTogYW55IHtcbiAgICAgICAgY29uc3QgY3JlYXRlZEF0SGVhZGVyQ29tcG9uZW50UGFyYW1zID0ge1xuICAgICAgICAgICAgZmlsdGVyVHlwZTogJ0RBVEVUSU1FJyxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgICAgIGNvbnN0IHJvdXRlclJvbGVzSGVhZGVyQ29tcG9uZW50UGFyYW1zID0ge1xuICAgICAgICAgICAgZmlsdGVyVHlwZTogJ0FUVFJJQlVURScsXG4gICAgICAgICAgICBlbmFibGVTb3J0aW5nOiB0cnVlLFxuICAgICAgICAgICAgZ2V0Um9sZUF0dHJpYnV0ZXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yb3V0ZXJSb2xlQXR0cmlidXRlcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXROYW1lZEF0dHJpYnV0ZXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yb3V0ZXJOYW1lZEF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0U2VsZWN0ZWRSb2xlQXR0cmlidXRlczogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnNlbGVjdGVkUm91dGVyUm9sZUF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0U2VsZWN0ZWROYW1lZEF0dHJpYnV0ZXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5zZWxlY3RlZFJvdXRlck5hbWVkQXR0cmlidXRlcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRTZWxlY3RlZFJvbGVBdHRyaWJ1dGVzOiAoYXR0cmlidXRlcykgPT4ge1xuICAgICAgICAgICAgICAgIHNlbGYuc2VsZWN0ZWRSb3V0ZXJSb2xlQXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0U2VsZWN0ZWROYW1lZEF0dHJpYnV0ZXM6IChhdHRyaWJ1dGVzKSA9PiB7XG4gICAgICAgICAgICAgICAgc2VsZi5zZWxlY3RlZFJvdXRlck5hbWVkQXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0TmFtZWRBdHRyaWJ1dGVzTWFwOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucm91dGVyTmFtZWRBdHRyaWJ1dGVzTWFwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBpZGVudGl0eVJvbGVzSGVhZGVyQ29tcG9uZW50UGFyYW1zID0ge1xuICAgICAgICAgICAgZmlsdGVyVHlwZTogJ0FUVFJJQlVURScsXG4gICAgICAgICAgICBlbmFibGVTb3J0aW5nOiB0cnVlLFxuICAgICAgICAgICAgZ2V0Um9sZUF0dHJpYnV0ZXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5pZGVudGl0eVJvbGVBdHRyaWJ1dGVzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldE5hbWVkQXR0cmlidXRlczogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmlkZW50aXR5TmFtZWRBdHRyaWJ1dGVzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldFNlbGVjdGVkUm9sZUF0dHJpYnV0ZXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5zZWxlY3RlZElkZW50aXR5Um9sZUF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0U2VsZWN0ZWROYW1lZEF0dHJpYnV0ZXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5zZWxlY3RlZElkZW50aXR5TmFtZWRBdHRyaWJ1dGVzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldFNlbGVjdGVkUm9sZUF0dHJpYnV0ZXM6IChhdHRyaWJ1dGVzKSA9PiB7XG4gICAgICAgICAgICAgICAgc2VsZi5zZWxlY3RlZElkZW50aXR5Um9sZUF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldFNlbGVjdGVkTmFtZWRBdHRyaWJ1dGVzOiAoYXR0cmlidXRlcykgPT4ge1xuICAgICAgICAgICAgICAgIHNlbGYuc2VsZWN0ZWRJZGVudGl0eU5hbWVkQXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0TmFtZWRBdHRyaWJ1dGVzTWFwOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuaWRlbnRpdHlOYW1lZEF0dHJpYnV0ZXNNYXA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgcG9zdHVyZVJvbGVzSGVhZGVyQ29tcG9uZW50UGFyYW1zID0ge1xuICAgICAgICAgICAgZmlsdGVyVHlwZTogJ0FUVFJJQlVURScsXG4gICAgICAgICAgICBlbmFibGVTb3J0aW5nOiB0cnVlLFxuICAgICAgICAgICAgZ2V0Um9sZUF0dHJpYnV0ZXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5wb3N0dXJlUm9sZUF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0TmFtZWRBdHRyaWJ1dGVzOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucG9zdHVyZU5hbWVkQXR0cmlidXRlcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRTZWxlY3RlZFJvbGVBdHRyaWJ1dGVzOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuc2VsZWN0ZWRQb3N0dXJlUm9sZUF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0U2VsZWN0ZWROYW1lZEF0dHJpYnV0ZXM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5zZWxlY3RlZFBvc3R1cmVOYW1lZEF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0U2VsZWN0ZWRSb2xlQXR0cmlidXRlczogKGF0dHJpYnV0ZXMpID0+IHtcbiAgICAgICAgICAgICAgICBzZWxmLnNlbGVjdGVkUG9zdHVyZVJvbGVBdHRyaWJ1dGVzID0gYXR0cmlidXRlcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRTZWxlY3RlZE5hbWVkQXR0cmlidXRlczogKGF0dHJpYnV0ZXMpID0+IHtcbiAgICAgICAgICAgICAgICBzZWxmLnNlbGVjdGVkUG9zdHVyZU5hbWVkQXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0TmFtZWRBdHRyaWJ1dGVzTWFwOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucG9zdHVyZU5hbWVkQXR0cmlidXRlc01hcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBzZW1hbnRpY0hlYWRlckNvbXBvbmVudFBhcmFtcyA9IHtcbiAgICAgICAgICAgIGZpbHRlclR5cGU6ICdTRUxFQ1QnLFxuICAgICAgICAgICAgZW5hYmxlU29ydGluZzogdHJ1ZSxcbiAgICAgICAgICAgIGZpbHRlck9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnQW55IE9mJywgdmFsdWU6ICdBbnlPZicsIGNvbHVtbklkOiAnc2VtYW50aWMnfSxcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnQWxsIE9mJywgdmFsdWU6ICdBbGxPZicsIGNvbHVtbklkOiAnc2VtYW50aWMnIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgZ2V0RmlsdGVyT3B0aW9uczogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZW1hbnRpY0hlYWRlckNvbXBvbmVudFBhcmFtcy5maWx0ZXJPcHRpb25zO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHR5cGVIZWFkZXJDb21wb25lbnRQYXJhbXMgPSB7XG4gICAgICAgICAgICBmaWx0ZXJUeXBlOiAnU0VMRUNUJyxcbiAgICAgICAgICAgIGVuYWJsZVNvcnRpbmc6IHRydWUsXG4gICAgICAgICAgICBmaWx0ZXJPcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0RpYWwnLCB2YWx1ZTogJ0RpYWwnLCBjb2x1bW5JZDogJ3R5cGUnIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0JpbmQnLCB2YWx1ZTogJ0JpbmQnLCBjb2x1bW5JZDogJ3R5cGUnIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgZ2V0RmlsdGVyT3B0aW9uczogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlSGVhZGVyQ29tcG9uZW50UGFyYW1zLmZpbHRlck9wdGlvbnM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ25hbWUnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnbmFtZScsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ05hbWUnLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudFBhcmFtczogdGhpcy5oZWFkZXJDb21wb25lbnRQYXJhbXMsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiBUYWJsZUNlbGxOYW1lQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlclBhcmFtczogeyBwYXRoUm9vdDogdGhpcy5iYXNlUGF0aCB9LFxuICAgICAgICAgICAgICAgIG9uQ2VsbENsaWNrZWQ6IChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc1NlbGVjdGVkVGV4dCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlVHlwZSA9ICdhZHZhbmNlZCc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbkVkaXRGb3JtKGRhdGEuZGF0YS5pZCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLnNvcnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBzb3J0RGlyOiAnYXNjJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogMzAwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ2VkZ2VSb3V0ZXJSb2xlcycsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdlZGdlUm91dGVyUm9sZXMnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdSb3V0ZXIgQXR0cmlidXRlcycsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50UGFyYW1zOiByb3V0ZXJSb2xlc0hlYWRlckNvbXBvbmVudFBhcmFtcyxcbiAgICAgICAgICAgICAgICBvbkNlbGxDbGlja2VkOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNTZWxlY3RlZFRleHQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZVR5cGUgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuRWRpdEZvcm0oZGF0YS5kYXRhLmlkKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI6IHRoaXMucm9sZXNSZW5kZXJlcixcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICAgICAgc29ydGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAnaWRlbnRpdHlSb2xlcycsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdpZGVudGl0eVJvbGVzJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnSWRlbnRpdHkgQXR0cmlidXRlcycsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50UGFyYW1zOiBpZGVudGl0eVJvbGVzSGVhZGVyQ29tcG9uZW50UGFyYW1zLFxuICAgICAgICAgICAgICAgIG9uQ2VsbENsaWNrZWQ6IChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc1NlbGVjdGVkVGV4dCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlVHlwZSA9ICcnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5FZGl0Rm9ybShkYXRhLmRhdGEuaWQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogdGhpcy5yb2xlc1JlbmRlcmVyLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgZmlsdGVyOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdzZW1hbnRpYycsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdzZW1hbnRpYycsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ1NlbWFudGljJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnRQYXJhbXM6IHNlbWFudGljSGVhZGVyQ29tcG9uZW50UGFyYW1zLFxuICAgICAgICAgICAgICAgIG9uQ2VsbENsaWNrZWQ6IChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc1NlbGVjdGVkVGV4dCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlVHlwZSA9ICcnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5FZGl0Rm9ybShkYXRhLmRhdGEuaWQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogKHJvdykgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcm93LmRhdGE/LnNlbWFudGljID09PSAnQW55T2YnID8gJ0FueSBPZicgOiAnQWxsIE9mJztcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ2NyZWF0ZWRBdCcsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdjcmVhdGVkQXQnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdDcmVhdGVkIEF0JyxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnRQYXJhbXM6IGNyZWF0ZWRBdEhlYWRlckNvbXBvbmVudFBhcmFtcyxcbiAgICAgICAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogdGhpcy5jcmVhdGVkQXRGb3JtYXR0ZXIsXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRDb2x1bW46IHRoaXMuc29ydC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICBvbkNlbGxDbGlja2VkOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNTZWxlY3RlZFRleHQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZVR5cGUgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuRWRpdEZvcm0oZGF0YS5kYXRhLmlkKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGhpZGU6IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aGlzLklEX0NPTFVNTl9ERUZcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBnZXREYXRhKGZpbHRlcnM/OiBGaWx0ZXJPYmpbXSwgc29ydD86IGFueSwgcGFnZT86IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIC8vIHdlIGNhbiBjdXN0b21pemUgZmlsdGVycyBvciBzb3J0aW5nIGhlcmUgYmVmb3JlIG1vdmluZyBvbi4uLlxuICAgICAgICB0aGlzLnBhZ2luZy5wYWdlID0gcGFnZSB8fCB0aGlzLnBhZ2luZy5wYWdlO1xuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0VGFibGVEYXRhKCdlZGdlLXJvdXRlci1wb2xpY2llcycsIHRoaXMucGFnaW5nLCBmaWx0ZXJzLCBzb3J0KVxuICAgICAgICAgICAgLnRoZW4oKHJlc3VsdHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NEYXRhKHJlc3VsdHMpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcm9jZXNzRGF0YShyZXN1bHRzOiBhbnkpIHtcbiAgICAgICAgaWYgKCFpc0VtcHR5KHJlc3VsdHM/LmRhdGEpKSB7XG4gICAgICAgICAgICAvL3ByZS1wcm9jZXNzIGRhdGEgYmVmb3JlIHJlbmRlcmluZ1xuICAgICAgICAgICAgcmVzdWx0cy5kYXRhID0gdGhpcy5hZGRBY3Rpb25zUGVyUm93KHJlc3VsdHMpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNFbXB0eShyZXN1bHRzPy5tZXRhPy5wYWdpbmF0aW9uKSkge1xuICAgICAgICAgICAgdGhpcy50b3RhbENvdW50ID0gcmVzdWx0cy5tZXRhPy5wYWdpbmF0aW9uLnRvdGFsQ291bnQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRBY3Rpb25zUGVyUm93KHJlc3VsdHM6IGFueSk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdHMuZGF0YS5tYXAoKHJvdykgPT4ge1xuICAgICAgICAgICAgcm93LmFjdGlvbkxpc3QgPSBbJ3VwZGF0ZScsICdkZWxldGUnXTtcbiAgICAgICAgICAgIHJldHVybiByb3c7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRFZGdlUm91dGVyUm9sZUF0dHJpYnV0ZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnppdGlTZXJ2aWNlLmdldCgnZWRnZS1yb3V0ZXItcm9sZS1hdHRyaWJ1dGVzJywge30sIFtdKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIHRoaXMucm91dGVyUm9sZUF0dHJpYnV0ZXMgPSByZXN1bHQuZGF0YTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJZGVudGl0eU5hbWVkQXR0cmlidXRlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueml0aVNlcnZpY2UuZ2V0KCdpZGVudGl0aWVzJywge30sIFtdKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWVkQXR0cmlidXRlcyA9IHJlc3VsdC5kYXRhLm1hcCgoaWRlbnRpdHkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlkZW50aXR5TmFtZWRBdHRyaWJ1dGVzTWFwW2lkZW50aXR5Lm5hbWVdID0gaWRlbnRpdHkuaWQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlkZW50aXR5Lm5hbWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuaWRlbnRpdHlOYW1lZEF0dHJpYnV0ZXMgPSBuYW1lZEF0dHJpYnV0ZXM7XG4gICAgICAgICAgICByZXR1cm4gbmFtZWRBdHRyaWJ1dGVzO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2VydmljZU5hbWVkQXR0cmlidXRlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueml0aVNlcnZpY2UuZ2V0KCdlZGdlLXJvdXRlcnMnLCB7fSwgW10pLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmFtZWRBdHRyaWJ1dGVzID0gcmVzdWx0LmRhdGEubWFwKChyb3V0ZXIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlck5hbWVkQXR0cmlidXRlc01hcFtyb3V0ZXIubmFtZV0gPSByb3V0ZXIuaWQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJvdXRlci5uYW1lO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnJvdXRlck5hbWVkQXR0cmlidXRlcyA9IG5hbWVkQXR0cmlidXRlcztcbiAgICAgICAgICAgIHJldHVybiBuYW1lZEF0dHJpYnV0ZXM7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJZGVudGl0eVJvbGVBdHRyaWJ1dGVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy56aXRpU2VydmljZS5nZXQoJ2lkZW50aXR5LXJvbGUtYXR0cmlidXRlcycsIHt9LCBbXSkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlkZW50aXR5Um9sZUF0dHJpYnV0ZXMgPSByZXN1bHQuZGF0YTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQb3N0dXJlTmFtZWRBdHRyaWJ1dGVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy56aXRpU2VydmljZS5nZXQoJ3Bvc3R1cmUtY2hlY2tzJywge30sIFtdKS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWVkQXR0cmlidXRlcyA9IHJlc3VsdC5kYXRhLm1hcCgocG9zdHVyZUNoZWNrKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3N0dXJlTmFtZWRBdHRyaWJ1dGVzTWFwW3Bvc3R1cmVDaGVjay5uYW1lXSA9IHBvc3R1cmVDaGVjay5pZDtcbiAgICAgICAgICAgICAgICByZXR1cm4gcG9zdHVyZUNoZWNrLm5hbWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMucG9zdHVyZU5hbWVkQXR0cmlidXRlcyA9IG5hbWVkQXR0cmlidXRlcztcbiAgICAgICAgICAgIHJldHVybiBuYW1lZEF0dHJpYnV0ZXM7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuVXBkYXRlKGl0ZW0/OiBhbnkpIHtcbiAgICAgICAgdGhpcy5tb2RhbFR5cGUgPSAnZWRnZS1yb3V0ZXItcG9saWNpZXMnO1xuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXJQb2xpY3kgPSBpdGVtO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXJQb2xpY3kuYmFkZ2VzID0gW107XG4gICAgICAgICAgICB1bnNldCh0aGlzLnNlbGVjdGVkRWRnZVJvdXRlclBvbGljeSwgJ19saW5rcycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXJQb2xpY3kgPSBuZXcgRWRnZVJvdXRlclBvbGljeSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2lkZU1vZGFsT3BlbiA9IHRydWU7XG4gICAgfVxufVxuIl19
|
|
@@ -231,7 +231,8 @@ class EdgeRoutersPageService extends ListPageServiceClass {
|
|
|
231
231
|
cellRenderer: 'cellTokenComponent',
|
|
232
232
|
resizable: true,
|
|
233
233
|
cellClass: 'nf-cell-vert-align tCol',
|
|
234
|
-
}
|
|
234
|
+
},
|
|
235
|
+
this.ID_COLUMN_DEF
|
|
235
236
|
];
|
|
236
237
|
if (this.extService.processTableColumns) {
|
|
237
238
|
tableColumns = this.extService.processTableColumns(tableColumns);
|
|
@@ -352,4 +353,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
352
353
|
type: Inject,
|
|
353
354
|
args: [EDGE_ROUTER_EXTENSION_SERVICE]
|
|
354
355
|
}] }, { type: i5.Router }]; } });
|
|
355
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1yb3V0ZXJzLXBhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9wYWdlcy9lZGdlLXJvdXRlcnMvZWRnZS1yb3V0ZXJzLXBhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQVksT0FBTyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzFDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQ0gsMkJBQTJCLEVBQzlCLE1BQU0sOEZBQThGLENBQUM7QUFFdEcsT0FBTyxFQUFDLGdCQUFnQixFQUFrQixNQUFNLGlDQUFpQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxpQkFBaUIsRUFBa0IsTUFBTSxrQ0FBa0MsQ0FBQztBQUVwRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFHdEMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDM0YsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBSXBFLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHVFQUF1RSxDQUFDO0FBRXBILE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBRTFFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDJFQUEyRSxDQUFDOzs7Ozs7Ozs7QUFFakgsTUFHYSxzQkFBdUIsU0FBUSxvQkFBb0I7SUE4QzVELFlBQzhCLFFBQThCLEVBQ3hELGFBQXFDLEVBQ0Ys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T0FBTyxFQUFDLENBQUMsQ0FBQzthQUM5RjtZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFO2dCQUNyQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7YUFDOUU7WUFDRCxpRUFBaUU7WUFDakU7Ozs7Z0JBSUk7WUFDSixLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQzVDO2FBQU07WUFDSCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztTQUM5QztRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7K0dBdlZRLHNCQUFzQixrQkErQ25CLGdCQUFnQixtREFFaEIsaUJBQWlCLHNHQUlqQiw2QkFBNkI7bUhBckRoQyxzQkFBc0IsY0FGbkIsTUFBTTs7U0FFVCxzQkFBc0I7NEZBQXRCLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQWdEUSxNQUFNOzJCQUFDLGdCQUFnQjs7MEJBRXZCLE1BQU07MkJBQUMsaUJBQWlCOzswQkFJeEIsTUFBTTsyQkFBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIEluamVjdCwgQ29tcG9uZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtjbG9uZURlZXAsIGlzRW1wdHl9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge0RhdGFUYWJsZUZpbHRlclNlcnZpY2UsIEZpbHRlck9ian0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1maWx0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHtMaXN0UGFnZVNlcnZpY2VDbGFzc30gZnJvbSBcIi4uLy4uL3NoYXJlZC9saXN0LXBhZ2Utc2VydmljZS5jbGFzc1wiO1xuaW1wb3J0IHtcbiAgICBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnRcbn0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2RhdGEtdGFibGUvY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLWRlZmF1bHQvdGFibGUtY29sdW1uLWRlZmF1bHQuY29tcG9uZW50XCI7XG5pbXBvcnQge0NhbGxiYWNrUmVzdWx0c30gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2xpc3QtcGFnZS1mZWF0dXJlcy9saXN0LXBhZ2UtZm9ybS9saXN0LXBhZ2UtZm9ybS5jb21wb25lbnRcIjtcbmltcG9ydCB7U0VUVElOR1NfU0VSVklDRSwgU2V0dGluZ3NTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc2V0dGluZ3Muc2VydmljZVwiO1xuaW1wb3J0IHtaSVRJX0RBVEFfU0VSVklDRSwgWml0aURhdGFTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMveml0aS1kYXRhLnNlcnZpY2VcIjtcbmltcG9ydCB7Q3N2RG93bmxvYWRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvY3N2LWRvd25sb2FkLnNlcnZpY2VcIjtcbmltcG9ydCB7RWRnZVJvdXRlcn0gZnJvbSBcIi4uLy4uL21vZGVscy9lZGdlLXJvdXRlclwiO1xuaW1wb3J0IHt1bnNldCwgZm9yRWFjaH0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtJVG9vbHRpcEFuZ3VsYXJDb21wfSBmcm9tIFwiYWctZ3JpZC1hbmd1bGFyXCI7XG5pbXBvcnQge0lUb29sdGlwUGFyYW1zfSBmcm9tIFwiYWctZ3JpZC1jb21tdW5pdHlcIjtcbmltcG9ydCB7T1NUb29sdGlwQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS90b29sdGlwcy9vcy10b29sdGlwLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtHcm93bGVyTW9kZWx9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9tZXNzYWdpbmcvZ3Jvd2xlci5tb2RlbFwiO1xuaW1wb3J0IHtHcm93bGVyU2VydmljZX0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL21lc3NhZ2luZy9ncm93bGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQge1NldHRpbmdzU2VydmljZUNsYXNzfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc2V0dGluZ3Mtc2VydmljZS5jbGFzc1wiO1xuaW1wb3J0IHtFREdFX1JPVVRFUl9FWFRFTlNJT05fU0VSVklDRX0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL3Byb2plY3RhYmxlLWZvcm1zL2VkZ2Utcm91dGVyL2VkZ2Utcm91dGVyLWZvcm0uc2VydmljZVwiO1xuaW1wb3J0IHtFeHRlbnNpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZXh0ZW5kYWJsZS9leHRlbnNpb25zLW5vb3Auc2VydmljZVwiO1xuaW1wb3J0IHtDb25maXJtQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvY29uZmlybS9jb25maXJtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7VGFibGVDZWxsTmFtZUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2RhdGEtdGFibGUvY2VsbHMvdGFibGUtY2VsbC1uYW1lL3RhYmxlLWNlbGwtbmFtZS5jb21wb25lbnRcIjtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBFZGdlUm91dGVyc1BhZ2VTZXJ2aWNlIGV4dGVuZHMgTGlzdFBhZ2VTZXJ2aWNlQ2xhc3Mge1xuXG4gICAgcHJpdmF0ZSBwYWdpbmcgPSB0aGlzLkRFRkFVTFRfUEFHSU5HO1xuICAgIHB1YmxpYyBtb2RhbFR5cGUgPSAnZWRnZS1yb3V0ZXInO1xuXG4gICAgb3ZlcnJpZGUgQ1NWX0NPTFVNTlMgPSBbXG4gICAgICAgIHtsYWJlbDogJ05hbWUnLCBwYXRoOiAnbmFtZSd9LFxuICAgICAgICB7bGFiZWw6ICdBdHRyaWJ1dGVzJywgcGF0aDogJ3JvbGVBdHRyaWJ1dGVzJ30sXG4gICAgICAgIHtsYWJlbDogJ1ZlcmlmaWVkJywgcGF0aDogJ2lzVmVyaWZpZWQnfSxcbiAgICAgICAge2xhYmVsOiAnT25saW5lJywgcGF0aDogJ2lzT25saW5lJ30sXG4gICAgICAgIHtsYWJlbDogJ0NyZWF0ZWQnLCBwYXRoOiAnY3JlYXRlZEF0J30sXG4gICAgICAgIHtsYWJlbDogJ1Rva2VuJywgcGF0aDogJ2Vucm9sbG1lbnRUb2tlbid9LFxuICAgICAgICB7bGFiZWw6ICdObyBUcmF2ZXJzYWwnLCBwYXRoOiAnbm9UcmF2ZXJzYWwnfSxcbiAgICAgICAge2xhYmVsOiAnSG9zdCBOYW1lJywgcGF0aDogJ2hvc3RuYW1lJ30sXG4gICAgICAgIHtsYWJlbDogJ0Rpc2FibGVkJywgcGF0aDogJ2Rpc2FibGVkJ30sXG4gICAgICAgIHtsYWJlbDogJ1R1bm5lbGVyIEVuYWJsZWQnLCBwYXRoOiAnaXNUdW5uZWxlckVuYWJsZWQnfSxcbiAgICAgICAge2xhYmVsOiAnT1MnLCBwYXRoOiAndmVyc2lvbkluZm8ub3MnfSxcbiAgICAgICAge2xhYmVsOiAnQXJjaGl0ZWN0dXJlJywgcGF0aDogJ3ZlcnNpb25JbmZvLmFyY2gnfSxcbiAgICAgICAge2xhYmVsOiAnVmVyc2lvbicsIHBhdGg6ICd2ZXJzaW9uSW5mby52ZXJzaW9uJ30sXG4gICAgICAgIHtsYWJlbDogJ1JldmlzaW9uJywgcGF0aDogJ3ZlcnNpb25JbmZvLnJldmlzaW9uJ30sXG4gICAgICAgIHtsYWJlbDogJ0ZpbmdlcnByaW50JywgcGF0aDogJ2ZpbmdlcnByaW50J30sXG4gICAgICAgIHtsYWJlbDogJ0lEJywgcGF0aDogJ2lkJ30sXG4gICAgXTtcblxuICAgIHNlbGVjdGVkRWRnZVJvdXRlcjogYW55ID0gbmV3IEVkZ2VSb3V0ZXIoKTtcbiAgICBjb2x1bW5GaWx0ZXJzOiBhbnkgPSB7XG4gICAgICAgIG5hbWU6ICcnLFxuICAgICAgICBvczogJycsXG4gICAgICAgIGNyZWF0ZWRBdDogJycsXG4gICAgfTtcblxuICAgIG92ZXJyaWRlIG1lbnVJdGVtcyA9IFtcbiAgICAgICAge25hbWU6ICdFZGl0JywgYWN0aW9uOiAndXBkYXRlJ30sXG4gICAgICAgIHtuYW1lOiAnRG93bmxvYWQgSldUJywgYWN0aW9uOiAnZG93bmxvYWQtZW5yb2xsbWVudCd9LFxuICAgICAgICB7bmFtZTogJ1Jlc2V0IEVucm9sbG1lbnQnLCBhY3Rpb246ICdyZXNldC1lbnJvbGxtZW50J30sXG4gICAgICAgIHtuYW1lOiAnUmUtRW5yb2xsJywgYWN0aW9uOiAncmUtZW5yb2xsJ30sXG4gICAgICAgIHtuYW1lOiAnRGVsZXRlJywgYWN0aW9uOiAnZGVsZXRlJ30sXG4gICAgXVxuXG4gICAgb3ZlcnJpZGUgdGFibGVIZWFkZXJBY3Rpb25zID0gW1xuICAgICAgICB7bmFtZTogJ0Rvd25sb2FkIEFsbCcsIGFjdGlvbjogJ2Rvd25sb2FkLWFsbCd9LFxuICAgICAgICB7bmFtZTogJ0Rvd25sb2FkIFNlbGVjdGVkJywgYWN0aW9uOiAnZG93bmxvYWQtc2VsZWN0ZWQnfSxcbiAgICBdXG5cbiAgICByZXNvdXJjZVR5cGUgPSAnZWRnZS1yb3V0ZXJzJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFNFVFRJTkdTX1NFUlZJQ0UpIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2VDbGFzcyxcbiAgICAgICAgZmlsdGVyU2VydmljZTogRGF0YVRhYmxlRmlsdGVyU2VydmljZSxcbiAgICAgICAgQEluamVjdChaSVRJX0RBVEFfU0VSVklDRSkgcHJpdmF0ZSB6aXRpU2VydmljZTogWml0aURhdGFTZXJ2aWNlLFxuICAgICAgICBvdmVycmlkZSBjc3ZEb3dubG9hZFNlcnZpY2U6IENzdkRvd25sb2FkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBncm93bGVyU2VydmljZTogR3Jvd2xlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGlhbG9nRm9ybTogTWF0RGlhbG9nLFxuICAgICAgICBASW5qZWN0KEVER0VfUk9VVEVSX0VYVEVOU0lPTl9TRVJWSUNFKSBwcml2YXRlIGV4dFNlcnZpY2U6IEV4dGVuc2lvblNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSByb3V0ZXI6IFJvdXRlclxuICAgICkge1xuICAgICAgICBzdXBlcihzZXR0aW5ncywgZmlsdGVyU2VydmljZSwgY3N2RG93bmxvYWRTZXJ2aWNlLCBleHRTZXJ2aWNlLCByb3V0ZXIpO1xuICAgIH1cblxuICAgIHZhbGlkYXRlID0gKGZvcm1EYXRhKTogUHJvbWlzZTxDYWxsYmFja1Jlc3VsdHM+ID0+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IHBhc3NlZDogdHJ1ZX0pO1xuICAgIH1cblxuICAgIGluaXRUYWJsZUNvbHVtbnMoKTogYW55IHtcbiAgICAgICAgdGhpcy5pbml0TWVudUFjdGlvbnMoKTtcblxuICAgICAgICBjb25zdCBuYW1lUmVuZGVyZXIgPSAocm93KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJjb2wgY2VsbC1uYW1lLXJlbmRlcmVyXCIgZGF0YS1pZD1cIiR7cm93Py5kYXRhPy5pZH1cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNpcmNsZSAke3Jvdz8uZGF0YT8uaXNWZXJpZmllZH1cIiB0aXRsZT1cIlZlcmlmaWVkIFN0YXR1c1wiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNpcmNsZSAke3Jvdz8uZGF0YT8uaXNPbmxpbmV9XCIgdGl0bGU9XCJPbmxpbmUgU3RhdHVzXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzdHJvbmc+JHtyb3c/LmRhdGE/Lm5hbWV9PC9zdHJvbmc+XG4gICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByb2xlc1JlbmRlcmVyID0gKHJvdykgPT4ge1xuICAgICAgICAgICAgbGV0IHJvbGVzID0gJyc7XG4gICAgICAgICAgICByb3c/LmRhdGE/LnJvbGVBdHRyaWJ1dGVzPy5mb3JFYWNoKChhdHRyKSA9PiB7XG4gICAgICAgICAgICAgICAgcm9sZXMgKz0gJzxkaXYgY2xhc3M9XCJoYXNodGFnXCI+JythdHRyKyc8L2Rpdj4nO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gcm9sZXM7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvc1JlbmRlcmVyID0gKHJvdykgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb3NNYXA6IGFueSA9IHtcbiAgICAgICAgICAgICAgICAnZGFyd2luJzogJ2FwcGxlJyxcbiAgICAgICAgICAgICAgICAnbGludXgnOiAnbGludXgnLFxuICAgICAgICAgICAgICAgICdhbmRyb2lkJzogJ2FuZHJvaWQnLFxuICAgICAgICAgICAgICAgICd3aW5kb3dzJzogJ3dpbmRvd3MnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgb3MgPSBcIm90aGVyXCI7XG4gICAgICAgICAgICBmb3JFYWNoKG9zTWFwLCAodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyb3c/LmRhdGE/LnZlcnNpb25JbmZvPy5vc1ZlcnNpb24/LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihrZXkpPj0wIHx8XG4gICAgICAgICAgICAgICAgICAgIHJvdz8uZGF0YT8udmVyc2lvbkluZm8/Lm9zLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihrZXkpPj0wKSB7XG4gICAgICAgICAgICAgICAgICAgIG9zID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJjb2wgZGVza3RvcFwiIGRhdGEtaWQ9XCIke3Jvdz8uZGF0YT8uaWR9XCIgc3R5bGU9XCJvdmVyZmxvdzogdW5zZXQ7XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcyAke29zfVwiIGRhdGEtYmFsbG9vbi1wb3M9XCJ1cFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+YFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZW5yb2xsbWVudFRva2VuRm9ybWF0dGVyID0gKHJvdykgPT4ge1xuICAgICAgICAgICAgY29uc3QgdG9rZW4gPSByb3c/LmRhdGE/LmVucm9sbG1lbnRUb2tlbjtcbiAgICAgICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgICAgICAgIGlmIChtb21lbnQocm93Py5kYXRhPy5lbnJvbGxtZW50RXhwaXJlc0F0KS5pc0JlZm9yZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnRW5yb2xsbWVudCBFeHBpcmVkJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgY29sdW1uRmlsdGVycyA9IHRoaXMuY29sdW1uRmlsdGVycztcblxuICAgICAgICBjb25zdCBvc1BhcmFtcyA9IHtcbiAgICAgICAgICAgIGZpbHRlclR5cGU6ICdDT01CTycsXG4gICAgICAgICAgICBmaWx0ZXJPcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0FsbCcsIHZhbHVlOiAnJywgaWNvbjogJ2VtcHR5JyB9LFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdBcHBsZScsIHZhbHVlOiAnZGFyd2luJywgaWNvbjogJ2FwcGxlJyB9LFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdXaW5kb3dzJywgdmFsdWU6ICdtaW5ndycsIGljb246ICd3aW5kb3dzJyAgfSxcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnTGludXgnLCB2YWx1ZTogJ2xpbnV4JywgaWNvbjogJ2xpbnV4JyAgfSxcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnQW5kcm9pZCcsIHZhbHVlOiAnYW5kcm9pZCcsIGljb246ICdhbmRyb2lkJyAgfSxcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnT3RoZXIgKHRleHQgc2VhcmNoKScsIHZhbHVlOiAnJywgaWNvbjogJ290aGVyJywgdXNlVGV4dElucHV0OiB0cnVlICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGNvbHVtbkZpbHRlcnMsXG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IHRhYmxlQ29sdW1ucyA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ25hbWUnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnbmFtZScsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ05hbWUnLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudFBhcmFtczogdGhpcy5oZWFkZXJDb21wb25lbnRQYXJhbXMsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiBUYWJsZUNlbGxOYW1lQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlclBhcmFtczogeyBwYXRoUm9vdDogdGhpcy5iYXNlUGF0aCwgc2hvd1JvdXRlckljb25zOiB0cnVlIH0sXG4gICAgICAgICAgICAgICAgb25DZWxsQ2xpY2tlZDogKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzU2VsZWN0ZWRUZXh0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5FZGl0Rm9ybShkYXRhPy5kYXRhPy5pZCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLnNvcnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBzb3J0RGlyOiAnYXNjJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ29zJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ3ZlcnNpb25JbmZvLm9zJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnTy9TJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwLFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogb3NSZW5kZXJlcixcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICB0b29sdGlwQ29tcG9uZW50OiBPU1Rvb2x0aXBDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgdG9vbHRpcEZpZWxkOiAndmVyc2lvbkluZm8ub3MnLFxuICAgICAgICAgICAgICAgIHRvb2x0aXBDb21wb25lbnRQYXJhbXM6IHsgY29sb3I6ICcjZWNlY2VjJyB9LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAncm9sZUF0dHJpYnV0ZXMnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAncm9sZUF0dHJpYnV0ZXMnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdSb2xlcycsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgb25DZWxsQ2xpY2tlZDogKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzU2VsZWN0ZWRUZXh0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5FZGl0Rm9ybShkYXRhPy5kYXRhPy5pZCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiB0aGlzLnJvbGVzUmVuZGVyZXIsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ3ZlcmlmaWVkJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2lzVmVyaWZpZWQnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdWZXJpZmllZCcsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ29ubGluZScsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdpc09ubGluZScsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ09ubGluZScsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ2NyZWF0ZWRBdCcsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdjcmVhdGVkQXQnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdDcmVhdGVkIEF0JyxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogdGhpcy5jcmVhdGVkQXRGb3JtYXR0ZXIsXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRDb2x1bW46IHRoaXMuc29ydC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdlbnJvbGxtZW50VG9rZW4nLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnZW5yb2xsbWVudFRva2VuJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnVG9rZW4nLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHZhbHVlRm9ybWF0dGVyOiBlbnJvbGxtZW50VG9rZW5Gb3JtYXR0ZXIsXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdqd3QnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnZW5yb2xsbWVudEp3dCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ0pXVCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiAnY2VsbFRva2VuQ29tcG9uZW50JyxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuXG4gICAgICAgIGlmICh0aGlzLmV4dFNlcnZpY2UucHJvY2Vzc1RhYmxlQ29sdW1ucykge1xuICAgICAgICAgICAgdGFibGVDb2x1bW5zID0gdGhpcy5leHRTZXJ2aWNlLnByb2Nlc3NUYWJsZUNvbHVtbnModGFibGVDb2x1bW5zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0YWJsZUNvbHVtbnM7XG4gICAgfVxuXG4gICAgZ2V0RGF0YShmaWx0ZXJzPzogRmlsdGVyT2JqW10sIHNvcnQ/OiBhbnksIHBhZ2U/OiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICAvLyB3ZSBjYW4gY3VzdG9taXplIGZpbHRlcnMgb3Igc29ydGluZyBoZXJlIGJlZm9yZSBtb3Zpbmcgb24uLi5cbiAgICAgICAgdGhpcy5wYWdpbmcucGFnZSA9IHBhZ2UgfHwgdGhpcy5wYWdpbmcucGFnZTtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldFRhYmxlRGF0YSgnZWRnZS1yb3V0ZXJzJywgdGhpcy5wYWdpbmcsIGZpbHRlcnMsIHNvcnQpXG4gICAgICAgICAgICAudGhlbigocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0RhdGEocmVzdWx0cyk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NEYXRhKHJlc3VsdHM6IGFueSkge1xuICAgICAgICBpZiAoIWlzRW1wdHkocmVzdWx0cz8uZGF0YSkpIHtcbiAgICAgICAgICAgIC8vcHJlLXByb2Nlc3MgZGF0YSBiZWZvcmUgcmVuZGVyaW5nXG4gICAgICAgICAgICByZXN1bHRzLmRhdGEgPSB0aGlzLmFkZEFjdGlvbnNQZXJSb3cocmVzdWx0cyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRBY3Rpb25zUGVyUm93KHJlc3VsdHM6IGFueSk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdHMuZGF0YS5tYXAoKHJvdykgPT4ge1xuICAgICAgICAgICAgcm93LmFjdGlvbkxpc3QgPSBbJ3VwZGF0ZScsICdyZS1lbnJvbGwnLCAnZGVsZXRlJ107XG4gICAgICAgICAgICBpZiAodGhpcy5oYXNFbnJvbG1lbnRUb2tlbihyb3cpKSB7XG4gICAgICAgICAgICAgICAgcm93LmFjdGlvbkxpc3QucHVzaCgnZG93bmxvYWQtZW5yb2xsbWVudCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5hZGRMaXN0SXRlbUV4dGVuc2lvbkFjdGlvbnMocm93KTtcbiAgICAgICAgICAgIHJldHVybiByb3c7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGhhc0Vucm9sbWVudFRva2VuKGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuICFpc0VtcHR5KGl0ZW0/LmVucm9sbG1lbnRKd3QpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRFZGdlUm91dGVyUm9sZUF0dHJpYnV0ZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnppdGlTZXJ2aWNlLmdldCgnZWRnZS1yb3V0ZXItcm9sZS1hdHRyaWJ1dGVzJywge30sIFtdKTtcbiAgICB9XG5cblxuICAgIGdldEpXVChpZGVudGl0eTogYW55KSB7XG4gICAgICAgIHJldHVybiBpZGVudGl0eS5lbnJvbGxtZW50Snd0O1xuICAgIH1cblxuICAgIGRvd25sb2FkSldUKGp3dCwgbmFtZSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaHJlZicsICdkYXRhOmFwcGxpY2F0aW9uL3ppdGktand0O2NoYXJzZXQ9dXRmLTgsJyArIGVuY29kZVVSSUNvbXBvbmVudChqd3QpKTtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgbmFtZStcIi5qd3RcIik7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTtcbiAgICAgICAgZWxlbWVudC5jbGljaygpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xuICAgIH1cblxuICAgIHJlZW5yb2xsKHJvdXRlcjogYW55KSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBhcHBlbmRJZDogJ1JlZW5yb2xsUm91dGVyJyxcbiAgICAgICAgICAgIHRpdGxlOiAnUmUtRW5yb2xsIFJvdXRlcicsXG4gICAgICAgICAgICBtZXNzYWdlOiBgPHA+SWYgdGhlIHJvdXRlciBpcyBjdXJyZW50bHkgY29ubmVjdGVkLCBpdCB3aWxsIGJlIGRpc2Nvbm5lY3RlZCB1bnRpbCB0aGUgZW5yb2xsbWVudCBwcm9jZXNzIGlzIGNvbXBsZXRlZCB3aXRoIHRoZSBuZXdseSBnZW5lcmF0ZWQgSldULiA8cD4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJlLWVucm9sbCB0aGUgc2VsZWN0ZWQgcm91dGVyP2AsXG4gICAgICAgICAgICBjb25maXJtTGFiZWw6ICdZZXMnLFxuICAgICAgICAgICAgY2FuY2VsTGFiZWw6ICdPb3BzLCBubyBnZXQgbWUgb3V0IG9mIGhlcmUnLFxuICAgICAgICAgICAgc2hvd0NhbmNlbExpbms6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ0Zvcm0ub3BlbihDb25maXJtQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzLmRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnRvUHJvbWlzZSgpLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgaWYgKHJlc3VsdD8uY29uZmlybWVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMueml0aVNlcnZpY2UucG9zdChgZWRnZS1yb3V0ZXJzLyR7cm91dGVyLmlkfS9yZS1lbnJvbGxgLCB7fSwgdHJ1ZSkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3dsZXJEYXRhID0gbmV3IEdyb3dsZXJNb2RlbChcbiAgICAgICAgICAgICAgICAgICAgICAgICdzdWNjZXNzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdTdWNjZXNzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGBSZS1lbnJvbGwgQ29uZmlybWVkYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGBSb3V0ZXIgcmUtZW5yb2xsIHdhcyBzZW50LiBBIG5ldyBlbnJvbGxtZW50IHRva2VuIGlzIG5vdyBhdmFpbGFibGVgLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyb3dsZXJTZXJ2aWNlLnNob3coZ3Jvd2xlckRhdGEpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuVXBkYXRlKGl0ZW0/OiBhbnkpIHtcbiAgICAgICAgdGhpcy5tb2RhbFR5cGUgPSAnZWRnZS1yb3V0ZXInO1xuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXIgPSBpdGVtO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXIuYmFkZ2VzID0gW107XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXIuaXNPbmxpbmUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRWRnZVJvdXRlci5iYWRnZXMucHVzaCh7bGFiZWw6ICdPbmxpbmUnLCBjbGFzczogJ29ubGluZScsIGNpcmNsZTogJ3RydWUnfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFZGdlUm91dGVyLmJhZGdlcy5wdXNoKHtsYWJlbDogJ09mZmxpbmUnLCBjbGFzczogJ29mZmxpbmUnLCBjaXJjbGU6ICdmYWxzZSd9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXIuaXNWZXJpZmllZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFZGdlUm91dGVyLmJhZGdlcy5wdXNoKHtsYWJlbDogJ1VudmVyaWZpZWQnLCBjbGFzczogJ3VucmVnJ30pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gVE9ETzogaW1wbGVtZW50IHdoZW4gbWV0cmljcyBhbmQgZGlhbG9nIGZlYXR1cmVzIGFyZSBhdmFpbGFibGVcbiAgICAgICAgICAgIC8qdGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXJaLm1vcmVBY3Rpb25zID0gW1xuICAgICAgICAgICAgICAgIHtuYW1lOiAnb3Blbi1tZXRyaWNzJywgbGFiZWw6ICdPcGVuIE1ldHJpY3MnfSxcbiAgICAgICAgICAgICAgICB7bmFtZTogJ2RpYWwtbG9ncycsIGxhYmVsOiAnRGlhbCBMb2dzJ30sXG4gICAgICAgICAgICAgICAge25hbWU6ICdkaWFsLWxvZ3MnLCBsYWJlbDogJ1ZpZXcgRXZlbnRzJ30sXG4gICAgICAgICAgICBdOyovXG4gICAgICAgICAgICB1bnNldCh0aGlzLnNlbGVjdGVkRWRnZVJvdXRlciwgJ19saW5rcycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXIgPSBuZXcgRWRnZVJvdXRlcigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2lkZU1vZGFsT3BlbiA9IHRydWU7XG4gICAgfVxufVxuIl19
|
|
356
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1yb3V0ZXJzLXBhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9wYWdlcy9lZGdlLXJvdXRlcnMvZWRnZS1yb3V0ZXJzLXBhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQVksT0FBTyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzFDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQ0gsMkJBQTJCLEVBQzlCLE1BQU0sOEZBQThGLENBQUM7QUFFdEcsT0FBTyxFQUFDLGdCQUFnQixFQUFrQixNQUFNLGlDQUFpQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxpQkFBaUIsRUFBa0IsTUFBTSxrQ0FBa0MsQ0FBQztBQUVwRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFHdEMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDM0YsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBSXBFLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHVFQUF1RSxDQUFDO0FBRXBILE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBRTFFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDJFQUEyRSxDQUFDOzs7Ozs7Ozs7QUFFakgsTUFHYSxzQkFBdUIsU0FBUSxvQkFBb0I7SUE4QzVELFlBQzhCLFFBQThCLEVBQ3hELGFBQXFDLEVBQ0Ys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LFNBQVMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQzthQUM5RjtZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFO2dCQUNyQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7YUFDOUU7WUFDRCxpRUFBaUU7WUFDakU7Ozs7Z0JBSUk7WUFDSixLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQzVDO2FBQU07WUFDSCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztTQUM5QztRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7K0dBeFZRLHNCQUFzQixrQkErQ25CLGdCQUFnQixtREFFaEIsaUJBQWlCLHNHQUlqQiw2QkFBNkI7bUhBckRoQyxzQkFBc0IsY0FGbkIsTUFBTTs7U0FFVCxzQkFBc0I7NEZBQXRCLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQWdEUSxNQUFNOzJCQUFDLGdCQUFnQjs7MEJBRXZCLE1BQU07MkJBQUMsaUJBQWlCOzswQkFJeEIsTUFBTTsyQkFBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIEluamVjdCwgQ29tcG9uZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtjbG9uZURlZXAsIGlzRW1wdHl9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge0RhdGFUYWJsZUZpbHRlclNlcnZpY2UsIEZpbHRlck9ian0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1maWx0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHtMaXN0UGFnZVNlcnZpY2VDbGFzc30gZnJvbSBcIi4uLy4uL3NoYXJlZC9saXN0LXBhZ2Utc2VydmljZS5jbGFzc1wiO1xuaW1wb3J0IHtcbiAgICBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnRcbn0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2RhdGEtdGFibGUvY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLWRlZmF1bHQvdGFibGUtY29sdW1uLWRlZmF1bHQuY29tcG9uZW50XCI7XG5pbXBvcnQge0NhbGxiYWNrUmVzdWx0c30gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2xpc3QtcGFnZS1mZWF0dXJlcy9saXN0LXBhZ2UtZm9ybS9saXN0LXBhZ2UtZm9ybS5jb21wb25lbnRcIjtcbmltcG9ydCB7U0VUVElOR1NfU0VSVklDRSwgU2V0dGluZ3NTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc2V0dGluZ3Muc2VydmljZVwiO1xuaW1wb3J0IHtaSVRJX0RBVEFfU0VSVklDRSwgWml0aURhdGFTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMveml0aS1kYXRhLnNlcnZpY2VcIjtcbmltcG9ydCB7Q3N2RG93bmxvYWRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvY3N2LWRvd25sb2FkLnNlcnZpY2VcIjtcbmltcG9ydCB7RWRnZVJvdXRlcn0gZnJvbSBcIi4uLy4uL21vZGVscy9lZGdlLXJvdXRlclwiO1xuaW1wb3J0IHt1bnNldCwgZm9yRWFjaH0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtJVG9vbHRpcEFuZ3VsYXJDb21wfSBmcm9tIFwiYWctZ3JpZC1hbmd1bGFyXCI7XG5pbXBvcnQge0lUb29sdGlwUGFyYW1zfSBmcm9tIFwiYWctZ3JpZC1jb21tdW5pdHlcIjtcbmltcG9ydCB7T1NUb29sdGlwQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS90b29sdGlwcy9vcy10b29sdGlwLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtHcm93bGVyTW9kZWx9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9tZXNzYWdpbmcvZ3Jvd2xlci5tb2RlbFwiO1xuaW1wb3J0IHtHcm93bGVyU2VydmljZX0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL21lc3NhZ2luZy9ncm93bGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQge1NldHRpbmdzU2VydmljZUNsYXNzfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc2V0dGluZ3Mtc2VydmljZS5jbGFzc1wiO1xuaW1wb3J0IHtFREdFX1JPVVRFUl9FWFRFTlNJT05fU0VSVklDRX0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL3Byb2plY3RhYmxlLWZvcm1zL2VkZ2Utcm91dGVyL2VkZ2Utcm91dGVyLWZvcm0uc2VydmljZVwiO1xuaW1wb3J0IHtFeHRlbnNpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZXh0ZW5kYWJsZS9leHRlbnNpb25zLW5vb3Auc2VydmljZVwiO1xuaW1wb3J0IHtDb25maXJtQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvY29uZmlybS9jb25maXJtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7VGFibGVDZWxsTmFtZUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2RhdGEtdGFibGUvY2VsbHMvdGFibGUtY2VsbC1uYW1lL3RhYmxlLWNlbGwtbmFtZS5jb21wb25lbnRcIjtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBFZGdlUm91dGVyc1BhZ2VTZXJ2aWNlIGV4dGVuZHMgTGlzdFBhZ2VTZXJ2aWNlQ2xhc3Mge1xuXG4gICAgcHJpdmF0ZSBwYWdpbmcgPSB0aGlzLkRFRkFVTFRfUEFHSU5HO1xuICAgIHB1YmxpYyBtb2RhbFR5cGUgPSAnZWRnZS1yb3V0ZXInO1xuXG4gICAgb3ZlcnJpZGUgQ1NWX0NPTFVNTlMgPSBbXG4gICAgICAgIHtsYWJlbDogJ05hbWUnLCBwYXRoOiAnbmFtZSd9LFxuICAgICAgICB7bGFiZWw6ICdBdHRyaWJ1dGVzJywgcGF0aDogJ3JvbGVBdHRyaWJ1dGVzJ30sXG4gICAgICAgIHtsYWJlbDogJ1ZlcmlmaWVkJywgcGF0aDogJ2lzVmVyaWZpZWQnfSxcbiAgICAgICAge2xhYmVsOiAnT25saW5lJywgcGF0aDogJ2lzT25saW5lJ30sXG4gICAgICAgIHtsYWJlbDogJ0NyZWF0ZWQnLCBwYXRoOiAnY3JlYXRlZEF0J30sXG4gICAgICAgIHtsYWJlbDogJ1Rva2VuJywgcGF0aDogJ2Vucm9sbG1lbnRUb2tlbid9LFxuICAgICAgICB7bGFiZWw6ICdObyBUcmF2ZXJzYWwnLCBwYXRoOiAnbm9UcmF2ZXJzYWwnfSxcbiAgICAgICAge2xhYmVsOiAnSG9zdCBOYW1lJywgcGF0aDogJ2hvc3RuYW1lJ30sXG4gICAgICAgIHtsYWJlbDogJ0Rpc2FibGVkJywgcGF0aDogJ2Rpc2FibGVkJ30sXG4gICAgICAgIHtsYWJlbDogJ1R1bm5lbGVyIEVuYWJsZWQnLCBwYXRoOiAnaXNUdW5uZWxlckVuYWJsZWQnfSxcbiAgICAgICAge2xhYmVsOiAnT1MnLCBwYXRoOiAndmVyc2lvbkluZm8ub3MnfSxcbiAgICAgICAge2xhYmVsOiAnQXJjaGl0ZWN0dXJlJywgcGF0aDogJ3ZlcnNpb25JbmZvLmFyY2gnfSxcbiAgICAgICAge2xhYmVsOiAnVmVyc2lvbicsIHBhdGg6ICd2ZXJzaW9uSW5mby52ZXJzaW9uJ30sXG4gICAgICAgIHtsYWJlbDogJ1JldmlzaW9uJywgcGF0aDogJ3ZlcnNpb25JbmZvLnJldmlzaW9uJ30sXG4gICAgICAgIHtsYWJlbDogJ0ZpbmdlcnByaW50JywgcGF0aDogJ2ZpbmdlcnByaW50J30sXG4gICAgICAgIHtsYWJlbDogJ0lEJywgcGF0aDogJ2lkJ30sXG4gICAgXTtcblxuICAgIHNlbGVjdGVkRWRnZVJvdXRlcjogYW55ID0gbmV3IEVkZ2VSb3V0ZXIoKTtcbiAgICBjb2x1bW5GaWx0ZXJzOiBhbnkgPSB7XG4gICAgICAgIG5hbWU6ICcnLFxuICAgICAgICBvczogJycsXG4gICAgICAgIGNyZWF0ZWRBdDogJycsXG4gICAgfTtcblxuICAgIG92ZXJyaWRlIG1lbnVJdGVtcyA9IFtcbiAgICAgICAge25hbWU6ICdFZGl0JywgYWN0aW9uOiAndXBkYXRlJ30sXG4gICAgICAgIHtuYW1lOiAnRG93bmxvYWQgSldUJywgYWN0aW9uOiAnZG93bmxvYWQtZW5yb2xsbWVudCd9LFxuICAgICAgICB7bmFtZTogJ1Jlc2V0IEVucm9sbG1lbnQnLCBhY3Rpb246ICdyZXNldC1lbnJvbGxtZW50J30sXG4gICAgICAgIHtuYW1lOiAnUmUtRW5yb2xsJywgYWN0aW9uOiAncmUtZW5yb2xsJ30sXG4gICAgICAgIHtuYW1lOiAnRGVsZXRlJywgYWN0aW9uOiAnZGVsZXRlJ30sXG4gICAgXVxuXG4gICAgb3ZlcnJpZGUgdGFibGVIZWFkZXJBY3Rpb25zID0gW1xuICAgICAgICB7bmFtZTogJ0Rvd25sb2FkIEFsbCcsIGFjdGlvbjogJ2Rvd25sb2FkLWFsbCd9LFxuICAgICAgICB7bmFtZTogJ0Rvd25sb2FkIFNlbGVjdGVkJywgYWN0aW9uOiAnZG93bmxvYWQtc2VsZWN0ZWQnfSxcbiAgICBdXG5cbiAgICByZXNvdXJjZVR5cGUgPSAnZWRnZS1yb3V0ZXJzJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFNFVFRJTkdTX1NFUlZJQ0UpIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2VDbGFzcyxcbiAgICAgICAgZmlsdGVyU2VydmljZTogRGF0YVRhYmxlRmlsdGVyU2VydmljZSxcbiAgICAgICAgQEluamVjdChaSVRJX0RBVEFfU0VSVklDRSkgcHJpdmF0ZSB6aXRpU2VydmljZTogWml0aURhdGFTZXJ2aWNlLFxuICAgICAgICBvdmVycmlkZSBjc3ZEb3dubG9hZFNlcnZpY2U6IENzdkRvd25sb2FkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBncm93bGVyU2VydmljZTogR3Jvd2xlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGlhbG9nRm9ybTogTWF0RGlhbG9nLFxuICAgICAgICBASW5qZWN0KEVER0VfUk9VVEVSX0VYVEVOU0lPTl9TRVJWSUNFKSBwcml2YXRlIGV4dFNlcnZpY2U6IEV4dGVuc2lvblNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBvdmVycmlkZSByb3V0ZXI6IFJvdXRlclxuICAgICkge1xuICAgICAgICBzdXBlcihzZXR0aW5ncywgZmlsdGVyU2VydmljZSwgY3N2RG93bmxvYWRTZXJ2aWNlLCBleHRTZXJ2aWNlLCByb3V0ZXIpO1xuICAgIH1cblxuICAgIHZhbGlkYXRlID0gKGZvcm1EYXRhKTogUHJvbWlzZTxDYWxsYmFja1Jlc3VsdHM+ID0+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IHBhc3NlZDogdHJ1ZX0pO1xuICAgIH1cblxuICAgIGluaXRUYWJsZUNvbHVtbnMoKTogYW55IHtcbiAgICAgICAgdGhpcy5pbml0TWVudUFjdGlvbnMoKTtcblxuICAgICAgICBjb25zdCBuYW1lUmVuZGVyZXIgPSAocm93KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJjb2wgY2VsbC1uYW1lLXJlbmRlcmVyXCIgZGF0YS1pZD1cIiR7cm93Py5kYXRhPy5pZH1cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNpcmNsZSAke3Jvdz8uZGF0YT8uaXNWZXJpZmllZH1cIiB0aXRsZT1cIlZlcmlmaWVkIFN0YXR1c1wiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNpcmNsZSAke3Jvdz8uZGF0YT8uaXNPbmxpbmV9XCIgdGl0bGU9XCJPbmxpbmUgU3RhdHVzXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzdHJvbmc+JHtyb3c/LmRhdGE/Lm5hbWV9PC9zdHJvbmc+XG4gICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByb2xlc1JlbmRlcmVyID0gKHJvdykgPT4ge1xuICAgICAgICAgICAgbGV0IHJvbGVzID0gJyc7XG4gICAgICAgICAgICByb3c/LmRhdGE/LnJvbGVBdHRyaWJ1dGVzPy5mb3JFYWNoKChhdHRyKSA9PiB7XG4gICAgICAgICAgICAgICAgcm9sZXMgKz0gJzxkaXYgY2xhc3M9XCJoYXNodGFnXCI+JythdHRyKyc8L2Rpdj4nO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gcm9sZXM7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvc1JlbmRlcmVyID0gKHJvdykgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb3NNYXA6IGFueSA9IHtcbiAgICAgICAgICAgICAgICAnZGFyd2luJzogJ2FwcGxlJyxcbiAgICAgICAgICAgICAgICAnbGludXgnOiAnbGludXgnLFxuICAgICAgICAgICAgICAgICdhbmRyb2lkJzogJ2FuZHJvaWQnLFxuICAgICAgICAgICAgICAgICd3aW5kb3dzJzogJ3dpbmRvd3MnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgb3MgPSBcIm90aGVyXCI7XG4gICAgICAgICAgICBmb3JFYWNoKG9zTWFwLCAodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyb3c/LmRhdGE/LnZlcnNpb25JbmZvPy5vc1ZlcnNpb24/LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihrZXkpPj0wIHx8XG4gICAgICAgICAgICAgICAgICAgIHJvdz8uZGF0YT8udmVyc2lvbkluZm8/Lm9zLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihrZXkpPj0wKSB7XG4gICAgICAgICAgICAgICAgICAgIG9zID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJjb2wgZGVza3RvcFwiIGRhdGEtaWQ9XCIke3Jvdz8uZGF0YT8uaWR9XCIgc3R5bGU9XCJvdmVyZmxvdzogdW5zZXQ7XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcyAke29zfVwiIGRhdGEtYmFsbG9vbi1wb3M9XCJ1cFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+YFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZW5yb2xsbWVudFRva2VuRm9ybWF0dGVyID0gKHJvdykgPT4ge1xuICAgICAgICAgICAgY29uc3QgdG9rZW4gPSByb3c/LmRhdGE/LmVucm9sbG1lbnRUb2tlbjtcbiAgICAgICAgICAgIGlmICh0b2tlbikge1xuICAgICAgICAgICAgICAgIGlmIChtb21lbnQocm93Py5kYXRhPy5lbnJvbGxtZW50RXhwaXJlc0F0KS5pc0JlZm9yZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnRW5yb2xsbWVudCBFeHBpcmVkJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgY29sdW1uRmlsdGVycyA9IHRoaXMuY29sdW1uRmlsdGVycztcblxuICAgICAgICBjb25zdCBvc1BhcmFtcyA9IHtcbiAgICAgICAgICAgIGZpbHRlclR5cGU6ICdDT01CTycsXG4gICAgICAgICAgICBmaWx0ZXJPcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0FsbCcsIHZhbHVlOiAnJywgaWNvbjogJ2VtcHR5JyB9LFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdBcHBsZScsIHZhbHVlOiAnZGFyd2luJywgaWNvbjogJ2FwcGxlJyB9LFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdXaW5kb3dzJywgdmFsdWU6ICdtaW5ndycsIGljb246ICd3aW5kb3dzJyAgfSxcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnTGludXgnLCB2YWx1ZTogJ2xpbnV4JywgaWNvbjogJ2xpbnV4JyAgfSxcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnQW5kcm9pZCcsIHZhbHVlOiAnYW5kcm9pZCcsIGljb246ICdhbmRyb2lkJyAgfSxcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnT3RoZXIgKHRleHQgc2VhcmNoKScsIHZhbHVlOiAnJywgaWNvbjogJ290aGVyJywgdXNlVGV4dElucHV0OiB0cnVlICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGNvbHVtbkZpbHRlcnMsXG4gICAgICAgIH07XG5cbiAgICAgICAgbGV0IHRhYmxlQ29sdW1ucyA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ25hbWUnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnbmFtZScsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ05hbWUnLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudFBhcmFtczogdGhpcy5oZWFkZXJDb21wb25lbnRQYXJhbXMsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiBUYWJsZUNlbGxOYW1lQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlclBhcmFtczogeyBwYXRoUm9vdDogdGhpcy5iYXNlUGF0aCwgc2hvd1JvdXRlckljb25zOiB0cnVlIH0sXG4gICAgICAgICAgICAgICAgb25DZWxsQ2xpY2tlZDogKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzU2VsZWN0ZWRUZXh0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5FZGl0Rm9ybShkYXRhPy5kYXRhPy5pZCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLnNvcnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBzb3J0RGlyOiAnYXNjJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ29zJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ3ZlcnNpb25JbmZvLm9zJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnTy9TJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwLFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogb3NSZW5kZXJlcixcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICB0b29sdGlwQ29tcG9uZW50OiBPU1Rvb2x0aXBDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgdG9vbHRpcEZpZWxkOiAndmVyc2lvbkluZm8ub3MnLFxuICAgICAgICAgICAgICAgIHRvb2x0aXBDb21wb25lbnRQYXJhbXM6IHsgY29sb3I6ICcjZWNlY2VjJyB9LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAncm9sZUF0dHJpYnV0ZXMnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAncm9sZUF0dHJpYnV0ZXMnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdSb2xlcycsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgb25DZWxsQ2xpY2tlZDogKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzU2VsZWN0ZWRUZXh0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5FZGl0Rm9ybShkYXRhPy5kYXRhPy5pZCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiB0aGlzLnJvbGVzUmVuZGVyZXIsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ3ZlcmlmaWVkJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2lzVmVyaWZpZWQnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdWZXJpZmllZCcsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ29ubGluZScsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdpc09ubGluZScsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ09ubGluZScsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ2NyZWF0ZWRBdCcsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdjcmVhdGVkQXQnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdDcmVhdGVkIEF0JyxcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogdGhpcy5jcmVhdGVkQXRGb3JtYXR0ZXIsXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRDb2x1bW46IHRoaXMuc29ydC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdlbnJvbGxtZW50VG9rZW4nLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnZW5yb2xsbWVudFRva2VuJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnVG9rZW4nLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHZhbHVlRm9ybWF0dGVyOiBlbnJvbGxtZW50VG9rZW5Gb3JtYXR0ZXIsXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdqd3QnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnZW5yb2xsbWVudEp3dCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ0pXVCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiAnY2VsbFRva2VuQ29tcG9uZW50JyxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMuSURfQ09MVU1OX0RFRlxuICAgICAgICBdO1xuXG4gICAgICAgIGlmICh0aGlzLmV4dFNlcnZpY2UucHJvY2Vzc1RhYmxlQ29sdW1ucykge1xuICAgICAgICAgICAgdGFibGVDb2x1bW5zID0gdGhpcy5leHRTZXJ2aWNlLnByb2Nlc3NUYWJsZUNvbHVtbnModGFibGVDb2x1bW5zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0YWJsZUNvbHVtbnM7XG4gICAgfVxuXG4gICAgZ2V0RGF0YShmaWx0ZXJzPzogRmlsdGVyT2JqW10sIHNvcnQ/OiBhbnksIHBhZ2U/OiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICAvLyB3ZSBjYW4gY3VzdG9taXplIGZpbHRlcnMgb3Igc29ydGluZyBoZXJlIGJlZm9yZSBtb3Zpbmcgb24uLi5cbiAgICAgICAgdGhpcy5wYWdpbmcucGFnZSA9IHBhZ2UgfHwgdGhpcy5wYWdpbmcucGFnZTtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmdldFRhYmxlRGF0YSgnZWRnZS1yb3V0ZXJzJywgdGhpcy5wYWdpbmcsIGZpbHRlcnMsIHNvcnQpXG4gICAgICAgICAgICAudGhlbigocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0RhdGEocmVzdWx0cyk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NEYXRhKHJlc3VsdHM6IGFueSkge1xuICAgICAgICBpZiAoIWlzRW1wdHkocmVzdWx0cz8uZGF0YSkpIHtcbiAgICAgICAgICAgIC8vcHJlLXByb2Nlc3MgZGF0YSBiZWZvcmUgcmVuZGVyaW5nXG4gICAgICAgICAgICByZXN1bHRzLmRhdGEgPSB0aGlzLmFkZEFjdGlvbnNQZXJSb3cocmVzdWx0cyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRBY3Rpb25zUGVyUm93KHJlc3VsdHM6IGFueSk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdHMuZGF0YS5tYXAoKHJvdykgPT4ge1xuICAgICAgICAgICAgcm93LmFjdGlvbkxpc3QgPSBbJ3VwZGF0ZScsICdyZS1lbnJvbGwnLCAnZGVsZXRlJ107XG4gICAgICAgICAgICBpZiAodGhpcy5oYXNFbnJvbG1lbnRUb2tlbihyb3cpKSB7XG4gICAgICAgICAgICAgICAgcm93LmFjdGlvbkxpc3QucHVzaCgnZG93bmxvYWQtZW5yb2xsbWVudCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5hZGRMaXN0SXRlbUV4dGVuc2lvbkFjdGlvbnMocm93KTtcbiAgICAgICAgICAgIHJldHVybiByb3c7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGhhc0Vucm9sbWVudFRva2VuKGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuICFpc0VtcHR5KGl0ZW0/LmVucm9sbG1lbnRKd3QpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRFZGdlUm91dGVyUm9sZUF0dHJpYnV0ZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnppdGlTZXJ2aWNlLmdldCgnZWRnZS1yb3V0ZXItcm9sZS1hdHRyaWJ1dGVzJywge30sIFtdKTtcbiAgICB9XG5cblxuICAgIGdldEpXVChpZGVudGl0eTogYW55KSB7XG4gICAgICAgIHJldHVybiBpZGVudGl0eS5lbnJvbGxtZW50Snd0O1xuICAgIH1cblxuICAgIGRvd25sb2FkSldUKGp3dCwgbmFtZSkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaHJlZicsICdkYXRhOmFwcGxpY2F0aW9uL3ppdGktand0O2NoYXJzZXQ9dXRmLTgsJyArIGVuY29kZVVSSUNvbXBvbmVudChqd3QpKTtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgbmFtZStcIi5qd3RcIik7XG4gICAgICAgIGVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTtcbiAgICAgICAgZWxlbWVudC5jbGljaygpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xuICAgIH1cblxuICAgIHJlZW5yb2xsKHJvdXRlcjogYW55KSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBhcHBlbmRJZDogJ1JlZW5yb2xsUm91dGVyJyxcbiAgICAgICAgICAgIHRpdGxlOiAnUmUtRW5yb2xsIFJvdXRlcicsXG4gICAgICAgICAgICBtZXNzYWdlOiBgPHA+SWYgdGhlIHJvdXRlciBpcyBjdXJyZW50bHkgY29ubmVjdGVkLCBpdCB3aWxsIGJlIGRpc2Nvbm5lY3RlZCB1bnRpbCB0aGUgZW5yb2xsbWVudCBwcm9jZXNzIGlzIGNvbXBsZXRlZCB3aXRoIHRoZSBuZXdseSBnZW5lcmF0ZWQgSldULiA8cD4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJlLWVucm9sbCB0aGUgc2VsZWN0ZWQgcm91dGVyP2AsXG4gICAgICAgICAgICBjb25maXJtTGFiZWw6ICdZZXMnLFxuICAgICAgICAgICAgY2FuY2VsTGFiZWw6ICdPb3BzLCBubyBnZXQgbWUgb3V0IG9mIGhlcmUnLFxuICAgICAgICAgICAgc2hvd0NhbmNlbExpbms6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ0Zvcm0ub3BlbihDb25maXJtQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzLmRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnRvUHJvbWlzZSgpLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgaWYgKHJlc3VsdD8uY29uZmlybWVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMueml0aVNlcnZpY2UucG9zdChgZWRnZS1yb3V0ZXJzLyR7cm91dGVyLmlkfS9yZS1lbnJvbGxgLCB7fSwgdHJ1ZSkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3dsZXJEYXRhID0gbmV3IEdyb3dsZXJNb2RlbChcbiAgICAgICAgICAgICAgICAgICAgICAgICdzdWNjZXNzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdTdWNjZXNzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGBSZS1lbnJvbGwgQ29uZmlybWVkYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGBSb3V0ZXIgcmUtZW5yb2xsIHdhcyBzZW50LiBBIG5ldyBlbnJvbGxtZW50IHRva2VuIGlzIG5vdyBhdmFpbGFibGVgLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyb3dsZXJTZXJ2aWNlLnNob3coZ3Jvd2xlckRhdGEpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuVXBkYXRlKGl0ZW0/OiBhbnkpIHtcbiAgICAgICAgdGhpcy5tb2RhbFR5cGUgPSAnZWRnZS1yb3V0ZXInO1xuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXIgPSBpdGVtO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXIuYmFkZ2VzID0gW107XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXIuaXNPbmxpbmUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRWRnZVJvdXRlci5iYWRnZXMucHVzaCh7bGFiZWw6ICdPbmxpbmUnLCBjbGFzczogJ29ubGluZScsIGNpcmNsZTogJ3RydWUnfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFZGdlUm91dGVyLmJhZGdlcy5wdXNoKHtsYWJlbDogJ09mZmxpbmUnLCBjbGFzczogJ29mZmxpbmUnLCBjaXJjbGU6ICdmYWxzZSd9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXIuaXNWZXJpZmllZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFZGdlUm91dGVyLmJhZGdlcy5wdXNoKHtsYWJlbDogJ1VudmVyaWZpZWQnLCBjbGFzczogJ3VucmVnJ30pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gVE9ETzogaW1wbGVtZW50IHdoZW4gbWV0cmljcyBhbmQgZGlhbG9nIGZlYXR1cmVzIGFyZSBhdmFpbGFibGVcbiAgICAgICAgICAgIC8qdGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXJaLm1vcmVBY3Rpb25zID0gW1xuICAgICAgICAgICAgICAgIHtuYW1lOiAnb3Blbi1tZXRyaWNzJywgbGFiZWw6ICdPcGVuIE1ldHJpY3MnfSxcbiAgICAgICAgICAgICAgICB7bmFtZTogJ2RpYWwtbG9ncycsIGxhYmVsOiAnRGlhbCBMb2dzJ30sXG4gICAgICAgICAgICAgICAge25hbWU6ICdkaWFsLWxvZ3MnLCBsYWJlbDogJ1ZpZXcgRXZlbnRzJ30sXG4gICAgICAgICAgICBdOyovXG4gICAgICAgICAgICB1bnNldCh0aGlzLnNlbGVjdGVkRWRnZVJvdXRlciwgJ19saW5rcycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEVkZ2VSb3V0ZXIgPSBuZXcgRWRnZVJvdXRlcigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2lkZU1vZGFsT3BlbiA9IHRydWU7XG4gICAgfVxufVxuIl19
|
|
@@ -288,7 +288,8 @@ class IdentitiesPageService extends ListPageServiceClass {
|
|
|
288
288
|
resizable: true,
|
|
289
289
|
cellClass: 'nf-cell-vert-align tCol',
|
|
290
290
|
width: 100,
|
|
291
|
-
}
|
|
291
|
+
},
|
|
292
|
+
this.ID_COLUMN_DEF
|
|
292
293
|
];
|
|
293
294
|
}
|
|
294
295
|
getData(filters, sort, page) {
|
|
@@ -490,4 +491,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
490
491
|
type: Inject,
|
|
491
492
|
args: [IDENTITY_EXTENSION_SERVICE]
|
|
492
493
|
}] }, { type: i5.Router }]; } });
|
|
493
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdGllcy1wYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvcGFnZXMvaWRlbnRpdGllcy9pZGVudGl0aWVzLXBhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQVksT0FBTyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzFDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQ0gsMkJBQTJCLEVBQzlCLE1BQU0sOEZBQThGLENBQUM7QUFFdEcsT0FBTyxFQUFDLGdCQUFnQixFQUFrQixNQUFNLGlDQUFpQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxpQkFBaUIsRUFBa0IsTUFBTSxrQ0FBa0MsQ0FBQztBQUVwRixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFJL0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDM0YsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDN0YsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBRXBFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBSXBHLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBRTNHLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDJFQUEyRSxDQUFDOzs7Ozs7Ozs7QUFFakgsTUFHYSxxQkFBc0IsU0FBUSxvQkFBb0I7SUFnRDNELFlBQzhCLFFBQThCLEVBQ3hE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QVcsQ0FBQztRQUM3QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7K0dBdGRRLHFCQUFxQixrQkFpRGxCLGdCQUFnQixtREFFaEIsaUJBQWlCLHNHQUlqQiwwQkFBMEI7bUhBdkQ3QixxQkFBcUIsY0FGbEIsTUFBTTs7U0FFVCxxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQWtEUSxNQUFNOzJCQUFDLGdCQUFnQjs7MEJBRXZCLE1BQU07MkJBQUMsaUJBQWlCOzswQkFJeEIsTUFBTTsyQkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICAgIENvcHlyaWdodCBOZXRGb3VuZHJ5IEluYy5cblxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4qL1xuXG5pbXBvcnQge0luamVjdGFibGUsIEluamVjdCwgQ29tcG9uZW50LCBPbkluaXR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge2Nsb25lRGVlcCwgaXNFbXB0eX0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7RGF0YVRhYmxlRmlsdGVyU2VydmljZSwgRmlsdGVyT2JqfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQge0xpc3RQYWdlU2VydmljZUNsYXNzfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpc3QtcGFnZS1zZXJ2aWNlLmNsYXNzXCI7XG5pbXBvcnQge1xuICAgIFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudFxufSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9jb2x1bW4taGVhZGVycy90YWJsZS1jb2x1bW4tZGVmYXVsdC90YWJsZS1jb2x1bW4tZGVmYXVsdC5jb21wb25lbnRcIjtcbmltcG9ydCB7Q2FsbGJhY2tSZXN1bHRzfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvbGlzdC1wYWdlLWZlYXR1cmVzL2xpc3QtcGFnZS1mb3JtL2xpc3QtcGFnZS1mb3JtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtTRVRUSU5HU19TRVJWSUNFLCBTZXR0aW5nc1NlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9zZXR0aW5ncy5zZXJ2aWNlXCI7XG5pbXBvcnQge1pJVElfREFUQV9TRVJWSUNFLCBaaXRpRGF0YVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy96aXRpLWRhdGEuc2VydmljZVwiO1xuaW1wb3J0IHtDc3ZEb3dubG9hZFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9jc3YtZG93bmxvYWQuc2VydmljZVwiO1xuaW1wb3J0IHtJZGVudGl0eX0gZnJvbSBcIi4uLy4uL21vZGVscy9pZGVudGl0eVwiO1xuaW1wb3J0IHt1bnNldH0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtJVG9vbHRpcEFuZ3VsYXJDb21wfSBmcm9tIFwiYWctZ3JpZC1hbmd1bGFyXCI7XG5pbXBvcnQge0lUb29sdGlwUGFyYW1zfSBmcm9tIFwiYWctZ3JpZC1jb21tdW5pdHlcIjtcbmltcG9ydCB7T1NUb29sdGlwQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS90b29sdGlwcy9vcy10b29sdGlwLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtTREtUb29sdGlwQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS90b29sdGlwcy9zZGstdG9vbHRpcC5jb21wb25lbnRcIjtcbmltcG9ydCB7R3Jvd2xlck1vZGVsfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvbWVzc2FnaW5nL2dyb3dsZXIubW9kZWxcIjtcbmltcG9ydCB7R3Jvd2xlclNlcnZpY2V9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9tZXNzYWdpbmcvZ3Jvd2xlci5zZXJ2aWNlXCI7XG5pbXBvcnQge1Jlc2V0RW5yb2xsbWVudENvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL3Jlc2V0LWVucm9sbG1lbnQvcmVzZXQtZW5yb2xsbWVudC5jb21wb25lbnRcIjtcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQge1NldHRpbmdzU2VydmljZUNsYXNzfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc2V0dGluZ3Mtc2VydmljZS5jbGFzc1wiO1xuaW1wb3J0IHtFeHRlbnNpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZXh0ZW5kYWJsZS9leHRlbnNpb25zLW5vb3Auc2VydmljZVwiO1xuaW1wb3J0IHtJREVOVElUWV9FWFRFTlNJT05fU0VSVklDRX0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL3Byb2plY3RhYmxlLWZvcm1zL2lkZW50aXR5L2lkZW50aXR5LWZvcm0uc2VydmljZVwiO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7VGFibGVDZWxsTmFtZUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2RhdGEtdGFibGUvY2VsbHMvdGFibGUtY2VsbC1uYW1lL3RhYmxlLWNlbGwtbmFtZS5jb21wb25lbnRcIjtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBJZGVudGl0aWVzUGFnZVNlcnZpY2UgZXh0ZW5kcyBMaXN0UGFnZVNlcnZpY2VDbGFzcyB7XG5cbiAgICBwcml2YXRlIHBhZ2luZyA9IHRoaXMuREVGQVVMVF9QQUdJTkc7XG4gICAgcHVibGljIG1vZGFsVHlwZSA9ICdpZGVudGl0aWVzJztcblxuICAgIG92ZXJyaWRlIENTVl9DT0xVTU5TID0gW1xuICAgICAgICB7bGFiZWw6ICdOYW1lJywgcGF0aDogJ25hbWUnfSxcbiAgICAgICAge2xhYmVsOiAnUm9sZXMnLCBwYXRoOiAncm9sZUF0dHJpYnV0ZXMnfSxcbiAgICAgICAge2xhYmVsOiAnT25saW5lJywgcGF0aDogJ2hhc0FwaVNlc3Npb24nfSxcbiAgICAgICAge2xhYmVsOiAnRWRnZSBSb3V0ZXIgQ29ubmVjdGVkJywgcGF0aDogJ2hhc0VkZ2VSb3V0ZXJDb25uZWN0aW9uJ30sXG4gICAgICAgIHtsYWJlbDogJ09TJywgcGF0aDogJ2VudkluZm8ub3MnfSxcbiAgICAgICAge2xhYmVsOiAnT1MgVmVyc2lvbicsIHBhdGg6ICdlbnZJbmZvLm9zVmVyc2lvbid9LFxuICAgICAgICB7bGFiZWw6ICdTREsnLCBwYXRoOiAnc2RrSW5mby52ZXJzaW9uJ30sXG4gICAgICAgIHtsYWJlbDogJ0FwcCBWZXJzaW9uJywgcGF0aDogJ3Nka0luZm8uYXBwVmVyc2lvbid9LFxuICAgICAgICB7bGFiZWw6ICdUeXBlJywgcGF0aDogJ3R5cGVJZCd9LFxuICAgICAgICB7bGFiZWw6ICdJcyBBZG1pbicsIHBhdGg6ICdpc0FkbWluJ30sXG4gICAgICAgIHtsYWJlbDogJ0F1dGggUG9saWN5JywgcGF0aDogJ2F1dGhQb2xpY3kubmFtZSd9LFxuICAgICAgICB7bGFiZWw6ICdBdXRoIFBvbGljeSBJRCcsIHBhdGg6ICdhdXRoUG9saWN5LmlkJ30sXG4gICAgICAgIHtsYWJlbDogJ01GQSBFbmFibGVkJywgcGF0aDogJ2lzTWZhRW5hYmxlZCd9LFxuICAgICAgICB7bGFiZWw6ICdDcmVhdGVkIEF0JywgcGF0aDogJ2NyZWF0ZWRBdCd9LFxuICAgICAgICB7bGFiZWw6ICdJRCcsIHBhdGg6ICdpZCd9LFxuICAgIF07XG5cbiAgICBzZWxlY3RlZElkZW50aXR5OiBhbnkgPSBuZXcgSWRlbnRpdHkoKTtcbiAgICBjb2x1bW5GaWx0ZXJzOiBhbnkgPSB7XG4gICAgICAgIG5hbWU6ICcnLFxuICAgICAgICBvczogJycsXG4gICAgICAgIGNyZWF0ZWRBdDogJycsXG4gICAgfTtcblxuICAgIG92ZXJyaWRlIG1lbnVJdGVtcyA9IFtcbiAgICAgICAge25hbWU6ICdFZGl0JywgYWN0aW9uOiAndXBkYXRlJ30sXG4gICAgICAgIHtuYW1lOiAnRG93bmxvYWQgSldUJywgYWN0aW9uOiAnZG93bmxvYWQtZW5yb2xsbWVudCd9LFxuICAgICAgICB7bmFtZTogJ1ZpZXcgUVInLCBhY3Rpb246ICdxci1jb2RlJ30sXG4gICAgICAgIHtuYW1lOiAnVmlzdWFsaXplcicsIGFjdGlvbjogJ2lkZW50aXR5LXNlcnZpY2UtcGF0aCd9LFxuICAgICAgICB7bmFtZTogJ1Jlc2V0IEVucm9sbG1lbnQnLCBhY3Rpb246ICdyZXNldC1lbnJvbGxtZW50J30sXG4gICAgICAgIHtuYW1lOiAnUmVpc3N1ZSBFbnJvbGxtZW50JywgYWN0aW9uOiAncmVpc3N1ZS1lbnJvbGxtZW50J30sXG4gICAgICAgIHtuYW1lOiAnUmVzZXQgTUZBJywgYWN0aW9uOiAncmVzZXQtbWZhJ30sXG4gICAgICAgIHtuYW1lOiAnT3ZlcnJpZGUnLCBhY3Rpb246ICdvdmVycmlkZSd9LFxuICAgICAgICB7bmFtZTogJ0RlbGV0ZScsIGFjdGlvbjogJ2RlbGV0ZSd9LFxuICAgIF07XG5cbiAgICBvdmVycmlkZSB0YWJsZUhlYWRlckFjdGlvbnMgPSBbXG4gICAgICAgIHtuYW1lOiAnRG93bmxvYWQgQWxsJywgYWN0aW9uOiAnZG93bmxvYWQtYWxsJ30sXG4gICAgICAgIHtuYW1lOiAnRG93bmxvYWQgU2VsZWN0ZWQnLCBhY3Rpb246ICdkb3dubG9hZC1zZWxlY3RlZCd9LFxuICAgIF1cblxuICAgIHJlc291cmNlVHlwZSA9ICdpZGVudGl0aWVzJztcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChTRVRUSU5HU19TRVJWSUNFKSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlQ2xhc3MsXG4gICAgICAgIGZpbHRlclNlcnZpY2U6IERhdGFUYWJsZUZpbHRlclNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoWklUSV9EQVRBX1NFUlZJQ0UpIHByaXZhdGUgeml0aVNlcnZpY2U6IFppdGlEYXRhU2VydmljZSxcbiAgICAgICAgb3ZlcnJpZGUgY3N2RG93bmxvYWRTZXJ2aWNlOiBDc3ZEb3dubG9hZFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ3Jvd2xlclNlcnZpY2U6IEdyb3dsZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ0Zvcm06IE1hdERpYWxvZyxcbiAgICAgICAgQEluamVjdChJREVOVElUWV9FWFRFTlNJT05fU0VSVklDRSkgZXh0U2VydmljZTogRXh0ZW5zaW9uU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJvdXRlcjogUm91dGVyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKHNldHRpbmdzLCBmaWx0ZXJTZXJ2aWNlLCBjc3ZEb3dubG9hZFNlcnZpY2UsIGV4dFNlcnZpY2UsIHJvdXRlcik7XG4gICAgfVxuXG4gICAgdmFsaWRhdGUgPSAoZm9ybURhdGEpOiBQcm9taXNlPENhbGxiYWNrUmVzdWx0cz4gPT4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHsgcGFzc2VkOiB0cnVlfSk7XG4gICAgfVxuXG4gICAgaW5pdFRhYmxlQ29sdW1ucygpOiBhbnkge1xuICAgICAgICB0aGlzLmluaXRNZW51QWN0aW9ucygpO1xuXG4gICAgICAgIGNvbnN0IG5hbWVSZW5kZXJlciA9IChyb3cpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBgPGEgaHJlZj1cIi4vaWRlbnRpdGllcy8ke3Jvdz8uZGF0YT8uaWR9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGNlbGwtbmFtZS1yZW5kZXJlclwiIGRhdGEtaWQ9XCIke3Jvdz8uZGF0YT8uaWR9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaXJjbGUgJHtyb3c/LmRhdGE/Lmhhc0FwaVNlc3Npb259XCIgdGl0bGU9XCJBcGkgU2Vzc2lvblwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNpcmNsZSAke3Jvdz8uZGF0YT8uaGFzRWRnZVJvdXRlckNvbm5lY3Rpb259XCIgdGl0bGU9XCJFZGdlIFJvdXRlciBDb25uZWN0ZWRcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz4ke3Jvdz8uZGF0YT8ubmFtZX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2E+YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG9zUmVuZGVyZXIgPSAocm93KSA9PiB7XG4gICAgICAgICAgICBsZXQgb3MgPSBcIm90aGVyXCI7XG4gICAgICAgICAgICBsZXQgb3NEZXRhaWxzID0gXCJcIjtcbiAgICAgICAgICAgIGlmIChyb3c/LmRhdGE/LmVudkluZm8pIHtcbiAgICAgICAgICAgICAgICBpZiAocm93Py5kYXRhPy5lbnZJbmZvPy5vc1ZlcnNpb24mJnJvdz8uZGF0YT8uZW52SW5mbz8ub3NWZXJzaW9uLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihcIndpbmRvd3NcIik+PTApIG9zID0gXCJ3aW5kb3dzXCI7XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyb3c/LmRhdGE/LmVudkluZm8/Lm9zJiZyb3c/LmRhdGE/LmVudkluZm8/Lm9zLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihcImRhcndpblwiKT49MCkgb3MgPSBcImFwcGxlXCI7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJvdz8uZGF0YT8uZW52SW5mbz8ub3MmJnJvdz8uZGF0YT8uZW52SW5mbz8ub3MudG9Mb3dlckNhc2UoKS5pbmRleE9mKFwibGludXhcIik+PTApIG9zID0gXCJsaW51eFwiO1xuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChyb3c/LmRhdGE/LmVudkluZm8/Lm9zJiZyb3c/LmRhdGE/LmVudkluZm8/Lm9zLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihcImFuZHJvaWRcIik+PTApIG9zID0gXCJhbmRyb2lkXCI7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJvdz8uZGF0YT8uZW52SW5mbz8ub3MmJnJvdz8uZGF0YT8uZW52SW5mbz8ub3MudG9Mb3dlckNhc2UoKS5pbmRleE9mKFwid2luZG93c1wiKT49MCkgb3MgPSBcIndpbmRvd3NcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJvdz8uZGF0YT8uZW52SW5mbz8ub3MpIG9zRGV0YWlscyArPSBcIk9TOiBcIityb3c/LmRhdGE/LmVudkluZm8/Lm9zO1xuICAgICAgICAgICAgICAgIGlmIChyb3c/LmRhdGE/LmVudkluZm8/LmFyY2gpIG9zRGV0YWlscyArPSBcIiYjMTA7QXJjaDogXCIrcm93Py5kYXRhPy5lbnZJbmZvPy5hcmNoO1xuICAgICAgICAgICAgICAgIGlmIChyb3c/LmRhdGE/LmVudkluZm8/Lm9zUmVsZWFzZSkgb3NEZXRhaWxzICs9IFwiJiMxMDtSZWxlYXNlOiBcIityb3c/LmRhdGE/LmVudkluZm8/Lm9zUmVsZWFzZTtcbiAgICAgICAgICAgICAgICBpZiAocm93Py5kYXRhPy5lbnZJbmZvPy5vc1ZlcnNpb24pIG9zRGV0YWlscyArPSBcIiYjMTA7VmVyc2lvbjogXCIrcm93Py5kYXRhPy5lbnZJbmZvPy5vc1ZlcnNpb247XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJjb2wgZGVza3RvcFwiIHN0eWxlPVwib3ZlcmZsb3c6IHVuc2V0O1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3MgJHtvc31cIj48L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNka1JlbmRlcmVyID0gKHJvdykgPT4ge1xuICAgICAgICAgICAgbGV0IHNkayA9IFwiXCI7XG4gICAgICAgICAgICBsZXQgdmVyc2lvbiA9IFwiLVwiO1xuICAgICAgICAgICAgY29uc3Qgc2RrSW5mbyA9IHJvdz8uZGF0YT8uc2RrSW5mbztcbiAgICAgICAgICAgIGlmIChzZGtJbmZvKSB7XG4gICAgICAgICAgICAgICAgdmVyc2lvbiA9IFwiXCI7XG4gICAgICAgICAgICAgICAgaWYgKHNka0luZm8/LnZlcnNpb24pIHZlcnNpb24gKz0gc2RrSW5mbz8udmVyc2lvbjtcbiAgICAgICAgICAgICAgICBpZiAoc2RrSW5mbz8uYXBwSWQpIHNkayArPSBzZGtJbmZvPy5hcHBJZDtcbiAgICAgICAgICAgICAgICBpZiAoc2RrSW5mbz8uYXBwVmVyc2lvbikgc2RrICs9IHNka0luZm8/LmFwcFZlcnNpb247XG4gICAgICAgICAgICAgICAgaWYgKHNka0luZm8/LnR5cGUpIHNkayArPSBzZGtJbmZvPy50eXBlO1xuICAgICAgICAgICAgICAgIGlmIChzZGtJbmZvPy50eXBlKSBzZGsgKz0gXCImIzEwO1wiK3Nka0luZm8/LmJyYW5jaDtcbiAgICAgICAgICAgICAgICBpZiAoc2RrSW5mbz8ucmV2aXNpb24pIHNkayArPSBcIiAtIFwiK3Nka0luZm8/LnJldmlzaW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuYDxkaXYgY2xhc3M9XCJjb2wgZGVza3RvcFwiIGRhdGEtaWQ9XCIke3Jvdz8uZGF0YT8uaWR9XCIgc3R5bGU9XCJvdmVyZmxvdzogdW5zZXQ7XCIgZGF0YS1iYWxsb29uLXBvcz1cInVwXCIgYXJpYS1sYWJlbD1cIiR7c2RrfVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib25lbGluZVwiPiR7dmVyc2lvbn08L3NwYW4+XG4gICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbHVtbkZpbHRlcnMgPSB0aGlzLmNvbHVtbkZpbHRlcnM7XG5cbiAgICAgICAgY29uc3Qgb3NQYXJhbXMgPSB7XG4gICAgICAgICAgICBmaWx0ZXJUeXBlOiAnQ09NQk8nLFxuICAgICAgICAgICAgZmlsdGVyT3B0aW9uczogW1xuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdBbGwnLCB2YWx1ZTogJycsIGljb246ICdlbXB0eScgfSxcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnQXBwbGUnLCB2YWx1ZTogJ2RhcndpbicsIGljb246ICdhcHBsZScgfSxcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnV2luZG93cycsIHZhbHVlOiAnbWluZ3cnLCBpY29uOiAnd2luZG93cycgIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0xpbnV4JywgdmFsdWU6ICdsaW51eCcsIGljb246ICdsaW51eCcgIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0FuZHJvaWQnLCB2YWx1ZTogJ2FuZHJvaWQnLCBpY29uOiAnYW5kcm9pZCcgIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ090aGVyICh0ZXh0IHNlYXJjaCknLCB2YWx1ZTogJycsIGljb246ICdvdGhlcicsIHVzZVRleHRJbnB1dDogdHJ1ZSAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBjb2x1bW5GaWx0ZXJzLFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGlzQWRtaW5IZWFkZXJDb21wb25lbnRQYXJhbXMgPSB7XG4gICAgICAgICAgICBmaWx0ZXJUeXBlOiAnU0VMRUNUJyxcbiAgICAgICAgICAgIGVuYWJsZVNvcnRpbmc6IHRydWUsXG4gICAgICAgICAgICBmaWx0ZXJPcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0FsbCcsIHZhbHVlOiAnJyB9LFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdBZG1pbnMnLCB2YWx1ZTogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdOb24tQWRtaW5zJywgdmFsdWU6IGZhbHNlIH0sXG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ25hbWUnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnbmFtZScsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ05hbWUnLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudFBhcmFtczogdGhpcy5oZWFkZXJDb21wb25lbnRQYXJhbXMsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiBUYWJsZUNlbGxOYW1lQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlclBhcmFtczogeyBwYXRoUm9vdDogdGhpcy5iYXNlUGF0aCwgc2hvd0lkZW50aXR5SWNvbnM6IHRydWUgfSxcbiAgICAgICAgICAgICAgICBvbkNlbGxDbGlja2VkOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNTZWxlY3RlZFRleHQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbkVkaXRGb3JtKGRhdGE/LmRhdGE/LmlkKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICAgICAgc29ydGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgZmlsdGVyOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRDb2x1bW46IHRoaXMuc29ydC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIHNvcnREaXI6ICdhc2MnLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAzMDAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAncm9sZUF0dHJpYnV0ZXMnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAncm9sZUF0dHJpYnV0ZXMnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdSb2xlcycsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgb25DZWxsQ2xpY2tlZDogKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzU2VsZWN0ZWRUZXh0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5FZGl0Rm9ybShkYXRhPy5kYXRhPy5pZCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiB0aGlzLnJvbGVzUmVuZGVyZXIsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ29zJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ29zJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnTy9TJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwLFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogb3NSZW5kZXJlcixcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICB0b29sdGlwQ29tcG9uZW50OiBPU1Rvb2x0aXBDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgdG9vbHRpcEZpZWxkOiAnZW52SW5mbycsXG4gICAgICAgICAgICAgICAgdG9vbHRpcENvbXBvbmVudFBhcmFtczogeyBjb2xvcjogJyNlY2VjZWMnIH0sXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdzZGsnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnc2RrJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnU0RLJyxcbiAgICAgICAgICAgICAgICB0b29sdGlwRmllbGQ6ICdzZGtJbmZvJyxcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI6IHNka1JlbmRlcmVyLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHRvb2x0aXBDb21wb25lbnQ6IFNES1Rvb2x0aXBDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogMTI1LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ3R5cGUnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAndHlwZS5uYW1lJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnVHlwZScsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLnNvcnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdpc0FkbWluJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2lzQWRtaW4nLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdJcyBBZG1pbicsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50UGFyYW1zOiBpc0FkbWluSGVhZGVyQ29tcG9uZW50UGFyYW1zLFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLnNvcnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdjcmVhdGVkQXQnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnY3JlYXRlZEF0JyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnQ3JlYXRlZCBBdCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IHRoaXMuY3JlYXRlZEF0Rm9ybWF0dGVyLFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLnNvcnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAndG9rZW4nLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAndG9rZW4nLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdUb2tlbicsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiAnY2VsbFRva2VuQ29tcG9uZW50JyxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ2lzTWZhRW5hYmxlZCcsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdpc01mYUVuYWJsZWQnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdNRkEnLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBnZXREYXRhKGZpbHRlcnM/OiBGaWx0ZXJPYmpbXSwgc29ydD86IGFueSwgcGFnZT86IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIC8vIHdlIGNhbiBjdXN0b21pemUgZmlsdGVycyBvciBzb3J0aW5nIGhlcmUgYmVmb3JlIG1vdmluZyBvbi4uLlxuICAgICAgICB0aGlzLnBhZ2luZy5wYWdlID0gcGFnZSB8fCB0aGlzLnBhZ2luZy5wYWdlO1xuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0VGFibGVEYXRhKCdpZGVudGl0aWVzJywgdGhpcy5wYWdpbmcsIGZpbHRlcnMsIHNvcnQpXG4gICAgICAgICAgICAudGhlbigocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0RhdGEocmVzdWx0cyk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NEYXRhKHJlc3VsdHM6IGFueSkge1xuICAgICAgICBpZiAoIWlzRW1wdHkocmVzdWx0cz8uZGF0YSkpIHtcbiAgICAgICAgICAgIC8vcHJlLXByb2Nlc3MgZGF0YSBiZWZvcmUgcmVuZGVyaW5nXG4gICAgICAgICAgICByZXN1bHRzLmRhdGEgPSB0aGlzLmFkZEFjdGlvbnNQZXJSb3cocmVzdWx0cyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRBY3Rpb25zUGVyUm93KHJlc3VsdHM6IGFueSk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdHMuZGF0YS5tYXAoKHJvdykgPT4ge1xuICAgICAgICAgICAgcm93LmFjdGlvbkxpc3QgPSBbJ3VwZGF0ZScsICdvdmVycmlkZScsICdkZWxldGUnLCAnaWRlbnRpdHktc2VydmljZS1wYXRoJ107XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmhhc0Vucm9sbWVudFRva2VuKHJvdykpIHtcbiAgICAgICAgICAgICAgICByb3cuYWN0aW9uTGlzdC5wdXNoKCdyZWlzc3VlLWVucm9sbG1lbnQnKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZW5yb2xsbWVudEV4cGlyZWQocm93KSkge1xuICAgICAgICAgICAgICAgICAgICByb3cuYWN0aW9uTGlzdC5wdXNoKCdkb3dubG9hZC1lbnJvbGxtZW50Jyk7XG4gICAgICAgICAgICAgICAgICAgIHJvdy5hY3Rpb25MaXN0LnB1c2goJ3FyLWNvZGUnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaGFzQXV0aGVudGljYXRvcihyb3cpKSB7XG4gICAgICAgICAgICAgICAgcm93LmFjdGlvbkxpc3QucHVzaCgncmVzZXQtZW5yb2xsbWVudCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJvdy5pc01mYUVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByb3cuYWN0aW9uTGlzdC5wdXNoKCdyZXNldC1tZmEnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYWRkTGlzdEl0ZW1FeHRlbnNpb25BY3Rpb25zKHJvdyk7XG4gICAgICAgICAgICByZXR1cm4gcm93O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBoYXNBdXRoZW50aWNhdG9yKGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0/LmF1dGhlbnRpY2F0b3JzPy5jZXJ0Py5pZCB8fCBpdGVtLmF1dGhlbnRpY2F0b3JzPy51cGRiPy5pZDtcbiAgICB9XG5cbiAgICBoYXNFbnJvbG1lbnRUb2tlbihpdGVtKSB7XG4gICAgICAgIGxldCB0b2tlbjtcbiAgICAgICAgaWYgKGl0ZW0/LmVucm9sbG1lbnQ/Lm90dD8uand0KSB7XG4gICAgICAgICAgICB0b2tlbiA9IGl0ZW0/LmVucm9sbG1lbnQ/Lm90dD8uand0O1xuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0/LmVucm9sbG1lbnQ/Lm90dGNhPy5qd3QpIHtcbiAgICAgICAgICAgIHRva2VuID0gaXRlbT8uZW5yb2xsbWVudD8ub3R0Y2E/Lmp3dDtcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtPy5lbnJvbGxtZW50Py51cGRiPy5qd3QpIHtcbiAgICAgICAgICAgIHRva2VuID0gaXRlbT8uZW5yb2xsbWVudD8udXBkYj8uand0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0b2tlbjtcbiAgICB9XG5cbiAgICBlbnJvbGxtZW50RXhwaXJlZChpdGVtKSB7XG4gICAgICAgIGxldCBleHBpcmF0aW9uO1xuICAgICAgICBpZiAoaXRlbT8uZW5yb2xsbWVudD8ub3R0Py5qd3QpIHtcbiAgICAgICAgICAgIGV4cGlyYXRpb24gPSBpdGVtPy5lbnJvbGxtZW50Py5vdHQ/LmV4cGlyZXNBdDtcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtPy5lbnJvbGxtZW50Py5vdHRjYT8uand0KSB7XG4gICAgICAgICAgICBleHBpcmF0aW9uID0gaXRlbT8uZW5yb2xsbWVudD8ub3R0Y2E/LmV4cGlyZXNBdDtcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtPy5lbnJvbGxtZW50Py51cGRiPy5qd3QpIHtcbiAgICAgICAgICAgIGV4cGlyYXRpb24gPSBpdGVtPy5lbnJvbGxtZW50Py51cGRiPy5leHBpcmVzQXQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1vbWVudChleHBpcmF0aW9uKS5pc0JlZm9yZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJZGVudGl0aWVzUm9sZUF0dHJpYnV0ZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnppdGlTZXJ2aWNlLmdldCgnaWRlbnRpdHktcm9sZS1hdHRyaWJ1dGVzJywge30sIFtdKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXRNRkEoaWRlbnRpdHkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueml0aVNlcnZpY2UucmVzZXRNRkEoaWRlbnRpdHkuaWQpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZ3Jvd2xlckRhdGEgPSBuZXcgR3Jvd2xlck1vZGVsKFxuICAgICAgICAgICAgICAgICdzdWNjZXNzJyxcbiAgICAgICAgICAgICAgICAnU3VjY2VzcycsXG4gICAgICAgICAgICAgICAgYE1GQSBSZXNldGAsXG4gICAgICAgICAgICAgICAgYE1GQSB3YXMgc3VjY2Vzc2Z1bGx5IHJlc2V0IGZvciBpZGVudGl0eTogJHtpZGVudGl0eS5uYW1lfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5ncm93bGVyU2VydmljZS5zaG93KGdyb3dsZXJEYXRhKTtcbiAgICAgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy56aXRpU2VydmljZS5nZXRFcnJvck1lc3NhZ2UoZXJyb3IpO1xuICAgICAgICAgICAgY29uc3QgZ3Jvd2xlckRhdGEgPSBuZXcgR3Jvd2xlck1vZGVsKFxuICAgICAgICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgICAgICAgJ0Vycm9yJyxcbiAgICAgICAgICAgICAgICBgRmFpbGVkIHRvIFJlc2V0IE1GQWAsXG4gICAgICAgICAgICAgICAgYEF0dGVtcHQgdG8gcmVzZXQgTUZBIGZhaWxlZDogJHttZXNzYWdlfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5ncm93bGVyU2VydmljZS5zaG93KGdyb3dsZXJEYXRhKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0SldUKGlkZW50aXR5OiBhbnkpIHtcbiAgICAgICAgbGV0IHFyQ29kZTtcbiAgICAgICAgaWYgKCFpc0VtcHR5KGlkZW50aXR5Py5lbnJvbGxtZW50Py5vdHQ/Lmp3dCkpIHtcbiAgICAgICAgICAgIHFyQ29kZSA9IGlkZW50aXR5Py5lbnJvbGxtZW50Py5vdHQ/Lmp3dDtcbiAgICAgICAgfSBlbHNlIGlmICghaXNFbXB0eShpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Y2E/Lmp3dCkpIHtcbiAgICAgICAgICAgIHFyQ29kZSA9IGlkZW50aXR5Py5lbnJvbGxtZW50Py5vdHRjYT8uand0O1xuICAgICAgICB9IGVsc2UgaWYoIWlzRW1wdHkoaWRlbnRpdHk/LmVucm9sbG1lbnQ/LnVwZGI/Lmp3dCkpIHtcbiAgICAgICAgICAgIHFyQ29kZSA9IGlkZW50aXR5Py5lbnJvbGxtZW50Py51cGRiPy5qd3Q7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHFyQ29kZTtcbiAgICB9XG5cbiAgICBnZXRUb2tlbihpZGVudGl0eTogYW55KSB7XG4gICAgICAgIGxldCBxckNvZGU7XG4gICAgICAgIGlmICghaXNFbXB0eShpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Py50b2tlbikpIHtcbiAgICAgICAgICAgIHFyQ29kZSA9IGlkZW50aXR5Py5lbnJvbGxtZW50Py5vdHQ/LnRva2VuO1xuICAgICAgICB9IGVsc2UgaWYgKCFpc0VtcHR5KGlkZW50aXR5Py5lbnJvbGxtZW50Py5vdHRjYT8udG9rZW4pKSB7XG4gICAgICAgICAgICBxckNvZGUgPSBpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Y2E/LnRva2VuO1xuICAgICAgICB9IGVsc2UgaWYoIWlzRW1wdHkoaWRlbnRpdHk/LmVucm9sbG1lbnQ/LnVwZGI/LnRva2VuKSkge1xuICAgICAgICAgICAgcXJDb2RlID0gaWRlbnRpdHk/LmVucm9sbG1lbnQ/LnVwZGI/LnRva2VuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBxckNvZGU7XG4gICAgfVxuXG4gICAgZG93bmxvYWRKV1Qoand0LCBuYW1lKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdocmVmJywgJ2RhdGE6YXBwbGljYXRpb24veml0aS1qd3Q7Y2hhcnNldD11dGYtOCwnICsgZW5jb2RlVVJJQ29tcG9uZW50KGp3dCkpO1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBuYW1lK1wiLmp3dFwiKTtcbiAgICAgICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuICAgICAgICBlbGVtZW50LmNsaWNrKCk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XG4gICAgfVxuXG4gICAgY29weVRva2VuKHRva2VuKSB7XG4gICAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRva2VuKTtcbiAgICAgICAgY29uc3QgZ3Jvd2xlckRhdGEgPSBuZXcgR3Jvd2xlck1vZGVsKFxuICAgICAgICAgICAgJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgJ1N1Y2Nlc3MnLFxuICAgICAgICAgICAgYFRleHQgQ29waWVkYCxcbiAgICAgICAgICAgIGBSZWdpc3RyYXRpb24gdG9rZW4gY29waWVkIHRvIGNsaXBib2FyZGAsXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZ3Jvd2xlclNlcnZpY2Uuc2hvdyhncm93bGVyRGF0YSk7XG4gICAgfVxuXG4gICAgcmVzZXRKV1QoaWRlbnRpdHkpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ0Zvcm0ub3BlbihSZXNldEVucm9sbG1lbnRDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBpZGVudGl0eTogaWRlbnRpdHksXG4gICAgICAgICAgICAgICAgdHlwZTogJ3Jlc2V0J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGF1dG9Gb2N1czogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5kaWFsb2dSZWY7XG4gICAgfVxuXG4gICAgcmVpc3N1ZUpXVChpZGVudGl0eSkge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nRm9ybS5vcGVuKFJlc2V0RW5yb2xsbWVudENvbXBvbmVudCwge1xuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGlkZW50aXR5OiBpZGVudGl0eSxcbiAgICAgICAgICAgICAgICB0eXBlOiAncmVpc3N1ZSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlhbG9nUmVmO1xuICAgIH1cblxuICAgIGdldEVucm9sbG1lbnRFeHBpcmF0aW9uKGlkZW50aXR5OiBhbnkpIHtcbiAgICAgICAgbGV0IGV4cGlyZXNBdDtcbiAgICAgICAgaWYgKCFpc0VtcHR5KGlkZW50aXR5Py5lbnJvbGxtZW50Py5vdHQ/LmV4cGlyZXNBdCkpIHtcbiAgICAgICAgICAgIGV4cGlyZXNBdCA9IGlkZW50aXR5Py5lbnJvbGxtZW50Py5vdHQ/LmV4cGlyZXNBdDtcbiAgICAgICAgfSBlbHNlIGlmICghaXNFbXB0eShpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Y2E/LmV4cGlyZXNBdCkpIHtcbiAgICAgICAgICAgIGV4cGlyZXNBdCA9IGlkZW50aXR5Py5lbnJvbGxtZW50Py5vdHRjYT8uZXhwaXJlc0F0O1xuICAgICAgICB9IGVsc2UgaWYoIWlzRW1wdHkoaWRlbnRpdHk/LmVucm9sbG1lbnQ/LnVwZGI/LmV4cGlyZXNBdCkpIHtcbiAgICAgICAgICAgIGV4cGlyZXNBdCA9IGlkZW50aXR5Py5lbnJvbGxtZW50Py51cGRiPy5leHBpcmVzQXQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGV4cGlyZXNBdDtcbiAgICB9XG5cbiAgICByZXNldEVucm9sbG1lbnQoaWRlbnRpdHk6IGFueSwgZGF0ZTogYW55KSB7XG4gICAgICAgIGxldCBpZCA9IGlkZW50aXR5Py5hdXRoZW50aWNhdG9ycz8uY2VydD8uaWQ7XG4gICAgICAgIGlmICghaWQpIHtcbiAgICAgICAgICAgIGlmKCFpc0VtcHR5KGlkZW50aXR5Py5lbnJvbGxtZW50Py5vdHQpKSB7XG4gICAgICAgICAgICAgICAgaWQgPSBpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0LmlkO1xuICAgICAgICAgICAgfSBlbHNlIGlmKCFpc0VtcHR5KGlkZW50aXR5Py5lbnJvbGxtZW50Lm90dGNhKSkge1xuICAgICAgICAgICAgICAgIGlkID0gaWRlbnRpdHk/LmVucm9sbG1lbnQ/Lm90dGNhLmlkO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghaXNFbXB0eShpZGVudGl0eT8uZW5yb2xsbWVudC51cGRiKSkge1xuICAgICAgICAgICAgICAgIGlkID0gaWRlbnRpdHk/LmVucm9sbG1lbnQ/LnVwZGIuaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UucmVzZXRFbnJvbGxtZW50KGlkLCBkYXRlKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGdyb3dsZXJEYXRhID0gbmV3IEdyb3dsZXJNb2RlbChcbiAgICAgICAgICAgICAgICAnc3VjY2VzcycsXG4gICAgICAgICAgICAgICAgJ1N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgIGBFbnJvbGxtZW50IFJlc2V0YCxcbiAgICAgICAgICAgICAgICBgU3VjY2Vzc2Z1bGx5IHJlaXNzdWVkIGVucm9sbG1lbnQgdG9rZW5gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuZ3Jvd2xlclNlcnZpY2Uuc2hvdyhncm93bGVyRGF0YSk7XG4gICAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc3QgZ3Jvd2xlckRhdGEgPSBuZXcgR3Jvd2xlck1vZGVsKFxuICAgICAgICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgICAgICAgJ0Vycm9yJyxcbiAgICAgICAgICAgICAgICBgUmVzZXQgRmFpbGVkYCxcbiAgICAgICAgICAgICAgICBgRmFpbGVkIHRvIHJlaXNzdWVzIGVucm9sbG1lbnQgdG9rZW5gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuZ3Jvd2xlclNlcnZpY2Uuc2hvdyhncm93bGVyRGF0YSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuVXBkYXRlKGl0ZW1JZD86IGFueSkge1xuICAgICAgICB0aGlzLm1vZGFsVHlwZSA9ICdpZGVudGl0eSc7XG4gICAgICAgIHRoaXMuc2lkZU1vZGFsT3BlbiA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5PdmVycmlkZXNNb2RhbChpdGVtKSB7XG4gICAgICAgIHRoaXMubW9kYWxUeXBlID0gJ292ZXJyaWRlcyc7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZGVudGl0eSA9IGl0ZW07XG4gICAgICAgIHRoaXMuc2lkZU1vZGFsT3BlbiA9IHRydWU7XG4gICAgfVxufVxuIl19
|
|
494
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdGllcy1wYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvcGFnZXMvaWRlbnRpdGllcy9pZGVudGl0aWVzLXBhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQVksT0FBTyxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzFDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUMxRSxPQUFPLEVBQ0gsMkJBQTJCLEVBQzlCLE1BQU0sOEZBQThGLENBQUM7QUFFdEcsT0FBTyxFQUFDLGdCQUFnQixFQUFrQixNQUFNLGlDQUFpQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxpQkFBaUIsRUFBa0IsTUFBTSxrQ0FBa0MsQ0FBQztBQUVwRixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFJL0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDM0YsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDN0YsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBRXBFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBSXBHLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBRTNHLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDJFQUEyRSxDQUFDOzs7Ozs7Ozs7QUFFakgsTUFHYSxxQkFBc0IsU0FBUSxvQkFBb0I7SUFnRDNELFlBQzhCLFFBQThCLEVBQ3hE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QUFJLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQztRQUM3QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7K0dBdmRRLHFCQUFxQixrQkFpRGxCLGdCQUFnQixtREFFaEIsaUJBQWlCLHNHQUlqQiwwQkFBMEI7bUhBdkQ3QixxQkFBcUIsY0FGbEIsTUFBTTs7U0FFVCxxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQWtEUSxNQUFNOzJCQUFDLGdCQUFnQjs7MEJBRXZCLE1BQU07MkJBQUMsaUJBQWlCOzswQkFJeEIsTUFBTTsyQkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICAgIENvcHlyaWdodCBOZXRGb3VuZHJ5IEluYy5cblxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4qL1xuXG5pbXBvcnQge0luamVjdGFibGUsIEluamVjdCwgQ29tcG9uZW50LCBPbkluaXR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge2Nsb25lRGVlcCwgaXNFbXB0eX0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7RGF0YVRhYmxlRmlsdGVyU2VydmljZSwgRmlsdGVyT2JqfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQge0xpc3RQYWdlU2VydmljZUNsYXNzfSBmcm9tIFwiLi4vLi4vc2hhcmVkL2xpc3QtcGFnZS1zZXJ2aWNlLmNsYXNzXCI7XG5pbXBvcnQge1xuICAgIFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudFxufSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9jb2x1bW4taGVhZGVycy90YWJsZS1jb2x1bW4tZGVmYXVsdC90YWJsZS1jb2x1bW4tZGVmYXVsdC5jb21wb25lbnRcIjtcbmltcG9ydCB7Q2FsbGJhY2tSZXN1bHRzfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvbGlzdC1wYWdlLWZlYXR1cmVzL2xpc3QtcGFnZS1mb3JtL2xpc3QtcGFnZS1mb3JtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtTRVRUSU5HU19TRVJWSUNFLCBTZXR0aW5nc1NlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9zZXR0aW5ncy5zZXJ2aWNlXCI7XG5pbXBvcnQge1pJVElfREFUQV9TRVJWSUNFLCBaaXRpRGF0YVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy96aXRpLWRhdGEuc2VydmljZVwiO1xuaW1wb3J0IHtDc3ZEb3dubG9hZFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9jc3YtZG93bmxvYWQuc2VydmljZVwiO1xuaW1wb3J0IHtJZGVudGl0eX0gZnJvbSBcIi4uLy4uL21vZGVscy9pZGVudGl0eVwiO1xuaW1wb3J0IHt1bnNldH0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtJVG9vbHRpcEFuZ3VsYXJDb21wfSBmcm9tIFwiYWctZ3JpZC1hbmd1bGFyXCI7XG5pbXBvcnQge0lUb29sdGlwUGFyYW1zfSBmcm9tIFwiYWctZ3JpZC1jb21tdW5pdHlcIjtcbmltcG9ydCB7T1NUb29sdGlwQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS90b29sdGlwcy9vcy10b29sdGlwLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtTREtUb29sdGlwQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZGF0YS10YWJsZS90b29sdGlwcy9zZGstdG9vbHRpcC5jb21wb25lbnRcIjtcbmltcG9ydCB7R3Jvd2xlck1vZGVsfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvbWVzc2FnaW5nL2dyb3dsZXIubW9kZWxcIjtcbmltcG9ydCB7R3Jvd2xlclNlcnZpY2V9IGZyb20gXCIuLi8uLi9mZWF0dXJlcy9tZXNzYWdpbmcvZ3Jvd2xlci5zZXJ2aWNlXCI7XG5pbXBvcnQge1Jlc2V0RW5yb2xsbWVudENvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL3Jlc2V0LWVucm9sbG1lbnQvcmVzZXQtZW5yb2xsbWVudC5jb21wb25lbnRcIjtcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQge1NldHRpbmdzU2VydmljZUNsYXNzfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc2V0dGluZ3Mtc2VydmljZS5jbGFzc1wiO1xuaW1wb3J0IHtFeHRlbnNpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vZmVhdHVyZXMvZXh0ZW5kYWJsZS9leHRlbnNpb25zLW5vb3Auc2VydmljZVwiO1xuaW1wb3J0IHtJREVOVElUWV9FWFRFTlNJT05fU0VSVklDRX0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL3Byb2plY3RhYmxlLWZvcm1zL2lkZW50aXR5L2lkZW50aXR5LWZvcm0uc2VydmljZVwiO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7VGFibGVDZWxsTmFtZUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2ZlYXR1cmVzL2RhdGEtdGFibGUvY2VsbHMvdGFibGUtY2VsbC1uYW1lL3RhYmxlLWNlbGwtbmFtZS5jb21wb25lbnRcIjtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBJZGVudGl0aWVzUGFnZVNlcnZpY2UgZXh0ZW5kcyBMaXN0UGFnZVNlcnZpY2VDbGFzcyB7XG5cbiAgICBwcml2YXRlIHBhZ2luZyA9IHRoaXMuREVGQVVMVF9QQUdJTkc7XG4gICAgcHVibGljIG1vZGFsVHlwZSA9ICdpZGVudGl0aWVzJztcblxuICAgIG92ZXJyaWRlIENTVl9DT0xVTU5TID0gW1xuICAgICAgICB7bGFiZWw6ICdOYW1lJywgcGF0aDogJ25hbWUnfSxcbiAgICAgICAge2xhYmVsOiAnUm9sZXMnLCBwYXRoOiAncm9sZUF0dHJpYnV0ZXMnfSxcbiAgICAgICAge2xhYmVsOiAnT25saW5lJywgcGF0aDogJ2hhc0FwaVNlc3Npb24nfSxcbiAgICAgICAge2xhYmVsOiAnRWRnZSBSb3V0ZXIgQ29ubmVjdGVkJywgcGF0aDogJ2hhc0VkZ2VSb3V0ZXJDb25uZWN0aW9uJ30sXG4gICAgICAgIHtsYWJlbDogJ09TJywgcGF0aDogJ2VudkluZm8ub3MnfSxcbiAgICAgICAge2xhYmVsOiAnT1MgVmVyc2lvbicsIHBhdGg6ICdlbnZJbmZvLm9zVmVyc2lvbid9LFxuICAgICAgICB7bGFiZWw6ICdTREsnLCBwYXRoOiAnc2RrSW5mby52ZXJzaW9uJ30sXG4gICAgICAgIHtsYWJlbDogJ0FwcCBWZXJzaW9uJywgcGF0aDogJ3Nka0luZm8uYXBwVmVyc2lvbid9LFxuICAgICAgICB7bGFiZWw6ICdUeXBlJywgcGF0aDogJ3R5cGVJZCd9LFxuICAgICAgICB7bGFiZWw6ICdJcyBBZG1pbicsIHBhdGg6ICdpc0FkbWluJ30sXG4gICAgICAgIHtsYWJlbDogJ0F1dGggUG9saWN5JywgcGF0aDogJ2F1dGhQb2xpY3kubmFtZSd9LFxuICAgICAgICB7bGFiZWw6ICdBdXRoIFBvbGljeSBJRCcsIHBhdGg6ICdhdXRoUG9saWN5LmlkJ30sXG4gICAgICAgIHtsYWJlbDogJ01GQSBFbmFibGVkJywgcGF0aDogJ2lzTWZhRW5hYmxlZCd9LFxuICAgICAgICB7bGFiZWw6ICdDcmVhdGVkIEF0JywgcGF0aDogJ2NyZWF0ZWRBdCd9LFxuICAgICAgICB7bGFiZWw6ICdJRCcsIHBhdGg6ICdpZCd9LFxuICAgIF07XG5cbiAgICBzZWxlY3RlZElkZW50aXR5OiBhbnkgPSBuZXcgSWRlbnRpdHkoKTtcbiAgICBjb2x1bW5GaWx0ZXJzOiBhbnkgPSB7XG4gICAgICAgIG5hbWU6ICcnLFxuICAgICAgICBvczogJycsXG4gICAgICAgIGNyZWF0ZWRBdDogJycsXG4gICAgfTtcblxuICAgIG92ZXJyaWRlIG1lbnVJdGVtcyA9IFtcbiAgICAgICAge25hbWU6ICdFZGl0JywgYWN0aW9uOiAndXBkYXRlJ30sXG4gICAgICAgIHtuYW1lOiAnRG93bmxvYWQgSldUJywgYWN0aW9uOiAnZG93bmxvYWQtZW5yb2xsbWVudCd9LFxuICAgICAgICB7bmFtZTogJ1ZpZXcgUVInLCBhY3Rpb246ICdxci1jb2RlJ30sXG4gICAgICAgIHtuYW1lOiAnVmlzdWFsaXplcicsIGFjdGlvbjogJ2lkZW50aXR5LXNlcnZpY2UtcGF0aCd9LFxuICAgICAgICB7bmFtZTogJ1Jlc2V0IEVucm9sbG1lbnQnLCBhY3Rpb246ICdyZXNldC1lbnJvbGxtZW50J30sXG4gICAgICAgIHtuYW1lOiAnUmVpc3N1ZSBFbnJvbGxtZW50JywgYWN0aW9uOiAncmVpc3N1ZS1lbnJvbGxtZW50J30sXG4gICAgICAgIHtuYW1lOiAnUmVzZXQgTUZBJywgYWN0aW9uOiAncmVzZXQtbWZhJ30sXG4gICAgICAgIHtuYW1lOiAnT3ZlcnJpZGUnLCBhY3Rpb246ICdvdmVycmlkZSd9LFxuICAgICAgICB7bmFtZTogJ0RlbGV0ZScsIGFjdGlvbjogJ2RlbGV0ZSd9LFxuICAgIF07XG5cbiAgICBvdmVycmlkZSB0YWJsZUhlYWRlckFjdGlvbnMgPSBbXG4gICAgICAgIHtuYW1lOiAnRG93bmxvYWQgQWxsJywgYWN0aW9uOiAnZG93bmxvYWQtYWxsJ30sXG4gICAgICAgIHtuYW1lOiAnRG93bmxvYWQgU2VsZWN0ZWQnLCBhY3Rpb246ICdkb3dubG9hZC1zZWxlY3RlZCd9LFxuICAgIF1cblxuICAgIHJlc291cmNlVHlwZSA9ICdpZGVudGl0aWVzJztcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChTRVRUSU5HU19TRVJWSUNFKSBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlQ2xhc3MsXG4gICAgICAgIGZpbHRlclNlcnZpY2U6IERhdGFUYWJsZUZpbHRlclNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoWklUSV9EQVRBX1NFUlZJQ0UpIHByaXZhdGUgeml0aVNlcnZpY2U6IFppdGlEYXRhU2VydmljZSxcbiAgICAgICAgb3ZlcnJpZGUgY3N2RG93bmxvYWRTZXJ2aWNlOiBDc3ZEb3dubG9hZFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ3Jvd2xlclNlcnZpY2U6IEdyb3dsZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ0Zvcm06IE1hdERpYWxvZyxcbiAgICAgICAgQEluamVjdChJREVOVElUWV9FWFRFTlNJT05fU0VSVklDRSkgZXh0U2VydmljZTogRXh0ZW5zaW9uU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJvdXRlcjogUm91dGVyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKHNldHRpbmdzLCBmaWx0ZXJTZXJ2aWNlLCBjc3ZEb3dubG9hZFNlcnZpY2UsIGV4dFNlcnZpY2UsIHJvdXRlcik7XG4gICAgfVxuXG4gICAgdmFsaWRhdGUgPSAoZm9ybURhdGEpOiBQcm9taXNlPENhbGxiYWNrUmVzdWx0cz4gPT4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHsgcGFzc2VkOiB0cnVlfSk7XG4gICAgfVxuXG4gICAgaW5pdFRhYmxlQ29sdW1ucygpOiBhbnkge1xuICAgICAgICB0aGlzLmluaXRNZW51QWN0aW9ucygpO1xuXG4gICAgICAgIGNvbnN0IG5hbWVSZW5kZXJlciA9IChyb3cpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBgPGEgaHJlZj1cIi4vaWRlbnRpdGllcy8ke3Jvdz8uZGF0YT8uaWR9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGNlbGwtbmFtZS1yZW5kZXJlclwiIGRhdGEtaWQ9XCIke3Jvdz8uZGF0YT8uaWR9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaXJjbGUgJHtyb3c/LmRhdGE/Lmhhc0FwaVNlc3Npb259XCIgdGl0bGU9XCJBcGkgU2Vzc2lvblwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNpcmNsZSAke3Jvdz8uZGF0YT8uaGFzRWRnZVJvdXRlckNvbm5lY3Rpb259XCIgdGl0bGU9XCJFZGdlIFJvdXRlciBDb25uZWN0ZWRcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz4ke3Jvdz8uZGF0YT8ubmFtZX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2E+YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG9zUmVuZGVyZXIgPSAocm93KSA9PiB7XG4gICAgICAgICAgICBsZXQgb3MgPSBcIm90aGVyXCI7XG4gICAgICAgICAgICBsZXQgb3NEZXRhaWxzID0gXCJcIjtcbiAgICAgICAgICAgIGlmIChyb3c/LmRhdGE/LmVudkluZm8pIHtcbiAgICAgICAgICAgICAgICBpZiAocm93Py5kYXRhPy5lbnZJbmZvPy5vc1ZlcnNpb24mJnJvdz8uZGF0YT8uZW52SW5mbz8ub3NWZXJzaW9uLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihcIndpbmRvd3NcIik+PTApIG9zID0gXCJ3aW5kb3dzXCI7XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyb3c/LmRhdGE/LmVudkluZm8/Lm9zJiZyb3c/LmRhdGE/LmVudkluZm8/Lm9zLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihcImRhcndpblwiKT49MCkgb3MgPSBcImFwcGxlXCI7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJvdz8uZGF0YT8uZW52SW5mbz8ub3MmJnJvdz8uZGF0YT8uZW52SW5mbz8ub3MudG9Mb3dlckNhc2UoKS5pbmRleE9mKFwibGludXhcIik+PTApIG9zID0gXCJsaW51eFwiO1xuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChyb3c/LmRhdGE/LmVudkluZm8/Lm9zJiZyb3c/LmRhdGE/LmVudkluZm8/Lm9zLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihcImFuZHJvaWRcIik+PTApIG9zID0gXCJhbmRyb2lkXCI7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJvdz8uZGF0YT8uZW52SW5mbz8ub3MmJnJvdz8uZGF0YT8uZW52SW5mbz8ub3MudG9Mb3dlckNhc2UoKS5pbmRleE9mKFwid2luZG93c1wiKT49MCkgb3MgPSBcIndpbmRvd3NcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJvdz8uZGF0YT8uZW52SW5mbz8ub3MpIG9zRGV0YWlscyArPSBcIk9TOiBcIityb3c/LmRhdGE/LmVudkluZm8/Lm9zO1xuICAgICAgICAgICAgICAgIGlmIChyb3c/LmRhdGE/LmVudkluZm8/LmFyY2gpIG9zRGV0YWlscyArPSBcIiYjMTA7QXJjaDogXCIrcm93Py5kYXRhPy5lbnZJbmZvPy5hcmNoO1xuICAgICAgICAgICAgICAgIGlmIChyb3c/LmRhdGE/LmVudkluZm8/Lm9zUmVsZWFzZSkgb3NEZXRhaWxzICs9IFwiJiMxMDtSZWxlYXNlOiBcIityb3c/LmRhdGE/LmVudkluZm8/Lm9zUmVsZWFzZTtcbiAgICAgICAgICAgICAgICBpZiAocm93Py5kYXRhPy5lbnZJbmZvPy5vc1ZlcnNpb24pIG9zRGV0YWlscyArPSBcIiYjMTA7VmVyc2lvbjogXCIrcm93Py5kYXRhPy5lbnZJbmZvPy5vc1ZlcnNpb247XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJjb2wgZGVza3RvcFwiIHN0eWxlPVwib3ZlcmZsb3c6IHVuc2V0O1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3MgJHtvc31cIj48L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNka1JlbmRlcmVyID0gKHJvdykgPT4ge1xuICAgICAgICAgICAgbGV0IHNkayA9IFwiXCI7XG4gICAgICAgICAgICBsZXQgdmVyc2lvbiA9IFwiLVwiO1xuICAgICAgICAgICAgY29uc3Qgc2RrSW5mbyA9IHJvdz8uZGF0YT8uc2RrSW5mbztcbiAgICAgICAgICAgIGlmIChzZGtJbmZvKSB7XG4gICAgICAgICAgICAgICAgdmVyc2lvbiA9IFwiXCI7XG4gICAgICAgICAgICAgICAgaWYgKHNka0luZm8/LnZlcnNpb24pIHZlcnNpb24gKz0gc2RrSW5mbz8udmVyc2lvbjtcbiAgICAgICAgICAgICAgICBpZiAoc2RrSW5mbz8uYXBwSWQpIHNkayArPSBzZGtJbmZvPy5hcHBJZDtcbiAgICAgICAgICAgICAgICBpZiAoc2RrSW5mbz8uYXBwVmVyc2lvbikgc2RrICs9IHNka0luZm8/LmFwcFZlcnNpb247XG4gICAgICAgICAgICAgICAgaWYgKHNka0luZm8/LnR5cGUpIHNkayArPSBzZGtJbmZvPy50eXBlO1xuICAgICAgICAgICAgICAgIGlmIChzZGtJbmZvPy50eXBlKSBzZGsgKz0gXCImIzEwO1wiK3Nka0luZm8/LmJyYW5jaDtcbiAgICAgICAgICAgICAgICBpZiAoc2RrSW5mbz8ucmV2aXNpb24pIHNkayArPSBcIiAtIFwiK3Nka0luZm8/LnJldmlzaW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuYDxkaXYgY2xhc3M9XCJjb2wgZGVza3RvcFwiIGRhdGEtaWQ9XCIke3Jvdz8uZGF0YT8uaWR9XCIgc3R5bGU9XCJvdmVyZmxvdzogdW5zZXQ7XCIgZGF0YS1iYWxsb29uLXBvcz1cInVwXCIgYXJpYS1sYWJlbD1cIiR7c2RrfVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib25lbGluZVwiPiR7dmVyc2lvbn08L3NwYW4+XG4gICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbHVtbkZpbHRlcnMgPSB0aGlzLmNvbHVtbkZpbHRlcnM7XG5cbiAgICAgICAgY29uc3Qgb3NQYXJhbXMgPSB7XG4gICAgICAgICAgICBmaWx0ZXJUeXBlOiAnQ09NQk8nLFxuICAgICAgICAgICAgZmlsdGVyT3B0aW9uczogW1xuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdBbGwnLCB2YWx1ZTogJycsIGljb246ICdlbXB0eScgfSxcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnQXBwbGUnLCB2YWx1ZTogJ2RhcndpbicsIGljb246ICdhcHBsZScgfSxcbiAgICAgICAgICAgICAgICB7IGxhYmVsOiAnV2luZG93cycsIHZhbHVlOiAnbWluZ3cnLCBpY29uOiAnd2luZG93cycgIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0xpbnV4JywgdmFsdWU6ICdsaW51eCcsIGljb246ICdsaW51eCcgIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0FuZHJvaWQnLCB2YWx1ZTogJ2FuZHJvaWQnLCBpY29uOiAnYW5kcm9pZCcgIH0sXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ090aGVyICh0ZXh0IHNlYXJjaCknLCB2YWx1ZTogJycsIGljb246ICdvdGhlcicsIHVzZVRleHRJbnB1dDogdHJ1ZSAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBjb2x1bW5GaWx0ZXJzLFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGlzQWRtaW5IZWFkZXJDb21wb25lbnRQYXJhbXMgPSB7XG4gICAgICAgICAgICBmaWx0ZXJUeXBlOiAnU0VMRUNUJyxcbiAgICAgICAgICAgIGVuYWJsZVNvcnRpbmc6IHRydWUsXG4gICAgICAgICAgICBmaWx0ZXJPcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgeyBsYWJlbDogJ0FsbCcsIHZhbHVlOiAnJyB9LFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdBZG1pbnMnLCB2YWx1ZTogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgIHsgbGFiZWw6ICdOb24tQWRtaW5zJywgdmFsdWU6IGZhbHNlIH0sXG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ25hbWUnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnbmFtZScsXG4gICAgICAgICAgICAgICAgaGVhZGVyTmFtZTogJ05hbWUnLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudFBhcmFtczogdGhpcy5oZWFkZXJDb21wb25lbnRQYXJhbXMsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiBUYWJsZUNlbGxOYW1lQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlclBhcmFtczogeyBwYXRoUm9vdDogdGhpcy5iYXNlUGF0aCwgc2hvd0lkZW50aXR5SWNvbnM6IHRydWUgfSxcbiAgICAgICAgICAgICAgICBvbkNlbGxDbGlja2VkOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNTZWxlY3RlZFRleHQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbkVkaXRGb3JtKGRhdGE/LmRhdGE/LmlkKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICAgICAgc29ydGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgZmlsdGVyOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRDb2x1bW46IHRoaXMuc29ydC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIHNvcnREaXI6ICdhc2MnLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAzMDAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAncm9sZUF0dHJpYnV0ZXMnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAncm9sZUF0dHJpYnV0ZXMnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdSb2xlcycsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgb25DZWxsQ2xpY2tlZDogKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzU2VsZWN0ZWRUZXh0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5FZGl0Rm9ybShkYXRhPy5kYXRhPy5pZCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiB0aGlzLnJvbGVzUmVuZGVyZXIsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ29zJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ29zJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnTy9TJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwLFxuICAgICAgICAgICAgICAgIGNlbGxSZW5kZXJlcjogb3NSZW5kZXJlcixcbiAgICAgICAgICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICB0b29sdGlwQ29tcG9uZW50OiBPU1Rvb2x0aXBDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgdG9vbHRpcEZpZWxkOiAnZW52SW5mbycsXG4gICAgICAgICAgICAgICAgdG9vbHRpcENvbXBvbmVudFBhcmFtczogeyBjb2xvcjogJyNlY2VjZWMnIH0sXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdzZGsnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnc2RrJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnU0RLJyxcbiAgICAgICAgICAgICAgICB0b29sdGlwRmllbGQ6ICdzZGtJbmZvJyxcbiAgICAgICAgICAgICAgICBjZWxsUmVuZGVyZXI6IHNka1JlbmRlcmVyLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHRvb2x0aXBDb21wb25lbnQ6IFNES1Rvb2x0aXBDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogMTI1LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ3R5cGUnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAndHlwZS5uYW1lJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnVHlwZScsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLnNvcnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdpc0FkbWluJyxcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2lzQWRtaW4nLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdJcyBBZG1pbicsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50UGFyYW1zOiBpc0FkbWluSGVhZGVyQ29tcG9uZW50UGFyYW1zLFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLnNvcnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29sSWQ6ICdjcmVhdGVkQXQnLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAnY3JlYXRlZEF0JyxcbiAgICAgICAgICAgICAgICBoZWFkZXJOYW1lOiAnQ3JlYXRlZCBBdCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IHRoaXMuY3JlYXRlZEF0Rm9ybWF0dGVyLFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLnNvcnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbElkOiAndG9rZW4nLFxuICAgICAgICAgICAgICAgIGZpZWxkOiAndG9rZW4nLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdUb2tlbicsXG4gICAgICAgICAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgY2VsbFJlbmRlcmVyOiAnY2VsbFRva2VuQ29tcG9uZW50JyxcbiAgICAgICAgICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb2xJZDogJ2lzTWZhRW5hYmxlZCcsXG4gICAgICAgICAgICAgICAgZmllbGQ6ICdpc01mYUVuYWJsZWQnLFxuICAgICAgICAgICAgICAgIGhlYWRlck5hbWU6ICdNRkEnLFxuICAgICAgICAgICAgICAgIGhlYWRlckNvbXBvbmVudDogVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjZWxsQ2xhc3M6ICduZi1jZWxsLXZlcnQtYWxpZ24gdENvbCcsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aGlzLklEX0NPTFVNTl9ERUZcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBnZXREYXRhKGZpbHRlcnM/OiBGaWx0ZXJPYmpbXSwgc29ydD86IGFueSwgcGFnZT86IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIC8vIHdlIGNhbiBjdXN0b21pemUgZmlsdGVycyBvciBzb3J0aW5nIGhlcmUgYmVmb3JlIG1vdmluZyBvbi4uLlxuICAgICAgICB0aGlzLnBhZ2luZy5wYWdlID0gcGFnZSB8fCB0aGlzLnBhZ2luZy5wYWdlO1xuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0VGFibGVEYXRhKCdpZGVudGl0aWVzJywgdGhpcy5wYWdpbmcsIGZpbHRlcnMsIHNvcnQpXG4gICAgICAgICAgICAudGhlbigocmVzdWx0czogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0RhdGEocmVzdWx0cyk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NEYXRhKHJlc3VsdHM6IGFueSkge1xuICAgICAgICBpZiAoIWlzRW1wdHkocmVzdWx0cz8uZGF0YSkpIHtcbiAgICAgICAgICAgIC8vcHJlLXByb2Nlc3MgZGF0YSBiZWZvcmUgcmVuZGVyaW5nXG4gICAgICAgICAgICByZXN1bHRzLmRhdGEgPSB0aGlzLmFkZEFjdGlvbnNQZXJSb3cocmVzdWx0cyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRBY3Rpb25zUGVyUm93KHJlc3VsdHM6IGFueSk6IGFueVtdIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdHMuZGF0YS5tYXAoKHJvdykgPT4ge1xuICAgICAgICAgICAgcm93LmFjdGlvbkxpc3QgPSBbJ3VwZGF0ZScsICdvdmVycmlkZScsICdkZWxldGUnLCAnaWRlbnRpdHktc2VydmljZS1wYXRoJ107XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmhhc0Vucm9sbWVudFRva2VuKHJvdykpIHtcbiAgICAgICAgICAgICAgICByb3cuYWN0aW9uTGlzdC5wdXNoKCdyZWlzc3VlLWVucm9sbG1lbnQnKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZW5yb2xsbWVudEV4cGlyZWQocm93KSkge1xuICAgICAgICAgICAgICAgICAgICByb3cuYWN0aW9uTGlzdC5wdXNoKCdkb3dubG9hZC1lbnJvbGxtZW50Jyk7XG4gICAgICAgICAgICAgICAgICAgIHJvdy5hY3Rpb25MaXN0LnB1c2goJ3FyLWNvZGUnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaGFzQXV0aGVudGljYXRvcihyb3cpKSB7XG4gICAgICAgICAgICAgICAgcm93LmFjdGlvbkxpc3QucHVzaCgncmVzZXQtZW5yb2xsbWVudCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJvdy5pc01mYUVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByb3cuYWN0aW9uTGlzdC5wdXNoKCdyZXNldC1tZmEnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYWRkTGlzdEl0ZW1FeHRlbnNpb25BY3Rpb25zKHJvdyk7XG4gICAgICAgICAgICByZXR1cm4gcm93O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBoYXNBdXRoZW50aWNhdG9yKGl0ZW0pIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0/LmF1dGhlbnRpY2F0b3JzPy5jZXJ0Py5pZCB8fCBpdGVtLmF1dGhlbnRpY2F0b3JzPy51cGRiPy5pZDtcbiAgICB9XG5cbiAgICBoYXNFbnJvbG1lbnRUb2tlbihpdGVtKSB7XG4gICAgICAgIGxldCB0b2tlbjtcbiAgICAgICAgaWYgKGl0ZW0/LmVucm9sbG1lbnQ/Lm90dD8uand0KSB7XG4gICAgICAgICAgICB0b2tlbiA9IGl0ZW0/LmVucm9sbG1lbnQ/Lm90dD8uand0O1xuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0/LmVucm9sbG1lbnQ/Lm90dGNhPy5qd3QpIHtcbiAgICAgICAgICAgIHRva2VuID0gaXRlbT8uZW5yb2xsbWVudD8ub3R0Y2E/Lmp3dDtcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtPy5lbnJvbGxtZW50Py51cGRiPy5qd3QpIHtcbiAgICAgICAgICAgIHRva2VuID0gaXRlbT8uZW5yb2xsbWVudD8udXBkYj8uand0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0b2tlbjtcbiAgICB9XG5cbiAgICBlbnJvbGxtZW50RXhwaXJlZChpdGVtKSB7XG4gICAgICAgIGxldCBleHBpcmF0aW9uO1xuICAgICAgICBpZiAoaXRlbT8uZW5yb2xsbWVudD8ub3R0Py5qd3QpIHtcbiAgICAgICAgICAgIGV4cGlyYXRpb24gPSBpdGVtPy5lbnJvbGxtZW50Py5vdHQ/LmV4cGlyZXNBdDtcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtPy5lbnJvbGxtZW50Py5vdHRjYT8uand0KSB7XG4gICAgICAgICAgICBleHBpcmF0aW9uID0gaXRlbT8uZW5yb2xsbWVudD8ub3R0Y2E/LmV4cGlyZXNBdDtcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtPy5lbnJvbGxtZW50Py51cGRiPy5qd3QpIHtcbiAgICAgICAgICAgIGV4cGlyYXRpb24gPSBpdGVtPy5lbnJvbGxtZW50Py51cGRiPy5leHBpcmVzQXQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1vbWVudChleHBpcmF0aW9uKS5pc0JlZm9yZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJZGVudGl0aWVzUm9sZUF0dHJpYnV0ZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnppdGlTZXJ2aWNlLmdldCgnaWRlbnRpdHktcm9sZS1hdHRyaWJ1dGVzJywge30sIFtdKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXRNRkEoaWRlbnRpdHkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMueml0aVNlcnZpY2UucmVzZXRNRkEoaWRlbnRpdHkuaWQpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZ3Jvd2xlckRhdGEgPSBuZXcgR3Jvd2xlck1vZGVsKFxuICAgICAgICAgICAgICAgICdzdWNjZXNzJyxcbiAgICAgICAgICAgICAgICAnU3VjY2VzcycsXG4gICAgICAgICAgICAgICAgYE1GQSBSZXNldGAsXG4gICAgICAgICAgICAgICAgYE1GQSB3YXMgc3VjY2Vzc2Z1bGx5IHJlc2V0IGZvciBpZGVudGl0eTogJHtpZGVudGl0eS5uYW1lfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5ncm93bGVyU2VydmljZS5zaG93KGdyb3dsZXJEYXRhKTtcbiAgICAgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy56aXRpU2VydmljZS5nZXRFcnJvck1lc3NhZ2UoZXJyb3IpO1xuICAgICAgICAgICAgY29uc3QgZ3Jvd2xlckRhdGEgPSBuZXcgR3Jvd2xlck1vZGVsKFxuICAgICAgICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgICAgICAgJ0Vycm9yJyxcbiAgICAgICAgICAgICAgICBgRmFpbGVkIHRvIFJlc2V0IE1GQWAsXG4gICAgICAgICAgICAgICAgYEF0dGVtcHQgdG8gcmVzZXQgTUZBIGZhaWxlZDogJHttZXNzYWdlfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5ncm93bGVyU2VydmljZS5zaG93KGdyb3dsZXJEYXRhKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0SldUKGlkZW50aXR5OiBhbnkpIHtcbiAgICAgICAgbGV0IHFyQ29kZTtcbiAgICAgICAgaWYgKCFpc0VtcHR5KGlkZW50aXR5Py5lbnJvbGxtZW50Py5vdHQ/Lmp3dCkpIHtcbiAgICAgICAgICAgIHFyQ29kZSA9IGlkZW50aXR5Py5lbnJvbGxtZW50Py5vdHQ/Lmp3dDtcbiAgICAgICAgfSBlbHNlIGlmICghaXNFbXB0eShpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Y2E/Lmp3dCkpIHtcbiAgICAgICAgICAgIHFyQ29kZSA9IGlkZW50aXR5Py5lbnJvbGxtZW50Py5vdHRjYT8uand0O1xuICAgICAgICB9IGVsc2UgaWYoIWlzRW1wdHkoaWRlbnRpdHk/LmVucm9sbG1lbnQ/LnVwZGI/Lmp3dCkpIHtcbiAgICAgICAgICAgIHFyQ29kZSA9IGlkZW50aXR5Py5lbnJvbGxtZW50Py51cGRiPy5qd3Q7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHFyQ29kZTtcbiAgICB9XG5cbiAgICBnZXRUb2tlbihpZGVudGl0eTogYW55KSB7XG4gICAgICAgIGxldCBxckNvZGU7XG4gICAgICAgIGlmICghaXNFbXB0eShpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Py50b2tlbikpIHtcbiAgICAgICAgICAgIHFyQ29kZSA9IGlkZW50aXR5Py5lbnJvbGxtZW50Py5vdHQ/LnRva2VuO1xuICAgICAgICB9IGVsc2UgaWYgKCFpc0VtcHR5KGlkZW50aXR5Py5lbnJvbGxtZW50Py5vdHRjYT8udG9rZW4pKSB7XG4gICAgICAgICAgICBxckNvZGUgPSBpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Y2E/LnRva2VuO1xuICAgICAgICB9IGVsc2UgaWYoIWlzRW1wdHkoaWRlbnRpdHk/LmVucm9sbG1lbnQ/LnVwZGI/LnRva2VuKSkge1xuICAgICAgICAgICAgcXJDb2RlID0gaWRlbnRpdHk/LmVucm9sbG1lbnQ/LnVwZGI/LnRva2VuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBxckNvZGU7XG4gICAgfVxuXG4gICAgZG93bmxvYWRKV1Qoand0LCBuYW1lKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdocmVmJywgJ2RhdGE6YXBwbGljYXRpb24veml0aS1qd3Q7Y2hhcnNldD11dGYtOCwnICsgZW5jb2RlVVJJQ29tcG9uZW50KGp3dCkpO1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBuYW1lK1wiLmp3dFwiKTtcbiAgICAgICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuICAgICAgICBlbGVtZW50LmNsaWNrKCk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XG4gICAgfVxuXG4gICAgY29weVRva2VuKHRva2VuKSB7XG4gICAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRva2VuKTtcbiAgICAgICAgY29uc3QgZ3Jvd2xlckRhdGEgPSBuZXcgR3Jvd2xlck1vZGVsKFxuICAgICAgICAgICAgJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgJ1N1Y2Nlc3MnLFxuICAgICAgICAgICAgYFRleHQgQ29waWVkYCxcbiAgICAgICAgICAgIGBSZWdpc3RyYXRpb24gdG9rZW4gY29waWVkIHRvIGNsaXBib2FyZGAsXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZ3Jvd2xlclNlcnZpY2Uuc2hvdyhncm93bGVyRGF0YSk7XG4gICAgfVxuXG4gICAgcmVzZXRKV1QoaWRlbnRpdHkpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ0Zvcm0ub3BlbihSZXNldEVucm9sbG1lbnRDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBpZGVudGl0eTogaWRlbnRpdHksXG4gICAgICAgICAgICAgICAgdHlwZTogJ3Jlc2V0J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGF1dG9Gb2N1czogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5kaWFsb2dSZWY7XG4gICAgfVxuXG4gICAgcmVpc3N1ZUpXVChpZGVudGl0eSkge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nRm9ybS5vcGVuKFJlc2V0RW5yb2xsbWVudENvbXBvbmVudCwge1xuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGlkZW50aXR5OiBpZGVudGl0eSxcbiAgICAgICAgICAgICAgICB0eXBlOiAncmVpc3N1ZSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlhbG9nUmVmO1xuICAgIH1cblxuICAgIGdldEVucm9sbG1lbnRFeHBpcmF0aW9uKGlkZW50aXR5OiBhbnkpIHtcbiAgICAgICAgbGV0IGV4cGlyZXNBdDtcbiAgICAgICAgaWYgKCFpc0VtcHR5KGlkZW50aXR5Py5lbnJvbGxtZW50Py5vdHQ/LmV4cGlyZXNBdCkpIHtcbiAgICAgICAgICAgIGV4cGlyZXNBdCA9IGlkZW50aXR5Py5lbnJvbGxtZW50Py5vdHQ/LmV4cGlyZXNBdDtcbiAgICAgICAgfSBlbHNlIGlmICghaXNFbXB0eShpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0Y2E/LmV4cGlyZXNBdCkpIHtcbiAgICAgICAgICAgIGV4cGlyZXNBdCA9IGlkZW50aXR5Py5lbnJvbGxtZW50Py5vdHRjYT8uZXhwaXJlc0F0O1xuICAgICAgICB9IGVsc2UgaWYoIWlzRW1wdHkoaWRlbnRpdHk/LmVucm9sbG1lbnQ/LnVwZGI/LmV4cGlyZXNBdCkpIHtcbiAgICAgICAgICAgIGV4cGlyZXNBdCA9IGlkZW50aXR5Py5lbnJvbGxtZW50Py51cGRiPy5leHBpcmVzQXQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGV4cGlyZXNBdDtcbiAgICB9XG5cbiAgICByZXNldEVucm9sbG1lbnQoaWRlbnRpdHk6IGFueSwgZGF0ZTogYW55KSB7XG4gICAgICAgIGxldCBpZCA9IGlkZW50aXR5Py5hdXRoZW50aWNhdG9ycz8uY2VydD8uaWQ7XG4gICAgICAgIGlmICghaWQpIHtcbiAgICAgICAgICAgIGlmKCFpc0VtcHR5KGlkZW50aXR5Py5lbnJvbGxtZW50Py5vdHQpKSB7XG4gICAgICAgICAgICAgICAgaWQgPSBpZGVudGl0eT8uZW5yb2xsbWVudD8ub3R0LmlkO1xuICAgICAgICAgICAgfSBlbHNlIGlmKCFpc0VtcHR5KGlkZW50aXR5Py5lbnJvbGxtZW50Lm90dGNhKSkge1xuICAgICAgICAgICAgICAgIGlkID0gaWRlbnRpdHk/LmVucm9sbG1lbnQ/Lm90dGNhLmlkO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghaXNFbXB0eShpZGVudGl0eT8uZW5yb2xsbWVudC51cGRiKSkge1xuICAgICAgICAgICAgICAgIGlkID0gaWRlbnRpdHk/LmVucm9sbG1lbnQ/LnVwZGIuaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UucmVzZXRFbnJvbGxtZW50KGlkLCBkYXRlKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGdyb3dsZXJEYXRhID0gbmV3IEdyb3dsZXJNb2RlbChcbiAgICAgICAgICAgICAgICAnc3VjY2VzcycsXG4gICAgICAgICAgICAgICAgJ1N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgIGBFbnJvbGxtZW50IFJlc2V0YCxcbiAgICAgICAgICAgICAgICBgU3VjY2Vzc2Z1bGx5IHJlaXNzdWVkIGVucm9sbG1lbnQgdG9rZW5gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuZ3Jvd2xlclNlcnZpY2Uuc2hvdyhncm93bGVyRGF0YSk7XG4gICAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc3QgZ3Jvd2xlckRhdGEgPSBuZXcgR3Jvd2xlck1vZGVsKFxuICAgICAgICAgICAgICAgICdlcnJvcicsXG4gICAgICAgICAgICAgICAgJ0Vycm9yJyxcbiAgICAgICAgICAgICAgICBgUmVzZXQgRmFpbGVkYCxcbiAgICAgICAgICAgICAgICBgRmFpbGVkIHRvIHJlaXNzdWVzIGVucm9sbG1lbnQgdG9rZW5gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuZ3Jvd2xlclNlcnZpY2Uuc2hvdyhncm93bGVyRGF0YSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuVXBkYXRlKGl0ZW1JZD86IGFueSkge1xuICAgICAgICB0aGlzLm1vZGFsVHlwZSA9ICdpZGVudGl0eSc7XG4gICAgICAgIHRoaXMuc2lkZU1vZGFsT3BlbiA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5PdmVycmlkZXNNb2RhbChpdGVtKSB7XG4gICAgICAgIHRoaXMubW9kYWxUeXBlID0gJ292ZXJyaWRlcyc7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJZGVudGl0eSA9IGl0ZW07XG4gICAgICAgIHRoaXMuc2lkZU1vZGFsT3BlbiA9IHRydWU7XG4gICAgfVxufVxuIl19
|