@tricoteuses/assemblee 1.8.0 → 1.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/lib/bugs/acteur-00010/plugin.test.js +2 -2
- package/lib/bugs/acteur-00010.js +3 -3
- package/lib/bugs/agenda-00002/plugin.test.js +3 -3
- package/lib/bugs/agenda-00002.js +5 -5
- package/lib/bugs/agenda-00008/plugin.test.js +2 -2
- package/lib/bugs/agenda-00008.js +3 -3
- package/lib/bugs/agenda-00011/plugin.test.js +6 -6
- package/lib/bugs/agenda-00011.js +8 -8
- package/lib/bugs.js +11 -11
- package/lib/cleaners/index.d.ts +1 -0
- package/lib/cleaners/index.js +8 -1
- package/lib/cleaners/index.mjs +2 -1
- package/lib/cleaners/scrutins.js +2 -1
- package/lib/cleaners/scrutins.mjs +3 -2
- package/lib/cleaners/textes_loi.d.ts +1 -0
- package/lib/cleaners/textes_loi.js +12 -0
- package/lib/cleaners/textes_loi.mjs +5 -0
- package/lib/cleaners/xml.d.ts +3 -0
- package/lib/cleaners/xml.js +13 -1
- package/lib/cleaners/xml.mjs +11 -1
- package/lib/datasets.d.ts +9 -2
- package/lib/datasets.js +24 -3
- package/lib/datasets.mjs +24 -3
- package/lib/dates.js +3 -3
- package/lib/examples/PIONANR5L15B0020/input.d.ts +2 -0
- package/lib/examples/PIONANR5L15B0020/input.js +10 -0
- package/lib/examples/PIONANR5L15B0020/input.mjs +193 -0
- package/lib/examples/PRJLANR5L16B0914/input.d.ts +2 -0
- package/lib/examples/PRJLANR5L16B0914/input.js +10 -0
- package/lib/examples/PRJLANR5L16B0914/input.mjs +322 -0
- package/lib/examples/PRJLANR5L16B2014/input.d.ts +2 -0
- package/lib/examples/PRJLANR5L16B2014/input.js +10 -0
- package/lib/examples/PRJLANR5L16B2014/input.mjs +577 -0
- package/lib/examples/PRJLANR5L16B2424/input.d.ts +2 -0
- package/lib/examples/PRJLANR5L16B2424/input.js +10 -0
- package/lib/examples/PRJLANR5L16B2424/input.mjs +322 -0
- package/lib/examples/PRJLANR5L16B2462/input.d.ts +2 -0
- package/lib/examples/PRJLANR5L16B2462/input.js +10 -0
- package/lib/examples/PRJLANR5L16B2462/input.mjs +1308 -0
- package/lib/loaders.d.ts +5 -0
- package/lib/loaders.js +308 -262
- package/lib/loaders.mjs +16 -3
- package/lib/logger.d.ts +16 -0
- package/lib/logger.js +35 -0
- package/lib/logger.mjs +26 -0
- package/lib/parsers/documents.js +2 -2
- package/lib/parsers/textes_lois.d.ts +16 -1
- package/lib/parsers/textes_lois.js +733 -28
- package/lib/parsers/textes_lois.mjs +587 -22
- package/lib/raw_types/acteurs_et_organes.js +1 -1
- package/lib/raw_types/agendas.js +1 -1
- package/lib/raw_types/amendements.js +1 -1
- package/lib/raw_types/debats.js +1 -1
- package/lib/raw_types/dossiers_legislatifs.js +1 -1
- package/lib/raw_types/questions.js +1 -1
- package/lib/raw_types/scrutins.d.ts +18 -13
- package/lib/raw_types/scrutins.js +28 -14
- package/lib/raw_types/scrutins.mjs +28 -14
- package/lib/raw_types/textes_loi.d.ts +93 -0
- package/lib/raw_types/textes_loi.js +429 -0
- package/lib/raw_types/textes_loi.mjs +378 -0
- package/lib/scripts/bugs_helper.js +9 -9
- package/lib/scripts/document_dossiers_legislatifs.js +1 -1
- package/lib/scripts/process_open_dataset.d.ts +17 -0
- package/lib/scripts/process_open_dataset.js +302 -0
- package/lib/scripts/process_open_dataset.mjs +136 -0
- package/lib/scripts/process_textes_loi_dataset.d.ts +7 -0
- package/lib/scripts/process_textes_loi_dataset.js +374 -0
- package/lib/scripts/process_textes_loi_dataset.mjs +237 -0
- package/lib/scripts/raw_types_from_amendements.js +2 -2
- package/lib/scripts/reorganize_data.js +1 -1
- package/lib/scripts/reorganize_data.mjs +1 -1
- package/lib/scripts/retrieve_deputes_photos.js +3 -3
- package/lib/scripts/retrieve_documents.js +4 -4
- package/lib/scripts/retrieve_open_data.js +41 -279
- package/lib/scripts/retrieve_open_data.mjs +13 -126
- package/lib/scripts/retrieve_pending_amendments.js +2 -2
- package/lib/scripts/retrieve_senateurs_photos.js +2 -2
- package/lib/scripts/retrieve_textes_lois.js +2 -2
- package/lib/scripts/shared/cli_helpers.d.ts +5 -0
- package/lib/scripts/shared/cli_helpers.js +7 -2
- package/lib/scripts/shared/cli_helpers.mjs +6 -1
- package/lib/scripts/test_iter_load.js +25 -10
- package/lib/scripts/test_iter_load.mjs +19 -11
- package/lib/scripts/validate_json.js +3 -3
- package/lib/types/acteurs_et_organes.js +1 -1
- package/lib/types/agendas.js +1 -1
- package/lib/types/amendements.js +1 -1
- package/lib/types/debats.js +1 -1
- package/lib/types/dossiers_legislatifs.js +1 -1
- package/lib/types/questions.js +1 -1
- package/lib/types/scrutins.d.ts +6 -3
- package/lib/types/scrutins.js +13 -7
- package/lib/types/scrutins.mjs +13 -7
- package/lib/types/textes_loi.d.ts +94 -0
- package/lib/types/textes_loi.js +429 -0
- package/lib/types/textes_loi.mjs +378 -0
- package/package.json +13 -12
- package/lib/scripts/retrieve_textes_lois_llm.d.ts +0 -1
- package/lib/scripts/retrieve_textes_lois_llm.js +0 -188
- package/lib/scripts/retrieve_textes_lois_llm.mjs +0 -85
|
@@ -514,4 +514,4 @@ function main(argv) {
|
|
|
514
514
|
|
|
515
515
|
/* istanbul ignore if */
|
|
516
516
|
if (process.argv[1].endsWith("reorganize_data.ts")) process.exit(main(process.argv));
|
|
517
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJjb21tYW5kTGluZUFyZ3MiLCJmcyIsInBhdGgiLCJkYXRhc2V0cyIsIkRhdGFzZXRTdHJ1Y3R1cmUiLCJFbmFibGVkRGF0YXNldHMiLCJnZXRFbmFibGVkRGF0YXNldHMiLCJmaWx0ZXJCeUxlZ2lzbGF0dXJlIiwiZXhpc3RpbmdEYXRlVG9Kc29uIiwicGF0Y2hlZERhdGVUb0pzb24iLCJnaXQiLCJ3YWxrRGlyIiwicGF0aEZyb21Db21wdGVSZW5kdVVpZCIsInBhdGhGcm9tRG9jdW1lbnRVaWQiLCJwYXRoRnJvbURvc3NpZXJQYXJsZW1lbnRhaXJlVWlkIiwicGF0aEZyb21RdWVzdGlvblVpZCIsInBhdGhGcm9tUmV1bmlvblVpZCIsInBhdGhGcm9tU2NydXRpblVpZCIsIkNvbnZlcnQiLCJBY3RldXJzRXRPcmdhbmVzUmF3Q29udmVydCIsIkFnZW5kYXNSYXdDb252ZXJ0IiwiQW1lbmRlbWVudHNSYXdDb252ZXJ0IiwiRG9zc2llcnNMZWdpc2xhdGlmc1Jhd0NvbnZlcnQiLCJTY3J1dGluc1Jhd0NvbnZlcnQiLCJRdWVzdGlvbnNSYXdDb252ZXJ0IiwiQ29tcHRlc1JlbmR1c1Jhd0NvbnZlcnQiLCJjbG9uZU9wdGlvbiIsImNvbW1pdE9wdGlvbiIsImNhdGVnb3JpZXNPcHRpb24iLCJsZWdpc2xhdHVyZU9wdGlvbiIsInJlbW90ZU9wdGlvbiIsInNpbGVudE9wdGlvbiIsInZlcmJvc2VPcHRpb24iLCJkYXRhRGlyRGVmYXVsdE9wdGlvbiIsInB1bGxPcHRpb24iLCJwYXJzZUFyZ3MiLCJhcmd2Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiYWxpYXMiLCJoZWxwIiwibmFtZSIsInR5cGUiLCJCb29sZWFuIiwib3B0aW9ucyIsImNsZWFyRGlyZWN0b3J5IiwiZGlyUGF0aCIsImVuc3VyZURpclN5bmMiLCJmaWxlbmFtZSIsInJlYWRkaXJTeW5jIiwic3RhcnRzV2l0aCIsInJlbW92ZVN5bmMiLCJqb2luIiwiY2xvbmVHaXQiLCJnaXRHcm91cFVybCIsImRhdGFzZXROYW1lIiwiZGF0YURpciIsImNsb25lIiwicmVvcmdhbml6ZURhdGEiLCJEYXRlIiwicHJvdG90eXBlIiwidG9KU09OIiwiZXhpdENvZGUiLCJjb21taXQiLCJ0cmltIiwicmVwbGFjZSIsInZhbGlkYXRlUmF3RGF0YSIsImVuYWJsZWREYXRhc2V0cyIsImNhdGVnb3JpZXMiLCJjaG9zZW5EYXRhc2V0cyIsImxlZ2lzbGF0dXJlIiwiY29tbWl0R2l0IiwiZGF0YXNldFJlb3JnYW5pemVkRGlyIiwiZXJyb3JDb2RlIiwiY29tbWl0QW5kUHVzaCIsInJlbW90ZSIsIkFjdGV1cnNFdE9yZ2FuZXMiLCJkYXRhc2V0IiwiYWN0ZXVyc0V0T3JnYW5lcyIsIm9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgiLCJzaWxlbnQiLCJjb25zb2xlIiwibG9nIiwiYmFzZW5hbWUiLCJwdWxsIiwicmVzZXRBbmRQdWxsIiwiYWN0ZXVyc1Jlb3JnYW5pemVkRGlyIiwibWtkaXJTeW5jIiwib3JnYW5lc1Jlb3JnYW5pemVkRGlyIiwic3RydWN0dXJlIiwiU2luZ2xlRmlsZSIsIm9yaWdpbmFsSnNvbiIsInJlYWRGaWxlU3luYyIsImVuY29kaW5nIiwib3JpZ2luYWxEYXRhIiwidG9BY3RldXJzRXRPcmdhbmVzIiwiSlNPTiIsInBhcnNlIiwiYWN0ZXVyIiwiZXhwb3J0IiwiYWN0ZXVycyIsInJlb3JnYW5pemVkSnNvbkZpbGVQYXRoIiwidWlkIiwid3JpdGVGaWxlU3luYyIsInN0cmluZ2lmeSIsIm9yZ2FuZSIsIm9yZ2FuZXMiLCJTZWdtZW50ZWRGaWxlcyIsImRlcG9ydHNCeUFjdGV1clVpZCIsImV4aXN0c1N5bmMiLCJkZXBvcnRTcGxpdFBhdGgiLCJkZXBvcnRGaWxlbmFtZSIsImxlbmd0aCIsImVuZHNXaXRoIiwiZGVwb3J0T3JpZ2luYWxGaWxlUGF0aCIsInZlcmJvc2UiLCJkZXBvcnRPcmlnaW5hbEpzb24iLCJkZXBvcnRPcmlnaW5hbCIsInRvRGVwb3J0IiwiZGVwb3J0IiwiZGVwb3J0cyIsImFjdGV1clJlZiIsInVuZGVmaW5lZCIsInB1c2giLCJPYmplY3QiLCJ2YWx1ZXMiLCJzb3J0IiwiYSIsImIiLCJsb2NhbGVDb21wYXJlIiwibWFuZGF0c0J5QWN0ZXVyVWlkIiwibWFuZGF0U3BsaXRQYXRoIiwibWFuZGF0RmlsZW5hbWUiLCJtYW5kYXRPcmlnaW5hbEZpbGVQYXRoIiwibWFuZGF0T3JpZ2luYWxKc29uIiwibWFuZGF0T3JpZ2luYWwiLCJ0b01hbmRhdFdyYXBwZXIiLCJtYW5kYXQiLCJtYW5kYXRzIiwiYWN0ZXVyU3BsaXRQYXRoIiwiYWN0ZXVyRmlsZW5hbWUiLCJhY3RldXJPcmlnaW5hbEZpbGVQYXRoIiwiYWN0ZXVyT3JpZ2luYWxKc29uIiwiYWN0ZXVyT3JpZ2luYWwiLCJ0b0FjdGV1ciIsImFjdGV1clVpZCIsInN0cmljdEVxdWFsIiwiYWN0ZXVyUmVvcmdhbml6ZWRKc29uRmlsZVBhdGgiLCJvcmdhbmVTcGxpdFBhdGgiLCJvcmdhbmVGaWxlbmFtZSIsIm9yZ2FuZU9yaWdpbmFsRmlsZVBhdGgiLCJvcmdhbmVPcmlnaW5hbEpzb24iLCJvcmdhbmVPcmlnaW5hbCIsInRvT3JnYW5lIiwib3JnYW5lUmVvcmdhbml6ZWRKc29uRmlsZVBhdGgiLCJBZ2VuZGFzIiwiYWdlbmRhcyIsInRvQWdlbmRhcyIsInJldW5pb24iLCJyZXVuaW9ucyIsIndyaXRlUmVvcmdhbml6ZWRKc29uIiwicmV1bmlvblNwbGl0UGF0aCIsInJldW5pb25GaWxlbmFtZSIsInJldW5pb25PcmlnaW5hbEZpbGVQYXRoIiwicmV1bmlvbk9yaWdpbmFsSnNvbiIsInJldW5pb25PcmlnaW5hbCIsInRvUmV1bmlvbiIsIkFtZW5kZW1lbnRzIiwiYW1lbmRlbWVudHMiLCJ0b0FtZW5kZW1lbnRzIiwidGV4dGVMZWdpc2xhdGlmIiwidGV4dGVzRXRBbWVuZGVtZW50cyIsInRleHRlbGVnIiwiYW1lbmRlbWVudCIsIndyaXRlQW1lbmRlbWVudFJlb3JnYW5pemVkSnNvbiIsImFtZW5kZW1lbnRTcGxpdFBhdGgiLCJhbWVuZGVtZW50RmlsZW5hbWUiLCJhbWVuZGVtZW50T3JpZ2luYWxGaWxlUGF0aCIsImFtZW5kZW1lbnRPcmlnaW5hbEpzb24iLCJhbWVuZGVtZW50T3JpZ2luYWwiLCJ0b0FtZW5kZW1lbnRXcmFwcGVyIiwiRG9zc2llcnNMZWdpc2xhdGlmcyIsImRvc3NpZXJzTGVnaXNsYXRpZnMiLCJkb2N1bWVudHNEaXIiLCJkb3NzaWVyc0RpciIsInRvRG9zc2llcnNMZWdpc2xhdGlmcyIsImRvY3VtZW50IiwidGV4dGVzTGVnaXNsYXRpZnMiLCJkb3NzaWVyUGFybGVtZW50YWlyZSIsImRvc3NpZXIiLCJkb2N1bWVudFNwbGl0UGF0aCIsImRvY3VtZW50RmlsZW5hbWUiLCJkb2N1bWVudE9yaWdpbmFsRmlsZVBhdGgiLCJkb2N1bWVudE9yaWdpbmFsSnNvbiIsImRvY3VtZW50T3JpZ2luYWwiLCJ0b0RvY3VtZW50IiwiZG9zc2llclBhcmxlbWVudGFpcmVTcGxpdFBhdGgiLCJkb3NzaWVyUGFybGVtZW50YWlyZUZpbGVuYW1lIiwiZG9zc2llclBhcmxlbWVudGFpcmVPcmlnaW5hbEZpbGVQYXRoIiwiZG9zc2llclBhcmxlbWVudGFpcmVPcmlnaW5hbEpzb24iLCJkb3NzaWVyUGFybGVtZW50YWlyZU9yaWdpbmFsIiwidG9Eb3NzaWVyUGFybGVtZW50YWlyZSIsIlNjcnV0aW5zIiwic2NydXRpbnMiLCJ0b1NjcnV0aW5zIiwic2NydXRpbiIsInNjcnV0aW5TcGxpdFBhdGgiLCJzY3J1dGluRmlsZW5hbWUiLCJzY3J1dGluT3JpZ2luYWxGaWxlUGF0aCIsInNjcnV0aW5PcmlnaW5hbEpzb24iLCJzY3J1dGluT3JpZ2luYWwiLCJ0b1NjcnV0aW5XcmFwcGVyIiwiUXVlc3Rpb25zIiwicXVlc3Rpb25zIiwicXVlc3Rpb25TcGxpdFBhdGgiLCJxdWVzdGlvbkZpbGVuYW1lIiwicXVlc3Rpb25PcmlnaW5hbEZpbGVQYXRoIiwicXVlc3Rpb25PcmlnaW5hbEpzb24iLCJxdWVzdGlvbk9yaWdpbmFsIiwidG9RdWVzdGlvbldyYXBwZXIiLCJxdWVzdGlvbiIsIkNvbXB0ZXNSZW5kdXNTZWFuY2VzIiwiY29tcHRlc1JlbmR1c1NlYW5jZXMiLCJjb21wdGVSZW5kdVNlYW5jZVNwbGl0UGF0aCIsImNvbXB0ZVJlbmR1U2VhbmNlRmlsZW5hbWUiLCJjb21wdGVSZW5kdVNlYW5jZU9yaWdpbmFsRmlsZVBhdGgiLCJjb21wdGVSZW5kdVNlYW5jZU9yaWdpbmFsSnNvbiIsImNvbXB0ZVJlbmR1U2VhbmNlT3JpZ2luYWwiLCJ0b0NvbXB0ZVJlbmR1V3JhcHBlciIsImNvbXB0ZVJlbmR1U2VhbmNlIiwiY29tcHRlUmVuZHUiLCJ1aWRUZXh0ZUxlZ2lzbGF0aWYiLCJ0ZXh0ZUxlZ2lzbGF0aWZSZWYiLCJub3RTdHJpY3RFcXVhbCIsInRleHRlTGVnaXNsYXRpZkRpciIsImRpciIsIm9iaiIsInBhdGhGcm9tVWlkIiwibWFpbiIsInByb2Nlc3MiLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmVvcmdhbml6ZV9kYXRhLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCB7XG4gIGRhdGFzZXRzLFxuICBEYXRhc2V0U3RydWN0dXJlLFxuICBFbmFibGVkRGF0YXNldHMsXG4gIGdldEVuYWJsZWREYXRhc2V0cyxcbiAgZmlsdGVyQnlMZWdpc2xhdHVyZSxcbn0gZnJvbSBcIi4uL2RhdGFzZXRzXCJcbmltcG9ydCB7IGV4aXN0aW5nRGF0ZVRvSnNvbiwgcGF0Y2hlZERhdGVUb0pzb24gfSBmcm9tIFwiLi4vZGF0ZXNcIlxuaW1wb3J0ICogYXMgZ2l0IGZyb20gXCIuLi9naXRcIlxuaW1wb3J0IHsgd2Fsa0RpciB9IGZyb20gXCIuLi9maWxlX3N5c3RlbXNcIlxuaW1wb3J0IHtcbiAgcGF0aEZyb21Db21wdGVSZW5kdVVpZCxcbiAgcGF0aEZyb21Eb2N1bWVudFVpZCxcbiAgcGF0aEZyb21Eb3NzaWVyUGFybGVtZW50YWlyZVVpZCxcbiAgcGF0aEZyb21RdWVzdGlvblVpZCxcbiAgcGF0aEZyb21SZXVuaW9uVWlkLFxuICBwYXRoRnJvbVNjcnV0aW5VaWQsXG59IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7IENvbnZlcnQgYXMgQWN0ZXVyc0V0T3JnYW5lc1Jhd0NvbnZlcnQgfSBmcm9tIFwiLi4vcmF3X3R5cGVzL2FjdGV1cnNfZXRfb3JnYW5lc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIEFnZW5kYXNSYXdDb252ZXJ0IH0gZnJvbSBcIi4uL3Jhd190eXBlcy9hZ2VuZGFzXCJcbmltcG9ydCB7IENvbnZlcnQgYXMgQW1lbmRlbWVudHNSYXdDb252ZXJ0IH0gZnJvbSBcIi4uL3Jhd190eXBlcy9hbWVuZGVtZW50c1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIERvc3NpZXJzTGVnaXNsYXRpZnNSYXdDb252ZXJ0IH0gZnJvbSBcIi4uL3Jhd190eXBlcy9kb3NzaWVyc19sZWdpc2xhdGlmc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIFNjcnV0aW5zUmF3Q29udmVydCB9IGZyb20gXCIuLi9yYXdfdHlwZXMvc2NydXRpbnNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBRdWVzdGlvbnNSYXdDb252ZXJ0IH0gZnJvbSBcIi4uL3Jhd190eXBlcy9xdWVzdGlvbnNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBDb21wdGVzUmVuZHVzUmF3Q29udmVydCB9IGZyb20gXCIuLi9yYXdfdHlwZXMvZGViYXRzXCJcbmltcG9ydCB7XG4gIGNsb25lT3B0aW9uLFxuICBjb21taXRPcHRpb24sXG4gIGNhdGVnb3JpZXNPcHRpb24sXG4gIGxlZ2lzbGF0dXJlT3B0aW9uLFxuICByZW1vdGVPcHRpb24sXG4gIHNpbGVudE9wdGlvbixcbiAgdmVyYm9zZU9wdGlvbixcbiAgZGF0YURpckRlZmF1bHRPcHRpb24sXG4gIHB1bGxPcHRpb24sXG59IGZyb20gXCIuL3NoYXJlZC9jbGlfaGVscGVyc1wiXG5cbmZ1bmN0aW9uIHBhcnNlQXJncyhhcmd2OiBzdHJpbmdbXSk6IGFueSB7XG4gIGNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAgICBjbG9uZU9wdGlvbixcbiAgICBjb21taXRPcHRpb24sXG4gICAgY2F0ZWdvcmllc09wdGlvbixcbiAgICBsZWdpc2xhdHVyZU9wdGlvbixcbiAgICByZW1vdGVPcHRpb24sXG4gICAgc2lsZW50T3B0aW9uLFxuICAgIHZlcmJvc2VPcHRpb24sXG4gICAgZGF0YURpckRlZmF1bHRPcHRpb24sXG4gICAgcHVsbE9wdGlvbixcbiAgICB7XG4gICAgICBhbGlhczogXCJWXCIsXG4gICAgICBoZWxwOiBcImRvbid0IHZhbGlkYXRlIHJhdyBkYXRhXCIsXG4gICAgICBuYW1lOiBcIm5vLXZhbGlkYXRlLXJhd1wiLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICBdXG4gIGNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zLCB7XG4gICAgYXJndjogYXJndixcbiAgfSlcbiAgcmV0dXJuIG9wdGlvbnNcbn1cblxuZnVuY3Rpb24gY2xlYXJEaXJlY3RvcnkoZGlyUGF0aDogc3RyaW5nKTogdm9pZCB7XG4gIGZzLmVuc3VyZURpclN5bmMoZGlyUGF0aClcbiAgZm9yIChjb25zdCBmaWxlbmFtZSBvZiBmcy5yZWFkZGlyU3luYyhkaXJQYXRoKSkge1xuICAgIGlmICghZmlsZW5hbWUuc3RhcnRzV2l0aChcIi5cIikpIHtcbiAgICAgIGZzLnJlbW92ZVN5bmMocGF0aC5qb2luKGRpclBhdGgsIGZpbGVuYW1lKSlcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY2xvbmVHaXQoXG4gIGdpdEdyb3VwVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGRhdGFzZXROYW1lOiBzdHJpbmcsXG4gIGRhdGFEaXI6IHN0cmluZyxcbik6IHZvaWQge1xuICBnaXQuY2xvbmUoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxufVxuXG5mdW5jdGlvbiByZW9yZ2FuaXplRGF0YShvcHRpb25zOiBhbnkpOiBudW1iZXIge1xuICBjb25zdCBkYXRhRGlyID0gb3B0aW9ucy5kYXRhRGlyXG4gIERhdGUucHJvdG90eXBlLnRvSlNPTiA9IHBhdGNoZWREYXRlVG9Kc29uXG4gIGxldCBleGl0Q29kZSA9IG9wdGlvbnMuY29tbWl0ID8gMTAgOiAwXG4gIGNvbnN0IGdpdEdyb3VwVXJsID0gb3B0aW9ucy5jbG9uZT8udHJpbSgpLnJlcGxhY2UoL1xcLyskLywgXCJcIilcbiAgY29uc3QgdmFsaWRhdGVSYXdEYXRhID0gIW9wdGlvbnNbXCJuby12YWxpZGF0ZS1yYXdcIl1cbiAgY29uc3QgZW5hYmxlZERhdGFzZXRzID0gZ2V0RW5hYmxlZERhdGFzZXRzKG9wdGlvbnMuY2F0ZWdvcmllcylcbiAgbGV0IGNob3NlbkRhdGFzZXRzID0gZmlsdGVyQnlMZWdpc2xhdHVyZShkYXRhc2V0cywgb3B0aW9ucy5sZWdpc2xhdHVyZSlcblxuICBmdW5jdGlvbiBjb21taXRHaXQoZGF0YXNldFJlb3JnYW5pemVkRGlyOiBzdHJpbmcsIG9wdGlvbnM6IGFueSk6IHZvaWQge1xuICAgIGlmIChvcHRpb25zLmNvbW1pdCkge1xuICAgICAgY29uc3QgZXJyb3JDb2RlID0gZ2l0LmNvbW1pdEFuZFB1c2goXG4gICAgICAgIGRhdGFzZXRSZW9yZ2FuaXplZERpcixcbiAgICAgICAgXCJOb3V2ZWxsZSBtb2lzc29uXCIsXG4gICAgICAgIG9wdGlvbnMucmVtb3RlLFxuICAgICAgKVxuICAgICAgaWYgKFxuICAgICAgICAoZXhpdENvZGUgPT09IDEwICYmIGVycm9yQ29kZSAhPT0gMTApIHx8XG4gICAgICAgIChleGl0Q29kZSA9PT0gMCAmJiBlcnJvckNvZGUgIT09IDAgJiYgZXJyb3JDb2RlICE9PSAxMClcbiAgICAgICkge1xuICAgICAgICBleGl0Q29kZSA9IGVycm9yQ29kZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQWN0ZXVyc0V0T3JnYW5lcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBjaG9zZW5EYXRhc2V0cy5hY3RldXJzRXRPcmdhbmVzKSB7XG4gICAgICBjb25zdCBvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUsXG4gICAgICApXG4gICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBSZW9yZ2FuaXppbmcgJHtvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRofWApXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShcbiAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgXCIuanNvblwiLFxuICAgICAgKVxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuXG4gICAgICBjb25zdCBkYXRhc2V0UmVvcmdhbml6ZWREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldE5hbWUpXG4gICAgICBpZiAob3B0aW9ucy5wdWxsKSB7XG4gICAgICAgIGdpdC5yZXNldEFuZFB1bGwoZGF0YXNldFJlb3JnYW5pemVkRGlyKVxuICAgICAgfVxuICAgICAgY2xlYXJEaXJlY3RvcnkoZGF0YXNldFJlb3JnYW5pemVkRGlyKVxuXG4gICAgICBjb25zdCBhY3RldXJzUmVvcmdhbml6ZWREaXIgPSBwYXRoLmpvaW4oZGF0YXNldFJlb3JnYW5pemVkRGlyLCBcImFjdGV1cnNcIilcbiAgICAgIGZzLm1rZGlyU3luYyhhY3RldXJzUmVvcmdhbml6ZWREaXIpXG4gICAgICBjb25zdCBvcmdhbmVzUmVvcmdhbml6ZWREaXIgPSBwYXRoLmpvaW4oZGF0YXNldFJlb3JnYW5pemVkRGlyLCBcIm9yZ2FuZXNcIilcbiAgICAgIGZzLm1rZGlyU3luYyhvcmdhbmVzUmVvcmdhbml6ZWREaXIpXG5cbiAgICAgIHN3aXRjaCAoZGF0YXNldC5zdHJ1Y3R1cmUpIHtcbiAgICAgICAgY2FzZSBEYXRhc2V0U3RydWN0dXJlLlNpbmdsZUZpbGU6XG4gICAgICAgICAge1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbERhdGE6IGFueSA9IHZhbGlkYXRlUmF3RGF0YVxuICAgICAgICAgICAgICA/IEFjdGV1cnNFdE9yZ2FuZXNSYXdDb252ZXJ0LnRvQWN0ZXVyc0V0T3JnYW5lcyhvcmlnaW5hbEpzb24pXG4gICAgICAgICAgICAgIDogSlNPTi5wYXJzZShvcmlnaW5hbEpzb24pXG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgYWN0ZXVyIG9mIG9yaWdpbmFsRGF0YS5leHBvcnQuYWN0ZXVycy5hY3RldXIpIHtcbiAgICAgICAgICAgICAgY29uc3QgcmVvcmdhbml6ZWRKc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgICAgICAgICBhY3RldXJzUmVvcmdhbml6ZWREaXIsXG4gICAgICAgICAgICAgICAgYWN0ZXVyLnVpZFtcIiN0ZXh0XCJdICsgXCIuanNvblwiLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmMoXG4gICAgICAgICAgICAgICAgcmVvcmdhbml6ZWRKc29uRmlsZVBhdGgsXG4gICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoYWN0ZXVyLCBudWxsLCAyKSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IG9yZ2FuZSBvZiBvcmlnaW5hbERhdGEuZXhwb3J0Lm9yZ2FuZXMub3JnYW5lKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlb3JnYW5pemVkSnNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgICAgICAgICAgb3JnYW5lc1Jlb3JnYW5pemVkRGlyLFxuICAgICAgICAgICAgICAgIG9yZ2FuZS51aWQgKyBcIi5qc29uXCIsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgZnMud3JpdGVGaWxlU3luYyhcbiAgICAgICAgICAgICAgICByZW9yZ2FuaXplZEpzb25GaWxlUGF0aCxcbiAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShvcmdhbmUsIG51bGwsIDIpLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlczpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb25zdCBkZXBvcnRzQnlBY3RldXJVaWQ6IHtcbiAgICAgICAgICAgICAgW2FjdGV1clVpZDogc3RyaW5nXTogeyB1aWQ6IHN0cmluZyB9W11cbiAgICAgICAgICAgIH0gPSB7fVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBmcy5leGlzdHNTeW5jKFxuICAgICAgICAgICAgICAgIHBhdGguam9pbihvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoLCBcImRlcG9ydFwiKSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgZGVwb3J0U3BsaXRQYXRoIG9mIHdhbGtEaXIoXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICBbXCJkZXBvcnRcIl0sXG4gICAgICAgICAgICAgICkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZXBvcnRGaWxlbmFtZSA9XG4gICAgICAgICAgICAgICAgICBkZXBvcnRTcGxpdFBhdGhbZGVwb3J0U3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgICAgICAgICAgaWYgKCFkZXBvcnRGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBkZXBvcnRPcmlnaW5hbEZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICAgIC4uLmRlcG9ydFNwbGl0UGF0aCxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgICAgICAgIGAgIExvYWRpbmcgXCJkZXBvcnRcIiBmaWxlOiAke2RlcG9ydE9yaWdpbmFsRmlsZVBhdGh94oCmYCxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgZGVwb3J0T3JpZ2luYWxKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgICAgICAgICAgICAgICBkZXBvcnRPcmlnaW5hbEZpbGVQYXRoLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjb25zdCBkZXBvcnRPcmlnaW5hbDogYW55ID0gdmFsaWRhdGVSYXdEYXRhXG4gICAgICAgICAgICAgICAgICA/IEFjdGV1cnNFdE9yZ2FuZXNSYXdDb252ZXJ0LnRvRGVwb3J0KGRlcG9ydE9yaWdpbmFsSnNvbilcbiAgICAgICAgICAgICAgICAgIDogSlNPTi5wYXJzZShkZXBvcnRPcmlnaW5hbEpzb24pXG4gICAgICAgICAgICAgICAgY29uc3QgZGVwb3J0ID0gZGVwb3J0T3JpZ2luYWwuZGVwb3J0XG4gICAgICAgICAgICAgICAgbGV0IGRlcG9ydHMgPSBkZXBvcnRzQnlBY3RldXJVaWRbZGVwb3J0LmFjdGV1clJlZl1cbiAgICAgICAgICAgICAgICBpZiAoZGVwb3J0cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICBkZXBvcnRzID0gZGVwb3J0c0J5QWN0ZXVyVWlkW2RlcG9ydC5hY3RldXJSZWZdID0gW11cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVwb3J0cy5wdXNoKGRlcG9ydClcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGZvciAoY29uc3QgZGVwb3J0cyBvZiBPYmplY3QudmFsdWVzKGRlcG9ydHNCeUFjdGV1clVpZCkpIHtcbiAgICAgICAgICAgICAgICBkZXBvcnRzLnNvcnQoKGEsIGIpID0+XG4gICAgICAgICAgICAgICAgICBhLnVpZC5sZW5ndGggPT09IGIudWlkLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICA/IGEudWlkLmxvY2FsZUNvbXBhcmUoYi51aWQpXG4gICAgICAgICAgICAgICAgICAgIDogYS51aWQubGVuZ3RoIC0gYi51aWQubGVuZ3RoLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBtYW5kYXRzQnlBY3RldXJVaWQ6IHtcbiAgICAgICAgICAgICAgW2FjdGV1clVpZDogc3RyaW5nXTogeyB1aWQ6IHN0cmluZyB9W11cbiAgICAgICAgICAgIH0gPSB7fVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBmcy5leGlzdHNTeW5jKFxuICAgICAgICAgICAgICAgIHBhdGguam9pbihvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoLCBcIm1hbmRhdFwiKSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgbWFuZGF0U3BsaXRQYXRoIG9mIHdhbGtEaXIoXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICBbXCJtYW5kYXRcIl0sXG4gICAgICAgICAgICAgICkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYW5kYXRGaWxlbmFtZSA9XG4gICAgICAgICAgICAgICAgICBtYW5kYXRTcGxpdFBhdGhbbWFuZGF0U3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgICAgICAgICAgaWYgKCFtYW5kYXRGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBtYW5kYXRPcmlnaW5hbEZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICAgIC4uLm1hbmRhdFNwbGl0UGF0aCxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgICAgICAgIGAgIExvYWRpbmcgXCJtYW5kYXRcIiBmaWxlOiAke21hbmRhdE9yaWdpbmFsRmlsZVBhdGh94oCmYCxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgbWFuZGF0T3JpZ2luYWxKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgICAgICAgICAgICAgICBtYW5kYXRPcmlnaW5hbEZpbGVQYXRoLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjb25zdCBtYW5kYXRPcmlnaW5hbDogYW55ID0gdmFsaWRhdGVSYXdEYXRhXG4gICAgICAgICAgICAgICAgICA/IEFjdGV1cnNFdE9yZ2FuZXNSYXdDb252ZXJ0LnRvTWFuZGF0V3JhcHBlcihcbiAgICAgICAgICAgICAgICAgICAgICBtYW5kYXRPcmlnaW5hbEpzb24sXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIDogSlNPTi5wYXJzZShtYW5kYXRPcmlnaW5hbEpzb24pXG4gICAgICAgICAgICAgICAgY29uc3QgbWFuZGF0ID0gbWFuZGF0T3JpZ2luYWwubWFuZGF0XG4gICAgICAgICAgICAgICAgbGV0IG1hbmRhdHMgPSBtYW5kYXRzQnlBY3RldXJVaWRbbWFuZGF0LmFjdGV1clJlZl1cbiAgICAgICAgICAgICAgICBpZiAobWFuZGF0cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICBtYW5kYXRzID0gbWFuZGF0c0J5QWN0ZXVyVWlkW21hbmRhdC5hY3RldXJSZWZdID0gW11cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbWFuZGF0cy5wdXNoKG1hbmRhdClcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGZvciAoY29uc3QgbWFuZGF0cyBvZiBPYmplY3QudmFsdWVzKG1hbmRhdHNCeUFjdGV1clVpZCkpIHtcbiAgICAgICAgICAgICAgICBtYW5kYXRzLnNvcnQoKGEsIGIpID0+XG4gICAgICAgICAgICAgICAgICBhLnVpZC5sZW5ndGggPT09IGIudWlkLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICA/IGEudWlkLmxvY2FsZUNvbXBhcmUoYi51aWQpXG4gICAgICAgICAgICAgICAgICAgIDogYS51aWQubGVuZ3RoIC0gYi51aWQubGVuZ3RoLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGFjdGV1clNwbGl0UGF0aCBvZiB3YWxrRGlyKFxuICAgICAgICAgICAgICBvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoLFxuICAgICAgICAgICAgICBbXCJhY3RldXJcIl0sXG4gICAgICAgICAgICApKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGFjdGV1ckZpbGVuYW1lID0gYWN0ZXVyU3BsaXRQYXRoW2FjdGV1clNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICAgICAgICBpZiAoIWFjdGV1ckZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IGFjdGV1ck9yaWdpbmFsRmlsZVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICAuLi5hY3RldXJTcGxpdFBhdGgsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgICAgYCAgUmVvcmdhbml6aW5nIFwiYWN0ZXVyXCIgZmlsZTogJHthY3RldXJPcmlnaW5hbEZpbGVQYXRofeKApmAsXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IGFjdGV1ck9yaWdpbmFsSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKFxuICAgICAgICAgICAgICAgIGFjdGV1ck9yaWdpbmFsRmlsZVBhdGgsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgY29uc3QgYWN0ZXVyT3JpZ2luYWw6IGFueSA9IHZhbGlkYXRlUmF3RGF0YVxuICAgICAgICAgICAgICAgID8gQWN0ZXVyc0V0T3JnYW5lc1Jhd0NvbnZlcnQudG9BY3RldXIoYWN0ZXVyT3JpZ2luYWxKc29uKVxuICAgICAgICAgICAgICAgIDogSlNPTi5wYXJzZShhY3RldXJPcmlnaW5hbEpzb24pXG4gICAgICAgICAgICAgIGNvbnN0IGFjdGV1ciA9IGFjdGV1ck9yaWdpbmFsLmFjdGV1clxuICAgICAgICAgICAgICBjb25zdCBhY3RldXJVaWQgPSBhY3RldXIudWlkW1wiI3RleHRcIl1cbiAgICAgICAgICAgICAgY29uc3QgZGVwb3J0cyA9IGRlcG9ydHNCeUFjdGV1clVpZFthY3RldXJVaWRdXG4gICAgICAgICAgICAgIGlmIChkZXBvcnRzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYWN0ZXVyLmRlcG9ydHMsIHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICBhY3RldXIuZGVwb3J0cyA9IHsgZGVwb3J0OiBkZXBvcnRzIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCBtYW5kYXRzID0gbWFuZGF0c0J5QWN0ZXVyVWlkW2FjdGV1clVpZF1cbiAgICAgICAgICAgICAgaWYgKG1hbmRhdHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhY3RldXIubWFuZGF0cywgdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgIGFjdGV1ci5tYW5kYXRzID0geyBtYW5kYXQ6IG1hbmRhdHMgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IGFjdGV1clJlb3JnYW5pemVkSnNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgICAgICAgICAgYWN0ZXVyc1Jlb3JnYW5pemVkRGlyLFxuICAgICAgICAgICAgICAgIGFjdGV1clVpZCArIFwiLmpzb25cIixcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKFxuICAgICAgICAgICAgICAgIGFjdGV1clJlb3JnYW5pemVkSnNvbkZpbGVQYXRoLFxuICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGFjdGV1ciwgbnVsbCwgMiksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChjb25zdCBvcmdhbmVTcGxpdFBhdGggb2Ygd2Fsa0RpcihcbiAgICAgICAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgICAgICAgW1wib3JnYW5lXCJdLFxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICBjb25zdCBvcmdhbmVGaWxlbmFtZSA9IG9yZ2FuZVNwbGl0UGF0aFtvcmdhbmVTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgICAgICAgaWYgKCFvcmdhbmVGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCBvcmdhbmVPcmlnaW5hbEZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgICAgICAgICAgLi4ub3JnYW5lU3BsaXRQYXRoLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIGlmIChvcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgICAgIGAgIFJlb3JnYW5pemluZyBcIm9yZ2FuZVwiIGZpbGU6ICR7b3JnYW5lT3JpZ2luYWxGaWxlUGF0aH3igKZgLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCBvcmdhbmVPcmlnaW5hbEpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICAgICAgICAgICAgICBvcmdhbmVPcmlnaW5hbEZpbGVQYXRoLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIGNvbnN0IG9yZ2FuZU9yaWdpbmFsOiBhbnkgPSB2YWxpZGF0ZVJhd0RhdGFcbiAgICAgICAgICAgICAgICA/IEFjdGV1cnNFdE9yZ2FuZXNSYXdDb252ZXJ0LnRvT3JnYW5lKG9yZ2FuZU9yaWdpbmFsSnNvbilcbiAgICAgICAgICAgICAgICA6IEpTT04ucGFyc2Uob3JnYW5lT3JpZ2luYWxKc29uKVxuICAgICAgICAgICAgICBjb25zdCBvcmdhbmUgPSBvcmdhbmVPcmlnaW5hbC5vcmdhbmVcbiAgICAgICAgICAgICAgY29uc3Qgb3JnYW5lUmVvcmdhbml6ZWRKc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgICAgICAgICBvcmdhbmVzUmVvcmdhbml6ZWREaXIsXG4gICAgICAgICAgICAgICAgb3JnYW5lLnVpZCArIFwiLmpzb25cIixcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKFxuICAgICAgICAgICAgICAgIG9yZ2FuZVJlb3JnYW5pemVkSnNvbkZpbGVQYXRoLFxuICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KG9yZ2FuZSwgbnVsbCwgMiksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY29tbWl0R2l0KGRhdGFzZXRSZW9yZ2FuaXplZERpciwgb3B0aW9ucylcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFnZW5kYXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgY2hvc2VuRGF0YXNldHMuYWdlbmRhcykge1xuICAgICAgY29uc3Qgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLFxuICAgICAgKVxuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgUmVvcmdhbml6aW5nICR7b3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aH1gKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBkYXRhc2V0TmFtZSA9IHBhdGguYmFzZW5hbWUoXG4gICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgIFwiLmpzb25cIixcbiAgICAgIClcbiAgICAgIGNsb25lR2l0KGdpdEdyb3VwVXJsLCBkYXRhc2V0TmFtZSwgZGF0YURpcilcblxuICAgICAgY29uc3QgZGF0YXNldFJlb3JnYW5pemVkRGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXROYW1lKVxuICAgICAgY2xlYXJEaXJlY3RvcnkoZGF0YXNldFJlb3JnYW5pemVkRGlyKVxuXG4gICAgICBzd2l0Y2ggKGRhdGFzZXQuc3RydWN0dXJlKSB7XG4gICAgICAgIGNhc2UgRGF0YXNldFN0cnVjdHVyZS5TaW5nbGVGaWxlOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKFxuICAgICAgICAgICAgICBvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxEYXRhOiBhbnkgPSB2YWxpZGF0ZVJhd0RhdGFcbiAgICAgICAgICAgICAgPyBBZ2VuZGFzUmF3Q29udmVydC50b0FnZW5kYXMob3JpZ2luYWxKc29uKVxuICAgICAgICAgICAgICA6IEpTT04ucGFyc2Uob3JpZ2luYWxKc29uKVxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJldW5pb24gb2Ygb3JpZ2luYWxEYXRhLnJldW5pb25zLnJldW5pb24pIHtcbiAgICAgICAgICAgICAgd3JpdGVSZW9yZ2FuaXplZEpzb24oXG4gICAgICAgICAgICAgICAgZGF0YXNldFJlb3JnYW5pemVkRGlyLFxuICAgICAgICAgICAgICAgIHJldW5pb24sXG4gICAgICAgICAgICAgICAgcGF0aEZyb21SZXVuaW9uVWlkLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlczpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJldW5pb25TcGxpdFBhdGggb2Ygd2Fsa0RpcihcbiAgICAgICAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgICAgICAgW1wicmV1bmlvblwiXSxcbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICAgICAgY29uc3QgcmV1bmlvbkZpbGVuYW1lID1cbiAgICAgICAgICAgICAgICByZXVuaW9uU3BsaXRQYXRoW3JldW5pb25TcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgICAgICAgaWYgKCFyZXVuaW9uRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc3QgcmV1bmlvbk9yaWdpbmFsRmlsZVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICAuLi5yZXVuaW9uU3BsaXRQYXRoLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIGlmIChvcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgICAgIGAgIFJlb3JnYW5pemluZyBcInJldW5pb25cIiBmaWxlOiAke3JldW5pb25PcmlnaW5hbEZpbGVQYXRofeKApmAsXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IHJldW5pb25PcmlnaW5hbEpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICAgICAgICAgICAgICByZXVuaW9uT3JpZ2luYWxGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBjb25zdCByZXVuaW9uT3JpZ2luYWw6IGFueSA9IHZhbGlkYXRlUmF3RGF0YVxuICAgICAgICAgICAgICAgID8gQWdlbmRhc1Jhd0NvbnZlcnQudG9SZXVuaW9uKHJldW5pb25PcmlnaW5hbEpzb24pXG4gICAgICAgICAgICAgICAgOiBKU09OLnBhcnNlKHJldW5pb25PcmlnaW5hbEpzb24pXG4gICAgICAgICAgICAgIGNvbnN0IHJldW5pb24gPSByZXVuaW9uT3JpZ2luYWwucmV1bmlvblxuICAgICAgICAgICAgICB3cml0ZVJlb3JnYW5pemVkSnNvbihcbiAgICAgICAgICAgICAgICBkYXRhc2V0UmVvcmdhbml6ZWREaXIsXG4gICAgICAgICAgICAgICAgcmV1bmlvbixcbiAgICAgICAgICAgICAgICBwYXRoRnJvbVJldW5pb25VaWQsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY29tbWl0R2l0KGRhdGFzZXRSZW9yZ2FuaXplZERpciwgb3B0aW9ucylcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFtZW5kZW1lbnRzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGNob3NlbkRhdGFzZXRzLmFtZW5kZW1lbnRzKSB7XG4gICAgICBjb25zdCBvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUsXG4gICAgICApXG4gICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBSZW9yZ2FuaXppbmcgJHtvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRofWApXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShcbiAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgXCIuanNvblwiLFxuICAgICAgKVxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuXG4gICAgICBjb25zdCBkYXRhc2V0UmVvcmdhbml6ZWREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldE5hbWUpXG4gICAgICBjbGVhckRpcmVjdG9yeShkYXRhc2V0UmVvcmdhbml6ZWREaXIpXG5cbiAgICAgIHN3aXRjaCAoZGF0YXNldC5zdHJ1Y3R1cmUpIHtcbiAgICAgICAgY2FzZSBEYXRhc2V0U3RydWN0dXJlLlNpbmdsZUZpbGU6XG4gICAgICAgICAge1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbERhdGE6IGFueSA9IHZhbGlkYXRlUmF3RGF0YVxuICAgICAgICAgICAgICA/IEFtZW5kZW1lbnRzUmF3Q29udmVydC50b0FtZW5kZW1lbnRzKG9yaWdpbmFsSnNvbilcbiAgICAgICAgICAgICAgOiBKU09OLnBhcnNlKG9yaWdpbmFsSnNvbilcblxuICAgICAgICAgICAgZm9yIChjb25zdCB0ZXh0ZUxlZ2lzbGF0aWYgb2Ygb3JpZ2luYWxEYXRhLnRleHRlc0V0QW1lbmRlbWVudHNcbiAgICAgICAgICAgICAgLnRleHRlbGVnKSB7XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgYW1lbmRlbWVudCBvZiB0ZXh0ZUxlZ2lzbGF0aWYuYW1lbmRlbWVudHMpIHtcbiAgICAgICAgICAgICAgICB3cml0ZUFtZW5kZW1lbnRSZW9yZ2FuaXplZEpzb24oXG4gICAgICAgICAgICAgICAgICBkYXRhc2V0UmVvcmdhbml6ZWREaXIsXG4gICAgICAgICAgICAgICAgICBhbWVuZGVtZW50LFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlIERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXM6XG4gICAgICAgICAge1xuICAgICAgICAgICAgZm9yIChjb25zdCBhbWVuZGVtZW50U3BsaXRQYXRoIG9mIHdhbGtEaXIoXG4gICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgICAgICApKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGFtZW5kZW1lbnRGaWxlbmFtZSA9XG4gICAgICAgICAgICAgICAgYW1lbmRlbWVudFNwbGl0UGF0aFthbWVuZGVtZW50U3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgICAgICAgIGlmICghYW1lbmRlbWVudEZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IGFtZW5kZW1lbnRPcmlnaW5hbEZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgICAgICAgICAgLi4uYW1lbmRlbWVudFNwbGl0UGF0aCxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgICAgICBgICBSZW9yZ2FuaXppbmcgXCJhbWVuZGVtZW50XCIgZmlsZTogJHthbWVuZGVtZW50T3JpZ2luYWxGaWxlUGF0aH3igKZgLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCBhbWVuZGVtZW50T3JpZ2luYWxKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgICAgICAgICAgICAgYW1lbmRlbWVudE9yaWdpbmFsRmlsZVBhdGgsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgY29uc3QgYW1lbmRlbWVudE9yaWdpbmFsOiBhbnkgPSB2YWxpZGF0ZVJhd0RhdGFcbiAgICAgICAgICAgICAgICA/IEFtZW5kZW1lbnRzUmF3Q29udmVydC50b0FtZW5kZW1lbnRXcmFwcGVyKFxuICAgICAgICAgICAgICAgICAgICBhbWVuZGVtZW50T3JpZ2luYWxKc29uLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogSlNPTi5wYXJzZShhbWVuZGVtZW50T3JpZ2luYWxKc29uKVxuICAgICAgICAgICAgICBjb25zdCBhbWVuZGVtZW50ID0gYW1lbmRlbWVudE9yaWdpbmFsLmFtZW5kZW1lbnRcbiAgICAgICAgICAgICAgd3JpdGVBbWVuZGVtZW50UmVvcmdhbml6ZWRKc29uKGRhdGFzZXRSZW9yZ2FuaXplZERpciwgYW1lbmRlbWVudClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY29tbWl0R2l0KGRhdGFzZXRSZW9yZ2FuaXplZERpciwgb3B0aW9ucylcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgY2hvc2VuRGF0YXNldHMuZG9zc2llcnNMZWdpc2xhdGlmcykge1xuICAgICAgY29uc3Qgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLFxuICAgICAgKVxuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgUmVvcmdhbml6aW5nICR7b3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aH1gKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBkYXRhc2V0TmFtZSA9IHBhdGguYmFzZW5hbWUoXG4gICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgIFwiLmpzb25cIixcbiAgICAgIClcbiAgICAgIGNsb25lR2l0KGdpdEdyb3VwVXJsLCBkYXRhc2V0TmFtZSwgZGF0YURpcilcblxuICAgICAgY29uc3QgZGF0YXNldFJlb3JnYW5pemVkRGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXROYW1lKVxuICAgICAgY2xlYXJEaXJlY3RvcnkoZGF0YXNldFJlb3JnYW5pemVkRGlyKVxuXG4gICAgICBjb25zdCBkb2N1bWVudHNEaXIgPSBwYXRoLmpvaW4oZGF0YXNldFJlb3JnYW5pemVkRGlyLCBcImRvY3VtZW50c1wiKVxuICAgICAgZnMubWtkaXJTeW5jKGRvY3VtZW50c0RpcilcbiAgICAgIGNvbnN0IGRvc3NpZXJzRGlyID0gcGF0aC5qb2luKGRhdGFzZXRSZW9yZ2FuaXplZERpciwgXCJkb3NzaWVyc1wiKVxuICAgICAgZnMubWtkaXJTeW5jKGRvc3NpZXJzRGlyKVxuXG4gICAgICBzd2l0Y2ggKGRhdGFzZXQuc3RydWN0dXJlKSB7XG4gICAgICAgIGNhc2UgRGF0YXNldFN0cnVjdHVyZS5TaW5nbGVGaWxlOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKFxuICAgICAgICAgICAgICBvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxEYXRhOiBhbnkgPSB2YWxpZGF0ZVJhd0RhdGFcbiAgICAgICAgICAgICAgPyBEb3NzaWVyc0xlZ2lzbGF0aWZzUmF3Q29udmVydC50b0Rvc3NpZXJzTGVnaXNsYXRpZnMoXG4gICAgICAgICAgICAgICAgICBvcmlnaW5hbEpzb24sXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA6IEpTT04ucGFyc2Uob3JpZ2luYWxKc29uKVxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRvY3VtZW50IG9mIG9yaWdpbmFsRGF0YS5leHBvcnQudGV4dGVzTGVnaXNsYXRpZnNcbiAgICAgICAgICAgICAgLmRvY3VtZW50KSB7XG4gICAgICAgICAgICAgIHdyaXRlUmVvcmdhbml6ZWRKc29uKGRvY3VtZW50c0RpciwgZG9jdW1lbnQsIHBhdGhGcm9tRG9jdW1lbnRVaWQpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgeyBkb3NzaWVyUGFybGVtZW50YWlyZSB9IG9mIG9yaWdpbmFsRGF0YS5leHBvcnRcbiAgICAgICAgICAgICAgLmRvc3NpZXJzTGVnaXNsYXRpZnMuZG9zc2llcikge1xuICAgICAgICAgICAgICB3cml0ZVJlb3JnYW5pemVkSnNvbihcbiAgICAgICAgICAgICAgICBkb3NzaWVyc0RpcixcbiAgICAgICAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZSxcbiAgICAgICAgICAgICAgICBwYXRoRnJvbURvc3NpZXJQYXJsZW1lbnRhaXJlVWlkLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlczpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRvY3VtZW50U3BsaXRQYXRoIG9mIHdhbGtEaXIoXG4gICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgICAgICAgIFtcImRvY3VtZW50XCJdLFxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICBjb25zdCBkb2N1bWVudEZpbGVuYW1lID1cbiAgICAgICAgICAgICAgICBkb2N1bWVudFNwbGl0UGF0aFtkb2N1bWVudFNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICAgICAgICBpZiAoIWRvY3VtZW50RmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc3QgZG9jdW1lbnRPcmlnaW5hbEZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgICAgICAgICAgLi4uZG9jdW1lbnRTcGxpdFBhdGgsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgICAgYCAgUmVvcmdhbml6aW5nIFwiZG9jdW1lbnRcIiBmaWxlOiAke2RvY3VtZW50T3JpZ2luYWxGaWxlUGF0aH3igKZgLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCBkb2N1bWVudE9yaWdpbmFsSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKFxuICAgICAgICAgICAgICAgIGRvY3VtZW50T3JpZ2luYWxGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBjb25zdCBkb2N1bWVudE9yaWdpbmFsOiBhbnkgPSB2YWxpZGF0ZVJhd0RhdGFcbiAgICAgICAgICAgICAgICA/IERvc3NpZXJzTGVnaXNsYXRpZnNSYXdDb252ZXJ0LnRvRG9jdW1lbnQoZG9jdW1lbnRPcmlnaW5hbEpzb24pXG4gICAgICAgICAgICAgICAgOiBKU09OLnBhcnNlKGRvY3VtZW50T3JpZ2luYWxKc29uKVxuICAgICAgICAgICAgICBjb25zdCBkb2N1bWVudCA9IGRvY3VtZW50T3JpZ2luYWwuZG9jdW1lbnRcbiAgICAgICAgICAgICAgd3JpdGVSZW9yZ2FuaXplZEpzb24oZG9jdW1lbnRzRGlyLCBkb2N1bWVudCwgcGF0aEZyb21Eb2N1bWVudFVpZClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZVNwbGl0UGF0aCBvZiB3YWxrRGlyKFxuICAgICAgICAgICAgICBvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoLFxuICAgICAgICAgICAgICBbXCJkb3NzaWVyUGFybGVtZW50YWlyZVwiXSxcbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICAgICAgY29uc3QgZG9zc2llclBhcmxlbWVudGFpcmVGaWxlbmFtZSA9XG4gICAgICAgICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVTcGxpdFBhdGhbXG4gICAgICAgICAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZVNwbGl0UGF0aC5sZW5ndGggLSAxXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICBpZiAoIWRvc3NpZXJQYXJsZW1lbnRhaXJlRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc3QgZG9zc2llclBhcmxlbWVudGFpcmVPcmlnaW5hbEZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgICAgICAgICAgLi4uZG9zc2llclBhcmxlbWVudGFpcmVTcGxpdFBhdGgsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgICAgYCAgUmVvcmdhbml6aW5nIFwiZG9zc2llclBhcmxlbWVudGFpcmVcIiBmaWxlOiAke2Rvc3NpZXJQYXJsZW1lbnRhaXJlT3JpZ2luYWxGaWxlUGF0aH3igKZgLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZU9yaWdpbmFsSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKFxuICAgICAgICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlT3JpZ2luYWxGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZU9yaWdpbmFsOiBhbnkgPSB2YWxpZGF0ZVJhd0RhdGFcbiAgICAgICAgICAgICAgICA/IERvc3NpZXJzTGVnaXNsYXRpZnNSYXdDb252ZXJ0LnRvRG9zc2llclBhcmxlbWVudGFpcmUoXG4gICAgICAgICAgICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlT3JpZ2luYWxKc29uLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogSlNPTi5wYXJzZShkb3NzaWVyUGFybGVtZW50YWlyZU9yaWdpbmFsSnNvbilcbiAgICAgICAgICAgICAgY29uc3QgZG9zc2llclBhcmxlbWVudGFpcmUgPVxuICAgICAgICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlT3JpZ2luYWwuZG9zc2llclBhcmxlbWVudGFpcmVcbiAgICAgICAgICAgICAgd3JpdGVSZW9yZ2FuaXplZEpzb24oXG4gICAgICAgICAgICAgICAgZG9zc2llcnNEaXIsXG4gICAgICAgICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmUsXG4gICAgICAgICAgICAgICAgcGF0aEZyb21Eb3NzaWVyUGFybGVtZW50YWlyZVVpZCxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjb21taXRHaXQoZGF0YXNldFJlb3JnYW5pemVkRGlyLCBvcHRpb25zKVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuU2NydXRpbnMpIHtcbiAgICBmb3IgKGxldCBkYXRhc2V0IG9mIGNob3NlbkRhdGFzZXRzLnNjcnV0aW5zKSB7XG4gICAgICBjb25zdCBvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUsXG4gICAgICApXG4gICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBSZW9yZ2FuaXppbmcgJHtvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRofWApXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShcbiAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgXCIuanNvblwiLFxuICAgICAgKVxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuXG4gICAgICBjb25zdCBkYXRhc2V0UmVvcmdhbml6ZWREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldE5hbWUpXG4gICAgICBjbGVhckRpcmVjdG9yeShkYXRhc2V0UmVvcmdhbml6ZWREaXIpXG5cbiAgICAgIHN3aXRjaCAoZGF0YXNldC5zdHJ1Y3R1cmUpIHtcbiAgICAgICAgY2FzZSBEYXRhc2V0U3RydWN0dXJlLlNpbmdsZUZpbGU6XG4gICAgICAgICAge1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbERhdGE6IGFueSA9IHZhbGlkYXRlUmF3RGF0YVxuICAgICAgICAgICAgICA/IFNjcnV0aW5zUmF3Q29udmVydC50b1NjcnV0aW5zKG9yaWdpbmFsSnNvbilcbiAgICAgICAgICAgICAgOiBKU09OLnBhcnNlKG9yaWdpbmFsSnNvbilcblxuICAgICAgICAgICAgZm9yIChjb25zdCBzY3J1dGluIG9mIG9yaWdpbmFsRGF0YS5zY3J1dGlucy5zY3J1dGluKSB7XG4gICAgICAgICAgICAgIHdyaXRlUmVvcmdhbml6ZWRKc29uKFxuICAgICAgICAgICAgICAgIGRhdGFzZXRSZW9yZ2FuaXplZERpcixcbiAgICAgICAgICAgICAgICBzY3J1dGluLFxuICAgICAgICAgICAgICAgIHBhdGhGcm9tU2NydXRpblVpZCxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlIERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXM6XG4gICAgICAgICAge1xuICAgICAgICAgICAgZm9yIChjb25zdCBzY3J1dGluU3BsaXRQYXRoIG9mIHdhbGtEaXIoXG4gICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgICAgICApKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHNjcnV0aW5GaWxlbmFtZSA9XG4gICAgICAgICAgICAgICAgc2NydXRpblNwbGl0UGF0aFtzY3J1dGluU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgICAgICAgIGlmICghc2NydXRpbkZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IHNjcnV0aW5PcmlnaW5hbEZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgICAgICAgICAgLi4uc2NydXRpblNwbGl0UGF0aCxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgICAgICBgICBSZW9yZ2FuaXppbmcgXCJzY3J1dGluXCIgZmlsZTogJHtzY3J1dGluT3JpZ2luYWxGaWxlUGF0aH3igKZgLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCBzY3J1dGluT3JpZ2luYWxKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgICAgICAgICAgICAgc2NydXRpbk9yaWdpbmFsRmlsZVBhdGgsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgY29uc3Qgc2NydXRpbk9yaWdpbmFsOiBhbnkgPSB2YWxpZGF0ZVJhd0RhdGFcbiAgICAgICAgICAgICAgICA/IFNjcnV0aW5zUmF3Q29udmVydC50b1NjcnV0aW5XcmFwcGVyKHNjcnV0aW5PcmlnaW5hbEpzb24pXG4gICAgICAgICAgICAgICAgOiBKU09OLnBhcnNlKHNjcnV0aW5PcmlnaW5hbEpzb24pXG4gICAgICAgICAgICAgIGNvbnN0IHNjcnV0aW4gPSBzY3J1dGluT3JpZ2luYWwuc2NydXRpblxuICAgICAgICAgICAgICB3cml0ZVJlb3JnYW5pemVkSnNvbihcbiAgICAgICAgICAgICAgICBkYXRhc2V0UmVvcmdhbml6ZWREaXIsXG4gICAgICAgICAgICAgICAgc2NydXRpbixcbiAgICAgICAgICAgICAgICBwYXRoRnJvbVNjcnV0aW5VaWQsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY29tbWl0R2l0KGRhdGFzZXRSZW9yZ2FuaXplZERpciwgb3B0aW9ucylcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLlF1ZXN0aW9ucykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5xdWVzdGlvbnMpIHtcbiAgICAgIGNvbnN0IG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZSxcbiAgICAgIClcbiAgICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgICAgY29uc29sZS5sb2coYFJlb3JnYW5pemluZyAke29yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGh9YClcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGF0YXNldE5hbWUgPSBwYXRoLmJhc2VuYW1lKFxuICAgICAgICBvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoLFxuICAgICAgICBcIi5qc29uXCIsXG4gICAgICApXG4gICAgICBjbG9uZUdpdChnaXRHcm91cFVybCwgZGF0YXNldE5hbWUsIGRhdGFEaXIpXG5cbiAgICAgIGNvbnN0IGRhdGFzZXRSZW9yZ2FuaXplZERpciA9IHBhdGguam9pbihkYXRhRGlyLCBkYXRhc2V0TmFtZSlcbiAgICAgIGNsZWFyRGlyZWN0b3J5KGRhdGFzZXRSZW9yZ2FuaXplZERpcilcblxuICAgICAgc3dpdGNoIChkYXRhc2V0LnN0cnVjdHVyZSkge1xuICAgICAgICBjYXNlIERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXM6XG4gICAgICAgICAge1xuICAgICAgICAgICAgZm9yIChjb25zdCBxdWVzdGlvblNwbGl0UGF0aCBvZiB3YWxrRGlyKFxuICAgICAgICAgICAgICBvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoLFxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICBjb25zdCBxdWVzdGlvbkZpbGVuYW1lID1cbiAgICAgICAgICAgICAgICBxdWVzdGlvblNwbGl0UGF0aFtxdWVzdGlvblNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICAgICAgICBpZiAoIXF1ZXN0aW9uRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc3QgcXVlc3Rpb25PcmlnaW5hbEZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgICAgICAgICAgLi4ucXVlc3Rpb25TcGxpdFBhdGgsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgICAgYCAgUmVvcmdhbml6aW5nIFwicXVlc3Rpb25cIiBmaWxlOiAke3F1ZXN0aW9uT3JpZ2luYWxGaWxlUGF0aH3igKZgLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCBxdWVzdGlvbk9yaWdpbmFsSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKFxuICAgICAgICAgICAgICAgIHF1ZXN0aW9uT3JpZ2luYWxGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgIGNvbnN0IHF1ZXN0aW9uT3JpZ2luYWw6IGFueSA9IHZhbGlkYXRlUmF3RGF0YVxuICAgICAgICAgICAgICAgID8gUXVlc3Rpb25zUmF3Q29udmVydC50b1F1ZXN0aW9uV3JhcHBlcihxdWVzdGlvbk9yaWdpbmFsSnNvbilcbiAgICAgICAgICAgICAgICA6IEpTT04ucGFyc2UocXVlc3Rpb25PcmlnaW5hbEpzb24pXG4gICAgICAgICAgICAgIGNvbnN0IHF1ZXN0aW9uID0gcXVlc3Rpb25PcmlnaW5hbC5xdWVzdGlvblxuICAgICAgICAgICAgICB3cml0ZVJlb3JnYW5pemVkSnNvbihcbiAgICAgICAgICAgICAgICBkYXRhc2V0UmVvcmdhbml6ZWREaXIsXG4gICAgICAgICAgICAgICAgcXVlc3Rpb24sXG4gICAgICAgICAgICAgICAgcGF0aEZyb21RdWVzdGlvblVpZCxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjb21taXRHaXQoZGF0YXNldFJlb3JnYW5pemVkRGlyLCBvcHRpb25zKVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQ29tcHRlc1JlbmR1c1NlYW5jZXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuY29tcHRlc1JlbmR1c1NlYW5jZXMpIHtcbiAgICAgIGNvbnN0IG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZSxcbiAgICAgIClcbiAgICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgICAgY29uc29sZS5sb2coYFJlb3JnYW5pemluZyAke29yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGh9YClcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGF0YXNldE5hbWUgPSBwYXRoLmJhc2VuYW1lKG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsIFwiLnhtbFwiKVxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuXG4gICAgICBjb25zdCBkYXRhc2V0UmVvcmdhbml6ZWREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldE5hbWUpXG4gICAgICBjbGVhckRpcmVjdG9yeShkYXRhc2V0UmVvcmdhbml6ZWREaXIpXG5cbiAgICAgIHN3aXRjaCAoZGF0YXNldC5zdHJ1Y3R1cmUpIHtcbiAgICAgICAgY2FzZSBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY29tcHRlUmVuZHVTZWFuY2VTcGxpdFBhdGggb2Ygd2Fsa0RpcihcbiAgICAgICAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICAgICAgY29uc3QgY29tcHRlUmVuZHVTZWFuY2VGaWxlbmFtZSA9XG4gICAgICAgICAgICAgICAgY29tcHRlUmVuZHVTZWFuY2VTcGxpdFBhdGhbXG4gICAgICAgICAgICAgICAgICBjb21wdGVSZW5kdVNlYW5jZVNwbGl0UGF0aC5sZW5ndGggLSAxXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICBpZiAoIWNvbXB0ZVJlbmR1U2VhbmNlRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc3QgY29tcHRlUmVuZHVTZWFuY2VPcmlnaW5hbEZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgICAgICAgICAgLi4uY29tcHRlUmVuZHVTZWFuY2VTcGxpdFBhdGgsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgICAgYCAgUmVvcmdhbml6aW5nIFwiY29tcHRlUmVuZHVTZWFuY2VcIiBmaWxlOiAke2NvbXB0ZVJlbmR1U2VhbmNlT3JpZ2luYWxGaWxlUGF0aH3igKZgLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCBjb21wdGVSZW5kdVNlYW5jZU9yaWdpbmFsSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKFxuICAgICAgICAgICAgICAgIGNvbXB0ZVJlbmR1U2VhbmNlT3JpZ2luYWxGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBjb25zdCBjb21wdGVSZW5kdVNlYW5jZU9yaWdpbmFsOiBhbnkgPSB2YWxpZGF0ZVJhd0RhdGFcbiAgICAgICAgICAgICAgICA/IENvbXB0ZXNSZW5kdXNSYXdDb252ZXJ0LnRvQ29tcHRlUmVuZHVXcmFwcGVyKFxuICAgICAgICAgICAgICAgICAgICBjb21wdGVSZW5kdVNlYW5jZU9yaWdpbmFsSnNvbixcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IEpTT04ucGFyc2UoY29tcHRlUmVuZHVTZWFuY2VPcmlnaW5hbEpzb24pXG5cbiAgICAgICAgICAgICAgY29uc3QgY29tcHRlUmVuZHVTZWFuY2UgPSBjb21wdGVSZW5kdVNlYW5jZU9yaWdpbmFsLmNvbXB0ZVJlbmR1XG4gICAgICAgICAgICAgIHdyaXRlUmVvcmdhbml6ZWRKc29uKFxuICAgICAgICAgICAgICAgIGRhdGFzZXRSZW9yZ2FuaXplZERpcixcbiAgICAgICAgICAgICAgICBjb21wdGVSZW5kdVNlYW5jZSxcbiAgICAgICAgICAgICAgICBwYXRoRnJvbUNvbXB0ZVJlbmR1VWlkLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNvbW1pdEdpdChkYXRhc2V0UmVvcmdhbml6ZWREaXIsIG9wdGlvbnMpXG4gICAgfVxuICB9XG5cbiAgLy8gUmVzdG9yZSBzdGFuZGFyZCBjb252ZXJzaW9uIG9mIGRhdGVzIHRvIEpTT04uXG4gIERhdGUucHJvdG90eXBlLnRvSlNPTiA9IGV4aXN0aW5nRGF0ZVRvSnNvblxuXG4gIHJldHVybiBleGl0Q29kZVxufVxuXG5mdW5jdGlvbiB3cml0ZUFtZW5kZW1lbnRSZW9yZ2FuaXplZEpzb24oXG4gIGRhdGFzZXRSZW9yZ2FuaXplZERpcjogc3RyaW5nLFxuICBhbWVuZGVtZW50OiB7XG4gICAgdWlkOiBzdHJpbmdcbiAgICB0ZXh0ZUxlZ2lzbGF0aWZSZWY6IHN0cmluZ1xuICB9LFxuKTogdm9pZCB7XG4gIGNvbnN0IHVpZFRleHRlTGVnaXNsYXRpZiA9IGFtZW5kZW1lbnQudGV4dGVMZWdpc2xhdGlmUmVmXG4gIGFzc2VydC5ub3RTdHJpY3RFcXVhbCh1aWRUZXh0ZUxlZ2lzbGF0aWYsIHVuZGVmaW5lZClcbiAgY29uc3QgdGV4dGVMZWdpc2xhdGlmRGlyID0gcGF0aC5qb2luKFxuICAgIGRhdGFzZXRSZW9yZ2FuaXplZERpcixcbiAgICB1aWRUZXh0ZUxlZ2lzbGF0aWYsXG4gIClcbiAgZnMuZW5zdXJlRGlyU3luYyh0ZXh0ZUxlZ2lzbGF0aWZEaXIpXG4gIGNvbnN0IHJlb3JnYW5pemVkSnNvbkZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgIHRleHRlTGVnaXNsYXRpZkRpcixcbiAgICBhbWVuZGVtZW50LnVpZCArIFwiLmpzb25cIixcbiAgKVxuICBmcy53cml0ZUZpbGVTeW5jKFxuICAgIHJlb3JnYW5pemVkSnNvbkZpbGVQYXRoLFxuICAgIEpTT04uc3RyaW5naWZ5KGFtZW5kZW1lbnQsIG51bGwsIDIpLFxuICAgIHtcbiAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICB9LFxuICApXG59XG5cbmZ1bmN0aW9uIHdyaXRlUmVvcmdhbml6ZWRKc29uPFQgZXh0ZW5kcyB7IHVpZDogc3RyaW5nIH0+KFxuICBkaXI6IHN0cmluZyxcbiAgb2JqOiBULFxuICBwYXRoRnJvbVVpZDogKGRpcjogc3RyaW5nLCB1aWQ6IHN0cmluZykgPT4gc3RyaW5nLFxuKTogdm9pZCB7XG4gIGNvbnN0IGJhc2VuYW1lID0gcGF0aEZyb21VaWQoZGlyLCBvYmoudWlkKVxuICBmcy53cml0ZUZpbGVTeW5jKGAke2Jhc2VuYW1lfS5qc29uYCwgSlNPTi5zdHJpbmdpZnkob2JqLCBudWxsLCAyKSwge1xuICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgfSlcbn1cblxuZnVuY3Rpb24gbWFpbihhcmd2OiBhbnkpOiBudW1iZXIge1xuICBjb25zdCBvcHRpb25zID0gcGFyc2VBcmdzKGFyZ3YpXG4gIHJldHVybiByZW9yZ2FuaXplRGF0YShvcHRpb25zKVxufVxuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbmlmIChwcm9jZXNzLmFyZ3ZbMV0uZW5kc1dpdGgoXCJyZW9yZ2FuaXplX2RhdGEudHNcIikpXG4gIHByb2Nlc3MuZXhpdChtYWluKHByb2Nlc3MuYXJndikpXG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sTUFBTSxRQUFRO0FBQzNCLE9BQU9DLGVBQWUsTUFBTSxtQkFBbUI7QUFDL0MsT0FBT0MsRUFBRSxNQUFNLFVBQVU7QUFDekIsT0FBT0MsSUFBSSxNQUFNLE1BQU07QUFBQSxTQUVyQkMsUUFBUSxFQUNSQyxnQkFBZ0IsRUFDaEJDLGVBQWUsRUFDZkMsa0JBQWtCLEVBQ2xCQyxtQkFBbUI7QUFBQSxTQUVaQyxrQkFBa0IsRUFBRUMsaUJBQWlCO0FBQUEsT0FDdkMsS0FBS0MsR0FBRztBQUFBLFNBQ05DLE9BQU87QUFBQSxTQUVkQyxzQkFBc0IsRUFDdEJDLG1CQUFtQixFQUNuQkMsK0JBQStCLEVBQy9CQyxtQkFBbUIsRUFDbkJDLGtCQUFrQixFQUNsQkMsa0JBQWtCO0FBQUEsU0FFWEMsT0FBTyxJQUFJQywwQkFBMEI7QUFBQSxTQUNyQ0QsT0FBTyxJQUFJRSxpQkFBaUI7QUFBQSxTQUM1QkYsT0FBTyxJQUFJRyxxQkFBcUI7QUFBQSxTQUNoQ0gsT0FBTyxJQUFJSSw2QkFBNkI7QUFBQSxTQUN4Q0osT0FBTyxJQUFJSyxrQkFBa0I7QUFBQSxTQUM3QkwsT0FBTyxJQUFJTSxtQkFBbUI7QUFBQSxTQUM5Qk4sT0FBTyxJQUFJTyx1QkFBdUI7QUFBQSxTQUV6Q0MsV0FBVyxFQUNYQyxZQUFZLEVBQ1pDLGdCQUFnQixFQUNoQkMsaUJBQWlCLEVBQ2pCQyxZQUFZLEVBQ1pDLFlBQVksRUFDWkMsYUFBYSxFQUNiQyxvQkFBb0IsRUFDcEJDLFVBQVU7QUFHWixTQUFTQyxTQUFTQSxDQUFDQyxJQUFjLEVBQU87RUFDdEMsTUFBTUMsa0JBQWtCLEdBQUcsQ0FDekJYLFdBQVcsRUFDWEMsWUFBWSxFQUNaQyxnQkFBZ0IsRUFDaEJDLGlCQUFpQixFQUNqQkMsWUFBWSxFQUNaQyxZQUFZLEVBQ1pDLGFBQWEsRUFDYkMsb0JBQW9CLEVBQ3BCQyxVQUFVLEVB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QUFDQyxTQUFTLENBQUNDLE1BQU0sR0FBR3BELGtCQUFrQjtFQUUxQyxPQUFPcUQsUUFBUTtBQUNqQjtBQUVBLFNBQVNnSCw4QkFBOEJBLENBQ3JDdEcscUJBQTZCLEVBQzdCcUcsVUFHQyxFQUNLO0VBQ04sTUFBTTBELGtCQUFrQixHQUFHMUQsVUFBVSxDQUFDMkQsa0JBQWtCO0VBQ3hEeE8sTUFBTSxDQUFDeU8sY0FBYyxDQUFDRixrQkFBa0IsRUFBRTdHLFNBQVMsQ0FBQztFQUNwRCxNQUFNZ0gsa0JBQWtCLEdBQUd2TyxJQUFJLENBQUNpRCxJQUFJLENBQ2xDb0IscUJBQXFCLEVBQ3JCK0osa0JBQ0YsQ0FBQztFQUNEck8sRUFBRSxDQUFDNkMsYUFBYSxDQUFDMkwsa0JBQWtCLENBQUM7RUFDcEMsTUFBTXJJLHVCQUF1QixHQUFHbEcsSUFBSSxDQUFDaUQsSUFBSSxDQUN2Q3NMLGtCQUFrQixFQUNsQjdELFVBQVUsQ0FBQ3ZFLEdBQUcsR0FBRyxPQUNuQixDQUFDO0VBQ0RwRyxFQUFFLENBQUNxRyxhQUFhLENBQ2RGLHVCQUF1QixFQUN2QkwsSUFBSSxDQUFDUSxTQUFTLENBQUNxRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUNuQztJQUNFaEYsUUFBUSxFQUFFO0VBQ1osQ0FDRixDQUFDO0FBQ0g7QUFFQSxTQUFTbUUsb0JBQW9CQSxDQUMzQjJFLEdBQVcsRUFDWEMsR0FBTSxFQUNOQyxXQUFpRCxFQUMzQztFQUNOLE1BQU0xSixRQUFRLEdBQUcwSixXQUFXLENBQUNGLEdBQUcsRUFBRUMsR0FBRyxDQUFDdEksR0FBRyxDQUFDO0VBQzFDcEcsRUFBRSxDQUFDcUcsYUFBYSxDQUFDLEdBQUdwQixRQUFRLE9BQU8sRUFBRWEsSUFBSSxDQUFDUSxTQUFTLENBQUNvSSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO0lBQ2pFL0ksUUFBUSxFQUFFO0VBQ1osQ0FBQyxDQUFDO0FBQ0o7QUFFQSxTQUFTaUosSUFBSUEsQ0FBQ3pNLElBQVMsRUFBVTtFQUMvQixNQUFNTyxPQUFPLEdBQUdSLFNBQVMsQ0FBQ0MsSUFBSSxDQUFDO0VBQy9CLE9BQU9xQixjQUFjLENBQUNkLE9BQU8sQ0FBQztBQUNoQzs7QUFFQTtBQUNBLElBQUltTSxPQUFPLENBQUMxTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM0RSxRQUFRLENBQUMsb0JBQW9CLENBQUMsRUFDaEQ4SCxPQUFPLENBQUNDLElBQUksQ0FBQ0YsSUFBSSxDQUFDQyxPQUFPLENBQUMxTSxJQUFJLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
517
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJjb21tYW5kTGluZUFyZ3MiLCJmcyIsInBhdGgiLCJkYXRhc2V0cyIsIkRhdGFzZXRTdHJ1Y3R1cmUiLCJFbmFibGVkRGF0YXNldHMiLCJnZXRFbmFibGVkRGF0YXNldHMiLCJmaWx0ZXJCeUxlZ2lzbGF0dXJlIiwiZXhpc3RpbmdEYXRlVG9Kc29uIiwicGF0Y2hlZERhdGVUb0pzb24iLCJnaXQiLCJ3YWxrRGlyIiwicGF0aEZyb21Db21wdGVSZW5kdVVpZCIsInBhdGhGcm9tRG9jdW1lbnRVaWQiLCJwYXRoRnJvbURvc3NpZXJQYXJsZW1lbnRhaXJlVWlkIiwicGF0aEZyb21RdWVzdGlvblVpZCIsInBhdGhGcm9tUmV1bmlvblVpZCIsInBhdGhGcm9tU2NydXRpblVpZCIsIkNvbnZlcnQiLCJBY3RldXJzRXRPcmdhbmVzUmF3Q29udmVydCIsIkFnZW5kYXNSYXdDb252ZXJ0IiwiQW1lbmRlbWVudHNSYXdDb252ZXJ0IiwiRG9zc2llcnNMZWdpc2xhdGlmc1Jhd0NvbnZlcnQiLCJTY3J1dGluc1Jhd0NvbnZlcnQiLCJRdWVzdGlvbnNSYXdDb252ZXJ0IiwiQ29tcHRlc1JlbmR1c1Jhd0NvbnZlcnQiLCJjbG9uZU9wdGlvbiIsImNvbW1pdE9wdGlvbiIsImNhdGVnb3JpZXNPcHRpb24iLCJsZWdpc2xhdHVyZU9wdGlvbiIsInJlbW90ZU9wdGlvbiIsInNpbGVudE9wdGlvbiIsInZlcmJvc2VPcHRpb24iLCJkYXRhRGlyRGVmYXVsdE9wdGlvbiIsInB1bGxPcHRpb24iLCJwYXJzZUFyZ3MiLCJhcmd2Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiYWxpYXMiLCJoZWxwIiwibmFtZSIsInR5cGUiLCJCb29sZWFuIiwib3B0aW9ucyIsImNsZWFyRGlyZWN0b3J5IiwiZGlyUGF0aCIsImVuc3VyZURpclN5bmMiLCJmaWxlbmFtZSIsInJlYWRkaXJTeW5jIiwic3RhcnRzV2l0aCIsInJlbW92ZVN5bmMiLCJqb2luIiwiY2xvbmVHaXQiLCJnaXRHcm91cFVybCIsImRhdGFzZXROYW1lIiwiZGF0YURpciIsImNsb25lIiwicmVvcmdhbml6ZURhdGEiLCJEYXRlIiwicHJvdG90eXBlIiwidG9KU09OIiwiZXhpdENvZGUiLCJjb21taXQiLCJ0cmltIiwicmVwbGFjZSIsInZhbGlkYXRlUmF3RGF0YSIsImVuYWJsZWREYXRhc2V0cyIsImNhdGVnb3JpZXMiLCJjaG9zZW5EYXRhc2V0cyIsImxlZ2lzbGF0dXJlIiwiY29tbWl0R2l0IiwiZGF0YXNldFJlb3JnYW5pemVkRGlyIiwiZXJyb3JDb2RlIiwiY29tbWl0QW5kUHVzaCIsInJlbW90ZSIsIkFjdGV1cnNFdE9yZ2FuZXMiLCJkYXRhc2V0IiwiYWN0ZXVyc0V0T3JnYW5lcyIsIm9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgiLCJzaWxlbnQiLCJjb25zb2xlIiwibG9nIiwiYmFzZW5hbWUiLCJwdWxsIiwicmVzZXRBbmRQdWxsIiwiYWN0ZXVyc1Jlb3JnYW5pemVkRGlyIiwibWtkaXJTeW5jIiwib3JnYW5lc1Jlb3JnYW5pemVkRGlyIiwic3RydWN0dXJlIiwiU2luZ2xlRmlsZSIsIm9yaWdpbmFsSnNvbiIsInJlYWRGaWxlU3luYyIsImVuY29kaW5nIiwib3JpZ2luYWxEYXRhIiwidG9BY3RldXJzRXRPcmdhbmVzIiwiSlNPTiIsInBhcnNlIiwiYWN0ZXVyIiwiZXhwb3J0IiwiYWN0ZXVycyIsInJlb3JnYW5pemVkSnNvbkZpbGVQYXRoIiwidWlkIiwid3JpdGVGaWxlU3luYyIsInN0cmluZ2lmeSIsIm9yZ2FuZSIsIm9yZ2FuZXMiLCJTZWdtZW50ZWRGaWxlcyIsImRlcG9ydHNCeUFjdGV1clVpZCIsImV4aXN0c1N5bmMiLCJkZXBvcnRTcGxpdFBhdGgiLCJkZXBvcnRGaWxlbmFtZSIsImxlbmd0aCIsImVuZHNXaXRoIiwiZGVwb3J0T3JpZ2luYWxGaWxlUGF0aCIsInZlcmJvc2UiLCJkZXBvcnRPcmlnaW5hbEpzb24iLCJkZXBvcnRPcmlnaW5hbCIsInRvRGVwb3J0IiwiZGVwb3J0IiwiZGVwb3J0cyIsImFjdGV1clJlZiIsInVuZGVmaW5lZCIsInB1c2giLCJPYmplY3QiLCJ2YWx1ZXMiLCJzb3J0IiwiYSIsImIiLCJsb2NhbGVDb21wYXJlIiwibWFuZGF0c0J5QWN0ZXVyVWlkIiwibWFuZGF0U3BsaXRQYXRoIiwibWFuZGF0RmlsZW5hbWUiLCJtYW5kYXRPcmlnaW5hbEZpbGVQYXRoIiwibWFuZGF0T3JpZ2luYWxKc29uIiwibWFuZGF0T3JpZ2luYWwiLCJ0b01hbmRhdFdyYXBwZXIiLCJtYW5kYXQiLCJtYW5kYXRzIiwiYWN0ZXVyU3BsaXRQYXRoIiwiYWN0ZXVyRmlsZW5hbWUiLCJhY3RldXJPcmlnaW5hbEZpbGVQYXRoIiwiYWN0ZXVyT3JpZ2luYWxKc29uIiwiYWN0ZXVyT3JpZ2luYWwiLCJ0b0FjdGV1ciIsImFjdGV1clVpZCIsInN0cmljdEVxdWFsIiwiYWN0ZXVyUmVvcmdhbml6ZWRKc29uRmlsZVBhdGgiLCJvcmdhbmVTcGxpdFBhdGgiLCJvcmdhbmVGaWxlbmFtZSIsIm9yZ2FuZU9yaWdpbmFsRmlsZVBhdGgiLCJvcmdhbmVPcmlnaW5hbEpzb24iLCJvcmdhbmVPcmlnaW5hbCIsInRvT3JnYW5lIiwib3JnYW5lUmVvcmdhbml6ZWRKc29uRmlsZVBhdGgiLCJBZ2VuZGFzIiwiYWdlbmRhcyIsInRvQWdlbmRhcyIsInJldW5pb24iLCJyZXVuaW9ucyIsIndyaXRlUmVvcmdhbml6ZWRKc29uIiwicmV1bmlvblNwbGl0UGF0aCIsInJldW5pb25GaWxlbmFtZSIsInJldW5pb25PcmlnaW5hbEZpbGVQYXRoIiwicmV1bmlvbk9yaWdpbmFsSnNvbiIsInJldW5pb25PcmlnaW5hbCIsInRvUmV1bmlvbiIsIkFtZW5kZW1lbnRzIiwiYW1lbmRlbWVudHMiLCJ0b0FtZW5kZW1lbnRzIiwidGV4dGVMZWdpc2xhdGlmIiwidGV4dGVzRXRBbWVuZGVtZW50cyIsInRleHRlbGVnIiwiYW1lbmRlbWVudCIsIndyaXRlQW1lbmRlbWVudFJlb3JnYW5pemVkSnNvbiIsImFtZW5kZW1lbnRTcGxpdFBhdGgiLCJhbWVuZGVtZW50RmlsZW5hbWUiLCJhbWVuZGVtZW50T3JpZ2luYWxGaWxlUGF0aCIsImFtZW5kZW1lbnRPcmlnaW5hbEpzb24iLCJhbWVuZGVtZW50T3JpZ2luYWwiLCJ0b0FtZW5kZW1lbnRXcmFwcGVyIiwiRG9zc2llcnNMZWdpc2xhdGlmcyIsImRvc3NpZXJzTGVnaXNsYXRpZnMiLCJkb2N1bWVudHNEaXIiLCJkb3NzaWVyc0RpciIsInRvRG9zc2llcnNMZWdpc2xhdGlmcyIsImRvY3VtZW50IiwidGV4dGVzTGVnaXNsYXRpZnMiLCJkb3NzaWVyUGFybGVtZW50YWlyZSIsImRvc3NpZXIiLCJkb2N1bWVudFNwbGl0UGF0aCIsImRvY3VtZW50RmlsZW5hbWUiLCJkb2N1bWVudE9yaWdpbmFsRmlsZVBhdGgiLCJkb2N1bWVudE9yaWdpbmFsSnNvbiIsImRvY3VtZW50T3JpZ2luYWwiLCJ0b0RvY3VtZW50IiwiZG9zc2llclBhcmxlbWVudGFpcmVTcGxpdFBhdGgiLCJkb3NzaWVyUGFybGVtZW50YWlyZUZpbGVuYW1lIiwiZG9zc2llclBhcmxlbWVudGFpcmVPcmlnaW5hbEZpbGVQYXRoIiwiZG9zc2llclBhcmxlbWVudGFpcmVPcmlnaW5hbEpzb24iLCJkb3NzaWVyUGFybGVtZW50YWlyZU9yaWdpbmFsIiwidG9Eb3NzaWVyUGFybGVtZW50YWlyZSIsIlNjcnV0aW5zIiwic2NydXRpbnMiLCJ0b1NjcnV0aW5zIiwic2NydXRpbiIsInNjcnV0aW5TcGxpdFBhdGgiLCJzY3J1dGluRmlsZW5hbWUiLCJzY3J1dGluT3JpZ2luYWxGaWxlUGF0aCIsInNjcnV0aW5PcmlnaW5hbEpzb24iLCJzY3J1dGluT3JpZ2luYWwiLCJ0b1NjcnV0aW5XcmFwcGVyIiwiUXVlc3Rpb25zIiwicXVlc3Rpb25zIiwicXVlc3Rpb25TcGxpdFBhdGgiLCJxdWVzdGlvbkZpbGVuYW1lIiwicXVlc3Rpb25PcmlnaW5hbEZpbGVQYXRoIiwicXVlc3Rpb25PcmlnaW5hbEpzb24iLCJxdWVzdGlvbk9yaWdpbmFsIiwidG9RdWVzdGlvbldyYXBwZXIiLCJxdWVzdGlvbiIsIkNvbXB0ZXNSZW5kdXNTZWFuY2VzIiwiY29tcHRlc1JlbmR1c1NlYW5jZXMiLCJjb21wdGVSZW5kdVNlYW5jZVNwbGl0UGF0aCIsImNvbXB0ZVJlbmR1U2VhbmNlRmlsZW5hbWUiLCJjb21wdGVSZW5kdVNlYW5jZU9yaWdpbmFsRmlsZVBhdGgiLCJjb21wdGVSZW5kdVNlYW5jZU9yaWdpbmFsSnNvbiIsImNvbXB0ZVJlbmR1U2VhbmNlT3JpZ2luYWwiLCJ0b0NvbXB0ZVJlbmR1V3JhcHBlciIsImNvbXB0ZVJlbmR1U2VhbmNlIiwiY29tcHRlUmVuZHUiLCJ1aWRUZXh0ZUxlZ2lzbGF0aWYiLCJ0ZXh0ZUxlZ2lzbGF0aWZSZWYiLCJub3RTdHJpY3RFcXVhbCIsInRleHRlTGVnaXNsYXRpZkRpciIsImRpciIsIm9iaiIsInBhdGhGcm9tVWlkIiwibWFpbiIsInByb2Nlc3MiLCJleGl0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvcmVvcmdhbml6ZV9kYXRhLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgY29tbWFuZExpbmVBcmdzIGZyb20gXCJjb21tYW5kLWxpbmUtYXJnc1wiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCB7XG4gIGRhdGFzZXRzLFxuICBEYXRhc2V0U3RydWN0dXJlLFxuICBFbmFibGVkRGF0YXNldHMsXG4gIGdldEVuYWJsZWREYXRhc2V0cyxcbiAgZmlsdGVyQnlMZWdpc2xhdHVyZSxcbn0gZnJvbSBcIi4uL2RhdGFzZXRzXCJcbmltcG9ydCB7IGV4aXN0aW5nRGF0ZVRvSnNvbiwgcGF0Y2hlZERhdGVUb0pzb24gfSBmcm9tIFwiLi4vZGF0ZXNcIlxuaW1wb3J0ICogYXMgZ2l0IGZyb20gXCIuLi9naXRcIlxuaW1wb3J0IHsgd2Fsa0RpciB9IGZyb20gXCIuLi9maWxlX3N5c3RlbXNcIlxuaW1wb3J0IHtcbiAgcGF0aEZyb21Db21wdGVSZW5kdVVpZCxcbiAgcGF0aEZyb21Eb2N1bWVudFVpZCxcbiAgcGF0aEZyb21Eb3NzaWVyUGFybGVtZW50YWlyZVVpZCxcbiAgcGF0aEZyb21RdWVzdGlvblVpZCxcbiAgcGF0aEZyb21SZXVuaW9uVWlkLFxuICBwYXRoRnJvbVNjcnV0aW5VaWQsXG59IGZyb20gXCIuLi9sb2FkZXJzXCJcbmltcG9ydCB7IENvbnZlcnQgYXMgQWN0ZXVyc0V0T3JnYW5lc1Jhd0NvbnZlcnQgfSBmcm9tIFwiLi4vcmF3X3R5cGVzL2FjdGV1cnNfZXRfb3JnYW5lc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIEFnZW5kYXNSYXdDb252ZXJ0IH0gZnJvbSBcIi4uL3Jhd190eXBlcy9hZ2VuZGFzXCJcbmltcG9ydCB7IENvbnZlcnQgYXMgQW1lbmRlbWVudHNSYXdDb252ZXJ0IH0gZnJvbSBcIi4uL3Jhd190eXBlcy9hbWVuZGVtZW50c1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIERvc3NpZXJzTGVnaXNsYXRpZnNSYXdDb252ZXJ0IH0gZnJvbSBcIi4uL3Jhd190eXBlcy9kb3NzaWVyc19sZWdpc2xhdGlmc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIFNjcnV0aW5zUmF3Q29udmVydCB9IGZyb20gXCIuLi9yYXdfdHlwZXMvc2NydXRpbnNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBRdWVzdGlvbnNSYXdDb252ZXJ0IH0gZnJvbSBcIi4uL3Jhd190eXBlcy9xdWVzdGlvbnNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBDb21wdGVzUmVuZHVzUmF3Q29udmVydCB9IGZyb20gXCIuLi9yYXdfdHlwZXMvZGViYXRzXCJcbmltcG9ydCB7XG4gIGNsb25lT3B0aW9uLFxuICBjb21taXRPcHRpb24sXG4gIGNhdGVnb3JpZXNPcHRpb24sXG4gIGxlZ2lzbGF0dXJlT3B0aW9uLFxuICByZW1vdGVPcHRpb24sXG4gIHNpbGVudE9wdGlvbixcbiAgdmVyYm9zZU9wdGlvbixcbiAgZGF0YURpckRlZmF1bHRPcHRpb24sXG4gIHB1bGxPcHRpb24sXG59IGZyb20gXCIuL3NoYXJlZC9jbGlfaGVscGVyc1wiXG5cbmZ1bmN0aW9uIHBhcnNlQXJncyhhcmd2OiBzdHJpbmdbXSk6IGFueSB7XG4gIGNvbnN0IG9wdGlvbnNEZWZpbml0aW9ucyA9IFtcbiAgICBjbG9uZU9wdGlvbixcbiAgICBjb21taXRPcHRpb24sXG4gICAgY2F0ZWdvcmllc09wdGlvbixcbiAgICBsZWdpc2xhdHVyZU9wdGlvbixcbiAgICByZW1vdGVPcHRpb24sXG4gICAgc2lsZW50T3B0aW9uLFxuICAgIHZlcmJvc2VPcHRpb24sXG4gICAgZGF0YURpckRlZmF1bHRPcHRpb24sXG4gICAgcHVsbE9wdGlvbixcbiAgICB7XG4gICAgICBhbGlhczogXCJWXCIsXG4gICAgICBoZWxwOiBcImRvbid0IHZhbGlkYXRlIHJhdyBkYXRhXCIsXG4gICAgICBuYW1lOiBcIm5vLXZhbGlkYXRlLXJhd1wiLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICB9LFxuICBdXG4gIGNvbnN0IG9wdGlvbnMgPSBjb21tYW5kTGluZUFyZ3Mob3B0aW9uc0RlZmluaXRpb25zLCB7XG4gICAgYXJndjogYXJndixcbiAgfSlcbiAgcmV0dXJuIG9wdGlvbnNcbn1cblxuZnVuY3Rpb24gY2xlYXJEaXJlY3RvcnkoZGlyUGF0aDogc3RyaW5nKTogdm9pZCB7XG4gIGZzLmVuc3VyZURpclN5bmMoZGlyUGF0aClcbiAgZm9yIChjb25zdCBmaWxlbmFtZSBvZiBmcy5yZWFkZGlyU3luYyhkaXJQYXRoKSkge1xuICAgIGlmICghZmlsZW5hbWUuc3RhcnRzV2l0aChcIi5cIikpIHtcbiAgICAgIGZzLnJlbW92ZVN5bmMocGF0aC5qb2luKGRpclBhdGgsIGZpbGVuYW1lKSlcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY2xvbmVHaXQoXG4gIGdpdEdyb3VwVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGRhdGFzZXROYW1lOiBzdHJpbmcsXG4gIGRhdGFEaXI6IHN0cmluZyxcbik6IHZvaWQge1xuICBnaXQuY2xvbmUoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxufVxuXG5mdW5jdGlvbiByZW9yZ2FuaXplRGF0YShvcHRpb25zOiBhbnkpOiBudW1iZXIge1xuICBjb25zdCBkYXRhRGlyID0gb3B0aW9ucy5kYXRhRGlyXG4gIERhdGUucHJvdG90eXBlLnRvSlNPTiA9IHBhdGNoZWREYXRlVG9Kc29uXG4gIGxldCBleGl0Q29kZSA9IG9wdGlvbnMuY29tbWl0ID8gMTAgOiAwXG4gIGNvbnN0IGdpdEdyb3VwVXJsID0gb3B0aW9ucy5jbG9uZT8udHJpbSgpLnJlcGxhY2UoL1xcLyskLywgXCJcIilcbiAgY29uc3QgdmFsaWRhdGVSYXdEYXRhID0gIW9wdGlvbnNbXCJuby12YWxpZGF0ZS1yYXdcIl1cbiAgY29uc3QgZW5hYmxlZERhdGFzZXRzID0gZ2V0RW5hYmxlZERhdGFzZXRzKG9wdGlvbnMuY2F0ZWdvcmllcylcbiAgbGV0IGNob3NlbkRhdGFzZXRzID0gZmlsdGVyQnlMZWdpc2xhdHVyZShkYXRhc2V0cywgb3B0aW9ucy5sZWdpc2xhdHVyZSlcblxuICBmdW5jdGlvbiBjb21taXRHaXQoZGF0YXNldFJlb3JnYW5pemVkRGlyOiBzdHJpbmcsIG9wdGlvbnM6IGFueSk6IHZvaWQge1xuICAgIGlmIChvcHRpb25zLmNvbW1pdCkge1xuICAgICAgY29uc3QgZXJyb3JDb2RlID0gZ2l0LmNvbW1pdEFuZFB1c2goXG4gICAgICAgIGRhdGFzZXRSZW9yZ2FuaXplZERpcixcbiAgICAgICAgXCJOb3V2ZWxsZSBtb2lzc29uXCIsXG4gICAgICAgIG9wdGlvbnMucmVtb3RlLFxuICAgICAgKVxuICAgICAgaWYgKFxuICAgICAgICAoZXhpdENvZGUgPT09IDEwICYmIGVycm9yQ29kZSAhPT0gMTApIHx8XG4gICAgICAgIChleGl0Q29kZSA9PT0gMCAmJiBlcnJvckNvZGUgIT09IDAgJiYgZXJyb3JDb2RlICE9PSAxMClcbiAgICAgICkge1xuICAgICAgICBleGl0Q29kZSA9IGVycm9yQ29kZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQWN0ZXVyc0V0T3JnYW5lcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBjaG9zZW5EYXRhc2V0cy5hY3RldXJzRXRPcmdhbmVzKSB7XG4gICAgICBjb25zdCBvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUsXG4gICAgICApXG4gICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBSZW9yZ2FuaXppbmcgJHtvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRofWApXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShcbiAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgXCIuanNvblwiLFxuICAgICAgKVxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuXG4gICAgICBjb25zdCBkYXRhc2V0UmVvcmdhbml6ZWREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldE5hbWUpXG4gICAgICBpZiAob3B0aW9ucy5wdWxsKSB7XG4gICAgICAgIGdpdC5yZXNldEFuZFB1bGwoZGF0YXNldFJlb3JnYW5pemVkRGlyKVxuICAgICAgfVxuICAgICAgY2xlYXJEaXJlY3RvcnkoZGF0YXNldFJlb3JnYW5pemVkRGlyKVxuXG4gICAgICBjb25zdCBhY3RldXJzUmVvcmdhbml6ZWREaXIgPSBwYXRoLmpvaW4oZGF0YXNldFJlb3JnYW5pemVkRGlyLCBcImFjdGV1cnNcIilcbiAgICAgIGZzLm1rZGlyU3luYyhhY3RldXJzUmVvcmdhbml6ZWREaXIpXG4gICAgICBjb25zdCBvcmdhbmVzUmVvcmdhbml6ZWREaXIgPSBwYXRoLmpvaW4oZGF0YXNldFJlb3JnYW5pemVkRGlyLCBcIm9yZ2FuZXNcIilcbiAgICAgIGZzLm1rZGlyU3luYyhvcmdhbmVzUmVvcmdhbml6ZWREaXIpXG5cbiAgICAgIHN3aXRjaCAoZGF0YXNldC5zdHJ1Y3R1cmUpIHtcbiAgICAgICAgY2FzZSBEYXRhc2V0U3RydWN0dXJlLlNpbmdsZUZpbGU6XG4gICAgICAgICAge1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbERhdGE6IGFueSA9IHZhbGlkYXRlUmF3RGF0YVxuICAgICAgICAgICAgICA/IEFjdGV1cnNFdE9yZ2FuZXNSYXdDb252ZXJ0LnRvQWN0ZXVyc0V0T3JnYW5lcyhvcmlnaW5hbEpzb24pXG4gICAgICAgICAgICAgIDogSlNPTi5wYXJzZShvcmlnaW5hbEpzb24pXG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgYWN0ZXVyIG9mIG9yaWdpbmFsRGF0YS5leHBvcnQuYWN0ZXVycy5hY3RldXIpIHtcbiAgICAgICAgICAgICAgY29uc3QgcmVvcmdhbml6ZWRKc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgICAgICAgICBhY3RldXJzUmVvcmdhbml6ZWREaXIsXG4gICAgICAgICAgICAgICAgYWN0ZXVyLnVpZFtcIiN0ZXh0XCJdICsgXCIuanNvblwiLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmMoXG4gICAgICAgICAgICAgICAgcmVvcmdhbml6ZWRKc29uRmlsZVBhdGgsXG4gICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoYWN0ZXVyLCBudWxsLCAyKSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IG9yZ2FuZSBvZiBvcmlnaW5hbERhdGEuZXhwb3J0Lm9yZ2FuZXMub3JnYW5lKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlb3JnYW5pemVkSnNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgICAgICAgICAgb3JnYW5lc1Jlb3JnYW5pemVkRGlyLFxuICAgICAgICAgICAgICAgIG9yZ2FuZS51aWQgKyBcIi5qc29uXCIsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgZnMud3JpdGVGaWxlU3luYyhcbiAgICAgICAgICAgICAgICByZW9yZ2FuaXplZEpzb25GaWxlUGF0aCxcbiAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShvcmdhbmUsIG51bGwsIDIpLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlczpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb25zdCBkZXBvcnRzQnlBY3RldXJVaWQ6IHtcbiAgICAgICAgICAgICAgW2FjdGV1clVpZDogc3RyaW5nXTogeyB1aWQ6IHN0cmluZyB9W11cbiAgICAgICAgICAgIH0gPSB7fVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBmcy5leGlzdHNTeW5jKFxuICAgICAgICAgICAgICAgIHBhdGguam9pbihvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoLCBcImRlcG9ydFwiKSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgZGVwb3J0U3BsaXRQYXRoIG9mIHdhbGtEaXIoXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICBbXCJkZXBvcnRcIl0sXG4gICAgICAgICAgICAgICkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZXBvcnRGaWxlbmFtZSA9XG4gICAgICAgICAgICAgICAgICBkZXBvcnRTcGxpdFBhdGhbZGVwb3J0U3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgICAgICAgICAgaWYgKCFkZXBvcnRGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBkZXBvcnRPcmlnaW5hbEZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICAgIC4uLmRlcG9ydFNwbGl0UGF0aCxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgICAgICAgIGAgIExvYWRpbmcgXCJkZXBvcnRcIiBmaWxlOiAke2RlcG9ydE9yaWdpbmFsRmlsZVBhdGh94oCmYCxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgZGVwb3J0T3JpZ2luYWxKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgICAgICAgICAgICAgICBkZXBvcnRPcmlnaW5hbEZpbGVQYXRoLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjb25zdCBkZXBvcnRPcmlnaW5hbDogYW55ID0gdmFsaWRhdGVSYXdEYXRhXG4gICAgICAgICAgICAgICAgICA/IEFjdGV1cnNFdE9yZ2FuZXNSYXdDb252ZXJ0LnRvRGVwb3J0KGRlcG9ydE9yaWdpbmFsSnNvbilcbiAgICAgICAgICAgICAgICAgIDogSlNPTi5wYXJzZShkZXBvcnRPcmlnaW5hbEpzb24pXG4gICAgICAgICAgICAgICAgY29uc3QgZGVwb3J0ID0gZGVwb3J0T3JpZ2luYWwuZGVwb3J0XG4gICAgICAgICAgICAgICAgbGV0IGRlcG9ydHMgPSBkZXBvcnRzQnlBY3RldXJVaWRbZGVwb3J0LmFjdGV1clJlZl1cbiAgICAgICAgICAgICAgICBpZiAoZGVwb3J0cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICBkZXBvcnRzID0gZGVwb3J0c0J5QWN0ZXVyVWlkW2RlcG9ydC5hY3RldXJSZWZdID0gW11cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVwb3J0cy5wdXNoKGRlcG9ydClcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGZvciAoY29uc3QgZGVwb3J0cyBvZiBPYmplY3QudmFsdWVzKGRlcG9ydHNCeUFjdGV1clVpZCkpIHtcbiAgICAgICAgICAgICAgICBkZXBvcnRzLnNvcnQoKGEsIGIpID0+XG4gICAgICAgICAgICAgICAgICBhLnVpZC5sZW5ndGggPT09IGIudWlkLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICA/IGEudWlkLmxvY2FsZUNvbXBhcmUoYi51aWQpXG4gICAgICAgICAgICAgICAgICAgIDogYS51aWQubGVuZ3RoIC0gYi51aWQubGVuZ3RoLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBtYW5kYXRzQnlBY3RldXJVaWQ6IHtcbiAgICAgICAgICAgICAgW2FjdGV1clVpZDogc3RyaW5nXTogeyB1aWQ6IHN0cmluZyB9W11cbiAgICAgICAgICAgIH0gPSB7fVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBmcy5leGlzdHNTeW5jKFxuICAgICAgICAgICAgICAgIHBhdGguam9pbihvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoLCBcIm1hbmRhdFwiKSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgbWFuZGF0U3BsaXRQYXRoIG9mIHdhbGtEaXIoXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICBbXCJtYW5kYXRcIl0sXG4gICAgICAgICAgICAgICkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYW5kYXRGaWxlbmFtZSA9XG4gICAgICAgICAgICAgICAgICBtYW5kYXRTcGxpdFBhdGhbbWFuZGF0U3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgICAgICAgICAgaWYgKCFtYW5kYXRGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBtYW5kYXRPcmlnaW5hbEZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICAgIC4uLm1hbmRhdFNwbGl0UGF0aCxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgICAgICAgIGAgIExvYWRpbmcgXCJtYW5kYXRcIiBmaWxlOiAke21hbmRhdE9yaWdpbmFsRmlsZVBhdGh94oCmYCxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgbWFuZGF0T3JpZ2luYWxKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgICAgICAgICAgICAgICBtYW5kYXRPcmlnaW5hbEZpbGVQYXRoLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBjb25zdCBtYW5kYXRPcmlnaW5hbDogYW55ID0gdmFsaWRhdGVSYXdEYXRhXG4gICAgICAgICAgICAgICAgICA/IEFjdGV1cnNFdE9yZ2FuZXNSYXdDb252ZXJ0LnRvTWFuZGF0V3JhcHBlcihcbiAgICAgICAgICAgICAgICAgICAgICBtYW5kYXRPcmlnaW5hbEpzb24sXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIDogSlNPTi5wYXJzZShtYW5kYXRPcmlnaW5hbEpzb24pXG4gICAgICAgICAgICAgICAgY29uc3QgbWFuZGF0ID0gbWFuZGF0T3JpZ2luYWwubWFuZGF0XG4gICAgICAgICAgICAgICAgbGV0IG1hbmRhdHMgPSBtYW5kYXRzQnlBY3RldXJVaWRbbWFuZGF0LmFjdGV1clJlZl1cbiAgICAgICAgICAgICAgICBpZiAobWFuZGF0cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICBtYW5kYXRzID0gbWFuZGF0c0J5QWN0ZXVyVWlkW21hbmRhdC5hY3RldXJSZWZdID0gW11cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbWFuZGF0cy5wdXNoKG1hbmRhdClcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGZvciAoY29uc3QgbWFuZGF0cyBvZiBPYmplY3QudmFsdWVzKG1hbmRhdHNCeUFjdGV1clVpZCkpIHtcbiAgICAgICAgICAgICAgICBtYW5kYXRzLnNvcnQoKGEsIGIpID0+XG4gICAgICAgICAgICAgICAgICBhLnVpZC5sZW5ndGggPT09IGIudWlkLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICA/IGEudWlkLmxvY2FsZUNvbXBhcmUoYi51aWQpXG4gICAgICAgICAgICAgICAgICAgIDogYS51aWQubGVuZ3RoIC0gYi51aWQubGVuZ3RoLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGFjdGV1clNwbGl0UGF0aCBvZiB3YWxrRGlyKFxuICAgICAgICAgICAgICBvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoLFxuICAgICAgICAgICAgICBbXCJhY3RldXJcIl0sXG4gICAgICAgICAgICApKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGFjdGV1ckZpbGVuYW1lID0gYWN0ZXVyU3BsaXRQYXRoW2FjdGV1clNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICAgICAgICBpZiAoIWFjdGV1ckZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IGFjdGV1ck9yaWdpbmFsRmlsZVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICAuLi5hY3RldXJTcGxpdFBhdGgsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgICAgYCAgUmVvcmdhbml6aW5nIFwiYWN0ZXVyXCIgZmlsZTogJHthY3RldXJPcmlnaW5hbEZpbGVQYXRofeKApmAsXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IGFjdGV1ck9yaWdpbmFsSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKFxuICAgICAgICAgICAgICAgIGFjdGV1ck9yaWdpbmFsRmlsZVBhdGgsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgY29uc3QgYWN0ZXVyT3JpZ2luYWw6IGFueSA9IHZhbGlkYXRlUmF3RGF0YVxuICAgICAgICAgICAgICAgID8gQWN0ZXVyc0V0T3JnYW5lc1Jhd0NvbnZlcnQudG9BY3RldXIoYWN0ZXVyT3JpZ2luYWxKc29uKVxuICAgICAgICAgICAgICAgIDogSlNPTi5wYXJzZShhY3RldXJPcmlnaW5hbEpzb24pXG4gICAgICAgICAgICAgIGNvbnN0IGFjdGV1ciA9IGFjdGV1ck9yaWdpbmFsLmFjdGV1clxuICAgICAgICAgICAgICBjb25zdCBhY3RldXJVaWQgPSBhY3RldXIudWlkW1wiI3RleHRcIl1cbiAgICAgICAgICAgICAgY29uc3QgZGVwb3J0cyA9IGRlcG9ydHNCeUFjdGV1clVpZFthY3RldXJVaWRdXG4gICAgICAgICAgICAgIGlmIChkZXBvcnRzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYWN0ZXVyLmRlcG9ydHMsIHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICBhY3RldXIuZGVwb3J0cyA9IHsgZGVwb3J0OiBkZXBvcnRzIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCBtYW5kYXRzID0gbWFuZGF0c0J5QWN0ZXVyVWlkW2FjdGV1clVpZF1cbiAgICAgICAgICAgICAgaWYgKG1hbmRhdHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChhY3RldXIubWFuZGF0cywgdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgIGFjdGV1ci5tYW5kYXRzID0geyBtYW5kYXQ6IG1hbmRhdHMgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IGFjdGV1clJlb3JnYW5pemVkSnNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgICAgICAgICAgYWN0ZXVyc1Jlb3JnYW5pemVkRGlyLFxuICAgICAgICAgICAgICAgIGFjdGV1clVpZCArIFwiLmpzb25cIixcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKFxuICAgICAgICAgICAgICAgIGFjdGV1clJlb3JnYW5pemVkSnNvbkZpbGVQYXRoLFxuICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGFjdGV1ciwgbnVsbCwgMiksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChjb25zdCBvcmdhbmVTcGxpdFBhdGggb2Ygd2Fsa0RpcihcbiAgICAgICAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgICAgICAgW1wib3JnYW5lXCJdLFxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICBjb25zdCBvcmdhbmVGaWxlbmFtZSA9IG9yZ2FuZVNwbGl0UGF0aFtvcmdhbmVTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgICAgICAgaWYgKCFvcmdhbmVGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCBvcmdhbmVPcmlnaW5hbEZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgICAgICAgICAgLi4ub3JnYW5lU3BsaXRQYXRoLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIGlmIChvcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgICAgIGAgIFJlb3JnYW5pemluZyBcIm9yZ2FuZVwiIGZpbGU6ICR7b3JnYW5lT3JpZ2luYWxGaWxlUGF0aH3igKZgLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCBvcmdhbmVPcmlnaW5hbEpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICAgICAgICAgICAgICBvcmdhbmVPcmlnaW5hbEZpbGVQYXRoLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIGNvbnN0IG9yZ2FuZU9yaWdpbmFsOiBhbnkgPSB2YWxpZGF0ZVJhd0RhdGFcbiAgICAgICAgICAgICAgICA/IEFjdGV1cnNFdE9yZ2FuZXNSYXdDb252ZXJ0LnRvT3JnYW5lKG9yZ2FuZU9yaWdpbmFsSnNvbilcbiAgICAgICAgICAgICAgICA6IEpTT04ucGFyc2Uob3JnYW5lT3JpZ2luYWxKc29uKVxuICAgICAgICAgICAgICBjb25zdCBvcmdhbmUgPSBvcmdhbmVPcmlnaW5hbC5vcmdhbmVcbiAgICAgICAgICAgICAgY29uc3Qgb3JnYW5lUmVvcmdhbml6ZWRKc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgICAgICAgICBvcmdhbmVzUmVvcmdhbml6ZWREaXIsXG4gICAgICAgICAgICAgICAgb3JnYW5lLnVpZCArIFwiLmpzb25cIixcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKFxuICAgICAgICAgICAgICAgIG9yZ2FuZVJlb3JnYW5pemVkSnNvbkZpbGVQYXRoLFxuICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KG9yZ2FuZSwgbnVsbCwgMiksXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY29tbWl0R2l0KGRhdGFzZXRSZW9yZ2FuaXplZERpciwgb3B0aW9ucylcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFnZW5kYXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgY2hvc2VuRGF0YXNldHMuYWdlbmRhcykge1xuICAgICAgY29uc3Qgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLFxuICAgICAgKVxuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgUmVvcmdhbml6aW5nICR7b3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aH1gKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBkYXRhc2V0TmFtZSA9IHBhdGguYmFzZW5hbWUoXG4gICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgIFwiLmpzb25cIixcbiAgICAgIClcbiAgICAgIGNsb25lR2l0KGdpdEdyb3VwVXJsLCBkYXRhc2V0TmFtZSwgZGF0YURpcilcblxuICAgICAgY29uc3QgZGF0YXNldFJlb3JnYW5pemVkRGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXROYW1lKVxuICAgICAgY2xlYXJEaXJlY3RvcnkoZGF0YXNldFJlb3JnYW5pemVkRGlyKVxuXG4gICAgICBzd2l0Y2ggKGRhdGFzZXQuc3RydWN0dXJlKSB7XG4gICAgICAgIGNhc2UgRGF0YXNldFN0cnVjdHVyZS5TaW5nbGVGaWxlOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKFxuICAgICAgICAgICAgICBvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxEYXRhOiBhbnkgPSB2YWxpZGF0ZVJhd0RhdGFcbiAgICAgICAgICAgICAgPyBBZ2VuZGFzUmF3Q29udmVydC50b0FnZW5kYXMob3JpZ2luYWxKc29uKVxuICAgICAgICAgICAgICA6IEpTT04ucGFyc2Uob3JpZ2luYWxKc29uKVxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJldW5pb24gb2Ygb3JpZ2luYWxEYXRhLnJldW5pb25zLnJldW5pb24pIHtcbiAgICAgICAgICAgICAgd3JpdGVSZW9yZ2FuaXplZEpzb24oXG4gICAgICAgICAgICAgICAgZGF0YXNldFJlb3JnYW5pemVkRGlyLFxuICAgICAgICAgICAgICAgIHJldW5pb24sXG4gICAgICAgICAgICAgICAgcGF0aEZyb21SZXVuaW9uVWlkLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlczpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJldW5pb25TcGxpdFBhdGggb2Ygd2Fsa0RpcihcbiAgICAgICAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgICAgICAgW1wicmV1bmlvblwiXSxcbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICAgICAgY29uc3QgcmV1bmlvbkZpbGVuYW1lID1cbiAgICAgICAgICAgICAgICByZXVuaW9uU3BsaXRQYXRoW3JldW5pb25TcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgICAgICAgaWYgKCFyZXVuaW9uRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc3QgcmV1bmlvbk9yaWdpbmFsRmlsZVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICAuLi5yZXVuaW9uU3BsaXRQYXRoLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIGlmIChvcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgICAgIGAgIFJlb3JnYW5pemluZyBcInJldW5pb25cIiBmaWxlOiAke3JldW5pb25PcmlnaW5hbEZpbGVQYXRofeKApmAsXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IHJldW5pb25PcmlnaW5hbEpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICAgICAgICAgICAgICByZXVuaW9uT3JpZ2luYWxGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBjb25zdCByZXVuaW9uT3JpZ2luYWw6IGFueSA9IHZhbGlkYXRlUmF3RGF0YVxuICAgICAgICAgICAgICAgID8gQWdlbmRhc1Jhd0NvbnZlcnQudG9SZXVuaW9uKHJldW5pb25PcmlnaW5hbEpzb24pXG4gICAgICAgICAgICAgICAgOiBKU09OLnBhcnNlKHJldW5pb25PcmlnaW5hbEpzb24pXG4gICAgICAgICAgICAgIGNvbnN0IHJldW5pb24gPSByZXVuaW9uT3JpZ2luYWwucmV1bmlvblxuICAgICAgICAgICAgICB3cml0ZVJlb3JnYW5pemVkSnNvbihcbiAgICAgICAgICAgICAgICBkYXRhc2V0UmVvcmdhbml6ZWREaXIsXG4gICAgICAgICAgICAgICAgcmV1bmlvbixcbiAgICAgICAgICAgICAgICBwYXRoRnJvbVJldW5pb25VaWQsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY29tbWl0R2l0KGRhdGFzZXRSZW9yZ2FuaXplZERpciwgb3B0aW9ucylcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFtZW5kZW1lbnRzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGNob3NlbkRhdGFzZXRzLmFtZW5kZW1lbnRzKSB7XG4gICAgICBjb25zdCBvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUsXG4gICAgICApXG4gICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBSZW9yZ2FuaXppbmcgJHtvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRofWApXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShcbiAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgXCIuanNvblwiLFxuICAgICAgKVxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuXG4gICAgICBjb25zdCBkYXRhc2V0UmVvcmdhbml6ZWREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldE5hbWUpXG4gICAgICBjbGVhckRpcmVjdG9yeShkYXRhc2V0UmVvcmdhbml6ZWREaXIpXG5cbiAgICAgIHN3aXRjaCAoZGF0YXNldC5zdHJ1Y3R1cmUpIHtcbiAgICAgICAgY2FzZSBEYXRhc2V0U3RydWN0dXJlLlNpbmdsZUZpbGU6XG4gICAgICAgICAge1xuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBjb25zdCBvcmlnaW5hbERhdGE6IGFueSA9IHZhbGlkYXRlUmF3RGF0YVxuICAgICAgICAgICAgICA/IEFtZW5kZW1lbnRzUmF3Q29udmVydC50b0FtZW5kZW1lbnRzKG9yaWdpbmFsSnNvbilcbiAgICAgICAgICAgICAgOiBKU09OLnBhcnNlKG9yaWdpbmFsSnNvbilcblxuICAgICAgICAgICAgZm9yIChjb25zdCB0ZXh0ZUxlZ2lzbGF0aWYgb2Ygb3JpZ2luYWxEYXRhLnRleHRlc0V0QW1lbmRlbWVudHNcbiAgICAgICAgICAgICAgLnRleHRlbGVnKSB7XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgYW1lbmRlbWVudCBvZiB0ZXh0ZUxlZ2lzbGF0aWYuYW1lbmRlbWVudHMpIHtcbiAgICAgICAgICAgICAgICB3cml0ZUFtZW5kZW1lbnRSZW9yZ2FuaXplZEpzb24oXG4gICAgICAgICAgICAgICAgICBkYXRhc2V0UmVvcmdhbml6ZWREaXIsXG4gICAgICAgICAgICAgICAgICBhbWVuZGVtZW50LFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlIERhdGFzZXRTdHJ1Y3R1cmUuU2VnbWVudGVkRmlsZXM6XG4gICAgICAgICAge1xuICAgICAgICAgICAgZm9yIChjb25zdCBhbWVuZGVtZW50U3BsaXRQYXRoIG9mIHdhbGtEaXIoXG4gICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgICAgICApKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGFtZW5kZW1lbnRGaWxlbmFtZSA9XG4gICAgICAgICAgICAgICAgYW1lbmRlbWVudFNwbGl0UGF0aFthbWVuZGVtZW50U3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgICAgICAgIGlmICghYW1lbmRlbWVudEZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IGFtZW5kZW1lbnRPcmlnaW5hbEZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgICAgICAgICAgLi4uYW1lbmRlbWVudFNwbGl0UGF0aCxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBpZiAob3B0aW9ucy52ZXJib3NlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgICAgICBgICBSZW9yZ2FuaXppbmcgXCJhbWVuZGVtZW50XCIgZmlsZTogJHthbWVuZGVtZW50T3JpZ2luYWxGaWxlUGF0aH3igKZgLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCBhbWVuZGVtZW50T3JpZ2luYWxKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoXG4gICAgICAgICAgICAgICAgYW1lbmRlbWVudE9yaWdpbmFsRmlsZVBhdGgsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgY29uc3QgYW1lbmRlbWVudE9yaWdpbmFsOiBhbnkgPSB2YWxpZGF0ZVJhd0RhdGFcbiAgICAgICAgICAgICAgICA/IEFtZW5kZW1lbnRzUmF3Q29udmVydC50b0FtZW5kZW1lbnRXcmFwcGVyKFxuICAgICAgICAgICAgICAgICAgICBhbWVuZGVtZW50T3JpZ2luYWxKc29uLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogSlNPTi5wYXJzZShhbWVuZGVtZW50T3JpZ2luYWxKc29uKVxuICAgICAgICAgICAgICBjb25zdCBhbWVuZGVtZW50ID0gYW1lbmRlbWVudE9yaWdpbmFsLmFtZW5kZW1lbnRcbiAgICAgICAgICAgICAgd3JpdGVBbWVuZGVtZW50UmVvcmdhbml6ZWRKc29uKGRhdGFzZXRSZW9yZ2FuaXplZERpciwgYW1lbmRlbWVudClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY29tbWl0R2l0KGRhdGFzZXRSZW9yZ2FuaXplZERpciwgb3B0aW9ucylcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgY2hvc2VuRGF0YXNldHMuZG9zc2llcnNMZWdpc2xhdGlmcykge1xuICAgICAgY29uc3Qgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLFxuICAgICAgKVxuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgUmVvcmdhbml6aW5nICR7b3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aH1gKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBkYXRhc2V0TmFtZSA9IHBhdGguYmFzZW5hbWUoXG4gICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgIFwiLmpzb25cIixcbiAgICAgIClcbiAgICAgIGNsb25lR2l0KGdpdEdyb3VwVXJsLCBkYXRhc2V0TmFtZSwgZGF0YURpcilcblxuICAgICAgY29uc3QgZGF0YXNldFJlb3JnYW5pemVkRGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXROYW1lKVxuICAgICAgY2xlYXJEaXJlY3RvcnkoZGF0YXNldFJlb3JnYW5pemVkRGlyKVxuXG4gICAgICBjb25zdCBkb2N1bWVudHNEaXIgPSBwYXRoLmpvaW4oZGF0YXNldFJlb3JnYW5pemVkRGlyLCBcImRvY3VtZW50c1wiKVxuICAgICAgZnMubWtkaXJTeW5jKGRvY3VtZW50c0RpcilcbiAgICAgIGNvbnN0IGRvc3NpZXJzRGlyID0gcGF0aC5qb2luKGRhdGFzZXRSZW9yZ2FuaXplZERpciwgXCJkb3NzaWVyc1wiKVxuICAgICAgZnMubWtkaXJTeW5jKGRvc3NpZXJzRGlyKVxuXG4gICAgICBzd2l0Y2ggKGRhdGFzZXQuc3RydWN0dXJlKSB7XG4gICAgICAgIGNhc2UgRGF0YXNldFN0cnVjdHVyZS5TaW5nbGVGaWxlOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKFxuICAgICAgICAgICAgICBvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxEYXRhOiBhbnkgPSB2YWxpZGF0ZVJhd0RhdGFcbiAgICAgICAgICAgICAgPyBEb3NzaWVyc0xlZ2lzbGF0aWZzUmF3Q29udmVydC50b0Rvc3NpZXJzTGVnaXNsYXRpZnMoXG4gICAgICAgICAgICAgICAgICBvcmlnaW5hbEpzb24sXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA6IEpTT04ucGFyc2Uob3JpZ2luYWxKc29uKVxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRvY3VtZW50IG9mIG9yaWdpbmFsRGF0YS5leHBvcnQudGV4dGVzTGVnaXNsYXRpZnNcbiAgICAgICAgICAgICAgLmRvY3VtZW50KSB7XG4gICAgICAgICAgICAgIHdyaXRlUmVvcmdhbml6ZWRKc29uKGRvY3VtZW50c0RpciwgZG9jdW1lbnQsIHBhdGhGcm9tRG9jdW1lbnRVaWQpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgeyBkb3NzaWVyUGFybGVtZW50YWlyZSB9IG9mIG9yaWdpbmFsRGF0YS5leHBvcnRcbiAgICAgICAgICAgICAgLmRvc3NpZXJzTGVnaXNsYXRpZnMuZG9zc2llcikge1xuICAgICAgICAgICAgICB3cml0ZVJlb3JnYW5pemVkSnNvbihcbiAgICAgICAgICAgICAgICBkb3NzaWVyc0RpcixcbiAgICAgICAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZSxcbiAgICAgICAgICAgICAgICBwYXRoRnJvbURvc3NpZXJQYXJsZW1lbnRhaXJlVWlkLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlczpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRvY3VtZW50U3BsaXRQYXRoIG9mIHdhbGtEaXIoXG4gICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgICAgICAgIFtcImRvY3VtZW50XCJdLFxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICBjb25zdCBkb2N1bWVudEZpbGVuYW1lID1cbiAgICAgICAgICAgICAgICBkb2N1bWVudFNwbGl0UGF0aFtkb2N1bWVudFNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICAgICAgICBpZiAoIWRvY3VtZW50RmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc3QgZG9jdW1lbnRPcmlnaW5hbEZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgICAgICAgICAgLi4uZG9jdW1lbnRTcGxpdFBhdGgsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgICAgYCAgUmVvcmdhbml6aW5nIFwiZG9jdW1lbnRcIiBmaWxlOiAke2RvY3VtZW50T3JpZ2luYWxGaWxlUGF0aH3igKZgLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCBkb2N1bWVudE9yaWdpbmFsSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKFxuICAgICAgICAgICAgICAgIGRvY3VtZW50T3JpZ2luYWxGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBjb25zdCBkb2N1bWVudE9yaWdpbmFsOiBhbnkgPSB2YWxpZGF0ZVJhd0RhdGFcbiAgICAgICAgICAgICAgICA/IERvc3NpZXJzTGVnaXNsYXRpZnNSYXdDb252ZXJ0LnRvRG9jdW1lbnQoZG9jdW1lbnRPcmlnaW5hbEpzb24pXG4gICAgICAgICAgICAgICAgOiBKU09OLnBhcnNlKGRvY3VtZW50T3JpZ2luYWxKc29uKVxuICAgICAgICAgICAgICBjb25zdCBkb2N1bWVudCA9IGRvY3VtZW50T3JpZ2luYWwuZG9jdW1lbnRcbiAgICAgICAgICAgICAgd3JpdGVSZW9yZ2FuaXplZEpzb24oZG9jdW1lbnRzRGlyLCBkb2N1bWVudCwgcGF0aEZyb21Eb2N1bWVudFVpZClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZVNwbGl0UGF0aCBvZiB3YWxrRGlyKFxuICAgICAgICAgICAgICBvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoLFxuICAgICAgICAgICAgICBbXCJkb3NzaWVyUGFybGVtZW50YWlyZVwiXSxcbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICAgICAgY29uc3QgZG9zc2llclBhcmxlbWVudGFpcmVGaWxlbmFtZSA9XG4gICAgICAgICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVTcGxpdFBhdGhbXG4gICAgICAgICAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZVNwbGl0UGF0aC5sZW5ndGggLSAxXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICBpZiAoIWRvc3NpZXJQYXJsZW1lbnRhaXJlRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc3QgZG9zc2llclBhcmxlbWVudGFpcmVPcmlnaW5hbEZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgICAgICAgICAgLi4uZG9zc2llclBhcmxlbWVudGFpcmVTcGxpdFBhdGgsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgICAgYCAgUmVvcmdhbml6aW5nIFwiZG9zc2llclBhcmxlbWVudGFpcmVcIiBmaWxlOiAke2Rvc3NpZXJQYXJsZW1lbnRhaXJlT3JpZ2luYWxGaWxlUGF0aH3igKZgLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZU9yaWdpbmFsSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKFxuICAgICAgICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlT3JpZ2luYWxGaWxlUGF0aCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZU9yaWdpbmFsOiBhbnkgPSB2YWxpZGF0ZVJhd0RhdGFcbiAgICAgICAgICAgICAgICA/IERvc3NpZXJzTGVnaXNsYXRpZnNSYXdDb252ZXJ0LnRvRG9zc2llclBhcmxlbWVudGFpcmUoXG4gICAgICAgICAgICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlT3JpZ2luYWxKc29uLFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogSlNPTi5wYXJzZShkb3NzaWVyUGFybGVtZW50YWlyZU9yaWdpbmFsSnNvbilcbiAgICAgICAgICAgICAgY29uc3QgZG9zc2llclBhcmxlbWVudGFpcmUgPVxuICAgICAgICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlT3JpZ2luYWwuZG9zc2llclBhcmxlbWVudGFpcmVcbiAgICAgICAgICAgICAgd3JpdGVSZW9yZ2FuaXplZEpzb24oXG4gICAgICAgICAgICAgICAgZG9zc2llcnNEaXIsXG4gICAgICAgICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmUsXG4gICAgICAgICAgICAgICAgcGF0aEZyb21Eb3NzaWVyUGFybGVtZW50YWlyZVVpZCxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjb21taXRHaXQoZGF0YXNldFJlb3JnYW5pemVkRGlyLCBvcHRpb25zKVxuICAgIH1cbiAgfVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLlNjcnV0aW5zKSB7XG4gICAgZm9yIChsZXQgZGF0YXNldCBvZiBjaG9zZW5EYXRhc2V0cy5zY3J1dGlucykge1xuICAgICAgY29uc3Qgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLFxuICAgICAgKVxuICAgICAgaWYgKCFvcHRpb25zLnNpbGVudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgUmVvcmdhbml6aW5nICR7b3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aH1gKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBkYXRhc2V0TmFtZSA9IHBhdGguYmFzZW5hbWUoXG4gICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgIFwiLmpzb25cIixcbiAgICAgIClcbiAgICAgIGNsb25lR2l0KGdpdEdyb3VwVXJsLCBkYXRhc2V0TmFtZSwgZGF0YURpcilcblxuICAgICAgY29uc3QgZGF0YXNldFJlb3JnYW5pemVkRGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXROYW1lKVxuICAgICAgY2xlYXJEaXJlY3RvcnkoZGF0YXNldFJlb3JnYW5pemVkRGlyKVxuXG4gICAgICBzd2l0Y2ggKGRhdGFzZXQuc3RydWN0dXJlKSB7XG4gICAgICAgIGNhc2UgRGF0YXNldFN0cnVjdHVyZS5TaW5nbGVGaWxlOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKFxuICAgICAgICAgICAgICBvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxEYXRhOiBhbnkgPSB2YWxpZGF0ZVJhd0RhdGFcbiAgICAgICAgICAgICAgPyBTY3J1dGluc1Jhd0NvbnZlcnQudG9TY3J1dGlucyhvcmlnaW5hbEpzb24pXG4gICAgICAgICAgICAgIDogSlNPTi5wYXJzZShvcmlnaW5hbEpzb24pXG5cbiAgICAgICAgICAgIGZvciAoY29uc3Qgc2NydXRpbiBvZiBvcmlnaW5hbERhdGEuc2NydXRpbnMuc2NydXRpbikge1xuICAgICAgICAgICAgICB3cml0ZVJlb3JnYW5pemVkSnNvbihcbiAgICAgICAgICAgICAgICBkYXRhc2V0UmVvcmdhbml6ZWREaXIsXG4gICAgICAgICAgICAgICAgc2NydXRpbixcbiAgICAgICAgICAgICAgICBwYXRoRnJvbVNjcnV0aW5VaWQsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgc2NydXRpblNwbGl0UGF0aCBvZiB3YWxrRGlyKFxuICAgICAgICAgICAgICBvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoLFxuICAgICAgICAgICAgKSkge1xuICAgICAgICAgICAgICBjb25zdCBzY3J1dGluRmlsZW5hbWUgPVxuICAgICAgICAgICAgICAgIHNjcnV0aW5TcGxpdFBhdGhbc2NydXRpblNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICAgICAgICBpZiAoIXNjcnV0aW5GaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCBzY3J1dGluT3JpZ2luYWxGaWxlUGF0aCA9IHBhdGguam9pbihcbiAgICAgICAgICAgICAgICBvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoLFxuICAgICAgICAgICAgICAgIC4uLnNjcnV0aW5TcGxpdFBhdGgsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgaWYgKG9wdGlvbnMudmVyYm9zZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgICAgICAgYCAgUmVvcmdhbml6aW5nIFwic2NydXRpblwiIGZpbGU6ICR7c2NydXRpbk9yaWdpbmFsRmlsZVBhdGh94oCmYCxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc3Qgc2NydXRpbk9yaWdpbmFsSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKFxuICAgICAgICAgICAgICAgIHNjcnV0aW5PcmlnaW5hbEZpbGVQYXRoLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIGNvbnN0IHNjcnV0aW5PcmlnaW5hbDogYW55ID0gdmFsaWRhdGVSYXdEYXRhXG4gICAgICAgICAgICAgICAgPyBTY3J1dGluc1Jhd0NvbnZlcnQudG9TY3J1dGluV3JhcHBlcihzY3J1dGluT3JpZ2luYWxKc29uKVxuICAgICAgICAgICAgICAgIDogSlNPTi5wYXJzZShzY3J1dGluT3JpZ2luYWxKc29uKVxuICAgICAgICAgICAgICBjb25zdCBzY3J1dGluID0gc2NydXRpbk9yaWdpbmFsLnNjcnV0aW5cbiAgICAgICAgICAgICAgd3JpdGVSZW9yZ2FuaXplZEpzb24oXG4gICAgICAgICAgICAgICAgZGF0YXNldFJlb3JnYW5pemVkRGlyLFxuICAgICAgICAgICAgICAgIHNjcnV0aW4sXG4gICAgICAgICAgICAgICAgcGF0aEZyb21TY3J1dGluVWlkLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNvbW1pdEdpdChkYXRhc2V0UmVvcmdhbml6ZWREaXIsIG9wdGlvbnMpXG4gICAgfVxuICB9XG5cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5RdWVzdGlvbnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMucXVlc3Rpb25zKSB7XG4gICAgICBjb25zdCBvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUsXG4gICAgICApXG4gICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBSZW9yZ2FuaXppbmcgJHtvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRofWApXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShcbiAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgXCIuanNvblwiLFxuICAgICAgKVxuICAgICAgY2xvbmVHaXQoZ2l0R3JvdXBVcmwsIGRhdGFzZXROYW1lLCBkYXRhRGlyKVxuXG4gICAgICBjb25zdCBkYXRhc2V0UmVvcmdhbml6ZWREaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgZGF0YXNldE5hbWUpXG4gICAgICBjbGVhckRpcmVjdG9yeShkYXRhc2V0UmVvcmdhbml6ZWREaXIpXG5cbiAgICAgIHN3aXRjaCAoZGF0YXNldC5zdHJ1Y3R1cmUpIHtcbiAgICAgICAgY2FzZSBEYXRhc2V0U3RydWN0dXJlLlNlZ21lbnRlZEZpbGVzOlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcXVlc3Rpb25TcGxpdFBhdGggb2Ygd2Fsa0RpcihcbiAgICAgICAgICAgICAgb3JpZ2luYWxKc29uRGlyZWN0b3J5T3JGaWxlUGF0aCxcbiAgICAgICAgICAgICkpIHtcbiAgICAgICAgICAgICAgY29uc3QgcXVlc3Rpb25GaWxlbmFtZSA9XG4gICAgICAgICAgICAgICAgcXVlc3Rpb25TcGxpdFBhdGhbcXVlc3Rpb25TcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgICAgICAgaWYgKCFxdWVzdGlvbkZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IHF1ZXN0aW9uT3JpZ2luYWxGaWxlUGF0aCA9IHBhdGguam9pbihcbiAgICAgICAgICAgICAgICBvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoLFxuICAgICAgICAgICAgICAgIC4uLnF1ZXN0aW9uU3BsaXRQYXRoLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIGlmIChvcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgICAgIGAgIFJlb3JnYW5pemluZyBcInF1ZXN0aW9uXCIgZmlsZTogJHtxdWVzdGlvbk9yaWdpbmFsRmlsZVBhdGh94oCmYCxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc3QgcXVlc3Rpb25PcmlnaW5hbEpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICAgICAgICAgICAgICBxdWVzdGlvbk9yaWdpbmFsRmlsZVBhdGgsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgICBjb25zdCBxdWVzdGlvbk9yaWdpbmFsOiBhbnkgPSB2YWxpZGF0ZVJhd0RhdGFcbiAgICAgICAgICAgICAgICA/IFF1ZXN0aW9uc1Jhd0NvbnZlcnQudG9RdWVzdGlvbldyYXBwZXIocXVlc3Rpb25PcmlnaW5hbEpzb24pXG4gICAgICAgICAgICAgICAgOiBKU09OLnBhcnNlKHF1ZXN0aW9uT3JpZ2luYWxKc29uKVxuICAgICAgICAgICAgICBjb25zdCBxdWVzdGlvbiA9IHF1ZXN0aW9uT3JpZ2luYWwucXVlc3Rpb25cbiAgICAgICAgICAgICAgd3JpdGVSZW9yZ2FuaXplZEpzb24oXG4gICAgICAgICAgICAgICAgZGF0YXNldFJlb3JnYW5pemVkRGlyLFxuICAgICAgICAgICAgICAgIHF1ZXN0aW9uLFxuICAgICAgICAgICAgICAgIHBhdGhGcm9tUXVlc3Rpb25VaWQsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY29tbWl0R2l0KGRhdGFzZXRSZW9yZ2FuaXplZERpciwgb3B0aW9ucylcbiAgICB9XG4gIH1cblxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkNvbXB0ZXNSZW5kdXNTZWFuY2VzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmNvbXB0ZXNSZW5kdXNTZWFuY2VzKSB7XG4gICAgICBjb25zdCBvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUsXG4gICAgICApXG4gICAgICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBSZW9yZ2FuaXppbmcgJHtvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRofWApXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRhdGFzZXROYW1lID0gcGF0aC5iYXNlbmFtZShvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoLCBcIi54bWxcIilcbiAgICAgIGNsb25lR2l0KGdpdEdyb3VwVXJsLCBkYXRhc2V0TmFtZSwgZGF0YURpcilcblxuICAgICAgY29uc3QgZGF0YXNldFJlb3JnYW5pemVkRGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIGRhdGFzZXROYW1lKVxuICAgICAgY2xlYXJEaXJlY3RvcnkoZGF0YXNldFJlb3JnYW5pemVkRGlyKVxuXG4gICAgICBzd2l0Y2ggKGRhdGFzZXQuc3RydWN0dXJlKSB7XG4gICAgICAgIGNhc2UgRGF0YXNldFN0cnVjdHVyZS5TZWdtZW50ZWRGaWxlczpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNvbXB0ZVJlbmR1U2VhbmNlU3BsaXRQYXRoIG9mIHdhbGtEaXIoXG4gICAgICAgICAgICAgIG9yaWdpbmFsSnNvbkRpcmVjdG9yeU9yRmlsZVBhdGgsXG4gICAgICAgICAgICApKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGNvbXB0ZVJlbmR1U2VhbmNlRmlsZW5hbWUgPVxuICAgICAgICAgICAgICAgIGNvbXB0ZVJlbmR1U2VhbmNlU3BsaXRQYXRoW1xuICAgICAgICAgICAgICAgICAgY29tcHRlUmVuZHVTZWFuY2VTcGxpdFBhdGgubGVuZ3RoIC0gMVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgaWYgKCFjb21wdGVSZW5kdVNlYW5jZUZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IGNvbXB0ZVJlbmR1U2VhbmNlT3JpZ2luYWxGaWxlUGF0aCA9IHBhdGguam9pbihcbiAgICAgICAgICAgICAgICBvcmlnaW5hbEpzb25EaXJlY3RvcnlPckZpbGVQYXRoLFxuICAgICAgICAgICAgICAgIC4uLmNvbXB0ZVJlbmR1U2VhbmNlU3BsaXRQYXRoLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIGlmIChvcHRpb25zLnZlcmJvc2UpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgICAgIGAgIFJlb3JnYW5pemluZyBcImNvbXB0ZVJlbmR1U2VhbmNlXCIgZmlsZTogJHtjb21wdGVSZW5kdVNlYW5jZU9yaWdpbmFsRmlsZVBhdGh94oCmYCxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc3QgY29tcHRlUmVuZHVTZWFuY2VPcmlnaW5hbEpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICAgICAgICAgICAgICBjb21wdGVSZW5kdVNlYW5jZU9yaWdpbmFsRmlsZVBhdGgsXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgY29uc3QgY29tcHRlUmVuZHVTZWFuY2VPcmlnaW5hbDogYW55ID0gdmFsaWRhdGVSYXdEYXRhXG4gICAgICAgICAgICAgICAgPyBDb21wdGVzUmVuZHVzUmF3Q29udmVydC50b0NvbXB0ZVJlbmR1V3JhcHBlcihcbiAgICAgICAgICAgICAgICAgICAgY29tcHRlUmVuZHVTZWFuY2VPcmlnaW5hbEpzb24sXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiBKU09OLnBhcnNlKGNvbXB0ZVJlbmR1U2VhbmNlT3JpZ2luYWxKc29uKVxuXG4gICAgICAgICAgICAgIGNvbnN0IGNvbXB0ZVJlbmR1U2VhbmNlID0gY29tcHRlUmVuZHVTZWFuY2VPcmlnaW5hbC5jb21wdGVSZW5kdVxuICAgICAgICAgICAgICB3cml0ZVJlb3JnYW5pemVkSnNvbihcbiAgICAgICAgICAgICAgICBkYXRhc2V0UmVvcmdhbml6ZWREaXIsXG4gICAgICAgICAgICAgICAgY29tcHRlUmVuZHVTZWFuY2UsXG4gICAgICAgICAgICAgICAgcGF0aEZyb21Db21wdGVSZW5kdVVpZCxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjb21taXRHaXQoZGF0YXNldFJlb3JnYW5pemVkRGlyLCBvcHRpb25zKVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlc3RvcmUgc3RhbmRhcmQgY29udmVyc2lvbiBvZiBkYXRlcyB0byBKU09OLlxuICBEYXRlLnByb3RvdHlwZS50b0pTT04gPSBleGlzdGluZ0RhdGVUb0pzb25cblxuICByZXR1cm4gZXhpdENvZGVcbn1cblxuZnVuY3Rpb24gd3JpdGVBbWVuZGVtZW50UmVvcmdhbml6ZWRKc29uKFxuICBkYXRhc2V0UmVvcmdhbml6ZWREaXI6IHN0cmluZyxcbiAgYW1lbmRlbWVudDoge1xuICAgIHVpZDogc3RyaW5nXG4gICAgdGV4dGVMZWdpc2xhdGlmUmVmOiBzdHJpbmdcbiAgfSxcbik6IHZvaWQge1xuICBjb25zdCB1aWRUZXh0ZUxlZ2lzbGF0aWYgPSBhbWVuZGVtZW50LnRleHRlTGVnaXNsYXRpZlJlZlxuICBhc3NlcnQubm90U3RyaWN0RXF1YWwodWlkVGV4dGVMZWdpc2xhdGlmLCB1bmRlZmluZWQpXG4gIGNvbnN0IHRleHRlTGVnaXNsYXRpZkRpciA9IHBhdGguam9pbihcbiAgICBkYXRhc2V0UmVvcmdhbml6ZWREaXIsXG4gICAgdWlkVGV4dGVMZWdpc2xhdGlmLFxuICApXG4gIGZzLmVuc3VyZURpclN5bmModGV4dGVMZWdpc2xhdGlmRGlyKVxuICBjb25zdCByZW9yZ2FuaXplZEpzb25GaWxlUGF0aCA9IHBhdGguam9pbihcbiAgICB0ZXh0ZUxlZ2lzbGF0aWZEaXIsXG4gICAgYW1lbmRlbWVudC51aWQgKyBcIi5qc29uXCIsXG4gIClcbiAgZnMud3JpdGVGaWxlU3luYyhcbiAgICByZW9yZ2FuaXplZEpzb25GaWxlUGF0aCxcbiAgICBKU09OLnN0cmluZ2lmeShhbWVuZGVtZW50LCBudWxsLCAyKSxcbiAgICB7XG4gICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgfSxcbiAgKVxufVxuXG5mdW5jdGlvbiB3cml0ZVJlb3JnYW5pemVkSnNvbjxUIGV4dGVuZHMgeyB1aWQ6IHN0cmluZyB9PihcbiAgZGlyOiBzdHJpbmcsXG4gIG9iajogVCxcbiAgcGF0aEZyb21VaWQ6IChkaXI6IHN0cmluZywgdWlkOiBzdHJpbmcpID0+IHN0cmluZyxcbik6IHZvaWQge1xuICBjb25zdCBiYXNlbmFtZSA9IHBhdGhGcm9tVWlkKGRpciwgb2JqLnVpZClcbiAgZnMud3JpdGVGaWxlU3luYyhgJHtiYXNlbmFtZX0uanNvbmAsIEpTT04uc3RyaW5naWZ5KG9iaiwgbnVsbCwgMiksIHtcbiAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gIH0pXG59XG5cbmZ1bmN0aW9uIG1haW4oYXJndjogYW55KTogbnVtYmVyIHtcbiAgY29uc3Qgb3B0aW9ucyA9IHBhcnNlQXJncyhhcmd2KVxuICByZXR1cm4gcmVvcmdhbml6ZURhdGEob3B0aW9ucylcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIGlmICovXG5pZiAocHJvY2Vzcy5hcmd2WzFdLmVuZHNXaXRoKFwicmVv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
|
|
@@ -96,7 +96,7 @@ function downloadPhoto(_x, _x2, _x3, _x4) {
|
|
|
96
96
|
return _downloadPhoto.apply(this, arguments);
|
|
97
97
|
}
|
|
98
98
|
function _downloadPhoto() {
|
|
99
|
-
_downloadPhoto = _asyncToGenerator(
|
|
99
|
+
_downloadPhoto = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(urlPhoto, photoTempFilePath, photoFilePath, missingPhotoFilePath) {
|
|
100
100
|
var retries,
|
|
101
101
|
pipeline,
|
|
102
102
|
attempt,
|
|
@@ -199,7 +199,7 @@ function retrievePhotosDeputes() {
|
|
|
199
199
|
return _retrievePhotosDeputes.apply(this, arguments);
|
|
200
200
|
}
|
|
201
201
|
function _retrievePhotosDeputes() {
|
|
202
|
-
_retrievePhotosDeputes = _asyncToGenerator(
|
|
202
|
+
_retrievePhotosDeputes = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
203
203
|
var dataDir, photosPrefix, photosDirName, photosDir, photosWidth, photosHeight, missingPhotoFilePath, acteurUids, _iterator, _step, acteur, mandats, mandatDepute, numeroDepute, ident, photoFilename, photoFilePath, photoTempFilename, photoTempFilePath, urlPhoto;
|
|
204
204
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
205
205
|
while (1) switch (_context2.prev = _context2.next) {
|
|
@@ -299,4 +299,4 @@ retrievePhotosDeputes().then(function (exitCode) {
|
|
|
299
299
|
console.log(error);
|
|
300
300
|
process.exit(1);
|
|
301
301
|
});
|
|
302
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2hpbGRfcHJvY2VzcyIsInJlcXVpcmUiLCJfY29tbWFuZExpbmVBcmdzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9mc0V4dHJhIiwiX3BhdGgiLCJfc3RyZWFtIiwiX3V0aWwiLCJnaXQiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9sb2FkZXJzIiwiX2FjdGV1cnNfZXRfb3JnYW5lcyIsIl9jbGlfaGVscGVycyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJsZW5ndGgiLCJfbiIsIkYiLCJzIiwiZG9uZSIsInZhbHVlIiwiZiIsIlR5cGVFcnJvciIsIm8iLCJuZXh0IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwicHJvdG90eXBlIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImgiLCJsIiwieSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJwIiwiZCIsImdldFByb3RvdHlwZU9mIiwidiIsInZhbHVlcyIsImciLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJpbnZva2UiLCJyZXNvbHZlIiwiX19hd2FpdCIsInRoZW4iLCJjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyIsIkVycm9yIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJyZXN1bHROYW1lIiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJhcmd1bWVudHMiLCJhcHBseSIsIl9uZXh0IiwiX3Rocm93Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiY2xvbmVPcHRpb24iLCJjb21taXRPcHRpb24iLCJyZW1vdGVPcHRpb24iLCJzaWxlbnRPcHRpb24iLCJkYXRhRGlyRGVmYXVsdE9wdGlvbiIsInB1bGxPcHRpb24iLCJmZXRjaE9wdGlvbiIsImxlZ2lzbGF0dXJlT3B0aW9uIiwiYWxpYXMiLCJkZWZhdWx0VmFsdWUiLCJOdW1iZXIiLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwiY2xvbmVBbmRVcGRhdGVHaXRSZXBvc2l0b3J5IiwicGhvdG9zRGlyTmFtZSIsImdpdEdyb3VwVXJsIiwiY2xvbmUiLCJ0cmltIiwicmVwbGFjZSIsInVuZGVmaW5lZCIsInBob3Rvc0RpciIsInBhdGgiLCJqb2luIiwiZGF0YURpciIsInB1bGwiLCJyZXNldEFuZFB1bGwiLCJyZXNpemVQaG90byIsImFjdGV1ciIsIndpZHRoIiwiaGVpZ2h0IiwicGhvdG9GaWxlbmFtZSIsImlkZW50IiwiZXRhdENpdmlsIiwic2lsZW50IiwiY29uc29sZSIsImxvZyIsImNvbmNhdCIsInByZW5vbSIsIm5vbSIsImV4ZWNTeW5jIiwiY3dkIiwiZG93bmxvYWRQaG90byIsIl94IiwiX3gyIiwiX3gzIiwiX3g0IiwiX2Rvd25sb2FkUGhvdG8iLCJfY2FsbGVlIiwidXJsUGhvdG8iLCJwaG90b1RlbXBGaWxlUGF0aCIsInBob3RvRmlsZVBhdGgiLCJtaXNzaW5nUGhvdG9GaWxlUGF0aCIsInJldHJpZXMiLCJwaXBlbGluZSIsImF0dGVtcHQiLCJyZXNwb25zZSIsIl9hcmdzIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInV0aWwiLCJwcm9taXNpZnkiLCJzdHJlYW0iLCJmZXRjaCIsIm9rIiwiYm9keSIsImZzIiwiY3JlYXRlV3JpdGVTdHJlYW0iLCJyZW5hbWVTeW5jIiwid2FybiIsInN0YXR1cyIsInN0YXR1c1RleHQiLCJ0MCIsImV4aXN0c1N5bmMiLCJjb3B5RmlsZVN5bmMiLCJjcmVhdGVNb3NhaWMiLCJhY3RldXJVaWRzIiwicGhvdG9zV2lkdGgiLCJwaG90b3NIZWlnaHQiLCJtb3NhaWNGaWxlbmFtZSIsInBob3RvQnlJZEFjdGV1ciIsInJvd3NGaWxlbmFtZXMiLCJfbG9vcCIsInJvd0luZGV4Iiwicm93IiwiYWN0ZXVySW5kZXgiLCJwaG90b3NGaWxlbmFtZXMiLCJtYXAiLCJhY3RldXJVaWQiLCJjb2x1bW5JbmRleCIsImNoZW1pbiIsImNoZW1pbk1vc2FpcXVlIiwibGFyZ2V1ciIsImhhdXRldXIiLCJ4TW9zYWlxdWUiLCJ5TW9zYWlxdWUiLCJyb3dGaWxlbmFtZSIsInVubGlua1N5bmMiLCJqc29uRmlsZVBhdGgiLCJ3cml0ZUZpbGVTeW5jIiwiSlNPTiIsInN0cmluZ2lmeSIsInJldHJpZXZlUGhvdG9zRGVwdXRlcyIsIl9yZXRyaWV2ZVBob3Rvc0RlcHV0ZXMiLCJfY2FsbGVlMiIsInBob3Rvc1ByZWZpeCIsIl9pdGVyYXRvciIsIl9zdGVwIiwibWFuZGF0cyIsIm1hbmRhdERlcHV0ZSIsIm51bWVyb0RlcHV0ZSIsInBob3RvVGVtcEZpbGVuYW1lIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwibGVnaXNsYXR1cmUiLCJlbnN1cmVEaXJTeW5jIiwiaXRlckxvYWRBc3NlbWJsZWVBY3RldXJzIiwibm9WYWxpZGF0aW9uIiwiZmluZCIsIm1hbmRhdCIsIl9vcHRpb25zJGxlZ2lzbGF0dXJlIiwieHNpVHlwZSIsIlR5cGVNYW5kYXQiLCJNYW5kYXRQYXJsZW1lbnRhaXJlVHlwZSIsInR5cGVPcmdhbmUiLCJDb2RlVHlwZU9yZ2FuZSIsIkFzc2VtYmxlZSIsInVpZCIsInN1YnN0cmluZyIsImNvbW1pdCIsImNvbW1pdEFuZFB1c2giLCJyZW1vdGUiLCJleGl0Q29kZSIsInByb2Nlc3MiLCJleGl0IiwiZXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9yZXRyaWV2ZV9kZXB1dGVzX3Bob3Rvcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGVjU3luYyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IHN0cmVhbSBmcm9tIFwic3RyZWFtXCJcbmltcG9ydCB1dGlsIGZyb20gXCJ1dGlsXCJcbmltcG9ydCAqIGFzIGdpdCBmcm9tIFwiLi4vZ2l0XCJcblxuaW1wb3J0IHsgaXRlckxvYWRBc3NlbWJsZWVBY3RldXJzIH0gZnJvbSBcIi4uL2xvYWRlcnNcIlxuaW1wb3J0IHtcbiAgQWN0ZXVyLFxuICBDb2RlVHlwZU9yZ2FuZSxcbiAgTWFuZGF0LFxuICBQaG90byxcbiAgVHlwZU1hbmRhdCxcbn0gZnJvbSBcIi4uL3R5cGVzL2FjdGV1cnNfZXRfb3JnYW5lc1wiXG5pbXBvcnQge1xuICBjbG9uZU9wdGlvbixcbiAgY29tbWl0T3B0aW9uLFxuICByZW1vdGVPcHRpb24sXG4gIHNpbGVudE9wdGlvbixcbiAgZGF0YURpckRlZmF1bHRPcHRpb24sXG4gIHB1bGxPcHRpb24sXG4gIGxlZ2lzbGF0dXJlT3B0aW9uLFxuICBmZXRjaE9wdGlvbixcbn0gZnJvbSBcIi4vc2hhcmVkL2NsaV9oZWxwZXJzXCJcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICBjbG9uZU9wdGlvbixcbiAgY29tbWl0T3B0aW9uLFxuICByZW1vdGVPcHRpb24sXG4gIHNpbGVudE9wdGlvbixcbiAgZGF0YURpckRlZmF1bHRPcHRpb24sXG4gIHB1bGxPcHRpb24sXG4gIGZldGNoT3B0aW9uLFxuICBsZWdpc2xhdHVyZU9wdGlvbixcbiAge1xuICAgIGFsaWFzOiBcIndcIixcbiAgICBkZWZhdWx0VmFsdWU6IDE1MCxcbiAgICBuYW1lOiBcIndpZHRoXCIsXG4gICAgdHlwZTogTnVtYmVyLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiaFwiLFxuICAgIGRlZmF1bHRWYWx1ZTogMTkyLFxuICAgIG5hbWU6IFwiaGVpZ2h0XCIsXG4gICAgdHlwZTogTnVtYmVyLFxuICB9LFxuXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG5cbmV4cG9ydCBmdW5jdGlvbiBjbG9uZUFuZFVwZGF0ZUdpdFJlcG9zaXRvcnkoXG4gIHBob3Rvc0Rpck5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogYW55LFxuKTogdm9pZCB7XG4gIGNvbnN0IGdpdEdyb3VwVXJsID0gb3B0aW9ucy5jbG9uZVxuICAgID8gb3B0aW9ucy5jbG9uZS50cmltKCkucmVwbGFjZSgvXFwvKyQvLCBcIlwiKVxuICAgIDogdW5kZWZpbmVkXG4gIGNvbnN0IHBob3Rvc0RpciA9IHBhdGguam9pbihvcHRpb25zLmRhdGFEaXIsIHBob3Rvc0Rpck5hbWUpXG4gIGdpdC5jbG9uZShnaXRHcm91cFVybCwgcGhvdG9zRGlyTmFtZSwgb3B0aW9ucy5kYXRhRGlyKVxuXG4gIGlmIChvcHRpb25zLnB1bGwpIHtcbiAgICBnaXQucmVzZXRBbmRQdWxsKHBob3Rvc0RpcilcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzaXplUGhvdG8oXG4gIGFjdGV1cjogQWN0ZXVyLFxuICB3aWR0aDogbnVtYmVyLFxuICBoZWlnaHQ6IG51bWJlcixcbiAgcGhvdG9zRGlyOiBzdHJpbmcsXG4gIHBob3RvRmlsZW5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogYW55LFxuKTogdm9pZCB7XG4gIGNvbnN0IGlkZW50ID0gYWN0ZXVyLmV0YXRDaXZpbC5pZGVudFxuICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgUmVzaXppbmcgcGhvdG8gJHtwaG90b0ZpbGVuYW1lfSBmb3IgJHtpZGVudC5wcmVub219ICR7aWRlbnQubm9tfeKApmAsXG4gICAgKVxuICB9XG4gIGV4ZWNTeW5jKFxuICAgIGBnbSBjb252ZXJ0IC1yZXNpemUgJHt3aWR0aH14JHtoZWlnaHR9ISAke3Bob3RvRmlsZW5hbWV9LmpwZyAke3Bob3RvRmlsZW5hbWV9XyR7d2lkdGh9eCR7aGVpZ2h0fS5qcGdgLFxuICAgIHtcbiAgICAgIGN3ZDogcGhvdG9zRGlyLFxuICAgIH0sXG4gIClcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRvd25sb2FkUGhvdG8oXG4gIHVybFBob3RvOiBzdHJpbmcsXG4gIHBob3RvVGVtcEZpbGVQYXRoOiBzdHJpbmcsXG4gIHBob3RvRmlsZVBhdGg6IHN0cmluZyxcbiAgbWlzc2luZ1Bob3RvRmlsZVBhdGg6IHN0cmluZyxcbiAgcmV0cmllczogbnVtYmVyID0gMyxcbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBwaXBlbGluZSA9IHV0aWwucHJvbWlzaWZ5KHN0cmVhbS5waXBlbGluZSlcblxuICBmb3IgKGxldCBhdHRlbXB0ID0gMTsgYXR0ZW1wdCA8PSByZXRyaWVzOyBhdHRlbXB0KyspIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmxQaG90bylcblxuICAgICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICAgIGF3YWl0IHBpcGVsaW5lKFxuICAgICAgICAgIHJlc3BvbnNlLmJvZHkgYXMgdW5rbm93biBhcyBOb2RlSlMuUmVhZGFibGVTdHJlYW0sXG4gICAgICAgICAgZnMuY3JlYXRlV3JpdGVTdHJlYW0ocGhvdG9UZW1wRmlsZVBhdGgpLFxuICAgICAgICApXG4gICAgICAgIGZzLnJlbmFtZVN5bmMocGhvdG9UZW1wRmlsZVBhdGgsIHBob3RvRmlsZVBhdGgpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBGZXRjaCBmYWlsZWQ6ICR7dXJsUGhvdG99IChBdHRlbXB0ICR7YXR0ZW1wdH0pIC0gU3RhdHVzOiAke3Jlc3BvbnNlLnN0YXR1c30gJHtyZXNwb25zZS5zdGF0dXNUZXh0fWAsXG4gICAgICApXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICAgICAgY29uc29sZS53YXJuKGBBdHRlbXB0ICR7YXR0ZW1wdH0gZmFpbGVkIGZvciAke3VybFBob3RvfWAsIGVycm9yKVxuICAgIH1cbiAgfVxuXG4gIGlmIChmcy5leGlzdHNTeW5jKHBob3RvRmlsZVBhdGgpKSB7XG4gICAgY29uc29sZS53YXJuKGBSZXVzaW5nIGV4aXN0aW5nIGltYWdlOiAke3Bob3RvRmlsZVBhdGh9YClcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLndhcm4oYFVzaW5nIGJsYW5rIGltYWdlOiAke21pc3NpbmdQaG90b0ZpbGVQYXRofWApXG4gICAgZnMuY29weUZpbGVTeW5jKG1pc3NpbmdQaG90b0ZpbGVQYXRoLCBwaG90b0ZpbGVQYXRoKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNb3NhaWMoXG4gIGFjdGV1clVpZHM6IHN0cmluZ1tdLFxuICBwaG90b3NEaXI6IHN0cmluZyxcbiAgcGhvdG9zV2lkdGg6IG51bWJlcixcbiAgcGhvdG9zSGVpZ2h0OiBudW1iZXIsXG4gIG1vc2FpY0ZpbGVuYW1lOiBzdHJpbmcsXG4pOiB2b2lkIHtcbiAgY29uc3QgcGhvdG9CeUlkQWN0ZXVyOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH0gPSB7fVxuICBjb25zdCByb3dzRmlsZW5hbWVzOiBzdHJpbmdbXSA9IFtdXG5cbiAgaWYgKGFjdGV1clVpZHMubGVuZ3RoID09PSAwKSByZXR1cm5cblxuICBmb3IgKFxuICAgIGxldCBhY3RldXJJbmRleCA9IDAsIHJvd0luZGV4ID0gMDtcbiAgICBhY3RldXJJbmRleCA8IGFjdGV1clVpZHMubGVuZ3RoO1xuICAgIGFjdGV1ckluZGV4ICs9IDI1LCByb3dJbmRleCsrXG4gICkge1xuICAgIGNvbnN0IHJvdyA9IGFjdGV1clVpZHMuc2xpY2UoYWN0ZXVySW5kZXgsIGFjdGV1ckluZGV4ICsgMjUpXG4gICAgY29uc3QgcGhvdG9zRmlsZW5hbWVzOiBzdHJpbmdbXSA9IHJvdy5tYXAoKGFjdGV1clVpZCwgY29sdW1uSW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHBob3RvRmlsZW5hbWUgPSBgJHthY3RldXJVaWR9XyR7cGhvdG9zV2lkdGh9eCR7cGhvdG9zSGVpZ2h0fS5qcGdgXG4gICAgICBwaG90b0J5SWRBY3RldXJbYWN0ZXVyVWlkXSA9IHtcbiAgICAgICAgY2hlbWluOiBgJHtwaG90b3NEaXJ9LyR7cGhvdG9GaWxlbmFtZX1gLFxuICAgICAgICBjaGVtaW5Nb3NhaXF1ZTogYCR7cGhvdG9zRGlyfS8ke21vc2FpY0ZpbGVuYW1lfS5qcGdgLFxuICAgICAgICBsYXJnZXVyOiBwaG90b3NXaWR0aCxcbiAgICAgICAgaGF1dGV1cjogcGhvdG9zSGVpZ2h0LFxuICAgICAgICB4TW9zYWlxdWU6IGNvbHVtbkluZGV4ICogcGhvdG9zV2lkdGgsXG4gICAgICAgIHlNb3NhaXF1ZTogcm93SW5kZXggKiBwaG90b3NIZWlnaHQsXG4gICAgICB9XG4gICAgICByZXR1cm4gcGhvdG9GaWxlbmFtZVxuICAgIH0pXG5cbiAgICBjb25zdCByb3dGaWxlbmFtZSA9IGByb3ctJHtyb3dJbmRleH0uanBnYFxuICAgIGV4ZWNTeW5jKGBnbSBjb252ZXJ0ICR7cGhvdG9zRmlsZW5hbWVzLmpvaW4oXCIgXCIpfSArYXBwZW5kICR7cm93RmlsZW5hbWV9YCwge1xuICAgICAgY3dkOiBwaG90b3NEaXIsXG4gICAgfSlcbiAgICByb3dzRmlsZW5hbWVzLnB1c2gocm93RmlsZW5hbWUpXG4gIH1cblxuICAvLyBDb21iaW5lIGFsbCByb3dzIGludG8gb25lIGltYWdlXG4gIGV4ZWNTeW5jKFxuICAgIGBnbSBjb252ZXJ0ICR7cm93c0ZpbGVuYW1lcy5qb2luKFwiIFwiKX0gLWFwcGVuZCAke21vc2FpY0ZpbGVuYW1lfS5qcGdgLFxuICAgIHsgY3dkOiBwaG90b3NEaXIgfSxcbiAgKVxuXG4gIC8vIENsZWFudXAgaW5kaXZpZHVhbCByb3cgaW1hZ2VzXG4gIHJvd3NGaWxlbmFtZXMuZm9yRWFjaCgocm93RmlsZW5hbWUpID0+IHtcbiAgICBmcy51bmxpbmtTeW5jKHBhdGguam9pbihwaG90b3NEaXIsIHJvd0ZpbGVuYW1lKSlcbiAgfSlcblxuICBjb25zdCBqc29uRmlsZVBhdGggPSBwYXRoLmpvaW4ocGhvdG9zRGlyLCBgJHttb3NhaWNGaWxlbmFtZX0uanNvbmApXG4gIGZzLndyaXRlRmlsZVN5bmMoanNvbkZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShwaG90b0J5SWRBY3RldXIsIG51bGwsIDIpKVxufVxuXG5hc3luYyBmdW5jdGlvbiByZXRyaWV2ZVBob3Rvc0RlcHV0ZXMoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgY29uc3QgZGF0YURpciA9IG9wdGlvbnMuZGF0YURpclxuICBjb25zdCBwaG90b3NQcmVmaXggPSBcInBob3Rvc19kZXB1dGVzXCJcbiAgY29uc3QgcGhvdG9zRGlyTmFtZSA9IGAke3Bob3Rvc1ByZWZpeH1fJHtvcHRpb25zLmxlZ2lzbGF0dXJlfWBcbiAgY29uc3QgcGhvdG9zRGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIHBob3Rvc0Rpck5hbWUpXG4gIGNvbnN0IHBob3Rvc1dpZHRoID0gb3B0aW9ucy53aWR0aFxuICBjb25zdCBwaG90b3NIZWlnaHQgPSBvcHRpb25zLmhlaWdodFxuICBjb25zdCBtaXNzaW5nUGhvdG9GaWxlUGF0aCA9IGBpbWFnZXMvdHJhbnNwYXJlbnRfJHtwaG90b3NXaWR0aH14JHtwaG90b3NIZWlnaHR9LmpwZ2BcblxuICBjbG9uZUFuZFVwZGF0ZUdpdFJlcG9zaXRvcnkocGhvdG9zRGlyTmFtZSwgb3B0aW9ucylcbiAgZnMuZW5zdXJlRGlyU3luYyhwaG90b3NEaXIpXG5cbiAgY29uc3QgYWN0ZXVyVWlkcyA9IFtdXG4gIGZvciAoY29uc3QgeyBhY3RldXIgfSBvZiBpdGVyTG9hZEFzc2VtYmxlZUFjdGV1cnMoXG4gICAgZGF0YURpcixcbiAgICBvcHRpb25zLmxlZ2lzbGF0dXJlLFxuICAgIHsgbm9WYWxpZGF0aW9uOiB0cnVlIH0sXG4gICkpIHtcbiAgICBjb25zdCB7IG1hbmRhdHMgfSA9IGFjdGV1clxuICAgIGlmICghbWFuZGF0cykgY29udGludWVcblxuICAgIGNvbnN0IG1hbmRhdERlcHV0ZSA9IG1hbmRhdHMuZmluZChcbiAgICAgIChtYW5kYXQ6IE1hbmRhdCkgPT5cbiAgICAgICAgbWFuZGF0LnhzaVR5cGUgPT09IFR5cGVNYW5kYXQuTWFuZGF0UGFybGVtZW50YWlyZVR5cGUgJiZcbiAgICAgICAgbWFuZGF0LmxlZ2lzbGF0dXJlID09PSBvcHRpb25zLmxlZ2lzbGF0dXJlPy50b1N0cmluZygpICYmXG4gICAgICAgIG1hbmRhdC50eXBlT3JnYW5lID09PSBDb2RlVHlwZU9yZ2FuZS5Bc3NlbWJsZWUsXG4gICAgKVxuICAgIGlmICghbWFuZGF0RGVwdXRlKSBjb250aW51ZVxuXG4gICAgY29uc3QgbnVtZXJvRGVwdXRlID0gYWN0ZXVyLnVpZC5zdWJzdHJpbmcoMilcblxuICAgIC8vIERvd25sb2FkIHBob3Rvcy5cbiAgICBpZiAob3B0aW9ucy5mZXRjaCkge1xuICAgICAgY29uc3QgaWRlbnQgPSBhY3RldXIuZXRhdENpdmlsLmlkZW50XG4gICAgICBjb25zdCBwaG90b0ZpbGVuYW1lID0gYCR7bnVtZXJvRGVwdXRlfS5qcGdgXG4gICAgICBjb25zdCBwaG90b0ZpbGVQYXRoID0gcGF0aC5qb2luKHBob3Rvc0RpciwgcGhvdG9GaWxlbmFtZSlcbiAgICAgIGNvbnN0IHBob3RvVGVtcEZpbGVuYW1lID0gYCR7bnVtZXJvRGVwdXRlfV90ZW1wLmpwZ2BcbiAgICAgIGNvbnN0IHBob3RvVGVtcEZpbGVQYXRoID0gcGF0aC5qb2luKHBob3Rvc0RpciwgcGhvdG9UZW1wRmlsZW5hbWUpXG4gICAgICBjb25zdCB1cmxQaG90byA9IGBodHRwOi8vd3d3Mi5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy90cmlidW4vJHtvcHRpb25zLmxlZ2lzbGF0dXJlfS9waG90b3MvJHtwaG90b0ZpbGVuYW1lfWBcbiAgICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYExvYWRpbmcgcGhvdG8gJHt1cmxQaG90b30gZm9yICR7aWRlbnQucHJlbm9tfSAke2lkZW50Lm5vbX3igKZgLFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGRvd25sb2FkUGhvdG8oXG4gICAgICAgIHVybFBob3RvLFxuICAgICAgICBwaG90b1RlbXBGaWxlUGF0aCxcbiAgICAgICAgcGhvdG9GaWxlUGF0aCxcbiAgICAgICAgbWlzc2luZ1Bob3RvRmlsZVBhdGgsXG4gICAgICApXG4gICAgICByZXNpemVQaG90byhcbiAgICAgICAgYWN0ZXVyLFxuICAgICAgICBwaG90b3NXaWR0aCxcbiAgICAgICAgcGhvdG9zSGVpZ2h0LFxuICAgICAgICBwaG90b3NEaXIsXG4gICAgICAgIG51bWVyb0RlcHV0ZSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIClcbiAgICB9XG5cbiAgICBhY3RldXJVaWRzLnB1c2gobnVtZXJvRGVwdXRlKVxuICB9XG5cbiAgY3JlYXRlTW9zYWljKGFjdGV1clVpZHMsIHBob3Rvc0RpciwgcGhvdG9zV2lkdGgsIHBob3Rvc0hlaWdodCwgXCJkZXB1dGVzXCIpXG5cbiAgaWYgKG9wdGlvbnMuY29tbWl0KSB7XG4gICAgcmV0dXJuIGdpdC5jb21taXRBbmRQdXNoKHBob3Rvc0RpciwgXCJOb3V2ZWxsZSBtb2lzc29uXCIsIG9wdGlvbnMucmVtb3RlKVxuICB9XG4gIHJldHVybiAwXG59XG5cbnJldHJpZXZlUGhvdG9zRGVwdXRlcygpXG4gIC50aGVuKChleGl0Q29kZSkgPT4gcHJvY2Vzcy5leGl0KGV4aXRDb2RlKSlcbiAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsY0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZ0JBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFFBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFLLE9BQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFNLEtBQUEsR0FBQUosc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFPLEdBQUEsR0FBQUMsdUJBQUEsQ0FBQVIsT0FBQTtBQUVBLElBQUFTLFFBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLG1CQUFBLEdBQUFWLE9BQUE7QUFPQSxJQUFBVyxZQUFBLEdBQUFYLE9BQUE7QUFTNkIsU0FBQVkseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFMLHdCQUFBSyxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxDQUFBLElBQUFkLENBQUEsb0JBQUFjLENBQUEsT0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFoQixDQUFBLEVBQUFjLENBQUEsU0FBQUcsQ0FBQSxHQUFBUCxDQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWIsQ0FBQSxFQUFBYyxDQUFBLFVBQUFHLENBQUEsS0FBQUEsQ0FBQSxDQUFBVixHQUFBLElBQUFVLENBQUEsQ0FBQUMsR0FBQSxJQUFBUCxNQUFBLENBQUFDLGNBQUEsQ0FBQUosQ0FBQSxFQUFBTSxDQUFBLEVBQUFHLENBQUEsSUFBQVQsQ0FBQSxDQUFBTSxDQUFBLElBQUFkLENBQUEsQ0FBQWMsQ0FBQSxZQUFBTixDQUFBLGNBQUFSLENBQUEsRUFBQUcsQ0FBQSxJQUFBQSxDQUFBLENBQUFlLEdBQUEsQ0FBQWxCLENBQUEsRUFBQVEsQ0FBQSxHQUFBQSxDQUFBO0FBQUEsU0FBQW5CLHVCQUFBVyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLEdBQUFKLENBQUEsZ0JBQUFBLENBQUE7QUFBQSxTQUFBbUIsMkJBQUFqQixDQUFBLEVBQUFGLENBQUEsUUFBQUcsQ0FBQSx5QkFBQWlCLE1BQUEsSUFBQWxCLENBQUEsQ0FBQWtCLE1BQUEsQ0FBQUMsUUFBQSxLQUFBbkIsQ0FBQSxxQkFBQUMsQ0FBQSxRQUFBbUIsS0FBQSxDQUFBQyxPQUFBLENBQUFyQixDQUFBLE1BQUFDLENBQUEsR0FBQXFCLDJCQUFBLENBQUF0QixDQUFBLE1BQUFGLENBQUEsSUFBQUUsQ0FBQSx1QkFBQUEsQ0FBQSxDQUFBdUIsTUFBQSxJQUFBdEIsQ0FBQSxLQUFBRCxDQUFBLEdBQUFDLENBQUEsT0FBQXVCLEVBQUEsTUFBQUMsQ0FBQSxZQUFBQSxFQUFBLGVBQUFDLENBQUEsRUFBQUQsQ0FBQSxFQUFBbkIsQ0FBQSxXQUFBQSxFQUFBLFdBQUFrQixFQUFBLElBQUF4QixDQUFBLENBQUF1QixNQUFBLEtBQUFJLElBQUEsV0FBQUEsSUFBQSxNQUFBQyxLQUFBLEVBQUE1QixDQUFBLENBQUF3QixFQUFBLFVBQUExQixDQUFBLFdBQUFBLEVBQUFFLENBQUEsVUFBQUEsQ0FBQSxLQUFBNkIsQ0FBQSxFQUFBSixDQUFBLGdCQUFBSyxTQUFBLGlKQUFBQyxDQUFBLEVBQUF2QixDQUFBLE9BQUFJLENBQUEsZ0JBQUFjLENBQUEsV0FBQUEsRUFBQSxJQUFBekIsQ0FBQSxHQUFBQSxDQUFBLENBQUFhLElBQUEsQ0FBQWQsQ0FBQSxNQUFBTSxDQUFBLFdBQUFBLEVBQUEsUUFBQU4sQ0FBQSxHQUFBQyxDQUFBLENBQUErQixJQUFBLFdBQUF4QixDQUFBLEdBQUFSLENBQUEsQ0FBQTJCLElBQUEsRUFBQTNCLENBQUEsS0FBQUYsQ0FBQSxXQUFBQSxFQUFBRSxDQUFBLElBQUFZLENBQUEsT0FBQW1CLENBQUEsR0FBQS9CLENBQUEsS0FBQTZCLENBQUEsV0FBQUEsRUFBQSxVQUFBckIsQ0FBQSxZQUFBUCxDQUFBLGNBQUFBLENBQUEsOEJBQUFXLENBQUEsUUFBQW1CLENBQUE7QUFBQSxTQUFBVCw0QkFBQXRCLENBQUEsRUFBQVEsQ0FBQSxRQUFBUixDQUFBLDJCQUFBQSxDQUFBLFNBQUFpQyxpQkFBQSxDQUFBakMsQ0FBQSxFQUFBUSxDQUFBLE9BQUFQLENBQUEsTUFBQWlDLFFBQUEsQ0FBQXBCLElBQUEsQ0FBQWQsQ0FBQSxFQUFBbUMsS0FBQSw2QkFBQWxDLENBQUEsSUFBQUQsQ0FBQSxDQUFBb0MsV0FBQSxLQUFBbkMsQ0FBQSxHQUFBRCxDQUFBLENBQUFvQyxXQUFBLENBQUFDLElBQUEsYUFBQXBDLENBQUEsY0FBQUEsQ0FBQSxHQUFBbUIsS0FBQSxDQUFBa0IsSUFBQSxDQUFBdEMsQ0FBQSxvQkFBQUMsQ0FBQSwrQ0FBQXNDLElBQUEsQ0FBQXRDLENBQUEsSUFBQWdDLGlCQUFBLENBQUFqQyxDQUFBLEVBQUFRLENBQUE7QUFBQSxTQUFBeUIsa0JBQUFqQyxDQUFBLEVBQUFRLENBQUEsYUFBQUEsQ0FBQSxJQUFBQSxDQUFBLEdBQUFSLENBQUEsQ0FBQXVCLE1BQUEsTUFBQWYsQ0FBQSxHQUFBUixDQUFBLENBQUF1QixNQUFBLFlBQUF6QixDQUFBLE1BQUFRLENBQUEsR0FBQWMsS0FBQSxDQUFBWixDQUFBLEdBQUFWLENBQUEsR0FBQVUsQ0FBQSxFQUFBVixDQUFBLElBQUFRLENBQUEsQ0FBQVIsQ0FBQSxJQUFBRSxDQUFBLENBQUFGLENBQUEsVUFBQVEsQ0FBQTtBQUFBLFNBQUFrQyxvQkFBQSxrQkF4QjdCLHFKQUFBQSxtQkFBQSxZQUFBQSxvQkFBQSxXQUFBMUMsQ0FBQSxTQUFBRyxDQUFBLEVBQUFILENBQUEsT0FBQUUsQ0FBQSxHQUFBUyxNQUFBLENBQUFnQyxTQUFBLEVBQUFuQyxDQUFBLEdBQUFOLENBQUEsQ0FBQWEsY0FBQSxFQUFBa0IsQ0FBQSxHQUFBdEIsTUFBQSxDQUFBQyxjQUFBLGNBQUFULENBQUEsRUFBQUgsQ0FBQSxFQUFBRSxDQUFBLElBQUFDLENBQUEsQ0FBQUgsQ0FBQSxJQUFBRSxDQUFBLENBQUE0QixLQUFBLEtBQUFiLENBQUEsd0JBQUFHLE1BQUEsR0FBQUEsTUFBQSxPQUFBVixDQUFBLEdBQUFPLENBQUEsQ0FBQUksUUFBQSxrQkFBQXVCLENBQUEsR0FBQTNCLENBQUEsQ0FBQTRCLGFBQUEsdUJBQUEvQixDQUFBLEdBQUFHLENBQUEsQ0FBQTZCLFdBQUEsOEJBQUFDLE9BQUE1QyxDQUFBLEVBQUFILENBQUEsRUFBQUUsQ0FBQSxXQUFBUyxNQUFBLENBQUFDLGNBQUEsQ0FBQVQsQ0FBQSxFQUFBSCxDQUFBLElBQUE4QixLQUFBLEVBQUE1QixDQUFBLEVBQUE4QyxVQUFBLE1BQUFDLFlBQUEsTUFBQUMsUUFBQSxTQUFBL0MsQ0FBQSxDQUFBSCxDQUFBLFdBQUErQyxNQUFBLG1CQUFBNUMsQ0FBQSxJQUFBNEMsTUFBQSxZQUFBQSxPQUFBNUMsQ0FBQSxFQUFBSCxDQUFBLEVBQUFFLENBQUEsV0FBQUMsQ0FBQSxDQUFBSCxDQUFBLElBQUFFLENBQUEsZ0JBQUFpRCxLQUFBaEQsQ0FBQSxFQUFBSCxDQUFBLEVBQUFFLENBQUEsRUFBQU0sQ0FBQSxRQUFBUyxDQUFBLEdBQUFqQixDQUFBLElBQUFBLENBQUEsQ0FBQTJDLFNBQUEsWUFBQVMsU0FBQSxHQUFBcEQsQ0FBQSxHQUFBb0QsU0FBQSxFQUFBMUMsQ0FBQSxHQUFBQyxNQUFBLENBQUEwQyxNQUFBLENBQUFwQyxDQUFBLENBQUEwQixTQUFBLEdBQUFDLENBQUEsT0FBQVUsT0FBQSxDQUFBOUMsQ0FBQSxnQkFBQXlCLENBQUEsQ0FBQXZCLENBQUEsZUFBQW9CLEtBQUEsRUFBQXlCLGdCQUFBLENBQUFwRCxDQUFBLEVBQUFELENBQUEsRUFBQTBDLENBQUEsTUFBQWxDLENBQUEsYUFBQThDLFNBQUFyRCxDQUFBLEVBQUFILENBQUEsRUFBQUUsQ0FBQSxtQkFBQXVELElBQUEsWUFBQUMsR0FBQSxFQUFBdkQsQ0FBQSxDQUFBYSxJQUFBLENBQUFoQixDQUFBLEVBQUFFLENBQUEsY0FBQUMsQ0FBQSxhQUFBc0QsSUFBQSxXQUFBQyxHQUFBLEVBQUF2RCxDQUFBLFFBQUFILENBQUEsQ0FBQW1ELElBQUEsR0FBQUEsSUFBQSxNQUFBUSxDQUFBLHFCQUFBQyxDQUFBLHFCQUFBN0IsQ0FBQSxnQkFBQUgsQ0FBQSxnQkFBQWlDLENBQUEsZ0JBQUFULFVBQUEsY0FBQVUsa0JBQUEsY0FBQUMsMkJBQUEsU0FBQUMsQ0FBQSxPQUFBakIsTUFBQSxDQUFBaUIsQ0FBQSxFQUFBdEQsQ0FBQSxxQ0FBQXVELENBQUEsR0FBQXRELE1BQUEsQ0FBQXVELGNBQUEsRUFBQUMsQ0FBQSxHQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUEsQ0FBQSxDQUFBRyxNQUFBLFFBQUFELENBQUEsSUFBQUEsQ0FBQSxLQUFBakUsQ0FBQSxJQUFBTSxDQUFBLENBQUFRLElBQUEsQ0FBQW1ELENBQUEsRUFBQXpELENBQUEsTUFBQXNELENBQUEsR0FBQUcsQ0FBQSxPQUFBRSxDQUFBLEdBQUFOLDBCQUFBLENBQUFwQixTQUFBLEdBQUFTLFNBQUEsQ0FBQVQsU0FBQSxHQUFBaEMsTUFBQSxDQUFBMEMsTUFBQSxDQUFBVyxDQUFBLFlBQUFNLHNCQUFBbkUsQ0FBQSxnQ0FBQW9FLE9BQUEsV0FBQXZFLENBQUEsSUFBQStDLE1BQUEsQ0FBQTVDLENBQUEsRUFBQUgsQ0FBQSxZQUFBRyxDQUFBLGdCQUFBcUUsT0FBQSxDQUFBeEUsQ0FBQSxFQUFBRyxDQUFBLHNCQUFBc0UsY0FBQXRFLENBQUEsRUFBQUgsQ0FBQSxhQUFBMEUsT0FBQXhFLENBQUEsRUFBQStCLENBQUEsRUFBQWhCLENBQUEsRUFBQVAsQ0FBQSxRQUFBa0MsQ0FBQSxHQUFBWSxRQUFBLENBQUFyRCxDQUFBLENBQUFELENBQUEsR0FBQUMsQ0FBQSxFQUFBOEIsQ0FBQSxtQkFBQVcsQ0FBQSxDQUFBYSxJQUFBLFFBQUEzQyxDQUFBLEdBQUE4QixDQUFBLENBQUFjLEdBQUEsRUFBQUMsQ0FBQSxHQUFBN0MsQ0FBQSxDQUFBZ0IsS0FBQSxTQUFBNkIsQ0FBQSxnQkFBQXRELE9BQUEsQ0FBQXNELENBQUEsS0FBQW5ELENBQUEsQ0FBQVEsSUFBQSxDQUFBMkMsQ0FBQSxlQUFBM0QsQ0FBQSxDQUFBMkUsT0FBQSxDQUFBaEIsQ0FBQSxDQUFBaUIsT0FBQSxFQUFBQyxJQUFBLFdBQUExRSxDQUFBLElBQUF1RSxNQUFBLFNBQUF2RSxDQUFBLEVBQUFjLENBQUEsRUFBQVAsQ0FBQSxnQkFBQVAsQ0FBQSxJQUFBdUUsTUFBQSxVQUFBdkUsQ0FBQSxFQUFBYyxDQUFBLEVBQUFQLENBQUEsUUFBQVYsQ0FBQSxDQUFBMkUsT0FBQSxDQUFBaEIsQ0FBQSxFQUFBa0IsSUFBQSxXQUFBMUUsQ0FBQSxJQUFBVyxDQUFBLENBQUFnQixLQUFBLEdBQUEzQixDQUFBLEVBQUFjLENBQUEsQ0FBQUgsQ0FBQSxnQkFBQVgsQ0FBQSxXQUFBdUUsTUFBQSxVQUFBdkUsQ0FBQSxFQUFBYyxDQUFBLEVBQUFQLENBQUEsU0FBQUEsQ0FBQSxDQUFBa0MsQ0FBQSxDQUFBYyxHQUFBLFNBQUF4RCxDQUFBLEVBQUErQixDQUFBLG9CQUFBSCxLQUFBLFdBQUFBLE1BQUEzQixDQUFBLEVBQUFLLENBQUEsYUFBQXNFLDJCQUFBLGVBQUE5RSxDQUFBLFdBQUFBLENBQUEsRUFBQUUsQ0FBQSxJQUFBd0UsTUFBQSxDQUFBdkUsQ0FBQSxFQUFBSyxDQUFBLEVBQUFSLENBQUEsRUFBQUUsQ0FBQSxnQkFBQUEsQ0FBQSxHQUFBQSxDQUFBLEdBQUFBLENBQUEsQ0FBQTJFLElBQUEsQ0FBQUMsMEJBQUEsRUFBQUEsMEJBQUEsSUFBQUEsMEJBQUEscUJBQUF2QixpQkFBQXZELENBQUEsRUFBQUUsQ0FBQSxFQUFBTSxDQUFBLFFBQUF5QixDQUFBLEdBQUEwQixDQUFBLG1CQUFBMUMsQ0FBQSxFQUFBUCxDQUFBLFFBQUF1QixDQUFBLEtBQUFGLENBQUEsUUFBQWdELEtBQUEsc0NBQUE5QyxDQUFBLEtBQUFMLENBQUEsb0JBQUFYLENBQUEsUUFBQVAsQ0FBQSxXQUFBb0IsS0FBQSxFQUFBM0IsQ0FBQSxFQUFBMEIsSUFBQSxlQUFBckIsQ0FBQSxDQUFBd0UsTUFBQSxHQUFBL0QsQ0FBQSxFQUFBVCxDQUFBLENBQUFrRCxHQUFBLEdBQUFoRCxDQUFBLFVBQUFrQyxDQUFBLEdBQUFwQyxDQUFBLENBQUF5RSxRQUFBLE1BQUFyQyxDQUFBLFFBQUE5QixDQUFBLEdBQUFvRSxtQkFBQSxDQUFBdEMsQ0FBQSxFQUFBcEMsQ0FBQSxPQUFBTSxDQUFBLFFBQUFBLENBQUEsS0FBQStDLENBQUEsbUJBQUEvQyxDQUFBLHFCQUFBTixDQUFBLENBQUF3RSxNQUFBLEVBQUF4RSxDQUFBLENBQUEyRSxJQUFBLEdBQUEzRSxDQUFBLENBQUE0RSxLQUFBLEdBQUE1RSxDQUFBLENBQUFrRCxHQUFBLHNCQUFBbEQsQ0FBQSxDQUFBd0UsTUFBQSxRQUFBL0MsQ0FBQSxLQUFBMEIsQ0FBQSxRQUFBMUIsQ0FBQSxHQUFBTCxDQUFBLEVBQUFwQixDQUFBLENBQUFrRCxHQUFBLEVBQUFsRCxDQUFBLENBQUE2RSxpQkFBQSxDQUFBN0UsQ0FBQSxDQUFBa0QsR0FBQSx1QkFBQWxELENBQUEsQ0FBQXdFLE1BQUEsSUFBQXhFLENBQUEsQ0FBQThFLE1BQUEsV0FBQTlFLENBQUEsQ0FBQWtELEdBQUEsR0FBQXpCLENBQUEsR0FBQUYsQ0FBQSxNQUFBaUMsQ0FBQSxHQUFBUixRQUFBLENBQUF4RCxDQUFBLEVBQUFFLENBQUEsRUFBQU0sQ0FBQSxvQkFBQXdELENBQUEsQ0FBQVAsSUFBQSxRQUFBeEIsQ0FBQSxHQUFBekIsQ0FBQSxDQUFBcUIsSUFBQSxHQUFBRCxDQUFBLEdBQUFnQyxDQUFBLEVBQUFJLENBQUEsQ0FBQU4sR0FBQSxLQUFBRyxDQUFBLHFCQUFBL0IsS0FBQSxFQUFBa0MsQ0FBQSxDQUFBTixHQUFBLEVBQUE3QixJQUFBLEVBQUFyQixDQUFBLENBQUFxQixJQUFBLGtCQUFBbUMsQ0FBQSxDQUFBUCxJQUFBLEtBQUF4QixDQUFBLEdBQUFMLENBQUEsRUFBQXBCLENBQUEsQ0FBQXdFLE1BQUEsWUFBQXhFLENBQUEsQ0FBQWtELEdBQUEsR0FBQU0sQ0FBQSxDQUFBTixHQUFBLG1CQUFBd0Isb0JBQUFsRixDQUFBLEVBQUFFLENBQUEsUUFBQU0sQ0FBQSxHQUFBTixDQUFBLENBQUE4RSxNQUFBLEVBQUEvQyxDQUFBLEdBQUFqQyxDQUFBLENBQUFxQixRQUFBLENBQUFiLENBQUEsT0FBQXlCLENBQUEsS0FBQTlCLENBQUEsU0FBQUQsQ0FBQSxDQUFBK0UsUUFBQSxxQkFBQXpFLENBQUEsSUFBQVIsQ0FBQSxDQUFBcUIsUUFBQSxlQUFBbkIsQ0FBQSxDQUFBOEUsTUFBQSxhQUFBOUUsQ0FBQSxDQUFBd0QsR0FBQSxHQUFBdkQsQ0FBQSxFQUFBK0UsbUJBQUEsQ0FBQWxGLENBQUEsRUFBQUUsQ0FBQSxlQUFBQSxDQUFBLENBQUE4RSxNQUFBLGtCQUFBeEUsQ0FBQSxLQUFBTixDQUFBLENBQUE4RSxNQUFBLFlBQUE5RSxDQUFBLENBQUF3RCxHQUFBLE9BQUExQixTQUFBLHVDQUFBeEIsQ0FBQSxpQkFBQXFELENBQUEsTUFBQTVDLENBQUEsR0FBQXVDLFFBQUEsQ0FBQXZCLENBQUEsRUFBQWpDLENBQUEsQ0FBQXFCLFFBQUEsRUFBQW5CLENBQUEsQ0FBQXdELEdBQUEsbUJBQUF6QyxDQUFBLENBQUF3QyxJQUFBLFNBQUF2RCxDQUFBLENBQUE4RSxNQUFBLFlBQUE5RSxDQUFBLENBQUF3RCxHQUFBLEdBQUF6QyxDQUFBLENBQUF5QyxHQUFBLEVBQUF4RCxDQUFBLENBQUErRSxRQUFBLFNBQUFwQixDQUFBLE1BQUFuRCxDQUFBLEdBQUFPLENBQUEsQ0FBQXlDLEdBQUEsU0FBQWhELENBQUEsR0FBQUEsQ0FBQSxDQUFBbUIsSUFBQSxJQUFBM0IsQ0FBQSxDQUFBRixDQUFBLENBQUF1RixVQUFBLElBQUE3RSxDQUFBLENBQUFvQixLQUFBLEVBQUE1QixDQUFBLENBQUFnQyxJQUFBLEdBQUFsQyxDQUFBLENBQUF3RixPQUFBLGVBQUF0RixDQUFBLENBQUE4RSxNQUFBLEtBQUE5RSxDQUFBLENBQUE4RSxNQUFBLFdBQUE5RSxDQUFBLENBQUF3RCxHQUFBLEdBQUF2RCxDQUFBLEdBQUFELENBQUEsQ0FBQStFLFFBQUEsU0FBQXBCLENBQUEsSUFBQW5ELENBQUEsSUFBQVIsQ0FBQSxDQUFBOEUsTUFBQSxZQUFBOUUsQ0FBQSxDQUFBd0QsR0FBQSxPQUFBMUIsU0FBQSxzQ0FBQTlCLENBQUEsQ0FBQStFLFFBQUEsU0FBQXBCLENBQUEsY0FBQTRCLGFBQUF0RixDQUFBLFFBQUFILENBQUEsS0FBQTBGLE1BQUEsRUFBQXZGLENBQUEsWUFBQUEsQ0FBQSxLQUFBSCxDQUFBLENBQUEyRixRQUFBLEdBQUF4RixDQUFBLFdBQUFBLENBQUEsS0FBQUgsQ0FBQSxDQUFBNEYsVUFBQSxHQUFBekYsQ0FBQSxLQUFBSCxDQUFBLENBQUE2RixRQUFBLEdBQUExRixDQUFBLFdBQUEyRixVQUFBLENBQUFDLElBQUEsQ0FBQS9GLENBQUEsY0FBQWdHLGNBQUE3RixDQUFBLFFBQUFILENBQUEsR0FBQUcsQ0FBQSxDQUFBOEYsVUFBQSxRQUFBakcsQ0FBQSxDQUFBeUQsSUFBQSxvQkFBQXpELENBQUEsQ0FBQTBELEdBQUEsRUFBQXZELENBQUEsQ0FBQThGLFVBQUEsR0FBQWpHLENBQUEsYUFBQXNELFFBQUFuRCxDQUFBLFNBQUEyRixVQUFBLE1BQUFKLE1BQUEsYUFBQXZGLENBQUEsQ0FBQW9FLE9BQUEsQ0FBQWtCLFlBQUEsY0FBQVMsS0FBQSxpQkFBQTlCLE9BQUFwRSxDQUFBLFFBQUFBLENBQUEsV0FBQUEsQ0FBQSxRQUFBRSxDQUFBLEdBQUFGLENBQUEsQ0FBQVUsQ0FBQSxPQUFBUixDQUFBLFNBQUFBLENBQUEsQ0FBQWMsSUFBQSxDQUFBaEIsQ0FBQSw0QkFBQUEsQ0FBQSxDQUFBa0MsSUFBQSxTQUFBbEMsQ0FBQSxPQUFBbUcsS0FBQSxDQUFBbkcsQ0FBQSxDQUFBeUIsTUFBQSxTQUFBUSxDQUFBLE9BQUFoQixDQUFBLFlBQUFpQixLQUFBLGFBQUFELENBQUEsR0FBQWpDLENBQUEsQ0FBQXlCLE1BQUEsT0FBQWpCLENBQUEsQ0FBQVEsSUFBQSxDQUFBaEIsQ0FBQSxFQUFBaUMsQ0FBQSxVQUFBQyxJQUFBLENBQUFKLEtBQUEsR0FBQTlCLENBQUEsQ0FBQWlDLENBQUEsR0FBQUMsSUFBQSxDQUFBTCxJQUFBLE9BQUFLLElBQUEsU0FBQUEsSUFBQSxDQUFBSixLQUFBLEdBQUEzQixDQUFBLEVBQUErQixJQUFBLENBQUFMLElBQUEsT0FBQUssSUFBQSxZQUFBakIsQ0FBQSxDQUFBaUIsSUFBQSxHQUFBakIsQ0FBQSxnQkFBQWUsU0FBQSxDQUFBM0IsT0FBQSxDQUFBTCxDQUFBLGtDQUFBOEQsaUJBQUEsQ0FBQW5CLFNBQUEsR0FBQW9CLDBCQUFBLEVBQUE5QixDQUFBLENBQUFvQyxDQUFBLG1CQUFBdkMsS0FBQSxFQUFBaUMsMEJBQUEsRUFBQWQsWUFBQSxTQUFBaEIsQ0FBQSxDQUFBOEIsMEJBQUEsbUJBQUFqQyxLQUFBLEVBQUFnQyxpQkFBQSxFQUFBYixZQUFBLFNBQUFhLGlCQUFBLENBQUFzQyxXQUFBLEdBQUFyRCxNQUFBLENBQUFnQiwwQkFBQSxFQUFBakQsQ0FBQSx3QkFBQWQsQ0FBQSxDQUFBcUcsbUJBQUEsYUFBQWxHLENBQUEsUUFBQUgsQ0FBQSx3QkFBQUcsQ0FBQSxJQUFBQSxDQUFBLENBQUFtQyxXQUFBLFdBQUF0QyxDQUFBLEtBQUFBLENBQUEsS0FBQThELGlCQUFBLDZCQUFBOUQsQ0FBQSxDQUFBb0csV0FBQSxJQUFBcEcsQ0FBQSxDQUFBdUMsSUFBQSxPQUFBdkMsQ0FBQSxDQUFBc0csSUFBQSxhQUFBbkcsQ0FBQSxXQUFBUSxNQUFBLENBQUE0RixjQUFBLEdBQUE1RixNQUFBLENBQUE0RixjQUFBLENBQUFwRyxDQUFBLEVBQUE0RCwwQkFBQSxLQUFBNUQsQ0FBQSxDQUFBTSxTQUFBLEdBQUFzRCwwQkFBQSxFQUFBaEIsTUFBQSxDQUFBNUMsQ0FBQSxFQUFBVyxDQUFBLHlCQUFBWCxDQUFBLENBQUF3QyxTQUFBLEdBQUFoQyxNQUFBLENBQUEwQyxNQUFBLENBQUFnQixDQUFBLEdBQUFsRSxDQUFBLEtBQUFILENBQUEsQ0FBQXdHLEtBQUEsYUFBQXJHLENBQUEsYUFBQXlFLE9BQUEsRUFBQXpFLENBQUEsT0FBQW1FLHFCQUFBLENBQUFHLGFBQUEsQ0FBQTlCLFNBQUEsR0FBQUksTUFBQSxDQUFBMEIsYUFBQSxDQUFBOUIsU0FBQSxFQUFBQyxDQUFBLGlDQUFBNUMsQ0FBQSxDQUFBeUUsYUFBQSxHQUFBQSxhQUFBLEVBQUF6RSxDQUFBLENBQUF5RyxLQUFBLGFBQUF0RyxDQUFBLEVBQUFELENBQUEsRUFBQU0sQ0FBQSxFQUFBeUIsQ0FBQSxFQUFBaEIsQ0FBQSxlQUFBQSxDQUFBLEtBQUFBLENBQUEsR0FBQXlGLE9BQUEsT0FBQWhHLENBQUEsT0FBQStELGFBQUEsQ0FBQXRCLElBQUEsQ0FBQWhELENBQUEsRUFBQUQsQ0FBQSxFQUFBTSxDQUFBLEVBQUF5QixDQUFBLEdBQUFoQixDQUFBLFVBQUFqQixDQUFBLENBQUFxRyxtQkFBQSxDQUFBbkcsQ0FBQSxJQUFBUSxDQUFBLEdBQUFBLENBQUEsQ0FBQXdCLElBQUEsR0FBQTJDLElBQUEsV0FBQTFFLENBQUEsV0FBQUEsQ0FBQSxDQUFBMEIsSUFBQSxHQUFBMUIsQ0FBQSxDQUFBMkIsS0FBQSxHQUFBcEIsQ0FBQSxDQUFBd0IsSUFBQSxXQUFBb0MscUJBQUEsQ0FBQUQsQ0FBQSxHQUFBdEIsTUFBQSxDQUFBc0IsQ0FBQSxFQUFBdkQsQ0FBQSxnQkFBQWlDLE1BQUEsQ0FBQXNCLENBQUEsRUFBQTNELENBQUEsaUNBQUFxQyxNQUFBLENBQUFzQixDQUFBLDZEQUFBckUsQ0FBQSxDQUFBMkcsSUFBQSxhQUFBeEcsQ0FBQSxRQUFBSCxDQUFBLEdBQUFXLE1BQUEsQ0FBQVIsQ0FBQSxHQUFBRCxDQUFBLGdCQUFBTSxDQUFBLElBQUFSLENBQUEsRUFBQUUsQ0FBQSxDQUFBNkYsSUFBQSxDQUFBdkYsQ0FBQSxVQUFBTixDQUFBLENBQUEwRyxPQUFBLGFBQUExRSxLQUFBLFdBQUFoQyxDQUFBLENBQUF1QixNQUFBLFNBQUF0QixDQUFBLEdBQUFELENBQUEsQ0FBQTJHLEdBQUEsUUFBQTFHLENBQUEsSUFBQUgsQ0FBQSxTQUFBa0MsSUFBQSxDQUFBSixLQUFBLEdBQUEzQixDQUFBLEVBQUErQixJQUFBLENBQUFMLElBQUEsT0FBQUssSUFBQSxXQUFBQSxJQUFBLENBQUFMLElBQUEsT0FBQUssSUFBQSxRQUFBbEMsQ0FBQSxDQUFBb0UsTUFBQSxHQUFBQSxNQUFBLEVBQUFkLE9BQUEsQ0FBQVgsU0FBQSxLQUFBTCxXQUFBLEVBQUFnQixPQUFBLEVBQUE0QyxLQUFBLFdBQUFBLE1BQUFsRyxDQUFBLGFBQUE4RyxJQUFBLFdBQUE1RSxJQUFBLFdBQUFpRCxJQUFBLFFBQUFDLEtBQUEsR0FBQWpGLENBQUEsT0FBQTBCLElBQUEsWUFBQW9ELFFBQUEsY0FBQUQsTUFBQSxnQkFBQXRCLEdBQUEsR0FBQXZELENBQUEsT0FBQTJGLFVBQUEsQ0FBQXZCLE9BQUEsQ0FBQXlCLGFBQUEsSUFBQWhHLENBQUEsV0FBQUUsQ0FBQSxrQkFBQUEsQ0FBQSxDQUFBNkcsTUFBQSxPQUFBdkcsQ0FBQSxDQUFBUSxJQUFBLE9BQUFkLENBQUEsTUFBQWlHLEtBQUEsRUFBQWpHLENBQUEsQ0FBQW1DLEtBQUEsY0FBQW5DLENBQUEsSUFBQUMsQ0FBQSxNQUFBNkcsSUFBQSxXQUFBQSxLQUFBLFNBQUFuRixJQUFBLFdBQUExQixDQUFBLFFBQUEyRixVQUFBLElBQUFHLFVBQUEsa0JBQUE5RixDQUFBLENBQUFzRCxJQUFBLFFBQUF0RCxDQUFBLENBQUF1RCxHQUFBLGNBQUF1RCxJQUFBLEtBQUE1QixpQkFBQSxXQUFBQSxrQkFBQXJGLENBQUEsYUFBQTZCLElBQUEsUUFBQTdCLENBQUEsTUFBQUUsQ0FBQSxrQkFBQWdILE9BQUExRyxDQUFBLEVBQUF5QixDQUFBLFdBQUF2QixDQUFBLENBQUErQyxJQUFBLFlBQUEvQyxDQUFBLENBQUFnRCxHQUFBLEdBQUExRCxDQUFBLEVBQUFFLENBQUEsQ0FBQWdDLElBQUEsR0FBQTFCLENBQUEsRUFBQXlCLENBQUEsS0FBQS9CLENBQUEsQ0FBQThFLE1BQUEsV0FBQTlFLENBQUEsQ0FBQXdELEdBQUEsR0FBQXZELENBQUEsS0FBQThCLENBQUEsYUFBQUEsQ0FBQSxRQUFBNkQsVUFBQSxDQUFBckUsTUFBQSxNQUFBUSxDQUFBLFNBQUFBLENBQUEsUUFBQWhCLENBQUEsUUFBQTZFLFVBQUEsQ0FBQTdELENBQUEsR0FBQXZCLENBQUEsR0FBQU8sQ0FBQSxDQUFBZ0YsVUFBQSxpQkFBQWhGLENBQUEsQ0FBQXlFLE1BQUEsU0FBQXdCLE1BQUEsYUFBQWpHLENBQUEsQ0FBQXlFLE1BQUEsU0FBQW9CLElBQUEsUUFBQWxFLENBQUEsR0FBQXBDLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxDQUFBLGVBQUFILENBQUEsR0FBQU4sQ0FBQSxDQUFBUSxJQUFBLENBQUFDLENBQUEscUJBQUEyQixDQUFBLElBQUE5QixDQUFBLGFBQUFnRyxJQUFBLEdBQUE3RixDQUFBLENBQUEwRSxRQUFBLFNBQUF1QixNQUFBLENBQUFqRyxDQUFBLENBQUEwRSxRQUFBLGdCQUFBbUIsSUFBQSxHQUFBN0YsQ0FBQSxDQUFBMkUsVUFBQSxTQUFBc0IsTUFBQSxDQUFBakcsQ0FBQSxDQUFBMkUsVUFBQSxjQUFBaEQsQ0FBQSxhQUFBa0UsSUFBQSxHQUFBN0YsQ0FBQSxDQUFBMEUsUUFBQSxTQUFBdUIsTUFBQSxDQUFBakcsQ0FBQSxDQUFBMEUsUUFBQSxxQkFBQTdFLENBQUEsUUFBQWlFLEtBQUEscURBQUErQixJQUFBLEdBQUE3RixDQUFBLENBQUEyRSxVQUFBLFNBQUFzQixNQUFBLENBQUFqRyxDQUFBLENBQUEyRSxVQUFBLFlBQUFOLE1BQUEsV0FBQUEsT0FBQW5GLENBQUEsRUFBQUgsQ0FBQSxhQUFBRSxDQUFBLFFBQUE0RixVQUFBLENBQUFyRSxNQUFBLE1BQUF2QixDQUFBLFNBQUFBLENBQUEsUUFBQStCLENBQUEsUUFBQTZELFVBQUEsQ0FBQTVGLENBQUEsT0FBQStCLENBQUEsQ0FBQXlELE1BQUEsU0FBQW9CLElBQUEsSUFBQXRHLENBQUEsQ0FBQVEsSUFBQSxDQUFBaUIsQ0FBQSx3QkFBQTZFLElBQUEsR0FBQTdFLENBQUEsQ0FBQTJELFVBQUEsUUFBQTNFLENBQUEsR0FBQWdCLENBQUEsYUFBQWhCLENBQUEsaUJBQUFkLENBQUEsbUJBQUFBLENBQUEsS0FBQWMsQ0FBQSxDQUFBeUUsTUFBQSxJQUFBMUYsQ0FBQSxJQUFBQSxDQUFBLElBQUFpQixDQUFBLENBQUEyRSxVQUFBLEtBQUEzRSxDQUFBLGNBQUFQLENBQUEsR0FBQU8sQ0FBQSxHQUFBQSxDQUFBLENBQUFnRixVQUFBLGNBQUF2RixDQUFBLENBQUErQyxJQUFBLEdBQUF0RCxDQUFBLEVBQUFPLENBQUEsQ0FBQWdELEdBQUEsR0FBQTFELENBQUEsRUFBQWlCLENBQUEsU0FBQStELE1BQUEsZ0JBQUE5QyxJQUFBLEdBQUFqQixDQUFBLENBQUEyRSxVQUFBLEVBQUEvQixDQUFBLFNBQUFzRCxRQUFBLENBQUF6RyxDQUFBLE1BQUF5RyxRQUFBLFdBQUFBLFNBQUFoSCxDQUFBLEVBQUFILENBQUEsb0JBQUFHLENBQUEsQ0FBQXNELElBQUEsUUFBQXRELENBQUEsQ0FBQXVELEdBQUEscUJBQUF2RCxDQUFBLENBQUFzRCxJQUFBLG1CQUFBdEQsQ0FBQSxDQUFBc0QsSUFBQSxRQUFBdkIsSUFBQSxHQUFBL0IsQ0FBQSxDQUFBdUQsR0FBQSxnQkFBQXZELENBQUEsQ0FBQXNELElBQUEsU0FBQXdELElBQUEsUUFBQXZELEdBQUEsR0FBQXZELENBQUEsQ0FBQXVELEdBQUEsT0FBQXNCLE1BQUEsa0JBQUE5QyxJQUFBLHlCQUFBL0IsQ0FBQSxDQUFBc0QsSUFBQSxJQUFBekQsQ0FBQSxVQUFBa0MsSUFBQSxHQUFBbEMsQ0FBQSxHQUFBNkQsQ0FBQSxLQUFBdUQsTUFBQSxXQUFBQSxPQUFBakgsQ0FBQSxhQUFBSCxDQUFBLFFBQUE4RixVQUFBLENBQUFyRSxNQUFBLE1BQUF6QixDQUFBLFNBQUFBLENBQUEsUUFBQUUsQ0FBQSxRQUFBNEYsVUFBQSxDQUFBOUYsQ0FBQSxPQUFBRSxDQUFBLENBQUEwRixVQUFBLEtBQUF6RixDQUFBLGNBQUFnSCxRQUFBLENBQUFqSCxDQUFBLENBQUErRixVQUFBLEVBQUEvRixDQUFBLENBQUEyRixRQUFBLEdBQUFHLGFBQUEsQ0FBQTlGLENBQUEsR0FBQTJELENBQUEseUJBQUF3RCxPQUFBbEgsQ0FBQSxhQUFBSCxDQUFBLFFBQUE4RixVQUFBLENBQUFyRSxNQUFBLE1BQUF6QixDQUFBLFNBQUFBLENBQUEsUUFBQUUsQ0FBQSxRQUFBNEYsVUFBQSxDQUFBOUYsQ0FBQSxPQUFBRSxDQUFBLENBQUF3RixNQUFBLEtBQUF2RixDQUFBLFFBQUFLLENBQUEsR0FBQU4sQ0FBQSxDQUFBK0YsVUFBQSxrQkFBQXpGLENBQUEsQ0FBQWlELElBQUEsUUFBQXhCLENBQUEsR0FBQXpCLENBQUEsQ0FBQWtELEdBQUEsRUFBQXNDLGFBQUEsQ0FBQTlGLENBQUEsWUFBQStCLENBQUEsWUFBQThDLEtBQUEsOEJBQUF1QyxhQUFBLFdBQUFBLGNBQUF0SCxDQUFBLEVBQUFFLENBQUEsRUFBQU0sQ0FBQSxnQkFBQXlFLFFBQUEsS0FBQTVELFFBQUEsRUFBQStDLE1BQUEsQ0FBQXBFLENBQUEsR0FBQXVGLFVBQUEsRUFBQXJGLENBQUEsRUFBQXNGLE9BQUEsRUFBQWhGLENBQUEsb0JBQUF3RSxNQUFBLFVBQUF0QixHQUFBLEdBQUF2RCxDQUFBLEdBQUEwRCxDQUFBLE9BQUE3RCxDQUFBO0FBQUEsU0FBQXVILG1CQUFBL0csQ0FBQSxFQUFBTCxDQUFBLEVBQUFILENBQUEsRUFBQUUsQ0FBQSxFQUFBK0IsQ0FBQSxFQUFBdkIsQ0FBQSxFQUFBa0MsQ0FBQSxjQUFBM0IsQ0FBQSxHQUFBVCxDQUFBLENBQUFFLENBQUEsRUFBQWtDLENBQUEsR0FBQTlCLENBQUEsR0FBQUcsQ0FBQSxDQUFBYSxLQUFBLFdBQUF0QixDQUFBLGdCQUFBUixDQUFBLENBQUFRLENBQUEsS0FBQVMsQ0FBQSxDQUFBWSxJQUFBLEdBQUExQixDQUFBLENBQUFXLENBQUEsSUFBQTRGLE9BQUEsQ0FBQS9CLE9BQUEsQ0FBQTdELENBQUEsRUFBQStELElBQUEsQ0FBQTNFLENBQUEsRUFBQStCLENBQUE7QUFBQSxTQUFBdUYsa0JBQUFoSCxDQUFBLDZCQUFBTCxDQUFBLFNBQUFILENBQUEsR0FBQXlILFNBQUEsYUFBQWYsT0FBQSxXQUFBeEcsQ0FBQSxFQUFBK0IsQ0FBQSxRQUFBdkIsQ0FBQSxHQUFBRixDQUFBLENBQUFrSCxLQUFBLENBQUF2SCxDQUFBLEVBQUFILENBQUEsWUFBQTJILE1BQUFuSCxDQUFBLElBQUErRyxrQkFBQSxDQUFBN0csQ0FBQSxFQUFBUixDQUFBLEVBQUErQixDQUFBLEVBQUEwRixLQUFBLEVBQUFDLE1BQUEsVUFBQXBILENBQUEsY0FBQW9ILE9BQUFwSCxDQUFBLElBQUErRyxrQkFBQSxDQUFBN0csQ0FBQSxFQUFBUixDQUFBLEVBQUErQixDQUFBLEVBQUEwRixLQUFBLEVBQUFDLE1BQUEsV0FBQXBILENBQUEsS0FBQW1ILEtBQUE7QUEwQkEsSUFBTUUsa0JBQWtCLEdBQUcsQ0FDekJDLHdCQUFXLEVBQ1hDLHlCQUFZLEVBQ1pDLHlCQUFZLEVBQ1pDLHlCQUFZLEVBQ1pDLGlDQUFvQixFQUNwQkMsdUJBQVUsRUFDVkMsd0JBQVcsRUFDWEMsOEJBQWlCLEVBQ2pCO0VBQ0VDLEtBQUssRUFBRSxHQUFHO0VBQ1ZDLFlBQVksRUFBRSxHQUFHO0VBQ2pCaEcsSUFBSSxFQUFFLE9BQU87RUFDYmtCLElBQUksRUFBRStFO0FBQ1IsQ0FBQyxFQUNEO0VBQ0VGLEtBQUssRUFBRSxHQUFHO0VBQ1ZDLFlBQVksRUFBRSxHQUFHO0VBQ2pCaEcsSUFBSSxFQUFFLFFBQVE7RUFDZGtCLElBQUksRUFBRStFO0FBQ1IsQ0FBQyxDQUNGO0FBQ0QsSUFBTUMsT0FBTyxHQUFHLElBQUFDLDJCQUFlLEVBQUNiLGtCQUFrQixDQUFDO0FBRTVDLFNBQVNjLDJCQUEyQkEsQ0FDekNDLGFBQXFCLEVBQ3JCSCxPQUFZLEVBQ047RUFDTixJQUFNSSxXQUFXLEdBQUdKLE9BQU8sQ0FBQ0ssS0FBSyxHQUM3QkwsT0FBTyxDQUFDSyxLQUFLLENBQUNDLElBQUksQ0FBQyxDQUFDLENBQUNDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQ3hDQyxTQUFTO0VBQ2IsSUFBTUMsU0FBUyxHQUFHQyxnQkFBSSxDQUFDQyxJQUFJLENBQUNYLE9BQU8sQ0FBQ1ksT0FBTyxFQUFFVCxhQUFhLENBQUM7RUFDM0RsSixHQUFHLENBQUNvSixLQUFLLENBQUNELFdBQVcsRUFBRUQsYUFBYSxFQUFFSCxPQUFPLENBQUNZLE9BQU8sQ0FBQztFQUV0RCxJQUFJWixPQUFPLENBQUNhLElBQUksRUFBRTtJQUNoQjVKLEdBQUcsQ0FBQzZKLFlBQVksQ0FBQ0wsU0FBUyxDQUFDO0VBQzdCO0FBQ0Y7QUFFTyxTQUFTTSxXQUFXQSxDQUN6QkMsTUFBYyxFQUNkQyxLQUFhLEVBQ2JDLE1BQWMsRUFDZFQsU0FBaUIsRUFDakJVLGFBQXFCLEVBQ3JCbkIsT0FBWSxFQUNOO0VBQ04sSUFBTW9CLEtBQUssR0FBR0osTUFBTSxDQUFDSyxTQUFTLENBQUNELEtBQUs7RUFDcEMsSUFBSSxDQUFDcEIsT0FBTyxDQUFDc0IsTUFBTSxFQUFFO0lBQ25CQyxPQUFPLENBQUNDLEdBQUcsbUJBQUFDLE1BQUEsQ0FDU04sYUFBYSxXQUFBTSxNQUFBLENBQVFMLEtBQUssQ0FBQ00sTUFBTSxPQUFBRCxNQUFBLENBQUlMLEtBQUssQ0FBQ08sR0FBRyxXQUNsRSxDQUFDO0VBQ0g7RUFDQSxJQUFBQyx1QkFBUSx3QkFBQUgsTUFBQSxDQUNnQlIsS0FBSyxPQUFBUSxNQUFBLENBQUlQLE1BQU0sUUFBQU8sTUFBQSxDQUFLTixhQUFhLFdBQUFNLE1BQUEsQ0FBUU4sYUFBYSxPQUFBTSxNQUFBLENBQUlSLEtBQUssT0FBQVEsTUFBQSxDQUFJUCxNQUFNLFdBQy9GO0lBQ0VXLEdBQUcsRUFBRXBCO0VBQ1AsQ0FDRixDQUFDO0FBQ0g7QUFBQyxTQUVxQnFCLGFBQWFBLENBQUFDLEVBQUEsRUFBQUMsR0FBQSxFQUFBQyxHQUFBLEVBQUFDLEdBQUE7RUFBQSxPQUFBQyxjQUFBLENBQUFsRCxLQUFBLE9BQUFELFNBQUE7QUFBQTtBQUFBLFNBQUFtRCxlQUFBO0VBQUFBLGNBQUEsR0FBQXBELGlCQUFBLGVBQUE5RSxtQkFBQSxHQUFBNEQsSUFBQSxDQUE1QixTQUFBdUUsUUFDTEMsUUFBZ0IsRUFDaEJDLGlCQUF5QixFQUN6QkMsYUFBcUIsRUFDckJDLG9CQUE0QjtJQUFBLElBQUFDLE9BQUE7TUFBQUMsUUFBQTtNQUFBQyxPQUFBO01BQUFDLFFBQUE7TUFBQUMsS0FBQSxHQUFBN0QsU0FBQTtJQUFBLE9BQUEvRSxtQkFBQSxHQUFBUyxJQUFBLFVBQUFvSSxTQUFBQyxRQUFBO01BQUEsa0JBQUFBLFFBQUEsQ0FBQTFFLElBQUEsR0FBQTBFLFFBQUEsQ0FBQXRKLElBQUE7UUFBQTtVQUM1QmdKLE9BQWUsR0FBQUksS0FBQSxDQUFBN0osTUFBQSxRQUFBNkosS0FBQSxRQUFBckMsU0FBQSxHQUFBcUMsS0FBQSxNQUFHLENBQUM7VUFFYkgsUUFBUSxHQUFHTSxnQkFBSSxDQUFDQyxTQUFTLENBQUNDLGtCQUFNLENBQUNSLFFBQVEsQ0FBQztVQUV2Q0MsT0FBTyxHQUFHLENBQUM7UUFBQTtVQUFBLE1BQUVBLE9BQU8sSUFBSUYsT0FBTztZQUFBTSxRQUFBLENBQUF0SixJQUFBO1lBQUE7VUFBQTtVQUFBc0osUUFBQSxDQUFBMUUsSUFBQTtVQUFBMEUsUUFBQSxDQUFBdEosSUFBQTtVQUFBLE9BRWIwSixLQUFLLENBQUNkLFFBQVEsQ0FBQztRQUFBO1VBQWhDTyxRQUFRLEdBQUFHLFFBQUEsQ0FBQXJHLElBQUE7VUFBQSxLQUVWa0csUUFBUSxDQUFDUSxFQUFFO1lBQUFMLFFBQUEsQ0FBQXRKLElBQUE7WUFBQTtVQUFBO1VBQUFzSixRQUFBLENBQUF0SixJQUFBO1VBQUEsT0FDUGlKLFFBQVEsQ0FDWkUsUUFBUSxDQUFDUyxJQUFJLEVBQ2JDLG1CQUFFLENBQUNDLGlCQUFpQixDQUFDakIsaUJBQWlCLENBQ3hDLENBQUM7UUFBQTtVQUNEZ0IsbUJBQUUsQ0FBQ0UsVUFBVSxDQUFDbEIsaUJBQWlCLEVBQUVDLGFBQWEsQ0FBQztVQUFBLE9BQUFRLFFBQUEsQ0FBQWxHLE1BQUE7UUFBQTtVQUlqRDBFLE9BQU8sQ0FBQ2tDLElBQUksa0JBQUFoQyxNQUFBLENBQ09ZLFFBQVEsZ0JBQUFaLE1BQUEsQ0FBYWtCLE9BQU8sa0JBQUFsQixNQUFBLENBQWVtQixRQUFRLENBQUNjLE1BQU0sT0FBQWpDLE1BQUEsQ0FBSW1CLFFBQVEsQ0FBQ2UsVUFBVSxDQUNwRyxDQUFDO1VBQUFaLFFBQUEsQ0FBQXRKLElBQUE7VUFBQTtRQUFBO1VBQUFzSixRQUFBLENBQUExRSxJQUFBO1VBQUEwRSxRQUFBLENBQUFhLEVBQUEsR0FBQWIsUUFBQTtVQUVEeEIsT0FBTyxDQUFDQyxHQUFHLENBQUF1QixRQUFBLENBQUFhLEVBQU0sQ0FBQztVQUNsQnJDLE9BQU8sQ0FBQ2tDLElBQUksWUFBQWhDLE1BQUEsQ0FBWWtCLE9BQU8sa0JBQUFsQixNQUFBLENBQWVZLFFBQVEsR0FBQVUsUUFBQSxDQUFBYSxFQUFTLENBQUM7UUFBQTtVQWxCMUJqQixPQUFPLEVBQUU7VUFBQUksUUFBQSxDQUFBdEosSUFBQTtVQUFBO1FBQUE7VUFzQm5ELElBQUk2SixtQkFBRSxDQUFDTyxVQUFVLENBQUN0QixhQUFhLENBQUMsRUFBRTtZQUNoQ2hCLE9BQU8sQ0FBQ2tDLElBQUksNEJBQUFoQyxNQUFBLENBQTRCYyxhQUFhLENBQUUsQ0FBQztVQUMxRCxDQUFDLE1BQU07WUFDTGhCLE9BQU8sQ0FBQ2tDLElBQUksdUJBQUFoQyxNQUFBLENBQXVCZSxvQkFBb0IsQ0FBRSxDQUFDO1lBQzFEYyxtQkFBRSxDQUFDUSxZQUFZLENBQUN0QixvQkFBb0IsRUFBRUQsYUFBYSxDQUFDO1VBQ3REO1FBQUM7UUFBQTtVQUFBLE9BQUFRLFFBQUEsQ0FBQXhFLElBQUE7TUFBQTtJQUFBLEdBQUE2RCxPQUFBO0VBQUEsQ0FDRjtFQUFBLE9BQUFELGNBQUEsQ0FBQWxELEtBQUEsT0FBQUQsU0FBQTtBQUFBO0FBRU0sU0FBUytFLFlBQVlBLENBQzFCQyxVQUFvQixFQUNwQnZELFNBQWlCLEVBQ2pCd0QsV0FBbUIsRUFDbkJDLFlBQW9CLEVBQ3BCQyxjQUFzQixFQUNoQjtFQUNOLElBQU1DLGVBQXlDLEdBQUcsQ0FBQyxDQUFDO0VBQ3BELElBQU1DLGFBQXVCLEdBQUcsRUFBRTtFQUVsQyxJQUFJTCxVQUFVLENBQUNoTCxNQUFNLEtBQUssQ0FBQyxFQUFFO0VBQU0sSUFBQXNMLEtBQUEsWUFBQUEsTUFBQUMsUUFBQSxFQU1qQztJQUNBLElBQU1DLEdBQUcsR0FBR1IsVUFBVSxDQUFDcEssS0FBSyxDQUFDNkssV0FBVyxFQUFFQSxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQzNELElBQU1DLGVBQXlCLEdBQUdGLEdBQUcsQ0FBQ0csR0FBRyxDQUFDLFVBQUNDLFNBQVMsRUFBRUMsV0FBVyxFQUFLO01BQ3BFLElBQU0xRCxhQUFhLE1BQUFNLE1BQUEsQ0FBTW1ELFNBQVMsT0FBQW5ELE1BQUEsQ0FBSXdDLFdBQVcsT0FBQXhDLE1BQUEsQ0FBSXlDLFlBQVksU0FBTTtNQUN2RUUsZUFBZSxDQUFDUSxTQUFTLENBQUMsR0FBRztRQUMzQkUsTUFBTSxLQUFBckQsTUFBQSxDQUFLaEIsU0FBUyxPQUFBZ0IsTUFBQSxDQUFJTixhQUFhLENBQUU7UUFDdkM0RCxjQUFjLEtBQUF0RCxNQUFBLENBQUtoQixTQUFTLE9BQUFnQixNQUFBLENBQUkwQyxjQUFjLFNBQU07UUFDcERhLE9BQU8sRUFBRWYsV0FBVztRQUNwQmdCLE9BQU8sRUFBRWYsWUFBWTtRQUNyQmdCLFNBQVMsRUFBRUwsV0FBVyxHQUFHWixXQUFXO1FBQ3BDa0IsU0FBUyxFQUFFWixRQUFRLEdBQUdMO01BQ3hCLENBQUM7TUFDRCxPQUFPL0MsYUFBYTtJQUN0QixDQUFDLENBQUM7SUFFRixJQUFNaUUsV0FBVyxVQUFBM0QsTUFBQSxDQUFVOEMsUUFBUSxTQUFNO0lBQ3pDLElBQUEzQyx1QkFBUSxnQkFBQUgsTUFBQSxDQUFlaUQsZUFBZSxDQUFDL0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFBYyxNQUFBLENBQVkyRCxXQUFXLEdBQUk7TUFDekV2RCxHQUFHLEVBQUVwQjtJQUNQLENBQUMsQ0FBQztJQUNGNEQsYUFBYSxDQUFDL0csSUFBSSxDQUFDOEgsV0FBVyxDQUFDO0VBQ2pDLENBQUM7RUF4QkQsS0FDRSxJQUFJWCxXQUFXLEdBQUcsQ0FBQyxFQUFFRixRQUFRLEdBQUcsQ0FBQyxFQUNqQ0UsV0FBVyxHQUFHVCxVQUFVLENBQUNoTCxNQUFNLEVBQy9CeUwsV0FBVyxJQUFJLEVBQUUsRUFBRUYsUUFBUSxFQUFFO0lBQUFELEtBQUEsQ0FBQUMsUUFBQTtFQUFBOztFQXVCL0I7RUFDQSxJQUFBM0MsdUJBQVEsZ0JBQUFILE1BQUEsQ0FDUTRDLGFBQWEsQ0FBQzFELElBQUksQ0FBQyxHQUFHLENBQUMsZUFBQWMsTUFBQSxDQUFZMEMsY0FBYyxXQUMvRDtJQUFFdEMsR0FBRyxFQUFFcEI7RUFBVSxDQUNuQixDQUFDOztFQUVEO0VBQ0E0RCxhQUFhLENBQUN2SSxPQUFPLENBQUMsVUFBQ3NKLFdBQVcsRUFBSztJQUNyQzlCLG1CQUFFLENBQUMrQixVQUFVLENBQUMzRSxnQkFBSSxDQUFDQyxJQUFJLENBQUNGLFNBQVMsRUFBRTJFLFdBQVcsQ0FBQyxDQUFDO0VBQ2xELENBQUMsQ0FBQztFQUVGLElBQU1FLFlBQVksR0FBRzVFLGdCQUFJLENBQUNDLElBQUksQ0FBQ0YsU0FBUyxLQUFBZ0IsTUFBQSxDQUFLMEMsY0FBYyxVQUFPLENBQUM7RUFDbkViLG1CQUFFLENBQUNpQyxhQUFhLENBQUNELFlBQVksRUFBRUUsSUFBSSxDQUFDQyxTQUFTLENBQUNyQixlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzFFO0FBQUMsU0FFY3NCLHFCQUFxQkEsQ0FBQTtFQUFBLE9BQUFDLHNCQUFBLENBQUExRyxLQUFBLE9BQUFELFNBQUE7QUFBQTtBQUFBLFNBQUEyRyx1QkFBQTtFQUFBQSxzQkFBQSxHQUFBNUcsaUJBQUEsZUFBQTlFLG1CQUFBLEdBQUE0RCxJQUFBLENBQXBDLFNBQUErSCxTQUFBO0lBQUEsSUFBQWhGLE9BQUEsRUFBQWlGLFlBQUEsRUFBQTFGLGFBQUEsRUFBQU0sU0FBQSxFQUFBd0QsV0FBQSxFQUFBQyxZQUFBLEVBQUExQixvQkFBQSxFQUFBd0IsVUFBQSxFQUFBOEIsU0FBQSxFQUFBQyxLQUFBLEVBQUEvRSxNQUFBLEVBQUFnRixPQUFBLEVBQUFDLFlBQUEsRUFBQUMsWUFBQSxFQUFBOUUsS0FBQSxFQUFBRCxhQUFBLEVBQUFvQixhQUFBLEVBQUE0RCxpQkFBQSxFQUFBN0QsaUJBQUEsRUFBQUQsUUFBQTtJQUFBLE9BQUFwSSxtQkFBQSxHQUFBUyxJQUFBLFVBQUEwTCxVQUFBQyxTQUFBO01BQUEsa0JBQUFBLFNBQUEsQ0FBQWhJLElBQUEsR0FBQWdJLFNBQUEsQ0FBQTVNLElBQUE7UUFBQTtVQUNRbUgsT0FBTyxHQUFHWixPQUFPLENBQUNZLE9BQU87VUFDekJpRixZQUFZLEdBQUcsZ0JBQWdCO1VBQy9CMUYsYUFBYSxNQUFBc0IsTUFBQSxDQUFNb0UsWUFBWSxPQUFBcEUsTUFBQSxDQUFJekIsT0FBTyxDQUFDc0csV0FBVztVQUN0RDdGLFNBQVMsR0FBR0MsZ0JBQUksQ0FBQ0MsSUFBSSxDQUFDQyxPQUFPLEVBQUVULGFBQWEsQ0FBQztVQUM3QzhELFdBQVcsR0FBR2pFLE9BQU8sQ0FBQ2lCLEtBQUs7VUFDM0JpRCxZQUFZLEdBQUdsRSxPQUFPLENBQUNrQixNQUFNO1VBQzdCc0Isb0JBQW9CLHlCQUFBZixNQUFBLENBQXlCd0MsV0FBVyxPQUFBeEMsTUFBQSxDQUFJeUMsWUFBWTtVQUU5RWhFLDJCQUEyQixDQUFDQyxhQUFhLEVBQUVILE9BQU8sQ0FBQztVQUNuRHNELG1CQUFFLENBQUNpRCxhQUFhLENBQUM5RixTQUFTLENBQUM7VUFFckJ1RCxVQUFVLEdBQUcsRUFBRTtVQUFBOEIsU0FBQSxHQUFBcE4sMEJBQUEsQ0FDSSxJQUFBOE4saUNBQXdCLEVBQy9DNUYsT0FBTyxFQUNQWixPQUFPLENBQUNzRyxXQUFXLEVBQ25CO1lBQUVHLFlBQVksRUFBRTtVQUFLLENBQ3ZCLENBQUM7VUFBQUosU0FBQSxDQUFBaEksSUFBQTtVQUFBeUgsU0FBQSxDQUFBM00sQ0FBQTtRQUFBO1VBQUEsS0FBQTRNLEtBQUEsR0FBQUQsU0FBQSxDQUFBL04sQ0FBQSxJQUFBcUIsSUFBQTtZQUFBaU4sU0FBQSxDQUFBNU0sSUFBQTtZQUFBO1VBQUE7VUFKWXVILE1BQU0sR0FBQStFLEtBQUEsQ0FBQTFNLEtBQUEsQ0FBTjJILE1BQU07VUFLVGdGLE9BQU8sR0FBS2hGLE1BQU0sQ0FBbEJnRixPQUFPO1VBQUEsSUFDVkEsT0FBTztZQUFBSyxTQUFBLENBQUE1TSxJQUFBO1lBQUE7VUFBQTtVQUFBLE9BQUE0TSxTQUFBLENBQUF4SixNQUFBO1FBQUE7VUFFTm9KLFlBQVksR0FBR0QsT0FBTyxDQUFDVSxJQUFJLENBQy9CLFVBQUNDLE1BQWM7WUFBQSxJQUFBQyxvQkFBQTtZQUFBLE9BQ2JELE1BQU0sQ0FBQ0UsT0FBTyxLQUFLQyw4QkFBVSxDQUFDQyx1QkFBdUIsSUFDckRKLE1BQU0sQ0FBQ0wsV0FBVyxPQUFBTSxvQkFBQSxHQUFLNUcsT0FBTyxDQUFDc0csV0FBVyxjQUFBTSxvQkFBQSx1QkFBbkJBLG9CQUFBLENBQXFCak4sUUFBUSxDQUFDLENBQUMsS0FDdERnTixNQUFNLENBQUNLLFVBQVUsS0FBS0Msa0NBQWMsQ0FBQ0MsU0FBUztVQUFBLENBQ2xELENBQUM7VUFBQSxJQUNJakIsWUFBWTtZQUFBSSxTQUFBLENBQUE1TSxJQUFBO1lBQUE7VUFBQTtVQUFBLE9BQUE0TSxTQUFBLENBQUF4SixNQUFBO1FBQUE7VUFFWHFKLFlBQVksR0FBR2xGLE1BQU0sQ0FBQ21HLEdBQUcsQ0FBQ0MsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUU1QztVQUFBLEtBQ0lwSCxPQUFPLENBQUNtRCxLQUFLO1lBQUFrRCxTQUFBLENBQUE1TSxJQUFBO1lBQUE7VUFBQTtVQUNUMkgsS0FBSyxHQUFHSixNQUFNLENBQUNLLFNBQVMsQ0FBQ0QsS0FBSztVQUM5QkQsYUFBYSxNQUFBTSxNQUFBLENBQU15RSxZQUFZO1VBQy9CM0QsYUFBYSxHQUFHN0IsZ0JBQUksQ0FBQ0MsSUFBSSxDQUFDRixTQUFTLEVBQUVVLGFBQWEsQ0FBQztVQUNuRGdGLGlCQUFpQixNQUFBMUUsTUFBQSxDQUFNeUUsWUFBWTtVQUNuQzVELGlCQUFpQixHQUFHNUIsZ0JBQUksQ0FBQ0MsSUFBSSxDQUFDRixTQUFTLEVBQUUwRixpQkFBaUIsQ0FBQztVQUMzRDlELFFBQVEsdURBQUFaLE1BQUEsQ0FBdUR6QixPQUFPLENBQUNzRyxXQUFXLGNBQUE3RSxNQUFBLENBQVdOLGFBQWE7VUFDaEgsSUFBSSxDQUFDbkIsT0FBTyxDQUFDc0IsTUFBTSxFQUFFO1lBQ25CQyxPQUFPLENBQUNDLEdBQUcsa0JBQUFDLE1BQUEsQ0FDUVksUUFBUSxXQUFBWixNQUFBLENBQVFMLEtBQUssQ0FBQ00sTUFBTSxPQUFBRCxNQUFBLENBQUlMLEtBQUssQ0FBQ08sR0FBRyxXQUM1RCxDQUFDO1VBQ0g7VUFBQzBFLFNBQUEsQ0FBQTVNLElBQUE7VUFBQSxPQUVLcUksYUFBYSxDQUNqQk8sUUFBUSxFQUNSQyxpQkFBaUIsRUFDakJDLGFBQWEsRUFDYkMsb0JBQ0YsQ0FBQztRQUFBO1VBQ0R6QixXQUFXLENBQ1RDLE1BQU0sRUFDTmlELFdBQVcsRUFDWEMsWUFBWSxFQUNaekQsU0FBUyxFQUNUeUYsWUFBWSxFQUNabEcsT0FDRixDQUFDO1FBQUE7VUFHSGdFLFVBQVUsQ0FBQzFHLElBQUksQ0FBQzRJLFlBQVksQ0FBQztRQUFBO1VBQUFHLFNBQUEsQ0FBQTVNLElBQUE7VUFBQTtRQUFBO1VBQUE0TSxTQUFBLENBQUE1TSxJQUFBO1VBQUE7UUFBQTtVQUFBNE0sU0FBQSxDQUFBaEksSUFBQTtVQUFBZ0ksU0FBQSxDQUFBekMsRUFBQSxHQUFBeUMsU0FBQTtVQUFBUCxTQUFBLENBQUF2TyxDQUFBLENBQUE4TyxTQUFBLENBQUF6QyxFQUFBO1FBQUE7VUFBQXlDLFNBQUEsQ0FBQWhJLElBQUE7VUFBQXlILFNBQUEsQ0FBQXhNLENBQUE7VUFBQSxPQUFBK00sU0FBQSxDQUFBMUgsTUFBQTtRQUFBO1VBRy9Cb0YsWUFBWSxDQUFDQyxVQUFVLEVBQUV2RCxTQUFTLEVBQUV3RCxXQUFXLEVBQUVDLFlBQVksRUFBRSxTQUFTLENBQUM7VUFBQSxLQUVyRWxFLE9BQU8sQ0FBQ3FILE1BQU07WUFBQWhCLFNBQUEsQ0FBQTVNLElBQUE7WUFBQTtVQUFBO1VBQUEsT0FBQTRNLFNBQUEsQ0FBQXhKLE1BQUEsV0FDVDVGLEdBQUcsQ0FBQ3FRLGFBQWEsQ0FBQzdHLFNBQVMsRUFBRSxrQkFBa0IsRUFBRVQsT0FBTyxDQUFDdUgsTUFBTSxDQUFDO1FBQUE7VUFBQSxPQUFBbEIsU0FBQSxDQUFBeEosTUFBQSxXQUVsRSxDQUFDO1FBQUE7UUFBQTtVQUFBLE9BQUF3SixTQUFBLENBQUE5SCxJQUFBO01BQUE7SUFBQSxHQUFBcUgsUUFBQTtFQUFBLENBQ1Q7RUFBQSxPQUFBRCxzQkFBQSxDQUFBMUcsS0FBQSxPQUFBRCxTQUFBO0FBQUE7QUFFRDBHLHFCQUFxQixDQUFDLENBQUMsQ0FDcEJ0SixJQUFJLENBQUMsVUFBQ29MLFFBQVE7RUFBQSxPQUFLQyxPQUFPLENBQUNDLElBQUksQ0FBQ0YsUUFBUSxDQUFDO0FBQUEsRUFBQyxTQUNyQyxDQUFDLFVBQUNHLEtBQUssRUFBSztFQUNoQnBHLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDbUcsS0FBSyxDQUFDO0VBQ2xCRixPQUFPLENBQUNDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDakIsQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
302
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2hpbGRfcHJvY2VzcyIsInJlcXVpcmUiLCJfY29tbWFuZExpbmVBcmdzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9mc0V4dHJhIiwiX3BhdGgiLCJfc3RyZWFtIiwiX3V0aWwiLCJnaXQiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9sb2FkZXJzIiwiX2FjdGV1cnNfZXRfb3JnYW5lcyIsIl9jbGlfaGVscGVycyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJsZW5ndGgiLCJfbiIsIkYiLCJzIiwiZG9uZSIsInZhbHVlIiwiZiIsIlR5cGVFcnJvciIsIm8iLCJuZXh0IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwicHJvdG90eXBlIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIndyYXAiLCJHZW5lcmF0b3IiLCJjcmVhdGUiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwidHlwZSIsImFyZyIsImgiLCJsIiwieSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJwIiwiZCIsImdldFByb3RvdHlwZU9mIiwidiIsInZhbHVlcyIsImciLCJkZWZpbmVJdGVyYXRvck1ldGhvZHMiLCJmb3JFYWNoIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJpbnZva2UiLCJyZXNvbHZlIiwiX19hd2FpdCIsInRoZW4iLCJjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyIsIkVycm9yIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJyZXN1bHROYW1lIiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXNOYU4iLCJkaXNwbGF5TmFtZSIsImlzR2VuZXJhdG9yRnVuY3Rpb24iLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsImtleXMiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJhcmd1bWVudHMiLCJhcHBseSIsIl9uZXh0IiwiX3Rocm93Iiwib3B0aW9uc0RlZmluaXRpb25zIiwiY2xvbmVPcHRpb24iLCJjb21taXRPcHRpb24iLCJyZW1vdGVPcHRpb24iLCJzaWxlbnRPcHRpb24iLCJkYXRhRGlyRGVmYXVsdE9wdGlvbiIsInB1bGxPcHRpb24iLCJmZXRjaE9wdGlvbiIsImxlZ2lzbGF0dXJlT3B0aW9uIiwiYWxpYXMiLCJkZWZhdWx0VmFsdWUiLCJOdW1iZXIiLCJvcHRpb25zIiwiY29tbWFuZExpbmVBcmdzIiwiY2xvbmVBbmRVcGRhdGVHaXRSZXBvc2l0b3J5IiwicGhvdG9zRGlyTmFtZSIsImdpdEdyb3VwVXJsIiwiY2xvbmUiLCJ0cmltIiwicmVwbGFjZSIsInVuZGVmaW5lZCIsInBob3Rvc0RpciIsInBhdGgiLCJqb2luIiwiZGF0YURpciIsInB1bGwiLCJyZXNldEFuZFB1bGwiLCJyZXNpemVQaG90byIsImFjdGV1ciIsIndpZHRoIiwiaGVpZ2h0IiwicGhvdG9GaWxlbmFtZSIsImlkZW50IiwiZXRhdENpdmlsIiwic2lsZW50IiwiY29uc29sZSIsImxvZyIsImNvbmNhdCIsInByZW5vbSIsIm5vbSIsImV4ZWNTeW5jIiwiY3dkIiwiZG93bmxvYWRQaG90byIsIl94IiwiX3gyIiwiX3gzIiwiX3g0IiwiX2Rvd25sb2FkUGhvdG8iLCJfY2FsbGVlIiwidXJsUGhvdG8iLCJwaG90b1RlbXBGaWxlUGF0aCIsInBob3RvRmlsZVBhdGgiLCJtaXNzaW5nUGhvdG9GaWxlUGF0aCIsInJldHJpZXMiLCJwaXBlbGluZSIsImF0dGVtcHQiLCJyZXNwb25zZSIsIl9hcmdzIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInV0aWwiLCJwcm9taXNpZnkiLCJzdHJlYW0iLCJmZXRjaCIsIm9rIiwiYm9keSIsImZzIiwiY3JlYXRlV3JpdGVTdHJlYW0iLCJyZW5hbWVTeW5jIiwid2FybiIsInN0YXR1cyIsInN0YXR1c1RleHQiLCJ0MCIsImV4aXN0c1N5bmMiLCJjb3B5RmlsZVN5bmMiLCJjcmVhdGVNb3NhaWMiLCJhY3RldXJVaWRzIiwicGhvdG9zV2lkdGgiLCJwaG90b3NIZWlnaHQiLCJtb3NhaWNGaWxlbmFtZSIsInBob3RvQnlJZEFjdGV1ciIsInJvd3NGaWxlbmFtZXMiLCJfbG9vcCIsInJvd0luZGV4Iiwicm93IiwiYWN0ZXVySW5kZXgiLCJwaG90b3NGaWxlbmFtZXMiLCJtYXAiLCJhY3RldXJVaWQiLCJjb2x1bW5JbmRleCIsImNoZW1pbiIsImNoZW1pbk1vc2FpcXVlIiwibGFyZ2V1ciIsImhhdXRldXIiLCJ4TW9zYWlxdWUiLCJ5TW9zYWlxdWUiLCJyb3dGaWxlbmFtZSIsInVubGlua1N5bmMiLCJqc29uRmlsZVBhdGgiLCJ3cml0ZUZpbGVTeW5jIiwiSlNPTiIsInN0cmluZ2lmeSIsInJldHJpZXZlUGhvdG9zRGVwdXRlcyIsIl9yZXRyaWV2ZVBob3Rvc0RlcHV0ZXMiLCJfY2FsbGVlMiIsInBob3Rvc1ByZWZpeCIsIl9pdGVyYXRvciIsIl9zdGVwIiwibWFuZGF0cyIsIm1hbmRhdERlcHV0ZSIsIm51bWVyb0RlcHV0ZSIsInBob3RvVGVtcEZpbGVuYW1lIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwibGVnaXNsYXR1cmUiLCJlbnN1cmVEaXJTeW5jIiwiaXRlckxvYWRBc3NlbWJsZWVBY3RldXJzIiwibm9WYWxpZGF0aW9uIiwiZmluZCIsIm1hbmRhdCIsIl9vcHRpb25zJGxlZ2lzbGF0dXJlIiwieHNpVHlwZSIsIlR5cGVNYW5kYXQiLCJNYW5kYXRQYXJsZW1lbnRhaXJlVHlwZSIsInR5cGVPcmdhbmUiLCJDb2RlVHlwZU9yZ2FuZSIsIkFzc2VtYmxlZSIsInVpZCIsInN1YnN0cmluZyIsImNvbW1pdCIsImNvbW1pdEFuZFB1c2giLCJyZW1vdGUiLCJleGl0Q29kZSIsInByb2Nlc3MiLCJleGl0IiwiZXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9yZXRyaWV2ZV9kZXB1dGVzX3Bob3Rvcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGVjU3luYyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCJcbmltcG9ydCBjb21tYW5kTGluZUFyZ3MgZnJvbSBcImNvbW1hbmQtbGluZS1hcmdzXCJcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IHN0cmVhbSBmcm9tIFwic3RyZWFtXCJcbmltcG9ydCB1dGlsIGZyb20gXCJ1dGlsXCJcbmltcG9ydCAqIGFzIGdpdCBmcm9tIFwiLi4vZ2l0XCJcblxuaW1wb3J0IHsgaXRlckxvYWRBc3NlbWJsZWVBY3RldXJzIH0gZnJvbSBcIi4uL2xvYWRlcnNcIlxuaW1wb3J0IHtcbiAgQWN0ZXVyLFxuICBDb2RlVHlwZU9yZ2FuZSxcbiAgTWFuZGF0LFxuICBQaG90byxcbiAgVHlwZU1hbmRhdCxcbn0gZnJvbSBcIi4uL3R5cGVzL2FjdGV1cnNfZXRfb3JnYW5lc1wiXG5pbXBvcnQge1xuICBjbG9uZU9wdGlvbixcbiAgY29tbWl0T3B0aW9uLFxuICByZW1vdGVPcHRpb24sXG4gIHNpbGVudE9wdGlvbixcbiAgZGF0YURpckRlZmF1bHRPcHRpb24sXG4gIHB1bGxPcHRpb24sXG4gIGxlZ2lzbGF0dXJlT3B0aW9uLFxuICBmZXRjaE9wdGlvbixcbn0gZnJvbSBcIi4vc2hhcmVkL2NsaV9oZWxwZXJzXCJcblxuY29uc3Qgb3B0aW9uc0RlZmluaXRpb25zID0gW1xuICBjbG9uZU9wdGlvbixcbiAgY29tbWl0T3B0aW9uLFxuICByZW1vdGVPcHRpb24sXG4gIHNpbGVudE9wdGlvbixcbiAgZGF0YURpckRlZmF1bHRPcHRpb24sXG4gIHB1bGxPcHRpb24sXG4gIGZldGNoT3B0aW9uLFxuICBsZWdpc2xhdHVyZU9wdGlvbixcbiAge1xuICAgIGFsaWFzOiBcIndcIixcbiAgICBkZWZhdWx0VmFsdWU6IDE1MCxcbiAgICBuYW1lOiBcIndpZHRoXCIsXG4gICAgdHlwZTogTnVtYmVyLFxuICB9LFxuICB7XG4gICAgYWxpYXM6IFwiaFwiLFxuICAgIGRlZmF1bHRWYWx1ZTogMTkyLFxuICAgIG5hbWU6IFwiaGVpZ2h0XCIsXG4gICAgdHlwZTogTnVtYmVyLFxuICB9LFxuXVxuY29uc3Qgb3B0aW9ucyA9IGNvbW1hbmRMaW5lQXJncyhvcHRpb25zRGVmaW5pdGlvbnMpXG5cbmV4cG9ydCBmdW5jdGlvbiBjbG9uZUFuZFVwZGF0ZUdpdFJlcG9zaXRvcnkoXG4gIHBob3Rvc0Rpck5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogYW55LFxuKTogdm9pZCB7XG4gIGNvbnN0IGdpdEdyb3VwVXJsID0gb3B0aW9ucy5jbG9uZVxuICAgID8gb3B0aW9ucy5jbG9uZS50cmltKCkucmVwbGFjZSgvXFwvKyQvLCBcIlwiKVxuICAgIDogdW5kZWZpbmVkXG4gIGNvbnN0IHBob3Rvc0RpciA9IHBhdGguam9pbihvcHRpb25zLmRhdGFEaXIsIHBob3Rvc0Rpck5hbWUpXG4gIGdpdC5jbG9uZShnaXRHcm91cFVybCwgcGhvdG9zRGlyTmFtZSwgb3B0aW9ucy5kYXRhRGlyKVxuXG4gIGlmIChvcHRpb25zLnB1bGwpIHtcbiAgICBnaXQucmVzZXRBbmRQdWxsKHBob3Rvc0RpcilcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzaXplUGhvdG8oXG4gIGFjdGV1cjogQWN0ZXVyLFxuICB3aWR0aDogbnVtYmVyLFxuICBoZWlnaHQ6IG51bWJlcixcbiAgcGhvdG9zRGlyOiBzdHJpbmcsXG4gIHBob3RvRmlsZW5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogYW55LFxuKTogdm9pZCB7XG4gIGNvbnN0IGlkZW50ID0gYWN0ZXVyLmV0YXRDaXZpbC5pZGVudFxuICBpZiAoIW9wdGlvbnMuc2lsZW50KSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBgUmVzaXppbmcgcGhvdG8gJHtwaG90b0ZpbGVuYW1lfSBmb3IgJHtpZGVudC5wcmVub219ICR7aWRlbnQubm9tfeKApmAsXG4gICAgKVxuICB9XG4gIGV4ZWNTeW5jKFxuICAgIGBnbSBjb252ZXJ0IC1yZXNpemUgJHt3aWR0aH14JHtoZWlnaHR9ISAke3Bob3RvRmlsZW5hbWV9LmpwZyAke3Bob3RvRmlsZW5hbWV9XyR7d2lkdGh9eCR7aGVpZ2h0fS5qcGdgLFxuICAgIHtcbiAgICAgIGN3ZDogcGhvdG9zRGlyLFxuICAgIH0sXG4gIClcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRvd25sb2FkUGhvdG8oXG4gIHVybFBob3RvOiBzdHJpbmcsXG4gIHBob3RvVGVtcEZpbGVQYXRoOiBzdHJpbmcsXG4gIHBob3RvRmlsZVBhdGg6IHN0cmluZyxcbiAgbWlzc2luZ1Bob3RvRmlsZVBhdGg6IHN0cmluZyxcbiAgcmV0cmllczogbnVtYmVyID0gMyxcbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBwaXBlbGluZSA9IHV0aWwucHJvbWlzaWZ5KHN0cmVhbS5waXBlbGluZSlcblxuICBmb3IgKGxldCBhdHRlbXB0ID0gMTsgYXR0ZW1wdCA8PSByZXRyaWVzOyBhdHRlbXB0KyspIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmxQaG90bylcblxuICAgICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICAgIGF3YWl0IHBpcGVsaW5lKFxuICAgICAgICAgIHJlc3BvbnNlLmJvZHkgYXMgdW5rbm93biBhcyBOb2RlSlMuUmVhZGFibGVTdHJlYW0sXG4gICAgICAgICAgZnMuY3JlYXRlV3JpdGVTdHJlYW0ocGhvdG9UZW1wRmlsZVBhdGgpLFxuICAgICAgICApXG4gICAgICAgIGZzLnJlbmFtZVN5bmMocGhvdG9UZW1wRmlsZVBhdGgsIHBob3RvRmlsZVBhdGgpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBGZXRjaCBmYWlsZWQ6ICR7dXJsUGhvdG99IChBdHRlbXB0ICR7YXR0ZW1wdH0pIC0gU3RhdHVzOiAke3Jlc3BvbnNlLnN0YXR1c30gJHtyZXNwb25zZS5zdGF0dXNUZXh0fWAsXG4gICAgICApXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICAgICAgY29uc29sZS53YXJuKGBBdHRlbXB0ICR7YXR0ZW1wdH0gZmFpbGVkIGZvciAke3VybFBob3RvfWAsIGVycm9yKVxuICAgIH1cbiAgfVxuXG4gIGlmIChmcy5leGlzdHNTeW5jKHBob3RvRmlsZVBhdGgpKSB7XG4gICAgY29uc29sZS53YXJuKGBSZXVzaW5nIGV4aXN0aW5nIGltYWdlOiAke3Bob3RvRmlsZVBhdGh9YClcbiAgfSBlbHNlIHtcbiAgICBjb25zb2xlLndhcm4oYFVzaW5nIGJsYW5rIGltYWdlOiAke21pc3NpbmdQaG90b0ZpbGVQYXRofWApXG4gICAgZnMuY29weUZpbGVTeW5jKG1pc3NpbmdQaG90b0ZpbGVQYXRoLCBwaG90b0ZpbGVQYXRoKVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNb3NhaWMoXG4gIGFjdGV1clVpZHM6IHN0cmluZ1tdLFxuICBwaG90b3NEaXI6IHN0cmluZyxcbiAgcGhvdG9zV2lkdGg6IG51bWJlcixcbiAgcGhvdG9zSGVpZ2h0OiBudW1iZXIsXG4gIG1vc2FpY0ZpbGVuYW1lOiBzdHJpbmcsXG4pOiB2b2lkIHtcbiAgY29uc3QgcGhvdG9CeUlkQWN0ZXVyOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH0gPSB7fVxuICBjb25zdCByb3dzRmlsZW5hbWVzOiBzdHJpbmdbXSA9IFtdXG5cbiAgaWYgKGFjdGV1clVpZHMubGVuZ3RoID09PSAwKSByZXR1cm5cblxuICBmb3IgKFxuICAgIGxldCBhY3RldXJJbmRleCA9IDAsIHJvd0luZGV4ID0gMDtcbiAgICBhY3RldXJJbmRleCA8IGFjdGV1clVpZHMubGVuZ3RoO1xuICAgIGFjdGV1ckluZGV4ICs9IDI1LCByb3dJbmRleCsrXG4gICkge1xuICAgIGNvbnN0IHJvdyA9IGFjdGV1clVpZHMuc2xpY2UoYWN0ZXVySW5kZXgsIGFjdGV1ckluZGV4ICsgMjUpXG4gICAgY29uc3QgcGhvdG9zRmlsZW5hbWVzOiBzdHJpbmdbXSA9IHJvdy5tYXAoKGFjdGV1clVpZCwgY29sdW1uSW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHBob3RvRmlsZW5hbWUgPSBgJHthY3RldXJVaWR9XyR7cGhvdG9zV2lkdGh9eCR7cGhvdG9zSGVpZ2h0fS5qcGdgXG4gICAgICBwaG90b0J5SWRBY3RldXJbYWN0ZXVyVWlkXSA9IHtcbiAgICAgICAgY2hlbWluOiBgJHtwaG90b3NEaXJ9LyR7cGhvdG9GaWxlbmFtZX1gLFxuICAgICAgICBjaGVtaW5Nb3NhaXF1ZTogYCR7cGhvdG9zRGlyfS8ke21vc2FpY0ZpbGVuYW1lfS5qcGdgLFxuICAgICAgICBsYXJnZXVyOiBwaG90b3NXaWR0aCxcbiAgICAgICAgaGF1dGV1cjogcGhvdG9zSGVpZ2h0LFxuICAgICAgICB4TW9zYWlxdWU6IGNvbHVtbkluZGV4ICogcGhvdG9zV2lkdGgsXG4gICAgICAgIHlNb3NhaXF1ZTogcm93SW5kZXggKiBwaG90b3NIZWlnaHQsXG4gICAgICB9XG4gICAgICByZXR1cm4gcGhvdG9GaWxlbmFtZVxuICAgIH0pXG5cbiAgICBjb25zdCByb3dGaWxlbmFtZSA9IGByb3ctJHtyb3dJbmRleH0uanBnYFxuICAgIGV4ZWNTeW5jKGBnbSBjb252ZXJ0ICR7cGhvdG9zRmlsZW5hbWVzLmpvaW4oXCIgXCIpfSArYXBwZW5kICR7cm93RmlsZW5hbWV9YCwge1xuICAgICAgY3dkOiBwaG90b3NEaXIsXG4gICAgfSlcbiAgICByb3dzRmlsZW5hbWVzLnB1c2gocm93RmlsZW5hbWUpXG4gIH1cblxuICAvLyBDb21iaW5lIGFsbCByb3dzIGludG8gb25lIGltYWdlXG4gIGV4ZWNTeW5jKFxuICAgIGBnbSBjb252ZXJ0ICR7cm93c0ZpbGVuYW1lcy5qb2luKFwiIFwiKX0gLWFwcGVuZCAke21vc2FpY0ZpbGVuYW1lfS5qcGdgLFxuICAgIHsgY3dkOiBwaG90b3NEaXIgfSxcbiAgKVxuXG4gIC8vIENsZWFudXAgaW5kaXZpZHVhbCByb3cgaW1hZ2VzXG4gIHJvd3NGaWxlbmFtZXMuZm9yRWFjaCgocm93RmlsZW5hbWUpID0+IHtcbiAgICBmcy51bmxpbmtTeW5jKHBhdGguam9pbihwaG90b3NEaXIsIHJvd0ZpbGVuYW1lKSlcbiAgfSlcblxuICBjb25zdCBqc29uRmlsZVBhdGggPSBwYXRoLmpvaW4ocGhvdG9zRGlyLCBgJHttb3NhaWNGaWxlbmFtZX0uanNvbmApXG4gIGZzLndyaXRlRmlsZVN5bmMoanNvbkZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeShwaG90b0J5SWRBY3RldXIsIG51bGwsIDIpKVxufVxuXG5hc3luYyBmdW5jdGlvbiByZXRyaWV2ZVBob3Rvc0RlcHV0ZXMoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgY29uc3QgZGF0YURpciA9IG9wdGlvbnMuZGF0YURpclxuICBjb25zdCBwaG90b3NQcmVmaXggPSBcInBob3Rvc19kZXB1dGVzXCJcbiAgY29uc3QgcGhvdG9zRGlyTmFtZSA9IGAke3Bob3Rvc1ByZWZpeH1fJHtvcHRpb25zLmxlZ2lzbGF0dXJlfWBcbiAgY29uc3QgcGhvdG9zRGlyID0gcGF0aC5qb2luKGRhdGFEaXIsIHBob3Rvc0Rpck5hbWUpXG4gIGNvbnN0IHBob3Rvc1dpZHRoID0gb3B0aW9ucy53aWR0aFxuICBjb25zdCBwaG90b3NIZWlnaHQgPSBvcHRpb25zLmhlaWdodFxuICBjb25zdCBtaXNzaW5nUGhvdG9GaWxlUGF0aCA9IGBpbWFnZXMvdHJhbnNwYXJlbnRfJHtwaG90b3NXaWR0aH14JHtwaG90b3NIZWlnaHR9LmpwZ2BcblxuICBjbG9uZUFuZFVwZGF0ZUdpdFJlcG9zaXRvcnkocGhvdG9zRGlyTmFtZSwgb3B0aW9ucylcbiAgZnMuZW5zdXJlRGlyU3luYyhwaG90b3NEaXIpXG5cbiAgY29uc3QgYWN0ZXVyVWlkcyA9IFtdXG4gIGZvciAoY29uc3QgeyBhY3RldXIgfSBvZiBpdGVyTG9hZEFzc2VtYmxlZUFjdGV1cnMoXG4gICAgZGF0YURpcixcbiAgICBvcHRpb25zLmxlZ2lzbGF0dXJlLFxuICAgIHsgbm9WYWxpZGF0aW9uOiB0cnVlIH0sXG4gICkpIHtcbiAgICBjb25zdCB7IG1hbmRhdHMgfSA9IGFjdGV1clxuICAgIGlmICghbWFuZGF0cykgY29udGludWVcblxuICAgIGNvbnN0IG1hbmRhdERlcHV0ZSA9IG1hbmRhdHMuZmluZChcbiAgICAgIChtYW5kYXQ6IE1hbmRhdCkgPT5cbiAgICAgICAgbWFuZGF0LnhzaVR5cGUgPT09IFR5cGVNYW5kYXQuTWFuZGF0UGFybGVtZW50YWlyZVR5cGUgJiZcbiAgICAgICAgbWFuZGF0LmxlZ2lzbGF0dXJlID09PSBvcHRpb25zLmxlZ2lzbGF0dXJlPy50b1N0cmluZygpICYmXG4gICAgICAgIG1hbmRhdC50eXBlT3JnYW5lID09PSBDb2RlVHlwZU9yZ2FuZS5Bc3NlbWJsZWUsXG4gICAgKVxuICAgIGlmICghbWFuZGF0RGVwdXRlKSBjb250aW51ZVxuXG4gICAgY29uc3QgbnVtZXJvRGVwdXRlID0gYWN0ZXVyLnVpZC5zdWJzdHJpbmcoMilcblxuICAgIC8vIERvd25sb2FkIHBob3Rvcy5cbiAgICBpZiAob3B0aW9ucy5mZXRjaCkge1xuICAgICAgY29uc3QgaWRlbnQgPSBhY3RldXIuZXRhdENpdmlsLmlkZW50XG4gICAgICBjb25zdCBwaG90b0ZpbGVuYW1lID0gYCR7bnVtZXJvRGVwdXRlfS5qcGdgXG4gICAgICBjb25zdCBwaG90b0ZpbGVQYXRoID0gcGF0aC5qb2luKHBob3Rvc0RpciwgcGhvdG9GaWxlbmFtZSlcbiAgICAgIGNvbnN0IHBob3RvVGVtcEZpbGVuYW1lID0gYCR7bnVtZXJvRGVwdXRlfV90ZW1wLmpwZ2BcbiAgICAgIGNvbnN0IHBob3RvVGVtcEZpbGVQYXRoID0gcGF0aC5qb2luKHBob3Rvc0RpciwgcGhvdG9UZW1wRmlsZW5hbWUpXG4gICAgICBjb25zdCB1cmxQaG90byA9IGBodHRwOi8vd3d3Mi5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3N0YXRpYy90cmlidW4vJHtvcHRpb25zLmxlZ2lzbGF0dXJlfS9waG90b3MvJHtwaG90b0ZpbGVuYW1lfWBcbiAgICAgIGlmICghb3B0aW9ucy5zaWxlbnQpIHtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYExvYWRpbmcgcGhvdG8gJHt1cmxQaG90b30gZm9yICR7aWRlbnQucHJlbm9tfSAke2lkZW50Lm5vbX3igKZgLFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IGRvd25sb2FkUGhvdG8oXG4gICAgICAgIHVybFBob3RvLFxuICAgICAgICBwaG90b1RlbXBGaWxlUGF0aCxcbiAgICAgICAgcGhvdG9GaWxlUGF0aCxcbiAgICAgICAgbWlzc2luZ1Bob3RvRmlsZVBhdGgsXG4gICAgICApXG4gICAgICByZXNpemVQaG90byhcbiAgICAgICAgYWN0ZXVyLFxuICAgICAgICBwaG90b3NXaWR0aCxcbiAgICAgICAgcGhvdG9zSGVpZ2h0LFxuICAgICAgICBwaG90b3NEaXIsXG4gICAgICAgIG51bWVyb0RlcHV0ZSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIClcbiAgICB9XG5cbiAgICBhY3RldXJVaWRzLnB1c2gobnVtZXJvRGVwdXRlKVxuICB9XG5cbiAgY3JlYXRlTW9zYWljKGFjdGV1clVpZHMsIHBob3Rvc0RpciwgcGhvdG9zV2lkdGgsIHBob3Rvc0hlaWdodCwgXCJkZXB1dGVzXCIpXG5cbiAgaWYgKG9wdGlvbnMuY29tbWl0KSB7XG4gICAgcmV0dXJuIGdpdC5jb21taXRBbmRQdXNoKHBob3Rvc0RpciwgXCJOb3V2ZWxsZSBtb2lzc29uXCIsIG9wdGlvbnMucmVtb3RlKVxuICB9XG4gIHJldHVybiAwXG59XG5cbnJldHJpZXZlUGhvdG9zRGVwdXRlcygpXG4gIC50aGVuKChleGl0Q29kZSkgPT4gcHJvY2Vzcy5leGl0KGV4aXRDb2RlKSlcbiAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICAgIHByb2Nlc3MuZXhpdCgxKVxuICB9KVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsY0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZ0JBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFFBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFLLE9BQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFNLEtBQUEsR0FBQUosc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFPLEdBQUEsR0FBQUMsdUJBQUEsQ0FBQVIsT0FBQTtBQUVBLElBQUFTLFFB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
|