@wppconnect/server 2.8.11 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,27 +1,21 @@
1
- ## <small>2.8.11 (2026-01-05)</small>
2
-
3
- * chore: fixed npm publish ([317b05b](https://github.com/wppconnect-team/wppconnect-server/commit/317b05b))
1
+ # 2.9.0 (2026-03-06)
4
2
 
3
+ ## <small>2.8.11 (2026-01-05)</small>
5
4
 
5
+ - chore: fixed npm publish ([317b05b](https://github.com/wppconnect-team/wppconnect-server/commit/317b05b))
6
6
 
7
7
  ## <small>2.8.10 (2025-12-10)</small>
8
8
 
9
- * Merge branch 'main' of github.com:wppconnect-team/wppconnect-server ([39f6934](https://github.com/wppconnect-team/wppconnect-server/commit/39f6934))
10
-
11
-
9
+ - Merge branch 'main' of github.com:wppconnect-team/wppconnect-server ([39f6934](https://github.com/wppconnect-team/wppconnect-server/commit/39f6934))
12
10
 
13
11
  ## <small>2.8.9 (2025-12-10)</small>
14
12
 
15
- * Merge branch 'main' of github.com:wppconnect-team/wppconnect-server ([d42852d](https://github.com/wppconnect-team/wppconnect-server/commit/d42852d))
16
-
17
-
13
+ - Merge branch 'main' of github.com:wppconnect-team/wppconnect-server ([d42852d](https://github.com/wppconnect-team/wppconnect-server/commit/d42852d))
18
14
 
19
15
  ## <small>2.8.8 (2025-12-10)</small>
20
16
 
21
- * docs: Improovment on docs ([7f2b3d3](https://github.com/wppconnect-team/wppconnect-server/commit/7f2b3d3))
22
- * fix: update yarn cache setup to use Corepack and simplify cache paths ([e6c97e1](https://github.com/wppconnect-team/wppconnect-server/commit/e6c97e1))
23
-
24
-
17
+ - docs: Improovment on docs ([7f2b3d3](https://github.com/wppconnect-team/wppconnect-server/commit/7f2b3d3))
18
+ - fix: update yarn cache setup to use Corepack and simplify cache paths ([e6c97e1](https://github.com/wppconnect-team/wppconnect-server/commit/e6c97e1))
25
19
 
26
20
  ## 2.8.7 (2025-11-25)
27
21
 
@@ -1006,9 +1006,9 @@ async function forwardMessages(req, res) {
1006
1006
  let response;
1007
1007
 
1008
1008
  if (!isGroup) {
1009
- response = await req.client.forwardMessage(`${phone[0]}`, messageId);
1009
+ response = await req.client.forwardMessagesV2(`${phone[0]}`, messageId);
1010
1010
  } else {
1011
- response = await req.client.forwardMessage(`${phone[0]}`, messageId);
1011
+ response = await req.client.forwardMessagesV2(`${phone[0]}`, messageId);
1012
1012
  }
1013
1013
 
1014
1014
  res.status(201).json({ status: 'success', response: response });
@@ -2345,4 +2345,4 @@ async function getPlatformFromMessage(req, res) {
2345
2345
  });
2346
2346
  }
2347
2347
  }
2348
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnVuY3Rpb25zIiwicmVxdWlyZSIsIl9zZXNzaW9uVXRpbCIsInJldHVyblN1Y2VzcyIsInJlcyIsInNlc3Npb24iLCJwaG9uZSIsImRhdGEiLCJzdGF0dXMiLCJqc29uIiwicmVzcG9uc2UiLCJtZXNzYWdlIiwiY29udGFjdCIsInJldHVybkVycm9yIiwicmVxIiwiZXJyb3IiLCJsb2dnZXIiLCJsb2ciLCJzZXRQcm9maWxlTmFtZSIsIm5hbWUiLCJib2R5IiwicmVzdWx0IiwiY2xpZW50Iiwic2hvd0FsbENvbnRhY3RzIiwiY29udGFjdHMiLCJnZXRBbGxDb250YWN0cyIsImdldEFsbENoYXRzIiwibWFwcGVyIiwiZSIsImxpc3RDaGF0cyIsImlkIiwiY291bnQiLCJkaXJlY3Rpb24iLCJvbmx5R3JvdXBzIiwib25seVVzZXJzIiwib25seVdpdGhVbnJlYWRNZXNzYWdlIiwid2l0aExhYmVscyIsImdldEFsbENoYXRzV2l0aE1lc3NhZ2VzIiwiZ2V0QWxsTWVzc2FnZXNJbkNoYXQiLCJwYXJhbXMiLCJpc0dyb3VwIiwiaW5jbHVkZU1lIiwiaW5jbHVkZU5vdGlmaWNhdGlvbnMiLCJxdWVyeSIsImNvbnRhdG8iLCJjb250YWN0VG9BcnJheSIsImdldEFsbE5ld01lc3NhZ2VzIiwiZ2V0QWxsVW5yZWFkTWVzc2FnZXMiLCJnZXRDaGF0QnlJZCIsImdldE1lc3NhZ2VCeUlkIiwibWVzc2FnZUlkIiwiY2hhdElkIiwidXNlciIsImdldEJhdHRlcnlMZXZlbCIsImdldEhvc3REZXZpY2UiLCJwaG9uZU51bWJlciIsImdldFdpZCIsImdldFBob25lTnVtYmVyIiwiZ2V0QmxvY2tMaXN0IiwiYmxvY2tlZCIsIm1hcCIsInNwbGl0IiwiZGVsZXRlQ2hhdCIsInJlc3VsdHMiLCJkZWxldGVBbGxDaGF0cyIsImNoYXRzIiwiY2hhdCIsImNsZWFyQ2hhdCIsImNsZWFyQWxsQ2hhdHMiLCJhcmNoaXZlQ2hhdCIsInZhbHVlIiwiYXJjaGl2ZUFsbENoYXRzIiwiZ2V0QWxsQ2hhdHNBcmNoaXZlZHMiLCJhcmNoaXZlZCIsImFyY2hpdmUiLCJwdXNoIiwiZGVsZXRlTWVzc2FnZSIsImRlbGV0ZU1lZGlhSW5EZXZpY2UiLCJvbmx5TG9jYWwiLCJyZWFjdE1lc3NhZ2UiLCJtc2dJZCIsInJlYWN0aW9uIiwic2VuZFJlYWN0aW9uVG9NZXNzYWdlIiwicmVwbHkiLCJ0ZXh0IiwibWVzc2FnZWlkIiwiZm9yd2FyZE1lc3NhZ2VzIiwiZm9yd2FyZE1lc3NhZ2UiLCJtYXJrVW5zZWVuTWVzc2FnZSIsImJsb2NrQ29udGFjdCIsInVuYmxvY2tDb250YWN0IiwicGluQ2hhdCIsInN0YXRlIiwic2V0UHJvZmlsZVBpYyIsImZpbGUiLCJwYXRoIiwicGF0aEZpbGUiLCJ1bmxpbmtBc3luYyIsImdldFVucmVhZE1lc3NhZ2VzIiwiZ2V0Q2hhdElzT25saW5lIiwiZ2V0TGFzdFNlZW4iLCJnZXRMaXN0TXV0ZXMiLCJ0eXBlIiwibG9hZEFuZEdldEFsbE1lc3NhZ2VzSW5DaGF0IiwiZ2V0TWVzc2FnZXMiLCJwYXJzZUludCIsInRvU3RyaW5nIiwic2VuZENvbnRhY3RWY2FyZCIsImNvbnRhY3RzSWQiLCJzZW5kTXV0ZSIsInRpbWUiLCJzZW5kU2VlbiIsInNldENoYXRTdGF0ZSIsImNoYXRzdGF0ZSIsInNldFRlbXBvcmFyeU1lc3NhZ2VzIiwic2V0VHlwaW5nIiwic3RhcnRUeXBpbmciLCJzdG9wVHlwaW5nIiwic2V0UmVjb3JkaW5nIiwiZHVyYXRpb24iLCJzdGFydFJlY29yZGluZyIsInN0b3BSZWNvcmRpbmciLCJjaGVja051bWJlclN0YXR1cyIsImdldENvbnRhY3QiLCJnZXROdW1iZXJQcm9maWxlIiwiZ2V0UHJvZmlsZVBpY0Zyb21TZXJ2ZXIiLCJnZXRTdGF0dXMiLCJzZXRQcm9maWxlU3RhdHVzIiwicmVqZWN0Q2FsbCIsImNhbGxJZCIsInN0YXJNZXNzYWdlIiwic3RhciIsImdldFJlYWN0aW9ucyIsImdldFZvdGVzIiwiY2hhdFdvb3QiLCJjbGllbnRzQXJyYXkiLCJpc0Nvbm5lY3RlZCIsImV2ZW50IiwiaXNfcHJpdmF0ZSIsInByaXZhdGUiLCJtZXNzYWdlX3R5cGUiLCJjb252ZXJzYXRpb24iLCJtZXRhIiwic2VuZGVyIiwicGhvbmVfbnVtYmVyIiwicmVwbGFjZSIsIm1lc3NhZ2VzIiwiYXR0YWNobWVudHMiLCJiYXNlX3VybCIsImNvbmZpZyIsImJhc2VVUkwiLCJkYXRhX3VybCIsInN1YnN0cmluZyIsImluZGV4T2YiLCJmaWxlX3R5cGUiLCJzZW5kUHR0IiwiY29udGVudCIsInNlbmRGaWxlIiwic2VuZFRleHQiLCJjb25zb2xlIiwiZ2V0UGxhdGZvcm1Gcm9tTWVzc2FnZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cm9sbGVyL2RldmljZUNvbnRyb2xsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQ2hhdCB9IGZyb20gJ0B3cHBjb25uZWN0LXRlYW0vd3BwY29ubmVjdCc7XG5pbXBvcnQgeyBSZXF1ZXN0LCBSZXNwb25zZSB9IGZyb20gJ2V4cHJlc3MnO1xuXG5pbXBvcnQgeyBjb250YWN0VG9BcnJheSwgdW5saW5rQXN5bmMgfSBmcm9tICcuLi91dGlsL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBjbGllbnRzQXJyYXkgfSBmcm9tICcuLi91dGlsL3Nlc3Npb25VdGlsJztcblxuZnVuY3Rpb24gcmV0dXJuU3VjZXNzKHJlczogYW55LCBzZXNzaW9uOiBhbnksIHBob25lOiBhbnksIGRhdGE6IGFueSkge1xuICByZXMuc3RhdHVzKDIwMSkuanNvbih7XG4gICAgc3RhdHVzOiAnU3VjY2VzcycsXG4gICAgcmVzcG9uc2U6IHtcbiAgICAgIG1lc3NhZ2U6ICdJbmZvcm1hdGlvbiByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5LicsXG4gICAgICBjb250YWN0OiBwaG9uZSxcbiAgICAgIHNlc3Npb246IHNlc3Npb24sXG4gICAgICBkYXRhOiBkYXRhLFxuICAgIH0sXG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZXR1cm5FcnJvcihyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UsIHNlc3Npb246IGFueSwgZXJyb3I6IGFueSkge1xuICByZXEubG9nZ2VyLmVycm9yKGVycm9yKTtcbiAgcmVzLnN0YXR1cyg0MDApLmpzb24oe1xuICAgIHN0YXR1czogJ0Vycm9yJyxcbiAgICByZXNwb25zZToge1xuICAgICAgbWVzc2FnZTogJ0Vycm9yIHJldHJpZXZpbmcgaW5mb3JtYXRpb24nLFxuICAgICAgc2Vzc2lvbjogc2Vzc2lvbixcbiAgICAgIGxvZzogZXJyb3IsXG4gICAgfSxcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRQcm9maWxlTmFtZShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJQcm9maWxlXCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgXCJAY29udGVudFwiOiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICBuYW1lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4YW1wbGVzOiB7XG4gICAgICAgICAgICBcIkRlZmF1bHRcIjoge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwiTXkgbmV3IG5hbWVcIixcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBuYW1lIH0gPSByZXEuYm9keTtcblxuICBpZiAoIW5hbWUpXG4gICAgcmVzXG4gICAgICAuc3RhdHVzKDQwMClcbiAgICAgIC5qc29uKHsgc3RhdHVzOiAnZXJyb3InLCBtZXNzYWdlOiAnUGFyYW1ldGVyIG5hbWUgaXMgcmVxdWlyZWQhJyB9KTtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlcS5jbGllbnQuc2V0UHJvZmlsZU5hbWUobmFtZSk7XG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3VsdCB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGVycm9yKTtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiAnRXJyb3Igb24gc2V0IHByb2ZpbGUgbmFtZS4nLFxuICAgICAgZXJyb3I6IGVycm9yLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaG93QWxsQ29udGFjdHMocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiQ29udGFjdHNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICovXG4gIHRyeSB7XG4gICAgY29uc3QgY29udGFjdHMgPSBhd2FpdCByZXEuY2xpZW50LmdldEFsbENvbnRhY3RzKCk7XG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IGNvbnRhY3RzIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6ICdFcnJvciBmZXRjaGluZyBjb250YWN0cycsXG4gICAgICBlcnJvcjogZXJyb3IsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEFsbENoYXRzKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICogI3N3YWdnZXIudGFncyA9IFtcIkNoYXRcIl1cbiAgICogI3N3YWdnZXIuc3VtbWFyeSA9ICdEZXByZWNhdGVkIGluIGZhdm9yIG9mICdsaXN0LWNoYXRzJ1xuICAgKiAjc3dhZ2dlci5kZXByZWNhdGVkID0gdHJ1ZVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgKi9cbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuZ2V0QWxsQ2hhdHMoKTtcbiAgICByZXNcbiAgICAgIC5zdGF0dXMoMjAwKVxuICAgICAgLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlLCBtYXBwZXI6ICdjaGF0JyB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gICAgcmVzXG4gICAgICAuc3RhdHVzKDUwMClcbiAgICAgIC5qc29uKHsgc3RhdHVzOiAnZXJyb3InLCBtZXNzYWdlOiAnRXJyb3Igb24gZ2V0IGFsbCBjaGF0cycgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxpc3RDaGF0cyhyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJDaGF0XCJdXG4gICAqICNzd2FnZ2VyLnN1bW1hcnkgPSAnUmV0cmlldmUgYSBsaXN0IG9mIGNoYXRzJ1xuICAgKiAjc3dhZ2dlci5kZXNjcmlwdGlvbiA9ICdUaGlzIGJvZHkgaXMgbm90IHJlcXVpcmVkLiBOb3Qgc2VudCBib2R5IHRvIGdldCBhbGwgY2hhdHMgb3IgZmlsdGVyLidcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIGlkOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgY291bnQ6IHsgdHlwZTogXCJudW1iZXJcIiB9LFxuICAgICAgICAgICAgICBkaXJlY3Rpb246IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBvbmx5R3JvdXBzOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICAgIG9ubHlVc2VyczogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgICBvbmx5V2l0aFVucmVhZE1lc3NhZ2U6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgICAgd2l0aExhYmVsczogeyB0eXBlOiBcImFycmF5XCIgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4YW1wbGVzOiB7XG4gICAgICAgICAgICBcIkFsbCBvcHRpb25zIC0gRWRpdCB0aGlzXCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBpZDogXCI8Y2hhdElkPlwiLFxuICAgICAgICAgICAgICAgIGNvdW50OiAyMCxcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IFwiYWZ0ZXJcIixcbiAgICAgICAgICAgICAgICBvbmx5R3JvdXBzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBvbmx5VXNlcnM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIG9ubHlXaXRoVW5yZWFkTWVzc2FnZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgd2l0aExhYmVsczogW11cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiQWxsIGNoYXRzXCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiQ2hhdHMgZ3JvdXBcIjoge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIG9ubHlHcm91cHM6IHRydWUsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIk9ubHkgd2l0aCB1bnJlYWQgbWVzc2FnZXNcIjoge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIG9ubHlXaXRoVW5yZWFkTWVzc2FnZTogZmFsc2UsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlBhZ2luYXRlZCByZXN1bHRzXCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBpZDogXCI8Y2hhdElkPlwiLFxuICAgICAgICAgICAgICAgIGNvdW50OiAyMCxcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IFwiYWZ0ZXJcIixcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgdHJ5IHtcbiAgICBjb25zdCB7XG4gICAgICBpZCxcbiAgICAgIGNvdW50LFxuICAgICAgZGlyZWN0aW9uLFxuICAgICAgb25seUdyb3VwcyxcbiAgICAgIG9ubHlVc2VycyxcbiAgICAgIG9ubHlXaXRoVW5yZWFkTWVzc2FnZSxcbiAgICAgIHdpdGhMYWJlbHMsXG4gICAgfSA9IHJlcS5ib2R5O1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXEuY2xpZW50Lmxpc3RDaGF0cyh7XG4gICAgICBpZDogaWQsXG4gICAgICBjb3VudDogY291bnQsXG4gICAgICBkaXJlY3Rpb246IGRpcmVjdGlvbixcbiAgICAgIG9ubHlHcm91cHM6IG9ubHlHcm91cHMsXG4gICAgICBvbmx5VXNlcnM6IG9ubHlVc2VycyxcbiAgICAgIG9ubHlXaXRoVW5yZWFkTWVzc2FnZTogb25seVdpdGhVbnJlYWRNZXNzYWdlLFxuICAgICAgd2l0aExhYmVsczogd2l0aExhYmVscyxcbiAgICB9KTtcblxuICAgIHJlcy5zdGF0dXMoMjAwKS5qc29uKHJlc3BvbnNlKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gICAgcmVzXG4gICAgICAuc3RhdHVzKDUwMClcbiAgICAgIC5qc29uKHsgc3RhdHVzOiAnZXJyb3InLCBtZXNzYWdlOiAnRXJyb3Igb24gZ2V0IGFsbCBjaGF0cycgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEFsbENoYXRzV2l0aE1lc3NhZ2VzKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICogI3N3YWdnZXIudGFncyA9IFtcIkNoYXRcIl1cbiAgICogI3N3YWdnZXIuc3VtbWFyeSA9ICdEZXByZWNhdGVkIGluIGZhdm9yIG9mIGxpc3QtY2hhdHMnXG4gICAqICNzd2FnZ2VyLmRlcHJlY2F0ZWQgPSB0cnVlXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAqL1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5saXN0Q2hhdHMoKTtcbiAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogcmVzcG9uc2UgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6ICdFcnJvciBvbiBnZXQgYWxsIGNoYXRzIHdoaXQgbWVzc2FnZXMnLFxuICAgICAgZXJyb3I6IGUsXG4gICAgfSk7XG4gIH1cbn1cbi8qKlxuICogRGVwcmVjaWFkbyBlbSBmYXZvciBkZSBnZXRNZXNzYWdlc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QWxsTWVzc2FnZXNJbkNoYXQocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiQ2hhdFwiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wicGhvbmVcIl0gPSB7XG4gICAgICBzY2hlbWE6ICc1NTIxOTk5OTk5OTk5J1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJpc0dyb3VwXCJdID0ge1xuICAgICAgc2NoZW1hOiAnZmFsc2UnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcImluY2x1ZGVNZVwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ3RydWUnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcImluY2x1ZGVOb3RpZmljYXRpb25zXCJdID0ge1xuICAgICAgc2NoZW1hOiAndHJ1ZSdcbiAgICAgfVxuICAgKi9cbiAgdHJ5IHtcbiAgICBjb25zdCB7IHBob25lIH0gPSByZXEucGFyYW1zO1xuICAgIGNvbnN0IHtcbiAgICAgIGlzR3JvdXAgPSBmYWxzZSxcbiAgICAgIGluY2x1ZGVNZSA9IHRydWUsXG4gICAgICBpbmNsdWRlTm90aWZpY2F0aW9ucyA9IHRydWUsXG4gICAgfSA9IHJlcS5xdWVyeTtcblxuICAgIGxldCByZXNwb25zZTtcbiAgICBmb3IgKGNvbnN0IGNvbnRhdG8gb2YgY29udGFjdFRvQXJyYXkocGhvbmUsIGlzR3JvdXAgYXMgYm9vbGVhbikpIHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5nZXRBbGxNZXNzYWdlc0luQ2hhdChcbiAgICAgICAgY29udGF0byxcbiAgICAgICAgaW5jbHVkZU1lIGFzIGJvb2xlYW4sXG4gICAgICAgIGluY2x1ZGVOb3RpZmljYXRpb25zIGFzIGJvb2xlYW5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiAnRXJyb3Igb24gZ2V0IGFsbCBtZXNzYWdlcyBpbiBjaGF0JyxcbiAgICAgIGVycm9yOiBlLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBbGxOZXdNZXNzYWdlcyhyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJDaGF0XCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAqL1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5nZXRBbGxOZXdNZXNzYWdlcygpO1xuICAgIHJlcy5zdGF0dXMoMjAwKS5qc29uKHsgc3RhdHVzOiAnc3VjY2VzcycsIHJlc3BvbnNlOiByZXNwb25zZSB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gICAgcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm9yIG9uIGdldCBhbGwgbWVzc2FnZXMgaW4gY2hhdCcsXG4gICAgICBlcnJvcjogZSxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QWxsVW5yZWFkTWVzc2FnZXMocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiQ2hhdFwiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgKi9cbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuZ2V0QWxsVW5yZWFkTWVzc2FnZXMoKTtcbiAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogcmVzcG9uc2UgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6ICdFcnJvciBvbiBnZXQgYWxsIG1lc3NhZ2VzIGluIGNoYXQnLFxuICAgICAgZXJyb3I6IGUsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldENoYXRCeUlkKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICogI3N3YWdnZXIudGFncyA9IFtcIkNoYXRcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInBob25lXCJdID0ge1xuICAgICAgc2NoZW1hOiAnNTUyMTk5OTk5OTk5OSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wiaXNHcm91cFwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ2ZhbHNlJ1xuICAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lIH0gPSByZXEucGFyYW1zO1xuICBjb25zdCB7IGlzR3JvdXAgfSA9IHJlcS5xdWVyeTtcblxuICB0cnkge1xuICAgIGxldCByZXN1bHQgPSB7fSBhcyBDaGF0O1xuICAgIGlmIChpc0dyb3VwKSB7XG4gICAgICByZXN1bHQgPSBhd2FpdCByZXEuY2xpZW50LmdldENoYXRCeUlkKGAke3Bob25lfUBnLnVzYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IGF3YWl0IHJlcS5jbGllbnQuZ2V0Q2hhdEJ5SWQoYCR7cGhvbmV9QGMudXNgKTtcbiAgICB9XG5cbiAgICByZXMuc3RhdHVzKDIwMCkuanNvbihyZXN1bHQpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiAnRXJyb3IgY2hhbmdpbmcgY2hhdCBieSBJZCcsXG4gICAgICBlcnJvcjogZSxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TWVzc2FnZUJ5SWQocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiQ2hhdFwiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wibWVzc2FnZUlkXCJdID0ge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBzY2hlbWE6ICc8bWVzc2FnZV9pZD4nXG4gICAgIH1cbiAgICovXG4gIGNvbnN0IHNlc3Npb24gPSByZXEuc2Vzc2lvbjtcbiAgY29uc3QgeyBtZXNzYWdlSWQgfSA9IHJlcS5wYXJhbXM7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXEuY2xpZW50LmdldE1lc3NhZ2VCeUlkKG1lc3NhZ2VJZCk7XG5cbiAgICByZXR1cm5TdWNlc3MocmVzLCBzZXNzaW9uLCAocmVzdWx0IGFzIGFueSkuY2hhdElkLnVzZXIsIHJlc3VsdCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuRXJyb3IocmVxLCByZXMsIHNlc3Npb24sIGVycm9yKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QmF0dGVyeUxldmVsKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICogI3N3YWdnZXIudGFncyA9IFtcIk1pc2NcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICovXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXEuY2xpZW50LmdldEJhdHRlcnlMZXZlbCgpO1xuICAgIHJlcy5zdGF0dXMoMjAwKS5qc29uKHsgc3RhdHVzOiAnU3VjY2VzcycsIHJlc3BvbnNlOiByZXNwb25zZSB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gICAgcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm9yIHJldHJpZXZpbmcgYmF0dGVyeSBzdGF0dXMnLFxuICAgICAgZXJyb3I6IGUsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEhvc3REZXZpY2UocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiTWlzY1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgKi9cbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuZ2V0SG9zdERldmljZSgpO1xuICAgIGNvbnN0IHBob25lTnVtYmVyID0gYXdhaXQgcmVxLmNsaWVudC5nZXRXaWQoKTtcbiAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcbiAgICAgIHJlc3BvbnNlOiB7IC4uLnJlc3BvbnNlLCBwaG9uZU51bWJlciB9LFxuICAgICAgbWFwcGVyOiAnZGV2aWNlJyxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gICAgcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm8gYW8gcmVjdXBlcmFyIGRhZG9zIGRvIHRlbGVmb25lJyxcbiAgICAgIGVycm9yOiBlLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQaG9uZU51bWJlcihyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJNaXNjXCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAqL1xuICB0cnkge1xuICAgIGNvbnN0IHBob25lTnVtYmVyID0gYXdhaXQgcmVxLmNsaWVudC5nZXRXaWQoKTtcbiAgICByZXNcbiAgICAgIC5zdGF0dXMoMjAwKVxuICAgICAgLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHBob25lTnVtYmVyLCBtYXBwZXI6ICdkZXZpY2UnIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiAnRXJyb3IgcmV0cmlldmluZyBwaG9uZSBudW1iZXInLFxuICAgICAgZXJyb3I6IGUsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEJsb2NrTGlzdChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJNaXNjXCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAqL1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuZ2V0QmxvY2tMaXN0KCk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBibG9ja2VkID0gcmVzcG9uc2UubWFwKChjb250YXRvOiBhbnkpID0+IHtcbiAgICAgIHJldHVybiB7IHBob25lOiBjb250YXRvID8gY29udGF0by5zcGxpdCgnQCcpWzBdIDogJycgfTtcbiAgICB9KTtcblxuICAgIHJlcy5zdGF0dXMoMjAwKS5qc29uKHsgc3RhdHVzOiAnc3VjY2VzcycsIHJlc3BvbnNlOiBibG9ja2VkIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiAnRXJyb3IgcmV0cmlldmluZyBibG9ja2VkIGNvbnRhY3QgbGlzdCcsXG4gICAgICBlcnJvcjogZSxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlQ2hhdChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJDaGF0XCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgXCJAY29udGVudFwiOiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICBwaG9uZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIGlzR3JvdXA6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4YW1wbGVzOiB7XG4gICAgICAgICAgICBcIkRlZmF1bHRcIjoge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIHBob25lOiBcIjU1MjE5OTk5OTk5OTlcIixcbiAgICAgICAgICAgICAgICBpc0dyb3VwOiBmYWxzZSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSB9ID0gcmVxLmJvZHk7XG4gIGNvbnN0IHNlc3Npb24gPSByZXEuc2Vzc2lvbjtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdHM6IGFueSA9IHt9O1xuICAgIGZvciAoY29uc3QgY29udGF0byBvZiBwaG9uZSkge1xuICAgICAgcmVzdWx0c1tjb250YXRvXSA9IGF3YWl0IHJlcS5jbGllbnQuZGVsZXRlQ2hhdChjb250YXRvKTtcbiAgICB9XG4gICAgcmV0dXJuU3VjZXNzKHJlcywgc2Vzc2lvbiwgcGhvbmUsIHJlc3VsdHMpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybkVycm9yKHJlcSwgcmVzLCBzZXNzaW9uLCBlcnJvcik7XG4gIH1cbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxldGVBbGxDaGF0cyhyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJDaGF0XCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAqL1xuICB0cnkge1xuICAgIGNvbnN0IGNoYXRzID0gYXdhaXQgcmVxLmNsaWVudC5nZXRBbGxDaGF0cygpO1xuICAgIGZvciAoY29uc3QgY2hhdCBvZiBjaGF0cykge1xuICAgICAgYXdhaXQgcmVxLmNsaWVudC5kZWxldGVDaGF0KChjaGF0IGFzIGFueSkuY2hhdElkKTtcbiAgICB9XG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJyB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGVycm9yKTtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiAnRXJyb3Igb24gZGVsZXRlIGFsbCBjaGF0cycsXG4gICAgICBlcnJvcjogZXJyb3IsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNsZWFyQ2hhdChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJDaGF0XCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgIFxuICAgICAjc3dhZ2dlci5yZXF1ZXN0Qm9keSA9IHtcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgcGhvbmU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBpc0dyb3VwOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBwaG9uZTogXCI1NTIxOTk5OTk5OTk5XCIsXG4gICAgICAgICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgIH1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUgfSA9IHJlcS5ib2R5O1xuICBjb25zdCBzZXNzaW9uID0gcmVxLnNlc3Npb247XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHRzOiBhbnkgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGNvbnRhdG8gb2YgcGhvbmUpIHtcbiAgICAgIHJlc3VsdHNbY29udGF0b10gPSBhd2FpdCByZXEuY2xpZW50LmNsZWFyQ2hhdChjb250YXRvKTtcbiAgICB9XG4gICAgcmV0dXJuU3VjZXNzKHJlcywgc2Vzc2lvbiwgcGhvbmUsIHJlc3VsdHMpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybkVycm9yKHJlcSwgcmVzLCBzZXNzaW9uLCBlcnJvcik7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNsZWFyQWxsQ2hhdHMocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiQ2hhdFwiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgKi9cbiAgdHJ5IHtcbiAgICBjb25zdCBjaGF0cyA9IGF3YWl0IHJlcS5jbGllbnQuZ2V0QWxsQ2hhdHMoKTtcbiAgICBmb3IgKGNvbnN0IGNoYXQgb2YgY2hhdHMpIHtcbiAgICAgIGF3YWl0IHJlcS5jbGllbnQuY2xlYXJDaGF0KGAkeyhjaGF0IGFzIGFueSkuY2hhdElkfWApO1xuICAgIH1cbiAgICByZXMuc3RhdHVzKDIwMSkuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXNcbiAgICAgIC5zdGF0dXMoNTAwKVxuICAgICAgLmpzb24oeyBzdGF0dXM6ICdlcnJvcicsIG1lc3NhZ2U6ICdFcnJvciBvbiBjbGVhciBhbGwgY2hhdHMnLCBlcnJvcjogZSB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXJjaGl2ZUNoYXQocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiQ2hhdFwiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICBcbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIHBob25lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgaXNHcm91cDogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgICB2YWx1ZTogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgIFwiRGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgcGhvbmU6IFwiNTUyMTk5OTk5OTk5OVwiLFxuICAgICAgICAgICAgICAgIGlzR3JvdXA6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lLCB2YWx1ZSA9IHRydWUgfSA9IHJlcS5ib2R5O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXEuY2xpZW50LmFyY2hpdmVDaGF0KGAke3Bob25lfWAsIHZhbHVlKTtcbiAgICByZXMuc3RhdHVzKDIwMSkuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogcmVzcG9uc2UgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIHJlc1xuICAgICAgLnN0YXR1cyg1MDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ2Vycm9yJywgbWVzc2FnZTogJ0Vycm9yIG9uIGFyY2hpdmUgY2hhdCcsIGVycm9yOiBlIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhcmNoaXZlQWxsQ2hhdHMocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiQ2hhdFwiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgKi9cbiAgdHJ5IHtcbiAgICBjb25zdCBjaGF0cyA9IGF3YWl0IHJlcS5jbGllbnQuZ2V0QWxsQ2hhdHMoKTtcbiAgICBmb3IgKGNvbnN0IGNoYXQgb2YgY2hhdHMpIHtcbiAgICAgIGF3YWl0IHJlcS5jbGllbnQuYXJjaGl2ZUNoYXQoYCR7KGNoYXQgYXMgYW55KS5jaGF0SWR9YCwgdHJ1ZSk7XG4gICAgfVxuICAgIHJlcy5zdGF0dXMoMjAxKS5qc29uKHsgc3RhdHVzOiAnc3VjY2VzcycgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6ICdFcnJvciBvbiBhcmNoaXZlIGFsbCBjaGF0cycsXG4gICAgICBlcnJvcjogZSxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QWxsQ2hhdHNBcmNoaXZlZHMocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiQ2hhdFwiXVxuICAgKiAjc3dhZ2dlci5kZXNjcmlwdGlvbiA9ICdSZXRyaWV2ZXMgYWxsIGFyY2hpdmVkIGNoYXRzLidcbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICovXG4gIHRyeSB7XG4gICAgY29uc3QgY2hhdHMgPSBhd2FpdCByZXEuY2xpZW50LmdldEFsbENoYXRzKCk7XG4gICAgY29uc3QgYXJjaGl2ZWQgPSBbXSBhcyBhbnk7XG4gICAgZm9yIChjb25zdCBjaGF0IG9mIGNoYXRzKSB7XG4gICAgICBpZiAoY2hhdC5hcmNoaXZlID09PSB0cnVlKSB7XG4gICAgICAgIGFyY2hpdmVkLnB1c2goY2hhdCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJlcy5zdGF0dXMoMjAxKS5qc29uKGFyY2hpdmVkKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gICAgcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm9yIG9uIGFyY2hpdmUgYWxsIGNoYXRzJyxcbiAgICAgIGVycm9yOiBlLFxuICAgIH0pO1xuICB9XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlTWVzc2FnZShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJNZXNzYWdlc1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICBcbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIHBob25lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgaXNHcm91cDogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgICBtZXNzYWdlSWQ6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBvbmx5TG9jYWw6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgICAgZGVsZXRlTWVkaWFJbkRldmljZTogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgIFwiRGVsZXRlIG1lc3NhZ2UgdG8gYWxsXCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBwaG9uZTogXCI1NTIxOTk5OTk5OTk5XCIsXG4gICAgICAgICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgICAgICAgbWVzc2FnZUlkOiBcIjxtZXNzYWdlSWQ+XCIsXG4gICAgICAgICAgICAgICAgZGVsZXRlTWVkaWFJbkRldmljZTogdHJ1ZSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiRGVsZXRlIG1lc3NhZ2Ugb25seSBtZVwiOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgcGhvbmU6IFwiNTUyMTk5OTk5OTk5OVwiLFxuICAgICAgICAgICAgICAgIGlzR3JvdXA6IGZhbHNlLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2VJZDogXCI8bWVzc2FnZUlkPlwiLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lLCBtZXNzYWdlSWQsIGRlbGV0ZU1lZGlhSW5EZXZpY2UsIG9ubHlMb2NhbCB9ID0gcmVxLmJvZHk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXEuY2xpZW50LmRlbGV0ZU1lc3NhZ2UoXG4gICAgICBgJHtwaG9uZX1gLFxuICAgICAgbWVzc2FnZUlkLFxuICAgICAgb25seUxvY2FsLFxuICAgICAgZGVsZXRlTWVkaWFJbkRldmljZVxuICAgICk7XG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgcmVzXG4gICAgICAgIC5zdGF0dXMoMjAwKVxuICAgICAgICAuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogeyBtZXNzYWdlOiAnTWVzc2FnZSBkZWxldGVkJyB9IH0pO1xuICAgIH1cbiAgICByZXMuc3RhdHVzKDQwMSkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICByZXNwb25zZTogeyBtZXNzYWdlOiAnRXJyb3IgdW5rbm93biBvbiBkZWxldGUgbWVzc2FnZScgfSxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gICAgcmVzXG4gICAgICAuc3RhdHVzKDUwMClcbiAgICAgIC5qc29uKHsgc3RhdHVzOiAnZXJyb3InLCBtZXNzYWdlOiAnRXJyb3Igb24gZGVsZXRlIG1lc3NhZ2UnLCBlcnJvcjogZSB9KTtcbiAgfVxufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWN0TWVzc2FnZShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJNZXNzYWdlc1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5yZXF1ZXN0Qm9keSA9IHtcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgbXNnSWQ6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICByZWFjdGlvbjogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBtc2dJZDogXCI8bWVzc2FnZUlkPlwiLFxuICAgICAgICAgICAgICAgIHJlYWN0aW9uOiBcIvCfmJxcIixcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBtc2dJZCwgcmVhY3Rpb24gfSA9IHJlcS5ib2R5O1xuXG4gIHRyeSB7XG4gICAgYXdhaXQgcmVxLmNsaWVudC5zZW5kUmVhY3Rpb25Ub01lc3NhZ2UobXNnSWQsIHJlYWN0aW9uKTtcblxuICAgIHJlc1xuICAgICAgLnN0YXR1cygyMDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogeyBtZXNzYWdlOiAnUmVhY3Rpb24gc2VuZGVkJyB9IH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiAnRXJyb3Igb24gc2VuZCByZWFjdGlvbiB0byBtZXNzYWdlJyxcbiAgICAgIGVycm9yOiBlLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXBseShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLmRlcHJlY2F0ZWQ9dHJ1ZVxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgcGhvbmU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBpc0dyb3VwOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICAgIG1lc3NhZ2VpZDogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIHRleHQ6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgIFwiRGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgIHBob25lOiBcIjU1MjE5OTk5OTk5OTlcIixcbiAgICAgICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgICAgIG1lc3NhZ2VpZDogXCI8bWVzc2FnZUlkPlwiLFxuICAgICAgICAgICAgICB0ZXh0OiBcIlRleHQgdG8gcmVwbHlcIixcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSwgdGV4dCwgbWVzc2FnZWlkIH0gPSByZXEuYm9keTtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5yZXBseShgJHtwaG9uZX1AYy51c2AsIHRleHQsIG1lc3NhZ2VpZCk7XG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXNcbiAgICAgIC5zdGF0dXMoNTAwKVxuICAgICAgLmpzb24oeyBzdGF0dXM6ICdlcnJvcicsIG1lc3NhZ2U6ICdFcnJvciByZXBseWluZyBtZXNzYWdlJywgZXJyb3I6IGUgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZvcndhcmRNZXNzYWdlcyhyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAgICNzd2FnZ2VyLnRhZ3MgPSBbXCJNZXNzYWdlc1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5yZXF1ZXN0Qm9keSA9IHtcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgXCJAY29udGVudFwiOiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICBwaG9uZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIGlzR3JvdXA6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgICAgbWVzc2FnZUlkOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4YW1wbGVzOiB7XG4gICAgICAgICAgICBcIkRlZmF1bHRcIjoge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIHBob25lOiBcIjU1MjE5OTk5OTk5OTlcIixcbiAgICAgICAgICAgICAgICBpc0dyb3VwOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6IFwiPG1lc3NhZ2VJZD5cIixcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSwgbWVzc2FnZUlkLCBpc0dyb3VwID0gZmFsc2UgfSA9IHJlcS5ib2R5O1xuXG4gIHRyeSB7XG4gICAgbGV0IHJlc3BvbnNlO1xuXG4gICAgaWYgKCFpc0dyb3VwKSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuZm9yd2FyZE1lc3NhZ2UoYCR7cGhvbmVbMF19YCwgbWVzc2FnZUlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCByZXEuY2xpZW50LmZvcndhcmRNZXNzYWdlKGAke3Bob25lWzBdfWAsIG1lc3NhZ2VJZCk7XG4gICAgfVxuXG4gICAgcmVzLnN0YXR1cygyMDEpLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXNcbiAgICAgIC5zdGF0dXMoNTAwKVxuICAgICAgLmpzb24oeyBzdGF0dXM6ICdlcnJvcicsIG1lc3NhZ2U6ICdFcnJvciBmb3J3YXJkaW5nIG1lc3NhZ2UnLCBlcnJvcjogZSB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWFya1Vuc2Vlbk1lc3NhZ2UocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgcGhvbmU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBpc0dyb3VwOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBwaG9uZTogXCI1NTIxOTk5OTk5OTk5XCIsXG4gICAgICAgICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgIH1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUgfSA9IHJlcS5ib2R5O1xuXG4gIHRyeSB7XG4gICAgYXdhaXQgcmVxLmNsaWVudC5tYXJrVW5zZWVuTWVzc2FnZShgJHtwaG9uZX1gKTtcbiAgICByZXNcbiAgICAgIC5zdGF0dXMoMjAwKVxuICAgICAgLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHsgbWVzc2FnZTogJ3Vuc2VlbiBjaGVja2VkJyB9IH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXNcbiAgICAgIC5zdGF0dXMoNTAwKVxuICAgICAgLmpzb24oeyBzdGF0dXM6ICdlcnJvcicsIG1lc3NhZ2U6ICdFcnJvciBvbiBtYXJrIHVuc2VlbicsIGVycm9yOiBlIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBibG9ja0NvbnRhY3QocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiTWlzY1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5yZXF1ZXN0Qm9keSA9IHtcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgXCJAY29udGVudFwiOiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICBwaG9uZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIGlzR3JvdXA6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4YW1wbGVzOiB7XG4gICAgICAgICAgICBcIkRlZmF1bHRcIjoge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICBwaG9uZTogXCI1NTIxOTk5OTk5OTk5XCIsXG4gICAgICAgICAgICAgIGlzR3JvdXA6IGZhbHNlLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lIH0gPSByZXEuYm9keTtcblxuICB0cnkge1xuICAgIGF3YWl0IHJlcS5jbGllbnQuYmxvY2tDb250YWN0KGAke3Bob25lfWApO1xuICAgIHJlc1xuICAgICAgLnN0YXR1cygyMDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogeyBtZXNzYWdlOiAnQ29udGFjdCBibG9ja2VkJyB9IH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXNcbiAgICAgIC5zdGF0dXMoNTAwKVxuICAgICAgLmpzb24oeyBzdGF0dXM6ICdlcnJvcicsIG1lc3NhZ2U6ICdFcnJvciBvbiBibG9jayBjb250YWN0JywgZXJyb3I6IGUgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVuYmxvY2tDb250YWN0KHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIk1pc2NcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgcGhvbmU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBpc0dyb3VwOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgcGhvbmU6IFwiNTUyMTk5OTk5OTk5OVwiLFxuICAgICAgICAgICAgICBpc0dyb3VwOiBmYWxzZSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSB9ID0gcmVxLmJvZHk7XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCByZXEuY2xpZW50LnVuYmxvY2tDb250YWN0KGAke3Bob25lfWApO1xuICAgIHJlc1xuICAgICAgLnN0YXR1cygyMDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogeyBtZXNzYWdlOiAnQ29udGFjdCBVbkJsb2NrZWQnIH0gfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIHJlc1xuICAgICAgLnN0YXR1cyg1MDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ2Vycm9yJywgbWVzc2FnZTogJ0Vycm9yIG9uIHVubG9jayBjb250YWN0JywgZXJyb3I6IGUgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBpbkNoYXQocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiQ2hhdFwiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wib2JqXCJdID0ge1xuICAgICAgaW46ICdib2R5JyxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICAkcGhvbmU6ICc1NTIxOTk5OTk5OTk5JyxcbiAgICAgICAgJGlzR3JvdXA6IGZhbHNlLFxuICAgICAgICAkc3RhdGU6IHRydWUsXG4gICAgICB9XG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgcGhvbmU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBpc0dyb3VwOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICAgIHN0YXRlOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgcGhvbmU6IFwiNTUyMTk5OTk5OTk5OVwiLFxuICAgICAgICAgICAgICBzdGF0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSwgc3RhdGUgfSA9IHJlcS5ib2R5O1xuXG4gIHRyeSB7XG4gICAgZm9yIChjb25zdCBjb250YXRvIG9mIHBob25lKSB7XG4gICAgICBhd2FpdCByZXEuY2xpZW50LnBpbkNoYXQoY29udGF0bywgc3RhdGUgPT09ICd0cnVlJywgZmFsc2UpO1xuICAgIH1cblxuICAgIHJlc1xuICAgICAgLnN0YXR1cygyMDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogeyBtZXNzYWdlOiAnQ2hhdCBmaXhlZCcgfSB9KTtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiBlLnRleHQgfHwgJ0Vycm9yIG9uIHBpbiBjaGF0JyxcbiAgICAgIGVycm9yOiBlLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRQcm9maWxlUGljKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIlByb2ZpbGVcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIuY29uc3VtZXMgPSBbJ211bHRpcGFydC9mb3JtLWRhdGEnXSAgXG4gICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzWydmaWxlJ10gPSB7XG4gICAgICAgICAgaW46ICdmb3JtRGF0YScsXG4gICAgICAgICAgdHlwZTogJ2ZpbGUnLFxuICAgICAgICAgIHJlcXVpcmVkOiAndHJ1ZScsXG4gICAgICB9XG4gICAqL1xuICBpZiAoIXJlcS5maWxlKVxuICAgIHJlc1xuICAgICAgLnN0YXR1cyg0MDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ0Vycm9yJywgbWVzc2FnZTogJ0ZpbGUgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIScgfSk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCB7IHBhdGg6IHBhdGhGaWxlIH0gPSByZXEuZmlsZSBhcyBhbnk7XG5cbiAgICBhd2FpdCByZXEuY2xpZW50LnNldFByb2ZpbGVQaWMocGF0aEZpbGUpO1xuICAgIGF3YWl0IHVubGlua0FzeW5jKHBhdGhGaWxlKTtcblxuICAgIHJlcy5zdGF0dXMoMjAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLFxuICAgICAgcmVzcG9uc2U6IHsgbWVzc2FnZTogJ1Byb2ZpbGUgcGhvdG8gc3VjY2Vzc2Z1bGx5IGNoYW5nZWQnIH0sXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6ICdFcnJvciBjaGFuZ2luZyBwcm9maWxlIHBob3RvJyxcbiAgICAgIGVycm9yOiBlLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRVbnJlYWRNZXNzYWdlcyhyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAgICNzd2FnZ2VyLmRlcHJlY2F0ZWQ9dHJ1ZVxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICovXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXEuY2xpZW50LmdldFVucmVhZE1lc3NhZ2VzKGZhbHNlLCBmYWxzZSwgdHJ1ZSk7XG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXNcbiAgICAgIC5zdGF0dXMoNTAwKVxuICAgICAgLmpzb24oeyBzdGF0dXM6ICdlcnJvcicsIHJlc3BvbnNlOiAnRXJyb3Igb24gb3BlbiBsaXN0JywgZXJyb3I6IGUgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldENoYXRJc09ubGluZShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAgICNzd2FnZ2VyLnRhZ3MgPSBbXCJDaGF0XCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJwaG9uZVwiXSA9IHtcbiAgICAgIHNjaGVtYTogJzU1MjE5OTk5OTk5OTknLFxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lIH0gPSByZXEucGFyYW1zO1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5nZXRDaGF0SXNPbmxpbmUoYCR7cGhvbmV9QGMudXNgKTtcbiAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogcmVzcG9uc2UgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIHJlc3BvbnNlOiAnRXJyb3Igb24gZ2V0IGNoYXQgaXMgb25saW5lJyxcbiAgICAgIGVycm9yOiBlLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRMYXN0U2VlbihyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAgICNzd2FnZ2VyLnRhZ3MgPSBbXCJDaGF0XCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJwaG9uZVwiXSA9IHtcbiAgICAgIHNjaGVtYTogJzU1MjE5OTk5OTk5OTknLFxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lIH0gPSByZXEucGFyYW1zO1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5nZXRMYXN0U2VlbihgJHtwaG9uZX1AYy51c2ApO1xuXG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIHJlc3BvbnNlOiAnRXJyb3Igb24gZ2V0IGNoYXQgbGFzdCBzZWVuJyxcbiAgICAgIGVycm9yOiBlcnJvcixcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TGlzdE11dGVzKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIkNoYXRcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInR5cGVcIl0gPSB7XG4gICAgICBzY2hlbWE6ICdhbGwnLFxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IHR5cGUgPSAnYWxsJyB9ID0gcmVxLnBhcmFtcztcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuZ2V0TGlzdE11dGVzKHR5cGUpO1xuXG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIHJlc3BvbnNlOiAnRXJyb3Igb24gZ2V0IGxpc3QgbXV0ZXMnLFxuICAgICAgZXJyb3I6IGVycm9yLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkQW5kR2V0QWxsTWVzc2FnZXNJbkNoYXQocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci5kZXByZWNhdGVkPXRydWVcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIkNoYXRcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInBob25lXCJdID0ge1xuICAgICAgc2NoZW1hOiAnNTUyMTk5OTk5OTk5OSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wiaW5jbHVkZU1lXCJdID0ge1xuICAgICAgc2NoZW1hOiAndHJ1ZSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wiaW5jbHVkZU5vdGlmaWNhdGlvbnNcIl0gPSB7XG4gICAgICBzY2hlbWE6ICdmYWxzZSdcbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSwgaW5jbHVkZU1lID0gdHJ1ZSwgaW5jbHVkZU5vdGlmaWNhdGlvbnMgPSBmYWxzZSB9ID0gcmVxLnBhcmFtcztcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQubG9hZEFuZEdldEFsbE1lc3NhZ2VzSW5DaGF0KFxuICAgICAgYCR7cGhvbmV9QGMudXNgLFxuICAgICAgaW5jbHVkZU1lIGFzIGJvb2xlYW4sXG4gICAgICBpbmNsdWRlTm90aWZpY2F0aW9ucyBhcyBib29sZWFuXG4gICAgKTtcblxuICAgIHJlcy5zdGF0dXMoMjAwKS5qc29uKHsgc3RhdHVzOiAnc3VjY2VzcycsIHJlc3BvbnNlOiByZXNwb25zZSB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGVycm9yKTtcbiAgICByZXNcbiAgICAgIC5zdGF0dXMoNTAwKVxuICAgICAgLmpzb24oeyBzdGF0dXM6ICdlcnJvcicsIHJlc3BvbnNlOiAnRXJyb3Igb24gb3BlbiBsaXN0JywgZXJyb3I6IGVycm9yIH0pO1xuICB9XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TWVzc2FnZXMocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInBob25lXCJdID0ge1xuICAgICAgc2NoZW1hOiAnNTUyMTk5OTk5OTk5OUBjLnVzJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJjb3VudFwiXSA9IHtcbiAgICAgIHNjaGVtYTogJzIwJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJkaXJlY3Rpb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdiZWZvcmUnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcImlkXCJdID0ge1xuICAgICAgc2NoZW1hOiAnPG1lc3NhZ2VfaWRfdG9fdXNlX2RpcmVjdGlvbj4nXG4gICAgIH1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUgfSA9IHJlcS5wYXJhbXM7XG4gIGNvbnN0IHsgY291bnQgPSAyMCwgZGlyZWN0aW9uID0gJ2JlZm9yZScsIGlkID0gbnVsbCB9ID0gcmVxLnF1ZXJ5O1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5nZXRNZXNzYWdlcyhgJHtwaG9uZX1gLCB7XG4gICAgICBjb3VudDogcGFyc2VJbnQoY291bnQgYXMgc3RyaW5nKSxcbiAgICAgIGRpcmVjdGlvbjogZGlyZWN0aW9uLnRvU3RyaW5nKCkgYXMgYW55LFxuICAgICAgaWQ6IGlkIGFzIHN0cmluZyxcbiAgICB9KTtcbiAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogcmVzcG9uc2UgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIHJlc1xuICAgICAgLnN0YXR1cyg0MDEpXG4gICAgICAuanNvbih7IHN0YXR1czogJ2Vycm9yJywgcmVzcG9uc2U6ICdFcnJvciBvbiBvcGVuIGxpc3QnLCBlcnJvcjogZSB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZENvbnRhY3RWY2FyZChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAgICNzd2FnZ2VyLnRhZ3MgPSBbXCJNZXNzYWdlc1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5yZXF1ZXN0Qm9keSA9IHtcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgXCJAY29udGVudFwiOiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICBwaG9uZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIGlzR3JvdXA6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgICAgbmFtZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIGNvbnRhY3RzSWQ6IHsgdHlwZTogXCJhcnJheVwiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBwaG9uZTogXCI1NTIxOTk5OTk5OTk5XCIsXG4gICAgICAgICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgICAgICAgbmFtZTogJ05hbWUgb2YgY29udGFjdCcsXG4gICAgICAgICAgICAgICAgY29udGFjdHNJZDogWyc1NTIxOTk5OTk5OTk5J10sXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgIH1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUsIGNvbnRhY3RzSWQsIG5hbWUgPSBudWxsLCBpc0dyb3VwID0gZmFsc2UgfSA9IHJlcS5ib2R5O1xuICB0cnkge1xuICAgIGxldCByZXNwb25zZTtcbiAgICBmb3IgKGNvbnN0IGNvbnRhdG8gb2YgY29udGFjdFRvQXJyYXkocGhvbmUsIGlzR3JvdXApKSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuc2VuZENvbnRhY3RWY2FyZChcbiAgICAgICAgYCR7Y29udGF0b31gLFxuICAgICAgICBjb250YWN0c0lkLFxuICAgICAgICBuYW1lXG4gICAgICApO1xuICAgIH1cblxuICAgIHJlcy5zdGF0dXMoMjAwKS5qc29uKHsgc3RhdHVzOiAnc3VjY2VzcycsIHJlc3BvbnNlOiByZXNwb25zZSB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGVycm9yKTtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiAnRXJyb3Igb24gc2VuZCBjb250YWN0IHZjYXJkJyxcbiAgICAgIGVycm9yOiBlcnJvcixcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZE11dGUocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiQ2hhdFwiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIHBob25lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgaXNHcm91cDogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgICB0aW1lOiB7IHR5cGU6IFwibnVtYmVyXCIgfSxcbiAgICAgICAgICAgICAgdHlwZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBwaG9uZTogXCI1NTIxOTk5OTk5OTk5XCIsXG4gICAgICAgICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdGltZTogMSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnaG91cnMnLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lLCB0aW1lLCB0eXBlID0gJ2hvdXJzJywgaXNHcm91cCA9IGZhbHNlIH0gPSByZXEuYm9keTtcblxuICB0cnkge1xuICAgIGxldCByZXNwb25zZTtcbiAgICBmb3IgKGNvbnN0IGNvbnRhdG8gb2YgY29udGFjdFRvQXJyYXkocGhvbmUsIGlzR3JvdXApKSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuc2VuZE11dGUoYCR7Y29udGF0b31gLCB0aW1lLCB0eXBlKTtcbiAgICB9XG5cbiAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogcmVzcG9uc2UgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgcmVzXG4gICAgICAuc3RhdHVzKDUwMClcbiAgICAgIC5qc29uKHsgc3RhdHVzOiAnZXJyb3InLCBtZXNzYWdlOiAnRXJyb3Igb24gc2VuZCBtdXRlJywgZXJyb3I6IGVycm9yIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kU2VlbihyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAgICNzd2FnZ2VyLnRhZ3MgPSBbXCJDaGF0XCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIHBob25lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgaXNHcm91cDogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgIFwiRGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgcGhvbmU6IFwiNTUyMTk5OTk5OTk5OVwiLFxuICAgICAgICAgICAgICAgIGlzR3JvdXA6IGZhbHNlLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lIH0gPSByZXEuYm9keTtcbiAgY29uc3Qgc2Vzc2lvbiA9IHJlcS5zZXNzaW9uO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0czogYW55ID0gW107XG4gICAgZm9yIChjb25zdCBjb250YXRvIG9mIHBob25lKSB7XG4gICAgICByZXN1bHRzLnB1c2goYXdhaXQgcmVxLmNsaWVudC5zZW5kU2Vlbihjb250YXRvKSk7XG4gICAgfVxuICAgIHJldHVyblN1Y2VzcyhyZXMsIHNlc3Npb24sIHBob25lLCByZXN1bHRzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm5FcnJvcihyZXEsIHJlcywgc2Vzc2lvbiwgZXJyb3IpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRDaGF0U3RhdGUocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci5kZXByZWNhdGVkPXRydWVcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIkNoYXRcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgcGhvbmU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBpc0dyb3VwOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICAgIGNoYXRzdGF0ZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBwaG9uZTogXCI1NTIxOTk5OTk5OTk5XCIsXG4gICAgICAgICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgICAgICAgY2hhdHN0YXRlOiBcIjFcIixcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSwgY2hhdHN0YXRlLCBpc0dyb3VwID0gZmFsc2UgfSA9IHJlcS5ib2R5O1xuXG4gIHRyeSB7XG4gICAgbGV0IHJlc3BvbnNlO1xuICAgIGZvciAoY29uc3QgY29udGF0byBvZiBjb250YWN0VG9BcnJheShwaG9uZSwgaXNHcm91cCkpIHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5zZXRDaGF0U3RhdGUoYCR7Y29udGF0b31gLCBjaGF0c3RhdGUpO1xuICAgIH1cblxuICAgIHJlcy5zdGF0dXMoMjAwKS5qc29uKHsgc3RhdHVzOiAnc3VjY2VzcycsIHJlc3BvbnNlOiByZXNwb25zZSB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGVycm9yKTtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiAnRXJyb3Igb24gc2VuZCBjaGF0IHN0YXRlJyxcbiAgICAgIGVycm9yOiBlcnJvcixcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2V0VGVtcG9yYXJ5TWVzc2FnZXMocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgcGhvbmU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBpc0dyb3VwOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICAgIHZhbHVlOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBwaG9uZTogXCI1NTIxOTk5OTk5OTk5XCIsXG4gICAgICAgICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRydWUsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgIH1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUsIHZhbHVlID0gdHJ1ZSwgaXNHcm91cCA9IGZhbHNlIH0gPSByZXEuYm9keTtcblxuICB0cnkge1xuICAgIGxldCByZXNwb25zZTtcbiAgICBmb3IgKGNvbnN0IGNvbnRhdG8gb2YgY29udGFjdFRvQXJyYXkocGhvbmUsIGlzR3JvdXApKSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuc2V0VGVtcG9yYXJ5TWVzc2FnZXMoYCR7Y29udGF0b31gLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6ICdFcnJvciBvbiBzZXQgdGVtcG9yYXJ5IG1lc3NhZ2VzJyxcbiAgICAgIGVycm9yOiBlcnJvcixcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2V0VHlwaW5nKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIkNoYXRcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgcGhvbmU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBpc0dyb3VwOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICAgIHZhbHVlOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBwaG9uZTogXCI1NTIxOTk5OTk5OTk5XCIsXG4gICAgICAgICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRydWUsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgIH1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUsIHZhbHVlID0gdHJ1ZSwgaXNHcm91cCA9IGZhbHNlIH0gPSByZXEuYm9keTtcbiAgdHJ5IHtcbiAgICBsZXQgcmVzcG9uc2U7XG4gICAgZm9yIChjb25zdCBjb250YXRvIG9mIGNvbnRhY3RUb0FycmF5KHBob25lLCBpc0dyb3VwKSkge1xuICAgICAgaWYgKHZhbHVlKSByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuc3RhcnRUeXBpbmcoY29udGF0byk7XG4gICAgICBlbHNlIHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5zdG9wVHlwaW5nKGNvbnRhdG8pO1xuICAgIH1cblxuICAgIHJlcy5zdGF0dXMoMjAwKS5qc29uKHsgc3RhdHVzOiAnc3VjY2VzcycsIHJlc3BvbnNlOiByZXNwb25zZSB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGVycm9yKTtcbiAgICByZXNcbiAgICAgIC5zdGF0dXMoNTAwKVxuICAgICAgLmpzb24oeyBzdGF0dXM6ICdlcnJvcicsIG1lc3NhZ2U6ICdFcnJvciBvbiBzZXQgdHlwaW5nJywgZXJyb3I6IGVycm9yIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRSZWNvcmRpbmcocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiQ2hhdFwiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICBcbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgcGhvbmU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBpc0dyb3VwOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICAgIGR1cmF0aW9uOiB7IHR5cGU6IFwibnVtYmVyXCIgfSxcbiAgICAgICAgICAgICAgdmFsdWU6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4YW1wbGVzOiB7XG4gICAgICAgICAgICBcIkRlZmF1bHRcIjoge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIHBob25lOiBcIjU1MjE5OTk5OTk5OTlcIixcbiAgICAgICAgICAgICAgICBpc0dyb3VwOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogNSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSwgdmFsdWUgPSB0cnVlLCBkdXJhdGlvbiwgaXNHcm91cCA9IGZhbHNlIH0gPSByZXEuYm9keTtcbiAgdHJ5IHtcbiAgICBsZXQgcmVzcG9uc2U7XG4gICAgZm9yIChjb25zdCBjb250YXRvIG9mIGNvbnRhY3RUb0FycmF5KHBob25lLCBpc0dyb3VwKSkge1xuICAgICAgaWYgKHZhbHVlKSByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuc3RhcnRSZWNvcmRpbmcoY29udGF0bywgZHVyYXRpb24pO1xuICAgICAgZWxzZSByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuc3RvcFJlY29yZGluZyhjb250YXRvKTtcbiAgICB9XG5cbiAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogcmVzcG9uc2UgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm9yIG9uIHNldCByZWNvcmRpbmcnLFxuICAgICAgZXJyb3I6IGVycm9yLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjaGVja051bWJlclN0YXR1cyhyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAgICNzd2FnZ2VyLnRhZ3MgPSBbXCJNaXNjXCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJwaG9uZVwiXSA9IHtcbiAgICAgIHNjaGVtYTogJzU1MjE5OTk5OTk5OTknXG4gICAgIH1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUgfSA9IHJlcS5wYXJhbXM7XG4gIHRyeSB7XG4gICAgbGV0IHJlc3BvbnNlO1xuICAgIGZvciAoY29uc3QgY29udGF0byBvZiBjb250YWN0VG9BcnJheShwaG9uZSwgZmFsc2UpKSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuY2hlY2tOdW1iZXJTdGF0dXMoYCR7Y29udGF0b31gKTtcbiAgICB9XG5cbiAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogcmVzcG9uc2UgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm9yIG9uIGNoZWNrIG51bWJlciBzdGF0dXMnLFxuICAgICAgZXJyb3I6IGVycm9yLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRDb250YWN0KHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIkNoYXRcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInBob25lXCJdID0ge1xuICAgICAgc2NoZW1hOiAnNTUyMTk5OTk5OTk5OSdcbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSA9IHRydWUgfSA9IHJlcS5wYXJhbXM7XG4gIHRyeSB7XG4gICAgbGV0IHJlc3BvbnNlO1xuICAgIGZvciAoY29uc3QgY29udGF0byBvZiBjb250YWN0VG9BcnJheShwaG9uZSBhcyBzdHJpbmcsIGZhbHNlKSkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCByZXEuY2xpZW50LmdldENvbnRhY3QoY29udGF0byk7XG4gICAgfVxuXG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlc1xuICAgICAgLnN0YXR1cyg1MDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ2Vycm9yJywgbWVzc2FnZTogJ0Vycm9yIG9uIGdldCBjb250YWN0JywgZXJyb3I6IGVycm9yIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBbGxDb250YWN0cyhyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJDb250YWN0XCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAqL1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5nZXRBbGxDb250YWN0cygpO1xuXG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6ICdFcnJvciBvbiBnZXQgYWxsIGNvbnN0YWN0cycsXG4gICAgICBlcnJvcjogZXJyb3IsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldE51bWJlclByb2ZpbGUocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci5kZXByZWNhdGVkPXRydWVcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIkNoYXRcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInBob25lXCJdID0ge1xuICAgICAgc2NoZW1hOiAnNTUyMTk5OTk5OTk5OSdcbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSA9IHRydWUgfSA9IHJlcS5wYXJhbXM7XG4gIHRyeSB7XG4gICAgbGV0IHJlc3BvbnNlO1xuICAgIGZvciAoY29uc3QgY29udGF0byBvZiBjb250YWN0VG9BcnJheShwaG9uZSBhcyBzdHJpbmcsIGZhbHNlKSkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCByZXEuY2xpZW50LmdldE51bWJlclByb2ZpbGUoY29udGF0byk7XG4gICAgfVxuXG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6ICdFcnJvciBvbiBnZXQgbnVtYmVyIHByb2ZpbGUnLFxuICAgICAgZXJyb3I6IGVycm9yLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQcm9maWxlUGljRnJvbVNlcnZlcihyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAgICNzd2FnZ2VyLnRhZ3MgPSBbXCJDb250YWN0XCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJwaG9uZVwiXSA9IHtcbiAgICAgIHNjaGVtYTogJzU1MjE5OTk5OTk5OTknXG4gICAgIH1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUgPSB0cnVlIH0gPSByZXEucGFyYW1zO1xuICBjb25zdCB7IGlzR3JvdXAgPSBmYWxzZSB9ID0gcmVxLnF1ZXJ5O1xuICB0cnkge1xuICAgIGxldCByZXNwb25zZTtcbiAgICBmb3IgKGNvbnN0IGNvbnRhdG8gb2YgY29udGFjdFRvQXJyYXkocGhvbmUgYXMgc3RyaW5nLCBpc0dyb3VwIGFzIGJvb2xlYW4pKSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuZ2V0UHJvZmlsZVBpY0Zyb21TZXJ2ZXIoY29udGF0byk7XG4gICAgfVxuXG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6ICdFcnJvciBvbiAgZ2V0IHByb2ZpbGUgcGljJyxcbiAgICAgIGVycm9yOiBlcnJvcixcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0U3RhdHVzKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIkNvbnRhY3RcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInBob25lXCJdID0ge1xuICAgICAgc2NoZW1hOiAnNTUyMTk5OTk5OTk5OSdcbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSA9IHRydWUgfSA9IHJlcS5wYXJhbXM7XG4gIHRyeSB7XG4gICAgbGV0IHJlc3BvbnNlO1xuICAgIGZvciAoY29uc3QgY29udGF0byBvZiBjb250YWN0VG9BcnJheShwaG9uZSBhcyBzdHJpbmcsIGZhbHNlKSkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCByZXEuY2xpZW50LmdldFN0YXR1cyhjb250YXRvKTtcbiAgICB9XG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlc1xuICAgICAgLnN0YXR1cyg1MDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ2Vycm9yJywgbWVzc2FnZTogJ0Vycm9yIG9uICBnZXQgc3RhdHVzJywgZXJyb3I6IGVycm9yIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRQcm9maWxlU3RhdHVzKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIlByb2ZpbGVcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcIm9ialwiXSA9IHtcbiAgICAgIGluOiAnYm9keScsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgJHN0YXR1czogJ015IG5ldyBzdGF0dXMnLFxuICAgICAgfVxuICAgICB9XG4gICAgIFxuICAgICAjc3dhZ2dlci5yZXF1ZXN0Qm9keSA9IHtcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgXCJAY29udGVudFwiOiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICBzdGF0dXM6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgIFwiRGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgc3RhdHVzOiBcIk15IG5ldyBzdGF0dXNcIixcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBzdGF0dXMgfSA9IHJlcS5ib2R5O1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5zZXRQcm9maWxlU3RhdHVzKHN0YXR1cyk7XG5cbiAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogcmVzcG9uc2UgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIHJlc1xuICAgICAgLnN0YXR1cyg1MDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ2Vycm9yJywgbWVzc2FnZTogJ0Vycm9yIG9uIHNldCBwcm9maWxlIHN0YXR1cycgfSk7XG4gIH1cbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWplY3RDYWxsKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIk1pc2NcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgXG4gICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIGNhbGxJZDogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBjYWxsSWQ6IFwiPGNhbGxpZD5cIixcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBjYWxsSWQgfSA9IHJlcS5ib2R5O1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5yZWplY3RDYWxsKGNhbGxJZCk7XG5cbiAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogcmVzcG9uc2UgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIHJlc1xuICAgICAgLnN0YXR1cyg1MDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ2Vycm9yJywgbWVzc2FnZTogJ0Vycm9yIG9uIHJlamVjdENhbGwnLCBlcnJvcjogZSB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3Rhck1lc3NhZ2UocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgbWVzc2FnZUlkOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgc3RhcjogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgIFwiRGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZUlkOiBcIjU1MjE5OTk5OTk5OTlcIixcbiAgICAgICAgICAgICAgICBzdGFyOiB0cnVlLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IG1lc3NhZ2VJZCwgc3RhciA9IHRydWUgfSA9IHJlcS5ib2R5O1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5zdGFyTWVzc2FnZShtZXNzYWdlSWQsIHN0YXIpO1xuXG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6ICdFcnJvciBvbiAgc3RhcnQgbWVzc2FnZScsXG4gICAgICBlcnJvcjogZXJyb3IsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFJlYWN0aW9ucyhyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAgICNzd2FnZ2VyLnRhZ3MgPSBbXCJNZXNzYWdlc1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wibWVzc2FnZUlkXCJdID0ge1xuICAgICAgc2NoZW1hOiAnPG1lc3NhZ2VJZD4nXG4gICAgIH1cbiAgICovXG4gIGNvbnN0IG1lc3NhZ2VJZCA9IHJlcS5wYXJhbXMuaWQ7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXEuY2xpZW50LmdldFJlYWN0aW9ucyhtZXNzYWdlSWQpO1xuXG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6ICdFcnJvciBvbiBnZXQgcmVhY3Rpb25zJyxcbiAgICAgIGVycm9yOiBlcnJvcixcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Vm90ZXMocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcIm1lc3NhZ2VJZFwiXSA9IHtcbiAgICAgIHNjaGVtYTogJzxtZXNzYWdlSWQ+J1xuICAgICB9XG4gICAqL1xuICBjb25zdCBtZXNzYWdlSWQgPSByZXEucGFyYW1zLmlkO1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5nZXRWb3RlcyhtZXNzYWdlSWQpO1xuXG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlc1xuICAgICAgLnN0YXR1cyg1MDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ2Vycm9yJywgbWVzc2FnZTogJ0Vycm9yIG9uIGdldCB2b3RlcycsIGVycm9yOiBlcnJvciB9KTtcbiAgfVxufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNoYXRXb290KHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8YW55PiB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiTWlzY1wiXVxuICAgICAjc3dhZ2dlci5kZXNjcmlwdGlvbiA9ICdZb3UgY2FuIHBvaW50IHlvdXIgQ2hhdHdvb3QgdG8gdGhpcyByb3V0ZSBzbyB0aGF0IGl0IGNhbiBwZXJmb3JtIGZ1bmN0aW9ucy4nXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIGV2ZW50OiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgcHJpdmF0ZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6IFwiY29udmVyc2F0aW9uX3N0YXR1c19jaGFuZ2VkXCIsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZTogXCJmYWxzZVwiLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IHNlc3Npb24gfSA9IHJlcS5wYXJhbXM7XG4gIGNvbnN0IGNsaWVudDogYW55ID0gY2xpZW50c0FycmF5W3Nlc3Npb25dO1xuICBpZiAoY2xpZW50ID09IG51bGwgfHwgY2xpZW50LnN0YXR1cyAhPT0gJ0NPTk5FQ1RFRCcpIHJldHVybjtcbiAgdHJ5IHtcbiAgICBpZiAoYXdhaXQgY2xpZW50LmlzQ29ubmVjdGVkKCkpIHtcbiAgICAgIGNvbnN0IGV2ZW50ID0gcmVxLmJvZHkuZXZlbnQ7XG4gICAgICBjb25zdCBpc19wcml2YXRlID0gcmVxLmJvZHkucHJpdmF0ZSB8fCByZXEuYm9keS5pc19wcml2YXRlO1xuXG4gICAgICBpZiAoXG4gICAgICAgIGV2ZW50ID09ICdjb252ZXJzYXRpb25fc3RhdHVzX2NoYW5nZWQnIHx8XG4gICAgICAgIGV2ZW50ID09ICdjb252ZXJzYXRpb25fcmVzb2x2ZWQnIHx8XG4gICAgICAgIGlzX3ByaXZhdGVcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gcmVzXG4gICAgICAgICAgLnN0YXR1cygyMDApXG4gICAgICAgICAgLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgbWVzc2FnZTogJ1N1Y2Nlc3Mgb24gcmVjZWl2ZSBjaGF0d29vdCcgfSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHtcbiAgICAgICAgbWVzc2FnZV90eXBlLFxuICAgICAgICBwaG9uZSA9IHJlcS5ib2R5LmNvbnZlcnNhdGlvbi5tZXRhLnNlbmRlci5waG9uZV9udW1iZXIucmVwbGFjZSgnKycsICcnKSxcbiAgICAgICAgbWVzc2FnZSA9IHJlcS5ib2R5LmNvbnZlcnNhdGlvbi5tZXNzYWdlc1swXSxcbiAgICAgIH0gPSByZXEuYm9keTtcblxuICAgICAgaWYgKGV2ZW50ICE9ICdtZXNzYWdlX2NyZWF0ZWQnICYmIG1lc3NhZ2VfdHlwZSAhPSAnb3V0Z29pbmcnKVxuICAgICAgICByZXR1cm4gcmVzXG4gICAgICAgICAgLnN0YXR1cygyMDApXG4gICAgICAgICAgLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgbWVzc2FnZTogJ1N1Y2Nlc3Mgb24gcmVjZWl2ZSBjaGF0d29vdCcgfSk7XG4gICAgICBmb3IgKGNvbnN0IGNvbnRhdG8gb2YgY29udGFjdFRvQXJyYXkocGhvbmUsIGZhbHNlKSkge1xuICAgICAgICBpZiAobWVzc2FnZV90eXBlID09ICdvdXRnb2luZycpIHtcbiAgICAgICAgICBpZiAobWVzc2FnZS5hdHRhY2htZW50cykge1xuICAgICAgICAgICAgY29uc3QgYmFzZV91cmwgPSBgJHtcbiAgICAgICAgICAgICAgY2xpZW50LmNvbmZpZy5jaGF0V29vdC5iYXNlVVJMXG4gICAgICAgICAgICB9LyR7bWVzc2FnZS5hdHRhY2htZW50c1swXS5kYXRhX3VybC5zdWJzdHJpbmcoXG4gICAgICAgICAgICAgIG1lc3NhZ2UuYXR0YWNobWVudHNbMF0uZGF0YV91cmwuaW5kZXhPZignL3JhaWxzLycpICsgMVxuICAgICAgICAgICAgKX1gO1xuXG4gICAgICAgICAgICAvLyBDaGVjayBpZiBhdHRhY2htZW50cyBpcyBQdXNoLXRvLXRhbGsgYW5kIHNlbmQgdGhpc1xuICAgICAgICAgICAgaWYgKG1lc3NhZ2UuYXR0YWNobWVudHNbMF0uZmlsZV90eXBlID09PSAnYXVkaW8nKSB7XG4gICAgICAgICAgICAgIGF3YWl0IGNsaWVudC5zZW5kUHR0KFxuICAgICAgICAgICAgICAgIGAke2NvbnRhdG99YCxcbiAgICAgICAgICAgICAgICBiYXNlX3VybCxcbiAgICAgICAgICAgICAgICAnVm9pY2UgQXVkaW8nLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2UuY29udGVudFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgYXdhaXQgY2xpZW50LnNlbmRGaWxlKFxuICAgICAgICAgICAgICAgIGAke2NvbnRhdG99YCxcbiAgICAgICAgICAgICAgICBiYXNlX3VybCxcbiAgICAgICAgICAgICAgICAnZmlsZScsXG4gICAgICAgICAgICAgICAgbWVzc2FnZS5jb250ZW50XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF3YWl0IGNsaWVudC5zZW5kVGV4dChjb250YXRvLCBtZXNzYWdlLmNvbnRlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmVzXG4gICAgICAgIC5zdGF0dXMoMjAwKVxuICAgICAgICAuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCBtZXNzYWdlOiAnU3VjY2VzcyBvbiAgcmVjZWl2ZSBjaGF0d29vdCcgfSk7XG4gICAgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5sb2coZSk7XG4gICAgcmVzLnN0YXR1cyg0MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm9yIG9uICByZWNlaXZlIGNoYXR3b290JyxcbiAgICAgIGVycm9yOiBlLFxuICAgIH0pO1xuICB9XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UGxhdGZvcm1Gcm9tTWVzc2FnZShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJNaXNjXCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJtZXNzYWdlSWRcIl0gPSB7XG4gICAgICBzY2hlbWE6ICc8bWVzc2FnZUlkPidcbiAgICAgfVxuICAgKi9cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXEuY2xpZW50LmdldFBsYXRmb3JtRnJvbU1lc3NhZ2UoXG4gICAgICByZXEucGFyYW1zLm1lc3NhZ2VJZFxuICAgICk7XG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24ocmVzdWx0KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gICAgcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm9yIG9uIGdldCBnZXQgcGxhdGZvcm0gZnJvbSBtZXNzYWdlJyxcbiAgICAgIGVycm9yOiBlLFxuICAgIH0pO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtCQSxJQUFBQSxVQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxZQUFBLEdBQUFELE9BQUEsd0JBQW1ELENBbkJuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FPQSxTQUFTRSxZQUFZQSxDQUFDQyxHQUFRLEVBQUVDLE9BQVksRUFBRUMsS0FBVSxFQUFFQyxJQUFTLEVBQUUsQ0FDbkVILEdBQUcsQ0FBQ0ksTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDQyxJQUFJLENBQUMsRUFDbkJELE1BQU0sRUFBRSxTQUFTLEVBQ2pCRSxRQUFRLEVBQUUsRUFDUkMsT0FBTyxFQUFFLHFDQUFxQyxFQUM5Q0MsT0FBTyxFQUFFTixLQUFLLEVBQ2RELE9BQU8sRUFBRUEsT0FBTyxFQUNoQkUsSUFBSSxFQUFFQSxJQUFJLENBQ1osQ0FBQyxDQUNILENBQUMsQ0FBQyxDQUNKLENBRUEsU0FBU00sV0FBV0EsQ0FBQ0MsR0FBWSxFQUFFVixHQUFhLEVBQUVDLE9BQVksRUFBRVUsS0FBVSxFQUFFO0VBQzFFRCxHQUFHLENBQUNFLE1BQU0sQ0FBQ0QsS0FBSyxDQUFD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
2348
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZnVuY3Rpb25zIiwicmVxdWlyZSIsIl9zZXNzaW9uVXRpbCIsInJldHVyblN1Y2VzcyIsInJlcyIsInNlc3Npb24iLCJwaG9uZSIsImRhdGEiLCJzdGF0dXMiLCJqc29uIiwicmVzcG9uc2UiLCJtZXNzYWdlIiwiY29udGFjdCIsInJldHVybkVycm9yIiwicmVxIiwiZXJyb3IiLCJsb2dnZXIiLCJsb2ciLCJzZXRQcm9maWxlTmFtZSIsIm5hbWUiLCJib2R5IiwicmVzdWx0IiwiY2xpZW50Iiwic2hvd0FsbENvbnRhY3RzIiwiY29udGFjdHMiLCJnZXRBbGxDb250YWN0cyIsImdldEFsbENoYXRzIiwibWFwcGVyIiwiZSIsImxpc3RDaGF0cyIsImlkIiwiY291bnQiLCJkaXJlY3Rpb24iLCJvbmx5R3JvdXBzIiwib25seVVzZXJzIiwib25seVdpdGhVbnJlYWRNZXNzYWdlIiwid2l0aExhYmVscyIsImdldEFsbENoYXRzV2l0aE1lc3NhZ2VzIiwiZ2V0QWxsTWVzc2FnZXNJbkNoYXQiLCJwYXJhbXMiLCJpc0dyb3VwIiwiaW5jbHVkZU1lIiwiaW5jbHVkZU5vdGlmaWNhdGlvbnMiLCJxdWVyeSIsImNvbnRhdG8iLCJjb250YWN0VG9BcnJheSIsImdldEFsbE5ld01lc3NhZ2VzIiwiZ2V0QWxsVW5yZWFkTWVzc2FnZXMiLCJnZXRDaGF0QnlJZCIsImdldE1lc3NhZ2VCeUlkIiwibWVzc2FnZUlkIiwiY2hhdElkIiwidXNlciIsImdldEJhdHRlcnlMZXZlbCIsImdldEhvc3REZXZpY2UiLCJwaG9uZU51bWJlciIsImdldFdpZCIsImdldFBob25lTnVtYmVyIiwiZ2V0QmxvY2tMaXN0IiwiYmxvY2tlZCIsIm1hcCIsInNwbGl0IiwiZGVsZXRlQ2hhdCIsInJlc3VsdHMiLCJkZWxldGVBbGxDaGF0cyIsImNoYXRzIiwiY2hhdCIsImNsZWFyQ2hhdCIsImNsZWFyQWxsQ2hhdHMiLCJhcmNoaXZlQ2hhdCIsInZhbHVlIiwiYXJjaGl2ZUFsbENoYXRzIiwiZ2V0QWxsQ2hhdHNBcmNoaXZlZHMiLCJhcmNoaXZlZCIsImFyY2hpdmUiLCJwdXNoIiwiZGVsZXRlTWVzc2FnZSIsImRlbGV0ZU1lZGlhSW5EZXZpY2UiLCJvbmx5TG9jYWwiLCJyZWFjdE1lc3NhZ2UiLCJtc2dJZCIsInJlYWN0aW9uIiwic2VuZFJlYWN0aW9uVG9NZXNzYWdlIiwicmVwbHkiLCJ0ZXh0IiwibWVzc2FnZWlkIiwiZm9yd2FyZE1lc3NhZ2VzIiwiZm9yd2FyZE1lc3NhZ2VzVjIiLCJtYXJrVW5zZWVuTWVzc2FnZSIsImJsb2NrQ29udGFjdCIsInVuYmxvY2tDb250YWN0IiwicGluQ2hhdCIsInN0YXRlIiwic2V0UHJvZmlsZVBpYyIsImZpbGUiLCJwYXRoIiwicGF0aEZpbGUiLCJ1bmxpbmtBc3luYyIsImdldFVucmVhZE1lc3NhZ2VzIiwiZ2V0Q2hhdElzT25saW5lIiwiZ2V0TGFzdFNlZW4iLCJnZXRMaXN0TXV0ZXMiLCJ0eXBlIiwibG9hZEFuZEdldEFsbE1lc3NhZ2VzSW5DaGF0IiwiZ2V0TWVzc2FnZXMiLCJwYXJzZUludCIsInRvU3RyaW5nIiwic2VuZENvbnRhY3RWY2FyZCIsImNvbnRhY3RzSWQiLCJzZW5kTXV0ZSIsInRpbWUiLCJzZW5kU2VlbiIsInNldENoYXRTdGF0ZSIsImNoYXRzdGF0ZSIsInNldFRlbXBvcmFyeU1lc3NhZ2VzIiwic2V0VHlwaW5nIiwic3RhcnRUeXBpbmciLCJzdG9wVHlwaW5nIiwic2V0UmVjb3JkaW5nIiwiZHVyYXRpb24iLCJzdGFydFJlY29yZGluZyIsInN0b3BSZWNvcmRpbmciLCJjaGVja051bWJlclN0YXR1cyIsImdldENvbnRhY3QiLCJnZXROdW1iZXJQcm9maWxlIiwiZ2V0UHJvZmlsZVBpY0Zyb21TZXJ2ZXIiLCJnZXRTdGF0dXMiLCJzZXRQcm9maWxlU3RhdHVzIiwicmVqZWN0Q2FsbCIsImNhbGxJZCIsInN0YXJNZXNzYWdlIiwic3RhciIsImdldFJlYWN0aW9ucyIsImdldFZvdGVzIiwiY2hhdFdvb3QiLCJjbGllbnRzQXJyYXkiLCJpc0Nvbm5lY3RlZCIsImV2ZW50IiwiaXNfcHJpdmF0ZSIsInByaXZhdGUiLCJtZXNzYWdlX3R5cGUiLCJjb252ZXJzYXRpb24iLCJtZXRhIiwic2VuZGVyIiwicGhvbmVfbnVtYmVyIiwicmVwbGFjZSIsIm1lc3NhZ2VzIiwiYXR0YWNobWVudHMiLCJiYXNlX3VybCIsImNvbmZpZyIsImJhc2VVUkwiLCJkYXRhX3VybCIsInN1YnN0cmluZyIsImluZGV4T2YiLCJmaWxlX3R5cGUiLCJzZW5kUHR0IiwiY29udGVudCIsInNlbmRGaWxlIiwic2VuZFRleHQiLCJjb25zb2xlIiwiZ2V0UGxhdGZvcm1Gcm9tTWVzc2FnZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cm9sbGVyL2RldmljZUNvbnRyb2xsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQ2hhdCB9IGZyb20gJ0B3cHBjb25uZWN0LXRlYW0vd3BwY29ubmVjdCc7XG5pbXBvcnQgeyBSZXF1ZXN0LCBSZXNwb25zZSB9IGZyb20gJ2V4cHJlc3MnO1xuXG5pbXBvcnQgeyBjb250YWN0VG9BcnJheSwgdW5saW5rQXN5bmMgfSBmcm9tICcuLi91dGlsL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBjbGllbnRzQXJyYXkgfSBmcm9tICcuLi91dGlsL3Nlc3Npb25VdGlsJztcblxuZnVuY3Rpb24gcmV0dXJuU3VjZXNzKHJlczogYW55LCBzZXNzaW9uOiBhbnksIHBob25lOiBhbnksIGRhdGE6IGFueSkge1xuICByZXMuc3RhdHVzKDIwMSkuanNvbih7XG4gICAgc3RhdHVzOiAnU3VjY2VzcycsXG4gICAgcmVzcG9uc2U6IHtcbiAgICAgIG1lc3NhZ2U6ICdJbmZvcm1hdGlvbiByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5LicsXG4gICAgICBjb250YWN0OiBwaG9uZSxcbiAgICAgIHNlc3Npb246IHNlc3Npb24sXG4gICAgICBkYXRhOiBkYXRhLFxuICAgIH0sXG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZXR1cm5FcnJvcihyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UsIHNlc3Npb246IGFueSwgZXJyb3I6IGFueSkge1xuICByZXEubG9nZ2VyLmVycm9yKGVycm9yKTtcbiAgcmVzLnN0YXR1cyg0MDApLmpzb24oe1xuICAgIHN0YXR1czogJ0Vycm9yJyxcbiAgICByZXNwb25zZToge1xuICAgICAgbWVzc2FnZTogJ0Vycm9yIHJldHJpZXZpbmcgaW5mb3JtYXRpb24nLFxuICAgICAgc2Vzc2lvbjogc2Vzc2lvbixcbiAgICAgIGxvZzogZXJyb3IsXG4gICAgfSxcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRQcm9maWxlTmFtZShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJQcm9maWxlXCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgXCJAY29udGVudFwiOiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICBuYW1lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4YW1wbGVzOiB7XG4gICAgICAgICAgICBcIkRlZmF1bHRcIjoge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwiTXkgbmV3IG5hbWVcIixcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBuYW1lIH0gPSByZXEuYm9keTtcblxuICBpZiAoIW5hbWUpXG4gICAgcmVzXG4gICAgICAuc3RhdHVzKDQwMClcbiAgICAgIC5qc29uKHsgc3RhdHVzOiAnZXJyb3InLCBtZXNzYWdlOiAnUGFyYW1ldGVyIG5hbWUgaXMgcmVxdWlyZWQhJyB9KTtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlcS5jbGllbnQuc2V0UHJvZmlsZU5hbWUobmFtZSk7XG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3VsdCB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGVycm9yKTtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiAnRXJyb3Igb24gc2V0IHByb2ZpbGUgbmFtZS4nLFxuICAgICAgZXJyb3I6IGVycm9yLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaG93QWxsQ29udGFjdHMocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiQ29udGFjdHNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICovXG4gIHRyeSB7XG4gICAgY29uc3QgY29udGFjdHMgPSBhd2FpdCByZXEuY2xpZW50LmdldEFsbENvbnRhY3RzKCk7XG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IGNvbnRhY3RzIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6ICdFcnJvciBmZXRjaGluZyBjb250YWN0cycsXG4gICAgICBlcnJvcjogZXJyb3IsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEFsbENoYXRzKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICogI3N3YWdnZXIudGFncyA9IFtcIkNoYXRcIl1cbiAgICogI3N3YWdnZXIuc3VtbWFyeSA9ICdEZXByZWNhdGVkIGluIGZhdm9yIG9mICdsaXN0LWNoYXRzJ1xuICAgKiAjc3dhZ2dlci5kZXByZWNhdGVkID0gdHJ1ZVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgKi9cbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuZ2V0QWxsQ2hhdHMoKTtcbiAgICByZXNcbiAgICAgIC5zdGF0dXMoMjAwKVxuICAgICAgLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlLCBtYXBwZXI6ICdjaGF0JyB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gICAgcmVzXG4gICAgICAuc3RhdHVzKDUwMClcbiAgICAgIC5qc29uKHsgc3RhdHVzOiAnZXJyb3InLCBtZXNzYWdlOiAnRXJyb3Igb24gZ2V0IGFsbCBjaGF0cycgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxpc3RDaGF0cyhyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJDaGF0XCJdXG4gICAqICNzd2FnZ2VyLnN1bW1hcnkgPSAnUmV0cmlldmUgYSBsaXN0IG9mIGNoYXRzJ1xuICAgKiAjc3dhZ2dlci5kZXNjcmlwdGlvbiA9ICdUaGlzIGJvZHkgaXMgbm90IHJlcXVpcmVkLiBOb3Qgc2VudCBib2R5IHRvIGdldCBhbGwgY2hhdHMgb3IgZmlsdGVyLidcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIGlkOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgY291bnQ6IHsgdHlwZTogXCJudW1iZXJcIiB9LFxuICAgICAgICAgICAgICBkaXJlY3Rpb246IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBvbmx5R3JvdXBzOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICAgIG9ubHlVc2VyczogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgICBvbmx5V2l0aFVucmVhZE1lc3NhZ2U6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgICAgd2l0aExhYmVsczogeyB0eXBlOiBcImFycmF5XCIgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4YW1wbGVzOiB7XG4gICAgICAgICAgICBcIkFsbCBvcHRpb25zIC0gRWRpdCB0aGlzXCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBpZDogXCI8Y2hhdElkPlwiLFxuICAgICAgICAgICAgICAgIGNvdW50OiAyMCxcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IFwiYWZ0ZXJcIixcbiAgICAgICAgICAgICAgICBvbmx5R3JvdXBzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBvbmx5VXNlcnM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIG9ubHlXaXRoVW5yZWFkTWVzc2FnZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgd2l0aExhYmVsczogW11cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiQWxsIGNoYXRzXCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiQ2hhdHMgZ3JvdXBcIjoge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIG9ubHlHcm91cHM6IHRydWUsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIk9ubHkgd2l0aCB1bnJlYWQgbWVzc2FnZXNcIjoge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIG9ubHlXaXRoVW5yZWFkTWVzc2FnZTogZmFsc2UsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcIlBhZ2luYXRlZCByZXN1bHRzXCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBpZDogXCI8Y2hhdElkPlwiLFxuICAgICAgICAgICAgICAgIGNvdW50OiAyMCxcbiAgICAgICAgICAgICAgICBkaXJlY3Rpb246IFwiYWZ0ZXJcIixcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgdHJ5IHtcbiAgICBjb25zdCB7XG4gICAgICBpZCxcbiAgICAgIGNvdW50LFxuICAgICAgZGlyZWN0aW9uLFxuICAgICAgb25seUdyb3VwcyxcbiAgICAgIG9ubHlVc2VycyxcbiAgICAgIG9ubHlXaXRoVW5yZWFkTWVzc2FnZSxcbiAgICAgIHdpdGhMYWJlbHMsXG4gICAgfSA9IHJlcS5ib2R5O1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXEuY2xpZW50Lmxpc3RDaGF0cyh7XG4gICAgICBpZDogaWQsXG4gICAgICBjb3VudDogY291bnQsXG4gICAgICBkaXJlY3Rpb246IGRpcmVjdGlvbixcbiAgICAgIG9ubHlHcm91cHM6IG9ubHlHcm91cHMsXG4gICAgICBvbmx5VXNlcnM6IG9ubHlVc2VycyxcbiAgICAgIG9ubHlXaXRoVW5yZWFkTWVzc2FnZTogb25seVdpdGhVbnJlYWRNZXNzYWdlLFxuICAgICAgd2l0aExhYmVsczogd2l0aExhYmVscyxcbiAgICB9KTtcblxuICAgIHJlcy5zdGF0dXMoMjAwKS5qc29uKHJlc3BvbnNlKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gICAgcmVzXG4gICAgICAuc3RhdHVzKDUwMClcbiAgICAgIC5qc29uKHsgc3RhdHVzOiAnZXJyb3InLCBtZXNzYWdlOiAnRXJyb3Igb24gZ2V0IGFsbCBjaGF0cycgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEFsbENoYXRzV2l0aE1lc3NhZ2VzKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICogI3N3YWdnZXIudGFncyA9IFtcIkNoYXRcIl1cbiAgICogI3N3YWdnZXIuc3VtbWFyeSA9ICdEZXByZWNhdGVkIGluIGZhdm9yIG9mIGxpc3QtY2hhdHMnXG4gICAqICNzd2FnZ2VyLmRlcHJlY2F0ZWQgPSB0cnVlXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAqL1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5saXN0Q2hhdHMoKTtcbiAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogcmVzcG9uc2UgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6ICdFcnJvciBvbiBnZXQgYWxsIGNoYXRzIHdoaXQgbWVzc2FnZXMnLFxuICAgICAgZXJyb3I6IGUsXG4gICAgfSk7XG4gIH1cbn1cbi8qKlxuICogRGVwcmVjaWFkbyBlbSBmYXZvciBkZSBnZXRNZXNzYWdlc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QWxsTWVzc2FnZXNJbkNoYXQocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiQ2hhdFwiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wicGhvbmVcIl0gPSB7XG4gICAgICBzY2hlbWE6ICc1NTIxOTk5OTk5OTk5J1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJpc0dyb3VwXCJdID0ge1xuICAgICAgc2NoZW1hOiAnZmFsc2UnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcImluY2x1ZGVNZVwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ3RydWUnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcImluY2x1ZGVOb3RpZmljYXRpb25zXCJdID0ge1xuICAgICAgc2NoZW1hOiAndHJ1ZSdcbiAgICAgfVxuICAgKi9cbiAgdHJ5IHtcbiAgICBjb25zdCB7IHBob25lIH0gPSByZXEucGFyYW1zO1xuICAgIGNvbnN0IHtcbiAgICAgIGlzR3JvdXAgPSBmYWxzZSxcbiAgICAgIGluY2x1ZGVNZSA9IHRydWUsXG4gICAgICBpbmNsdWRlTm90aWZpY2F0aW9ucyA9IHRydWUsXG4gICAgfSA9IHJlcS5xdWVyeTtcblxuICAgIGxldCByZXNwb25zZTtcbiAgICBmb3IgKGNvbnN0IGNvbnRhdG8gb2YgY29udGFjdFRvQXJyYXkocGhvbmUsIGlzR3JvdXAgYXMgYm9vbGVhbikpIHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5nZXRBbGxNZXNzYWdlc0luQ2hhdChcbiAgICAgICAgY29udGF0byxcbiAgICAgICAgaW5jbHVkZU1lIGFzIGJvb2xlYW4sXG4gICAgICAgIGluY2x1ZGVOb3RpZmljYXRpb25zIGFzIGJvb2xlYW5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiAnRXJyb3Igb24gZ2V0IGFsbCBtZXNzYWdlcyBpbiBjaGF0JyxcbiAgICAgIGVycm9yOiBlLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBbGxOZXdNZXNzYWdlcyhyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJDaGF0XCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAqL1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5nZXRBbGxOZXdNZXNzYWdlcygpO1xuICAgIHJlcy5zdGF0dXMoMjAwKS5qc29uKHsgc3RhdHVzOiAnc3VjY2VzcycsIHJlc3BvbnNlOiByZXNwb25zZSB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gICAgcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm9yIG9uIGdldCBhbGwgbWVzc2FnZXMgaW4gY2hhdCcsXG4gICAgICBlcnJvcjogZSxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QWxsVW5yZWFkTWVzc2FnZXMocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiQ2hhdFwiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgKi9cbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuZ2V0QWxsVW5yZWFkTWVzc2FnZXMoKTtcbiAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogcmVzcG9uc2UgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6ICdFcnJvciBvbiBnZXQgYWxsIG1lc3NhZ2VzIGluIGNoYXQnLFxuICAgICAgZXJyb3I6IGUsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldENoYXRCeUlkKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICogI3N3YWdnZXIudGFncyA9IFtcIkNoYXRcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInBob25lXCJdID0ge1xuICAgICAgc2NoZW1hOiAnNTUyMTk5OTk5OTk5OSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wiaXNHcm91cFwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ2ZhbHNlJ1xuICAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lIH0gPSByZXEucGFyYW1zO1xuICBjb25zdCB7IGlzR3JvdXAgfSA9IHJlcS5xdWVyeTtcblxuICB0cnkge1xuICAgIGxldCByZXN1bHQgPSB7fSBhcyBDaGF0O1xuICAgIGlmIChpc0dyb3VwKSB7XG4gICAgICByZXN1bHQgPSBhd2FpdCByZXEuY2xpZW50LmdldENoYXRCeUlkKGAke3Bob25lfUBnLnVzYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IGF3YWl0IHJlcS5jbGllbnQuZ2V0Q2hhdEJ5SWQoYCR7cGhvbmV9QGMudXNgKTtcbiAgICB9XG5cbiAgICByZXMuc3RhdHVzKDIwMCkuanNvbihyZXN1bHQpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiAnRXJyb3IgY2hhbmdpbmcgY2hhdCBieSBJZCcsXG4gICAgICBlcnJvcjogZSxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TWVzc2FnZUJ5SWQocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiQ2hhdFwiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wibWVzc2FnZUlkXCJdID0ge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBzY2hlbWE6ICc8bWVzc2FnZV9pZD4nXG4gICAgIH1cbiAgICovXG4gIGNvbnN0IHNlc3Npb24gPSByZXEuc2Vzc2lvbjtcbiAgY29uc3QgeyBtZXNzYWdlSWQgfSA9IHJlcS5wYXJhbXM7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXEuY2xpZW50LmdldE1lc3NhZ2VCeUlkKG1lc3NhZ2VJZCk7XG5cbiAgICByZXR1cm5TdWNlc3MocmVzLCBzZXNzaW9uLCAocmVzdWx0IGFzIGFueSkuY2hhdElkLnVzZXIsIHJlc3VsdCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuRXJyb3IocmVxLCByZXMsIHNlc3Npb24sIGVycm9yKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QmF0dGVyeUxldmVsKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICogI3N3YWdnZXIudGFncyA9IFtcIk1pc2NcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICovXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXEuY2xpZW50LmdldEJhdHRlcnlMZXZlbCgpO1xuICAgIHJlcy5zdGF0dXMoMjAwKS5qc29uKHsgc3RhdHVzOiAnU3VjY2VzcycsIHJlc3BvbnNlOiByZXNwb25zZSB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gICAgcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm9yIHJldHJpZXZpbmcgYmF0dGVyeSBzdGF0dXMnLFxuICAgICAgZXJyb3I6IGUsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEhvc3REZXZpY2UocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiTWlzY1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgKi9cbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuZ2V0SG9zdERldmljZSgpO1xuICAgIGNvbnN0IHBob25lTnVtYmVyID0gYXdhaXQgcmVxLmNsaWVudC5nZXRXaWQoKTtcbiAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdzdWNjZXNzJyxcbiAgICAgIHJlc3BvbnNlOiB7IC4uLnJlc3BvbnNlLCBwaG9uZU51bWJlciB9LFxuICAgICAgbWFwcGVyOiAnZGV2aWNlJyxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gICAgcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm8gYW8gcmVjdXBlcmFyIGRhZG9zIGRvIHRlbGVmb25lJyxcbiAgICAgIGVycm9yOiBlLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQaG9uZU51bWJlcihyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJNaXNjXCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAqL1xuICB0cnkge1xuICAgIGNvbnN0IHBob25lTnVtYmVyID0gYXdhaXQgcmVxLmNsaWVudC5nZXRXaWQoKTtcbiAgICByZXNcbiAgICAgIC5zdGF0dXMoMjAwKVxuICAgICAgLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHBob25lTnVtYmVyLCBtYXBwZXI6ICdkZXZpY2UnIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiAnRXJyb3IgcmV0cmlldmluZyBwaG9uZSBudW1iZXInLFxuICAgICAgZXJyb3I6IGUsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEJsb2NrTGlzdChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJNaXNjXCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAqL1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuZ2V0QmxvY2tMaXN0KCk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBibG9ja2VkID0gcmVzcG9uc2UubWFwKChjb250YXRvOiBhbnkpID0+IHtcbiAgICAgIHJldHVybiB7IHBob25lOiBjb250YXRvID8gY29udGF0by5zcGxpdCgnQCcpWzBdIDogJycgfTtcbiAgICB9KTtcblxuICAgIHJlcy5zdGF0dXMoMjAwKS5qc29uKHsgc3RhdHVzOiAnc3VjY2VzcycsIHJlc3BvbnNlOiBibG9ja2VkIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiAnRXJyb3IgcmV0cmlldmluZyBibG9ja2VkIGNvbnRhY3QgbGlzdCcsXG4gICAgICBlcnJvcjogZSxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlQ2hhdChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJDaGF0XCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgXCJAY29udGVudFwiOiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICBwaG9uZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIGlzR3JvdXA6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4YW1wbGVzOiB7XG4gICAgICAgICAgICBcIkRlZmF1bHRcIjoge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIHBob25lOiBcIjU1MjE5OTk5OTk5OTlcIixcbiAgICAgICAgICAgICAgICBpc0dyb3VwOiBmYWxzZSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSB9ID0gcmVxLmJvZHk7XG4gIGNvbnN0IHNlc3Npb24gPSByZXEuc2Vzc2lvbjtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdHM6IGFueSA9IHt9O1xuICAgIGZvciAoY29uc3QgY29udGF0byBvZiBwaG9uZSkge1xuICAgICAgcmVzdWx0c1tjb250YXRvXSA9IGF3YWl0IHJlcS5jbGllbnQuZGVsZXRlQ2hhdChjb250YXRvKTtcbiAgICB9XG4gICAgcmV0dXJuU3VjZXNzKHJlcywgc2Vzc2lvbiwgcGhvbmUsIHJlc3VsdHMpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybkVycm9yKHJlcSwgcmVzLCBzZXNzaW9uLCBlcnJvcik7XG4gIH1cbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxldGVBbGxDaGF0cyhyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJDaGF0XCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAqL1xuICB0cnkge1xuICAgIGNvbnN0IGNoYXRzID0gYXdhaXQgcmVxLmNsaWVudC5nZXRBbGxDaGF0cygpO1xuICAgIGZvciAoY29uc3QgY2hhdCBvZiBjaGF0cykge1xuICAgICAgYXdhaXQgcmVxLmNsaWVudC5kZWxldGVDaGF0KChjaGF0IGFzIGFueSkuY2hhdElkKTtcbiAgICB9XG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJyB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGVycm9yKTtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiAnRXJyb3Igb24gZGVsZXRlIGFsbCBjaGF0cycsXG4gICAgICBlcnJvcjogZXJyb3IsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNsZWFyQ2hhdChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJDaGF0XCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgIFxuICAgICAjc3dhZ2dlci5yZXF1ZXN0Qm9keSA9IHtcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgcGhvbmU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBpc0dyb3VwOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBwaG9uZTogXCI1NTIxOTk5OTk5OTk5XCIsXG4gICAgICAgICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgIH1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUgfSA9IHJlcS5ib2R5O1xuICBjb25zdCBzZXNzaW9uID0gcmVxLnNlc3Npb247XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHRzOiBhbnkgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGNvbnRhdG8gb2YgcGhvbmUpIHtcbiAgICAgIHJlc3VsdHNbY29udGF0b10gPSBhd2FpdCByZXEuY2xpZW50LmNsZWFyQ2hhdChjb250YXRvKTtcbiAgICB9XG4gICAgcmV0dXJuU3VjZXNzKHJlcywgc2Vzc2lvbiwgcGhvbmUsIHJlc3VsdHMpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybkVycm9yKHJlcSwgcmVzLCBzZXNzaW9uLCBlcnJvcik7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNsZWFyQWxsQ2hhdHMocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiQ2hhdFwiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgKi9cbiAgdHJ5IHtcbiAgICBjb25zdCBjaGF0cyA9IGF3YWl0IHJlcS5jbGllbnQuZ2V0QWxsQ2hhdHMoKTtcbiAgICBmb3IgKGNvbnN0IGNoYXQgb2YgY2hhdHMpIHtcbiAgICAgIGF3YWl0IHJlcS5jbGllbnQuY2xlYXJDaGF0KGAkeyhjaGF0IGFzIGFueSkuY2hhdElkfWApO1xuICAgIH1cbiAgICByZXMuc3RhdHVzKDIwMSkuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXNcbiAgICAgIC5zdGF0dXMoNTAwKVxuICAgICAgLmpzb24oeyBzdGF0dXM6ICdlcnJvcicsIG1lc3NhZ2U6ICdFcnJvciBvbiBjbGVhciBhbGwgY2hhdHMnLCBlcnJvcjogZSB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXJjaGl2ZUNoYXQocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiQ2hhdFwiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICBcbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIHBob25lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgaXNHcm91cDogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgICB2YWx1ZTogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgIFwiRGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgcGhvbmU6IFwiNTUyMTk5OTk5OTk5OVwiLFxuICAgICAgICAgICAgICAgIGlzR3JvdXA6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB0cnVlLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lLCB2YWx1ZSA9IHRydWUgfSA9IHJlcS5ib2R5O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXEuY2xpZW50LmFyY2hpdmVDaGF0KGAke3Bob25lfWAsIHZhbHVlKTtcbiAgICByZXMuc3RhdHVzKDIwMSkuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogcmVzcG9uc2UgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIHJlc1xuICAgICAgLnN0YXR1cyg1MDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ2Vycm9yJywgbWVzc2FnZTogJ0Vycm9yIG9uIGFyY2hpdmUgY2hhdCcsIGVycm9yOiBlIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhcmNoaXZlQWxsQ2hhdHMocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiQ2hhdFwiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgKi9cbiAgdHJ5IHtcbiAgICBjb25zdCBjaGF0cyA9IGF3YWl0IHJlcS5jbGllbnQuZ2V0QWxsQ2hhdHMoKTtcbiAgICBmb3IgKGNvbnN0IGNoYXQgb2YgY2hhdHMpIHtcbiAgICAgIGF3YWl0IHJlcS5jbGllbnQuYXJjaGl2ZUNoYXQoYCR7KGNoYXQgYXMgYW55KS5jaGF0SWR9YCwgdHJ1ZSk7XG4gICAgfVxuICAgIHJlcy5zdGF0dXMoMjAxKS5qc29uKHsgc3RhdHVzOiAnc3VjY2VzcycgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6ICdFcnJvciBvbiBhcmNoaXZlIGFsbCBjaGF0cycsXG4gICAgICBlcnJvcjogZSxcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QWxsQ2hhdHNBcmNoaXZlZHMocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgKiAjc3dhZ2dlci50YWdzID0gW1wiQ2hhdFwiXVxuICAgKiAjc3dhZ2dlci5kZXNjcmlwdGlvbiA9ICdSZXRyaWV2ZXMgYWxsIGFyY2hpdmVkIGNoYXRzLidcbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICovXG4gIHRyeSB7XG4gICAgY29uc3QgY2hhdHMgPSBhd2FpdCByZXEuY2xpZW50LmdldEFsbENoYXRzKCk7XG4gICAgY29uc3QgYXJjaGl2ZWQgPSBbXSBhcyBhbnk7XG4gICAgZm9yIChjb25zdCBjaGF0IG9mIGNoYXRzKSB7XG4gICAgICBpZiAoY2hhdC5hcmNoaXZlID09PSB0cnVlKSB7XG4gICAgICAgIGFyY2hpdmVkLnB1c2goY2hhdCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJlcy5zdGF0dXMoMjAxKS5qc29uKGFyY2hpdmVkKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gICAgcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm9yIG9uIGFyY2hpdmUgYWxsIGNoYXRzJyxcbiAgICAgIGVycm9yOiBlLFxuICAgIH0pO1xuICB9XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlTWVzc2FnZShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJNZXNzYWdlc1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICBcbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIHBob25lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgaXNHcm91cDogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgICBtZXNzYWdlSWQ6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBvbmx5TG9jYWw6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgICAgZGVsZXRlTWVkaWFJbkRldmljZTogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgIFwiRGVsZXRlIG1lc3NhZ2UgdG8gYWxsXCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBwaG9uZTogXCI1NTIxOTk5OTk5OTk5XCIsXG4gICAgICAgICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgICAgICAgbWVzc2FnZUlkOiBcIjxtZXNzYWdlSWQ+XCIsXG4gICAgICAgICAgICAgICAgZGVsZXRlTWVkaWFJbkRldmljZTogdHJ1ZSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiRGVsZXRlIG1lc3NhZ2Ugb25seSBtZVwiOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgcGhvbmU6IFwiNTUyMTk5OTk5OTk5OVwiLFxuICAgICAgICAgICAgICAgIGlzR3JvdXA6IGZhbHNlLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2VJZDogXCI8bWVzc2FnZUlkPlwiLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lLCBtZXNzYWdlSWQsIGRlbGV0ZU1lZGlhSW5EZXZpY2UsIG9ubHlMb2NhbCB9ID0gcmVxLmJvZHk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXEuY2xpZW50LmRlbGV0ZU1lc3NhZ2UoXG4gICAgICBgJHtwaG9uZX1gLFxuICAgICAgbWVzc2FnZUlkLFxuICAgICAgb25seUxvY2FsLFxuICAgICAgZGVsZXRlTWVkaWFJbkRldmljZVxuICAgICk7XG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgcmVzXG4gICAgICAgIC5zdGF0dXMoMjAwKVxuICAgICAgICAuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogeyBtZXNzYWdlOiAnTWVzc2FnZSBkZWxldGVkJyB9IH0pO1xuICAgIH1cbiAgICByZXMuc3RhdHVzKDQwMSkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICByZXNwb25zZTogeyBtZXNzYWdlOiAnRXJyb3IgdW5rbm93biBvbiBkZWxldGUgbWVzc2FnZScgfSxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gICAgcmVzXG4gICAgICAuc3RhdHVzKDUwMClcbiAgICAgIC5qc29uKHsgc3RhdHVzOiAnZXJyb3InLCBtZXNzYWdlOiAnRXJyb3Igb24gZGVsZXRlIG1lc3NhZ2UnLCBlcnJvcjogZSB9KTtcbiAgfVxufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWN0TWVzc2FnZShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJNZXNzYWdlc1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5yZXF1ZXN0Qm9keSA9IHtcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgbXNnSWQ6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICByZWFjdGlvbjogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBtc2dJZDogXCI8bWVzc2FnZUlkPlwiLFxuICAgICAgICAgICAgICAgIHJlYWN0aW9uOiBcIvCfmJxcIixcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBtc2dJZCwgcmVhY3Rpb24gfSA9IHJlcS5ib2R5O1xuXG4gIHRyeSB7XG4gICAgYXdhaXQgcmVxLmNsaWVudC5zZW5kUmVhY3Rpb25Ub01lc3NhZ2UobXNnSWQsIHJlYWN0aW9uKTtcblxuICAgIHJlc1xuICAgICAgLnN0YXR1cygyMDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogeyBtZXNzYWdlOiAnUmVhY3Rpb24gc2VuZGVkJyB9IH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiAnRXJyb3Igb24gc2VuZCByZWFjdGlvbiB0byBtZXNzYWdlJyxcbiAgICAgIGVycm9yOiBlLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXBseShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLmRlcHJlY2F0ZWQ9dHJ1ZVxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgcGhvbmU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBpc0dyb3VwOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICAgIG1lc3NhZ2VpZDogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIHRleHQ6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgIFwiRGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgIHBob25lOiBcIjU1MjE5OTk5OTk5OTlcIixcbiAgICAgICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgICAgIG1lc3NhZ2VpZDogXCI8bWVzc2FnZUlkPlwiLFxuICAgICAgICAgICAgICB0ZXh0OiBcIlRleHQgdG8gcmVwbHlcIixcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSwgdGV4dCwgbWVzc2FnZWlkIH0gPSByZXEuYm9keTtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5yZXBseShgJHtwaG9uZX1AYy51c2AsIHRleHQsIG1lc3NhZ2VpZCk7XG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXNcbiAgICAgIC5zdGF0dXMoNTAwKVxuICAgICAgLmpzb24oeyBzdGF0dXM6ICdlcnJvcicsIG1lc3NhZ2U6ICdFcnJvciByZXBseWluZyBtZXNzYWdlJywgZXJyb3I6IGUgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZvcndhcmRNZXNzYWdlcyhyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAgICNzd2FnZ2VyLnRhZ3MgPSBbXCJNZXNzYWdlc1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5yZXF1ZXN0Qm9keSA9IHtcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgXCJAY29udGVudFwiOiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICBwaG9uZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIGlzR3JvdXA6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgICAgbWVzc2FnZUlkOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4YW1wbGVzOiB7XG4gICAgICAgICAgICBcIkRlZmF1bHRcIjoge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIHBob25lOiBcIjU1MjE5OTk5OTk5OTlcIixcbiAgICAgICAgICAgICAgICBpc0dyb3VwOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6IFwiPG1lc3NhZ2VJZD5cIixcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSwgbWVzc2FnZUlkLCBpc0dyb3VwID0gZmFsc2UgfSA9IHJlcS5ib2R5O1xuXG4gIHRyeSB7XG4gICAgbGV0IHJlc3BvbnNlO1xuXG4gICAgaWYgKCFpc0dyb3VwKSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuZm9yd2FyZE1lc3NhZ2VzVjIoYCR7cGhvbmVbMF19YCwgbWVzc2FnZUlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCByZXEuY2xpZW50LmZvcndhcmRNZXNzYWdlc1YyKGAke3Bob25lWzBdfWAsIG1lc3NhZ2VJZCk7XG4gICAgfVxuXG4gICAgcmVzLnN0YXR1cygyMDEpLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXNcbiAgICAgIC5zdGF0dXMoNTAwKVxuICAgICAgLmpzb24oeyBzdGF0dXM6ICdlcnJvcicsIG1lc3NhZ2U6ICdFcnJvciBmb3J3YXJkaW5nIG1lc3NhZ2UnLCBlcnJvcjogZSB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWFya1Vuc2Vlbk1lc3NhZ2UocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgcGhvbmU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBpc0dyb3VwOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBwaG9uZTogXCI1NTIxOTk5OTk5OTk5XCIsXG4gICAgICAgICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgIH1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUgfSA9IHJlcS5ib2R5O1xuXG4gIHRyeSB7XG4gICAgYXdhaXQgcmVxLmNsaWVudC5tYXJrVW5zZWVuTWVzc2FnZShgJHtwaG9uZX1gKTtcbiAgICByZXNcbiAgICAgIC5zdGF0dXMoMjAwKVxuICAgICAgLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHsgbWVzc2FnZTogJ3Vuc2VlbiBjaGVja2VkJyB9IH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXNcbiAgICAgIC5zdGF0dXMoNTAwKVxuICAgICAgLmpzb24oeyBzdGF0dXM6ICdlcnJvcicsIG1lc3NhZ2U6ICdFcnJvciBvbiBtYXJrIHVuc2VlbicsIGVycm9yOiBlIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBibG9ja0NvbnRhY3QocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiTWlzY1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5yZXF1ZXN0Qm9keSA9IHtcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgXCJAY29udGVudFwiOiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICBwaG9uZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIGlzR3JvdXA6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4YW1wbGVzOiB7XG4gICAgICAgICAgICBcIkRlZmF1bHRcIjoge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICBwaG9uZTogXCI1NTIxOTk5OTk5OTk5XCIsXG4gICAgICAgICAgICAgIGlzR3JvdXA6IGZhbHNlLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lIH0gPSByZXEuYm9keTtcblxuICB0cnkge1xuICAgIGF3YWl0IHJlcS5jbGllbnQuYmxvY2tDb250YWN0KGAke3Bob25lfWApO1xuICAgIHJlc1xuICAgICAgLnN0YXR1cygyMDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogeyBtZXNzYWdlOiAnQ29udGFjdCBibG9ja2VkJyB9IH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXNcbiAgICAgIC5zdGF0dXMoNTAwKVxuICAgICAgLmpzb24oeyBzdGF0dXM6ICdlcnJvcicsIG1lc3NhZ2U6ICdFcnJvciBvbiBibG9jayBjb250YWN0JywgZXJyb3I6IGUgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVuYmxvY2tDb250YWN0KHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIk1pc2NcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgcGhvbmU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBpc0dyb3VwOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgcGhvbmU6IFwiNTUyMTk5OTk5OTk5OVwiLFxuICAgICAgICAgICAgICBpc0dyb3VwOiBmYWxzZSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSB9ID0gcmVxLmJvZHk7XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCByZXEuY2xpZW50LnVuYmxvY2tDb250YWN0KGAke3Bob25lfWApO1xuICAgIHJlc1xuICAgICAgLnN0YXR1cygyMDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogeyBtZXNzYWdlOiAnQ29udGFjdCBVbkJsb2NrZWQnIH0gfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIHJlc1xuICAgICAgLnN0YXR1cyg1MDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ2Vycm9yJywgbWVzc2FnZTogJ0Vycm9yIG9uIHVubG9jayBjb250YWN0JywgZXJyb3I6IGUgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBpbkNoYXQocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiQ2hhdFwiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wib2JqXCJdID0ge1xuICAgICAgaW46ICdib2R5JyxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICAkcGhvbmU6ICc1NTIxOTk5OTk5OTk5JyxcbiAgICAgICAgJGlzR3JvdXA6IGZhbHNlLFxuICAgICAgICAkc3RhdGU6IHRydWUsXG4gICAgICB9XG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgcGhvbmU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBpc0dyb3VwOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICAgIHN0YXRlOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgcGhvbmU6IFwiNTUyMTk5OTk5OTk5OVwiLFxuICAgICAgICAgICAgICBzdGF0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSwgc3RhdGUgfSA9IHJlcS5ib2R5O1xuXG4gIHRyeSB7XG4gICAgZm9yIChjb25zdCBjb250YXRvIG9mIHBob25lKSB7XG4gICAgICBhd2FpdCByZXEuY2xpZW50LnBpbkNoYXQoY29udGF0bywgc3RhdGUgPT09ICd0cnVlJywgZmFsc2UpO1xuICAgIH1cblxuICAgIHJlc1xuICAgICAgLnN0YXR1cygyMDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogeyBtZXNzYWdlOiAnQ2hhdCBmaXhlZCcgfSB9KTtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiBlLnRleHQgfHwgJ0Vycm9yIG9uIHBpbiBjaGF0JyxcbiAgICAgIGVycm9yOiBlLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRQcm9maWxlUGljKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIlByb2ZpbGVcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIuY29uc3VtZXMgPSBbJ211bHRpcGFydC9mb3JtLWRhdGEnXSAgXG4gICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzWydmaWxlJ10gPSB7XG4gICAgICAgICAgaW46ICdmb3JtRGF0YScsXG4gICAgICAgICAgdHlwZTogJ2ZpbGUnLFxuICAgICAgICAgIHJlcXVpcmVkOiAndHJ1ZScsXG4gICAgICB9XG4gICAqL1xuICBpZiAoIXJlcS5maWxlKVxuICAgIHJlc1xuICAgICAgLnN0YXR1cyg0MDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ0Vycm9yJywgbWVzc2FnZTogJ0ZpbGUgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIScgfSk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCB7IHBhdGg6IHBhdGhGaWxlIH0gPSByZXEuZmlsZSBhcyBhbnk7XG5cbiAgICBhd2FpdCByZXEuY2xpZW50LnNldFByb2ZpbGVQaWMocGF0aEZpbGUpO1xuICAgIGF3YWl0IHVubGlua0FzeW5jKHBhdGhGaWxlKTtcblxuICAgIHJlcy5zdGF0dXMoMjAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLFxuICAgICAgcmVzcG9uc2U6IHsgbWVzc2FnZTogJ1Byb2ZpbGUgcGhvdG8gc3VjY2Vzc2Z1bGx5IGNoYW5nZWQnIH0sXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6ICdFcnJvciBjaGFuZ2luZyBwcm9maWxlIHBob3RvJyxcbiAgICAgIGVycm9yOiBlLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRVbnJlYWRNZXNzYWdlcyhyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAgICNzd2FnZ2VyLmRlcHJlY2F0ZWQ9dHJ1ZVxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICovXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXEuY2xpZW50LmdldFVucmVhZE1lc3NhZ2VzKGZhbHNlLCBmYWxzZSwgdHJ1ZSk7XG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICByZXNcbiAgICAgIC5zdGF0dXMoNTAwKVxuICAgICAgLmpzb24oeyBzdGF0dXM6ICdlcnJvcicsIHJlc3BvbnNlOiAnRXJyb3Igb24gb3BlbiBsaXN0JywgZXJyb3I6IGUgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldENoYXRJc09ubGluZShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAgICNzd2FnZ2VyLnRhZ3MgPSBbXCJDaGF0XCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJwaG9uZVwiXSA9IHtcbiAgICAgIHNjaGVtYTogJzU1MjE5OTk5OTk5OTknLFxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lIH0gPSByZXEucGFyYW1zO1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5nZXRDaGF0SXNPbmxpbmUoYCR7cGhvbmV9QGMudXNgKTtcbiAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogcmVzcG9uc2UgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIHJlc3BvbnNlOiAnRXJyb3Igb24gZ2V0IGNoYXQgaXMgb25saW5lJyxcbiAgICAgIGVycm9yOiBlLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRMYXN0U2VlbihyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAgICNzd2FnZ2VyLnRhZ3MgPSBbXCJDaGF0XCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJwaG9uZVwiXSA9IHtcbiAgICAgIHNjaGVtYTogJzU1MjE5OTk5OTk5OTknLFxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lIH0gPSByZXEucGFyYW1zO1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5nZXRMYXN0U2VlbihgJHtwaG9uZX1AYy51c2ApO1xuXG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIHJlc3BvbnNlOiAnRXJyb3Igb24gZ2V0IGNoYXQgbGFzdCBzZWVuJyxcbiAgICAgIGVycm9yOiBlcnJvcixcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TGlzdE11dGVzKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIkNoYXRcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInR5cGVcIl0gPSB7XG4gICAgICBzY2hlbWE6ICdhbGwnLFxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IHR5cGUgPSAnYWxsJyB9ID0gcmVxLnBhcmFtcztcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuZ2V0TGlzdE11dGVzKHR5cGUpO1xuXG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIHJlc3BvbnNlOiAnRXJyb3Igb24gZ2V0IGxpc3QgbXV0ZXMnLFxuICAgICAgZXJyb3I6IGVycm9yLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkQW5kR2V0QWxsTWVzc2FnZXNJbkNoYXQocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci5kZXByZWNhdGVkPXRydWVcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIkNoYXRcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInBob25lXCJdID0ge1xuICAgICAgc2NoZW1hOiAnNTUyMTk5OTk5OTk5OSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wiaW5jbHVkZU1lXCJdID0ge1xuICAgICAgc2NoZW1hOiAndHJ1ZSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wiaW5jbHVkZU5vdGlmaWNhdGlvbnNcIl0gPSB7XG4gICAgICBzY2hlbWE6ICdmYWxzZSdcbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSwgaW5jbHVkZU1lID0gdHJ1ZSwgaW5jbHVkZU5vdGlmaWNhdGlvbnMgPSBmYWxzZSB9ID0gcmVxLnBhcmFtcztcbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQubG9hZEFuZEdldEFsbE1lc3NhZ2VzSW5DaGF0KFxuICAgICAgYCR7cGhvbmV9QGMudXNgLFxuICAgICAgaW5jbHVkZU1lIGFzIGJvb2xlYW4sXG4gICAgICBpbmNsdWRlTm90aWZpY2F0aW9ucyBhcyBib29sZWFuXG4gICAgKTtcblxuICAgIHJlcy5zdGF0dXMoMjAwKS5qc29uKHsgc3RhdHVzOiAnc3VjY2VzcycsIHJlc3BvbnNlOiByZXNwb25zZSB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGVycm9yKTtcbiAgICByZXNcbiAgICAgIC5zdGF0dXMoNTAwKVxuICAgICAgLmpzb24oeyBzdGF0dXM6ICdlcnJvcicsIHJlc3BvbnNlOiAnRXJyb3Igb24gb3BlbiBsaXN0JywgZXJyb3I6IGVycm9yIH0pO1xuICB9XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TWVzc2FnZXMocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInBob25lXCJdID0ge1xuICAgICAgc2NoZW1hOiAnNTUyMTk5OTk5OTk5OUBjLnVzJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJjb3VudFwiXSA9IHtcbiAgICAgIHNjaGVtYTogJzIwJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJkaXJlY3Rpb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdiZWZvcmUnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcImlkXCJdID0ge1xuICAgICAgc2NoZW1hOiAnPG1lc3NhZ2VfaWRfdG9fdXNlX2RpcmVjdGlvbj4nXG4gICAgIH1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUgfSA9IHJlcS5wYXJhbXM7XG4gIGNvbnN0IHsgY291bnQgPSAyMCwgZGlyZWN0aW9uID0gJ2JlZm9yZScsIGlkID0gbnVsbCB9ID0gcmVxLnF1ZXJ5O1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5nZXRNZXNzYWdlcyhgJHtwaG9uZX1gLCB7XG4gICAgICBjb3VudDogcGFyc2VJbnQoY291bnQgYXMgc3RyaW5nKSxcbiAgICAgIGRpcmVjdGlvbjogZGlyZWN0aW9uLnRvU3RyaW5nKCkgYXMgYW55LFxuICAgICAgaWQ6IGlkIGFzIHN0cmluZyxcbiAgICB9KTtcbiAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogcmVzcG9uc2UgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIHJlc1xuICAgICAgLnN0YXR1cyg0MDEpXG4gICAgICAuanNvbih7IHN0YXR1czogJ2Vycm9yJywgcmVzcG9uc2U6ICdFcnJvciBvbiBvcGVuIGxpc3QnLCBlcnJvcjogZSB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZENvbnRhY3RWY2FyZChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAgICNzd2FnZ2VyLnRhZ3MgPSBbXCJNZXNzYWdlc1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5yZXF1ZXN0Qm9keSA9IHtcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgXCJAY29udGVudFwiOiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICBwaG9uZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIGlzR3JvdXA6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgICAgbmFtZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICAgIGNvbnRhY3RzSWQ6IHsgdHlwZTogXCJhcnJheVwiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBwaG9uZTogXCI1NTIxOTk5OTk5OTk5XCIsXG4gICAgICAgICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgICAgICAgbmFtZTogJ05hbWUgb2YgY29udGFjdCcsXG4gICAgICAgICAgICAgICAgY29udGFjdHNJZDogWyc1NTIxOTk5OTk5OTk5J10sXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgIH1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUsIGNvbnRhY3RzSWQsIG5hbWUgPSBudWxsLCBpc0dyb3VwID0gZmFsc2UgfSA9IHJlcS5ib2R5O1xuICB0cnkge1xuICAgIGxldCByZXNwb25zZTtcbiAgICBmb3IgKGNvbnN0IGNvbnRhdG8gb2YgY29udGFjdFRvQXJyYXkocGhvbmUsIGlzR3JvdXApKSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuc2VuZENvbnRhY3RWY2FyZChcbiAgICAgICAgYCR7Y29udGF0b31gLFxuICAgICAgICBjb250YWN0c0lkLFxuICAgICAgICBuYW1lXG4gICAgICApO1xuICAgIH1cblxuICAgIHJlcy5zdGF0dXMoMjAwKS5qc29uKHsgc3RhdHVzOiAnc3VjY2VzcycsIHJlc3BvbnNlOiByZXNwb25zZSB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGVycm9yKTtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiAnRXJyb3Igb24gc2VuZCBjb250YWN0IHZjYXJkJyxcbiAgICAgIGVycm9yOiBlcnJvcixcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VuZE11dGUocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiQ2hhdFwiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIHBob25lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgaXNHcm91cDogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgICB0aW1lOiB7IHR5cGU6IFwibnVtYmVyXCIgfSxcbiAgICAgICAgICAgICAgdHlwZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBwaG9uZTogXCI1NTIxOTk5OTk5OTk5XCIsXG4gICAgICAgICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdGltZTogMSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnaG91cnMnLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lLCB0aW1lLCB0eXBlID0gJ2hvdXJzJywgaXNHcm91cCA9IGZhbHNlIH0gPSByZXEuYm9keTtcblxuICB0cnkge1xuICAgIGxldCByZXNwb25zZTtcbiAgICBmb3IgKGNvbnN0IGNvbnRhdG8gb2YgY29udGFjdFRvQXJyYXkocGhvbmUsIGlzR3JvdXApKSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuc2VuZE11dGUoYCR7Y29udGF0b31gLCB0aW1lLCB0eXBlKTtcbiAgICB9XG5cbiAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogcmVzcG9uc2UgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgcmVzXG4gICAgICAuc3RhdHVzKDUwMClcbiAgICAgIC5qc29uKHsgc3RhdHVzOiAnZXJyb3InLCBtZXNzYWdlOiAnRXJyb3Igb24gc2VuZCBtdXRlJywgZXJyb3I6IGVycm9yIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZW5kU2VlbihyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAgICNzd2FnZ2VyLnRhZ3MgPSBbXCJDaGF0XCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIHBob25lOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgaXNHcm91cDogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgIFwiRGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgcGhvbmU6IFwiNTUyMTk5OTk5OTk5OVwiLFxuICAgICAgICAgICAgICAgIGlzR3JvdXA6IGZhbHNlLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IHBob25lIH0gPSByZXEuYm9keTtcbiAgY29uc3Qgc2Vzc2lvbiA9IHJlcS5zZXNzaW9uO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0czogYW55ID0gW107XG4gICAgZm9yIChjb25zdCBjb250YXRvIG9mIHBob25lKSB7XG4gICAgICByZXN1bHRzLnB1c2goYXdhaXQgcmVxLmNsaWVudC5zZW5kU2Vlbihjb250YXRvKSk7XG4gICAgfVxuICAgIHJldHVyblN1Y2VzcyhyZXMsIHNlc3Npb24sIHBob25lLCByZXN1bHRzKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm5FcnJvcihyZXEsIHJlcywgc2Vzc2lvbiwgZXJyb3IpO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRDaGF0U3RhdGUocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci5kZXByZWNhdGVkPXRydWVcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIkNoYXRcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgcGhvbmU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBpc0dyb3VwOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICAgIGNoYXRzdGF0ZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBwaG9uZTogXCI1NTIxOTk5OTk5OTk5XCIsXG4gICAgICAgICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgICAgICAgY2hhdHN0YXRlOiBcIjFcIixcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSwgY2hhdHN0YXRlLCBpc0dyb3VwID0gZmFsc2UgfSA9IHJlcS5ib2R5O1xuXG4gIHRyeSB7XG4gICAgbGV0IHJlc3BvbnNlO1xuICAgIGZvciAoY29uc3QgY29udGF0byBvZiBjb250YWN0VG9BcnJheShwaG9uZSwgaXNHcm91cCkpIHtcbiAgICAgIHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5zZXRDaGF0U3RhdGUoYCR7Y29udGF0b31gLCBjaGF0c3RhdGUpO1xuICAgIH1cblxuICAgIHJlcy5zdGF0dXMoMjAwKS5qc29uKHsgc3RhdHVzOiAnc3VjY2VzcycsIHJlc3BvbnNlOiByZXNwb25zZSB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGVycm9yKTtcbiAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7XG4gICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICBtZXNzYWdlOiAnRXJyb3Igb24gc2VuZCBjaGF0IHN0YXRlJyxcbiAgICAgIGVycm9yOiBlcnJvcixcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2V0VGVtcG9yYXJ5TWVzc2FnZXMocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgcGhvbmU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBpc0dyb3VwOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICAgIHZhbHVlOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBwaG9uZTogXCI1NTIxOTk5OTk5OTk5XCIsXG4gICAgICAgICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRydWUsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgIH1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUsIHZhbHVlID0gdHJ1ZSwgaXNHcm91cCA9IGZhbHNlIH0gPSByZXEuYm9keTtcblxuICB0cnkge1xuICAgIGxldCByZXNwb25zZTtcbiAgICBmb3IgKGNvbnN0IGNvbnRhdG8gb2YgY29udGFjdFRvQXJyYXkocGhvbmUsIGlzR3JvdXApKSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuc2V0VGVtcG9yYXJ5TWVzc2FnZXMoYCR7Y29udGF0b31gLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6ICdFcnJvciBvbiBzZXQgdGVtcG9yYXJ5IG1lc3NhZ2VzJyxcbiAgICAgIGVycm9yOiBlcnJvcixcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2V0VHlwaW5nKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIkNoYXRcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgcGhvbmU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBpc0dyb3VwOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICAgIHZhbHVlOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBwaG9uZTogXCI1NTIxOTk5OTk5OTk5XCIsXG4gICAgICAgICAgICAgICAgaXNHcm91cDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRydWUsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgIH1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUsIHZhbHVlID0gdHJ1ZSwgaXNHcm91cCA9IGZhbHNlIH0gPSByZXEuYm9keTtcbiAgdHJ5IHtcbiAgICBsZXQgcmVzcG9uc2U7XG4gICAgZm9yIChjb25zdCBjb250YXRvIG9mIGNvbnRhY3RUb0FycmF5KHBob25lLCBpc0dyb3VwKSkge1xuICAgICAgaWYgKHZhbHVlKSByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuc3RhcnRUeXBpbmcoY29udGF0byk7XG4gICAgICBlbHNlIHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5zdG9wVHlwaW5nKGNvbnRhdG8pO1xuICAgIH1cblxuICAgIHJlcy5zdGF0dXMoMjAwKS5qc29uKHsgc3RhdHVzOiAnc3VjY2VzcycsIHJlc3BvbnNlOiByZXNwb25zZSB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGVycm9yKTtcbiAgICByZXNcbiAgICAgIC5zdGF0dXMoNTAwKVxuICAgICAgLmpzb24oeyBzdGF0dXM6ICdlcnJvcicsIG1lc3NhZ2U6ICdFcnJvciBvbiBzZXQgdHlwaW5nJywgZXJyb3I6IGVycm9yIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRSZWNvcmRpbmcocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiQ2hhdFwiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICBcbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgcGhvbmU6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgICBpc0dyb3VwOiB7IHR5cGU6IFwiYm9vbGVhblwiIH0sXG4gICAgICAgICAgICAgIGR1cmF0aW9uOiB7IHR5cGU6IFwibnVtYmVyXCIgfSxcbiAgICAgICAgICAgICAgdmFsdWU6IHsgdHlwZTogXCJib29sZWFuXCIgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4YW1wbGVzOiB7XG4gICAgICAgICAgICBcIkRlZmF1bHRcIjoge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIHBob25lOiBcIjU1MjE5OTk5OTk5OTlcIixcbiAgICAgICAgICAgICAgICBpc0dyb3VwOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogNSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSwgdmFsdWUgPSB0cnVlLCBkdXJhdGlvbiwgaXNHcm91cCA9IGZhbHNlIH0gPSByZXEuYm9keTtcbiAgdHJ5IHtcbiAgICBsZXQgcmVzcG9uc2U7XG4gICAgZm9yIChjb25zdCBjb250YXRvIG9mIGNvbnRhY3RUb0FycmF5KHBob25lLCBpc0dyb3VwKSkge1xuICAgICAgaWYgKHZhbHVlKSByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuc3RhcnRSZWNvcmRpbmcoY29udGF0bywgZHVyYXRpb24pO1xuICAgICAgZWxzZSByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuc3RvcFJlY29yZGluZyhjb250YXRvKTtcbiAgICB9XG5cbiAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogcmVzcG9uc2UgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm9yIG9uIHNldCByZWNvcmRpbmcnLFxuICAgICAgZXJyb3I6IGVycm9yLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjaGVja051bWJlclN0YXR1cyhyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAgICNzd2FnZ2VyLnRhZ3MgPSBbXCJNaXNjXCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJwaG9uZVwiXSA9IHtcbiAgICAgIHNjaGVtYTogJzU1MjE5OTk5OTk5OTknXG4gICAgIH1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUgfSA9IHJlcS5wYXJhbXM7XG4gIHRyeSB7XG4gICAgbGV0IHJlc3BvbnNlO1xuICAgIGZvciAoY29uc3QgY29udGF0byBvZiBjb250YWN0VG9BcnJheShwaG9uZSwgZmFsc2UpKSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuY2hlY2tOdW1iZXJTdGF0dXMoYCR7Y29udGF0b31gKTtcbiAgICB9XG5cbiAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogcmVzcG9uc2UgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm9yIG9uIGNoZWNrIG51bWJlciBzdGF0dXMnLFxuICAgICAgZXJyb3I6IGVycm9yLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRDb250YWN0KHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIkNoYXRcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInBob25lXCJdID0ge1xuICAgICAgc2NoZW1hOiAnNTUyMTk5OTk5OTk5OSdcbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSA9IHRydWUgfSA9IHJlcS5wYXJhbXM7XG4gIHRyeSB7XG4gICAgbGV0IHJlc3BvbnNlO1xuICAgIGZvciAoY29uc3QgY29udGF0byBvZiBjb250YWN0VG9BcnJheShwaG9uZSBhcyBzdHJpbmcsIGZhbHNlKSkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCByZXEuY2xpZW50LmdldENvbnRhY3QoY29udGF0byk7XG4gICAgfVxuXG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlc1xuICAgICAgLnN0YXR1cyg1MDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ2Vycm9yJywgbWVzc2FnZTogJ0Vycm9yIG9uIGdldCBjb250YWN0JywgZXJyb3I6IGVycm9yIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBbGxDb250YWN0cyhyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJDb250YWN0XCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAqL1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5nZXRBbGxDb250YWN0cygpO1xuXG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6ICdFcnJvciBvbiBnZXQgYWxsIGNvbnN0YWN0cycsXG4gICAgICBlcnJvcjogZXJyb3IsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldE51bWJlclByb2ZpbGUocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci5kZXByZWNhdGVkPXRydWVcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIkNoYXRcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInBob25lXCJdID0ge1xuICAgICAgc2NoZW1hOiAnNTUyMTk5OTk5OTk5OSdcbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSA9IHRydWUgfSA9IHJlcS5wYXJhbXM7XG4gIHRyeSB7XG4gICAgbGV0IHJlc3BvbnNlO1xuICAgIGZvciAoY29uc3QgY29udGF0byBvZiBjb250YWN0VG9BcnJheShwaG9uZSBhcyBzdHJpbmcsIGZhbHNlKSkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCByZXEuY2xpZW50LmdldE51bWJlclByb2ZpbGUoY29udGF0byk7XG4gICAgfVxuXG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6ICdFcnJvciBvbiBnZXQgbnVtYmVyIHByb2ZpbGUnLFxuICAgICAgZXJyb3I6IGVycm9yLFxuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQcm9maWxlUGljRnJvbVNlcnZlcihyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAgICNzd2FnZ2VyLnRhZ3MgPSBbXCJDb250YWN0XCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJwaG9uZVwiXSA9IHtcbiAgICAgIHNjaGVtYTogJzU1MjE5OTk5OTk5OTknXG4gICAgIH1cbiAgICovXG4gIGNvbnN0IHsgcGhvbmUgPSB0cnVlIH0gPSByZXEucGFyYW1zO1xuICBjb25zdCB7IGlzR3JvdXAgPSBmYWxzZSB9ID0gcmVxLnF1ZXJ5O1xuICB0cnkge1xuICAgIGxldCByZXNwb25zZTtcbiAgICBmb3IgKGNvbnN0IGNvbnRhdG8gb2YgY29udGFjdFRvQXJyYXkocGhvbmUgYXMgc3RyaW5nLCBpc0dyb3VwIGFzIGJvb2xlYW4pKSB7XG4gICAgICByZXNwb25zZSA9IGF3YWl0IHJlcS5jbGllbnQuZ2V0UHJvZmlsZVBpY0Zyb21TZXJ2ZXIoY29udGF0byk7XG4gICAgfVxuXG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6ICdFcnJvciBvbiAgZ2V0IHByb2ZpbGUgcGljJyxcbiAgICAgIGVycm9yOiBlcnJvcixcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0U3RhdHVzKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIkNvbnRhY3RcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInBob25lXCJdID0ge1xuICAgICAgc2NoZW1hOiAnNTUyMTk5OTk5OTk5OSdcbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBwaG9uZSA9IHRydWUgfSA9IHJlcS5wYXJhbXM7XG4gIHRyeSB7XG4gICAgbGV0IHJlc3BvbnNlO1xuICAgIGZvciAoY29uc3QgY29udGF0byBvZiBjb250YWN0VG9BcnJheShwaG9uZSBhcyBzdHJpbmcsIGZhbHNlKSkge1xuICAgICAgcmVzcG9uc2UgPSBhd2FpdCByZXEuY2xpZW50LmdldFN0YXR1cyhjb250YXRvKTtcbiAgICB9XG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlc1xuICAgICAgLnN0YXR1cyg1MDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ2Vycm9yJywgbWVzc2FnZTogJ0Vycm9yIG9uICBnZXQgc3RhdHVzJywgZXJyb3I6IGVycm9yIH0pO1xuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRQcm9maWxlU3RhdHVzKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIlByb2ZpbGVcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcIm9ialwiXSA9IHtcbiAgICAgIGluOiAnYm9keScsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgJHN0YXR1czogJ015IG5ldyBzdGF0dXMnLFxuICAgICAgfVxuICAgICB9XG4gICAgIFxuICAgICAjc3dhZ2dlci5yZXF1ZXN0Qm9keSA9IHtcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgXCJAY29udGVudFwiOiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgICB0eXBlOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICBzdGF0dXM6IHsgdHlwZTogXCJzdHJpbmdcIiB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgIFwiRGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgc3RhdHVzOiBcIk15IG5ldyBzdGF0dXNcIixcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBzdGF0dXMgfSA9IHJlcS5ib2R5O1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5zZXRQcm9maWxlU3RhdHVzKHN0YXR1cyk7XG5cbiAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogcmVzcG9uc2UgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIHJlc1xuICAgICAgLnN0YXR1cyg1MDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ2Vycm9yJywgbWVzc2FnZTogJ0Vycm9yIG9uIHNldCBwcm9maWxlIHN0YXR1cycgfSk7XG4gIH1cbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWplY3RDYWxsKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSkge1xuICAvKipcbiAgICAgI3N3YWdnZXIudGFncyA9IFtcIk1pc2NcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgXG4gICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIGNhbGxJZDogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBjYWxsSWQ6IFwiPGNhbGxpZD5cIixcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICAgKi9cbiAgY29uc3QgeyBjYWxsSWQgfSA9IHJlcS5ib2R5O1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5yZWplY3RDYWxsKGNhbGxJZCk7XG5cbiAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCByZXNwb25zZTogcmVzcG9uc2UgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIHJlc1xuICAgICAgLnN0YXR1cyg1MDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ2Vycm9yJywgbWVzc2FnZTogJ0Vycm9yIG9uIHJlamVjdENhbGwnLCBlcnJvcjogZSB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc3Rhck1lc3NhZ2UocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucmVxdWVzdEJvZHkgPSB7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIFwiQGNvbnRlbnRcIjoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjoge1xuICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgdHlwZTogXCJvYmplY3RcIixcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgbWVzc2FnZUlkOiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgc3RhcjogeyB0eXBlOiBcImJvb2xlYW5cIiB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZXhhbXBsZXM6IHtcbiAgICAgICAgICAgIFwiRGVmYXVsdFwiOiB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZUlkOiBcIjU1MjE5OTk5OTk5OTlcIixcbiAgICAgICAgICAgICAgICBzdGFyOiB0cnVlLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IG1lc3NhZ2VJZCwgc3RhciA9IHRydWUgfSA9IHJlcS5ib2R5O1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5zdGFyTWVzc2FnZShtZXNzYWdlSWQsIHN0YXIpO1xuXG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6ICdFcnJvciBvbiAgc3RhcnQgbWVzc2FnZScsXG4gICAgICBlcnJvcjogZXJyb3IsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFJlYWN0aW9ucyhyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAgICNzd2FnZ2VyLnRhZ3MgPSBbXCJNZXNzYWdlc1wiXVxuICAgICAjc3dhZ2dlci5hdXRvQm9keT1mYWxzZVxuICAgICAjc3dhZ2dlci5zZWN1cml0eSA9IFt7XG4gICAgICAgICAgICBcImJlYXJlckF1dGhcIjogW11cbiAgICAgfV1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcInNlc3Npb25cIl0gPSB7XG4gICAgICBzY2hlbWE6ICdORVJEV0hBVFNfQU1FUklDQSdcbiAgICAgfVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wibWVzc2FnZUlkXCJdID0ge1xuICAgICAgc2NoZW1hOiAnPG1lc3NhZ2VJZD4nXG4gICAgIH1cbiAgICovXG4gIGNvbnN0IG1lc3NhZ2VJZCA9IHJlcS5wYXJhbXMuaWQ7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXEuY2xpZW50LmdldFJlYWN0aW9ucyhtZXNzYWdlSWQpO1xuXG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlcy5zdGF0dXMoNTAwKS5qc29uKHtcbiAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgIG1lc3NhZ2U6ICdFcnJvciBvbiBnZXQgcmVhY3Rpb25zJyxcbiAgICAgIGVycm9yOiBlcnJvcixcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Vm90ZXMocmVxOiBSZXF1ZXN0LCByZXM6IFJlc3BvbnNlKSB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiTWVzc2FnZXNcIl1cbiAgICAgI3N3YWdnZXIuYXV0b0JvZHk9ZmFsc2VcbiAgICAgI3N3YWdnZXIuc2VjdXJpdHkgPSBbe1xuICAgICAgICAgICAgXCJiZWFyZXJBdXRoXCI6IFtdXG4gICAgIH1dXG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJzZXNzaW9uXCJdID0ge1xuICAgICAgc2NoZW1hOiAnTkVSRFdIQVRTX0FNRVJJQ0EnXG4gICAgIH1cbiAgICAgI3N3YWdnZXIucGFyYW1ldGVyc1tcIm1lc3NhZ2VJZFwiXSA9IHtcbiAgICAgIHNjaGVtYTogJzxtZXNzYWdlSWQ+J1xuICAgICB9XG4gICAqL1xuICBjb25zdCBtZXNzYWdlSWQgPSByZXEucGFyYW1zLmlkO1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgcmVxLmNsaWVudC5nZXRWb3RlcyhtZXNzYWdlSWQpO1xuXG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgcmVzcG9uc2U6IHJlc3BvbnNlIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgIHJlc1xuICAgICAgLnN0YXR1cyg1MDApXG4gICAgICAuanNvbih7IHN0YXR1czogJ2Vycm9yJywgbWVzc2FnZTogJ0Vycm9yIG9uIGdldCB2b3RlcycsIGVycm9yOiBlcnJvciB9KTtcbiAgfVxufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNoYXRXb290KHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSk6IFByb21pc2U8YW55PiB7XG4gIC8qKlxuICAgICAjc3dhZ2dlci50YWdzID0gW1wiTWlzY1wiXVxuICAgICAjc3dhZ2dlci5kZXNjcmlwdGlvbiA9ICdZb3UgY2FuIHBvaW50IHlvdXIgQ2hhdHdvb3QgdG8gdGhpcyByb3V0ZSBzbyB0aGF0IGl0IGNhbiBwZXJmb3JtIGZ1bmN0aW9ucy4nXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnJlcXVlc3RCb2R5ID0ge1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBcIkBjb250ZW50XCI6IHtcbiAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIHR5cGU6IFwib2JqZWN0XCIsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIGV2ZW50OiB7IHR5cGU6IFwic3RyaW5nXCIgfSxcbiAgICAgICAgICAgICAgcHJpdmF0ZTogeyB0eXBlOiBcInN0cmluZ1wiIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGFtcGxlczoge1xuICAgICAgICAgICAgXCJEZWZhdWx0XCI6IHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlSWQ6IFwiY29udmVyc2F0aW9uX3N0YXR1c19jaGFuZ2VkXCIsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZTogXCJmYWxzZVwiLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICB9XG4gICAqL1xuICBjb25zdCB7IHNlc3Npb24gfSA9IHJlcS5wYXJhbXM7XG4gIGNvbnN0IGNsaWVudDogYW55ID0gY2xpZW50c0FycmF5W3Nlc3Npb25dO1xuICBpZiAoY2xpZW50ID09IG51bGwgfHwgY2xpZW50LnN0YXR1cyAhPT0gJ0NPTk5FQ1RFRCcpIHJldHVybjtcbiAgdHJ5IHtcbiAgICBpZiAoYXdhaXQgY2xpZW50LmlzQ29ubmVjdGVkKCkpIHtcbiAgICAgIGNvbnN0IGV2ZW50ID0gcmVxLmJvZHkuZXZlbnQ7XG4gICAgICBjb25zdCBpc19wcml2YXRlID0gcmVxLmJvZHkucHJpdmF0ZSB8fCByZXEuYm9keS5pc19wcml2YXRlO1xuXG4gICAgICBpZiAoXG4gICAgICAgIGV2ZW50ID09ICdjb252ZXJzYXRpb25fc3RhdHVzX2NoYW5nZWQnIHx8XG4gICAgICAgIGV2ZW50ID09ICdjb252ZXJzYXRpb25fcmVzb2x2ZWQnIHx8XG4gICAgICAgIGlzX3ByaXZhdGVcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gcmVzXG4gICAgICAgICAgLnN0YXR1cygyMDApXG4gICAgICAgICAgLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgbWVzc2FnZTogJ1N1Y2Nlc3Mgb24gcmVjZWl2ZSBjaGF0d29vdCcgfSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHtcbiAgICAgICAgbWVzc2FnZV90eXBlLFxuICAgICAgICBwaG9uZSA9IHJlcS5ib2R5LmNvbnZlcnNhdGlvbi5tZXRhLnNlbmRlci5waG9uZV9udW1iZXIucmVwbGFjZSgnKycsICcnKSxcbiAgICAgICAgbWVzc2FnZSA9IHJlcS5ib2R5LmNvbnZlcnNhdGlvbi5tZXNzYWdlc1swXSxcbiAgICAgIH0gPSByZXEuYm9keTtcblxuICAgICAgaWYgKGV2ZW50ICE9ICdtZXNzYWdlX2NyZWF0ZWQnICYmIG1lc3NhZ2VfdHlwZSAhPSAnb3V0Z29pbmcnKVxuICAgICAgICByZXR1cm4gcmVzXG4gICAgICAgICAgLnN0YXR1cygyMDApXG4gICAgICAgICAgLmpzb24oeyBzdGF0dXM6ICdzdWNjZXNzJywgbWVzc2FnZTogJ1N1Y2Nlc3Mgb24gcmVjZWl2ZSBjaGF0d29vdCcgfSk7XG4gICAgICBmb3IgKGNvbnN0IGNvbnRhdG8gb2YgY29udGFjdFRvQXJyYXkocGhvbmUsIGZhbHNlKSkge1xuICAgICAgICBpZiAobWVzc2FnZV90eXBlID09ICdvdXRnb2luZycpIHtcbiAgICAgICAgICBpZiAobWVzc2FnZS5hdHRhY2htZW50cykge1xuICAgICAgICAgICAgY29uc3QgYmFzZV91cmwgPSBgJHtcbiAgICAgICAgICAgICAgY2xpZW50LmNvbmZpZy5jaGF0V29vdC5iYXNlVVJMXG4gICAgICAgICAgICB9LyR7bWVzc2FnZS5hdHRhY2htZW50c1swXS5kYXRhX3VybC5zdWJzdHJpbmcoXG4gICAgICAgICAgICAgIG1lc3NhZ2UuYXR0YWNobWVudHNbMF0uZGF0YV91cmwuaW5kZXhPZignL3JhaWxzLycpICsgMVxuICAgICAgICAgICAgKX1gO1xuXG4gICAgICAgICAgICAvLyBDaGVjayBpZiBhdHRhY2htZW50cyBpcyBQdXNoLXRvLXRhbGsgYW5kIHNlbmQgdGhpc1xuICAgICAgICAgICAgaWYgKG1lc3NhZ2UuYXR0YWNobWVudHNbMF0uZmlsZV90eXBlID09PSAnYXVkaW8nKSB7XG4gICAgICAgICAgICAgIGF3YWl0IGNsaWVudC5zZW5kUHR0KFxuICAgICAgICAgICAgICAgIGAke2NvbnRhdG99YCxcbiAgICAgICAgICAgICAgICBiYXNlX3VybCxcbiAgICAgICAgICAgICAgICAnVm9pY2UgQXVkaW8nLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2UuY29udGVudFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgYXdhaXQgY2xpZW50LnNlbmRGaWxlKFxuICAgICAgICAgICAgICAgIGAke2NvbnRhdG99YCxcbiAgICAgICAgICAgICAgICBiYXNlX3VybCxcbiAgICAgICAgICAgICAgICAnZmlsZScsXG4gICAgICAgICAgICAgICAgbWVzc2FnZS5jb250ZW50XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF3YWl0IGNsaWVudC5zZW5kVGV4dChjb250YXRvLCBtZXNzYWdlLmNvbnRlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmVzXG4gICAgICAgIC5zdGF0dXMoMjAwKVxuICAgICAgICAuanNvbih7IHN0YXR1czogJ3N1Y2Nlc3MnLCBtZXNzYWdlOiAnU3VjY2VzcyBvbiAgcmVjZWl2ZSBjaGF0d29vdCcgfSk7XG4gICAgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5sb2coZSk7XG4gICAgcmVzLnN0YXR1cyg0MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm9yIG9uICByZWNlaXZlIGNoYXR3b290JyxcbiAgICAgIGVycm9yOiBlLFxuICAgIH0pO1xuICB9XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UGxhdGZvcm1Gcm9tTWVzc2FnZShyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UpIHtcbiAgLyoqXG4gICAqICNzd2FnZ2VyLnRhZ3MgPSBbXCJNaXNjXCJdXG4gICAgICNzd2FnZ2VyLmF1dG9Cb2R5PWZhbHNlXG4gICAgICNzd2FnZ2VyLnNlY3VyaXR5ID0gW3tcbiAgICAgICAgICAgIFwiYmVhcmVyQXV0aFwiOiBbXVxuICAgICB9XVxuICAgICAjc3dhZ2dlci5wYXJhbWV0ZXJzW1wic2Vzc2lvblwiXSA9IHtcbiAgICAgIHNjaGVtYTogJ05FUkRXSEFUU19BTUVSSUNBJ1xuICAgICB9XG4gICAgICNzd2FnZ2VyLnBhcmFtZXRlcnNbXCJtZXNzYWdlSWRcIl0gPSB7XG4gICAgICBzY2hlbWE6ICc8bWVzc2FnZUlkPidcbiAgICAgfVxuICAgKi9cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXEuY2xpZW50LmdldFBsYXRmb3JtRnJvbU1lc3NhZ2UoXG4gICAgICByZXEucGFyYW1zLm1lc3NhZ2VJZFxuICAgICk7XG4gICAgcmVzLnN0YXR1cygyMDApLmpzb24ocmVzdWx0KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gICAgcmVzLnN0YXR1cyg1MDApLmpzb24oe1xuICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgbWVzc2FnZTogJ0Vycm9yIG9uIGdldCBnZXQgcGxhdGZvcm0gZnJvbSBtZXNzYWdlJyxcbiAgICAgIGVycm9yOiBlLFxuICAgIH0pO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtCQSxJQUFBQSxVQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxZQUFBLEdBQUFELE9BQUEsd0JBQW1ELENBbkJuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FPQSxTQUFTRSxZQUFZQSxDQUFDQyxHQUFRLEVBQUVDLE9BQVksRUFBRUMsS0FBVSxFQUFFQyxJQUFTLEVBQUUsQ0FDbkVILEdBQUcsQ0FBQ0ksTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDQyxJQUFJLENBQUMsRUFDbkJELE1BQU0sRUFBRSxTQUFTLEVBQ2pCRSxRQUFRLEVBQUUsRUFDUkMsT0FBTyxFQUFFLHFDQUFxQyxFQUM5Q0MsT0FBTyxFQUFFTixLQUFLLEVBQ2RELE9BQU8sRUFBRUEsT0FBTyxFQUNoQkUsSUFBSSxFQUFFQSxJQUFJLENBQ1osQ0FBQyxDQUNILENBQUMsQ0FBQyxDQUNKLENBRUEsU0FBU00sV0FBV0EsQ0FBQ0MsR0FBWSxFQUFFVixHQUFhLEVBQUVDLE9BQVksRUFBRVUsS0FBVSxFQUFFO0VBQzFFRCxHQUFHLENBQUNFLE1BQU0sQ0FBQ0Qs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
@@ -40,4 +40,4 @@ async function config_type(prefix, event, type) {
40
40
  return undefined;
41
41
  }
42
42
  }
43
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfanNvbk1hcHBlckpzb24iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiZGVmYXVsdCIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiY29udmVydCIsInByZWZpeCIsImRhdGEiLCJldmVudCIsImluZGV4T2YiLCJtYXBwQ29uZkV2ZW50IiwiY29uZmlnX2V2ZW50IiwibWFwcENvbmZUeXBlIiwiY29uZmlnX3R5cGUiLCJ0eXBlIiwiYXNzaWduIiwibWFwcGVyIiwibWFwcENvbmYiLCJzcGVjaWZpZXIiLCJQcm9taXNlIiwidGhlbiIsInMiLCJ1bmRlZmluZWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFwcGVyL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtYXBwZXIgZnJvbSAnanNvbi1tYXBwZXItanNvbic7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb252ZXJ0KHByZWZpeDogc3RyaW5nLCBkYXRhOiBhbnksIGV2ZW50PzogYW55KSB7XG4gIHRyeSB7XG4gICAgZGF0YS5ldmVudCA9IGV2ZW50IHx8IGRhdGEuZXZlbnQ7XG4gICAgZXZlbnQgPSBkYXRhLmV2ZW50LmluZGV4T2YoJ21lc3NhZ2UnKSA+PSAwID8gJ21lc3NhZ2UnIDogZGF0YS5ldmVudDtcblxuICAgIGNvbnN0IG1hcHBDb25mRXZlbnQgPSBhd2FpdCBjb25maWdfZXZlbnQocHJlZml4LCBldmVudCk7XG4gICAgY29uc3QgbWFwcENvbmZUeXBlID0gYXdhaXQgY29uZmlnX3R5cGUocHJlZml4LCBldmVudCwgZGF0YS50eXBlKTtcblxuICAgIE9iamVjdC5hc3NpZ24obWFwcENvbmZFdmVudCwgbWFwcENvbmZUeXBlKTtcblxuICAgIC8vIGNvbnNvbGUubG9nKCdtYXBwQ29uZkV2ZW50JywgbWFwcENvbmZFdmVudCk7XG5cbiAgICBpZiAoIW1hcHBDb25mRXZlbnQpIHJldHVybiBkYXRhO1xuICAgIHJldHVybiBhd2FpdCBtYXBwZXIoZGF0YSwgbWFwcENvbmZFdmVudCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBjb25maWdfZXZlbnQocHJlZml4OiBhbnksIGV2ZW50OiBhbnkpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCB7IGRlZmF1bHQ6IG1hcHBDb25mIH0gPSBhd2FpdCBpbXBvcnQoYC4vJHtwcmVmaXh9JHtldmVudH0uanNgKTtcbiAgICBpZiAoIW1hcHBDb25mKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiBtYXBwQ29uZjtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gY29uZmlnX3R5cGUocHJlZml4OiBhbnksIGV2ZW50OiBhbnksIHR5cGU6IGFueSkge1xuICB0cnkge1xuICAgIGNvbnN0IHsgZGVmYXVsdDogbWFwcENvbmYgfSA9IGF3YWl0IGltcG9ydChcbiAgICAgIGAuLyR7cHJlZml4fSR7ZXZlbnR9LSR7dHlwZX0uanNgXG4gICAgKTtcbiAgICBpZiAoIW1hcHBDb25mKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiBtYXBwQ29uZjtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IjBMQUFBLElBQUFBLGVBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQSxzQkFBc0MsU0FBQUMsd0JBQUFDLENBQUEsRUFBQUMsQ0FBQSw0QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsR0FBQUUsQ0FBQSxPQUFBRixPQUFBLFdBQUFILHVCQUFBLFlBQUFBLENBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsS0FBQU0sQ0FBQSxDQUFBQyxDQUFBLENBQUFDLENBQUEsS0FBQUMsU0FBQSxRQUFBQyxPQUFBLEVBQUFWLENBQUEsZ0JBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsU0FBQVEsQ0FBQSxLQUFBRixDQUFBLEdBQUFMLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLE9BQUFHLENBQUEsQ0FBQUssR0FBQSxDQUFBWCxDQUFBLFVBQUFNLENBQUEsQ0FBQU0sR0FBQSxDQUFBWixDQUFBLEVBQUFNLENBQUEsQ0FBQU8sR0FBQSxDQUFBYixDQUFBLEVBQUFRLENBQUEsY0FBQVAsQ0FBQSxJQUFBRCxDQUFBLGdCQUFBQyxDQUFBLE9BQUFhLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZixDQUFBLEVBQUFDLENBQUEsT0FBQU0sQ0FBQSxJQUFBRCxDQUFBLEdBQUFVLE1BQUEsQ0FBQUMsY0FBQSxLQUFBRCxNQUFBLENBQUFFLHdCQUFBLENBQUFsQixDQUFBLEVBQUFDLENBQUEsT0FBQU0sQ0FBQSxDQUFBSyxHQUFBLElBQUFMLENBQUEsQ0FBQU0sR0FBQSxJQUFBUCxDQUFBLENBQUFFLENBQUEsRUFBQVAsQ0FBQSxFQUFBTSxDQUFBLElBQUFDLENBQUEsQ0FBQVAsQ0FBQSxJQUFBRCxDQUFBLENBQUFDLENBQUEsVUFBQU8sQ0FBQSxJQUFBUixDQUFBLEVBQUFDLENBQUE7O0FBRS9CLGVBQWVrQixPQUFPQSxDQUFDQyxNQUFjLEVBQUVDLElBQVMsRUFBRUMsS0FBVyxFQUFFO0VBQ3BFLElBQUk7SUFDRkQsSUFBSSxDQUFDQyxLQUFLLEdBQUdBLEtBQUssSUFBSUQsSUFBSSxDQUFDQyxLQUFLO0lBQ2hDQSxLQUFLLEdBQUdELElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsR0FBR0YsSUFBSSxDQUFDQyxLQUFLOztJQUVuRSxNQUFNRSxhQUFhLEdBQUcsTUFBTUMsWUFBWSxDQUFDTCxNQUFNLEVBQUVFLEtBQUssQ0FBQztJQUN2RCxNQUFNSSxZQUFZLEdBQUcsTUFBTUMsV0FBVyxDQUFDUCxNQUFNLEVBQUVFLEtBQUssRUFBRUQsSUFBSSxDQUFDTyxJQUFJLENBQUM7O0lBRWhFWixNQUFNLENBQUNhLE1BQU0sQ0FBQ0wsYUFBYSxFQUFFRSxZQUFZLENBQUM7O0lBRTFDOztJQUVBLElBQUksQ0FBQ0YsYUFBYSxFQUFFLE9BQU9ILElBQUk7SUFDL0IsT0FBTyxNQUFNLElBQUFTLHVCQUFNLEVBQUNULElBQUksRUFBRUcsYUFBYSxDQUFDO0VBQzFDLENBQUMsQ0FBQyxPQUFPeEIsQ0FBQyxFQUFFO0lBQ1YsT0FBT3FCLElBQUk7RUFDYjtBQUNGOztBQUVBLGVBQWVJLFlBQVlBLENBQUNMLE1BQVcsRUFBRUUsS0FBVSxFQUFFO0VBQ25ELElBQUk7SUFDRixNQUFNLEVBQUVaLE9BQU8sRUFBRXFCLFFBQVEsQ0FBQyxDQUFDLEdBQUcsUUFBQUMsU0FBQSxTQUFBQyxPQUFBLEVBQUE5QixDQUFBLEtBQUFBLENBQUEsQ0FBQTZCLFNBQUEsR0FBQUUsSUFBQSxFQUFBQyxDQUFBLEtBQUFwQyx1QkFBQSxDQUFBRCxPQUFBLENBQUFxQyxDQUFBLEtBQWEsS0FBS2YsTUFBTSxHQUFHRSxLQUFLLEtBQUssQ0FBQztJQUNwRSxJQUFJLENBQUNTLFFBQVEsRUFBRSxPQUFPSyxTQUFTO0lBQy9CLE9BQU9MLFFBQVE7RUFDakIsQ0FBQyxDQUFDLE9BQU8vQixDQUFDLEVBQUU7SUFDVixPQUFPb0MsU0FBUztFQUNsQjtBQUNGOztBQUVBLGVBQWVULFdBQVdBLENBQUNQLE1BQVcsRUFBRUUsS0FBVSxFQUFFTSxJQUFTLEVBQUU7RUFDN0QsSUFBSTtJQUNGLE1BQU0sRUFBRWxCLE9BQU8sRUFBRXFCLFFBQVEsQ0FBQyxDQUFDLEdBQUcsUUFBQUMsU0FBQSxTQUFBQyxPQUFBLEVBQUE5QixDQUFBLEtBQUFBLENBQUEsQ0FBQTZCLFNBQUEsR0FBQUUsSUFBQSxFQUFBQyxDQUFBLEtBQUFwQyx1QkFBQSxDQUFBRCxPQUFBLENBQUFxQyxDQUFBO01BQzVCLEtBQUtmLE1BQU0sR0FBR0UsS0FBSyxJQUFJTSxJQUFJLEtBQUssQ0FDakM7O0lBQ0QsSUFBSSxDQUFDRyxRQUFRLEVBQUUsT0FBT0ssU0FBUztJQUMvQixPQUFPTCxRQUFRO0VBQ2pCLENBQUMsQ0FBQyxPQUFPL0IsQ0FBQyxFQUFFO0lBQ1YsT0FBT29DLFNBQVM7RUFDbEI7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
43
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfanNvbk1hcHBlckpzb24iLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiZGVmYXVsdCIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiY29udmVydCIsInByZWZpeCIsImRhdGEiLCJldmVudCIsImluZGV4T2YiLCJtYXBwQ29uZkV2ZW50IiwiY29uZmlnX2V2ZW50IiwibWFwcENvbmZUeXBlIiwiY29uZmlnX3R5cGUiLCJ0eXBlIiwiYXNzaWduIiwibWFwcGVyIiwibWFwcENvbmYiLCJzcGVjaWZpZXIiLCJQcm9taXNlIiwidGhlbiIsInMiLCJ1bmRlZmluZWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFwcGVyL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtYXBwZXIgZnJvbSAnanNvbi1tYXBwZXItanNvbic7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb252ZXJ0KHByZWZpeDogc3RyaW5nLCBkYXRhOiBhbnksIGV2ZW50PzogYW55KSB7XG4gIHRyeSB7XG4gICAgZGF0YS5ldmVudCA9IGV2ZW50IHx8IGRhdGEuZXZlbnQ7XG4gICAgZXZlbnQgPSBkYXRhLmV2ZW50LmluZGV4T2YoJ21lc3NhZ2UnKSA+PSAwID8gJ21lc3NhZ2UnIDogZGF0YS5ldmVudDtcblxuICAgIGNvbnN0IG1hcHBDb25mRXZlbnQgPSBhd2FpdCBjb25maWdfZXZlbnQocHJlZml4LCBldmVudCk7XG4gICAgY29uc3QgbWFwcENvbmZUeXBlID0gYXdhaXQgY29uZmlnX3R5cGUocHJlZml4LCBldmVudCwgZGF0YS50eXBlKTtcblxuICAgIE9iamVjdC5hc3NpZ24obWFwcENvbmZFdmVudCwgbWFwcENvbmZUeXBlKTtcblxuICAgIC8vIGNvbnNvbGUubG9nKCdtYXBwQ29uZkV2ZW50JywgbWFwcENvbmZFdmVudCk7XG5cbiAgICBpZiAoIW1hcHBDb25mRXZlbnQpIHJldHVybiBkYXRhO1xuICAgIHJldHVybiBhd2FpdCBtYXBwZXIoZGF0YSwgbWFwcENvbmZFdmVudCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBjb25maWdfZXZlbnQocHJlZml4OiBhbnksIGV2ZW50OiBhbnkpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCB7IGRlZmF1bHQ6IG1hcHBDb25mIH0gPSBhd2FpdCBpbXBvcnQoYC4vJHtwcmVmaXh9JHtldmVudH0uanNgKTtcbiAgICBpZiAoIW1hcHBDb25mKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiBtYXBwQ29uZjtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gY29uZmlnX3R5cGUocHJlZml4OiBhbnksIGV2ZW50OiBhbnksIHR5cGU6IGFueSkge1xuICB0cnkge1xuICAgIGNvbnN0IHsgZGVmYXVsdDogbWFwcENvbmYgfSA9IGF3YWl0IGltcG9ydChcbiAgICAgIGAuLyR7cHJlZml4fSR7ZXZlbnR9LSR7dHlwZX0uanNgXG4gICAgKTtcbiAgICBpZiAoIW1hcHBDb25mKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiBtYXBwQ29uZjtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IjBMQUFBLElBQUFBLGVBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQSxzQkFBc0MsU0FBQUMsd0JBQUFDLENBQUEsRUFBQUMsQ0FBQSw0QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsR0FBQUUsQ0FBQSxPQUFBRixPQUFBLFdBQUFILHVCQUFBLFlBQUFBLENBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsS0FBQU0sQ0FBQSxDQUFBQyxDQUFBLENBQUFDLENBQUEsS0FBQUMsU0FBQSxRQUFBQyxPQUFBLEVBQUFWLENBQUEsZ0JBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsU0FBQVEsQ0FBQSxLQUFBRixDQUFBLEdBQUFMLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLE9BQUFHLENBQUEsQ0FBQUssR0FBQSxDQUFBWCxDQUFBLFVBQUFNLENBQUEsQ0FBQU0sR0FBQSxDQUFBWixDQUFBLENBQUFNLENBQUEsRUFBQU8sR0FBQSxDQUFBYixDQUFBLEVBQUFRLENBQUEsY0FBQVAsQ0FBQSxJQUFBRCxDQUFBLGdCQUFBQyxDQUFBLE9BQUFhLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZixDQUFBLEVBQUFDLENBQUEsT0FBQU0sQ0FBQSxJQUFBRCxDQUFBLEdBQUFVLE1BQUEsQ0FBQUMsY0FBQSxLQUFBRCxNQUFBLENBQUFFLHdCQUFBLENBQUFsQixDQUFBLEVBQUFDLENBQUEsT0FBQU0sQ0FBQSxDQUFBSyxHQUFBLElBQUFMLENBQUEsQ0FBQU0sR0FBQSxJQUFBUCxDQUFBLENBQUFFLENBQUEsRUFBQVAsQ0FBQSxFQUFBTSxDQUFBLElBQUFDLENBQUEsQ0FBQVAsQ0FBQSxJQUFBRCxDQUFBLENBQUFDLENBQUEsVUFBQU8sQ0FBQSxJQUFBUixDQUFBLEVBQUFDLENBQUE7O0FBRS9CLGVBQWVrQixPQUFPQSxDQUFDQyxNQUFjLEVBQUVDLElBQVMsRUFBRUMsS0FBVyxFQUFFO0VBQ3BFLElBQUk7SUFDRkQsSUFBSSxDQUFDQyxLQUFLLEdBQUdBLEtBQUssSUFBSUQsSUFBSSxDQUFDQyxLQUFLO0lBQ2hDQSxLQUFLLEdBQUdELElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsR0FBR0YsSUFBSSxDQUFDQyxLQUFLOztJQUVuRSxNQUFNRSxhQUFhLEdBQUcsTUFBTUMsWUFBWSxDQUFDTCxNQUFNLEVBQUVFLEtBQUssQ0FBQztJQUN2RCxNQUFNSSxZQUFZLEdBQUcsTUFBTUMsV0FBVyxDQUFDUCxNQUFNLEVBQUVFLEtBQUssRUFBRUQsSUFBSSxDQUFDTyxJQUFJLENBQUM7O0lBRWhFWixNQUFNLENBQUNhLE1BQU0sQ0FBQ0wsYUFBYSxFQUFFRSxZQUFZLENBQUM7O0lBRTFDOztJQUVBLElBQUksQ0FBQ0YsYUFBYSxFQUFFLE9BQU9ILElBQUk7SUFDL0IsT0FBTyxNQUFNLElBQUFTLHVCQUFNLEVBQUNULElBQUksRUFBRUcsYUFBYSxDQUFDO0VBQzFDLENBQUMsQ0FBQyxPQUFPeEIsQ0FBQyxFQUFFO0lBQ1YsT0FBT3FCLElBQUk7RUFDYjtBQUNGOztBQUVBLGVBQWVJLFlBQVlBLENBQUNMLE1BQVcsRUFBRUUsS0FBVSxFQUFFO0VBQ25ELElBQUk7SUFDRixNQUFNLEVBQUVaLE9BQU8sRUFBRXFCLFFBQVEsQ0FBQyxDQUFDLEdBQUcsUUFBQUMsU0FBQSxTQUFBQyxPQUFBLEVBQUE5QixDQUFBLEtBQUFBLENBQUEsQ0FBQTZCLFNBQUEsR0FBQUUsSUFBQSxFQUFBQyxDQUFBLEtBQUFwQyx1QkFBQSxDQUFBRCxPQUFBLENBQUFxQyxDQUFBLEtBQWEsS0FBS2YsTUFBTSxHQUFHRSxLQUFLLEtBQUssQ0FBQztJQUNwRSxJQUFJLENBQUNTLFFBQVEsRUFBRSxPQUFPSyxTQUFTO0lBQy9CLE9BQU9MLFFBQVE7RUFDakIsQ0FBQyxDQUFDLE9BQU8vQixDQUFDLEVBQUU7SUFDVixPQUFPb0MsU0FBUztFQUNsQjtBQUNGOztBQUVBLGVBQWVULFdBQVdBLENBQUNQLE1BQVcsRUFBRUUsS0FBVSxFQUFFTSxJQUFTLEVBQUU7RUFDN0QsSUFBSTtJQUNGLE1BQU0sRUFBRWxCLE9BQU8sRUFBRXFCLFFBQVEsQ0FBQyxDQUFDLEdBQUcsUUFBQUMsU0FBQSxTQUFBQyxPQUFBLEVBQUE5QixDQUFBLEtBQUFBLENBQUEsQ0FBQTZCLFNBQUEsR0FBQUUsSUFBQSxFQUFBQyxDQUFBLEtBQUFwQyx1QkFBQSxDQUFBRCxPQUFBLENBQUFxQyxDQUFBO01BQzVCLEtBQUtmLE1BQU0sR0FBR0UsS0FBSyxJQUFJTSxJQUFJLEtBQUssQ0FDakM7O0lBQ0QsSUFBSSxDQUFDRyxRQUFRLEVBQUUsT0FBT0ssU0FBUztJQUMvQixPQUFPTCxRQUFRO0VBQ2pCLENBQUMsQ0FBQyxPQUFPL0IsQ0FBQyxFQUFFO0lBQ1YsT0FBT29DLFNBQVM7RUFDbEI7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -968,4 +968,4 @@ routes.get('/unhealthy', HealthCheck.unhealthy);
968
968
  routes.get('/metrics', prometheusRegister.metrics);var _default = exports.default =
969
969
 
970
970
  routes;
971
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXhwcmVzcyIsInJlcXVpcmUiLCJfbXVsdGVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9zd2FnZ2VyVWlFeHByZXNzIiwiX3VwbG9hZCIsIkNhdGFsb2dDb250cm9sbGVyIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJDb21tdW5pdHlDb250cm9sbGVyIiwiX2NvbnRhY3RDb250cm9sbGVyIiwiRGV2aWNlQ29udHJvbGxlciIsIl9lbmNyeXB0Q29udHJvbGxlciIsIkdyb3VwQ29udHJvbGxlciIsIkxhYmVsc0NvbnRyb2xsZXIiLCJNZXNzYWdlQ29udHJvbGxlciIsIk1pc2NDb250cm9sbGVyIiwiTmV3c2xldHRlckNvbnRyb2xsZXIiLCJPcmRlckNvbnRyb2xsZXIiLCJTZXNzaW9uQ29udHJvbGxlciIsIlN0YXR1c0NvbnRyb2xsZXIiLCJfYXV0aCIsIkhlYWx0aENoZWNrIiwicHJvbWV0aGV1c1JlZ2lzdGVyIiwiX3N0YXR1c0Nvbm5lY3Rpb24iLCJfc3dhZ2dlciIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInVwbG9hZCIsIm11bHRlciIsInVwbG9hZENvbmZpZyIsInJvdXRlcyIsIlJvdXRlciIsInBvc3QiLCJlbmNyeXB0U2Vzc2lvbiIsInNob3dBbGxTZXNzaW9ucyIsInN0YXJ0QWxsU2Vzc2lvbnMiLCJ2ZXJpZnlUb2tlbiIsImNoZWNrQ29ubmVjdGlvblNlc3Npb24iLCJnZXRNZWRpYUJ5TWVzc2FnZSIsImdldFBsYXRmb3JtRnJvbU1lc3NhZ2UiLCJnZXRRckNvZGUiLCJzdGFydFNlc3Npb24iLCJzdGF0dXNDb25uZWN0aW9uIiwibG9nT3V0U2Vzc2lvbiIsImNsZWFyU2Vzc2lvbkRhdGEiLCJjbG9zZVNlc3Npb24iLCJzdWJzY3JpYmVQcmVzZW5jZSIsInNldE9ubGluZVByZXNlbmNlIiwiZG93bmxvYWRNZWRpYUJ5TWVzc2FnZSIsInNlbmRNZXNzYWdlIiwiZWRpdE1lc3NhZ2UiLCJzaW5nbGUiLCJzZW5kRmlsZSIsInNlbmRJbWFnZUFzU3RpY2tlciIsInNlbmRJbWFnZUFzU3RpY2tlckdpZiIsInJlcGx5TWVzc2FnZSIsInNlbmRWb2ljZSIsInNlbmRWb2ljZTY0IiwiZ2V0U2Vzc2lvblN0YXRlIiwic2VuZFN0YXR1c1RleHQiLCJzZW5kTGlua1ByZXZpZXciLCJzZW5kTG9jYXRpb24iLCJzZW5kTWVudGlvbmVkIiwic2VuZEJ1dHRvbnMiLCJzZW5kTGlzdE1lc3NhZ2UiLCJzZW5kT3JkZXJNZXNzYWdlIiwic2VuZFBvbGxNZXNzYWdlIiwic2VuZFBpeE1lc3NhZ2UiLCJnZXRBbGxCcm9hZGNhc3RMaXN0IiwiZ2V0QWxsR3JvdXBzIiwiZ2V0R3JvdXBNZW1iZXJzIiwiZ2V0Q29tbW9uR3JvdXBzIiwiZ2V0R3JvdXBBZG1pbnMiLCJnZXRHcm91cEluZm8iLCJnZXRHcm91cEludml0ZUxpbmsiLCJyZXZva2VHcm91cEludml0ZUxpbmsiLCJnZXRHcm91cE1lbWJlcnNJZHMiLCJjcmVhdGVHcm91cCIsImxlYXZlR3JvdXAiLCJqb2luR3JvdXBCeUNvZGUiLCJhZGRQYXJ0aWNpcGFudCIsInJlbW92ZVBhcnRpY2lwYW50IiwicHJvbW90ZVBhcnRpY2lwYW50IiwiZGVtb3RlUGFydGljaXBhbnQiLCJnZXRHcm91cEluZm9Gcm9tSW52aXRlTGluayIsInNldEdyb3VwRGVzY3JpcHRpb24iLCJzZXRHcm91cFByb3BlcnR5Iiwic2V0R3JvdXBTdWJqZWN0Iiwic2V0TWVzc2FnZXNBZG1pbnNPbmx5Iiwic2V0R3JvdXBQcm9maWxlUGljIiwiY2hhbmdlUHJpdmFjeUdyb3VwIiwiZ2V0QWxsQ2hhdHMiLCJsaXN0Q2hhdHMiLCJnZXRBbGxDaGF0c0FyY2hpdmVkcyIsImdldEFsbENoYXRzV2l0aE1lc3NhZ2VzIiwiZ2V0QWxsTWVzc2FnZXNJbkNoYXQiLCJnZXRBbGxOZXdNZXNzYWdlcyIsImdldFVucmVhZE1lc3NhZ2VzIiwiZ2V0QWxsVW5yZWFkTWVzc2FnZXMiLCJnZXRDaGF0QnlJZCIsImdldE1lc3NhZ2VCeUlkIiwiZ2V0Q2hhdElzT25saW5lIiwiZ2V0TGFzdFNlZW4iLCJnZXRMaXN0TXV0ZXMiLCJsb2FkQW5kR2V0QWxsTWVzc2FnZXNJbkNoYXQiLCJnZXRNZXNzYWdlcyIsImFyY2hpdmVDaGF0IiwiYXJjaGl2ZUFsbENoYXRzIiwiY2xlYXJDaGF0IiwiY2xlYXJBbGxDaGF0cyIsImRlbGV0ZUNoYXQiLCJkZWxldGVBbGxDaGF0cyIsImRlbGV0ZU1lc3NhZ2UiLCJyZWFjdE1lc3NhZ2UiLCJmb3J3YXJkTWVzc2FnZXMiLCJtYXJrVW5zZWVuTWVzc2FnZSIsInBpbkNoYXQiLCJzZW5kQ29udGFjdFZjYXJkIiwic2VuZE11dGUiLCJzZW5kU2VlbiIsInNldENoYXRTdGF0ZSIsInNldFRlbXBvcmFyeU1lc3NhZ2VzIiwic2V0VHlwaW5nIiwic2V0UmVjb3JkaW5nIiwic3Rhck1lc3NhZ2UiLCJnZXRSZWFjdGlvbnMiLCJnZXRWb3RlcyIsInJlamVjdENhbGwiLCJnZXRQcm9kdWN0cyIsImdldFByb2R1Y3RCeUlkIiwiYWRkUHJvZHVjdCIsImVkaXRQcm9kdWN0IiwiZGVsUHJvZHVjdHMiLCJjaGFuZ2VQcm9kdWN0SW1hZ2UiLCJhZGRQcm9kdWN0SW1hZ2UiLCJyZW1vdmVQcm9kdWN0SW1hZ2UiLCJnZXRDb2xsZWN0aW9ucyIsImNyZWF0ZUNvbGxlY3Rpb24iLCJlZGl0Q29sbGVjdGlvbiIsImRlbGV0ZUNvbGxlY3Rpb24iLCJzZW5kTGlua0NhdGFsb2ciLCJzZXRQcm9kdWN0VmlzaWJpbGl0eSIsInVwZGF0ZUNhcnRFbmFibGVkIiwic2VuZFRleHRTdG9yaWUiLCJzZW5kSW1hZ2VTdG9yaWUiLCJzZW5kVmlkZW9TdG9yaWUiLCJhZGROZXdMYWJlbCIsImFkZE9yUmVtb3ZlTGFiZWxzIiwiZ2V0QWxsTGFiZWxzIiwicHV0IiwiZGVsZXRlQWxsTGFiZWxzIiwiZGVsZXRlTGFiZWwiLCJjaGVja051bWJlclN0YXR1cyIsImdldEFsbENvbnRhY3RzIiwiZ2V0Q29udGFjdCIsIkNvbnRhY3RDb250cm9sbGVyIiwiZ2V0Q29udGFjdFBuTGlkIiwiZ2V0TnVtYmVyUHJvZmlsZSIsImdldFByb2ZpbGVQaWNGcm9tU2VydmVyIiwiZ2V0U3RhdHVzIiwiZ2V0QmxvY2tMaXN0IiwiYmxvY2tDb250YWN0IiwidW5ibG9ja0NvbnRhY3QiLCJnZXRCYXR0ZXJ5TGV2ZWwiLCJnZXRIb3N0RGV2aWNlIiwiZ2V0UGhvbmVOdW1iZXIiLCJzZXRQcm9maWxlUGljIiwic2V0UHJvZmlsZVN0YXR1cyIsInNldFByb2ZpbGVOYW1lIiwiZWRpdEJ1c2luZXNzUHJvZmlsZSIsImdldEJ1c2luZXNzUHJvZmlsZXNQcm9kdWN0cyIsImdldE9yZGVyYnlNc2ciLCJiYWNrdXBBbGxTZXNzaW9ucyIsInJlc3RvcmVBbGxTZXNzaW9ucyIsInRha2VTY3JlZW5zaG90Iiwic2V0TGltaXQiLCJjcmVhdGVDb21tdW5pdHkiLCJkZWFjdGl2YXRlQ29tbXVuaXR5IiwiYWRkU3ViZ3JvdXBzQ29tbXVuaXR5IiwicmVtb3ZlU3ViZ3JvdXBzQ29tbXVuaXR5IiwicHJvbW90ZUNvbW11bml0eVBhcnRpY2lwYW50IiwiZGVtb3RlQ29tbXVuaXR5UGFydGljaXBhbnQiLCJnZXRDb21tdW5pdHlQYXJ0aWNpcGFudHMiLCJjcmVhdGVOZXdzbGV0dGVyIiwiZWRpdE5ld3NsZXR0ZXIiLCJkZWxldGUiLCJkZXN0cm95TmV3c2xldHRlciIsIm11dGVOZXdzbGV0dGVyIiwiY2hhdFdvb3QiLCJ1c2UiLCJzd2FnZ2VyVWkiLCJzZXJ2ZSIsInNldHVwIiwic3dhZ2dlckRvY3VtZW50IiwiaGVhbHRoeiIsInVuaGVhbHRoeSIsIm1ldHJpY3MiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvcm91dGVzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyMSBXUFBDb25uZWN0IFRlYW1cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IG11bHRlciBmcm9tICdtdWx0ZXInO1xuaW1wb3J0IHN3YWdnZXJVaSBmcm9tICdzd2FnZ2VyLXVpLWV4cHJlc3MnO1xuXG5pbXBvcnQgdXBsb2FkQ29uZmlnIGZyb20gJy4uL2NvbmZpZy91cGxvYWQnO1xuaW1wb3J0ICogYXMgQ2F0YWxvZ0NvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9jYXRhbG9nQ29udHJvbGxlcic7XG5pbXBvcnQgKiBhcyBDb21tdW5pdHlDb250cm9sbGVyIGZyb20gJy4uL2NvbnRyb2xsZXIvY29tbXVuaXR5Q29udHJvbGxlcic7XG5pbXBvcnQgQ29udGFjdENvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9jb250YWN0Q29udHJvbGxlcic7XG5pbXBvcnQgKiBhcyBEZXZpY2VDb250cm9sbGVyIGZyb20gJy4uL2NvbnRyb2xsZXIvZGV2aWNlQ29udHJvbGxlcic7XG5pbXBvcnQgeyBlbmNyeXB0U2Vzc2lvbiB9IGZyb20gJy4uL2NvbnRyb2xsZXIvZW5jcnlwdENvbnRyb2xsZXInO1xuaW1wb3J0ICogYXMgR3JvdXBDb250cm9sbGVyIGZyb20gJy4uL2NvbnRyb2xsZXIvZ3JvdXBDb250cm9sbGVyJztcbmltcG9ydCAqIGFzIExhYmVsc0NvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9sYWJlbHNDb250cm9sbGVyJztcbmltcG9ydCAqIGFzIE1lc3NhZ2VDb250cm9sbGVyIGZyb20gJy4uL2NvbnRyb2xsZXIvbWVzc2FnZUNvbnRyb2xsZXInO1xuaW1wb3J0ICogYXMgTWlzY0NvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9taXNjQ29udHJvbGxlcic7XG5pbXBvcnQgKiBhcyBOZXdzbGV0dGVyQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL25ld3NsZXR0ZXJDb250cm9sbGVyJztcbmltcG9ydCAqIGFzIE9yZGVyQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL29yZGVyQ29udHJvbGxlcic7XG5pbXBvcnQgKiBhcyBTZXNzaW9uQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL3Nlc3Npb25Db250cm9sbGVyJztcbmltcG9ydCAqIGFzIFN0YXR1c0NvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9zdGF0dXNDb250cm9sbGVyJztcbmltcG9ydCB2ZXJpZnlUb2tlbiBmcm9tICcuLi9taWRkbGV3YXJlL2F1dGgnO1xuaW1wb3J0ICogYXMgSGVhbHRoQ2hlY2sgZnJvbSAnLi4vbWlkZGxld2FyZS9oZWFsdGhDaGVjayc7XG5pbXBvcnQgKiBhcyBwcm9tZXRoZXVzUmVnaXN0ZXIgZnJvbSAnLi4vbWlkZGxld2FyZS9pbnN0cnVtZW50YXRpb24nO1xuaW1wb3J0IHN0YXR1c0Nvbm5lY3Rpb24gZnJvbSAnLi4vbWlkZGxld2FyZS9zdGF0dXNDb25uZWN0aW9uJztcbmltcG9ydCBzd2FnZ2VyRG9jdW1lbnQgZnJvbSAnLi4vc3dhZ2dlci5qc29uJztcblxuY29uc3QgdXBsb2FkID0gbXVsdGVyKHVwbG9hZENvbmZpZyBhcyBhbnkpIGFzIGFueTtcbmNvbnN0IHJvdXRlczogUm91dGVyID0gUm91dGVyKCk7XG5cbi8vIEdlbmVyYXRlIFRva2VuXG5yb3V0ZXMucG9zdCgnL2FwaS86c2Vzc2lvbi86c2VjcmV0a2V5L2dlbmVyYXRlLXRva2VuJywgZW5jcnlwdFNlc3Npb24pO1xuXG4vLyBBbGwgU2Vzc2lvbnNcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZWNyZXRrZXkvc2hvdy1hbGwtc2Vzc2lvbnMnLFxuICBTZXNzaW9uQ29udHJvbGxlci5zaG93QWxsU2Vzc2lvbnNcbik7XG5yb3V0ZXMucG9zdCgnL2FwaS86c2VjcmV0a2V5L3N0YXJ0LWFsbCcsIFNlc3Npb25Db250cm9sbGVyLnN0YXJ0QWxsU2Vzc2lvbnMpO1xuXG4vLyBTZXNzaW9uc1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vY2hlY2stY29ubmVjdGlvbi1zZXNzaW9uJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIFNlc3Npb25Db250cm9sbGVyLmNoZWNrQ29ubmVjdGlvblNlc3Npb25cbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9nZXQtbWVkaWEtYnktbWVzc2FnZS86bWVzc2FnZUlkJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIFNlc3Npb25Db250cm9sbGVyLmdldE1lZGlhQnlNZXNzYWdlXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vZ2V0LXBsYXRmb3JtLWZyb20tbWVzc2FnZS86bWVzc2FnZUlkJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0UGxhdGZvcm1Gcm9tTWVzc2FnZVxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL3FyY29kZS1zZXNzaW9uJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIFNlc3Npb25Db250cm9sbGVyLmdldFFyQ29kZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zdGFydC1zZXNzaW9uJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIFNlc3Npb25Db250cm9sbGVyLnN0YXJ0U2Vzc2lvblxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9sb2dvdXQtc2Vzc2lvbicsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBTZXNzaW9uQ29udHJvbGxlci5sb2dPdXRTZXNzaW9uXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uLzpzZWNyZXRrZXkvY2xlYXItc2Vzc2lvbi1kYXRhJyxcbiAgTWlzY0NvbnRyb2xsZXIuY2xlYXJTZXNzaW9uRGF0YVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9jbG9zZS1zZXNzaW9uJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIFNlc3Npb25Db250cm9sbGVyLmNsb3NlU2Vzc2lvblxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zdWJzY3JpYmUtcHJlc2VuY2UnLFxuICB2ZXJpZnlUb2tlbixcbiAgU2Vzc2lvbkNvbnRyb2xsZXIuc3Vic2NyaWJlUHJlc2VuY2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2V0LW9ubGluZS1wcmVzZW5jZScsXG4gIHZlcmlmeVRva2VuLFxuICBTZXNzaW9uQ29udHJvbGxlci5zZXRPbmxpbmVQcmVzZW5jZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9kb3dubG9hZC1tZWRpYScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBTZXNzaW9uQ29udHJvbGxlci5kb3dubG9hZE1lZGlhQnlNZXNzYWdlXG4pO1xuXG4vLyBNZXNzYWdlc1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtbWVzc2FnZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBNZXNzYWdlQ29udHJvbGxlci5zZW5kTWVzc2FnZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9lZGl0LW1lc3NhZ2UnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuZWRpdE1lc3NhZ2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC1pbWFnZScsXG4gIHVwbG9hZC5zaW5nbGUoJ2ZpbGUnKSxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE1lc3NhZ2VDb250cm9sbGVyLnNlbmRGaWxlXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtc3RpY2tlcicsXG4gIHVwbG9hZC5zaW5nbGUoJ2ZpbGUnKSxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE1lc3NhZ2VDb250cm9sbGVyLnNlbmRJbWFnZUFzU3RpY2tlclxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZW5kLXN0aWNrZXItZ2lmJyxcbiAgdXBsb2FkLnNpbmdsZSgnZmlsZScpLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZEltYWdlQXNTdGlja2VyR2lmXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtcmVwbHknLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIucmVwbHlNZXNzYWdlXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtZmlsZScsXG4gIHVwbG9hZC5zaW5nbGUoJ2ZpbGUnKSxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE1lc3NhZ2VDb250cm9sbGVyLnNlbmRGaWxlXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtZmlsZS1iYXNlNjQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZEZpbGVcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC12b2ljZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBNZXNzYWdlQ29udHJvbGxlci5zZW5kVm9pY2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC12b2ljZS1iYXNlNjQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZFZvaWNlNjRcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9zdGF0dXMtc2Vzc2lvbicsXG4gIHZlcmlmeVRva2VuLFxuICBTZXNzaW9uQ29udHJvbGxlci5nZXRTZXNzaW9uU3RhdGVcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC1zdGF0dXMnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZFN0YXR1c1RleHRcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC1saW5rLXByZXZpZXcnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZExpbmtQcmV2aWV3XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtbG9jYXRpb24nLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZExvY2F0aW9uXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtbWVudGlvbmVkJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE1lc3NhZ2VDb250cm9sbGVyLnNlbmRNZW50aW9uZWRcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC1idXR0b25zJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE1lc3NhZ2VDb250cm9sbGVyLnNlbmRCdXR0b25zXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtbGlzdC1tZXNzYWdlJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE1lc3NhZ2VDb250cm9sbGVyLnNlbmRMaXN0TWVzc2FnZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZW5kLW9yZGVyLW1lc3NhZ2UnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZE9yZGVyTWVzc2FnZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZW5kLXBvbGwtbWVzc2FnZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBNZXNzYWdlQ29udHJvbGxlci5zZW5kUG9sbE1lc3NhZ2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC1waXgta2V5JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE1lc3NhZ2VDb250cm9sbGVyLnNlbmRQaXhNZXNzYWdlXG4pO1xuXG4vLyBHcm91cFxucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vYWxsLWJyb2FkY2FzdC1saXN0JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIEdyb3VwQ29udHJvbGxlci5nZXRBbGxCcm9hZGNhc3RMaXN0XG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vYWxsLWdyb3VwcycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuZ2V0QWxsR3JvdXBzXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vZ3JvdXAtbWVtYmVycy86Z3JvdXBJZCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuZ2V0R3JvdXBNZW1iZXJzXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vY29tbW9uLWdyb3Vwcy86d2lkJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIEdyb3VwQ29udHJvbGxlci5nZXRDb21tb25Hcm91cHNcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9ncm91cC1hZG1pbnMvOmdyb3VwSWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLmdldEdyb3VwQWRtaW5zXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vZ3JvdXAtaW5mby86Z3JvdXBJZCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuZ2V0R3JvdXBJbmZvXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vZ3JvdXAtaW52aXRlLWxpbmsvOmdyb3VwSWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLmdldEdyb3VwSW52aXRlTGlua1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dyb3VwLXJldm9rZS1saW5rLzpncm91cElkJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIEdyb3VwQ29udHJvbGxlci5yZXZva2VHcm91cEludml0ZUxpbmtcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9ncm91cC1tZW1iZXJzLWlkcy86Z3JvdXBJZCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuZ2V0R3JvdXBNZW1iZXJzSWRzXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2NyZWF0ZS1ncm91cCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuY3JlYXRlR3JvdXBcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vbGVhdmUtZ3JvdXAnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLmxlYXZlR3JvdXBcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vam9pbi1jb2RlJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIEdyb3VwQ29udHJvbGxlci5qb2luR3JvdXBCeUNvZGVcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vYWRkLXBhcnRpY2lwYW50LWdyb3VwJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIEdyb3VwQ29udHJvbGxlci5hZGRQYXJ0aWNpcGFudFxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9yZW1vdmUtcGFydGljaXBhbnQtZ3JvdXAnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLnJlbW92ZVBhcnRpY2lwYW50XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3Byb21vdGUtcGFydGljaXBhbnQtZ3JvdXAnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLnByb21vdGVQYXJ0aWNpcGFudFxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9kZW1vdGUtcGFydGljaXBhbnQtZ3JvdXAnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLmRlbW90ZVBhcnRpY2lwYW50XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2dyb3VwLWluZm8tZnJvbS1pbnZpdGUtbGluaycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuZ2V0R3JvdXBJbmZvRnJvbUludml0ZUxpbmtcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZ3JvdXAtZGVzY3JpcHRpb24nLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLnNldEdyb3VwRGVzY3JpcHRpb25cbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZ3JvdXAtcHJvcGVydHknLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLnNldEdyb3VwUHJvcGVydHlcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZ3JvdXAtc3ViamVjdCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuc2V0R3JvdXBTdWJqZWN0XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL21lc3NhZ2VzLWFkbWlucy1vbmx5JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIEdyb3VwQ29udHJvbGxlci5zZXRNZXNzYWdlc0FkbWluc09ubHlcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZ3JvdXAtcGljJyxcbiAgdXBsb2FkLnNpbmdsZSgnZmlsZScpLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLnNldEdyb3VwUHJvZmlsZVBpY1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9jaGFuZ2UtcHJpdmFjeS1ncm91cCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuY2hhbmdlUHJpdmFjeUdyb3VwXG4pO1xuXG4vLyBDaGF0XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9hbGwtY2hhdHMnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRBbGxDaGF0c1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9saXN0LWNoYXRzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIubGlzdENoYXRzXG4pO1xuXG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9hbGwtY2hhdHMtYXJjaGl2ZWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRBbGxDaGF0c0FyY2hpdmVkc1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2FsbC1jaGF0cy13aXRoLW1lc3NhZ2VzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0QWxsQ2hhdHNXaXRoTWVzc2FnZXNcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9hbGwtbWVzc2FnZXMtaW4tY2hhdC86cGhvbmUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRBbGxNZXNzYWdlc0luQ2hhdFxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2FsbC1uZXctbWVzc2FnZXMnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRBbGxOZXdNZXNzYWdlc1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL3VucmVhZC1tZXNzYWdlcycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldFVucmVhZE1lc3NhZ2VzXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vYWxsLXVucmVhZC1tZXNzYWdlcycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldEFsbFVucmVhZE1lc3NhZ2VzXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vY2hhdC1ieS1pZC86cGhvbmUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRDaGF0QnlJZFxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL21lc3NhZ2UtYnktaWQvOm1lc3NhZ2VJZCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldE1lc3NhZ2VCeUlkXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vY2hhdC1pcy1vbmxpbmUvOnBob25lJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0Q2hhdElzT25saW5lXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vbGFzdC1zZWVuLzpwaG9uZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldExhc3RTZWVuXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vbGlzdC1tdXRlcy86dHlwZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldExpc3RNdXRlc1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2xvYWQtbWVzc2FnZXMtaW4tY2hhdC86cGhvbmUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5sb2FkQW5kR2V0QWxsTWVzc2FnZXNJbkNoYXRcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9nZXQtbWVzc2FnZXMvOnBob25lJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0TWVzc2FnZXNcbik7XG5cbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9hcmNoaXZlLWNoYXQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5hcmNoaXZlQ2hhdFxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9hcmNoaXZlLWFsbC1jaGF0cycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmFyY2hpdmVBbGxDaGF0c1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9jbGVhci1jaGF0JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuY2xlYXJDaGF0XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2NsZWFyLWFsbC1jaGF0cycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmNsZWFyQWxsQ2hhdHNcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZGVsZXRlLWNoYXQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5kZWxldGVDaGF0XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2RlbGV0ZS1hbGwtY2hhdHMnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5kZWxldGVBbGxDaGF0c1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9kZWxldGUtbWVzc2FnZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmRlbGV0ZU1lc3NhZ2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vcmVhY3QtbWVzc2FnZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnJlYWN0TWVzc2FnZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9mb3J3YXJkLW1lc3NhZ2VzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZm9yd2FyZE1lc3NhZ2VzXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL21hcmstdW5zZWVuJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIubWFya1Vuc2Vlbk1lc3NhZ2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vcGluLWNoYXQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5waW5DaGF0XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2NvbnRhY3QtdmNhcmQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5zZW5kQ29udGFjdFZjYXJkXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtbXV0ZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnNlbmRNdXRlXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtc2VlbicsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnNlbmRTZWVuXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2NoYXQtc3RhdGUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5zZXRDaGF0U3RhdGVcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vdGVtcG9yYXJ5LW1lc3NhZ2VzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuc2V0VGVtcG9yYXJ5TWVzc2FnZXNcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vdHlwaW5nJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuc2V0VHlwaW5nXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3JlY29yZGluZycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnNldFJlY29yZGluZ1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zdGFyLW1lc3NhZ2UnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5zdGFyTWVzc2FnZVxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL3JlYWN0aW9ucy86aWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRSZWFjdGlvbnNcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi92b3Rlcy86aWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRWb3Rlc1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9yZWplY3QtY2FsbCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnJlamVjdENhbGxcbik7XG5cbi8vIENhdGFsb2dcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dldC1wcm9kdWN0cycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5nZXRQcm9kdWN0c1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dldC1wcm9kdWN0LWJ5LWlkJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLmdldFByb2R1Y3RCeUlkXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2FkZC1wcm9kdWN0JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLmFkZFByb2R1Y3Rcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZWRpdC1wcm9kdWN0JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLmVkaXRQcm9kdWN0XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2RlbC1wcm9kdWN0cycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5kZWxQcm9kdWN0c1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9jaGFuZ2UtcHJvZHVjdC1pbWFnZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5jaGFuZ2VQcm9kdWN0SW1hZ2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vYWRkLXByb2R1Y3QtaW1hZ2UnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgQ2F0YWxvZ0NvbnRyb2xsZXIuYWRkUHJvZHVjdEltYWdlXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3JlbW92ZS1wcm9kdWN0LWltYWdlJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLnJlbW92ZVByb2R1Y3RJbWFnZVxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dldC1jb2xsZWN0aW9ucycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5nZXRDb2xsZWN0aW9uc1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9jcmVhdGUtY29sbGVjdGlvbicsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5jcmVhdGVDb2xsZWN0aW9uXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2VkaXQtY29sbGVjdGlvbicsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5lZGl0Q29sbGVjdGlvblxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9kZWwtY29sbGVjdGlvbicsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5kZWxldGVDb2xsZWN0aW9uXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtbGluay1jYXRhbG9nJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLnNlbmRMaW5rQ2F0YWxvZ1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZXQtcHJvZHVjdC12aXNpYmlsaXR5JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLnNldFByb2R1Y3RWaXNpYmlsaXR5XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NldC1jYXJ0LWVuYWJsZWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgQ2F0YWxvZ0NvbnRyb2xsZXIudXBkYXRlQ2FydEVuYWJsZWRcbik7XG5cbi8vIFN0YXR1c1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtdGV4dC1zdG9yaWUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgU3RhdHVzQ29udHJvbGxlci5zZW5kVGV4dFN0b3JpZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZW5kLWltYWdlLXN0b3JpZScsXG4gIHVwbG9hZC5zaW5nbGUoJ2ZpbGUnKSxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIFN0YXR1c0NvbnRyb2xsZXIuc2VuZEltYWdlU3RvcmllXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtdmlkZW8tc3RvcmllJyxcbiAgdXBsb2FkLnNpbmdsZSgnZmlsZScpLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgU3RhdHVzQ29udHJvbGxlci5zZW5kVmlkZW9TdG9yaWVcbik7XG5cbi8vIExhYmVsc1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2FkZC1uZXctbGFiZWwnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTGFiZWxzQ29udHJvbGxlci5hZGROZXdMYWJlbFxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9hZGQtb3ItcmVtb3ZlLWxhYmVsJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIExhYmVsc0NvbnRyb2xsZXIuYWRkT3JSZW1vdmVMYWJlbHNcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9nZXQtYWxsLWxhYmVscycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBMYWJlbHNDb250cm9sbGVyLmdldEFsbExhYmVsc1xuKTtcbnJvdXRlcy5wdXQoXG4gICcvYXBpLzpzZXNzaW9uL2RlbGV0ZS1hbGwtbGFiZWxzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIExhYmVsc0NvbnRyb2xsZXIuZGVsZXRlQWxsTGFiZWxzXG4pO1xucm91dGVzLnB1dChcbiAgJy9hcGkvOnNlc3Npb24vZGVsZXRlLWxhYmVsLzppZCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBMYWJlbHNDb250cm9sbGVyLmRlbGV0ZUxhYmVsXG4pO1xuXG4vLyBDb250YWN0XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9jaGVjay1udW1iZXItc3RhdHVzLzpwaG9uZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmNoZWNrTnVtYmVyU3RhdHVzXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vYWxsLWNvbnRhY3RzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0QWxsQ29udGFjdHNcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9jb250YWN0LzpwaG9uZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldENvbnRhY3Rcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9jb250YWN0L3BuLWxpZC86cG5MaWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgQ29udGFjdENvbnRyb2xsZXIuZ2V0Q29udGFjdFBuTGlkXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vcHJvZmlsZS86cGhvbmUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXROdW1iZXJQcm9maWxlXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vcHJvZmlsZS1waWMvOnBob25lJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0UHJvZmlsZVBpY0Zyb21TZXJ2ZXJcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9wcm9maWxlLXN0YXR1cy86cGhvbmUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRTdGF0dXNcbik7XG5cbi8vIEJsb2NrbGlzdFxucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vYmxvY2tsaXN0JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0QmxvY2tMaXN0XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2Jsb2NrLWNvbnRhY3QnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5ibG9ja0NvbnRhY3Rcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vdW5ibG9jay1jb250YWN0JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIudW5ibG9ja0NvbnRhY3Rcbik7XG5cbi8vIERldmljZVxucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vZ2V0LWJhdHRlcnktbGV2ZWwnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRCYXR0ZXJ5TGV2ZWxcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9ob3N0LWRldmljZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldEhvc3REZXZpY2Vcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9nZXQtcGhvbmUtbnVtYmVyJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0UGhvbmVOdW1iZXJcbik7XG5cbi8vIFByb2ZpbGVcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZXQtcHJvZmlsZS1waWMnLFxuICB1cGxvYWQuc2luZ2xlKCdmaWxlJyksXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnNldFByb2ZpbGVQaWNcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vcHJvZmlsZS1zdGF0dXMnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5zZXRQcm9maWxlU3RhdHVzXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2NoYW5nZS11c2VybmFtZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnNldFByb2ZpbGVOYW1lXG4pO1xuXG4vLyBCdXNpbmVzc1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2VkaXQtYnVzaW5lc3MtcHJvZmlsZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBTZXNzaW9uQ29udHJvbGxlci5lZGl0QnVzaW5lc3NQcm9maWxlXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vZ2V0LWJ1c2luZXNzLXByb2ZpbGVzLXByb2R1Y3RzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE9yZGVyQ29udHJvbGxlci5nZXRCdXNpbmVzc1Byb2ZpbGVzUHJvZHVjdHNcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9nZXQtb3JkZXItYnktbWVzc2FnZUlkLzptZXNzYWdlSWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgT3JkZXJDb250cm9sbGVyLmdldE9yZGVyYnlNc2dcbik7XG5yb3V0ZXMuZ2V0KCcvYXBpLzpzZWNyZXRrZXkvYmFja3VwLXNlc3Npb25zJywgTWlzY0NvbnRyb2xsZXIuYmFja3VwQWxsU2Vzc2lvbnMpO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZWNyZXRrZXkvcmVzdG9yZS1zZXNzaW9ucycsXG4gIHVwbG9hZC5zaW5nbGUoJ2ZpbGUnKSxcbiAgTWlzY0NvbnRyb2xsZXIucmVzdG9yZUFsbFNlc3Npb25zXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vdGFrZS1zY3JlZW5zaG90JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIE1pc2NDb250cm9sbGVyLnRha2VTY3JlZW5zaG90XG4pO1xucm91dGVzLnBvc3QoJy9hcGkvOnNlc3Npb24vc2V0LWxpbWl0JywgTWlzY0NvbnRyb2xsZXIuc2V0TGltaXQpO1xuXG4vL0NvbW11bml0eXNcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9jcmVhdGUtY29tbXVuaXR5JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENvbW11bml0eUNvbnRyb2xsZXIuY3JlYXRlQ29tbXVuaXR5XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2RlYWN0aXZhdGUtY29tbXVuaXR5JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENvbW11bml0eUNvbnRyb2xsZXIuZGVhY3RpdmF0ZUNvbW11bml0eVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9hZGQtY29tbXVuaXR5LXN1Ymdyb3VwJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENvbW11bml0eUNvbnRyb2xsZXIuYWRkU3ViZ3JvdXBzQ29tbXVuaXR5XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3JlbW92ZS1jb21tdW5pdHktc3ViZ3JvdXAnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgQ29tbXVuaXR5Q29udHJvbGxlci5yZW1vdmVTdWJncm91cHNDb21tdW5pdHlcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vcHJvbW90ZS1jb21tdW5pdHktcGFydGljaXBhbnQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgQ29tbXVuaXR5Q29udHJvbGxlci5wcm9tb3RlQ29tbXVuaXR5UGFydGljaXBhbnRcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZGVtb3RlLWNvbW11bml0eS1wYXJ0aWNpcGFudCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDb21tdW5pdHlDb250cm9sbGVyLmRlbW90ZUNvbW11bml0eVBhcnRpY2lwYW50XG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vY29tbXVuaXR5LXBhcnRpY2lwYW50cy86aWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgQ29tbXVuaXR5Q29udHJvbGxlci5nZXRDb21tdW5pdHlQYXJ0aWNpcGFudHNcbik7XG5cbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9uZXdzbGV0dGVyJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE5ld3NsZXR0ZXJDb250cm9sbGVyLmNyZWF0ZU5ld3NsZXR0ZXJcbik7XG5yb3V0ZXMucHV0KFxuICAnL2FwaS86c2Vzc2lvbi9uZXdzbGV0dGVyLzppZCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBOZXdzbGV0dGVyQ29udHJvbGxlci5lZGl0TmV3c2xldHRlclxuKTtcblxucm91dGVzLmRlbGV0ZShcbiAgJy9hcGkvOnNlc3Npb24vbmV3c2xldHRlci86aWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTmV3c2xldHRlckNvbnRyb2xsZXIuZGVzdHJveU5ld3NsZXR0ZXJcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vbXV0ZS1uZXdzbGV0dGVyLzppZCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBOZXdzbGV0dGVyQ29udHJvbGxlci5tdXRlTmV3c2xldHRlclxuKTtcblxucm91dGVzLnBvc3QoJy9hcGkvOnNlc3Npb24vY2hhdHdvb3QnLCBEZXZpY2VDb250cm9sbGVyLmNoYXRXb290KTtcblxuLy8gQXBpIERvY1xucm91dGVzLnVzZSgnL2FwaS1kb2NzJywgc3dhZ2dlclVpLnNlcnZlIGFzIGFueSk7XG5yb3V0ZXMuZ2V0KCcvYXBpLWRvY3MnLCBzd2FnZ2VyVWkuc2V0dXAoc3dhZ2dlckRvY3VtZW50KSBhcyBhbnkpO1xuXG4vL2s4c1xucm91dGVzLmdldCgnL2hlYWx0aHonLCBIZWFsdGhDaGVjay5oZWFsdGh6KTtcbnJvdXRlcy5nZXQoJy91bmhlYWx0aHknLCBIZWFsdGhDaGVjay51bmhlYWx0aHkpO1xuXG4vL01ldHJpY3MgUHJvbWV0aGV1c1xuXG5yb3V0ZXMuZ2V0KCcvbWV0cmljcycsIHByb21ldGhldXNSZWdpc3Rlci5tZXRyaWNzKTtcblxuZXhwb3J0IGRlZmF1bHQgcm91dGVzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFlQSxJQUFBQSxRQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxpQkFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBOztBQUVBLElBQUFJLE9BQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFLLGlCQUFBLEdBQUFDLHVCQUFBLENBQUFOLE9BQUE7QUFDQSxJQUFBTyxtQkFBQSxHQUFBRCx1QkFBQSxDQUFBTixPQUFBO0FBQ0EsSUFBQVEsa0JBQUEsR0FBQU4sc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFTLGdCQUFBLEdBQUFILHVCQUFBLENBQUFOLE9BQUE7QUFDQSxJQUFBVSxrQkFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsZUFBQSxHQUFBTCx1QkFBQSxDQUFBTixPQUFBO0FBQ0EsSUFBQVksZ0JBQUEsR0FBQU4sdUJBQUEsQ0FBQU4sT0FBQTtBQUNBLElBQUFhLGlCQUFBLEdBQUFQLHVCQUFBLENBQUFOLE9BQUE7QUFDQSxJQUFBYyxjQUFBLEdBQUFSLHVCQUFBLENBQUFOLE9BQUE7QUFDQSxJQUFBZSxvQkFBQSxHQUFBVCx1QkFBQSxDQUFBTixPQUFBO0FBQ0EsSUFBQWdCLGVBQUEsR0FBQVYsdUJBQUEsQ0FBQU4sT0FBQTtBQUNBLElBQUFpQixpQkFBQSxHQUFBWCx1QkFBQSxDQUFBTixPQUFBO0FBQ0EsSUFBQWtCLGdCQUFBLEdBQUFaLHVC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
971
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXhwcmVzcyIsInJlcXVpcmUiLCJfbXVsdGVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9zd2FnZ2VyVWlFeHByZXNzIiwiX3VwbG9hZCIsIkNhdGFsb2dDb250cm9sbGVyIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJDb21tdW5pdHlDb250cm9sbGVyIiwiX2NvbnRhY3RDb250cm9sbGVyIiwiRGV2aWNlQ29udHJvbGxlciIsIl9lbmNyeXB0Q29udHJvbGxlciIsIkdyb3VwQ29udHJvbGxlciIsIkxhYmVsc0NvbnRyb2xsZXIiLCJNZXNzYWdlQ29udHJvbGxlciIsIk1pc2NDb250cm9sbGVyIiwiTmV3c2xldHRlckNvbnRyb2xsZXIiLCJPcmRlckNvbnRyb2xsZXIiLCJTZXNzaW9uQ29udHJvbGxlciIsIlN0YXR1c0NvbnRyb2xsZXIiLCJfYXV0aCIsIkhlYWx0aENoZWNrIiwicHJvbWV0aGV1c1JlZ2lzdGVyIiwiX3N0YXR1c0Nvbm5lY3Rpb24iLCJfc3dhZ2dlciIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInVwbG9hZCIsIm11bHRlciIsInVwbG9hZENvbmZpZyIsInJvdXRlcyIsIlJvdXRlciIsInBvc3QiLCJlbmNyeXB0U2Vzc2lvbiIsInNob3dBbGxTZXNzaW9ucyIsInN0YXJ0QWxsU2Vzc2lvbnMiLCJ2ZXJpZnlUb2tlbiIsImNoZWNrQ29ubmVjdGlvblNlc3Npb24iLCJnZXRNZWRpYUJ5TWVzc2FnZSIsImdldFBsYXRmb3JtRnJvbU1lc3NhZ2UiLCJnZXRRckNvZGUiLCJzdGFydFNlc3Npb24iLCJzdGF0dXNDb25uZWN0aW9uIiwibG9nT3V0U2Vzc2lvbiIsImNsZWFyU2Vzc2lvbkRhdGEiLCJjbG9zZVNlc3Npb24iLCJzdWJzY3JpYmVQcmVzZW5jZSIsInNldE9ubGluZVByZXNlbmNlIiwiZG93bmxvYWRNZWRpYUJ5TWVzc2FnZSIsInNlbmRNZXNzYWdlIiwiZWRpdE1lc3NhZ2UiLCJzaW5nbGUiLCJzZW5kRmlsZSIsInNlbmRJbWFnZUFzU3RpY2tlciIsInNlbmRJbWFnZUFzU3RpY2tlckdpZiIsInJlcGx5TWVzc2FnZSIsInNlbmRWb2ljZSIsInNlbmRWb2ljZTY0IiwiZ2V0U2Vzc2lvblN0YXRlIiwic2VuZFN0YXR1c1RleHQiLCJzZW5kTGlua1ByZXZpZXciLCJzZW5kTG9jYXRpb24iLCJzZW5kTWVudGlvbmVkIiwic2VuZEJ1dHRvbnMiLCJzZW5kTGlzdE1lc3NhZ2UiLCJzZW5kT3JkZXJNZXNzYWdlIiwic2VuZFBvbGxNZXNzYWdlIiwic2VuZFBpeE1lc3NhZ2UiLCJnZXRBbGxCcm9hZGNhc3RMaXN0IiwiZ2V0QWxsR3JvdXBzIiwiZ2V0R3JvdXBNZW1iZXJzIiwiZ2V0Q29tbW9uR3JvdXBzIiwiZ2V0R3JvdXBBZG1pbnMiLCJnZXRHcm91cEluZm8iLCJnZXRHcm91cEludml0ZUxpbmsiLCJyZXZva2VHcm91cEludml0ZUxpbmsiLCJnZXRHcm91cE1lbWJlcnNJZHMiLCJjcmVhdGVHcm91cCIsImxlYXZlR3JvdXAiLCJqb2luR3JvdXBCeUNvZGUiLCJhZGRQYXJ0aWNpcGFudCIsInJlbW92ZVBhcnRpY2lwYW50IiwicHJvbW90ZVBhcnRpY2lwYW50IiwiZGVtb3RlUGFydGljaXBhbnQiLCJnZXRHcm91cEluZm9Gcm9tSW52aXRlTGluayIsInNldEdyb3VwRGVzY3JpcHRpb24iLCJzZXRHcm91cFByb3BlcnR5Iiwic2V0R3JvdXBTdWJqZWN0Iiwic2V0TWVzc2FnZXNBZG1pbnNPbmx5Iiwic2V0R3JvdXBQcm9maWxlUGljIiwiY2hhbmdlUHJpdmFjeUdyb3VwIiwiZ2V0QWxsQ2hhdHMiLCJsaXN0Q2hhdHMiLCJnZXRBbGxDaGF0c0FyY2hpdmVkcyIsImdldEFsbENoYXRzV2l0aE1lc3NhZ2VzIiwiZ2V0QWxsTWVzc2FnZXNJbkNoYXQiLCJnZXRBbGxOZXdNZXNzYWdlcyIsImdldFVucmVhZE1lc3NhZ2VzIiwiZ2V0QWxsVW5yZWFkTWVzc2FnZXMiLCJnZXRDaGF0QnlJZCIsImdldE1lc3NhZ2VCeUlkIiwiZ2V0Q2hhdElzT25saW5lIiwiZ2V0TGFzdFNlZW4iLCJnZXRMaXN0TXV0ZXMiLCJsb2FkQW5kR2V0QWxsTWVzc2FnZXNJbkNoYXQiLCJnZXRNZXNzYWdlcyIsImFyY2hpdmVDaGF0IiwiYXJjaGl2ZUFsbENoYXRzIiwiY2xlYXJDaGF0IiwiY2xlYXJBbGxDaGF0cyIsImRlbGV0ZUNoYXQiLCJkZWxldGVBbGxDaGF0cyIsImRlbGV0ZU1lc3NhZ2UiLCJyZWFjdE1lc3NhZ2UiLCJmb3J3YXJkTWVzc2FnZXMiLCJtYXJrVW5zZWVuTWVzc2FnZSIsInBpbkNoYXQiLCJzZW5kQ29udGFjdFZjYXJkIiwic2VuZE11dGUiLCJzZW5kU2VlbiIsInNldENoYXRTdGF0ZSIsInNldFRlbXBvcmFyeU1lc3NhZ2VzIiwic2V0VHlwaW5nIiwic2V0UmVjb3JkaW5nIiwic3Rhck1lc3NhZ2UiLCJnZXRSZWFjdGlvbnMiLCJnZXRWb3RlcyIsInJlamVjdENhbGwiLCJnZXRQcm9kdWN0cyIsImdldFByb2R1Y3RCeUlkIiwiYWRkUHJvZHVjdCIsImVkaXRQcm9kdWN0IiwiZGVsUHJvZHVjdHMiLCJjaGFuZ2VQcm9kdWN0SW1hZ2UiLCJhZGRQcm9kdWN0SW1hZ2UiLCJyZW1vdmVQcm9kdWN0SW1hZ2UiLCJnZXRDb2xsZWN0aW9ucyIsImNyZWF0ZUNvbGxlY3Rpb24iLCJlZGl0Q29sbGVjdGlvbiIsImRlbGV0ZUNvbGxlY3Rpb24iLCJzZW5kTGlua0NhdGFsb2ciLCJzZXRQcm9kdWN0VmlzaWJpbGl0eSIsInVwZGF0ZUNhcnRFbmFibGVkIiwic2VuZFRleHRTdG9yaWUiLCJzZW5kSW1hZ2VTdG9yaWUiLCJzZW5kVmlkZW9TdG9yaWUiLCJhZGROZXdMYWJlbCIsImFkZE9yUmVtb3ZlTGFiZWxzIiwiZ2V0QWxsTGFiZWxzIiwicHV0IiwiZGVsZXRlQWxsTGFiZWxzIiwiZGVsZXRlTGFiZWwiLCJjaGVja051bWJlclN0YXR1cyIsImdldEFsbENvbnRhY3RzIiwiZ2V0Q29udGFjdCIsIkNvbnRhY3RDb250cm9sbGVyIiwiZ2V0Q29udGFjdFBuTGlkIiwiZ2V0TnVtYmVyUHJvZmlsZSIsImdldFByb2ZpbGVQaWNGcm9tU2VydmVyIiwiZ2V0U3RhdHVzIiwiZ2V0QmxvY2tMaXN0IiwiYmxvY2tDb250YWN0IiwidW5ibG9ja0NvbnRhY3QiLCJnZXRCYXR0ZXJ5TGV2ZWwiLCJnZXRIb3N0RGV2aWNlIiwiZ2V0UGhvbmVOdW1iZXIiLCJzZXRQcm9maWxlUGljIiwic2V0UHJvZmlsZVN0YXR1cyIsInNldFByb2ZpbGVOYW1lIiwiZWRpdEJ1c2luZXNzUHJvZmlsZSIsImdldEJ1c2luZXNzUHJvZmlsZXNQcm9kdWN0cyIsImdldE9yZGVyYnlNc2ciLCJiYWNrdXBBbGxTZXNzaW9ucyIsInJlc3RvcmVBbGxTZXNzaW9ucyIsInRha2VTY3JlZW5zaG90Iiwic2V0TGltaXQiLCJjcmVhdGVDb21tdW5pdHkiLCJkZWFjdGl2YXRlQ29tbXVuaXR5IiwiYWRkU3ViZ3JvdXBzQ29tbXVuaXR5IiwicmVtb3ZlU3ViZ3JvdXBzQ29tbXVuaXR5IiwicHJvbW90ZUNvbW11bml0eVBhcnRpY2lwYW50IiwiZGVtb3RlQ29tbXVuaXR5UGFydGljaXBhbnQiLCJnZXRDb21tdW5pdHlQYXJ0aWNpcGFudHMiLCJjcmVhdGVOZXdzbGV0dGVyIiwiZWRpdE5ld3NsZXR0ZXIiLCJkZWxldGUiLCJkZXN0cm95TmV3c2xldHRlciIsIm11dGVOZXdzbGV0dGVyIiwiY2hhdFdvb3QiLCJ1c2UiLCJzd2FnZ2VyVWkiLCJzZXJ2ZSIsInNldHVwIiwic3dhZ2dlckRvY3VtZW50IiwiaGVhbHRoeiIsInVuaGVhbHRoeSIsIm1ldHJpY3MiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvcm91dGVzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyMSBXUFBDb25uZWN0IFRlYW1cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IG11bHRlciBmcm9tICdtdWx0ZXInO1xuaW1wb3J0IHN3YWdnZXJVaSBmcm9tICdzd2FnZ2VyLXVpLWV4cHJlc3MnO1xuXG5pbXBvcnQgdXBsb2FkQ29uZmlnIGZyb20gJy4uL2NvbmZpZy91cGxvYWQnO1xuaW1wb3J0ICogYXMgQ2F0YWxvZ0NvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9jYXRhbG9nQ29udHJvbGxlcic7XG5pbXBvcnQgKiBhcyBDb21tdW5pdHlDb250cm9sbGVyIGZyb20gJy4uL2NvbnRyb2xsZXIvY29tbXVuaXR5Q29udHJvbGxlcic7XG5pbXBvcnQgQ29udGFjdENvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9jb250YWN0Q29udHJvbGxlcic7XG5pbXBvcnQgKiBhcyBEZXZpY2VDb250cm9sbGVyIGZyb20gJy4uL2NvbnRyb2xsZXIvZGV2aWNlQ29udHJvbGxlcic7XG5pbXBvcnQgeyBlbmNyeXB0U2Vzc2lvbiB9IGZyb20gJy4uL2NvbnRyb2xsZXIvZW5jcnlwdENvbnRyb2xsZXInO1xuaW1wb3J0ICogYXMgR3JvdXBDb250cm9sbGVyIGZyb20gJy4uL2NvbnRyb2xsZXIvZ3JvdXBDb250cm9sbGVyJztcbmltcG9ydCAqIGFzIExhYmVsc0NvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9sYWJlbHNDb250cm9sbGVyJztcbmltcG9ydCAqIGFzIE1lc3NhZ2VDb250cm9sbGVyIGZyb20gJy4uL2NvbnRyb2xsZXIvbWVzc2FnZUNvbnRyb2xsZXInO1xuaW1wb3J0ICogYXMgTWlzY0NvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9taXNjQ29udHJvbGxlcic7XG5pbXBvcnQgKiBhcyBOZXdzbGV0dGVyQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL25ld3NsZXR0ZXJDb250cm9sbGVyJztcbmltcG9ydCAqIGFzIE9yZGVyQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL29yZGVyQ29udHJvbGxlcic7XG5pbXBvcnQgKiBhcyBTZXNzaW9uQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL3Nlc3Npb25Db250cm9sbGVyJztcbmltcG9ydCAqIGFzIFN0YXR1c0NvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9zdGF0dXNDb250cm9sbGVyJztcbmltcG9ydCB2ZXJpZnlUb2tlbiBmcm9tICcuLi9taWRkbGV3YXJlL2F1dGgnO1xuaW1wb3J0ICogYXMgSGVhbHRoQ2hlY2sgZnJvbSAnLi4vbWlkZGxld2FyZS9oZWFsdGhDaGVjayc7XG5pbXBvcnQgKiBhcyBwcm9tZXRoZXVzUmVnaXN0ZXIgZnJvbSAnLi4vbWlkZGxld2FyZS9pbnN0cnVtZW50YXRpb24nO1xuaW1wb3J0IHN0YXR1c0Nvbm5lY3Rpb24gZnJvbSAnLi4vbWlkZGxld2FyZS9zdGF0dXNDb25uZWN0aW9uJztcbmltcG9ydCBzd2FnZ2VyRG9jdW1lbnQgZnJvbSAnLi4vc3dhZ2dlci5qc29uJztcblxuY29uc3QgdXBsb2FkID0gbXVsdGVyKHVwbG9hZENvbmZpZyBhcyBhbnkpIGFzIGFueTtcbmNvbnN0IHJvdXRlczogUm91dGVyID0gUm91dGVyKCk7XG5cbi8vIEdlbmVyYXRlIFRva2VuXG5yb3V0ZXMucG9zdCgnL2FwaS86c2Vzc2lvbi86c2VjcmV0a2V5L2dlbmVyYXRlLXRva2VuJywgZW5jcnlwdFNlc3Npb24pO1xuXG4vLyBBbGwgU2Vzc2lvbnNcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZWNyZXRrZXkvc2hvdy1hbGwtc2Vzc2lvbnMnLFxuICBTZXNzaW9uQ29udHJvbGxlci5zaG93QWxsU2Vzc2lvbnNcbik7XG5yb3V0ZXMucG9zdCgnL2FwaS86c2VjcmV0a2V5L3N0YXJ0LWFsbCcsIFNlc3Npb25Db250cm9sbGVyLnN0YXJ0QWxsU2Vzc2lvbnMpO1xuXG4vLyBTZXNzaW9uc1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vY2hlY2stY29ubmVjdGlvbi1zZXNzaW9uJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIFNlc3Npb25Db250cm9sbGVyLmNoZWNrQ29ubmVjdGlvblNlc3Npb25cbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9nZXQtbWVkaWEtYnktbWVzc2FnZS86bWVzc2FnZUlkJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIFNlc3Npb25Db250cm9sbGVyLmdldE1lZGlhQnlNZXNzYWdlXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vZ2V0LXBsYXRmb3JtLWZyb20tbWVzc2FnZS86bWVzc2FnZUlkJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0UGxhdGZvcm1Gcm9tTWVzc2FnZVxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL3FyY29kZS1zZXNzaW9uJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIFNlc3Npb25Db250cm9sbGVyLmdldFFyQ29kZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zdGFydC1zZXNzaW9uJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIFNlc3Npb25Db250cm9sbGVyLnN0YXJ0U2Vzc2lvblxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9sb2dvdXQtc2Vzc2lvbicsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBTZXNzaW9uQ29udHJvbGxlci5sb2dPdXRTZXNzaW9uXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uLzpzZWNyZXRrZXkvY2xlYXItc2Vzc2lvbi1kYXRhJyxcbiAgTWlzY0NvbnRyb2xsZXIuY2xlYXJTZXNzaW9uRGF0YVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9jbG9zZS1zZXNzaW9uJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIFNlc3Npb25Db250cm9sbGVyLmNsb3NlU2Vzc2lvblxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zdWJzY3JpYmUtcHJlc2VuY2UnLFxuICB2ZXJpZnlUb2tlbixcbiAgU2Vzc2lvbkNvbnRyb2xsZXIuc3Vic2NyaWJlUHJlc2VuY2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2V0LW9ubGluZS1wcmVzZW5jZScsXG4gIHZlcmlmeVRva2VuLFxuICBTZXNzaW9uQ29udHJvbGxlci5zZXRPbmxpbmVQcmVzZW5jZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9kb3dubG9hZC1tZWRpYScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBTZXNzaW9uQ29udHJvbGxlci5kb3dubG9hZE1lZGlhQnlNZXNzYWdlXG4pO1xuXG4vLyBNZXNzYWdlc1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtbWVzc2FnZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBNZXNzYWdlQ29udHJvbGxlci5zZW5kTWVzc2FnZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9lZGl0LW1lc3NhZ2UnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuZWRpdE1lc3NhZ2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC1pbWFnZScsXG4gIHVwbG9hZC5zaW5nbGUoJ2ZpbGUnKSxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE1lc3NhZ2VDb250cm9sbGVyLnNlbmRGaWxlXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtc3RpY2tlcicsXG4gIHVwbG9hZC5zaW5nbGUoJ2ZpbGUnKSxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE1lc3NhZ2VDb250cm9sbGVyLnNlbmRJbWFnZUFzU3RpY2tlclxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZW5kLXN0aWNrZXItZ2lmJyxcbiAgdXBsb2FkLnNpbmdsZSgnZmlsZScpLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZEltYWdlQXNTdGlja2VyR2lmXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtcmVwbHknLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIucmVwbHlNZXNzYWdlXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtZmlsZScsXG4gIHVwbG9hZC5zaW5nbGUoJ2ZpbGUnKSxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE1lc3NhZ2VDb250cm9sbGVyLnNlbmRGaWxlXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtZmlsZS1iYXNlNjQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZEZpbGVcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC12b2ljZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBNZXNzYWdlQ29udHJvbGxlci5zZW5kVm9pY2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC12b2ljZS1iYXNlNjQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZFZvaWNlNjRcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9zdGF0dXMtc2Vzc2lvbicsXG4gIHZlcmlmeVRva2VuLFxuICBTZXNzaW9uQ29udHJvbGxlci5nZXRTZXNzaW9uU3RhdGVcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC1zdGF0dXMnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZFN0YXR1c1RleHRcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC1saW5rLXByZXZpZXcnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZExpbmtQcmV2aWV3XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtbG9jYXRpb24nLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZExvY2F0aW9uXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtbWVudGlvbmVkJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE1lc3NhZ2VDb250cm9sbGVyLnNlbmRNZW50aW9uZWRcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC1idXR0b25zJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE1lc3NhZ2VDb250cm9sbGVyLnNlbmRCdXR0b25zXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtbGlzdC1tZXNzYWdlJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE1lc3NhZ2VDb250cm9sbGVyLnNlbmRMaXN0TWVzc2FnZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZW5kLW9yZGVyLW1lc3NhZ2UnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTWVzc2FnZUNvbnRyb2xsZXIuc2VuZE9yZGVyTWVzc2FnZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZW5kLXBvbGwtbWVzc2FnZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBNZXNzYWdlQ29udHJvbGxlci5zZW5kUG9sbE1lc3NhZ2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vc2VuZC1waXgta2V5JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE1lc3NhZ2VDb250cm9sbGVyLnNlbmRQaXhNZXNzYWdlXG4pO1xuXG4vLyBHcm91cFxucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vYWxsLWJyb2FkY2FzdC1saXN0JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIEdyb3VwQ29udHJvbGxlci5nZXRBbGxCcm9hZGNhc3RMaXN0XG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vYWxsLWdyb3VwcycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuZ2V0QWxsR3JvdXBzXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vZ3JvdXAtbWVtYmVycy86Z3JvdXBJZCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuZ2V0R3JvdXBNZW1iZXJzXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vY29tbW9uLWdyb3Vwcy86d2lkJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIEdyb3VwQ29udHJvbGxlci5nZXRDb21tb25Hcm91cHNcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9ncm91cC1hZG1pbnMvOmdyb3VwSWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLmdldEdyb3VwQWRtaW5zXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vZ3JvdXAtaW5mby86Z3JvdXBJZCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuZ2V0R3JvdXBJbmZvXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vZ3JvdXAtaW52aXRlLWxpbmsvOmdyb3VwSWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLmdldEdyb3VwSW52aXRlTGlua1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dyb3VwLXJldm9rZS1saW5rLzpncm91cElkJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIEdyb3VwQ29udHJvbGxlci5yZXZva2VHcm91cEludml0ZUxpbmtcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9ncm91cC1tZW1iZXJzLWlkcy86Z3JvdXBJZCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuZ2V0R3JvdXBNZW1iZXJzSWRzXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2NyZWF0ZS1ncm91cCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuY3JlYXRlR3JvdXBcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vbGVhdmUtZ3JvdXAnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLmxlYXZlR3JvdXBcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vam9pbi1jb2RlJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIEdyb3VwQ29udHJvbGxlci5qb2luR3JvdXBCeUNvZGVcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vYWRkLXBhcnRpY2lwYW50LWdyb3VwJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIEdyb3VwQ29udHJvbGxlci5hZGRQYXJ0aWNpcGFudFxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9yZW1vdmUtcGFydGljaXBhbnQtZ3JvdXAnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLnJlbW92ZVBhcnRpY2lwYW50XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3Byb21vdGUtcGFydGljaXBhbnQtZ3JvdXAnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLnByb21vdGVQYXJ0aWNpcGFudFxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9kZW1vdGUtcGFydGljaXBhbnQtZ3JvdXAnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLmRlbW90ZVBhcnRpY2lwYW50XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2dyb3VwLWluZm8tZnJvbS1pbnZpdGUtbGluaycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuZ2V0R3JvdXBJbmZvRnJvbUludml0ZUxpbmtcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZ3JvdXAtZGVzY3JpcHRpb24nLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLnNldEdyb3VwRGVzY3JpcHRpb25cbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZ3JvdXAtcHJvcGVydHknLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLnNldEdyb3VwUHJvcGVydHlcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZ3JvdXAtc3ViamVjdCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuc2V0R3JvdXBTdWJqZWN0XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL21lc3NhZ2VzLWFkbWlucy1vbmx5JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIEdyb3VwQ29udHJvbGxlci5zZXRNZXNzYWdlc0FkbWluc09ubHlcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZ3JvdXAtcGljJyxcbiAgdXBsb2FkLnNpbmdsZSgnZmlsZScpLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgR3JvdXBDb250cm9sbGVyLnNldEdyb3VwUHJvZmlsZVBpY1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9jaGFuZ2UtcHJpdmFjeS1ncm91cCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBHcm91cENvbnRyb2xsZXIuY2hhbmdlUHJpdmFjeUdyb3VwXG4pO1xuXG4vLyBDaGF0XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9hbGwtY2hhdHMnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRBbGxDaGF0c1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9saXN0LWNoYXRzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIubGlzdENoYXRzXG4pO1xuXG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9hbGwtY2hhdHMtYXJjaGl2ZWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRBbGxDaGF0c0FyY2hpdmVkc1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2FsbC1jaGF0cy13aXRoLW1lc3NhZ2VzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0QWxsQ2hhdHNXaXRoTWVzc2FnZXNcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9hbGwtbWVzc2FnZXMtaW4tY2hhdC86cGhvbmUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRBbGxNZXNzYWdlc0luQ2hhdFxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2FsbC1uZXctbWVzc2FnZXMnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRBbGxOZXdNZXNzYWdlc1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL3VucmVhZC1tZXNzYWdlcycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldFVucmVhZE1lc3NhZ2VzXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vYWxsLXVucmVhZC1tZXNzYWdlcycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldEFsbFVucmVhZE1lc3NhZ2VzXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vY2hhdC1ieS1pZC86cGhvbmUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRDaGF0QnlJZFxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL21lc3NhZ2UtYnktaWQvOm1lc3NhZ2VJZCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldE1lc3NhZ2VCeUlkXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vY2hhdC1pcy1vbmxpbmUvOnBob25lJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0Q2hhdElzT25saW5lXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vbGFzdC1zZWVuLzpwaG9uZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldExhc3RTZWVuXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vbGlzdC1tdXRlcy86dHlwZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldExpc3RNdXRlc1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2xvYWQtbWVzc2FnZXMtaW4tY2hhdC86cGhvbmUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5sb2FkQW5kR2V0QWxsTWVzc2FnZXNJbkNoYXRcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9nZXQtbWVzc2FnZXMvOnBob25lJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0TWVzc2FnZXNcbik7XG5cbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9hcmNoaXZlLWNoYXQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5hcmNoaXZlQ2hhdFxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9hcmNoaXZlLWFsbC1jaGF0cycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmFyY2hpdmVBbGxDaGF0c1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9jbGVhci1jaGF0JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuY2xlYXJDaGF0XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2NsZWFyLWFsbC1jaGF0cycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmNsZWFyQWxsQ2hhdHNcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZGVsZXRlLWNoYXQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5kZWxldGVDaGF0XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2RlbGV0ZS1hbGwtY2hhdHMnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5kZWxldGVBbGxDaGF0c1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9kZWxldGUtbWVzc2FnZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmRlbGV0ZU1lc3NhZ2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vcmVhY3QtbWVzc2FnZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnJlYWN0TWVzc2FnZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9mb3J3YXJkLW1lc3NhZ2VzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZm9yd2FyZE1lc3NhZ2VzXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL21hcmstdW5zZWVuJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIubWFya1Vuc2Vlbk1lc3NhZ2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vcGluLWNoYXQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5waW5DaGF0XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2NvbnRhY3QtdmNhcmQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5zZW5kQ29udGFjdFZjYXJkXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtbXV0ZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnNlbmRNdXRlXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtc2VlbicsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnNlbmRTZWVuXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2NoYXQtc3RhdGUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5zZXRDaGF0U3RhdGVcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vdGVtcG9yYXJ5LW1lc3NhZ2VzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuc2V0VGVtcG9yYXJ5TWVzc2FnZXNcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vdHlwaW5nJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuc2V0VHlwaW5nXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3JlY29yZGluZycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnNldFJlY29yZGluZ1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zdGFyLW1lc3NhZ2UnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5zdGFyTWVzc2FnZVxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL3JlYWN0aW9ucy86aWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRSZWFjdGlvbnNcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi92b3Rlcy86aWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRWb3Rlc1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9yZWplY3QtY2FsbCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnJlamVjdENhbGxcbik7XG5cbi8vIENhdGFsb2dcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dldC1wcm9kdWN0cycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5nZXRQcm9kdWN0c1xuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dldC1wcm9kdWN0LWJ5LWlkJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLmdldFByb2R1Y3RCeUlkXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2FkZC1wcm9kdWN0JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLmFkZFByb2R1Y3Rcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZWRpdC1wcm9kdWN0JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLmVkaXRQcm9kdWN0XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2RlbC1wcm9kdWN0cycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5kZWxQcm9kdWN0c1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9jaGFuZ2UtcHJvZHVjdC1pbWFnZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5jaGFuZ2VQcm9kdWN0SW1hZ2Vcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vYWRkLXByb2R1Y3QtaW1hZ2UnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgQ2F0YWxvZ0NvbnRyb2xsZXIuYWRkUHJvZHVjdEltYWdlXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3JlbW92ZS1wcm9kdWN0LWltYWdlJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLnJlbW92ZVByb2R1Y3RJbWFnZVxuKTtcbnJvdXRlcy5nZXQoXG4gICcvYXBpLzpzZXNzaW9uL2dldC1jb2xsZWN0aW9ucycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5nZXRDb2xsZWN0aW9uc1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9jcmVhdGUtY29sbGVjdGlvbicsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5jcmVhdGVDb2xsZWN0aW9uXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2VkaXQtY29sbGVjdGlvbicsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5lZGl0Q29sbGVjdGlvblxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9kZWwtY29sbGVjdGlvbicsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDYXRhbG9nQ29udHJvbGxlci5kZWxldGVDb2xsZWN0aW9uXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtbGluay1jYXRhbG9nJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLnNlbmRMaW5rQ2F0YWxvZ1xuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZXQtcHJvZHVjdC12aXNpYmlsaXR5JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENhdGFsb2dDb250cm9sbGVyLnNldFByb2R1Y3RWaXNpYmlsaXR5XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NldC1jYXJ0LWVuYWJsZWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgQ2F0YWxvZ0NvbnRyb2xsZXIudXBkYXRlQ2FydEVuYWJsZWRcbik7XG5cbi8vIFN0YXR1c1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtdGV4dC1zdG9yaWUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgU3RhdHVzQ29udHJvbGxlci5zZW5kVGV4dFN0b3JpZVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZW5kLWltYWdlLXN0b3JpZScsXG4gIHVwbG9hZC5zaW5nbGUoJ2ZpbGUnKSxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIFN0YXR1c0NvbnRyb2xsZXIuc2VuZEltYWdlU3RvcmllXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3NlbmQtdmlkZW8tc3RvcmllJyxcbiAgdXBsb2FkLnNpbmdsZSgnZmlsZScpLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgU3RhdHVzQ29udHJvbGxlci5zZW5kVmlkZW9TdG9yaWVcbik7XG5cbi8vIExhYmVsc1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2FkZC1uZXctbGFiZWwnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTGFiZWxzQ29udHJvbGxlci5hZGROZXdMYWJlbFxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9hZGQtb3ItcmVtb3ZlLWxhYmVsJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIExhYmVsc0NvbnRyb2xsZXIuYWRkT3JSZW1vdmVMYWJlbHNcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9nZXQtYWxsLWxhYmVscycsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBMYWJlbHNDb250cm9sbGVyLmdldEFsbExhYmVsc1xuKTtcbnJvdXRlcy5wdXQoXG4gICcvYXBpLzpzZXNzaW9uL2RlbGV0ZS1hbGwtbGFiZWxzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIExhYmVsc0NvbnRyb2xsZXIuZGVsZXRlQWxsTGFiZWxzXG4pO1xucm91dGVzLnB1dChcbiAgJy9hcGkvOnNlc3Npb24vZGVsZXRlLWxhYmVsLzppZCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBMYWJlbHNDb250cm9sbGVyLmRlbGV0ZUxhYmVsXG4pO1xuXG4vLyBDb250YWN0XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9jaGVjay1udW1iZXItc3RhdHVzLzpwaG9uZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmNoZWNrTnVtYmVyU3RhdHVzXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vYWxsLWNvbnRhY3RzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0QWxsQ29udGFjdHNcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9jb250YWN0LzpwaG9uZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldENvbnRhY3Rcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9jb250YWN0L3BuLWxpZC86cG5MaWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgQ29udGFjdENvbnRyb2xsZXIuZ2V0Q29udGFjdFBuTGlkXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vcHJvZmlsZS86cGhvbmUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXROdW1iZXJQcm9maWxlXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vcHJvZmlsZS1waWMvOnBob25lJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0UHJvZmlsZVBpY0Zyb21TZXJ2ZXJcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9wcm9maWxlLXN0YXR1cy86cGhvbmUnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRTdGF0dXNcbik7XG5cbi8vIEJsb2NrbGlzdFxucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vYmxvY2tsaXN0JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0QmxvY2tMaXN0XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2Jsb2NrLWNvbnRhY3QnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5ibG9ja0NvbnRhY3Rcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vdW5ibG9jay1jb250YWN0JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIudW5ibG9ja0NvbnRhY3Rcbik7XG5cbi8vIERldmljZVxucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vZ2V0LWJhdHRlcnktbGV2ZWwnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5nZXRCYXR0ZXJ5TGV2ZWxcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9ob3N0LWRldmljZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLmdldEhvc3REZXZpY2Vcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9nZXQtcGhvbmUtbnVtYmVyJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIERldmljZUNvbnRyb2xsZXIuZ2V0UGhvbmVOdW1iZXJcbik7XG5cbi8vIFByb2ZpbGVcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9zZXQtcHJvZmlsZS1waWMnLFxuICB1cGxvYWQuc2luZ2xlKCdmaWxlJyksXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnNldFByb2ZpbGVQaWNcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vcHJvZmlsZS1zdGF0dXMnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgRGV2aWNlQ29udHJvbGxlci5zZXRQcm9maWxlU3RhdHVzXG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2NoYW5nZS11c2VybmFtZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBEZXZpY2VDb250cm9sbGVyLnNldFByb2ZpbGVOYW1lXG4pO1xuXG4vLyBCdXNpbmVzc1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2VkaXQtYnVzaW5lc3MtcHJvZmlsZScsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBTZXNzaW9uQ29udHJvbGxlci5lZGl0QnVzaW5lc3NQcm9maWxlXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vZ2V0LWJ1c2luZXNzLXByb2ZpbGVzLXByb2R1Y3RzJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE9yZGVyQ29udHJvbGxlci5nZXRCdXNpbmVzc1Byb2ZpbGVzUHJvZHVjdHNcbik7XG5yb3V0ZXMuZ2V0KFxuICAnL2FwaS86c2Vzc2lvbi9nZXQtb3JkZXItYnktbWVzc2FnZUlkLzptZXNzYWdlSWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgT3JkZXJDb250cm9sbGVyLmdldE9yZGVyYnlNc2dcbik7XG5yb3V0ZXMuZ2V0KCcvYXBpLzpzZWNyZXRrZXkvYmFja3VwLXNlc3Npb25zJywgTWlzY0NvbnRyb2xsZXIuYmFja3VwQWxsU2Vzc2lvbnMpO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZWNyZXRrZXkvcmVzdG9yZS1zZXNzaW9ucycsXG4gIHVwbG9hZC5zaW5nbGUoJ2ZpbGUnKSxcbiAgTWlzY0NvbnRyb2xsZXIucmVzdG9yZUFsbFNlc3Npb25zXG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vdGFrZS1zY3JlZW5zaG90JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIE1pc2NDb250cm9sbGVyLnRha2VTY3JlZW5zaG90XG4pO1xucm91dGVzLnBvc3QoJy9hcGkvOnNlc3Npb24vc2V0LWxpbWl0JywgTWlzY0NvbnRyb2xsZXIuc2V0TGltaXQpO1xuXG4vL0NvbW11bml0eXNcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9jcmVhdGUtY29tbXVuaXR5JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENvbW11bml0eUNvbnRyb2xsZXIuY3JlYXRlQ29tbXVuaXR5XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL2RlYWN0aXZhdGUtY29tbXVuaXR5JyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENvbW11bml0eUNvbnRyb2xsZXIuZGVhY3RpdmF0ZUNvbW11bml0eVxuKTtcbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9hZGQtY29tbXVuaXR5LXN1Ymdyb3VwJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIENvbW11bml0eUNvbnRyb2xsZXIuYWRkU3ViZ3JvdXBzQ29tbXVuaXR5XG4pO1xucm91dGVzLnBvc3QoXG4gICcvYXBpLzpzZXNzaW9uL3JlbW92ZS1jb21tdW5pdHktc3ViZ3JvdXAnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgQ29tbXVuaXR5Q29udHJvbGxlci5yZW1vdmVTdWJncm91cHNDb21tdW5pdHlcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vcHJvbW90ZS1jb21tdW5pdHktcGFydGljaXBhbnQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgQ29tbXVuaXR5Q29udHJvbGxlci5wcm9tb3RlQ29tbXVuaXR5UGFydGljaXBhbnRcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vZGVtb3RlLWNvbW11bml0eS1wYXJ0aWNpcGFudCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBDb21tdW5pdHlDb250cm9sbGVyLmRlbW90ZUNvbW11bml0eVBhcnRpY2lwYW50XG4pO1xucm91dGVzLmdldChcbiAgJy9hcGkvOnNlc3Npb24vY29tbXVuaXR5LXBhcnRpY2lwYW50cy86aWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgQ29tbXVuaXR5Q29udHJvbGxlci5nZXRDb21tdW5pdHlQYXJ0aWNpcGFudHNcbik7XG5cbnJvdXRlcy5wb3N0KFxuICAnL2FwaS86c2Vzc2lvbi9uZXdzbGV0dGVyJyxcbiAgdmVyaWZ5VG9rZW4sXG4gIHN0YXR1c0Nvbm5lY3Rpb24sXG4gIE5ld3NsZXR0ZXJDb250cm9sbGVyLmNyZWF0ZU5ld3NsZXR0ZXJcbik7XG5yb3V0ZXMucHV0KFxuICAnL2FwaS86c2Vzc2lvbi9uZXdzbGV0dGVyLzppZCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBOZXdzbGV0dGVyQ29udHJvbGxlci5lZGl0TmV3c2xldHRlclxuKTtcblxucm91dGVzLmRlbGV0ZShcbiAgJy9hcGkvOnNlc3Npb24vbmV3c2xldHRlci86aWQnLFxuICB2ZXJpZnlUb2tlbixcbiAgc3RhdHVzQ29ubmVjdGlvbixcbiAgTmV3c2xldHRlckNvbnRyb2xsZXIuZGVzdHJveU5ld3NsZXR0ZXJcbik7XG5yb3V0ZXMucG9zdChcbiAgJy9hcGkvOnNlc3Npb24vbXV0ZS1uZXdzbGV0dGVyLzppZCcsXG4gIHZlcmlmeVRva2VuLFxuICBzdGF0dXNDb25uZWN0aW9uLFxuICBOZXdzbGV0dGVyQ29udHJvbGxlci5tdXRlTmV3c2xldHRlclxuKTtcblxucm91dGVzLnBvc3QoJy9hcGkvOnNlc3Npb24vY2hhdHdvb3QnLCBEZXZpY2VDb250cm9sbGVyLmNoYXRXb290KTtcblxuLy8gQXBpIERvY1xucm91dGVzLnVzZSgnL2FwaS1kb2NzJywgc3dhZ2dlclVpLnNlcnZlIGFzIGFueSk7XG5yb3V0ZXMuZ2V0KCcvYXBpLWRvY3MnLCBzd2FnZ2VyVWkuc2V0dXAoc3dhZ2dlckRvY3VtZW50KSBhcyBhbnkpO1xuXG4vL2s4c1xucm91dGVzLmdldCgnL2hlYWx0aHonLCBIZWFsdGhDaGVjay5oZWFsdGh6KTtcbnJvdXRlcy5nZXQoJy91bmhlYWx0aHknLCBIZWFsdGhDaGVjay51bmhlYWx0aHkpO1xuXG4vL01ldHJpY3MgUHJvbWV0aGV1c1xuXG5yb3V0ZXMuZ2V0KCcvbWV0cmljcycsIHByb21ldGhldXNSZWdpc3Rlci5tZXRyaWNzKTtcblxuZXhwb3J0IGRlZmF1bHQgcm91dGVzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFlQSxJQUFBQSxRQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxpQkFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBOztBQUVBLElBQUFJLE9BQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFLLGlCQUFBLEdBQUFDLHVCQUFBLENBQUFOLE9BQUE7QUFDQSxJQUFBTyxtQkFBQSxHQUFBRCx1QkFBQSxDQUFBTixPQUFBO0FBQ0EsSUFBQVEsa0JBQUEsR0FBQU4sc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFTLGdCQUFBLEdBQUFILHVCQUFBLENBQUFOLE9BQUE7QUFDQSxJQUFBVSxrQkFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsZUFBQSxHQUFBTCx1QkFBQSxDQUFBTixPQUFBO0FBQ0EsSUFBQVksZ0JBQUEsR0FBQU4sdUJBQUEsQ0FBQU4sT0FBQTtBQUNBLElBQUFhLGlCQUFBLEdBQUFQLHVCQUFBLENBQUFOLE9BQUE7QUFDQSxJQUFBYyxjQUFBLEdBQUFSLHVCQUFBLENBQUFOLE9BQUE7QUFDQSxJQUFBZSxvQkFBQSxHQUFBVCx1QkFBQSxDQUFBTixPQUFBO0FBQ0EsSUFBQWdCLGVBQUEsR0FBQVYsdUJBQUEsQ0FBQU4sT0FBQTtBQUNBLElBQUFpQixpQkFBQSxHQUFBWCx1QkFBQSxDQUFBTixPQUFBO0FBQ0EsSUFBQWtCLGdCQUFBLEdBQUFaLHVCQUFBLENBQUFOLE9BQUE7QUFDQSxJQUFBbUIsS0FBQSxHQUFBakIsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFvQixXQUFBLEdBQUFkLHVCQUFBLENBQUFOLE9BQUE7QUFDQSxJQUFBcUIsa0JBQUEsR0FBQWYsdUJBQUEsQ0FBQU4sT0FBQTtBQUNBLElBQUFzQixpQkFBQSxHQUFBcEIsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUF1QixRQUFBLEdBQUFyQixzQkFBQSxDQUFBRixPQUFBLHFCQUE4QyxTQUFBTSx3QkFBQWtCLENBQUEsRUFBQUMsQ0FBQSw0QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsR0FBQUUsQ0FBQSxPQUFBRixPQUFBLFdBQUFwQix1QkFBQSxZQUFBQSxDQUFBa0IsQ0FBQSxFQUFBQyxDQUFBLFFBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxLQUFBTSxDQUFBLENBQUFDLENBQUEsQ0FBQUMsQ0FBQSxLQUFBQyxTQUFBLFFBQUFDLE9BQUEsRUFBQVYsQ0FBQSxnQkFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxTQUFBUSxDQUFBLEtBQUFGLENBQUEsR0FBQUwsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsT0FBQUcsQ0FBQSxDQUFBSyxHQUFBLENBQUFYLENBQUEsVUFBQU0sQ0FBQSxDQUFBTSxHQUFBLENBQUFaLENBQUEsQ0FBQU0sQ0FBQSxFQUFBTyxHQUFBLENBQUFiLENBQUEsRUFBQVEsQ0FBQSxjQUFBUCxDQUFBLElBQUFELENBQUEsZ0JBQUFDLENBQUEsT0FBQWEsY0FBQSxDQUFBQyxJQUFBLENBQUFmLENBQUEsRUFBQUMsQ0FBQSxPQUFBTSxDQUFBLElBQUFELENBQUEsR0FBQVUsTUFBQSxDQUFBQyxjQUFBLEtBQUFELE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWxCLENBQUEsRUFBQUMsQ0FBQSxPQUFBTSxDQUFBLENBQUFLLEdBQUEsSUFBQUwsQ0FBQSxDQUFBTSxHQUFBLElBQUFQLENBQUEsQ0FBQUUsQ0FBQSxFQUFBUCxDQUFBLEVBQUFNLENBQUEsSUFBQUMsQ0FBQSxDQUFBUCxDQUFBLElBQUFELENBQUEsQ0FBQUMsQ0FBQSxVQUFBTyxDQUFBLElBQUFSLENBQUEsRUFBQUMsQ0FBQSxJQXJDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBeUJBLE1BQU1rQixNQUFNLEdBQUcsSUFBQUMsZUFBTSxFQUFDQyxlQUFtQixDQUFRLENBQ2pELE1BQU1DLE1BQWMsR0FBRyxJQUFBQyxlQUFNLEVBQUMsQ0FBQyxDQUFDLENBRWhDO0FBQ0FELE1BQU0sQ0FBQ0UsSUFBSSxDQUFDLHlDQUF5QyxFQUFFQyxpQ0FBYyxDQUFDLENBQUMsQ0FFdkU7QUFDQUgsTUFBTSxDQUFDVixHQUFHLENBQ1IsbUNBQW1DLEVBQ25DbkIsaUJBQWlCLENBQUNpQyxlQUNwQixDQUFDLENBQ0RKLE1BQU0sQ0FBQ0UsSUFBSSxDQUFDLDJCQUEyQixFQUFFL0IsaUJBQWlCLENBQUNrQyxnQkFBZ0IsQ0FBQyxDQUFDLENBRTdFO0FBQ0FMLE1BQU0sQ0FBQ1YsR0FBRyxDQUNSLHdDQUF3QztBQUN4Q2dCLGFBQVc7QUFDWG5DLGlCQUFpQixDQUFDb0M7QUFDcEIsQ0FBQztBQUNEUCxNQUFNLENBQUNWLEdBQUc7RUFDUiwrQ0FBK0M7RUFDL0NnQixhQUFXO0VBQ1huQyxpQkFBaUIsQ0FBQ3FDO0FBQ3BCLENBQUM7QUFDRFIsTUFBTSxDQUFDVixHQUFHO0VBQ1Isb0RBQW9EO0VBQ3BEZ0IsYUFBVztFQUNYM0MsZ0JBQWdCLENBQUM4QztBQUNuQixDQUFDO0FBQ0RULE1BQU0sQ0FBQ1YsR0FBRztFQUNSLDhCQUE4QjtFQUM5QmdCLGFBQVc7RUFDWG5DLGlCQUFpQixDQUFDdUM7QUFDcEIsQ0FBQztBQUNEVixNQUFNLENBQUNFLElBQUk7RUFDVCw2QkFBNkI7RUFDN0JJLGFBQVc7RUFDWG5DLGlCQUFpQixDQUFDd0M7QUFDcEIsQ0FBQztBQUNEWCxNQUFNLENBQUNFLElBQUk7RUFDVCw4QkFBOEI7RUFDOUJJLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCekMsaUJBQWlCLENBQUMwQztBQUNwQixDQUFDO0FBQ0RiLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULDZDQUE2QztFQUM3Q2xDLGNBQWMsQ0FBQzhDO0FBQ2pCLENBQUM7QUFDRGQsTUFBTSxDQUFDRSxJQUFJO0VBQ1QsNkJBQTZCO0VBQzdCSSxhQUFXO0VBQ1huQyxpQkFBaUIsQ0FBQzRDO0FBQ3BCLENBQUM7QUFDRGYsTUFBTSxDQUFDRSxJQUFJO0VBQ1Qsa0NBQWtDO0VBQ2xDSSxhQUFXO0VBQ1huQyxpQkFBaUIsQ0FBQzZDO0FBQ3BCLENBQUM7QUFDRGhCLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULG1DQUFtQztFQUNuQ0ksYUFBVztFQUNYbkMsaUJBQWlCLENBQUM4QztBQUNwQixDQUFDO0FBQ0RqQixNQUFNLENBQUNFLElBQUk7RUFDVCw4QkFBOEI7RUFDOUJJLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCekMsaUJBQWlCLENBQUMrQztBQUNwQixDQUFDOztBQUVEO0FBQ0FsQixNQUFNLENBQUNFLElBQUk7RUFDVCw0QkFBNEI7RUFDNUJJLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCN0MsaUJBQWlCLENBQUNvRDtBQUNwQixDQUFDO0FBQ0RuQixNQUFNLENBQUNFLElBQUk7RUFDVCw0QkFBNEI7RUFDNUJJLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCN0MsaUJBQWlCLENBQUNxRDtBQUNwQixDQUFDO0FBQ0RwQixNQUFNLENBQUNFLElBQUk7RUFDVCwwQkFBMEI7RUFDMUJMLE1BQU0sQ0FBQ3dCLE1BQU0sQ0FBQyxNQUFNLENBQUM7RUFDckJmLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCN0MsaUJBQWlCLENBQUN1RDtBQUNwQixDQUFDO0FBQ0R0QixNQUFNLENBQUNFLElBQUk7RUFDVCw0QkFBNEI7RUFDNUJMLE1BQU0sQ0FBQ3dCLE1BQU0sQ0FBQyxNQUFNLENBQUM7RUFDckJmLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCN0MsaUJBQWlCLENBQUN3RDtBQUNwQixDQUFDO0FBQ0R2QixNQUFNLENBQUNFLElBQUk7RUFDVCxnQ0FBZ0M7RUFDaENMLE1BQU0sQ0FBQ3dCLE1BQU0sQ0FBQyxNQUFNLENBQUM7RUFDckJmLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCN0MsaUJBQWlCLENBQUN5RDtBQUNwQixDQUFDO0FBQ0R4QixNQUFNLENBQUNFLElBQUk7RUFDVCwwQkFBMEI7RUFDMUJJLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCN0MsaUJBQWlCLENBQUMwRDtBQUNwQixDQUFDO0FBQ0R6QixNQUFNLENBQUNFLElBQUk7RUFDVCx5QkFBeUI7RUFDekJMLE1BQU0sQ0FBQ3dCLE1BQU0sQ0FBQyxNQUFNLENBQUM7RUFDckJmLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCN0MsaUJBQWlCLENBQUN1RDtBQUNwQixDQUFDO0FBQ0R0QixNQUFNLENBQUNFLElBQUk7RUFDVCxnQ0FBZ0M7RUFDaENJLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCN0MsaUJBQWlCLENBQUN1RDtBQUNwQixDQUFDO0FBQ0R0QixNQUFNLENBQUNFLElBQUk7RUFDVCwwQkFBMEI7RUFDMUJJLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCN0MsaUJBQWlCLENBQUMyRDtBQUNwQixDQUFDO0FBQ0QxQixNQUFNLENBQUNFLElBQUk7RUFDVCxpQ0FBaUM7RUFDakNJLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCN0MsaUJBQWlCLENBQUM0RDtBQUNwQixDQUFDO0FBQ0QzQixNQUFNLENBQUNWLEdBQUc7RUFDUiw4QkFBOEI7RUFDOUJnQixhQUFXO0VBQ1huQyxpQkFBaUIsQ0FBQ3lEO0FBQ3BCLENBQUM7QUFDRDVCLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULDJCQUEyQjtFQUMzQkksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEI3QyxpQkFBaUIsQ0FBQzhEO0FBQ3BCLENBQUM7QUFDRDdCLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULGlDQUFpQztFQUNqQ0ksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEI3QyxpQkFBaUIsQ0FBQytEO0FBQ3BCLENBQUM7QUFDRDlCLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULDZCQUE2QjtFQUM3QkksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEI3QyxpQkFBaUIsQ0FBQ2dFO0FBQ3BCLENBQUM7QUFDRC9CLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULDhCQUE4QjtFQUM5QkksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEI3QyxpQkFBaUIsQ0FBQ2lFO0FBQ3BCLENBQUM7QUFDRGhDLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULDRCQUE0QjtFQUM1QkksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEI3QyxpQkFBaUIsQ0FBQ2tFO0FBQ3BCLENBQUM7QUFDRGpDLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULGlDQUFpQztFQUNqQ0ksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEI3QyxpQkFBaUIsQ0FBQ21FO0FBQ3BCLENBQUM7QUFDRGxDLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULGtDQUFrQztFQUNsQ0ksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEI3QyxpQkFBaUIsQ0FBQ29FO0FBQ3BCLENBQUM7QUFDRG5DLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULGlDQUFpQztFQUNqQ0ksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEI3QyxpQkFBaUIsQ0FBQ3FFO0FBQ3BCLENBQUM7QUFDRHBDLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULDRCQUE0QjtFQUM1QkksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEI3QyxpQkFBaUIsQ0FBQ3NFO0FBQ3BCLENBQUM7O0FBRUQ7QUFDQXJDLE1BQU0sQ0FBQ1YsR0FBRztFQUNSLGtDQUFrQztFQUNsQ2dCLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCL0MsZUFBZSxDQUFDeUU7QUFDbEIsQ0FBQztBQUNEdEMsTUFBTSxDQUFDVixHQUFHO0VBQ1IsMEJBQTBCO0VBQzFCZ0IsYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEIvQyxlQUFlLENBQUMwRTtBQUNsQixDQUFDO0FBQ0R2QyxNQUFNLENBQUNWLEdBQUc7RUFDUixzQ0FBc0M7RUFDdENnQixhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQi9DLGVBQWUsQ0FBQzJFO0FBQ2xCLENBQUM7QUFDRHhDLE1BQU0sQ0FBQ1YsR0FBRztFQUNSLGtDQUFrQztFQUNsQ2dCLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCL0MsZUFBZSxDQUFDNEU7QUFDbEIsQ0FBQztBQUNEekMsTUFBTSxDQUFDVixHQUFHO0VBQ1IscUNBQXFDO0VBQ3JDZ0IsYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEIvQyxlQUFlLENBQUM2RTtBQUNsQixDQUFDO0FBQ0QxQyxNQUFNLENBQUNWLEdBQUc7RUFDUixtQ0FBbUM7RUFDbkNnQixhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQi9DLGVBQWUsQ0FBQzhFO0FBQ2xCLENBQUM7QUFDRDNDLE1BQU0sQ0FBQ1YsR0FBRztFQUNSLDBDQUEwQztFQUMxQ2dCLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCL0MsZUFBZSxDQUFDK0U7QUFDbEIsQ0FBQztBQUNENUMsTUFBTSxDQUFDVixHQUFHO0VBQ1IsMENBQTBDO0VBQzFDZ0IsYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEIvQyxlQUFlLENBQUNnRjtBQUNsQixDQUFDO0FBQ0Q3QyxNQUFNLENBQUNWLEdBQUc7RUFDUiwwQ0FBMEM7RUFDMUNnQixhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQi9DLGVBQWUsQ0FBQ2lGO0FBQ2xCLENBQUM7QUFDRDlDLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULDRCQUE0QjtFQUM1QkksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEIvQyxlQUFlLENBQUNrRjtBQUNsQixDQUFDO0FBQ0QvQyxNQUFNLENBQUNFLElBQUk7RUFDVCwyQkFBMkI7RUFDM0JJLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCL0MsZUFBZSxDQUFDbUY7QUFDbEIsQ0FBQztBQUNEaEQsTUFBTSxDQUFDRSxJQUFJO0VBQ1QseUJBQXlCO0VBQ3pCSSxhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQi9DLGVBQWUsQ0FBQ29GO0FBQ2xCLENBQUM7QUFDRGpELE1BQU0sQ0FBQ0UsSUFBSTtFQUNULHFDQUFxQztFQUNyQ0ksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEIvQyxlQUFlLENBQUNxRjtBQUNsQixDQUFDO0FBQ0RsRCxNQUFNLENBQUNFLElBQUk7RUFDVCx3Q0FBd0M7RUFDeENJLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCL0MsZUFBZSxDQUFDc0Y7QUFDbEIsQ0FBQztBQUNEbkQsTUFBTSxDQUFDRSxJQUFJO0VBQ1QseUNBQXlDO0VBQ3pDSSxhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQi9DLGVBQWUsQ0FBQ3VGO0FBQ2xCLENBQUM7QUFDRHBELE1BQU0sQ0FBQ0UsSUFBSTtFQUNULHdDQUF3QztFQUN4Q0ksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEIvQyxlQUFlLENBQUN3RjtBQUNsQixDQUFDO0FBQ0RyRCxNQUFNLENBQUNFLElBQUk7RUFDVCwyQ0FBMkM7RUFDM0NJLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCL0MsZUFBZSxDQUFDeUY7QUFDbEIsQ0FBQztBQUNEdEQsTUFBTSxDQUFDRSxJQUFJO0VBQ1QsaUNBQWlDO0VBQ2pDSSxhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQi9DLGVBQWUsQ0FBQzBGO0FBQ2xCLENBQUM7QUFDRHZELE1BQU0sQ0FBQ0UsSUFBSTtFQUNULDhCQUE4QjtFQUM5QkksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEIvQyxlQUFlLENBQUMyRjtBQUNsQixDQUFDO0FBQ0R4RCxNQUFNLENBQUNFLElBQUk7RUFDVCw2QkFBNkI7RUFDN0JJLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCL0MsZUFBZSxDQUFDNEY7QUFDbEIsQ0FBQztBQUNEekQsTUFBTSxDQUFDRSxJQUFJO0VBQ1Qsb0NBQW9DO0VBQ3BDSSxhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQi9DLGVBQWUsQ0FBQzZGO0FBQ2xCLENBQUM7QUFDRDFELE1BQU0sQ0FBQ0UsSUFBSTtFQUNULHlCQUF5QjtFQUN6QkwsTUFBTSxDQUFDd0IsTUFBTSxDQUFDLE1BQU0sQ0FBQztFQUNyQmYsYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEIvQyxlQUFlLENBQUM4RjtBQUNsQixDQUFDO0FBQ0QzRCxNQUFNLENBQUNFLElBQUk7RUFDVCxvQ0FBb0M7RUFDcENJLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCL0MsZUFBZSxDQUFDK0Y7QUFDbEIsQ0FBQzs7QUFFRDtBQUNBNUQsTUFBTSxDQUFDVixHQUFHO0VBQ1IseUJBQXlCO0VBQ3pCZ0IsYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQ2tHO0FBQ25CLENBQUM7QUFDRDdELE1BQU0sQ0FBQ0UsSUFBSTtFQUNULDBCQUEwQjtFQUMxQkksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQ21HO0FBQ25CLENBQUM7O0FBRUQ5RCxNQUFNLENBQUNWLEdBQUc7RUFDUixrQ0FBa0M7RUFDbENnQixhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQmpELGdCQUFnQixDQUFDb0c7QUFDbkIsQ0FBQztBQUNEL0QsTUFBTSxDQUFDVixHQUFHO0VBQ1IsdUNBQXVDO0VBQ3ZDZ0IsYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQ3FHO0FBQ25CLENBQUM7QUFDRGhFLE1BQU0sQ0FBQ1YsR0FBRztFQUNSLDJDQUEyQztFQUMzQ2dCLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCakQsZ0JBQWdCLENBQUNzRztBQUNuQixDQUFDO0FBQ0RqRSxNQUFNLENBQUNWLEdBQUc7RUFDUixnQ0FBZ0M7RUFDaENnQixhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQmpELGdCQUFnQixDQUFDdUc7QUFDbkIsQ0FBQztBQUNEbEUsTUFBTSxDQUFDVixHQUFHO0VBQ1IsK0JBQStCO0VBQy9CZ0IsYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQ3dHO0FBQ25CLENBQUM7QUFDRG5FLE1BQU0sQ0FBQ1YsR0FBRztFQUNSLG1DQUFtQztFQUNuQ2dCLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCakQsZ0JBQWdCLENBQUN5RztBQUNuQixDQUFDO0FBQ0RwRSxNQUFNLENBQUNWLEdBQUc7RUFDUixpQ0FBaUM7RUFDakNnQixhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQmpELGdCQUFnQixDQUFDMEc7QUFDbkIsQ0FBQztBQUNEckUsTUFBTSxDQUFDVixHQUFHO0VBQ1Isd0NBQXdDO0VBQ3hDZ0IsYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQzJHO0FBQ25CLENBQUM7QUFDRHRFLE1BQU0sQ0FBQ1YsR0FBRztFQUNSLHFDQUFxQztFQUNyQ2dCLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCakQsZ0JBQWdCLENBQUM0RztBQUNuQixDQUFDO0FBQ0R2RSxNQUFNLENBQUNWLEdBQUc7RUFDUixnQ0FBZ0M7RUFDaENnQixhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQmpELGdCQUFnQixDQUFDNkc7QUFDbkIsQ0FBQztBQUNEeEUsTUFBTSxDQUFDVixHQUFHO0VBQ1IsZ0NBQWdDO0VBQ2hDZ0IsYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQzhHO0FBQ25CLENBQUM7QUFDRHpFLE1BQU0sQ0FBQ1YsR0FBRztFQUNSLDRDQUE0QztFQUM1Q2dCLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCakQsZ0JBQWdCLENBQUMrRztBQUNuQixDQUFDO0FBQ0QxRSxNQUFNLENBQUNWLEdBQUc7RUFDUixtQ0FBbUM7RUFDbkNnQixhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQmpELGdCQUFnQixDQUFDZ0g7QUFDbkIsQ0FBQzs7QUFFRDNFLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULDRCQUE0QjtFQUM1QkksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQ2lIO0FBQ25CLENBQUM7QUFDRDVFLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULGlDQUFpQztFQUNqQ0ksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQ2tIO0FBQ25CLENBQUM7QUFDRDdFLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULDBCQUEwQjtFQUMxQkksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQ21IO0FBQ25CLENBQUM7QUFDRDlFLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULCtCQUErQjtFQUMvQkksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQ29IO0FBQ25CLENBQUM7QUFDRC9FLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULDJCQUEyQjtFQUMzQkksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQ3FIO0FBQ25CLENBQUM7QUFDRGhGLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULGdDQUFnQztFQUNoQ0ksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQ3NIO0FBQ25CLENBQUM7QUFDRGpGLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULDhCQUE4QjtFQUM5QkksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQ3VIO0FBQ25CLENBQUM7QUFDRGxGLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULDZCQUE2QjtFQUM3QkksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQ3dIO0FBQ25CLENBQUM7QUFDRG5GLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULGdDQUFnQztFQUNoQ0ksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQ3lIO0FBQ25CLENBQUM7QUFDRHBGLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULDJCQUEyQjtFQUMzQkksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQzBIO0FBQ25CLENBQUM7QUFDRHJGLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULHdCQUF3QjtFQUN4QkksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQzJIO0FBQ25CLENBQUM7QUFDRHRGLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULDZCQUE2QjtFQUM3QkksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQzRIO0FBQ25CLENBQUM7QUFDRHZGLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULHlCQUF5QjtFQUN6QkksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQzZIO0FBQ25CLENBQUM7QUFDRHhGLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULHlCQUF5QjtFQUN6QkksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQzhIO0FBQ25CLENBQUM7QUFDRHpGLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULDBCQUEwQjtFQUMxQkksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQytIO0FBQ25CLENBQUM7QUFDRDFGLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULGtDQUFrQztFQUNsQ0ksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQ2dJO0FBQ25CLENBQUM7QUFDRDNGLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULHNCQUFzQjtFQUN0QkksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQ2lJO0FBQ25CLENBQUM7QUFDRDVGLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULHlCQUF5QjtFQUN6QkksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQ2tJO0FBQ25CLENBQUM7QUFDRDdGLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULDRCQUE0QjtFQUM1QkksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQ21JO0FBQ25CLENBQUM7QUFDRDlGLE1BQU0sQ0FBQ1YsR0FBRztFQUNSLDZCQUE2QjtFQUM3QmdCLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCakQsZ0JBQWdCLENBQUNvSTtBQUNuQixDQUFDO0FBQ0QvRixNQUFNLENBQUNWLEdBQUc7RUFDUix5QkFBeUI7RUFDekJnQixhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQmpELGdCQUFnQixDQUFDcUk7QUFDbkIsQ0FBQztBQUNEaEcsTUFBTSxDQUFDRSxJQUFJO0VBQ1QsMkJBQTJCO0VBQzNCSSxhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQmpELGdCQUFnQixDQUFDc0k7QUFDbkIsQ0FBQzs7QUFFRDtBQUNBakcsTUFBTSxDQUFDVixHQUFHO0VBQ1IsNEJBQTRCO0VBQzVCZ0IsYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJyRCxpQkFBaUIsQ0FBQzJJO0FBQ3BCLENBQUM7QUFDRGxHLE1BQU0sQ0FBQ1YsR0FBRztFQUNSLGlDQUFpQztFQUNqQ2dCLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCckQsaUJBQWlCLENBQUM0STtBQUNwQixDQUFDO0FBQ0RuRyxNQUFNLENBQUNFLElBQUk7RUFDVCwyQkFBMkI7RUFDM0JJLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCckQsaUJBQWlCLENBQUM2STtBQUNwQixDQUFDO0FBQ0RwRyxNQUFNLENBQUNFLElBQUk7RUFDVCw0QkFBNEI7RUFDNUJJLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCckQsaUJBQWlCLENBQUM4STtBQUNwQixDQUFDO0FBQ0RyRyxNQUFNLENBQUNFLElBQUk7RUFDVCw0QkFBNEI7RUFDNUJJLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCckQsaUJBQWlCLENBQUMrSTtBQUNwQixDQUFDO0FBQ0R0RyxNQUFNLENBQUNFLElBQUk7RUFDVCxvQ0FBb0M7RUFDcENJLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCckQsaUJBQWlCLENBQUNnSjtBQUNwQixDQUFDO0FBQ0R2RyxNQUFNLENBQUNFLElBQUk7RUFDVCxpQ0FBaUM7RUFDakNJLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCckQsaUJBQWlCLENBQUNpSjtBQUNwQixDQUFDO0FBQ0R4RyxNQUFNLENBQUNFLElBQUk7RUFDVCxvQ0FBb0M7RUFDcENJLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCckQsaUJBQWlCLENBQUNrSjtBQUNwQixDQUFDO0FBQ0R6RyxNQUFNLENBQUNWLEdBQUc7RUFDUiwrQkFBK0I7RUFDL0JnQixhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQnJELGlCQUFpQixDQUFDbUo7QUFDcEIsQ0FBQztBQUNEMUcsTUFBTSxDQUFDRSxJQUFJO0VBQ1QsaUNBQWlDO0VBQ2pDSSxhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQnJELGlCQUFpQixDQUFDb0o7QUFDcEIsQ0FBQztBQUNEM0csTUFBTSxDQUFDRSxJQUFJO0VBQ1QsK0JBQStCO0VBQy9CSSxhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQnJELGlCQUFpQixDQUFDcUo7QUFDcEIsQ0FBQztBQUNENUcsTUFBTSxDQUFDRSxJQUFJO0VBQ1QsOEJBQThCO0VBQzlCSSxhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQnJELGlCQUFpQixDQUFDc0o7QUFDcEIsQ0FBQztBQUNEN0csTUFBTSxDQUFDRSxJQUFJO0VBQ1QsaUNBQWlDO0VBQ2pDSSxhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQnJELGlCQUFpQixDQUFDdUo7QUFDcEIsQ0FBQztBQUNEOUcsTUFBTSxDQUFDRSxJQUFJO0VBQ1Qsc0NBQXNDO0VBQ3RDSSxhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQnJELGlCQUFpQixDQUFDd0o7QUFDcEIsQ0FBQztBQUNEL0csTUFBTSxDQUFDRSxJQUFJO0VBQ1QsZ0NBQWdDO0VBQ2hDSSxhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQnJELGlCQUFpQixDQUFDeUo7QUFDcEIsQ0FBQzs7QUFFRDtBQUNBaEgsTUFBTSxDQUFDRSxJQUFJO0VBQ1QsZ0NBQWdDO0VBQ2hDSSxhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQnhDLGdCQUFnQixDQUFDNkk7QUFDbkIsQ0FBQztBQUNEakgsTUFBTSxDQUFDRSxJQUFJO0VBQ1QsaUNBQWlDO0VBQ2pDTCxNQUFNLENBQUN3QixNQUFNLENBQUMsTUFBTSxDQUFDO0VBQ3JCZixhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQnhDLGdCQUFnQixDQUFDOEk7QUFDbkIsQ0FBQztBQUNEbEgsTUFBTSxDQUFDRSxJQUFJO0VBQ1QsaUNBQWlDO0VBQ2pDTCxNQUFNLENBQUN3QixNQUFNLENBQUMsTUFBTSxDQUFDO0VBQ3JCZixhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQnhDLGdCQUFnQixDQUFDK0k7QUFDbkIsQ0FBQzs7QUFFRDtBQUNBbkgsTUFBTSxDQUFDRSxJQUFJO0VBQ1QsNkJBQTZCO0VBQzdCSSxhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQjlDLGdCQUFnQixDQUFDc0o7QUFDbkIsQ0FBQztBQUNEcEgsTUFBTSxDQUFDRSxJQUFJO0VBQ1QsbUNBQW1DO0VBQ25DSSxhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQjlDLGdCQUFnQixDQUFDdUo7QUFDbkIsQ0FBQztBQUNEckgsTUFBTSxDQUFDVixHQUFHO0VBQ1IsOEJBQThCO0VBQzlCZ0IsYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEI5QyxnQkFBZ0IsQ0FBQ3dKO0FBQ25CLENBQUM7QUFDRHRILE1BQU0sQ0FBQ3VILEdBQUc7RUFDUixpQ0FBaUM7RUFDakNqSCxhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQjlDLGdCQUFnQixDQUFDMEo7QUFDbkIsQ0FBQztBQUNEeEgsTUFBTSxDQUFDdUgsR0FBRztFQUNSLGdDQUFnQztFQUNoQ2pILGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCOUMsZ0JBQWdCLENBQUMySjtBQUNuQixDQUFDOztBQUVEO0FBQ0F6SCxNQUFNLENBQUNWLEdBQUc7RUFDUiwwQ0FBMEM7RUFDMUNnQixhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQmpELGdCQUFnQixDQUFDK0o7QUFDbkIsQ0FBQztBQUNEMUgsTUFBTSxDQUFDVixHQUFHO0VBQ1IsNEJBQTRCO0VBQzVCZ0IsYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQ2dLO0FBQ25CLENBQUM7QUFDRDNILE1BQU0sQ0FBQ1YsR0FBRztFQUNSLDhCQUE4QjtFQUM5QmdCLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCakQsZ0JBQWdCLENBQUNpSztBQUNuQixDQUFDO0FBQ0Q1SCxNQUFNLENBQUNWLEdBQUc7RUFDUixxQ0FBcUM7RUFDckNnQixhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQmlILDBCQUFpQixDQUFDQztBQUNwQixDQUFDO0FBQ0Q5SCxNQUFNLENBQUNWLEdBQUc7RUFDUiw4QkFBOEI7RUFDOUJnQixhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQmpELGdCQUFnQixDQUFDb0s7QUFDbkIsQ0FBQztBQUNEL0gsTUFBTSxDQUFDVixHQUFHO0VBQ1Isa0NBQWtDO0VBQ2xDZ0IsYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQ3FLO0FBQ25CLENBQUM7QUFDRGhJLE1BQU0sQ0FBQ1YsR0FBRztFQUNSLHFDQUFxQztFQUNyQ2dCLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCakQsZ0JBQWdCLENBQUNzSztBQUNuQixDQUFDOztBQUVEO0FBQ0FqSSxNQUFNLENBQUNWLEdBQUc7RUFDUix5QkFBeUI7RUFDekJnQixhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQmpELGdCQUFnQixDQUFDdUs7QUFDbkIsQ0FBQztBQUNEbEksTUFBTSxDQUFDRSxJQUFJO0VBQ1QsNkJBQTZCO0VBQzdCSSxhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQmpELGdCQUFnQixDQUFDd0s7QUFDbkIsQ0FBQztBQUNEbkksTUFBTSxDQUFDRSxJQUFJO0VBQ1QsK0JBQStCO0VBQy9CSSxhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQmpELGdCQUFnQixDQUFDeUs7QUFDbkIsQ0FBQzs7QUFFRDtBQUNBcEksTUFBTSxDQUFDVixHQUFHO0VBQ1IsaUNBQWlDO0VBQ2pDZ0IsYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJqRCxnQkFBZ0IsQ0FBQzBLO0FBQ25CLENBQUM7QUFDRHJJLE1BQU0sQ0FBQ1YsR0FBRztFQUNSLDJCQUEyQjtFQUMzQmdCLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCakQsZ0JBQWdCLENBQUMySztBQUNuQixDQUFDO0FBQ0R0SSxNQUFNLENBQUNWLEdBQUc7RUFDUixnQ0FBZ0M7RUFDaENnQixhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQmpELGdCQUFnQixDQUFDNEs7QUFDbkIsQ0FBQzs7QUFFRDtBQUNBdkksTUFBTSxDQUFDRSxJQUFJO0VBQ1QsK0JBQStCO0VBQy9CTCxNQUFNLENBQUN3QixNQUFNLENBQUMsTUFBTSxDQUFDO0VBQ3JCZixhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQmpELGdCQUFnQixDQUFDNks7QUFDbkIsQ0FBQztBQUNEeEksTUFBTSxDQUFDRSxJQUFJO0VBQ1QsOEJBQThCO0VBQzlCSSxhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQmpELGdCQUFnQixDQUFDOEs7QUFDbkIsQ0FBQztBQUNEekksTUFBTSxDQUFDRSxJQUFJO0VBQ1QsK0JBQStCO0VBQy9CSSxhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQmpELGdCQUFnQixDQUFDK0s7QUFDbkIsQ0FBQzs7QUFFRDtBQUNBMUksTUFBTSxDQUFDRSxJQUFJO0VBQ1QscUNBQXFDO0VBQ3JDSSxhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQnpDLGlCQUFpQixDQUFDd0s7QUFDcEIsQ0FBQztBQUNEM0ksTUFBTSxDQUFDVixHQUFHO0VBQ1IsOENBQThDO0VBQzlDZ0IsYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEIxQyxlQUFlLENBQUMwSztBQUNsQixDQUFDO0FBQ0Q1SSxNQUFNLENBQUNWLEdBQUc7RUFDUixpREFBaUQ7RUFDakRnQixhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQjFDLGVBQWUsQ0FBQzJLO0FBQ2xCLENBQUM7QUFDRDdJLE1BQU0sQ0FBQ1YsR0FBRyxDQUFDLGlDQUFpQyxFQUFFdEIsY0FBYyxDQUFDOEssaUJBQWlCLENBQUM7QUFDL0U5SSxNQUFNLENBQUNFLElBQUk7RUFDVCxrQ0FBa0M7RUFDbENMLE1BQU0sQ0FBQ3dCLE1BQU0sQ0FBQyxNQUFNLENBQUM7RUFDckJyRCxjQUFjLENBQUMrSztBQUNqQixDQUFDO0FBQ0QvSSxNQUFNLENBQUNWLEdBQUc7RUFDUiwrQkFBK0I7RUFDL0JnQixhQUFXO0VBQ1h0QyxjQUFjLENBQUNnTDtBQUNqQixDQUFDO0FBQ0RoSixNQUFNLENBQUNFLElBQUksQ0FBQyx5QkFBeUIsRUFBRWxDLGNBQWMsQ0FBQ2lMLFFBQVEsQ0FBQzs7QUFFL0Q7QUFDQWpKLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULGdDQUFnQztFQUNoQ0ksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJuRCxtQkFBbUIsQ0FBQ3lMO0FBQ3RCLENBQUM7QUFDRGxKLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULG9DQUFvQztFQUNwQ0ksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJuRCxtQkFBbUIsQ0FBQzBMO0FBQ3RCLENBQUM7QUFDRG5KLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULHNDQUFzQztFQUN0Q0ksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJuRCxtQkFBbUIsQ0FBQzJMO0FBQ3RCLENBQUM7QUFDRHBKLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULHlDQUF5QztFQUN6Q0ksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJuRCxtQkFBbUIsQ0FBQzRMO0FBQ3RCLENBQUM7QUFDRHJKLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULDZDQUE2QztFQUM3Q0ksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJuRCxtQkFBbUIsQ0FBQzZMO0FBQ3RCLENBQUM7QUFDRHRKLE1BQU0sQ0FBQ0UsSUFBSTtFQUNULDRDQUE0QztFQUM1Q0ksYUFBVztFQUNYTSx5QkFBZ0I7RUFDaEJuRCxtQkFBbUIsQ0FBQzhMO0FBQ3RCLENBQUM7QUFDRHZKLE1BQU0sQ0FBQ1YsR0FBRztFQUNSLDBDQUEwQztFQUMxQ2dCLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCbkQsbUJBQW1CLENBQUMrTDtBQUN0QixDQUFDOztBQUVEeEosTUFBTSxDQUFDRSxJQUFJO0VBQ1QsMEJBQTBCO0VBQzFCSSxhQUFXO0VBQ1hNLHlCQUFnQjtFQUNoQjNDLG9CQUFvQixDQUFDd0w7QUFDdkIsQ0FBQztBQUNEekosTUFBTSxDQUFDdUgsR0FBRztFQUNSLDhCQUE4QjtFQUM5QmpILGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCM0Msb0JBQW9CLENBQUN5TDtBQUN2QixDQUFDOztBQUVEMUosTUFBTSxDQUFDMkosTUFBTTtFQUNYLDhCQUE4QjtFQUM5QnJKLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCM0Msb0JBQW9CLENBQUMyTDtBQUN2QixDQUFDO0FBQ0Q1SixNQUFNLENBQUNFLElBQUk7RUFDVCxtQ0FBbUM7RUFDbkNJLGFBQVc7RUFDWE0seUJBQWdCO0VBQ2hCM0Msb0JBQW9CLENBQUM0TDtBQUN2QixDQUFDOztBQUVEN0osTUFBTSxDQUFDRSxJQUFJLENBQUMsd0JBQXdCLEVBQUV2QyxnQkFBZ0IsQ0FBQ21NLFFBQVEsQ0FBQzs7QUFFaEU7QUFDQTlKLE1BQU0sQ0FBQytKLEdBQUcsQ0FBQyxXQUFXLEVBQUVDLHlCQUFTLENBQUNDLEtBQVksQ0FBQztBQUMvQ2pLLE1BQU0sQ0FBQ1YsR0FBRyxDQUFDLFdBQVcsRUFBRTBLLHlCQUFTLENBQUNFLEtBQUssQ0FBQ0MsZ0JBQWUsQ0FBUSxDQUFDOztBQUVoRTtBQUNBbkssTUFBTSxDQUFDVixHQUFHLENBQUMsVUFBVSxFQUFFaEIsV0FBVyxDQUFDOEwsT0FBTyxDQUFDO0FBQzNDcEssTUFBTSxDQUFDVixHQUFHLENBQUMsWUFBWSxFQUFFaEIsV0FBVyxDQUFDK0wsU0FBUyxDQUFDOztBQUUvQzs7QUFFQXJLLE1BQU0sQ0FBQ1YsR0FBRyxDQUFDLFVBQVUsRUFBRWYsa0JBQWtCLENBQUMrTCxPQUFPLENBQUMsQ0FBQyxJQUFBQyxRQUFBLEdBQUFDLE9BQUEsQ0FBQXBMLE9BQUE7O0FBRXBDWSxNQUFNIiwiaWdub3JlTGlzdCI6W119
@@ -175,4 +175,4 @@ class FileTokenStore {
175
175
  }
176
176
  }
177
177
  }exports.FileTokenStore = FileTokenStore;
178
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsInBhdGgiLCJfc2FuaXRpemVGaWxlbmFtZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiZGVmYXVsdCIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZGVmYXVsdEZpbGVUb2tlblN0b3JlT3B0aW9ucyIsImV4cG9ydHMiLCJkZWNvZGVGdW5jdGlvbiIsIkpTT04iLCJwYXJzZSIsImVuY29kZUZ1bmN0aW9uIiwic3RyaW5naWZ5IiwiZW5jb2RpbmciLCJmaWxlRXh0ZW5zaW9uIiwiRmlsZVRva2VuU3RvcmUiLCJvcHRpb25zIiwiY29uc3RydWN0b3IiLCJhc3NpZ24iLCJyZXNvbHZlclBhdGgiLCJzZXNzaW9uTmFtZSIsImZpbGVuYW1lIiwic2FuaXRpemUiLCJyZXNvbHZlIiwicHJvY2VzcyIsImN3ZCIsImpvaW4iLCJnZXRUb2tlbiIsImZpbGVQYXRoIiwiZXhpc3RzU3luYyIsInVuZGVmaW5lZCIsInRleHQiLCJwcm9taXNlcyIsInJlYWRGaWxlIiwiY2F0Y2giLCJlcnJvciIsImxvZ2dlciIsImRlYnVnIiwic2V0VG9rZW4iLCJ0b2tlbkRhdGEiLCJta2RpciIsInJlY3Vyc2l2ZSIsIndyaXRlRmlsZSIsInJlbW92ZVRva2VuIiwidW5saW5rIiwibGlzdFRva2VucyIsImZpbGVzIiwicmVhZGRpciIsImZpbHRlciIsImZpbGUiLCJlbmRzV2l0aCIsIm1hcCIsImJhc2VuYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWwvdG9rZW5TdG9yZS9GaWxlVG9rZW5TdG9yZS9GaWxlVG9rZW5TdG9yZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgV1BQQ29ubmVjdC5cbiAqXG4gKiBXUFBDb25uZWN0IGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogV1BQQ29ubmVjdCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBXUFBDb25uZWN0LiAgSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJub2RlXCIgLz5cbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgc2FuaXRpemUgZnJvbSAnc2FuaXRpemUtZmlsZW5hbWUnO1xuXG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi8uLi8uLic7XG5pbXBvcnQgeyBTZXNzaW9uVG9rZW4sIFRva2VuU3RvcmUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVRva2VuU3RvcmVPcHRpb25zIHtcbiAgLyoqXG4gICAqIERlY29kZSBmdW5jdGlvbiB0byBwYXJzZSB0b2tlbiBmaWxlIChEZWZhdWx0IGBKU09OLnBhcnNlYCkge0BsaW5rIGRlZmF1bHRGaWxlVG9rZW5TdG9yZU9wdGlvbnN9XG4gICAqIEBkZWZhdWx0IGBKU09OLnBhcnNlYFxuICAgKi9cbiAgZGVjb2RlRnVuY3Rpb246ICh0ZXh0OiBzdHJpbmcpID0+IGFueTtcblxuICAvKipcbiAgICogRW5jb2RlIGZ1bmN0aW9uIHRvIHNhdmUgdG9rZW5zIChEZWZhdWx0IGBKU09OLnN0cmluZ2lmeWApXG4gICAqIEBkZWZhdWx0IGBKU09OLnN0cmluZ2lmeWBcbiAgICovXG4gIGVuY29kZUZ1bmN0aW9uOiAoZGF0YTogYW55KSA9PiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVuY29kaW5nIHVzZWQgdG8gcmVhZCBhbmQgc2F2ZSBmaWxlc1xuICAgKiBAZGVmYXVsdCAndXRmOCdcbiAgICovXG4gIGVuY29kaW5nOiBCdWZmZXJFbmNvZGluZztcblxuICAvKipcbiAgICogQGRlZmF1bHQgJy5kYXRhLmpzb24nXG4gICAqL1xuICBmaWxlRXh0ZW5zaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZvbGRlciBwYXRoIHRvIHN0b3JlIHRva2Vuc1xuICAgKiBAZGVmYXVsdCAnLi90b2tlbnMnXG4gICAqL1xuICBwYXRoOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0RmlsZVRva2VuU3RvcmVPcHRpb25zOiBGaWxlVG9rZW5TdG9yZU9wdGlvbnMgPSB7XG4gIGRlY29kZUZ1bmN0aW9uOiBKU09OLnBhcnNlLFxuICBlbmNvZGVGdW5jdGlvbjogSlNPTi5zdHJpbmdpZnksXG4gIGVuY29kaW5nOiAndXRmOCcsXG4gIGZpbGVFeHRlbnNpb246ICcuZGF0YS5qc29uJyxcbiAgcGF0aDogJy4vdG9rZW5zJyxcbn07XG5cbmV4cG9ydCBjbGFzcyBGaWxlVG9rZW5TdG9yZSBpbXBsZW1lbnRzIFRva2VuU3RvcmUge1xuICBwcm90ZWN0ZWQgb3B0aW9uczogRmlsZVRva2VuU3RvcmVPcHRpb25zO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFBhcnRpYWw8RmlsZVRva2VuU3RvcmVPcHRpb25zPiA9IHt9KSB7XG4gICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgZGVmYXVsdEZpbGVUb2tlblN0b3JlT3B0aW9ucyxcbiAgICAgIG9wdGlvbnNcbiAgICApIGFzIEZpbGVUb2tlblN0b3JlT3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlIHRoZSBwYXRoIG9mIGZpbGVcbiAgICogQHBhcmFtIHNlc3Npb25OYW1lIE5hbWUgb2Ygc2Vzc2lvblxuICAgKiBAcmV0dXJucyBGdWxsIHBhdGggb2YgdG9rZW4gZmlsZVxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc29sdmVyUGF0aChzZXNzaW9uTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBmaWxlbmFtZSA9IHNhbml0aXplKHNlc3Npb25OYW1lKSArIHRoaXMub3B0aW9ucy5maWxlRXh0ZW5zaW9uO1xuICAgIHJldHVybiBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwgcGF0aC5qb2luKHRoaXMub3B0aW9ucy5wYXRoLCBmaWxlbmFtZSkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFRva2VuKFxuICAgIHNlc3Npb25OYW1lOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxTZXNzaW9uVG9rZW4gfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMucmVzb2x2ZXJQYXRoKHNlc3Npb25OYW1lKTtcblxuICAgIGlmICghZnMuZXhpc3RzU3luYyhmaWxlUGF0aCkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgdGV4dCA9IGF3YWl0IGZzLnByb21pc2VzXG4gICAgICAucmVhZEZpbGUoZmlsZVBhdGgsIHtcbiAgICAgICAgZW5jb2Rpbmc6IHRoaXMub3B0aW9ucy5lbmNvZGluZyxcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKCkgPT4gbnVsbCk7XG5cbiAgICBpZiAoIXRleHQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZGVjb2RlRnVuY3Rpb24odGV4dCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhlcnJvcik7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZXRUb2tlbihcbiAgICBzZXNzaW9uTmFtZTogc3RyaW5nLFxuICAgIHRva2VuRGF0YTogU2Vzc2lvblRva2VuIHwgbnVsbFxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAoIXRva2VuRGF0YSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghZnMuZXhpc3RzU3luYyh0aGlzLm9wdGlvbnMucGF0aCkpIHtcbiAgICAgIGF3YWl0IGZzLnByb21pc2VzLm1rZGlyKHRoaXMub3B0aW9ucy5wYXRoLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMucmVzb2x2ZXJQYXRoKHNlc3Npb25OYW1lKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB0ZXh0ID0gdGhpcy5vcHRpb25zLmVuY29kZUZ1bmN0aW9uKHRva2VuRGF0YSk7XG5cbiAgICAgIGF3YWl0IGZzLnByb21pc2VzLndyaXRlRmlsZShmaWxlUGF0aCwgdGV4dCwge1xuICAgICAgICBlbmNvZGluZzogdGhpcy5vcHRpb25zLmVuY29kaW5nLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nZ2VyLmRlYnVnKGVycm9yKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVtb3ZlVG9rZW4oc2Vzc2lvbk5hbWU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5yZXNvbHZlclBhdGgoc2Vzc2lvbk5hbWUpO1xuXG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmcy5wcm9taXNlcy51bmxpbmsoZmlsZVBhdGgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhlcnJvcik7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGxpc3RUb2tlbnMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGlmICghZnMuZXhpc3RzU3luYyh0aGlzLm9wdGlvbnMucGF0aCkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgbGV0IGZpbGVzID0gYXdhaXQgZnMucHJvbWlzZXMucmVhZGRpcih0aGlzLm9wdGlvbnMucGF0aCk7XG5cbiAgICAgIC8vIE9ubHkgc2Vzc2lvbnMgd2l0aCBzYW1lIGZpbGVFeHRlbnNpb25cbiAgICAgIGZpbGVzID0gZmlsZXMuZmlsdGVyKChmaWxlKSA9PiBmaWxlLmVuZHNXaXRoKHRoaXMub3B0aW9ucy5maWxlRXh0ZW5zaW9uKSk7XG5cbiAgICAgIC8vIFJldHVybiBuYW1lIG9ubHlcbiAgICAgIGZpbGVzID0gZmlsZXMubWFwKChmaWxlKSA9PlxuICAgICAgICBwYXRoLmJhc2VuYW1lKGZpbGUsIHRoaXMub3B0aW9ucy5maWxlRXh0ZW5zaW9uKVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIGZpbGVzO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIuZGVidWcoZXJyb3IpO1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQWlCQSxJQUFBQSxFQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxJQUFBLEdBQUFGLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBOztBQUVBLElBQUFJLENBQUEsR0FBQUosT0FBQSxhQUFrQyxTQUFBRCx3QkFBQU0sQ0FBQSxFQUFBQyxDQUFBLDRCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxHQUFBRSxDQUFBLE9BQUFGLE9BQUEsV0FBQVIsdUJBQUEsWUFBQUEsQ0FBQU0sQ0FBQSxFQUFBQyxDQUFBLFFBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxLQUFBTSxDQUFBLENBQUFDLENBQUEsQ0FBQUMsQ0FBQSxLQUFBQyxTQUFBLFFBQUFDLE9BQUEsRUFBQVYsQ0FBQSxnQkFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxTQUFBUSxDQUFBLEtBQUFGLENBQUEsR0FBQUwsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsT0FBQUcsQ0FBQSxDQUFBSyxHQUFBLENBQUFYLENBQUEsVUFBQU0sQ0FBQSxDQUFBTSxHQUFBLENBQUFaLENBQUEsRUFBQU0sQ0FBQSxDQUFBTyxHQUFBLENBQUFiLENBQUEsRUFBQVEsQ0FBQSxjQUFBUCxDQUFBLElBQUFELENBQUEsZ0JBQUFDLENBQUEsT0FBQWEsY0FBQSxDQUFBQyxJQUFBLENBQUFmLENBQUEsRUFBQUMsQ0FBQSxPQUFBTSxDQUFBLElBQUFELENBQUEsR0FBQVUsTUFBQSxDQUFBQyxjQUFBLEtBQUFELE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWxCLENBQUEsRUFB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
178
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsInBhdGgiLCJfc2FuaXRpemVGaWxlbmFtZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiZGVmYXVsdCIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZGVmYXVsdEZpbGVUb2tlblN0b3JlT3B0aW9ucyIsImV4cG9ydHMiLCJkZWNvZGVGdW5jdGlvbiIsIkpTT04iLCJwYXJzZSIsImVuY29kZUZ1bmN0aW9uIiwic3RyaW5naWZ5IiwiZW5jb2RpbmciLCJmaWxlRXh0ZW5zaW9uIiwiRmlsZVRva2VuU3RvcmUiLCJvcHRpb25zIiwiY29uc3RydWN0b3IiLCJhc3NpZ24iLCJyZXNvbHZlclBhdGgiLCJzZXNzaW9uTmFtZSIsImZpbGVuYW1lIiwic2FuaXRpemUiLCJyZXNvbHZlIiwicHJvY2VzcyIsImN3ZCIsImpvaW4iLCJnZXRUb2tlbiIsImZpbGVQYXRoIiwiZXhpc3RzU3luYyIsInVuZGVmaW5lZCIsInRleHQiLCJwcm9taXNlcyIsInJlYWRGaWxlIiwiY2F0Y2giLCJlcnJvciIsImxvZ2dlciIsImRlYnVnIiwic2V0VG9rZW4iLCJ0b2tlbkRhdGEiLCJta2RpciIsInJlY3Vyc2l2ZSIsIndyaXRlRmlsZSIsInJlbW92ZVRva2VuIiwidW5saW5rIiwibGlzdFRva2VucyIsImZpbGVzIiwicmVhZGRpciIsImZpbHRlciIsImZpbGUiLCJlbmRzV2l0aCIsIm1hcCIsImJhc2VuYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWwvdG9rZW5TdG9yZS9GaWxlVG9rZW5TdG9yZS9GaWxlVG9rZW5TdG9yZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgV1BQQ29ubmVjdC5cbiAqXG4gKiBXUFBDb25uZWN0IGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogV1BQQ29ubmVjdCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBXUFBDb25uZWN0LiAgSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJub2RlXCIgLz5cbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgc2FuaXRpemUgZnJvbSAnc2FuaXRpemUtZmlsZW5hbWUnO1xuXG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi8uLi8uLic7XG5pbXBvcnQgeyBTZXNzaW9uVG9rZW4sIFRva2VuU3RvcmUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVRva2VuU3RvcmVPcHRpb25zIHtcbiAgLyoqXG4gICAqIERlY29kZSBmdW5jdGlvbiB0byBwYXJzZSB0b2tlbiBmaWxlIChEZWZhdWx0IGBKU09OLnBhcnNlYCkge0BsaW5rIGRlZmF1bHRGaWxlVG9rZW5TdG9yZU9wdGlvbnN9XG4gICAqIEBkZWZhdWx0IGBKU09OLnBhcnNlYFxuICAgKi9cbiAgZGVjb2RlRnVuY3Rpb246ICh0ZXh0OiBzdHJpbmcpID0+IGFueTtcblxuICAvKipcbiAgICogRW5jb2RlIGZ1bmN0aW9uIHRvIHNhdmUgdG9rZW5zIChEZWZhdWx0IGBKU09OLnN0cmluZ2lmeWApXG4gICAqIEBkZWZhdWx0IGBKU09OLnN0cmluZ2lmeWBcbiAgICovXG4gIGVuY29kZUZ1bmN0aW9uOiAoZGF0YTogYW55KSA9PiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVuY29kaW5nIHVzZWQgdG8gcmVhZCBhbmQgc2F2ZSBmaWxlc1xuICAgKiBAZGVmYXVsdCAndXRmOCdcbiAgICovXG4gIGVuY29kaW5nOiBCdWZmZXJFbmNvZGluZztcblxuICAvKipcbiAgICogQGRlZmF1bHQgJy5kYXRhLmpzb24nXG4gICAqL1xuICBmaWxlRXh0ZW5zaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZvbGRlciBwYXRoIHRvIHN0b3JlIHRva2Vuc1xuICAgKiBAZGVmYXVsdCAnLi90b2tlbnMnXG4gICAqL1xuICBwYXRoOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0RmlsZVRva2VuU3RvcmVPcHRpb25zOiBGaWxlVG9rZW5TdG9yZU9wdGlvbnMgPSB7XG4gIGRlY29kZUZ1bmN0aW9uOiBKU09OLnBhcnNlLFxuICBlbmNvZGVGdW5jdGlvbjogSlNPTi5zdHJpbmdpZnksXG4gIGVuY29kaW5nOiAndXRmOCcsXG4gIGZpbGVFeHRlbnNpb246ICcuZGF0YS5qc29uJyxcbiAgcGF0aDogJy4vdG9rZW5zJyxcbn07XG5cbmV4cG9ydCBjbGFzcyBGaWxlVG9rZW5TdG9yZSBpbXBsZW1lbnRzIFRva2VuU3RvcmUge1xuICBwcm90ZWN0ZWQgb3B0aW9uczogRmlsZVRva2VuU3RvcmVPcHRpb25zO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFBhcnRpYWw8RmlsZVRva2VuU3RvcmVPcHRpb25zPiA9IHt9KSB7XG4gICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgZGVmYXVsdEZpbGVUb2tlblN0b3JlT3B0aW9ucyxcbiAgICAgIG9wdGlvbnNcbiAgICApIGFzIEZpbGVUb2tlblN0b3JlT3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlIHRoZSBwYXRoIG9mIGZpbGVcbiAgICogQHBhcmFtIHNlc3Npb25OYW1lIE5hbWUgb2Ygc2Vzc2lvblxuICAgKiBAcmV0dXJucyBGdWxsIHBhdGggb2YgdG9rZW4gZmlsZVxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc29sdmVyUGF0aChzZXNzaW9uTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBmaWxlbmFtZSA9IHNhbml0aXplKHNlc3Npb25OYW1lKSArIHRoaXMub3B0aW9ucy5maWxlRXh0ZW5zaW9uO1xuICAgIHJldHVybiBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwgcGF0aC5qb2luKHRoaXMub3B0aW9ucy5wYXRoLCBmaWxlbmFtZSkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFRva2VuKFxuICAgIHNlc3Npb25OYW1lOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxTZXNzaW9uVG9rZW4gfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMucmVzb2x2ZXJQYXRoKHNlc3Npb25OYW1lKTtcblxuICAgIGlmICghZnMuZXhpc3RzU3luYyhmaWxlUGF0aCkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgdGV4dCA9IGF3YWl0IGZzLnByb21pc2VzXG4gICAgICAucmVhZEZpbGUoZmlsZVBhdGgsIHtcbiAgICAgICAgZW5jb2Rpbmc6IHRoaXMub3B0aW9ucy5lbmNvZGluZyxcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKCkgPT4gbnVsbCk7XG5cbiAgICBpZiAoIXRleHQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZGVjb2RlRnVuY3Rpb24odGV4dCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhlcnJvcik7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZXRUb2tlbihcbiAgICBzZXNzaW9uTmFtZTogc3RyaW5nLFxuICAgIHRva2VuRGF0YTogU2Vzc2lvblRva2VuIHwgbnVsbFxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAoIXRva2VuRGF0YSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghZnMuZXhpc3RzU3luYyh0aGlzLm9wdGlvbnMucGF0aCkpIHtcbiAgICAgIGF3YWl0IGZzLnByb21pc2VzLm1rZGlyKHRoaXMub3B0aW9ucy5wYXRoLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMucmVzb2x2ZXJQYXRoKHNlc3Npb25OYW1lKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB0ZXh0ID0gdGhpcy5vcHRpb25zLmVuY29kZUZ1bmN0aW9uKHRva2VuRGF0YSk7XG5cbiAgICAgIGF3YWl0IGZzLnByb21pc2VzLndyaXRlRmlsZShmaWxlUGF0aCwgdGV4dCwge1xuICAgICAgICBlbmNvZGluZzogdGhpcy5vcHRpb25zLmVuY29kaW5nLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nZ2VyLmRlYnVnKGVycm9yKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVtb3ZlVG9rZW4oc2Vzc2lvbk5hbWU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5yZXNvbHZlclBhdGgoc2Vzc2lvbk5hbWUpO1xuXG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmcy5wcm9taXNlcy51bmxpbmsoZmlsZVBhdGgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhlcnJvcik7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGxpc3RUb2tlbnMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGlmICghZnMuZXhpc3RzU3luYyh0aGlzLm9wdGlvbnMucGF0aCkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgbGV0IGZpbGVzID0gYXdhaXQgZnMucHJvbWlzZXMucmVhZGRpcih0aGlzLm9wdGlvbnMucGF0aCk7XG5cbiAgICAgIC8vIE9ubHkgc2Vzc2lvbnMgd2l0aCBzYW1lIGZpbGVFeHRlbnNpb25cbiAgICAgIGZpbGVzID0gZmlsZXMuZmlsdGVyKChmaWxlKSA9PiBmaWxlLmVuZHNXaXRoKHRoaXMub3B0aW9ucy5maWxlRXh0ZW5zaW9uKSk7XG5cbiAgICAgIC8vIFJldHVybiBuYW1lIG9ubHlcbiAgICAgIGZpbGVzID0gZmlsZXMubWFwKChmaWxlKSA9PlxuICAgICAgICBwYXRoLmJhc2VuYW1lKGZpbGUsIHRoaXMub3B0aW9ucy5maWxlRXh0ZW5zaW9uKVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIGZpbGVzO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIuZGVidWcoZXJyb3IpO1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQWlCQSxJQUFBQSxFQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxJQUFBLEdBQUFGLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBOztBQUVBLElBQUFJLENBQUEsR0FBQUosT0FBQSxhQUFrQyxTQUFBRCx3QkFBQU0sQ0FBQSxFQUFBQyxDQUFBLDRCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxHQUFBRSxDQUFBLE9BQUFGLE9BQUEsV0FBQVIsdUJBQUEsWUFBQUEsQ0FBQU0sQ0FBQSxFQUFBQyxDQUFBLFFBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxLQUFBTSxDQUFBLENBQUFDLENBQUEsQ0FBQUMsQ0FBQSxLQUFBQyxTQUFBLFFBQUFDLE9BQUEsRUFBQVYsQ0FBQSxnQkFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxTQUFBUSxDQUFBLEtBQUFGLENBQUEsR0FBQUwsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsT0FBQUcsQ0FBQSxDQUFBSyxHQUFBLENBQUFYLENBQUEsVUFBQU0sQ0FBQSxDQUFBTSxHQUFBLENBQUFaLENBQUEsQ0FBQU0sQ0FBQSxFQUFBTyxHQUFBLENBQUFiLENBQUEsRUFBQVEsQ0FBQSxjQUFBUCxDQUFBLElBQUFELENBQUEsZ0JBQUFDLENBQUEsT0FBQWEsY0FBQSxDQUFBQyxJQUFBLENBQUFmLENBQUEsRUFBQUMsQ0FBQSxPQUFBTSxDQUFBLElBQUFELENBQUEsR0FBQVUsTUFBQSxDQUFBQyxjQUFBLEtBQUFELE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWxCLENBQUEsRUFB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wppconnect/server",
3
- "version": "2.8.11",
3
+ "version": "2.9.0",
4
4
  "description": "Projeto feito para autenticar a automomacao do WhatsappWeb com multi-clientes de forma dinamica. Backend feito em Nodejs(express, socketio), FrontEnd (ReactJS)",
5
5
  "main": "dist/index.js",
6
6
  "author": "kingaspx",
@@ -36,13 +36,13 @@
36
36
  },
37
37
  "packageManager": "yarn@4.12.0",
38
38
  "dependencies": {
39
- "@aws-sdk/client-s3": "^3.958.0",
40
- "@wppconnect-team/wppconnect": "^1.37.8",
39
+ "@aws-sdk/client-s3": "^3.1000.0",
40
+ "@wppconnect-team/wppconnect": "^1.41.0",
41
41
  "archiver": "^7.0.1",
42
- "axios": "^1.13.2",
42
+ "axios": "^1.13.6",
43
43
  "bcrypt": "^6.0.0",
44
44
  "buffer-to-stream": "1.0.0",
45
- "cors": "^2.8.5",
45
+ "cors": "^2.8.6",
46
46
  "cross-env": "^7.0.3",
47
47
  "dotenv": "^16.6.1",
48
48
  "express": "4.22.1",
@@ -61,18 +61,18 @@
61
61
  "winston": "^3.19.0"
62
62
  },
63
63
  "devDependencies": {
64
- "@babel/cli": "^7.28.3",
65
- "@babel/core": "^7.28.5",
66
- "@babel/eslint-parser": "^7.28.5",
64
+ "@babel/cli": "^7.28.6",
65
+ "@babel/core": "^7.29.0",
66
+ "@babel/eslint-parser": "^7.28.6",
67
67
  "@babel/eslint-plugin": "^7.27.1",
68
- "@babel/node": "^7.28.0",
69
- "@babel/plugin-transform-runtime": "^7.28.5",
70
- "@babel/preset-env": "^7.28.5",
68
+ "@babel/node": "^7.29.0",
69
+ "@babel/plugin-transform-runtime": "^7.29.0",
70
+ "@babel/preset-env": "^7.29.0",
71
71
  "@babel/preset-typescript": "^7.28.5",
72
- "@babel/runtime": "^7.28.4",
73
- "@commitlint/cli": "^20.2.0",
74
- "@commitlint/config-conventional": "^20.2.0",
75
- "@commitlint/cz-commitlint": "^20.2.0",
72
+ "@babel/runtime": "^7.28.6",
73
+ "@commitlint/cli": "^20.4.3",
74
+ "@commitlint/config-conventional": "^20.4.3",
75
+ "@commitlint/cz-commitlint": "^20.4.3",
76
76
  "@types/archiver": "^7.0.0",
77
77
  "@types/bcrypt": "^6.0.0",
78
78
  "@types/cors": "^2.8.19",
@@ -81,12 +81,12 @@
81
81
  "@types/merge-deep": "^3.0.3",
82
82
  "@types/mime-types": "^3.0.1",
83
83
  "@types/multer": "^1.4.13",
84
- "@types/node": "^22.19.3",
84
+ "@types/node": "^22.19.5",
85
85
  "@types/qrcode": "^1.5.6",
86
86
  "@types/swagger-ui-express": "^4.1.8",
87
87
  "@types/unzipper": "^0.10.11",
88
88
  "@typescript-eslint/eslint-plugin": "^7.18.0",
89
- "@typescript-eslint/parser": "^8.50.1",
89
+ "@typescript-eslint/parser": "^8.56.1",
90
90
  "commitizen": "^4.3.1",
91
91
  "conventional-changelog-cli": "^5.0.0",
92
92
  "crypto-js": "^4.2.0",
@@ -94,23 +94,23 @@
94
94
  "eslint-config-love": "^134.0.0",
95
95
  "eslint-config-prettier": "^10.1.8",
96
96
  "eslint-plugin-import": "^2.32.0",
97
- "eslint-plugin-n": "^17.23.1",
97
+ "eslint-plugin-n": "^17.24.0",
98
98
  "eslint-plugin-prettier": "^4.2.5",
99
99
  "eslint-plugin-promise": "^7.2.1",
100
100
  "eslint-plugin-simple-import-sort": "^12.1.1",
101
101
  "husky": "^9.1.7",
102
102
  "jest": "^29.7.0",
103
103
  "license-check-and-add": "^4.0.5",
104
- "mongoose": "^8.20.4",
105
- "nodemon": "^3.1.11",
104
+ "mongoose": "^8.23.0",
105
+ "nodemon": "^3.1.14",
106
106
  "prettier": "^2.8.8",
107
107
  "pretty-quick": "^4.2.2",
108
108
  "prom-client": "^14.2.0",
109
109
  "redis": "^4.7.1",
110
- "release-it": "^19.2.2",
111
- "rimraf": "^6.1.2",
110
+ "release-it": "^19.2.4",
111
+ "rimraf": "^6.1.3",
112
112
  "shx": "^0.4.0",
113
- "swagger-ui-dist": "^5.31.0",
113
+ "swagger-ui-dist": "^5.32.0",
114
114
  "ts-jest": "^29.4.6",
115
115
  "ts-loader": "^9.5.4",
116
116
  "tsx": "^4.21.0",
@@ -119,7 +119,7 @@
119
119
  },
120
120
  "peerDependencies": {
121
121
  "crypto-js": "^4.2.0",
122
- "mongoose": "^8.20.4",
122
+ "mongoose": "^8.23.0",
123
123
  "redis": "^4.7.1"
124
124
  }
125
125
  }