@doctorus/common 0.0.30 → 0.0.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/ssm/keys.d.ts +1 -0
- package/lib/ssm/keys.js +2 -1
- package/lib/status/utils.d.ts +3 -1
- package/lib/status/utils.js +3 -1
- package/package.json +1 -1
package/lib/ssm/keys.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export declare enum SSM_PARAM_KEY {
|
|
|
12
12
|
GRAPHQL_WS_URL = "graphql-ws-url",
|
|
13
13
|
GRAPHQL_HOST = "graphql-host",
|
|
14
14
|
GRAPHQL_API_ID = "graphql-api-id",
|
|
15
|
+
MEDICALSPACE_WEB_APP_URL = "medicalspace-web-app-url",
|
|
15
16
|
MEDICAL_ASSETS_AWS_CLOUDFRONT_PRIVATE_KEY = "medical-assets-dist-private-key",
|
|
16
17
|
MEDICAL_ASSETS_AWS_CLOUDFRONT_KEY_ID = "medical-assets-dist-public-key-id",
|
|
17
18
|
MEDICAL_ASSETS_AWS_CLOUDFRONT_PUB_KEY = "medical-assets-dist-public-key",
|
package/lib/ssm/keys.js
CHANGED
|
@@ -16,6 +16,7 @@ var SSM_PARAM_KEY;
|
|
|
16
16
|
SSM_PARAM_KEY["GRAPHQL_WS_URL"] = "graphql-ws-url";
|
|
17
17
|
SSM_PARAM_KEY["GRAPHQL_HOST"] = "graphql-host";
|
|
18
18
|
SSM_PARAM_KEY["GRAPHQL_API_ID"] = "graphql-api-id";
|
|
19
|
+
SSM_PARAM_KEY["MEDICALSPACE_WEB_APP_URL"] = "medicalspace-web-app-url";
|
|
19
20
|
SSM_PARAM_KEY["MEDICAL_ASSETS_AWS_CLOUDFRONT_PRIVATE_KEY"] = "medical-assets-dist-private-key";
|
|
20
21
|
SSM_PARAM_KEY["MEDICAL_ASSETS_AWS_CLOUDFRONT_KEY_ID"] = "medical-assets-dist-public-key-id";
|
|
21
22
|
SSM_PARAM_KEY["MEDICAL_ASSETS_AWS_CLOUDFRONT_PUB_KEY"] = "medical-assets-dist-public-key";
|
|
@@ -33,4 +34,4 @@ var SSM_PARAM_KEY;
|
|
|
33
34
|
SSM_PARAM_KEY["HOSTED_ZONE_ID"] = "sub-hosted-zone-id";
|
|
34
35
|
SSM_PARAM_KEY["ICAL_TOKEN"] = "ical-token";
|
|
35
36
|
})(SSM_PARAM_KEY || (exports.SSM_PARAM_KEY = SSM_PARAM_KEY = {}));
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zc20va2V5cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILElBQVksYUE0Qlg7QUE1QkQsV0FBWSxhQUFhO0lBQ3ZCLHNEQUFxQyxDQUFBO0lBQ3JDLDRFQUEyRCxDQUFBO0lBQzNELHNEQUFxQyxDQUFBO0lBQ3JDLDBEQUF5QyxDQUFBO0lBQ3pDLDhEQUE2QyxDQUFBO0lBQzdDLDBDQUF5QixDQUFBO0lBQ3pCLHNEQUFxQyxDQUFBO0lBQ3JDLGtEQUFpQyxDQUFBO0lBQ2pDLDhDQUE2QixDQUFBO0lBQzdCLGtEQUFpQyxDQUFBO0lBQ2pDLHNFQUFxRCxDQUFBO0lBQ3JELDhGQUE2RSxDQUFBO0lBQzdFLDJGQUEwRSxDQUFBO0lBQzFFLHlGQUF3RSxDQUFBO0lBQ3hFLDBFQUF5RCxDQUFBO0lBQ3pELHdFQUF1RCxDQUFBO0lBQ3ZELDBGQUF5RSxDQUFBO0lBQ3pFLG9DQUFtQixDQUFBO0lBQ25CLDRDQUEyQixDQUFBO0lBQzNCLDRGQUEyRSxDQUFBO0lBQzNFLHdDQUF1QixDQUFBO0lBQ3ZCLDBEQUF5QyxDQUFBO0lBQ3pDLG9FQUFtRCxDQUFBO0lBQ25ELDBEQUF5QyxDQUFBO0lBQ3pDLGtFQUFpRCxDQUFBO0lBQ2pELHNEQUFxQyxDQUFBO0lBQ3JDLDBDQUF5QixDQUFBO0FBQzNCLENBQUMsRUE1QlcsYUFBYSw2QkFBYixhQUFhLFFBNEJ4QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU1NNIFBhcmFtZXRlciBTdG9yZSBrZXlzIHVzZWQgYWNyb3NzIEFXUyBzdGFja3NcbiAqL1xuZXhwb3J0IGVudW0gU1NNX1BBUkFNX0tFWSB7XG4gIENPR05JVE9fVVNFUl9QT09MX0lEID0gJ3VzZXItcG9vbC1pZCcsXG4gIENPR05JVE9fVVNFUl9QT09MX1dFQl9DTElFTlRfSUQgPSAndXNlci1wb29sLXdlYi1jbGllbnQtaWQnLFxuICBDT0dOSVRPX09BVVRIX0RPTUFJTiA9ICdvYXV0aC1kb21haW4nLFxuICBSVU1fR1VFU1RfUk9MRV9BUk4gPSAncnVtLWd1ZXN0LXJvbWUtYXJuJyxcbiAgUlVNX0lERU5USVRZX1BPT0xfSUQgPSAncnVtLWlkZW50aXR5LXBvb2wtaWQnLFxuICBSVU1fQVBQX0lEID0gJ3J1bS1hcHAtaWQnLFxuICBHUkFQSFFMX0hUVFBfVVJMID0gJ2dyYXBocWwtaHR0cC11cmwnLFxuICBHUkFQSFFMX1dTX1VSTCA9ICdncmFwaHFsLXdzLXVybCcsXG4gIEdSQVBIUUxfSE9TVCA9ICdncmFwaHFsLWhvc3QnLFxuICBHUkFQSFFMX0FQSV9JRCA9ICdncmFwaHFsLWFwaS1pZCcsXG4gIE1FRElDQUxTUEFDRV9XRUJfQVBQX1VSTCA9ICdtZWRpY2Fsc3BhY2Utd2ViLWFwcC11cmwnLFxuICBNRURJQ0FMX0FTU0VUU19BV1NfQ0xPVURGUk9OVF9QUklWQVRFX0tFWSA9ICdtZWRpY2FsLWFzc2V0cy1kaXN0LXByaXZhdGUta2V5JyxcbiAgTUVESUNBTF9BU1NFVFNfQVdTX0NMT1VERlJPTlRfS0VZX0lEID0gJ21lZGljYWwtYXNzZXRzLWRpc3QtcHVibGljLWtleS1pZCcsXG4gIE1FRElDQUxfQVNTRVRTX0FXU19DTE9VREZST05UX1BVQl9LRVkgPSAnbWVkaWNhbC1hc3NldHMtZGlzdC1wdWJsaWMta2V5JyxcbiAgTUVESUNBTF9BU1NFVFNfQlVDS0VUX05BTUUgPSAnbWVkaWNhbC1hc3NldHMtYnVja2V0LW5hbWUnLFxuICBQVUJMSUNfQVNTRVRTX0JVQ0tFVF9OQU1FID0gJ3B1YmxpYy1hc3NldHMtYnVja2V0LW5hbWUnLFxuICBQVUJMSUNfQVNTRVRTX0RJU1RSSUJVVElPTl9ET01BSU5fTkFNRSA9ICdwdWJsaWMtYXNzZXRzLWRpc3QtZG9tYWluLW5hbWUnLFxuICBEQl9VU0VSID0gJ2RiLXVzZXInLFxuICBEQl9QQVNTV09SRCA9ICdkYi1wYXNzd29yZCcsXG4gIE1FRElDQUxfQVNTRVRTX0RJU1RSSUJVVElPTl9ET01BSU5fTkFNRSA9ICdtZWRpY2FsLWFzc2V0cy1kaXN0LWRvbWFpbi1uYW1lJyxcbiAgQkFTRV9IT1NUID0gJ2Jhc2UtaG9zdCcsXG4gIEVNQUlMX0ZST01fQUREUkVTUyA9ICdlbWFpbC1mcm9tLWFkZHJlc3MnLFxuICBFVkVOVF9BUElfUkVBTF9USU1FX0ROUyA9ICdldmVudC1hcGktcmVhbC10aW1lLWRucycsXG4gIEVWRU5UX0FQSV9IVFRQX0ROUyA9ICdldmVudC1hcGktaHR0cC1kbnMnLFxuICBOT1RJRklFRF9FVkVOVF9BQ1RJT05TID0gJ25vdGlmaWVkLWV2ZW50LWFjdGlvbnMnLFxuICBIT1NURURfWk9ORV9JRCA9ICdzdWItaG9zdGVkLXpvbmUtaWQnLFxuICBJQ0FMX1RPS0VOID0gJ2ljYWwtdG9rZW4nLFxufVxuIl19
|
package/lib/status/utils.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ import type { StatusMetadata, Locale } from './types';
|
|
|
10
10
|
/**
|
|
11
11
|
* Feature type for status selection
|
|
12
12
|
*/
|
|
13
|
-
export type StatusFeature = 'medicalService' | 'accountLocation' | 'medicalHistory' | 'yesNo' | 'activeInactive' | 'enabledDisabled' | 'validInvalid';
|
|
13
|
+
export type StatusFeature = 'medicalService' | 'accountLocation' | 'medicalHistory' | 'yesNo' | 'activeInactive' | 'enabledDisabled' | 'validInvalid' | 'verifiedUnverified' | 'subscribedNotSubscribed';
|
|
14
14
|
/**
|
|
15
15
|
* Status type mapping for each feature
|
|
16
16
|
*/
|
|
@@ -22,6 +22,8 @@ export type StatusTypeMap = {
|
|
|
22
22
|
activeInactive: BooleanStatus;
|
|
23
23
|
enabledDisabled: BooleanStatus;
|
|
24
24
|
validInvalid: BooleanStatus;
|
|
25
|
+
verifiedUnverified: BooleanStatus;
|
|
26
|
+
subscribedNotSubscribed: BooleanStatus;
|
|
25
27
|
};
|
|
26
28
|
/**
|
|
27
29
|
* Get status metadata for a specific feature and status
|
package/lib/status/utils.js
CHANGED
|
@@ -34,6 +34,8 @@ const METADATA_REGISTRY = {
|
|
|
34
34
|
activeInactive: boolean_status_1.BOOLEAN_METADATA_REGISTRY.activeInactive,
|
|
35
35
|
enabledDisabled: boolean_status_1.BOOLEAN_METADATA_REGISTRY.enabledDisabled,
|
|
36
36
|
validInvalid: boolean_status_1.BOOLEAN_METADATA_REGISTRY.validInvalid,
|
|
37
|
+
verifiedUnverified: boolean_status_1.BOOLEAN_METADATA_REGISTRY.verifiedUnverified,
|
|
38
|
+
subscribedNotSubscribed: boolean_status_1.BOOLEAN_METADATA_REGISTRY.subscribedNotSubscribed,
|
|
37
39
|
};
|
|
38
40
|
/**
|
|
39
41
|
* Get status metadata for a specific feature and status
|
|
@@ -215,4 +217,4 @@ function groupStatusesByIconForFeature(feature) {
|
|
|
215
217
|
});
|
|
216
218
|
return grouped;
|
|
217
219
|
}
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RhdHVzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7O0FBeURILGtFQWVDO0FBUUQsMERBRUM7QUFRRCw0REFFQztBQVVELDREQVFDO0FBU0Qsd0VBTUM7QUFPRCx3RUFRQztBQU9ELDREQUdDO0FBTUQsd0NBRUM7QUFNRCx3Q0FFQztBQVFELDBEQVFDO0FBUUQsb0RBWUM7QUFlRCxrRkFlQztBQVNELDBEQWNDO0FBT0Qsd0VBZUM7QUFPRCxzRUFhQztBQWxTRCxxREFBNkQ7QUFDN0QsdUVBQTZFO0FBQzdFLHFFQUEyRTtBQUMzRSxxRUFBMkU7QUEyQjNFOztHQUVHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBbUU7SUFDeEYsY0FBYyxFQUFFLHdEQUErQjtJQUMvQyxlQUFlLEVBQUUsMERBQWdDO0lBQ2pELGNBQWMsRUFBRSx3REFBK0I7SUFDL0MsS0FBSyxFQUFFLDBDQUF5QixDQUFDLEtBQUs7SUFDdEMsY0FBYyxFQUFFLDBDQUF5QixDQUFDLGNBQWM7SUFDeEQsZUFBZSxFQUFFLDBDQUF5QixDQUFDLGVBQWU7SUFDMUQsWUFBWSxFQUFFLDBDQUF5QixDQUFDLFlBQVk7Q0FDckQsQ0FBQztBQUVGOzs7Ozs7R0FNRztBQUNILFNBQWdCLDJCQUEyQixDQUN6QyxPQUFVLEVBQ1YsTUFBd0I7SUFFeEIsTUFBTSxRQUFRLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLE9BQU8s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LEVBQUUsQ0FBQztZQUM3QixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUMvQixDQUFDO1FBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBMEIsQ0FBQyxDQUFDO0lBQzNELENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3RhdHVzIHV0aWxpdGllcyBmb3IgZXh0cmFjdGluZyBhbmQgcXVlcnlpbmcgc3RhdHVzIG1ldGFkYXRhXG4gKiBQcm92aWRlcyBjb21tb24gZnVuY3Rpb25zIHRvIHdvcmsgd2l0aCBzdGF0dXMgY29uZmlndXJhdGlvbnNcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEJvb2xlYW5TdGF0dXMgfSBmcm9tICcuL2Jvb2xlYW4tc3RhdHVzJztcbmltcG9ydCB0eXBlIHsgQWNjb3VudExvY2F0aW9uU3RhdHVzIH0gZnJvbSAnLi9hY2NvdW50LWxvY2F0aW9uLXN0YXR1cyc7XG5pbXBvcnQgdHlwZSB7IE1lZGljYWxIaXN0b3J5U3RhdHVzIH0gZnJvbSAnLi9tZWRpY2FsLWhpc3Rvcnktc3RhdHVzJztcbmltcG9ydCB0eXBlIHsgTWVkaWNhbFNlcnZpY2VTdGF0dXMgfSBmcm9tICcuL21lZGljYWwtc2VydmljZS1zdGF0dXMnO1xuaW1wb3J0IHR5cGUgeyBTdGF0dXNNZXRhZGF0YSwgTG9jYWxlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBCT09MRUFOX01FVEFEQVRBX1JFR0lTVFJZIH0gZnJvbSAnLi9ib29sZWFuLXN0YXR1cyc7XG5pbXBvcnQgeyBBQ0NPVU5UX0xPQ0FUSU9OX1NUQVRVU19NRVRBREFUQSB9IGZyb20gJy4vYWNjb3VudC1sb2NhdGlvbi1zdGF0dXMnO1xuaW1wb3J0IHsgTUVESUNBTF9ISVNUT1JZX1NUQVRVU19NRVRBREFUQSB9IGZyb20gJy4vbWVkaWNhbC1oaXN0b3J5LXN0YXR1cyc7XG5pbXBvcnQgeyBNRURJQ0FMX1NFUlZJQ0VfU1RBVFVTX01FVEFEQVRBIH0gZnJvbSAnLi9tZWRpY2FsLXNlcnZpY2Utc3RhdHVzJztcblxuLyoqXG4gKiBGZWF0dXJlIHR5cGUgZm9yIHN0YXR1cyBzZWxlY3Rpb25cbiAqL1xuZXhwb3J0IHR5cGUgU3RhdHVzRmVhdHVyZSA9XG4gIHwgJ21lZGljYWxTZXJ2aWNlJ1xuICB8ICdhY2NvdW50TG9jYXRpb24nXG4gIHwgJ21lZGljYWxIaXN0b3J5J1xuICB8ICd5ZXNObydcbiAgfCAnYWN0aXZlSW5hY3RpdmUnXG4gIHwgJ2VuYWJsZWREaXNhYmxlZCdcbiAgfCAndmFsaWRJbnZhbGlkJztcblxuLyoqXG4gKiBTdGF0dXMgdHlwZSBtYXBwaW5nIGZvciBlYWNoIGZlYXR1cmVcbiAqL1xuZXhwb3J0IHR5cGUgU3RhdHVzVHlwZU1hcCA9IHtcbiAgbWVkaWNhbFNlcnZpY2U6IE1lZGljYWxTZXJ2aWNlU3RhdHVzO1xuICBhY2NvdW50TG9jYXRpb246IEFjY291bnRMb2NhdGlvblN0YXR1cztcbiAgbWVkaWNhbEhpc3Rvcnk6IE1lZGljYWxIaXN0b3J5U3RhdHVzO1xuICB5ZXNObzogQm9vbGVhblN0YXR1cztcbiAgYWN0aXZlSW5hY3RpdmU6IEJvb2xlYW5TdGF0dXM7XG4gIGVuYWJsZWREaXNhYmxlZDogQm9vbGVhblN0YXR1cztcbiAgdmFsaWRJbnZhbGlkOiBCb29sZWFuU3RhdHVzO1xufTtcblxuLyoqXG4gKiBNZXRhZGF0YSByZWdpc3RyeSBtYXBwaW5nIGZlYXR1cmVzIHRvIHRoZWlyIHN0YXR1cyBjb25maWd1cmF0aW9uc1xuICovXG5jb25zdCBNRVRBREFUQV9SRUdJU1RSWTogUmVjb3JkPFN0YXR1c0ZlYXR1cmUsIFJlY29yZDxzdHJpbmcgfCBudW1iZXIsIFN0YXR1c01ldGFkYXRhPj4gPSB7XG4gIG1lZGljYWxTZXJ2aWNlOiBNRURJQ0FMX1NFUlZJQ0VfU1RBVFVTX01FVEFEQVRBLFxuICBhY2NvdW50TG9jYXRpb246IEFDQ09VTlRfTE9DQVRJT05fU1RBVFVTX01FVEFEQVRBLFxuICBtZWRpY2FsSGlzdG9yeTogTUVESUNBTF9ISVNUT1JZX1NUQVRVU19NRVRBREFUQSxcbiAgeWVzTm86IEJPT0xFQU5fTUVUQURBVEFfUkVHSVNUUlkueWVzTm8sXG4gIGFjdGl2ZUluYWN0aXZlOiBCT09MRUFOX01FVEFEQVRBX1JFR0lTVFJZLmFjdGl2ZUluYWN0aXZlLFxuICBlbmFibGVkRGlzYWJsZWQ6IEJPT0xFQU5fTUVUQURBVEFfUkVHSVNUUlkuZW5hYmxlZERpc2FibGVkLFxuICB2YWxpZEludmFsaWQ6IEJPT0xFQU5fTUVUQURBVEFfUkVHSVNUUlkudmFsaWRJbnZhbGlkLFxufTtcblxuLyoqXG4gKiBHZXQgc3RhdHVzIG1ldGFkYXRhIGZvciBhIHNwZWNpZmljIGZlYXR1cmUgYW5kIHN0YXR1c1xuICogQHBhcmFtIGZlYXR1cmUgLSBUaGUgZmVhdHVyZSBuYW1lIChlLmcuLCAnbWVkaWNhbFNlcnZpY2UnLCAnYWNjb3VudExvY2F0aW9uJylcbiAqIEBwYXJhbSBzdGF0dXMgLSBUaGUgc3RhdHVzIHZhbHVlXG4gKiBAcmV0dXJucyBUaGUgY29tcGxldGUgU3RhdHVzTWV0YWRhdGEgZm9yIHRoZSBnaXZlbiBmZWF0dXJlIGFuZCBzdGF0dXNcbiAqIEB0aHJvd3MgRXJyb3IgaWYgZmVhdHVyZSBvciBzdGF0dXMgaXMgbm90IGZvdW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGF0dXNNZXRhZGF0YUZvckZlYXR1cmU8VCBleHRlbmRzIFN0YXR1c0ZlYXR1cmU+KFxuICBmZWF0dXJlOiBULFxuICBzdGF0dXM6IFN0YXR1c1R5cGVNYXBbVF0sXG4pOiBTdGF0dXNNZXRhZGF0YSB7XG4gIGNvbnN0IHJlZ2lzdHJ5ID0gTUVUQURBVEFfUkVHSVNUUllbZmVhdHVyZV07XG4gIGlmICghcmVnaXN0cnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gc3RhdHVzIGZlYXR1cmU6ICR7ZmVhdHVyZX1gKTtcbiAgfVxuXG4gIGNvbnN0IG1ldGFkYXRhID0gcmVnaXN0cnlbc3RhdHVzXTtcbiAgaWYgKCFtZXRhZGF0YSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBzdGF0dXMgZm9yIGZlYXR1cmUgJHtmZWF0dXJlfTogJHtzdGF0dXN9YCk7XG4gIH1cblxuICByZXR1cm4gbWV0YWRhdGE7XG59XG5cbi8qKlxuICogR2V0IHN0YXR1cyBpY29uIGZvciBhIHNwZWNpZmljIGZlYXR1cmUgYW5kIHN0YXR1c1xuICogQHBhcmFtIGZlYXR1cmUgLSBUaGUgZmVhdHVyZSBuYW1lXG4gKiBAcGFyYW0gc3RhdHVzIC0gVGhlIHN0YXR1cyB2YWx1ZVxuICogQHJldHVybnMgVGhlIE1hdGVyaWFsIGljb24gbmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhdHVzSWNvbkZvckZlYXR1cmU8VCBleHRlbmRzIFN0YXR1c0ZlYXR1cmU+KGZlYXR1cmU6IFQsIHN0YXR1czogU3RhdHVzVHlwZU1hcFtUXSk6IHN0cmluZyB7XG4gIHJldHVybiBnZXRTdGF0dXNNZXRhZGF0YUZvckZlYXR1cmUoZmVhdHVyZSwgc3RhdHVzKS5pY29uO1xufVxuXG4vKipcbiAqIEdldCBzdGF0dXMgY29sb3IgZm9yIGEgc3BlY2lmaWMgZmVhdHVyZSBhbmQgc3RhdHVzXG4gKiBAcGFyYW0gZmVhdHVyZSAtIFRoZSBmZWF0dXJlIG5hbWVcbiAqIEBwYXJhbSBzdGF0dXMgLSBUaGUgc3RhdHVzIHZhbHVlXG4gKiBAcmV0dXJucyBUaGUgaGV4IGNvbG9yIGNvZGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXR1c0NvbG9yRm9yRmVhdHVyZTxUIGV4dGVuZHMgU3RhdHVzRmVhdHVyZT4oZmVhdHVyZTogVCwgc3RhdHVzOiBTdGF0dXNUeXBlTWFwW1RdKTogc3RyaW5nIHtcbiAgcmV0dXJuIGdldFN0YXR1c01ldGFkYXRhRm9yRmVhdHVyZShmZWF0dXJlLCBzdGF0dXMpLmNvbG9yO1xufVxuXG4vKipcbiAqIEdldCBzdGF0dXMgbGFiZWwgZm9yIGEgc3BlY2lmaWMgZmVhdHVyZSBhbmQgc3RhdHVzXG4gKiBAcGFyYW0gZmVhdHVyZSAtIFRoZSBmZWF0dXJlIG5hbWVcbiAqIEBwYXJhbSBzdGF0dXMgLSBUaGUgc3RhdHVzIHZhbHVlXG4gKiBAcGFyYW0gbG9jYWxlIC0gVGhlIGxhbmd1YWdlIGxvY2FsZSAoZGVmYXVsdDogJ3VzLUVOJylcbiAqIEBwYXJhbSBmb3JtYXQgLSBMYWJlbCBmb3JtYXQ6ICdzaG9ydCcgb3IgJ2xvbmcnIChkZWZhdWx0OiAnc2hvcnQnKVxuICogQHJldHVybnMgVGhlIHRyYW5zbGF0ZWQgbGFiZWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXR1c0xhYmVsRm9yRmVhdHVyZTxUIGV4dGVuZHMgU3RhdHVzRmVhdHVyZT4oXG4gIGZlYXR1cmU6IFQsXG4gIHN0YXR1czogU3RhdHVzVHlwZU1hcFtUXSxcbiAgbG9jYWxlOiBMb2NhbGUgPSAndXMtRU4nLFxuICBmb3JtYXQ6ICdzaG9ydCcgfCAnbG9uZycgPSAnc2hvcnQnLFxuKTogc3RyaW5nIHtcbiAgY29uc3QgbWV0YWRhdGEgPSBnZXRTdGF0dXNNZXRhZGF0YUZvckZlYXR1cmUoZmVhdHVyZSwgc3RhdHVzKTtcbiAgcmV0dXJuIG1ldGFkYXRhLmxhYmVsW2Zvcm1hdF1bbG9jYWxlXTtcbn1cblxuLyoqXG4gKiBHZXQgc3RhdHVzIGRlc2NyaXB0aW9uIGZvciBhIHNwZWNpZmljIGZlYXR1cmUgYW5kIHN0YXR1c1xuICogQHBhcmFtIGZlYXR1cmUgLSBUaGUgZmVhdHVyZSBuYW1lXG4gKiBAcGFyYW0gc3RhdHVzIC0gVGhlIHN0YXR1cyB2YWx1ZVxuICogQHBhcmFtIGxvY2FsZSAtIFRoZSBsYW5ndWFnZSBsb2NhbGUgKGRlZmF1bHQ6ICd1cy1FTicpXG4gKiBAcmV0dXJucyBUaGUgdHJhbnNsYXRlZCBkZXNjcmlwdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhdHVzRGVzY3JpcHRpb25Gb3JGZWF0dXJlPFQgZXh0ZW5kcyBTdGF0dXNGZWF0dXJlPihcbiAgZmVhdHVyZTogVCxcbiAgc3RhdHVzOiBTdGF0dXNUeXBlTWFwW1RdLFxuICBsb2NhbGU6IExvY2FsZSA9ICd1cy1FTicsXG4pOiBzdHJpbmcge1xuICByZXR1cm4gZ2V0U3RhdHVzTWV0YWRhdGFGb3JGZWF0dXJlKGZlYXR1cmUsIHN0YXR1cykuZGVzY3JpcHRpb25bbG9jYWxlXTtcbn1cblxuLyoqXG4gKiBHZXQgYWxsIG1ldGFkYXRhIGZvciBhIHNwZWNpZmljIGZlYXR1cmVcbiAqIEBwYXJhbSBmZWF0dXJlIC0gVGhlIGZlYXR1cmUgbmFtZVxuICogQHJldHVybnMgUmVjb3JkIG9mIGFsbCBzdGF0dXNlcyBhbmQgdGhlaXIgbWV0YWRhdGEgZm9yIHRoZSBmZWF0dXJlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbGxTdGF0dXNNZXRhZGF0YUZvckZlYXR1cmU8VCBleHRlbmRzIFN0YXR1c0ZlYXR1cmU+KFxuICBmZWF0dXJlOiBULFxuKTogUmVjb3JkPFN0YXR1c1R5cGVNYXBbVF0sIFN0YXR1c01ldGFkYXRhPiB7XG4gIGNvbnN0IHJlZ2lzdHJ5ID0gTUVUQURBVEFfUkVHSVNUUllbZmVhdHVyZV07XG4gIGlmICghcmVnaXN0cnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gc3RhdHVzIGZlYXR1cmU6ICR7ZmVhdHVyZX1gKTtcbiAgfVxuICByZXR1cm4gcmVnaXN0cnkgYXMgUmVjb3JkPFN0YXR1c1R5cGVNYXBbVF0sIFN0YXR1c01ldGFkYXRhPjtcbn1cblxuLyoqXG4gKiBHZXQgYWxsIHN0YXR1c2VzIGZvciBhIHNwZWNpZmljIGZlYXR1cmVcbiAqIEBwYXJhbSBmZWF0dXJlIC0gVGhlIGZlYXR1cmUgbmFtZVxuICogQHJldHVybnMgQXJyYXkgb2YgYWxsIHN0YXR1cyB2YWx1ZXMgZm9yIHRoZSBmZWF0dXJlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbGxTdGF0dXNlc0ZvckZlYXR1cmU8VCBleHRlbmRzIFN0YXR1c0ZlYXR1cmU+KGZlYXR1cmU6IFQpOiBTdGF0dXNUeXBlTWFwW1RdW10ge1xuICBjb25zdCBtZXRhZGF0YSA9IGdldEFsbFN0YXR1c01ldGFkYXRhRm9yRmVhdHVyZShmZWF0dXJlKTtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG1ldGFkYXRhKSBhcyBTdGF0dXNUeXBlTWFwW1RdW107XG59XG5cbi8qKlxuICogR2V0IGFsbCBhdmFpbGFibGUgc3RhdHVzIGZlYXR1cmVzXG4gKiBAcmV0dXJucyBBcnJheSBvZiBhbGwgZmVhdHVyZSBuYW1lc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxsRmVhdHVyZXMoKTogU3RhdHVzRmVhdHVyZVtdIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKE1FVEFEQVRBX1JFR0lTVFJZKSBhcyBTdGF0dXNGZWF0dXJlW107XG59XG5cbi8qKlxuICogR2V0IGFsbCBtZXRhZGF0YSBhY3Jvc3MgYWxsIGZlYXR1cmVzXG4gKiBAcmV0dXJucyBSZWNvcmQgbWFwcGluZyBlYWNoIGZlYXR1cmUgdG8gaXRzIGNvbXBsZXRlIG1ldGFkYXRhIHJlZ2lzdHJ5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbGxNZXRhZGF0YSgpOiBSZWNvcmQ8U3RhdHVzRmVhdHVyZSwgUmVjb3JkPHN0cmluZyB8IG51bWJlciwgU3RhdHVzTWV0YWRhdGE+PiB7XG4gIHJldHVybiB7IC4uLk1FVEFEQVRBX1JFR0lTVFJZIH07XG59XG5cbi8qKlxuICogRmlsdGVyIHN0YXR1c2VzIGJ5IGNyaXRlcmlhXG4gKiBAcGFyYW0gZmVhdHVyZSAtIFRoZSBmZWF0dXJlIG5hbWVcbiAqIEBwYXJhbSBwcmVkaWNhdGUgLSBGdW5jdGlvbiB0byB0ZXN0IGVhY2ggc3RhdHVzIG1ldGFkYXRhXG4gKiBAcmV0dXJucyBBcnJheSBvZiBzdGF0dXNlcyB0aGF0IG1hdGNoIHRoZSBwcmVkaWNhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlclN0YXR1c2VzQnlGZWF0dXJlPFQgZXh0ZW5kcyBTdGF0dXNGZWF0dXJlPihcbiAgZmVhdHVyZTogVCxcbiAgcHJlZGljYXRlOiAobWV0YWRhdGE6IFN0YXR1c01ldGFkYXRhLCBzdGF0dXM6IFN0YXR1c1R5cGVNYXBbVF0pID0+IGJvb2xlYW4sXG4pOiBTdGF0dXNUeXBlTWFwW1RdW10ge1xuICBjb25zdCBtZXRhZGF0YSA9IGdldEFsbFN0YXR1c01ldGFkYXRhRm9yRmVhdHVyZShmZWF0dXJlKTtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG1ldGFkYXRhKVxuICAgIC5maWx0ZXIoKFtzdGF0dXMsIG1ldGFdKSA9PiBwcmVkaWNhdGUobWV0YSBhcyBTdGF0dXNNZXRhZGF0YSwgc3RhdHVzIGFzIFN0YXR1c1R5cGVNYXBbVF0pKVxuICAgIC5tYXAoKFtzdGF0dXNdKSA9PiBzdGF0dXMgYXMgU3RhdHVzVHlwZU1hcFtUXSk7XG59XG5cbi8qKlxuICogTWFwIHN0YXR1c2VzIHRvIGEgc3BlY2lmaWMgdmFsdWUgdXNpbmcgYSB0cmFuc2Zvcm0gZnVuY3Rpb25cbiAqIEBwYXJhbSBmZWF0dXJlIC0gVGhlIGZlYXR1cmUgbmFtZVxuICogQHBhcmFtIHRyYW5zZm9ybSAtIEZ1bmN0aW9uIHRvIHRyYW5zZm9ybSBlYWNoIHN0YXR1cyBtZXRhZGF0YVxuICogQHJldHVybnMgUmVjb3JkIG9mIHN0YXR1c2VzIG1hcHBlZCB0byB0aGUgdHJhbnNmb3JtZWQgdmFsdWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXBTdGF0dXNlc0J5RmVhdHVyZTxUIGV4dGVuZHMgU3RhdHVzRmVhdHVyZSwgVT4oXG4gIGZlYXR1cmU6IFQsXG4gIHRyYW5zZm9ybTogKG1ldGFkYXRhOiBTdGF0dXNNZXRhZGF0YSwgc3RhdHVzOiBTdGF0dXNUeXBlTWFwW1RdKSA9PiBVLFxuKTogUmVjb3JkPFN0YXR1c1R5cGVNYXBbVF0sIFU+IHtcbiAgY29uc3QgbWV0YWRhdGEgPSBnZXRBbGxTdGF0dXNNZXRhZGF0YUZvckZlYXR1cmUoZmVhdHVyZSk7XG4gIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgVT4gPSB7fTtcblxuICBPYmplY3QuZW50cmllcyhtZXRhZGF0YSkuZm9yRWFjaCgoW3N0YXR1cywgbWV0YV0pID0+IHtcbiAgICByZXN1bHRbc3RhdHVzXSA9IHRyYW5zZm9ybShtZXRhIGFzIFN0YXR1c01ldGFkYXRhLCBzdGF0dXMgYXMgU3RhdHVzVHlwZU1hcFtUXSk7XG4gIH0pO1xuXG4gIHJldHVybiByZXN1bHQgYXMgUmVjb3JkPFN0YXR1c1R5cGVNYXBbVF0sIFU+O1xufVxuXG4vKipcbiAqIEdldCBzdGF0dXMgbWV0YWRhdGEgd2l0aCBjb21wdXRlZCBwcm9wZXJ0aWVzXG4gKiBAcGFyYW0gZmVhdHVyZSAtIFRoZSBmZWF0dXJlIG5hbWVcbiAqIEBwYXJhbSBzdGF0dXMgLSBUaGUgc3RhdHVzIHZhbHVlXG4gKiBAcGFyYW0gbG9jYWxlIC0gVGhlIGxhbmd1YWdlIGxvY2FsZVxuICogQHJldHVybnMgRXh0ZW5kZWQgbWV0YWRhdGEgd2l0aCBjb21wdXRlZCBsYWJlbHMgYW5kIGRlc2NyaXB0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5kZWRTdGF0dXNNZXRhZGF0YSBleHRlbmRzIE9taXQ8U3RhdHVzTWV0YWRhdGEsICdkZXNjcmlwdGlvbic+IHtcbiAgc2hvcnRMYWJlbDogc3RyaW5nO1xuICBsb25nTGFiZWw6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV4dGVuZGVkU3RhdHVzTWV0YWRhdGFGb3JGZWF0dXJlPFQgZXh0ZW5kcyBTdGF0dXNGZWF0dXJlPihcbiAgZmVhdHVyZTogVCxcbiAgc3RhdHVzOiBTdGF0dXNUeXBlTWFwW1RdLFxuICBsb2NhbGU6IExvY2FsZSA9ICd1cy1FTicsXG4pOiBFeHRlbmRlZFN0YXR1c01ldGFkYXRhIHtcbiAgY29uc3QgbWV0YWRhdGEgPSBnZXRTdGF0dXNNZXRhZGF0YUZvckZlYXR1cmUoZmVhdHVyZSwgc3RhdHVzKTtcblxuICByZXR1cm4ge1xuICAgIGljb246IG1ldGFkYXRhLmljb24sXG4gICAgY29sb3I6IG1ldGFkYXRhLmNvbG9yLFxuICAgIGxhYmVsOiBtZXRhZGF0YS5sYWJlbCxcbiAgICBzaG9ydExhYmVsOiBtZXRhZGF0YS5sYWJlbC5zaG9ydFtsb2NhbGVdLFxuICAgIGxvbmdMYWJlbDogbWV0YWRhdGEubGFiZWwubG9uZ1tsb2NhbGVdLFxuICAgIGRlc2NyaXB0aW9uOiBtZXRhZGF0YS5kZXNjcmlwdGlvbltsb2NhbGVdLFxuICB9O1xufVxuXG4vKipcbiAqIFNlYXJjaCBzdGF0dXNlcyBieSBsYWJlbFxuICogQHBhcmFtIGZlYXR1cmUgLSBUaGUgZmVhdHVyZSBuYW1lXG4gKiBAcGFyYW0gc2VhcmNoVGVybSAtIFRoZSBzZWFyY2ggdGVybSAoY2FzZS1pbnNlbnNpdGl2ZSlcbiAqIEBwYXJhbSBsb2NhbGUgLSBUaGUgbGFuZ3VhZ2UgbG9jYWxlXG4gKiBAcmV0dXJucyBBcnJheSBvZiBzdGF0dXNlcyBtYXRjaGluZyB0aGUgc2VhcmNoIHRlcm1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlYXJjaFN0YXR1c2VzQnlGZWF0dXJlPFQgZXh0ZW5kcyBTdGF0dXNGZWF0dXJlPihcbiAgZmVhdHVyZTogVCxcbiAgc2VhcmNoVGVybTogc3RyaW5nLFxuICBsb2NhbGU6IExvY2FsZSA9ICd1cy1FTicsXG4pOiBTdGF0dXNUeXBlTWFwW1RdW10ge1xuICBjb25zdCBsb3dlclNlYXJjaCA9IHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKTtcblxuICByZXR1cm4gZmlsdGVyU3RhdHVzZXNCeUZlYXR1cmUoZmVhdHVyZSwgKG1ldGFkYXRhKSA9PiB7XG4gICAgY29uc3Qgc2hvcnRMYWJlbCA9IG1ldGFkYXRhLmxhYmVsLnNob3J0W2xvY2FsZV0udG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBsb25nTGFiZWwgPSBtZXRhZGF0YS5sYWJlbC5sb25nW2xvY2FsZV0udG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IG1ldGFkYXRhLmRlc2NyaXB0aW9uW2xvY2FsZV0udG9Mb3dlckNhc2UoKTtcblxuICAgIHJldHVybiBzaG9ydExhYmVsLmluY2x1ZGVzKGxvd2VyU2VhcmNoKSB8fCBsb25nTGFiZWwuaW5jbHVkZXMobG93ZXJTZWFyY2gpIHx8IGRlc2NyaXB0aW9uLmluY2x1ZGVzKGxvd2VyU2VhcmNoKTtcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IHN0YXR1cyBtZXRhZGF0YSBncm91cGVkIGJ5IGNvbG9yXG4gKiBAcGFyYW0gZmVhdHVyZSAtIFRoZSBmZWF0dXJlIG5hbWVcbiAqIEByZXR1cm5zIFJlY29yZCBvZiBjb2xvcnMgbWFwcGVkIHRvIGFycmF5cyBvZiBzdGF0dXNlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ3JvdXBTdGF0dXNlc0J5Q29sb3JGb3JGZWF0dXJlPFQgZXh0ZW5kcyBTdGF0dXNGZWF0dXJlPihcbiAgZmVhdHVyZTogVCxcbik6IFJlY29yZDxzdHJpbmcsIFN0YXR1c1R5cGVNYXBbVF1bXT4ge1xuICBjb25zdCBtZXRhZGF0YSA9IGdldEFsbFN0YXR1c01ldGFkYXRhRm9yRmVhdHVyZShmZWF0dXJlKTtcbiAgY29uc3QgZ3JvdXBlZDogUmVjb3JkPHN0cmluZywgU3RhdHVzVHlwZU1hcFtUXVtdPiA9IHt9O1xuXG4gIE9iamVjdC5lbnRyaWVzKG1ldGFkYXRhKS5mb3JFYWNoKChbc3RhdHVzLCBtZXRhXSkgPT4ge1xuICAgIGNvbnN0IG1ldGFUeXBlZCA9IG1ldGEgYXMgU3RhdHVzTWV0YWRhdGE7XG4gICAgaWYgKCFncm91cGVkW21ldGFUeXBlZC5jb2xvcl0pIHtcbiAgICAgIGdyb3VwZWRbbWV0YVR5cGVkLmNvbG9yXSA9IFtdO1xuICAgIH1cbiAgICBncm91cGVkW21ldGFUeXBlZC5jb2xvcl0ucHVzaChzdGF0dXMgYXMgU3RhdHVzVHlwZU1hcFtUXSk7XG4gIH0pO1xuXG4gIHJldHVybiBncm91cGVkO1xufVxuXG4vKipcbiAqIEdldCBzdGF0dXMgbWV0YWRhdGEgZ3JvdXBlZCBieSBpY29uXG4gKiBAcGFyYW0gZmVhdHVyZSAtIFRoZSBmZWF0dXJlIG5hbWVcbiAqIEByZXR1cm5zIFJlY29yZCBvZiBpY29ucyBtYXBwZWQgdG8gYXJyYXlzIG9mIHN0YXR1c2VzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBncm91cFN0YXR1c2VzQnlJY29uRm9yRmVhdHVyZTxUIGV4dGVuZHMgU3RhdHVzRmVhdHVyZT4oZmVhdHVyZTogVCk6IFJlY29yZDxzdHJpbmcsIFN0YXR1c1R5cGVNYXBbVF1bXT4ge1xuICBjb25zdCBtZXRhZGF0YSA9IGdldEFsbFN0YXR1c01ldGFkYXRhRm9yRmVhdHVyZShmZWF0dXJlKTtcbiAgY29uc3QgZ3JvdXBlZDogUmVjb3JkPHN0cmluZywgU3RhdHVzVHlwZU1hcFtUXVtdPiA9IHt9O1xuXG4gIE9iamVjdC5lbnRyaWVzKG1ldGFkYXRhKS5mb3JFYWNoKChbc3RhdHVzLCBtZXRhXSkgPT4ge1xuICAgIGNvbnN0IG1ldGFUeXBlZCA9IG1ldGEgYXMgU3RhdHVzTWV0YWRhdGE7XG4gICAgaWYgKCFncm91cGVkW21ldGFUeXBlZC5pY29uXSkge1xuICAgICAgZ3JvdXBlZFttZXRhVHlwZWQuaWNvbl0gPSBbXTtcbiAgICB9XG4gICAgZ3JvdXBlZFttZXRhVHlwZWQuaWNvbl0ucHVzaChzdGF0dXMgYXMgU3RhdHVzVHlwZU1hcFtUXSk7XG4gIH0pO1xuXG4gIHJldHVybiBncm91cGVkO1xufVxuIl19
|
|
220
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RhdHVzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7O0FBK0RILGtFQWVDO0FBUUQsMERBRUM7QUFRRCw0REFFQztBQVVELDREQVFDO0FBU0Qsd0VBTUM7QUFPRCx3RUFRQztBQU9ELDREQUdDO0FBTUQsd0NBRUM7QUFNRCx3Q0FFQztBQVFELDBEQVFDO0FBUUQsb0RBWUM7QUFlRCxrRkFlQztBQVNELDBEQWNDO0FBT0Qsd0VBZUM7QUFPRCxzRUFhQztBQXhTRCxxREFBNkQ7QUFDN0QsdUVBQTZFO0FBQzdFLHFFQUEyRTtBQUMzRSxxRUFBMkU7QUErQjNFOztHQUVHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBbUU7SUFDeEYsY0FBYyxFQUFFLHdEQUErQjtJQUMvQyxlQUFlLEVBQUUsMERBQWdDO0lBQ2pELGNBQWMsRUFBRSx3REFBK0I7SUFDL0MsS0FBSyxFQUFFLDBDQUF5QixDQUFDLEtBQUs7SUFDdEMsY0FBYyxFQUFFLDBDQUF5QixDQUFDLGNBQWM7SUFDeEQsZUFBZSxFQUFFLDBDQUF5QixDQUFDLGVBQWU7SUFDMUQsWUFBWSxFQUFFLDBDQUF5QixDQUFDLFlBQVk7SUFDcEQsa0JBQWtCLEVBQUUsMENBQXlCLENBQUMsa0JBQWtCO0lBQ2hFLHVCQUF1QixFQUFFLDBDQUF5QixDQUFDLHVCQUF1QjtDQUMzRSxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQ3pDLE9BQVUsRUFDVixNQUF3QjtJQUV4QixNQUFNLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsT0FBTyxLQUFLLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLHVCQUF1QixDQUEwQixPQUFVLEVBQUUsTUFBd0I7SUFDbkcsT0FBTywyQkFBMkIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzNELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLHdCQUF3QixDQUEwQixPQUFVLEVBQUUsTUFBd0I7SUFDcEcsT0FBTywyQkFBMkIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQzVELENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQ3RDLE9BQVUsRUFDVixNQUF3QixFQUN4QixTQUFpQixPQUFPLEVBQ3hCLFNBQTJCLE9BQU87SUFFbEMsTUFBTSxRQUFRLEdBQUcsMkJBQTJCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlELE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsOEJBQThCLENBQzVDLE9BQVUsRUFDVixNQUF3QixFQUN4QixTQUFpQixPQUFPO0lBRXhCLE9BQU8sMkJBQTJCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMxRSxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLDhCQUE4QixDQUM1QyxPQUFVO0lBRVYsTUFBTSxRQUFRLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBQ0QsT0FBTyxRQUFvRCxDQUFDO0FBQzlELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQTBCLE9BQVU7SUFDMUUsTUFBTSxRQUFRLEdBQUcsOEJBQThCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBdUIsQ0FBQztBQUNyRCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsY0FBYztJQUM1QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQW9CLENBQUM7QUFDM0QsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLGNBQWM7SUFDNUIsT0FBTyxFQUFFLEdBQUcsaUJBQWlCLEVBQUUsQ0FBQztBQUNsQyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQix1QkFBdUIsQ0FDckMsT0FBVSxFQUNWLFNBQTBFO0lBRTFFLE1BQU0sUUFBUSxHQUFHLDhCQUE4QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7U0FDNUIsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFzQixFQUFFLE1BQTBCLENBQUMsQ0FBQztTQUN6RixHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUEwQixDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQ2xDLE9BQVUsRUFDVixTQUFvRTtJQUVwRSxNQUFNLFFBQVEsR0FBRyw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxNQUFNLE1BQU0sR0FBc0IsRUFBRSxDQUFDO0lBRXJDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtRQUNsRCxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLElBQXNCLEVBQUUsTUFBMEIsQ0FBQyxDQUFDO0lBQ2pGLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxNQUFxQyxDQUFDO0FBQy9DLENBQUM7QUFlRCxTQUFnQixtQ0FBbUMsQ0FDakQsT0FBVSxFQUNWLE1BQXdCLEVBQ3hCLFNBQWlCLE9BQU87SUFFeEIsTUFBTSxRQUFRLEdBQUcsMkJBQTJCLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRTlELE9BQU87UUFDTCxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUk7UUFDbkIsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLO1FBQ3JCLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztRQUNyQixVQUFVLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ3hDLFNBQVMsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdEMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO0tBQzFDLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQ3JDLE9BQVUsRUFDVixVQUFrQixFQUNsQixTQUFpQixPQUFPO0lBRXhCLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUU3QyxPQUFPLHVCQUF1QixDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFO1FBQ25ELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzlELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzVELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFL0QsT0FBTyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsOEJBQThCLENBQzVDLE9BQVU7SUFFVixNQUFNLFFBQVEsR0FBRyw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxNQUFNLE9BQU8sR0FBdUMsRUFBRSxDQUFDO0lBRXZELE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtRQUNsRCxNQUFNLFNBQVMsR0FBRyxJQUFzQixDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDaEMsQ0FBQztRQUNELE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQTBCLENBQUMsQ0FBQztJQUM1RCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsNkJBQTZCLENBQTBCLE9BQVU7SUFDL0UsTUFBTSxRQUFRLEdBQUcsOEJBQThCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekQsTUFBTSxPQUFPLEdBQXVDLEVBQUUsQ0FBQztJQUV2RCxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7UUFDbEQsTUFBTSxTQUFTLEdBQUcsSUFBc0IsQ0FBQztRQUN6QyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzdCLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQy9CLENBQUM7UUFDRCxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUEwQixDQUFDLENBQUM7SUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTdGF0dXMgdXRpbGl0aWVzIGZvciBleHRyYWN0aW5nIGFuZCBxdWVyeWluZyBzdGF0dXMgbWV0YWRhdGFcbiAqIFByb3ZpZGVzIGNvbW1vbiBmdW5jdGlvbnMgdG8gd29yayB3aXRoIHN0YXR1cyBjb25maWd1cmF0aW9uc1xuICovXG5cbmltcG9ydCB0eXBlIHsgQm9vbGVhblN0YXR1cyB9IGZyb20gJy4vYm9vbGVhbi1zdGF0dXMnO1xuaW1wb3J0IHR5cGUgeyBBY2NvdW50TG9jYXRpb25TdGF0dXMgfSBmcm9tICcuL2FjY291bnQtbG9jYXRpb24tc3RhdHVzJztcbmltcG9ydCB0eXBlIHsgTWVkaWNhbEhpc3RvcnlTdGF0dXMgfSBmcm9tICcuL21lZGljYWwtaGlzdG9yeS1zdGF0dXMnO1xuaW1wb3J0IHR5cGUgeyBNZWRpY2FsU2VydmljZVN0YXR1cyB9IGZyb20gJy4vbWVkaWNhbC1zZXJ2aWNlLXN0YXR1cyc7XG5pbXBvcnQgdHlwZSB7IFN0YXR1c01ldGFkYXRhLCBMb2NhbGUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEJPT0xFQU5fTUVUQURBVEFfUkVHSVNUUlkgfSBmcm9tICcuL2Jvb2xlYW4tc3RhdHVzJztcbmltcG9ydCB7IEFDQ09VTlRfTE9DQVRJT05fU1RBVFVTX01FVEFEQVRBIH0gZnJvbSAnLi9hY2NvdW50LWxvY2F0aW9uLXN0YXR1cyc7XG5pbXBvcnQgeyBNRURJQ0FMX0hJU1RPUllfU1RBVFVTX01FVEFEQVRBIH0gZnJvbSAnLi9tZWRpY2FsLWhpc3Rvcnktc3RhdHVzJztcbmltcG9ydCB7IE1FRElDQUxfU0VSVklDRV9TVEFUVVNfTUVUQURBVEEgfSBmcm9tICcuL21lZGljYWwtc2VydmljZS1zdGF0dXMnO1xuXG4vKipcbiAqIEZlYXR1cmUgdHlwZSBmb3Igc3RhdHVzIHNlbGVjdGlvblxuICovXG5leHBvcnQgdHlwZSBTdGF0dXNGZWF0dXJlID1cbiAgfCAnbWVkaWNhbFNlcnZpY2UnXG4gIHwgJ2FjY291bnRMb2NhdGlvbidcbiAgfCAnbWVkaWNhbEhpc3RvcnknXG4gIHwgJ3llc05vJ1xuICB8ICdhY3RpdmVJbmFjdGl2ZSdcbiAgfCAnZW5hYmxlZERpc2FibGVkJ1xuICB8ICd2YWxpZEludmFsaWQnXG4gIHwgJ3ZlcmlmaWVkVW52ZXJpZmllZCdcbiAgfCAnc3Vic2NyaWJlZE5vdFN1YnNjcmliZWQnO1xuXG4vKipcbiAqIFN0YXR1cyB0eXBlIG1hcHBpbmcgZm9yIGVhY2ggZmVhdHVyZVxuICovXG5leHBvcnQgdHlwZSBTdGF0dXNUeXBlTWFwID0ge1xuICBtZWRpY2FsU2VydmljZTogTWVkaWNhbFNlcnZpY2VTdGF0dXM7XG4gIGFjY291bnRMb2NhdGlvbjogQWNjb3VudExvY2F0aW9uU3RhdHVzO1xuICBtZWRpY2FsSGlzdG9yeTogTWVkaWNhbEhpc3RvcnlTdGF0dXM7XG4gIHllc05vOiBCb29sZWFuU3RhdHVzO1xuICBhY3RpdmVJbmFjdGl2ZTogQm9vbGVhblN0YXR1cztcbiAgZW5hYmxlZERpc2FibGVkOiBCb29sZWFuU3RhdHVzO1xuICB2YWxpZEludmFsaWQ6IEJvb2xlYW5TdGF0dXM7XG4gIHZlcmlmaWVkVW52ZXJpZmllZDogQm9vbGVhblN0YXR1cztcbiAgc3Vic2NyaWJlZE5vdFN1YnNjcmliZWQ6IEJvb2xlYW5TdGF0dXM7XG59O1xuXG4vKipcbiAqIE1ldGFkYXRhIHJlZ2lzdHJ5IG1hcHBpbmcgZmVhdHVyZXMgdG8gdGhlaXIgc3RhdHVzIGNvbmZpZ3VyYXRpb25zXG4gKi9cbmNvbnN0IE1FVEFEQVRBX1JFR0lTVFJZOiBSZWNvcmQ8U3RhdHVzRmVhdHVyZSwgUmVjb3JkPHN0cmluZyB8IG51bWJlciwgU3RhdHVzTWV0YWRhdGE+PiA9IHtcbiAgbWVkaWNhbFNlcnZpY2U6IE1FRElDQUxfU0VSVklDRV9TVEFUVVNfTUVUQURBVEEsXG4gIGFjY291bnRMb2NhdGlvbjogQUNDT1VOVF9MT0NBVElPTl9TVEFUVVNfTUVUQURBVEEsXG4gIG1lZGljYWxIaXN0b3J5OiBNRURJQ0FMX0hJU1RPUllfU1RBVFVTX01FVEFEQVRBLFxuICB5ZXNObzogQk9PTEVBTl9NRVRBREFUQV9SRUdJU1RSWS55ZXNObyxcbiAgYWN0aXZlSW5hY3RpdmU6IEJPT0xFQU5fTUVUQURBVEFfUkVHSVNUUlkuYWN0aXZlSW5hY3RpdmUsXG4gIGVuYWJsZWREaXNhYmxlZDogQk9PTEVBTl9NRVRBREFUQV9SRUdJU1RSWS5lbmFibGVkRGlzYWJsZWQsXG4gIHZhbGlkSW52YWxpZDogQk9PTEVBTl9NRVRBREFUQV9SRUdJU1RSWS52YWxpZEludmFsaWQsXG4gIHZlcmlmaWVkVW52ZXJpZmllZDogQk9PTEVBTl9NRVRBREFUQV9SRUdJU1RSWS52ZXJpZmllZFVudmVyaWZpZWQsXG4gIHN1YnNjcmliZWROb3RTdWJzY3JpYmVkOiBCT09MRUFOX01FVEFEQVRBX1JFR0lTVFJZLnN1YnNjcmliZWROb3RTdWJzY3JpYmVkLFxufTtcblxuLyoqXG4gKiBHZXQgc3RhdHVzIG1ldGFkYXRhIGZvciBhIHNwZWNpZmljIGZlYXR1cmUgYW5kIHN0YXR1c1xuICogQHBhcmFtIGZlYXR1cmUgLSBUaGUgZmVhdHVyZSBuYW1lIChlLmcuLCAnbWVkaWNhbFNlcnZpY2UnLCAnYWNjb3VudExvY2F0aW9uJylcbiAqIEBwYXJhbSBzdGF0dXMgLSBUaGUgc3RhdHVzIHZhbHVlXG4gKiBAcmV0dXJucyBUaGUgY29tcGxldGUgU3RhdHVzTWV0YWRhdGEgZm9yIHRoZSBnaXZlbiBmZWF0dXJlIGFuZCBzdGF0dXNcbiAqIEB0aHJvd3MgRXJyb3IgaWYgZmVhdHVyZSBvciBzdGF0dXMgaXMgbm90IGZvdW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGF0dXNNZXRhZGF0YUZvckZlYXR1cmU8VCBleHRlbmRzIFN0YXR1c0ZlYXR1cmU+KFxuICBmZWF0dXJlOiBULFxuICBzdGF0dXM6IFN0YXR1c1R5cGVNYXBbVF0sXG4pOiBTdGF0dXNNZXRhZGF0YSB7XG4gIGNvbnN0IHJlZ2lzdHJ5ID0gTUVUQURBVEFfUkVHSVNUUllbZmVhdHVyZV07XG4gIGlmICghcmVnaXN0cnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gc3RhdHVzIGZlYXR1cmU6ICR7ZmVhdHVyZX1gKTtcbiAgfVxuXG4gIGNvbnN0IG1ldGFkYXRhID0gcmVnaXN0cnlbc3RhdHVzXTtcbiAgaWYgKCFtZXRhZGF0YSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBzdGF0dXMgZm9yIGZlYXR1cmUgJHtmZWF0dXJlfTogJHtzdGF0dXN9YCk7XG4gIH1cblxuICByZXR1cm4gbWV0YWRhdGE7XG59XG5cbi8qKlxuICogR2V0IHN0YXR1cyBpY29uIGZvciBhIHNwZWNpZmljIGZlYXR1cmUgYW5kIHN0YXR1c1xuICogQHBhcmFtIGZlYXR1cmUgLSBUaGUgZmVhdHVyZSBuYW1lXG4gKiBAcGFyYW0gc3RhdHVzIC0gVGhlIHN0YXR1cyB2YWx1ZVxuICogQHJldHVybnMgVGhlIE1hdGVyaWFsIGljb24gbmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhdHVzSWNvbkZvckZlYXR1cmU8VCBleHRlbmRzIFN0YXR1c0ZlYXR1cmU+KGZlYXR1cmU6IFQsIHN0YXR1czogU3RhdHVzVHlwZU1hcFtUXSk6IHN0cmluZyB7XG4gIHJldHVybiBnZXRTdGF0dXNNZXRhZGF0YUZvckZlYXR1cmUoZmVhdHVyZSwgc3RhdHVzKS5pY29uO1xufVxuXG4vKipcbiAqIEdldCBzdGF0dXMgY29sb3IgZm9yIGEgc3BlY2lmaWMgZmVhdHVyZSBhbmQgc3RhdHVzXG4gKiBAcGFyYW0gZmVhdHVyZSAtIFRoZSBmZWF0dXJlIG5hbWVcbiAqIEBwYXJhbSBzdGF0dXMgLSBUaGUgc3RhdHVzIHZhbHVlXG4gKiBAcmV0dXJucyBUaGUgaGV4IGNvbG9yIGNvZGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXR1c0NvbG9yRm9yRmVhdHVyZTxUIGV4dGVuZHMgU3RhdHVzRmVhdHVyZT4oZmVhdHVyZTogVCwgc3RhdHVzOiBTdGF0dXNUeXBlTWFwW1RdKTogc3RyaW5nIHtcbiAgcmV0dXJuIGdldFN0YXR1c01ldGFkYXRhRm9yRmVhdHVyZShmZWF0dXJlLCBzdGF0dXMpLmNvbG9yO1xufVxuXG4vKipcbiAqIEdldCBzdGF0dXMgbGFiZWwgZm9yIGEgc3BlY2lmaWMgZmVhdHVyZSBhbmQgc3RhdHVzXG4gKiBAcGFyYW0gZmVhdHVyZSAtIFRoZSBmZWF0dXJlIG5hbWVcbiAqIEBwYXJhbSBzdGF0dXMgLSBUaGUgc3RhdHVzIHZhbHVlXG4gKiBAcGFyYW0gbG9jYWxlIC0gVGhlIGxhbmd1YWdlIGxvY2FsZSAoZGVmYXVsdDogJ3VzLUVOJylcbiAqIEBwYXJhbSBmb3JtYXQgLSBMYWJlbCBmb3JtYXQ6ICdzaG9ydCcgb3IgJ2xvbmcnIChkZWZhdWx0OiAnc2hvcnQnKVxuICogQHJldHVybnMgVGhlIHRyYW5zbGF0ZWQgbGFiZWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXR1c0xhYmVsRm9yRmVhdHVyZTxUIGV4dGVuZHMgU3RhdHVzRmVhdHVyZT4oXG4gIGZlYXR1cmU6IFQsXG4gIHN0YXR1czogU3RhdHVzVHlwZU1hcFtUXSxcbiAgbG9jYWxlOiBMb2NhbGUgPSAndXMtRU4nLFxuICBmb3JtYXQ6ICdzaG9ydCcgfCAnbG9uZycgPSAnc2hvcnQnLFxuKTogc3RyaW5nIHtcbiAgY29uc3QgbWV0YWRhdGEgPSBnZXRTdGF0dXNNZXRhZGF0YUZvckZlYXR1cmUoZmVhdHVyZSwgc3RhdHVzKTtcbiAgcmV0dXJuIG1ldGFkYXRhLmxhYmVsW2Zvcm1hdF1bbG9jYWxlXTtcbn1cblxuLyoqXG4gKiBHZXQgc3RhdHVzIGRlc2NyaXB0aW9uIGZvciBhIHNwZWNpZmljIGZlYXR1cmUgYW5kIHN0YXR1c1xuICogQHBhcmFtIGZlYXR1cmUgLSBUaGUgZmVhdHVyZSBuYW1lXG4gKiBAcGFyYW0gc3RhdHVzIC0gVGhlIHN0YXR1cyB2YWx1ZVxuICogQHBhcmFtIGxvY2FsZSAtIFRoZSBsYW5ndWFnZSBsb2NhbGUgKGRlZmF1bHQ6ICd1cy1FTicpXG4gKiBAcmV0dXJucyBUaGUgdHJhbnNsYXRlZCBkZXNjcmlwdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhdHVzRGVzY3JpcHRpb25Gb3JGZWF0dXJlPFQgZXh0ZW5kcyBTdGF0dXNGZWF0dXJlPihcbiAgZmVhdHVyZTogVCxcbiAgc3RhdHVzOiBTdGF0dXNUeXBlTWFwW1RdLFxuICBsb2NhbGU6IExvY2FsZSA9ICd1cy1FTicsXG4pOiBzdHJpbmcge1xuICByZXR1cm4gZ2V0U3RhdHVzTWV0YWRhdGFGb3JGZWF0dXJlKGZlYXR1cmUsIHN0YXR1cykuZGVzY3JpcHRpb25bbG9jYWxlXTtcbn1cblxuLyoqXG4gKiBHZXQgYWxsIG1ldGFkYXRhIGZvciBhIHNwZWNpZmljIGZlYXR1cmVcbiAqIEBwYXJhbSBmZWF0dXJlIC0gVGhlIGZlYXR1cmUgbmFtZVxuICogQHJldHVybnMgUmVjb3JkIG9mIGFsbCBzdGF0dXNlcyBhbmQgdGhlaXIgbWV0YWRhdGEgZm9yIHRoZSBmZWF0dXJlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbGxTdGF0dXNNZXRhZGF0YUZvckZlYXR1cmU8VCBleHRlbmRzIFN0YXR1c0ZlYXR1cmU+KFxuICBmZWF0dXJlOiBULFxuKTogUmVjb3JkPFN0YXR1c1R5cGVNYXBbVF0sIFN0YXR1c01ldGFkYXRhPiB7XG4gIGNvbnN0IHJlZ2lzdHJ5ID0gTUVUQURBVEFfUkVHSVNUUllbZmVhdHVyZV07XG4gIGlmICghcmVnaXN0cnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gc3RhdHVzIGZlYXR1cmU6ICR7ZmVhdHVyZX1gKTtcbiAgfVxuICByZXR1cm4gcmVnaXN0cnkgYXMgUmVjb3JkPFN0YXR1c1R5cGVNYXBbVF0sIFN0YXR1c01ldGFkYXRhPjtcbn1cblxuLyoqXG4gKiBHZXQgYWxsIHN0YXR1c2VzIGZvciBhIHNwZWNpZmljIGZlYXR1cmVcbiAqIEBwYXJhbSBmZWF0dXJlIC0gVGhlIGZlYXR1cmUgbmFtZVxuICogQHJldHVybnMgQXJyYXkgb2YgYWxsIHN0YXR1cyB2YWx1ZXMgZm9yIHRoZSBmZWF0dXJlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbGxTdGF0dXNlc0ZvckZlYXR1cmU8VCBleHRlbmRzIFN0YXR1c0ZlYXR1cmU+KGZlYXR1cmU6IFQpOiBTdGF0dXNUeXBlTWFwW1RdW10ge1xuICBjb25zdCBtZXRhZGF0YSA9IGdldEFsbFN0YXR1c01ldGFkYXRhRm9yRmVhdHVyZShmZWF0dXJlKTtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG1ldGFkYXRhKSBhcyBTdGF0dXNUeXBlTWFwW1RdW107XG59XG5cbi8qKlxuICogR2V0IGFsbCBhdmFpbGFibGUgc3RhdHVzIGZlYXR1cmVzXG4gKiBAcmV0dXJucyBBcnJheSBvZiBhbGwgZmVhdHVyZSBuYW1lc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWxsRmVhdHVyZXMoKTogU3RhdHVzRmVhdHVyZVtdIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKE1FVEFEQVRBX1JFR0lTVFJZKSBhcyBTdGF0dXNGZWF0dXJlW107XG59XG5cbi8qKlxuICogR2V0IGFsbCBtZXRhZGF0YSBhY3Jvc3MgYWxsIGZlYXR1cmVzXG4gKiBAcmV0dXJucyBSZWNvcmQgbWFwcGluZyBlYWNoIGZlYXR1cmUgdG8gaXRzIGNvbXBsZXRlIG1ldGFkYXRhIHJlZ2lzdHJ5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbGxNZXRhZGF0YSgpOiBSZWNvcmQ8U3RhdHVzRmVhdHVyZSwgUmVjb3JkPHN0cmluZyB8IG51bWJlciwgU3RhdHVzTWV0YWRhdGE+PiB7XG4gIHJldHVybiB7IC4uLk1FVEFEQVRBX1JFR0lTVFJZIH07XG59XG5cbi8qKlxuICogRmlsdGVyIHN0YXR1c2VzIGJ5IGNyaXRlcmlhXG4gKiBAcGFyYW0gZmVhdHVyZSAtIFRoZSBmZWF0dXJlIG5hbWVcbiAqIEBwYXJhbSBwcmVkaWNhdGUgLSBGdW5jdGlvbiB0byB0ZXN0IGVhY2ggc3RhdHVzIG1ldGFkYXRhXG4gKiBAcmV0dXJucyBBcnJheSBvZiBzdGF0dXNlcyB0aGF0IG1hdGNoIHRoZSBwcmVkaWNhdGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlclN0YXR1c2VzQnlGZWF0dXJlPFQgZXh0ZW5kcyBTdGF0dXNGZWF0dXJlPihcbiAgZmVhdHVyZTogVCxcbiAgcHJlZGljYXRlOiAobWV0YWRhdGE6IFN0YXR1c01ldGFkYXRhLCBzdGF0dXM6IFN0YXR1c1R5cGVNYXBbVF0pID0+IGJvb2xlYW4sXG4pOiBTdGF0dXNUeXBlTWFwW1RdW10ge1xuICBjb25zdCBtZXRhZGF0YSA9IGdldEFsbFN0YXR1c01ldGFkYXRhRm9yRmVhdHVyZShmZWF0dXJlKTtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG1ldGFkYXRhKVxuICAgIC5maWx0ZXIoKFtzdGF0dXMsIG1ldGFdKSA9PiBwcmVkaWNhdGUobWV0YSBhcyBTdGF0dXNNZXRhZGF0YSwgc3RhdHVzIGFzIFN0YXR1c1R5cGVNYXBbVF0pKVxuICAgIC5tYXAoKFtzdGF0dXNdKSA9PiBzdGF0dXMgYXMgU3RhdHVzVHlwZU1hcFtUXSk7XG59XG5cbi8qKlxuICogTWFwIHN0YXR1c2VzIHRvIGEgc3BlY2lmaWMgdmFsdWUgdXNpbmcgYSB0cmFuc2Zvcm0gZnVuY3Rpb25cbiAqIEBwYXJhbSBmZWF0dXJlIC0gVGhlIGZlYXR1cmUgbmFtZVxuICogQHBhcmFtIHRyYW5zZm9ybSAtIEZ1bmN0aW9uIHRvIHRyYW5zZm9ybSBlYWNoIHN0YXR1cyBtZXRhZGF0YVxuICogQHJldHVybnMgUmVjb3JkIG9mIHN0YXR1c2VzIG1hcHBlZCB0byB0aGUgdHJhbnNmb3JtZWQgdmFsdWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXBTdGF0dXNlc0J5RmVhdHVyZTxUIGV4dGVuZHMgU3RhdHVzRmVhdHVyZSwgVT4oXG4gIGZlYXR1cmU6IFQsXG4gIHRyYW5zZm9ybTogKG1ldGFkYXRhOiBTdGF0dXNNZXRhZGF0YSwgc3RhdHVzOiBTdGF0dXNUeXBlTWFwW1RdKSA9PiBVLFxuKTogUmVjb3JkPFN0YXR1c1R5cGVNYXBbVF0sIFU+IHtcbiAgY29uc3QgbWV0YWRhdGEgPSBnZXRBbGxTdGF0dXNNZXRhZGF0YUZvckZlYXR1cmUoZmVhdHVyZSk7XG4gIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgVT4gPSB7fTtcblxuICBPYmplY3QuZW50cmllcyhtZXRhZGF0YSkuZm9yRWFjaCgoW3N0YXR1cywgbWV0YV0pID0+IHtcbiAgICByZXN1bHRbc3RhdHVzXSA9IHRyYW5zZm9ybShtZXRhIGFzIFN0YXR1c01ldGFkYXRhLCBzdGF0dXMgYXMgU3RhdHVzVHlwZU1hcFtUXSk7XG4gIH0pO1xuXG4gIHJldHVybiByZXN1bHQgYXMgUmVjb3JkPFN0YXR1c1R5cGVNYXBbVF0sIFU+O1xufVxuXG4vKipcbiAqIEdldCBzdGF0dXMgbWV0YWRhdGEgd2l0aCBjb21wdXRlZCBwcm9wZXJ0aWVzXG4gKiBAcGFyYW0gZmVhdHVyZSAtIFRoZSBmZWF0dXJlIG5hbWVcbiAqIEBwYXJhbSBzdGF0dXMgLSBUaGUgc3RhdHVzIHZhbHVlXG4gKiBAcGFyYW0gbG9jYWxlIC0gVGhlIGxhbmd1YWdlIGxvY2FsZVxuICogQHJldHVybnMgRXh0ZW5kZWQgbWV0YWRhdGEgd2l0aCBjb21wdXRlZCBsYWJlbHMgYW5kIGRlc2NyaXB0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5kZWRTdGF0dXNNZXRhZGF0YSBleHRlbmRzIE9taXQ8U3RhdHVzTWV0YWRhdGEsICdkZXNjcmlwdGlvbic+IHtcbiAgc2hvcnRMYWJlbDogc3RyaW5nO1xuICBsb25nTGFiZWw6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV4dGVuZGVkU3RhdHVzTWV0YWRhdGFGb3JGZWF0dXJlPFQgZXh0ZW5kcyBTdGF0dXNGZWF0dXJlPihcbiAgZmVhdHVyZTogVCxcbiAgc3RhdHVzOiBTdGF0dXNUeXBlTWFwW1RdLFxuICBsb2NhbGU6IExvY2FsZSA9ICd1cy1FTicsXG4pOiBFeHRlbmRlZFN0YXR1c01ldGFkYXRhIHtcbiAgY29uc3QgbWV0YWRhdGEgPSBnZXRTdGF0dXNNZXRhZGF0YUZvckZlYXR1cmUoZmVhdHVyZSwgc3RhdHVzKTtcblxuICByZXR1cm4ge1xuICAgIGljb246IG1ldGFkYXRhLmljb24sXG4gICAgY29sb3I6IG1ldGFkYXRhLmNvbG9yLFxuICAgIGxhYmVsOiBtZXRhZGF0YS5sYWJlbCxcbiAgICBzaG9ydExhYmVsOiBtZXRhZGF0YS5sYWJlbC5zaG9ydFtsb2NhbGVdLFxuICAgIGxvbmdMYWJlbDogbWV0YWRhdGEubGFiZWwubG9uZ1tsb2NhbGVdLFxuICAgIGRlc2NyaXB0aW9uOiBtZXRhZGF0YS5kZXNjcmlwdGlvbltsb2NhbGVdLFxuICB9O1xufVxuXG4vKipcbiAqIFNlYXJjaCBzdGF0dXNlcyBieSBsYWJlbFxuICogQHBhcmFtIGZlYXR1cmUgLSBUaGUgZmVhdHVyZSBuYW1lXG4gKiBAcGFyYW0gc2VhcmNoVGVybSAtIFRoZSBzZWFyY2ggdGVybSAoY2FzZS1pbnNlbnNpdGl2ZSlcbiAqIEBwYXJhbSBsb2NhbGUgLSBUaGUgbGFuZ3VhZ2UgbG9jYWxlXG4gKiBAcmV0dXJucyBBcnJheSBvZiBzdGF0dXNlcyBtYXRjaGluZyB0aGUgc2VhcmNoIHRlcm1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlYXJjaFN0YXR1c2VzQnlGZWF0dXJlPFQgZXh0ZW5kcyBTdGF0dXNGZWF0dXJlPihcbiAgZmVhdHVyZTogVCxcbiAgc2VhcmNoVGVybTogc3RyaW5nLFxuICBsb2NhbGU6IExvY2FsZSA9ICd1cy1FTicsXG4pOiBTdGF0dXNUeXBlTWFwW1RdW10ge1xuICBjb25zdCBsb3dlclNlYXJjaCA9IHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKTtcblxuICByZXR1cm4gZmlsdGVyU3RhdHVzZXNCeUZlYXR1cmUoZmVhdHVyZSwgKG1ldGFkYXRhKSA9PiB7XG4gICAgY29uc3Qgc2hvcnRMYWJlbCA9IG1ldGFkYXRhLmxhYmVsLnNob3J0W2xvY2FsZV0udG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBsb25nTGFiZWwgPSBtZXRhZGF0YS5sYWJlbC5sb25nW2xvY2FsZV0udG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IG1ldGFkYXRhLmRlc2NyaXB0aW9uW2xvY2FsZV0udG9Mb3dlckNhc2UoKTtcblxuICAgIHJldHVybiBzaG9ydExhYmVsLmluY2x1ZGVzKGxvd2VyU2VhcmNoKSB8fCBsb25nTGFiZWwuaW5jbHVkZXMobG93ZXJTZWFyY2gpIHx8IGRlc2NyaXB0aW9uLmluY2x1ZGVzKGxvd2VyU2VhcmNoKTtcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IHN0YXR1cyBtZXRhZGF0YSBncm91cGVkIGJ5IGNvbG9yXG4gKiBAcGFyYW0gZmVhdHVyZSAtIFRoZSBmZWF0dXJlIG5hbWVcbiAqIEByZXR1cm5zIFJlY29yZCBvZiBjb2xvcnMgbWFwcGVkIHRvIGFycmF5cyBvZiBzdGF0dXNlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ3JvdXBTdGF0dXNlc0J5Q29sb3JGb3JGZWF0dXJlPFQgZXh0ZW5kcyBTdGF0dXNGZWF0dXJlPihcbiAgZmVhdHVyZTogVCxcbik6IFJlY29yZDxzdHJpbmcsIFN0YXR1c1R5cGVNYXBbVF1bXT4ge1xuICBjb25zdCBtZXRhZGF0YSA9IGdldEFsbFN0YXR1c01ldGFkYXRhRm9yRmVhdHVyZShmZWF0dXJlKTtcbiAgY29uc3QgZ3JvdXBlZDogUmVjb3JkPHN0cmluZywgU3RhdHVzVHlwZU1hcFtUXVtdPiA9IHt9O1xuXG4gIE9iamVjdC5lbnRyaWVzKG1ldGFkYXRhKS5mb3JFYWNoKChbc3RhdHVzLCBtZXRhXSkgPT4ge1xuICAgIGNvbnN0IG1ldGFUeXBlZCA9IG1ldGEgYXMgU3RhdHVzTWV0YWRhdGE7XG4gICAgaWYgKCFncm91cGVkW21ldGFUeXBlZC5jb2xvcl0pIHtcbiAgICAgIGdyb3VwZWRbbWV0YVR5cGVkLmNvbG9yXSA9IFtdO1xuICAgIH1cbiAgICBncm91cGVkW21ldGFUeXBlZC5jb2xvcl0ucHVzaChzdGF0dXMgYXMgU3RhdHVzVHlwZU1hcFtUXSk7XG4gIH0pO1xuXG4gIHJldHVybiBncm91cGVkO1xufVxuXG4vKipcbiAqIEdldCBzdGF0dXMgbWV0YWRhdGEgZ3JvdXBlZCBieSBpY29uXG4gKiBAcGFyYW0gZmVhdHVyZSAtIFRoZSBmZWF0dXJlIG5hbWVcbiAqIEByZXR1cm5zIFJlY29yZCBvZiBpY29ucyBtYXBwZWQgdG8gYXJyYXlzIG9mIHN0YXR1c2VzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBncm91cFN0YXR1c2VzQnlJY29uRm9yRmVhdHVyZTxUIGV4dGVuZHMgU3RhdHVzRmVhdHVyZT4oZmVhdHVyZTogVCk6IFJlY29yZDxzdHJpbmcsIFN0YXR1c1R5cGVNYXBbVF1bXT4ge1xuICBjb25zdCBtZXRhZGF0YSA9IGdldEFsbFN0YXR1c01ldGFkYXRhRm9yRmVhdHVyZShmZWF0dXJlKTtcbiAgY29uc3QgZ3JvdXBlZDogUmVjb3JkPHN0cmluZywgU3RhdHVzVHlwZU1hcFtUXVtdPiA9IHt9O1xuXG4gIE9iamVjdC5lbnRyaWVzKG1ldGFkYXRhKS5mb3JFYWNoKChbc3RhdHVzLCBtZXRhXSkgPT4ge1xuICAgIGNvbnN0IG1ldGFUeXBlZCA9IG1ldGEgYXMgU3RhdHVzTWV0YWRhdGE7XG4gICAgaWYgKCFncm91cGVkW21ldGFUeXBlZC5pY29uXSkge1xuICAgICAgZ3JvdXBlZFttZXRhVHlwZWQuaWNvbl0gPSBbXTtcbiAgICB9XG4gICAgZ3JvdXBlZFttZXRhVHlwZWQuaWNvbl0ucHVzaChzdGF0dXMgYXMgU3RhdHVzVHlwZU1hcFtUXSk7XG4gIH0pO1xuXG4gIHJldHVybiBncm91cGVkO1xufVxuIl19
|