@fjall/components-infrastructure 0.77.2 → 0.77.3

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.
@@ -15,6 +15,7 @@ interface RdsProps {
15
15
  maxAllocatedStorage?: number;
16
16
  allocatedStorage?: number;
17
17
  backupRetention?: Duration;
18
+ preferredBackupWindow?: string;
18
19
  clusterIdentifier?: string;
19
20
  monitoringInterval?: Duration;
20
21
  preferredMaintenanceWindow?: string;
@@ -99,6 +99,7 @@ class RdsInstance extends constructs_1.Construct {
99
99
  parameterGroup,
100
100
  allocatedStorage: props.allocatedStorage,
101
101
  backupRetention: props.backupRetention || aws_cdk_lib_1.Duration.days(14),
102
+ preferredBackupWindow: props.preferredBackupWindow || "02:00-03:00",
102
103
  storageEncrypted: true,
103
104
  storageEncryptionKey,
104
105
  storageType: aws_rds_1.StorageType.GP3,
@@ -335,4 +336,4 @@ exports.handler = async (event) => {
335
336
  }
336
337
  }
337
338
  exports.RdsInstance = RdsInstance;
338
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmRzSW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9kYXRhYmFzZS9yZHNJbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBaUU7QUFDakUsaURBUTZCO0FBQzdCLGlEQWU2QjtBQUM3Qix1RUFHd0M7QUFDeEMsdURBQWlEO0FBQ2pELGlEQUE4RDtBQUM5RCwyQ0FBdUM7QUFDdkMsZ0NBQXVDO0FBQ3ZDLHdDQUF3RDtBQUN4RCxnRUFBNkQ7QUFFN0QsNkRBU3dDO0FBQ3hDLGtFQUErRDtBQTJCL0QsTUFBYSxXQUFZLFNBQVEsc0JBQVM7SUFjeEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFlO1FBQ3ZELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFFckIsOEVBQThFO1FBQzlFLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksSUFBSTtZQUN4QyxlQUFlLEVBQUUsVUFBVTtZQUMzQixhQUFhLEVBQUUsRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFO1lBQ3ZDLGVBQWUsRUFBRSw4Q0FBOEM7U0FDaEUsQ0FBQztRQUVGLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFeEIsMEVBQTBFO1FBQzFFLE1BQU0sc0JBQXNCLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxjQUFjLEtBQUssS0FBSyxDQUFDO1FBQzNFLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxT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QUFRLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztRQUNyQyxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFVLEVBQUUsS0FBZTtRQUN0QyxPQUFPLENBQUMsRUFBZ0IsRUFBRSxFQUFFO1lBQzFCLE1BQU0sUUFBUSxHQUFhO2dCQUN6QixHQUFHLEtBQUs7Z0JBQ1IsR0FBRztvQkFDRCxHQUFHLEVBQUcsRUFBRSxDQUFDLFVBQVUsRUFBVyxJQUFJLEtBQUssQ0FBQyxHQUFHO29CQUMzQyxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLElBQUksRUFBRTtvQkFDL0MsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRTtpQkFDL0Q7YUFDRixDQUFDO1lBRUYsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXRjRCxrQ0FzY0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5PdXRwdXQsIER1cmF0aW9uLCBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1xuICBDb25uZWN0aW9ucyxcbiAgdHlwZSBJQ29ubmVjdGFibGUsXG4gIEluc3RhbmNlVHlwZSxcbiAgdHlwZSBJVnBjLFxuICBQb3J0LFxuICB0eXBlIFN1Ym5ldFNlbGVjdGlvbixcbiAgU3VibmV0VHlwZVxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHtcbiAgQ2FDZXJ0aWZpY2F0ZSxcbiAgQ3JlZGVudGlhbHMsXG4gIERhdGFiYXNlSW5zdGFuY2UsXG4gIERhdGFiYXNlSW5zdGFuY2VGcm9tU25hcHNob3QsXG4gIERhdGFiYXNlSW5zdGFuY2VFbmdpbmUsXG4gIERhdGFiYXNlSW5zdGFuY2VSZWFkUmVwbGljYSxcbiAgRGF0YWJhc2VQcm94eSxcbiAgdHlwZSBJSW5zdGFuY2VFbmdpbmUsXG4gIFBhcmFtZXRlckdyb3VwLFxuICBQZXJmb3JtYW5jZUluc2lnaHRSZXRlbnRpb24sXG4gIFBvc3RncmVzRW5naW5lVmVyc2lvbixcbiAgUHJveHlUYXJnZXQsXG4gIFNuYXBzaG90Q3JlZGVudGlhbHMsXG4gIFN0b3JhZ2VUeXBlXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtcmRzXCI7XG5pbXBvcnQge1xuICBTZWNyZXRSb3RhdGlvbixcbiAgU2VjcmV0Um90YXRpb25BcHBsaWNhdGlvblxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyXCI7XG5pbXBvcnQgeyBSdW50aW1lIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCwgRWZmZWN0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBTZWN1cml0eUdyb3VwIH0gZnJvbSBcIi4uL2lhbVwiO1xuaW1wb3J0IHsgQ3VzdG9tZXJNYW5hZ2VkS2V5LCBTZWNyZXQgfSBmcm9tIFwiLi4vc2VjcmV0c1wiO1xuaW1wb3J0IHsgQ3VzdG9tUmVzb3VyY2UgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2N1c3RvbVJlc291cmNlXCI7XG5pbXBvcnQgeyB0eXBlIFN0YWNrQnVpbGRlciB9IGZyb20gXCIuLi9iYXNlL2F3c1N0YWNrXCI7XG5pbXBvcnQge1xuICB0eXBlIEVuZ2luZUNvbmZpZyxcbiAgdHlwZSBQcm94eUNvbmZpZyxcbiAgdHlwZSBSZWFkUmVwbGljYUNvbmZpZyxcbiAgdHlwZSBDcmVkZW50aWFsc0NvbmZpZyxcbiAgdHlwZSBFbmNyeXB0aW9uQ29uZmlnLFxuICB0eXBlIFBlcmZvcm1hbmNlSW5zaWdodHNDb25maWcsXG4gIGlzQXdzTWFuYWdlZEtleSxcbiAgaXNDTUtSZXF1ZXN0ZWRcbn0gZnJvbSBcIi4uLy4uLy4uL3BhdHRlcm5zL2F3cy9kYXRhYmFzZVwiO1xuaW1wb3J0IHsgUmVzb3VyY2VOYW1pbmcgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvcmVzb3VyY2VOYW1pbmdcIjtcblxuaW50ZXJmYWNlIFJkc1Byb3BzIHtcbiAgdnBjOiBJVnBjO1xuICBkYXRhYmFzZU5hbWU/OiBzdHJpbmc7XG4gIGVuZ2luZT86IElJbnN0YW5jZUVuZ2luZTtcbiAgZW5naW5lQ29uZmlnPzogRW5naW5lQ29uZmlnO1xuICBpbnN0YW5jZVR5cGU/OiBzdHJpbmc7XG4gIG1heEFsbG9jYXRlZFN0b3JhZ2U/OiBudW1iZXI7XG4gIGFsbG9jYXRlZFN0b3JhZ2U/OiBudW1iZXI7XG4gIGJhY2t1cFJldGVudGlvbj86IER1cmF0aW9uO1xuICBjbHVzdGVySWRlbnRpZmllcj86IHN0cmluZztcbiAgbW9uaXRvcmluZ0ludGVydmFsPzogRHVyYXRpb247XG4gIHByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93Pzogc3RyaW5nO1xuICBwb3J0PzogbnVtYmVyO1xuICBwZXJmb3JtYW5jZUluc2lnaHRzPzogUGVyZm9ybWFuY2VJbnNpZ2h0c0NvbmZpZyB8IGZhbHNlO1xuICBzZWN1cml0eUdyb3VwSWRzPzogc3RyaW5nW107XG4gIG11bHRpQXo/OiBib29sZWFuO1xuICBwcm94eT86IFByb3h5Q29uZmlnIHwgZmFsc2U7XG4gIHJlYWRSZXBsaWNhPzogUmVhZFJlcGxpY2FDb25maWcgfCBmYWxzZTtcbiAgY3JlZGVudGlhbHM/OiBDcmVkZW50aWFsc0NvbmZpZztcbiAgZW5jcnlwdGlvbj86IEVuY3J5cHRpb25Db25maWc7XG4gIHB1YmxpY2x5QWNjZXNzaWJsZT86IGJvb2xlYW47XG4gIC8qKiBBUk4gb3IgaWRlbnRpZmllciBvZiBEQiBpbnN0YW5jZSBzbmFwc2hvdCB0byByZXN0b3JlIGZyb20gKi9cbiAgc25hcHNob3RJZGVudGlmaWVyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgUmRzSW5zdGFuY2UgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJQ29ubmVjdGFibGUge1xuICBwdWJsaWMgY29ubmVjdGlvbnM6IENvbm5lY3Rpb25zO1xuICBwdWJsaWMgZGF0YWJhc2VTZWN1cml0eUdyb3VwOiBTZWN1cml0eUdyb3VwO1xuICBwdWJsaWMgdnBjOiBJVnBjO1xuXG4gIHByaXZhdGUgcG9ydDogbnVtYmVyO1xuICBwcml2YXRlIGVuZ2luZUNvbmZpZzogRW5naW5lQ29uZmlnO1xuICBwcml2YXRlIGRhdGFiYXNlQ3JlZGVudGlhbHM6IFNlY3JldDtcbiAgcHJpdmF0ZSBkYXRhYmFzZTogRGF0YWJhc2VJbnN0YW5jZTtcbiAgcHJpdmF0ZSBtYXN0ZXJTZWNyZXQ6IFNlY3JldDtcbiAgcHJpdmF0ZSBkYXRhYmFzZVByb3h5OiBEYXRhYmFzZVByb3h5O1xuICBwcml2YXRlIGRhdGFiYXNlUHJveHlTZWN1cml0eUdyb3VwOiBTZWN1cml0eUdyb3VwO1xuICBwcml2YXRlIHJlYWRSZXBsaWNhU2VjdXJpdHlHcm91cDogU2VjdXJpdHlHcm91cDtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUmRzUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5wb3J0ID0gcHJvcHMucG9ydCB8fCAzNTI1NTtcbiAgICB0aGlzLnZwYyA9IHByb3BzLnZwYztcblxuICAgIC8vIFBvc3RncmVTUUwgZmFsbGJhY2sgZm9yIGRpcmVjdCB1c2FnZSAtIGVuc3VyZSBlbmdpbmUgYW5kIGVuZ2luZUNvbmZpZyBtYXRjaFxuICAgIHRoaXMuZW5naW5lQ29uZmlnID0gcHJvcHMuZW5naW5lQ29uZmlnID8/IHtcbiAgICAgIGRlZmF1bHRVc2VybmFtZTogXCJwb3N0Z3Jlc1wiLFxuICAgICAgc3NsUGFyYW1ldGVyczogeyBcInJkcy5mb3JjZV9zc2xcIjogXCIxXCIgfSxcbiAgICAgIHJvdGF0aW9uQXBwTmFtZTogXCJTZWNyZXRzTWFuYWdlclJEU1Bvc3RncmVTUUxSb3RhdGlvbk11bHRpVXNlclwiXG4gICAgfTtcblxuICAgIHRoaXMuYWRkRGF0YWJhc2UocHJvcHMpO1xuXG4gICAgLy8gU2VjcmV0IHJvdGF0aW9uIGVuYWJsZWQgYnkgZGVmYXVsdCAob3B0LW91dCB3aXRoIHNlY3JldFJvdGF0aW9uOiBmYWxzZSlcbiAgICBjb25zdCBzZWNyZXRSb3RhdGlvbkRpc2FibGVkID0gcHJvcHMuY3JlZGVudGlhbHM/LnNlY3JldFJvdGF0aW9uID09PSBmYWxzZTtcbiAgICBpZiAoIXNlY3JldFJvdGF0aW9uRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMucm90YXRlU2VjcmV0KHByb3BzKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMucHJveHkgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5wcm94eSAhPT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuYWRkUHJveHkocHJvcHMpO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5yZWFkUmVwbGljYSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLnJlYWRSZXBsaWNhICE9PSBmYWxzZSkge1xuICAgICAgdGhpcy5hZGRSZWFkUmVwbGljYShwcm9wcyk7XG4gICAgfVxuICB9XG5cbiAgYWRkRGF0YWJhc2UocHJvcHM6IFJkc1Byb3BzKSB7XG4gICAgY29uc3QgdXNlcm5hbWUgPVxuICAgICAgcHJvcHMuY3JlZGVudGlhbHM/LnVzZXJuYW1lID8/IHRoaXMuZW5naW5lQ29uZmlnLmRlZmF1bHRVc2VybmFtZTtcbiAgICB0aGlzLmRhdGFiYXNlQ3JlZGVudGlhbHMgPSBuZXcgU2VjcmV0KFxuICAgICAgdGhpcyxcbiAgICAgIGAke3Byb3BzLmRhdGFiYXNlTmFtZX1DcmVkZW50aWFsc2AsXG4gICAgICB7XG4gICAgICAgIHNlY3JldE5hbWU6IGAke3Byb3BzLmRhdGFiYXNlTmFtZX1DcmVkZW50aWFsc2AsXG4gICAgICAgIGdlbmVyYXRlU2VjcmV0U3RyaW5nOiB7XG4gICAgICAgICAgc2VjcmV0U3RyaW5nVGVtcGxhdGU6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIHVzZXJuYW1lXG4gICAgICAgICAgfSksXG4gICAgICAgICAgZXhjbHVkZVB1bmN0dWF0aW9uOiB0cnVlLFxuICAgICAgICAgIGluY2x1ZGVTcGFjZTogZmFsc2UsXG4gICAgICAgICAgZ2VuZXJhdGVTdHJpbmdLZXk6IFwicGFzc3dvcmRcIlxuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuZGF0YWJhc2VTZWN1cml0eUdyb3VwID0gbmV3IFNlY3VyaXR5R3JvdXAoXG4gICAgICB0aGlzLFxuICAgICAgYCR7cHJvcHMuZGF0YWJhc2VOYW1lfVNlY3VyaXR5R3JvdXBgLFxuICAgICAge1xuICAgICAgICB2cGM6IHRoaXMudnBjLFxuICAgICAgICBkZXNjcmlwdGlvbjogYFNlY3VyaXR5IGdyb3VwIGZvciBSRFMgZGF0YWJhc2UgaW5zdGFuY2UgJHtwcm9wcy5kYXRhYmFzZU5hbWV9YFxuICAgICAgfVxuICAgICk7XG5cbiAgICAvLyBTZWxmLXJlZmVyZW5jaW5nIHJ1bGUgZm9yIG11bHRpLUFaIGNvbW11bmljYXRpb25cbiAgICB0aGlzLmRhdGFiYXNlU2VjdXJpdHlHcm91cC5hZGRJbmdyZXNzUnVsZShcbiAgICAgIHRoaXMuZGF0YWJhc2VTZWN1cml0eUdyb3VwLFxuICAgICAgUG9ydC50Y3AodGhpcy5wb3J0KVxuICAgICk7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb25zID0gbmV3IENvbm5lY3Rpb25zKHtcbiAgICAgIHNlY3VyaXR5R3JvdXBzOiBbdGhpcy5kYXRhYmFzZVNlY3VyaXR5R3JvdXBdLFxuICAgICAgZGVmYXVsdFBvcnQ6IFBvcnQudGNwKHRoaXMucG9ydClcbiAgICB9KTtcblxuICAgIGNvbnN0IHN0b3JhZ2VFbmNyeXB0aW9uS2V5ID0gaXNDTUtSZXF1ZXN0ZWQocHJvcHMuZW5jcnlwdGlvbj8uc3RvcmFnZUtleSlcbiAgICAgID8gbmV3IEN1c3RvbWVyTWFuYWdlZEtleShcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGAke3Byb3BzLmRhdGFiYXNlTmFtZX1DbHVzdGVyRW5jcnlwdGlvbktleWAsXG4gICAgICAgICAgeyBhbGlhc05hbWU6IGBjbWsvcmRzLyR7cHJvcHMuZGF0YWJhc2VOYW1lfS9lbmNyeXB0aW9uS2V5YCB9XG4gICAgICAgICkua2V5XG4gICAgICA6IGlzQXdzTWFuYWdlZEtleShwcm9wcy5lbmNyeXB0aW9uPy5zdG9yYWdlS2V5KSB8fFxuICAgICAgICAgIHByb3BzLmVuY3J5cHRpb24/LnN0b3JhZ2VLZXkgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICA6IHByb3BzLmVuY3J5cHRpb24/LnN0b3JhZ2VLZXk7XG5cbiAgICBjb25zdCBwaUVuYWJsZWQgPSBwcm9wcy5wZXJmb3JtYW5jZUluc2lnaHRzICE9PSBmYWxzZTtcbiAgICBjb25zdCBwaUNvbmZpZyA9XG4gICAgICBwaUVuYWJsZWQgJiYgdHlwZW9mIHByb3BzLnBlcmZvcm1hbmNlSW5zaWdodHMgPT09IFwib2JqZWN0XCJcbiAgICAgICAgPyBwcm9wcy5wZXJmb3JtYW5jZUluc2lnaHRzXG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgcGVyZm9ybWFuY2VJbnNpZ2h0c0VuY3J5cHRpb25LZXkgPVxuICAgICAgcGlFbmFibGVkICYmIGlzQ01LUmVxdWVzdGVkKHBpQ29uZmlnPy5lbmNyeXB0aW9uS2V5KVxuICAgICAgICA/IG5ldyBDdXN0b21lck1hbmFnZWRLZXkoXG4gICAgICAgICAgICB0aGlzLFxuICAgICAgICAgICAgYCR7cHJvcHMuZGF0YWJhc2VOYW1lfVBlcmZvcm1hbmNlSW5zaWdodHNLZXlgLFxuICAgICAgICAgICAgeyBhbGlhc05hbWU6IGBjbWsvcmRzLyR7cHJvcHMuZGF0YWJhc2VOYW1lfS9JbnNpZ2h0c0tleWAgfVxuICAgICAgICAgICkua2V5XG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgcGVyZm9ybWFuY2VJbnNpZ2h0c1JldGVudGlvbiA9IHBpRW5hYmxlZFxuICAgICAgPyB0aGlzLmdldFBlcmZvcm1hbmNlSW5zaWdodFJldGVudGlvbihwaUNvbmZpZz8ucmV0ZW50aW9uUGVyaW9kID8/IDcpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGVuZ2luZSA9XG4gICAgICBwcm9wcy5lbmdpbmUgfHxcbiAgICAgIERhdGFiYXNlSW5zdGFuY2VFbmdpbmUucG9zdGdyZXMoe1xuICAgICAgICB2ZXJzaW9uOiBQb3N0Z3Jlc0VuZ2luZVZlcnNpb24uVkVSXzE3XzVcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgcGFyYW1ldGVyR3JvdXAgPSBuZXcgUGFyYW1ldGVyR3JvdXAoXG4gICAgICB0aGlzLFxuICAgICAgYCR7cHJvcHMuZGF0YWJhc2VOYW1lfVBhcmFtZXRlckdyb3VwYCxcbiAgICAgIHtcbiAgICAgICAgZW5naW5lLFxuICAgICAgICBkZXNjcmlwdGlvbjogYFBhcmFtZXRlciBncm91cCBmb3IgJHtwcm9wcy5kYXRhYmFzZU5hbWV9IHdpdGggc2VjdXJpdHkgZGVmYXVsdHNgLFxuICAgICAgICBwYXJhbWV0ZXJzOiB0aGlzLmVuZ2luZUNvbmZpZy5zc2xQYXJhbWV0ZXJzXG4gICAgICB9XG4gICAgKTtcblxuICAgIC8vIFVzZSBQVUJMSUMgc3VibmV0IGZvciBwdWJsaWNseUFjY2Vzc2libGUgZGF0YWJhc2VzIChlLmcuLCB0aW5rZXJlciB0aWVyIHdpdGhvdXQgTkFUKVxuICAgIGNvbnN0IHN1Ym5ldFR5cGUgPSBwcm9wcy5wdWJsaWNseUFjY2Vzc2libGVcbiAgICAgID8gU3VibmV0VHlwZS5QVUJMSUNcbiAgICAgIDogU3VibmV0VHlwZS5QUklWQVRFX1dJVEhfRUdSRVNTO1xuXG4gICAgY29uc3QgY29tbW9uSW5zdGFuY2VQcm9wcyA9IHtcbiAgICAgIHZwYzogdGhpcy52cGMsXG4gICAgICB2cGNTdWJuZXRzOiB7XG4gICAgICAgIHN1Ym5ldFR5cGVcbiAgICAgIH0sXG4gICAgICBzZWN1cml0eUdyb3VwczogW3RoaXMuZGF0YWJhc2VTZWN1cml0eUdyb3VwXSxcbiAgICAgIGVuZ2luZSxcbiAgICAgIHBhcmFtZXRlckdyb3VwLFxuICAgICAgYWxsb2NhdGVkU3RvcmFnZTogcHJvcHMuYWxsb2NhdGVkU3RvcmFnZSxcbiAgICAgIGJhY2t1cFJldGVudGlvbjogcHJvcHMuYmFja3VwUmV0ZW50aW9uIHx8IER1cmF0aW9uLmRheXMoMTQpLFxuICAgICAgc3RvcmFnZUVuY3J5cHRlZDogdHJ1ZSxcbiAgICAgIHN0b3JhZ2VFbmNyeXB0aW9uS2V5LFxuICAgICAgc3RvcmFnZVR5cGU6IFN0b3JhZ2VUeXBlLkdQMyxcbiAgICAgIGNhQ2VydGlmaWNhdGU6IENhQ2VydGlmaWNhdGUuUkRTX0NBX1JTQTQwOTZfRzEsXG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LlNOQVBTSE9ULFxuICAgICAgZGVsZXRlQXV0b21hdGVkQmFja3VwczogZmFsc2UsXG4gICAgICBlbmFibGVQZXJmb3JtYW5jZUluc2lnaHRzOiBwaUVuYWJsZWQsXG4gICAgICBwZXJmb3JtYW5jZUluc2lnaHRFbmNyeXB0aW9uS2V5OiBwZXJmb3JtYW5jZUluc2lnaHRzRW5jcnlwdGlvbktleSxcbiAgICAgIHBlcmZvcm1hbmNlSW5zaWdodFJldGVudGlvbjogcGVyZm9ybWFuY2VJbnNpZ2h0c1JldGVudGlvbixcbiAgICAgIGluc3RhbmNlSWRlbnRpZmllcjogUmVzb3VyY2VOYW1pbmcuZGJJbnN0YW5jZUlkKHByb3BzLmRhdGFiYXNlTmFtZSEpLFxuICAgICAgaW5zdGFuY2VUeXBlOiBwcm9wcy5pbnN0YW5jZVR5cGVcbiAgICAgICAgPyBuZXcgSW5zdGFuY2VUeXBlKHByb3BzLmluc3RhbmNlVHlwZSlcbiAgICAgICAgOiBuZXcgSW5zdGFuY2VUeXBlKFwidDRnLmxhcmdlXCIpLFxuICAgICAgbWF4QWxsb2NhdGVkU3RvcmFnZTogcHJvcHMubWF4QWxsb2NhdGVkU3RvcmFnZSB8fCA1MDAsXG4gICAgICBtb25pdG9yaW5nSW50ZXJ2YWw6IHByb3BzLm1vbml0b3JpbmdJbnRlcnZhbCB8fCBEdXJhdGlvbi5taW51dGVzKDEpLFxuICAgICAgbXVsdGlBejogcHJvcHMubXVsdGlBeiAhPT0gZmFsc2UsXG4gICAgICBwb3J0OiB0aGlzLnBvcnQsXG4gICAgICBkZWxldGlvblByb3RlY3Rpb246IHRydWUsXG4gICAgICBwcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvdzpcbiAgICAgICAgcHJvcHMucHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3cgfHwgXCJTYXQ6MTI6MzAtU2F0OjIwOjMwXCIsXG4gICAgICBwdWJsaWNseUFjY2Vzc2libGU6IHByb3BzLnB1YmxpY2x5QWNjZXNzaWJsZSA/PyBmYWxzZVxuICAgIH07XG5cbiAgICBpZiAocHJvcHMuc25hcHNob3RJZGVudGlmaWVyKSB7XG4gICAgICAvLyBDcmVhdGUgZnJvbSBzbmFwc2hvdFxuICAgICAgdGhpcy5kYXRhYmFzZSA9IG5ldyBEYXRhYmFzZUluc3RhbmNlRnJvbVNuYXBzaG90KFxuICAgICAgICB0aGlzLFxuICAgICAgICBgJHtwcm9wcy5kYXRhYmFzZU5hbWV9RGF0YWJhc2VgLFxuICAgICAgICB7XG4gICAgICAgICAgLi4uY29tbW9uSW5zdGFuY2VQcm9wcyxcbiAgICAgICAgICBzbmFwc2hvdElkZW50aWZpZXI6IHByb3BzLnNuYXBzaG90SWRlbnRpZmllcixcbiAgICAgICAgICAvLyBGb3Igc25hcHNob3RzLCBjcmVkZW50aWFscyBhcmUgdXNlZCB0byByZXNldCB0aGUgcGFzc3dvcmRcbiAgICAgICAgICBjcmVkZW50aWFsczogU25hcHNob3RDcmVkZW50aWFscy5mcm9tU2VjcmV0KFxuICAgICAgICAgICAgdGhpcy5kYXRhYmFzZUNyZWRlbnRpYWxzLnNlY3JldFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ3JlYXRlIG5ldyBpbnN0YW5jZVxuICAgICAgdGhpcy5kYXRhYmFzZSA9IG5ldyBEYXRhYmFzZUluc3RhbmNlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBgJHtwcm9wcy5kYXRhYmFzZU5hbWV9RGF0YWJhc2VgLFxuICAgICAgICB7XG4gICAgICAgICAgLi4uY29tbW9uSW5zdGFuY2VQcm9wcyxcbiAgICAgICAgICBkYXRhYmFzZU5hbWU6IHByb3BzLmRhdGFiYXNlTmFtZSxcbiAgICAgICAgICBjcmVkZW50aWFsczogQ3JlZGVudGlhbHMuZnJvbVNlY3JldCh0aGlzLmRhdGFiYXNlQ3JlZGVudGlhbHMuc2VjcmV0KVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJvdGF0ZVNlY3JldChwcm9wczogUmRzUHJvcHMpIHtcbiAgICBjb25zdCByb3RhdGlvbkNvbmZpZyA9IHByb3BzLmNyZWRlbnRpYWxzPy5zZWNyZXRSb3RhdGlvbjtcbiAgICBjb25zdCByb3RhdGlvblBlcmlvZCA9XG4gICAgICAodHlwZW9mIHJvdGF0aW9uQ29uZmlnID09PSBcIm9iamVjdFwiICYmXG4gICAgICAgIHJvdGF0aW9uQ29uZmlnPy5hdXRvbWF0aWNhbGx5QWZ0ZXIpIHx8XG4gICAgICBEdXJhdGlvbi5kYXlzKDMwKTtcblxuICAgIHRoaXMubWFzdGVyU2VjcmV0ID0gbmV3IFNlY3JldCh0aGlzLCBgJHtwcm9wcy5kYXRhYmFzZU5hbWV9TWFzdGVyU2VjcmV0YCwge1xuICAgICAgc2VjcmV0TmFtZTogYCR7cHJvcHMuZGF0YWJhc2VOYW1lfU1hc3RlclNlY3JldGBcbiAgICB9KTtcblxuICAgIG5ldyBTZWNyZXRSb3RhdGlvbih0aGlzLCBgJHtwcm9wcy5kYXRhYmFzZU5hbWV9U2VjcmV0Um90YXRpb25gLCB7XG4gICAgICBhcHBsaWNhdGlvbjogbmV3IFNlY3JldFJvdGF0aW9uQXBwbGljYXRpb24oXG4gICAgICAgIHRoaXMuZW5naW5lQ29uZmlnLnJvdGF0aW9uQXBwTmFtZSxcbiAgICAgICAgXCIxLjEuMzY3XCIsXG4gICAgICAgIHsgaXNNdWx0aVVzZXI6IHRydWUgfVxuICAgICAgKSxcbiAgICAgIHNlY3JldDogdGhpcy5kYXRhYmFzZUNyZWRlbnRpYWxzLnNlY3JldCxcbiAgICAgIG1hc3RlclNlY3JldDogdGhpcy5tYXN0ZXJTZWNyZXQuc2VjcmV0LFxuICAgICAgdGFyZ2V0OiB0aGlzLmRhdGFiYXNlLFxuICAgICAgdnBjOiB0aGlzLmRhdGFiYXNlLnZwYyxcbiAgICAgIGF1dG9tYXRpY2FsbHlBZnRlcjogcm90YXRpb25QZXJpb2RcbiAgICB9KTtcbiAgfVxuXG4gIGFkZFByb3h5KHByb3BzOiBSZHNQcm9wcykge1xuICAgIGNvbnN0IHByb3h5Q29uZmlnID0gcHJvcHMucHJveHkgYXMgUHJveHlDb25maWc7XG4gICAgY29uc3QgdnBjU3VibmV0czogU3VibmV0U2VsZWN0aW9uID0gcHJveHlDb25maWcudnBjU3VibmV0cyA/PyB7XG4gICAgICBzdWJuZXRUeXBlOiBTdWJuZXRUeXBlLlBSSVZBVEVfV0lUSF9FR1JFU1NcbiAgICB9O1xuXG4gICAgdGhpcy5kYXRhYmFzZVByb3h5U2VjdXJpdHlHcm91cCA9IG5ldyBTZWN1cml0eUdyb3VwKFxuICAgICAgdGhpcyxcbiAgICAgIGAke3Byb3BzLmRhdGFiYXNlTmFtZX1Qcm94eVNlY3VyaXR5R3JvdXBgLFxuICAgICAge1xuICAgICAgICB2cGM6IHRoaXMudnBjLFxuICAgICAgICBkZXNjcmlwdGlvbjogYFNlY3VyaXR5IGdyb3VwIGZvciBSRFMgUHJveHkgZm9yICR7cHJvcHMuZGF0YWJhc2VOYW1lfWBcbiAgICAgIH1cbiAgICApO1xuXG4gICAgLy8gQWxsb3cgcHJveHkgdG8gY29ubmVjdCB0byBkYXRhYmFzZVxuICAgIHRoaXMuZGF0YWJhc2VTZWN1cml0eUdyb3VwLmFkZEluZ3Jlc3NSdWxlKFxuICAgICAgdGhpcy5kYXRhYmFzZVByb3h5U2VjdXJpdHlHcm91cCxcbiAgICAgIFBvcnQudGNwKHRoaXMucG9ydCksXG4gICAgICBcIkFsbG93IFJEUyBQcm94eSB0byBjb25uZWN0IHRvIGRhdGFiYXNlXCJcbiAgICApO1xuXG4gICAgdGhpcy5kYXRhYmFzZVByb3h5ID0gbmV3IERhdGFiYXNlUHJveHkoXG4gICAgICB0aGlzLFxuICAgICAgYCR7cHJvcHMuZGF0YWJhc2VOYW1lfURhdGFiYXNlUHJveHlgLFxuICAgICAge1xuICAgICAgICBkYlByb3h5TmFtZTogUmVzb3VyY2VOYW1pbmcucHJveHlOYW1lKHByb3BzLmRhdGFiYXNlTmFtZSEpLFxuICAgICAgICBwcm94eVRhcmdldDogUHJveHlUYXJnZXQuZnJvbUluc3RhbmNlKHRoaXMuZGF0YWJhc2UpLFxuICAgICAgICBzZWNyZXRzOiBbdGhpcy5kYXRhYmFzZUNyZWRlbnRpYWxzLnNlY3JldF0sXG4gICAgICAgIHNlY3VyaXR5R3JvdXBzOiBbdGhpcy5kYXRhYmFzZVByb3h5U2VjdXJpdHlHcm91cF0sXG4gICAgICAgIHZwYzogdGhpcy52cGMsXG4gICAgICAgIHZwY1N1Ym5ldHMsXG4gICAgICAgIHJlcXVpcmVUTFM6IHByb3h5Q29uZmlnLnJlcXVpcmVUTFMgPz8gdHJ1ZSxcbiAgICAgICAgYm9ycm93VGltZW91dDogcHJveHlDb25maWcuY29ubmVjdGlvbkJvcnJvd1RpbWVvdXRcbiAgICAgICAgICA/IER1cmF0aW9uLnNlY29uZHMocHJveHlDb25maWcuY29ubmVjdGlvbkJvcnJvd1RpbWVvdXQpXG4gICAgICAgICAgOiBEdXJhdGlvbi5zZWNvbmRzKDEyMCksXG4gICAgICAgIG1heENvbm5lY3Rpb25zUGVyY2VudDogcHJveHlDb25maWcubWF4Q29ubmVjdGlvbnMsXG4gICAgICAgIG1heElkbGVDb25uZWN0aW9uc1BlcmNlbnQ6IHByb3h5Q29uZmlnLm1heElkbGVDb25uZWN0aW9uc1xuICAgICAgfVxuICAgICk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIGAke3Byb3BzLmRhdGFiYXNlTmFtZX1Qcm94eUVuZHBvaW50T3V0cHV0YCwge1xuICAgICAga2V5OiBgJHtwcm9wcy5kYXRhYmFzZU5hbWV9UHJveHlFbmRwb2ludGAsXG4gICAgICBleHBvcnROYW1lOiBgJHtwcm9wcy5kYXRhYmFzZU5hbWV9UHJveHlFbmRwb2ludGAsXG4gICAgICB2YWx1ZTogdGhpcy5kYXRhYmFzZVByb3h5LmVuZHBvaW50XG4gICAgfSk7XG4gIH1cblxuICBhZGRSZWFkUmVwbGljYShwcm9wczogUmRzUHJvcHMpIHtcbiAgICBjb25zdCByZXBsaWNhQ29uZmlnID0gcHJvcHMucmVhZFJlcGxpY2EgYXMgUmVhZFJlcGxpY2FDb25maWc7XG4gICAgY29uc3QgcmVwbGljYUluc3RhbmNlVHlwZSA9XG4gICAgICByZXBsaWNhQ29uZmlnLmluc3RhbmNlVHlwZSA/PyBwcm9wcy5pbnN0YW5jZVR5cGUgPz8gXCJ0NGcubGFyZ2VcIjtcblxuICAgIGNvbnN0IHBpRW5hYmxlZCA9IHByb3BzLnBlcmZvcm1hbmNlSW5zaWdodHMgIT09IGZhbHNlO1xuICAgIGNvbnN0IHBpQ29uZmlnID1cbiAgICAgIHBpRW5hYmxlZCAmJiB0eXBlb2YgcHJvcHMucGVyZm9ybWFuY2VJbnNpZ2h0cyA9PT0gXCJvYmplY3RcIlxuICAgICAgICA/IHByb3BzLnBlcmZvcm1hbmNlSW5zaWdodHNcbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCByZWFkUmVwbGljYVBlcmZvcm1hbmNlSW5zaWdodHNLZXkgPVxuICAgICAgcGlFbmFibGVkICYmIGlzQ01LUmVxdWVzdGVkKHBpQ29uZmlnPy5lbmNyeXB0aW9uS2V5KVxuICAgICAgICA/IG5ldyBDdXN0b21lck1hbmFnZWRLZXkoXG4gICAgICAgICAgICB0aGlzLFxuICAgICAgICAgICAgYCR7cHJvcHMuZGF0YWJhc2VOYW1lfVJlYWRSZXBsaWNhUmVhZGVySW5zaWdodHNLZXlgLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBhbGlhc05hbWU6IGBjbWsvcmRzLyR7cHJvcHMuZGF0YWJhc2VOYW1lfS9SZWFkUmVwbGljYUluc2lnaHRzS2V5YFxuICAgICAgICAgICAgfVxuICAgICAgICAgICkua2V5XG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgdGhpcy5yZWFkUmVwbGljYVNlY3VyaXR5R3JvdXAgPSBuZXcgU2VjdXJpdHlHcm91cChcbiAgICAgIHRoaXMsXG4gICAgICBgJHtwcm9wcy5kYXRhYmFzZU5hbWV9UmVhZFJlcGxpY2FTZWN1cml0eUdyb3VwYCxcbiAgICAgIHtcbiAgICAgICAgdnBjOiB0aGlzLnZwYyxcbiAgICAgICAgZGVzY3JpcHRpb246IGBTZWN1cml0eSBncm91cCBmb3IgUkRTIHJlYWQgcmVwbGljYSBvZiAke3Byb3BzLmRhdGFiYXNlTmFtZX1gXG4gICAgICB9XG4gICAgKTtcblxuICAgIC8vIEFsbG93IHByaW1hcnkgZGF0YWJhc2UgdG8gcmVwbGljYXRlIHRvIHJlYWQgcmVwbGljYVxuICAgIHRoaXMucmVhZFJlcGxpY2FTZWN1cml0eUdyb3VwLmFkZEluZ3Jlc3NSdWxlKFxuICAgICAgdGhpcy5kYXRhYmFzZVNlY3VyaXR5R3JvdXAsXG4gICAgICBQb3J0LnRjcCh0aGlzLnBvcnQpLFxuICAgICAgXCJBbGxvdyBwcmltYXJ5IGRhdGFiYXNlIHRvIHJlcGxpY2F0ZSB0byByZWFkIHJlcGxpY2FcIlxuICAgICk7XG5cbiAgICAvLyBEZWxldGlvbiB3YWl0ZXIgZW5zdXJlcyBwcmltYXJ5IGlzIFwiYXZhaWxhYmxlXCIgYmVmb3JlIENsb3VkRm9ybWF0aW9uIGRlbGV0ZXMgaXQuXG4gICAgLy8gV2hlbiB0aGUgcmVhZCByZXBsaWNhIGlzIGRlbGV0ZWQsIHRoZSBwcmltYXJ5IGVudGVycyBcIm1vZGlmeWluZ1wiIHN0YXRlLlxuICAgIC8vIFdpdGhvdXQgdGhpcyB3YWl0ZXIsIHRoZSBmaW5hbCBzbmFwc2hvdCBjcmVhdGlvbiBmYWlscy5cbiAgICBjb25zdCBpbnN0YW5jZUlkID0gUmVzb3VyY2VOYW1pbmcuZGJJbnN0YW5jZUlkKHByb3BzLmRhdGFiYXNlTmFtZSEpO1xuICAgIGNvbnN0IHdhaXRlclRpbWVvdXQgPSBEdXJhdGlvbi5taW51dGVzKDEwKTtcbiAgICBjb25zdCBkZWxldGlvbldhaXRlciA9IG5ldyBDdXN0b21SZXNvdXJjZShcbiAgICAgIHRoaXMsXG4gICAgICBgJHtwcm9wcy5kYXRhYmFzZU5hbWV9RGVsZXRpb25XYWl0ZXJgLFxuICAgICAge1xuICAgICAgICBydW50aW1lOiBSdW50aW1lLk5PREVKU18xOF9YLFxuICAgICAgICB0aW1lb3V0OiB3YWl0ZXJUaW1lb3V0LnBsdXMoRHVyYXRpb24uc2Vjb25kcygzMCkpLFxuICAgICAgICBsYW1iZGFEZXNjcmlwdGlvbjogYCR7cHJvcHMuZGF0YWJhc2VOYW1lfSBkZWxldGlvbiB3YWl0ZXJgLFxuICAgICAgICBpbmxpbmVDb2RlOiBgXG5jb25zdCB7IFJEU0NsaWVudCB9ID0gcmVxdWlyZSgnQGF3cy1zZGsvY2xpZW50LXJkcycpO1xuY29uc3QgeyB3YWl0VW50aWxEQkluc3RhbmNlQXZhaWxhYmxlIH0gPSByZXF1aXJlKCdAYXdzLXNkay9jbGllbnQtcmRzJyk7XG5cbmV4cG9ydHMuaGFuZGxlciA9IGFzeW5jIChldmVudCkgPT4ge1xuICBjb25zb2xlLmxvZygnRXZlbnQ6JywgSlNPTi5zdHJpbmdpZnkoZXZlbnQsIG51bGwsIDIpKTtcbiAgY29uc3QgaW5zdGFuY2VJZCA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5JbnN0YW5jZUlkZW50aWZpZXI7XG4gIGNvbnN0IHBoeXNpY2FsUmVzb3VyY2VJZCA9IGV2ZW50LlBoeXNpY2FsUmVzb3VyY2VJZCB8fCBldmVudC5Mb2dpY2FsUmVzb3VyY2VJZCB8fCAncmRzLWRlbGV0aW9uLXdhaXRlcic7XG5cbiAgaWYgKGV2ZW50LlJlcXVlc3RUeXBlID09PSAnRGVsZXRlJykge1xuICAgIGNvbnNvbGUubG9nKCdXYWl0aW5nIGZvciBpbnN0YW5jZSB0byBiZSBhdmFpbGFibGU6JywgaW5zdGFuY2VJZCk7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IFJEU0NsaWVudCh7fSk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHdhaXRVbnRpbERCSW5zdGFuY2VBdmFpbGFibGUoXG4gICAgICAgIHsgY2xpZW50LCBtYXhXYWl0VGltZTogJHt3YWl0ZXJUaW1lb3V0LnRvU2Vjb25kcygpfSwgbWluRGVsYXk6IDEwLCBtYXhEZWxheTogMzAgfSxcbiAgICAgICAgeyBEQkluc3RhbmNlSWRlbnRpZmllcjogaW5zdGFuY2VJZCB9XG4gICAgICApO1xuICAgICAgY29uc29sZS5sb2coJ0luc3RhbmNlIGlzIGF2YWlsYWJsZSwgZGVsZXRpb24gY2FuIHByb2NlZWQnKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yLm5hbWUgPT09ICdSZXNvdXJjZU5vdEZvdW5kRXJyb3InIHx8XG4gICAgICAgICAgZXJyb3IubWVzc2FnZT8uaW5jbHVkZXMoJ0RCSW5zdGFuY2VOb3RGb3VuZCcpIHx8XG4gICAgICAgICAgZXJyb3Iuc3RhdGUgPT09ICdGQUlMVVJFJykge1xuICAgICAgICBjb25zb2xlLmxvZygnSW5zdGFuY2Ugbm90IGZvdW5kIG9yIHdhaXRlciBmYWlsZWQsIHByb2NlZWRpbmcgd2l0aCBkZWxldGlvbicpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igd2FpdGluZyBmb3IgaW5zdGFuY2U6JywgZXJyb3IpO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgUGh5c2ljYWxSZXNvdXJjZUlkOiBwaHlzaWNhbFJlc291cmNlSWQgfTtcbn07XG4gICAgICAgIGAsXG4gICAgICAgIGlubGluZVBvbGljeTogW1xuICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgICBhY3Rpb25zOiBbXCJyZHM6RGVzY3JpYmVEQkluc3RhbmNlc1wiXSxcbiAgICAgICAgICAgIHJlc291cmNlczogW1wiKlwiXVxuICAgICAgICAgIH0pXG4gICAgICAgIF0sXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBJbnN0YW5jZUlkZW50aWZpZXI6IGluc3RhbmNlSWQsXG4gICAgICAgICAgVmVyc2lvbjogXCIxLjAuMFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuXG4gICAgZGVsZXRpb25XYWl0ZXIucmVzb3VyY2Uubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMuZGF0YWJhc2UpO1xuXG4gICAgY29uc3QgcmVhZFJlcGxpY2EgPSBuZXcgRGF0YWJhc2VJbnN0YW5jZVJlYWRSZXBsaWNhKFxuICAgICAgdGhpcyxcbiAgICAgIGAke3Byb3BzLmRhdGFiYXNlTmFtZX1SZWFkUmVwbGljYWAsXG4gICAgICB7XG4gICAgICAgIHNvdXJjZURhdGFiYXNlSW5zdGFuY2U6IHRoaXMuZGF0YWJhc2UsXG4gICAgICAgIHZwYzogdGhpcy52cGMsXG4gICAgICAgIHZwY1N1Ym5ldHM6IHtcbiAgICAgICAgICBzdWJuZXRUeXBlOiBTdWJuZXRUeXBlLlBSSVZBVEVfV0lUSF9FR1JFU1NcbiAgICAgICAgfSxcbiAgICAgICAgc2VjdXJpdHlHcm91cHM6IFt0aGlzLnJlYWRSZXBsaWNhU2VjdXJpdHlHcm91cF0sXG4gICAgICAgIGFsbG9jYXRlZFN0b3JhZ2U6IHByb3BzLmFsbG9jYXRlZFN0b3JhZ2UsXG4gICAgICAgIHN0b3JhZ2VFbmNyeXB0ZWQ6IHRydWUsXG4gICAgICAgIHN0b3JhZ2VUeXBlOiBTdG9yYWdlVHlwZS5HUDMsXG4gICAgICAgIGNhQ2VydGlmaWNhdGU6IENhQ2VydGlmaWNhdGUuUkRTX0NBX1JTQTQwOTZfRzEsXG4gICAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgICAgZGVsZXRlQXV0b21hdGVkQmFja3VwczogZmFsc2UsXG4gICAgICAgIGVuYWJsZVBlcmZvcm1hbmNlSW5zaWdodHM6IHBpRW5hYmxlZCxcbiAgICAgICAgcGVyZm9ybWFuY2VJbnNpZ2h0RW5jcnlwdGlvbktleTogcmVhZFJlcGxpY2FQZXJmb3JtYW5jZUluc2lnaHRzS2V5LFxuICAgICAgICBwZXJmb3JtYW5jZUluc2lnaHRSZXRlbnRpb246IHBpRW5hYmxlZFxuICAgICAgICAgID8gdGhpcy5nZXRQZXJmb3JtYW5jZUluc2lnaHRSZXRlbnRpb24ocGlDb25maWc/LnJldGVudGlvblBlcmlvZCA/PyA3KVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICBpbnN0YW5jZUlkZW50aWZpZXI6IFJlc291cmNlTmFtaW5nLnJlYWRSZXBsaWNhSWQocHJvcHMuZGF0YWJhc2VOYW1lISksXG4gICAgICAgIGluc3RhbmNlVHlwZTogbmV3IEluc3RhbmNlVHlwZShyZXBsaWNhSW5zdGFuY2VUeXBlKSxcbiAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZTogcmVwbGljYUNvbmZpZy5hdmFpbGFiaWxpdHlab25lLFxuICAgICAgICBtYXhBbGxvY2F0ZWRTdG9yYWdlOiBwcm9wcy5tYXhBbGxvY2F0ZWRTdG9yYWdlIHx8IDUwMCxcbiAgICAgICAgbW9uaXRvcmluZ0ludGVydmFsOiBwcm9wcy5tb25pdG9yaW5nSW50ZXJ2YWwgfHwgRHVyYXRpb24ubWludXRlcygxKSxcbiAgICAgICAgbXVsdGlBejogcHJvcHMubXVsdGlBeiAhPT0gZmFsc2UsXG4gICAgICAgIHBvcnQ6IHRoaXMucG9ydCxcbiAgICAgICAgZGVsZXRpb25Qcm90ZWN0aW9uOiB0cnVlLFxuICAgICAgICBwcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvdzpcbiAgICAgICAgICBwcm9wcy5wcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvdyB8fCBcIlNhdDoxMjozMC1TYXQ6MjA6MzBcIlxuICAgICAgfVxuICAgICk7XG5cbiAgICByZWFkUmVwbGljYS5ub2RlLmFkZERlcGVuZGVuY3koZGVsZXRpb25XYWl0ZXIucmVzb3VyY2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQZXJmb3JtYW5jZUluc2lnaHRSZXRlbnRpb24oXG4gICAgZGF5cz86IG51bWJlclxuICApOiBQZXJmb3JtYW5jZUluc2lnaHRSZXRlbnRpb24ge1xuICAgIHN3aXRjaCAoZGF5cykge1xuICAgICAgY2FzZSA3OlxuICAgICAgICByZXR1cm4gUGVyZm9ybWFuY2VJbnNpZ2h0UmV0ZW50aW9uLkRFRkFVTFQ7XG4gICAgICBjYXNlIDMxOlxuICAgICAgICByZXR1cm4gUGVyZm9ybWFuY2VJbnNpZ2h0UmV0ZW50aW9uLk1PTlRIU18xO1xuICAgICAgY2FzZSA5MzpcbiAgICAgICAgcmV0dXJuIFBlcmZvcm1hbmNlSW5zaWdodFJldGVudGlvbi5NT05USFNfMztcbiAgICAgIGNhc2UgMTg2OlxuICAgICAgICByZXR1cm4gUGVyZm9ybWFuY2VJbnNpZ2h0UmV0ZW50aW9uLk1PTlRIU182O1xuICAgICAgY2FzZSAzNzI6XG4gICAgICAgIHJldHVybiBQZXJmb3JtYW5jZUluc2lnaHRSZXRlbnRpb24uTU9OVEhTXzEyO1xuICAgICAgY2FzZSA3MzE6XG4gICAgICAgIHJldHVybiBQZXJmb3JtYW5jZUluc2lnaHRSZXRlbnRpb24uTE9OR19URVJNO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIFBlcmZvcm1hbmNlSW5zaWdodFJldGVudGlvbi5NT05USFNfMTtcbiAgICB9XG4gIH1cblxuICBnZXRIb3N0RW5kcG9pbnQoKSB7XG4gICAgaWYgKHRoaXMuZGF0YWJhc2VQcm94eSkge1xuICAgICAgcmV0dXJuIHRoaXMuZGF0YWJhc2VQcm94eS5lbmRwb2ludDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZGF0YWJhc2UuZGJJbnN0YW5jZUVuZHBvaW50QWRkcmVzcztcbiAgICB9XG4gIH1cblxuICBnZXRIb3N0UG9ydCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBTdHJpbmcodGhpcy5wb3J0KTtcbiAgfVxuXG4gIGdldENyZWRlbnRpYWxzKCk6IFNlY3JldCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YWJhc2VDcmVkZW50aWFscztcbiAgfVxuXG4gIHN0YXRpYyBidWlsZChpZDogc3RyaW5nLCBwcm9wczogUmRzUHJvcHMpOiAoc2I6IFN0YWNrQnVpbGRlcikgPT4gQ29uc3RydWN0IHtcbiAgICByZXR1cm4gKHNiOiBTdGFja0J1aWxkZXIpID0+IHtcbiAgICAgIGNvbnN0IG5ld1Byb3BzOiBSZHNQcm9wcyA9IHtcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgIC4uLntcbiAgICAgICAgICB2cGM6IChzYi5nZXROZXR3b3JrKCkgYXMgSVZwYykgfHwgcHJvcHMudnBjLFxuICAgICAgICAgIHNlY3VyaXR5R3JvdXBJZHM6IHByb3BzPy5zZWN1cml0eUdyb3VwSWRzID8/IFtdLFxuICAgICAgICAgIGRhdGFiYXNlTmFtZTogcHJvcHMuZGF0YWJhc2VOYW1lIHx8IGAke2lkLnJlcGxhY2UoXCJSZHNcIiwgXCJcIil9YFxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gbmV3IHRoaXMoc2IuZ2V0U3RhY2soKSwgaWQsIG5ld1Byb3BzKTtcbiAgICB9O1xuICB9XG59XG4iXX0=
339
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmRzSW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy9kYXRhYmFzZS9yZHNJbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBaUU7QUFDakUsaURBUTZCO0FBQzdCLGlEQWU2QjtBQUM3Qix1RUFHd0M7QUFDeEMsdURBQWlEO0FBQ2pELGlEQUE4RDtBQUM5RCwyQ0FBdUM7QUFDdkMsZ0NBQXVDO0FBQ3ZDLHdDQUF3RDtBQUN4RCxnRUFBNkQ7QUFFN0QsNkRBU3dDO0FBQ3hDLGtFQUErRDtBQTRCL0QsTUFBYSxXQUFZLFNBQVEsc0JBQVM7SUFjeEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFlO1FBQ3ZELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFFckIsOEVBQThFO1FBQzlFLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksSUFBSTtZQUN4QyxlQUFlLEVBQUUsVUFBVTtZQUMzQixhQUFhLEVBQUUsRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFO1lBQ3ZDLGVBQWUsRUFBRSw4Q0FBOEM7U0FDaEUsQ0FBQztRQUVGLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFeEIsMEVBQTBFO1FBQzFFLE1BQU0sc0JBQXNCLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxjQUFjLEtBQUssS0FBSyxDQUFDO1FBQzNFLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUN2RCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDbkUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFlO1FBQ3pCLE1BQU0sUUFBUSxHQUNaLEtBQUssQ0FBQyxXQUFXLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDO1FBQ25FLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLGdCQUFNLENBQ25DLElBQUksRUFDSixHQUFHLEtBQUssQ0FBQyxZQUFZLGFBQWEsRUFDbEM7WUFDRSxVQUFVLEVBQUUsR0FBRyxLQUFLLENBQUMsWUFBWSxhQUFhO1lBQzlDLG9CQUFvQixFQUFFO2dCQUNwQixvQkFBb0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO29CQUNuQyxRQUFRO2lCQUNULENBQUM7Z0JBQ0Ysa0JBQWtCLEVBQUUsSUFBSTtnQkFDeEIsWUFBWSxFQUFFLEtBQUs7Z0JBQ25CLGlCQUFpQixFQUFFLFVBQVU7YUFDOUI7U0FDRixDQUNGLENBQUM7UUFFRixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxtQkFBYSxDQUM1QyxJQUFJLEVBQ0osR0FBRyxLQUFLLENBQUMsWUFBWSxlQUFlLEVBQ3BDO1lBQ0UsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2IsV0FBVyxFQUFFLDRDQUE0QyxLQUFLLENBQUMsWUFBWSxFQUFFO1NBQzlFLENBQ0YsQ0FBQztRQUVGLG1EQUFtRDtRQUNuRCxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxDQUN2QyxJQUFJLENBQUMscUJBQXFCLEVBQzFCLGNBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUNwQixDQUFDO1FBRUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLHFCQUFXLENBQUM7WUFDakMsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1lBQzVDLFdBQVcsRUFBRSxjQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDakMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxvQkFBb0IsR0FBRyxJQUFBLHlCQUFjLEVBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUM7WUFDdkUsQ0FBQyxDQUFDLElBQUksNEJBQWtCLENBQ3BCLElBQUksRUFDSixHQUFHLEtBQUssQ0FBQyxZQUFZLHNCQUFzQixFQUMzQyxFQUFFLFNBQVMsRUFBRSxXQUFXLEtBQUssQ0FBQyxZQUFZLGdCQUFnQixFQUFFLENBQzdELENBQUMsR0FBRztZQUNQLENBQUMsQ0FBQyxJQUFBLDBCQUFlLEVBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUM7Z0JBQzNDLEtBQUssQ0FBQyxVQUFVLEVBQUUsVUFBVSxLQUFLLFNBQVM7Z0JBQzVDLENBQUMsQ0FBQyxTQUFTO2dCQUNYLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQztRQUVuQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsbUJBQW1CLEtBQUssS0FBSyxDQUFDO1FBQ3RELE1BQU0sUUFBUSxHQUNaLFNBQVMsSUFBSSxPQUFPLEtBQUssQ0FBQyxtQkFBbUIsS0FBSyxRQUFRO1lBQ3hELENBQUMsQ0FBQyxLQUFLLENBQUMsbUJBQW1CO1lBQzNCLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFaEIsTUFBTSxnQ0FBZ0MsR0FDcEMsU0FBUyxJQUFJLElBQUEseUJBQWMsRUFBQyxRQUFRLEVBQUUsYUFBYSxDQUFDO1lBQ2xELENBQUMsQ0FBQyxJQUFJLDRCQUFrQixDQUNwQixJQUFJLEVBQ0osR0FBRyxLQUFLLENBQUMsWUFBWSx3QkFBd0IsRUFDN0MsRUFBRSxTQUFTLEVBQUUsV0FBVyxLQUFLLENBQUMsWUFBWSxjQUFjLEVBQUUsQ0FDM0QsQ0FBQyxHQUFHO1lBQ1AsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUVoQixNQUFNLDRCQUE0QixHQUFHLFNBQVM7WUFDNUMsQ0FBQyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxRQUFRLEVBQUUsZUFBZSxJQUFJLENBQUMsQ0FBQztZQUNyRSxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRWQsTUFBTSxNQUFNLEdBQ1YsS0FBSyxDQUFDLE1BQU07WUFDWixnQ0FBc0IsQ0FBQyxRQUFRLENBQUM7Z0JBQzlCLE9BQU8sRUFBRSwrQkFBcUIsQ0FBQyxRQUFRO2FBQ3hDLENBQUMsQ0FBQztRQUVMLE1BQU0sY0FBYyxHQUFHLElBQUksd0JBQWMsQ0FDdkMsSUFBSSxFQUNKLEdBQUcsS0FBSyxDQUFDLFlBQVksZ0JBQWdCLEVBQ3JDO1lBQ0UsTUFBTTtZQUNOLFdBQVcsRUFBRSx1QkFBdUIsS0FBSyxDQUFDLFlBQVkseUJBQXlCO1lBQy9FLFVBQVUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWE7U0FDNUMsQ0FDRixDQUFDO1FBRUYsdUZBQXVGO1FBQ3ZGLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxrQkFBa0I7WUFDekMsQ0FBQyxDQUFDLG9CQUFVLENBQUMsTUFBTTtZQUNuQixDQUFDLENBQUMsb0JBQVUsQ0FBQyxtQkFBbUIsQ0FBQztRQUVuQyxNQUFNLG1CQUFtQixHQUFHO1lBQzFCLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNiLFVBQVUsRUFBRTtnQkFDVixVQUFVO2FBQ1g7WUFDRCxjQUFjLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUM7WUFDNUMsTUFBTTtZQUNOLGNBQWM7WUFDZCxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO1lBQ3hDLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZSxJQUFJLHNCQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMzRCxxQkFBcUIsRUFBRSxLQUFLLENBQUMscUJBQXFCLElBQUksYUFBYTtZQUNuRSxnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLG9CQUFvQjtZQUNwQixXQUFXLEVBQUUscUJBQVcsQ0FBQyxHQUFHO1lBQzVCLGFBQWEsRUFBRSx1QkFBYSxDQUFDLGlCQUFpQjtZQUM5QyxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxRQUFRO1lBQ3JDLHNCQUFzQixFQUFFLEtBQUs7WUFDN0IseUJBQXlCLEVBQUUsU0FBUztZQUNwQywrQkFBK0IsRUFBRSxnQ0FBZ0M7WUFDakUsMkJBQTJCLEVBQUUsNEJBQTRCO1lBQ3pELGtCQUFrQixFQUFFLCtCQUFjLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxZQUFhLENBQUM7WUFDcEUsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO2dCQUM5QixDQUFDLENBQUMsSUFBSSxzQkFBWSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7Z0JBQ3RDLENBQUMsQ0FBQyxJQUFJLHNCQUFZLENBQUMsV0FBVyxDQUFDO1lBQ2pDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxHQUFHO1lBQ3JELGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDbkUsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLEtBQUssS0FBSztZQUNoQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixrQkFBa0IsRUFBRSxJQUFJO1lBQ3hCLDBCQUEwQixFQUN4QixLQUFLLENBQUMsMEJBQTBCLElBQUkscUJBQXFCO1lBQzNELGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxLQUFLO1NBQ3RELENBQUM7UUFFRixJQUFJLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzdCLHVCQUF1QjtZQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksc0NBQTRCLENBQzlDLElBQUksRUFDSixHQUFHLEtBQUssQ0FBQyxZQUFZLFVBQVUsRUFDL0I7Z0JBQ0UsR0FBRyxtQkFBbUI7Z0JBQ3RCLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0I7Z0JBQzVDLDREQUE0RDtnQkFDNUQsV0FBVyxFQUFFLDZCQUFtQixDQUFDLFVBQVUsQ0FDekMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FDaEM7YUFDRixDQUNGLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLHNCQUFzQjtZQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksMEJBQWdCLENBQ2xDLElBQUksRUFDSixHQUFHLEtBQUssQ0FBQyxZQUFZLFVBQVUsRUFDL0I7Z0JBQ0UsR0FBRyxtQkFBbUI7Z0JBQ3RCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtnQkFDaEMsV0FBVyxFQUFFLHFCQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUM7YUFDckUsQ0FDRixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsS0FBZTtRQUMxQixNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQztRQUN6RCxNQUFNLGNBQWMsR0FDbEIsQ0FBQyxPQUFPLGNBQWMsS0FBSyxRQUFRO1lBQ2pDLGNBQWMsRUFBRSxrQkFBa0IsQ0FBQztZQUNyQyxzQkFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVwQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksZ0JBQU0sQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsWUFBWSxjQUFjLEVBQUU7WUFDeEUsVUFBVSxFQUFFLEdBQUcsS0FBSyxDQUFDLFlBQVksY0FBYztTQUNoRCxDQUFDLENBQUM7UUFFSCxJQUFJLG1DQUFjLENBQUMsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLFlBQVksZ0JBQWdCLEVBQUU7WUFDOUQsV0FBVyxFQUFFLElBQUksOENBQXlCLENBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUNqQyxTQUFTLEVBQ1QsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQ3RCO1lBQ0QsTUFBTSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNO1lBQ3ZDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU07WUFDdEMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3JCLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUc7WUFDdEIsa0JBQWtCLEVBQUUsY0FBYztTQUNuQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWU7UUFDdEIsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLEtBQW9CLENBQUM7UUFDL0MsTUFBTSxVQUFVLEdBQW9CLFdBQVcsQ0FBQyxVQUFVLElBQUk7WUFDNUQsVUFBVSxFQUFFLG9CQUFVLENBQUMsbUJBQW1CO1NBQzNDLENBQUM7UUFFRixJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxtQkFBYSxDQUNqRCxJQUFJLEVBQ0osR0FBRyxLQUFLLENBQUMsWUFBWSxvQkFBb0IsRUFDekM7WUFDRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDYixXQUFXLEVBQUUsb0NBQW9DLEtBQUssQ0FBQyxZQUFZLEVBQUU7U0FDdEUsQ0FDRixDQUFDO1FBRUYscUNBQXFDO1FBQ3JDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQ3ZDLElBQUksQ0FBQywwQkFBMEIsRUFDL0IsY0FBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQ25CLHdDQUF3QyxDQUN6QyxDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLHVCQUFhLENBQ3BDLElBQUksRUFDSixHQUFHLEtBQUssQ0FBQyxZQUFZLGVBQWUsRUFDcEM7WUFDRSxXQUFXLEVBQUUsK0JBQWMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFlBQWEsQ0FBQztZQUMxRCxXQUFXLEVBQUUscUJBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNwRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDO1lBQzFDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQztZQUNqRCxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDYixVQUFVO1lBQ1YsVUFBVSxFQUFFLFdBQVcsQ0FBQyxVQUFVLElBQUksSUFBSTtZQUMxQyxhQUFhLEVBQUUsV0FBVyxDQUFDLHVCQUF1QjtnQkFDaEQsQ0FBQyxDQUFDLHNCQUFRLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDdkQsQ0FBQyxDQUFDLHNCQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUN6QixxQkFBcUIsRUFBRSxXQUFXLENBQUMsY0FBYztZQUNqRCx5QkFBeUIsRUFBRSxXQUFXLENBQUMsa0JBQWtCO1NBQzFELENBQ0YsQ0FBQztRQUVGLElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsWUFBWSxxQkFBcUIsRUFBRTtZQUM5RCxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUMsWUFBWSxlQUFlO1lBQ3pDLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQyxZQUFZLGVBQWU7WUFDaEQsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUTtTQUNuQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQWU7UUFDNUIsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLFdBQWdDLENBQUM7UUFDN0QsTUFBTSxtQkFBbUIsR0FDdkIsYUFBYSxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsWUFBWSxJQUFJLFdBQVcsQ0FBQztRQUVsRSxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsbUJBQW1CLEtBQUssS0FBSyxDQUFDO1FBQ3RELE1BQU0sUUFBUSxHQUNaLFNBQVMsSUFBSSxPQUFPLEtBQUssQ0FBQyxtQkFBbUIsS0FBSyxRQUFRO1lBQ3hELENBQUMsQ0FBQyxLQUFLLENBQUMsbUJBQW1CO1lBQzNCLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFaEIsTUFBTSxpQ0FBaUMsR0FDckMsU0FBUyxJQUFJLElBQUEseUJBQWMsRUFBQyxRQUFRLEVBQUUsYUFBYSxDQUFDO1lBQ2xELENBQUMsQ0FBQyxJQUFJLDRCQUFrQixDQUNwQixJQUFJLEVBQ0osR0FBRyxLQUFLLENBQUMsWUFBWSw4QkFBOEIsRUFDbkQ7Z0JBQ0UsU0FBUyxFQUFFLFdBQVcsS0FBSyxDQUFDLFlBQVkseUJBQXlCO2FBQ2xFLENBQ0YsQ0FBQyxHQUFHO1lBQ1AsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUVoQixJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxtQkFBYSxDQUMvQyxJQUFJLEVBQ0osR0FBRyxLQUFLLENBQUMsWUFBWSwwQkFBMEIsRUFDL0M7WUFDRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDYixXQUFXLEVBQUUsMENBQTBDLEtBQUssQ0FBQyxZQUFZLEVBQUU7U0FDNUUsQ0FDRixDQUFDO1FBRUYsc0RBQXNEO1FBQ3RELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxjQUFjLENBQzFDLElBQUksQ0FBQyxxQkFBcUIsRUFDMUIsY0FBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQ25CLHFEQUFxRCxDQUN0RCxDQUFDO1FBRUYsbUZBQW1GO1FBQ25GLDBFQUEwRTtRQUMxRSwwREFBMEQ7UUFDMUQsTUFBTSxVQUFVLEdBQUcsK0JBQWMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFlBQWEsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sYUFBYSxHQUFHLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sY0FBYyxHQUFHLElBQUksK0JBQWMsQ0FDdkMsSUFBSSxFQUNKLEdBQUcsS0FBSyxDQUFDLFlBQVksZ0JBQWdCLEVBQ3JDO1lBQ0UsT0FBTyxFQUFFLG9CQUFPLENBQUMsV0FBVztZQUM1QixPQUFPLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNqRCxpQkFBaUIsRUFBRSxHQUFHLEtBQUssQ0FBQyxZQUFZLGtCQUFrQjtZQUMxRCxVQUFVLEVBQUU7Ozs7Ozs7Ozs7Ozs7O2lDQWNhLGFBQWEsQ0FBQyxTQUFTLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBaUJqRDtZQUNELFlBQVksRUFBRTtnQkFDWixJQUFJLHlCQUFlLENBQUM7b0JBQ2xCLE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7b0JBQ3BCLE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO29CQUNwQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7aUJBQ2pCLENBQUM7YUFDSDtZQUNELFVBQVUsRUFBRTtnQkFDVixrQkFBa0IsRUFBRSxVQUFVO2dCQUM5QixPQUFPLEVBQUUsT0FBTzthQUNqQjtTQUNGLENBQ0YsQ0FBQztRQUVGLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFMUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxxQ0FBMkIsQ0FDakQsSUFBSSxFQUNKLEdBQUcsS0FBSyxDQUFDLFlBQVksYUFBYSxFQUNsQztZQUNFLHNCQUFzQixFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3JDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNiLFVBQVUsRUFBRTtnQkFDVixVQUFVLEVBQUUsb0JBQVUsQ0FBQyxtQkFBbUI7YUFDM0M7WUFDRCxjQUFjLEVBQUUsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUM7WUFDL0MsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtZQUN4QyxnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLFdBQVcsRUFBRSxxQkFBVyxDQUFDLEdBQUc7WUFDNUIsYUFBYSxFQUFFLHVCQUFhLENBQUMsaUJBQWlCO1lBQzlDLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE9BQU87WUFDcEMsc0JBQXNCLEVBQUUsS0FBSztZQUM3Qix5QkFBeUIsRUFBRSxTQUFTO1lBQ3BDLCtCQUErQixFQUFFLGlDQUFpQztZQUNsRSwyQkFBMkIsRUFBRSxTQUFTO2dCQUNwQyxDQUFDLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLFFBQVEsRUFBRSxlQUFlLElBQUksQ0FBQyxDQUFDO2dCQUNyRSxDQUFDLENBQUMsU0FBUztZQUNiLGtCQUFrQixFQUFFLCtCQUFjLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxZQUFhLENBQUM7WUFDckUsWUFBWSxFQUFFLElBQUksc0JBQVksQ0FBQyxtQkFBbUIsQ0FBQztZQUNuRCxnQkFBZ0IsRUFBRSxhQUFhLENBQUMsZ0JBQWdCO1lBQ2hELG1CQUFtQixFQUFFLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxHQUFHO1lBQ3JELGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDbkUsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLEtBQUssS0FBSztZQUNoQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixrQkFBa0IsRUFBRSxJQUFJO1lBQ3hCLDBCQUEwQixFQUN4QixLQUFLLENBQUMsMEJBQTBCLElBQUkscUJBQXFCO1NBQzVELENBQ0YsQ0FBQztRQUVGLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU8sOEJBQThCLENBQ3BDLElBQWE7UUFFYixRQUFRLElBQUksRUFBRSxDQUFDO1lBQ2IsS0FBSyxDQUFDO2dCQUNKLE9BQU8scUNBQTJCLENBQUMsT0FBTyxDQUFDO1lBQzdDLEtBQUssRUFBRTtnQkFDTCxPQUFPLHFDQUEyQixDQUFDLFFBQVEsQ0FBQztZQUM5QyxLQUFLLEVBQUU7Z0JBQ0wsT0FBTyxxQ0FBMkIsQ0FBQyxRQUFRLENBQUM7WUFDOUMsS0FBSyxHQUFHO2dCQUNOLE9BQU8scUNBQTJCLENBQUMsUUFBUSxDQUFDO1lBQzlDLEtBQUssR0FBRztnQkFDTixPQUFPLHFDQUEyQixDQUFDLFNBQVMsQ0FBQztZQUMvQyxLQUFLLEdBQUc7Z0JBQ04sT0FBTyxxQ0FBMkIsQ0FBQyxTQUFTLENBQUM7WUFDL0M7Z0JBQ0UsT0FBTyxxQ0FBMkIsQ0FBQyxRQUFRLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztRQUNyQyxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFVLEVBQUUsS0FBZTtRQUN0QyxPQUFPLENBQUMsRUFBZ0IsRUFBRSxFQUFFO1lBQzFCLE1BQU0sUUFBUSxHQUFhO2dCQUN6QixHQUFHLEtBQUs7Z0JBQ1IsR0FBRztvQkFDRCxHQUFHLEVBQUcsRUFBRSxDQUFDLFVBQVUsRUFBVyxJQUFJLEtBQUssQ0FBQyxHQUFHO29CQUMzQyxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLElBQUksRUFBRTtvQkFDL0MsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRTtpQkFDL0Q7YUFDRixDQUFDO1lBRUYsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXZjRCxrQ0F1Y0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZm5PdXRwdXQsIER1cmF0aW9uLCBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1xuICBDb25uZWN0aW9ucyxcbiAgdHlwZSBJQ29ubmVjdGFibGUsXG4gIEluc3RhbmNlVHlwZSxcbiAgdHlwZSBJVnBjLFxuICBQb3J0LFxuICB0eXBlIFN1Ym5ldFNlbGVjdGlvbixcbiAgU3VibmV0VHlwZVxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHtcbiAgQ2FDZXJ0aWZpY2F0ZSxcbiAgQ3JlZGVudGlhbHMsXG4gIERhdGFiYXNlSW5zdGFuY2UsXG4gIERhdGFiYXNlSW5zdGFuY2VGcm9tU25hcHNob3QsXG4gIERhdGFiYXNlSW5zdGFuY2VFbmdpbmUsXG4gIERhdGFiYXNlSW5zdGFuY2VSZWFkUmVwbGljYSxcbiAgRGF0YWJhc2VQcm94eSxcbiAgdHlwZSBJSW5zdGFuY2VFbmdpbmUsXG4gIFBhcmFtZXRlckdyb3VwLFxuICBQZXJmb3JtYW5jZUluc2lnaHRSZXRlbnRpb24sXG4gIFBvc3RncmVzRW5naW5lVmVyc2lvbixcbiAgUHJveHlUYXJnZXQsXG4gIFNuYXBzaG90Q3JlZGVudGlhbHMsXG4gIFN0b3JhZ2VUeXBlXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtcmRzXCI7XG5pbXBvcnQge1xuICBTZWNyZXRSb3RhdGlvbixcbiAgU2VjcmV0Um90YXRpb25BcHBsaWNhdGlvblxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyXCI7XG5pbXBvcnQgeyBSdW50aW1lIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCwgRWZmZWN0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBTZWN1cml0eUdyb3VwIH0gZnJvbSBcIi4uL2lhbVwiO1xuaW1wb3J0IHsgQ3VzdG9tZXJNYW5hZ2VkS2V5LCBTZWNyZXQgfSBmcm9tIFwiLi4vc2VjcmV0c1wiO1xuaW1wb3J0IHsgQ3VzdG9tUmVzb3VyY2UgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2N1c3RvbVJlc291cmNlXCI7XG5pbXBvcnQgeyB0eXBlIFN0YWNrQnVpbGRlciB9IGZyb20gXCIuLi9iYXNlL2F3c1N0YWNrXCI7XG5pbXBvcnQge1xuICB0eXBlIEVuZ2luZUNvbmZpZyxcbiAgdHlwZSBQcm94eUNvbmZpZyxcbiAgdHlwZSBSZWFkUmVwbGljYUNvbmZpZyxcbiAgdHlwZSBDcmVkZW50aWFsc0NvbmZpZyxcbiAgdHlwZSBFbmNyeXB0aW9uQ29uZmlnLFxuICB0eXBlIFBlcmZvcm1hbmNlSW5zaWdodHNDb25maWcsXG4gIGlzQXdzTWFuYWdlZEtleSxcbiAgaXNDTUtSZXF1ZXN0ZWRcbn0gZnJvbSBcIi4uLy4uLy4uL3BhdHRlcm5zL2F3cy9kYXRhYmFzZVwiO1xuaW1wb3J0IHsgUmVzb3VyY2VOYW1pbmcgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvcmVzb3VyY2VOYW1pbmdcIjtcblxuaW50ZXJmYWNlIFJkc1Byb3BzIHtcbiAgdnBjOiBJVnBjO1xuICBkYXRhYmFzZU5hbWU/OiBzdHJpbmc7XG4gIGVuZ2luZT86IElJbnN0YW5jZUVuZ2luZTtcbiAgZW5naW5lQ29uZmlnPzogRW5naW5lQ29uZmlnO1xuICBpbnN0YW5jZVR5cGU/OiBzdHJpbmc7XG4gIG1heEFsbG9jYXRlZFN0b3JhZ2U/OiBudW1iZXI7XG4gIGFsbG9jYXRlZFN0b3JhZ2U/OiBudW1iZXI7XG4gIGJhY2t1cFJldGVudGlvbj86IER1cmF0aW9uO1xuICBwcmVmZXJyZWRCYWNrdXBXaW5kb3c/OiBzdHJpbmc7XG4gIGNsdXN0ZXJJZGVudGlmaWVyPzogc3RyaW5nO1xuICBtb25pdG9yaW5nSW50ZXJ2YWw/OiBEdXJhdGlvbjtcbiAgcHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3c/OiBzdHJpbmc7XG4gIHBvcnQ/OiBudW1iZXI7XG4gIHBlcmZvcm1hbmNlSW5zaWdodHM/OiBQZXJmb3JtYW5jZUluc2lnaHRzQ29uZmlnIHwgZmFsc2U7XG4gIHNlY3VyaXR5R3JvdXBJZHM/OiBzdHJpbmdbXTtcbiAgbXVsdGlBej86IGJvb2xlYW47XG4gIHByb3h5PzogUHJveHlDb25maWcgfCBmYWxzZTtcbiAgcmVhZFJlcGxpY2E/OiBSZWFkUmVwbGljYUNvbmZpZyB8IGZhbHNlO1xuICBjcmVkZW50aWFscz86IENyZWRlbnRpYWxzQ29uZmlnO1xuICBlbmNyeXB0aW9uPzogRW5jcnlwdGlvbkNvbmZpZztcbiAgcHVibGljbHlBY2Nlc3NpYmxlPzogYm9vbGVhbjtcbiAgLyoqIEFSTiBvciBpZGVudGlmaWVyIG9mIERCIGluc3RhbmNlIHNuYXBzaG90IHRvIHJlc3RvcmUgZnJvbSAqL1xuICBzbmFwc2hvdElkZW50aWZpZXI/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBSZHNJbnN0YW5jZSBleHRlbmRzIENvbnN0cnVjdCBpbXBsZW1lbnRzIElDb25uZWN0YWJsZSB7XG4gIHB1YmxpYyBjb25uZWN0aW9uczogQ29ubmVjdGlvbnM7XG4gIHB1YmxpYyBkYXRhYmFzZVNlY3VyaXR5R3JvdXA6IFNlY3VyaXR5R3JvdXA7XG4gIHB1YmxpYyB2cGM6IElWcGM7XG5cbiAgcHJpdmF0ZSBwb3J0OiBudW1iZXI7XG4gIHByaXZhdGUgZW5naW5lQ29uZmlnOiBFbmdpbmVDb25maWc7XG4gIHByaXZhdGUgZGF0YWJhc2VDcmVkZW50aWFsczogU2VjcmV0O1xuICBwcml2YXRlIGRhdGFiYXNlOiBEYXRhYmFzZUluc3RhbmNlO1xuICBwcml2YXRlIG1hc3RlclNlY3JldDogU2VjcmV0O1xuICBwcml2YXRlIGRhdGFiYXNlUHJveHk6IERhdGFiYXNlUHJveHk7XG4gIHByaXZhdGUgZGF0YWJhc2VQcm94eVNlY3VyaXR5R3JvdXA6IFNlY3VyaXR5R3JvdXA7XG4gIHByaXZhdGUgcmVhZFJlcGxpY2FTZWN1cml0eUdyb3VwOiBTZWN1cml0eUdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSZHNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnBvcnQgPSBwcm9wcy5wb3J0IHx8IDM1MjU1O1xuICAgIHRoaXMudnBjID0gcHJvcHMudnBjO1xuXG4gICAgLy8gUG9zdGdyZVNRTCBmYWxsYmFjayBmb3IgZGlyZWN0IHVzYWdlIC0gZW5zdXJlIGVuZ2luZSBhbmQgZW5naW5lQ29uZmlnIG1hdGNoXG4gICAgdGhpcy5lbmdpbmVDb25maWcgPSBwcm9wcy5lbmdpbmVDb25maWcgPz8ge1xuICAgICAgZGVmYXVsdFVzZXJuYW1lOiBcInBvc3RncmVzXCIsXG4gICAgICBzc2xQYXJhbWV0ZXJzOiB7IFwicmRzLmZvcmNlX3NzbFwiOiBcIjFcIiB9LFxuICAgICAgcm90YXRpb25BcHBOYW1lOiBcIlNlY3JldHNNYW5hZ2VyUkRTUG9zdGdyZVNRTFJvdGF0aW9uTXVsdGlVc2VyXCJcbiAgICB9O1xuXG4gICAgdGhpcy5hZGREYXRhYmFzZShwcm9wcyk7XG5cbiAgICAvLyBTZWNyZXQgcm90YXRpb24gZW5hYmxlZCBieSBkZWZhdWx0IChvcHQtb3V0IHdpdGggc2VjcmV0Um90YXRpb246IGZhbHNlKVxuICAgIGNvbnN0IHNlY3JldFJvdGF0aW9uRGlzYWJsZWQgPSBwcm9wcy5jcmVkZW50aWFscz8uc2VjcmV0Um90YXRpb24gPT09IGZhbHNlO1xuICAgIGlmICghc2VjcmV0Um90YXRpb25EaXNhYmxlZCkge1xuICAgICAgdGhpcy5yb3RhdGVTZWNyZXQocHJvcHMpO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5wcm94eSAhPT0gdW5kZWZpbmVkICYmIHByb3BzLnByb3h5ICE9PSBmYWxzZSkge1xuICAgICAgdGhpcy5hZGRQcm94eShwcm9wcyk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnJlYWRSZXBsaWNhICE9PSB1bmRlZmluZWQgJiYgcHJvcHMucmVhZFJlcGxpY2EgIT09IGZhbHNlKSB7XG4gICAgICB0aGlzLmFkZFJlYWRSZXBsaWNhKHByb3BzKTtcbiAgICB9XG4gIH1cblxuICBhZGREYXRhYmFzZShwcm9wczogUmRzUHJvcHMpIHtcbiAgICBjb25zdCB1c2VybmFtZSA9XG4gICAgICBwcm9wcy5jcmVkZW50aWFscz8udXNlcm5hbWUgPz8gdGhpcy5lbmdpbmVDb25maWcuZGVmYXVsdFVzZXJuYW1lO1xuICAgIHRoaXMuZGF0YWJhc2VDcmVkZW50aWFscyA9IG5ldyBTZWNyZXQoXG4gICAgICB0aGlzLFxuICAgICAgYCR7cHJvcHMuZGF0YWJhc2VOYW1lfUNyZWRlbnRpYWxzYCxcbiAgICAgIHtcbiAgICAgICAgc2VjcmV0TmFtZTogYCR7cHJvcHMuZGF0YWJhc2VOYW1lfUNyZWRlbnRpYWxzYCxcbiAgICAgICAgZ2VuZXJhdGVTZWNyZXRTdHJpbmc6IHtcbiAgICAgICAgICBzZWNyZXRTdHJpbmdUZW1wbGF0ZTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgdXNlcm5hbWVcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBleGNsdWRlUHVuY3R1YXRpb246IHRydWUsXG4gICAgICAgICAgaW5jbHVkZVNwYWNlOiBmYWxzZSxcbiAgICAgICAgICBnZW5lcmF0ZVN0cmluZ0tleTogXCJwYXNzd29yZFwiXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5kYXRhYmFzZVNlY3VyaXR5R3JvdXAgPSBuZXcgU2VjdXJpdHlHcm91cChcbiAgICAgIHRoaXMsXG4gICAgICBgJHtwcm9wcy5kYXRhYmFzZU5hbWV9U2VjdXJpdHlHcm91cGAsXG4gICAgICB7XG4gICAgICAgIHZwYzogdGhpcy52cGMsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgU2VjdXJpdHkgZ3JvdXAgZm9yIFJEUyBkYXRhYmFzZSBpbnN0YW5jZSAke3Byb3BzLmRhdGFiYXNlTmFtZX1gXG4gICAgICB9XG4gICAgKTtcblxuICAgIC8vIFNlbGYtcmVmZXJlbmNpbmcgcnVsZSBmb3IgbXVsdGktQVogY29tbXVuaWNhdGlvblxuICAgIHRoaXMuZGF0YWJhc2VTZWN1cml0eUdyb3VwLmFkZEluZ3Jlc3NSdWxlKFxuICAgICAgdGhpcy5kYXRhYmFzZVNlY3VyaXR5R3JvdXAsXG4gICAgICBQb3J0LnRjcCh0aGlzLnBvcnQpXG4gICAgKTtcblxuICAgIHRoaXMuY29ubmVjdGlvbnMgPSBuZXcgQ29ubmVjdGlvbnMoe1xuICAgICAgc2VjdXJpdHlHcm91cHM6IFt0aGlzLmRhdGFiYXNlU2VjdXJpdHlHcm91cF0sXG4gICAgICBkZWZhdWx0UG9ydDogUG9ydC50Y3AodGhpcy5wb3J0KVxuICAgIH0pO1xuXG4gICAgY29uc3Qgc3RvcmFnZUVuY3J5cHRpb25LZXkgPSBpc0NNS1JlcXVlc3RlZChwcm9wcy5lbmNyeXB0aW9uPy5zdG9yYWdlS2V5KVxuICAgICAgPyBuZXcgQ3VzdG9tZXJNYW5hZ2VkS2V5KFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgYCR7cHJvcHMuZGF0YWJhc2VOYW1lfUNsdXN0ZXJFbmNyeXB0aW9uS2V5YCxcbiAgICAgICAgICB7IGFsaWFzTmFtZTogYGNtay9yZHMvJHtwcm9wcy5kYXRhYmFzZU5hbWV9L2VuY3J5cHRpb25LZXlgIH1cbiAgICAgICAgKS5rZXlcbiAgICAgIDogaXNBd3NNYW5hZ2VkS2V5KHByb3BzLmVuY3J5cHRpb24/LnN0b3JhZ2VLZXkpIHx8XG4gICAgICAgICAgcHJvcHMuZW5jcnlwdGlvbj8uc3RvcmFnZUtleSA9PT0gdW5kZWZpbmVkXG4gICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgIDogcHJvcHMuZW5jcnlwdGlvbj8uc3RvcmFnZUtleTtcblxuICAgIGNvbnN0IHBpRW5hYmxlZCA9IHByb3BzLnBlcmZvcm1hbmNlSW5zaWdodHMgIT09IGZhbHNlO1xuICAgIGNvbnN0IHBpQ29uZmlnID1cbiAgICAgIHBpRW5hYmxlZCAmJiB0eXBlb2YgcHJvcHMucGVyZm9ybWFuY2VJbnNpZ2h0cyA9PT0gXCJvYmplY3RcIlxuICAgICAgICA/IHByb3BzLnBlcmZvcm1hbmNlSW5zaWdodHNcbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBwZXJmb3JtYW5jZUluc2lnaHRzRW5jcnlwdGlvbktleSA9XG4gICAgICBwaUVuYWJsZWQgJiYgaXNDTUtSZXF1ZXN0ZWQocGlDb25maWc/LmVuY3J5cHRpb25LZXkpXG4gICAgICAgID8gbmV3IEN1c3RvbWVyTWFuYWdlZEtleShcbiAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICBgJHtwcm9wcy5kYXRhYmFzZU5hbWV9UGVyZm9ybWFuY2VJbnNpZ2h0c0tleWAsXG4gICAgICAgICAgICB7IGFsaWFzTmFtZTogYGNtay9yZHMvJHtwcm9wcy5kYXRhYmFzZU5hbWV9L0luc2lnaHRzS2V5YCB9XG4gICAgICAgICAgKS5rZXlcbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBwZXJmb3JtYW5jZUluc2lnaHRzUmV0ZW50aW9uID0gcGlFbmFibGVkXG4gICAgICA/IHRoaXMuZ2V0UGVyZm9ybWFuY2VJbnNpZ2h0UmV0ZW50aW9uKHBpQ29uZmlnPy5yZXRlbnRpb25QZXJpb2QgPz8gNylcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgZW5naW5lID1cbiAgICAgIHByb3BzLmVuZ2luZSB8fFxuICAgICAgRGF0YWJhc2VJbnN0YW5jZUVuZ2luZS5wb3N0Z3Jlcyh7XG4gICAgICAgIHZlcnNpb246IFBvc3RncmVzRW5naW5lVmVyc2lvbi5WRVJfMTdfNVxuICAgICAgfSk7XG5cbiAgICBjb25zdCBwYXJhbWV0ZXJHcm91cCA9IG5ldyBQYXJhbWV0ZXJHcm91cChcbiAgICAgIHRoaXMsXG4gICAgICBgJHtwcm9wcy5kYXRhYmFzZU5hbWV9UGFyYW1ldGVyR3JvdXBgLFxuICAgICAge1xuICAgICAgICBlbmdpbmUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgUGFyYW1ldGVyIGdyb3VwIGZvciAke3Byb3BzLmRhdGFiYXNlTmFtZX0gd2l0aCBzZWN1cml0eSBkZWZhdWx0c2AsXG4gICAgICAgIHBhcmFtZXRlcnM6IHRoaXMuZW5naW5lQ29uZmlnLnNzbFBhcmFtZXRlcnNcbiAgICAgIH1cbiAgICApO1xuXG4gICAgLy8gVXNlIFBVQkxJQyBzdWJuZXQgZm9yIHB1YmxpY2x5QWNjZXNzaWJsZSBkYXRhYmFzZXMgKGUuZy4sIHRpbmtlcmVyIHRpZXIgd2l0aG91dCBOQVQpXG4gICAgY29uc3Qgc3VibmV0VHlwZSA9IHByb3BzLnB1YmxpY2x5QWNjZXNzaWJsZVxuICAgICAgPyBTdWJuZXRUeXBlLlBVQkxJQ1xuICAgICAgOiBTdWJuZXRUeXBlLlBSSVZBVEVfV0lUSF9FR1JFU1M7XG5cbiAgICBjb25zdCBjb21tb25JbnN0YW5jZVByb3BzID0ge1xuICAgICAgdnBjOiB0aGlzLnZwYyxcbiAgICAgIHZwY1N1Ym5ldHM6IHtcbiAgICAgICAgc3VibmV0VHlwZVxuICAgICAgfSxcbiAgICAgIHNlY3VyaXR5R3JvdXBzOiBbdGhpcy5kYXRhYmFzZVNlY3VyaXR5R3JvdXBdLFxuICAgICAgZW5naW5lLFxuICAgICAgcGFyYW1ldGVyR3JvdXAsXG4gICAgICBhbGxvY2F0ZWRTdG9yYWdlOiBwcm9wcy5hbGxvY2F0ZWRTdG9yYWdlLFxuICAgICAgYmFja3VwUmV0ZW50aW9uOiBwcm9wcy5iYWNrdXBSZXRlbnRpb24gfHwgRHVyYXRpb24uZGF5cygxNCksXG4gICAgICBwcmVmZXJyZWRCYWNrdXBXaW5kb3c6IHByb3BzLnByZWZlcnJlZEJhY2t1cFdpbmRvdyB8fCBcIjAyOjAwLTAzOjAwXCIsXG4gICAgICBzdG9yYWdlRW5jcnlwdGVkOiB0cnVlLFxuICAgICAgc3RvcmFnZUVuY3J5cHRpb25LZXksXG4gICAgICBzdG9yYWdlVHlwZTogU3RvcmFnZVR5cGUuR1AzLFxuICAgICAgY2FDZXJ0aWZpY2F0ZTogQ2FDZXJ0aWZpY2F0ZS5SRFNfQ0FfUlNBNDA5Nl9HMSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuU05BUFNIT1QsXG4gICAgICBkZWxldGVBdXRvbWF0ZWRCYWNrdXBzOiBmYWxzZSxcbiAgICAgIGVuYWJsZVBlcmZvcm1hbmNlSW5zaWdodHM6IHBpRW5hYmxlZCxcbiAgICAgIHBlcmZvcm1hbmNlSW5zaWdodEVuY3J5cHRpb25LZXk6IHBlcmZvcm1hbmNlSW5zaWdodHNFbmNyeXB0aW9uS2V5LFxuICAgICAgcGVyZm9ybWFuY2VJbnNpZ2h0UmV0ZW50aW9uOiBwZXJmb3JtYW5jZUluc2lnaHRzUmV0ZW50aW9uLFxuICAgICAgaW5zdGFuY2VJZGVudGlmaWVyOiBSZXNvdXJjZU5hbWluZy5kYkluc3RhbmNlSWQocHJvcHMuZGF0YWJhc2VOYW1lISksXG4gICAgICBpbnN0YW5jZVR5cGU6IHByb3BzLmluc3RhbmNlVHlwZVxuICAgICAgICA/IG5ldyBJbnN0YW5jZVR5cGUocHJvcHMuaW5zdGFuY2VUeXBlKVxuICAgICAgICA6IG5ldyBJbnN0YW5jZVR5cGUoXCJ0NGcubGFyZ2VcIiksXG4gICAgICBtYXhBbGxvY2F0ZWRTdG9yYWdlOiBwcm9wcy5tYXhBbGxvY2F0ZWRTdG9yYWdlIHx8IDUwMCxcbiAgICAgIG1vbml0b3JpbmdJbnRlcnZhbDogcHJvcHMubW9uaXRvcmluZ0ludGVydmFsIHx8IER1cmF0aW9uLm1pbnV0ZXMoMSksXG4gICAgICBtdWx0aUF6OiBwcm9wcy5tdWx0aUF6ICE9PSBmYWxzZSxcbiAgICAgIHBvcnQ6IHRoaXMucG9ydCxcbiAgICAgIGRlbGV0aW9uUHJvdGVjdGlvbjogdHJ1ZSxcbiAgICAgIHByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93OlxuICAgICAgICBwcm9wcy5wcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvdyB8fCBcIlNhdDoxMjozMC1TYXQ6MjA6MzBcIixcbiAgICAgIHB1YmxpY2x5QWNjZXNzaWJsZTogcHJvcHMucHVibGljbHlBY2Nlc3NpYmxlID8/IGZhbHNlXG4gICAgfTtcblxuICAgIGlmIChwcm9wcy5zbmFwc2hvdElkZW50aWZpZXIpIHtcbiAgICAgIC8vIENyZWF0ZSBmcm9tIHNuYXBzaG90XG4gICAgICB0aGlzLmRhdGFiYXNlID0gbmV3IERhdGFiYXNlSW5zdGFuY2VGcm9tU25hcHNob3QoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIGAke3Byb3BzLmRhdGFiYXNlTmFtZX1EYXRhYmFzZWAsXG4gICAgICAgIHtcbiAgICAgICAgICAuLi5jb21tb25JbnN0YW5jZVByb3BzLFxuICAgICAgICAgIHNuYXBzaG90SWRlbnRpZmllcjogcHJvcHMuc25hcHNob3RJZGVudGlmaWVyLFxuICAgICAgICAgIC8vIEZvciBzbmFwc2hvdHMsIGNyZWRlbnRpYWxzIGFyZSB1c2VkIHRvIHJlc2V0IHRoZSBwYXNzd29yZFxuICAgICAgICAgIGNyZWRlbnRpYWxzOiBTbmFwc2hvdENyZWRlbnRpYWxzLmZyb21TZWNyZXQoXG4gICAgICAgICAgICB0aGlzLmRhdGFiYXNlQ3JlZGVudGlhbHMuc2VjcmV0XG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDcmVhdGUgbmV3IGluc3RhbmNlXG4gICAgICB0aGlzLmRhdGFiYXNlID0gbmV3IERhdGFiYXNlSW5zdGFuY2UoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIGAke3Byb3BzLmRhdGFiYXNlTmFtZX1EYXRhYmFzZWAsXG4gICAgICAgIHtcbiAgICAgICAgICAuLi5jb21tb25JbnN0YW5jZVByb3BzLFxuICAgICAgICAgIGRhdGFiYXNlTmFtZTogcHJvcHMuZGF0YWJhc2VOYW1lLFxuICAgICAgICAgIGNyZWRlbnRpYWxzOiBDcmVkZW50aWFscy5mcm9tU2VjcmV0KHRoaXMuZGF0YWJhc2VDcmVkZW50aWFscy5zZWNyZXQpXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcm90YXRlU2VjcmV0KHByb3BzOiBSZHNQcm9wcykge1xuICAgIGNvbnN0IHJvdGF0aW9uQ29uZmlnID0gcHJvcHMuY3JlZGVudGlhbHM/LnNlY3JldFJvdGF0aW9uO1xuICAgIGNvbnN0IHJvdGF0aW9uUGVyaW9kID1cbiAgICAgICh0eXBlb2Ygcm90YXRpb25Db25maWcgPT09IFwib2JqZWN0XCIgJiZcbiAgICAgICAgcm90YXRpb25Db25maWc/LmF1dG9tYXRpY2FsbHlBZnRlcikgfHxcbiAgICAgIER1cmF0aW9uLmRheXMoMzApO1xuXG4gICAgdGhpcy5tYXN0ZXJTZWNyZXQgPSBuZXcgU2VjcmV0KHRoaXMsIGAke3Byb3BzLmRhdGFiYXNlTmFtZX1NYXN0ZXJTZWNyZXRgLCB7XG4gICAgICBzZWNyZXROYW1lOiBgJHtwcm9wcy5kYXRhYmFzZU5hbWV9TWFzdGVyU2VjcmV0YFxuICAgIH0pO1xuXG4gICAgbmV3IFNlY3JldFJvdGF0aW9uKHRoaXMsIGAke3Byb3BzLmRhdGFiYXNlTmFtZX1TZWNyZXRSb3RhdGlvbmAsIHtcbiAgICAgIGFwcGxpY2F0aW9uOiBuZXcgU2VjcmV0Um90YXRpb25BcHBsaWNhdGlvbihcbiAgICAgICAgdGhpcy5lbmdpbmVDb25maWcucm90YXRpb25BcHBOYW1lLFxuICAgICAgICBcIjEuMS4zNjdcIixcbiAgICAgICAgeyBpc011bHRpVXNlcjogdHJ1ZSB9XG4gICAgICApLFxuICAgICAgc2VjcmV0OiB0aGlzLmRhdGFiYXNlQ3JlZGVudGlhbHMuc2VjcmV0LFxuICAgICAgbWFzdGVyU2VjcmV0OiB0aGlzLm1hc3RlclNlY3JldC5zZWNyZXQsXG4gICAgICB0YXJnZXQ6IHRoaXMuZGF0YWJhc2UsXG4gICAgICB2cGM6IHRoaXMuZGF0YWJhc2UudnBjLFxuICAgICAgYXV0b21hdGljYWxseUFmdGVyOiByb3RhdGlvblBlcmlvZFxuICAgIH0pO1xuICB9XG5cbiAgYWRkUHJveHkocHJvcHM6IFJkc1Byb3BzKSB7XG4gICAgY29uc3QgcHJveHlDb25maWcgPSBwcm9wcy5wcm94eSBhcyBQcm94eUNvbmZpZztcbiAgICBjb25zdCB2cGNTdWJuZXRzOiBTdWJuZXRTZWxlY3Rpb24gPSBwcm94eUNvbmZpZy52cGNTdWJuZXRzID8/IHtcbiAgICAgIHN1Ym5ldFR5cGU6IFN1Ym5ldFR5cGUuUFJJVkFURV9XSVRIX0VHUkVTU1xuICAgIH07XG5cbiAgICB0aGlzLmRhdGFiYXNlUHJveHlTZWN1cml0eUdyb3VwID0gbmV3IFNlY3VyaXR5R3JvdXAoXG4gICAgICB0aGlzLFxuICAgICAgYCR7cHJvcHMuZGF0YWJhc2VOYW1lfVByb3h5U2VjdXJpdHlHcm91cGAsXG4gICAgICB7XG4gICAgICAgIHZwYzogdGhpcy52cGMsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgU2VjdXJpdHkgZ3JvdXAgZm9yIFJEUyBQcm94eSBmb3IgJHtwcm9wcy5kYXRhYmFzZU5hbWV9YFxuICAgICAgfVxuICAgICk7XG5cbiAgICAvLyBBbGxvdyBwcm94eSB0byBjb25uZWN0IHRvIGRhdGFiYXNlXG4gICAgdGhpcy5kYXRhYmFzZVNlY3VyaXR5R3JvdXAuYWRkSW5ncmVzc1J1bGUoXG4gICAgICB0aGlzLmRhdGFiYXNlUHJveHlTZWN1cml0eUdyb3VwLFxuICAgICAgUG9ydC50Y3AodGhpcy5wb3J0KSxcbiAgICAgIFwiQWxsb3cgUkRTIFByb3h5IHRvIGNvbm5lY3QgdG8gZGF0YWJhc2VcIlxuICAgICk7XG5cbiAgICB0aGlzLmRhdGFiYXNlUHJveHkgPSBuZXcgRGF0YWJhc2VQcm94eShcbiAgICAgIHRoaXMsXG4gICAgICBgJHtwcm9wcy5kYXRhYmFzZU5hbWV9RGF0YWJhc2VQcm94eWAsXG4gICAgICB7XG4gICAgICAgIGRiUHJveHlOYW1lOiBSZXNvdXJjZU5hbWluZy5wcm94eU5hbWUocHJvcHMuZGF0YWJhc2VOYW1lISksXG4gICAgICAgIHByb3h5VGFyZ2V0OiBQcm94eVRhcmdldC5mcm9tSW5zdGFuY2UodGhpcy5kYXRhYmFzZSksXG4gICAgICAgIHNlY3JldHM6IFt0aGlzLmRhdGFiYXNlQ3JlZGVudGlhbHMuc2VjcmV0XSxcbiAgICAgICAgc2VjdXJpdHlHcm91cHM6IFt0aGlzLmRhdGFiYXNlUHJveHlTZWN1cml0eUdyb3VwXSxcbiAgICAgICAgdnBjOiB0aGlzLnZwYyxcbiAgICAgICAgdnBjU3VibmV0cyxcbiAgICAgICAgcmVxdWlyZVRMUzogcHJveHlDb25maWcucmVxdWlyZVRMUyA/PyB0cnVlLFxuICAgICAgICBib3Jyb3dUaW1lb3V0OiBwcm94eUNvbmZpZy5jb25uZWN0aW9uQm9ycm93VGltZW91dFxuICAgICAgICAgID8gRHVyYXRpb24uc2Vjb25kcyhwcm94eUNvbmZpZy5jb25uZWN0aW9uQm9ycm93VGltZW91dClcbiAgICAgICAgICA6IER1cmF0aW9uLnNlY29uZHMoMTIwKSxcbiAgICAgICAgbWF4Q29ubmVjdGlvbnNQZXJjZW50OiBwcm94eUNvbmZpZy5tYXhDb25uZWN0aW9ucyxcbiAgICAgICAgbWF4SWRsZUNvbm5lY3Rpb25zUGVyY2VudDogcHJveHlDb25maWcubWF4SWRsZUNvbm5lY3Rpb25zXG4gICAgICB9XG4gICAgKTtcblxuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgYCR7cHJvcHMuZGF0YWJhc2VOYW1lfVByb3h5RW5kcG9pbnRPdXRwdXRgLCB7XG4gICAgICBrZXk6IGAke3Byb3BzLmRhdGFiYXNlTmFtZX1Qcm94eUVuZHBvaW50YCxcbiAgICAgIGV4cG9ydE5hbWU6IGAke3Byb3BzLmRhdGFiYXNlTmFtZX1Qcm94eUVuZHBvaW50YCxcbiAgICAgIHZhbHVlOiB0aGlzLmRhdGFiYXNlUHJveHkuZW5kcG9pbnRcbiAgICB9KTtcbiAgfVxuXG4gIGFkZFJlYWRSZXBsaWNhKHByb3BzOiBSZHNQcm9wcykge1xuICAgIGNvbnN0IHJlcGxpY2FDb25maWcgPSBwcm9wcy5yZWFkUmVwbGljYSBhcyBSZWFkUmVwbGljYUNvbmZpZztcbiAgICBjb25zdCByZXBsaWNhSW5zdGFuY2VUeXBlID1cbiAgICAgIHJlcGxpY2FDb25maWcuaW5zdGFuY2VUeXBlID8/IHByb3BzLmluc3RhbmNlVHlwZSA/PyBcInQ0Zy5sYXJnZVwiO1xuXG4gICAgY29uc3QgcGlFbmFibGVkID0gcHJvcHMucGVyZm9ybWFuY2VJbnNpZ2h0cyAhPT0gZmFsc2U7XG4gICAgY29uc3QgcGlDb25maWcgPVxuICAgICAgcGlFbmFibGVkICYmIHR5cGVvZiBwcm9wcy5wZXJmb3JtYW5jZUluc2lnaHRzID09PSBcIm9iamVjdFwiXG4gICAgICAgID8gcHJvcHMucGVyZm9ybWFuY2VJbnNpZ2h0c1xuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IHJlYWRSZXBsaWNhUGVyZm9ybWFuY2VJbnNpZ2h0c0tleSA9XG4gICAgICBwaUVuYWJsZWQgJiYgaXNDTUtSZXF1ZXN0ZWQocGlDb25maWc/LmVuY3J5cHRpb25LZXkpXG4gICAgICAgID8gbmV3IEN1c3RvbWVyTWFuYWdlZEtleShcbiAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICBgJHtwcm9wcy5kYXRhYmFzZU5hbWV9UmVhZFJlcGxpY2FSZWFkZXJJbnNpZ2h0c0tleWAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGFsaWFzTmFtZTogYGNtay9yZHMvJHtwcm9wcy5kYXRhYmFzZU5hbWV9L1JlYWRSZXBsaWNhSW5zaWdodHNLZXlgXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKS5rZXlcbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICB0aGlzLnJlYWRSZXBsaWNhU2VjdXJpdHlHcm91cCA9IG5ldyBTZWN1cml0eUdyb3VwKFxuICAgICAgdGhpcyxcbiAgICAgIGAke3Byb3BzLmRhdGFiYXNlTmFtZX1SZWFkUmVwbGljYVNlY3VyaXR5R3JvdXBgLFxuICAgICAge1xuICAgICAgICB2cGM6IHRoaXMudnBjLFxuICAgICAgICBkZXNjcmlwdGlvbjogYFNlY3VyaXR5IGdyb3VwIGZvciBSRFMgcmVhZCByZXBsaWNhIG9mICR7cHJvcHMuZGF0YWJhc2VOYW1lfWBcbiAgICAgIH1cbiAgICApO1xuXG4gICAgLy8gQWxsb3cgcHJpbWFyeSBkYXRhYmFzZSB0byByZXBsaWNhdGUgdG8gcmVhZCByZXBsaWNhXG4gICAgdGhpcy5yZWFkUmVwbGljYVNlY3VyaXR5R3JvdXAuYWRkSW5ncmVzc1J1bGUoXG4gICAgICB0aGlzLmRhdGFiYXNlU2VjdXJpdHlHcm91cCxcbiAgICAgIFBvcnQudGNwKHRoaXMucG9ydCksXG4gICAgICBcIkFsbG93IHByaW1hcnkgZGF0YWJhc2UgdG8gcmVwbGljYXRlIHRvIHJlYWQgcmVwbGljYVwiXG4gICAgKTtcblxuICAgIC8vIERlbGV0aW9uIHdhaXRlciBlbnN1cmVzIHByaW1hcnkgaXMgXCJhdmFpbGFibGVcIiBiZWZvcmUgQ2xvdWRGb3JtYXRpb24gZGVsZXRlcyBpdC5cbiAgICAvLyBXaGVuIHRoZSByZWFkIHJlcGxpY2EgaXMgZGVsZXRlZCwgdGhlIHByaW1hcnkgZW50ZXJzIFwibW9kaWZ5aW5nXCIgc3RhdGUuXG4gICAgLy8gV2l0aG91dCB0aGlzIHdhaXRlciwgdGhlIGZpbmFsIHNuYXBzaG90IGNyZWF0aW9uIGZhaWxzLlxuICAgIGNvbnN0IGluc3RhbmNlSWQgPSBSZXNvdXJjZU5hbWluZy5kYkluc3RhbmNlSWQocHJvcHMuZGF0YWJhc2VOYW1lISk7XG4gICAgY29uc3Qgd2FpdGVyVGltZW91dCA9IER1cmF0aW9uLm1pbnV0ZXMoMTApO1xuICAgIGNvbnN0IGRlbGV0aW9uV2FpdGVyID0gbmV3IEN1c3RvbVJlc291cmNlKFxuICAgICAgdGhpcyxcbiAgICAgIGAke3Byb3BzLmRhdGFiYXNlTmFtZX1EZWxldGlvbldhaXRlcmAsXG4gICAgICB7XG4gICAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzE4X1gsXG4gICAgICAgIHRpbWVvdXQ6IHdhaXRlclRpbWVvdXQucGx1cyhEdXJhdGlvbi5zZWNvbmRzKDMwKSksXG4gICAgICAgIGxhbWJkYURlc2NyaXB0aW9uOiBgJHtwcm9wcy5kYXRhYmFzZU5hbWV9IGRlbGV0aW9uIHdhaXRlcmAsXG4gICAgICAgIGlubGluZUNvZGU6IGBcbmNvbnN0IHsgUkRTQ2xpZW50IH0gPSByZXF1aXJlKCdAYXdzLXNkay9jbGllbnQtcmRzJyk7XG5jb25zdCB7IHdhaXRVbnRpbERCSW5zdGFuY2VBdmFpbGFibGUgfSA9IHJlcXVpcmUoJ0Bhd3Mtc2RrL2NsaWVudC1yZHMnKTtcblxuZXhwb3J0cy5oYW5kbGVyID0gYXN5bmMgKGV2ZW50KSA9PiB7XG4gIGNvbnNvbGUubG9nKCdFdmVudDonLCBKU09OLnN0cmluZ2lmeShldmVudCwgbnVsbCwgMikpO1xuICBjb25zdCBpbnN0YW5jZUlkID0gZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLkluc3RhbmNlSWRlbnRpZmllcjtcbiAgY29uc3QgcGh5c2ljYWxSZXNvdXJjZUlkID0gZXZlbnQuUGh5c2ljYWxSZXNvdXJjZUlkIHx8IGV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkIHx8ICdyZHMtZGVsZXRpb24td2FpdGVyJztcblxuICBpZiAoZXZlbnQuUmVxdWVzdFR5cGUgPT09ICdEZWxldGUnKSB7XG4gICAgY29uc29sZS5sb2coJ1dhaXRpbmcgZm9yIGluc3RhbmNlIHRvIGJlIGF2YWlsYWJsZTonLCBpbnN0YW5jZUlkKTtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgUkRTQ2xpZW50KHt9KTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgd2FpdFVudGlsREJJbnN0YW5jZUF2YWlsYWJsZShcbiAgICAgICAgeyBjbGllbnQsIG1heFdhaXRUaW1lOiAke3dhaXRlclRpbWVvdXQudG9TZWNvbmRzKCl9LCBtaW5EZWxheTogMTAsIG1heERlbGF5OiAzMCB9LFxuICAgICAgICB7IERCSW5zdGFuY2VJZGVudGlmaWVyOiBpbnN0YW5jZUlkIH1cbiAgICAgICk7XG4gICAgICBjb25zb2xlLmxvZygnSW5zdGFuY2UgaXMgYXZhaWxhYmxlLCBkZWxldGlvbiBjYW4gcHJvY2VlZCcpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IubmFtZSA9PT0gJ1Jlc291cmNlTm90Rm91bmRFcnJvcicgfHxcbiAgICAgICAgICBlcnJvci5tZXNzYWdlPy5pbmNsdWRlcygnREJJbnN0YW5jZU5vdEZvdW5kJykgfHxcbiAgICAgICAgICBlcnJvci5zdGF0ZSA9PT0gJ0ZBSUxVUkUnKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdJbnN0YW5jZSBub3QgZm91bmQgb3Igd2FpdGVyIGZhaWxlZCwgcHJvY2VlZGluZyB3aXRoIGRlbGV0aW9uJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciB3YWl0aW5nIGZvciBpbnN0YW5jZTonLCBlcnJvcik7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4geyBQaHlzaWNhbFJlc291cmNlSWQ6IHBoeXNpY2FsUmVzb3VyY2VJZCB9O1xufTtcbiAgICAgICAgYCxcbiAgICAgICAgaW5saW5lUG9saWN5OiBbXG4gICAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcInJkczpEZXNjcmliZURCSW5zdGFuY2VzXCJdLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBbXCIqXCJdXG4gICAgICAgICAgfSlcbiAgICAgICAgXSxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIEluc3RhbmNlSWRlbnRpZmllcjogaW5zdGFuY2VJZCxcbiAgICAgICAgICBWZXJzaW9uOiBcIjEuMC4wXCJcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG5cbiAgICBkZWxldGlvbldhaXRlci5yZXNvdXJjZS5ub2RlLmFkZERlcGVuZGVuY3kodGhpcy5kYXRhYmFzZSk7XG5cbiAgICBjb25zdCByZWFkUmVwbGljYSA9IG5ldyBEYXRhYmFzZUluc3RhbmNlUmVhZFJlcGxpY2EoXG4gICAgICB0aGlzLFxuICAgICAgYCR7cHJvcHMuZGF0YWJhc2VOYW1lfVJlYWRSZXBsaWNhYCxcbiAgICAgIHtcbiAgICAgICAgc291cmNlRGF0YWJhc2VJbnN0YW5jZTogdGhpcy5kYXRhYmFzZSxcbiAgICAgICAgdnBjOiB0aGlzLnZwYyxcbiAgICAgICAgdnBjU3VibmV0czoge1xuICAgICAgICAgIHN1Ym5ldFR5cGU6IFN1Ym5ldFR5cGUuUFJJVkFURV9XSVRIX0VHUkVTU1xuICAgICAgICB9LFxuICAgICAgICBzZWN1cml0eUdyb3VwczogW3RoaXMucmVhZFJlcGxpY2FTZWN1cml0eUdyb3VwXSxcbiAgICAgICAgYWxsb2NhdGVkU3RvcmFnZTogcHJvcHMuYWxsb2NhdGVkU3RvcmFnZSxcbiAgICAgICAgc3RvcmFnZUVuY3J5cHRlZDogdHJ1ZSxcbiAgICAgICAgc3RvcmFnZVR5cGU6IFN0b3JhZ2VUeXBlLkdQMyxcbiAgICAgICAgY2FDZXJ0aWZpY2F0ZTogQ2FDZXJ0aWZpY2F0ZS5SRFNfQ0FfUlNBNDA5Nl9HMSxcbiAgICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgICBkZWxldGVBdXRvbWF0ZWRCYWNrdXBzOiBmYWxzZSxcbiAgICAgICAgZW5hYmxlUGVyZm9ybWFuY2VJbnNpZ2h0czogcGlFbmFibGVkLFxuICAgICAgICBwZXJmb3JtYW5jZUluc2lnaHRFbmNyeXB0aW9uS2V5OiByZWFkUmVwbGljYVBlcmZvcm1hbmNlSW5zaWdodHNLZXksXG4gICAgICAgIHBlcmZvcm1hbmNlSW5zaWdodFJldGVudGlvbjogcGlFbmFibGVkXG4gICAgICAgICAgPyB0aGlzLmdldFBlcmZvcm1hbmNlSW5zaWdodFJldGVudGlvbihwaUNvbmZpZz8ucmV0ZW50aW9uUGVyaW9kID8/IDcpXG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIGluc3RhbmNlSWRlbnRpZmllcjogUmVzb3VyY2VOYW1pbmcucmVhZFJlcGxpY2FJZChwcm9wcy5kYXRhYmFzZU5hbWUhKSxcbiAgICAgICAgaW5zdGFuY2VUeXBlOiBuZXcgSW5zdGFuY2VUeXBlKHJlcGxpY2FJbnN0YW5jZVR5cGUpLFxuICAgICAgICBhdmFpbGFiaWxpdHlab25lOiByZXBsaWNhQ29uZmlnLmF2YWlsYWJpbGl0eVpvbmUsXG4gICAgICAgIG1heEFsbG9jYXRlZFN0b3JhZ2U6IHByb3BzLm1heEFsbG9jYXRlZFN0b3JhZ2UgfHwgNTAwLFxuICAgICAgICBtb25pdG9yaW5nSW50ZXJ2YWw6IHByb3BzLm1vbml0b3JpbmdJbnRlcnZhbCB8fCBEdXJhdGlvbi5taW51dGVzKDEpLFxuICAgICAgICBtdWx0aUF6OiBwcm9wcy5tdWx0aUF6ICE9PSBmYWxzZSxcbiAgICAgICAgcG9ydDogdGhpcy5wb3J0LFxuICAgICAgICBkZWxldGlvblByb3RlY3Rpb246IHRydWUsXG4gICAgICAgIHByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93OlxuICAgICAgICAgIHByb3BzLnByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93IHx8IFwiU2F0OjEyOjMwLVNhdDoyMDozMFwiXG4gICAgICB9XG4gICAgKTtcblxuICAgIHJlYWRSZXBsaWNhLm5vZGUuYWRkRGVwZW5kZW5jeShkZWxldGlvbldhaXRlci5yZXNvdXJjZSk7XG4gIH1cblxuICBwcml2YXRlIGdldFBlcmZvcm1hbmNlSW5zaWdodFJldGVudGlvbihcbiAgICBkYXlzPzogbnVtYmVyXG4gICk6IFBlcmZvcm1hbmNlSW5zaWdodFJldGVudGlvbiB7XG4gICAgc3dpdGNoIChkYXlzKSB7XG4gICAgICBjYXNlIDc6XG4gICAgICAgIHJldHVybiBQZXJmb3JtYW5jZUluc2lnaHRSZXRlbnRpb24uREVGQVVMVDtcbiAgICAgIGNhc2UgMzE6XG4gICAgICAgIHJldHVybiBQZXJmb3JtYW5jZUluc2lnaHRSZXRlbnRpb24uTU9OVEhTXzE7XG4gICAgICBjYXNlIDkzOlxuICAgICAgICByZXR1cm4gUGVyZm9ybWFuY2VJbnNpZ2h0UmV0ZW50aW9uLk1PTlRIU18zO1xuICAgICAgY2FzZSAxODY6XG4gICAgICAgIHJldHVybiBQZXJmb3JtYW5jZUluc2lnaHRSZXRlbnRpb24uTU9OVEhTXzY7XG4gICAgICBjYXNlIDM3MjpcbiAgICAgICAgcmV0dXJuIFBlcmZvcm1hbmNlSW5zaWdodFJldGVudGlvbi5NT05USFNfMTI7XG4gICAgICBjYXNlIDczMTpcbiAgICAgICAgcmV0dXJuIFBlcmZvcm1hbmNlSW5zaWdodFJldGVudGlvbi5MT05HX1RFUk07XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gUGVyZm9ybWFuY2VJbnNpZ2h0UmV0ZW50aW9uLk1PTlRIU18xO1xuICAgIH1cbiAgfVxuXG4gIGdldEhvc3RFbmRwb2ludCgpIHtcbiAgICBpZiAodGhpcy5kYXRhYmFzZVByb3h5KSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhYmFzZVByb3h5LmVuZHBvaW50O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhYmFzZS5kYkluc3RhbmNlRW5kcG9pbnRBZGRyZXNzO1xuICAgIH1cbiAgfVxuXG4gIGdldEhvc3RQb3J0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFN0cmluZyh0aGlzLnBvcnQpO1xuICB9XG5cbiAgZ2V0Q3JlZGVudGlhbHMoKTogU2VjcmV0IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhYmFzZUNyZWRlbnRpYWxzO1xuICB9XG5cbiAgc3RhdGljIGJ1aWxkKGlkOiBzdHJpbmcsIHByb3BzOiBSZHNQcm9wcyk6IChzYjogU3RhY2tCdWlsZGVyKSA9PiBDb25zdHJ1Y3Qge1xuICAgIHJldHVybiAoc2I6IFN0YWNrQnVpbGRlcikgPT4ge1xuICAgICAgY29uc3QgbmV3UHJvcHM6IFJkc1Byb3BzID0ge1xuICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgLi4ue1xuICAgICAgICAgIHZwYzogKHNiLmdldE5ldHdvcmsoKSBhcyBJVnBjKSB8fCBwcm9wcy52cGMsXG4gICAgICAgICAgc2VjdXJpdHlHcm91cElkczogcHJvcHM/LnNlY3VyaXR5R3JvdXBJZHMgPz8gW10sXG4gICAgICAgICAgZGF0YWJhc2VOYW1lOiBwcm9wcy5kYXRhYmFzZU5hbWUgfHwgYCR7aWQucmVwbGFjZShcIlJkc1wiLCBcIlwiKX1gXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBuZXcgdGhpcyhzYi5nZXRTdGFjaygpLCBpZCwgbmV3UHJvcHMpO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fjall/components-infrastructure",
3
- "version": "0.77.2",
3
+ "version": "0.77.3",
4
4
  "bin": {
5
5
  "infrastructure": "bin/infrastructure.js"
6
6
  },
@@ -35,7 +35,7 @@
35
35
  },
36
36
  "dependencies": {
37
37
  "@aws-sdk/client-organizations": "^3.716.0",
38
- "@fjall/util": "^0.77.2",
38
+ "@fjall/util": "^0.77.3",
39
39
  "@pepperize/cdk-organizations": "^0.7.135",
40
40
  "cdk-time-sleep": "^1.0.0",
41
41
  "constructs": "^10.0.0",
@@ -44,7 +44,7 @@
44
44
  "overrides": {
45
45
  "@smithy/core": "2.5.5"
46
46
  },
47
- "gitHead": "c531eef5c34492e4c61b949c1c74d37fc7ecf77f",
47
+ "gitHead": "1e6b88ce419b55a5eac886b9ef0361815f0f229f",
48
48
  "peerDependencies": {
49
49
  "aws-cdk": "^2.206.0",
50
50
  "aws-cdk-lib": "^2.206.0",