parse-server 5.0.0-alpha.2 → 5.0.0-alpha.23

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.
@@ -25,8 +25,6 @@ var _AdapterLoader = require("../Adapters/AdapterLoader");
25
25
 
26
26
  var _defaults = _interopRequireDefault(require("../defaults"));
27
27
 
28
- var _url = _interopRequireDefault(require("url"));
29
-
30
28
  var _LoggerController = require("./LoggerController");
31
29
 
32
30
  var _FilesController = require("./FilesController");
@@ -210,7 +208,8 @@ function getDatabaseController(options) {
210
208
  const {
211
209
  databaseURI,
212
210
  collectionPrefix,
213
- databaseOptions
211
+ databaseOptions,
212
+ idempotencyOptions
214
213
  } = options;
215
214
  let {
216
215
  databaseAdapter
@@ -224,7 +223,7 @@ function getDatabaseController(options) {
224
223
  databaseAdapter = (0, _AdapterLoader.loadAdapter)(databaseAdapter);
225
224
  }
226
225
 
227
- return new _DatabaseController.default(databaseAdapter);
226
+ return new _DatabaseController.default(databaseAdapter, idempotencyOptions);
228
227
  }
229
228
 
230
229
  function getHooksController(options, databaseController) {
@@ -285,8 +284,7 @@ function getDatabaseAdapter(databaseURI, collectionPrefix, databaseOptions) {
285
284
  let protocol;
286
285
 
287
286
  try {
288
- const parsedURI = _url.default.parse(databaseURI);
289
-
287
+ const parsedURI = new URL(databaseURI);
290
288
  protocol = parsedURI.protocol ? parsedURI.protocol.toLowerCase() : null;
291
289
  } catch (e) {
292
290
  /* */
@@ -294,6 +292,7 @@ function getDatabaseAdapter(databaseURI, collectionPrefix, databaseOptions) {
294
292
 
295
293
  switch (protocol) {
296
294
  case 'postgres:':
295
+ case 'postgresql:':
297
296
  return new _PostgresStorageAdapter.default({
298
297
  uri: databaseURI,
299
298
  collectionPrefix,
@@ -308,4 +307,4 @@ function getDatabaseAdapter(databaseURI, collectionPrefix, databaseOptions) {
308
307
  });
309
308
  }
310
309
  }
311
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db250cm9sbGVycy9pbmRleC5qcyJdLCJuYW1lcyI6WyJnZXRDb250cm9sbGVycyIsIm9wdGlvbnMiLCJsb2dnZXJDb250cm9sbGVyIiwiZ2V0TG9nZ2VyQ29udHJvbGxlciIsImZpbGVzQ29udHJvbGxlciIsImdldEZpbGVzQ29udHJvbGxlciIsInVzZXJDb250cm9sbGVyIiwiZ2V0VXNlckNvbnRyb2xsZXIiLCJwdXNoQ29udHJvbGxlciIsImhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0IiwiaGFzUHVzaFN1cHBvcnQiLCJwdXNoQ29udHJvbGxlclF1ZXVlIiwicHVzaFdvcmtlciIsImdldFB1c2hDb250cm9sbGVyIiwiY2FjaGVDb250cm9sbGVyIiwiZ2V0Q2FjaGVDb250cm9sbGVyIiwiYW5hbHl0aWNzQ29udHJvbGxlciIsImdldEFuYWx5dGljc0NvbnRyb2xsZXIiLCJsaXZlUXVlcnlDb250cm9sbGVyIiwiZ2V0TGl2ZVF1ZXJ5Q29udHJvbGxlciIsImRhdGFiYXNlQ29udHJvbGxlciIsImdldERhdGFiYXNlQ29udHJvbGxlciIsImhvb2tzQ29udHJvbGxlciIsImdldEhvb2tzQ29udHJvbGxlciIsImF1dGhEYXRhTWFuYWdlciIsImdldEF1dGhEYXRhTWFuYWdlciIsInBhcnNlR3JhcGhRTENvbnRyb2xsZXIiLCJnZXRQYXJzZUdyYXBoUUxDb250cm9sbGVyIiwic2NoZW1hQ2FjaGUiLCJTY2hlbWFDYWNoZSIsImFwcElkIiwianNvbkxvZ3MiLCJsb2dzRm9sZGVyIiwidmVyYm9zZSIsImxvZ0xldmVsIiwibWF4TG9nRmlsZXMiLCJzaWxlbnQiLCJsb2dnZXJBZGFwdGVyIiwibG9nZ2VyT3B0aW9ucyIsImxvZ2dlckNvbnRyb2xsZXJBZGFwdGVyIiwiV2luc3RvbkxvZ2dlckFkYXB0ZXIiLCJMb2dnZXJDb250cm9sbGVyIiwiZGF0YWJhc2VVUkkiLCJmaWxlc0FkYXB0ZXIiLCJkYXRhYmFzZUFkYXB0ZXIiLCJwcmVzZXJ2ZUZpbGVOYW1lIiwiZmlsZUtleSIsImZpbGVzQ29udHJvbGxlckFkYXB0ZXIiLCJHcmlkRlNCdWNrZXRBZGFwdGVyIiwiRmlsZXNDb250cm9sbGVyIiwiZW1haWxBZGFwdGVyIiwidmVyaWZ5VXNlckVtYWlscyIsImVtYWlsQ29udHJvbGxlckFkYXB0ZXIiLCJVc2VyQ29udHJvbGxlciIsImNhY2hlQWRhcHRlciIsImNhY2hlVFRMIiwiY2FjaGVNYXhTaXplIiwiY2FjaGVDb250cm9sbGVyQWRhcHRlciIsIkluTWVtb3J5Q2FjaGVBZGFwdGVyIiwidHRsIiwibWF4U2l6ZSIsIkNhY2hlQ29udHJvbGxlciIsImNvbnRyb2xsZXJEZXBzIiwiUGFyc2VHcmFwaFFMQ29udHJvbGxlciIsIm1vdW50R3JhcGhRTCIsImFuYWx5dGljc0FkYXB0ZXIiLCJhbmFseXRpY3NDb250cm9sbGVyQWRhcHRlciIsIkFuYWx5dGljc0FkYXB0ZXIiLCJBbmFseXRpY3NDb250cm9sbGVyIiwiTGl2ZVF1ZXJ5Q29udHJvbGxlciIsImxpdmVRdWVyeSIsImNvbGxlY3Rpb25QcmVmaXgiLCJkYXRhYmFzZU9wdGlvbnMiLCJkZWZhdWx0cyIsImdldERhdGFiYXNlQWRhcHRlciIsIkRhdGFiYXNlQ29udHJvbGxlciIsIndlYmhvb2tLZXkiLCJIb29rc0NvbnRyb2xsZXIiLCJzY2hlZHVsZWRQdXNoIiwicHVzaCIsInB1c2hPcHRpb25zIiwiT2JqZWN0IiwiYXNzaWduIiwicHVzaFF1ZXVlT3B0aW9ucyIsInF1ZXVlT3B0aW9ucyIsInB1c2hBZGFwdGVyIiwiYWRhcHRlciIsIlBhcnNlUHVzaEFkYXB0ZXIiLCJQdXNoQ29udHJvbGxlciIsImRpc2FibGVQdXNoV29ya2VyIiwiUHVzaFF1ZXVlIiwiUHVzaFdvcmtlciIsImF1dGgiLCJlbmFibGVBbm9ueW1vdXNVc2VycyIsInByb3RvY29sIiwicGFyc2VkVVJJIiwidXJsIiwicGFyc2UiLCJ0b0xvd2VyQ2FzZSIsImUiLCJQb3N0Z3Jlc1N0b3JhZ2VBZGFwdGVyIiwidXJpIiwiTW9uZ29TdG9y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N0JELFFBQUFBLEdBQUcsRUFBRTNELFdBRHdCO0FBRTdCNkIsUUFBQUEsZ0JBRjZCO0FBRzdCZ0MsUUFBQUEsWUFBWSxFQUFFL0I7QUFIZSxPQUF4QixDQUFQO0FBUko7QUFjRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhdXRoRGF0YU1hbmFnZXIgZnJvbSAnLi4vQWRhcHRlcnMvQXV0aCc7XG5pbXBvcnQgeyBQYXJzZVNlcnZlck9wdGlvbnMgfSBmcm9tICcuLi9PcHRpb25zJztcbmltcG9ydCB7IGxvYWRBZGFwdGVyIH0gZnJvbSAnLi4vQWRhcHRlcnMvQWRhcHRlckxvYWRlcic7XG5pbXBvcnQgZGVmYXVsdHMgZnJvbSAnLi4vZGVmYXVsdHMnO1xuaW1wb3J0IHVybCBmcm9tICd1cmwnO1xuLy8gQ29udHJvbGxlcnNcbmltcG9ydCB7IExvZ2dlckNvbnRyb2xsZXIgfSBmcm9tICcuL0xvZ2dlckNvbnRyb2xsZXInO1xuaW1wb3J0IHsgRmlsZXNDb250cm9sbGVyIH0gZnJvbSAnLi9GaWxlc0NvbnRyb2xsZXInO1xuaW1wb3J0IHsgSG9va3NDb250cm9sbGVyIH0gZnJvbSAnLi9Ib29rc0NvbnRyb2xsZXInO1xuaW1wb3J0IHsgVXNlckNvbnRyb2xsZXIgfSBmcm9tICcuL1VzZXJDb250cm9sbGVyJztcbmltcG9ydCB7IENhY2hlQ29udHJvbGxlciB9IGZyb20gJy4vQ2FjaGVDb250cm9sbGVyJztcbmltcG9ydCB7IExpdmVRdWVyeUNvbnRyb2xsZXIgfSBmcm9tICcuL0xpdmVRdWVyeUNvbnRyb2xsZXInO1xuaW1wb3J0IHsgQW5hbHl0aWNzQ29udHJvbGxlciB9IGZyb20gJy4vQW5hbHl0aWNzQ29udHJvbGxlcic7XG5pbXBvcnQgeyBQdXNoQ29udHJvbGxlciB9IGZyb20gJy4vUHVzaENvbnRyb2xsZXInO1xuaW1wb3J0IHsgUHVzaFF1ZXVlIH0gZnJvbSAnLi4vUHVzaC9QdXNoUXVldWUnO1xuaW1wb3J0IHsgUHVzaFdvcmtlciB9IGZyb20gJy4uL1B1c2gvUHVzaFdvcmtlcic7XG5pbXBvcnQgRGF0YWJhc2VDb250cm9sbGVyIGZyb20gJy4vRGF0YWJhc2VDb250cm9sbGVyJztcblxuLy8gQWRhcHRlcnNcbmltcG9ydCB7IEdyaWRGU0J1Y2tldEFkYXB0ZXIgfSBmcm9tICcuLi9BZGFwdGVycy9GaWxlcy9HcmlkRlNCdWNrZXRBZGFwdGVyJztcbmltcG9ydCB7IFdpbnN0b25Mb2dnZXJBZGFwdGVyIH0gZnJvbSAnLi4vQWRhcHRlcnMvTG9nZ2VyL1dpbnN0b25Mb2dnZXJBZGFwdGVyJztcbmltcG9ydCB7IEluTWVtb3J5Q2FjaGVBZGFwdGVyIH0gZnJvbSAnLi4vQWRhcHRlcnMvQ2FjaGUvSW5NZW1vcnlDYWNoZUFkYXB0ZXInO1xuaW1wb3J0IHsgQW5hbHl0aWNzQWRhcHRlciB9IGZyb20gJy4uL0FkYXB0ZXJzL0FuYWx5dGljcy9BbmFseXRpY3NBZGFwdGVyJztcbmltcG9ydCBNb25nb1N0b3JhZ2VBZGFwdGVyIGZyb20gJy4uL0FkYXB0ZXJzL1N0b3JhZ2UvTW9uZ28vTW9uZ29TdG9yYWdlQWRhcHRlcic7XG5pbXBvcnQgUG9zdGdyZXNTdG9yYWdlQWRhcHRlciBmcm9tICcuLi9BZGFwdGVycy9TdG9yYWdlL1Bvc3RncmVzL1Bvc3RncmVzU3RvcmFnZUFkYXB0ZXInO1xuaW1wb3J0IFBhcnNlUHVzaEFkYXB0ZXIgZnJvbSAnQHBhcnNlL3B1c2gtYWRhcHRlcic7XG5pbXBvcnQgUGFyc2VHcmFwaFFMQ29udHJvbGxlciBmcm9tICcuL1BhcnNlR3JhcGhRTENvbnRyb2xsZXInO1xuaW1wb3J0IFNjaGVtYUNhY2hlIGZyb20gJy4uL0FkYXB0ZXJzL0NhY2hlL1NjaGVtYUNhY2hlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbnRyb2xsZXJzKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucykge1xuICBjb25zdCBsb2dnZXJDb250cm9sbGVyID0gZ2V0TG9nZ2VyQ29udHJvbGxlcihvcHRpb25zKTtcbiAgY29uc3QgZmlsZXNDb250cm9sbGVyID0gZ2V0RmlsZXNDb250cm9sbGVyKG9wdGlvbnMpO1xuICBjb25zdCB1c2VyQ29udHJvbGxlciA9IGdldFVzZXJDb250cm9sbGVyKG9wdGlvbnMpO1xuICBjb25zdCB7XG4gICAgcHVzaENvbnRyb2xsZXIsXG4gICAgaGFzUHVzaFNjaGVkdWxlZFN1cHBvcnQsXG4gICAgaGFzUHVzaFN1cHBvcnQsXG4gICAgcHVzaENvbnRyb2xsZXJRdWV1ZSxcbiAgICBwdXNoV29ya2VyLFxuICB9ID0gZ2V0UHVzaENvbnRyb2xsZXIob3B0aW9ucyk7XG4gIGNvbnN0IGNhY2hlQ29udHJvbGxlciA9IGdldENhY2hlQ29udHJvbGxlcihvcHRpb25zKTtcbiAgY29uc3QgYW5hbHl0aWNzQ29udHJvbGxlciA9IGdldEFuYWx5dGljc0NvbnRyb2xsZXIob3B0aW9ucyk7XG4gIGNvbnN0IGxpdmVRdWVyeUNvbnRyb2xsZXIgPSBnZXRMaXZlUXVlcnlDb250cm9sbGVyKG9wdGlvbnMpO1xuICBjb25zdCBkYXRhYmFzZUNvbnRyb2xsZXIgPSBnZXREYXRhYmFzZUNvbnRyb2xsZXIob3B0aW9ucyk7XG4gIGNvbnN0IGhvb2tzQ29udHJvbGxlciA9IGdldEhvb2tzQ29udHJvbGxlcihvcHRpb25zLCBkYXRhYmFzZUNvbnRyb2xsZXIpO1xuICBjb25zdCBhdXRoRGF0YU1hbmFnZXIgPSBnZXRBdXRoRGF0YU1hbmFnZXIob3B0aW9ucyk7XG4gIGNvbnN0IHBhcnNlR3JhcGhRTENvbnRyb2xsZXIgPSBnZXRQYXJzZUdyYXBoUUxDb250cm9sbGVyKG9wdGlvbnMsIHtcbiAgICBkYXRhYmFzZUNvbnRyb2xsZXIsXG4gICAgY2FjaGVDb250cm9sbGVyLFxuICB9KTtcbiAgcmV0dXJuIHtcbiAgICBsb2dnZXJDb250cm9sbGVyLFxuICAgIGZpbGVzQ29udHJvbGxlcixcbiAgICB1c2VyQ29udHJvbGxlcixcbiAgICBwdXNoQ29udHJvbGxlcixcbiAgICBoYXNQdXNoU2NoZWR1bGVkU3VwcG9ydCxcbiAgICBoYXNQdXNoU3VwcG9ydCxcbiAgICBwdXNoV29ya2VyLFxuICAgIHB1c2hDb250cm9sbGVyUXVldWUsXG4gICAgYW5hbHl0aWNzQ29udHJvbGxlcixcbiAgICBjYWNoZUNvbnRyb2xsZXIsXG4gICAgcGFyc2VHcmFwaFFMQ29udHJvbGxlcixcbiAgICBsaXZlUXVlcnlDb250cm9sbGVyLFxuICAgIGRhdGFiYXNlQ29udHJvbGxlcixcbiAgICBob29rc0NvbnRyb2xsZXIsXG4gICAgYXV0aERhdGFNYW5hZ2VyLFxuICAgIHNjaGVtYUNhY2hlOiBTY2hlbWFDYWNoZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExvZ2dlckNvbnRyb2xsZXIob3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zKTogTG9nZ2VyQ29udHJvbGxlciB7XG4gIGNvbnN0IHtcbiAgICBhcHBJZCxcbiAgICBqc29uTG9ncyxcbiAgICBsb2dzRm9sZGVyLFxuICAgIHZlcmJvc2UsXG4gICAgbG9nTGV2ZWwsXG4gICAgbWF4TG9nRmlsZXMsXG4gICAgc2lsZW50LFxuICAgIGxvZ2dlckFkYXB0ZXIsXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBsb2dnZXJPcHRpb25zID0ge1xuICAgIGpzb25Mb2dzLFxuICAgIGxvZ3NGb2xkZXIsXG4gICAgdmVyYm9zZSxcbiAgICBsb2dMZXZlbCxcbiAgICBzaWxlbnQsXG4gICAgbWF4TG9nRmlsZXMsXG4gIH07XG4gIGNvbnN0IGxvZ2dlckNvbnRyb2xsZXJBZGFwdGVyID0gbG9hZEFkYXB0ZXIobG9nZ2VyQWRhcHRlciwgV2luc3RvbkxvZ2dlckFkYXB0ZXIsIGxvZ2dlck9wdGlvbnMpO1xuICByZXR1cm4gbmV3IExvZ2dlckNvbnRyb2xsZXIobG9nZ2VyQ29udHJvbGxlckFkYXB0ZXIsIGFwcElkLCBsb2dnZXJPcHRpb25zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVzQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBGaWxlc0NvbnRyb2xsZXIge1xuICBjb25zdCB7IGFwcElkLCBkYXRhYmFzZVVSSSwgZmlsZXNBZGFwdGVyLCBkYXRhYmFzZUFkYXB0ZXIsIHByZXNlcnZlRmlsZU5hbWUsIGZpbGVLZXkgfSA9IG9wdGlvbnM7XG4gIGlmICghZmlsZXNBZGFwdGVyICYmIGRhdGFiYXNlQWRhcHRlcikge1xuICAgIHRocm93ICdXaGVuIHVzaW5nIGFuIGV4cGxpY2l0IGRhdGFiYXNlIGFkYXB0ZXIsIHlvdSBtdXN0IGFsc28gdXNlIGFuIGV4cGxpY2l0IGZpbGVzQWRhcHRlci4nO1xuICB9XG4gIGNvbnN0IGZpbGVzQ29udHJvbGxlckFkYXB0ZXIgPSBsb2FkQWRhcHRlcihmaWxlc0FkYXB0ZXIsICgpID0+IHtcbiAgICByZXR1cm4gbmV3IEdyaWRGU0J1Y2tldEFkYXB0ZXIoZGF0YWJhc2VVUkksIHt9LCBmaWxlS2V5KTtcbiAgfSk7XG4gIHJldHVybiBuZXcgRmlsZXNDb250cm9sbGVyKGZpbGVzQ29udHJvbGxlckFkYXB0ZXIsIGFwcElkLCB7XG4gICAgcHJlc2VydmVGaWxlTmFtZSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVc2VyQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBVc2VyQ29udHJvbGxlciB7XG4gIGNvbnN0IHsgYXBwSWQsIGVtYWlsQWRhcHRlciwgdmVyaWZ5VXNlckVtYWlscyB9ID0gb3B0aW9ucztcbiAgY29uc3QgZW1haWxDb250cm9sbGVyQWRhcHRlciA9IGxvYWRBZGFwdGVyKGVtYWlsQWRhcHRlcik7XG4gIHJldHVybiBuZXcgVXNlckNvbnRyb2xsZXIoZW1haWxDb250cm9sbGVyQWRhcHRlciwgYXBwSWQsIHtcbiAgICB2ZXJpZnlVc2VyRW1haWxzLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENhY2hlQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBDYWNoZUNvbnRyb2xsZXIge1xuICBjb25zdCB7IGFwcElkLCBjYWNoZUFkYXB0ZXIsIGNhY2hlVFRMLCBjYWNoZU1heFNpemUgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGNhY2hlQ29udHJvbGxlckFkYXB0ZXIgPSBsb2FkQWRhcHRlcihjYWNoZUFkYXB0ZXIsIEluTWVtb3J5Q2FjaGVBZGFwdGVyLCB7XG4gICAgYXBwSWQ6IGFwcElkLFxuICAgIHR0bDogY2FjaGVUVEwsXG4gICAgbWF4U2l6ZTogY2FjaGVNYXhTaXplLFxuICB9KTtcbiAgcmV0dXJuIG5ldyBDYWNoZUNvbnRyb2xsZXIoY2FjaGVDb250cm9sbGVyQWRhcHRlciwgYXBwSWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFyc2VHcmFwaFFMQ29udHJvbGxlcihcbiAgb3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zLFxuICBjb250cm9sbGVyRGVwc1xuKTogUGFyc2VHcmFwaFFMQ29udHJvbGxlciB7XG4gIHJldHVybiBuZXcgUGFyc2VHcmFwaFFMQ29udHJvbGxlcih7XG4gICAgbW91bnRHcmFwaFFMOiBvcHRpb25zLm1vdW50R3JhcGhRTCxcbiAgICAuLi5jb250cm9sbGVyRGVwcyxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbmFseXRpY3NDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IEFuYWx5dGljc0NvbnRyb2xsZXIge1xuICBjb25zdCB7IGFuYWx5dGljc0FkYXB0ZXIgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGFuYWx5dGljc0NvbnRyb2xsZXJBZGFwdGVyID0gbG9hZEFkYXB0ZXIoYW5hbHl0aWNzQWRhcHRlciwgQW5hbHl0aWNzQWRhcHRlcik7XG4gIHJldHVybiBuZXcgQW5hbHl0aWNzQ29udHJvbGxlcihhbmFseXRpY3NDb250cm9sbGVyQWRhcHRlcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaXZlUXVlcnlDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IExpdmVRdWVyeUNvbnRyb2xsZXIge1xuICByZXR1cm4gbmV3IExpdmVRdWVyeUNvbnRyb2xsZXIob3B0aW9ucy5saXZlUXVlcnkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YWJhc2VDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IERhdGFiYXNlQ29udHJvbGxlciB7XG4gIGNvbnN0IHsgZGF0YWJhc2VVUkksIGNvbGxlY3Rpb25QcmVmaXgsIGRhdGFiYXNlT3B0aW9ucyB9ID0gb3B0aW9ucztcbiAgbGV0IHsgZGF0YWJhc2VBZGFwdGVyIH0gPSBvcHRpb25zO1xuICBpZiAoXG4gICAgKGRhdGFiYXNlT3B0aW9ucyB8fFxuICAgICAgKGRhdGFiYXNlVVJJICYmIGRhdGFiYXNlVVJJICE9PSBkZWZhdWx0cy5kYXRhYmFzZVVSSSkgfHxcbiAgICAgIGNvbGxlY3Rpb25QcmVmaXggIT09IGRlZmF1bHRzLmNvbGxlY3Rpb25QcmVmaXgpICYmXG4gICAgZGF0YWJhc2VBZGFwdGVyXG4gICkge1xuICAgIHRocm93ICdZb3UgY2Fubm90IHNwZWNpZnkgYm90aCBhIGRhdGFiYXNlQWRhcHRlciBhbmQgYSBkYXRhYmFzZVVSSS9kYXRhYmFzZU9wdGlvbnMvY29sbGVjdGlvblByZWZpeC4nO1xuICB9IGVsc2UgaWYgKCFkYXRhYmFzZUFkYXB0ZXIpIHtcbiAgICBkYXRhYmFzZUFkYXB0ZXIgPSBnZXREYXRhYmFzZUFkYXB0ZXIoZGF0YWJhc2VVUkksIGNvbGxlY3Rpb25QcmVmaXgsIGRhdGFiYXNlT3B0aW9ucyk7XG4gIH0gZWxzZSB7XG4gICAgZGF0YWJhc2VBZGFwdGVyID0gbG9hZEFkYXB0ZXIoZGF0YWJhc2VBZGFwdGVyKTtcbiAgfVxuICByZXR1cm4gbmV3IERhdGFiYXNlQ29udHJvbGxlcihkYXRhYmFzZUFkYXB0ZXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SG9va3NDb250cm9sbGVyKFxuICBvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMsXG4gIGRhdGFiYXNlQ29udHJvbGxlcjogRGF0YWJhc2VDb250cm9sbGVyXG4pOiBIb29rc0NvbnRyb2xsZXIge1xuICBjb25zdCB7IGFwcElkLCB3ZWJob29rS2V5IH0gPSBvcHRpb25zO1xuICByZXR1cm4gbmV3IEhvb2tzQ29udHJvbGxlcihhcHBJZCwgZGF0YWJhc2VDb250cm9sbGVyLCB3ZWJob29rS2V5KTtcbn1cblxuaW50ZXJmYWNlIFB1c2hDb250cm9sbGluZyB7XG4gIHB1c2hDb250cm9sbGVyOiBQdXNoQ29udHJvbGxlcjtcbiAgaGFzUHVzaFNjaGVkdWxlZFN1cHBvcnQ6IGJvb2xlYW47XG4gIHB1c2hDb250cm9sbGVyUXVldWU6IFB1c2hRdWV1ZTtcbiAgcHVzaFdvcmtlcjogUHVzaFdvcmtlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFB1c2hDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IFB1c2hDb250cm9sbGluZyB7XG4gIGNvbnN0IHsgc2NoZWR1bGVkUHVzaCwgcHVzaCB9ID0gb3B0aW9ucztcblxuICBjb25zdCBwdXNoT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHB1c2gpO1xuICBjb25zdCBwdXNoUXVldWVPcHRpb25zID0gcHVzaE9wdGlvbnMucXVldWVPcHRpb25zIHx8IHt9O1xuICBpZiAocHVzaE9wdGlvbnMucXVldWVPcHRpb25zKSB7XG4gICAgZGVsZXRlIHB1c2hPcHRpb25zLnF1ZXVlT3B0aW9ucztcbiAgfVxuXG4gIC8vIFBhc3MgdGhlIHB1c2ggb3B0aW9ucyB0b28gYXMgaXQgd29ya3Mgd2l0aCB0aGUgZGVmYXVsdFxuICBjb25zdCBwdXNoQWRhcHRlciA9IGxvYWRBZGFwdGVyKFxuICAgIHB1c2hPcHRpb25zICYmIHB1c2hPcHRpb25zLmFkYXB0ZXIsXG4gICAgUGFyc2VQdXNoQWRhcHRlcixcbiAgICBwdXNoT3B0aW9uc1xuICApO1xuICAvLyBXZSBwYXNzIHRoZSBvcHRpb25zIGFuZCB0aGUgYmFzZSBjbGFzcyBmb3IgdGhlIGFkYXRwZXIsXG4gIC8vIE5vdGUgdGhhdCBwYXNzaW5nIGFuIGluc3RhbmNlIHdvdWxkIHdvcmsgdG9vXG4gIGNvbnN0IHB1c2hDb250cm9sbGVyID0gbmV3IFB1c2hDb250cm9sbGVyKCk7XG4gIGNvbnN0IGhhc1B1c2hTdXBwb3J0ID0gISEocHVzaEFkYXB0ZXIgJiYgcHVzaCk7XG4gIGNvbnN0IGhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0ID0gaGFzUHVzaFN1cHBvcnQgJiYgc2NoZWR1bGVkUHVzaCA9PT0gdHJ1ZTtcblxuICBjb25zdCB7IGRpc2FibGVQdXNoV29ya2VyIH0gPSBwdXNoUXVldWVPcHRpb25zO1xuXG4gIGNvbnN0IHB1c2hDb250cm9sbGVyUXVldWUgPSBuZXcgUHVzaFF1ZXVlKHB1c2hRdWV1ZU9wdGlvbnMpO1xuICBsZXQgcHVzaFdvcmtlcjtcbiAgaWYgKCFkaXNhYmxlUHVzaFdvcmtlcikge1xuICAgIHB1c2hXb3JrZXIgPSBuZXcgUHVzaFdvcmtlcihwdXNoQWRhcHRlciwgcHVzaFF1ZXVlT3B0aW9ucyk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBwdXNoQ29udHJvbGxlcixcbiAgICBoYXNQdXNoU3VwcG9ydCxcbiAgICBoYXNQdXNoU2NoZWR1bGVkU3VwcG9ydCxcbiAgICBwdXNoQ29udHJvbGxlclF1ZXVlLFxuICAgIHB1c2hXb3JrZXIsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBdXRoRGF0YU1hbmFnZXIob3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zKSB7XG4gIGNvbnN0IHsgYXV0aCwgZW5hYmxlQW5vbnltb3VzVXNlcnMgfSA9IG9wdGlvbnM7XG4gIHJldHVybiBhdXRoRGF0YU1hbmFnZXIoYXV0aCwgZW5hYmxlQW5vbnltb3VzVXNlcnMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YWJhc2VBZGFwdGVyKGRhdGFiYXNlVVJJLCBjb2xsZWN0aW9uUHJlZml4LCBkYXRhYmFzZU9wdGlvbnMpIHtcbiAgbGV0IHByb3RvY29sO1xuICB0cnkge1xuICAgIGNvbnN0IHBhcnNlZFVSSSA9IHVybC5wYXJzZShkYXRhYmFzZVVSSSk7XG4gICAgcHJvdG9jb2wgPSBwYXJzZWRVUkkucHJvdG9jb2wgPyBwYXJzZWRVUkkucHJvdG9jb2wudG9Mb3dlckNhc2UoKSA6IG51bGw7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAvKiAqL1xuICB9XG4gIHN3aXRjaCAocHJvdG9jb2wpIHtcbiAgICBjYXNlICdwb3N0Z3JlczonOlxuICAgICAgcmV0dXJuIG5ldyBQb3N0Z3Jlc1N0b3JhZ2VBZGFwdGVyKHtcbiAgICAgICAgdXJpOiBkYXRhYmFzZVVSSSxcbiAgICAgICAgY29sbGVjdGlvblByZWZpeCxcbiAgICAgICAgZGF0YWJhc2VPcHRpb25zLFxuICAgICAgfSk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBuZXcgTW9uZ29TdG9yYWdlQWRhcHRlcih7XG4gICAgICAgIHVyaTogZGF0YWJhc2VVUkksXG4gICAgICAgIGNvbGxlY3Rpb25QcmVmaXgsXG4gICAgICAgIG1vbmdvT3B0aW9uczogZGF0YWJhc2VPcHRpb25zLFxuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==
310
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db250cm9sbGVycy9pbmRleC5qcyJdLCJuYW1lcyI6WyJnZXRDb250cm9sbGVycyIsIm9wdGlvbnMiLCJsb2dnZXJDb250cm9sbGVyIiwiZ2V0TG9nZ2VyQ29udHJvbGxlciIsImZpbGVzQ29udHJvbGxlciIsImdldEZpbGVzQ29udHJvbGxlciIsInVzZXJDb250cm9sbGVyIiwiZ2V0VXNlckNvbnRyb2xsZXIiLCJwdXNoQ29udHJvbGxlciIsImhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0IiwiaGFzUHVzaFN1cHBvcnQiLCJwdXNoQ29udHJvbGxlclF1ZXVlIiwicHVzaFdvcmtlciIsImdldFB1c2hDb250cm9sbGVyIiwiY2FjaGVDb250cm9sbGVyIiwiZ2V0Q2FjaGVDb250cm9sbGVyIiwiYW5hbHl0aWNzQ29udHJvbGxlciIsImdldEFuYWx5dGljc0NvbnRyb2xsZXIiLCJsaXZlUXVlcnlDb250cm9sbGVyIiwiZ2V0TGl2ZVF1ZXJ5Q29udHJvbGxlciIsImRhdGFiYXNlQ29udHJvbGxlciIsImdldERhdGFiYXNlQ29udHJvbGxlciIsImhvb2tzQ29udHJvbGxlciIsImdldEhvb2tzQ29udHJvbGxlciIsImF1dGhEYXRhTWFuYWdlciIsImdldEF1dGhEYXRhTWFuYWdlciIsInBhcnNlR3JhcGhRTENvbnRyb2xsZXIiLCJnZXRQYXJzZUdyYXBoUUxDb250cm9sbGVyIiwic2NoZW1hQ2FjaGUiLCJTY2hlbWFDYWNoZSIsImFwcElkIiwianNvbkxvZ3MiLCJsb2dzRm9sZGVyIiwidmVyYm9zZSIsImxvZ0xldmVsIiwibWF4TG9nRmlsZXMiLCJzaWxlbnQiLCJsb2dnZXJBZGFwdGVyIiwibG9nZ2VyT3B0aW9ucyIsImxvZ2dlckNvbnRyb2xsZXJBZGFwdGVyIiwiV2luc3RvbkxvZ2dlckFkYXB0ZXIiLCJMb2dnZXJDb250cm9sbGVyIiwiZGF0YWJhc2VVUkkiLCJmaWxlc0FkYXB0ZXIiLCJkYXRhYmFzZUFkYXB0ZXIiLCJwcmVzZXJ2ZUZpbGVOYW1lIiwiZmlsZUtleSIsImZpbGVzQ29udHJvbGxlckFkYXB0ZXIiLCJHcmlkRlNCdWNrZXRBZGFwdGVyIiwiRmlsZXNDb250cm9sbGVyIiwiZW1haWxBZGFwdGVyIiwidmVyaWZ5VXNlckVtYWlscyIsImVtYWlsQ29udHJvbGxlckFkYXB0ZXIiLCJVc2VyQ29udHJvbGxlciIsImNhY2hlQWRhcHRlciIsImNhY2hlVFRMIiwiY2FjaGVNYXhTaXplIiwiY2FjaGVDb250cm9sbGVyQWRhcHRlciIsIkluTWVtb3J5Q2FjaGVBZGFwdGVyIiwidHRsIiwibWF4U2l6ZSIsIkNhY2hlQ29udHJvbGxlciIsImNvbnRyb2xsZXJEZXBzIiwiUGFyc2VHcmFwaFFMQ29udHJvbGxlciIsIm1vdW50R3JhcGhRTCIsImFuYWx5dGljc0FkYXB0ZXIiLCJhbmFseXRpY3NDb250cm9sbGVyQWRhcHRlciIsIkFuYWx5dGljc0FkYXB0ZXIiLCJBbmFseXRpY3NDb250cm9sbGVyIiwiTGl2ZVF1ZXJ5Q29udHJvbGxlciIsImxpdmVRdWVyeSIsImNvbGxlY3Rpb25QcmVmaXgiLCJkYXRhYmFzZU9wdGlvbnMiLCJpZGVtcG90ZW5jeU9wdGlvbnMiLCJkZWZhdWx0cyIsImdldERhdGFiYXNlQWRhcHRlciIsIkRhdGFiYXNlQ29udHJvbGxlciIsIndlYmhvb2tLZXkiLCJIb29rc0NvbnRyb2xsZXIiLCJzY2hlZHVsZWRQdXNoIiwicHVzaCIsInB1c2hPcHRpb25zIiwiT2JqZWN0IiwiYXNzaWduIiwicHVzaFF1ZXVlT3B0aW9ucyIsInF1ZXVlT3B0aW9ucyIsInB1c2hBZGFwdGVyIiwiYWRhcHRlciIsIlBhcnNlUHVzaEFkYXB0ZXIiLCJQdXNoQ29udHJvbGxlciIsImRpc2FibGVQdXNoV29ya2VyIiwiUHVzaFF1ZXVlIiwiUHVzaFdvcmtlciIsImF1dGgiLCJlbmFibGVBbm9ueW1vdXNVc2VycyIsInByb3RvY29sIiwicGFyc2VkVVJJIiwiVVJMIiwidG9Mb3dlckNhc2UiLCJlIiwiUG9zdGdyZXNTdG9yYWdlQWRhcHRlciIsInVy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QUhnQyxPQUEzQixDQUFQOztBQUtGO0FBQ0UsYUFBTyxJQUFJOEIsNEJBQUosQ0FBd0I7QUFDN0JELFFBQUFBLEdBQUcsRUFBRTNELFdBRHdCO0FBRTdCNkIsUUFBQUEsZ0JBRjZCO0FBRzdCZ0MsUUFBQUEsWUFBWSxFQUFFL0I7QUFIZSxPQUF4QixDQUFQO0FBVEo7QUFlRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhdXRoRGF0YU1hbmFnZXIgZnJvbSAnLi4vQWRhcHRlcnMvQXV0aCc7XG5pbXBvcnQgeyBQYXJzZVNlcnZlck9wdGlvbnMgfSBmcm9tICcuLi9PcHRpb25zJztcbmltcG9ydCB7IGxvYWRBZGFwdGVyIH0gZnJvbSAnLi4vQWRhcHRlcnMvQWRhcHRlckxvYWRlcic7XG5pbXBvcnQgZGVmYXVsdHMgZnJvbSAnLi4vZGVmYXVsdHMnO1xuLy8gQ29udHJvbGxlcnNcbmltcG9ydCB7IExvZ2dlckNvbnRyb2xsZXIgfSBmcm9tICcuL0xvZ2dlckNvbnRyb2xsZXInO1xuaW1wb3J0IHsgRmlsZXNDb250cm9sbGVyIH0gZnJvbSAnLi9GaWxlc0NvbnRyb2xsZXInO1xuaW1wb3J0IHsgSG9va3NDb250cm9sbGVyIH0gZnJvbSAnLi9Ib29rc0NvbnRyb2xsZXInO1xuaW1wb3J0IHsgVXNlckNvbnRyb2xsZXIgfSBmcm9tICcuL1VzZXJDb250cm9sbGVyJztcbmltcG9ydCB7IENhY2hlQ29udHJvbGxlciB9IGZyb20gJy4vQ2FjaGVDb250cm9sbGVyJztcbmltcG9ydCB7IExpdmVRdWVyeUNvbnRyb2xsZXIgfSBmcm9tICcuL0xpdmVRdWVyeUNvbnRyb2xsZXInO1xuaW1wb3J0IHsgQW5hbHl0aWNzQ29udHJvbGxlciB9IGZyb20gJy4vQW5hbHl0aWNzQ29udHJvbGxlcic7XG5pbXBvcnQgeyBQdXNoQ29udHJvbGxlciB9IGZyb20gJy4vUHVzaENvbnRyb2xsZXInO1xuaW1wb3J0IHsgUHVzaFF1ZXVlIH0gZnJvbSAnLi4vUHVzaC9QdXNoUXVldWUnO1xuaW1wb3J0IHsgUHVzaFdvcmtlciB9IGZyb20gJy4uL1B1c2gvUHVzaFdvcmtlcic7XG5pbXBvcnQgRGF0YWJhc2VDb250cm9sbGVyIGZyb20gJy4vRGF0YWJhc2VDb250cm9sbGVyJztcblxuLy8gQWRhcHRlcnNcbmltcG9ydCB7IEdyaWRGU0J1Y2tldEFkYXB0ZXIgfSBmcm9tICcuLi9BZGFwdGVycy9GaWxlcy9HcmlkRlNCdWNrZXRBZGFwdGVyJztcbmltcG9ydCB7IFdpbnN0b25Mb2dnZXJBZGFwdGVyIH0gZnJvbSAnLi4vQWRhcHRlcnMvTG9nZ2VyL1dpbnN0b25Mb2dnZXJBZGFwdGVyJztcbmltcG9ydCB7IEluTWVtb3J5Q2FjaGVBZGFwdGVyIH0gZnJvbSAnLi4vQWRhcHRlcnMvQ2FjaGUvSW5NZW1vcnlDYWNoZUFkYXB0ZXInO1xuaW1wb3J0IHsgQW5hbHl0aWNzQWRhcHRlciB9IGZyb20gJy4uL0FkYXB0ZXJzL0FuYWx5dGljcy9BbmFseXRpY3NBZGFwdGVyJztcbmltcG9ydCBNb25nb1N0b3JhZ2VBZGFwdGVyIGZyb20gJy4uL0FkYXB0ZXJzL1N0b3JhZ2UvTW9uZ28vTW9uZ29TdG9yYWdlQWRhcHRlcic7XG5pbXBvcnQgUG9zdGdyZXNTdG9yYWdlQWRhcHRlciBmcm9tICcuLi9BZGFwdGVycy9TdG9yYWdlL1Bvc3RncmVzL1Bvc3RncmVzU3RvcmFnZUFkYXB0ZXInO1xuaW1wb3J0IFBhcnNlUHVzaEFkYXB0ZXIgZnJvbSAnQHBhcnNlL3B1c2gtYWRhcHRlcic7XG5pbXBvcnQgUGFyc2VHcmFwaFFMQ29udHJvbGxlciBmcm9tICcuL1BhcnNlR3JhcGhRTENvbnRyb2xsZXInO1xuaW1wb3J0IFNjaGVtYUNhY2hlIGZyb20gJy4uL0FkYXB0ZXJzL0NhY2hlL1NjaGVtYUNhY2hlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbnRyb2xsZXJzKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucykge1xuICBjb25zdCBsb2dnZXJDb250cm9sbGVyID0gZ2V0TG9nZ2VyQ29udHJvbGxlcihvcHRpb25zKTtcbiAgY29uc3QgZmlsZXNDb250cm9sbGVyID0gZ2V0RmlsZXNDb250cm9sbGVyKG9wdGlvbnMpO1xuICBjb25zdCB1c2VyQ29udHJvbGxlciA9IGdldFVzZXJDb250cm9sbGVyKG9wdGlvbnMpO1xuICBjb25zdCB7XG4gICAgcHVzaENvbnRyb2xsZXIsXG4gICAgaGFzUHVzaFNjaGVkdWxlZFN1cHBvcnQsXG4gICAgaGFzUHVzaFN1cHBvcnQsXG4gICAgcHVzaENvbnRyb2xsZXJRdWV1ZSxcbiAgICBwdXNoV29ya2VyLFxuICB9ID0gZ2V0UHVzaENvbnRyb2xsZXIob3B0aW9ucyk7XG4gIGNvbnN0IGNhY2hlQ29udHJvbGxlciA9IGdldENhY2hlQ29udHJvbGxlcihvcHRpb25zKTtcbiAgY29uc3QgYW5hbHl0aWNzQ29udHJvbGxlciA9IGdldEFuYWx5dGljc0NvbnRyb2xsZXIob3B0aW9ucyk7XG4gIGNvbnN0IGxpdmVRdWVyeUNvbnRyb2xsZXIgPSBnZXRMaXZlUXVlcnlDb250cm9sbGVyKG9wdGlvbnMpO1xuICBjb25zdCBkYXRhYmFzZUNvbnRyb2xsZXIgPSBnZXREYXRhYmFzZUNvbnRyb2xsZXIob3B0aW9ucyk7XG4gIGNvbnN0IGhvb2tzQ29udHJvbGxlciA9IGdldEhvb2tzQ29udHJvbGxlcihvcHRpb25zLCBkYXRhYmFzZUNvbnRyb2xsZXIpO1xuICBjb25zdCBhdXRoRGF0YU1hbmFnZXIgPSBnZXRBdXRoRGF0YU1hbmFnZXIob3B0aW9ucyk7XG4gIGNvbnN0IHBhcnNlR3JhcGhRTENvbnRyb2xsZXIgPSBnZXRQYXJzZUdyYXBoUUxDb250cm9sbGVyKG9wdGlvbnMsIHtcbiAgICBkYXRhYmFzZUNvbnRyb2xsZXIsXG4gICAgY2FjaGVDb250cm9sbGVyLFxuICB9KTtcbiAgcmV0dXJuIHtcbiAgICBsb2dnZXJDb250cm9sbGVyLFxuICAgIGZpbGVzQ29udHJvbGxlcixcbiAgICB1c2VyQ29udHJvbGxlcixcbiAgICBwdXNoQ29udHJvbGxlcixcbiAgICBoYXNQdXNoU2NoZWR1bGVkU3VwcG9ydCxcbiAgICBoYXNQdXNoU3VwcG9ydCxcbiAgICBwdXNoV29ya2VyLFxuICAgIHB1c2hDb250cm9sbGVyUXVldWUsXG4gICAgYW5hbHl0aWNzQ29udHJvbGxlcixcbiAgICBjYWNoZUNvbnRyb2xsZXIsXG4gICAgcGFyc2VHcmFwaFFMQ29udHJvbGxlcixcbiAgICBsaXZlUXVlcnlDb250cm9sbGVyLFxuICAgIGRhdGFiYXNlQ29udHJvbGxlcixcbiAgICBob29rc0NvbnRyb2xsZXIsXG4gICAgYXV0aERhdGFNYW5hZ2VyLFxuICAgIHNjaGVtYUNhY2hlOiBTY2hlbWFDYWNoZSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExvZ2dlckNvbnRyb2xsZXIob3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zKTogTG9nZ2VyQ29udHJvbGxlciB7XG4gIGNvbnN0IHtcbiAgICBhcHBJZCxcbiAgICBqc29uTG9ncyxcbiAgICBsb2dzRm9sZGVyLFxuICAgIHZlcmJvc2UsXG4gICAgbG9nTGV2ZWwsXG4gICAgbWF4TG9nRmlsZXMsXG4gICAgc2lsZW50LFxuICAgIGxvZ2dlckFkYXB0ZXIsXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBsb2dnZXJPcHRpb25zID0ge1xuICAgIGpzb25Mb2dzLFxuICAgIGxvZ3NGb2xkZXIsXG4gICAgdmVyYm9zZSxcbiAgICBsb2dMZXZlbCxcbiAgICBzaWxlbnQsXG4gICAgbWF4TG9nRmlsZXMsXG4gIH07XG4gIGNvbnN0IGxvZ2dlckNvbnRyb2xsZXJBZGFwdGVyID0gbG9hZEFkYXB0ZXIobG9nZ2VyQWRhcHRlciwgV2luc3RvbkxvZ2dlckFkYXB0ZXIsIGxvZ2dlck9wdGlvbnMpO1xuICByZXR1cm4gbmV3IExvZ2dlckNvbnRyb2xsZXIobG9nZ2VyQ29udHJvbGxlckFkYXB0ZXIsIGFwcElkLCBsb2dnZXJPcHRpb25zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVzQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBGaWxlc0NvbnRyb2xsZXIge1xuICBjb25zdCB7IGFwcElkLCBkYXRhYmFzZVVSSSwgZmlsZXNBZGFwdGVyLCBkYXRhYmFzZUFkYXB0ZXIsIHByZXNlcnZlRmlsZU5hbWUsIGZpbGVLZXkgfSA9IG9wdGlvbnM7XG4gIGlmICghZmlsZXNBZGFwdGVyICYmIGRhdGFiYXNlQWRhcHRlcikge1xuICAgIHRocm93ICdXaGVuIHVzaW5nIGFuIGV4cGxpY2l0IGRhdGFiYXNlIGFkYXB0ZXIsIHlvdSBtdXN0IGFsc28gdXNlIGFuIGV4cGxpY2l0IGZpbGVzQWRhcHRlci4nO1xuICB9XG4gIGNvbnN0IGZpbGVzQ29udHJvbGxlckFkYXB0ZXIgPSBsb2FkQWRhcHRlcihmaWxlc0FkYXB0ZXIsICgpID0+IHtcbiAgICByZXR1cm4gbmV3IEdyaWRGU0J1Y2tldEFkYXB0ZXIoZGF0YWJhc2VVUkksIHt9LCBmaWxlS2V5KTtcbiAgfSk7XG4gIHJldHVybiBuZXcgRmlsZXNDb250cm9sbGVyKGZpbGVzQ29udHJvbGxlckFkYXB0ZXIsIGFwcElkLCB7XG4gICAgcHJlc2VydmVGaWxlTmFtZSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVc2VyQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBVc2VyQ29udHJvbGxlciB7XG4gIGNvbnN0IHsgYXBwSWQsIGVtYWlsQWRhcHRlciwgdmVyaWZ5VXNlckVtYWlscyB9ID0gb3B0aW9ucztcbiAgY29uc3QgZW1haWxDb250cm9sbGVyQWRhcHRlciA9IGxvYWRBZGFwdGVyKGVtYWlsQWRhcHRlcik7XG4gIHJldHVybiBuZXcgVXNlckNvbnRyb2xsZXIoZW1haWxDb250cm9sbGVyQWRhcHRlciwgYXBwSWQsIHtcbiAgICB2ZXJpZnlVc2VyRW1haWxzLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENhY2hlQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBDYWNoZUNvbnRyb2xsZXIge1xuICBjb25zdCB7IGFwcElkLCBjYWNoZUFkYXB0ZXIsIGNhY2hlVFRMLCBjYWNoZU1heFNpemUgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGNhY2hlQ29udHJvbGxlckFkYXB0ZXIgPSBsb2FkQWRhcHRlcihjYWNoZUFkYXB0ZXIsIEluTWVtb3J5Q2FjaGVBZGFwdGVyLCB7XG4gICAgYXBwSWQ6IGFwcElkLFxuICAgIHR0bDogY2FjaGVUVEwsXG4gICAgbWF4U2l6ZTogY2FjaGVNYXhTaXplLFxuICB9KTtcbiAgcmV0dXJuIG5ldyBDYWNoZUNvbnRyb2xsZXIoY2FjaGVDb250cm9sbGVyQWRhcHRlciwgYXBwSWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFyc2VHcmFwaFFMQ29udHJvbGxlcihcbiAgb3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zLFxuICBjb250cm9sbGVyRGVwc1xuKTogUGFyc2VHcmFwaFFMQ29udHJvbGxlciB7XG4gIHJldHVybiBuZXcgUGFyc2VHcmFwaFFMQ29udHJvbGxlcih7XG4gICAgbW91bnRHcmFwaFFMOiBvcHRpb25zLm1vdW50R3JhcGhRTCxcbiAgICAuLi5jb250cm9sbGVyRGVwcyxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbmFseXRpY3NDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IEFuYWx5dGljc0NvbnRyb2xsZXIge1xuICBjb25zdCB7IGFuYWx5dGljc0FkYXB0ZXIgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGFuYWx5dGljc0NvbnRyb2xsZXJBZGFwdGVyID0gbG9hZEFkYXB0ZXIoYW5hbHl0aWNzQWRhcHRlciwgQW5hbHl0aWNzQWRhcHRlcik7XG4gIHJldHVybiBuZXcgQW5hbHl0aWNzQ29udHJvbGxlcihhbmFseXRpY3NDb250cm9sbGVyQWRhcHRlcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaXZlUXVlcnlDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IExpdmVRdWVyeUNvbnRyb2xsZXIge1xuICByZXR1cm4gbmV3IExpdmVRdWVyeUNvbnRyb2xsZXIob3B0aW9ucy5saXZlUXVlcnkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YWJhc2VDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IERhdGFiYXNlQ29udHJvbGxlciB7XG4gIGNvbnN0IHsgZGF0YWJhc2VVUkksIGNvbGxlY3Rpb25QcmVmaXgsIGRhdGFiYXNlT3B0aW9ucywgaWRlbXBvdGVuY3lPcHRpb25zIH0gPSBvcHRpb25zO1xuICBsZXQgeyBkYXRhYmFzZUFkYXB0ZXIgfSA9IG9wdGlvbnM7XG4gIGlmIChcbiAgICAoZGF0YWJhc2VPcHRpb25zIHx8XG4gICAgICAoZGF0YWJhc2VVUkkgJiYgZGF0YWJhc2VVUkkgIT09IGRlZmF1bHRzLmRhdGFiYXNlVVJJKSB8fFxuICAgICAgY29sbGVjdGlvblByZWZpeCAhPT0gZGVmYXVsdHMuY29sbGVjdGlvblByZWZpeCkgJiZcbiAgICBkYXRhYmFzZUFkYXB0ZXJcbiAgKSB7XG4gICAgdGhyb3cgJ1lvdSBjYW5ub3Qgc3BlY2lmeSBib3RoIGEgZGF0YWJhc2VBZGFwdGVyIGFuZCBhIGRhdGFiYXNlVVJJL2RhdGFiYXNlT3B0aW9ucy9jb2xsZWN0aW9uUHJlZml4Lic7XG4gIH0gZWxzZSBpZiAoIWRhdGFiYXNlQWRhcHRlcikge1xuICAgIGRhdGFiYXNlQWRhcHRlciA9IGdldERhdGFiYXNlQWRhcHRlcihkYXRhYmFzZVVSSSwgY29sbGVjdGlvblByZWZpeCwgZGF0YWJhc2VPcHRpb25zKTtcbiAgfSBlbHNlIHtcbiAgICBkYXRhYmFzZUFkYXB0ZXIgPSBsb2FkQWRhcHRlcihkYXRhYmFzZUFkYXB0ZXIpO1xuICB9XG4gIHJldHVybiBuZXcgRGF0YWJhc2VDb250cm9sbGVyKGRhdGFiYXNlQWRhcHRlciwgaWRlbXBvdGVuY3lPcHRpb25zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEhvb2tzQ29udHJvbGxlcihcbiAgb3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zLFxuICBkYXRhYmFzZUNvbnRyb2xsZXI6IERhdGFiYXNlQ29udHJvbGxlclxuKTogSG9va3NDb250cm9sbGVyIHtcbiAgY29uc3QgeyBhcHBJZCwgd2ViaG9va0tleSB9ID0gb3B0aW9ucztcbiAgcmV0dXJuIG5ldyBIb29rc0NvbnRyb2xsZXIoYXBwSWQsIGRhdGFiYXNlQ29udHJvbGxlciwgd2ViaG9va0tleSk7XG59XG5cbmludGVyZmFjZSBQdXNoQ29udHJvbGxpbmcge1xuICBwdXNoQ29udHJvbGxlcjogUHVzaENvbnRyb2xsZXI7XG4gIGhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0OiBib29sZWFuO1xuICBwdXNoQ29udHJvbGxlclF1ZXVlOiBQdXNoUXVldWU7XG4gIHB1c2hXb3JrZXI6IFB1c2hXb3JrZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQdXNoQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBQdXNoQ29udHJvbGxpbmcge1xuICBjb25zdCB7IHNjaGVkdWxlZFB1c2gsIHB1c2ggfSA9IG9wdGlvbnM7XG5cbiAgY29uc3QgcHVzaE9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBwdXNoKTtcbiAgY29uc3QgcHVzaFF1ZXVlT3B0aW9ucyA9IHB1c2hPcHRpb25zLnF1ZXVlT3B0aW9ucyB8fCB7fTtcbiAgaWYgKHB1c2hPcHRpb25zLnF1ZXVlT3B0aW9ucykge1xuICAgIGRlbGV0ZSBwdXNoT3B0aW9ucy5xdWV1ZU9wdGlvbnM7XG4gIH1cblxuICAvLyBQYXNzIHRoZSBwdXNoIG9wdGlvbnMgdG9vIGFzIGl0IHdvcmtzIHdpdGggdGhlIGRlZmF1bHRcbiAgY29uc3QgcHVzaEFkYXB0ZXIgPSBsb2FkQWRhcHRlcihcbiAgICBwdXNoT3B0aW9ucyAmJiBwdXNoT3B0aW9ucy5hZGFwdGVyLFxuICAgIFBhcnNlUHVzaEFkYXB0ZXIsXG4gICAgcHVzaE9wdGlvbnNcbiAgKTtcbiAgLy8gV2UgcGFzcyB0aGUgb3B0aW9ucyBhbmQgdGhlIGJhc2UgY2xhc3MgZm9yIHRoZSBhZGF0cGVyLFxuICAvLyBOb3RlIHRoYXQgcGFzc2luZyBhbiBpbnN0YW5jZSB3b3VsZCB3b3JrIHRvb1xuICBjb25zdCBwdXNoQ29udHJvbGxlciA9IG5ldyBQdXNoQ29udHJvbGxlcigpO1xuICBjb25zdCBoYXNQdXNoU3VwcG9ydCA9ICEhKHB1c2hBZGFwdGVyICYmIHB1c2gpO1xuICBjb25zdCBoYXNQdXNoU2NoZWR1bGVkU3VwcG9ydCA9IGhhc1B1c2hTdXBwb3J0ICYmIHNjaGVkdWxlZFB1c2ggPT09IHRydWU7XG5cbiAgY29uc3QgeyBkaXNhYmxlUHVzaFdvcmtlciB9ID0gcHVzaFF1ZXVlT3B0aW9ucztcblxuICBjb25zdCBwdXNoQ29udHJvbGxlclF1ZXVlID0gbmV3IFB1c2hRdWV1ZShwdXNoUXVldWVPcHRpb25zKTtcbiAgbGV0IHB1c2hXb3JrZXI7XG4gIGlmICghZGlzYWJsZVB1c2hXb3JrZXIpIHtcbiAgICBwdXNoV29ya2VyID0gbmV3IFB1c2hXb3JrZXIocHVzaEFkYXB0ZXIsIHB1c2hRdWV1ZU9wdGlvbnMpO1xuICB9XG4gIHJldHVybiB7XG4gICAgcHVzaENvbnRyb2xsZXIsXG4gICAgaGFzUHVzaFN1cHBvcnQsXG4gICAgaGFzUHVzaFNjaGVkdWxlZFN1cHBvcnQsXG4gICAgcHVzaENvbnRyb2xsZXJRdWV1ZSxcbiAgICBwdXNoV29ya2VyLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXV0aERhdGFNYW5hZ2VyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucykge1xuICBjb25zdCB7IGF1dGgsIGVuYWJsZUFub255bW91c1VzZXJzIH0gPSBvcHRpb25zO1xuICByZXR1cm4gYXV0aERhdGFNYW5hZ2VyKGF1dGgsIGVuYWJsZUFub255bW91c1VzZXJzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGFiYXNlQWRhcHRlcihkYXRhYmFzZVVSSSwgY29sbGVjdGlvblByZWZpeCwgZGF0YWJhc2VPcHRpb25zKSB7XG4gIGxldCBwcm90b2NvbDtcbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJzZWRVUkkgPSBuZXcgVVJMKGRhdGFiYXNlVVJJKTtcbiAgICBwcm90b2NvbCA9IHBhcnNlZFVSSS5wcm90b2NvbCA/IHBhcnNlZFVSSS5wcm90b2NvbC50b0xvd2VyQ2FzZSgpIDogbnVsbDtcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8qICovXG4gIH1cbiAgc3dpdGNoIChwcm90b2NvbCkge1xuICAgIGNhc2UgJ3Bvc3RncmVzOic6XG4gICAgY2FzZSAncG9zdGdyZXNxbDonOlxuICAgICAgcmV0dXJuIG5ldyBQb3N0Z3Jlc1N0b3JhZ2VBZGFwdGVyKHtcbiAgICAgICAgdXJpOiBkYXRhYmFzZVVSSSxcbiAgICAgICAgY29sbGVjdGlvblByZWZpeCxcbiAgICAgICAgZGF0YWJhc2VPcHRpb25zLFxuICAgICAgfSk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBuZXcgTW9uZ29TdG9yYWdlQWRhcHRlcih7XG4gICAgICAgIHVyaTogZGF0YWJhc2VVUkksXG4gICAgICAgIGNvbGxlY3Rpb25QcmVmaXgsXG4gICAgICAgIG1vbmdvT3B0aW9uczogZGF0YWJhc2VPcHRpb25zLFxuICAgICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -433,6 +433,42 @@ module.exports.SecurityOptions = {
433
433
  default: false
434
434
  }
435
435
  };
436
+ module.exports.SchemaOptions = {
437
+ definitions: {
438
+ help: 'The schema definitions.',
439
+ default: []
440
+ },
441
+ strict: {
442
+ env: 'PARSE_SERVER_SCHEMA_STRICT',
443
+ help: 'Is true if Parse Server should exit if schema update fail.',
444
+ action: parsers.booleanParser,
445
+ default: true
446
+ },
447
+ deleteExtraFields: {
448
+ env: 'PARSE_SERVER_SCHEMA_DELETE_EXTRA_FIELDS',
449
+ help: 'Is true if Parse Server should delete any fields not defined in a schema definition. This should only be used during development.',
450
+ action: parsers.booleanParser,
451
+ default: false
452
+ },
453
+ recreateModifiedFields: {
454
+ env: 'PARSE_SERVER_SCHEMA_RECREATE_MODIFIED_FIELDS',
455
+ help: 'Is true if Parse Server should recreate any fields that are different between the current database schema and theschema definition. This should only be used during development.',
456
+ action: parsers.booleanParser,
457
+ default: false
458
+ },
459
+ lockSchemas: {
460
+ env: 'PARSE_SERVER_SCHEMA_LOCK',
461
+ help: 'Is true if Parse Server will reject any attempts to modify the schema while the server is running.',
462
+ action: parsers.booleanParser,
463
+ default: false
464
+ },
465
+ beforeMigration: {
466
+ help: 'Execute a callback before running schema migrations.'
467
+ },
468
+ afterMigration: {
469
+ help: 'Execute a callback after running schema migrations.'
470
+ }
471
+ };
436
472
  module.exports.PagesOptions = {
437
473
  customRoutes: {
438
474
  env: 'PARSE_SERVER_PAGES_CUSTOM_ROUTES',
@@ -768,4 +804,4 @@ module.exports.DatabaseOptions = {
768
804
  default: false
769
805
  }
770
806
  };
771
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9PcHRpb25zL0RlZmluaXRpb25zLmpzIl0sIm5hbWVzIjpbInBhcnNlcnMiLCJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyIsIlBhcnNlU2VydmVyT3B0aW9ucyIsImFjY291bnRMb2Nrb3V0IiwiZW52IiwiaGVscCIsImFjdGlvbiIsIm9iamVjdFBhcnNlciIsImFsbG93Q2xpZW50Q2xhc3NDcmVhdGlvbiIsImJvb2xlYW5QYXJzZXIiLCJkZWZhdWx0IiwiYWxsb3dDdXN0b21PYmplY3RJZCIsImFsbG93SGVhZGVycyIsImFycmF5UGFyc2VyIiwiYWxsb3dPcmlnaW4iLCJhbmFseXRpY3NBZGFwdGVyIiwibW9kdWxlT3JPYmplY3RQYXJzZXIiLCJhcHBJZCIsInJlcXVpcmVkIiwiYXBwTmFtZSIsImF1dGgiLCJjYWNoZUFkYXB0ZXIiLCJjYWNoZU1heFNpemUiLCJudW1iZXJQYXJzZXIiLCJjYWNoZVRUTCIsImNsaWVudEtleSIsImNsb3VkIiwiY2x1c3RlciIsIm51bWJlck9yQm9vbGVhblBhcnNlciIsImNvbGxlY3Rpb25QcmVmaXgiLCJjdXN0b21QYWdlcyIsImRhdGFiYXNlQWRhcHRlciIsImRhdGFiYXNlT3B0aW9ucyIsImRhdGFiYXNlVVJJIiwiZGlyZWN0QWNjZXNzIiwiZG90TmV0S2V5IiwiZW1haWxBZGFwdGVyIiwiZW1haWxWZXJpZnlUb2tlblJldXNlSWZWYWxpZCIsImVtYWlsVmVyaWZ5VG9rZW5WYWxpZGl0eUR1cmF0aW9uIiwiZW5hYmxlQW5vbnltb3VzVXNlcnMiLCJlbmFibGVFeHByZXNzRXJyb3JIYW5kbGVyIiwiZW5jcnlwdGlvbktleSIsImVuZm9yY2VQcml2YXRlVXNlcnMiLCJleHBpcmVJbmFjdGl2ZVNlc3Npb25zIiwiZmlsZUtleSIsImZpbGVzQWRhcHRlciIsImZpbGVVcGxvYWQiLCJncmFwaFFMUGF0aCIsImdyYXBoUUxTY2hlbWEiLCJob3N0IiwiaWRlbXBvdGVuY3lPcHRpb25zIiwiamF2YXNjcmlwdEtleSIsImpzb25Mb2dzIiwibGl2ZVF1ZXJ5IiwibGl2ZVF1ZXJ5U2VydmVyT3B0aW9ucyIsImxvZ2dlckFkYXB0ZXIiLCJsb2dMZXZlbCIsImxvZ3NGb2xkZXIiLCJtYXN0ZXJLZXkiLCJtYXN0ZXJLZXlJcHMiLCJtYXhMaW1pdCIsIm1heExvZ0ZpbGVzIiwibWF4VXBsb2FkU2l6ZSIsIm1pZGRsZXdhcmUiLCJtb3VudEdyYXBoUUwiLCJtb3VudFBhdGgiLCJtb3VudFBsYXlncm91bmQiLCJvYmplY3RJZFNpemUiLCJwYWdlcyIsInBhc3N3b3JkUG9saWN5IiwicGxheWdyb3VuZFBhdGgiLCJwb3J0IiwicHJlc2VydmVGaWxlTmFtZSIsInByZXZlbnRMb2dpbldpdGhVbnZlcmlmaWVkRW1haWwiLCJwcm90ZWN0ZWRGaWVsZHMiLCJfVXNlciIsInB1YmxpY1NlcnZlclVSTCIsInB1c2giLCJyZWFkT25seU1hc3RlcktleSIsInJlc3RBUElLZXkiLCJyZXZva2VTZXNzaW9uT25QYXNzd29yZFJlc2V0Iiwic2NoZWR1bGVkUHVzaCIsInNlY3VyaXR5Iiwic2VydmVyQ2xvc2VDb21wbGV0ZSIsInNlcnZlclN0YXJ0Q29tcGxldGUiLCJzZXJ2ZXJVUkwiLCJzZXNzaW9uTGVuZ3RoIiwic2lsZW50Iiwic3RhcnRMaXZlUXVlcnlTZXJ2ZXIiLCJ1c2VyU2Vuc2l0aXZlRmllbGRzIiwidmVyYm9zZSIsInZlcmlmeVVzZXJFbWFpbHMiLCJ3ZWJob29rS2V5IiwiU2VjdXJpdHlPcHRpb25zIiwiY2hlY2tHcm91cHMiLCJlbmFibGVDaGVjayIsImVuYWJsZUNoZWNrTG9nIiwiUGFnZXNPcHRpb25zIiwiY3VzdG9tUm91dGVzIiwiY3VzdG9tVXJscyIsImVuYWJsZUxvY2FsaXphdGlvbiIsImVuYWJsZVJvdXRlciIsImZvcmNlUmVkaXJlY3QiLCJsb2NhbGl6YXRpb25GYWxsYmFja0xvY2FsZSIsImxvY2FsaXphdGlvbkpzb25QYXRoIiwicGFnZXNFbmRwb2ludCIsInBhZ2VzUGF0aCIsInBsYWNlaG9sZGVycyIsIlBhZ2VzUm91dGUiLCJoYW5kbGVyIiwibWV0aG9kIiwicGF0aCIsIlBhZ2VzQ3VzdG9tVXJsc09wdGlvbnMiLCJlbWFpbFZlcmlmaWNhdGlvbkxpbmtFeHBpcmVkIiwiZW1haWxWZXJpZmljYXRpb25MaW5rSW52YWxpZCIsImVtYWlsVmVyaWZpY2F0aW9uU2VuZEZhaWwiLCJlbWFpbFZlcmlmaWNhdGlvblNlbmRTdWNjZXNzIiwiZW1haWxWZXJpZmljYXRpb25TdWNjZXNzIiwicGFzc3dvcmRSZXNldCIsInBhc3N3b3JkUmVzZXRMaW5rSW52YWxpZCIsInBhc3N3b3JkUmVzZXRTdWNjZXNzIiwiQ3VzdG9tUGFnZXNPcHRpb25zIiwiY2hvb3NlUGFzc3dvcmQiLCJleHBpcmVkVmVyaWZpY2F0aW9uTGluayIsImludmFsaWRMaW5rIiwiaW52YWxpZFBhc3N3b3JkUmVzZXRMaW5rIiwiaW52YWxpZFZlcmlmaWNhdGlvbkxpbmsiLCJsaW5rU2VuZEZhaWwiLCJsaW5rU2VuZFN1Y2Nlc3MiLCJwYXJzZUZyYW1lVVJMIiwidmVyaWZ5RW1haWxTdWNjZXNzIiwiTGl2ZVF1ZXJ5T3B0aW9ucyIsImNsYXNzTmFtZXMiLCJwdWJTdWJBZGFwdGVyIiwicmVkaXNPcHRpb25zIiwicmVkaXNVUkwiLCJ3c3NBZGFwdGVyIiwiTGl2ZVF1ZXJ5U2VydmVyT3B0aW9ucyIsImNhY2hlVGltZW91dCIsImtleVBhaXJzIiwid2Vic29ja2V0VGltZW91dCIsIklkZW1wb3RlbmN5T3B0aW9ucyIsInBhdGhzIiwidHRsIiwiQWNjb3VudExvY2tvdXRPcHRpb25zIiwiZHVyYXRpb24iLCJ0aHJlc2hvbGQiLCJ1bmxvY2tPblBhc3N3b3JkUmVzZXQiLCJQYXNzd29yZFBvbGljeU9wdGlvbnMiLCJkb05vdEFsbG93VXNlcm5hbWUiLCJtYXhQYXNzd29yZEFnZSIsIm1heFBhc3N3b3JkSGlzdG9yeSIsInJlc2V0VG9rZW5SZXVzZUlmVmFsaWQiLCJyZXNldFRva2VuVmFsaWRpdHlEdXJhdGlvbiIsInZhbGlkYXRpb25FcnJvciIsInZhbGlkYXRvckNhbGxiYWNrIiwidmFsaWRhdG9yUGF0dGVybiIsIkZpbGVVcGxvYWRPcHRpb25zIiwiZW5hYmxlRm9yQW5vbnltb3VzVXNlciIsImVuYWJsZUZvckF1dGhlbnRpY2F0ZWRVc2VyIiwiZW5hYmxlRm9yUHVibGljIiwiRGF0YWJhc2VPcHRpb25zIiwiZW5hYmxlU2NoZW1hSG9va3MiXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUlBLE9BQU8sR0FBR0MsT0FBTyxDQUFDLFdBQUQsQ0FBckI7O0FBRUFDLE1BQU0sQ0FBQ0MsT0FBUCxDQUFlQyxrQkFBZixHQUFvQztBQUNsQ0MsRUFBQUEsY0FBYyxFQUFFO0FBQ2RDLElBQUFBLEdBQUcsRUFBRSw4QkFEUztBQUVkQyxJQUFBQSxJQUFJLEVBQUUsdURBRlE7QUFHZEMsSUFBQUEsTUFBTSxFQUFFUixPQUFPLENBQUNTO0FBSEYsR0FEa0I7QUFNbENDLEVBQUFBLHdCQUF3QixFQUFFO0FBQ3hCSixJQUFBQSxHQUFHLEVBQUUsMENBRG1CO0FBRXhCQyxJQUFBQSxJQUFJLEVBQUUsNkRBRmtCO0FBR3hCQyxJQUFBQSxNQUFNLEVBQUVSLE9BQU8sQ0FBQ1csYUFIUTtBQUl4QkMsSUFBQUEsT0FBTyxFQUFFO0FBSmUsR0FOUTtBQVlsQ0MsRUFBQUEsbUJBQW1CLEVBQUU7QUFDbkJQLElBQUFBLEdBQUcsRUFBRSxxQ0FEYztBQUVuQkMsSUFBQUEsSUFBSSxFQUFFLHFDQUZhO0FBR25CQyxJQUFBQSxNQUFNLEVBQUVSLE9BQU8sQ0FBQ1csYUFIRztBQUluQkMsSUFBQUEsT0FBTyxFQUFFO0FBSlUsR0FaYTtBQWtCbENFLEVBQUFBLFlBQVksRUFBRTtBQUNaUixJQUFBQSxHQUFHLEVBQUUsNEJBRE87QUFFWkMsSUFBQUEsSUFBSSxFQUFFLDZDQUZNO0FBR1pDLElBQUFBLE1BQU0sRUFBRVIsT0FBTyxDQUFDZTtBQUhKLEdBbEJvQjtBQXVCbENDLEVBQUFBLFdBQVcsRUFBRTtBQUNYVixJQUFBQSxHQUFHLEVBQUUs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QkMsSUFBQUEsT0FBTyxFQUFFO0FBSmlCLEdBUEs7QUFhakNzSixFQUFBQSxlQUFlLEVBQUU7QUFDZjVKLElBQUFBLEdBQUcsRUFBRSw0Q0FEVTtBQUVmQyxJQUFBQSxJQUFJLEVBQUUseUZBRlM7QUFHZkMsSUFBQUEsTUFBTSxFQUFFUixPQUFPLENBQUNXLGFBSEQ7QUFJZkMsSUFBQUEsT0FBTyxFQUFFO0FBSk07QUFiZ0IsQ0FBbkM7QUFvQkFWLE1BQU0sQ0FBQ0MsT0FBUCxDQUFlZ0ssZUFBZixHQUFpQztBQUMvQkMsRUFBQUEsaUJBQWlCLEVBQUU7QUFDakI5SixJQUFBQSxHQUFHLEVBQUUsMkNBRFk7QUFFakJDLElBQUFBLElBQUksRUFDRixrY0FIZTtBQUlqQkMsSUFBQUEsTUFBTSxFQUFFUixPQUFPLENBQUNXLGFBSkM7QUFLakJDLElBQUFBLE9BQU8sRUFBRTtBQUxRO0FBRFksQ0FBakMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuKioqKiBHRU5FUkFURUQgQ09ERSAqKioqXG5UaGlzIGNvZGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IHJlc291cmNlcy9idWlsZENvbmZpZ0RlZmluaXRpb25zLmpzXG5EbyBub3QgZWRpdCBtYW51YWxseSwgYnV0IHVwZGF0ZSBPcHRpb25zL2luZGV4LmpzXG4qL1xudmFyIHBhcnNlcnMgPSByZXF1aXJlKCcuL3BhcnNlcnMnKTtcblxubW9kdWxlLmV4cG9ydHMuUGFyc2VTZXJ2ZXJPcHRpb25zID0ge1xuICBhY2NvdW50TG9ja291dDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BQ0NPVU5UX0xPQ0tPVVQnLFxuICAgIGhlbHA6ICdUaGUgYWNjb3VudCBsb2Nrb3V0IHBvbGljeSBmb3IgZmFpbGVkIGxvZ2luIGF0dGVtcHRzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgfSxcbiAgYWxsb3dDbGllbnRDbGFzc0NyZWF0aW9uOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FMTE9XX0NMSUVOVF9DTEFTU19DUkVBVElPTicsXG4gICAgaGVscDogJ0VuYWJsZSAob3IgZGlzYWJsZSkgY2xpZW50IGNsYXNzIGNyZWF0aW9uLCBkZWZhdWx0cyB0byB0cnVlJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBhbGxvd0N1c3RvbU9iamVjdElkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FMTE9XX0NVU1RPTV9PQkpFQ1RfSUQnLFxuICAgIGhlbHA6ICdFbmFibGUgKG9yIGRpc2FibGUpIGN1c3RvbSBvYmplY3RJZCcsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGFsbG93SGVhZGVyczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BTExPV19IRUFERVJTJyxcbiAgICBoZWxwOiAnQWRkIGhlYWRlcnMgdG8gQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICB9LFxuICBhbGxvd09yaWdpbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BTExPV19PUklHSU4nLFxuICAgIGhlbHA6ICdTZXRzIHRoZSBvcmlnaW4gdG8gQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJyxcbiAgfSxcbiAgYW5hbHl0aWNzQWRhcHRlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BTkFMWVRJQ1NfQURBUFRFUicsXG4gICAgaGVscDogJ0FkYXB0ZXIgbW9kdWxlIGZvciB0aGUgYW5hbHl0aWNzJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubW9kdWxlT3JPYmplY3RQYXJzZXIsXG4gIH0sXG4gIGFwcElkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FQUExJQ0FUSU9OX0lEJyxcbiAgICBoZWxwOiAnWW91ciBQYXJzZSBBcHBsaWNhdGlvbiBJRCcsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIGFwcE5hbWU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQVBQX05BTUUnLFxuICAgIGhlbHA6ICdTZXRzIHRoZSBhcHAgbmFtZScsXG4gIH0sXG4gIGF1dGg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQVVUSF9QUk9WSURFUlMnLFxuICAgIGhlbHA6XG4gICAgICAnQ29uZmlndXJhdGlvbiBmb3IgeW91ciBhdXRoZW50aWNhdGlvbiBwcm92aWRlcnMsIGFzIHN0cmluZ2lmaWVkIEpTT04uIFNlZSBodHRwOi8vZG9jcy5wYXJzZXBsYXRmb3JtLm9yZy9wYXJzZS1zZXJ2ZXIvZ3VpZGUvI29hdXRoLWFuZC0zcmQtcGFydHktYXV0aGVudGljYXRpb24nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gIH0sXG4gIGNhY2hlQWRhcHRlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DQUNIRV9BREFQVEVSJyxcbiAgICBoZWxwOiAnQWRhcHRlciBtb2R1bGUgZm9yIHRoZSBjYWNoZScsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICBjYWNoZU1heFNpemU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ0FDSEVfTUFYX1NJWkUnLFxuICAgIGhlbHA6ICdTZXRzIHRoZSBtYXhpbXVtIHNpemUgZm9yIHRoZSBpbiBtZW1vcnkgY2FjaGUsIGRlZmF1bHRzIHRvIDEwMDAwJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdjYWNoZU1heFNpemUnKSxcbiAgICBkZWZhdWx0OiAxMDAwMCxcbiAgfSxcbiAgY2FjaGVUVEw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ0FDSEVfVFRMJyxcbiAgICBoZWxwOiAnU2V0cyB0aGUgVFRMIGZvciB0aGUgaW4gbWVtb3J5IGNhY2hlIChpbiBtcyksIGRlZmF1bHRzIHRvIDUwMDAgKDUgc2Vjb25kcyknLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ2NhY2hlVFRMJyksXG4gICAgZGVmYXVsdDogNTAwMCxcbiAgfSxcbiAgY2xpZW50S2V5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NMSUVOVF9LRVknLFxuICAgIGhlbHA6ICdLZXkgZm9yIGlPUywgTWFjT1MsIHR2T1MgY2xpZW50cycsXG4gIH0sXG4gIGNsb3VkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NMT1VEJyxcbiAgICBoZWxwOiAnRnVsbCBwYXRoIHRvIHlvdXIgY2xvdWQgY29kZSBtYWluLmpzJyxcbiAgfSxcbiAgY2x1c3Rlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DTFVTVEVSJyxcbiAgICBoZWxwOiAnUnVuIHdpdGggY2x1c3Rlciwgb3B0aW9uYWxseSBzZXQgdGhlIG51bWJlciBvZiBwcm9jZXNzZXMgZGVmYXVsdCB0byBvcy5jcHVzKCkubGVuZ3RoJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyT3JCb29sZWFuUGFyc2VyLFxuICB9LFxuICBjb2xsZWN0aW9uUHJlZml4OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NPTExFQ1RJT05fUFJFRklYJyxcbiAgICBoZWxwOiAnQSBjb2xsZWN0aW9uIHByZWZpeCBmb3IgdGhlIGNsYXNzZXMnLFxuICAgIGRlZmF1bHQ6ICcnLFxuICB9LFxuICBjdXN0b21QYWdlczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DVVNUT01fUEFHRVMnLFxuICAgIGhlbHA6ICdjdXN0b20gcGFnZXMgZm9yIHBhc3N3b3JkIHZhbGlkYXRpb24gYW5kIHJlc2V0JyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIGRlZmF1bHQ6IHt9LFxuICB9LFxuICBkYXRhYmFzZUFkYXB0ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQURBUFRFUicsXG4gICAgaGVscDogJ0FkYXB0ZXIgbW9kdWxlIGZvciB0aGUgZGF0YWJhc2UnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5tb2R1bGVPck9iamVjdFBhcnNlcixcbiAgfSxcbiAgZGF0YWJhc2VPcHRpb25zOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX09QVElPTlMnLFxuICAgIGhlbHA6ICdPcHRpb25zIHRvIHBhc3MgdG8gdGhlIGRhdGFiYXNlIGNsaWVudCcsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgfSxcbiAgZGF0YWJhc2VVUkk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfVVJJJyxcbiAgICBoZWxwOiAnVGhlIGZ1bGwgVVJJIHRvIHlvdXIgZGF0YWJhc2UuIFN1cHBvcnRlZCBkYXRhYmFzZXMgYXJlIG1vbmdvZGIgb3IgcG9zdGdyZXMuJyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZWZhdWx0OiAnbW9uZ29kYjovL2xvY2FsaG9zdDoyNzAxNy9wYXJzZScsXG4gIH0sXG4gIGRpcmVjdEFjY2Vzczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9ESVJFQ1RfQUNDRVNTJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0byBgdHJ1ZWAgaWYgUGFyc2UgcmVxdWVzdHMgd2l0aGluIHRoZSBzYW1lIE5vZGUuanMgZW52aXJvbm1lbnQgYXMgUGFyc2UgU2VydmVyIHNob3VsZCBiZSByb3V0ZWQgdG8gUGFyc2UgU2VydmVyIGRpcmVjdGx5IGluc3RlYWQgb2YgdmlhIHRoZSBIVFRQIGludGVyZmFjZS4gRGVmYXVsdCBpcyBgZmFsc2VgLjxicj48YnI+SWYgc2V0IHRvIGBmYWxzZWAgdGhlbiBQYXJzZSByZXF1ZXN0cyB3aXRoaW4gdGhlIHNhbWUgTm9kZS5qcyBlbnZpcm9ubWVudCBhcyBQYXJzZSBTZXJ2ZXIgYXJlIGV4ZWN1dGVkIGFzIEhUVFAgcmVxdWVzdHMgc2VudCB0byBQYXJzZSBTZXJ2ZXIgdmlhIHRoZSBgc2VydmVyVVJMYC4gRm9yIGV4YW1wbGUsIGEgYFBhcnNlLlF1ZXJ5YCBpbiBDbG91ZCBDb2RlIGlzIGNhbGxpbmcgUGFyc2UgU2VydmVyIHZpYSBhIEhUVFAgcmVxdWVzdC4gVGhlIHNlcnZlciBpcyBlc3NlbnRpYWxseSBtYWtpbmcgYSBIVFRQIHJlcXVlc3QgdG8gaXRzZWxmLCB1bm5lY2Vzc2FyaWx5IHVzaW5nIG5ldHdvcmsgcmVzb3VyY2VzIHN1Y2ggYXMgbmV0d29yayBwb3J0cy48YnI+PGJyPlxcdTI2QTBcXHVGRTBGIEluIGVudmlyb25tZW50cyB3aGVyZSBtdWx0aXBsZSBQYXJzZSBTZXJ2ZXIgaW5zdGFuY2VzIHJ1biBiZWhpbmQgYSBsb2FkIGJhbGFuY2VyIGFuZCBQYXJzZSByZXF1ZXN0cyB3aXRoaW4gdGhlIGN1cnJlbnQgTm9kZS5qcyBlbnZpcm9ubWVudCBzaG91bGQgYmUgcm91dGVkIHZpYSB0aGUgbG9hZCBiYWxhbmNlciBhbmQgZGlzdHJpYnV0ZWQgYXMgSFRUUCByZXF1ZXN0cyBhbW9uZyBhbGwgaW5zdGFuY2VzIHZpYSB0aGUgYHNlcnZlclVSTGAsIHRoaXMgc2hvdWxkIGJlIHNldCB0byBgZmFsc2VgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGRvdE5ldEtleToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9ET1RfTkVUX0tFWScsXG4gICAgaGVscDogJ0tleSBmb3IgVW5pdHkgYW5kIC5OZXQgU0RLJyxcbiAgfSxcbiAgZW1haWxBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VNQUlMX0FEQVBURVInLFxuICAgIGhlbHA6ICdBZGFwdGVyIG1vZHVsZSBmb3IgZW1haWwgc2VuZGluZycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICBlbWFpbFZlcmlmeVRva2VuUmV1c2VJZlZhbGlkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VNQUlMX1ZFUklGWV9UT0tFTl9SRVVTRV9JRl9WQUxJRCcsXG4gICAgaGVscDpcbiAgICAgICdTZXQgdG8gYHRydWVgIGlmIGEgZW1haWwgdmVyaWZpY2F0aW9uIHRva2VuIHNob3VsZCBiZSByZXVzZWQgaW4gY2FzZSBhbm90aGVyIHRva2VuIGlzIHJlcXVlc3RlZCBidXQgdGhlcmUgaXMgYSB0b2tlbiB0aGF0IGlzIHN0aWxsIHZhbGlkLCBpLmUuIGhhcyBub3QgZXhwaXJlZC4gVGhpcyBhdm9pZHMgdGhlIG9mdGVuIG9ic2VydmVkIGlzc3VlIHRoYXQgYSB1c2VyIHJlcXVlc3RzIG11bHRpcGxlIGVtYWlscyBhbmQgZG9lcyBub3Qga25vdyB3aGljaCBsaW5rIGNvbnRhaW5zIGEgdmFsaWQgdG9rZW4gYmVjYXVzZSBlYWNoIG5ld2x5IGdlbmVyYXRlZCB0b2tlbiB3b3VsZCBpbnZhbGlkYXRlIHRoZSBwcmV2aW91cyB0b2tlbi48YnI+PGJyPkRlZmF1bHQgaXMgYGZhbHNlYC48YnI+UmVxdWlyZXMgb3B0aW9uIGB2ZXJpZnlVc2VyRW1haWxzOiB0cnVlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBlbWFpbFZlcmlmeVRva2VuVmFsaWRpdHlEdXJhdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTUFJTF9WRVJJRllfVE9LRU5fVkFMSURJVFlfRFVSQVRJT04nLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRoZSB2YWxpZGl0eSBkdXJhdGlvbiBvZiB0aGUgZW1haWwgdmVyaWZpY2F0aW9uIHRva2VuIGluIHNlY29uZHMgYWZ0ZXIgd2hpY2ggdGhlIHRva2VuIGV4cGlyZXMuIFRoZSB0b2tlbiBpcyB1c2VkIGluIHRoZSBsaW5rIHRoYXQgaXMgc2V0IGluIHRoZSBlbWFpbC4gQWZ0ZXIgdGhlIHRva2VuIGV4cGlyZXMsIHRoZSBsaW5rIGJlY29tZXMgaW52YWxpZCBhbmQgYSBuZXcgbGluayBoYXMgdG8gYmUgc2VudC4gSWYgdGhlIG9wdGlvbiBpcyBub3Qgc2V0IG9yIHNldCB0byBgdW5kZWZpbmVkYCwgdGhlbiB0aGUgdG9rZW4gbmV2ZXIgZXhwaXJlcy48YnI+PGJyPkZvciBleGFtcGxlLCB0byBleHBpcmUgdGhlIHRva2VuIGFmdGVyIDIgaG91cnMsIHNldCBhIHZhbHVlIG9mIDcyMDAgc2Vjb25kcyAoPSA2MCBzZWNvbmRzICogNjAgbWludXRlcyAqIDIgaG91cnMpLjxicj48YnI+RGVmYXVsdCBpcyBgdW5kZWZpbmVkYC48YnI+UmVxdWlyZXMgb3B0aW9uIGB2ZXJpZnlVc2VyRW1haWxzOiB0cnVlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ2VtYWlsVmVyaWZ5VG9rZW5WYWxpZGl0eUR1cmF0aW9uJyksXG4gIH0sXG4gIGVuYWJsZUFub255bW91c1VzZXJzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VOQUJMRV9BTk9OX1VTRVJTJyxcbiAgICBoZWxwOiAnRW5hYmxlIChvciBkaXNhYmxlKSBhbm9ueW1vdXMgdXNlcnMsIGRlZmF1bHRzIHRvIHRydWUnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIGVuYWJsZUV4cHJlc3NFcnJvckhhbmRsZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRU5BQkxFX0VYUFJFU1NfRVJST1JfSEFORExFUicsXG4gICAgaGVscDogJ0VuYWJsZXMgdGhlIGRlZmF1bHQgZXhwcmVzcyBlcnJvciBoYW5kbGVyIGZvciBhbGwgZXJyb3JzJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgZW5jcnlwdGlvbktleToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTkNSWVBUSU9OX0tFWScsXG4gICAgaGVscDogJ0tleSBmb3IgZW5jcnlwdGluZyB5b3VyIGZpbGVzJyxcbiAgfSxcbiAgZW5mb3JjZVByaXZhdGVVc2Vyczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTkZPUkNFX1BSSVZBVEVfVVNFUlMnLFxuICAgIGhlbHA6ICdTZXQgdG8gdHJ1ZSBpZiBuZXcgdXNlcnMgc2hvdWxkIGJlIGNyZWF0ZWQgd2l0aG91dCBwdWJsaWMgcmVhZCBhbmQgd3JpdGUgYWNjZXNzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGV4cGlyZUluYWN0aXZlU2Vzc2lvbnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRVhQSVJFX0lOQUNUSVZFX1NFU1NJT05TJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldHMgd2hldGhlciB3ZSBzaG91bGQgZXhwaXJlIHRoZSBpbmFjdGl2ZSBzZXNzaW9ucywgZGVmYXVsdHMgdG8gdHJ1ZS4gSWYgZmFsc2UsIGFsbCBuZXcgc2Vzc2lvbnMgYXJlIGNyZWF0ZWQgd2l0aCBubyBleHBpcmF0aW9uIGRhdGUuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBmaWxlS2V5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0ZJTEVfS0VZJyxcbiAgICBoZWxwOiAnS2V5IGZvciB5b3VyIGZpbGVzJyxcbiAgfSxcbiAgZmlsZXNBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0ZJTEVTX0FEQVBURVInLFxuICAgIGhlbHA6ICdBZGFwdGVyIG1vZHVsZSBmb3IgdGhlIGZpbGVzIHN1Yi1zeXN0ZW0nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5tb2R1bGVPck9iamVjdFBhcnNlcixcbiAgfSxcbiAgZmlsZVVwbG9hZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9GSUxFX1VQTE9BRF9PUFRJT05TJyxcbiAgICBoZWxwOiAnT3B0aW9ucyBmb3IgZmlsZSB1cGxvYWRzJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIGRlZmF1bHQ6IHt9LFxuICB9LFxuICBncmFwaFFMUGF0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9HUkFQSFFMX1BBVEgnLFxuICAgIGhlbHA6ICdNb3VudCBwYXRoIGZvciB0aGUgR3JhcGhRTCBlbmRwb2ludCwgZGVmYXVsdHMgdG8gL2dyYXBocWwnLFxuICAgIGRlZmF1bHQ6ICcvZ3JhcGhxbCcsXG4gIH0sXG4gIGdyYXBoUUxTY2hlbWE6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfR1JBUEhfUUxTQ0hFTUEnLFxuICAgIGhlbHA6ICdGdWxsIHBhdGggdG8geW91ciBHcmFwaFFMIGN1c3RvbSBzY2hlbWEuZ3JhcGhxbCBmaWxlJyxcbiAgfSxcbiAgaG9zdDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9IT1NUJyxcbiAgICBoZWxwOiAnVGhlIGhvc3QgdG8gc2VydmUgUGFyc2VTZXJ2ZXIgb24sIGRlZmF1bHRzIHRvIDAuMC4wLjAnLFxuICAgIGRlZmF1bHQ6ICcwLjAuMC4wJyxcbiAgfSxcbiAgaWRlbXBvdGVuY3lPcHRpb25zOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VYUEVSSU1FTlRBTF9JREVNUE9URU5DWV9PUFRJT05TJyxcbiAgICBoZWxwOlxuICAgICAgJ09wdGlvbnMgZm9yIHJlcXVlc3QgaWRlbXBvdGVuY3kgdG8gZGVkdXBsaWNhdGUgaWRlbnRpY2FsIHJlcXVlc3RzIHRoYXQgbWF5IGJlIGNhdXNlZCBieSBuZXR3b3JrIGlzc3Vlcy4gQ2F1dGlvbiwgdGhpcyBpcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZSB0aGF0IG1heSBub3QgYmUgYXBwcm9wcmlhdGUgZm9yIHByb2R1Y3Rpb24uJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIGRlZmF1bHQ6IHt9LFxuICB9LFxuICBqYXZhc2NyaXB0S2V5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0pBVkFTQ1JJUFRfS0VZJyxcbiAgICBoZWxwOiAnS2V5IGZvciB0aGUgSmF2YXNjcmlwdCBTREsnLFxuICB9LFxuICBqc29uTG9nczoge1xuICAgIGVudjogJ0pTT05fTE9HUycsXG4gICAgaGVscDogJ0xvZyBhcyBzdHJ1Y3R1cmVkIEpTT04gb2JqZWN0cycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gIH0sXG4gIGxpdmVRdWVyeToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MSVZFX1FVRVJZJyxcbiAgICBoZWxwOiBcInBhcnNlLXNlcnZlcidzIExpdmVRdWVyeSBjb25maWd1cmF0aW9uIG9iamVjdFwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gIH0sXG4gIGxpdmVRdWVyeVNlcnZlck9wdGlvbnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTElWRV9RVUVSWV9TRVJWRVJfT1BUSU9OUycsXG4gICAgaGVscDogJ0xpdmUgcXVlcnkgc2VydmVyIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyAod2lsbCBzdGFydCB0aGUgbGl2ZVF1ZXJ5IHNlcnZlciknLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gIH0sXG4gIGxvZ2dlckFkYXB0ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HR0VSX0FEQVBURVInLFxuICAgIGhlbHA6ICdBZGFwdGVyIG1vZHVsZSBmb3IgdGhlIGxvZ2dpbmcgc3ViLXN5c3RlbScsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICBsb2dMZXZlbDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MT0dfTEVWRUwnLFxuICAgIGhlbHA6ICdTZXRzIHRoZSBsZXZlbCBmb3IgbG9ncycsXG4gIH0sXG4gIGxvZ3NGb2xkZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HU19GT0xERVInLFxuICAgIGhlbHA6IFwiRm9sZGVyIGZvciB0aGUgbG9ncyAoZGVmYXVsdHMgdG8gJy4vbG9ncycpOyBzZXQgdG8gbnVsbCB0byBkaXNhYmxlIGZpbGUgYmFzZWQgbG9nZ2luZ1wiLFxuICAgIGRlZmF1bHQ6ICcuL2xvZ3MnLFxuICB9LFxuICBtYXN0ZXJLZXk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTUFTVEVSX0tFWScsXG4gICAgaGVscDogJ1lvdXIgUGFyc2UgTWFzdGVyIEtleScsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIG1hc3RlcktleUlwczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NQVNURVJfS0VZX0lQUycsXG4gICAgaGVscDogJ1Jlc3RyaWN0IG1hc3RlcktleSB0byBiZSB1c2VkIGJ5IG9ubHkgdGhlc2UgaXBzLCBkZWZhdWx0cyB0byBbXSAoYWxsb3cgYWxsIGlwcyknLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgICBkZWZhdWx0OiBbXSxcbiAgfSxcbiAgbWF4TGltaXQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTUFYX0xJTUlUJyxcbiAgICBoZWxwOiAnTWF4IHZhbHVlIGZvciBsaW1pdCBvcHRpb24gb24gcXVlcmllcywgZGVmYXVsdHMgdG8gdW5saW1pdGVkJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdtYXhMaW1pdCcpLFxuICB9LFxuICBtYXhMb2dGaWxlczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NQVhfTE9HX0ZJTEVTJyxcbiAgICBoZWxwOlxuICAgICAgXCJNYXhpbXVtIG51bWJlciBvZiBsb2dzIHRvIGtlZXAuIElmIG5vdCBzZXQsIG5vIGxvZ3Mgd2lsbCBiZSByZW1vdmVkLiBUaGlzIGNhbiBiZSBhIG51bWJlciBvZiBmaWxlcyBvciBudW1iZXIgb2YgZGF5cy4gSWYgdXNpbmcgZGF5cywgYWRkICdkJyBhcyB0aGUgc3VmZml4LiAoZGVmYXVsdDogbnVsbClcIixcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICB9LFxuICBtYXhVcGxvYWRTaXplOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX01BWF9VUExPQURfU0laRScsXG4gICAgaGVscDogJ01heCBmaWxlIHNpemUgZm9yIHVwbG9hZHMsIGRlZmF1bHRzIHRvIDIwbWInLFxuICAgIGRlZmF1bHQ6ICcyMG1iJyxcbiAgfSxcbiAgbWlkZGxld2FyZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NSURETEVXQVJFJyxcbiAgICBoZWxwOiAnbWlkZGxld2FyZSBmb3IgZXhwcmVzcyBzZXJ2ZXIsIGNhbiBiZSBzdHJpbmcgb3IgZnVuY3Rpb24nLFxuICB9LFxuICBtb3VudEdyYXBoUUw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTU9VTlRfR1JBUEhRTCcsXG4gICAgaGVscDogJ01vdW50cyB0aGUgR3JhcGhRTCBlbmRwb2ludCcsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIG1vdW50UGF0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NT1VOVF9QQVRIJyxcbiAgICBoZWxwOiAnTW91bnQgcGF0aCBmb3IgdGhlIHNlcnZlciwgZGVmYXVsdHMgdG8gL3BhcnNlJyxcbiAgICBkZWZhdWx0OiAnL3BhcnNlJyxcbiAgfSxcbiAgbW91bnRQbGF5Z3JvdW5kOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX01PVU5UX1BMQVlHUk9VTkQnLFxuICAgIGhlbHA6ICdNb3VudHMgdGhlIEdyYXBoUUwgUGxheWdyb3VuZCAtIG5ldmVyIHVzZSB0aGlzIG9wdGlvbiBpbiBwcm9kdWN0aW9uJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgb2JqZWN0SWRTaXplOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX09CSkVDVF9JRF9TSVpFJyxcbiAgICBoZWxwOiBcIlNldHMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGluIGdlbmVyYXRlZCBvYmplY3QgaWQncywgZGVmYXVsdCAxMFwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ29iamVjdElkU2l6ZScpLFxuICAgIGRlZmF1bHQ6IDEwLFxuICB9LFxuICBwYWdlczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFUycsXG4gICAgaGVscDpcbiAgICAgICdUaGUgb3B0aW9ucyBmb3IgcGFnZXMgc3VjaCBhcyBwYXNzd29yZCByZXNldCBhbmQgZW1haWwgdmVyaWZpY2F0aW9uLiBDYXV0aW9uLCB0aGlzIGlzIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlIHRoYXQgbWF5IG5vdCBiZSBhcHByb3ByaWF0ZSBmb3IgcHJvZHVjdGlvbi4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgZGVmYXVsdDoge30sXG4gIH0sXG4gIHBhc3N3b3JkUG9saWN5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBU1NXT1JEX1BPTElDWScsXG4gICAgaGVscDogJ1RoZSBwYXNzd29yZCBwb2xpY3kgZm9yIGVuZm9yY2luZyBwYXNzd29yZCByZWxhdGVkIHJ1bGVzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgfSxcbiAgcGxheWdyb3VuZFBhdGg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUExBWUdST1VORF9QQVRIJyxcbiAgICBoZWxwOiAnTW91bnQgcGF0aCBmb3IgdGhlIEdyYXBoUUwgUGxheWdyb3VuZCwgZGVmYXVsdHMgdG8gL3BsYXlncm91bmQnLFxuICAgIGRlZmF1bHQ6ICcvcGxheWdyb3VuZCcsXG4gIH0sXG4gIHBvcnQ6IHtcbiAgICBlbnY6ICdQT1JUJyxcbiAgICBoZWxwOiAnVGhlIHBvcnQgdG8gcnVuIHRoZSBQYXJzZVNlcnZlciwgZGVmYXVsdHMgdG8gMTMzNy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3BvcnQnKSxcbiAgICBkZWZhdWx0OiAxMzM3LFxuICB9LFxuICBwcmVzZXJ2ZUZpbGVOYW1lOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BSRVNFUlZFX0ZJTEVfTkFNRScsXG4gICAgaGVscDogJ0VuYWJsZSAob3IgZGlzYWJsZSkgdGhlIGFkZGl0aW9uIG9mIGEgdW5pcXVlIGhhc2ggdG8gdGhlIGZpbGUgbmFtZXMnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBwcmV2ZW50TG9naW5XaXRoVW52ZXJpZmllZEVtYWlsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BSRVZFTlRfTE9HSU5fV0lUSF9VTlZFUklGSUVEX0VNQUlMJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0byBgdHJ1ZWAgdG8gcHJldmVudCBhIHVzZXIgZnJvbSBsb2dnaW5nIGluIGlmIHRoZSBlbWFpbCBoYXMgbm90IHlldCBiZWVuIHZlcmlmaWVkIGFuZCBlbWFpbCB2ZXJpZmljYXRpb24gaXMgcmVxdWlyZWQuPGJyPjxicj5EZWZhdWx0IGlzIGBmYWxzZWAuPGJyPlJlcXVpcmVzIG9wdGlvbiBgdmVyaWZ5VXNlckVtYWlsczogdHJ1ZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgcHJvdGVjdGVkRmllbGRzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BST1RFQ1RFRF9GSUVMRFMnLFxuICAgIGhlbHA6ICdQcm90ZWN0ZWQgZmllbGRzIHRoYXQgc2hvdWxkIGJlIHRyZWF0ZWQgd2l0aCBleHRyYSBzZWN1cml0eSB3aGVuIGZldGNoaW5nIGRldGFpbHMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIF9Vc2VyOiB7XG4gICAgICAgICcqJzogWydlbWFpbCddLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICBwdWJsaWNTZXJ2ZXJVUkw6IHtcbiAgICBlbnY6ICdQQVJTRV9QVUJMSUNfU0VSVkVSX1VSTCcsXG4gICAgaGVscDogJ1B1YmxpYyBVUkwgdG8geW91ciBwYXJzZSBzZXJ2ZXIgd2l0aCBodHRwOi8vIG9yIGh0dHBzOi8vLicsXG4gIH0sXG4gIHB1c2g6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUFVTSCcsXG4gICAgaGVscDpcbiAgICAgICdDb25maWd1cmF0aW9uIGZvciBwdXNoLCBhcyBzdHJpbmdpZmllZCBKU09OLiBTZWUgaHR0cDovL2RvY3MucGFyc2VwbGF0Zm9ybS5vcmcvcGFyc2Utc2VydmVyL2d1aWRlLyNwdXNoLW5vdGlmaWNhdGlvbnMnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gIH0sXG4gIHJlYWRPbmx5TWFzdGVyS2V5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JFQURfT05MWV9NQVNURVJfS0VZJyxcbiAgICBoZWxwOiAnUmVhZC1vbmx5IGtleSwgd2hpY2ggaGFzIHRoZSBzYW1lIGNhcGFiaWxpdGllcyBhcyBNYXN0ZXJLZXkgd2l0aG91dCB3cml0ZXMnLFxuICB9LFxuICByZXN0QVBJS2V5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JFU1RfQVBJX0tFWScsXG4gICAgaGVscDogJ0tleSBmb3IgUkVTVCBjYWxscycsXG4gIH0sXG4gIHJldm9rZVNlc3Npb25PblBhc3N3b3JkUmVzZXQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkVWT0tFX1NFU1NJT05fT05fUEFTU1dPUkRfUkVTRVQnLFxuICAgIGhlbHA6XG4gICAgICBcIldoZW4gYSB1c2VyIGNoYW5nZXMgdGhlaXIgcGFzc3dvcmQsIGVpdGhlciB0aHJvdWdoIHRoZSByZXNldCBwYXNzd29yZCBlbWFpbCBvciB3aGlsZSBsb2dnZWQgaW4sIGFsbCBzZXNzaW9ucyBhcmUgcmV2b2tlZCBpZiB0aGlzIGlzIHRydWUuIFNldCB0byBmYWxzZSBpZiB5b3UgZG9uJ3Qgd2FudCB0byByZXZva2Ugc2Vzc2lvbnMuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgc2NoZWR1bGVkUHVzaDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TQ0hFRFVMRURfUFVTSCcsXG4gICAgaGVscDogJ0NvbmZpZ3VyYXRpb24gZm9yIHB1c2ggc2NoZWR1bGluZywgZGVmYXVsdHMgdG8gZmFsc2UuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgc2VjdXJpdHk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0VDVVJJVFknLFxuICAgIGhlbHA6ICdUaGUgc2VjdXJpdHkgb3B0aW9ucyB0byBpZGVudGlmeSBhbmQgcmVwb3J0IHdlYWsgc2VjdXJpdHkgc2V0dGluZ3MuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIGRlZmF1bHQ6IHt9LFxuICB9LFxuICBzZXJ2ZXJDbG9zZUNvbXBsZXRlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NFUlZFUl9DTE9TRV9DT01QTEVURScsXG4gICAgaGVscDogJ0NhbGxiYWNrIHdoZW4gc2VydmVyIGhhcyBjbG9zZWQnLFxuICB9LFxuICBzZXJ2ZXJTdGFydENvbXBsZXRlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NFUlZFUl9TVEFSVF9DT01QTEVURScsXG4gICAgaGVscDogJ0NhbGxiYWNrIHdoZW4gc2VydmVyIGhhcyBzdGFydGVkJyxcbiAgfSxcbiAgc2VydmVyVVJMOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1VSTCcsXG4gICAgaGVscDogJ1VSTCB0byB5b3VyIHBhcnNlIHNlcnZlciB3aXRoIGh0dHA6Ly8gb3IgaHR0cHM6Ly8uJyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgfSxcbiAgc2Vzc2lvbkxlbmd0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TRVNTSU9OX0xFTkdUSCcsXG4gICAgaGVscDogJ1Nlc3Npb24gZHVyYXRpb24sIGluIHNlY29uZHMsIGRlZmF1bHRzIHRvIDEgeWVhcicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignc2Vzc2lvbkxlbmd0aCcpLFxuICAgIGRlZmF1bHQ6IDMxNTM2MDAwLFxuICB9LFxuICBzaWxlbnQ6IHtcbiAgICBlbnY6ICdTSUxFTlQnLFxuICAgIGhlbHA6ICdEaXNhYmxlcyBjb25zb2xlIG91dHB1dCcsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gIH0sXG4gIHN0YXJ0TGl2ZVF1ZXJ5U2VydmVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NUQVJUX0xJVkVfUVVFUllfU0VSVkVSJyxcbiAgICBoZWxwOiAnU3RhcnRzIHRoZSBsaXZlUXVlcnkgc2VydmVyJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgdXNlclNlbnNpdGl2ZUZpZWxkczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9VU0VSX1NFTlNJVElWRV9GSUVMRFMnLFxuICAgIGhlbHA6XG4gICAgICAnUGVyc29uYWxseSBpZGVudGlmaWFibGUgaW5mb3JtYXRpb24gZmllbGRzIGluIHRoZSB1c2VyIHRhYmxlIHRoZSBzaG91bGQgYmUgcmVtb3ZlZCBmb3Igbm9uLWF1dGhvcml6ZWQgdXNlcnMuIERlcHJlY2F0ZWQgQHNlZSBwcm90ZWN0ZWRGaWVsZHMnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgfSxcbiAgdmVyYm9zZToge1xuICAgIGVudjogJ1ZFUkJPU0UnLFxuICAgIGhlbHA6ICdTZXQgdGhlIGxvZ2dpbmcgdG8gdmVyYm9zZScsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gIH0sXG4gIHZlcmlmeVVzZXJFbWFpbHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfVkVSSUZZX1VTRVJfRU1BSUxTJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0byBgdHJ1ZWAgdG8gcmVxdWlyZSB1c2VycyB0byB2ZXJpZnkgdGhlaXIgZW1haWwgYWRkcmVzcyB0byBjb21wbGV0ZSB0aGUgc2lnbi11cCBwcm9jZXNzLjxicj48YnI+RGVmYXVsdCBpcyBgZmFsc2VgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIHdlYmhvb2tLZXk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfV0VCSE9PS19LRVknLFxuICAgIGhlbHA6ICdLZXkgc2VudCB3aXRoIG91dGdvaW5nIHdlYmhvb2sgY2FsbHMnLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLlNlY3VyaXR5T3B0aW9ucyA9IHtcbiAgY2hlY2tHcm91cHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0VDVVJJVFlfQ0hFQ0tfR1JPVVBTJyxcbiAgICBoZWxwOlxuICAgICAgJ1RoZSBzZWN1cml0eSBjaGVjayBncm91cHMgdG8gcnVuLiBUaGlzIGFsbG93cyB0byBhZGQgY3VzdG9tIHNlY3VyaXR5IGNoZWNrcyBvciBvdmVycmlkZSBleGlzdGluZyBvbmVzLiBEZWZhdWx0IGFyZSB0aGUgZ3JvdXBzIGRlZmluZWQgaW4gYENoZWNrR3JvdXBzLmpzYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgfSxcbiAgZW5hYmxlQ2hlY2s6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0VDVVJJVFlfRU5BQkxFX0NIRUNLJyxcbiAgICBoZWxwOiAnSXMgdHJ1ZSBpZiBQYXJzZSBTZXJ2ZXIgc2hvdWxkIGNoZWNrIGZvciB3ZWFrIHNlY3VyaXR5IHNldHRpbmdzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGVuYWJsZUNoZWNrTG9nOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NFQ1VSSVRZX0VOQUJMRV9DSEVDS19MT0cnLFxuICAgIGhlbHA6XG4gICAgICAnSXMgdHJ1ZSBpZiB0aGUgc2VjdXJpdHkgY2hlY2sgcmVwb3J0IHNob3VsZCBiZSB3cml0dGVuIHRvIGxvZ3MuIFRoaXMgc2hvdWxkIG9ubHkgYmUgZW5hYmxlZCB0ZW1wb3JhcmlseSB0byBub3QgZXhwb3NlIHdlYWsgc2VjdXJpdHkgc2V0dGluZ3MgaW4gbG9ncy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLlBhZ2VzT3B0aW9ucyA9IHtcbiAgY3VzdG9tUm91dGVzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0NVU1RPTV9ST1VURVMnLFxuICAgIGhlbHA6ICdUaGUgY3VzdG9tIHJvdXRlcy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgICBkZWZhdWx0OiBbXSxcbiAgfSxcbiAgY3VzdG9tVXJsczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fVVJMUycsXG4gICAgaGVscDogJ1RoZSBVUkxzIHRvIHRoZSBjdXN0b20gcGFnZXMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIGRlZmF1bHQ6IHt9LFxuICB9LFxuICBlbmFibGVMb2NhbGl6YXRpb246IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfRU5BQkxFX0xPQ0FMSVpBVElPTicsXG4gICAgaGVscDogJ0lzIHRydWUgaWYgcGFnZXMgc2hvdWxkIGJlIGxvY2FsaXplZDsgdGhpcyBoYXMgbm8gZWZmZWN0IG9uIGN1c3RvbSBwYWdlIHJlZGlyZWN0cy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBlbmFibGVSb3V0ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfRU5BQkxFX1JPVVRFUicsXG4gICAgaGVscDpcbiAgICAgICdJcyB0cnVlIGlmIHRoZSBwYWdlcyByb3V0ZXIgc2hvdWxkIGJlIGVuYWJsZWQ7IHRoaXMgaXMgcmVxdWlyZWQgZm9yIGFueSBvZiB0aGUgcGFnZXMgb3B0aW9ucyB0byB0YWtlIGVmZmVjdC4gQ2F1dGlvbiwgdGhpcyBpcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZSB0aGF0IG1heSBub3QgYmUgYXBwcm9wcmlhdGUgZm9yIHByb2R1Y3Rpb24uJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgZm9yY2VSZWRpcmVjdDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19GT1JDRV9SRURJUkVDVCcsXG4gICAgaGVscDpcbiAgICAgICdJcyB0cnVlIGlmIHJlc3BvbnNlcyBzaG91bGQgYWx3YXlzIGJlIHJlZGlyZWN0cyBhbmQgbmV2ZXIgY29udGVudCwgZmFsc2UgaWYgdGhlIHJlc3BvbnNlIHR5cGUgc2hvdWxkIGRlcGVuZCBvbiB0aGUgcmVxdWVzdCB0eXBlIChHRVQgcmVxdWVzdCAtPiBjb250ZW50IHJlc3BvbnNlOyBQT1NUIHJlcXVlc3QgLT4gcmVkaXJlY3QgcmVzcG9uc2UpLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGxvY2FsaXphdGlvbkZhbGxiYWNrTG9jYWxlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0xPQ0FMSVpBVElPTl9GQUxMQkFDS19MT0NBTEUnLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIGZhbGxiYWNrIGxvY2FsZSBmb3IgbG9jYWxpemF0aW9uIGlmIG5vIG1hdGNoaW5nIHRyYW5zbGF0aW9uIGlzIHByb3ZpZGVkIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLiBUaGlzIGlzIG9ubHkgcmVsZXZhbnQgd2hlbiBwcm92aWRpbmcgdHJhbnNsYXRpb24gcmVzb3VyY2VzIHZpYSBKU09OIGZpbGUuJyxcbiAgICBkZWZhdWx0OiAnZW4nLFxuICB9LFxuICBsb2NhbGl6YXRpb25Kc29uUGF0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19MT0NBTElaQVRJT05fSlNPTl9QQVRIJyxcbiAgICBoZWxwOlxuICAgICAgJ1RoZSBwYXRoIHRvIHRoZSBKU09OIGZpbGUgZm9yIGxvY2FsaXphdGlvbjsgdGhlIHRyYW5zbGF0aW9ucyB3aWxsIGJlIHVzZWQgdG8gZmlsbCB0ZW1wbGF0ZSBwbGFjZWhvbGRlcnMgYWNjb3JkaW5nIHRvIHRoZSBsb2NhbGUuJyxcbiAgfSxcbiAgcGFnZXNFbmRwb2ludDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19QQUdFU19FTkRQT0lOVCcsXG4gICAgaGVscDogXCJUaGUgQVBJIGVuZHBvaW50IGZvciB0aGUgcGFnZXMuIERlZmF1bHQgaXMgJ2FwcHMnLlwiLFxuICAgIGRlZmF1bHQ6ICdhcHBzJyxcbiAgfSxcbiAgcGFnZXNQYXRoOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX1BBR0VTX1BBVEgnLFxuICAgIGhlbHA6XG4gICAgICBcIlRoZSBwYXRoIHRvIHRoZSBwYWdlcyBkaXJlY3Rvcnk7IHRoaXMgYWxzbyBkZWZpbmVzIHdoZXJlIHRoZSBzdGF0aWMgZW5kcG9pbnQgJy9hcHBzJyBwb2ludHMgdG8uIERlZmF1bHQgaXMgdGhlICcuL3B1YmxpYy8nIGRpcmVjdG9yeS5cIixcbiAgICBkZWZhdWx0OiAnLi9wdWJsaWMnLFxuICB9LFxuICBwbGFjZWhvbGRlcnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfUExBQ0VIT0xERVJTJyxcbiAgICBoZWxwOlxuICAgICAgJ1RoZSBwbGFjZWhvbGRlciBrZXlzIGFuZCB2YWx1ZXMgd2hpY2ggd2lsbCBiZSBmaWxsZWQgaW4gcGFnZXM7IHRoaXMgY2FuIGJlIGEgc2ltcGxlIG9iamVjdCBvciBhIGNhbGxiYWNrIGZ1bmN0aW9uLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICBkZWZhdWx0OiB7fSxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5QYWdlc1JvdXRlID0ge1xuICBoYW5kbGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX1JPVVRFX0hBTkRMRVInLFxuICAgIGhlbHA6ICdUaGUgcm91dGUgaGFuZGxlciB0aGF0IGlzIGFuIGFzeW5jIGZ1bmN0aW9uLicsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIG1ldGhvZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19ST1VURV9NRVRIT0QnLFxuICAgIGhlbHA6IFwiVGhlIHJvdXRlIG1ldGhvZCwgZS5nLiAnR0VUJyBvciAnUE9TVCcuXCIsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIHBhdGg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfUk9VVEVfUEFUSCcsXG4gICAgaGVscDogJ1RoZSByb3V0ZSBwYXRoLicsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuUGFnZXNDdXN0b21VcmxzT3B0aW9ucyA9IHtcbiAgZW1haWxWZXJpZmljYXRpb25MaW5rRXhwaXJlZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fVVJMX0VNQUlMX1ZFUklGSUNBVElPTl9MSU5LX0VYUElSRUQnLFxuICAgIGhlbHA6ICdUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgZW1haWwgdmVyaWZpY2F0aW9uIC0+IGxpbmsgZXhwaXJlZC4nLFxuICB9LFxuICBlbWFpbFZlcmlmaWNhdGlvbkxpbmtJbnZhbGlkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0NVU1RPTV9VUkxfRU1BSUxfVkVSSUZJQ0FUSU9OX0xJTktfSU5WQUxJRCcsXG4gICAgaGVscDogJ1RoZSBVUkwgdG8gdGhlIGN1c3RvbSBwYWdlIGZvciBlbWFpbCB2ZXJpZmljYXRpb24gLT4gbGluayBpbnZhbGlkLicsXG4gIH0sXG4gIGVtYWlsVmVyaWZpY2F0aW9uU2VuZEZhaWw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfQ1VTVE9NX1VSTF9FTUFJTF9WRVJJRklDQVRJT05fU0VORF9GQUlMJyxcbiAgICBoZWxwOiAnVGhlIFVSTCB0byB0aGUgY3VzdG9tIHBhZ2UgZm9yIGVtYWlsIHZlcmlmaWNhdGlvbiAtPiBsaW5rIHNlbmQgZmFpbC4nLFxuICB9LFxuICBlbWFpbFZlcmlmaWNhdGlvblNlbmRTdWNjZXNzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0NVU1RPTV9VUkxfRU1BSUxfVkVSSUZJQ0FUSU9OX1NFTkRfU1VDQ0VTUycsXG4gICAgaGVscDogJ1RoZSBVUkwgdG8gdGhlIGN1c3RvbSBwYWdlIGZvciBlbWFpbCB2ZXJpZmljYXRpb24gLT4gcmVzZW5kIGxpbmsgLT4gc3VjY2Vzcy4nLFxuICB9LFxuICBlbWFpbFZlcmlmaWNhdGlvblN1Y2Nlc3M6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfQ1VTVE9NX1VSTF9FTUFJTF9WRVJJRklDQVRJT05fU1VDQ0VTUycsXG4gICAgaGVscDogJ1RoZSBVUkwgdG8gdGhlIGN1c3RvbSBwYWdlIGZvciBlbWFpbCB2ZXJpZmljYXRpb24gLT4gc3VjY2Vzcy4nLFxuICB9LFxuICBwYXNzd29yZFJlc2V0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0NVU1RPTV9VUkxfUEFTU1dPUkRfUkVTRVQnLFxuICAgIGhlbHA6ICdUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgcGFzc3dvcmQgcmVzZXQuJyxcbiAgfSxcbiAgcGFzc3dvcmRSZXNldExpbmtJbnZhbGlkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0NVU1RPTV9VUkxfUEFTU1dPUkRfUkVTRVRfTElOS19JTlZBTElEJyxcbiAgICBoZWxwOiAnVGhlIFVSTCB0byB0aGUgY3VzdG9tIHBhZ2UgZm9yIHBhc3N3b3JkIHJlc2V0IC0+IGxpbmsgaW52YWxpZC4nLFxuICB9LFxuICBwYXNzd29yZFJlc2V0U3VjY2Vzczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fVVJMX1BBU1NXT1JEX1JFU0VUX1NVQ0NFU1MnLFxuICAgIGhlbHA6ICdUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgcGFzc3dvcmQgcmVzZXQgLT4gc3VjY2Vzcy4nLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLkN1c3RvbVBhZ2VzT3B0aW9ucyA9IHtcbiAgY2hvb3NlUGFzc3dvcmQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX0NIT09TRV9QQVNTV09SRCcsXG4gICAgaGVscDogJ2Nob29zZSBwYXNzd29yZCBwYWdlIHBhdGgnLFxuICB9LFxuICBleHBpcmVkVmVyaWZpY2F0aW9uTGluazoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DVVNUT01fUEFHRVNfRVhQSVJFRF9WRVJJRklDQVRJT05fTElOSycsXG4gICAgaGVscDogJ2V4cGlyZWQgdmVyaWZpY2F0aW9uIGxpbmsgcGFnZSBwYXRoJyxcbiAgfSxcbiAgaW52YWxpZExpbms6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX0lOVkFMSURfTElOSycsXG4gICAgaGVscDogJ2ludmFsaWQgbGluayBwYWdlIHBhdGgnLFxuICB9LFxuICBpbnZhbGlkUGFzc3dvcmRSZXNldExpbms6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX0lOVkFMSURfUEFTU1dPUkRfUkVTRVRfTElOSycsXG4gICAgaGVscDogJ2ludmFsaWQgcGFzc3dvcmQgcmVzZXQgbGluayBwYWdlIHBhdGgnLFxuICB9LFxuICBpbnZhbGlkVmVyaWZpY2F0aW9uTGluazoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DVVNUT01fUEFHRVNfSU5WQUxJRF9WRVJJRklDQVRJT05fTElOSycsXG4gICAgaGVscDogJ2ludmFsaWQgdmVyaWZpY2F0aW9uIGxpbmsgcGFnZSBwYXRoJyxcbiAgfSxcbiAgbGlua1NlbmRGYWlsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19MSU5LX1NFTkRfRkFJTCcsXG4gICAgaGVscDogJ3ZlcmlmaWNhdGlvbiBsaW5rIHNlbmQgZmFpbCBwYWdlIHBhdGgnLFxuICB9LFxuICBsaW5rU2VuZFN1Y2Nlc3M6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX0xJTktfU0VORF9TVUNDRVNTJyxcbiAgICBoZWxwOiAndmVyaWZpY2F0aW9uIGxpbmsgc2VuZCBzdWNjZXNzIHBhZ2UgcGF0aCcsXG4gIH0sXG4gIHBhcnNlRnJhbWVVUkw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX1BBUlNFX0ZSQU1FX1VSTCcsXG4gICAgaGVscDogJ2ZvciBtYXNraW5nIHVzZXItZmFjaW5nIHBhZ2VzJyxcbiAgfSxcbiAgcGFzc3dvcmRSZXNldFN1Y2Nlc3M6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX1BBU1NXT1JEX1JFU0VUX1NVQ0NFU1MnLFxuICAgIGhlbHA6ICdwYXNzd29yZCByZXNldCBzdWNjZXNzIHBhZ2UgcGF0aCcsXG4gIH0sXG4gIHZlcmlmeUVtYWlsU3VjY2Vzczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DVVNUT01fUEFHRVNfVkVSSUZZX0VNQUlMX1NVQ0NFU1MnLFxuICAgIGhlbHA6ICd2ZXJpZnkgZW1haWwgc3VjY2VzcyBwYWdlIHBhdGgnLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLkxpdmVRdWVyeU9wdGlvbnMgPSB7XG4gIGNsYXNzTmFtZXM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTElWRVFVRVJZX0NMQVNTTkFNRVMnLFxuICAgIGhlbHA6IFwicGFyc2Utc2VydmVyJ3MgTGl2ZVF1ZXJ5IGNsYXNzTmFtZXNcIixcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gIH0sXG4gIHB1YlN1YkFkYXB0ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTElWRVFVRVJZX1BVQl9TVUJfQURBUFRFUicsXG4gICAgaGVscDogJ0xpdmVRdWVyeSBwdWJzdWIgYWRhcHRlcicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICByZWRpc09wdGlvbnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTElWRVFVRVJZX1JFRElTX09QVElPTlMnLFxuICAgIGhlbHA6IFwicGFyc2Utc2VydmVyJ3MgTGl2ZVF1ZXJ5IHJlZGlzT3B0aW9uc1wiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gIH0sXG4gIHJlZGlzVVJMOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xJVkVRVUVSWV9SRURJU19VUkwnLFxuICAgIGhlbHA6IFwicGFyc2Utc2VydmVyJ3MgTGl2ZVF1ZXJ5IHJlZGlzVVJMXCIsXG4gIH0sXG4gIHdzc0FkYXB0ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTElWRVFVRVJZX1dTU19BREFQVEVSJyxcbiAgICBoZWxwOiAnQWRhcHRlciBtb2R1bGUgZm9yIHRoZSBXZWJTb2NrZXRTZXJ2ZXInLFxuICAgIGFjdGlvbjogcGFyc2Vycy5tb2R1bGVPck9iamVjdFBhcnNlcixcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5MaXZlUXVlcnlTZXJ2ZXJPcHRpb25zID0ge1xuICBhcHBJZDoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX0FQUF9JRCcsXG4gICAgaGVscDpcbiAgICAgICdUaGlzIHN0cmluZyBzaG91bGQgbWF0Y2ggdGhlIGFwcElkIGluIHVzZSBieSB5b3VyIFBhcnNlIFNlcnZlci4gSWYgeW91IGRlcGxveSB0aGUgTGl2ZVF1ZXJ5IHNlcnZlciBhbG9uZ3NpZGUgUGFyc2UgU2VydmVyLCB0aGUgTGl2ZVF1ZXJ5IHNlcnZlciB3aWxsIHRyeSB0byB1c2UgdGhlIHNhbWUgYXBwSWQuJyxcbiAgfSxcbiAgY2FjaGVUaW1lb3V0OiB7XG4gICAgZW52OiAnUEFSU0VfTElWRV9RVUVSWV9TRVJWRVJfQ0FDSEVfVElNRU9VVCcsXG4gICAgaGVscDpcbiAgICAgIFwiTnVtYmVyIGluIG1pbGxpc2Vjb25kcy4gV2hlbiBjbGllbnRzIHByb3ZpZGUgdGhlIHNlc3Npb25Ub2tlbiB0byB0aGUgTGl2ZVF1ZXJ5IHNlcnZlciwgdGhlIExpdmVRdWVyeSBzZXJ2ZXIgd2lsbCB0cnkgdG8gZmV0Y2ggaXRzIFBhcnNlVXNlcidzIG9iamVjdElkIGZyb20gcGFyc2Ugc2VydmVyIGFuZCBzdG9yZSBpdCBpbiB0aGUgY2FjaGUuIFRoZSB2YWx1ZSBkZWZpbmVzIHRoZSBkdXJhdGlvbiBvZiB0aGUgY2FjaGUuIENoZWNrIHRoZSBmb2xsb3dpbmcgU2VjdXJpdHkgc2VjdGlvbiBhbmQgb3VyIHByb3RvY29sIHNwZWNpZmljYXRpb24gZm9yIGRldGFpbHMsIGRlZmF1bHRzIHRvIDUgKiAxMDAwIG1zICg1IHNlY29uZHMpLlwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ2NhY2hlVGltZW91dCcpLFxuICB9LFxuICBrZXlQYWlyczoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX0tFWV9QQUlSUycsXG4gICAgaGVscDpcbiAgICAgICdBIEpTT04gb2JqZWN0IHRoYXQgc2VydmVzIGFzIGEgd2hpdGVsaXN0IG9mIGtleXMuIEl0IGlzIHVzZWQgZm9yIHZhbGlkYXRpbmcgY2xpZW50cyB3aGVuIHRoZXkgdHJ5IHRvIGNvbm5lY3QgdG8gdGhlIExpdmVRdWVyeSBzZXJ2ZXIuIENoZWNrIHRoZSBmb2xsb3dpbmcgU2VjdXJpdHkgc2VjdGlvbiBhbmQgb3VyIHByb3RvY29sIHNwZWNpZmljYXRpb24gZm9yIGRldGFpbHMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICB9LFxuICBsb2dMZXZlbDoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX0xPR19MRVZFTCcsXG4gICAgaGVscDpcbiAgICAgICdUaGlzIHN0cmluZyBkZWZpbmVzIHRoZSBsb2cgbGV2ZWwgb2YgdGhlIExpdmVRdWVyeSBzZXJ2ZXIuIFdlIHN1cHBvcnQgVkVSQk9TRSwgSU5GTywgRVJST1IsIE5PTkUsIGRlZmF1bHRzIHRvIElORk8uJyxcbiAgfSxcbiAgbWFzdGVyS2V5OiB7XG4gICAgZW52OiAnUEFSU0VfTElWRV9RVUVSWV9TRVJWRVJfTUFTVEVSX0tFWScsXG4gICAgaGVscDpcbiAgICAgICdUaGlzIHN0cmluZyBzaG91bGQgbWF0Y2ggdGhlIG1hc3RlcktleSBpbiB1c2UgYnkgeW91ciBQYXJzZSBTZXJ2ZXIuIElmIHlvdSBkZXBsb3kgdGhlIExpdmVRdWVyeSBzZXJ2ZXIgYWxvbmdzaWRlIFBhcnNlIFNlcnZlciwgdGhlIExpdmVRdWVyeSBzZXJ2ZXIgd2lsbCB0cnkgdG8gdXNlIHRoZSBzYW1lIG1hc3RlcktleS4nLFxuICB9LFxuICBwb3J0OiB7XG4gICAgZW52OiAnUEFSU0VfTElWRV9RVUVSWV9TRVJWRVJfUE9SVCcsXG4gICAgaGVscDogJ1RoZSBwb3J0IHRvIHJ1biB0aGUgTGl2ZVF1ZXJ5IHNlcnZlciwgZGVmYXVsdHMgdG8gMTMzNy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3BvcnQnKSxcbiAgICBkZWZhdWx0OiAxMzM3LFxuICB9LFxuICBwdWJTdWJBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfTElWRV9RVUVSWV9TRVJWRVJfUFVCX1NVQl9BREFQVEVSJyxcbiAgICBoZWxwOiAnTGl2ZVF1ZXJ5IHB1YnN1YiBhZGFwdGVyJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubW9kdWxlT3JPYmplY3RQYXJzZXIsXG4gIH0sXG4gIHJlZGlzT3B0aW9uczoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX1JFRElTX09QVElPTlMnLFxuICAgIGhlbHA6IFwicGFyc2Utc2VydmVyJ3MgTGl2ZVF1ZXJ5IHJlZGlzT3B0aW9uc1wiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gIH0sXG4gIHJlZGlzVVJMOiB7XG4gICAgZW52OiAnUEFSU0VfTElWRV9RVUVSWV9TRVJWRVJfUkVESVNfVVJMJyxcbiAgICBoZWxwOiBcInBhcnNlLXNlcnZlcidzIExpdmVRdWVyeSByZWRpc1VSTFwiLFxuICB9LFxuICBzZXJ2ZXJVUkw6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9TRVJWRVJfVVJMJyxcbiAgICBoZWxwOlxuICAgICAgJ1RoaXMgc3RyaW5nIHNob3VsZCBtYXRjaCB0aGUgc2VydmVyVVJMIGluIHVzZSBieSB5b3VyIFBhcnNlIFNlcnZlci4gSWYgeW91IGRlcGxveSB0aGUgTGl2ZVF1ZXJ5IHNlcnZlciBhbG9uZ3NpZGUgUGFyc2UgU2VydmVyLCB0aGUgTGl2ZVF1ZXJ5IHNlcnZlciB3aWxsIHRyeSB0byB1c2UgdGhlIHNhbWUgc2VydmVyVVJMLicsXG4gIH0sXG4gIHdlYnNvY2tldFRpbWVvdXQ6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9XRUJTT0NLRVRfVElNRU9VVCcsXG4gICAgaGVscDpcbiAgICAgICdOdW1iZXIgb2YgbWlsbGlzZWNvbmRzIGJldHdlZW4gcGluZy9wb25nIGZyYW1lcy4gVGhlIFdlYlNvY2tldCBzZXJ2ZXIgc2VuZHMgcGluZy9wb25nIGZyYW1lcyB0byB0aGUgY2xpZW50cyB0byBrZWVwIHRoZSBXZWJTb2NrZXQgYWxpdmUuIFRoaXMgdmFsdWUgZGVmaW5lcyB0aGUgaW50ZXJ2YWwgb2YgdGhlIHBpbmcvcG9uZyBmcmFtZSBmcm9tIHRoZSBzZXJ2ZXIgdG8gY2xpZW50cywgZGVmYXVsdHMgdG8gMTAgKiAxMDAwIG1zICgxMCBzKS4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3dlYnNvY2tldFRpbWVvdXQnKSxcbiAgfSxcbiAgd3NzQWRhcHRlcjoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX1dTU19BREFQVEVSJyxcbiAgICBoZWxwOiAnQWRhcHRlciBtb2R1bGUgZm9yIHRoZSBXZWJTb2NrZXRTZXJ2ZXInLFxuICAgIGFjdGlvbjogcGFyc2Vycy5tb2R1bGVPck9iamVjdFBhcnNlcixcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5JZGVtcG90ZW5jeU9wdGlvbnMgPSB7XG4gIHBhdGhzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VYUEVSSU1FTlRBTF9JREVNUE9URU5DWV9QQVRIUycsXG4gICAgaGVscDpcbiAgICAgICdBbiBhcnJheSBvZiBwYXRocyBmb3Igd2hpY2ggdGhlIGZlYXR1cmUgc2hvdWxkIGJlIGVuYWJsZWQuIFRoZSBtb3VudCBwYXRoIG11c3Qgbm90IGJlIGluY2x1ZGVkLCBmb3IgZXhhbXBsZSBpbnN0ZWFkIG9mIGAvcGFyc2UvZnVuY3Rpb25zL215RnVuY3Rpb25gIHNwZWNpZml5IGBmdW5jdGlvbnMvbXlGdW5jdGlvbmAuIFRoZSBlbnRyaWVzIGFyZSBpbnRlcnByZXRlZCBhcyByZWd1bGFyIGV4cHJlc3Npb24sIGZvciBleGFtcGxlIGBmdW5jdGlvbnMvLipgIG1hdGNoZXMgYWxsIGZ1bmN0aW9ucywgYGpvYnMvLipgIG1hdGNoZXMgYWxsIGpvYnMsIGBjbGFzc2VzLy4qYCBtYXRjaGVzIGFsbCBjbGFzc2VzLCBgLipgIG1hdGNoZXMgYWxsIHBhdGhzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICAgIGRlZmF1bHQ6IFtdLFxuICB9LFxuICB0dGw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRVhQRVJJTUVOVEFMX0lERU1QT1RFTkNZX1RUTCcsXG4gICAgaGVscDpcbiAgICAgICdUaGUgZHVyYXRpb24gaW4gc2Vjb25kcyBhZnRlciB3aGljaCBhIHJlcXVlc3QgcmVjb3JkIGlzIGRpc2NhcmRlZCBmcm9tIHRoZSBkYXRhYmFzZSwgZGVmYXVsdHMgdG8gMzAwcy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3R0bCcpLFxuICAgIGRlZmF1bHQ6IDMwMCxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5BY2NvdW50TG9ja291dE9wdGlvbnMgPSB7XG4gIGR1cmF0aW9uOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FDQ09VTlRfTE9DS09VVF9EVVJBVElPTicsXG4gICAgaGVscDpcbiAgICAgICdTZXQgdGhlIGR1cmF0aW9uIGluIG1pbnV0ZXMgdGhhdCBhIGxvY2tlZC1vdXQgYWNjb3VudCByZW1haW5zIGxvY2tlZCBvdXQgYmVmb3JlIGF1dG9tYXRpY2FsbHkgYmVjb21pbmcgdW5sb2NrZWQuPGJyPjxicj5WYWxpZCB2YWx1ZXMgYXJlIGdyZWF0ZXIgdGhhbiBgMGAgYW5kIGxlc3MgdGhhbiBgMTAwMDAwYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ2R1cmF0aW9uJyksXG4gIH0sXG4gIHRocmVzaG9sZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BQ0NPVU5UX0xPQ0tPVVRfVEhSRVNIT0xEJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0aGUgbnVtYmVyIG9mIGZhaWxlZCBzaWduLWluIGF0dGVtcHRzIHRoYXQgd2lsbCBjYXVzZSBhIHVzZXIgYWNjb3VudCB0byBiZSBsb2NrZWQuIElmIHRoZSBhY2NvdW50IGlzIGxvY2tlZC4gVGhlIGFjY291bnQgd2lsbCB1bmxvY2sgYWZ0ZXIgdGhlIGR1cmF0aW9uIHNldCBpbiB0aGUgYGR1cmF0aW9uYCBvcHRpb24gaGFzIHBhc3NlZCBhbmQgbm8gZnVydGhlciBsb2dpbiBhdHRlbXB0cyBoYXZlIGJlZW4gbWFkZS48YnI+PGJyPlZhbGlkIHZhbHVlcyBhcmUgZ3JlYXRlciB0aGFuIGAwYCBhbmQgbGVzcyB0aGFuIGAxMDAwYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3RocmVzaG9sZCcpLFxuICB9LFxuICB1bmxvY2tPblBhc3N3b3JkUmVzZXQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQUNDT1VOVF9MT0NLT1VUX1VOTE9DS19PTl9QQVNTV09SRF9SRVNFVCcsXG4gICAgaGVscDpcbiAgICAgICdTZXQgdG8gYHRydWVgICBpZiB0aGUgYWNjb3VudCBzaG91bGQgYmUgdW5sb2NrZWQgYWZ0ZXIgYSBzdWNjZXNzZnVsIHBhc3N3b3JkIHJlc2V0Ljxicj48YnI+RGVmYXVsdCBpcyBgZmFsc2VgLjxicj5SZXF1aXJlcyBvcHRpb25zIGBkdXJhdGlvbmAgYW5kIGB0aHJlc2hvbGRgIHRvIGJlIHNldC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLlBhc3N3b3JkUG9saWN5T3B0aW9ucyA9IHtcbiAgZG9Ob3RBbGxvd1VzZXJuYW1lOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBU1NXT1JEX1BPTElDWV9ET19OT1RfQUxMT1dfVVNFUk5BTUUnLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRvIGB0cnVlYCB0byBkaXNhbGxvdyB0aGUgdXNlcm5hbWUgYXMgcGFydCBvZiB0aGUgcGFzc3dvcmQuPGJyPjxicj5EZWZhdWx0IGlzIGBmYWxzZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgbWF4UGFzc3dvcmRBZ2U6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFTU1dPUkRfUE9MSUNZX01BWF9QQVNTV09SRF9BR0UnLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRoZSBudW1iZXIgb2YgZGF5cyBhZnRlciB3aGljaCBhIHBhc3N3b3JkIGV4cGlyZXMuIExvZ2luIGF0dGVtcHRzIGZhaWwgaWYgdGhlIHVzZXIgZG9lcyBub3QgcmVzZXQgdGhlIHBhc3N3b3JkIGJlZm9yZSBleHBpcmF0aW9uLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignbWF4UGFzc3dvcmRBZ2UnKSxcbiAgfSxcbiAgbWF4UGFzc3dvcmRIaXN0b3J5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBU1NXT1JEX1BPTElDWV9NQVhfUEFTU1dPUkRfSElTVE9SWScsXG4gICAgaGVscDpcbiAgICAgICdTZXQgdGhlIG51bWJlciBvZiBwcmV2aW91cyBwYXNzd29yZCB0aGF0IHdpbGwgbm90IGJlIGFsbG93ZWQgdG8gYmUgc2V0IGFzIG5ldyBwYXNzd29yZC4gSWYgdGhlIG9wdGlvbiBpcyBub3Qgc2V0IG9yIHNldCB0byBgMGAsIG5vIHByZXZpb3VzIHBhc3N3b3JkcyB3aWxsIGJlIGNvbnNpZGVyZWQuPGJyPjxicj5WYWxpZCB2YWx1ZXMgYXJlID49IGAwYCBhbmQgPD0gYDIwYC48YnI+RGVmYXVsdCBpcyBgMGAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdtYXhQYXNzd29yZEhpc3RvcnknKSxcbiAgfSxcbiAgcmVzZXRUb2tlblJldXNlSWZWYWxpZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQVNTV09SRF9QT0xJQ1lfUkVTRVRfVE9LRU5fUkVVU0VfSUZfVkFMSUQnLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRvIGB0cnVlYCBpZiBhIHBhc3N3b3JkIHJlc2V0IHRva2VuIHNob3VsZCBiZSByZXVzZWQgaW4gY2FzZSBhbm90aGVyIHRva2VuIGlzIHJlcXVlc3RlZCBidXQgdGhlcmUgaXMgYSB0b2tlbiB0aGF0IGlzIHN0aWxsIHZhbGlkLCBpLmUuIGhhcyBub3QgZXhwaXJlZC4gVGhpcyBhdm9pZHMgdGhlIG9mdGVuIG9ic2VydmVkIGlzc3VlIHRoYXQgYSB1c2VyIHJlcXVlc3RzIG11bHRpcGxlIGVtYWlscyBhbmQgZG9lcyBub3Qga25vdyB3aGljaCBsaW5rIGNvbnRhaW5zIGEgdmFsaWQgdG9rZW4gYmVjYXVzZSBlYWNoIG5ld2x5IGdlbmVyYXRlZCB0b2tlbiB3b3VsZCBpbnZhbGlkYXRlIHRoZSBwcmV2aW91cyB0b2tlbi48YnI+PGJyPkRlZmF1bHQgaXMgYGZhbHNlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICByZXNldFRva2VuVmFsaWRpdHlEdXJhdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQVNTV09SRF9QT0xJQ1lfUkVTRVRfVE9LRU5fVkFMSURJVFlfRFVSQVRJT04nLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRoZSB2YWxpZGl0eSBkdXJhdGlvbiBvZiB0aGUgcGFzc3dvcmQgcmVzZXQgdG9rZW4gaW4gc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgdG9rZW4gZXhwaXJlcy4gVGhlIHRva2VuIGlzIHVzZWQgaW4gdGhlIGxpbmsgdGhhdCBpcyBzZXQgaW4gdGhlIGVtYWlsLiBBZnRlciB0aGUgdG9rZW4gZXhwaXJlcywgdGhlIGxpbmsgYmVjb21lcyBpbnZhbGlkIGFuZCBhIG5ldyBsaW5rIGhhcyB0byBiZSBzZW50LiBJZiB0aGUgb3B0aW9uIGlzIG5vdCBzZXQgb3Igc2V0IHRvIGB1bmRlZmluZWRgLCB0aGVuIHRoZSB0b2tlbiBuZXZlciBleHBpcmVzLjxicj48YnI+Rm9yIGV4YW1wbGUsIHRvIGV4cGlyZSB0aGUgdG9rZW4gYWZ0ZXIgMiBob3Vycywgc2V0IGEgdmFsdWUgb2YgNzIwMCBzZWNvbmRzICg9IDYwIHNlY29uZHMgKiA2MCBtaW51dGVzICogMiBob3VycykuPGJyPjxicj5EZWZhdWx0IGlzIGB1bmRlZmluZWRgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcigncmVzZXRUb2tlblZhbGlkaXR5RHVyYXRpb24nKSxcbiAgfSxcbiAgdmFsaWRhdGlvbkVycm9yOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBU1NXT1JEX1BPTElDWV9WQUxJREFUSU9OX0VSUk9SJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0aGUgZXJyb3IgbWVzc2FnZSB0byBiZSBzZW50Ljxicj48YnI+RGVmYXVsdCBpcyBgUGFzc3dvcmQgZG9lcyBub3QgbWVldCB0aGUgUGFzc3dvcmQgUG9saWN5IHJlcXVpcmVtZW50cy5gJyxcbiAgfSxcbiAgdmFsaWRhdG9yQ2FsbGJhY2s6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFTU1dPUkRfUE9MSUNZX1ZBTElEQVRPUl9DQUxMQkFDSycsXG4gICAgaGVscDpcbiAgICAgICdTZXQgYSBjYWxsYmFjayBmdW5jdGlvbiB0byB2YWxpZGF0ZSBhIHBhc3N3b3JkIHRvIGJlIGFjY2VwdGVkLjxicj48YnI+SWYgdXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoIGB2YWxpZGF0b3JQYXR0ZXJuYCwgdGhlIHBhc3N3b3JkIG11c3QgcGFzcyBib3RoIHRvIGJlIGFjY2VwdGVkLicsXG4gIH0sXG4gIHZhbGlkYXRvclBhdHRlcm46IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFTU1dPUkRfUE9MSUNZX1ZBTElEQVRPUl9QQVRURVJOJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0aGUgcmVndWxhciBleHByZXNzaW9uIHZhbGlkYXRpb24gcGF0dGVybiBhIHBhc3N3b3JkIG11c3QgbWF0Y2ggdG8gYmUgYWNjZXB0ZWQuPGJyPjxicj5JZiB1c2VkIGluIGNvbWJpbmF0aW9uIHdpdGggYHZhbGlkYXRvckNhbGxiYWNrYCwgdGhlIHBhc3N3b3JkIG11c3QgcGFzcyBib3RoIHRvIGJlIGFjY2VwdGVkLicsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuRmlsZVVwbG9hZE9wdGlvbnMgPSB7XG4gIGVuYWJsZUZvckFub255bW91c1VzZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRklMRV9VUExPQURfRU5BQkxFX0ZPUl9BTk9OWU1PVVNfVVNFUicsXG4gICAgaGVscDogJ0lzIHRydWUgaWYgZmlsZSB1cGxvYWQgc2hvdWxkIGJlIGFsbG93ZWQgZm9yIGFub255bW91cyB1c2Vycy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBlbmFibGVGb3JBdXRoZW50aWNhdGVkVXNlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9GSUxFX1VQTE9BRF9FTkFCTEVfRk9SX0FVVEhFTlRJQ0FURURfVVNFUicsXG4gICAgaGVscDogJ0lzIHRydWUgaWYgZmlsZSB1cGxvYWQgc2hvdWxkIGJlIGFsbG93ZWQgZm9yIGF1dGhlbnRpY2F0ZWQgdXNlcnMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBlbmFibGVGb3JQdWJsaWM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRklMRV9VUExPQURfRU5BQkxFX0ZPUl9QVUJMSUMnLFxuICAgIGhlbHA6ICdJcyB0cnVlIGlmIGZpbGUgdXBsb2FkIHNob3VsZCBiZSBhbGxvd2VkIGZvciBhbnlvbmUsIHJlZ2FyZGxlc3Mgb2YgdXNlciBhdXRoZW50aWNhdGlvbi4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLkRhdGFiYXNlT3B0aW9ucyA9IHtcbiAgZW5hYmxlU2NoZW1hSG9va3M6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfRU5BQkxFX1NDSEVNQV9IT09LUycsXG4gICAgaGVscDpcbiAgICAgICdFbmFibGVzIGRhdGFiYXNlIHJlYWwtdGltZSBob29rcyB0byB1cGRhdGUgc2luZ2xlIHNjaGVtYSBjYWNoZS4gU2V0IHRvIGB0cnVlYCBpZiB1c2luZyBtdWx0aXBsZSBQYXJzZSBTZXJ2ZXJzIGluc3RhbmNlcyBjb25uZWN0ZWQgdG8gdGhlIHNhbWUgZGF0YWJhc2UuIEZhaWxpbmcgdG8gZG8gc28gd2lsbCBjYXVzZSBhIHNjaGVtYSBjaGFuZ2UgdG8gbm90IHByb3BhZ2F0ZSB0byBhbGwgaW5zdGFuY2VzIGFuZCByZS1zeW5jaW5nIHdpbGwgb25seSBoYXBwZW4gd2hlbiB0aGUgaW5zdGFuY2VzIHJlc3RhcnQuIFRvIHVzZSB0aGlzIGZlYXR1cmUgd2l0aCBNb25nb0RCLCBhIHJlcGxpY2Egc2V0IGNsdXN0ZXIgd2l0aCBbY2hhbmdlIHN0cmVhbV0oaHR0cHM6Ly9kb2NzLm1vbmdvZGIuY29tL21hbnVhbC9jaGFuZ2VTdHJlYW1zLyNhdmFpbGFiaWxpdHkpIHN1cHBvcnQgaXMgcmVxdWlyZWQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbn07XG4iXX0=
807
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9PcHRpb25zL0RlZmluaXRpb25zLmpzIl0sIm5hbWVzIjpbInBhcnNlcnMiLCJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyIsIlBhcnNlU2VydmVyT3B0aW9ucyIsImFjY291bnRMb2Nrb3V0IiwiZW52IiwiaGVscCIsImFjdGlvbiIsIm9iamVjdFBhcnNlciIsImFsbG93Q2xpZW50Q2xhc3NDcmVhdGlvbiIsImJvb2xlYW5QYXJzZXIiLCJkZWZhdWx0IiwiYWxsb3dDdXN0b21PYmplY3RJZCIsImFsbG93SGVhZGVycyIsImFycmF5UGFyc2VyIiwiYWxsb3dPcmlnaW4iLCJhbmFseXRpY3NBZGFwdGVyIiwibW9kdWxlT3JPYmplY3RQYXJzZXIiLCJhcHBJZCIsInJlcXVpcmVkIiwiYXBwTmFtZSIsImF1dGgiLCJjYWNoZUFkYXB0ZXIiLCJjYWNoZU1heFNpemUiLCJudW1iZXJQYXJzZXIiLCJjYWNoZVRUTCIsImNsaWVudEtleSIsImNsb3VkIiwiY2x1c3RlciIsIm51bWJlck9yQm9vbGVhblBhcnNlciIsImNvbGxlY3Rpb25QcmVmaXgiLCJjdXN0b21QYWdlcyIsImRhdGFiYXNlQWRhcHRlciIsImRhdGFiYXNlT3B0aW9ucyIsImRhdGFiYXNlVVJJIiwiZGlyZWN0QWNjZXNzIiwiZG90TmV0S2V5IiwiZW1haWxBZGFwdGVyIiwiZW1haWxWZXJpZnlUb2tlblJldXNlSWZWYWxpZCIsImVtYWlsVmVyaWZ5VG9rZW5WYWxpZGl0eUR1cmF0aW9uIiwiZW5hYmxlQW5vbnltb3VzVXNlcnMiLCJlbmFibGVFeHByZXNzRXJyb3JIYW5kbGVyIiwiZW5jcnlwdGlvbktleSIsImVuZm9yY2VQcml2YXRlVXNlcnMiLCJleHBpcmVJbmFjdGl2ZVNlc3Npb25zIiwiZmlsZUtleSIsImZpbGVzQWRhcHRlciIsImZpbGVVcGxvYWQiLCJncmFwaFFMUGF0aCIsImdyYXBoUUxTY2hlbWEiLCJob3N0IiwiaWRlbXBvdGVuY3lPcHRpb25zIiwiamF2YXNjcmlwdEtleSIsImpzb25Mb2dzIiwibGl2ZVF1ZXJ5IiwibGl2ZVF1ZXJ5U2VydmVyT3B0aW9ucyIsImxvZ2dlckFkYXB0ZXIiLCJsb2dMZXZlbCIsImxvZ3NGb2xkZXIiLCJtYXN0ZXJLZXkiLCJtYXN0ZXJLZXlJcHMiLCJtYXhMaW1pdCIsIm1heExvZ0ZpbGVzIiwibWF4VXBsb2FkU2l6ZSIsIm1pZGRsZXdhcmUiLCJtb3VudEdyYXBoUUwiLCJtb3VudFBhdGgiLCJtb3VudFBsYXlncm91bmQiLCJvYmplY3RJZFNpemUiLCJwYWdlcyIsInBhc3N3b3JkUG9saWN5IiwicGxheWdyb3VuZFBhdGgiLCJwb3J0IiwicHJlc2VydmVGaWxlTmFtZSIsInByZXZlbnRMb2dpbldpdGhVbnZlcmlmaWVkRW1haWwiLCJwcm90ZWN0ZWRGaWVsZHMiLCJfVXNlciIsInB1YmxpY1NlcnZlclVSTCIsInB1c2giLCJyZWFkT25seU1hc3RlcktleSIsInJlc3RBUElLZXkiLCJyZXZva2VTZXNzaW9uT25QYXNzd29yZFJlc2V0Iiwic2NoZWR1bGVkUHVzaCIsInNlY3VyaXR5Iiwic2VydmVyQ2xvc2VDb21wbGV0ZSIsInNlcnZlclN0YXJ0Q29tcGxldGUiLCJzZXJ2ZXJVUkwiLCJzZXNzaW9uTGVuZ3RoIiwic2lsZW50Iiwic3RhcnRMaXZlUXVlcnlTZXJ2ZXIiLCJ1c2VyU2Vuc2l0aXZlRmllbGRzIiwidmVyYm9zZSIsInZlcmlmeVVzZXJFbWFpbHMiLCJ3ZWJob29rS2V5IiwiU2VjdXJpdHlPcHRpb25zIiwiY2hlY2tHcm91cHMiLCJlbmFibGVDaGVjayIsImVuYWJsZUNoZWNrTG9nIiwiU2NoZW1hT3B0aW9ucyIsImRlZmluaXRpb25zIiwic3RyaWN0IiwiZGVsZXRlRXh0cmFGaWVsZHMiLCJyZWNyZWF0ZU1vZGlmaWVkRmllbGRzIiwibG9ja1NjaGVtYXMiLCJiZWZvcmVNaWdyYXRpb24iLCJhZnRlck1pZ3JhdGlvbiIsIlBhZ2VzT3B0aW9ucyIsImN1c3RvbVJvdXRlcyIsImN1c3RvbVVybHMiLCJlbmFibGVMb2NhbGl6YXRpb24iLCJlbmFibGVSb3V0ZXIiLCJmb3JjZVJlZGlyZWN0IiwibG9jYWxpemF0aW9uRmFsbGJhY2tMb2NhbGUiLCJsb2NhbGl6YXRpb25Kc29uUGF0aCIsInBhZ2VzRW5kcG9pbnQiLCJwYWdlc1BhdGgiLCJwbGFjZWhvbGRlcnMiLCJQYWdlc1JvdXRlIiwiaGFuZGxlciIsIm1ldGhvZCIsInBhdGgiLCJQYWdlc0N1c3RvbVVybHNPcHRpb25zIiwiZW1haWxWZXJpZmljYXRpb25MaW5rRXhwaXJlZCIsImVtYWlsVmVyaWZpY2F0aW9uTGlua0ludmFsaWQiLCJlbWFpbFZlcmlmaWNhdGlvblNlbmRGYWlsIiwiZW1haWxWZXJpZmljYXRpb25TZW5kU3VjY2VzcyIsImVtYWlsVmVyaWZpY2F0aW9uU3VjY2VzcyIsInBhc3N3b3JkUmVzZXQiLCJwYXNzd29yZFJlc2V0TGlua0ludmFsaWQiLCJwYXNzd29yZFJlc2V0U3VjY2VzcyIsIkN1c3RvbVBhZ2VzT3B0aW9ucyIsImNob29zZVBhc3N3b3JkIiwiZXhwaXJlZFZlcmlmaWNhdGlvbkxpbmsiLCJpbnZhbGlkTGluayIsImludmFsaWRQYXNzd29yZFJlc2V0TGluayIsImludmFsaWRWZXJpZmljYXRpb25MaW5rIiwibGlua1NlbmRGYWlsIiwibGlua1NlbmRTdWNjZXNzIiwicGFyc2VGcmFtZVVSTCIsInZlcmlmeUVtYWlsU3VjY2VzcyIsIkxpdmVRdWVyeU9wdGlvbnMiLCJjbGFzc05hbWVzIiwicHViU3ViQWRhcHRlciIsInJlZGlzT3B0aW9ucyIsInJlZGlzVVJMIiwid3NzQWRhcHRlciIsIkxpdmVRdWVyeVNlcnZlck9wdGlvbnMiLCJjYWNoZVRpbWVvdXQiLCJrZXlQYWlycyIsIndlYnNvY2tldFRpbWVvdXQiLCJJZGVtcG90ZW5jeU9wdGlvbnMiLCJwYXRocyIsInR0bCIsIkFjY291bnRMb2Nrb3V0T3B0aW9ucyIsImR1cmF0aW9uIiwidGhyZXNob2xkIiwidW5sb2NrT25QYXNzd29yZFJlc2V0IiwiUGFzc3dvcmRQb2xpY3lPcHRpb25zIiwiZG9Ob3RBbGxvd1VzZXJuYW1lIiwibWF4UGFzc3dvcmRBZ2UiLCJtYXhQYXNzd29yZEhpc3RvcnkiLCJyZXNldFRva2VuUmV1c2VJZlZhbGlkIiwicmVzZXRUb2tlblZhbGlkaXR5RHVyYXRpb24iLCJ2YWxpZGF0aW9uRXJyb3IiLCJ2YWxpZGF0b3JDYWxsYmFjayIsInZhbGlkYXRvclBhdHRlcm4iLCJGaWxlVXBsb2FkT3B0aW9ucyIsImVuYWJsZUZvckFub255bW91c1VzZXIiLCJlbmFibGVGb3JBdXRoZW50aWNhdGVkVXNlciIsImVuYWJsZUZvclB1YmxpYyIsIkRhdGFiYXNlT3B0aW9ucyIsImVuYWJsZVNjaGVtYUhvb2tzIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxXQUFELENBQXJCOztBQUVBQyxNQUFNLENBQUNDLE9BQVAsQ0FBZUMsa0JBQWYsR0FBb0M7QUFDbENDLEVBQUFBLGNBQWMsRUFBRTtBQUNkQyxJQUFBQSxHQUFHLEVBQUUsOEJBRFM7QUFFZEMsSUFBQUEsSUFBSSxFQUFFLHVEQUZRO0FBR2RDLElBQUFBLE1BQU0sRUFBRVIsT0FBTyxDQUFDUztBQUhGLEdBRGtCO0FBTWxDQyxFQUFBQSx3QkFBd0IsRUFBRTtBQUN4QkosSUFBQUEsR0FBRyxFQUFFLDBDQURtQjtBQUV4QkMsSUFBQUEsSUFBSSxFQUFFLDZEQUZrQjtBQUd4QkMsSUFBQUEsTUFBTSxFQUFFUixPQUFPLENBQUNXLGFBSFE7QUFJeEJDLElBQUFBLE9BQU8sRUFBRTtBQUplLEdBTlE7QUFZbENDLEVBQUFBLG1CQUFtQixFQUFFO0FBQ25CUCxJQUFBQSxHQUFHLEVBQUUscUNBRGM7QUFFbkJDLElBQUFBLElBQUksRUFBRSxxQ0FGYTtBQUduQkMsSUFBQUEsTUFBTSxFQUFFUixPQUFPLENBQUNXLGFBSEc7QUFJbkJDLElBQUFBLE9BQU8sRUFBRTtBQUpVLEdBWmE7QUFrQmxDRSxFQUFBQSxZQUFZLEVBQUU7QUFDWlIsSUFBQUEsR0FB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LEVBQUU7QUFDMUJuSyxJQUFBQSxHQUFHLEVBQUUsd0RBRHFCO0FBRTFCQyxJQUFBQSxJQUFJLEVBQUUsbUVBRm9CO0FBRzFCQyxJQUFBQSxNQUFNLEVBQUVSLE9BQU8sQ0FBQ1csYUFIVTtBQUkxQkMsSUFBQUEsT0FBTyxFQUFFO0FBSmlCLEdBUEs7QUFhakM4SixFQUFBQSxlQUFlLEVBQUU7QUFDZnBLLElBQUFBLEdBQUcsRUFBRSw0Q0FEVTtBQUVmQyxJQUFBQSxJQUFJLEVBQUUseUZBRlM7QUFHZkMsSUFBQUEsTUFBTSxFQUFFUixPQUFPLENBQUNXLGFBSEQ7QUFJZkMsSUFBQUEsT0FBTyxFQUFFO0FBSk07QUFiZ0IsQ0FBbkM7QUFvQkFWLE1BQU0sQ0FBQ0MsT0FBUCxDQUFld0ssZUFBZixHQUFpQztBQUMvQkMsRUFBQUEsaUJBQWlCLEVBQUU7QUFDakJ0SyxJQUFBQSxHQUFHLEVBQUUsMkNBRFk7QUFFakJDLElBQUFBLElBQUksRUFDRixrY0FIZTtBQUlqQkMsSUFBQUEsTUFBTSxFQUFFUixPQUFPLENBQUNXLGFBSkM7QUFLakJDLElBQUFBLE9BQU8sRUFBRTtBQUxRO0FBRFksQ0FBakMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuKioqKiBHRU5FUkFURUQgQ09ERSAqKioqXG5UaGlzIGNvZGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IHJlc291cmNlcy9idWlsZENvbmZpZ0RlZmluaXRpb25zLmpzXG5EbyBub3QgZWRpdCBtYW51YWxseSwgYnV0IHVwZGF0ZSBPcHRpb25zL2luZGV4LmpzXG4qL1xudmFyIHBhcnNlcnMgPSByZXF1aXJlKCcuL3BhcnNlcnMnKTtcblxubW9kdWxlLmV4cG9ydHMuUGFyc2VTZXJ2ZXJPcHRpb25zID0ge1xuICBhY2NvdW50TG9ja291dDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BQ0NPVU5UX0xPQ0tPVVQnLFxuICAgIGhlbHA6ICdUaGUgYWNjb3VudCBsb2Nrb3V0IHBvbGljeSBmb3IgZmFpbGVkIGxvZ2luIGF0dGVtcHRzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgfSxcbiAgYWxsb3dDbGllbnRDbGFzc0NyZWF0aW9uOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FMTE9XX0NMSUVOVF9DTEFTU19DUkVBVElPTicsXG4gICAgaGVscDogJ0VuYWJsZSAob3IgZGlzYWJsZSkgY2xpZW50IGNsYXNzIGNyZWF0aW9uLCBkZWZhdWx0cyB0byB0cnVlJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBhbGxvd0N1c3RvbU9iamVjdElkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FMTE9XX0NVU1RPTV9PQkpFQ1RfSUQnLFxuICAgIGhlbHA6ICdFbmFibGUgKG9yIGRpc2FibGUpIGN1c3RvbSBvYmplY3RJZCcsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGFsbG93SGVhZGVyczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BTExPV19IRUFERVJTJyxcbiAgICBoZWxwOiAnQWRkIGhlYWRlcnMgdG8gQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICB9LFxuICBhbGxvd09yaWdpbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BTExPV19PUklHSU4nLFxuICAgIGhlbHA6ICdTZXRzIHRoZSBvcmlnaW4gdG8gQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJyxcbiAgfSxcbiAgYW5hbHl0aWNzQWRhcHRlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BTkFMWVRJQ1NfQURBUFRFUicsXG4gICAgaGVscDogJ0FkYXB0ZXIgbW9kdWxlIGZvciB0aGUgYW5hbHl0aWNzJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubW9kdWxlT3JPYmplY3RQYXJzZXIsXG4gIH0sXG4gIGFwcElkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FQUExJQ0FUSU9OX0lEJyxcbiAgICBoZWxwOiAnWW91ciBQYXJzZSBBcHBsaWNhdGlvbiBJRCcsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIGFwcE5hbWU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQVBQX05BTUUnLFxuICAgIGhlbHA6ICdTZXRzIHRoZSBhcHAgbmFtZScsXG4gIH0sXG4gIGF1dGg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQVVUSF9QUk9WSURFUlMnLFxuICAgIGhlbHA6XG4gICAgICAnQ29uZmlndXJhdGlvbiBmb3IgeW91ciBhdXRoZW50aWNhdGlvbiBwcm92aWRlcnMsIGFzIHN0cmluZ2lmaWVkIEpTT04uIFNlZSBodHRwOi8vZG9jcy5wYXJzZXBsYXRmb3JtLm9yZy9wYXJzZS1zZXJ2ZXIvZ3VpZGUvI29hdXRoLWFuZC0zcmQtcGFydHktYXV0aGVudGljYXRpb24nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gIH0sXG4gIGNhY2hlQWRhcHRlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DQUNIRV9BREFQVEVSJyxcbiAgICBoZWxwOiAnQWRhcHRlciBtb2R1bGUgZm9yIHRoZSBjYWNoZScsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICBjYWNoZU1heFNpemU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ0FDSEVfTUFYX1NJWkUnLFxuICAgIGhlbHA6ICdTZXRzIHRoZSBtYXhpbXVtIHNpemUgZm9yIHRoZSBpbiBtZW1vcnkgY2FjaGUsIGRlZmF1bHRzIHRvIDEwMDAwJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdjYWNoZU1heFNpemUnKSxcbiAgICBkZWZhdWx0OiAxMDAwMCxcbiAgfSxcbiAgY2FjaGVUVEw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ0FDSEVfVFRMJyxcbiAgICBoZWxwOiAnU2V0cyB0aGUgVFRMIGZvciB0aGUgaW4gbWVtb3J5IGNhY2hlIChpbiBtcyksIGRlZmF1bHRzIHRvIDUwMDAgKDUgc2Vjb25kcyknLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ2NhY2hlVFRMJyksXG4gICAgZGVmYXVsdDogNTAwMCxcbiAgfSxcbiAgY2xpZW50S2V5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NMSUVOVF9LRVknLFxuICAgIGhlbHA6ICdLZXkgZm9yIGlPUywgTWFjT1MsIHR2T1MgY2xpZW50cycsXG4gIH0sXG4gIGNsb3VkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NMT1VEJyxcbiAgICBoZWxwOiAnRnVsbCBwYXRoIHRvIHlvdXIgY2xvdWQgY29kZSBtYWluLmpzJyxcbiAgfSxcbiAgY2x1c3Rlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DTFVTVEVSJyxcbiAgICBoZWxwOiAnUnVuIHdpdGggY2x1c3Rlciwgb3B0aW9uYWxseSBzZXQgdGhlIG51bWJlciBvZiBwcm9jZXNzZXMgZGVmYXVsdCB0byBvcy5jcHVzKCkubGVuZ3RoJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyT3JCb29sZWFuUGFyc2VyLFxuICB9LFxuICBjb2xsZWN0aW9uUHJlZml4OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NPTExFQ1RJT05fUFJFRklYJyxcbiAgICBoZWxwOiAnQSBjb2xsZWN0aW9uIHByZWZpeCBmb3IgdGhlIGNsYXNzZXMnLFxuICAgIGRlZmF1bHQ6ICcnLFxuICB9LFxuICBjdXN0b21QYWdlczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DVVNUT01fUEFHRVMnLFxuICAgIGhlbHA6ICdjdXN0b20gcGFnZXMgZm9yIHBhc3N3b3JkIHZhbGlkYXRpb24gYW5kIHJlc2V0JyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIGRlZmF1bHQ6IHt9LFxuICB9LFxuICBkYXRhYmFzZUFkYXB0ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQURBUFRFUicsXG4gICAgaGVscDogJ0FkYXB0ZXIgbW9kdWxlIGZvciB0aGUgZGF0YWJhc2UnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5tb2R1bGVPck9iamVjdFBhcnNlcixcbiAgfSxcbiAgZGF0YWJhc2VPcHRpb25zOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX09QVElPTlMnLFxuICAgIGhlbHA6ICdPcHRpb25zIHRvIHBhc3MgdG8gdGhlIGRhdGFiYXNlIGNsaWVudCcsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgfSxcbiAgZGF0YWJhc2VVUkk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfVVJJJyxcbiAgICBoZWxwOiAnVGhlIGZ1bGwgVVJJIHRvIHlvdXIgZGF0YWJhc2UuIFN1cHBvcnRlZCBkYXRhYmFzZXMgYXJlIG1vbmdvZGIgb3IgcG9zdGdyZXMuJyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZWZhdWx0OiAnbW9uZ29kYjovL2xvY2FsaG9zdDoyNzAxNy9wYXJzZScsXG4gIH0sXG4gIGRpcmVjdEFjY2Vzczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9ESVJFQ1RfQUNDRVNTJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0byBgdHJ1ZWAgaWYgUGFyc2UgcmVxdWVzdHMgd2l0aGluIHRoZSBzYW1lIE5vZGUuanMgZW52aXJvbm1lbnQgYXMgUGFyc2UgU2VydmVyIHNob3VsZCBiZSByb3V0ZWQgdG8gUGFyc2UgU2VydmVyIGRpcmVjdGx5IGluc3RlYWQgb2YgdmlhIHRoZSBIVFRQIGludGVyZmFjZS4gRGVmYXVsdCBpcyBgZmFsc2VgLjxicj48YnI+SWYgc2V0IHRvIGBmYWxzZWAgdGhlbiBQYXJzZSByZXF1ZXN0cyB3aXRoaW4gdGhlIHNhbWUgTm9kZS5qcyBlbnZpcm9ubWVudCBhcyBQYXJzZSBTZXJ2ZXIgYXJlIGV4ZWN1dGVkIGFzIEhUVFAgcmVxdWVzdHMgc2VudCB0byBQYXJzZSBTZXJ2ZXIgdmlhIHRoZSBgc2VydmVyVVJMYC4gRm9yIGV4YW1wbGUsIGEgYFBhcnNlLlF1ZXJ5YCBpbiBDbG91ZCBDb2RlIGlzIGNhbGxpbmcgUGFyc2UgU2VydmVyIHZpYSBhIEhUVFAgcmVxdWVzdC4gVGhlIHNlcnZlciBpcyBlc3NlbnRpYWxseSBtYWtpbmcgYSBIVFRQIHJlcXVlc3QgdG8gaXRzZWxmLCB1bm5lY2Vzc2FyaWx5IHVzaW5nIG5ldHdvcmsgcmVzb3VyY2VzIHN1Y2ggYXMgbmV0d29yayBwb3J0cy48YnI+PGJyPlxcdTI2QTBcXHVGRTBGIEluIGVudmlyb25tZW50cyB3aGVyZSBtdWx0aXBsZSBQYXJzZSBTZXJ2ZXIgaW5zdGFuY2VzIHJ1biBiZWhpbmQgYSBsb2FkIGJhbGFuY2VyIGFuZCBQYXJzZSByZXF1ZXN0cyB3aXRoaW4gdGhlIGN1cnJlbnQgTm9kZS5qcyBlbnZpcm9ubWVudCBzaG91bGQgYmUgcm91dGVkIHZpYSB0aGUgbG9hZCBiYWxhbmNlciBhbmQgZGlzdHJpYnV0ZWQgYXMgSFRUUCByZXF1ZXN0cyBhbW9uZyBhbGwgaW5zdGFuY2VzIHZpYSB0aGUgYHNlcnZlclVSTGAsIHRoaXMgc2hvdWxkIGJlIHNldCB0byBgZmFsc2VgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGRvdE5ldEtleToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9ET1RfTkVUX0tFWScsXG4gICAgaGVscDogJ0tleSBmb3IgVW5pdHkgYW5kIC5OZXQgU0RLJyxcbiAgfSxcbiAgZW1haWxBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VNQUlMX0FEQVBURVInLFxuICAgIGhlbHA6ICdBZGFwdGVyIG1vZHVsZSBmb3IgZW1haWwgc2VuZGluZycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICBlbWFpbFZlcmlmeVRva2VuUmV1c2VJZlZhbGlkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VNQUlMX1ZFUklGWV9UT0tFTl9SRVVTRV9JRl9WQUxJRCcsXG4gICAgaGVscDpcbiAgICAgICdTZXQgdG8gYHRydWVgIGlmIGEgZW1haWwgdmVyaWZpY2F0aW9uIHRva2VuIHNob3VsZCBiZSByZXVzZWQgaW4gY2FzZSBhbm90aGVyIHRva2VuIGlzIHJlcXVlc3RlZCBidXQgdGhlcmUgaXMgYSB0b2tlbiB0aGF0IGlzIHN0aWxsIHZhbGlkLCBpLmUuIGhhcyBub3QgZXhwaXJlZC4gVGhpcyBhdm9pZHMgdGhlIG9mdGVuIG9ic2VydmVkIGlzc3VlIHRoYXQgYSB1c2VyIHJlcXVlc3RzIG11bHRpcGxlIGVtYWlscyBhbmQgZG9lcyBub3Qga25vdyB3aGljaCBsaW5rIGNvbnRhaW5zIGEgdmFsaWQgdG9rZW4gYmVjYXVzZSBlYWNoIG5ld2x5IGdlbmVyYXRlZCB0b2tlbiB3b3VsZCBpbnZhbGlkYXRlIHRoZSBwcmV2aW91cyB0b2tlbi48YnI+PGJyPkRlZmF1bHQgaXMgYGZhbHNlYC48YnI+UmVxdWlyZXMgb3B0aW9uIGB2ZXJpZnlVc2VyRW1haWxzOiB0cnVlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBlbWFpbFZlcmlmeVRva2VuVmFsaWRpdHlEdXJhdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTUFJTF9WRVJJRllfVE9LRU5fVkFMSURJVFlfRFVSQVRJT04nLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRoZSB2YWxpZGl0eSBkdXJhdGlvbiBvZiB0aGUgZW1haWwgdmVyaWZpY2F0aW9uIHRva2VuIGluIHNlY29uZHMgYWZ0ZXIgd2hpY2ggdGhlIHRva2VuIGV4cGlyZXMuIFRoZSB0b2tlbiBpcyB1c2VkIGluIHRoZSBsaW5rIHRoYXQgaXMgc2V0IGluIHRoZSBlbWFpbC4gQWZ0ZXIgdGhlIHRva2VuIGV4cGlyZXMsIHRoZSBsaW5rIGJlY29tZXMgaW52YWxpZCBhbmQgYSBuZXcgbGluayBoYXMgdG8gYmUgc2VudC4gSWYgdGhlIG9wdGlvbiBpcyBub3Qgc2V0IG9yIHNldCB0byBgdW5kZWZpbmVkYCwgdGhlbiB0aGUgdG9rZW4gbmV2ZXIgZXhwaXJlcy48YnI+PGJyPkZvciBleGFtcGxlLCB0byBleHBpcmUgdGhlIHRva2VuIGFmdGVyIDIgaG91cnMsIHNldCBhIHZhbHVlIG9mIDcyMDAgc2Vjb25kcyAoPSA2MCBzZWNvbmRzICogNjAgbWludXRlcyAqIDIgaG91cnMpLjxicj48YnI+RGVmYXVsdCBpcyBgdW5kZWZpbmVkYC48YnI+UmVxdWlyZXMgb3B0aW9uIGB2ZXJpZnlVc2VyRW1haWxzOiB0cnVlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ2VtYWlsVmVyaWZ5VG9rZW5WYWxpZGl0eUR1cmF0aW9uJyksXG4gIH0sXG4gIGVuYWJsZUFub255bW91c1VzZXJzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VOQUJMRV9BTk9OX1VTRVJTJyxcbiAgICBoZWxwOiAnRW5hYmxlIChvciBkaXNhYmxlKSBhbm9ueW1vdXMgdXNlcnMsIGRlZmF1bHRzIHRvIHRydWUnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIGVuYWJsZUV4cHJlc3NFcnJvckhhbmRsZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRU5BQkxFX0VYUFJFU1NfRVJST1JfSEFORExFUicsXG4gICAgaGVscDogJ0VuYWJsZXMgdGhlIGRlZmF1bHQgZXhwcmVzcyBlcnJvciBoYW5kbGVyIGZvciBhbGwgZXJyb3JzJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgZW5jcnlwdGlvbktleToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTkNSWVBUSU9OX0tFWScsXG4gICAgaGVscDogJ0tleSBmb3IgZW5jcnlwdGluZyB5b3VyIGZpbGVzJyxcbiAgfSxcbiAgZW5mb3JjZVByaXZhdGVVc2Vyczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTkZPUkNFX1BSSVZBVEVfVVNFUlMnLFxuICAgIGhlbHA6ICdTZXQgdG8gdHJ1ZSBpZiBuZXcgdXNlcnMgc2hvdWxkIGJlIGNyZWF0ZWQgd2l0aG91dCBwdWJsaWMgcmVhZCBhbmQgd3JpdGUgYWNjZXNzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGV4cGlyZUluYWN0aXZlU2Vzc2lvbnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRVhQSVJFX0lOQUNUSVZFX1NFU1NJT05TJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldHMgd2hldGhlciB3ZSBzaG91bGQgZXhwaXJlIHRoZSBpbmFjdGl2ZSBzZXNzaW9ucywgZGVmYXVsdHMgdG8gdHJ1ZS4gSWYgZmFsc2UsIGFsbCBuZXcgc2Vzc2lvbnMgYXJlIGNyZWF0ZWQgd2l0aCBubyBleHBpcmF0aW9uIGRhdGUuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBmaWxlS2V5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0ZJTEVfS0VZJyxcbiAgICBoZWxwOiAnS2V5IGZvciB5b3VyIGZpbGVzJyxcbiAgfSxcbiAgZmlsZXNBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0ZJTEVTX0FEQVBURVInLFxuICAgIGhlbHA6ICdBZGFwdGVyIG1vZHVsZSBmb3IgdGhlIGZpbGVzIHN1Yi1zeXN0ZW0nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5tb2R1bGVPck9iamVjdFBhcnNlcixcbiAgfSxcbiAgZmlsZVVwbG9hZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9GSUxFX1VQTE9BRF9PUFRJT05TJyxcbiAgICBoZWxwOiAnT3B0aW9ucyBmb3IgZmlsZSB1cGxvYWRzJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIGRlZmF1bHQ6IHt9LFxuICB9LFxuICBncmFwaFFMUGF0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9HUkFQSFFMX1BBVEgnLFxuICAgIGhlbHA6ICdNb3VudCBwYXRoIGZvciB0aGUgR3JhcGhRTCBlbmRwb2ludCwgZGVmYXVsdHMgdG8gL2dyYXBocWwnLFxuICAgIGRlZmF1bHQ6ICcvZ3JhcGhxbCcsXG4gIH0sXG4gIGdyYXBoUUxTY2hlbWE6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfR1JBUEhfUUxTQ0hFTUEnLFxuICAgIGhlbHA6ICdGdWxsIHBhdGggdG8geW91ciBHcmFwaFFMIGN1c3RvbSBzY2hlbWEuZ3JhcGhxbCBmaWxlJyxcbiAgfSxcbiAgaG9zdDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9IT1NUJyxcbiAgICBoZWxwOiAnVGhlIGhvc3QgdG8gc2VydmUgUGFyc2VTZXJ2ZXIgb24sIGRlZmF1bHRzIHRvIDAuMC4wLjAnLFxuICAgIGRlZmF1bHQ6ICcwLjAuMC4wJyxcbiAgfSxcbiAgaWRlbXBvdGVuY3lPcHRpb25zOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VYUEVSSU1FTlRBTF9JREVNUE9URU5DWV9PUFRJT05TJyxcbiAgICBoZWxwOlxuICAgICAgJ09wdGlvbnMgZm9yIHJlcXVlc3QgaWRlbXBvdGVuY3kgdG8gZGVkdXBsaWNhdGUgaWRlbnRpY2FsIHJlcXVlc3RzIHRoYXQgbWF5IGJlIGNhdXNlZCBieSBuZXR3b3JrIGlzc3Vlcy4gQ2F1dGlvbiwgdGhpcyBpcyBhbiBleHBlcmltZW50YWwgZmVhdHVyZSB0aGF0IG1heSBub3QgYmUgYXBwcm9wcmlhdGUgZm9yIHByb2R1Y3Rpb24uJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIGRlZmF1bHQ6IHt9LFxuICB9LFxuICBqYXZhc2NyaXB0S2V5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0pBVkFTQ1JJUFRfS0VZJyxcbiAgICBoZWxwOiAnS2V5IGZvciB0aGUgSmF2YXNjcmlwdCBTREsnLFxuICB9LFxuICBqc29uTG9nczoge1xuICAgIGVudjogJ0pTT05fTE9HUycsXG4gICAgaGVscDogJ0xvZyBhcyBzdHJ1Y3R1cmVkIEpTT04gb2JqZWN0cycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gIH0sXG4gIGxpdmVRdWVyeToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MSVZFX1FVRVJZJyxcbiAgICBoZWxwOiBcInBhcnNlLXNlcnZlcidzIExpdmVRdWVyeSBjb25maWd1cmF0aW9uIG9iamVjdFwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gIH0sXG4gIGxpdmVRdWVyeVNlcnZlck9wdGlvbnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTElWRV9RVUVSWV9TRVJWRVJfT1BUSU9OUycsXG4gICAgaGVscDogJ0xpdmUgcXVlcnkgc2VydmVyIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyAod2lsbCBzdGFydCB0aGUgbGl2ZVF1ZXJ5IHNlcnZlciknLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gIH0sXG4gIGxvZ2dlckFkYXB0ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HR0VSX0FEQVBURVInLFxuICAgIGhlbHA6ICdBZGFwdGVyIG1vZHVsZSBmb3IgdGhlIGxvZ2dpbmcgc3ViLXN5c3RlbScsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICBsb2dMZXZlbDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MT0dfTEVWRUwnLFxuICAgIGhlbHA6ICdTZXRzIHRoZSBsZXZlbCBmb3IgbG9ncycsXG4gIH0sXG4gIGxvZ3NGb2xkZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HU19GT0xERVInLFxuICAgIGhlbHA6IFwiRm9sZGVyIGZvciB0aGUgbG9ncyAoZGVmYXVsdHMgdG8gJy4vbG9ncycpOyBzZXQgdG8gbnVsbCB0byBkaXNhYmxlIGZpbGUgYmFzZWQgbG9nZ2luZ1wiLFxuICAgIGRlZmF1bHQ6ICcuL2xvZ3MnLFxuICB9LFxuICBtYXN0ZXJLZXk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTUFTVEVSX0tFWScsXG4gICAgaGVscDogJ1lvdXIgUGFyc2UgTWFzdGVyIEtleScsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIG1hc3RlcktleUlwczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NQVNURVJfS0VZX0lQUycsXG4gICAgaGVscDogJ1Jlc3RyaWN0IG1hc3RlcktleSB0byBiZSB1c2VkIGJ5IG9ubHkgdGhlc2UgaXBzLCBkZWZhdWx0cyB0byBbXSAoYWxsb3cgYWxsIGlwcyknLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgICBkZWZhdWx0OiBbXSxcbiAgfSxcbiAgbWF4TGltaXQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTUFYX0xJTUlUJyxcbiAgICBoZWxwOiAnTWF4IHZhbHVlIGZvciBsaW1pdCBvcHRpb24gb24gcXVlcmllcywgZGVmYXVsdHMgdG8gdW5saW1pdGVkJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdtYXhMaW1pdCcpLFxuICB9LFxuICBtYXhMb2dGaWxlczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NQVhfTE9HX0ZJTEVTJyxcbiAgICBoZWxwOlxuICAgICAgXCJNYXhpbXVtIG51bWJlciBvZiBsb2dzIHRvIGtlZXAuIElmIG5vdCBzZXQsIG5vIGxvZ3Mgd2lsbCBiZSByZW1vdmVkLiBUaGlzIGNhbiBiZSBhIG51bWJlciBvZiBmaWxlcyBvciBudW1iZXIgb2YgZGF5cy4gSWYgdXNpbmcgZGF5cywgYWRkICdkJyBhcyB0aGUgc3VmZml4LiAoZGVmYXVsdDogbnVsbClcIixcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICB9LFxuICBtYXhVcGxvYWRTaXplOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX01BWF9VUExPQURfU0laRScsXG4gICAgaGVscDogJ01heCBmaWxlIHNpemUgZm9yIHVwbG9hZHMsIGRlZmF1bHRzIHRvIDIwbWInLFxuICAgIGRlZmF1bHQ6ICcyMG1iJyxcbiAgfSxcbiAgbWlkZGxld2FyZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NSURETEVXQVJFJyxcbiAgICBoZWxwOiAnbWlkZGxld2FyZSBmb3IgZXhwcmVzcyBzZXJ2ZXIsIGNhbiBiZSBzdHJpbmcgb3IgZnVuY3Rpb24nLFxuICB9LFxuICBtb3VudEdyYXBoUUw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTU9VTlRfR1JBUEhRTCcsXG4gICAgaGVscDogJ01vdW50cyB0aGUgR3JhcGhRTCBlbmRwb2ludCcsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIG1vdW50UGF0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NT1VOVF9QQVRIJyxcbiAgICBoZWxwOiAnTW91bnQgcGF0aCBmb3IgdGhlIHNlcnZlciwgZGVmYXVsdHMgdG8gL3BhcnNlJyxcbiAgICBkZWZhdWx0OiAnL3BhcnNlJyxcbiAgfSxcbiAgbW91bnRQbGF5Z3JvdW5kOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX01PVU5UX1BMQVlHUk9VTkQnLFxuICAgIGhlbHA6ICdNb3VudHMgdGhlIEdyYXBoUUwgUGxheWdyb3VuZCAtIG5ldmVyIHVzZSB0aGlzIG9wdGlvbiBpbiBwcm9kdWN0aW9uJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgb2JqZWN0SWRTaXplOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX09CSkVDVF9JRF9TSVpFJyxcbiAgICBoZWxwOiBcIlNldHMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGluIGdlbmVyYXRlZCBvYmplY3QgaWQncywgZGVmYXVsdCAxMFwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ29iamVjdElkU2l6ZScpLFxuICAgIGRlZmF1bHQ6IDEwLFxuICB9LFxuICBwYWdlczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFUycsXG4gICAgaGVscDpcbiAgICAgICdUaGUgb3B0aW9ucyBmb3IgcGFnZXMgc3VjaCBhcyBwYXNzd29yZCByZXNldCBhbmQgZW1haWwgdmVyaWZpY2F0aW9uLiBDYXV0aW9uLCB0aGlzIGlzIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlIHRoYXQgbWF5IG5vdCBiZSBhcHByb3ByaWF0ZSBmb3IgcHJvZHVjdGlvbi4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgZGVmYXVsdDoge30sXG4gIH0sXG4gIHBhc3N3b3JkUG9saWN5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBU1NXT1JEX1BPTElDWScsXG4gICAgaGVscDogJ1RoZSBwYXNzd29yZCBwb2xpY3kgZm9yIGVuZm9yY2luZyBwYXNzd29yZCByZWxhdGVkIHJ1bGVzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgfSxcbiAgcGxheWdyb3VuZFBhdGg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUExBWUdST1VORF9QQVRIJyxcbiAgICBoZWxwOiAnTW91bnQgcGF0aCBmb3IgdGhlIEdyYXBoUUwgUGxheWdyb3VuZCwgZGVmYXVsdHMgdG8gL3BsYXlncm91bmQnLFxuICAgIGRlZmF1bHQ6ICcvcGxheWdyb3VuZCcsXG4gIH0sXG4gIHBvcnQ6IHtcbiAgICBlbnY6ICdQT1JUJyxcbiAgICBoZWxwOiAnVGhlIHBvcnQgdG8gcnVuIHRoZSBQYXJzZVNlcnZlciwgZGVmYXVsdHMgdG8gMTMzNy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3BvcnQnKSxcbiAgICBkZWZhdWx0OiAxMzM3LFxuICB9LFxuICBwcmVzZXJ2ZUZpbGVOYW1lOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BSRVNFUlZFX0ZJTEVfTkFNRScsXG4gICAgaGVscDogJ0VuYWJsZSAob3IgZGlzYWJsZSkgdGhlIGFkZGl0aW9uIG9mIGEgdW5pcXVlIGhhc2ggdG8gdGhlIGZpbGUgbmFtZXMnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBwcmV2ZW50TG9naW5XaXRoVW52ZXJpZmllZEVtYWlsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BSRVZFTlRfTE9HSU5fV0lUSF9VTlZFUklGSUVEX0VNQUlMJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0byBgdHJ1ZWAgdG8gcHJldmVudCBhIHVzZXIgZnJvbSBsb2dnaW5nIGluIGlmIHRoZSBlbWFpbCBoYXMgbm90IHlldCBiZWVuIHZlcmlmaWVkIGFuZCBlbWFpbCB2ZXJpZmljYXRpb24gaXMgcmVxdWlyZWQuPGJyPjxicj5EZWZhdWx0IGlzIGBmYWxzZWAuPGJyPlJlcXVpcmVzIG9wdGlvbiBgdmVyaWZ5VXNlckVtYWlsczogdHJ1ZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgcHJvdGVjdGVkRmllbGRzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BST1RFQ1RFRF9GSUVMRFMnLFxuICAgIGhlbHA6ICdQcm90ZWN0ZWQgZmllbGRzIHRoYXQgc2hvdWxkIGJlIHRyZWF0ZWQgd2l0aCBleHRyYSBzZWN1cml0eSB3aGVuIGZldGNoaW5nIGRldGFpbHMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIF9Vc2VyOiB7XG4gICAgICAgICcqJzogWydlbWFpbCddLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICBwdWJsaWNTZXJ2ZXJVUkw6IHtcbiAgICBlbnY6ICdQQVJTRV9QVUJMSUNfU0VSVkVSX1VSTCcsXG4gICAgaGVscDogJ1B1YmxpYyBVUkwgdG8geW91ciBwYXJzZSBzZXJ2ZXIgd2l0aCBodHRwOi8vIG9yIGh0dHBzOi8vLicsXG4gIH0sXG4gIHB1c2g6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUFVTSCcsXG4gICAgaGVscDpcbiAgICAgICdDb25maWd1cmF0aW9uIGZvciBwdXNoLCBhcyBzdHJpbmdpZmllZCBKU09OLiBTZWUgaHR0cDovL2RvY3MucGFyc2VwbGF0Zm9ybS5vcmcvcGFyc2Utc2VydmVyL2d1aWRlLyNwdXNoLW5vdGlmaWNhdGlvbnMnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gIH0sXG4gIHJlYWRPbmx5TWFzdGVyS2V5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JFQURfT05MWV9NQVNURVJfS0VZJyxcbiAgICBoZWxwOiAnUmVhZC1vbmx5IGtleSwgd2hpY2ggaGFzIHRoZSBzYW1lIGNhcGFiaWxpdGllcyBhcyBNYXN0ZXJLZXkgd2l0aG91dCB3cml0ZXMnLFxuICB9LFxuICByZXN0QVBJS2V5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JFU1RfQVBJX0tFWScsXG4gICAgaGVscDogJ0tleSBmb3IgUkVTVCBjYWxscycsXG4gIH0sXG4gIHJldm9rZVNlc3Npb25PblBhc3N3b3JkUmVzZXQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkVWT0tFX1NFU1NJT05fT05fUEFTU1dPUkRfUkVTRVQnLFxuICAgIGhlbHA6XG4gICAgICBcIldoZW4gYSB1c2VyIGNoYW5nZXMgdGhlaXIgcGFzc3dvcmQsIGVpdGhlciB0aHJvdWdoIHRoZSByZXNldCBwYXNzd29yZCBlbWFpbCBvciB3aGlsZSBsb2dnZWQgaW4sIGFsbCBzZXNzaW9ucyBhcmUgcmV2b2tlZCBpZiB0aGlzIGlzIHRydWUuIFNldCB0byBmYWxzZSBpZiB5b3UgZG9uJ3Qgd2FudCB0byByZXZva2Ugc2Vzc2lvbnMuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgc2NoZWR1bGVkUHVzaDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TQ0hFRFVMRURfUFVTSCcsXG4gICAgaGVscDogJ0NvbmZpZ3VyYXRpb24gZm9yIHB1c2ggc2NoZWR1bGluZywgZGVmYXVsdHMgdG8gZmFsc2UuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgc2VjdXJpdHk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0VDVVJJVFknLFxuICAgIGhlbHA6ICdUaGUgc2VjdXJpdHkgb3B0aW9ucyB0byBpZGVudGlmeSBhbmQgcmVwb3J0IHdlYWsgc2VjdXJpdHkgc2V0dGluZ3MuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIGRlZmF1bHQ6IHt9LFxuICB9LFxuICBzZXJ2ZXJDbG9zZUNvbXBsZXRlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NFUlZFUl9DTE9TRV9DT01QTEVURScsXG4gICAgaGVscDogJ0NhbGxiYWNrIHdoZW4gc2VydmVyIGhhcyBjbG9zZWQnLFxuICB9LFxuICBzZXJ2ZXJTdGFydENvbXBsZXRlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NFUlZFUl9TVEFSVF9DT01QTEVURScsXG4gICAgaGVscDogJ0NhbGxiYWNrIHdoZW4gc2VydmVyIGhhcyBzdGFydGVkJyxcbiAgfSxcbiAgc2VydmVyVVJMOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1VSTCcsXG4gICAgaGVscDogJ1VSTCB0byB5b3VyIHBhcnNlIHNlcnZlciB3aXRoIGh0dHA6Ly8gb3IgaHR0cHM6Ly8uJyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgfSxcbiAgc2Vzc2lvbkxlbmd0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TRVNTSU9OX0xFTkdUSCcsXG4gICAgaGVscDogJ1Nlc3Npb24gZHVyYXRpb24sIGluIHNlY29uZHMsIGRlZmF1bHRzIHRvIDEgeWVhcicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignc2Vzc2lvbkxlbmd0aCcpLFxuICAgIGRlZmF1bHQ6IDMxNTM2MDAwLFxuICB9LFxuICBzaWxlbnQ6IHtcbiAgICBlbnY6ICdTSUxFTlQnLFxuICAgIGhlbHA6ICdEaXNhYmxlcyBjb25zb2xlIG91dHB1dCcsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gIH0sXG4gIHN0YXJ0TGl2ZVF1ZXJ5U2VydmVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NUQVJUX0xJVkVfUVVFUllfU0VSVkVSJyxcbiAgICBoZWxwOiAnU3RhcnRzIHRoZSBsaXZlUXVlcnkgc2VydmVyJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgdXNlclNlbnNpdGl2ZUZpZWxkczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9VU0VSX1NFTlNJVElWRV9GSUVMRFMnLFxuICAgIGhlbHA6XG4gICAgICAnUGVyc29uYWxseSBpZGVudGlmaWFibGUgaW5mb3JtYXRpb24gZmllbGRzIGluIHRoZSB1c2VyIHRhYmxlIHRoZSBzaG91bGQgYmUgcmVtb3ZlZCBmb3Igbm9uLWF1dGhvcml6ZWQgdXNlcnMuIERlcHJlY2F0ZWQgQHNlZSBwcm90ZWN0ZWRGaWVsZHMnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgfSxcbiAgdmVyYm9zZToge1xuICAgIGVudjogJ1ZFUkJPU0UnLFxuICAgIGhlbHA6ICdTZXQgdGhlIGxvZ2dpbmcgdG8gdmVyYm9zZScsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gIH0sXG4gIHZlcmlmeVVzZXJFbWFpbHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfVkVSSUZZX1VTRVJfRU1BSUxTJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0byBgdHJ1ZWAgdG8gcmVxdWlyZSB1c2VycyB0byB2ZXJpZnkgdGhlaXIgZW1haWwgYWRkcmVzcyB0byBjb21wbGV0ZSB0aGUgc2lnbi11cCBwcm9jZXNzLjxicj48YnI+RGVmYXVsdCBpcyBgZmFsc2VgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIHdlYmhvb2tLZXk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfV0VCSE9PS19LRVknLFxuICAgIGhlbHA6ICdLZXkgc2VudCB3aXRoIG91dGdvaW5nIHdlYmhvb2sgY2FsbHMnLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLlNlY3VyaXR5T3B0aW9ucyA9IHtcbiAgY2hlY2tHcm91cHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0VDVVJJVFlfQ0hFQ0tfR1JPVVBTJyxcbiAgICBoZWxwOlxuICAgICAgJ1RoZSBzZWN1cml0eSBjaGVjayBncm91cHMgdG8gcnVuLiBUaGlzIGFsbG93cyB0byBhZGQgY3VzdG9tIHNlY3VyaXR5IGNoZWNrcyBvciBvdmVycmlkZSBleGlzdGluZyBvbmVzLiBEZWZhdWx0IGFyZSB0aGUgZ3JvdXBzIGRlZmluZWQgaW4gYENoZWNrR3JvdXBzLmpzYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgfSxcbiAgZW5hYmxlQ2hlY2s6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0VDVVJJVFlfRU5BQkxFX0NIRUNLJyxcbiAgICBoZWxwOiAnSXMgdHJ1ZSBpZiBQYXJzZSBTZXJ2ZXIgc2hvdWxkIGNoZWNrIGZvciB3ZWFrIHNlY3VyaXR5IHNldHRpbmdzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGVuYWJsZUNoZWNrTG9nOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NFQ1VSSVRZX0VOQUJMRV9DSEVDS19MT0cnLFxuICAgIGhlbHA6XG4gICAgICAnSXMgdHJ1ZSBpZiB0aGUgc2VjdXJpdHkgY2hlY2sgcmVwb3J0IHNob3VsZCBiZSB3cml0dGVuIHRvIGxvZ3MuIFRoaXMgc2hvdWxkIG9ubHkgYmUgZW5hYmxlZCB0ZW1wb3JhcmlseSB0byBub3QgZXhwb3NlIHdlYWsgc2VjdXJpdHkgc2V0dGluZ3MgaW4gbG9ncy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLlNjaGVtYU9wdGlvbnMgPSB7XG4gIGRlZmluaXRpb25zOiB7XG4gICAgaGVscDogJ1RoZSBzY2hlbWEgZGVmaW5pdGlvbnMuJyxcbiAgICBkZWZhdWx0OiBbXSxcbiAgfSxcbiAgc3RyaWN0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NDSEVNQV9TVFJJQ1QnLFxuICAgIGhlbHA6ICdJcyB0cnVlIGlmIFBhcnNlIFNlcnZlciBzaG91bGQgZXhpdCBpZiBzY2hlbWEgdXBkYXRlIGZhaWwuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBkZWxldGVFeHRyYUZpZWxkczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TQ0hFTUFfREVMRVRFX0VYVFJBX0ZJRUxEUycsXG4gICAgaGVscDpcbiAgICAgICdJcyB0cnVlIGlmIFBhcnNlIFNlcnZlciBzaG91bGQgZGVsZXRlIGFueSBmaWVsZHMgbm90IGRlZmluZWQgaW4gYSBzY2hlbWEgZGVmaW5pdGlvbi4gVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIGR1cmluZyBkZXZlbG9wbWVudC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICByZWNyZWF0ZU1vZGlmaWVkRmllbGRzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NDSEVNQV9SRUNSRUFURV9NT0RJRklFRF9GSUVMRFMnLFxuICAgIGhlbHA6XG4gICAgICAnSXMgdHJ1ZSBpZiBQYXJzZSBTZXJ2ZXIgc2hvdWxkIHJlY3JlYXRlIGFueSBmaWVsZHMgdGhhdCBhcmUgZGlmZmVyZW50IGJldHdlZW4gdGhlIGN1cnJlbnQgZGF0YWJhc2Ugc2NoZW1hIGFuZCB0aGVzY2hlbWEgZGVmaW5pdGlvbi4gVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIGR1cmluZyBkZXZlbG9wbWVudC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBsb2NrU2NoZW1hczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TQ0hFTUFfTE9DSycsXG4gICAgaGVscDpcbiAgICAgICdJcyB0cnVlIGlmIFBhcnNlIFNlcnZlciB3aWxsIHJlamVjdCBhbnkgYXR0ZW1wdHMgdG8gbW9kaWZ5IHRoZSBzY2hlbWEgd2hpbGUgdGhlIHNlcnZlciBpcyBydW5uaW5nLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGJlZm9yZU1pZ3JhdGlvbjoge1xuICAgIGhlbHA6ICdFeGVjdXRlIGEgY2FsbGJhY2sgYmVmb3JlIHJ1bm5pbmcgc2NoZW1hIG1pZ3JhdGlvbnMuJyxcbiAgfSxcbiAgYWZ0ZXJNaWdyYXRpb246IHtcbiAgICBoZWxwOiAnRXhlY3V0ZSBhIGNhbGxiYWNrIGFmdGVyIHJ1bm5pbmcgc2NoZW1hIG1pZ3JhdGlvbnMuJyxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5QYWdlc09wdGlvbnMgPSB7XG4gIGN1c3RvbVJvdXRlczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fUk9VVEVTJyxcbiAgICBoZWxwOiAnVGhlIGN1c3RvbSByb3V0ZXMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gICAgZGVmYXVsdDogW10sXG4gIH0sXG4gIGN1c3RvbVVybHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfQ1VTVE9NX1VSTFMnLFxuICAgIGhlbHA6ICdUaGUgVVJMcyB0byB0aGUgY3VzdG9tIHBhZ2VzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICBkZWZhdWx0OiB7fSxcbiAgfSxcbiAgZW5hYmxlTG9jYWxpemF0aW9uOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0VOQUJMRV9MT0NBTElaQVRJT04nLFxuICAgIGhlbHA6ICdJcyB0cnVlIGlmIHBhZ2VzIHNob3VsZCBiZSBsb2NhbGl6ZWQ7IHRoaXMgaGFzIG5vIGVmZmVjdCBvbiBjdXN0b20gcGFnZSByZWRpcmVjdHMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgZW5hYmxlUm91dGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0VOQUJMRV9ST1VURVInLFxuICAgIGhlbHA6XG4gICAgICAnSXMgdHJ1ZSBpZiB0aGUgcGFnZXMgcm91dGVyIHNob3VsZCBiZSBlbmFibGVkOyB0aGlzIGlzIHJlcXVpcmVkIGZvciBhbnkgb2YgdGhlIHBhZ2VzIG9wdGlvbnMgdG8gdGFrZSBlZmZlY3QuIENhdXRpb24sIHRoaXMgaXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUgdGhhdCBtYXkgbm90IGJlIGFwcHJvcHJpYXRlIGZvciBwcm9kdWN0aW9uLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGZvcmNlUmVkaXJlY3Q6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfRk9SQ0VfUkVESVJFQ1QnLFxuICAgIGhlbHA6XG4gICAgICAnSXMgdHJ1ZSBpZiByZXNwb25zZXMgc2hvdWxkIGFsd2F5cyBiZSByZWRpcmVjdHMgYW5kIG5ldmVyIGNvbnRlbnQsIGZhbHNlIGlmIHRoZSByZXNwb25zZSB0eXBlIHNob3VsZCBkZXBlbmQgb24gdGhlIHJlcXVlc3QgdHlwZSAoR0VUIHJlcXVlc3QgLT4gY29udGVudCByZXNwb25zZTsgUE9TVCByZXF1ZXN0IC0+IHJlZGlyZWN0IHJlc3BvbnNlKS4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBsb2NhbGl6YXRpb25GYWxsYmFja0xvY2FsZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19MT0NBTElaQVRJT05fRkFMTEJBQ0tfTE9DQUxFJyxcbiAgICBoZWxwOlxuICAgICAgJ1RoZSBmYWxsYmFjayBsb2NhbGUgZm9yIGxvY2FsaXphdGlvbiBpZiBubyBtYXRjaGluZyB0cmFuc2xhdGlvbiBpcyBwcm92aWRlZCBmb3IgdGhlIGdpdmVuIGxvY2FsZS4gVGhpcyBpcyBvbmx5IHJlbGV2YW50IHdoZW4gcHJvdmlkaW5nIHRyYW5zbGF0aW9uIHJlc291cmNlcyB2aWEgSlNPTiBmaWxlLicsXG4gICAgZGVmYXVsdDogJ2VuJyxcbiAgfSxcbiAgbG9jYWxpemF0aW9uSnNvblBhdGg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfTE9DQUxJWkFUSU9OX0pTT05fUEFUSCcsXG4gICAgaGVscDpcbiAgICAgICdUaGUgcGF0aCB0byB0aGUgSlNPTiBmaWxlIGZvciBsb2NhbGl6YXRpb247IHRoZSB0cmFuc2xhdGlvbnMgd2lsbCBiZSB1c2VkIHRvIGZpbGwgdGVtcGxhdGUgcGxhY2Vob2xkZXJzIGFjY29yZGluZyB0byB0aGUgbG9jYWxlLicsXG4gIH0sXG4gIHBhZ2VzRW5kcG9pbnQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfUEFHRVNfRU5EUE9JTlQnLFxuICAgIGhlbHA6IFwiVGhlIEFQSSBlbmRwb2ludCBmb3IgdGhlIHBhZ2VzLiBEZWZhdWx0IGlzICdhcHBzJy5cIixcbiAgICBkZWZhdWx0OiAnYXBwcycsXG4gIH0sXG4gIHBhZ2VzUGF0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19QQUdFU19QQVRIJyxcbiAgICBoZWxwOlxuICAgICAgXCJUaGUgcGF0aCB0byB0aGUgcGFnZXMgZGlyZWN0b3J5OyB0aGlzIGFsc28gZGVmaW5lcyB3aGVyZSB0aGUgc3RhdGljIGVuZHBvaW50ICcvYXBwcycgcG9pbnRzIHRvLiBEZWZhdWx0IGlzIHRoZSAnLi9wdWJsaWMvJyBkaXJlY3RvcnkuXCIsXG4gICAgZGVmYXVsdDogJy4vcHVibGljJyxcbiAgfSxcbiAgcGxhY2Vob2xkZXJzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX1BMQUNFSE9MREVSUycsXG4gICAgaGVscDpcbiAgICAgICdUaGUgcGxhY2Vob2xkZXIga2V5cyBhbmQgdmFsdWVzIHdoaWNoIHdpbGwgYmUgZmlsbGVkIGluIHBhZ2VzOyB0aGlzIGNhbiBiZSBhIHNpbXBsZSBvYmplY3Qgb3IgYSBjYWxsYmFjayBmdW5jdGlvbi4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgZGVmYXVsdDoge30sXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuUGFnZXNSb3V0ZSA9IHtcbiAgaGFuZGxlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19ST1VURV9IQU5ETEVSJyxcbiAgICBoZWxwOiAnVGhlIHJvdXRlIGhhbmRsZXIgdGhhdCBpcyBhbiBhc3luYyBmdW5jdGlvbi4nLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICBtZXRob2Q6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfUk9VVEVfTUVUSE9EJyxcbiAgICBoZWxwOiBcIlRoZSByb3V0ZSBtZXRob2QsIGUuZy4gJ0dFVCcgb3IgJ1BPU1QnLlwiLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICBwYXRoOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX1JPVVRFX1BBVEgnLFxuICAgIGhlbHA6ICdUaGUgcm91dGUgcGF0aC4nLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLlBhZ2VzQ3VzdG9tVXJsc09wdGlvbnMgPSB7XG4gIGVtYWlsVmVyaWZpY2F0aW9uTGlua0V4cGlyZWQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfQ1VTVE9NX1VSTF9FTUFJTF9WRVJJRklDQVRJT05fTElOS19FWFBJUkVEJyxcbiAgICBoZWxwOiAnVGhlIFVSTCB0byB0aGUgY3VzdG9tIHBhZ2UgZm9yIGVtYWlsIHZlcmlmaWNhdGlvbiAtPiBsaW5rIGV4cGlyZWQuJyxcbiAgfSxcbiAgZW1haWxWZXJpZmljYXRpb25MaW5rSW52YWxpZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fVVJMX0VNQUlMX1ZFUklGSUNBVElPTl9MSU5LX0lOVkFMSUQnLFxuICAgIGhlbHA6ICdUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgZW1haWwgdmVyaWZpY2F0aW9uIC0+IGxpbmsgaW52YWxpZC4nLFxuICB9LFxuICBlbWFpbFZlcmlmaWNhdGlvblNlbmRGYWlsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0NVU1RPTV9VUkxfRU1BSUxfVkVSSUZJQ0FUSU9OX1NFTkRfRkFJTCcsXG4gICAgaGVscDogJ1RoZSBVUkwgdG8gdGhlIGN1c3RvbSBwYWdlIGZvciBlbWFpbCB2ZXJpZmljYXRpb24gLT4gbGluayBzZW5kIGZhaWwuJyxcbiAgfSxcbiAgZW1haWxWZXJpZmljYXRpb25TZW5kU3VjY2Vzczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fVVJMX0VNQUlMX1ZFUklGSUNBVElPTl9TRU5EX1NVQ0NFU1MnLFxuICAgIGhlbHA6ICdUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgZW1haWwgdmVyaWZpY2F0aW9uIC0+IHJlc2VuZCBsaW5rIC0+IHN1Y2Nlc3MuJyxcbiAgfSxcbiAgZW1haWxWZXJpZmljYXRpb25TdWNjZXNzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0NVU1RPTV9VUkxfRU1BSUxfVkVSSUZJQ0FUSU9OX1NVQ0NFU1MnLFxuICAgIGhlbHA6ICdUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgZW1haWwgdmVyaWZpY2F0aW9uIC0+IHN1Y2Nlc3MuJyxcbiAgfSxcbiAgcGFzc3dvcmRSZXNldDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fVVJMX1BBU1NXT1JEX1JFU0VUJyxcbiAgICBoZWxwOiAnVGhlIFVSTCB0byB0aGUgY3VzdG9tIHBhZ2UgZm9yIHBhc3N3b3JkIHJlc2V0LicsXG4gIH0sXG4gIHBhc3N3b3JkUmVzZXRMaW5rSW52YWxpZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fVVJMX1BBU1NXT1JEX1JFU0VUX0xJTktfSU5WQUxJRCcsXG4gICAgaGVscDogJ1RoZSBVUkwgdG8gdGhlIGN1c3RvbSBwYWdlIGZvciBwYXNzd29yZCByZXNldCAtPiBsaW5rIGludmFsaWQuJyxcbiAgfSxcbiAgcGFzc3dvcmRSZXNldFN1Y2Nlc3M6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfQ1VTVE9NX1VSTF9QQVNTV09SRF9SRVNFVF9TVUNDRVNTJyxcbiAgICBoZWxwOiAnVGhlIFVSTCB0byB0aGUgY3VzdG9tIHBhZ2UgZm9yIHBhc3N3b3JkIHJlc2V0IC0+IHN1Y2Nlc3MuJyxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5DdXN0b21QYWdlc09wdGlvbnMgPSB7XG4gIGNob29zZVBhc3N3b3JkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19DSE9PU0VfUEFTU1dPUkQnLFxuICAgIGhlbHA6ICdjaG9vc2UgcGFzc3dvcmQgcGFnZSBwYXRoJyxcbiAgfSxcbiAgZXhwaXJlZFZlcmlmaWNhdGlvbkxpbms6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX0VYUElSRURfVkVSSUZJQ0FUSU9OX0xJTksnLFxuICAgIGhlbHA6ICdleHBpcmVkIHZlcmlmaWNhdGlvbiBsaW5rIHBhZ2UgcGF0aCcsXG4gIH0sXG4gIGludmFsaWRMaW5rOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19JTlZBTElEX0xJTksnLFxuICAgIGhlbHA6ICdpbnZhbGlkIGxpbmsgcGFnZSBwYXRoJyxcbiAgfSxcbiAgaW52YWxpZFBhc3N3b3JkUmVzZXRMaW5rOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19JTlZBTElEX1BBU1NXT1JEX1JFU0VUX0xJTksnLFxuICAgIGhlbHA6ICdpbnZhbGlkIHBhc3N3b3JkIHJlc2V0IGxpbmsgcGFnZSBwYXRoJyxcbiAgfSxcbiAgaW52YWxpZFZlcmlmaWNhdGlvbkxpbms6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX0lOVkFMSURfVkVSSUZJQ0FUSU9OX0xJTksnLFxuICAgIGhlbHA6ICdpbnZhbGlkIHZlcmlmaWNhdGlvbiBsaW5rIHBhZ2UgcGF0aCcsXG4gIH0sXG4gIGxpbmtTZW5kRmFpbDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DVVNUT01fUEFHRVNfTElOS19TRU5EX0ZBSUwnLFxuICAgIGhlbHA6ICd2ZXJpZmljYXRpb24gbGluayBzZW5kIGZhaWwgcGFnZSBwYXRoJyxcbiAgfSxcbiAgbGlua1NlbmRTdWNjZXNzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19MSU5LX1NFTkRfU1VDQ0VTUycsXG4gICAgaGVscDogJ3ZlcmlmaWNhdGlvbiBsaW5rIHNlbmQgc3VjY2VzcyBwYWdlIHBhdGgnLFxuICB9LFxuICBwYXJzZUZyYW1lVVJMOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19QQVJTRV9GUkFNRV9VUkwnLFxuICAgIGhlbHA6ICdmb3IgbWFza2luZyB1c2VyLWZhY2luZyBwYWdlcycsXG4gIH0sXG4gIHBhc3N3b3JkUmVzZXRTdWNjZXNzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19QQVNTV09SRF9SRVNFVF9TVUNDRVNTJyxcbiAgICBoZWxwOiAncGFzc3dvcmQgcmVzZXQgc3VjY2VzcyBwYWdlIHBhdGgnLFxuICB9LFxuICB2ZXJpZnlFbWFpbFN1Y2Nlc3M6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX1ZFUklGWV9FTUFJTF9TVUNDRVNTJyxcbiAgICBoZWxwOiAndmVyaWZ5IGVtYWlsIHN1Y2Nlc3MgcGFnZSBwYXRoJyxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5MaXZlUXVlcnlPcHRpb25zID0ge1xuICBjbGFzc05hbWVzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xJVkVRVUVSWV9DTEFTU05BTUVTJyxcbiAgICBoZWxwOiBcInBhcnNlLXNlcnZlcidzIExpdmVRdWVyeSBjbGFzc05hbWVzXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICB9LFxuICBwdWJTdWJBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xJVkVRVUVSWV9QVUJfU1VCX0FEQVBURVInLFxuICAgIGhlbHA6ICdMaXZlUXVlcnkgcHVic3ViIGFkYXB0ZXInLFxuICAgIGFjdGlvbjogcGFyc2Vycy5tb2R1bGVPck9iamVjdFBhcnNlcixcbiAgfSxcbiAgcmVkaXNPcHRpb25zOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xJVkVRVUVSWV9SRURJU19PUFRJT05TJyxcbiAgICBoZWxwOiBcInBhcnNlLXNlcnZlcidzIExpdmVRdWVyeSByZWRpc09wdGlvbnNcIixcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICB9LFxuICByZWRpc1VSTDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MSVZFUVVFUllfUkVESVNfVVJMJyxcbiAgICBoZWxwOiBcInBhcnNlLXNlcnZlcidzIExpdmVRdWVyeSByZWRpc1VSTFwiLFxuICB9LFxuICB3c3NBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xJVkVRVUVSWV9XU1NfQURBUFRFUicsXG4gICAgaGVscDogJ0FkYXB0ZXIgbW9kdWxlIGZvciB0aGUgV2ViU29ja2V0U2VydmVyJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubW9kdWxlT3JPYmplY3RQYXJzZXIsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuTGl2ZVF1ZXJ5U2VydmVyT3B0aW9ucyA9IHtcbiAgYXBwSWQ6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9BUFBfSUQnLFxuICAgIGhlbHA6XG4gICAgICAnVGhpcyBzdHJpbmcgc2hvdWxkIG1hdGNoIHRoZSBhcHBJZCBpbiB1c2UgYnkgeW91ciBQYXJzZSBTZXJ2ZXIuIElmIHlvdSBkZXBsb3kgdGhlIExpdmVRdWVyeSBzZXJ2ZXIgYWxvbmdzaWRlIFBhcnNlIFNlcnZlciwgdGhlIExpdmVRdWVyeSBzZXJ2ZXIgd2lsbCB0cnkgdG8gdXNlIHRoZSBzYW1lIGFwcElkLicsXG4gIH0sXG4gIGNhY2hlVGltZW91dDoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX0NBQ0hFX1RJTUVPVVQnLFxuICAgIGhlbHA6XG4gICAgICBcIk51bWJlciBpbiBtaWxsaXNlY29uZHMuIFdoZW4gY2xpZW50cyBwcm92aWRlIHRoZSBzZXNzaW9uVG9rZW4gdG8gdGhlIExpdmVRdWVyeSBzZXJ2ZXIsIHRoZSBMaXZlUXVlcnkgc2VydmVyIHdpbGwgdHJ5IHRvIGZldGNoIGl0cyBQYXJzZVVzZXIncyBvYmplY3RJZCBmcm9tIHBhcnNlIHNlcnZlciBhbmQgc3RvcmUgaXQgaW4gdGhlIGNhY2hlLiBUaGUgdmFsdWUgZGVmaW5lcyB0aGUgZHVyYXRpb24gb2YgdGhlIGNhY2hlLiBDaGVjayB0aGUgZm9sbG93aW5nIFNlY3VyaXR5IHNlY3Rpb24gYW5kIG91ciBwcm90b2NvbCBzcGVjaWZpY2F0aW9uIGZvciBkZXRhaWxzLCBkZWZhdWx0cyB0byA1ICogMTAwMCBtcyAoNSBzZWNvbmRzKS5cIixcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdjYWNoZVRpbWVvdXQnKSxcbiAgfSxcbiAga2V5UGFpcnM6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9LRVlfUEFJUlMnLFxuICAgIGhlbHA6XG4gICAgICAnQSBKU09OIG9iamVjdCB0aGF0IHNlcnZlcyBhcyBhIHdoaXRlbGlzdCBvZiBrZXlzLiBJdCBpcyB1c2VkIGZvciB2YWxpZGF0aW5nIGNsaWVudHMgd2hlbiB0aGV5IHRyeSB0byBjb25uZWN0IHRvIHRoZSBMaXZlUXVlcnkgc2VydmVyLiBDaGVjayB0aGUgZm9sbG93aW5nIFNlY3VyaXR5IHNlY3Rpb24gYW5kIG91ciBwcm90b2NvbCBzcGVjaWZpY2F0aW9uIGZvciBkZXRhaWxzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgfSxcbiAgbG9nTGV2ZWw6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9MT0dfTEVWRUwnLFxuICAgIGhlbHA6XG4gICAgICAnVGhpcyBzdHJpbmcgZGVmaW5lcyB0aGUgbG9nIGxldmVsIG9mIHRoZSBMaXZlUXVlcnkgc2VydmVyLiBXZSBzdXBwb3J0IFZFUkJPU0UsIElORk8sIEVSUk9SLCBOT05FLCBkZWZhdWx0cyB0byBJTkZPLicsXG4gIH0sXG4gIG1hc3RlcktleToge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX01BU1RFUl9LRVknLFxuICAgIGhlbHA6XG4gICAgICAnVGhpcyBzdHJpbmcgc2hvdWxkIG1hdGNoIHRoZSBtYXN0ZXJLZXkgaW4gdXNlIGJ5IHlvdXIgUGFyc2UgU2VydmVyLiBJZiB5b3UgZGVwbG95IHRoZSBMaXZlUXVlcnkgc2VydmVyIGFsb25nc2lkZSBQYXJzZSBTZXJ2ZXIsIHRoZSBMaXZlUXVlcnkgc2VydmVyIHdpbGwgdHJ5IHRvIHVzZSB0aGUgc2FtZSBtYXN0ZXJLZXkuJyxcbiAgfSxcbiAgcG9ydDoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX1BPUlQnLFxuICAgIGhlbHA6ICdUaGUgcG9ydCB0byBydW4gdGhlIExpdmVRdWVyeSBzZXJ2ZXIsIGRlZmF1bHRzIHRvIDEzMzcuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdwb3J0JyksXG4gICAgZGVmYXVsdDogMTMzNyxcbiAgfSxcbiAgcHViU3ViQWRhcHRlcjoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX1BVQl9TVUJfQURBUFRFUicsXG4gICAgaGVscDogJ0xpdmVRdWVyeSBwdWJzdWIgYWRhcHRlcicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICByZWRpc09wdGlvbnM6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9SRURJU19PUFRJT05TJyxcbiAgICBoZWxwOiBcInBhcnNlLXNlcnZlcidzIExpdmVRdWVyeSByZWRpc09wdGlvbnNcIixcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICB9LFxuICByZWRpc1VSTDoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX1JFRElTX1VSTCcsXG4gICAgaGVscDogXCJwYXJzZS1zZXJ2ZXIncyBMaXZlUXVlcnkgcmVkaXNVUkxcIixcbiAgfSxcbiAgc2VydmVyVVJMOiB7XG4gICAgZW52OiAnUEFSU0VfTElWRV9RVUVSWV9TRVJWRVJfU0VSVkVSX1VSTCcsXG4gICAgaGVscDpcbiAgICAgICdUaGlzIHN0cmluZyBzaG91bGQgbWF0Y2ggdGhlIHNlcnZlclVSTCBpbiB1c2UgYnkgeW91ciBQYXJzZSBTZXJ2ZXIuIElmIHlvdSBkZXBsb3kgdGhlIExpdmVRdWVyeSBzZXJ2ZXIgYWxvbmdzaWRlIFBhcnNlIFNlcnZlciwgdGhlIExpdmVRdWVyeSBzZXJ2ZXIgd2lsbCB0cnkgdG8gdXNlIHRoZSBzYW1lIHNlcnZlclVSTC4nLFxuICB9LFxuICB3ZWJzb2NrZXRUaW1lb3V0OiB7XG4gICAgZW52OiAnUEFSU0VfTElWRV9RVUVSWV9TRVJWRVJfV0VCU09DS0VUX1RJTUVPVVQnLFxuICAgIGhlbHA6XG4gICAgICAnTnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBiZXR3ZWVuIHBpbmcvcG9uZyBmcmFtZXMuIFRoZSBXZWJTb2NrZXQgc2VydmVyIHNlbmRzIHBpbmcvcG9uZyBmcmFtZXMgdG8gdGhlIGNsaWVudHMgdG8ga2VlcCB0aGUgV2ViU29ja2V0IGFsaXZlLiBUaGlzIHZhbHVlIGRlZmluZXMgdGhlIGludGVydmFsIG9mIHRoZSBwaW5nL3BvbmcgZnJhbWUgZnJvbSB0aGUgc2VydmVyIHRvIGNsaWVudHMsIGRlZmF1bHRzIHRvIDEwICogMTAwMCBtcyAoMTAgcykuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCd3ZWJzb2NrZXRUaW1lb3V0JyksXG4gIH0sXG4gIHdzc0FkYXB0ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9XU1NfQURBUFRFUicsXG4gICAgaGVscDogJ0FkYXB0ZXIgbW9kdWxlIGZvciB0aGUgV2ViU29ja2V0U2VydmVyJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubW9kdWxlT3JPYmplY3RQYXJzZXIsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuSWRlbXBvdGVuY3lPcHRpb25zID0ge1xuICBwYXRoczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FWFBFUklNRU5UQUxfSURFTVBPVEVOQ1lfUEFUSFMnLFxuICAgIGhlbHA6XG4gICAgICAnQW4gYXJyYXkgb2YgcGF0aHMgZm9yIHdoaWNoIHRoZSBmZWF0dXJlIHNob3VsZCBiZSBlbmFibGVkLiBUaGUgbW91bnQgcGF0aCBtdXN0IG5vdCBiZSBpbmNsdWRlZCwgZm9yIGV4YW1wbGUgaW5zdGVhZCBvZiBgL3BhcnNlL2Z1bmN0aW9ucy9teUZ1bmN0aW9uYCBzcGVjaWZpeSBgZnVuY3Rpb25zL215RnVuY3Rpb25gLiBUaGUgZW50cmllcyBhcmUgaW50ZXJwcmV0ZWQgYXMgcmVndWxhciBleHByZXNzaW9uLCBmb3IgZXhhbXBsZSBgZnVuY3Rpb25zLy4qYCBtYXRjaGVzIGFsbCBmdW5jdGlvbnMsIGBqb2JzLy4qYCBtYXRjaGVzIGFsbCBqb2JzLCBgY2xhc3Nlcy8uKmAgbWF0Y2hlcyBhbGwgY2xhc3NlcywgYC4qYCBtYXRjaGVzIGFsbCBwYXRocy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgICBkZWZhdWx0OiBbXSxcbiAgfSxcbiAgdHRsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VYUEVSSU1FTlRBTF9JREVNUE9URU5DWV9UVEwnLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIGR1cmF0aW9uIGluIHNlY29uZHMgYWZ0ZXIgd2hpY2ggYSByZXF1ZXN0IHJlY29yZCBpcyBkaXNjYXJkZWQgZnJvbSB0aGUgZGF0YWJhc2UsIGRlZmF1bHRzIHRvIDMwMHMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCd0dGwnKSxcbiAgICBkZWZhdWx0OiAzMDAsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuQWNjb3VudExvY2tvdXRPcHRpb25zID0ge1xuICBkdXJhdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BQ0NPVU5UX0xPQ0tPVVRfRFVSQVRJT04nLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRoZSBkdXJhdGlvbiBpbiBtaW51dGVzIHRoYXQgYSBsb2NrZWQtb3V0IGFjY291bnQgcmVtYWlucyBsb2NrZWQgb3V0IGJlZm9yZSBhdXRvbWF0aWNhbGx5IGJlY29taW5nIHVubG9ja2VkLjxicj48YnI+VmFsaWQgdmFsdWVzIGFyZSBncmVhdGVyIHRoYW4gYDBgIGFuZCBsZXNzIHRoYW4gYDEwMDAwMGAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdkdXJhdGlvbicpLFxuICB9LFxuICB0aHJlc2hvbGQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQUNDT1VOVF9MT0NLT1VUX1RIUkVTSE9MRCcsXG4gICAgaGVscDpcbiAgICAgICdTZXQgdGhlIG51bWJlciBvZiBmYWlsZWQgc2lnbi1pbiBhdHRlbXB0cyB0aGF0IHdpbGwgY2F1c2UgYSB1c2VyIGFjY291bnQgdG8gYmUgbG9ja2VkLiBJZiB0aGUgYWNjb3VudCBpcyBsb2NrZWQuIFRoZSBhY2NvdW50IHdpbGwgdW5sb2NrIGFmdGVyIHRoZSBkdXJhdGlvbiBzZXQgaW4gdGhlIGBkdXJhdGlvbmAgb3B0aW9uIGhhcyBwYXNzZWQgYW5kIG5vIGZ1cnRoZXIgbG9naW4gYXR0ZW1wdHMgaGF2ZSBiZWVuIG1hZGUuPGJyPjxicj5WYWxpZCB2YWx1ZXMgYXJlIGdyZWF0ZXIgdGhhbiBgMGAgYW5kIGxlc3MgdGhhbiBgMTAwMGAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCd0aHJlc2hvbGQnKSxcbiAgfSxcbiAgdW5sb2NrT25QYXNzd29yZFJlc2V0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FDQ09VTlRfTE9DS09VVF9VTkxPQ0tfT05fUEFTU1dPUkRfUkVTRVQnLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRvIGB0cnVlYCAgaWYgdGhlIGFjY291bnQgc2hvdWxkIGJlIHVubG9ja2VkIGFmdGVyIGEgc3VjY2Vzc2Z1bCBwYXNzd29yZCByZXNldC48YnI+PGJyPkRlZmF1bHQgaXMgYGZhbHNlYC48YnI+UmVxdWlyZXMgb3B0aW9ucyBgZHVyYXRpb25gIGFuZCBgdGhyZXNob2xkYCB0byBiZSBzZXQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5QYXNzd29yZFBvbGljeU9wdGlvbnMgPSB7XG4gIGRvTm90QWxsb3dVc2VybmFtZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQVNTV09SRF9QT0xJQ1lfRE9fTk9UX0FMTE9XX1VTRVJOQU1FJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0byBgdHJ1ZWAgdG8gZGlzYWxsb3cgdGhlIHVzZXJuYW1lIGFzIHBhcnQgb2YgdGhlIHBhc3N3b3JkLjxicj48YnI+RGVmYXVsdCBpcyBgZmFsc2VgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIG1heFBhc3N3b3JkQWdlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBU1NXT1JEX1BPTElDWV9NQVhfUEFTU1dPUkRfQUdFJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0aGUgbnVtYmVyIG9mIGRheXMgYWZ0ZXIgd2hpY2ggYSBwYXNzd29yZCBleHBpcmVzLiBMb2dpbiBhdHRlbXB0cyBmYWlsIGlmIHRoZSB1c2VyIGRvZXMgbm90IHJlc2V0IHRoZSBwYXNzd29yZCBiZWZvcmUgZXhwaXJhdGlvbi4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ21heFBhc3N3b3JkQWdlJyksXG4gIH0sXG4gIG1heFBhc3N3b3JkSGlzdG9yeToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQVNTV09SRF9QT0xJQ1lfTUFYX1BBU1NXT1JEX0hJU1RPUlknLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRoZSBudW1iZXIgb2YgcHJldmlvdXMgcGFzc3dvcmQgdGhhdCB3aWxsIG5vdCBiZSBhbGxvd2VkIHRvIGJlIHNldCBhcyBuZXcgcGFzc3dvcmQuIElmIHRoZSBvcHRpb24gaXMgbm90IHNldCBvciBzZXQgdG8gYDBgLCBubyBwcmV2aW91cyBwYXNzd29yZHMgd2lsbCBiZSBjb25zaWRlcmVkLjxicj48YnI+VmFsaWQgdmFsdWVzIGFyZSA+PSBgMGAgYW5kIDw9IGAyMGAuPGJyPkRlZmF1bHQgaXMgYDBgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignbWF4UGFzc3dvcmRIaXN0b3J5JyksXG4gIH0sXG4gIHJlc2V0VG9rZW5SZXVzZUlmVmFsaWQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFTU1dPUkRfUE9MSUNZX1JFU0VUX1RPS0VOX1JFVVNFX0lGX1ZBTElEJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0byBgdHJ1ZWAgaWYgYSBwYXNzd29yZCByZXNldCB0b2tlbiBzaG91bGQgYmUgcmV1c2VkIGluIGNhc2UgYW5vdGhlciB0b2tlbiBpcyByZXF1ZXN0ZWQgYnV0IHRoZXJlIGlzIGEgdG9rZW4gdGhhdCBpcyBzdGlsbCB2YWxpZCwgaS5lLiBoYXMgbm90IGV4cGlyZWQuIFRoaXMgYXZvaWRzIHRoZSBvZnRlbiBvYnNlcnZlZCBpc3N1ZSB0aGF0IGEgdXNlciByZXF1ZXN0cyBtdWx0aXBsZSBlbWFpbHMgYW5kIGRvZXMgbm90IGtub3cgd2hpY2ggbGluayBjb250YWlucyBhIHZhbGlkIHRva2VuIGJlY2F1c2UgZWFjaCBuZXdseSBnZW5lcmF0ZWQgdG9rZW4gd291bGQgaW52YWxpZGF0ZSB0aGUgcHJldmlvdXMgdG9rZW4uPGJyPjxicj5EZWZhdWx0IGlzIGBmYWxzZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgcmVzZXRUb2tlblZhbGlkaXR5RHVyYXRpb246IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFTU1dPUkRfUE9MSUNZX1JFU0VUX1RPS0VOX1ZBTElESVRZX0RVUkFUSU9OJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0aGUgdmFsaWRpdHkgZHVyYXRpb24gb2YgdGhlIHBhc3N3b3JkIHJlc2V0IHRva2VuIGluIHNlY29uZHMgYWZ0ZXIgd2hpY2ggdGhlIHRva2VuIGV4cGlyZXMuIFRoZSB0b2tlbiBpcyB1c2VkIGluIHRoZSBsaW5rIHRoYXQgaXMgc2V0IGluIHRoZSBlbWFpbC4gQWZ0ZXIgdGhlIHRva2VuIGV4cGlyZXMsIHRoZSBsaW5rIGJlY29tZXMgaW52YWxpZCBhbmQgYSBuZXcgbGluayBoYXMgdG8gYmUgc2VudC4gSWYgdGhlIG9wdGlvbiBpcyBub3Qgc2V0IG9yIHNldCB0byBgdW5kZWZpbmVkYCwgdGhlbiB0aGUgdG9rZW4gbmV2ZXIgZXhwaXJlcy48YnI+PGJyPkZvciBleGFtcGxlLCB0byBleHBpcmUgdGhlIHRva2VuIGFmdGVyIDIgaG91cnMsIHNldCBhIHZhbHVlIG9mIDcyMDAgc2Vjb25kcyAoPSA2MCBzZWNvbmRzICogNjAgbWludXRlcyAqIDIgaG91cnMpLjxicj48YnI+RGVmYXVsdCBpcyBgdW5kZWZpbmVkYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3Jlc2V0VG9rZW5WYWxpZGl0eUR1cmF0aW9uJyksXG4gIH0sXG4gIHZhbGlkYXRpb25FcnJvcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQVNTV09SRF9QT0xJQ1lfVkFMSURBVElPTl9FUlJPUicsXG4gICAgaGVscDpcbiAgICAgICdTZXQgdGhlIGVycm9yIG1lc3NhZ2UgdG8gYmUgc2VudC48YnI+PGJyPkRlZmF1bHQgaXMgYFBhc3N3b3JkIGRvZXMgbm90IG1lZXQgdGhlIFBhc3N3b3JkIFBvbGljeSByZXF1aXJlbWVudHMuYCcsXG4gIH0sXG4gIHZhbGlkYXRvckNhbGxiYWNrOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBU1NXT1JEX1BPTElDWV9WQUxJREFUT1JfQ0FMTEJBQ0snLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IGEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gdmFsaWRhdGUgYSBwYXNzd29yZCB0byBiZSBhY2NlcHRlZC48YnI+PGJyPklmIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBgdmFsaWRhdG9yUGF0dGVybmAsIHRoZSBwYXNzd29yZCBtdXN0IHBhc3MgYm90aCB0byBiZSBhY2NlcHRlZC4nLFxuICB9LFxuICB2YWxpZGF0b3JQYXR0ZXJuOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBU1NXT1JEX1BPTElDWV9WQUxJREFUT1JfUEFUVEVSTicsXG4gICAgaGVscDpcbiAgICAgICdTZXQgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiB2YWxpZGF0aW9uIHBhdHRlcm4gYSBwYXNzd29yZCBtdXN0IG1hdGNoIHRvIGJlIGFjY2VwdGVkLjxicj48YnI+SWYgdXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoIGB2YWxpZGF0b3JDYWxsYmFja2AsIHRoZSBwYXNzd29yZCBtdXN0IHBhc3MgYm90aCB0byBiZSBhY2NlcHRlZC4nLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLkZpbGVVcGxvYWRPcHRpb25zID0ge1xuICBlbmFibGVGb3JBbm9ueW1vdXNVc2VyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0ZJTEVfVVBMT0FEX0VOQUJMRV9GT1JfQU5PTllNT1VTX1VTRVInLFxuICAgIGhlbHA6ICdJcyB0cnVlIGlmIGZpbGUgdXBsb2FkIHNob3VsZCBiZSBhbGxvd2VkIGZvciBhbm9ueW1vdXMgdXNlcnMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgZW5hYmxlRm9yQXV0aGVudGljYXRlZFVzZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRklMRV9VUExPQURfRU5BQkxFX0ZPUl9BVVRIRU5USUNBVEVEX1VTRVInLFxuICAgIGhlbHA6ICdJcyB0cnVlIGlmIGZpbGUgdXBsb2FkIHNob3VsZCBiZSBhbGxvd2VkIGZvciBhdXRoZW50aWNhdGVkIHVzZXJzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgZW5hYmxlRm9yUHVibGljOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0ZJTEVfVVBMT0FEX0VOQUJMRV9GT1JfUFVCTElDJyxcbiAgICBoZWxwOiAnSXMgdHJ1ZSBpZiBmaWxlIHVwbG9hZCBzaG91bGQgYmUgYWxsb3dlZCBmb3IgYW55b25lLCByZWdhcmRsZXNzIG9mIHVzZXIgYXV0aGVudGljYXRpb24uJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5EYXRhYmFzZU9wdGlvbnMgPSB7XG4gIGVuYWJsZVNjaGVtYUhvb2tzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0VOQUJMRV9TQ0hFTUFfSE9PS1MnLFxuICAgIGhlbHA6XG4gICAgICAnRW5hYmxlcyBkYXRhYmFzZSByZWFsLXRpbWUgaG9va3MgdG8gdXBkYXRlIHNpbmdsZSBzY2hlbWEgY2FjaGUuIFNldCB0byBgdHJ1ZWAgaWYgdXNpbmcgbXVsdGlwbGUgUGFyc2UgU2VydmVycyBpbnN0YW5jZXMgY29ubmVjdGVkIHRvIHRoZSBzYW1lIGRhdGFiYXNlLiBGYWlsaW5nIHRvIGRvIHNvIHdpbGwgY2F1c2UgYSBzY2hlbWEgY2hhbmdlIHRvIG5vdCBwcm9wYWdhdGUgdG8gYWxsIGluc3RhbmNlcyBhbmQgcmUtc3luY2luZyB3aWxsIG9ubHkgaGFwcGVuIHdoZW4gdGhlIGluc3RhbmNlcyByZXN0YXJ0LiBUbyB1c2UgdGhpcyBmZWF0dXJlIHdpdGggTW9uZ29EQiwgYSByZXBsaWNhIHNldCBjbHVzdGVyIHdpdGggW2NoYW5nZSBzdHJlYW1dKGh0dHBzOi8vZG9jcy5tb25nb2RiLmNvbS9tYW51YWwvY2hhbmdlU3RyZWFtcy8jYXZhaWxhYmlsaXR5KSBzdXBwb3J0IGlzIHJlcXVpcmVkLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG59O1xuIl19